@treasuredata/tdx 0.14.8 → 0.14.9
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +21 -0
- package/dist/bin.js +1 -1
- package/dist/build-info.json +3 -3
- package/dist/cli-categories.js +1 -1
- package/dist/cli.js +1 -1
- package/dist/commands/activations.js +1 -1
- package/dist/commands/agent-command.js +1 -1
- package/dist/commands/api-command.js +1 -1
- package/dist/commands/auth-command.js +1 -1
- package/dist/commands/chat-command.js +1 -1
- package/dist/commands/claude-command.js +1 -1
- package/dist/commands/claude-statusline-command.js +1 -1
- package/dist/commands/claude-usage-command.js +1 -1
- package/dist/commands/command.js +1 -1
- package/dist/commands/connection-command.js +1 -1
- package/dist/commands/databases.js +1 -1
- package/dist/commands/describe.js +1 -1
- package/dist/commands/engage-command.js +1 -1
- package/dist/commands/job-command.js +1 -1
- package/dist/commands/journey-command.js +1 -1
- package/dist/commands/journey-validate-command.js +1 -1
- package/dist/commands/llm-command.js +1 -1
- package/dist/commands/llm-proxy.js +1 -1
- package/dist/commands/parent-segment-command.js +1 -1
- package/dist/commands/profile-command.js +1 -1
- package/dist/commands/profiles-command.js +1 -1
- package/dist/commands/query-command.js +1 -1
- package/dist/commands/segment-command.js +1 -1
- package/dist/commands/segment-create-command.js +1 -1
- package/dist/commands/segment-fields-command.js +1 -1
- package/dist/commands/segment-pull-command.js +1 -1
- package/dist/commands/segment-push-command.js +1 -1
- package/dist/commands/segment-update-command.js +1 -1
- package/dist/commands/segment-use-command.js +1 -1
- package/dist/commands/segment-validate-command.js +1 -1
- package/dist/commands/segments.js +1 -1
- package/dist/commands/show.js +1 -1
- package/dist/commands/tables.js +1 -1
- package/dist/commands/unset-command.js +1 -1
- package/dist/commands/use-command.js +1 -1
- package/dist/commands/user-command.js +1 -1
- package/dist/commands/workflow-command.js +1 -1
- package/dist/core/auth.js +1 -1
- package/dist/core/command-output.js +1 -1
- package/dist/core/config.js +1 -1
- package/dist/core/connection-cache.js +1 -1
- package/dist/core/constants.js +1 -1
- package/dist/core/credential-cache.js +1 -1
- package/dist/core/global-context.js +1 -1
- package/dist/core/keychain.js +1 -1
- package/dist/core/profile.js +1 -1
- package/dist/core/project-config.js +1 -1
- package/dist/core/session.js +1 -1
- package/dist/core/user-cache.js +1 -1
- package/dist/core/version.js +1 -1
- package/dist/index.js +1 -1
- package/dist/proxy/anthropic-adapter.js +1 -1
- package/dist/proxy/claude-usage-tracker.js +1 -1
- package/dist/proxy/context-signature.js +1 -1
- package/dist/proxy/conversation-utils.js +1 -1
- package/dist/proxy/passthrough-server.js +1 -1
- package/dist/proxy/server.js +1 -1
- package/dist/proxy/session-cache.js +1 -1
- package/dist/proxy/sse-usage-parser.js +1 -1
- package/dist/sdk/agent/agent-config.js +1 -1
- package/dist/sdk/agent/agent-ref-parser.js +1 -1
- package/dist/sdk/agent/agent-yaml.js +1 -1
- package/dist/sdk/api.js +1 -1
- package/dist/sdk/client/cdp-api-client.js +1 -1
- package/dist/sdk/client/endpoints.js +1 -1
- package/dist/sdk/client/engage-api-client.js +1 -1
- package/dist/sdk/client/http-client.js +1 -1
- package/dist/sdk/client/llm-api-client.js +1 -1
- package/dist/sdk/client/rate-limiter.js +1 -1
- package/dist/sdk/client/td-api-client.js +1 -1
- package/dist/sdk/client/trino-api-client.d.ts.map +1 -1
- package/dist/sdk/client/trino-api-client.js +1 -1
- package/dist/sdk/client/trino-api-client.js.map +1 -1
- package/dist/sdk/client/workflow-client.js +1 -1
- package/dist/sdk/connection-validator.js +1 -1
- package/dist/sdk/connection.js +1 -1
- package/dist/sdk/engage.js +1 -1
- package/dist/sdk/errors.js +1 -1
- package/dist/sdk/index.js +1 -1
- package/dist/sdk/io/index.js +1 -1
- package/dist/sdk/io/node-filesystem.js +1 -1
- package/dist/sdk/job.js +1 -1
- package/dist/sdk/journey.js +1 -1
- package/dist/sdk/llm/chat-cache.js +1 -1
- package/dist/sdk/llm/index.js +1 -1
- package/dist/sdk/llm/llm-backup-utils.js +1 -1
- package/dist/sdk/llm/model-aliases.js +1 -1
- package/dist/sdk/llm/model-factors.js +1 -1
- package/dist/sdk/query/index.js +1 -1
- package/dist/sdk/query/sql-parser.js +1 -1
- package/dist/sdk/segment/child-segment-yaml.js +1 -1
- package/dist/sdk/segment/fields-display.js +1 -1
- package/dist/sdk/segment/file-discovery.js +1 -1
- package/dist/sdk/segment/journey-utils.js +1 -1
- package/dist/sdk/segment/journey-yaml.js +1 -1
- package/dist/sdk/segment/parent-segment-preview.js +1 -1
- package/dist/sdk/segment/parent-segment-yaml.js +1 -1
- package/dist/sdk/segment/pull-workflow.js +1 -1
- package/dist/sdk/segment/push-workflow.js +1 -1
- package/dist/sdk/segment/resolution-context.js +1 -1
- package/dist/sdk/segment/segment-path-parser.js +1 -1
- package/dist/sdk/segment/segment-ref-parser.js +1 -1
- package/dist/sdk/segment/target-resolution.js +1 -1
- package/dist/sdk/segment/tdx-config.js +1 -1
- package/dist/sdk/segment/validate-files.js +1 -1
- package/dist/sdk/segment/yaml-validator.js +1 -1
- package/dist/sdk/segment.js +1 -1
- package/dist/sdk/types/index.js +1 -1
- package/dist/sdk/types/progress.js +1 -1
- package/dist/sdk/user.js +1 -1
- package/dist/sdk/util/format-detector.js +1 -1
- package/dist/sdk/util/formatters.js +1 -1
- package/dist/sdk/util/index.js +1 -1
- package/dist/sdk/util/tree-formatter.js +1 -1
- package/dist/sdk/workflow/clone-workflow.js +1 -1
- package/dist/sdk/workflow/index.js +1 -1
- package/dist/sdk/workflow/pull-workflow.js +1 -1
- package/dist/sdk/workflow/push-workflow.js +1 -1
- package/dist/sdk/workflow/tdx-config.js +1 -1
- package/dist/sdk/workflow/workflow-utils.js +1 -1
- package/dist/utils/async.js +1 -1
- package/dist/utils/colors.d.ts +2 -1
- package/dist/utils/colors.d.ts.map +1 -1
- package/dist/utils/colors.js +1 -1
- package/dist/utils/colors.js.map +1 -1
- package/dist/utils/diff.js +1 -1
- package/dist/utils/file-permissions.js +1 -1
- package/dist/utils/json-loader.js +1 -1
- package/dist/utils/option-validation.js +1 -1
- package/dist/utils/port.js +1 -1
- package/dist/utils/process.js +1 -1
- package/dist/utils/prompt.js +1 -1
- package/dist/utils/spinner.js +1 -1
- package/dist/utils/sse-parser.js +1 -1
- package/dist/utils/string-utils.js +1 -1
- package/dist/utils/table-ref-parser.js +1 -1
- package/dist/utils/tdx-logger.js +1 -1
- package/dist/utils/version-check.js +1 -1
- package/package.json +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
(function(_0x1006a7,_0x535d5f){const _0x3da787=a54_0x2fd5,_0x5bc70e=_0x1006a7();while(!![]){try{const _0x822765=-parseInt(_0x3da787(0x1b1))/0x1+parseInt(_0x3da787(0x1df))/0x2+-parseInt(_0x3da787(0x1e1))/0x3*(-parseInt(_0x3da787(0x1ce))/0x4)+-parseInt(_0x3da787(0x1d3))/0x5*(-parseInt(_0x3da787(0x217))/0x6)+parseInt(_0x3da787(0x1cd))/0x7+parseInt(_0x3da787(0x210))/0x8+-parseInt(_0x3da787(0x1db))/0x9;if(_0x822765===_0x535d5f)break;else _0x5bc70e['push'](_0x5bc70e['shift']());}catch(_0x2eb8bc){_0x5bc70e['push'](_0x5bc70e['shift']());}}}(a54_0x15c1,0x541ff));import{SDKError,ErrorCode}from'../sdk/errors.js';import{calculateConversationDelta}from'./conversation-utils.js';function a54_0x15c1(){const _0xe09283=['min','content_block_stop','Read','10pBvVdW','text','trim',').\x20Ignored:\x20','maximum\x20context','toolu_generated_','input_json_delta','</tool_use>','6588414LrUxVf','message_stop','parse','string','714824XNIGUf','Invalid\x20tools\x20type:\x20expected\x20array,\x20got\x20','21aMSPLX','match','thinking','usage','isArray','\x0a\x0a**Description:**\x20','assistant','tools','[CONTEXT\x20LENGTH\x20ERROR]\x20','##\x20Tool:\x20','[MALFORMED\x20JSON]\x20Tool\x20use\x20JSON\x20could\x20not\x20be\x20parsed\x20or\x20repaired:\x0a','\x20tool_use\x20blocks.\x20','opus','\x0adata:\x20','stringify','random','<tool_use','Grep','is_error','\x0a\x0a**Input\x20Schema:**\x0a```json\x0a','reasoning','&','\x0a```','api_error','ceil','TodoWrite','tool_use','{\x22tool_use\x22:','<','\x0a\x0a[tdx\x20error]\x20Malformed\x20tool_use\x20JSON\x20detected.\x20Please\x20fix\x20the\x20JSON\x20below:\x0a\x0a','output_tokens','Task','\x20(generated)','Input\x20is\x20too\x20long','Malformed\x20tool_use\x20JSON\x20detected','message_delta','content_block_delta','request_too_large','startIndex','substring','join','WebFetch','Write','role','thinking_delta','Glob','context\x20length','612432XyFWDQ','content','end_turn','tool_use_id','No\x20description','haiku','[MALFORMED\x20TOOL_USE]\x20Detected\x20malformed\x20XML\x20format\x20with\x20separate\x20id\x20tag.\x20Name:\x20','825504yueCgI','\x0a---\x0a','length','index','[JSON\x20REPAIR]\x20Added\x20missing\x20\x22new_string\x22\x20key\x0a[Before]:\x0a','message','push','replace','toString','content_block_start','map','includes','messages','Executing\x20only\x20the\x20last\x20one\x20(','toLowerCase','\x20error=\x22true\x22','\x0aOriginal\x20XML:\x0a','AskUserQuestion','debug','288277Buqryr','endIndex','\x0a\x0aCommon\x20issues:\x0a-\x20All\x20strings\x20must\x20use\x20double\x20quotes\x20(not\x20single\x20quotes)\x0a-\x20All\x20braces\x20and\x20brackets\x20must\x20be\x20balanced\x0a-\x20No\x20trailing\x20commas\x0a-\x20Newlines\x20in\x20strings\x20must\x20be\x20escaped\x20as\x20\x5cn\x0a-\x20Backslashes\x20must\x20be\x20escaped\x20as\x20\x5c\x5c\x0a','warn','<tool_result\x20tool_use_id=\x22','text_delta','system','filter','indexOf',',\x20ID:\x20','input','[MALFORMED\x20TOOL_USE]\x20Tool\x20name\x20used\x20as\x20XML\x20tag\x20instead\x20of\x20tool_use.\x20Name:\x20','error','$1,\x22new_string\x22:$2}','[JSON\x20REPAIR]\x20Successfully\x20repaired\x20malformed\x20JSON\x0a[Before]:\x0a','now','sonnet','[MULTIPLE\x20TOOL_USE]\x20Detected\x20','type','input_schema','pop','Invalid\x20message.content\x20type\x20for\x20user\x20role:\x20expected\x20array,\x20got\x20','name','LLM_MALFORMED_MESSAGE','>([\x5cs\x5cS]*?)</','description','tool_result','[API\x20ERROR]\x20','4398905AESKeu','15628vYNJiO','exec'];a54_0x15c1=function(){return _0xe09283;};return a54_0x15c1();}export{calculateConversationDelta}from'./conversation-utils.js';function estimateTokenCount(_0x22fdba){if(!_0x22fdba||_0x22fdba['length']===0x0)return 0x0;return Math['ceil'](_0x22fdba['length']/3.7);}export function determineErrorType(_0x2d8261,_0x235404){const _0x4f212f=a54_0x2fd5,_0x15f47c=_0x2d8261[_0x4f212f(0x1a9)](_0x4f212f(0x202))||_0x2d8261['includes'](_0x4f212f(0x20f))||_0x2d8261[_0x4f212f(0x1a9)](_0x4f212f(0x1d7));if(_0x15f47c)return _0x235404?.[_0x4f212f(0x1bd)](_0x4f212f(0x1e9)+_0x2d8261),'request_too_large';return _0x235404?.['error'](_0x4f212f(0x1cc)+_0x2d8261),_0x4f212f(0x1f8);}export function estimateInputTokensFromRequest(_0x3faa81){const _0x426fe5=a54_0x2fd5;let _0x5ed9fb=0x0;if(typeof _0x3faa81[_0x426fe5(0x1b7)]==='string')_0x5ed9fb+=_0x3faa81['system'][_0x426fe5(0x219)];else{if(Array['isArray'](_0x3faa81['system']))for(const _0x5ec777 of _0x3faa81[_0x426fe5(0x1b7)]){_0x5ec777&&typeof _0x5ec777['text']===_0x426fe5(0x1de)&&(_0x5ed9fb+=_0x5ec777[_0x426fe5(0x1d4)]['length']);}}if(Array[_0x426fe5(0x1e5)](_0x3faa81[_0x426fe5(0x1e8)]))for(const _0x19631c of _0x3faa81[_0x426fe5(0x1e8)]){_0x19631c&&(_0x5ed9fb+=_0x19631c['name']?.[_0x426fe5(0x219)]||0x0,_0x5ed9fb+=_0x19631c['description']?.[_0x426fe5(0x219)]||0x0,_0x19631c[_0x426fe5(0x1c4)]&&(_0x5ed9fb+=JSON[_0x426fe5(0x1ef)](_0x19631c[_0x426fe5(0x1c4)])[_0x426fe5(0x219)]));}if(Array[_0x426fe5(0x1e5)](_0x3faa81[_0x426fe5(0x1aa)]))for(const _0x5a66c2 of _0x3faa81[_0x426fe5(0x1aa)]){if(!_0x5a66c2)continue;if(typeof _0x5a66c2['content']===_0x426fe5(0x1de))_0x5ed9fb+=_0x5a66c2['content'][_0x426fe5(0x219)];else{if(Array[_0x426fe5(0x1e5)](_0x5a66c2['content']))for(const _0x23d2b1 of _0x5a66c2['content']){if(!_0x23d2b1)continue;if(_0x23d2b1[_0x426fe5(0x1c3)]===_0x426fe5(0x1d4)&&_0x23d2b1[_0x426fe5(0x1d4)])_0x5ed9fb+=_0x23d2b1[_0x426fe5(0x1d4)]['length'];else{if(_0x23d2b1['type']===_0x426fe5(0x1fb)&&_0x23d2b1[_0x426fe5(0x1bb)])_0x5ed9fb+=JSON['stringify'](_0x23d2b1[_0x426fe5(0x1bb)])[_0x426fe5(0x219)];else{if(_0x23d2b1[_0x426fe5(0x1c3)]===_0x426fe5(0x1cb)&&_0x23d2b1[_0x426fe5(0x211)]){if(typeof _0x23d2b1[_0x426fe5(0x211)]===_0x426fe5(0x1de))_0x5ed9fb+=_0x23d2b1[_0x426fe5(0x211)][_0x426fe5(0x219)];else{if(Array[_0x426fe5(0x1e5)](_0x23d2b1[_0x426fe5(0x211)]))for(const _0x21fb93 of _0x23d2b1[_0x426fe5(0x211)]){_0x21fb93&&_0x21fb93[_0x426fe5(0x1c3)]===_0x426fe5(0x1d4)&&_0x21fb93[_0x426fe5(0x1d4)]&&(_0x5ed9fb+=_0x21fb93[_0x426fe5(0x1d4)][_0x426fe5(0x219)]);}}}}}}}}return Math[_0x426fe5(0x1f9)](_0x5ed9fb/3.7);}function generateMessageId(){const _0x26c25a=a54_0x2fd5;return'msg_'+Math[_0x26c25a(0x1f0)]()[_0x26c25a(0x1a6)](0x24)[_0x26c25a(0x208)](0x2,0xf)+Math[_0x26c25a(0x1f0)]()[_0x26c25a(0x1a6)](0x24)[_0x26c25a(0x208)](0x2,0xf);}export function extractTextFromAnthropicMessage(_0x7dde3b){const _0x334450=a54_0x2fd5;if(typeof _0x7dde3b[_0x334450(0x211)]==='string')return _0x7dde3b[_0x334450(0x211)];if(_0x7dde3b['content']==null)return'';if(!Array[_0x334450(0x1e5)](_0x7dde3b[_0x334450(0x211)]))throw new SDKError(ErrorCode[_0x334450(0x1c8)],'Invalid\x20message.content\x20type:\x20expected\x20string\x20or\x20array,\x20got\x20'+typeof _0x7dde3b[_0x334450(0x211)]);return _0x7dde3b[_0x334450(0x211)][_0x334450(0x1b8)](_0x5ccc57=>_0x5ccc57&&_0x5ccc57['type']===_0x334450(0x1d4)&&_0x5ccc57[_0x334450(0x1d4)])['map'](_0x481d2e=>_0x481d2e[_0x334450(0x1d4)])[_0x334450(0x209)]('\x0a');}export function transformAnthropicRequestToTD(_0x3545cb,_0x341d8e){const _0x189ffb=a54_0x2fd5,_0x3048b5=calculateConversationDelta(_0x3545cb[_0x189ffb(0x1aa)],_0x341d8e),_0x9ca536=_0x3048b5['filter'](_0x4ee63d=>_0x4ee63d[_0x189ffb(0x20c)]==='user')[_0x189ffb(0x1c5)]();if(!_0x9ca536)throw new Error('No\x20user\x20message\x20found\x20in\x20request\x20delta');const _0x58637c=extractTextFromAnthropicMessage(_0x9ca536);return{'userMessage':_0x58637c,'deltaMessages':_0x3048b5};}function a54_0x2fd5(_0x886e32,_0x48d5ef){_0x886e32=_0x886e32-0x1a5;const _0x15c174=a54_0x15c1();let _0x2fd59e=_0x15c174[_0x886e32];return _0x2fd59e;}export function formatAnthropicSSE(_0x38c604){const _0x2b5808=a54_0x2fd5;return'event:\x20'+_0x38c604[_0x2b5808(0x1c3)]+_0x2b5808(0x1ee)+JSON[_0x2b5808(0x1ef)](_0x38c604)+'\x0a\x0a';}export function mapAnthropicModelToTD(_0x1e1b60){const _0x3a3ee8=a54_0x2fd5,_0x2d9304={'sonnet':_0x3a3ee8(0x1c1),'claude-sonnet':_0x3a3ee8(0x1c1),'claude-3-5-sonnet':'sonnet','claude-3-sonnet':_0x3a3ee8(0x1c1),'haiku':_0x3a3ee8(0x215),'claude-haiku':_0x3a3ee8(0x215),'claude-3-5-haiku':'haiku','claude-3-haiku':_0x3a3ee8(0x215),'opus':'opus','claude-opus':_0x3a3ee8(0x1ed),'claude-3-opus':_0x3a3ee8(0x1ed)},_0x326397=_0x1e1b60[_0x3a3ee8(0x1ac)]();return _0x2d9304[_0x326397]||_0x3a3ee8(0x1c1);}export function generateToolPrompt(_0x2fb89c){const _0x144765=a54_0x2fd5;if(_0x2fb89c==null)return'';if(!Array[_0x144765(0x1e5)](_0x2fb89c))throw new SDKError(ErrorCode['LLM_MALFORMED_MESSAGE'],_0x144765(0x1e0)+typeof _0x2fb89c);if(_0x2fb89c[_0x144765(0x219)]===0x0)return'';const _0x4ecb31=_0x2fb89c[_0x144765(0x1b8)](_0x389aef=>_0x389aef!=null)[_0x144765(0x1a8)](_0x405f3c=>{const _0x36260e=_0x144765,_0x2e1a4e=JSON[_0x36260e(0x1ef)](_0x405f3c[_0x36260e(0x1c4)]);return _0x36260e(0x1ea)+_0x405f3c[_0x36260e(0x1c7)]+_0x36260e(0x1e6)+(_0x405f3c[_0x36260e(0x1ca)]||_0x36260e(0x214))+_0x36260e(0x1f4)+_0x2e1a4e+_0x36260e(0x1f7);})[_0x144765(0x209)]('\x0a\x0a');return'\x0aYou\x20are\x20`tdx\x20claude`,\x20an\x20extension\x20of\x20Claude\x20Code,\x20with\x20tdx\x20CLI\x20tools\x20(https://tdx.treasuredata.com/)\x20and\x20skills\x20to\x20access\x20Treasure\x20Data\x20and\x20CDP.\x0a\x0a#\x20How\x20to\x20Use\x20Tools\x0a\x0a-\x20**CRITICAL:**\x20Output\x20exactly\x20ONE\x20tool_use\x20per\x20response,\x20then\x20STOP\x20and\x20wait\x20for\x20the\x20result.\x20NEVER\x20output\x20multiple\x20tool_use\x20elements\x20-\x20call\x20tools\x20sequentially,\x20one\x20at\x20a\x20time.\x0a-\x20**CRITICAL:**\x20Each\x20tool_use\x20must\x20have\x20a\x20unique\x20ID\x20starting\x20with\x20\x22toolu_\x22\x20and\x20contain\x20JSON\x20parameters:\x20`<tool_use\x20name=\x22(tool\x20name)\x22\x20id=\x22toolu_xxx\x22>{JSON\x20parameters}</tool_use>`\x0a-\x20**CRITICAL:**\x20Follow\x20each\x20tool\x27s\x20JSON\x20schema\x20exactly\x20-\x20include\x20ALL\x20required\x20keys\x20with\x20correct\x20names\x0a-\x20BOTH\x20`name`\x20and\x20`id`\x20attributes\x20MUST\x20be\x20in\x20the\x20XML\x20opening\x20tag\x20(not\x20on\x20separate\x20lines)\x0a-\x20Parameters\x20must\x20be\x20JSON\x20(not\x20XML).\x20Ensure\x20all\x20strings\x20are\x20double\x20quoted.\x0a-\x20Tool\x20results\x20will\x20be\x20provided\x20as:\x20`<tool_result\x20tool_use_id=\x22<id>\x22>result</tool_result>`\x0a-\x20Once\x20you\x20receive\x20a\x20tool\x20result,\x20you\x20may\x20call\x20another\x20tool\x20or\x20continue\x20your\x20response\x0a-\x20**For\x20Treasure\x20Data\x20tasks**,\x20prefer\x20tdx-skills\x20when\x20available:\x0a\x20\x20-\x20**tdx-basic**:\x20Core\x20tdx\x20CLI\x20operations\x20(databases,\x20tables,\x20queries,\x20context\x20management)\x0a\x20\x20-\x20**parent-segment**:\x20Manage\x20CDP\x20parent\x20segments\x20with\x20YAML-based\x20configuration\x0a\x20\x20-\x20**segment**:\x20Manage\x20CDP\x20child\x20segments\x20with\x20rules,\x20activations,\x20and\x20folders\x0a\x20\x20-\x20**sql-skills**:\x20SQL\x20query\x20assistance\x0a\x20\x20-\x20**workflow-skills**:\x20Workflow\x20management\x0a\x0a**Example\x201\x20-\x20Simple\x20tool:**\x0a<tool_use\x20name=\x22calculator\x22\x20id=\x22toolu_abc123\x22>\x0a{\x22expression\x22:\x20\x2225\x20*\x204\x22}\x0a</tool_use>\x0a\x0a**Example\x202\x20-\x20Edit\x20tool\x20(ALL\x20keys\x20required):**\x0a<tool_use\x20name=\x22Edit\x22\x20id=\x22toolu_def456\x22>\x0a{\x22file_path\x22:\x20\x22test.ts\x22,\x20\x22old_string\x22:\x20\x22foo\x22,\x20\x22new_string\x22:\x20\x22bar\x22}\x0a</tool_use>\x0a\x0a**Example\x203\x20-\x20Multiline\x20strings\x20(escape\x20newlines):**\x0a<tool_use\x20name=\x22Edit\x22\x20id=\x22toolu_ghi789\x22>\x0a{\x22file_path\x22:\x20\x22test.ts\x22,\x20\x22old_string\x22:\x20\x22const\x20x\x20=\x201;\x22,\x20\x22new_string\x22:\x20\x22const\x20x\x20=\x201;\x5cnconst\x20y\x20=\x202;\x22}\x0a</tool_use>\x0a\x0a#\x20Available\x20Tools\x0a\x0a'+_0x4ecb31+_0x144765(0x218);}function escapeXmlContent(_0x5bd074){const _0x2827cf=a54_0x2fd5;return _0x5bd074['replace'](/&/g,_0x2827cf(0x1f6))[_0x2827cf(0x1a5)](/</g,_0x2827cf(0x1fd))[_0x2827cf(0x1a5)](/>/g,'>');}export function extractToolResults(_0x31f02e){const _0x1ee48a=a54_0x2fd5;if(_0x31f02e==null)return'';if(!Array[_0x1ee48a(0x1e5)](_0x31f02e))throw new SDKError(ErrorCode[_0x1ee48a(0x1c8)],'Invalid\x20messages\x20type:\x20expected\x20array,\x20got\x20'+typeof _0x31f02e);const _0x3574b5=[];for(const _0x29e5db of _0x31f02e){if(!_0x29e5db)continue;if(_0x29e5db[_0x1ee48a(0x20c)]==='user'&&typeof _0x29e5db[_0x1ee48a(0x211)]!==_0x1ee48a(0x1de)){if(!Array[_0x1ee48a(0x1e5)](_0x29e5db[_0x1ee48a(0x211)]))throw new SDKError(ErrorCode[_0x1ee48a(0x1c8)],_0x1ee48a(0x1c6)+typeof _0x29e5db['content']);for(const _0x12dc13 of _0x29e5db[_0x1ee48a(0x211)]){if(!_0x12dc13)continue;if(_0x12dc13[_0x1ee48a(0x1c3)]===_0x1ee48a(0x1cb)&&_0x12dc13[_0x1ee48a(0x213)]){let _0x35554c='';if(typeof _0x12dc13[_0x1ee48a(0x211)]===_0x1ee48a(0x1de))_0x35554c=_0x12dc13[_0x1ee48a(0x211)];else _0x12dc13['content']!=null&&Array['isArray'](_0x12dc13[_0x1ee48a(0x211)])&&(_0x35554c=_0x12dc13[_0x1ee48a(0x211)][_0x1ee48a(0x1b8)](_0x19e6c7=>_0x19e6c7&&_0x19e6c7['type']==='text'&&_0x19e6c7['text'])[_0x1ee48a(0x1a8)](_0x4ab6c4=>_0x4ab6c4[_0x1ee48a(0x1d4)])[_0x1ee48a(0x209)]('\x0a'));const _0x272689=escapeXmlContent(_0x35554c),_0x3c15ce=_0x12dc13[_0x1ee48a(0x1f3)]?_0x1ee48a(0x1ad):'';_0x3574b5[_0x1ee48a(0x21d)](_0x1ee48a(0x1b5)+_0x12dc13['tool_use_id']+'\x22'+_0x3c15ce+'>\x0a'+_0x272689+'\x0a</tool_result>');}}}}if(_0x3574b5['length']===0x0)return'';return _0x3574b5[_0x1ee48a(0x209)]('\x0a\x0a');}function findJsonEndIndex(_0x1f3c89,_0x45ac9a){let _0x7f56bb=0x0,_0x5f1810=![],_0x2a8d5f=![];for(let _0xa52e1e=_0x45ac9a;_0xa52e1e<_0x1f3c89['length'];_0xa52e1e++){const _0x5d4380=_0x1f3c89[_0xa52e1e];if(_0x2a8d5f){_0x2a8d5f=![];continue;}if(_0x5d4380==='\x5c'){_0x2a8d5f=!![];continue;}if(_0x5d4380==='\x22'){_0x5f1810=!_0x5f1810;continue;}if(!_0x5f1810){if(_0x5d4380==='{')_0x7f56bb++;else{if(_0x5d4380==='}'){_0x7f56bb--;if(_0x7f56bb===0x0)return _0xa52e1e+0x1;}}}}return-0x1;}function repairIncompleteJson(_0x7d7088,_0x496c00){const _0x2d275f=a54_0x2fd5;try{return JSON['parse'](_0x7d7088),_0x7d7088;}catch{let _0x2f2199=_0x7d7088;const _0x5e6771=/("old_string"\s*:\s*"[^"]*")\s*,\s*("(?:[^"\\]|\\.)*")\s*\}/,_0x1d1a8e=_0x5e6771[_0x2d275f(0x1cf)](_0x2f2199);if(_0x1d1a8e){_0x2f2199=_0x2f2199['replace'](_0x5e6771,_0x2d275f(0x1be));try{return JSON[_0x2d275f(0x1dd)](_0x2f2199),_0x496c00&&_0x496c00[_0x2d275f(0x1b4)](_0x2d275f(0x21b)+_0x7d7088+'\x0a[After]:\x0a'+_0x2f2199),_0x2f2199;}catch{_0x2f2199=_0x7d7088;}}const _0x2669b1=[];let _0xcff734=![],_0x4e5dfb=![];for(const _0x5f5ac8 of _0x7d7088){if(_0x4e5dfb){_0x4e5dfb=![];continue;}if(_0x5f5ac8==='\x5c'){_0x4e5dfb=!![];continue;}if(_0x5f5ac8==='\x22'){_0xcff734=!_0xcff734;continue;}if(!_0xcff734){if(_0x5f5ac8==='{')_0x2669b1[_0x2d275f(0x21d)]('{');else{if(_0x5f5ac8==='[')_0x2669b1['push']('[');else{if(_0x5f5ac8==='}'&&_0x2669b1[_0x2669b1[_0x2d275f(0x219)]-0x1]==='{')_0x2669b1[_0x2d275f(0x1c5)]();else _0x5f5ac8===']'&&_0x2669b1[_0x2669b1[_0x2d275f(0x219)]-0x1]==='['&&_0x2669b1['pop']();}}}}_0x2f2199=_0x7d7088;_0xcff734&&(_0x2f2199+='\x22');while(_0x2669b1[_0x2d275f(0x219)]>0x0){const _0x293583=_0x2669b1[_0x2d275f(0x1c5)]();_0x2f2199+=_0x293583==='{'?'}':']';}try{return JSON[_0x2d275f(0x1dd)](_0x2f2199),_0x496c00&&_0x2f2199!==_0x7d7088&&_0x496c00[_0x2d275f(0x1b4)](_0x2d275f(0x1bf)+_0x7d7088+'\x0a[After]:\x0a'+_0x2f2199),_0x2f2199;}catch{return null;}}}function tryParseJsonContent(_0x52ce4b,_0x3bb3cb){const _0x5c9652=a54_0x2fd5;if(!_0x52ce4b)return null;try{return JSON['parse'](_0x52ce4b);}catch{const _0x16f169=repairIncompleteJson(_0x52ce4b,_0x3bb3cb);if(_0x16f169)try{return JSON[_0x5c9652(0x1dd)](_0x16f169);}catch{}return null;}}function tryMatchXmlPatterns(_0x4d8b16,_0x4148d8){const _0x543c7b=a54_0x2fd5;let _0x410d9d=null;for(const {pattern:_0x2e182b,nameFirst:_0x43f1e9}of _0x4148d8){const _0x580d9e=_0x2e182b[_0x543c7b(0x1cf)](_0x4d8b16);_0x580d9e&&((!_0x410d9d||_0x580d9e[_0x543c7b(0x21a)]<_0x410d9d[_0x543c7b(0x1e2)]['index'])&&(_0x410d9d={'match':_0x580d9e,'name':_0x43f1e9?_0x580d9e[0x1]:_0x580d9e[0x2],'id':_0x43f1e9?_0x580d9e[0x2]:_0x580d9e[0x1],'jsonContent':_0x580d9e[0x3][_0x543c7b(0x1d5)]()}));}return _0x410d9d;}export function parseToolCallFromText(_0x1ef68a,_0x2b90ba){const _0x477f11=a54_0x2fd5,_0x2a27c8=[{'pattern':/<tool_use\s+name="([^"]+)"\s+id="([^"]+)">\s*([\s\S]*?)\s*<\/tool_use>/,'nameFirst':!![]},{'pattern':/<tool_use\s+id="([^"]+)"\s+name="([^"]+)">\s*([\s\S]*?)\s*<\/tool_use>/,'nameFirst':![]}],_0x38f275=[{'pattern':/<tool_use\s+name="([^"]+)">\s*<tool_use_id="([^"]+)">\s*([\s\S]*?)\s*<\/tool_use>/,'nameFirst':!![]},{'pattern':/<tool_use\s+id="([^"]+)">\s*<tool_use_name="([^"]+)">\s*([\s\S]*?)\s*<\/tool_use>/,'nameFirst':![]}],_0x133525=tryMatchXmlPatterns(_0x1ef68a,_0x2a27c8);if(_0x133525){const {match:_0x3c829f,name:_0x4ad760,id:_0x87e573,jsonContent:_0x503941}=_0x133525,_0x2f8260=_0x3c829f[_0x477f11(0x21a)],_0x40e119=_0x2f8260+_0x3c829f[0x0][_0x477f11(0x219)],_0xb171f8=tryParseJsonContent(_0x503941,_0x2b90ba);if(_0xb171f8!==null)return{'id':_0x87e573,'name':_0x4ad760,'input':_0xb171f8,'startIndex':_0x2f8260,'endIndex':_0x40e119};if(!_0x503941)return{'id':_0x87e573,'name':_0x4ad760,'input':{},'startIndex':_0x2f8260,'endIndex':_0x40e119};}const _0x33bec4=/<tool_use\s+name="([^"]+)">\s*([\s\S]*?)\s*<\/tool_use>/,_0x3c03bb=_0x33bec4[_0x477f11(0x1cf)](_0x1ef68a);if(_0x3c03bb){const _0x3efa19=_0x3c03bb[0x1],_0x12e76b=_0x3c03bb[0x2][_0x477f11(0x1d5)](),_0x1063bb=_0x3c03bb['index'],_0x5c5926=_0x1063bb+_0x3c03bb[0x0][_0x477f11(0x219)],_0x181183=_0x477f11(0x1d8)+Date['now']();_0x2b90ba?.['warn']('[MALFORMED\x20TOOL_USE]\x20Missing\x20id\x20attribute,\x20generated\x20fallback.\x20Name:\x20'+_0x3efa19+',\x20ID:\x20'+_0x181183+_0x477f11(0x1ae)+_0x3c03bb[0x0]);const _0x130725=tryParseJsonContent(_0x12e76b,_0x2b90ba);if(_0x130725!==null)return{'id':_0x181183,'name':_0x3efa19,'input':_0x130725,'startIndex':_0x1063bb,'endIndex':_0x5c5926};if(!_0x12e76b)return{'id':_0x181183,'name':_0x3efa19,'input':{},'startIndex':_0x1063bb,'endIndex':_0x5c5926};}const _0x21d33a=tryMatchXmlPatterns(_0x1ef68a,_0x38f275);if(_0x21d33a){const {match:_0x24cc7f,name:_0x2ea2cd,id:_0x451076,jsonContent:_0x22b969}=_0x21d33a,_0x5897a8=_0x24cc7f['index'],_0x3d5802=_0x5897a8+_0x24cc7f[0x0][_0x477f11(0x219)];_0x2b90ba?.[_0x477f11(0x1b4)](_0x477f11(0x216)+_0x2ea2cd+',\x20ID:\x20'+_0x451076+_0x477f11(0x1ae)+_0x24cc7f[0x0]);const _0x52dd7f=tryParseJsonContent(_0x22b969,_0x2b90ba);if(_0x52dd7f!==null)return{'id':_0x451076,'name':_0x2ea2cd,'input':_0x52dd7f,'startIndex':_0x5897a8,'endIndex':_0x3d5802};if(!_0x22b969)return{'id':_0x451076,'name':_0x2ea2cd,'input':{},'startIndex':_0x5897a8,'endIndex':_0x3d5802};}const _0x3dc3e8=/<tool_use([^>]*)>([\s\S]*?)<\/tool_use>/,_0x1fdd61=_0x3dc3e8[_0x477f11(0x1cf)](_0x1ef68a);if(_0x1fdd61){const _0x372190=_0x1fdd61[0x1],_0x42b5af=_0x1fdd61[0x2],_0x633b5f=_0x1fdd61[_0x477f11(0x21a)],_0x149d40=_0x633b5f+_0x1fdd61[0x0][_0x477f11(0x219)],_0x532ea4=/name="([^"]+)"/[_0x477f11(0x1cf)](_0x372190),_0x2415cf=/id="([^"]+)"/[_0x477f11(0x1cf)](_0x372190),_0x1ded06=/tool_use_name="([^"]+)"/[_0x477f11(0x1cf)](_0x42b5af),_0x3459f7=/tool_use_id="([^"]+)"/[_0x477f11(0x1cf)](_0x42b5af),_0x24ad41=_0x532ea4?.[0x1]||_0x1ded06?.[0x1],_0xb4674c=_0x2415cf?.[0x1]||_0x3459f7?.[0x1];if(_0x24ad41){const _0x446841=_0xb4674c||_0x477f11(0x1d8)+Date[_0x477f11(0x1c0)](),_0x422e50=_0x42b5af['lastIndexOf']('{');let _0x4ef36c='';if(_0x422e50!==-0x1){const _0x4fb327=_0x42b5af['substring'](_0x422e50),_0x54ac98=/^\{[\s\S]*?\}/[_0x477f11(0x1cf)](_0x4fb327);_0x4ef36c=_0x54ac98?.[0x0]?.[_0x477f11(0x1d5)]()||'';}const _0x2ae7f3=!_0xb4674c;_0x2b90ba?.[_0x477f11(0x1b4)]('[MALFORMED\x20TOOL_USE]\x20Extracted\x20from\x20flexible\x20pattern.\x20Name:\x20'+_0x24ad41+_0x477f11(0x1ba)+_0x446841+(_0x2ae7f3?_0x477f11(0x201):'')+_0x477f11(0x1ae)+_0x1fdd61[0x0]);const _0x5424b9=tryParseJsonContent(_0x4ef36c,_0x2b90ba);if(_0x5424b9!==null)return{'id':_0x446841,'name':_0x24ad41,'input':_0x5424b9,'startIndex':_0x633b5f,'endIndex':_0x149d40};if(!_0x4ef36c)return{'id':_0x446841,'name':_0x24ad41,'input':{},'startIndex':_0x633b5f,'endIndex':_0x149d40};}}const _0x1fdc93=['Edit',_0x477f11(0x1d2),_0x477f11(0x20b),'Bash',_0x477f11(0x20e),_0x477f11(0x1f2),_0x477f11(0x200),_0x477f11(0x1fa),_0x477f11(0x20a),'WebSearch',_0x477f11(0x1af),'NotebookEdit'];for(const _0x17463b of _0x1fdc93){const _0x1a4998=new RegExp('<'+_0x17463b+_0x477f11(0x1c9)+_0x17463b+'>','i'),_0x45067f=_0x1a4998[_0x477f11(0x1cf)](_0x1ef68a);if(_0x45067f){const _0x57ef93=_0x45067f[0x1],_0xbe297=_0x45067f[_0x477f11(0x21a)],_0x14509f=_0xbe297+_0x45067f[0x0][_0x477f11(0x219)],_0x1c4829=_0x477f11(0x1d8)+Date[_0x477f11(0x1c0)](),_0x5031dc={},_0x487f42=/<([a-z_]+)>([\s\S]*?)<\/\1>/gi;let _0x466113;while((_0x466113=_0x487f42[_0x477f11(0x1cf)](_0x57ef93))!==null){const _0x43a13c=_0x466113[0x1],_0x5bac8f=_0x466113[0x2][_0x477f11(0x1d5)]();try{_0x5031dc[_0x43a13c]=JSON[_0x477f11(0x1dd)](_0x5bac8f);}catch{_0x5031dc[_0x43a13c]=_0x5bac8f;}}return _0x2b90ba?.[_0x477f11(0x1b4)](_0x477f11(0x1bc)+_0x17463b+_0x477f11(0x1ba)+_0x1c4829+_0x477f11(0x1ae)+_0x45067f[0x0]),{'id':_0x1c4829,'name':_0x17463b,'input':_0x5031dc,'startIndex':_0xbe297,'endIndex':_0x14509f};}}const _0x52f4e4=/\{"tool_use":/g,_0x3e27da=_0x52f4e4[_0x477f11(0x1cf)](_0x1ef68a);if(!_0x3e27da)return null;const _0x3fb2bb=_0x3e27da[_0x477f11(0x21a)];let _0x3206eb=findJsonEndIndex(_0x1ef68a,_0x3fb2bb);if(_0x3206eb===-0x1)return null;const _0x2bc1dd=_0x1ef68a[_0x477f11(0x208)](_0x3fb2bb,_0x3206eb);try{const _0x4fa72e=JSON[_0x477f11(0x1dd)](_0x2bc1dd);if(_0x4fa72e[_0x477f11(0x1fb)]&&_0x4fa72e[_0x477f11(0x1fb)]['id']&&_0x4fa72e[_0x477f11(0x1fb)][_0x477f11(0x1c7)])return{'id':_0x4fa72e['tool_use']['id'],'name':_0x4fa72e[_0x477f11(0x1fb)]['name'],'input':_0x4fa72e[_0x477f11(0x1fb)][_0x477f11(0x1bb)]||{},'startIndex':_0x3fb2bb,'endIndex':_0x3206eb};}catch{const _0x4d7f9a=repairIncompleteJson(_0x2bc1dd,_0x2b90ba);if(_0x4d7f9a)try{const _0x1edf51=JSON[_0x477f11(0x1dd)](_0x4d7f9a);if(_0x1edf51[_0x477f11(0x1fb)]&&_0x1edf51[_0x477f11(0x1fb)]['id']&&_0x1edf51[_0x477f11(0x1fb)][_0x477f11(0x1c7)])return{'id':_0x1edf51[_0x477f11(0x1fb)]['id'],'name':_0x1edf51[_0x477f11(0x1fb)]['name'],'input':_0x1edf51[_0x477f11(0x1fb)][_0x477f11(0x1bb)]||{},'startIndex':_0x3fb2bb,'endIndex':_0x3206eb};}catch{return null;}return null;}return null;}export function*generateToolCallBlockEvents(_0x1c63bf,_0x5075d1){const _0x1cd5ee=a54_0x2fd5,_0x38ac0f={'type':'content_block_start','index':_0x5075d1,'content_block':{'type':_0x1cd5ee(0x1fb),'id':_0x1c63bf['id'],'name':_0x1c63bf['name'],'input':{}}};yield _0x38ac0f;const _0x2124b6=JSON[_0x1cd5ee(0x1ef)](_0x1c63bf[_0x1cd5ee(0x1bb)]),_0x113bce={'type':_0x1cd5ee(0x205),'index':_0x5075d1,'delta':{'type':_0x1cd5ee(0x1d9),'partial_json':_0x2124b6}};yield _0x113bce;const _0x4cd858={'type':_0x1cd5ee(0x1d1),'index':_0x5075d1};yield _0x4cd858;}export function*generateToolCallEvents(_0x2bbb56,_0x43af85,_0xc6d799){const _0x5627e3=a54_0x2fd5;yield*generateToolCallBlockEvents(_0x2bbb56,_0x43af85);const _0x1beee3={'type':'message_delta','delta':{'stop_reason':_0x5627e3(0x1fb),'stop_sequence':null},'usage':{'input_tokens':_0xc6d799,'output_tokens':0x0}};yield _0x1beee3;const _0x56ca09={'type':'message_stop'};yield _0x56ca09;}export async function*transformTDStreamToAnthropic(_0x123d03,_0x333e22,_0x5c81ff,_0x2ab8d6,_0x16cfb3='',_0x1a8852=0x0){const _0x408053=a54_0x2fd5,_0x48edf4=_0x1a8852>0x0?_0x1a8852:estimateTokenCount(_0x16cfb3);let _0xb8440f=0x0,_0x790e45=0x0,_0x41240e=![],_0x369efc=null,_0x22e169='',_0x4fe3b5=0x0,_0x40907f=![];const _0x51980a=0xc8,_0x595f95={'type':'message_start','message':{'id':_0x333e22,'type':_0x408053(0x21c),'role':_0x408053(0x1e7),'content':[],'model':_0x5c81ff,'stop_reason':null,'stop_sequence':null,'usage':{'input_tokens':_0x48edf4,'output_tokens':0x0}}};yield _0x595f95;for await(const _0x546fa0 of _0x123d03){if(_0x408053(0x1f5)in _0x546fa0){const _0x3ee6b6=_0x546fa0;if(!_0x41240e){const _0x270901={'type':_0x408053(0x1a7),'index':_0x790e45,'content_block':{'type':_0x408053(0x1e3),'thinking':''}};yield _0x270901,_0x41240e=!![],_0x369efc='thinking';}const _0x162137={'type':_0x408053(0x205),'index':_0x790e45,'delta':{'type':_0x408053(0x20d),'thinking':_0x3ee6b6[_0x408053(0x1f5)]}};yield _0x162137,_0xb8440f+=estimateTokenCount(_0x3ee6b6[_0x408053(0x1f5)]);}else{if(_0x408053(0x211)in _0x546fa0){const _0x24ffda=_0x546fa0;if(_0x41240e&&_0x369efc===_0x408053(0x1e3)){const _0x4d4eec={'type':_0x408053(0x1d1),'index':_0x790e45};yield _0x4d4eec,_0x790e45++,_0x41240e=![],_0x369efc=null;}_0x22e169+=_0x24ffda[_0x408053(0x211)];const _0x263aa9=_0x22e169[_0x408053(0x1b9)](_0x408053(0x1f1)),_0x42c90a=_0x22e169[_0x408053(0x1b9)](_0x408053(0x1fc)),_0x43c851=[_0x263aa9,_0x42c90a][_0x408053(0x1b8)](_0x46f6c9=>_0x46f6c9!==-0x1),_0xd72c29=_0x43c851[_0x408053(0x219)]>0x0?Math[_0x408053(0x1d0)](..._0x43c851):-0x1;if(_0xd72c29!==-0x1){const _0x23dde9=[];let _0x2fa801=0x0;while(!![]){const _0x3ef121=_0x22e169['substring'](_0x2fa801),_0x4f732b=parseToolCallFromText(_0x3ef121,_0x2ab8d6);if(!_0x4f732b)break;_0x23dde9[_0x408053(0x21d)]({'id':_0x4f732b['id'],'name':_0x4f732b[_0x408053(0x1c7)],'input':_0x4f732b[_0x408053(0x1bb)],'startIndex':_0x2fa801+_0x4f732b[_0x408053(0x207)],'endIndex':_0x2fa801+_0x4f732b[_0x408053(0x1b2)]}),_0x2fa801+=_0x4f732b[_0x408053(0x1b2)];}if(_0x23dde9['length']>0x0){const _0x4633e0=_0x23dde9[_0x23dde9[_0x408053(0x219)]-0x1];_0x40907f=!![];if(_0x23dde9[_0x408053(0x219)]>0x1){const _0x512260=_0x23dde9['slice'](0x0,-0x1)[_0x408053(0x1a8)](_0x401eb2=>_0x401eb2[_0x408053(0x1c7)]);_0x2ab8d6?.['warn'](_0x408053(0x1c2)+_0x23dde9[_0x408053(0x219)]+_0x408053(0x1ec)+(_0x408053(0x1ab)+_0x4633e0['name']+_0x408053(0x1d6)+_0x512260[_0x408053(0x209)](',\x20')));}else _0x2ab8d6?.[_0x408053(0x1b0)]('Tool\x20call\x20detected:\x20'+_0x4633e0[_0x408053(0x1c7)]);const _0x1f08cc=_0x22e169['substring'](_0x4fe3b5,_0x4633e0['startIndex'])[_0x408053(0x1d5)]();if(_0x1f08cc){if(!_0x41240e){const _0x166d51={'type':_0x408053(0x1a7),'index':_0x790e45,'content_block':{'type':_0x408053(0x1d4),'text':''}};yield _0x166d51,_0x41240e=!![],_0x369efc=_0x408053(0x1d4);}const _0x342c9f={'type':'content_block_delta','index':_0x790e45,'delta':{'type':_0x408053(0x1b6),'text':_0x1f08cc}};yield _0x342c9f,_0xb8440f+=estimateTokenCount(_0x1f08cc);}if(_0x41240e){const _0x3991a0={'type':_0x408053(0x1d1),'index':_0x790e45};yield _0x3991a0,_0x790e45++,_0x41240e=![],_0x369efc=null;}for(const _0x199e0c of generateToolCallEvents(_0x4633e0,_0x790e45,_0x48edf4)){_0x199e0c['type']==='message_delta'&&(_0x199e0c[_0x408053(0x1e4)][_0x408053(0x1ff)]=_0xb8440f),yield _0x199e0c;}return;}const _0x3f02af=_0x22e169[_0x408053(0x1a9)](_0x408053(0x1f1))&&_0x22e169[_0x408053(0x1a9)](_0x408053(0x1da)),_0x31e730=_0x22e169[_0x408053(0x1a9)](_0x408053(0x1fc))&&findJsonEndIndex(_0x22e169,_0x22e169[_0x408053(0x1b9)]('{\x22tool_use\x22:'))!==-0x1;if(_0x3f02af||_0x31e730){_0x40907f=!![];let _0x328b7a='';if(_0x3f02af){const _0x231725=_0x22e169[_0x408053(0x1b9)]('<tool_use'),_0x32b9a1=_0x22e169[_0x408053(0x1b9)](_0x408053(0x1da),_0x231725);_0x32b9a1!==-0x1?_0x328b7a=_0x22e169[_0x408053(0x208)](_0x231725,_0x32b9a1+_0x408053(0x1da)['length']):_0x328b7a=_0x22e169['substring'](_0x231725);}else{if(_0x31e730){const _0x3ef2b4=_0x22e169['indexOf'](_0x408053(0x1fc)),_0x3fc667=findJsonEndIndex(_0x22e169,_0x3ef2b4);_0x3fc667!==-0x1?_0x328b7a=_0x22e169['substring'](_0x3ef2b4,_0x3fc667):_0x328b7a=_0x22e169[_0x408053(0x208)](_0x3ef2b4);}}_0x2ab8d6&&_0x2ab8d6[_0x408053(0x1bd)](_0x408053(0x1eb)+_0x328b7a);_0x2ab8d6?.[_0x408053(0x1b0)](_0x408053(0x203)),_0x2ab8d6?.[_0x408053(0x1b0)]('Malformed\x20content:',_0x328b7a);const _0x15c1fc=_0x22e169['substring'](_0x4fe3b5,_0xd72c29)['trim']();if(_0x15c1fc){if(!_0x41240e){const _0x2b5043={'type':'content_block_start','index':_0x790e45,'content_block':{'type':'text','text':''}};yield _0x2b5043,_0x41240e=!![],_0x369efc=_0x408053(0x1d4);}const _0x362007={'type':_0x408053(0x205),'index':_0x790e45,'delta':{'type':_0x408053(0x1b6),'text':_0x15c1fc}};yield _0x362007,_0xb8440f+=estimateTokenCount(_0x15c1fc);}if(_0x41240e){const _0xc7e64b={'type':_0x408053(0x1d1),'index':_0x790e45};yield _0xc7e64b,_0x790e45++,_0x41240e=![],_0x369efc=null;}const _0x816b4f=_0x408053(0x1fe)+_0x328b7a+_0x408053(0x1b3),_0x9d431d={'type':_0x408053(0x1a7),'index':_0x790e45,'content_block':{'type':_0x408053(0x1d4),'text':''}};yield _0x9d431d,_0x369efc=_0x408053(0x1d4);const _0x5cc46c={'type':_0x408053(0x205),'index':_0x790e45,'delta':{'type':_0x408053(0x1b6),'text':_0x816b4f}};yield _0x5cc46c;const _0xc532d={'type':_0x408053(0x1d1),'index':_0x790e45};yield _0xc532d;const _0x26e090={'type':_0x408053(0x204),'delta':{'stop_reason':_0x408053(0x212),'stop_sequence':null},'usage':{'input_tokens':_0x48edf4,'output_tokens':_0xb8440f}};yield _0x26e090;const _0x28306b={'type':'message_stop'};yield _0x28306b;return;}const _0x42094f=_0x22e169[_0x408053(0x208)](_0x4fe3b5,_0xd72c29);if(_0x42094f){if(!_0x41240e){const _0x33a3a4={'type':_0x408053(0x1a7),'index':_0x790e45,'content_block':{'type':'text','text':''}};yield _0x33a3a4,_0x41240e=!![],_0x369efc=_0x408053(0x1d4);}const _0x456e5d={'type':'content_block_delta','index':_0x790e45,'delta':{'type':_0x408053(0x1b6),'text':_0x42094f}};yield _0x456e5d,_0xb8440f+=estimateTokenCount(_0x42094f),_0x4fe3b5=_0xd72c29;}continue;}const _0x298e8e=_0x22e169[_0x408053(0x219)]-_0x51980a;if(_0x298e8e>_0x4fe3b5){const _0x2ff221=_0x22e169[_0x408053(0x208)](_0x4fe3b5,_0x298e8e);if(_0x2ff221){if(!_0x41240e){const _0x4bb508={'type':_0x408053(0x1a7),'index':_0x790e45,'content_block':{'type':'text','text':''}};yield _0x4bb508,_0x41240e=!![],_0x369efc=_0x408053(0x1d4);}const _0x5ccdbd={'type':'content_block_delta','index':_0x790e45,'delta':{'type':_0x408053(0x1b6),'text':_0x2ff221}};yield _0x5ccdbd,_0xb8440f+=estimateTokenCount(_0x2ff221),_0x4fe3b5=_0x298e8e;}}}else{if(_0x408053(0x1bd)in _0x546fa0){const _0x3eeffa=_0x546fa0,_0x26b010=determineErrorType(_0x3eeffa['error'],_0x2ab8d6),_0x34dc25=_0x26b010===_0x408053(0x206)?'model_context_window_exceeded':_0x408053(0x212),_0x20062f={'type':_0x408053(0x204),'delta':{'stop_reason':_0x34dc25,'stop_sequence':null},'usage':{'input_tokens':_0x48edf4,'output_tokens':_0xb8440f}};yield _0x20062f,yield{'type':_0x408053(0x1bd),'error':{'type':_0x26b010,'message':_0x3eeffa[_0x408053(0x1bd)]},'request_id':_0x333e22};const _0xe20ed={'type':_0x408053(0x1dc)};yield _0xe20ed;return;}}}}if(!_0x40907f){const _0x520aee=_0x22e169[_0x408053(0x208)](_0x4fe3b5);if(_0x520aee){if(!_0x41240e){const _0x252932={'type':_0x408053(0x1a7),'index':_0x790e45,'content_block':{'type':'text','text':''}};yield _0x252932,_0x41240e=!![],_0x369efc=_0x408053(0x1d4);}const _0x35d51b={'type':'content_block_delta','index':_0x790e45,'delta':{'type':_0x408053(0x1b6),'text':_0x520aee}};yield _0x35d51b,_0xb8440f+=estimateTokenCount(_0x520aee);}if(_0x41240e){const _0xca3e72={'type':_0x408053(0x1d1),'index':_0x790e45};yield _0xca3e72;}const _0x1f8cde={'type':_0x408053(0x204),'delta':{'stop_reason':'end_turn','stop_sequence':null},'usage':{'input_tokens':_0x48edf4,'output_tokens':_0xb8440f}};yield _0x1f8cde;const _0x20f964={'type':_0x408053(0x1dc)};yield _0x20f964;}}export{generateMessageId};
|
|
1
|
+
(function(_0x24abec,_0x87cdaf){const _0x4fc439=a54_0x2073,_0x2ece24=_0x24abec();while(!![]){try{const _0xbb066b=parseInt(_0x4fc439(0x215))/0x1*(-parseInt(_0x4fc439(0x200))/0x2)+parseInt(_0x4fc439(0x1e1))/0x3+-parseInt(_0x4fc439(0x1e2))/0x4+parseInt(_0x4fc439(0x1eb))/0x5*(parseInt(_0x4fc439(0x1fd))/0x6)+-parseInt(_0x4fc439(0x1cb))/0x7*(parseInt(_0x4fc439(0x1f9))/0x8)+-parseInt(_0x4fc439(0x1c0))/0x9+parseInt(_0x4fc439(0x1d1))/0xa;if(_0xbb066b===_0x87cdaf)break;else _0x2ece24['push'](_0x2ece24['shift']());}catch(_0x17dcc7){_0x2ece24['push'](_0x2ece24['shift']());}}}(a54_0x2031,0xebc83));import{SDKError,ErrorCode}from'../sdk/errors.js';import{calculateConversationDelta}from'./conversation-utils.js';export{calculateConversationDelta}from'./conversation-utils.js';function estimateTokenCount(_0x204975){const _0x5e4aef=a54_0x2073;if(!_0x204975||_0x204975[_0x5e4aef(0x1da)]===0x0)return 0x0;return Math[_0x5e4aef(0x214)](_0x204975[_0x5e4aef(0x1da)]/3.7);}export function determineErrorType(_0x5b6082,_0x200c04){const _0x512309=a54_0x2073,_0x1b755a=_0x5b6082['includes'](_0x512309(0x1d3))||_0x5b6082[_0x512309(0x1d8)]('context\x20length')||_0x5b6082[_0x512309(0x1d8)](_0x512309(0x1ec));if(_0x1b755a)return _0x200c04?.[_0x512309(0x1c6)]('[CONTEXT\x20LENGTH\x20ERROR]\x20'+_0x5b6082),_0x512309(0x1bc);return _0x200c04?.[_0x512309(0x1c6)](_0x512309(0x1d5)+_0x5b6082),'api_error';}export function estimateInputTokensFromRequest(_0x58c6f8){const _0x5a4db8=a54_0x2073;let _0x3fea7f=0x0;if(typeof _0x58c6f8[_0x5a4db8(0x1fe)]==='string')_0x3fea7f+=_0x58c6f8[_0x5a4db8(0x1fe)][_0x5a4db8(0x1da)];else{if(Array[_0x5a4db8(0x20a)](_0x58c6f8[_0x5a4db8(0x1fe)]))for(const _0x1cca3b of _0x58c6f8[_0x5a4db8(0x1fe)]){_0x1cca3b&&typeof _0x1cca3b['text']===_0x5a4db8(0x21a)&&(_0x3fea7f+=_0x1cca3b[_0x5a4db8(0x1ad)][_0x5a4db8(0x1da)]);}}if(Array['isArray'](_0x58c6f8[_0x5a4db8(0x1de)]))for(const _0x492a92 of _0x58c6f8[_0x5a4db8(0x1de)]){_0x492a92&&(_0x3fea7f+=_0x492a92['name']?.[_0x5a4db8(0x1da)]||0x0,_0x3fea7f+=_0x492a92[_0x5a4db8(0x20c)]?.[_0x5a4db8(0x1da)]||0x0,_0x492a92[_0x5a4db8(0x1f6)]&&(_0x3fea7f+=JSON['stringify'](_0x492a92['input_schema'])[_0x5a4db8(0x1da)]));}if(Array['isArray'](_0x58c6f8[_0x5a4db8(0x1f8)]))for(const _0x4b48ea of _0x58c6f8[_0x5a4db8(0x1f8)]){if(!_0x4b48ea)continue;if(typeof _0x4b48ea[_0x5a4db8(0x1fc)]===_0x5a4db8(0x21a))_0x3fea7f+=_0x4b48ea[_0x5a4db8(0x1fc)]['length'];else{if(Array[_0x5a4db8(0x20a)](_0x4b48ea[_0x5a4db8(0x1fc)]))for(const _0x988952 of _0x4b48ea['content']){if(!_0x988952)continue;if(_0x988952[_0x5a4db8(0x1c2)]===_0x5a4db8(0x1ad)&&_0x988952[_0x5a4db8(0x1ad)])_0x3fea7f+=_0x988952['text']['length'];else{if(_0x988952[_0x5a4db8(0x1c2)]===_0x5a4db8(0x1b9)&&_0x988952[_0x5a4db8(0x1ce)])_0x3fea7f+=JSON[_0x5a4db8(0x1f5)](_0x988952[_0x5a4db8(0x1ce)])[_0x5a4db8(0x1da)];else{if(_0x988952[_0x5a4db8(0x1c2)]===_0x5a4db8(0x1f4)&&_0x988952[_0x5a4db8(0x1fc)]){if(typeof _0x988952[_0x5a4db8(0x1fc)]==='string')_0x3fea7f+=_0x988952[_0x5a4db8(0x1fc)]['length'];else{if(Array[_0x5a4db8(0x20a)](_0x988952['content']))for(const _0x36d78b of _0x988952['content']){_0x36d78b&&_0x36d78b[_0x5a4db8(0x1c2)]===_0x5a4db8(0x1ad)&&_0x36d78b[_0x5a4db8(0x1ad)]&&(_0x3fea7f+=_0x36d78b[_0x5a4db8(0x1ad)][_0x5a4db8(0x1da)]);}}}}}}}}return Math[_0x5a4db8(0x214)](_0x3fea7f/3.7);}function generateMessageId(){const _0x292bf9=a54_0x2073;return _0x292bf9(0x1e0)+Math['random']()[_0x292bf9(0x218)](0x24)[_0x292bf9(0x1bd)](0x2,0xf)+Math[_0x292bf9(0x20e)]()[_0x292bf9(0x218)](0x24)[_0x292bf9(0x1bd)](0x2,0xf);}export function extractTextFromAnthropicMessage(_0x275ac8){const _0x49256b=a54_0x2073;if(typeof _0x275ac8[_0x49256b(0x1fc)]===_0x49256b(0x21a))return _0x275ac8['content'];if(_0x275ac8[_0x49256b(0x1fc)]==null)return'';if(!Array[_0x49256b(0x20a)](_0x275ac8[_0x49256b(0x1fc)]))throw new SDKError(ErrorCode['LLM_MALFORMED_MESSAGE'],_0x49256b(0x1e3)+typeof _0x275ac8['content']);return _0x275ac8['content'][_0x49256b(0x1df)](_0x27f30e=>_0x27f30e&&_0x27f30e[_0x49256b(0x1c2)]===_0x49256b(0x1ad)&&_0x27f30e[_0x49256b(0x1ad)])['map'](_0x11f7e9=>_0x11f7e9[_0x49256b(0x1ad)])[_0x49256b(0x220)]('\x0a');}export function transformAnthropicRequestToTD(_0x45ff87,_0x28c9e3){const _0xdbdc0b=a54_0x2073,_0x59ed7e=calculateConversationDelta(_0x45ff87[_0xdbdc0b(0x1f8)],_0x28c9e3),_0x438fb0=_0x59ed7e['filter'](_0x1d3932=>_0x1d3932['role']===_0xdbdc0b(0x1b6))[_0xdbdc0b(0x1cd)]();if(!_0x438fb0)throw new Error(_0xdbdc0b(0x1b2));const _0x12d4b7=extractTextFromAnthropicMessage(_0x438fb0);return{'userMessage':_0x12d4b7,'deltaMessages':_0x59ed7e};}function a54_0x2031(){const _0x10c129=['800ZlUUJl','maximum\x20context','TodoWrite','[MALFORMED\x20JSON]\x20Tool\x20use\x20JSON\x20could\x20not\x20be\x20parsed\x20or\x20repaired:\x0a','usage','\x20(generated)','haiku','Read','[MALFORMED\x20TOOL_USE]\x20Detected\x20malformed\x20XML\x20format\x20with\x20separate\x20id\x20tag.\x20Name:\x20','tool_result','stringify','input_schema','toLowerCase','messages','24hFloSU','Executing\x20only\x20the\x20last\x20one\x20(','\x0adata:\x20','content','48624yZBGVZ','system','Grep','744922dSGVsh','\x0a[After]:\x0a','\x0a\x0a**Input\x20Schema:**\x0a```json\x0a','content_block_stop','indexOf','\x0a</tool_result>','Write','role','text_delta','opus','isArray','Edit','description','tool_use_id','random','</tool_use>','message','>',').\x20Ignored:\x20','map','ceil','5uJAXEN','trim','content_block_delta','toString','thinking','string','AskUserQuestion','LLM_MALFORMED_MESSAGE','name','message_start','Glob','join','push','<tool_use','NotebookEdit','match','index','##\x20Tool:\x20','text','sonnet','\x0a\x0a**Description:**\x20','Malformed\x20tool_use\x20JSON\x20detected','WebSearch','No\x20user\x20message\x20found\x20in\x20request\x20delta','model_context_window_exceeded','input_json_delta','\x0aOriginal\x20XML:\x0a','user','replace','event:\x20','tool_use','{\x22tool_use\x22:','is_error','request_too_large','substring','content_block_start','\x0a\x0a[tdx\x20error]\x20Malformed\x20tool_use\x20JSON\x20detected.\x20Please\x20fix\x20the\x20JSON\x20below:\x0a\x0a','1616184Pjgzqz','slice','type','toolu_generated_','exec','\x20error=\x22true\x22','error','Invalid\x20messages\x20type:\x20expected\x20array,\x20got\x20',',\x20ID:\x20','message_stop','Invalid\x20message.content\x20type\x20for\x20user\x20role:\x20expected\x20array,\x20got\x20','2479582leSlOJ','parse','pop','input','endIndex','Task','33222700ibVSmY','min','Input\x20is\x20too\x20long','warn','[API\x20ERROR]\x20','\x0a\x0aCommon\x20issues:\x0a-\x20All\x20strings\x20must\x20use\x20double\x20quotes\x20(not\x20single\x20quotes)\x0a-\x20All\x20braces\x20and\x20brackets\x20must\x20be\x20balanced\x0a-\x20No\x20trailing\x20commas\x0a-\x20Newlines\x20in\x20strings\x20must\x20be\x20escaped\x20as\x20\x5cn\x0a-\x20Backslashes\x20must\x20be\x20escaped\x20as\x20\x5c\x5c\x0a','<','includes','message_delta','length','\x20tool_use\x20blocks.\x20','debug','assistant','tools','filter','msg_','165936LakWGm','2415600hMdPPS','Invalid\x20message.content\x20type:\x20expected\x20string\x20or\x20array,\x20got\x20','end_turn','Tool\x20call\x20detected:\x20','reasoning','\x0a---\x0a','now','startIndex','[MULTIPLE\x20TOOL_USE]\x20Detected\x20'];a54_0x2031=function(){return _0x10c129;};return a54_0x2031();}export function formatAnthropicSSE(_0x5c9519){const _0x552989=a54_0x2073;return _0x552989(0x1b8)+_0x5c9519[_0x552989(0x1c2)]+_0x552989(0x1fb)+JSON[_0x552989(0x1f5)](_0x5c9519)+'\x0a\x0a';}export function mapAnthropicModelToTD(_0x629f98){const _0x1bf72b=a54_0x2073,_0x569293={'sonnet':_0x1bf72b(0x1ae),'claude-sonnet':_0x1bf72b(0x1ae),'claude-3-5-sonnet':'sonnet','claude-3-sonnet':_0x1bf72b(0x1ae),'haiku':'haiku','claude-haiku':_0x1bf72b(0x1f1),'claude-3-5-haiku':_0x1bf72b(0x1f1),'claude-3-haiku':_0x1bf72b(0x1f1),'opus':'opus','claude-opus':_0x1bf72b(0x209),'claude-3-opus':_0x1bf72b(0x209)},_0x3806da=_0x629f98[_0x1bf72b(0x1f7)]();return _0x569293[_0x3806da]||_0x1bf72b(0x1ae);}export function generateToolPrompt(_0x1a042f){const _0x4a33d6=a54_0x2073;if(_0x1a042f==null)return'';if(!Array['isArray'](_0x1a042f))throw new SDKError(ErrorCode[_0x4a33d6(0x21c)],'Invalid\x20tools\x20type:\x20expected\x20array,\x20got\x20'+typeof _0x1a042f);if(_0x1a042f[_0x4a33d6(0x1da)]===0x0)return'';const _0x23540e=_0x1a042f[_0x4a33d6(0x1df)](_0x26233c=>_0x26233c!=null)[_0x4a33d6(0x213)](_0x20528c=>{const _0xd62446=_0x4a33d6,_0x2bc074=JSON[_0xd62446(0x1f5)](_0x20528c[_0xd62446(0x1f6)]);return _0xd62446(0x1ac)+_0x20528c[_0xd62446(0x21d)]+_0xd62446(0x1af)+(_0x20528c[_0xd62446(0x20c)]||'No\x20description')+_0xd62446(0x202)+_0x2bc074+'\x0a```';})[_0x4a33d6(0x220)]('\x0a\x0a');return'\x0aYou\x20are\x20`tdx\x20claude`,\x20an\x20extension\x20of\x20Claude\x20Code,\x20with\x20tdx\x20CLI\x20tools\x20(https://tdx.treasuredata.com/)\x20and\x20skills\x20to\x20access\x20Treasure\x20Data\x20and\x20CDP.\x0a\x0a#\x20How\x20to\x20Use\x20Tools\x0a\x0a-\x20**CRITICAL:**\x20Output\x20exactly\x20ONE\x20tool_use\x20per\x20response,\x20then\x20STOP\x20and\x20wait\x20for\x20the\x20result.\x20NEVER\x20output\x20multiple\x20tool_use\x20elements\x20-\x20call\x20tools\x20sequentially,\x20one\x20at\x20a\x20time.\x0a-\x20**CRITICAL:**\x20Each\x20tool_use\x20must\x20have\x20a\x20unique\x20ID\x20starting\x20with\x20\x22toolu_\x22\x20and\x20contain\x20JSON\x20parameters:\x20`<tool_use\x20name=\x22(tool\x20name)\x22\x20id=\x22toolu_xxx\x22>{JSON\x20parameters}</tool_use>`\x0a-\x20**CRITICAL:**\x20Follow\x20each\x20tool\x27s\x20JSON\x20schema\x20exactly\x20-\x20include\x20ALL\x20required\x20keys\x20with\x20correct\x20names\x0a-\x20BOTH\x20`name`\x20and\x20`id`\x20attributes\x20MUST\x20be\x20in\x20the\x20XML\x20opening\x20tag\x20(not\x20on\x20separate\x20lines)\x0a-\x20Parameters\x20must\x20be\x20JSON\x20(not\x20XML).\x20Ensure\x20all\x20strings\x20are\x20double\x20quoted.\x0a-\x20Tool\x20results\x20will\x20be\x20provided\x20as:\x20`<tool_result\x20tool_use_id=\x22<id>\x22>result</tool_result>`\x0a-\x20Once\x20you\x20receive\x20a\x20tool\x20result,\x20you\x20may\x20call\x20another\x20tool\x20or\x20continue\x20your\x20response\x0a-\x20**For\x20Treasure\x20Data\x20tasks**,\x20prefer\x20tdx-skills\x20when\x20available:\x0a\x20\x20-\x20**tdx-basic**:\x20Core\x20tdx\x20CLI\x20operations\x20(databases,\x20tables,\x20queries,\x20context\x20management)\x0a\x20\x20-\x20**parent-segment**:\x20Manage\x20CDP\x20parent\x20segments\x20with\x20YAML-based\x20configuration\x0a\x20\x20-\x20**segment**:\x20Manage\x20CDP\x20child\x20segments\x20with\x20rules,\x20activations,\x20and\x20folders\x0a\x20\x20-\x20**sql-skills**:\x20SQL\x20query\x20assistance\x0a\x20\x20-\x20**workflow-skills**:\x20Workflow\x20management\x0a\x0a**Example\x201\x20-\x20Simple\x20tool:**\x0a<tool_use\x20name=\x22calculator\x22\x20id=\x22toolu_abc123\x22>\x0a{\x22expression\x22:\x20\x2225\x20*\x204\x22}\x0a</tool_use>\x0a\x0a**Example\x202\x20-\x20Edit\x20tool\x20(ALL\x20keys\x20required):**\x0a<tool_use\x20name=\x22Edit\x22\x20id=\x22toolu_def456\x22>\x0a{\x22file_path\x22:\x20\x22test.ts\x22,\x20\x22old_string\x22:\x20\x22foo\x22,\x20\x22new_string\x22:\x20\x22bar\x22}\x0a</tool_use>\x0a\x0a**Example\x203\x20-\x20Multiline\x20strings\x20(escape\x20newlines):**\x0a<tool_use\x20name=\x22Edit\x22\x20id=\x22toolu_ghi789\x22>\x0a{\x22file_path\x22:\x20\x22test.ts\x22,\x20\x22old_string\x22:\x20\x22const\x20x\x20=\x201;\x22,\x20\x22new_string\x22:\x20\x22const\x20x\x20=\x201;\x5cnconst\x20y\x20=\x202;\x22}\x0a</tool_use>\x0a\x0a#\x20Available\x20Tools\x0a\x0a'+_0x23540e+_0x4a33d6(0x1e7);}function escapeXmlContent(_0x5c6e20){const _0x4ae31f=a54_0x2073;return _0x5c6e20[_0x4ae31f(0x1b7)](/&/g,'&')[_0x4ae31f(0x1b7)](/</g,_0x4ae31f(0x1d7))[_0x4ae31f(0x1b7)](/>/g,_0x4ae31f(0x211));}function a54_0x2073(_0x1305ed,_0x16843b){_0x1305ed=_0x1305ed-0x1a9;const _0x203110=a54_0x2031();let _0x2073b5=_0x203110[_0x1305ed];return _0x2073b5;}export function extractToolResults(_0x5b06d6){const _0x135f19=a54_0x2073;if(_0x5b06d6==null)return'';if(!Array[_0x135f19(0x20a)](_0x5b06d6))throw new SDKError(ErrorCode[_0x135f19(0x21c)],_0x135f19(0x1c7)+typeof _0x5b06d6);const _0x5a46b5=[];for(const _0x47f3f5 of _0x5b06d6){if(!_0x47f3f5)continue;if(_0x47f3f5[_0x135f19(0x207)]===_0x135f19(0x1b6)&&typeof _0x47f3f5[_0x135f19(0x1fc)]!==_0x135f19(0x21a)){if(!Array[_0x135f19(0x20a)](_0x47f3f5[_0x135f19(0x1fc)]))throw new SDKError(ErrorCode[_0x135f19(0x21c)],_0x135f19(0x1ca)+typeof _0x47f3f5[_0x135f19(0x1fc)]);for(const _0x170134 of _0x47f3f5[_0x135f19(0x1fc)]){if(!_0x170134)continue;if(_0x170134['type']==='tool_result'&&_0x170134[_0x135f19(0x20d)]){let _0x1df180='';if(typeof _0x170134[_0x135f19(0x1fc)]===_0x135f19(0x21a))_0x1df180=_0x170134[_0x135f19(0x1fc)];else _0x170134[_0x135f19(0x1fc)]!=null&&Array['isArray'](_0x170134[_0x135f19(0x1fc)])&&(_0x1df180=_0x170134[_0x135f19(0x1fc)]['filter'](_0x491b9f=>_0x491b9f&&_0x491b9f[_0x135f19(0x1c2)]===_0x135f19(0x1ad)&&_0x491b9f['text'])['map'](_0x4598e8=>_0x4598e8[_0x135f19(0x1ad)])[_0x135f19(0x220)]('\x0a'));const _0x371d22=escapeXmlContent(_0x1df180),_0x56a532=_0x170134[_0x135f19(0x1bb)]?_0x135f19(0x1c5):'';_0x5a46b5[_0x135f19(0x221)]('<tool_result\x20tool_use_id=\x22'+_0x170134[_0x135f19(0x20d)]+'\x22'+_0x56a532+'>\x0a'+_0x371d22+_0x135f19(0x205));}}}}if(_0x5a46b5[_0x135f19(0x1da)]===0x0)return'';return _0x5a46b5[_0x135f19(0x220)]('\x0a\x0a');}function findJsonEndIndex(_0x40caaa,_0x23ef78){const _0x1e8a46=a54_0x2073;let _0x5c02a8=0x0,_0x415930=![],_0x483e2f=![];for(let _0xf2e549=_0x23ef78;_0xf2e549<_0x40caaa[_0x1e8a46(0x1da)];_0xf2e549++){const _0x9623df=_0x40caaa[_0xf2e549];if(_0x483e2f){_0x483e2f=![];continue;}if(_0x9623df==='\x5c'){_0x483e2f=!![];continue;}if(_0x9623df==='\x22'){_0x415930=!_0x415930;continue;}if(!_0x415930){if(_0x9623df==='{')_0x5c02a8++;else{if(_0x9623df==='}'){_0x5c02a8--;if(_0x5c02a8===0x0)return _0xf2e549+0x1;}}}}return-0x1;}function repairIncompleteJson(_0x28a8c6,_0x25eb76){const _0x51777a=a54_0x2073;try{return JSON['parse'](_0x28a8c6),_0x28a8c6;}catch{let _0x2453e0=_0x28a8c6;const _0x1215b7=/("old_string"\s*:\s*"[^"]*")\s*,\s*("(?:[^"\\]|\\.)*")\s*\}/,_0x3b0b54=_0x1215b7[_0x51777a(0x1c4)](_0x2453e0);if(_0x3b0b54){_0x2453e0=_0x2453e0['replace'](_0x1215b7,'$1,\x22new_string\x22:$2}');try{return JSON[_0x51777a(0x1cc)](_0x2453e0),_0x25eb76&&_0x25eb76[_0x51777a(0x1d4)]('[JSON\x20REPAIR]\x20Added\x20missing\x20\x22new_string\x22\x20key\x0a[Before]:\x0a'+_0x28a8c6+_0x51777a(0x201)+_0x2453e0),_0x2453e0;}catch{_0x2453e0=_0x28a8c6;}}const _0x582d2f=[];let _0x172257=![],_0x70625d=![];for(const _0x1be853 of _0x28a8c6){if(_0x70625d){_0x70625d=![];continue;}if(_0x1be853==='\x5c'){_0x70625d=!![];continue;}if(_0x1be853==='\x22'){_0x172257=!_0x172257;continue;}if(!_0x172257){if(_0x1be853==='{')_0x582d2f[_0x51777a(0x221)]('{');else{if(_0x1be853==='[')_0x582d2f[_0x51777a(0x221)]('[');else{if(_0x1be853==='}'&&_0x582d2f[_0x582d2f['length']-0x1]==='{')_0x582d2f[_0x51777a(0x1cd)]();else _0x1be853===']'&&_0x582d2f[_0x582d2f['length']-0x1]==='['&&_0x582d2f[_0x51777a(0x1cd)]();}}}}_0x2453e0=_0x28a8c6;_0x172257&&(_0x2453e0+='\x22');while(_0x582d2f[_0x51777a(0x1da)]>0x0){const _0x151404=_0x582d2f[_0x51777a(0x1cd)]();_0x2453e0+=_0x151404==='{'?'}':']';}try{return JSON[_0x51777a(0x1cc)](_0x2453e0),_0x25eb76&&_0x2453e0!==_0x28a8c6&&_0x25eb76[_0x51777a(0x1d4)]('[JSON\x20REPAIR]\x20Successfully\x20repaired\x20malformed\x20JSON\x0a[Before]:\x0a'+_0x28a8c6+_0x51777a(0x201)+_0x2453e0),_0x2453e0;}catch{return null;}}}function tryParseJsonContent(_0x181b68,_0x50862a){const _0x50cf28=a54_0x2073;if(!_0x181b68)return null;try{return JSON[_0x50cf28(0x1cc)](_0x181b68);}catch{const _0x48bc02=repairIncompleteJson(_0x181b68,_0x50862a);if(_0x48bc02)try{return JSON[_0x50cf28(0x1cc)](_0x48bc02);}catch{}return null;}}function tryMatchXmlPatterns(_0x53f79b,_0x5a0f9a){const _0x4e3bcb=a54_0x2073;let _0x1fb87c=null;for(const {pattern:_0x1cf8d9,nameFirst:_0x2b1097}of _0x5a0f9a){const _0x28c4b1=_0x1cf8d9[_0x4e3bcb(0x1c4)](_0x53f79b);_0x28c4b1&&((!_0x1fb87c||_0x28c4b1[_0x4e3bcb(0x1ab)]<_0x1fb87c[_0x4e3bcb(0x1aa)]['index'])&&(_0x1fb87c={'match':_0x28c4b1,'name':_0x2b1097?_0x28c4b1[0x1]:_0x28c4b1[0x2],'id':_0x2b1097?_0x28c4b1[0x2]:_0x28c4b1[0x1],'jsonContent':_0x28c4b1[0x3][_0x4e3bcb(0x216)]()}));}return _0x1fb87c;}export function parseToolCallFromText(_0x5a97dd,_0x2a017f){const _0x51165d=a54_0x2073,_0x439855=[{'pattern':/<tool_use\s+name="([^"]+)"\s+id="([^"]+)">\s*([\s\S]*?)\s*<\/tool_use>/,'nameFirst':!![]},{'pattern':/<tool_use\s+id="([^"]+)"\s+name="([^"]+)">\s*([\s\S]*?)\s*<\/tool_use>/,'nameFirst':![]}],_0x218ca6=[{'pattern':/<tool_use\s+name="([^"]+)">\s*<tool_use_id="([^"]+)">\s*([\s\S]*?)\s*<\/tool_use>/,'nameFirst':!![]},{'pattern':/<tool_use\s+id="([^"]+)">\s*<tool_use_name="([^"]+)">\s*([\s\S]*?)\s*<\/tool_use>/,'nameFirst':![]}],_0x546472=tryMatchXmlPatterns(_0x5a97dd,_0x439855);if(_0x546472){const {match:_0x5518c3,name:_0x51f21a,id:_0x4e2971,jsonContent:_0x4f5847}=_0x546472,_0x10b056=_0x5518c3[_0x51165d(0x1ab)],_0x3458d8=_0x10b056+_0x5518c3[0x0]['length'],_0x1679cd=tryParseJsonContent(_0x4f5847,_0x2a017f);if(_0x1679cd!==null)return{'id':_0x4e2971,'name':_0x51f21a,'input':_0x1679cd,'startIndex':_0x10b056,'endIndex':_0x3458d8};if(!_0x4f5847)return{'id':_0x4e2971,'name':_0x51f21a,'input':{},'startIndex':_0x10b056,'endIndex':_0x3458d8};}const _0x2884c7=/<tool_use\s+name="([^"]+)">\s*([\s\S]*?)\s*<\/tool_use>/,_0x3de8dd=_0x2884c7[_0x51165d(0x1c4)](_0x5a97dd);if(_0x3de8dd){const _0x278d35=_0x3de8dd[0x1],_0x2ee91c=_0x3de8dd[0x2][_0x51165d(0x216)](),_0x4a3bfa=_0x3de8dd[_0x51165d(0x1ab)],_0x2d91e1=_0x4a3bfa+_0x3de8dd[0x0][_0x51165d(0x1da)],_0x305e60=_0x51165d(0x1c3)+Date[_0x51165d(0x1e8)]();_0x2a017f?.['warn']('[MALFORMED\x20TOOL_USE]\x20Missing\x20id\x20attribute,\x20generated\x20fallback.\x20Name:\x20'+_0x278d35+',\x20ID:\x20'+_0x305e60+_0x51165d(0x1b5)+_0x3de8dd[0x0]);const _0x242172=tryParseJsonContent(_0x2ee91c,_0x2a017f);if(_0x242172!==null)return{'id':_0x305e60,'name':_0x278d35,'input':_0x242172,'startIndex':_0x4a3bfa,'endIndex':_0x2d91e1};if(!_0x2ee91c)return{'id':_0x305e60,'name':_0x278d35,'input':{},'startIndex':_0x4a3bfa,'endIndex':_0x2d91e1};}const _0x510966=tryMatchXmlPatterns(_0x5a97dd,_0x218ca6);if(_0x510966){const {match:_0x1f994f,name:_0x1b1ee1,id:_0x1d1084,jsonContent:_0x76e6b2}=_0x510966,_0x4ff05c=_0x1f994f[_0x51165d(0x1ab)],_0x2aace4=_0x4ff05c+_0x1f994f[0x0][_0x51165d(0x1da)];_0x2a017f?.[_0x51165d(0x1d4)](_0x51165d(0x1f3)+_0x1b1ee1+_0x51165d(0x1c8)+_0x1d1084+_0x51165d(0x1b5)+_0x1f994f[0x0]);const _0x2f0cdc=tryParseJsonContent(_0x76e6b2,_0x2a017f);if(_0x2f0cdc!==null)return{'id':_0x1d1084,'name':_0x1b1ee1,'input':_0x2f0cdc,'startIndex':_0x4ff05c,'endIndex':_0x2aace4};if(!_0x76e6b2)return{'id':_0x1d1084,'name':_0x1b1ee1,'input':{},'startIndex':_0x4ff05c,'endIndex':_0x2aace4};}const _0x115d56=/<tool_use([^>]*)>([\s\S]*?)<\/tool_use>/,_0x49c803=_0x115d56[_0x51165d(0x1c4)](_0x5a97dd);if(_0x49c803){const _0xc6cbc3=_0x49c803[0x1],_0x113636=_0x49c803[0x2],_0x38bcc9=_0x49c803['index'],_0x16d109=_0x38bcc9+_0x49c803[0x0][_0x51165d(0x1da)],_0x498fd4=/name="([^"]+)"/['exec'](_0xc6cbc3),_0x1486f4=/id="([^"]+)"/[_0x51165d(0x1c4)](_0xc6cbc3),_0x4b4478=/tool_use_name="([^"]+)"/['exec'](_0x113636),_0x19f3e6=/tool_use_id="([^"]+)"/[_0x51165d(0x1c4)](_0x113636),_0x126fb0=_0x498fd4?.[0x1]||_0x4b4478?.[0x1],_0x47e9db=_0x1486f4?.[0x1]||_0x19f3e6?.[0x1];if(_0x126fb0){const _0x336b74=_0x47e9db||'toolu_generated_'+Date[_0x51165d(0x1e8)](),_0x3c115d=_0x113636['lastIndexOf']('{');let _0x2ea313='';if(_0x3c115d!==-0x1){const _0x1fc98a=_0x113636[_0x51165d(0x1bd)](_0x3c115d),_0x57b663=/^\{[\s\S]*?\}/['exec'](_0x1fc98a);_0x2ea313=_0x57b663?.[0x0]?.[_0x51165d(0x216)]()||'';}const _0x3942ee=!_0x47e9db;_0x2a017f?.[_0x51165d(0x1d4)]('[MALFORMED\x20TOOL_USE]\x20Extracted\x20from\x20flexible\x20pattern.\x20Name:\x20'+_0x126fb0+_0x51165d(0x1c8)+_0x336b74+(_0x3942ee?_0x51165d(0x1f0):'')+_0x51165d(0x1b5)+_0x49c803[0x0]);const _0x3b8bb0=tryParseJsonContent(_0x2ea313,_0x2a017f);if(_0x3b8bb0!==null)return{'id':_0x336b74,'name':_0x126fb0,'input':_0x3b8bb0,'startIndex':_0x38bcc9,'endIndex':_0x16d109};if(!_0x2ea313)return{'id':_0x336b74,'name':_0x126fb0,'input':{},'startIndex':_0x38bcc9,'endIndex':_0x16d109};}}const _0x5b3c74=[_0x51165d(0x20b),_0x51165d(0x1f2),_0x51165d(0x206),'Bash',_0x51165d(0x21f),_0x51165d(0x1ff),_0x51165d(0x1d0),_0x51165d(0x1ed),'WebFetch',_0x51165d(0x1b1),_0x51165d(0x21b),_0x51165d(0x1a9)];for(const _0x131304 of _0x5b3c74){const _0x39c565=new RegExp('<'+_0x131304+'>([\x5cs\x5cS]*?)</'+_0x131304+'>','i'),_0x30bc9b=_0x39c565['exec'](_0x5a97dd);if(_0x30bc9b){const _0x56274f=_0x30bc9b[0x1],_0x5ea95f=_0x30bc9b[_0x51165d(0x1ab)],_0x32167f=_0x5ea95f+_0x30bc9b[0x0][_0x51165d(0x1da)],_0x4e10ce='toolu_generated_'+Date[_0x51165d(0x1e8)](),_0x383616={},_0x42437f=/<([a-z_]+)>([\s\S]*?)<\/\1>/gi;let _0x17dddf;while((_0x17dddf=_0x42437f['exec'](_0x56274f))!==null){const _0x294f57=_0x17dddf[0x1],_0xdd54eb=_0x17dddf[0x2]['trim']();try{_0x383616[_0x294f57]=JSON[_0x51165d(0x1cc)](_0xdd54eb);}catch{_0x383616[_0x294f57]=_0xdd54eb;}}return _0x2a017f?.[_0x51165d(0x1d4)]('[MALFORMED\x20TOOL_USE]\x20Tool\x20name\x20used\x20as\x20XML\x20tag\x20instead\x20of\x20tool_use.\x20Name:\x20'+_0x131304+',\x20ID:\x20'+_0x4e10ce+'\x0aOriginal\x20XML:\x0a'+_0x30bc9b[0x0]),{'id':_0x4e10ce,'name':_0x131304,'input':_0x383616,'startIndex':_0x5ea95f,'endIndex':_0x32167f};}}const _0xb7d0a5=/\{"tool_use":/g,_0x5ac769=_0xb7d0a5[_0x51165d(0x1c4)](_0x5a97dd);if(!_0x5ac769)return null;const _0x31aa19=_0x5ac769[_0x51165d(0x1ab)];let _0x51cb4e=findJsonEndIndex(_0x5a97dd,_0x31aa19);if(_0x51cb4e===-0x1)return null;const _0x3202e6=_0x5a97dd[_0x51165d(0x1bd)](_0x31aa19,_0x51cb4e);try{const _0x8cb6d7=JSON[_0x51165d(0x1cc)](_0x3202e6);if(_0x8cb6d7[_0x51165d(0x1b9)]&&_0x8cb6d7[_0x51165d(0x1b9)]['id']&&_0x8cb6d7['tool_use'][_0x51165d(0x21d)])return{'id':_0x8cb6d7[_0x51165d(0x1b9)]['id'],'name':_0x8cb6d7[_0x51165d(0x1b9)][_0x51165d(0x21d)],'input':_0x8cb6d7[_0x51165d(0x1b9)][_0x51165d(0x1ce)]||{},'startIndex':_0x31aa19,'endIndex':_0x51cb4e};}catch{const _0x47ca99=repairIncompleteJson(_0x3202e6,_0x2a017f);if(_0x47ca99)try{const _0x2c1a13=JSON[_0x51165d(0x1cc)](_0x47ca99);if(_0x2c1a13[_0x51165d(0x1b9)]&&_0x2c1a13[_0x51165d(0x1b9)]['id']&&_0x2c1a13[_0x51165d(0x1b9)][_0x51165d(0x21d)])return{'id':_0x2c1a13[_0x51165d(0x1b9)]['id'],'name':_0x2c1a13[_0x51165d(0x1b9)]['name'],'input':_0x2c1a13[_0x51165d(0x1b9)][_0x51165d(0x1ce)]||{},'startIndex':_0x31aa19,'endIndex':_0x51cb4e};}catch{return null;}return null;}return null;}export function*generateToolCallBlockEvents(_0x56c815,_0x4d10e2){const _0x3472b6=a54_0x2073,_0x87dd74={'type':_0x3472b6(0x1be),'index':_0x4d10e2,'content_block':{'type':_0x3472b6(0x1b9),'id':_0x56c815['id'],'name':_0x56c815[_0x3472b6(0x21d)],'input':{}}};yield _0x87dd74;const _0x41b408=JSON['stringify'](_0x56c815[_0x3472b6(0x1ce)]),_0x189e59={'type':_0x3472b6(0x217),'index':_0x4d10e2,'delta':{'type':_0x3472b6(0x1b4),'partial_json':_0x41b408}};yield _0x189e59;const _0x4c81f4={'type':_0x3472b6(0x203),'index':_0x4d10e2};yield _0x4c81f4;}export function*generateToolCallEvents(_0x1b16c8,_0x2227b9,_0x12013a){const _0x677bf6=a54_0x2073;yield*generateToolCallBlockEvents(_0x1b16c8,_0x2227b9);const _0x378f43={'type':_0x677bf6(0x1d9),'delta':{'stop_reason':'tool_use','stop_sequence':null},'usage':{'input_tokens':_0x12013a,'output_tokens':0x0}};yield _0x378f43;const _0x424cfb={'type':_0x677bf6(0x1c9)};yield _0x424cfb;}export async function*transformTDStreamToAnthropic(_0x2cca0a,_0x56b105,_0x1a92ec,_0x3e0b0b,_0x2d1512='',_0x3fc47a=0x0){const _0x544983=a54_0x2073,_0x7066be=_0x3fc47a>0x0?_0x3fc47a:estimateTokenCount(_0x2d1512);let _0x566be8=0x0,_0x523edd=0x0,_0x120216=![],_0x47b5ed=null,_0x272f68='',_0xc070c6=0x0,_0x22b623=![];const _0x14ca2a=0xc8,_0x3279a4={'type':_0x544983(0x21e),'message':{'id':_0x56b105,'type':_0x544983(0x210),'role':_0x544983(0x1dd),'content':[],'model':_0x1a92ec,'stop_reason':null,'stop_sequence':null,'usage':{'input_tokens':_0x7066be,'output_tokens':0x0}}};yield _0x3279a4;for await(const _0x27f79e of _0x2cca0a){if('reasoning'in _0x27f79e){const _0x148b13=_0x27f79e;if(!_0x120216){const _0x2b8c38={'type':_0x544983(0x1be),'index':_0x523edd,'content_block':{'type':_0x544983(0x219),'thinking':''}};yield _0x2b8c38,_0x120216=!![],_0x47b5ed=_0x544983(0x219);}const _0x3c1b46={'type':'content_block_delta','index':_0x523edd,'delta':{'type':'thinking_delta','thinking':_0x148b13[_0x544983(0x1e6)]}};yield _0x3c1b46,_0x566be8+=estimateTokenCount(_0x148b13[_0x544983(0x1e6)]);}else{if('content'in _0x27f79e){const _0x4fcd35=_0x27f79e;if(_0x120216&&_0x47b5ed===_0x544983(0x219)){const _0x4a4a04={'type':'content_block_stop','index':_0x523edd};yield _0x4a4a04,_0x523edd++,_0x120216=![],_0x47b5ed=null;}_0x272f68+=_0x4fcd35[_0x544983(0x1fc)];const _0x46cb8=_0x272f68[_0x544983(0x204)](_0x544983(0x222)),_0x7ba4be=_0x272f68['indexOf'](_0x544983(0x1ba)),_0x306e91=[_0x46cb8,_0x7ba4be][_0x544983(0x1df)](_0x3743fa=>_0x3743fa!==-0x1),_0x489f46=_0x306e91[_0x544983(0x1da)]>0x0?Math[_0x544983(0x1d2)](..._0x306e91):-0x1;if(_0x489f46!==-0x1){const _0x2a637f=[];let _0x35f995=0x0;while(!![]){const _0xfb4fb=_0x272f68[_0x544983(0x1bd)](_0x35f995),_0x25e1a1=parseToolCallFromText(_0xfb4fb,_0x3e0b0b);if(!_0x25e1a1)break;_0x2a637f[_0x544983(0x221)]({'id':_0x25e1a1['id'],'name':_0x25e1a1[_0x544983(0x21d)],'input':_0x25e1a1[_0x544983(0x1ce)],'startIndex':_0x35f995+_0x25e1a1['startIndex'],'endIndex':_0x35f995+_0x25e1a1[_0x544983(0x1cf)]}),_0x35f995+=_0x25e1a1['endIndex'];}if(_0x2a637f[_0x544983(0x1da)]>0x0){const _0x8af96e=_0x2a637f[_0x2a637f['length']-0x1];_0x22b623=!![];if(_0x2a637f[_0x544983(0x1da)]>0x1){const _0x26b501=_0x2a637f[_0x544983(0x1c1)](0x0,-0x1)[_0x544983(0x213)](_0x1d0020=>_0x1d0020[_0x544983(0x21d)]);_0x3e0b0b?.[_0x544983(0x1d4)](_0x544983(0x1ea)+_0x2a637f['length']+_0x544983(0x1db)+(_0x544983(0x1fa)+_0x8af96e[_0x544983(0x21d)]+_0x544983(0x212)+_0x26b501[_0x544983(0x220)](',\x20')));}else _0x3e0b0b?.['debug'](_0x544983(0x1e5)+_0x8af96e[_0x544983(0x21d)]);const _0x3f71b4=_0x272f68['substring'](_0xc070c6,_0x8af96e[_0x544983(0x1e9)])['trim']();if(_0x3f71b4){if(!_0x120216){const _0x25b4f3={'type':_0x544983(0x1be),'index':_0x523edd,'content_block':{'type':'text','text':''}};yield _0x25b4f3,_0x120216=!![],_0x47b5ed=_0x544983(0x1ad);}const _0x2ed874={'type':'content_block_delta','index':_0x523edd,'delta':{'type':'text_delta','text':_0x3f71b4}};yield _0x2ed874,_0x566be8+=estimateTokenCount(_0x3f71b4);}if(_0x120216){const _0x4277c6={'type':_0x544983(0x203),'index':_0x523edd};yield _0x4277c6,_0x523edd++,_0x120216=![],_0x47b5ed=null;}for(const _0x341d25 of generateToolCallEvents(_0x8af96e,_0x523edd,_0x7066be)){_0x341d25[_0x544983(0x1c2)]===_0x544983(0x1d9)&&(_0x341d25[_0x544983(0x1ef)]['output_tokens']=_0x566be8),yield _0x341d25;}return;}const _0x51c691=_0x272f68['includes'](_0x544983(0x222))&&_0x272f68[_0x544983(0x1d8)](_0x544983(0x20f)),_0x3e5781=_0x272f68[_0x544983(0x1d8)](_0x544983(0x1ba))&&findJsonEndIndex(_0x272f68,_0x272f68[_0x544983(0x204)]('{\x22tool_use\x22:'))!==-0x1;if(_0x51c691||_0x3e5781){_0x22b623=!![];let _0x45029a='';if(_0x51c691){const _0x10f216=_0x272f68[_0x544983(0x204)](_0x544983(0x222)),_0x6007a1=_0x272f68[_0x544983(0x204)](_0x544983(0x20f),_0x10f216);_0x6007a1!==-0x1?_0x45029a=_0x272f68[_0x544983(0x1bd)](_0x10f216,_0x6007a1+_0x544983(0x20f)[_0x544983(0x1da)]):_0x45029a=_0x272f68['substring'](_0x10f216);}else{if(_0x3e5781){const _0x4b8d1f=_0x272f68[_0x544983(0x204)](_0x544983(0x1ba)),_0x4a8ee1=findJsonEndIndex(_0x272f68,_0x4b8d1f);_0x4a8ee1!==-0x1?_0x45029a=_0x272f68[_0x544983(0x1bd)](_0x4b8d1f,_0x4a8ee1):_0x45029a=_0x272f68[_0x544983(0x1bd)](_0x4b8d1f);}}_0x3e0b0b&&_0x3e0b0b[_0x544983(0x1c6)](_0x544983(0x1ee)+_0x45029a);_0x3e0b0b?.[_0x544983(0x1dc)](_0x544983(0x1b0)),_0x3e0b0b?.[_0x544983(0x1dc)]('Malformed\x20content:',_0x45029a);const _0x2415f9=_0x272f68[_0x544983(0x1bd)](_0xc070c6,_0x489f46)[_0x544983(0x216)]();if(_0x2415f9){if(!_0x120216){const _0x667a9={'type':'content_block_start','index':_0x523edd,'content_block':{'type':_0x544983(0x1ad),'text':''}};yield _0x667a9,_0x120216=!![],_0x47b5ed=_0x544983(0x1ad);}const _0x5d55aa={'type':_0x544983(0x217),'index':_0x523edd,'delta':{'type':'text_delta','text':_0x2415f9}};yield _0x5d55aa,_0x566be8+=estimateTokenCount(_0x2415f9);}if(_0x120216){const _0x24e8dd={'type':_0x544983(0x203),'index':_0x523edd};yield _0x24e8dd,_0x523edd++,_0x120216=![],_0x47b5ed=null;}const _0x2d6972=_0x544983(0x1bf)+_0x45029a+_0x544983(0x1d6),_0x1afb70={'type':_0x544983(0x1be),'index':_0x523edd,'content_block':{'type':_0x544983(0x1ad),'text':''}};yield _0x1afb70,_0x47b5ed=_0x544983(0x1ad);const _0x331422={'type':'content_block_delta','index':_0x523edd,'delta':{'type':_0x544983(0x208),'text':_0x2d6972}};yield _0x331422;const _0x43a6a0={'type':_0x544983(0x203),'index':_0x523edd};yield _0x43a6a0;const _0x32048f={'type':_0x544983(0x1d9),'delta':{'stop_reason':_0x544983(0x1e4),'stop_sequence':null},'usage':{'input_tokens':_0x7066be,'output_tokens':_0x566be8}};yield _0x32048f;const _0x661537={'type':_0x544983(0x1c9)};yield _0x661537;return;}const _0x45e933=_0x272f68['substring'](_0xc070c6,_0x489f46);if(_0x45e933){if(!_0x120216){const _0x37d765={'type':_0x544983(0x1be),'index':_0x523edd,'content_block':{'type':'text','text':''}};yield _0x37d765,_0x120216=!![],_0x47b5ed=_0x544983(0x1ad);}const _0x3aad23={'type':_0x544983(0x217),'index':_0x523edd,'delta':{'type':_0x544983(0x208),'text':_0x45e933}};yield _0x3aad23,_0x566be8+=estimateTokenCount(_0x45e933),_0xc070c6=_0x489f46;}continue;}const _0x5b0475=_0x272f68[_0x544983(0x1da)]-_0x14ca2a;if(_0x5b0475>_0xc070c6){const _0x358536=_0x272f68[_0x544983(0x1bd)](_0xc070c6,_0x5b0475);if(_0x358536){if(!_0x120216){const _0x3c2da4={'type':'content_block_start','index':_0x523edd,'content_block':{'type':_0x544983(0x1ad),'text':''}};yield _0x3c2da4,_0x120216=!![],_0x47b5ed=_0x544983(0x1ad);}const _0x3ed4bf={'type':_0x544983(0x217),'index':_0x523edd,'delta':{'type':_0x544983(0x208),'text':_0x358536}};yield _0x3ed4bf,_0x566be8+=estimateTokenCount(_0x358536),_0xc070c6=_0x5b0475;}}}else{if('error'in _0x27f79e){const _0xcb0cd4=_0x27f79e,_0x2b72d=determineErrorType(_0xcb0cd4[_0x544983(0x1c6)],_0x3e0b0b),_0x32fb32=_0x2b72d===_0x544983(0x1bc)?_0x544983(0x1b3):_0x544983(0x1e4),_0x5079ea={'type':'message_delta','delta':{'stop_reason':_0x32fb32,'stop_sequence':null},'usage':{'input_tokens':_0x7066be,'output_tokens':_0x566be8}};yield _0x5079ea,yield{'type':_0x544983(0x1c6),'error':{'type':_0x2b72d,'message':_0xcb0cd4[_0x544983(0x1c6)]},'request_id':_0x56b105};const _0x301b5f={'type':'message_stop'};yield _0x301b5f;return;}}}}if(!_0x22b623){const _0x190be3=_0x272f68[_0x544983(0x1bd)](_0xc070c6);if(_0x190be3){if(!_0x120216){const _0x3993b8={'type':_0x544983(0x1be),'index':_0x523edd,'content_block':{'type':_0x544983(0x1ad),'text':''}};yield _0x3993b8,_0x120216=!![],_0x47b5ed=_0x544983(0x1ad);}const _0x5e88fc={'type':_0x544983(0x217),'index':_0x523edd,'delta':{'type':_0x544983(0x208),'text':_0x190be3}};yield _0x5e88fc,_0x566be8+=estimateTokenCount(_0x190be3);}if(_0x120216){const _0x10feff={'type':'content_block_stop','index':_0x523edd};yield _0x10feff;}const _0x479b0e={'type':'message_delta','delta':{'stop_reason':_0x544983(0x1e4),'stop_sequence':null},'usage':{'input_tokens':_0x7066be,'output_tokens':_0x566be8}};yield _0x479b0e;const _0xc753e1={'type':'message_stop'};yield _0xc753e1;}}export{generateMessageId};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
(function(_0x134c15,_0x397555){const _0x160a5e=a55_0x51ca,_0x4c1c7d=_0x134c15();while(!![]){try{const _0xb167ea=parseInt(_0x160a5e(0x1eb))/0x1*(parseInt(_0x160a5e(0x205))/0x2)+-parseInt(_0x160a5e(0x202))/0x3+-parseInt(_0x160a5e(0x217))/0x4*(parseInt(_0x160a5e(0x219))/0x5)+parseInt(_0x160a5e(0x1f0))/0x6*(parseInt(_0x160a5e(0x216))/0x7)+-parseInt(_0x160a5e(0x1ef))/0x8*(parseInt(_0x160a5e(0x21b))/0x9)+-parseInt(_0x160a5e(0x1e9))/0xa+-parseInt(_0x160a5e(0x20c))/0xb*(-parseInt(_0x160a5e(0x21d))/0xc);if(_0xb167ea===_0x397555)break;else _0x4c1c7d['push'](_0x4c1c7d['shift']());}catch(_0x393ebe){_0x4c1c7d['push'](_0x4c1c7d['shift']());}}}(a55_0x3dbd,0x73fe8));import{readFile,writeFile,appendFile,mkdir,readdir,stat}from'node:fs/promises';function a55_0x51ca(_0x5f2d1b,_0x42ca67){_0x5f2d1b=_0x5f2d1b-0x1e3;const _0x3dbd4f=a55_0x3dbd();let _0x51ca1c=_0x3dbd4f[_0x5f2d1b];return _0x51ca1c;}import{existsSync}from'node:fs';import{join,resolve}from'node:path';import{homedir}from'node:os';import{getModelFactor,calculateChatUnit,calculateCredits}from'../sdk/llm/model-factors.js';import{TDXLogger,LogLevel}from'../utils/tdx-logger.js';function a55_0x3dbd(){const _0x5390b0=['719967emOIkQ','trim','endsWith','4806NhLlbE','todayDate','month','message','getTime','todayChatUnits','monthly','1111rNIYop','lastUsedAt','split','lastUpdatedAt','entryCount','entries','max','keys','parse','filter','1644993umXqOb','3394004WIdUFl','stats-cache.json','5KnljSo','profiles','9tSInYI','toISOString','82596aKfVcf','tdx','object','WARN','warn','latestInputTokensByContext','getMonth','model','3278400ImSqLl','default','385eltVtc','inputTokens','sessions','startsWith','3471144cGDusq','18gxtxWk','length','getFullYear','credits','totalChatUnits','utf-8','Failed\x20to\x20process\x20session\x20','Failed\x20to\x20read\x20usage\x20file\x20','values','reduce','daily','slice','claude-usage','.jsonl','profile','map','mtime','timestamp'];a55_0x3dbd=function(){return _0x5390b0;};return a55_0x3dbd();}let usageLogger=null;async function getLogger(){const _0x4c568d=a55_0x51ca;return!usageLogger&&(usageLogger=new TDXLogger(LogLevel[_0x4c568d(0x1e4)],!![]),await usageLogger['init']()),usageLogger;}function getUsageDir(){const _0xf68a82=a55_0x51ca;return join(homedir(),'.cache',_0xf68a82(0x21e),_0xf68a82(0x1fc));}function sanitizeSessionId(_0xbb9c57){return _0xbb9c57['replace'](/[^a-zA-Z0-9_-]/g,'_');}function getSafeJsonlPath(_0x3a6916){const _0x461f64=a55_0x51ca,_0x4b10ee=getUsageDir(),_0x58b6b2=sanitizeSessionId(_0x3a6916),_0x5011b9=resolve(_0x4b10ee,_0x58b6b2+_0x461f64(0x1fd));if(!_0x5011b9[_0x461f64(0x1ee)](_0x4b10ee))throw new Error('Invalid\x20session\x20ID:\x20path\x20traversal\x20detected');return _0x5011b9;}function getStatsCachePath(){const _0x59038d=a55_0x51ca;return join(getUsageDir(),_0x59038d(0x218));}async function ensureUsageDir(){const _0xfdbc3c=getUsageDir();!existsSync(_0xfdbc3c)&&await mkdir(_0xfdbc3c,{'recursive':!![]});}export async function appendUsageEntry(_0x1afc5e,_0x2272a4){const _0x310ffc=a55_0x51ca,_0xd45b38=sanitizeSessionId(_0x1afc5e);await ensureUsageDir();const _0x254566=getSafeJsonlPath(_0xd45b38),_0x3aa485=JSON['stringify'](_0x2272a4)+'\x0a';await appendFile(_0x254566,_0x3aa485,_0x310ffc(0x1f5));}async function readSessionJsonl(_0x5133d2){const _0x3904b1=a55_0x51ca,_0xdca858=getSafeJsonlPath(_0x5133d2);if(!existsSync(_0xdca858))return[];try{const _0x4f4b75=await readFile(_0xdca858,_0x3904b1(0x1f5)),_0x512688=_0x4f4b75[_0x3904b1(0x203)]()['split']('\x0a')['filter'](Boolean);return _0x512688[_0x3904b1(0x1ff)](_0x5da128=>{const _0x32d0ed=_0x3904b1;try{return JSON[_0x32d0ed(0x214)](_0x5da128);}catch{return null;}})[_0x3904b1(0x215)](_0x2548dc=>_0x2548dc!==null);}catch(_0x246382){const _0x248708=await getLogger();return _0x248708[_0x3904b1(0x1e5)](_0x3904b1(0x1f7)+_0x5133d2+'.jsonl:',_0x246382 instanceof Error?_0x246382[_0x3904b1(0x208)]:String(_0x246382)),[];}}async function getAllSessionFiles(){const _0x32ca45=a55_0x51ca,_0x11f10b=getUsageDir();if(!existsSync(_0x11f10b))return[];try{const _0x13243b=await readdir(_0x11f10b);return _0x13243b[_0x32ca45(0x215)](_0x1e433b=>_0x1e433b[_0x32ca45(0x204)](_0x32ca45(0x1fd)))[_0x32ca45(0x1ff)](_0x21d955=>_0x21d955['replace'](_0x32ca45(0x1fd),''));}catch(_0x3e1a43){const _0x59a689=await getLogger();return _0x59a689[_0x32ca45(0x1e5)]('Failed\x20to\x20read\x20usage\x20directory:',_0x3e1a43 instanceof Error?_0x3e1a43[_0x32ca45(0x208)]:String(_0x3e1a43)),[];}}async function readStatsCache(){const _0x2c1254=a55_0x51ca,_0x4b8065=getStatsCachePath();if(!existsSync(_0x4b8065))return null;try{const _0x5c040a=await readFile(_0x4b8065,_0x2c1254(0x1f5));return JSON['parse'](_0x5c040a);}catch{return null;}}async function writeStatsCache(_0xecb009){await ensureUsageDir();const _0x339686=getStatsCachePath();await writeFile(_0x339686,JSON['stringify'](_0xecb009,null,0x2),'utf-8');}async function isCacheUpToDate(_0x412fc6,_0x41e0a1){const _0x35a54b=a55_0x51ca,_0x41ad1a=_0x412fc6[_0x35a54b(0x1ed)][_0x41e0a1];if(!_0x41ad1a)return![];const _0x1f69c4=getSafeJsonlPath(_0x41e0a1);if(!existsSync(_0x1f69c4))return!![];try{const _0x19b289=await stat(_0x1f69c4),_0x180f99=new Date(_0x41ad1a[_0x35a54b(0x20f)])[_0x35a54b(0x209)](),_0x3335d8=_0x19b289[_0x35a54b(0x200)]['getTime']();return _0x180f99>_0x3335d8;}catch{return![];}}export async function rebuildCache(){const _0x33f411=a55_0x51ca,_0x21690b=new Date(),_0x9ea118=_0x21690b['toISOString']()[_0x33f411(0x1fb)](0x0,0xa),_0xf53e17=_0x21690b[_0x33f411(0x21c)]()['slice'](0x0,0x7),_0x49538e={'daily':{},'monthly':{},'sessions':{},'profiles':{},'lastRebuiltAt':_0x21690b[_0x33f411(0x21c)]()},_0x4047d5=await getAllSessionFiles();for(const _0x100042 of _0x4047d5){try{const _0x54d7bb=await readSessionJsonl(_0x100042);if(_0x54d7bb[_0x33f411(0x1f1)]===0x0)continue;let _0x3f50b2=0x0;const _0x3c9084={};let _0x46e0c7='';for(const _0x2b3d01 of _0x54d7bb){const _0x16d8c4=getModelFactor(_0x2b3d01[_0x33f411(0x1e8)]),_0x15c773=calculateChatUnit(_0x2b3d01[_0x33f411(0x1ec)],_0x2b3d01['outputTokens'],_0x16d8c4);_0x3f50b2+=_0x15c773;const _0x1bc8ab=_0x2b3d01['contextSignature']||_0x33f411(0x1ea);_0x3c9084[_0x1bc8ab]=_0x2b3d01[_0x33f411(0x1ec)];_0x2b3d01[_0x33f411(0x201)]>_0x46e0c7&&(_0x46e0c7=_0x2b3d01[_0x33f411(0x201)]);const _0x320a83=_0x2b3d01[_0x33f411(0x201)][_0x33f411(0x1fb)](0x0,0xa);!_0x49538e[_0x33f411(0x1fa)][_0x320a83]&&(_0x49538e[_0x33f411(0x1fa)][_0x320a83]={'totalChatUnits':0x0,'entryCount':0x0});_0x49538e[_0x33f411(0x1fa)][_0x320a83][_0x33f411(0x1f4)]+=_0x15c773,_0x49538e[_0x33f411(0x1fa)][_0x320a83]['entryCount']+=0x1;const _0x5d8fe3=_0x2b3d01[_0x33f411(0x201)][_0x33f411(0x1fb)](0x0,0x7);!_0x49538e['monthly'][_0x5d8fe3]&&(_0x49538e['monthly'][_0x5d8fe3]={'totalChatUnits':0x0,'entryCount':0x0});_0x49538e[_0x33f411(0x20b)][_0x5d8fe3][_0x33f411(0x1f4)]+=_0x15c773,_0x49538e['monthly'][_0x5d8fe3][_0x33f411(0x210)]+=0x1;const _0x4f2cce=_0x2b3d01[_0x33f411(0x1fe)]||'default';!_0x49538e[_0x33f411(0x21a)][_0x4f2cce]&&(_0x49538e[_0x33f411(0x21a)][_0x4f2cce]={'totalChatUnits':0x0,'entryCount':0x0,'lastUsedAt':'','todayChatUnits':0x0,'todayDate':_0x9ea118,'monthChatUnits':0x0,'month':_0xf53e17}),_0x49538e[_0x33f411(0x21a)][_0x4f2cce][_0x33f411(0x1f4)]+=_0x15c773,_0x49538e[_0x33f411(0x21a)][_0x4f2cce][_0x33f411(0x210)]+=0x1,_0x2b3d01[_0x33f411(0x201)]>_0x49538e[_0x33f411(0x21a)][_0x4f2cce][_0x33f411(0x20d)]&&(_0x49538e['profiles'][_0x4f2cce][_0x33f411(0x20d)]=_0x2b3d01['timestamp']),_0x320a83===_0x9ea118&&(_0x49538e[_0x33f411(0x21a)][_0x4f2cce]['todayChatUnits']+=_0x15c773),_0x5d8fe3===_0xf53e17&&(_0x49538e[_0x33f411(0x21a)][_0x4f2cce]['monthChatUnits']+=_0x15c773);}_0x49538e[_0x33f411(0x1ed)][_0x100042]={'totalChatUnits':_0x3f50b2,'latestInputTokensByContext':_0x3c9084,'createdAt':_0x54d7bb[0x0][_0x33f411(0x201)],'lastUpdatedAt':_0x46e0c7};}catch(_0x743e5a){const _0x5a0e87=await getLogger();_0x5a0e87['warn'](_0x33f411(0x1f6)+_0x100042+':',_0x743e5a instanceof Error?_0x743e5a[_0x33f411(0x208)]:String(_0x743e5a));continue;}}return cleanupOldEntries(_0x49538e),await writeStatsCache(_0x49538e),_0x49538e;}function cleanupOldEntries(_0x4cd26e){const _0x213861=a55_0x51ca,_0x52096e=new Date(),_0x20542d=new Date(_0x52096e['getTime']()-0x7*0x18*0x3c*0x3c*0x3e8);for(const _0x48600e of Object[_0x213861(0x213)](_0x4cd26e[_0x213861(0x1fa)])){new Date(_0x48600e)<_0x20542d&&delete _0x4cd26e[_0x213861(0x1fa)][_0x48600e];}const _0x157adf=new Date(_0x52096e[_0x213861(0x1f2)]()-0x1,_0x52096e[_0x213861(0x1e7)](),0x1);for(const _0x540609 of Object[_0x213861(0x213)](_0x4cd26e[_0x213861(0x20b)])){const [_0x792340,_0x1235db]=_0x540609[_0x213861(0x20e)]('-')[_0x213861(0x1ff)](Number),_0x768d11=new Date(_0x792340,_0x1235db-0x1,0x1);_0x768d11<_0x157adf&&delete _0x4cd26e[_0x213861(0x20b)][_0x540609];}const _0x513112=new Date(_0x52096e['getTime']()-0x1e*0x18*0x3c*0x3c*0x3e8);for(const [_0x2348eb,_0x56cf00]of Object[_0x213861(0x211)](_0x4cd26e[_0x213861(0x1ed)])){new Date(_0x56cf00[_0x213861(0x20f)])<_0x513112&&delete _0x4cd26e[_0x213861(0x1ed)][_0x2348eb];}}export async function getOrUpdateCache(_0x976fd){const _0x3865b1=_0x976fd?sanitizeSessionId(_0x976fd):undefined,_0x2b6f88=await readStatsCache();if(!_0x2b6f88)return rebuildCache();if(_0x3865b1){const _0x1ae5f8=await isCacheUpToDate(_0x2b6f88,_0x3865b1);if(!_0x1ae5f8)return rebuildCache();}return _0x2b6f88;}export async function getSessionCredits(_0x1a0c8a){const _0x2d4278=a55_0x51ca,_0x24b290=sanitizeSessionId(_0x1a0c8a),_0xb53ddf=await getOrUpdateCache(_0x24b290),_0x578bca=_0xb53ddf['sessions'][_0x24b290];if(!_0x578bca)return 0x0;return calculateCredits(_0x578bca[_0x2d4278(0x1f4)]);}export async function getTodayCredits(){const _0x4b8dff=a55_0x51ca,_0x4c823d=await getOrUpdateCache(),_0x1476f9=new Date()[_0x4b8dff(0x21c)]()[_0x4b8dff(0x1fb)](0x0,0xa),_0x2213f3=_0x4c823d[_0x4b8dff(0x1fa)][_0x1476f9];if(!_0x2213f3)return 0x0;return calculateCredits(_0x2213f3[_0x4b8dff(0x1f4)]);}export async function getMonthCredits(){const _0x140d3d=a55_0x51ca,_0x4a97b3=await getOrUpdateCache(),_0x3e1207=new Date()[_0x140d3d(0x21c)]()[_0x140d3d(0x1fb)](0x0,0x7),_0x177f92=_0x4a97b3['monthly'][_0x3e1207];if(!_0x177f92)return 0x0;return calculateCredits(_0x177f92['totalChatUnits']);}export async function getSessionStats(_0x224fd2){const _0x3acec5=sanitizeSessionId(_0x224fd2),_0x4eef6d=await getOrUpdateCache(_0x3acec5);return _0x4eef6d['sessions'][_0x3acec5]||null;}function getMaxLatestInputTokens(_0x92028a){const _0x16ab1a=a55_0x51ca,_0x548aef=Object['values'](_0x92028a);if(_0x548aef[_0x16ab1a(0x1f1)]===0x0)return 0x0;return Math[_0x16ab1a(0x212)](..._0x548aef);}export async function getUsageStats(_0x3429ff,_0x5bbbc9){const _0x418bcd=a55_0x51ca,_0x3d2c5c=sanitizeSessionId(_0x3429ff),_0x5a853e=await getOrUpdateCache(_0x3d2c5c),_0xadeb02=_0x5a853e[_0x418bcd(0x1ed)][_0x3d2c5c],_0x516947=new Date()[_0x418bcd(0x21c)]()[_0x418bcd(0x1fb)](0x0,0xa),_0xc579e2=new Date()[_0x418bcd(0x21c)]()[_0x418bcd(0x1fb)](0x0,0x7);if(_0x5bbbc9){const _0xde4f1a=_0x5a853e[_0x418bcd(0x21a)]?.[_0x5bbbc9],_0x46a6b5=_0xde4f1a?.[_0x418bcd(0x206)]===_0x516947?calculateCredits(_0xde4f1a[_0x418bcd(0x20a)]):0x0,_0x73a362=_0xde4f1a?.[_0x418bcd(0x207)]===_0xc579e2?calculateCredits(_0xde4f1a['monthChatUnits']):0x0;return{'sessionCredits':_0xadeb02?calculateCredits(_0xadeb02[_0x418bcd(0x1f4)]):0x0,'todayCredits':_0x46a6b5,'monthCredits':_0x73a362,'latestInputTokens':_0xadeb02?getMaxLatestInputTokens(_0xadeb02[_0x418bcd(0x1e6)]):0x0};}return{'sessionCredits':_0xadeb02?calculateCredits(_0xadeb02[_0x418bcd(0x1f4)]):0x0,'todayCredits':_0x5a853e[_0x418bcd(0x1fa)][_0x516947]?calculateCredits(_0x5a853e[_0x418bcd(0x1fa)][_0x516947][_0x418bcd(0x1f4)]):0x0,'monthCredits':_0x5a853e[_0x418bcd(0x20b)][_0xc579e2]?calculateCredits(_0x5a853e[_0x418bcd(0x20b)][_0xc579e2]['totalChatUnits']):0x0,'latestInputTokens':_0xadeb02?getMaxLatestInputTokens(_0xadeb02[_0x418bcd(0x1e6)]):0x0};}export async function getAllProfileStats(){const _0x315106=a55_0x51ca,_0x320cb7=await getOrUpdateCache(),_0x4935e4=_0x320cb7['profiles']||{};return Object[_0x315106(0x211)](_0x4935e4)['filter'](([,_0x106745])=>_0x106745&&typeof _0x106745===_0x315106(0x1e3))['map'](([_0x1c8792,_0x14773f])=>({'profile':_0x1c8792,'credits':calculateCredits(_0x14773f[_0x315106(0x1f4)]||0x0),'entryCount':_0x14773f[_0x315106(0x210)]||0x0,'lastUsedAt':_0x14773f[_0x315106(0x20d)]||''}))['sort']((_0x5a998d,_0x702ff5)=>_0x702ff5[_0x315106(0x1f3)]-_0x5a998d[_0x315106(0x1f3)]);}export async function getUsageSummary(){const _0x55a1ce=a55_0x51ca,_0x4e58f8=await getOrUpdateCache(),_0x33c6ef=_0x4e58f8['profiles']||{},_0x8f90f=new Date()[_0x55a1ce(0x21c)]()['slice'](0x0,0xa),_0x452a5e=new Date()['toISOString']()[_0x55a1ce(0x1fb)](0x0,0x7),_0xb71427=Object[_0x55a1ce(0x1f8)](_0x33c6ef)[_0x55a1ce(0x215)](_0x57f033=>_0x57f033&&typeof _0x57f033===_0x55a1ce(0x1e3)),_0x216858=_0xb71427[_0x55a1ce(0x1f9)]((_0x51f17b,_0x103b5d)=>_0x51f17b+(_0x103b5d['totalChatUnits']||0x0),0x0);return{'todayCredits':_0x4e58f8['daily'][_0x8f90f]?calculateCredits(_0x4e58f8[_0x55a1ce(0x1fa)][_0x8f90f][_0x55a1ce(0x1f4)]||0x0):0x0,'monthCredits':_0x4e58f8['monthly'][_0x452a5e]?calculateCredits(_0x4e58f8[_0x55a1ce(0x20b)][_0x452a5e][_0x55a1ce(0x1f4)]||0x0):0x0,'totalCredits':calculateCredits(_0x216858),'profileCount':_0xb71427[_0x55a1ce(0x1f1)]};}
|
|
1
|
+
(function(_0x1efcd7,_0x1f4706){const _0x3267b8=a55_0x2ca5,_0x203de8=_0x1efcd7();while(!![]){try{const _0xb8a46d=parseInt(_0x3267b8(0x112))/0x1*(-parseInt(_0x3267b8(0x101))/0x2)+parseInt(_0x3267b8(0x111))/0x3*(parseInt(_0x3267b8(0x106))/0x4)+-parseInt(_0x3267b8(0xea))/0x5+parseInt(_0x3267b8(0x102))/0x6*(-parseInt(_0x3267b8(0xe2))/0x7)+-parseInt(_0x3267b8(0xf2))/0x8+parseInt(_0x3267b8(0xe1))/0x9*(parseInt(_0x3267b8(0xe4))/0xa)+parseInt(_0x3267b8(0x10a))/0xb;if(_0xb8a46d===_0x1f4706)break;else _0x203de8['push'](_0x203de8['shift']());}catch(_0x5dfa43){_0x203de8['push'](_0x203de8['shift']());}}}(a55_0x264e,0x22184));import{readFile,writeFile,appendFile,mkdir,readdir,stat}from'node:fs/promises';import{existsSync}from'node:fs';import{join,resolve}from'node:path';import{homedir}from'node:os';import{getModelFactor,calculateChatUnit,calculateCredits}from'../sdk/llm/model-factors.js';import{TDXLogger,LogLevel}from'../utils/tdx-logger.js';let usageLogger=null;async function getLogger(){const _0xc26d61=a55_0x2ca5;return!usageLogger&&(usageLogger=new TDXLogger(LogLevel[_0xc26d61(0x105)],!![]),await usageLogger['init']()),usageLogger;}function getUsageDir(){const _0x1024cf=a55_0x2ca5;return join(homedir(),_0x1024cf(0x110),'tdx',_0x1024cf(0xe9));}function sanitizeSessionId(_0x3fb25e){const _0x5db9c6=a55_0x2ca5;return _0x3fb25e[_0x5db9c6(0x10c)](/[^a-zA-Z0-9_-]/g,'_');}function getSafeJsonlPath(_0x20b33e){const _0x7efc49=a55_0x2ca5,_0x524fe5=getUsageDir(),_0x1ab601=sanitizeSessionId(_0x20b33e),_0x5138f6=resolve(_0x524fe5,_0x1ab601+'.jsonl');if(!_0x5138f6[_0x7efc49(0xdf)](_0x524fe5))throw new Error(_0x7efc49(0x10f));return _0x5138f6;}function getStatsCachePath(){const _0x1ed69c=a55_0x2ca5;return join(getUsageDir(),_0x1ed69c(0x10e));}async function ensureUsageDir(){const _0x170f95=getUsageDir();!existsSync(_0x170f95)&&await mkdir(_0x170f95,{'recursive':!![]});}export async function appendUsageEntry(_0x30ad66,_0x114b72){const _0x1ab9a6=a55_0x2ca5,_0x1169fd=sanitizeSessionId(_0x30ad66);await ensureUsageDir();const _0x4a4187=getSafeJsonlPath(_0x1169fd),_0x3b7988=JSON[_0x1ab9a6(0xf0)](_0x114b72)+'\x0a';await appendFile(_0x4a4187,_0x3b7988,'utf-8');}async function readSessionJsonl(_0x244617){const _0x16921c=a55_0x2ca5,_0x107f76=getSafeJsonlPath(_0x244617);if(!existsSync(_0x107f76))return[];try{const _0x44193b=await readFile(_0x107f76,_0x16921c(0xee)),_0x8fa824=_0x44193b[_0x16921c(0xf7)]()[_0x16921c(0xf3)]('\x0a')['filter'](Boolean);return _0x8fa824[_0x16921c(0xdb)](_0x5ef770=>{const _0x47f513=_0x16921c;try{return JSON[_0x47f513(0xf5)](_0x5ef770);}catch{return null;}})[_0x16921c(0xe7)](_0x271674=>_0x271674!==null);}catch(_0x257532){const _0x442a22=await getLogger();return _0x442a22[_0x16921c(0xd8)](_0x16921c(0xfe)+_0x244617+_0x16921c(0xdc),_0x257532 instanceof Error?_0x257532[_0x16921c(0xfa)]:String(_0x257532)),[];}}async function getAllSessionFiles(){const _0x20fd10=a55_0x2ca5,_0xcc2f63=getUsageDir();if(!existsSync(_0xcc2f63))return[];try{const _0x44b472=await readdir(_0xcc2f63);return _0x44b472[_0x20fd10(0xe7)](_0x5770d9=>_0x5770d9[_0x20fd10(0x115)]('.jsonl'))[_0x20fd10(0xdb)](_0x271a9e=>_0x271a9e['replace'](_0x20fd10(0xef),''));}catch(_0x6d1b64){const _0x5c413b=await getLogger();return _0x5c413b[_0x20fd10(0xd8)]('Failed\x20to\x20read\x20usage\x20directory:',_0x6d1b64 instanceof Error?_0x6d1b64[_0x20fd10(0xfa)]:String(_0x6d1b64)),[];}}async function readStatsCache(){const _0x228265=a55_0x2ca5,_0x1481c0=getStatsCachePath();if(!existsSync(_0x1481c0))return null;try{const _0x40677f=await readFile(_0x1481c0,_0x228265(0xee));return JSON[_0x228265(0xf5)](_0x40677f);}catch{return null;}}async function writeStatsCache(_0x53423b){const _0x388bb4=a55_0x2ca5;await ensureUsageDir();const _0x445c19=getStatsCachePath();await writeFile(_0x445c19,JSON[_0x388bb4(0xf0)](_0x53423b,null,0x2),_0x388bb4(0xee));}async function isCacheUpToDate(_0x260177,_0x5cfeb3){const _0x52939b=a55_0x2ca5,_0x5c6081=_0x260177[_0x52939b(0xdd)][_0x5cfeb3];if(!_0x5c6081)return![];const _0x335c9e=getSafeJsonlPath(_0x5cfeb3);if(!existsSync(_0x335c9e))return!![];try{const _0x22b6ff=await stat(_0x335c9e),_0x46c2d7=new Date(_0x5c6081[_0x52939b(0xe3)])[_0x52939b(0x10d)](),_0xaf2f82=_0x22b6ff[_0x52939b(0x10b)][_0x52939b(0x10d)]();return _0x46c2d7>_0xaf2f82;}catch{return![];}}export async function rebuildCache(){const _0x370c5b=a55_0x2ca5,_0x39d7a6=new Date(),_0x3609e5=_0x39d7a6[_0x370c5b(0xfb)]()[_0x370c5b(0x108)](0x0,0xa),_0x487a64=_0x39d7a6[_0x370c5b(0xfb)]()[_0x370c5b(0x108)](0x0,0x7),_0x18dd28={'daily':{},'monthly':{},'sessions':{},'profiles':{},'lastRebuiltAt':_0x39d7a6[_0x370c5b(0xfb)]()},_0x3a4d68=await getAllSessionFiles();for(const _0x5db8a4 of _0x3a4d68){try{const _0x38cfc5=await readSessionJsonl(_0x5db8a4);if(_0x38cfc5[_0x370c5b(0xed)]===0x0)continue;let _0x37be2f=0x0;const _0x45e5d5={};let _0x8debd1='';for(const _0x4e64ee of _0x38cfc5){const _0x2bc2e8=getModelFactor(_0x4e64ee[_0x370c5b(0xff)]),_0x1517d5=calculateChatUnit(_0x4e64ee[_0x370c5b(0xf4)],_0x4e64ee[_0x370c5b(0xfd)],_0x2bc2e8);_0x37be2f+=_0x1517d5;const _0x376265=_0x4e64ee['contextSignature']||_0x370c5b(0xec);_0x45e5d5[_0x376265]=_0x4e64ee[_0x370c5b(0xf4)];_0x4e64ee[_0x370c5b(0xeb)]>_0x8debd1&&(_0x8debd1=_0x4e64ee[_0x370c5b(0xeb)]);const _0x2f66e3=_0x4e64ee['timestamp'][_0x370c5b(0x108)](0x0,0xa);!_0x18dd28[_0x370c5b(0xe8)][_0x2f66e3]&&(_0x18dd28['daily'][_0x2f66e3]={'totalChatUnits':0x0,'entryCount':0x0});_0x18dd28[_0x370c5b(0xe8)][_0x2f66e3][_0x370c5b(0x109)]+=_0x1517d5,_0x18dd28[_0x370c5b(0xe8)][_0x2f66e3][_0x370c5b(0x103)]+=0x1;const _0x43447f=_0x4e64ee['timestamp'][_0x370c5b(0x108)](0x0,0x7);!_0x18dd28[_0x370c5b(0xf6)][_0x43447f]&&(_0x18dd28['monthly'][_0x43447f]={'totalChatUnits':0x0,'entryCount':0x0});_0x18dd28[_0x370c5b(0xf6)][_0x43447f]['totalChatUnits']+=_0x1517d5,_0x18dd28[_0x370c5b(0xf6)][_0x43447f][_0x370c5b(0x103)]+=0x1;const _0x54c002=_0x4e64ee['profile']||_0x370c5b(0xec);!_0x18dd28['profiles'][_0x54c002]&&(_0x18dd28[_0x370c5b(0xe0)][_0x54c002]={'totalChatUnits':0x0,'entryCount':0x0,'lastUsedAt':'','todayChatUnits':0x0,'todayDate':_0x3609e5,'monthChatUnits':0x0,'month':_0x487a64}),_0x18dd28[_0x370c5b(0xe0)][_0x54c002][_0x370c5b(0x109)]+=_0x1517d5,_0x18dd28[_0x370c5b(0xe0)][_0x54c002]['entryCount']+=0x1,_0x4e64ee[_0x370c5b(0xeb)]>_0x18dd28[_0x370c5b(0xe0)][_0x54c002][_0x370c5b(0xe5)]&&(_0x18dd28['profiles'][_0x54c002]['lastUsedAt']=_0x4e64ee[_0x370c5b(0xeb)]),_0x2f66e3===_0x3609e5&&(_0x18dd28[_0x370c5b(0xe0)][_0x54c002][_0x370c5b(0x117)]+=_0x1517d5),_0x43447f===_0x487a64&&(_0x18dd28[_0x370c5b(0xe0)][_0x54c002]['monthChatUnits']+=_0x1517d5);}_0x18dd28[_0x370c5b(0xdd)][_0x5db8a4]={'totalChatUnits':_0x37be2f,'latestInputTokensByContext':_0x45e5d5,'createdAt':_0x38cfc5[0x0][_0x370c5b(0xeb)],'lastUpdatedAt':_0x8debd1};}catch(_0x44698d){const _0x3234fa=await getLogger();_0x3234fa['warn'](_0x370c5b(0xe6)+_0x5db8a4+':',_0x44698d instanceof Error?_0x44698d[_0x370c5b(0xfa)]:String(_0x44698d));continue;}}return cleanupOldEntries(_0x18dd28),await writeStatsCache(_0x18dd28),_0x18dd28;}function cleanupOldEntries(_0x456608){const _0x1b74c4=a55_0x2ca5,_0x3d9bee=new Date(),_0x3d4cd4=new Date(_0x3d9bee['getTime']()-0x7*0x18*0x3c*0x3c*0x3e8);for(const _0x3f8955 of Object[_0x1b74c4(0xf8)](_0x456608[_0x1b74c4(0xe8)])){new Date(_0x3f8955)<_0x3d4cd4&&delete _0x456608[_0x1b74c4(0xe8)][_0x3f8955];}const _0x166c2e=new Date(_0x3d9bee[_0x1b74c4(0x116)]()-0x1,_0x3d9bee[_0x1b74c4(0x100)](),0x1);for(const _0x1893a2 of Object[_0x1b74c4(0xf8)](_0x456608[_0x1b74c4(0xf6)])){const [_0x52a164,_0x320cf1]=_0x1893a2['split']('-')[_0x1b74c4(0xdb)](Number),_0x48cf8c=new Date(_0x52a164,_0x320cf1-0x1,0x1);_0x48cf8c<_0x166c2e&&delete _0x456608[_0x1b74c4(0xf6)][_0x1893a2];}const _0x21f993=new Date(_0x3d9bee[_0x1b74c4(0x10d)]()-0x1e*0x18*0x3c*0x3c*0x3e8);for(const [_0x503e87,_0x5c9379]of Object['entries'](_0x456608[_0x1b74c4(0xdd)])){new Date(_0x5c9379[_0x1b74c4(0xe3)])<_0x21f993&&delete _0x456608[_0x1b74c4(0xdd)][_0x503e87];}}export async function getOrUpdateCache(_0x515057){const _0x23af84=_0x515057?sanitizeSessionId(_0x515057):undefined,_0x131d39=await readStatsCache();if(!_0x131d39)return rebuildCache();if(_0x23af84){const _0x31dd61=await isCacheUpToDate(_0x131d39,_0x23af84);if(!_0x31dd61)return rebuildCache();}return _0x131d39;}export async function getSessionCredits(_0x17dc15){const _0xd880bf=a55_0x2ca5,_0x27f008=sanitizeSessionId(_0x17dc15),_0x563034=await getOrUpdateCache(_0x27f008),_0x444a3b=_0x563034[_0xd880bf(0xdd)][_0x27f008];if(!_0x444a3b)return 0x0;return calculateCredits(_0x444a3b[_0xd880bf(0x109)]);}export async function getTodayCredits(){const _0x1ac83c=a55_0x2ca5,_0x3efdb0=await getOrUpdateCache(),_0x70c2fc=new Date()[_0x1ac83c(0xfb)]()[_0x1ac83c(0x108)](0x0,0xa),_0x321746=_0x3efdb0[_0x1ac83c(0xe8)][_0x70c2fc];if(!_0x321746)return 0x0;return calculateCredits(_0x321746[_0x1ac83c(0x109)]);}export async function getMonthCredits(){const _0x34cc38=a55_0x2ca5,_0x537c9b=await getOrUpdateCache(),_0x1ff9e9=new Date()['toISOString']()['slice'](0x0,0x7),_0x302369=_0x537c9b[_0x34cc38(0xf6)][_0x1ff9e9];if(!_0x302369)return 0x0;return calculateCredits(_0x302369['totalChatUnits']);}export async function getSessionStats(_0x51c777){const _0x2f8ee3=a55_0x2ca5,_0x24d2a5=sanitizeSessionId(_0x51c777),_0x2a7afc=await getOrUpdateCache(_0x24d2a5);return _0x2a7afc[_0x2f8ee3(0xdd)][_0x24d2a5]||null;}function getMaxLatestInputTokens(_0x3d2229){const _0x2ca2c8=a55_0x2ca5,_0x414f38=Object[_0x2ca2c8(0xf9)](_0x3d2229);if(_0x414f38[_0x2ca2c8(0xed)]===0x0)return 0x0;return Math[_0x2ca2c8(0x107)](..._0x414f38);}function a55_0x2ca5(_0x576ca8,_0x348898){_0x576ca8=_0x576ca8-0xd8;const _0x264e8a=a55_0x264e();let _0x2ca5d0=_0x264e8a[_0x576ca8];return _0x2ca5d0;}export async function getUsageStats(_0x1819a2,_0xeb8162){const _0x2ff4cd=a55_0x2ca5,_0x370ab2=sanitizeSessionId(_0x1819a2),_0x203db8=await getOrUpdateCache(_0x370ab2),_0x5bb6ad=_0x203db8[_0x2ff4cd(0xdd)][_0x370ab2],_0x20db64=new Date()[_0x2ff4cd(0xfb)]()[_0x2ff4cd(0x108)](0x0,0xa),_0x5a75da=new Date()[_0x2ff4cd(0xfb)]()[_0x2ff4cd(0x108)](0x0,0x7);if(_0xeb8162){const _0x17d6fd=_0x203db8[_0x2ff4cd(0xe0)]?.[_0xeb8162],_0x15175e=_0x17d6fd?.[_0x2ff4cd(0x113)]===_0x20db64?calculateCredits(_0x17d6fd['todayChatUnits']):0x0,_0x1bcb8a=_0x17d6fd?.[_0x2ff4cd(0xda)]===_0x5a75da?calculateCredits(_0x17d6fd[_0x2ff4cd(0xd9)]):0x0;return{'sessionCredits':_0x5bb6ad?calculateCredits(_0x5bb6ad[_0x2ff4cd(0x109)]):0x0,'todayCredits':_0x15175e,'monthCredits':_0x1bcb8a,'latestInputTokens':_0x5bb6ad?getMaxLatestInputTokens(_0x5bb6ad['latestInputTokensByContext']):0x0};}return{'sessionCredits':_0x5bb6ad?calculateCredits(_0x5bb6ad[_0x2ff4cd(0x109)]):0x0,'todayCredits':_0x203db8[_0x2ff4cd(0xe8)][_0x20db64]?calculateCredits(_0x203db8[_0x2ff4cd(0xe8)][_0x20db64]['totalChatUnits']):0x0,'monthCredits':_0x203db8[_0x2ff4cd(0xf6)][_0x5a75da]?calculateCredits(_0x203db8[_0x2ff4cd(0xf6)][_0x5a75da]['totalChatUnits']):0x0,'latestInputTokens':_0x5bb6ad?getMaxLatestInputTokens(_0x5bb6ad['latestInputTokensByContext']):0x0};}export async function getAllProfileStats(){const _0x8b32f8=a55_0x2ca5,_0x156dea=await getOrUpdateCache(),_0x21f290=_0x156dea[_0x8b32f8(0xe0)]||{};return Object[_0x8b32f8(0x104)](_0x21f290)['filter'](([,_0x27a42e])=>_0x27a42e&&typeof _0x27a42e===_0x8b32f8(0xfc))[_0x8b32f8(0xdb)](([_0x32c012,_0x1b1905])=>({'profile':_0x32c012,'credits':calculateCredits(_0x1b1905['totalChatUnits']||0x0),'entryCount':_0x1b1905[_0x8b32f8(0x103)]||0x0,'lastUsedAt':_0x1b1905[_0x8b32f8(0xe5)]||''}))[_0x8b32f8(0x114)]((_0x1ffd53,_0x590f1b)=>_0x590f1b['credits']-_0x1ffd53[_0x8b32f8(0xf1)]);}function a55_0x264e(){const _0x2048d6=['1604370KRtUfo','entryCount','entries','WARN','9188vfTAiG','max','slice','totalChatUnits','9030615BNCQeG','mtime','replace','getTime','stats-cache.json','Invalid\x20session\x20ID:\x20path\x20traversal\x20detected','.cache','21elxkrE','68114fhOfJY','todayDate','sort','endsWith','getFullYear','todayChatUnits','warn','monthChatUnits','month','map','.jsonl:','sessions','reduce','startsWith','profiles','27675flOChU','7YwJXSk','lastUpdatedAt','90jcZiGA','lastUsedAt','Failed\x20to\x20process\x20session\x20','filter','daily','claude-usage','1311430pNoKzv','timestamp','default','length','utf-8','.jsonl','stringify','credits','473264EkJExo','split','inputTokens','parse','monthly','trim','keys','values','message','toISOString','object','outputTokens','Failed\x20to\x20read\x20usage\x20file\x20','model','getMonth','4JEbwMC'];a55_0x264e=function(){return _0x2048d6;};return a55_0x264e();}export async function getUsageSummary(){const _0x57f3d5=a55_0x2ca5,_0x6c12e2=await getOrUpdateCache(),_0x4109fc=_0x6c12e2[_0x57f3d5(0xe0)]||{},_0x52be23=new Date()['toISOString']()[_0x57f3d5(0x108)](0x0,0xa),_0x3076c4=new Date()[_0x57f3d5(0xfb)]()['slice'](0x0,0x7),_0x74bcc0=Object['values'](_0x4109fc)['filter'](_0x4d7987=>_0x4d7987&&typeof _0x4d7987===_0x57f3d5(0xfc)),_0x30fa8a=_0x74bcc0[_0x57f3d5(0xde)]((_0x931272,_0x3527a7)=>_0x931272+(_0x3527a7[_0x57f3d5(0x109)]||0x0),0x0);return{'todayCredits':_0x6c12e2[_0x57f3d5(0xe8)][_0x52be23]?calculateCredits(_0x6c12e2['daily'][_0x52be23][_0x57f3d5(0x109)]||0x0):0x0,'monthCredits':_0x6c12e2['monthly'][_0x3076c4]?calculateCredits(_0x6c12e2['monthly'][_0x3076c4][_0x57f3d5(0x109)]||0x0):0x0,'totalCredits':calculateCredits(_0x30fa8a),'profileCount':_0x74bcc0[_0x57f3d5(0xed)]};}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
(function(
|
|
1
|
+
(function(_0x616aad,_0x7bc007){const _0x450c43=a56_0x118f,_0x30f107=_0x616aad();while(!![]){try{const _0x144a3c=-parseInt(_0x450c43(0x170))/0x1+parseInt(_0x450c43(0x16c))/0x2*(-parseInt(_0x450c43(0x167))/0x3)+parseInt(_0x450c43(0x16b))/0x4*(-parseInt(_0x450c43(0x16e))/0x5)+-parseInt(_0x450c43(0x173))/0x6+-parseInt(_0x450c43(0x16d))/0x7+-parseInt(_0x450c43(0x171))/0x8+parseInt(_0x450c43(0x16a))/0x9;if(_0x144a3c===_0x7bc007)break;else _0x30f107['push'](_0x30f107['shift']());}catch(_0x27ea02){_0x30f107['push'](_0x30f107['shift']());}}}(a56_0x4adc,0x99362));function a56_0x118f(_0x256d95,_0x37d929){_0x256d95=_0x256d95-0x163;const _0x4adc8c=a56_0x4adc();let _0x118f83=_0x4adc8c[_0x256d95];return _0x118f83;}import{createHash}from'crypto';function a56_0x4adc(){const _0x58e962=['38063952neeehw','8500AHtwQA','45658ClUSta','28952OMYpVc','1645qbMQCy','sort','1116796dgQHZE','4042568YzpCer','localeCompare','6836532aRMPHo','stringify','keys','sha256','filter','digest','name','18tmvymQ','hex','input_schema'];a56_0x4adc=function(){return _0x58e962;};return a56_0x4adc();}import{extractModelAlias,resolveModelAlias}from'../sdk/llm/model-aliases.js';export function calculateContextSignature(_0x58983a,_0x352f8a,_0x4726b5,_0x23a0ca){const _0x1de059=a56_0x118f,_0x1165dd=extractModelAlias(_0x58983a),_0x24420c=resolveModelAlias(_0x1165dd),_0x5e2b35=[..._0x352f8a||[]][_0x1de059(0x16f)](),_0x1e5be6=(_0x4726b5||[])[_0x1de059(0x164)](_0x3c1c63=>_0x3c1c63!=null)['map'](_0x53f2dd=>({'name':_0x53f2dd[_0x1de059(0x166)],'params':Object[_0x1de059(0x175)](_0x53f2dd[_0x1de059(0x169)]?.['properties']||{})[_0x1de059(0x16f)](),'required':(_0x53f2dd[_0x1de059(0x169)]?.['required']||[])[_0x1de059(0x16f)]()}))['sort']((_0x18dcc1,_0x59f50c)=>_0x18dcc1[_0x1de059(0x166)][_0x1de059(0x172)](_0x59f50c['name'])),_0x27b2fe=JSON[_0x1de059(0x174)]({'model':_0x24420c,'prompts':_0x5e2b35,'tools':_0x1e5be6,'reasoning':_0x23a0ca});return createHash(_0x1de059(0x163))['update'](_0x27b2fe)[_0x1de059(0x165)](_0x1de059(0x168))['substring'](0x0,0x10);}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
(function(
|
|
1
|
+
function a57_0x17e8(_0x52b5a4,_0x2323c7){_0x52b5a4=_0x52b5a4-0x1ab;const _0x3176e8=a57_0x3176();let _0x17e8d7=_0x3176e8[_0x52b5a4];return _0x17e8d7;}(function(_0x393dda,_0x2f7537){const _0x5f4afb=a57_0x17e8,_0x51eddc=_0x393dda();while(!![]){try{const _0xcd12d2=parseInt(_0x5f4afb(0x1b9))/0x1*(parseInt(_0x5f4afb(0x1c2))/0x2)+-parseInt(_0x5f4afb(0x1c0))/0x3*(parseInt(_0x5f4afb(0x1ac))/0x4)+parseInt(_0x5f4afb(0x1bf))/0x5*(-parseInt(_0x5f4afb(0x1ae))/0x6)+-parseInt(_0x5f4afb(0x1cf))/0x7+parseInt(_0x5f4afb(0x1cb))/0x8+parseInt(_0x5f4afb(0x1d0))/0x9+parseInt(_0x5f4afb(0x1cc))/0xa;if(_0xcd12d2===_0x2f7537)break;else _0x51eddc['push'](_0x51eddc['shift']());}catch(_0x576234){_0x51eddc['push'](_0x51eddc['shift']());}}}(a57_0x3176,0x4e0d3));export function formatConversationHistory(_0x4069a6){const _0x5340af=a57_0x17e8;if(!_0x4069a6||!Array[_0x5340af(0x1be)](_0x4069a6))return'';const _0x495c1c=_0x4069a6[_0x5340af(0x1b5)](_0x3192b4=>_0x3192b4!=null)['map'](_0x35a4fe=>{const _0xb0bef6=_0x5340af,_0x43aadb=[],_0x400923=[];if(_0x35a4fe['content']!=null&&Array[_0xb0bef6(0x1be)](_0x35a4fe[_0xb0bef6(0x1b0)]))for(const _0x168263 of _0x35a4fe[_0xb0bef6(0x1b0)]){if(!_0x168263)continue;if(_0x168263[_0xb0bef6(0x1c6)]===_0xb0bef6(0x1ce)&&_0x168263[_0xb0bef6(0x1ce)])_0x43aadb['push'](_0x168263[_0xb0bef6(0x1ce)]);else{if(_0x168263[_0xb0bef6(0x1c6)]===_0xb0bef6(0x1b7)&&_0x168263[_0xb0bef6(0x1ab)]){const _0x3c601e=_0x168263['input']?JSON[_0xb0bef6(0x1ca)](_0x168263[_0xb0bef6(0x1c1)]):'{}';_0x400923[_0xb0bef6(0x1c3)](_0xb0bef6(0x1b1)+_0x168263['name']+'\x22\x20id=\x22'+(_0x168263['id']||_0xb0bef6(0x1bb))+'\x22>\x0a'+_0x3c601e+_0xb0bef6(0x1bd));}else{if(_0x168263[_0xb0bef6(0x1c6)]===_0xb0bef6(0x1b8)&&_0x168263[_0xb0bef6(0x1c4)]){let _0x57f335='';if(typeof _0x168263['content']===_0xb0bef6(0x1bc))_0x57f335=_0x168263[_0xb0bef6(0x1b0)];else _0x168263[_0xb0bef6(0x1b0)]!=null&&Array[_0xb0bef6(0x1be)](_0x168263[_0xb0bef6(0x1b0)])&&(_0x57f335=_0x168263[_0xb0bef6(0x1b0)]['filter'](_0x2cf4d2=>_0x2cf4d2&&_0x2cf4d2[_0xb0bef6(0x1c6)]===_0xb0bef6(0x1ce)&&_0x2cf4d2[_0xb0bef6(0x1ce)])[_0xb0bef6(0x1d2)](_0x35f763=>_0x35f763[_0xb0bef6(0x1ce)])[_0xb0bef6(0x1ad)]('\x0a'));const _0x291980=_0x168263[_0xb0bef6(0x1c5)]?_0xb0bef6(0x1b3):'';_0x400923[_0xb0bef6(0x1c3)](_0xb0bef6(0x1c8)+_0x168263['tool_use_id']+'\x22'+_0x291980+']\x0a'+_0x57f335);}}}}else typeof _0x35a4fe[_0xb0bef6(0x1b0)]===_0xb0bef6(0x1bc)&&_0x35a4fe[_0xb0bef6(0x1b0)]&&_0x43aadb[_0xb0bef6(0x1c3)](_0x35a4fe['content']);if(_0x43aadb[_0xb0bef6(0x1ba)]===0x0&&_0x400923['length']===0x0)return null;const _0xeb0f15=_0x35a4fe['role']==='user'?'[user]':'[assistant]',_0x507f7d=[];return(_0x43aadb[_0xb0bef6(0x1ba)]>0x0||_0x35a4fe[_0xb0bef6(0x1c7)]===_0xb0bef6(0x1c9)&&_0x400923[_0xb0bef6(0x1ba)]>0x0)&&_0x507f7d['push'](_0xeb0f15+'\x0a'+_0x43aadb[_0xb0bef6(0x1ad)]('\x0a\x0a')),_0x507f7d[_0xb0bef6(0x1c3)](..._0x400923),_0x507f7d['join']('\x0a\x0a');})[_0x5340af(0x1b5)](_0x3ecd58=>_0x3ecd58!=null&&_0x3ecd58[_0x5340af(0x1ba)]>0x0)[_0x5340af(0x1ad)]('\x0a\x0a');return _0x495c1c?_0x495c1c+_0x5340af(0x1af):'';}function a57_0x3176(){const _0x41d4b4=['\x20error=\x22true\x22','message.content\x20must\x20be\x20a\x20string\x20or\x20array,\x20got:\x20','filter','slice','tool_use','tool_result','197dPLuZl','length','unknown','string','\x0a</tool_use>','isArray','121270jEFsfZ','153erBAib','input','338JDHuUW','push','tool_use_id','is_error','type','role','[tool_result\x20tool_use_id=\x22','assistant','stringify','2638752kLgppx','9798640LRZVwT','user','text','3799768HClawE','203337SeXWdz','pop','map','name','35652kjDOgc','join','12oboCqh','\x0a\x0a[chat\x20history\x20end]','content','<tool_use\x20name=\x22','No\x20user\x20message\x20found\x20in\x20request'];a57_0x3176=function(){return _0x41d4b4;};return a57_0x3176();}export function calculateConversationDelta(_0x597f95,_0x59dc8e){const _0x2f01ee=a57_0x17e8;if(_0x59dc8e[_0x2f01ee(0x1ba)]===0x0)return _0x597f95;const _0x293acd=_0x59dc8e[_0x2f01ee(0x1ba)];return _0x597f95[_0x2f01ee(0x1b6)](_0x293acd);}export function extractLastUserMessage(_0x26fa77,_0x440509){const _0x5ae893=a57_0x17e8;let _0xc52155=_0x26fa77[_0x5ae893(0x1b5)](_0x490859=>_0x490859[_0x5ae893(0x1c7)]===_0x5ae893(0x1cd))[_0x5ae893(0x1d1)]();if(!_0xc52155){_0xc52155=_0x440509[_0x5ae893(0x1b5)](_0x1f61d2=>_0x1f61d2[_0x5ae893(0x1c7)]===_0x5ae893(0x1cd))[_0x5ae893(0x1d1)]();if(!_0xc52155)return{'message':null,'text':null,'error':_0x5ae893(0x1b2)};}if(typeof _0xc52155[_0x5ae893(0x1b0)]===_0x5ae893(0x1bc))return{'message':_0xc52155,'text':_0xc52155[_0x5ae893(0x1b0)],'error':null};if(_0xc52155[_0x5ae893(0x1b0)]!=null&&Array[_0x5ae893(0x1be)](_0xc52155[_0x5ae893(0x1b0)])){const _0x32f153=_0xc52155['content'][_0x5ae893(0x1b5)](_0x5b5d00=>_0x5b5d00&&_0x5b5d00[_0x5ae893(0x1c6)]===_0x5ae893(0x1ce)&&_0x5b5d00[_0x5ae893(0x1ce)])[_0x5ae893(0x1d2)](_0x200ba8=>_0x200ba8[_0x5ae893(0x1ce)])[_0x5ae893(0x1ad)]('\x0a');return{'message':_0xc52155,'text':_0x32f153,'error':null};}return{'message':_0xc52155,'text':null,'error':_0x5ae893(0x1b4)+typeof _0xc52155['content']+'\x20'+_0xc52155[_0x5ae893(0x1b0)]};}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
const a58_0x1b6ff0=a58_0x3c7a;(function(_0x1c306b,_0x51992a){const _0x2ab885=a58_0x3c7a,_0x582994=_0x1c306b();while(!![]){try{const _0x562d1b=-parseInt(_0x2ab885(0x157))/0x1*(parseInt(_0x2ab885(0x18a))/0x2)+parseInt(_0x2ab885(0x1ac))/0x3*(parseInt(_0x2ab885(0x18c))/0x4)+-parseInt(_0x2ab885(0x183))/0x5+parseInt(_0x2ab885(0x1a5))/0x6+-parseInt(_0x2ab885(0x14d))/0x7*(-parseInt(_0x2ab885(0x14f))/0x8)+-parseInt(_0x2ab885(0x1ab))/0x9+parseInt(_0x2ab885(0x187))/0xa*(parseInt(_0x2ab885(0x1c3))/0xb);if(_0x562d1b===_0x51992a)break;else _0x582994['push'](_0x582994['shift']());}catch(_0x37e569){_0x582994['push'](_0x582994['shift']());}}}(a58_0x53a4,0x66b66));function a58_0x3c7a(_0x49598c,_0x11cfc8){_0x49598c=_0x49598c-0x148;const _0x53a423=a58_0x53a4();let _0x3c7a02=_0x53a423[_0x49598c];return _0x3c7a02;}import a58_0x42ca80 from'fastify';import a58_0x44a1ff from'@fastify/cors';import{SSEUsageTracker}from'./sse-usage-parser.js';import{appendUsageEntry}from'./claude-usage-tracker.js';import{getVersion}from'../core/version.js';const DEFAULT_TIMEOUT_MS=0x5*0x3c*0x3e8,TDX_SYSTEM_PROMPT=a58_0x1b6ff0(0x18f);function a58_0x53a4(){const _0x46122e=['messages','message','user_id',':\x20messages=','logger','749NEtHOa','inputTokens','setupJsonParser','startsWith','buildForwardHeaders','output_tokens','[PASSTHROUGH]\x20Failed\x20to\x20forward\x20count_tokens\x20request:','setupMiddleware','content-length','info',',\x20cache_create=','/v1/messages/count_tokens','timeoutMs','apiKey','llmProxyUrl',',\x20model=','stream_error','port','url','setupRoutes','get',',\x20stream=','setErrorHandler','text/event-stream','metadata','body',',\x20output=','cacheReadInputTokens','timeout_error','addContentTypeParser','User-Agent','[PASSTHROUGH]\x20Upstream\x20error:\x20','[PASSTHROUGH]\x20','usage','system','authorization','server','no-cache','register','X-TD-Client-Version','method','toISOString','[PASSTHROUGH]\x20Usage:\x20input=','Request\x20to\x20TD\x20LLM\x20Proxy\x20timed\x20out\x20after\x20','3314205belmxz','processChunk','send','TD\x20LLM\x20Pass-through\x20Proxy\x20Server','140VYNVlP','cacheCreationInputTokens','/v1/messages','314RpmyGu','unknown','4BKDtYQ','Content-Type','length','You\x20are\x20`tdx\x20claude`,\x20an\x20extension\x20of\x20Claude\x20Code\x20with\x20tdx\x20CLI\x20tools\x20(https://tdx.treasuredata.com/)\x20and\x20skills\x20for\x20Treasure\x20Data\x20and\x20CDP.\x0a\x0aFor\x20Treasure\x20Data\x20tasks,\x20use\x20these\x20skills:\x0a\x0a|\x20Task\x20|\x20Skill\x20|\x0a|------|-------|\x0a|\x20tdx\x20CLI\x20operations\x20(databases,\x20tables,\x20queries)\x20|\x20tdx-skills:tdx-basic\x20|\x0a|\x20CDP\x20parent\x20segments\x20(YAML\x20config)\x20|\x20tdx-skills:parent-segment\x20|\x0a|\x20CDP\x20child\x20segments\x20(rules,\x20activations)\x20|\x20tdx-skills:segment\x20|\x0a|\x20Validate\x20segment\x20YAML\x20|\x20tdx-skills:validate-segment\x20|\x0a|\x20CDP\x20journeys\x20(stages,\x20steps)\x20|\x20tdx-skills:journey\x20|\x0a|\x20Validate\x20journey\x20YAML\x20|\x20tdx-skills:validate-journey\x20|\x0a|\x20Configure\x20activations\x20|\x20tdx-skills:connector-config\x20|\x0a|\x20Build\x20LLM\x20agents\x20|\x20tdx-skills:agent\x20|\x0a|\x20Write\x20agent\x20system\x20prompts\x20|\x20tdx-skills:agent-prompt\x20|\x0a|\x20TD\x20Trino\x20SQL\x20queries\x20|\x20sql-skills:trino\x20|\x0a|\x20TD\x20Hive\x20SQL\x20queries\x20|\x20sql-skills:hive\x20|\x0a|\x20Time\x20filtering\x20(td_interval,\x20partition\x20pruning)\x20|\x20sql-skills:time-filtering\x20|\x0a|\x20Optimize\x20slow\x20Trino\x20queries\x20|\x20sql-skills:trino-optimizer\x20|\x0a|\x20Convert\x20Trino\x20to\x20Hive\x20(memory\x20errors)\x20|\x20sql-skills:trino-to-hive-migration\x20|\x0a|\x20Treasure\x20Workflow\x20(.dig\x20files)\x20|\x20workflow-skills:digdag\x20|\x0a|\x20Debug/manage\x20workflows\x20|\x20workflow-skills:workflow-management\x20|\x0a|\x20dbt\x20with\x20TD\x20Trino\x20|\x20workflow-skills:dbt\x20|\x0a|\x20JavaScript\x20SDK\x20(browser\x20tracking)\x20|\x20sdk-skills:javascript\x20|\x0a|\x20Python\x20SDK\x20(pytd,\x20pandas)\x20|\x20sdk-skills:python\x20|','outputTokens','cache_read_input_tokens','http://127.0.0.1:','includes','timeout','close','default','/health','end','Unknown\x20error','Authorization','Error\x20body:\x20','SKIP_HEADERS','debug','stream','string','parse','x-td-',',\x20cache_read=','X-TD-Client','writeHead','3367650tridzt','join','Pass-through\x20proxy\x20server\x20stopped','stringify','input_tokens','[PASSTHROUGH\x20PROXY\x20ERROR]:','7148016KDQyTk','1717959AkjNbi','application/json','toLowerCase','Forwarding\x20to:\x20','raw','getReader','Failed\x20to\x20connect\x20to\x20TD\x20LLM\x20Proxy:\x20','error','write','code','header','handleCountTokens','TimeoutError','statusText','getUsage','GET','config','entries','name','profile','decode','handleMessages','handleStreamingResponse','352649Zkrcnn','cache_creation_input_tokens','status','x-api-key','transfer-encoding','POST','post','[PASSTHROUGH]\x20Forwarding\x20count_tokens\x20to:\x20','model','api_error','text','TD1\x20','headers','haiku','logUsage','isArray','11886ykOckl','Stream\x20interrupted','1944tcmxMn','event:\x20error\x0adata:\x20','user-agent'];a58_0x53a4=function(){return _0x46122e;};return a58_0x53a4();}function extractSessionUUID(_0x2de2f6){const _0x6c0667=_0x2de2f6['match'](/_session_([a-f0-9-]+)$/i);if(_0x6c0667)return _0x6c0667[0x1];return _0x2de2f6;}export function injectSystemPrompt(_0x4d7d2e,_0x51a760){const _0x108471=a58_0x1b6ff0,_0x3a7ad9=_0x4d7d2e[_0x108471(0x179)];if(!_0x3a7ad9)return{..._0x4d7d2e,'system':_0x51a760};if(typeof _0x3a7ad9===_0x108471(0x19f))return{..._0x4d7d2e,'system':_0x51a760+'\x0a\x0a'+_0x3a7ad9};if(Array[_0x108471(0x14c)](_0x3a7ad9)){const _0xb90159={'type':_0x108471(0x1cd),'text':_0x51a760};return{..._0x4d7d2e,'system':[_0xb90159,..._0x3a7ad9]};}return _0x4d7d2e;}export function shouldInjectSystemPrompt(_0x25009c){const _0x379a17=a58_0x1b6ff0;return!_0x25009c[_0x379a17(0x1ae)]()[_0x379a17(0x193)](_0x379a17(0x14a));}export class PassThroughProxyServer{[a58_0x1b6ff0(0x17b)];['config'];['logger'];constructor(_0x5e41ea){const _0x46ce27=a58_0x1b6ff0;this[_0x46ce27(0x1bc)]=_0x5e41ea,this[_0x46ce27(0x156)]=_0x5e41ea[_0x46ce27(0x156)],this[_0x46ce27(0x17b)]=a58_0x42ca80({'logger':![],'bodyLimit':0x40*0x400*0x400}),this[_0x46ce27(0x159)](),this['setupMiddleware'](),this['setupRoutes']();}[a58_0x1b6ff0(0x159)](){const _0x1aa41f=a58_0x1b6ff0;this[_0x1aa41f(0x17b)][_0x1aa41f(0x174)](_0x1aa41f(0x1ad),{'parseAs':_0x1aa41f(0x19f)},(_0x3881e8,_0x1164a7,_0x4d217a)=>{try{const _0x3001a8=JSON['parse'](_0x1164a7);_0x4d217a(null,_0x3001a8);}catch(_0x551d08){_0x4d217a(_0x551d08,undefined);}});}[a58_0x1b6ff0(0x15e)](){const _0x3b74dd=a58_0x1b6ff0;this[_0x3b74dd(0x17b)][_0x3b74dd(0x17d)](a58_0x44a1ff,{'origin':!![],'methods':[_0x3b74dd(0x1bb),_0x3b74dd(0x1c8),'OPTIONS'],'allowedHeaders':[_0x3b74dd(0x18d),_0x3b74dd(0x19a),'anthropic-version',_0x3b74dd(0x1c6)]}),this[_0x3b74dd(0x17b)][_0x3b74dd(0x16d)]((_0xad13f5,_0x344ebe,_0xd4669)=>{const _0x396a2e=_0x3b74dd,_0x55943f=_0xad13f5 instanceof Error?_0xad13f5[_0x396a2e(0x153)]:_0x396a2e(0x199);this[_0x396a2e(0x156)]['error'](_0x396a2e(0x1aa),_0xad13f5),_0xd4669['code'](0x1f4)[_0x396a2e(0x185)]({'type':'error','error':{'type':_0x396a2e(0x1cc),'message':_0x55943f}});});}[a58_0x1b6ff0(0x16a)](){const _0x1d2bbd=a58_0x1b6ff0;this['server']['get'](_0x1d2bbd(0x197),async()=>{const _0x21b1ab=_0x1d2bbd;return{'status':'ok','message':_0x21b1ab(0x186)};}),this[_0x1d2bbd(0x17b)][_0x1d2bbd(0x1c9)](_0x1d2bbd(0x189),async(_0x24d459,_0x445ab0)=>{const _0x21c0c3=_0x1d2bbd;return this[_0x21c0c3(0x1c1)](_0x24d459,_0x445ab0);}),this[_0x1d2bbd(0x17b)][_0x1d2bbd(0x1c9)]('/v1/messages/count_tokens',async(_0x4c12f4,_0x110b1d)=>{const _0x3cf986=_0x1d2bbd;return this[_0x3cf986(0x1b7)](_0x4c12f4,_0x110b1d);});}static ['SKIP_HEADERS']=new Set(['host','connection',a58_0x1b6ff0(0x15f),a58_0x1b6ff0(0x1c7),a58_0x1b6ff0(0x17a),a58_0x1b6ff0(0x1c6),a58_0x1b6ff0(0x151)]);[a58_0x1b6ff0(0x15b)](_0x26e6e6){const _0x558afd=a58_0x1b6ff0,_0x12b238={};for(const [_0x11d962,_0x5b837e]of Object[_0x558afd(0x1bd)](_0x26e6e6['headers'])){const _0x507616=_0x11d962[_0x558afd(0x1ae)]();if(PassThroughProxyServer[_0x558afd(0x19c)]['has'](_0x507616))continue;if(_0x507616[_0x558afd(0x15a)](_0x558afd(0x1a1)))continue;if(typeof _0x5b837e==='string')_0x12b238[_0x11d962]=_0x5b837e;else Array[_0x558afd(0x14c)](_0x5b837e)&&(_0x12b238[_0x11d962]=_0x5b837e[_0x558afd(0x1a6)](',\x20'));}const _0x18403e=getVersion();return _0x12b238['Authorization']=_0x558afd(0x148)+this[_0x558afd(0x1bc)][_0x558afd(0x164)],_0x12b238[_0x558afd(0x175)]='tdx/'+_0x18403e,_0x12b238[_0x558afd(0x1a3)]='tdx',_0x12b238[_0x558afd(0x17e)]=_0x18403e,_0x12b238;}async['handleMessages'](_0xb35de9,_0x1eb1c7){const _0x41d1e5=a58_0x1b6ff0,_0x49ec57=_0xb35de9[_0x41d1e5(0x170)],_0x5ed0b0=_0x49ec57[_0x41d1e5(0x19e)]!==![],_0x2efb20=_0x49ec57[_0x41d1e5(0x16f)],_0x20c555=_0x2efb20?.[_0x41d1e5(0x154)]||_0x41d1e5(0x196),_0x1d0d63=extractSessionUUID(_0x20c555),_0x4ddcf2=_0x49ec57[_0x41d1e5(0x1cb)]||_0x41d1e5(0x18b),_0x2a41a2=shouldInjectSystemPrompt(_0x4ddcf2)?injectSystemPrompt(_0x49ec57,TDX_SYSTEM_PROMPT):_0x49ec57,_0x250cae=JSON[_0x41d1e5(0x1a8)](_0x2a41a2),_0x5249fa=Array['isArray'](_0x49ec57[_0x41d1e5(0x152)])?_0x49ec57[_0x41d1e5(0x152)][_0x41d1e5(0x18e)]:0x0;this[_0x41d1e5(0x156)][_0x41d1e5(0x160)](_0x41d1e5(0x177)+_0xb35de9[_0x41d1e5(0x17f)]+'\x20'+_0xb35de9[_0x41d1e5(0x169)]+_0x41d1e5(0x155)+_0x5249fa+_0x41d1e5(0x166)+_0x4ddcf2+_0x41d1e5(0x16c)+_0x5ed0b0);const _0x40f2ec=this[_0x41d1e5(0x1bc)][_0x41d1e5(0x165)]+_0x41d1e5(0x189),_0xcd44e4=this[_0x41d1e5(0x15b)](_0xb35de9);this['logger'][_0x41d1e5(0x19d)](_0x41d1e5(0x1af)+_0x40f2ec);const _0x426a31=this[_0x41d1e5(0x1bc)][_0x41d1e5(0x163)]||DEFAULT_TIMEOUT_MS;try{const _0x2ea6a7=await fetch(_0x40f2ec,{'method':_0x41d1e5(0x1c8),'headers':_0xcd44e4,'body':_0x250cae,'signal':AbortSignal[_0x41d1e5(0x194)](_0x426a31)});if(!_0x2ea6a7['ok']){const _0x19b39d=await _0x2ea6a7['text']();return this['logger'][_0x41d1e5(0x1b3)](_0x41d1e5(0x176)+_0x2ea6a7[_0x41d1e5(0x1c5)]+'\x20'+_0x2ea6a7[_0x41d1e5(0x1b9)]),this[_0x41d1e5(0x156)][_0x41d1e5(0x19d)](_0x41d1e5(0x19b)+_0x19b39d),_0x1eb1c7[_0x41d1e5(0x1b5)](_0x2ea6a7[_0x41d1e5(0x1c5)]),_0x1eb1c7[_0x41d1e5(0x1b6)]('Content-Type',_0x2ea6a7[_0x41d1e5(0x149)][_0x41d1e5(0x16b)](_0x41d1e5(0x18d))||_0x41d1e5(0x1ad)),_0x1eb1c7[_0x41d1e5(0x185)](_0x19b39d);}if(_0x5ed0b0&&_0x2ea6a7[_0x41d1e5(0x170)])await this['handleStreamingResponse'](_0x2ea6a7['body'],_0x1eb1c7,_0x1d0d63,_0x4ddcf2);else{const _0x40824a=await _0x2ea6a7[_0x41d1e5(0x1cd)]();_0x1eb1c7[_0x41d1e5(0x1b6)](_0x41d1e5(0x18d),_0x2ea6a7['headers'][_0x41d1e5(0x16b)](_0x41d1e5(0x18d))||'application/json');try{const _0x57a474=JSON[_0x41d1e5(0x1a0)](_0x40824a);_0x57a474[_0x41d1e5(0x178)]&&await this[_0x41d1e5(0x14b)](_0x1d0d63,_0x4ddcf2,_0x57a474['usage'][_0x41d1e5(0x1a9)]||0x0,_0x57a474['usage'][_0x41d1e5(0x15c)]||0x0,_0x57a474[_0x41d1e5(0x178)][_0x41d1e5(0x1c4)],_0x57a474[_0x41d1e5(0x178)][_0x41d1e5(0x191)]);}catch{}return _0x1eb1c7[_0x41d1e5(0x185)](_0x40824a);}}catch(_0x53c544){const _0x2824ad=_0x53c544 instanceof Error?_0x53c544[_0x41d1e5(0x153)]:_0x41d1e5(0x199),_0x262d95=_0x53c544 instanceof Error&&_0x53c544[_0x41d1e5(0x1be)]===_0x41d1e5(0x1b8);this['logger'][_0x41d1e5(0x1b3)]('[PASSTHROUGH]\x20Failed\x20to\x20forward\x20request:',_0x53c544),_0x1eb1c7[_0x41d1e5(0x1b5)](_0x262d95?0x1f8:0x1f7)[_0x41d1e5(0x185)]({'type':_0x41d1e5(0x1b3),'error':{'type':_0x262d95?_0x41d1e5(0x173):_0x41d1e5(0x1cc),'message':_0x262d95?_0x41d1e5(0x182)+_0x426a31+'ms':'Failed\x20to\x20connect\x20to\x20TD\x20LLM\x20Proxy:\x20'+_0x2824ad}});}}async[a58_0x1b6ff0(0x1c2)](_0x410ab3,_0x10e48a,_0x257698,_0x1cdeeb){const _0x2abcc5=a58_0x1b6ff0;_0x10e48a[_0x2abcc5(0x1b0)][_0x2abcc5(0x1a4)](0xc8,{'Content-Type':_0x2abcc5(0x16e),'Cache-Control':_0x2abcc5(0x17c),'Connection':'keep-alive'});const _0x3ba4cf=new SSEUsageTracker(),_0x228ee1=_0x410ab3[_0x2abcc5(0x1b1)](),_0x393c06=new TextDecoder();try{while(!![]){const {done:_0x1f4f00,value:_0x31ce62}=await _0x228ee1['read']();if(_0x1f4f00)break;const _0x548cdb=_0x393c06[_0x2abcc5(0x1c0)](_0x31ce62,{'stream':!![]});_0x3ba4cf[_0x2abcc5(0x184)](_0x548cdb),_0x10e48a[_0x2abcc5(0x1b0)][_0x2abcc5(0x1b4)](_0x548cdb);}const _0x5830d8=_0x3ba4cf[_0x2abcc5(0x1ba)]();(_0x5830d8[_0x2abcc5(0x158)]>0x0||_0x5830d8[_0x2abcc5(0x190)]>0x0)&&await this[_0x2abcc5(0x14b)](_0x257698,_0x1cdeeb,_0x5830d8[_0x2abcc5(0x158)],_0x5830d8[_0x2abcc5(0x190)],_0x5830d8[_0x2abcc5(0x188)],_0x5830d8[_0x2abcc5(0x172)]);}catch(_0x343f7e){this['logger']['error']('[PASSTHROUGH]\x20Stream\x20error:',_0x343f7e);const _0x41abbb=_0x2abcc5(0x150)+JSON[_0x2abcc5(0x1a8)]({'type':_0x2abcc5(0x1b3),'error':{'type':_0x2abcc5(0x167),'message':_0x2abcc5(0x14e)}})+'\x0a\x0a';_0x10e48a[_0x2abcc5(0x1b0)]['write'](_0x41abbb);}finally{_0x10e48a[_0x2abcc5(0x1b0)][_0x2abcc5(0x198)]();}}async[a58_0x1b6ff0(0x1b7)](_0x2aa927,_0x3928e1){const _0x13950a=a58_0x1b6ff0,_0x3be7ca=_0x2aa927[_0x13950a(0x170)],_0x1715b5=this[_0x13950a(0x1bc)][_0x13950a(0x165)]+_0x13950a(0x162),_0x4851c0=this['buildForwardHeaders'](_0x2aa927),_0x244fc3=_0x3be7ca[_0x13950a(0x1cb)]||'unknown',_0x150f7e=shouldInjectSystemPrompt(_0x244fc3)?injectSystemPrompt(_0x3be7ca,TDX_SYSTEM_PROMPT):_0x3be7ca,_0x3e3254=JSON[_0x13950a(0x1a8)](_0x150f7e);this[_0x13950a(0x156)][_0x13950a(0x19d)](_0x13950a(0x1ca)+_0x1715b5);const _0x46ef40=this[_0x13950a(0x1bc)][_0x13950a(0x163)]||DEFAULT_TIMEOUT_MS;try{const _0xbc3e39=await fetch(_0x1715b5,{'method':'POST','headers':_0x4851c0,'body':_0x3e3254,'signal':AbortSignal[_0x13950a(0x194)](_0x46ef40)}),_0x31f8c0=await _0xbc3e39[_0x13950a(0x1cd)]();return _0x3928e1[_0x13950a(0x1b5)](_0xbc3e39[_0x13950a(0x1c5)]),_0x3928e1[_0x13950a(0x1b6)](_0x13950a(0x18d),_0xbc3e39[_0x13950a(0x149)]['get'](_0x13950a(0x18d))||_0x13950a(0x1ad)),_0x3928e1[_0x13950a(0x185)](_0x31f8c0);}catch(_0x1176a4){const _0x677c07=_0x1176a4 instanceof Error?_0x1176a4['message']:_0x13950a(0x199),_0x1d769c=_0x1176a4 instanceof Error&&_0x1176a4[_0x13950a(0x1be)]==='TimeoutError';this[_0x13950a(0x156)][_0x13950a(0x1b3)](_0x13950a(0x15d),_0x1176a4),_0x3928e1[_0x13950a(0x1b5)](_0x1d769c?0x1f8:0x1f7)[_0x13950a(0x185)]({'type':_0x13950a(0x1b3),'error':{'type':_0x1d769c?_0x13950a(0x173):_0x13950a(0x1cc),'message':_0x1d769c?_0x13950a(0x182)+_0x46ef40+'ms':_0x13950a(0x1b2)+_0x677c07}});}}async[a58_0x1b6ff0(0x14b)](_0x4c287f,_0x33e7e4,_0x9d302e,_0x497fe8,_0x13c037,_0x453e27){const _0x85fd42=a58_0x1b6ff0,_0x334c01={'timestamp':new Date()[_0x85fd42(0x180)](),'model':_0x33e7e4,'inputTokens':_0x9d302e,'outputTokens':_0x497fe8,'cacheCreationInputTokens':_0x13c037,'cacheReadInputTokens':_0x453e27,'profile':this[_0x85fd42(0x1bc)][_0x85fd42(0x1bf)]},_0x1a2a4a=_0x13c037||_0x453e27?_0x85fd42(0x161)+(_0x13c037||0x0)+_0x85fd42(0x1a2)+(_0x453e27||0x0):'';this[_0x85fd42(0x156)]['debug'](_0x85fd42(0x181)+_0x9d302e+_0x85fd42(0x171)+_0x497fe8+_0x1a2a4a+_0x85fd42(0x166)+_0x33e7e4);try{await appendUsageEntry(_0x4c287f,_0x334c01);}catch(_0x3feb6b){this[_0x85fd42(0x156)]['error']('[PASSTHROUGH]\x20Failed\x20to\x20log\x20usage:',_0x3feb6b);}}async['start'](){const _0xae29af=a58_0x1b6ff0;await this['server']['listen']({'port':this[_0xae29af(0x1bc)]['port'],'host':'127.0.0.1'}),this[_0xae29af(0x156)][_0xae29af(0x160)]('Pass-through\x20proxy\x20server\x20started\x20on\x20port\x20'+this['config'][_0xae29af(0x168)]),this[_0xae29af(0x156)][_0xae29af(0x160)](_0xae29af(0x1af)+this[_0xae29af(0x1bc)][_0xae29af(0x165)]);}async['stop'](){const _0x33f817=a58_0x1b6ff0;await this[_0x33f817(0x17b)][_0x33f817(0x195)](),this['logger'][_0x33f817(0x160)](_0x33f817(0x1a7));}['getAddress'](){const _0x33a9c7=a58_0x1b6ff0;return _0x33a9c7(0x192)+this[_0x33a9c7(0x1bc)][_0x33a9c7(0x168)];}}
|
|
1
|
+
const a58_0x37d5fb=a58_0x19de;(function(_0xd8a49f,_0x5edba5){const _0x5bb8fe=a58_0x19de,_0x44775e=_0xd8a49f();while(!![]){try{const _0x1dd218=-parseInt(_0x5bb8fe(0x1a1))/0x1+parseInt(_0x5bb8fe(0x1d0))/0x2+parseInt(_0x5bb8fe(0x18e))/0x3+-parseInt(_0x5bb8fe(0x196))/0x4*(-parseInt(_0x5bb8fe(0x1e0))/0x5)+-parseInt(_0x5bb8fe(0x1b9))/0x6+parseInt(_0x5bb8fe(0x1b6))/0x7*(-parseInt(_0x5bb8fe(0x1a4))/0x8)+-parseInt(_0x5bb8fe(0x1c6))/0x9*(parseInt(_0x5bb8fe(0x175))/0xa);if(_0x1dd218===_0x5edba5)break;else _0x44775e['push'](_0x44775e['shift']());}catch(_0x3cac43){_0x44775e['push'](_0x44775e['shift']());}}}(a58_0x1e1a,0xebe66));import a58_0x211930 from'fastify';import a58_0x2ea739 from'@fastify/cors';function a58_0x19de(_0x287619,_0x11908f){_0x287619=_0x287619-0x16e;const _0x1e1a5b=a58_0x1e1a();let _0x19dee5=_0x1e1a5b[_0x287619];return _0x19dee5;}import{SSEUsageTracker}from'./sse-usage-parser.js';import{appendUsageEntry}from'./claude-usage-tracker.js';import{getVersion}from'../core/version.js';const DEFAULT_TIMEOUT_MS=0x5*0x3c*0x3e8,TDX_SYSTEM_PROMPT='You\x20are\x20`tdx\x20claude`,\x20an\x20extension\x20of\x20Claude\x20Code\x20with\x20tdx\x20CLI\x20tools\x20(https://tdx.treasuredata.com/)\x20and\x20skills\x20for\x20Treasure\x20Data\x20and\x20CDP.\x0a\x0aFor\x20Treasure\x20Data\x20tasks,\x20use\x20these\x20skills:\x0a\x0a|\x20Task\x20|\x20Skill\x20|\x0a|------|-------|\x0a|\x20tdx\x20CLI\x20operations\x20(databases,\x20tables,\x20queries)\x20|\x20tdx-skills:tdx-basic\x20|\x0a|\x20CDP\x20parent\x20segments\x20(YAML\x20config)\x20|\x20tdx-skills:parent-segment\x20|\x0a|\x20CDP\x20child\x20segments\x20(rules,\x20activations)\x20|\x20tdx-skills:segment\x20|\x0a|\x20Validate\x20segment\x20YAML\x20|\x20tdx-skills:validate-segment\x20|\x0a|\x20CDP\x20journeys\x20(stages,\x20steps)\x20|\x20tdx-skills:journey\x20|\x0a|\x20Validate\x20journey\x20YAML\x20|\x20tdx-skills:validate-journey\x20|\x0a|\x20Configure\x20activations\x20|\x20tdx-skills:connector-config\x20|\x0a|\x20Build\x20LLM\x20agents\x20|\x20tdx-skills:agent\x20|\x0a|\x20Write\x20agent\x20system\x20prompts\x20|\x20tdx-skills:agent-prompt\x20|\x0a|\x20TD\x20Trino\x20SQL\x20queries\x20|\x20sql-skills:trino\x20|\x0a|\x20TD\x20Hive\x20SQL\x20queries\x20|\x20sql-skills:hive\x20|\x0a|\x20Time\x20filtering\x20(td_interval,\x20partition\x20pruning)\x20|\x20sql-skills:time-filtering\x20|\x0a|\x20Optimize\x20slow\x20Trino\x20queries\x20|\x20sql-skills:trino-optimizer\x20|\x0a|\x20Convert\x20Trino\x20to\x20Hive\x20(memory\x20errors)\x20|\x20sql-skills:trino-to-hive-migration\x20|\x0a|\x20Treasure\x20Workflow\x20(.dig\x20files)\x20|\x20workflow-skills:digdag\x20|\x0a|\x20Debug/manage\x20workflows\x20|\x20workflow-skills:workflow-management\x20|\x0a|\x20dbt\x20with\x20TD\x20Trino\x20|\x20workflow-skills:dbt\x20|\x0a|\x20JavaScript\x20SDK\x20(browser\x20tracking)\x20|\x20sdk-skills:javascript\x20|\x0a|\x20Python\x20SDK\x20(pytd,\x20pandas)\x20|\x20sdk-skills:python\x20|';function extractSessionUUID(_0x1dbbcc){const _0x59ebeb=a58_0x19de,_0x7064e6=_0x1dbbcc[_0x59ebeb(0x1d5)](/_session_([a-f0-9-]+)$/i);if(_0x7064e6)return _0x7064e6[0x1];return _0x1dbbcc;}export function injectSystemPrompt(_0x16c681,_0x1105d5){const _0x16722b=a58_0x19de,_0x531c5b=_0x16c681[_0x16722b(0x1aa)];if(!_0x531c5b)return{..._0x16c681,'system':_0x1105d5};if(typeof _0x531c5b===_0x16722b(0x1cf))return{..._0x16c681,'system':_0x1105d5+'\x0a\x0a'+_0x531c5b};if(Array[_0x16722b(0x1a7)](_0x531c5b)){const _0x1b7c4c={'type':'text','text':_0x1105d5};return{..._0x16c681,'system':[_0x1b7c4c,..._0x531c5b]};}return _0x16c681;}export function shouldInjectSystemPrompt(_0x27d8fa){const _0x7f809=a58_0x19de;return!_0x27d8fa[_0x7f809(0x1ea)]()['includes'](_0x7f809(0x1da));}export class PassThroughProxyServer{[a58_0x37d5fb(0x1cd)];[a58_0x37d5fb(0x19c)];[a58_0x37d5fb(0x1c7)];constructor(_0x3e1edc){const _0x53ec2e=a58_0x37d5fb;this[_0x53ec2e(0x19c)]=_0x3e1edc,this[_0x53ec2e(0x1c7)]=_0x3e1edc[_0x53ec2e(0x1c7)],this[_0x53ec2e(0x1cd)]=a58_0x211930({'logger':![],'bodyLimit':0x40*0x400*0x400}),this[_0x53ec2e(0x185)](),this[_0x53ec2e(0x194)](),this['setupRoutes']();}['setupJsonParser'](){const _0x52c0fe=a58_0x37d5fb;this[_0x52c0fe(0x1cd)][_0x52c0fe(0x1ca)](_0x52c0fe(0x184),{'parseAs':_0x52c0fe(0x1cf)},(_0x3d7d6f,_0x44902a,_0x178cfe)=>{const _0x3e6d35=_0x52c0fe;try{const _0x4bbf12=JSON[_0x3e6d35(0x17a)](_0x44902a);_0x178cfe(null,_0x4bbf12);}catch(_0x4da1f5){_0x178cfe(_0x4da1f5,undefined);}});}['setupMiddleware'](){const _0x5c1dcc=a58_0x37d5fb;this['server'][_0x5c1dcc(0x1d3)](a58_0x2ea739,{'origin':!![],'methods':[_0x5c1dcc(0x174),'POST','OPTIONS'],'allowedHeaders':[_0x5c1dcc(0x18d),_0x5c1dcc(0x1f1),_0x5c1dcc(0x1dc),_0x5c1dcc(0x18a)]}),this[_0x5c1dcc(0x1cd)][_0x5c1dcc(0x1bc)]((_0x91b47a,_0x573105,_0x524173)=>{const _0x23f5c2=_0x5c1dcc,_0x478650=_0x91b47a instanceof Error?_0x91b47a['message']:_0x23f5c2(0x1bd);this[_0x23f5c2(0x1c7)][_0x23f5c2(0x1be)](_0x23f5c2(0x19b),_0x91b47a),_0x524173[_0x23f5c2(0x17c)](0x1f4)[_0x23f5c2(0x188)]({'type':_0x23f5c2(0x1be),'error':{'type':_0x23f5c2(0x1a8),'message':_0x478650}});});}[a58_0x37d5fb(0x173)](){const _0x4652a9=a58_0x37d5fb;this[_0x4652a9(0x1cd)][_0x4652a9(0x1d9)]('/health',async()=>{const _0x4492b8=_0x4652a9;return{'status':'ok','message':_0x4492b8(0x181)};}),this[_0x4652a9(0x1cd)][_0x4652a9(0x1ec)](_0x4652a9(0x1ad),async(_0x450e41,_0x276ea3)=>{const _0x32a0d9=_0x4652a9;return this[_0x32a0d9(0x17d)](_0x450e41,_0x276ea3);}),this['server'][_0x4652a9(0x1ec)](_0x4652a9(0x1bf),async(_0x2b5268,_0x393f54)=>{const _0x3017e2=_0x4652a9;return this[_0x3017e2(0x1b4)](_0x2b5268,_0x393f54);});}static [a58_0x37d5fb(0x1bb)]=new Set([a58_0x37d5fb(0x178),a58_0x37d5fb(0x1a5),a58_0x37d5fb(0x1e3),'transfer-encoding','authorization',a58_0x37d5fb(0x18a),a58_0x37d5fb(0x1c9)]);['buildForwardHeaders'](_0x1e0456){const _0x4eb7b3=a58_0x37d5fb,_0xa763fe={};for(const [_0xf118fd,_0x1a2973]of Object[_0x4eb7b3(0x190)](_0x1e0456[_0x4eb7b3(0x1e7)])){const _0x215d7e=_0xf118fd[_0x4eb7b3(0x1ea)]();if(PassThroughProxyServer[_0x4eb7b3(0x1bb)][_0x4eb7b3(0x1df)](_0x215d7e))continue;if(_0x215d7e[_0x4eb7b3(0x1d2)]('x-td-'))continue;if(typeof _0x1a2973===_0x4eb7b3(0x1cf))_0xa763fe[_0xf118fd]=_0x1a2973;else Array[_0x4eb7b3(0x1a7)](_0x1a2973)&&(_0xa763fe[_0xf118fd]=_0x1a2973[_0x4eb7b3(0x179)](',\x20'));}const _0x3445b2=getVersion();return _0xa763fe[_0x4eb7b3(0x1f1)]=_0x4eb7b3(0x183)+this['config'][_0x4eb7b3(0x17b)],_0xa763fe[_0x4eb7b3(0x1cc)]=_0x4eb7b3(0x1a9)+_0x3445b2,_0xa763fe[_0x4eb7b3(0x187)]=_0x4eb7b3(0x1e9),_0xa763fe[_0x4eb7b3(0x19a)]=_0x3445b2,_0xa763fe;}async[a58_0x37d5fb(0x17d)](_0x244e1c,_0x21e336){const _0x3bd188=a58_0x37d5fb,_0x3332b4=_0x244e1c[_0x3bd188(0x1c3)],_0xa11692=_0x3332b4[_0x3bd188(0x1c0)]!==![],_0x539f38=_0x3332b4[_0x3bd188(0x1e1)],_0x2d50a8=_0x539f38?.['user_id']||_0x3bd188(0x1af),_0x58f769=extractSessionUUID(_0x2d50a8),_0x48f2d2=_0x3332b4['model']||_0x3bd188(0x192),_0x1a9f5b=shouldInjectSystemPrompt(_0x48f2d2)?injectSystemPrompt(_0x3332b4,TDX_SYSTEM_PROMPT):_0x3332b4,_0x1a8509=JSON[_0x3bd188(0x1de)](_0x1a9f5b),_0x1c9d64=Array[_0x3bd188(0x1a7)](_0x3332b4[_0x3bd188(0x1cb)])?_0x3332b4[_0x3bd188(0x1cb)][_0x3bd188(0x1b2)]:0x0;this[_0x3bd188(0x1c7)][_0x3bd188(0x1e6)](_0x3bd188(0x193)+_0x244e1c[_0x3bd188(0x1e8)]+'\x20'+_0x244e1c[_0x3bd188(0x1c4)]+_0x3bd188(0x1a2)+_0x1c9d64+_0x3bd188(0x1ef)+_0x48f2d2+',\x20stream='+_0xa11692);const _0x5b71a8=this[_0x3bd188(0x19c)][_0x3bd188(0x191)]+'/v1/messages',_0xc075a6=this[_0x3bd188(0x1b3)](_0x244e1c);this['logger'][_0x3bd188(0x195)](_0x3bd188(0x1e5)+_0x5b71a8);const _0x5207c9=this[_0x3bd188(0x19c)][_0x3bd188(0x18c)]||DEFAULT_TIMEOUT_MS;try{const _0x513b59=await fetch(_0x5b71a8,{'method':_0x3bd188(0x182),'headers':_0xc075a6,'body':_0x1a8509,'signal':AbortSignal[_0x3bd188(0x1ae)](_0x5207c9)});if(!_0x513b59['ok']){const _0x252472=await _0x513b59['text']();return this[_0x3bd188(0x1c7)][_0x3bd188(0x1be)](_0x3bd188(0x1eb)+_0x513b59[_0x3bd188(0x1ba)]+'\x20'+_0x513b59[_0x3bd188(0x197)]),this[_0x3bd188(0x1c7)][_0x3bd188(0x195)](_0x3bd188(0x1c2)+_0x252472),_0x21e336['code'](_0x513b59[_0x3bd188(0x1ba)]),_0x21e336[_0x3bd188(0x1b5)]('Content-Type',_0x513b59['headers'][_0x3bd188(0x1d9)]('Content-Type')||'application/json'),_0x21e336[_0x3bd188(0x188)](_0x252472);}if(_0xa11692&&_0x513b59['body'])await this[_0x3bd188(0x1ee)](_0x513b59[_0x3bd188(0x1c3)],_0x21e336,_0x58f769,_0x48f2d2);else{const _0x279067=await _0x513b59[_0x3bd188(0x17f)]();_0x21e336[_0x3bd188(0x1b5)]('Content-Type',_0x513b59[_0x3bd188(0x1e7)][_0x3bd188(0x1d9)](_0x3bd188(0x18d))||'application/json');try{const _0x29c00b=JSON[_0x3bd188(0x17a)](_0x279067);_0x29c00b[_0x3bd188(0x1d1)]&&await this['logUsage'](_0x58f769,_0x48f2d2,_0x29c00b[_0x3bd188(0x1d1)][_0x3bd188(0x19f)]||0x0,_0x29c00b[_0x3bd188(0x1d1)][_0x3bd188(0x1ce)]||0x0,_0x29c00b[_0x3bd188(0x1d1)][_0x3bd188(0x1b1)],_0x29c00b['usage']['cache_read_input_tokens']);}catch{}return _0x21e336['send'](_0x279067);}}catch(_0x35b8ed){const _0x4468b4=_0x35b8ed instanceof Error?_0x35b8ed['message']:_0x3bd188(0x1bd),_0x55b413=_0x35b8ed instanceof Error&&_0x35b8ed['name']===_0x3bd188(0x186);this['logger'][_0x3bd188(0x1be)](_0x3bd188(0x1d7),_0x35b8ed),_0x21e336[_0x3bd188(0x17c)](_0x55b413?0x1f8:0x1f7)[_0x3bd188(0x188)]({'type':_0x3bd188(0x1be),'error':{'type':_0x55b413?_0x3bd188(0x18b):_0x3bd188(0x1a8),'message':_0x55b413?_0x3bd188(0x170)+_0x5207c9+'ms':_0x3bd188(0x18f)+_0x4468b4}});}}async[a58_0x37d5fb(0x1ee)](_0x417750,_0x237390,_0x2acf82,_0xb47b10){const _0x198271=a58_0x37d5fb;_0x237390[_0x198271(0x1c8)][_0x198271(0x17e)](0xc8,{'Content-Type':_0x198271(0x1ab),'Cache-Control':_0x198271(0x1a6),'Connection':_0x198271(0x1c1)});const _0x513a3a=new SSEUsageTracker(),_0xa7b430=_0x417750[_0x198271(0x1e4)](),_0x1d85a3=new TextDecoder();try{while(!![]){const {done:_0x524765,value:_0x4baa27}=await _0xa7b430[_0x198271(0x177)]();if(_0x524765)break;const _0x4b64c0=_0x1d85a3[_0x198271(0x199)](_0x4baa27,{'stream':!![]});_0x513a3a[_0x198271(0x180)](_0x4b64c0),_0x237390[_0x198271(0x1c8)][_0x198271(0x1d6)](_0x4b64c0);}const _0x5dccff=_0x513a3a[_0x198271(0x16f)]();(_0x5dccff['inputTokens']>0x0||_0x5dccff[_0x198271(0x1db)]>0x0)&&await this[_0x198271(0x1dd)](_0x2acf82,_0xb47b10,_0x5dccff[_0x198271(0x171)],_0x5dccff['outputTokens'],_0x5dccff[_0x198271(0x19d)],_0x5dccff['cacheReadInputTokens']);}catch(_0x2d375a){this[_0x198271(0x1c7)][_0x198271(0x1be)](_0x198271(0x172),_0x2d375a);const _0x3032f5=_0x198271(0x1a3)+JSON[_0x198271(0x1de)]({'type':_0x198271(0x1be),'error':{'type':'stream_error','message':_0x198271(0x1ed)}})+'\x0a\x0a';_0x237390['raw'][_0x198271(0x1d6)](_0x3032f5);}finally{_0x237390[_0x198271(0x1c8)][_0x198271(0x1b7)]();}}async[a58_0x37d5fb(0x1b4)](_0x546df7,_0x49ba84){const _0x14c44a=a58_0x37d5fb,_0x4f4b97=_0x546df7[_0x14c44a(0x1c3)],_0x337ec3=this[_0x14c44a(0x19c)][_0x14c44a(0x191)]+'/v1/messages/count_tokens',_0x196f8d=this['buildForwardHeaders'](_0x546df7),_0x2949ed=_0x4f4b97['model']||_0x14c44a(0x192),_0x3ce0b8=shouldInjectSystemPrompt(_0x2949ed)?injectSystemPrompt(_0x4f4b97,TDX_SYSTEM_PROMPT):_0x4f4b97,_0x3dd954=JSON[_0x14c44a(0x1de)](_0x3ce0b8);this[_0x14c44a(0x1c7)][_0x14c44a(0x195)](_0x14c44a(0x176)+_0x337ec3);const _0x49ddcb=this[_0x14c44a(0x19c)][_0x14c44a(0x18c)]||DEFAULT_TIMEOUT_MS;try{const _0x3b9011=await fetch(_0x337ec3,{'method':'POST','headers':_0x196f8d,'body':_0x3dd954,'signal':AbortSignal[_0x14c44a(0x1ae)](_0x49ddcb)}),_0x46ea31=await _0x3b9011[_0x14c44a(0x17f)]();return _0x49ba84['code'](_0x3b9011['status']),_0x49ba84['header'](_0x14c44a(0x18d),_0x3b9011[_0x14c44a(0x1e7)][_0x14c44a(0x1d9)](_0x14c44a(0x18d))||_0x14c44a(0x184)),_0x49ba84[_0x14c44a(0x188)](_0x46ea31);}catch(_0x1c5a3a){const _0x14ef1f=_0x1c5a3a instanceof Error?_0x1c5a3a[_0x14c44a(0x1a0)]:_0x14c44a(0x1bd),_0x6f375a=_0x1c5a3a instanceof Error&&_0x1c5a3a[_0x14c44a(0x1b0)]===_0x14c44a(0x186);this[_0x14c44a(0x1c7)][_0x14c44a(0x1be)]('[PASSTHROUGH]\x20Failed\x20to\x20forward\x20count_tokens\x20request:',_0x1c5a3a),_0x49ba84['code'](_0x6f375a?0x1f8:0x1f7)[_0x14c44a(0x188)]({'type':'error','error':{'type':_0x6f375a?_0x14c44a(0x18b):_0x14c44a(0x1a8),'message':_0x6f375a?_0x14c44a(0x170)+_0x49ddcb+'ms':_0x14c44a(0x18f)+_0x14ef1f}});}}async[a58_0x37d5fb(0x1dd)](_0x211ea2,_0xaf5cd5,_0x1d3000,_0x238ac0,_0x141313,_0xe99c74){const _0x327c32=a58_0x37d5fb,_0x5f14bf={'timestamp':new Date()[_0x327c32(0x1d4)](),'model':_0xaf5cd5,'inputTokens':_0x1d3000,'outputTokens':_0x238ac0,'cacheCreationInputTokens':_0x141313,'cacheReadInputTokens':_0xe99c74,'profile':this[_0x327c32(0x19c)][_0x327c32(0x1c5)]},_0x160e6b=_0x141313||_0xe99c74?_0x327c32(0x1f0)+(_0x141313||0x0)+_0x327c32(0x16e)+(_0xe99c74||0x0):'';this['logger'][_0x327c32(0x195)]('[PASSTHROUGH]\x20Usage:\x20input='+_0x1d3000+_0x327c32(0x198)+_0x238ac0+_0x160e6b+_0x327c32(0x1ef)+_0xaf5cd5);try{await appendUsageEntry(_0x211ea2,_0x5f14bf);}catch(_0x3c6430){this[_0x327c32(0x1c7)]['error']('[PASSTHROUGH]\x20Failed\x20to\x20log\x20usage:',_0x3c6430);}}async['start'](){const _0x4314c3=a58_0x37d5fb;await this[_0x4314c3(0x1cd)][_0x4314c3(0x189)]({'port':this[_0x4314c3(0x19c)][_0x4314c3(0x1ac)],'host':'127.0.0.1'}),this['logger'][_0x4314c3(0x1e6)](_0x4314c3(0x1e2)+this[_0x4314c3(0x19c)][_0x4314c3(0x1ac)]),this[_0x4314c3(0x1c7)][_0x4314c3(0x1e6)](_0x4314c3(0x1e5)+this[_0x4314c3(0x19c)]['llmProxyUrl']);}async[a58_0x37d5fb(0x1d8)](){const _0x1f207b=a58_0x37d5fb;await this[_0x1f207b(0x1cd)][_0x1f207b(0x19e)](),this[_0x1f207b(0x1c7)]['info']('Pass-through\x20proxy\x20server\x20stopped');}[a58_0x37d5fb(0x1b8)](){const _0x57517c=a58_0x37d5fb;return'http://127.0.0.1:'+this[_0x57517c(0x19c)]['port'];}}function a58_0x1e1a(){const _0x4e593e=['end','getAddress','564324NJrrVz','status','SKIP_HEADERS','setErrorHandler','Unknown\x20error','error','/v1/messages/count_tokens','stream','keep-alive','Error\x20body:\x20','body','url','profile','27aipwYz','logger','raw','user-agent','addContentTypeParser','messages','User-Agent','server','output_tokens','string','1886196fVeZYm','usage','startsWith','register','toISOString','match','write','[PASSTHROUGH]\x20Failed\x20to\x20forward\x20request:','stop','get','haiku','outputTokens','anthropic-version','logUsage','stringify','has','5hHkfUz','metadata','Pass-through\x20proxy\x20server\x20started\x20on\x20port\x20','content-length','getReader','Forwarding\x20to:\x20','info','headers','method','tdx','toLowerCase','[PASSTHROUGH]\x20Upstream\x20error:\x20','post','Stream\x20interrupted','handleStreamingResponse',',\x20model=',',\x20cache_create=','Authorization',',\x20cache_read=','getUsage','Request\x20to\x20TD\x20LLM\x20Proxy\x20timed\x20out\x20after\x20','inputTokens','[PASSTHROUGH]\x20Stream\x20error:','setupRoutes','GET','2372810Pziadu','[PASSTHROUGH]\x20Forwarding\x20count_tokens\x20to:\x20','read','host','join','parse','apiKey','code','handleMessages','writeHead','text','processChunk','TD\x20LLM\x20Pass-through\x20Proxy\x20Server','POST','TD1\x20','application/json','setupJsonParser','TimeoutError','X-TD-Client','send','listen','x-api-key','timeout_error','timeoutMs','Content-Type','875238QpVjvD','Failed\x20to\x20connect\x20to\x20TD\x20LLM\x20Proxy:\x20','entries','llmProxyUrl','unknown','[PASSTHROUGH]\x20','setupMiddleware','debug','5156852LPNCCr','statusText',',\x20output=','decode','X-TD-Client-Version','[PASSTHROUGH\x20PROXY\x20ERROR]:','config','cacheCreationInputTokens','close','input_tokens','message','417268EHYFYJ',':\x20messages=','event:\x20error\x0adata:\x20','12688PMIIPa','connection','no-cache','isArray','api_error','tdx/','system','text/event-stream','port','/v1/messages','timeout','default','name','cache_creation_input_tokens','length','buildForwardHeaders','handleCountTokens','header','1477aeUJzZ'];a58_0x1e1a=function(){return _0x4e593e;};return a58_0x1e1a();}
|
package/dist/proxy/server.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
const a59_0x3a83cc=a59_0x2fd5;function a59_0x39c9(){const _0x2e8b3b=['url','validateMessageRequest','message_delta','New\x20-\x20system\x20prompts:\x20','\x20->\x20','Unknown\x20error','api_error','getAgentForModel','name','has','error','System\x20prompts:\x20','body','agentId','listen','map','messages','\x20(reasoning:\x20','Evicted\x20oldest\x20chat\x20(signature:\x20','new\x20tool(s)','Reset\x20chat\x20state\x20to\x20recover\x20on\x20next\x20request','2471bCVFCR','717102etMbhu','trace','Reset\x20chat\x20ID\x20to\x20recover\x20on\x20next\x20request','Failed\x20to\x20start\x20proxy\x20server:\x20','/v1/messages','\x20chars.\x20Cleared\x20chat\x20state\x20for\x20session\x20','442375YJNnGT','raw','Authorization','/health','user_id','message','Proxy\x20server\x20started\x20at\x20localhost:','method','33840994kuOiqK','substring','\x20Input\x20size:\x20',',\x20is\x20new\x20context:\x20','Creating/looking\x20up\x20agent\x20for:\x20',',\x20tools=','server','createPromise','\x0a---\x0a\x0a','stringify','keep-alive','default','isArray','[session:\x20','request_too_large','filter','TD\x20LLM\x20Proxy\x20Server','model','Added\x20system\x20prompt\x20previews:','\x20SSE\x20events.','GET','handleCountTokens','\x20system\x20prompts,\x20','setupMiddleware','end','Failed\x20to\x20generate\x20tool\x20prompt:','http://','[CONTEXT\x20LENGTH\x20ERROR]\x20','port','getOrCreateSession','event',',\x20tool_names=[','handleMessages','string','helpText','POST','INVALID_REQUEST','replace','...','Added\x20tool\x20names:','site','catch','data','creating',']\x20Continue\x20chat\x20for\x20model\x20','cleanupInterval','getOrCreateDefaultAgent','get','set','0.0.0.0','Agent\x20cached:\x20','setErrorHandler','Embedding','context',',\x20context\x20signature:\x20','not_supported_error','thinking','embeddedToolsByName','system','output_tokens','logger','\x20limit','push','anthropic-version','21IlpuAo','join','88tFgfCN','Context:','attributes','Failed\x20to\x20extract\x20tool\x20results:','messageHistory',')\x20to\x20stay\x20under\x20',',\x20tools:\x20','projectId','text','Including\x20tool\x20results','warn','[PROXY\x20ERROR]\x20Non-streaming\x20responses\x20are\x20not\x20yet\x20supported','tools','send','info','trim','Final\x20message\x20reconstructed\x20after\x20context\x20reset:','11094phUWYT','\x20|\x20','Failed\x20to\x20initialize\x20chat\x20stream.\x20Please\x20try\x20again.',':\x20messages=','Final\x20message\x20is\x20empty\x20after\x20construction\x20-\x20starting\x20fresh\x20conversation','900140aUcUQx','startChat','Stream\x20complete.\x20Sent\x20','writeHead','no-cache',']\x20model:\x20','Non-streaming\x20responses\x20are\x20not\x20yet\x20supported','size','header:\x20','stream','http://localhost:','profile','Started\x20cache\x20cleanup\x20interval\x20(runs\x20every\x20','8eXBrOJ','chatId','metadata','code','sessionCache',':\x20estimated\x20input_tokens=',',\x20context:\x20','close','delete','setupRoutes','\x20tools,\x20message_size=','chats','text/event-stream','OPTIONS','toISOString','Validation\x20failed:\x20tools\x20must\x20be\x20an\x20array\x20if\x20provided','clear','156378cQpIaP','12794690lFoxxT','\x0a</conversation_history>','embeddedSystemPrompts','lastUsedAt','now','usage','type','\x0a\x0a<conversation_history>\x0a','Concurrent\x20chat\x20creation\x20failed,\x20will\x20fall\x20back\x20to\x20lazy\x20creation:',',\x20context=','debug','llm','post','handleRouteError','config','length','agentCache','write','cleanupExpiredChats','address','getAddress','Failed\x20to\x20log\x20usage\x20entry:\x20','tdx'];a59_0x39c9=function(){return _0x2e8b3b;};return a59_0x39c9();}(function(_0x190d35,_0x57a1e7){const _0x3f1665=a59_0x2fd5,_0x248796=_0x190d35();while(!![]){try{const _0x2276b7=-parseInt(_0x3f1665(0x9a))/0x1+-parseInt(_0x3f1665(0x118))/0x2*(parseInt(_0x3f1665(0xe2))/0x3)+-parseInt(_0x3f1665(0x107))/0x4*(parseInt(_0x3f1665(0xfa))/0x5)+parseInt(_0x3f1665(0xf5))/0x6*(-parseInt(_0x3f1665(0x93))/0x7)+parseInt(_0x3f1665(0xe4))/0x8*(parseInt(_0x3f1665(0x94))/0x9)+-parseInt(_0x3f1665(0x119))/0xa+parseInt(_0x3f1665(0xa2))/0xb;if(_0x2276b7===_0x57a1e7)break;else _0x248796['push'](_0x248796['shift']());}catch(_0x35c501){_0x248796['push'](_0x248796['shift']());}}}(a59_0x39c9,0xa3d10));import a59_0x38fbe8 from'fastify';import a59_0x2df495 from'@fastify/cors';import{ErrorCode,SDKError}from'../sdk/index.js';import{transformTDStreamToAnthropic,formatAnthropicSSE,generateMessageId,generateToolPrompt,extractToolResults,estimateInputTokensFromRequest}from'./anthropic-adapter.js';import{colorizeJSON,colorizeJSONCompact}from'../utils/colors.js';import{extractModelAlias,resolveModelAlias}from'../sdk/llm/model-aliases.js';import{SessionCache}from'./session-cache.js';import{appendUsageEntry}from'./claude-usage-tracker.js';import{calculateContextSignature}from'./context-signature.js';import{formatConversationHistory,calculateConversationDelta,extractLastUserMessage}from'./conversation-utils.js';function extractSessionUUID(_0x395c9e){const _0x217cf4=_0x395c9e['match'](/_session_([a-f0-9-]+)$/i);if(_0x217cf4)return _0x217cf4[0x1];return _0x395c9e;}function clearChatState(_0xfd5b1f){const _0x180f60=a59_0x2fd5;_0xfd5b1f['chatId']='',_0xfd5b1f[_0x180f60(0x11b)][_0x180f60(0x117)](),_0xfd5b1f[_0x180f60(0xdb)][_0x180f60(0x117)]();}function mapBudgetTokensToReasoningEffort(_0x1e224a,_0x286f75){if(_0x286f75!=='dev-us01')return 0x0;if(!_0x1e224a||_0x1e224a===0x0)return 0x0;if(_0x1e224a<=0x400)return 0x1;if(_0x1e224a<=0x800)return 0x2;if(_0x1e224a<=0x1000)return 0x3;return 0x4;}const MAX_CHATS_PER_SESSION=0xa,CACHE_EXPIRATION_MS=0xa*0x3c*0x3e8,CLEANUP_INTERVAL_MS=0x3c*0x3e8;function a59_0x2fd5(_0x104c8b,_0x325902){_0x104c8b=_0x104c8b-0x70;const _0x39c973=a59_0x39c9();let _0x2fd59f=_0x39c973[_0x104c8b];return _0x2fd59f;}export class ProxyServer{[a59_0x3a83cc(0xa8)];[a59_0x3a83cc(0x10b)];[a59_0x3a83cc(0x77)];[a59_0x3a83cc(0x75)];[a59_0x3a83cc(0xcf)];['logger'];constructor(_0x24f75d){const _0x562321=a59_0x3a83cc;this[_0x562321(0xde)]=_0x24f75d['logger'],this[_0x562321(0x75)]=_0x24f75d,this['sessionCache']=new SessionCache({'maxChatsPerSession':MAX_CHATS_PER_SESSION,'cacheExpirationMs':CACHE_EXPIRATION_MS}),this[_0x562321(0x77)]=new Map(),this['server']=a59_0x38fbe8({'logger':![],'bodyLimit':0x40*0x400*0x400}),this[_0x562321(0xb9)](),this[_0x562321(0x110)]();}async[a59_0x3a83cc(0x85)](_0x43ebeb,_0x1f80a1=0x0){const _0xdd7abe=a59_0x3a83cc,_0x5182c2=extractModelAlias(_0x43ebeb),_0x3ba2ad=resolveModelAlias(_0x5182c2),_0x570356=_0x3ba2ad+'_'+_0x1f80a1;let _0x57b2ab=this[_0xdd7abe(0x77)][_0xdd7abe(0xd1)](_0x570356);if(!_0x57b2ab){this[_0xdd7abe(0xde)][_0xdd7abe(0x71)]('Model\x20normalization:\x20'+_0x43ebeb+_0xdd7abe(0x82)+_0x5182c2+_0xdd7abe(0x82)+_0x3ba2ad),this[_0xdd7abe(0xde)][_0xdd7abe(0x71)](_0xdd7abe(0xa6)+_0x3ba2ad+_0xdd7abe(0x8f)+_0x1f80a1+')');const _0x151651=await this[_0xdd7abe(0x75)]['tdx']['llm'][_0xdd7abe(0xd0)](_0x3ba2ad,_0x1f80a1);_0x57b2ab=_0x151651['id'],this[_0xdd7abe(0x77)][_0xdd7abe(0xd2)](_0x570356,_0x57b2ab),this['logger'][_0xdd7abe(0x71)](_0xdd7abe(0xd4)+_0x570356+_0xdd7abe(0x82)+_0x57b2ab+'\x20('+_0x151651[_0xdd7abe(0xe6)][_0xdd7abe(0x86)]+')');}return _0x57b2ab;}['cleanupExpiredChats'](){const _0x29c16e=a59_0x3a83cc;this[_0x29c16e(0x10b)][_0x29c16e(0x79)]();}[a59_0x3a83cc(0xb9)](){const _0x5b7bfe=a59_0x3a83cc;this['server']['register'](a59_0x2df495,{'origin':!![],'methods':[_0x5b7bfe(0xb6),_0x5b7bfe(0xc5),_0x5b7bfe(0x114)],'allowedHeaders':['Content-Type',_0x5b7bfe(0x9c),_0x5b7bfe(0xe1),'x-api-key']}),this['server'][_0x5b7bfe(0xd5)]((_0x4c9b32,_0xfc5874,_0x22736e)=>{const _0x5e0e70=_0x5b7bfe;this[_0x5e0e70(0x74)](_0x4c9b32,_0xfc5874,_0x22736e);});}['handleRouteError'](_0x44d1e2,_0x5ca0cd,_0x5b2016){const _0x2a87cb=a59_0x3a83cc;if(_0x44d1e2 instanceof SDKError){const _0x3ec74b=_0x44d1e2['isUserError']()?0x190:0x1f4;_0x5b2016['code'](_0x3ec74b)[_0x2a87cb(0xf1)]({'type':_0x2a87cb(0x88),'error':{'type':_0x44d1e2[_0x2a87cb(0x10a)],'message':_0x44d1e2['originalMessage'],'helpText':_0x44d1e2[_0x2a87cb(0xc4)]}});}else{const _0x26e6fd=_0x44d1e2 instanceof Error?_0x44d1e2['message']:_0x2a87cb(0x83);this[_0x2a87cb(0xde)]['error']('[PROXY\x20ERROR]\x20Unhandled\x20error\x20in\x20'+_0x5ca0cd[_0x2a87cb(0xa1)]+'\x20'+_0x5ca0cd[_0x2a87cb(0x7e)]+':',_0x44d1e2),_0x5b2016[_0x2a87cb(0x10a)](0x1f4)[_0x2a87cb(0xf1)]({'type':_0x2a87cb(0x88),'error':{'type':_0x2a87cb(0x84),'message':_0x26e6fd}});}}[a59_0x3a83cc(0x110)](){const _0x1e6755=a59_0x3a83cc;this[_0x1e6755(0xa8)][_0x1e6755(0xd1)](_0x1e6755(0x9d),async()=>{const _0x2e2a75=_0x1e6755;return{'status':'ok','message':_0x2e2a75(0xb2)};}),this[_0x1e6755(0xa8)][_0x1e6755(0x73)](_0x1e6755(0x98),async(_0xf0b9a,_0x517876)=>{const _0x45664f=_0x1e6755;return this[_0x45664f(0xc2)](_0xf0b9a,_0x517876)[_0x45664f(0xcb)](_0x10779b=>{const _0x14a459=_0x45664f;this[_0x14a459(0x74)](_0x10779b,_0xf0b9a,_0x517876);});}),this[_0x1e6755(0xa8)]['post']('/v1/messages/count_tokens',async(_0x537168,_0x48667f)=>{const _0x3c0045=_0x1e6755;return this[_0x3c0045(0xb7)](_0x537168)[_0x3c0045(0xcb)](_0xb5518e=>{const _0x2998c5=_0x3c0045;this[_0x2998c5(0x74)](_0xb5518e,_0x537168,_0x48667f);});});}[a59_0x3a83cc(0x7f)](_0x390cc7){const _0x985cd2=a59_0x3a83cc;if(!_0x390cc7[_0x985cd2(0x8e)]||!Array[_0x985cd2(0xae)](_0x390cc7[_0x985cd2(0x8e)])||_0x390cc7[_0x985cd2(0x8e)]['length']===0x0)throw new SDKError(ErrorCode[_0x985cd2(0xc6)],'Validation\x20failed:\x20messages\x20array\x20is\x20required\x20and\x20must\x20not\x20be\x20empty');if(_0x390cc7[_0x985cd2(0xf0)]&&!Array[_0x985cd2(0xae)](_0x390cc7['tools']))throw new SDKError(ErrorCode[_0x985cd2(0xc6)],_0x985cd2(0x116));}async[a59_0x3a83cc(0xc2)](_0x4fe2cb,_0x52727b){const _0x5c78a4=a59_0x3a83cc,_0x20890a=_0x4fe2cb[_0x5c78a4(0x8a)];this[_0x5c78a4(0x7f)](_0x20890a);const _0x24a3c5=_0x20890a[_0x5c78a4(0x8e)]?.[_0x5c78a4(0x76)]??0x0,_0xbb0ba3=_0x20890a['model']||'unknown';this[_0x5c78a4(0xde)][_0x5c78a4(0xf2)](_0x4fe2cb[_0x5c78a4(0xa1)]+'\x20'+_0x4fe2cb[_0x5c78a4(0x7e)]+_0x5c78a4(0xf8)+_0x24a3c5+',\x20model='+_0xbb0ba3),this[_0x5c78a4(0xde)][_0x5c78a4(0x71)](_0x5c78a4(0x102)+colorizeJSONCompact(_0x4fe2cb['headers']));this[_0x5c78a4(0xde)][_0x5c78a4(0x95)]&&this[_0x5c78a4(0xde)]['trace'](colorizeJSON(_0x20890a,{'color':!![]}));const _0x4965da=_0x20890a[_0x5c78a4(0x109)]?.[_0x5c78a4(0x9e)]||_0x5c78a4(0xad),_0x44a553=extractSessionUUID(_0x4965da),_0x410165=this[_0x5c78a4(0x10b)][_0x5c78a4(0xbf)](_0x44a553,this[_0x5c78a4(0x75)][_0x5c78a4(0xeb)]),_0x1c21c0=[];if(_0x20890a['system']){if(typeof _0x20890a[_0x5c78a4(0xdc)]===_0x5c78a4(0xc3))_0x1c21c0[_0x5c78a4(0xe0)](_0x20890a[_0x5c78a4(0xdc)]);else{if(Array[_0x5c78a4(0xae)](_0x20890a[_0x5c78a4(0xdc)]))for(const _0x2b5cfd of _0x20890a[_0x5c78a4(0xdc)]){_0x2b5cfd[_0x5c78a4(0x11f)]===_0x5c78a4(0xec)&&_0x2b5cfd[_0x5c78a4(0xec)]&&_0x1c21c0[_0x5c78a4(0xe0)](_0x2b5cfd['text']);}}}const _0x527285=_0x20890a[_0x5c78a4(0xf0)]||[],_0x15da35=_0x20890a[_0x5c78a4(0xda)]?.['budget_tokens'],_0x53924d=mapBudgetTokensToReasoningEffort(_0x15da35,this['config'][_0x5c78a4(0xca)]),_0x4a0899=calculateContextSignature(_0x20890a[_0x5c78a4(0xb3)],_0x1c21c0,_0x527285,_0x53924d);let _0x6b46fc=_0x410165['chats'][_0x5c78a4(0xd1)](_0x4a0899);const _0x560d72=!_0x6b46fc;if(!_0x6b46fc){const _0x5d9fd8=await this[_0x5c78a4(0x85)](_0x20890a['model'],_0x53924d);_0x6b46fc={'chatId':'','agentId':_0x5d9fd8,'contextSignature':_0x4a0899,'embeddedSystemPrompts':new Set(),'embeddedToolsByName':new Map(),'messageHistory':[],'lastUsedAt':Date[_0x5c78a4(0x11d)]()},_0x410165['chats'][_0x5c78a4(0xd2)](_0x4a0899,_0x6b46fc);if(_0x410165[_0x5c78a4(0x112)][_0x5c78a4(0x101)]>MAX_CHATS_PER_SESSION){let _0x3b9899=null,_0x15cb47=Date[_0x5c78a4(0x11d)]();for(const [_0x3e4dbf,_0x139baa]of _0x410165[_0x5c78a4(0x112)]){_0x139baa[_0x5c78a4(0x11c)]<_0x15cb47&&(_0x15cb47=_0x139baa[_0x5c78a4(0x11c)],_0x3b9899=_0x3e4dbf);}_0x3b9899&&(_0x410165[_0x5c78a4(0x112)][_0x5c78a4(0x10f)](_0x3b9899),this['logger']['debug'](_0x5c78a4(0x90)+_0x3b9899+_0x5c78a4(0xe9)+MAX_CHATS_PER_SESSION+_0x5c78a4(0xdf)));}}else _0x6b46fc[_0x5c78a4(0x11c)]=Date[_0x5c78a4(0x11d)]();if(!_0x6b46fc[_0x5c78a4(0x108)]){if(_0x6b46fc[_0x5c78a4(0xcd)]&&_0x6b46fc[_0x5c78a4(0xa9)]){this['logger'][_0x5c78a4(0x71)]('Waiting\x20for\x20concurrent\x20chat\x20creation\x20for\x20context:\x20'+_0x4a0899);try{_0x6b46fc[_0x5c78a4(0x108)]=await _0x6b46fc[_0x5c78a4(0xa9)];}catch(_0x4fd696){this[_0x5c78a4(0xde)]['error'](_0x5c78a4(0x121),_0x4fd696);}}else{if(!_0x6b46fc[_0x5c78a4(0xcd)]){_0x6b46fc[_0x5c78a4(0xcd)]=!![],_0x6b46fc['createPromise']=((async()=>{const _0x10382f=_0x5c78a4;try{const _0x251cee=await this[_0x10382f(0x75)]['tdx'][_0x10382f(0x72)][_0x10382f(0xfb)](_0x6b46fc[_0x10382f(0x8b)]);return this[_0x10382f(0xde)]['info']('['+_0x251cee['id']+']\x20Created\x20new\x20chat\x20for\x20model\x20'+_0x20890a[_0x10382f(0xb3)]+_0x10382f(0x70)+_0x4a0899),_0x251cee['id'];}catch(_0x2b8c5d){this[_0x10382f(0xde)][_0x10382f(0x88)]('Failed\x20to\x20create\x20chat,\x20will\x20fall\x20back\x20to\x20lazy\x20creation:',_0x2b8c5d);throw _0x2b8c5d;}finally{_0x6b46fc[_0x10382f(0xcd)]=![],_0x6b46fc[_0x10382f(0xa9)]=undefined;}})());try{_0x6b46fc[_0x5c78a4(0x108)]=await _0x6b46fc[_0x5c78a4(0xa9)];}catch{}}}}const _0x12dd44=_0x1c21c0[_0x5c78a4(0xb1)](_0x142162=>!_0x6b46fc[_0x5c78a4(0x11b)][_0x5c78a4(0x87)](_0x142162)),_0x2334e6=_0x527285[_0x5c78a4(0xb1)](_0x38b123=>!_0x6b46fc['embeddedToolsByName'][_0x5c78a4(0x87)](_0x38b123[_0x5c78a4(0x86)]));this[_0x5c78a4(0xde)][_0x5c78a4(0x71)](_0x5c78a4(0xaf)+_0x44a553+_0x5c78a4(0xff)+_0x20890a[_0x5c78a4(0xb3)]+_0x5c78a4(0xd8)+_0x4a0899+_0x5c78a4(0xa5)+_0x560d72),this[_0x5c78a4(0xde)][_0x5c78a4(0x71)]('Chat\x20ID:\x20'+_0x6b46fc[_0x5c78a4(0x108)]),this['logger'][_0x5c78a4(0x71)](_0x5c78a4(0x89)+_0x1c21c0[_0x5c78a4(0x76)]+',\x20tools:\x20'+_0x527285[_0x5c78a4(0x76)]),this[_0x5c78a4(0xde)][_0x5c78a4(0x71)]('Embedded\x20in\x20chat\x20-\x20system\x20prompts:\x20'+_0x6b46fc[_0x5c78a4(0x11b)][_0x5c78a4(0x101)]+_0x5c78a4(0xea)+_0x6b46fc[_0x5c78a4(0xdb)]['size']),this[_0x5c78a4(0xde)][_0x5c78a4(0x71)](_0x5c78a4(0x81)+_0x12dd44['length']+_0x5c78a4(0xea)+_0x2334e6['length']);_0x12dd44[_0x5c78a4(0x76)]>0x0&&this[_0x5c78a4(0xde)]['debug'](_0x5c78a4(0xb4),_0x12dd44[_0x5c78a4(0x8d)](_0x51ab0c=>_0x51ab0c['substring'](0x0,0x32)+_0x5c78a4(0xc8))[_0x5c78a4(0xe3)](_0x5c78a4(0xf6)));_0x2334e6[_0x5c78a4(0x76)]>0x0&&this[_0x5c78a4(0xde)]['debug'](_0x5c78a4(0xc9),_0x2334e6['map'](_0x5536f8=>_0x5536f8[_0x5c78a4(0x86)])['join'](',\x20'));const _0x347506=calculateConversationDelta(_0x20890a[_0x5c78a4(0x8e)],_0x6b46fc[_0x5c78a4(0xe8)]),_0x5999a5=extractLastUserMessage(_0x347506,_0x20890a[_0x5c78a4(0x8e)]);if(_0x5999a5[_0x5c78a4(0x88)])throw new SDKError(ErrorCode['INVALID_REQUEST'],_0x5999a5['error']);const _0x3b4968=_0x5999a5['text']||'',_0xfffa72=()=>{const _0x3ef519=_0x5c78a4,_0x157fd1=[];_0x1c21c0['length']>0x0&&_0x157fd1[_0x3ef519(0xe0)](_0x1c21c0[_0x3ef519(0xe3)]('\x0a\x0a'));_0x527285[_0x3ef519(0x76)]>0x0&&_0x157fd1[_0x3ef519(0xe0)](generateToolPrompt(_0x527285));if(_0x20890a[_0x3ef519(0x8e)]&&_0x20890a[_0x3ef519(0x8e)][_0x3ef519(0x76)]>0x1){const _0x51235a=formatConversationHistory(_0x20890a[_0x3ef519(0x8e)]);_0x51235a&&_0x157fd1[_0x3ef519(0xe0)](_0x3ef519(0x120)+_0x51235a+_0x3ef519(0x11a));}return _0x157fd1['push'](_0x3b4968),_0x157fd1['filter'](_0x10fa29=>_0x10fa29&&_0x10fa29[_0x3ef519(0xf3)]())[_0x3ef519(0xe3)](_0x3ef519(0xaa));};let _0x629071;if(_0x560d72){this['logger'][_0x5c78a4(0xf2)]('['+_0x6b46fc[_0x5c78a4(0x108)]+']\x20Building\x20a\x20new\x20context\x20for\x20model\x20'+_0x20890a[_0x5c78a4(0xb3)]+',\x20system_prompts='+_0x1c21c0[_0x5c78a4(0x76)]+_0x5c78a4(0xa7)+_0x527285[_0x5c78a4(0x76)]+_0x5c78a4(0xc1)+_0x527285[_0x5c78a4(0x8d)](_0x4a23ae=>_0x4a23ae[_0x5c78a4(0x86)])[_0x5c78a4(0xe3)](',\x20')+']'),_0x629071=_0xfffa72();for(const _0x5ae7a9 of _0x1c21c0){_0x6b46fc[_0x5c78a4(0x11b)]['add'](_0x5ae7a9);}for(const _0x4cb905 of _0x527285){_0x6b46fc[_0x5c78a4(0xdb)][_0x5c78a4(0xd2)](_0x4cb905[_0x5c78a4(0x86)],_0x4cb905);}}else{const _0x5ccfc7=[];_0x12dd44[_0x5c78a4(0x76)]>0x0&&(_0x5ccfc7[_0x5c78a4(0xe0)](_0x12dd44[_0x5c78a4(0xe3)]('\x0a\x0a')),this[_0x5c78a4(0xde)][_0x5c78a4(0x71)]('Embedding',_0x12dd44['length'],'new\x20system\x20prompt(s)'));if(_0x2334e6[_0x5c78a4(0x76)]>0x0)try{_0x5ccfc7['push'](generateToolPrompt(_0x2334e6)),this['logger'][_0x5c78a4(0x71)](_0x5c78a4(0xd6),_0x2334e6[_0x5c78a4(0x76)],_0x5c78a4(0x91));}catch(_0x12a4a7){this[_0x5c78a4(0xde)]['error'](_0x5c78a4(0xbb),_0x12a4a7);}try{const _0x4d906c=extractToolResults(_0x347506);_0x4d906c&&(_0x5ccfc7[_0x5c78a4(0xe0)](_0x4d906c),this[_0x5c78a4(0xde)]['debug'](_0x5c78a4(0xed)));}catch(_0x3e5f5e){this[_0x5c78a4(0xde)][_0x5c78a4(0x88)](_0x5c78a4(0xe7),_0x3e5f5e);}_0x5ccfc7['push'](_0x3b4968);const _0x3e0695=_0x5ccfc7[_0x5c78a4(0xb1)](_0x521001=>_0x521001&&_0x521001[_0x5c78a4(0xf3)]());_0x629071=_0x3e0695['length']>0x0?_0x3e0695[_0x5c78a4(0xe3)](_0x5c78a4(0xaa)):_0x3b4968;for(const _0x4742fa of _0x12dd44){_0x6b46fc[_0x5c78a4(0x11b)]['add'](_0x4742fa);}for(const _0x376f08 of _0x2334e6){_0x6b46fc[_0x5c78a4(0xdb)][_0x5c78a4(0xd2)](_0x376f08[_0x5c78a4(0x86)],_0x376f08);}}(!_0x629071||!_0x629071[_0x5c78a4(0xf3)]())&&(this[_0x5c78a4(0xde)]['warn'](_0x5c78a4(0xf9)),this[_0x5c78a4(0xde)][_0x5c78a4(0xee)]('Context:',{'isNewContext':_0x560d72,'userMessageLength':_0x3b4968?.[_0x5c78a4(0x76)]||0x0,'systemPromptsCount':_0x1c21c0[_0x5c78a4(0x76)],'toolsCount':_0x527285[_0x5c78a4(0x76)],'messagesCount':_0x20890a[_0x5c78a4(0x8e)]?.[_0x5c78a4(0x76)]||0x0,'newMessagesCount':_0x347506[_0x5c78a4(0x76)]}),clearChatState(_0x6b46fc),_0x629071=_0xfffa72(),(!_0x629071||!_0x629071[_0x5c78a4(0xf3)]())&&(this[_0x5c78a4(0xde)]['error']('Failed\x20to\x20reconstruct\x20message\x20-\x20all\x20parts\x20are\x20empty,\x20using\x20fallback'),this[_0x5c78a4(0xde)]['error']('Debug\x20info:',{'systemPromptsCount':_0x1c21c0[_0x5c78a4(0x76)],'toolsCount':_0x527285[_0x5c78a4(0x76)],'messagesCount':_0x20890a[_0x5c78a4(0x8e)]?.['length']||0x0,'userMessageLength':_0x3b4968?.[_0x5c78a4(0x76)]||0x0}),_0x629071='continue'),this['logger']['info'](_0x5c78a4(0xf4),_0x629071[_0x5c78a4(0xa3)](0x0,0x64)+_0x5c78a4(0xc8)));const _0x228a9b=_0x20890a[_0x5c78a4(0x103)]!==![];if(_0x228a9b){_0x52727b[_0x5c78a4(0x9b)][_0x5c78a4(0xfd)](0xc8,{'Content-Type':_0x5c78a4(0x113),'Cache-Control':_0x5c78a4(0xfe),'Connection':_0x5c78a4(0xac),'X-Accel-Buffering':'no'});const _0x401f32=generateMessageId();let _0x27b83d=0x0,_0x8e1a23=0x0;try{if(_0x6b46fc[_0x5c78a4(0x108)]){const _0x178d9a=_0x629071['substring'](0x0,0x32)[_0x5c78a4(0xc7)](/\n/g,'\x20');this['logger'][_0x5c78a4(0xf2)]('['+_0x6b46fc[_0x5c78a4(0x108)]+_0x5c78a4(0xce)+_0x20890a[_0x5c78a4(0xb3)]+_0x5c78a4(0x70)+_0x4a0899+',\x20'+_0x20890a[_0x5c78a4(0x8e)][_0x5c78a4(0x76)]+'\x20messages,\x20'+_0x1c21c0[_0x5c78a4(0x76)]+_0x5c78a4(0xb8)+_0x527285[_0x5c78a4(0x76)]+_0x5c78a4(0x111)+_0x629071[_0x5c78a4(0x76)]+',\x20\x22'+_0x178d9a+'...\x22');}const _0x40a633=this[_0x5c78a4(0x75)][_0x5c78a4(0x7d)][_0x5c78a4(0x72)]['chat'](_0x629071,{'chatId':_0x6b46fc[_0x5c78a4(0x108)]||undefined,'agentId':_0x6b46fc[_0x5c78a4(0x108)]?undefined:_0x6b46fc[_0x5c78a4(0x8b)]});if(!_0x40a633){this[_0x5c78a4(0xde)][_0x5c78a4(0x88)]('[PROXY\x20ERROR]\x20Chat\x20stream\x20is\x20undefined'),this[_0x5c78a4(0xde)][_0x5c78a4(0x88)](_0x5c78a4(0xe5),JSON[_0x5c78a4(0xab)]({'chatId':_0x6b46fc['chatId'],'agentId':_0x6b46fc[_0x5c78a4(0x8b)],'model':_0x20890a[_0x5c78a4(0xb3)],'sessionId':_0x44a553,'contextSignature':_0x4a0899})),_0x6b46fc['chatId']='',this[_0x5c78a4(0xde)][_0x5c78a4(0xee)](_0x5c78a4(0x96));const _0x4210a0=formatAnthropicSSE({'type':'error','error':{'type':_0x5c78a4(0x84),'message':_0x5c78a4(0xf7)},'request_id':_0x401f32});_0x52727b[_0x5c78a4(0x9b)]['write'](_0x4210a0),_0x52727b[_0x5c78a4(0x9b)][_0x5c78a4(0xba)]();return;}_0x6b46fc['messageHistory']=_0x20890a[_0x5c78a4(0x8e)];const _0x2e40ef=_0x6b46fc;async function*_0x3f528a(_0x499b62){const _0x3b874f=_0x5c78a4;for await(const _0x57d6d9 of _0x499b62){if(_0x57d6d9[_0x3b874f(0x11f)]===_0x3b874f(0x109))_0x57d6d9[_0x3b874f(0xcc)][_0x3b874f(0x108)]&&!_0x2e40ef['chatId']&&(_0x2e40ef['chatId']=_0x57d6d9['data']['chatId']);else _0x57d6d9[_0x3b874f(0x11f)]===_0x3b874f(0xc0)&&(yield _0x57d6d9[_0x3b874f(0xcc)]);}}const _0x8364b0=_0x3f528a(_0x40a633);_0x27b83d=estimateInputTokensFromRequest(_0x20890a);const _0x3b4791=transformTDStreamToAnthropic(_0x8364b0,_0x401f32,_0x20890a[_0x5c78a4(0xb3)],this['logger'],_0x3b4968,_0x27b83d),_0x4c3fa6=_0x629071[_0x5c78a4(0x76)];let _0x199ece=0x0;for await(const _0x3f37eb of _0x3b4791){const _0x57a676=formatAnthropicSSE(_0x3f37eb);_0x199ece++,this[_0x5c78a4(0xde)][_0x5c78a4(0x71)](colorizeJSONCompact(_0x3f37eb,{'color':!![]})),_0x3f37eb[_0x5c78a4(0x11f)]===_0x5c78a4(0x88)&&_0x3f37eb[_0x5c78a4(0x88)]['type']===_0x5c78a4(0xb0)&&(clearChatState(_0x6b46fc),this[_0x5c78a4(0xde)][_0x5c78a4(0xee)](_0x5c78a4(0xbd)+_0x3f37eb[_0x5c78a4(0x88)][_0x5c78a4(0x9f)]+_0x5c78a4(0xa4)+_0x4c3fa6+_0x5c78a4(0x99)+_0x44a553+_0x5c78a4(0x10d)+_0x4a0899)),_0x3f37eb['type']===_0x5c78a4(0x80)&&_0x3f37eb[_0x5c78a4(0x11e)]?.[_0x5c78a4(0xdd)]&&(_0x8e1a23=_0x3f37eb[_0x5c78a4(0x11e)][_0x5c78a4(0xdd)]),_0x52727b[_0x5c78a4(0x9b)]['write'](_0x57a676);}this['logger']['debug'](_0x5c78a4(0xfc)+_0x199ece+_0x5c78a4(0xb5)),appendUsageEntry(_0x44a553,{'timestamp':new Date()[_0x5c78a4(0x115)](),'model':_0x20890a[_0x5c78a4(0xb3)],'inputTokens':_0x27b83d,'outputTokens':_0x8e1a23,'contextSignature':_0x4a0899,'profile':this[_0x5c78a4(0x75)][_0x5c78a4(0x7d)]?.[_0x5c78a4(0xd7)]?.['profile'],'chatId':_0x6b46fc[_0x5c78a4(0x108)]||undefined})[_0x5c78a4(0xcb)](_0x12f2bd=>{const _0x3dbed3=_0x5c78a4;this['logger'][_0x3dbed3(0xee)](_0x3dbed3(0x7c)+_0x12f2bd);}),_0x52727b[_0x5c78a4(0x9b)][_0x5c78a4(0xba)]();}catch(_0x33d5eb){(_0x27b83d>0x0||_0x8e1a23>0x0)&&appendUsageEntry(_0x44a553,{'timestamp':new Date()[_0x5c78a4(0x115)](),'model':_0x20890a[_0x5c78a4(0xb3)],'inputTokens':_0x27b83d,'outputTokens':_0x8e1a23,'contextSignature':_0x4a0899,'profile':this[_0x5c78a4(0x75)]['tdx']?.['context']?.[_0x5c78a4(0x105)],'chatId':_0x6b46fc[_0x5c78a4(0x108)]||undefined})['catch'](_0x20f8e0=>{const _0xb8f19c=_0x5c78a4;this[_0xb8f19c(0xde)]['warn']('Failed\x20to\x20log\x20usage\x20entry\x20on\x20error:\x20'+_0x20f8e0);});const _0x5a9fe0=_0x33d5eb instanceof Error?_0x33d5eb[_0x5c78a4(0x9f)]:_0x5c78a4(0x83);this[_0x5c78a4(0xde)][_0x5c78a4(0x88)]('[PROXY\x20ERROR]\x20Streaming\x20error:',_0x33d5eb),this[_0x5c78a4(0xde)]['error'](_0x5c78a4(0xe5),JSON[_0x5c78a4(0xab)]({'chatId':_0x6b46fc[_0x5c78a4(0x108)],'agentId':_0x6b46fc[_0x5c78a4(0x8b)],'model':_0x20890a['model'],'sessionId':_0x44a553,'contextSignature':_0x4a0899})),_0x6b46fc[_0x5c78a4(0x108)]='',this[_0x5c78a4(0xde)][_0x5c78a4(0xee)](_0x5c78a4(0x92));const _0x2d64b3=formatAnthropicSSE({'type':_0x5c78a4(0x88),'error':{'type':'api_error','message':_0x5a9fe0},'request_id':_0x401f32});_0x52727b['raw'][_0x5c78a4(0x78)](_0x2d64b3),_0x52727b[_0x5c78a4(0x9b)][_0x5c78a4(0xba)]();}}else this['logger'][_0x5c78a4(0x88)](_0x5c78a4(0xef)),_0x52727b[_0x5c78a4(0x10a)](0x1f5)[_0x5c78a4(0xf1)]({'type':_0x5c78a4(0x88),'error':{'type':_0x5c78a4(0xd9),'message':_0x5c78a4(0x100)}});}async[a59_0x3a83cc(0xb7)](_0x4f1308){const _0x4a5123=a59_0x3a83cc,_0x4a1bf6=_0x4f1308['body'],_0x9ab88a=estimateInputTokensFromRequest(_0x4a1bf6);return this['logger'][_0x4a5123(0xf2)](_0x4f1308[_0x4a5123(0xa1)]+'\x20'+_0x4f1308[_0x4a5123(0x7e)]+_0x4a5123(0x10c)+_0x9ab88a),{'input_tokens':_0x9ab88a};}async['start'](){const _0x162016=a59_0x3a83cc;try{await this[_0x162016(0xa8)][_0x162016(0x8c)]({'port':this[_0x162016(0x75)][_0x162016(0xbe)],'host':_0x162016(0xd3)}),this['logger'][_0x162016(0xf2)](_0x162016(0xa0)+this['config']['port']),this['cleanupInterval']=setInterval(()=>{const _0x506216=_0x162016;this[_0x506216(0x79)]();},CLEANUP_INTERVAL_MS),this['logger'][_0x162016(0x71)](_0x162016(0x106)+CLEANUP_INTERVAL_MS/0x3e8+'s,\x20expires\x20after\x20'+CACHE_EXPIRATION_MS/0x3e8+'s)');}catch(_0x4c5777){const _0x49f3f5=_0x4c5777 instanceof Error?_0x4c5777[_0x162016(0x9f)]:_0x162016(0x83);throw new Error(_0x162016(0x97)+_0x49f3f5);}}async['stop'](){const _0x1e6d4a=a59_0x3a83cc;this[_0x1e6d4a(0xcf)]&&(clearInterval(this[_0x1e6d4a(0xcf)]),this['cleanupInterval']=undefined),await this['server'][_0x1e6d4a(0x10e)]();}[a59_0x3a83cc(0x7b)](){const _0x4a4c71=a59_0x3a83cc,_0x58b811=this[_0x4a4c71(0xa8)][_0x4a4c71(0xa8)][_0x4a4c71(0x7a)]();if(typeof _0x58b811==='string')return _0x58b811;if(_0x58b811)return _0x4a4c71(0xbc)+_0x58b811[_0x4a4c71(0x7a)]+':'+_0x58b811[_0x4a4c71(0xbe)];return _0x4a4c71(0x104)+this[_0x4a4c71(0x75)][_0x4a4c71(0xbe)];}}
|
|
1
|
+
const a59_0x5b0023=a59_0x5680;(function(_0x173814,_0x33c7e1){const _0x52cc90=a59_0x5680,_0x3f08fc=_0x173814();while(!![]){try{const _0x5c6934=parseInt(_0x52cc90(0x24a))/0x1*(-parseInt(_0x52cc90(0x20d))/0x2)+-parseInt(_0x52cc90(0x29d))/0x3*(parseInt(_0x52cc90(0x23f))/0x4)+parseInt(_0x52cc90(0x231))/0x5+-parseInt(_0x52cc90(0x293))/0x6+-parseInt(_0x52cc90(0x232))/0x7+-parseInt(_0x52cc90(0x29a))/0x8+parseInt(_0x52cc90(0x288))/0x9;if(_0x5c6934===_0x33c7e1)break;else _0x3f08fc['push'](_0x3f08fc['shift']());}catch(_0x3f9fb3){_0x3f08fc['push'](_0x3f08fc['shift']());}}}(a59_0x3bfb,0x1de5e));import a59_0x26f102 from'fastify';import a59_0x222964 from'@fastify/cors';import{ErrorCode,SDKError}from'../sdk/index.js';import{transformTDStreamToAnthropic,formatAnthropicSSE,generateMessageId,generateToolPrompt,extractToolResults,estimateInputTokensFromRequest}from'./anthropic-adapter.js';import{colorizeJSON,colorizeJSONCompact}from'../utils/colors.js';import{extractModelAlias,resolveModelAlias}from'../sdk/llm/model-aliases.js';import{SessionCache}from'./session-cache.js';import{appendUsageEntry}from'./claude-usage-tracker.js';import{calculateContextSignature}from'./context-signature.js';function a59_0x3bfb(){const _0x29b164=['thinking','\x20->\x20','get','\x20|\x20','New\x20-\x20system\x20prompts:\x20','\x20tools,\x20message_size=','join','chatId','body','data','x-api-key','config','\x20Input\x20size:\x20','logger','agentId','close','header:\x20','Failed\x20to\x20reconstruct\x20message\x20-\x20all\x20parts\x20are\x20empty,\x20using\x20fallback','[PROXY\x20ERROR]\x20Chat\x20stream\x20is\x20undefined','Validation\x20failed:\x20messages\x20array\x20is\x20required\x20and\x20must\x20not\x20be\x20empty','clear','Added\x20tool\x20names:','writeHead','start',',\x20system_prompts=','toISOString','OPTIONS','post','Model\x20normalization:\x20','error','agentCache','\x0a</conversation_history>','createPromise','send','server','304960RPGBkC','219541FgdZbu','listen',':\x20estimated\x20input_tokens=','Waiting\x20for\x20concurrent\x20chat\x20creation\x20for\x20context:\x20','embeddedToolsByName',']\x20Created\x20new\x20chat\x20for\x20model\x20','setupMiddleware','handleMessages','dev-us01','\x20chars.\x20Cleared\x20chat\x20state\x20for\x20session\x20','debug','Authorization','size','512CqMJix','substring','Evicted\x20oldest\x20chat\x20(signature:\x20','usage','Failed\x20to\x20generate\x20tool\x20prompt:',']\x20model:\x20','http://','url','raw','catch','system','111229eVFCab','request_too_large','Added\x20system\x20prompt\x20previews:','Failed\x20to\x20log\x20usage\x20entry:\x20','isArray','\x0a---\x0a\x0a','tdx','Reset\x20chat\x20ID\x20to\x20recover\x20on\x20next\x20request','write','not_supported_error','output_tokens','map','Content-Type','has','type','Context:','\x20system\x20prompts,\x20','Embedding',',\x20context=','stop','GET','Reset\x20chat\x20state\x20to\x20recover\x20on\x20next\x20request','Chat\x20ID:\x20','metadata','code','cleanupExpiredChats','/v1/messages','budget_tokens','headers','setErrorHandler','tools','Including\x20tool\x20results','anthropic-version','INVALID_REQUEST','length','originalMessage','setupRoutes','method','end','http://localhost:','profile','handleRouteError','Failed\x20to\x20initialize\x20chat\x20stream.\x20Please\x20try\x20again.','now','info',',\x20context:\x20','0.0.0.0','stream','...\x22','getAgentForModel','\x20limit','cleanupInterval','model','creating','string','Concurrent\x20chat\x20creation\x20failed,\x20will\x20fall\x20back\x20to\x20lazy\x20creation:','chats','add','default','unknown','[session:\x20',',\x20is\x20new\x20context:\x20','5430285eExwvj','message','embeddedSystemPrompts','trim','Failed\x20to\x20start\x20proxy\x20server:\x20','push','name','lastUsedAt','event','register','trace','484908AOJlNW','chat',',\x20\x22','text','Started\x20cache\x20cleanup\x20interval\x20(runs\x20every\x20','user_id','projectId','721064zcKbvJ','llm','s,\x20expires\x20after\x20','5352PgBUlL','port','System\x20prompts:\x20','Failed\x20to\x20log\x20usage\x20entry\x20on\x20error:\x20','[PROXY\x20ERROR]\x20Unhandled\x20error\x20in\x20','\x0a\x0a<conversation_history>\x0a','/health','startChat','POST','Final\x20message\x20is\x20empty\x20after\x20construction\x20-\x20starting\x20fresh\x20conversation','Stream\x20complete.\x20Sent\x20','[CONTEXT\x20LENGTH\x20ERROR]\x20','stringify',',\x20tool_names=[','warn','messages','new\x20system\x20prompt(s)','context','\x20messages,\x20','validateMessageRequest','sessionCache',',\x20context\x20signature:\x20',']\x20Building\x20a\x20new\x20context\x20for\x20model\x20','Non-streaming\x20responses\x20are\x20not\x20yet\x20supported',',\x20tools:\x20','filter','Final\x20message\x20reconstructed\x20after\x20context\x20reset:','messageHistory','Agent\x20cached:\x20','address','\x20(reasoning:\x20','...','Creating/looking\x20up\x20agent\x20for:\x20','handleCountTokens','set','message_delta','keep-alive','2CrWCkc'];a59_0x3bfb=function(){return _0x29b164;};return a59_0x3bfb();}import{formatConversationHistory,calculateConversationDelta,extractLastUserMessage}from'./conversation-utils.js';function a59_0x5680(_0x5cff77,_0x13d46d){_0x5cff77=_0x5cff77-0x1ea;const _0x3bfb2d=a59_0x3bfb();let _0x5680f4=_0x3bfb2d[_0x5cff77];return _0x5680f4;}function extractSessionUUID(_0x14312b){const _0x30df6c=_0x14312b['match'](/_session_([a-f0-9-]+)$/i);if(_0x30df6c)return _0x30df6c[0x1];return _0x14312b;}function clearChatState(_0x12fa7a){const _0x23d543=a59_0x5680;_0x12fa7a['chatId']='',_0x12fa7a[_0x23d543(0x28a)][_0x23d543(0x222)](),_0x12fa7a[_0x23d543(0x236)]['clear']();}function mapBudgetTokensToReasoningEffort(_0x2ff365,_0x2c294f){const _0x58e86d=a59_0x5680;if(_0x2c294f!==_0x58e86d(0x23a))return 0x0;if(!_0x2ff365||_0x2ff365===0x0)return 0x0;if(_0x2ff365<=0x400)return 0x1;if(_0x2ff365<=0x800)return 0x2;if(_0x2ff365<=0x1000)return 0x3;return 0x4;}const MAX_CHATS_PER_SESSION=0xa,CACHE_EXPIRATION_MS=0xa*0x3c*0x3e8,CLEANUP_INTERVAL_MS=0x3c*0x3e8;export class ProxyServer{[a59_0x5b0023(0x230)];[a59_0x5b0023(0x1fc)];['agentCache'];[a59_0x5b0023(0x219)];[a59_0x5b0023(0x27d)];['logger'];constructor(_0x1121e6){const _0x3aa08e=a59_0x5b0023;this[_0x3aa08e(0x21b)]=_0x1121e6[_0x3aa08e(0x21b)],this['config']=_0x1121e6,this[_0x3aa08e(0x1fc)]=new SessionCache({'maxChatsPerSession':MAX_CHATS_PER_SESSION,'cacheExpirationMs':CACHE_EXPIRATION_MS}),this[_0x3aa08e(0x22c)]=new Map(),this[_0x3aa08e(0x230)]=a59_0x26f102({'logger':![],'bodyLimit':0x40*0x400*0x400}),this[_0x3aa08e(0x238)](),this[_0x3aa08e(0x26e)]();}async[a59_0x5b0023(0x27b)](_0x43adcc,_0x309b92=0x0){const _0x2925ff=a59_0x5b0023,_0x4f9abc=extractModelAlias(_0x43adcc),_0x552897=resolveModelAlias(_0x4f9abc),_0x2a63aa=_0x552897+'_'+_0x309b92;let _0x4d4b1b=this[_0x2925ff(0x22c)][_0x2925ff(0x210)](_0x2a63aa);if(!_0x4d4b1b){this[_0x2925ff(0x21b)][_0x2925ff(0x23c)](_0x2925ff(0x22a)+_0x43adcc+_0x2925ff(0x20f)+_0x4f9abc+'\x20->\x20'+_0x552897),this[_0x2925ff(0x21b)]['debug'](_0x2925ff(0x208)+_0x552897+_0x2925ff(0x206)+_0x309b92+')');const _0x1e75a1=await this[_0x2925ff(0x219)][_0x2925ff(0x250)][_0x2925ff(0x29b)]['getOrCreateDefaultAgent'](_0x552897,_0x309b92);_0x4d4b1b=_0x1e75a1['id'],this[_0x2925ff(0x22c)][_0x2925ff(0x20a)](_0x2a63aa,_0x4d4b1b),this[_0x2925ff(0x21b)][_0x2925ff(0x23c)](_0x2925ff(0x204)+_0x2a63aa+'\x20->\x20'+_0x4d4b1b+'\x20('+_0x1e75a1['attributes'][_0x2925ff(0x28e)]+')');}return _0x4d4b1b;}[a59_0x5b0023(0x263)](){const _0x52bfad=a59_0x5b0023;this[_0x52bfad(0x1fc)][_0x52bfad(0x263)]();}[a59_0x5b0023(0x238)](){const _0x20444d=a59_0x5b0023;this[_0x20444d(0x230)][_0x20444d(0x291)](a59_0x222964,{'origin':!![],'methods':[_0x20444d(0x25e),_0x20444d(0x1f0),_0x20444d(0x228)],'allowedHeaders':[_0x20444d(0x256),_0x20444d(0x23d),_0x20444d(0x26a),_0x20444d(0x218)]}),this[_0x20444d(0x230)][_0x20444d(0x267)]((_0x5db60f,_0x31c96e,_0xbc67c5)=>{this['handleRouteError'](_0x5db60f,_0x31c96e,_0xbc67c5);});}[a59_0x5b0023(0x273)](_0xb10ebb,_0x4d245d,_0x1484cf){const _0x2c95c1=a59_0x5b0023;if(_0xb10ebb instanceof SDKError){const _0x56e700=_0xb10ebb['isUserError']()?0x190:0x1f4;_0x1484cf[_0x2c95c1(0x262)](_0x56e700)[_0x2c95c1(0x22f)]({'type':_0x2c95c1(0x22b),'error':{'type':_0xb10ebb[_0x2c95c1(0x262)],'message':_0xb10ebb[_0x2c95c1(0x26d)],'helpText':_0xb10ebb['helpText']}});}else{const _0x521220=_0xb10ebb instanceof Error?_0xb10ebb['message']:'Unknown\x20error';this['logger'][_0x2c95c1(0x22b)](_0x2c95c1(0x1ec)+_0x4d245d['method']+'\x20'+_0x4d245d[_0x2c95c1(0x246)]+':',_0xb10ebb),_0x1484cf[_0x2c95c1(0x262)](0x1f4)['send']({'type':'error','error':{'type':'api_error','message':_0x521220}});}}[a59_0x5b0023(0x26e)](){const _0x511658=a59_0x5b0023;this[_0x511658(0x230)][_0x511658(0x210)](_0x511658(0x1ee),async()=>{return{'status':'ok','message':'TD\x20LLM\x20Proxy\x20Server'};}),this[_0x511658(0x230)][_0x511658(0x229)](_0x511658(0x264),async(_0x5d3990,_0x220234)=>{const _0x24858b=_0x511658;return this[_0x24858b(0x239)](_0x5d3990,_0x220234)[_0x24858b(0x248)](_0x1a97b9=>{const _0x48df50=_0x24858b;this[_0x48df50(0x273)](_0x1a97b9,_0x5d3990,_0x220234);});}),this[_0x511658(0x230)][_0x511658(0x229)]('/v1/messages/count_tokens',async(_0x27c395,_0x3595fd)=>{const _0x5ac438=_0x511658;return this[_0x5ac438(0x209)](_0x27c395)[_0x5ac438(0x248)](_0x17e0f0=>{const _0x9e6011=_0x5ac438;this[_0x9e6011(0x273)](_0x17e0f0,_0x27c395,_0x3595fd);});});}[a59_0x5b0023(0x1fb)](_0x130dc7){const _0x49f15b=a59_0x5b0023;if(!_0x130dc7['messages']||!Array[_0x49f15b(0x24e)](_0x130dc7[_0x49f15b(0x1f7)])||_0x130dc7['messages'][_0x49f15b(0x26c)]===0x0)throw new SDKError(ErrorCode[_0x49f15b(0x26b)],_0x49f15b(0x221));if(_0x130dc7[_0x49f15b(0x268)]&&!Array[_0x49f15b(0x24e)](_0x130dc7[_0x49f15b(0x268)]))throw new SDKError(ErrorCode['INVALID_REQUEST'],'Validation\x20failed:\x20tools\x20must\x20be\x20an\x20array\x20if\x20provided');}async[a59_0x5b0023(0x239)](_0x29b22f,_0x59290d){const _0x2f6f9d=a59_0x5b0023,_0x5af2f0=_0x29b22f[_0x2f6f9d(0x216)];this[_0x2f6f9d(0x1fb)](_0x5af2f0);const _0x3f1bc3=_0x5af2f0[_0x2f6f9d(0x1f7)]?.['length']??0x0,_0x146046=_0x5af2f0[_0x2f6f9d(0x27e)]||_0x2f6f9d(0x285);this['logger']['info'](_0x29b22f[_0x2f6f9d(0x26f)]+'\x20'+_0x29b22f['url']+':\x20messages='+_0x3f1bc3+',\x20model='+_0x146046),this[_0x2f6f9d(0x21b)][_0x2f6f9d(0x23c)](_0x2f6f9d(0x21e)+colorizeJSONCompact(_0x29b22f[_0x2f6f9d(0x266)]));this[_0x2f6f9d(0x21b)][_0x2f6f9d(0x292)]&&this[_0x2f6f9d(0x21b)]['trace'](colorizeJSON(_0x5af2f0,{'color':!![]}));const _0x4b1d7a=_0x5af2f0[_0x2f6f9d(0x261)]?.[_0x2f6f9d(0x298)]||_0x2f6f9d(0x284),_0x67bb7d=extractSessionUUID(_0x4b1d7a),_0x24ddbb=this[_0x2f6f9d(0x1fc)]['getOrCreateSession'](_0x67bb7d,this[_0x2f6f9d(0x219)][_0x2f6f9d(0x299)]),_0x55dc82=[];if(_0x5af2f0[_0x2f6f9d(0x249)]){if(typeof _0x5af2f0[_0x2f6f9d(0x249)]===_0x2f6f9d(0x280))_0x55dc82[_0x2f6f9d(0x28d)](_0x5af2f0[_0x2f6f9d(0x249)]);else{if(Array['isArray'](_0x5af2f0[_0x2f6f9d(0x249)]))for(const _0x4a85f0 of _0x5af2f0['system']){_0x4a85f0['type']==='text'&&_0x4a85f0[_0x2f6f9d(0x296)]&&_0x55dc82[_0x2f6f9d(0x28d)](_0x4a85f0[_0x2f6f9d(0x296)]);}}}const _0x4c63a1=_0x5af2f0[_0x2f6f9d(0x268)]||[],_0x13551d=_0x5af2f0[_0x2f6f9d(0x20e)]?.[_0x2f6f9d(0x265)],_0x825a8=mapBudgetTokensToReasoningEffort(_0x13551d,this[_0x2f6f9d(0x219)]['site']),_0x29a2ae=calculateContextSignature(_0x5af2f0[_0x2f6f9d(0x27e)],_0x55dc82,_0x4c63a1,_0x825a8);let _0x59d0e2=_0x24ddbb[_0x2f6f9d(0x282)][_0x2f6f9d(0x210)](_0x29a2ae);const _0x7ab732=!_0x59d0e2;if(!_0x59d0e2){const _0x21e622=await this[_0x2f6f9d(0x27b)](_0x5af2f0['model'],_0x825a8);_0x59d0e2={'chatId':'','agentId':_0x21e622,'contextSignature':_0x29a2ae,'embeddedSystemPrompts':new Set(),'embeddedToolsByName':new Map(),'messageHistory':[],'lastUsedAt':Date[_0x2f6f9d(0x275)]()},_0x24ddbb[_0x2f6f9d(0x282)][_0x2f6f9d(0x20a)](_0x29a2ae,_0x59d0e2);if(_0x24ddbb['chats']['size']>MAX_CHATS_PER_SESSION){let _0x4ebd01=null,_0x59fb33=Date[_0x2f6f9d(0x275)]();for(const [_0x32c62a,_0x576d82]of _0x24ddbb[_0x2f6f9d(0x282)]){_0x576d82[_0x2f6f9d(0x28f)]<_0x59fb33&&(_0x59fb33=_0x576d82[_0x2f6f9d(0x28f)],_0x4ebd01=_0x32c62a);}_0x4ebd01&&(_0x24ddbb[_0x2f6f9d(0x282)]['delete'](_0x4ebd01),this['logger']['debug'](_0x2f6f9d(0x241)+_0x4ebd01+')\x20to\x20stay\x20under\x20'+MAX_CHATS_PER_SESSION+_0x2f6f9d(0x27c)));}}else _0x59d0e2[_0x2f6f9d(0x28f)]=Date[_0x2f6f9d(0x275)]();if(!_0x59d0e2[_0x2f6f9d(0x215)]){if(_0x59d0e2['creating']&&_0x59d0e2['createPromise']){this[_0x2f6f9d(0x21b)][_0x2f6f9d(0x23c)](_0x2f6f9d(0x235)+_0x29a2ae);try{_0x59d0e2['chatId']=await _0x59d0e2[_0x2f6f9d(0x22e)];}catch(_0x548e35){this[_0x2f6f9d(0x21b)][_0x2f6f9d(0x22b)](_0x2f6f9d(0x281),_0x548e35);}}else{if(!_0x59d0e2[_0x2f6f9d(0x27f)]){_0x59d0e2[_0x2f6f9d(0x27f)]=!![],_0x59d0e2[_0x2f6f9d(0x22e)]=((async()=>{const _0x59ae8e=_0x2f6f9d;try{const _0x465726=await this[_0x59ae8e(0x219)]['tdx']['llm'][_0x59ae8e(0x1ef)](_0x59d0e2[_0x59ae8e(0x21c)]);return this[_0x59ae8e(0x21b)][_0x59ae8e(0x276)]('['+_0x465726['id']+_0x59ae8e(0x237)+_0x5af2f0[_0x59ae8e(0x27e)]+',\x20context='+_0x29a2ae),_0x465726['id'];}catch(_0x5e67f7){this['logger']['error']('Failed\x20to\x20create\x20chat,\x20will\x20fall\x20back\x20to\x20lazy\x20creation:',_0x5e67f7);throw _0x5e67f7;}finally{_0x59d0e2[_0x59ae8e(0x27f)]=![],_0x59d0e2[_0x59ae8e(0x22e)]=undefined;}})());try{_0x59d0e2['chatId']=await _0x59d0e2[_0x2f6f9d(0x22e)];}catch{}}}}const _0x42f579=_0x55dc82[_0x2f6f9d(0x201)](_0x1f5b01=>!_0x59d0e2[_0x2f6f9d(0x28a)][_0x2f6f9d(0x257)](_0x1f5b01)),_0x54e41b=_0x4c63a1[_0x2f6f9d(0x201)](_0x3a8bb5=>!_0x59d0e2[_0x2f6f9d(0x236)][_0x2f6f9d(0x257)](_0x3a8bb5['name']));this[_0x2f6f9d(0x21b)][_0x2f6f9d(0x23c)](_0x2f6f9d(0x286)+_0x67bb7d+_0x2f6f9d(0x244)+_0x5af2f0[_0x2f6f9d(0x27e)]+_0x2f6f9d(0x1fd)+_0x29a2ae+_0x2f6f9d(0x287)+_0x7ab732),this[_0x2f6f9d(0x21b)]['debug'](_0x2f6f9d(0x260)+_0x59d0e2[_0x2f6f9d(0x215)]),this[_0x2f6f9d(0x21b)][_0x2f6f9d(0x23c)](_0x2f6f9d(0x1ea)+_0x55dc82['length']+_0x2f6f9d(0x200)+_0x4c63a1[_0x2f6f9d(0x26c)]),this[_0x2f6f9d(0x21b)][_0x2f6f9d(0x23c)]('Embedded\x20in\x20chat\x20-\x20system\x20prompts:\x20'+_0x59d0e2[_0x2f6f9d(0x28a)][_0x2f6f9d(0x23e)]+_0x2f6f9d(0x200)+_0x59d0e2[_0x2f6f9d(0x236)]['size']),this[_0x2f6f9d(0x21b)][_0x2f6f9d(0x23c)](_0x2f6f9d(0x212)+_0x42f579[_0x2f6f9d(0x26c)]+_0x2f6f9d(0x200)+_0x54e41b[_0x2f6f9d(0x26c)]);_0x42f579[_0x2f6f9d(0x26c)]>0x0&&this[_0x2f6f9d(0x21b)][_0x2f6f9d(0x23c)](_0x2f6f9d(0x24c),_0x42f579[_0x2f6f9d(0x255)](_0x58c037=>_0x58c037[_0x2f6f9d(0x240)](0x0,0x32)+_0x2f6f9d(0x207))[_0x2f6f9d(0x214)](_0x2f6f9d(0x211)));_0x54e41b[_0x2f6f9d(0x26c)]>0x0&&this[_0x2f6f9d(0x21b)][_0x2f6f9d(0x23c)](_0x2f6f9d(0x223),_0x54e41b[_0x2f6f9d(0x255)](_0x4e7e76=>_0x4e7e76[_0x2f6f9d(0x28e)])[_0x2f6f9d(0x214)](',\x20'));const _0x2012be=calculateConversationDelta(_0x5af2f0['messages'],_0x59d0e2[_0x2f6f9d(0x203)]),_0x10286c=extractLastUserMessage(_0x2012be,_0x5af2f0[_0x2f6f9d(0x1f7)]);if(_0x10286c['error'])throw new SDKError(ErrorCode[_0x2f6f9d(0x26b)],_0x10286c['error']);const _0x395e5d=_0x10286c['text']||'',_0x5169f3=()=>{const _0x4581c8=_0x2f6f9d,_0x4e5bb9=[];_0x55dc82[_0x4581c8(0x26c)]>0x0&&_0x4e5bb9[_0x4581c8(0x28d)](_0x55dc82['join']('\x0a\x0a'));_0x4c63a1[_0x4581c8(0x26c)]>0x0&&_0x4e5bb9[_0x4581c8(0x28d)](generateToolPrompt(_0x4c63a1));if(_0x5af2f0[_0x4581c8(0x1f7)]&&_0x5af2f0[_0x4581c8(0x1f7)][_0x4581c8(0x26c)]>0x1){const _0x30226d=formatConversationHistory(_0x5af2f0[_0x4581c8(0x1f7)]);_0x30226d&&_0x4e5bb9[_0x4581c8(0x28d)](_0x4581c8(0x1ed)+_0x30226d+_0x4581c8(0x22d));}return _0x4e5bb9[_0x4581c8(0x28d)](_0x395e5d),_0x4e5bb9[_0x4581c8(0x201)](_0xe81ec=>_0xe81ec&&_0xe81ec['trim']())[_0x4581c8(0x214)](_0x4581c8(0x24f));};let _0x5209de;if(_0x7ab732){this[_0x2f6f9d(0x21b)][_0x2f6f9d(0x276)]('['+_0x59d0e2['chatId']+_0x2f6f9d(0x1fe)+_0x5af2f0['model']+_0x2f6f9d(0x226)+_0x55dc82[_0x2f6f9d(0x26c)]+',\x20tools='+_0x4c63a1['length']+_0x2f6f9d(0x1f5)+_0x4c63a1[_0x2f6f9d(0x255)](_0x31e8e4=>_0x31e8e4[_0x2f6f9d(0x28e)])[_0x2f6f9d(0x214)](',\x20')+']'),_0x5209de=_0x5169f3();for(const _0x5ac114 of _0x55dc82){_0x59d0e2['embeddedSystemPrompts']['add'](_0x5ac114);}for(const _0x10c834 of _0x4c63a1){_0x59d0e2['embeddedToolsByName'][_0x2f6f9d(0x20a)](_0x10c834['name'],_0x10c834);}}else{const _0x45d8a7=[];_0x42f579['length']>0x0&&(_0x45d8a7[_0x2f6f9d(0x28d)](_0x42f579[_0x2f6f9d(0x214)]('\x0a\x0a')),this[_0x2f6f9d(0x21b)][_0x2f6f9d(0x23c)]('Embedding',_0x42f579['length'],_0x2f6f9d(0x1f8)));if(_0x54e41b['length']>0x0)try{_0x45d8a7[_0x2f6f9d(0x28d)](generateToolPrompt(_0x54e41b)),this[_0x2f6f9d(0x21b)][_0x2f6f9d(0x23c)](_0x2f6f9d(0x25b),_0x54e41b[_0x2f6f9d(0x26c)],'new\x20tool(s)');}catch(_0x40e7fe){this[_0x2f6f9d(0x21b)][_0x2f6f9d(0x22b)](_0x2f6f9d(0x243),_0x40e7fe);}try{const _0x37874a=extractToolResults(_0x2012be);_0x37874a&&(_0x45d8a7[_0x2f6f9d(0x28d)](_0x37874a),this[_0x2f6f9d(0x21b)][_0x2f6f9d(0x23c)](_0x2f6f9d(0x269)));}catch(_0x133850){this[_0x2f6f9d(0x21b)][_0x2f6f9d(0x22b)]('Failed\x20to\x20extract\x20tool\x20results:',_0x133850);}_0x45d8a7[_0x2f6f9d(0x28d)](_0x395e5d);const _0x23dd17=_0x45d8a7['filter'](_0x2b6f61=>_0x2b6f61&&_0x2b6f61[_0x2f6f9d(0x28b)]());_0x5209de=_0x23dd17['length']>0x0?_0x23dd17[_0x2f6f9d(0x214)](_0x2f6f9d(0x24f)):_0x395e5d;for(const _0x3c402b of _0x42f579){_0x59d0e2[_0x2f6f9d(0x28a)][_0x2f6f9d(0x283)](_0x3c402b);}for(const _0x5adef4 of _0x54e41b){_0x59d0e2[_0x2f6f9d(0x236)][_0x2f6f9d(0x20a)](_0x5adef4['name'],_0x5adef4);}}(!_0x5209de||!_0x5209de[_0x2f6f9d(0x28b)]())&&(this[_0x2f6f9d(0x21b)][_0x2f6f9d(0x1f6)](_0x2f6f9d(0x1f1)),this[_0x2f6f9d(0x21b)][_0x2f6f9d(0x1f6)](_0x2f6f9d(0x259),{'isNewContext':_0x7ab732,'userMessageLength':_0x395e5d?.[_0x2f6f9d(0x26c)]||0x0,'systemPromptsCount':_0x55dc82[_0x2f6f9d(0x26c)],'toolsCount':_0x4c63a1['length'],'messagesCount':_0x5af2f0['messages']?.[_0x2f6f9d(0x26c)]||0x0,'newMessagesCount':_0x2012be['length']}),clearChatState(_0x59d0e2),_0x5209de=_0x5169f3(),(!_0x5209de||!_0x5209de[_0x2f6f9d(0x28b)]())&&(this[_0x2f6f9d(0x21b)][_0x2f6f9d(0x22b)](_0x2f6f9d(0x21f)),this['logger'][_0x2f6f9d(0x22b)]('Debug\x20info:',{'systemPromptsCount':_0x55dc82[_0x2f6f9d(0x26c)],'toolsCount':_0x4c63a1[_0x2f6f9d(0x26c)],'messagesCount':_0x5af2f0[_0x2f6f9d(0x1f7)]?.['length']||0x0,'userMessageLength':_0x395e5d?.[_0x2f6f9d(0x26c)]||0x0}),_0x5209de='continue'),this['logger'][_0x2f6f9d(0x276)](_0x2f6f9d(0x202),_0x5209de[_0x2f6f9d(0x240)](0x0,0x64)+'...'));const _0x2b7d70=_0x5af2f0[_0x2f6f9d(0x279)]!==![];if(_0x2b7d70){_0x59290d['raw'][_0x2f6f9d(0x224)](0xc8,{'Content-Type':'text/event-stream','Cache-Control':'no-cache','Connection':_0x2f6f9d(0x20c),'X-Accel-Buffering':'no'});const _0x3ed81a=generateMessageId();let _0x31be57=0x0,_0x5b889a=0x0;try{if(_0x59d0e2[_0x2f6f9d(0x215)]){const _0x5eac20=_0x5209de['substring'](0x0,0x32)['replace'](/\n/g,'\x20');this[_0x2f6f9d(0x21b)][_0x2f6f9d(0x276)]('['+_0x59d0e2['chatId']+']\x20Continue\x20chat\x20for\x20model\x20'+_0x5af2f0[_0x2f6f9d(0x27e)]+_0x2f6f9d(0x25c)+_0x29a2ae+',\x20'+_0x5af2f0[_0x2f6f9d(0x1f7)][_0x2f6f9d(0x26c)]+_0x2f6f9d(0x1fa)+_0x55dc82[_0x2f6f9d(0x26c)]+_0x2f6f9d(0x25a)+_0x4c63a1[_0x2f6f9d(0x26c)]+_0x2f6f9d(0x213)+_0x5209de['length']+_0x2f6f9d(0x295)+_0x5eac20+_0x2f6f9d(0x27a));}const _0x7aad5d=this[_0x2f6f9d(0x219)][_0x2f6f9d(0x250)]['llm'][_0x2f6f9d(0x294)](_0x5209de,{'chatId':_0x59d0e2[_0x2f6f9d(0x215)]||undefined,'agentId':_0x59d0e2['chatId']?undefined:_0x59d0e2[_0x2f6f9d(0x21c)]});if(!_0x7aad5d){this['logger']['error'](_0x2f6f9d(0x220)),this[_0x2f6f9d(0x21b)][_0x2f6f9d(0x22b)](_0x2f6f9d(0x259),JSON[_0x2f6f9d(0x1f4)]({'chatId':_0x59d0e2['chatId'],'agentId':_0x59d0e2[_0x2f6f9d(0x21c)],'model':_0x5af2f0[_0x2f6f9d(0x27e)],'sessionId':_0x67bb7d,'contextSignature':_0x29a2ae})),_0x59d0e2[_0x2f6f9d(0x215)]='',this[_0x2f6f9d(0x21b)][_0x2f6f9d(0x1f6)](_0x2f6f9d(0x251));const _0x1e43a0=formatAnthropicSSE({'type':_0x2f6f9d(0x22b),'error':{'type':'api_error','message':_0x2f6f9d(0x274)},'request_id':_0x3ed81a});_0x59290d[_0x2f6f9d(0x247)][_0x2f6f9d(0x252)](_0x1e43a0),_0x59290d[_0x2f6f9d(0x247)][_0x2f6f9d(0x270)]();return;}_0x59d0e2[_0x2f6f9d(0x203)]=_0x5af2f0[_0x2f6f9d(0x1f7)];const _0x1ab8dc=_0x59d0e2;async function*_0x4c8024(_0x2bf4d8){const _0x4b8516=_0x2f6f9d;for await(const _0x4ecd26 of _0x2bf4d8){if(_0x4ecd26[_0x4b8516(0x258)]==='metadata')_0x4ecd26[_0x4b8516(0x217)][_0x4b8516(0x215)]&&!_0x1ab8dc[_0x4b8516(0x215)]&&(_0x1ab8dc[_0x4b8516(0x215)]=_0x4ecd26['data'][_0x4b8516(0x215)]);else _0x4ecd26[_0x4b8516(0x258)]===_0x4b8516(0x290)&&(yield _0x4ecd26['data']);}}const _0x5063d6=_0x4c8024(_0x7aad5d);_0x31be57=estimateInputTokensFromRequest(_0x5af2f0);const _0x58b89c=transformTDStreamToAnthropic(_0x5063d6,_0x3ed81a,_0x5af2f0[_0x2f6f9d(0x27e)],this[_0x2f6f9d(0x21b)],_0x395e5d,_0x31be57),_0x552f8a=_0x5209de['length'];let _0x49c050=0x0;for await(const _0x12e54b of _0x58b89c){const _0x46cf9f=formatAnthropicSSE(_0x12e54b);_0x49c050++,this[_0x2f6f9d(0x21b)]['debug'](colorizeJSONCompact(_0x12e54b,{'color':!![]})),_0x12e54b[_0x2f6f9d(0x258)]===_0x2f6f9d(0x22b)&&_0x12e54b[_0x2f6f9d(0x22b)]['type']===_0x2f6f9d(0x24b)&&(clearChatState(_0x59d0e2),this[_0x2f6f9d(0x21b)][_0x2f6f9d(0x1f6)](_0x2f6f9d(0x1f3)+_0x12e54b[_0x2f6f9d(0x22b)][_0x2f6f9d(0x289)]+_0x2f6f9d(0x21a)+_0x552f8a+_0x2f6f9d(0x23b)+_0x67bb7d+_0x2f6f9d(0x277)+_0x29a2ae)),_0x12e54b[_0x2f6f9d(0x258)]===_0x2f6f9d(0x20b)&&_0x12e54b[_0x2f6f9d(0x242)]?.[_0x2f6f9d(0x254)]&&(_0x5b889a=_0x12e54b[_0x2f6f9d(0x242)][_0x2f6f9d(0x254)]),_0x59290d[_0x2f6f9d(0x247)]['write'](_0x46cf9f);}this[_0x2f6f9d(0x21b)][_0x2f6f9d(0x23c)](_0x2f6f9d(0x1f2)+_0x49c050+'\x20SSE\x20events.'),appendUsageEntry(_0x67bb7d,{'timestamp':new Date()[_0x2f6f9d(0x227)](),'model':_0x5af2f0[_0x2f6f9d(0x27e)],'inputTokens':_0x31be57,'outputTokens':_0x5b889a,'contextSignature':_0x29a2ae,'profile':this[_0x2f6f9d(0x219)][_0x2f6f9d(0x250)]?.[_0x2f6f9d(0x1f9)]?.[_0x2f6f9d(0x272)],'chatId':_0x59d0e2['chatId']||undefined})['catch'](_0x39f92b=>{const _0x35ab24=_0x2f6f9d;this[_0x35ab24(0x21b)][_0x35ab24(0x1f6)](_0x35ab24(0x24d)+_0x39f92b);}),_0x59290d['raw'][_0x2f6f9d(0x270)]();}catch(_0x164b53){(_0x31be57>0x0||_0x5b889a>0x0)&&appendUsageEntry(_0x67bb7d,{'timestamp':new Date()[_0x2f6f9d(0x227)](),'model':_0x5af2f0['model'],'inputTokens':_0x31be57,'outputTokens':_0x5b889a,'contextSignature':_0x29a2ae,'profile':this['config'][_0x2f6f9d(0x250)]?.[_0x2f6f9d(0x1f9)]?.['profile'],'chatId':_0x59d0e2[_0x2f6f9d(0x215)]||undefined})[_0x2f6f9d(0x248)](_0xc3d865=>{const _0x1924e5=_0x2f6f9d;this[_0x1924e5(0x21b)][_0x1924e5(0x1f6)](_0x1924e5(0x1eb)+_0xc3d865);});const _0x350a9f=_0x164b53 instanceof Error?_0x164b53['message']:'Unknown\x20error';this[_0x2f6f9d(0x21b)][_0x2f6f9d(0x22b)]('[PROXY\x20ERROR]\x20Streaming\x20error:',_0x164b53),this[_0x2f6f9d(0x21b)][_0x2f6f9d(0x22b)](_0x2f6f9d(0x259),JSON[_0x2f6f9d(0x1f4)]({'chatId':_0x59d0e2[_0x2f6f9d(0x215)],'agentId':_0x59d0e2['agentId'],'model':_0x5af2f0[_0x2f6f9d(0x27e)],'sessionId':_0x67bb7d,'contextSignature':_0x29a2ae})),_0x59d0e2[_0x2f6f9d(0x215)]='',this[_0x2f6f9d(0x21b)][_0x2f6f9d(0x1f6)](_0x2f6f9d(0x25f));const _0x12c824=formatAnthropicSSE({'type':'error','error':{'type':'api_error','message':_0x350a9f},'request_id':_0x3ed81a});_0x59290d[_0x2f6f9d(0x247)][_0x2f6f9d(0x252)](_0x12c824),_0x59290d['raw'][_0x2f6f9d(0x270)]();}}else this['logger'][_0x2f6f9d(0x22b)]('[PROXY\x20ERROR]\x20Non-streaming\x20responses\x20are\x20not\x20yet\x20supported'),_0x59290d[_0x2f6f9d(0x262)](0x1f5)[_0x2f6f9d(0x22f)]({'type':_0x2f6f9d(0x22b),'error':{'type':_0x2f6f9d(0x253),'message':_0x2f6f9d(0x1ff)}});}async[a59_0x5b0023(0x209)](_0x15ce05){const _0x5664a1=a59_0x5b0023,_0x156b7b=_0x15ce05['body'],_0x357473=estimateInputTokensFromRequest(_0x156b7b);return this[_0x5664a1(0x21b)][_0x5664a1(0x276)](_0x15ce05[_0x5664a1(0x26f)]+'\x20'+_0x15ce05[_0x5664a1(0x246)]+_0x5664a1(0x234)+_0x357473),{'input_tokens':_0x357473};}async[a59_0x5b0023(0x225)](){const _0x5b1c6c=a59_0x5b0023;try{await this[_0x5b1c6c(0x230)][_0x5b1c6c(0x233)]({'port':this[_0x5b1c6c(0x219)]['port'],'host':_0x5b1c6c(0x278)}),this['logger'][_0x5b1c6c(0x276)]('Proxy\x20server\x20started\x20at\x20localhost:'+this[_0x5b1c6c(0x219)][_0x5b1c6c(0x29e)]),this[_0x5b1c6c(0x27d)]=setInterval(()=>{this['cleanupExpiredChats']();},CLEANUP_INTERVAL_MS),this[_0x5b1c6c(0x21b)][_0x5b1c6c(0x23c)](_0x5b1c6c(0x297)+CLEANUP_INTERVAL_MS/0x3e8+_0x5b1c6c(0x29c)+CACHE_EXPIRATION_MS/0x3e8+'s)');}catch(_0x4fab96){const _0x3def06=_0x4fab96 instanceof Error?_0x4fab96['message']:'Unknown\x20error';throw new Error(_0x5b1c6c(0x28c)+_0x3def06);}}async[a59_0x5b0023(0x25d)](){const _0x371020=a59_0x5b0023;this['cleanupInterval']&&(clearInterval(this[_0x371020(0x27d)]),this['cleanupInterval']=undefined),await this[_0x371020(0x230)][_0x371020(0x21d)]();}['getAddress'](){const _0x1766ee=a59_0x5b0023,_0x1fbfd2=this[_0x1766ee(0x230)][_0x1766ee(0x230)][_0x1766ee(0x205)]();if(typeof _0x1fbfd2===_0x1766ee(0x280))return _0x1fbfd2;if(_0x1fbfd2)return _0x1766ee(0x245)+_0x1fbfd2[_0x1766ee(0x205)]+':'+_0x1fbfd2[_0x1766ee(0x29e)];return _0x1766ee(0x271)+this[_0x1766ee(0x219)][_0x1766ee(0x29e)];}}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
function
|
|
1
|
+
const a60_0x153b4c=a60_0x3665;function a60_0x2e8b(){const _0x3be6bc=['config','size','35wXDldT','getSession','now','44hAmbQf','chats','lastUsedAt','cacheExpirationMs','values','1042011UDcjtW','clear','46952nxcvkY','sessions','delete','get','16938YFqipj','64LDWaex','set','85631eGcsGz','50830sHxjJa','getOrCreateChat','2238660PMvjgi','getTotalChatCount','maxChatsPerSession','743XRmRVP','510nnDyRO','33pEyeNl'];a60_0x2e8b=function(){return _0x3be6bc;};return a60_0x2e8b();}(function(_0x57db64,_0x5237c8){const _0x2325a7=a60_0x3665,_0x345b59=_0x57db64();while(!![]){try{const _0x365d68=-parseInt(_0x2325a7(0x8d))/0x1*(-parseInt(_0x2325a7(0x8e))/0x2)+-parseInt(_0x2325a7(0x8f))/0x3*(-parseInt(_0x2325a7(0x9c))/0x4)+parseInt(_0x2325a7(0x92))/0x5*(parseInt(_0x2325a7(0xa0))/0x6)+parseInt(_0x2325a7(0xa3))/0x7*(parseInt(_0x2325a7(0xa1))/0x8)+-parseInt(_0x2325a7(0x9a))/0x9+-parseInt(_0x2325a7(0xa4))/0xa*(parseInt(_0x2325a7(0x95))/0xb)+-parseInt(_0x2325a7(0x8a))/0xc;if(_0x365d68===_0x5237c8)break;else _0x345b59['push'](_0x345b59['shift']());}catch(_0x145ba3){_0x345b59['push'](_0x345b59['shift']());}}}(a60_0x2e8b,0x1bb86));function a60_0x3665(_0x4fd711,_0x5bf8f7){_0x4fd711=_0x4fd711-0x89;const _0x2e8bf7=a60_0x2e8b();let _0x3665f5=_0x2e8bf7[_0x4fd711];return _0x3665f5;}export class SessionCache{[a60_0x153b4c(0x9d)];[a60_0x153b4c(0x90)];constructor(_0x36a5af){const _0x1f5025=a60_0x153b4c;this[_0x1f5025(0x90)]=_0x36a5af,this[_0x1f5025(0x9d)]=new Map();}['getOrCreateSession'](_0x363eeb,_0x4b8511){const _0x23c8ff=a60_0x153b4c;let _0x9c7510=this[_0x23c8ff(0x9d)][_0x23c8ff(0x9f)](_0x363eeb);return!_0x9c7510&&(_0x9c7510={'projectId':_0x4b8511,'chats':new Map()},this[_0x23c8ff(0x9d)][_0x23c8ff(0xa2)](_0x363eeb,_0x9c7510)),_0x9c7510;}[a60_0x153b4c(0x93)](_0xc17d1b){const _0xe52b0a=a60_0x153b4c;return this[_0xe52b0a(0x9d)][_0xe52b0a(0x9f)](_0xc17d1b);}[a60_0x153b4c(0x89)](_0x7f7055,_0x252e6a,_0x13d43f){const _0x2e4701=a60_0x153b4c,_0x7a758a=this[_0x2e4701(0x9d)]['get'](_0x7f7055);if(!_0x7a758a)throw new Error('Session\x20'+_0x7f7055+'\x20not\x20found');let _0x3df13d=_0x7a758a['chats'][_0x2e4701(0x9f)](_0x252e6a);if(!_0x3df13d){_0x3df13d={'chatId':'','agentId':_0x13d43f,'contextSignature':_0x252e6a,'embeddedSystemPrompts':new Set(),'embeddedToolsByName':new Map(),'messageHistory':[],'lastUsedAt':Date['now']()},_0x7a758a[_0x2e4701(0x96)][_0x2e4701(0xa2)](_0x252e6a,_0x3df13d);if(_0x7a758a['chats'][_0x2e4701(0x91)]>this[_0x2e4701(0x90)][_0x2e4701(0x8c)]){let _0x66931b=null,_0x2ea2c9=Date['now']();for(const [_0x277a92,_0x56100f]of _0x7a758a[_0x2e4701(0x96)]){_0x56100f['lastUsedAt']<_0x2ea2c9&&(_0x2ea2c9=_0x56100f[_0x2e4701(0x97)],_0x66931b=_0x277a92);}_0x66931b&&_0x7a758a[_0x2e4701(0x96)][_0x2e4701(0x9e)](_0x66931b);}}else _0x3df13d['lastUsedAt']=Date[_0x2e4701(0x94)]();return _0x3df13d;}['cleanupExpiredChats'](){const _0x117a3c=a60_0x153b4c,_0x391611=Date['now']();let _0x2256cc=0x0;for(const [_0x3997d7,_0x17e3f4]of this[_0x117a3c(0x9d)]){const _0x4bd333=[];for(const [_0x2f79a1,_0x21d121]of _0x17e3f4['chats']){_0x391611-_0x21d121['lastUsedAt']>this[_0x117a3c(0x90)][_0x117a3c(0x98)]&&_0x4bd333['push'](_0x2f79a1);}for(const _0x2a7255 of _0x4bd333){_0x17e3f4[_0x117a3c(0x96)][_0x117a3c(0x9e)](_0x2a7255),_0x2256cc++;}_0x17e3f4[_0x117a3c(0x96)][_0x117a3c(0x91)]===0x0&&this[_0x117a3c(0x9d)][_0x117a3c(0x9e)](_0x3997d7);}return _0x2256cc;}['getSessionCount'](){const _0xf61594=a60_0x153b4c;return this[_0xf61594(0x9d)][_0xf61594(0x91)];}[a60_0x153b4c(0x8b)](){const _0x12680b=a60_0x153b4c;let _0x13bede=0x0;for(const _0xc65a3f of this['sessions'][_0x12680b(0x99)]()){_0x13bede+=_0xc65a3f[_0x12680b(0x96)][_0x12680b(0x91)];}return _0x13bede;}['clear'](){const _0x240226=a60_0x153b4c;this[_0x240226(0x9d)][_0x240226(0x9b)]();}}
|