@treasuredata/tdx 0.8.11 → 0.9.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/bin.js +1 -1
- package/dist/build-info.json +2 -2
- package/dist/cli-categories.d.ts +1 -1
- package/dist/cli-categories.js +1 -1
- package/dist/cli-categories.js.map +1 -1
- package/dist/cli.d.ts.map +1 -1
- package/dist/cli.js +1 -1
- package/dist/cli.js.map +1 -1
- package/dist/client/cdp-api-client.js +1 -1
- package/dist/client/engage-api-client.js +1 -1
- package/dist/client/http-client.js +1 -1
- package/dist/client/llm-api-client.d.ts +88 -0
- package/dist/client/llm-api-client.d.ts.map +1 -1
- package/dist/client/llm-api-client.js +1 -1
- package/dist/client/llm-api-client.js.map +1 -1
- package/dist/client/rate-limiter.js +1 -1
- package/dist/client/td-api-client.js +1 -1
- package/dist/client/trino-api-client.js +1 -1
- package/dist/client/workflow-client.js +1 -1
- package/dist/commands/activations.js +1 -1
- package/dist/commands/agent-command.d.ts +32 -0
- package/dist/commands/agent-command.d.ts.map +1 -0
- package/dist/commands/agent-command.js +1 -0
- package/dist/commands/agent-command.js.map +1 -0
- package/dist/commands/api-command.js +1 -1
- package/dist/commands/auth-command.js +1 -1
- package/dist/commands/chat-command.d.ts +3 -2
- package/dist/commands/chat-command.d.ts.map +1 -1
- package/dist/commands/chat-command.js +1 -1
- package/dist/commands/chat-command.js.map +1 -1
- package/dist/commands/claude-command.d.ts +23 -0
- 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/context-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.d.ts +12 -0
- package/dist/commands/journey-command.d.ts.map +1 -1
- package/dist/commands/journey-command.js +1 -1
- package/dist/commands/journey-command.js.map +1 -1
- package/dist/commands/llm-command.d.ts +8 -4
- package/dist/commands/llm-command.d.ts.map +1 -1
- package/dist/commands/llm-command.js +1 -1
- package/dist/commands/llm-command.js.map +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/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.d.ts.map +1 -1
- package/dist/commands/segment-push-command.js +1 -1
- package/dist/commands/segment-push-command.js.map +1 -1
- package/dist/commands/segment-update-command.js +1 -1
- package/dist/commands/segment-use-command.js +1 -1
- package/dist/commands/segments.d.ts.map +1 -1
- package/dist/commands/segments.js +1 -1
- package/dist/commands/segments.js.map +1 -1
- package/dist/commands/show.js +1 -1
- package/dist/commands/tables.js +1 -1
- package/dist/commands/use-command.d.ts +1 -0
- package/dist/commands/use-command.d.ts.map +1 -1
- package/dist/commands/use-command.js +1 -1
- package/dist/commands/use-command.js.map +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/config.d.ts +32 -0
- package/dist/core/config.d.ts.map +1 -1
- package/dist/core/config.js +1 -1
- package/dist/core/config.js.map +1 -1
- package/dist/core/connection-cache.js +1 -1
- package/dist/core/credential-cache.js +1 -1
- package/dist/core/global-context.d.ts +1 -0
- package/dist/core/global-context.d.ts.map +1 -1
- package/dist/core/global-context.js +1 -1
- package/dist/core/global-context.js.map +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.d.ts +1 -0
- package/dist/core/session.d.ts.map +1 -1
- package/dist/core/session.js +1 -1
- package/dist/core/session.js.map +1 -1
- package/dist/core/user-cache.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/server.js +1 -1
- package/dist/proxy/session-cache.js +1 -1
- package/dist/sdk/agent/agent-yaml.d.ts +386 -0
- package/dist/sdk/agent/agent-yaml.d.ts.map +1 -0
- package/dist/sdk/agent/agent-yaml.js +1 -0
- package/dist/sdk/agent/agent-yaml.js.map +1 -0
- package/dist/sdk/api.js +1 -1
- package/dist/sdk/connection.js +1 -1
- package/dist/sdk/engage.js +1 -1
- package/dist/sdk/errors.d.ts +6 -0
- package/dist/sdk/errors.d.ts.map +1 -1
- package/dist/sdk/errors.js +1 -1
- package/dist/sdk/errors.js.map +1 -1
- package/dist/sdk/index.js +1 -1
- package/dist/sdk/job.js +1 -1
- package/dist/sdk/journey.js +1 -1
- package/dist/sdk/llm.d.ts +114 -0
- 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.js +1 -1
- package/dist/sdk/segment/child-segment-yaml.d.ts +4 -0
- package/dist/sdk/segment/child-segment-yaml.d.ts.map +1 -1
- package/dist/sdk/segment/child-segment-yaml.js +1 -1
- package/dist/sdk/segment/child-segment-yaml.js.map +1 -1
- package/dist/sdk/segment/journey-yaml.d.ts +13 -1
- package/dist/sdk/segment/journey-yaml.d.ts.map +1 -1
- package/dist/sdk/segment/journey-yaml.js +1 -1
- package/dist/sdk/segment/journey-yaml.js.map +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.js +1 -1
- package/dist/sdk/user.js +1 -1
- package/dist/sdk/workflow.js +1 -1
- package/dist/types/endpoints.d.ts +17 -0
- package/dist/types/endpoints.d.ts.map +1 -1
- package/dist/types/endpoints.js +1 -1
- package/dist/types/endpoints.js.map +1 -1
- package/dist/types/index.js +1 -1
- package/dist/types/llm.d.ts +203 -0
- package/dist/types/llm.d.ts.map +1 -1
- package/dist/utils/agent-config.d.ts +124 -0
- package/dist/utils/agent-config.d.ts.map +1 -0
- package/dist/utils/agent-config.js +1 -0
- package/dist/utils/agent-config.js.map +1 -0
- package/dist/utils/agent-ref-parser.js +1 -1
- package/dist/utils/async.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/diff.js +1 -1
- package/dist/utils/fields-display.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/journey-utils.js +1 -1
- package/dist/utils/json-loader.js +1 -1
- package/dist/utils/llm-backup-utils.js +1 -1
- package/dist/utils/model-aliases.js +1 -1
- package/dist/utils/model-factors.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.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-config.js +1 -1
- package/dist/utils/tdx-logger.js +1 -1
- package/dist/utils/tree-formatter.d.ts +2 -0
- package/dist/utils/tree-formatter.d.ts.map +1 -1
- package/dist/utils/tree-formatter.js +1 -1
- package/dist/utils/tree-formatter.js.map +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/proxy/server.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
const a59_0x14c4cf=a59_0x58e4;(function(_0x265541,_0x3eb169){const _0x5d167e=a59_0x58e4,_0x174c75=_0x265541();while(!![]){try{const _0x5330a6=-parseInt(_0x5d167e(0x1c9))/0x1+parseInt(_0x5d167e(0x24c))/0x2*(-parseInt(_0x5d167e(0x203))/0x3)+parseInt(_0x5d167e(0x1d3))/0x4+-parseInt(_0x5d167e(0x217))/0x5*(-parseInt(_0x5d167e(0x245))/0x6)+-parseInt(_0x5d167e(0x235))/0x7+-parseInt(_0x5d167e(0x208))/0x8*(-parseInt(_0x5d167e(0x1b2))/0x9)+-parseInt(_0x5d167e(0x1c3))/0xa*(parseInt(_0x5d167e(0x1e5))/0xb);if(_0x5330a6===_0x3eb169)break;else _0x174c75['push'](_0x174c75['shift']());}catch(_0x4ffedd){_0x174c75['push'](_0x174c75['shift']());}}}(a59_0x416b,0x81a3c));import a59_0x9ca4dd from'fastify';import a59_0x4acdca 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'../utils/model-aliases.js';import{SessionCache}from'./session-cache.js';import{appendUsageEntry}from'./claude-usage-tracker.js';import{calculateContextSignature}from'./context-signature.js';function a59_0x58e4(_0x29c1fc,_0x41ceba){_0x29c1fc=_0x29c1fc-0x1a4;const _0x416b91=a59_0x416b();let _0x58e40f=_0x416b91[_0x29c1fc];return _0x58e40f;}import{formatConversationHistory,calculateConversationDelta,extractLastUserMessage}from'./conversation-utils.js';function extractSessionUUID(_0x47ecb5){const _0x531b79=a59_0x58e4,_0xe6e7a4=_0x47ecb5[_0x531b79(0x201)](/_session_([a-f0-9-]+)$/i);if(_0xe6e7a4)return _0xe6e7a4[0x1];return _0x47ecb5;}function a59_0x416b(){const _0x39fb0c=[']\x20model:\x20','[session:\x20','Context:','keep-alive',']\x20Created\x20new\x20chat\x20for\x20model\x20','type','delete','handleRouteError','\x0a---\x0a\x0a','budget_tokens','data','profile','error','setErrorHandler','1434VlPZBY','text/event-stream','setupMiddleware','validateMessageRequest','agentCache','catch','INVALID_REQUEST','23234XUFufG','unknown','\x20->\x20','header:\x20','config','Failed\x20to\x20log\x20usage\x20entry\x20on\x20error:\x20','clear','[PROXY\x20ERROR]\x20Chat\x20stream\x20is\x20undefined',':\x20estimated\x20input_tokens=','\x20messages,\x20','chats','user_id','messages','stream','end','info','embeddedSystemPrompts','raw','headers','/v1/messages/count_tokens','Failed\x20to\x20log\x20usage\x20entry:\x20','agentId','http://localhost:','Content-Type',')\x20to\x20stay\x20under\x20','getOrCreateDefaultAgent','isUserError','Final\x20message\x20is\x20empty\x20after\x20construction\x20-\x20starting\x20fresh\x20conversation','logger','Reset\x20chat\x20state\x20to\x20recover\x20on\x20next\x20request',':\x20messages=','1179MkbQQX','[PROXY\x20ERROR]\x20Unhandled\x20error\x20in\x20','tools','server','now','Failed\x20to\x20initialize\x20chat\x20stream.\x20Please\x20try\x20again.','/health','lastUsedAt','llm','register','Validation\x20failed:\x20messages\x20array\x20is\x20required\x20and\x20must\x20not\x20be\x20empty','getOrCreateSession','createPromise','\x20(reasoning:\x20','dev-us01','http://',',\x20system_prompts=','19390gyLdEP','Embedded\x20in\x20chat\x20-\x20system\x20prompts:\x20','System\x20prompts:\x20','api_error','[CONTEXT\x20LENGTH\x20ERROR]\x20','set','157551oGAGzU','write','url','no-cache','push','text','\x20chars.\x20Cleared\x20chat\x20state\x20for\x20session\x20','Creating/looking\x20up\x20agent\x20for:\x20','Model\x20normalization:\x20','context','3077836kgqFvP','Chat\x20ID:\x20','get','has','[PROXY\x20ERROR]\x20Non-streaming\x20responses\x20are\x20not\x20yet\x20supported','getAddress','address','isArray','tdx','not_supported_error','\x0a\x0a<conversation_history>\x0a','Reset\x20chat\x20ID\x20to\x20recover\x20on\x20next\x20request','...\x22',',\x20tools:\x20','Non-streaming\x20responses\x20are\x20not\x20yet\x20supported','Failed\x20to\x20reconstruct\x20message\x20-\x20all\x20parts\x20are\x20empty,\x20using\x20fallback','creating','TD\x20LLM\x20Proxy\x20Server','231KdpKha','send','Embedding','attributes','GET','originalMessage','embeddedToolsByName','post','POST','join','new\x20tool(s)','usage','Evicted\x20oldest\x20chat\x20(signature:\x20','anthropic-version','length','metadata','model',',\x20context:\x20','string','name','add','warn',',\x20model=','system','stringify','sessionCache','setupRoutes',',\x20context\x20signature:\x20','match','filter','66XFtfTJ','trim',',\x20tools=','map','\x20|\x20','36536TaiDLC','Unknown\x20error','Concurrent\x20chat\x20creation\x20failed,\x20will\x20fall\x20back\x20to\x20lazy\x20creation:','handleCountTokens','\x0a</conversation_history>','Failed\x20to\x20extract\x20tool\x20results:','debug','startChat','New\x20-\x20system\x20prompts:\x20','request_too_large','Agent\x20cached:\x20','replace','event','cleanupExpiredChats','code','8065wsohps','Final\x20message\x20reconstructed\x20after\x20context\x20reset:','chat','trace','handleMessages',']\x20Continue\x20chat\x20for\x20model\x20','toISOString',',\x20context=','OPTIONS','size','/v1/messages','Proxy\x20server\x20started\x20at\x20localhost:','\x20tools,\x20message_size=','cleanupInterval','Validation\x20failed:\x20tools\x20must\x20be\x20an\x20array\x20if\x20provided','listen','site','0.0.0.0',']\x20Building\x20a\x20new\x20context\x20for\x20model\x20','output_tokens','thinking','port','substring','message','projectId','chatId','message_delta','Waiting\x20for\x20concurrent\x20chat\x20creation\x20for\x20context:\x20','\x20SSE\x20events.','body','5378765HVpTUO','Debug\x20info:'];a59_0x416b=function(){return _0x39fb0c;};return a59_0x416b();}function clearChatState(_0x53e974){const _0x521adb=a59_0x58e4;_0x53e974[_0x521adb(0x230)]='',_0x53e974[_0x521adb(0x25c)][_0x521adb(0x252)](),_0x53e974[_0x521adb(0x1eb)][_0x521adb(0x252)]();}function mapBudgetTokensToReasoningEffort(_0x96b3f,_0x2ad9eb){const _0x4cb12e=a59_0x58e4;if(_0x2ad9eb!==_0x4cb12e(0x1c0))return 0x0;if(!_0x96b3f||_0x96b3f===0x0)return 0x0;if(_0x96b3f<=0x400)return 0x1;if(_0x96b3f<=0x800)return 0x2;if(_0x96b3f<=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_0x14c4cf(0x1b5)];[a59_0x14c4cf(0x1fe)];['agentCache'];['config'];[a59_0x14c4cf(0x224)];[a59_0x14c4cf(0x1af)];constructor(_0x7fe77e){const _0x411c60=a59_0x14c4cf;this['logger']=_0x7fe77e['logger'],this[_0x411c60(0x250)]=_0x7fe77e,this['sessionCache']=new SessionCache({'maxChatsPerSession':MAX_CHATS_PER_SESSION,'cacheExpirationMs':CACHE_EXPIRATION_MS}),this[_0x411c60(0x249)]=new Map(),this[_0x411c60(0x1b5)]=a59_0x9ca4dd({'logger':![],'bodyLimit':0x40*0x400*0x400}),this[_0x411c60(0x247)](),this[_0x411c60(0x1ff)]();}async['getAgentForModel'](_0x5b1d6d,_0x1ea83d=0x0){const _0x36cbc6=a59_0x14c4cf,_0x3ff65f=extractModelAlias(_0x5b1d6d),_0x4b4310=resolveModelAlias(_0x3ff65f),_0x46d355=_0x4b4310+'_'+_0x1ea83d;let _0x350d8f=this[_0x36cbc6(0x249)][_0x36cbc6(0x1d5)](_0x46d355);if(!_0x350d8f){this['logger'][_0x36cbc6(0x20e)](_0x36cbc6(0x1d1)+_0x5b1d6d+'\x20->\x20'+_0x3ff65f+_0x36cbc6(0x24e)+_0x4b4310),this[_0x36cbc6(0x1af)][_0x36cbc6(0x20e)](_0x36cbc6(0x1d0)+_0x4b4310+_0x36cbc6(0x1bf)+_0x1ea83d+')');const _0x7a2a78=await this['config'][_0x36cbc6(0x1db)][_0x36cbc6(0x1ba)][_0x36cbc6(0x1ac)](_0x4b4310,_0x1ea83d);_0x350d8f=_0x7a2a78['id'],this[_0x36cbc6(0x249)][_0x36cbc6(0x1c8)](_0x46d355,_0x350d8f),this[_0x36cbc6(0x1af)][_0x36cbc6(0x20e)](_0x36cbc6(0x212)+_0x46d355+_0x36cbc6(0x24e)+_0x350d8f+'\x20('+_0x7a2a78[_0x36cbc6(0x1e8)][_0x36cbc6(0x1f8)]+')');}return _0x350d8f;}[a59_0x14c4cf(0x215)](){const _0x1b816f=a59_0x14c4cf;this[_0x1b816f(0x1fe)][_0x1b816f(0x215)]();}['setupMiddleware'](){const _0x438673=a59_0x14c4cf;this['server'][_0x438673(0x1bb)](a59_0x4acdca,{'origin':!![],'methods':[_0x438673(0x1e9),_0x438673(0x1ed),_0x438673(0x21f)],'allowedHeaders':[_0x438673(0x1aa),'Authorization',_0x438673(0x1f2),'x-api-key']}),this['server'][_0x438673(0x244)]((_0x193762,_0x4dc005,_0xf567af)=>{const _0x160321=_0x438673;this[_0x160321(0x23e)](_0x193762,_0x4dc005,_0xf567af);});}['handleRouteError'](_0xd66c59,_0xb4ce0e,_0x47e28e){const _0x211f49=a59_0x14c4cf;if(_0xd66c59 instanceof SDKError){const _0x20cd83=_0xd66c59[_0x211f49(0x1ad)]()?0x190:0x1f4;_0x47e28e[_0x211f49(0x216)](_0x20cd83)[_0x211f49(0x1e6)]({'type':'error','error':{'type':_0xd66c59[_0x211f49(0x216)],'message':_0xd66c59[_0x211f49(0x1ea)],'helpText':_0xd66c59['helpText']}});}else{const _0x437368=_0xd66c59 instanceof Error?_0xd66c59[_0x211f49(0x22e)]:_0x211f49(0x209);this[_0x211f49(0x1af)][_0x211f49(0x243)](_0x211f49(0x1b3)+_0xb4ce0e['method']+'\x20'+_0xb4ce0e['url']+':',_0xd66c59),_0x47e28e[_0x211f49(0x216)](0x1f4)[_0x211f49(0x1e6)]({'type':'error','error':{'type':_0x211f49(0x1c6),'message':_0x437368}});}}['setupRoutes'](){const _0x5802cd=a59_0x14c4cf;this[_0x5802cd(0x1b5)]['get'](_0x5802cd(0x1b8),async()=>{const _0x1e22ba=_0x5802cd;return{'status':'ok','message':_0x1e22ba(0x1e4)};}),this[_0x5802cd(0x1b5)][_0x5802cd(0x1ec)](_0x5802cd(0x221),async(_0x2a1b76,_0x27f2eb)=>{const _0x2e899b=_0x5802cd;return this[_0x2e899b(0x21b)](_0x2a1b76,_0x27f2eb)[_0x2e899b(0x24a)](_0x298c6c=>{const _0x506938=_0x2e899b;this[_0x506938(0x23e)](_0x298c6c,_0x2a1b76,_0x27f2eb);});}),this[_0x5802cd(0x1b5)][_0x5802cd(0x1ec)](_0x5802cd(0x1a6),async(_0x37ed50,_0x35c05b)=>{const _0x174e55=_0x5802cd;return this[_0x174e55(0x20b)](_0x37ed50)[_0x174e55(0x24a)](_0x1a528f=>{this['handleRouteError'](_0x1a528f,_0x37ed50,_0x35c05b);});});}[a59_0x14c4cf(0x248)](_0x55a3c6){const _0x3edfa5=a59_0x14c4cf;if(!_0x55a3c6[_0x3edfa5(0x258)]||!Array[_0x3edfa5(0x1da)](_0x55a3c6[_0x3edfa5(0x258)])||_0x55a3c6[_0x3edfa5(0x258)][_0x3edfa5(0x1f3)]===0x0)throw new SDKError(ErrorCode['INVALID_REQUEST'],_0x3edfa5(0x1bc));if(_0x55a3c6[_0x3edfa5(0x1b4)]&&!Array[_0x3edfa5(0x1da)](_0x55a3c6[_0x3edfa5(0x1b4)]))throw new SDKError(ErrorCode[_0x3edfa5(0x24b)],_0x3edfa5(0x225));}async[a59_0x14c4cf(0x21b)](_0x1295e8,_0x12bd7a){const _0x709bbe=a59_0x14c4cf,_0x201a88=_0x1295e8[_0x709bbe(0x234)];this[_0x709bbe(0x248)](_0x201a88);const _0x233ac6=_0x201a88[_0x709bbe(0x258)]?.['length']??0x0,_0x1918e5=_0x201a88['model']||_0x709bbe(0x24d);this['logger'][_0x709bbe(0x25b)](_0x1295e8['method']+'\x20'+_0x1295e8[_0x709bbe(0x1cb)]+_0x709bbe(0x1b1)+_0x233ac6+_0x709bbe(0x1fb)+_0x1918e5),this[_0x709bbe(0x1af)][_0x709bbe(0x20e)](_0x709bbe(0x24f)+colorizeJSONCompact(_0x1295e8[_0x709bbe(0x1a5)]));this['logger'][_0x709bbe(0x21a)]&&this[_0x709bbe(0x1af)][_0x709bbe(0x21a)](colorizeJSON(_0x201a88,{'color':!![]}));const _0x2617ab=_0x201a88[_0x709bbe(0x1f4)]?.[_0x709bbe(0x257)]||'default',_0x5c990f=extractSessionUUID(_0x2617ab),_0x118aa1=this[_0x709bbe(0x1fe)][_0x709bbe(0x1bd)](_0x5c990f,this[_0x709bbe(0x250)][_0x709bbe(0x22f)]),_0x4a2329=[];if(_0x201a88[_0x709bbe(0x1fc)]){if(typeof _0x201a88[_0x709bbe(0x1fc)]===_0x709bbe(0x1f7))_0x4a2329['push'](_0x201a88[_0x709bbe(0x1fc)]);else{if(Array[_0x709bbe(0x1da)](_0x201a88[_0x709bbe(0x1fc)]))for(const _0x53a0ec of _0x201a88['system']){_0x53a0ec[_0x709bbe(0x23c)]===_0x709bbe(0x1ce)&&_0x53a0ec[_0x709bbe(0x1ce)]&&_0x4a2329[_0x709bbe(0x1cd)](_0x53a0ec[_0x709bbe(0x1ce)]);}}}const _0x8d136e=_0x201a88[_0x709bbe(0x1b4)]||[],_0x356642=_0x201a88[_0x709bbe(0x22b)]?.[_0x709bbe(0x240)],_0x4510f6=mapBudgetTokensToReasoningEffort(_0x356642,this[_0x709bbe(0x250)][_0x709bbe(0x227)]),_0x36db8e=calculateContextSignature(_0x201a88[_0x709bbe(0x1f5)],_0x4a2329,_0x8d136e,_0x4510f6);let _0x109aed=_0x118aa1[_0x709bbe(0x256)][_0x709bbe(0x1d5)](_0x36db8e);const _0x173c52=!_0x109aed;if(!_0x109aed){const _0x154729=await this['getAgentForModel'](_0x201a88[_0x709bbe(0x1f5)],_0x4510f6);_0x109aed={'chatId':'','agentId':_0x154729,'contextSignature':_0x36db8e,'embeddedSystemPrompts':new Set(),'embeddedToolsByName':new Map(),'messageHistory':[],'lastUsedAt':Date['now']()},_0x118aa1[_0x709bbe(0x256)][_0x709bbe(0x1c8)](_0x36db8e,_0x109aed);if(_0x118aa1[_0x709bbe(0x256)]['size']>MAX_CHATS_PER_SESSION){let _0x30ef82=null,_0x55dbf2=Date[_0x709bbe(0x1b6)]();for(const [_0x391d8b,_0x47589a]of _0x118aa1[_0x709bbe(0x256)]){_0x47589a[_0x709bbe(0x1b9)]<_0x55dbf2&&(_0x55dbf2=_0x47589a[_0x709bbe(0x1b9)],_0x30ef82=_0x391d8b);}_0x30ef82&&(_0x118aa1['chats'][_0x709bbe(0x23d)](_0x30ef82),this[_0x709bbe(0x1af)]['debug'](_0x709bbe(0x1f1)+_0x30ef82+_0x709bbe(0x1ab)+MAX_CHATS_PER_SESSION+'\x20limit'));}}else _0x109aed['lastUsedAt']=Date['now']();if(!_0x109aed[_0x709bbe(0x230)]){if(_0x109aed[_0x709bbe(0x1e3)]&&_0x109aed[_0x709bbe(0x1be)]){this[_0x709bbe(0x1af)][_0x709bbe(0x20e)](_0x709bbe(0x232)+_0x36db8e);try{_0x109aed[_0x709bbe(0x230)]=await _0x109aed['createPromise'];}catch(_0x5ef0f3){this['logger'][_0x709bbe(0x243)](_0x709bbe(0x20a),_0x5ef0f3);}}else{if(!_0x109aed[_0x709bbe(0x1e3)]){_0x109aed['creating']=!![],_0x109aed[_0x709bbe(0x1be)]=((async()=>{const _0x4acd47=_0x709bbe;try{const _0x348b06=await this[_0x4acd47(0x250)][_0x4acd47(0x1db)]['llm'][_0x4acd47(0x20f)](_0x109aed[_0x4acd47(0x1a8)]);return this[_0x4acd47(0x1af)][_0x4acd47(0x25b)]('['+_0x348b06['id']+_0x4acd47(0x23b)+_0x201a88['model']+_0x4acd47(0x21e)+_0x36db8e),_0x348b06['id'];}catch(_0x3a0ef3){this['logger'][_0x4acd47(0x243)]('Failed\x20to\x20create\x20chat,\x20will\x20fall\x20back\x20to\x20lazy\x20creation:',_0x3a0ef3);throw _0x3a0ef3;}finally{_0x109aed[_0x4acd47(0x1e3)]=![],_0x109aed['createPromise']=undefined;}})());try{_0x109aed['chatId']=await _0x109aed[_0x709bbe(0x1be)];}catch{}}}}const _0x4e50e1=_0x4a2329[_0x709bbe(0x202)](_0x10fe45=>!_0x109aed[_0x709bbe(0x25c)][_0x709bbe(0x1d6)](_0x10fe45)),_0x238baa=_0x8d136e[_0x709bbe(0x202)](_0x12b2be=>!_0x109aed['embeddedToolsByName'][_0x709bbe(0x1d6)](_0x12b2be[_0x709bbe(0x1f8)]));this[_0x709bbe(0x1af)][_0x709bbe(0x20e)](_0x709bbe(0x238)+_0x5c990f+_0x709bbe(0x237)+_0x201a88[_0x709bbe(0x1f5)]+_0x709bbe(0x200)+_0x36db8e+',\x20is\x20new\x20context:\x20'+_0x173c52),this[_0x709bbe(0x1af)][_0x709bbe(0x20e)](_0x709bbe(0x1d4)+_0x109aed['chatId']),this[_0x709bbe(0x1af)][_0x709bbe(0x20e)](_0x709bbe(0x1c5)+_0x4a2329[_0x709bbe(0x1f3)]+_0x709bbe(0x1e0)+_0x8d136e[_0x709bbe(0x1f3)]),this[_0x709bbe(0x1af)][_0x709bbe(0x20e)](_0x709bbe(0x1c4)+_0x109aed['embeddedSystemPrompts'][_0x709bbe(0x220)]+_0x709bbe(0x1e0)+_0x109aed[_0x709bbe(0x1eb)][_0x709bbe(0x220)]),this[_0x709bbe(0x1af)][_0x709bbe(0x20e)](_0x709bbe(0x210)+_0x4e50e1[_0x709bbe(0x1f3)]+_0x709bbe(0x1e0)+_0x238baa[_0x709bbe(0x1f3)]);_0x4e50e1[_0x709bbe(0x1f3)]>0x0&&this['logger'][_0x709bbe(0x20e)]('Added\x20system\x20prompt\x20previews:',_0x4e50e1[_0x709bbe(0x206)](_0x434d2b=>_0x434d2b['substring'](0x0,0x32)+'...')[_0x709bbe(0x1ee)](_0x709bbe(0x207)));_0x238baa[_0x709bbe(0x1f3)]>0x0&&this[_0x709bbe(0x1af)]['debug']('Added\x20tool\x20names:',_0x238baa[_0x709bbe(0x206)](_0x1ba643=>_0x1ba643[_0x709bbe(0x1f8)])[_0x709bbe(0x1ee)](',\x20'));const _0x5f2c74=calculateConversationDelta(_0x201a88[_0x709bbe(0x258)],_0x109aed['messageHistory']),_0x192844=extractLastUserMessage(_0x5f2c74,_0x201a88['messages']);if(_0x192844[_0x709bbe(0x243)])throw new SDKError(ErrorCode[_0x709bbe(0x24b)],_0x192844[_0x709bbe(0x243)]);const _0x1d0a5b=_0x192844[_0x709bbe(0x1ce)]||'',_0x579be7=()=>{const _0xbef593=_0x709bbe,_0x51dd3c=[];_0x4a2329[_0xbef593(0x1f3)]>0x0&&_0x51dd3c[_0xbef593(0x1cd)](_0x4a2329['join']('\x0a\x0a'));_0x8d136e[_0xbef593(0x1f3)]>0x0&&_0x51dd3c[_0xbef593(0x1cd)](generateToolPrompt(_0x8d136e));if(_0x201a88[_0xbef593(0x258)]&&_0x201a88[_0xbef593(0x258)][_0xbef593(0x1f3)]>0x1){const _0x530d61=formatConversationHistory(_0x201a88[_0xbef593(0x258)]);_0x530d61&&_0x51dd3c[_0xbef593(0x1cd)](_0xbef593(0x1dd)+_0x530d61+_0xbef593(0x20c));}return _0x51dd3c[_0xbef593(0x1cd)](_0x1d0a5b),_0x51dd3c['filter'](_0x2bce80=>_0x2bce80&&_0x2bce80[_0xbef593(0x204)]())[_0xbef593(0x1ee)]('\x0a---\x0a\x0a');};let _0x5bdeb6;if(_0x173c52){this['logger'][_0x709bbe(0x25b)]('['+_0x109aed[_0x709bbe(0x230)]+_0x709bbe(0x229)+_0x201a88[_0x709bbe(0x1f5)]+_0x709bbe(0x1c2)+_0x4a2329[_0x709bbe(0x1f3)]+_0x709bbe(0x205)+_0x8d136e['length']+',\x20tool_names=['+_0x8d136e[_0x709bbe(0x206)](_0x1441fa=>_0x1441fa[_0x709bbe(0x1f8)])[_0x709bbe(0x1ee)](',\x20')+']'),_0x5bdeb6=_0x579be7();for(const _0x423d5e of _0x4a2329){_0x109aed[_0x709bbe(0x25c)]['add'](_0x423d5e);}for(const _0x58bcf7 of _0x8d136e){_0x109aed['embeddedToolsByName']['set'](_0x58bcf7[_0x709bbe(0x1f8)],_0x58bcf7);}}else{const _0x1beae2=[];_0x4e50e1[_0x709bbe(0x1f3)]>0x0&&(_0x1beae2[_0x709bbe(0x1cd)](_0x4e50e1['join']('\x0a\x0a')),this[_0x709bbe(0x1af)]['debug'](_0x709bbe(0x1e7),_0x4e50e1[_0x709bbe(0x1f3)],'new\x20system\x20prompt(s)'));if(_0x238baa[_0x709bbe(0x1f3)]>0x0)try{_0x1beae2[_0x709bbe(0x1cd)](generateToolPrompt(_0x238baa)),this[_0x709bbe(0x1af)][_0x709bbe(0x20e)](_0x709bbe(0x1e7),_0x238baa[_0x709bbe(0x1f3)],_0x709bbe(0x1ef));}catch(_0x59ea86){this[_0x709bbe(0x1af)]['error']('Failed\x20to\x20generate\x20tool\x20prompt:',_0x59ea86);}try{const _0x459f81=extractToolResults(_0x5f2c74);_0x459f81&&(_0x1beae2[_0x709bbe(0x1cd)](_0x459f81),this[_0x709bbe(0x1af)][_0x709bbe(0x20e)]('Including\x20tool\x20results'));}catch(_0x3f2bfb){this[_0x709bbe(0x1af)]['error'](_0x709bbe(0x20d),_0x3f2bfb);}_0x1beae2[_0x709bbe(0x1cd)](_0x1d0a5b);const _0x43e1c2=_0x1beae2[_0x709bbe(0x202)](_0x31e80a=>_0x31e80a&&_0x31e80a[_0x709bbe(0x204)]());_0x5bdeb6=_0x43e1c2[_0x709bbe(0x1f3)]>0x0?_0x43e1c2[_0x709bbe(0x1ee)](_0x709bbe(0x23f)):_0x1d0a5b;for(const _0xcbb15f of _0x4e50e1){_0x109aed[_0x709bbe(0x25c)][_0x709bbe(0x1f9)](_0xcbb15f);}for(const _0x51fd7a of _0x238baa){_0x109aed[_0x709bbe(0x1eb)][_0x709bbe(0x1c8)](_0x51fd7a[_0x709bbe(0x1f8)],_0x51fd7a);}}(!_0x5bdeb6||!_0x5bdeb6[_0x709bbe(0x204)]())&&(this['logger'][_0x709bbe(0x1fa)](_0x709bbe(0x1ae)),this[_0x709bbe(0x1af)][_0x709bbe(0x1fa)](_0x709bbe(0x239),{'isNewContext':_0x173c52,'userMessageLength':_0x1d0a5b?.[_0x709bbe(0x1f3)]||0x0,'systemPromptsCount':_0x4a2329['length'],'toolsCount':_0x8d136e[_0x709bbe(0x1f3)],'messagesCount':_0x201a88['messages']?.['length']||0x0,'newMessagesCount':_0x5f2c74[_0x709bbe(0x1f3)]}),clearChatState(_0x109aed),_0x5bdeb6=_0x579be7(),(!_0x5bdeb6||!_0x5bdeb6['trim']())&&(this['logger'][_0x709bbe(0x243)](_0x709bbe(0x1e2)),this[_0x709bbe(0x1af)][_0x709bbe(0x243)](_0x709bbe(0x236),{'systemPromptsCount':_0x4a2329[_0x709bbe(0x1f3)],'toolsCount':_0x8d136e['length'],'messagesCount':_0x201a88['messages']?.[_0x709bbe(0x1f3)]||0x0,'userMessageLength':_0x1d0a5b?.[_0x709bbe(0x1f3)]||0x0}),_0x5bdeb6='continue'),this[_0x709bbe(0x1af)]['info'](_0x709bbe(0x218),_0x5bdeb6['substring'](0x0,0x64)+'...'));const _0xf18eb5=_0x201a88[_0x709bbe(0x259)]!==![];if(_0xf18eb5){_0x12bd7a[_0x709bbe(0x1a4)]['writeHead'](0xc8,{'Content-Type':_0x709bbe(0x246),'Cache-Control':_0x709bbe(0x1cc),'Connection':_0x709bbe(0x23a),'X-Accel-Buffering':'no'});const _0x542827=generateMessageId();let _0x2da68a=0x0,_0x3c56b8=0x0;try{if(_0x109aed['chatId']){const _0x1caf7e=_0x5bdeb6[_0x709bbe(0x22d)](0x0,0x32)[_0x709bbe(0x213)](/\n/g,'\x20');this['logger'][_0x709bbe(0x25b)]('['+_0x109aed[_0x709bbe(0x230)]+_0x709bbe(0x21c)+_0x201a88['model']+_0x709bbe(0x21e)+_0x36db8e+',\x20'+_0x201a88['messages'][_0x709bbe(0x1f3)]+_0x709bbe(0x255)+_0x4a2329[_0x709bbe(0x1f3)]+'\x20system\x20prompts,\x20'+_0x8d136e['length']+_0x709bbe(0x223)+_0x5bdeb6['length']+',\x20\x22'+_0x1caf7e+_0x709bbe(0x1df));}const _0x204e0a=this[_0x709bbe(0x250)][_0x709bbe(0x1db)][_0x709bbe(0x1ba)][_0x709bbe(0x219)](_0x5bdeb6,{'chatId':_0x109aed[_0x709bbe(0x230)]||undefined,'agentId':_0x109aed['chatId']?undefined:_0x109aed[_0x709bbe(0x1a8)]});if(!_0x204e0a){this[_0x709bbe(0x1af)]['error'](_0x709bbe(0x253)),this[_0x709bbe(0x1af)][_0x709bbe(0x243)](_0x709bbe(0x239),JSON[_0x709bbe(0x1fd)]({'chatId':_0x109aed[_0x709bbe(0x230)],'agentId':_0x109aed[_0x709bbe(0x1a8)],'model':_0x201a88['model'],'sessionId':_0x5c990f,'contextSignature':_0x36db8e})),_0x109aed[_0x709bbe(0x230)]='',this[_0x709bbe(0x1af)][_0x709bbe(0x1fa)](_0x709bbe(0x1de));const _0x3e9caf=formatAnthropicSSE({'type':_0x709bbe(0x243),'error':{'type':'api_error','message':_0x709bbe(0x1b7)},'request_id':_0x542827});_0x12bd7a['raw'][_0x709bbe(0x1ca)](_0x3e9caf),_0x12bd7a['raw'][_0x709bbe(0x25a)]();return;}_0x109aed['messageHistory']=_0x201a88[_0x709bbe(0x258)];const _0x580906=_0x109aed;async function*_0x519936(_0x5bb3b9){const _0x3e11d7=_0x709bbe;for await(const _0x4e17b4 of _0x5bb3b9){if(_0x4e17b4['type']===_0x3e11d7(0x1f4))_0x4e17b4[_0x3e11d7(0x241)][_0x3e11d7(0x230)]&&!_0x580906[_0x3e11d7(0x230)]&&(_0x580906['chatId']=_0x4e17b4[_0x3e11d7(0x241)][_0x3e11d7(0x230)]);else _0x4e17b4[_0x3e11d7(0x23c)]===_0x3e11d7(0x214)&&(yield _0x4e17b4[_0x3e11d7(0x241)]);}}const _0x445c45=_0x519936(_0x204e0a);_0x2da68a=estimateInputTokensFromRequest(_0x201a88);const _0x325cb6=transformTDStreamToAnthropic(_0x445c45,_0x542827,_0x201a88[_0x709bbe(0x1f5)],this[_0x709bbe(0x1af)],_0x1d0a5b,_0x2da68a),_0x23e22e=_0x5bdeb6[_0x709bbe(0x1f3)];let _0x5d245e=0x0;for await(const _0x23d8cd of _0x325cb6){const _0x87b7db=formatAnthropicSSE(_0x23d8cd);_0x5d245e++,this[_0x709bbe(0x1af)][_0x709bbe(0x20e)](colorizeJSONCompact(_0x23d8cd,{'color':!![]})),_0x23d8cd['type']==='error'&&_0x23d8cd[_0x709bbe(0x243)][_0x709bbe(0x23c)]===_0x709bbe(0x211)&&(clearChatState(_0x109aed),this[_0x709bbe(0x1af)][_0x709bbe(0x1fa)](_0x709bbe(0x1c7)+_0x23d8cd[_0x709bbe(0x243)]['message']+'\x20Input\x20size:\x20'+_0x23e22e+_0x709bbe(0x1cf)+_0x5c990f+_0x709bbe(0x1f6)+_0x36db8e)),_0x23d8cd['type']===_0x709bbe(0x231)&&_0x23d8cd['usage']?.[_0x709bbe(0x22a)]&&(_0x3c56b8=_0x23d8cd[_0x709bbe(0x1f0)][_0x709bbe(0x22a)]),_0x12bd7a[_0x709bbe(0x1a4)][_0x709bbe(0x1ca)](_0x87b7db);}this[_0x709bbe(0x1af)][_0x709bbe(0x20e)]('Stream\x20complete.\x20Sent\x20'+_0x5d245e+_0x709bbe(0x233)),appendUsageEntry(_0x5c990f,{'timestamp':new Date()[_0x709bbe(0x21d)](),'model':_0x201a88[_0x709bbe(0x1f5)],'inputTokens':_0x2da68a,'outputTokens':_0x3c56b8,'contextSignature':_0x36db8e,'profile':this[_0x709bbe(0x250)][_0x709bbe(0x1db)]?.[_0x709bbe(0x1d2)]?.[_0x709bbe(0x242)],'chatId':_0x109aed[_0x709bbe(0x230)]||undefined})[_0x709bbe(0x24a)](_0x40e9d8=>{const _0x306574=_0x709bbe;this[_0x306574(0x1af)][_0x306574(0x1fa)](_0x306574(0x1a7)+_0x40e9d8);}),_0x12bd7a[_0x709bbe(0x1a4)][_0x709bbe(0x25a)]();}catch(_0x4f22d3){(_0x2da68a>0x0||_0x3c56b8>0x0)&&appendUsageEntry(_0x5c990f,{'timestamp':new Date()['toISOString'](),'model':_0x201a88[_0x709bbe(0x1f5)],'inputTokens':_0x2da68a,'outputTokens':_0x3c56b8,'contextSignature':_0x36db8e,'profile':this[_0x709bbe(0x250)]['tdx']?.[_0x709bbe(0x1d2)]?.[_0x709bbe(0x242)],'chatId':_0x109aed['chatId']||undefined})[_0x709bbe(0x24a)](_0x13a22c=>{const _0x8c079b=_0x709bbe;this[_0x8c079b(0x1af)]['warn'](_0x8c079b(0x251)+_0x13a22c);});const _0xbaf04d=_0x4f22d3 instanceof Error?_0x4f22d3[_0x709bbe(0x22e)]:_0x709bbe(0x209);this[_0x709bbe(0x1af)]['error']('[PROXY\x20ERROR]\x20Streaming\x20error:',_0x4f22d3),this[_0x709bbe(0x1af)]['error'](_0x709bbe(0x239),JSON['stringify']({'chatId':_0x109aed['chatId'],'agentId':_0x109aed[_0x709bbe(0x1a8)],'model':_0x201a88[_0x709bbe(0x1f5)],'sessionId':_0x5c990f,'contextSignature':_0x36db8e})),_0x109aed[_0x709bbe(0x230)]='',this['logger'][_0x709bbe(0x1fa)](_0x709bbe(0x1b0));const _0x4b6f37=formatAnthropicSSE({'type':_0x709bbe(0x243),'error':{'type':_0x709bbe(0x1c6),'message':_0xbaf04d},'request_id':_0x542827});_0x12bd7a['raw']['write'](_0x4b6f37),_0x12bd7a[_0x709bbe(0x1a4)][_0x709bbe(0x25a)]();}}else this[_0x709bbe(0x1af)][_0x709bbe(0x243)](_0x709bbe(0x1d7)),_0x12bd7a['code'](0x1f5)['send']({'type':_0x709bbe(0x243),'error':{'type':_0x709bbe(0x1dc),'message':_0x709bbe(0x1e1)}});}async[a59_0x14c4cf(0x20b)](_0x3c9de2){const _0x4987f2=a59_0x14c4cf,_0x51a5dc=_0x3c9de2[_0x4987f2(0x234)],_0x146c7e=estimateInputTokensFromRequest(_0x51a5dc);return this[_0x4987f2(0x1af)][_0x4987f2(0x25b)](_0x3c9de2['method']+'\x20'+_0x3c9de2[_0x4987f2(0x1cb)]+_0x4987f2(0x254)+_0x146c7e),{'input_tokens':_0x146c7e};}async['start'](){const _0x555e7a=a59_0x14c4cf;try{await this['server'][_0x555e7a(0x226)]({'port':this['config']['port'],'host':_0x555e7a(0x228)}),this[_0x555e7a(0x1af)][_0x555e7a(0x25b)](_0x555e7a(0x222)+this[_0x555e7a(0x250)][_0x555e7a(0x22c)]),this[_0x555e7a(0x224)]=setInterval(()=>{const _0x5ef26e=_0x555e7a;this[_0x5ef26e(0x215)]();},CLEANUP_INTERVAL_MS),this[_0x555e7a(0x1af)][_0x555e7a(0x20e)]('Started\x20cache\x20cleanup\x20interval\x20(runs\x20every\x20'+CLEANUP_INTERVAL_MS/0x3e8+'s,\x20expires\x20after\x20'+CACHE_EXPIRATION_MS/0x3e8+'s)');}catch(_0x422257){const _0x4897c9=_0x422257 instanceof Error?_0x422257['message']:_0x555e7a(0x209);throw new Error('Failed\x20to\x20start\x20proxy\x20server:\x20'+_0x4897c9);}}async['stop'](){const _0x4a04f8=a59_0x14c4cf;this['cleanupInterval']&&(clearInterval(this[_0x4a04f8(0x224)]),this[_0x4a04f8(0x224)]=undefined),await this[_0x4a04f8(0x1b5)]['close']();}[a59_0x14c4cf(0x1d8)](){const _0x40325f=a59_0x14c4cf,_0x5be18c=this[_0x40325f(0x1b5)][_0x40325f(0x1b5)][_0x40325f(0x1d9)]();if(typeof _0x5be18c===_0x40325f(0x1f7))return _0x5be18c;if(_0x5be18c)return _0x40325f(0x1c1)+_0x5be18c['address']+':'+_0x5be18c[_0x40325f(0x22c)];return _0x40325f(0x1a9)+this[_0x40325f(0x250)][_0x40325f(0x22c)];}}
|
|
1
|
+
const a60_0x4ad324=a60_0x6059;(function(_0x221478,_0x4b59e7){const _0x8a4d71=a60_0x6059,_0x845d1=_0x221478();while(!![]){try{const _0x522364=-parseInt(_0x8a4d71(0x20a))/0x1*(-parseInt(_0x8a4d71(0x1db))/0x2)+-parseInt(_0x8a4d71(0x25a))/0x3+-parseInt(_0x8a4d71(0x229))/0x4+parseInt(_0x8a4d71(0x235))/0x5*(-parseInt(_0x8a4d71(0x1f3))/0x6)+parseInt(_0x8a4d71(0x248))/0x7*(-parseInt(_0x8a4d71(0x250))/0x8)+-parseInt(_0x8a4d71(0x24d))/0x9+parseInt(_0x8a4d71(0x25f))/0xa;if(_0x522364===_0x4b59e7)break;else _0x845d1['push'](_0x845d1['shift']());}catch(_0x4e0059){_0x845d1['push'](_0x845d1['shift']());}}}(a60_0x398a,0xb0a18));import a60_0x2e0e6e from'fastify';import a60_0x1e68b4 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'../utils/model-aliases.js';import{SessionCache}from'./session-cache.js';import{appendUsageEntry}from'./claude-usage-tracker.js';import{calculateContextSignature}from'./context-signature.js';function a60_0x398a(){const _0xcb6560=[':\x20estimated\x20input_tokens=','Debug\x20info:','http://localhost:','send','Failed\x20to\x20create\x20chat,\x20will\x20fall\x20back\x20to\x20lazy\x20creation:','end','size','...','180273VymjIr','getAddress','stringify',',\x20context\x20signature:\x20','\x20SSE\x20events.','config','code',',\x20context:\x20','isArray','catch','chatId','Proxy\x20server\x20started\x20at\x20localhost:','Evicted\x20oldest\x20chat\x20(signature:\x20','raw','message',']\x20Continue\x20chat\x20for\x20model\x20','getAgentForModel','/health','\x20messages,\x20','...\x22','Model\x20normalization:\x20','method','Unknown\x20error','handleCountTokens','[PROXY\x20ERROR]\x20Streaming\x20error:',']\x20model:\x20','Content-Type',',\x20is\x20new\x20context:\x20','replace',']\x20Building\x20a\x20new\x20context\x20for\x20model\x20','write','1737100gYGGIL','Added\x20tool\x20names:','Chat\x20ID:\x20','cleanupExpiredChats','agentId','[PROXY\x20ERROR]\x20Chat\x20stream\x20is\x20undefined','url','handleRouteError','metadata','start','anthropic-version','body','345aIUbjw','new\x20tool(s)','POST','api_error','/v1/messages','server','request_too_large',',\x20context=','event','Including\x20tool\x20results','data','embeddedSystemPrompts',',\x20\x22','context','stop','chat','TD\x20LLM\x20Proxy\x20Server','Stream\x20complete.\x20Sent\x20','push','1218IToHFG','logger','toISOString',',\x20tools=','warn','2083725dylBLt','creating','tools','44448JxXjMP','Failed\x20to\x20log\x20usage\x20entry:\x20','continue','substring','\x20->\x20','[CONTEXT\x20LENGTH\x20ERROR]\x20','setupRoutes','startChat',']\x20Created\x20new\x20chat\x20for\x20model\x20','Context:','1488828PJblRi','new\x20system\x20prompt(s)','text','setupMiddleware','handleMessages','24306710OkaduA','chats','embeddedToolsByName','Final\x20message\x20reconstructed\x20after\x20context\x20reset:','System\x20prompts:\x20','header:\x20','Non-streaming\x20responses\x20are\x20not\x20yet\x20supported','unknown','tdx','now','Creating/looking\x20up\x20agent\x20for:\x20','agentCache','cleanupInterval','port','length','lastUsedAt',')\x20to\x20stay\x20under\x20',',\x20tools:\x20',':\x20messages=','set','filter','default','messages','originalMessage','get','/v1/messages/count_tokens','debug','listen','Started\x20cache\x20cleanup\x20interval\x20(runs\x20every\x20','name','x-api-key','Added\x20system\x20prompt\x20previews:','model','writeHead','\x20limit','add','helpText','\x20Input\x20size:\x20','type','Failed\x20to\x20start\x20proxy\x20server:\x20','\x0a</conversation_history>','[session:\x20','register','Waiting\x20for\x20concurrent\x20chat\x20creation\x20for\x20context:\x20','0.0.0.0',',\x20system_prompts=','error','output_tokens','INVALID_REQUEST','14VbUJIm','trace','join','Failed\x20to\x20extract\x20tool\x20results:','sessionCache','post','usage','\x0a---\x0a\x0a','createPromise','trim','has','delete','keep-alive','Failed\x20to\x20log\x20usage\x20entry\x20on\x20error:\x20','Failed\x20to\x20generate\x20tool\x20prompt:','setErrorHandler','system','close','\x20(reasoning:\x20','profile','Final\x20message\x20is\x20empty\x20after\x20construction\x20-\x20starting\x20fresh\x20conversation','attributes','\x20tools,\x20message_size=','headers','73068xnHhxK','string','Concurrent\x20chat\x20creation\x20failed,\x20will\x20fall\x20back\x20to\x20lazy\x20creation:','projectId','dev-us01','Embedding','\x20chars.\x20Cleared\x20chat\x20state\x20for\x20session\x20','llm','text/event-stream','info',',\x20tool_names=[','map','not_supported_error','user_id','\x20|\x20'];a60_0x398a=function(){return _0xcb6560;};return a60_0x398a();}import{formatConversationHistory,calculateConversationDelta,extractLastUserMessage}from'./conversation-utils.js';function extractSessionUUID(_0x39d745){const _0x8daa79=_0x39d745['match'](/_session_([a-f0-9-]+)$/i);if(_0x8daa79)return _0x8daa79[0x1];return _0x39d745;}function a60_0x6059(_0x16b448,_0x378bf5){_0x16b448=_0x16b448-0x1da;const _0x398ac8=a60_0x398a();let _0x605918=_0x398ac8[_0x16b448];return _0x605918;}function clearChatState(_0x3d2c93){const _0x701a03=a60_0x6059;_0x3d2c93['chatId']='',_0x3d2c93[_0x701a03(0x240)]['clear'](),_0x3d2c93[_0x701a03(0x261)]['clear']();}function mapBudgetTokensToReasoningEffort(_0x6f0039,_0x3138f0){const _0x42433b=a60_0x6059;if(_0x3138f0!==_0x42433b(0x1f7))return 0x0;if(!_0x6f0039||_0x6f0039===0x0)return 0x0;if(_0x6f0039<=0x400)return 0x1;if(_0x6f0039<=0x800)return 0x2;if(_0x6f0039<=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'];[a60_0x4ad324(0x1df)];['agentCache'];[a60_0x4ad324(0x20f)];[a60_0x4ad324(0x26b)];[a60_0x4ad324(0x249)];constructor(_0x1685df){const _0xe8a5d2=a60_0x4ad324;this[_0xe8a5d2(0x249)]=_0x1685df[_0xe8a5d2(0x249)],this[_0xe8a5d2(0x20f)]=_0x1685df,this[_0xe8a5d2(0x1df)]=new SessionCache({'maxChatsPerSession':MAX_CHATS_PER_SESSION,'cacheExpirationMs':CACHE_EXPIRATION_MS}),this[_0xe8a5d2(0x26a)]=new Map(),this[_0xe8a5d2(0x23a)]=a60_0x2e0e6e({'logger':![],'bodyLimit':0x40*0x400*0x400}),this[_0xe8a5d2(0x25d)](),this['setupRoutes']();}async[a60_0x4ad324(0x21a)](_0x11a687,_0x5b1efd=0x0){const _0x2593cb=a60_0x4ad324,_0x417cb5=extractModelAlias(_0x11a687),_0x13829a=resolveModelAlias(_0x417cb5),_0x4981f8=_0x13829a+'_'+_0x5b1efd;let _0xc0addd=this[_0x2593cb(0x26a)][_0x2593cb(0x277)](_0x4981f8);if(!_0xc0addd){this[_0x2593cb(0x249)][_0x2593cb(0x279)](_0x2593cb(0x21e)+_0x11a687+'\x20->\x20'+_0x417cb5+_0x2593cb(0x254)+_0x13829a),this[_0x2593cb(0x249)][_0x2593cb(0x279)](_0x2593cb(0x269)+_0x13829a+_0x2593cb(0x1ed)+_0x5b1efd+')');const _0x3a5add=await this[_0x2593cb(0x20f)][_0x2593cb(0x267)][_0x2593cb(0x1fa)]['getOrCreateDefaultAgent'](_0x13829a,_0x5b1efd);_0xc0addd=_0x3a5add['id'],this[_0x2593cb(0x26a)]['set'](_0x4981f8,_0xc0addd),this[_0x2593cb(0x249)]['debug']('Agent\x20cached:\x20'+_0x4981f8+_0x2593cb(0x254)+_0xc0addd+'\x20('+_0x3a5add[_0x2593cb(0x1f0)][_0x2593cb(0x27c)]+')');}return _0xc0addd;}[a60_0x4ad324(0x22c)](){const _0x1f04d0=a60_0x4ad324;this[_0x1f04d0(0x1df)][_0x1f04d0(0x22c)]();}['setupMiddleware'](){const _0x52d691=a60_0x4ad324;this[_0x52d691(0x23a)][_0x52d691(0x289)](a60_0x1e68b4,{'origin':!![],'methods':['GET',_0x52d691(0x237),'OPTIONS'],'allowedHeaders':[_0x52d691(0x224),'Authorization',_0x52d691(0x233),_0x52d691(0x27d)]}),this[_0x52d691(0x23a)][_0x52d691(0x1ea)]((_0x4f611d,_0x4d5e18,_0x5380b8)=>{this['handleRouteError'](_0x4f611d,_0x4d5e18,_0x5380b8);});}[a60_0x4ad324(0x230)](_0x4c7479,_0x26146d,_0x50b7ec){const _0x85e97a=a60_0x4ad324;if(_0x4c7479 instanceof SDKError){const _0x224424=_0x4c7479['isUserError']()?0x190:0x1f4;_0x50b7ec[_0x85e97a(0x210)](_0x224424)[_0x85e97a(0x205)]({'type':_0x85e97a(0x28d),'error':{'type':_0x4c7479[_0x85e97a(0x210)],'message':_0x4c7479[_0x85e97a(0x276)],'helpText':_0x4c7479[_0x85e97a(0x283)]}});}else{const _0x323b7d=_0x4c7479 instanceof Error?_0x4c7479['message']:_0x85e97a(0x220);this['logger']['error']('[PROXY\x20ERROR]\x20Unhandled\x20error\x20in\x20'+_0x26146d[_0x85e97a(0x21f)]+'\x20'+_0x26146d[_0x85e97a(0x22f)]+':',_0x4c7479),_0x50b7ec[_0x85e97a(0x210)](0x1f4)[_0x85e97a(0x205)]({'type':'error','error':{'type':_0x85e97a(0x238),'message':_0x323b7d}});}}[a60_0x4ad324(0x256)](){const _0xf38c17=a60_0x4ad324;this[_0xf38c17(0x23a)]['get'](_0xf38c17(0x21b),async()=>{const _0x5d83d8=_0xf38c17;return{'status':'ok','message':_0x5d83d8(0x245)};}),this[_0xf38c17(0x23a)][_0xf38c17(0x1e0)](_0xf38c17(0x239),async(_0x379505,_0x580120)=>{const _0x3d9e6e=_0xf38c17;return this[_0x3d9e6e(0x25e)](_0x379505,_0x580120)[_0x3d9e6e(0x213)](_0x3554f1=>{const _0x4a8e00=_0x3d9e6e;this[_0x4a8e00(0x230)](_0x3554f1,_0x379505,_0x580120);});}),this[_0xf38c17(0x23a)][_0xf38c17(0x1e0)](_0xf38c17(0x278),async(_0x29a358,_0x170bab)=>{const _0xcd536b=_0xf38c17;return this[_0xcd536b(0x221)](_0x29a358)[_0xcd536b(0x213)](_0xff364a=>{const _0x3d4647=_0xcd536b;this[_0x3d4647(0x230)](_0xff364a,_0x29a358,_0x170bab);});});}['validateMessageRequest'](_0x5cc3b4){const _0x5d6f70=a60_0x4ad324;if(!_0x5cc3b4[_0x5d6f70(0x275)]||!Array['isArray'](_0x5cc3b4['messages'])||_0x5cc3b4[_0x5d6f70(0x275)][_0x5d6f70(0x26d)]===0x0)throw new SDKError(ErrorCode[_0x5d6f70(0x1da)],'Validation\x20failed:\x20messages\x20array\x20is\x20required\x20and\x20must\x20not\x20be\x20empty');if(_0x5cc3b4[_0x5d6f70(0x24f)]&&!Array[_0x5d6f70(0x212)](_0x5cc3b4[_0x5d6f70(0x24f)]))throw new SDKError(ErrorCode[_0x5d6f70(0x1da)],'Validation\x20failed:\x20tools\x20must\x20be\x20an\x20array\x20if\x20provided');}async[a60_0x4ad324(0x25e)](_0x2a891b,_0x2334ea){const _0x16d1d1=a60_0x4ad324,_0x375216=_0x2a891b[_0x16d1d1(0x234)];this['validateMessageRequest'](_0x375216);const _0x42a780=_0x375216[_0x16d1d1(0x275)]?.[_0x16d1d1(0x26d)]??0x0,_0x3c22cf=_0x375216[_0x16d1d1(0x27f)]||_0x16d1d1(0x266);this['logger']['info'](_0x2a891b[_0x16d1d1(0x21f)]+'\x20'+_0x2a891b['url']+_0x16d1d1(0x271)+_0x42a780+',\x20model='+_0x3c22cf),this[_0x16d1d1(0x249)][_0x16d1d1(0x279)](_0x16d1d1(0x264)+colorizeJSONCompact(_0x2a891b[_0x16d1d1(0x1f2)]));this['logger'][_0x16d1d1(0x1dc)]&&this[_0x16d1d1(0x249)][_0x16d1d1(0x1dc)](colorizeJSON(_0x375216,{'color':!![]}));const _0x17a825=_0x375216[_0x16d1d1(0x231)]?.[_0x16d1d1(0x200)]||_0x16d1d1(0x274),_0x35a4d1=extractSessionUUID(_0x17a825),_0x41a32d=this[_0x16d1d1(0x1df)]['getOrCreateSession'](_0x35a4d1,this[_0x16d1d1(0x20f)][_0x16d1d1(0x1f6)]),_0x26bc24=[];if(_0x375216['system']){if(typeof _0x375216['system']===_0x16d1d1(0x1f4))_0x26bc24['push'](_0x375216[_0x16d1d1(0x1eb)]);else{if(Array[_0x16d1d1(0x212)](_0x375216[_0x16d1d1(0x1eb)]))for(const _0x3a0edc of _0x375216[_0x16d1d1(0x1eb)]){_0x3a0edc[_0x16d1d1(0x285)]===_0x16d1d1(0x25c)&&_0x3a0edc['text']&&_0x26bc24['push'](_0x3a0edc[_0x16d1d1(0x25c)]);}}}const _0x1c1258=_0x375216['tools']||[],_0x3d1e99=_0x375216['thinking']?.['budget_tokens'],_0x3265b9=mapBudgetTokensToReasoningEffort(_0x3d1e99,this['config']['site']),_0x3f2a18=calculateContextSignature(_0x375216[_0x16d1d1(0x27f)],_0x26bc24,_0x1c1258,_0x3265b9);let _0x3e7001=_0x41a32d[_0x16d1d1(0x260)][_0x16d1d1(0x277)](_0x3f2a18);const _0x4facee=!_0x3e7001;if(!_0x3e7001){const _0xaf6943=await this[_0x16d1d1(0x21a)](_0x375216['model'],_0x3265b9);_0x3e7001={'chatId':'','agentId':_0xaf6943,'contextSignature':_0x3f2a18,'embeddedSystemPrompts':new Set(),'embeddedToolsByName':new Map(),'messageHistory':[],'lastUsedAt':Date['now']()},_0x41a32d[_0x16d1d1(0x260)][_0x16d1d1(0x272)](_0x3f2a18,_0x3e7001);if(_0x41a32d[_0x16d1d1(0x260)][_0x16d1d1(0x208)]>MAX_CHATS_PER_SESSION){let _0x1cead6=null,_0x3c9022=Date['now']();for(const [_0xcfb9ab,_0x457fc8]of _0x41a32d[_0x16d1d1(0x260)]){_0x457fc8[_0x16d1d1(0x26e)]<_0x3c9022&&(_0x3c9022=_0x457fc8[_0x16d1d1(0x26e)],_0x1cead6=_0xcfb9ab);}_0x1cead6&&(_0x41a32d['chats'][_0x16d1d1(0x1e6)](_0x1cead6),this['logger']['debug'](_0x16d1d1(0x216)+_0x1cead6+_0x16d1d1(0x26f)+MAX_CHATS_PER_SESSION+_0x16d1d1(0x281)));}}else _0x3e7001[_0x16d1d1(0x26e)]=Date[_0x16d1d1(0x268)]();if(!_0x3e7001[_0x16d1d1(0x214)]){if(_0x3e7001['creating']&&_0x3e7001[_0x16d1d1(0x1e3)]){this[_0x16d1d1(0x249)][_0x16d1d1(0x279)](_0x16d1d1(0x28a)+_0x3f2a18);try{_0x3e7001[_0x16d1d1(0x214)]=await _0x3e7001['createPromise'];}catch(_0x50f361){this[_0x16d1d1(0x249)][_0x16d1d1(0x28d)](_0x16d1d1(0x1f5),_0x50f361);}}else{if(!_0x3e7001[_0x16d1d1(0x24e)]){_0x3e7001[_0x16d1d1(0x24e)]=!![],_0x3e7001[_0x16d1d1(0x1e3)]=((async()=>{const _0x379009=_0x16d1d1;try{const _0x5870cc=await this[_0x379009(0x20f)]['tdx']['llm'][_0x379009(0x257)](_0x3e7001[_0x379009(0x22d)]);return this['logger'][_0x379009(0x1fc)]('['+_0x5870cc['id']+_0x379009(0x258)+_0x375216[_0x379009(0x27f)]+_0x379009(0x23c)+_0x3f2a18),_0x5870cc['id'];}catch(_0x3fc40c){this[_0x379009(0x249)][_0x379009(0x28d)](_0x379009(0x206),_0x3fc40c);throw _0x3fc40c;}finally{_0x3e7001['creating']=![],_0x3e7001['createPromise']=undefined;}})());try{_0x3e7001['chatId']=await _0x3e7001[_0x16d1d1(0x1e3)];}catch{}}}}const _0x414e52=_0x26bc24['filter'](_0x34a0e7=>!_0x3e7001[_0x16d1d1(0x240)]['has'](_0x34a0e7)),_0x16cf6a=_0x1c1258[_0x16d1d1(0x273)](_0x54b12b=>!_0x3e7001[_0x16d1d1(0x261)][_0x16d1d1(0x1e5)](_0x54b12b[_0x16d1d1(0x27c)]));this[_0x16d1d1(0x249)][_0x16d1d1(0x279)](_0x16d1d1(0x288)+_0x35a4d1+_0x16d1d1(0x223)+_0x375216['model']+_0x16d1d1(0x20d)+_0x3f2a18+_0x16d1d1(0x225)+_0x4facee),this[_0x16d1d1(0x249)][_0x16d1d1(0x279)](_0x16d1d1(0x22b)+_0x3e7001['chatId']),this[_0x16d1d1(0x249)]['debug'](_0x16d1d1(0x263)+_0x26bc24[_0x16d1d1(0x26d)]+_0x16d1d1(0x270)+_0x1c1258[_0x16d1d1(0x26d)]),this[_0x16d1d1(0x249)][_0x16d1d1(0x279)]('Embedded\x20in\x20chat\x20-\x20system\x20prompts:\x20'+_0x3e7001[_0x16d1d1(0x240)][_0x16d1d1(0x208)]+_0x16d1d1(0x270)+_0x3e7001['embeddedToolsByName']['size']),this[_0x16d1d1(0x249)]['debug']('New\x20-\x20system\x20prompts:\x20'+_0x414e52[_0x16d1d1(0x26d)]+_0x16d1d1(0x270)+_0x16cf6a[_0x16d1d1(0x26d)]);_0x414e52[_0x16d1d1(0x26d)]>0x0&&this[_0x16d1d1(0x249)]['debug'](_0x16d1d1(0x27e),_0x414e52[_0x16d1d1(0x1fe)](_0x504d85=>_0x504d85[_0x16d1d1(0x253)](0x0,0x32)+_0x16d1d1(0x209))['join'](_0x16d1d1(0x201)));_0x16cf6a[_0x16d1d1(0x26d)]>0x0&&this['logger'][_0x16d1d1(0x279)](_0x16d1d1(0x22a),_0x16cf6a[_0x16d1d1(0x1fe)](_0x1cf755=>_0x1cf755[_0x16d1d1(0x27c)])[_0x16d1d1(0x1dd)](',\x20'));const _0x185c6c=calculateConversationDelta(_0x375216['messages'],_0x3e7001['messageHistory']),_0x13bbd0=extractLastUserMessage(_0x185c6c,_0x375216[_0x16d1d1(0x275)]);if(_0x13bbd0[_0x16d1d1(0x28d)])throw new SDKError(ErrorCode[_0x16d1d1(0x1da)],_0x13bbd0['error']);const _0x3cbb09=_0x13bbd0[_0x16d1d1(0x25c)]||'',_0x4ab4de=()=>{const _0x6babf7=_0x16d1d1,_0x2e9bf1=[];_0x26bc24[_0x6babf7(0x26d)]>0x0&&_0x2e9bf1[_0x6babf7(0x247)](_0x26bc24[_0x6babf7(0x1dd)]('\x0a\x0a'));_0x1c1258[_0x6babf7(0x26d)]>0x0&&_0x2e9bf1[_0x6babf7(0x247)](generateToolPrompt(_0x1c1258));if(_0x375216['messages']&&_0x375216['messages']['length']>0x1){const _0x28f972=formatConversationHistory(_0x375216['messages']);_0x28f972&&_0x2e9bf1[_0x6babf7(0x247)]('\x0a\x0a<conversation_history>\x0a'+_0x28f972+_0x6babf7(0x287));}return _0x2e9bf1[_0x6babf7(0x247)](_0x3cbb09),_0x2e9bf1[_0x6babf7(0x273)](_0x5dbd43=>_0x5dbd43&&_0x5dbd43[_0x6babf7(0x1e4)]())[_0x6babf7(0x1dd)](_0x6babf7(0x1e2));};let _0x30e7ee;if(_0x4facee){this[_0x16d1d1(0x249)][_0x16d1d1(0x1fc)]('['+_0x3e7001['chatId']+_0x16d1d1(0x227)+_0x375216[_0x16d1d1(0x27f)]+_0x16d1d1(0x28c)+_0x26bc24[_0x16d1d1(0x26d)]+_0x16d1d1(0x24b)+_0x1c1258[_0x16d1d1(0x26d)]+_0x16d1d1(0x1fd)+_0x1c1258[_0x16d1d1(0x1fe)](_0x1d7098=>_0x1d7098['name'])[_0x16d1d1(0x1dd)](',\x20')+']'),_0x30e7ee=_0x4ab4de();for(const _0x200b03 of _0x26bc24){_0x3e7001[_0x16d1d1(0x240)][_0x16d1d1(0x282)](_0x200b03);}for(const _0x36d4b8 of _0x1c1258){_0x3e7001[_0x16d1d1(0x261)]['set'](_0x36d4b8[_0x16d1d1(0x27c)],_0x36d4b8);}}else{const _0x39978c=[];_0x414e52[_0x16d1d1(0x26d)]>0x0&&(_0x39978c[_0x16d1d1(0x247)](_0x414e52[_0x16d1d1(0x1dd)]('\x0a\x0a')),this['logger']['debug'](_0x16d1d1(0x1f8),_0x414e52['length'],_0x16d1d1(0x25b)));if(_0x16cf6a[_0x16d1d1(0x26d)]>0x0)try{_0x39978c['push'](generateToolPrompt(_0x16cf6a)),this[_0x16d1d1(0x249)][_0x16d1d1(0x279)](_0x16d1d1(0x1f8),_0x16cf6a[_0x16d1d1(0x26d)],_0x16d1d1(0x236));}catch(_0x25944e){this[_0x16d1d1(0x249)]['error'](_0x16d1d1(0x1e9),_0x25944e);}try{const _0x291fbb=extractToolResults(_0x185c6c);_0x291fbb&&(_0x39978c['push'](_0x291fbb),this[_0x16d1d1(0x249)][_0x16d1d1(0x279)](_0x16d1d1(0x23e)));}catch(_0x477904){this[_0x16d1d1(0x249)]['error'](_0x16d1d1(0x1de),_0x477904);}_0x39978c[_0x16d1d1(0x247)](_0x3cbb09);const _0x2a1a98=_0x39978c[_0x16d1d1(0x273)](_0x5414dd=>_0x5414dd&&_0x5414dd[_0x16d1d1(0x1e4)]());_0x30e7ee=_0x2a1a98[_0x16d1d1(0x26d)]>0x0?_0x2a1a98[_0x16d1d1(0x1dd)](_0x16d1d1(0x1e2)):_0x3cbb09;for(const _0x3b9353 of _0x414e52){_0x3e7001['embeddedSystemPrompts'][_0x16d1d1(0x282)](_0x3b9353);}for(const _0x3f150d of _0x16cf6a){_0x3e7001[_0x16d1d1(0x261)]['set'](_0x3f150d[_0x16d1d1(0x27c)],_0x3f150d);}}(!_0x30e7ee||!_0x30e7ee[_0x16d1d1(0x1e4)]())&&(this[_0x16d1d1(0x249)][_0x16d1d1(0x24c)](_0x16d1d1(0x1ef)),this[_0x16d1d1(0x249)][_0x16d1d1(0x24c)](_0x16d1d1(0x259),{'isNewContext':_0x4facee,'userMessageLength':_0x3cbb09?.['length']||0x0,'systemPromptsCount':_0x26bc24[_0x16d1d1(0x26d)],'toolsCount':_0x1c1258[_0x16d1d1(0x26d)],'messagesCount':_0x375216['messages']?.[_0x16d1d1(0x26d)]||0x0,'newMessagesCount':_0x185c6c['length']}),clearChatState(_0x3e7001),_0x30e7ee=_0x4ab4de(),(!_0x30e7ee||!_0x30e7ee[_0x16d1d1(0x1e4)]())&&(this[_0x16d1d1(0x249)][_0x16d1d1(0x28d)]('Failed\x20to\x20reconstruct\x20message\x20-\x20all\x20parts\x20are\x20empty,\x20using\x20fallback'),this['logger'][_0x16d1d1(0x28d)](_0x16d1d1(0x203),{'systemPromptsCount':_0x26bc24[_0x16d1d1(0x26d)],'toolsCount':_0x1c1258[_0x16d1d1(0x26d)],'messagesCount':_0x375216['messages']?.[_0x16d1d1(0x26d)]||0x0,'userMessageLength':_0x3cbb09?.[_0x16d1d1(0x26d)]||0x0}),_0x30e7ee=_0x16d1d1(0x252)),this['logger'][_0x16d1d1(0x1fc)](_0x16d1d1(0x262),_0x30e7ee[_0x16d1d1(0x253)](0x0,0x64)+'...'));const _0x1ec1d1=_0x375216['stream']!==![];if(_0x1ec1d1){_0x2334ea[_0x16d1d1(0x217)][_0x16d1d1(0x280)](0xc8,{'Content-Type':_0x16d1d1(0x1fb),'Cache-Control':'no-cache','Connection':_0x16d1d1(0x1e7),'X-Accel-Buffering':'no'});const _0x1802dd=generateMessageId();let _0x5cd23b=0x0,_0x4d41f2=0x0;try{if(_0x3e7001[_0x16d1d1(0x214)]){const _0xa700da=_0x30e7ee[_0x16d1d1(0x253)](0x0,0x32)[_0x16d1d1(0x226)](/\n/g,'\x20');this[_0x16d1d1(0x249)][_0x16d1d1(0x1fc)]('['+_0x3e7001[_0x16d1d1(0x214)]+_0x16d1d1(0x219)+_0x375216[_0x16d1d1(0x27f)]+_0x16d1d1(0x23c)+_0x3f2a18+',\x20'+_0x375216[_0x16d1d1(0x275)][_0x16d1d1(0x26d)]+_0x16d1d1(0x21c)+_0x26bc24[_0x16d1d1(0x26d)]+'\x20system\x20prompts,\x20'+_0x1c1258[_0x16d1d1(0x26d)]+_0x16d1d1(0x1f1)+_0x30e7ee['length']+_0x16d1d1(0x241)+_0xa700da+_0x16d1d1(0x21d));}const _0x1127f0=this[_0x16d1d1(0x20f)][_0x16d1d1(0x267)]['llm'][_0x16d1d1(0x244)](_0x30e7ee,{'chatId':_0x3e7001['chatId']||undefined,'agentId':_0x3e7001[_0x16d1d1(0x214)]?undefined:_0x3e7001[_0x16d1d1(0x22d)]});if(!_0x1127f0){this[_0x16d1d1(0x249)][_0x16d1d1(0x28d)](_0x16d1d1(0x22e)),this['logger'][_0x16d1d1(0x28d)]('Context:',JSON[_0x16d1d1(0x20c)]({'chatId':_0x3e7001[_0x16d1d1(0x214)],'agentId':_0x3e7001['agentId'],'model':_0x375216['model'],'sessionId':_0x35a4d1,'contextSignature':_0x3f2a18})),_0x3e7001[_0x16d1d1(0x214)]='',this[_0x16d1d1(0x249)]['warn']('Reset\x20chat\x20ID\x20to\x20recover\x20on\x20next\x20request');const _0x365061=formatAnthropicSSE({'type':_0x16d1d1(0x28d),'error':{'type':'api_error','message':'Failed\x20to\x20initialize\x20chat\x20stream.\x20Please\x20try\x20again.'},'request_id':_0x1802dd});_0x2334ea[_0x16d1d1(0x217)][_0x16d1d1(0x228)](_0x365061),_0x2334ea['raw'][_0x16d1d1(0x207)]();return;}_0x3e7001['messageHistory']=_0x375216[_0x16d1d1(0x275)];const _0x12ec02=_0x3e7001;async function*_0x3efb47(_0x2f9020){const _0xb2d40e=_0x16d1d1;for await(const _0x2f04f1 of _0x2f9020){if(_0x2f04f1['type']===_0xb2d40e(0x231))_0x2f04f1['data'][_0xb2d40e(0x214)]&&!_0x12ec02[_0xb2d40e(0x214)]&&(_0x12ec02[_0xb2d40e(0x214)]=_0x2f04f1[_0xb2d40e(0x23f)]['chatId']);else _0x2f04f1[_0xb2d40e(0x285)]===_0xb2d40e(0x23d)&&(yield _0x2f04f1[_0xb2d40e(0x23f)]);}}const _0x288111=_0x3efb47(_0x1127f0);_0x5cd23b=estimateInputTokensFromRequest(_0x375216);const _0x405f7b=transformTDStreamToAnthropic(_0x288111,_0x1802dd,_0x375216[_0x16d1d1(0x27f)],this[_0x16d1d1(0x249)],_0x3cbb09,_0x5cd23b),_0x3083f1=_0x30e7ee[_0x16d1d1(0x26d)];let _0x37cdfd=0x0;for await(const _0x59293d of _0x405f7b){const _0x47f087=formatAnthropicSSE(_0x59293d);_0x37cdfd++,this[_0x16d1d1(0x249)][_0x16d1d1(0x279)](colorizeJSONCompact(_0x59293d,{'color':!![]})),_0x59293d['type']===_0x16d1d1(0x28d)&&_0x59293d[_0x16d1d1(0x28d)]['type']===_0x16d1d1(0x23b)&&(clearChatState(_0x3e7001),this[_0x16d1d1(0x249)][_0x16d1d1(0x24c)](_0x16d1d1(0x255)+_0x59293d[_0x16d1d1(0x28d)][_0x16d1d1(0x218)]+_0x16d1d1(0x284)+_0x3083f1+_0x16d1d1(0x1f9)+_0x35a4d1+_0x16d1d1(0x211)+_0x3f2a18)),_0x59293d[_0x16d1d1(0x285)]==='message_delta'&&_0x59293d[_0x16d1d1(0x1e1)]?.[_0x16d1d1(0x28e)]&&(_0x4d41f2=_0x59293d['usage']['output_tokens']),_0x2334ea[_0x16d1d1(0x217)][_0x16d1d1(0x228)](_0x47f087);}this[_0x16d1d1(0x249)][_0x16d1d1(0x279)](_0x16d1d1(0x246)+_0x37cdfd+_0x16d1d1(0x20e)),appendUsageEntry(_0x35a4d1,{'timestamp':new Date()[_0x16d1d1(0x24a)](),'model':_0x375216[_0x16d1d1(0x27f)],'inputTokens':_0x5cd23b,'outputTokens':_0x4d41f2,'contextSignature':_0x3f2a18,'profile':this[_0x16d1d1(0x20f)][_0x16d1d1(0x267)]?.[_0x16d1d1(0x242)]?.[_0x16d1d1(0x1ee)],'chatId':_0x3e7001[_0x16d1d1(0x214)]||undefined})[_0x16d1d1(0x213)](_0x1a236a=>{const _0x442643=_0x16d1d1;this[_0x442643(0x249)][_0x442643(0x24c)](_0x442643(0x251)+_0x1a236a);}),_0x2334ea[_0x16d1d1(0x217)]['end']();}catch(_0x53c5bd){(_0x5cd23b>0x0||_0x4d41f2>0x0)&&appendUsageEntry(_0x35a4d1,{'timestamp':new Date()[_0x16d1d1(0x24a)](),'model':_0x375216[_0x16d1d1(0x27f)],'inputTokens':_0x5cd23b,'outputTokens':_0x4d41f2,'contextSignature':_0x3f2a18,'profile':this[_0x16d1d1(0x20f)]['tdx']?.[_0x16d1d1(0x242)]?.['profile'],'chatId':_0x3e7001[_0x16d1d1(0x214)]||undefined})[_0x16d1d1(0x213)](_0x3b3297=>{const _0x3544cf=_0x16d1d1;this[_0x3544cf(0x249)][_0x3544cf(0x24c)](_0x3544cf(0x1e8)+_0x3b3297);});const _0xc74b4f=_0x53c5bd instanceof Error?_0x53c5bd[_0x16d1d1(0x218)]:_0x16d1d1(0x220);this[_0x16d1d1(0x249)][_0x16d1d1(0x28d)](_0x16d1d1(0x222),_0x53c5bd),this[_0x16d1d1(0x249)][_0x16d1d1(0x28d)]('Context:',JSON[_0x16d1d1(0x20c)]({'chatId':_0x3e7001['chatId'],'agentId':_0x3e7001[_0x16d1d1(0x22d)],'model':_0x375216[_0x16d1d1(0x27f)],'sessionId':_0x35a4d1,'contextSignature':_0x3f2a18})),_0x3e7001[_0x16d1d1(0x214)]='',this[_0x16d1d1(0x249)]['warn']('Reset\x20chat\x20state\x20to\x20recover\x20on\x20next\x20request');const _0x3bc04e=formatAnthropicSSE({'type':_0x16d1d1(0x28d),'error':{'type':_0x16d1d1(0x238),'message':_0xc74b4f},'request_id':_0x1802dd});_0x2334ea[_0x16d1d1(0x217)][_0x16d1d1(0x228)](_0x3bc04e),_0x2334ea['raw'][_0x16d1d1(0x207)]();}}else this[_0x16d1d1(0x249)][_0x16d1d1(0x28d)]('[PROXY\x20ERROR]\x20Non-streaming\x20responses\x20are\x20not\x20yet\x20supported'),_0x2334ea[_0x16d1d1(0x210)](0x1f5)[_0x16d1d1(0x205)]({'type':_0x16d1d1(0x28d),'error':{'type':_0x16d1d1(0x1ff),'message':_0x16d1d1(0x265)}});}async[a60_0x4ad324(0x221)](_0x55b887){const _0x1ecc91=a60_0x4ad324,_0x8b016=_0x55b887[_0x1ecc91(0x234)],_0x587a03=estimateInputTokensFromRequest(_0x8b016);return this[_0x1ecc91(0x249)][_0x1ecc91(0x1fc)](_0x55b887[_0x1ecc91(0x21f)]+'\x20'+_0x55b887[_0x1ecc91(0x22f)]+_0x1ecc91(0x202)+_0x587a03),{'input_tokens':_0x587a03};}async[a60_0x4ad324(0x232)](){const _0xa569b8=a60_0x4ad324;try{await this[_0xa569b8(0x23a)][_0xa569b8(0x27a)]({'port':this[_0xa569b8(0x20f)]['port'],'host':_0xa569b8(0x28b)}),this[_0xa569b8(0x249)][_0xa569b8(0x1fc)](_0xa569b8(0x215)+this[_0xa569b8(0x20f)][_0xa569b8(0x26c)]),this[_0xa569b8(0x26b)]=setInterval(()=>{const _0x1ad244=_0xa569b8;this[_0x1ad244(0x22c)]();},CLEANUP_INTERVAL_MS),this['logger']['debug'](_0xa569b8(0x27b)+CLEANUP_INTERVAL_MS/0x3e8+'s,\x20expires\x20after\x20'+CACHE_EXPIRATION_MS/0x3e8+'s)');}catch(_0x2649b8){const _0x2f49f4=_0x2649b8 instanceof Error?_0x2649b8[_0xa569b8(0x218)]:_0xa569b8(0x220);throw new Error(_0xa569b8(0x286)+_0x2f49f4);}}async[a60_0x4ad324(0x243)](){const _0x1f8529=a60_0x4ad324;this[_0x1f8529(0x26b)]&&(clearInterval(this[_0x1f8529(0x26b)]),this['cleanupInterval']=undefined),await this['server'][_0x1f8529(0x1ec)]();}[a60_0x4ad324(0x20b)](){const _0x4c29ff=a60_0x4ad324,_0xd2e707=this[_0x4c29ff(0x23a)][_0x4c29ff(0x23a)]['address']();if(typeof _0xd2e707===_0x4c29ff(0x1f4))return _0xd2e707;if(_0xd2e707)return'http://'+_0xd2e707['address']+':'+_0xd2e707[_0x4c29ff(0x26c)];return _0x4c29ff(0x204)+this[_0x4c29ff(0x20f)]['port'];}}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
function
|
|
1
|
+
const a61_0x55113a=a61_0x2042;function a61_0x2042(_0x4b3eae,_0x33c72b){_0x4b3eae=_0x4b3eae-0x170;const _0x420729=a61_0x4207();let _0x204230=_0x420729[_0x4b3eae];return _0x204230;}(function(_0x3abad0,_0x284dd9){const _0x5c7c74=a61_0x2042,_0xd0cbf4=_0x3abad0();while(!![]){try{const _0x5bae1e=-parseInt(_0x5c7c74(0x185))/0x1*(parseInt(_0x5c7c74(0x180))/0x2)+parseInt(_0x5c7c74(0x174))/0x3*(-parseInt(_0x5c7c74(0x17d))/0x4)+-parseInt(_0x5c7c74(0x173))/0x5+-parseInt(_0x5c7c74(0x17c))/0x6*(parseInt(_0x5c7c74(0x172))/0x7)+-parseInt(_0x5c7c74(0x18b))/0x8*(-parseInt(_0x5c7c74(0x17e))/0x9)+-parseInt(_0x5c7c74(0x17a))/0xa+parseInt(_0x5c7c74(0x18c))/0xb;if(_0x5bae1e===_0x284dd9)break;else _0xd0cbf4['push'](_0xd0cbf4['shift']());}catch(_0x45dbfb){_0xd0cbf4['push'](_0xd0cbf4['shift']());}}}(a61_0x4207,0x7f50c));export class SessionCache{[a61_0x55113a(0x181)];[a61_0x55113a(0x175)];constructor(_0x3011c6){const _0x40a4e1=a61_0x55113a;this[_0x40a4e1(0x175)]=_0x3011c6,this[_0x40a4e1(0x181)]=new Map();}[a61_0x55113a(0x17b)](_0x4368d5,_0x14ffc1){const _0x571ecc=a61_0x55113a;let _0x4362dc=this['sessions']['get'](_0x4368d5);return!_0x4362dc&&(_0x4362dc={'projectId':_0x14ffc1,'chats':new Map()},this[_0x571ecc(0x181)][_0x571ecc(0x182)](_0x4368d5,_0x4362dc)),_0x4362dc;}[a61_0x55113a(0x179)](_0x4271d4){const _0x1ffab8=a61_0x55113a;return this[_0x1ffab8(0x181)][_0x1ffab8(0x183)](_0x4271d4);}['getOrCreateChat'](_0x1d8af2,_0x3d49e2,_0x4aaea4){const _0x2031a1=a61_0x55113a,_0x1474c2=this[_0x2031a1(0x181)]['get'](_0x1d8af2);if(!_0x1474c2)throw new Error(_0x2031a1(0x178)+_0x1d8af2+_0x2031a1(0x176));let _0x1d6e85=_0x1474c2[_0x2031a1(0x187)]['get'](_0x3d49e2);if(!_0x1d6e85){_0x1d6e85={'chatId':'','agentId':_0x4aaea4,'contextSignature':_0x3d49e2,'embeddedSystemPrompts':new Set(),'embeddedToolsByName':new Map(),'messageHistory':[],'lastUsedAt':Date['now']()},_0x1474c2[_0x2031a1(0x187)][_0x2031a1(0x182)](_0x3d49e2,_0x1d6e85);if(_0x1474c2[_0x2031a1(0x187)][_0x2031a1(0x188)]>this['config'][_0x2031a1(0x184)]){let _0x48e036=null,_0x41d249=Date['now']();for(const [_0x36a113,_0x561340]of _0x1474c2['chats']){_0x561340[_0x2031a1(0x18d)]<_0x41d249&&(_0x41d249=_0x561340[_0x2031a1(0x18d)],_0x48e036=_0x36a113);}_0x48e036&&_0x1474c2[_0x2031a1(0x187)][_0x2031a1(0x17f)](_0x48e036);}}else _0x1d6e85['lastUsedAt']=Date['now']();return _0x1d6e85;}[a61_0x55113a(0x171)](){const _0x3aa770=a61_0x55113a,_0x356c67=Date[_0x3aa770(0x186)]();let _0x469d97=0x0;for(const [_0x1fa7d9,_0x517b99]of this[_0x3aa770(0x181)]){const _0x9aae76=[];for(const [_0x1573c8,_0x442cde]of _0x517b99[_0x3aa770(0x187)]){_0x356c67-_0x442cde['lastUsedAt']>this[_0x3aa770(0x175)]['cacheExpirationMs']&&_0x9aae76[_0x3aa770(0x170)](_0x1573c8);}for(const _0x14ba08 of _0x9aae76){_0x517b99[_0x3aa770(0x187)][_0x3aa770(0x17f)](_0x14ba08),_0x469d97++;}_0x517b99[_0x3aa770(0x187)][_0x3aa770(0x188)]===0x0&&this[_0x3aa770(0x181)]['delete'](_0x1fa7d9);}return _0x469d97;}[a61_0x55113a(0x189)](){return this['sessions']['size'];}['getTotalChatCount'](){const _0x4ea71c=a61_0x55113a;let _0x184646=0x0;for(const _0x5dff02 of this['sessions'][_0x4ea71c(0x177)]()){_0x184646+=_0x5dff02[_0x4ea71c(0x187)][_0x4ea71c(0x188)];}return _0x184646;}[a61_0x55113a(0x18a)](){const _0x3cf962=a61_0x55113a;this[_0x3cf962(0x181)][_0x3cf962(0x18a)]();}}function a61_0x4207(){const _0x39185a=['31417oYeJOs','now','chats','size','getSessionCount','clear','2456ZwkCUX','24921424PZVhVB','lastUsedAt','push','cleanupExpiredChats','66647GgCJwj','1247930JozaSZ','11031EoWxzt','config','\x20not\x20found','values','Session\x20','getSession','6229330XfrxXd','getOrCreateSession','6dIMhgY','68dcnJRb','5112KfzANX','delete','62kewdLb','sessions','set','get','maxChatsPerSession'];a61_0x4207=function(){return _0x39185a;};return a61_0x4207();}
|
|
@@ -0,0 +1,386 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Agent YAML Schema Types and Conversion Utilities
|
|
3
|
+
*
|
|
4
|
+
* This module provides a human-friendly YAML format for agent configuration
|
|
5
|
+
* and utilities to convert between YAML and API formats.
|
|
6
|
+
*
|
|
7
|
+
* YAML Format:
|
|
8
|
+
* ```yaml
|
|
9
|
+
* name: My Support Agent
|
|
10
|
+
* description: Customer support assistant
|
|
11
|
+
* model: claude-4.5-sonnet
|
|
12
|
+
* temperature: 0.7
|
|
13
|
+
* max_tool_iterations: 5
|
|
14
|
+
* reasoning_effort: medium
|
|
15
|
+
*
|
|
16
|
+
* tools:
|
|
17
|
+
* - type: knowledge_base
|
|
18
|
+
* target: '@ref(type: "knowledge_base", name: "support-kb")'
|
|
19
|
+
* target_function: SEARCH
|
|
20
|
+
* function_name: search_knowledge
|
|
21
|
+
* function_description: Search the support knowledge base
|
|
22
|
+
* ```
|
|
23
|
+
*/
|
|
24
|
+
import type { AgentFull, AgentTool, AgentVariable, AgentOutput, KnowledgeBase, LLMPrompt, Integration, IntegrationAction } from '../../types/llm.js';
|
|
25
|
+
/**
|
|
26
|
+
* Migrate deprecated model names to current versions
|
|
27
|
+
* @param modelType - The model type from YAML or API
|
|
28
|
+
* @returns The migrated model type (or original if not deprecated)
|
|
29
|
+
*/
|
|
30
|
+
export declare function migrateModelType(modelType: string): string;
|
|
31
|
+
/**
|
|
32
|
+
* Resource types that can be referenced
|
|
33
|
+
*/
|
|
34
|
+
export type RefType = 'knowledge_base' | 'agent' | 'web_search_tool' | 'image_generator' | 'prompt';
|
|
35
|
+
/**
|
|
36
|
+
* Parsed reference from @ref(...) syntax
|
|
37
|
+
*/
|
|
38
|
+
export interface ParsedRef {
|
|
39
|
+
type: RefType;
|
|
40
|
+
name: string;
|
|
41
|
+
}
|
|
42
|
+
/**
|
|
43
|
+
* Parse @ref(...) string to ParsedRef
|
|
44
|
+
* @param refString - String like '@ref(type: "agent", name: "my-agent")'
|
|
45
|
+
* @returns Parsed reference or null if not a valid reference
|
|
46
|
+
*/
|
|
47
|
+
export declare function parseRef(refString: string): ParsedRef | null;
|
|
48
|
+
/**
|
|
49
|
+
* Create @ref(...) string from type and name
|
|
50
|
+
* @param type - Resource type
|
|
51
|
+
* @param name - Resource name
|
|
52
|
+
* @returns Reference string like '@ref(type: "agent", name: "my-agent")'
|
|
53
|
+
*/
|
|
54
|
+
export declare function toRef(type: RefType, name: string): string;
|
|
55
|
+
/**
|
|
56
|
+
* Check if a string is a reference
|
|
57
|
+
*/
|
|
58
|
+
export declare function isRef(value: unknown): boolean;
|
|
59
|
+
/**
|
|
60
|
+
* Get agent dependency names from an AgentYaml
|
|
61
|
+
* Returns names of agents that this agent depends on via agent tools
|
|
62
|
+
*/
|
|
63
|
+
export declare function getAgentDependencies(agentYaml: AgentYaml): string[];
|
|
64
|
+
/**
|
|
65
|
+
* Check if an agent can be pushed (all its agent dependencies are satisfied)
|
|
66
|
+
*
|
|
67
|
+
* @param agentYaml - Agent YAML to check
|
|
68
|
+
* @param availableAgentNames - Set of agent names that are available (existing + already pushed)
|
|
69
|
+
* @returns true if all agent dependencies are satisfied
|
|
70
|
+
*/
|
|
71
|
+
export declare function canPushAgent(agentYaml: AgentYaml, availableAgentNames: Set<string>): boolean;
|
|
72
|
+
/**
|
|
73
|
+
* Result of resolving agent dependencies
|
|
74
|
+
*/
|
|
75
|
+
export interface AgentDependencyResult<T extends {
|
|
76
|
+
yaml: AgentYaml;
|
|
77
|
+
}> {
|
|
78
|
+
/** Agents in dependency order (can be pushed) */
|
|
79
|
+
resolved: T[];
|
|
80
|
+
/** Agents with unresolved dependencies (circular or missing) */
|
|
81
|
+
unresolved: Array<{
|
|
82
|
+
agent: T;
|
|
83
|
+
missingDeps: string[];
|
|
84
|
+
}>;
|
|
85
|
+
}
|
|
86
|
+
/**
|
|
87
|
+
* Resolve agent dependencies and return agents in push order
|
|
88
|
+
*
|
|
89
|
+
* Uses iterative approach to handle agent-to-agent dependencies.
|
|
90
|
+
* Detects circular dependencies and reports missing dependencies.
|
|
91
|
+
*
|
|
92
|
+
* @param agents - List of agents with their YAML
|
|
93
|
+
* @param initialAvailable - Set of agent names already available (e.g., existing on server)
|
|
94
|
+
* @returns Resolved agents in order and unresolved agents with their missing deps
|
|
95
|
+
*/
|
|
96
|
+
export declare function resolveAgentDependencies<T extends {
|
|
97
|
+
yaml: AgentYaml;
|
|
98
|
+
}>(agents: T[], initialAvailable?: Set<string>): AgentDependencyResult<T>;
|
|
99
|
+
/**
|
|
100
|
+
* Reasoning effort level
|
|
101
|
+
*/
|
|
102
|
+
export type ReasoningEffort = 'none' | 'minimal' | 'low' | 'medium' | 'high';
|
|
103
|
+
/**
|
|
104
|
+
* Convert reasoning effort string to API number
|
|
105
|
+
*/
|
|
106
|
+
export declare function reasoningEffortToApi(effort: ReasoningEffort | undefined): number | undefined;
|
|
107
|
+
/**
|
|
108
|
+
* Convert API reasoning effort number to string
|
|
109
|
+
*/
|
|
110
|
+
export declare function reasoningEffortFromApi(value: number | undefined): ReasoningEffort | undefined;
|
|
111
|
+
/**
|
|
112
|
+
* Tool type in YAML format
|
|
113
|
+
*/
|
|
114
|
+
export type YamlToolType = 'knowledge_base' | 'agent' | 'web_search' | 'image_gen';
|
|
115
|
+
/**
|
|
116
|
+
* Output definition in YAML format
|
|
117
|
+
*/
|
|
118
|
+
export interface YamlAgentOutput {
|
|
119
|
+
name: string;
|
|
120
|
+
function_name: string;
|
|
121
|
+
function_description?: string;
|
|
122
|
+
json_schema: string;
|
|
123
|
+
}
|
|
124
|
+
/**
|
|
125
|
+
* Tool definition in YAML format
|
|
126
|
+
*/
|
|
127
|
+
export interface YamlAgentTool {
|
|
128
|
+
type: YamlToolType;
|
|
129
|
+
/** Reference to target resource: '@ref(type: "knowledge_base", name: "my-kb")' */
|
|
130
|
+
target: string;
|
|
131
|
+
target_function: string;
|
|
132
|
+
function_name: string;
|
|
133
|
+
function_description: string;
|
|
134
|
+
output_mode?: 'full' | 'summary';
|
|
135
|
+
prompt_schema?: string;
|
|
136
|
+
prompt_template?: string;
|
|
137
|
+
}
|
|
138
|
+
/**
|
|
139
|
+
* Variable definition in YAML format
|
|
140
|
+
*/
|
|
141
|
+
export interface YamlAgentVariable {
|
|
142
|
+
name: string;
|
|
143
|
+
/** Reference to knowledge base: '@ref(type: "knowledge_base", name: "my-kb")' */
|
|
144
|
+
target_knowledge_base: string;
|
|
145
|
+
target_function: string;
|
|
146
|
+
function_arguments: string;
|
|
147
|
+
}
|
|
148
|
+
/**
|
|
149
|
+
* Complete agent YAML schema
|
|
150
|
+
*/
|
|
151
|
+
export interface AgentYaml {
|
|
152
|
+
name: string;
|
|
153
|
+
description?: string;
|
|
154
|
+
model: string;
|
|
155
|
+
temperature?: number;
|
|
156
|
+
max_tool_iterations?: number;
|
|
157
|
+
reasoning_effort?: ReasoningEffort;
|
|
158
|
+
/** Short starter message (use starter_message.md for long messages) */
|
|
159
|
+
starter_message?: string;
|
|
160
|
+
outputs?: YamlAgentOutput[];
|
|
161
|
+
tools?: YamlAgentTool[];
|
|
162
|
+
variables?: YamlAgentVariable[];
|
|
163
|
+
}
|
|
164
|
+
/**
|
|
165
|
+
* Knowledge base table in YAML format
|
|
166
|
+
*/
|
|
167
|
+
export interface YamlKnowledgeBaseTable {
|
|
168
|
+
name: string;
|
|
169
|
+
td_query: string;
|
|
170
|
+
enable_data?: boolean;
|
|
171
|
+
enable_data_index?: boolean;
|
|
172
|
+
}
|
|
173
|
+
/**
|
|
174
|
+
* Knowledge base YAML schema
|
|
175
|
+
*/
|
|
176
|
+
export interface KnowledgeBaseYaml {
|
|
177
|
+
name: string;
|
|
178
|
+
database: string;
|
|
179
|
+
tables: YamlKnowledgeBaseTable[];
|
|
180
|
+
}
|
|
181
|
+
/**
|
|
182
|
+
* Prompt YAML schema
|
|
183
|
+
*/
|
|
184
|
+
export interface PromptYaml {
|
|
185
|
+
name: string;
|
|
186
|
+
/** Reference to agent: '@ref(type: "agent", name: "my-agent")' */
|
|
187
|
+
agent: string;
|
|
188
|
+
system_prompt: string;
|
|
189
|
+
template: string;
|
|
190
|
+
json_schema_hint?: string;
|
|
191
|
+
}
|
|
192
|
+
/**
|
|
193
|
+
* Integration action in YAML format
|
|
194
|
+
*/
|
|
195
|
+
export interface YamlIntegrationAction {
|
|
196
|
+
/** Reference to prompt: '@ref(type: "prompt", name: "my-prompt")' */
|
|
197
|
+
prompt: string;
|
|
198
|
+
chat_widget_type: string;
|
|
199
|
+
chat_widget_label: string;
|
|
200
|
+
ui_tags?: unknown[];
|
|
201
|
+
webhook_text_url?: string;
|
|
202
|
+
slack_request_url?: string;
|
|
203
|
+
}
|
|
204
|
+
/**
|
|
205
|
+
* Integration YAML schema
|
|
206
|
+
*/
|
|
207
|
+
export interface IntegrationYaml {
|
|
208
|
+
name: string;
|
|
209
|
+
service_type: string;
|
|
210
|
+
slack_message_mode?: string;
|
|
211
|
+
chat_ignore_managed_actions?: boolean;
|
|
212
|
+
chat_welcome_message?: string;
|
|
213
|
+
webhook_cors_origins?: {
|
|
214
|
+
origin: string;
|
|
215
|
+
}[];
|
|
216
|
+
actions?: YamlIntegrationAction[];
|
|
217
|
+
}
|
|
218
|
+
/**
|
|
219
|
+
* Validate agent YAML structure
|
|
220
|
+
*/
|
|
221
|
+
export declare function validateAgentYaml(obj: unknown, filePath?: string): AgentYaml;
|
|
222
|
+
/**
|
|
223
|
+
* Validate knowledge base YAML structure
|
|
224
|
+
*/
|
|
225
|
+
export declare function validateKnowledgeBaseYaml(obj: unknown, filePath?: string): KnowledgeBaseYaml;
|
|
226
|
+
/**
|
|
227
|
+
* Validate prompt YAML structure
|
|
228
|
+
*/
|
|
229
|
+
export declare function validatePromptYaml(obj: unknown, filePath?: string): PromptYaml;
|
|
230
|
+
/**
|
|
231
|
+
* Validate integration YAML structure
|
|
232
|
+
*/
|
|
233
|
+
export declare function validateIntegrationYaml(obj: unknown, filePath?: string): IntegrationYaml;
|
|
234
|
+
/**
|
|
235
|
+
* Parse YAML string to AgentYaml with validation
|
|
236
|
+
*/
|
|
237
|
+
export declare function parseAgentYaml(content: string, filePath?: string): AgentYaml;
|
|
238
|
+
/**
|
|
239
|
+
* Parse YAML string to KnowledgeBaseYaml with validation
|
|
240
|
+
*/
|
|
241
|
+
export declare function parseKnowledgeBaseYaml(content: string, filePath?: string): KnowledgeBaseYaml;
|
|
242
|
+
/**
|
|
243
|
+
* Parse YAML string to PromptYaml with validation
|
|
244
|
+
*/
|
|
245
|
+
export declare function parsePromptYaml(content: string, filePath?: string): PromptYaml;
|
|
246
|
+
/**
|
|
247
|
+
* Parse YAML string to IntegrationYaml with validation
|
|
248
|
+
*/
|
|
249
|
+
export declare function parseIntegrationYaml(content: string, filePath?: string): IntegrationYaml;
|
|
250
|
+
/**
|
|
251
|
+
* Convert AgentYaml to YAML string with stable field ordering
|
|
252
|
+
*/
|
|
253
|
+
export declare function toAgentYamlString(agent: AgentYaml): string;
|
|
254
|
+
/**
|
|
255
|
+
* Convert KnowledgeBaseYaml to YAML string
|
|
256
|
+
*/
|
|
257
|
+
export declare function toKnowledgeBaseYamlString(kb: KnowledgeBaseYaml): string;
|
|
258
|
+
/**
|
|
259
|
+
* Convert PromptYaml to YAML string
|
|
260
|
+
*/
|
|
261
|
+
export declare function toPromptYamlString(prompt: PromptYaml): string;
|
|
262
|
+
/**
|
|
263
|
+
* Convert IntegrationYaml to YAML string
|
|
264
|
+
*/
|
|
265
|
+
export declare function toIntegrationYamlString(integration: IntegrationYaml): string;
|
|
266
|
+
/**
|
|
267
|
+
* Context for YAML to API conversion (provides ID resolution)
|
|
268
|
+
*/
|
|
269
|
+
export interface YamlToApiContext {
|
|
270
|
+
projectId: string;
|
|
271
|
+
resolveKnowledgeBaseId: (name: string) => Promise<string | undefined>;
|
|
272
|
+
resolveAgentId: (name: string) => Promise<string | undefined>;
|
|
273
|
+
resolveWebSearchToolId: (name: string) => Promise<string | undefined>;
|
|
274
|
+
resolveImageGeneratorId: (name: string) => Promise<string | undefined>;
|
|
275
|
+
resolvePromptId: (name: string) => Promise<string | undefined>;
|
|
276
|
+
}
|
|
277
|
+
/**
|
|
278
|
+
* Context for API to YAML conversion (provides name resolution)
|
|
279
|
+
*/
|
|
280
|
+
export interface ApiToYamlContext {
|
|
281
|
+
resolveKnowledgeBaseName: (id: string) => Promise<string | undefined>;
|
|
282
|
+
resolveAgentName: (id: string) => Promise<string | undefined>;
|
|
283
|
+
resolveWebSearchToolName: (id: string) => Promise<string | undefined>;
|
|
284
|
+
resolveImageGeneratorName: (id: string) => Promise<string | undefined>;
|
|
285
|
+
resolvePromptName: (id: string) => Promise<string | undefined>;
|
|
286
|
+
}
|
|
287
|
+
/**
|
|
288
|
+
* Convert API AgentFull to AgentYaml format
|
|
289
|
+
*/
|
|
290
|
+
export declare function apiAgentToYaml(agent: AgentFull, ctx: ApiToYamlContext): Promise<{
|
|
291
|
+
yaml: AgentYaml;
|
|
292
|
+
systemPrompt: string;
|
|
293
|
+
starterMessage?: string;
|
|
294
|
+
}>;
|
|
295
|
+
/**
|
|
296
|
+
* Convert API KnowledgeBase to KnowledgeBaseYaml format
|
|
297
|
+
*/
|
|
298
|
+
export declare function apiKnowledgeBaseToYaml(kb: KnowledgeBase): KnowledgeBaseYaml;
|
|
299
|
+
/**
|
|
300
|
+
* Convert API LLMPrompt to PromptYaml format
|
|
301
|
+
*/
|
|
302
|
+
export declare function apiPromptToYaml(prompt: LLMPrompt, ctx: ApiToYamlContext): Promise<PromptYaml | null>;
|
|
303
|
+
/**
|
|
304
|
+
* Convert API Integration to IntegrationYaml format
|
|
305
|
+
*/
|
|
306
|
+
export declare function apiIntegrationToYaml(integration: Integration, ctx: ApiToYamlContext): Promise<IntegrationYaml>;
|
|
307
|
+
/**
|
|
308
|
+
* Convert AgentYaml to API create request format
|
|
309
|
+
*/
|
|
310
|
+
export declare function yamlAgentToApi(agentYaml: AgentYaml, systemPrompt: string, starterMessage: string | undefined, ctx: YamlToApiContext): Promise<{
|
|
311
|
+
name: string;
|
|
312
|
+
description?: string;
|
|
313
|
+
projectId: string;
|
|
314
|
+
systemPrompt: string;
|
|
315
|
+
starterMessage?: string;
|
|
316
|
+
modelType: string;
|
|
317
|
+
maxToolIterations: number;
|
|
318
|
+
temperature: number;
|
|
319
|
+
reasoningEffort?: number;
|
|
320
|
+
outputs: AgentOutput[];
|
|
321
|
+
tools: AgentTool[];
|
|
322
|
+
variables: AgentVariable[];
|
|
323
|
+
}>;
|
|
324
|
+
/**
|
|
325
|
+
* Convert KnowledgeBaseYaml to API create request format
|
|
326
|
+
*/
|
|
327
|
+
export declare function yamlKnowledgeBaseToApi(kb: KnowledgeBaseYaml, projectId: string): {
|
|
328
|
+
projectId: string;
|
|
329
|
+
name: string;
|
|
330
|
+
tdDatabaseName: string;
|
|
331
|
+
tables: {
|
|
332
|
+
name: string;
|
|
333
|
+
tdQuery: string;
|
|
334
|
+
enableData: boolean;
|
|
335
|
+
enableDataIndex: boolean;
|
|
336
|
+
}[];
|
|
337
|
+
};
|
|
338
|
+
/**
|
|
339
|
+
* Convert PromptYaml to API create request format
|
|
340
|
+
*/
|
|
341
|
+
export declare function yamlPromptToApi(prompt: PromptYaml, projectId: string, ctx: YamlToApiContext): Promise<{
|
|
342
|
+
projectId: string;
|
|
343
|
+
agentId: string;
|
|
344
|
+
name: string;
|
|
345
|
+
systemPrompt: string;
|
|
346
|
+
template: string;
|
|
347
|
+
jsonSchemaHint?: string;
|
|
348
|
+
} | null>;
|
|
349
|
+
/**
|
|
350
|
+
* Convert IntegrationYaml to API create request format
|
|
351
|
+
*/
|
|
352
|
+
export declare function yamlIntegrationToApi(integration: IntegrationYaml, projectId: string, ctx: YamlToApiContext): Promise<{
|
|
353
|
+
projectId: string;
|
|
354
|
+
serviceType: string;
|
|
355
|
+
slackMessageMode: string;
|
|
356
|
+
chatIgnoreManagedActions: boolean;
|
|
357
|
+
chatWelcomeMessage: string;
|
|
358
|
+
webhookCorsOrigins?: {
|
|
359
|
+
origin: string;
|
|
360
|
+
}[];
|
|
361
|
+
actions: IntegrationAction[];
|
|
362
|
+
}>;
|
|
363
|
+
/**
|
|
364
|
+
* Normalize a name for filesystem use
|
|
365
|
+
* - Convert to lowercase
|
|
366
|
+
* - Replace spaces and special characters with hyphens
|
|
367
|
+
* - Remove consecutive hyphens
|
|
368
|
+
* - Example: "My Support Agent (v2)" -> "my-support-agent-v2"
|
|
369
|
+
*/
|
|
370
|
+
export declare function normalizeName(name: string): string;
|
|
371
|
+
/**
|
|
372
|
+
* Helper class to generate unique normalized names by tracking used names
|
|
373
|
+
* and appending numeric suffixes when collisions occur.
|
|
374
|
+
*
|
|
375
|
+
* Example: If "my-agent" is already used, the next collision returns "my-agent-2"
|
|
376
|
+
*/
|
|
377
|
+
export declare class UniqueNameGenerator {
|
|
378
|
+
private usedNames;
|
|
379
|
+
/**
|
|
380
|
+
* Get a unique normalized name, appending a suffix if the name is already used
|
|
381
|
+
* @param name - Original name to normalize
|
|
382
|
+
* @returns Unique normalized name
|
|
383
|
+
*/
|
|
384
|
+
getUniqueName(name: string): string;
|
|
385
|
+
}
|
|
386
|
+
//# sourceMappingURL=agent-yaml.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"agent-yaml.d.ts","sourceRoot":"","sources":["../../../src/sdk/agent/agent-yaml.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;GAsBG;AAIH,OAAO,KAAK,EACV,SAAS,EACT,SAAS,EACT,aAAa,EACb,WAAW,EACX,aAAa,EACb,SAAS,EACT,WAAW,EACX,iBAAiB,EAClB,MAAM,oBAAoB,CAAC;AAe5B;;;;GAIG;AACH,wBAAgB,gBAAgB,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM,CAE1D;AAMD;;GAEG;AACH,MAAM,MAAM,OAAO,GAAG,gBAAgB,GAAG,OAAO,GAAG,iBAAiB,GAAG,iBAAiB,GAAG,QAAQ,CAAC;AAEpG;;GAEG;AACH,MAAM,WAAW,SAAS;IACxB,IAAI,EAAE,OAAO,CAAC;IACd,IAAI,EAAE,MAAM,CAAC;CACd;AAOD;;;;GAIG;AACH,wBAAgB,QAAQ,CAAC,SAAS,EAAE,MAAM,GAAG,SAAS,GAAG,IAAI,CAQ5D;AAED;;;;;GAKG;AACH,wBAAgB,KAAK,CAAC,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,GAAG,MAAM,CAEzD;AAED;;GAEG;AACH,wBAAgB,KAAK,CAAC,KAAK,EAAE,OAAO,GAAG,OAAO,CAE7C;AAED;;;GAGG;AACH,wBAAgB,oBAAoB,CAAC,SAAS,EAAE,SAAS,GAAG,MAAM,EAAE,CAWnE;AAED;;;;;;GAMG;AACH,wBAAgB,YAAY,CAAC,SAAS,EAAE,SAAS,EAAE,mBAAmB,EAAE,GAAG,CAAC,MAAM,CAAC,GAAG,OAAO,CAG5F;AAED;;GAEG;AACH,MAAM,WAAW,qBAAqB,CAAC,CAAC,SAAS;IAAE,IAAI,EAAE,SAAS,CAAA;CAAE;IAClE,iDAAiD;IACjD,QAAQ,EAAE,CAAC,EAAE,CAAC;IACd,gEAAgE;IAChE,UAAU,EAAE,KAAK,CAAC;QAAE,KAAK,EAAE,CAAC,CAAC;QAAC,WAAW,EAAE,MAAM,EAAE,CAAA;KAAE,CAAC,CAAC;CACxD;AAED;;;;;;;;;GASG;AACH,wBAAgB,wBAAwB,CAAC,CAAC,SAAS;IAAE,IAAI,EAAE,SAAS,CAAA;CAAE,EACpE,MAAM,EAAE,CAAC,EAAE,EACX,gBAAgB,GAAE,GAAG,CAAC,MAAM,CAAa,GACxC,qBAAqB,CAAC,CAAC,CAAC,CAkC1B;AAMD;;GAEG;AACH,MAAM,MAAM,eAAe,GAAG,MAAM,GAAG,SAAS,GAAG,KAAK,GAAG,QAAQ,GAAG,MAAM,CAAC;AAE7E;;GAEG;AACH,wBAAgB,oBAAoB,CAAC,MAAM,EAAE,eAAe,GAAG,SAAS,GAAG,MAAM,GAAG,SAAS,CAU5F;AAED;;GAEG;AACH,wBAAgB,sBAAsB,CAAC,KAAK,EAAE,MAAM,GAAG,SAAS,GAAG,eAAe,GAAG,SAAS,CAU7F;AAED;;GAEG;AACH,MAAM,MAAM,YAAY,GAAG,gBAAgB,GAAG,OAAO,GAAG,YAAY,GAAG,WAAW,CAAC;AAEnF;;GAEG;AACH,MAAM,WAAW,eAAe;IAC9B,IAAI,EAAE,MAAM,CAAC;IACb,aAAa,EAAE,MAAM,CAAC;IACtB,oBAAoB,CAAC,EAAE,MAAM,CAAC;IAC9B,WAAW,EAAE,MAAM,CAAC;CACrB;AAED;;GAEG;AACH,MAAM,WAAW,aAAa;IAC5B,IAAI,EAAE,YAAY,CAAC;IACnB,kFAAkF;IAClF,MAAM,EAAE,MAAM,CAAC;IACf,eAAe,EAAE,MAAM,CAAC;IACxB,aAAa,EAAE,MAAM,CAAC;IACtB,oBAAoB,EAAE,MAAM,CAAC;IAC7B,WAAW,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IACjC,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,eAAe,CAAC,EAAE,MAAM,CAAC;CAC1B;AAED;;GAEG;AACH,MAAM,WAAW,iBAAiB;IAChC,IAAI,EAAE,MAAM,CAAC;IACb,iFAAiF;IACjF,qBAAqB,EAAE,MAAM,CAAC;IAC9B,eAAe,EAAE,MAAM,CAAC;IACxB,kBAAkB,EAAE,MAAM,CAAC;CAC5B;AAED;;GAEG;AACH,MAAM,WAAW,SAAS;IACxB,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAC7B,gBAAgB,CAAC,EAAE,eAAe,CAAC;IACnC,uEAAuE;IACvE,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,OAAO,CAAC,EAAE,eAAe,EAAE,CAAC;IAC5B,KAAK,CAAC,EAAE,aAAa,EAAE,CAAC;IACxB,SAAS,CAAC,EAAE,iBAAiB,EAAE,CAAC;CACjC;AAMD;;GAEG;AACH,MAAM,WAAW,sBAAsB;IACrC,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,MAAM,CAAC;IACjB,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,iBAAiB,CAAC,EAAE,OAAO,CAAC;CAC7B;AAED;;GAEG;AACH,MAAM,WAAW,iBAAiB;IAChC,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,sBAAsB,EAAE,CAAC;CAClC;AAMD;;GAEG;AACH,MAAM,WAAW,UAAU;IACzB,IAAI,EAAE,MAAM,CAAC;IACb,kEAAkE;IAClE,KAAK,EAAE,MAAM,CAAC;IACd,aAAa,EAAE,MAAM,CAAC;IACtB,QAAQ,EAAE,MAAM,CAAC;IACjB,gBAAgB,CAAC,EAAE,MAAM,CAAC;CAC3B;AAMD;;GAEG;AACH,MAAM,WAAW,qBAAqB;IACpC,qEAAqE;IACrE,MAAM,EAAE,MAAM,CAAC;IACf,gBAAgB,EAAE,MAAM,CAAC;IACzB,iBAAiB,EAAE,MAAM,CAAC;IAC1B,OAAO,CAAC,EAAE,OAAO,EAAE,CAAC;IACpB,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,iBAAiB,CAAC,EAAE,MAAM,CAAC;CAC5B;AAED;;GAEG;AACH,MAAM,WAAW,eAAe;IAC9B,IAAI,EAAE,MAAM,CAAC;IACb,YAAY,EAAE,MAAM,CAAC;IACrB,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,2BAA2B,CAAC,EAAE,OAAO,CAAC;IACtC,oBAAoB,CAAC,EAAE,MAAM,CAAC;IAC9B,oBAAoB,CAAC,EAAE;QAAE,MAAM,EAAE,MAAM,CAAA;KAAE,EAAE,CAAC;IAC5C,OAAO,CAAC,EAAE,qBAAqB,EAAE,CAAC;CACnC;AAMD;;GAEG;AACH,wBAAgB,iBAAiB,CAAC,GAAG,EAAE,OAAO,EAAE,QAAQ,CAAC,EAAE,MAAM,GAAG,SAAS,CA8E5E;AAyID;;GAEG;AACH,wBAAgB,yBAAyB,CAAC,GAAG,EAAE,OAAO,EAAE,QAAQ,CAAC,EAAE,MAAM,GAAG,iBAAiB,CAkC5F;AAED;;GAEG;AACH,wBAAgB,kBAAkB,CAAC,GAAG,EAAE,OAAO,EAAE,QAAQ,CAAC,EAAE,MAAM,GAAG,UAAU,CAkD9E;AAED;;GAEG;AACH,wBAAgB,uBAAuB,CAAC,GAAG,EAAE,OAAO,EAAE,QAAQ,CAAC,EAAE,MAAM,GAAG,eAAe,CA2BxF;AAMD;;GAEG;AACH,wBAAgB,cAAc,CAAC,OAAO,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,MAAM,GAAG,SAAS,CAY5E;AAED;;GAEG;AACH,wBAAgB,sBAAsB,CAAC,OAAO,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,MAAM,GAAG,iBAAiB,CAY5F;AAED;;GAEG;AACH,wBAAgB,eAAe,CAAC,OAAO,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,MAAM,GAAG,UAAU,CAY9E;AAED;;GAEG;AACH,wBAAgB,oBAAoB,CAAC,OAAO,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,MAAM,GAAG,eAAe,CAYxF;AAMD;;GAEG;AACH,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,SAAS,GAAG,MAAM,CAuB1D;AAED;;GAEG;AACH,wBAAgB,yBAAyB,CAAC,EAAE,EAAE,iBAAiB,GAAG,MAAM,CAOvE;AAED;;GAEG;AACH,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,UAAU,GAAG,MAAM,CAO7D;AAED;;GAEG;AACH,wBAAgB,uBAAuB,CAAC,WAAW,EAAE,eAAe,GAAG,MAAM,CAO5E;AAMD;;GAEG;AACH,MAAM,WAAW,gBAAgB;IAC/B,SAAS,EAAE,MAAM,CAAC;IAClB,sBAAsB,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC,CAAC;IACtE,cAAc,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC,CAAC;IAC9D,sBAAsB,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC,CAAC;IACtE,uBAAuB,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC,CAAC;IACvE,eAAe,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC,CAAC;CAChE;AAED;;GAEG;AACH,MAAM,WAAW,gBAAgB;IAC/B,wBAAwB,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC,CAAC;IACtE,gBAAgB,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC,CAAC;IAC9D,wBAAwB,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC,CAAC;IACtE,yBAAyB,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC,CAAC;IACvE,iBAAiB,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC,CAAC;CAChE;AAMD;;GAEG;AACH,wBAAsB,cAAc,CAClC,KAAK,EAAE,SAAS,EAChB,GAAG,EAAE,gBAAgB,GACpB,OAAO,CAAC;IAAE,IAAI,EAAE,SAAS,CAAC;IAAC,YAAY,EAAE,MAAM,CAAC;IAAC,cAAc,CAAC,EAAE,MAAM,CAAA;CAAE,CAAC,CA2D7E;AAyDD;;GAEG;AACH,wBAAgB,sBAAsB,CAAC,EAAE,EAAE,aAAa,GAAG,iBAAiB,CAW3E;AAED;;GAEG;AACH,wBAAsB,eAAe,CACnC,MAAM,EAAE,SAAS,EACjB,GAAG,EAAE,gBAAgB,GACpB,OAAO,CAAC,UAAU,GAAG,IAAI,CAAC,CAgB5B;AAED;;GAEG;AACH,wBAAsB,oBAAoB,CACxC,WAAW,EAAE,WAAW,EACxB,GAAG,EAAE,gBAAgB,GACpB,OAAO,CAAC,eAAe,CAAC,CAmC1B;AAMD;;GAEG;AACH,wBAAsB,cAAc,CAClC,SAAS,EAAE,SAAS,EACpB,YAAY,EAAE,MAAM,EACpB,cAAc,EAAE,MAAM,GAAG,SAAS,EAClC,GAAG,EAAE,gBAAgB,GACpB,OAAO,CAAC;IACT,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,SAAS,EAAE,MAAM,CAAC;IAClB,YAAY,EAAE,MAAM,CAAC;IACrB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,SAAS,EAAE,MAAM,CAAC;IAClB,iBAAiB,EAAE,MAAM,CAAC;IAC1B,WAAW,EAAE,MAAM,CAAC;IACpB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,OAAO,EAAE,WAAW,EAAE,CAAC;IACvB,KAAK,EAAE,SAAS,EAAE,CAAC;IACnB,SAAS,EAAE,aAAa,EAAE,CAAC;CAC5B,CAAC,CAiDD;AAqDD;;GAEG;AACH,wBAAgB,sBAAsB,CACpC,EAAE,EAAE,iBAAiB,EACrB,SAAS,EAAE,MAAM,GAChB;IACD,SAAS,EAAE,MAAM,CAAC;IAClB,IAAI,EAAE,MAAM,CAAC;IACb,cAAc,EAAE,MAAM,CAAC;IACvB,MAAM,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAC;QAAC,UAAU,EAAE,OAAO,CAAC;QAAC,eAAe,EAAE,OAAO,CAAA;KAAE,EAAE,CAAC;CAC5F,CAYA;AAED;;GAEG;AACH,wBAAsB,eAAe,CACnC,MAAM,EAAE,UAAU,EAClB,SAAS,EAAE,MAAM,EACjB,GAAG,EAAE,gBAAgB,GACpB,OAAO,CAAC;IACT,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,MAAM,CAAC;IACb,YAAY,EAAE,MAAM,CAAC;IACrB,QAAQ,EAAE,MAAM,CAAC;IACjB,cAAc,CAAC,EAAE,MAAM,CAAC;CACzB,GAAG,IAAI,CAAC,CAeR;AAED;;GAEG;AACH,wBAAsB,oBAAoB,CACxC,WAAW,EAAE,eAAe,EAC5B,SAAS,EAAE,MAAM,EACjB,GAAG,EAAE,gBAAgB,GACpB,OAAO,CAAC;IACT,SAAS,EAAE,MAAM,CAAC;IAClB,WAAW,EAAE,MAAM,CAAC;IACpB,gBAAgB,EAAE,MAAM,CAAC;IACzB,wBAAwB,EAAE,OAAO,CAAC;IAClC,kBAAkB,EAAE,MAAM,CAAC;IAC3B,kBAAkB,CAAC,EAAE;QAAE,MAAM,EAAE,MAAM,CAAA;KAAE,EAAE,CAAC;IAC1C,OAAO,EAAE,iBAAiB,EAAE,CAAC;CAC9B,CAAC,CA4BD;AAMD;;;;;;GAMG;AACH,wBAAgB,aAAa,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAMlD;AAED;;;;;GAKG;AACH,qBAAa,mBAAmB;IAC9B,OAAO,CAAC,SAAS,CAAqB;IAEtC;;;;OAIG;IACH,aAAa,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM;CAgBpC"}
|