@treasuredata/tdx 0.14.6 → 0.14.8
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/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.d.ts.map +1 -1
- package/dist/commands/claude-command.js +1 -1
- package/dist/commands/claude-command.js.map +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.d.ts.map +1 -1
- package/dist/sdk/client/http-client.js +1 -1
- package/dist/sdk/client/http-client.js.map +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.js +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/tdx +10 -0
- package/dist/utils/async.js +1 -1
- package/dist/utils/colors.js +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 +2 -2
|
@@ -1 +1 @@
|
|
|
1
|
-
(function(_0x51866c,_0x581c32){const _0x4ea5b6=a54_0x14ce,_0xf8e6d=_0x51866c();while(!![]){try{const _0x1dbb51=parseInt(_0x4ea5b6(0x10d))/0x1*(parseInt(_0x4ea5b6(0xec))/0x2)+-parseInt(_0x4ea5b6(0xfc))/0x3+-parseInt(_0x4ea5b6(0x124))/0x4+-parseInt(_0x4ea5b6(0x157))/0x5*(parseInt(_0x4ea5b6(0x101))/0x6)+-parseInt(_0x4ea5b6(0x137))/0x7+-parseInt(_0x4ea5b6(0x103))/0x8+parseInt(_0x4ea5b6(0x11a))/0x9;if(_0x1dbb51===_0x581c32)break;else _0xf8e6d['push'](_0xf8e6d['shift']());}catch(_0x465e49){_0xf8e6d['push'](_0xf8e6d['shift']());}}}(a54_0x2778,0x51c38));import{SDKError,ErrorCode}from'../sdk/errors.js';import{calculateConversationDelta}from'./conversation-utils.js';export{calculateConversationDelta}from'./conversation-utils.js';function estimateTokenCount(_0x29ecef){const _0x4ce055=a54_0x14ce;if(!_0x29ecef||_0x29ecef[_0x4ce055(0xfe)]===0x0)return 0x0;return Math['ceil'](_0x29ecef[_0x4ce055(0xfe)]/3.7);}export function determineErrorType(_0xda07d5,_0x346eb8){const _0x52d777=a54_0x14ce,_0x5e24b7=_0xda07d5[_0x52d777(0x159)](_0x52d777(0x12b))||_0xda07d5[_0x52d777(0x159)](_0x52d777(0x134))||_0xda07d5['includes']('maximum\x20context');if(_0x5e24b7)return _0x346eb8?.[_0x52d777(0x128)](_0x52d777(0x151)+_0xda07d5),_0x52d777(0x117);return _0x346eb8?.['error'](_0x52d777(0x11c)+_0xda07d5),'api_error';}export function estimateInputTokensFromRequest(_0x1cb042){const _0x28ec5e=a54_0x14ce;let _0x896569=0x0;if(typeof _0x1cb042[_0x28ec5e(0x10f)]===_0x28ec5e(0x10c))_0x896569+=_0x1cb042[_0x28ec5e(0x10f)][_0x28ec5e(0xfe)];else{if(Array['isArray'](_0x1cb042[_0x28ec5e(0x10f)]))for(const _0x1ee48a of _0x1cb042[_0x28ec5e(0x10f)]){_0x1ee48a&&typeof _0x1ee48a[_0x28ec5e(0x145)]===_0x28ec5e(0x10c)&&(_0x896569+=_0x1ee48a[_0x28ec5e(0x145)][_0x28ec5e(0xfe)]);}}if(Array['isArray'](_0x1cb042[_0x28ec5e(0x142)]))for(const _0x3c9463 of _0x1cb042['tools']){_0x3c9463&&(_0x896569+=_0x3c9463[_0x28ec5e(0xea)]?.[_0x28ec5e(0xfe)]||0x0,_0x896569+=_0x3c9463[_0x28ec5e(0x107)]?.[_0x28ec5e(0xfe)]||0x0,_0x3c9463['input_schema']&&(_0x896569+=JSON['stringify'](_0x3c9463[_0x28ec5e(0x147)])[_0x28ec5e(0xfe)]));}if(Array[_0x28ec5e(0x12a)](_0x1cb042[_0x28ec5e(0x11d)]))for(const _0x5818bb of _0x1cb042[_0x28ec5e(0x11d)]){if(!_0x5818bb)continue;if(typeof _0x5818bb[_0x28ec5e(0x11b)]==='string')_0x896569+=_0x5818bb[_0x28ec5e(0x11b)][_0x28ec5e(0xfe)];else{if(Array['isArray'](_0x5818bb[_0x28ec5e(0x11b)]))for(const _0x586964 of _0x5818bb[_0x28ec5e(0x11b)]){if(!_0x586964)continue;if(_0x586964[_0x28ec5e(0x136)]==='text'&&_0x586964['text'])_0x896569+=_0x586964[_0x28ec5e(0x145)]['length'];else{if(_0x586964[_0x28ec5e(0x136)]===_0x28ec5e(0x10e)&&_0x586964[_0x28ec5e(0x14a)])_0x896569+=JSON[_0x28ec5e(0x131)](_0x586964[_0x28ec5e(0x14a)])[_0x28ec5e(0xfe)];else{if(_0x586964[_0x28ec5e(0x136)]==='tool_result'&&_0x586964['content']){if(typeof _0x586964[_0x28ec5e(0x11b)]===_0x28ec5e(0x10c))_0x896569+=_0x586964[_0x28ec5e(0x11b)]['length'];else{if(Array[_0x28ec5e(0x12a)](_0x586964[_0x28ec5e(0x11b)]))for(const _0x303be5 of _0x586964[_0x28ec5e(0x11b)]){_0x303be5&&_0x303be5[_0x28ec5e(0x136)]==='text'&&_0x303be5[_0x28ec5e(0x145)]&&(_0x896569+=_0x303be5['text'][_0x28ec5e(0xfe)]);}}}}}}}}return Math[_0x28ec5e(0x11e)](_0x896569/3.7);}function generateMessageId(){const _0x42ebeb=a54_0x14ce;return'msg_'+Math[_0x42ebeb(0x100)]()[_0x42ebeb(0x114)](0x24)[_0x42ebeb(0xf6)](0x2,0xf)+Math[_0x42ebeb(0x100)]()['toString'](0x24)['substring'](0x2,0xf);}function a54_0x14ce(_0xcb3a90,_0x1384f7){_0xcb3a90=_0xcb3a90-0xea;const _0x27781b=a54_0x2778();let _0x14ce2c=_0x27781b[_0xcb3a90];return _0x14ce2c;}export function extractTextFromAnthropicMessage(_0x18df79){const _0x1c7781=a54_0x14ce;if(typeof _0x18df79[_0x1c7781(0x11b)]==='string')return _0x18df79[_0x1c7781(0x11b)];if(_0x18df79['content']==null)return'';if(!Array[_0x1c7781(0x12a)](_0x18df79[_0x1c7781(0x11b)]))throw new SDKError(ErrorCode[_0x1c7781(0x14c)],'Invalid\x20message.content\x20type:\x20expected\x20string\x20or\x20array,\x20got\x20'+typeof _0x18df79['content']);return _0x18df79['content']['filter'](_0x3146e7=>_0x3146e7&&_0x3146e7[_0x1c7781(0x136)]===_0x1c7781(0x145)&&_0x3146e7['text'])['map'](_0x1cfc85=>_0x1cfc85[_0x1c7781(0x145)])[_0x1c7781(0xeb)]('\x0a');}function a54_0x2778(){const _0x10106b=['##\x20Tool:\x20','thinking','input','opus','LLM_MALFORMED_MESSAGE','startIndex','pop','\x20(generated)','WebSearch','[CONTEXT\x20LENGTH\x20ERROR]\x20','text_delta','replace','filter','slice','content_block_start','157735BgFsQZ','\x0a```','includes','No\x20user\x20message\x20found\x20in\x20request\x20delta','input_json_delta','exec','\x20error=\x22true\x22','push','NotebookEdit','Invalid\x20messages\x20type:\x20expected\x20array,\x20got\x20','Write','name','join','338576NcpeXi','event:\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','reasoning','is_error','message_start','indexOf','$1,\x22new_string\x22:$2}','message_stop','end_turn','substring','trim','thinking_delta','&','lastIndexOf','Invalid\x20message.content\x20type\x20for\x20user\x20role:\x20expected\x20array,\x20got\x20','1639884nSmSOE','min','length','parse','random','120JFlOeO','now','2883080sTFMGj','warn','</tool_use>','sonnet','description','\x0a[After]:\x0a','user','<tool_use','index','string','1YXjXpk','tool_use','system','\x0a---\x0a','Grep','Edit','Malformed\x20tool_use\x20JSON\x20detected','toString','<tool_result\x20tool_use_id=\x22','role','request_too_large','\x20tool_use\x20blocks.\x20','{\x22tool_use\x22:','21570336pNbImO','content','[API\x20ERROR]\x20','messages','ceil','message_delta','haiku','Task','content_block_stop','usage','1214240Jxavsb','[MALFORMED\x20JSON]\x20Tool\x20use\x20JSON\x20could\x20not\x20be\x20parsed\x20or\x20repaired:\x0a','\x0a\x0a**Description:**\x20','TodoWrite','error','toolu_generated_','isArray','Input\x20is\x20too\x20long','>','Glob','\x0aOriginal\x20XML:\x0a','\x0a\x0a[tdx\x20error]\x20Malformed\x20tool_use\x20JSON\x20detected.\x20Please\x20fix\x20the\x20JSON\x20below:\x0a\x0a','debug','stringify','[MULTIPLE\x20TOOL_USE]\x20Detected\x20','Malformed\x20content:','context\x20length','assistant','type','2727025cqWYLc','Executing\x20only\x20the\x20last\x20one\x20(','Read',',\x20ID:\x20','content_block_delta','endIndex','[JSON\x20REPAIR]\x20Added\x20missing\x20\x22new_string\x22\x20key\x0a[Before]:\x0a','[JSON\x20REPAIR]\x20Successfully\x20repaired\x20malformed\x20JSON\x0a[Before]:\x0a','\x0a\x0a**Input\x20Schema:**\x0a```json\x0a','Bash','map','tools','tool_use_id','tool_result','text','[MALFORMED\x20TOOL_USE]\x20Missing\x20id\x20attribute,\x20generated\x20fallback.\x20Name:\x20','input_schema'];a54_0x2778=function(){return _0x10106b;};return a54_0x2778();}export function transformAnthropicRequestToTD(_0x20385c,_0x2c7c77){const _0x431a79=a54_0x14ce,_0x37cd38=calculateConversationDelta(_0x20385c[_0x431a79(0x11d)],_0x2c7c77),_0x1ff1d0=_0x37cd38[_0x431a79(0x154)](_0x3e17e8=>_0x3e17e8['role']===_0x431a79(0x109))[_0x431a79(0x14e)]();if(!_0x1ff1d0)throw new Error(_0x431a79(0x15a));const _0x4f747f=extractTextFromAnthropicMessage(_0x1ff1d0);return{'userMessage':_0x4f747f,'deltaMessages':_0x37cd38};}export function formatAnthropicSSE(_0x2e097d){const _0x845916=a54_0x14ce;return _0x845916(0xed)+_0x2e097d[_0x845916(0x136)]+'\x0adata:\x20'+JSON[_0x845916(0x131)](_0x2e097d)+'\x0a\x0a';}export function mapAnthropicModelToTD(_0x571939){const _0x22e519=a54_0x14ce,_0x3641bb={'sonnet':_0x22e519(0x106),'claude-sonnet':'sonnet','claude-3-5-sonnet':_0x22e519(0x106),'claude-3-sonnet':_0x22e519(0x106),'haiku':'haiku','claude-haiku':_0x22e519(0x120),'claude-3-5-haiku':'haiku','claude-3-haiku':_0x22e519(0x120),'opus':_0x22e519(0x14b),'claude-opus':'opus','claude-3-opus':'opus'},_0x3034f4=_0x571939['toLowerCase']();return _0x3641bb[_0x3034f4]||'sonnet';}export function generateToolPrompt(_0x29c2e2){const _0x8041e4=a54_0x14ce;if(_0x29c2e2==null)return'';if(!Array[_0x8041e4(0x12a)](_0x29c2e2))throw new SDKError(ErrorCode[_0x8041e4(0x14c)],'Invalid\x20tools\x20type:\x20expected\x20array,\x20got\x20'+typeof _0x29c2e2);if(_0x29c2e2[_0x8041e4(0xfe)]===0x0)return'';const _0x3ff8a4=_0x29c2e2['filter'](_0x576f04=>_0x576f04!=null)['map'](_0x20365f=>{const _0x121236=_0x8041e4,_0x34493b=JSON[_0x121236(0x131)](_0x20365f[_0x121236(0x147)]);return _0x121236(0x148)+_0x20365f['name']+_0x121236(0x126)+(_0x20365f[_0x121236(0x107)]||'No\x20description')+_0x121236(0x13f)+_0x34493b+_0x121236(0x158);})[_0x8041e4(0xeb)]('\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'+_0x3ff8a4+_0x8041e4(0x110);}function escapeXmlContent(_0x1720d4){const _0x2f7fa4=a54_0x14ce;return _0x1720d4[_0x2f7fa4(0x153)](/&/g,_0x2f7fa4(0xf9))['replace'](/</g,'<')[_0x2f7fa4(0x153)](/>/g,_0x2f7fa4(0x12c));}export function extractToolResults(_0x2dbee6){const _0x4c4365=a54_0x14ce;if(_0x2dbee6==null)return'';if(!Array[_0x4c4365(0x12a)](_0x2dbee6))throw new SDKError(ErrorCode['LLM_MALFORMED_MESSAGE'],_0x4c4365(0x160)+typeof _0x2dbee6);const _0x4c2558=[];for(const _0x2716d7 of _0x2dbee6){if(!_0x2716d7)continue;if(_0x2716d7[_0x4c4365(0x116)]==='user'&&typeof _0x2716d7['content']!==_0x4c4365(0x10c)){if(!Array[_0x4c4365(0x12a)](_0x2716d7[_0x4c4365(0x11b)]))throw new SDKError(ErrorCode[_0x4c4365(0x14c)],_0x4c4365(0xfb)+typeof _0x2716d7['content']);for(const _0x5ace47 of _0x2716d7['content']){if(!_0x5ace47)continue;if(_0x5ace47[_0x4c4365(0x136)]===_0x4c4365(0x144)&&_0x5ace47[_0x4c4365(0x143)]){let _0x4d2c1a='';if(typeof _0x5ace47[_0x4c4365(0x11b)]===_0x4c4365(0x10c))_0x4d2c1a=_0x5ace47[_0x4c4365(0x11b)];else _0x5ace47['content']!=null&&Array[_0x4c4365(0x12a)](_0x5ace47[_0x4c4365(0x11b)])&&(_0x4d2c1a=_0x5ace47['content']['filter'](_0xda00f8=>_0xda00f8&&_0xda00f8['type']===_0x4c4365(0x145)&&_0xda00f8['text'])[_0x4c4365(0x141)](_0x24eaf4=>_0x24eaf4[_0x4c4365(0x145)])['join']('\x0a'));const _0x37e23a=escapeXmlContent(_0x4d2c1a),_0x26732f=_0x5ace47[_0x4c4365(0xf0)]?_0x4c4365(0x15d):'';_0x4c2558[_0x4c4365(0x15e)](_0x4c4365(0x115)+_0x5ace47['tool_use_id']+'\x22'+_0x26732f+'>\x0a'+_0x37e23a+'\x0a</tool_result>');}}}}if(_0x4c2558[_0x4c4365(0xfe)]===0x0)return'';return _0x4c2558['join']('\x0a\x0a');}function findJsonEndIndex(_0x3e3296,_0x667aaf){const _0x267686=a54_0x14ce;let _0x2a1f22=0x0,_0x3be2fe=![],_0x468b26=![];for(let _0x51b806=_0x667aaf;_0x51b806<_0x3e3296[_0x267686(0xfe)];_0x51b806++){const _0x1efa0a=_0x3e3296[_0x51b806];if(_0x468b26){_0x468b26=![];continue;}if(_0x1efa0a==='\x5c'){_0x468b26=!![];continue;}if(_0x1efa0a==='\x22'){_0x3be2fe=!_0x3be2fe;continue;}if(!_0x3be2fe){if(_0x1efa0a==='{')_0x2a1f22++;else{if(_0x1efa0a==='}'){_0x2a1f22--;if(_0x2a1f22===0x0)return _0x51b806+0x1;}}}}return-0x1;}function repairIncompleteJson(_0x1d9bde,_0x4bc33e){const _0x3f42f8=a54_0x14ce;try{return JSON['parse'](_0x1d9bde),_0x1d9bde;}catch{let _0x1a0efe=_0x1d9bde;const _0xcb1708=/("old_string"\s*:\s*"[^"]*")\s*,\s*("(?:[^"\\]|\\.)*")\s*\}/,_0x1fe7dc=_0xcb1708['exec'](_0x1a0efe);if(_0x1fe7dc){_0x1a0efe=_0x1a0efe['replace'](_0xcb1708,_0x3f42f8(0xf3));try{return JSON['parse'](_0x1a0efe),_0x4bc33e&&_0x4bc33e[_0x3f42f8(0x104)](_0x3f42f8(0x13d)+_0x1d9bde+_0x3f42f8(0x108)+_0x1a0efe),_0x1a0efe;}catch{_0x1a0efe=_0x1d9bde;}}const _0x2d7ea7=[];let _0x27d7d4=![],_0x6a770a=![];for(const _0x4ab68b of _0x1d9bde){if(_0x6a770a){_0x6a770a=![];continue;}if(_0x4ab68b==='\x5c'){_0x6a770a=!![];continue;}if(_0x4ab68b==='\x22'){_0x27d7d4=!_0x27d7d4;continue;}if(!_0x27d7d4){if(_0x4ab68b==='{')_0x2d7ea7[_0x3f42f8(0x15e)]('{');else{if(_0x4ab68b==='[')_0x2d7ea7['push']('[');else{if(_0x4ab68b==='}'&&_0x2d7ea7[_0x2d7ea7[_0x3f42f8(0xfe)]-0x1]==='{')_0x2d7ea7['pop']();else _0x4ab68b===']'&&_0x2d7ea7[_0x2d7ea7[_0x3f42f8(0xfe)]-0x1]==='['&&_0x2d7ea7[_0x3f42f8(0x14e)]();}}}}_0x1a0efe=_0x1d9bde;_0x27d7d4&&(_0x1a0efe+='\x22');while(_0x2d7ea7[_0x3f42f8(0xfe)]>0x0){const _0x53e634=_0x2d7ea7[_0x3f42f8(0x14e)]();_0x1a0efe+=_0x53e634==='{'?'}':']';}try{return JSON[_0x3f42f8(0xff)](_0x1a0efe),_0x4bc33e&&_0x1a0efe!==_0x1d9bde&&_0x4bc33e[_0x3f42f8(0x104)](_0x3f42f8(0x13e)+_0x1d9bde+'\x0a[After]:\x0a'+_0x1a0efe),_0x1a0efe;}catch{return null;}}}function tryParseJsonContent(_0x409498,_0x5dc5ca){const _0x3ef81f=a54_0x14ce;if(!_0x409498)return null;try{return JSON[_0x3ef81f(0xff)](_0x409498);}catch{const _0x53f1ce=repairIncompleteJson(_0x409498,_0x5dc5ca);if(_0x53f1ce)try{return JSON[_0x3ef81f(0xff)](_0x53f1ce);}catch{}return null;}}function tryMatchXmlPatterns(_0x294a5f,_0x1a7cc8){const _0x4e0b11=a54_0x14ce;let _0x3b5bf4=null;for(const {pattern:_0x20b7b7,nameFirst:_0x3c8175}of _0x1a7cc8){const _0x5acc7f=_0x20b7b7[_0x4e0b11(0x15c)](_0x294a5f);_0x5acc7f&&((!_0x3b5bf4||_0x5acc7f[_0x4e0b11(0x10b)]<_0x3b5bf4['match'][_0x4e0b11(0x10b)])&&(_0x3b5bf4={'match':_0x5acc7f,'name':_0x3c8175?_0x5acc7f[0x1]:_0x5acc7f[0x2],'id':_0x3c8175?_0x5acc7f[0x2]:_0x5acc7f[0x1],'jsonContent':_0x5acc7f[0x3][_0x4e0b11(0xf7)]()}));}return _0x3b5bf4;}export function parseToolCallFromText(_0x22be73,_0x5206dc){const _0x5cf664=a54_0x14ce,_0x157e42=[{'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':![]}],_0x50ca03=[{'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':![]}],_0x5227c5=tryMatchXmlPatterns(_0x22be73,_0x157e42);if(_0x5227c5){const {match:_0x38068a,name:_0x18515f,id:_0x2dc031,jsonContent:_0x19812b}=_0x5227c5,_0x153a54=_0x38068a[_0x5cf664(0x10b)],_0x4ec5f5=_0x153a54+_0x38068a[0x0][_0x5cf664(0xfe)],_0x682c24=tryParseJsonContent(_0x19812b,_0x5206dc);if(_0x682c24!==null)return{'id':_0x2dc031,'name':_0x18515f,'input':_0x682c24,'startIndex':_0x153a54,'endIndex':_0x4ec5f5};if(!_0x19812b)return{'id':_0x2dc031,'name':_0x18515f,'input':{},'startIndex':_0x153a54,'endIndex':_0x4ec5f5};}const _0x5acae9=/<tool_use\s+name="([^"]+)">\s*([\s\S]*?)\s*<\/tool_use>/,_0x3b5182=_0x5acae9[_0x5cf664(0x15c)](_0x22be73);if(_0x3b5182){const _0x3d898b=_0x3b5182[0x1],_0x538587=_0x3b5182[0x2][_0x5cf664(0xf7)](),_0x129669=_0x3b5182[_0x5cf664(0x10b)],_0x424b9e=_0x129669+_0x3b5182[0x0][_0x5cf664(0xfe)],_0x341bab=_0x5cf664(0x129)+Date['now']();_0x5206dc?.['warn'](_0x5cf664(0x146)+_0x3d898b+_0x5cf664(0x13a)+_0x341bab+'\x0aOriginal\x20XML:\x0a'+_0x3b5182[0x0]);const _0x4c8a53=tryParseJsonContent(_0x538587,_0x5206dc);if(_0x4c8a53!==null)return{'id':_0x341bab,'name':_0x3d898b,'input':_0x4c8a53,'startIndex':_0x129669,'endIndex':_0x424b9e};if(!_0x538587)return{'id':_0x341bab,'name':_0x3d898b,'input':{},'startIndex':_0x129669,'endIndex':_0x424b9e};}const _0xc9a856=tryMatchXmlPatterns(_0x22be73,_0x50ca03);if(_0xc9a856){const {match:_0x443976,name:_0x843659,id:_0x55bd31,jsonContent:_0xd0c96}=_0xc9a856,_0x1e9fc6=_0x443976[_0x5cf664(0x10b)],_0x463b5d=_0x1e9fc6+_0x443976[0x0]['length'];_0x5206dc?.[_0x5cf664(0x104)]('[MALFORMED\x20TOOL_USE]\x20Detected\x20malformed\x20XML\x20format\x20with\x20separate\x20id\x20tag.\x20Name:\x20'+_0x843659+',\x20ID:\x20'+_0x55bd31+_0x5cf664(0x12e)+_0x443976[0x0]);const _0x3845c6=tryParseJsonContent(_0xd0c96,_0x5206dc);if(_0x3845c6!==null)return{'id':_0x55bd31,'name':_0x843659,'input':_0x3845c6,'startIndex':_0x1e9fc6,'endIndex':_0x463b5d};if(!_0xd0c96)return{'id':_0x55bd31,'name':_0x843659,'input':{},'startIndex':_0x1e9fc6,'endIndex':_0x463b5d};}const _0x19de94=/<tool_use([^>]*)>([\s\S]*?)<\/tool_use>/,_0x1970bf=_0x19de94[_0x5cf664(0x15c)](_0x22be73);if(_0x1970bf){const _0x27afb3=_0x1970bf[0x1],_0x37b8be=_0x1970bf[0x2],_0x3b4821=_0x1970bf[_0x5cf664(0x10b)],_0x176f60=_0x3b4821+_0x1970bf[0x0][_0x5cf664(0xfe)],_0x5d58ff=/name="([^"]+)"/[_0x5cf664(0x15c)](_0x27afb3),_0x1c1109=/id="([^"]+)"/[_0x5cf664(0x15c)](_0x27afb3),_0xf4fdfd=/tool_use_name="([^"]+)"/['exec'](_0x37b8be),_0x144ba3=/tool_use_id="([^"]+)"/[_0x5cf664(0x15c)](_0x37b8be),_0x51bad9=_0x5d58ff?.[0x1]||_0xf4fdfd?.[0x1],_0x3891dd=_0x1c1109?.[0x1]||_0x144ba3?.[0x1];if(_0x51bad9){const _0x43b2e6=_0x3891dd||_0x5cf664(0x129)+Date[_0x5cf664(0x102)](),_0x32fe32=_0x37b8be[_0x5cf664(0xfa)]('{');let _0x1d4a7a='';if(_0x32fe32!==-0x1){const _0x17987e=_0x37b8be[_0x5cf664(0xf6)](_0x32fe32),_0x469790=/^\{[\s\S]*?\}/['exec'](_0x17987e);_0x1d4a7a=_0x469790?.[0x0]?.[_0x5cf664(0xf7)]()||'';}const _0x1d8501=!_0x3891dd;_0x5206dc?.['warn']('[MALFORMED\x20TOOL_USE]\x20Extracted\x20from\x20flexible\x20pattern.\x20Name:\x20'+_0x51bad9+_0x5cf664(0x13a)+_0x43b2e6+(_0x1d8501?_0x5cf664(0x14f):'')+'\x0aOriginal\x20XML:\x0a'+_0x1970bf[0x0]);const _0x38ed13=tryParseJsonContent(_0x1d4a7a,_0x5206dc);if(_0x38ed13!==null)return{'id':_0x43b2e6,'name':_0x51bad9,'input':_0x38ed13,'startIndex':_0x3b4821,'endIndex':_0x176f60};if(!_0x1d4a7a)return{'id':_0x43b2e6,'name':_0x51bad9,'input':{},'startIndex':_0x3b4821,'endIndex':_0x176f60};}}const _0x53bd36=[_0x5cf664(0x112),_0x5cf664(0x139),_0x5cf664(0x161),_0x5cf664(0x140),_0x5cf664(0x12d),_0x5cf664(0x111),_0x5cf664(0x121),_0x5cf664(0x127),'WebFetch',_0x5cf664(0x150),'AskUserQuestion',_0x5cf664(0x15f)];for(const _0x192ccd of _0x53bd36){const _0x4a585d=new RegExp('<'+_0x192ccd+'>([\x5cs\x5cS]*?)</'+_0x192ccd+'>','i'),_0x40e592=_0x4a585d['exec'](_0x22be73);if(_0x40e592){const _0x2ee844=_0x40e592[0x1],_0x1f8de9=_0x40e592['index'],_0x3860dd=_0x1f8de9+_0x40e592[0x0][_0x5cf664(0xfe)],_0x4cbd2e=_0x5cf664(0x129)+Date[_0x5cf664(0x102)](),_0x400a1b={},_0x284f80=/<([a-z_]+)>([\s\S]*?)<\/\1>/gi;let _0x50c275;while((_0x50c275=_0x284f80[_0x5cf664(0x15c)](_0x2ee844))!==null){const _0x13236c=_0x50c275[0x1],_0x3a3b0d=_0x50c275[0x2][_0x5cf664(0xf7)]();try{_0x400a1b[_0x13236c]=JSON['parse'](_0x3a3b0d);}catch{_0x400a1b[_0x13236c]=_0x3a3b0d;}}return _0x5206dc?.['warn']('[MALFORMED\x20TOOL_USE]\x20Tool\x20name\x20used\x20as\x20XML\x20tag\x20instead\x20of\x20tool_use.\x20Name:\x20'+_0x192ccd+_0x5cf664(0x13a)+_0x4cbd2e+_0x5cf664(0x12e)+_0x40e592[0x0]),{'id':_0x4cbd2e,'name':_0x192ccd,'input':_0x400a1b,'startIndex':_0x1f8de9,'endIndex':_0x3860dd};}}const _0x4e1849=/\{"tool_use":/g,_0x5290f3=_0x4e1849['exec'](_0x22be73);if(!_0x5290f3)return null;const _0x4cc153=_0x5290f3[_0x5cf664(0x10b)];let _0x91f51e=findJsonEndIndex(_0x22be73,_0x4cc153);if(_0x91f51e===-0x1)return null;const _0x1bc888=_0x22be73[_0x5cf664(0xf6)](_0x4cc153,_0x91f51e);try{const _0x33cd56=JSON[_0x5cf664(0xff)](_0x1bc888);if(_0x33cd56[_0x5cf664(0x10e)]&&_0x33cd56['tool_use']['id']&&_0x33cd56[_0x5cf664(0x10e)][_0x5cf664(0xea)])return{'id':_0x33cd56[_0x5cf664(0x10e)]['id'],'name':_0x33cd56['tool_use'][_0x5cf664(0xea)],'input':_0x33cd56[_0x5cf664(0x10e)][_0x5cf664(0x14a)]||{},'startIndex':_0x4cc153,'endIndex':_0x91f51e};}catch{const _0x48224c=repairIncompleteJson(_0x1bc888,_0x5206dc);if(_0x48224c)try{const _0x2759fd=JSON[_0x5cf664(0xff)](_0x48224c);if(_0x2759fd[_0x5cf664(0x10e)]&&_0x2759fd[_0x5cf664(0x10e)]['id']&&_0x2759fd['tool_use'][_0x5cf664(0xea)])return{'id':_0x2759fd[_0x5cf664(0x10e)]['id'],'name':_0x2759fd['tool_use']['name'],'input':_0x2759fd[_0x5cf664(0x10e)][_0x5cf664(0x14a)]||{},'startIndex':_0x4cc153,'endIndex':_0x91f51e};}catch{return null;}return null;}return null;}export function*generateToolCallBlockEvents(_0x4b4c96,_0x5bb500){const _0x61130e=a54_0x14ce,_0x5f2c31={'type':_0x61130e(0x156),'index':_0x5bb500,'content_block':{'type':_0x61130e(0x10e),'id':_0x4b4c96['id'],'name':_0x4b4c96['name'],'input':{}}};yield _0x5f2c31;const _0x3afdf7=JSON[_0x61130e(0x131)](_0x4b4c96[_0x61130e(0x14a)]),_0x238375={'type':_0x61130e(0x13b),'index':_0x5bb500,'delta':{'type':_0x61130e(0x15b),'partial_json':_0x3afdf7}};yield _0x238375;const _0x29f80f={'type':_0x61130e(0x122),'index':_0x5bb500};yield _0x29f80f;}export function*generateToolCallEvents(_0x551650,_0x3f7874,_0x4d7cad){const _0x21df6b=a54_0x14ce;yield*generateToolCallBlockEvents(_0x551650,_0x3f7874);const _0xfe11db={'type':_0x21df6b(0x11f),'delta':{'stop_reason':_0x21df6b(0x10e),'stop_sequence':null},'usage':{'input_tokens':_0x4d7cad,'output_tokens':0x0}};yield _0xfe11db;const _0x12f78f={'type':_0x21df6b(0xf4)};yield _0x12f78f;}export async function*transformTDStreamToAnthropic(_0xb17eba,_0x3d4d37,_0x292353,_0x1279d1,_0x209254='',_0x3d9de5=0x0){const _0x192c57=a54_0x14ce,_0xbcb65e=_0x3d9de5>0x0?_0x3d9de5:estimateTokenCount(_0x209254);let _0x1a69e7=0x0,_0x52986e=0x0,_0x3d8730=![],_0x5acf0a=null,_0x3a1a4b='',_0x535f38=0x0,_0x5e1251=![];const _0x52d478=0xc8,_0xc0b01a={'type':_0x192c57(0xf1),'message':{'id':_0x3d4d37,'type':'message','role':_0x192c57(0x135),'content':[],'model':_0x292353,'stop_reason':null,'stop_sequence':null,'usage':{'input_tokens':_0xbcb65e,'output_tokens':0x0}}};yield _0xc0b01a;for await(const _0x39484a of _0xb17eba){if('reasoning'in _0x39484a){const _0x5624e4=_0x39484a;if(!_0x3d8730){const _0x5a3b84={'type':'content_block_start','index':_0x52986e,'content_block':{'type':_0x192c57(0x149),'thinking':''}};yield _0x5a3b84,_0x3d8730=!![],_0x5acf0a=_0x192c57(0x149);}const _0x4fdc3b={'type':_0x192c57(0x13b),'index':_0x52986e,'delta':{'type':_0x192c57(0xf8),'thinking':_0x5624e4[_0x192c57(0xef)]}};yield _0x4fdc3b,_0x1a69e7+=estimateTokenCount(_0x5624e4[_0x192c57(0xef)]);}else{if(_0x192c57(0x11b)in _0x39484a){const _0x2d83fb=_0x39484a;if(_0x3d8730&&_0x5acf0a==='thinking'){const _0x11520d={'type':_0x192c57(0x122),'index':_0x52986e};yield _0x11520d,_0x52986e++,_0x3d8730=![],_0x5acf0a=null;}_0x3a1a4b+=_0x2d83fb[_0x192c57(0x11b)];const _0x558999=_0x3a1a4b[_0x192c57(0xf2)](_0x192c57(0x10a)),_0x2d29ad=_0x3a1a4b['indexOf'](_0x192c57(0x119)),_0x536270=[_0x558999,_0x2d29ad][_0x192c57(0x154)](_0x45f6ff=>_0x45f6ff!==-0x1),_0x225748=_0x536270[_0x192c57(0xfe)]>0x0?Math[_0x192c57(0xfd)](..._0x536270):-0x1;if(_0x225748!==-0x1){const _0x35fdfc=[];let _0x541d92=0x0;while(!![]){const _0x3b7672=_0x3a1a4b[_0x192c57(0xf6)](_0x541d92),_0x4c30ce=parseToolCallFromText(_0x3b7672,_0x1279d1);if(!_0x4c30ce)break;_0x35fdfc['push']({'id':_0x4c30ce['id'],'name':_0x4c30ce[_0x192c57(0xea)],'input':_0x4c30ce[_0x192c57(0x14a)],'startIndex':_0x541d92+_0x4c30ce['startIndex'],'endIndex':_0x541d92+_0x4c30ce[_0x192c57(0x13c)]}),_0x541d92+=_0x4c30ce[_0x192c57(0x13c)];}if(_0x35fdfc[_0x192c57(0xfe)]>0x0){const _0x1b9b3e=_0x35fdfc[_0x35fdfc[_0x192c57(0xfe)]-0x1];_0x5e1251=!![];if(_0x35fdfc[_0x192c57(0xfe)]>0x1){const _0x2fb421=_0x35fdfc[_0x192c57(0x155)](0x0,-0x1)['map'](_0x299708=>_0x299708[_0x192c57(0xea)]);_0x1279d1?.['warn'](_0x192c57(0x132)+_0x35fdfc[_0x192c57(0xfe)]+_0x192c57(0x118)+(_0x192c57(0x138)+_0x1b9b3e[_0x192c57(0xea)]+').\x20Ignored:\x20'+_0x2fb421[_0x192c57(0xeb)](',\x20')));}else _0x1279d1?.[_0x192c57(0x130)]('Tool\x20call\x20detected:\x20'+_0x1b9b3e[_0x192c57(0xea)]);const _0x5332b9=_0x3a1a4b[_0x192c57(0xf6)](_0x535f38,_0x1b9b3e[_0x192c57(0x14d)])[_0x192c57(0xf7)]();if(_0x5332b9){if(!_0x3d8730){const _0x305689={'type':_0x192c57(0x156),'index':_0x52986e,'content_block':{'type':_0x192c57(0x145),'text':''}};yield _0x305689,_0x3d8730=!![],_0x5acf0a='text';}const _0x42161c={'type':_0x192c57(0x13b),'index':_0x52986e,'delta':{'type':'text_delta','text':_0x5332b9}};yield _0x42161c,_0x1a69e7+=estimateTokenCount(_0x5332b9);}if(_0x3d8730){const _0x477e23={'type':_0x192c57(0x122),'index':_0x52986e};yield _0x477e23,_0x52986e++,_0x3d8730=![],_0x5acf0a=null;}for(const _0x182475 of generateToolCallEvents(_0x1b9b3e,_0x52986e,_0xbcb65e)){_0x182475[_0x192c57(0x136)]==='message_delta'&&(_0x182475[_0x192c57(0x123)]['output_tokens']=_0x1a69e7),yield _0x182475;}return;}const _0x1d7784=_0x3a1a4b['includes']('<tool_use')&&_0x3a1a4b['includes'](_0x192c57(0x105)),_0x112b92=_0x3a1a4b[_0x192c57(0x159)](_0x192c57(0x119))&&findJsonEndIndex(_0x3a1a4b,_0x3a1a4b['indexOf']('{\x22tool_use\x22:'))!==-0x1;if(_0x1d7784||_0x112b92){_0x5e1251=!![];let _0x95f41a='';if(_0x1d7784){const _0xc20c48=_0x3a1a4b[_0x192c57(0xf2)]('<tool_use'),_0x1ebd33=_0x3a1a4b[_0x192c57(0xf2)]('</tool_use>',_0xc20c48);_0x1ebd33!==-0x1?_0x95f41a=_0x3a1a4b['substring'](_0xc20c48,_0x1ebd33+_0x192c57(0x105)[_0x192c57(0xfe)]):_0x95f41a=_0x3a1a4b[_0x192c57(0xf6)](_0xc20c48);}else{if(_0x112b92){const _0x33f74c=_0x3a1a4b[_0x192c57(0xf2)]('{\x22tool_use\x22:'),_0x39a86b=findJsonEndIndex(_0x3a1a4b,_0x33f74c);_0x39a86b!==-0x1?_0x95f41a=_0x3a1a4b[_0x192c57(0xf6)](_0x33f74c,_0x39a86b):_0x95f41a=_0x3a1a4b['substring'](_0x33f74c);}}_0x1279d1&&_0x1279d1[_0x192c57(0x128)](_0x192c57(0x125)+_0x95f41a);_0x1279d1?.[_0x192c57(0x130)](_0x192c57(0x113)),_0x1279d1?.['debug'](_0x192c57(0x133),_0x95f41a);const _0x4924c5=_0x3a1a4b[_0x192c57(0xf6)](_0x535f38,_0x225748)[_0x192c57(0xf7)]();if(_0x4924c5){if(!_0x3d8730){const _0x1a0c08={'type':'content_block_start','index':_0x52986e,'content_block':{'type':_0x192c57(0x145),'text':''}};yield _0x1a0c08,_0x3d8730=!![],_0x5acf0a='text';}const _0x221e30={'type':_0x192c57(0x13b),'index':_0x52986e,'delta':{'type':_0x192c57(0x152),'text':_0x4924c5}};yield _0x221e30,_0x1a69e7+=estimateTokenCount(_0x4924c5);}if(_0x3d8730){const _0x16b502={'type':_0x192c57(0x122),'index':_0x52986e};yield _0x16b502,_0x52986e++,_0x3d8730=![],_0x5acf0a=null;}const _0x357d05=_0x192c57(0x12f)+_0x95f41a+_0x192c57(0xee),_0x42fb4d={'type':_0x192c57(0x156),'index':_0x52986e,'content_block':{'type':_0x192c57(0x145),'text':''}};yield _0x42fb4d,_0x5acf0a=_0x192c57(0x145);const _0x487189={'type':'content_block_delta','index':_0x52986e,'delta':{'type':_0x192c57(0x152),'text':_0x357d05}};yield _0x487189;const _0x115f7f={'type':_0x192c57(0x122),'index':_0x52986e};yield _0x115f7f;const _0x153e5a={'type':_0x192c57(0x11f),'delta':{'stop_reason':'end_turn','stop_sequence':null},'usage':{'input_tokens':_0xbcb65e,'output_tokens':_0x1a69e7}};yield _0x153e5a;const _0x5b4247={'type':_0x192c57(0xf4)};yield _0x5b4247;return;}const _0x38d6d0=_0x3a1a4b[_0x192c57(0xf6)](_0x535f38,_0x225748);if(_0x38d6d0){if(!_0x3d8730){const _0x910b8b={'type':_0x192c57(0x156),'index':_0x52986e,'content_block':{'type':'text','text':''}};yield _0x910b8b,_0x3d8730=!![],_0x5acf0a=_0x192c57(0x145);}const _0xa58d2f={'type':_0x192c57(0x13b),'index':_0x52986e,'delta':{'type':_0x192c57(0x152),'text':_0x38d6d0}};yield _0xa58d2f,_0x1a69e7+=estimateTokenCount(_0x38d6d0),_0x535f38=_0x225748;}continue;}const _0x133bbb=_0x3a1a4b[_0x192c57(0xfe)]-_0x52d478;if(_0x133bbb>_0x535f38){const _0x50c179=_0x3a1a4b[_0x192c57(0xf6)](_0x535f38,_0x133bbb);if(_0x50c179){if(!_0x3d8730){const _0x2ffedf={'type':'content_block_start','index':_0x52986e,'content_block':{'type':'text','text':''}};yield _0x2ffedf,_0x3d8730=!![],_0x5acf0a=_0x192c57(0x145);}const _0x4eadda={'type':_0x192c57(0x13b),'index':_0x52986e,'delta':{'type':_0x192c57(0x152),'text':_0x50c179}};yield _0x4eadda,_0x1a69e7+=estimateTokenCount(_0x50c179),_0x535f38=_0x133bbb;}}}else{if(_0x192c57(0x128)in _0x39484a){const _0x4316e9=_0x39484a,_0x422103=determineErrorType(_0x4316e9['error'],_0x1279d1),_0x7c4999=_0x422103===_0x192c57(0x117)?'model_context_window_exceeded':_0x192c57(0xf5),_0x502e84={'type':_0x192c57(0x11f),'delta':{'stop_reason':_0x7c4999,'stop_sequence':null},'usage':{'input_tokens':_0xbcb65e,'output_tokens':_0x1a69e7}};yield _0x502e84,yield{'type':'error','error':{'type':_0x422103,'message':_0x4316e9[_0x192c57(0x128)]},'request_id':_0x3d4d37};const _0x44cabb={'type':_0x192c57(0xf4)};yield _0x44cabb;return;}}}}if(!_0x5e1251){const _0x234934=_0x3a1a4b[_0x192c57(0xf6)](_0x535f38);if(_0x234934){if(!_0x3d8730){const _0x2f081b={'type':_0x192c57(0x156),'index':_0x52986e,'content_block':{'type':'text','text':''}};yield _0x2f081b,_0x3d8730=!![],_0x5acf0a='text';}const _0x348176={'type':_0x192c57(0x13b),'index':_0x52986e,'delta':{'type':_0x192c57(0x152),'text':_0x234934}};yield _0x348176,_0x1a69e7+=estimateTokenCount(_0x234934);}if(_0x3d8730){const _0x26eed3={'type':_0x192c57(0x122),'index':_0x52986e};yield _0x26eed3;}const _0xf49697={'type':_0x192c57(0x11f),'delta':{'stop_reason':'end_turn','stop_sequence':null},'usage':{'input_tokens':_0xbcb65e,'output_tokens':_0x1a69e7}};yield _0xf49697;const _0x32bcdc={'type':'message_stop'};yield _0x32bcdc;}}export{generateMessageId};
|
|
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 +1 @@
|
|
|
1
|
-
(function(_0x3d9b1d,_0x2212f0){const _0x37d73a=a55_0x39e1,_0xf7bd5c=_0x3d9b1d();while(!![]){try{const _0x1c83b8=-parseInt(_0x37d73a(0x1b5))/0x1+-parseInt(_0x37d73a(0x186))/0x2+parseInt(_0x37d73a(0x1a7))/0x3+parseInt(_0x37d73a(0x198))/0x4*(parseInt(_0x37d73a(0x18c))/0x5)+parseInt(_0x37d73a(0x1b6))/0x6*(parseInt(_0x37d73a(0x1aa))/0x7)+parseInt(_0x37d73a(0x1a1))/0x8*(parseInt(_0x37d73a(0x17b))/0x9)+-parseInt(_0x37d73a(0x1a0))/0xa*(parseInt(_0x37d73a(0x1b2))/0xb);if(_0x1c83b8===_0x2212f0)break;else _0xf7bd5c['push'](_0xf7bd5c['shift']());}catch(_0x108350){_0xf7bd5c['push'](_0xf7bd5c['shift']());}}}(a55_0x2025,0xcb443));import{readFile,writeFile,appendFile,mkdir,readdir,stat}from'node:fs/promises';function a55_0x39e1(_0x5e8f45,_0x126161){_0x5e8f45=_0x5e8f45-0x17b;const _0x2025f1=a55_0x2025();let _0x39e17f=_0x2025f1[_0x5e8f45];return _0x39e17f;}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 _0x1f823f=a55_0x39e1;return!usageLogger&&(usageLogger=new TDXLogger(LogLevel[_0x1f823f(0x192)],!![]),await usageLogger[_0x1f823f(0x19b)]()),usageLogger;}function getUsageDir(){const _0x489019=a55_0x39e1;return join(homedir(),_0x489019(0x187),_0x489019(0x1b0),_0x489019(0x190));}function sanitizeSessionId(_0x3f4e2e){const _0xb2e608=a55_0x39e1;return _0x3f4e2e[_0xb2e608(0x188)](/[^a-zA-Z0-9_-]/g,'_');}function getSafeJsonlPath(_0x1f62e3){const _0x2cf516=a55_0x39e1,_0x4d5bdf=getUsageDir(),_0x5033df=sanitizeSessionId(_0x1f62e3),_0x29294a=resolve(_0x4d5bdf,_0x5033df+'.jsonl');if(!_0x29294a[_0x2cf516(0x1b1)](_0x4d5bdf))throw new Error('Invalid\x20session\x20ID:\x20path\x20traversal\x20detected');return _0x29294a;}function getStatsCachePath(){const _0x3f5346=a55_0x39e1;return join(getUsageDir(),_0x3f5346(0x197));}async function ensureUsageDir(){const _0x30924b=getUsageDir();!existsSync(_0x30924b)&&await mkdir(_0x30924b,{'recursive':!![]});}export async function appendUsageEntry(_0x426df6,_0x2972d0){const _0x10e77f=a55_0x39e1,_0x4660f9=sanitizeSessionId(_0x426df6);await ensureUsageDir();const _0x2f9949=getSafeJsonlPath(_0x4660f9),_0xa9915e=JSON[_0x10e77f(0x180)](_0x2972d0)+'\x0a';await appendFile(_0x2f9949,_0xa9915e,_0x10e77f(0x1a8));}async function readSessionJsonl(_0x5aa064){const _0x5d2e63=a55_0x39e1,_0x52beef=getSafeJsonlPath(_0x5aa064);if(!existsSync(_0x52beef))return[];try{const _0x20754c=await readFile(_0x52beef,_0x5d2e63(0x1a8)),_0x4c2785=_0x20754c[_0x5d2e63(0x17f)]()[_0x5d2e63(0x199)]('\x0a')[_0x5d2e63(0x17d)](Boolean);return _0x4c2785[_0x5d2e63(0x1ac)](_0x54c7ff=>{const _0x2ab081=_0x5d2e63;try{return JSON[_0x2ab081(0x1af)](_0x54c7ff);}catch{return null;}})[_0x5d2e63(0x17d)](_0x3c195d=>_0x3c195d!==null);}catch(_0x40a2e4){const _0x1d96db=await getLogger();return _0x1d96db[_0x5d2e63(0x19a)](_0x5d2e63(0x185)+_0x5aa064+_0x5d2e63(0x1a4),_0x40a2e4 instanceof Error?_0x40a2e4['message']:String(_0x40a2e4)),[];}}async function getAllSessionFiles(){const _0x492446=a55_0x39e1,_0x4cc536=getUsageDir();if(!existsSync(_0x4cc536))return[];try{const _0x1a20a4=await readdir(_0x4cc536);return _0x1a20a4['filter'](_0x52ae53=>_0x52ae53['endsWith'](_0x492446(0x18e)))['map'](_0x796b58=>_0x796b58['replace']('.jsonl',''));}catch(_0x44474b){const _0x51da50=await getLogger();return _0x51da50[_0x492446(0x19a)]('Failed\x20to\x20read\x20usage\x20directory:',_0x44474b instanceof Error?_0x44474b[_0x492446(0x1b3)]:String(_0x44474b)),[];}}async function readStatsCache(){const _0x3a6c75=a55_0x39e1,_0x484ab1=getStatsCachePath();if(!existsSync(_0x484ab1))return null;try{const _0xf87637=await readFile(_0x484ab1,_0x3a6c75(0x1a8));return JSON['parse'](_0xf87637);}catch{return null;}}async function writeStatsCache(_0x345e21){const _0x4adee2=a55_0x39e1;await ensureUsageDir();const _0x5801e6=getStatsCachePath();await writeFile(_0x5801e6,JSON[_0x4adee2(0x180)](_0x345e21,null,0x2),_0x4adee2(0x1a8));}async function isCacheUpToDate(_0x36c396,_0x1e549e){const _0x5c36c4=a55_0x39e1,_0x15a579=_0x36c396[_0x5c36c4(0x17c)][_0x1e549e];if(!_0x15a579)return![];const _0x333c23=getSafeJsonlPath(_0x1e549e);if(!existsSync(_0x333c23))return!![];try{const _0x3cc774=await stat(_0x333c23),_0x343230=new Date(_0x15a579[_0x5c36c4(0x18b)])['getTime'](),_0x99941c=_0x3cc774[_0x5c36c4(0x189)][_0x5c36c4(0x19d)]();return _0x343230>_0x99941c;}catch{return![];}}export async function rebuildCache(){const _0x5b66d4=a55_0x39e1,_0x5d2fa4=new Date(),_0x4253a3=_0x5d2fa4[_0x5b66d4(0x181)]()[_0x5b66d4(0x1a3)](0x0,0xa),_0xd9aff5=_0x5d2fa4[_0x5b66d4(0x181)]()[_0x5b66d4(0x1a3)](0x0,0x7),_0x1c670c={'daily':{},'monthly':{},'sessions':{},'profiles':{},'lastRebuiltAt':_0x5d2fa4[_0x5b66d4(0x181)]()},_0x47f942=await getAllSessionFiles();for(const _0x5e9732 of _0x47f942){try{const _0x3dfd73=await readSessionJsonl(_0x5e9732);if(_0x3dfd73[_0x5b66d4(0x1a5)]===0x0)continue;let _0x3d2de5=0x0;const _0x51b56c={};let _0x561ba6='';for(const _0x3b932e of _0x3dfd73){const _0x1108ba=getModelFactor(_0x3b932e[_0x5b66d4(0x17e)]),_0x1b2899=calculateChatUnit(_0x3b932e['inputTokens'],_0x3b932e['outputTokens'],_0x1108ba);_0x3d2de5+=_0x1b2899;const _0x418de5=_0x3b932e['contextSignature']||_0x5b66d4(0x184);_0x51b56c[_0x418de5]=_0x3b932e[_0x5b66d4(0x18d)];_0x3b932e[_0x5b66d4(0x1ae)]>_0x561ba6&&(_0x561ba6=_0x3b932e[_0x5b66d4(0x1ae)]);const _0x5f2e88=_0x3b932e['timestamp'][_0x5b66d4(0x1a3)](0x0,0xa);!_0x1c670c[_0x5b66d4(0x196)][_0x5f2e88]&&(_0x1c670c[_0x5b66d4(0x196)][_0x5f2e88]={'totalChatUnits':0x0,'entryCount':0x0});_0x1c670c['daily'][_0x5f2e88][_0x5b66d4(0x18f)]+=_0x1b2899,_0x1c670c[_0x5b66d4(0x196)][_0x5f2e88]['entryCount']+=0x1;const _0x1987bc=_0x3b932e['timestamp'][_0x5b66d4(0x1a3)](0x0,0x7);!_0x1c670c[_0x5b66d4(0x1a6)][_0x1987bc]&&(_0x1c670c['monthly'][_0x1987bc]={'totalChatUnits':0x0,'entryCount':0x0});_0x1c670c[_0x5b66d4(0x1a6)][_0x1987bc][_0x5b66d4(0x18f)]+=_0x1b2899,_0x1c670c[_0x5b66d4(0x1a6)][_0x1987bc][_0x5b66d4(0x183)]+=0x1;const _0x208b88=_0x3b932e[_0x5b66d4(0x1b8)]||_0x5b66d4(0x184);!_0x1c670c[_0x5b66d4(0x1a9)][_0x208b88]&&(_0x1c670c[_0x5b66d4(0x1a9)][_0x208b88]={'totalChatUnits':0x0,'entryCount':0x0,'lastUsedAt':'','todayChatUnits':0x0,'todayDate':_0x4253a3,'monthChatUnits':0x0,'month':_0xd9aff5}),_0x1c670c[_0x5b66d4(0x1a9)][_0x208b88][_0x5b66d4(0x18f)]+=_0x1b2899,_0x1c670c[_0x5b66d4(0x1a9)][_0x208b88][_0x5b66d4(0x183)]+=0x1,_0x3b932e[_0x5b66d4(0x1ae)]>_0x1c670c[_0x5b66d4(0x1a9)][_0x208b88][_0x5b66d4(0x18a)]&&(_0x1c670c[_0x5b66d4(0x1a9)][_0x208b88][_0x5b66d4(0x18a)]=_0x3b932e['timestamp']),_0x5f2e88===_0x4253a3&&(_0x1c670c[_0x5b66d4(0x1a9)][_0x208b88][_0x5b66d4(0x1b7)]+=_0x1b2899),_0x1987bc===_0xd9aff5&&(_0x1c670c[_0x5b66d4(0x1a9)][_0x208b88]['monthChatUnits']+=_0x1b2899);}_0x1c670c[_0x5b66d4(0x17c)][_0x5e9732]={'totalChatUnits':_0x3d2de5,'latestInputTokensByContext':_0x51b56c,'createdAt':_0x3dfd73[0x0]['timestamp'],'lastUpdatedAt':_0x561ba6};}catch(_0x5d284b){const _0x462e9f=await getLogger();_0x462e9f['warn'](_0x5b66d4(0x19e)+_0x5e9732+':',_0x5d284b instanceof Error?_0x5d284b[_0x5b66d4(0x1b3)]:String(_0x5d284b));continue;}}return cleanupOldEntries(_0x1c670c),await writeStatsCache(_0x1c670c),_0x1c670c;}function cleanupOldEntries(_0x39d685){const _0x98bbb1=a55_0x39e1,_0x37c70d=new Date(),_0x21f11e=new Date(_0x37c70d[_0x98bbb1(0x19d)]()-0x7*0x18*0x3c*0x3c*0x3e8);for(const _0x4f3644 of Object['keys'](_0x39d685[_0x98bbb1(0x196)])){new Date(_0x4f3644)<_0x21f11e&&delete _0x39d685[_0x98bbb1(0x196)][_0x4f3644];}const _0x514cfb=new Date(_0x37c70d['getFullYear']()-0x1,_0x37c70d[_0x98bbb1(0x194)](),0x1);for(const _0x43f82b of Object['keys'](_0x39d685['monthly'])){const [_0xbeae4b,_0x213552]=_0x43f82b['split']('-')['map'](Number),_0x560dd0=new Date(_0xbeae4b,_0x213552-0x1,0x1);_0x560dd0<_0x514cfb&&delete _0x39d685[_0x98bbb1(0x1a6)][_0x43f82b];}const _0x4c9922=new Date(_0x37c70d['getTime']()-0x1e*0x18*0x3c*0x3c*0x3e8);for(const [_0x451d00,_0x3d4f6d]of Object[_0x98bbb1(0x195)](_0x39d685[_0x98bbb1(0x17c)])){new Date(_0x3d4f6d[_0x98bbb1(0x18b)])<_0x4c9922&&delete _0x39d685['sessions'][_0x451d00];}}function a55_0x2025(){const _0x5f3981=['.jsonl','totalChatUnits','claude-usage','object','WARN','latestInputTokensByContext','getMonth','entries','daily','stats-cache.json','4SHZgzh','split','warn','init','todayDate','getTime','Failed\x20to\x20process\x20session\x20','month','10QmhRBs','347752vHCFmf','credits','slice','.jsonl:','length','monthly','4307022tllYaT','utf-8','profiles','14cPUnVB','sort','map','values','timestamp','parse','tdx','startsWith','11695277qVZoSb','message','reduce','1019991MiTIzo','1386006JgENeY','todayChatUnits','profile','189CgBwBr','sessions','filter','model','trim','stringify','toISOString','monthChatUnits','entryCount','default','Failed\x20to\x20read\x20usage\x20file\x20','1172818RoBoAL','.cache','replace','mtime','lastUsedAt','lastUpdatedAt','3458305grCRsw','inputTokens'];a55_0x2025=function(){return _0x5f3981;};return a55_0x2025();}export async function getOrUpdateCache(_0x1c1183){const _0x10d9d8=_0x1c1183?sanitizeSessionId(_0x1c1183):undefined,_0x2e4cc1=await readStatsCache();if(!_0x2e4cc1)return rebuildCache();if(_0x10d9d8){const _0x1b84bb=await isCacheUpToDate(_0x2e4cc1,_0x10d9d8);if(!_0x1b84bb)return rebuildCache();}return _0x2e4cc1;}export async function getSessionCredits(_0x1fa598){const _0x1acc0b=a55_0x39e1,_0x359066=sanitizeSessionId(_0x1fa598),_0x54050b=await getOrUpdateCache(_0x359066),_0x26d9e4=_0x54050b[_0x1acc0b(0x17c)][_0x359066];if(!_0x26d9e4)return 0x0;return calculateCredits(_0x26d9e4['totalChatUnits']);}export async function getTodayCredits(){const _0x109bc9=a55_0x39e1,_0x38c603=await getOrUpdateCache(),_0x1dfbf3=new Date()[_0x109bc9(0x181)]()['slice'](0x0,0xa),_0x2fb05d=_0x38c603[_0x109bc9(0x196)][_0x1dfbf3];if(!_0x2fb05d)return 0x0;return calculateCredits(_0x2fb05d[_0x109bc9(0x18f)]);}export async function getMonthCredits(){const _0x1fa5f6=a55_0x39e1,_0x2d8398=await getOrUpdateCache(),_0x272166=new Date()[_0x1fa5f6(0x181)]()[_0x1fa5f6(0x1a3)](0x0,0x7),_0x239941=_0x2d8398[_0x1fa5f6(0x1a6)][_0x272166];if(!_0x239941)return 0x0;return calculateCredits(_0x239941['totalChatUnits']);}export async function getSessionStats(_0x4490f3){const _0x43c7a2=a55_0x39e1,_0x1fe0ec=sanitizeSessionId(_0x4490f3),_0x4dfc04=await getOrUpdateCache(_0x1fe0ec);return _0x4dfc04[_0x43c7a2(0x17c)][_0x1fe0ec]||null;}function getMaxLatestInputTokens(_0x33a942){const _0x210d9b=a55_0x39e1,_0x4b5b99=Object[_0x210d9b(0x1ad)](_0x33a942);if(_0x4b5b99[_0x210d9b(0x1a5)]===0x0)return 0x0;return Math['max'](..._0x4b5b99);}export async function getUsageStats(_0x8b05b,_0x23a938){const _0x58d1e6=a55_0x39e1,_0x279a33=sanitizeSessionId(_0x8b05b),_0x97711b=await getOrUpdateCache(_0x279a33),_0x5378c1=_0x97711b[_0x58d1e6(0x17c)][_0x279a33],_0x40a7d1=new Date()['toISOString']()[_0x58d1e6(0x1a3)](0x0,0xa),_0x487ac1=new Date()[_0x58d1e6(0x181)]()[_0x58d1e6(0x1a3)](0x0,0x7);if(_0x23a938){const _0x56fd3b=_0x97711b['profiles']?.[_0x23a938],_0x4c9618=_0x56fd3b?.[_0x58d1e6(0x19c)]===_0x40a7d1?calculateCredits(_0x56fd3b[_0x58d1e6(0x1b7)]):0x0,_0x552420=_0x56fd3b?.[_0x58d1e6(0x19f)]===_0x487ac1?calculateCredits(_0x56fd3b[_0x58d1e6(0x182)]):0x0;return{'sessionCredits':_0x5378c1?calculateCredits(_0x5378c1['totalChatUnits']):0x0,'todayCredits':_0x4c9618,'monthCredits':_0x552420,'latestInputTokens':_0x5378c1?getMaxLatestInputTokens(_0x5378c1[_0x58d1e6(0x193)]):0x0};}return{'sessionCredits':_0x5378c1?calculateCredits(_0x5378c1[_0x58d1e6(0x18f)]):0x0,'todayCredits':_0x97711b['daily'][_0x40a7d1]?calculateCredits(_0x97711b[_0x58d1e6(0x196)][_0x40a7d1][_0x58d1e6(0x18f)]):0x0,'monthCredits':_0x97711b[_0x58d1e6(0x1a6)][_0x487ac1]?calculateCredits(_0x97711b[_0x58d1e6(0x1a6)][_0x487ac1][_0x58d1e6(0x18f)]):0x0,'latestInputTokens':_0x5378c1?getMaxLatestInputTokens(_0x5378c1[_0x58d1e6(0x193)]):0x0};}export async function getAllProfileStats(){const _0x488fa8=a55_0x39e1,_0x421879=await getOrUpdateCache(),_0x55f228=_0x421879[_0x488fa8(0x1a9)]||{};return Object[_0x488fa8(0x195)](_0x55f228)[_0x488fa8(0x17d)](([,_0xcab94a])=>_0xcab94a&&typeof _0xcab94a===_0x488fa8(0x191))['map'](([_0x5bcde6,_0x1cd85e])=>({'profile':_0x5bcde6,'credits':calculateCredits(_0x1cd85e[_0x488fa8(0x18f)]||0x0),'entryCount':_0x1cd85e[_0x488fa8(0x183)]||0x0,'lastUsedAt':_0x1cd85e[_0x488fa8(0x18a)]||''}))[_0x488fa8(0x1ab)]((_0x5e5dcf,_0x27d65f)=>_0x27d65f[_0x488fa8(0x1a2)]-_0x5e5dcf[_0x488fa8(0x1a2)]);}export async function getUsageSummary(){const _0x33917e=a55_0x39e1,_0xa1308e=await getOrUpdateCache(),_0x2fc530=_0xa1308e['profiles']||{},_0xa3b044=new Date()['toISOString']()[_0x33917e(0x1a3)](0x0,0xa),_0xa16521=new Date()['toISOString']()['slice'](0x0,0x7),_0x43b832=Object['values'](_0x2fc530)['filter'](_0x55c063=>_0x55c063&&typeof _0x55c063===_0x33917e(0x191)),_0x1f4968=_0x43b832[_0x33917e(0x1b4)]((_0x4115cf,_0x58eeae)=>_0x4115cf+(_0x58eeae[_0x33917e(0x18f)]||0x0),0x0);return{'todayCredits':_0xa1308e[_0x33917e(0x196)][_0xa3b044]?calculateCredits(_0xa1308e[_0x33917e(0x196)][_0xa3b044][_0x33917e(0x18f)]||0x0):0x0,'monthCredits':_0xa1308e[_0x33917e(0x1a6)][_0xa16521]?calculateCredits(_0xa1308e[_0x33917e(0x1a6)][_0xa16521][_0x33917e(0x18f)]||0x0):0x0,'totalCredits':calculateCredits(_0x1f4968),'profileCount':_0x43b832[_0x33917e(0x1a5)]};}
|
|
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 +1 @@
|
|
|
1
|
-
(function(
|
|
1
|
+
(function(_0x40e4e3,_0x23dba6){const _0x351180=a56_0x4357,_0x5c7c0e=_0x40e4e3();while(!![]){try{const _0x1da2c2=parseInt(_0x351180(0x14e))/0x1*(-parseInt(_0x351180(0x15f))/0x2)+parseInt(_0x351180(0x15b))/0x3*(parseInt(_0x351180(0x15e))/0x4)+-parseInt(_0x351180(0x150))/0x5*(-parseInt(_0x351180(0x159))/0x6)+-parseInt(_0x351180(0x14d))/0x7+-parseInt(_0x351180(0x151))/0x8*(parseInt(_0x351180(0x155))/0x9)+parseInt(_0x351180(0x154))/0xa*(parseInt(_0x351180(0x158))/0xb)+-parseInt(_0x351180(0x14a))/0xc;if(_0x1da2c2===_0x23dba6)break;else _0x5c7c0e['push'](_0x5c7c0e['shift']());}catch(_0x38f503){_0x5c7c0e['push'](_0x5c7c0e['shift']());}}}(a56_0xd9a9,0xb5d90));function a56_0xd9a9(){const _0x4e41c9=['94979eDwCrt','digest','23090lHrExb','24VEqzeo','name','localeCompare','23190cGDGwt','1001754zCZKeD','update','filter','1419bRIjsy','906wlDgIK','map','5496UoZaJi','keys','sort','3208KKYEuX','10raCoTK','stringify','sha256','8146764sBlXqf','substring','input_schema','1632225ifHHJw'];a56_0xd9a9=function(){return _0x4e41c9;};return a56_0xd9a9();}function a56_0x4357(_0x511a2f,_0x51dcec){_0x511a2f=_0x511a2f-0x149;const _0xd9a9ff=a56_0xd9a9();let _0x4357a1=_0xd9a9ff[_0x511a2f];return _0x4357a1;}import{createHash}from'crypto';import{extractModelAlias,resolveModelAlias}from'../sdk/llm/model-aliases.js';export function calculateContextSignature(_0x2ddb7f,_0x134de5,_0x454d1f,_0x166d49){const _0x542d83=a56_0x4357,_0x3fb392=extractModelAlias(_0x2ddb7f),_0x1d52c3=resolveModelAlias(_0x3fb392),_0x3e4a9c=[..._0x134de5||[]][_0x542d83(0x15d)](),_0x129277=(_0x454d1f||[])[_0x542d83(0x157)](_0x1a69f3=>_0x1a69f3!=null)[_0x542d83(0x15a)](_0x1abaa8=>({'name':_0x1abaa8[_0x542d83(0x152)],'params':Object[_0x542d83(0x15c)](_0x1abaa8[_0x542d83(0x14c)]?.['properties']||{})['sort'](),'required':(_0x1abaa8[_0x542d83(0x14c)]?.['required']||[])[_0x542d83(0x15d)]()}))['sort']((_0x34ccef,_0x293fbd)=>_0x34ccef['name'][_0x542d83(0x153)](_0x293fbd[_0x542d83(0x152)])),_0x1300ce=JSON[_0x542d83(0x160)]({'model':_0x1d52c3,'prompts':_0x3e4a9c,'tools':_0x129277,'reasoning':_0x166d49});return createHash(_0x542d83(0x149))[_0x542d83(0x156)](_0x1300ce)[_0x542d83(0x14f)]('hex')[_0x542d83(0x14b)](0x0,0x10);}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
(function(
|
|
1
|
+
(function(_0x3c21da,_0x130728){const _0x36ead6=a57_0x2643,_0x43f062=_0x3c21da();while(!![]){try{const _0x39283e=-parseInt(_0x36ead6(0xa6))/0x1+-parseInt(_0x36ead6(0x81))/0x2*(-parseInt(_0x36ead6(0xa5))/0x3)+parseInt(_0x36ead6(0x8c))/0x4+parseInt(_0x36ead6(0x9f))/0x5*(parseInt(_0x36ead6(0x93))/0x6)+parseInt(_0x36ead6(0x92))/0x7+parseInt(_0x36ead6(0x84))/0x8*(-parseInt(_0x36ead6(0x8f))/0x9)+parseInt(_0x36ead6(0x9b))/0xa*(-parseInt(_0x36ead6(0x98))/0xb);if(_0x39283e===_0x130728)break;else _0x43f062['push'](_0x43f062['shift']());}catch(_0x3f6744){_0x43f062['push'](_0x43f062['shift']());}}}(a57_0x28f0,0x4881a));export function formatConversationHistory(_0x5afa1c){const _0x5ef7a5=a57_0x2643;if(!_0x5afa1c||!Array[_0x5ef7a5(0x96)](_0x5afa1c))return'';const _0x2361c=_0x5afa1c['filter'](_0x3f5f7a=>_0x3f5f7a!=null)[_0x5ef7a5(0xa2)](_0x2e4601=>{const _0x1f3fcb=_0x5ef7a5,_0x5cd879=[],_0x9fc07a=[];if(_0x2e4601['content']!=null&&Array[_0x1f3fcb(0x96)](_0x2e4601[_0x1f3fcb(0xa8)]))for(const _0x3e607a of _0x2e4601[_0x1f3fcb(0xa8)]){if(!_0x3e607a)continue;if(_0x3e607a[_0x1f3fcb(0x90)]===_0x1f3fcb(0x9a)&&_0x3e607a[_0x1f3fcb(0x9a)])_0x5cd879[_0x1f3fcb(0x9d)](_0x3e607a[_0x1f3fcb(0x9a)]);else{if(_0x3e607a['type']===_0x1f3fcb(0x97)&&_0x3e607a[_0x1f3fcb(0x89)]){const _0x5ea739=_0x3e607a[_0x1f3fcb(0x82)]?JSON['stringify'](_0x3e607a[_0x1f3fcb(0x82)]):'{}';_0x9fc07a[_0x1f3fcb(0x9d)]('<tool_use\x20name=\x22'+_0x3e607a[_0x1f3fcb(0x89)]+_0x1f3fcb(0xa4)+(_0x3e607a['id']||'unknown')+_0x1f3fcb(0x9e)+_0x5ea739+_0x1f3fcb(0x91));}else{if(_0x3e607a['type']===_0x1f3fcb(0x8d)&&_0x3e607a[_0x1f3fcb(0xa3)]){let _0x466872='';if(typeof _0x3e607a[_0x1f3fcb(0xa8)]===_0x1f3fcb(0x88))_0x466872=_0x3e607a[_0x1f3fcb(0xa8)];else _0x3e607a[_0x1f3fcb(0xa8)]!=null&&Array[_0x1f3fcb(0x96)](_0x3e607a[_0x1f3fcb(0xa8)])&&(_0x466872=_0x3e607a['content'][_0x1f3fcb(0x9c)](_0x46520a=>_0x46520a&&_0x46520a[_0x1f3fcb(0x90)]===_0x1f3fcb(0x9a)&&_0x46520a['text'])['map'](_0x3e0c14=>_0x3e0c14[_0x1f3fcb(0x9a)])[_0x1f3fcb(0x8a)]('\x0a'));const _0x6299ad=_0x3e607a[_0x1f3fcb(0x99)]?_0x1f3fcb(0x94):'';_0x9fc07a['push'](_0x1f3fcb(0x85)+_0x3e607a[_0x1f3fcb(0xa3)]+'\x22'+_0x6299ad+']\x0a'+_0x466872);}}}}else typeof _0x2e4601[_0x1f3fcb(0xa8)]==='string'&&_0x2e4601[_0x1f3fcb(0xa8)]&&_0x5cd879[_0x1f3fcb(0x9d)](_0x2e4601[_0x1f3fcb(0xa8)]);if(_0x5cd879[_0x1f3fcb(0xa1)]===0x0&&_0x9fc07a[_0x1f3fcb(0xa1)]===0x0)return null;const _0x590ae3=_0x2e4601[_0x1f3fcb(0x95)]==='user'?'[user]':_0x1f3fcb(0xa7),_0x17c451=[];return(_0x5cd879['length']>0x0||_0x2e4601[_0x1f3fcb(0x95)]===_0x1f3fcb(0x8e)&&_0x9fc07a[_0x1f3fcb(0xa1)]>0x0)&&_0x17c451[_0x1f3fcb(0x9d)](_0x590ae3+'\x0a'+_0x5cd879[_0x1f3fcb(0x8a)]('\x0a\x0a')),_0x17c451['push'](..._0x9fc07a),_0x17c451[_0x1f3fcb(0x8a)]('\x0a\x0a');})[_0x5ef7a5(0x9c)](_0x33014a=>_0x33014a!=null&&_0x33014a[_0x5ef7a5(0xa1)]>0x0)[_0x5ef7a5(0x8a)]('\x0a\x0a');return _0x2361c?_0x2361c+_0x5ef7a5(0x83):'';}export function calculateConversationDelta(_0x561573,_0x301d9f){const _0x574b2f=a57_0x2643;if(_0x301d9f[_0x574b2f(0xa1)]===0x0)return _0x561573;const _0x26aa34=_0x301d9f[_0x574b2f(0xa1)];return _0x561573[_0x574b2f(0xa0)](_0x26aa34);}function a57_0x28f0(){const _0x9acd09=['3925962WHxSaW','type','\x0a</tool_use>','4069884aDGqeC','4476meHsYN','\x20error=\x22true\x22','role','isArray','tool_use','924wTCSXS','is_error','text','48270bEDtLX','filter','push','\x22>\x0a','3965movfqg','slice','length','map','tool_use_id','\x22\x20id=\x22','6378lqKPVC','501785bCKvgq','[assistant]','content','82dWtDqv','input','\x0a\x0a[chat\x20history\x20end]','8UrnCGb','[tool_result\x20tool_use_id=\x22','message.content\x20must\x20be\x20a\x20string\x20or\x20array,\x20got:\x20','pop','string','name','join','user','1521204cYEFrI','tool_result','assistant'];a57_0x28f0=function(){return _0x9acd09;};return a57_0x28f0();}function a57_0x2643(_0x5f5a5c,_0x2c59a5){_0x5f5a5c=_0x5f5a5c-0x81;const _0x28f0bd=a57_0x28f0();let _0x2643ee=_0x28f0bd[_0x5f5a5c];return _0x2643ee;}export function extractLastUserMessage(_0x16379c,_0x2ad5d2){const _0x37dc50=a57_0x2643;let _0x358fe4=_0x16379c['filter'](_0x5241e1=>_0x5241e1['role']==='user')[_0x37dc50(0x87)]();if(!_0x358fe4){_0x358fe4=_0x2ad5d2[_0x37dc50(0x9c)](_0x590ced=>_0x590ced[_0x37dc50(0x95)]===_0x37dc50(0x8b))[_0x37dc50(0x87)]();if(!_0x358fe4)return{'message':null,'text':null,'error':'No\x20user\x20message\x20found\x20in\x20request'};}if(typeof _0x358fe4[_0x37dc50(0xa8)]===_0x37dc50(0x88))return{'message':_0x358fe4,'text':_0x358fe4[_0x37dc50(0xa8)],'error':null};if(_0x358fe4[_0x37dc50(0xa8)]!=null&&Array['isArray'](_0x358fe4[_0x37dc50(0xa8)])){const _0x1805a8=_0x358fe4[_0x37dc50(0xa8)][_0x37dc50(0x9c)](_0x420e70=>_0x420e70&&_0x420e70['type']==='text'&&_0x420e70['text'])['map'](_0x5f5114=>_0x5f5114[_0x37dc50(0x9a)])[_0x37dc50(0x8a)]('\x0a');return{'message':_0x358fe4,'text':_0x1805a8,'error':null};}return{'message':_0x358fe4,'text':null,'error':_0x37dc50(0x86)+typeof _0x358fe4[_0x37dc50(0xa8)]+'\x20'+_0x358fe4[_0x37dc50(0xa8)]};}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
function a58_0x377e(_0x11d055,_0x8d8eb1){_0x11d055=_0x11d055-0xf0;const _0x121e0a=a58_0x121e();let _0x377ef6=_0x121e0a[_0x11d055];return _0x377ef6;}const a58_0x1dfef1=a58_0x377e;(function(_0x4510b1,_0x59e0fb){const _0x48ce90=a58_0x377e,_0x4d3273=_0x4510b1();while(!![]){try{const _0x243788=parseInt(_0x48ce90(0x164))/0x1+parseInt(_0x48ce90(0xf0))/0x2*(parseInt(_0x48ce90(0x159))/0x3)+parseInt(_0x48ce90(0x13e))/0x4*(-parseInt(_0x48ce90(0x16a))/0x5)+parseInt(_0x48ce90(0x160))/0x6+-parseInt(_0x48ce90(0x109))/0x7*(-parseInt(_0x48ce90(0x162))/0x8)+-parseInt(_0x48ce90(0x12b))/0x9+-parseInt(_0x48ce90(0x16b))/0xa;if(_0x243788===_0x59e0fb)break;else _0x4d3273['push'](_0x4d3273['shift']());}catch(_0x4fd8a0){_0x4d3273['push'](_0x4d3273['shift']());}}}(a58_0x121e,0x621a4));import a58_0x5c7b40 from'fastify';import a58_0x5d3572 from'@fastify/cors';import{SSEUsageTracker}from'./sse-usage-parser.js';function a58_0x121e(){const _0x1e2804=['join','logger','keep-alive','text/event-stream','140724FHopiB','content-length','toISOString','parse','outputTokens','host','read','getReader','unknown','timeout_error','string','x-api-key','headers','system','cacheCreationInputTokens','model','Forwarding\x20to:\x20','writeHead','metadata','8YOPGvE','body','end','cacheReadInputTokens','setupJsonParser','stream_error','127.0.0.1','handleStreamingResponse','error','usage','GET',',\x20cache_read=','SKIP_HEADERS','[PASSTHROUGH]\x20Usage:\x20input=','setupMiddleware','isArray','profile','get','Failed\x20to\x20connect\x20to\x20TD\x20LLM\x20Proxy:\x20','TD\x20LLM\x20Pass-through\x20Proxy\x20Server',',\x20stream=','timeout','Content-Type','TimeoutError','text','default','post','3aficnN','apiKey','stream','handleMessages','stringify','message','raw','1981188WKBNCt','register','410344FxvwYA','X-TD-Client','751736qfRmxW','listen','llmProxyUrl','[PASSTHROUGH]\x20','application/json','inputTokens','430450YZgCeZ','17506470ZyIlYO','statusText','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|','Request\x20to\x20TD\x20LLM\x20Proxy\x20timed\x20out\x20after\x20','1593440XFvnlU','write','Authorization','/v1/messages','logUsage','close','name','output_tokens','[PASSTHROUGH]\x20Failed\x20to\x20forward\x20count_tokens\x20request:','debug','info','Error\x20body:\x20','OPTIONS','server',',\x20model=','port','X-TD-Client-Version','haiku','config','anthropic-version','send','transfer-encoding','stop','User-Agent','match','63KBotoO','startsWith','Pass-through\x20proxy\x20server\x20started\x20on\x20port\x20','entries','code','Unknown\x20error','no-cache','input_tokens','buildForwardHeaders','header','timeoutMs','event:\x20error\x0adata:\x20','[PASSTHROUGH]\x20Stream\x20error:','status','[PASSTHROUGH\x20PROXY\x20ERROR]:',':\x20messages=','setupRoutes','handleCountTokens','user_id','/v1/messages/count_tokens','api_error','setErrorHandler','decode','POST','messages','x-td-','cache_read_input_tokens','getUsage','Pass-through\x20proxy\x20server\x20stopped','connection'];a58_0x121e=function(){return _0x1e2804;};return a58_0x121e();}import{appendUsageEntry}from'./claude-usage-tracker.js';import{getVersion}from'../core/version.js';const DEFAULT_TIMEOUT_MS=0x5*0x3c*0x3e8,TDX_SYSTEM_PROMPT=a58_0x1dfef1(0x16d);function extractSessionUUID(_0x51a86b){const _0xe83910=a58_0x1dfef1,_0x57ecfc=_0x51a86b[_0xe83910(0x108)](/_session_([a-f0-9-]+)$/i);if(_0x57ecfc)return _0x57ecfc[0x1];return _0x51a86b;}export function injectSystemPrompt(_0xbfa244,_0x3dfe67){const _0x1c4692=a58_0x1dfef1,_0xa44124=_0xbfa244[_0x1c4692(0x138)];if(!_0xa44124)return{..._0xbfa244,'system':_0x3dfe67};if(typeof _0xa44124===_0x1c4692(0x135))return{..._0xbfa244,'system':_0x3dfe67+'\x0a\x0a'+_0xa44124};if(Array[_0x1c4692(0x14d)](_0xa44124)){const _0x440b75={'type':_0x1c4692(0x156),'text':_0x3dfe67};return{..._0xbfa244,'system':[_0x440b75,..._0xa44124]};}return _0xbfa244;}export function shouldInjectSystemPrompt(_0x4c03ad){const _0x288cd0=a58_0x1dfef1;return!_0x4c03ad['toLowerCase']()['includes'](_0x288cd0(0x101));}export class PassThroughProxyServer{['server'];[a58_0x1dfef1(0x102)];[a58_0x1dfef1(0x128)];constructor(_0x4755b6){const _0x3a2778=a58_0x1dfef1;this[_0x3a2778(0x102)]=_0x4755b6,this[_0x3a2778(0x128)]=_0x4755b6['logger'],this[_0x3a2778(0xfd)]=a58_0x5c7b40({'logger':![],'bodyLimit':0x40*0x400*0x400}),this[_0x3a2778(0x142)](),this[_0x3a2778(0x14c)](),this[_0x3a2778(0x119)]();}[a58_0x1dfef1(0x142)](){const _0x35c814=a58_0x1dfef1;this[_0x35c814(0xfd)]['addContentTypeParser']('application/json',{'parseAs':_0x35c814(0x135)},(_0x4b9e80,_0x5df74a,_0x1acfc1)=>{const _0x4e9126=_0x35c814;try{const _0x105f19=JSON[_0x4e9126(0x12e)](_0x5df74a);_0x1acfc1(null,_0x105f19);}catch(_0x7af03){_0x1acfc1(_0x7af03,undefined);}});}['setupMiddleware'](){const _0x1fd44a=a58_0x1dfef1;this[_0x1fd44a(0xfd)][_0x1fd44a(0x161)](a58_0x5d3572,{'origin':!![],'methods':[_0x1fd44a(0x148),_0x1fd44a(0x120),_0x1fd44a(0xfc)],'allowedHeaders':['Content-Type','Authorization',_0x1fd44a(0x103),_0x1fd44a(0x136)]}),this[_0x1fd44a(0xfd)][_0x1fd44a(0x11e)]((_0x56c78f,_0x407ac7,_0xe204d5)=>{const _0x4a771c=_0x1fd44a,_0x5bf6a5=_0x56c78f instanceof Error?_0x56c78f[_0x4a771c(0x15e)]:_0x4a771c(0x10e);this[_0x4a771c(0x128)]['error'](_0x4a771c(0x117),_0x56c78f),_0xe204d5[_0x4a771c(0x10d)](0x1f4)['send']({'type':_0x4a771c(0x146),'error':{'type':_0x4a771c(0x11d),'message':_0x5bf6a5}});});}[a58_0x1dfef1(0x119)](){const _0x52d703=a58_0x1dfef1;this[_0x52d703(0xfd)][_0x52d703(0x14f)]('/health',async()=>{const _0x51a99f=_0x52d703;return{'status':'ok','message':_0x51a99f(0x151)};}),this['server'][_0x52d703(0x158)]('/v1/messages',async(_0x23f11b,_0x47a95b)=>{const _0x4ac821=_0x52d703;return this[_0x4ac821(0x15c)](_0x23f11b,_0x47a95b);}),this['server']['post'](_0x52d703(0x11c),async(_0x46cf9e,_0x4fa890)=>{return this['handleCountTokens'](_0x46cf9e,_0x4fa890);});}static [a58_0x1dfef1(0x14a)]=new Set([a58_0x1dfef1(0x130),a58_0x1dfef1(0x126),a58_0x1dfef1(0x12c),a58_0x1dfef1(0x105),'authorization','x-api-key','user-agent']);['buildForwardHeaders'](_0x2d0708){const _0xb3dcc8=a58_0x1dfef1,_0x37e648={};for(const [_0x3fdaa0,_0x298b47]of Object[_0xb3dcc8(0x10c)](_0x2d0708[_0xb3dcc8(0x137)])){const _0x18acb9=_0x3fdaa0['toLowerCase']();if(PassThroughProxyServer[_0xb3dcc8(0x14a)]['has'](_0x18acb9))continue;if(_0x18acb9[_0xb3dcc8(0x10a)](_0xb3dcc8(0x122)))continue;if(typeof _0x298b47===_0xb3dcc8(0x135))_0x37e648[_0x3fdaa0]=_0x298b47;else Array[_0xb3dcc8(0x14d)](_0x298b47)&&(_0x37e648[_0x3fdaa0]=_0x298b47[_0xb3dcc8(0x127)](',\x20'));}const _0x5d45a7=getVersion();return _0x37e648[_0xb3dcc8(0xf2)]='TD1\x20'+this['config'][_0xb3dcc8(0x15a)],_0x37e648[_0xb3dcc8(0x107)]='tdx/'+_0x5d45a7,_0x37e648[_0xb3dcc8(0x163)]='tdx',_0x37e648[_0xb3dcc8(0x100)]=_0x5d45a7,_0x37e648;}async[a58_0x1dfef1(0x15c)](_0x12d933,_0x38afa5){const _0x28c2b7=a58_0x1dfef1,_0x29f125=_0x12d933[_0x28c2b7(0x13f)],_0x236b16=_0x29f125[_0x28c2b7(0x15b)]!==![],_0x25a29e=_0x29f125[_0x28c2b7(0x13d)],_0x5d6006=_0x25a29e?.[_0x28c2b7(0x11b)]||_0x28c2b7(0x157),_0x482600=extractSessionUUID(_0x5d6006),_0x5092db=_0x29f125[_0x28c2b7(0x13a)]||_0x28c2b7(0x133),_0x22b0e5=shouldInjectSystemPrompt(_0x5092db)?injectSystemPrompt(_0x29f125,TDX_SYSTEM_PROMPT):_0x29f125,_0x143089=JSON[_0x28c2b7(0x15d)](_0x22b0e5),_0x1aea6a=Array[_0x28c2b7(0x14d)](_0x29f125['messages'])?_0x29f125[_0x28c2b7(0x121)]['length']:0x0;this[_0x28c2b7(0x128)][_0x28c2b7(0xfa)](_0x28c2b7(0x167)+_0x12d933['method']+'\x20'+_0x12d933['url']+_0x28c2b7(0x118)+_0x1aea6a+_0x28c2b7(0xfe)+_0x5092db+_0x28c2b7(0x152)+_0x236b16);const _0x352cd0=this['config'][_0x28c2b7(0x166)]+_0x28c2b7(0xf3),_0x515b82=this[_0x28c2b7(0x111)](_0x12d933);this[_0x28c2b7(0x128)][_0x28c2b7(0xf9)](_0x28c2b7(0x13b)+_0x352cd0);const _0xfc01c2=this[_0x28c2b7(0x102)][_0x28c2b7(0x113)]||DEFAULT_TIMEOUT_MS;try{const _0x4c9d5b=await fetch(_0x352cd0,{'method':'POST','headers':_0x515b82,'body':_0x143089,'signal':AbortSignal[_0x28c2b7(0x153)](_0xfc01c2)});if(!_0x4c9d5b['ok']){const _0x58f3f0=await _0x4c9d5b['text']();return this['logger'][_0x28c2b7(0x146)]('[PASSTHROUGH]\x20Upstream\x20error:\x20'+_0x4c9d5b[_0x28c2b7(0x116)]+'\x20'+_0x4c9d5b[_0x28c2b7(0x16c)]),this[_0x28c2b7(0x128)]['debug'](_0x28c2b7(0xfb)+_0x58f3f0),_0x38afa5[_0x28c2b7(0x10d)](_0x4c9d5b[_0x28c2b7(0x116)]),_0x38afa5[_0x28c2b7(0x112)](_0x28c2b7(0x154),_0x4c9d5b[_0x28c2b7(0x137)][_0x28c2b7(0x14f)](_0x28c2b7(0x154))||'application/json'),_0x38afa5[_0x28c2b7(0x104)](_0x58f3f0);}if(_0x236b16&&_0x4c9d5b[_0x28c2b7(0x13f)])await this[_0x28c2b7(0x145)](_0x4c9d5b[_0x28c2b7(0x13f)],_0x38afa5,_0x482600,_0x5092db);else{const _0x730e23=await _0x4c9d5b[_0x28c2b7(0x156)]();_0x38afa5['header'](_0x28c2b7(0x154),_0x4c9d5b[_0x28c2b7(0x137)][_0x28c2b7(0x14f)]('Content-Type')||_0x28c2b7(0x168));try{const _0x2865f8=JSON[_0x28c2b7(0x12e)](_0x730e23);_0x2865f8[_0x28c2b7(0x147)]&&await this['logUsage'](_0x482600,_0x5092db,_0x2865f8[_0x28c2b7(0x147)][_0x28c2b7(0x110)]||0x0,_0x2865f8[_0x28c2b7(0x147)][_0x28c2b7(0xf7)]||0x0,_0x2865f8[_0x28c2b7(0x147)]['cache_creation_input_tokens'],_0x2865f8[_0x28c2b7(0x147)][_0x28c2b7(0x123)]);}catch{}return _0x38afa5['send'](_0x730e23);}}catch(_0x5f01f5){const _0x24b150=_0x5f01f5 instanceof Error?_0x5f01f5[_0x28c2b7(0x15e)]:_0x28c2b7(0x10e),_0x15d3ce=_0x5f01f5 instanceof Error&&_0x5f01f5[_0x28c2b7(0xf6)]===_0x28c2b7(0x155);this[_0x28c2b7(0x128)][_0x28c2b7(0x146)]('[PASSTHROUGH]\x20Failed\x20to\x20forward\x20request:',_0x5f01f5),_0x38afa5[_0x28c2b7(0x10d)](_0x15d3ce?0x1f8:0x1f7)[_0x28c2b7(0x104)]({'type':_0x28c2b7(0x146),'error':{'type':_0x15d3ce?_0x28c2b7(0x134):_0x28c2b7(0x11d),'message':_0x15d3ce?'Request\x20to\x20TD\x20LLM\x20Proxy\x20timed\x20out\x20after\x20'+_0xfc01c2+'ms':_0x28c2b7(0x150)+_0x24b150}});}}async[a58_0x1dfef1(0x145)](_0x4509ad,_0x1bc8bb,_0x59a211,_0x222c82){const _0xf6ad9a=a58_0x1dfef1;_0x1bc8bb[_0xf6ad9a(0x15f)][_0xf6ad9a(0x13c)](0xc8,{'Content-Type':_0xf6ad9a(0x12a),'Cache-Control':_0xf6ad9a(0x10f),'Connection':_0xf6ad9a(0x129)});const _0x4783fc=new SSEUsageTracker(),_0x3ea1dd=_0x4509ad[_0xf6ad9a(0x132)](),_0x44eb52=new TextDecoder();try{while(!![]){const {done:_0x53b7f2,value:_0x543587}=await _0x3ea1dd[_0xf6ad9a(0x131)]();if(_0x53b7f2)break;const _0x5cfcc3=_0x44eb52[_0xf6ad9a(0x11f)](_0x543587,{'stream':!![]});_0x4783fc['processChunk'](_0x5cfcc3),_0x1bc8bb[_0xf6ad9a(0x15f)][_0xf6ad9a(0xf1)](_0x5cfcc3);}const _0x5d43b4=_0x4783fc[_0xf6ad9a(0x124)]();(_0x5d43b4[_0xf6ad9a(0x169)]>0x0||_0x5d43b4[_0xf6ad9a(0x12f)]>0x0)&&await this[_0xf6ad9a(0xf4)](_0x59a211,_0x222c82,_0x5d43b4[_0xf6ad9a(0x169)],_0x5d43b4['outputTokens'],_0x5d43b4[_0xf6ad9a(0x139)],_0x5d43b4[_0xf6ad9a(0x141)]);}catch(_0x5e7411){this[_0xf6ad9a(0x128)]['error'](_0xf6ad9a(0x115),_0x5e7411);const _0x90e78b=_0xf6ad9a(0x114)+JSON[_0xf6ad9a(0x15d)]({'type':_0xf6ad9a(0x146),'error':{'type':_0xf6ad9a(0x143),'message':'Stream\x20interrupted'}})+'\x0a\x0a';_0x1bc8bb[_0xf6ad9a(0x15f)][_0xf6ad9a(0xf1)](_0x90e78b);}finally{_0x1bc8bb['raw'][_0xf6ad9a(0x140)]();}}async[a58_0x1dfef1(0x11a)](_0x4eee9d,_0x5f442b){const _0x1e76e2=a58_0x1dfef1,_0x3e3227=_0x4eee9d[_0x1e76e2(0x13f)],_0x5c1aaf=this[_0x1e76e2(0x102)]['llmProxyUrl']+_0x1e76e2(0x11c),_0x42ee86=this['buildForwardHeaders'](_0x4eee9d),_0x440ccc=_0x3e3227['model']||'unknown',_0xd5e3ef=shouldInjectSystemPrompt(_0x440ccc)?injectSystemPrompt(_0x3e3227,TDX_SYSTEM_PROMPT):_0x3e3227,_0x3b6d02=JSON[_0x1e76e2(0x15d)](_0xd5e3ef);this['logger'][_0x1e76e2(0xf9)]('[PASSTHROUGH]\x20Forwarding\x20count_tokens\x20to:\x20'+_0x5c1aaf);const _0x432b63=this[_0x1e76e2(0x102)][_0x1e76e2(0x113)]||DEFAULT_TIMEOUT_MS;try{const _0x281153=await fetch(_0x5c1aaf,{'method':_0x1e76e2(0x120),'headers':_0x42ee86,'body':_0x3b6d02,'signal':AbortSignal['timeout'](_0x432b63)}),_0x45b6dc=await _0x281153[_0x1e76e2(0x156)]();return _0x5f442b['code'](_0x281153[_0x1e76e2(0x116)]),_0x5f442b[_0x1e76e2(0x112)](_0x1e76e2(0x154),_0x281153[_0x1e76e2(0x137)][_0x1e76e2(0x14f)](_0x1e76e2(0x154))||_0x1e76e2(0x168)),_0x5f442b[_0x1e76e2(0x104)](_0x45b6dc);}catch(_0x4b542b){const _0x16a087=_0x4b542b instanceof Error?_0x4b542b[_0x1e76e2(0x15e)]:_0x1e76e2(0x10e),_0x64440=_0x4b542b instanceof Error&&_0x4b542b[_0x1e76e2(0xf6)]===_0x1e76e2(0x155);this[_0x1e76e2(0x128)][_0x1e76e2(0x146)](_0x1e76e2(0xf8),_0x4b542b),_0x5f442b['code'](_0x64440?0x1f8:0x1f7)[_0x1e76e2(0x104)]({'type':_0x1e76e2(0x146),'error':{'type':_0x64440?_0x1e76e2(0x134):_0x1e76e2(0x11d),'message':_0x64440?_0x1e76e2(0x16e)+_0x432b63+'ms':'Failed\x20to\x20connect\x20to\x20TD\x20LLM\x20Proxy:\x20'+_0x16a087}});}}async['logUsage'](_0x428724,_0x58ddfc,_0x5118f5,_0x5214c7,_0x410189,_0xe66d18){const _0x2685f2=a58_0x1dfef1,_0x5797cd={'timestamp':new Date()[_0x2685f2(0x12d)](),'model':_0x58ddfc,'inputTokens':_0x5118f5,'outputTokens':_0x5214c7,'cacheCreationInputTokens':_0x410189,'cacheReadInputTokens':_0xe66d18,'profile':this[_0x2685f2(0x102)][_0x2685f2(0x14e)]},_0xdc00ab=_0x410189||_0xe66d18?',\x20cache_create='+(_0x410189||0x0)+_0x2685f2(0x149)+(_0xe66d18||0x0):'';this[_0x2685f2(0x128)][_0x2685f2(0xf9)](_0x2685f2(0x14b)+_0x5118f5+',\x20output='+_0x5214c7+_0xdc00ab+',\x20model='+_0x58ddfc);try{await appendUsageEntry(_0x428724,_0x5797cd);}catch(_0x176853){this['logger'][_0x2685f2(0x146)]('[PASSTHROUGH]\x20Failed\x20to\x20log\x20usage:',_0x176853);}}async['start'](){const _0xde2bbc=a58_0x1dfef1;await this[_0xde2bbc(0xfd)][_0xde2bbc(0x165)]({'port':this['config'][_0xde2bbc(0xff)],'host':_0xde2bbc(0x144)}),this[_0xde2bbc(0x128)][_0xde2bbc(0xfa)](_0xde2bbc(0x10b)+this['config'][_0xde2bbc(0xff)]),this['logger'][_0xde2bbc(0xfa)](_0xde2bbc(0x13b)+this['config'][_0xde2bbc(0x166)]);}async[a58_0x1dfef1(0x106)](){const _0x3052e8=a58_0x1dfef1;await this[_0x3052e8(0xfd)][_0x3052e8(0xf5)](),this[_0x3052e8(0x128)]['info'](_0x3052e8(0x125));}['getAddress'](){const _0x4dc6b5=a58_0x1dfef1;return'http://127.0.0.1:'+this[_0x4dc6b5(0x102)][_0x4dc6b5(0xff)];}}
|
|
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)];}}
|
package/dist/proxy/server.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
const a59_0x221b41=a59_0x863a;(function(_0x18aa56,_0x266316){const _0x4c6db5=a59_0x863a,_0xb87d7b=_0x18aa56();while(!![]){try{const _0x3210b8=-parseInt(_0x4c6db5(0x12d))/0x1*(parseInt(_0x4c6db5(0xbb))/0x2)+-parseInt(_0x4c6db5(0x9f))/0x3+parseInt(_0x4c6db5(0x133))/0x4+parseInt(_0x4c6db5(0xd5))/0x5+-parseInt(_0x4c6db5(0xaf))/0x6*(parseInt(_0x4c6db5(0xe0))/0x7)+-parseInt(_0x4c6db5(0x126))/0x8*(parseInt(_0x4c6db5(0xa1))/0x9)+parseInt(_0x4c6db5(0xed))/0xa;if(_0x3210b8===_0x266316)break;else _0xb87d7b['push'](_0xb87d7b['shift']());}catch(_0x533cb2){_0xb87d7b['push'](_0xb87d7b['shift']());}}}(a59_0x2b60,0x5b8b8));import a59_0x3985d1 from'fastify';import a59_0xadd50c from'@fastify/cors';import{ErrorCode,SDKError}from'../sdk/index.js';import{transformTDStreamToAnthropic,formatAnthropicSSE,generateMessageId,generateToolPrompt,extractToolResults,estimateInputTokensFromRequest}from'./anthropic-adapter.js';function a59_0x863a(_0x5ace62,_0x1eff87){_0x5ace62=_0x5ace62-0x82;const _0x2b60f1=a59_0x2b60();let _0x863a9c=_0x2b60f1[_0x5ace62];return _0x863a9c;}import{colorizeJSON,colorizeJSONCompact}from'../utils/colors.js';import{extractModelAlias,resolveModelAlias}from'../sdk/llm/model-aliases.js';import{SessionCache}from'./session-cache.js';function a59_0x2b60(){const _0x399b51=['messageHistory','embeddedSystemPrompts','raw','\x20system\x20prompts,\x20','0.0.0.0','new\x20system\x20prompt(s)','output_tokens','text/event-stream','[session:\x20','1778835QVCgco','helpText','3798kODzSw','Waiting\x20for\x20concurrent\x20chat\x20creation\x20for\x20context:\x20','size','usage','Failed\x20to\x20log\x20usage\x20entry\x20on\x20error:\x20','model','Failed\x20to\x20initialize\x20chat\x20stream.\x20Please\x20try\x20again.','\x20chars.\x20Cleared\x20chat\x20state\x20for\x20session\x20','Evicted\x20oldest\x20chat\x20(signature:\x20','now','llm','Final\x20message\x20is\x20empty\x20after\x20construction\x20-\x20starting\x20fresh\x20conversation','chats',',\x20context\x20signature:\x20','139062NfrLqM','trim','clear','\x20limit','url','context',')\x20to\x20stay\x20under\x20','code','user_id','cleanupExpiredChats',']\x20model:\x20','data','8CZeuZO','get','/health',',\x20tools=','handleCountTokens','toISOString','length','post','type','filter','lastUsedAt','Reset\x20chat\x20state\x20to\x20recover\x20on\x20next\x20request','validateMessageRequest','message','profile','getOrCreateSession',',\x20tools:\x20','Failed\x20to\x20start\x20proxy\x20server:\x20','Proxy\x20server\x20started\x20at\x20localhost:','Failed\x20to\x20log\x20usage\x20entry:\x20','getAgentForModel','set','dev-us01','headers','writeHead','embeddedToolsByName','1757370RSIFGD','Validation\x20failed:\x20tools\x20must\x20be\x20an\x20array\x20if\x20provided','error','add','sessionCache','site','\x0a</conversation_history>',':\x20messages=','address','write','name','182hiwWQw',',\x20system_prompts=','replace','getOrCreateDefaultAgent','message_delta','debug','Stream\x20complete.\x20Sent\x20','Reset\x20chat\x20ID\x20to\x20recover\x20on\x20next\x20request','\x20->\x20','tools','\x20messages,\x20','http://localhost:','Embedding','20255020dEHUJk',',\x20is\x20new\x20context:\x20','method','config','start','POST','New\x20-\x20system\x20prompts:\x20','text','end','string',']\x20Continue\x20chat\x20for\x20model\x20','unknown','no-cache','system','api_error','/v1/messages/count_tokens','...','GET','[PROXY\x20ERROR]\x20Non-streaming\x20responses\x20are\x20not\x20yet\x20supported','agentId','trace','cleanupInterval','chatId','chat','handleRouteError','map','logger','\x20Input\x20size:\x20','info','TD\x20LLM\x20Proxy\x20Server','setupMiddleware','join','[CONTEXT\x20LENGTH\x20ERROR]\x20','body','projectId',',\x20context:\x20','\x0a---\x0a\x0a','catch','Context:','Including\x20tool\x20results','isArray','Started\x20cache\x20cleanup\x20interval\x20(runs\x20every\x20','agentCache','warn','stringify','keep-alive','handleMessages','header:\x20','send','server','http://',']\x20Building\x20a\x20new\x20context\x20for\x20model\x20','INVALID_REQUEST','...\x22',',\x20model=','Final\x20message\x20reconstructed\x20after\x20context\x20reset:','Agent\x20cached:\x20','12648JKbqyY','messages','substring','getAddress','x-api-key','Creating/looking\x20up\x20agent\x20for:\x20',':\x20estimated\x20input_tokens=','77104xHAQob','s,\x20expires\x20after\x20','Unknown\x20error',',\x20tool_names=[',',\x20context=','listen','676548zWmBMR','Debug\x20info:','stop','setupRoutes','Failed\x20to\x20generate\x20tool\x20prompt:','tdx','port','[PROXY\x20ERROR]\x20Streaming\x20error:','creating','match','[PROXY\x20ERROR]\x20Chat\x20stream\x20is\x20undefined','new\x20tool(s)','Non-streaming\x20responses\x20are\x20not\x20yet\x20supported','Content-Type','createPromise','Authorization','metadata','\x20tools,\x20message_size=','push','request_too_large','Failed\x20to\x20create\x20chat,\x20will\x20fall\x20back\x20to\x20lazy\x20creation:'];a59_0x2b60=function(){return _0x399b51;};return a59_0x2b60();}import{appendUsageEntry}from'./claude-usage-tracker.js';import{calculateContextSignature}from'./context-signature.js';import{formatConversationHistory,calculateConversationDelta,extractLastUserMessage}from'./conversation-utils.js';function extractSessionUUID(_0x3b787f){const _0xe06aad=a59_0x863a,_0x3d337d=_0x3b787f[_0xe06aad(0x8a)](/_session_([a-f0-9-]+)$/i);if(_0x3d337d)return _0x3d337d[0x1];return _0x3b787f;}function clearChatState(_0x1109ab){const _0x3e626b=a59_0x863a;_0x1109ab[_0x3e626b(0x103)]='',_0x1109ab[_0x3e626b(0x97)][_0x3e626b(0xb1)](),_0x1109ab['embeddedToolsByName'][_0x3e626b(0xb1)]();}function mapBudgetTokensToReasoningEffort(_0x572091,_0x405570){const _0x41b53c=a59_0x863a;if(_0x405570!==_0x41b53c(0xd1))return 0x0;if(!_0x572091||_0x572091===0x0)return 0x0;if(_0x572091<=0x400)return 0x1;if(_0x572091<=0x800)return 0x2;if(_0x572091<=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_0x221b41(0x11e)];['sessionCache'];[a59_0x221b41(0x117)];[a59_0x221b41(0xf0)];[a59_0x221b41(0x102)];[a59_0x221b41(0x107)];constructor(_0x279158){const _0x403aa1=a59_0x221b41;this[_0x403aa1(0x107)]=_0x279158['logger'],this['config']=_0x279158,this[_0x403aa1(0xd9)]=new SessionCache({'maxChatsPerSession':MAX_CHATS_PER_SESSION,'cacheExpirationMs':CACHE_EXPIRATION_MS}),this[_0x403aa1(0x117)]=new Map(),this[_0x403aa1(0x11e)]=a59_0x3985d1({'logger':![],'bodyLimit':0x40*0x400*0x400}),this[_0x403aa1(0x10b)](),this[_0x403aa1(0x84)]();}async[a59_0x221b41(0xcf)](_0x286bac,_0x479da1=0x0){const _0x4e49a4=a59_0x221b41,_0x29d3dd=extractModelAlias(_0x286bac),_0x2a26a7=resolveModelAlias(_0x29d3dd),_0x3a45b0=_0x2a26a7+'_'+_0x479da1;let _0x4504b9=this[_0x4e49a4(0x117)][_0x4e49a4(0xbc)](_0x3a45b0);if(!_0x4504b9){this[_0x4e49a4(0x107)]['debug']('Model\x20normalization:\x20'+_0x286bac+'\x20->\x20'+_0x29d3dd+_0x4e49a4(0xe8)+_0x2a26a7),this['logger'][_0x4e49a4(0xe5)](_0x4e49a4(0x12b)+_0x2a26a7+'\x20(reasoning:\x20'+_0x479da1+')');const _0x3d43ba=await this[_0x4e49a4(0xf0)][_0x4e49a4(0x86)]['llm'][_0x4e49a4(0xe3)](_0x2a26a7,_0x479da1);_0x4504b9=_0x3d43ba['id'],this[_0x4e49a4(0x117)]['set'](_0x3a45b0,_0x4504b9),this[_0x4e49a4(0x107)]['debug'](_0x4e49a4(0x125)+_0x3a45b0+'\x20->\x20'+_0x4504b9+'\x20('+_0x3d43ba['attributes'][_0x4e49a4(0xdf)]+')');}return _0x4504b9;}[a59_0x221b41(0xb8)](){const _0x2b6f1c=a59_0x221b41;this[_0x2b6f1c(0xd9)][_0x2b6f1c(0xb8)]();}[a59_0x221b41(0x10b)](){const _0x50f7e5=a59_0x221b41;this[_0x50f7e5(0x11e)]['register'](a59_0xadd50c,{'origin':!![],'methods':[_0x50f7e5(0xfe),_0x50f7e5(0xf2),'OPTIONS'],'allowedHeaders':[_0x50f7e5(0x8e),_0x50f7e5(0x90),'anthropic-version',_0x50f7e5(0x12a)]}),this['server']['setErrorHandler']((_0x2540c,_0x55a1cf,_0x36ed01)=>{this['handleRouteError'](_0x2540c,_0x55a1cf,_0x36ed01);});}[a59_0x221b41(0x105)](_0xe21125,_0x45d8ab,_0x3e8007){const _0x5a79f6=a59_0x221b41;if(_0xe21125 instanceof SDKError){const _0x594e5e=_0xe21125['isUserError']()?0x190:0x1f4;_0x3e8007[_0x5a79f6(0xb6)](_0x594e5e)[_0x5a79f6(0x11d)]({'type':_0x5a79f6(0xd7),'error':{'type':_0xe21125[_0x5a79f6(0xb6)],'message':_0xe21125['originalMessage'],'helpText':_0xe21125[_0x5a79f6(0xa0)]}});}else{const _0x582b0e=_0xe21125 instanceof Error?_0xe21125['message']:_0x5a79f6(0x12f);this[_0x5a79f6(0x107)]['error']('[PROXY\x20ERROR]\x20Unhandled\x20error\x20in\x20'+_0x45d8ab['method']+'\x20'+_0x45d8ab[_0x5a79f6(0xb3)]+':',_0xe21125),_0x3e8007[_0x5a79f6(0xb6)](0x1f4)[_0x5a79f6(0x11d)]({'type':_0x5a79f6(0xd7),'error':{'type':_0x5a79f6(0xfb),'message':_0x582b0e}});}}['setupRoutes'](){const _0xa0cb3f=a59_0x221b41;this[_0xa0cb3f(0x11e)][_0xa0cb3f(0xbc)](_0xa0cb3f(0xbd),async()=>{const _0x1f17d0=_0xa0cb3f;return{'status':'ok','message':_0x1f17d0(0x10a)};}),this[_0xa0cb3f(0x11e)][_0xa0cb3f(0xc2)]('/v1/messages',async(_0x1673c1,_0x2e332f)=>{const _0x54901d=_0xa0cb3f;return this[_0x54901d(0x11b)](_0x1673c1,_0x2e332f)[_0x54901d(0x112)](_0x35c6d5=>{this['handleRouteError'](_0x35c6d5,_0x1673c1,_0x2e332f);});}),this['server'][_0xa0cb3f(0xc2)](_0xa0cb3f(0xfc),async(_0x3f23af,_0x31baa3)=>{const _0x1dba99=_0xa0cb3f;return this[_0x1dba99(0xbf)](_0x3f23af)['catch'](_0x38bc1c=>{const _0x4f3553=_0x1dba99;this[_0x4f3553(0x105)](_0x38bc1c,_0x3f23af,_0x31baa3);});});}[a59_0x221b41(0xc7)](_0x53431a){const _0x438674=a59_0x221b41;if(!_0x53431a[_0x438674(0x127)]||!Array[_0x438674(0x115)](_0x53431a[_0x438674(0x127)])||_0x53431a[_0x438674(0x127)][_0x438674(0xc1)]===0x0)throw new SDKError(ErrorCode['INVALID_REQUEST'],'Validation\x20failed:\x20messages\x20array\x20is\x20required\x20and\x20must\x20not\x20be\x20empty');if(_0x53431a[_0x438674(0xe9)]&&!Array[_0x438674(0x115)](_0x53431a[_0x438674(0xe9)]))throw new SDKError(ErrorCode[_0x438674(0x121)],_0x438674(0xd6));}async[a59_0x221b41(0x11b)](_0x4cdbf1,_0x491ca1){const _0x3bd918=a59_0x221b41,_0x356a66=_0x4cdbf1[_0x3bd918(0x10e)];this['validateMessageRequest'](_0x356a66);const _0x4bbb75=_0x356a66[_0x3bd918(0x127)]?.[_0x3bd918(0xc1)]??0x0,_0x4aba92=_0x356a66[_0x3bd918(0xa6)]||_0x3bd918(0xf8);this['logger'][_0x3bd918(0x109)](_0x4cdbf1['method']+'\x20'+_0x4cdbf1[_0x3bd918(0xb3)]+_0x3bd918(0xdc)+_0x4bbb75+_0x3bd918(0x123)+_0x4aba92),this[_0x3bd918(0x107)]['debug'](_0x3bd918(0x11c)+colorizeJSONCompact(_0x4cdbf1[_0x3bd918(0xd2)]));this[_0x3bd918(0x107)][_0x3bd918(0x101)]&&this[_0x3bd918(0x107)][_0x3bd918(0x101)](colorizeJSON(_0x356a66,{'color':!![]}));const _0xc3f27=_0x356a66[_0x3bd918(0x91)]?.[_0x3bd918(0xb7)]||'default',_0x2a2bde=extractSessionUUID(_0xc3f27),_0x54dcda=this['sessionCache'][_0x3bd918(0xca)](_0x2a2bde,this[_0x3bd918(0xf0)][_0x3bd918(0x10f)]),_0x559aa7=[];if(_0x356a66[_0x3bd918(0xfa)]){if(typeof _0x356a66[_0x3bd918(0xfa)]==='string')_0x559aa7[_0x3bd918(0x93)](_0x356a66[_0x3bd918(0xfa)]);else{if(Array[_0x3bd918(0x115)](_0x356a66[_0x3bd918(0xfa)]))for(const _0x188882 of _0x356a66[_0x3bd918(0xfa)]){_0x188882['type']===_0x3bd918(0xf4)&&_0x188882[_0x3bd918(0xf4)]&&_0x559aa7[_0x3bd918(0x93)](_0x188882[_0x3bd918(0xf4)]);}}}const _0x51faa1=_0x356a66[_0x3bd918(0xe9)]||[],_0x6710af=_0x356a66['thinking']?.['budget_tokens'],_0x2b07c9=mapBudgetTokensToReasoningEffort(_0x6710af,this['config'][_0x3bd918(0xda)]),_0x124cbf=calculateContextSignature(_0x356a66[_0x3bd918(0xa6)],_0x559aa7,_0x51faa1,_0x2b07c9);let _0xde6ae6=_0x54dcda[_0x3bd918(0xad)][_0x3bd918(0xbc)](_0x124cbf);const _0x1fbfbb=!_0xde6ae6;if(!_0xde6ae6){const _0x6e4551=await this[_0x3bd918(0xcf)](_0x356a66[_0x3bd918(0xa6)],_0x2b07c9);_0xde6ae6={'chatId':'','agentId':_0x6e4551,'contextSignature':_0x124cbf,'embeddedSystemPrompts':new Set(),'embeddedToolsByName':new Map(),'messageHistory':[],'lastUsedAt':Date[_0x3bd918(0xaa)]()},_0x54dcda[_0x3bd918(0xad)][_0x3bd918(0xd0)](_0x124cbf,_0xde6ae6);if(_0x54dcda[_0x3bd918(0xad)][_0x3bd918(0xa3)]>MAX_CHATS_PER_SESSION){let _0x382104=null,_0x57cd52=Date['now']();for(const [_0x1450ab,_0x41dd47]of _0x54dcda[_0x3bd918(0xad)]){_0x41dd47[_0x3bd918(0xc5)]<_0x57cd52&&(_0x57cd52=_0x41dd47[_0x3bd918(0xc5)],_0x382104=_0x1450ab);}_0x382104&&(_0x54dcda[_0x3bd918(0xad)]['delete'](_0x382104),this[_0x3bd918(0x107)][_0x3bd918(0xe5)](_0x3bd918(0xa9)+_0x382104+_0x3bd918(0xb5)+MAX_CHATS_PER_SESSION+_0x3bd918(0xb2)));}}else _0xde6ae6[_0x3bd918(0xc5)]=Date[_0x3bd918(0xaa)]();if(!_0xde6ae6[_0x3bd918(0x103)]){if(_0xde6ae6['creating']&&_0xde6ae6[_0x3bd918(0x8f)]){this[_0x3bd918(0x107)][_0x3bd918(0xe5)](_0x3bd918(0xa2)+_0x124cbf);try{_0xde6ae6['chatId']=await _0xde6ae6['createPromise'];}catch(_0x3030e3){this[_0x3bd918(0x107)][_0x3bd918(0xd7)]('Concurrent\x20chat\x20creation\x20failed,\x20will\x20fall\x20back\x20to\x20lazy\x20creation:',_0x3030e3);}}else{if(!_0xde6ae6[_0x3bd918(0x89)]){_0xde6ae6[_0x3bd918(0x89)]=!![],_0xde6ae6[_0x3bd918(0x8f)]=((async()=>{const _0x181a67=_0x3bd918;try{const _0x15dfe8=await this[_0x181a67(0xf0)][_0x181a67(0x86)][_0x181a67(0xab)]['startChat'](_0xde6ae6[_0x181a67(0x100)]);return this[_0x181a67(0x107)][_0x181a67(0x109)]('['+_0x15dfe8['id']+']\x20Created\x20new\x20chat\x20for\x20model\x20'+_0x356a66[_0x181a67(0xa6)]+',\x20context='+_0x124cbf),_0x15dfe8['id'];}catch(_0x149ba2){this[_0x181a67(0x107)][_0x181a67(0xd7)](_0x181a67(0x95),_0x149ba2);throw _0x149ba2;}finally{_0xde6ae6[_0x181a67(0x89)]=![],_0xde6ae6['createPromise']=undefined;}})());try{_0xde6ae6[_0x3bd918(0x103)]=await _0xde6ae6['createPromise'];}catch{}}}}const _0x1020e8=_0x559aa7[_0x3bd918(0xc4)](_0xe83472=>!_0xde6ae6[_0x3bd918(0x97)]['has'](_0xe83472)),_0x45c152=_0x51faa1[_0x3bd918(0xc4)](_0x530d9b=>!_0xde6ae6[_0x3bd918(0xd4)]['has'](_0x530d9b[_0x3bd918(0xdf)]));this[_0x3bd918(0x107)][_0x3bd918(0xe5)](_0x3bd918(0x9e)+_0x2a2bde+_0x3bd918(0xb9)+_0x356a66['model']+_0x3bd918(0xae)+_0x124cbf+_0x3bd918(0xee)+_0x1fbfbb),this['logger'][_0x3bd918(0xe5)]('Chat\x20ID:\x20'+_0xde6ae6['chatId']),this[_0x3bd918(0x107)][_0x3bd918(0xe5)]('System\x20prompts:\x20'+_0x559aa7[_0x3bd918(0xc1)]+_0x3bd918(0xcb)+_0x51faa1[_0x3bd918(0xc1)]),this[_0x3bd918(0x107)]['debug']('Embedded\x20in\x20chat\x20-\x20system\x20prompts:\x20'+_0xde6ae6[_0x3bd918(0x97)][_0x3bd918(0xa3)]+',\x20tools:\x20'+_0xde6ae6[_0x3bd918(0xd4)][_0x3bd918(0xa3)]),this[_0x3bd918(0x107)][_0x3bd918(0xe5)](_0x3bd918(0xf3)+_0x1020e8[_0x3bd918(0xc1)]+_0x3bd918(0xcb)+_0x45c152['length']);_0x1020e8[_0x3bd918(0xc1)]>0x0&&this[_0x3bd918(0x107)][_0x3bd918(0xe5)]('Added\x20system\x20prompt\x20previews:',_0x1020e8[_0x3bd918(0x106)](_0x16ef29=>_0x16ef29[_0x3bd918(0x128)](0x0,0x32)+'...')[_0x3bd918(0x10c)]('\x20|\x20'));_0x45c152[_0x3bd918(0xc1)]>0x0&&this[_0x3bd918(0x107)][_0x3bd918(0xe5)]('Added\x20tool\x20names:',_0x45c152[_0x3bd918(0x106)](_0x57bc0e=>_0x57bc0e[_0x3bd918(0xdf)])[_0x3bd918(0x10c)](',\x20'));const _0x4817f5=calculateConversationDelta(_0x356a66[_0x3bd918(0x127)],_0xde6ae6[_0x3bd918(0x96)]),_0x549e67=extractLastUserMessage(_0x4817f5,_0x356a66[_0x3bd918(0x127)]);if(_0x549e67[_0x3bd918(0xd7)])throw new SDKError(ErrorCode[_0x3bd918(0x121)],_0x549e67[_0x3bd918(0xd7)]);const _0x531388=_0x549e67[_0x3bd918(0xf4)]||'',_0x3bc0cb=()=>{const _0x51d00b=_0x3bd918,_0x42f153=[];_0x559aa7[_0x51d00b(0xc1)]>0x0&&_0x42f153[_0x51d00b(0x93)](_0x559aa7[_0x51d00b(0x10c)]('\x0a\x0a'));_0x51faa1['length']>0x0&&_0x42f153[_0x51d00b(0x93)](generateToolPrompt(_0x51faa1));if(_0x356a66[_0x51d00b(0x127)]&&_0x356a66[_0x51d00b(0x127)][_0x51d00b(0xc1)]>0x1){const _0x4a26e4=formatConversationHistory(_0x356a66['messages']);_0x4a26e4&&_0x42f153[_0x51d00b(0x93)]('\x0a\x0a<conversation_history>\x0a'+_0x4a26e4+_0x51d00b(0xdb));}return _0x42f153['push'](_0x531388),_0x42f153[_0x51d00b(0xc4)](_0x1badd7=>_0x1badd7&&_0x1badd7[_0x51d00b(0xb0)]())['join'](_0x51d00b(0x111));};let _0x36ad50;if(_0x1fbfbb){this[_0x3bd918(0x107)][_0x3bd918(0x109)]('['+_0xde6ae6['chatId']+_0x3bd918(0x120)+_0x356a66[_0x3bd918(0xa6)]+_0x3bd918(0xe1)+_0x559aa7[_0x3bd918(0xc1)]+_0x3bd918(0xbe)+_0x51faa1[_0x3bd918(0xc1)]+_0x3bd918(0x130)+_0x51faa1['map'](_0x9ec53d=>_0x9ec53d[_0x3bd918(0xdf)])['join'](',\x20')+']'),_0x36ad50=_0x3bc0cb();for(const _0x4f242e of _0x559aa7){_0xde6ae6['embeddedSystemPrompts'][_0x3bd918(0xd8)](_0x4f242e);}for(const _0x14e462 of _0x51faa1){_0xde6ae6[_0x3bd918(0xd4)]['set'](_0x14e462[_0x3bd918(0xdf)],_0x14e462);}}else{const _0x5e4092=[];_0x1020e8[_0x3bd918(0xc1)]>0x0&&(_0x5e4092[_0x3bd918(0x93)](_0x1020e8[_0x3bd918(0x10c)]('\x0a\x0a')),this['logger'][_0x3bd918(0xe5)](_0x3bd918(0xec),_0x1020e8[_0x3bd918(0xc1)],_0x3bd918(0x9b)));if(_0x45c152['length']>0x0)try{_0x5e4092[_0x3bd918(0x93)](generateToolPrompt(_0x45c152)),this[_0x3bd918(0x107)][_0x3bd918(0xe5)](_0x3bd918(0xec),_0x45c152[_0x3bd918(0xc1)],_0x3bd918(0x8c));}catch(_0x43b8ee){this['logger'][_0x3bd918(0xd7)](_0x3bd918(0x85),_0x43b8ee);}try{const _0x5838c9=extractToolResults(_0x4817f5);_0x5838c9&&(_0x5e4092['push'](_0x5838c9),this[_0x3bd918(0x107)]['debug'](_0x3bd918(0x114)));}catch(_0x284bcd){this[_0x3bd918(0x107)][_0x3bd918(0xd7)]('Failed\x20to\x20extract\x20tool\x20results:',_0x284bcd);}_0x5e4092['push'](_0x531388);const _0x16b0e3=_0x5e4092['filter'](_0x751661=>_0x751661&&_0x751661[_0x3bd918(0xb0)]());_0x36ad50=_0x16b0e3[_0x3bd918(0xc1)]>0x0?_0x16b0e3['join'](_0x3bd918(0x111)):_0x531388;for(const _0x1f6e7e of _0x1020e8){_0xde6ae6[_0x3bd918(0x97)][_0x3bd918(0xd8)](_0x1f6e7e);}for(const _0x21c3c5 of _0x45c152){_0xde6ae6[_0x3bd918(0xd4)]['set'](_0x21c3c5[_0x3bd918(0xdf)],_0x21c3c5);}}(!_0x36ad50||!_0x36ad50['trim']())&&(this[_0x3bd918(0x107)]['warn'](_0x3bd918(0xac)),this[_0x3bd918(0x107)][_0x3bd918(0x118)]('Context:',{'isNewContext':_0x1fbfbb,'userMessageLength':_0x531388?.[_0x3bd918(0xc1)]||0x0,'systemPromptsCount':_0x559aa7['length'],'toolsCount':_0x51faa1[_0x3bd918(0xc1)],'messagesCount':_0x356a66[_0x3bd918(0x127)]?.['length']||0x0,'newMessagesCount':_0x4817f5['length']}),clearChatState(_0xde6ae6),_0x36ad50=_0x3bc0cb(),(!_0x36ad50||!_0x36ad50['trim']())&&(this['logger'][_0x3bd918(0xd7)]('Failed\x20to\x20reconstruct\x20message\x20-\x20all\x20parts\x20are\x20empty,\x20using\x20fallback'),this[_0x3bd918(0x107)][_0x3bd918(0xd7)](_0x3bd918(0x82),{'systemPromptsCount':_0x559aa7['length'],'toolsCount':_0x51faa1[_0x3bd918(0xc1)],'messagesCount':_0x356a66[_0x3bd918(0x127)]?.[_0x3bd918(0xc1)]||0x0,'userMessageLength':_0x531388?.[_0x3bd918(0xc1)]||0x0}),_0x36ad50='continue'),this[_0x3bd918(0x107)][_0x3bd918(0x109)](_0x3bd918(0x124),_0x36ad50[_0x3bd918(0x128)](0x0,0x64)+_0x3bd918(0xfd)));const _0x45aabf=_0x356a66['stream']!==![];if(_0x45aabf){_0x491ca1['raw'][_0x3bd918(0xd3)](0xc8,{'Content-Type':_0x3bd918(0x9d),'Cache-Control':_0x3bd918(0xf9),'Connection':_0x3bd918(0x11a),'X-Accel-Buffering':'no'});const _0x188714=generateMessageId();let _0x2e8312=0x0,_0x1aad3e=0x0;try{if(_0xde6ae6[_0x3bd918(0x103)]){const _0x324bb4=_0x36ad50[_0x3bd918(0x128)](0x0,0x32)[_0x3bd918(0xe2)](/\n/g,'\x20');this[_0x3bd918(0x107)][_0x3bd918(0x109)]('['+_0xde6ae6[_0x3bd918(0x103)]+_0x3bd918(0xf7)+_0x356a66[_0x3bd918(0xa6)]+_0x3bd918(0x131)+_0x124cbf+',\x20'+_0x356a66[_0x3bd918(0x127)][_0x3bd918(0xc1)]+_0x3bd918(0xea)+_0x559aa7[_0x3bd918(0xc1)]+_0x3bd918(0x99)+_0x51faa1['length']+_0x3bd918(0x92)+_0x36ad50[_0x3bd918(0xc1)]+',\x20\x22'+_0x324bb4+_0x3bd918(0x122));}const _0x6328f4=this[_0x3bd918(0xf0)][_0x3bd918(0x86)][_0x3bd918(0xab)][_0x3bd918(0x104)](_0x36ad50,{'chatId':_0xde6ae6[_0x3bd918(0x103)]||undefined,'agentId':_0xde6ae6[_0x3bd918(0x103)]?undefined:_0xde6ae6[_0x3bd918(0x100)]});if(!_0x6328f4){this[_0x3bd918(0x107)][_0x3bd918(0xd7)](_0x3bd918(0x8b)),this['logger'][_0x3bd918(0xd7)](_0x3bd918(0x113),JSON[_0x3bd918(0x119)]({'chatId':_0xde6ae6[_0x3bd918(0x103)],'agentId':_0xde6ae6[_0x3bd918(0x100)],'model':_0x356a66[_0x3bd918(0xa6)],'sessionId':_0x2a2bde,'contextSignature':_0x124cbf})),_0xde6ae6[_0x3bd918(0x103)]='',this['logger'][_0x3bd918(0x118)](_0x3bd918(0xe7));const _0x4f5679=formatAnthropicSSE({'type':'error','error':{'type':_0x3bd918(0xfb),'message':_0x3bd918(0xa7)},'request_id':_0x188714});_0x491ca1['raw'][_0x3bd918(0xde)](_0x4f5679),_0x491ca1['raw'][_0x3bd918(0xf5)]();return;}_0xde6ae6[_0x3bd918(0x96)]=_0x356a66[_0x3bd918(0x127)];const _0x45cc2b=_0xde6ae6;async function*_0x382a65(_0x5e5736){const _0x146093=_0x3bd918;for await(const _0x406e2d of _0x5e5736){if(_0x406e2d[_0x146093(0xc3)]===_0x146093(0x91))_0x406e2d['data'][_0x146093(0x103)]&&!_0x45cc2b[_0x146093(0x103)]&&(_0x45cc2b[_0x146093(0x103)]=_0x406e2d['data'][_0x146093(0x103)]);else _0x406e2d[_0x146093(0xc3)]==='event'&&(yield _0x406e2d[_0x146093(0xba)]);}}const _0x3788fb=_0x382a65(_0x6328f4);_0x2e8312=estimateInputTokensFromRequest(_0x356a66);const _0x52ed38=transformTDStreamToAnthropic(_0x3788fb,_0x188714,_0x356a66['model'],this[_0x3bd918(0x107)],_0x531388,_0x2e8312),_0x3d1be5=_0x36ad50[_0x3bd918(0xc1)];let _0x2a637b=0x0;for await(const _0x5a6781 of _0x52ed38){const _0x5beaf2=formatAnthropicSSE(_0x5a6781);_0x2a637b++,this[_0x3bd918(0x107)][_0x3bd918(0xe5)](colorizeJSONCompact(_0x5a6781,{'color':!![]})),_0x5a6781['type']===_0x3bd918(0xd7)&&_0x5a6781[_0x3bd918(0xd7)][_0x3bd918(0xc3)]===_0x3bd918(0x94)&&(clearChatState(_0xde6ae6),this['logger'][_0x3bd918(0x118)](_0x3bd918(0x10d)+_0x5a6781[_0x3bd918(0xd7)][_0x3bd918(0xc8)]+_0x3bd918(0x108)+_0x3d1be5+_0x3bd918(0xa8)+_0x2a2bde+_0x3bd918(0x110)+_0x124cbf)),_0x5a6781[_0x3bd918(0xc3)]===_0x3bd918(0xe4)&&_0x5a6781[_0x3bd918(0xa4)]?.[_0x3bd918(0x9c)]&&(_0x1aad3e=_0x5a6781[_0x3bd918(0xa4)]['output_tokens']),_0x491ca1[_0x3bd918(0x98)][_0x3bd918(0xde)](_0x5beaf2);}this[_0x3bd918(0x107)][_0x3bd918(0xe5)](_0x3bd918(0xe6)+_0x2a637b+'\x20SSE\x20events.'),appendUsageEntry(_0x2a2bde,{'timestamp':new Date()[_0x3bd918(0xc0)](),'model':_0x356a66[_0x3bd918(0xa6)],'inputTokens':_0x2e8312,'outputTokens':_0x1aad3e,'contextSignature':_0x124cbf,'profile':this[_0x3bd918(0xf0)][_0x3bd918(0x86)]?.[_0x3bd918(0xb4)]?.[_0x3bd918(0xc9)],'chatId':_0xde6ae6[_0x3bd918(0x103)]||undefined})[_0x3bd918(0x112)](_0x11bf07=>{const _0xb2bf81=_0x3bd918;this[_0xb2bf81(0x107)][_0xb2bf81(0x118)](_0xb2bf81(0xce)+_0x11bf07);}),_0x491ca1[_0x3bd918(0x98)][_0x3bd918(0xf5)]();}catch(_0x3f8d46){(_0x2e8312>0x0||_0x1aad3e>0x0)&&appendUsageEntry(_0x2a2bde,{'timestamp':new Date()[_0x3bd918(0xc0)](),'model':_0x356a66[_0x3bd918(0xa6)],'inputTokens':_0x2e8312,'outputTokens':_0x1aad3e,'contextSignature':_0x124cbf,'profile':this[_0x3bd918(0xf0)]['tdx']?.[_0x3bd918(0xb4)]?.[_0x3bd918(0xc9)],'chatId':_0xde6ae6['chatId']||undefined})[_0x3bd918(0x112)](_0x5aa23d=>{const _0x42c7dd=_0x3bd918;this[_0x42c7dd(0x107)]['warn'](_0x42c7dd(0xa5)+_0x5aa23d);});const _0x3db95f=_0x3f8d46 instanceof Error?_0x3f8d46[_0x3bd918(0xc8)]:_0x3bd918(0x12f);this['logger'][_0x3bd918(0xd7)](_0x3bd918(0x88),_0x3f8d46),this['logger'][_0x3bd918(0xd7)](_0x3bd918(0x113),JSON['stringify']({'chatId':_0xde6ae6[_0x3bd918(0x103)],'agentId':_0xde6ae6[_0x3bd918(0x100)],'model':_0x356a66[_0x3bd918(0xa6)],'sessionId':_0x2a2bde,'contextSignature':_0x124cbf})),_0xde6ae6[_0x3bd918(0x103)]='',this[_0x3bd918(0x107)][_0x3bd918(0x118)](_0x3bd918(0xc6));const _0x4d846a=formatAnthropicSSE({'type':'error','error':{'type':_0x3bd918(0xfb),'message':_0x3db95f},'request_id':_0x188714});_0x491ca1[_0x3bd918(0x98)][_0x3bd918(0xde)](_0x4d846a),_0x491ca1['raw'][_0x3bd918(0xf5)]();}}else this[_0x3bd918(0x107)][_0x3bd918(0xd7)](_0x3bd918(0xff)),_0x491ca1['code'](0x1f5)['send']({'type':_0x3bd918(0xd7),'error':{'type':'not_supported_error','message':_0x3bd918(0x8d)}});}async[a59_0x221b41(0xbf)](_0x27993e){const _0x5a9bcd=a59_0x221b41,_0x61ea7=_0x27993e[_0x5a9bcd(0x10e)],_0x203841=estimateInputTokensFromRequest(_0x61ea7);return this[_0x5a9bcd(0x107)][_0x5a9bcd(0x109)](_0x27993e[_0x5a9bcd(0xef)]+'\x20'+_0x27993e[_0x5a9bcd(0xb3)]+_0x5a9bcd(0x12c)+_0x203841),{'input_tokens':_0x203841};}async[a59_0x221b41(0xf1)](){const _0x64f60a=a59_0x221b41;try{await this[_0x64f60a(0x11e)][_0x64f60a(0x132)]({'port':this[_0x64f60a(0xf0)][_0x64f60a(0x87)],'host':_0x64f60a(0x9a)}),this[_0x64f60a(0x107)][_0x64f60a(0x109)](_0x64f60a(0xcd)+this[_0x64f60a(0xf0)]['port']),this[_0x64f60a(0x102)]=setInterval(()=>{const _0xe075ec=_0x64f60a;this[_0xe075ec(0xb8)]();},CLEANUP_INTERVAL_MS),this['logger']['debug'](_0x64f60a(0x116)+CLEANUP_INTERVAL_MS/0x3e8+_0x64f60a(0x12e)+CACHE_EXPIRATION_MS/0x3e8+'s)');}catch(_0x51c9de){const _0xdc9a30=_0x51c9de instanceof Error?_0x51c9de['message']:_0x64f60a(0x12f);throw new Error(_0x64f60a(0xcc)+_0xdc9a30);}}async[a59_0x221b41(0x83)](){const _0x5b2a7c=a59_0x221b41;this[_0x5b2a7c(0x102)]&&(clearInterval(this[_0x5b2a7c(0x102)]),this['cleanupInterval']=undefined),await this[_0x5b2a7c(0x11e)]['close']();}[a59_0x221b41(0x129)](){const _0x1b5239=a59_0x221b41,_0x2599b1=this[_0x1b5239(0x11e)][_0x1b5239(0x11e)][_0x1b5239(0xdd)]();if(typeof _0x2599b1===_0x1b5239(0xf6))return _0x2599b1;if(_0x2599b1)return _0x1b5239(0x11f)+_0x2599b1[_0x1b5239(0xdd)]+':'+_0x2599b1['port'];return _0x1b5239(0xeb)+this[_0x1b5239(0xf0)][_0x1b5239(0x87)];}}
|
|
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 +1 @@
|
|
|
1
|
-
|
|
1
|
+
function a60_0x2c69(_0x178a93,_0x58003b){_0x178a93=_0x178a93-0x1c1;const _0x5a2610=a60_0x5a26();let _0x2c6960=_0x5a2610[_0x178a93];return _0x2c6960;}const a60_0x5564be=a60_0x2c69;(function(_0x1a340c,_0x4d0711){const _0x1a968f=a60_0x2c69,_0x3f7bfb=_0x1a340c();while(!![]){try{const _0x52203a=parseInt(_0x1a968f(0x1c6))/0x1+parseInt(_0x1a968f(0x1d3))/0x2+parseInt(_0x1a968f(0x1cd))/0x3+parseInt(_0x1a968f(0x1d4))/0x4+-parseInt(_0x1a968f(0x1c3))/0x5+parseInt(_0x1a968f(0x1dc))/0x6+-parseInt(_0x1a968f(0x1d6))/0x7;if(_0x52203a===_0x4d0711)break;else _0x3f7bfb['push'](_0x3f7bfb['shift']());}catch(_0x216922){_0x3f7bfb['push'](_0x3f7bfb['shift']());}}}(a60_0x5a26,0xd9220));export class SessionCache{[a60_0x5564be(0x1c9)];[a60_0x5564be(0x1cb)];constructor(_0x2e80c5){const _0x144909=a60_0x5564be;this[_0x144909(0x1cb)]=_0x2e80c5,this[_0x144909(0x1c9)]=new Map();}[a60_0x5564be(0x1c7)](_0x3f4b84,_0x223104){const _0x35849a=a60_0x5564be;let _0x25f5be=this[_0x35849a(0x1c9)]['get'](_0x3f4b84);return!_0x25f5be&&(_0x25f5be={'projectId':_0x223104,'chats':new Map()},this[_0x35849a(0x1c9)][_0x35849a(0x1d2)](_0x3f4b84,_0x25f5be)),_0x25f5be;}[a60_0x5564be(0x1c1)](_0x15c0d4){const _0x43edbe=a60_0x5564be;return this[_0x43edbe(0x1c9)][_0x43edbe(0x1c5)](_0x15c0d4);}[a60_0x5564be(0x1c4)](_0xac7751,_0x9d21ca,_0x2c3036){const _0x19ffd8=a60_0x5564be,_0x3ebb90=this[_0x19ffd8(0x1c9)][_0x19ffd8(0x1c5)](_0xac7751);if(!_0x3ebb90)throw new Error(_0x19ffd8(0x1c8)+_0xac7751+_0x19ffd8(0x1d0));let _0x4cb78c=_0x3ebb90['chats'][_0x19ffd8(0x1c5)](_0x9d21ca);if(!_0x4cb78c){_0x4cb78c={'chatId':'','agentId':_0x2c3036,'contextSignature':_0x9d21ca,'embeddedSystemPrompts':new Set(),'embeddedToolsByName':new Map(),'messageHistory':[],'lastUsedAt':Date['now']()},_0x3ebb90[_0x19ffd8(0x1d5)][_0x19ffd8(0x1d2)](_0x9d21ca,_0x4cb78c);if(_0x3ebb90[_0x19ffd8(0x1d5)][_0x19ffd8(0x1cc)]>this['config'][_0x19ffd8(0x1ca)]){let _0x303862=null,_0x210d5e=Date[_0x19ffd8(0x1d7)]();for(const [_0x357d43,_0x29ddae]of _0x3ebb90[_0x19ffd8(0x1d5)]){_0x29ddae[_0x19ffd8(0x1da)]<_0x210d5e&&(_0x210d5e=_0x29ddae['lastUsedAt'],_0x303862=_0x357d43);}_0x303862&&_0x3ebb90[_0x19ffd8(0x1d5)][_0x19ffd8(0x1db)](_0x303862);}}else _0x4cb78c[_0x19ffd8(0x1da)]=Date['now']();return _0x4cb78c;}[a60_0x5564be(0x1d1)](){const _0x383d45=a60_0x5564be,_0x38214d=Date[_0x383d45(0x1d7)]();let _0x488db6=0x0;for(const [_0x2cfe65,_0x45e98e]of this[_0x383d45(0x1c9)]){const _0x50240a=[];for(const [_0x5a9839,_0x3e6d1a]of _0x45e98e[_0x383d45(0x1d5)]){_0x38214d-_0x3e6d1a['lastUsedAt']>this[_0x383d45(0x1cb)]['cacheExpirationMs']&&_0x50240a[_0x383d45(0x1d8)](_0x5a9839);}for(const _0x54d1b9 of _0x50240a){_0x45e98e[_0x383d45(0x1d5)]['delete'](_0x54d1b9),_0x488db6++;}_0x45e98e[_0x383d45(0x1d5)][_0x383d45(0x1cc)]===0x0&&this['sessions'][_0x383d45(0x1db)](_0x2cfe65);}return _0x488db6;}[a60_0x5564be(0x1cf)](){const _0x3af0d8=a60_0x5564be;return this[_0x3af0d8(0x1c9)]['size'];}[a60_0x5564be(0x1d9)](){const _0x1de134=a60_0x5564be;let _0x4f36f8=0x0;for(const _0x18e7e8 of this['sessions'][_0x1de134(0x1c2)]()){_0x4f36f8+=_0x18e7e8[_0x1de134(0x1d5)][_0x1de134(0x1cc)];}return _0x4f36f8;}[a60_0x5564be(0x1ce)](){const _0x1d9c13=a60_0x5564be;this[_0x1d9c13(0x1c9)][_0x1d9c13(0x1ce)]();}}function a60_0x5a26(){const _0x5cdade=['getOrCreateSession','Session\x20','sessions','maxChatsPerSession','config','size','1261899jvASuK','clear','getSessionCount','\x20not\x20found','cleanupExpiredChats','set','2874450qBlqlK','1712980RqBSaP','chats','14107870iQejvl','now','push','getTotalChatCount','lastUsedAt','delete','8958354QFILEk','getSession','values','4828325evPgoH','getOrCreateChat','get','91289QoQdCK'];a60_0x5a26=function(){return _0x5cdade;};return a60_0x5a26();}
|