@treasuredata/tdx 0.3.1 → 0.3.3
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/build-info.json +2 -2
- package/dist/cli.js +1 -1
- package/dist/cli.js.map +1 -1
- package/dist/client/{cdp-client.d.ts → cdp-api-client.d.ts} +5 -5
- package/dist/client/cdp-api-client.d.ts.map +1 -0
- package/dist/client/cdp-api-client.js +1 -0
- package/dist/client/cdp-api-client.js.map +1 -0
- package/dist/client/http-client.js +1 -1
- package/dist/client/{llm-client.d.ts → llm-api-client.d.ts} +5 -5
- package/dist/client/llm-api-client.d.ts.map +1 -0
- package/dist/client/llm-api-client.js +1 -0
- package/dist/client/llm-api-client.js.map +1 -0
- package/dist/client/rate-limiter.js +1 -1
- package/dist/client/{td-client.d.ts → td-api-client.d.ts} +8 -15
- package/dist/client/td-api-client.d.ts.map +1 -0
- package/dist/client/td-api-client.js +1 -0
- package/dist/client/td-api-client.js.map +1 -0
- package/dist/client/{trino-client.d.ts → trino-api-client.d.ts} +5 -5
- package/dist/client/trino-api-client.d.ts.map +1 -0
- package/dist/client/trino-api-client.js +1 -0
- package/dist/client/trino-api-client.js.map +1 -0
- package/dist/client/workflow-client.d.ts +4 -4
- package/dist/client/workflow-client.d.ts.map +1 -1
- package/dist/client/workflow-client.js +1 -1
- package/dist/client/workflow-client.js.map +1 -1
- package/dist/commands/activations.js +1 -1
- package/dist/commands/api-command.js +1 -1
- package/dist/commands/auth-command.js +1 -1
- package/dist/commands/auth-command.js.map +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/command.js +1 -1
- package/dist/commands/context-command.js +1 -1
- package/dist/commands/databases.d.ts.map +1 -1
- package/dist/commands/databases.js +1 -1
- package/dist/commands/databases.js.map +1 -1
- package/dist/commands/describe.d.ts.map +1 -1
- package/dist/commands/describe.js +1 -1
- package/dist/commands/describe.js.map +1 -1
- package/dist/commands/job-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/profiles-command.js +1 -1
- package/dist/commands/query-command.js +1 -1
- package/dist/commands/query-command.js.map +1 -1
- package/dist/commands/segment-command.js +1 -1
- package/dist/commands/segment-command.js.map +1 -1
- package/dist/commands/segment-create-command.js +1 -1
- package/dist/commands/segment-fields-command.js +1 -1
- package/dist/commands/segment-pwd-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/segments.js +1 -1
- package/dist/commands/show.js +1 -1
- package/dist/commands/show.js.map +1 -1
- package/dist/commands/tables.d.ts.map +1 -1
- package/dist/commands/tables.js +1 -1
- package/dist/commands/tables.js.map +1 -1
- package/dist/commands/use-command.js +1 -1
- package/dist/commands/workflow-command.js +1 -1
- package/dist/core/auth.js +1 -1
- package/dist/core/config.js +1 -1
- package/dist/core/global-context.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/index.d.ts +4 -4
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -1
- package/dist/index.js.map +1 -1
- package/dist/proxy/anthropic-adapter.js +1 -1
- package/dist/proxy/server.js +1 -1
- package/dist/proxy/session-cache.js +1 -1
- package/dist/sdk/api.d.ts +3 -6
- package/dist/sdk/api.d.ts.map +1 -1
- package/dist/sdk/api.js +1 -1
- package/dist/sdk/api.js.map +1 -1
- package/dist/sdk/errors.js +1 -1
- package/dist/sdk/index.d.ts +77 -88
- package/dist/sdk/index.d.ts.map +1 -1
- package/dist/sdk/index.js +1 -1
- package/dist/sdk/index.js.map +1 -1
- package/dist/sdk/job.d.ts +10 -4
- package/dist/sdk/job.d.ts.map +1 -1
- package/dist/sdk/job.js +1 -1
- package/dist/sdk/job.js.map +1 -1
- package/dist/sdk/llm.d.ts +5 -4
- package/dist/sdk/llm.d.ts.map +1 -1
- package/dist/sdk/llm.js +1 -1
- package/dist/sdk/llm.js.map +1 -1
- package/dist/sdk/query.d.ts +176 -10
- package/dist/sdk/query.d.ts.map +1 -1
- package/dist/sdk/query.js +1 -1
- package/dist/sdk/query.js.map +1 -1
- package/dist/sdk/segment.d.ts +3 -3
- package/dist/sdk/segment.d.ts.map +1 -1
- package/dist/sdk/segment.js +1 -1
- package/dist/sdk/segment.js.map +1 -1
- package/dist/sdk/workflow.d.ts +4 -4
- package/dist/sdk/workflow.d.ts.map +1 -1
- package/dist/sdk/workflow.js +1 -1
- package/dist/sdk/workflow.js.map +1 -1
- package/dist/types/database.d.ts +25 -0
- package/dist/types/database.d.ts.map +1 -0
- package/dist/types/database.js +1 -0
- package/dist/types/database.js.map +1 -0
- package/dist/types/endpoints.js +1 -1
- package/dist/types/index.d.ts +3 -296
- package/dist/types/index.d.ts.map +1 -1
- package/dist/types/index.js +1 -1
- package/dist/types/job.d.ts +54 -0
- package/dist/types/job.d.ts.map +1 -0
- package/dist/types/job.js +1 -0
- package/dist/types/job.js.map +1 -0
- package/dist/types/llm.d.ts +226 -0
- package/dist/types/llm.d.ts.map +1 -0
- package/dist/types/llm.js +1 -0
- package/dist/types/llm.js.map +1 -0
- package/dist/utils/agent-ref-parser.js +1 -1
- package/dist/utils/chat-cache.js +1 -1
- package/dist/utils/colors.js +1 -1
- package/dist/utils/command-output.js +1 -1
- package/dist/utils/constants.js +1 -1
- package/dist/utils/file-permissions.js +1 -1
- package/dist/utils/format-detector.js +1 -1
- package/dist/utils/formatters.js +1 -1
- package/dist/utils/json-loader.js +1 -1
- package/dist/utils/model-aliases.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/segment-path-parser.js +1 -1
- package/dist/utils/segment-ref-parser.js +1 -1
- package/dist/utils/spinner.d.ts +2 -2
- package/dist/utils/spinner.js +1 -1
- package/dist/utils/sql-parser.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/tdx-logger.js.map +1 -1
- package/dist/utils/tree-formatter.js +1 -1
- package/dist/utils/version-check.js +1 -1
- package/dist/utils/workflow-utils.js +1 -1
- package/package.json +1 -1
- package/dist/client/cdp-client.d.ts.map +0 -1
- package/dist/client/cdp-client.js +0 -1
- package/dist/client/cdp-client.js.map +0 -1
- package/dist/client/llm-client.d.ts.map +0 -1
- package/dist/client/llm-client.js +0 -1
- package/dist/client/llm-client.js.map +0 -1
- package/dist/client/td-client.d.ts.map +0 -1
- package/dist/client/td-client.js +0 -1
- package/dist/client/td-client.js.map +0 -1
- package/dist/client/trino-client.d.ts.map +0 -1
- package/dist/client/trino-client.js +0 -1
- package/dist/client/trino-client.js.map +0 -1
- package/dist/sdk/database.d.ts +0 -41
- package/dist/sdk/database.d.ts.map +0 -1
- package/dist/sdk/database.js +0 -1
- package/dist/sdk/database.js.map +0 -1
- package/dist/sdk/table.d.ts +0 -123
- package/dist/sdk/table.d.ts.map +0 -1
- package/dist/sdk/table.js +0 -1
- package/dist/sdk/table.js.map +0 -1
package/dist/proxy/server.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
const a42_0x11a110=a42_0xfc32;(function(_0x25e953,_0x514f0b){const _0x4e8418=a42_0xfc32,_0x156722=_0x25e953();while(!![]){try{const _0x27c09a=parseInt(_0x4e8418(0x19a))/0x1*(-parseInt(_0x4e8418(0x17a))/0x2)+parseInt(_0x4e8418(0x18e))/0x3*(-parseInt(_0x4e8418(0x172))/0x4)+-parseInt(_0x4e8418(0x129))/0x5*(-parseInt(_0x4e8418(0x1c1))/0x6)+parseInt(_0x4e8418(0x18b))/0x7+-parseInt(_0x4e8418(0x15b))/0x8*(-parseInt(_0x4e8418(0x1b2))/0x9)+parseInt(_0x4e8418(0x1c2))/0xa*(parseInt(_0x4e8418(0x1bc))/0xb)+parseInt(_0x4e8418(0x1cb))/0xc;if(_0x27c09a===_0x514f0b)break;else _0x156722['push'](_0x156722['shift']());}catch(_0x41755b){_0x156722['push'](_0x156722['shift']());}}}(a42_0x4ef8,0x5e653));import a42_0xca77ee from'fastify';import a42_0x482558 from'@fastify/cors';import{createHash}from'crypto';function a42_0x4ef8(){const _0x58410f=['hex','add','dev-us01',',\x20\x22','tools','[PROXY\x20ERROR]\x20Validation\x20failed:\x20No\x20user\x20message\x20found\x20in\x20request','/v1/messages/count_tokens','model','embeddedToolsByName','Failed\x20to\x20extract\x20tool\x20results:','[CONTEXT\x20LENGTH\x20ERROR]\x20','3112nGiaTl',',\x20context=','user','Debug\x20info:','Proxy\x20server\x20started\x20at\x20localhost:','raw','address','info','Failed\x20to\x20create\x20chat,\x20will\x20fall\x20back\x20to\x20lazy\x20creation:','Embedding',')\x20to\x20stay\x20under\x20','chats','Creating/looking\x20up\x20agent\x20for:\x20','trim','port','getOrCreateDefaultAgent','post','trace','handleMessages','writeHead','method','stop','/v1/messages','5344ZARgrV','join','catch','Embedded\x20in\x20chat\x20-\x20system\x20prompts:\x20','now','[Current\x20message]\x0a\x0a','messages','listen','8vBlDxT','error','anthropic-version','Content-Type','keep-alive','\x20SSE\x20events.','setupRoutes','messageHistory','length','agentId','tdx','[PROXY\x20ERROR]\x20Uncaught\x20error\x20in\x20','size','[PROXY\x20ERROR]\x20Streaming\x20error:','Agent\x20cached:\x20',']\x20model:\x20','message','5231198OYhLyY','substring','tools\x20must\x20be\x20an\x20array\x20if\x20provided','1590GUzGuo','content','\x20|\x20','[PROXY\x20ERROR]\x20Validation\x20failed:\x20messages\x20array\x20is\x20required\x20and\x20must\x20not\x20be\x20empty','stringify','Stream\x20complete.\x20Sent\x20','http://localhost:','POST','budget_tokens','\x20Input\x20size:\x20','Started\x20cache\x20cleanup\x20interval\x20(runs\x20every\x20','Unknown\x20error','175548wLcQVi','[session:\x20',']\x20Created\x20new\x20chat\x20for\x20model\x20','Failed\x20to\x20initialize\x20chat\x20stream.\x20Please\x20try\x20again.','[PROXY\x20ERROR]\x20Chat\x20stream\x20is\x20undefined','sessionCache','http://','server','Reset\x20chat\x20ID\x20to\x20recover\x20on\x20next\x20request','debug','User','startChat','properties','warn','data','messages\x20array\x20is\x20required\x20and\x20must\x20not\x20be\x20empty','cleanupExpiredChats','push','config','OPTIONS','map',']\x20Building\x20a\x20new\x20context\x20for\x20model\x20','Added\x20tool\x20names:','x-api-key','2529JlWiVY','role','new\x20system\x20prompt(s)','keys','llm','set','handleRouteError','continue','close','[PROXY\x20ERROR]\x20Configuration\x20error:\x20Project\x20ID\x20must\x20be\x20configured','11tCMdbv','replace','text','delete','createPromise','18xqTIIX','1469920TYIMKd','no-cache','invalid_request_error','/health','user_id','[PROXY\x20ERROR]\x20Non-streaming\x20responses\x20are\x20not\x20yet\x20supported','\x20->\x20','chat','thinking','5222892npRAGN','input_schema','\x20(reasoning:\x20','getAgentForModel','Failed\x20to\x20generate\x20tool\x20prompt:','handleCountTokens','...','system','lastUsedAt','unknown','attributes','embeddedSystemPrompts','url','cleanupInterval',',\x20tools=','request_too_large','name','sort','api_error','Including\x20tool\x20results',',\x20system_prompts=','headers','setupMiddleware','code','\x20tools,\x20message_size=',',\x20tools:\x20','message.content\x20must\x20be\x20a\x20string\x20or\x20array',',\x20model=','chatId','isArray','Project\x20ID\x20must\x20be\x20configured',':\x20estimated\x20input_tokens=','end','sent','596765QEEGte','localeCompare','\x20system\x20prompts,\x20','[PROXY\x20ERROR]\x20Unhandled\x20error\x20in\x20',']\x20Continue\x20chat\x20for\x20model\x20','send','clear','Failed\x20to\x20start\x20proxy\x20server:\x20','new\x20tool(s)','write','\x20limit','stream','Model\x20normalization:\x20','\x0a---\x0a\x0a','Final\x20message\x20is\x20empty\x20after\x20construction\x20-\x20starting\x20fresh\x20conversation','Context:','Chat\x20ID:\x20','filter','creating','System\x20prompts:\x20','register','agentCache','get','default','Evicted\x20oldest\x20chat\x20(signature:\x20',',\x20context:\x20',',\x20context\x20signature:\x20','setErrorHandler','header:\x20','body','\x0a</conversation>','required','...\x22',',\x20tool_names=[','[Previous\x20conversation]\x0a\x0a<conversation>\x0a','pop','logger','New\x20-\x20system\x20prompts:\x20','type'];a42_0x4ef8=function(){return _0x58410f;};return a42_0x4ef8();}import{transformTDStreamToAnthropic,formatAnthropicSSE,generateMessageId,generateToolPrompt,extractToolResults,estimateInputTokensFromRequest}from'./anthropic-adapter.js';import{colorizeJSON,colorizeJSONCompact}from'../utils/colors.js';import{extractModelAlias,resolveModelAlias}from'../utils/model-aliases.js';import{SessionCache}from'./session-cache.js';function formatConversationHistory(_0x4a0772){const _0x411fc2=a42_0xfc32;if(!_0x4a0772||!Array[_0x411fc2(0x124)](_0x4a0772))return'';return _0x4a0772[_0x411fc2(0x13a)](_0xb1f235=>_0xb1f235!=null)[_0x411fc2(0x1ae)](_0xff3d20=>{const _0x3dbb16=_0x411fc2,_0x28da70=_0xff3d20[_0x3dbb16(0x18f)]!=null&&Array['isArray'](_0xff3d20[_0x3dbb16(0x18f)])?_0xff3d20[_0x3dbb16(0x18f)][_0x3dbb16(0x13a)](_0x32e9c9=>_0x32e9c9&&_0x32e9c9[_0x3dbb16(0x14f)]===_0x3dbb16(0x1be))[_0x3dbb16(0x1ae)](_0x2c1e1a=>_0x2c1e1a['text'])[_0x3dbb16(0x173)]('\x0a'):_0xff3d20['content']||'',_0x30e63a=_0xff3d20[_0x3dbb16(0x1b3)]===_0x3dbb16(0x15d)?_0x3dbb16(0x1a4):'Assistant';return _0x30e63a+':\x20'+_0x28da70;})[_0x411fc2(0x173)]('\x0a\x0a');}function a42_0xfc32(_0x29a80a,_0x248d18){const _0x4ef838=a42_0x4ef8();return a42_0xfc32=function(_0xfc3221,_0x2afbf1){_0xfc3221=_0xfc3221-0x10d;let _0x589500=_0x4ef838[_0xfc3221];return _0x589500;},a42_0xfc32(_0x29a80a,_0x248d18);}function calculateContextSignature(_0x32dbcf,_0x49330f,_0x208575,_0x1b05f7){const _0x2ee4eb=a42_0xfc32,_0x1594cc=extractModelAlias(_0x32dbcf),_0x146a5e=resolveModelAlias(_0x1594cc),_0x2c48d0=[..._0x49330f||[]][_0x2ee4eb(0x118)](),_0x181061=(_0x208575||[])['filter'](_0x9664be=>_0x9664be!=null)['map'](_0xefcd3c=>({'name':_0xefcd3c['name'],'params':Object[_0x2ee4eb(0x1b5)](_0xefcd3c['input_schema']?.[_0x2ee4eb(0x1a6)]||{})[_0x2ee4eb(0x118)](),'required':(_0xefcd3c[_0x2ee4eb(0x1cc)]?.[_0x2ee4eb(0x148)]||[])[_0x2ee4eb(0x118)]()}))['sort']((_0x39cf9f,_0x17adb4)=>_0x39cf9f['name'][_0x2ee4eb(0x12a)](_0x17adb4[_0x2ee4eb(0x117)])),_0x5abf11=JSON[_0x2ee4eb(0x192)]({'model':_0x146a5e,'prompts':_0x2c48d0,'tools':_0x181061,'reasoning':_0x1b05f7});return createHash('sha256')['update'](_0x5abf11)['digest'](_0x2ee4eb(0x150))[_0x2ee4eb(0x18c)](0x0,0x10);}function clearChatState(_0x184672){const _0x5b2f33=a42_0xfc32;_0x184672[_0x5b2f33(0x123)]='',_0x184672['embeddedSystemPrompts'][_0x5b2f33(0x12f)](),_0x184672['embeddedToolsByName'][_0x5b2f33(0x12f)]();}function mapBudgetTokensToReasoningEffort(_0x5ba2c4,_0x535481){const _0x45db27=a42_0xfc32;if(_0x535481!==_0x45db27(0x152))return 0x0;if(!_0x5ba2c4||_0x5ba2c4===0x0)return 0x0;if(_0x5ba2c4<=0x400)return 0x1;if(_0x5ba2c4<=0x800)return 0x2;if(_0x5ba2c4<=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{['server'];[a42_0x11a110(0x19f)];['agentCache'];[a42_0x11a110(0x1ac)];[a42_0x11a110(0x114)];[a42_0x11a110(0x14d)];constructor(_0x490de1){const _0x4309ba=a42_0x11a110;this['logger']=_0x490de1[_0x4309ba(0x14d)],this[_0x4309ba(0x1ac)]=_0x490de1,this['sessionCache']=new SessionCache({'maxChatsPerSession':MAX_CHATS_PER_SESSION,'cacheExpirationMs':CACHE_EXPIRATION_MS}),this['agentCache']=new Map(),this['server']=a42_0xca77ee({'logger':![],'bodyLimit':0x40*0x400*0x400}),this[_0x4309ba(0x11d)](),this[_0x4309ba(0x180)]();}async[a42_0x11a110(0x1ce)](_0x2a5612,_0x34dfb1=0x0){const _0x5069b0=a42_0x11a110,_0x151e73=extractModelAlias(_0x2a5612),_0x3d3372=resolveModelAlias(_0x151e73),_0x2c90e1=_0x3d3372+'_'+_0x34dfb1;let _0x56760e=this[_0x5069b0(0x13e)]['get'](_0x2c90e1);if(!_0x56760e){this[_0x5069b0(0x14d)]['debug'](_0x5069b0(0x135)+_0x2a5612+'\x20->\x20'+_0x151e73+_0x5069b0(0x1c8)+_0x3d3372),this[_0x5069b0(0x14d)][_0x5069b0(0x1a3)](_0x5069b0(0x167)+_0x3d3372+_0x5069b0(0x1cd)+_0x34dfb1+')');const _0x4adffe=await this['config'][_0x5069b0(0x184)][_0x5069b0(0x1b6)][_0x5069b0(0x16a)](_0x3d3372,_0x34dfb1);_0x56760e=_0x4adffe['id'],this[_0x5069b0(0x13e)][_0x5069b0(0x1b7)](_0x2c90e1,_0x56760e),this[_0x5069b0(0x14d)][_0x5069b0(0x1a3)](_0x5069b0(0x188)+_0x2c90e1+_0x5069b0(0x1c8)+_0x56760e+'\x20('+_0x4adffe[_0x5069b0(0x111)][_0x5069b0(0x117)]+')');}return _0x56760e;}[a42_0x11a110(0x1aa)](){const _0x36a99d=a42_0x11a110;this[_0x36a99d(0x19f)][_0x36a99d(0x1aa)]();}[a42_0x11a110(0x11d)](){const _0x246eee=a42_0x11a110;this['server'][_0x246eee(0x13d)](a42_0x482558,{'origin':!![],'methods':['GET',_0x246eee(0x195),_0x246eee(0x1ad)],'allowedHeaders':[_0x246eee(0x17d),'Authorization',_0x246eee(0x17c),_0x246eee(0x1b1)]}),this['server'][_0x246eee(0x144)]((_0x12d0eb,_0x48f7da,_0x5cde11)=>{const _0x4efc05=_0x246eee,_0x11bb70=_0x12d0eb instanceof Error?_0x12d0eb[_0x4efc05(0x18a)]:_0x4efc05(0x199);this[_0x4efc05(0x14d)][_0x4efc05(0x17b)](_0x4efc05(0x12c)+_0x48f7da[_0x4efc05(0x16f)]+'\x20'+_0x48f7da[_0x4efc05(0x113)]+':',_0x12d0eb),_0x5cde11[_0x4efc05(0x11e)](0x1f4)[_0x4efc05(0x12e)]({'type':_0x4efc05(0x17b),'error':{'type':_0x4efc05(0x119),'message':_0x11bb70}});});}[a42_0x11a110(0x1b8)](_0x46c80f,_0x5083ef,_0x145d38){const _0x27db23=a42_0x11a110,_0x2a9e80=_0x5083ef instanceof Error?_0x5083ef[_0x27db23(0x18a)]:'Unknown\x20error';this[_0x27db23(0x14d)][_0x27db23(0x17b)](_0x27db23(0x185)+_0x46c80f+':',_0x5083ef),!_0x145d38[_0x27db23(0x128)]&&_0x145d38[_0x27db23(0x11e)](0x1f4)['send']({'type':'error','error':{'type':_0x27db23(0x119),'message':_0x2a9e80}});}[a42_0x11a110(0x180)](){const _0x7e7da8=a42_0x11a110;this[_0x7e7da8(0x1a1)][_0x7e7da8(0x13f)](_0x7e7da8(0x1c5),async()=>{return{'status':'ok','message':'TD\x20LLM\x20Proxy\x20Server'};}),this[_0x7e7da8(0x1a1)][_0x7e7da8(0x16b)](_0x7e7da8(0x171),async(_0x459f37,_0x1c294d)=>{const _0x92d8b2=_0x7e7da8;return this[_0x92d8b2(0x16d)](_0x459f37,_0x1c294d)[_0x92d8b2(0x174)](_0x589993=>{const _0x85ecab=_0x92d8b2;this['handleRouteError'](_0x85ecab(0x171),_0x589993,_0x1c294d);});}),this[_0x7e7da8(0x1a1)]['post'](_0x7e7da8(0x156),async(_0x3d5fbc,_0x2a0d9e)=>{const _0x2ad0a5=_0x7e7da8;return this[_0x2ad0a5(0x1d0)](_0x3d5fbc)[_0x2ad0a5(0x174)](_0x5abe8b=>{const _0x49e0d5=_0x2ad0a5;this[_0x49e0d5(0x1b8)](_0x49e0d5(0x156),_0x5abe8b,_0x2a0d9e);});});}async['handleMessages'](_0x3eb952,_0x1cd2bb){const _0x4e0cb7=a42_0x11a110,_0x5de78f=_0x3eb952[_0x4e0cb7(0x146)];if(!_0x5de78f[_0x4e0cb7(0x178)]||!Array[_0x4e0cb7(0x124)](_0x5de78f[_0x4e0cb7(0x178)])||_0x5de78f[_0x4e0cb7(0x178)]['length']===0x0){this[_0x4e0cb7(0x14d)][_0x4e0cb7(0x17b)](_0x4e0cb7(0x191)),_0x1cd2bb[_0x4e0cb7(0x11e)](0x190)[_0x4e0cb7(0x12e)]({'type':_0x4e0cb7(0x17b),'error':{'type':'invalid_request_error','message':_0x4e0cb7(0x1a9)}});return;}if(_0x5de78f['tools']&&!Array[_0x4e0cb7(0x124)](_0x5de78f[_0x4e0cb7(0x154)])){this[_0x4e0cb7(0x14d)][_0x4e0cb7(0x17b)]('[PROXY\x20ERROR]\x20Validation\x20failed:\x20tools\x20must\x20be\x20an\x20array\x20if\x20provided'),_0x1cd2bb[_0x4e0cb7(0x11e)](0x190)[_0x4e0cb7(0x12e)]({'type':_0x4e0cb7(0x17b),'error':{'type':'invalid_request_error','message':_0x4e0cb7(0x18d)}});return;}const _0x358cf5=_0x5de78f['messages']?.[_0x4e0cb7(0x182)]??0x0,_0xc01654=_0x5de78f[_0x4e0cb7(0x157)]||_0x4e0cb7(0x110);this[_0x4e0cb7(0x14d)]['info'](_0x3eb952[_0x4e0cb7(0x16f)]+'\x20'+_0x3eb952[_0x4e0cb7(0x113)]+':\x20messages='+_0x358cf5+_0x4e0cb7(0x122)+_0xc01654),this[_0x4e0cb7(0x14d)]['debug'](_0x4e0cb7(0x145)+colorizeJSONCompact(_0x3eb952[_0x4e0cb7(0x11c)]));this['logger'][_0x4e0cb7(0x16c)]&&this[_0x4e0cb7(0x14d)]['trace'](colorizeJSON(_0x5de78f,{'color':!![]}));const _0x4761a8=_0x5de78f['metadata']?.[_0x4e0cb7(0x1c6)]||_0x4e0cb7(0x140),_0x1b8de3=this[_0x4e0cb7(0x1ac)]['projectId'];if(!_0x1b8de3){this[_0x4e0cb7(0x14d)]['error'](_0x4e0cb7(0x1bb)),_0x1cd2bb[_0x4e0cb7(0x11e)](0x1f4)[_0x4e0cb7(0x12e)]({'type':_0x4e0cb7(0x17b),'error':{'type':_0x4e0cb7(0x119),'message':_0x4e0cb7(0x125)}});return;}const _0x40d3a4=this[_0x4e0cb7(0x19f)]['getOrCreateSession'](_0x4761a8,_0x1b8de3),_0x5dde5d=[];if(_0x5de78f[_0x4e0cb7(0x10e)]){if(typeof _0x5de78f[_0x4e0cb7(0x10e)]==='string')_0x5dde5d['push'](_0x5de78f[_0x4e0cb7(0x10e)]);else{if(Array[_0x4e0cb7(0x124)](_0x5de78f['system']))for(const _0x313bf8 of _0x5de78f[_0x4e0cb7(0x10e)]){_0x313bf8[_0x4e0cb7(0x14f)]===_0x4e0cb7(0x1be)&&_0x313bf8[_0x4e0cb7(0x1be)]&&_0x5dde5d[_0x4e0cb7(0x1ab)](_0x313bf8['text']);}}}const _0x66532b=_0x5de78f[_0x4e0cb7(0x154)]||[],_0x215099=_0x5de78f[_0x4e0cb7(0x1ca)]?.[_0x4e0cb7(0x196)],_0x58bd75=mapBudgetTokensToReasoningEffort(_0x215099,this[_0x4e0cb7(0x1ac)]['site']),_0x2d2f53=calculateContextSignature(_0x5de78f[_0x4e0cb7(0x157)],_0x5dde5d,_0x66532b,_0x58bd75);let _0x2a1c8d=_0x40d3a4[_0x4e0cb7(0x166)]['get'](_0x2d2f53);const _0x582c58=!_0x2a1c8d;if(!_0x2a1c8d){const _0x16c9a6=await this[_0x4e0cb7(0x1ce)](_0x5de78f[_0x4e0cb7(0x157)],_0x58bd75);_0x2a1c8d={'chatId':'','agentId':_0x16c9a6,'contextSignature':_0x2d2f53,'embeddedSystemPrompts':new Set(),'embeddedToolsByName':new Map(),'messageHistory':[],'lastUsedAt':Date['now']()},_0x40d3a4[_0x4e0cb7(0x166)][_0x4e0cb7(0x1b7)](_0x2d2f53,_0x2a1c8d);if(_0x40d3a4[_0x4e0cb7(0x166)][_0x4e0cb7(0x186)]>MAX_CHATS_PER_SESSION){let _0x17bac9=null,_0x174115=Date[_0x4e0cb7(0x176)]();for(const [_0x57556e,_0x55a020]of _0x40d3a4[_0x4e0cb7(0x166)]){_0x55a020[_0x4e0cb7(0x10f)]<_0x174115&&(_0x174115=_0x55a020[_0x4e0cb7(0x10f)],_0x17bac9=_0x57556e);}_0x17bac9&&(_0x40d3a4[_0x4e0cb7(0x166)][_0x4e0cb7(0x1bf)](_0x17bac9),this[_0x4e0cb7(0x14d)]['debug'](_0x4e0cb7(0x141)+_0x17bac9+_0x4e0cb7(0x165)+MAX_CHATS_PER_SESSION+_0x4e0cb7(0x133)));}}else _0x2a1c8d[_0x4e0cb7(0x10f)]=Date[_0x4e0cb7(0x176)]();if(!_0x2a1c8d[_0x4e0cb7(0x123)]){if(_0x2a1c8d[_0x4e0cb7(0x13b)]&&_0x2a1c8d[_0x4e0cb7(0x1c0)]){this['logger']['debug']('Waiting\x20for\x20concurrent\x20chat\x20creation\x20for\x20context:\x20'+_0x2d2f53);try{_0x2a1c8d[_0x4e0cb7(0x123)]=await _0x2a1c8d[_0x4e0cb7(0x1c0)];}catch(_0x3c1178){this[_0x4e0cb7(0x14d)][_0x4e0cb7(0x17b)]('Concurrent\x20chat\x20creation\x20failed,\x20will\x20fall\x20back\x20to\x20lazy\x20creation:',_0x3c1178);}}else{if(!_0x2a1c8d[_0x4e0cb7(0x13b)]){_0x2a1c8d[_0x4e0cb7(0x13b)]=!![],_0x2a1c8d[_0x4e0cb7(0x1c0)]=((async()=>{const _0x4f01e7=_0x4e0cb7;try{const _0x15ca01=await this[_0x4f01e7(0x1ac)][_0x4f01e7(0x184)]['llm'][_0x4f01e7(0x1a5)](_0x2a1c8d[_0x4f01e7(0x183)]);return this[_0x4f01e7(0x14d)][_0x4f01e7(0x162)]('['+_0x15ca01['id']+_0x4f01e7(0x19c)+_0x5de78f[_0x4f01e7(0x157)]+_0x4f01e7(0x15c)+_0x2d2f53),_0x15ca01['id'];}catch(_0x12789b){this[_0x4f01e7(0x14d)][_0x4f01e7(0x17b)](_0x4f01e7(0x163),_0x12789b);throw _0x12789b;}finally{_0x2a1c8d[_0x4f01e7(0x13b)]=![],_0x2a1c8d['createPromise']=undefined;}})());try{_0x2a1c8d[_0x4e0cb7(0x123)]=await _0x2a1c8d['createPromise'];}catch{}}}}const _0x13523c=_0x5dde5d[_0x4e0cb7(0x13a)](_0x51f28a=>!_0x2a1c8d[_0x4e0cb7(0x112)]['has'](_0x51f28a)),_0x246b43=_0x66532b[_0x4e0cb7(0x13a)](_0x3f6d59=>!_0x2a1c8d[_0x4e0cb7(0x158)]['has'](_0x3f6d59['name']));this[_0x4e0cb7(0x14d)][_0x4e0cb7(0x1a3)](_0x4e0cb7(0x19b)+_0x4761a8+_0x4e0cb7(0x189)+_0x5de78f[_0x4e0cb7(0x157)]+_0x4e0cb7(0x143)+_0x2d2f53+',\x20is\x20new\x20context:\x20'+_0x582c58),this[_0x4e0cb7(0x14d)][_0x4e0cb7(0x1a3)](_0x4e0cb7(0x139)+_0x2a1c8d[_0x4e0cb7(0x123)]),this[_0x4e0cb7(0x14d)]['debug'](_0x4e0cb7(0x13c)+_0x5dde5d[_0x4e0cb7(0x182)]+',\x20tools:\x20'+_0x66532b[_0x4e0cb7(0x182)]),this[_0x4e0cb7(0x14d)][_0x4e0cb7(0x1a3)](_0x4e0cb7(0x175)+_0x2a1c8d['embeddedSystemPrompts'][_0x4e0cb7(0x186)]+_0x4e0cb7(0x120)+_0x2a1c8d[_0x4e0cb7(0x158)]['size']),this[_0x4e0cb7(0x14d)][_0x4e0cb7(0x1a3)](_0x4e0cb7(0x14e)+_0x13523c[_0x4e0cb7(0x182)]+_0x4e0cb7(0x120)+_0x246b43[_0x4e0cb7(0x182)]);_0x13523c[_0x4e0cb7(0x182)]>0x0&&this[_0x4e0cb7(0x14d)][_0x4e0cb7(0x1a3)]('Added\x20system\x20prompt\x20previews:',_0x13523c[_0x4e0cb7(0x1ae)](_0x4a9ca6=>_0x4a9ca6['substring'](0x0,0x32)+_0x4e0cb7(0x10d))[_0x4e0cb7(0x173)](_0x4e0cb7(0x190)));_0x246b43['length']>0x0&&this[_0x4e0cb7(0x14d)][_0x4e0cb7(0x1a3)](_0x4e0cb7(0x1b0),_0x246b43['map'](_0x47b169=>_0x47b169['name'])['join'](',\x20'));const _0x49097d=_0x2a1c8d[_0x4e0cb7(0x181)][_0x4e0cb7(0x182)],_0x19530b=_0x5de78f[_0x4e0cb7(0x178)]['slice'](_0x49097d);let _0x155a95=_0x19530b['filter'](_0x322bed=>_0x322bed['role']===_0x4e0cb7(0x15d))[_0x4e0cb7(0x14c)]();if(!_0x155a95){_0x155a95=_0x5de78f[_0x4e0cb7(0x178)]['filter'](_0x3cca12=>_0x3cca12[_0x4e0cb7(0x1b3)]===_0x4e0cb7(0x15d))['pop']();if(!_0x155a95){this[_0x4e0cb7(0x14d)]['error'](_0x4e0cb7(0x155)),_0x1cd2bb[_0x4e0cb7(0x11e)](0x190)[_0x4e0cb7(0x12e)]({'type':_0x4e0cb7(0x17b),'error':{'type':_0x4e0cb7(0x1c4),'message':'No\x20user\x20message\x20found\x20in\x20request'}});return;}}let _0x24a8a4;if(typeof _0x155a95[_0x4e0cb7(0x18f)]==='string')_0x24a8a4=_0x155a95[_0x4e0cb7(0x18f)];else{if(_0x155a95[_0x4e0cb7(0x18f)]!=null&&Array[_0x4e0cb7(0x124)](_0x155a95[_0x4e0cb7(0x18f)]))_0x24a8a4=_0x155a95[_0x4e0cb7(0x18f)][_0x4e0cb7(0x13a)](_0x48670f=>_0x48670f&&_0x48670f[_0x4e0cb7(0x14f)]===_0x4e0cb7(0x1be)&&_0x48670f['text'])[_0x4e0cb7(0x1ae)](_0x8845bc=>_0x8845bc[_0x4e0cb7(0x1be)])['join']('\x0a');else{this[_0x4e0cb7(0x14d)][_0x4e0cb7(0x17b)]('[PROXY\x20ERROR]\x20Validation\x20failed:\x20message.content\x20must\x20be\x20a\x20string\x20or\x20array,\x20got:',typeof _0x155a95[_0x4e0cb7(0x18f)],_0x155a95[_0x4e0cb7(0x18f)]),_0x1cd2bb['code'](0x190)['send']({'type':_0x4e0cb7(0x17b),'error':{'type':_0x4e0cb7(0x1c4),'message':_0x4e0cb7(0x121)}});return;}}const _0x1ca1b8=()=>{const _0x178d3a=_0x4e0cb7,_0x30fe0a=[];_0x5dde5d[_0x178d3a(0x182)]>0x0&&_0x30fe0a['push'](_0x5dde5d['join']('\x0a\x0a'));_0x66532b[_0x178d3a(0x182)]>0x0&&_0x30fe0a[_0x178d3a(0x1ab)](generateToolPrompt(_0x66532b));if(_0x5de78f[_0x178d3a(0x178)]&&_0x5de78f[_0x178d3a(0x178)][_0x178d3a(0x182)]>0x1){const _0x27852b=formatConversationHistory(_0x5de78f['messages']);_0x27852b&&_0x30fe0a['push'](_0x178d3a(0x14b)+_0x27852b+_0x178d3a(0x147));}return _0x30fe0a['push'](_0x178d3a(0x177)+_0x24a8a4),_0x30fe0a[_0x178d3a(0x173)](_0x178d3a(0x136));};let _0x58b830;if(_0x582c58){this[_0x4e0cb7(0x14d)][_0x4e0cb7(0x162)]('['+_0x2a1c8d[_0x4e0cb7(0x123)]+_0x4e0cb7(0x1af)+_0x5de78f[_0x4e0cb7(0x157)]+_0x4e0cb7(0x11b)+_0x5dde5d[_0x4e0cb7(0x182)]+_0x4e0cb7(0x115)+_0x66532b[_0x4e0cb7(0x182)]+_0x4e0cb7(0x14a)+_0x66532b[_0x4e0cb7(0x1ae)](_0x4eccba=>_0x4eccba[_0x4e0cb7(0x117)])['join'](',\x20')+']'),_0x58b830=_0x1ca1b8();for(const _0x3dcf43 of _0x5dde5d){_0x2a1c8d[_0x4e0cb7(0x112)]['add'](_0x3dcf43);}for(const _0x40a32c of _0x66532b){_0x2a1c8d[_0x4e0cb7(0x158)][_0x4e0cb7(0x1b7)](_0x40a32c[_0x4e0cb7(0x117)],_0x40a32c);}}else{const _0x1699b3=[];_0x13523c[_0x4e0cb7(0x182)]>0x0&&(_0x1699b3[_0x4e0cb7(0x1ab)](_0x13523c['join']('\x0a\x0a')),this[_0x4e0cb7(0x14d)][_0x4e0cb7(0x1a3)](_0x4e0cb7(0x164),_0x13523c[_0x4e0cb7(0x182)],_0x4e0cb7(0x1b4)));if(_0x246b43[_0x4e0cb7(0x182)]>0x0)try{_0x1699b3['push'](generateToolPrompt(_0x246b43)),this['logger'][_0x4e0cb7(0x1a3)](_0x4e0cb7(0x164),_0x246b43[_0x4e0cb7(0x182)],_0x4e0cb7(0x131));}catch(_0x24e192){this['logger'][_0x4e0cb7(0x17b)](_0x4e0cb7(0x1cf),_0x24e192);}try{const _0x4d2297=extractToolResults(_0x19530b);_0x4d2297&&(_0x1699b3['push'](_0x4d2297),this[_0x4e0cb7(0x14d)][_0x4e0cb7(0x1a3)](_0x4e0cb7(0x11a)));}catch(_0x298250){this['logger'][_0x4e0cb7(0x17b)](_0x4e0cb7(0x159),_0x298250);}_0x1699b3[_0x4e0cb7(0x1ab)](_0x24a8a4),_0x58b830=_0x1699b3['length']>0x1?_0x1699b3['join']('\x0a---\x0a\x0a'):_0x24a8a4;for(const _0x2e334a of _0x13523c){_0x2a1c8d[_0x4e0cb7(0x112)][_0x4e0cb7(0x151)](_0x2e334a);}for(const _0x1a4065 of _0x246b43){_0x2a1c8d[_0x4e0cb7(0x158)][_0x4e0cb7(0x1b7)](_0x1a4065['name'],_0x1a4065);}}(!_0x58b830||!_0x58b830[_0x4e0cb7(0x168)]())&&(this[_0x4e0cb7(0x14d)]['warn'](_0x4e0cb7(0x137)),this[_0x4e0cb7(0x14d)]['warn'](_0x4e0cb7(0x138),{'isNewContext':_0x582c58,'userMessageLength':_0x24a8a4?.[_0x4e0cb7(0x182)]||0x0,'systemPromptsCount':_0x5dde5d[_0x4e0cb7(0x182)],'toolsCount':_0x66532b[_0x4e0cb7(0x182)],'messagesCount':_0x5de78f[_0x4e0cb7(0x178)]?.[_0x4e0cb7(0x182)]||0x0,'newMessagesCount':_0x19530b[_0x4e0cb7(0x182)]}),clearChatState(_0x2a1c8d),_0x58b830=_0x1ca1b8(),(!_0x58b830||!_0x58b830['trim']())&&(this[_0x4e0cb7(0x14d)][_0x4e0cb7(0x17b)]('Failed\x20to\x20reconstruct\x20message\x20-\x20all\x20parts\x20are\x20empty,\x20using\x20fallback'),this[_0x4e0cb7(0x14d)]['error'](_0x4e0cb7(0x15e),{'systemPromptsCount':_0x5dde5d[_0x4e0cb7(0x182)],'toolsCount':_0x66532b[_0x4e0cb7(0x182)],'messagesCount':_0x5de78f[_0x4e0cb7(0x178)]?.[_0x4e0cb7(0x182)]||0x0,'userMessageLength':_0x24a8a4?.['length']||0x0}),_0x58b830=_0x4e0cb7(0x1b9)),this['logger'][_0x4e0cb7(0x162)]('Final\x20message\x20reconstructed\x20after\x20context\x20reset:',_0x58b830['substring'](0x0,0x64)+_0x4e0cb7(0x10d)));const _0x43952c=_0x5de78f[_0x4e0cb7(0x134)]!==![];if(_0x43952c){_0x1cd2bb[_0x4e0cb7(0x160)][_0x4e0cb7(0x16e)](0xc8,{'Content-Type':'text/event-stream','Cache-Control':_0x4e0cb7(0x1c3),'Connection':_0x4e0cb7(0x17e),'X-Accel-Buffering':'no'});const _0x3eccea=generateMessageId();try{if(_0x2a1c8d['chatId']){const _0x5225e8=_0x58b830[_0x4e0cb7(0x18c)](0x0,0x32)[_0x4e0cb7(0x1bd)](/\n/g,'\x20');this['logger'][_0x4e0cb7(0x162)]('['+_0x2a1c8d[_0x4e0cb7(0x123)]+_0x4e0cb7(0x12d)+_0x5de78f[_0x4e0cb7(0x157)]+_0x4e0cb7(0x15c)+_0x2d2f53+',\x20'+_0x5de78f['messages'][_0x4e0cb7(0x182)]+'\x20messages,\x20'+_0x5dde5d['length']+_0x4e0cb7(0x12b)+_0x66532b['length']+_0x4e0cb7(0x11f)+_0x58b830[_0x4e0cb7(0x182)]+_0x4e0cb7(0x153)+_0x5225e8+_0x4e0cb7(0x149));}const _0x82100c=this[_0x4e0cb7(0x1ac)][_0x4e0cb7(0x184)]['llm'][_0x4e0cb7(0x1c9)](_0x58b830,{'chatId':_0x2a1c8d[_0x4e0cb7(0x123)]||undefined,'agentId':_0x2a1c8d[_0x4e0cb7(0x123)]?undefined:_0x2a1c8d[_0x4e0cb7(0x183)]});if(!_0x82100c){this['logger'][_0x4e0cb7(0x17b)](_0x4e0cb7(0x19e)),this[_0x4e0cb7(0x14d)]['error'](_0x4e0cb7(0x138),JSON[_0x4e0cb7(0x192)]({'chatId':_0x2a1c8d[_0x4e0cb7(0x123)],'agentId':_0x2a1c8d['agentId'],'model':_0x5de78f[_0x4e0cb7(0x157)],'sessionId':_0x4761a8,'contextSignature':_0x2d2f53})),_0x2a1c8d[_0x4e0cb7(0x123)]='',this['logger'][_0x4e0cb7(0x1a7)](_0x4e0cb7(0x1a2));const _0x2e4ae5=formatAnthropicSSE({'type':_0x4e0cb7(0x17b),'error':{'type':'api_error','message':_0x4e0cb7(0x19d)},'request_id':_0x3eccea});_0x1cd2bb['raw'][_0x4e0cb7(0x132)](_0x2e4ae5),_0x1cd2bb[_0x4e0cb7(0x160)][_0x4e0cb7(0x127)]();return;}_0x2a1c8d[_0x4e0cb7(0x181)]=_0x5de78f[_0x4e0cb7(0x178)];const _0x20cc7f=_0x2a1c8d;async function*_0x57f656(_0x58a80c){const _0x5bb704=_0x4e0cb7;for await(const _0x35ecec of _0x58a80c){if(_0x35ecec[_0x5bb704(0x14f)]==='metadata')_0x35ecec[_0x5bb704(0x1a8)][_0x5bb704(0x123)]&&!_0x20cc7f[_0x5bb704(0x123)]&&(_0x20cc7f['chatId']=_0x35ecec[_0x5bb704(0x1a8)][_0x5bb704(0x123)]);else _0x35ecec[_0x5bb704(0x14f)]==='event'&&(yield _0x35ecec[_0x5bb704(0x1a8)]);}}const _0x396dce=_0x57f656(_0x82100c),_0x4cbac5=estimateInputTokensFromRequest(_0x5de78f),_0xeb85ce=transformTDStreamToAnthropic(_0x396dce,_0x3eccea,_0x5de78f['model'],this[_0x4e0cb7(0x14d)],_0x24a8a4,_0x4cbac5),_0x4903d9=_0x58b830[_0x4e0cb7(0x182)];let _0x5e2ae1=0x0;for await(const _0xb3a7c1 of _0xeb85ce){const _0x2eeebb=formatAnthropicSSE(_0xb3a7c1);_0x5e2ae1++,this[_0x4e0cb7(0x14d)][_0x4e0cb7(0x1a3)](colorizeJSONCompact(_0xb3a7c1,{'color':!![]})),_0xb3a7c1[_0x4e0cb7(0x14f)]===_0x4e0cb7(0x17b)&&_0xb3a7c1[_0x4e0cb7(0x17b)][_0x4e0cb7(0x14f)]===_0x4e0cb7(0x116)&&(clearChatState(_0x2a1c8d),this[_0x4e0cb7(0x14d)][_0x4e0cb7(0x1a7)](_0x4e0cb7(0x15a)+_0xb3a7c1[_0x4e0cb7(0x17b)][_0x4e0cb7(0x18a)]+_0x4e0cb7(0x197)+_0x4903d9+'\x20chars.\x20Cleared\x20chat\x20state\x20for\x20session\x20'+_0x4761a8+_0x4e0cb7(0x142)+_0x2d2f53)),_0x1cd2bb['raw'][_0x4e0cb7(0x132)](_0x2eeebb);}this[_0x4e0cb7(0x14d)][_0x4e0cb7(0x1a3)](_0x4e0cb7(0x193)+_0x5e2ae1+_0x4e0cb7(0x17f)),_0x1cd2bb['raw'][_0x4e0cb7(0x127)]();}catch(_0x43b0c6){const _0x5c8c60=_0x43b0c6 instanceof Error?_0x43b0c6[_0x4e0cb7(0x18a)]:'Unknown\x20error';this[_0x4e0cb7(0x14d)][_0x4e0cb7(0x17b)](_0x4e0cb7(0x187),_0x43b0c6),this[_0x4e0cb7(0x14d)]['error']('Context:',JSON['stringify']({'chatId':_0x2a1c8d[_0x4e0cb7(0x123)],'agentId':_0x2a1c8d[_0x4e0cb7(0x183)],'model':_0x5de78f[_0x4e0cb7(0x157)],'sessionId':_0x4761a8,'contextSignature':_0x2d2f53})),_0x2a1c8d['chatId']='',this[_0x4e0cb7(0x14d)][_0x4e0cb7(0x1a7)]('Reset\x20chat\x20state\x20to\x20recover\x20on\x20next\x20request');const _0x164949=formatAnthropicSSE({'type':'error','error':{'type':_0x4e0cb7(0x119),'message':_0x5c8c60},'request_id':_0x3eccea});_0x1cd2bb[_0x4e0cb7(0x160)][_0x4e0cb7(0x132)](_0x164949),_0x1cd2bb[_0x4e0cb7(0x160)][_0x4e0cb7(0x127)]();}}else this[_0x4e0cb7(0x14d)][_0x4e0cb7(0x17b)](_0x4e0cb7(0x1c7)),_0x1cd2bb['code'](0x1f5)[_0x4e0cb7(0x12e)]({'type':'error','error':{'type':'not_supported_error','message':'Non-streaming\x20responses\x20are\x20not\x20yet\x20supported'}});}async['handleCountTokens'](_0x47dc01){const _0x201050=a42_0x11a110,_0xe0ccd9=_0x47dc01[_0x201050(0x146)],_0x284fba=estimateInputTokensFromRequest(_0xe0ccd9);return this[_0x201050(0x14d)][_0x201050(0x162)](_0x47dc01[_0x201050(0x16f)]+'\x20'+_0x47dc01[_0x201050(0x113)]+_0x201050(0x126)+_0x284fba),{'input_tokens':_0x284fba};}async['start'](){const _0x1c4ce3=a42_0x11a110;try{await this['server'][_0x1c4ce3(0x179)]({'port':this[_0x1c4ce3(0x1ac)]['port'],'host':'0.0.0.0'}),this[_0x1c4ce3(0x14d)][_0x1c4ce3(0x162)](_0x1c4ce3(0x15f)+this[_0x1c4ce3(0x1ac)][_0x1c4ce3(0x169)]),this[_0x1c4ce3(0x114)]=setInterval(()=>{const _0x459375=_0x1c4ce3;this[_0x459375(0x1aa)]();},CLEANUP_INTERVAL_MS),this['logger'][_0x1c4ce3(0x1a3)](_0x1c4ce3(0x198)+CLEANUP_INTERVAL_MS/0x3e8+'s,\x20expires\x20after\x20'+CACHE_EXPIRATION_MS/0x3e8+'s)');}catch(_0x52efbd){const _0x44a03c=_0x52efbd instanceof Error?_0x52efbd['message']:'Unknown\x20error';throw new Error(_0x1c4ce3(0x130)+_0x44a03c);}}async[a42_0x11a110(0x170)](){const _0x37fa0a=a42_0x11a110;this[_0x37fa0a(0x114)]&&(clearInterval(this[_0x37fa0a(0x114)]),this[_0x37fa0a(0x114)]=undefined),await this['server'][_0x37fa0a(0x1ba)]();}['getAddress'](){const _0x1b6ebe=a42_0x11a110,_0x3a5092=this['server']['server'][_0x1b6ebe(0x161)]();if(typeof _0x3a5092==='string')return _0x3a5092;if(_0x3a5092)return _0x1b6ebe(0x1a0)+_0x3a5092[_0x1b6ebe(0x161)]+':'+_0x3a5092[_0x1b6ebe(0x169)];return _0x1b6ebe(0x194)+this[_0x1b6ebe(0x1ac)][_0x1b6ebe(0x169)];}}
|
|
1
|
+
const a42_0x3cc939=a42_0xad2f;(function(_0x44b443,_0x32f4f7){const _0x35cd23=a42_0xad2f,_0x14f811=_0x44b443();while(!![]){try{const _0x380fa6=parseInt(_0x35cd23(0x124))/0x1+parseInt(_0x35cd23(0x11d))/0x2*(parseInt(_0x35cd23(0xc4))/0x3)+parseInt(_0x35cd23(0xef))/0x4*(-parseInt(_0x35cd23(0x184))/0x5)+parseInt(_0x35cd23(0x10c))/0x6*(parseInt(_0x35cd23(0x12c))/0x7)+-parseInt(_0x35cd23(0xff))/0x8+-parseInt(_0x35cd23(0x15b))/0x9*(-parseInt(_0x35cd23(0xd4))/0xa)+-parseInt(_0x35cd23(0xfa))/0xb*(parseInt(_0x35cd23(0xe9))/0xc);if(_0x380fa6===_0x32f4f7)break;else _0x14f811['push'](_0x14f811['shift']());}catch(_0x4c5456){_0x14f811['push'](_0x14f811['shift']());}}}(a42_0x4463,0x7e7a6));import a42_0x20869c from'fastify';import a42_0x45e3ab from'@fastify/cors';import{createHash}from'crypto';function a42_0xad2f(_0x55cd00,_0x12f212){const _0x446394=a42_0x4463();return a42_0xad2f=function(_0xad2f12,_0x5dabad){_0xad2f12=_0xad2f12-0xc0;let _0xda94d4=_0x446394[_0xad2f12];return _0xda94d4;},a42_0xad2f(_0x55cd00,_0x12f212);}import{transformTDStreamToAnthropic,formatAnthropicSSE,generateMessageId,generateToolPrompt,extractToolResults,estimateInputTokensFromRequest}from'./anthropic-adapter.js';import{colorizeJSON,colorizeJSONCompact}from'../utils/colors.js';import{extractModelAlias,resolveModelAlias}from'../utils/model-aliases.js';import{SessionCache}from'./session-cache.js';function formatConversationHistory(_0x2ff7b9){const _0x570c14=a42_0xad2f;if(!_0x2ff7b9||!Array[_0x570c14(0x163)](_0x2ff7b9))return'';return _0x2ff7b9[_0x570c14(0x183)](_0x6458f4=>_0x6458f4!=null)[_0x570c14(0xca)](_0x8f3adc=>{const _0x9d557d=_0x570c14,_0x1280d2=_0x8f3adc[_0x9d557d(0x173)]!=null&&Array[_0x9d557d(0x163)](_0x8f3adc[_0x9d557d(0x173)])?_0x8f3adc['content'][_0x9d557d(0x183)](_0x50de76=>_0x50de76&&_0x50de76[_0x9d557d(0x13b)]==='text')[_0x9d557d(0xca)](_0x50cc75=>_0x50cc75[_0x9d557d(0xe6)])['join']('\x0a'):_0x8f3adc[_0x9d557d(0x173)]||'',_0x1e6af3=_0x8f3adc[_0x9d557d(0x15e)]===_0x9d557d(0x122)?_0x9d557d(0xcf):_0x9d557d(0x187);return _0x1e6af3+':\x20'+_0x1280d2;})['join']('\x0a\x0a');}function calculateContextSignature(_0x43e801,_0xfdc6de,_0x6de65e,_0x4b009e){const _0x3d6f6b=a42_0xad2f,_0x147344=extractModelAlias(_0x43e801),_0x3d539c=resolveModelAlias(_0x147344),_0x35ce2d=[..._0xfdc6de||[]]['sort'](),_0x5d1e6b=(_0x6de65e||[])[_0x3d6f6b(0x183)](_0x365500=>_0x365500!=null)[_0x3d6f6b(0xca)](_0x62a6c5=>({'name':_0x62a6c5['name'],'params':Object[_0x3d6f6b(0xed)](_0x62a6c5['input_schema']?.[_0x3d6f6b(0x159)]||{})['sort'](),'required':(_0x62a6c5['input_schema']?.[_0x3d6f6b(0x17d)]||[])[_0x3d6f6b(0x141)]()}))[_0x3d6f6b(0x141)]((_0x209e4e,_0x50b48c)=>_0x209e4e[_0x3d6f6b(0xd6)][_0x3d6f6b(0x175)](_0x50b48c[_0x3d6f6b(0xd6)])),_0x4fe40a=JSON[_0x3d6f6b(0xd3)]({'model':_0x3d539c,'prompts':_0x35ce2d,'tools':_0x5d1e6b,'reasoning':_0x4b009e});return createHash('sha256')[_0x3d6f6b(0x160)](_0x4fe40a)[_0x3d6f6b(0x116)](_0x3d6f6b(0x143))[_0x3d6f6b(0x139)](0x0,0x10);}function clearChatState(_0x3fa794){const _0x6d55b1=a42_0xad2f;_0x3fa794[_0x6d55b1(0xc8)]='',_0x3fa794[_0x6d55b1(0x10a)][_0x6d55b1(0x14f)](),_0x3fa794['embeddedToolsByName'][_0x6d55b1(0x14f)]();}function mapBudgetTokensToReasoningEffort(_0xfbc403,_0x5002c0){if(_0x5002c0!=='dev-us01')return 0x0;if(!_0xfbc403||_0xfbc403===0x0)return 0x0;if(_0xfbc403<=0x400)return 0x1;if(_0xfbc403<=0x800)return 0x2;if(_0xfbc403<=0x1000)return 0x3;return 0x4;}function a42_0x4463(){const _0x3cc174=['event','Final\x20message\x20is\x20empty\x20after\x20construction\x20-\x20starting\x20fresh\x20conversation','Model\x20normalization:\x20','data','continue','properties','system','72RUOmuC','logger','server','role','\x20tools,\x20message_size=','update','createPromise','tdx','isArray','/v1/messages','[PROXY\x20ERROR]\x20Validation\x20failed:\x20messages\x20array\x20is\x20required\x20and\x20must\x20not\x20be\x20empty','setupMiddleware','Content-Type','message','warn','setupRoutes','Authorization','header:\x20','/health','Failed\x20to\x20extract\x20tool\x20results:','address','new\x20system\x20prompt(s)','[session:\x20','not_supported_error','content','trace','localeCompare','startChat','\x0a---\x0a\x0a','[PROXY\x20ERROR]\x20Configuration\x20error:\x20Project\x20ID\x20must\x20be\x20configured','s,\x20expires\x20after\x20',',\x20context:\x20','stop','trim','required','[PROXY\x20ERROR]\x20Uncaught\x20error\x20in\x20','handleCountTokens','[CONTEXT\x20LENGTH\x20ERROR]\x20',']\x20model:\x20','push','filter','3176015tSdHXl','body','GET','Assistant','invalid_request_error',']\x20Building\x20a\x20new\x20context\x20for\x20model\x20','anthropic-version','[PROXY\x20ERROR]\x20Chat\x20stream\x20is\x20undefined','register','2280rFvjmj',',\x20is\x20new\x20context:\x20',']\x20Created\x20new\x20chat\x20for\x20model\x20','stream','chatId',',\x20context\x20signature:\x20','map',':\x20estimated\x20input_tokens=','write','post','embeddedToolsByName','User','handleRouteError','Chat\x20ID:\x20','agentCache','stringify','116930OZcLzE','Started\x20cache\x20cleanup\x20interval\x20(runs\x20every\x20','name','messages','pop','default','Failed\x20to\x20create\x20chat,\x20will\x20fall\x20back\x20to\x20lazy\x20creation:','Failed\x20to\x20initialize\x20chat\x20stream.\x20Please\x20try\x20again.','System\x20prompts:\x20','keep-alive','Failed\x20to\x20reconstruct\x20message\x20-\x20all\x20parts\x20are\x20empty,\x20using\x20fallback','Context:','new\x20tool(s)','cleanupInterval','0.0.0.0',',\x20context=','Failed\x20to\x20start\x20proxy\x20server:\x20','sessionCache','text','no-cache','llm','12396FEuECC','setErrorHandler','Waiting\x20for\x20concurrent\x20chat\x20creation\x20for\x20context:\x20','\x20chars.\x20Cleared\x20chat\x20state\x20for\x20session\x20','keys','http://','4VXrDFF','attributes','Project\x20ID\x20must\x20be\x20configured','[PROXY\x20ERROR]\x20Non-streaming\x20responses\x20are\x20not\x20yet\x20supported','debug','Non-streaming\x20responses\x20are\x20not\x20yet\x20supported','budget_tokens','headers','url','[PROXY\x20ERROR]\x20Validation\x20failed:\x20message.content\x20must\x20be\x20a\x20string\x20or\x20array,\x20got:','TD\x20LLM\x20Proxy\x20Server','8173BsqmDi','x-api-key','api_error','Embedding','Reset\x20chat\x20ID\x20to\x20recover\x20on\x20next\x20request','8070200GhOjsw','join','\x20->\x20','\x20messages,\x20','start','Unknown\x20error','slice','\x20|\x20','catch','site','now','embeddedSystemPrompts','[PROXY\x20ERROR]\x20Validation\x20failed:\x20No\x20user\x20message\x20found\x20in\x20request','6yASHgB','Embedded\x20in\x20chat\x20-\x20system\x20prompts:\x20','sent','Evicted\x20oldest\x20chat\x20(signature:\x20','handleMessages','info','set','has','creating','Failed\x20to\x20generate\x20tool\x20prompt:','digest','Debug\x20info:',',\x20tool_names=[','listen','config',')\x20to\x20stay\x20under\x20',',\x20system_prompts=','2386BqnlUg','add','[PROXY\x20ERROR]\x20Unhandled\x20error\x20in\x20','error','length','user','get','984752uOajPU','getAgentForModel','http://localhost:','New\x20-\x20system\x20prompts:\x20','replace','unknown','\x20limit','raw','6612025KPfwpO','message.content\x20must\x20be\x20a\x20string\x20or\x20array','...\x22','request_too_large','text/event-stream','close','projectId','No\x20user\x20message\x20found\x20in\x20request','size','agentId','messageHistory','end',',\x20model=','substring','port','type','send','tools','POST','chats','\x20SSE\x20events.','sort','model','hex','Added\x20tool\x20names:','tools\x20must\x20be\x20an\x20array\x20if\x20provided','metadata','string','code',',\x20tools:\x20','Stream\x20complete.\x20Sent\x20','chat','...','method','\x20(reasoning:\x20','clear','[PROXY\x20ERROR]\x20Validation\x20failed:\x20tools\x20must\x20be\x20an\x20array\x20if\x20provided','Reset\x20chat\x20state\x20to\x20recover\x20on\x20next\x20request','getOrCreateSession','lastUsedAt'];a42_0x4463=function(){return _0x3cc174;};return a42_0x4463();}const MAX_CHATS_PER_SESSION=0xa,CACHE_EXPIRATION_MS=0xa*0x3c*0x3e8,CLEANUP_INTERVAL_MS=0x3c*0x3e8;export class ProxyServer{['server'];[a42_0x3cc939(0xe5)];[a42_0x3cc939(0xd2)];[a42_0x3cc939(0x11a)];['cleanupInterval'];[a42_0x3cc939(0x15c)];constructor(_0x3d3f91){const _0xa16414=a42_0x3cc939;this[_0xa16414(0x15c)]=_0x3d3f91['logger'],this['config']=_0x3d3f91,this['sessionCache']=new SessionCache({'maxChatsPerSession':MAX_CHATS_PER_SESSION,'cacheExpirationMs':CACHE_EXPIRATION_MS}),this['agentCache']=new Map(),this[_0xa16414(0x15d)]=a42_0x20869c({'logger':![],'bodyLimit':0x40*0x400*0x400}),this[_0xa16414(0x166)](),this[_0xa16414(0x16a)]();}async[a42_0x3cc939(0x125)](_0x182430,_0x3e7a24=0x0){const _0x46c533=a42_0x3cc939,_0x216d94=extractModelAlias(_0x182430),_0x3b41a3=resolveModelAlias(_0x216d94),_0x1e5f46=_0x3b41a3+'_'+_0x3e7a24;let _0x2c3a13=this[_0x46c533(0xd2)][_0x46c533(0x123)](_0x1e5f46);if(!_0x2c3a13){this[_0x46c533(0x15c)][_0x46c533(0xf3)](_0x46c533(0x156)+_0x182430+'\x20->\x20'+_0x216d94+_0x46c533(0x101)+_0x3b41a3),this[_0x46c533(0x15c)][_0x46c533(0xf3)]('Creating/looking\x20up\x20agent\x20for:\x20'+_0x3b41a3+_0x46c533(0x14e)+_0x3e7a24+')');const _0x41174e=await this[_0x46c533(0x11a)]['tdx'][_0x46c533(0xe8)]['getOrCreateDefaultAgent'](_0x3b41a3,_0x3e7a24);_0x2c3a13=_0x41174e['id'],this[_0x46c533(0xd2)][_0x46c533(0x112)](_0x1e5f46,_0x2c3a13),this[_0x46c533(0x15c)][_0x46c533(0xf3)]('Agent\x20cached:\x20'+_0x1e5f46+_0x46c533(0x101)+_0x2c3a13+'\x20('+_0x41174e[_0x46c533(0xf0)][_0x46c533(0xd6)]+')');}return _0x2c3a13;}['cleanupExpiredChats'](){const _0x4f7093=a42_0x3cc939;this[_0x4f7093(0xe5)]['cleanupExpiredChats']();}['setupMiddleware'](){const _0x59cafc=a42_0x3cc939;this['server'][_0x59cafc(0xc3)](a42_0x45e3ab,{'origin':!![],'methods':[_0x59cafc(0x186),_0x59cafc(0x13e),'OPTIONS'],'allowedHeaders':[_0x59cafc(0x167),_0x59cafc(0x16b),_0x59cafc(0xc1),_0x59cafc(0xfb)]}),this[_0x59cafc(0x15d)][_0x59cafc(0xea)]((_0x540e00,_0x44d2af,_0x57df17)=>{const _0x18b487=_0x59cafc,_0x46c29c=_0x540e00 instanceof Error?_0x540e00['message']:_0x18b487(0x104);this[_0x18b487(0x15c)][_0x18b487(0x120)](_0x18b487(0x11f)+_0x44d2af['method']+'\x20'+_0x44d2af[_0x18b487(0xf7)]+':',_0x540e00),_0x57df17[_0x18b487(0x148)](0x1f4)[_0x18b487(0x13c)]({'type':_0x18b487(0x120),'error':{'type':_0x18b487(0xfc),'message':_0x46c29c}});});}['handleRouteError'](_0x4a7f09,_0x16ec90,_0x1e956){const _0x2350fc=a42_0x3cc939,_0x300fcc=_0x16ec90 instanceof Error?_0x16ec90[_0x2350fc(0x168)]:_0x2350fc(0x104);this[_0x2350fc(0x15c)][_0x2350fc(0x120)](_0x2350fc(0x17e)+_0x4a7f09+':',_0x16ec90),!_0x1e956[_0x2350fc(0x10e)]&&_0x1e956['code'](0x1f4)['send']({'type':_0x2350fc(0x120),'error':{'type':'api_error','message':_0x300fcc}});}[a42_0x3cc939(0x16a)](){const _0x18fe01=a42_0x3cc939;this['server'][_0x18fe01(0x123)](_0x18fe01(0x16d),async()=>{const _0x128635=_0x18fe01;return{'status':'ok','message':_0x128635(0xf9)};}),this[_0x18fe01(0x15d)][_0x18fe01(0xcd)]('/v1/messages',async(_0x40db71,_0x300326)=>{const _0x32a229=_0x18fe01;return this[_0x32a229(0x110)](_0x40db71,_0x300326)['catch'](_0x3be004=>{const _0x34a76d=_0x32a229;this[_0x34a76d(0xd0)](_0x34a76d(0x164),_0x3be004,_0x300326);});}),this[_0x18fe01(0x15d)][_0x18fe01(0xcd)]('/v1/messages/count_tokens',async(_0x3afef6,_0x497a7e)=>{const _0x25fb64=_0x18fe01;return this['handleCountTokens'](_0x3afef6)[_0x25fb64(0x107)](_0x36e504=>{const _0x1a4dec=_0x25fb64;this[_0x1a4dec(0xd0)]('/v1/messages/count_tokens',_0x36e504,_0x497a7e);});});}async[a42_0x3cc939(0x110)](_0x5744c8,_0xe36a62){const _0x10e19e=a42_0x3cc939,_0x1d7c2b=_0x5744c8[_0x10e19e(0x185)];if(!_0x1d7c2b[_0x10e19e(0xd7)]||!Array[_0x10e19e(0x163)](_0x1d7c2b[_0x10e19e(0xd7)])||_0x1d7c2b[_0x10e19e(0xd7)][_0x10e19e(0x121)]===0x0){this[_0x10e19e(0x15c)]['error'](_0x10e19e(0x165)),_0xe36a62['code'](0x190)['send']({'type':_0x10e19e(0x120),'error':{'type':_0x10e19e(0x188),'message':'messages\x20array\x20is\x20required\x20and\x20must\x20not\x20be\x20empty'}});return;}if(_0x1d7c2b[_0x10e19e(0x13d)]&&!Array[_0x10e19e(0x163)](_0x1d7c2b['tools'])){this['logger'][_0x10e19e(0x120)](_0x10e19e(0x150)),_0xe36a62[_0x10e19e(0x148)](0x190)[_0x10e19e(0x13c)]({'type':_0x10e19e(0x120),'error':{'type':_0x10e19e(0x188),'message':_0x10e19e(0x145)}});return;}const _0x580e53=_0x1d7c2b['messages']?.[_0x10e19e(0x121)]??0x0,_0x8c253f=_0x1d7c2b['model']||_0x10e19e(0x129);this[_0x10e19e(0x15c)][_0x10e19e(0x111)](_0x5744c8[_0x10e19e(0x14d)]+'\x20'+_0x5744c8['url']+':\x20messages='+_0x580e53+_0x10e19e(0x138)+_0x8c253f),this['logger']['debug'](_0x10e19e(0x16c)+colorizeJSONCompact(_0x5744c8[_0x10e19e(0xf6)]));this['logger']['trace']&&this[_0x10e19e(0x15c)][_0x10e19e(0x174)](colorizeJSON(_0x1d7c2b,{'color':!![]}));const _0x38569f=_0x1d7c2b[_0x10e19e(0x146)]?.['user_id']||_0x10e19e(0xd9),_0x428c2e=this[_0x10e19e(0x11a)][_0x10e19e(0x132)];if(!_0x428c2e){this[_0x10e19e(0x15c)][_0x10e19e(0x120)](_0x10e19e(0x178)),_0xe36a62[_0x10e19e(0x148)](0x1f4)[_0x10e19e(0x13c)]({'type':_0x10e19e(0x120),'error':{'type':'api_error','message':_0x10e19e(0xf1)}});return;}const _0x249f3c=this['sessionCache'][_0x10e19e(0x152)](_0x38569f,_0x428c2e),_0x27abd6=[];if(_0x1d7c2b[_0x10e19e(0x15a)]){if(typeof _0x1d7c2b[_0x10e19e(0x15a)]==='string')_0x27abd6['push'](_0x1d7c2b[_0x10e19e(0x15a)]);else{if(Array[_0x10e19e(0x163)](_0x1d7c2b[_0x10e19e(0x15a)]))for(const _0x3c9f63 of _0x1d7c2b[_0x10e19e(0x15a)]){_0x3c9f63['type']===_0x10e19e(0xe6)&&_0x3c9f63[_0x10e19e(0xe6)]&&_0x27abd6[_0x10e19e(0x182)](_0x3c9f63[_0x10e19e(0xe6)]);}}}const _0x5b70f6=_0x1d7c2b[_0x10e19e(0x13d)]||[],_0x2ed985=_0x1d7c2b['thinking']?.[_0x10e19e(0xf5)],_0x1cbdea=mapBudgetTokensToReasoningEffort(_0x2ed985,this['config'][_0x10e19e(0x108)]),_0x3acdce=calculateContextSignature(_0x1d7c2b[_0x10e19e(0x142)],_0x27abd6,_0x5b70f6,_0x1cbdea);let _0x535a5e=_0x249f3c[_0x10e19e(0x13f)][_0x10e19e(0x123)](_0x3acdce);const _0x30c945=!_0x535a5e;if(!_0x535a5e){const _0xb61b11=await this[_0x10e19e(0x125)](_0x1d7c2b['model'],_0x1cbdea);_0x535a5e={'chatId':'','agentId':_0xb61b11,'contextSignature':_0x3acdce,'embeddedSystemPrompts':new Set(),'embeddedToolsByName':new Map(),'messageHistory':[],'lastUsedAt':Date['now']()},_0x249f3c[_0x10e19e(0x13f)][_0x10e19e(0x112)](_0x3acdce,_0x535a5e);if(_0x249f3c[_0x10e19e(0x13f)][_0x10e19e(0x134)]>MAX_CHATS_PER_SESSION){let _0x219b23=null,_0x4daec0=Date[_0x10e19e(0x109)]();for(const [_0x52cd82,_0x5dcd1d]of _0x249f3c[_0x10e19e(0x13f)]){_0x5dcd1d[_0x10e19e(0x153)]<_0x4daec0&&(_0x4daec0=_0x5dcd1d[_0x10e19e(0x153)],_0x219b23=_0x52cd82);}_0x219b23&&(_0x249f3c[_0x10e19e(0x13f)]['delete'](_0x219b23),this[_0x10e19e(0x15c)][_0x10e19e(0xf3)](_0x10e19e(0x10f)+_0x219b23+_0x10e19e(0x11b)+MAX_CHATS_PER_SESSION+_0x10e19e(0x12a)));}}else _0x535a5e[_0x10e19e(0x153)]=Date['now']();if(!_0x535a5e[_0x10e19e(0xc8)]){if(_0x535a5e[_0x10e19e(0x114)]&&_0x535a5e[_0x10e19e(0x161)]){this[_0x10e19e(0x15c)][_0x10e19e(0xf3)](_0x10e19e(0xeb)+_0x3acdce);try{_0x535a5e['chatId']=await _0x535a5e[_0x10e19e(0x161)];}catch(_0x403e57){this['logger'][_0x10e19e(0x120)]('Concurrent\x20chat\x20creation\x20failed,\x20will\x20fall\x20back\x20to\x20lazy\x20creation:',_0x403e57);}}else{if(!_0x535a5e['creating']){_0x535a5e[_0x10e19e(0x114)]=!![],_0x535a5e['createPromise']=((async()=>{const _0x3032b5=_0x10e19e;try{const _0x244813=await this['config'][_0x3032b5(0x162)][_0x3032b5(0xe8)][_0x3032b5(0x176)](_0x535a5e[_0x3032b5(0x135)]);return this['logger']['info']('['+_0x244813['id']+_0x3032b5(0xc6)+_0x1d7c2b[_0x3032b5(0x142)]+_0x3032b5(0xe3)+_0x3acdce),_0x244813['id'];}catch(_0x232466){this[_0x3032b5(0x15c)][_0x3032b5(0x120)](_0x3032b5(0xda),_0x232466);throw _0x232466;}finally{_0x535a5e[_0x3032b5(0x114)]=![],_0x535a5e['createPromise']=undefined;}})());try{_0x535a5e[_0x10e19e(0xc8)]=await _0x535a5e[_0x10e19e(0x161)];}catch{}}}}const _0x53b6e1=_0x27abd6[_0x10e19e(0x183)](_0x5b076f=>!_0x535a5e['embeddedSystemPrompts'][_0x10e19e(0x113)](_0x5b076f)),_0x3fe289=_0x5b70f6[_0x10e19e(0x183)](_0x4a2ae0=>!_0x535a5e[_0x10e19e(0xce)][_0x10e19e(0x113)](_0x4a2ae0[_0x10e19e(0xd6)]));this[_0x10e19e(0x15c)]['debug'](_0x10e19e(0x171)+_0x38569f+_0x10e19e(0x181)+_0x1d7c2b[_0x10e19e(0x142)]+_0x10e19e(0xc9)+_0x3acdce+_0x10e19e(0xc5)+_0x30c945),this[_0x10e19e(0x15c)]['debug'](_0x10e19e(0xd1)+_0x535a5e[_0x10e19e(0xc8)]),this[_0x10e19e(0x15c)]['debug'](_0x10e19e(0xdc)+_0x27abd6['length']+_0x10e19e(0x149)+_0x5b70f6[_0x10e19e(0x121)]),this['logger'][_0x10e19e(0xf3)](_0x10e19e(0x10d)+_0x535a5e[_0x10e19e(0x10a)][_0x10e19e(0x134)]+',\x20tools:\x20'+_0x535a5e[_0x10e19e(0xce)][_0x10e19e(0x134)]),this[_0x10e19e(0x15c)][_0x10e19e(0xf3)](_0x10e19e(0x127)+_0x53b6e1[_0x10e19e(0x121)]+_0x10e19e(0x149)+_0x3fe289[_0x10e19e(0x121)]);_0x53b6e1[_0x10e19e(0x121)]>0x0&&this[_0x10e19e(0x15c)][_0x10e19e(0xf3)]('Added\x20system\x20prompt\x20previews:',_0x53b6e1['map'](_0x2a5e0b=>_0x2a5e0b[_0x10e19e(0x139)](0x0,0x32)+_0x10e19e(0x14c))[_0x10e19e(0x100)](_0x10e19e(0x106)));_0x3fe289[_0x10e19e(0x121)]>0x0&&this[_0x10e19e(0x15c)][_0x10e19e(0xf3)](_0x10e19e(0x144),_0x3fe289[_0x10e19e(0xca)](_0x22bff5=>_0x22bff5[_0x10e19e(0xd6)])['join'](',\x20'));const _0x135bab=_0x535a5e[_0x10e19e(0x136)][_0x10e19e(0x121)],_0x108425=_0x1d7c2b[_0x10e19e(0xd7)][_0x10e19e(0x105)](_0x135bab);let _0x1a6894=_0x108425[_0x10e19e(0x183)](_0x185f6b=>_0x185f6b['role']===_0x10e19e(0x122))[_0x10e19e(0xd8)]();if(!_0x1a6894){_0x1a6894=_0x1d7c2b[_0x10e19e(0xd7)][_0x10e19e(0x183)](_0x2eb75e=>_0x2eb75e['role']===_0x10e19e(0x122))[_0x10e19e(0xd8)]();if(!_0x1a6894){this[_0x10e19e(0x15c)][_0x10e19e(0x120)](_0x10e19e(0x10b)),_0xe36a62[_0x10e19e(0x148)](0x190)[_0x10e19e(0x13c)]({'type':_0x10e19e(0x120),'error':{'type':'invalid_request_error','message':_0x10e19e(0x133)}});return;}}let _0x16a9e8;if(typeof _0x1a6894[_0x10e19e(0x173)]===_0x10e19e(0x147))_0x16a9e8=_0x1a6894[_0x10e19e(0x173)];else{if(_0x1a6894[_0x10e19e(0x173)]!=null&&Array[_0x10e19e(0x163)](_0x1a6894[_0x10e19e(0x173)]))_0x16a9e8=_0x1a6894['content'][_0x10e19e(0x183)](_0x797f8a=>_0x797f8a&&_0x797f8a['type']==='text'&&_0x797f8a['text'])[_0x10e19e(0xca)](_0xc8a3c1=>_0xc8a3c1[_0x10e19e(0xe6)])[_0x10e19e(0x100)]('\x0a');else{this[_0x10e19e(0x15c)]['error'](_0x10e19e(0xf8),typeof _0x1a6894[_0x10e19e(0x173)],_0x1a6894[_0x10e19e(0x173)]),_0xe36a62[_0x10e19e(0x148)](0x190)[_0x10e19e(0x13c)]({'type':_0x10e19e(0x120),'error':{'type':_0x10e19e(0x188),'message':_0x10e19e(0x12d)}});return;}}const _0x36f3f1=()=>{const _0x1b2daa=_0x10e19e,_0x484156=[];_0x27abd6[_0x1b2daa(0x121)]>0x0&&_0x484156['push'](_0x27abd6[_0x1b2daa(0x100)]('\x0a\x0a'));_0x5b70f6['length']>0x0&&_0x484156[_0x1b2daa(0x182)](generateToolPrompt(_0x5b70f6));if(_0x1d7c2b[_0x1b2daa(0xd7)]&&_0x1d7c2b['messages']['length']>0x1){const _0x3ba2b1=formatConversationHistory(_0x1d7c2b[_0x1b2daa(0xd7)]);_0x3ba2b1&&_0x484156[_0x1b2daa(0x182)]('[Previous\x20conversation]\x0a\x0a<conversation>\x0a'+_0x3ba2b1+'\x0a</conversation>');}return _0x484156[_0x1b2daa(0x182)]('[Current\x20message]\x0a\x0a'+_0x16a9e8),_0x484156['join'](_0x1b2daa(0x177));};let _0x5a5576;if(_0x30c945){this[_0x10e19e(0x15c)]['info']('['+_0x535a5e[_0x10e19e(0xc8)]+_0x10e19e(0xc0)+_0x1d7c2b['model']+_0x10e19e(0x11c)+_0x27abd6[_0x10e19e(0x121)]+',\x20tools='+_0x5b70f6[_0x10e19e(0x121)]+_0x10e19e(0x118)+_0x5b70f6[_0x10e19e(0xca)](_0x4dd3f5=>_0x4dd3f5[_0x10e19e(0xd6)])['join'](',\x20')+']'),_0x5a5576=_0x36f3f1();for(const _0x3cd577 of _0x27abd6){_0x535a5e[_0x10e19e(0x10a)][_0x10e19e(0x11e)](_0x3cd577);}for(const _0x1123b1 of _0x5b70f6){_0x535a5e[_0x10e19e(0xce)][_0x10e19e(0x112)](_0x1123b1[_0x10e19e(0xd6)],_0x1123b1);}}else{const _0x377393=[];_0x53b6e1[_0x10e19e(0x121)]>0x0&&(_0x377393[_0x10e19e(0x182)](_0x53b6e1[_0x10e19e(0x100)]('\x0a\x0a')),this[_0x10e19e(0x15c)][_0x10e19e(0xf3)]('Embedding',_0x53b6e1['length'],_0x10e19e(0x170)));if(_0x3fe289['length']>0x0)try{_0x377393[_0x10e19e(0x182)](generateToolPrompt(_0x3fe289)),this[_0x10e19e(0x15c)][_0x10e19e(0xf3)](_0x10e19e(0xfd),_0x3fe289[_0x10e19e(0x121)],_0x10e19e(0xe0));}catch(_0xb353bd){this[_0x10e19e(0x15c)][_0x10e19e(0x120)](_0x10e19e(0x115),_0xb353bd);}try{const _0x568c0f=extractToolResults(_0x108425);_0x568c0f&&(_0x377393[_0x10e19e(0x182)](_0x568c0f),this[_0x10e19e(0x15c)]['debug']('Including\x20tool\x20results'));}catch(_0x2eed68){this[_0x10e19e(0x15c)][_0x10e19e(0x120)](_0x10e19e(0x16e),_0x2eed68);}_0x377393[_0x10e19e(0x182)](_0x16a9e8),_0x5a5576=_0x377393[_0x10e19e(0x121)]>0x1?_0x377393['join'](_0x10e19e(0x177)):_0x16a9e8;for(const _0x27dab7 of _0x53b6e1){_0x535a5e[_0x10e19e(0x10a)][_0x10e19e(0x11e)](_0x27dab7);}for(const _0x2931bb of _0x3fe289){_0x535a5e[_0x10e19e(0xce)][_0x10e19e(0x112)](_0x2931bb['name'],_0x2931bb);}}(!_0x5a5576||!_0x5a5576[_0x10e19e(0x17c)]())&&(this[_0x10e19e(0x15c)][_0x10e19e(0x169)](_0x10e19e(0x155)),this[_0x10e19e(0x15c)][_0x10e19e(0x169)](_0x10e19e(0xdf),{'isNewContext':_0x30c945,'userMessageLength':_0x16a9e8?.[_0x10e19e(0x121)]||0x0,'systemPromptsCount':_0x27abd6[_0x10e19e(0x121)],'toolsCount':_0x5b70f6['length'],'messagesCount':_0x1d7c2b[_0x10e19e(0xd7)]?.['length']||0x0,'newMessagesCount':_0x108425[_0x10e19e(0x121)]}),clearChatState(_0x535a5e),_0x5a5576=_0x36f3f1(),(!_0x5a5576||!_0x5a5576[_0x10e19e(0x17c)]())&&(this['logger'][_0x10e19e(0x120)](_0x10e19e(0xde)),this['logger'][_0x10e19e(0x120)](_0x10e19e(0x117),{'systemPromptsCount':_0x27abd6[_0x10e19e(0x121)],'toolsCount':_0x5b70f6[_0x10e19e(0x121)],'messagesCount':_0x1d7c2b[_0x10e19e(0xd7)]?.[_0x10e19e(0x121)]||0x0,'userMessageLength':_0x16a9e8?.[_0x10e19e(0x121)]||0x0}),_0x5a5576=_0x10e19e(0x158)),this[_0x10e19e(0x15c)][_0x10e19e(0x111)]('Final\x20message\x20reconstructed\x20after\x20context\x20reset:',_0x5a5576['substring'](0x0,0x64)+_0x10e19e(0x14c)));const _0xf86bb7=_0x1d7c2b[_0x10e19e(0xc7)]!==![];if(_0xf86bb7){_0xe36a62[_0x10e19e(0x12b)]['writeHead'](0xc8,{'Content-Type':_0x10e19e(0x130),'Cache-Control':_0x10e19e(0xe7),'Connection':_0x10e19e(0xdd),'X-Accel-Buffering':'no'});const _0x40b7e8=generateMessageId();try{if(_0x535a5e[_0x10e19e(0xc8)]){const _0x3a1baa=_0x5a5576['substring'](0x0,0x32)[_0x10e19e(0x128)](/\n/g,'\x20');this[_0x10e19e(0x15c)][_0x10e19e(0x111)]('['+_0x535a5e[_0x10e19e(0xc8)]+']\x20Continue\x20chat\x20for\x20model\x20'+_0x1d7c2b[_0x10e19e(0x142)]+_0x10e19e(0xe3)+_0x3acdce+',\x20'+_0x1d7c2b[_0x10e19e(0xd7)][_0x10e19e(0x121)]+_0x10e19e(0x102)+_0x27abd6['length']+'\x20system\x20prompts,\x20'+_0x5b70f6['length']+_0x10e19e(0x15f)+_0x5a5576['length']+',\x20\x22'+_0x3a1baa+_0x10e19e(0x12e));}const _0x198466=this[_0x10e19e(0x11a)][_0x10e19e(0x162)][_0x10e19e(0xe8)][_0x10e19e(0x14b)](_0x5a5576,{'chatId':_0x535a5e[_0x10e19e(0xc8)]||undefined,'agentId':_0x535a5e[_0x10e19e(0xc8)]?undefined:_0x535a5e[_0x10e19e(0x135)]});if(!_0x198466){this[_0x10e19e(0x15c)][_0x10e19e(0x120)](_0x10e19e(0xc2)),this[_0x10e19e(0x15c)][_0x10e19e(0x120)]('Context:',JSON[_0x10e19e(0xd3)]({'chatId':_0x535a5e[_0x10e19e(0xc8)],'agentId':_0x535a5e[_0x10e19e(0x135)],'model':_0x1d7c2b[_0x10e19e(0x142)],'sessionId':_0x38569f,'contextSignature':_0x3acdce})),_0x535a5e[_0x10e19e(0xc8)]='',this['logger'][_0x10e19e(0x169)](_0x10e19e(0xfe));const _0x314060=formatAnthropicSSE({'type':'error','error':{'type':_0x10e19e(0xfc),'message':_0x10e19e(0xdb)},'request_id':_0x40b7e8});_0xe36a62['raw'][_0x10e19e(0xcc)](_0x314060),_0xe36a62[_0x10e19e(0x12b)][_0x10e19e(0x137)]();return;}_0x535a5e['messageHistory']=_0x1d7c2b[_0x10e19e(0xd7)];const _0x1cbc1a=_0x535a5e;async function*_0x55ed9d(_0x1141a4){const _0x17dba0=_0x10e19e;for await(const _0x2aecc5 of _0x1141a4){if(_0x2aecc5[_0x17dba0(0x13b)]==='metadata')_0x2aecc5['data'][_0x17dba0(0xc8)]&&!_0x1cbc1a[_0x17dba0(0xc8)]&&(_0x1cbc1a['chatId']=_0x2aecc5[_0x17dba0(0x157)]['chatId']);else _0x2aecc5['type']===_0x17dba0(0x154)&&(yield _0x2aecc5['data']);}}const _0x34c638=_0x55ed9d(_0x198466),_0x2bc925=estimateInputTokensFromRequest(_0x1d7c2b),_0x20e35d=transformTDStreamToAnthropic(_0x34c638,_0x40b7e8,_0x1d7c2b[_0x10e19e(0x142)],this[_0x10e19e(0x15c)],_0x16a9e8,_0x2bc925),_0x25a27f=_0x5a5576[_0x10e19e(0x121)];let _0x35f559=0x0;for await(const _0x22c8f7 of _0x20e35d){const _0x2428d8=formatAnthropicSSE(_0x22c8f7);_0x35f559++,this['logger'][_0x10e19e(0xf3)](colorizeJSONCompact(_0x22c8f7,{'color':!![]})),_0x22c8f7[_0x10e19e(0x13b)]==='error'&&_0x22c8f7['error'][_0x10e19e(0x13b)]===_0x10e19e(0x12f)&&(clearChatState(_0x535a5e),this[_0x10e19e(0x15c)][_0x10e19e(0x169)](_0x10e19e(0x180)+_0x22c8f7['error']['message']+'\x20Input\x20size:\x20'+_0x25a27f+_0x10e19e(0xec)+_0x38569f+_0x10e19e(0x17a)+_0x3acdce)),_0xe36a62['raw'][_0x10e19e(0xcc)](_0x2428d8);}this['logger'][_0x10e19e(0xf3)](_0x10e19e(0x14a)+_0x35f559+_0x10e19e(0x140)),_0xe36a62[_0x10e19e(0x12b)]['end']();}catch(_0x84c515){const _0x5ab571=_0x84c515 instanceof Error?_0x84c515[_0x10e19e(0x168)]:_0x10e19e(0x104);this[_0x10e19e(0x15c)]['error']('[PROXY\x20ERROR]\x20Streaming\x20error:',_0x84c515),this[_0x10e19e(0x15c)]['error'](_0x10e19e(0xdf),JSON[_0x10e19e(0xd3)]({'chatId':_0x535a5e[_0x10e19e(0xc8)],'agentId':_0x535a5e[_0x10e19e(0x135)],'model':_0x1d7c2b['model'],'sessionId':_0x38569f,'contextSignature':_0x3acdce})),_0x535a5e[_0x10e19e(0xc8)]='',this[_0x10e19e(0x15c)]['warn'](_0x10e19e(0x151));const _0xfec6ce=formatAnthropicSSE({'type':_0x10e19e(0x120),'error':{'type':'api_error','message':_0x5ab571},'request_id':_0x40b7e8});_0xe36a62[_0x10e19e(0x12b)][_0x10e19e(0xcc)](_0xfec6ce),_0xe36a62[_0x10e19e(0x12b)][_0x10e19e(0x137)]();}}else this['logger'][_0x10e19e(0x120)](_0x10e19e(0xf2)),_0xe36a62[_0x10e19e(0x148)](0x1f5)[_0x10e19e(0x13c)]({'type':_0x10e19e(0x120),'error':{'type':_0x10e19e(0x172),'message':_0x10e19e(0xf4)}});}async[a42_0x3cc939(0x17f)](_0x4d606d){const _0x37cc3c=a42_0x3cc939,_0x21f779=_0x4d606d[_0x37cc3c(0x185)],_0x1d8f0c=estimateInputTokensFromRequest(_0x21f779);return this['logger'][_0x37cc3c(0x111)](_0x4d606d[_0x37cc3c(0x14d)]+'\x20'+_0x4d606d[_0x37cc3c(0xf7)]+_0x37cc3c(0xcb)+_0x1d8f0c),{'input_tokens':_0x1d8f0c};}async[a42_0x3cc939(0x103)](){const _0x588fb5=a42_0x3cc939;try{await this[_0x588fb5(0x15d)][_0x588fb5(0x119)]({'port':this[_0x588fb5(0x11a)]['port'],'host':_0x588fb5(0xe2)}),this[_0x588fb5(0x15c)]['info']('Proxy\x20server\x20started\x20at\x20localhost:'+this[_0x588fb5(0x11a)][_0x588fb5(0x13a)]),this[_0x588fb5(0xe1)]=setInterval(()=>{this['cleanupExpiredChats']();},CLEANUP_INTERVAL_MS),this['logger'][_0x588fb5(0xf3)](_0x588fb5(0xd5)+CLEANUP_INTERVAL_MS/0x3e8+_0x588fb5(0x179)+CACHE_EXPIRATION_MS/0x3e8+'s)');}catch(_0x85953f){const _0x4517c9=_0x85953f instanceof Error?_0x85953f[_0x588fb5(0x168)]:_0x588fb5(0x104);throw new Error(_0x588fb5(0xe4)+_0x4517c9);}}async[a42_0x3cc939(0x17b)](){const _0x331764=a42_0x3cc939;this[_0x331764(0xe1)]&&(clearInterval(this[_0x331764(0xe1)]),this['cleanupInterval']=undefined),await this[_0x331764(0x15d)][_0x331764(0x131)]();}['getAddress'](){const _0x1ecff2=a42_0x3cc939,_0x5aeb4f=this[_0x1ecff2(0x15d)][_0x1ecff2(0x15d)][_0x1ecff2(0x16f)]();if(typeof _0x5aeb4f===_0x1ecff2(0x147))return _0x5aeb4f;if(_0x5aeb4f)return _0x1ecff2(0xee)+_0x5aeb4f['address']+':'+_0x5aeb4f[_0x1ecff2(0x13a)];return _0x1ecff2(0x126)+this[_0x1ecff2(0x11a)][_0x1ecff2(0x13a)];}}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
|
|
1
|
+
function a43_0x44f5(_0x42b671,_0x5b5669){const _0x1a2fff=a43_0x1a2f();return a43_0x44f5=function(_0x44f5d2,_0x2d2f4c){_0x44f5d2=_0x44f5d2-0xfd;let _0x106663=_0x1a2fff[_0x44f5d2];return _0x106663;},a43_0x44f5(_0x42b671,_0x5b5669);}const a43_0x2afd1f=a43_0x44f5;(function(_0x1e3a07,_0x128837){const _0xcbc66d=a43_0x44f5,_0x416487=_0x1e3a07();while(!![]){try{const _0x2670ad=parseInt(_0xcbc66d(0x100))/0x1+-parseInt(_0xcbc66d(0x106))/0x2*(parseInt(_0xcbc66d(0x10d))/0x3)+-parseInt(_0xcbc66d(0x101))/0x4+parseInt(_0xcbc66d(0x117))/0x5+-parseInt(_0xcbc66d(0xff))/0x6+-parseInt(_0xcbc66d(0x10a))/0x7+-parseInt(_0xcbc66d(0xfd))/0x8*(-parseInt(_0xcbc66d(0x10b))/0x9);if(_0x2670ad===_0x128837)break;else _0x416487['push'](_0x416487['shift']());}catch(_0x5a5443){_0x416487['push'](_0x416487['shift']());}}}(a43_0x1a2f,0x4b852));function a43_0x1a2f(){const _0x368fd8=['getTotalChatCount','chats','672210gtbCKC','delete','419840XXnxzI','maxChatsPerSession','1547004uLUseJ','222034mDCJUz','1549152xOPctl','clear','config','Session\x20','set','105478CUqJZH','getSessionCount','size','getOrCreateSession','215236KAjVgn','144qSKAaq','\x20not\x20found','12niEawU','lastUsedAt','cleanupExpiredChats','now','getOrCreateChat','get','getSession','sessions'];a43_0x1a2f=function(){return _0x368fd8;};return a43_0x1a2f();}export class SessionCache{[a43_0x2afd1f(0x114)];[a43_0x2afd1f(0x103)];constructor(_0x46484b){const _0x5af72b=a43_0x2afd1f;this[_0x5af72b(0x103)]=_0x46484b,this[_0x5af72b(0x114)]=new Map();}[a43_0x2afd1f(0x109)](_0x1c05fd,_0x223f9b){const _0x5e459b=a43_0x2afd1f;let _0xf91b08=this[_0x5e459b(0x114)][_0x5e459b(0x112)](_0x1c05fd);return!_0xf91b08&&(_0xf91b08={'projectId':_0x223f9b,'chats':new Map()},this[_0x5e459b(0x114)][_0x5e459b(0x105)](_0x1c05fd,_0xf91b08)),_0xf91b08;}[a43_0x2afd1f(0x113)](_0x14b4ef){const _0x11db5b=a43_0x2afd1f;return this[_0x11db5b(0x114)]['get'](_0x14b4ef);}[a43_0x2afd1f(0x111)](_0x279c54,_0x51dc8d,_0x7e60fb){const _0x48c72a=a43_0x2afd1f,_0x244932=this[_0x48c72a(0x114)]['get'](_0x279c54);if(!_0x244932)throw new Error(_0x48c72a(0x104)+_0x279c54+_0x48c72a(0x10c));let _0x2779cc=_0x244932[_0x48c72a(0x116)][_0x48c72a(0x112)](_0x51dc8d);if(!_0x2779cc){_0x2779cc={'chatId':'','agentId':_0x7e60fb,'contextSignature':_0x51dc8d,'embeddedSystemPrompts':new Set(),'embeddedToolsByName':new Map(),'messageHistory':[],'lastUsedAt':Date[_0x48c72a(0x110)]()},_0x244932[_0x48c72a(0x116)][_0x48c72a(0x105)](_0x51dc8d,_0x2779cc);if(_0x244932[_0x48c72a(0x116)][_0x48c72a(0x108)]>this[_0x48c72a(0x103)][_0x48c72a(0xfe)]){let _0x8a600c=null,_0x228158=Date[_0x48c72a(0x110)]();for(const [_0x4da0a2,_0x29c678]of _0x244932[_0x48c72a(0x116)]){_0x29c678[_0x48c72a(0x10e)]<_0x228158&&(_0x228158=_0x29c678[_0x48c72a(0x10e)],_0x8a600c=_0x4da0a2);}_0x8a600c&&_0x244932[_0x48c72a(0x116)][_0x48c72a(0x118)](_0x8a600c);}}else _0x2779cc[_0x48c72a(0x10e)]=Date[_0x48c72a(0x110)]();return _0x2779cc;}[a43_0x2afd1f(0x10f)](){const _0x3e4d09=a43_0x2afd1f,_0x30d41c=Date['now']();let _0x3ba80a=0x0;for(const [_0x3afada,_0x1e9a27]of this[_0x3e4d09(0x114)]){const _0x510231=[];for(const [_0x5e55a6,_0x129544]of _0x1e9a27[_0x3e4d09(0x116)]){_0x30d41c-_0x129544[_0x3e4d09(0x10e)]>this[_0x3e4d09(0x103)]['cacheExpirationMs']&&_0x510231['push'](_0x5e55a6);}for(const _0x4e6b7e of _0x510231){_0x1e9a27[_0x3e4d09(0x116)][_0x3e4d09(0x118)](_0x4e6b7e),_0x3ba80a++;}_0x1e9a27[_0x3e4d09(0x116)][_0x3e4d09(0x108)]===0x0&&this[_0x3e4d09(0x114)][_0x3e4d09(0x118)](_0x3afada);}return _0x3ba80a;}[a43_0x2afd1f(0x107)](){const _0x153783=a43_0x2afd1f;return this[_0x153783(0x114)][_0x153783(0x108)];}[a43_0x2afd1f(0x115)](){const _0x326d55=a43_0x2afd1f;let _0x1eb396=0x0;for(const _0x251782 of this[_0x326d55(0x114)]['values']()){_0x1eb396+=_0x251782[_0x326d55(0x116)]['size'];}return _0x1eb396;}['clear'](){const _0x530bf7=a43_0x2afd1f;this[_0x530bf7(0x114)][_0x530bf7(0x102)]();}}
|
package/dist/sdk/api.d.ts
CHANGED
|
@@ -5,8 +5,7 @@
|
|
|
5
5
|
* to any Treasure Data API endpoint.
|
|
6
6
|
*/
|
|
7
7
|
import type { APIType } from '../types/index.js';
|
|
8
|
-
import type {
|
|
9
|
-
import type { TDXLogger } from '../utils/tdx-logger.js';
|
|
8
|
+
import type { SDKContext } from './index.js';
|
|
10
9
|
import { type HTTPMethod } from '../client/http-client.js';
|
|
11
10
|
/**
|
|
12
11
|
* Options for raw API requests
|
|
@@ -89,11 +88,9 @@ export interface RawAPIResult<T = unknown> {
|
|
|
89
88
|
*/
|
|
90
89
|
export declare class RawAPI {
|
|
91
90
|
/** @internal */
|
|
92
|
-
private
|
|
91
|
+
private context;
|
|
93
92
|
/** @internal */
|
|
94
|
-
|
|
95
|
-
/** @internal */
|
|
96
|
-
constructor(config: SDKConfig, logger: TDXLogger);
|
|
93
|
+
constructor(context: SDKContext);
|
|
97
94
|
/**
|
|
98
95
|
* Make a raw HTTP request to any TD API endpoint
|
|
99
96
|
*
|
package/dist/sdk/api.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"api.d.ts","sourceRoot":"","sources":["../../src/sdk/api.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,mBAAmB,CAAC;AACjD,OAAO,KAAK,EAAE,
|
|
1
|
+
{"version":3,"file":"api.d.ts","sourceRoot":"","sources":["../../src/sdk/api.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,mBAAmB,CAAC;AACjD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAC7C,OAAO,EAAc,KAAK,UAAU,EAAE,MAAM,0BAA0B,CAAC;AAKvE;;GAEG;AACH,MAAM,WAAW,oBAAoB;IACnC;;;OAGG;IACH,MAAM,CAAC,EAAE,UAAU,CAAC;IAEpB;;;OAGG;IACH,IAAI,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IAEvB;;;;OAIG;IACH,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAEjC;;;OAGG;IACH,OAAO,CAAC,EAAE,OAAO,CAAC;IAElB;;;OAGG;IACH,cAAc,CAAC,EAAE,OAAO,CAAC;CAC1B;AAED;;GAEG;AACH,MAAM,WAAW,YAAY,CAAC,CAAC,GAAG,OAAO;IACvC;;OAEG;IACH,IAAI,EAAE,CAAC,CAAC;IAER;;OAEG;IACH,MAAM,EAAE,MAAM,CAAC;IAEf;;OAEG;IACH,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CAClC;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8BG;AACH,qBAAa,MAAM;IACjB,gBAAgB;IAChB,OAAO,CAAC,OAAO,CAAa;IAE5B,gBAAgB;gBACJ,OAAO,EAAE,UAAU;IAI/B;;;;;;;OAOG;IACG,OAAO,CAAC,CAAC,GAAG,OAAO,EACvB,QAAQ,EAAE,MAAM,EAChB,OAAO,GAAE,oBAAyB,GACjC,OAAO,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;IA4E3B;;;;;;OAMG;IACH,MAAM,CAAC,gBAAgB,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM;CAUlD"}
|
package/dist/sdk/api.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
|
|
1
|
+
function a44_0x2a69(_0x1d788f,_0x3ddd24){const _0x35f6a4=a44_0x35f6();return a44_0x2a69=function(_0x2a69c9,_0x3c8849){_0x2a69c9=_0x2a69c9-0x175;let _0x493818=_0x35f6a4[_0x2a69c9];return _0x493818;},a44_0x2a69(_0x1d788f,_0x3ddd24);}const a44_0x57b71e=a44_0x2a69;(function(_0x4b042a,_0x402698){const _0x1dde40=a44_0x2a69,_0x1e412c=_0x4b042a();while(!![]){try{const _0xf0c6ce=parseInt(_0x1dde40(0x182))/0x1*(-parseInt(_0x1dde40(0x175))/0x2)+-parseInt(_0x1dde40(0x18a))/0x3*(parseInt(_0x1dde40(0x180))/0x4)+-parseInt(_0x1dde40(0x188))/0x5*(parseInt(_0x1dde40(0x17a))/0x6)+-parseInt(_0x1dde40(0x18d))/0x7+parseInt(_0x1dde40(0x177))/0x8*(-parseInt(_0x1dde40(0x17c))/0x9)+parseInt(_0x1dde40(0x18b))/0xa+parseInt(_0x1dde40(0x189))/0xb;if(_0xf0c6ce===_0x402698)break;else _0x1e412c['push'](_0x1e412c['shift']());}catch(_0x1f7c34){_0x1e412c['push'](_0x1e412c['shift']());}}}(a44_0x35f6,0xb7b9e));function a44_0x35f6(){const _0x151582=['8ZhwdlD','request','5121UPOkKg','trino','data','Failed\x20to\x20read\x20request\x20body\x20from\x20file:\x20','context','utf-8','39230jRbvzD','26820849nThZIt','478011dpdOny','1286020tsaVdL','message','3736509uKlQgk','164jHHXlt','apiKey','506640esujTe','Content-Type','status','366khxljs','logger','9sNhXBq','site','readBodyFromFile','headers'];a44_0x35f6=function(){return _0x151582;};return a44_0x35f6();}import{HTTPClient}from'../client/http-client.js';import{getEndpoint}from'../types/index.js';import{getAuthHeaders,getTrinoHeaders,toHeaderRecord}from'../core/auth.js';import{readFileSync}from'fs';export class RawAPI{['context'];constructor(_0x588236){const _0x28fde1=a44_0x2a69;this[_0x28fde1(0x186)]=_0x588236;}async[a44_0x57b71e(0x181)](_0x475bee,_0x2b6079={}){const _0x3995ed=a44_0x57b71e,{method:method='GET',body:_0x5487a7,headers:_0x14e663={},apiType:apiType='td',includeHeaders:includeHeaders=![]}=_0x2b6079;if(!_0x475bee['startsWith']('/'))throw new Error('Endpoint\x20must\x20start\x20with\x20/:\x20'+_0x475bee);const _0x23630b=getEndpoint(this[_0x3995ed(0x186)][_0x3995ed(0x17d)],apiType);let _0x3835f2;if(apiType===_0x3995ed(0x183)){const _0x38d2f2=getTrinoHeaders(this[_0x3995ed(0x186)][_0x3995ed(0x17d)],this['context'][_0x3995ed(0x176)]);_0x3835f2={..._0x38d2f2,..._0x14e663};}else{const _0x5cd86c=getAuthHeaders(this['context'][_0x3995ed(0x17d)],this['context'][_0x3995ed(0x176)]);_0x3835f2={...toHeaderRecord(_0x5cd86c),..._0x14e663};}const _0xe79108=_0x3835f2;let _0x5bd322;_0x5487a7!==undefined&&(_0x5bd322=typeof _0x5487a7==='string'?_0x5487a7:JSON['stringify'](_0x5487a7),!_0xe79108['Content-Type']&&(_0xe79108[_0x3995ed(0x178)]='application/json'));const _0x14d788=new HTTPClient(_0x23630b,_0xe79108,this[_0x3995ed(0x186)][_0x3995ed(0x17b)]),_0x133a03=await _0x14d788[_0x3995ed(0x181)](method,_0x475bee,{'body':_0x5bd322,'includeHeaders':!![]});return includeHeaders?{'data':_0x133a03['data'],'status':_0x133a03['status'],'headers':_0x133a03[_0x3995ed(0x17f)]}:{'data':_0x133a03[_0x3995ed(0x184)],'status':_0x133a03[_0x3995ed(0x179)]};}static[a44_0x57b71e(0x17e)](_0x10663e){const _0x4c1875=a44_0x57b71e;try{return readFileSync(_0x10663e,_0x4c1875(0x187));}catch(_0x37264d){throw new Error(_0x4c1875(0x185)+_0x10663e+'.\x20'+('Error:\x20'+(_0x37264d instanceof Error?_0x37264d[_0x4c1875(0x18c)]:String(_0x37264d))));}}}
|
package/dist/sdk/api.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"api.js","sourceRoot":"","sources":["../../src/sdk/api.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;
|
|
1
|
+
{"version":3,"file":"api.js","sourceRoot":"","sources":["../../src/sdk/api.ts"],"names":[],"mappings":"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"}
|
package/dist/sdk/errors.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
const
|
|
1
|
+
const a45_0x214dda=a45_0x3f6a;(function(_0x509763,_0x529842){const _0xf823b7=a45_0x3f6a,_0x24460e=_0x509763();while(!![]){try{const _0x5eada7=-parseInt(_0xf823b7(0x118))/0x1+parseInt(_0xf823b7(0x107))/0x2+parseInt(_0xf823b7(0xf3))/0x3*(parseInt(_0xf823b7(0xf0))/0x4)+parseInt(_0xf823b7(0xeb))/0x5*(-parseInt(_0xf823b7(0xec))/0x6)+parseInt(_0xf823b7(0x108))/0x7*(-parseInt(_0xf823b7(0x114))/0x8)+-parseInt(_0xf823b7(0xf6))/0x9+-parseInt(_0xf823b7(0xfd))/0xa*(-parseInt(_0xf823b7(0xf7))/0xb);if(_0x5eada7===_0x529842)break;else _0x24460e['push'](_0x24460e['shift']());}catch(_0x29d690){_0x24460e['push'](_0x24460e['shift']());}}}(a45_0x3d96,0x640e0));function a45_0x3f6a(_0x191400,_0x454a8b){const _0x3d96f6=a45_0x3d96();return a45_0x3f6a=function(_0x3f6a38,_0x20dd9b){_0x3f6a38=_0x3f6a38-0xea;let _0x56cd19=_0x3d96f6[_0x3f6a38];return _0x56cd19;},a45_0x3f6a(_0x191400,_0x454a8b);}function a45_0x3d96(){const _0x17b78e=['SDKError','TRINO_INVALID_ARGUMENT','665779YnGgSa','originalMessage','stack','TRINO_INSUFFICIENT_RESOURCES','AGENT_NOT_FOUND','TRINO_INTERNAL_ERROR','TRINO_USER_CANCELLED','DATABASE_NOT_FOUND','NOT_FOUND','10gGZoUP','76932LlmhGZ','TRINO_SYNTAX_ERROR','RATE_LIMITED','HTTP_REQUEST_FAILURE','3071528oGKdJj','TABLE_NOT_FOUND','LLM_MALFORMED_MESSAGE','3flCXzz','USER_ERROR','cause','3331170aVcoMG','3641506jNKsfr','PERMISSION_DENIED','code','some','MISSING_ARGUMENT','LLM_CHAT_CREATION_FAILURE','40GascVI','LLM_PROJECT_NOT_FOUND','category','TRINO_NOT_FOUND','TIMEOUT','replace','\x0aCaused\x20by:\x20','INSTALLATION_FAILED','ALREADY_EXISTS','WORKFLOW_PROJECT_NOT_FOUND','314266EWyzid','399MTfYAl','INTERNAL','CHAT_NOT_FOUND','helpText','UNAUTHENTICATED','INVALID_ARGUMENT','UNAVAILABLE','LLM_STREAM_ERROR','message','INTERNAL_ERROR','COMMAND_NOT_FOUND','CANCELLED','109168skhMgc','includes'];a45_0x3d96=function(){return _0x17b78e;};return a45_0x3d96();}export var ErrorCategory;(function(_0x301be5){const _0x1d7c36=a45_0x3f6a;_0x301be5[_0x1d7c36(0xf4)]=_0x1d7c36(0xf4),_0x301be5['INTERNAL_ERROR']=_0x1d7c36(0x111);}(ErrorCategory||(ErrorCategory={})));export var ErrorCode;(function(_0x2e65c6){const _0x313949=a45_0x3f6a;_0x2e65c6[_0x313949(0xfb)]=_0x313949(0xfb),_0x2e65c6[_0x313949(0x10d)]=_0x313949(0x10d),_0x2e65c6['NOT_FOUND']=_0x313949(0xea),_0x2e65c6[_0x313949(0x11f)]=_0x313949(0x11f),_0x2e65c6[_0x313949(0xf1)]=_0x313949(0xf1),_0x2e65c6[_0x313949(0xfe)]='LLM_PROJECT_NOT_FOUND',_0x2e65c6[_0x313949(0x11c)]='AGENT_NOT_FOUND',_0x2e65c6[_0x313949(0x106)]=_0x313949(0x106),_0x2e65c6[_0x313949(0x10a)]=_0x313949(0x10a),_0x2e65c6['LLM_EMPTY_MESSAGE']='LLM_EMPTY_MESSAGE',_0x2e65c6[_0x313949(0x112)]='COMMAND_NOT_FOUND',_0x2e65c6[_0x313949(0x104)]=_0x313949(0x104),_0x2e65c6[_0x313949(0xf8)]='PERMISSION_DENIED',_0x2e65c6[_0x313949(0x10c)]=_0x313949(0x10c),_0x2e65c6[_0x313949(0x105)]=_0x313949(0x105),_0x2e65c6[_0x313949(0x113)]=_0x313949(0x113),_0x2e65c6[_0x313949(0xed)]=_0x313949(0xed),_0x2e65c6['TRINO_NOT_FOUND']=_0x313949(0x100),_0x2e65c6['TRINO_INVALID_ARGUMENT']=_0x313949(0x117),_0x2e65c6[_0x313949(0x11e)]=_0x313949(0x11e),_0x2e65c6[_0x313949(0x10e)]=_0x313949(0x10e),_0x2e65c6[_0x313949(0x101)]='TIMEOUT',_0x2e65c6[_0x313949(0xef)]='HTTP_REQUEST_FAILURE',_0x2e65c6[_0x313949(0x109)]=_0x313949(0x109),_0x2e65c6[_0x313949(0xee)]='RATE_LIMITED',_0x2e65c6[_0x313949(0x11d)]='TRINO_INTERNAL_ERROR',_0x2e65c6[_0x313949(0x11b)]=_0x313949(0x11b),_0x2e65c6[_0x313949(0xf2)]=_0x313949(0xf2),_0x2e65c6[_0x313949(0x10f)]=_0x313949(0x10f),_0x2e65c6[_0x313949(0xfc)]=_0x313949(0xfc);}(ErrorCode||(ErrorCode={})));const ERROR_CODE_CATEGORY={[ErrorCode[a45_0x214dda(0xfb)]]:ErrorCategory[a45_0x214dda(0xf4)],[ErrorCode[a45_0x214dda(0x10d)]]:ErrorCategory[a45_0x214dda(0xf4)],[ErrorCode['NOT_FOUND']]:ErrorCategory[a45_0x214dda(0xf4)],[ErrorCode[a45_0x214dda(0x11f)]]:ErrorCategory['USER_ERROR'],[ErrorCode['TABLE_NOT_FOUND']]:ErrorCategory['USER_ERROR'],[ErrorCode[a45_0x214dda(0xfe)]]:ErrorCategory[a45_0x214dda(0xf4)],[ErrorCode[a45_0x214dda(0x11c)]]:ErrorCategory['USER_ERROR'],[ErrorCode[a45_0x214dda(0x106)]]:ErrorCategory[a45_0x214dda(0xf4)],[ErrorCode[a45_0x214dda(0x10a)]]:ErrorCategory[a45_0x214dda(0xf4)],[ErrorCode['LLM_EMPTY_MESSAGE']]:ErrorCategory[a45_0x214dda(0xf4)],[ErrorCode[a45_0x214dda(0x112)]]:ErrorCategory[a45_0x214dda(0xf4)],[ErrorCode[a45_0x214dda(0x104)]]:ErrorCategory[a45_0x214dda(0xf4)],[ErrorCode[a45_0x214dda(0xf8)]]:ErrorCategory[a45_0x214dda(0xf4)],[ErrorCode[a45_0x214dda(0x10c)]]:ErrorCategory[a45_0x214dda(0xf4)],[ErrorCode['ALREADY_EXISTS']]:ErrorCategory[a45_0x214dda(0xf4)],[ErrorCode[a45_0x214dda(0x113)]]:ErrorCategory[a45_0x214dda(0xf4)],[ErrorCode[a45_0x214dda(0xed)]]:ErrorCategory[a45_0x214dda(0xf4)],[ErrorCode[a45_0x214dda(0x100)]]:ErrorCategory['USER_ERROR'],[ErrorCode[a45_0x214dda(0x117)]]:ErrorCategory['USER_ERROR'],[ErrorCode['TRINO_USER_CANCELLED']]:ErrorCategory[a45_0x214dda(0xf4)],[ErrorCode['UNAVAILABLE']]:ErrorCategory[a45_0x214dda(0x111)],[ErrorCode[a45_0x214dda(0x101)]]:ErrorCategory['INTERNAL_ERROR'],[ErrorCode[a45_0x214dda(0xef)]]:ErrorCategory['INTERNAL_ERROR'],[ErrorCode[a45_0x214dda(0x109)]]:ErrorCategory[a45_0x214dda(0x111)],[ErrorCode[a45_0x214dda(0xee)]]:ErrorCategory[a45_0x214dda(0x111)],[ErrorCode[a45_0x214dda(0x11d)]]:ErrorCategory['INTERNAL_ERROR'],[ErrorCode[a45_0x214dda(0x11b)]]:ErrorCategory['INTERNAL_ERROR'],[ErrorCode[a45_0x214dda(0xf2)]]:ErrorCategory[a45_0x214dda(0x111)],[ErrorCode['LLM_STREAM_ERROR']]:ErrorCategory['INTERNAL_ERROR'],[ErrorCode[a45_0x214dda(0xfc)]]:ErrorCategory[a45_0x214dda(0x111)]};export function getErrorCategory(_0x2c64e1){return ERROR_CODE_CATEGORY[_0x2c64e1];}export function isRetryableError(_0xc97ab8){return getErrorCategory(_0xc97ab8)===ErrorCategory['INTERNAL_ERROR'];}export class SDKError extends Error{[a45_0x214dda(0xf9)];[a45_0x214dda(0x10b)];[a45_0x214dda(0xf5)];constructor(_0x5bb626,_0x3a9488,_0x1ede7e,_0x56c900){const _0x4eb5ea=a45_0x214dda;super('['+_0x5bb626+']\x20'+_0x3a9488),this['name']=_0x4eb5ea(0x116),this['code']=_0x5bb626,this[_0x4eb5ea(0x10b)]=_0x56c900?.[_0x4eb5ea(0x10b)],this[_0x4eb5ea(0xf5)]=_0x1ede7e,_0x1ede7e instanceof Error&&(this['stack']=this[_0x4eb5ea(0x11a)]+_0x4eb5ea(0x103)+_0x1ede7e['stack']);}get[a45_0x214dda(0xff)](){const _0x50e63d=a45_0x214dda;return getErrorCategory(this[_0x50e63d(0xf9)]);}['isRetryable'](){const _0x32ce88=a45_0x214dda;return isRetryableError(this[_0x32ce88(0xf9)]);}get[a45_0x214dda(0x119)](){const _0x23b6ac=a45_0x214dda;return this[_0x23b6ac(0x110)][_0x23b6ac(0x102)](/^\[.*?\]\s*/,'');}}export function errorContains(_0x3984c8,..._0x5d4ded){const _0x2b9506=a45_0x214dda,_0x3f2f1f=_0x3984c8?.['message']||'',_0x5c0531=_0x3984c8?.['cause'],_0x5e88fe=_0x5c0531?.[_0x2b9506(0x110)]||'';return _0x5d4ded[_0x2b9506(0xfa)](_0x4b8122=>_0x3f2f1f[_0x2b9506(0x115)](_0x4b8122)||_0x5e88fe[_0x2b9506(0x115)](_0x4b8122));}
|
package/dist/sdk/index.d.ts
CHANGED
|
@@ -13,54 +13,46 @@
|
|
|
13
13
|
*
|
|
14
14
|
* @example
|
|
15
15
|
* ```typescript
|
|
16
|
-
* import { TDX
|
|
16
|
+
* import { TDX } from '@treasuredata/tdx/sdk';
|
|
17
17
|
*
|
|
18
18
|
* // Method 1: Pass API key directly (works in browser and Node.js)
|
|
19
|
-
* const
|
|
19
|
+
* const tdx = TDX.create({
|
|
20
20
|
* site: 'us01',
|
|
21
21
|
* apiKey: 'your_api_key_id/your_api_key_secret'
|
|
22
22
|
* });
|
|
23
|
-
* const tdx = new TDX(config);
|
|
24
23
|
*
|
|
25
24
|
* // Method 2: Load from environment variable or config file (Node.js only)
|
|
26
25
|
* // export TD_API_KEY_US01=your_api_key
|
|
27
26
|
* // Or create ~/.config/tdx/.env with:
|
|
28
27
|
* // TD_API_KEY_US01=your_api_key
|
|
29
|
-
* const
|
|
30
|
-
* const tdx2 = new TDX(config2);
|
|
28
|
+
* const tdx2 = TDX.create({ site: 'us01' });
|
|
31
29
|
*
|
|
32
|
-
* // Method 3:
|
|
33
|
-
* const
|
|
34
|
-
* const tdx3 = new TDX(config3);
|
|
30
|
+
* // Method 3: Use defaults (us01, API key from env)
|
|
31
|
+
* const tdx3 = TDX.create();
|
|
35
32
|
*
|
|
36
33
|
* // List databases
|
|
37
|
-
* const databases = await tdx.
|
|
34
|
+
* const databases = await tdx.query.listDatabases();
|
|
38
35
|
*
|
|
39
36
|
* // List tables
|
|
40
|
-
* const tables = await tdx.
|
|
37
|
+
* const tables = await tdx.query.listTables('mydb');
|
|
41
38
|
*
|
|
42
39
|
* // Describe table
|
|
43
|
-
* const schema = await tdx.
|
|
40
|
+
* const schema = await tdx.query.describeTable('mydb', 'mytable');
|
|
44
41
|
*
|
|
45
42
|
* // Run query
|
|
46
|
-
* const result = await tdx.query('SELECT * FROM mydb.mytable LIMIT 10');
|
|
43
|
+
* const result = await tdx.query.execute('SELECT * FROM mydb.mytable LIMIT 10');
|
|
47
44
|
* ```
|
|
48
45
|
*/
|
|
49
46
|
import type { TDSite, UserInfo } from '../types/index.js';
|
|
50
47
|
import type { CompleteQueryResult } from '../types/trino.js';
|
|
51
|
-
import {
|
|
52
|
-
import {
|
|
53
|
-
import {
|
|
54
|
-
import {
|
|
55
|
-
import { WorkflowAPI } from './workflow.js';
|
|
56
|
-
import { LLMAPI } from './llm.js';
|
|
57
|
-
import { JobAPI } from './job.js';
|
|
48
|
+
import { SegmentSDK } from './segment.js';
|
|
49
|
+
import { WorkflowSDK } from './workflow.js';
|
|
50
|
+
import { LLMSDK } from './llm.js';
|
|
51
|
+
import { JobSDK } from './job.js';
|
|
58
52
|
import { RawAPI } from './api.js';
|
|
59
|
-
import {
|
|
53
|
+
import { QuerySDK } from './query.js';
|
|
60
54
|
import { LogLevel, TDXLogger } from '../utils/tdx-logger.js';
|
|
61
55
|
export * from './errors.js';
|
|
62
|
-
export * from './database.js';
|
|
63
|
-
export * from './table.js';
|
|
64
56
|
export * from './segment.js';
|
|
65
57
|
export * from './workflow.js';
|
|
66
58
|
export * from './llm.js';
|
|
@@ -75,15 +67,16 @@ export type { TrinoColumn, QueryStats, QueryStage } from '../types/trino.js';
|
|
|
75
67
|
export type { Agent, Chat, ChatEvent, ChatContentEvent, ChatInputEvent, ChatToolCallEvent, ChatToolResultEvent, ChatOutputEvent, ChatImageEvent, ChatErrorEvent, ChatReasoningEvent, ChatSessionMetadata, ChatStreamEvent, ChatHistoryResponse, LLMProject, ModelInfo, } from '../types/index.js';
|
|
76
68
|
export type { Segment, ParentSegment, ParentSegmentField, SegmentFolder, SegmentFolderDetails, SegmentTreeNode, Activation, ResolvedSegmentPath, ResourceType, CreateSegmentRequest, CreateSegmentResponse, CreateParentSegmentRequest, CreateParentSegmentResponse, CreateSegmentFolderRequest, CreateSegmentFolderResponse, UpdateSegmentRequest, UpdateSegmentResponse, SegmentRule, SegmentCondition, AttributeRequest, AudienceFilter, BehaviorRequest, BehaviorSchemaItem, CustomerGroupRequest, CustomerGroupAttribute, CustomerGroupBehavior, CustomerGroupBehaviorSchemaItem, SegmentLeftValue, SegmentOperator, } from '../types/cdp.js';
|
|
77
69
|
export type { Workflow, WorkflowProject, WorkflowSession, WorkflowAttempt, WorkflowTask, WorkflowLogEntry, SessionStatus, } from '../types/workflow.js';
|
|
78
|
-
export type { CreateAgentParams, CreateProjectParams, UpdateAgentParams, } from '../client/llm-client.js';
|
|
70
|
+
export type { CreateAgentParams, CreateProjectParams, UpdateAgentParams, } from '../client/llm-api-client.js';
|
|
79
71
|
/**
|
|
80
|
-
* SDK configuration
|
|
72
|
+
* SDK configuration options
|
|
81
73
|
*/
|
|
82
74
|
export interface SDKConfig {
|
|
83
75
|
/**
|
|
84
76
|
* TD site/region
|
|
77
|
+
* @default 'us01'
|
|
85
78
|
*/
|
|
86
|
-
site
|
|
79
|
+
site?: TDSite;
|
|
87
80
|
/**
|
|
88
81
|
* TD API key (format: key_id/secret)
|
|
89
82
|
* Optional when used in browser with cookie-based authentication
|
|
@@ -91,26 +84,33 @@ export interface SDKConfig {
|
|
|
91
84
|
apiKey?: string;
|
|
92
85
|
/**
|
|
93
86
|
* Log level for SDK operations
|
|
87
|
+
* @default LogLevel.INFO
|
|
94
88
|
*/
|
|
95
|
-
logLevel
|
|
89
|
+
logLevel?: LogLevel;
|
|
96
90
|
}
|
|
97
91
|
/**
|
|
98
|
-
*
|
|
99
|
-
*
|
|
100
|
-
* This function should be called before creating SDK instances.
|
|
101
|
-
* It loads configuration from environment variables or config file
|
|
102
|
-
* if apiKey is not provided directly.
|
|
103
|
-
*
|
|
104
|
-
* For browser usage with cookie-based authentication, apiKey is optional.
|
|
105
|
-
*
|
|
106
|
-
* @param options - SDK configuration options
|
|
107
|
-
* @returns Resolved SDKConfig (apiKey may be undefined for browser usage)
|
|
92
|
+
* SDK context (resolved config + initialized logger)
|
|
93
|
+
* Passed to SDK classes and API clients
|
|
108
94
|
*/
|
|
109
|
-
export
|
|
110
|
-
|
|
95
|
+
export interface SDKContext {
|
|
96
|
+
/**
|
|
97
|
+
* TD site/region
|
|
98
|
+
*/
|
|
99
|
+
site: TDSite;
|
|
100
|
+
/**
|
|
101
|
+
* TD API key (format: key_id/secret)
|
|
102
|
+
* Optional when used in browser with cookie-based authentication
|
|
103
|
+
*/
|
|
111
104
|
apiKey?: string;
|
|
112
|
-
|
|
113
|
-
|
|
105
|
+
/**
|
|
106
|
+
* Log level for SDK operations
|
|
107
|
+
*/
|
|
108
|
+
logLevel: LogLevel;
|
|
109
|
+
/**
|
|
110
|
+
* Logger instance
|
|
111
|
+
*/
|
|
112
|
+
logger: TDXLogger;
|
|
113
|
+
}
|
|
114
114
|
/**
|
|
115
115
|
* TDX SDK - Main class
|
|
116
116
|
*
|
|
@@ -118,89 +118,78 @@ export declare function loadLocalSDKConfig(options?: {
|
|
|
118
118
|
*/
|
|
119
119
|
export declare class TDX {
|
|
120
120
|
/** @internal */
|
|
121
|
-
|
|
122
|
-
/** @internal */
|
|
123
|
-
private client;
|
|
124
|
-
/** @internal */
|
|
125
|
-
tdClient: TDClient;
|
|
126
|
-
/** @internal */
|
|
127
|
-
private cdpClient;
|
|
128
|
-
/** @internal */
|
|
129
|
-
private workflowClient;
|
|
130
|
-
/** @internal */
|
|
131
|
-
private llmClient;
|
|
132
|
-
/**
|
|
133
|
-
* Database operations API
|
|
134
|
-
*/
|
|
135
|
-
readonly database: DatabaseAPI;
|
|
121
|
+
readonly context: SDKContext;
|
|
136
122
|
/**
|
|
137
|
-
*
|
|
123
|
+
* Query operations SDK
|
|
124
|
+
*
|
|
125
|
+
* Provides Trino query execution and schema introspection:
|
|
126
|
+
* - execute() - Execute arbitrary SQL queries
|
|
127
|
+
* - listDatabases() - List databases
|
|
128
|
+
* - listTables() - List tables
|
|
129
|
+
* - describeTable() - Describe table schema
|
|
130
|
+
* - showTable() - Show table contents
|
|
138
131
|
*/
|
|
139
|
-
readonly
|
|
132
|
+
readonly query: QuerySDK;
|
|
140
133
|
/**
|
|
141
134
|
* Segment operations API (CDP)
|
|
142
135
|
*/
|
|
143
|
-
readonly segment:
|
|
136
|
+
readonly segment: SegmentSDK;
|
|
144
137
|
/**
|
|
145
138
|
* Workflow operations API
|
|
146
139
|
*/
|
|
147
|
-
readonly workflow:
|
|
140
|
+
readonly workflow: WorkflowSDK;
|
|
148
141
|
/**
|
|
149
142
|
* LLM operations API (agents, chat)
|
|
150
143
|
*/
|
|
151
|
-
readonly llm:
|
|
144
|
+
readonly llm: LLMSDK;
|
|
152
145
|
/**
|
|
153
146
|
* Job operations API
|
|
154
147
|
*/
|
|
155
|
-
readonly jobs:
|
|
148
|
+
readonly jobs: JobSDK;
|
|
156
149
|
/**
|
|
157
150
|
* Raw API access - Make direct HTTP requests to any TD API endpoint
|
|
158
151
|
*/
|
|
159
152
|
readonly api: RawAPI;
|
|
160
153
|
/**
|
|
161
|
-
* Create TDX SDK instance
|
|
154
|
+
* Create TDX SDK instance from configuration
|
|
155
|
+
*
|
|
156
|
+
* This is the recommended way to create a TDX instance.
|
|
162
157
|
*
|
|
163
|
-
* @param config -
|
|
158
|
+
* @param config - SDK configuration options
|
|
159
|
+
* @returns TDX instance
|
|
164
160
|
*
|
|
165
161
|
* @example
|
|
166
162
|
* ```typescript
|
|
167
|
-
* import { TDX
|
|
163
|
+
* import { TDX } from '@treasuredata/tdx/sdk';
|
|
168
164
|
*
|
|
169
165
|
* // Method 1: Pass API key directly (works everywhere)
|
|
170
|
-
* const
|
|
166
|
+
* const tdx = TDX.create({
|
|
171
167
|
* site: 'us01',
|
|
172
168
|
* apiKey: 'your_key_id/your_key_secret'
|
|
173
169
|
* });
|
|
174
|
-
* const tdx = new TDX(config);
|
|
175
170
|
*
|
|
176
171
|
* // Method 2: Load from environment variable (Node.js only)
|
|
177
172
|
* // export TD_API_KEY_US01=your_api_key
|
|
178
|
-
* const
|
|
179
|
-
*
|
|
173
|
+
* const tdx = TDX.create({ site: 'us01' });
|
|
174
|
+
*
|
|
175
|
+
* // Method 3: Use defaults (us01, API key from env)
|
|
176
|
+
* const tdx = TDX.create();
|
|
177
|
+
*
|
|
178
|
+
* // Use the SDK
|
|
179
|
+
* const databases = await tdx.query.listDatabases();
|
|
180
180
|
* ```
|
|
181
181
|
*/
|
|
182
|
-
|
|
182
|
+
static create(config?: SDKConfig): TDX;
|
|
183
183
|
/**
|
|
184
|
-
*
|
|
185
|
-
*
|
|
186
|
-
* @param sql - SQL query to execute
|
|
187
|
-
* @param options - Query options (catalog, schema)
|
|
188
|
-
* @returns Query result with data and metadata
|
|
189
|
-
* @throws {SDKError} When the query execution fails
|
|
190
|
-
* @throws {Error} When SQL is invalid (empty or whitespace-only)
|
|
191
|
-
*
|
|
192
|
-
* @example
|
|
193
|
-
* ```typescript
|
|
194
|
-
* // Simple query
|
|
195
|
-
* const result = await tdx.query('SELECT * FROM mydb.users LIMIT 10');
|
|
196
|
-
* console.log(result.data);
|
|
184
|
+
* Create TDX SDK instance
|
|
197
185
|
*
|
|
198
|
-
*
|
|
199
|
-
*
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
|
|
186
|
+
* @param context - SDK context (use TDX.create() for simpler initialization)
|
|
187
|
+
* @internal
|
|
188
|
+
*/
|
|
189
|
+
constructor(context: SDKContext);
|
|
190
|
+
/**
|
|
191
|
+
* Logger instance
|
|
203
192
|
*/
|
|
204
|
-
|
|
193
|
+
get logger(): TDXLogger;
|
|
205
194
|
}
|
|
206
195
|
//# sourceMappingURL=index.d.ts.map
|
package/dist/sdk/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/sdk/index.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/sdk/index.ts"],"names":[],"mappings":"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"}
|