@ai-agent-forge/agent-forge 0.88.4 → 0.88.6
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/CHANGELOG.md +30 -0
- package/bundled-plugins/agent-loop-policy/agent-forge.json +1 -1
- package/bundled-plugins/agent-loop-policy/plugin.json +1 -1
- package/bundled-plugins/alignment/agent-forge.json +19 -0
- package/bundled-plugins/alignment/dist/baseline.d.ts +12 -0
- package/bundled-plugins/alignment/dist/baseline.d.ts.map +1 -0
- package/bundled-plugins/alignment/dist/baseline.js +68 -0
- package/bundled-plugins/alignment/dist/baseline.js.map +1 -0
- package/bundled-plugins/alignment/dist/engine.d.ts +102 -0
- package/bundled-plugins/alignment/dist/engine.d.ts.map +1 -0
- package/bundled-plugins/alignment/dist/engine.js +654 -0
- package/bundled-plugins/alignment/dist/engine.js.map +1 -0
- package/bundled-plugins/alignment/dist/entry.d.ts +14 -0
- package/bundled-plugins/alignment/dist/entry.d.ts.map +1 -0
- package/bundled-plugins/alignment/dist/entry.js +23 -0
- package/bundled-plugins/alignment/dist/entry.js.map +1 -0
- package/bundled-plugins/alignment/dist/export.d.ts +15 -0
- package/bundled-plugins/alignment/dist/export.d.ts.map +1 -0
- package/bundled-plugins/alignment/dist/export.js +122 -0
- package/bundled-plugins/alignment/dist/export.js.map +1 -0
- package/bundled-plugins/alignment/dist/http-server.d.ts +33 -0
- package/bundled-plugins/alignment/dist/http-server.d.ts.map +1 -0
- package/bundled-plugins/alignment/dist/http-server.js +119 -0
- package/bundled-plugins/alignment/dist/http-server.js.map +1 -0
- package/bundled-plugins/alignment/dist/index.d.ts +24 -0
- package/bundled-plugins/alignment/dist/index.d.ts.map +1 -0
- package/bundled-plugins/alignment/dist/index.js +719 -0
- package/bundled-plugins/alignment/dist/index.js.map +1 -0
- package/bundled-plugins/alignment/dist/page.d.ts +15 -0
- package/bundled-plugins/alignment/dist/page.d.ts.map +1 -0
- package/bundled-plugins/alignment/dist/page.js +832 -0
- package/bundled-plugins/alignment/dist/page.js.map +1 -0
- package/bundled-plugins/alignment/dist/render.d.ts +40 -0
- package/bundled-plugins/alignment/dist/render.d.ts.map +1 -0
- package/bundled-plugins/alignment/dist/render.js +194 -0
- package/bundled-plugins/alignment/dist/render.js.map +1 -0
- package/bundled-plugins/alignment/dist/types.d.ts +217 -0
- package/bundled-plugins/alignment/dist/types.d.ts.map +1 -0
- package/bundled-plugins/alignment/dist/types.js +30 -0
- package/bundled-plugins/alignment/dist/types.js.map +1 -0
- package/bundled-plugins/alignment/plugin.json +12 -0
- package/bundled-plugins/browser-playwright/MANUAL.md +60 -0
- package/bundled-plugins/browser-playwright/agent-forge.json +25 -0
- package/bundled-plugins/browser-playwright/dist/capability.d.ts +25 -0
- package/bundled-plugins/browser-playwright/dist/capability.d.ts.map +1 -0
- package/bundled-plugins/browser-playwright/dist/capability.js +612 -0
- package/bundled-plugins/browser-playwright/dist/capability.js.map +1 -0
- package/bundled-plugins/browser-playwright/dist/entry.d.ts +13 -0
- package/bundled-plugins/browser-playwright/dist/entry.d.ts.map +1 -0
- package/bundled-plugins/browser-playwright/dist/entry.js +14 -0
- package/bundled-plugins/browser-playwright/dist/entry.js.map +1 -0
- package/bundled-plugins/browser-playwright/dist/index.d.ts +7 -0
- package/bundled-plugins/browser-playwright/dist/index.d.ts.map +1 -0
- package/bundled-plugins/browser-playwright/dist/index.js +5 -0
- package/bundled-plugins/browser-playwright/dist/index.js.map +1 -0
- package/bundled-plugins/browser-playwright/dist/operations.d.ts +69 -0
- package/bundled-plugins/browser-playwright/dist/operations.d.ts.map +1 -0
- package/bundled-plugins/browser-playwright/dist/operations.js +149 -0
- package/bundled-plugins/browser-playwright/dist/operations.js.map +1 -0
- package/bundled-plugins/browser-playwright/dist/playwright-driver.d.ts +275 -0
- package/bundled-plugins/browser-playwright/dist/playwright-driver.d.ts.map +1 -0
- package/bundled-plugins/browser-playwright/dist/playwright-driver.js +953 -0
- package/bundled-plugins/browser-playwright/dist/playwright-driver.js.map +1 -0
- package/bundled-plugins/browser-playwright/dist/setup.d.ts +88 -0
- package/bundled-plugins/browser-playwright/dist/setup.d.ts.map +1 -0
- package/bundled-plugins/browser-playwright/dist/setup.js +252 -0
- package/bundled-plugins/browser-playwright/dist/setup.js.map +1 -0
- package/bundled-plugins/browser-playwright/dist/types.d.ts +270 -0
- package/bundled-plugins/browser-playwright/dist/types.d.ts.map +1 -0
- package/bundled-plugins/browser-playwright/dist/types.js +2 -0
- package/bundled-plugins/browser-playwright/dist/types.js.map +1 -0
- package/bundled-plugins/browser-playwright/plugin.json +20 -0
- package/bundled-plugins/coding-tools/agent-forge.json +1 -1
- package/bundled-plugins/coding-tools/dist/bash.d.ts +2 -7
- package/bundled-plugins/coding-tools/dist/bash.d.ts.map +1 -1
- package/bundled-plugins/coding-tools/dist/bash.js +2 -34
- package/bundled-plugins/coding-tools/dist/bash.js.map +1 -1
- package/bundled-plugins/coding-tools/plugin.json +1 -1
- package/bundled-plugins/compaction-policy/agent-forge.json +1 -1
- package/bundled-plugins/compaction-policy/plugin.json +1 -1
- package/bundled-plugins/mcp-http/dist/mcp-http.d.ts.map +1 -1
- package/bundled-plugins/mcp-http/dist/mcp-http.js +84 -31
- package/bundled-plugins/mcp-http/dist/mcp-http.js.map +1 -1
- package/bundled-plugins/overflow-policy/agent-forge.json +1 -1
- package/bundled-plugins/overflow-policy/plugin.json +1 -1
- package/bundled-plugins/provider-failover/agent-forge.json +1 -1
- package/bundled-plugins/provider-failover/plugin.json +1 -1
- package/bundled-plugins/retry-policy/agent-forge.json +1 -1
- package/bundled-plugins/retry-policy/plugin.json +1 -1
- package/dist/bundle/.build-manifest.json +60 -58
- package/dist/bundle/chunks/{anthropic-messages-3FJHRAJL.js → anthropic-messages-NL4Y6WPB.js} +1 -1
- package/dist/bundle/chunks/{azure-openai-responses-GCL47IDS.js → azure-openai-responses-CPXC42HO.js} +1 -1
- package/dist/bundle/chunks/bedrock-converse-stream.js +1 -1
- package/dist/bundle/chunks/chunk-5LRQFZFE.js +2 -0
- package/dist/bundle/chunks/{chunk-HTEVUY7F.js → chunk-7HSJPQKN.js} +1 -1
- package/dist/bundle/chunks/{chunk-AC2FIS4G.js → chunk-EDO7Q6XR.js} +1 -1
- package/dist/bundle/chunks/{chunk-755VNWIF.js → chunk-ISLHFRER.js} +6 -6
- package/dist/bundle/chunks/{chunk-HV64ASMT.js → chunk-K3S6GTL7.js} +1 -1
- package/dist/bundle/chunks/{chunk-HEL6TAWE.js → chunk-POLDAUYA.js} +37 -36
- package/dist/bundle/chunks/{chunk-V3ACW7VD.js → chunk-WJSKB3FC.js} +1 -1
- package/dist/bundle/chunks/{chunk-32YDZI4J.js → chunk-ZS5JEI76.js} +1 -1
- package/dist/bundle/chunks/{google-generative-ai-6BMXWA44.js → google-generative-ai-UMZ53EFA.js} +1 -1
- package/dist/bundle/chunks/{google-vertex-6H7NLRTK.js → google-vertex-ZNR5NS6H.js} +1 -1
- package/dist/bundle/chunks/image-resize-worker.js +1 -1
- package/dist/bundle/chunks/{mistral-conversations-IXUHSFSJ.js → mistral-conversations-IT66WUNN.js} +1 -1
- package/dist/bundle/chunks/{openai-codex-responses-YHUAEVCM.js → openai-codex-responses-FOVCVG6I.js} +1 -1
- package/dist/bundle/chunks/{openai-completions-ULQCFC72.js → openai-completions-FLQ7CBOL.js} +1 -1
- package/dist/bundle/chunks/{openai-responses-NLLAJDPS.js → openai-responses-ABGYHS2T.js} +1 -1
- package/dist/bundle/chunks/{pi-messages-EJTI2EJ3.js → pi-messages-6K5W6LUN.js} +1 -1
- package/dist/bundle/chunks/{virtual-modules-TQWEGNNZ.js → virtual-modules-2QGILFV7.js} +1 -1
- package/dist/bundle/cli.js +1 -1
- package/dist/bundle/client.js +1 -1
- package/dist/bundle/index.js +1 -1
- package/dist/bundle/rpc-entry.js +1 -1
- package/dist/client/remote-session.d.ts.map +1 -1
- package/dist/client/remote-session.js +65 -6
- package/dist/client/remote-session.js.map +1 -1
- package/dist/core/agent-session-store.d.ts.map +1 -1
- package/dist/core/agent-session-store.js +20 -3
- package/dist/core/agent-session-store.js.map +1 -1
- package/dist/core/extensions/agent-composition.d.ts.map +1 -1
- package/dist/core/extensions/agent-composition.js +20 -1
- package/dist/core/extensions/agent-composition.js.map +1 -1
- package/dist/core/i18n/locales/zh-cn/core-errors.d.ts.map +1 -1
- package/dist/core/i18n/locales/zh-cn/core-errors.js +1 -0
- package/dist/core/i18n/locales/zh-cn/core-errors.js.map +1 -1
- package/dist/core/i18n/locales/zh-cn/interactive-mode.d.ts.map +1 -1
- package/dist/core/i18n/locales/zh-cn/interactive-mode.js +10 -3
- package/dist/core/i18n/locales/zh-cn/interactive-mode.js.map +1 -1
- package/dist/core/keybindings.d.ts +35 -0
- package/dist/core/keybindings.d.ts.map +1 -1
- package/dist/core/keybindings.js +34 -0
- package/dist/core/keybindings.js.map +1 -1
- package/dist/core/sdk.d.ts.map +1 -1
- package/dist/core/sdk.js +62 -15
- package/dist/core/sdk.js.map +1 -1
- package/dist/core/session-manager.d.ts.map +1 -1
- package/dist/core/session-manager.js +11 -3
- package/dist/core/session-manager.js.map +1 -1
- package/dist/core/system-prompt.d.ts.map +1 -1
- package/dist/core/system-prompt.js +2 -2
- package/dist/core/system-prompt.js.map +1 -1
- package/dist/core/tools/capability-mount.d.ts.map +1 -1
- package/dist/core/tools/capability-mount.js +4 -21
- package/dist/core/tools/capability-mount.js.map +1 -1
- package/dist/modes/interactive/components/assistant-message.d.ts.map +1 -1
- package/dist/modes/interactive/components/assistant-message.js +2 -2
- package/dist/modes/interactive/components/assistant-message.js.map +1 -1
- package/dist/modes/interactive/components/bash-execution.d.ts +2 -0
- package/dist/modes/interactive/components/bash-execution.d.ts.map +1 -1
- package/dist/modes/interactive/components/bash-execution.js +25 -0
- package/dist/modes/interactive/components/bash-execution.js.map +1 -1
- package/dist/modes/interactive/components/changelog-pager.d.ts +53 -0
- package/dist/modes/interactive/components/changelog-pager.d.ts.map +1 -0
- package/dist/modes/interactive/components/changelog-pager.js +239 -0
- package/dist/modes/interactive/components/changelog-pager.js.map +1 -0
- package/dist/modes/interactive/components/tool-execution.d.ts +6 -0
- package/dist/modes/interactive/components/tool-execution.d.ts.map +1 -1
- package/dist/modes/interactive/components/tool-execution.js +12 -0
- package/dist/modes/interactive/components/tool-execution.js.map +1 -1
- package/dist/modes/interactive/components/tool-run-group.d.ts +41 -11
- package/dist/modes/interactive/components/tool-run-group.d.ts.map +1 -1
- package/dist/modes/interactive/components/tool-run-group.js +126 -14
- package/dist/modes/interactive/components/tool-run-group.js.map +1 -1
- package/dist/modes/interactive/interactive-commands.d.ts.map +1 -1
- package/dist/modes/interactive/interactive-commands.js +23 -13
- package/dist/modes/interactive/interactive-commands.js.map +1 -1
- package/dist/modes/interactive/interactive-events.d.ts +14 -4
- package/dist/modes/interactive/interactive-events.d.ts.map +1 -1
- package/dist/modes/interactive/interactive-events.js +94 -12
- package/dist/modes/interactive/interactive-events.js.map +1 -1
- package/dist/modes/interactive/interactive-mode.d.ts +6 -1
- package/dist/modes/interactive/interactive-mode.d.ts.map +1 -1
- package/dist/modes/interactive/interactive-mode.js +21 -5
- package/dist/modes/interactive/interactive-mode.js.map +1 -1
- package/dist/plugins/ecosystem/node-local-package-source.d.ts +2 -1
- package/dist/plugins/ecosystem/node-local-package-source.d.ts.map +1 -1
- package/dist/plugins/ecosystem/node-local-package-source.js +110 -4
- package/dist/plugins/ecosystem/node-local-package-source.js.map +1 -1
- package/dist/plugins/ecosystem/node-package-install-host.d.ts.map +1 -1
- package/dist/plugins/ecosystem/node-package-install-host.js +106 -39
- package/dist/plugins/ecosystem/node-package-install-host.js.map +1 -1
- package/dist/plugins/ecosystem/node-plugin-bootstrap.d.ts.map +1 -1
- package/dist/plugins/ecosystem/node-plugin-bootstrap.js +59 -2
- package/dist/plugins/ecosystem/node-plugin-bootstrap.js.map +1 -1
- package/dist/suites/builtin-suites.d.ts.map +1 -1
- package/dist/suites/builtin-suites.js +2 -2
- package/dist/suites/builtin-suites.js.map +1 -1
- package/dist/utils/changelog.d.ts +27 -0
- package/dist/utils/changelog.d.ts.map +1 -1
- package/dist/utils/changelog.js +110 -0
- package/dist/utils/changelog.js.map +1 -1
- package/docs/keybindings.md +14 -0
- package/examples/extensions/with-deps/package-lock.json +2 -2
- package/examples/extensions/with-deps/package.json +1 -1
- package/examples/extensions/with-deps/plugin.json +1 -1
- package/package.json +1 -1
- package/dist/bundle/chunks/chunk-A3JYRWB6.js +0 -2
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { createRequire as __piCreateRequire } from "node:module"; const require = __piCreateRequire(import.meta.url);
|
|
2
|
-
import{cleanupSessionResources,registerSessionResourceCleanup,uuidv7}from"./chunk-JUUC5AZY.js";import{require_bash,require_c,require_core,require_cpp,require_csharp,require_dart,require_go,require_groovy,require_java,require_javascript,require_kotlin,require_lua,require_nix,require_perl,require_php,require_python,require_ruby,require_rust,require_scala,require_swift,require_typescript}from"./chunk-XDUWOHPL.js";import{t}from"./chunk-V3ACW7VD.js";import{getProviderEnvValue}from"./chunk-BVVSHK6W.js";import{parseJsonWithRepair,parseStreamingJson,repairJson}from"./chunk-TRDNDS6A.js";import{InMemoryCredentialStore,InMemoryModelsStore,ModelsError,calculateCost,clampThinkingLevel,createModels,createProvider,defaultProviderAuthContext,getSupportedThinkingLevels,hasApi,lazyApi,lazyStream,modelsAreEqual,resolveProviderAuth}from"./chunk-HV64ASMT.js";import{AssistantMessageEventStream,EventStream,appendAssistantMessageDiagnostic,createAssistantMessageDiagnostic,createAssistantMessageEventStream,extractDiagnosticError,formatThrownValue}from"./chunk-A3JYRWB6.js";import{__commonJS,__export,__require,__toESM}from"./chunk-4L3WN2XY.js";var require_windows=__commonJS({"node_modules/isexe/windows.js"(exports,module){module.exports=isexe;isexe.sync=sync;var fs5=__require("fs");function checkPathExt(path7,options){var pathext=options.pathExt!==void 0?options.pathExt:process.env.PATHEXT;if(!pathext||(pathext=pathext.split(";"),pathext.indexOf("")!==-1))return!0;for(var i=0;i<pathext.length;i++){var p=pathext[i].toLowerCase();if(p&&path7.substr(-p.length).toLowerCase()===p)return!0}return!1}function checkStat(stat3,path7,options){return!stat3.isSymbolicLink()&&!stat3.isFile()?!1:checkPathExt(path7,options)}function isexe(path7,options,cb){fs5.stat(path7,function(er,stat3){cb(er,er?!1:checkStat(stat3,path7,options))})}function sync(path7,options){return checkStat(fs5.statSync(path7),path7,options)}}});var require_mode=__commonJS({"node_modules/isexe/mode.js"(exports,module){module.exports=isexe;isexe.sync=sync;var fs5=__require("fs");function isexe(path7,options,cb){fs5.stat(path7,function(er,stat3){cb(er,er?!1:checkStat(stat3,options))})}function sync(path7,options){return checkStat(fs5.statSync(path7),options)}function checkStat(stat3,options){return stat3.isFile()&&checkMode(stat3,options)}function checkMode(stat3,options){var mod=stat3.mode,uid=stat3.uid,gid=stat3.gid,myUid=options.uid!==void 0?options.uid:process.getuid&&process.getuid(),myGid=options.gid!==void 0?options.gid:process.getgid&&process.getgid(),u=parseInt("100",8),g2=parseInt("010",8),o=parseInt("001",8),ug=u|g2,ret=mod&o||mod&g2&&gid===myGid||mod&u&&uid===myUid||mod&ug&&myUid===0;return ret}}});var require_isexe=__commonJS({"node_modules/isexe/index.js"(exports,module){var fs5=__require("fs"),core;process.platform==="win32"||global.TESTING_WINDOWS?core=require_windows():core=require_mode();module.exports=isexe;isexe.sync=sync;function isexe(path7,options,cb){if(typeof options=="function"&&(cb=options,options={}),!cb){if(typeof Promise!="function")throw new TypeError("callback not provided");return new Promise(function(resolve5,reject){isexe(path7,options||{},function(er,is){er?reject(er):resolve5(is)})})}core(path7,options||{},function(er,is){er&&(er.code==="EACCES"||options&&options.ignoreErrors)&&(er=null,is=!1),cb(er,is)})}function sync(path7,options){try{return core.sync(path7,options||{})}catch(er){if(options&&options.ignoreErrors||er.code==="EACCES")return!1;throw er}}}});var require_which=__commonJS({"node_modules/which/which.js"(exports,module){var isWindows=process.platform==="win32"||process.env.OSTYPE==="cygwin"||process.env.OSTYPE==="msys",path7=__require("path"),COLON=isWindows?";":":",isexe=require_isexe(),getNotFoundError2=cmd=>Object.assign(new Error(`not found: ${cmd}`),{code:"ENOENT"}),getPathInfo=(cmd,opt)=>{let colon=opt.colon||COLON,pathEnv=cmd.match(/\//)||isWindows&&cmd.match(/\\/)?[""]:[...isWindows?[process.cwd()]:[],...(opt.path||process.env.PATH||"").split(colon)],pathExtExe=isWindows?opt.pathExt||process.env.PATHEXT||".EXE;.CMD;.BAT;.COM":"",pathExt=isWindows?pathExtExe.split(colon):[""];return isWindows&&cmd.indexOf(".")!==-1&&pathExt[0]!==""&&pathExt.unshift(""),{pathEnv,pathExt,pathExtExe}},which=(cmd,opt,cb)=>{typeof opt=="function"&&(cb=opt,opt={}),opt||(opt={});let{pathEnv,pathExt,pathExtExe}=getPathInfo(cmd,opt),found=[],step=i=>new Promise((resolve5,reject)=>{if(i===pathEnv.length)return opt.all&&found.length?resolve5(found):reject(getNotFoundError2(cmd));let ppRaw=pathEnv[i],pathPart=/^".*"$/.test(ppRaw)?ppRaw.slice(1,-1):ppRaw,pCmd=path7.join(pathPart,cmd),p=!pathPart&&/^\.[\\\/]/.test(cmd)?cmd.slice(0,2)+pCmd:pCmd;resolve5(subStep(p,i,0))}),subStep=(p,i,ii)=>new Promise((resolve5,reject)=>{if(ii===pathExt.length)return resolve5(step(i+1));let ext=pathExt[ii];isexe(p+ext,{pathExt:pathExtExe},(er,is)=>{if(!er&&is)if(opt.all)found.push(p+ext);else return resolve5(p+ext);return resolve5(subStep(p,i,ii+1))})});return cb?step(0).then(res=>cb(null,res),cb):step(0)},whichSync=(cmd,opt)=>{opt=opt||{};let{pathEnv,pathExt,pathExtExe}=getPathInfo(cmd,opt),found=[];for(let i=0;i<pathEnv.length;i++){let ppRaw=pathEnv[i],pathPart=/^".*"$/.test(ppRaw)?ppRaw.slice(1,-1):ppRaw,pCmd=path7.join(pathPart,cmd),p=!pathPart&&/^\.[\\\/]/.test(cmd)?cmd.slice(0,2)+pCmd:pCmd;for(let j2=0;j2<pathExt.length;j2++){let cur=p+pathExt[j2];try{if(isexe.sync(cur,{pathExt:pathExtExe}))if(opt.all)found.push(cur);else return cur}catch{}}}if(opt.all&&found.length)return found;if(opt.nothrow)return null;throw getNotFoundError2(cmd)};module.exports=which;which.sync=whichSync}});var require_path_key=__commonJS({"node_modules/path-key/index.js"(exports,module){"use strict";var pathKey=(options={})=>{let environment=options.env||process.env;return(options.platform||process.platform)!=="win32"?"PATH":Object.keys(environment).reverse().find(key=>key.toUpperCase()==="PATH")||"Path"};module.exports=pathKey;module.exports.default=pathKey}});var require_resolveCommand=__commonJS({"node_modules/cross-spawn/lib/util/resolveCommand.js"(exports,module){"use strict";var path7=__require("path"),which=require_which(),getPathKey=require_path_key();function resolveCommandAttempt(parsed,withoutPathExt){let env2=parsed.options.env||process.env,cwd=process.cwd(),hasCustomCwd=parsed.options.cwd!=null,shouldSwitchCwd=hasCustomCwd&&process.chdir!==void 0&&!process.chdir.disabled;if(shouldSwitchCwd)try{process.chdir(parsed.options.cwd)}catch{}let resolved;try{resolved=which.sync(parsed.command,{path:env2[getPathKey({env:env2})],pathExt:withoutPathExt?path7.delimiter:void 0})}catch{}finally{shouldSwitchCwd&&process.chdir(cwd)}return resolved&&(resolved=path7.resolve(hasCustomCwd?parsed.options.cwd:"",resolved)),resolved}function resolveCommand(parsed){return resolveCommandAttempt(parsed)||resolveCommandAttempt(parsed,!0)}module.exports=resolveCommand}});var require_escape=__commonJS({"node_modules/cross-spawn/lib/util/escape.js"(exports,module){"use strict";var metaCharsRegExp=/([()\][%!^"`<>&|;, *?])/g;function escapeCommand(arg){return arg=arg.replace(metaCharsRegExp,"^$1"),arg}function escapeArgument(arg,doubleEscapeMetaChars){return arg=`${arg}`,arg=arg.replace(/(?=(\\+?)?)\1"/g,'$1$1\\"'),arg=arg.replace(/(?=(\\+?)?)\1$/,"$1$1"),arg=`"${arg}"`,arg=arg.replace(metaCharsRegExp,"^$1"),doubleEscapeMetaChars&&(arg=arg.replace(metaCharsRegExp,"^$1")),arg}module.exports.command=escapeCommand;module.exports.argument=escapeArgument}});var require_shebang_regex=__commonJS({"node_modules/shebang-regex/index.js"(exports,module){"use strict";module.exports=/^#!(.*)/}});var require_shebang_command=__commonJS({"node_modules/shebang-command/index.js"(exports,module){"use strict";var shebangRegex=require_shebang_regex();module.exports=(string="")=>{let match=string.match(shebangRegex);if(!match)return null;let[path7,argument]=match[0].replace(/#! ?/,"").split(" "),binary=path7.split("/").pop();return binary==="env"?argument:argument?`${binary} ${argument}`:binary}}});var require_readShebang=__commonJS({"node_modules/cross-spawn/lib/util/readShebang.js"(exports,module){"use strict";var fs5=__require("fs"),shebangCommand=require_shebang_command();function readShebang(command){let buffer=Buffer.alloc(150),fd;try{fd=fs5.openSync(command,"r"),fs5.readSync(fd,buffer,0,150,0),fs5.closeSync(fd)}catch{}return shebangCommand(buffer.toString())}module.exports=readShebang}});var require_parse=__commonJS({"node_modules/cross-spawn/lib/parse.js"(exports,module){"use strict";var path7=__require("path"),resolveCommand=require_resolveCommand(),escape=require_escape(),readShebang=require_readShebang(),isWin=process.platform==="win32",isExecutableRegExp=/\.(?:com|exe)$/i,isCmdShimRegExp=/node_modules[\\/].bin[\\/][^\\/]+\.cmd$/i;function detectShebang(parsed){parsed.file=resolveCommand(parsed);let shebang=parsed.file&&readShebang(parsed.file);return shebang?(parsed.args.unshift(parsed.file),parsed.command=shebang,resolveCommand(parsed)):parsed.file}function parseNonShell(parsed){if(!isWin)return parsed;let commandFile=detectShebang(parsed),needsShell=!isExecutableRegExp.test(commandFile);if(parsed.options.forceShell||needsShell){let needsDoubleEscapeMetaChars=isCmdShimRegExp.test(commandFile);parsed.command=path7.normalize(parsed.command),parsed.command=escape.command(parsed.command),parsed.args=parsed.args.map(arg=>escape.argument(arg,needsDoubleEscapeMetaChars));let shellCommand=[parsed.command].concat(parsed.args).join(" ");parsed.args=["/d","/s","/c",`"${shellCommand}"`],parsed.command=process.env.comspec||"cmd.exe",parsed.options.windowsVerbatimArguments=!0}return parsed}function parse2(command,args,options){args&&!Array.isArray(args)&&(options=args,args=null),args=args?args.slice(0):[],options=Object.assign({},options);let parsed={command,args,options,file:void 0,original:{command,args}};return options.shell?parsed:parseNonShell(parsed)}module.exports=parse2}});var require_enoent=__commonJS({"node_modules/cross-spawn/lib/enoent.js"(exports,module){"use strict";var isWin=process.platform==="win32";function notFoundError(original,syscall){return Object.assign(new Error(`${syscall} ${original.command} ENOENT`),{code:"ENOENT",errno:"ENOENT",syscall:`${syscall} ${original.command}`,path:original.command,spawnargs:original.args})}function hookChildProcess(cp,parsed){if(!isWin)return;let originalEmit=cp.emit;cp.emit=function(name,arg1){if(name==="exit"){let err2=verifyENOENT(arg1,parsed);if(err2)return originalEmit.call(cp,"error",err2)}return originalEmit.apply(cp,arguments)}}function verifyENOENT(status2,parsed){return isWin&&status2===1&&!parsed.file?notFoundError(parsed.original,"spawn"):null}function verifyENOENTSync(status2,parsed){return isWin&&status2===1&&!parsed.file?notFoundError(parsed.original,"spawnSync"):null}module.exports={hookChildProcess,verifyENOENT,verifyENOENTSync,notFoundError}}});var require_cross_spawn=__commonJS({"node_modules/cross-spawn/index.js"(exports,module){"use strict";var cp=__require("child_process"),parse2=require_parse(),enoent=require_enoent();function spawn4(command,args,options){let parsed=parse2(command,args,options),spawned=cp.spawn(parsed.command,parsed.args,parsed.options);return enoent.hookChildProcess(spawned,parsed),spawned}function spawnSync3(command,args,options){let parsed=parse2(command,args,options),result=cp.spawnSync(parsed.command,parsed.args,parsed.options);return result.error=result.error||enoent.verifyENOENTSync(result.status,parsed),result}module.exports=spawn4;module.exports.spawn=spawn4;module.exports.sync=spawnSync3;module.exports._parse=parse2;module.exports._enoent=enoent}});var require_symbols=__commonJS({"packages/agent-forge/node_modules/undici/lib/core/symbols.js"(exports,module){"use strict";module.exports={kClose:Symbol("close"),kDestroy:Symbol("destroy"),kDispatch:Symbol("dispatch"),kUrl:Symbol("url"),kRequestOrigin:Symbol("request origin"),kOriginless:Symbol("originless"),kWriting:Symbol("writing"),kResuming:Symbol("resuming"),kQueue:Symbol("queue"),kConnect:Symbol("connect"),kConnecting:Symbol("connecting"),kKeepAliveDefaultTimeout:Symbol("default keep alive timeout"),kKeepAliveMaxTimeout:Symbol("max keep alive timeout"),kKeepAliveTimeoutThreshold:Symbol("keep alive timeout threshold"),kKeepAliveTimeoutValue:Symbol("keep alive timeout"),kKeepAlive:Symbol("keep alive"),kHeadersTimeout:Symbol("headers timeout"),kBodyTimeout:Symbol("body timeout"),kServerName:Symbol("server name"),kLocalAddress:Symbol("local address"),kHost:Symbol("host"),kNoRef:Symbol("no ref"),kBodyUsed:Symbol("used"),kBody:Symbol("abstracted request body"),kRunning:Symbol("running"),kBlocking:Symbol("blocking"),kPending:Symbol("pending"),kSize:Symbol("size"),kBusy:Symbol("busy"),kQueued:Symbol("queued"),kFree:Symbol("free"),kConnected:Symbol("connected"),kClosed:Symbol("closed"),kNeedDrain:Symbol("need drain"),kReset:Symbol("reset"),kDestroyed:Symbol.for("nodejs.stream.destroyed"),kResume:Symbol("resume"),kOnError:Symbol("on error"),kMaxHeadersSize:Symbol("max headers size"),kRunningIdx:Symbol("running index"),kPendingIdx:Symbol("pending index"),kError:Symbol("error"),kClients:Symbol("clients"),kClient:Symbol("client"),kParser:Symbol("parser"),kOnDestroyed:Symbol("destroy callbacks"),kPipelining:Symbol("pipelining"),kSocket:Symbol("socket"),kHostHeader:Symbol("host header"),kConnector:Symbol("connector"),kStrictContentLength:Symbol("strict content length"),kMaxRedirections:Symbol("maxRedirections"),kMaxRequests:Symbol("maxRequestsPerClient"),kProxy:Symbol("proxy agent options"),kCounter:Symbol("socket request counter"),kMaxResponseSize:Symbol("max response size"),kHTTP2Session:Symbol("http2Session"),kHTTP2Options:Symbol("http2 options"),kHTTP2SessionState:Symbol("http2Session state"),kRetryHandlerDefaultRetry:Symbol("retry agent default retry"),kConstruct:Symbol("constructable"),kListeners:Symbol("listeners"),kHTTPContext:Symbol("http context"),kMaxConcurrentStreams:Symbol("max concurrent streams"),kHostAuthority:Symbol("host authority"),kHTTP2InitialWindowSize:Symbol("http2 initial window size"),kHTTP2ConnectionWindowSize:Symbol("http2 connection window size"),kEnableConnectProtocol:Symbol("http2session connect protocol"),kRemoteSettings:Symbol("http2session remote settings"),kHTTP2Stream:Symbol("http2session client stream"),kPingInterval:Symbol("ping interval"),kNoProxyAgent:Symbol("no proxy agent"),kHttpProxyAgent:Symbol("http proxy agent"),kHttpsProxyAgent:Symbol("https proxy agent"),kSocks5ProxyAgent:Symbol("socks5 proxy agent")}}});var require_timers=__commonJS({"packages/agent-forge/node_modules/undici/lib/util/timers.js"(exports,module){"use strict";var fastNow=0,RESOLUTION_MS=1e3,TICK_MS=(RESOLUTION_MS>>1)-1,fastNowTimeout,kFastTimer=Symbol("kFastTimer"),fastTimers=[],NOT_IN_LIST=-2,TO_BE_CLEARED=-1,PENDING=0,ACTIVE=1;function onTick(){fastNow+=TICK_MS;let idx=0,len=fastTimers.length;for(;idx<len;){let timer=fastTimers[idx];timer._state===PENDING?(timer._idleStart=fastNow-TICK_MS,timer._state=ACTIVE):timer._state===ACTIVE&&fastNow>=timer._idleStart+timer._idleTimeout&&(timer._state=TO_BE_CLEARED,timer._idleStart=-1,timer._onTimeout(timer._timerArg)),timer._state===TO_BE_CLEARED?(timer._state=NOT_IN_LIST,--len!==0&&(fastTimers[idx]=fastTimers[len])):++idx}fastTimers.length=len,fastTimers.length!==0&&refreshTimeout()}function refreshTimeout(){fastNowTimeout?.refresh?fastNowTimeout.refresh():(clearTimeout(fastNowTimeout),fastNowTimeout=setTimeout(onTick,TICK_MS),fastNowTimeout?.unref())}var FastTimer=class{[kFastTimer]=!0;_state=NOT_IN_LIST;_idleTimeout=-1;_idleStart=-1;_onTimeout;_timerArg;constructor(callback,delay,arg){this._onTimeout=callback,this._idleTimeout=delay,this._timerArg=arg,this.refresh()}refresh(){this._state===NOT_IN_LIST&&fastTimers.push(this),(!fastNowTimeout||fastTimers.length===1)&&refreshTimeout(),this._state=PENDING}clear(){this._state=TO_BE_CLEARED,this._idleStart=-1}};module.exports={setTimeout(callback,delay,arg){return delay<=RESOLUTION_MS?setTimeout(callback,delay,arg):new FastTimer(callback,delay,arg)},clearTimeout(timeout){timeout[kFastTimer]?timeout.clear():clearTimeout(timeout)},setFastTimeout(callback,delay,arg){return new FastTimer(callback,delay,arg)},clearFastTimeout(timeout){timeout.clear()},now(){return fastNow},tick(delay=0){fastNow+=delay-RESOLUTION_MS+1,onTick(),onTick()},reset(){fastNow=0,fastTimers.length=0,clearTimeout(fastNowTimeout),fastNowTimeout=null},kFastTimer}}});var require_errors=__commonJS({"packages/agent-forge/node_modules/undici/lib/core/errors.js"(exports,module){"use strict";var kUndiciError=Symbol.for("undici.error.UND_ERR"),UndiciError=class extends Error{constructor(message,options){super(message,options),this.name="UndiciError",this.code="UND_ERR"}static[Symbol.hasInstance](instance){return instance&&instance[kUndiciError]===!0}get[kUndiciError](){return!0}},kConnectTimeoutError=Symbol.for("undici.error.UND_ERR_CONNECT_TIMEOUT"),ConnectTimeoutError=class extends UndiciError{constructor(message){super(message),this.name="ConnectTimeoutError",this.message=message||"Connect Timeout Error",this.code="UND_ERR_CONNECT_TIMEOUT"}static[Symbol.hasInstance](instance){return instance&&instance[kConnectTimeoutError]===!0}get[kConnectTimeoutError](){return!0}},kHeadersTimeoutError=Symbol.for("undici.error.UND_ERR_HEADERS_TIMEOUT"),HeadersTimeoutError=class extends UndiciError{constructor(message){super(message),this.name="HeadersTimeoutError",this.message=message||"Headers Timeout Error",this.code="UND_ERR_HEADERS_TIMEOUT"}static[Symbol.hasInstance](instance){return instance&&instance[kHeadersTimeoutError]===!0}get[kHeadersTimeoutError](){return!0}},kHeadersOverflowError=Symbol.for("undici.error.UND_ERR_HEADERS_OVERFLOW"),HeadersOverflowError=class extends UndiciError{constructor(message){super(message),this.name="HeadersOverflowError",this.message=message||"Headers Overflow Error",this.code="UND_ERR_HEADERS_OVERFLOW"}static[Symbol.hasInstance](instance){return instance&&instance[kHeadersOverflowError]===!0}get[kHeadersOverflowError](){return!0}},kBodyTimeoutError=Symbol.for("undici.error.UND_ERR_BODY_TIMEOUT"),BodyTimeoutError=class extends UndiciError{constructor(message){super(message),this.name="BodyTimeoutError",this.message=message||"Body Timeout Error",this.code="UND_ERR_BODY_TIMEOUT"}static[Symbol.hasInstance](instance){return instance&&instance[kBodyTimeoutError]===!0}get[kBodyTimeoutError](){return!0}},kInvalidArgumentError=Symbol.for("undici.error.UND_ERR_INVALID_ARG"),InvalidArgumentError=class extends UndiciError{constructor(message){super(message),this.name="InvalidArgumentError",this.message=message||"Invalid Argument Error",this.code="UND_ERR_INVALID_ARG"}static[Symbol.hasInstance](instance){return instance&&instance[kInvalidArgumentError]===!0}get[kInvalidArgumentError](){return!0}},kInvalidReturnValueError=Symbol.for("undici.error.UND_ERR_INVALID_RETURN_VALUE"),InvalidReturnValueError=class extends UndiciError{constructor(message){super(message),this.name="InvalidReturnValueError",this.message=message||"Invalid Return Value Error",this.code="UND_ERR_INVALID_RETURN_VALUE"}static[Symbol.hasInstance](instance){return instance&&instance[kInvalidReturnValueError]===!0}get[kInvalidReturnValueError](){return!0}},kAbortError=Symbol.for("undici.error.UND_ERR_ABORT"),AbortError=class extends UndiciError{constructor(message){super(message),this.name="AbortError",this.message=message||"The operation was aborted",this.code="UND_ERR_ABORT"}static[Symbol.hasInstance](instance){return instance&&instance[kAbortError]===!0}get[kAbortError](){return!0}},kRequestAbortedError=Symbol.for("undici.error.UND_ERR_ABORTED"),RequestAbortedError=class extends AbortError{constructor(message){super(message),this.name="AbortError",this.message=message||"Request aborted",this.code="UND_ERR_ABORTED"}static[Symbol.hasInstance](instance){return instance&&instance[kRequestAbortedError]===!0}get[kRequestAbortedError](){return!0}},kInformationalError=Symbol.for("undici.error.UND_ERR_INFO"),InformationalError=class extends UndiciError{constructor(message,options){super(message,options),this.name="InformationalError",this.message=message||"Request information",this.code="UND_ERR_INFO"}static[Symbol.hasInstance](instance){return instance&&instance[kInformationalError]===!0}get[kInformationalError](){return!0}},kRequestContentLengthMismatchError=Symbol.for("undici.error.UND_ERR_REQ_CONTENT_LENGTH_MISMATCH"),RequestContentLengthMismatchError=class extends UndiciError{constructor(message){super(message),this.name="RequestContentLengthMismatchError",this.message=message||"Request body length does not match content-length header",this.code="UND_ERR_REQ_CONTENT_LENGTH_MISMATCH"}static[Symbol.hasInstance](instance){return instance&&instance[kRequestContentLengthMismatchError]===!0}get[kRequestContentLengthMismatchError](){return!0}},kResponseContentLengthMismatchError=Symbol.for("undici.error.UND_ERR_RES_CONTENT_LENGTH_MISMATCH"),ResponseContentLengthMismatchError=class extends UndiciError{constructor(message){super(message),this.name="ResponseContentLengthMismatchError",this.message=message||"Response body length does not match content-length header",this.code="UND_ERR_RES_CONTENT_LENGTH_MISMATCH"}static[Symbol.hasInstance](instance){return instance&&instance[kResponseContentLengthMismatchError]===!0}get[kResponseContentLengthMismatchError](){return!0}},kClientDestroyedError=Symbol.for("undici.error.UND_ERR_DESTROYED"),ClientDestroyedError=class extends UndiciError{constructor(message){super(message),this.name="ClientDestroyedError",this.message=message||"The client is destroyed",this.code="UND_ERR_DESTROYED"}static[Symbol.hasInstance](instance){return instance&&instance[kClientDestroyedError]===!0}get[kClientDestroyedError](){return!0}},kClientClosedError=Symbol.for("undici.error.UND_ERR_CLOSED"),ClientClosedError=class extends UndiciError{constructor(message){super(message),this.name="ClientClosedError",this.message=message||"The client is closed",this.code="UND_ERR_CLOSED"}static[Symbol.hasInstance](instance){return instance&&instance[kClientClosedError]===!0}get[kClientClosedError](){return!0}},kSocketError=Symbol.for("undici.error.UND_ERR_SOCKET"),SocketError=class extends UndiciError{constructor(message,socket){super(message),this.name="SocketError",this.message=message||"Socket error",this.code="UND_ERR_SOCKET",this.socket=socket}static[Symbol.hasInstance](instance){return instance&&instance[kSocketError]===!0}get[kSocketError](){return!0}},kNotSupportedError=Symbol.for("undici.error.UND_ERR_NOT_SUPPORTED"),NotSupportedError=class extends UndiciError{constructor(message){super(message),this.name="NotSupportedError",this.message=message||"Not supported error",this.code="UND_ERR_NOT_SUPPORTED"}static[Symbol.hasInstance](instance){return instance&&instance[kNotSupportedError]===!0}get[kNotSupportedError](){return!0}},kBalancedPoolMissingUpstreamError=Symbol.for("undici.error.UND_ERR_BPL_MISSING_UPSTREAM"),BalancedPoolMissingUpstreamError=class extends UndiciError{constructor(message){super(message),this.name="MissingUpstreamError",this.message=message||"No upstream has been added to the BalancedPool",this.code="UND_ERR_BPL_MISSING_UPSTREAM"}static[Symbol.hasInstance](instance){return instance&&instance[kBalancedPoolMissingUpstreamError]===!0}get[kBalancedPoolMissingUpstreamError](){return!0}},kHTTPParserError=Symbol.for("undici.error.UND_ERR_HTTP_PARSER"),HTTPParserError=class extends Error{constructor(message,code,data){super(message),this.name="HTTPParserError",this.code=code?`HPE_${code}`:void 0,this.data=data?data.toString():void 0}static[Symbol.hasInstance](instance){return instance&&instance[kHTTPParserError]===!0}get[kHTTPParserError](){return!0}},kResponseExceededMaxSizeError=Symbol.for("undici.error.UND_ERR_RES_EXCEEDED_MAX_SIZE"),ResponseExceededMaxSizeError=class extends UndiciError{constructor(message){super(message),this.name="ResponseExceededMaxSizeError",this.message=message||"Response content exceeded max size",this.code="UND_ERR_RES_EXCEEDED_MAX_SIZE"}static[Symbol.hasInstance](instance){return instance&&instance[kResponseExceededMaxSizeError]===!0}get[kResponseExceededMaxSizeError](){return!0}},kRequestRetryError=Symbol.for("undici.error.UND_ERR_REQ_RETRY"),RequestRetryError=class extends UndiciError{constructor(message,code,{headers,data}){super(message),this.name="RequestRetryError",this.message=message||"Request retry error",this.code="UND_ERR_REQ_RETRY",this.statusCode=code,this.data=data,this.headers=headers}static[Symbol.hasInstance](instance){return instance&&instance[kRequestRetryError]===!0}get[kRequestRetryError](){return!0}},kResponseError=Symbol.for("undici.error.UND_ERR_RESPONSE"),ResponseError=class extends UndiciError{constructor(message,code,{headers,body}){super(message),this.name="ResponseError",this.message=message||"Response error",this.code="UND_ERR_RESPONSE",this.statusCode=code,this.body=body,this.headers=headers}static[Symbol.hasInstance](instance){return instance&&instance[kResponseError]===!0}get[kResponseError](){return!0}},kSecureProxyConnectionError=Symbol.for("undici.error.UND_ERR_PRX_TLS"),SecureProxyConnectionError=class extends UndiciError{constructor(cause,message,options={}){super(message,{cause,...options}),this.name="SecureProxyConnectionError",this.message=message||"Secure Proxy Connection failed",this.code="UND_ERR_PRX_TLS",this.cause=cause}static[Symbol.hasInstance](instance){return instance&&instance[kSecureProxyConnectionError]===!0}get[kSecureProxyConnectionError](){return!0}},kProxyConnectionError=Symbol.for("undici.error.UND_ERR_PRX_CONN"),ProxyConnectionError=class extends UndiciError{constructor(cause,message,options={}){super(message,{cause,...options}),this.name="ProxyConnectionError",this.message=message||"Proxy Connection failed",this.code="UND_ERR_PRX_CONN",this.cause=cause}static[Symbol.hasInstance](instance){return instance&&instance[kProxyConnectionError]===!0}get[kProxyConnectionError](){return!0}},kMaxOriginsReachedError=Symbol.for("undici.error.UND_ERR_MAX_ORIGINS_REACHED"),MaxOriginsReachedError=class extends UndiciError{constructor(message){super(message),this.name="MaxOriginsReachedError",this.message=message||"Maximum allowed origins reached",this.code="UND_ERR_MAX_ORIGINS_REACHED"}static[Symbol.hasInstance](instance){return instance&&instance[kMaxOriginsReachedError]===!0}get[kMaxOriginsReachedError](){return!0}},Socks5ProxyError=class extends UndiciError{constructor(message,code){super(message),this.name="Socks5ProxyError",this.message=message||"SOCKS5 proxy error",this.code=code||"UND_ERR_SOCKS5"}},kMessageSizeExceededError=Symbol.for("undici.error.UND_ERR_WS_MESSAGE_SIZE_EXCEEDED"),MessageSizeExceededError=class extends UndiciError{constructor(message){super(message),this.name="MessageSizeExceededError",this.message=message||"Max decompressed message size exceeded",this.code="UND_ERR_WS_MESSAGE_SIZE_EXCEEDED"}static[Symbol.hasInstance](instance){return instance&&instance[kMessageSizeExceededError]===!0}get[kMessageSizeExceededError](){return!0}};module.exports={AbortError,HTTPParserError,UndiciError,HeadersTimeoutError,HeadersOverflowError,BodyTimeoutError,RequestContentLengthMismatchError,ConnectTimeoutError,InvalidArgumentError,InvalidReturnValueError,RequestAbortedError,ClientDestroyedError,ClientClosedError,InformationalError,SocketError,NotSupportedError,ResponseContentLengthMismatchError,BalancedPoolMissingUpstreamError,ResponseExceededMaxSizeError,RequestRetryError,ResponseError,SecureProxyConnectionError,ProxyConnectionError,MaxOriginsReachedError,Socks5ProxyError,MessageSizeExceededError}}});var require_constants=__commonJS({"packages/agent-forge/node_modules/undici/lib/core/constants.js"(exports,module){"use strict";var wellknownHeaderNames=["Accept","Accept-Encoding","Accept-Language","Accept-Ranges","Access-Control-Allow-Credentials","Access-Control-Allow-Headers","Access-Control-Allow-Methods","Access-Control-Allow-Origin","Access-Control-Expose-Headers","Access-Control-Max-Age","Access-Control-Request-Headers","Access-Control-Request-Method","Age","Allow","Alt-Svc","Alt-Used","Authorization","Cache-Control","Clear-Site-Data","Connection","Content-Disposition","Content-Encoding","Content-Language","Content-Length","Content-Location","Content-Range","Content-Security-Policy","Content-Security-Policy-Report-Only","Content-Type","Cookie","Cross-Origin-Embedder-Policy","Cross-Origin-Opener-Policy","Cross-Origin-Resource-Policy","Date","Device-Memory","Downlink","ECT","ETag","Expect","Expect-CT","Expires","Forwarded","From","Host","If-Match","If-Modified-Since","If-None-Match","If-Range","If-Unmodified-Since","Keep-Alive","Last-Modified","Link","Location","Max-Forwards","Origin","Permissions-Policy","Pragma","Proxy-Authenticate","Proxy-Authorization","RTT","Range","Referer","Referrer-Policy","Refresh","Retry-After","Sec-WebSocket-Accept","Sec-WebSocket-Extensions","Sec-WebSocket-Key","Sec-WebSocket-Protocol","Sec-WebSocket-Version","Server","Server-Timing","Service-Worker-Allowed","Service-Worker-Navigation-Preload","Set-Cookie","SourceMap","Strict-Transport-Security","Supports-Loading-Mode","TE","Timing-Allow-Origin","Trailer","Transfer-Encoding","Upgrade","Upgrade-Insecure-Requests","User-Agent","Vary","Via","WWW-Authenticate","X-Content-Type-Options","X-DNS-Prefetch-Control","X-Frame-Options","X-Permitted-Cross-Domain-Policies","X-Powered-By","X-Requested-With","X-XSS-Protection"],headerNameLowerCasedRecord={};Object.setPrototypeOf(headerNameLowerCasedRecord,null);for(let i=0;i<wellknownHeaderNames.length;++i){let key=wellknownHeaderNames[i],lowerCasedKey=key.toLowerCase();headerNameLowerCasedRecord[key]=headerNameLowerCasedRecord[lowerCasedKey]=lowerCasedKey}module.exports={wellknownHeaderNames,headerNameLowerCasedRecord}}});var require_tree=__commonJS({"packages/agent-forge/node_modules/undici/lib/core/tree.js"(exports,module){"use strict";var{wellknownHeaderNames,headerNameLowerCasedRecord}=require_constants(),TstNode=class _TstNode{value=null;left=null;middle=null;right=null;code;constructor(key,value,index3){if(index3===void 0||index3>=key.length)throw new TypeError("Unreachable");if((this.code=key.charCodeAt(index3))>127)throw new TypeError("key must be ascii string");key.length!==++index3?this.middle=new _TstNode(key,value,index3):this.value=value}add(key,value){let length=key.length;if(length===0)throw new TypeError("Unreachable");let index3=0,node=this;for(;;){let code=key.charCodeAt(index3);if(code>127)throw new TypeError("key must be ascii string");if(node.code===code)if(length===++index3){node.value=value;break}else if(node.middle!==null)node=node.middle;else{node.middle=new _TstNode(key,value,index3);break}else if(node.code<code)if(node.left!==null)node=node.left;else{node.left=new _TstNode(key,value,index3);break}else if(node.right!==null)node=node.right;else{node.right=new _TstNode(key,value,index3);break}}}search(key){let keylength=key.length,index3=0,node=this;for(;node!==null&&index3<keylength;){let code=key[index3];for(code<=90&&code>=65&&(code|=32);node!==null;){if(code===node.code){if(keylength===++index3)return node;node=node.middle;break}node=node.code<code?node.left:node.right}}return null}},TernarySearchTree=class{node=null;insert(key,value){this.node===null?this.node=new TstNode(key,value,0):this.node.add(key,value)}lookup(key){return this.node?.search(key)?.value??null}},tree=new TernarySearchTree;for(let i=0;i<wellknownHeaderNames.length;++i){let key=headerNameLowerCasedRecord[wellknownHeaderNames[i]];tree.insert(key,key)}module.exports={TernarySearchTree,tree}}});var require_util=__commonJS({"packages/agent-forge/node_modules/undici/lib/core/util.js"(exports,module){"use strict";var assert=__require("node:assert"),{kDestroyed,kBodyUsed,kListeners,kBody}=require_symbols(),{IncomingMessage}=__require("node:http"),stream2=__require("node:stream"),net=__require("node:net"),{stringify}=__require("node:querystring"),{EventEmitter:EE,addAbortListener:addAbortListenerNative}=__require("node:events"),timers=require_timers(),{InvalidArgumentError,ConnectTimeoutError}=require_errors(),{headerNameLowerCasedRecord}=require_constants(),{tree}=require_tree(),BodyAsyncIterable=class{constructor(body){this[kBody]=body,this[kBodyUsed]=!1}async*[Symbol.asyncIterator](){assert(!this[kBodyUsed],"disturbed"),this[kBodyUsed]=!0,yield*this[kBody]}};function noop(){}function wrapRequestBody(body){return isStream(body)?(bodyLength(body)===0&&body.on("data",function(){assert(!1)}),typeof body.readableDidRead!="boolean"&&(body[kBodyUsed]=!1,EE.prototype.on.call(body,"data",function(){this[kBodyUsed]=!0})),body):body&&typeof body.pipeTo=="function"?new BodyAsyncIterable(body):body&&isFormDataLike(body)?body:body&&typeof body!="string"&&!ArrayBuffer.isView(body)&&isIterable(body)?new BodyAsyncIterable(body):body}function isStream(obj){return obj&&typeof obj=="object"&&typeof obj.pipe=="function"&&typeof obj.on=="function"}function isBlobLike(object){return object instanceof Blob}function pathHasQueryOrFragment(url){return url.includes("?")||url.includes("#")}function serializePathWithQuery(url,queryParams){if(pathHasQueryOrFragment(url))throw new Error('Query params cannot be passed when url already contains "?" or "#".');let stringified=stringify(queryParams);return stringified&&(url+="?"+stringified),url}function isValidPort(port){let value=parseInt(port,10);return value===Number(port)&&value>=0&&value<=65535}function isHttpOrHttpsPrefixed(value){return value!=null&&value[0]==="h"&&value[1]==="t"&&value[2]==="t"&&value[3]==="p"&&(value[4]===":"||value[4]==="s"&&value[5]===":")}function parseURL(url){if(typeof url=="string"){if(url=new URL(url),!isHttpOrHttpsPrefixed(url.origin||url.protocol))throw new InvalidArgumentError("Invalid URL protocol: the URL must start with `http:` or `https:`.");return url}if(!url||typeof url!="object")throw new InvalidArgumentError("Invalid URL: The URL argument must be a non-null object.");if(!(url instanceof URL)){if(url.port!=null&&url.port!==""&&isValidPort(url.port)===!1)throw new InvalidArgumentError("Invalid URL: port must be a valid integer or a string representation of an integer.");if(url.path!=null&&typeof url.path!="string")throw new InvalidArgumentError("Invalid URL path: the path must be a string or null/undefined.");if(url.pathname!=null&&typeof url.pathname!="string")throw new InvalidArgumentError("Invalid URL pathname: the pathname must be a string or null/undefined.");if(url.hostname!=null&&typeof url.hostname!="string")throw new InvalidArgumentError("Invalid URL hostname: the hostname must be a string or null/undefined.");if(url.origin!=null&&typeof url.origin!="string")throw new InvalidArgumentError("Invalid URL origin: the origin must be a string or null/undefined.");if(!isHttpOrHttpsPrefixed(url.origin||url.protocol))throw new InvalidArgumentError("Invalid URL protocol: the URL must start with `http:` or `https:`.");let port=url.port!=null?url.port:url.protocol==="https:"?443:80,origin=url.origin!=null?url.origin:`${url.protocol||""}//${url.hostname||""}:${port}`,path7=url.path!=null?url.path:`${url.pathname||""}${url.search||""}`;return origin[origin.length-1]==="/"&&(origin=origin.slice(0,origin.length-1)),path7&&path7[0]!=="/"&&(path7=`/${path7}`),new URL(`${origin}${path7}`)}if(!isHttpOrHttpsPrefixed(url.origin||url.protocol))throw new InvalidArgumentError("Invalid URL protocol: the URL must start with `http:` or `https:`.");return url}function parseOrigin(url){if(url=parseURL(url),url.pathname!=="/"||url.search||url.hash)throw new InvalidArgumentError("invalid url");return url}function getHostname(host){if(host[0]==="["){let idx2=host.indexOf("]");return assert(idx2!==-1),host.substring(1,idx2)}let idx=host.indexOf(":");return idx===-1?host:host.substring(0,idx)}function getServerName(host){if(!host)return null;assert(typeof host=="string");let servername=getHostname(host);return net.isIP(servername)?"":servername}function deepClone(obj){return JSON.parse(JSON.stringify(obj))}function isAsyncIterable(obj){return obj!=null&&typeof obj[Symbol.asyncIterator]=="function"}function isIterable(obj){return obj!=null&&(typeof obj[Symbol.iterator]=="function"||typeof obj[Symbol.asyncIterator]=="function")}function hasSafeIterator(obj){let prototype=Object.getPrototypeOf(obj);return Object.hasOwn(obj,Symbol.iterator)||prototype!=null&&prototype!==Object.prototype&&typeof obj[Symbol.iterator]=="function"}function bodyLength(body){if(body==null)return 0;if(isStream(body)){let state2=body._readableState;return state2&&state2.objectMode===!1&&state2.ended===!0&&Number.isFinite(state2.length)?state2.length:null}else{if(isBlobLike(body))return body.size!=null?body.size:null;if(isBuffer(body))return body.byteLength}return null}function isDestroyed(body){return body&&!!(body.destroyed||body[kDestroyed]||stream2.isDestroyed?.(body))}function destroy(stream3,err2){if(!(stream3==null||!isStream(stream3)||isDestroyed(stream3))){if(typeof stream3.destroy=="function"){Object.getPrototypeOf(stream3).constructor===IncomingMessage&&(stream3.socket=null);try{stream3.destroy(err2)}catch{}}else err2&&queueMicrotask(()=>{stream3.emit("error",err2)});stream3.destroyed!==!0&&(stream3[kDestroyed]=!0)}}var KEEPALIVE_TIMEOUT_EXPR=/timeout=(\d+)/;function parseKeepAliveTimeout(val){let m2=val.match(KEEPALIVE_TIMEOUT_EXPR);return m2?parseInt(m2[1],10)*1e3:null}function headerNameToString(value){return typeof value=="string"?headerNameLowerCasedRecord[value]??value.toLowerCase():tree.lookup(value)??value.toString("latin1").toLowerCase()}function bufferToLowerCasedHeaderName(value){return tree.lookup(value)??value.toString("latin1").toLowerCase()}function parseHeaders(headers,obj){obj===void 0&&(obj={});for(let i=0;i<headers.length;i+=2){let key=headerNameToString(headers[i]),val=obj[key];if(val!==void 0)if(Object.hasOwn(obj,key))typeof val=="string"&&(val=[val],obj[key]=val),val.push(headers[i+1].toString("latin1"));else{let headersValue=typeof headers[i+1]=="string"?headers[i+1]:Array.isArray(headers[i+1])?headers[i+1].map(x2=>x2.toString("latin1")):headers[i+1].toString("latin1");key==="__proto__"?Object.defineProperty(obj,key,{value:headersValue,enumerable:!0,configurable:!0,writable:!0}):obj[key]=headersValue}else{let headersValue=typeof headers[i+1]=="string"?headers[i+1]:Array.isArray(headers[i+1])?headers[i+1].map(x2=>x2.toString("latin1")):headers[i+1].toString("latin1");obj[key]=headersValue}}return obj}function parseRawHeaders(headers){if(headers==null)return[];if(!Array.isArray(headers)){let rawHeaders=[];for(let[name,value]of Object.entries(headers))if(Array.isArray(value))for(let entry of value)rawHeaders.push(name,`${entry}`);else rawHeaders.push(name,`${value}`);return rawHeaders}let headersLength=headers.length,ret=new Array(headersLength),key,val;for(let n=0;n<headersLength;n+=2)key=headers[n],val=headers[n+1],typeof key!="string"&&(key=key.toString()),typeof val!="string"&&(val=val.toString("latin1")),ret[n]=key,ret[n+1]=val;return ret}function toRawHeaders(headers){let rawHeaders=[];for(let[name,value]of Object.entries(headers))if(Array.isArray(value))for(let entry of value)rawHeaders.push(Buffer.from(name,"latin1"),Buffer.from(`${entry}`,"latin1"));else rawHeaders.push(Buffer.from(name,"latin1"),Buffer.from(`${value}`,"latin1"));return rawHeaders}function encodeRawHeaders(headers){if(!Array.isArray(headers))throw new TypeError("expected headers to be an array");return headers.map(x2=>Buffer.from(x2))}function isBuffer(buffer){return buffer instanceof Uint8Array||Buffer.isBuffer(buffer)}function assertRequestHandler(handler,method,upgrade){if(!handler||typeof handler!="object")throw new InvalidArgumentError("handler must be an object");if(typeof handler.onRequestStart!="function")throw new InvalidArgumentError("invalid onRequestStart method");if(typeof handler.onResponseError!="function")throw new InvalidArgumentError("invalid onResponseError method");if(typeof handler.onBodySent!="function"&&handler.onBodySent!==void 0)throw new InvalidArgumentError("invalid onBodySent method");if(typeof handler.onRequestSent!="function"&&handler.onRequestSent!==void 0)throw new InvalidArgumentError("invalid onRequestSent method");if(upgrade||method==="CONNECT"){if(typeof handler.onRequestUpgrade!="function")throw new InvalidArgumentError("invalid onRequestUpgrade method")}else{if(typeof handler.onResponseStart!="function")throw new InvalidArgumentError("invalid onResponseStart method");if(typeof handler.onResponseData!="function")throw new InvalidArgumentError("invalid onResponseData method");if(typeof handler.onResponseEnd!="function")throw new InvalidArgumentError("invalid onResponseEnd method")}}function isDisturbed(body){return!!(body&&(stream2.isDisturbed(body)||body[kBodyUsed]))}function getSocketInfo(socket){return{localAddress:socket.localAddress,localPort:socket.localPort,remoteAddress:socket.remoteAddress,remotePort:socket.remotePort,remoteFamily:socket.remoteFamily,timeout:socket.timeout,bytesWritten:socket.bytesWritten,bytesRead:socket.bytesRead}}function ReadableStreamFrom(iterable){let iterator;return new ReadableStream({start(){iterator=iterable[Symbol.asyncIterator]()},pull(controller){return iterator.next().then(({done,value})=>{if(done)return queueMicrotask(()=>{controller.close(),controller.byobRequest?.respond(0)});{let buf=Buffer.isBuffer(value)?value:Buffer.from(value);return buf.byteLength?controller.enqueue(new Uint8Array(buf)):this.pull(controller)}})},cancel(){return iterator.return()},type:"bytes"})}function isFormDataLike(object){return object&&typeof object=="object"&&typeof object.append=="function"&&typeof object.delete=="function"&&typeof object.get=="function"&&typeof object.getAll=="function"&&typeof object.has=="function"&&typeof object.set=="function"&&object[Symbol.toStringTag]==="FormData"}function addAbortListener(signal,listener){return!signal||"aborted"in signal?addAbortListenerNative(signal,listener)[Symbol.dispose]:typeof signal.addEventListener=="function"?(signal.addEventListener("abort",listener,{once:!0}),()=>signal.removeEventListener("abort",listener)):(signal.once("abort",listener),()=>signal.removeListener("abort",listener))}var validTokenChars=new Uint8Array([0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,1,1,1,1,0,0,1,1,0,1,1,0,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]);function isTokenCharCode(c2){return validTokenChars[c2]===1}var tokenRegExp=/^[\^_`a-zA-Z\-0-9!#$%&'*+.|~]+$/;function isValidHTTPToken(characters){if(characters.length>=12)return tokenRegExp.test(characters);if(characters.length===0)return!1;for(let i=0;i<characters.length;i++)if(validTokenChars[characters.charCodeAt(i)]!==1)return!1;return!0}var headerCharRegex=/[^\t\x20-\x7e\x80-\xff]/;function isValidHeaderValue(characters){return!headerCharRegex.test(characters)}var rangeHeaderRegex=/^bytes (\d+)-(\d+)\/(\d+|\*)?$/;function parseRangeHeader(range){if(range==null||range==="")return{start:0,end:null,size:null};if(!range)return null;let m2=rangeHeaderRegex.exec(range);return m2?{start:parseInt(m2[1]),end:m2[2]?parseInt(m2[2]):null,size:m2[3]&&m2[3]!=="*"?parseInt(m2[3]):null}:null}function addListener(obj,name,listener){return(obj[kListeners]??=[]).push([name,listener]),obj.on(name,listener),obj}function removeAllListeners(obj){if(obj[kListeners]!=null){for(let[name,listener]of obj[kListeners])obj.removeListener(name,listener);obj[kListeners]=null}return obj}function errorRequest(client,request,err2){try{request.onResponseError(err2),assert(request.aborted)}catch(err3){client.emit("error",err3)}}var setupConnectTimeout=process.platform==="win32"?(socketWeakRef,opts)=>{if(!opts.timeout)return noop;let s1=null,s2=null,fastTimer=timers.setFastTimeout(()=>{s1=setImmediate(()=>{s2=setImmediate(()=>onConnectTimeout(socketWeakRef.deref(),opts))})},opts.timeout);return()=>{timers.clearFastTimeout(fastTimer),clearImmediate(s1),clearImmediate(s2)}}:(socketWeakRef,opts)=>{if(!opts.timeout)return noop;let s1=null,fastTimer=timers.setFastTimeout(()=>{s1=setImmediate(()=>{onConnectTimeout(socketWeakRef.deref(),opts)})},opts.timeout);return()=>{timers.clearFastTimeout(fastTimer),clearImmediate(s1)}};function onConnectTimeout(socket,opts){if(socket==null)return;let message="Connect Timeout Error";Array.isArray(socket.autoSelectFamilyAttemptedAddresses)?message+=` (attempted addresses: ${socket.autoSelectFamilyAttemptedAddresses.join(", ")},`:message+=` (attempted address: ${opts.hostname}:${opts.port},`,message+=` timeout: ${opts.timeout}ms)`,destroy(socket,new ConnectTimeoutError(message))}var lastUrlString=null,lastProtocol=null;function getProtocolFromUrlString(urlString){if(urlString===lastUrlString)return lastProtocol;let protocol=getProtocolFromUrlStringSlow(urlString);return lastUrlString=urlString,lastProtocol=protocol,protocol}function getProtocolFromUrlStringSlow(urlString){if(urlString[0]==="h"&&urlString[1]==="t"&&urlString[2]==="t"&&urlString[3]==="p")switch(urlString[4]){case":":return"http:";case"s":if(urlString[5]===":")return"https:"}return urlString.slice(0,urlString.indexOf(":")+1)}var kEnumerableProperty={__proto__:null,enumerable:!0},normalizedMethodRecordsBase={delete:"DELETE",DELETE:"DELETE",get:"GET",GET:"GET",head:"HEAD",HEAD:"HEAD",options:"OPTIONS",OPTIONS:"OPTIONS",post:"POST",POST:"POST",put:"PUT",PUT:"PUT",query:"QUERY",QUERY:"QUERY"},normalizedMethodRecords={...normalizedMethodRecordsBase,patch:"patch",PATCH:"PATCH"};Object.setPrototypeOf(normalizedMethodRecordsBase,null);Object.setPrototypeOf(normalizedMethodRecords,null);module.exports={kEnumerableProperty,isDisturbed,isBlobLike,parseOrigin,parseURL,getServerName,isStream,isIterable,hasSafeIterator,isAsyncIterable,isDestroyed,headerNameToString,bufferToLowerCasedHeaderName,addListener,removeAllListeners,errorRequest,parseRawHeaders,toRawHeaders,encodeRawHeaders,parseHeaders,parseKeepAliveTimeout,destroy,bodyLength,deepClone,ReadableStreamFrom,isBuffer,assertRequestHandler,getSocketInfo,isFormDataLike,pathHasQueryOrFragment,serializePathWithQuery,addAbortListener,isValidHTTPToken,isValidHeaderValue,isTokenCharCode,parseRangeHeader,normalizedMethodRecordsBase,normalizedMethodRecords,isValidPort,isHttpOrHttpsPrefixed,safeHTTPMethods:Object.freeze(["GET","HEAD","OPTIONS","TRACE"]),wrapRequestBody,setupConnectTimeout,getProtocolFromUrlString}}});var require_stats=__commonJS({"packages/agent-forge/node_modules/undici/lib/util/stats.js"(exports,module){"use strict";var{kConnected,kPending,kRunning,kSize,kFree,kQueued}=require_symbols(),ClientStats=class{constructor(client){this.connected=client[kConnected],this.pending=client[kPending],this.running=client[kRunning],this.size=client[kSize]}},PoolStats=class{constructor(pool){this.connected=pool[kConnected],this.free=pool[kFree],this.pending=pool[kPending],this.queued=pool[kQueued],this.running=pool[kRunning],this.size=pool[kSize]}};module.exports={ClientStats,PoolStats}}});var require_diagnostics=__commonJS({"packages/agent-forge/node_modules/undici/lib/core/diagnostics.js"(exports,module){"use strict";var diagnosticsChannel=__require("node:diagnostics_channel"),util=__require("node:util"),undiciDebugLog=util.debuglog("undici"),fetchDebuglog=util.debuglog("fetch"),websocketDebuglog=util.debuglog("websocket"),channels={beforeConnect:diagnosticsChannel.channel("undici:client:beforeConnect"),connected:diagnosticsChannel.channel("undici:client:connected"),connectError:diagnosticsChannel.channel("undici:client:connectError"),sendHeaders:diagnosticsChannel.channel("undici:client:sendHeaders"),create:diagnosticsChannel.channel("undici:request:create"),bodySent:diagnosticsChannel.channel("undici:request:bodySent"),bodyChunkSent:diagnosticsChannel.channel("undici:request:bodyChunkSent"),bodyChunkReceived:diagnosticsChannel.channel("undici:request:bodyChunkReceived"),headers:diagnosticsChannel.channel("undici:request:headers"),trailers:diagnosticsChannel.channel("undici:request:trailers"),error:diagnosticsChannel.channel("undici:request:error"),open:diagnosticsChannel.channel("undici:websocket:open"),close:diagnosticsChannel.channel("undici:websocket:close"),socketError:diagnosticsChannel.channel("undici:websocket:socket_error"),ping:diagnosticsChannel.channel("undici:websocket:ping"),pong:diagnosticsChannel.channel("undici:websocket:pong"),proxyConnected:diagnosticsChannel.channel("undici:proxy:connected")},isTrackingClientEvents=!1;function trackClientEvents(debugLog=undiciDebugLog){if(!isTrackingClientEvents){if(channels.beforeConnect.hasSubscribers||channels.connected.hasSubscribers||channels.connectError.hasSubscribers||channels.sendHeaders.hasSubscribers){isTrackingClientEvents=!0;return}isTrackingClientEvents=!0,diagnosticsChannel.subscribe("undici:client:beforeConnect",evt=>{let{connectParams:{version,protocol,port,host}}=evt;debugLog("connecting to %s%s using %s%s",host,port?`:${port}`:"",protocol,version)}),diagnosticsChannel.subscribe("undici:client:connected",evt=>{let{connectParams:{version,protocol,port,host}}=evt;debugLog("connected to %s%s using %s%s",host,port?`:${port}`:"",protocol,version)}),diagnosticsChannel.subscribe("undici:client:connectError",evt=>{let{connectParams:{version,protocol,port,host},error:error2}=evt;debugLog("connection to %s%s using %s%s errored - %s",host,port?`:${port}`:"",protocol,version,error2.message)}),diagnosticsChannel.subscribe("undici:client:sendHeaders",evt=>{let{request:{method,path:path7,origin}}=evt;debugLog("sending request to %s %s%s",method,origin,path7)})}}var isTrackingRequestEvents=!1;function trackRequestEvents(debugLog=undiciDebugLog){if(!isTrackingRequestEvents){if(channels.headers.hasSubscribers||channels.trailers.hasSubscribers||channels.error.hasSubscribers){isTrackingRequestEvents=!0;return}isTrackingRequestEvents=!0,diagnosticsChannel.subscribe("undici:request:headers",evt=>{let{request:{method,path:path7,origin},response:{statusCode}}=evt;debugLog("received response to %s %s%s - HTTP %d",method,origin,path7,statusCode)}),diagnosticsChannel.subscribe("undici:request:trailers",evt=>{let{request:{method,path:path7,origin}}=evt;debugLog("trailers received from %s %s%s",method,origin,path7)}),diagnosticsChannel.subscribe("undici:request:error",evt=>{let{request:{method,path:path7,origin},error:error2}=evt;debugLog("request to %s %s%s errored - %s",method,origin,path7,error2.message)})}}var isTrackingWebSocketEvents=!1;function trackWebSocketEvents(debugLog=websocketDebuglog){if(!isTrackingWebSocketEvents){if(channels.open.hasSubscribers||channels.close.hasSubscribers||channels.socketError.hasSubscribers||channels.ping.hasSubscribers||channels.pong.hasSubscribers){isTrackingWebSocketEvents=!0;return}isTrackingWebSocketEvents=!0,diagnosticsChannel.subscribe("undici:websocket:open",evt=>{if(evt.address!=null){let{address,port}=evt.address;debugLog("connection opened %s%s",address,port?`:${port}`:"")}else debugLog("connection opened")}),diagnosticsChannel.subscribe("undici:websocket:close",evt=>{let{websocket,code,reason}=evt;debugLog("closed connection to %s - %s %s",websocket.url,code,reason)}),diagnosticsChannel.subscribe("undici:websocket:socket_error",err2=>{debugLog("connection errored - %s",err2.message)}),diagnosticsChannel.subscribe("undici:websocket:ping",evt=>{debugLog("ping received")}),diagnosticsChannel.subscribe("undici:websocket:pong",evt=>{debugLog("pong received")})}}(undiciDebugLog.enabled||fetchDebuglog.enabled)&&(trackClientEvents(fetchDebuglog.enabled?fetchDebuglog:undiciDebugLog),trackRequestEvents(fetchDebuglog.enabled?fetchDebuglog:undiciDebugLog));websocketDebuglog.enabled&&(trackClientEvents(undiciDebugLog.enabled?undiciDebugLog:websocketDebuglog),trackWebSocketEvents(websocketDebuglog));module.exports={channels}}});var require_request=__commonJS({"packages/agent-forge/node_modules/undici/lib/core/request.js"(exports,module){"use strict";var{InvalidArgumentError,NotSupportedError}=require_errors(),assert=__require("node:assert"),{isValidHTTPToken,isValidHeaderValue,isStream,destroy,isBuffer,isFormDataLike,isIterable,hasSafeIterator,isBlobLike,serializePathWithQuery,parseHeaders,assertRequestHandler,getServerName,normalizedMethodRecords,getProtocolFromUrlString}=require_util(),{channels}=require_diagnostics(),{headerNameLowerCasedRecord}=require_constants(),invalidPathRegex=/[^\u0021-\u00ff]/;function isValidContentLengthHeaderValue(val){if(typeof val!="string"||val.length===0)return!1;for(let i=0;i<val.length;i++){let charCode=val.charCodeAt(i);if(charCode<48||charCode>57)return!1}return!0}var kHandler=Symbol("handler"),kController=Symbol("controller"),kResume=Symbol("resume"),RequestController=class{#paused=!1;#reason=null;#aborted=!1;#abort;[kResume]=null;rawHeaders=null;rawTrailers=null;constructor(abort){this.#abort=abort}pause(){this.#paused=!0}resume(){this.#paused&&(this.#paused=!1,this[kResume]?.())}abort(reason){this.#aborted||(this.#aborted=!0,this.#reason=reason,this.#abort(reason))}get aborted(){return this.#aborted}get reason(){return this.#reason}get paused(){return this.#paused}},Request=class{constructor(origin,{path:path7,method,body,headers,query,idempotent,blocking,upgrade,headersTimeout,bodyTimeout,reset,expectContinue,servername,throwOnError,maxRedirections,typeOfService},handler){if(typeof path7!="string")throw new InvalidArgumentError("path must be a string");if(path7[0]!=="/"&&!(path7.startsWith("http://")||path7.startsWith("https://"))&&method!=="CONNECT")throw new InvalidArgumentError("path must be an absolute URL or start with a slash");if(invalidPathRegex.test(path7))throw new InvalidArgumentError("invalid request path");if(typeof method!="string")throw new InvalidArgumentError("method must be a string");if(normalizedMethodRecords[method]===void 0&&!isValidHTTPToken(method))throw new InvalidArgumentError("invalid request method");if(upgrade&&typeof upgrade!="string")throw new InvalidArgumentError("upgrade must be a string");if(upgrade&&!isValidHeaderValue(upgrade))throw new InvalidArgumentError("invalid upgrade header");if(headersTimeout!=null&&(!Number.isFinite(headersTimeout)||headersTimeout<0))throw new InvalidArgumentError("invalid headersTimeout");if(bodyTimeout!=null&&(!Number.isFinite(bodyTimeout)||bodyTimeout<0))throw new InvalidArgumentError("invalid bodyTimeout");if(reset!=null&&typeof reset!="boolean")throw new InvalidArgumentError("invalid reset");if(expectContinue!=null&&typeof expectContinue!="boolean")throw new InvalidArgumentError("invalid expectContinue");if(throwOnError!=null)throw new InvalidArgumentError("invalid throwOnError");if(maxRedirections!=null&&maxRedirections!==0)throw new InvalidArgumentError("maxRedirections is not supported, use the redirect interceptor");if(typeOfService!=null&&(!Number.isInteger(typeOfService)||typeOfService<0||typeOfService>255))throw new InvalidArgumentError("typeOfService must be an integer between 0 and 255");if(this.headersTimeout=headersTimeout,this.bodyTimeout=bodyTimeout,this.method=method,this.typeOfService=typeOfService,this.abort=null,body==null)this.body=null;else if(isStream(body)){this.body=body;let rState=this.body._readableState;(!rState||!rState.autoDestroy)&&(this.endHandler=function(){destroy(this)},this.body.on("end",this.endHandler)),this.errorHandler=err2=>{this.abort?this.abort(err2):this.error=err2},this.body.on("error",this.errorHandler)}else if(isBuffer(body))this.body=body.byteLength?body:null;else if(ArrayBuffer.isView(body))this.body=body.buffer.byteLength?Buffer.from(body.buffer,body.byteOffset,body.byteLength):null;else if(body instanceof ArrayBuffer)this.body=body.byteLength?Buffer.from(body):null;else if(typeof body=="string")this.body=body.length?Buffer.from(body):null;else if(isFormDataLike(body)||isIterable(body)||isBlobLike(body))this.body=body;else throw new InvalidArgumentError("body must be a string, a Buffer, a Readable stream, an iterable, or an async iterable");if(this.completed=!1,this.aborted=!1,this.upgrade=upgrade||null,this.path=query?serializePathWithQuery(path7,query):path7,this.origin=origin,this.protocol=getProtocolFromUrlString(origin),this.idempotent=idempotent??(method==="HEAD"||method==="GET"||method==="QUERY"),this.blocking=blocking??this.method!=="HEAD",this.reset=reset??null,this.host=null,this.contentLength=null,this.contentType=null,this.headers=[],this.expectContinue=expectContinue??!1,Array.isArray(headers)){if(headers.length%2!==0)throw new InvalidArgumentError("headers array must be even");for(let i=0;i<headers.length;i+=2)processHeader(this,headers[i],headers[i+1])}else if(headers&&typeof headers=="object")if(hasSafeIterator(headers))for(let header of headers){if(!Array.isArray(header)||header.length!==2)throw new InvalidArgumentError("headers must be in key-value pair format");processHeader(this,header[0],header[1])}else{let keys=Object.keys(headers);for(let i=0;i<keys.length;++i)processHeader(this,keys[i],headers[keys[i]])}else if(headers!=null)throw new InvalidArgumentError("headers must be an object or an array");assertRequestHandler(handler,method,upgrade),this.servername=servername||getServerName(this.host)||null,this[kHandler]=handler,channels.create.hasSubscribers&&channels.create.publish({request:this})}onBodySent(chunk){if(channels.bodyChunkSent.hasSubscribers&&channels.bodyChunkSent.publish({request:this,chunk}),this[kHandler].onBodySent)try{return this[kHandler].onBodySent(chunk)}catch(err2){this.abort(err2)}}onRequestSent(){if(channels.bodySent.hasSubscribers&&channels.bodySent.publish({request:this}),this[kHandler].onRequestSent)try{return this[kHandler].onRequestSent()}catch(err2){this.abort(err2)}}onRequestStart(abort,context){if(assert(!this.aborted),assert(!this.completed),this[kController]=new RequestController(abort),this.error){this[kController].abort(this.error);return}return this.abort=abort,this[kHandler].onRequestStart(this[kController],context)}onResponseStarted(){return this[kHandler].onResponseStarted?.()}onResponseStart(statusCode,headers,resume,statusText){assert(!this.aborted),assert(!this.completed),channels.headers.hasSubscribers&&channels.headers.publish({request:this,response:{statusCode,headers,statusText}});let controller=this[kController];controller&&(controller[kResume]=resume,controller.rawHeaders=headers);let parsedHeaders=Array.isArray(headers)?parseHeaders(headers):headers;try{return this[kHandler].onResponseStart?.(controller,statusCode,parsedHeaders,statusText),!controller?.paused}catch(err2){return this.abort(err2),!1}}onResponseData(chunk){assert(!this.aborted),assert(!this.completed),channels.bodyChunkReceived.hasSubscribers&&channels.bodyChunkReceived.publish({request:this,chunk});let controller=this[kController];try{return this[kHandler].onResponseData?.(controller,chunk),!controller?.paused}catch(err2){return this.abort(err2),!1}}onRequestUpgrade(statusCode,headers,socket){assert(!this.aborted),assert(!this.completed);let controller=this[kController];controller&&(controller.rawHeaders=headers);let parsedHeaders=Array.isArray(headers)?parseHeaders(headers):headers;return this[kHandler].onRequestUpgrade?.(controller,statusCode,parsedHeaders,socket)}onResponseEnd(trailers){this.onFinally(),assert(!this.aborted),assert(!this.completed),this.completed=!0,channels.trailers.hasSubscribers&&channels.trailers.publish({request:this,trailers});let controller=this[kController];controller&&(controller.rawTrailers=trailers);let parsedTrailers=Array.isArray(trailers)?parseHeaders(trailers):trailers;try{return this[kHandler].onResponseEnd?.(controller,parsedTrailers)}catch(err2){this.onResponseError(err2)}}onResponseError(error2){if(this.onFinally(),channels.error.hasSubscribers&&channels.error.publish({request:this,error:error2}),this.aborted)return;this.aborted=!0;let controller=this[kController];return this[kHandler].onResponseError?.(controller,error2)}onFinally(){this.errorHandler&&(this.body.off("error",this.errorHandler),this.errorHandler=null),this.endHandler&&(this.body.off("end",this.endHandler),this.endHandler=null)}addHeader(key,value){return processHeader(this,key,value),this}};function processHeader(request,key,val){if(val&&typeof val=="object"&&!Array.isArray(val))throw new InvalidArgumentError(`invalid ${key} header`);if(val===void 0)return;let headerName=headerNameLowerCasedRecord[key];if(headerName===void 0&&(headerName=key.toLowerCase(),headerNameLowerCasedRecord[headerName]===void 0&&!isValidHTTPToken(headerName)))throw new InvalidArgumentError("invalid header key");if(Array.isArray(val)){let arr=[];for(let i=0;i<val.length;i++)if(typeof val[i]=="string"){if(!isValidHeaderValue(val[i]))throw new InvalidArgumentError(`invalid ${key} header`);arr.push(val[i])}else if(val[i]===null)arr.push("");else{if(typeof val[i]=="object")throw new InvalidArgumentError(`invalid ${key} header`);{let str2=`${val[i]}`;if(!isValidHeaderValue(str2))throw new InvalidArgumentError(`invalid ${key} header`);arr.push(str2)}}val=arr}else if(typeof val=="string"){if(!isValidHeaderValue(val))throw new InvalidArgumentError(`invalid ${key} header`)}else if(val===null)val="";else if(val=`${val}`,!isValidHeaderValue(val))throw new InvalidArgumentError(`invalid ${key} header`);if(headerName==="host"){if(request.host!==null)throw new InvalidArgumentError("duplicate host header");if(typeof val!="string")throw new InvalidArgumentError("invalid host header");request.host=val}else if(headerName==="content-length"){if(request.contentLength!==null)throw new InvalidArgumentError("duplicate content-length header");if(!isValidContentLengthHeaderValue(val))throw new InvalidArgumentError("invalid content-length header");request.contentLength=parseInt(val,10)}else if(request.contentType===null&&headerName==="content-type")request.contentType=val,request.headers.push(key,val);else{if(headerName==="transfer-encoding"||headerName==="keep-alive"||headerName==="upgrade")throw new InvalidArgumentError(`invalid ${headerName} header`);if(headerName==="connection"){let value=typeof val=="string"?val:null;if(value===null)throw new InvalidArgumentError("invalid connection header");for(let token of value.toLowerCase().split(",")){let trimmed=token.trim();if(!isValidHTTPToken(trimmed))throw new InvalidArgumentError("invalid connection header");trimmed==="close"&&(request.reset=!0)}}else{if(headerName==="expect")throw new NotSupportedError("expect header not supported");request.headers.push(key,val)}}}module.exports=Request}});var require_dispatcher=__commonJS({"packages/agent-forge/node_modules/undici/lib/dispatcher/dispatcher.js"(exports,module){"use strict";var EventEmitter2=__require("node:events"),{kOriginless,kUrl}=require_symbols(),Dispatcher=class extends EventEmitter2{dispatch(){throw new Error("not implemented")}close(){throw new Error("not implemented")}destroy(){throw new Error("not implemented")}compose(...args){let interceptors=Array.isArray(args[0])?args[0]:args,interceptorOrigin=this[kOriginless]===!0?null:this[kUrl]?.origin,dispatch=this.dispatch.bind(this);for(let interceptor of interceptors)if(interceptor!=null){if(typeof interceptor!="function")throw new TypeError(`invalid interceptor, expected function received ${typeof interceptor}`);if(dispatch=interceptor(dispatch,interceptorOrigin),dispatch==null||typeof dispatch!="function"||dispatch.length!==2)throw new TypeError("invalid interceptor")}let originalDispatch=dispatch,self=this;return dispatch=function(opts,handler){return opts&&typeof opts=="object"&&!opts.origin&&self[kUrl]&&(opts=Object.assign({},opts,{origin:self[kUrl].origin})),originalDispatch(opts,handler)},new Proxy(this,{get:(target,key)=>key==="dispatch"?dispatch:target[key]})}};module.exports=Dispatcher}});var require_dispatcher_base=__commonJS({"packages/agent-forge/node_modules/undici/lib/dispatcher/dispatcher-base.js"(exports,module){"use strict";var buffer=__require("node:buffer"),Dispatcher=require_dispatcher(),{ClientDestroyedError,ClientClosedError,InvalidArgumentError}=require_errors(),{kDestroy,kClose,kClosed,kDestroyed,kDispatch}=require_symbols(),kOnDestroyed=Symbol("onDestroyed"),kOnClosed=Symbol("onClosed"),kWebSocketOptions=Symbol("webSocketOptions"),kEventSourceOptions=Symbol("eventSourceOptions"),DispatcherBase=class extends Dispatcher{[kDestroyed]=!1;[kOnDestroyed]=null;[kClosed]=!1;[kOnClosed]=null;constructor(opts){super(),this[kWebSocketOptions]=opts?.webSocket??{},this[kEventSourceOptions]=opts?.eventSource??{}}get webSocketOptions(){return{maxFragments:this[kWebSocketOptions].maxFragments??131072,maxPayloadSize:this[kWebSocketOptions].maxPayloadSize??128*1024*1024}}get eventSourceOptions(){return{maxEventSize:this[kEventSourceOptions].maxEventSize??buffer.kStringMaxLength}}get destroyed(){return this[kDestroyed]}get closed(){return this[kClosed]}close(callback){if(callback===void 0)return new Promise((resolve5,reject)=>{this.close((err2,data)=>err2?reject(err2):resolve5(data))});if(typeof callback!="function")throw new InvalidArgumentError("invalid callback");if(this[kDestroyed]){let err2=new ClientDestroyedError;queueMicrotask(()=>callback(err2,null));return}if(this[kClosed]){this[kOnClosed]?this[kOnClosed].push(callback):queueMicrotask(()=>callback(null,null));return}this[kClosed]=!0,this[kOnClosed]??=[],this[kOnClosed].push(callback);let onClosed=()=>{let callbacks=this[kOnClosed];this[kOnClosed]=null;for(let i=0;i<callbacks.length;i++)callbacks[i](null,null)};this[kClose]().then(()=>this.destroy()).then(()=>queueMicrotask(onClosed))}destroy(err2,callback){if(typeof err2=="function"&&(callback=err2,err2=null),callback===void 0)return new Promise((resolve5,reject)=>{this.destroy(err2,(err3,data)=>err3?reject(err3):resolve5(data))});if(typeof callback!="function")throw new InvalidArgumentError("invalid callback");if(this[kDestroyed]){this[kOnDestroyed]?this[kOnDestroyed].push(callback):queueMicrotask(()=>callback(null,null));return}err2||(err2=new ClientDestroyedError),this[kDestroyed]=!0,this[kOnDestroyed]??=[],this[kOnDestroyed].push(callback);let onDestroyed=()=>{let callbacks=this[kOnDestroyed];this[kOnDestroyed]=null;for(let i=0;i<callbacks.length;i++)callbacks[i](null,null)};this[kDestroy](err2).then(()=>queueMicrotask(onDestroyed))}dispatch(opts,handler){if(!handler||typeof handler!="object")throw new InvalidArgumentError("handler must be an object");try{if(!opts||typeof opts!="object")throw new InvalidArgumentError("opts must be an object.");if(opts.dispatcher)throw new InvalidArgumentError("opts.dispatcher is not supported by instance methods. Pass opts.dispatcher to the top-level undici functions or call the dispatcher instance method directly.");if(this[kDestroyed]||this[kOnDestroyed])throw new ClientDestroyedError;if(this[kClosed])throw new ClientClosedError;return this[kDispatch](opts,handler)}catch(err2){if(typeof handler.onResponseError!="function")throw err2;return handler.onResponseError(null,err2),!1}}};module.exports=DispatcherBase}});var require_connect=__commonJS({"packages/agent-forge/node_modules/undici/lib/core/connect.js"(exports,module){"use strict";var net=__require("node:net"),assert=__require("node:assert"),util=require_util(),{InvalidArgumentError,ConnectTimeoutError}=require_errors(),tls,SessionCache=class{constructor(maxCachedSessions){this._maxCachedSessions=maxCachedSessions,this._sessionCache=new Map,this._sessionRegistry=new FinalizationRegistry(key=>{if(this._sessionCache.size<this._maxCachedSessions)return;let ref=this._sessionCache.get(key);ref!==void 0&&ref.deref()===void 0&&this._sessionCache.delete(key)})}get(sessionKey){let ref=this._sessionCache.get(sessionKey);return ref?ref.deref():null}set(sessionKey,session){if(this._maxCachedSessions!==0){if(this._sessionCache.has(sessionKey))this._sessionCache.delete(sessionKey);else if(this._sessionCache.size>=this._maxCachedSessions){for(let[key,ref]of this._sessionCache)if(ref.deref()===void 0){this._sessionCache.delete(key);return}let oldest=this._sessionCache.keys().next();oldest.done||this._sessionCache.delete(oldest.value)}this._sessionCache.set(sessionKey,new WeakRef(session)),this._sessionRegistry.register(session,sessionKey)}}};function buildConnector({allowH2,preferH2,useH2c,maxCachedSessions,socketPath,timeout,session:customSession,...opts}){if(maxCachedSessions!=null&&(!Number.isInteger(maxCachedSessions)||maxCachedSessions<0))throw new InvalidArgumentError("maxCachedSessions must be a positive integer or zero");let options={path:socketPath,...opts},sessionCache=new SessionCache(maxCachedSessions??100);return timeout=timeout??1e4,allowH2=allowH2??!0,function({hostname:hostname2,host,protocol,port,servername,localAddress,httpSocket},callback){let socket;if(protocol==="https:"){tls||(tls=__require("node:tls")),servername=servername||options.servername||util.getServerName(host)||null;let sessionKey=servername||hostname2;assert(sessionKey);let session=customSession||sessionCache.get(sessionKey)||null;port=port||443,socket=tls.connect({highWaterMark:16384,...options,servername,session,localAddress,ALPNProtocols:allowH2?preferH2?["h2","http/1.1"]:["http/1.1","h2"]:["http/1.1"],socket:httpSocket,port,host:hostname2}),socket.on("session",function(session2){sessionCache.set(sessionKey,session2)})}else{assert(!httpSocket,"httpSocket can only be sent on TLS update"),port=port||80;let connectOptions={highWaterMark:64*1024,...options,localAddress,port,host:hostname2},family=net.isIP(hostname2);family!==0&&servername&&servername!==hostname2&&(connectOptions.host=servername,connectOptions.lookup=(_hostname,lookupOptions,cb)=>{lookupOptions.all?cb(null,[{address:hostname2,family}]):cb(null,hostname2,family)}),socket=net.connect(connectOptions),useH2c===!0&&(socket.alpnProtocol="h2")}if(options.keepAlive==null||options.keepAlive){let keepAliveInitialDelay=options.keepAliveInitialDelay===void 0?6e4:options.keepAliveInitialDelay;socket.setKeepAlive(!0,keepAliveInitialDelay)}let clearConnectTimeout=util.setupConnectTimeout(new WeakRef(socket),{timeout,hostname:hostname2,port});return socket.setNoDelay(!0).once(protocol==="https:"?"secureConnect":"connect",function(){if(queueMicrotask(clearConnectTimeout),callback){let cb=callback;callback=null,cb(null,this)}}).on("error",function(err2){if(queueMicrotask(clearConnectTimeout),callback){let cb=callback;callback=null,cb(maybeNormalizeConnectError(err2,this,{timeout,hostname:hostname2,port}))}}),socket}}function maybeNormalizeConnectError(err2,socket,opts){if(err2 instanceof AggregateError&&(err2.code==="ETIMEDOUT"||err2.errors.some(e=>e!=null&&e.code==="ETIMEDOUT"))){let message="Connect Timeout Error";Array.isArray(socket.autoSelectFamilyAttemptedAddresses)?message+=` (attempted addresses: ${socket.autoSelectFamilyAttemptedAddresses.join(", ")},`:message+=` (attempted address: ${opts.hostname}:${opts.port},`,message+=` timeout: ${opts.timeout}ms)`;let wrapped=new ConnectTimeoutError(message);return wrapped.cause=err2,wrapped}return err2}module.exports=buildConnector}});var require_utils=__commonJS({"packages/agent-forge/node_modules/undici/lib/llhttp/utils.js"(exports){"use strict";Object.defineProperty(exports,"__esModule",{value:!0});exports.enumToMap=enumToMap;function enumToMap(obj,filter=[],exceptions=[]){let emptyFilter=(filter?.length??0)===0,emptyExceptions=(exceptions?.length??0)===0;return Object.fromEntries(Object.entries(obj).filter(([,value])=>typeof value=="number"&&(emptyFilter||filter.includes(value))&&(emptyExceptions||!exceptions.includes(value))))}}});var require_constants2=__commonJS({"packages/agent-forge/node_modules/undici/lib/llhttp/constants.js"(exports){"use strict";Object.defineProperty(exports,"__esModule",{value:!0});exports.SPECIAL_HEADERS=exports.MINOR=exports.MAJOR=exports.HTAB_SP_VCHAR_OBS_TEXT=exports.QUOTED_STRING=exports.CONNECTION_TOKEN_CHARS=exports.HEADER_CHARS=exports.TOKEN=exports.HEX=exports.URL_CHAR=exports.USERINFO_CHARS=exports.MARK=exports.ALPHANUM=exports.NUM=exports.HEX_MAP=exports.NUM_MAP=exports.ALPHA=exports.STATUSES_HTTP=exports.H_METHOD_MAP=exports.METHOD_MAP=exports.METHODS_RTSP=exports.METHODS_ICE=exports.METHODS_HTTP=exports.HEADER_STATE=exports.FINISH=exports.STATUSES=exports.METHODS=exports.LENIENT_FLAGS=exports.FLAGS=exports.TYPE=exports.ERROR=void 0;var utils_1=require_utils();exports.ERROR={OK:0,INTERNAL:1,STRICT:2,CR_EXPECTED:25,LF_EXPECTED:3,UNEXPECTED_CONTENT_LENGTH:4,UNEXPECTED_SPACE:30,CLOSED_CONNECTION:5,INVALID_METHOD:6,INVALID_URL:7,INVALID_CONSTANT:8,INVALID_VERSION:9,INVALID_HEADER_TOKEN:10,INVALID_CONTENT_LENGTH:11,INVALID_CHUNK_SIZE:12,INVALID_STATUS:13,INVALID_EOF_STATE:14,INVALID_TRANSFER_ENCODING:15,CB_MESSAGE_BEGIN:16,CB_HEADERS_COMPLETE:17,CB_MESSAGE_COMPLETE:18,CB_CHUNK_HEADER:19,CB_CHUNK_COMPLETE:20,PAUSED:21,PAUSED_UPGRADE:22,PAUSED_H2_UPGRADE:23,USER:24,CB_URL_COMPLETE:26,CB_STATUS_COMPLETE:27,CB_METHOD_COMPLETE:32,CB_VERSION_COMPLETE:33,CB_HEADER_FIELD_COMPLETE:28,CB_HEADER_VALUE_COMPLETE:29,CB_CHUNK_EXTENSION_NAME_COMPLETE:34,CB_CHUNK_EXTENSION_VALUE_COMPLETE:35,CB_RESET:31,CB_PROTOCOL_COMPLETE:38};exports.TYPE={BOTH:0,REQUEST:1,RESPONSE:2};exports.FLAGS={CONNECTION_KEEP_ALIVE:1,CONNECTION_CLOSE:2,CONNECTION_UPGRADE:4,CHUNKED:8,UPGRADE:16,CONTENT_LENGTH:32,SKIPBODY:64,TRAILING:128,TRANSFER_ENCODING:512};exports.LENIENT_FLAGS={HEADERS:1,CHUNKED_LENGTH:2,KEEP_ALIVE:4,TRANSFER_ENCODING:8,VERSION:16,DATA_AFTER_CLOSE:32,OPTIONAL_LF_AFTER_CR:64,OPTIONAL_CRLF_AFTER_CHUNK:128,OPTIONAL_CR_BEFORE_LF:256,SPACES_AFTER_CHUNK_SIZE:512};exports.METHODS={DELETE:0,GET:1,HEAD:2,POST:3,PUT:4,CONNECT:5,OPTIONS:6,TRACE:7,COPY:8,LOCK:9,MKCOL:10,MOVE:11,PROPFIND:12,PROPPATCH:13,SEARCH:14,UNLOCK:15,BIND:16,REBIND:17,UNBIND:18,ACL:19,REPORT:20,MKACTIVITY:21,CHECKOUT:22,MERGE:23,"M-SEARCH":24,NOTIFY:25,SUBSCRIBE:26,UNSUBSCRIBE:27,PATCH:28,PURGE:29,MKCALENDAR:30,LINK:31,UNLINK:32,SOURCE:33,PRI:34,DESCRIBE:35,ANNOUNCE:36,SETUP:37,PLAY:38,PAUSE:39,TEARDOWN:40,GET_PARAMETER:41,SET_PARAMETER:42,REDIRECT:43,RECORD:44,FLUSH:45,QUERY:46};exports.STATUSES={CONTINUE:100,SWITCHING_PROTOCOLS:101,PROCESSING:102,EARLY_HINTS:103,RESPONSE_IS_STALE:110,REVALIDATION_FAILED:111,DISCONNECTED_OPERATION:112,HEURISTIC_EXPIRATION:113,MISCELLANEOUS_WARNING:199,OK:200,CREATED:201,ACCEPTED:202,NON_AUTHORITATIVE_INFORMATION:203,NO_CONTENT:204,RESET_CONTENT:205,PARTIAL_CONTENT:206,MULTI_STATUS:207,ALREADY_REPORTED:208,TRANSFORMATION_APPLIED:214,IM_USED:226,MISCELLANEOUS_PERSISTENT_WARNING:299,MULTIPLE_CHOICES:300,MOVED_PERMANENTLY:301,FOUND:302,SEE_OTHER:303,NOT_MODIFIED:304,USE_PROXY:305,SWITCH_PROXY:306,TEMPORARY_REDIRECT:307,PERMANENT_REDIRECT:308,BAD_REQUEST:400,UNAUTHORIZED:401,PAYMENT_REQUIRED:402,FORBIDDEN:403,NOT_FOUND:404,METHOD_NOT_ALLOWED:405,NOT_ACCEPTABLE:406,PROXY_AUTHENTICATION_REQUIRED:407,REQUEST_TIMEOUT:408,CONFLICT:409,GONE:410,LENGTH_REQUIRED:411,PRECONDITION_FAILED:412,PAYLOAD_TOO_LARGE:413,URI_TOO_LONG:414,UNSUPPORTED_MEDIA_TYPE:415,RANGE_NOT_SATISFIABLE:416,EXPECTATION_FAILED:417,IM_A_TEAPOT:418,PAGE_EXPIRED:419,ENHANCE_YOUR_CALM:420,MISDIRECTED_REQUEST:421,UNPROCESSABLE_ENTITY:422,LOCKED:423,FAILED_DEPENDENCY:424,TOO_EARLY:425,UPGRADE_REQUIRED:426,PRECONDITION_REQUIRED:428,TOO_MANY_REQUESTS:429,REQUEST_HEADER_FIELDS_TOO_LARGE_UNOFFICIAL:430,REQUEST_HEADER_FIELDS_TOO_LARGE:431,LOGIN_TIMEOUT:440,NO_RESPONSE:444,RETRY_WITH:449,BLOCKED_BY_PARENTAL_CONTROL:450,UNAVAILABLE_FOR_LEGAL_REASONS:451,CLIENT_CLOSED_LOAD_BALANCED_REQUEST:460,INVALID_X_FORWARDED_FOR:463,REQUEST_HEADER_TOO_LARGE:494,SSL_CERTIFICATE_ERROR:495,SSL_CERTIFICATE_REQUIRED:496,HTTP_REQUEST_SENT_TO_HTTPS_PORT:497,INVALID_TOKEN:498,CLIENT_CLOSED_REQUEST:499,INTERNAL_SERVER_ERROR:500,NOT_IMPLEMENTED:501,BAD_GATEWAY:502,SERVICE_UNAVAILABLE:503,GATEWAY_TIMEOUT:504,HTTP_VERSION_NOT_SUPPORTED:505,VARIANT_ALSO_NEGOTIATES:506,INSUFFICIENT_STORAGE:507,LOOP_DETECTED:508,BANDWIDTH_LIMIT_EXCEEDED:509,NOT_EXTENDED:510,NETWORK_AUTHENTICATION_REQUIRED:511,WEB_SERVER_UNKNOWN_ERROR:520,WEB_SERVER_IS_DOWN:521,CONNECTION_TIMEOUT:522,ORIGIN_IS_UNREACHABLE:523,TIMEOUT_OCCURED:524,SSL_HANDSHAKE_FAILED:525,INVALID_SSL_CERTIFICATE:526,RAILGUN_ERROR:527,SITE_IS_OVERLOADED:529,SITE_IS_FROZEN:530,IDENTITY_PROVIDER_AUTHENTICATION_ERROR:561,NETWORK_READ_TIMEOUT:598,NETWORK_CONNECT_TIMEOUT:599};exports.FINISH={SAFE:0,SAFE_WITH_CB:1,UNSAFE:2};exports.HEADER_STATE={GENERAL:0,CONNECTION:1,CONTENT_LENGTH:2,TRANSFER_ENCODING:3,UPGRADE:4,CONNECTION_KEEP_ALIVE:5,CONNECTION_CLOSE:6,CONNECTION_UPGRADE:7,TRANSFER_ENCODING_CHUNKED:8};exports.METHODS_HTTP=[exports.METHODS.DELETE,exports.METHODS.GET,exports.METHODS.HEAD,exports.METHODS.POST,exports.METHODS.PUT,exports.METHODS.CONNECT,exports.METHODS.OPTIONS,exports.METHODS.TRACE,exports.METHODS.COPY,exports.METHODS.LOCK,exports.METHODS.MKCOL,exports.METHODS.MOVE,exports.METHODS.PROPFIND,exports.METHODS.PROPPATCH,exports.METHODS.SEARCH,exports.METHODS.UNLOCK,exports.METHODS.BIND,exports.METHODS.REBIND,exports.METHODS.UNBIND,exports.METHODS.ACL,exports.METHODS.REPORT,exports.METHODS.MKACTIVITY,exports.METHODS.CHECKOUT,exports.METHODS.MERGE,exports.METHODS["M-SEARCH"],exports.METHODS.NOTIFY,exports.METHODS.SUBSCRIBE,exports.METHODS.UNSUBSCRIBE,exports.METHODS.PATCH,exports.METHODS.PURGE,exports.METHODS.MKCALENDAR,exports.METHODS.LINK,exports.METHODS.UNLINK,exports.METHODS.PRI,exports.METHODS.SOURCE,exports.METHODS.QUERY];exports.METHODS_ICE=[exports.METHODS.SOURCE];exports.METHODS_RTSP=[exports.METHODS.OPTIONS,exports.METHODS.DESCRIBE,exports.METHODS.ANNOUNCE,exports.METHODS.SETUP,exports.METHODS.PLAY,exports.METHODS.PAUSE,exports.METHODS.TEARDOWN,exports.METHODS.GET_PARAMETER,exports.METHODS.SET_PARAMETER,exports.METHODS.REDIRECT,exports.METHODS.RECORD,exports.METHODS.FLUSH,exports.METHODS.GET,exports.METHODS.POST];exports.METHOD_MAP=(0,utils_1.enumToMap)(exports.METHODS);exports.H_METHOD_MAP=Object.fromEntries(Object.entries(exports.METHODS).filter(([k])=>k.startsWith("H")));exports.STATUSES_HTTP=[exports.STATUSES.CONTINUE,exports.STATUSES.SWITCHING_PROTOCOLS,exports.STATUSES.PROCESSING,exports.STATUSES.EARLY_HINTS,exports.STATUSES.RESPONSE_IS_STALE,exports.STATUSES.REVALIDATION_FAILED,exports.STATUSES.DISCONNECTED_OPERATION,exports.STATUSES.HEURISTIC_EXPIRATION,exports.STATUSES.MISCELLANEOUS_WARNING,exports.STATUSES.OK,exports.STATUSES.CREATED,exports.STATUSES.ACCEPTED,exports.STATUSES.NON_AUTHORITATIVE_INFORMATION,exports.STATUSES.NO_CONTENT,exports.STATUSES.RESET_CONTENT,exports.STATUSES.PARTIAL_CONTENT,exports.STATUSES.MULTI_STATUS,exports.STATUSES.ALREADY_REPORTED,exports.STATUSES.TRANSFORMATION_APPLIED,exports.STATUSES.IM_USED,exports.STATUSES.MISCELLANEOUS_PERSISTENT_WARNING,exports.STATUSES.MULTIPLE_CHOICES,exports.STATUSES.MOVED_PERMANENTLY,exports.STATUSES.FOUND,exports.STATUSES.SEE_OTHER,exports.STATUSES.NOT_MODIFIED,exports.STATUSES.USE_PROXY,exports.STATUSES.SWITCH_PROXY,exports.STATUSES.TEMPORARY_REDIRECT,exports.STATUSES.PERMANENT_REDIRECT,exports.STATUSES.BAD_REQUEST,exports.STATUSES.UNAUTHORIZED,exports.STATUSES.PAYMENT_REQUIRED,exports.STATUSES.FORBIDDEN,exports.STATUSES.NOT_FOUND,exports.STATUSES.METHOD_NOT_ALLOWED,exports.STATUSES.NOT_ACCEPTABLE,exports.STATUSES.PROXY_AUTHENTICATION_REQUIRED,exports.STATUSES.REQUEST_TIMEOUT,exports.STATUSES.CONFLICT,exports.STATUSES.GONE,exports.STATUSES.LENGTH_REQUIRED,exports.STATUSES.PRECONDITION_FAILED,exports.STATUSES.PAYLOAD_TOO_LARGE,exports.STATUSES.URI_TOO_LONG,exports.STATUSES.UNSUPPORTED_MEDIA_TYPE,exports.STATUSES.RANGE_NOT_SATISFIABLE,exports.STATUSES.EXPECTATION_FAILED,exports.STATUSES.IM_A_TEAPOT,exports.STATUSES.PAGE_EXPIRED,exports.STATUSES.ENHANCE_YOUR_CALM,exports.STATUSES.MISDIRECTED_REQUEST,exports.STATUSES.UNPROCESSABLE_ENTITY,exports.STATUSES.LOCKED,exports.STATUSES.FAILED_DEPENDENCY,exports.STATUSES.TOO_EARLY,exports.STATUSES.UPGRADE_REQUIRED,exports.STATUSES.PRECONDITION_REQUIRED,exports.STATUSES.TOO_MANY_REQUESTS,exports.STATUSES.REQUEST_HEADER_FIELDS_TOO_LARGE_UNOFFICIAL,exports.STATUSES.REQUEST_HEADER_FIELDS_TOO_LARGE,exports.STATUSES.LOGIN_TIMEOUT,exports.STATUSES.NO_RESPONSE,exports.STATUSES.RETRY_WITH,exports.STATUSES.BLOCKED_BY_PARENTAL_CONTROL,exports.STATUSES.UNAVAILABLE_FOR_LEGAL_REASONS,exports.STATUSES.CLIENT_CLOSED_LOAD_BALANCED_REQUEST,exports.STATUSES.INVALID_X_FORWARDED_FOR,exports.STATUSES.REQUEST_HEADER_TOO_LARGE,exports.STATUSES.SSL_CERTIFICATE_ERROR,exports.STATUSES.SSL_CERTIFICATE_REQUIRED,exports.STATUSES.HTTP_REQUEST_SENT_TO_HTTPS_PORT,exports.STATUSES.INVALID_TOKEN,exports.STATUSES.CLIENT_CLOSED_REQUEST,exports.STATUSES.INTERNAL_SERVER_ERROR,exports.STATUSES.NOT_IMPLEMENTED,exports.STATUSES.BAD_GATEWAY,exports.STATUSES.SERVICE_UNAVAILABLE,exports.STATUSES.GATEWAY_TIMEOUT,exports.STATUSES.HTTP_VERSION_NOT_SUPPORTED,exports.STATUSES.VARIANT_ALSO_NEGOTIATES,exports.STATUSES.INSUFFICIENT_STORAGE,exports.STATUSES.LOOP_DETECTED,exports.STATUSES.BANDWIDTH_LIMIT_EXCEEDED,exports.STATUSES.NOT_EXTENDED,exports.STATUSES.NETWORK_AUTHENTICATION_REQUIRED,exports.STATUSES.WEB_SERVER_UNKNOWN_ERROR,exports.STATUSES.WEB_SERVER_IS_DOWN,exports.STATUSES.CONNECTION_TIMEOUT,exports.STATUSES.ORIGIN_IS_UNREACHABLE,exports.STATUSES.TIMEOUT_OCCURED,exports.STATUSES.SSL_HANDSHAKE_FAILED,exports.STATUSES.INVALID_SSL_CERTIFICATE,exports.STATUSES.RAILGUN_ERROR,exports.STATUSES.SITE_IS_OVERLOADED,exports.STATUSES.SITE_IS_FROZEN,exports.STATUSES.IDENTITY_PROVIDER_AUTHENTICATION_ERROR,exports.STATUSES.NETWORK_READ_TIMEOUT,exports.STATUSES.NETWORK_CONNECT_TIMEOUT];exports.ALPHA=[];for(let i=65;i<=90;i++)exports.ALPHA.push(String.fromCharCode(i)),exports.ALPHA.push(String.fromCharCode(i+32));exports.NUM_MAP={0:0,1:1,2:2,3:3,4:4,5:5,6:6,7:7,8:8,9:9};exports.HEX_MAP={0:0,1:1,2:2,3:3,4:4,5:5,6:6,7:7,8:8,9:9,A:10,B:11,C:12,D:13,E:14,F:15,a:10,b:11,c:12,d:13,e:14,f:15};exports.NUM=["0","1","2","3","4","5","6","7","8","9"];exports.ALPHANUM=exports.ALPHA.concat(exports.NUM);exports.MARK=["-","_",".","!","~","*","'","(",")"];exports.USERINFO_CHARS=exports.ALPHANUM.concat(exports.MARK).concat(["%",";",":","&","=","+","$",","]);exports.URL_CHAR=["!",'"',"$","%","&","'","(",")","*","+",",","-",".","/",":",";","<","=",">","@","[","\\","]","^","_","`","{","|","}","~"].concat(exports.ALPHANUM);exports.HEX=exports.NUM.concat(["a","b","c","d","e","f","A","B","C","D","E","F"]);exports.TOKEN=["!","#","$","%","&","'","*","+","-",".","^","_","`","|","~"].concat(exports.ALPHANUM);exports.HEADER_CHARS=[" "];for(let i=32;i<=255;i++)i!==127&&exports.HEADER_CHARS.push(i);exports.CONNECTION_TOKEN_CHARS=exports.HEADER_CHARS.filter(c2=>c2!==44);exports.QUOTED_STRING=[" "," "];for(let i=33;i<=255;i++)i!==34&&i!==92&&exports.QUOTED_STRING.push(i);exports.HTAB_SP_VCHAR_OBS_TEXT=[" "," "];for(let i=33;i<=126;i++)exports.HTAB_SP_VCHAR_OBS_TEXT.push(i);for(let i=128;i<=255;i++)exports.HTAB_SP_VCHAR_OBS_TEXT.push(i);exports.MAJOR=exports.NUM_MAP;exports.MINOR=exports.MAJOR;exports.SPECIAL_HEADERS={connection:exports.HEADER_STATE.CONNECTION,"content-length":exports.HEADER_STATE.CONTENT_LENGTH,"proxy-connection":exports.HEADER_STATE.CONNECTION,"transfer-encoding":exports.HEADER_STATE.TRANSFER_ENCODING,upgrade:exports.HEADER_STATE.UPGRADE};exports.default={ERROR:exports.ERROR,TYPE:exports.TYPE,FLAGS:exports.FLAGS,LENIENT_FLAGS:exports.LENIENT_FLAGS,METHODS:exports.METHODS,STATUSES:exports.STATUSES,FINISH:exports.FINISH,HEADER_STATE:exports.HEADER_STATE,ALPHA:exports.ALPHA,NUM_MAP:exports.NUM_MAP,HEX_MAP:exports.HEX_MAP,NUM:exports.NUM,ALPHANUM:exports.ALPHANUM,MARK:exports.MARK,USERINFO_CHARS:exports.USERINFO_CHARS,URL_CHAR:exports.URL_CHAR,HEX:exports.HEX,TOKEN:exports.TOKEN,HEADER_CHARS:exports.HEADER_CHARS,CONNECTION_TOKEN_CHARS:exports.CONNECTION_TOKEN_CHARS,QUOTED_STRING:exports.QUOTED_STRING,HTAB_SP_VCHAR_OBS_TEXT:exports.HTAB_SP_VCHAR_OBS_TEXT,MAJOR:exports.MAJOR,MINOR:exports.MINOR,SPECIAL_HEADERS:exports.SPECIAL_HEADERS,METHODS_HTTP:exports.METHODS_HTTP,METHODS_ICE:exports.METHODS_ICE,METHODS_RTSP:exports.METHODS_RTSP,METHOD_MAP:exports.METHOD_MAP,H_METHOD_MAP:exports.H_METHOD_MAP,STATUSES_HTTP:exports.STATUSES_HTTP}}});var require_llhttp_wasm=__commonJS({"packages/agent-forge/node_modules/undici/lib/llhttp/llhttp-wasm.js"(exports,module){"use strict";var{Buffer:Buffer2}=__require("node:buffer"),wasmBase64="AGFzbQEAAAABJwdgAX8Bf2ADf39/AX9gAn9/AGABfwBgBH9/f38Bf2AAAGADf39/AALLAQgDZW52GHdhc21fb25faGVhZGVyc19jb21wbGV0ZQAEA2VudhV3YXNtX29uX21lc3NhZ2VfYmVnaW4AAANlbnYLd2FzbV9vbl91cmwAAQNlbnYOd2FzbV9vbl9zdGF0dXMAAQNlbnYUd2FzbV9vbl9oZWFkZXJfZmllbGQAAQNlbnYUd2FzbV9vbl9oZWFkZXJfdmFsdWUAAQNlbnYMd2FzbV9vbl9ib2R5AAEDZW52GHdhc21fb25fbWVzc2FnZV9jb21wbGV0ZQAAAzU0BQYAAAMAAAAAAAADAQMAAwMDAAACAAAAAAICAgICAgICAgIBAQEBAQEBAQEBAwAAAwAAAAQFAXABExMFAwEAAgYIAX8BQcDZBAsHxQcoBm1lbW9yeQIAC19pbml0aWFsaXplAAgZX19pbmRpcmVjdF9mdW5jdGlvbl90YWJsZQEAC2xsaHR0cF9pbml0AAkYbGxodHRwX3Nob3VsZF9rZWVwX2FsaXZlADcMbGxodHRwX2FsbG9jAAsGbWFsbG9jADkLbGxodHRwX2ZyZWUADARmcmVlAAwPbGxodHRwX2dldF90eXBlAA0VbGxodHRwX2dldF9odHRwX21ham9yAA4VbGxodHRwX2dldF9odHRwX21pbm9yAA8RbGxodHRwX2dldF9tZXRob2QAEBZsbGh0dHBfZ2V0X3N0YXR1c19jb2RlABESbGxodHRwX2dldF91cGdyYWRlABIMbGxodHRwX3Jlc2V0ABMObGxodHRwX2V4ZWN1dGUAFBRsbGh0dHBfc2V0dGluZ3NfaW5pdAAVDWxsaHR0cF9maW5pc2gAFgxsbGh0dHBfcGF1c2UAFw1sbGh0dHBfcmVzdW1lABgbbGxodHRwX3Jlc3VtZV9hZnRlcl91cGdyYWRlABkQbGxodHRwX2dldF9lcnJubwAaF2xsaHR0cF9nZXRfZXJyb3JfcmVhc29uABsXbGxodHRwX3NldF9lcnJvcl9yZWFzb24AHBRsbGh0dHBfZ2V0X2Vycm9yX3BvcwAdEWxsaHR0cF9lcnJub19uYW1lAB4SbGxodHRwX21ldGhvZF9uYW1lAB8SbGxodHRwX3N0YXR1c19uYW1lACAabGxodHRw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AXRrQT5qIQILIAEgAjYCHCABQgA3AhAgAkECdEH01wBqIQACQEHI1QAoAgAiA0EBIAJ0IgdxRQRAIAAgATYCAEHI1QAgAyAHcjYCACABIAA2AhggASABNgIIIAEgATYCDAwBCyAEQRkgAkEBdmtBACACQR9HG3QhAiAAKAIAIQACQANAIAAiAygCBEF4cSAERg0BIAJBHXYhACACQQF0IQIgAyAAQQRxakEQaiIHKAIAIgANAAsgByABNgIAIAEgAzYCGCABIAE2AgwgASABNgIIDAELIAMoAggiACABNgIMIAMgATYCCCABQQA2AhggASADNgIMIAEgADYCCAtB5NUAQeTVACgCAEEBayIAQX8gABs2AgALCwcAIAAtACgLBwAgAC0AKgsHACAALQArCwcAIAAtACkLBwAgAC8BNAsHACAALQAwC0ABBH8gACgCGCEBIAAvAS4hAiAALQAoIQMgACgCOCEEIAAQOCAAIAQ2AjggACADOgAoIAAgAjsBLiAAIAE2AhgL5YUCAgd/A34gASACaiEEAkAgACIDKAIMIgANACADKAIEBEAgAyABNgIECyMAQRBrIgkkAAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAn8CQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkAC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C0HjAQwHC0HXAQwGC0HYAQwFC0HZAQwEC0HaAQwDC0HbAQwCC0HdAQwBC0HcAQshAgNAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQCADAn8CQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAn8CQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAn8CQAJAAkACQAJAAkACQAJ/AkACQAJAAn8CQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAIAMCfwJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACfwJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkAg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ogKiAqICogKiAqICogKiAqICogKiAqICogIAogILIAQgAUEBaiIBRw0AC0HJACECDOwCCyABQQFqIQEgA0Evai0AAEEBcQ2lAiADQQA2AhwgAyABNgIUIANBlxA2AhAgA0EKNgIMQQAhAgzrAgsgASAERwRAA0AgAS0AAEEgRw0VIAQgAUEBaiIBRw0AC0H4ACECDOsCC0H4ACECDOoCCyADQQI6ACgMOAtBACECIANBADYCHCADQb8LNgIQIANBAjYCDCADIAFBAWo2AhQM6AILQQAhAgzOAgtBDSECDM0CC0ETIQIMzAILQRUhAgzLAgtBFiECDMoCC0EYIQIMyQILQRkhAgzIAgtBGiECDMcCC0EbIQIMxgILQRwhAgzFAgtBHSECDMQCC0EeIQIMwwILQR8hAgzCAgtBICECDMECC0EiIQIMwAILQSMhAgy/AgtBJSECDL4CC0HlACECDL0CCyADQT02AhwgAyABNgIUIAMgADYCDEEAIQIM1QILIANBGzYCHCADIAE2AhQgA0GkHDYCECADQRU2AgxBACECDNQCCyADQSA2AhwgAyABNgIUIANBmBo2AhAgA0EVNgIMQQAhAgzTAgsgA0ETNgIcIAMgATYCFCADQZgaNgIQIANBFTYCDEEAIQIM0gILIANBCzYCHCADIAE2AhQgA0GYGjYCECADQRU2AgxBACECDNECCyADQRA2AhwgAyABNgIUIANBmBo2AhAgA0EVNgIMQQAhAgzQAgsgA0EgNgIcIAMgATYCFCADQaQcNgIQIANBFTYCDEEAIQIMzwILIANBCzYCHCADIAE2AhQgA0GkHDYCECADQRU2AgxBACECDM4CCyADQQw2AhwgAyABNgIUIANBpBw2AhAgA0EVNgIMQQAhAgzNAgtBACECIANBADYCHCADIAE2AhQgA0HdDjYCECADQRI2AgwMzAILAkADQAJAIAEtAABBCmsOBAACAgACCyAEIAFBAWoiAUcNAAtB/QEhAgzMAgsCQAJAIAMtADZBAUcNAEEAIQACQCADKAI4IgJFDQAgAigCYCICRQ0AIAMgAhEAACEACyAARQ0AIABBFUcNASADQfwBNgIcIAMgATYCFCADQdwZNgIQIANBFTYCDEEAIQIMzQILQdwBIQIMswILIANBADYCHCADIAE2AhQgA0H5CzYCECADQR82AgxBACECDMsCCwJAAkAgAy0AKEEBaw4CBAEAC0HbASECDLICC0HUASECDLECCyADQQI6ADFBACEAAkAgAygCOCICRQ0AIAIoAgAiAkUNACADIAIRAAAhAAsgAEUEQEHdASECDLECCyAAQRVHBEAgA0EANgIcIAMgATYCFCADQbQMNgIQIANBEDYCDEEAIQIMygILIANB+wE2AhwgAyABNgIUIANBgRo2AhAgA0EVNgIMQQAhAgzJAgsgASAERgRAQfoBIQIMyQILIAEtAABByABGDQEgA0EBOgAoC0HAASECDK4CC0HaASECDK0CCyABIARHBEAgA0EMNgIIIAMgATYCBEHZASECDK0CC0H5ASECDMUCCyABIARGBEBB+AEhAgzFAgsgAS0AAEHIAEcNBCABQQFqIQFB2AEhAgyrAgsgASAERgRAQfcBIQIMxAILAkACQCABLQAAQcUAaw4QAAUFBQUFBQUFBQUFBQUFAQULIAFBAWohAUHWASECDKsCCyABQQFqIQFB1wEhAgyqAgtB9gEhAiABIARGDcICIAMoAgAiACAEIAFraiEFIAEgAGtBAmohBgJAA0AgAS0AACAAQbrVAGotAABHDQMgAEECRg0BIABBAWohACAEIAFBAWoiAUcNAAsgAyAFNgIADMMCCyADKAIEIQAgA0IANwMAIAMgACAGQQFqIgEQLiIARQRAQeMBIQIMqgILIANB9QE2AhwgAyABNgIUIAMgADYCDEEAIQIMwgILQfQBIQIgASAERg3BAiADKAIAIgAgBCABa2ohBSABIABrQQFqIQYCQANAIAEtAAAgAEG41QBqLQAARw0CIABBAUYNASAAQQFqIQAgBCABQQFqIgFHDQALIAMgBTYCAAzCAgsgA0GBBDsBKCADKAIEIQAgA0IANwMAIAMgACAGQQFqIgEQLiIADQMMAgsgA0EANgIAC0EAIQIgA0EANgIcIAMgATYCFCADQeUfNgIQIANBCDYCDAy/AgtB1QEhAgylAgsgA0HzATYCHCADIAE2AhQgAyAANgIMQQAhAgy9AgtBACEAAkAgAygCOCICRQ0AIAIoAkAiAkUNACADIAIRAAAhAAsgAEUNbiAAQRVHBEAgA0EANgIcIAMgATYCFCADQYIPNgIQIANBIDYCDEEAIQIMvQILIANBjwE2AhwgAyABNgIUIANB7Bs2AhAgA0EVNgIMQQAhAgy8AgsgASAERwRAIANBDTYCCCADIAE2AgRB0wEhAgyjAgtB8gEhAgy7AgsgASAERgRAQfEBIQIMuwILAkACQAJAIAEtAABByABrDgsAAQgICAgICAgIAggLIAFBAWohAUHQASECDKMCCyABQQFqIQFB0QEhAgyiAgsgAUEBaiEBQdIBIQIMoQILQfABIQIgASAERg25AiADKAIAIgAgBCABa2ohBiABIABrQQJqIQUDQCABLQAAIABBtdUAai0AAEcNBCAAQQJGDQMgAEEBaiEAIAQgAUEBaiIBRw0ACyADIAY2AgAMuQILQe8BIQIgASAERg24AiADKAIAIgAgBCABa2ohBiABIABrQQFqIQUDQCABLQAAIABBs9UAai0AAEcNAyAAQQFGDQIgAEEBaiEAIAQgAUEBaiIBRw0ACyADIAY2AgAMuAILQe4BIQIgASAERg23AiADKAIAIgAgBCABa2ohBiABIABrQQJqIQUDQCABLQAAIABBsNUAai0AAEcNAiAAQQJGDQEgAEEBaiEAIAQgAUEBaiIBRw0ACyADIAY2AgAMtwILIAMoAgQhACADQgA3AwAgAyAAIAVBAWoiARArIgBFDQIgA0HsATYCHCADIAE2AhQgAyAANgIMQQAhAgy2AgsgA0EANgIACyADKAIEIQAgA0EANgIEIAMgACABECsiAEUNnAIgA0HtATYCHCADIAE2AhQgAyAANgIMQQAhAgy0AgtBzwEhAgyaAgtBACEAAkAgAygCOCICRQ0AIAIoAjQiAkUNACADIAIRAAAhAAsCQCAABEAgAEEVRg0BIANBADYCHCADIAE2AhQgA0HqDTYCECADQSY2AgxBACECDLQCC0HOASECDJoCCyADQesBNgIcIAMgATYCFCADQYAbNgIQIANBFTYCDEEAIQIMsgILIAEgBEYEQEHrASECDLICCyABLQAAQS9GBEAgAUEBaiEBDAELIANBADYCHCADIAE2AhQgA0GyODYCECADQQg2AgxBACECDLECC0HNASECDJcCCyABIARHBEAgA0EONgIIIAMgATYCBEHMASECDJcCC0HqASECDK8CCyABIARGBEBB6QEhAgyvAgsgAS0AAEEwayIAQf8BcUEKSQRAIAMgADoAKiABQQFqIQFBywEhAgyWAgsgAygCBCEAIANBADYCBCADIAAgARAvIgBFDZcCIANB6AE2AhwgAyABNgIUIAMgADYCDEEAIQIMrgILIAEgBEYEQEHnASECDK4CCwJAIAEtAABBLkYEQCABQQFqIQEMAQsgAygCBCEAIANBADYCBCADIAAgARAvIgBFDZgCIANB5gE2AhwgAyABNgIUIAMgADYCDEEAIQIMrgILQcoBIQIMlAILIAEgBEYEQEHlASECDK0CC0EAIQBBASEFQQEhB0EAIQICQAJAAkACQAJAAn8CQAJAAkACQAJAAkACQCABLQAAQTBrDgoKCQABAgMEBQYICwtBAgwGC0EDDAULQQQMBAtBBQwDC0EGDAILQQcMAQtBCAshAkEAIQVBACEHDAILQQkhAkEBIQBBACEFQQAhBwwBC0EAIQVBASECCyADIAI6ACsgAUEBaiEBAkACQCADLQAuQRBxDQACQAJAAkAgAy0AKg4DAQACBAsgB0UNAwwCCyAADQEMAgsgBUUNAQsgAygCBCEAIANBADYCBCADIAAgARAvIgBFDQIgA0HiATYCHCADIAE2AhQgAyAANgIMQQAhAgyvAgsgAygCBCEAIANBADYCBCADIAAgARAvIgBFDZoCIANB4wE2AhwgAyABNgIUIAMgADYCDEEAIQIMrgILIAMoAgQhACADQQA2AgQgAyAAIAEQLyIARQ2YAiADQeQBNgIcIAMgATYCFCADIAA2AgwMrQILQckBIQIMkwILQQAhAAJAIAMoAjgiAkUNACACKAJEIgJFDQAgAyACEQAAIQALAkAgAARAIABBFUYNASADQQA2AhwgAyABNgIUIANBpA02AhAgA0EhNgIMQQAhAgytAgtByAEhAgyTAgsgA0HhATYCHCADIAE2AhQgA0HQGjYCECADQRU2AgxBACECDKsCCyABIARGBEBB4QEhAgyrAgsCQCABLQAAQSBGBEAgA0EAOwE0IAFBAWohAQwBCyADQQA2AhwgAyABNgIUIANBmRE2AhAgA0EJNgIMQQAhAgyrAgtBxwEhAgyRAgsgASAERgRAQeABIQIMqgILAkAgAS0AAEEwa0H/AXEiAkEKSQRAIAFBAWohAQJAIAMvATQiAEGZM0sNACADIABBCmwiADsBNCAAQf7/A3EgAkH//wNzSw0AIAMgACACajsBNAwCC0EAIQIgA0EANgIcIAMgATYCFCADQZUeNgIQIANBDTYCDAyrAgsgA0EANgIcIAMgATYCFCADQZUeNgIQIANBDTYCDEEAIQIMqgILQcYBIQIMkAILIAEgBEYEQEHfASECDKkCCwJAIAEtAABBMGtB/wFxIgJBCkkEQCABQQFqIQECQCADLwE0IgBBmTNLDQAgAyAAQQpsIgA7ATQgAEH+/wNxIAJB//8Dc0sNACADIAAgAmo7ATQMAgtBACECIANBADYCHCADIAE2AhQgA0GVHjYCECADQQ02AgwMqgILIANBADYCHCADIAE2AhQgA0GVHjYCECADQQ02AgxBACECDKkCC0HFASECDI8CCyABIARGBEBB3gEhAgyoAgsCQCABLQAAQTBrQf8BcSICQQpJBEAgAUEBaiEBAkAgAy8BNCIAQZkzSw0AIAMgAEEKbCIAOwE0IABB/v8DcSACQf//A3NLDQAgAyAAIAJqOwE0DAILQQAhAiADQQA2AhwgAyABNgIUIANBlR42AhAgA0ENNgIMDKkCCyADQQA2AhwgAyABNgIUIANBlR42AhAgA0ENNgIMQQAhAgyoAgtBxAEhAgyOAgsgASAERgRAQd0BIQIMpwILAkACQAJAAkAgAS0AAEEKaw4XAgMDAAMDAwMDAwMDAwMDAwMDAwMDAwEDCyABQQFqDAULIAFBAWohAUHDASECDI8CCyABQQFqIQEgA0Evai0AAEEBcQ0IIANBADYCHCADIAE2AhQgA0GNCzYCECADQQ02AgxBACECDKcCCyADQQA2AhwgAyABNgIUIANBjQs2AhAgA0ENNgIMQQAhAgymAgsgASAERwRAIANBDzYCCCADIAE2AgRBASECDI0CC0HcASECDKUCCwJAAkADQAJAIAEtAABBCmsOBAIAAAMACyAEIAFBAWoiAUcNAAtB2wEhAgymAgsgAygCBCEAIANBADYCBCADIAAgARAtIgBFBEAgAUEBaiEBDAQLIANB2gE2AhwgAyAANgIMIAMgAUEBajYCFEEAIQIMpQILIAMoAgQhACADQQA2AgQgAyAAIAEQLSIADQEgAUEBagshAUHBASECDIoCCyADQdkBNgIcIAMgADYCDCADIAFBAWo2AhRBACECDKICC0HCASECDIgCCyADQS9qLQAAQQFxDQEgA0EANgIcIAMgATYCFCADQeQcNgIQIANBGTYCDEEAIQIMoAILIAEgBEYEQEHZASEC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IAFBAWohAUGeASECDOQBCyABQQFqIQFBnwEhAgzjAQtBtwEhAiABIARGDfsBIAMoAgAiACAEIAFraiEFIAEgAGtBA2ohBgJAA0AgAS0AACAAQezUAGotAABHDSggAEEDRg0BIABBAWohACAEIAFBAWoiAUcNAAsgAyAFNgIADPwBCyADQQA2AgAgBkEBaiEBQQ0MKAtBtgEhAiABIARGDfoBIAMoAgAiACAEIAFraiEFIAEgAGtBAmohBgJAA0AgAS0AACAAQaHVAGotAABHDScgAEECRg0BIABBAWohACAEIAFBAWoiAUcNAAsgAyAFNgIADPsBCyADQQA2AgAgBkEBaiEBQQwMJwtBtQEhAiABIARGDfkBIAMoAgAiACAEIAFraiEFIAEgAGtBAWohBgJAA0AgAS0AACAAQerUAGotAABHDSYgAEEBRg0BIABBAWohACAEIAFBAWoiAUcNAAsgAyAFNgIADPoBCyADQQA2AgAgBkEBaiEBQQMMJgtBtAEhAiABIARGDfgBIAMoAgAiACAEIAFraiEFIAEgAGtBAWohBgJAA0AgAS0AACAAQejUAGotAABHDSUgAEEBRg0BIABBAWohACAEIAFBAWoiAUcNAAsgAyAFNgIADPkBCyADQQA2AgAgBkEBaiEBQSYMJQsgASAERgRAQbMBIQIM+AELAkACQCABLQAAQdQAaw4CAAEnCyABQQFqIQFBmQEhAgzfAQsgAUEBaiEBQZoBIQIM3gELQbIBIQIgASAERg32ASADKAIAIgAgBCABa2ohBSABIABrQQFqIQYCQANAIAEtAAAgAEHm1ABqLQAARw0jIABBAUYNASAAQQFqIQAgBCABQQFqIgFHDQALIAMgBTYCAAz3AQsgA0EANgIAIAZBAWohAUEnDCMLQbEBIQIgASAERg31ASADKAIAIgAgBCABa2ohBSABIABrQQFqIQYCQANAIAEtAAAgAEHk1ABqLQAARw0iIABBAUYNASAAQQFqIQAgBCABQQFqIgFHDQALIAMgBTYCAAz2AQsgA0EANgIAIAZBAWohAUEcDCILQbABIQIgASAERg30ASADKAIAIgAgBCABa2ohBSABIABrQQVqIQYCQANAIAEtAAAgAEHe1ABqLQAARw0hIABBBUYNASAAQQFqIQAgBCABQQFqIgFHDQALIAMgBTYCAAz1AQsgA0EANgIAIAZBAWohAUEGDCELQa8BIQIgASAERg3zASADKAIAIgAgBCABa2ohBSABIABrQQRqIQYCQANAIAEtAAAgAEHZ1ABqLQAARw0gIABBBEYNASAAQQFqIQAgBCABQQFqIgFHDQALIAMgBTYCAAz0AQsgA0EANgIAIAZBAWohAUEZDCALIAEgBEYEQEGuASECDPMBCwJAAkACQAJAIAEtAABBLWsOIwAkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJAEkJCQkJAIkJCQDJAsgAUEBaiEBQY4BIQIM3AELIAFBAWohAUGPASECDNsBCyABQQFqIQFBlAEhAgzaAQsgAUEBaiEBQZUBIQIM2QELQa0BIQIgASAERg3xASADKAIAIgAgBCABa2ohBSABIABrQQFqIQYCQANAIAEtAAAgAEHX1ABqLQAARw0eIABBAUYNASAAQQFqIQAgBCABQQFqIgFHDQALIAMgBTYCAAzyAQsgA0EANgIAIAZBAWohAUELDB4LIAEgBEYEQEGsASECDPEBCwJAAkAgAS0AAEHBAGsOAwAgASALIAFBAWohAUGQASECDNgBCyABQQFqIQFBkwEhAgzXAQsgASAERgRAQasBIQIM8AELAkACQCABLQAAQcEAaw4PAB8fHx8fHx8fHx8fHx8BHwsgAUEBaiEBQZEBIQIM1wELIAFBAWohAUGSASECDNYBCyABIARGBEBBqgEhAgzvAQsgAS0AAEHMAEcNHCABQQFqIQFBCgwbC0GpASECIAEgBEYN7QEgAygCACIAIAQgAWtqIQUgASAAa0EFaiEGAkADQCABLQAAIABB0dQAai0AAEcNGiAAQQVGDQEgAEEBaiEAIAQgAUEBaiIBRw0ACyADIAU2AgAM7gELIANBADYCACAGQQFqIQFBHgwaC0GoASECIAEgBEYN7AEgAygCACIAIAQgAWtqIQUgASAAa0EGaiEGAkADQCABLQAAIABBytQAai0AAEcNGSAAQQZGDQEgAEEBaiEAIAQgAUEBaiIBRw0ACyADIAU2AgAM7QELIANBADYCACAGQQFqIQFBFQwZC0GnASECIAEgBEYN6wEgAygCACIAIAQgAWtqIQUgASAAa0ECaiEGAkADQCABLQAAIABBx9QAai0AAEcNGCAAQQJGDQEgAEEBaiEAIAQgAUEBaiIBRw0ACyADIAU2AgAM7AELIANBADYCACAGQQFqIQFBFwwYC0GmASECIAEgBEYN6gEgAygCACIAIAQgAWtqIQUgASAAa0EFaiEGAkADQCABLQAAIABBwdQAai0AAEcNFyAAQQVGDQEgAEEBaiEAIAQgAUEBaiIBRw0ACyADIAU2AgAM6wELIANBADYCACAGQQFqIQFBGAwXCyABIARGBEBBpQEhAgzqAQsCQAJAIAEtAABByQBrDgcAGRkZGRkBGQsgAUEBaiEBQYsBIQIM0QELIAFBAWohAUGMASECDNABC0GkASECIAEgBEYN6AEgAygCACIAIAQgAWtqIQUgASAAa0EBaiEGAkADQCABLQAAIABBptUAai0AAEcNFSAAQQFGDQEgAEEBaiEAIAQgAUEBaiIBRw0ACyADIAU2AgAM6QELIANBADYCACAGQQFqIQFBCQwVC0GjASECIAEgBEYN5wEgAygCACIAIAQgAWtqIQUgASAAa0EBaiEGAkADQCABLQAAIABBpNUAai0AAEcNFCAAQQFGDQEgAEEBaiEAIAQgAUEBaiIBRw0ACyADIAU2AgAM6AELIANBADYCACAGQQFqIQFBHwwUC0GiASECIAEgBEYN5gEgAygCACIAIAQgAWtqIQUgASAAa0ECaiEGAkADQCABLQAAIABBvtQAai0AAEcNEyAAQQJGDQEgAEEBaiEAIAQgAUEBaiIBRw0ACyADIAU2AgAM5wELIANBADYCACAGQQFqIQFBAgwTC0GhASECIAEgBEYN5QEgAygCACIAIAQgAWtqIQUgASAAa0EBaiEGA0AgAS0AACAAQbzUAGotAABHDREgAEEBRg0CIABBAWohACAEIAFBAWoiAUcNAAsgAyAFNgIADOUBCyABIARGBEBBoAEhAgzlAQtBASABLQAAQd8ARw0RGiABQQFqIQFBhwEhAgzLAQsgA0EANgIAIAZBAWohAUGIASECDMoBC0GfASECIAEgBEYN4gEgAygCACIAIAQgAWtqIQUgASAAa0EIaiEGAkADQCABLQAAIABBhNUAai0AAEcNDyAAQQhGDQEgAEEBaiEAIAQgAUEBaiIBRw0ACyADIAU2AgAM4wELIANBADYCACAGQQFqIQFBKQwPC0GeASECIAEgBEYN4QEgAygCACIAIAQgAWtqIQUgASAAa0EDaiEGAkADQCABLQAAIABBuNQAai0AAEcNDiAAQQNGDQEgAEEBaiEAIAQgAUEBaiIBRw0ACyADIAU2AgAM4gELIANBADYCACAGQQFqIQFBLQwOCyABIARGBEBBnQEhAgzhAQsgAS0AAEHFAEcNDiABQQFqIQFBhAEhAgzHAQsgASAERgRAQZwBIQIM4AELAkACQCABLQAAQcwAaw4IAA8PDw8PDwEPCyABQQFqIQFBggEhAgzHAQsgAUEBaiEBQYMBIQIMxgELQZsBIQIgASAERg3eASADKAIAIgAgBCABa2ohBSABIABrQQRqIQYCQANAIAEtAAAgAEGz1ABqLQAARw0LIABBBEYNASAAQQFqIQAgBCABQQFqIgFHDQALIAMgBTYCAAzfAQsgA0EANgIAIAZBAWohAUEjDAsLQZoBIQIgASAERg3dASADKAIAIgAgBCABa2ohBSABIABrQQJqIQYCQANAIAEtAAAgAEGw1ABqLQAARw0KIABBAkYNASAAQQFqIQAgBCABQQFqIgFHDQALIAMgBTYCAAzeAQsgA0EANgIAIAZBAWohAUEADAoLIAEgBEYEQEGZASECDN0BCwJAAkAgAS0AAEHIAGsOCAAMDAwMDAwBDAsgAUEBaiEBQf0AIQIMxAELIAFBAWohAUGAASECDMMBCyABIARGBEBBmAEhAgzcAQsCQAJAIAEtAABBzgBrDgMACwELCyABQQFqIQFB/gAhAgzDAQsgAUEBaiEBQf8AIQIMwgELIAEgBEYEQEGXASECDNsBCyABLQAAQdkARw0IIAFBAWohAUEIDAcLQZYBIQIgASAERg3ZASADKAIAIgAgBCABa2ohBSABIABrQQNqIQYCQANAIAEtAAAgAEGs1ABqLQAARw0GIABBA0YNASAAQQFqIQAgBCABQQFqIgFHDQALIAMgBTYCAAzaAQsgA0EANgIAIAZBAWohAUEFDAYLQZUBIQIgASAERg3YASADKAIAIgAgBCABa2ohBSABIABrQQVqIQYCQANAIAEtAAAgAEGm1ABqLQAARw0FIABBBUYNASAAQQFqIQAgBCABQQFqIgFHDQALIAMgBTYCAAzZAQsgA0EANgIAIAZBAWohAUEWDAULQZQBIQIgASAERg3XASADKAIAIgAgBCABa2ohBSABIABrQQJqIQYCQANAIAEtAAAgAEGh1QBqLQAARw0EIABBAkYNASAAQQFqIQAgBCABQQFqIgFHDQALIAMgBTYCAAzYAQsgA0EANgIAIAZBAWohAUEQDAQLIAEgBEYEQEGTASECDNcBCwJAAkAgAS0AAEHDAGsODAAGBgYGBgYGBgYGAQYLIAFBAWohAUH5ACECDL4BCyABQQFqIQFB+gAhAgy9AQtBkgEhAiABIARGDdUBIAMoAgAiACAEIAFraiEFIAEgAGtBBWohBgJAA0AgAS0AACAAQaDUAGotAABHDQIgAEEFRg0BIABBAWohACAEIAFBAWoiAUcNAAsgAyAFNgIADNYBCyADQQA2AgAgBkEBaiEBQSQMAgsgA0EANgIADAILIAEgBEYEQEGRASECDNQBCyABLQAAQcwARw0BIAFBAWohAUETCzoAKSADKAIEIQAgA0EANgIEIAMgACABEC4iAA0CDAELQQAhAiADQQA2AhwgAyABNgIUIANB/h82AhAgA0EGNgIMDNEBC0H4ACECDLcBCyADQZABNgIcIAMgATYCFCADIAA2AgxBACECDM8BC0EAIQACQCADKAI4IgJFDQAgAigCQCICRQ0AIAMgAhEAACEACyAARQ0AIABBFUYNASADQQA2AhwgAyABNgIUIANBgg82AhAgA0EgNgIMQQAhAgzOAQtB9wAhAgy0AQsgA0GPATYCHCADIAE2AhQgA0HsGzYCECADQRU2AgxBACECDMwBCyABIARGBEBBjwEhAgzMAQsCQCABLQAAQSBGBEAgAUEBaiEBDAELIANBADYCHCADIAE2AhQgA0GbHzYCECADQQY2AgxBACECDMwBC0ECIQIMsgELA0AgAS0AAEEgRw0CIAQgAUEBaiIBRw0AC0GOASECDMoBCyABIARGBEBBjQEhAgzKAQsCQCABLQAAQQlrDgRKAABKAAtB9QAhAgywAQsgAy0AKUEFRgRAQfYAIQIMsAELQfQAIQIMrwELIAEgBEYEQEGMASECDMgBCyADQRA2AgggAyABNgIEDAoLIAEgBEYEQEGLASECDMcBCwJAIAEtAABBCWsOBEcAAEcAC0HzACECDK0BCyABIARHBEAgA0EQNgIIIAMgATYCBEHxACECDK0BC0GKASECDMUBCwJAIAEgBEcEQANAIAEtAABBoNAAai0AACIAQQNHBEACQCAAQQFrDgJJAAQLQfAAIQIMrwELIAQgAUEBaiIBRw0AC0GIASEC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BCABQQFqIgFHDQALQfsAIQIMpwELIAMoAgQhACADQQA2AgQgAyAAIAEQLCIARQ0DIANB2wA2AhwgAyABNgIUIAMgADYCDEEAIQIMpgELIAMoAgQhACADQQA2AgQgAyAAIAEQLCIARQ0DIANB3QA2AhwgAyABNgIUIAMgADYCDEEAIQIMpQELIAMoAgQhACADQQA2AgQgAyAAIAEQLCIARQ0DIANB+gA2AhwgAyABNgIUIAMgADYCDEEAIQIMpAELIANBADYCHCADIAE2AhQgA0G8CjYCECADQQc2AgxBACECDKMBC0HPACECDIkBC0HRACECDIgBC0HnACECDIcBCyABIARGBEBB+gAhAgygAQsCQCABLQAAQQlrDgQgAAAgAAsgAUEBaiEBQeYAIQIMhgELIAEgBEYEQEH5ACECDJ8BCwJAIAEtAABBCWsOBB8AAB8AC0EAIQACQCADKAI4IgJFDQAgAigCOCICRQ0AIAMgAhEAACEACyAARQRAQeIBIQIMhgELIABBFUcEQCADQQA2AhwgAyABNgIUIANByQ02AhAgA0EaNgIMQQAhAgyfAQsgA0H4ADYCHCADIAE2AhQgA0HqGjYCECADQRU2AgxBACECDJ4BCyABIARHBEAgA0ENNgIIIAMgATYCBEHkACECDIUBC0H3ACECDJ0BCyABIARGBEBB9gAhAgydAQsCQAJAAkAgAS0AAEHIAGsOCwABCwsLCwsLCwsCCwsgAUEBaiEBQd0AIQIMhQELIAFBAWohAUHgACECDIQBCyABQQFqIQFB4wAhAgyDAQtB9QAhAiABIARGDZsBIAMoAgAiACAEIAFraiEFIAEgAGtBAmohBgJAA0AgAS0AACAAQbXVAGotAABHDQggAEECRg0BIABBAWohACAEIAFBAWoiAUcNAAsgAyAFNgIADJwBCyADKAIEIQAgA0IANwMAIAMgACAGQQFqIgEQKyIABEAgA0H0ADYCHCADIAE2AhQgAyAANgIMQQAhAgycAQtB4gAhAgyCAQtBACEAAkAgAygCOCICRQ0AIAIoAjQiAkUNACADIAIRAAAhAAsCQCAABEAgAEEVRg0BIANBADYCHCADIAE2AhQgA0HqDTYCECADQSY2AgxBACECDJwBC0HhACECDIIBCyADQfMANgIcIAMgATYCFCADQYAbNgIQIANBFTYCDEEAIQIMmgELIAMtACkiAEEja0ELSQ0JAkAgAEEGSw0AQQEgAHRBygBxRQ0ADAoLQQAhAiADQQA2AhwgAyABNgIUIANB7Qk2AhAgA0EINgIMDJkBC0HyACECIAEgBEYNmAEgAygCACIAIAQgAWtqIQUgASAAa0EBaiEGAkADQCABLQAAIABBs9UAai0AAEcNBSAAQQFGDQEgAEEBaiEAIAQgAUEBaiIBRw0ACyADIAU2AgAMmQELIAMoAgQhACADQgA3AwAgAyAAIAZBAWoiARArIgAEQCADQfEANgIcIAMgATYCFCADIAA2AgxBACECDJkBC0HfACECDH8LQQAhAAJAIAMoAjgiAkUNACACKAI0IgJFDQAgAyACEQAAIQALAkAgAARAIABBFUYNASADQQA2AhwgAyABNgIUIANB6g02AhAgA0EmNgIMQQAhAgyZAQtB3gAhAgx/CyADQfAANgIcIAMgATYCFCADQYAbNgIQIANBFTYCDEEAIQIMlwELIAMtAClBIUYNBiADQQA2AhwgAyABNgIUIANBkQo2AhAgA0EINgIMQQAhAgyWAQtB7wAhAiABIARGDZUBIAMoAgAiACAEIAFraiEFIAEgAGtBAmohBgJAA0AgAS0AACAAQbDVAGotAABHDQIgAEECRg0BIABBAWohACAEIAFBAWoiAUcNAAsgAyAFNgIADJYBCyADKAIEIQAgA0IANwMAIAMgACAGQQFqIgEQKyIARQ0CIANB7QA2AhwgAyABNgIUIAMgADYCDEEAIQIMlQELIANBADYCAAsgAygCBCEAIANBADYCBCADIAAgARArIgBFDYABIANB7gA2AhwgAyABNgIUIAMgADYCDEEAIQIMkwELQdwAIQIMeQtBACEAAkAgAygCOCICRQ0AIAIoAjQiAkUNACADIAIRAAAhAAsCQCAABEAgAEEVRg0BIANBADYCHCADIAE2AhQgA0HqDTYCECADQSY2AgxBACECDJMBC0HbACECDHkLIANB7AA2AhwgAyABNgIUIANBgBs2AhAgA0EVNgIMQQAhAgyRAQsgAy0AKSIAQSNJDQAgAEEuRg0AIANBADYCHCADIAE2AhQgA0HJCTYCECADQQg2AgxBACECDJABC0HaACECDHYLIAEgBEYEQEHrACECDI8BCwJAIAEtAABBL0YEQCABQQFqIQEMAQsgA0EANgIcIAMgATYCFCADQbI4NgIQIANBCDYCDEEAIQIMjwELQdkAIQIMdQsgASAERwRAIANBDjYCCCADIAE2AgRB2AAhAgx1C0HqACECDI0BCyABIARGBEBB6QAhAgyNAQsgAS0AAEEwayIAQf8BcUEKSQRAIAMgADoAKiABQQFqIQFB1wAhAgx0CyADKAIEIQAgA0EANgIEIAMgACABEC8iAEUNeiADQegANgIcIAMgATYCFCADIAA2AgxBACECDIwBCyABIARGBEBB5wAhAgyMAQsCQCABLQAAQS5GBEAgAUEBaiEBDAELIAMoAgQhACADQQA2AgQgAyAAIAEQLyIARQ17IANB5gA2AhwgAyABNgIUIAMgADYCDEEAIQIMjAELQdYAIQIMcgsgASAERgRAQeUAIQIMiwELQQAhAEEBIQVBASEHQQAhAgJAAkACQAJAAkACfwJAAkACQAJAAkACQAJAIAEtAABBMGsOCgoJAAECAwQFBggLC0ECDAYLQQMMBQtBBAwEC0EFDAMLQQYMAgtBBwwBC0EICyECQQAhBUEAIQcMAgtBCSECQQEhAEEAIQVBACEHDAELQQAhBUEBIQILIAMgAjoAKyABQQFqIQECQAJAIAMtAC5BEHENAAJAAkACQCADLQAqDgMBAAIECyAHRQ0DDAILIAANAQwCCyAFRQ0BCyADKAIEIQAgA0EANgIEIAMgACABEC8iAEUNAiADQeIANgIcIAMgATYCFCADIAA2AgxBACECDI0BCyADKAIEIQAgA0EANgIEIAMgACABEC8iAEUNfSADQeMANgIcIAMgATYCFCADIAA2AgxBACECDIwBCyADKAIEIQAgA0EANgIEIAMgACABEC8iAEUNeyADQeQANgIcIAMgATYCFCADIAA2AgwMiwELQdQAIQIMcQsgAy0AKUEiRg2GAUHTACECDHALQQAhAAJAIAMoAjgiAkUNACACKAJEIgJFDQAgAyACEQAAIQALIABFBEBB1QAhAgxwCyAAQRVHBEAgA0EANgIcIAMgATYCFCADQaQNNgIQIANBITYCDEEAIQIMiQELIANB4QA2AhwgAyABNgIUIANB0Bo2AhAgA0EVNgIMQQAhAgyIAQsgASAERgRAQeAAIQIMiAELAkACQAJAAkACQCABLQAAQQprDgQBBAQABAsgAUEBaiEBDAELIAFBAWohASADQS9qLQAAQQFxRQ0BC0HSACECDHALIANBADYCHCADIAE2AhQgA0G2ETYCECADQQk2AgxBACECDIgBCyADQQA2AhwgAyABNgIUIANBthE2AhAgA0EJNgIMQQAhAgyHAQsgASAERgRAQd8AIQIMhwELIAEtAABBCkYEQCABQQFqIQEMCQsgAy0ALkHAAHENCCADQQA2AhwgAyABNgIUIANBthE2AhAgA0ECNgIMQQAhAgyGAQsgASAERgRAQd0AIQIMhgELIAEtAAAiAkENRgRAIAFBAWohAUHQACECDG0LIAEhACACQQlrDgQFAQEFAQsgBCABIgBGBEBB3AAhAgyFAQsgAC0AAEEKRw0AIABBAWoMAgtBACECIANBADYCHCADIAA2AhQgA0HKLTYCECADQQc2AgwMgwELIAEgBEYEQEHbACECDIMBCwJAIAEtAABBCWsOBAMAAAMACyABQQFqCyEBQc4AIQIMaAsgASAERgRAQdoAIQIMgQELIAEtAABBCWsOBAABAQABC0EAIQIgA0EANgIcIANBmhI2AhAgA0EHNgIMIAMgAUEBajYCFAx/CyADQYASOwEqQQAhAAJAIAMoAjgiAkUNACACKAI4IgJFDQAgAyACEQAAIQALIABFDQAgAEEVRw0BIANB2QA2AhwgAyABNgIUIANB6ho2AhAgA0EVNgIMQQAhAgx+C0HNACECDGQLIANBADYCHCADIAE2AhQgA0HJDTYCECADQRo2AgxBACECDHwLIAEgBEYEQEHZACECDHwLIAEtAABBIEcNPSABQQFqIQEgAy0ALkEBcQ09IANBADYCHCADIAE2AhQgA0HCHDYCECADQR42AgxBACECDHsLIAEgBEYEQEHYACECDHsLAkACQAJAAkACQCABLQAAIgBBCmsOBAIDAwABCyABQQFqIQFBLCECDGULIABBOkcNASADQQA2AhwgAyABNgIUIANB5xE2AhAgA0EKNgIMQQAhAgx9CyABQQFqIQEgA0Evai0AAEEBcUUNcyADLQAyQYABcUUEQCADQTJqIQIgAxA1QQAhAAJAIAMoAjgiBkUNACAGKAIoIgZFDQAgAyAGEQAAIQALAkACQCAADhZNTEsBAQEBAQEBAQEBAQEBAQEBAQEAAQsgA0EpNgIcIAMgATYCFCADQawZNgIQIANBFTYCDEEAIQIMfgsg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c3BvbnNlIHN0YXR1cwBFeHBlY3RlZCBMRiBhZnRlciBoZWFkZXJzAEludmFsaWQgY2hhcmFjdGVyIGluIGNodW5rIGV4dGVuc2lvbnMAVXNlciBjYWxsYmFjayBlcnJvcgBgb25fcmVzZXRgIGNhbGxiYWNrIGVycm9yAGBvbl9jaHVua19oZWFkZXJgIGNhbGxiYWNrIGVycm9yAGBvbl9tZXNzYWdlX2JlZ2luYCBjYWxsYmFjayBlcnJvcgBgb25fY2h1bmtfZXh0ZW5zaW9uX3ZhbHVlYCBjYWxsYmFjayBlcnJvcgBgb25fc3RhdHVzX2NvbXBsZXRlYCBjYWxsYmFjayBlcnJvcgBgb25fdmVyc2lvbl9jb21wbGV0ZWAgY2FsbGJhY2sgZXJyb3IAYG9uX3VybF9jb21wbGV0ZWAgY2FsbGJhY2sgZXJyb3IAYG9uX3Byb3RvY29sX2NvbXBsZXRlYCBjYWxsYmFjayBlcnJvcgBgb25fY2h1bmtfY29tcGxldGVgIGNhbGxiYWNrIGVycm9yAGBvbl9oZWFkZXJfdmFsdWVfY29tcGxldGVgIGNhbGxiYWNrIGVycm9yAGBvbl9tZXNzYWdlX2NvbXBsZXRlYCBjYWxsYmFjayBlcnJvcgBgb25fbWV0aG9kX2NvbXBsZXRlYCBjYWxsYmFjayBlcnJvcgBgb25faGVhZGVyX2ZpZWxkX2NvbXBsZXRlYCBjYWxsYmFjayBlcnJvcgBgb25fY2h1bmtfZXh0ZW5zaW9uX25hbWVgIGNhbGxiYWNrIGVycm9yAFVuZXhwZWN0ZWQgY2hhciBpbiB1cmwgc2VydmVyAEludmFsaWQgaGVhZGVyIHZhbHVlIGNoYXIASW52YWxpZCBoZWFkZXIgZmllbGQgY2hhcgBTcGFuIGNhbGxiYWNrIGVycm9yIGluIG9uX3ZlcnNpb24ASW52YWxpZCBtaW5vciB2ZXJzaW9uAEludmFsaWQgbWFqb3IgdmVyc2lvbgBFeHBlY3RlZCBzcGFjZSBhZnRlciB2ZXJzaW9uAEV4cGVjdGVkIENSTEYgYWZ0ZXIgdmVyc2lvbgBJbnZhbGlkIEhUVFAgdmVyc2lvbgBJbnZhbGlkIGhlYWRlciB0b2tlbgBTcGFuIGNhbGxiYWNrIGVycm9yIGluIG9uX3VybABJbnZhbGlkIGNoYXJhY3RlcnMgaW4gdXJsAFVuZXhwZWN0ZWQgc3RhcnQgY2hhciBpbiB1cmwARG91YmxlIEAgaW4gdXJsAFNwYW4gY2FsbGJhY2sgZXJyb3IgaW4gb25fcHJvdG9jb2wARW1wdHkgQ29udGVudC1MZW5ndGgASW52YWxpZCBjaGFyYWN0ZXIgaW4gQ29udGVudC1MZW5ndGgAVHJhbnNmZXItRW5jb2RpbmcgY2FuJ3QgYmUgcHJlc2VudCB3aXRoIENvbnRlbnQtTGVuZ3RoAER1cGxpY2F0ZSBDb250ZW50LUxlbmd0aABJbnZhbGlkIGNoYXIgaW4gdXJsIHBhdGgAQ29udGVudC1MZW5ndGggY2FuJ3QgYmUgcHJlc2VudCB3aXRoIFRyYW5zZmVyLUVuY29kaW5nAE1pc3NpbmcgZXhwZWN0ZWQgQ1IgYWZ0ZXIgY2h1bmsgc2l6ZQBFeHBlY3RlZCBMRiBhZnRlciBjaHVuayBzaXplAEludmFsaWQgY2hhcmFjdGVyIGluIGNodW5rIHNpemUAU3BhbiBjYWxsYmFjayBlcnJvciBpbiBvbl9oZWFkZXJfdmFsdWUAU3BhbiBjYWxsYmFjayBlcnJvciBpbiBvbl9jaHVua19leHRlbnNpb25fdmFsdWUASW52YWxpZCBjaGFyYWN0ZXIgaW4gY2h1bmsgZXh0ZW5zaW9ucyB2YWx1ZQBVbmV4cGVjdGVkIHdoaXRlc3BhY2UgYWZ0ZXIgaGVhZGVyIHZhbHVlAE1pc3NpbmcgZXhwZWN0ZWQgQ1IgYWZ0ZXIgaGVhZGVyIHZhbHVlAE1pc3NpbmcgZXhwZWN0ZWQgTEYgYWZ0ZXIgaGVhZGVyIHZhbHVlAEludmFsaWQgYFRyYW5zZmVyLUVuY29kaW5nYCBoZWFkZXIgdmFsdWUATWlzc2luZyBleHBlY3RlZCBDUiBhZnRlciBjaHVuayBleHRlbnNpb24gdmFsdWUASW52YWxpZCBjaGFyYWN0ZXIgaW4gY2h1bmsgZXh0ZW5zaW9ucyBxdW90ZSB2YWx1ZQBJbnZhbGlkIHF1b3RlZC1wYWlyIGluIGNodW5rIGV4dGVuc2lvbnMgcXVvdGVkIHZhbHVlAEludmFsaWQgY2hhcmFjdGVyIGluIGNodW5rIGV4dGVuc2lvbnMgcXVvdGVkIHZhbHVlAFBhdXNlZCBieSBvbl9oZWFkZXJzX2NvbXBsZXRlAEludmFsaWQgRU9GIHN0YXRlAG9uX3Jlc2V0IHBhdXNlAG9uX2NodW5rX2hlYWRlciBwYXVzZQBvbl9tZXNzYWdlX2JlZ2luIHBhdXNlAG9uX2NodW5rX2V4dGVuc2lvbl92YWx1ZSBwYXVzZQBvbl9zdGF0dXNfY29tcGxldGUgcGF1c2UAb25fdmVyc2lvbl9jb21wbGV0ZSBwYXVzZQBvbl91cmxfY29tcGxldGUgcGF1c2UAb25fcHJvdG9jb2xfY29tcGxldGUgcGF1c2UAb25fY2h1bmtfY29tcGxldGUgcGF1c2UAb25faGVhZGVyX3ZhbHVlX2NvbXBsZXRlIHBhdXNlAG9uX21lc3NhZ2VfY29tcGxldGUgcGF1c2UAb25fbWV0aG9kX2NvbXBsZXRlIHBhdXNlAG9uX2hlYWRlcl9maWVsZF9jb21wbGV0ZSBwYXVzZQBvbl9jaHVua19leHRlbnNpb25fbmFtZSBwYXVzZQBVbmV4cGVjdGVkIHNwYWNlIGFmdGVyIHN0YXJ0IGxpbmUATWlzc2luZyBleHBlY3RlZCBDUiBhZnRlciByZXNwb25zZSBsaW5lAFNwYW4gY2FsbGJhY2sgZXJyb3IgaW4gb25fY2h1bmtfZXh0ZW5zaW9uX25hbWUASW52YWxpZCBjaGFyYWN0ZXIgaW4gY2h1bmsgZXh0ZW5zaW9ucyBuYW1lAE1pc3NpbmcgZXhwZWN0ZWQgQ1IgYWZ0ZXIgY2h1bmsgZXh0ZW5zaW9uIG5hbWUASW52YWxpZCBzdGF0dXMgY29kZQBQYXVzZSBvbiBDT05ORUNUL1VwZ3JhZGUAUGF1c2Ugb24gUFJJL1VwZ3JhZGUARXhwZWN0ZWQgSFRUUC8yIENvbm5lY3Rpb24gUHJlZmFjZQBTcGFuIGNhbGxiYWNrIGVycm9yIGluIG9uX21ldGhvZABFeHBlY3RlZCBzcGFjZSBhZnRlciBtZXRob2QAU3BhbiBjYWxsYmFjayBlcnJvciBpbiBvbl9oZWFkZXJfZmllbGQAUGF1c2VkAEludmFsaWQgd29yZCBlbmNvdW50ZXJlZABJbnZhbGlkIG1ldGhvZCBlbmNvdW50ZXJlZABNaXNzaW5nIGV4cGVjdGVkIENSIGFmdGVyIGNodW5rIGRhdGEARXhwZWN0ZWQgTEYgYWZ0ZXIgY2h1bmsgZGF0YQBVbmV4cGVjdGVkIGNoYXIgaW4gdXJsIHNjaGVtYQBSZXF1ZXN0IGhhcyBpbnZhbGlkIGBUcmFuc2Zlci1FbmNvZGluZ2AARGF0YSBhZnRlciBgQ29ubmVjdGlvbjogY2xvc2VgAFNXSVRDSF9QUk9YWQBVU0VfUFJPWFkATUtBQ1RJVklUWQBVTlBST0NFU1NBQkxFX0VOVElUWQBRVUVSWQBDT1BZAE1PVkVEX1BFUk1BTkVOVExZAFRPT19FQVJMWQBOT1RJRlkARkFJTEVEX0RFUEVOREVOQ1kAQkFEX0dBVEVXQVkAUExBWQBQVVQAQ0hFQ0tPVVQAR0FURVdBWV9USU1FT1VUAFJFUVVFU1RfVElNRU9VVABORVRXT1JLX0NPTk5FQ1RfVElNRU9VVABDT05ORUNUSU9OX1RJTUVPVVQATE9HSU5fVElNRU9VVABORVRXT1JLX1JFQURfVElNRU9VVABQT1NUAE1JU0RJUkVDVEVEX1JFUVVFU1QAQ0xJRU5UX0NMT1NFRF9SRVFVRVNUAENMSUVOVF9DTE9TRURfTE9BRF9CQUxBTkNFRF9SRVFVRVNUAEJBRF9SRVFVRVNUAEhUVFBfUkVRVUVTVF9TRU5UX1RPX0hUVFBTX1BPUlQAUkVQT1JUAElNX0FfVEVBUE9UAFJFU0VUX0NPTlRFTlQATk9fQ09OVEVOVABQQVJUSUFMX0NPTlRFTlQASFBFX0lOVkFMSURfQ09OU1RBTlQASFBFX0NCX1JFU0VUAEdFVABIUEVfU1RSSUNUAENPTkZMSUNUAFRFTVBPUkFSWV9SRURJUkVDVABQRVJNQU5FTlRfUkVESVJFQ1QAQ09OTkVDVABNVUxUSV9TVEFUVVMASFBFX0lOVkFMSURfU1RBVFVTAFRPT19NQU5ZX1JFUVVFU1RTAEVBUkxZX0hJTlRTAFVOQVZBSUxBQkxFX0ZPUl9MRUdBTF9SRUFTT05TAE9QVElPTlMAU1dJVENISU5HX1BST1RPQ09MUwBWQVJJQU5UX0FMU09fTkVHT1RJQVRFUwBNVUxUSVBMRV9DSE9JQ0VTAElOVEVSTkFMX1NFUlZFUl9FUlJPUgBXRUJfU0VSVkVSX1VOS05PV05fRVJST1IAUkFJTEdVTl9FUlJPUgBJREVOVElUWV9QUk9WSURFUl9BVVRIRU5USUNBVElPTl9FUlJPUgBTU0xfQ0VSVElGSUNBVEVfRVJST1IASU5WQUxJRF9YX0ZPUldBUkRFRF9GT1IAU0VUX1BBUkFNRVRFUgBHRVRfUEFSQU1FVEVSAEhQRV9VU0VSAFNFRV9PVEhFUgBIUEVfQ0JfQ0hVTktfSEVBREVSAEV4cGVjdGVkIExGIGFmdGVyIENSAE1LQ0FMRU5EQVIAU0VUVVAAV0VCX1NFUlZFUl9JU19ET1dOAFRFQVJET1dOAEhQRV9DTE9TRURfQ09OTkVDVElPTgBIRVVSSVNUSUNfRVhQSVJBVElPTgBESVNDT05ORUNURURfT1BFUkFUSU9OAE5PTl9BVVRIT1JJVEFUSVZFX0lORk9STUFUSU9OAEhQRV9JTlZBTElEX1ZFUlNJT04ASFBFX0NCX01FU1NBR0VfQkVHSU4AU0lURV9JU19GUk9aRU4ASFBFX0lOVkFMSURfSEVBREVSX1RPS0VOAElOVkFMSURfVE9LRU4ARk9SQklEREVOAEVOSEFOQ0VfWU9VUl9DQUxNAEhQRV9JTlZBTElEX1VSTABCTE9DS0VEX0JZX1BBUkVOVEFMX0NPTlRST0wATUtDT0wAQUNMAEhQRV9JTlRFUk5BTABSRVFVRVNUX0hFQURFUl9GSUVMRFNfVE9PX0xBUkdFX1VOT0ZGSUNJQUwASFBFX09LAFVOTElOSwBVTkxPQ0sAUFJJAFJFVFJZX1dJVEgASFBFX0lOVkFMSURfQ09OVEVOVF9MRU5HVEgASFBFX1VORVhQRUNURURfQ09OVEVOVF9MRU5HVEgARkxVU0gAUFJPUFBBVENIAE0tU0VBUkNIAFVSSV9UT09fTE9ORwBQUk9DRVNTSU5HAE1JU0NFTExBTkVPVVNfUEVSU0lTVEVOVF9XQVJOSU5HAE1JU0NFTExBTkVPVVNfV0FSTklORwBIUEVfSU5WQUxJRF9UUkFOU0ZFUl9FTkNPRElORwBFeHBlY3RlZCBDUkxGAEhQRV9JTlZBTElEX0NIVU5LX1NJWkUATU9WRQBDT05USU5VRQBIUEVfQ0JfU1RBVFVTX0NPTVBMRVRFAEhQRV9DQl9IRUFERVJTX0NPTVBMRVRFAEhQRV9DQl9WRVJTSU9OX0NPTVBMRVRFAEhQRV9DQl9VUkxfQ09NUExFVEUASFBFX0NCX1BST1RPQ09MX0NPTVBMRVRFAEhQRV9DQl9DSFVOS19DT01QTEVURQBIUEVfQ0JfSEVBREVSX1ZBTFVFX0NPTVBMRVRFAEhQRV9DQl9DSFVOS19FWFRFTlNJT05fVkFMVUVfQ09NUExFVEUASFBFX0NCX0NIVU5LX0VYVEVOU0lPTl9OQU1FX0NPTVBMRVRFAEhQRV9DQl9NRVNTQUdFX0NPTVBMRVRFAEhQRV9DQl9NRVRIT0RfQ09NUExFVEUASFBFX0NCX0hFQURFUl9GSUVMRF9DT01QTEVURQBERUxFVEUASFBFX0lOVkFMSURfRU9GX1NUQVRFAElOVkFMSURfU1NMX0NFUlRJRklDQVRFAFBBVVNFAE5PX1JFU1BPTlNFAFVOU1VQUE9SVEVEX01FRElBX1RZUEUAR09ORQBOT1RfQUNDRVBUQUJMRQBTRVJWSUNFX1VOQVZBSUxBQkxFAFJBTkdFX05PVF9TQVRJU0ZJQUJMRQBPUklHSU5fSVNfVU5SRUFDSEFCTEUAUkVTUE9OU0VfSVNfU1RBTEUAUFVSR0UATUVSR0UAUkVRVUVTVF9IRUFERVJfRklFTERTX1RPT19MQVJHRQBSRVFVRVNUX0hFQURFUl9UT09fTEFSR0UAUEFZTE9BRF9UT09fTEFSR0UASU5TVUZGSUNJRU5UX1NUT1JBR0UASFBFX1BBVVNFRF9VUEdSQURFAEhQRV9QQVVTRURfSDJfVVBHUkFERQBTT1VSQ0UAQU5OT1VOQ0UAVFJBQ0UASFBFX1VORVhQRUNURURfU1BBQ0UAREVTQ1JJQkUAVU5TVUJTQ1JJQkUAUkVDT1JEAEhQRV9JTlZBTElEX01FVEhPRABOT1RfRk9VTkQAUFJPUEZJTkQAVU5CSU5EAFJFQklORABVTkFVVEhPUklaRUQATUVUSE9EX05PVF9BTExPV0VEAEhUVFBfVkVSU0lPTl9OT1RfU1VQUE9SVEVEAEFMUkVBRFlfUkVQT1JURUQAQUNDRVBURUQATk9UX0lNUExFTUVOVEVEAExPT1BfREVURUNURUQASFBFX0NSX0VYUEVDVEVEAEhQRV9MRl9FWFBFQ1RFRABDUkVBVEVEAElNX1VTRUQASFBFX1BBVVNFRABUSU1FT1VUX09DQ1VSRUQAUEFZTUVOVF9SRVFVSVJFRABQUkVDT05ESVRJT05fUkVRVUlSRUQAUFJPWFlfQVVUSEVOVElDQVRJT05fUkVRVUlSRUQATkVUV09SS19BVVRIRU5USUNBVElPTl9SRVFVSVJFRABMRU5HVEhfUkVRVUlSRUQAU1NMX0NFUlRJRklDQVRFX1JFUVVJUkVEAFVQR1JBREVfUkVRVUlSRUQAUEFHRV9FWFBJUkVEAFBSRUNPTkRJVElPTl9GQUlMRUQARVhQRUNUQVRJT05fRkFJTEVEAFJFVkFMSURBVElPTl9GQUlMRUQAU1NMX0hBTkRTSEFLRV9GQUlMRUQATE9DS0VEAFRSQU5TRk9STUFUSU9OX0FQUExJRUQATk9UX01PRElGSUVEAE5PVF9FWFRFTkRFRABCQU5EV0lEVEhfTElNSVRfRVhDRUVERUQAU0lURV9JU19PVkVSTE9BREVEAEhFQUQARXhwZWN0ZWQgSFRUUC8sIFJUU1AvIG9yIElDRS8A5xUAAK8VAACkEgAAkhoAACYWAACeFAAA2xkAAHkVAAB+EgAA/hQAADYVAAALFgAA2BYAAPMSAABCGAAArBYAABIVAAAUFwAA7xcAAEgUAABxFwAAshoAAGsZAAB+GQAANRQAAIIaAABEFwAA/RYAAB4YAACHFwAAqhkAAJMSAAAHGAAALBcAAMoXAACkFwAA5xUAAOcVAABYFwAAOxgAAKASAAAtHAAAwxEAAEgRAADeEgAAQhMAAKQZAAD9EAAA9xUAAKUVAADvFgAA+BkAAEoWAABWFgAA9RUAAAoaAAAIGgAAARoAAKsVAABCEgAA1xAAAEwRAAAFGQAAVBYAAB4RAADKGQAAyBkAAE4WAAD/GAAAcRQAAPAVAADuFQAAlBkAAPwVAAC/GQAAmxkAAHwUAABDEQAAcBgAAJUUAAAnFAAAGRQAANUSAADUGQAARBYAAPcQAEG5OwsBAQBB0DsL4AEBAQIBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEDAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQABAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQBBuj0LBAEAAAIAQdE9C14DBAMDAwMDAAADAwADAwADAwMDAwMDAwMDAAUAAAAAAAMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAAAAAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAAwADAEG6PwsEAQAAAgBB0T8LXgMAAwMDAwMAAAMDAAMDAAMDAwMDAwMDAwMABAAFAAAAAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAAAADAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwADAAMAQbDBAAsNbG9zZWVlcC1hbGl2ZQBBycEACwEBAEHgwQAL4AEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQABAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQBBycMACwEBAEHgwwAL5wEBAQEBAQEBAQEBAQECAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQABAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAWNodW5rZWQAQfHFAAteAQABAQEBAQAAAQEAAQEAAQEBAQEBAQEBAQAAAAAAAAABAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQAAAAEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAAEAAQBB0McACyFlY3Rpb25lbnQtbGVuZ3Rob25yb3h5LWNvbm5lY3Rpb24AQYDIAAsgcmFuc2Zlci1lbmNvZGluZ3BncmFkZQ0KDQpTTQ0KDQoAQanIAAsFAQIAAQMAQcDIAAtfBAUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUAQanKAAsFAQIAAQMAQcDKAAtfBAUFBgUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUAQanMAAsEAQAAAQBBwcwAC14CAgACAgICAgICAgICAgICAgICAgICAgICAgICAgIAAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAEGpzgALBQECAAEDAEHAzgALXwQFAAAFBQUFBQUFBQUFBQYFBQUFBQUFBQUFBQUABQAHCAUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQAFAAUABQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUAAAAFAEGp0AALBQEBAAEBAEHA0AALAQEAQdrQAAtBAgAAAAAAAAMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAAAAAAAAAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAQanSAAsFAQEAAQEAQcDSAAsBAQBBytIACwYCAAAAAAIAQeHSAAs6AwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAAAAAAAADAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwBBoNQAC50BTk9VTkNFRUNLT1VUTkVDVEVURUNSSUJFTFVTSEVURUFEU0VBUkNIUkdFQ1RJVklUWUxFTkRBUlZFT1RJRllQVElPTlNDSFNFQVlTVEFUQ0hHRVVFUllPUkRJUkVDVE9SVFJDSFBBUkFNRVRFUlVSQ0VCU0NSSUJFQVJET1dOQUNFSU5ETktDS1VCU0NSSUJFVFRQQ0VUU1BBRFRQLw==",wasmBuffer;Object.defineProperty(module,"exports",{get:()=>wasmBuffer||(wasmBuffer=Buffer2.from(wasmBase64,"base64"))})}});var require_llhttp_simd_wasm=__commonJS({"packages/agent-forge/node_modules/undici/lib/llhttp/llhttp_simd-wasm.js"(exports,module){"use strict";var{Buffer:Buffer2}=__require("node:buffer"),wasmBase64="AGFzbQEAAAABJwdgAX8Bf2ADf39/AX9gAn9/AGABfwBgBH9/f38Bf2AAAGADf39/AALLAQgDZW52GHdhc21fb25faGVhZGVyc19jb21wbGV0ZQAEA2VudhV3YXNtX29uX21lc3NhZ2VfYmVnaW4AAANlbnYLd2FzbV9vbl91cmwAAQNlbnYOd2FzbV9vbl9zdGF0dXMAAQNlbnYUd2FzbV9vbl9oZWFkZXJfZmllbGQAAQNlbnYUd2FzbV9vbl9oZWFkZXJfdmFsdWUAAQNlbnYMd2FzbV9vbl9ib2R5AAEDZW52GHdhc21fb25fbWVzc2FnZV9jb21wbGV0ZQAAAzU0BQYAAAMAAAAAAAADAQMAAwMDAAACAAAAAAICAgICAgICAgIBAQEBAQEBAQEBAwAAAwAAAAQFAXABExMFAwEAAgYIAX8BQcDZBAsHxQcoBm1lbW9yeQIAC19pbml0aWFsaXplAAgZX19pbmRpcmVjdF9mdW5jdGlvbl90YWJsZQEAC2xsaHR0cF9pbml0AAkYbGxodHRwX3Nob3VsZF9rZWVwX2FsaXZlADcMbGxodHRwX2FsbG9jAAsGbWFsbG9jADkLbGxodHRwX2ZyZWUADARmcmVlAAwPbGxodHRwX2dldF90eXBlAA0VbGxodHRwX2dldF9odHRwX21ham9yAA4VbGxodHRwX2dldF9odHRwX21pbm9yAA8RbGxodHRwX2dldF9tZXRob2QAEBZsbGh0dHBfZ2V0X3N0YXR1c19jb2RlABESbGxodHRwX2dldF91cGdyYWRlABIMbGxodHRwX3Jlc2V0ABMObGxodHRwX2V4ZWN1dGUAFBRsbGh0dHBfc2V0dGluZ3NfaW5pdAAVDWxsaHR0cF9maW5pc2gAFgxsbGh0dHBfcGF1c2UAFw1sbGh0dHBfcmVzdW1lABgbbGxodHRwX3Jlc3VtZV9hZnRlcl91cGdyYWRlABkQbGxodHRwX2dldF9lcnJubwAaF2xsaHR0cF9nZXRfZXJyb3JfcmVhc29uABsXbGxodHRwX3NldF9lcnJvcl9yZWFzb24AHBRsbGh0dHBfZ2V0X2Vycm9yX3BvcwAdEWxsaHR0cF9lcnJub19uYW1lAB4SbGxodHRwX21ldGhvZF9uYW1lAB8SbGxodHRwX3N0YXR1c19uYW1lACAabGxodHRw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AXRrQT5qIQILIAEgAjYCHCABQgA3AhAgAkECdEH01wBqIQACQEHI1QAoAgAiA0EBIAJ0IgdxRQRAIAAgATYCAEHI1QAgAyAHcjYCACABIAA2AhggASABNgIIIAEgATYCDAwBCyAEQRkgAkEBdmtBACACQR9HG3QhAiAAKAIAIQACQANAIAAiAygCBEF4cSAERg0BIAJBHXYhACACQQF0IQIgAyAAQQRxakEQaiIHKAIAIgANAAsgByABNgIAIAEgAzYCGCABIAE2AgwgASABNgIIDAELIAMoAggiACABNgIMIAMgATYCCCABQQA2AhggASADNgIMIAEgADYCCAtB5NUAQeTVACgCAEEBayIAQX8gABs2AgALCwcAIAAtACgLBwAgAC0AKgsHACAALQArCwcAIAAtACkLBwAgAC8BNAsHACAALQAwC0ABBH8gACgCGCEBIAAvAS4hAiAALQAoIQMgACgCOCEEIAAQOCAAIAQ2AjggACADOgAoIAAgAjsBLiAAIAE2AhgLhocCAwd/A34BeyABIAJqIQQCQCAAIgMoAgwiAA0AIAMoAgQEQCADIAE2AgQLIwBBEGsiCSQAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACfwJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQCADKAIcIgJBAmsO/AEB+QECAwQFBgcICQoLDA0ODxAREvgBE/cBFBX2ARYX9QEYGRobHB0eHyD9AfsBIfQBIiMkJSYnKCkqK/MBLC0uLzAxMvIB8QEzNPAB7wE1Njc4OTo7PD0+P0BBQkNERUZHSElKS0xNTk/6AVBRUlPuAe0BVOwBVesBVldYWVrqAVtcXV5fYGFiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6e3x9fn+AAYEBggGDAYQBhQGGAYcBiAGJAYoBiwGMAY0BjgGPAZABkQGSAZMBlAGVAZYBlwGYAZkBmgGbAZwBnQGeAZ8BoAGhAaIBowGkAaUBpgGnAagBqQGqAasBrAGtAa4BrwGwAbEBsgGzAbQBtQG2AbcBuAG5AboBuwG8Ab0BvgG/AcABwQHCAcMBxAHFAcYBxwHIAckBygHLAcwBzQHOAekB6AHPAecB0AHmAdEB0gHTAdQB5QHVAdYB1wHYAdkB2gHbAdwB3QHeAd8B4AHhAeIB4wEA/AELQQAM4wELQQ4M4gELQQ0M4QELQQ8M4AELQRAM3wELQRMM3gELQRQM3QELQRUM3AELQRYM2wELQRcM2gELQRgM2QELQRkM2AELQRoM1wELQRsM1gELQRwM1QELQR0M1AELQR4M0wELQR8M0gELQSAM0QELQSEM0AELQQgMzwELQSIMzgELQSQMzQELQSMMzAELQQcMywELQSUMygELQSYMyQELQScMyAELQSgMxwELQRIMxgELQREMxQELQSkMxAELQSoMwwELQSsMwgELQSwMwQELQd4BDMABC0EuDL8BC0EvDL4BC0EwDL0BC0ExDLwBC0EyDLsBC0EzDLoBC0E0DLkBC0HfAQy4AQtBNQy3AQtBOQy2AQtBDAy1AQtBNgy0AQtBNwyzAQtBOAyyAQtBPgyxAQtBOgywAQtB4AEMrwELQQsMrgELQT8MrQELQTsMrAELQQoMqwELQTwMqgELQT0MqQELQeEBDKgBC0HBAAynAQtBwAAMpgELQcIADKUBC0EJDKQBC0EtDKMBC0HDAAyiAQtBxAAMoQELQcUADKABC0HGAAyfAQtBxwAMngELQcgADJ0BC0HJAAycAQtBygAMmwELQcsADJoBC0HMAAyZAQtBzQAMmAELQc4ADJcBC0HPAAyWAQtB0AAMlQELQdEADJQBC0HSAAyTAQtB0wAMkgELQdUADJEBC0HUAAyQAQtB1gAMjwELQdcADI4BC0HYAAyNAQtB2QAMjAELQdoADIsBC0HbAAyKAQtB3AAMiQELQd0ADIgBC0HeAAyHAQtB3wAMhgELQeAADIUBC0HhAAyEAQtB4gAMgwELQeMADIIBC0HkAAyBAQtB5QAMgAELQeIBDH8LQeYADH4LQecADH0LQQYMfAtB6AAMewtBBQx6C0HpAAx5C0EEDHgLQeoADHcLQesADHYLQewADHULQe0ADHQLQQMMcwtB7gAMcgtB7wAMcQtB8AAMcAtB8gAMbwtB8QAMbgtB8wAMbQtB9AAMbAtB9QAMawtB9gAMagtBAgxpC0H3AAxoC0H4AAxnC0H5AAxmC0H6AAxlC0H7AAxkC0H8AAxjC0H9AAxiC0H+AAxhC0H/AAxgC0GAAQxfC0GBAQxeC0GCAQxdC0GDAQxcC0GEAQxbC0GFAQxaC0GGAQxZC0GHAQxYC0GIAQxXC0GJAQxWC0GKAQxVC0GLAQxUC0GMAQxTC0GNAQxSC0GOAQxRC0GPAQxQC0GQAQxPC0GRAQxOC0GSAQxNC0GTAQxMC0GUAQxLC0GVAQxKC0GWAQxJC0GXAQxIC0GYAQxHC0GZAQxGC0GaAQxFC0GbAQxEC0GcAQxDC0GdAQxCC0GeAQxBC0GfAQxAC0GgAQw/C0GhAQw+C0GiAQw9C0GjAQw8C0GkAQw7C0GlAQw6C0GmAQw5C0GnAQw4C0GoAQw3C0GpAQw2C0GqAQw1C0GrAQw0C0GsAQwzC0GtAQwyC0GuAQwxC0GvAQwwC0GwAQwvC0GxAQwuC0GyAQwtC0GzAQwsC0G0AQwrC0G1AQwqC0G2AQwpC0G3AQwoC0G4AQwnC0G5AQwmC0G6AQwlC0G7AQwkC0G8AQwjC0G9AQwiC0G+AQwhC0G/AQwgC0HAAQwfC0HBAQweC0HCAQwdC0EBDBwLQcMBDBsLQcQBDBoLQcUBDBkLQcYBDBgLQccBDBcLQcgBDBYLQckBDBULQcoBDBQLQcsBDBMLQcwBDBILQc0BDBELQc4BDBALQc8BDA8LQdABDA4LQdEBDA0LQdIBDAwLQdMBDAsLQdQBDAoLQdUBDAkLQdYBDAgLQeMBDAcLQdcBDAYLQdgBDAULQdkBDAQLQdoBDAMLQdsBDAILQd0BDAELQdwBCyECA0ACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAIAMCfwJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACfwJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACfwJAAkACQAJAAkACQAJAAn8CQAJAAkACfwJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkAgAwJ/AkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJ/AkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkAC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A0EXNgIcIAMgADYCDCADIAFBAWo2AhQM+AILIABBFUYNI0EAIQIgA0EANgIcIAMgATYCFCADQdYMNgIQIANBIzYCDAz3AgsgAygCBCEAQQAhAiADQQA2AgQgAyAAIAEQNCIARQRAIAFBAWohAQwdCyADQRk2AhwgAyAANgIMIAMgAUEBajYCFAz2AgsgAygCBCEAQQAhAiADQQA2AgQgAyAAIAEQNCIARQRAIAFBAWohAQzvAgsgA0EaNgIcIAMgADYCDCADIAFBAWo2AhQM9QILIABBFUYNH0EAIQIgA0EANgIcIAMgATYCFCADQdAPNgIQIANBIjYCDAz0AgsgAygCBCEAIANBADYCBCADIAAgARAzIgBFBEAgAUEBaiEBDBsLIANBHDYCHCADIAA2AgwgAyABQQFqNgIUQQAhAgzzAgsgAygCBCEAIANBADYCBCADIAAgARAzIgBFBEAgAUEBaiEBDOsCCyADQR02AhwgAyAANgIMIAMgAUEBajYCFEEAIQIM8gILIABBO0cNASABQQFqIQELQSYhAgzXAgtBACECIANBADYCHCADIAE2AhQgA0GfFTYCECADQQw2AgwM7wILIAEgBEcEQANAIAEtAABBIEcNhAIgBCABQQFqIgFHDQALQSwhAgzvAgtBLCECDO4CCyABIARGBEBBNCECDO4CCwJAAkADQAJAIAEtAABBCmsOBAIAAAMACyAEIAFBAWoiAUcNAAtBNCECDO8CCyADKAIEIQAgA0EANgIEIAMgACABEDEiAEUNnwIgA0EyNgIcIAMgATYCFCADIAA2AgxBACECDO4CCyADKAIEIQAgA0EANgIEIAMgACABEDEiAEUEQCABQQFqIQEMnwILIANBMjYCHCADIAA2AgwgAyABQQFqNgIUQQAhAgztAgsgASAERwRAAkADQCABLQAAQTBrIgBB/wFxQQpPBEBBOiECDNcCCyADKQMgIgtCmbPmzJmz5swZVg0BIAMgC0IKfiIKNwMgIAogAK1C/wGDIgtCf4VWDQEgAyAKIAt8NwMgIAQgAUEBaiIBRw0AC0HAACECDO4CCyADKAIEIQAgA0EANgIEIAMgACABQQFqIgEQMSIADRcM4gILQcAAIQIM7AILIAEgBEYEQEHJACECDOwCCwJAA0ACQCABLQAAQQlrDhgAAqICogKpAqICogKiAqICogKiAqICogKiAqICogKiAqICogKiAqICogKiAgCiAgsgBCABQQFqIgFHDQALQckAIQIM7AILIAFBAWohASADQS9qLQAAQQFxDaUCIANBADYCHCADIAE2AhQgA0GXEDYCECADQQo2AgxBACECDOsCCyABIARHBEADQCABLQAAQSBHDRUgBCABQQFqIgFHDQALQfgAIQIM6wILQfgAIQIM6gILIANBAjoAKAw4C0EAIQIgA0EANgIcIANBvws2AhAgA0ECNgIMIAMgAUEBajYCFAzoAgtBACECDM4CC0ENIQIMzQILQRMhAgzMAgtBFSECDMsCC0EWIQIMygILQRghAgzJAgtBGSECDMgCC0EaIQIMxwILQRshAgzGAgtBHCECDMUCC0EdIQIMxAILQR4hAgzDAgtBHyECDMICC0EgIQIMwQILQSIhAgzAAgtBIyECDL8CC0ElIQIMvgILQeUAIQIMvQILIANBPTYCHCADIAE2AhQgAyAANgIMQQAhAgzVAgsgA0EbNgIcIAMgATYCFCADQaQcNgIQIANBFTYCDEEAIQIM1AILIANBIDYCHCADIAE2AhQgA0GYGjYCECADQRU2AgxBACECDNMCCyADQRM2AhwgAyABNgIUIANBmBo2AhAgA0EVNgIMQQAhAgzSAgsgA0ELNgIcIAMgATYCFCADQZgaNgIQIANBFTYCDEEAIQIM0QILIANBEDYCHCADIAE2AhQgA0GYGjYCECADQRU2AgxBACECDNACCyADQSA2AhwgAyABNgIUIANBpBw2AhAgA0EVNgIMQQAhAgzPAgsgA0ELNgIcIAMgATYCFCADQaQcNgIQIANBFTYCDEEAIQIMzgILIANBDDYCHCADIAE2AhQgA0GkHDYCECADQRU2AgxBACECDM0CC0EAIQIgA0EANgIcIAMgATYCFCADQd0ONgIQIANBEjYCDAzMAgsCQANAAkAgAS0AAEEKaw4EAAICAAILIAQgAUEBaiIBRw0AC0H9ASECDMwCCwJAAkAgAy0ANkEBRw0AQQAhAAJAIAMoAjgiAkUNACACKAJgIgJFDQAgAyACEQAAIQALIABFDQAgAEEVRw0BIANB/AE2AhwgAyABNgIUIANB3Bk2AhAgA0EVNgIMQQAhAgzNAgtB3AEhAgyzAgsgA0EANgIcIAMgATYCFCADQfkLNgIQIANBHzYCDEEAIQIMywILAkACQCADLQAoQQFrDgIEAQALQdsBIQIMsgILQdQBIQIMsQILIANBAjoAMUEAIQACQCADKAI4IgJFDQAgAigCACICRQ0AIAMgAhEAACEACyAARQRAQd0BIQIMsQILIABBFUcEQCADQQA2AhwgAyABNgIUIANBtAw2AhAgA0EQNgIMQQAhAgzKAgsgA0H7ATYCHCADIAE2AhQgA0GBGjYCECADQRU2AgxBACECDMkCCyABIARGBEBB+gEhAgzJAgsgAS0AAEHIAEYNASADQQE6ACgLQcABIQIMrgILQdoBIQIMrQILIAEgBEcEQCADQQw2AgggAyABNgIEQdkBIQIMrQILQfkBIQIMxQILIAEgBEYEQEH4ASECDMUCCyABLQAAQcgARw0EIAFBAWohAUHYASECDKsCCyABIARGBEBB9wEhAgzEAgsCQAJAIAEtAABBxQBrDhAABQUFBQUFBQUFBQUFBQUBBQsgAUEBaiEBQdYBIQIMqwILIAFBAWohAUHXASECDKoCC0H2ASECIAEgBEYNwgIgAygCACIAIAQgAWtqIQUgASAAa0ECaiEGAkADQCABLQAAIABButUAai0AAEcNAyAAQQJGDQEgAEEBaiEAIAQgAUEBaiIBRw0ACyADIAU2AgAMwwILIAMoAgQhACADQgA3AwAgAyAAIAZBAWoiARAuIgBFBEBB4wEhAgyqAgsgA0H1ATYCHCADIAE2AhQgAyAANgIMQQAhAgzCAgtB9AEhAiABIARGDcECIAMoAgAiACAEIAFraiEFIAEgAGtBAWohBgJAA0AgAS0AACAAQbjVAGotAABHDQIgAEEBRg0BIABBAWohACAEIAFBAWoiAUcNAAsgAyAFNgIADMICCyADQYEEOwEoIAMoAgQhACADQgA3AwAgAyAAIAZBAWoiARAuIgANAwwCCyADQQA2AgALQQAhAiADQQA2AhwgAyABNgIUIANB5R82AhAgA0EINgIMDL8CC0HVASECDKUCCyADQfMBNgIcIAMgATYCFCADIAA2AgxBACECDL0CC0EAIQACQCADKAI4IgJFDQAgAigCQCICRQ0AIAMgAhEAACEACyAARQ1uIABBFUcEQCADQQA2AhwgAyABNgIUIANBgg82AhAgA0EgNgIMQQAhAgy9AgsgA0GPATYCHCADIAE2AhQgA0HsGzYCECADQRU2AgxBACECDLwCCyABIARHBEAgA0ENNgIIIAMgATYCBEHTASECDKMCC0HyASECDLsCCyABIARGBEBB8QEhAgy7AgsCQAJAAkAgAS0AAEHIAGsOCwABCAgICAgICAgCCAsgAUEBaiEBQdABIQIMowILIAFBAWohAUHRASECDKICCyABQQFqIQFB0gEhAgyhAgtB8AEhAiABIARGDbkCIAMoAgAiACAEIAFraiEGIAEgAGtBAmohBQNAIAEtAAAgAEG11QBqLQAARw0EIABBAkYNAyAAQQFqIQAgBCABQQFqIgFHDQALIAMgBjYCAAy5AgtB7wEhAiABIARGDbgCIAMoAgAiACAEIAFraiEGIAEgAGtBAWohBQNAIAEtAAAgAEGz1QBqLQAARw0DIABBAUYNAiAAQQFqIQAgBCABQQFqIgFHDQALIAMgBjYCAAy4AgtB7gEhAiABIARGDbcCIAMoAgAiACAEIAFraiEGIAEgAGtBAmohBQNAIAEtAAAgAEGw1QBqLQAARw0CIABBAkYNASAAQQFqIQAgBCABQQFqIgFHDQALIAMgBjYCAAy3AgsgAygCBCEAIANCADcDACADIAAgBUEBaiIBECsiAEUNAiADQewBNgIcIAMgATYCFCADIAA2AgxBACECDLYCCyADQQA2AgALIAMoAgQhACADQQA2AgQgAyAAIAEQKyIARQ2cAiADQe0BNgIcIAMgATYCFCADIAA2AgxBACECDLQCC0HPASECDJoCC0EAIQACQCADKAI4IgJFDQAgAigCNCICRQ0AIAMgAhEAACEACwJAIAAEQCAAQRVGDQEgA0EANgIcIAMgATYCFCADQeoNNgIQIANBJjYCDEEAIQIMtAILQc4BIQIMmgILIANB6wE2AhwgAyABNgIUIANBgBs2AhAgA0EVNgIMQQAhAgyyAgsgASAERgRAQesBIQIMsgILIAEtAABBL0YEQCABQQFqIQEMAQsgA0EANgIcIAMgATYCFCADQbI4NgIQIANBCDYCDEEAIQIMsQILQc0BIQIMlwILIAEgBEcEQCADQQ42AgggAyABNgIEQcwBIQIMlwILQeoBIQIMrwILIAEgBEYEQEHpASECDK8CCyABLQAAQTBrIgBB/wFxQQpJBEAgAyAAOgAqIAFBAWohAUHLASECDJYCCyADKAIEIQAgA0EANgIEIAMgACABEC8iAEUNlwIgA0HoATYCHCADIAE2AhQgAyAANgIMQQAhAgyuAgsgASAERgRAQecBIQIMrgILAkAgAS0AAEEuRgRAIAFBAWohAQwBCyADKAIEIQAgA0EANgIEIAMgACABEC8iAEUNmAIgA0HmATYCHCADIAE2AhQgAyAANgIMQQAhAgyuAgtBygEhAgyUAgsgASAERgRAQeUBIQIMrQILQQAhAEEBIQVBASEHQQAhAgJAAkACQAJAAkACfwJAAkACQAJAAkACQAJAIAEtAABBMGsOCgoJAAECAwQFBggLC0ECDAYLQQMMBQtBBAwEC0EFDAMLQQYMAgtBBwwBC0EICyECQQAhBUEAIQcMAgtBCSECQQEhAEEAIQVBACEHDAELQQAhBUEBIQILIAMgAjoAKyABQQFqIQECQAJAIAMtAC5BEHENAAJAAkACQCADLQAqDgMBAAIECyAHRQ0DDAILIAANAQwCCyAFRQ0BCyADKAIEIQAgA0EANgIEIAMgACABEC8iAEUNAiADQeIBNgIcIAMgATYCFCADIAA2AgxBACECDK8CCyADKAIEIQAgA0EANgIEIAMgACABEC8iAEUNmgIgA0HjATYCHCADIAE2AhQgAyAANgIMQQAhAgyuAgsgAygCBCEAIANBADYCBCADIAAgARAvIgBFDZgCIANB5AE2AhwgAyABNgIUIAMgADYCDAytAgtByQEhAgyTAgtBACEAAkAgAygCOCICRQ0AIAIoAkQiAkUNACADIAIRAAAhAAsCQCAABEAgAEEVRg0BIANBADYCHCADIAE2AhQgA0GkDTYCECADQSE2AgxBACECDK0CC0HIASECDJMCCyADQeEBNgIcIAMgATYCFCADQdAaNgIQIANBFTYCDEEAIQIMqwILIAEgBEYEQEHhASECDKsCCwJAIAEtAABBIEYEQCADQQA7ATQgAUEBaiEBDAELIANBADYCHCADIAE2AhQgA0GZETYCECADQQk2AgxBACECDKsCC0HHASECDJECCyABIARGBEBB4AEhAgyqAgsCQCABLQAAQTBrQf8BcSICQQpJBEAgAUEBaiEBAkAgAy8BNCIAQZkzSw0AIAMgAEEKbCIAOwE0IABB/v8DcSACQf//A3NLDQAgAyAAIAJqOwE0DAILQQAhAiADQQA2AhwgAyABNgIUIANBlR42AhAgA0ENNgIMDKsCCyADQQA2AhwgAyABNgIUIANBlR42AhAgA0ENNgIMQQAhAgyqAgtBxgEhAgyQAgsgASAERgRAQd8BIQIMqQILAkAgAS0AAEEwa0H/AXEiAkEKSQRAIAFBAWohAQJAIAMvATQiAEGZM0sNACADIABBCmwiADsBNCAAQf7/A3EgAkH//wNzSw0AIAMgACACajsBNAwCC0EAIQIgA0EANgIcIAMgATYCFCADQZUeNgIQIANBDTYCDAyqAgsgA0EANgIcIAMgATYCFCADQZUeNgIQIANBDTYCDEEAIQIMqQILQcUBIQIMjwILIAEgBEYEQEHeASECDKgCCwJAIAEtAABBMGtB/wFxIgJBCkkEQCABQQFqIQECQCADLwE0IgBBmTNLDQAgAyAAQQpsIgA7ATQgAEH+/wNxIAJB//8Dc0sNACADIAAgAmo7ATQMAgtBACECIANBADYCHCADIAE2AhQgA0GVHjYCECADQQ02AgwMqQILIANBADYCHCADIAE2AhQgA0GVHjYCECADQQ02AgxBACECDKgCC0HEASECDI4CCyABIARGBEBB3QEhAgynAgsCQAJAAkACQCABLQAAQQprDhcCAwMAAwMDAwMDAwMDAwMDAwMDAwMDAQMLIAFBAWoMBQsgAUEBaiEBQcMBIQIMjwILIAFBAWohASADQS9qLQAAQQFxDQggA0EANgIcIAMgATYCFCADQY0LNgIQIANBDTYCDEEAIQIMpwILIANBADYCHCADIAE2AhQgA0GNCzYCECADQQ02AgxBACECDKYCCyABIARHBEAgA0EPNgIIIAMgATYCBEEBIQIMjQILQdwBIQIMpQILAkACQANAAkAgAS0AAEEKaw4EAgAAAwALIAQgAUEBaiIBRw0AC0HbASECDKYCCyADKAIEIQAgA0EANgIEIAMgACABEC0iAEUEQCABQQFqIQEMBAsgA0HaATYCHCADIAA2AgwgAyABQQFqNgIUQQAhAgylAgsgAygCBCEAIANBADYCBCADIAAgARAtIgANASABQQFqCyEBQcEBIQIMigILIANB2QE2AhwgAyAANgIMIAMgAUEBajYCFEEAIQIMogILQcIBIQIMiAILIANBL2otAABBAXENASADQQA2AhwgAyABNgIUIANB5Bw2AhAgA0EZNgIMQQAhAgygAgsgASAERgRAQdkB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CyADIAU2AgAMkAILIANBADYCACAGQQFqIQFBGgw8C0HKASECIAEgBEYNjgIgAygCACIAIAQgAWtqIQUgASAAa0EDaiEGAkADQCABLQAAIABBjdUAai0AAEcNOyAAQQNGDQEgAEEBaiEAIAQgAUEBaiIBRw0ACyADIAU2AgAMjwILIANBADYCACAGQQFqIQFBIQw7CyABIARGBEBByQEhAgyOAgsCQAJAIAEtAABBwQBrDhQAPT09PT09PT09PT09PT09PT09AT0LIAFBAWohAUGtASECDPUBCyABQQFqIQFBsAEhAgz0AQsgASAERgRAQcgBIQIMjQILAkACQCABLQAAQdUAaw4LADw8PDw8PDw8PAE8CyABQQFqIQFBrgEhAgz0AQsgAUEBaiEBQa8BIQIM8wELQccBIQIgASAERg2LAiADKAIAIgAgBCABa2ohBSABIABrQQhqIQYCQANAIAEtAAAgAEGE1QBqLQAARw04IABBCEYNASAAQQFqIQAgBCABQQFqIgFHDQALIAMgBTYCAAyMAgsgA0EANgIAIAZBAWohAUEqDDgLIAEgBEYEQEHGASECDIsCCyABLQAAQdAARw04IAFBAWohAUElDDcLQcUBIQIgASAERg2JAiADKAIAIgAgBCABa2ohBSABIABrQQJqIQYCQANAIAEtAAAgAEGB1QBqLQAARw02IABBAkYNASAAQQFqIQAgBCABQQFqIgFHDQALIAMgBTYCAAyKAgsgA0EANgIAIAZBAWohAUEODDYLIAEgBEYEQEHEASECDIkCCyABLQAAQcUARw02IAFBAWohAUGrASECDO8BCyABIARGBEBBwwEhAgyIAgsCQAJAAkACQCABLQAAQcIAaw4PAAECOTk5OTk5OTk5OTkDOQsgAUEBaiEBQacBIQIM8QELIAFBAWohAUGoASECDPABCyABQQFqIQFBqQEhAgzvAQsgAUEBaiEBQaoBIQIM7gELQcIBIQIgASAERg2GAiADKAIAIgAgBCABa2ohBSABIABrQQJqIQYCQANAIAEtAAAgAEH+1ABqLQAARw0zIABBAkYNASAAQQFqIQAgBCABQQFqIgFHDQALIAMgBTYCAAyHAgsgA0EANgIAIAZBAWohAUEUDDMLQcEBIQIgASAERg2FAiADKAIAIgAgBCABa2ohBSABIABrQQRqIQYCQANA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BTYCAAzsAQsgA0EANgIAIAZBAWohAUEXDBgLQaYBIQIgASAERg3qASADKAIAIgAgBCABa2ohBSABIABrQQVqIQYCQANAIAEtAAAgAEHB1ABqLQAARw0XIABBBUYNASAAQQFqIQAgBCABQQFqIgFHDQALIAMgBTYCAAzrAQsgA0EANgIAIAZBAWohAUEYDBcLIAEgBEYEQEGlASECDOoBCwJAAkAgAS0AAEHJAGsOBwAZGRkZGQEZCyABQQFqIQFBiwEhAgzRAQsgAUEBaiEBQYwBIQIM0AELQaQBIQIgASAERg3oASADKAIAIgAgBCABa2ohBSABIABrQQFqIQYCQANAIAEtAAAgAEGm1QBqLQAARw0VIABBAUYNASAAQQFqIQAgBCABQQFqIgFHDQALIAMgBTYCAAzpAQsgA0EANgIAIAZBAWohAUEJDBULQaMBIQIgASAERg3nASADKAIAIgAgBCABa2ohBSABIABrQQFqIQYCQANAIAEtAAAgAEGk1QBqLQAARw0UIABBAUYNASAAQQFqIQAgBCABQQFqIgFHDQALIAMgBTYCAAzoAQsgA0EANgIAIAZBAWohAUEfDBQLQaIBIQIgASAERg3mASADKAIAIgAgBCABa2ohBSABIABrQQJqIQYCQANAIAEtAAAgAEG+1ABqLQAARw0TIABBAkYNASAAQQFqIQAgBCABQQFqIgFHDQALIAMgBTYCAAznAQsgA0EANgIAIAZBAWohAUECDBMLQaEBIQIgASAERg3lASADKAIAIgAgBCABa2ohBSABIABrQQFqIQYDQCABLQAAIABBvNQAai0AAEcNESAAQQFGDQIgAEEBaiEAIAQgAUEBaiIBRw0ACyADIAU2AgAM5QELIAEgBEYEQEGgASECDOUBC0EBIAEtAABB3wBHDREaIAFBAWohAUGHASECDMsBCyADQQA2AgAgBkEBaiEBQYgBIQIMygELQZ8BIQIgASAERg3iASADKAIAIgAgBCABa2ohBSABIABrQQhqIQYCQANAIAEtAAAgAEGE1QBqLQAARw0PIABBCEYNASAAQQFqIQAgBCABQQFqIgFHDQALIAMgBTYCAAzjAQsgA0EANgIAIAZBAWohAUEpDA8LQZ4BIQIgASAERg3hASADKAIAIgAgBCABa2ohBSABIABrQQNqIQYCQANAIAEtAAAgAEG41ABqLQAARw0OIABBA0YNASAAQQFqIQAgBCABQQFqIgFHDQALIAMgBTYCAAziAQsgA0EANgIAIAZBAWohAUEtDA4LIAEgBEYEQEGdASECDOEBCyABLQAAQcUARw0OIAFBAWohAUGEASECDMcBCyABIARGBEBBnAEhAgzgAQsCQAJAIAEtAABBzABrDggADw8PDw8PAQ8LIAFBAWohAUGCASECDMcBCyABQQFqIQFBgwEhAgzGAQtBmwEhAiABIARGDd4BIAMoAgAiACAEIAFraiEFIAEgAGtBBGohBgJAA0AgAS0AACAAQbPUAGotAABHDQsgAEEERg0BIABBAWohACAEIAFBAWoiAUcNAAsgAyAFNgIADN8BCyADQQA2AgAgBkEBaiEBQSMMCwtBmgEhAiABIARGDd0BIAMoAgAiACAEIAFraiEFIAEgAGtBAmohBgJAA0AgAS0AACAAQbDUAGotAABHDQogAEECRg0BIABBAWohACAEIAFBAWoiAUcNAAsgAyAFNgIADN4BCyADQQA2AgAgBkEBaiEBQQAMCgsgASAERgRAQZkBIQIM3QELAkACQCABLQAAQcgAaw4IAAwMDAwMDAEMCyABQQFqIQFB/QAhAgzEAQsgAUEBaiEBQYABIQIMwwELIAEgBEYEQEGYASECDNwBCwJAAkAgAS0AAEHOAGsOAwALAQsLIAFBAWohAUH+ACECDMMBCyABQQFqIQFB/wAhAgzCAQsgASAERgRAQZcBIQIM2wELIAEtAABB2QBHDQggAUEBaiEBQQgMBwtBlgEhAiABIARGDdkBIAMoAgAiACAEIAFraiEFIAEgAGtBA2ohBgJAA0AgAS0AACAAQazUAGotAABHDQYgAEEDRg0BIABBAWohACAEIAFBAWoiAUcNAAsgAyAFNgIADNoBCyADQQA2AgAgBkEBaiEBQQUMBgtBlQEhAiABIARGDdgBIAMoAgAiACAEIAFraiEFIAEgAGtBBWohBgJAA0AgAS0AACAAQabUAGotAABHDQUgAEEFRg0BIABBAWohACAEIAFBAWoiAUcNAAsgAyAFNgIADNkBCyADQQA2AgAgBkEBaiEBQRYMBQtBlAEhAiABIARGDdcBIAMoAgAiACAEIAFraiEFIAEgAGtBAmohBgJAA0AgAS0AACAAQaHVAGotAABHDQQgAEECRg0BIABBAWohACAEIAFBAWoiAUcNAAsgAyAFNgIADNgBCyADQQA2AgAgBkEBaiEBQRAMBAsgASAERgRAQZMBIQIM1wELAkACQCABLQAAQcMAaw4MAAYGBgYGBgYGBgYBBgsgAUEBaiEBQfkAIQIMvgELIAFBAWohAUH6ACECDL0BC0GSASECIAEgBEYN1QEgAygCACIAIAQgAWtqIQUgASAAa0EFaiEGAkADQCABLQAAIABBoNQAai0AAEcNAiAAQQVGDQEgAEEBaiEAIAQgAUEBaiIBRw0ACyADIAU2AgAM1gELIANBADYCACAGQQFqIQFBJAwCCyADQQA2AgAMAgsgASAERgRAQZEBIQIM1AELIAEtAABBzABHDQEgAUEBaiEBQRMLOgApIAMoAgQhACADQQA2AgQgAyAAIAEQLiIADQIMAQtBACECIANBADYCHCADIAE2AhQgA0H+HzYCECADQQY2AgwM0QELQfgAIQIMtwELIANBkAE2AhwgAyABNgIUIAMgADYCDEEAIQIMzwELQQAhAAJAIAMoAjgiAkUNACACKAJAIgJFDQAgAyACEQAAIQALIABFDQAgAEEVRg0BIANBADYCHCADIAE2AhQgA0GCDzYCECADQSA2AgxBACECDM4BC0H3ACECDLQBCyADQY8BNgIcIAMgATYCFCADQewbNgIQIANBFTYCDEEAIQIMzAELIAEgBEYEQEGPASECDMwBCwJAIAEtAABBIEYEQCABQQFqIQEMAQsgA0EANgIcIAMgATYCFCADQZsfNgIQIANBBjYCDEEAIQIMzAELQQIhAgyyAQsDQCABLQAAQSBHDQIgBCABQQFqIgFHDQALQY4BIQIMygELIAEgBEYEQEGNASECDMoBCwJAIAEtAABBCWsOBEoAAEoAC0H1ACECDLABCyADLQApQQVGBEBB9gAhAgywAQtB9AAhAgyvAQsgASAERgRAQYwBIQIMyAELIANBEDYCCCADIAE2AgQMCgsgASAERgRAQYsBIQIMxwELAkAgAS0AAEEJaw4ERwAARwALQfMAIQIMrQELIAEgBEcEQCADQRA2AgggAyABNgIEQfEAIQIMrQELQYoBIQIMxQELAkAgASAERwRAA0AgAS0AAEGg0ABqLQAAIgBBA0cEQAJAIABBAWsOAkkABAtB8AAhAgyvAQsgBCABQQFqIgFHDQALQYgBIQIMxgELQYgBIQIMxQELIANBADYCHCADIAE2AhQgA0HbIDYCECADQQc2AgxBACECDMQBCyABIARGBEBBiQEhAgzEAQsCQAJAAkAgAS0AAEGg0gBqLQAAQQFrDgNGAgABC0HyACECDKwBCyADQQA2AhwgAyABNgIUIANBtBI2AhAgA0EHNgIMQQAhAgzEAQtB6gAhAgyqAQsgASAERwRAIAFBAWohAUHvACECDKoBC0GHASECDMIBCyAEIAEiAEYEQEGGASECDMIBCyAALQAAIgFBL0YEQCAAQQFqIQFB7gAhAgypAQsgAUEJayICQRdLDQEgACEBQQEgAnRBm4CABHENQQwBCyAEIAEiAEYEQEGFASECDMEBCyAALQAAQS9HDQAgAEEBaiEBDAMLQQAhAiADQQA2AhwgAyAANgIUIANB2yA2AhAgA0EHNgIMDL8BCwJAAkACQAJAAkADQCABLQAAQaDOAGotAAAiAEEFRwRAAkACQCAAQQFrDghHBQYHCAAEAQgLQesAIQIMrQELIAFBAWohAUHtACECDKwBCyAEIAFBAWoiAUcNAAtBhAEhAgzDAQsgAUEBagwUCyADKAIEIQAgA0EANgIEIAMgACABECwiAEUNHiADQdsANgIcIAMgATYCFCADIAA2AgxBACECDMEBCyADKAIEIQAgA0EANgIEIAMgACABECwiAEUNHiADQd0ANgIcIAMgATYCFCADIAA2AgxBACECDMABCyADKAIEIQAgA0EANgIEIAMgACABECwiAEUNHiADQfoANgIcIAMgATYCFCADIAA2AgxBACECDL8BCyADQQA2AhwgAyABNgIUIANB+Q82AhAgA0EHNgIMQQAhAgy+AQsgASAERgRAQYMBIQIMvgELAkAgAS0AAEGgzgBqLQAAQQFrDgg+BAUGAAgCAwcLIAFBAWohAQtBAyECDKMBCyABQQFqDA0LQQAhAiADQQA2AhwgA0HREjYCECADQQc2AgwgAyABQQFqNgIUDLoBCyADKAIEIQAgA0EANgIEIAMgACABECwiAEUNFiADQdsANgIcIAMgATYCFCADIAA2AgxBACECDLkBCyADKAIEIQAgA0EANgIEIAMgACABECwiAEUNFiADQd0ANgIcIAMgATYCFCADIAA2AgxBACECDLgBCyADKAIEIQAgA0EANgIEIAMgACABECwiAEUNFiADQfoANgIcIAMgATYCFCADIAA2AgxBACECDLcBCyADQQA2AhwgAyABNgIUIANB+Q82AhAgA0EHNgIMQQAhAgy2AQtB7AAhAgycAQsgASAERgRAQYIBIQIMtQELIAFBAWoMAgsgASAERgRAQYEBIQIMtAELIAFBAWoMAQsgASAERg0BIAFBAWoLIQFBBCECDJgBC0GAASECDLABCwNAIAEtAABBoMwAai0AACIAQQJHBEAgAEEBRwRAQekAIQIMmQELDDELIAQgAUEBaiIBRw0AC0H/ACECDK8BCyABIARGBEBB/gAhAgyvAQsCQCABLQAAQQlrDjcvAwYvBAYGBgYGBgYGBgYGBgYGBgYGBgUGBgIGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYABgsgAUEBagshAUEFIQIMlAELIAFBAWoMBgsgAygCBCEAIANBADYCBCADIAAgARAsIgBFDQggA0HbADYCHCADIAE2AhQgAyAANgIMQQAhAgyrAQsgAygCBCEAIANBADYCBCADIAAgARAsIgBFDQggA0HdADYCHCADIAE2AhQgAyAANgIMQQAhAgyqAQsgAygCBCEAIANBADYCBCADIAAgARAsIgBFDQggA0H6ADYCHCADIAE2AhQgAyAANgIMQQAhAgypAQsgA0EANgIcIAMgATYCFCADQY0UNgIQIANBBzYCDEEAIQIMqAELAkACQAJAAkADQCABLQAAQaDKAGotAAAiAEEFRwRAAkAgAEEBaw4GLgMEBQYABgtB6AAhAgyUAQsgBCABQQFqIgFHDQALQf0AIQIMqwELIAMoAgQhACADQQA2AgQgAyAAIAEQLCIARQ0HIANB2wA2AhwgAyABNgIUIAMgADYCDEEAIQIMqgELIAMoAgQhACADQQA2AgQgAyAAIAEQLCIARQ0HIANB3QA2AhwgAyABNgIUIAMgADYCDEEAIQIMqQELIAMoAgQhACADQQA2AgQgAyAAIAEQLCIARQ0HIANB+gA2AhwgAyABNgIUIAMgADYCDEEAIQIMqAELIANBADYCHCADIAE2AhQgA0HkCDYCECADQQc2AgxBACECDKcBCyABIARGDQEgAUEBagshAUEGIQIMjAELQfwAIQIMpAELAkACQAJAAkADQCABLQAAQaDIAGotAAAiAEEFRwRAIABBAWsOBCkCAwQFCyAEIAFBAWoiAUcNAAtB+wAhAgynAQsgAygCBCEAIANBADYCBCADIAAgARAsIgBFDQMgA0HbADYCHCADIAE2AhQgAyAANgIMQQAhAgymAQsgAygCBCEAIANBADYCBCADIAAgARAsIgBFDQMgA0HdADYCHCADIAE2AhQgAyAANgIMQQAhAgylAQsgAygCBCEAIANBADYCBCADIAAgARAsIgBFDQMgA0H6ADYCHCADIAE2AhQgAyAANgIMQQAhAgykAQsgA0EANgIcIAMgATYCFCADQbwKNgIQIANBBzYCDEEAIQIMowELQc8AIQIMiQELQdEAIQIMiAELQecAIQIMhwELIAEgBEYEQEH6ACECDKABCwJAIAEtAABBCWsOBCAAACAACyABQQFqIQFB5gAhAgyGAQsgASAERgRAQfkAIQIMnwELAkAgAS0AAEEJaw4EHwAAHwALQQAhAAJAIAMoAjgiAkUNACACKAI4IgJFDQAgAyACEQAAIQALIABFBEBB4gEhAgyGAQsgAEEVRwRAIANBADYCHCADIAE2AhQgA0HJDTYCECADQRo2AgxBACECDJ8BCyADQfgANgIcIAMgATYCFCADQeoaNgIQIANBFTYCDEEAIQIMngELIAEgBEcEQCADQQ02AgggAyABNgIEQeQAIQIMhQELQfcAIQIMnQELIAEgBEYEQEH2ACECDJ0BCwJAAkACQCABLQAAQcgAaw4LAAELCwsLCwsLCwILCyABQQFqIQFB3QAhAgyFAQsgAUEBaiEBQeAAIQIMhAELIAFBAWohAUHjACECDIMBC0H1ACECIAEgBEYNmwEgAygCACIAIAQgAWtqIQUgASAAa0ECaiEGAkADQCABLQAAIABBtdUAai0AAEcNCCAAQQJGDQEgAEEBaiEAIAQgAUEBaiIBRw0ACyADIAU2AgAMnAELIAMoAgQhACADQgA3AwAgAyAAIAZBAWoiARArIgAEQCADQfQANgIcIAMgATYCFCADIAA2AgxBACECDJwBC0HiACECDIIBC0EAIQACQCADKAI4IgJFDQAgAigCNCICRQ0AIAMgAhEAACEACwJAIAAEQCAAQRVGDQEgA0EANgIcIAMgATYCFCADQeoNNgIQIANBJjYCDEEAIQIMnAELQeEAIQIMggELIANB8wA2AhwgAyABNgIUIANBgBs2AhAgA0EVNgIMQQAhAgyaAQsgAy0AKSIAQSNrQQtJDQkCQCAAQQZLDQBBASAAdEHKAHFFDQAMCgtBACECIANBADYCHCADIAE2AhQgA0HtCTYCECADQQg2AgwMmQELQfIAIQIgASAERg2YASADKAIAIgAgBCABa2ohBSABIABrQQFqIQYCQANAIAEtAAAgAEGz1QBqLQAARw0FIABBAUYNASAAQQFqIQAgBCABQQFqIgFHDQALIAMgBTYCAAyZAQsgAygCBCEAIANCADcDACADIAAgBkEBaiIBECsiAARAIANB8QA2AhwgAyABNgIUIAMgADYCDEEAIQIMmQELQd8AIQIMfwtBACEAAkAgAygCOCICRQ0AIAIoAjQiAkUNACADIAIRAAAhAAsCQCAABEAgAEEVRg0BIANBADYCHCADIAE2AhQgA0HqDTYCECADQSY2AgxBACECDJkBC0HeACECDH8LIANB8AA2AhwgAyABNgIUIANBgBs2AhAgA0EVNgIMQQAhAgyXAQsgAy0AKUEhRg0GIANBADYCHCADIAE2AhQgA0GRCjYCECADQQg2AgxBACECDJYBC0HvACECIAEgBEYNlQEgAygCACIAIAQgAWtqIQUgASAAa0ECaiEGAkADQCABLQAAIABBsNUAai0AAEcNAiAAQQJGDQEgAEEBaiEAIAQgAUEBaiIBRw0ACyADIAU2AgAMlgELIAMoAgQhACADQgA3AwAgAyAAIAZBAWoiARArIgBFDQIgA0HtADYCHCADIAE2AhQgAyAANgIMQQAhAgyVAQsgA0EANgIACyADKAIEIQAgA0EANgIEIAMgACABECsiAEUNgAEgA0HuADYCHCADIAE2AhQgAyAANgIMQQAhAgyTAQtB3AAhAgx5C0EAIQACQCADKAI4IgJFDQAgAigCNCICRQ0AIAMgAhEAACEACwJAIAAEQCAAQRVGDQEgA0EANgIcIAMgATYCFCADQeoNNgIQIANBJjYCDEEAIQIMkwELQdsAIQIMeQsgA0HsADYCHCADIAE2AhQgA0GAGzYCECADQRU2AgxBACECDJEBCyADLQApIgBBI0kNACAAQS5GDQAgA0EANgIcIAMgATYCFCADQckJNgIQIANBCDYCDEEAIQIMkAELQdoAIQIMdgsgASAERgRAQesAIQIMjwELAkAgAS0AAEEvRgRAIAFBAWohAQwBCyAD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ciBIVFRQL3gueCByZXF1ZXN0AEludmFsaWQgbWV0aG9kIGZvciBSVFNQL3gueCByZXF1ZXN0AEV4cGVjdGVkIFNPVVJDRSBtZXRob2QgZm9yIElDRS94LnggcmVxdWVzdABJbnZhbGlkIGNoYXIgaW4gdXJsIGZyYWdtZW50IHN0YXJ0AEV4cGVjdGVkIGRvdABTcGFuIGNhbGxiYWNrIGVycm9yIGluIG9uX3N0YXR1cwBJbnZhbGlkIHJlc3BvbnNlIHN0YXR1cwBFeHBlY3RlZCBMRiBhZnRlciBoZWFkZXJzAEludmFsaWQgY2hhcmFjdGVyIGluIGNodW5rIGV4dGVuc2lvbnMAVXNlciBjYWxsYmFjayBlcnJvcgBgb25fcmVzZXRgIGNhbGxiYWNrIGVycm9yAGBvbl9jaHVua19oZWFkZXJgIGNhbGxiYWNrIGVycm9yAGBvbl9tZXNzYWdlX2JlZ2luYCBjYWxsYmFjayBlcnJvcgBgb25fY2h1bmtfZXh0ZW5zaW9uX3ZhbHVlYCBjYWxsYmFjayBlcnJvcgBgb25fc3RhdHVzX2NvbXBsZXRlYCBjYWxsYmFjayBlcnJvcgBgb25fdmVyc2lvbl9jb21wbGV0ZWAgY2FsbGJhY2sgZXJyb3IAYG9uX3VybF9jb21wbGV0ZWAgY2FsbGJhY2sgZXJyb3IAYG9uX3Byb3RvY29sX2NvbXBsZXRlYCBjYWxsYmFjayBlcnJvcgBgb25fY2h1bmtfY29tcGxldGVgIGNhbGxiYWNrIGVycm9yAGBvbl9oZWFkZXJfdmFsdWVfY29tcGxldGVgIGNhbGxiYWNrIGVycm9yAGBvbl9tZXNzYWdlX2NvbXBsZXRlYCBjYWxsYmFjayBlcnJvcgBgb25fbWV0aG9kX2NvbXBsZXRlYCBjYWxsYmFjayBlcnJvcgBgb25faGVhZGVyX2ZpZWxkX2NvbXBsZXRlYCBjYWxsYmFjayBlcnJvcgBgb25fY2h1bmtfZXh0ZW5zaW9uX25hbWVgIGNhbGxiYWNrIGVycm9yAFVuZXhwZWN0ZWQgY2hhciBpbiB1cmwgc2VydmVyAEludmFsaWQgaGVhZGVyIHZhbHVlIGNoYXIASW52YWxpZCBoZWFkZXIgZmllbGQgY2hhcgBTcGFuIGNhbGxiYWNrIGVycm9yIGluIG9uX3ZlcnNpb24ASW52YWxpZCBtaW5vciB2ZXJzaW9uAEludmFsaWQgbWFqb3IgdmVyc2lvbgBFeHBlY3RlZCBzcGFjZSBhZnRlciB2ZXJzaW9uAEV4cGVjdGVkIENSTEYgYWZ0ZXIgdmVyc2lvbgBJbnZhbGlkIEhUVFAgdmVyc2lvbgBJbnZhbGlkIGhlYWRlciB0b2tlbgBTcGFuIGNhbGxiYWNrIGVycm9yIGluIG9uX3VybABJbnZhbGlkIGNoYXJhY3RlcnMgaW4gdXJsAFVuZXhwZWN0ZWQgc3RhcnQgY2hhciBpbiB1cmwARG91YmxlIEAgaW4gdXJsAFNwYW4gY2FsbGJhY2sgZXJyb3IgaW4gb25fcHJvdG9jb2wARW1wdHkgQ29udGVudC1MZW5ndGgASW52YWxpZCBjaGFyYWN0ZXIgaW4gQ29udGVudC1MZW5ndGgAVHJhbnNmZXItRW5jb2RpbmcgY2FuJ3QgYmUgcHJlc2VudCB3aXRoIENvbnRlbnQtTGVuZ3RoAER1cGxpY2F0ZSBDb250ZW50LUxlbmd0aABJbnZhbGlkIGNoYXIgaW4gdXJsIHBhdGgAQ29udGVudC1MZW5ndGggY2FuJ3QgYmUgcHJlc2VudCB3aXRoIFRyYW5zZmVyLUVuY29kaW5nAE1pc3NpbmcgZXhwZWN0ZWQgQ1IgYWZ0ZXIgY2h1bmsgc2l6ZQBFeHBlY3RlZCBMRiBhZnRlciBjaHVuayBzaXplAEludmFsaWQgY2hhcmFjdGVyIGluIGNodW5rIHNpemUAU3BhbiBjYWxsYmFjayBlcnJvciBpbiBvbl9oZWFkZXJfdmFsdWUAU3BhbiBjYWxsYmFjayBlcnJvciBpbiBvbl9jaHVua19leHRlbnNpb25fdmFsdWUASW52YWxpZCBjaGFyYWN0ZXIgaW4gY2h1bmsgZXh0ZW5zaW9ucyB2YWx1ZQBVbmV4cGVjdGVkIHdoaXRlc3BhY2UgYWZ0ZXIgaGVhZGVyIHZhbHVlAE1pc3NpbmcgZXhwZWN0ZWQgQ1IgYWZ0ZXIgaGVhZGVyIHZhbHVlAE1pc3NpbmcgZXhwZWN0ZWQgTEYgYWZ0ZXIgaGVhZGVyIHZhbHVlAEludmFsaWQgYFRyYW5zZmVyLUVuY29kaW5nYCBoZWFkZXIgdmFsdWUATWlzc2luZyBleHBlY3RlZCBDUiBhZnRlciBjaHVuayBleHRlbnNpb24gdmFsdWUASW52YWxpZCBjaGFyYWN0ZXIgaW4gY2h1bmsgZXh0ZW5zaW9ucyBxdW90ZSB2YWx1ZQBJbnZhbGlkIHF1b3RlZC1wYWlyIGluIGNodW5rIGV4dGVuc2lvbnMgcXVvdGVkIHZhbHVlAEludmFsaWQgY2hhcmFjdGVyIGluIGNodW5rIGV4dGVuc2lvbnMgcXVvdGVkIHZhbHVlAFBhdXNlZCBieSBvbl9oZWFkZXJzX2NvbXBsZXRlAEludmFsaWQgRU9GIHN0YXRlAG9uX3Jlc2V0IHBhdXNlAG9uX2NodW5rX2hlYWRlciBwYXVzZQBvbl9tZXNzYWdlX2JlZ2luIHBhdXNlAG9uX2NodW5rX2V4dGVuc2lvbl92YWx1ZSBwYXVzZQBvbl9zdGF0dXNfY29tcGxldGUgcGF1c2UAb25fdmVyc2lvbl9jb21wbGV0ZSBwYXVzZQBvbl91cmxfY29tcGxldGUgcGF1c2UAb25fcHJvdG9jb2xfY29tcGxldGUgcGF1c2UAb25fY2h1bmtfY29tcGxldGUgcGF1c2UAb25faGVhZGVyX3ZhbHVlX2NvbXBsZXRlIHBhdXNlAG9uX21lc3NhZ2VfY29tcGxldGUgcGF1c2UAb25fbWV0aG9kX2NvbXBsZXRlIHBhdXNlAG9uX2hlYWRlcl9maWVsZF9jb21wbGV0ZSBwYXVzZQBvbl9jaHVua19leHRlbnNpb25fbmFtZSBwYXVzZQBVbmV4cGVjdGVkIHNwYWNlIGFmdGVyIHN0YXJ0IGxpbmUATWlzc2luZyBleHBlY3RlZCBDUiBhZnRlciByZXNwb25zZSBsaW5lAFNwYW4gY2FsbGJhY2sgZXJyb3IgaW4gb25fY2h1bmtfZXh0ZW5zaW9uX25hbWUASW52YWxpZCBjaGFyYWN0ZXIgaW4gY2h1bmsgZXh0ZW5zaW9ucyBuYW1lAE1pc3NpbmcgZXhwZWN0ZWQgQ1IgYWZ0ZXIgY2h1bmsgZXh0ZW5zaW9uIG5hbWUASW52YWxpZCBzdGF0dXMgY29kZQBQYXVzZSBvbiBDT05ORUNUL1VwZ3JhZGUAUGF1c2Ugb24gUFJJL1VwZ3JhZGUARXhwZWN0ZWQgSFRUUC8yIENvbm5lY3Rpb24gUHJlZmFjZQBTcGFuIGNhbGxiYWNrIGVycm9yIGluIG9uX21ldGhvZABFeHBlY3RlZCBzcGFjZSBhZnRlciBtZXRob2QAU3BhbiBjYWxsYmFjayBlcnJvciBpbiBvbl9oZWFkZXJfZmllbGQAUGF1c2VkAEludmFsaWQgd29yZCBlbmNvdW50ZXJlZABJbnZhbGlkIG1ldGhvZCBlbmNvdW50ZXJlZABNaXNzaW5nIGV4cGVjdGVkIENSIGFmdGVyIGNodW5rIGRhdGEARXhwZWN0ZWQgTEYgYWZ0ZXIgY2h1bmsgZGF0YQBVbmV4cGVjdGVkIGNoYXIgaW4gdXJsIHNjaGVtYQBSZXF1ZXN0IGhhcyBpbnZhbGlkIGBUcmFuc2Zlci1FbmNvZGluZ2AARGF0YSBhZnRlciBgQ29ubmVjdGlvbjogY2xvc2VgAFNXSVRDSF9QUk9YWQBVU0VfUFJPWFkATUtBQ1RJVklUWQBVTlBST0NFU1NBQkxFX0VOVElUWQBRVUVSWQBDT1BZAE1PVkVEX1BFUk1BTkVOVExZAFRPT19FQVJMWQBOT1RJRlkARkFJTEVEX0RFUEVOREVOQ1kAQkFEX0dBVEVXQVkAUExBWQBQVVQAQ0hFQ0tPVVQAR0FURVdBWV9USU1FT1VUAFJFUVVFU1RfVElNRU9VVABORVRXT1JLX0NPTk5FQ1RfVElNRU9VVABDT05ORUNUSU9OX1RJTUVPVVQATE9HSU5fVElNRU9VVABORVRXT1JLX1JFQURfVElNRU9VVABQT1NUAE1JU0RJUkVDVEVEX1JFUVVFU1QAQ0xJRU5UX0NMT1NFRF9SRVFVRVNUAENMSUVOVF9DTE9TRURfTE9BRF9CQUxBTkNFRF9SRVFVRVNUAEJBRF9SRVFVRVNUAEhUVFBfUkVRVUVTVF9TRU5UX1RPX0hUVFBTX1BPUlQAUkVQT1JUAElNX0FfVEVBUE9UAFJFU0VUX0NPTlRFTlQATk9fQ09OVEVOVABQQVJUSUFMX0NPTlRFTlQASFBFX0lOVkFMSURfQ09OU1RBTlQASFBFX0NCX1JFU0VUAEdFVABIUEVfU1RSSUNUAENPTkZMSUNUAFRFTVBPUkFSWV9SRURJUkVDVABQRVJNQU5FTlRfUkVESVJFQ1QAQ09OTkVDVABNVUxUSV9TVEFUVVMASFBFX0lOVkFMSURfU1RBVFVTAFRPT19NQU5ZX1JFUVVFU1RTAEVBUkxZX0hJTlRTAFVOQVZBSUxBQkxFX0ZPUl9MRUdBTF9SRUFTT05TAE9QVElPTlMAU1dJVENISU5HX1BST1RPQ09MUwBWQVJJQU5UX0FMU09fTkVHT1RJQVRFUwBNVUxUSVBMRV9DSE9JQ0VTAElOVEVSTkFMX1NFUlZFUl9FUlJPUgBXRUJfU0VSVkVSX1VOS05PV05fRVJST1IAUkFJTEdVTl9FUlJPUgBJREVOVElUWV9QUk9WSURFUl9BVVRIRU5USUNBVElPTl9FUlJPUgBTU0xfQ0VSVElGSUNBVEVfRVJST1IASU5WQUxJRF9YX0ZPUldBUkRFRF9GT1IAU0VUX1BBUkFNRVRFUgBHRVRfUEFSQU1FVEVSAEhQRV9VU0VSAFNFRV9PVEhFUgBIUEVfQ0JfQ0hVTktfSEVBREVSAEV4cGVjdGVkIExGIGFmdGVyIENSAE1LQ0FMRU5EQVIAU0VUVVAAV0VCX1NFUlZFUl9JU19ET1dOAFRFQVJET1dOAEhQRV9DTE9TRURfQ09OTkVDVElPTgBIRVVSSVNUSUNfRVhQSVJBVElPTgBESVNDT05ORUNURURfT1BFUkFUSU9OAE5PTl9BVVRIT1JJVEFUSVZFX0lORk9STUFUSU9OAEhQRV9JTlZBTElEX1ZFUlNJT04ASFBFX0NCX01FU1NBR0VfQkVHSU4AU0lURV9JU19GUk9aRU4ASFBFX0lOVkFMSURfSEVBREVSX1RPS0VOAElOVkFMSURfVE9LRU4ARk9SQklEREVOAEVOSEFOQ0VfWU9VUl9DQUxNAEhQRV9JTlZBTElEX1VSTABCTE9DS0VEX0JZX1BBUkVOVEFMX0NPTlRST0wATUtDT0wAQUNMAEhQRV9JTlRFUk5BTABSRVFVRVNUX0hFQURFUl9GSUVMRFNfVE9PX0xBUkdFX1VOT0ZGSUNJQUwASFBFX09LAFVOTElOSwBVTkxPQ0sAUFJJAFJFVFJZX1dJVEgASFBFX0lOVkFMSURfQ09OVEVOVF9MRU5HVEgASFBFX1VORVhQRUNURURfQ09OVEVOVF9MRU5HVEgARkxVU0gAUFJPUFBBVENIAE0tU0VBUkNIAFVSSV9UT09fTE9ORwBQUk9DRVNTSU5HAE1JU0NFTExBTkVPVVNfUEVSU0lTVEVOVF9XQVJOSU5HAE1JU0NFTExBTkVPVVNfV0FSTklORwBIUEVfSU5WQUxJRF9UUkFOU0ZFUl9FTkNPRElORwBFeHBlY3RlZCBDUkxGAEhQRV9JTlZBTElEX0NIVU5LX1NJWkUATU9WRQBDT05USU5VRQBIUEVfQ0JfU1RBVFVTX0NPTVBMRVRFAEhQRV9DQl9IRUFERVJTX0NPTVBMRVRFAEhQRV9DQl9WRVJTSU9OX0NPTVBMRVRFAEhQRV9DQl9VUkxfQ09NUExFVEUASFBFX0NCX1BST1RPQ09MX0NPTVBMRVRFAEhQRV9DQl9DSFVOS19DT01QTEVURQBIUEVfQ0JfSEVBREVSX1ZBTFVFX0NPTVBMRVRFAEhQRV9DQl9DSFVOS19FWFRFTlNJT05fVkFMVUVfQ09NUExFVEUASFBFX0NCX0NIVU5LX0VYVEVOU0lPTl9OQU1FX0NPTVBMRVRFAEhQRV9DQl9NRVNTQUdFX0NPTVBMRVRFAEhQRV9DQl9NRVRIT0RfQ09NUExFVEUASFBFX0NCX0hFQURFUl9GSUVMRF9DT01QTEVURQBERUxFVEUASFBFX0lOVkFMSURfRU9GX1NUQVRFAElOVkFMSURfU1NMX0NFUlRJRklDQVRFAFBBVVNFAE5PX1JFU1BPTlNFAFVOU1VQUE9SVEVEX01FRElBX1RZUEUAR09ORQBOT1RfQUNDRVBUQUJMRQBTRVJWSUNFX1VOQVZBSUxBQkxFAFJBTkdFX05PVF9TQVRJU0ZJQUJMRQBPUklHSU5fSVNfVU5SRUFDSEFCTEUAUkVTUE9OU0VfSVNfU1RBTEUAUFVSR0UATUVSR0UAUkVRVUVTVF9IRUFERVJfRklFTERTX1RPT19MQVJHRQBSRVFVRVNUX0hFQURFUl9UT09fTEFSR0UAUEFZTE9BRF9UT09fTEFSR0UASU5TVUZGSUNJRU5UX1NUT1JBR0UASFBFX1BBVVNFRF9VUEdSQURFAEhQRV9QQVVTRURfSDJfVVBHUkFERQBTT1VSQ0UAQU5OT1VOQ0UAVFJBQ0UASFBFX1VORVhQRUNURURfU1BBQ0UAREVTQ1JJQkUAVU5TVUJTQ1JJQkUAUkVDT1JEAEhQRV9JTlZBTElEX01FVEhPRABOT1RfRk9VTkQAUFJPUEZJTkQAVU5CSU5EAFJFQklORABVTkFVVEhPUklaRUQATUVUSE9EX05PVF9BTExPV0VEAEhUVFBfVkVSU0lPTl9OT1RfU1VQUE9SVEVEAEFMUkVBRFlfUkVQT1JURUQAQUNDRVBURUQATk9UX0lNUExFTUVOVEVEAExPT1BfREVURUNURUQASFBFX0NSX0VYUEVDVEVEAEhQRV9MRl9FWFBFQ1RFRABDUkVBVEVEAElNX1VTRUQASFBFX1BBVVNFRABUSU1FT1VUX09DQ1VSRUQAUEFZTUVOVF9SRVFVSVJFRABQUkVDT05ESVRJT05fUkVRVUlSRUQAUFJPWFlfQVVUSEVOVElDQVRJT05fUkVRVUlSRUQATkVUV09SS19BVVRIRU5USUNBVElPTl9SRVFVSVJFRABMRU5HVEhfUkVRVUlSRUQAU1NMX0NFUlRJRklDQVRFX1JFUVVJUkVEAFVQR1JBREVfUkVRVUlSRUQAUEFHRV9FWFBJUkVEAFBSRUNPTkRJVElPTl9GQUlMRUQARVhQRUNUQVRJT05fRkFJTEVEAFJFVkFMSURBVElPTl9GQUlMRUQAU1NMX0hBTkRTSEFLRV9GQUlMRUQATE9DS0VEAFRSQU5TRk9STUFUSU9OX0FQUExJRUQATk9UX01PRElGSUVEAE5PVF9FWFRFTkRFRABCQU5EV0lEVEhfTElNSVRfRVhDRUVERUQAU0lURV9JU19PVkVSTE9BREVEAEhFQUQARXhwZWN0ZWQgSFRUUC8sIFJUU1AvIG9yIElDRS8A5xUAAK8VAACkEgAAkhoAACYWAACeFAAA2xkAAHkVAAB+EgAA/hQAADYVAAALFgAA2BYAAPMSAABCGAAArBYAABIVAAAUFwAA7xcAAEgUAABxFwAAshoAAGsZAAB+GQAANRQAAIIaAABEFwAA/RYAAB4YAACHFwAAqhkAAJMSAAAHGAAALBcAAMoXAACkFwAA5xUAAOcVAABYFwAAOxgAAKASAAAtHAAAwxEAAEgRAADeEgAAQhMAAKQZAAD9EAAA9xUAAKUVAADvFgAA+BkAAEoWAABWFgAA9RUAAAoaAAAIGgAAARoAAKsVAABCEgAA1xAAAEwRAAAFGQAAVBYAAB4RAADKGQAAyBkAAE4WAAD/GAAAcRQAAPAVAADuFQAAlBkAAPwVAAC/GQAAmxkAAHwUAABDEQAAcBgAAJUUAAAnFAAAGRQAANUSAADUGQAARBYAAPcQAEG5OwsBAQBB0DsL4AEBAQIBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEDAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQABAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQBBuj0LBAEAAAIAQdE9C14DBAMDAwMDAAADAwADAwADAwMDAwMDAwMDAAUAAAAAAAMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAAAAAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAAwADAEG6PwsEAQAAAgBB0T8LXgMAAwMDAwMAAAMDAAMDAAMDAwMDAwMDAwMABAAFAAAAAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAAAADAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwADAAMAQbDBAAsNbG9zZWVlcC1hbGl2ZQBBycEACwEBAEHgwQAL4AEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQABAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQBBycMACwEBAEHgwwAL5wEBAQEBAQEBAQEBAQECAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQABAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAWNodW5rZWQAQfHFAAteAQABAQEBAQAAAQEAAQEAAQEBAQEBAQEBAQAAAAAAAAABAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQAAAAEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAAEAAQBB0McACyFlY3Rpb25lbnQtbGVuZ3Rob25yb3h5LWNvbm5lY3Rpb24AQYDIAAsgcmFuc2Zlci1lbmNvZGluZ3BncmFkZQ0KDQpTTQ0KDQoAQanIAAsFAQIAAQMAQcDIAAtfBAUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUAQanKAAsFAQIAAQMAQcDKAAtfBAUFBgUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUAQanMAAsEAQAAAQBBwcwAC14CAgACAgICAgICAgICAgICAgICAgICAgICAgICAgIAAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAEGpzgALBQECAAEDAEHAzgALXwQFAAAFBQUFBQUFBQUFBQYFBQUFBQUFBQUFBQUABQAHCAUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQAFAAUABQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUAAAAFAEGp0AALBQEBAAEBAEHA0AALAQEAQdrQAAtBAgAAAAAAAAMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAAAAAAAAAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAQanSAAsFAQEAAQEAQcDSAAsBAQBBytIACwYCAAAAAAIAQeHSAAs6AwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAAAAAAAADAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwBBoNQAC50BTk9VTkNFRUNLT1VUTkVDVEVURUNSSUJFTFVTSEVURUFEU0VBUkNIUkdFQ1RJVklUWUxFTkRBUlZFT1RJRllQVElPTlNDSFNFQVlTVEFUQ0hHRVVFUllPUkRJUkVDVE9SVFJDSFBBUkFNRVRFUlVSQ0VCU0NSSUJFQVJET1dOQUNFSU5ETktDS1VCU0NSSUJFVFRQQ0VUU1BBRFRQLw==",wasmBuffer;Object.defineProperty(module,"exports",{get:()=>wasmBuffer||(wasmBuffer=Buffer2.from(wasmBase64,"base64"))})}});var require_constants3=__commonJS({"packages/agent-forge/node_modules/undici/lib/web/fetch/constants.js"(exports,module){"use strict";var corsSafeListedMethods=["GET","HEAD","POST"],corsSafeListedMethodsSet=new Set(corsSafeListedMethods),nullBodyStatus=[101,204,205,304],redirectStatus=[301,302,303,307,308],redirectStatusSet=new Set(redirectStatus),badPorts=["1","7","9","11","13","15","17","19","20","21","22","23","25","37","42","43","53","69","77","79","87","95","101","102","103","104","109","110","111","113","115","117","119","123","135","137","139","143","161","179","389","427","465","512","513","514","515","526","530","531","532","540","548","554","556","563","587","601","636","989","990","993","995","1719","1720","1723","2049","3659","4045","4190","5060","5061","6000","6566","6665","6666","6667","6668","6669","6679","6697","10080"],badPortsSet=new Set(badPorts),referrerPolicyTokens=["no-referrer","no-referrer-when-downgrade","same-origin","origin","strict-origin","origin-when-cross-origin","strict-origin-when-cross-origin","unsafe-url"],referrerPolicy=["",...referrerPolicyTokens],referrerPolicyTokensSet=new Set(referrerPolicyTokens),requestRedirect=["follow","manual","error"],safeMethods=["GET","HEAD","OPTIONS","TRACE","QUERY"],safeMethodsSet=new Set(safeMethods),requestMode=["navigate","same-origin","no-cors","cors"],requestCredentials=["omit","same-origin","include"],requestCache=["default","no-store","reload","no-cache","force-cache","only-if-cached"],requestBodyHeader=["content-encoding","content-language","content-location","content-type","content-length"],requestDuplex=["half"],forbiddenMethods=["CONNECT","TRACE","TRACK"],forbiddenMethodsSet=new Set(forbiddenMethods),subresource=["audio","audioworklet","font","image","manifest","paintworklet","script","style","track","video","xslt",""],subresourceSet=new Set(subresource);module.exports={subresource,forbiddenMethods,requestBodyHeader,referrerPolicy,requestRedirect,requestMode,requestCredentials,requestCache,redirectStatus,corsSafeListedMethods,nullBodyStatus,safeMethods,badPorts,requestDuplex,subresourceSet,badPortsSet,redirectStatusSet,corsSafeListedMethodsSet,safeMethodsSet,forbiddenMethodsSet,referrerPolicyTokens:referrerPolicyTokensSet}}});var require_global=__commonJS({"packages/agent-forge/node_modules/undici/lib/web/fetch/global.js"(exports,module){"use strict";var globalOrigin=Symbol.for("undici.globalOrigin.1");function getGlobalOrigin(){return globalThis[globalOrigin]}function setGlobalOrigin(newOrigin){if(newOrigin===void 0){Object.defineProperty(globalThis,globalOrigin,{value:void 0,writable:!0,enumerable:!1,configurable:!1});return}let parsedURL=new URL(newOrigin);if(parsedURL.protocol!=="http:"&&parsedURL.protocol!=="https:")throw new TypeError(`Only http & https urls are allowed, received ${parsedURL.protocol}`);Object.defineProperty(globalThis,globalOrigin,{value:parsedURL,writable:!0,enumerable:!1,configurable:!1})}module.exports={getGlobalOrigin,setGlobalOrigin}}});var require_encoding=__commonJS({"packages/agent-forge/node_modules/undici/lib/encoding/index.js"(exports,module){"use strict";var textDecoder2=new TextDecoder;function utf8DecodeBytes(buffer){return buffer.length===0?"":(buffer[0]===239&&buffer[1]===187&&buffer[2]===191&&(buffer=buffer.subarray(3)),textDecoder2.decode(buffer))}module.exports={utf8DecodeBytes}}});var require_infra=__commonJS({"packages/agent-forge/node_modules/undici/lib/web/infra/index.js"(exports,module){"use strict";var assert=__require("node:assert"),{utf8DecodeBytes}=require_encoding();function collectASequenceOfCodePoints(condition,input,position){let result="";for(;position.position<input.length&&condition(input[position.position]);)result+=input[position.position],position.position++;return result}function collectASequenceOfCodePointsFast(char,input,position){let idx=input.indexOf(char,position.position),start=position.position;return idx===-1?(position.position=input.length,input.slice(start)):(position.position=idx,input.slice(start,position.position))}var ASCII_WHITESPACE_REPLACE_REGEX=/[\u0009\u000A\u000C\u000D\u0020]/g;function forgivingBase64(data){data=data.replace(ASCII_WHITESPACE_REPLACE_REGEX,"");let dataLength=data.length;if(dataLength%4===0&&data.charCodeAt(dataLength-1)===61&&(--dataLength,data.charCodeAt(dataLength-1)===61&&--dataLength),dataLength%4===1||/[^+/0-9A-Za-z]/.test(data.length===dataLength?data:data.substring(0,dataLength)))return"failure";let buffer=Buffer.from(data,"base64");return new Uint8Array(buffer.buffer,buffer.byteOffset,buffer.byteLength)}function isASCIIWhitespace(char){return char===9||char===10||char===12||char===13||char===32}function isomorphicDecode(input){let length=input.length;if(65535>length)return String.fromCharCode.apply(null,input);let result="",i=0,addition=65535;for(;i<length;)i+addition>length&&(addition=length-i),result+=String.fromCharCode.apply(null,input.subarray(i,i+=addition));return result}var invalidIsomorphicEncodeValueRegex=/[^\x00-\xFF]/;function isomorphicEncode(input){return assert(!invalidIsomorphicEncodeValueRegex.test(input)),input}function parseJSONFromBytes(bytes){return JSON.parse(utf8DecodeBytes(bytes))}function removeASCIIWhitespace(str2,leading=!0,trailing=!0){return removeChars(str2,leading,trailing,isASCIIWhitespace)}function removeChars(str2,leading,trailing,predicate){let lead=0,trail=str2.length-1;if(leading)for(;lead<str2.length&&predicate(str2.charCodeAt(lead));)lead++;if(trailing)for(;trail>0&&predicate(str2.charCodeAt(trail));)trail--;return lead===0&&trail===str2.length-1?str2:str2.slice(lead,trail+1)}function serializeJavascriptValueToJSONString(value){let result=JSON.stringify(value);if(result===void 0)throw new TypeError("Value is not JSON serializable");return assert(typeof result=="string"),result}module.exports={collectASequenceOfCodePoints,collectASequenceOfCodePointsFast,forgivingBase64,isASCIIWhitespace,isomorphicDecode,isomorphicEncode,parseJSONFromBytes,removeASCIIWhitespace,removeChars,serializeJavascriptValueToJSONString}}});var require_data_url=__commonJS({"packages/agent-forge/node_modules/undici/lib/web/fetch/data-url.js"(exports,module){"use strict";var assert=__require("node:assert"),{forgivingBase64,collectASequenceOfCodePoints,collectASequenceOfCodePointsFast,isomorphicDecode,removeASCIIWhitespace,removeChars}=require_infra(),encoder2=new TextEncoder,HTTP_TOKEN_CODEPOINTS=/^[-!#$%&'*+.^_|~A-Za-z0-9]+$/u,HTTP_WHITESPACE_REGEX=/[\u000A\u000D\u0009\u0020]/u,HTTP_QUOTED_STRING_TOKENS=/^[\u0009\u0020-\u007E\u0080-\u00FF]+$/u;function dataURLProcessor(dataURL){assert(dataURL.protocol==="data:");let input=URLSerializer(dataURL,!0);input=input.slice(5);let position={position:0},mimeType=collectASequenceOfCodePointsFast(",",input,position),mimeTypeLength=mimeType.length;if(mimeType=removeASCIIWhitespace(mimeType,!0,!0),position.position>=input.length)return"failure";position.position++;let encodedBody=input.slice(mimeTypeLength+1),body=stringPercentDecode(encodedBody);if(/;(?:\u0020*)base64$/ui.test(mimeType)){let stringBody=isomorphicDecode(body);if(body=forgivingBase64(stringBody),body==="failure")return"failure";mimeType=mimeType.slice(0,-6),mimeType=mimeType.replace(/(\u0020+)$/u,""),mimeType=mimeType.slice(0,-1)}mimeType.startsWith(";")&&(mimeType="text/plain"+mimeType);let mimeTypeRecord=parseMIMEType(mimeType);return mimeTypeRecord==="failure"&&(mimeTypeRecord=parseMIMEType("text/plain;charset=US-ASCII")),{mimeType:mimeTypeRecord,body}}function URLSerializer(url,excludeFragment=!1){if(!excludeFragment)return url.href;let href=url.href,hashLength=url.hash.length,serialized=hashLength===0?href:href.substring(0,href.length-hashLength);return!hashLength&&href.endsWith("#")?serialized.slice(0,-1):serialized}function stringPercentDecode(input){let bytes=encoder2.encode(input);return percentDecode(bytes)}function isHexCharByte(byte){return byte>=48&&byte<=57||byte>=65&&byte<=70||byte>=97&&byte<=102}function hexByteToNumber(byte){return byte>=48&&byte<=57?byte-48:(byte&223)-55}function percentDecode(input){let length=input.length,output=new Uint8Array(length),j2=0,i=0;for(;i<length;){let byte=input[i];byte!==37?output[j2++]=byte:byte===37&&!(isHexCharByte(input[i+1])&&isHexCharByte(input[i+2]))?output[j2++]=37:(output[j2++]=hexByteToNumber(input[i+1])<<4|hexByteToNumber(input[i+2]),i+=2),++i}return length===j2?output:output.subarray(0,j2)}function parseMIMEType(input){input=removeHTTPWhitespace(input,!0,!0);let position={position:0},type=collectASequenceOfCodePointsFast("/",input,position);if(type.length===0||!HTTP_TOKEN_CODEPOINTS.test(type)||position.position>=input.length)return"failure";position.position++;let subtype=collectASequenceOfCodePointsFast(";",input,position);if(subtype=removeHTTPWhitespace(subtype,!1,!0),subtype.length===0||!HTTP_TOKEN_CODEPOINTS.test(subtype))return"failure";let typeLowercase=type.toLowerCase(),subtypeLowercase=subtype.toLowerCase(),mimeType={type:typeLowercase,subtype:subtypeLowercase,parameters:new Map,essence:`${typeLowercase}/${subtypeLowercase}`};for(;position.position<input.length;){position.position++,collectASequenceOfCodePoints(char=>HTTP_WHITESPACE_REGEX.test(char),input,position);let parameterName=collectASequenceOfCodePoints(char=>char!==";"&&char!=="=",input,position);if(parameterName=parameterName.toLowerCase(),position.position<input.length){if(input[position.position]===";")continue;position.position++}if(position.position>=input.length)break;let parameterValue=null;if(input[position.position]==='"')parameterValue=collectAnHTTPQuotedString(input,position,!0),collectASequenceOfCodePointsFast(";",input,position);else if(parameterValue=collectASequenceOfCodePointsFast(";",input,position),parameterValue=removeHTTPWhitespace(parameterValue,!1,!0),parameterValue.length===0)continue;parameterName.length!==0&&HTTP_TOKEN_CODEPOINTS.test(parameterName)&&(parameterValue.length===0||HTTP_QUOTED_STRING_TOKENS.test(parameterValue))&&!mimeType.parameters.has(parameterName)&&mimeType.parameters.set(parameterName,parameterValue)}return mimeType}function collectAnHTTPQuotedString(input,position,extractValue=!1){let positionStart=position.position,value="";for(assert(input[position.position]==='"'),position.position++;value+=collectASequenceOfCodePoints(char=>char!=='"'&&char!=="\\",input,position),!(position.position>=input.length);){let quoteOrBackslash=input[position.position];if(position.position++,quoteOrBackslash==="\\"){if(position.position>=input.length){value+="\\";break}value+=input[position.position],position.position++}else{assert(quoteOrBackslash==='"');break}}return extractValue?value:input.slice(positionStart,position.position)}function serializeAMimeType(mimeType){assert(mimeType!=="failure");let{parameters,essence}=mimeType,serialization=essence;for(let[name,value]of parameters.entries())serialization+=";",serialization+=name,serialization+="=",HTTP_TOKEN_CODEPOINTS.test(value)||(value=value.replace(/[\\"]/ug,"\\$&"),value='"'+value,value+='"'),serialization+=value;return serialization}function isHTTPWhiteSpace(char){return char===13||char===10||char===9||char===32}function removeHTTPWhitespace(str2,leading=!0,trailing=!0){return removeChars(str2,leading,trailing,isHTTPWhiteSpace)}function minimizeSupportedMimeType(mimeType){switch(mimeType.essence){case"application/ecmascript":case"application/javascript":case"application/x-ecmascript":case"application/x-javascript":case"text/ecmascript":case"text/javascript":case"text/javascript1.0":case"text/javascript1.1":case"text/javascript1.2":case"text/javascript1.3":case"text/javascript1.4":case"text/javascript1.5":case"text/jscript":case"text/livescript":case"text/x-ecmascript":case"text/x-javascript":return"text/javascript";case"application/json":case"text/json":return"application/json";case"image/svg+xml":return"image/svg+xml";case"text/xml":case"application/xml":return"application/xml"}return mimeType.subtype.endsWith("+json")?"application/json":mimeType.subtype.endsWith("+xml")?"application/xml":""}module.exports={dataURLProcessor,URLSerializer,stringPercentDecode,parseMIMEType,collectAnHTTPQuotedString,serializeAMimeType,removeHTTPWhitespace,minimizeSupportedMimeType,HTTP_TOKEN_CODEPOINTS}}});var require_webidl=__commonJS({"packages/agent-forge/node_modules/undici/lib/web/webidl/index.js"(exports,module){"use strict";var assert=__require("node:assert"),{types,inspect}=__require("node:util"),{markAsUncloneable}=__require("node:worker_threads"),UNDEFINED=1,BOOLEAN=2,STRING=3,SYMBOL=4,NUMBER=5,BIGINT=6,NULL=7,OBJECT=8,FunctionPrototypeSymbolHasInstance=Function.call.bind(Function.prototype[Symbol.hasInstance]),webidl={converters:{},util:{},errors:{},is:{}};webidl.errors.exception=function(message){return new TypeError(`${message.header}: ${message.message}`)};webidl.errors.conversionFailed=function(opts){let plural=opts.types.length===1?"":" one of",message=`${opts.argument} could not be converted to${plural}: ${opts.types.join(", ")}.`;return webidl.errors.exception({header:opts.prefix,message})};webidl.errors.invalidArgument=function(context){return webidl.errors.exception({header:context.prefix,message:`"${context.value}" is an invalid ${context.type}.`})};webidl.brandCheck=function(V2,I2){if(!FunctionPrototypeSymbolHasInstance(I2,V2)){let err2=new TypeError("Illegal invocation");throw err2.code="ERR_INVALID_THIS",err2}};webidl.brandCheckMultiple=function(List){let prototypes=List.map(c2=>webidl.util.MakeTypeAssertion(c2));return V2=>{if(prototypes.every(typeCheck=>!typeCheck(V2))){let err2=new TypeError("Illegal invocation");throw err2.code="ERR_INVALID_THIS",err2}}};webidl.argumentLengthCheck=function({length},min,ctx){if(length<min)throw webidl.errors.exception({message:`${min} argument${min!==1?"s":""} required, but${length?" only":""} ${length} found.`,header:ctx})};webidl.illegalConstructor=function(){throw webidl.errors.exception({header:"TypeError",message:"Illegal constructor"})};webidl.util.MakeTypeAssertion=function(I2){return O2=>FunctionPrototypeSymbolHasInstance(I2,O2)};webidl.util.Type=function(V2){switch(typeof V2){case"undefined":return UNDEFINED;case"boolean":return BOOLEAN;case"string":return STRING;case"symbol":return SYMBOL;case"number":return NUMBER;case"bigint":return BIGINT;case"function":case"object":return V2===null?NULL:OBJECT}};webidl.util.Types={UNDEFINED,BOOLEAN,STRING,SYMBOL,NUMBER,BIGINT,NULL,OBJECT};webidl.util.TypeValueToString=function(o){switch(webidl.util.Type(o)){case UNDEFINED:return"Undefined";case BOOLEAN:return"Boolean";case STRING:return"String";case SYMBOL:return"Symbol";case NUMBER:return"Number";case BIGINT:return"BigInt";case NULL:return"Null";case OBJECT:return"Object"}};webidl.util.markAsUncloneable=markAsUncloneable;webidl.util.ConvertToInt=function(V2,bitLength,signedness,flags){let upperBound,lowerBound;bitLength===64?(upperBound=Math.pow(2,53)-1,signedness==="unsigned"?lowerBound=0:lowerBound=Math.pow(-2,53)+1):signedness==="unsigned"?(lowerBound=0,upperBound=Math.pow(2,bitLength)-1):(lowerBound=-Math.pow(2,bitLength-1),upperBound=Math.pow(2,bitLength-1)-1);let x2=Number(V2);if(x2===0&&(x2=0),webidl.util.HasFlag(flags,webidl.attributes.EnforceRange)){if(Number.isNaN(x2)||x2===Number.POSITIVE_INFINITY||x2===Number.NEGATIVE_INFINITY)throw webidl.errors.exception({header:"Integer conversion",message:`Could not convert ${webidl.util.Stringify(V2)} to an integer.`});if(x2=webidl.util.IntegerPart(x2),x2<lowerBound||x2>upperBound)throw webidl.errors.exception({header:"Integer conversion",message:`Value must be between ${lowerBound}-${upperBound}, got ${x2}.`});return x2}return!Number.isNaN(x2)&&webidl.util.HasFlag(flags,webidl.attributes.Clamp)?(x2=Math.min(Math.max(x2,lowerBound),upperBound),Math.floor(x2)%2===0?x2=Math.floor(x2):x2=Math.ceil(x2),x2):Number.isNaN(x2)||x2===0&&Object.is(0,x2)||x2===Number.POSITIVE_INFINITY||x2===Number.NEGATIVE_INFINITY?0:(x2=webidl.util.IntegerPart(x2),x2=x2%Math.pow(2,bitLength),signedness==="signed"&&x2>=Math.pow(2,bitLength-1)?x2-Math.pow(2,bitLength):x2)};webidl.util.IntegerPart=function(n){let r=Math.floor(Math.abs(n));return n<0?-1*r:r};webidl.util.Stringify=function(V2){switch(webidl.util.Type(V2)){case SYMBOL:return`Symbol(${V2.description})`;case OBJECT:return inspect(V2);case STRING:return`"${V2}"`;case BIGINT:return`${V2}n`;default:return`${V2}`}};webidl.util.IsResizableArrayBuffer=function(V2){if(types.isArrayBuffer(V2))return V2.resizable;if(types.isSharedArrayBuffer(V2))return V2.growable;throw webidl.errors.exception({header:"IsResizableArrayBuffer",message:`"${webidl.util.Stringify(V2)}" is not an array buffer.`})};webidl.util.HasFlag=function(flags,attributes){return typeof flags=="number"&&(flags&attributes)===attributes};webidl.sequenceConverter=function(converter){return(V2,prefix,argument,Iterable)=>{if(webidl.util.Type(V2)!==OBJECT)throw webidl.errors.exception({header:prefix,message:`${argument} (${webidl.util.Stringify(V2)}) is not iterable.`});let method=typeof Iterable=="function"?Iterable():V2?.[Symbol.iterator]?.(),seq=[],index3=0;if(method===void 0||typeof method.next!="function")throw webidl.errors.exception({header:prefix,message:`${argument} is not iterable.`});for(;;){let{done,value}=method.next();if(done)break;seq.push(converter(value,prefix,`${argument}[${index3++}]`))}return seq}};webidl.recordConverter=function(keyConverter,valueConverter){return(O2,prefix,argument)=>{if(webidl.util.Type(O2)!==OBJECT)throw webidl.errors.exception({header:prefix,message:`${argument} ("${webidl.util.TypeValueToString(O2)}") is not an Object.`});let result={};if(!types.isProxy(O2)){let keys2=[...Object.getOwnPropertyNames(O2),...Object.getOwnPropertySymbols(O2)];for(let key of keys2){let keyName=webidl.util.Stringify(key),typedKey=keyConverter(key,prefix,`Key ${keyName} in ${argument}`),typedValue=valueConverter(O2[key],prefix,`${argument}[${keyName}]`);result[typedKey]=typedValue}return result}let keys=Reflect.ownKeys(O2);for(let key of keys)if(Reflect.getOwnPropertyDescriptor(O2,key)?.enumerable){let typedKey=keyConverter(key,prefix,argument),typedValue=valueConverter(O2[key],prefix,argument);result[typedKey]=typedValue}return result}};webidl.interfaceConverter=function(TypeCheck,name){return(V2,prefix,argument)=>{if(!TypeCheck(V2))throw webidl.errors.exception({header:prefix,message:`Expected ${argument} ("${webidl.util.Stringify(V2)}") to be an instance of ${name}.`});return V2}};webidl.dictionaryConverter=function(converters){return converters.sort((a,b2)=>(a.key>b2.key)-(a.key<b2.key)),(dictionary,prefix,argument)=>{let dict={};if(dictionary!=null&&webidl.util.Type(dictionary)!==OBJECT)throw webidl.errors.exception({header:prefix,message:`Expected ${dictionary} to be one of: Null, Undefined, Object.`});for(let options of converters){let{key,defaultValue,required,converter}=options;if(required===!0&&(dictionary==null||!Object.hasOwn(dictionary,key)))throw webidl.errors.exception({header:prefix,message:`Missing required key "${key}".`});let value=dictionary?.[key],hasDefault=defaultValue!==void 0;if(hasDefault&&value===void 0&&(value=defaultValue()),required||hasDefault||value!==void 0){if(value=converter(value,prefix,`${argument}.${key}`),options.allowedValues&&!options.allowedValues.includes(value))throw webidl.errors.exception({header:prefix,message:`${value} is not an accepted type. Expected one of ${options.allowedValues.join(", ")}.`});dict[key]=value}}return dict}};webidl.nullableConverter=function(converter){return(V2,prefix,argument)=>V2===null?V2:converter(V2,prefix,argument)};webidl.is.USVString=function(value){return typeof value=="string"&&value.isWellFormed()};webidl.is.ReadableStream=webidl.util.MakeTypeAssertion(ReadableStream);webidl.is.Blob=webidl.util.MakeTypeAssertion(Blob);webidl.is.URLSearchParams=webidl.util.MakeTypeAssertion(URLSearchParams);webidl.is.File=webidl.util.MakeTypeAssertion(File);webidl.is.URL=webidl.util.MakeTypeAssertion(URL);webidl.is.AbortSignal=webidl.util.MakeTypeAssertion(AbortSignal);webidl.is.MessagePort=webidl.util.MakeTypeAssertion(MessagePort);webidl.is.BufferSource=function(V2){return types.isArrayBuffer(V2)||ArrayBuffer.isView(V2)&&types.isArrayBuffer(V2.buffer)};webidl.util.getCopyOfBytesHeldByBufferSource=function(bufferSource){let jsBufferSource=bufferSource,jsArrayBuffer=jsBufferSource,offset=0,length=0;if(types.isTypedArray(jsBufferSource)||types.isDataView(jsBufferSource)?(jsArrayBuffer=jsBufferSource.buffer,offset=jsBufferSource.byteOffset,length=jsBufferSource.byteLength):(assert(types.isAnyArrayBuffer(jsBufferSource)),length=jsBufferSource.byteLength),jsArrayBuffer.detached)return new Uint8Array(0);let bytes=new Uint8Array(length),view=new Uint8Array(jsArrayBuffer,offset,length);return bytes.set(view),bytes};webidl.converters.DOMString=function(V2,prefix,argument,flags){if(V2===null&&webidl.util.HasFlag(flags,webidl.attributes.LegacyNullToEmptyString))return"";if(typeof V2=="symbol")throw webidl.errors.exception({header:prefix,message:`${argument} is a symbol, which cannot be converted to a DOMString.`});return String(V2)};webidl.converters.ByteString=function(V2,prefix,argument){if(typeof V2=="symbol")throw webidl.errors.exception({header:prefix,message:`${argument} is a symbol, which cannot be converted to a ByteString.`});let x2=String(V2);for(let index3=0;index3<x2.length;index3++)if(x2.charCodeAt(index3)>255)throw new TypeError(`Cannot convert argument to a ByteString because the character at index ${index3} has a value of ${x2.charCodeAt(index3)} which is greater than 255.`);return x2};webidl.converters.USVString=function(value){return typeof value=="string"?value.toWellFormed():`${value}`.toWellFormed()};webidl.converters.boolean=function(V2){return!!V2};webidl.converters.any=function(V2){return V2};webidl.converters["long long"]=function(V2,prefix,argument){return webidl.util.ConvertToInt(V2,64,"signed",0,prefix,argument)};webidl.converters["unsigned long long"]=function(V2,prefix,argument){return webidl.util.ConvertToInt(V2,64,"unsigned",0,prefix,argument)};webidl.converters["unsigned long"]=function(V2,prefix,argument){return webidl.util.ConvertToInt(V2,32,"unsigned",0,prefix,argument)};webidl.converters["unsigned short"]=function(V2,prefix,argument,flags){return webidl.util.ConvertToInt(V2,16,"unsigned",flags,prefix,argument)};webidl.converters.ArrayBuffer=function(V2,prefix,argument,flags){if(webidl.util.Type(V2)!==OBJECT||!types.isArrayBuffer(V2))throw webidl.errors.conversionFailed({prefix,argument:`${argument} ("${webidl.util.Stringify(V2)}")`,types:["ArrayBuffer"]});if(!webidl.util.HasFlag(flags,webidl.attributes.AllowResizable)&&webidl.util.IsResizableArrayBuffer(V2))throw webidl.errors.exception({header:prefix,message:`${argument} cannot be a resizable ArrayBuffer.`});return V2};webidl.converters.SharedArrayBuffer=function(V2,prefix,argument,flags){if(webidl.util.Type(V2)!==OBJECT||!types.isSharedArrayBuffer(V2))throw webidl.errors.conversionFailed({prefix,argument:`${argument} ("${webidl.util.Stringify(V2)}")`,types:["SharedArrayBuffer"]});if(!webidl.util.HasFlag(flags,webidl.attributes.AllowResizable)&&webidl.util.IsResizableArrayBuffer(V2))throw webidl.errors.exception({header:prefix,message:`${argument} cannot be a resizable SharedArrayBuffer.`});return V2};webidl.converters.TypedArray=function(V2,T2,prefix,argument,flags){if(webidl.util.Type(V2)!==OBJECT||!types.isTypedArray(V2)||V2.constructor.name!==T2.name)throw webidl.errors.conversionFailed({prefix,argument:`${argument} ("${webidl.util.Stringify(V2)}")`,types:[T2.name]});if(!webidl.util.HasFlag(flags,webidl.attributes.AllowShared)&&types.isSharedArrayBuffer(V2.buffer))throw webidl.errors.exception({header:prefix,message:`${argument} cannot be a view on a shared array buffer.`});if(!webidl.util.HasFlag(flags,webidl.attributes.AllowResizable)&&webidl.util.IsResizableArrayBuffer(V2.buffer))throw webidl.errors.exception({header:prefix,message:`${argument} cannot be a view on a resizable array buffer.`});return V2};webidl.converters.DataView=function(V2,prefix,argument,flags){if(webidl.util.Type(V2)!==OBJECT||!types.isDataView(V2))throw webidl.errors.conversionFailed({prefix,argument:`${argument} ("${webidl.util.Stringify(V2)}")`,types:["DataView"]});if(!webidl.util.HasFlag(flags,webidl.attributes.AllowShared)&&types.isSharedArrayBuffer(V2.buffer))throw webidl.errors.exception({header:prefix,message:`${argument} cannot be a view on a shared array buffer.`});if(!webidl.util.HasFlag(flags,webidl.attributes.AllowResizable)&&webidl.util.IsResizableArrayBuffer(V2.buffer))throw webidl.errors.exception({header:prefix,message:`${argument} cannot be a view on a resizable array buffer.`});return V2};webidl.converters.ArrayBufferView=function(V2,prefix,argument,flags){if(webidl.util.Type(V2)!==OBJECT||!types.isArrayBufferView(V2))throw webidl.errors.conversionFailed({prefix,argument:`${argument} ("${webidl.util.Stringify(V2)}")`,types:["ArrayBufferView"]});if(!webidl.util.HasFlag(flags,webidl.attributes.AllowShared)&&types.isSharedArrayBuffer(V2.buffer))throw webidl.errors.exception({header:prefix,message:`${argument} cannot be a view on a shared array buffer.`});if(!webidl.util.HasFlag(flags,webidl.attributes.AllowResizable)&&webidl.util.IsResizableArrayBuffer(V2.buffer))throw webidl.errors.exception({header:prefix,message:`${argument} cannot be a view on a resizable array buffer.`});return V2};webidl.converters.BufferSource=function(V2,prefix,argument,flags){if(types.isArrayBuffer(V2))return webidl.converters.ArrayBuffer(V2,prefix,argument,flags);if(types.isArrayBufferView(V2))return flags&=~webidl.attributes.AllowShared,webidl.converters.ArrayBufferView(V2,prefix,argument,flags);throw types.isSharedArrayBuffer(V2)?webidl.errors.exception({header:prefix,message:`${argument} cannot be a SharedArrayBuffer.`}):webidl.errors.conversionFailed({prefix,argument:`${argument} ("${webidl.util.Stringify(V2)}")`,types:["ArrayBuffer","ArrayBufferView"]})};webidl.converters.AllowSharedBufferSource=function(V2,prefix,argument,flags){if(types.isArrayBuffer(V2))return webidl.converters.ArrayBuffer(V2,prefix,argument,flags);if(types.isSharedArrayBuffer(V2))return webidl.converters.SharedArrayBuffer(V2,prefix,argument,flags);if(types.isArrayBufferView(V2))return flags|=webidl.attributes.AllowShared,webidl.converters.ArrayBufferView(V2,prefix,argument,flags);throw webidl.errors.conversionFailed({prefix,argument:`${argument} ("${webidl.util.Stringify(V2)}")`,types:["ArrayBuffer","SharedArrayBuffer","ArrayBufferView"]})};webidl.converters["sequence<ByteString>"]=webidl.sequenceConverter(webidl.converters.ByteString);webidl.converters["sequence<sequence<ByteString>>"]=webidl.sequenceConverter(webidl.converters["sequence<ByteString>"]);webidl.converters["record<ByteString, ByteString>"]=webidl.recordConverter(webidl.converters.ByteString,webidl.converters.ByteString);webidl.converters.Blob=webidl.interfaceConverter(webidl.is.Blob,"Blob");webidl.converters.AbortSignal=webidl.interfaceConverter(webidl.is.AbortSignal,"AbortSignal");webidl.converters.EventHandlerNonNull=function(V2){return webidl.util.Type(V2)!==OBJECT?null:typeof V2=="function"?V2:()=>{}};webidl.attributes={Clamp:1,EnforceRange:2,AllowShared:4,AllowResizable:8,LegacyNullToEmptyString:16};module.exports={webidl}}});var require_util2=__commonJS({"packages/agent-forge/node_modules/undici/lib/web/fetch/util.js"(exports,module){"use strict";var{Transform:Transform2}=__require("node:stream"),zlib=__require("node:zlib"),{redirectStatusSet,referrerPolicyTokens,badPortsSet}=require_constants3(),{getGlobalOrigin}=require_global(),{collectAnHTTPQuotedString,parseMIMEType}=require_data_url(),{performance:performance3}=__require("node:perf_hooks"),{ReadableStreamFrom,isValidHTTPToken,normalizedMethodRecordsBase}=require_util(),assert=__require("node:assert"),{isUint8Array}=__require("node:util/types"),{webidl}=require_webidl(),{isomorphicEncode,collectASequenceOfCodePoints,removeChars}=require_infra();function responseURL(response){let urlList=response.urlList,length=urlList.length;return length===0?null:urlList[length-1].toString()}function responseLocationURL(response,requestFragment){if(!redirectStatusSet.has(response.status))return null;let location=response.headersList.get("location",!0);return location!==null&&isValidHeaderValue(location)&&(isValidEncodedURL(location)||(location=normalizeBinaryStringToUtf8(location)),location=new URL(location,responseURL(response))),location&&!location.hash&&(location.hash=requestFragment),location}function isValidEncodedURL(url){for(let i=0;i<url.length;++i){let code=url.charCodeAt(i);if(code>126||code<32)return!1}return!0}function normalizeBinaryStringToUtf8(value){return Buffer.from(value,"binary").toString("utf8")}function requestCurrentURL(request){return request.urlList[request.urlList.length-1]}function requestBadPort(request){let url=requestCurrentURL(request);return urlIsHttpHttpsScheme(url)&&badPortsSet.has(url.port)?"blocked":"allowed"}function isErrorLike(object){return object instanceof Error||object?.constructor?.name==="Error"||object?.constructor?.name==="DOMException"}function isValidReasonPhrase(statusText){for(let i=0;i<statusText.length;++i){let c2=statusText.charCodeAt(i);if(!(c2===9||c2>=32&&c2<=126||c2>=128&&c2<=255))return!1}return!0}var isValidHeaderName=isValidHTTPToken;function isValidHeaderValue(potentialValue){return(potentialValue[0]===" "||potentialValue[0]===" "||potentialValue[potentialValue.length-1]===" "||potentialValue[potentialValue.length-1]===" "||potentialValue.includes(`
|
|
2
|
+
import{cleanupSessionResources,registerSessionResourceCleanup,uuidv7}from"./chunk-JUUC5AZY.js";import{require_bash,require_c,require_core,require_cpp,require_csharp,require_dart,require_go,require_groovy,require_java,require_javascript,require_kotlin,require_lua,require_nix,require_perl,require_php,require_python,require_ruby,require_rust,require_scala,require_swift,require_typescript}from"./chunk-XDUWOHPL.js";import{t}from"./chunk-WJSKB3FC.js";import{getProviderEnvValue}from"./chunk-BVVSHK6W.js";import{parseJsonWithRepair,parseStreamingJson,repairJson}from"./chunk-TRDNDS6A.js";import{InMemoryCredentialStore,InMemoryModelsStore,ModelsError,calculateCost,clampThinkingLevel,createModels,createProvider,defaultProviderAuthContext,getSupportedThinkingLevels,hasApi,lazyApi,lazyStream,modelsAreEqual,resolveProviderAuth}from"./chunk-K3S6GTL7.js";import{AssistantMessageEventStream,EventStream,appendAssistantMessageDiagnostic,createAssistantMessageDiagnostic,createAssistantMessageEventStream,extractDiagnosticError,formatThrownValue}from"./chunk-5LRQFZFE.js";import{__commonJS,__export,__require,__toESM}from"./chunk-4L3WN2XY.js";var require_windows=__commonJS({"node_modules/isexe/windows.js"(exports,module){module.exports=isexe;isexe.sync=sync;var fs5=__require("fs");function checkPathExt(path7,options){var pathext=options.pathExt!==void 0?options.pathExt:process.env.PATHEXT;if(!pathext||(pathext=pathext.split(";"),pathext.indexOf("")!==-1))return!0;for(var i=0;i<pathext.length;i++){var p=pathext[i].toLowerCase();if(p&&path7.substr(-p.length).toLowerCase()===p)return!0}return!1}function checkStat(stat3,path7,options){return!stat3.isSymbolicLink()&&!stat3.isFile()?!1:checkPathExt(path7,options)}function isexe(path7,options,cb){fs5.stat(path7,function(er,stat3){cb(er,er?!1:checkStat(stat3,path7,options))})}function sync(path7,options){return checkStat(fs5.statSync(path7),path7,options)}}});var require_mode=__commonJS({"node_modules/isexe/mode.js"(exports,module){module.exports=isexe;isexe.sync=sync;var fs5=__require("fs");function isexe(path7,options,cb){fs5.stat(path7,function(er,stat3){cb(er,er?!1:checkStat(stat3,options))})}function sync(path7,options){return checkStat(fs5.statSync(path7),options)}function checkStat(stat3,options){return stat3.isFile()&&checkMode(stat3,options)}function checkMode(stat3,options){var mod=stat3.mode,uid=stat3.uid,gid=stat3.gid,myUid=options.uid!==void 0?options.uid:process.getuid&&process.getuid(),myGid=options.gid!==void 0?options.gid:process.getgid&&process.getgid(),u=parseInt("100",8),g2=parseInt("010",8),o=parseInt("001",8),ug=u|g2,ret=mod&o||mod&g2&&gid===myGid||mod&u&&uid===myUid||mod&ug&&myUid===0;return ret}}});var require_isexe=__commonJS({"node_modules/isexe/index.js"(exports,module){var fs5=__require("fs"),core;process.platform==="win32"||global.TESTING_WINDOWS?core=require_windows():core=require_mode();module.exports=isexe;isexe.sync=sync;function isexe(path7,options,cb){if(typeof options=="function"&&(cb=options,options={}),!cb){if(typeof Promise!="function")throw new TypeError("callback not provided");return new Promise(function(resolve5,reject){isexe(path7,options||{},function(er,is){er?reject(er):resolve5(is)})})}core(path7,options||{},function(er,is){er&&(er.code==="EACCES"||options&&options.ignoreErrors)&&(er=null,is=!1),cb(er,is)})}function sync(path7,options){try{return core.sync(path7,options||{})}catch(er){if(options&&options.ignoreErrors||er.code==="EACCES")return!1;throw er}}}});var require_which=__commonJS({"node_modules/which/which.js"(exports,module){var isWindows=process.platform==="win32"||process.env.OSTYPE==="cygwin"||process.env.OSTYPE==="msys",path7=__require("path"),COLON=isWindows?";":":",isexe=require_isexe(),getNotFoundError2=cmd=>Object.assign(new Error(`not found: ${cmd}`),{code:"ENOENT"}),getPathInfo=(cmd,opt)=>{let colon=opt.colon||COLON,pathEnv=cmd.match(/\//)||isWindows&&cmd.match(/\\/)?[""]:[...isWindows?[process.cwd()]:[],...(opt.path||process.env.PATH||"").split(colon)],pathExtExe=isWindows?opt.pathExt||process.env.PATHEXT||".EXE;.CMD;.BAT;.COM":"",pathExt=isWindows?pathExtExe.split(colon):[""];return isWindows&&cmd.indexOf(".")!==-1&&pathExt[0]!==""&&pathExt.unshift(""),{pathEnv,pathExt,pathExtExe}},which=(cmd,opt,cb)=>{typeof opt=="function"&&(cb=opt,opt={}),opt||(opt={});let{pathEnv,pathExt,pathExtExe}=getPathInfo(cmd,opt),found=[],step=i=>new Promise((resolve5,reject)=>{if(i===pathEnv.length)return opt.all&&found.length?resolve5(found):reject(getNotFoundError2(cmd));let ppRaw=pathEnv[i],pathPart=/^".*"$/.test(ppRaw)?ppRaw.slice(1,-1):ppRaw,pCmd=path7.join(pathPart,cmd),p=!pathPart&&/^\.[\\\/]/.test(cmd)?cmd.slice(0,2)+pCmd:pCmd;resolve5(subStep(p,i,0))}),subStep=(p,i,ii)=>new Promise((resolve5,reject)=>{if(ii===pathExt.length)return resolve5(step(i+1));let ext=pathExt[ii];isexe(p+ext,{pathExt:pathExtExe},(er,is)=>{if(!er&&is)if(opt.all)found.push(p+ext);else return resolve5(p+ext);return resolve5(subStep(p,i,ii+1))})});return cb?step(0).then(res=>cb(null,res),cb):step(0)},whichSync=(cmd,opt)=>{opt=opt||{};let{pathEnv,pathExt,pathExtExe}=getPathInfo(cmd,opt),found=[];for(let i=0;i<pathEnv.length;i++){let ppRaw=pathEnv[i],pathPart=/^".*"$/.test(ppRaw)?ppRaw.slice(1,-1):ppRaw,pCmd=path7.join(pathPart,cmd),p=!pathPart&&/^\.[\\\/]/.test(cmd)?cmd.slice(0,2)+pCmd:pCmd;for(let j2=0;j2<pathExt.length;j2++){let cur=p+pathExt[j2];try{if(isexe.sync(cur,{pathExt:pathExtExe}))if(opt.all)found.push(cur);else return cur}catch{}}}if(opt.all&&found.length)return found;if(opt.nothrow)return null;throw getNotFoundError2(cmd)};module.exports=which;which.sync=whichSync}});var require_path_key=__commonJS({"node_modules/path-key/index.js"(exports,module){"use strict";var pathKey=(options={})=>{let environment=options.env||process.env;return(options.platform||process.platform)!=="win32"?"PATH":Object.keys(environment).reverse().find(key=>key.toUpperCase()==="PATH")||"Path"};module.exports=pathKey;module.exports.default=pathKey}});var require_resolveCommand=__commonJS({"node_modules/cross-spawn/lib/util/resolveCommand.js"(exports,module){"use strict";var path7=__require("path"),which=require_which(),getPathKey=require_path_key();function resolveCommandAttempt(parsed,withoutPathExt){let env2=parsed.options.env||process.env,cwd=process.cwd(),hasCustomCwd=parsed.options.cwd!=null,shouldSwitchCwd=hasCustomCwd&&process.chdir!==void 0&&!process.chdir.disabled;if(shouldSwitchCwd)try{process.chdir(parsed.options.cwd)}catch{}let resolved;try{resolved=which.sync(parsed.command,{path:env2[getPathKey({env:env2})],pathExt:withoutPathExt?path7.delimiter:void 0})}catch{}finally{shouldSwitchCwd&&process.chdir(cwd)}return resolved&&(resolved=path7.resolve(hasCustomCwd?parsed.options.cwd:"",resolved)),resolved}function resolveCommand(parsed){return resolveCommandAttempt(parsed)||resolveCommandAttempt(parsed,!0)}module.exports=resolveCommand}});var require_escape=__commonJS({"node_modules/cross-spawn/lib/util/escape.js"(exports,module){"use strict";var metaCharsRegExp=/([()\][%!^"`<>&|;, *?])/g;function escapeCommand(arg){return arg=arg.replace(metaCharsRegExp,"^$1"),arg}function escapeArgument(arg,doubleEscapeMetaChars){return arg=`${arg}`,arg=arg.replace(/(?=(\\+?)?)\1"/g,'$1$1\\"'),arg=arg.replace(/(?=(\\+?)?)\1$/,"$1$1"),arg=`"${arg}"`,arg=arg.replace(metaCharsRegExp,"^$1"),doubleEscapeMetaChars&&(arg=arg.replace(metaCharsRegExp,"^$1")),arg}module.exports.command=escapeCommand;module.exports.argument=escapeArgument}});var require_shebang_regex=__commonJS({"node_modules/shebang-regex/index.js"(exports,module){"use strict";module.exports=/^#!(.*)/}});var require_shebang_command=__commonJS({"node_modules/shebang-command/index.js"(exports,module){"use strict";var shebangRegex=require_shebang_regex();module.exports=(string="")=>{let match=string.match(shebangRegex);if(!match)return null;let[path7,argument]=match[0].replace(/#! ?/,"").split(" "),binary=path7.split("/").pop();return binary==="env"?argument:argument?`${binary} ${argument}`:binary}}});var require_readShebang=__commonJS({"node_modules/cross-spawn/lib/util/readShebang.js"(exports,module){"use strict";var fs5=__require("fs"),shebangCommand=require_shebang_command();function readShebang(command){let buffer=Buffer.alloc(150),fd;try{fd=fs5.openSync(command,"r"),fs5.readSync(fd,buffer,0,150,0),fs5.closeSync(fd)}catch{}return shebangCommand(buffer.toString())}module.exports=readShebang}});var require_parse=__commonJS({"node_modules/cross-spawn/lib/parse.js"(exports,module){"use strict";var path7=__require("path"),resolveCommand=require_resolveCommand(),escape=require_escape(),readShebang=require_readShebang(),isWin=process.platform==="win32",isExecutableRegExp=/\.(?:com|exe)$/i,isCmdShimRegExp=/node_modules[\\/].bin[\\/][^\\/]+\.cmd$/i;function detectShebang(parsed){parsed.file=resolveCommand(parsed);let shebang=parsed.file&&readShebang(parsed.file);return shebang?(parsed.args.unshift(parsed.file),parsed.command=shebang,resolveCommand(parsed)):parsed.file}function parseNonShell(parsed){if(!isWin)return parsed;let commandFile=detectShebang(parsed),needsShell=!isExecutableRegExp.test(commandFile);if(parsed.options.forceShell||needsShell){let needsDoubleEscapeMetaChars=isCmdShimRegExp.test(commandFile);parsed.command=path7.normalize(parsed.command),parsed.command=escape.command(parsed.command),parsed.args=parsed.args.map(arg=>escape.argument(arg,needsDoubleEscapeMetaChars));let shellCommand=[parsed.command].concat(parsed.args).join(" ");parsed.args=["/d","/s","/c",`"${shellCommand}"`],parsed.command=process.env.comspec||"cmd.exe",parsed.options.windowsVerbatimArguments=!0}return parsed}function parse2(command,args,options){args&&!Array.isArray(args)&&(options=args,args=null),args=args?args.slice(0):[],options=Object.assign({},options);let parsed={command,args,options,file:void 0,original:{command,args}};return options.shell?parsed:parseNonShell(parsed)}module.exports=parse2}});var require_enoent=__commonJS({"node_modules/cross-spawn/lib/enoent.js"(exports,module){"use strict";var isWin=process.platform==="win32";function notFoundError(original,syscall){return Object.assign(new Error(`${syscall} ${original.command} ENOENT`),{code:"ENOENT",errno:"ENOENT",syscall:`${syscall} ${original.command}`,path:original.command,spawnargs:original.args})}function hookChildProcess(cp,parsed){if(!isWin)return;let originalEmit=cp.emit;cp.emit=function(name,arg1){if(name==="exit"){let err2=verifyENOENT(arg1,parsed);if(err2)return originalEmit.call(cp,"error",err2)}return originalEmit.apply(cp,arguments)}}function verifyENOENT(status2,parsed){return isWin&&status2===1&&!parsed.file?notFoundError(parsed.original,"spawn"):null}function verifyENOENTSync(status2,parsed){return isWin&&status2===1&&!parsed.file?notFoundError(parsed.original,"spawnSync"):null}module.exports={hookChildProcess,verifyENOENT,verifyENOENTSync,notFoundError}}});var require_cross_spawn=__commonJS({"node_modules/cross-spawn/index.js"(exports,module){"use strict";var cp=__require("child_process"),parse2=require_parse(),enoent=require_enoent();function spawn4(command,args,options){let parsed=parse2(command,args,options),spawned=cp.spawn(parsed.command,parsed.args,parsed.options);return enoent.hookChildProcess(spawned,parsed),spawned}function spawnSync3(command,args,options){let parsed=parse2(command,args,options),result=cp.spawnSync(parsed.command,parsed.args,parsed.options);return result.error=result.error||enoent.verifyENOENTSync(result.status,parsed),result}module.exports=spawn4;module.exports.spawn=spawn4;module.exports.sync=spawnSync3;module.exports._parse=parse2;module.exports._enoent=enoent}});var require_symbols=__commonJS({"packages/agent-forge/node_modules/undici/lib/core/symbols.js"(exports,module){"use strict";module.exports={kClose:Symbol("close"),kDestroy:Symbol("destroy"),kDispatch:Symbol("dispatch"),kUrl:Symbol("url"),kRequestOrigin:Symbol("request origin"),kOriginless:Symbol("originless"),kWriting:Symbol("writing"),kResuming:Symbol("resuming"),kQueue:Symbol("queue"),kConnect:Symbol("connect"),kConnecting:Symbol("connecting"),kKeepAliveDefaultTimeout:Symbol("default keep alive timeout"),kKeepAliveMaxTimeout:Symbol("max keep alive timeout"),kKeepAliveTimeoutThreshold:Symbol("keep alive timeout threshold"),kKeepAliveTimeoutValue:Symbol("keep alive timeout"),kKeepAlive:Symbol("keep alive"),kHeadersTimeout:Symbol("headers timeout"),kBodyTimeout:Symbol("body timeout"),kServerName:Symbol("server name"),kLocalAddress:Symbol("local address"),kHost:Symbol("host"),kNoRef:Symbol("no ref"),kBodyUsed:Symbol("used"),kBody:Symbol("abstracted request body"),kRunning:Symbol("running"),kBlocking:Symbol("blocking"),kPending:Symbol("pending"),kSize:Symbol("size"),kBusy:Symbol("busy"),kQueued:Symbol("queued"),kFree:Symbol("free"),kConnected:Symbol("connected"),kClosed:Symbol("closed"),kNeedDrain:Symbol("need drain"),kReset:Symbol("reset"),kDestroyed:Symbol.for("nodejs.stream.destroyed"),kResume:Symbol("resume"),kOnError:Symbol("on error"),kMaxHeadersSize:Symbol("max headers size"),kRunningIdx:Symbol("running index"),kPendingIdx:Symbol("pending index"),kError:Symbol("error"),kClients:Symbol("clients"),kClient:Symbol("client"),kParser:Symbol("parser"),kOnDestroyed:Symbol("destroy callbacks"),kPipelining:Symbol("pipelining"),kSocket:Symbol("socket"),kHostHeader:Symbol("host header"),kConnector:Symbol("connector"),kStrictContentLength:Symbol("strict content length"),kMaxRedirections:Symbol("maxRedirections"),kMaxRequests:Symbol("maxRequestsPerClient"),kProxy:Symbol("proxy agent options"),kCounter:Symbol("socket request counter"),kMaxResponseSize:Symbol("max response size"),kHTTP2Session:Symbol("http2Session"),kHTTP2Options:Symbol("http2 options"),kHTTP2SessionState:Symbol("http2Session state"),kRetryHandlerDefaultRetry:Symbol("retry agent default retry"),kConstruct:Symbol("constructable"),kListeners:Symbol("listeners"),kHTTPContext:Symbol("http context"),kMaxConcurrentStreams:Symbol("max concurrent streams"),kHostAuthority:Symbol("host authority"),kHTTP2InitialWindowSize:Symbol("http2 initial window size"),kHTTP2ConnectionWindowSize:Symbol("http2 connection window size"),kEnableConnectProtocol:Symbol("http2session connect protocol"),kRemoteSettings:Symbol("http2session remote settings"),kHTTP2Stream:Symbol("http2session client stream"),kPingInterval:Symbol("ping interval"),kNoProxyAgent:Symbol("no proxy agent"),kHttpProxyAgent:Symbol("http proxy agent"),kHttpsProxyAgent:Symbol("https proxy agent"),kSocks5ProxyAgent:Symbol("socks5 proxy agent")}}});var require_timers=__commonJS({"packages/agent-forge/node_modules/undici/lib/util/timers.js"(exports,module){"use strict";var fastNow=0,RESOLUTION_MS=1e3,TICK_MS=(RESOLUTION_MS>>1)-1,fastNowTimeout,kFastTimer=Symbol("kFastTimer"),fastTimers=[],NOT_IN_LIST=-2,TO_BE_CLEARED=-1,PENDING=0,ACTIVE=1;function onTick(){fastNow+=TICK_MS;let idx=0,len=fastTimers.length;for(;idx<len;){let timer=fastTimers[idx];timer._state===PENDING?(timer._idleStart=fastNow-TICK_MS,timer._state=ACTIVE):timer._state===ACTIVE&&fastNow>=timer._idleStart+timer._idleTimeout&&(timer._state=TO_BE_CLEARED,timer._idleStart=-1,timer._onTimeout(timer._timerArg)),timer._state===TO_BE_CLEARED?(timer._state=NOT_IN_LIST,--len!==0&&(fastTimers[idx]=fastTimers[len])):++idx}fastTimers.length=len,fastTimers.length!==0&&refreshTimeout()}function refreshTimeout(){fastNowTimeout?.refresh?fastNowTimeout.refresh():(clearTimeout(fastNowTimeout),fastNowTimeout=setTimeout(onTick,TICK_MS),fastNowTimeout?.unref())}var FastTimer=class{[kFastTimer]=!0;_state=NOT_IN_LIST;_idleTimeout=-1;_idleStart=-1;_onTimeout;_timerArg;constructor(callback,delay,arg){this._onTimeout=callback,this._idleTimeout=delay,this._timerArg=arg,this.refresh()}refresh(){this._state===NOT_IN_LIST&&fastTimers.push(this),(!fastNowTimeout||fastTimers.length===1)&&refreshTimeout(),this._state=PENDING}clear(){this._state=TO_BE_CLEARED,this._idleStart=-1}};module.exports={setTimeout(callback,delay,arg){return delay<=RESOLUTION_MS?setTimeout(callback,delay,arg):new FastTimer(callback,delay,arg)},clearTimeout(timeout){timeout[kFastTimer]?timeout.clear():clearTimeout(timeout)},setFastTimeout(callback,delay,arg){return new FastTimer(callback,delay,arg)},clearFastTimeout(timeout){timeout.clear()},now(){return fastNow},tick(delay=0){fastNow+=delay-RESOLUTION_MS+1,onTick(),onTick()},reset(){fastNow=0,fastTimers.length=0,clearTimeout(fastNowTimeout),fastNowTimeout=null},kFastTimer}}});var require_errors=__commonJS({"packages/agent-forge/node_modules/undici/lib/core/errors.js"(exports,module){"use strict";var kUndiciError=Symbol.for("undici.error.UND_ERR"),UndiciError=class extends Error{constructor(message,options){super(message,options),this.name="UndiciError",this.code="UND_ERR"}static[Symbol.hasInstance](instance){return instance&&instance[kUndiciError]===!0}get[kUndiciError](){return!0}},kConnectTimeoutError=Symbol.for("undici.error.UND_ERR_CONNECT_TIMEOUT"),ConnectTimeoutError=class extends UndiciError{constructor(message){super(message),this.name="ConnectTimeoutError",this.message=message||"Connect Timeout Error",this.code="UND_ERR_CONNECT_TIMEOUT"}static[Symbol.hasInstance](instance){return instance&&instance[kConnectTimeoutError]===!0}get[kConnectTimeoutError](){return!0}},kHeadersTimeoutError=Symbol.for("undici.error.UND_ERR_HEADERS_TIMEOUT"),HeadersTimeoutError=class extends UndiciError{constructor(message){super(message),this.name="HeadersTimeoutError",this.message=message||"Headers Timeout Error",this.code="UND_ERR_HEADERS_TIMEOUT"}static[Symbol.hasInstance](instance){return instance&&instance[kHeadersTimeoutError]===!0}get[kHeadersTimeoutError](){return!0}},kHeadersOverflowError=Symbol.for("undici.error.UND_ERR_HEADERS_OVERFLOW"),HeadersOverflowError=class extends UndiciError{constructor(message){super(message),this.name="HeadersOverflowError",this.message=message||"Headers Overflow Error",this.code="UND_ERR_HEADERS_OVERFLOW"}static[Symbol.hasInstance](instance){return instance&&instance[kHeadersOverflowError]===!0}get[kHeadersOverflowError](){return!0}},kBodyTimeoutError=Symbol.for("undici.error.UND_ERR_BODY_TIMEOUT"),BodyTimeoutError=class extends UndiciError{constructor(message){super(message),this.name="BodyTimeoutError",this.message=message||"Body Timeout Error",this.code="UND_ERR_BODY_TIMEOUT"}static[Symbol.hasInstance](instance){return instance&&instance[kBodyTimeoutError]===!0}get[kBodyTimeoutError](){return!0}},kInvalidArgumentError=Symbol.for("undici.error.UND_ERR_INVALID_ARG"),InvalidArgumentError=class extends UndiciError{constructor(message){super(message),this.name="InvalidArgumentError",this.message=message||"Invalid Argument Error",this.code="UND_ERR_INVALID_ARG"}static[Symbol.hasInstance](instance){return instance&&instance[kInvalidArgumentError]===!0}get[kInvalidArgumentError](){return!0}},kInvalidReturnValueError=Symbol.for("undici.error.UND_ERR_INVALID_RETURN_VALUE"),InvalidReturnValueError=class extends UndiciError{constructor(message){super(message),this.name="InvalidReturnValueError",this.message=message||"Invalid Return Value Error",this.code="UND_ERR_INVALID_RETURN_VALUE"}static[Symbol.hasInstance](instance){return instance&&instance[kInvalidReturnValueError]===!0}get[kInvalidReturnValueError](){return!0}},kAbortError=Symbol.for("undici.error.UND_ERR_ABORT"),AbortError=class extends UndiciError{constructor(message){super(message),this.name="AbortError",this.message=message||"The operation was aborted",this.code="UND_ERR_ABORT"}static[Symbol.hasInstance](instance){return instance&&instance[kAbortError]===!0}get[kAbortError](){return!0}},kRequestAbortedError=Symbol.for("undici.error.UND_ERR_ABORTED"),RequestAbortedError=class extends AbortError{constructor(message){super(message),this.name="AbortError",this.message=message||"Request aborted",this.code="UND_ERR_ABORTED"}static[Symbol.hasInstance](instance){return instance&&instance[kRequestAbortedError]===!0}get[kRequestAbortedError](){return!0}},kInformationalError=Symbol.for("undici.error.UND_ERR_INFO"),InformationalError=class extends UndiciError{constructor(message,options){super(message,options),this.name="InformationalError",this.message=message||"Request information",this.code="UND_ERR_INFO"}static[Symbol.hasInstance](instance){return instance&&instance[kInformationalError]===!0}get[kInformationalError](){return!0}},kRequestContentLengthMismatchError=Symbol.for("undici.error.UND_ERR_REQ_CONTENT_LENGTH_MISMATCH"),RequestContentLengthMismatchError=class extends UndiciError{constructor(message){super(message),this.name="RequestContentLengthMismatchError",this.message=message||"Request body length does not match content-length header",this.code="UND_ERR_REQ_CONTENT_LENGTH_MISMATCH"}static[Symbol.hasInstance](instance){return instance&&instance[kRequestContentLengthMismatchError]===!0}get[kRequestContentLengthMismatchError](){return!0}},kResponseContentLengthMismatchError=Symbol.for("undici.error.UND_ERR_RES_CONTENT_LENGTH_MISMATCH"),ResponseContentLengthMismatchError=class extends UndiciError{constructor(message){super(message),this.name="ResponseContentLengthMismatchError",this.message=message||"Response body length does not match content-length header",this.code="UND_ERR_RES_CONTENT_LENGTH_MISMATCH"}static[Symbol.hasInstance](instance){return instance&&instance[kResponseContentLengthMismatchError]===!0}get[kResponseContentLengthMismatchError](){return!0}},kClientDestroyedError=Symbol.for("undici.error.UND_ERR_DESTROYED"),ClientDestroyedError=class extends UndiciError{constructor(message){super(message),this.name="ClientDestroyedError",this.message=message||"The client is destroyed",this.code="UND_ERR_DESTROYED"}static[Symbol.hasInstance](instance){return instance&&instance[kClientDestroyedError]===!0}get[kClientDestroyedError](){return!0}},kClientClosedError=Symbol.for("undici.error.UND_ERR_CLOSED"),ClientClosedError=class extends UndiciError{constructor(message){super(message),this.name="ClientClosedError",this.message=message||"The client is closed",this.code="UND_ERR_CLOSED"}static[Symbol.hasInstance](instance){return instance&&instance[kClientClosedError]===!0}get[kClientClosedError](){return!0}},kSocketError=Symbol.for("undici.error.UND_ERR_SOCKET"),SocketError=class extends UndiciError{constructor(message,socket){super(message),this.name="SocketError",this.message=message||"Socket error",this.code="UND_ERR_SOCKET",this.socket=socket}static[Symbol.hasInstance](instance){return instance&&instance[kSocketError]===!0}get[kSocketError](){return!0}},kNotSupportedError=Symbol.for("undici.error.UND_ERR_NOT_SUPPORTED"),NotSupportedError=class extends UndiciError{constructor(message){super(message),this.name="NotSupportedError",this.message=message||"Not supported error",this.code="UND_ERR_NOT_SUPPORTED"}static[Symbol.hasInstance](instance){return instance&&instance[kNotSupportedError]===!0}get[kNotSupportedError](){return!0}},kBalancedPoolMissingUpstreamError=Symbol.for("undici.error.UND_ERR_BPL_MISSING_UPSTREAM"),BalancedPoolMissingUpstreamError=class extends UndiciError{constructor(message){super(message),this.name="MissingUpstreamError",this.message=message||"No upstream has been added to the BalancedPool",this.code="UND_ERR_BPL_MISSING_UPSTREAM"}static[Symbol.hasInstance](instance){return instance&&instance[kBalancedPoolMissingUpstreamError]===!0}get[kBalancedPoolMissingUpstreamError](){return!0}},kHTTPParserError=Symbol.for("undici.error.UND_ERR_HTTP_PARSER"),HTTPParserError=class extends Error{constructor(message,code,data){super(message),this.name="HTTPParserError",this.code=code?`HPE_${code}`:void 0,this.data=data?data.toString():void 0}static[Symbol.hasInstance](instance){return instance&&instance[kHTTPParserError]===!0}get[kHTTPParserError](){return!0}},kResponseExceededMaxSizeError=Symbol.for("undici.error.UND_ERR_RES_EXCEEDED_MAX_SIZE"),ResponseExceededMaxSizeError=class extends UndiciError{constructor(message){super(message),this.name="ResponseExceededMaxSizeError",this.message=message||"Response content exceeded max size",this.code="UND_ERR_RES_EXCEEDED_MAX_SIZE"}static[Symbol.hasInstance](instance){return instance&&instance[kResponseExceededMaxSizeError]===!0}get[kResponseExceededMaxSizeError](){return!0}},kRequestRetryError=Symbol.for("undici.error.UND_ERR_REQ_RETRY"),RequestRetryError=class extends UndiciError{constructor(message,code,{headers,data}){super(message),this.name="RequestRetryError",this.message=message||"Request retry error",this.code="UND_ERR_REQ_RETRY",this.statusCode=code,this.data=data,this.headers=headers}static[Symbol.hasInstance](instance){return instance&&instance[kRequestRetryError]===!0}get[kRequestRetryError](){return!0}},kResponseError=Symbol.for("undici.error.UND_ERR_RESPONSE"),ResponseError=class extends UndiciError{constructor(message,code,{headers,body}){super(message),this.name="ResponseError",this.message=message||"Response error",this.code="UND_ERR_RESPONSE",this.statusCode=code,this.body=body,this.headers=headers}static[Symbol.hasInstance](instance){return instance&&instance[kResponseError]===!0}get[kResponseError](){return!0}},kSecureProxyConnectionError=Symbol.for("undici.error.UND_ERR_PRX_TLS"),SecureProxyConnectionError=class extends UndiciError{constructor(cause,message,options={}){super(message,{cause,...options}),this.name="SecureProxyConnectionError",this.message=message||"Secure Proxy Connection failed",this.code="UND_ERR_PRX_TLS",this.cause=cause}static[Symbol.hasInstance](instance){return instance&&instance[kSecureProxyConnectionError]===!0}get[kSecureProxyConnectionError](){return!0}},kProxyConnectionError=Symbol.for("undici.error.UND_ERR_PRX_CONN"),ProxyConnectionError=class extends UndiciError{constructor(cause,message,options={}){super(message,{cause,...options}),this.name="ProxyConnectionError",this.message=message||"Proxy Connection failed",this.code="UND_ERR_PRX_CONN",this.cause=cause}static[Symbol.hasInstance](instance){return instance&&instance[kProxyConnectionError]===!0}get[kProxyConnectionError](){return!0}},kMaxOriginsReachedError=Symbol.for("undici.error.UND_ERR_MAX_ORIGINS_REACHED"),MaxOriginsReachedError=class extends UndiciError{constructor(message){super(message),this.name="MaxOriginsReachedError",this.message=message||"Maximum allowed origins reached",this.code="UND_ERR_MAX_ORIGINS_REACHED"}static[Symbol.hasInstance](instance){return instance&&instance[kMaxOriginsReachedError]===!0}get[kMaxOriginsReachedError](){return!0}},Socks5ProxyError=class extends UndiciError{constructor(message,code){super(message),this.name="Socks5ProxyError",this.message=message||"SOCKS5 proxy error",this.code=code||"UND_ERR_SOCKS5"}},kMessageSizeExceededError=Symbol.for("undici.error.UND_ERR_WS_MESSAGE_SIZE_EXCEEDED"),MessageSizeExceededError=class extends UndiciError{constructor(message){super(message),this.name="MessageSizeExceededError",this.message=message||"Max decompressed message size exceeded",this.code="UND_ERR_WS_MESSAGE_SIZE_EXCEEDED"}static[Symbol.hasInstance](instance){return instance&&instance[kMessageSizeExceededError]===!0}get[kMessageSizeExceededError](){return!0}};module.exports={AbortError,HTTPParserError,UndiciError,HeadersTimeoutError,HeadersOverflowError,BodyTimeoutError,RequestContentLengthMismatchError,ConnectTimeoutError,InvalidArgumentError,InvalidReturnValueError,RequestAbortedError,ClientDestroyedError,ClientClosedError,InformationalError,SocketError,NotSupportedError,ResponseContentLengthMismatchError,BalancedPoolMissingUpstreamError,ResponseExceededMaxSizeError,RequestRetryError,ResponseError,SecureProxyConnectionError,ProxyConnectionError,MaxOriginsReachedError,Socks5ProxyError,MessageSizeExceededError}}});var require_constants=__commonJS({"packages/agent-forge/node_modules/undici/lib/core/constants.js"(exports,module){"use strict";var wellknownHeaderNames=["Accept","Accept-Encoding","Accept-Language","Accept-Ranges","Access-Control-Allow-Credentials","Access-Control-Allow-Headers","Access-Control-Allow-Methods","Access-Control-Allow-Origin","Access-Control-Expose-Headers","Access-Control-Max-Age","Access-Control-Request-Headers","Access-Control-Request-Method","Age","Allow","Alt-Svc","Alt-Used","Authorization","Cache-Control","Clear-Site-Data","Connection","Content-Disposition","Content-Encoding","Content-Language","Content-Length","Content-Location","Content-Range","Content-Security-Policy","Content-Security-Policy-Report-Only","Content-Type","Cookie","Cross-Origin-Embedder-Policy","Cross-Origin-Opener-Policy","Cross-Origin-Resource-Policy","Date","Device-Memory","Downlink","ECT","ETag","Expect","Expect-CT","Expires","Forwarded","From","Host","If-Match","If-Modified-Since","If-None-Match","If-Range","If-Unmodified-Since","Keep-Alive","Last-Modified","Link","Location","Max-Forwards","Origin","Permissions-Policy","Pragma","Proxy-Authenticate","Proxy-Authorization","RTT","Range","Referer","Referrer-Policy","Refresh","Retry-After","Sec-WebSocket-Accept","Sec-WebSocket-Extensions","Sec-WebSocket-Key","Sec-WebSocket-Protocol","Sec-WebSocket-Version","Server","Server-Timing","Service-Worker-Allowed","Service-Worker-Navigation-Preload","Set-Cookie","SourceMap","Strict-Transport-Security","Supports-Loading-Mode","TE","Timing-Allow-Origin","Trailer","Transfer-Encoding","Upgrade","Upgrade-Insecure-Requests","User-Agent","Vary","Via","WWW-Authenticate","X-Content-Type-Options","X-DNS-Prefetch-Control","X-Frame-Options","X-Permitted-Cross-Domain-Policies","X-Powered-By","X-Requested-With","X-XSS-Protection"],headerNameLowerCasedRecord={};Object.setPrototypeOf(headerNameLowerCasedRecord,null);for(let i=0;i<wellknownHeaderNames.length;++i){let key=wellknownHeaderNames[i],lowerCasedKey=key.toLowerCase();headerNameLowerCasedRecord[key]=headerNameLowerCasedRecord[lowerCasedKey]=lowerCasedKey}module.exports={wellknownHeaderNames,headerNameLowerCasedRecord}}});var require_tree=__commonJS({"packages/agent-forge/node_modules/undici/lib/core/tree.js"(exports,module){"use strict";var{wellknownHeaderNames,headerNameLowerCasedRecord}=require_constants(),TstNode=class _TstNode{value=null;left=null;middle=null;right=null;code;constructor(key,value,index3){if(index3===void 0||index3>=key.length)throw new TypeError("Unreachable");if((this.code=key.charCodeAt(index3))>127)throw new TypeError("key must be ascii string");key.length!==++index3?this.middle=new _TstNode(key,value,index3):this.value=value}add(key,value){let length=key.length;if(length===0)throw new TypeError("Unreachable");let index3=0,node=this;for(;;){let code=key.charCodeAt(index3);if(code>127)throw new TypeError("key must be ascii string");if(node.code===code)if(length===++index3){node.value=value;break}else if(node.middle!==null)node=node.middle;else{node.middle=new _TstNode(key,value,index3);break}else if(node.code<code)if(node.left!==null)node=node.left;else{node.left=new _TstNode(key,value,index3);break}else if(node.right!==null)node=node.right;else{node.right=new _TstNode(key,value,index3);break}}}search(key){let keylength=key.length,index3=0,node=this;for(;node!==null&&index3<keylength;){let code=key[index3];for(code<=90&&code>=65&&(code|=32);node!==null;){if(code===node.code){if(keylength===++index3)return node;node=node.middle;break}node=node.code<code?node.left:node.right}}return null}},TernarySearchTree=class{node=null;insert(key,value){this.node===null?this.node=new TstNode(key,value,0):this.node.add(key,value)}lookup(key){return this.node?.search(key)?.value??null}},tree=new TernarySearchTree;for(let i=0;i<wellknownHeaderNames.length;++i){let key=headerNameLowerCasedRecord[wellknownHeaderNames[i]];tree.insert(key,key)}module.exports={TernarySearchTree,tree}}});var require_util=__commonJS({"packages/agent-forge/node_modules/undici/lib/core/util.js"(exports,module){"use strict";var assert=__require("node:assert"),{kDestroyed,kBodyUsed,kListeners,kBody}=require_symbols(),{IncomingMessage}=__require("node:http"),stream2=__require("node:stream"),net=__require("node:net"),{stringify}=__require("node:querystring"),{EventEmitter:EE,addAbortListener:addAbortListenerNative}=__require("node:events"),timers=require_timers(),{InvalidArgumentError,ConnectTimeoutError}=require_errors(),{headerNameLowerCasedRecord}=require_constants(),{tree}=require_tree(),BodyAsyncIterable=class{constructor(body){this[kBody]=body,this[kBodyUsed]=!1}async*[Symbol.asyncIterator](){assert(!this[kBodyUsed],"disturbed"),this[kBodyUsed]=!0,yield*this[kBody]}};function noop(){}function wrapRequestBody(body){return isStream(body)?(bodyLength(body)===0&&body.on("data",function(){assert(!1)}),typeof body.readableDidRead!="boolean"&&(body[kBodyUsed]=!1,EE.prototype.on.call(body,"data",function(){this[kBodyUsed]=!0})),body):body&&typeof body.pipeTo=="function"?new BodyAsyncIterable(body):body&&isFormDataLike(body)?body:body&&typeof body!="string"&&!ArrayBuffer.isView(body)&&isIterable(body)?new BodyAsyncIterable(body):body}function isStream(obj){return obj&&typeof obj=="object"&&typeof obj.pipe=="function"&&typeof obj.on=="function"}function isBlobLike(object){return object instanceof Blob}function pathHasQueryOrFragment(url){return url.includes("?")||url.includes("#")}function serializePathWithQuery(url,queryParams){if(pathHasQueryOrFragment(url))throw new Error('Query params cannot be passed when url already contains "?" or "#".');let stringified=stringify(queryParams);return stringified&&(url+="?"+stringified),url}function isValidPort(port){let value=parseInt(port,10);return value===Number(port)&&value>=0&&value<=65535}function isHttpOrHttpsPrefixed(value){return value!=null&&value[0]==="h"&&value[1]==="t"&&value[2]==="t"&&value[3]==="p"&&(value[4]===":"||value[4]==="s"&&value[5]===":")}function parseURL(url){if(typeof url=="string"){if(url=new URL(url),!isHttpOrHttpsPrefixed(url.origin||url.protocol))throw new InvalidArgumentError("Invalid URL protocol: the URL must start with `http:` or `https:`.");return url}if(!url||typeof url!="object")throw new InvalidArgumentError("Invalid URL: The URL argument must be a non-null object.");if(!(url instanceof URL)){if(url.port!=null&&url.port!==""&&isValidPort(url.port)===!1)throw new InvalidArgumentError("Invalid URL: port must be a valid integer or a string representation of an integer.");if(url.path!=null&&typeof url.path!="string")throw new InvalidArgumentError("Invalid URL path: the path must be a string or null/undefined.");if(url.pathname!=null&&typeof url.pathname!="string")throw new InvalidArgumentError("Invalid URL pathname: the pathname must be a string or null/undefined.");if(url.hostname!=null&&typeof url.hostname!="string")throw new InvalidArgumentError("Invalid URL hostname: the hostname must be a string or null/undefined.");if(url.origin!=null&&typeof url.origin!="string")throw new InvalidArgumentError("Invalid URL origin: the origin must be a string or null/undefined.");if(!isHttpOrHttpsPrefixed(url.origin||url.protocol))throw new InvalidArgumentError("Invalid URL protocol: the URL must start with `http:` or `https:`.");let port=url.port!=null?url.port:url.protocol==="https:"?443:80,origin=url.origin!=null?url.origin:`${url.protocol||""}//${url.hostname||""}:${port}`,path7=url.path!=null?url.path:`${url.pathname||""}${url.search||""}`;return origin[origin.length-1]==="/"&&(origin=origin.slice(0,origin.length-1)),path7&&path7[0]!=="/"&&(path7=`/${path7}`),new URL(`${origin}${path7}`)}if(!isHttpOrHttpsPrefixed(url.origin||url.protocol))throw new InvalidArgumentError("Invalid URL protocol: the URL must start with `http:` or `https:`.");return url}function parseOrigin(url){if(url=parseURL(url),url.pathname!=="/"||url.search||url.hash)throw new InvalidArgumentError("invalid url");return url}function getHostname(host){if(host[0]==="["){let idx2=host.indexOf("]");return assert(idx2!==-1),host.substring(1,idx2)}let idx=host.indexOf(":");return idx===-1?host:host.substring(0,idx)}function getServerName(host){if(!host)return null;assert(typeof host=="string");let servername=getHostname(host);return net.isIP(servername)?"":servername}function deepClone(obj){return JSON.parse(JSON.stringify(obj))}function isAsyncIterable(obj){return obj!=null&&typeof obj[Symbol.asyncIterator]=="function"}function isIterable(obj){return obj!=null&&(typeof obj[Symbol.iterator]=="function"||typeof obj[Symbol.asyncIterator]=="function")}function hasSafeIterator(obj){let prototype=Object.getPrototypeOf(obj);return Object.hasOwn(obj,Symbol.iterator)||prototype!=null&&prototype!==Object.prototype&&typeof obj[Symbol.iterator]=="function"}function bodyLength(body){if(body==null)return 0;if(isStream(body)){let state2=body._readableState;return state2&&state2.objectMode===!1&&state2.ended===!0&&Number.isFinite(state2.length)?state2.length:null}else{if(isBlobLike(body))return body.size!=null?body.size:null;if(isBuffer(body))return body.byteLength}return null}function isDestroyed(body){return body&&!!(body.destroyed||body[kDestroyed]||stream2.isDestroyed?.(body))}function destroy(stream3,err2){if(!(stream3==null||!isStream(stream3)||isDestroyed(stream3))){if(typeof stream3.destroy=="function"){Object.getPrototypeOf(stream3).constructor===IncomingMessage&&(stream3.socket=null);try{stream3.destroy(err2)}catch{}}else err2&&queueMicrotask(()=>{stream3.emit("error",err2)});stream3.destroyed!==!0&&(stream3[kDestroyed]=!0)}}var KEEPALIVE_TIMEOUT_EXPR=/timeout=(\d+)/;function parseKeepAliveTimeout(val){let m2=val.match(KEEPALIVE_TIMEOUT_EXPR);return m2?parseInt(m2[1],10)*1e3:null}function headerNameToString(value){return typeof value=="string"?headerNameLowerCasedRecord[value]??value.toLowerCase():tree.lookup(value)??value.toString("latin1").toLowerCase()}function bufferToLowerCasedHeaderName(value){return tree.lookup(value)??value.toString("latin1").toLowerCase()}function parseHeaders(headers,obj){obj===void 0&&(obj={});for(let i=0;i<headers.length;i+=2){let key=headerNameToString(headers[i]),val=obj[key];if(val!==void 0)if(Object.hasOwn(obj,key))typeof val=="string"&&(val=[val],obj[key]=val),val.push(headers[i+1].toString("latin1"));else{let headersValue=typeof headers[i+1]=="string"?headers[i+1]:Array.isArray(headers[i+1])?headers[i+1].map(x2=>x2.toString("latin1")):headers[i+1].toString("latin1");key==="__proto__"?Object.defineProperty(obj,key,{value:headersValue,enumerable:!0,configurable:!0,writable:!0}):obj[key]=headersValue}else{let headersValue=typeof headers[i+1]=="string"?headers[i+1]:Array.isArray(headers[i+1])?headers[i+1].map(x2=>x2.toString("latin1")):headers[i+1].toString("latin1");obj[key]=headersValue}}return obj}function parseRawHeaders(headers){if(headers==null)return[];if(!Array.isArray(headers)){let rawHeaders=[];for(let[name,value]of Object.entries(headers))if(Array.isArray(value))for(let entry of value)rawHeaders.push(name,`${entry}`);else rawHeaders.push(name,`${value}`);return rawHeaders}let headersLength=headers.length,ret=new Array(headersLength),key,val;for(let n=0;n<headersLength;n+=2)key=headers[n],val=headers[n+1],typeof key!="string"&&(key=key.toString()),typeof val!="string"&&(val=val.toString("latin1")),ret[n]=key,ret[n+1]=val;return ret}function toRawHeaders(headers){let rawHeaders=[];for(let[name,value]of Object.entries(headers))if(Array.isArray(value))for(let entry of value)rawHeaders.push(Buffer.from(name,"latin1"),Buffer.from(`${entry}`,"latin1"));else rawHeaders.push(Buffer.from(name,"latin1"),Buffer.from(`${value}`,"latin1"));return rawHeaders}function encodeRawHeaders(headers){if(!Array.isArray(headers))throw new TypeError("expected headers to be an array");return headers.map(x2=>Buffer.from(x2))}function isBuffer(buffer){return buffer instanceof Uint8Array||Buffer.isBuffer(buffer)}function assertRequestHandler(handler,method,upgrade){if(!handler||typeof handler!="object")throw new InvalidArgumentError("handler must be an object");if(typeof handler.onRequestStart!="function")throw new InvalidArgumentError("invalid onRequestStart method");if(typeof handler.onResponseError!="function")throw new InvalidArgumentError("invalid onResponseError method");if(typeof handler.onBodySent!="function"&&handler.onBodySent!==void 0)throw new InvalidArgumentError("invalid onBodySent method");if(typeof handler.onRequestSent!="function"&&handler.onRequestSent!==void 0)throw new InvalidArgumentError("invalid onRequestSent method");if(upgrade||method==="CONNECT"){if(typeof handler.onRequestUpgrade!="function")throw new InvalidArgumentError("invalid onRequestUpgrade method")}else{if(typeof handler.onResponseStart!="function")throw new InvalidArgumentError("invalid onResponseStart method");if(typeof handler.onResponseData!="function")throw new InvalidArgumentError("invalid onResponseData method");if(typeof handler.onResponseEnd!="function")throw new InvalidArgumentError("invalid onResponseEnd method")}}function isDisturbed(body){return!!(body&&(stream2.isDisturbed(body)||body[kBodyUsed]))}function getSocketInfo(socket){return{localAddress:socket.localAddress,localPort:socket.localPort,remoteAddress:socket.remoteAddress,remotePort:socket.remotePort,remoteFamily:socket.remoteFamily,timeout:socket.timeout,bytesWritten:socket.bytesWritten,bytesRead:socket.bytesRead}}function ReadableStreamFrom(iterable){let iterator;return new ReadableStream({start(){iterator=iterable[Symbol.asyncIterator]()},pull(controller){return iterator.next().then(({done,value})=>{if(done)return queueMicrotask(()=>{controller.close(),controller.byobRequest?.respond(0)});{let buf=Buffer.isBuffer(value)?value:Buffer.from(value);return buf.byteLength?controller.enqueue(new Uint8Array(buf)):this.pull(controller)}})},cancel(){return iterator.return()},type:"bytes"})}function isFormDataLike(object){return object&&typeof object=="object"&&typeof object.append=="function"&&typeof object.delete=="function"&&typeof object.get=="function"&&typeof object.getAll=="function"&&typeof object.has=="function"&&typeof object.set=="function"&&object[Symbol.toStringTag]==="FormData"}function addAbortListener(signal,listener){return!signal||"aborted"in signal?addAbortListenerNative(signal,listener)[Symbol.dispose]:typeof signal.addEventListener=="function"?(signal.addEventListener("abort",listener,{once:!0}),()=>signal.removeEventListener("abort",listener)):(signal.once("abort",listener),()=>signal.removeListener("abort",listener))}var validTokenChars=new Uint8Array([0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,1,1,1,1,0,0,1,1,0,1,1,0,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]);function isTokenCharCode(c2){return validTokenChars[c2]===1}var tokenRegExp=/^[\^_`a-zA-Z\-0-9!#$%&'*+.|~]+$/;function isValidHTTPToken(characters){if(characters.length>=12)return tokenRegExp.test(characters);if(characters.length===0)return!1;for(let i=0;i<characters.length;i++)if(validTokenChars[characters.charCodeAt(i)]!==1)return!1;return!0}var headerCharRegex=/[^\t\x20-\x7e\x80-\xff]/;function isValidHeaderValue(characters){return!headerCharRegex.test(characters)}var rangeHeaderRegex=/^bytes (\d+)-(\d+)\/(\d+|\*)?$/;function parseRangeHeader(range){if(range==null||range==="")return{start:0,end:null,size:null};if(!range)return null;let m2=rangeHeaderRegex.exec(range);return m2?{start:parseInt(m2[1]),end:m2[2]?parseInt(m2[2]):null,size:m2[3]&&m2[3]!=="*"?parseInt(m2[3]):null}:null}function addListener(obj,name,listener){return(obj[kListeners]??=[]).push([name,listener]),obj.on(name,listener),obj}function removeAllListeners(obj){if(obj[kListeners]!=null){for(let[name,listener]of obj[kListeners])obj.removeListener(name,listener);obj[kListeners]=null}return obj}function errorRequest(client,request,err2){try{request.onResponseError(err2),assert(request.aborted)}catch(err3){client.emit("error",err3)}}var setupConnectTimeout=process.platform==="win32"?(socketWeakRef,opts)=>{if(!opts.timeout)return noop;let s1=null,s2=null,fastTimer=timers.setFastTimeout(()=>{s1=setImmediate(()=>{s2=setImmediate(()=>onConnectTimeout(socketWeakRef.deref(),opts))})},opts.timeout);return()=>{timers.clearFastTimeout(fastTimer),clearImmediate(s1),clearImmediate(s2)}}:(socketWeakRef,opts)=>{if(!opts.timeout)return noop;let s1=null,fastTimer=timers.setFastTimeout(()=>{s1=setImmediate(()=>{onConnectTimeout(socketWeakRef.deref(),opts)})},opts.timeout);return()=>{timers.clearFastTimeout(fastTimer),clearImmediate(s1)}};function onConnectTimeout(socket,opts){if(socket==null)return;let message="Connect Timeout Error";Array.isArray(socket.autoSelectFamilyAttemptedAddresses)?message+=` (attempted addresses: ${socket.autoSelectFamilyAttemptedAddresses.join(", ")},`:message+=` (attempted address: ${opts.hostname}:${opts.port},`,message+=` timeout: ${opts.timeout}ms)`,destroy(socket,new ConnectTimeoutError(message))}var lastUrlString=null,lastProtocol=null;function getProtocolFromUrlString(urlString){if(urlString===lastUrlString)return lastProtocol;let protocol=getProtocolFromUrlStringSlow(urlString);return lastUrlString=urlString,lastProtocol=protocol,protocol}function getProtocolFromUrlStringSlow(urlString){if(urlString[0]==="h"&&urlString[1]==="t"&&urlString[2]==="t"&&urlString[3]==="p")switch(urlString[4]){case":":return"http:";case"s":if(urlString[5]===":")return"https:"}return urlString.slice(0,urlString.indexOf(":")+1)}var kEnumerableProperty={__proto__:null,enumerable:!0},normalizedMethodRecordsBase={delete:"DELETE",DELETE:"DELETE",get:"GET",GET:"GET",head:"HEAD",HEAD:"HEAD",options:"OPTIONS",OPTIONS:"OPTIONS",post:"POST",POST:"POST",put:"PUT",PUT:"PUT",query:"QUERY",QUERY:"QUERY"},normalizedMethodRecords={...normalizedMethodRecordsBase,patch:"patch",PATCH:"PATCH"};Object.setPrototypeOf(normalizedMethodRecordsBase,null);Object.setPrototypeOf(normalizedMethodRecords,null);module.exports={kEnumerableProperty,isDisturbed,isBlobLike,parseOrigin,parseURL,getServerName,isStream,isIterable,hasSafeIterator,isAsyncIterable,isDestroyed,headerNameToString,bufferToLowerCasedHeaderName,addListener,removeAllListeners,errorRequest,parseRawHeaders,toRawHeaders,encodeRawHeaders,parseHeaders,parseKeepAliveTimeout,destroy,bodyLength,deepClone,ReadableStreamFrom,isBuffer,assertRequestHandler,getSocketInfo,isFormDataLike,pathHasQueryOrFragment,serializePathWithQuery,addAbortListener,isValidHTTPToken,isValidHeaderValue,isTokenCharCode,parseRangeHeader,normalizedMethodRecordsBase,normalizedMethodRecords,isValidPort,isHttpOrHttpsPrefixed,safeHTTPMethods:Object.freeze(["GET","HEAD","OPTIONS","TRACE"]),wrapRequestBody,setupConnectTimeout,getProtocolFromUrlString}}});var require_stats=__commonJS({"packages/agent-forge/node_modules/undici/lib/util/stats.js"(exports,module){"use strict";var{kConnected,kPending,kRunning,kSize,kFree,kQueued}=require_symbols(),ClientStats=class{constructor(client){this.connected=client[kConnected],this.pending=client[kPending],this.running=client[kRunning],this.size=client[kSize]}},PoolStats=class{constructor(pool){this.connected=pool[kConnected],this.free=pool[kFree],this.pending=pool[kPending],this.queued=pool[kQueued],this.running=pool[kRunning],this.size=pool[kSize]}};module.exports={ClientStats,PoolStats}}});var require_diagnostics=__commonJS({"packages/agent-forge/node_modules/undici/lib/core/diagnostics.js"(exports,module){"use strict";var diagnosticsChannel=__require("node:diagnostics_channel"),util=__require("node:util"),undiciDebugLog=util.debuglog("undici"),fetchDebuglog=util.debuglog("fetch"),websocketDebuglog=util.debuglog("websocket"),channels={beforeConnect:diagnosticsChannel.channel("undici:client:beforeConnect"),connected:diagnosticsChannel.channel("undici:client:connected"),connectError:diagnosticsChannel.channel("undici:client:connectError"),sendHeaders:diagnosticsChannel.channel("undici:client:sendHeaders"),create:diagnosticsChannel.channel("undici:request:create"),bodySent:diagnosticsChannel.channel("undici:request:bodySent"),bodyChunkSent:diagnosticsChannel.channel("undici:request:bodyChunkSent"),bodyChunkReceived:diagnosticsChannel.channel("undici:request:bodyChunkReceived"),headers:diagnosticsChannel.channel("undici:request:headers"),trailers:diagnosticsChannel.channel("undici:request:trailers"),error:diagnosticsChannel.channel("undici:request:error"),open:diagnosticsChannel.channel("undici:websocket:open"),close:diagnosticsChannel.channel("undici:websocket:close"),socketError:diagnosticsChannel.channel("undici:websocket:socket_error"),ping:diagnosticsChannel.channel("undici:websocket:ping"),pong:diagnosticsChannel.channel("undici:websocket:pong"),proxyConnected:diagnosticsChannel.channel("undici:proxy:connected")},isTrackingClientEvents=!1;function trackClientEvents(debugLog=undiciDebugLog){if(!isTrackingClientEvents){if(channels.beforeConnect.hasSubscribers||channels.connected.hasSubscribers||channels.connectError.hasSubscribers||channels.sendHeaders.hasSubscribers){isTrackingClientEvents=!0;return}isTrackingClientEvents=!0,diagnosticsChannel.subscribe("undici:client:beforeConnect",evt=>{let{connectParams:{version,protocol,port,host}}=evt;debugLog("connecting to %s%s using %s%s",host,port?`:${port}`:"",protocol,version)}),diagnosticsChannel.subscribe("undici:client:connected",evt=>{let{connectParams:{version,protocol,port,host}}=evt;debugLog("connected to %s%s using %s%s",host,port?`:${port}`:"",protocol,version)}),diagnosticsChannel.subscribe("undici:client:connectError",evt=>{let{connectParams:{version,protocol,port,host},error:error2}=evt;debugLog("connection to %s%s using %s%s errored - %s",host,port?`:${port}`:"",protocol,version,error2.message)}),diagnosticsChannel.subscribe("undici:client:sendHeaders",evt=>{let{request:{method,path:path7,origin}}=evt;debugLog("sending request to %s %s%s",method,origin,path7)})}}var isTrackingRequestEvents=!1;function trackRequestEvents(debugLog=undiciDebugLog){if(!isTrackingRequestEvents){if(channels.headers.hasSubscribers||channels.trailers.hasSubscribers||channels.error.hasSubscribers){isTrackingRequestEvents=!0;return}isTrackingRequestEvents=!0,diagnosticsChannel.subscribe("undici:request:headers",evt=>{let{request:{method,path:path7,origin},response:{statusCode}}=evt;debugLog("received response to %s %s%s - HTTP %d",method,origin,path7,statusCode)}),diagnosticsChannel.subscribe("undici:request:trailers",evt=>{let{request:{method,path:path7,origin}}=evt;debugLog("trailers received from %s %s%s",method,origin,path7)}),diagnosticsChannel.subscribe("undici:request:error",evt=>{let{request:{method,path:path7,origin},error:error2}=evt;debugLog("request to %s %s%s errored - %s",method,origin,path7,error2.message)})}}var isTrackingWebSocketEvents=!1;function trackWebSocketEvents(debugLog=websocketDebuglog){if(!isTrackingWebSocketEvents){if(channels.open.hasSubscribers||channels.close.hasSubscribers||channels.socketError.hasSubscribers||channels.ping.hasSubscribers||channels.pong.hasSubscribers){isTrackingWebSocketEvents=!0;return}isTrackingWebSocketEvents=!0,diagnosticsChannel.subscribe("undici:websocket:open",evt=>{if(evt.address!=null){let{address,port}=evt.address;debugLog("connection opened %s%s",address,port?`:${port}`:"")}else debugLog("connection opened")}),diagnosticsChannel.subscribe("undici:websocket:close",evt=>{let{websocket,code,reason}=evt;debugLog("closed connection to %s - %s %s",websocket.url,code,reason)}),diagnosticsChannel.subscribe("undici:websocket:socket_error",err2=>{debugLog("connection errored - %s",err2.message)}),diagnosticsChannel.subscribe("undici:websocket:ping",evt=>{debugLog("ping received")}),diagnosticsChannel.subscribe("undici:websocket:pong",evt=>{debugLog("pong received")})}}(undiciDebugLog.enabled||fetchDebuglog.enabled)&&(trackClientEvents(fetchDebuglog.enabled?fetchDebuglog:undiciDebugLog),trackRequestEvents(fetchDebuglog.enabled?fetchDebuglog:undiciDebugLog));websocketDebuglog.enabled&&(trackClientEvents(undiciDebugLog.enabled?undiciDebugLog:websocketDebuglog),trackWebSocketEvents(websocketDebuglog));module.exports={channels}}});var require_request=__commonJS({"packages/agent-forge/node_modules/undici/lib/core/request.js"(exports,module){"use strict";var{InvalidArgumentError,NotSupportedError}=require_errors(),assert=__require("node:assert"),{isValidHTTPToken,isValidHeaderValue,isStream,destroy,isBuffer,isFormDataLike,isIterable,hasSafeIterator,isBlobLike,serializePathWithQuery,parseHeaders,assertRequestHandler,getServerName,normalizedMethodRecords,getProtocolFromUrlString}=require_util(),{channels}=require_diagnostics(),{headerNameLowerCasedRecord}=require_constants(),invalidPathRegex=/[^\u0021-\u00ff]/;function isValidContentLengthHeaderValue(val){if(typeof val!="string"||val.length===0)return!1;for(let i=0;i<val.length;i++){let charCode=val.charCodeAt(i);if(charCode<48||charCode>57)return!1}return!0}var kHandler=Symbol("handler"),kController=Symbol("controller"),kResume=Symbol("resume"),RequestController=class{#paused=!1;#reason=null;#aborted=!1;#abort;[kResume]=null;rawHeaders=null;rawTrailers=null;constructor(abort){this.#abort=abort}pause(){this.#paused=!0}resume(){this.#paused&&(this.#paused=!1,this[kResume]?.())}abort(reason){this.#aborted||(this.#aborted=!0,this.#reason=reason,this.#abort(reason))}get aborted(){return this.#aborted}get reason(){return this.#reason}get paused(){return this.#paused}},Request=class{constructor(origin,{path:path7,method,body,headers,query,idempotent,blocking,upgrade,headersTimeout,bodyTimeout,reset,expectContinue,servername,throwOnError,maxRedirections,typeOfService},handler){if(typeof path7!="string")throw new InvalidArgumentError("path must be a string");if(path7[0]!=="/"&&!(path7.startsWith("http://")||path7.startsWith("https://"))&&method!=="CONNECT")throw new InvalidArgumentError("path must be an absolute URL or start with a slash");if(invalidPathRegex.test(path7))throw new InvalidArgumentError("invalid request path");if(typeof method!="string")throw new InvalidArgumentError("method must be a string");if(normalizedMethodRecords[method]===void 0&&!isValidHTTPToken(method))throw new InvalidArgumentError("invalid request method");if(upgrade&&typeof upgrade!="string")throw new InvalidArgumentError("upgrade must be a string");if(upgrade&&!isValidHeaderValue(upgrade))throw new InvalidArgumentError("invalid upgrade header");if(headersTimeout!=null&&(!Number.isFinite(headersTimeout)||headersTimeout<0))throw new InvalidArgumentError("invalid headersTimeout");if(bodyTimeout!=null&&(!Number.isFinite(bodyTimeout)||bodyTimeout<0))throw new InvalidArgumentError("invalid bodyTimeout");if(reset!=null&&typeof reset!="boolean")throw new InvalidArgumentError("invalid reset");if(expectContinue!=null&&typeof expectContinue!="boolean")throw new InvalidArgumentError("invalid expectContinue");if(throwOnError!=null)throw new InvalidArgumentError("invalid throwOnError");if(maxRedirections!=null&&maxRedirections!==0)throw new InvalidArgumentError("maxRedirections is not supported, use the redirect interceptor");if(typeOfService!=null&&(!Number.isInteger(typeOfService)||typeOfService<0||typeOfService>255))throw new InvalidArgumentError("typeOfService must be an integer between 0 and 255");if(this.headersTimeout=headersTimeout,this.bodyTimeout=bodyTimeout,this.method=method,this.typeOfService=typeOfService,this.abort=null,body==null)this.body=null;else if(isStream(body)){this.body=body;let rState=this.body._readableState;(!rState||!rState.autoDestroy)&&(this.endHandler=function(){destroy(this)},this.body.on("end",this.endHandler)),this.errorHandler=err2=>{this.abort?this.abort(err2):this.error=err2},this.body.on("error",this.errorHandler)}else if(isBuffer(body))this.body=body.byteLength?body:null;else if(ArrayBuffer.isView(body))this.body=body.buffer.byteLength?Buffer.from(body.buffer,body.byteOffset,body.byteLength):null;else if(body instanceof ArrayBuffer)this.body=body.byteLength?Buffer.from(body):null;else if(typeof body=="string")this.body=body.length?Buffer.from(body):null;else if(isFormDataLike(body)||isIterable(body)||isBlobLike(body))this.body=body;else throw new InvalidArgumentError("body must be a string, a Buffer, a Readable stream, an iterable, or an async iterable");if(this.completed=!1,this.aborted=!1,this.upgrade=upgrade||null,this.path=query?serializePathWithQuery(path7,query):path7,this.origin=origin,this.protocol=getProtocolFromUrlString(origin),this.idempotent=idempotent??(method==="HEAD"||method==="GET"||method==="QUERY"),this.blocking=blocking??this.method!=="HEAD",this.reset=reset??null,this.host=null,this.contentLength=null,this.contentType=null,this.headers=[],this.expectContinue=expectContinue??!1,Array.isArray(headers)){if(headers.length%2!==0)throw new InvalidArgumentError("headers array must be even");for(let i=0;i<headers.length;i+=2)processHeader(this,headers[i],headers[i+1])}else if(headers&&typeof headers=="object")if(hasSafeIterator(headers))for(let header of headers){if(!Array.isArray(header)||header.length!==2)throw new InvalidArgumentError("headers must be in key-value pair format");processHeader(this,header[0],header[1])}else{let keys=Object.keys(headers);for(let i=0;i<keys.length;++i)processHeader(this,keys[i],headers[keys[i]])}else if(headers!=null)throw new InvalidArgumentError("headers must be an object or an array");assertRequestHandler(handler,method,upgrade),this.servername=servername||getServerName(this.host)||null,this[kHandler]=handler,channels.create.hasSubscribers&&channels.create.publish({request:this})}onBodySent(chunk){if(channels.bodyChunkSent.hasSubscribers&&channels.bodyChunkSent.publish({request:this,chunk}),this[kHandler].onBodySent)try{return this[kHandler].onBodySent(chunk)}catch(err2){this.abort(err2)}}onRequestSent(){if(channels.bodySent.hasSubscribers&&channels.bodySent.publish({request:this}),this[kHandler].onRequestSent)try{return this[kHandler].onRequestSent()}catch(err2){this.abort(err2)}}onRequestStart(abort,context){if(assert(!this.aborted),assert(!this.completed),this[kController]=new RequestController(abort),this.error){this[kController].abort(this.error);return}return this.abort=abort,this[kHandler].onRequestStart(this[kController],context)}onResponseStarted(){return this[kHandler].onResponseStarted?.()}onResponseStart(statusCode,headers,resume,statusText){assert(!this.aborted),assert(!this.completed),channels.headers.hasSubscribers&&channels.headers.publish({request:this,response:{statusCode,headers,statusText}});let controller=this[kController];controller&&(controller[kResume]=resume,controller.rawHeaders=headers);let parsedHeaders=Array.isArray(headers)?parseHeaders(headers):headers;try{return this[kHandler].onResponseStart?.(controller,statusCode,parsedHeaders,statusText),!controller?.paused}catch(err2){return this.abort(err2),!1}}onResponseData(chunk){assert(!this.aborted),assert(!this.completed),channels.bodyChunkReceived.hasSubscribers&&channels.bodyChunkReceived.publish({request:this,chunk});let controller=this[kController];try{return this[kHandler].onResponseData?.(controller,chunk),!controller?.paused}catch(err2){return this.abort(err2),!1}}onRequestUpgrade(statusCode,headers,socket){assert(!this.aborted),assert(!this.completed);let controller=this[kController];controller&&(controller.rawHeaders=headers);let parsedHeaders=Array.isArray(headers)?parseHeaders(headers):headers;return this[kHandler].onRequestUpgrade?.(controller,statusCode,parsedHeaders,socket)}onResponseEnd(trailers){this.onFinally(),assert(!this.aborted),assert(!this.completed),this.completed=!0,channels.trailers.hasSubscribers&&channels.trailers.publish({request:this,trailers});let controller=this[kController];controller&&(controller.rawTrailers=trailers);let parsedTrailers=Array.isArray(trailers)?parseHeaders(trailers):trailers;try{return this[kHandler].onResponseEnd?.(controller,parsedTrailers)}catch(err2){this.onResponseError(err2)}}onResponseError(error2){if(this.onFinally(),channels.error.hasSubscribers&&channels.error.publish({request:this,error:error2}),this.aborted)return;this.aborted=!0;let controller=this[kController];return this[kHandler].onResponseError?.(controller,error2)}onFinally(){this.errorHandler&&(this.body.off("error",this.errorHandler),this.errorHandler=null),this.endHandler&&(this.body.off("end",this.endHandler),this.endHandler=null)}addHeader(key,value){return processHeader(this,key,value),this}};function processHeader(request,key,val){if(val&&typeof val=="object"&&!Array.isArray(val))throw new InvalidArgumentError(`invalid ${key} header`);if(val===void 0)return;let headerName=headerNameLowerCasedRecord[key];if(headerName===void 0&&(headerName=key.toLowerCase(),headerNameLowerCasedRecord[headerName]===void 0&&!isValidHTTPToken(headerName)))throw new InvalidArgumentError("invalid header key");if(Array.isArray(val)){let arr=[];for(let i=0;i<val.length;i++)if(typeof val[i]=="string"){if(!isValidHeaderValue(val[i]))throw new InvalidArgumentError(`invalid ${key} header`);arr.push(val[i])}else if(val[i]===null)arr.push("");else{if(typeof val[i]=="object")throw new InvalidArgumentError(`invalid ${key} header`);{let str2=`${val[i]}`;if(!isValidHeaderValue(str2))throw new InvalidArgumentError(`invalid ${key} header`);arr.push(str2)}}val=arr}else if(typeof val=="string"){if(!isValidHeaderValue(val))throw new InvalidArgumentError(`invalid ${key} header`)}else if(val===null)val="";else if(val=`${val}`,!isValidHeaderValue(val))throw new InvalidArgumentError(`invalid ${key} header`);if(headerName==="host"){if(request.host!==null)throw new InvalidArgumentError("duplicate host header");if(typeof val!="string")throw new InvalidArgumentError("invalid host header");request.host=val}else if(headerName==="content-length"){if(request.contentLength!==null)throw new InvalidArgumentError("duplicate content-length header");if(!isValidContentLengthHeaderValue(val))throw new InvalidArgumentError("invalid content-length header");request.contentLength=parseInt(val,10)}else if(request.contentType===null&&headerName==="content-type")request.contentType=val,request.headers.push(key,val);else{if(headerName==="transfer-encoding"||headerName==="keep-alive"||headerName==="upgrade")throw new InvalidArgumentError(`invalid ${headerName} header`);if(headerName==="connection"){let value=typeof val=="string"?val:null;if(value===null)throw new InvalidArgumentError("invalid connection header");for(let token of value.toLowerCase().split(",")){let trimmed=token.trim();if(!isValidHTTPToken(trimmed))throw new InvalidArgumentError("invalid connection header");trimmed==="close"&&(request.reset=!0)}}else{if(headerName==="expect")throw new NotSupportedError("expect header not supported");request.headers.push(key,val)}}}module.exports=Request}});var require_dispatcher=__commonJS({"packages/agent-forge/node_modules/undici/lib/dispatcher/dispatcher.js"(exports,module){"use strict";var EventEmitter2=__require("node:events"),{kOriginless,kUrl}=require_symbols(),Dispatcher=class extends EventEmitter2{dispatch(){throw new Error("not implemented")}close(){throw new Error("not implemented")}destroy(){throw new Error("not implemented")}compose(...args){let interceptors=Array.isArray(args[0])?args[0]:args,interceptorOrigin=this[kOriginless]===!0?null:this[kUrl]?.origin,dispatch=this.dispatch.bind(this);for(let interceptor of interceptors)if(interceptor!=null){if(typeof interceptor!="function")throw new TypeError(`invalid interceptor, expected function received ${typeof interceptor}`);if(dispatch=interceptor(dispatch,interceptorOrigin),dispatch==null||typeof dispatch!="function"||dispatch.length!==2)throw new TypeError("invalid interceptor")}let originalDispatch=dispatch,self=this;return dispatch=function(opts,handler){return opts&&typeof opts=="object"&&!opts.origin&&self[kUrl]&&(opts=Object.assign({},opts,{origin:self[kUrl].origin})),originalDispatch(opts,handler)},new Proxy(this,{get:(target,key)=>key==="dispatch"?dispatch:target[key]})}};module.exports=Dispatcher}});var require_dispatcher_base=__commonJS({"packages/agent-forge/node_modules/undici/lib/dispatcher/dispatcher-base.js"(exports,module){"use strict";var buffer=__require("node:buffer"),Dispatcher=require_dispatcher(),{ClientDestroyedError,ClientClosedError,InvalidArgumentError}=require_errors(),{kDestroy,kClose,kClosed,kDestroyed,kDispatch}=require_symbols(),kOnDestroyed=Symbol("onDestroyed"),kOnClosed=Symbol("onClosed"),kWebSocketOptions=Symbol("webSocketOptions"),kEventSourceOptions=Symbol("eventSourceOptions"),DispatcherBase=class extends Dispatcher{[kDestroyed]=!1;[kOnDestroyed]=null;[kClosed]=!1;[kOnClosed]=null;constructor(opts){super(),this[kWebSocketOptions]=opts?.webSocket??{},this[kEventSourceOptions]=opts?.eventSource??{}}get webSocketOptions(){return{maxFragments:this[kWebSocketOptions].maxFragments??131072,maxPayloadSize:this[kWebSocketOptions].maxPayloadSize??128*1024*1024}}get eventSourceOptions(){return{maxEventSize:this[kEventSourceOptions].maxEventSize??buffer.kStringMaxLength}}get destroyed(){return this[kDestroyed]}get closed(){return this[kClosed]}close(callback){if(callback===void 0)return new Promise((resolve5,reject)=>{this.close((err2,data)=>err2?reject(err2):resolve5(data))});if(typeof callback!="function")throw new InvalidArgumentError("invalid callback");if(this[kDestroyed]){let err2=new ClientDestroyedError;queueMicrotask(()=>callback(err2,null));return}if(this[kClosed]){this[kOnClosed]?this[kOnClosed].push(callback):queueMicrotask(()=>callback(null,null));return}this[kClosed]=!0,this[kOnClosed]??=[],this[kOnClosed].push(callback);let onClosed=()=>{let callbacks=this[kOnClosed];this[kOnClosed]=null;for(let i=0;i<callbacks.length;i++)callbacks[i](null,null)};this[kClose]().then(()=>this.destroy()).then(()=>queueMicrotask(onClosed))}destroy(err2,callback){if(typeof err2=="function"&&(callback=err2,err2=null),callback===void 0)return new Promise((resolve5,reject)=>{this.destroy(err2,(err3,data)=>err3?reject(err3):resolve5(data))});if(typeof callback!="function")throw new InvalidArgumentError("invalid callback");if(this[kDestroyed]){this[kOnDestroyed]?this[kOnDestroyed].push(callback):queueMicrotask(()=>callback(null,null));return}err2||(err2=new ClientDestroyedError),this[kDestroyed]=!0,this[kOnDestroyed]??=[],this[kOnDestroyed].push(callback);let onDestroyed=()=>{let callbacks=this[kOnDestroyed];this[kOnDestroyed]=null;for(let i=0;i<callbacks.length;i++)callbacks[i](null,null)};this[kDestroy](err2).then(()=>queueMicrotask(onDestroyed))}dispatch(opts,handler){if(!handler||typeof handler!="object")throw new InvalidArgumentError("handler must be an object");try{if(!opts||typeof opts!="object")throw new InvalidArgumentError("opts must be an object.");if(opts.dispatcher)throw new InvalidArgumentError("opts.dispatcher is not supported by instance methods. Pass opts.dispatcher to the top-level undici functions or call the dispatcher instance method directly.");if(this[kDestroyed]||this[kOnDestroyed])throw new ClientDestroyedError;if(this[kClosed])throw new ClientClosedError;return this[kDispatch](opts,handler)}catch(err2){if(typeof handler.onResponseError!="function")throw err2;return handler.onResponseError(null,err2),!1}}};module.exports=DispatcherBase}});var require_connect=__commonJS({"packages/agent-forge/node_modules/undici/lib/core/connect.js"(exports,module){"use strict";var net=__require("node:net"),assert=__require("node:assert"),util=require_util(),{InvalidArgumentError,ConnectTimeoutError}=require_errors(),tls,SessionCache=class{constructor(maxCachedSessions){this._maxCachedSessions=maxCachedSessions,this._sessionCache=new Map,this._sessionRegistry=new FinalizationRegistry(key=>{if(this._sessionCache.size<this._maxCachedSessions)return;let ref=this._sessionCache.get(key);ref!==void 0&&ref.deref()===void 0&&this._sessionCache.delete(key)})}get(sessionKey){let ref=this._sessionCache.get(sessionKey);return ref?ref.deref():null}set(sessionKey,session){if(this._maxCachedSessions!==0){if(this._sessionCache.has(sessionKey))this._sessionCache.delete(sessionKey);else if(this._sessionCache.size>=this._maxCachedSessions){for(let[key,ref]of this._sessionCache)if(ref.deref()===void 0){this._sessionCache.delete(key);return}let oldest=this._sessionCache.keys().next();oldest.done||this._sessionCache.delete(oldest.value)}this._sessionCache.set(sessionKey,new WeakRef(session)),this._sessionRegistry.register(session,sessionKey)}}};function buildConnector({allowH2,preferH2,useH2c,maxCachedSessions,socketPath,timeout,session:customSession,...opts}){if(maxCachedSessions!=null&&(!Number.isInteger(maxCachedSessions)||maxCachedSessions<0))throw new InvalidArgumentError("maxCachedSessions must be a positive integer or zero");let options={path:socketPath,...opts},sessionCache=new SessionCache(maxCachedSessions??100);return timeout=timeout??1e4,allowH2=allowH2??!0,function({hostname:hostname2,host,protocol,port,servername,localAddress,httpSocket},callback){let socket;if(protocol==="https:"){tls||(tls=__require("node:tls")),servername=servername||options.servername||util.getServerName(host)||null;let sessionKey=servername||hostname2;assert(sessionKey);let session=customSession||sessionCache.get(sessionKey)||null;port=port||443,socket=tls.connect({highWaterMark:16384,...options,servername,session,localAddress,ALPNProtocols:allowH2?preferH2?["h2","http/1.1"]:["http/1.1","h2"]:["http/1.1"],socket:httpSocket,port,host:hostname2}),socket.on("session",function(session2){sessionCache.set(sessionKey,session2)})}else{assert(!httpSocket,"httpSocket can only be sent on TLS update"),port=port||80;let connectOptions={highWaterMark:64*1024,...options,localAddress,port,host:hostname2},family=net.isIP(hostname2);family!==0&&servername&&servername!==hostname2&&(connectOptions.host=servername,connectOptions.lookup=(_hostname,lookupOptions,cb)=>{lookupOptions.all?cb(null,[{address:hostname2,family}]):cb(null,hostname2,family)}),socket=net.connect(connectOptions),useH2c===!0&&(socket.alpnProtocol="h2")}if(options.keepAlive==null||options.keepAlive){let keepAliveInitialDelay=options.keepAliveInitialDelay===void 0?6e4:options.keepAliveInitialDelay;socket.setKeepAlive(!0,keepAliveInitialDelay)}let clearConnectTimeout=util.setupConnectTimeout(new WeakRef(socket),{timeout,hostname:hostname2,port});return socket.setNoDelay(!0).once(protocol==="https:"?"secureConnect":"connect",function(){if(queueMicrotask(clearConnectTimeout),callback){let cb=callback;callback=null,cb(null,this)}}).on("error",function(err2){if(queueMicrotask(clearConnectTimeout),callback){let cb=callback;callback=null,cb(maybeNormalizeConnectError(err2,this,{timeout,hostname:hostname2,port}))}}),socket}}function maybeNormalizeConnectError(err2,socket,opts){if(err2 instanceof AggregateError&&(err2.code==="ETIMEDOUT"||err2.errors.some(e=>e!=null&&e.code==="ETIMEDOUT"))){let message="Connect Timeout Error";Array.isArray(socket.autoSelectFamilyAttemptedAddresses)?message+=` (attempted addresses: ${socket.autoSelectFamilyAttemptedAddresses.join(", ")},`:message+=` (attempted address: ${opts.hostname}:${opts.port},`,message+=` timeout: ${opts.timeout}ms)`;let wrapped=new ConnectTimeoutError(message);return wrapped.cause=err2,wrapped}return err2}module.exports=buildConnector}});var require_utils=__commonJS({"packages/agent-forge/node_modules/undici/lib/llhttp/utils.js"(exports){"use strict";Object.defineProperty(exports,"__esModule",{value:!0});exports.enumToMap=enumToMap;function enumToMap(obj,filter=[],exceptions=[]){let emptyFilter=(filter?.length??0)===0,emptyExceptions=(exceptions?.length??0)===0;return Object.fromEntries(Object.entries(obj).filter(([,value])=>typeof value=="number"&&(emptyFilter||filter.includes(value))&&(emptyExceptions||!exceptions.includes(value))))}}});var require_constants2=__commonJS({"packages/agent-forge/node_modules/undici/lib/llhttp/constants.js"(exports){"use strict";Object.defineProperty(exports,"__esModule",{value:!0});exports.SPECIAL_HEADERS=exports.MINOR=exports.MAJOR=exports.HTAB_SP_VCHAR_OBS_TEXT=exports.QUOTED_STRING=exports.CONNECTION_TOKEN_CHARS=exports.HEADER_CHARS=exports.TOKEN=exports.HEX=exports.URL_CHAR=exports.USERINFO_CHARS=exports.MARK=exports.ALPHANUM=exports.NUM=exports.HEX_MAP=exports.NUM_MAP=exports.ALPHA=exports.STATUSES_HTTP=exports.H_METHOD_MAP=exports.METHOD_MAP=exports.METHODS_RTSP=exports.METHODS_ICE=exports.METHODS_HTTP=exports.HEADER_STATE=exports.FINISH=exports.STATUSES=exports.METHODS=exports.LENIENT_FLAGS=exports.FLAGS=exports.TYPE=exports.ERROR=void 0;var utils_1=require_utils();exports.ERROR={OK:0,INTERNAL:1,STRICT:2,CR_EXPECTED:25,LF_EXPECTED:3,UNEXPECTED_CONTENT_LENGTH:4,UNEXPECTED_SPACE:30,CLOSED_CONNECTION:5,INVALID_METHOD:6,INVALID_URL:7,INVALID_CONSTANT:8,INVALID_VERSION:9,INVALID_HEADER_TOKEN:10,INVALID_CONTENT_LENGTH:11,INVALID_CHUNK_SIZE:12,INVALID_STATUS:13,INVALID_EOF_STATE:14,INVALID_TRANSFER_ENCODING:15,CB_MESSAGE_BEGIN:16,CB_HEADERS_COMPLETE:17,CB_MESSAGE_COMPLETE:18,CB_CHUNK_HEADER:19,CB_CHUNK_COMPLETE:20,PAUSED:21,PAUSED_UPGRADE:22,PAUSED_H2_UPGRADE:23,USER:24,CB_URL_COMPLETE:26,CB_STATUS_COMPLETE:27,CB_METHOD_COMPLETE:32,CB_VERSION_COMPLETE:33,CB_HEADER_FIELD_COMPLETE:28,CB_HEADER_VALUE_COMPLETE:29,CB_CHUNK_EXTENSION_NAME_COMPLETE:34,CB_CHUNK_EXTENSION_VALUE_COMPLETE:35,CB_RESET:31,CB_PROTOCOL_COMPLETE:38};exports.TYPE={BOTH:0,REQUEST:1,RESPONSE:2};exports.FLAGS={CONNECTION_KEEP_ALIVE:1,CONNECTION_CLOSE:2,CONNECTION_UPGRADE:4,CHUNKED:8,UPGRADE:16,CONTENT_LENGTH:32,SKIPBODY:64,TRAILING:128,TRANSFER_ENCODING:512};exports.LENIENT_FLAGS={HEADERS:1,CHUNKED_LENGTH:2,KEEP_ALIVE:4,TRANSFER_ENCODING:8,VERSION:16,DATA_AFTER_CLOSE:32,OPTIONAL_LF_AFTER_CR:64,OPTIONAL_CRLF_AFTER_CHUNK:128,OPTIONAL_CR_BEFORE_LF:256,SPACES_AFTER_CHUNK_SIZE:512};exports.METHODS={DELETE:0,GET:1,HEAD:2,POST:3,PUT:4,CONNECT:5,OPTIONS:6,TRACE:7,COPY:8,LOCK:9,MKCOL:10,MOVE:11,PROPFIND:12,PROPPATCH:13,SEARCH:14,UNLOCK:15,BIND:16,REBIND:17,UNBIND:18,ACL:19,REPORT:20,MKACTIVITY:21,CHECKOUT:22,MERGE:23,"M-SEARCH":24,NOTIFY:25,SUBSCRIBE:26,UNSUBSCRIBE:27,PATCH:28,PURGE:29,MKCALENDAR:30,LINK:31,UNLINK:32,SOURCE:33,PRI:34,DESCRIBE:35,ANNOUNCE:36,SETUP:37,PLAY:38,PAUSE:39,TEARDOWN:40,GET_PARAMETER:41,SET_PARAMETER:42,REDIRECT:43,RECORD:44,FLUSH:45,QUERY:46};exports.STATUSES={CONTINUE:100,SWITCHING_PROTOCOLS:101,PROCESSING:102,EARLY_HINTS:103,RESPONSE_IS_STALE:110,REVALIDATION_FAILED:111,DISCONNECTED_OPERATION:112,HEURISTIC_EXPIRATION:113,MISCELLANEOUS_WARNING:199,OK:200,CREATED:201,ACCEPTED:202,NON_AUTHORITATIVE_INFORMATION:203,NO_CONTENT:204,RESET_CONTENT:205,PARTIAL_CONTENT:206,MULTI_STATUS:207,ALREADY_REPORTED:208,TRANSFORMATION_APPLIED:214,IM_USED:226,MISCELLANEOUS_PERSISTENT_WARNING:299,MULTIPLE_CHOICES:300,MOVED_PERMANENTLY:301,FOUND:302,SEE_OTHER:303,NOT_MODIFIED:304,USE_PROXY:305,SWITCH_PROXY:306,TEMPORARY_REDIRECT:307,PERMANENT_REDIRECT:308,BAD_REQUEST:400,UNAUTHORIZED:401,PAYMENT_REQUIRED:402,FORBIDDEN:403,NOT_FOUND:404,METHOD_NOT_ALLOWED:405,NOT_ACCEPTABLE:406,PROXY_AUTHENTICATION_REQUIRED:407,REQUEST_TIMEOUT:408,CONFLICT:409,GONE:410,LENGTH_REQUIRED:411,PRECONDITION_FAILED:412,PAYLOAD_TOO_LARGE:413,URI_TOO_LONG:414,UNSUPPORTED_MEDIA_TYPE:415,RANGE_NOT_SATISFIABLE:416,EXPECTATION_FAILED:417,IM_A_TEAPOT:418,PAGE_EXPIRED:419,ENHANCE_YOUR_CALM:420,MISDIRECTED_REQUEST:421,UNPROCESSABLE_ENTITY:422,LOCKED:423,FAILED_DEPENDENCY:424,TOO_EARLY:425,UPGRADE_REQUIRED:426,PRECONDITION_REQUIRED:428,TOO_MANY_REQUESTS:429,REQUEST_HEADER_FIELDS_TOO_LARGE_UNOFFICIAL:430,REQUEST_HEADER_FIELDS_TOO_LARGE:431,LOGIN_TIMEOUT:440,NO_RESPONSE:444,RETRY_WITH:449,BLOCKED_BY_PARENTAL_CONTROL:450,UNAVAILABLE_FOR_LEGAL_REASONS:451,CLIENT_CLOSED_LOAD_BALANCED_REQUEST:460,INVALID_X_FORWARDED_FOR:463,REQUEST_HEADER_TOO_LARGE:494,SSL_CERTIFICATE_ERROR:495,SSL_CERTIFICATE_REQUIRED:496,HTTP_REQUEST_SENT_TO_HTTPS_PORT:497,INVALID_TOKEN:498,CLIENT_CLOSED_REQUEST:499,INTERNAL_SERVER_ERROR:500,NOT_IMPLEMENTED:501,BAD_GATEWAY:502,SERVICE_UNAVAILABLE:503,GATEWAY_TIMEOUT:504,HTTP_VERSION_NOT_SUPPORTED:505,VARIANT_ALSO_NEGOTIATES:506,INSUFFICIENT_STORAGE:507,LOOP_DETECTED:508,BANDWIDTH_LIMIT_EXCEEDED:509,NOT_EXTENDED:510,NETWORK_AUTHENTICATION_REQUIRED:511,WEB_SERVER_UNKNOWN_ERROR:520,WEB_SERVER_IS_DOWN:521,CONNECTION_TIMEOUT:522,ORIGIN_IS_UNREACHABLE:523,TIMEOUT_OCCURED:524,SSL_HANDSHAKE_FAILED:525,INVALID_SSL_CERTIFICATE:526,RAILGUN_ERROR:527,SITE_IS_OVERLOADED:529,SITE_IS_FROZEN:530,IDENTITY_PROVIDER_AUTHENTICATION_ERROR:561,NETWORK_READ_TIMEOUT:598,NETWORK_CONNECT_TIMEOUT:599};exports.FINISH={SAFE:0,SAFE_WITH_CB:1,UNSAFE:2};exports.HEADER_STATE={GENERAL:0,CONNECTION:1,CONTENT_LENGTH:2,TRANSFER_ENCODING:3,UPGRADE:4,CONNECTION_KEEP_ALIVE:5,CONNECTION_CLOSE:6,CONNECTION_UPGRADE:7,TRANSFER_ENCODING_CHUNKED:8};exports.METHODS_HTTP=[exports.METHODS.DELETE,exports.METHODS.GET,exports.METHODS.HEAD,exports.METHODS.POST,exports.METHODS.PUT,exports.METHODS.CONNECT,exports.METHODS.OPTIONS,exports.METHODS.TRACE,exports.METHODS.COPY,exports.METHODS.LOCK,exports.METHODS.MKCOL,exports.METHODS.MOVE,exports.METHODS.PROPFIND,exports.METHODS.PROPPATCH,exports.METHODS.SEARCH,exports.METHODS.UNLOCK,exports.METHODS.BIND,exports.METHODS.REBIND,exports.METHODS.UNBIND,exports.METHODS.ACL,exports.METHODS.REPORT,exports.METHODS.MKACTIVITY,exports.METHODS.CHECKOUT,exports.METHODS.MERGE,exports.METHODS["M-SEARCH"],exports.METHODS.NOTIFY,exports.METHODS.SUBSCRIBE,exports.METHODS.UNSUBSCRIBE,exports.METHODS.PATCH,exports.METHODS.PURGE,exports.METHODS.MKCALENDAR,exports.METHODS.LINK,exports.METHODS.UNLINK,exports.METHODS.PRI,exports.METHODS.SOURCE,exports.METHODS.QUERY];exports.METHODS_ICE=[exports.METHODS.SOURCE];exports.METHODS_RTSP=[exports.METHODS.OPTIONS,exports.METHODS.DESCRIBE,exports.METHODS.ANNOUNCE,exports.METHODS.SETUP,exports.METHODS.PLAY,exports.METHODS.PAUSE,exports.METHODS.TEARDOWN,exports.METHODS.GET_PARAMETER,exports.METHODS.SET_PARAMETER,exports.METHODS.REDIRECT,exports.METHODS.RECORD,exports.METHODS.FLUSH,exports.METHODS.GET,exports.METHODS.POST];exports.METHOD_MAP=(0,utils_1.enumToMap)(exports.METHODS);exports.H_METHOD_MAP=Object.fromEntries(Object.entries(exports.METHODS).filter(([k])=>k.startsWith("H")));exports.STATUSES_HTTP=[exports.STATUSES.CONTINUE,exports.STATUSES.SWITCHING_PROTOCOLS,exports.STATUSES.PROCESSING,exports.STATUSES.EARLY_HINTS,exports.STATUSES.RESPONSE_IS_STALE,exports.STATUSES.REVALIDATION_FAILED,exports.STATUSES.DISCONNECTED_OPERATION,exports.STATUSES.HEURISTIC_EXPIRATION,exports.STATUSES.MISCELLANEOUS_WARNING,exports.STATUSES.OK,exports.STATUSES.CREATED,exports.STATUSES.ACCEPTED,exports.STATUSES.NON_AUTHORITATIVE_INFORMATION,exports.STATUSES.NO_CONTENT,exports.STATUSES.RESET_CONTENT,exports.STATUSES.PARTIAL_CONTENT,exports.STATUSES.MULTI_STATUS,exports.STATUSES.ALREADY_REPORTED,exports.STATUSES.TRANSFORMATION_APPLIED,exports.STATUSES.IM_USED,exports.STATUSES.MISCELLANEOUS_PERSISTENT_WARNING,exports.STATUSES.MULTIPLE_CHOICES,exports.STATUSES.MOVED_PERMANENTLY,exports.STATUSES.FOUND,exports.STATUSES.SEE_OTHER,exports.STATUSES.NOT_MODIFIED,exports.STATUSES.USE_PROXY,exports.STATUSES.SWITCH_PROXY,exports.STATUSES.TEMPORARY_REDIRECT,exports.STATUSES.PERMANENT_REDIRECT,exports.STATUSES.BAD_REQUEST,exports.STATUSES.UNAUTHORIZED,exports.STATUSES.PAYMENT_REQUIRED,exports.STATUSES.FORBIDDEN,exports.STATUSES.NOT_FOUND,exports.STATUSES.METHOD_NOT_ALLOWED,exports.STATUSES.NOT_ACCEPTABLE,exports.STATUSES.PROXY_AUTHENTICATION_REQUIRED,exports.STATUSES.REQUEST_TIMEOUT,exports.STATUSES.CONFLICT,exports.STATUSES.GONE,exports.STATUSES.LENGTH_REQUIRED,exports.STATUSES.PRECONDITION_FAILED,exports.STATUSES.PAYLOAD_TOO_LARGE,exports.STATUSES.URI_TOO_LONG,exports.STATUSES.UNSUPPORTED_MEDIA_TYPE,exports.STATUSES.RANGE_NOT_SATISFIABLE,exports.STATUSES.EXPECTATION_FAILED,exports.STATUSES.IM_A_TEAPOT,exports.STATUSES.PAGE_EXPIRED,exports.STATUSES.ENHANCE_YOUR_CALM,exports.STATUSES.MISDIRECTED_REQUEST,exports.STATUSES.UNPROCESSABLE_ENTITY,exports.STATUSES.LOCKED,exports.STATUSES.FAILED_DEPENDENCY,exports.STATUSES.TOO_EARLY,exports.STATUSES.UPGRADE_REQUIRED,exports.STATUSES.PRECONDITION_REQUIRED,exports.STATUSES.TOO_MANY_REQUESTS,exports.STATUSES.REQUEST_HEADER_FIELDS_TOO_LARGE_UNOFFICIAL,exports.STATUSES.REQUEST_HEADER_FIELDS_TOO_LARGE,exports.STATUSES.LOGIN_TIMEOUT,exports.STATUSES.NO_RESPONSE,exports.STATUSES.RETRY_WITH,exports.STATUSES.BLOCKED_BY_PARENTAL_CONTROL,exports.STATUSES.UNAVAILABLE_FOR_LEGAL_REASONS,exports.STATUSES.CLIENT_CLOSED_LOAD_BALANCED_REQUEST,exports.STATUSES.INVALID_X_FORWARDED_FOR,exports.STATUSES.REQUEST_HEADER_TOO_LARGE,exports.STATUSES.SSL_CERTIFICATE_ERROR,exports.STATUSES.SSL_CERTIFICATE_REQUIRED,exports.STATUSES.HTTP_REQUEST_SENT_TO_HTTPS_PORT,exports.STATUSES.INVALID_TOKEN,exports.STATUSES.CLIENT_CLOSED_REQUEST,exports.STATUSES.INTERNAL_SERVER_ERROR,exports.STATUSES.NOT_IMPLEMENTED,exports.STATUSES.BAD_GATEWAY,exports.STATUSES.SERVICE_UNAVAILABLE,exports.STATUSES.GATEWAY_TIMEOUT,exports.STATUSES.HTTP_VERSION_NOT_SUPPORTED,exports.STATUSES.VARIANT_ALSO_NEGOTIATES,exports.STATUSES.INSUFFICIENT_STORAGE,exports.STATUSES.LOOP_DETECTED,exports.STATUSES.BANDWIDTH_LIMIT_EXCEEDED,exports.STATUSES.NOT_EXTENDED,exports.STATUSES.NETWORK_AUTHENTICATION_REQUIRED,exports.STATUSES.WEB_SERVER_UNKNOWN_ERROR,exports.STATUSES.WEB_SERVER_IS_DOWN,exports.STATUSES.CONNECTION_TIMEOUT,exports.STATUSES.ORIGIN_IS_UNREACHABLE,exports.STATUSES.TIMEOUT_OCCURED,exports.STATUSES.SSL_HANDSHAKE_FAILED,exports.STATUSES.INVALID_SSL_CERTIFICATE,exports.STATUSES.RAILGUN_ERROR,exports.STATUSES.SITE_IS_OVERLOADED,exports.STATUSES.SITE_IS_FROZEN,exports.STATUSES.IDENTITY_PROVIDER_AUTHENTICATION_ERROR,exports.STATUSES.NETWORK_READ_TIMEOUT,exports.STATUSES.NETWORK_CONNECT_TIMEOUT];exports.ALPHA=[];for(let i=65;i<=90;i++)exports.ALPHA.push(String.fromCharCode(i)),exports.ALPHA.push(String.fromCharCode(i+32));exports.NUM_MAP={0:0,1:1,2:2,3:3,4:4,5:5,6:6,7:7,8:8,9:9};exports.HEX_MAP={0:0,1:1,2:2,3:3,4:4,5:5,6:6,7:7,8:8,9:9,A:10,B:11,C:12,D:13,E:14,F:15,a:10,b:11,c:12,d:13,e:14,f:15};exports.NUM=["0","1","2","3","4","5","6","7","8","9"];exports.ALPHANUM=exports.ALPHA.concat(exports.NUM);exports.MARK=["-","_",".","!","~","*","'","(",")"];exports.USERINFO_CHARS=exports.ALPHANUM.concat(exports.MARK).concat(["%",";",":","&","=","+","$",","]);exports.URL_CHAR=["!",'"',"$","%","&","'","(",")","*","+",",","-",".","/",":",";","<","=",">","@","[","\\","]","^","_","`","{","|","}","~"].concat(exports.ALPHANUM);exports.HEX=exports.NUM.concat(["a","b","c","d","e","f","A","B","C","D","E","F"]);exports.TOKEN=["!","#","$","%","&","'","*","+","-",".","^","_","`","|","~"].concat(exports.ALPHANUM);exports.HEADER_CHARS=[" "];for(let i=32;i<=255;i++)i!==127&&exports.HEADER_CHARS.push(i);exports.CONNECTION_TOKEN_CHARS=exports.HEADER_CHARS.filter(c2=>c2!==44);exports.QUOTED_STRING=[" "," "];for(let i=33;i<=255;i++)i!==34&&i!==92&&exports.QUOTED_STRING.push(i);exports.HTAB_SP_VCHAR_OBS_TEXT=[" "," "];for(let i=33;i<=126;i++)exports.HTAB_SP_VCHAR_OBS_TEXT.push(i);for(let i=128;i<=255;i++)exports.HTAB_SP_VCHAR_OBS_TEXT.push(i);exports.MAJOR=exports.NUM_MAP;exports.MINOR=exports.MAJOR;exports.SPECIAL_HEADERS={connection:exports.HEADER_STATE.CONNECTION,"content-length":exports.HEADER_STATE.CONTENT_LENGTH,"proxy-connection":exports.HEADER_STATE.CONNECTION,"transfer-encoding":exports.HEADER_STATE.TRANSFER_ENCODING,upgrade:exports.HEADER_STATE.UPGRADE};exports.default={ERROR:exports.ERROR,TYPE:exports.TYPE,FLAGS:exports.FLAGS,LENIENT_FLAGS:exports.LENIENT_FLAGS,METHODS:exports.METHODS,STATUSES:exports.STATUSES,FINISH:exports.FINISH,HEADER_STATE:exports.HEADER_STATE,ALPHA:exports.ALPHA,NUM_MAP:exports.NUM_MAP,HEX_MAP:exports.HEX_MAP,NUM:exports.NUM,ALPHANUM:exports.ALPHANUM,MARK:exports.MARK,USERINFO_CHARS:exports.USERINFO_CHARS,URL_CHAR:exports.URL_CHAR,HEX:exports.HEX,TOKEN:exports.TOKEN,HEADER_CHARS:exports.HEADER_CHARS,CONNECTION_TOKEN_CHARS:exports.CONNECTION_TOKEN_CHARS,QUOTED_STRING:exports.QUOTED_STRING,HTAB_SP_VCHAR_OBS_TEXT:exports.HTAB_SP_VCHAR_OBS_TEXT,MAJOR:exports.MAJOR,MINOR:exports.MINOR,SPECIAL_HEADERS:exports.SPECIAL_HEADERS,METHODS_HTTP:exports.METHODS_HTTP,METHODS_ICE:exports.METHODS_ICE,METHODS_RTSP:exports.METHODS_RTSP,METHOD_MAP:exports.METHOD_MAP,H_METHOD_MAP:exports.H_METHOD_MAP,STATUSES_HTTP:exports.STATUSES_HTTP}}});var require_llhttp_wasm=__commonJS({"packages/agent-forge/node_modules/undici/lib/llhttp/llhttp-wasm.js"(exports,module){"use strict";var{Buffer:Buffer2}=__require("node:buffer"),wasmBase64="AGFzbQEAAAABJwdgAX8Bf2ADf39/AX9gAn9/AGABfwBgBH9/f38Bf2AAAGADf39/AALLAQgDZW52GHdhc21fb25faGVhZGVyc19jb21wbGV0ZQAEA2VudhV3YXNtX29uX21lc3NhZ2VfYmVnaW4AAANlbnYLd2FzbV9vbl91cmwAAQNlbnYOd2FzbV9vbl9zdGF0dXMAAQNlbnYUd2FzbV9vbl9oZWFkZXJfZmllbGQAAQNlbnYUd2FzbV9vbl9oZWFkZXJfdmFsdWUAAQNlbnYMd2FzbV9vbl9ib2R5AAEDZW52GHdhc21fb25fbWVzc2FnZV9jb21wbGV0ZQAAAzU0BQYAAAMAAAAAAAADAQMAAwMDAAACAAAAAAICAgICAgICAgIBAQEBAQEBAQEBAwAAAwAAAAQFAXABExMFAwEAAgYIAX8BQcDZBAsHxQcoBm1lbW9yeQIAC19pbml0aWFsaXplAAgZX19pbmRpcmVjdF9mdW5jdGlvbl90YWJsZQEAC2xsaHR0cF9pbml0AAkYbGxodHRwX3Nob3VsZF9rZWVwX2FsaXZlADcMbGxodHRwX2FsbG9jAAsGbWFsbG9jADkLbGxodHRwX2ZyZWUADARmcmVlAAwPbGxodHRwX2dldF90eXBlAA0VbGxodHRwX2dldF9odHRwX21ham9yAA4VbGxodHRwX2dldF9odHRwX21pbm9yAA8RbGxodHRwX2dldF9tZXRob2QAEBZsbGh0dHBfZ2V0X3N0YXR1c19jb2RlABESbGxodHRwX2dldF91cGdyYWRlABIMbGxodHRwX3Jlc2V0ABMObGxodHRwX2V4ZWN1dGUAFBRsbGh0dHBfc2V0dGluZ3NfaW5pdAAVDWxsaHR0cF9maW5pc2gAFgxsbGh0dHBfcGF1c2UAFw1sbGh0dHBfcmVzdW1lABgbbGxodHRwX3Jlc3VtZV9hZnRlcl91cGdyYWRlABkQbGxodHRwX2dldF9lcnJubwAaF2xsaHR0cF9nZXRfZXJyb3JfcmVhc29uABsXbGxodHRwX3NldF9lcnJvcl9yZWFzb24AHBRsbGh0dHBfZ2V0X2Vycm9yX3BvcwAdEWxsaHR0cF9lcnJub19uYW1lAB4SbGxodHRwX21ldGhvZF9uYW1lAB8SbGxodHRwX3N0YXR1c19uYW1lACAabGxodHRw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AXRrQT5qIQILIAEgAjYCHCABQgA3AhAgAkECdEH01wBqIQACQEHI1QAoAgAiA0EBIAJ0IgdxRQRAIAAgATYCAEHI1QAgAyAHcjYCACABIAA2AhggASABNgIIIAEgATYCDAwBCyAEQRkgAkEBdmtBACACQR9HG3QhAiAAKAIAIQACQANAIAAiAygCBEF4cSAERg0BIAJBHXYhACACQQF0IQIgAyAAQQRxakEQaiIHKAIAIgANAAsgByABNgIAIAEgAzYCGCABIAE2AgwgASABNgIIDAELIAMoAggiACABNgIMIAMgATYCCCABQQA2AhggASADNgIMIAEgADYCCAtB5NUAQeTVACgCAEEBayIAQX8gABs2AgALCwcAIAAtACgLBwAgAC0AKgsHACAALQArCwcAIAAtACkLBwAgAC8BNAsHACAALQAwC0ABBH8gACgCGCEBIAAvAS4hAiAALQAoIQMgACgCOCEEIAAQOCAAIAQ2AjggACADOgAoIAAgAjsBLiAAIAE2AhgL5YUCAgd/A34gASACaiEEAkAgACIDKAIMIgANACADKAIEBEAgAyABNgIECyMAQRBrIgkkAAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAn8CQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkAgAygCHCICQQJrDvwBAfkBAgMEBQYHCAkKCwwNDg8QERL4ARP3ARQV9gEWF/UBGBkaGxwdHh8g/QH7ASH0ASIjJCUmJygpKivzASwtLi8wMTLyAfEBMzTwAe8BNTY3ODk6Ozw9Pj9AQUJDREVGR0hJSktMTU5P+gFQUVJT7gHtAVTsAVXrAVZXWFla6gFbXF1eX2BhYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5ent8fX5/gAGBAYIBgwGEAYUBhgGHAYgBiQGKAYsBjAGNAY4BjwGQAZEBkgGTAZQBlQGWAZcBmAGZAZoBmwGcAZ0BngGfAaABoQGiAaMBpAGlAaYBpwGoAakBqgGrAawBrQGuAa8BsAGxAbIBswG0AbUBtgG3AbgBuQG6AbsBvAG9Ab4BvwHAAcEBwgHDAcQBxQHGAccByAHJAcoBywHMAc0BzgHpAegBzwHnAdAB5gHRAdIB0wHUAeUB1QHWAdcB2AHZAdoB2wHcAd0B3gHfAeAB4QHiAeMBAPwBC0EADOMBC0EODOIBC0ENDOEBC0EPDOABC0EQDN8BC0ETDN4BC0EUDN0BC0EVDNwBC0EWDNsBC0EXDNoBC0EYDNkBC0EZDNgBC0EaDNcBC0EbDNYBC0EcDNUBC0EdDNQBC0EeDNMBC0EfDNIBC0EgDNEBC0EhDNABC0EIDM8BC0EiDM4BC0EkDM0BC0EjDMwBC0EHDMsBC0ElDMoBC0EmDMkBC0EnDMgBC0EoDMcBC0ESDMYBC0ERDMUBC0EpDMQBC0EqDMMBC0ErDMIBC0EsDMEBC0HeAQzAAQtBLgy/AQtBLwy+AQtBMAy9AQtBMQy8AQtBMgy7AQtBMwy6AQtBNAy5AQtB3wEMuAELQTUMtwELQTkMtgELQQwMtQELQTYMtAELQTcMswELQTgMsgELQT4MsQELQToMsAELQeABDK8BC0ELDK4BC0E/DK0BC0E7DKwBC0EKDKsBC0E8DKoBC0E9DKkBC0HhAQyoAQtBwQAMpwELQcAADKYBC0HCAAylAQtBCQykAQtBLQyjAQtBwwAMogELQcQADKEBC0HFAAygAQtBxgAMnwELQccADJ4BC0HIAAydAQtByQAMnAELQcoADJsBC0HLAAyaAQtBzAAMmQELQc0ADJgBC0HOAAyXAQtBzwAMlgELQdAADJUBC0HRAAyUAQtB0gAMkwELQdMADJIBC0HVAAyRAQtB1AAMkAELQdYADI8BC0HXAAyOAQtB2AAMjQELQdkADIwBC0HaAAyLAQtB2wAMigELQdwADIkBC0HdAAyIAQtB3gAMhwELQd8ADIYBC0HgAAyFAQtB4QAMhAELQeIADIMBC0HjAAyCAQtB5AAMgQELQeUADIABC0HiAQx/C0HmAAx+C0HnAAx9C0EGDHwLQegADHsLQQUMegtB6QAMeQtBBAx4C0HqAAx3C0HrAAx2C0HsAAx1C0HtAAx0C0EDDHMLQe4ADHILQe8ADHELQfAADHALQfIADG8LQfEADG4LQfMADG0LQfQADGwLQfUADGsLQfYADGoLQQIMaQtB9wAMaAtB+AAMZwtB+QAMZgtB+gAMZQtB+wAMZAtB/AAMYwtB/QAMYgtB/gAMYQtB/wAMYAtBgAEMXwtBgQEMXgtBggEMXQtBgwEMXAtBhAEMWwtBhQEMWgtBhgEMWQtBhwEMWAtBiAEMVwtBiQEMVgtBigEMVQtBiwEMVAtBjAEMUwtBjQEMUgtBjgEMUQtBjwEMUAtBkAEMTwtBkQEMTgtBkgEMTQtBkwEMTAtBlAEMSwtBlQEMSgtBlgEMSQtBlwEMSAtBmAEMRwtBmQEMRgtBmgEMRQtBmwEMRAtBnAEMQwtBnQEMQgtBngEMQQtBnwEMQAtBoAEMPwtBoQEMPgtBogEMPQtBowEMPAtBpAEMOwtBpQEMOgtBpgEMOQtBpwEMOAtBqAEMNwtBqQEMNgtBqgEMNQtBqwEMNAtBrAEMMwtBrQEMMgtBrgEMMQtBrwEMMAtBsAEMLwtBsQEMLgtBsgEMLQtBswEMLAtBtAEMKwtBtQEMKgtBtgEMKQtBtwEMKAtBuAEMJwtBuQEMJgtBugEMJQtBuwEMJAtBvAEMIwtBvQEMIgtBvgEMIQtBvwEMIAtBwAEMHwtBwQEMHgtBwgEMHQtBAQwcC0HDAQwbC0HEAQwaC0HFAQwZC0HGAQwYC0HHAQwXC0HIAQwWC0HJAQwVC0HKAQwUC0HLAQwTC0HMAQwSC0HNAQwRC0HOAQwQC0HPAQwPC0HQAQwOC0HRAQwNC0HSAQwMC0HTAQwLC0HUAQwKC0HVAQwJC0HWAQwIC0HjAQwHC0HXAQwGC0HYAQwFC0HZAQwEC0HaAQwDC0HbAQwCC0HdAQwBC0HcAQshAgNAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQCADAn8CQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAn8CQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAn8CQAJAAkACQAJAAkACQAJ/AkACQAJAAn8CQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAIAMCfwJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACfwJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkAgAg7jAQABAgMEBQYHCAkKCwwNDg8QERITFBUWFxgZGhscHR4fICEjJCUnKCmeA5sDmgORA4oDgwOAA/0C+wL4AvIC8QLvAu0C6ALnAuYC5QLkAtwC2wLaAtkC2ALXAtYC1QLPAs4CzALLAsoCyQLIAscCxgLEAsMCvgK8AroCuQK4ArcCtgK1ArQCswKyArECsAKuAq0CqQKoAqcCpgKlAqQCowKiAqECoAKfApgCkAKMAosCigKBAv4B/QH8AfsB+gH5AfgB9wH1AfMB8AHrAekB6AHnAeYB5QHkAeMB4gHhAeAB3wHeAd0B3AHaAdkB2AHXAdYB1QHUAdMB0gHRAdABzwHOAc0BzAHLAcoByQHIAccBxgHFAcQBwwHCAcEBwAG/Ab4BvQG8AbsBugG5AbgBtwG2AbUBtAGzAbIBsQGwAa8BrgGtAawBqwGqAakBqAGnAaYBpQGkAaMBogGfAZ4BmQGYAZcBlgGVAZQBkwGSAZEBkAGPAY0BjAGHAYYBhQGEAYMBggF9fHt6eXZ1dFBRUlNUVQsgASAERw1yQf0BIQIMvgMLIAEgBEcNmAFB2wEhAgy9AwsgASAERw3xAUGOASECDLwDCyABIARHDfwBQYQBIQIMuwMLIAEgBEcNigJB/wAhAgy6AwsgASAERw2RAkH9ACECDLkDCyABIARHDZQCQfsAIQIMuAMLIAEgBEcNHkEeIQIMtwMLIAEgBEcNGUEYIQIMtgMLIAEgBEcNygJBzQAhAgy1AwsgASAERw3VAkHGACECDLQDCyABIARHDdYCQcMAIQIMswMLIAEgBEcN3AJBOCECDLIDCyADLQAwQQFGDa0DDIkDC0EAIQACQAJAAkAgAy0AKkUNACADLQArRQ0AIAMvATIiAkECcUUNAQwCCyADLwEyIgJBAXFFDQELQQEhACADLQAoQQFGDQAgAy8BNCIGQeQAa0HkAEkNACAGQcwBRg0AIAZBsAJGDQAgAkHAAHENAEEAIQAgAkGIBHFBgARGDQAgAkEocUEARyEACyADQQA7ATIgA0EAOgAxAkAgAEUEQCADQQA6ADEgAy0ALkEEcQ0BDLEDCyADQgA3AyALIANBADoAMSADQQE6ADYMSAtBACEAAkAgAygCOCICRQ0AIAIoAjAiAkUNACADIAIRAAAhAAsgAEUNSCAAQRVHDWIgA0EENgIcIAMgATYCFCADQdIbNgIQIANBFTYCDEEAIQIMrwMLIAEgBEYEQEEGIQIMrwMLIAEtAABBCkcNGSABQQFqIQEMGgsgA0IANwMgQRIhAgyUAwsgASAERw2KA0EjIQIMrAMLIAEgBEYEQEEHIQIMrAMLAkACQCABLQAAQQprDgQBGBgAGAsgAUEBaiEBQRAhAgyTAwsgAUEBaiEBIANBL2otAABBAXENF0EAIQIgA0EANgIcIAMgATYCFCADQZkgNgIQIANBGTYCDAyrAwsgAyADKQMgIgwgBCABa60iCn0iC0IAIAsgDFgbNwMgIAogDFoNGEEIIQIMqgMLIAEgBEcEQCADQQk2AgggAyABNgIEQRQhAgyRAwtBCSECDKkDCyADKQMgUA2uAgxDCyABIARGBEBBCyECDKgDCyABLQAAQQpHDRYgAUEBaiEBDBcLIANBL2otAABBAXFFDRkMJgtBACEAAkAgAygCOCICRQ0AIAIoAlAiAkUNACADIAIRAAAhAAsgAA0ZDEILQQAhAAJAIAMoAjgiAkUNACACKAJQIgJFDQAgAyACEQAAIQALIAANGgwkC0EAIQACQCADKAI4IgJFDQAgAigCUCICRQ0AIAMgAhEAACEACyAADRsMMgsgA0Evai0AAEEBcUUNHAwiC0EAIQACQCADKAI4IgJFDQAgAigCVCICRQ0AIAMgAhEAACEACyAADRwMQgtBACEAAkAgAygCOCICRQ0AIAIoAlQiAkUNACADIAIRAAAhAAsgAA0dDCALIAEgBEYEQEETIQIMoAMLAkAgAS0AACIAQQprDgQfIyMAIgsgAUEBaiEBDB8LQQAhAAJAIAMoAjgiAkUNACACKAJUIgJFDQAgAyACEQAAIQALIAANIgxCCyABIARGBEBBFiECDJ4DCyABLQAAQcDBAGotAABBAUcNIwyDAwsCQANAIAEtAABBsDtqLQAAIgBBAUcEQAJAIABBAmsOAgMAJwsgAUEBaiEBQSEhAgyGAwsgBCABQQFqIgFHDQALQRghAgydAwsgAygCBCEAQQAhAiADQQA2AgQgAyAAIAFBAWoiARA0IgANIQxBC0EAIQACQCADKAI4IgJFDQAgAigCVCICRQ0AIAMgAhEAACEACyAADSMMKgsgASAERgRAQRwhAgybAwsgA0EKNgIIIAMgATYCBEEAIQACQCADKAI4IgJFDQAgAigCUCICRQ0AIAMgAhEAACEACyAADSVBJCECDIEDCyABIARHBEADQCABLQAAQbA9ai0AACIAQQNHBEAgAEEBaw4FGBomggMlJgsgBCABQQFqIgFHDQALQRshAgyaAwtBGyECDJkDCwNAIAEtAABBsD9qLQAAIgBBA0cEQCAAQQFrDgUPEScTJicLIAQgAUEBaiIBRw0AC0EeIQIMmAMLIAEgBEcEQCADQQs2AgggAyABNgIEQQchAgz/AgtBHyECDJcDCyABIARGBEBBICECDJcDCwJAIAEtAABBDWsOFC4/Pz8/Pz8/Pz8/Pz8/Pz8/Pz8APwtBACECIANBADYCHCADQb8LNgIQIANBAjYCDCADIAFBAWo2AhQMlgMLIANBL2ohAgNAIAEgBEYEQEEhIQIMlwMLAkACQAJAIAEtAAAiAEEJaw4YAgApKQEpKSkpKSkpKSkpKSkpKSkpKSkCJwsgAUEBaiEBIANBL2otAABBAXFFDQoMGAsgAUEBaiEBDBcLIAFBAWohASACLQAAQQJxDQALQQAhAiADQQA2AhwgAyABNgIUIANBnxU2AhAgA0EMNgIMDJUDCyADLQAuQYABcUUNAQtBACEAAkAgAygCOCICRQ0AIAIoAlwiAkUNACADIAIRAAAhAAsgAEUN5gIgAEEVRgRAIANBJDYCHCADIAE2AhQgA0GbGzYCECADQRU2AgxBACECDJQDC0EAIQIgA0EANgIcIAMgATYCFCADQZAONgIQIANBFDYCDAyTAwtBACECIANBADYCHCADIAE2AhQgA0G+IDYCECADQQI2AgwMkgMLIAMoAgQhAEEAIQIgA0EANgIEIAMgACABIAynaiIBEDIiAEUNKyADQQc2AhwgAyABNgIUIAMgADYCDAyRAwsgAy0ALkHAAHFFDQELQQAhAAJAIAMoAjgiAkUNACACKAJYIgJFDQAgAyACEQAAIQALIABFDSsgAEEVRgRAIANBCjYCHCADIAE2AhQgA0HrGTYCECADQRU2AgxBACECDJADC0EAIQIgA0EANgIcIAMgATYCFCADQZMMNgIQIANBEzYCDAyPAwtBACECIANBADYCHCADIAE2AhQgA0GCFTYCECADQQI2AgwMjgMLQQAhAiADQQA2AhwgAyABNgIUIANB3RQ2AhAgA0EZNgIMDI0DC0EAIQIgA0EANgIcIAMgATYCFCADQeYdNgIQIANBGTYCDAyMAwsgAEEVRg09QQAhAiADQQA2AhwgAyABNgIUIANB0A82AhAgA0EiNgIMDIsDCyADKAIEIQBBACECIANBADYCBCADIAAgARAzIgBFDSggA0ENNgIcIAMgATYCFCADIAA2AgwMigMLIABBFUYNOkEAIQIgA0EANgIcIAMgATYCFCADQdAPNgIQIANBIjYCDAyJAwsgAygCBCEAQQAhAiADQQA2AgQgAyAAIAEQMyIARQRAIAFBAWohAQwoCyADQQ42AhwgAyAANgIMIAMgAUEBajYCFAyIAwsgAEEVRg03QQAhAiADQQA2AhwgAyABNgIUIANB0A82AhAgA0EiNgIMDIcDCyADKAIEIQBBACECIANBADYCBCADIAAgARAzIgBFBEAgAUEBaiEBDCcLIANBDzYCHCADIAA2AgwgAyABQQFqNgIUDIYDC0EAIQIgA0EANgIcIAMgATYCFCADQeIXNgIQIANBGTYCDAyFAwsgAEEVRg0zQQAhAiADQQA2AhwgAyABNgIUIANB1gw2AhAgA0EjNgIMDIQDCyADKAIEIQBBACECIANBADYCBCADIAAgARA0IgBFDSUgA0ERNgIcIAMgATYCFCADIAA2AgwMgwMLIABBFUYNMEEAIQIgA0EANgIcIAMgATYCFCADQdYMNgIQIANBIzYCDAyCAwsgAygCBCEAQQAhAiADQQA2AgQgAyAAIAEQNCIARQRAIAFBAWohAQwlCyADQRI2AhwgAyAANgIMIAMgAUEBajYCFAyBAwsgA0Evai0AAEEBcUUNAQtBFyECDOYCC0EAIQIgA0EANgIcIAMgATYCFCADQeIXNgIQIANBGTYCDAz+AgsgAEE7Rw0AIAFBAWohAQwMC0EAIQIgA0EANgIcIAMgATYCFCADQZIYNgIQIANBAjYCDAz8AgsgAEEVRg0oQQAhAiADQQA2AhwgAyABNgIUIANB1gw2AhAgA0EjNgIMDPsCCyADQRQ2AhwgAyABNgIUIAMgADYCDAz6AgsgAygCBCEAQQAhAiADQQA2AgQgAyAAIAEQNCIARQRAIAFBAWohAQz1AgsgA0EVNgIcIAMgADYCDCADIAFBAWo2AhQM+QILIAMoAgQhAEEAIQIgA0EANgIEIAMgACABEDQiAEUEQCABQQFqIQEM8wILIANBFzYCHCADIAA2AgwgAyABQQFqNgIUDPgCCyAAQRVGDSNBACECIANBADYCHCADIAE2AhQgA0HWDDYCECADQSM2AgwM9wILIAMoAgQhAEEAIQIgA0EANgIEIAMgACABEDQiAEUEQCABQQFqIQEMHQsgA0EZNgIcIAMgADYCDCADIAFBAWo2AhQM9gILIAMoAgQhAEEAIQIgA0EANgIEIAMgACABEDQiAEUEQCABQQFqIQEM7wILIANBGjYCHCADIAA2AgwgAyABQQFqNgIUDPUCCyAAQRVGDR9BACECIANBADYCHCADIAE2AhQgA0HQDzYCECADQSI2AgwM9AILIAMoAgQhACADQQA2AgQgAyAAIAEQMyIARQRAIAFBAWohAQwbCyADQRw2AhwgAyAANgIMIAMgAUEBajYCFEEAIQIM8wILIAMoAgQhACADQQA2AgQgAyAAIAEQMyIARQRAIAFBAWohAQzrAgsgA0EdNgIcIAMgADYCDCADIAFBAWo2AhRBACECDPICCyAAQTtHDQEgAUEBaiEBC0EmIQIM1wILQQAhAiADQQA2AhwgAyABNgIUIANBnxU2AhAgA0EMNgIMDO8CCyABIARHBEADQCABLQAAQSBHDYQCIAQgAUEBaiIBRw0AC0EsIQIM7wILQSwhAgzuAgsgASAERgRAQTQhAgzuAgsCQAJAA0ACQCABLQAAQQprDgQCAAADAAsgBCABQQFqIgFHDQALQTQhAgzvAgsgAygCBCEAIANBADYCBCADIAAgARAxIgBFDZ8CIANBMjYCHCADIAE2AhQgAyAANgIMQQAhAgzuAgsgAygCBCEAIANBADYCBCADIAAgARAxIgBFBEAgAUEBaiEBDJ8CCyADQTI2AhwgAyAANgIMIAMgAUEBajYCFEEAIQIM7QILIAEgBEcEQAJAA0AgAS0AAEEwayIAQf8BcUEKTwRAQTohAgzXAgsgAykDICILQpmz5syZs+bMGVYNASADIAtCCn4iCjcDICAKIACtQv8BgyILQn+FVg0BIAMgCiALfDcDICAEIAFBAWoiAUcNAAtBwAAhAgzuAgsgAygCBCEAIANBADYCBCADIAAgAUEBaiIBEDEiAA0XDOICC0HAACECDOwCCyABIARGBEBByQAhAgzsAgsCQANAAkAgAS0AAEEJaw4YAAKiAqICqQKiAqICogKiAqICogKiAqICogKiAqICogKiAqICogKiAqICogIAogILIAQgAUEBaiIBRw0AC0HJACECDOwCCyABQQFqIQEgA0Evai0AAEEBcQ2lAiADQQA2AhwgAyABNgIUIANBlxA2AhAgA0EKNgIMQQAhAgzrAgsgASAERwRAA0AgAS0AAEEgRw0VIAQgAUEBaiIBRw0AC0H4ACECDOsCC0H4ACECDOoCCyADQQI6ACgMOAtBACECIANBADYCHCADQb8LNgIQIANBAjYCDCADIAFBAWo2AhQM6AILQQAhAgzOAgtBDSECDM0CC0ETIQIMzAILQRUhAgzLAgtBFiECDMoCC0EYIQIMyQILQRkhAgzIAgtBGiECDMcCC0EbIQIMxgILQRwhAgzFAgtBHSECDMQCC0EeIQIMwwILQR8hAgzCAgtBICECDMECC0EiIQIMwAILQSMhAgy/AgtBJSECDL4CC0HlACECDL0CCyADQT02AhwgAyABNgIUIAMgADYCDEEAIQIM1QILIANBGzYCHCADIAE2AhQgA0GkHDYCECADQRU2AgxBACECDNQCCyADQSA2AhwgAyABNgIUIANBmBo2AhAgA0EVNgIMQQAhAgzTAgsgA0ETNgIcIAMgATYCFCADQZgaNgIQIANBFTYCDEEAIQIM0gILIANBCzYCHCADIAE2AhQgA0GYGjYCECADQRU2AgxBACECDNECCyADQRA2AhwgAyABNgIUIANBmBo2AhAgA0EVNgIMQQAhAgzQAgsgA0EgNgIcIAMgATYCFCADQaQcNgIQIANBFTYCDEEAIQIMzwILIANBCzYCHCADIAE2AhQgA0GkHDYCECADQRU2AgxBACECDM4CCyADQQw2AhwgAyABNgIUIANBpBw2AhAgA0EVNgIMQQAhAgzNAgtBACECIANBADYCHCADIAE2AhQgA0HdDjYCECADQRI2AgwMzAILAkADQAJAIAEtAABBCmsOBAACAgACCyAEIAFBAWoiAUcNAAtB/QEhAgzMAgsCQAJAIAMtADZBAUcNAEEAIQACQCADKAI4IgJFDQAgAigCYCICRQ0AIAMgAhEAACEACyAARQ0AIABBFUcNASADQfwBNgIcIAMgATYCFCADQdwZNgIQIANBFTYCDEEAIQIMzQILQdwBIQIMswILIANBADYCHCADIAE2AhQgA0H5CzYCECADQR82AgxBACECDMsCCwJAAkAgAy0AKEEBaw4CBAEAC0HbASECDLICC0HUASECDLECCyADQQI6ADFBACEAAkAgAygCOCICRQ0AIAIoAgAiAkUNACADIAIRAAAhAAsgAEUEQEHdASECDLECCyAAQRVHBEAgA0EANgIcIAMgATYCFCADQbQMNgIQIANBEDYCDEEAIQIMygILIANB+wE2AhwgAyABNgIUIANBgRo2AhAgA0EVNgIMQQAhAgzJAgsgASAERgRAQfoBIQIMyQILIAEtAABByABGDQEgA0EBOgAoC0HAASECDK4CC0HaASECDK0CCyABIARHBEAgA0EMNgIIIAMgATYCBEHZASECDK0CC0H5ASECDMUCCyABIARGBEBB+AEhAgzFAgsgAS0AAEHIAEcNBCABQQFqIQFB2AEhAgyrAgsgASAERgRAQfcBIQIMxAILAkACQCABLQAAQcUAaw4QAAUFBQUFBQUFBQUFBQUFAQULIAFBAWohAUHWASECDKsCCyABQQFqIQFB1wEhAgyqAgtB9gEhAiABIARGDcICIAMoAgAiACAEIAFraiEFIAEgAGtBAmohBgJAA0AgAS0AACAAQbrVAGotAABHDQMgAEECRg0BIABBAWohACAEIAFBAWoiAUcNAAsgAyAFNgIADMMCCyADKAIEIQAgA0IANwMAIAMgACAGQQFqIgEQLiIARQRAQeMBIQIMqgILIANB9QE2AhwgAyABNgIUIAMgADYCDEEAIQIMwgILQfQBIQIgASAERg3BAiADKAIAIgAgBCABa2ohBSABIABrQQFqIQYCQANAIAEtAAAgAEG41QBqLQAARw0CIABBAUYNASAAQQFqIQAgBCABQQFqIgFHDQALIAMgBTYCAAzCAgsgA0GBBDsBKCADKAIEIQAgA0IANwMAIAMgACAGQQFqIgEQLiIADQMMAgsgA0EANgIAC0EAIQIgA0EANgIcIAMgATYCFCADQeUfNgIQIANBCDYCDAy/AgtB1QEhAgylAgsgA0HzATYCHCADIAE2AhQgAyAANgIMQQAhAgy9AgtBACEAAkAgAygCOCICRQ0AIAIoAkAiAkUNACADIAIRAAAhAAsgAEUNbiAAQRVHBEAgA0EANgIcIAMgATYCFCADQYIPNgIQIANBIDYCDEEAIQIMvQILIANBjwE2AhwgAyABNgIUIANB7Bs2AhAgA0EVNgIMQQAhAgy8AgsgASAERwRAIANBDTYCCCADIAE2AgRB0wEhAgyjAgtB8gEhAgy7AgsgASAERgRAQfEBIQIMuwILAkACQAJAIAEtAABByABrDgsAAQgICAgICAgIAggLIAFBAWohAUHQASECDKMCCyABQQFqIQFB0QEhAgyiAgsgAUEBaiEBQdIBIQIMoQILQfABIQIgASAERg25AiADKAIAIgAgBCABa2ohBiABIABrQQJqIQUDQCABLQAAIABBtdUAai0AAEcNBCAAQQJGDQMgAEEBaiEAIAQgAUEBaiIBRw0ACyADIAY2AgAMuQILQe8BIQIgASAERg24AiADKAIAIgAgBCABa2ohBiABIABrQQFqIQUDQCABLQAAIABBs9UAai0AAEcNAyAAQQFGDQIgAEEBaiEAIAQgAUEBaiIBRw0ACyADIAY2AgAMuAILQe4BIQIgASAERg23AiADKAIAIgAgBCABa2ohBiABIABrQQJqIQUDQCABLQAAIABBsNUAai0AAEcNAiAAQQJGDQEgAEEBaiEAIAQgAUEBaiIBRw0ACyADIAY2AgAMtwILIAMoAgQhACADQgA3AwAgAyAAIAVBAWoiARArIgBFDQIgA0HsATYCHCADIAE2AhQgAyAANgIMQQAhAgy2AgsgA0EANgIACyADKAIEIQAgA0EANgIEIAMgACABECsiAEUNnAIgA0HtATYCHCADIAE2AhQgAyAANgIMQQAhAgy0AgtBzwEhAgyaAgtBACEAAkAgAygCOCICRQ0AIAIoAjQiAkUNACADIAIRAAAhAAsCQCAABEAgAEEVRg0BIANBADYCHCADIAE2AhQgA0HqDTYCECADQSY2AgxBACECDLQCC0HOASECDJoCCyADQesBNgIcIAMgATYCFCADQYAbNgIQIANBFTYCDEEAIQIMsgILIAEgBEYEQEHrASECDLICCyABLQAAQS9GBEAgAUEBaiEBDAELIANBADYCHCADIAE2AhQgA0GyODYCECADQQg2AgxBACECDLECC0HNASECDJcCCyABIARHBEAgA0EONgIIIAMgATYCBEHMASECDJcCC0HqASECDK8CCyABIARGBEBB6QEhAgyvAgsgAS0AAEEwayIAQf8BcUEKSQRAIAMgADoAKiABQQFqIQFBywEhAgyWAgsgAygCBCEAIANBADYCBCADIAAgARAvIgBFDZcCIANB6AE2AhwgAyABNgIUIAMgADYCDEEAIQIMrgILIAEgBEYEQEHnASECDK4CCwJAIAEtAABBLkYEQCABQQFqIQEMAQsgAygCBCEAIANBADYCBCADIAAgARAvIgBFDZgCIANB5gE2AhwgAyABNgIUIAMgADYCDEEAIQIMrgILQcoBIQIMlAILIAEgBEYEQEHlASECDK0CC0EAIQBBASEFQQEhB0EAIQICQAJAAkACQAJAAn8CQAJAAkACQAJAAkACQCABLQAAQTBrDgoKCQABAgMEBQYICwtBAgwGC0EDDAULQQQMBAtBBQwDC0EGDAILQQcMAQtBCAshAkEAIQVBACEHDAILQQkhAkEBIQBBACEFQQAhBwwBC0EAIQVBASECCyADIAI6ACsgAUEBaiEBAkACQCADLQAuQRBxDQACQAJAAkAgAy0AKg4DAQACBAsgB0UNAwwCCyAADQEMAgsgBUUNAQsgAygCBCEAIANBADYCBCADIAAgARAvIgBFDQIgA0HiATYCHCADIAE2AhQgAyAANgIMQQAhAgyvAgsgAygCBCEAIANBADYCBCADIAAgARAvIgBFDZoCIANB4wE2AhwgAyABNgIUIAMgADYCDEEAIQIMrgILIAMoAgQhACADQQA2AgQgAyAAIAEQLyIARQ2YAiADQeQBNgIcIAMgATYCFCADIAA2AgwMrQILQckBIQIMkwILQQAhAAJAIAMoAjgiAkUNACACKAJEIgJFDQAgAyACEQAAIQALAkAgAARAIABBFUYNASADQQA2AhwgAyABNgIUIANBpA02AhAgA0EhNgIMQQAhAgytAgtByAEhAgyTAgsgA0HhATYCHCADIAE2AhQgA0HQGjYCECADQRU2AgxBACECDKsCCyABIARGBEBB4QEhAgyrAgsCQCABLQAAQSBGBEAgA0EAOwE0IAFBAWohAQwBCyADQQA2AhwgAyABNgIUIANBmRE2AhAgA0EJNgIMQQAhAgyrAgtBxwEhAgyRAgsgASAERgRAQeABIQIMqgILAkAgAS0AAEEwa0H/AXEiAkEKSQRAIAFBAWohAQJAIAMvATQiAEGZM0sNACADIABBCmwiADsBNCAAQf7/A3EgAkH//wNzSw0AIAMgACACajsBNAwCC0EAIQIgA0EANgIcIAMgATYCFCADQZUeNgIQIANBDTYCDAyrAgsgA0EANgIcIAMgATYCFCADQZUeNgIQIANBDTYCDEEAIQIMqgILQcYBIQIMkAILIAEgBEYEQEHfASECDKkCCwJAIAEtAABBMGtB/wFxIgJBCkkEQCABQQFqIQECQCADLwE0IgBBmTNLDQAgAyAAQQpsIgA7ATQgAEH+/wNxIAJB//8Dc0sNACADIAAgAmo7ATQMAgtBACECIANBADYCHCADIAE2AhQgA0GVHjYCECADQQ02AgwMqgILIANBADYCHCADIAE2AhQgA0GVHjYCECADQQ02AgxBACECDKkCC0HFASECDI8CCyABIARGBEBB3gEhAgyoAgsCQCABLQAAQTBrQf8BcSICQQpJBEAgAUEBaiEBAkAgAy8BNCIAQZkzSw0AIAMgAEEKbCIAOwE0IABB/v8DcSACQf//A3NLDQAgAyAAIAJqOwE0DAILQQAhAiADQQA2AhwgAyABNgIUIANBlR42AhAgA0ENNgIMDKkCCyADQQA2AhwgAyABNgIUIANBlR42AhAgA0ENNgIMQQAhAgyoAgtBxAEhAgyOAgsgASAERgRAQd0BIQIMpwILAkACQAJAAkAgAS0AAEEKaw4XAgMDAAMDAwMDAwMDAwMDAwMDAwMDAwEDCyABQQFqDAULIAFBAWohAUHDASECDI8CCyABQQFqIQEgA0Evai0AAEEBcQ0IIANBADYCHCADIAE2AhQgA0GNCzYCECADQQ02AgxBACECDKcCCyADQQA2AhwgAyABNgIUIANBjQs2AhAgA0ENNgIMQQAhAgymAgsgASAERwRAIANBDzYCCCADIAE2AgRBASECDI0CC0HcASECDKUCCwJAAkADQAJAIAEtAABBCmsOBAIAAAMACyAEIAFBAWoiAUcNAAtB2wEhAgymAgsgAygCBCEAIANBADYCBCADIAAgARAtIgBFBEAgAUEBaiEBDAQLIANB2gE2AhwgAyAANgIMIAMgAUEBajYCFEEAIQIMpQILIAMoAgQhACADQQA2AgQgAyAAIAEQLSIADQEgAUEBagshAUHBASECDIoCCyADQdkBNgIcIAMgADYCDCADIAFBAWo2AhRBACECDKICC0HCASECDIgCCyADQS9qLQAAQQFxDQEgA0EANgIcIAMgATYCFCADQeQcNgIQIANBGTYCDEEAIQIMoAILIAEgBEYEQEHZASEC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IAFBAWohAUGeASECDOQBCyABQQFqIQFBnwEhAgzjAQtBtwEhAiABIARGDfsBIAMoAgAiACAEIAFraiEFIAEgAGtBA2ohBgJAA0AgAS0AACAAQezUAGotAABHDSggAEEDRg0BIABBAWohACAEIAFBAWoiAUcNAAsgAyAFNgIADPwBCyADQQA2AgAgBkEBaiEBQQ0MKAtBtgEhAiABIARGDfoBIAMoAgAiACAEIAFraiEFIAEgAGtBAmohBgJAA0AgAS0AACAAQaHVAGotAABHDScgAEECRg0BIABBAWohACAEIAFBAWoiAUcNAAsgAyAFNgIADPsBCyADQQA2AgAgBkEBaiEBQQwMJwtBtQEhAiABIARGDfkBIAMoAgAiACAEIAFraiEFIAEgAGtBAWohBgJAA0AgAS0AACAAQerUAGotAABHDSYgAEEBRg0BIABBAWohACAEIAFBAWoiAUcNAAsgAyAFNgIADPoBCyADQQA2AgAgBkEBaiEBQQMMJgtBtAEhAiABIARGDfgBIAMoAgAiACAEIAFraiEFIAEgAGtBAWohBgJAA0AgAS0AACAAQejUAGotAABHDSUgAEEBRg0BIABBAWohACAEIAFBAWoiAUcNAAsgAyAFNgIADPkBCyADQQA2AgAgBkEBaiEBQSYMJQsgASAERgRAQbMBIQIM+AELAkACQCABLQAAQdQAaw4CAAEnCyABQQFqIQFBmQEhAgzfAQsgAUEBaiEBQZoBIQIM3gELQbIBIQIgASAERg32ASADKAIAIgAgBCABa2ohBSABIABrQQFqIQYCQANAIAEtAAAgAEHm1ABqLQAARw0jIABBAUYNASAAQQFqIQAgBCABQQFqIgFHDQALIAMgBTYCAAz3AQsgA0EANgIAIAZBAWohAUEnDCMLQbEBIQIgASAERg31ASADKAIAIgAgBCABa2ohBSABIABrQQFqIQYCQANAIAEtAAAgAEHk1ABqLQAARw0iIABBAUYNASAAQQFqIQAgBCABQQFqIgFHDQALIAMgBTYCAAz2AQsgA0EANgIAIAZBAWohAUEcDCILQbABIQIgASAERg30ASADKAIAIgAgBCABa2ohBSABIABrQQVqIQYCQANAIAEtAAAgAEHe1ABqLQAARw0hIABBBUYNASAAQQFqIQAgBCABQQFqIgFHDQALIAMgBTYCAAz1AQsgA0EANgIAIAZBAWohAUEGDCELQa8BIQIgASAERg3zASADKAIAIgAgBCABa2ohBSABIABrQQRqIQYCQANAIAEtAAAgAEHZ1ABqLQAARw0gIABBBEYNASAAQQFqIQAgBCABQQFqIgFHDQALIAMgBTYCAAz0AQsgA0EANgIAIAZBAWohAUEZDCALIAEgBEYEQEGuASECDPMBCwJAAkACQAJAIAEtAABBLWsOIwAkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJAEkJCQkJAIkJCQDJAsgAUEBaiEBQY4BIQIM3AELIAFBAWohAUGPASECDNsBCyABQQFqIQFBlAEhAgzaAQsgAUEBaiEBQZUBIQIM2QELQa0BIQIgASAERg3xASADKAIAIgAgBCABa2ohBSABIABrQQFqIQYCQANAIAEtAAAgAEHX1ABqLQAARw0eIABBAUYNASAAQQFqIQAgBCABQQFqIgFHDQALIAMgBTYCAAzyAQsgA0EANgIAIAZBAWohAUELDB4LIAEgBEYEQEGsASECDPEBCwJAAkAgAS0AAEHBAGsOAwAgASALIAFBAWohAUGQASECDNgBCyABQQFqIQFBkwEhAgzXAQsgASAERgRAQasBIQIM8AELAkACQCABLQAAQcEAaw4PAB8fHx8fHx8fHx8fHx8BHwsgAUEBaiEBQZEBIQIM1wELIAFBAWohAUGSASECDNYBCyABIARGBEBBqgEhAgzvAQsgAS0AAEHMAEcNHCABQQFqIQFBCgwbC0GpASECIAEgBEYN7QEgAygCACIAIAQgAWtqIQUgASAAa0EFaiEGAkADQCABLQAAIABB0dQAai0AAEcNGiAAQQVGDQEgAEEBaiEAIAQgAUEBaiIBRw0ACyADIAU2AgAM7gELIANBADYCACAGQQFqIQFBHgwaC0GoASECIAEgBEYN7AEgAygCACIAIAQgAWtqIQUgASAAa0EGaiEGAkADQCABLQAAIABBytQAai0AAEcNGSAAQQZGDQEgAEEBaiEAIAQgAUEBaiIBRw0ACyADIAU2AgAM7QELIANBADYCACAGQQFqIQFBFQwZC0GnASECIAEgBEYN6wEgAygCACIAIAQgAWtqIQUgASAAa0ECaiEGAkADQCABLQAAIABBx9QAai0AAEcNGCAAQQJGDQEgAEEBaiEAIAQgAUEBaiIBRw0ACyADIAU2AgAM7AELIANBADYCACAGQQFqIQFBFwwYC0GmASECIAEgBEYN6gEgAygCACIAIAQgAWtqIQUgASAAa0EFaiEGAkADQCABLQAAIABBwdQAai0AAEcNFyAAQQVGDQEgAEEBaiEAIAQgAUEBaiIBRw0ACyADIAU2AgAM6wELIANBADYCACAGQQFqIQFBGAwXCyABIARGBEBBpQEhAgzqAQsCQAJAIAEtAABByQBrDgcAGRkZGRkBGQsgAUEBaiEBQYsBIQIM0QELIAFBAWohAUGMASECDNABC0GkASECIAEgBEYN6AEgAygCACIAIAQgAWtqIQUgASAAa0EBaiEGAkADQCABLQAAIABBptUAai0AAEcNFSAAQQFGDQEgAEEBaiEAIAQgAUEBaiIBRw0ACyADIAU2AgAM6QELIANBADYCACAGQQFqIQFBCQwVC0GjASECIAEgBEYN5wEgAygCACIAIAQgAWtqIQUgASAAa0EBaiEGAkADQCABLQAAIABBpNUAai0AAEcNFCAAQQFGDQEgAEEBaiEAIAQgAUEBaiIBRw0ACyADIAU2AgAM6AELIANBADYCACAGQQFqIQFBHwwUC0GiASECIAEgBEYN5gEgAygCACIAIAQgAWtqIQUgASAAa0ECaiEGAkADQCABLQAAIABBvtQAai0AAEcNEyAAQQJGDQEgAEEBaiEAIAQgAUEBaiIBRw0ACyADIAU2AgAM5wELIANBADYCACAGQQFqIQFBAgwTC0GhASECIAEgBEYN5QEgAygCACIAIAQgAWtqIQUgASAAa0EBaiEGA0AgAS0AACAAQbzUAGotAABHDREgAEEBRg0CIABBAWohACAEIAFBAWoiAUcNAAsgAyAFNgIADOUBCyABIARGBEBBoAEhAgzlAQtBASABLQAAQd8ARw0RGiABQQFqIQFBhwEhAgzLAQsgA0EANgIAIAZBAWohAUGIASECDMoBC0GfASECIAEgBEYN4gEgAygCACIAIAQgAWtqIQUgASAAa0EIaiEGAkADQCABLQAAIABBhNUAai0AAEcNDyAAQQhGDQEgAEEBaiEAIAQgAUEBaiIBRw0ACyADIAU2AgAM4wELIANBADYCACAGQQFqIQFBKQwPC0GeASECIAEgBEYN4QEgAygCACIAIAQgAWtqIQUgASAAa0EDaiEGAkADQCABLQAAIABBuNQAai0AAEcNDiAAQQNGDQEgAEEBaiEAIAQgAUEBaiIBRw0ACyADIAU2AgAM4gELIANBADYCACAGQQFqIQFBLQwOCyABIARGBEBBnQEhAgzhAQsgAS0AAEHFAEcNDiABQQFqIQFBhAEhAgzHAQsgASAERgRAQZwBIQIM4AELAkACQCABLQAAQcwAaw4IAA8PDw8PDwEPCyABQQFqIQFBggEhAgzHAQsgAUEBaiEBQYMBIQIMxgELQZsBIQIgASAERg3eASADKAIAIgAgBCABa2ohBSABIABrQQRqIQYCQANAIAEtAAAgAEGz1ABqLQAARw0LIABBBEYNASAAQQFqIQAgBCABQQFqIgFHDQALIAMgBTYCAAzfAQsgA0EANgIAIAZBAWohAUEjDAsLQZoBIQIgASAERg3dASADKAIAIgAgBCABa2ohBSABIABrQQJqIQYCQANAIAEtAAAgAEGw1ABqLQAARw0KIABBAkYNASAAQQFqIQAgBCABQQFqIgFHDQALIAMgBTYCAAzeAQsgA0EANgIAIAZBAWohAUEADAoLIAEgBEYEQEGZASECDN0BCwJAAkAgAS0AAEHIAGsOCAAMDAwMDAwBDAsgAUEBaiEBQf0AIQIMxAELIAFBAWohAUGAASECDMMBCyABIARGBEBBmAEhAgzcAQsCQAJAIAEtAABBzgBrDgMACwELCyABQQFqIQFB/gAhAgzDAQsgAUEBaiEBQf8AIQIMwgELIAEgBEYEQEGXASECDNsBCyABLQAAQdkARw0IIAFBAWohAUEIDAcLQZYBIQIgASAERg3ZASADKAIAIgAgBCABa2ohBSABIABrQQNqIQYCQANAIAEtAAAgAEGs1ABqLQAARw0GIABBA0YNASAAQQFqIQAgBCABQQFqIgFHDQALIAMgBTYCAAzaAQsgA0EANgIAIAZBAWohAUEFDAYLQZUBIQIgASAERg3YASADKAIAIgAgBCABa2ohBSABIABrQQVqIQYCQANAIAEtAAAgAEGm1ABqLQAARw0FIABBBUYNASAAQQFqIQAgBCABQQFqIgFHDQALIAMgBTYCAAzZAQsgA0EANgIAIAZBAWohAUEWDAULQZQBIQIgASAERg3XASADKAIAIgAgBCABa2ohBSABIABrQQJqIQYCQANAIAEtAAAgAEGh1QBqLQAARw0EIABBAkYNASAAQQFqIQAgBCABQQFqIgFHDQALIAMgBTYCAAzYAQsgA0EANgIAIAZBAWohAUEQDAQLIAEgBEYEQEGTASECDNcBCwJAAkAgAS0AAEHDAGsODAAGBgYGBgYGBgYGAQYLIAFBAWohAUH5ACECDL4BCyABQQFqIQFB+gAhAgy9AQtBkgEhAiABIARGDdUBIAMoAgAiACAEIAFraiEFIAEgAGtBBWohBgJAA0AgAS0AACAAQaDUAGotAABHDQIgAEEFRg0BIABBAWohACAEIAFBAWoiAUcNAAsgAyAFNgIADNYBCyADQQA2AgAgBkEBaiEBQSQMAgsgA0EANgIADAILIAEgBEYEQEGRASECDNQBCyABLQAAQcwARw0BIAFBAWohAUETCzoAKSADKAIEIQAgA0EANgIEIAMgACABEC4iAA0CDAELQQAhAiADQQA2AhwgAyABNgIUIANB/h82AhAgA0EGNgIMDNEBC0H4ACECDLcBCyADQZABNgIcIAMgATYCFCADIAA2AgxBACECDM8BC0EAIQACQCADKAI4IgJFDQAgAigCQCICRQ0AIAMgAhEAACEACyAARQ0AIABBFUYNASADQQA2AhwgAyABNgIUIANBgg82AhAgA0EgNgIMQQAhAgzOAQtB9wAhAgy0AQsgA0GPATYCHCADIAE2AhQgA0HsGzYCECADQRU2AgxBACECDMwBCyABIARGBEBBjwEhAgzMAQsCQCABLQAAQSBGBEAgAUEBaiEBDAELIANBADYCHCADIAE2AhQgA0GbHzYCECADQQY2AgxBACECDMwBC0ECIQIMsgELA0AgAS0AAEEgRw0CIAQgAUEBaiIBRw0AC0GOASECDMoBCyABIARGBEBBjQEhAgzKAQsCQCABLQAAQQlrDgRKAABKAAtB9QAhAgywAQsgAy0AKUEFRgRAQfYAIQIMsAELQfQAIQIMrwELIAEgBEYEQEGMASECDMgBCyADQRA2AgggAyABNgIEDAoLIAEgBEYEQEGLASECDMcBCwJAIAEtAABBCWsOBEcAAEcAC0HzACECDK0BCyABIARHBEAgA0EQNgIIIAMgATYCBEHxACECDK0BC0GKASECDMUBCwJAIAEgBEcEQANAIAEtAABBoNAAai0AACIAQQNHBEACQCAAQQFrDgJJAAQLQfAAIQIMrwELIAQgAUEBaiIBRw0AC0GIASEC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BCABQQFqIgFHDQALQfsAIQIMpwELIAMoAgQhACADQQA2AgQgAyAAIAEQLCIARQ0DIANB2wA2AhwgAyABNgIUIAMgADYCDEEAIQIMpgELIAMoAgQhACADQQA2AgQgAyAAIAEQLCIARQ0DIANB3QA2AhwgAyABNgIUIAMgADYCDEEAIQIMpQELIAMoAgQhACADQQA2AgQgAyAAIAEQLCIARQ0DIANB+gA2AhwgAyABNgIUIAMgADYCDEEAIQIMpAELIANBADYCHCADIAE2AhQgA0G8CjYCECADQQc2AgxBACECDKMBC0HPACECDIkBC0HRACECDIgBC0HnACECDIcBCyABIARGBEBB+gAhAgygAQsCQCABLQAAQQlrDgQgAAAgAAsgAUEBaiEBQeYAIQIMhgELIAEgBEYEQEH5ACECDJ8BCwJAIAEtAABBCWsOBB8AAB8AC0EAIQACQCADKAI4IgJFDQAgAigCOCICRQ0AIAMgAhEAACEACyAARQRAQeIBIQIMhgELIABBFUcEQCADQQA2AhwgAyABNgIUIANByQ02AhAgA0EaNgIMQQAhAgyfAQsgA0H4ADYCHCADIAE2AhQgA0HqGjYCECADQRU2AgxBACECDJ4BCyABIARHBEAgA0ENNgIIIAMgATYCBEHkACECDIUBC0H3ACECDJ0BCyABIARGBEBB9gAhAgydAQsCQAJAAkAgAS0AAEHIAGsOCwABCwsLCwsLCwsCCwsgAUEBaiEBQd0AIQIMhQELIAFBAWohAUHgACECDIQBCyABQQFqIQFB4wAhAgyDAQtB9QAhAiABIARGDZsBIAMoAgAiACAEIAFraiEFIAEgAGtBAmohBgJAA0AgAS0AACAAQbXVAGotAABHDQggAEECRg0BIABBAWohACAEIAFBAWoiAUcNAAsgAyAFNgIADJwBCyADKAIEIQAgA0IANwMAIAMgACAGQQFqIgEQKyIABEAgA0H0ADYCHCADIAE2AhQgAyAANgIMQQAhAgycAQtB4gAhAgyCAQtBACEAAkAgAygCOCICRQ0AIAIoAjQiAkUNACADIAIRAAAhAAsCQCAABEAgAEEVRg0BIANBADYCHCADIAE2AhQgA0HqDTYCECADQSY2AgxBACECDJwBC0HhACECDIIBCyADQfMANgIcIAMgATYCFCADQYAbNgIQIANBFTYCDEEAIQIMmgELIAMtACkiAEEja0ELSQ0JAkAgAEEGSw0AQQEgAHRBygBxRQ0ADAoLQQAhAiADQQA2AhwgAyABNgIUIANB7Qk2AhAgA0EINgIMDJkBC0HyACECIAEgBEYNmAEgAygCACIAIAQgAWtqIQUgASAAa0EBaiEGAkADQCABLQAAIABBs9UAai0AAEcNBSAAQQFGDQEgAEEBaiEAIAQgAUEBaiIBRw0ACyADIAU2AgAMmQELIAMoAgQhACADQgA3AwAgAyAAIAZBAWoiARArIgAEQCADQfEANgIcIAMgATYCFCADIAA2AgxBACECDJkBC0HfACECDH8LQQAhAAJAIAMoAjgiAkUNACACKAI0IgJFDQAgAyACEQAAIQALAkAgAARAIABBFUYNASADQQA2AhwgAyABNgIUIANB6g02AhAgA0EmNgIMQQAhAgyZAQtB3gAhAgx/CyADQfAANgIcIAMgATYCFCADQYAbNgIQIANBFTYCDEEAIQIMlwELIAMtAClBIUYNBiADQQA2AhwgAyABNgIUIANBkQo2AhAgA0EINgIMQQAhAgyWAQtB7wAhAiABIARGDZUBIAMoAgAiACAEIAFraiEFIAEgAGtBAmohBgJAA0AgAS0AACAAQbDVAGotAABHDQIgAEECRg0BIABBAWohACAEIAFBAWoiAUcNAAsgAyAFNgIADJYBCyADKAIEIQAgA0IANwMAIAMgACAGQQFqIgEQKyIARQ0CIANB7QA2AhwgAyABNgIUIAMgADYCDEEAIQIMlQELIANBADYCAAsgAygCBCEAIANBADYCBCADIAAgARArIgBFDYABIANB7gA2AhwgAyABNgIUIAMgADYCDEEAIQIMkwELQdwAIQIMeQtBACEAAkAgAygCOCICRQ0AIAIoAjQiAkUNACADIAIRAAAhAAsCQCAABEAgAEEVRg0BIANBADYCHCADIAE2AhQgA0HqDTYCECADQSY2AgxBACECDJMBC0HbACECDHkLIANB7AA2AhwgAyABNgIUIANBgBs2AhAgA0EVNgIMQQAhAgyRAQsgAy0AKSIAQSNJDQAgAEEuRg0AIANBADYCHCADIAE2AhQgA0HJCTYCECADQQg2AgxBACECDJABC0HaACECDHYLIAEgBEYEQEHrACECDI8BCwJAIAEtAABBL0YEQCABQQFqIQEMAQsgA0EANgIcIAMgATYCFCADQbI4NgIQIANBCDYCDEEAIQIMjwELQdkAIQIMdQsgASAERwRAIANBDjYCCCADIAE2AgRB2AAhAgx1C0HqACECDI0BCyABIARGBEBB6QAhAgyNAQsgAS0AAEEwayIAQf8BcUEKSQRAIAMgADoAKiABQQFqIQFB1wAhAgx0CyADKAIEIQAgA0EANgIEIAMgACABEC8iAEUNeiADQegANgIcIAMgATYCFCADIAA2AgxBACECDIwBCyABIARGBEBB5wAhAgyMAQsCQCABLQAAQS5GBEAgAUEBaiEBDAELIAMoAgQhACADQQA2AgQgAyAAIAEQLyIARQ17IANB5gA2AhwgAyABNgIUIAMgADYCDEEAIQIMjAELQdYAIQIMcgsgASAERgRAQeUAIQIMiwELQQAhAEEBIQVBASEHQQAhAgJAAkACQAJAAkACfwJAAkACQAJAAkACQAJAIAEtAABBMGsOCgoJAAECAwQFBggLC0ECDAYLQQMMBQtBBAwEC0EFDAMLQQYMAgtBBwwBC0EICyECQQAhBUEAIQcMAgtBCSECQQEhAEEAIQVBACEHDAELQQAhBUEBIQILIAMgAjoAKyABQQFqIQECQAJAIAMtAC5BEHENAAJAAkACQCADLQAqDgMBAAIECyAHRQ0DDAILIAANAQwCCyAFRQ0BCyADKAIEIQAgA0EANgIEIAMgACABEC8iAEUNAiADQeIANgIcIAMgATYCFCADIAA2AgxBACECDI0BCyADKAIEIQAgA0EANgIEIAMgACABEC8iAEUNfSADQeMANgIcIAMgATYCFCADIAA2AgxBACECDIwBCyADKAIEIQAgA0EANgIEIAMgACABEC8iAEUNeyADQeQANgIcIAMgATYCFCADIAA2AgwMiwELQdQAIQIMcQsgAy0AKUEiRg2GAUHTACECDHALQQAhAAJAIAMoAjgiAkUNACACKAJEIgJFDQAgAyACEQAAIQALIABFBEBB1QAhAgxwCyAAQRVHBEAgA0EANgIcIAMgATYCFCADQaQNNgIQIANBITYCDEEAIQIMiQELIANB4QA2AhwgAyABNgIUIANB0Bo2AhAgA0EVNgIMQQAhAgyIAQsgASAERgRAQeAAIQIMiAELAkACQAJAAkACQCABLQAAQQprDgQBBAQABAsgAUEBaiEBDAELIAFBAWohASADQS9qLQAAQQFxRQ0BC0HSACECDHALIANBADYCHCADIAE2AhQgA0G2ETYCECADQQk2AgxBACECDIgBCyADQQA2AhwgAyABNgIUIANBthE2AhAgA0EJNgIMQQAhAgyHAQsgASAERgRAQd8AIQIMhwELIAEtAABBCkYEQCABQQFqIQEMCQsgAy0ALkHAAHENCCADQQA2AhwgAyABNgIUIANBthE2AhAgA0ECNgIMQQAhAgyGAQsgASAERgRAQd0AIQIMhgELIAEtAAAiAkENRgRAIAFBAWohAUHQACECDG0LIAEhACACQQlrDgQFAQEFAQsgBCABIgBGBEBB3AAhAgyFAQsgAC0AAEEKRw0AIABBAWoMAgtBACECIANBADYCHCADIAA2AhQgA0HKLTYCECADQQc2AgwMgwELIAEgBEYEQEHbACECDIMBCwJAIAEtAABBCWsOBAMAAAMACyABQQFqCyEBQc4AIQIMaAsgASAERgRAQdoAIQIMgQELIAEtAABBCWsOBAABAQABC0EAIQIgA0EANgIcIANBmhI2AhAgA0EHNgIMIAMgAUEBajYCFAx/CyADQYASOwEqQQAhAAJAIAMoAjgiAkUNACACKAI4IgJFDQAgAyACEQAAIQALIABFDQAgAEEVRw0BIANB2QA2AhwgAyABNgIUIANB6ho2AhAgA0EVNgIMQQAhAgx+C0HNACECDGQLIANBADYCHCADIAE2AhQgA0HJDTYCECADQRo2AgxBACECDHwLIAEgBEYEQEHZACECDHwLIAEtAABBIEcNPSABQQFqIQEgAy0ALkEBcQ09IANBADYCHCADIAE2AhQgA0HCHDYCECADQR42AgxBACECDHsLIAEgBEYEQEHYACECDHsLAkACQAJAAkACQCABLQAAIgBBCmsOBAIDAwABCyABQQFqIQFBLCECDGULIABBOkcNASADQQA2AhwgAyABNgIUIANB5xE2AhAgA0EKNgIMQQAhAgx9CyABQQFqIQEgA0Evai0AAEEBcUUNcyADLQAyQYABcUUEQCADQTJqIQIgAxA1QQAhAAJAIAMoAjgiBkUNACAGKAIoIgZFDQAgAyAGEQAAIQALAkACQCAADhZNTEsBAQEBAQEBAQEBAQEBAQEBAQEAAQsgA0EpNgIcIAMgATYCFCADQawZNgIQIANBFTYCDEEAIQIMfgsg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c3BvbnNlIHN0YXR1cwBFeHBlY3RlZCBMRiBhZnRlciBoZWFkZXJzAEludmFsaWQgY2hhcmFjdGVyIGluIGNodW5rIGV4dGVuc2lvbnMAVXNlciBjYWxsYmFjayBlcnJvcgBgb25fcmVzZXRgIGNhbGxiYWNrIGVycm9yAGBvbl9jaHVua19oZWFkZXJgIGNhbGxiYWNrIGVycm9yAGBvbl9tZXNzYWdlX2JlZ2luYCBjYWxsYmFjayBlcnJvcgBgb25fY2h1bmtfZXh0ZW5zaW9uX3ZhbHVlYCBjYWxsYmFjayBlcnJvcgBgb25fc3RhdHVzX2NvbXBsZXRlYCBjYWxsYmFjayBlcnJvcgBgb25fdmVyc2lvbl9jb21wbGV0ZWAgY2FsbGJhY2sgZXJyb3IAYG9uX3VybF9jb21wbGV0ZWAgY2FsbGJhY2sgZXJyb3IAYG9uX3Byb3RvY29sX2NvbXBsZXRlYCBjYWxsYmFjayBlcnJvcgBgb25fY2h1bmtfY29tcGxldGVgIGNhbGxiYWNrIGVycm9yAGBvbl9oZWFkZXJfdmFsdWVfY29tcGxldGVgIGNhbGxiYWNrIGVycm9yAGBvbl9tZXNzYWdlX2NvbXBsZXRlYCBjYWxsYmFjayBlcnJvcgBgb25fbWV0aG9kX2NvbXBsZXRlYCBjYWxsYmFjayBlcnJvcgBgb25faGVhZGVyX2ZpZWxkX2NvbXBsZXRlYCBjYWxsYmFjayBlcnJvcgBgb25fY2h1bmtfZXh0ZW5zaW9uX25hbWVgIGNhbGxiYWNrIGVycm9yAFVuZXhwZWN0ZWQgY2hhciBpbiB1cmwgc2VydmVyAEludmFsaWQgaGVhZGVyIHZhbHVlIGNoYXIASW52YWxpZCBoZWFkZXIgZmllbGQgY2hhcgBTcGFuIGNhbGxiYWNrIGVycm9yIGluIG9uX3ZlcnNpb24ASW52YWxpZCBtaW5vciB2ZXJzaW9uAEludmFsaWQgbWFqb3IgdmVyc2lvbgBFeHBlY3RlZCBzcGFjZSBhZnRlciB2ZXJzaW9uAEV4cGVjdGVkIENSTEYgYWZ0ZXIgdmVyc2lvbgBJbnZhbGlkIEhUVFAgdmVyc2lvbgBJbnZhbGlkIGhlYWRlciB0b2tlbgBTcGFuIGNhbGxiYWNrIGVycm9yIGluIG9uX3VybABJbnZhbGlkIGNoYXJhY3RlcnMgaW4gdXJsAFVuZXhwZWN0ZWQgc3RhcnQgY2hhciBpbiB1cmwARG91YmxlIEAgaW4gdXJsAFNwYW4gY2FsbGJhY2sgZXJyb3IgaW4gb25fcHJvdG9jb2wARW1wdHkgQ29udGVudC1MZW5ndGgASW52YWxpZCBjaGFyYWN0ZXIgaW4gQ29udGVudC1MZW5ndGgAVHJhbnNmZXItRW5jb2RpbmcgY2FuJ3QgYmUgcHJlc2VudCB3aXRoIENvbnRlbnQtTGVuZ3RoAER1cGxpY2F0ZSBDb250ZW50LUxlbmd0aABJbnZhbGlkIGNoYXIgaW4gdXJsIHBhdGgAQ29udGVudC1MZW5ndGggY2FuJ3QgYmUgcHJlc2VudCB3aXRoIFRyYW5zZmVyLUVuY29kaW5nAE1pc3NpbmcgZXhwZWN0ZWQgQ1IgYWZ0ZXIgY2h1bmsgc2l6ZQBFeHBlY3RlZCBMRiBhZnRlciBjaHVuayBzaXplAEludmFsaWQgY2hhcmFjdGVyIGluIGNodW5rIHNpemUAU3BhbiBjYWxsYmFjayBlcnJvciBpbiBvbl9oZWFkZXJfdmFsdWUAU3BhbiBjYWxsYmFjayBlcnJvciBpbiBvbl9jaHVua19leHRlbnNpb25fdmFsdWUASW52YWxpZCBjaGFyYWN0ZXIgaW4gY2h1bmsgZXh0ZW5zaW9ucyB2YWx1ZQBVbmV4cGVjdGVkIHdoaXRlc3BhY2UgYWZ0ZXIgaGVhZGVyIHZhbHVlAE1pc3NpbmcgZXhwZWN0ZWQgQ1IgYWZ0ZXIgaGVhZGVyIHZhbHVlAE1pc3NpbmcgZXhwZWN0ZWQgTEYgYWZ0ZXIgaGVhZGVyIHZhbHVlAEludmFsaWQgYFRyYW5zZmVyLUVuY29kaW5nYCBoZWFkZXIgdmFsdWUATWlzc2luZyBleHBlY3RlZCBDUiBhZnRlciBjaHVuayBleHRlbnNpb24gdmFsdWUASW52YWxpZCBjaGFyYWN0ZXIgaW4gY2h1bmsgZXh0ZW5zaW9ucyBxdW90ZSB2YWx1ZQBJbnZhbGlkIHF1b3RlZC1wYWlyIGluIGNodW5rIGV4dGVuc2lvbnMgcXVvdGVkIHZhbHVlAEludmFsaWQgY2hhcmFjdGVyIGluIGNodW5rIGV4dGVuc2lvbnMgcXVvdGVkIHZhbHVlAFBhdXNlZCBieSBvbl9oZWFkZXJzX2NvbXBsZXRlAEludmFsaWQgRU9GIHN0YXRlAG9uX3Jlc2V0IHBhdXNlAG9uX2NodW5rX2hlYWRlciBwYXVzZQBvbl9tZXNzYWdlX2JlZ2luIHBhdXNlAG9uX2NodW5rX2V4dGVuc2lvbl92YWx1ZSBwYXVzZQBvbl9zdGF0dXNfY29tcGxldGUgcGF1c2UAb25fdmVyc2lvbl9jb21wbGV0ZSBwYXVzZQBvbl91cmxfY29tcGxldGUgcGF1c2UAb25fcHJvdG9jb2xfY29tcGxldGUgcGF1c2UAb25fY2h1bmtfY29tcGxldGUgcGF1c2UAb25faGVhZGVyX3ZhbHVlX2NvbXBsZXRlIHBhdXNlAG9uX21lc3NhZ2VfY29tcGxldGUgcGF1c2UAb25fbWV0aG9kX2NvbXBsZXRlIHBhdXNlAG9uX2hlYWRlcl9maWVsZF9jb21wbGV0ZSBwYXVzZQBvbl9jaHVua19leHRlbnNpb25fbmFtZSBwYXVzZQBVbmV4cGVjdGVkIHNwYWNlIGFmdGVyIHN0YXJ0IGxpbmUATWlzc2luZyBleHBlY3RlZCBDUiBhZnRlciByZXNwb25zZSBsaW5lAFNwYW4gY2FsbGJhY2sgZXJyb3IgaW4gb25fY2h1bmtfZXh0ZW5zaW9uX25hbWUASW52YWxpZCBjaGFyYWN0ZXIgaW4gY2h1bmsgZXh0ZW5zaW9ucyBuYW1lAE1pc3NpbmcgZXhwZWN0ZWQgQ1IgYWZ0ZXIgY2h1bmsgZXh0ZW5zaW9uIG5hbWUASW52YWxpZCBzdGF0dXMgY29kZQBQYXVzZSBvbiBDT05ORUNUL1VwZ3JhZGUAUGF1c2Ugb24gUFJJL1VwZ3JhZGUARXhwZWN0ZWQgSFRUUC8yIENvbm5lY3Rpb24gUHJlZmFjZQBTcGFuIGNhbGxiYWNrIGVycm9yIGluIG9uX21ldGhvZABFeHBlY3RlZCBzcGFjZSBhZnRlciBtZXRob2QAU3BhbiBjYWxsYmFjayBlcnJvciBpbiBvbl9oZWFkZXJfZmllbGQAUGF1c2VkAEludmFsaWQgd29yZCBlbmNvdW50ZXJlZABJbnZhbGlkIG1ldGhvZCBlbmNvdW50ZXJlZABNaXNzaW5nIGV4cGVjdGVkIENSIGFmdGVyIGNodW5rIGRhdGEARXhwZWN0ZWQgTEYgYWZ0ZXIgY2h1bmsgZGF0YQBVbmV4cGVjdGVkIGNoYXIgaW4gdXJsIHNjaGVtYQBSZXF1ZXN0IGhhcyBpbnZhbGlkIGBUcmFuc2Zlci1FbmNvZGluZ2AARGF0YSBhZnRlciBgQ29ubmVjdGlvbjogY2xvc2VgAFNXSVRDSF9QUk9YWQBVU0VfUFJPWFkATUtBQ1RJVklUWQBVTlBST0NFU1NBQkxFX0VOVElUWQBRVUVSWQBDT1BZAE1PVkVEX1BFUk1BTkVOVExZAFRPT19FQVJMWQBOT1RJRlkARkFJTEVEX0RFUEVOREVOQ1kAQkFEX0dBVEVXQVkAUExBWQBQVVQAQ0hFQ0tPVVQAR0FURVdBWV9USU1FT1VUAFJFUVVFU1RfVElNRU9VVABORVRXT1JLX0NPTk5FQ1RfVElNRU9VVABDT05ORUNUSU9OX1RJTUVPVVQATE9HSU5fVElNRU9VVABORVRXT1JLX1JFQURfVElNRU9VVABQT1NUAE1JU0RJUkVDVEVEX1JFUVVFU1QAQ0xJRU5UX0NMT1NFRF9SRVFVRVNUAENMSUVOVF9DTE9TRURfTE9BRF9CQUxBTkNFRF9SRVFVRVNUAEJBRF9SRVFVRVNUAEhUVFBfUkVRVUVTVF9TRU5UX1RPX0hUVFBTX1BPUlQAUkVQT1JUAElNX0FfVEVBUE9UAFJFU0VUX0NPTlRFTlQATk9fQ09OVEVOVABQQVJUSUFMX0NPTlRFTlQASFBFX0lOVkFMSURfQ09OU1RBTlQASFBFX0NCX1JFU0VUAEdFVABIUEVfU1RSSUNUAENPTkZMSUNUAFRFTVBPUkFSWV9SRURJUkVDVABQRVJNQU5FTlRfUkVESVJFQ1QAQ09OTkVDVABNVUxUSV9TVEFUVVMASFBFX0lOVkFMSURfU1RBVFVTAFRPT19NQU5ZX1JFUVVFU1RTAEVBUkxZX0hJTlRTAFVOQVZBSUxBQkxFX0ZPUl9MRUdBTF9SRUFTT05TAE9QVElPTlMAU1dJVENISU5HX1BST1RPQ09MUwBWQVJJQU5UX0FMU09fTkVHT1RJQVRFUwBNVUxUSVBMRV9DSE9JQ0VTAElOVEVSTkFMX1NFUlZFUl9FUlJPUgBXRUJfU0VSVkVSX1VOS05PV05fRVJST1IAUkFJTEdVTl9FUlJPUgBJREVOVElUWV9QUk9WSURFUl9BVVRIRU5USUNBVElPTl9FUlJPUgBTU0xfQ0VSVElGSUNBVEVfRVJST1IASU5WQUxJRF9YX0ZPUldBUkRFRF9GT1IAU0VUX1BBUkFNRVRFUgBHRVRfUEFSQU1FVEVSAEhQRV9VU0VSAFNFRV9PVEhFUgBIUEVfQ0JfQ0hVTktfSEVBREVSAEV4cGVjdGVkIExGIGFmdGVyIENSAE1LQ0FMRU5EQVIAU0VUVVAAV0VCX1NFUlZFUl9JU19ET1dOAFRFQVJET1dOAEhQRV9DTE9TRURfQ09OTkVDVElPTgBIRVVSSVNUSUNfRVhQSVJBVElPTgBESVNDT05ORUNURURfT1BFUkFUSU9OAE5PTl9BVVRIT1JJVEFUSVZFX0lORk9STUFUSU9OAEhQRV9JTlZBTElEX1ZFUlNJT04ASFBFX0NCX01FU1NBR0VfQkVHSU4AU0lURV9JU19GUk9aRU4ASFBFX0lOVkFMSURfSEVBREVSX1RPS0VOAElOVkFMSURfVE9LRU4ARk9SQklEREVOAEVOSEFOQ0VfWU9VUl9DQUxNAEhQRV9JTlZBTElEX1VSTABCTE9DS0VEX0JZX1BBUkVOVEFMX0NPTlRST0wATUtDT0wAQUNMAEhQRV9JTlRFUk5BTABSRVFVRVNUX0hFQURFUl9GSUVMRFNfVE9PX0xBUkdFX1VOT0ZGSUNJQUwASFBFX09LAFVOTElOSwBVTkxPQ0sAUFJJAFJFVFJZX1dJVEgASFBFX0lOVkFMSURfQ09OVEVOVF9MRU5HVEgASFBFX1VORVhQRUNURURfQ09OVEVOVF9MRU5HVEgARkxVU0gAUFJPUFBBVENIAE0tU0VBUkNIAFVSSV9UT09fTE9ORwBQUk9DRVNTSU5HAE1JU0NFTExBTkVPVVNfUEVSU0lTVEVOVF9XQVJOSU5HAE1JU0NFTExBTkVPVVNfV0FSTklORwBIUEVfSU5WQUxJRF9UUkFOU0ZFUl9FTkNPRElORwBFeHBlY3RlZCBDUkxGAEhQRV9JTlZBTElEX0NIVU5LX1NJWkUATU9WRQBDT05USU5VRQBIUEVfQ0JfU1RBVFVTX0NPTVBMRVRFAEhQRV9DQl9IRUFERVJTX0NPTVBMRVRFAEhQRV9DQl9WRVJTSU9OX0NPTVBMRVRFAEhQRV9DQl9VUkxfQ09NUExFVEUASFBFX0NCX1BST1RPQ09MX0NPTVBMRVRFAEhQRV9DQl9DSFVOS19DT01QTEVURQBIUEVfQ0JfSEVBREVSX1ZBTFVFX0NPTVBMRVRFAEhQRV9DQl9DSFVOS19FWFRFTlNJT05fVkFMVUVfQ09NUExFVEUASFBFX0NCX0NIVU5LX0VYVEVOU0lPTl9OQU1FX0NPTVBMRVRFAEhQRV9DQl9NRVNTQUdFX0NPTVBMRVRFAEhQRV9DQl9NRVRIT0RfQ09NUExFVEUASFBFX0NCX0hFQURFUl9GSUVMRF9DT01QTEVURQBERUxFVEUASFBFX0lOVkFMSURfRU9GX1NUQVRFAElOVkFMSURfU1NMX0NFUlRJRklDQVRFAFBBVVNFAE5PX1JFU1BPTlNFAFVOU1VQUE9SVEVEX01FRElBX1RZUEUAR09ORQBOT1RfQUNDRVBUQUJMRQBTRVJWSUNFX1VOQVZBSUxBQkxFAFJBTkdFX05PVF9TQVRJU0ZJQUJMRQBPUklHSU5fSVNfVU5SRUFDSEFCTEUAUkVTUE9OU0VfSVNfU1RBTEUAUFVSR0UATUVSR0UAUkVRVUVTVF9IRUFERVJfRklFTERTX1RPT19MQVJHRQBSRVFVRVNUX0hFQURFUl9UT09fTEFSR0UAUEFZTE9BRF9UT09fTEFSR0UASU5TVUZGSUNJRU5UX1NUT1JBR0UASFBFX1BBVVNFRF9VUEdSQURFAEhQRV9QQVVTRURfSDJfVVBHUkFERQBTT1VSQ0UAQU5OT1VOQ0UAVFJBQ0UASFBFX1VORVhQRUNURURfU1BBQ0UAREVTQ1JJQkUAVU5TVUJTQ1JJQkUAUkVDT1JEAEhQRV9JTlZBTElEX01FVEhPRABOT1RfRk9VTkQAUFJPUEZJTkQAVU5CSU5EAFJFQklORABVTkFVVEhPUklaRUQATUVUSE9EX05PVF9BTExPV0VEAEhUVFBfVkVSU0lPTl9OT1RfU1VQUE9SVEVEAEFMUkVBRFlfUkVQT1JURUQAQUNDRVBURUQATk9UX0lNUExFTUVOVEVEAExPT1BfREVURUNURUQASFBFX0NSX0VYUEVDVEVEAEhQRV9MRl9FWFBFQ1RFRABDUkVBVEVEAElNX1VTRUQASFBFX1BBVVNFRABUSU1FT1VUX09DQ1VSRUQAUEFZTUVOVF9SRVFVSVJFRABQUkVDT05ESVRJT05fUkVRVUlSRUQAUFJPWFlfQVVUSEVOVElDQVRJT05fUkVRVUlSRUQATkVUV09SS19BVVRIRU5USUNBVElPTl9SRVFVSVJFRABMRU5HVEhfUkVRVUlSRUQAU1NMX0NFUlRJRklDQVRFX1JFUVVJUkVEAFVQR1JBREVfUkVRVUlSRUQAUEFHRV9FWFBJUkVEAFBSRUNPTkRJVElPTl9GQUlMRUQARVhQRUNUQVRJT05fRkFJTEVEAFJFVkFMSURBVElPTl9GQUlMRUQAU1NMX0hBTkRTSEFLRV9GQUlMRUQATE9DS0VEAFRSQU5TRk9STUFUSU9OX0FQUExJRUQATk9UX01PRElGSUVEAE5PVF9FWFRFTkRFRABCQU5EV0lEVEhfTElNSVRfRVhDRUVERUQAU0lURV9JU19PVkVSTE9BREVEAEhFQUQARXhwZWN0ZWQgSFRUUC8sIFJUU1AvIG9yIElDRS8A5xUAAK8VAACkEgAAkhoAACYWAACeFAAA2xkAAHkVAAB+EgAA/hQAADYVAAALFgAA2BYAAPMSAABCGAAArBYAABIVAAAUFwAA7xcAAEgUAABxFwAAshoAAGsZAAB+GQAANRQAAIIaAABEFwAA/RYAAB4YAACHFwAAqhkAAJMSAAAHGAAALBcAAMoXAACkFwAA5xUAAOcVAABYFwAAOxgAAKASAAAtHAAAwxEAAEgRAADeEgAAQhMAAKQZAAD9EAAA9xUAAKUVAADvFgAA+BkAAEoWAABWFgAA9RUAAAoaAAAIGgAAARoAAKsVAABCEgAA1xAAAEwRAAAFGQAAVBYAAB4RAADKGQAAyBkAAE4WAAD/GAAAcRQAAPAVAADuFQAAlBkAAPwVAAC/GQAAmxkAAHwUAABDEQAAcBgAAJUUAAAnFAAAGRQAANUSAADUGQAARBYAAPcQAEG5OwsBAQBB0DsL4AEBAQIBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEDAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQABAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQBBuj0LBAEAAAIAQdE9C14DBAMDAwMDAAADAwADAwADAwMDAwMDAwMDAAUAAAAAAAMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAAAAAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAAwADAEG6PwsEAQAAAgBB0T8LXgMAAwMDAwMAAAMDAAMDAAMDAwMDAwMDAwMABAAFAAAAAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAAAADAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwADAAMAQbDBAAsNbG9zZWVlcC1hbGl2ZQBBycEACwEBAEHgwQAL4AEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQABAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQBBycMACwEBAEHgwwAL5wEBAQEBAQEBAQEBAQECAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQABAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAWNodW5rZWQAQfHFAAteAQABAQEBAQAAAQEAAQEAAQEBAQEBAQEBAQAAAAAAAAABAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQAAAAEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAAEAAQBB0McACyFlY3Rpb25lbnQtbGVuZ3Rob25yb3h5LWNvbm5lY3Rpb24AQYDIAAsgcmFuc2Zlci1lbmNvZGluZ3BncmFkZQ0KDQpTTQ0KDQoAQanIAAsFAQIAAQMAQcDIAAtfBAUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUAQanKAAsFAQIAAQMAQcDKAAtfBAUFBgUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUAQanMAAsEAQAAAQBBwcwAC14CAgACAgICAgICAgICAgICAgICAgICAgICAgICAgIAAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAEGpzgALBQECAAEDAEHAzgALXwQFAAAFBQUFBQUFBQUFBQYFBQUFBQUFBQUFBQUABQAHCAUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQAFAAUABQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUAAAAFAEGp0AALBQEBAAEBAEHA0AALAQEAQdrQAAtBAgAAAAAAAAMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAAAAAAAAAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAQanSAAsFAQEAAQEAQcDSAAsBAQBBytIACwYCAAAAAAIAQeHSAAs6AwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAAAAAAAADAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwBBoNQAC50BTk9VTkNFRUNLT1VUTkVDVEVURUNSSUJFTFVTSEVURUFEU0VBUkNIUkdFQ1RJVklUWUxFTkRBUlZFT1RJRllQVElPTlNDSFNFQVlTVEFUQ0hHRVVFUllPUkRJUkVDVE9SVFJDSFBBUkFNRVRFUlVSQ0VCU0NSSUJFQVJET1dOQUNFSU5ETktDS1VCU0NSSUJFVFRQQ0VUU1BBRFRQLw==",wasmBuffer;Object.defineProperty(module,"exports",{get:()=>wasmBuffer||(wasmBuffer=Buffer2.from(wasmBase64,"base64"))})}});var require_llhttp_simd_wasm=__commonJS({"packages/agent-forge/node_modules/undici/lib/llhttp/llhttp_simd-wasm.js"(exports,module){"use strict";var{Buffer:Buffer2}=__require("node:buffer"),wasmBase64="AGFzbQEAAAABJwdgAX8Bf2ADf39/AX9gAn9/AGABfwBgBH9/f38Bf2AAAGADf39/AALLAQgDZW52GHdhc21fb25faGVhZGVyc19jb21wbGV0ZQAEA2VudhV3YXNtX29uX21lc3NhZ2VfYmVnaW4AAANlbnYLd2FzbV9vbl91cmwAAQNlbnYOd2FzbV9vbl9zdGF0dXMAAQNlbnYUd2FzbV9vbl9oZWFkZXJfZmllbGQAAQNlbnYUd2FzbV9vbl9oZWFkZXJfdmFsdWUAAQNlbnYMd2FzbV9vbl9ib2R5AAEDZW52GHdhc21fb25fbWVzc2FnZV9jb21wbGV0ZQAAAzU0BQYAAAMAAAAAAAADAQMAAwMDAAACAAAAAAICAgICAgICAgIBAQEBAQEBAQEBAwAAAwAAAAQFAXABExMFAwEAAgYIAX8BQcDZBAsHxQcoBm1lbW9yeQIAC19pbml0aWFsaXplAAgZX19pbmRpcmVjdF9mdW5jdGlvbl90YWJsZQEAC2xsaHR0cF9pbml0AAkYbGxodHRwX3Nob3VsZF9rZWVwX2FsaXZlADcMbGxodHRwX2FsbG9jAAsGbWFsbG9jADkLbGxodHRwX2ZyZWUADARmcmVlAAwPbGxodHRwX2dldF90eXBlAA0VbGxodHRwX2dldF9odHRwX21ham9yAA4VbGxodHRwX2dldF9odHRwX21pbm9yAA8RbGxodHRwX2dldF9tZXRob2QAEBZsbGh0dHBfZ2V0X3N0YXR1c19jb2RlABESbGxodHRwX2dldF91cGdyYWRlABIMbGxodHRwX3Jlc2V0ABMObGxodHRwX2V4ZWN1dGUAFBRsbGh0dHBfc2V0dGluZ3NfaW5pdAAVDWxsaHR0cF9maW5pc2gAFgxsbGh0dHBfcGF1c2UAFw1sbGh0dHBfcmVzdW1lABgbbGxodHRwX3Jlc3VtZV9hZnRlcl91cGdyYWRlABkQbGxodHRwX2dldF9lcnJubwAaF2xsaHR0cF9nZXRfZXJyb3JfcmVhc29uABsXbGxodHRwX3NldF9lcnJvcl9yZWFzb24AHBRsbGh0dHBfZ2V0X2Vycm9yX3BvcwAdEWxsaHR0cF9lcnJub19uYW1lAB4SbGxodHRwX21ldGhvZF9uYW1lAB8SbGxodHRwX3N0YXR1c19uYW1lACAabGxodHRw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AXRrQT5qIQILIAEgAjYCHCABQgA3AhAgAkECdEH01wBqIQACQEHI1QAoAgAiA0EBIAJ0IgdxRQRAIAAgATYCAEHI1QAgAyAHcjYCACABIAA2AhggASABNgIIIAEgATYCDAwBCyAEQRkgAkEBdmtBACACQR9HG3QhAiAAKAIAIQACQANAIAAiAygCBEF4cSAERg0BIAJBHXYhACACQQF0IQIgAyAAQQRxakEQaiIHKAIAIgANAAsgByABNgIAIAEgAzYCGCABIAE2AgwgASABNgIIDAELIAMoAggiACABNgIMIAMgATYCCCABQQA2AhggASADNgIMIAEgADYCCAtB5NUAQeTVACgCAEEBayIAQX8gABs2AgALCwcAIAAtACgLBwAgAC0AKgsHACAALQArCwcAIAAtACkLBwAgAC8BNAsHACAALQAwC0ABBH8gACgCGCEBIAAvAS4hAiAALQAoIQMgACgCOCEEIAAQOCAAIAQ2AjggACADOgAoIAAgAjsBLiAAIAE2AhgLhocCAwd/A34BeyABIAJqIQQCQCAAIgMoAgwiAA0AIAMoAgQEQCADIAE2AgQLIwBBEGsiCSQAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACfwJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkAC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DAgLQeMBDAcLQdcBDAYLQdgBDAULQdkBDAQLQdoBDAMLQdsBDAILQd0BDAELQdwBCyECA0ACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAIAMCfwJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACfwJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACfwJAAkACQAJAAkACQAJAAn8CQAJAAkACfwJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkAgAwJ/AkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJ/AkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkAC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A0EXNgIcIAMgADYCDCADIAFBAWo2AhQM+AILIABBFUYNI0EAIQIgA0EANgIcIAMgATYCFCADQdYMNgIQIANBIzYCDAz3AgsgAygCBCEAQQAhAiADQQA2AgQgAyAAIAEQNCIARQRAIAFBAWohAQwdCyADQRk2AhwgAyAANgIMIAMgAUEBajYCFAz2AgsgAygCBCEAQQAhAiADQQA2AgQgAyAAIAEQNCIARQRAIAFBAWohAQzvAgsgA0EaNgIcIAMgADYCDCADIAFBAWo2AhQM9QILIABBFUYNH0EAIQIgA0EANgIcIAMgATYCFCADQdAPNgIQIANBIjYCDAz0AgsgAygCBCEAIANBADYCBCADIAAgARAzIgBFBEAgAUEBaiEBDBsLIANBHDYCHCADIAA2AgwgAyABQQFqNgIUQQAhAgzzAgsgAygCBCEAIANBADYCBCADIAAgARAzIgBFBEAgAUEBaiEBDOsCCyADQR02AhwgAyAANgIMIAMgAUEBajYCFEEAIQIM8gILIABBO0cNASABQQFqIQELQSYhAgzXAgtBACECIANBADYCHCADIAE2AhQgA0GfFTYCECADQQw2AgwM7wILIAEgBEcEQANAIAEtAABBIEcNhAIgBCABQQFqIgFHDQALQSwhAgzvAgtBLCECDO4CCyABIARGBEBBNCECDO4CCwJAAkADQAJAIAEtAABBCmsOBAIAAAMACyAEIAFBAWoiAUcNAAtBNCECDO8CCyADKAIEIQAgA0EANgIEIAMgACABEDEiAEUNnwIgA0EyNgIcIAMgATYCFCADIAA2AgxBACECDO4CCyADKAIEIQAgA0EANgIEIAMgACABEDEiAEUEQCABQQFqIQEMnwILIANBMjYCHCADIAA2AgwgAyABQQFqNgIUQQAhAgztAgsgASAERwRAAkADQCABLQAAQTBrIgBB/wFxQQpPBEBBOiECDNcCCyADKQMgIgtCmbPmzJmz5swZVg0BIAMgC0IKfiIKNwMgIAogAK1C/wGDIgtCf4VWDQEgAyAKIAt8NwMgIAQgAUEBaiIBRw0AC0HAACECDO4CCyADKAIEIQAgA0EANgIEIAMgACABQQFqIgEQMSIADRcM4gILQcAAIQIM7AILIAEgBEYEQEHJACECDOwCCwJAA0ACQCABLQAAQQlrDhgAAqICogKpAqICogKiAqICogKiAqICogKiAqICogKiAqICogKiAqICogKiAgCiAgsgBCABQQFqIgFHDQALQckAIQIM7AILIAFBAWohASADQS9qLQAAQQFxDaUCIANBADYCHCADIAE2AhQgA0GXEDYCECADQQo2AgxBACECDOsCCyABIARHBEADQCABLQAAQSBHDRUgBCABQQFqIgFHDQALQfgAIQIM6wILQfgAIQIM6gILIANBAjoAKAw4C0EAIQIgA0EANgIcIANBvws2AhAgA0ECNgIMIAMgAUEBajYCFAzoAgtBACECDM4CC0ENIQIMzQILQRMhAgzMAgtBFSECDMsCC0EWIQIMygILQRghAgzJAgtBGSECDMgCC0EaIQIMxwILQRshAgzGAgtBHCECDMUCC0EdIQIMxAILQR4hAgzDAgtBHyECDMICC0EgIQIMwQILQSIhAgzAAgtBIyECDL8CC0ElIQIMvgILQeUAIQIMvQILIANBPTYCHCADIAE2AhQgAyAANgIMQQAhAgzVAgsgA0EbNgIcIAMgATYCFCADQaQcNgIQIANBFTYCDEEAIQIM1AILIANBIDYCHCADIAE2AhQgA0GYGjYCECADQRU2AgxBACECDNMCCyADQRM2AhwgAyABNgIUIANBmBo2AhAgA0EVNgIMQQAhAgzSAgsgA0ELNgIcIAMgATYCFCADQZgaNgIQIANBFTYCDEEAIQIM0QILIANBEDYCHCADIAE2AhQgA0GYGjYCECADQRU2AgxBACECDNACCyADQSA2AhwgAyABNgIUIANBpBw2AhAgA0EVNgIMQQAhAgzPAgsgA0ELNgIcIAMgATYCFCADQaQcNgIQIANBFTYCDEEAIQIMzgILIANBDDYCHCADIAE2AhQgA0GkHDYCECADQRU2AgxBACECDM0CC0EAIQIgA0EANgIcIAMgATYCFCADQd0ONgIQIANBEjYCDAzMAgsCQANAAkAgAS0AAEEKaw4EAAICAAILIAQgAUEBaiIBRw0AC0H9ASECDMwCCwJAAkAgAy0ANkEBRw0AQQAhAAJAIAMoAjgiAkUNACACKAJgIgJFDQAgAyACEQAAIQALIABFDQAgAEEVRw0BIANB/AE2AhwgAyABNgIUIANB3Bk2AhAgA0EVNgIMQQAhAgzNAgtB3AEhAgyzAgsgA0EANgIcIAMgATYCFCADQfkLNgIQIANBHzYCDEEAIQIMywILAkACQCADLQAoQQFrDgIEAQALQdsBIQIMsgILQdQBIQIMsQILIANBAjoAMUEAIQACQCADKAI4IgJFDQAgAigCACICRQ0AIAMgAhEAACEACyAARQRAQd0BIQIMsQILIABBFUcEQCADQQA2AhwgAyABNgIUIANBtAw2AhAgA0EQNgIMQQAhAgzKAgsgA0H7ATYCHCADIAE2AhQgA0GBGjYCECADQRU2AgxBACECDMkCCyABIARGBEBB+gEhAgzJAgsgAS0AAEHIAEYNASADQQE6ACgLQcABIQIMrgILQdoBIQIMrQILIAEgBEcEQCADQQw2AgggAyABNgIEQdkBIQIMrQILQfkBIQIMxQILIAEgBEYEQEH4ASECDMUCCyABLQAAQcgARw0EIAFBAWohAUHYASECDKsCCyABIARGBEBB9wEhAgzEAgsCQAJAIAEtAABBxQBrDhAABQUFBQUFBQUFBQUFBQUBBQsgAUEBaiEBQdYBIQIMqwILIAFBAWohAUHXASECDKoCC0H2ASECIAEgBEYNwgIgAygCACIAIAQgAWtqIQUgASAAa0ECaiEGAkADQCABLQAAIABButUAai0AAEcNAyAAQQJGDQEgAEEBaiEAIAQgAUEBaiIBRw0ACyADIAU2AgAMwwILIAMoAgQhACADQgA3AwAgAyAAIAZBAWoiARAuIgBFBEBB4wEhAgyqAgsgA0H1ATYCHCADIAE2AhQgAyAANgIMQQAhAgzCAgtB9AEhAiABIARGDcECIAMoAgAiACAEIAFraiEFIAEgAGtBAWohBgJAA0AgAS0AACAAQbjVAGotAABHDQIgAEEBRg0BIABBAWohACAEIAFBAWoiAUcNAAsgAyAFNgIADMICCyADQYEEOwEoIAMoAgQhACADQgA3AwAgAyAAIAZBAWoiARAuIgANAwwCCyADQQA2AgALQQAhAiADQQA2AhwgAyABNgIUIANB5R82AhAgA0EINgIMDL8CC0HVASECDKUCCyADQfMBNgIcIAMgATYCFCADIAA2AgxBACECDL0CC0EAIQACQCADKAI4IgJFDQAgAigCQCICRQ0AIAMgAhEAACEACyAARQ1uIABBFUcEQCADQQA2AhwgAyABNgIUIANBgg82AhAgA0EgNgIMQQAhAgy9AgsgA0GPATYCHCADIAE2AhQgA0HsGzYCECADQRU2AgxBACECDLwCCyABIARHBEAgA0ENNgIIIAMgATYCBEHTASECDKMCC0HyASECDLsCCyABIARGBEBB8QEhAgy7AgsCQAJAAkAgAS0AAEHIAGsOCwABCAgICAgICAgCCAsgAUEBaiEBQdABIQIMowILIAFBAWohAUHRASECDKICCyABQQFqIQFB0gEhAgyhAgtB8AEhAiABIARGDbkCIAMoAgAiACAEIAFraiEGIAEgAGtBAmohBQNAIAEtAAAgAEG11QBqLQAARw0EIABBAkYNAyAAQQFqIQAgBCABQQFqIgFHDQALIAMgBjYCAAy5AgtB7wEhAiABIARGDbgCIAMoAgAiACAEIAFraiEGIAEgAGtBAWohBQNAIAEtAAAgAEGz1QBqLQAARw0DIABBAUYNAiAAQQFqIQAgBCABQQFqIgFHDQALIAMgBjYCAAy4AgtB7gEhAiABIARGDbcCIAMoAgAiACAEIAFraiEGIAEgAGtBAmohBQNAIAEtAAAgAEGw1QBqLQAARw0CIABBAkYNASAAQQFqIQAgBCABQQFqIgFHDQALIAMgBjYCAAy3AgsgAygCBCEAIANCADcDACADIAAgBUEBaiIBECsiAEUNAiADQewBNgIcIAMgATYCFCADIAA2AgxBACECDLYCCyADQQA2AgALIAMoAgQhACADQQA2AgQgAyAAIAEQKyIARQ2cAiADQe0BNgIcIAMgATYCFCADIAA2AgxBACECDLQCC0HPASECDJoCC0EAIQACQCADKAI4IgJFDQAgAigCNCICRQ0AIAMgAhEAACEACwJAIAAEQCAAQRVGDQEgA0EANgIcIAMgATYCFCADQeoNNgIQIANBJjYCDEEAIQIMtAILQc4BIQIMmgILIANB6wE2AhwgAyABNgIUIANBgBs2AhAgA0EVNgIMQQAhAgyyAgsgASAERgRAQesBIQIMsgILIAEtAABBL0YEQCABQQFqIQEMAQsgA0EANgIcIAMgATYCFCADQbI4NgIQIANBCDYCDEEAIQIMsQILQc0BIQIMlwILIAEgBEcEQCADQQ42AgggAyABNgIEQcwBIQIMlwILQeoBIQIMrwILIAEgBEYEQEHpASECDK8CCyABLQAAQTBrIgBB/wFxQQpJBEAgAyAAOgAqIAFBAWohAUHLASECDJYCCyADKAIEIQAgA0EANgIEIAMgACABEC8iAEUNlwIgA0HoATYCHCADIAE2AhQgAyAANgIMQQAhAgyuAgsgASAERgRAQecBIQIMrgILAkAgAS0AAEEuRgRAIAFBAWohAQwBCyADKAIEIQAgA0EANgIEIAMgACABEC8iAEUNmAIgA0HmATYCHCADIAE2AhQgAyAANgIMQQAhAgyuAgtBygEhAgyUAgsgASAERgRAQeUBIQIMrQILQQAhAEEBIQVBASEHQQAhAgJAAkACQAJAAkACfwJAAkACQAJAAkACQAJAIAEtAABBMGsOCgoJAAECAwQFBggLC0ECDAYLQQMMBQtBBAwEC0EFDAMLQQYMAgtBBwwBC0EICyECQQAhBUEAIQcMAgtBCSECQQEhAEEAIQVBACEHDAELQQAhBUEBIQILIAMgAjoAKyABQQFqIQECQAJAIAMtAC5BEHENAAJAAkACQCADLQAqDgMBAAIECyAHRQ0DDAILIAANAQwCCyAFRQ0BCyADKAIEIQAgA0EANgIEIAMgACABEC8iAEUNAiADQeIBNgIcIAMgATYCFCADIAA2AgxBACECDK8CCyADKAIEIQAgA0EANgIEIAMgACABEC8iAEUNmgIgA0HjATYCHCADIAE2AhQgAyAANgIMQQAhAgyuAgsgAygCBCEAIANBADYCBCADIAAgARAvIgBFDZgCIANB5AE2AhwgAyABNgIUIAMgADYCDAytAgtByQEhAgyTAgtBACEAAkAgAygCOCICRQ0AIAIoAkQiAkUNACADIAIRAAAhAAsCQCAABEAgAEEVRg0BIANBADYCHCADIAE2AhQgA0GkDTYCECADQSE2AgxBACECDK0CC0HIASECDJMCCyADQeEBNgIcIAMgATYCFCADQdAaNgIQIANBFTYCDEEAIQIMqwILIAEgBEYEQEHhASECDKsCCwJAIAEtAABBIEYEQCADQQA7ATQgAUEBaiEBDAELIANBADYCHCADIAE2AhQgA0GZETYCECADQQk2AgxBACECDKsCC0HHASECDJECCyABIARGBEBB4AEhAgyqAgsCQCABLQAAQTBrQf8BcSICQQpJBEAgAUEBaiEBAkAgAy8BNCIAQZkzSw0AIAMgAEEKbCIAOwE0IABB/v8DcSACQf//A3NLDQAgAyAAIAJqOwE0DAILQQAhAiADQQA2AhwgAyABNgIUIANBlR42AhAgA0ENNgIMDKsCCyADQQA2AhwgAyABNgIUIANBlR42AhAgA0ENNgIMQQAhAgyqAgtBxgEhAgyQAgsgASAERgRAQd8BIQIMqQILAkAgAS0AAEEwa0H/AXEiAkEKSQRAIAFBAWohAQJAIAMvATQiAEGZM0sNACADIABBCmwiADsBNCAAQf7/A3EgAkH//wNzSw0AIAMgACACajsBNAwCC0EAIQIgA0EANgIcIAMgATYCFCADQZUeNgIQIANBDTYCDAyqAgsgA0EANgIcIAMgATYCFCADQZUeNgIQIANBDTYCDEEAIQIMqQILQcUBIQIMjwILIAEgBEYEQEHeASECDKgCCwJAIAEtAABBMGtB/wFxIgJBCkkEQCABQQFqIQECQCADLwE0IgBBmTNLDQAgAyAAQQpsIgA7ATQgAEH+/wNxIAJB//8Dc0sNACADIAAgAmo7ATQMAgtBACECIANBADYCHCADIAE2AhQgA0GVHjYCECADQQ02AgwMqQILIANBADYCHCADIAE2AhQgA0GVHjYCECADQQ02AgxBACECDKgCC0HEASECDI4CCyABIARGBEBB3QEhAgynAgsCQAJAAkACQCABLQAAQQprDhcCAwMAAwMDAwMDAwMDAwMDAwMDAwMDAQMLIAFBAWoMBQsgAUEBaiEBQcMBIQIMjwILIAFBAWohASADQS9qLQAAQQFxDQggA0EANgIcIAMgATYCFCADQY0LNgIQIANBDTYCDEEAIQIMpwILIANBADYCHCADIAE2AhQgA0GNCzYCECADQQ02AgxBACECDKYCCyABIARHBEAgA0EPNgIIIAMgATYCBEEBIQIMjQILQdwBIQIMpQILAkACQANAAkAgAS0AAEEKaw4EAgAAAwALIAQgAUEBaiIBRw0AC0HbASECDKYCCyADKAIEIQAgA0EANgIEIAMgACABEC0iAEUEQCABQQFqIQEMBAsgA0HaATYCHCADIAA2AgwgAyABQQFqNgIUQQAhAgylAgsgAygCBCEAIANBADYCBCADIAAgARAtIgANASABQQFqCyEBQcEBIQIMigILIANB2QE2AhwgAyAANgIMIAMgAUEBajYCFEEAIQIMogILQcIBIQIMiAILIANBL2otAABBAXENASADQQA2AhwgAyABNgIUIANB5Bw2AhAgA0EZNgIMQQAhAgygAgsgASAERgRAQdkB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CyADIAU2AgAMkAILIANBADYCACAGQQFqIQFBGgw8C0HKASECIAEgBEYNjgIgAygCACIAIAQgAWtqIQUgASAAa0EDaiEGAkADQCABLQAAIABBjdUAai0AAEcNOyAAQQNGDQEgAEEBaiEAIAQgAUEBaiIBRw0ACyADIAU2AgAMjwILIANBADYCACAGQQFqIQFBIQw7CyABIARGBEBByQEhAgyOAgsCQAJAIAEtAABBwQBrDhQAPT09PT09PT09PT09PT09PT09AT0LIAFBAWohAUGtASECDPUBCyABQQFqIQFBsAEhAgz0AQsgASAERgRAQcgBIQIMjQILAkACQCABLQAAQdUAaw4LADw8PDw8PDw8PAE8CyABQQFqIQFBrgEhAgz0AQsgAUEBaiEBQa8BIQIM8wELQccBIQIgASAERg2LAiADKAIAIgAgBCABa2ohBSABIABrQQhqIQYCQANAIAEtAAAgAEGE1QBqLQAARw04IABBCEYNASAAQQFqIQAgBCABQQFqIgFHDQALIAMgBTYCAAyMAgsgA0EANgIAIAZBAWohAUEqDDgLIAEgBEYEQEHGASECDIsCCyABLQAAQdAARw04IAFBAWohAUElDDcLQcUBIQIgASAERg2JAiADKAIAIgAgBCABa2ohBSABIABrQQJqIQYCQANAIAEtAAAgAEGB1QBqLQAARw02IABBAkYNASAAQQFqIQAgBCABQQFqIgFHDQALIAMgBTYCAAyKAgsgA0EANgIAIAZBAWohAUEODDYLIAEgBEYEQEHEASECDIkCCyABLQAAQcUARw02IAFBAWohAUGrASECDO8BCyABIARGBEBBwwEhAgyIAgsCQAJAAkACQCABLQAAQcIAaw4PAAECOTk5OTk5OTk5OTkDOQsgAUEBaiEBQacBIQIM8QELIAFBAWohAUGoASECDPABCyABQQFqIQFBqQEhAgzvAQsgAUEBaiEBQaoBIQIM7gELQcIBIQIgASAERg2GAiADKAIAIgAgBCABa2ohBSABIABrQQJqIQYCQANAIAEtAAAgAEH+1ABqLQAARw0zIABBAkYNASAAQQFqIQAgBCABQQFqIgFHDQALIAMgBTYCAAyHAgsgA0EANgIAIAZBAWohAUEUDDMLQcEBIQIgASAERg2FAiADKAIAIgAgBCABa2ohBSABIABrQQRqIQYCQANAIAEtAAAgAEH51ABqLQAARw0yIABBBEYNASAAQQFqIQAgBCABQQFqIgFHDQALIAMgBTYCAAyGAgsgA0EANgIAIAZBAWohAUErDDILQcABIQIgASAERg2EAiADKAIAIgAgBCABa2ohBSABIABrQQJqIQYCQANAIAEtAAAgAEH21ABqLQAARw0xIABBAkYNASAAQQFqIQAgBCABQQFqIgFHDQALIAMgBTYCAAyFAgsgA0EANgIAIAZBAWohAUEsDDELQb8BIQIgASAERg2DAiADKAIAIgAgBCABa2ohBSABIABrQQJqIQYCQANAIAEtAAAgAEGh1QBqLQAARw0wIABBAkYNASAAQQFqIQAgBCABQQFqIgFHDQALIAMgBTYCAAyEAgsgA0EANgIAIAZBAWohAUERDDALQb4BIQIgASAERg2CAiADKAIAIgAgBCABa2ohBSABIABrQQNqIQYCQANAIAEtAAAgAEHy1ABqLQAARw0vIABBA0YNASAAQQFqIQAgBCABQQFqIgFHDQALIAMgBTYCAAyDAgsgA0EANgIAIAZBAWohAUEuDC8LIAEgBEYEQEG9ASECDIICCwJAAkACQAJAAkAgAS0AAEHBAGsOFQA0NDQ0NDQ0NDQ0ATQ0AjQ0AzQ0BDQLIAFBAWohAUGbASECDOwBCyABQQFqIQFBnAEhAgzrAQsgAUEBaiEBQZ0BIQIM6gELIAFBAWohAUGiASECDOkBCyABQQFqIQFBpAEhAgzoAQsgASAERgRAQbwBIQIMgQILAkACQCABLQAAQdIAaw4DADABMAsgAUEBaiEBQaMBIQIM6AELIAFBAWohAUEEDC0LQbsBIQIgASAERg3/ASADKAIAIgAgBCABa2ohBSABIABrQQFqIQYCQANAIAEtAAAgAEHw1ABqLQAARw0sIABBAUYNASAAQQFqIQAgBCABQQFqIgFHDQALIAMgBTYCAAyAAgsgA0EANgIAIAZBAWohAUEdDCwLIAEgBEYEQEG6ASECDP8BCwJAAkAgAS0AAEHJAGsOBwEuLi4uLgAuCyABQQFqIQFBoQEhAgzmAQsgAUEBaiEBQSIMKwsgASAERgRAQbkBIQIM/gELIAEtAABB0ABHDSsgAUEBaiEBQaABIQIM5AELIAEgBEYEQEG4ASECDP0BCwJAAkAgAS0AAEHGAGsOCwAsLCwsLCwsLCwBLAsgAUEBaiEBQZ4BIQIM5AELIAFBAWohAUGfASECDOMBC0G3ASECIAEgBEYN+wEgAygCACIAIAQgAWtqIQUgASAAa0EDaiEGAkADQCABLQAAIABB7NQAai0AAEcNKCAAQQNGDQEgAEEBaiEAIAQgAUEBaiIBRw0ACyADIAU2AgAM/AELIANBADYCACAGQQFqIQFBDQwoC0G2ASECIAEgBEYN+gEgAygCACIAIAQgAWtqIQUgASAAa0ECaiEGAkADQCABLQAAIABBodUAai0AAEcNJyAAQQJGDQEgAEEBaiEAIAQgAUEBaiIBRw0ACyADIAU2AgAM+wELIANBADYCACAGQQFqIQFBDAwnC0G1ASECIAEgBEYN+QEgAygCACIAIAQgAWtqIQUgASAAa0EBaiEGAkADQCABLQAAIABB6tQAai0AAEcNJiAAQQFGDQEgAEEBaiEAIAQgAUEBaiIBRw0ACyADIAU2AgAM+gELIANBADYCACAGQQFqIQFBAwwmC0G0ASECIAEgBEYN+AEgAygCACIAIAQgAWtqIQUgASAAa0EBaiEGAkADQCABLQAAIABB6NQAai0AAEcNJSAAQQFGDQEgAEEBaiEAIAQgAUEBaiIBRw0ACyADIAU2AgAM+QELIANBADYCACAGQQFqIQFBJgwlCyABIARGBEBBswEhAgz4AQsCQAJAIAEtAABB1ABrDgIAAScLIAFBAWohAUGZASECDN8BCyABQQFqIQFBmgEhAgzeAQtBsgEhAiABIARGDfYBIAMoAgAiACAEIAFraiEFIAEgAGtBAWohBgJAA0AgAS0AACAAQebUAGotAABHDSMgAEEBRg0BIABBAWohACAEIAFBAWoiAUcNAAsgAyAFNgIADPcBCyADQQA2AgAgBkEBaiEBQScMIwtBsQEhAiABIARGDfUBIAMoAgAiACAEIAFraiEFIAEgAGtBAWohBgJAA0AgAS0AACAAQeTUAGotAABHDSIgAEEBRg0BIABBAWohACAEIAFBAWoiAUcNAAsgAyAFNgIADPYBCyADQQA2AgAgBkEBaiEBQRwMIgtBsAEhAiABIARGDfQBIAMoAgAiACAEIAFraiEFIAEgAGtBBWohBgJAA0AgAS0AACAAQd7UAGotAABHDSEgAEEFRg0BIABBAWohACAEIAFBAWoiAUcNAAsgAyAFNgIADPUBCyADQQA2AgAgBkEBaiEBQQYMIQtBrwEhAiABIARGDfMBIAMoAgAiACAEIAFraiEFIAEgAGtBBGohBgJAA0AgAS0AACAAQdnUAGotAABHDSAgAEEERg0BIABBAWohACAEIAFBAWoiAUcNAAsgAyAFNgIADPQBCyADQQA2AgAgBkEBaiEBQRkMIAsgASAERgRAQa4BIQIM8wELAkACQAJAAkAgAS0AAEEtaw4jACQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkASQkJCQkAiQkJAMkCyABQQFqIQFBjgEhAgzcAQsgAUEBaiEBQY8BIQIM2wELIAFBAWohAUGUASECDNoBCyABQQFqIQFBlQEhAgzZAQtBrQEhAiABIARGDfEBIAMoAgAiACAEIAFraiEFIAEgAGtBAWohBgJAA0AgAS0AACAAQdfUAGotAABHDR4gAEEBRg0BIABBAWohACAEIAFBAWoiAUcNAAsgAyAFNgIADPIBCyADQQA2AgAgBkEBaiEBQQsMHgsgASAERgRAQawBIQIM8QELAkACQCABLQAAQcEAaw4DACABIAsgAUEBaiEBQZABIQIM2AELIAFBAWohAUGTASECDNcBCyABIARGBEBBqwEhAgzwAQsCQAJAIAEtAABBwQBrDg8AHx8fHx8fHx8fHx8fHwEfCyABQQFqIQFBkQEhAgzXAQsgAUEBaiEBQZIBIQIM1gELIAEgBEYEQEGqASECDO8BCyABLQAAQcwARw0cIAFBAWohAUEKDBsLQakBIQIgASAERg3tASADKAIAIgAgBCABa2ohBSABIABrQQVqIQYCQANAIAEtAAAgAEHR1ABqLQAARw0aIABBBUYNASAAQQFqIQAgBCABQQFqIgFHDQALIAMgBTYCAAzuAQsgA0EANgIAIAZBAWohAUEeDBoLQagBIQIgASAERg3sASADKAIAIgAgBCABa2ohBSABIABrQQZqIQYCQANAIAEtAAAgAEHK1ABqLQAARw0ZIABBBkYNASAAQQFqIQAgBCABQQFqIgFHDQALIAMgBTYCAAztAQsgA0EANgIAIAZBAWohAUEVDBkLQacBIQIgASAERg3rASADKAIAIgAgBCABa2ohBSABIABrQQJqIQYCQANAIAEtAAAgAEHH1ABqLQAARw0YIABBAkYNASAAQQFqIQAgBCABQQFqIgFHDQALIAMgBTYCAAzsAQsgA0EANgIAIAZBAWohAUEXDBgLQaYBIQIgASAERg3qASADKAIAIgAgBCABa2ohBSABIABrQQVqIQYCQANAIAEtAAAgAEHB1ABqLQAARw0XIABBBUYNASAAQQFqIQAgBCABQQFqIgFHDQALIAMgBTYCAAzrAQsgA0EANgIAIAZBAWohAUEYDBcLIAEgBEYEQEGlASECDOoBCwJAAkAgAS0AAEHJAGsOBwAZGRkZGQEZCyABQQFqIQFBiwEhAgzRAQsgAUEBaiEBQYwBIQIM0AELQaQBIQIgASAERg3oASADKAIAIgAgBCABa2ohBSABIABrQQFqIQYCQANAIAEtAAAgAEGm1QBqLQAARw0VIABBAUYNASAAQQFqIQAgBCABQQFqIgFHDQALIAMgBTYCAAzpAQsgA0EANgIAIAZBAWohAUEJDBULQaMBIQIgASAERg3nASADKAIAIgAgBCABa2ohBSABIABrQQFqIQYCQANAIAEtAAAgAEGk1QBqLQAARw0UIABBAUYNASAAQQFqIQAgBCABQQFqIgFHDQALIAMgBTYCAAzoAQsgA0EANgIAIAZBAWohAUEfDBQLQaIBIQIgASAERg3mASADKAIAIgAgBCABa2ohBSABIABrQQJqIQYCQANAIAEtAAAgAEG+1ABqLQAARw0TIABBAkYNASAAQQFqIQAgBCABQQFqIgFHDQALIAMgBTYCAAznAQsgA0EANgIAIAZBAWohAUECDBMLQaEBIQIgASAERg3lASADKAIAIgAgBCABa2ohBSABIABrQQFqIQYDQCABLQAAIABBvNQAai0AAEcNESAAQQFGDQIgAEEBaiEAIAQgAUEBaiIBRw0ACyADIAU2AgAM5QELIAEgBEYEQEGgASECDOUBC0EBIAEtAABB3wBHDREaIAFBAWohAUGHASECDMsBCyADQQA2AgAgBkEBaiEBQYgBIQIMygELQZ8BIQIgASAERg3iASADKAIAIgAgBCABa2ohBSABIABrQQhqIQYCQANAIAEtAAAgAEGE1QBqLQAARw0PIABBCEYNASAAQQFqIQAgBCABQQFqIgFHDQALIAMgBTYCAAzjAQsgA0EANgIAIAZBAWohAUEpDA8LQZ4BIQIgASAERg3hASADKAIAIgAgBCABa2ohBSABIABrQQNqIQYCQANAIAEtAAAgAEG41ABqLQAARw0OIABBA0YNASAAQQFqIQAgBCABQQFqIgFHDQALIAMgBTYCAAziAQsgA0EANgIAIAZBAWohAUEtDA4LIAEgBEYEQEGdASECDOEBCyABLQAAQcUARw0OIAFBAWohAUGEASECDMcBCyABIARGBEBBnAEhAgzgAQsCQAJAIAEtAABBzABrDggADw8PDw8PAQ8LIAFBAWohAUGCASECDMcBCyABQQFqIQFBgwEhAgzGAQtBmwEhAiABIARGDd4BIAMoAgAiACAEIAFraiEFIAEgAGtBBGohBgJAA0AgAS0AACAAQbPUAGotAABHDQsgAEEERg0BIABBAWohACAEIAFBAWoiAUcNAAsgAyAFNgIADN8BCyADQQA2AgAgBkEBaiEBQSMMCwtBmgEhAiABIARGDd0BIAMoAgAiACAEIAFraiEFIAEgAGtBAmohBgJAA0AgAS0AACAAQbDUAGotAABHDQogAEECRg0BIABBAWohACAEIAFBAWoiAUcNAAsgAyAFNgIADN4BCyADQQA2AgAgBkEBaiEBQQAMCgsgASAERgRAQZkBIQIM3QELAkACQCABLQAAQcgAaw4IAAwMDAwMDAEMCyABQQFqIQFB/QAhAgzEAQsgAUEBaiEBQYABIQIMwwELIAEgBEYEQEGYASECDNwBCwJAAkAgAS0AAEHOAGsOAwALAQsLIAFBAWohAUH+ACECDMMBCyABQQFqIQFB/wAhAgzCAQsgASAERgRAQZcBIQIM2wELIAEtAABB2QBHDQggAUEBaiEBQQgMBwtBlgEhAiABIARGDdkBIAMoAgAiACAEIAFraiEFIAEgAGtBA2ohBgJAA0AgAS0AACAAQazUAGotAABHDQYgAEEDRg0BIABBAWohACAEIAFBAWoiAUcNAAsgAyAFNgIADNoBCyADQQA2AgAgBkEBaiEBQQUMBgtBlQEhAiABIARGDdgBIAMoAgAiACAEIAFraiEFIAEgAGtBBWohBgJAA0AgAS0AACAAQabUAGotAABHDQUgAEEFRg0BIABBAWohACAEIAFBAWoiAUcNAAsgAyAFNgIADNkBCyADQQA2AgAgBkEBaiEBQRYMBQtBlAEhAiABIARGDdcBIAMoAgAiACAEIAFraiEFIAEgAGtBAmohBgJAA0AgAS0AACAAQaHVAGotAABHDQQgAEECRg0BIABBAWohACAEIAFBAWoiAUcNAAsgAyAFNgIADNgBCyADQQA2AgAgBkEBaiEBQRAMBAsgASAERgRAQZMBIQIM1wELAkACQCABLQAAQcMAaw4MAAYGBgYGBgYGBgYBBgsgAUEBaiEBQfkAIQIMvgELIAFBAWohAUH6ACECDL0BC0GSASECIAEgBEYN1QEgAygCACIAIAQgAWtqIQUgASAAa0EFaiEGAkADQCABLQAAIABBoNQAai0AAEcNAiAAQQVGDQEgAEEBaiEAIAQgAUEBaiIBRw0ACyADIAU2AgAM1gELIANBADYCACAGQQFqIQFBJAwCCyADQQA2AgAMAgsgASAERgRAQZEBIQIM1AELIAEtAABBzABHDQEgAUEBaiEBQRMLOgApIAMoAgQhACADQQA2AgQgAyAAIAEQLiIADQIMAQtBACECIANBADYCHCADIAE2AhQgA0H+HzYCECADQQY2AgwM0QELQfgAIQIMtwELIANBkAE2AhwgAyABNgIUIAMgADYCDEEAIQIMzwELQQAhAAJAIAMoAjgiAkUNACACKAJAIgJFDQAgAyACEQAAIQALIABFDQAgAEEVRg0BIANBADYCHCADIAE2AhQgA0GCDzYCECADQSA2AgxBACECDM4BC0H3ACECDLQBCyADQY8BNgIcIAMgATYCFCADQewbNgIQIANBFTYCDEEAIQIMzAELIAEgBEYEQEGPASECDMwBCwJAIAEtAABBIEYEQCABQQFqIQEMAQsgA0EANgIcIAMgATYCFCADQZsfNgIQIANBBjYCDEEAIQIMzAELQQIhAgyyAQsDQCABLQAAQSBHDQIgBCABQQFqIgFHDQALQY4BIQIMygELIAEgBEYEQEGNASECDMoBCwJAIAEtAABBCWsOBEoAAEoAC0H1ACECDLABCyADLQApQQVGBEBB9gAhAgywAQtB9AAhAgyvAQsgASAERgRAQYwBIQIMyAELIANBEDYCCCADIAE2AgQMCgsgASAERgRAQYsBIQIMxwELAkAgAS0AAEEJaw4ERwAARwALQfMAIQIMrQELIAEgBEcEQCADQRA2AgggAyABNgIEQfEAIQIMrQELQYoBIQIMxQELAkAgASAERwRAA0AgAS0AAEGg0ABqLQAAIgBBA0cEQAJAIABBAWsOAkkABAtB8AAhAgyvAQsgBCABQQFqIgFHDQALQYgBIQIMxgELQYgBIQIMxQELIANBADYCHCADIAE2AhQgA0HbIDYCECADQQc2AgxBACECDMQBCyABIARGBEBBiQEhAgzEAQsCQAJAAkAgAS0AAEGg0gBqLQAAQQFrDgNGAgABC0HyACECDKwBCyADQQA2AhwgAyABNgIUIANBtBI2AhAgA0EHNgIMQQAhAgzEAQtB6gAhAgyqAQsgASAERwRAIAFBAWohAUHvACECDKoBC0GHASECDMIBCyAEIAEiAEYEQEGGASECDMIBCyAALQAAIgFBL0YEQCAAQQFqIQFB7gAhAgypAQsgAUEJayICQRdLDQEgACEBQQEgAnRBm4CABHENQQwBCyAEIAEiAEYEQEGFASECDMEBCyAALQAAQS9HDQAgAEEBaiEBDAMLQQAhAiADQQA2AhwgAyAANgIUIANB2yA2AhAgA0EHNgIMDL8BCwJAAkACQAJAAkADQCABLQAAQaDOAGotAAAiAEEFRwRAAkACQCAAQQFrDghHBQYHCAAEAQgLQesAIQIMrQELIAFBAWohAUHtACECDKwBCyAEIAFBAWoiAUcNAAtBhAEhAgzDAQsgAUEBagwUCyADKAIEIQAgA0EANgIEIAMgACABECwiAEUNHiADQdsANgIcIAMgATYCFCADIAA2AgxBACECDMEBCyADKAIEIQAgA0EANgIEIAMgACABECwiAEUNHiADQd0ANgIcIAMgATYCFCADIAA2AgxBACECDMABCyADKAIEIQAgA0EANgIEIAMgACABECwiAEUNHiADQfoANgIcIAMgATYCFCADIAA2AgxBACECDL8BCyADQQA2AhwgAyABNgIUIANB+Q82AhAgA0EHNgIMQQAhAgy+AQsgASAERgRAQYMBIQIMvgELAkAgAS0AAEGgzgBqLQAAQQFrDgg+BAUGAAgCAwcLIAFBAWohAQtBAyECDKMBCyABQQFqDA0LQQAhAiADQQA2AhwgA0HREjYCECADQQc2AgwgAyABQQFqNgIUDLoBCyADKAIEIQAgA0EANgIEIAMgACABECwiAEUNFiADQdsANgIcIAMgATYCFCADIAA2AgxBACECDLkBCyADKAIEIQAgA0EANgIEIAMgACABECwiAEUNFiADQd0ANgIcIAMgATYCFCADIAA2AgxBACECDLgBCyADKAIEIQAgA0EANgIEIAMgACABECwiAEUNFiADQfoANgIcIAMgATYCFCADIAA2AgxBACECDLcBCyADQQA2AhwgAyABNgIUIANB+Q82AhAgA0EHNgIMQQAhAgy2AQtB7AAhAgycAQsgASAERgRAQYIBIQIMtQELIAFBAWoMAgsgASAERgRAQYEBIQIMtAELIAFBAWoMAQsgASAERg0BIAFBAWoLIQFBBCECDJgBC0GAASECDLABCwNAIAEtAABBoMwAai0AACIAQQJHBEAgAEEBRwRAQekAIQIMmQELDDELIAQgAUEBaiIBRw0AC0H/ACECDK8BCyABIARGBEBB/gAhAgyvAQsCQCABLQAAQQlrDjcvAwYvBAYGBgYGBgYGBgYGBgYGBgYGBgUGBgIGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYABgsgAUEBagshAUEFIQIMlAELIAFBAWoMBgsgAygCBCEAIANBADYCBCADIAAgARAsIgBFDQggA0HbADYCHCADIAE2AhQgAyAANgIMQQAhAgyrAQsgAygCBCEAIANBADYCBCADIAAgARAsIgBFDQggA0HdADYCHCADIAE2AhQgAyAANgIMQQAhAgyqAQsgAygCBCEAIANBADYCBCADIAAgARAsIgBFDQggA0H6ADYCHCADIAE2AhQgAyAANgIMQQAhAgypAQsgA0EANgIcIAMgATYCFCADQY0UNgIQIANBBzYCDEEAIQIMqAELAkACQAJAAkADQCABLQAAQaDKAGotAAAiAEEFRwRAAkAgAEEBaw4GLgMEBQYABgtB6AAhAgyUAQsgBCABQQFqIgFHDQALQf0AIQIMqwELIAMoAgQhACADQQA2AgQgAyAAIAEQLCIARQ0HIANB2wA2AhwgAyABNgIUIAMgADYCDEEAIQIMqgELIAMoAgQhACADQQA2AgQgAyAAIAEQLCIARQ0HIANB3QA2AhwgAyABNgIUIAMgADYCDEEAIQIMqQELIAMoAgQhACADQQA2AgQgAyAAIAEQLCIARQ0HIANB+gA2AhwgAyABNgIUIAMgADYCDEEAIQIMqAELIANBADYCHCADIAE2AhQgA0HkCDYCECADQQc2AgxBACECDKcBCyABIARGDQEgAUEBagshAUEGIQIMjAELQfwAIQIMpAELAkACQAJAAkADQCABLQAAQaDIAGotAAAiAEEFRwRAIABBAWsOBCkCAwQFCyAEIAFBAWoiAUcNAAtB+wAhAgynAQsgAygCBCEAIANBADYCBCADIAAgARAsIgBFDQMgA0HbADYCHCADIAE2AhQgAyAANgIMQQAhAgymAQsgAygCBCEAIANBADYCBCADIAAgARAsIgBFDQMgA0HdADYCHCADIAE2AhQgAyAANgIMQQAhAgylAQsgAygCBCEAIANBADYCBCADIAAgARAsIgBFDQMgA0H6ADYCHCADIAE2AhQgAyAANgIMQQAhAgykAQsgA0EANgIcIAMgATYCFCADQbwKNgIQIANBBzYCDEEAIQIMowELQc8AIQIMiQELQdEAIQIMiAELQecAIQIMhwELIAEgBEYEQEH6ACECDKABCwJAIAEtAABBCWsOBCAAACAACyABQQFqIQFB5gAhAgyGAQsgASAERgRAQfkAIQIMnwELAkAgAS0AAEEJaw4EHwAAHwALQQAhAAJAIAMoAjgiAkUNACACKAI4IgJFDQAgAyACEQAAIQALIABFBEBB4gEhAgyGAQsgAEEVRwRAIANBADYCHCADIAE2AhQgA0HJDTYCECADQRo2AgxBACECDJ8BCyADQfgANgIcIAMgATYCFCADQeoaNgIQIANBFTYCDEEAIQIMngELIAEgBEcEQCADQQ02AgggAyABNgIEQeQAIQIMhQELQfcAIQIMnQELIAEgBEYEQEH2ACECDJ0BCwJAAkACQCABLQAAQcgAaw4LAAELCwsLCwsLCwILCyABQQFqIQFB3QAhAgyFAQsgAUEBaiEBQeAAIQIMhAELIAFBAWohAUHjACECDIMBC0H1ACECIAEgBEYNmwEgAygCACIAIAQgAWtqIQUgASAAa0ECaiEGAkADQCABLQAAIABBtdUAai0AAEcNCCAAQQJGDQEgAEEBaiEAIAQgAUEBaiIBRw0ACyADIAU2AgAMnAELIAMoAgQhACADQgA3AwAgAyAAIAZBAWoiARArIgAEQCADQfQANgIcIAMgATYCFCADIAA2AgxBACECDJwBC0HiACECDIIBC0EAIQACQCADKAI4IgJFDQAgAigCNCICRQ0AIAMgAhEAACEACwJAIAAEQCAAQRVGDQEgA0EANgIcIAMgATYCFCADQeoNNgIQIANBJjYCDEEAIQIMnAELQeEAIQIMggELIANB8wA2AhwgAyABNgIUIANBgBs2AhAgA0EVNgIMQQAhAgyaAQsgAy0AKSIAQSNrQQtJDQkCQCAAQQZLDQBBASAAdEHKAHFFDQAMCgtBACECIANBADYCHCADIAE2AhQgA0HtCTYCECADQQg2AgwMmQELQfIAIQIgASAERg2YASADKAIAIgAgBCABa2ohBSABIABrQQFqIQYCQANAIAEtAAAgAEGz1QBqLQAARw0FIABBAUYNASAAQQFqIQAgBCABQQFqIgFHDQALIAMgBTYCAAyZAQsgAygCBCEAIANCADcDACADIAAgBkEBaiIBECsiAARAIANB8QA2AhwgAyABNgIUIAMgADYCDEEAIQIMmQELQd8AIQIMfwtBACEAAkAgAygCOCICRQ0AIAIoAjQiAkUNACADIAIRAAAhAAsCQCAABEAgAEEVRg0BIANBADYCHCADIAE2AhQgA0HqDTYCECADQSY2AgxBACECDJkBC0HeACECDH8LIANB8AA2AhwgAyABNgIUIANBgBs2AhAgA0EVNgIMQQAhAgyXAQsgAy0AKUEhRg0GIANBADYCHCADIAE2AhQgA0GRCjYCECADQQg2AgxBACECDJYBC0HvACECIAEgBEYNlQEgAygCACIAIAQgAWtqIQUgASAAa0ECaiEGAkADQCABLQAAIABBsNUAai0AAEcNAiAAQQJGDQEgAEEBaiEAIAQgAUEBaiIBRw0ACyADIAU2AgAMlgELIAMoAgQhACADQgA3AwAgAyAAIAZBAWoiARArIgBFDQIgA0HtADYCHCADIAE2AhQgAyAANgIMQQAhAgyVAQsgA0EANgIACyADKAIEIQAgA0EANgIEIAMgACABECsiAEUNgAEgA0HuADYCHCADIAE2AhQgAyAANgIMQQAhAgyTAQtB3AAhAgx5C0EAIQACQCADKAI4IgJFDQAgAigCNCICRQ0AIAMgAhEAACEACwJAIAAEQCAAQRVGDQEgA0EANgIcIAMgATYCFCADQeoNNgIQIANBJjYCDEEAIQIMkwELQdsAIQIMeQsgA0HsADYCHCADIAE2AhQgA0GAGzYCECADQRU2AgxBACECDJEBCyADLQApIgBBI0kNACAAQS5GDQAgA0EANgIcIAMgATYCFCADQckJNgIQIANBCDYCDEEAIQIMkAELQdoAIQIMdgsgASAERgRAQesAIQIMjwELAkAgAS0AAEEvRgRAIAFBAWohAQwBCyAD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ciBIVFRQL3gueCByZXF1ZXN0AEludmFsaWQgbWV0aG9kIGZvciBSVFNQL3gueCByZXF1ZXN0AEV4cGVjdGVkIFNPVVJDRSBtZXRob2QgZm9yIElDRS94LnggcmVxdWVzdABJbnZhbGlkIGNoYXIgaW4gdXJsIGZyYWdtZW50IHN0YXJ0AEV4cGVjdGVkIGRvdABTcGFuIGNhbGxiYWNrIGVycm9yIGluIG9uX3N0YXR1cwBJbnZhbGlkIHJlc3BvbnNlIHN0YXR1cwBFeHBlY3RlZCBMRiBhZnRlciBoZWFkZXJzAEludmFsaWQgY2hhcmFjdGVyIGluIGNodW5rIGV4dGVuc2lvbnMAVXNlciBjYWxsYmFjayBlcnJvcgBgb25fcmVzZXRgIGNhbGxiYWNrIGVycm9yAGBvbl9jaHVua19oZWFkZXJgIGNhbGxiYWNrIGVycm9yAGBvbl9tZXNzYWdlX2JlZ2luYCBjYWxsYmFjayBlcnJvcgBgb25fY2h1bmtfZXh0ZW5zaW9uX3ZhbHVlYCBjYWxsYmFjayBlcnJvcgBgb25fc3RhdHVzX2NvbXBsZXRlYCBjYWxsYmFjayBlcnJvcgBgb25fdmVyc2lvbl9jb21wbGV0ZWAgY2FsbGJhY2sgZXJyb3IAYG9uX3VybF9jb21wbGV0ZWAgY2FsbGJhY2sgZXJyb3IAYG9uX3Byb3RvY29sX2NvbXBsZXRlYCBjYWxsYmFjayBlcnJvcgBgb25fY2h1bmtfY29tcGxldGVgIGNhbGxiYWNrIGVycm9yAGBvbl9oZWFkZXJfdmFsdWVfY29tcGxldGVgIGNhbGxiYWNrIGVycm9yAGBvbl9tZXNzYWdlX2NvbXBsZXRlYCBjYWxsYmFjayBlcnJvcgBgb25fbWV0aG9kX2NvbXBsZXRlYCBjYWxsYmFjayBlcnJvcgBgb25faGVhZGVyX2ZpZWxkX2NvbXBsZXRlYCBjYWxsYmFjayBlcnJvcgBgb25fY2h1bmtfZXh0ZW5zaW9uX25hbWVgIGNhbGxiYWNrIGVycm9yAFVuZXhwZWN0ZWQgY2hhciBpbiB1cmwgc2VydmVyAEludmFsaWQgaGVhZGVyIHZhbHVlIGNoYXIASW52YWxpZCBoZWFkZXIgZmllbGQgY2hhcgBTcGFuIGNhbGxiYWNrIGVycm9yIGluIG9uX3ZlcnNpb24ASW52YWxpZCBtaW5vciB2ZXJzaW9uAEludmFsaWQgbWFqb3IgdmVyc2lvbgBFeHBlY3RlZCBzcGFjZSBhZnRlciB2ZXJzaW9uAEV4cGVjdGVkIENSTEYgYWZ0ZXIgdmVyc2lvbgBJbnZhbGlkIEhUVFAgdmVyc2lvbgBJbnZhbGlkIGhlYWRlciB0b2tlbgBTcGFuIGNhbGxiYWNrIGVycm9yIGluIG9uX3VybABJbnZhbGlkIGNoYXJhY3RlcnMgaW4gdXJsAFVuZXhwZWN0ZWQgc3RhcnQgY2hhciBpbiB1cmwARG91YmxlIEAgaW4gdXJsAFNwYW4gY2FsbGJhY2sgZXJyb3IgaW4gb25fcHJvdG9jb2wARW1wdHkgQ29udGVudC1MZW5ndGgASW52YWxpZCBjaGFyYWN0ZXIgaW4gQ29udGVudC1MZW5ndGgAVHJhbnNmZXItRW5jb2RpbmcgY2FuJ3QgYmUgcHJlc2VudCB3aXRoIENvbnRlbnQtTGVuZ3RoAER1cGxpY2F0ZSBDb250ZW50LUxlbmd0aABJbnZhbGlkIGNoYXIgaW4gdXJsIHBhdGgAQ29udGVudC1MZW5ndGggY2FuJ3QgYmUgcHJlc2VudCB3aXRoIFRyYW5zZmVyLUVuY29kaW5nAE1pc3NpbmcgZXhwZWN0ZWQgQ1IgYWZ0ZXIgY2h1bmsgc2l6ZQBFeHBlY3RlZCBMRiBhZnRlciBjaHVuayBzaXplAEludmFsaWQgY2hhcmFjdGVyIGluIGNodW5rIHNpemUAU3BhbiBjYWxsYmFjayBlcnJvciBpbiBvbl9oZWFkZXJfdmFsdWUAU3BhbiBjYWxsYmFjayBlcnJvciBpbiBvbl9jaHVua19leHRlbnNpb25fdmFsdWUASW52YWxpZCBjaGFyYWN0ZXIgaW4gY2h1bmsgZXh0ZW5zaW9ucyB2YWx1ZQBVbmV4cGVjdGVkIHdoaXRlc3BhY2UgYWZ0ZXIgaGVhZGVyIHZhbHVlAE1pc3NpbmcgZXhwZWN0ZWQgQ1IgYWZ0ZXIgaGVhZGVyIHZhbHVlAE1pc3NpbmcgZXhwZWN0ZWQgTEYgYWZ0ZXIgaGVhZGVyIHZhbHVlAEludmFsaWQgYFRyYW5zZmVyLUVuY29kaW5nYCBoZWFkZXIgdmFsdWUATWlzc2luZyBleHBlY3RlZCBDUiBhZnRlciBjaHVuayBleHRlbnNpb24gdmFsdWUASW52YWxpZCBjaGFyYWN0ZXIgaW4gY2h1bmsgZXh0ZW5zaW9ucyBxdW90ZSB2YWx1ZQBJbnZhbGlkIHF1b3RlZC1wYWlyIGluIGNodW5rIGV4dGVuc2lvbnMgcXVvdGVkIHZhbHVlAEludmFsaWQgY2hhcmFjdGVyIGluIGNodW5rIGV4dGVuc2lvbnMgcXVvdGVkIHZhbHVlAFBhdXNlZCBieSBvbl9oZWFkZXJzX2NvbXBsZXRlAEludmFsaWQgRU9GIHN0YXRlAG9uX3Jlc2V0IHBhdXNlAG9uX2NodW5rX2hlYWRlciBwYXVzZQBvbl9tZXNzYWdlX2JlZ2luIHBhdXNlAG9uX2NodW5rX2V4dGVuc2lvbl92YWx1ZSBwYXVzZQBvbl9zdGF0dXNfY29tcGxldGUgcGF1c2UAb25fdmVyc2lvbl9jb21wbGV0ZSBwYXVzZQBvbl91cmxfY29tcGxldGUgcGF1c2UAb25fcHJvdG9jb2xfY29tcGxldGUgcGF1c2UAb25fY2h1bmtfY29tcGxldGUgcGF1c2UAb25faGVhZGVyX3ZhbHVlX2NvbXBsZXRlIHBhdXNlAG9uX21lc3NhZ2VfY29tcGxldGUgcGF1c2UAb25fbWV0aG9kX2NvbXBsZXRlIHBhdXNlAG9uX2hlYWRlcl9maWVsZF9jb21wbGV0ZSBwYXVzZQBvbl9jaHVua19leHRlbnNpb25fbmFtZSBwYXVzZQBVbmV4cGVjdGVkIHNwYWNlIGFmdGVyIHN0YXJ0IGxpbmUATWlzc2luZyBleHBlY3RlZCBDUiBhZnRlciByZXNwb25zZSBsaW5lAFNwYW4gY2FsbGJhY2sgZXJyb3IgaW4gb25fY2h1bmtfZXh0ZW5zaW9uX25hbWUASW52YWxpZCBjaGFyYWN0ZXIgaW4gY2h1bmsgZXh0ZW5zaW9ucyBuYW1lAE1pc3NpbmcgZXhwZWN0ZWQgQ1IgYWZ0ZXIgY2h1bmsgZXh0ZW5zaW9uIG5hbWUASW52YWxpZCBzdGF0dXMgY29kZQBQYXVzZSBvbiBDT05ORUNUL1VwZ3JhZGUAUGF1c2Ugb24gUFJJL1VwZ3JhZGUARXhwZWN0ZWQgSFRUUC8yIENvbm5lY3Rpb24gUHJlZmFjZQBTcGFuIGNhbGxiYWNrIGVycm9yIGluIG9uX21ldGhvZABFeHBlY3RlZCBzcGFjZSBhZnRlciBtZXRob2QAU3BhbiBjYWxsYmFjayBlcnJvciBpbiBvbl9oZWFkZXJfZmllbGQAUGF1c2VkAEludmFsaWQgd29yZCBlbmNvdW50ZXJlZABJbnZhbGlkIG1ldGhvZCBlbmNvdW50ZXJlZABNaXNzaW5nIGV4cGVjdGVkIENSIGFmdGVyIGNodW5rIGRhdGEARXhwZWN0ZWQgTEYgYWZ0ZXIgY2h1bmsgZGF0YQBVbmV4cGVjdGVkIGNoYXIgaW4gdXJsIHNjaGVtYQBSZXF1ZXN0IGhhcyBpbnZhbGlkIGBUcmFuc2Zlci1FbmNvZGluZ2AARGF0YSBhZnRlciBgQ29ubmVjdGlvbjogY2xvc2VgAFNXSVRDSF9QUk9YWQBVU0VfUFJPWFkATUtBQ1RJVklUWQBVTlBST0NFU1NBQkxFX0VOVElUWQBRVUVSWQBDT1BZAE1PVkVEX1BFUk1BTkVOVExZAFRPT19FQVJMWQBOT1RJRlkARkFJTEVEX0RFUEVOREVOQ1kAQkFEX0dBVEVXQVkAUExBWQBQVVQAQ0hFQ0tPVVQAR0FURVdBWV9USU1FT1VUAFJFUVVFU1RfVElNRU9VVABORVRXT1JLX0NPTk5FQ1RfVElNRU9VVABDT05ORUNUSU9OX1RJTUVPVVQATE9HSU5fVElNRU9VVABORVRXT1JLX1JFQURfVElNRU9VVABQT1NUAE1JU0RJUkVDVEVEX1JFUVVFU1QAQ0xJRU5UX0NMT1NFRF9SRVFVRVNUAENMSUVOVF9DTE9TRURfTE9BRF9CQUxBTkNFRF9SRVFVRVNUAEJBRF9SRVFVRVNUAEhUVFBfUkVRVUVTVF9TRU5UX1RPX0hUVFBTX1BPUlQAUkVQT1JUAElNX0FfVEVBUE9UAFJFU0VUX0NPTlRFTlQATk9fQ09OVEVOVABQQVJUSUFMX0NPTlRFTlQASFBFX0lOVkFMSURfQ09OU1RBTlQASFBFX0NCX1JFU0VUAEdFVABIUEVfU1RSSUNUAENPTkZMSUNUAFRFTVBPUkFSWV9SRURJUkVDVABQRVJNQU5FTlRfUkVESVJFQ1QAQ09OTkVDVABNVUxUSV9TVEFUVVMASFBFX0lOVkFMSURfU1RBVFVTAFRPT19NQU5ZX1JFUVVFU1RTAEVBUkxZX0hJTlRTAFVOQVZBSUxBQkxFX0ZPUl9MRUdBTF9SRUFTT05TAE9QVElPTlMAU1dJVENISU5HX1BST1RPQ09MUwBWQVJJQU5UX0FMU09fTkVHT1RJQVRFUwBNVUxUSVBMRV9DSE9JQ0VTAElOVEVSTkFMX1NFUlZFUl9FUlJPUgBXRUJfU0VSVkVSX1VOS05PV05fRVJST1IAUkFJTEdVTl9FUlJPUgBJREVOVElUWV9QUk9WSURFUl9BVVRIRU5USUNBVElPTl9FUlJPUgBTU0xfQ0VSVElGSUNBVEVfRVJST1IASU5WQUxJRF9YX0ZPUldBUkRFRF9GT1IAU0VUX1BBUkFNRVRFUgBHRVRfUEFSQU1FVEVSAEhQRV9VU0VSAFNFRV9PVEhFUgBIUEVfQ0JfQ0hVTktfSEVBREVSAEV4cGVjdGVkIExGIGFmdGVyIENSAE1LQ0FMRU5EQVIAU0VUVVAAV0VCX1NFUlZFUl9JU19ET1dOAFRFQVJET1dOAEhQRV9DTE9TRURfQ09OTkVDVElPTgBIRVVSSVNUSUNfRVhQSVJBVElPTgBESVNDT05ORUNURURfT1BFUkFUSU9OAE5PTl9BVVRIT1JJVEFUSVZFX0lORk9STUFUSU9OAEhQRV9JTlZBTElEX1ZFUlNJT04ASFBFX0NCX01FU1NBR0VfQkVHSU4AU0lURV9JU19GUk9aRU4ASFBFX0lOVkFMSURfSEVBREVSX1RPS0VOAElOVkFMSURfVE9LRU4ARk9SQklEREVOAEVOSEFOQ0VfWU9VUl9DQUxNAEhQRV9JTlZBTElEX1VSTABCTE9DS0VEX0JZX1BBUkVOVEFMX0NPTlRST0wATUtDT0wAQUNMAEhQRV9JTlRFUk5BTABSRVFVRVNUX0hFQURFUl9GSUVMRFNfVE9PX0xBUkdFX1VOT0ZGSUNJQUwASFBFX09LAFVOTElOSwBVTkxPQ0sAUFJJAFJFVFJZX1dJVEgASFBFX0lOVkFMSURfQ09OVEVOVF9MRU5HVEgASFBFX1VORVhQRUNURURfQ09OVEVOVF9MRU5HVEgARkxVU0gAUFJPUFBBVENIAE0tU0VBUkNIAFVSSV9UT09fTE9ORwBQUk9DRVNTSU5HAE1JU0NFTExBTkVPVVNfUEVSU0lTVEVOVF9XQVJOSU5HAE1JU0NFTExBTkVPVVNfV0FSTklORwBIUEVfSU5WQUxJRF9UUkFOU0ZFUl9FTkNPRElORwBFeHBlY3RlZCBDUkxGAEhQRV9JTlZBTElEX0NIVU5LX1NJWkUATU9WRQBDT05USU5VRQBIUEVfQ0JfU1RBVFVTX0NPTVBMRVRFAEhQRV9DQl9IRUFERVJTX0NPTVBMRVRFAEhQRV9DQl9WRVJTSU9OX0NPTVBMRVRFAEhQRV9DQl9VUkxfQ09NUExFVEUASFBFX0NCX1BST1RPQ09MX0NPTVBMRVRFAEhQRV9DQl9DSFVOS19DT01QTEVURQBIUEVfQ0JfSEVBREVSX1ZBTFVFX0NPTVBMRVRFAEhQRV9DQl9DSFVOS19FWFRFTlNJT05fVkFMVUVfQ09NUExFVEUASFBFX0NCX0NIVU5LX0VYVEVOU0lPTl9OQU1FX0NPTVBMRVRFAEhQRV9DQl9NRVNTQUdFX0NPTVBMRVRFAEhQRV9DQl9NRVRIT0RfQ09NUExFVEUASFBFX0NCX0hFQURFUl9GSUVMRF9DT01QTEVURQBERUxFVEUASFBFX0lOVkFMSURfRU9GX1NUQVRFAElOVkFMSURfU1NMX0NFUlRJRklDQVRFAFBBVVNFAE5PX1JFU1BPTlNFAFVOU1VQUE9SVEVEX01FRElBX1RZUEUAR09ORQBOT1RfQUNDRVBUQUJMRQBTRVJWSUNFX1VOQVZBSUxBQkxFAFJBTkdFX05PVF9TQVRJU0ZJQUJMRQBPUklHSU5fSVNfVU5SRUFDSEFCTEUAUkVTUE9OU0VfSVNfU1RBTEUAUFVSR0UATUVSR0UAUkVRVUVTVF9IRUFERVJfRklFTERTX1RPT19MQVJHRQBSRVFVRVNUX0hFQURFUl9UT09fTEFSR0UAUEFZTE9BRF9UT09fTEFSR0UASU5TVUZGSUNJRU5UX1NUT1JBR0UASFBFX1BBVVNFRF9VUEdSQURFAEhQRV9QQVVTRURfSDJfVVBHUkFERQBTT1VSQ0UAQU5OT1VOQ0UAVFJBQ0UASFBFX1VORVhQRUNURURfU1BBQ0UAREVTQ1JJQkUAVU5TVUJTQ1JJQkUAUkVDT1JEAEhQRV9JTlZBTElEX01FVEhPRABOT1RfRk9VTkQAUFJPUEZJTkQAVU5CSU5EAFJFQklORABVTkFVVEhPUklaRUQATUVUSE9EX05PVF9BTExPV0VEAEhUVFBfVkVSU0lPTl9OT1RfU1VQUE9SVEVEAEFMUkVBRFlfUkVQT1JURUQAQUNDRVBURUQATk9UX0lNUExFTUVOVEVEAExPT1BfREVURUNURUQASFBFX0NSX0VYUEVDVEVEAEhQRV9MRl9FWFBFQ1RFRABDUkVBVEVEAElNX1VTRUQASFBFX1BBVVNFRABUSU1FT1VUX09DQ1VSRUQAUEFZTUVOVF9SRVFVSVJFRABQUkVDT05ESVRJT05fUkVRVUlSRUQAUFJPWFlfQVVUSEVOVElDQVRJT05fUkVRVUlSRUQATkVUV09SS19BVVRIRU5USUNBVElPTl9SRVFVSVJFRABMRU5HVEhfUkVRVUlSRUQAU1NMX0NFUlRJRklDQVRFX1JFUVVJUkVEAFVQR1JBREVfUkVRVUlSRUQAUEFHRV9FWFBJUkVEAFBSRUNPTkRJVElPTl9GQUlMRUQARVhQRUNUQVRJT05fRkFJTEVEAFJFVkFMSURBVElPTl9GQUlMRUQAU1NMX0hBTkRTSEFLRV9GQUlMRUQATE9DS0VEAFRSQU5TRk9STUFUSU9OX0FQUExJRUQATk9UX01PRElGSUVEAE5PVF9FWFRFTkRFRABCQU5EV0lEVEhfTElNSVRfRVhDRUVERUQAU0lURV9JU19PVkVSTE9BREVEAEhFQUQARXhwZWN0ZWQgSFRUUC8sIFJUU1AvIG9yIElDRS8A5xUAAK8VAACkEgAAkhoAACYWAACeFAAA2xkAAHkVAAB+EgAA/hQAADYVAAALFgAA2BYAAPMSAABCGAAArBYAABIVAAAUFwAA7xcAAEgUAABxFwAAshoAAGsZAAB+GQAANRQAAIIaAABEFwAA/RYAAB4YAACHFwAAqhkAAJMSAAAHGAAALBcAAMoXAACkFwAA5xUAAOcVAABYFwAAOxgAAKASAAAtHAAAwxEAAEgRAADeEgAAQhMAAKQZAAD9EAAA9xUAAKUVAADvFgAA+BkAAEoWAABWFgAA9RUAAAoaAAAIGgAAARoAAKsVAABCEgAA1xAAAEwRAAAFGQAAVBYAAB4RAADKGQAAyBkAAE4WAAD/GAAAcRQAAPAVAADuFQAAlBkAAPwVAAC/GQAAmxkAAHwUAABDEQAAcBgAAJUUAAAnFAAAGRQAANUSAADUGQAARBYAAPcQAEG5OwsBAQBB0DsL4AEBAQIBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEDAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQABAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQBBuj0LBAEAAAIAQdE9C14DBAMDAwMDAAADAwADAwADAwMDAwMDAwMDAAUAAAAAAAMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAAAAAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAAwADAEG6PwsEAQAAAgBB0T8LXgMAAwMDAwMAAAMDAAMDAAMDAwMDAwMDAwMABAAFAAAAAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAAAADAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwADAAMAQbDBAAsNbG9zZWVlcC1hbGl2ZQBBycEACwEBAEHgwQAL4AEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQABAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQBBycMACwEBAEHgwwAL5wEBAQEBAQEBAQEBAQECAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQABAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAWNodW5rZWQAQfHFAAteAQABAQEBAQAAAQEAAQEAAQEBAQEBAQEBAQAAAAAAAAABAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQAAAAEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAAEAAQBB0McACyFlY3Rpb25lbnQtbGVuZ3Rob25yb3h5LWNvbm5lY3Rpb24AQYDIAAsgcmFuc2Zlci1lbmNvZGluZ3BncmFkZQ0KDQpTTQ0KDQoAQanIAAsFAQIAAQMAQcDIAAtfBAUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUAQanKAAsFAQIAAQMAQcDKAAtfBAUFBgUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUAQanMAAsEAQAAAQBBwcwAC14CAgACAgICAgICAgICAgICAgICAgICAgICAgICAgIAAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAEGpzgALBQECAAEDAEHAzgALXwQFAAAFBQUFBQUFBQUFBQYFBQUFBQUFBQUFBQUABQAHCAUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQAFAAUABQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUAAAAFAEGp0AALBQEBAAEBAEHA0AALAQEAQdrQAAtBAgAAAAAAAAMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAAAAAAAAAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAQanSAAsFAQEAAQEAQcDSAAsBAQBBytIACwYCAAAAAAIAQeHSAAs6AwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAAAAAAAADAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwBBoNQAC50BTk9VTkNFRUNLT1VUTkVDVEVURUNSSUJFTFVTSEVURUFEU0VBUkNIUkdFQ1RJVklUWUxFTkRBUlZFT1RJRllQVElPTlNDSFNFQVlTVEFUQ0hHRVVFUllPUkRJUkVDVE9SVFJDSFBBUkFNRVRFUlVSQ0VCU0NSSUJFQVJET1dOQUNFSU5ETktDS1VCU0NSSUJFVFRQQ0VUU1BBRFRQLw==",wasmBuffer;Object.defineProperty(module,"exports",{get:()=>wasmBuffer||(wasmBuffer=Buffer2.from(wasmBase64,"base64"))})}});var require_constants3=__commonJS({"packages/agent-forge/node_modules/undici/lib/web/fetch/constants.js"(exports,module){"use strict";var corsSafeListedMethods=["GET","HEAD","POST"],corsSafeListedMethodsSet=new Set(corsSafeListedMethods),nullBodyStatus=[101,204,205,304],redirectStatus=[301,302,303,307,308],redirectStatusSet=new Set(redirectStatus),badPorts=["1","7","9","11","13","15","17","19","20","21","22","23","25","37","42","43","53","69","77","79","87","95","101","102","103","104","109","110","111","113","115","117","119","123","135","137","139","143","161","179","389","427","465","512","513","514","515","526","530","531","532","540","548","554","556","563","587","601","636","989","990","993","995","1719","1720","1723","2049","3659","4045","4190","5060","5061","6000","6566","6665","6666","6667","6668","6669","6679","6697","10080"],badPortsSet=new Set(badPorts),referrerPolicyTokens=["no-referrer","no-referrer-when-downgrade","same-origin","origin","strict-origin","origin-when-cross-origin","strict-origin-when-cross-origin","unsafe-url"],referrerPolicy=["",...referrerPolicyTokens],referrerPolicyTokensSet=new Set(referrerPolicyTokens),requestRedirect=["follow","manual","error"],safeMethods=["GET","HEAD","OPTIONS","TRACE","QUERY"],safeMethodsSet=new Set(safeMethods),requestMode=["navigate","same-origin","no-cors","cors"],requestCredentials=["omit","same-origin","include"],requestCache=["default","no-store","reload","no-cache","force-cache","only-if-cached"],requestBodyHeader=["content-encoding","content-language","content-location","content-type","content-length"],requestDuplex=["half"],forbiddenMethods=["CONNECT","TRACE","TRACK"],forbiddenMethodsSet=new Set(forbiddenMethods),subresource=["audio","audioworklet","font","image","manifest","paintworklet","script","style","track","video","xslt",""],subresourceSet=new Set(subresource);module.exports={subresource,forbiddenMethods,requestBodyHeader,referrerPolicy,requestRedirect,requestMode,requestCredentials,requestCache,redirectStatus,corsSafeListedMethods,nullBodyStatus,safeMethods,badPorts,requestDuplex,subresourceSet,badPortsSet,redirectStatusSet,corsSafeListedMethodsSet,safeMethodsSet,forbiddenMethodsSet,referrerPolicyTokens:referrerPolicyTokensSet}}});var require_global=__commonJS({"packages/agent-forge/node_modules/undici/lib/web/fetch/global.js"(exports,module){"use strict";var globalOrigin=Symbol.for("undici.globalOrigin.1");function getGlobalOrigin(){return globalThis[globalOrigin]}function setGlobalOrigin(newOrigin){if(newOrigin===void 0){Object.defineProperty(globalThis,globalOrigin,{value:void 0,writable:!0,enumerable:!1,configurable:!1});return}let parsedURL=new URL(newOrigin);if(parsedURL.protocol!=="http:"&&parsedURL.protocol!=="https:")throw new TypeError(`Only http & https urls are allowed, received ${parsedURL.protocol}`);Object.defineProperty(globalThis,globalOrigin,{value:parsedURL,writable:!0,enumerable:!1,configurable:!1})}module.exports={getGlobalOrigin,setGlobalOrigin}}});var require_encoding=__commonJS({"packages/agent-forge/node_modules/undici/lib/encoding/index.js"(exports,module){"use strict";var textDecoder2=new TextDecoder;function utf8DecodeBytes(buffer){return buffer.length===0?"":(buffer[0]===239&&buffer[1]===187&&buffer[2]===191&&(buffer=buffer.subarray(3)),textDecoder2.decode(buffer))}module.exports={utf8DecodeBytes}}});var require_infra=__commonJS({"packages/agent-forge/node_modules/undici/lib/web/infra/index.js"(exports,module){"use strict";var assert=__require("node:assert"),{utf8DecodeBytes}=require_encoding();function collectASequenceOfCodePoints(condition,input,position){let result="";for(;position.position<input.length&&condition(input[position.position]);)result+=input[position.position],position.position++;return result}function collectASequenceOfCodePointsFast(char,input,position){let idx=input.indexOf(char,position.position),start=position.position;return idx===-1?(position.position=input.length,input.slice(start)):(position.position=idx,input.slice(start,position.position))}var ASCII_WHITESPACE_REPLACE_REGEX=/[\u0009\u000A\u000C\u000D\u0020]/g;function forgivingBase64(data){data=data.replace(ASCII_WHITESPACE_REPLACE_REGEX,"");let dataLength=data.length;if(dataLength%4===0&&data.charCodeAt(dataLength-1)===61&&(--dataLength,data.charCodeAt(dataLength-1)===61&&--dataLength),dataLength%4===1||/[^+/0-9A-Za-z]/.test(data.length===dataLength?data:data.substring(0,dataLength)))return"failure";let buffer=Buffer.from(data,"base64");return new Uint8Array(buffer.buffer,buffer.byteOffset,buffer.byteLength)}function isASCIIWhitespace(char){return char===9||char===10||char===12||char===13||char===32}function isomorphicDecode(input){let length=input.length;if(65535>length)return String.fromCharCode.apply(null,input);let result="",i=0,addition=65535;for(;i<length;)i+addition>length&&(addition=length-i),result+=String.fromCharCode.apply(null,input.subarray(i,i+=addition));return result}var invalidIsomorphicEncodeValueRegex=/[^\x00-\xFF]/;function isomorphicEncode(input){return assert(!invalidIsomorphicEncodeValueRegex.test(input)),input}function parseJSONFromBytes(bytes){return JSON.parse(utf8DecodeBytes(bytes))}function removeASCIIWhitespace(str2,leading=!0,trailing=!0){return removeChars(str2,leading,trailing,isASCIIWhitespace)}function removeChars(str2,leading,trailing,predicate){let lead=0,trail=str2.length-1;if(leading)for(;lead<str2.length&&predicate(str2.charCodeAt(lead));)lead++;if(trailing)for(;trail>0&&predicate(str2.charCodeAt(trail));)trail--;return lead===0&&trail===str2.length-1?str2:str2.slice(lead,trail+1)}function serializeJavascriptValueToJSONString(value){let result=JSON.stringify(value);if(result===void 0)throw new TypeError("Value is not JSON serializable");return assert(typeof result=="string"),result}module.exports={collectASequenceOfCodePoints,collectASequenceOfCodePointsFast,forgivingBase64,isASCIIWhitespace,isomorphicDecode,isomorphicEncode,parseJSONFromBytes,removeASCIIWhitespace,removeChars,serializeJavascriptValueToJSONString}}});var require_data_url=__commonJS({"packages/agent-forge/node_modules/undici/lib/web/fetch/data-url.js"(exports,module){"use strict";var assert=__require("node:assert"),{forgivingBase64,collectASequenceOfCodePoints,collectASequenceOfCodePointsFast,isomorphicDecode,removeASCIIWhitespace,removeChars}=require_infra(),encoder2=new TextEncoder,HTTP_TOKEN_CODEPOINTS=/^[-!#$%&'*+.^_|~A-Za-z0-9]+$/u,HTTP_WHITESPACE_REGEX=/[\u000A\u000D\u0009\u0020]/u,HTTP_QUOTED_STRING_TOKENS=/^[\u0009\u0020-\u007E\u0080-\u00FF]+$/u;function dataURLProcessor(dataURL){assert(dataURL.protocol==="data:");let input=URLSerializer(dataURL,!0);input=input.slice(5);let position={position:0},mimeType=collectASequenceOfCodePointsFast(",",input,position),mimeTypeLength=mimeType.length;if(mimeType=removeASCIIWhitespace(mimeType,!0,!0),position.position>=input.length)return"failure";position.position++;let encodedBody=input.slice(mimeTypeLength+1),body=stringPercentDecode(encodedBody);if(/;(?:\u0020*)base64$/ui.test(mimeType)){let stringBody=isomorphicDecode(body);if(body=forgivingBase64(stringBody),body==="failure")return"failure";mimeType=mimeType.slice(0,-6),mimeType=mimeType.replace(/(\u0020+)$/u,""),mimeType=mimeType.slice(0,-1)}mimeType.startsWith(";")&&(mimeType="text/plain"+mimeType);let mimeTypeRecord=parseMIMEType(mimeType);return mimeTypeRecord==="failure"&&(mimeTypeRecord=parseMIMEType("text/plain;charset=US-ASCII")),{mimeType:mimeTypeRecord,body}}function URLSerializer(url,excludeFragment=!1){if(!excludeFragment)return url.href;let href=url.href,hashLength=url.hash.length,serialized=hashLength===0?href:href.substring(0,href.length-hashLength);return!hashLength&&href.endsWith("#")?serialized.slice(0,-1):serialized}function stringPercentDecode(input){let bytes=encoder2.encode(input);return percentDecode(bytes)}function isHexCharByte(byte){return byte>=48&&byte<=57||byte>=65&&byte<=70||byte>=97&&byte<=102}function hexByteToNumber(byte){return byte>=48&&byte<=57?byte-48:(byte&223)-55}function percentDecode(input){let length=input.length,output=new Uint8Array(length),j2=0,i=0;for(;i<length;){let byte=input[i];byte!==37?output[j2++]=byte:byte===37&&!(isHexCharByte(input[i+1])&&isHexCharByte(input[i+2]))?output[j2++]=37:(output[j2++]=hexByteToNumber(input[i+1])<<4|hexByteToNumber(input[i+2]),i+=2),++i}return length===j2?output:output.subarray(0,j2)}function parseMIMEType(input){input=removeHTTPWhitespace(input,!0,!0);let position={position:0},type=collectASequenceOfCodePointsFast("/",input,position);if(type.length===0||!HTTP_TOKEN_CODEPOINTS.test(type)||position.position>=input.length)return"failure";position.position++;let subtype=collectASequenceOfCodePointsFast(";",input,position);if(subtype=removeHTTPWhitespace(subtype,!1,!0),subtype.length===0||!HTTP_TOKEN_CODEPOINTS.test(subtype))return"failure";let typeLowercase=type.toLowerCase(),subtypeLowercase=subtype.toLowerCase(),mimeType={type:typeLowercase,subtype:subtypeLowercase,parameters:new Map,essence:`${typeLowercase}/${subtypeLowercase}`};for(;position.position<input.length;){position.position++,collectASequenceOfCodePoints(char=>HTTP_WHITESPACE_REGEX.test(char),input,position);let parameterName=collectASequenceOfCodePoints(char=>char!==";"&&char!=="=",input,position);if(parameterName=parameterName.toLowerCase(),position.position<input.length){if(input[position.position]===";")continue;position.position++}if(position.position>=input.length)break;let parameterValue=null;if(input[position.position]==='"')parameterValue=collectAnHTTPQuotedString(input,position,!0),collectASequenceOfCodePointsFast(";",input,position);else if(parameterValue=collectASequenceOfCodePointsFast(";",input,position),parameterValue=removeHTTPWhitespace(parameterValue,!1,!0),parameterValue.length===0)continue;parameterName.length!==0&&HTTP_TOKEN_CODEPOINTS.test(parameterName)&&(parameterValue.length===0||HTTP_QUOTED_STRING_TOKENS.test(parameterValue))&&!mimeType.parameters.has(parameterName)&&mimeType.parameters.set(parameterName,parameterValue)}return mimeType}function collectAnHTTPQuotedString(input,position,extractValue=!1){let positionStart=position.position,value="";for(assert(input[position.position]==='"'),position.position++;value+=collectASequenceOfCodePoints(char=>char!=='"'&&char!=="\\",input,position),!(position.position>=input.length);){let quoteOrBackslash=input[position.position];if(position.position++,quoteOrBackslash==="\\"){if(position.position>=input.length){value+="\\";break}value+=input[position.position],position.position++}else{assert(quoteOrBackslash==='"');break}}return extractValue?value:input.slice(positionStart,position.position)}function serializeAMimeType(mimeType){assert(mimeType!=="failure");let{parameters,essence}=mimeType,serialization=essence;for(let[name,value]of parameters.entries())serialization+=";",serialization+=name,serialization+="=",HTTP_TOKEN_CODEPOINTS.test(value)||(value=value.replace(/[\\"]/ug,"\\$&"),value='"'+value,value+='"'),serialization+=value;return serialization}function isHTTPWhiteSpace(char){return char===13||char===10||char===9||char===32}function removeHTTPWhitespace(str2,leading=!0,trailing=!0){return removeChars(str2,leading,trailing,isHTTPWhiteSpace)}function minimizeSupportedMimeType(mimeType){switch(mimeType.essence){case"application/ecmascript":case"application/javascript":case"application/x-ecmascript":case"application/x-javascript":case"text/ecmascript":case"text/javascript":case"text/javascript1.0":case"text/javascript1.1":case"text/javascript1.2":case"text/javascript1.3":case"text/javascript1.4":case"text/javascript1.5":case"text/jscript":case"text/livescript":case"text/x-ecmascript":case"text/x-javascript":return"text/javascript";case"application/json":case"text/json":return"application/json";case"image/svg+xml":return"image/svg+xml";case"text/xml":case"application/xml":return"application/xml"}return mimeType.subtype.endsWith("+json")?"application/json":mimeType.subtype.endsWith("+xml")?"application/xml":""}module.exports={dataURLProcessor,URLSerializer,stringPercentDecode,parseMIMEType,collectAnHTTPQuotedString,serializeAMimeType,removeHTTPWhitespace,minimizeSupportedMimeType,HTTP_TOKEN_CODEPOINTS}}});var require_webidl=__commonJS({"packages/agent-forge/node_modules/undici/lib/web/webidl/index.js"(exports,module){"use strict";var assert=__require("node:assert"),{types,inspect}=__require("node:util"),{markAsUncloneable}=__require("node:worker_threads"),UNDEFINED=1,BOOLEAN=2,STRING=3,SYMBOL=4,NUMBER=5,BIGINT=6,NULL=7,OBJECT=8,FunctionPrototypeSymbolHasInstance=Function.call.bind(Function.prototype[Symbol.hasInstance]),webidl={converters:{},util:{},errors:{},is:{}};webidl.errors.exception=function(message){return new TypeError(`${message.header}: ${message.message}`)};webidl.errors.conversionFailed=function(opts){let plural=opts.types.length===1?"":" one of",message=`${opts.argument} could not be converted to${plural}: ${opts.types.join(", ")}.`;return webidl.errors.exception({header:opts.prefix,message})};webidl.errors.invalidArgument=function(context){return webidl.errors.exception({header:context.prefix,message:`"${context.value}" is an invalid ${context.type}.`})};webidl.brandCheck=function(V2,I2){if(!FunctionPrototypeSymbolHasInstance(I2,V2)){let err2=new TypeError("Illegal invocation");throw err2.code="ERR_INVALID_THIS",err2}};webidl.brandCheckMultiple=function(List){let prototypes=List.map(c2=>webidl.util.MakeTypeAssertion(c2));return V2=>{if(prototypes.every(typeCheck=>!typeCheck(V2))){let err2=new TypeError("Illegal invocation");throw err2.code="ERR_INVALID_THIS",err2}}};webidl.argumentLengthCheck=function({length},min,ctx){if(length<min)throw webidl.errors.exception({message:`${min} argument${min!==1?"s":""} required, but${length?" only":""} ${length} found.`,header:ctx})};webidl.illegalConstructor=function(){throw webidl.errors.exception({header:"TypeError",message:"Illegal constructor"})};webidl.util.MakeTypeAssertion=function(I2){return O2=>FunctionPrototypeSymbolHasInstance(I2,O2)};webidl.util.Type=function(V2){switch(typeof V2){case"undefined":return UNDEFINED;case"boolean":return BOOLEAN;case"string":return STRING;case"symbol":return SYMBOL;case"number":return NUMBER;case"bigint":return BIGINT;case"function":case"object":return V2===null?NULL:OBJECT}};webidl.util.Types={UNDEFINED,BOOLEAN,STRING,SYMBOL,NUMBER,BIGINT,NULL,OBJECT};webidl.util.TypeValueToString=function(o){switch(webidl.util.Type(o)){case UNDEFINED:return"Undefined";case BOOLEAN:return"Boolean";case STRING:return"String";case SYMBOL:return"Symbol";case NUMBER:return"Number";case BIGINT:return"BigInt";case NULL:return"Null";case OBJECT:return"Object"}};webidl.util.markAsUncloneable=markAsUncloneable;webidl.util.ConvertToInt=function(V2,bitLength,signedness,flags){let upperBound,lowerBound;bitLength===64?(upperBound=Math.pow(2,53)-1,signedness==="unsigned"?lowerBound=0:lowerBound=Math.pow(-2,53)+1):signedness==="unsigned"?(lowerBound=0,upperBound=Math.pow(2,bitLength)-1):(lowerBound=-Math.pow(2,bitLength-1),upperBound=Math.pow(2,bitLength-1)-1);let x2=Number(V2);if(x2===0&&(x2=0),webidl.util.HasFlag(flags,webidl.attributes.EnforceRange)){if(Number.isNaN(x2)||x2===Number.POSITIVE_INFINITY||x2===Number.NEGATIVE_INFINITY)throw webidl.errors.exception({header:"Integer conversion",message:`Could not convert ${webidl.util.Stringify(V2)} to an integer.`});if(x2=webidl.util.IntegerPart(x2),x2<lowerBound||x2>upperBound)throw webidl.errors.exception({header:"Integer conversion",message:`Value must be between ${lowerBound}-${upperBound}, got ${x2}.`});return x2}return!Number.isNaN(x2)&&webidl.util.HasFlag(flags,webidl.attributes.Clamp)?(x2=Math.min(Math.max(x2,lowerBound),upperBound),Math.floor(x2)%2===0?x2=Math.floor(x2):x2=Math.ceil(x2),x2):Number.isNaN(x2)||x2===0&&Object.is(0,x2)||x2===Number.POSITIVE_INFINITY||x2===Number.NEGATIVE_INFINITY?0:(x2=webidl.util.IntegerPart(x2),x2=x2%Math.pow(2,bitLength),signedness==="signed"&&x2>=Math.pow(2,bitLength-1)?x2-Math.pow(2,bitLength):x2)};webidl.util.IntegerPart=function(n){let r=Math.floor(Math.abs(n));return n<0?-1*r:r};webidl.util.Stringify=function(V2){switch(webidl.util.Type(V2)){case SYMBOL:return`Symbol(${V2.description})`;case OBJECT:return inspect(V2);case STRING:return`"${V2}"`;case BIGINT:return`${V2}n`;default:return`${V2}`}};webidl.util.IsResizableArrayBuffer=function(V2){if(types.isArrayBuffer(V2))return V2.resizable;if(types.isSharedArrayBuffer(V2))return V2.growable;throw webidl.errors.exception({header:"IsResizableArrayBuffer",message:`"${webidl.util.Stringify(V2)}" is not an array buffer.`})};webidl.util.HasFlag=function(flags,attributes){return typeof flags=="number"&&(flags&attributes)===attributes};webidl.sequenceConverter=function(converter){return(V2,prefix,argument,Iterable)=>{if(webidl.util.Type(V2)!==OBJECT)throw webidl.errors.exception({header:prefix,message:`${argument} (${webidl.util.Stringify(V2)}) is not iterable.`});let method=typeof Iterable=="function"?Iterable():V2?.[Symbol.iterator]?.(),seq=[],index3=0;if(method===void 0||typeof method.next!="function")throw webidl.errors.exception({header:prefix,message:`${argument} is not iterable.`});for(;;){let{done,value}=method.next();if(done)break;seq.push(converter(value,prefix,`${argument}[${index3++}]`))}return seq}};webidl.recordConverter=function(keyConverter,valueConverter){return(O2,prefix,argument)=>{if(webidl.util.Type(O2)!==OBJECT)throw webidl.errors.exception({header:prefix,message:`${argument} ("${webidl.util.TypeValueToString(O2)}") is not an Object.`});let result={};if(!types.isProxy(O2)){let keys2=[...Object.getOwnPropertyNames(O2),...Object.getOwnPropertySymbols(O2)];for(let key of keys2){let keyName=webidl.util.Stringify(key),typedKey=keyConverter(key,prefix,`Key ${keyName} in ${argument}`),typedValue=valueConverter(O2[key],prefix,`${argument}[${keyName}]`);result[typedKey]=typedValue}return result}let keys=Reflect.ownKeys(O2);for(let key of keys)if(Reflect.getOwnPropertyDescriptor(O2,key)?.enumerable){let typedKey=keyConverter(key,prefix,argument),typedValue=valueConverter(O2[key],prefix,argument);result[typedKey]=typedValue}return result}};webidl.interfaceConverter=function(TypeCheck,name){return(V2,prefix,argument)=>{if(!TypeCheck(V2))throw webidl.errors.exception({header:prefix,message:`Expected ${argument} ("${webidl.util.Stringify(V2)}") to be an instance of ${name}.`});return V2}};webidl.dictionaryConverter=function(converters){return converters.sort((a,b2)=>(a.key>b2.key)-(a.key<b2.key)),(dictionary,prefix,argument)=>{let dict={};if(dictionary!=null&&webidl.util.Type(dictionary)!==OBJECT)throw webidl.errors.exception({header:prefix,message:`Expected ${dictionary} to be one of: Null, Undefined, Object.`});for(let options of converters){let{key,defaultValue,required,converter}=options;if(required===!0&&(dictionary==null||!Object.hasOwn(dictionary,key)))throw webidl.errors.exception({header:prefix,message:`Missing required key "${key}".`});let value=dictionary?.[key],hasDefault=defaultValue!==void 0;if(hasDefault&&value===void 0&&(value=defaultValue()),required||hasDefault||value!==void 0){if(value=converter(value,prefix,`${argument}.${key}`),options.allowedValues&&!options.allowedValues.includes(value))throw webidl.errors.exception({header:prefix,message:`${value} is not an accepted type. Expected one of ${options.allowedValues.join(", ")}.`});dict[key]=value}}return dict}};webidl.nullableConverter=function(converter){return(V2,prefix,argument)=>V2===null?V2:converter(V2,prefix,argument)};webidl.is.USVString=function(value){return typeof value=="string"&&value.isWellFormed()};webidl.is.ReadableStream=webidl.util.MakeTypeAssertion(ReadableStream);webidl.is.Blob=webidl.util.MakeTypeAssertion(Blob);webidl.is.URLSearchParams=webidl.util.MakeTypeAssertion(URLSearchParams);webidl.is.File=webidl.util.MakeTypeAssertion(File);webidl.is.URL=webidl.util.MakeTypeAssertion(URL);webidl.is.AbortSignal=webidl.util.MakeTypeAssertion(AbortSignal);webidl.is.MessagePort=webidl.util.MakeTypeAssertion(MessagePort);webidl.is.BufferSource=function(V2){return types.isArrayBuffer(V2)||ArrayBuffer.isView(V2)&&types.isArrayBuffer(V2.buffer)};webidl.util.getCopyOfBytesHeldByBufferSource=function(bufferSource){let jsBufferSource=bufferSource,jsArrayBuffer=jsBufferSource,offset=0,length=0;if(types.isTypedArray(jsBufferSource)||types.isDataView(jsBufferSource)?(jsArrayBuffer=jsBufferSource.buffer,offset=jsBufferSource.byteOffset,length=jsBufferSource.byteLength):(assert(types.isAnyArrayBuffer(jsBufferSource)),length=jsBufferSource.byteLength),jsArrayBuffer.detached)return new Uint8Array(0);let bytes=new Uint8Array(length),view=new Uint8Array(jsArrayBuffer,offset,length);return bytes.set(view),bytes};webidl.converters.DOMString=function(V2,prefix,argument,flags){if(V2===null&&webidl.util.HasFlag(flags,webidl.attributes.LegacyNullToEmptyString))return"";if(typeof V2=="symbol")throw webidl.errors.exception({header:prefix,message:`${argument} is a symbol, which cannot be converted to a DOMString.`});return String(V2)};webidl.converters.ByteString=function(V2,prefix,argument){if(typeof V2=="symbol")throw webidl.errors.exception({header:prefix,message:`${argument} is a symbol, which cannot be converted to a ByteString.`});let x2=String(V2);for(let index3=0;index3<x2.length;index3++)if(x2.charCodeAt(index3)>255)throw new TypeError(`Cannot convert argument to a ByteString because the character at index ${index3} has a value of ${x2.charCodeAt(index3)} which is greater than 255.`);return x2};webidl.converters.USVString=function(value){return typeof value=="string"?value.toWellFormed():`${value}`.toWellFormed()};webidl.converters.boolean=function(V2){return!!V2};webidl.converters.any=function(V2){return V2};webidl.converters["long long"]=function(V2,prefix,argument){return webidl.util.ConvertToInt(V2,64,"signed",0,prefix,argument)};webidl.converters["unsigned long long"]=function(V2,prefix,argument){return webidl.util.ConvertToInt(V2,64,"unsigned",0,prefix,argument)};webidl.converters["unsigned long"]=function(V2,prefix,argument){return webidl.util.ConvertToInt(V2,32,"unsigned",0,prefix,argument)};webidl.converters["unsigned short"]=function(V2,prefix,argument,flags){return webidl.util.ConvertToInt(V2,16,"unsigned",flags,prefix,argument)};webidl.converters.ArrayBuffer=function(V2,prefix,argument,flags){if(webidl.util.Type(V2)!==OBJECT||!types.isArrayBuffer(V2))throw webidl.errors.conversionFailed({prefix,argument:`${argument} ("${webidl.util.Stringify(V2)}")`,types:["ArrayBuffer"]});if(!webidl.util.HasFlag(flags,webidl.attributes.AllowResizable)&&webidl.util.IsResizableArrayBuffer(V2))throw webidl.errors.exception({header:prefix,message:`${argument} cannot be a resizable ArrayBuffer.`});return V2};webidl.converters.SharedArrayBuffer=function(V2,prefix,argument,flags){if(webidl.util.Type(V2)!==OBJECT||!types.isSharedArrayBuffer(V2))throw webidl.errors.conversionFailed({prefix,argument:`${argument} ("${webidl.util.Stringify(V2)}")`,types:["SharedArrayBuffer"]});if(!webidl.util.HasFlag(flags,webidl.attributes.AllowResizable)&&webidl.util.IsResizableArrayBuffer(V2))throw webidl.errors.exception({header:prefix,message:`${argument} cannot be a resizable SharedArrayBuffer.`});return V2};webidl.converters.TypedArray=function(V2,T2,prefix,argument,flags){if(webidl.util.Type(V2)!==OBJECT||!types.isTypedArray(V2)||V2.constructor.name!==T2.name)throw webidl.errors.conversionFailed({prefix,argument:`${argument} ("${webidl.util.Stringify(V2)}")`,types:[T2.name]});if(!webidl.util.HasFlag(flags,webidl.attributes.AllowShared)&&types.isSharedArrayBuffer(V2.buffer))throw webidl.errors.exception({header:prefix,message:`${argument} cannot be a view on a shared array buffer.`});if(!webidl.util.HasFlag(flags,webidl.attributes.AllowResizable)&&webidl.util.IsResizableArrayBuffer(V2.buffer))throw webidl.errors.exception({header:prefix,message:`${argument} cannot be a view on a resizable array buffer.`});return V2};webidl.converters.DataView=function(V2,prefix,argument,flags){if(webidl.util.Type(V2)!==OBJECT||!types.isDataView(V2))throw webidl.errors.conversionFailed({prefix,argument:`${argument} ("${webidl.util.Stringify(V2)}")`,types:["DataView"]});if(!webidl.util.HasFlag(flags,webidl.attributes.AllowShared)&&types.isSharedArrayBuffer(V2.buffer))throw webidl.errors.exception({header:prefix,message:`${argument} cannot be a view on a shared array buffer.`});if(!webidl.util.HasFlag(flags,webidl.attributes.AllowResizable)&&webidl.util.IsResizableArrayBuffer(V2.buffer))throw webidl.errors.exception({header:prefix,message:`${argument} cannot be a view on a resizable array buffer.`});return V2};webidl.converters.ArrayBufferView=function(V2,prefix,argument,flags){if(webidl.util.Type(V2)!==OBJECT||!types.isArrayBufferView(V2))throw webidl.errors.conversionFailed({prefix,argument:`${argument} ("${webidl.util.Stringify(V2)}")`,types:["ArrayBufferView"]});if(!webidl.util.HasFlag(flags,webidl.attributes.AllowShared)&&types.isSharedArrayBuffer(V2.buffer))throw webidl.errors.exception({header:prefix,message:`${argument} cannot be a view on a shared array buffer.`});if(!webidl.util.HasFlag(flags,webidl.attributes.AllowResizable)&&webidl.util.IsResizableArrayBuffer(V2.buffer))throw webidl.errors.exception({header:prefix,message:`${argument} cannot be a view on a resizable array buffer.`});return V2};webidl.converters.BufferSource=function(V2,prefix,argument,flags){if(types.isArrayBuffer(V2))return webidl.converters.ArrayBuffer(V2,prefix,argument,flags);if(types.isArrayBufferView(V2))return flags&=~webidl.attributes.AllowShared,webidl.converters.ArrayBufferView(V2,prefix,argument,flags);throw types.isSharedArrayBuffer(V2)?webidl.errors.exception({header:prefix,message:`${argument} cannot be a SharedArrayBuffer.`}):webidl.errors.conversionFailed({prefix,argument:`${argument} ("${webidl.util.Stringify(V2)}")`,types:["ArrayBuffer","ArrayBufferView"]})};webidl.converters.AllowSharedBufferSource=function(V2,prefix,argument,flags){if(types.isArrayBuffer(V2))return webidl.converters.ArrayBuffer(V2,prefix,argument,flags);if(types.isSharedArrayBuffer(V2))return webidl.converters.SharedArrayBuffer(V2,prefix,argument,flags);if(types.isArrayBufferView(V2))return flags|=webidl.attributes.AllowShared,webidl.converters.ArrayBufferView(V2,prefix,argument,flags);throw webidl.errors.conversionFailed({prefix,argument:`${argument} ("${webidl.util.Stringify(V2)}")`,types:["ArrayBuffer","SharedArrayBuffer","ArrayBufferView"]})};webidl.converters["sequence<ByteString>"]=webidl.sequenceConverter(webidl.converters.ByteString);webidl.converters["sequence<sequence<ByteString>>"]=webidl.sequenceConverter(webidl.converters["sequence<ByteString>"]);webidl.converters["record<ByteString, ByteString>"]=webidl.recordConverter(webidl.converters.ByteString,webidl.converters.ByteString);webidl.converters.Blob=webidl.interfaceConverter(webidl.is.Blob,"Blob");webidl.converters.AbortSignal=webidl.interfaceConverter(webidl.is.AbortSignal,"AbortSignal");webidl.converters.EventHandlerNonNull=function(V2){return webidl.util.Type(V2)!==OBJECT?null:typeof V2=="function"?V2:()=>{}};webidl.attributes={Clamp:1,EnforceRange:2,AllowShared:4,AllowResizable:8,LegacyNullToEmptyString:16};module.exports={webidl}}});var require_util2=__commonJS({"packages/agent-forge/node_modules/undici/lib/web/fetch/util.js"(exports,module){"use strict";var{Transform:Transform2}=__require("node:stream"),zlib=__require("node:zlib"),{redirectStatusSet,referrerPolicyTokens,badPortsSet}=require_constants3(),{getGlobalOrigin}=require_global(),{collectAnHTTPQuotedString,parseMIMEType}=require_data_url(),{performance:performance3}=__require("node:perf_hooks"),{ReadableStreamFrom,isValidHTTPToken,normalizedMethodRecordsBase}=require_util(),assert=__require("node:assert"),{isUint8Array}=__require("node:util/types"),{webidl}=require_webidl(),{isomorphicEncode,collectASequenceOfCodePoints,removeChars}=require_infra();function responseURL(response){let urlList=response.urlList,length=urlList.length;return length===0?null:urlList[length-1].toString()}function responseLocationURL(response,requestFragment){if(!redirectStatusSet.has(response.status))return null;let location=response.headersList.get("location",!0);return location!==null&&isValidHeaderValue(location)&&(isValidEncodedURL(location)||(location=normalizeBinaryStringToUtf8(location)),location=new URL(location,responseURL(response))),location&&!location.hash&&(location.hash=requestFragment),location}function isValidEncodedURL(url){for(let i=0;i<url.length;++i){let code=url.charCodeAt(i);if(code>126||code<32)return!1}return!0}function normalizeBinaryStringToUtf8(value){return Buffer.from(value,"binary").toString("utf8")}function requestCurrentURL(request){return request.urlList[request.urlList.length-1]}function requestBadPort(request){let url=requestCurrentURL(request);return urlIsHttpHttpsScheme(url)&&badPortsSet.has(url.port)?"blocked":"allowed"}function isErrorLike(object){return object instanceof Error||object?.constructor?.name==="Error"||object?.constructor?.name==="DOMException"}function isValidReasonPhrase(statusText){for(let i=0;i<statusText.length;++i){let c2=statusText.charCodeAt(i);if(!(c2===9||c2>=32&&c2<=126||c2>=128&&c2<=255))return!1}return!0}var isValidHeaderName=isValidHTTPToken;function isValidHeaderValue(potentialValue){return(potentialValue[0]===" "||potentialValue[0]===" "||potentialValue[potentialValue.length-1]===" "||potentialValue[potentialValue.length-1]===" "||potentialValue.includes(`
|
|
3
3
|
`)||potentialValue.includes("\r")||potentialValue.includes("\0"))===!1}function parseReferrerPolicy(actualResponse){let policyHeader=(actualResponse.headersList.get("referrer-policy",!0)??"").split(","),policy="";if(policyHeader.length)for(let i=policyHeader.length;i!==0;i--){let token=policyHeader[i-1].trim();if(referrerPolicyTokens.has(token)){policy=token;break}}return policy}function setRequestReferrerPolicyOnRedirect(request,actualResponse){let policy=parseReferrerPolicy(actualResponse);policy!==""&&(request.referrerPolicy=policy)}function crossOriginResourcePolicyCheck(){return"allowed"}function corsCheck(){return"success"}function TAOCheck(){return"success"}function appendFetchMetadata(httpRequest){if(!isURLPotentiallyTrustworthy(requestCurrentURL(httpRequest)))return;let header=null;header=httpRequest.mode,httpRequest.headersList.set("sec-fetch-mode",header,!0)}function appendRequestOriginHeader(request){let serializedOrigin=request.origin;if(!(serializedOrigin==="client"||serializedOrigin===void 0)){if(request.responseTainting==="cors"||request.mode==="websocket")request.headersList.append("origin",serializedOrigin,!0);else if(request.method!=="GET"&&request.method!=="HEAD"){switch(request.referrerPolicy){case"no-referrer":serializedOrigin=null;break;case"no-referrer-when-downgrade":case"strict-origin":case"strict-origin-when-cross-origin":request.origin&&urlHasHttpsScheme(request.origin)&&!urlHasHttpsScheme(requestCurrentURL(request))&&(serializedOrigin=null);break;case"same-origin":sameOrigin(request,requestCurrentURL(request))||(serializedOrigin=null);break;default:}request.headersList.append("origin",serializedOrigin,!0)}}}function coarsenTime(timestamp,crossOriginIsolatedCapability){return timestamp}function clampAndCoarsenConnectionTimingInfo(connectionTimingInfo,defaultStartTime,crossOriginIsolatedCapability){return!connectionTimingInfo?.startTime||connectionTimingInfo.startTime<defaultStartTime?{domainLookupStartTime:defaultStartTime,domainLookupEndTime:defaultStartTime,connectionStartTime:defaultStartTime,connectionEndTime:defaultStartTime,secureConnectionStartTime:defaultStartTime,ALPNNegotiatedProtocol:connectionTimingInfo?.ALPNNegotiatedProtocol}:{domainLookupStartTime:coarsenTime(connectionTimingInfo.domainLookupStartTime,crossOriginIsolatedCapability),domainLookupEndTime:coarsenTime(connectionTimingInfo.domainLookupEndTime,crossOriginIsolatedCapability),connectionStartTime:coarsenTime(connectionTimingInfo.connectionStartTime,crossOriginIsolatedCapability),connectionEndTime:coarsenTime(connectionTimingInfo.connectionEndTime,crossOriginIsolatedCapability),secureConnectionStartTime:coarsenTime(connectionTimingInfo.secureConnectionStartTime,crossOriginIsolatedCapability),ALPNNegotiatedProtocol:connectionTimingInfo.ALPNNegotiatedProtocol}}function coarsenedSharedCurrentTime(crossOriginIsolatedCapability){return coarsenTime(performance3.now(),crossOriginIsolatedCapability)}function createOpaqueTimingInfo(timingInfo){return{startTime:timingInfo.startTime??0,redirectStartTime:0,redirectEndTime:0,postRedirectStartTime:timingInfo.startTime??0,finalServiceWorkerStartTime:0,finalNetworkResponseStartTime:0,finalNetworkRequestStartTime:0,endTime:0,encodedBodySize:0,decodedBodySize:0,finalConnectionTimingInfo:null}}function makePolicyContainer(){return{referrerPolicy:"strict-origin-when-cross-origin"}}function clonePolicyContainer(policyContainer){return{referrerPolicy:policyContainer.referrerPolicy}}function determineRequestsReferrer(request){let policy=request.referrerPolicy;assert(policy);let referrerSource=null;if(request.referrer==="client"){let globalOrigin=getGlobalOrigin();if(!globalOrigin||globalOrigin.origin==="null")return"no-referrer";referrerSource=new URL(globalOrigin)}else webidl.is.URL(request.referrer)&&(referrerSource=request.referrer);let referrerURL=stripURLForReferrer(referrerSource),referrerOrigin=stripURLForReferrer(referrerSource,!0);switch(referrerURL.toString().length>4096&&(referrerURL=referrerOrigin),policy){case"no-referrer":return"no-referrer";case"origin":return referrerOrigin??stripURLForReferrer(referrerSource,!0);case"unsafe-url":return referrerURL;case"strict-origin":{let currentURL=requestCurrentURL(request);return isURLPotentiallyTrustworthy(referrerURL)&&!isURLPotentiallyTrustworthy(currentURL)?"no-referrer":referrerOrigin}case"strict-origin-when-cross-origin":{let currentURL=requestCurrentURL(request);return sameOrigin(referrerURL,currentURL)?referrerURL:isURLPotentiallyTrustworthy(referrerURL)&&!isURLPotentiallyTrustworthy(currentURL)?"no-referrer":referrerOrigin}case"same-origin":return sameOrigin(request,referrerURL)?referrerURL:"no-referrer";case"origin-when-cross-origin":return sameOrigin(request,referrerURL)?referrerURL:referrerOrigin;case"no-referrer-when-downgrade":{let currentURL=requestCurrentURL(request);return isURLPotentiallyTrustworthy(referrerURL)&&!isURLPotentiallyTrustworthy(currentURL)?"no-referrer":referrerURL}}}function stripURLForReferrer(url,originOnly=!1){return assert(webidl.is.URL(url)),url=new URL(url),urlIsLocal(url)?"no-referrer":(url.username="",url.password="",url.hash="",originOnly===!0&&(url.pathname="",url.search=""),url)}var isPotentialleTrustworthyIPv4=RegExp.prototype.test.bind(/^127\.(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]\d|\d)\.){2}(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]\d|\d)$/),isPotentiallyTrustworthyIPv6=RegExp.prototype.test.bind(/^(?:(?:0{1,4}:){7}|(?:0{1,4}:){1,6}:|::)0{0,3}1$/);function isOriginIPPotentiallyTrustworthy(origin){return origin.includes(":")?(origin[0]==="["&&origin[origin.length-1]==="]"&&(origin=origin.slice(1,-1)),isPotentiallyTrustworthyIPv6(origin)):isPotentialleTrustworthyIPv4(origin)}function isOriginPotentiallyTrustworthy(origin){return origin==null||origin==="null"?!1:(origin=new URL(origin),!!(origin.protocol==="https:"||origin.protocol==="wss:"||isOriginIPPotentiallyTrustworthy(origin.hostname)||origin.hostname==="localhost"||origin.hostname==="localhost."||origin.hostname.endsWith(".localhost")||origin.hostname.endsWith(".localhost.")||origin.protocol==="file:"))}function isURLPotentiallyTrustworthy(url){return webidl.is.URL(url)?url.href==="about:blank"||url.href==="about:srcdoc"||url.protocol==="data:"||url.protocol==="blob:"?!0:isOriginPotentiallyTrustworthy(url.origin):!1}function tryUpgradeRequestToAPotentiallyTrustworthyURL(request){}function sameOrigin(A2,B2){return A2.origin===B2.origin&&A2.origin==="null"||A2.protocol===B2.protocol&&A2.hostname===B2.hostname&&A2.port===B2.port}function isAborted(fetchParams){return fetchParams.controller.state==="aborted"}function isCancelled(fetchParams){return fetchParams.controller.state==="aborted"||fetchParams.controller.state==="terminated"}function normalizeMethod(method){return normalizedMethodRecordsBase[method.toLowerCase()]??method}var esIteratorPrototype=Object.getPrototypeOf(Object.getPrototypeOf([][Symbol.iterator]()));function createIterator(name,kInternalIterator,keyIndex=0,valueIndex=1){class FastIterableIterator{#target;#kind;#index;constructor(target,kind){this.#target=target,this.#kind=kind,this.#index=0}next(){if(typeof this!="object"||this===null||!(#target in this))throw new TypeError(`'next' called on an object that does not implement interface ${name} Iterator.`);let index3=this.#index,values=kInternalIterator(this.#target),len=values.length;if(index3>=len)return{value:void 0,done:!0};let{[keyIndex]:key,[valueIndex]:value}=values[index3];this.#index=index3+1;let result;switch(this.#kind){case"key":result=key;break;case"value":result=value;break;case"key+value":result=[key,value];break}return{value:result,done:!1}}}return delete FastIterableIterator.prototype.constructor,Object.setPrototypeOf(FastIterableIterator.prototype,esIteratorPrototype),Object.defineProperties(FastIterableIterator.prototype,{[Symbol.toStringTag]:{writable:!1,enumerable:!1,configurable:!0,value:`${name} Iterator`},next:{writable:!0,enumerable:!0,configurable:!0}}),function(target,kind){return new FastIterableIterator(target,kind)}}function iteratorMixin(name,object,kInternalIterator,keyIndex=0,valueIndex=1){let makeIterator=createIterator(name,kInternalIterator,keyIndex,valueIndex),properties={keys:{writable:!0,enumerable:!0,configurable:!0,value:function(){return webidl.brandCheck(this,object),makeIterator(this,"key")}},values:{writable:!0,enumerable:!0,configurable:!0,value:function(){return webidl.brandCheck(this,object),makeIterator(this,"value")}},entries:{writable:!0,enumerable:!0,configurable:!0,value:function(){return webidl.brandCheck(this,object),makeIterator(this,"key+value")}},forEach:{writable:!0,enumerable:!0,configurable:!0,value:function(callbackfn,thisArg=globalThis){if(webidl.brandCheck(this,object),webidl.argumentLengthCheck(arguments,1,`${name}.forEach`),typeof callbackfn!="function")throw new TypeError(`Failed to execute 'forEach' on '${name}': parameter 1 is not of type 'Function'.`);for(let{0:key,1:value}of makeIterator(this,"key+value"))callbackfn.call(thisArg,value,key,this)}}};return Object.defineProperties(object.prototype,{...properties,[Symbol.iterator]:{writable:!0,enumerable:!1,configurable:!0,value:properties.entries.value}})}function fullyReadBody(body,processBody,processBodyError){let successSteps=processBody,errorSteps=processBodyError;try{let reader=body.stream.getReader();readAllBytes(reader,successSteps,errorSteps)}catch(e){errorSteps(e)}}function readableStreamClose(controller){try{controller.close(),controller.byobRequest?.respond(0)}catch(err2){if(!err2.message.includes("Controller is already closed")&&!err2.message.includes("ReadableStream is already closed"))throw err2}}async function readAllBytes(reader,successSteps,failureSteps){try{let bytes=[],byteLength=0;do{let{done,value:chunk}=await reader.read();if(done){successSteps(Buffer.concat(bytes,byteLength));return}if(!isUint8Array(chunk)){failureSteps(new TypeError("Received non-Uint8Array chunk"));return}bytes.push(chunk),byteLength+=chunk.length}while(!0)}catch(e){failureSteps(e)}}function urlIsLocal(url){assert("protocol"in url);let protocol=url.protocol;return protocol==="about:"||protocol==="blob:"||protocol==="data:"}function urlHasHttpsScheme(url){return typeof url=="string"&&url[5]===":"&&url[0]==="h"&&url[1]==="t"&&url[2]==="t"&&url[3]==="p"&&url[4]==="s"||url.protocol==="https:"}function urlIsHttpHttpsScheme(url){assert("protocol"in url);let protocol=url.protocol;return protocol==="http:"||protocol==="https:"}function simpleRangeHeaderValue(value,allowWhitespace){let data=value;if(!data.startsWith("bytes"))return"failure";let position={position:5};if(allowWhitespace&&collectASequenceOfCodePoints(char=>char===" "||char===" ",data,position),data.charCodeAt(position.position)!==61)return"failure";position.position++,allowWhitespace&&collectASequenceOfCodePoints(char=>char===" "||char===" ",data,position);let rangeStart=collectASequenceOfCodePoints(char=>{let code=char.charCodeAt(0);return code>=48&&code<=57},data,position),rangeStartValue=rangeStart.length?Number(rangeStart):null;if(allowWhitespace&&collectASequenceOfCodePoints(char=>char===" "||char===" ",data,position),data.charCodeAt(position.position)!==45)return"failure";position.position++,allowWhitespace&&collectASequenceOfCodePoints(char=>char===" "||char===" ",data,position);let rangeEnd=collectASequenceOfCodePoints(char=>{let code=char.charCodeAt(0);return code>=48&&code<=57},data,position),rangeEndValue=rangeEnd.length?Number(rangeEnd):null;return position.position<data.length||rangeEndValue===null&&rangeStartValue===null||rangeStartValue!==null&&rangeEndValue!==null&&rangeStartValue>rangeEndValue?"failure":{rangeStartValue,rangeEndValue}}function buildContentRange(rangeStart,rangeEnd,fullLength){let contentRange="bytes ";return contentRange+=isomorphicEncode(`${rangeStart}`),contentRange+="-",contentRange+=isomorphicEncode(`${rangeEnd}`),contentRange+="/",contentRange+=isomorphicEncode(`${fullLength}`),contentRange}var InflateStream=class extends Transform2{#zlibOptions;constructor(zlibOptions){super(),this.#zlibOptions=zlibOptions}_transform(chunk,encoding,callback){if(!this._inflateStream){if(chunk.length===0){callback();return}this._inflateStream=(chunk[0]&15)===8?zlib.createInflate(this.#zlibOptions):zlib.createInflateRaw(this.#zlibOptions),this._inflateStream.on("data",this.push.bind(this)),this._inflateStream.on("end",()=>this.push(null)),this._inflateStream.on("error",err2=>this.destroy(err2))}this._inflateStream.write(chunk,encoding,callback)}_final(callback){this._inflateStream&&(this._inflateStream.end(),this._inflateStream=null),callback()}};function createInflate(zlibOptions){return new InflateStream(zlibOptions)}function extractMimeType(headers){let charset=null,essence=null,mimeType=null,values=getDecodeSplit("content-type",headers);if(values===null)return"failure";for(let value of values){let temporaryMimeType=parseMIMEType(value);temporaryMimeType==="failure"||temporaryMimeType.essence==="*/*"||(mimeType=temporaryMimeType,mimeType.essence!==essence?(charset=null,mimeType.parameters.has("charset")&&(charset=mimeType.parameters.get("charset")),essence=mimeType.essence):!mimeType.parameters.has("charset")&&charset!==null&&mimeType.parameters.set("charset",charset))}return mimeType??"failure"}function gettingDecodingSplitting(value){let input=value,position={position:0},values=[],temporaryValue="";for(;position.position<input.length;){if(temporaryValue+=collectASequenceOfCodePoints(char=>char!=='"'&&char!==",",input,position),position.position<input.length)if(input.charCodeAt(position.position)===34){if(temporaryValue+=collectAnHTTPQuotedString(input,position),position.position<input.length)continue}else assert(input.charCodeAt(position.position)===44),position.position++;temporaryValue=removeChars(temporaryValue,!0,!0,char=>char===9||char===32),values.push(temporaryValue),temporaryValue=""}return values}function getDecodeSplit(name,list){let value=list.get(name,!0);return value===null?null:gettingDecodingSplitting(value)}function hasAuthenticationEntry(request){return!1}function includesCredentials(url){return!!(url.username||url.password)}function isTraversableNavigable(navigable){return navigable!=null&&navigable!=="client"&&navigable!=="no-traversable"}var EnvironmentSettingsObjectBase=class{get baseUrl(){return getGlobalOrigin()}get origin(){return this.baseUrl?.origin}policyContainer=makePolicyContainer()},EnvironmentSettingsObject=class{settingsObject=new EnvironmentSettingsObjectBase},environmentSettingsObject=new EnvironmentSettingsObject;module.exports={isAborted,isCancelled,isValidEncodedURL,ReadableStreamFrom,tryUpgradeRequestToAPotentiallyTrustworthyURL,clampAndCoarsenConnectionTimingInfo,coarsenedSharedCurrentTime,determineRequestsReferrer,makePolicyContainer,clonePolicyContainer,appendFetchMetadata,appendRequestOriginHeader,TAOCheck,corsCheck,crossOriginResourcePolicyCheck,createOpaqueTimingInfo,setRequestReferrerPolicyOnRedirect,isValidHTTPToken,requestBadPort,requestCurrentURL,responseURL,responseLocationURL,isURLPotentiallyTrustworthy,isValidReasonPhrase,sameOrigin,normalizeMethod,iteratorMixin,createIterator,isValidHeaderName,isValidHeaderValue,isErrorLike,fullyReadBody,readableStreamClose,urlIsLocal,urlHasHttpsScheme,urlIsHttpHttpsScheme,readAllBytes,simpleRangeHeaderValue,buildContentRange,createInflate,extractMimeType,getDecodeSplit,environmentSettingsObject,isOriginIPPotentiallyTrustworthy,hasAuthenticationEntry,includesCredentials,isTraversableNavigable}}});var require_runtime_features=__commonJS({"packages/agent-forge/node_modules/undici/lib/util/runtime-features.js"(exports,module){"use strict";var lazyLoaders={__proto__:null,"node:crypto":()=>__require("node:crypto"),"node:sqlite":()=>__require("node:sqlite")};function detectRuntimeFeatureByNodeModule(moduleName){try{return lazyLoaders[moduleName](),!0}catch(err2){if(err2.code!=="ERR_UNKNOWN_BUILTIN_MODULE"&&err2.code!=="ERR_NO_CRYPTO")throw err2;return!1}}var runtimeFeaturesAsNodeModule=["crypto","sqlite"];function detectRuntimeFeature(feature){if(runtimeFeaturesAsNodeModule.includes(feature))return detectRuntimeFeatureByNodeModule(`node:${feature}`);throw new TypeError(`unknown feature: ${feature}`)}var RuntimeFeatures=class{#map=new Map;clear(){this.#map.clear()}has(feature){return this.#map.get(feature)??this.#detectRuntimeFeature(feature)}set(feature,value){if(runtimeFeaturesAsNodeModule.includes(feature)===!1)throw new TypeError(`unknown feature: ${feature}`);this.#map.set(feature,value)}#detectRuntimeFeature(feature){let result=detectRuntimeFeature(feature);return this.#map.set(feature,result),result}},instance=new RuntimeFeatures;module.exports.runtimeFeatures=instance;module.exports.default=instance}});var require_formdata=__commonJS({"packages/agent-forge/node_modules/undici/lib/web/fetch/formdata.js"(exports,module){"use strict";var{iteratorMixin}=require_util2(),{kEnumerableProperty}=require_util(),{webidl}=require_webidl(),nodeUtil=__require("node:util"),{runtimeFeatures}=require_runtime_features(),random=runtimeFeatures.has("crypto")?__require("node:crypto").randomInt:max=>Math.floor(Math.random()*max),FormData=class _FormData{#state=[];#boundary=null;constructor(form=void 0){if(webidl.util.markAsUncloneable(this),form!==void 0)throw webidl.errors.conversionFailed({prefix:"FormData constructor",argument:"Argument 1",types:["undefined"]})}append(name,value,filename=void 0){webidl.brandCheck(this,_FormData);let prefix="FormData.append";webidl.argumentLengthCheck(arguments,2,prefix),name=webidl.converters.USVString(name),arguments.length===3||webidl.is.Blob(value)?(value=webidl.converters.Blob(value,prefix,"value"),filename!==void 0&&(filename=webidl.converters.USVString(filename))):value=webidl.converters.USVString(value);let entry=makeEntry(name,value,filename);this.#state.push(entry)}delete(name){webidl.brandCheck(this,_FormData),webidl.argumentLengthCheck(arguments,1,"FormData.delete"),name=webidl.converters.USVString(name),this.#state=this.#state.filter(entry=>entry.name!==name)}get(name){webidl.brandCheck(this,_FormData),webidl.argumentLengthCheck(arguments,1,"FormData.get"),name=webidl.converters.USVString(name);let idx=this.#state.findIndex(entry=>entry.name===name);return idx===-1?null:this.#state[idx].value}getAll(name){return webidl.brandCheck(this,_FormData),webidl.argumentLengthCheck(arguments,1,"FormData.getAll"),name=webidl.converters.USVString(name),this.#state.filter(entry=>entry.name===name).map(entry=>entry.value)}has(name){return webidl.brandCheck(this,_FormData),webidl.argumentLengthCheck(arguments,1,"FormData.has"),name=webidl.converters.USVString(name),this.#state.findIndex(entry=>entry.name===name)!==-1}set(name,value,filename=void 0){webidl.brandCheck(this,_FormData);let prefix="FormData.set";webidl.argumentLengthCheck(arguments,2,prefix),name=webidl.converters.USVString(name),arguments.length===3||webidl.is.Blob(value)?(value=webidl.converters.Blob(value,prefix,"value"),filename!==void 0&&(filename=webidl.converters.USVString(filename))):value=webidl.converters.USVString(value);let entry=makeEntry(name,value,filename),idx=this.#state.findIndex(entry2=>entry2.name===name);idx!==-1?this.#state=[...this.#state.slice(0,idx),entry,...this.#state.slice(idx+1).filter(entry2=>entry2.name!==name)]:this.#state.push(entry)}[nodeUtil.inspect.custom](depth,options){let state2=this.#state.reduce((a,b2)=>(a[b2.name]?Array.isArray(a[b2.name])?a[b2.name].push(b2.value):a[b2.name]=[a[b2.name],b2.value]:a[b2.name]=b2.value,a),{__proto__:null});options.depth??=depth,options.colors??=!0;let output=nodeUtil.formatWithOptions(options,state2);return`FormData ${output.slice(output.indexOf("]")+2)}`}static getFormDataState(formData){return formData.#state}static setFormDataState(formData,newState){formData.#state=newState}static getFormDataBoundary(formData){let boundary=formData.#boundary;return boundary??(formData.#boundary=`----formdata-undici-0${`${random(1e11)}`.padStart(11,"0")}`)}},{getFormDataState,setFormDataState,getFormDataBoundary}=FormData;Reflect.deleteProperty(FormData,"getFormDataState");Reflect.deleteProperty(FormData,"setFormDataState");Reflect.deleteProperty(FormData,"getFormDataBoundary");iteratorMixin("FormData",FormData,getFormDataState,"name","value");Object.defineProperties(FormData.prototype,{append:kEnumerableProperty,delete:kEnumerableProperty,get:kEnumerableProperty,getAll:kEnumerableProperty,has:kEnumerableProperty,set:kEnumerableProperty,[Symbol.toStringTag]:{value:"FormData",configurable:!0}});function makeEntry(name,value,filename){if(typeof value!="string"){if(webidl.is.File(value)||(value=new File([value],"blob",{type:value.type})),filename!==void 0){let options={type:value.type,lastModified:value.lastModified};value=new File([value],filename,options)}}return{name,value}}webidl.is.FormData=webidl.util.MakeTypeAssertion(FormData);module.exports={FormData,makeEntry,setFormDataState,getFormDataBoundary}}});var require_formdata_parser=__commonJS({"packages/agent-forge/node_modules/undici/lib/web/fetch/formdata-parser.js"(exports,module){"use strict";var{bufferToLowerCasedHeaderName}=require_util(),{HTTP_TOKEN_CODEPOINTS}=require_data_url(),{makeEntry}=require_formdata(),{webidl}=require_webidl(),assert=__require("node:assert"),{isomorphicDecode}=require_infra(),dd=Buffer.from("--"),decoder=new TextDecoder,decoderIgnoreBOM=new TextDecoder("utf-8",{ignoreBOM:!0});function isAsciiString(chars){for(let i=0;i<chars.length;++i)if((chars.charCodeAt(i)&-128)!==0)return!1;return!0}function validateBoundary(boundary){let length=boundary.length;if(length<27||length>70)return!1;for(let i=0;i<length;++i){let cp=boundary.charCodeAt(i);if(!(cp>=48&&cp<=57||cp>=65&&cp<=90||cp>=97&&cp<=122||cp===39||cp===45||cp===95))return!1}return!0}function multipartFormDataParser(input,mimeType){assert(mimeType!=="failure"&&mimeType.essence==="multipart/form-data");let boundaryString=mimeType.parameters.get("boundary");if(boundaryString===void 0)throw parsingError("missing boundary in content-type header");let boundary=Buffer.from(`--${boundaryString}`,"utf8"),entryList=[],position={position:0},firstBoundaryIndex=input.indexOf(boundary);if(firstBoundaryIndex===-1)throw parsingError("no boundary found in multipart body");for(position.position=firstBoundaryIndex;;){if(input.subarray(position.position,position.position+boundary.length).equals(boundary))position.position+=boundary.length;else throw parsingError("expected a value starting with -- and the boundary");if(bufferStartsWith(input,dd,position))return entryList;if(input[position.position]!==13||input[position.position+1]!==10)throw parsingError("expected CRLF");position.position+=2;let result=parseMultipartFormDataHeaders(input,position),{name,filename,contentType,encoding}=result;position.position+=2;let body;{let boundaryIndex=input.indexOf(boundary.subarray(2),position.position);if(boundaryIndex===-1)throw parsingError("expected boundary after body");body=input.subarray(position.position,boundaryIndex-4),position.position+=body.length,encoding==="base64"&&(body=Buffer.from(body.toString(),"base64"))}if(input[position.position]!==13||input[position.position+1]!==10)throw parsingError("expected CRLF");position.position+=2;let value;filename!==null?(contentType??="text/plain",isAsciiString(contentType)||(contentType=""),value=new File([body],filename,{type:contentType})):value=decoderIgnoreBOM.decode(Buffer.from(body)),assert(webidl.is.USVString(name)),assert(typeof value=="string"&&webidl.is.USVString(value)||webidl.is.File(value)),entryList.push(makeEntry(name,value,filename))}}function parseContentDispositionAttribute(input,position){input[position.position]===59&&position.position++,collectASequenceOfBytes(char=>char===32||char===9,input,position);let attributeName=collectASequenceOfBytes(char=>isToken(char)&&char!==61&&char!==42,input,position);if(attributeName.length===0)return null;let attrNameStr=attributeName.toString("ascii").toLowerCase(),isExtended=input[position.position]===42;if(isExtended&&position.position++,input[position.position]!==61)return null;position.position++,collectASequenceOfBytes(char=>char===32||char===9,input,position);let value;if(isExtended){let headerValue=collectASequenceOfBytes(char=>char!==32&&char!==13&&char!==10&&char!==59,input,position);if(headerValue[0]!==117&&headerValue[0]!==85||headerValue[1]!==116&&headerValue[1]!==84||headerValue[2]!==102&&headerValue[2]!==70||headerValue[3]!==45||headerValue[4]!==56)throw parsingError("unknown encoding, expected utf-8''");value=decodeURIComponent(decoder.decode(headerValue.subarray(7)))}else if(input[position.position]===34){position.position++;let quotedValue=collectASequenceOfBytes(char=>char!==10&&char!==13&&char!==34,input,position);if(input[position.position]!==34)throw parsingError("Closing quote not found");position.position++,value=decoder.decode(quotedValue).replace(/%0A/ig,`
|
|
4
4
|
`).replace(/%0D/ig,"\r").replace(/%22/g,'"')}else{let tokenValue=collectASequenceOfBytes(char=>isToken(char)&&char!==59,input,position);value=decoder.decode(tokenValue)}return{name:attrNameStr,value,extended:isExtended}}function parseMultipartFormDataHeaders(input,position){let name=null,filename=null,contentType=null,encoding=null;for(;;){if(input[position.position]===13&&input[position.position+1]===10){if(name===null)throw parsingError("header name is null");return{name,filename,contentType,encoding}}let headerName=collectASequenceOfBytes(char=>char!==10&&char!==13&&char!==58,input,position);if(headerName=removeChars(headerName,!0,!0,char=>char===9||char===32),!HTTP_TOKEN_CODEPOINTS.test(headerName.toString()))throw parsingError("header name does not match the field-name token production");if(input[position.position]!==58)throw parsingError("expected :");switch(position.position++,collectASequenceOfBytes(char=>char===32||char===9,input,position),bufferToLowerCasedHeaderName(headerName)){case"content-disposition":{name=filename=null;let filenameIsExtended=!1;if(collectASequenceOfBytes(char=>isToken(char),input,position).toString("ascii").toLowerCase()!=="form-data")throw parsingError("expected form-data for content-disposition header");for(;position.position<input.length&&(input[position.position]!==13||input[position.position+1]!==10);){let attribute=parseContentDispositionAttribute(input,position);if(!attribute)break;attribute.name==="name"?name=attribute.value:attribute.name==="filename"&&(attribute.extended?(filename=attribute.value,filenameIsExtended=!0):filenameIsExtended||(filename=attribute.value))}if(name===null)throw parsingError("name attribute is required in content-disposition header");break}case"content-type":{let headerValue=collectASequenceOfBytes(char=>char!==10&&char!==13,input,position);headerValue=removeChars(headerValue,!1,!0,char=>char===9||char===32),contentType=isomorphicDecode(headerValue);break}case"content-transfer-encoding":{let headerValue=collectASequenceOfBytes(char=>char!==10&&char!==13,input,position);headerValue=removeChars(headerValue,!1,!0,char=>char===9||char===32),encoding=isomorphicDecode(headerValue);break}default:collectASequenceOfBytes(char=>char!==10&&char!==13,input,position)}if(input[position.position]!==13||input[position.position+1]!==10)throw parsingError("expected CRLF");position.position+=2}}function collectASequenceOfBytes(condition,input,position){let start=position.position;for(;start<input.length&&condition(input[start]);)++start;return input.subarray(position.position,position.position=start)}function removeChars(buf,leading,trailing,predicate){let lead=0,trail=buf.length-1;if(leading)for(;lead<buf.length&&predicate(buf[lead]);)lead++;if(trailing)for(;trail>0&&predicate(buf[trail]);)trail--;return lead===0&&trail===buf.length-1?buf:buf.subarray(lead,trail+1)}function bufferStartsWith(buffer,start,position){if(buffer.length<start.length)return!1;for(let i=0;i<start.length;i++)if(start[i]!==buffer[position.position+i])return!1;return!0}function parsingError(cause){return new TypeError("Failed to parse body as FormData.",{cause:new TypeError(cause)})}function isCTL(char){return char<=31||char===127}function isTSpecial(char){return char===40||char===41||char===60||char===62||char===64||char===44||char===59||char===58||char===92||char===34||char===47||char===91||char===93||char===63||char===61}function isToken(char){return char<=127&&char!==32&&char!==9&&!isCTL(char)&&!isTSpecial(char)}module.exports={multipartFormDataParser,validateBoundary}}});var require_body=__commonJS({"packages/agent-forge/node_modules/undici/lib/web/fetch/body.js"(exports,module){"use strict";var util=require_util(),{ReadableStreamFrom,readableStreamClose,fullyReadBody,extractMimeType}=require_util2(),{FormData,setFormDataState,getFormDataBoundary}=require_formdata(),{webidl}=require_webidl(),assert=__require("node:assert"),{isErrored,isDisturbed}=__require("node:stream"),{isUint8Array}=__require("node:util/types"),{serializeAMimeType}=require_data_url(),{multipartFormDataParser}=require_formdata_parser(),{parseJSONFromBytes}=require_infra(),{utf8DecodeBytes}=require_encoding(),{ReadableStreamTee}=__require("node:stream/web"),textEncoder2=new TextEncoder;function noop(){}var streamRegistry=new FinalizationRegistry(weakRef=>{let stream2=weakRef.deref();stream2&&!stream2.locked&&!isDisturbed(stream2)&&!isErrored(stream2)&&stream2.cancel("Response object has been garbage collected").catch(noop)});function extractBody(object,keepalive=!1){let stream2=null,controller=null;webidl.is.ReadableStream(object)?stream2=object:webidl.is.Blob(object)?stream2=object.stream():stream2=new ReadableStream({pull(){},start(c2){controller=c2},cancel(){},type:"bytes"}),assert(webidl.is.ReadableStream(stream2));let action=null,source=null,length=null,type=null;if(typeof object=="string")source=object,type="text/plain;charset=UTF-8";else if(webidl.is.URLSearchParams(object))source=object.toString(),type="application/x-www-form-urlencoded;charset=UTF-8";else if(webidl.is.BufferSource(object))source=webidl.util.getCopyOfBytesHeldByBufferSource(object);else if(webidl.is.FormData(object)){let boundary=getFormDataBoundary(object),prefix=`--${boundary}\r
|
|
5
5
|
Content-Disposition: form-data`;let formdataEscape=str2=>str2.replace(/\n/g,"%0A").replace(/\r/g,"%0D").replace(/"/g,"%22"),normalizeLinefeeds=value=>value.replace(/\r?\n|\r/g,`\r
|
|
@@ -393,14 +393,14 @@ Please report this to https://github.com/markedjs/marked.`,e){let s="<p>An error
|
|
|
393
393
|
`);fs2.mkdirSync(path4.dirname(crashLogPath),{recursive:!0}),fs2.writeFileSync(crashLogPath,crashData),this.stop();let errorMsg=[`Rendered line ${i} exceeds terminal width (${visibleWidth(line)} > ${width}).`,"","This is likely caused by a custom TUI component not truncating its output.","Use visibleWidth() to measure and truncateToWidth() to truncate lines.","",`Debug log written to: ${crashLogPath}`].join(`
|
|
394
394
|
`);throw new Error(errorMsg)}output.append(line)}let finalCursorRow=renderEnd;if(this.previousLines.length>newLines.length){if(renderEnd<newLines.length-1){let moveDown=newLines.length-1-renderEnd;output.append(`\x1B[${moveDown}B`),finalCursorRow=newLines.length-1}let extraLines=this.previousLines.length-newLines.length;for(let i=newLines.length;i<this.previousLines.length;i++)output.append(`\r
|
|
395
395
|
\x1B[2K`);output.append(`\x1B[${extraLines}A`)}if(output.append("\x1B[?2026l"),process.env.AGENT_FORGE_TUI_DEBUG==="1"){let debugDir="/tmp/tui";fs2.mkdirSync(debugDir,{recursive:!0});let debugPath=path4.join(debugDir,`render-${Date.now()}-${Math.random().toString(36).slice(2)}.log`),debugData=[`firstChanged: ${firstChanged}`,`viewportTop: ${viewportTop}`,`cursorRow: ${this.cursorRow}`,`height: ${height}`,`lineDiff: ${lineDiff2}`,`hardwareCursorRow: ${hardwareCursorRow}`,`renderEnd: ${renderEnd}`,`finalCursorRow: ${finalCursorRow}`,`cursorPos: ${JSON.stringify(cursorPos)}`,`newLines.length: ${newLines.length}`,`previousLines.length: ${this.previousLines.length}`,"","=== newLines ===",JSON.stringify(newLines,null,2),"","=== previousLines ===",JSON.stringify(this.previousLines,null,2),"","=== buffer ===",`[${output.length} chars written in bounded chunks]`].join(`
|
|
396
|
-
`);fs2.writeFileSync(debugPath,debugData)}output.flush(),this.cursorRow=Math.max(0,newLines.length-1),this.hardwareCursorRow=finalCursorRow,this.maxLinesRendered=Math.max(this.maxLinesRendered,newLines.length),this.previousViewportTop=Math.max(prevViewportTop,finalCursorRow-height+1),this.positionHardwareCursor(cursorPos,newLines.length),this.previousLines=newLines,this.previousKittyImageIds=this.collectKittyImageIds(newLines),this.previousWidth=width,this.previousHeight=height}positionHardwareCursor(cursorPos,totalLines){if(!cursorPos||totalLines<=0){this.terminal.hideCursor();return}let targetRow=Math.max(0,Math.min(cursorPos.row,totalLines-1)),targetCol=Math.max(0,cursorPos.col),rowDelta=targetRow-this.hardwareCursorRow,buffer="";rowDelta>0?buffer+=`\x1B[${rowDelta}B`:rowDelta<0&&(buffer+=`\x1B[${-rowDelta}A`),buffer+=`\x1B[${targetCol+1}G`,buffer&&this.terminal.write(buffer),this.hardwareCursorRow=targetRow,this.getShowHardwareCursor()?this.terminal.showCursor():this.terminal.hideCursor()}};var EXPERIMENTAL_PUBLIC_API_VERSION="1-draft",LifecycleTransformError=class extends Error{report;cause;constructor(cause,report){super("Lifecycle transform failed"),this.name="LifecycleTransformError",this.cause=cause,this.report=report}},LifecycleExecuteError=class extends Error{report;cause;constructor(cause,report){super("Lifecycle execute failed"),this.name="LifecycleExecuteError",this.cause=cause,this.report=report}},AGENT_TASK_CHILD_PROFILE_KEY="agent-forge.agentTaskChildProfile",AGENT_TASK_PARENT_SESSION_KEY="agent-forge.agentTaskParentSession",AGENT_TASK_PARENT_TRACE_KEY="agent-forge.agentTaskParentTrace",AGENT_TASK_RESUME_SESSION_KEY="agent-forge.agentTaskResumeSession",CHILD_PROFILE_KEYS=["version","model","thinkingLevel","tools","mode","systemPromptAppend","roleId"],CHILD_PROFILE_TOOL_LIMIT=64,CHILD_PROFILE_APPEND_CHARS=8e3,CHILD_PROFILE_THINKING_LEVELS=["minimal","low","medium","high","xhigh","max"];function parseAgentTaskChildProfileV1(value){if(value===null||typeof value!="object"||Array.isArray(value))return{ok:!1,message:"child task profile must be an object"};let record=value;for(let key of Object.keys(record))if(!CHILD_PROFILE_KEYS.includes(key))return{ok:!1,message:`child task profile has unknown key ${JSON.stringify(key)} (known: ${CHILD_PROFILE_KEYS.join(", ")})`};if(record.version!==1)return{ok:!1,message:`child task profile version must be 1, found ${JSON.stringify(record.version)}`};let model;if(record.model!==void 0){if(typeof record.model!="string"||record.model.trim()==="")return{ok:!1,message:"child task profile model must be a non-empty string"};model=record.model}let thinkingLevel;if(record.thinkingLevel!==void 0){if(typeof record.thinkingLevel!="string"||!CHILD_PROFILE_THINKING_LEVELS.includes(record.thinkingLevel))return{ok:!1,message:`child task profile thinkingLevel must be one of ${CHILD_PROFILE_THINKING_LEVELS.join(", ")}, found `+JSON.stringify(record.thinkingLevel)};thinkingLevel=record.thinkingLevel}let tools;if(record.tools!==void 0){if(!Array.isArray(record.tools)||record.tools.length>CHILD_PROFILE_TOOL_LIMIT)return{ok:!1,message:`child task profile tools must be an array of at most ${CHILD_PROFILE_TOOL_LIMIT} names`};let names2=new Set;for(let entry of record.tools){if(typeof entry!="string"||entry.trim()==="")return{ok:!1,message:"child task profile tools entries must be non-empty strings"};names2.add(entry)}tools=Object.freeze([...names2])}let mode;if(record.mode!==void 0){if(record.mode!=="readonly"&&record.mode!=="full-control")return{ok:!1,message:'child task profile mode must be "readonly" or "full-control"'};mode=record.mode}let roleId;if(record.roleId!==void 0){if(typeof record.roleId!="string"||record.roleId.trim()==="")return{ok:!1,message:"child task profile roleId must be a non-empty string"};roleId=record.roleId}let systemPromptAppend;if(record.systemPromptAppend!==void 0){if(typeof record.systemPromptAppend!="string"||record.systemPromptAppend.trim()===""||record.systemPromptAppend.length>CHILD_PROFILE_APPEND_CHARS)return{ok:!1,message:`child task profile systemPromptAppend must be a non-empty string of at most ${CHILD_PROFILE_APPEND_CHARS} chars`};systemPromptAppend=record.systemPromptAppend}return{ok:!0,profile:Object.freeze({version:1,...model===void 0?{}:{model},...thinkingLevel===void 0?{}:{thinkingLevel},...tools===void 0?{}:{tools},...mode===void 0?{}:{mode},...systemPromptAppend===void 0?{}:{systemPromptAppend},...roleId===void 0?{}:{roleId}})}}function readAgentTaskChildProfileV1(metadata){let raw=metadata?.[AGENT_TASK_CHILD_PROFILE_KEY];if(raw!==void 0)return parseAgentTaskChildProfileV1(raw)}var SUMMARY_MODEL_INVOCATION_ERROR_CODES={providerError:"summary_provider_error",lengthCap:"summary_length_cap",toolCall:"summary_tool_call",transportError:"summary_transport_error"};function createDisposableRegistration(kind,dispose,id){let disposed=!1;return{id,kind,dispose:()=>{if(!disposed)return disposed=!0,dispose()}}}function createEventEnvelope(event,options){return{...event,id:options.id,timestamp:options.timestamp??0}}function detachedSessionSnapshot(value){let clone=structuredClone(value),freeze=candidate=>{if(!(!candidate||typeof candidate!="object")&&!ArrayBuffer.isView(candidate)){for(let child of Object.values(candidate))freeze(child);Object.freeze(candidate)}};return freeze(clone),clone}var import_semver=__toESM(require_semver2(),1);function isStringArray(value){return Array.isArray(value)&&value.every(entry=>typeof entry=="string")}function isObject(value){return typeof value=="object"&&value!==null&&!Array.isArray(value)}function isJsonConfigValue(value){return value===null||typeof value=="boolean"||typeof value=="string"?!0:typeof value=="number"?Number.isFinite(value):Array.isArray(value)?value.every(isJsonConfigValue):isObject(value)?Object.values(value).every(isJsonConfigValue):!1}function assertPluginCapabilityId(value,field,manifestPath){if(typeof value!="string"||!value.trim())throw new Error(`Capability plugin ${field} must be a non-empty string: ${manifestPath}`)}function assertPluginCapabilityVersion(value,field,manifestPath){if(typeof value!="number"||!Number.isSafeInteger(value)||value<1)throw new Error(`Capability plugin ${field} must be a positive safe integer: ${manifestPath}`)}function capabilityKey(id,version){return`${id}\0${version}`}function parsePluginAgentRoles(value,manifestPath){if(value===void 0)return;if(!Array.isArray(value))throw new Error(`Capability plugin roles must be an array: ${manifestPath}`);let roles=[],seen=new Set;for(let[index3,role]of value.entries()){if(role!=="root-agent-controller"&&role!=="child-agent-controller")throw new Error(`Capability plugin roles[${index3}] is invalid: ${manifestPath}`);if(seen.has(role))throw new Error(`Capability plugin roles duplicates ${role}: ${manifestPath}`);seen.add(role),roles.push(role)}return roles}function parsePluginAgentDeclarations(value,roles,manifestPath){if(value===void 0)return;if(!Array.isArray(value))throw new Error(`Capability plugin agents must be an array: ${manifestPath}`);let declarations=[],seen=new Set;for(let[index3,candidate]of value.entries()){if(!isObject(candidate))throw new Error(`Capability plugin agents[${index3}] must be an object: ${manifestPath}`);let{id,version,role,entry}=candidate;if(assertPluginCapabilityId(id,`agents[${index3}].id`,manifestPath),assertPluginCapabilityVersion(version,`agents[${index3}].version`,manifestPath),role!=="root-agent-controller"&&role!=="child-agent-controller")throw new Error(`Capability plugin agents[${index3}].role is invalid: ${manifestPath}`);if(typeof entry!="string"||!entry.trim())throw new Error(`Capability plugin agents[${index3}].entry must be a non-empty string: ${manifestPath}`);if(roles!==void 0&&!roles.includes(role))throw new Error(`Capability plugin agents[${index3}].role is not declared in roles: ${manifestPath}`);let key=capabilityKey(id,version);if(seen.has(key))throw new Error(`Capability plugin agents duplicates ${id}@${version}: ${manifestPath}`);seen.add(key),declarations.push({id,version,role,entry})}return declarations}function parsePluginCapabilityDeclarations(value,manifestPath){if(value===void 0)return;if(!Array.isArray(value))throw new Error(`Capability plugin provides must be an array: ${manifestPath}`);let declarations=[],seen=new Set;for(let[index3,candidate]of value.entries()){if(!isObject(candidate))throw new Error(`Capability plugin provides[${index3}] must be an object: ${manifestPath}`);let{id,version,kind}=candidate;if(assertPluginCapabilityId(id,`provides[${index3}].id`,manifestPath),assertPluginCapabilityVersion(version,`provides[${index3}].version`,manifestPath),kind!=="service"&&kind!=="contribution"&&kind!=="transform")throw new Error(`Capability plugin provides[${index3}].kind is invalid: ${manifestPath}`);let key=capabilityKey(id,version);if(seen.has(key))throw new Error(`Capability plugin provides duplicates ${id}@${version}: ${manifestPath}`);seen.add(key),declarations.push({id,version,kind})}return declarations}function parsePluginCapabilityRequirements(value,manifestPath){if(value===void 0)return;if(!Array.isArray(value))throw new Error(`Capability plugin requires must be an array: ${manifestPath}`);let requirements=[],seen=new Set;for(let[index3,candidate]of value.entries()){if(!isObject(candidate))throw new Error(`Capability plugin requires[${index3}] must be an object: ${manifestPath}`);let{id,version,optional}=candidate;if(assertPluginCapabilityId(id,`requires[${index3}].id`,manifestPath),assertPluginCapabilityVersion(version,`requires[${index3}].version`,manifestPath),optional!==void 0&&typeof optional!="boolean")throw new Error(`Capability plugin requires[${index3}].optional must be a boolean: ${manifestPath}`);let key=capabilityKey(id,version);if(seen.has(key))throw new Error(`Capability plugin requires duplicates ${id}@${version}: ${manifestPath}`);seen.add(key),requirements.push(optional===void 0?{id,version}:{id,version,optional})}return requirements}function parseCapabilityPluginManifest(value,manifestPath="<manifest>"){if(!isObject(value))throw new Error(`Capability plugin manifest must be an object: ${manifestPath}`);let{id,version,description,hostVersion,apiVersion,entry,requiredCapabilities,optionalCapabilities,provides,requires,roles,agents,activation,manual,config}=value;if(typeof id!="string"||typeof version!="string"||typeof apiVersion!="string"||typeof entry!="string")throw new Error(`Capability plugin manifest requires string id, version, apiVersion, and entry: ${manifestPath}`);if(apiVersion!==EXPERIMENTAL_PUBLIC_API_VERSION)throw new Error(`Unsupported plugin API version: ${apiVersion}: ${manifestPath}`);if(hostVersion!==void 0&&(typeof hostVersion!="string"||hostVersion.trim()===""||(0,import_semver.validRange)(hostVersion)===null))throw new Error(`Capability plugin hostVersion must be a non-empty string containing a valid semver range (e.g. ">=0.84.0"): ${manifestPath}`);if(requiredCapabilities!==void 0&&!isStringArray(requiredCapabilities))throw new Error(`Capability plugin requiredCapabilities must be a string array: ${manifestPath}`);if(optionalCapabilities!==void 0&&!isStringArray(optionalCapabilities))throw new Error(`Capability plugin optionalCapabilities must be a string array: ${manifestPath}`);if(config!==void 0&&(!isObject(config)||!isJsonConfigValue(config)))throw new Error(`Capability plugin config must be a JSON object: ${manifestPath}`);if(description!==void 0&&(typeof description!="string"||!description.trim()))throw new Error(`Capability plugin description must be a non-empty string: ${manifestPath}`);if(description!==void 0&&description.length>200)throw new Error(`Capability plugin description must be at most 200 characters: ${manifestPath}`);if(activation!==void 0&&activation!=="always"&&activation!=="on-demand")throw new Error(`Capability plugin activation must be "always" or "on-demand": ${manifestPath}`);if(manual!==void 0&&(typeof manual!="string"||!manual.trim()))throw new Error(`Capability plugin manual must be a non-empty string: ${manifestPath}`);let parsedProvides=parsePluginCapabilityDeclarations(provides,manifestPath),parsedRequires=parsePluginCapabilityRequirements(requires,manifestPath),parsedRoles=parsePluginAgentRoles(roles,manifestPath),parsedAgents=parsePluginAgentDeclarations(agents,parsedRoles,manifestPath);return{id,version,...description===void 0?{}:{description},apiVersion,entry,requiredCapabilities,optionalCapabilities,...hostVersion===void 0?{}:{hostVersion},...parsedProvides===void 0?{}:{provides:parsedProvides},...parsedRequires===void 0?{}:{requires:parsedRequires},...parsedRoles===void 0?{}:{roles:parsedRoles},...parsedAgents===void 0?{}:{agents:parsedAgents},...activation===void 0?{}:{activation},...manual===void 0?{}:{manual},...config===void 0?{}:{config}}}var MEMORY_RECALL_TOOL_NAME="memory_recall";var dist_exports2={};__export(dist_exports2,{AGENT_TASK_CHILD_PROFILE_KEY:()=>AGENT_TASK_CHILD_PROFILE_KEY,AGENT_TASK_PARENT_SESSION_KEY:()=>AGENT_TASK_PARENT_SESSION_KEY,AGENT_TASK_PARENT_TRACE_KEY:()=>AGENT_TASK_PARENT_TRACE_KEY,AGENT_TASK_RESUME_SESSION_KEY:()=>AGENT_TASK_RESUME_SESSION_KEY,DEFAULT_PLUGIN_CONTEXT_BUDGET_V1:()=>DEFAULT_PLUGIN_CONTEXT_BUDGET_V1,EXPERIMENTAL_PUBLIC_API_VERSION:()=>EXPERIMENTAL_PUBLIC_API_VERSION,LifecycleExecuteError:()=>LifecycleExecuteError,LifecycleTransformError:()=>LifecycleTransformError,MAX_ARTIFACT_METADATA_CHARS_V1:()=>MAX_ARTIFACT_METADATA_CHARS_V1,MAX_ARTIFACT_REF_CHARS_V1:()=>MAX_ARTIFACT_REF_CHARS_V1,MEMORY_RECALL_TOOL_NAME:()=>MEMORY_RECALL_TOOL_NAME,PLUGIN_OPERATION_TERMINAL_STATUSES_V1:()=>PLUGIN_OPERATION_TERMINAL_STATUSES_V1,PLUGIN_SHARED_CONTRACT_VERSION_V1:()=>PLUGIN_SHARED_CONTRACT_VERSION_V1,SUMMARY_MODEL_INVOCATION_ERROR_CODES:()=>SUMMARY_MODEL_INVOCATION_ERROR_CODES,TRACE_KINDS_V1:()=>TRACE_KINDS_V1,artifactRefKeyV1:()=>artifactRefKeyV1,assertExactKeys:()=>assertExactKeys,assertFiniteNumber:()=>assertFiniteNumber,assertJsonResultInputV1:()=>assertJsonResultInputV1,assertJsonValue:()=>assertJsonValue,assertNonEmptyString:()=>assertNonEmptyString,assertNonNegativeNumber:()=>assertNonNegativeNumber,assertNonNegativeSafeInteger:()=>assertNonNegativeSafeInteger,assertOptionalString:()=>assertOptionalString,assertPlainRecord:()=>assertPlainRecord,assertPositiveSafeInteger:()=>assertPositiveSafeInteger,buildArtifactRefV1:()=>buildArtifactRefV1,buildDiffRequestV1:()=>buildDiffRequestV1,buildDiffResultV1:()=>buildDiffResultV1,buildEvidenceRefV1:()=>buildEvidenceRefV1,buildPluginErrorV1:()=>buildPluginErrorV1,buildPluginOperationV1:()=>buildPluginOperationV1,buildPluginResultV1:()=>buildPluginResultV1,buildRenderRequestV1:()=>buildRenderRequestV1,buildRenderResultV1:()=>buildRenderResultV1,buildVerificationV1:()=>buildVerificationV1,createDisposableRegistration:()=>createDisposableRegistration,createEventEnvelope:()=>createEventEnvelope,detachedFreeze:()=>detachedFreeze,detachedSessionSnapshot:()=>detachedSessionSnapshot,isArtifactRefV1:()=>isArtifactRefV1,isPlainRecord:()=>isPlainRecord,parseAgentTaskChildProfileV1:()=>parseAgentTaskChildProfileV1,parseCapabilityPluginManifest:()=>parseCapabilityPluginManifest,projectPluginContextV1:()=>projectPluginContextV1,readAgentTaskChildProfileV1:()=>readAgentTaskChildProfileV1,sortByKey:()=>sortByKey,stableStringifyV1:()=>stableStringifyV1,validateArtifactRefV1:()=>validateArtifactRefV1,validateDiffRequestV1:()=>validateDiffRequestV1,validateDiffResultV1:()=>validateDiffResultV1,validateEvidenceRefV1:()=>validateEvidenceRefV1,validatePluginErrorV1:()=>validatePluginErrorV1,validatePluginOperationV1:()=>validatePluginOperationV1,validatePluginResultV1:()=>validatePluginResultV1,validateRenderRequestV1:()=>validateRenderRequestV1,validateRenderResultV1:()=>validateRenderResultV1,validateVerificationV1:()=>validateVerificationV1});var PLUGIN_SHARED_CONTRACT_VERSION_V1=1;function isPlainRecord(value){if(value===null||typeof value!="object"||Array.isArray(value))return!1;let prototype=Object.getPrototypeOf(value);return prototype===Object.prototype||prototype===null}function assertPlainRecord(value,label){if(!isPlainRecord(value))throw new Error(`${label} must be a plain object`)}function assertExactKeys(value,required,optional,label){let allowed=new Set([...required,...optional]),unsupported=Object.keys(value).filter(key=>!allowed.has(key)).sort();if(unsupported.length>0)throw new Error(`${label} has unsupported fields: ${unsupported.join(", ")}`);for(let key of required)if(!(key in value))throw new Error(`${label} is missing required field: ${key}`)}function assertNonEmptyString(value,label){if(typeof value!="string"||value.trim().length===0)throw new Error(`${label} must be a non-empty string`)}function assertOptionalString(value,label){value!==void 0&&assertNonEmptyString(value,label)}function assertFiniteNumber(value,label){if(typeof value!="number"||!Number.isFinite(value))throw new Error(`${label} must be a finite number`)}function assertNonNegativeNumber(value,label){if(assertFiniteNumber(value,label),value<0)throw new Error(`${label} must be non-negative`)}function assertPositiveSafeInteger(value,label){if(typeof value!="number"||!Number.isSafeInteger(value)||value<1)throw new Error(`${label} must be a positive safe integer`)}function assertNonNegativeSafeInteger(value,label){if(typeof value!="number"||!Number.isSafeInteger(value)||value<0)throw new Error(`${label} must be a non-negative safe integer`)}function assertJsonValue(value,label,seen=new WeakSet){if(!(value===null||typeof value=="boolean"||typeof value=="string")){if(typeof value=="number"){if(Number.isFinite(value))return;throw new Error(`${label} must contain finite JSON numbers`)}if(typeof value!="object")throw new Error(`${label} must be JSON-compatible`);if(seen.has(value))throw new Error(`${label} must not contain cycles`);if(seen.add(value),Array.isArray(value))for(let[index3,child]of value.entries())assertJsonValue(child,`${label}[${index3}]`,seen);else{if(!isPlainRecord(value))throw new Error(`${label} must contain only plain JSON objects`);for(let[key,child]of Object.entries(value))assertJsonValue(child,`${label}.${key}`,seen)}seen.delete(value)}}function detachedFreeze(value,seen=new WeakMap){if(value===null||typeof value!="object")return value;let existing=seen.get(value);if(existing!==void 0)return existing;if(Array.isArray(value)){let result2=[];seen.set(value,result2);for(let child of value)result2.push(detachedFreeze(child,seen));return Object.freeze(result2)}let result={};seen.set(value,result);for(let key of Object.keys(value).sort())result[key]=detachedFreeze(value[key],seen);return Object.freeze(result)}function sortByKey(values,key){return[...values].sort((left,right)=>{let a=key(left),b2=key(right);return a<b2?-1:a>b2?1:0})}function stableStringifyV1(value){return value===null||typeof value=="boolean"||typeof value=="number"||typeof value=="string"?JSON.stringify(value):Array.isArray(value)?`[${value.map(item=>stableStringifyV1(item)).join(",")}]`:`{${Object.entries(value).sort(([a],[b2])=>a<b2?-1:a>b2?1:0).map(([key,item])=>`${JSON.stringify(key)}:${stableStringifyV1(item)}`).join(",")}}`}var MAX_ARTIFACT_REF_CHARS_V1=2048,MAX_ARTIFACT_METADATA_CHARS_V1=256;function validateBoundedString(value,label,maximum){if(assertNonEmptyString(value,label),value.length>maximum)throw new Error(`${label} exceeds the context budget (${maximum} characters)`);return value}function validateDigest(value,label){if(value!==void 0)return validateBoundedString(value,label,MAX_ARTIFACT_METADATA_CHARS_V1)}function validateArtifactRefV1(value,label="Artifact reference"){if(assertPlainRecord(value,label),assertExactKeys(value,["version","artifactRef","kind","mimeType"],["digest","sizeBytes","operationId","pluginId"],label),value.version!==1)throw new Error(`${label}.version must be 1`);let artifactRef=validateBoundedString(value.artifactRef,`${label}.artifactRef`,MAX_ARTIFACT_REF_CHARS_V1);if(/^(?:file:|[a-zA-Z]:[\\/]|[\\/]{1,2}|\\\\)/iu.test(artifactRef))throw new Error(`${label}.artifactRef must be an opaque reference, not a local path`);let kind=validateBoundedString(value.kind,`${label}.kind`,MAX_ARTIFACT_METADATA_CHARS_V1),mimeType=validateBoundedString(value.mimeType,`${label}.mimeType`,MAX_ARTIFACT_METADATA_CHARS_V1),digest=validateDigest(value.digest,`${label}.digest`);value.sizeBytes!==void 0&&assertNonNegativeSafeInteger(value.sizeBytes,`${label}.sizeBytes`);let operationId=value.operationId===void 0?void 0:validateBoundedString(value.operationId,`${label}.operationId`,MAX_ARTIFACT_METADATA_CHARS_V1),pluginId=value.pluginId===void 0?void 0:validateBoundedString(value.pluginId,`${label}.pluginId`,MAX_ARTIFACT_METADATA_CHARS_V1);return detachedFreeze({version:1,artifactRef,kind,mimeType,...digest===void 0?{}:{digest},...value.sizeBytes===void 0?{}:{sizeBytes:value.sizeBytes},...operationId===void 0?{}:{operationId},...pluginId===void 0?{}:{pluginId}})}function buildArtifactRefV1(input){return validateArtifactRefV1(input)}function isArtifactRefV1(value){try{return validateArtifactRefV1(value),!0}catch{return!1}}function artifactRefKeyV1(ref){return ref.artifactRef}var DEFAULT_PLUGIN_CONTEXT_BUDGET_V1=Object.freeze({maxOutputBytes:65536,maxInlineItems:20,maxCellChars:256});function error(code,message){return{version:1,code,message}}function isRecord(value){return typeof value=="object"&&value!==null&&!Array.isArray(value)}function assertPositiveInteger(value,label){if(!Number.isSafeInteger(value)||value<=0)throw new Error(`${label} must be a positive safe integer`)}function assertNonNegativeInteger(value,label){if(!Number.isSafeInteger(value)||value<0)throw new Error(`${label} must be a non-negative safe integer`)}function isJsonValue(value){return value===null||typeof value=="string"||typeof value=="boolean"?!0:typeof value=="number"?Number.isFinite(value):Array.isArray(value)?value.every(isJsonValue):isRecord(value)?Object.values(value).every(isJsonValue):!1}function containsRawPayload(value,seen=new Set){if(!isRecord(value)&&!Array.isArray(value)||seen.has(value))return!1;if(seen.add(value),isRecord(value)){for(let[key,child]of Object.entries(value))if((key==="rows"||key==="rawRows"||key==="rawPayload"||key==="payload")&&child!==void 0||containsRawPayload(child,seen))return!0;return!1}return value.some(child=>containsRawPayload(child,seen))}function validateBudget(input){let budget={...DEFAULT_PLUGIN_CONTEXT_BUDGET_V1,...input??{}};return assertPositiveInteger(budget.maxOutputBytes,"maxOutputBytes"),assertNonNegativeInteger(budget.maxInlineItems,"maxInlineItems"),assertPositiveInteger(budget.maxCellChars,"maxCellChars"),Object.freeze(budget)}function boundStrings(value,maxCellChars){if(typeof value=="string"){if([...value].length>maxCellChars)throw new Error("context string exceeds maxCellChars");return value}return Array.isArray(value)?Object.freeze(value.map(child=>boundStrings(child,maxCellChars))):isRecord(value)?Object.freeze(Object.fromEntries(Object.entries(value).map(([key,child])=>[key,boundStrings(child,maxCellChars)]))):value}function invalid(operationId,code,message){return Object.freeze({version:1,operationId,status:"failed",inlineItems:Object.freeze([]),truncated:!1,error:error(code,message)})}function projectPluginContextV1(input,limits){let operationId=isRecord(input)&&typeof input.operationId=="string"?input.operationId:"invalid";try{if(!isRecord(input)||input.version!==1)throw new Error("input must have version 1");if(typeof input.operationId!="string"||input.operationId.trim()==="")throw new Error("operationId must be a non-empty string");if(!Array.isArray(input.items))throw new Error("items must be an array");let budget=validateBudget(limits);if(containsRawPayload(input.items))throw new Error("raw payloads are not allowed in plugin context");if(input.outputArtifactRef!==void 0){if(typeof input.outputArtifactRef!="string"||input.outputArtifactRef.trim()==="")throw new Error("outputArtifactRef must be a non-empty string");if(/^(?:[a-zA-Z]:[\\/]|[\\/]{1,2}|\\\\)/.test(input.outputArtifactRef))throw new Error("outputArtifactRef must be opaque")}let items=input.items.map((item,index3)=>{if(!isJsonValue(item))throw new Error(`items[${index3}] must be JSON-safe`);return boundStrings(item,budget.maxCellChars)}),truncated=input.truncated===!0||items.length>budget.maxInlineItems,inlineItems=Object.freeze(items.slice(0,budget.maxInlineItems)),result=Object.freeze({version:1,operationId:input.operationId,status:"succeeded",inlineItems,truncated,...input.outputArtifactRef===void 0?{}:{outputArtifactRef:input.outputArtifactRef}});if(new TextEncoder().encode(JSON.stringify(result)).byteLength>budget.maxOutputBytes)throw new Error("projected context exceeds maxOutputBytes");return result}catch(cause){return invalid(operationId,"context_projection_rejected",cause instanceof Error?cause.message:"Context projection rejected")}}var PLUGIN_OPERATION_TERMINAL_STATUSES_V1=["succeeded","failed","cancelled","needs_user","unsupported"],EVIDENCE_KINDS_V1=["screenshot","dom","render","diff","log","assertion","trace","network","structure"],OPERATION_STATUSES_V1=["queued","running","succeeded","failed","cancelled","needs_user","unsupported"],RESULT_STATUSES_V1=["succeeded","failed","cancelled","needs_user","unsupported"];function validateStatus(value,label,values){if(typeof value!="string"||!values.includes(value))throw new Error(`${label} is invalid`);return value}function validateIsoLike(value,label){if(value!==void 0)return assertNonEmptyString(value,label),value}function validateArtifactArray(value,label){if(!Array.isArray(value))throw new Error(`${label} must be an array`);let result=value.map((item,index3)=>validateArtifactRefV1(item,`${label}[${index3}]`));if(new Set(result.map(item=>item.artifactRef)).size!==result.length)throw new Error(`${label} must not contain duplicate artifactRef values`);return Object.freeze(sortByKey(result,item=>item.artifactRef))}function validatePluginOperationV1(value,label="Plugin operation"){if(assertPlainRecord(value,label),assertExactKeys(value,["version","operationId","pluginId","kind","status"],["inputArtifacts","outputArtifacts","startedAt","endedAt"],label),value.version!==1)throw new Error(`${label}.version must be 1`);assertNonEmptyString(value.operationId,`${label}.operationId`),assertNonEmptyString(value.pluginId,`${label}.pluginId`),assertNonEmptyString(value.kind,`${label}.kind`);let status2=validateStatus(value.status,`${label}.status`,OPERATION_STATUSES_V1),inputArtifacts=value.inputArtifacts===void 0?void 0:validateArtifactArray(value.inputArtifacts,`${label}.inputArtifacts`),outputArtifacts=value.outputArtifacts===void 0?void 0:validateArtifactArray(value.outputArtifacts,`${label}.outputArtifacts`),startedAt=validateIsoLike(value.startedAt,`${label}.startedAt`),endedAt=validateIsoLike(value.endedAt,`${label}.endedAt`);if(endedAt!==void 0&&startedAt===void 0)throw new Error(`${label}.endedAt requires startedAt`);if(status2==="running"&&endedAt!==void 0)throw new Error(`${label}.running must not have endedAt`);return detachedFreeze({version:1,operationId:value.operationId,pluginId:value.pluginId,kind:value.kind,status:status2,...inputArtifacts===void 0?{}:{inputArtifacts},...outputArtifacts===void 0?{}:{outputArtifacts},...startedAt===void 0?{}:{startedAt},...endedAt===void 0?{}:{endedAt}})}function buildPluginOperationV1(input){return validatePluginOperationV1(input)}function validateEvidenceRefV1(value,label="Evidence reference"){if(assertPlainRecord(value,label),assertExactKeys(value,["version","evidenceId","kind","operationId"],["artifactRef","summary","observedAt"],label),value.version!==1)throw new Error(`${label}.version must be 1`);assertNonEmptyString(value.evidenceId,`${label}.evidenceId`);let kind=validateStatus(value.kind,`${label}.kind`,EVIDENCE_KINDS_V1);assertNonEmptyString(value.operationId,`${label}.operationId`);let artifactRef=value.artifactRef===void 0?void 0:validateArtifactRefV1(value.artifactRef,`${label}.artifactRef`);assertOptionalString(value.summary,`${label}.summary`);let observedAt=validateIsoLike(value.observedAt,`${label}.observedAt`);return detachedFreeze({version:1,evidenceId:value.evidenceId,kind,operationId:value.operationId,...artifactRef===void 0?{}:{artifactRef},...value.summary===void 0?{}:{summary:value.summary},...observedAt===void 0?{}:{observedAt}})}function buildEvidenceRefV1(input){return validateEvidenceRefV1(input)}function validateVerificationV1(value,label="Verification"){if(assertPlainRecord(value,label),assertExactKeys(value,["version","status","checks"],[],label),value.version!==1)throw new Error(`${label}.version must be 1`);let status2=validateStatus(value.status,`${label}.status`,["passed","failed","unknown"]);if(!Array.isArray(value.checks)||value.checks.some(item=>typeof item!="string"||item.trim()===""))throw new Error(`${label}.checks must contain non-empty strings`);if(new Set(value.checks).size!==value.checks.length)throw new Error(`${label}.checks must not contain duplicates`);return detachedFreeze({version:1,status:status2,checks:[...value.checks].sort()})}function buildVerificationV1(input){return validateVerificationV1(input)}function validatePluginErrorV1(value,label="Plugin error"){if(assertPlainRecord(value,label),assertExactKeys(value,["version","code","message"],["causeCode","diagnosticRef"],label),value.version!==1)throw new Error(`${label}.version must be 1`);assertNonEmptyString(value.code,`${label}.code`),assertNonEmptyString(value.message,`${label}.message`),assertOptionalString(value.causeCode,`${label}.causeCode`);let diagnosticRef=value.diagnosticRef===void 0?void 0:validateArtifactRefV1(value.diagnosticRef,`${label}.diagnosticRef`);return detachedFreeze({version:1,code:value.code,message:value.message,...value.causeCode===void 0?{}:{causeCode:value.causeCode},...diagnosticRef===void 0?{}:{diagnosticRef}})}function buildPluginErrorV1(input){return validatePluginErrorV1(input)}function validatePluginResultV1(value,label="Plugin result"){if(assertPlainRecord(value,label),assertExactKeys(value,["version","operationId","status","summary","artifacts","evidence"],["verification","error"],label),value.version!==1)throw new Error(`${label}.version must be 1`);assertNonEmptyString(value.operationId,`${label}.operationId`);let status2=validateStatus(value.status,`${label}.status`,RESULT_STATUSES_V1);assertNonEmptyString(value.summary,`${label}.summary`);let artifacts=validateArtifactArray(value.artifacts,`${label}.artifacts`);if(!Array.isArray(value.evidence))throw new Error(`${label}.evidence must be an array`);let evidence=value.evidence.map((item,index3)=>validateEvidenceRefV1(item,`${label}.evidence[${index3}]`));if(new Set(evidence.map(item=>item.evidenceId)).size!==evidence.length)throw new Error(`${label}.evidence must not contain duplicate evidenceId values`);let orderedEvidence=Object.freeze(sortByKey(evidence,item=>item.evidenceId)),verification=value.verification===void 0?void 0:validateVerificationV1(value.verification,`${label}.verification`),error2=value.error===void 0?void 0:validatePluginErrorV1(value.error,`${label}.error`);if(status2!=="succeeded"&&error2===void 0)throw new Error(`${label}.error is required for status ${status2}`);if(status2==="succeeded"&&error2!==void 0)throw new Error(`${label}.succeeded must not include error`);if(status2==="succeeded"&&verification?.status==="failed")throw new Error(`${label}.succeeded cannot have failed verification`);return detachedFreeze({version:1,operationId:value.operationId,status:status2,summary:value.summary,artifacts,evidence:orderedEvidence,...verification===void 0?{}:{verification},...error2===void 0?{}:{error:error2}})}function buildPluginResultV1(input){return validatePluginResultV1(input)}function assertJsonResultInputV1(value,label="Result input"){return assertJsonValue(value,label),detachedFreeze(value)}var DIFF_MAX_ITEMS_V1=64,DIFF_MAX_STRING_CHARS_V1=2048,DIFF_MAX_RESULT_BYTES_V1=64*1024;function validateBoundedString2(value,label){if(assertNonEmptyString(value,label),value.length>DIFF_MAX_STRING_CHARS_V1)throw new Error(`${label} exceeds the context budget`)}var DIFF_KINDS_V1=["text","dom","structure","pixel","style"],RESULT_STATUSES_V12=["succeeded","failed","cancelled","needs_user","unsupported"];function validateKind(value,label){if(typeof value!="string"||!DIFF_KINDS_V1.includes(value))throw new Error(`${label} is invalid`);return value}function validateStatus2(value,label){if(typeof value!="string"||!RESULT_STATUSES_V12.includes(value))throw new Error(`${label} is invalid`);return value}function validateMetrics(value,label){if(assertPlainRecord(value,label),assertExactKeys(value,[],["changedPixels","changedRatio","selector"],label),value.changedPixels!==void 0&&(typeof value.changedPixels!="number"||!Number.isSafeInteger(value.changedPixels)||value.changedPixels<0))throw new Error(`${label}.changedPixels must be a non-negative safe integer`);if(value.changedRatio!==void 0&&(assertNonNegativeNumber(value.changedRatio,`${label}.changedRatio`),value.changedRatio>1))throw new Error(`${label}.changedRatio must be at most 1`);return value.selector!==void 0&&validateBoundedString2(value.selector,`${label}.selector`),detachedFreeze({...value.changedPixels===void 0?{}:{changedPixels:value.changedPixels},...value.changedRatio===void 0?{}:{changedRatio:value.changedRatio},...value.selector===void 0?{}:{selector:value.selector}})}function validateThreshold(value,label){if(assertPlainRecord(value,label),assertExactKeys(value,[],["maxChangedPixels","maxChangedRatio","allowedSelectors"],label),value.maxChangedPixels!==void 0&&(typeof value.maxChangedPixels!="number"||!Number.isSafeInteger(value.maxChangedPixels)||value.maxChangedPixels<0))throw new Error(`${label}.maxChangedPixels must be a non-negative safe integer`);if(value.maxChangedRatio!==void 0&&(assertNonNegativeNumber(value.maxChangedRatio,`${label}.maxChangedRatio`),value.maxChangedRatio>1))throw new Error(`${label}.maxChangedRatio must be at most 1`);if(value.allowedSelectors!==void 0){if(!Array.isArray(value.allowedSelectors)||value.allowedSelectors.some(item=>typeof item!="string"||item.trim()===""))throw new Error(`${label}.allowedSelectors must contain non-empty strings`);if(new Set(value.allowedSelectors).size!==value.allowedSelectors.length)throw new Error(`${label}.allowedSelectors must not contain duplicates`);if(value.allowedSelectors.length>DIFF_MAX_ITEMS_V1)throw new Error(`${label}.allowedSelectors must contain at most ${DIFF_MAX_ITEMS_V1} items`);for(let[index3,selector]of value.allowedSelectors.entries())validateBoundedString2(selector,`${label}.allowedSelectors[${index3}]`)}return detachedFreeze({...value.maxChangedPixels===void 0?{}:{maxChangedPixels:value.maxChangedPixels},...value.maxChangedRatio===void 0?{}:{maxChangedRatio:value.maxChangedRatio},...value.allowedSelectors===void 0?{}:{allowedSelectors:[...value.allowedSelectors].sort()}})}function validateDiffRequestV1(value,label="Diff request"){if(assertPlainRecord(value,label),assertExactKeys(value,["version","operationId","kind","before","after"],["threshold"],label),value.version!==1)throw new Error(`${label}.version must be 1`);assertNonEmptyString(value.operationId,`${label}.operationId`);let kind=validateKind(value.kind,`${label}.kind`),before=validateArtifactRefV1(value.before,`${label}.before`),after=validateArtifactRefV1(value.after,`${label}.after`);if(before.artifactRef===after.artifactRef)throw new Error(`${label}.before and after must differ`);let threshold=value.threshold===void 0?void 0:validateThreshold(value.threshold,`${label}.threshold`);return detachedFreeze({version:1,operationId:value.operationId,kind,before,after,...threshold===void 0?{}:{threshold}})}function buildDiffRequestV1(input){return validateDiffRequestV1(input)}function validateDiffResultV1(value,label="Diff result"){if(assertPlainRecord(value,label),assertExactKeys(value,["version","operationId","status","kind","summary","evidence"],["diffArtifact","metrics","verification","error"],label),value.version!==1)throw new Error(`${label}.version must be 1`);assertNonEmptyString(value.operationId,`${label}.operationId`);let resultStatus=validateStatus2(value.status,`${label}.status`),kind=validateKind(value.kind,`${label}.kind`);validateBoundedString2(value.summary,`${label}.summary`);let metrics=value.metrics===void 0?void 0:validateMetrics(value.metrics,`${label}.metrics`),diffArtifact=value.diffArtifact===void 0?void 0:validateArtifactRefV1(value.diffArtifact,`${label}.diffArtifact`);if(!Array.isArray(value.evidence))throw new Error(`${label}.evidence must be an array`);if(value.evidence.length>DIFF_MAX_ITEMS_V1)throw new Error(`${label}.evidence must contain at most ${DIFF_MAX_ITEMS_V1} items`);let evidence=value.evidence.map((item,index3)=>validateEvidenceRefV1(item,`${label}.evidence[${index3}]`));if(new Set(evidence.map(item=>item.evidenceId)).size!==evidence.length)throw new Error(`${label}.evidence must not contain duplicate evidenceId values`);for(let[index3,item]of evidence.entries())validateBoundedString2(item.evidenceId,`${label}.evidence[${index3}].evidenceId`),item.summary!==void 0&&validateBoundedString2(item.summary,`${label}.evidence[${index3}].summary`),item.observedAt!==void 0&&validateBoundedString2(item.observedAt,`${label}.evidence[${index3}].observedAt`);let orderedEvidence=Object.freeze([...evidence].sort((a,b2)=>a.evidenceId.localeCompare(b2.evidenceId))),verification=value.verification===void 0?void 0:validateVerificationV1(value.verification,`${label}.verification`),error2=value.error===void 0?void 0:validatePluginErrorV1(value.error,`${label}.error`);if(resultStatus!=="succeeded"&&error2===void 0)throw new Error(`${label}.error is required for status ${resultStatus}`);if(resultStatus==="succeeded"&&error2!==void 0)throw new Error(`${label}.succeeded must not include error`);if(resultStatus==="succeeded"&&verification?.status==="failed")throw new Error(`${label}.succeeded cannot have failed verification`);let result={version:1,operationId:value.operationId,status:resultStatus,kind,summary:value.summary,...metrics===void 0?{}:{metrics},...diffArtifact===void 0?{}:{diffArtifact},evidence:orderedEvidence,...verification===void 0?{}:{verification},...error2===void 0?{}:{error:error2}};if(new TextEncoder().encode(JSON.stringify(result)).byteLength>DIFF_MAX_RESULT_BYTES_V1)throw new Error(`${label} exceeds the context budget`);return detachedFreeze(result)}function buildDiffResultV1(input){return validateDiffResultV1(input)}var TRACE_KINDS_V1=["session.start","turn.span","llm.request","llm.response","tool.span","lifecycle","error","decision","plugin.log"];var SURFACES_V1=["html","browser","docx","xlsx","pdf","pptx","image"],STATUSES_V1=["succeeded","failed","cancelled","needs_user","unsupported"];function status(value,label){if(typeof value!="string"||!STATUSES_V1.includes(value))throw new Error(`${label} is invalid`);return value}function artifactArray(value,label){if(!Array.isArray(value))throw new Error(`${label} must be an array`);let items=value.map((item,index3)=>validateArtifactRefV1(item,`${label}[${index3}]`));if(new Set(items.map(item=>item.artifactRef)).size!==items.length)throw new Error(`${label} must not contain duplicate artifactRef values`);return Object.freeze([...items].sort((a,b2)=>a.artifactRef.localeCompare(b2.artifactRef)))}function evidenceArray(value,label){if(!Array.isArray(value))throw new Error(`${label} must be an array`);let items=value.map((item,index3)=>validateEvidenceRefV1(item,`${label}[${index3}]`));if(new Set(items.map(item=>item.evidenceId)).size!==items.length)throw new Error(`${label} must not contain duplicate evidenceId values`);return Object.freeze([...items].sort((a,b2)=>a.evidenceId.localeCompare(b2.evidenceId)))}function validateViewport(value,label){if(assertPlainRecord(value,label),assertExactKeys(value,["width","height"],["deviceScaleFactor"],label),assertNonNegativeNumber(value.width,`${label}.width`),assertNonNegativeNumber(value.height,`${label}.height`),value.width===0||value.height===0)throw new Error(`${label} dimensions must be greater than zero`);if(value.deviceScaleFactor!==void 0&&(assertFiniteNumber(value.deviceScaleFactor,`${label}.deviceScaleFactor`),value.deviceScaleFactor<=0))throw new Error(`${label}.deviceScaleFactor must be greater than zero`);return detachedFreeze({width:value.width,height:value.height,...value.deviceScaleFactor===void 0?{}:{deviceScaleFactor:value.deviceScaleFactor}})}function validateRenderRequestV1(value,label="Render request"){if(assertPlainRecord(value,label),assertExactKeys(value,["version","operationId","source","surface"],["page","viewport","options"],label),value.version!==1)throw new Error(`${label}.version must be 1`);assertNonEmptyString(value.operationId,`${label}.operationId`);let source=validateArtifactRefV1(value.source,`${label}.source`);if(typeof value.surface!="string"||!SURFACES_V1.includes(value.surface))throw new Error(`${label}.surface is invalid`);let surface=value.surface;value.page!==void 0&&assertNonNegativeSafeInteger(value.page,`${label}.page`);let viewport=value.viewport===void 0?void 0:validateViewport(value.viewport,`${label}.viewport`);return value.options!==void 0&&assertJsonValue(value.options,`${label}.options`),detachedFreeze({version:1,operationId:value.operationId,source,surface,...value.page===void 0?{}:{page:value.page},...viewport===void 0?{}:{viewport},...value.options===void 0?{}:{options:value.options}})}function buildRenderRequestV1(input){return validateRenderRequestV1(input)}function validateRenderResultV1(value,label="Render result"){if(assertPlainRecord(value,label),assertExactKeys(value,["version","operationId","status","renderer","artifacts","evidence","summary"],["verification","error"],label),value.version!==1)throw new Error(`${label}.version must be 1`);assertNonEmptyString(value.operationId,`${label}.operationId`);let resultStatus=status(value.status,`${label}.status`);assertPlainRecord(value.renderer,`${label}.renderer`),assertExactKeys(value.renderer,["id","version"],[],`${label}.renderer`),assertNonEmptyString(value.renderer.id,`${label}.renderer.id`),assertNonEmptyString(value.renderer.version,`${label}.renderer.version`);let artifacts=artifactArray(value.artifacts,`${label}.artifacts`),evidence=evidenceArray(value.evidence,`${label}.evidence`);assertNonEmptyString(value.summary,`${label}.summary`);let verification=value.verification===void 0?void 0:validateVerificationV1(value.verification,`${label}.verification`),error2=value.error===void 0?void 0:validatePluginErrorV1(value.error,`${label}.error`);if(resultStatus!=="succeeded"&&error2===void 0)throw new Error(`${label}.error is required for status ${resultStatus}`);if(resultStatus==="succeeded"&&error2!==void 0)throw new Error(`${label}.succeeded must not include error`);if(resultStatus==="succeeded"&&verification?.status==="failed")throw new Error(`${label}.succeeded cannot have failed verification`);return detachedFreeze({version:1,operationId:value.operationId,status:resultStatus,renderer:{id:value.renderer.id,version:value.renderer.version},artifacts,evidence,summary:value.summary,...verification===void 0?{}:{verification},...error2===void 0?{}:{error:error2}})}function buildRenderResultV1(input){return validateRenderResultV1(input)}var shell_exports={};__export(shell_exports,{POWERSHELL_ARGS:()=>POWERSHELL_ARGS,getPowerShellConfig:()=>getPowerShellConfig,getShellConfig:()=>getShellConfig,getShellEnv:()=>getShellEnv,killProcessTree:()=>killProcessTree,killTrackedDetachedChildren:()=>killTrackedDetachedChildren,sanitizeBinaryOutput:()=>sanitizeBinaryOutput,trackDetachedChildPid:()=>trackDetachedChildPid,untrackDetachedChildPid:()=>untrackDetachedChildPid});import{existsSync as existsSync2}from"node:fs";import{delimiter,join as join10}from"node:path";import{spawn as spawn2,spawnSync}from"child_process";function isLegacyWslBashPath(path7){let normalized=path7.replace(/\//g,"\\").toLowerCase();return/^[a-z]:\\windows\\(?:system32|sysnative)\\bash\.exe$/.test(normalized)}function getBashShellConfig(shell){return isLegacyWslBashPath(shell)?{shell,args:["-s"],commandTransport:"stdin"}:{shell,args:["-c"]}}function findExecutableOnPath(executable){if(process.platform==="win32"){try{let result=spawnSync("where",[executable],{encoding:"utf-8",timeout:5e3,windowsHide:!0});if(result.status===0&&result.stdout){let firstMatch=result.stdout.trim().split(/\r?\n/)[0];if(firstMatch&&existsSync2(firstMatch))return firstMatch}}catch{}return null}try{let result=spawnSync("which",[executable],{encoding:"utf-8",timeout:5e3});if(result.status===0&&result.stdout){let firstMatch=result.stdout.trim().split(/\r?\n/)[0];if(firstMatch)return firstMatch}}catch{}return null}function getShellConfig(customShellPath){if(customShellPath){if(existsSync2(customShellPath))return getBashShellConfig(customShellPath);throw new Error(t("Custom shell path not found: {path}",{path:customShellPath}))}if(process.platform==="win32"){let paths=[],programFiles=process.env.ProgramFiles;programFiles&&paths.push(`${programFiles}\\Git\\bin\\bash.exe`);let programFilesX86=process.env["ProgramFiles(x86)"];programFilesX86&&paths.push(`${programFilesX86}\\Git\\bin\\bash.exe`);for(let path7 of paths)if(existsSync2(path7))return getBashShellConfig(path7);let bashOnPath2=findExecutableOnPath("bash.exe");if(bashOnPath2)return getBashShellConfig(bashOnPath2);throw new Error(`${t("No bash shell found. Options:")}
|
|
396
|
+
`);fs2.writeFileSync(debugPath,debugData)}output.flush(),this.cursorRow=Math.max(0,newLines.length-1),this.hardwareCursorRow=finalCursorRow,this.maxLinesRendered=Math.max(this.maxLinesRendered,newLines.length),this.previousViewportTop=Math.max(prevViewportTop,finalCursorRow-height+1),this.positionHardwareCursor(cursorPos,newLines.length),this.previousLines=newLines,this.previousKittyImageIds=this.collectKittyImageIds(newLines),this.previousWidth=width,this.previousHeight=height}positionHardwareCursor(cursorPos,totalLines){if(!cursorPos||totalLines<=0){this.terminal.hideCursor();return}let targetRow=Math.max(0,Math.min(cursorPos.row,totalLines-1)),targetCol=Math.max(0,cursorPos.col),rowDelta=targetRow-this.hardwareCursorRow,buffer="";rowDelta>0?buffer+=`\x1B[${rowDelta}B`:rowDelta<0&&(buffer+=`\x1B[${-rowDelta}A`),buffer+=`\x1B[${targetCol+1}G`,buffer&&this.terminal.write(buffer),this.hardwareCursorRow=targetRow,this.getShowHardwareCursor()?this.terminal.showCursor():this.terminal.hideCursor()}};var EXPERIMENTAL_PUBLIC_API_VERSION="1-draft",LifecycleTransformError=class extends Error{report;cause;constructor(cause,report){super("Lifecycle transform failed"),this.name="LifecycleTransformError",this.cause=cause,this.report=report}},LifecycleExecuteError=class extends Error{report;cause;constructor(cause,report){super("Lifecycle execute failed"),this.name="LifecycleExecuteError",this.cause=cause,this.report=report}},AGENT_TASK_CHILD_PROFILE_KEY="agent-forge.agentTaskChildProfile",AGENT_TASK_PARENT_SESSION_KEY="agent-forge.agentTaskParentSession",AGENT_TASK_PARENT_TRACE_KEY="agent-forge.agentTaskParentTrace",AGENT_TASK_RESUME_SESSION_KEY="agent-forge.agentTaskResumeSession",CHILD_PROFILE_KEYS=["version","model","thinkingLevel","tools","mode","systemPromptAppend","roleId"],CHILD_PROFILE_TOOL_LIMIT=64,CHILD_PROFILE_APPEND_CHARS=8e3,CHILD_PROFILE_THINKING_LEVELS=["minimal","low","medium","high","xhigh","max"];function parseAgentTaskChildProfileV1(value){if(value===null||typeof value!="object"||Array.isArray(value))return{ok:!1,message:"child task profile must be an object"};let record=value;for(let key of Object.keys(record))if(!CHILD_PROFILE_KEYS.includes(key))return{ok:!1,message:`child task profile has unknown key ${JSON.stringify(key)} (known: ${CHILD_PROFILE_KEYS.join(", ")})`};if(record.version!==1)return{ok:!1,message:`child task profile version must be 1, found ${JSON.stringify(record.version)}`};let model;if(record.model!==void 0){if(typeof record.model!="string"||record.model.trim()==="")return{ok:!1,message:"child task profile model must be a non-empty string"};model=record.model}let thinkingLevel;if(record.thinkingLevel!==void 0){if(typeof record.thinkingLevel!="string"||!CHILD_PROFILE_THINKING_LEVELS.includes(record.thinkingLevel))return{ok:!1,message:`child task profile thinkingLevel must be one of ${CHILD_PROFILE_THINKING_LEVELS.join(", ")}, found `+JSON.stringify(record.thinkingLevel)};thinkingLevel=record.thinkingLevel}let tools;if(record.tools!==void 0){if(!Array.isArray(record.tools)||record.tools.length>CHILD_PROFILE_TOOL_LIMIT)return{ok:!1,message:`child task profile tools must be an array of at most ${CHILD_PROFILE_TOOL_LIMIT} names`};let names2=new Set;for(let entry of record.tools){if(typeof entry!="string"||entry.trim()==="")return{ok:!1,message:"child task profile tools entries must be non-empty strings"};names2.add(entry)}tools=Object.freeze([...names2])}let mode;if(record.mode!==void 0){if(record.mode!=="readonly"&&record.mode!=="full-control")return{ok:!1,message:'child task profile mode must be "readonly" or "full-control"'};mode=record.mode}let roleId;if(record.roleId!==void 0){if(typeof record.roleId!="string"||record.roleId.trim()==="")return{ok:!1,message:"child task profile roleId must be a non-empty string"};roleId=record.roleId}let systemPromptAppend;if(record.systemPromptAppend!==void 0){if(typeof record.systemPromptAppend!="string"||record.systemPromptAppend.trim()===""||record.systemPromptAppend.length>CHILD_PROFILE_APPEND_CHARS)return{ok:!1,message:`child task profile systemPromptAppend must be a non-empty string of at most ${CHILD_PROFILE_APPEND_CHARS} chars`};systemPromptAppend=record.systemPromptAppend}return{ok:!0,profile:Object.freeze({version:1,...model===void 0?{}:{model},...thinkingLevel===void 0?{}:{thinkingLevel},...tools===void 0?{}:{tools},...mode===void 0?{}:{mode},...systemPromptAppend===void 0?{}:{systemPromptAppend},...roleId===void 0?{}:{roleId}})}}function readAgentTaskChildProfileV1(metadata){let raw=metadata?.[AGENT_TASK_CHILD_PROFILE_KEY];if(raw!==void 0)return parseAgentTaskChildProfileV1(raw)}var SUMMARY_MODEL_INVOCATION_ERROR_CODES={providerError:"summary_provider_error",lengthCap:"summary_length_cap",toolCall:"summary_tool_call",transportError:"summary_transport_error"};function createDisposableRegistration(kind,dispose,id){let disposed=!1;return{id,kind,dispose:()=>{if(!disposed)return disposed=!0,dispose()}}}function createEventEnvelope(event,options){return{...event,id:options.id,timestamp:options.timestamp??0}}function detachedSessionSnapshot(value){let clone=structuredClone(value),freeze=candidate=>{if(!(!candidate||typeof candidate!="object")&&!ArrayBuffer.isView(candidate)){for(let child of Object.values(candidate))freeze(child);Object.freeze(candidate)}};return freeze(clone),clone}var import_semver=__toESM(require_semver2(),1);function isStringArray(value){return Array.isArray(value)&&value.every(entry=>typeof entry=="string")}function isObject(value){return typeof value=="object"&&value!==null&&!Array.isArray(value)}function isJsonConfigValue(value){return value===null||typeof value=="boolean"||typeof value=="string"?!0:typeof value=="number"?Number.isFinite(value):Array.isArray(value)?value.every(isJsonConfigValue):isObject(value)?Object.values(value).every(isJsonConfigValue):!1}function isRelativeManifestEntry(entry){return entry.trim()===""||entry.includes("\\")||entry.startsWith("/")||entry.includes(":")?!1:!entry.split("/").includes("..")}function assertPluginCapabilityId(value,field,manifestPath){if(typeof value!="string"||!value.trim())throw new Error(`Capability plugin ${field} must be a non-empty string: ${manifestPath}`)}function assertPluginCapabilityVersion(value,field,manifestPath){if(typeof value!="number"||!Number.isSafeInteger(value)||value<1)throw new Error(`Capability plugin ${field} must be a positive safe integer: ${manifestPath}`)}function capabilityKey(id,version){return`${id}\0${version}`}function parsePluginAgentRoles(value,manifestPath){if(value===void 0)return;if(!Array.isArray(value))throw new Error(`Capability plugin roles must be an array: ${manifestPath}`);let roles=[],seen=new Set;for(let[index3,role]of value.entries()){if(role!=="root-agent-controller"&&role!=="child-agent-controller")throw new Error(`Capability plugin roles[${index3}] is invalid: ${manifestPath}`);if(seen.has(role))throw new Error(`Capability plugin roles duplicates ${role}: ${manifestPath}`);seen.add(role),roles.push(role)}return roles}function parsePluginAgentDeclarations(value,roles,manifestPath){if(value===void 0)return;if(!Array.isArray(value))throw new Error(`Capability plugin agents must be an array: ${manifestPath}`);let declarations=[],seen=new Set;for(let[index3,candidate]of value.entries()){if(!isObject(candidate))throw new Error(`Capability plugin agents[${index3}] must be an object: ${manifestPath}`);let{id,version,role,entry}=candidate;if(assertPluginCapabilityId(id,`agents[${index3}].id`,manifestPath),assertPluginCapabilityVersion(version,`agents[${index3}].version`,manifestPath),role!=="root-agent-controller"&&role!=="child-agent-controller")throw new Error(`Capability plugin agents[${index3}].role is invalid: ${manifestPath}`);if(typeof entry!="string"||!entry.trim())throw new Error(`Capability plugin agents[${index3}].entry must be a non-empty string: ${manifestPath}`);if(roles!==void 0&&!roles.includes(role))throw new Error(`Capability plugin agents[${index3}].role is not declared in roles: ${manifestPath}`);let key=capabilityKey(id,version);if(seen.has(key))throw new Error(`Capability plugin agents duplicates ${id}@${version}: ${manifestPath}`);seen.add(key),declarations.push({id,version,role,entry})}return declarations}function parsePluginCapabilityDeclarations(value,manifestPath){if(value===void 0)return;if(!Array.isArray(value))throw new Error(`Capability plugin provides must be an array: ${manifestPath}`);let declarations=[],seen=new Set;for(let[index3,candidate]of value.entries()){if(!isObject(candidate))throw new Error(`Capability plugin provides[${index3}] must be an object: ${manifestPath}`);let{id,version,kind}=candidate;if(assertPluginCapabilityId(id,`provides[${index3}].id`,manifestPath),assertPluginCapabilityVersion(version,`provides[${index3}].version`,manifestPath),kind!=="service"&&kind!=="contribution"&&kind!=="transform")throw new Error(`Capability plugin provides[${index3}].kind is invalid: ${manifestPath}`);let key=capabilityKey(id,version);if(seen.has(key))throw new Error(`Capability plugin provides duplicates ${id}@${version}: ${manifestPath}`);seen.add(key),declarations.push({id,version,kind})}return declarations}function parsePluginCapabilityRequirements(value,manifestPath){if(value===void 0)return;if(!Array.isArray(value))throw new Error(`Capability plugin requires must be an array: ${manifestPath}`);let requirements=[],seen=new Set;for(let[index3,candidate]of value.entries()){if(!isObject(candidate))throw new Error(`Capability plugin requires[${index3}] must be an object: ${manifestPath}`);let{id,version,optional}=candidate;if(assertPluginCapabilityId(id,`requires[${index3}].id`,manifestPath),assertPluginCapabilityVersion(version,`requires[${index3}].version`,manifestPath),optional!==void 0&&typeof optional!="boolean")throw new Error(`Capability plugin requires[${index3}].optional must be a boolean: ${manifestPath}`);let key=capabilityKey(id,version);if(seen.has(key))throw new Error(`Capability plugin requires duplicates ${id}@${version}: ${manifestPath}`);seen.add(key),requirements.push(optional===void 0?{id,version}:{id,version,optional})}return requirements}function parseCapabilityPluginManifest(value,manifestPath="<manifest>"){if(!isObject(value))throw new Error(`Capability plugin manifest must be an object: ${manifestPath}`);let{id,version,description,hostVersion,apiVersion,entry,requiredCapabilities,optionalCapabilities,provides,requires,roles,agents,activation,manual,config}=value;if(typeof id!="string"||typeof version!="string"||typeof apiVersion!="string"||typeof entry!="string")throw new Error(`Capability plugin manifest requires string id, version, apiVersion, and entry: ${manifestPath}`);if(!isRelativeManifestEntry(entry))throw new Error(`Capability plugin manifest entry must be a relative path without drive letters, backslashes, ":" or ".." segments: ${manifestPath}`);if(apiVersion!==EXPERIMENTAL_PUBLIC_API_VERSION)throw new Error(`Unsupported plugin API version: ${apiVersion}: ${manifestPath}`);if(hostVersion!==void 0&&(typeof hostVersion!="string"||hostVersion.trim()===""||(0,import_semver.validRange)(hostVersion)===null))throw new Error(`Capability plugin hostVersion must be a non-empty string containing a valid semver range (e.g. ">=0.84.0"): ${manifestPath}`);if(requiredCapabilities!==void 0&&!isStringArray(requiredCapabilities))throw new Error(`Capability plugin requiredCapabilities must be a string array: ${manifestPath}`);if(optionalCapabilities!==void 0&&!isStringArray(optionalCapabilities))throw new Error(`Capability plugin optionalCapabilities must be a string array: ${manifestPath}`);if(config!==void 0&&(!isObject(config)||!isJsonConfigValue(config)))throw new Error(`Capability plugin config must be a JSON object: ${manifestPath}`);if(description!==void 0&&(typeof description!="string"||!description.trim()))throw new Error(`Capability plugin description must be a non-empty string: ${manifestPath}`);if(description!==void 0&&description.length>200)throw new Error(`Capability plugin description must be at most 200 characters: ${manifestPath}`);if(activation!==void 0&&activation!=="always"&&activation!=="on-demand")throw new Error(`Capability plugin activation must be "always" or "on-demand": ${manifestPath}`);if(manual!==void 0&&(typeof manual!="string"||!manual.trim()))throw new Error(`Capability plugin manual must be a non-empty string: ${manifestPath}`);let parsedProvides=parsePluginCapabilityDeclarations(provides,manifestPath),parsedRequires=parsePluginCapabilityRequirements(requires,manifestPath),parsedRoles=parsePluginAgentRoles(roles,manifestPath),parsedAgents=parsePluginAgentDeclarations(agents,parsedRoles,manifestPath);return{id,version,...description===void 0?{}:{description},apiVersion,entry,requiredCapabilities,optionalCapabilities,...hostVersion===void 0?{}:{hostVersion},...parsedProvides===void 0?{}:{provides:parsedProvides},...parsedRequires===void 0?{}:{requires:parsedRequires},...parsedRoles===void 0?{}:{roles:parsedRoles},...parsedAgents===void 0?{}:{agents:parsedAgents},...activation===void 0?{}:{activation},...manual===void 0?{}:{manual},...config===void 0?{}:{config}}}var MEMORY_RECALL_TOOL_NAME="memory_recall";var dist_exports2={};__export(dist_exports2,{AGENT_TASK_CHILD_PROFILE_KEY:()=>AGENT_TASK_CHILD_PROFILE_KEY,AGENT_TASK_PARENT_SESSION_KEY:()=>AGENT_TASK_PARENT_SESSION_KEY,AGENT_TASK_PARENT_TRACE_KEY:()=>AGENT_TASK_PARENT_TRACE_KEY,AGENT_TASK_RESUME_SESSION_KEY:()=>AGENT_TASK_RESUME_SESSION_KEY,DEFAULT_PLUGIN_CONTEXT_BUDGET_V1:()=>DEFAULT_PLUGIN_CONTEXT_BUDGET_V1,EXPERIMENTAL_PUBLIC_API_VERSION:()=>EXPERIMENTAL_PUBLIC_API_VERSION,LifecycleExecuteError:()=>LifecycleExecuteError,LifecycleTransformError:()=>LifecycleTransformError,MAX_ARTIFACT_METADATA_CHARS_V1:()=>MAX_ARTIFACT_METADATA_CHARS_V1,MAX_ARTIFACT_REF_CHARS_V1:()=>MAX_ARTIFACT_REF_CHARS_V1,MEMORY_RECALL_TOOL_NAME:()=>MEMORY_RECALL_TOOL_NAME,PLUGIN_OPERATION_TERMINAL_STATUSES_V1:()=>PLUGIN_OPERATION_TERMINAL_STATUSES_V1,PLUGIN_SHARED_CONTRACT_VERSION_V1:()=>PLUGIN_SHARED_CONTRACT_VERSION_V1,SUMMARY_MODEL_INVOCATION_ERROR_CODES:()=>SUMMARY_MODEL_INVOCATION_ERROR_CODES,TRACE_KINDS_V1:()=>TRACE_KINDS_V1,artifactRefKeyV1:()=>artifactRefKeyV1,assertExactKeys:()=>assertExactKeys,assertFiniteNumber:()=>assertFiniteNumber,assertJsonResultInputV1:()=>assertJsonResultInputV1,assertJsonValue:()=>assertJsonValue,assertNonEmptyString:()=>assertNonEmptyString,assertNonNegativeNumber:()=>assertNonNegativeNumber,assertNonNegativeSafeInteger:()=>assertNonNegativeSafeInteger,assertOptionalString:()=>assertOptionalString,assertPlainRecord:()=>assertPlainRecord,assertPositiveSafeInteger:()=>assertPositiveSafeInteger,buildArtifactRefV1:()=>buildArtifactRefV1,buildDiffRequestV1:()=>buildDiffRequestV1,buildDiffResultV1:()=>buildDiffResultV1,buildEvidenceRefV1:()=>buildEvidenceRefV1,buildPluginErrorV1:()=>buildPluginErrorV1,buildPluginOperationV1:()=>buildPluginOperationV1,buildPluginResultV1:()=>buildPluginResultV1,buildRenderRequestV1:()=>buildRenderRequestV1,buildRenderResultV1:()=>buildRenderResultV1,buildVerificationV1:()=>buildVerificationV1,createDisposableRegistration:()=>createDisposableRegistration,createEventEnvelope:()=>createEventEnvelope,detachedFreeze:()=>detachedFreeze,detachedSessionSnapshot:()=>detachedSessionSnapshot,isArtifactRefV1:()=>isArtifactRefV1,isPlainRecord:()=>isPlainRecord,parseAgentTaskChildProfileV1:()=>parseAgentTaskChildProfileV1,parseCapabilityPluginManifest:()=>parseCapabilityPluginManifest,projectPluginContextV1:()=>projectPluginContextV1,readAgentTaskChildProfileV1:()=>readAgentTaskChildProfileV1,sortByKey:()=>sortByKey,stableStringifyV1:()=>stableStringifyV1,validateArtifactRefV1:()=>validateArtifactRefV1,validateDiffRequestV1:()=>validateDiffRequestV1,validateDiffResultV1:()=>validateDiffResultV1,validateEvidenceRefV1:()=>validateEvidenceRefV1,validatePluginErrorV1:()=>validatePluginErrorV1,validatePluginOperationV1:()=>validatePluginOperationV1,validatePluginResultV1:()=>validatePluginResultV1,validateRenderRequestV1:()=>validateRenderRequestV1,validateRenderResultV1:()=>validateRenderResultV1,validateVerificationV1:()=>validateVerificationV1});var PLUGIN_SHARED_CONTRACT_VERSION_V1=1;function isPlainRecord(value){if(value===null||typeof value!="object"||Array.isArray(value))return!1;let prototype=Object.getPrototypeOf(value);return prototype===Object.prototype||prototype===null}function assertPlainRecord(value,label){if(!isPlainRecord(value))throw new Error(`${label} must be a plain object`)}function assertExactKeys(value,required,optional,label){let allowed=new Set([...required,...optional]),unsupported=Object.keys(value).filter(key=>!allowed.has(key)).sort();if(unsupported.length>0)throw new Error(`${label} has unsupported fields: ${unsupported.join(", ")}`);for(let key of required)if(!(key in value))throw new Error(`${label} is missing required field: ${key}`)}function assertNonEmptyString(value,label){if(typeof value!="string"||value.trim().length===0)throw new Error(`${label} must be a non-empty string`)}function assertOptionalString(value,label){value!==void 0&&assertNonEmptyString(value,label)}function assertFiniteNumber(value,label){if(typeof value!="number"||!Number.isFinite(value))throw new Error(`${label} must be a finite number`)}function assertNonNegativeNumber(value,label){if(assertFiniteNumber(value,label),value<0)throw new Error(`${label} must be non-negative`)}function assertPositiveSafeInteger(value,label){if(typeof value!="number"||!Number.isSafeInteger(value)||value<1)throw new Error(`${label} must be a positive safe integer`)}function assertNonNegativeSafeInteger(value,label){if(typeof value!="number"||!Number.isSafeInteger(value)||value<0)throw new Error(`${label} must be a non-negative safe integer`)}function assertJsonValue(value,label,seen=new WeakSet){if(!(value===null||typeof value=="boolean"||typeof value=="string")){if(typeof value=="number"){if(Number.isFinite(value))return;throw new Error(`${label} must contain finite JSON numbers`)}if(typeof value!="object")throw new Error(`${label} must be JSON-compatible`);if(seen.has(value))throw new Error(`${label} must not contain cycles`);if(seen.add(value),Array.isArray(value))for(let[index3,child]of value.entries())assertJsonValue(child,`${label}[${index3}]`,seen);else{if(!isPlainRecord(value))throw new Error(`${label} must contain only plain JSON objects`);for(let[key,child]of Object.entries(value))assertJsonValue(child,`${label}.${key}`,seen)}seen.delete(value)}}function detachedFreeze(value,seen=new WeakMap){if(value===null||typeof value!="object")return value;let existing=seen.get(value);if(existing!==void 0)return existing;if(Array.isArray(value)){let result2=[];seen.set(value,result2);for(let child of value)result2.push(detachedFreeze(child,seen));return Object.freeze(result2)}let result={};seen.set(value,result);for(let key of Object.keys(value).sort())result[key]=detachedFreeze(value[key],seen);return Object.freeze(result)}function sortByKey(values,key){return[...values].sort((left,right)=>{let a=key(left),b2=key(right);return a<b2?-1:a>b2?1:0})}function stableStringifyV1(value){return value===null||typeof value=="boolean"||typeof value=="number"||typeof value=="string"?JSON.stringify(value):Array.isArray(value)?`[${value.map(item=>stableStringifyV1(item)).join(",")}]`:`{${Object.entries(value).sort(([a],[b2])=>a<b2?-1:a>b2?1:0).map(([key,item])=>`${JSON.stringify(key)}:${stableStringifyV1(item)}`).join(",")}}`}var MAX_ARTIFACT_REF_CHARS_V1=2048,MAX_ARTIFACT_METADATA_CHARS_V1=256;function validateBoundedString(value,label,maximum){if(assertNonEmptyString(value,label),value.length>maximum)throw new Error(`${label} exceeds the context budget (${maximum} characters)`);return value}function validateDigest(value,label){if(value!==void 0)return validateBoundedString(value,label,MAX_ARTIFACT_METADATA_CHARS_V1)}function validateArtifactRefV1(value,label="Artifact reference"){if(assertPlainRecord(value,label),assertExactKeys(value,["version","artifactRef","kind","mimeType"],["digest","sizeBytes","operationId","pluginId"],label),value.version!==1)throw new Error(`${label}.version must be 1`);let artifactRef=validateBoundedString(value.artifactRef,`${label}.artifactRef`,MAX_ARTIFACT_REF_CHARS_V1);if(/^(?:file:|[a-zA-Z]:[\\/]|[\\/]{1,2}|\\\\)/iu.test(artifactRef))throw new Error(`${label}.artifactRef must be an opaque reference, not a local path`);let kind=validateBoundedString(value.kind,`${label}.kind`,MAX_ARTIFACT_METADATA_CHARS_V1),mimeType=validateBoundedString(value.mimeType,`${label}.mimeType`,MAX_ARTIFACT_METADATA_CHARS_V1),digest=validateDigest(value.digest,`${label}.digest`);value.sizeBytes!==void 0&&assertNonNegativeSafeInteger(value.sizeBytes,`${label}.sizeBytes`);let operationId=value.operationId===void 0?void 0:validateBoundedString(value.operationId,`${label}.operationId`,MAX_ARTIFACT_METADATA_CHARS_V1),pluginId=value.pluginId===void 0?void 0:validateBoundedString(value.pluginId,`${label}.pluginId`,MAX_ARTIFACT_METADATA_CHARS_V1);return detachedFreeze({version:1,artifactRef,kind,mimeType,...digest===void 0?{}:{digest},...value.sizeBytes===void 0?{}:{sizeBytes:value.sizeBytes},...operationId===void 0?{}:{operationId},...pluginId===void 0?{}:{pluginId}})}function buildArtifactRefV1(input){return validateArtifactRefV1(input)}function isArtifactRefV1(value){try{return validateArtifactRefV1(value),!0}catch{return!1}}function artifactRefKeyV1(ref){return ref.artifactRef}var DEFAULT_PLUGIN_CONTEXT_BUDGET_V1=Object.freeze({maxOutputBytes:65536,maxInlineItems:20,maxCellChars:256});function error(code,message){return{version:1,code,message}}function isRecord(value){return typeof value=="object"&&value!==null&&!Array.isArray(value)}function assertPositiveInteger(value,label){if(!Number.isSafeInteger(value)||value<=0)throw new Error(`${label} must be a positive safe integer`)}function assertNonNegativeInteger(value,label){if(!Number.isSafeInteger(value)||value<0)throw new Error(`${label} must be a non-negative safe integer`)}function isJsonValue(value){return value===null||typeof value=="string"||typeof value=="boolean"?!0:typeof value=="number"?Number.isFinite(value):Array.isArray(value)?value.every(isJsonValue):isRecord(value)?Object.values(value).every(isJsonValue):!1}function containsRawPayload(value,seen=new Set){if(!isRecord(value)&&!Array.isArray(value)||seen.has(value))return!1;if(seen.add(value),isRecord(value)){for(let[key,child]of Object.entries(value))if((key==="rows"||key==="rawRows"||key==="rawPayload"||key==="payload")&&child!==void 0||containsRawPayload(child,seen))return!0;return!1}return value.some(child=>containsRawPayload(child,seen))}function validateBudget(input){let budget={...DEFAULT_PLUGIN_CONTEXT_BUDGET_V1,...input??{}};return assertPositiveInteger(budget.maxOutputBytes,"maxOutputBytes"),assertNonNegativeInteger(budget.maxInlineItems,"maxInlineItems"),assertPositiveInteger(budget.maxCellChars,"maxCellChars"),Object.freeze(budget)}function boundStrings(value,maxCellChars){if(typeof value=="string"){if([...value].length>maxCellChars)throw new Error("context string exceeds maxCellChars");return value}return Array.isArray(value)?Object.freeze(value.map(child=>boundStrings(child,maxCellChars))):isRecord(value)?Object.freeze(Object.fromEntries(Object.entries(value).map(([key,child])=>[key,boundStrings(child,maxCellChars)]))):value}function invalid(operationId,code,message){return Object.freeze({version:1,operationId,status:"failed",inlineItems:Object.freeze([]),truncated:!1,error:error(code,message)})}function projectPluginContextV1(input,limits){let operationId=isRecord(input)&&typeof input.operationId=="string"?input.operationId:"invalid";try{if(!isRecord(input)||input.version!==1)throw new Error("input must have version 1");if(typeof input.operationId!="string"||input.operationId.trim()==="")throw new Error("operationId must be a non-empty string");if(!Array.isArray(input.items))throw new Error("items must be an array");let budget=validateBudget(limits);if(containsRawPayload(input.items))throw new Error("raw payloads are not allowed in plugin context");if(input.outputArtifactRef!==void 0){if(typeof input.outputArtifactRef!="string"||input.outputArtifactRef.trim()==="")throw new Error("outputArtifactRef must be a non-empty string");if(/^(?:[a-zA-Z]:[\\/]|[\\/]{1,2}|\\\\)/.test(input.outputArtifactRef))throw new Error("outputArtifactRef must be opaque")}let items=input.items.map((item,index3)=>{if(!isJsonValue(item))throw new Error(`items[${index3}] must be JSON-safe`);return boundStrings(item,budget.maxCellChars)}),truncated=input.truncated===!0||items.length>budget.maxInlineItems,inlineItems=Object.freeze(items.slice(0,budget.maxInlineItems)),result=Object.freeze({version:1,operationId:input.operationId,status:"succeeded",inlineItems,truncated,...input.outputArtifactRef===void 0?{}:{outputArtifactRef:input.outputArtifactRef}});if(new TextEncoder().encode(JSON.stringify(result)).byteLength>budget.maxOutputBytes)throw new Error("projected context exceeds maxOutputBytes");return result}catch(cause){return invalid(operationId,"context_projection_rejected",cause instanceof Error?cause.message:"Context projection rejected")}}var PLUGIN_OPERATION_TERMINAL_STATUSES_V1=["succeeded","failed","cancelled","needs_user","unsupported"],EVIDENCE_KINDS_V1=["screenshot","dom","render","diff","log","assertion","trace","network","structure"],OPERATION_STATUSES_V1=["queued","running","succeeded","failed","cancelled","needs_user","unsupported"],RESULT_STATUSES_V1=["succeeded","failed","cancelled","needs_user","unsupported"];function validateStatus(value,label,values){if(typeof value!="string"||!values.includes(value))throw new Error(`${label} is invalid`);return value}function validateIsoLike(value,label){if(value!==void 0)return assertNonEmptyString(value,label),value}function validateArtifactArray(value,label){if(!Array.isArray(value))throw new Error(`${label} must be an array`);let result=value.map((item,index3)=>validateArtifactRefV1(item,`${label}[${index3}]`));if(new Set(result.map(item=>item.artifactRef)).size!==result.length)throw new Error(`${label} must not contain duplicate artifactRef values`);return Object.freeze(sortByKey(result,item=>item.artifactRef))}function validatePluginOperationV1(value,label="Plugin operation"){if(assertPlainRecord(value,label),assertExactKeys(value,["version","operationId","pluginId","kind","status"],["inputArtifacts","outputArtifacts","startedAt","endedAt"],label),value.version!==1)throw new Error(`${label}.version must be 1`);assertNonEmptyString(value.operationId,`${label}.operationId`),assertNonEmptyString(value.pluginId,`${label}.pluginId`),assertNonEmptyString(value.kind,`${label}.kind`);let status2=validateStatus(value.status,`${label}.status`,OPERATION_STATUSES_V1),inputArtifacts=value.inputArtifacts===void 0?void 0:validateArtifactArray(value.inputArtifacts,`${label}.inputArtifacts`),outputArtifacts=value.outputArtifacts===void 0?void 0:validateArtifactArray(value.outputArtifacts,`${label}.outputArtifacts`),startedAt=validateIsoLike(value.startedAt,`${label}.startedAt`),endedAt=validateIsoLike(value.endedAt,`${label}.endedAt`);if(endedAt!==void 0&&startedAt===void 0)throw new Error(`${label}.endedAt requires startedAt`);if(status2==="running"&&endedAt!==void 0)throw new Error(`${label}.running must not have endedAt`);return detachedFreeze({version:1,operationId:value.operationId,pluginId:value.pluginId,kind:value.kind,status:status2,...inputArtifacts===void 0?{}:{inputArtifacts},...outputArtifacts===void 0?{}:{outputArtifacts},...startedAt===void 0?{}:{startedAt},...endedAt===void 0?{}:{endedAt}})}function buildPluginOperationV1(input){return validatePluginOperationV1(input)}function validateEvidenceRefV1(value,label="Evidence reference"){if(assertPlainRecord(value,label),assertExactKeys(value,["version","evidenceId","kind","operationId"],["artifactRef","summary","observedAt"],label),value.version!==1)throw new Error(`${label}.version must be 1`);assertNonEmptyString(value.evidenceId,`${label}.evidenceId`);let kind=validateStatus(value.kind,`${label}.kind`,EVIDENCE_KINDS_V1);assertNonEmptyString(value.operationId,`${label}.operationId`);let artifactRef=value.artifactRef===void 0?void 0:validateArtifactRefV1(value.artifactRef,`${label}.artifactRef`);assertOptionalString(value.summary,`${label}.summary`);let observedAt=validateIsoLike(value.observedAt,`${label}.observedAt`);return detachedFreeze({version:1,evidenceId:value.evidenceId,kind,operationId:value.operationId,...artifactRef===void 0?{}:{artifactRef},...value.summary===void 0?{}:{summary:value.summary},...observedAt===void 0?{}:{observedAt}})}function buildEvidenceRefV1(input){return validateEvidenceRefV1(input)}function validateVerificationV1(value,label="Verification"){if(assertPlainRecord(value,label),assertExactKeys(value,["version","status","checks"],[],label),value.version!==1)throw new Error(`${label}.version must be 1`);let status2=validateStatus(value.status,`${label}.status`,["passed","failed","unknown"]);if(!Array.isArray(value.checks)||value.checks.some(item=>typeof item!="string"||item.trim()===""))throw new Error(`${label}.checks must contain non-empty strings`);if(new Set(value.checks).size!==value.checks.length)throw new Error(`${label}.checks must not contain duplicates`);return detachedFreeze({version:1,status:status2,checks:[...value.checks].sort()})}function buildVerificationV1(input){return validateVerificationV1(input)}function validatePluginErrorV1(value,label="Plugin error"){if(assertPlainRecord(value,label),assertExactKeys(value,["version","code","message"],["causeCode","diagnosticRef"],label),value.version!==1)throw new Error(`${label}.version must be 1`);assertNonEmptyString(value.code,`${label}.code`),assertNonEmptyString(value.message,`${label}.message`),assertOptionalString(value.causeCode,`${label}.causeCode`);let diagnosticRef=value.diagnosticRef===void 0?void 0:validateArtifactRefV1(value.diagnosticRef,`${label}.diagnosticRef`);return detachedFreeze({version:1,code:value.code,message:value.message,...value.causeCode===void 0?{}:{causeCode:value.causeCode},...diagnosticRef===void 0?{}:{diagnosticRef}})}function buildPluginErrorV1(input){return validatePluginErrorV1(input)}function validatePluginResultV1(value,label="Plugin result"){if(assertPlainRecord(value,label),assertExactKeys(value,["version","operationId","status","summary","artifacts","evidence"],["verification","error"],label),value.version!==1)throw new Error(`${label}.version must be 1`);assertNonEmptyString(value.operationId,`${label}.operationId`);let status2=validateStatus(value.status,`${label}.status`,RESULT_STATUSES_V1);assertNonEmptyString(value.summary,`${label}.summary`);let artifacts=validateArtifactArray(value.artifacts,`${label}.artifacts`);if(!Array.isArray(value.evidence))throw new Error(`${label}.evidence must be an array`);let evidence=value.evidence.map((item,index3)=>validateEvidenceRefV1(item,`${label}.evidence[${index3}]`));if(new Set(evidence.map(item=>item.evidenceId)).size!==evidence.length)throw new Error(`${label}.evidence must not contain duplicate evidenceId values`);let orderedEvidence=Object.freeze(sortByKey(evidence,item=>item.evidenceId)),verification=value.verification===void 0?void 0:validateVerificationV1(value.verification,`${label}.verification`),error2=value.error===void 0?void 0:validatePluginErrorV1(value.error,`${label}.error`);if(status2!=="succeeded"&&error2===void 0)throw new Error(`${label}.error is required for status ${status2}`);if(status2==="succeeded"&&error2!==void 0)throw new Error(`${label}.succeeded must not include error`);if(status2==="succeeded"&&verification?.status==="failed")throw new Error(`${label}.succeeded cannot have failed verification`);return detachedFreeze({version:1,operationId:value.operationId,status:status2,summary:value.summary,artifacts,evidence:orderedEvidence,...verification===void 0?{}:{verification},...error2===void 0?{}:{error:error2}})}function buildPluginResultV1(input){return validatePluginResultV1(input)}function assertJsonResultInputV1(value,label="Result input"){return assertJsonValue(value,label),detachedFreeze(value)}var DIFF_MAX_ITEMS_V1=64,DIFF_MAX_STRING_CHARS_V1=2048,DIFF_MAX_RESULT_BYTES_V1=64*1024;function validateBoundedString2(value,label){if(assertNonEmptyString(value,label),value.length>DIFF_MAX_STRING_CHARS_V1)throw new Error(`${label} exceeds the context budget`)}var DIFF_KINDS_V1=["text","dom","structure","pixel","style"],RESULT_STATUSES_V12=["succeeded","failed","cancelled","needs_user","unsupported"];function validateKind(value,label){if(typeof value!="string"||!DIFF_KINDS_V1.includes(value))throw new Error(`${label} is invalid`);return value}function validateStatus2(value,label){if(typeof value!="string"||!RESULT_STATUSES_V12.includes(value))throw new Error(`${label} is invalid`);return value}function validateMetrics(value,label){if(assertPlainRecord(value,label),assertExactKeys(value,[],["changedPixels","changedRatio","selector"],label),value.changedPixels!==void 0&&(typeof value.changedPixels!="number"||!Number.isSafeInteger(value.changedPixels)||value.changedPixels<0))throw new Error(`${label}.changedPixels must be a non-negative safe integer`);if(value.changedRatio!==void 0&&(assertNonNegativeNumber(value.changedRatio,`${label}.changedRatio`),value.changedRatio>1))throw new Error(`${label}.changedRatio must be at most 1`);return value.selector!==void 0&&validateBoundedString2(value.selector,`${label}.selector`),detachedFreeze({...value.changedPixels===void 0?{}:{changedPixels:value.changedPixels},...value.changedRatio===void 0?{}:{changedRatio:value.changedRatio},...value.selector===void 0?{}:{selector:value.selector}})}function validateThreshold(value,label){if(assertPlainRecord(value,label),assertExactKeys(value,[],["maxChangedPixels","maxChangedRatio","allowedSelectors"],label),value.maxChangedPixels!==void 0&&(typeof value.maxChangedPixels!="number"||!Number.isSafeInteger(value.maxChangedPixels)||value.maxChangedPixels<0))throw new Error(`${label}.maxChangedPixels must be a non-negative safe integer`);if(value.maxChangedRatio!==void 0&&(assertNonNegativeNumber(value.maxChangedRatio,`${label}.maxChangedRatio`),value.maxChangedRatio>1))throw new Error(`${label}.maxChangedRatio must be at most 1`);if(value.allowedSelectors!==void 0){if(!Array.isArray(value.allowedSelectors)||value.allowedSelectors.some(item=>typeof item!="string"||item.trim()===""))throw new Error(`${label}.allowedSelectors must contain non-empty strings`);if(new Set(value.allowedSelectors).size!==value.allowedSelectors.length)throw new Error(`${label}.allowedSelectors must not contain duplicates`);if(value.allowedSelectors.length>DIFF_MAX_ITEMS_V1)throw new Error(`${label}.allowedSelectors must contain at most ${DIFF_MAX_ITEMS_V1} items`);for(let[index3,selector]of value.allowedSelectors.entries())validateBoundedString2(selector,`${label}.allowedSelectors[${index3}]`)}return detachedFreeze({...value.maxChangedPixels===void 0?{}:{maxChangedPixels:value.maxChangedPixels},...value.maxChangedRatio===void 0?{}:{maxChangedRatio:value.maxChangedRatio},...value.allowedSelectors===void 0?{}:{allowedSelectors:[...value.allowedSelectors].sort()}})}function validateDiffRequestV1(value,label="Diff request"){if(assertPlainRecord(value,label),assertExactKeys(value,["version","operationId","kind","before","after"],["threshold"],label),value.version!==1)throw new Error(`${label}.version must be 1`);assertNonEmptyString(value.operationId,`${label}.operationId`);let kind=validateKind(value.kind,`${label}.kind`),before=validateArtifactRefV1(value.before,`${label}.before`),after=validateArtifactRefV1(value.after,`${label}.after`);if(before.artifactRef===after.artifactRef)throw new Error(`${label}.before and after must differ`);let threshold=value.threshold===void 0?void 0:validateThreshold(value.threshold,`${label}.threshold`);return detachedFreeze({version:1,operationId:value.operationId,kind,before,after,...threshold===void 0?{}:{threshold}})}function buildDiffRequestV1(input){return validateDiffRequestV1(input)}function validateDiffResultV1(value,label="Diff result"){if(assertPlainRecord(value,label),assertExactKeys(value,["version","operationId","status","kind","summary","evidence"],["diffArtifact","metrics","verification","error"],label),value.version!==1)throw new Error(`${label}.version must be 1`);assertNonEmptyString(value.operationId,`${label}.operationId`);let resultStatus=validateStatus2(value.status,`${label}.status`),kind=validateKind(value.kind,`${label}.kind`);validateBoundedString2(value.summary,`${label}.summary`);let metrics=value.metrics===void 0?void 0:validateMetrics(value.metrics,`${label}.metrics`),diffArtifact=value.diffArtifact===void 0?void 0:validateArtifactRefV1(value.diffArtifact,`${label}.diffArtifact`);if(!Array.isArray(value.evidence))throw new Error(`${label}.evidence must be an array`);if(value.evidence.length>DIFF_MAX_ITEMS_V1)throw new Error(`${label}.evidence must contain at most ${DIFF_MAX_ITEMS_V1} items`);let evidence=value.evidence.map((item,index3)=>validateEvidenceRefV1(item,`${label}.evidence[${index3}]`));if(new Set(evidence.map(item=>item.evidenceId)).size!==evidence.length)throw new Error(`${label}.evidence must not contain duplicate evidenceId values`);for(let[index3,item]of evidence.entries())validateBoundedString2(item.evidenceId,`${label}.evidence[${index3}].evidenceId`),item.summary!==void 0&&validateBoundedString2(item.summary,`${label}.evidence[${index3}].summary`),item.observedAt!==void 0&&validateBoundedString2(item.observedAt,`${label}.evidence[${index3}].observedAt`);let orderedEvidence=Object.freeze([...evidence].sort((a,b2)=>a.evidenceId.localeCompare(b2.evidenceId))),verification=value.verification===void 0?void 0:validateVerificationV1(value.verification,`${label}.verification`),error2=value.error===void 0?void 0:validatePluginErrorV1(value.error,`${label}.error`);if(resultStatus!=="succeeded"&&error2===void 0)throw new Error(`${label}.error is required for status ${resultStatus}`);if(resultStatus==="succeeded"&&error2!==void 0)throw new Error(`${label}.succeeded must not include error`);if(resultStatus==="succeeded"&&verification?.status==="failed")throw new Error(`${label}.succeeded cannot have failed verification`);let result={version:1,operationId:value.operationId,status:resultStatus,kind,summary:value.summary,...metrics===void 0?{}:{metrics},...diffArtifact===void 0?{}:{diffArtifact},evidence:orderedEvidence,...verification===void 0?{}:{verification},...error2===void 0?{}:{error:error2}};if(new TextEncoder().encode(JSON.stringify(result)).byteLength>DIFF_MAX_RESULT_BYTES_V1)throw new Error(`${label} exceeds the context budget`);return detachedFreeze(result)}function buildDiffResultV1(input){return validateDiffResultV1(input)}var TRACE_KINDS_V1=["session.start","turn.span","llm.request","llm.response","tool.span","lifecycle","error","decision","plugin.log"];var SURFACES_V1=["html","browser","docx","xlsx","pdf","pptx","image"],STATUSES_V1=["succeeded","failed","cancelled","needs_user","unsupported"];function status(value,label){if(typeof value!="string"||!STATUSES_V1.includes(value))throw new Error(`${label} is invalid`);return value}function artifactArray(value,label){if(!Array.isArray(value))throw new Error(`${label} must be an array`);let items=value.map((item,index3)=>validateArtifactRefV1(item,`${label}[${index3}]`));if(new Set(items.map(item=>item.artifactRef)).size!==items.length)throw new Error(`${label} must not contain duplicate artifactRef values`);return Object.freeze([...items].sort((a,b2)=>a.artifactRef.localeCompare(b2.artifactRef)))}function evidenceArray(value,label){if(!Array.isArray(value))throw new Error(`${label} must be an array`);let items=value.map((item,index3)=>validateEvidenceRefV1(item,`${label}[${index3}]`));if(new Set(items.map(item=>item.evidenceId)).size!==items.length)throw new Error(`${label} must not contain duplicate evidenceId values`);return Object.freeze([...items].sort((a,b2)=>a.evidenceId.localeCompare(b2.evidenceId)))}function validateViewport(value,label){if(assertPlainRecord(value,label),assertExactKeys(value,["width","height"],["deviceScaleFactor"],label),assertNonNegativeNumber(value.width,`${label}.width`),assertNonNegativeNumber(value.height,`${label}.height`),value.width===0||value.height===0)throw new Error(`${label} dimensions must be greater than zero`);if(value.deviceScaleFactor!==void 0&&(assertFiniteNumber(value.deviceScaleFactor,`${label}.deviceScaleFactor`),value.deviceScaleFactor<=0))throw new Error(`${label}.deviceScaleFactor must be greater than zero`);return detachedFreeze({width:value.width,height:value.height,...value.deviceScaleFactor===void 0?{}:{deviceScaleFactor:value.deviceScaleFactor}})}function validateRenderRequestV1(value,label="Render request"){if(assertPlainRecord(value,label),assertExactKeys(value,["version","operationId","source","surface"],["page","viewport","options"],label),value.version!==1)throw new Error(`${label}.version must be 1`);assertNonEmptyString(value.operationId,`${label}.operationId`);let source=validateArtifactRefV1(value.source,`${label}.source`);if(typeof value.surface!="string"||!SURFACES_V1.includes(value.surface))throw new Error(`${label}.surface is invalid`);let surface=value.surface;value.page!==void 0&&assertNonNegativeSafeInteger(value.page,`${label}.page`);let viewport=value.viewport===void 0?void 0:validateViewport(value.viewport,`${label}.viewport`);return value.options!==void 0&&assertJsonValue(value.options,`${label}.options`),detachedFreeze({version:1,operationId:value.operationId,source,surface,...value.page===void 0?{}:{page:value.page},...viewport===void 0?{}:{viewport},...value.options===void 0?{}:{options:value.options}})}function buildRenderRequestV1(input){return validateRenderRequestV1(input)}function validateRenderResultV1(value,label="Render result"){if(assertPlainRecord(value,label),assertExactKeys(value,["version","operationId","status","renderer","artifacts","evidence","summary"],["verification","error"],label),value.version!==1)throw new Error(`${label}.version must be 1`);assertNonEmptyString(value.operationId,`${label}.operationId`);let resultStatus=status(value.status,`${label}.status`);assertPlainRecord(value.renderer,`${label}.renderer`),assertExactKeys(value.renderer,["id","version"],[],`${label}.renderer`),assertNonEmptyString(value.renderer.id,`${label}.renderer.id`),assertNonEmptyString(value.renderer.version,`${label}.renderer.version`);let artifacts=artifactArray(value.artifacts,`${label}.artifacts`),evidence=evidenceArray(value.evidence,`${label}.evidence`);assertNonEmptyString(value.summary,`${label}.summary`);let verification=value.verification===void 0?void 0:validateVerificationV1(value.verification,`${label}.verification`),error2=value.error===void 0?void 0:validatePluginErrorV1(value.error,`${label}.error`);if(resultStatus!=="succeeded"&&error2===void 0)throw new Error(`${label}.error is required for status ${resultStatus}`);if(resultStatus==="succeeded"&&error2!==void 0)throw new Error(`${label}.succeeded must not include error`);if(resultStatus==="succeeded"&&verification?.status==="failed")throw new Error(`${label}.succeeded cannot have failed verification`);return detachedFreeze({version:1,operationId:value.operationId,status:resultStatus,renderer:{id:value.renderer.id,version:value.renderer.version},artifacts,evidence,summary:value.summary,...verification===void 0?{}:{verification},...error2===void 0?{}:{error:error2}})}function buildRenderResultV1(input){return validateRenderResultV1(input)}var shell_exports={};__export(shell_exports,{POWERSHELL_ARGS:()=>POWERSHELL_ARGS,getPowerShellConfig:()=>getPowerShellConfig,getShellConfig:()=>getShellConfig,getShellEnv:()=>getShellEnv,killProcessTree:()=>killProcessTree,killTrackedDetachedChildren:()=>killTrackedDetachedChildren,sanitizeBinaryOutput:()=>sanitizeBinaryOutput,trackDetachedChildPid:()=>trackDetachedChildPid,untrackDetachedChildPid:()=>untrackDetachedChildPid});import{existsSync as existsSync2}from"node:fs";import{delimiter,join as join10}from"node:path";import{spawn as spawn2,spawnSync}from"child_process";function isLegacyWslBashPath(path7){let normalized=path7.replace(/\//g,"\\").toLowerCase();return/^[a-z]:\\windows\\(?:system32|sysnative)\\bash\.exe$/.test(normalized)}function getBashShellConfig(shell){return isLegacyWslBashPath(shell)?{shell,args:["-s"],commandTransport:"stdin"}:{shell,args:["-c"]}}function findExecutableOnPath(executable){if(process.platform==="win32"){try{let result=spawnSync("where",[executable],{encoding:"utf-8",timeout:5e3,windowsHide:!0});if(result.status===0&&result.stdout){let firstMatch=result.stdout.trim().split(/\r?\n/)[0];if(firstMatch&&existsSync2(firstMatch))return firstMatch}}catch{}return null}try{let result=spawnSync("which",[executable],{encoding:"utf-8",timeout:5e3});if(result.status===0&&result.stdout){let firstMatch=result.stdout.trim().split(/\r?\n/)[0];if(firstMatch)return firstMatch}}catch{}return null}function getShellConfig(customShellPath){if(customShellPath){if(existsSync2(customShellPath))return getBashShellConfig(customShellPath);throw new Error(t("Custom shell path not found: {path}",{path:customShellPath}))}if(process.platform==="win32"){let paths=[],programFiles=process.env.ProgramFiles;programFiles&&paths.push(`${programFiles}\\Git\\bin\\bash.exe`);let programFilesX86=process.env["ProgramFiles(x86)"];programFilesX86&&paths.push(`${programFilesX86}\\Git\\bin\\bash.exe`);for(let path7 of paths)if(existsSync2(path7))return getBashShellConfig(path7);let bashOnPath2=findExecutableOnPath("bash.exe");if(bashOnPath2)return getBashShellConfig(bashOnPath2);throw new Error(`${t("No bash shell found. Options:")}
|
|
397
397
|
${t("1. Install Git for Windows: https://git-scm.com/download/win")}
|
|
398
398
|
${t("2. Add your bash to PATH (Cygwin, MSYS2, etc.)")}
|
|
399
399
|
${t("3. Set shellPath in settings.json")}
|
|
400
400
|
|
|
401
401
|
${t("Searched Git Bash in:")}
|
|
402
402
|
${paths.map(p=>` ${p}`).join(`
|
|
403
|
-
`)}`)}if(existsSync2("/bin/bash"))return getBashShellConfig("/bin/bash");let bashOnPath=findExecutableOnPath("bash");return bashOnPath?getBashShellConfig(bashOnPath):{shell:"sh",args:["-c"]}}var POWERSHELL_ARGS=["-NoProfile","-NonInteractive","-ExecutionPolicy","Bypass","-Command"];function getPowerShellConfig(){if(process.platform!=="win32")throw new Error(t("The powershell tool is only available on Windows."));let shell=findExecutableOnPath("pwsh.exe")??findExecutableOnPath("powershell.exe");if(!shell)throw new Error(t("No PowerShell executable found. Install PowerShell or add powershell.exe/pwsh.exe to PATH."));return{shell,args:[...POWERSHELL_ARGS]}}function getShellEnv(){let binDir=getBinDir(),pathKey=Object.keys(process.env).find(key=>key.toLowerCase()==="path")??"PATH",currentPath=process.env[pathKey]??"",updatedPath=currentPath.split(delimiter).filter(Boolean).includes(binDir)?currentPath:[binDir,currentPath].filter(Boolean).join(delimiter);return{...process.env,[pathKey]:updatedPath}}function sanitizeBinaryOutput(str2){return str2.replace(/[\x00-\x08\x0B\x0C\x0E-\x1F\uFFF9-\uFFFB]/g,"")}var trackedDetachedChildPids=new Set;function trackDetachedChildPid(pid){trackedDetachedChildPids.add(pid)}function untrackDetachedChildPid(pid){trackedDetachedChildPids.delete(pid)}function killTrackedDetachedChildren(){for(let pid of trackedDetachedChildPids)killProcessTree(pid);trackedDetachedChildPids.clear()}function killProcessTree(pid){if(process.platform==="win32")try{spawn2(join10(process.env.SystemRoot??"C:\\Windows","System32","taskkill.exe"),["/F","/T","/PID",String(pid)],{stdio:"ignore",detached:!0,windowsHide:!0}).once("error",()=>{})}catch{}else try{process.kill(-pid,"SIGKILL")}catch{try{process.kill(pid,"SIGKILL")}catch{}}}var compat_exports={};__export(compat_exports,{ANTHROPIC_API_KEY_ENV:()=>ANTHROPIC_API_KEY_ENV,ANTHROPIC_AUTH_TOKEN_ENV:()=>ANTHROPIC_AUTH_TOKEN_ENV,ANTHROPIC_OAUTH_TOKEN_ENV:()=>ANTHROPIC_OAUTH_TOKEN_ENV,AssistantMessageEventStream:()=>AssistantMessageEventStream,DEFAULT_MAX_AGENT_RETRY_DELAY_MS:()=>DEFAULT_MAX_AGENT_RETRY_DELAY_MS,EventStream:()=>EventStream,InMemoryCredentialStore:()=>InMemoryCredentialStore,InMemoryModelsStore:()=>InMemoryModelsStore,ModelsError:()=>ModelsError,StringEnum:()=>StringEnum,Type:()=>typebox_exports,anthropicMessagesApi:()=>anthropicMessagesApi,appendAssistantMessageDiagnostic:()=>appendAssistantMessageDiagnostic,azureOpenAIResponsesApi:()=>azureOpenAIResponsesApi,bedrockConverseStreamApi:()=>bedrockConverseStreamApi,calculateCost:()=>calculateCost,clampThinkingLevel:()=>clampThinkingLevel,cleanupSessionResources:()=>cleanupSessionResources,complete:()=>complete,completeSimple:()=>completeSimple,contentText:()=>contentText,createAssistantMessageDiagnostic:()=>createAssistantMessageDiagnostic,createAssistantMessageEventStream:()=>createAssistantMessageEventStream,createFauxCore:()=>createFauxCore,createImagesModels:()=>createImagesModels,createImagesProvider:()=>createImagesProvider,createModels:()=>createModels,createProvider:()=>createProvider,defaultProviderAuthContext:()=>defaultProviderAuthContext,envApiKeyAuth:()=>envApiKeyAuth,extractDiagnosticError:()=>extractDiagnosticError,fauxAssistantMessage:()=>fauxAssistantMessage,fauxProvider:()=>fauxProvider,fauxText:()=>fauxText,fauxThinking:()=>fauxThinking,fauxToolCall:()=>fauxToolCall,findEnvKeys:()=>findEnvKeys,formatThrownValue:()=>formatThrownValue,generateImages:()=>generateImages,generateImagesOpenRouter:()=>generateImagesOpenRouter,getApiProvider:()=>getApiProvider,getApiProviders:()=>getApiProviders,getEnvApiKey:()=>getEnvApiKey,getImageModel:()=>getImageModel,getImageModels:()=>getImageModels,getImageProviders:()=>getImageProviders,getImagesApiProvider:()=>getImagesApiProvider,getModel:()=>getModel,getModels:()=>getModels,getOverflowPatterns:()=>getOverflowPatterns,getProviders:()=>getProviders,getSupportedThinkingLevels:()=>getSupportedThinkingLevels,googleGenerativeAIApi:()=>googleGenerativeAIApi,googleVertexApi:()=>googleVertexApi,hasApi:()=>hasApi,isContextOverflow:()=>isContextOverflow,isRecoverableLength:()=>isRecoverableLength,isRetryableAssistantError:()=>isRetryableAssistantError,lazyApi:()=>lazyApi,lazyOAuth:()=>lazyOAuth,lazyStream:()=>lazyStream,mistralConversationsApi:()=>mistralConversationsApi,modelsAreEqual:()=>modelsAreEqual,openAICodexResponsesApi:()=>openAICodexResponsesApi,openAICompletionsApi:()=>openAICompletionsApi,openAIResponsesApi:()=>openAIResponsesApi,parseJsonWithRepair:()=>parseJsonWithRepair,parseStreamingJson:()=>parseStreamingJson,piMessagesApi:()=>piMessagesApi,registerApiProvider:()=>registerApiProvider,registerBuiltInApiProviders:()=>registerBuiltInApiProviders,registerBuiltInImagesApiProviders:()=>registerBuiltInImagesApiProviders,registerFauxProvider:()=>registerFauxProvider,registerImagesApiProvider:()=>registerImagesApiProvider,registerSessionResourceCleanup:()=>registerSessionResourceCleanup,repairJson:()=>repairJson,resetApiProviders:()=>resetApiProviders,retryAssistantCall:()=>retryAssistantCall,retryDelayMs:()=>retryDelayMs,setBedrockProviderModule:()=>setBedrockProviderModule,stream:()=>stream,streamAnthropic:()=>streamAnthropic,streamAzureOpenAIResponses:()=>streamAzureOpenAIResponses,streamGoogle:()=>streamGoogle,streamGoogleVertex:()=>streamGoogleVertex,streamMistral:()=>streamMistral,streamOpenAICodexResponses:()=>streamOpenAICodexResponses,streamOpenAICompletions:()=>streamOpenAICompletions,streamOpenAIResponses:()=>streamOpenAIResponses,streamSimple:()=>streamSimple,streamSimpleAnthropic:()=>streamSimpleAnthropic,streamSimpleAzureOpenAIResponses:()=>streamSimpleAzureOpenAIResponses,streamSimpleGoogle:()=>streamSimpleGoogle,streamSimpleGoogleVertex:()=>streamSimpleGoogleVertex,streamSimpleMistral:()=>streamSimpleMistral,streamSimpleOpenAICodexResponses:()=>streamSimpleOpenAICodexResponses,streamSimpleOpenAICompletions:()=>streamSimpleOpenAICompletions,streamSimpleOpenAIResponses:()=>streamSimpleOpenAIResponses,unregisterApiProviders:()=>unregisterApiProviders,uuidv7:()=>uuidv7,validateToolArguments:()=>validateToolArguments,validateToolCall:()=>validateToolCall});var anthropicMessagesApi=()=>lazyApi(()=>import("./anthropic-messages-3FJHRAJL.js"));var azureOpenAIResponsesApi=()=>lazyApi(()=>import("./azure-openai-responses-GCL47IDS.js"));var __rewriteRelativeImportExtension=function(path7,preserveJsx){return typeof path7=="string"&&/^\.\.?\//.test(path7)?path7.replace(/\.(tsx)$|((?:\.d)?)((?:\.[^./]+?)?)\.([cm]?)ts$/i,function(m2,tsx,d2,ext,cm){return tsx?preserveJsx?".jsx":".js":d2&&(!ext||!cm)?m2:d2+ext+"."+cm.toLowerCase()+"js"}):path7},importNodeOnlyApi=specifier=>{let runtimeSpecifier=import.meta.url.endsWith(".js")?specifier.replace(/\.ts$/,".js"):specifier;return import(__rewriteRelativeImportExtension(runtimeSpecifier))},bedrockModuleOverride;function setBedrockProviderModule(module){bedrockModuleOverride=module}var bedrockConverseStreamApi=()=>lazyApi(async()=>bedrockModuleOverride??await importNodeOnlyApi("./bedrock-converse-stream.ts"));var googleGenerativeAIApi=()=>lazyApi(()=>import("./google-generative-ai-6BMXWA44.js"));var googleVertexApi=()=>lazyApi(()=>import("./google-vertex-6H7NLRTK.js"));var mistralConversationsApi=()=>lazyApi(()=>import("./mistral-conversations-IXUHSFSJ.js"));var openAICodexResponsesApi=()=>lazyApi(()=>import("./openai-codex-responses-YHUAEVCM.js"));var openAICompletionsApi=()=>lazyApi(()=>import("./openai-completions-ULQCFC72.js"));var openAIResponsesApi=()=>lazyApi(()=>import("./openai-responses-NLLAJDPS.js"));var piMessagesApi=()=>lazyApi(()=>import("./pi-messages-EJTI2EJ3.js"));var __rewriteRelativeImportExtension2=function(path7,preserveJsx){return typeof path7=="string"&&/^\.\.?\//.test(path7)?path7.replace(/\.(tsx)$|((?:\.d)?)((?:\.[^./]+?)?)\.([cm]?)ts$/i,function(m2,tsx,d2,ext,cm){return tsx?preserveJsx?".jsx":".js":d2&&(!ext||!cm)?m2:d2+ext+"."+cm.toLowerCase()+"js"}):path7},_existsSync=null,_homedir=null,_join=null,dynamicImport=specifier=>import(__rewriteRelativeImportExtension2(specifier)),NODE_FS_SPECIFIER="node:fs",NODE_OS_SPECIFIER="node:os",NODE_PATH_SPECIFIER="node:path";typeof process<"u"&&(process.versions?.node||process.versions?.bun)&&(dynamicImport(NODE_FS_SPECIFIER).then(m2=>{_existsSync=m2.existsSync}),dynamicImport(NODE_OS_SPECIFIER).then(m2=>{_homedir=m2.homedir}),dynamicImport(NODE_PATH_SPECIFIER).then(m2=>{_join=m2.join}));var ANTHROPIC_AUTH_TOKEN_ENV="ANTHROPIC_AUTH_TOKEN",ANTHROPIC_OAUTH_TOKEN_ENV="ANTHROPIC_OAUTH_TOKEN",ANTHROPIC_API_KEY_ENV="ANTHROPIC_API_KEY",cachedVertexAdcCredentialsExists=null;function hasVertexAdcCredentials(env2){let explicitCredentialsPath=env2?.GOOGLE_APPLICATION_CREDENTIALS;if(explicitCredentialsPath)return _existsSync?_existsSync(explicitCredentialsPath):!1;if(cachedVertexAdcCredentialsExists===null){if(!_existsSync||!_homedir||!_join)return typeof process<"u"&&(process.versions?.node||process.versions?.bun)||(cachedVertexAdcCredentialsExists=!1),!1;let gacPath=getProviderEnvValue("GOOGLE_APPLICATION_CREDENTIALS",env2);gacPath?cachedVertexAdcCredentialsExists=_existsSync(gacPath):cachedVertexAdcCredentialsExists=_existsSync(_join(_homedir(),".config","gcloud","application_default_credentials.json"))}return cachedVertexAdcCredentialsExists}function getApiKeyEnvVars(provider){if(provider==="github-copilot")return["COPILOT_GITHUB_TOKEN"];if(provider==="anthropic")return[ANTHROPIC_AUTH_TOKEN_ENV,ANTHROPIC_OAUTH_TOKEN_ENV,ANTHROPIC_API_KEY_ENV];let envVar={"ant-ling":"ANT_LING_API_KEY","qwen-token-plan":"QWEN_TOKEN_PLAN_API_KEY","qwen-token-plan-cn":"QWEN_TOKEN_PLAN_CN_API_KEY","qwen-token-plan-individual":"QWEN_TOKEN_PLAN_API_KEY",openai:"OPENAI_API_KEY","azure-openai-responses":"AZURE_OPENAI_API_KEY",nvidia:"NVIDIA_API_KEY",deepseek:"DEEPSEEK_API_KEY",google:"GEMINI_API_KEY","google-vertex":"GOOGLE_CLOUD_API_KEY",groq:"GROQ_API_KEY",cerebras:"CEREBRAS_API_KEY",xai:"XAI_API_KEY",radius:"RADIUS_API_KEY",openrouter:"OPENROUTER_API_KEY","vercel-ai-gateway":"AI_GATEWAY_API_KEY",zai:"ZAI_API_KEY","zai-coding-cn":"ZAI_CODING_CN_API_KEY",mistral:"MISTRAL_API_KEY",minimax:"MINIMAX_API_KEY","minimax-cn":"MINIMAX_CN_API_KEY",moonshotai:"MOONSHOT_API_KEY","moonshotai-cn":"MOONSHOT_API_KEY",huggingface:"HF_TOKEN",fireworks:"FIREWORKS_API_KEY",together:"TOGETHER_API_KEY",baseten:"BASETEN_API_KEY",opencode:"OPENCODE_API_KEY","opencode-go":"OPENCODE_API_KEY","kimi-coding":"KIMI_API_KEY","cloudflare-workers-ai":"CLOUDFLARE_API_KEY","cloudflare-ai-gateway":"CLOUDFLARE_API_KEY",xiaomi:"XIAOMI_API_KEY","xiaomi-token-plan-cn":"XIAOMI_TOKEN_PLAN_CN_API_KEY","xiaomi-token-plan-ams":"XIAOMI_TOKEN_PLAN_AMS_API_KEY","xiaomi-token-plan-sgp":"XIAOMI_TOKEN_PLAN_SGP_API_KEY"}[provider];return envVar?[envVar]:void 0}function findEnvKeys(provider,env2){let envVars=getApiKeyEnvVars(provider);if(!envVars)return;let found=envVars.filter(envVar=>!!getProviderEnvValue(envVar,env2));return found.length>0?found:void 0}function getEnvApiKey(provider,env2){let envKeys=findEnvKeys(provider,env2);if(envKeys?.[0]){let apiKeyEnv=provider==="anthropic"?envKeys.find(key=>key!==ANTHROPIC_AUTH_TOKEN_ENV):envKeys[0];if(apiKeyEnv)return getProviderEnvValue(apiKeyEnv,env2)}if(provider==="google-vertex"){let hasCredentials=hasVertexAdcCredentials(env2),hasProject=!!(getProviderEnvValue("GOOGLE_CLOUD_PROJECT",env2)||getProviderEnvValue("GCLOUD_PROJECT",env2)),hasLocation=!!getProviderEnvValue("GOOGLE_CLOUD_LOCATION",env2);if(hasCredentials&&hasProject&&hasLocation)return"<authenticated>"}if(provider==="amazon-bedrock"&&(getProviderEnvValue("AWS_PROFILE",env2)||getProviderEnvValue("AWS_ACCESS_KEY_ID",env2)&&getProviderEnvValue("AWS_SECRET_ACCESS_KEY",env2)||getProviderEnvValue("AWS_BEARER_TOKEN_BEDROCK",env2)||getProviderEnvValue("AWS_CONTAINER_CREDENTIALS_RELATIVE_URI",env2)||getProviderEnvValue("AWS_CONTAINER_CREDENTIALS_FULL_URI",env2)||getProviderEnvValue("AWS_WEB_IDENTITY_TOKEN_FILE",env2)))return"<authenticated>"}var IMAGE_MODELS={openrouter:{"black-forest-labs/flux-3-image":{id:"black-forest-labs/flux-3-image",name:"Black Forest Labs: FLUX.3 Image",api:"openrouter-images",provider:"openrouter",baseUrl:"https://openrouter.ai/api/v1",input:["text","image"],output:["image"],cost:{input:0,output:0,cacheRead:0,cacheWrite:0}},"black-forest-labs/flux.2-flex":{id:"black-forest-labs/flux.2-flex",name:"Black Forest Labs: FLUX.2 Flex",api:"openrouter-images",provider:"openrouter",baseUrl:"https://openrouter.ai/api/v1",input:["text","image"],output:["image"],cost:{input:0,output:0,cacheRead:0,cacheWrite:0}},"black-forest-labs/flux.2-klein-4b":{id:"black-forest-labs/flux.2-klein-4b",name:"Black Forest Labs: FLUX.2 Klein 4B",api:"openrouter-images",provider:"openrouter",baseUrl:"https://openrouter.ai/api/v1",input:["text","image"],output:["image"],cost:{input:0,output:0,cacheRead:0,cacheWrite:0}},"black-forest-labs/flux.2-max":{id:"black-forest-labs/flux.2-max",name:"Black Forest Labs: FLUX.2 Max",api:"openrouter-images",provider:"openrouter",baseUrl:"https://openrouter.ai/api/v1",input:["text","image"],output:["image"],cost:{input:0,output:0,cacheRead:0,cacheWrite:0}},"black-forest-labs/flux.2-pro":{id:"black-forest-labs/flux.2-pro",name:"Black Forest Labs: FLUX.2 Pro",api:"openrouter-images",provider:"openrouter",baseUrl:"https://openrouter.ai/api/v1",input:["text","image"],output:["image"],cost:{input:0,output:0,cacheRead:0,cacheWrite:0}},"bytedance-seed/seedream-4.5":{id:"bytedance-seed/seedream-4.5",name:"ByteDance Seed: Seedream 4.5",api:"openrouter-images",provider:"openrouter",baseUrl:"https://openrouter.ai/api/v1",input:["image","text"],output:["image"],cost:{input:0,output:0,cacheRead:0,cacheWrite:0}},"bytedance-seed/seedream-5-0-flash":{id:"bytedance-seed/seedream-5-0-flash",name:"ByteDance Seed: Seedream 5.0 Flash",api:"openrouter-images",provider:"openrouter",baseUrl:"https://openrouter.ai/api/v1",input:["text","image"],output:["image"],cost:{input:0,output:0,cacheRead:0,cacheWrite:0}},"bytedance-seed/seedream-5-0-lite":{id:"bytedance-seed/seedream-5-0-lite",name:"ByteDance Seed: Seedream 5.0 Lite",api:"openrouter-images",provider:"openrouter",baseUrl:"https://openrouter.ai/api/v1",input:["text","image"],output:["image"],cost:{input:0,output:0,cacheRead:0,cacheWrite:0}},"bytedance-seed/seedream-5-0-pro":{id:"bytedance-seed/seedream-5-0-pro",name:"ByteDance Seed: Seedream 5.0 Pro",api:"openrouter-images",provider:"openrouter",baseUrl:"https://openrouter.ai/api/v1",input:["text","image"],output:["image"],cost:{input:0,output:0,cacheRead:0,cacheWrite:0}},"google/gemini-2.5-flash-image":{id:"google/gemini-2.5-flash-image",name:"Google: Nano Banana (Gemini 2.5 Flash Image)",api:"openrouter-images",provider:"openrouter",baseUrl:"https://openrouter.ai/api/v1",input:["image","text"],output:["image","text"],cost:{input:.3,output:2.5,cacheRead:.03,cacheWrite:.0833333333333333}},"google/gemini-3-pro-image":{id:"google/gemini-3-pro-image",name:"Google: Nano Banana Pro (Gemini 3 Pro Image)",api:"openrouter-images",provider:"openrouter",baseUrl:"https://openrouter.ai/api/v1",input:["image","text"],output:["image","text"],cost:{input:2,output:12,cacheRead:.19999999999999998,cacheWrite:.375}},"google/gemini-3-pro-image-preview":{id:"google/gemini-3-pro-image-preview",name:"Google: Nano Banana Pro (Gemini 3 Pro Image Preview)",api:"openrouter-images",provider:"openrouter",baseUrl:"https://openrouter.ai/api/v1",input:["image","text"],output:["image","text"],cost:{input:2,output:12,cacheRead:.19999999999999998,cacheWrite:.375}},"google/gemini-3.1-flash-image":{id:"google/gemini-3.1-flash-image",name:"Google: Nano Banana 2 (Gemini 3.1 Flash Image)",api:"openrouter-images",provider:"openrouter",baseUrl:"https://openrouter.ai/api/v1",input:["image","text"],output:["image","text"],cost:{input:.5,output:3,cacheRead:0,cacheWrite:0}},"google/gemini-3.1-flash-image-preview":{id:"google/gemini-3.1-flash-image-preview",name:"Google: Nano Banana 2 (Gemini 3.1 Flash Image Preview)",api:"openrouter-images",provider:"openrouter",baseUrl:"https://openrouter.ai/api/v1",input:["image","text"],output:["image","text"],cost:{input:.5,output:3,cacheRead:0,cacheWrite:0}},"google/gemini-3.1-flash-lite-image":{id:"google/gemini-3.1-flash-lite-image",name:"Google: Nano Banana 2 Lite (Gemini 3.1 Flash Lite Image)",api:"openrouter-images",provider:"openrouter",baseUrl:"https://openrouter.ai/api/v1",input:["image","text"],output:["image","text"],cost:{input:.25,output:1.5,cacheRead:0,cacheWrite:0}},"google/gemini-nano-banana-2.1":{id:"google/gemini-nano-banana-2.1",name:"Google: Nano Banana 2.1",api:"openrouter-images",provider:"openrouter",baseUrl:"https://openrouter.ai/api/v1",input:["image","text"],output:["image","text"],cost:{input:1.5,output:7.5,cacheRead:0,cacheWrite:0}},"inclusionai/ming-image-0.1-design":{id:"inclusionai/ming-image-0.1-design",name:"inclusionAI: Ming Image 0.1 Design",api:"openrouter-images",provider:"openrouter",baseUrl:"https://openrouter.ai/api/v1",input:["text"],output:["image"],cost:{input:0,output:0,cacheRead:0,cacheWrite:0}},"inclusionai/ming-image-0.1-design-layer":{id:"inclusionai/ming-image-0.1-design-layer",name:"inclusionAI: Ming Image 0.1 Design Layer",api:"openrouter-images",provider:"openrouter",baseUrl:"https://openrouter.ai/api/v1",input:["text","image"],output:["image"],cost:{input:0,output:0,cacheRead:0,cacheWrite:0}},"krea/krea-2-large":{id:"krea/krea-2-large",name:"Krea: Krea 2 Large",api:"openrouter-images",provider:"openrouter",baseUrl:"https://openrouter.ai/api/v1",input:["text","image"],output:["image"],cost:{input:0,output:0,cacheRead:0,cacheWrite:0}},"krea/krea-2-medium":{id:"krea/krea-2-medium",name:"Krea: Krea 2 Medium",api:"openrouter-images",provider:"openrouter",baseUrl:"https://openrouter.ai/api/v1",input:["text","image"],output:["image"],cost:{input:0,output:0,cacheRead:0,cacheWrite:0}},"krea/krea-2-medium-turbo":{id:"krea/krea-2-medium-turbo",name:"Krea: Krea 2 Medium Turbo",api:"openrouter-images",provider:"openrouter",baseUrl:"https://openrouter.ai/api/v1",input:["text","image"],output:["image"],cost:{input:0,output:0,cacheRead:0,cacheWrite:0}},"meta/muse-image":{id:"meta/muse-image",name:"Meta: Muse Image",api:"openrouter-images",provider:"openrouter",baseUrl:"https://openrouter.ai/api/v1",input:["text","image"],output:["image"],cost:{input:0,output:0,cacheRead:0,cacheWrite:0}},"microsoft/mai-image-2.5":{id:"microsoft/mai-image-2.5",name:"Microsoft AI: MAI-Image-2.5",api:"openrouter-images",provider:"openrouter",baseUrl:"https://openrouter.ai/api/v1",input:["text","image"],output:["image"],cost:{input:5,output:0,cacheRead:0,cacheWrite:0}},"microsoft/mai-image-2.5-pro":{id:"microsoft/mai-image-2.5-pro",name:"Microsoft AI: MAI-Image-2.5 Pro",api:"openrouter-images",provider:"openrouter",baseUrl:"https://openrouter.ai/api/v1",input:["text","image"],output:["image"],cost:{input:5,output:0,cacheRead:0,cacheWrite:0}},"microsoft/mai-image-2.6":{id:"microsoft/mai-image-2.6",name:"Microsoft AI: MAI-Image-2.6",api:"openrouter-images",provider:"openrouter",baseUrl:"https://openrouter.ai/api/v1",input:["text","image"],output:["image"],cost:{input:5,output:0,cacheRead:0,cacheWrite:0}},"microsoft/mai-image-2.6-flash":{id:"microsoft/mai-image-2.6-flash",name:"Microsoft AI: MAI-Image-2.6 Flash",api:"openrouter-images",provider:"openrouter",baseUrl:"https://openrouter.ai/api/v1",input:["text","image"],output:["image"],cost:{input:1.75,output:0,cacheRead:0,cacheWrite:0}},"openai/gpt-5-image":{id:"openai/gpt-5-image",name:"OpenAI: GPT-5 Image",api:"openrouter-images",provider:"openrouter",baseUrl:"https://openrouter.ai/api/v1",input:["image","text"],output:["image","text"],cost:{input:10,output:10,cacheRead:1.25,cacheWrite:0}},"openai/gpt-5-image-mini":{id:"openai/gpt-5-image-mini",name:"OpenAI: GPT-5 Image Mini",api:"openrouter-images",provider:"openrouter",baseUrl:"https://openrouter.ai/api/v1",input:["image","text"],output:["image","text"],cost:{input:2.5,output:2,cacheRead:.25,cacheWrite:0}},"openai/gpt-5.4-image-2":{id:"openai/gpt-5.4-image-2",name:"OpenAI: GPT-5.4 Image 2",api:"openrouter-images",provider:"openrouter",baseUrl:"https://openrouter.ai/api/v1",input:["image","text"],output:["image","text"],cost:{input:8,output:15,cacheRead:2,cacheWrite:0}},"openai/gpt-image-1":{id:"openai/gpt-image-1",name:"OpenAI: GPT Image 1",api:"openrouter-images",provider:"openrouter",baseUrl:"https://openrouter.ai/api/v1",input:["text","image"],output:["image"],cost:{input:10,output:10,cacheRead:1.25,cacheWrite:0}},"openai/gpt-image-1-mini":{id:"openai/gpt-image-1-mini",name:"OpenAI: GPT Image 1 Mini",api:"openrouter-images",provider:"openrouter",baseUrl:"https://openrouter.ai/api/v1",input:["text","image"],output:["image"],cost:{input:2.5,output:2.5,cacheRead:.25,cacheWrite:0}},"openai/gpt-image-2":{id:"openai/gpt-image-2",name:"OpenAI: GPT Image 2",api:"openrouter-images",provider:"openrouter",baseUrl:"https://openrouter.ai/api/v1",input:["text","image"],output:["image"],cost:{input:8,output:8,cacheRead:2,cacheWrite:0}},"openai/gpt-image-2.5-flare":{id:"openai/gpt-image-2.5-flare",name:"OpenAI: GPT Image 2.5 Flare",api:"openrouter-images",provider:"openrouter",baseUrl:"https://openrouter.ai/api/v1",input:["text","image"],output:["image"],cost:{input:8,output:8,cacheRead:2,cacheWrite:0}},"openai/gpt-image-2.5-sunburst":{id:"openai/gpt-image-2.5-sunburst",name:"OpenAI: GPT Image 2.5 Sunburst",api:"openrouter-images",provider:"openrouter",baseUrl:"https://openrouter.ai/api/v1",input:["text","image"],output:["image"],cost:{input:8,output:8,cacheRead:2,cacheWrite:0}},"openrouter/auto":{id:"openrouter/auto",name:"Auto Router",api:"openrouter-images",provider:"openrouter",baseUrl:"https://openrouter.ai/api/v1",input:["text","image"],output:["text","image"],cost:{input:-1e6,output:-1e6,cacheRead:0,cacheWrite:0}},"openrouter/auto-beta":{id:"openrouter/auto-beta",name:"Auto Router (Beta)",api:"openrouter-images",provider:"openrouter",baseUrl:"https://openrouter.ai/api/v1",input:["text","image"],output:["text","image"],cost:{input:-1e6,output:-1e6,cacheRead:0,cacheWrite:0}},"qwen/qwen-image-3":{id:"qwen/qwen-image-3",name:"Qwen: Qwen Image 3",api:"openrouter-images",provider:"openrouter",baseUrl:"https://openrouter.ai/api/v1",input:["text","image"],output:["image"],cost:{input:0,output:0,cacheRead:0,cacheWrite:0}},"qwen/qwen-image-3-pro":{id:"qwen/qwen-image-3-pro",name:"Qwen: Qwen Image 3 Pro",api:"openrouter-images",provider:"openrouter",baseUrl:"https://openrouter.ai/api/v1",input:["text","image"],output:["image"],cost:{input:0,output:0,cacheRead:0,cacheWrite:0}},"recraft/recraft-v3":{id:"recraft/recraft-v3",name:"Recraft: Recraft V3",api:"openrouter-images",provider:"openrouter",baseUrl:"https://openrouter.ai/api/v1",input:["text","image"],output:["image"],cost:{input:0,output:0,cacheRead:0,cacheWrite:0}},"recraft/recraft-v4":{id:"recraft/recraft-v4",name:"Recraft: Recraft V4",api:"openrouter-images",provider:"openrouter",baseUrl:"https://openrouter.ai/api/v1",input:["text","image"],output:["image"],cost:{input:0,output:0,cacheRead:0,cacheWrite:0}},"recraft/recraft-v4-pro":{id:"recraft/recraft-v4-pro",name:"Recraft: Recraft V4 Pro",api:"openrouter-images",provider:"openrouter",baseUrl:"https://openrouter.ai/api/v1",input:["text","image"],output:["image"],cost:{input:0,output:0,cacheRead:0,cacheWrite:0}},"recraft/recraft-v4-pro-vector":{id:"recraft/recraft-v4-pro-vector",name:"Recraft: Recraft V4 Pro Vector",api:"openrouter-images",provider:"openrouter",baseUrl:"https://openrouter.ai/api/v1",input:["text","image"],output:["image"],cost:{input:0,output:0,cacheRead:0,cacheWrite:0}},"recraft/recraft-v4-styles":{id:"recraft/recraft-v4-styles",name:"Recraft: Recraft V4 Styles",api:"openrouter-images",provider:"openrouter",baseUrl:"https://openrouter.ai/api/v1",input:["text","image"],output:["image"],cost:{input:0,output:0,cacheRead:0,cacheWrite:0}},"recraft/recraft-v4-styles-pro":{id:"recraft/recraft-v4-styles-pro",name:"Recraft: Recraft V4 Styles Pro",api:"openrouter-images",provider:"openrouter",baseUrl:"https://openrouter.ai/api/v1",input:["text","image"],output:["image"],cost:{input:0,output:0,cacheRead:0,cacheWrite:0}},"recraft/recraft-v4-styles-pro-vector":{id:"recraft/recraft-v4-styles-pro-vector",name:"Recraft: Recraft V4 Styles Pro Vector",api:"openrouter-images",provider:"openrouter",baseUrl:"https://openrouter.ai/api/v1",input:["text","image"],output:["image"],cost:{input:0,output:0,cacheRead:0,cacheWrite:0}},"recraft/recraft-v4-styles-vector":{id:"recraft/recraft-v4-styles-vector",name:"Recraft: Recraft V4 Styles Vector",api:"openrouter-images",provider:"openrouter",baseUrl:"https://openrouter.ai/api/v1",input:["text","image"],output:["image"],cost:{input:0,output:0,cacheRead:0,cacheWrite:0}},"recraft/recraft-v4-vector":{id:"recraft/recraft-v4-vector",name:"Recraft: Recraft V4 Vector",api:"openrouter-images",provider:"openrouter",baseUrl:"https://openrouter.ai/api/v1",input:["text","image"],output:["image"],cost:{input:0,output:0,cacheRead:0,cacheWrite:0}},"recraft/recraft-v4.1":{id:"recraft/recraft-v4.1",name:"Recraft: Recraft V4.1",api:"openrouter-images",provider:"openrouter",baseUrl:"https://openrouter.ai/api/v1",input:["text","image"],output:["image"],cost:{input:0,output:0,cacheRead:0,cacheWrite:0}},"recraft/recraft-v4.1-flash":{id:"recraft/recraft-v4.1-flash",name:"Recraft: Recraft V4.1 Flash",api:"openrouter-images",provider:"openrouter",baseUrl:"https://openrouter.ai/api/v1",input:["text"],output:["image"],cost:{input:0,output:0,cacheRead:0,cacheWrite:0}},"recraft/recraft-v4.1-pro":{id:"recraft/recraft-v4.1-pro",name:"Recraft: Recraft V4.1 Pro",api:"openrouter-images",provider:"openrouter",baseUrl:"https://openrouter.ai/api/v1",input:["text","image"],output:["image"],cost:{input:0,output:0,cacheRead:0,cacheWrite:0}},"recraft/recraft-v4.1-pro-vector":{id:"recraft/recraft-v4.1-pro-vector",name:"Recraft: Recraft V4.1 Pro Vector",api:"openrouter-images",provider:"openrouter",baseUrl:"https://openrouter.ai/api/v1",input:["text","image"],output:["image"],cost:{input:0,output:0,cacheRead:0,cacheWrite:0}},"recraft/recraft-v4.1-utility":{id:"recraft/recraft-v4.1-utility",name:"Recraft: Recraft V4.1 Utility",api:"openrouter-images",provider:"openrouter",baseUrl:"https://openrouter.ai/api/v1",input:["text","image"],output:["image"],cost:{input:0,output:0,cacheRead:0,cacheWrite:0}},"recraft/recraft-v4.1-utility-pro":{id:"recraft/recraft-v4.1-utility-pro",name:"Recraft: Recraft V4.1 Utility Pro",api:"openrouter-images",provider:"openrouter",baseUrl:"https://openrouter.ai/api/v1",input:["text","image"],output:["image"],cost:{input:0,output:0,cacheRead:0,cacheWrite:0}},"recraft/recraft-v4.1-vector":{id:"recraft/recraft-v4.1-vector",name:"Recraft: Recraft V4.1 Vector",api:"openrouter-images",provider:"openrouter",baseUrl:"https://openrouter.ai/api/v1",input:["text","image"],output:["image"],cost:{input:0,output:0,cacheRead:0,cacheWrite:0}},"sourceful/riverflow-v2-fast":{id:"sourceful/riverflow-v2-fast",name:"Sourceful: Riverflow V2 Fast",api:"openrouter-images",provider:"openrouter",baseUrl:"https://openrouter.ai/api/v1",input:["text","image"],output:["image"],cost:{input:0,output:0,cacheRead:0,cacheWrite:0}},"sourceful/riverflow-v2-pro":{id:"sourceful/riverflow-v2-pro",name:"Sourceful: Riverflow V2 Pro",api:"openrouter-images",provider:"openrouter",baseUrl:"https://openrouter.ai/api/v1",input:["text","image"],output:["image"],cost:{input:0,output:0,cacheRead:0,cacheWrite:0}},"sourceful/riverflow-v2.5-fast":{id:"sourceful/riverflow-v2.5-fast",name:"Sourceful: Riverflow V2.5 Fast",api:"openrouter-images",provider:"openrouter",baseUrl:"https://openrouter.ai/api/v1",input:["text","image"],output:["image"],cost:{input:0,output:0,cacheRead:0,cacheWrite:0}},"sourceful/riverflow-v2.5-pro":{id:"sourceful/riverflow-v2.5-pro",name:"Sourceful: Riverflow V2.5 Pro",api:"openrouter-images",provider:"openrouter",baseUrl:"https://openrouter.ai/api/v1",input:["text","image"],output:["image"],cost:{input:0,output:0,cacheRead:0,cacheWrite:0}},"tencent/hy-image-v3.5-preview":{id:"tencent/hy-image-v3.5-preview",name:"Tencent: Hy Image 3.5 Preview",api:"openrouter-images",provider:"openrouter",baseUrl:"https://openrouter.ai/api/v1",input:["text","image"],output:["image"],cost:{input:0,output:0,cacheRead:0,cacheWrite:0}},"x-ai/grok-imagine-image-2.0":{id:"x-ai/grok-imagine-image-2.0",name:"xAI: Grok Imagine Image 2.0",api:"openrouter-images",provider:"openrouter",baseUrl:"https://openrouter.ai/api/v1",input:["text","image"],output:["image"],cost:{input:0,output:0,cacheRead:0,cacheWrite:0}},"x-ai/grok-imagine-image-quality":{id:"x-ai/grok-imagine-image-quality",name:"SpaceXAI: Grok Imagine Image Quality",api:"openrouter-images",provider:"openrouter",baseUrl:"https://openrouter.ai/api/v1",input:["text","image"],output:["image"],cost:{input:0,output:0,cacheRead:0,cacheWrite:0}}}};var imageModelRegistry=new Map;for(let[provider,models]of Object.entries(IMAGE_MODELS)){let providerModels=new Map;for(let[id,model]of Object.entries(models))providerModels.set(id,model);imageModelRegistry.set(provider,providerModels)}function getImageModel(provider,modelId){return imageModelRegistry.get(provider)?.get(modelId)}function getImageProviders(){return Array.from(imageModelRegistry.keys())}function getImageModels(provider){let models=imageModelRegistry.get(provider);return models?Array.from(models.values()):[]}var imagesApiProviderRegistry=new Map;function wrapGenerateImages(api,generateImages2){return(model,context,options)=>{if(model.api!==api)throw new Error(`Mismatched api: ${model.api} expected ${api}`);return generateImages2(model,context,options)}}function registerImagesApiProvider(provider,sourceId){imagesApiProviderRegistry.set(provider.api,{provider:{api:provider.api,generateImages:wrapGenerateImages(provider.api,provider.generateImages)},sourceId})}function getImagesApiProvider(api){return imagesApiProviderRegistry.get(api)?.provider}var openRouterImagesProviderModulePromise;function createLazyLoadErrorImages(model,error2){return{api:model.api,provider:model.provider,model:model.id,output:[],stopReason:"error",errorMessage:error2 instanceof Error?error2.message:String(error2),timestamp:Date.now()}}function loadOpenRouterImagesProviderModule(){return openRouterImagesProviderModulePromise||=import("./openrouter-images-GZZQZXMS.js").then(module=>module),openRouterImagesProviderModulePromise}var generateImagesOpenRouter=async(model,context,options)=>{try{return await(await loadOpenRouterImagesProviderModule()).generateImages(model,context,options)}catch(error2){return createLazyLoadErrorImages(model,error2)}};function registerBuiltInImagesApiProviders(){registerImagesApiProvider({api:"openrouter-images",generateImages:generateImagesOpenRouter})}registerBuiltInImagesApiProviders();function resolveImagesApiProvider(api){let provider=getImagesApiProvider(api);if(!provider)throw new Error(`No API provider registered for api: ${api}`);return provider}async function generateImages(model,context,options){return resolveImagesApiProvider(model.api).generateImages(model,context,options)}function envApiKeyAuth(name,envVars){return{name,login:async interaction=>{interaction.signal.throwIfAborted();let key=await interaction.prompt({type:"secret",message:`Enter ${name}`});return interaction.signal.throwIfAborted(),{type:"api_key",key}},resolve:async({ctx,credential,signal})=>{if(signal.throwIfAborted(),credential?.key)return{auth:{apiKey:credential.key},env:credential.env,source:"stored credential"};for(let envVar of envVars){let value=await ctx.env(envVar);if(signal.throwIfAborted(),value)return{auth:{apiKey:value},source:envVar}}}}}function lazyOAuth(input){let promise,loaded=()=>(promise??=input.load(),promise);return{name:input.name,isSubscription:input.isSubscription,loginLabel:input.loginLabel,login:async interaction=>(await loaded()).login(interaction),refresh:async(credential,signal)=>(await loaded()).refresh(credential,signal),toAuth:async credential=>(await loaded()).toAuth(credential)}}var ImagesModelsImpl=class{providers=new Map;credentials;authContext;constructor(options){this.credentials=options?.credentials??new InMemoryCredentialStore,this.authContext=options?.authContext??defaultProviderAuthContext()}setProvider(provider){this.providers.set(provider.id,provider)}deleteProvider(id){this.providers.delete(id)}clearProviders(){this.providers.clear()}getProviders(){return Array.from(this.providers.values())}getProvider(id){return this.providers.get(id)}getModels(provider){if(provider!==void 0){let entry=this.providers.get(provider);if(!entry)return[];try{return entry.getModels()}catch{return[]}}let models=[];for(let entry of this.providers.values())try{models.push(...entry.getModels())}catch{}return models}getModel(provider,id){return this.getModels(provider).find(model=>model.id===id)}async refresh(provider){if(provider!==void 0){let entry=this.providers.get(provider);if(!entry?.refreshModels)return;try{await entry.refreshModels()}catch(error2){throw error2 instanceof ModelsError?error2:new ModelsError("model_source",`Model refresh failed for ${provider}`,{cause:error2})}return}await Promise.allSettled(Array.from(this.providers.values(),async entry=>entry.refreshModels?.()))}async getAuth(providerOrModel,overrides){let providerId=typeof providerOrModel=="string"?providerOrModel:providerOrModel.provider,provider=this.providers.get(providerId);if(provider)return resolveProviderAuth(provider,this.credentials,this.authContext,overrides)}async generateImages(model,context,options){try{let provider=this.providers.get(model.provider);if(!provider)throw new ModelsError("provider",`Unknown provider: ${model.provider}`);let resolution=await this.getAuth(model,{apiKey:options?.apiKey,env:options?.env,signal:options?.signal}),auth=resolution?.auth;if(!auth)return provider.generateImages(model,context,options);let requestModel=auth.baseUrl?{...model,baseUrl:auth.baseUrl}:model,apiKey=options?.apiKey??auth.apiKey,headers=auth.headers||options?.headers?{...auth.headers,...options?.headers}:void 0,env2=resolution.env||options?.env?{...resolution.env??{},...options?.env??{}}:void 0;return await provider.generateImages(requestModel,context,{...options,apiKey,headers,env:env2})}catch(error2){return{api:model.api,provider:model.provider,model:model.id,output:[],stopReason:"error",errorMessage:error2 instanceof Error?error2.message:String(error2),timestamp:Date.now()}}}};function createImagesModels(options){return new ImagesModelsImpl(options)}function createImagesProvider(input){let models=input.models,inflightRefresh,refreshModels=input.refreshModels;return{id:input.id,name:input.name??input.id,auth:input.auth,getModels:()=>models,refreshModels:refreshModels?()=>(inflightRefresh??=(async()=>{try{models=await refreshModels()}finally{inflightRefresh=void 0}})(),inflightRefresh):void 0,generateImages:(model,context,options)=>input.api.generateImages(model,context,options)}}var DEFAULT_API="faux",DEFAULT_PROVIDER="faux",DEFAULT_MODEL_ID="faux-1",DEFAULT_MODEL_NAME="Faux Model",DEFAULT_BASE_URL="http://localhost:0",DEFAULT_MIN_TOKEN_SIZE=3,DEFAULT_MAX_TOKEN_SIZE=5,DEFAULT_USAGE={input:0,output:0,cacheRead:0,cacheWrite:0,totalTokens:0,cost:{input:0,output:0,cacheRead:0,cacheWrite:0,total:0}};function fauxText(text){return{type:"text",text}}function fauxThinking(thinking){return{type:"thinking",thinking}}function fauxToolCall(name,arguments_,options={}){return{type:"toolCall",id:options.id??`tool:${stableToolId(name,arguments_)}`,name,arguments:arguments_}}function stableToolId(name,arguments_){let input=`${name}:${JSON.stringify(arguments_)}`,hash=2166136261;for(let index3=0;index3<input.length;index3++)hash^=input.charCodeAt(index3),hash=Math.imul(hash,16777619);return(hash>>>0).toString(16).padStart(8,"0")}function normalizeFauxAssistantContent(content){if(typeof content=="string")return[fauxText(content)];let blocks=Array.isArray(content)?content:[content],occurrences=new Map;return blocks.map(block=>{if(block.type!=="toolCall")return block;let occurrence=(occurrences.get(block.id)??0)+1;return occurrences.set(block.id,occurrence),occurrence===1?block:{...block,id:`${block.id}:${occurrence}`}})}function fauxAssistantMessage(content,options={}){return{role:"assistant",content:normalizeFauxAssistantContent(content),api:DEFAULT_API,provider:DEFAULT_PROVIDER,model:DEFAULT_MODEL_ID,usage:DEFAULT_USAGE,stopReason:options.stopReason??"stop",deferred:options.deferred,errorMessage:options.errorMessage,responseId:options.responseId,timestamp:options.timestamp??0}}function estimateTokens(text){return Math.ceil(text.length/4)}function contentToText(content){return typeof content=="string"?content:content.map(block=>block.type==="text"?block.text:`[image:${block.mimeType}:${block.data.length}]`).join(`
|
|
403
|
+
`)}`)}if(existsSync2("/bin/bash"))return getBashShellConfig("/bin/bash");let bashOnPath=findExecutableOnPath("bash");return bashOnPath?getBashShellConfig(bashOnPath):{shell:"sh",args:["-c"]}}var POWERSHELL_ARGS=["-NoProfile","-NonInteractive","-ExecutionPolicy","Bypass","-Command"];function getPowerShellConfig(){if(process.platform!=="win32")throw new Error(t("The powershell tool is only available on Windows."));let shell=findExecutableOnPath("pwsh.exe")??findExecutableOnPath("powershell.exe");if(!shell)throw new Error(t("No PowerShell executable found. Install PowerShell or add powershell.exe/pwsh.exe to PATH."));return{shell,args:[...POWERSHELL_ARGS]}}function getShellEnv(){let binDir=getBinDir(),pathKey=Object.keys(process.env).find(key=>key.toLowerCase()==="path")??"PATH",currentPath=process.env[pathKey]??"",updatedPath=currentPath.split(delimiter).filter(Boolean).includes(binDir)?currentPath:[binDir,currentPath].filter(Boolean).join(delimiter);return{...process.env,[pathKey]:updatedPath}}function sanitizeBinaryOutput(str2){return str2.replace(/[\x00-\x08\x0B\x0C\x0E-\x1F\uFFF9-\uFFFB]/g,"")}var trackedDetachedChildPids=new Set;function trackDetachedChildPid(pid){trackedDetachedChildPids.add(pid)}function untrackDetachedChildPid(pid){trackedDetachedChildPids.delete(pid)}function killTrackedDetachedChildren(){for(let pid of trackedDetachedChildPids)killProcessTree(pid);trackedDetachedChildPids.clear()}function killProcessTree(pid){if(process.platform==="win32")try{spawn2(join10(process.env.SystemRoot??"C:\\Windows","System32","taskkill.exe"),["/F","/T","/PID",String(pid)],{stdio:"ignore",detached:!0,windowsHide:!0}).once("error",()=>{})}catch{}else try{process.kill(-pid,"SIGKILL")}catch{try{process.kill(pid,"SIGKILL")}catch{}}}var compat_exports={};__export(compat_exports,{ANTHROPIC_API_KEY_ENV:()=>ANTHROPIC_API_KEY_ENV,ANTHROPIC_AUTH_TOKEN_ENV:()=>ANTHROPIC_AUTH_TOKEN_ENV,ANTHROPIC_OAUTH_TOKEN_ENV:()=>ANTHROPIC_OAUTH_TOKEN_ENV,AssistantMessageEventStream:()=>AssistantMessageEventStream,DEFAULT_MAX_AGENT_RETRY_DELAY_MS:()=>DEFAULT_MAX_AGENT_RETRY_DELAY_MS,EventStream:()=>EventStream,InMemoryCredentialStore:()=>InMemoryCredentialStore,InMemoryModelsStore:()=>InMemoryModelsStore,ModelsError:()=>ModelsError,StringEnum:()=>StringEnum,Type:()=>typebox_exports,anthropicMessagesApi:()=>anthropicMessagesApi,appendAssistantMessageDiagnostic:()=>appendAssistantMessageDiagnostic,azureOpenAIResponsesApi:()=>azureOpenAIResponsesApi,bedrockConverseStreamApi:()=>bedrockConverseStreamApi,calculateCost:()=>calculateCost,clampThinkingLevel:()=>clampThinkingLevel,cleanupSessionResources:()=>cleanupSessionResources,complete:()=>complete,completeSimple:()=>completeSimple,contentText:()=>contentText,createAssistantMessageDiagnostic:()=>createAssistantMessageDiagnostic,createAssistantMessageEventStream:()=>createAssistantMessageEventStream,createFauxCore:()=>createFauxCore,createImagesModels:()=>createImagesModels,createImagesProvider:()=>createImagesProvider,createModels:()=>createModels,createProvider:()=>createProvider,defaultProviderAuthContext:()=>defaultProviderAuthContext,envApiKeyAuth:()=>envApiKeyAuth,extractDiagnosticError:()=>extractDiagnosticError,fauxAssistantMessage:()=>fauxAssistantMessage,fauxProvider:()=>fauxProvider,fauxText:()=>fauxText,fauxThinking:()=>fauxThinking,fauxToolCall:()=>fauxToolCall,findEnvKeys:()=>findEnvKeys,formatThrownValue:()=>formatThrownValue,generateImages:()=>generateImages,generateImagesOpenRouter:()=>generateImagesOpenRouter,getApiProvider:()=>getApiProvider,getApiProviders:()=>getApiProviders,getEnvApiKey:()=>getEnvApiKey,getImageModel:()=>getImageModel,getImageModels:()=>getImageModels,getImageProviders:()=>getImageProviders,getImagesApiProvider:()=>getImagesApiProvider,getModel:()=>getModel,getModels:()=>getModels,getOverflowPatterns:()=>getOverflowPatterns,getProviders:()=>getProviders,getSupportedThinkingLevels:()=>getSupportedThinkingLevels,googleGenerativeAIApi:()=>googleGenerativeAIApi,googleVertexApi:()=>googleVertexApi,hasApi:()=>hasApi,isContextOverflow:()=>isContextOverflow,isRecoverableLength:()=>isRecoverableLength,isRetryableAssistantError:()=>isRetryableAssistantError,lazyApi:()=>lazyApi,lazyOAuth:()=>lazyOAuth,lazyStream:()=>lazyStream,mistralConversationsApi:()=>mistralConversationsApi,modelsAreEqual:()=>modelsAreEqual,openAICodexResponsesApi:()=>openAICodexResponsesApi,openAICompletionsApi:()=>openAICompletionsApi,openAIResponsesApi:()=>openAIResponsesApi,parseJsonWithRepair:()=>parseJsonWithRepair,parseStreamingJson:()=>parseStreamingJson,piMessagesApi:()=>piMessagesApi,registerApiProvider:()=>registerApiProvider,registerBuiltInApiProviders:()=>registerBuiltInApiProviders,registerBuiltInImagesApiProviders:()=>registerBuiltInImagesApiProviders,registerFauxProvider:()=>registerFauxProvider,registerImagesApiProvider:()=>registerImagesApiProvider,registerSessionResourceCleanup:()=>registerSessionResourceCleanup,repairJson:()=>repairJson,resetApiProviders:()=>resetApiProviders,retryAssistantCall:()=>retryAssistantCall,retryDelayMs:()=>retryDelayMs,setBedrockProviderModule:()=>setBedrockProviderModule,stream:()=>stream,streamAnthropic:()=>streamAnthropic,streamAzureOpenAIResponses:()=>streamAzureOpenAIResponses,streamGoogle:()=>streamGoogle,streamGoogleVertex:()=>streamGoogleVertex,streamMistral:()=>streamMistral,streamOpenAICodexResponses:()=>streamOpenAICodexResponses,streamOpenAICompletions:()=>streamOpenAICompletions,streamOpenAIResponses:()=>streamOpenAIResponses,streamSimple:()=>streamSimple,streamSimpleAnthropic:()=>streamSimpleAnthropic,streamSimpleAzureOpenAIResponses:()=>streamSimpleAzureOpenAIResponses,streamSimpleGoogle:()=>streamSimpleGoogle,streamSimpleGoogleVertex:()=>streamSimpleGoogleVertex,streamSimpleMistral:()=>streamSimpleMistral,streamSimpleOpenAICodexResponses:()=>streamSimpleOpenAICodexResponses,streamSimpleOpenAICompletions:()=>streamSimpleOpenAICompletions,streamSimpleOpenAIResponses:()=>streamSimpleOpenAIResponses,unregisterApiProviders:()=>unregisterApiProviders,uuidv7:()=>uuidv7,validateToolArguments:()=>validateToolArguments,validateToolCall:()=>validateToolCall});var anthropicMessagesApi=()=>lazyApi(()=>import("./anthropic-messages-NL4Y6WPB.js"));var azureOpenAIResponsesApi=()=>lazyApi(()=>import("./azure-openai-responses-CPXC42HO.js"));var __rewriteRelativeImportExtension=function(path7,preserveJsx){return typeof path7=="string"&&/^\.\.?\//.test(path7)?path7.replace(/\.(tsx)$|((?:\.d)?)((?:\.[^./]+?)?)\.([cm]?)ts$/i,function(m2,tsx,d2,ext,cm){return tsx?preserveJsx?".jsx":".js":d2&&(!ext||!cm)?m2:d2+ext+"."+cm.toLowerCase()+"js"}):path7},importNodeOnlyApi=specifier=>{let runtimeSpecifier=import.meta.url.endsWith(".js")?specifier.replace(/\.ts$/,".js"):specifier;return import(__rewriteRelativeImportExtension(runtimeSpecifier))},bedrockModuleOverride;function setBedrockProviderModule(module){bedrockModuleOverride=module}var bedrockConverseStreamApi=()=>lazyApi(async()=>bedrockModuleOverride??await importNodeOnlyApi("./bedrock-converse-stream.ts"));var googleGenerativeAIApi=()=>lazyApi(()=>import("./google-generative-ai-UMZ53EFA.js"));var googleVertexApi=()=>lazyApi(()=>import("./google-vertex-ZNR5NS6H.js"));var mistralConversationsApi=()=>lazyApi(()=>import("./mistral-conversations-IT66WUNN.js"));var openAICodexResponsesApi=()=>lazyApi(()=>import("./openai-codex-responses-FOVCVG6I.js"));var openAICompletionsApi=()=>lazyApi(()=>import("./openai-completions-FLQ7CBOL.js"));var openAIResponsesApi=()=>lazyApi(()=>import("./openai-responses-ABGYHS2T.js"));var piMessagesApi=()=>lazyApi(()=>import("./pi-messages-6K5W6LUN.js"));var __rewriteRelativeImportExtension2=function(path7,preserveJsx){return typeof path7=="string"&&/^\.\.?\//.test(path7)?path7.replace(/\.(tsx)$|((?:\.d)?)((?:\.[^./]+?)?)\.([cm]?)ts$/i,function(m2,tsx,d2,ext,cm){return tsx?preserveJsx?".jsx":".js":d2&&(!ext||!cm)?m2:d2+ext+"."+cm.toLowerCase()+"js"}):path7},_existsSync=null,_homedir=null,_join=null,dynamicImport=specifier=>import(__rewriteRelativeImportExtension2(specifier)),NODE_FS_SPECIFIER="node:fs",NODE_OS_SPECIFIER="node:os",NODE_PATH_SPECIFIER="node:path";typeof process<"u"&&(process.versions?.node||process.versions?.bun)&&(dynamicImport(NODE_FS_SPECIFIER).then(m2=>{_existsSync=m2.existsSync}),dynamicImport(NODE_OS_SPECIFIER).then(m2=>{_homedir=m2.homedir}),dynamicImport(NODE_PATH_SPECIFIER).then(m2=>{_join=m2.join}));var ANTHROPIC_AUTH_TOKEN_ENV="ANTHROPIC_AUTH_TOKEN",ANTHROPIC_OAUTH_TOKEN_ENV="ANTHROPIC_OAUTH_TOKEN",ANTHROPIC_API_KEY_ENV="ANTHROPIC_API_KEY",cachedVertexAdcCredentialsExists=null;function hasVertexAdcCredentials(env2){let explicitCredentialsPath=env2?.GOOGLE_APPLICATION_CREDENTIALS;if(explicitCredentialsPath)return _existsSync?_existsSync(explicitCredentialsPath):!1;if(cachedVertexAdcCredentialsExists===null){if(!_existsSync||!_homedir||!_join)return typeof process<"u"&&(process.versions?.node||process.versions?.bun)||(cachedVertexAdcCredentialsExists=!1),!1;let gacPath=getProviderEnvValue("GOOGLE_APPLICATION_CREDENTIALS",env2);gacPath?cachedVertexAdcCredentialsExists=_existsSync(gacPath):cachedVertexAdcCredentialsExists=_existsSync(_join(_homedir(),".config","gcloud","application_default_credentials.json"))}return cachedVertexAdcCredentialsExists}function getApiKeyEnvVars(provider){if(provider==="github-copilot")return["COPILOT_GITHUB_TOKEN"];if(provider==="anthropic")return[ANTHROPIC_AUTH_TOKEN_ENV,ANTHROPIC_OAUTH_TOKEN_ENV,ANTHROPIC_API_KEY_ENV];let envVar={"ant-ling":"ANT_LING_API_KEY","qwen-token-plan":"QWEN_TOKEN_PLAN_API_KEY","qwen-token-plan-cn":"QWEN_TOKEN_PLAN_CN_API_KEY","qwen-token-plan-individual":"QWEN_TOKEN_PLAN_API_KEY",openai:"OPENAI_API_KEY","azure-openai-responses":"AZURE_OPENAI_API_KEY",nvidia:"NVIDIA_API_KEY",deepseek:"DEEPSEEK_API_KEY",google:"GEMINI_API_KEY","google-vertex":"GOOGLE_CLOUD_API_KEY",groq:"GROQ_API_KEY",cerebras:"CEREBRAS_API_KEY",xai:"XAI_API_KEY",radius:"RADIUS_API_KEY",openrouter:"OPENROUTER_API_KEY","vercel-ai-gateway":"AI_GATEWAY_API_KEY",zai:"ZAI_API_KEY","zai-coding-cn":"ZAI_CODING_CN_API_KEY",mistral:"MISTRAL_API_KEY",minimax:"MINIMAX_API_KEY","minimax-cn":"MINIMAX_CN_API_KEY",moonshotai:"MOONSHOT_API_KEY","moonshotai-cn":"MOONSHOT_API_KEY",huggingface:"HF_TOKEN",fireworks:"FIREWORKS_API_KEY",together:"TOGETHER_API_KEY",baseten:"BASETEN_API_KEY",opencode:"OPENCODE_API_KEY","opencode-go":"OPENCODE_API_KEY","kimi-coding":"KIMI_API_KEY","cloudflare-workers-ai":"CLOUDFLARE_API_KEY","cloudflare-ai-gateway":"CLOUDFLARE_API_KEY",xiaomi:"XIAOMI_API_KEY","xiaomi-token-plan-cn":"XIAOMI_TOKEN_PLAN_CN_API_KEY","xiaomi-token-plan-ams":"XIAOMI_TOKEN_PLAN_AMS_API_KEY","xiaomi-token-plan-sgp":"XIAOMI_TOKEN_PLAN_SGP_API_KEY"}[provider];return envVar?[envVar]:void 0}function findEnvKeys(provider,env2){let envVars=getApiKeyEnvVars(provider);if(!envVars)return;let found=envVars.filter(envVar=>!!getProviderEnvValue(envVar,env2));return found.length>0?found:void 0}function getEnvApiKey(provider,env2){let envKeys=findEnvKeys(provider,env2);if(envKeys?.[0]){let apiKeyEnv=provider==="anthropic"?envKeys.find(key=>key!==ANTHROPIC_AUTH_TOKEN_ENV):envKeys[0];if(apiKeyEnv)return getProviderEnvValue(apiKeyEnv,env2)}if(provider==="google-vertex"){let hasCredentials=hasVertexAdcCredentials(env2),hasProject=!!(getProviderEnvValue("GOOGLE_CLOUD_PROJECT",env2)||getProviderEnvValue("GCLOUD_PROJECT",env2)),hasLocation=!!getProviderEnvValue("GOOGLE_CLOUD_LOCATION",env2);if(hasCredentials&&hasProject&&hasLocation)return"<authenticated>"}if(provider==="amazon-bedrock"&&(getProviderEnvValue("AWS_PROFILE",env2)||getProviderEnvValue("AWS_ACCESS_KEY_ID",env2)&&getProviderEnvValue("AWS_SECRET_ACCESS_KEY",env2)||getProviderEnvValue("AWS_BEARER_TOKEN_BEDROCK",env2)||getProviderEnvValue("AWS_CONTAINER_CREDENTIALS_RELATIVE_URI",env2)||getProviderEnvValue("AWS_CONTAINER_CREDENTIALS_FULL_URI",env2)||getProviderEnvValue("AWS_WEB_IDENTITY_TOKEN_FILE",env2)))return"<authenticated>"}var IMAGE_MODELS={openrouter:{"black-forest-labs/flux-3-image":{id:"black-forest-labs/flux-3-image",name:"Black Forest Labs: FLUX.3 Image",api:"openrouter-images",provider:"openrouter",baseUrl:"https://openrouter.ai/api/v1",input:["text","image"],output:["image"],cost:{input:0,output:0,cacheRead:0,cacheWrite:0}},"black-forest-labs/flux.2-flex":{id:"black-forest-labs/flux.2-flex",name:"Black Forest Labs: FLUX.2 Flex",api:"openrouter-images",provider:"openrouter",baseUrl:"https://openrouter.ai/api/v1",input:["text","image"],output:["image"],cost:{input:0,output:0,cacheRead:0,cacheWrite:0}},"black-forest-labs/flux.2-klein-4b":{id:"black-forest-labs/flux.2-klein-4b",name:"Black Forest Labs: FLUX.2 Klein 4B",api:"openrouter-images",provider:"openrouter",baseUrl:"https://openrouter.ai/api/v1",input:["text","image"],output:["image"],cost:{input:0,output:0,cacheRead:0,cacheWrite:0}},"black-forest-labs/flux.2-max":{id:"black-forest-labs/flux.2-max",name:"Black Forest Labs: FLUX.2 Max",api:"openrouter-images",provider:"openrouter",baseUrl:"https://openrouter.ai/api/v1",input:["text","image"],output:["image"],cost:{input:0,output:0,cacheRead:0,cacheWrite:0}},"black-forest-labs/flux.2-pro":{id:"black-forest-labs/flux.2-pro",name:"Black Forest Labs: FLUX.2 Pro",api:"openrouter-images",provider:"openrouter",baseUrl:"https://openrouter.ai/api/v1",input:["text","image"],output:["image"],cost:{input:0,output:0,cacheRead:0,cacheWrite:0}},"bytedance-seed/seedream-4.5":{id:"bytedance-seed/seedream-4.5",name:"ByteDance Seed: Seedream 4.5",api:"openrouter-images",provider:"openrouter",baseUrl:"https://openrouter.ai/api/v1",input:["image","text"],output:["image"],cost:{input:0,output:0,cacheRead:0,cacheWrite:0}},"bytedance-seed/seedream-5-0-flash":{id:"bytedance-seed/seedream-5-0-flash",name:"ByteDance Seed: Seedream 5.0 Flash",api:"openrouter-images",provider:"openrouter",baseUrl:"https://openrouter.ai/api/v1",input:["text","image"],output:["image"],cost:{input:0,output:0,cacheRead:0,cacheWrite:0}},"bytedance-seed/seedream-5-0-lite":{id:"bytedance-seed/seedream-5-0-lite",name:"ByteDance Seed: Seedream 5.0 Lite",api:"openrouter-images",provider:"openrouter",baseUrl:"https://openrouter.ai/api/v1",input:["text","image"],output:["image"],cost:{input:0,output:0,cacheRead:0,cacheWrite:0}},"bytedance-seed/seedream-5-0-pro":{id:"bytedance-seed/seedream-5-0-pro",name:"ByteDance Seed: Seedream 5.0 Pro",api:"openrouter-images",provider:"openrouter",baseUrl:"https://openrouter.ai/api/v1",input:["text","image"],output:["image"],cost:{input:0,output:0,cacheRead:0,cacheWrite:0}},"google/gemini-2.5-flash-image":{id:"google/gemini-2.5-flash-image",name:"Google: Nano Banana (Gemini 2.5 Flash Image)",api:"openrouter-images",provider:"openrouter",baseUrl:"https://openrouter.ai/api/v1",input:["image","text"],output:["image","text"],cost:{input:.3,output:2.5,cacheRead:.03,cacheWrite:.0833333333333333}},"google/gemini-3-pro-image":{id:"google/gemini-3-pro-image",name:"Google: Nano Banana Pro (Gemini 3 Pro Image)",api:"openrouter-images",provider:"openrouter",baseUrl:"https://openrouter.ai/api/v1",input:["image","text"],output:["image","text"],cost:{input:2,output:12,cacheRead:.19999999999999998,cacheWrite:.375}},"google/gemini-3-pro-image-preview":{id:"google/gemini-3-pro-image-preview",name:"Google: Nano Banana Pro (Gemini 3 Pro Image Preview)",api:"openrouter-images",provider:"openrouter",baseUrl:"https://openrouter.ai/api/v1",input:["image","text"],output:["image","text"],cost:{input:2,output:12,cacheRead:.19999999999999998,cacheWrite:.375}},"google/gemini-3.1-flash-image":{id:"google/gemini-3.1-flash-image",name:"Google: Nano Banana 2 (Gemini 3.1 Flash Image)",api:"openrouter-images",provider:"openrouter",baseUrl:"https://openrouter.ai/api/v1",input:["image","text"],output:["image","text"],cost:{input:.5,output:3,cacheRead:0,cacheWrite:0}},"google/gemini-3.1-flash-image-preview":{id:"google/gemini-3.1-flash-image-preview",name:"Google: Nano Banana 2 (Gemini 3.1 Flash Image Preview)",api:"openrouter-images",provider:"openrouter",baseUrl:"https://openrouter.ai/api/v1",input:["image","text"],output:["image","text"],cost:{input:.5,output:3,cacheRead:0,cacheWrite:0}},"google/gemini-3.1-flash-lite-image":{id:"google/gemini-3.1-flash-lite-image",name:"Google: Nano Banana 2 Lite (Gemini 3.1 Flash Lite Image)",api:"openrouter-images",provider:"openrouter",baseUrl:"https://openrouter.ai/api/v1",input:["image","text"],output:["image","text"],cost:{input:.25,output:1.5,cacheRead:0,cacheWrite:0}},"google/gemini-nano-banana-2.1":{id:"google/gemini-nano-banana-2.1",name:"Google: Nano Banana 2.1",api:"openrouter-images",provider:"openrouter",baseUrl:"https://openrouter.ai/api/v1",input:["image","text"],output:["image","text"],cost:{input:1.5,output:7.5,cacheRead:0,cacheWrite:0}},"inclusionai/ming-image-0.1-design":{id:"inclusionai/ming-image-0.1-design",name:"inclusionAI: Ming Image 0.1 Design",api:"openrouter-images",provider:"openrouter",baseUrl:"https://openrouter.ai/api/v1",input:["text"],output:["image"],cost:{input:0,output:0,cacheRead:0,cacheWrite:0}},"inclusionai/ming-image-0.1-design-layer":{id:"inclusionai/ming-image-0.1-design-layer",name:"inclusionAI: Ming Image 0.1 Design Layer",api:"openrouter-images",provider:"openrouter",baseUrl:"https://openrouter.ai/api/v1",input:["text","image"],output:["image"],cost:{input:0,output:0,cacheRead:0,cacheWrite:0}},"krea/krea-2-large":{id:"krea/krea-2-large",name:"Krea: Krea 2 Large",api:"openrouter-images",provider:"openrouter",baseUrl:"https://openrouter.ai/api/v1",input:["text","image"],output:["image"],cost:{input:0,output:0,cacheRead:0,cacheWrite:0}},"krea/krea-2-medium":{id:"krea/krea-2-medium",name:"Krea: Krea 2 Medium",api:"openrouter-images",provider:"openrouter",baseUrl:"https://openrouter.ai/api/v1",input:["text","image"],output:["image"],cost:{input:0,output:0,cacheRead:0,cacheWrite:0}},"krea/krea-2-medium-turbo":{id:"krea/krea-2-medium-turbo",name:"Krea: Krea 2 Medium Turbo",api:"openrouter-images",provider:"openrouter",baseUrl:"https://openrouter.ai/api/v1",input:["text","image"],output:["image"],cost:{input:0,output:0,cacheRead:0,cacheWrite:0}},"meta/muse-image":{id:"meta/muse-image",name:"Meta: Muse Image",api:"openrouter-images",provider:"openrouter",baseUrl:"https://openrouter.ai/api/v1",input:["text","image"],output:["image"],cost:{input:0,output:0,cacheRead:0,cacheWrite:0}},"microsoft/mai-image-2.5":{id:"microsoft/mai-image-2.5",name:"Microsoft AI: MAI-Image-2.5",api:"openrouter-images",provider:"openrouter",baseUrl:"https://openrouter.ai/api/v1",input:["text","image"],output:["image"],cost:{input:5,output:0,cacheRead:0,cacheWrite:0}},"microsoft/mai-image-2.5-pro":{id:"microsoft/mai-image-2.5-pro",name:"Microsoft AI: MAI-Image-2.5 Pro",api:"openrouter-images",provider:"openrouter",baseUrl:"https://openrouter.ai/api/v1",input:["text","image"],output:["image"],cost:{input:5,output:0,cacheRead:0,cacheWrite:0}},"microsoft/mai-image-2.6":{id:"microsoft/mai-image-2.6",name:"Microsoft AI: MAI-Image-2.6",api:"openrouter-images",provider:"openrouter",baseUrl:"https://openrouter.ai/api/v1",input:["text","image"],output:["image"],cost:{input:5,output:0,cacheRead:0,cacheWrite:0}},"microsoft/mai-image-2.6-flash":{id:"microsoft/mai-image-2.6-flash",name:"Microsoft AI: MAI-Image-2.6 Flash",api:"openrouter-images",provider:"openrouter",baseUrl:"https://openrouter.ai/api/v1",input:["text","image"],output:["image"],cost:{input:1.75,output:0,cacheRead:0,cacheWrite:0}},"openai/gpt-5-image":{id:"openai/gpt-5-image",name:"OpenAI: GPT-5 Image",api:"openrouter-images",provider:"openrouter",baseUrl:"https://openrouter.ai/api/v1",input:["image","text"],output:["image","text"],cost:{input:10,output:10,cacheRead:1.25,cacheWrite:0}},"openai/gpt-5-image-mini":{id:"openai/gpt-5-image-mini",name:"OpenAI: GPT-5 Image Mini",api:"openrouter-images",provider:"openrouter",baseUrl:"https://openrouter.ai/api/v1",input:["image","text"],output:["image","text"],cost:{input:2.5,output:2,cacheRead:.25,cacheWrite:0}},"openai/gpt-5.4-image-2":{id:"openai/gpt-5.4-image-2",name:"OpenAI: GPT-5.4 Image 2",api:"openrouter-images",provider:"openrouter",baseUrl:"https://openrouter.ai/api/v1",input:["image","text"],output:["image","text"],cost:{input:8,output:15,cacheRead:2,cacheWrite:0}},"openai/gpt-image-1":{id:"openai/gpt-image-1",name:"OpenAI: GPT Image 1",api:"openrouter-images",provider:"openrouter",baseUrl:"https://openrouter.ai/api/v1",input:["text","image"],output:["image"],cost:{input:10,output:10,cacheRead:1.25,cacheWrite:0}},"openai/gpt-image-1-mini":{id:"openai/gpt-image-1-mini",name:"OpenAI: GPT Image 1 Mini",api:"openrouter-images",provider:"openrouter",baseUrl:"https://openrouter.ai/api/v1",input:["text","image"],output:["image"],cost:{input:2.5,output:2.5,cacheRead:.25,cacheWrite:0}},"openai/gpt-image-2":{id:"openai/gpt-image-2",name:"OpenAI: GPT Image 2",api:"openrouter-images",provider:"openrouter",baseUrl:"https://openrouter.ai/api/v1",input:["text","image"],output:["image"],cost:{input:8,output:8,cacheRead:2,cacheWrite:0}},"openai/gpt-image-2.5-flare":{id:"openai/gpt-image-2.5-flare",name:"OpenAI: GPT Image 2.5 Flare",api:"openrouter-images",provider:"openrouter",baseUrl:"https://openrouter.ai/api/v1",input:["text","image"],output:["image"],cost:{input:8,output:8,cacheRead:2,cacheWrite:0}},"openai/gpt-image-2.5-sunburst":{id:"openai/gpt-image-2.5-sunburst",name:"OpenAI: GPT Image 2.5 Sunburst",api:"openrouter-images",provider:"openrouter",baseUrl:"https://openrouter.ai/api/v1",input:["text","image"],output:["image"],cost:{input:8,output:8,cacheRead:2,cacheWrite:0}},"openrouter/auto":{id:"openrouter/auto",name:"Auto Router",api:"openrouter-images",provider:"openrouter",baseUrl:"https://openrouter.ai/api/v1",input:["text","image"],output:["text","image"],cost:{input:-1e6,output:-1e6,cacheRead:0,cacheWrite:0}},"openrouter/auto-beta":{id:"openrouter/auto-beta",name:"Auto Router (Beta)",api:"openrouter-images",provider:"openrouter",baseUrl:"https://openrouter.ai/api/v1",input:["text","image"],output:["text","image"],cost:{input:-1e6,output:-1e6,cacheRead:0,cacheWrite:0}},"qwen/qwen-image-3":{id:"qwen/qwen-image-3",name:"Qwen: Qwen Image 3",api:"openrouter-images",provider:"openrouter",baseUrl:"https://openrouter.ai/api/v1",input:["text","image"],output:["image"],cost:{input:0,output:0,cacheRead:0,cacheWrite:0}},"qwen/qwen-image-3-pro":{id:"qwen/qwen-image-3-pro",name:"Qwen: Qwen Image 3 Pro",api:"openrouter-images",provider:"openrouter",baseUrl:"https://openrouter.ai/api/v1",input:["text","image"],output:["image"],cost:{input:0,output:0,cacheRead:0,cacheWrite:0}},"recraft/recraft-v3":{id:"recraft/recraft-v3",name:"Recraft: Recraft V3",api:"openrouter-images",provider:"openrouter",baseUrl:"https://openrouter.ai/api/v1",input:["text","image"],output:["image"],cost:{input:0,output:0,cacheRead:0,cacheWrite:0}},"recraft/recraft-v4":{id:"recraft/recraft-v4",name:"Recraft: Recraft V4",api:"openrouter-images",provider:"openrouter",baseUrl:"https://openrouter.ai/api/v1",input:["text","image"],output:["image"],cost:{input:0,output:0,cacheRead:0,cacheWrite:0}},"recraft/recraft-v4-pro":{id:"recraft/recraft-v4-pro",name:"Recraft: Recraft V4 Pro",api:"openrouter-images",provider:"openrouter",baseUrl:"https://openrouter.ai/api/v1",input:["text","image"],output:["image"],cost:{input:0,output:0,cacheRead:0,cacheWrite:0}},"recraft/recraft-v4-pro-vector":{id:"recraft/recraft-v4-pro-vector",name:"Recraft: Recraft V4 Pro Vector",api:"openrouter-images",provider:"openrouter",baseUrl:"https://openrouter.ai/api/v1",input:["text","image"],output:["image"],cost:{input:0,output:0,cacheRead:0,cacheWrite:0}},"recraft/recraft-v4-styles":{id:"recraft/recraft-v4-styles",name:"Recraft: Recraft V4 Styles",api:"openrouter-images",provider:"openrouter",baseUrl:"https://openrouter.ai/api/v1",input:["text","image"],output:["image"],cost:{input:0,output:0,cacheRead:0,cacheWrite:0}},"recraft/recraft-v4-styles-pro":{id:"recraft/recraft-v4-styles-pro",name:"Recraft: Recraft V4 Styles Pro",api:"openrouter-images",provider:"openrouter",baseUrl:"https://openrouter.ai/api/v1",input:["text","image"],output:["image"],cost:{input:0,output:0,cacheRead:0,cacheWrite:0}},"recraft/recraft-v4-styles-pro-vector":{id:"recraft/recraft-v4-styles-pro-vector",name:"Recraft: Recraft V4 Styles Pro Vector",api:"openrouter-images",provider:"openrouter",baseUrl:"https://openrouter.ai/api/v1",input:["text","image"],output:["image"],cost:{input:0,output:0,cacheRead:0,cacheWrite:0}},"recraft/recraft-v4-styles-vector":{id:"recraft/recraft-v4-styles-vector",name:"Recraft: Recraft V4 Styles Vector",api:"openrouter-images",provider:"openrouter",baseUrl:"https://openrouter.ai/api/v1",input:["text","image"],output:["image"],cost:{input:0,output:0,cacheRead:0,cacheWrite:0}},"recraft/recraft-v4-vector":{id:"recraft/recraft-v4-vector",name:"Recraft: Recraft V4 Vector",api:"openrouter-images",provider:"openrouter",baseUrl:"https://openrouter.ai/api/v1",input:["text","image"],output:["image"],cost:{input:0,output:0,cacheRead:0,cacheWrite:0}},"recraft/recraft-v4.1":{id:"recraft/recraft-v4.1",name:"Recraft: Recraft V4.1",api:"openrouter-images",provider:"openrouter",baseUrl:"https://openrouter.ai/api/v1",input:["text","image"],output:["image"],cost:{input:0,output:0,cacheRead:0,cacheWrite:0}},"recraft/recraft-v4.1-flash":{id:"recraft/recraft-v4.1-flash",name:"Recraft: Recraft V4.1 Flash",api:"openrouter-images",provider:"openrouter",baseUrl:"https://openrouter.ai/api/v1",input:["text"],output:["image"],cost:{input:0,output:0,cacheRead:0,cacheWrite:0}},"recraft/recraft-v4.1-pro":{id:"recraft/recraft-v4.1-pro",name:"Recraft: Recraft V4.1 Pro",api:"openrouter-images",provider:"openrouter",baseUrl:"https://openrouter.ai/api/v1",input:["text","image"],output:["image"],cost:{input:0,output:0,cacheRead:0,cacheWrite:0}},"recraft/recraft-v4.1-pro-vector":{id:"recraft/recraft-v4.1-pro-vector",name:"Recraft: Recraft V4.1 Pro Vector",api:"openrouter-images",provider:"openrouter",baseUrl:"https://openrouter.ai/api/v1",input:["text","image"],output:["image"],cost:{input:0,output:0,cacheRead:0,cacheWrite:0}},"recraft/recraft-v4.1-utility":{id:"recraft/recraft-v4.1-utility",name:"Recraft: Recraft V4.1 Utility",api:"openrouter-images",provider:"openrouter",baseUrl:"https://openrouter.ai/api/v1",input:["text","image"],output:["image"],cost:{input:0,output:0,cacheRead:0,cacheWrite:0}},"recraft/recraft-v4.1-utility-pro":{id:"recraft/recraft-v4.1-utility-pro",name:"Recraft: Recraft V4.1 Utility Pro",api:"openrouter-images",provider:"openrouter",baseUrl:"https://openrouter.ai/api/v1",input:["text","image"],output:["image"],cost:{input:0,output:0,cacheRead:0,cacheWrite:0}},"recraft/recraft-v4.1-vector":{id:"recraft/recraft-v4.1-vector",name:"Recraft: Recraft V4.1 Vector",api:"openrouter-images",provider:"openrouter",baseUrl:"https://openrouter.ai/api/v1",input:["text","image"],output:["image"],cost:{input:0,output:0,cacheRead:0,cacheWrite:0}},"sourceful/riverflow-v2-fast":{id:"sourceful/riverflow-v2-fast",name:"Sourceful: Riverflow V2 Fast",api:"openrouter-images",provider:"openrouter",baseUrl:"https://openrouter.ai/api/v1",input:["text","image"],output:["image"],cost:{input:0,output:0,cacheRead:0,cacheWrite:0}},"sourceful/riverflow-v2-pro":{id:"sourceful/riverflow-v2-pro",name:"Sourceful: Riverflow V2 Pro",api:"openrouter-images",provider:"openrouter",baseUrl:"https://openrouter.ai/api/v1",input:["text","image"],output:["image"],cost:{input:0,output:0,cacheRead:0,cacheWrite:0}},"sourceful/riverflow-v2.5-fast":{id:"sourceful/riverflow-v2.5-fast",name:"Sourceful: Riverflow V2.5 Fast",api:"openrouter-images",provider:"openrouter",baseUrl:"https://openrouter.ai/api/v1",input:["text","image"],output:["image"],cost:{input:0,output:0,cacheRead:0,cacheWrite:0}},"sourceful/riverflow-v2.5-pro":{id:"sourceful/riverflow-v2.5-pro",name:"Sourceful: Riverflow V2.5 Pro",api:"openrouter-images",provider:"openrouter",baseUrl:"https://openrouter.ai/api/v1",input:["text","image"],output:["image"],cost:{input:0,output:0,cacheRead:0,cacheWrite:0}},"tencent/hy-image-v3.5-preview":{id:"tencent/hy-image-v3.5-preview",name:"Tencent: Hy Image 3.5 Preview",api:"openrouter-images",provider:"openrouter",baseUrl:"https://openrouter.ai/api/v1",input:["text","image"],output:["image"],cost:{input:0,output:0,cacheRead:0,cacheWrite:0}},"x-ai/grok-imagine-image-2.0":{id:"x-ai/grok-imagine-image-2.0",name:"xAI: Grok Imagine Image 2.0",api:"openrouter-images",provider:"openrouter",baseUrl:"https://openrouter.ai/api/v1",input:["text","image"],output:["image"],cost:{input:0,output:0,cacheRead:0,cacheWrite:0}},"x-ai/grok-imagine-image-quality":{id:"x-ai/grok-imagine-image-quality",name:"SpaceXAI: Grok Imagine Image Quality",api:"openrouter-images",provider:"openrouter",baseUrl:"https://openrouter.ai/api/v1",input:["text","image"],output:["image"],cost:{input:0,output:0,cacheRead:0,cacheWrite:0}}}};var imageModelRegistry=new Map;for(let[provider,models]of Object.entries(IMAGE_MODELS)){let providerModels=new Map;for(let[id,model]of Object.entries(models))providerModels.set(id,model);imageModelRegistry.set(provider,providerModels)}function getImageModel(provider,modelId){return imageModelRegistry.get(provider)?.get(modelId)}function getImageProviders(){return Array.from(imageModelRegistry.keys())}function getImageModels(provider){let models=imageModelRegistry.get(provider);return models?Array.from(models.values()):[]}var imagesApiProviderRegistry=new Map;function wrapGenerateImages(api,generateImages2){return(model,context,options)=>{if(model.api!==api)throw new Error(`Mismatched api: ${model.api} expected ${api}`);return generateImages2(model,context,options)}}function registerImagesApiProvider(provider,sourceId){imagesApiProviderRegistry.set(provider.api,{provider:{api:provider.api,generateImages:wrapGenerateImages(provider.api,provider.generateImages)},sourceId})}function getImagesApiProvider(api){return imagesApiProviderRegistry.get(api)?.provider}var openRouterImagesProviderModulePromise;function createLazyLoadErrorImages(model,error2){return{api:model.api,provider:model.provider,model:model.id,output:[],stopReason:"error",errorMessage:error2 instanceof Error?error2.message:String(error2),timestamp:Date.now()}}function loadOpenRouterImagesProviderModule(){return openRouterImagesProviderModulePromise||=import("./openrouter-images-GZZQZXMS.js").then(module=>module),openRouterImagesProviderModulePromise}var generateImagesOpenRouter=async(model,context,options)=>{try{return await(await loadOpenRouterImagesProviderModule()).generateImages(model,context,options)}catch(error2){return createLazyLoadErrorImages(model,error2)}};function registerBuiltInImagesApiProviders(){registerImagesApiProvider({api:"openrouter-images",generateImages:generateImagesOpenRouter})}registerBuiltInImagesApiProviders();function resolveImagesApiProvider(api){let provider=getImagesApiProvider(api);if(!provider)throw new Error(`No API provider registered for api: ${api}`);return provider}async function generateImages(model,context,options){return resolveImagesApiProvider(model.api).generateImages(model,context,options)}function envApiKeyAuth(name,envVars){return{name,login:async interaction=>{interaction.signal.throwIfAborted();let key=await interaction.prompt({type:"secret",message:`Enter ${name}`});return interaction.signal.throwIfAborted(),{type:"api_key",key}},resolve:async({ctx,credential,signal})=>{if(signal.throwIfAborted(),credential?.key)return{auth:{apiKey:credential.key},env:credential.env,source:"stored credential"};for(let envVar of envVars){let value=await ctx.env(envVar);if(signal.throwIfAborted(),value)return{auth:{apiKey:value},source:envVar}}}}}function lazyOAuth(input){let promise,loaded=()=>(promise??=input.load(),promise);return{name:input.name,isSubscription:input.isSubscription,loginLabel:input.loginLabel,login:async interaction=>(await loaded()).login(interaction),refresh:async(credential,signal)=>(await loaded()).refresh(credential,signal),toAuth:async credential=>(await loaded()).toAuth(credential)}}var ImagesModelsImpl=class{providers=new Map;credentials;authContext;constructor(options){this.credentials=options?.credentials??new InMemoryCredentialStore,this.authContext=options?.authContext??defaultProviderAuthContext()}setProvider(provider){this.providers.set(provider.id,provider)}deleteProvider(id){this.providers.delete(id)}clearProviders(){this.providers.clear()}getProviders(){return Array.from(this.providers.values())}getProvider(id){return this.providers.get(id)}getModels(provider){if(provider!==void 0){let entry=this.providers.get(provider);if(!entry)return[];try{return entry.getModels()}catch{return[]}}let models=[];for(let entry of this.providers.values())try{models.push(...entry.getModels())}catch{}return models}getModel(provider,id){return this.getModels(provider).find(model=>model.id===id)}async refresh(provider){if(provider!==void 0){let entry=this.providers.get(provider);if(!entry?.refreshModels)return;try{await entry.refreshModels()}catch(error2){throw error2 instanceof ModelsError?error2:new ModelsError("model_source",`Model refresh failed for ${provider}`,{cause:error2})}return}await Promise.allSettled(Array.from(this.providers.values(),async entry=>entry.refreshModels?.()))}async getAuth(providerOrModel,overrides){let providerId=typeof providerOrModel=="string"?providerOrModel:providerOrModel.provider,provider=this.providers.get(providerId);if(provider)return resolveProviderAuth(provider,this.credentials,this.authContext,overrides)}async generateImages(model,context,options){try{let provider=this.providers.get(model.provider);if(!provider)throw new ModelsError("provider",`Unknown provider: ${model.provider}`);let resolution=await this.getAuth(model,{apiKey:options?.apiKey,env:options?.env,signal:options?.signal}),auth=resolution?.auth;if(!auth)return provider.generateImages(model,context,options);let requestModel=auth.baseUrl?{...model,baseUrl:auth.baseUrl}:model,apiKey=options?.apiKey??auth.apiKey,headers=auth.headers||options?.headers?{...auth.headers,...options?.headers}:void 0,env2=resolution.env||options?.env?{...resolution.env??{},...options?.env??{}}:void 0;return await provider.generateImages(requestModel,context,{...options,apiKey,headers,env:env2})}catch(error2){return{api:model.api,provider:model.provider,model:model.id,output:[],stopReason:"error",errorMessage:error2 instanceof Error?error2.message:String(error2),timestamp:Date.now()}}}};function createImagesModels(options){return new ImagesModelsImpl(options)}function createImagesProvider(input){let models=input.models,inflightRefresh,refreshModels=input.refreshModels;return{id:input.id,name:input.name??input.id,auth:input.auth,getModels:()=>models,refreshModels:refreshModels?()=>(inflightRefresh??=(async()=>{try{models=await refreshModels()}finally{inflightRefresh=void 0}})(),inflightRefresh):void 0,generateImages:(model,context,options)=>input.api.generateImages(model,context,options)}}var DEFAULT_API="faux",DEFAULT_PROVIDER="faux",DEFAULT_MODEL_ID="faux-1",DEFAULT_MODEL_NAME="Faux Model",DEFAULT_BASE_URL="http://localhost:0",DEFAULT_MIN_TOKEN_SIZE=3,DEFAULT_MAX_TOKEN_SIZE=5,DEFAULT_USAGE={input:0,output:0,cacheRead:0,cacheWrite:0,totalTokens:0,cost:{input:0,output:0,cacheRead:0,cacheWrite:0,total:0}};function fauxText(text){return{type:"text",text}}function fauxThinking(thinking){return{type:"thinking",thinking}}function fauxToolCall(name,arguments_,options={}){return{type:"toolCall",id:options.id??`tool:${stableToolId(name,arguments_)}`,name,arguments:arguments_}}function stableToolId(name,arguments_){let input=`${name}:${JSON.stringify(arguments_)}`,hash=2166136261;for(let index3=0;index3<input.length;index3++)hash^=input.charCodeAt(index3),hash=Math.imul(hash,16777619);return(hash>>>0).toString(16).padStart(8,"0")}function normalizeFauxAssistantContent(content){if(typeof content=="string")return[fauxText(content)];let blocks=Array.isArray(content)?content:[content],occurrences=new Map;return blocks.map(block=>{if(block.type!=="toolCall")return block;let occurrence=(occurrences.get(block.id)??0)+1;return occurrences.set(block.id,occurrence),occurrence===1?block:{...block,id:`${block.id}:${occurrence}`}})}function fauxAssistantMessage(content,options={}){return{role:"assistant",content:normalizeFauxAssistantContent(content),api:DEFAULT_API,provider:DEFAULT_PROVIDER,model:DEFAULT_MODEL_ID,usage:DEFAULT_USAGE,stopReason:options.stopReason??"stop",deferred:options.deferred,errorMessage:options.errorMessage,responseId:options.responseId,timestamp:options.timestamp??0}}function estimateTokens(text){return Math.ceil(text.length/4)}function contentToText(content){return typeof content=="string"?content:content.map(block=>block.type==="text"?block.text:`[image:${block.mimeType}:${block.data.length}]`).join(`
|
|
404
404
|
`)}function assistantContentToText(content){return content.map(block=>block.type==="text"?block.text:block.type==="thinking"?block.thinking:`${block.name}:${JSON.stringify(block.arguments)}`).join(`
|
|
405
405
|
`)}function toolResultToText(message){return[message.toolName,...message.content.map(block=>contentToText([block]))].join(`
|
|
406
406
|
`)}function messageToText(message){return message.role==="user"?contentToText(message.content):message.role==="assistant"?assistantContentToText(message.content):toolResultToText(message)}function serializeContext(context){let parts=[];context.systemPrompt&&parts.push(`system:${context.systemPrompt}`);for(let message of context.messages)parts.push(`${message.role}:${messageToText(message)}`);return context.tools?.length&&parts.push(`tools:${JSON.stringify(context.tools)}`),parts.join(`
|
|
@@ -416,7 +416,7 @@ ${JSON.stringify(toolCall.arguments,null,2)}`;throw new Error(errorMessage)}var
|
|
|
416
416
|
`).filter(line=>line.trim()!=="")}function appendSiblingLog(root,entry){let path7=siblingLogPath(root),lines=readSiblingLogLines(root),line=JSON.stringify({...entry,at:new Date().toISOString()});if(lines.length<SUBAGENT_MAILBOX_SIBLING_LOG_MAX_ENTRIES){appendFileSync3(path7,`${line}
|
|
417
417
|
`,"utf8");return}let kept=lines.slice(-Math.floor(SUBAGENT_MAILBOX_SIBLING_LOG_MAX_ENTRIES/2));mkdirSync2(root,{recursive:!0}),writeFileSync2(join13(root,`.${SIBLING_LOG_NAME}.tmp`),`${[...kept,line].join(`
|
|
418
418
|
`)}
|
|
419
|
-
`,"utf8"),renameSync(join13(root,`.${SIBLING_LOG_NAME}.tmp`),path7)}function parseSiblingLogLine(line){try{let parsed=JSON.parse(line);return typeof parsed.from!="string"||typeof parsed.to!="string"||typeof parsed.text!="string"?void 0:{from:parsed.from,to:parsed.to,text:parsed.text}}catch{return}}function excerptSiblingText(text){if(utf8ByteLength(text)<=SUBAGENT_MAILBOX_SIBLING_EXCERPT_BYTES)return text;let markerBytes=utf8ByteLength("\u2026"),budget=SUBAGENT_MAILBOX_SIBLING_EXCERPT_BYTES-markerBytes,used=0,cut=0;for(let index3=0;index3<text.length;index3+=1){let units=text.charCodeAt(index3)>=55296&&text.charCodeAt(index3)<=56319&&index3+1<text.length?2:1,charBytes=utf8ByteLength(text.slice(index3,index3+units));if(used+charBytes>budget)break;used+=charBytes,cut=index3+units,units===2&&(index3+=1)}return`${text.slice(0,cut)}\u2026`}function createSubagentMailbox(options){let rootFor=()=>{let owner=options.ownerParentSessionId();if(owner===void 0)throw new SubagentMailboxErrorV1("subagent_unknown_session","mailbox owner session is not bound yet");return mailboxRoot(options.agentDir,owner)},assertBounded=(text,pendingCount,maxCount,quotaCode)=>{if(utf8ByteLength(text)>SUBAGENT_MAILBOX_MAX_MESSAGE_BYTES)throw new SubagentMailboxErrorV1("subagent_message_too_large",`message exceeds ${SUBAGENT_MAILBOX_MAX_MESSAGE_BYTES} utf-8 bytes`);if(pendingCount>=maxCount)throw new SubagentMailboxErrorV1(quotaCode,`mailbox has ${maxCount} pending messages already`)};return{postEscalate(fromSessionId,text){if(!isAgentSessionId(fromSessionId))throw new SubagentMailboxErrorV1("subagent_unknown_session","sender id is not a session id");let dir=escalationsDir(rootFor()),prefix=`${fromSessionId}__`,pending=listMessageFiles(dir).filter(name=>name.startsWith(prefix)).length;assertBounded(text,pending,SUBAGENT_MAILBOX_MAX_ESCALATIONS,"subagent_escalate_quota"),postMessage(dir,prefix,{from:fromSessionId,text})},drainEscalations(sessionId){let dir=escalationsDir(rootFor()),prefix=`${sessionId}__`,drained=[];for(let name of listMessageFiles(dir)){if(!name.startsWith(prefix))continue;let message=takeMessage(dir,name);message!==void 0&&typeof message.text=="string"&&drained.push(message.text)}return drained},postSibling(fromSessionId,toSessionId,text){let root=rootFor(),owner=options.ownerParentSessionId(),fromHead=readAgentSessionHead(options.agentDir,fromSessionId);if(owner===void 0||fromHead===void 0||fromHead.parentAgentSession!==owner)throw new SubagentMailboxErrorV1("subagent_unknown_session","sender is not a known child of this session");let toHead=readAgentSessionHead(options.agentDir,toSessionId);if(toHead===void 0||toHead.parentAgentSession!==owner)throw new SubagentMailboxErrorV1("subagent_unknown_session","recipient is not a known sibling under this session");let dir=inboxDir(root,toSessionId);assertBounded(text,listMessageFiles(dir).length,SUBAGENT_MAILBOX_MAX_INBOX,"subagent_inbox_quota"),postMessage(dir,`${fromSessionId}__`,{from:fromSessionId,text}),appendSiblingLog(root,{from:fromSessionId,to:toSessionId,text})},drainInbox(sessionId,limit){let dir=inboxDir(rootFor(),sessionId),drained=[];for(let name of listMessageFiles(dir)){if(drained.length>=Math.max(0,limit))break;let message=takeMessage(dir,name);message!==void 0&&(typeof message.from!="string"||typeof message.text!="string"||drained.push({from:message.from,text:message.text}))}return drained},readSiblingTraffic(sessionId,limit){let entries=[];for(let line of readSiblingLogLines(rootFor())){let entry=parseSiblingLogLine(line);entry!==void 0&&(entry.from!==sessionId&&entry.to!==sessionId||entries.push(entry))}return entries.slice(Math.max(0,entries.length-Math.max(0,limit))).map(entry=>({from:entry.from,to:entry.to,text:excerptSiblingText(entry.text)}))}}}function subagentMailboxExists(agentDir,ownerParentSessionId){try{return statSync5(mailboxRoot(agentDir,ownerParentSessionId)),!0}catch{return!1}}function subscribeTaskProgressV1(adapter,taskId,listener){return adapter.onTaskProgress?.(taskId,listener)??(()=>{})}var MAX_TOOL_NAMES=3;function createTurnProgressSourceV1(session){return handler=>{let turn=0,tools=new Set;return session.subscribe(event=>{if(typeof event!="object"||event===null)return;let typed=event;if(typed.type==="turn_start"){turn+=1,tools.clear();return}if(typed.type==="tool_execution_start"&&typeof typed.toolName=="string"){tools.size<MAX_TOOL_NAMES&&tools.add(typed.toolName);return}if(typed.type!=="turn_end")return;let names2=[...tools];handler(`turn ${Math.max(turn,1)} done${names2.length===0?"":` (${names2.join(", ")})`}`)})}}var SUBAGENT_TASK_PROTOCOL_VERSION=1,SubagentTaskProtocolError=class extends Error{code;constructor(message,code){super(message),this.name="SubagentTaskProtocolError",this.code=code}},OPS=["hello","create","run","cancel","dispose","result","steer"],ERROR_CODES=["invalid_request","unknown_task","task_terminal","session_error","runner_lost","cross_task_response"];function isString(value){return typeof value=="string"}function isNonEmptyString(value){return typeof value=="string"&&value.length>0}var REQUEST_KEYS=["v","kind","id","op","taskId","prompt","runId","reason","profile","parentSessionId","resumeSessionId","parentTraceId","text"],EVENT_KEYS=["v","kind","taskId","runId","type","message","seq"],OK_RESPONSE_KEYS=["appliedProfile","sessionId","v","kind","id","ok","taskId","runId","messages","truncated","protocolVersion","status"],ERROR_RESPONSE_KEYS=["v","kind","id","ok","code","message"];function assertAllowedKeys(env2,allowed,label){for(let key of Object.keys(env2))if(!allowed.includes(key))throw new SubagentTaskProtocolError(`${label} envelope has an unknown field: ${key}`,"invalid_request")}function assertOptionalString2(env2,key,label){let value=env2[key];if(value!==void 0&&!isString(value))throw new SubagentTaskProtocolError(`${label} envelope field ${key} must be a string`,"invalid_request")}function validateEnvelope(value){if(typeof value!="object"||value===null)throw new SubagentTaskProtocolError("envelope must be an object","invalid_request");let env2=value;if(env2.v!==SUBAGENT_TASK_PROTOCOL_VERSION)throw new SubagentTaskProtocolError(`unsupported envelope version: ${String(env2.v)}`,"invalid_request");if(env2.kind==="request"){if(assertAllowedKeys(env2,REQUEST_KEYS,"request"),!isNonEmptyString(env2.id)||!isString(env2.op)||!OPS.includes(env2.op))throw new SubagentTaskProtocolError("request envelope requires id and a known op","invalid_request");if(assertOptionalString2(env2,"taskId","request"),assertOptionalString2(env2,"prompt","request"),assertOptionalString2(env2,"runId","request"),assertOptionalString2(env2,"reason","request"),assertOptionalString2(env2,"parentSessionId","request"),assertOptionalString2(env2,"resumeSessionId","request"),assertOptionalString2(env2,"parentTraceId","request"),assertOptionalString2(env2,"text","request"),env2.profile!==void 0&&(env2.profile===null||typeof env2.profile!="object"||Array.isArray(env2.profile)))throw new SubagentTaskProtocolError("request profile must be an object","invalid_request");return env2}if(env2.kind==="event"){if(assertAllowedKeys(env2,EVENT_KEYS,"event"),!isNonEmptyString(env2.taskId)||env2.type!=="progress"||typeof env2.seq!="number"||!Number.isInteger(env2.seq)||env2.seq<0)throw new SubagentTaskProtocolError("event envelope requires taskId, type=progress and a non-negative integer seq","invalid_request");return assertOptionalString2(env2,"runId","event"),assertOptionalString2(env2,"message","event"),env2}if(env2.kind==="response"){if(!isNonEmptyString(env2.id)||typeof env2.ok!="boolean")throw new SubagentTaskProtocolError("response envelope requires id and boolean ok","invalid_request");if(env2.ok===!1){if(assertAllowedKeys(env2,ERROR_RESPONSE_KEYS,"error response"),!isString(env2.code)||!ERROR_CODES.includes(env2.code)||!isString(env2.message))throw new SubagentTaskProtocolError("error response requires a known code and a message","invalid_request");return env2}if(assertAllowedKeys(env2,OK_RESPONSE_KEYS,"ok response"),assertOptionalString2(env2,"taskId","ok response"),assertOptionalString2(env2,"runId","ok response"),assertOptionalString2(env2,"status","ok response"),assertOptionalString2(env2,"sessionId","ok response"),env2.appliedProfile!==void 0){let applied=env2.appliedProfile;if(applied===null||typeof applied!="object"||Array.isArray(applied))throw new SubagentTaskProtocolError("ok response appliedProfile must be an object","invalid_request");let record=applied,modelFacts=record.model;if(record.activeTools!==void 0&&(!Array.isArray(record.activeTools)||record.activeTools.some(name=>!isString(name)))||record.thinkingLevel!==void 0&&!isString(record.thinkingLevel)||record.systemPromptAppend!==void 0&&!isString(record.systemPromptAppend)||record.capabilityMode!==void 0&&!isString(record.capabilityMode)||modelFacts!==void 0&&(!isString(modelFacts.provider)||!isString(modelFacts.id)||typeof modelFacts.contextWindow!="number"||typeof modelFacts.maxTokens!="number"||typeof modelFacts.reasoning!="boolean"))throw new SubagentTaskProtocolError("ok response appliedProfile must carry activeTools/capabilityMode and complete model facts","invalid_request")}if(env2.messages!==void 0&&!Array.isArray(env2.messages))throw new SubagentTaskProtocolError("ok response field messages must be an array","invalid_request");if(env2.truncated!==void 0&&typeof env2.truncated!="boolean")throw new SubagentTaskProtocolError("ok response field truncated must be a boolean","invalid_request");if(env2.protocolVersion!==void 0&&(typeof env2.protocolVersion!="number"||!Number.isInteger(env2.protocolVersion)))throw new SubagentTaskProtocolError("ok response field protocolVersion must be an integer","invalid_request");return env2}throw new SubagentTaskProtocolError(`unknown envelope kind: ${String(env2.kind)}`,"invalid_request")}function encodeEnvelopeV1(env2){return encodeFrame(encodeCbor(env2))}function decodeEnvelopeV1(framePayload){let decoded;try{decoded=decodeCbor(framePayload)}catch(error2){throw new SubagentTaskProtocolError(`envelope payload is not valid CBOR: ${error2 instanceof Error?error2.message:String(error2)}`,"invalid_request")}return validateEnvelope(decoded)}function createSubagentTaskEnvelopeDecoderV1(){let decoder=new FrameDecoder;return{push(chunk){return decoder.push(chunk).map(payload=>decodeEnvelopeV1(payload))},end(){decoder.end()}}}var CHANNEL_CAPACITY=256,EnvelopeQueue=class{items=[];spaceWaiters=[];dataWaiters=[];closed=!1;push(env2){return this.closed?Promise.resolve():this.items.length>=CHANNEL_CAPACITY?new Promise(resolve5=>{this.spaceWaiters.push(()=>{this.deliver(env2),resolve5()})}):(this.deliver(env2),Promise.resolve())}close(){this.closed=!0;for(let wake of this.spaceWaiters.splice(0))wake();for(let resolve5 of this.dataWaiters.splice(0))resolve5({value:void 0,done:!0})}take(){let item=this.items.shift();return item!==void 0?(this.wakeSpace(),Promise.resolve({value:item,done:!1})):this.closed?Promise.resolve({value:void 0,done:!0}):new Promise(resolve5=>this.dataWaiters.push(resolve5))}deliver(env2){let resolve5=this.dataWaiters.shift();resolve5!==void 0?resolve5({value:env2,done:!1}):this.items.push(env2)}wakeSpace(){let wake=this.spaceWaiters.shift();wake!==void 0&&wake()}},QueueChannel=class{out;inQueue;constructor(out,inQueue){this.out=out,this.inQueue=inQueue}write(env2){return this.out.push(env2)}[Symbol.asyncIterator](){return{next:()=>this.inQueue.take()}}};function createSubagentTaskChannelPairV1(){let clientToServer=new EnvelopeQueue,serverToClient=new EnvelopeQueue;return{client:new QueueChannel(clientToServer,serverToClient),server:new QueueChannel(serverToClient,clientToServer),close(){clientToServer.close(),serverToClient.close()}}}import{randomUUID as randomUUID2}from"node:crypto";var DEFAULT_MAX_MESSAGES=2e3,DEFAULT_MAX_RESULT_BYTES=524288;function utf8ByteLength2(value){return new TextEncoder().encode(value).length}function safeStringify(value){try{let serialized=JSON.stringify(value);return serialized===void 0?"":serialized}catch{return""}}function boundServerMessagesV1(messages,maxMessages,maxResultBytes){let truncated=!1,selected=messages;selected.length>maxMessages&&(selected=selected.slice(0,maxMessages),truncated=!0);let bounded=[],used=0;for(let message of selected){let size=utf8ByteLength2(safeStringify(message));if(used+size>maxResultBytes){truncated=!0;break}used+=size,bounded.push(message)}return{messages:bounded,truncated}}function verifyAppliedProfile(session,requested){let requestedRecord=requested,facts=session.facts?.();if(facts===void 0||requestedRecord.tools!==void 0&&(facts.activeTools===void 0||facts.activeTools.some(name=>!requestedRecord.tools?.includes(name)))||requestedRecord.mode==="readonly"&&facts.capabilityMode!=="readonly")return"unverified";if(requestedRecord.model!==void 0&&facts.model?.id!==requestedRecord.model)return`model: requested ${requestedRecord.model}, got ${facts.model?.id??"none"}`;if(requestedRecord.thinkingLevel!==void 0&&facts.thinkingLevel!==requestedRecord.thinkingLevel)return`thinkingLevel: requested ${requestedRecord.thinkingLevel}, got ${facts.thinkingLevel??"none"}`;if(requestedRecord.systemPromptAppend!==void 0){if(facts.systemPromptAppend===void 0)return"systemPromptAppend: not verifiable (facts missing)";if(!facts.systemPromptAppend.includes(requestedRecord.systemPromptAppend))return"systemPromptAppend: requested append is not in effect (suite APPEND_SYSTEM.md gating may have dropped it)"}return{...facts.activeTools===void 0?{}:{activeTools:facts.activeTools},...facts.model===void 0?{}:{model:facts.model},...facts.capabilityMode===void 0?{}:{capabilityMode:facts.capabilityMode},...facts.thinkingLevel===void 0?{}:{thinkingLevel:facts.thinkingLevel},...facts.systemPromptAppend===void 0?{}:{systemPromptAppend:facts.systemPromptAppend}}}function createSubagentTaskServer(options,out){let maxMessages=options.maxMessages??DEFAULT_MAX_MESSAGES,maxResultBytes=options.maxResultBytes??DEFAULT_MAX_RESULT_BYTES,tasks=new Map,taskSequence=0,serverDisposed=!1,writeState={pending:0,coalesced:0},settleWrite=result=>result!==void 0&&typeof result.then=="function"?result:Promise.resolve(),send=env2=>{writeState.pending+=1,settleWrite(out.write(env2)).finally(()=>{writeState.pending-=1})},sendProgress=(entry,env2)=>{if(entry.progressInFlight){entry.pendingProgress=env2,writeState.coalesced+=1;return}entry.progressInFlight=!0,writeState.pending+=1,settleWrite(out.write(env2)).finally(()=>{writeState.pending-=1,entry.progressInFlight=!1;let next=entry.pendingProgress;entry.pendingProgress=void 0,next!==void 0&&!entry.disposed&&sendProgress(entry,next)})},okResponse=(id,fields)=>{send({v:SUBAGENT_TASK_PROTOCOL_VERSION,kind:"response",id,ok:!0,...fields})},errorResponse=(id,code,message)=>{send({v:SUBAGENT_TASK_PROTOCOL_VERSION,kind:"response",id,ok:!1,code,message})},lookup=id=>{if(id===void 0)return;let entry=tasks.get(id);return entry!==void 0&&!entry.disposed?entry:void 0},handleHello=env2=>{okResponse(env2.id,{protocolVersion:SUBAGENT_TASK_PROTOCOL_VERSION})},handleCreate=async env2=>{if(typeof env2.prompt!="string"){errorResponse(env2.id,"invalid_request","create requires a string prompt");return}try{let session=await options.createSession({prompt:env2.prompt,...env2.profile===void 0?{}:{profile:env2.profile},...env2.parentSessionId===void 0?{}:{parentSessionId:env2.parentSessionId},...env2.resumeSessionId===void 0?{}:{resumeSessionId:env2.resumeSessionId},...env2.parentTraceId===void 0?{}:{parentTraceId:env2.parentTraceId}}),appliedProfile=env2.profile===void 0?void 0:verifyAppliedProfile(session,env2.profile);if(typeof appliedProfile=="string"){await session.dispose().catch(()=>{}),errorResponse(env2.id,"session_error",`runner session could not prove the requested child task profile was applied: ${appliedProfile}`);return}let taskId=`st:${++taskSequence}:${randomUUID2().slice(0,8)}`;tasks.set(taskId,{taskId,session,disposed:!1,cancelledBeforeRun:!1,runActive:!1,progressSeq:0,progressInFlight:!1}),okResponse(env2.id,{taskId,sessionId:session.getSessionId(),...appliedProfile===void 0?{}:{appliedProfile}})}catch(error2){errorResponse(env2.id,"session_error",`session creation failed: ${error2 instanceof Error?error2.message:String(error2)}`)}},handleRun=env2=>{if(env2.taskId===void 0){errorResponse(env2.id,"invalid_request","run requires taskId");return}let entry=lookup(env2.taskId);if(entry===void 0){errorResponse(env2.id,"unknown_task","run requires a live task");return}if(typeof env2.prompt!="string"||typeof env2.runId!="string"){errorResponse(env2.id,"invalid_request","run requires prompt and runId");return}if(entry.cancelledBeforeRun){errorResponse(env2.id,"task_terminal","task was cancelled before the run started");return}if(entry.runActive){errorResponse(env2.id,"task_terminal","a run is already active for this task");return}let controller=new AbortController;if(entry.controller=controller,entry.runActive=!0,entry.unsubscribeProgress=void 0,entry.session.onProgress!==void 0){let unsubscribe=entry.session.onProgress(message=>{entry.disposed||sendProgress(entry,{v:SUBAGENT_TASK_PROTOCOL_VERSION,kind:"event",taskId:entry.taskId,runId:env2.runId,type:"progress",message,seq:++entry.progressSeq})});entry.unsubscribeProgress=typeof unsubscribe=="function"?unsubscribe:void 0}let settleRun=()=>{entry.runActive=!1,entry.controller=void 0,entry.unsubscribeProgress?.(),entry.unsubscribeProgress=void 0};entry.session.run(env2.prompt,controller.signal).then(outcome=>{entry.disposed||(settleRun(),entry.lastRunStatus=outcome.status==="done"?"succeeded":"cancelled",okResponse(env2.id,{taskId:entry.taskId,runId:env2.runId,status:entry.lastRunStatus}))}).catch(error2=>{entry.disposed||(settleRun(),errorResponse(env2.id,"session_error",`run failed: ${error2 instanceof Error?error2.message:String(error2)}`))})},handleCancel=async env2=>{if(env2.taskId===void 0){errorResponse(env2.id,"invalid_request","cancel requires taskId");return}let entry=lookup(env2.taskId);if(entry===void 0){errorResponse(env2.id,"unknown_task","cancel requires a live task");return}try{entry.runActive||(entry.cancelledBeforeRun=!0),entry.controller?.abort(env2.reason??"cancelled"),await entry.session.cancel(env2.reason),okResponse(env2.id,{taskId:entry.taskId})}catch(error2){errorResponse(env2.id,"session_error",`cancel failed: ${error2 instanceof Error?error2.message:String(error2)}`)}},handleSteer=async env2=>{if(env2.taskId===void 0){errorResponse(env2.id,"invalid_request","steer requires taskId");return}let entry=lookup(env2.taskId);if(entry===void 0){errorResponse(env2.id,"unknown_task","steer requires a live task");return}if(typeof env2.text!="string"||env2.text.trim()===""){errorResponse(env2.id,"invalid_request","steer requires non-empty text");return}if(entry.session.steer===void 0){errorResponse(env2.id,"session_error","runner session does not support steer");return}try{await entry.session.steer(env2.text),okResponse(env2.id,{taskId:entry.taskId})}catch(error2){errorResponse(env2.id,"session_error",`steer failed: ${error2 instanceof Error?error2.message:String(error2)}`)}},handleDispose=async env2=>{if(env2.taskId===void 0){errorResponse(env2.id,"invalid_request","dispose requires taskId");return}let entry=lookup(env2.taskId);if(entry===void 0){errorResponse(env2.id,"unknown_task","dispose requires a live task");return}entry.disposed=!0,entry.runActive=!1,entry.unsubscribeProgress?.(),entry.unsubscribeProgress=void 0,entry.controller?.abort("subagent task disposed"),entry.controller=void 0,tasks.delete(entry.taskId);try{await entry.session.dispose(),okResponse(env2.id,{taskId:entry.taskId})}catch(error2){errorResponse(env2.id,"session_error",`dispose failed: ${error2 instanceof Error?error2.message:String(error2)}`)}},handleResult=env2=>{if(env2.taskId===void 0){errorResponse(env2.id,"invalid_request","result requires taskId");return}let entry=lookup(env2.taskId);if(entry===void 0){errorResponse(env2.id,"unknown_task","result requires a live task");return}let bounded=boundServerMessagesV1(entry.session.getMessages(),maxMessages,maxResultBytes);okResponse(env2.id,{taskId:entry.taskId,messages:bounded.messages,truncated:bounded.truncated,...entry.lastRunStatus===void 0?{}:{status:entry.lastRunStatus}})};return{inspect(){return{pendingWrites:writeState.pending,coalescedProgress:writeState.coalesced}},handle(env2){if(serverDisposed)return env2.kind==="request"&&errorResponse(env2.id,"task_terminal","subagent task server is disposed"),Promise.resolve();if(env2.kind!=="request")return Promise.resolve();try{switch(env2.op){case"hello":return handleHello(env2),Promise.resolve();case"create":return handleCreate(env2);case"run":return handleRun(env2),Promise.resolve();case"cancel":return handleCancel(env2);case"dispose":return handleDispose(env2);case"result":return handleResult(env2),Promise.resolve();case"steer":return handleSteer(env2)}}catch(error2){return errorResponse(env2.id,"session_error",`request failed: ${error2 instanceof Error?error2.message:String(error2)}`),Promise.resolve()}return Promise.resolve()},async dispose(){serverDisposed=!0;let entries=[...tasks.values()];tasks.clear();for(let entry of entries){entry.disposed=!0,entry.unsubscribeProgress?.(),entry.unsubscribeProgress=void 0,entry.controller?.abort("subagent task server disposed"),entry.controller=void 0;try{await entry.session.dispose()}catch{}}}}}function createSubagentTaskStdioChannelV1(streams){let decoder=createSubagentTaskEnvelopeDecoderV1(),pending=[],waiters=[],closed=!1,failure,close=error2=>{if(!closed){closed=!0,failure=error2;for(let waiter of waiters.splice(0))error2!==void 0?waiter.reject(error2):waiter.resolve({value:void 0,done:!0});streams.onClosed?.(error2)}};return streams.input.on("data",chunk=>{if(closed)return;let bytes=typeof chunk=="string"?new TextEncoder().encode(chunk):new Uint8Array(chunk);try{for(let env2 of decoder.push(bytes)){let waiter=waiters.shift();waiter!==void 0?waiter.resolve({value:env2,done:!1}):pending.push(env2)}}catch(error2){close(error2 instanceof Error?error2:new Error(String(error2)))}}),streams.input.on("end",()=>{try{decoder.end()}catch(error2){close(error2 instanceof Error?error2:new Error(String(error2)));return}close()}),streams.input.on("error",error2=>close(error2)),streams.output.on("error",error2=>close(error2)),{async write(env2){if(closed)return;let frame=encodeEnvelopeV1(env2);streams.output.write(frame)||await new Promise((resolve5,reject)=>{let onDrain=()=>{streams.output.off("error",onError),resolve5()},onError=error2=>{streams.output.off("drain",onDrain),reject(error2)};streams.output.once("drain",onDrain),streams.output.once("error",onError)})},[Symbol.asyncIterator](){return{next:()=>{let item=pending.shift();return item!==void 0?Promise.resolve({value:item,done:!1}):failure!==void 0?Promise.reject(failure):closed?Promise.resolve({value:void 0,done:!0}):new Promise((resolve5,reject)=>waiters.push({resolve:resolve5,reject}))}}}}}var theme_exports={};__export(theme_exports,{Theme:()=>Theme,detectTerminalBackgroundFromEnv:()=>detectTerminalBackgroundFromEnv,detectTerminalBackgroundTheme:()=>detectTerminalBackgroundTheme,detectTerminalThemeForAuto:()=>detectTerminalThemeForAuto,getAvailableThemes:()=>getAvailableThemes,getAvailableThemesWithPaths:()=>getAvailableThemesWithPaths,getDefaultTheme:()=>getDefaultTheme,getEditorTheme:()=>getEditorTheme,getLanguageFromPath:()=>getLanguageFromPath,getMarkdownTheme:()=>getMarkdownTheme,getResolvedThemeColors:()=>getResolvedThemeColors,getSelectListTheme:()=>getSelectListTheme,getSettingsListTheme:()=>getSettingsListTheme,getThemeByName:()=>getThemeByName,getThemeExportColors:()=>getThemeExportColors,getThemeForRgbColor:()=>getThemeForRgbColor,highlightCode:()=>highlightCode,initTheme:()=>initTheme,isLightTheme:()=>isLightTheme,loadThemeFromPath:()=>loadThemeFromPath,onThemeChange:()=>onThemeChange,parseAutoThemeSetting:()=>parseAutoThemeSetting,resolveThemeSetting:()=>resolveThemeSetting,setRegisteredThemes:()=>setRegisteredThemes,setTheme:()=>setTheme,setThemeInstance:()=>setThemeInstance,stopThemeWatcher:()=>stopThemeWatcher,theme:()=>theme});import*as fs4 from"node:fs";import*as path6 from"node:path";var wrapAnsi16=(offset=0)=>code=>`\x1B[${code+offset}m`,wrapAnsi256=(offset=0)=>code=>`\x1B[${38+offset};5;${code}m`,wrapAnsi16m=(offset=0)=>(red,green,blue)=>`\x1B[${38+offset};2;${red};${green};${blue}m`,styles={modifier:{reset:[0,0],bold:[1,22],dim:[2,22],italic:[3,23],underline:[4,24],overline:[53,55],inverse:[7,27],hidden:[8,28],strikethrough:[9,29]},color:{black:[30,39],red:[31,39],green:[32,39],yellow:[33,39],blue:[34,39],magenta:[35,39],cyan:[36,39],white:[37,39],blackBright:[90,39],gray:[90,39],grey:[90,39],redBright:[91,39],greenBright:[92,39],yellowBright:[93,39],blueBright:[94,39],magentaBright:[95,39],cyanBright:[96,39],whiteBright:[97,39]},bgColor:{bgBlack:[40,49],bgRed:[41,49],bgGreen:[42,49],bgYellow:[43,49],bgBlue:[44,49],bgMagenta:[45,49],bgCyan:[46,49],bgWhite:[47,49],bgBlackBright:[100,49],bgGray:[100,49],bgGrey:[100,49],bgRedBright:[101,49],bgGreenBright:[102,49],bgYellowBright:[103,49],bgBlueBright:[104,49],bgMagentaBright:[105,49],bgCyanBright:[106,49],bgWhiteBright:[107,49]}},modifierNames=Object.keys(styles.modifier),foregroundColorNames=Object.keys(styles.color),backgroundColorNames=Object.keys(styles.bgColor),colorNames=[...foregroundColorNames,...backgroundColorNames];function assembleStyles(){let codes=new Map;for(let[groupName,group]of Object.entries(styles)){for(let[styleName,style]of Object.entries(group))styles[styleName]={open:`\x1B[${style[0]}m`,close:`\x1B[${style[1]}m`},group[styleName]=styles[styleName],codes.set(style[0],style[1]);Object.defineProperty(styles,groupName,{value:group,enumerable:!1})}return Object.defineProperty(styles,"codes",{value:codes,enumerable:!1}),styles.color.close="\x1B[39m",styles.bgColor.close="\x1B[49m",styles.color.ansi=wrapAnsi16(),styles.color.ansi256=wrapAnsi256(),styles.color.ansi16m=wrapAnsi16m(),styles.bgColor.ansi=wrapAnsi16(10),styles.bgColor.ansi256=wrapAnsi256(10),styles.bgColor.ansi16m=wrapAnsi16m(10),Object.defineProperties(styles,{rgbToAnsi256:{value(red,green,blue){return red===green&&green===blue?red<8?16:red>248?231:Math.round((red-8)/247*24)+232:16+36*Math.round(red/255*5)+6*Math.round(green/255*5)+Math.round(blue/255*5)},enumerable:!1},hexToRgb:{value(hex){let matches=/[a-f\d]{6}|[a-f\d]{3}/i.exec(hex.toString(16));if(!matches)return[0,0,0];let[colorString]=matches;colorString.length===3&&(colorString=[...colorString].map(character=>character+character).join(""));let integer=Number.parseInt(colorString,16);return[integer>>16&255,integer>>8&255,integer&255]},enumerable:!1},hexToAnsi256:{value:hex=>styles.rgbToAnsi256(...styles.hexToRgb(hex)),enumerable:!1},ansi256ToAnsi:{value(code){if(code<8)return 30+code;if(code<16)return 90+(code-8);let red,green,blue;if(code>=232)red=((code-232)*10+8)/255,green=red,blue=red;else{code-=16;let remainder=code%36;red=Math.floor(code/36)/5,green=Math.floor(remainder/6)/5,blue=remainder%6/5}let value=Math.max(red,green,blue)*2;if(value===0)return 30;let result=30+(Math.round(blue)<<2|Math.round(green)<<1|Math.round(red));return value===2&&(result+=60),result},enumerable:!1},rgbToAnsi:{value:(red,green,blue)=>styles.ansi256ToAnsi(styles.rgbToAnsi256(red,green,blue)),enumerable:!1},hexToAnsi:{value:hex=>styles.ansi256ToAnsi(styles.hexToAnsi256(hex)),enumerable:!1}}),styles}var ansiStyles=assembleStyles(),ansi_styles_default=ansiStyles;import process2 from"node:process";import os2 from"node:os";import tty from"node:tty";function hasFlag(flag,argv=globalThis.Deno?globalThis.Deno.args:process2.argv){let prefix=flag.startsWith("-")?"":flag.length===1?"-":"--",position=argv.indexOf(prefix+flag),terminatorPosition=argv.indexOf("--");return position!==-1&&(terminatorPosition===-1||position<terminatorPosition)}var{env}=process2,flagForceColor;hasFlag("no-color")||hasFlag("no-colors")||hasFlag("color=false")||hasFlag("color=never")?flagForceColor=0:(hasFlag("color")||hasFlag("colors")||hasFlag("color=true")||hasFlag("color=always"))&&(flagForceColor=1);function envForceColor(){if("FORCE_COLOR"in env)return env.FORCE_COLOR==="true"?1:env.FORCE_COLOR==="false"?0:env.FORCE_COLOR.length===0?1:Math.min(Number.parseInt(env.FORCE_COLOR,10),3)}function translateLevel(level){return level===0?!1:{level,hasBasic:!0,has256:level>=2,has16m:level>=3}}function _supportsColor(haveStream,{streamIsTTY,sniffFlags=!0}={}){let noFlagForceColor=envForceColor();noFlagForceColor!==void 0&&(flagForceColor=noFlagForceColor);let forceColor=sniffFlags?flagForceColor:noFlagForceColor;if(forceColor===0)return 0;if(sniffFlags){if(hasFlag("color=16m")||hasFlag("color=full")||hasFlag("color=truecolor"))return 3;if(hasFlag("color=256"))return 2}if("TF_BUILD"in env&&"AGENT_NAME"in env)return 1;if(haveStream&&!streamIsTTY&&forceColor===void 0)return 0;let min=forceColor||0;if(env.TERM==="dumb")return min;if(process2.platform==="win32"){let osRelease=os2.release().split(".");return Number(osRelease[0])>=10&&Number(osRelease[2])>=10586?Number(osRelease[2])>=14931?3:2:1}if("CI"in env)return["GITHUB_ACTIONS","GITEA_ACTIONS","CIRCLECI"].some(key=>key in env)?3:["TRAVIS","APPVEYOR","GITLAB_CI","BUILDKITE","DRONE"].some(sign=>sign in env)||env.CI_NAME==="codeship"?1:min;if("TEAMCITY_VERSION"in env)return/^(9\.(0*[1-9]\d*)\.|\d{2,}\.)/.test(env.TEAMCITY_VERSION)?1:0;if(env.COLORTERM==="truecolor"||env.TERM==="xterm-kitty"||env.TERM==="xterm-ghostty"||env.TERM==="wezterm")return 3;if("TERM_PROGRAM"in env){let version=Number.parseInt((env.TERM_PROGRAM_VERSION||"").split(".")[0],10);switch(env.TERM_PROGRAM){case"iTerm.app":return version>=3?3:2;case"Apple_Terminal":return 2}}return/-256(color)?$/i.test(env.TERM)?2:/^screen|^xterm|^vt100|^vt220|^rxvt|color|ansi|cygwin|linux/i.test(env.TERM)||"COLORTERM"in env?1:min}function createSupportsColor(stream2,options={}){let level=_supportsColor(stream2,{streamIsTTY:stream2&&stream2.isTTY,...options});return translateLevel(level)}var supportsColor={stdout:createSupportsColor({isTTY:tty.isatty(1)}),stderr:createSupportsColor({isTTY:tty.isatty(2)})},supports_color_default=supportsColor;function stringReplaceAll(string,substring,replacer){let index3=string.indexOf(substring);if(index3===-1)return string;let substringLength=substring.length,endIndex=0,returnValue="";do returnValue+=string.slice(endIndex,index3)+substring+replacer,endIndex=index3+substringLength,index3=string.indexOf(substring,endIndex);while(index3!==-1);return returnValue+=string.slice(endIndex),returnValue}function stringEncaseCRLFWithFirstIndex(string,prefix,postfix,index3){let endIndex=0,returnValue="";do{let gotCR=string[index3-1]==="\r";returnValue+=string.slice(endIndex,gotCR?index3-1:index3)+prefix+(gotCR?`\r
|
|
419
|
+
`,"utf8"),renameSync(join13(root,`.${SIBLING_LOG_NAME}.tmp`),path7)}function parseSiblingLogLine(line){try{let parsed=JSON.parse(line);return typeof parsed.from!="string"||typeof parsed.to!="string"||typeof parsed.text!="string"?void 0:{from:parsed.from,to:parsed.to,text:parsed.text}}catch{return}}function excerptSiblingText(text){if(utf8ByteLength(text)<=SUBAGENT_MAILBOX_SIBLING_EXCERPT_BYTES)return text;let markerBytes=utf8ByteLength("\u2026"),budget=SUBAGENT_MAILBOX_SIBLING_EXCERPT_BYTES-markerBytes,used=0,cut=0;for(let index3=0;index3<text.length;index3+=1){let units=text.charCodeAt(index3)>=55296&&text.charCodeAt(index3)<=56319&&index3+1<text.length?2:1,charBytes=utf8ByteLength(text.slice(index3,index3+units));if(used+charBytes>budget)break;used+=charBytes,cut=index3+units,units===2&&(index3+=1)}return`${text.slice(0,cut)}\u2026`}function createSubagentMailbox(options){let rootFor=()=>{let owner=options.ownerParentSessionId();if(owner===void 0)throw new SubagentMailboxErrorV1("subagent_unknown_session","mailbox owner session is not bound yet");return mailboxRoot(options.agentDir,owner)},assertBounded=(text,pendingCount,maxCount,quotaCode)=>{if(utf8ByteLength(text)>SUBAGENT_MAILBOX_MAX_MESSAGE_BYTES)throw new SubagentMailboxErrorV1("subagent_message_too_large",`message exceeds ${SUBAGENT_MAILBOX_MAX_MESSAGE_BYTES} utf-8 bytes`);if(pendingCount>=maxCount)throw new SubagentMailboxErrorV1(quotaCode,`mailbox has ${maxCount} pending messages already`)};return{postEscalate(fromSessionId,text){if(!isAgentSessionId(fromSessionId))throw new SubagentMailboxErrorV1("subagent_unknown_session","sender id is not a session id");let dir=escalationsDir(rootFor()),prefix=`${fromSessionId}__`,pending=listMessageFiles(dir).filter(name=>name.startsWith(prefix)).length;assertBounded(text,pending,SUBAGENT_MAILBOX_MAX_ESCALATIONS,"subagent_escalate_quota"),postMessage(dir,prefix,{from:fromSessionId,text})},drainEscalations(sessionId){let dir=escalationsDir(rootFor()),prefix=`${sessionId}__`,drained=[];for(let name of listMessageFiles(dir)){if(!name.startsWith(prefix))continue;let message=takeMessage(dir,name);message!==void 0&&typeof message.text=="string"&&drained.push(message.text)}return drained},postSibling(fromSessionId,toSessionId,text){let root=rootFor(),owner=options.ownerParentSessionId(),fromHead=readAgentSessionHead(options.agentDir,fromSessionId);if(owner===void 0||fromHead===void 0||fromHead.parentAgentSession!==owner)throw new SubagentMailboxErrorV1("subagent_unknown_session","sender is not a known child of this session");let toHead=readAgentSessionHead(options.agentDir,toSessionId);if(toHead===void 0||toHead.parentAgentSession!==owner)throw new SubagentMailboxErrorV1("subagent_unknown_session","recipient is not a known sibling under this session");let dir=inboxDir(root,toSessionId);assertBounded(text,listMessageFiles(dir).length,SUBAGENT_MAILBOX_MAX_INBOX,"subagent_inbox_quota"),postMessage(dir,`${fromSessionId}__`,{from:fromSessionId,text}),appendSiblingLog(root,{from:fromSessionId,to:toSessionId,text})},drainInbox(sessionId,limit){let dir=inboxDir(rootFor(),sessionId),drained=[];for(let name of listMessageFiles(dir)){if(drained.length>=Math.max(0,limit))break;let message=takeMessage(dir,name);message!==void 0&&(typeof message.from!="string"||typeof message.text!="string"||drained.push({from:message.from,text:message.text}))}return drained},readSiblingTraffic(sessionId,limit){let entries=[];for(let line of readSiblingLogLines(rootFor())){let entry=parseSiblingLogLine(line);entry!==void 0&&(entry.from!==sessionId&&entry.to!==sessionId||entries.push(entry))}return entries.slice(Math.max(0,entries.length-Math.max(0,limit))).map(entry=>({from:entry.from,to:entry.to,text:excerptSiblingText(entry.text)}))}}}function subagentMailboxExists(agentDir,ownerParentSessionId){try{return statSync5(mailboxRoot(agentDir,ownerParentSessionId)),!0}catch{return!1}}function subscribeTaskProgressV1(adapter,taskId,listener){return adapter.onTaskProgress?.(taskId,listener)??(()=>{})}var MAX_TOOL_NAMES=3;function createTurnProgressSourceV1(session){return handler=>{let turn=0,tools=new Set;return session.subscribe(event=>{if(typeof event!="object"||event===null)return;let typed=event;if(typed.type==="turn_start"){turn+=1,tools.clear();return}if(typed.type==="tool_execution_start"&&typeof typed.toolName=="string"){tools.size<MAX_TOOL_NAMES&&tools.add(typed.toolName);return}if(typed.type!=="turn_end")return;let names2=[...tools];handler(`turn ${Math.max(turn,1)} done${names2.length===0?"":` (${names2.join(", ")})`}`)})}}var SUBAGENT_TASK_PROTOCOL_VERSION=1,SubagentTaskProtocolError=class extends Error{code;constructor(message,code){super(message),this.name="SubagentTaskProtocolError",this.code=code}},OPS=["hello","create","run","cancel","dispose","result","steer"],ERROR_CODES=["invalid_request","unknown_task","task_terminal","session_error","runner_lost","cross_task_response"];function isString(value){return typeof value=="string"}function isNonEmptyString(value){return typeof value=="string"&&value.length>0}var REQUEST_KEYS=["v","kind","id","op","taskId","prompt","runId","reason","profile","parentSessionId","resumeSessionId","parentTraceId","text"],EVENT_KEYS=["v","kind","taskId","runId","type","message","seq"],OK_RESPONSE_KEYS=["appliedProfile","sessionId","v","kind","id","ok","taskId","runId","messages","truncated","protocolVersion","status"],ERROR_RESPONSE_KEYS=["v","kind","id","ok","code","message"];function assertAllowedKeys(env2,allowed,label){for(let key of Object.keys(env2))if(!allowed.includes(key))throw new SubagentTaskProtocolError(`${label} envelope has an unknown field: ${key}`,"invalid_request")}function assertOptionalString2(env2,key,label){let value=env2[key];if(value!==void 0&&!isString(value))throw new SubagentTaskProtocolError(`${label} envelope field ${key} must be a string`,"invalid_request")}function validateEnvelope(value){if(typeof value!="object"||value===null)throw new SubagentTaskProtocolError("envelope must be an object","invalid_request");let env2=value;if(env2.v!==SUBAGENT_TASK_PROTOCOL_VERSION)throw new SubagentTaskProtocolError(`unsupported envelope version: ${String(env2.v)}`,"invalid_request");if(env2.kind==="request"){if(assertAllowedKeys(env2,REQUEST_KEYS,"request"),!isNonEmptyString(env2.id)||!isString(env2.op)||!OPS.includes(env2.op))throw new SubagentTaskProtocolError("request envelope requires id and a known op","invalid_request");if(assertOptionalString2(env2,"taskId","request"),assertOptionalString2(env2,"prompt","request"),assertOptionalString2(env2,"runId","request"),assertOptionalString2(env2,"reason","request"),assertOptionalString2(env2,"parentSessionId","request"),assertOptionalString2(env2,"resumeSessionId","request"),assertOptionalString2(env2,"parentTraceId","request"),assertOptionalString2(env2,"text","request"),env2.profile!==void 0&&(env2.profile===null||typeof env2.profile!="object"||Array.isArray(env2.profile)))throw new SubagentTaskProtocolError("request profile must be an object","invalid_request");return env2}if(env2.kind==="event"){if(assertAllowedKeys(env2,EVENT_KEYS,"event"),!isNonEmptyString(env2.taskId)||env2.type!=="progress"||typeof env2.seq!="number"||!Number.isInteger(env2.seq)||env2.seq<0)throw new SubagentTaskProtocolError("event envelope requires taskId, type=progress and a non-negative integer seq","invalid_request");return assertOptionalString2(env2,"runId","event"),assertOptionalString2(env2,"message","event"),env2}if(env2.kind==="response"){if(!isNonEmptyString(env2.id)||typeof env2.ok!="boolean")throw new SubagentTaskProtocolError("response envelope requires id and boolean ok","invalid_request");if(env2.ok===!1){if(assertAllowedKeys(env2,ERROR_RESPONSE_KEYS,"error response"),!isString(env2.code)||!ERROR_CODES.includes(env2.code)||!isString(env2.message))throw new SubagentTaskProtocolError("error response requires a known code and a message","invalid_request");return env2}if(assertAllowedKeys(env2,OK_RESPONSE_KEYS,"ok response"),assertOptionalString2(env2,"taskId","ok response"),assertOptionalString2(env2,"runId","ok response"),assertOptionalString2(env2,"status","ok response"),assertOptionalString2(env2,"sessionId","ok response"),env2.appliedProfile!==void 0){let applied=env2.appliedProfile;if(applied===null||typeof applied!="object"||Array.isArray(applied))throw new SubagentTaskProtocolError("ok response appliedProfile must be an object","invalid_request");let record=applied,modelFacts=record.model;if(record.activeTools!==void 0&&(!Array.isArray(record.activeTools)||record.activeTools.some(name=>!isString(name)))||record.thinkingLevel!==void 0&&!isString(record.thinkingLevel)||record.systemPromptAppend!==void 0&&!isString(record.systemPromptAppend)||record.capabilityMode!==void 0&&!isString(record.capabilityMode)||modelFacts!==void 0&&(!isString(modelFacts.provider)||!isString(modelFacts.id)||typeof modelFacts.contextWindow!="number"||typeof modelFacts.maxTokens!="number"||typeof modelFacts.reasoning!="boolean"))throw new SubagentTaskProtocolError("ok response appliedProfile must carry activeTools/capabilityMode and complete model facts","invalid_request")}if(env2.messages!==void 0&&!Array.isArray(env2.messages))throw new SubagentTaskProtocolError("ok response field messages must be an array","invalid_request");if(env2.truncated!==void 0&&typeof env2.truncated!="boolean")throw new SubagentTaskProtocolError("ok response field truncated must be a boolean","invalid_request");if(env2.protocolVersion!==void 0&&(typeof env2.protocolVersion!="number"||!Number.isInteger(env2.protocolVersion)))throw new SubagentTaskProtocolError("ok response field protocolVersion must be an integer","invalid_request");return env2}throw new SubagentTaskProtocolError(`unknown envelope kind: ${String(env2.kind)}`,"invalid_request")}function encodeEnvelopeV1(env2){return encodeFrame(encodeCbor(env2))}function decodeEnvelopeV1(framePayload){let decoded;try{decoded=decodeCbor(framePayload)}catch(error2){throw new SubagentTaskProtocolError(`envelope payload is not valid CBOR: ${error2 instanceof Error?error2.message:String(error2)}`,"invalid_request")}return validateEnvelope(decoded)}function createSubagentTaskEnvelopeDecoderV1(){let decoder=new FrameDecoder;return{push(chunk){return decoder.push(chunk).map(payload=>decodeEnvelopeV1(payload))},end(){decoder.end()}}}var CHANNEL_CAPACITY=256,EnvelopeQueue=class{items=[];spaceWaiters=[];dataWaiters=[];closed=!1;push(env2){return this.closed?Promise.resolve():this.items.length>=CHANNEL_CAPACITY?new Promise(resolve5=>{this.spaceWaiters.push(()=>{this.deliver(env2),resolve5()})}):(this.deliver(env2),Promise.resolve())}close(){this.closed=!0;for(let wake of this.spaceWaiters.splice(0))wake();for(let resolve5 of this.dataWaiters.splice(0))resolve5({value:void 0,done:!0})}take(){let item=this.items.shift();return item!==void 0?(this.wakeSpace(),Promise.resolve({value:item,done:!1})):this.closed?Promise.resolve({value:void 0,done:!0}):new Promise(resolve5=>this.dataWaiters.push(resolve5))}deliver(env2){let resolve5=this.dataWaiters.shift();resolve5!==void 0?resolve5({value:env2,done:!1}):this.items.push(env2)}wakeSpace(){let wake=this.spaceWaiters.shift();wake!==void 0&&wake()}},QueueChannel=class{out;inQueue;constructor(out,inQueue){this.out=out,this.inQueue=inQueue}write(env2){return this.out.push(env2)}[Symbol.asyncIterator](){return{next:()=>this.inQueue.take()}}};function createSubagentTaskChannelPairV1(){let clientToServer=new EnvelopeQueue,serverToClient=new EnvelopeQueue;return{client:new QueueChannel(clientToServer,serverToClient),server:new QueueChannel(serverToClient,clientToServer),close(){clientToServer.close(),serverToClient.close()}}}import{randomUUID as randomUUID2}from"node:crypto";var DEFAULT_MAX_MESSAGES=2e3,DEFAULT_MAX_RESULT_BYTES=524288;function utf8ByteLength2(value){return new TextEncoder().encode(value).length}function safeStringify(value){try{let serialized=JSON.stringify(value);return serialized===void 0?"":serialized}catch{return""}}function boundServerMessagesV1(messages,maxMessages,maxResultBytes){let truncated=!1,selected=messages;selected.length>maxMessages&&(selected=selected.slice(0,maxMessages),truncated=!0);let bounded=[],used=0;for(let message of selected){let size=utf8ByteLength2(safeStringify(message));if(used+size>maxResultBytes){truncated=!0;break}used+=size,bounded.push(message)}return{messages:bounded,truncated}}function verifyAppliedProfile(session,requested){let requestedRecord=requested,facts=session.facts?.();if(facts===void 0||requestedRecord.tools!==void 0&&(facts.activeTools===void 0||facts.activeTools.some(name=>!requestedRecord.tools?.includes(name)))||requestedRecord.mode==="readonly"&&facts.capabilityMode!=="readonly")return"unverified";if(requestedRecord.model!==void 0&&facts.model?.id!==requestedRecord.model)return`model: requested ${requestedRecord.model}, got ${facts.model?.id??"none"}`;if(requestedRecord.thinkingLevel!==void 0&&facts.thinkingLevel!==requestedRecord.thinkingLevel)return`thinkingLevel: requested ${requestedRecord.thinkingLevel}, got ${facts.thinkingLevel??"none"}`;if(requestedRecord.systemPromptAppend!==void 0){if(facts.systemPromptAppend===void 0)return"systemPromptAppend: not verifiable (facts missing)";if(!facts.systemPromptAppend.includes(requestedRecord.systemPromptAppend))return"systemPromptAppend: requested append is not in effect (suite APPEND_SYSTEM.md gating may have dropped it)"}return{...facts.activeTools===void 0?{}:{activeTools:facts.activeTools},...facts.model===void 0?{}:{model:facts.model},...facts.capabilityMode===void 0?{}:{capabilityMode:facts.capabilityMode},...facts.thinkingLevel===void 0?{}:{thinkingLevel:facts.thinkingLevel},...facts.systemPromptAppend===void 0?{}:{systemPromptAppend:facts.systemPromptAppend}}}function createSubagentTaskServer(options,out){let maxMessages=options.maxMessages??DEFAULT_MAX_MESSAGES,maxResultBytes=options.maxResultBytes??DEFAULT_MAX_RESULT_BYTES,tasks=new Map,taskSequence=0,serverDisposed=!1,writeState={pending:0,coalesced:0},settleWrite=result=>result!==void 0&&typeof result.then=="function"?result:Promise.resolve(),writeTail=Promise.resolve(),enqueueWrite=(env2,onSettled)=>{writeState.pending+=1,writeTail=writeTail.then(()=>settleWrite(out.write(env2))).catch(()=>{}).finally(()=>{writeState.pending-=1,onSettled?.()})},send=env2=>{enqueueWrite(env2)},sendProgress=(entry,env2)=>{if(entry.progressInFlight){entry.pendingProgress=env2,writeState.coalesced+=1;return}entry.progressInFlight=!0,enqueueWrite(env2,()=>{entry.progressInFlight=!1;let next=entry.pendingProgress;entry.pendingProgress=void 0,next!==void 0&&!entry.disposed&&sendProgress(entry,next)})},okResponse=(id,fields)=>{send({v:SUBAGENT_TASK_PROTOCOL_VERSION,kind:"response",id,ok:!0,...fields})},errorResponse=(id,code,message)=>{send({v:SUBAGENT_TASK_PROTOCOL_VERSION,kind:"response",id,ok:!1,code,message})},lookup=id=>{if(id===void 0)return;let entry=tasks.get(id);return entry!==void 0&&!entry.disposed?entry:void 0},handleHello=env2=>{okResponse(env2.id,{protocolVersion:SUBAGENT_TASK_PROTOCOL_VERSION})},handleCreate=async env2=>{if(typeof env2.prompt!="string"){errorResponse(env2.id,"invalid_request","create requires a string prompt");return}try{let session=await options.createSession({prompt:env2.prompt,...env2.profile===void 0?{}:{profile:env2.profile},...env2.parentSessionId===void 0?{}:{parentSessionId:env2.parentSessionId},...env2.resumeSessionId===void 0?{}:{resumeSessionId:env2.resumeSessionId},...env2.parentTraceId===void 0?{}:{parentTraceId:env2.parentTraceId}}),appliedProfile=env2.profile===void 0?void 0:verifyAppliedProfile(session,env2.profile);if(typeof appliedProfile=="string"){await session.dispose().catch(()=>{}),errorResponse(env2.id,"session_error",`runner session could not prove the requested child task profile was applied: ${appliedProfile}`);return}let taskId=`st:${++taskSequence}:${randomUUID2().slice(0,8)}`;tasks.set(taskId,{taskId,session,disposed:!1,cancelledBeforeRun:!1,runActive:!1,progressSeq:0,progressInFlight:!1}),okResponse(env2.id,{taskId,sessionId:session.getSessionId(),...appliedProfile===void 0?{}:{appliedProfile}})}catch(error2){errorResponse(env2.id,"session_error",`session creation failed: ${error2 instanceof Error?error2.message:String(error2)}`)}},handleRun=env2=>{if(env2.taskId===void 0){errorResponse(env2.id,"invalid_request","run requires taskId");return}let entry=lookup(env2.taskId);if(entry===void 0){errorResponse(env2.id,"unknown_task","run requires a live task");return}if(typeof env2.prompt!="string"||typeof env2.runId!="string"){errorResponse(env2.id,"invalid_request","run requires prompt and runId");return}if(entry.cancelledBeforeRun){errorResponse(env2.id,"task_terminal","task was cancelled before the run started");return}if(entry.runActive){errorResponse(env2.id,"task_terminal","a run is already active for this task");return}let controller=new AbortController;if(entry.controller=controller,entry.runActive=!0,entry.unsubscribeProgress=void 0,entry.session.onProgress!==void 0){let unsubscribe=entry.session.onProgress(message=>{entry.disposed||sendProgress(entry,{v:SUBAGENT_TASK_PROTOCOL_VERSION,kind:"event",taskId:entry.taskId,runId:env2.runId,type:"progress",message,seq:++entry.progressSeq})});entry.unsubscribeProgress=typeof unsubscribe=="function"?unsubscribe:void 0}let settleRun=()=>{entry.runActive=!1,entry.controller=void 0,entry.unsubscribeProgress?.(),entry.unsubscribeProgress=void 0};entry.session.run(env2.prompt,controller.signal).then(outcome=>{entry.disposed||(settleRun(),entry.lastRunStatus=outcome.status==="done"?"succeeded":"cancelled",okResponse(env2.id,{taskId:entry.taskId,runId:env2.runId,status:entry.lastRunStatus}))}).catch(error2=>{entry.disposed||(settleRun(),errorResponse(env2.id,"session_error",`run failed: ${error2 instanceof Error?error2.message:String(error2)}`))})},handleCancel=async env2=>{if(env2.taskId===void 0){errorResponse(env2.id,"invalid_request","cancel requires taskId");return}let entry=lookup(env2.taskId);if(entry===void 0){errorResponse(env2.id,"unknown_task","cancel requires a live task");return}try{entry.runActive||(entry.cancelledBeforeRun=!0),entry.controller?.abort(env2.reason??"cancelled"),await entry.session.cancel(env2.reason),okResponse(env2.id,{taskId:entry.taskId})}catch(error2){errorResponse(env2.id,"session_error",`cancel failed: ${error2 instanceof Error?error2.message:String(error2)}`)}},handleSteer=async env2=>{if(env2.taskId===void 0){errorResponse(env2.id,"invalid_request","steer requires taskId");return}let entry=lookup(env2.taskId);if(entry===void 0){errorResponse(env2.id,"unknown_task","steer requires a live task");return}if(typeof env2.text!="string"||env2.text.trim()===""){errorResponse(env2.id,"invalid_request","steer requires non-empty text");return}if(entry.session.steer===void 0){errorResponse(env2.id,"session_error","runner session does not support steer");return}try{await entry.session.steer(env2.text),okResponse(env2.id,{taskId:entry.taskId})}catch(error2){errorResponse(env2.id,"session_error",`steer failed: ${error2 instanceof Error?error2.message:String(error2)}`)}},handleDispose=async env2=>{if(env2.taskId===void 0){errorResponse(env2.id,"invalid_request","dispose requires taskId");return}let entry=lookup(env2.taskId);if(entry===void 0){errorResponse(env2.id,"unknown_task","dispose requires a live task");return}entry.disposed=!0,entry.runActive=!1,entry.unsubscribeProgress?.(),entry.unsubscribeProgress=void 0,entry.controller?.abort("subagent task disposed"),entry.controller=void 0,tasks.delete(entry.taskId);try{await entry.session.dispose(),okResponse(env2.id,{taskId:entry.taskId})}catch(error2){errorResponse(env2.id,"session_error",`dispose failed: ${error2 instanceof Error?error2.message:String(error2)}`)}},handleResult=env2=>{if(env2.taskId===void 0){errorResponse(env2.id,"invalid_request","result requires taskId");return}let entry=lookup(env2.taskId);if(entry===void 0){errorResponse(env2.id,"unknown_task","result requires a live task");return}let bounded=boundServerMessagesV1(entry.session.getMessages(),maxMessages,maxResultBytes);okResponse(env2.id,{taskId:entry.taskId,messages:bounded.messages,truncated:bounded.truncated,...entry.lastRunStatus===void 0?{}:{status:entry.lastRunStatus}})};return{inspect(){return{pendingWrites:writeState.pending,coalescedProgress:writeState.coalesced}},handle(env2){if(serverDisposed)return env2.kind==="request"&&errorResponse(env2.id,"task_terminal","subagent task server is disposed"),Promise.resolve();if(env2.kind!=="request")return Promise.resolve();try{switch(env2.op){case"hello":return handleHello(env2),Promise.resolve();case"create":return handleCreate(env2);case"run":return handleRun(env2),Promise.resolve();case"cancel":return handleCancel(env2);case"dispose":return handleDispose(env2);case"result":return handleResult(env2),Promise.resolve();case"steer":return handleSteer(env2)}}catch(error2){return errorResponse(env2.id,"session_error",`request failed: ${error2 instanceof Error?error2.message:String(error2)}`),Promise.resolve()}return Promise.resolve()},async dispose(){serverDisposed=!0;let entries=[...tasks.values()];tasks.clear();for(let entry of entries){entry.disposed=!0,entry.unsubscribeProgress?.(),entry.unsubscribeProgress=void 0,entry.controller?.abort("subagent task server disposed"),entry.controller=void 0;try{await entry.session.dispose()}catch{}}}}}function createSubagentTaskStdioChannelV1(streams){let decoder=createSubagentTaskEnvelopeDecoderV1(),pending=[],waiters=[],closed=!1,failure,close=error2=>{if(!closed){closed=!0,failure=error2;for(let waiter of waiters.splice(0))error2!==void 0?waiter.reject(error2):waiter.resolve({value:void 0,done:!0});streams.onClosed?.(error2)}};return streams.input.on("data",chunk=>{if(closed)return;let bytes=typeof chunk=="string"?new TextEncoder().encode(chunk):new Uint8Array(chunk);try{for(let env2 of decoder.push(bytes)){let waiter=waiters.shift();waiter!==void 0?waiter.resolve({value:env2,done:!1}):pending.push(env2)}}catch(error2){close(error2 instanceof Error?error2:new Error(String(error2)))}}),streams.input.on("end",()=>{try{decoder.end()}catch(error2){close(error2 instanceof Error?error2:new Error(String(error2)));return}close()}),streams.input.on("error",error2=>close(error2)),streams.output.on("error",error2=>close(error2)),{async write(env2){if(closed)return;let frame=encodeEnvelopeV1(env2);streams.output.write(frame)||await new Promise((resolve5,reject)=>{let onDrain=()=>{streams.output.off("error",onError),resolve5()},onError=error2=>{streams.output.off("drain",onDrain),reject(error2)};streams.output.once("drain",onDrain),streams.output.once("error",onError)})},[Symbol.asyncIterator](){return{next:()=>{let item=pending.shift();return item!==void 0?Promise.resolve({value:item,done:!1}):failure!==void 0?Promise.reject(failure):closed?Promise.resolve({value:void 0,done:!0}):new Promise((resolve5,reject)=>waiters.push({resolve:resolve5,reject}))}}}}}var theme_exports={};__export(theme_exports,{Theme:()=>Theme,detectTerminalBackgroundFromEnv:()=>detectTerminalBackgroundFromEnv,detectTerminalBackgroundTheme:()=>detectTerminalBackgroundTheme,detectTerminalThemeForAuto:()=>detectTerminalThemeForAuto,getAvailableThemes:()=>getAvailableThemes,getAvailableThemesWithPaths:()=>getAvailableThemesWithPaths,getDefaultTheme:()=>getDefaultTheme,getEditorTheme:()=>getEditorTheme,getLanguageFromPath:()=>getLanguageFromPath,getMarkdownTheme:()=>getMarkdownTheme,getResolvedThemeColors:()=>getResolvedThemeColors,getSelectListTheme:()=>getSelectListTheme,getSettingsListTheme:()=>getSettingsListTheme,getThemeByName:()=>getThemeByName,getThemeExportColors:()=>getThemeExportColors,getThemeForRgbColor:()=>getThemeForRgbColor,highlightCode:()=>highlightCode,initTheme:()=>initTheme,isLightTheme:()=>isLightTheme,loadThemeFromPath:()=>loadThemeFromPath,onThemeChange:()=>onThemeChange,parseAutoThemeSetting:()=>parseAutoThemeSetting,resolveThemeSetting:()=>resolveThemeSetting,setRegisteredThemes:()=>setRegisteredThemes,setTheme:()=>setTheme,setThemeInstance:()=>setThemeInstance,stopThemeWatcher:()=>stopThemeWatcher,theme:()=>theme});import*as fs4 from"node:fs";import*as path6 from"node:path";var wrapAnsi16=(offset=0)=>code=>`\x1B[${code+offset}m`,wrapAnsi256=(offset=0)=>code=>`\x1B[${38+offset};5;${code}m`,wrapAnsi16m=(offset=0)=>(red,green,blue)=>`\x1B[${38+offset};2;${red};${green};${blue}m`,styles={modifier:{reset:[0,0],bold:[1,22],dim:[2,22],italic:[3,23],underline:[4,24],overline:[53,55],inverse:[7,27],hidden:[8,28],strikethrough:[9,29]},color:{black:[30,39],red:[31,39],green:[32,39],yellow:[33,39],blue:[34,39],magenta:[35,39],cyan:[36,39],white:[37,39],blackBright:[90,39],gray:[90,39],grey:[90,39],redBright:[91,39],greenBright:[92,39],yellowBright:[93,39],blueBright:[94,39],magentaBright:[95,39],cyanBright:[96,39],whiteBright:[97,39]},bgColor:{bgBlack:[40,49],bgRed:[41,49],bgGreen:[42,49],bgYellow:[43,49],bgBlue:[44,49],bgMagenta:[45,49],bgCyan:[46,49],bgWhite:[47,49],bgBlackBright:[100,49],bgGray:[100,49],bgGrey:[100,49],bgRedBright:[101,49],bgGreenBright:[102,49],bgYellowBright:[103,49],bgBlueBright:[104,49],bgMagentaBright:[105,49],bgCyanBright:[106,49],bgWhiteBright:[107,49]}},modifierNames=Object.keys(styles.modifier),foregroundColorNames=Object.keys(styles.color),backgroundColorNames=Object.keys(styles.bgColor),colorNames=[...foregroundColorNames,...backgroundColorNames];function assembleStyles(){let codes=new Map;for(let[groupName,group]of Object.entries(styles)){for(let[styleName,style]of Object.entries(group))styles[styleName]={open:`\x1B[${style[0]}m`,close:`\x1B[${style[1]}m`},group[styleName]=styles[styleName],codes.set(style[0],style[1]);Object.defineProperty(styles,groupName,{value:group,enumerable:!1})}return Object.defineProperty(styles,"codes",{value:codes,enumerable:!1}),styles.color.close="\x1B[39m",styles.bgColor.close="\x1B[49m",styles.color.ansi=wrapAnsi16(),styles.color.ansi256=wrapAnsi256(),styles.color.ansi16m=wrapAnsi16m(),styles.bgColor.ansi=wrapAnsi16(10),styles.bgColor.ansi256=wrapAnsi256(10),styles.bgColor.ansi16m=wrapAnsi16m(10),Object.defineProperties(styles,{rgbToAnsi256:{value(red,green,blue){return red===green&&green===blue?red<8?16:red>248?231:Math.round((red-8)/247*24)+232:16+36*Math.round(red/255*5)+6*Math.round(green/255*5)+Math.round(blue/255*5)},enumerable:!1},hexToRgb:{value(hex){let matches=/[a-f\d]{6}|[a-f\d]{3}/i.exec(hex.toString(16));if(!matches)return[0,0,0];let[colorString]=matches;colorString.length===3&&(colorString=[...colorString].map(character=>character+character).join(""));let integer=Number.parseInt(colorString,16);return[integer>>16&255,integer>>8&255,integer&255]},enumerable:!1},hexToAnsi256:{value:hex=>styles.rgbToAnsi256(...styles.hexToRgb(hex)),enumerable:!1},ansi256ToAnsi:{value(code){if(code<8)return 30+code;if(code<16)return 90+(code-8);let red,green,blue;if(code>=232)red=((code-232)*10+8)/255,green=red,blue=red;else{code-=16;let remainder=code%36;red=Math.floor(code/36)/5,green=Math.floor(remainder/6)/5,blue=remainder%6/5}let value=Math.max(red,green,blue)*2;if(value===0)return 30;let result=30+(Math.round(blue)<<2|Math.round(green)<<1|Math.round(red));return value===2&&(result+=60),result},enumerable:!1},rgbToAnsi:{value:(red,green,blue)=>styles.ansi256ToAnsi(styles.rgbToAnsi256(red,green,blue)),enumerable:!1},hexToAnsi:{value:hex=>styles.ansi256ToAnsi(styles.hexToAnsi256(hex)),enumerable:!1}}),styles}var ansiStyles=assembleStyles(),ansi_styles_default=ansiStyles;import process2 from"node:process";import os2 from"node:os";import tty from"node:tty";function hasFlag(flag,argv=globalThis.Deno?globalThis.Deno.args:process2.argv){let prefix=flag.startsWith("-")?"":flag.length===1?"-":"--",position=argv.indexOf(prefix+flag),terminatorPosition=argv.indexOf("--");return position!==-1&&(terminatorPosition===-1||position<terminatorPosition)}var{env}=process2,flagForceColor;hasFlag("no-color")||hasFlag("no-colors")||hasFlag("color=false")||hasFlag("color=never")?flagForceColor=0:(hasFlag("color")||hasFlag("colors")||hasFlag("color=true")||hasFlag("color=always"))&&(flagForceColor=1);function envForceColor(){if("FORCE_COLOR"in env)return env.FORCE_COLOR==="true"?1:env.FORCE_COLOR==="false"?0:env.FORCE_COLOR.length===0?1:Math.min(Number.parseInt(env.FORCE_COLOR,10),3)}function translateLevel(level){return level===0?!1:{level,hasBasic:!0,has256:level>=2,has16m:level>=3}}function _supportsColor(haveStream,{streamIsTTY,sniffFlags=!0}={}){let noFlagForceColor=envForceColor();noFlagForceColor!==void 0&&(flagForceColor=noFlagForceColor);let forceColor=sniffFlags?flagForceColor:noFlagForceColor;if(forceColor===0)return 0;if(sniffFlags){if(hasFlag("color=16m")||hasFlag("color=full")||hasFlag("color=truecolor"))return 3;if(hasFlag("color=256"))return 2}if("TF_BUILD"in env&&"AGENT_NAME"in env)return 1;if(haveStream&&!streamIsTTY&&forceColor===void 0)return 0;let min=forceColor||0;if(env.TERM==="dumb")return min;if(process2.platform==="win32"){let osRelease=os2.release().split(".");return Number(osRelease[0])>=10&&Number(osRelease[2])>=10586?Number(osRelease[2])>=14931?3:2:1}if("CI"in env)return["GITHUB_ACTIONS","GITEA_ACTIONS","CIRCLECI"].some(key=>key in env)?3:["TRAVIS","APPVEYOR","GITLAB_CI","BUILDKITE","DRONE"].some(sign=>sign in env)||env.CI_NAME==="codeship"?1:min;if("TEAMCITY_VERSION"in env)return/^(9\.(0*[1-9]\d*)\.|\d{2,}\.)/.test(env.TEAMCITY_VERSION)?1:0;if(env.COLORTERM==="truecolor"||env.TERM==="xterm-kitty"||env.TERM==="xterm-ghostty"||env.TERM==="wezterm")return 3;if("TERM_PROGRAM"in env){let version=Number.parseInt((env.TERM_PROGRAM_VERSION||"").split(".")[0],10);switch(env.TERM_PROGRAM){case"iTerm.app":return version>=3?3:2;case"Apple_Terminal":return 2}}return/-256(color)?$/i.test(env.TERM)?2:/^screen|^xterm|^vt100|^vt220|^rxvt|color|ansi|cygwin|linux/i.test(env.TERM)||"COLORTERM"in env?1:min}function createSupportsColor(stream2,options={}){let level=_supportsColor(stream2,{streamIsTTY:stream2&&stream2.isTTY,...options});return translateLevel(level)}var supportsColor={stdout:createSupportsColor({isTTY:tty.isatty(1)}),stderr:createSupportsColor({isTTY:tty.isatty(2)})},supports_color_default=supportsColor;function stringReplaceAll(string,substring,replacer){let index3=string.indexOf(substring);if(index3===-1)return string;let substringLength=substring.length,endIndex=0,returnValue="";do returnValue+=string.slice(endIndex,index3)+substring+replacer,endIndex=index3+substringLength,index3=string.indexOf(substring,endIndex);while(index3!==-1);return returnValue+=string.slice(endIndex),returnValue}function stringEncaseCRLFWithFirstIndex(string,prefix,postfix,index3){let endIndex=0,returnValue="";do{let gotCR=string[index3-1]==="\r";returnValue+=string.slice(endIndex,gotCR?index3-1:index3)+prefix+(gotCR?`\r
|
|
420
420
|
`:`
|
|
421
421
|
`)+postfix,endIndex=index3+1,index3=string.indexOf(`
|
|
422
422
|
`,endIndex)}while(index3!==-1);return returnValue+=string.slice(endIndex),returnValue}var{stdout:stdoutColor,stderr:stderrColor}=supports_color_default,GENERATOR=Symbol("GENERATOR"),STYLER=Symbol("STYLER"),IS_EMPTY=Symbol("IS_EMPTY"),levelMapping=["ansi","ansi","ansi256","ansi16m"],styles2=Object.create(null),applyOptions=(object,options={})=>{if(options.level&&!(Number.isInteger(options.level)&&options.level>=0&&options.level<=3))throw new Error("The `level` option should be an integer from 0 to 3");let colorLevel=stdoutColor?stdoutColor.level:0;object.level=options.level===void 0?colorLevel:options.level};var chalkFactory=options=>{let chalk2=(...strings)=>strings.join(" ");return applyOptions(chalk2,options),Object.setPrototypeOf(chalk2,createChalk.prototype),chalk2};function createChalk(options){return chalkFactory(options)}Object.setPrototypeOf(createChalk.prototype,Function.prototype);for(let[styleName,style]of Object.entries(ansi_styles_default))styles2[styleName]={get(){let builder=createBuilder(this,createStyler(style.open,style.close,this[STYLER]),this[IS_EMPTY]);return Object.defineProperty(this,styleName,{value:builder}),builder}};styles2.visible={get(){let builder=createBuilder(this,this[STYLER],!0);return Object.defineProperty(this,"visible",{value:builder}),builder}};var getModelAnsi=(model,level,type,...arguments_)=>model==="rgb"?level==="ansi16m"?ansi_styles_default[type].ansi16m(...arguments_):level==="ansi256"?ansi_styles_default[type].ansi256(ansi_styles_default.rgbToAnsi256(...arguments_)):ansi_styles_default[type].ansi(ansi_styles_default.rgbToAnsi(...arguments_)):model==="hex"?getModelAnsi("rgb",level,type,...ansi_styles_default.hexToRgb(...arguments_)):ansi_styles_default[type][model](...arguments_),usedModels=["rgb","hex","ansi256"];for(let model of usedModels){styles2[model]={get(){let{level}=this;return function(...arguments_){let styler=createStyler(getModelAnsi(model,levelMapping[level],"color",...arguments_),ansi_styles_default.color.close,this[STYLER]);return createBuilder(this,styler,this[IS_EMPTY])}}};let bgModel="bg"+model[0].toUpperCase()+model.slice(1);styles2[bgModel]={get(){let{level}=this;return function(...arguments_){let styler=createStyler(getModelAnsi(model,levelMapping[level],"bgColor",...arguments_),ansi_styles_default.bgColor.close,this[STYLER]);return createBuilder(this,styler,this[IS_EMPTY])}}}}var proto=Object.defineProperties(()=>{},{...styles2,level:{enumerable:!0,get(){return this[GENERATOR].level},set(level){this[GENERATOR].level=level}}}),createStyler=(open2,close,parent)=>{let openAll,closeAll;return parent===void 0?(openAll=open2,closeAll=close):(openAll=parent.openAll+open2,closeAll=close+parent.closeAll),{open:open2,close,openAll,closeAll,parent}},createBuilder=(self,_styler,_isEmpty)=>{let builder=(...arguments_)=>applyStyle(builder,arguments_.length===1?""+arguments_[0]:arguments_.join(" "));return Object.setPrototypeOf(builder,proto),builder[GENERATOR]=self,builder[STYLER]=_styler,builder[IS_EMPTY]=_isEmpty,builder},applyStyle=(self,string)=>{if(self.level<=0||!string)return self[IS_EMPTY]?"":string;let styler=self[STYLER];if(styler===void 0)return string;let{openAll,closeAll}=styler;if(string.includes("\x1B"))for(;styler!==void 0;)string=stringReplaceAll(string,styler.close,styler.open),styler=styler.parent;let lfIndex=string.indexOf(`
|
|
@@ -462,7 +462,7 @@ Command exited with code ${msg.exitCode}`),msg.truncated&&msg.fullOutputPath&&(t
|
|
|
462
462
|
`,lineStart);for(;newlineIndex!==-1;){lineChunks.push(chunk.slice(lineStart,newlineIndex));let header=parseSessionHeaderCandidate(lineChunks.join(""));if(header!==void 0)return header;lineChunks.length=0,lineStart=newlineIndex+1,newlineIndex=chunk.indexOf(`
|
|
463
463
|
`,lineStart)}lineChunks.push(chunk.slice(lineStart))}let probe=Buffer.allocUnsafe(1);if(readSync2(fd,probe,0,probe.length,null)===0)return lineChunks.push(decoder.end()),parseSessionHeaderCandidate(lineChunks.join(""))??null;throw new SessionHeaderScanLimitError(path7)}finally{closeSync2(fd)}}rewrite(path7,entries){let fd=openSync2(path7,"w");try{for(let entry of entries)writeFileSync3(fd,serializeEntryLine(entry))}finally{closeSync2(fd)}}createExclusive(path7,entries){let fd=openSync2(path7,"wx");try{for(let entry of entries)writeFileSync3(fd,serializeEntryLine(entry))}finally{closeSync2(fd)}}append(path7,entry){appendFileSync4(path7,serializeEntryLine(entry))}truncate(path7,size){truncateSync(path7,size)}remove(path7){unlinkSync(path7)}listSessionFiles(dir){let resolvedDir=normalizePath(dir);return readdirSync6(resolvedDir).filter(f=>f.endsWith(".jsonl")).map(f=>join16(resolvedDir,f))}modifiedTime(path7){return statSync6(path7).mtime}guard={ensureWritable:(sessionFile,writerId)=>{let guardPath=`${sessionFile}${GUARD_FILE_SUFFIX}`,current=(()=>{try{let value=JSON.parse(readFileSync4(guardPath,"utf8"));if(typeof value!="object"||value===null||Array.isArray(value))return;let record=value;return typeof record.writerId!="string"||record.writerId.length===0||typeof record.hostId!="string"||record.hostId.length===0||typeof record.pid!="number"||!Number.isInteger(record.pid)?void 0:{writerId:record.writerId,hostId:record.hostId,pid:record.pid}}catch{return}})();if(current!==void 0&¤t.writerId===writerId)return;if(current!==void 0&¤t.hostId===this.hostId&¤t.pid!==this.ownPid&&this.pidAlive(current.pid))throw new Error(t("Session file is owned by another live process (pid {pid}): {sessionFile}. Close that process first; concurrent writers would silently fork the session history.",{pid:current.pid,sessionFile}));let token=acquireGuardLock(`${guardPath}.lock`,GUARD_LOCK_TIMEOUT_MS,GUARD_STALE_LOCK_MS);try{let fd=openSync2(guardPath,"w");try{writeAllSync(fd,JSON.stringify({writerId,hostId:this.hostId,pid:this.ownPid}))}finally{closeSync2(fd)}}finally{releaseGuardLock(`${guardPath}.lock`,token)}}}};import{randomUUID as randomUUID4}from"crypto";import{createReadStream,existsSync as existsSync6,mkdirSync as mkdirSync7}from"fs";import{readdir as readdir2,stat as stat2}from"fs/promises";import{basename as basename4,join as join19,resolve as resolve3}from"path";import{createInterface}from"readline";import{isDeepStrictEqual}from"util";import{mkdirSync as mkdirSync5}from"node:fs";import{join as join17}from"node:path";var AGENT_SESSIONS_DIR_NAME="_agents";function agentSessionsDir2(agentDir){let dir=join17(agentDir,"sessions",AGENT_SESSIONS_DIR_NAME);return mkdirSync5(dir,{recursive:!0}),dir}import{randomUUID as randomUUID3}from"node:crypto";import{mkdirSync as mkdirSync6,readFileSync as readFileSync5,renameSync as renameSync3,statSync as statSync7,unlinkSync as unlinkSync2,writeFileSync as writeFileSync4}from"node:fs";import{readdir,stat}from"node:fs/promises";import{basename as basename3,dirname as dirname7,isAbsolute as isAbsolute3,join as join18,relative as relative2}from"node:path";var SESSION_INDEX_VERSION=1,SESSION_INDEX_FILE_NAME="session-index.json",FLUSH_THROTTLE_MS=1e4;function getSessionIndexPath(){return join18(getAgentDir(),SESSION_INDEX_FILE_NAME)}var pendingFlush,flushTimer,exitHookRegistered=!1;function clearPending(){pendingFlush=void 0,flushTimer!==void 0&&(clearTimeout(flushTimer),flushTimer=void 0)}function ensureExitFlushHook(){exitHookRegistered||(exitHookRegistered=!0,process.once("exit",()=>{flushSessionIndexNow()}))}function armDirty(indexPath,state2){pendingFlush={indexPath,state:state2},ensureExitFlushHook(),flushTimer===void 0&&(flushTimer=setTimeout(()=>{flushTimer=void 0,flushSessionIndexNow()},FLUSH_THROTTLE_MS),flushTimer.unref())}function flushSessionIndexNow(){let pending=pendingFlush;if(pending){clearPending();try{writeStateSync(pending.indexPath,pending.state)}catch{}}}function emptyState(){return{version:SESSION_INDEX_VERSION,updated_at_ms:0,projects:[],sessions:[]}}function safeMs(value){return Number.isFinite(value)?value:0}function isSessionFileName(file){return file.endsWith(".jsonl")&&!file.endsWith(".trace.jsonl")}function isFiniteNumber(value){return typeof value=="number"&&Number.isFinite(value)}function coerceSessionEntry(value){if(typeof value!="object"||value===null)return null;let raw=value;return typeof raw.file!="string"||typeof raw.dir!="string"||typeof raw.id!="string"||typeof raw.cwd!="string"||!isFiniteNumber(raw.created_ms)||!isFiniteNumber(raw.modified_ms)||!isFiniteNumber(raw.message_count)||typeof raw.first_message!="string"?null:{file:raw.file,dir:raw.dir,id:raw.id,cwd:raw.cwd,...isFiniteNumber(raw.file_mtime_ms)?{file_mtime_ms:raw.file_mtime_ms}:{},...typeof raw.name=="string"?{name:raw.name}:{},...typeof raw.parent_session_path=="string"?{parent_session_path:raw.parent_session_path}:{},...typeof raw.profile_id=="string"?{profile_id:raw.profile_id}:{},...typeof raw.profile_version=="string"?{profile_version:raw.profile_version}:{},created_ms:raw.created_ms,modified_ms:raw.modified_ms,message_count:raw.message_count,first_message:raw.first_message}}function coerceProjectEntry(value){if(typeof value!="object"||value===null)return null;let raw=value;return typeof raw.dir!="string"||typeof raw.cwd!="string"?null:{dir:raw.dir,cwd:raw.cwd}}function readIndexFile(indexPath){let content;try{content=readFileSync5(indexPath,"utf8")}catch{return null}try{let parsed=JSON.parse(content);if(parsed.version!==SESSION_INDEX_VERSION||!Array.isArray(parsed.projects)||!Array.isArray(parsed.sessions))return null;let projects=parsed.projects.map(coerceProjectEntry).filter(entry=>entry!==null),sessions=parsed.sessions.map(coerceSessionEntry).filter(entry=>entry!==null);return{version:SESSION_INDEX_VERSION,updated_at_ms:0,projects,sessions}}catch{return null}}function writeStateSync(indexPath,state2){let parent=dirname7(indexPath);mkdirSync6(parent,{recursive:!0});let temporaryPath=join18(parent,`.${basename3(indexPath)}.${randomUUID3()}.tmp`);try{state2.updated_at_ms=Date.now(),writeFileSync4(temporaryPath,`${JSON.stringify(state2)}
|
|
464
464
|
`,"utf8"),renameSync3(temporaryPath,indexPath)}finally{try{unlinkSync2(temporaryPath)}catch{}}}function loadMutableState(indexPath){return pendingFlush?.indexPath===indexPath?pendingFlush.state:readIndexFile(indexPath)??emptyState()}function locationInRoot(sessionsRoot,sessionPath){let rel=relative2(sessionsRoot,sessionPath);if(rel===""||rel.startsWith("..")||isAbsolute3(rel))return null;let dir=dirname7(rel);if(dir==="."||dir==="..")return null;let file=basename3(rel);return isSessionFileName(file)?{dir,file}:null}function findSessionEntry(state2,dir,file){return state2.sessions.find(entry=>entry.dir===dir&&entry.file===file)}function touchProject(state2,dir,cwd){state2.projects.some(project=>project.dir===dir)||state2.projects.push({dir,cwd})}function addSessionFromInfo(state2,dir,file,info,mtimeMs){state2.sessions=state2.sessions.filter(entry=>!(entry.dir===dir&&entry.file===file)),state2.sessions.push({file,dir,id:info.id,cwd:info.cwd,...info.name===void 0?{}:{name:info.name},...info.parentSessionPath===void 0?{}:{parent_session_path:info.parentSessionPath},...info.profileId===void 0?{}:{profile_id:info.profileId},...info.profileVersion===void 0?{}:{profile_version:info.profileVersion},...mtimeMs===void 0?{}:{file_mtime_ms:mtimeMs},created_ms:safeMs(info.created.getTime()),modified_ms:safeMs(info.modified.getTime()),message_count:info.messageCount,first_message:info.firstMessage}),touchProject(state2,dir,info.cwd)}function recordSessionUpdate(input){try{let sessionsRoot=getSessionsDir(),location=locationInRoot(sessionsRoot,input.sessionPath);if(!location)return;let mtimeMs;try{mtimeMs=statSync7(input.sessionPath).mtimeMs}catch{mtimeMs=void 0}let indexPath=getSessionIndexPath(),state2=loadMutableState(indexPath);state2.sessions=state2.sessions.filter(entry=>!(entry.dir===location.dir&&entry.file===location.file));let modifiedMs=safeMs(input.modifiedMs);state2.sessions.push({file:location.file,dir:location.dir,id:input.sessionId,cwd:input.cwd,...input.name===void 0?{}:{name:input.name},...input.parentSessionPath===void 0?{}:{parent_session_path:input.parentSessionPath},...input.profileId===void 0?{}:{profile_id:input.profileId},...input.profileVersion===void 0?{}:{profile_version:input.profileVersion},...mtimeMs===void 0?{}:{file_mtime_ms:mtimeMs},created_ms:safeMs(input.createdMs),modified_ms:modifiedMs,message_count:input.messageCount,first_message:input.firstMessage}),touchProject(state2,location.dir,input.cwd),input.immediate?(clearPending(),writeStateSync(indexPath,state2)):armDirty(indexPath,state2)}catch{}}function removeSessionFromIndex(sessionPath){try{let location=locationInRoot(getSessionsDir(),sessionPath);if(!location)return;let indexPath=getSessionIndexPath(),state2=loadMutableState(indexPath),before=state2.sessions.length;if(state2.sessions=state2.sessions.filter(entry=>!(entry.dir===location.dir&&entry.file===location.file)),state2.sessions.length===before)return;clearPending(),writeStateSync(indexPath,state2)}catch{}}function sessionInfoFromEntry(sessionsRoot,entry){return{path:join18(sessionsRoot,entry.dir,entry.file),id:entry.id,cwd:entry.cwd,...entry.name===void 0?{}:{name:entry.name},...entry.parent_session_path===void 0?{}:{parentSessionPath:entry.parent_session_path},...entry.profile_id===void 0?{}:{profileId:entry.profile_id},...entry.profile_version===void 0?{}:{profileVersion:entry.profile_version},created:new Date(entry.created_ms),modified:new Date(entry.modified_ms),messageCount:entry.message_count,firstMessage:entry.first_message,allMessagesText:""}}function sortedSessions(sessionsRoot,state2){return[...state2.sessions].sort((a,b2)=>b2.modified_ms-a.modified_ms||b2.file.localeCompare(a.file)).map(entry=>sessionInfoFromEntry(sessionsRoot,entry))}async function stateFromSessions(sessionsRoot,sessions){let state2=emptyState();for(let info of sessions){let location=locationInRoot(sessionsRoot,info.path);if(!location)continue;let mtimeMs;try{mtimeMs=(await stat(info.path)).mtimeMs}catch{mtimeMs=void 0}addSessionFromInfo(state2,location.dir,location.file,info,mtimeMs)}return state2}async function reconcileIndex(sessionsRoot,state2,buildInfo,signal){let diskDirs=new Map,rootEntries;try{rootEntries=await readdir(sessionsRoot,{withFileTypes:!0})}catch{rootEntries=[]}for(let entry of rootEntries){if(entry.name===AGENT_SESSIONS_DIR_NAME||!entry.isDirectory()&&!entry.isSymbolicLink())continue;let fileNames;try{fileNames=await readdir(join18(sessionsRoot,entry.name))}catch{fileNames=[]}let files=new Map;for(let file of fileNames)if(isSessionFileName(file)){signal?.throwIfAborted();try{files.set(file,(await stat(join18(sessionsRoot,entry.name,file))).mtimeMs)}catch{}}diskDirs.set(entry.name,files)}let changed=!1;for(let[dir,files]of diskDirs)for(let[file,mtimeMs]of files){let existing=findSessionEntry(state2,dir,file);if(existing&&existing.file_mtime_ms!==void 0&&existing.file_mtime_ms===mtimeMs)continue;signal?.throwIfAborted();let info=await buildInfo(join18(sessionsRoot,dir,file));if(!info){existing&&(state2.sessions=state2.sessions.filter(candidate=>candidate!==existing),changed=!0);continue}addSessionFromInfo(state2,dir,file,info,mtimeMs),changed=!0}let keptSessions=state2.sessions.filter(entry=>diskDirs.get(entry.dir)?.has(entry.file));keptSessions.length!==state2.sessions.length&&(state2.sessions=keptSessions,changed=!0);let keptProjects=state2.projects.filter(project=>diskDirs.has(project.dir));return keptProjects.length!==state2.projects.length&&(state2.projects=keptProjects,changed=!0),changed}async function listSessionsViaIndex(input){let{sessionsRoot,buildInfo,scanAll,onHit,signal}=input;try{signal?.throwIfAborted();let indexPath=getSessionIndexPath(),state2;if(pendingFlush?.indexPath===indexPath)state2=pendingFlush.state;else{let fromDisk=readIndexFile(indexPath);if(fromDisk===null){let sessions2=await scanAll();return writeStateSync(indexPath,await stateFromSessions(sessionsRoot,sessions2)),sessions2}state2=fromDisk}await reconcileIndex(sessionsRoot,state2,buildInfo,signal)&&(pendingFlush?.indexPath===indexPath&&clearPending(),writeStateSync(indexPath,state2));let sessions=sortedSessions(sessionsRoot,state2);return onHit?.(sessions),sessions}catch{signal?.throwIfAborted();return}}var CURRENT_SESSION_VERSION=3;function sameSessionRevision(left,right){return left.version===1&&right.version===1&&left.sessionId===right.sessionId&&left.sequence===right.sequence&&left.leafId===right.leafId}function assertJsonSerializable(value,field,seen=new WeakSet,path7=field){if(!(value===null||typeof value=="string"||typeof value=="boolean")){if(typeof value=="number"){if(Number.isFinite(value))return;throw new Error(t("{field} must be JSON-serializable: non-finite number at {path}",{field,path:path7}))}if(typeof value>"u"||typeof value=="function"||typeof value=="symbol"||typeof value=="bigint")throw new Error(t("{field} must be JSON-serializable: unsupported value at {path}",{field,path:path7}));if(typeof value!="object")throw new Error(t("{field} must be JSON-serializable: unsupported value at {path}",{field,path:path7}));if(seen.has(value))throw new Error(t("{field} must be JSON-serializable: cyclic value at {path}",{field,path:path7}));if(!Array.isArray(value)){let prototype=Object.getPrototypeOf(value);if(prototype!==Object.prototype&&prototype!==null)throw new Error(t("{field} must be JSON-serializable: non-plain object at {path}",{field,path:path7}));if(Object.getOwnPropertySymbols(value).length>0)throw new Error(t("{field} must be JSON-serializable: symbol key at {path}",{field,path:path7}))}seen.add(value);try{if(Array.isArray(value)){for(let index3=0;index3<value.length;index3++)assertJsonSerializable(value[index3],field,seen,`${path7}[${index3}]`);return}for(let key of Object.keys(value)){let descriptor=Object.getOwnPropertyDescriptor(value,key);if(!descriptor||!("value"in descriptor))throw new Error(t("{field} must be JSON-serializable: accessor at {path}",{field,path:`${path7}.${key}`}));assertJsonSerializable(descriptor.value,field,seen,`${path7}.${key}`)}}finally{seen.delete(value)}}}function createSessionId(){return uuidv7()}function assertValidSessionId(id){if(!/^[A-Za-z0-9](?:[A-Za-z0-9._-]*[A-Za-z0-9])?$/.test(id))throw new Error(t("Session id must be non-empty, contain only alphanumeric characters, '-', '_', and '.', and start and end with an alphanumeric character"))}function generateId(byId){for(let i=0;i<100;i++){let id=randomUUID4().slice(0,8);if(!byId.has(id))return id}return randomUUID4()}function migrateV1ToV2(entries){let ids=new Set,prevId=null;for(let entry of entries){if(entry.type==="session"){entry.version=2;continue}if(entry.id=generateId(ids),entry.parentId=prevId,prevId=entry.id,entry.type==="compaction"){let comp=entry;if(typeof comp.firstKeptEntryIndex=="number"){let targetEntry=entries[comp.firstKeptEntryIndex];targetEntry&&targetEntry.type!=="session"&&(comp.firstKeptEntryId=targetEntry.id),delete comp.firstKeptEntryIndex}}}}function migrateV2ToV3(entries){for(let entry of entries){if(entry.type==="session"){entry.version=3;continue}if(entry.type==="message"){let msgEntry=entry;msgEntry.message&&msgEntry.message.role==="hookMessage"&&(msgEntry.message.role="custom")}}}function migrateToCurrentVersion(entries){let version=entries.find(e=>e.type==="session")?.version??1;return version>=CURRENT_SESSION_VERSION?!1:(version<2&&migrateV1ToV2(entries),version<3&&migrateV2ToV3(entries),!0)}function migrateSessionEntries(entries){migrateToCurrentVersion(entries)}function parseSessionEntries(content){let entries=[],lines=content.trim().split(`
|
|
465
|
-
`);for(let line of lines)if(line.trim())try{let entry=JSON.parse(line);entries.push(entry)}catch{}return entries}function getLatestCompactionEntry(entries){for(let i=entries.length-1;i>=0;i--)if(entries[i].type==="compaction")return entries[i];return null}function buildEntryIndex(entries,byId){if(byId)return byId;let index3=new Map;for(let entry of entries)index3.set(entry.id,entry);return index3}function buildSessionPath(entries,leafId,byId){let index3=buildEntryIndex(entries,byId),leaf;if(leafId===null)return[];if(leafId&&(leaf=index3.get(leafId)),leaf??=entries[entries.length-1],!leaf)return[];let path7=[],current=leaf;for(;current;)path7.push(current),current=current.parentId?index3.get(current.parentId):void 0;return path7.reverse(),path7}function getSessionContextSettings(path7){let thinkingLevel="off",explicitModel=null,derivedModel=null;for(let entry of path7)entry.type==="thinking_level_change"?thinkingLevel=entry.thinkingLevel:entry.type==="model_change"?explicitModel={provider:entry.provider,modelId:entry.modelId}:entry.type==="message"&&entry.message.role==="assistant"&&(derivedModel={provider:entry.message.provider,modelId:entry.message.model});return{thinkingLevel,model:explicitModel??derivedModel}}function isContextMessage(message){return message.role!=="assistant"||message.stopReason!=="error"&&message.stopReason!=="aborted"&&message.stopReason!=="deferred"}function backfillDanglingToolResults(messages){let answeredToolCallIds=new Set;for(let message of messages)message.role==="toolResult"&&answeredToolCallIds.add(message.toolCallId);let repaired=[],changed=!1;for(let message of messages)if(repaired.push(message),message.role==="assistant"){let danglingCalls=message.content.filter(block=>block.type==="toolCall"&&!answeredToolCallIds.has(block.id));if(danglingCalls.length>0){for(let call of danglingCalls)answeredToolCallIds.add(call.id),repaired.push(createInterruptedToolResultMessage(call,message.timestamp));changed=!0}}return changed?repaired:messages}function sessionEntryToContextMessages(entry){if(entry.type==="message"){let message=entry.message;return(message.role==="user"||message.role==="assistant"||message.role==="toolResult")&&message.content==null?[{...message,content:[]}]:[message]}return entry.type==="custom_message"?[createCustomMessage(entry.customType,entry.content??[],entry.display,entry.details,entry.timestamp)]:entry.type==="branch_summary"&&entry.summary?[createBranchSummaryMessage(entry.summary,entry.fromId,entry.timestamp)]:entry.type==="compaction"?[createCompactionSummaryMessage(entry.summary,entry.tokensBefore,entry.timestamp)]:[]}function buildContextEntries(entries,leafId,byId){let path7=buildSessionPath(entries,leafId,byId),compaction=null;for(let entry of path7)entry.type==="compaction"&&(compaction=entry);if(!compaction)return path7;let compactionIdx=path7.findIndex(entry=>entry.id===compaction.id);if(compactionIdx<0)return path7;let contextEntries=[compaction],foundFirstKept=!1;for(let i=0;i<compactionIdx;i++){let entry=path7[i];entry.id===compaction.firstKeptEntryId&&(foundFirstKept=!0),foundFirstKept&&contextEntries.push(entry)}return contextEntries.push(...path7.slice(compactionIdx+1)),contextEntries}function buildSessionContext(entries,leafId,byId,entryProjections){let path7=buildSessionPath(entries,leafId,byId),{thinkingLevel,model}=getSessionContextSettings(path7),contextEntries=buildContextEntries(entries,leafId,byId),projected=entryProjections===void 0?contextEntries:applyEntryProjections(contextEntries,entryProjections);return{messages:backfillDanglingToolResults(projected.flatMap(sessionEntryToContextMessages).filter(isContextMessage)),thinkingLevel,model}}function applyEntryProjections(entries,projections){let projected=entries;for(let projection of projections)projected=projection.project(projected);return projected}function getDefaultSessionDirPath(cwd,agentDir=getAgentDir()){let resolvedCwd=resolvePath(cwd),resolvedAgentDir=resolvePath(agentDir),safePath=`--${resolvedCwd.replace(/^[/\\]/,"").replace(/[/\\:]/g,"-")}--`;return join19(resolvedAgentDir,"sessions",safePath)}function getDefaultSessionDir(cwd,agentDir=getAgentDir()){let sessionDir=getDefaultSessionDirPath(cwd,agentDir);return existsSync6(sessionDir)||mkdirSync7(sessionDir,{recursive:!0}),sessionDir}function getTraceFilePathForSession(sessionFilePath){return sessionFilePath.endsWith(".trace.jsonl")?sessionFilePath:sessionFilePath.endsWith(".jsonl")?`${sessionFilePath.slice(0,-6)}.trace.jsonl`:`${sessionFilePath}.trace.jsonl`}function parseSessionEntryLine2(line){if(!line.trim())return null;try{return JSON.parse(line)}catch{return null}}function readSessionHeaderForDiscovery(storage,filePath){try{return storage.readHeader(filePath)}catch{return null}}function getSessionHeaderCwd(header){let cwd=header.cwd;return typeof cwd=="string"?cwd:void 0}function sessionCwdMatches(cwd,resolvedCwd){return cwd!==void 0&&cwd!==""&&resolvePath(cwd)===resolvedCwd}function findMostRecentSessionWithStorage(storage,sessionDir,cwd){let resolvedCwd=cwd?resolvePath(cwd):void 0;try{let files=storage.listSessionFiles(sessionDir).map(path7=>({path:path7,mtime:storage.modifiedTime(path7).getTime()})).sort((a,b2)=>b2.mtime-a.mtime);for(let{path:path7}of files){let header=readSessionHeaderForDiscovery(storage,path7);if(header&&(!resolvedCwd||sessionCwdMatches(getSessionHeaderCwd(header),resolvedCwd)))return path7}return null}catch{return null}}function findMostRecentSession(sessionDir,cwd){return findMostRecentSessionWithStorage(FileSessionStorageProvider.instance,sessionDir,cwd)}function isMessageWithContent(message){return typeof message.role=="string"&&"content"in message}function extractTextContent(message){let content=message.content;return typeof content=="string"?content:content.filter(block=>block.type==="text").map(block=>block.text).join(" ")}function getMessageActivityTime(entry){let message=entry.message;if(!isMessageWithContent(message)||message.role!=="user"&&message.role!=="assistant")return;let msgTimestamp=message.timestamp;if(typeof msgTimestamp=="number")return msgTimestamp;let t2=new Date(entry.timestamp).getTime();return Number.isNaN(t2)?void 0:t2}async function buildSessionInfo(filePath,signal,fileStats){try{let stats=fileStats??await stat2(filePath),header=null,messageCount=0,firstMessage="",allMessages=[],name,lastActivityTime,rl=createInterface({input:createReadStream(filePath,{encoding:"utf8",signal}),crlfDelay:1/0});for await(let line of rl){let entry=parseSessionEntryLine2(line);if(!entry)continue;if(!header){if(entry.type!=="session")return null;header=entry;continue}if(entry.type==="session_info"&&(name=entry.name?.trim()||void 0),entry.type!=="message")continue;messageCount++;let activityTime=getMessageActivityTime(entry);typeof activityTime=="number"&&(lastActivityTime=Math.max(lastActivityTime??0,activityTime));let message=entry.message;if(!isMessageWithContent(message)||message.role!=="user"&&message.role!=="assistant")continue;let textContent=extractTextContent(message);textContent&&(allMessages.push(textContent),!firstMessage&&message.role==="user"&&(firstMessage=textContent))}if(!header)return null;let cwd=typeof header.cwd=="string"?header.cwd:"",parentSessionPath=header.parentSession,profileId=typeof header.profileId=="string"?header.profileId:void 0,profileVersion=typeof header.profileVersion=="string"?header.profileVersion:void 0,headerTime=typeof header.timestamp=="string"?new Date(header.timestamp).getTime():NaN,modified=typeof lastActivityTime=="number"&&lastActivityTime>0?new Date(lastActivityTime):Number.isNaN(headerTime)?stats.mtime:new Date(headerTime);return{path:filePath,id:header.id,cwd,name,parentSessionPath,profileId,profileVersion,created:new Date(header.timestamp),modified,messageCount,firstMessage:firstMessage||"(no messages)",allMessagesText:allMessages.join(" ")}}catch{return signal?.throwIfAborted(),null}}function deriveSessionIndexFields(entries){let header=entries.find(e=>e.type==="session");if(!header)return null;let name,messageCount=0,firstMessage="",lastActivityTime;for(let entry of entries){if(entry.type==="session")continue;if(entry.type==="session_info"){name=entry.name?.trim()||void 0;continue}if(entry.type!=="message")continue;messageCount++;let activityTime=getMessageActivityTime(entry);typeof activityTime=="number"&&(lastActivityTime=Math.max(lastActivityTime??0,activityTime));let message=entry.message;if(!isMessageWithContent(message)||message.role!=="user"&&message.role!=="assistant")continue;let textContent=extractTextContent(message);textContent&&!firstMessage&&message.role==="user"&&(firstMessage=textContent)}let headerTime=typeof header.timestamp=="string"?new Date(header.timestamp).getTime():NaN;return{sessionId:header.id,cwd:typeof header.cwd=="string"?header.cwd:"",name,parentSessionPath:header.parentSession,profileId:typeof header.profileId=="string"?header.profileId:void 0,profileVersion:typeof header.profileVersion=="string"?header.profileVersion:void 0,createdMs:headerTime,modifiedMs:typeof lastActivityTime=="number"&&lastActivityTime>0?lastActivityTime:Number.isNaN(headerTime)?Date.now():headerTime,messageCount,firstMessage:firstMessage||"(no messages)"}}var MAX_CONCURRENT_SESSION_INFO_LOADS=10,MAX_CONCURRENT_SESSION_DISCOVERY_LOADS=64,CURRENT_SESSION_LIST_PUBLISH_INTERVAL=10,ALL_SESSION_LIST_PUBLISH_INTERVAL=100;async function mapWithConcurrency(items,limit,map,signal){let results=new Array(items.length),nextIndex=0,worker=async()=>{for(;nextIndex<items.length;){signal?.throwIfAborted();let index3=nextIndex++;results[index3]=await map(items[index3],index3)}};return await Promise.all(Array.from({length:Math.min(limit,items.length)},()=>worker())),results}function sortSessionInfos(sessions){return sessions.sort((a,b2)=>b2.modified.getTime()-a.modified.getTime())}function buildSessionInfosWithConcurrency(files,onLoaded,signal){return mapWithConcurrency(files,MAX_CONCURRENT_SESSION_INFO_LOADS,async(file,index3)=>{let info=await buildSessionInfo(file.path,signal,file.stats);return onLoaded(info,index3),info},signal)}async function listSessionsFromDir(dir,onProgress,signal){if(signal?.throwIfAborted(),!existsSync6(dir))return[];try{let files=(await readdir2(dir)).filter(file=>file.endsWith(".jsonl")).sort((a,b2)=>b2.localeCompare(a)).map(file=>({path:join19(dir,file)})),total=files.length,partialSessions=[],loaded=0;return(await buildSessionInfosWithConcurrency(files,info=>{loaded++,info&&partialSessions.push(info);let publishPartial=loaded===1||loaded%CURRENT_SESSION_LIST_PUBLISH_INTERVAL===0||loaded===total;onProgress?.(loaded,total,publishPartial?sortSessionInfos([...partialSessions]):void 0)},signal)).filter(info=>info!==null)}catch{return signal?.throwIfAborted(),[]}}async function scanAllSessionsFromRoot(sessionsDir,onProgress,signal){try{if(!existsSync6(sessionsDir))return[];let dirs=(await readdir2(sessionsDir,{withFileTypes:!0})).filter(entry=>(entry.isDirectory()||entry.isSymbolicLink())&&entry.name!==AGENT_SESSIONS_DIR_NAME).map(entry=>join19(sessionsDir,entry.name)),allFiles=(await mapWithConcurrency(dirs,MAX_CONCURRENT_SESSION_DISCOVERY_LOADS,async dir=>{try{return(await readdir2(dir)).filter(file=>file.endsWith(".jsonl")).map(file=>join19(dir,file))}catch{return[]}},signal)).flat(),candidates=await mapWithConcurrency(allFiles,MAX_CONCURRENT_SESSION_DISCOVERY_LOADS,async path7=>{try{return{path:path7,stats:await stat2(path7)}}catch{return{path:path7}}},signal);candidates.sort((a,b2)=>(b2.stats?.mtimeMs??Number.NEGATIVE_INFINITY)-(a.stats?.mtimeMs??Number.NEGATIVE_INFINITY)||basename4(b2.path).localeCompare(basename4(a.path)));let totalFiles=candidates.length,loaded=0,firstCandidateLoaded=!1,partialSessions=[],results=await buildSessionInfosWithConcurrency(candidates,(info,index3)=>{loaded++,index3===0&&(firstCandidateLoaded=!0),info&&partialSessions.push(info);let publishPartial=firstCandidateLoaded&&(index3===0||loaded%ALL_SESSION_LIST_PUBLISH_INTERVAL===0||loaded===totalFiles);onProgress?.(loaded,totalFiles,publishPartial?sortSessionInfos([...partialSessions]):void 0)},signal);return sortSessionInfos(results.filter(info=>info!==null))}catch{return signal?.throwIfAborted(),[]}}var SessionManager=class _SessionManager{sessionId="";sessionFile;sessionDir;cwd;persist;flushed=!1;entryProjections=[];fileEntries=[];byId=new Map;labelsById=new Map;labelTimestampsById=new Map;compactionOperations=new Map;leafId=null;storage;storageWriterId;constructor(cwd,sessionDir,sessionFile,persist,newSessionOptions,preloadedFileEntries,storage=FileSessionStorageProvider.instance){this.cwd=resolvePath(cwd),this.sessionDir=normalizePath(sessionDir),this.persist=persist,this.storage=storage,persist&&this.sessionDir&&this.storage.ensureDir(this.sessionDir),sessionFile?this._setSessionFile(sessionFile,preloadedFileEntries):this.newSession(newSessionOptions)}setSessionFile(sessionFile){this._setSessionFile(sessionFile)}_setSessionFile(sessionFile,preloadedFileEntries){if(this.sessionFile=resolvePath(sessionFile),this.storage.exists(this.sessionFile)){if(this.fileEntries=preloadedFileEntries??this.storage.loadEntries(this.sessionFile),this.fileEntries.length===0){let explicitPath=this.sessionFile;if(this.storage.size(explicitPath)>0)throw new Error(t("Session file is not a valid {appName} session: {path}",{appName:APP_NAME,path:explicitPath}));this.newSession(),this.sessionFile=explicitPath,this._rewriteFile(),this.flushed=!0;return}let header=this.fileEntries.find(e=>e.type==="session");this.sessionId=header?.id??createSessionId(),migrateToCurrentVersion(this.fileEntries)&&this._rewriteFile(),this._buildIndex(),this.flushed=!0}else{let explicitPath=this.sessionFile;this.newSession(),this.sessionFile=explicitPath}}newSession(options){options?.id!==void 0&&assertValidSessionId(options.id),this.sessionId=options?.id??createSessionId();let timestamp=new Date().toISOString(),header={type:"session",version:CURRENT_SESSION_VERSION,id:this.sessionId,timestamp,cwd:this.cwd,parentSession:options?.parentSession,...options?.profileId===void 0?{}:{profileId:options.profileId},...options?.profileVersion===void 0?{}:{profileVersion:options.profileVersion},...options?.parentAgentSession===void 0?{}:{parentAgentSession:options.parentAgentSession},...options?.agentRole===void 0?{}:{agentRole:options.agentRole},...options?.parentTraceId===void 0?{}:{parentTraceId:options.parentTraceId}};if(this.fileEntries=[header],this.byId.clear(),this.labelsById.clear(),this.labelTimestampsById.clear(),this.compactionOperations.clear(),this.leafId=null,this.flushed=!1,this.persist){let fileTimestamp=timestamp.replace(/[:.]/g,"-");this.sessionFile=join19(this.getSessionDir(),`${fileTimestamp}_${this.sessionId}.jsonl`)}return this.sessionFile}_buildIndex(){this.byId.clear(),this.labelsById.clear(),this.labelTimestampsById.clear(),this.compactionOperations.clear(),this.leafId=null;for(let entry of this.fileEntries)if(entry.type!=="session"){if(this.byId.set(entry.id,entry),this.leafId=entry.id,entry.type==="compaction"&&entry.operationId!==void 0){if(typeof entry.operationId!="string"||entry.operationId.trim()==="")throw new Error(t("Invalid compaction operationId in session entry: {operationId}",{operationId:String(entry.operationId)}));if(this.compactionOperations.has(entry.operationId))throw new Error(t("Duplicate compaction operationId in session: {operationId}",{operationId:entry.operationId}));this.compactionOperations.set(entry.operationId,entry)}entry.type==="label"&&(entry.label?(this.labelsById.set(entry.targetId,entry.label),this.labelTimestampsById.set(entry.targetId,entry.timestamp)):(this.labelsById.delete(entry.targetId),this.labelTimestampsById.delete(entry.targetId)))}}_rewriteFile(){!this.persist||!this.sessionFile||(this.assertWritable(),this.storage.rewrite(this.sessionFile,this.fileEntries))}assertWritable(){!this.persist||!this.sessionFile||(this.storageWriterId??=randomUUID4(),this.storage.guard?.ensureWritable(this.sessionFile,this.storageWriterId))}isPersisted(){return this.persist}getCwd(){return this.cwd}getSessionDir(){return this.sessionDir}usesDefaultSessionDir(){return this.sessionDir===getDefaultSessionDirPath(this.cwd)}getSessionId(){return this.sessionId}getSessionFile(){return this.sessionFile}getRevision(){return{version:1,sessionId:this.sessionId,sequence:Math.max(0,this.fileEntries.length-1),leafId:this.leafId}}_hasConversation(){return this.fileEntries.some(e=>e.type==="message"&&(e.message.role==="user"||e.message.role==="assistant"))}_persist(entry){if(!(!this.persist||!this.sessionFile))if(this.assertWritable(),this.flushed)this.storage.append(this.sessionFile,entry);else{if(!this._hasConversation())return;this.storage.createExclusive(this.sessionFile,this.fileEntries),this.flushed=!0,this.notifySessionIndex(!0)}}notifySessionIndex(immediate){if(!this.persist||!this.flushed||!this.sessionFile||this.sessionDir!==getDefaultSessionDirPath(this.cwd))return;let fields=deriveSessionIndexFields(this.fileEntries);fields&&recordSessionUpdate({sessionPath:this.sessionFile,sessionId:fields.sessionId,cwd:fields.cwd,name:fields.name,parentSessionPath:fields.parentSessionPath,profileId:fields.profileId,profileVersion:fields.profileVersion,createdMs:fields.createdMs,modifiedMs:fields.modifiedMs,messageCount:fields.messageCount,firstMessage:fields.firstMessage,immediate})}_appendEntry(entry){let previousLeafId=this.leafId,previousFlushed=this.flushed,sessionFile=this.sessionFile,fileExisted=sessionFile!==void 0&&this.storage.exists(sessionFile),previousFileSize=fileExisted?this.storage.size(sessionFile):void 0;this.fileEntries.push(entry),this.byId.set(entry.id,entry),this.leafId=entry.id;try{this._persist(entry),previousFlushed&&this.notifySessionIndex(!1)}catch(error2){this.fileEntries.pop(),this.byId.get(entry.id)===entry&&this.byId.delete(entry.id),this.leafId=previousLeafId,this.flushed=previousFlushed;try{sessionFile&&previousFileSize!==void 0?this.storage.truncate(sessionFile,previousFileSize):sessionFile&&!fileExisted&&this.storage.exists(sessionFile)&&this.storage.remove(sessionFile)}catch(rollbackError){throw new AggregateError([error2,rollbackError],t("Session append failed and rollback failed"))}throw error2}}appendMessage(message){let entry={type:"message",id:generateId(this.byId),parentId:this.leafId,timestamp:new Date().toISOString(),message};return this._appendEntry(entry),entry.id}appendThinkingLevelChange(thinkingLevel){let entry={type:"thinking_level_change",id:generateId(this.byId),parentId:this.leafId,timestamp:new Date().toISOString(),thinkingLevel};return this._appendEntry(entry),entry.id}appendModelChange(provider,modelId){let entry={type:"model_change",id:generateId(this.byId),parentId:this.leafId,timestamp:new Date().toISOString(),provider,modelId};return this._appendEntry(entry),entry.id}appendCompaction(summary,firstKeptEntryId,tokensBefore,details,fromHook,usage){let entry={type:"compaction",id:generateId(this.byId),parentId:this.leafId,timestamp:new Date().toISOString(),summary,firstKeptEntryId,tokensBefore,details,usage,fromHook};return this._appendEntry(entry),entry.id}commitCompaction(request){this._validateCompactionCommitRequest(request);let previousOperation=this.compactionOperations.get(request.operationId);if(previousOperation){if(this._matchesCompactionCommitRequest(previousOperation,request))return{version:1,status:"replayed",entryId:previousOperation.id,revision:this._revisionAfterEntry(previousOperation)};throw new Error(t("operation_id_reused: {operationId}",{operationId:request.operationId}))}let currentRevision=this.getRevision();if(!sameSessionRevision(request.expectedRevision,currentRevision))return{version:1,status:"revision_conflict",currentRevision};if(!this.getBranch().some(entry2=>entry2.id===request.firstKeptEntryId))throw new Error(t("first_kept_entry_not_on_current_branch: {firstKeptEntryId}",{firstKeptEntryId:request.firstKeptEntryId}));let entry={type:"compaction",id:generateId(this.byId),parentId:this.leafId,timestamp:new Date().toISOString(),operationId:request.operationId,summary:request.summary,firstKeptEntryId:request.firstKeptEntryId,tokensBefore:request.tokensBefore,details:request.details,usage:request.usage,fromHook:request.fromHook};return this._appendEntry(entry),this.compactionOperations.set(request.operationId,entry),{version:1,status:"committed",entryId:entry.id,revision:this.getRevision()}}_validateCompactionCommitRequest(request){if(!request||typeof request!="object")throw new Error(t("Compaction commit request must be an object"));if(request.version!==1)throw new Error(t("Unsupported compaction commit request version"));if(typeof request.operationId!="string"||request.operationId.trim()==="")throw new Error(t("operationId must be a non-empty string"));if(typeof request.summary!="string"||request.summary.trim()==="")throw new Error(t("summary must be a non-empty string"));if(typeof request.firstKeptEntryId!="string"||request.firstKeptEntryId==="")throw new Error(t("firstKeptEntryId must be a non-empty string"));if(typeof request.tokensBefore!="number"||!Number.isFinite(request.tokensBefore)||request.tokensBefore<0)throw new Error(t("tokensBefore must be a non-negative finite number"));request.details!==void 0&&assertJsonSerializable(request.details,"details"),request.usage!==void 0&&assertJsonSerializable(request.usage,"usage");let revision=request.expectedRevision;if(revision?.version!==1||typeof revision.sessionId!="string"||revision.sessionId===""||!Number.isInteger(revision.sequence)||revision.sequence<0||revision.leafId!==null&&typeof revision.leafId!="string")throw new Error(t("expectedRevision must be a valid SessionRevisionV1"))}_matchesCompactionCommitRequest(entry,request){let entryIndex=this.fileEntries.indexOf(entry);if(entryIndex<=0)throw new Error(t("Compaction operation entry is missing: {entryId}",{entryId:entry.id}));return request.expectedRevision.version===1&&request.expectedRevision.sessionId===this.sessionId&&request.expectedRevision.sequence===entryIndex-1&&request.expectedRevision.leafId===entry.parentId&&request.summary===entry.summary&&request.firstKeptEntryId===entry.firstKeptEntryId&&request.tokensBefore===entry.tokensBefore&&request.fromHook===entry.fromHook&&isDeepStrictEqual(request.details,entry.details)&&isDeepStrictEqual(request.usage,entry.usage)}_revisionAfterEntry(entry){let entryIndex=this.fileEntries.indexOf(entry);if(entryIndex<=0)throw new Error(t("Compaction operation entry is missing: {entryId}",{entryId:entry.id}));return{version:1,sessionId:this.sessionId,sequence:entryIndex,leafId:entry.id}}appendCustomEntry(customType,data){let entry={type:"custom",customType,data,id:generateId(this.byId),parentId:this.leafId,timestamp:new Date().toISOString()};return this._appendEntry(entry),entry.id}appendSessionInfo(name){let sanitizedName=name.replace(/[\r\n]+/g," ").trim(),entry={type:"session_info",id:generateId(this.byId),parentId:this.leafId,timestamp:new Date().toISOString(),name:sanitizedName};return this._appendEntry(entry),this.flushed&&this.notifySessionIndex(!0),entry.id}getSessionName(){for(let i=this.fileEntries.length-1;i>=0;i--){let entry=this.fileEntries[i];if(entry.type==="session_info")return entry.name?.trim()||void 0}}appendCustomMessageEntry(customType,content,display,details){let entry={type:"custom_message",customType,content,display,details,id:generateId(this.byId),parentId:this.leafId,timestamp:new Date().toISOString()};return this._appendEntry(entry),entry.id}getLeafId(){return this.leafId}getLeafEntry(){return this.leafId?this.byId.get(this.leafId):void 0}getEntry(id){return this.byId.get(id)}getChildren(parentId){let children=[];for(let entry of this.byId.values())entry.parentId===parentId&&children.push(entry);return children}getLabel(id){return this.labelsById.get(id)}appendLabelChange(targetId,label){if(!this.byId.has(targetId))throw new Error(t("Entry {id} not found",{id:targetId}));let entry={type:"label",id:generateId(this.byId),parentId:this.leafId,timestamp:new Date().toISOString(),targetId,label};return this._appendEntry(entry),label?(this.labelsById.set(targetId,label),this.labelTimestampsById.set(targetId,entry.timestamp)):(this.labelsById.delete(targetId),this.labelTimestampsById.delete(targetId)),entry.id}getBranch(fromId){let path7=[],startId=fromId??this.leafId,current=startId?this.byId.get(startId):void 0;for(;current;)path7.push(current),current=current.parentId?this.byId.get(current.parentId):void 0;return path7.reverse(),path7}buildContextEntries(){return buildContextEntries(this.getEntries(),this.leafId,this.byId)}buildSessionContext(){return buildSessionContext(this.getEntries(),this.leafId,this.byId,this.entryProjections)}registerEntryProjection(projection){return this.entryProjections.push(projection),()=>{let index3=this.entryProjections.indexOf(projection);index3>=0&&this.entryProjections.splice(index3,1)}}getHeader(){let h=this.fileEntries.find(e=>e.type==="session");return h||null}getEntryCount(){return this.byId.size}getEntries(){return this.fileEntries.filter(e=>e.type!=="session")}getTree(){let entries=this.getEntries(),nodeMap=new Map,roots=[];for(let entry of entries){let label=this.labelsById.get(entry.id),labelTimestamp=this.labelTimestampsById.get(entry.id);nodeMap.set(entry.id,{entry,children:[],label,labelTimestamp})}for(let entry of entries){let node=nodeMap.get(entry.id);if(entry.parentId===null||entry.parentId===entry.id)roots.push(node);else{let parent=nodeMap.get(entry.parentId);parent?parent.children.push(node):roots.push(node)}}let stack=[...roots];for(;stack.length>0;){let node=stack.pop();node.children.sort((a,b2)=>new Date(a.entry.timestamp).getTime()-new Date(b2.entry.timestamp).getTime()),stack.push(...node.children)}return roots}branch(branchFromId){if(!this.byId.has(branchFromId))throw new Error(t("Entry {id} not found",{id:branchFromId}));this.leafId=branchFromId}resetLeaf(){this.leafId=null}branchWithSummary(branchFromId,summary,details,fromHook,usage){if(branchFromId!==null&&!this.byId.has(branchFromId))throw new Error(t("Entry {id} not found",{id:branchFromId}));let fromId=this.leafId??"root";this.leafId=branchFromId;let entry={type:"branch_summary",id:generateId(this.byId),parentId:branchFromId,timestamp:new Date().toISOString(),fromId,summary,details,usage,fromHook};return this._appendEntry(entry),entry.id}createBranchedSession(leafId){let previousSessionFile=this.sessionFile,path7=this.getBranch(leafId);if(path7.length===0)throw new Error(t("Entry {id} not found",{id:leafId}));let pathWithoutLabels=[],replacementByLabelId=new Map,pendingLabelIds=[],pathParentId=null;for(let entry of path7){if(entry.type==="label"){pendingLabelIds.push(entry.id);continue}for(let labelId of pendingLabelIds)replacementByLabelId.set(labelId,entry.id);pendingLabelIds.length=0,pathWithoutLabels.push(entry.type==="compaction"?{...entry,parentId:pathParentId,firstKeptEntryId:replacementByLabelId.get(entry.firstKeptEntryId)??entry.firstKeptEntryId}:{...entry,parentId:pathParentId}),pathParentId=entry.id}let newSessionId=createSessionId(),timestamp=new Date().toISOString(),fileTimestamp=timestamp.replace(/[:.]/g,"-"),newSessionFile=join19(this.getSessionDir(),`${fileTimestamp}_${newSessionId}.jsonl`),header={type:"session",version:CURRENT_SESSION_VERSION,id:newSessionId,timestamp,cwd:this.cwd,parentSession:this.persist?previousSessionFile:void 0},pathEntryIds=new Set(pathWithoutLabels.map(e=>e.id)),labelsToWrite=[];for(let[targetId,label]of this.labelsById)pathEntryIds.has(targetId)&&labelsToWrite.push({targetId,label,timestamp:this.labelTimestampsById.get(targetId)});if(this.persist){let parentId2=pathWithoutLabels[pathWithoutLabels.length-1]?.id||null,labelEntries2=[];for(let{targetId,label,timestamp:labelTimestamp}of labelsToWrite){let labelEntry={type:"label",id:generateId(new Set(pathEntryIds)),parentId:parentId2,timestamp:labelTimestamp,targetId,label};pathEntryIds.add(labelEntry.id),labelEntries2.push(labelEntry),parentId2=labelEntry.id}return this.fileEntries=[header,...pathWithoutLabels,...labelEntries2],this.sessionId=newSessionId,this.sessionFile=newSessionFile,this._buildIndex(),this._hasConversation()?(this._rewriteFile(),this.flushed=!0,this.notifySessionIndex(!0)):this.flushed=!1,newSessionFile}let labelEntries=[],parentId=pathWithoutLabels[pathWithoutLabels.length-1]?.id||null;for(let{targetId,label,timestamp:labelTimestamp}of labelsToWrite){let labelEntry={type:"label",id:generateId(new Set([...pathEntryIds,...labelEntries.map(e=>e.id)])),parentId,timestamp:labelTimestamp,targetId,label};labelEntries.push(labelEntry),parentId=labelEntry.id}this.fileEntries=[header,...pathWithoutLabels,...labelEntries],this.sessionId=newSessionId,this._buildIndex()}static create(cwd,sessionDir,options,storage=FileSessionStorageProvider.instance){let dir=sessionDir?normalizePath(sessionDir):getDefaultSessionDir(cwd);return new _SessionManager(cwd,dir,void 0,!0,options,void 0,storage)}static open(path7,sessionDir,cwdOverride,storage=FileSessionStorageProvider.instance){let resolvedPath=resolvePath(path7),header=null,preloadedFileEntries;if(cwdOverride===void 0&&storage.exists(resolvedPath))try{header=storage.readHeader(resolvedPath)}catch(error2){if(!(error2 instanceof SessionHeaderScanLimitError))throw error2;preloadedFileEntries=storage.loadEntries(resolvedPath);let firstEntry=preloadedFileEntries[0];header=firstEntry?.type==="session"?firstEntry:null}let cwd=cwdOverride??(header?getSessionHeaderCwd(header):void 0)??process.cwd(),dir=sessionDir?normalizePath(sessionDir):resolve3(resolvedPath,"..");return new _SessionManager(cwd,dir,resolvedPath,!0,void 0,preloadedFileEntries,storage)}static continueRecent(cwd,sessionDir,storage=FileSessionStorageProvider.instance){let dir=sessionDir?normalizePath(sessionDir):getDefaultSessionDir(cwd),filterCwd=sessionDir!==void 0&&dir!==getDefaultSessionDirPath(cwd),mostRecent=findMostRecentSessionWithStorage(storage,dir,filterCwd?cwd:void 0);return mostRecent?new _SessionManager(cwd,dir,mostRecent,!0,void 0,void 0,storage):new _SessionManager(cwd,dir,void 0,!0,void 0,void 0,storage)}static inMemory(cwd=process.cwd(),options){return new _SessionManager(cwd,"",void 0,!1,options)}static forkFrom(sourcePath,targetCwd,sessionDir,options,storage=FileSessionStorageProvider.instance){let resolvedSourcePath=resolvePath(sourcePath),resolvedTargetCwd=resolvePath(targetCwd),sourceEntries=storage.loadEntries(resolvedSourcePath);if(sourceEntries.length===0)throw new Error(t("Cannot fork: source session file is empty or invalid: {path}",{path:resolvedSourcePath}));if(!sourceEntries.find(e=>e.type==="session"))throw new Error(t("Cannot fork: source session has no header: {path}",{path:resolvedSourcePath}));let dir=sessionDir?normalizePath(sessionDir):getDefaultSessionDir(resolvedTargetCwd);storage.ensureDir(dir),options?.id!==void 0&&assertValidSessionId(options.id);let newSessionId=options?.id??createSessionId(),timestamp=new Date().toISOString(),fileTimestamp=timestamp.replace(/[:.]/g,"-"),newSessionFile=join19(dir,`${fileTimestamp}_${newSessionId}.jsonl`),forkedEntries=[{type:"session",version:CURRENT_SESSION_VERSION,id:newSessionId,timestamp,cwd:resolvedTargetCwd,parentSession:resolvedSourcePath},...sourceEntries.filter(entry=>entry.type!=="session")];if(storage.createExclusive(newSessionFile,forkedEntries),dir===getDefaultSessionDirPath(resolvedTargetCwd)){let fields=deriveSessionIndexFields(forkedEntries);fields&&recordSessionUpdate({sessionPath:newSessionFile,sessionId:fields.sessionId,cwd:fields.cwd,name:fields.name,parentSessionPath:fields.parentSessionPath,profileId:fields.profileId,profileVersion:fields.profileVersion,createdMs:fields.createdMs,modifiedMs:fields.modifiedMs,messageCount:fields.messageCount,firstMessage:fields.firstMessage,immediate:!0})}return new _SessionManager(resolvedTargetCwd,dir,newSessionFile,!0,void 0,void 0,storage)}static findById(cwd,id,sessionDir,storage=FileSessionStorageProvider.instance){let dir=sessionDir?normalizePath(sessionDir):getDefaultSessionDir(cwd),filterCwd=sessionDir!==void 0&&dir!==getDefaultSessionDirPath(cwd),resolvedCwd=resolvePath(cwd);try{for(let path7 of storage.listSessionFiles(dir)){let header=readSessionHeaderForDiscovery(storage,path7);if(header?.id===id&&!(filterCwd&&!sessionCwdMatches(getSessionHeaderCwd(header),resolvedCwd)))return path7}}catch{}}static async list(cwd,sessionDir,onProgress,signal){let dir=sessionDir?normalizePath(sessionDir):getDefaultSessionDir(cwd),filterCwd=sessionDir!==void 0&&dir!==getDefaultSessionDirPath(cwd),resolvedCwd=resolvePath(cwd),includeSession=session=>!filterCwd||sessionCwdMatches(session.cwd,resolvedCwd),sessions=(await listSessionsFromDir(dir,onProgress?(loaded,total,partialSessions)=>onProgress(loaded,total,partialSessions?.filter(includeSession)):void 0,signal)).filter(includeSession);return sortSessionInfos(sessions)}static async listAll(sessionDirOrOnProgress,onProgressOrSignal,signal){let customSessionDir=typeof sessionDirOrOnProgress=="string"?normalizePath(sessionDirOrOnProgress):void 0,progress=typeof sessionDirOrOnProgress=="function"?sessionDirOrOnProgress:typeof onProgressOrSignal=="function"?onProgressOrSignal:void 0,abortSignal=typeof sessionDirOrOnProgress=="string"||typeof onProgressOrSignal=="function"?signal:onProgressOrSignal??signal;if(abortSignal?.throwIfAborted(),customSessionDir)return sortSessionInfos(await listSessionsFromDir(customSessionDir,progress,abortSignal));let sessionsDir=getSessionsDir(),viaIndex=await listSessionsViaIndex({sessionsRoot:sessionsDir,buildInfo:path7=>buildSessionInfo(path7,abortSignal),scanAll:()=>scanAllSessionsFromRoot(sessionsDir,progress,abortSignal),onHit:sessions=>progress?.(sessions.length,sessions.length,sessions),signal:abortSignal});return viaIndex!==void 0?viaIndex:scanAllSessionsFromRoot(sessionsDir,progress,abortSignal)}};function createFileOps(){return{read:new Set,written:new Set,edited:new Set}}function extractFileOpsFromMessage(message,fileOps){if(message.role==="assistant"&&!(!("content"in message)||!Array.isArray(message.content)))for(let block of message.content){if(typeof block!="object"||block===null||!("type"in block)||block.type!=="toolCall"||!("arguments"in block)||!("name"in block))continue;let args=block.arguments;if(!args)continue;let path7=typeof args.path=="string"?args.path:void 0;if(path7)switch(block.name){case"read":fileOps.read.add(path7);break;case"write":fileOps.written.add(path7);break;case"edit":fileOps.edited.add(path7);break}}}function computeFileLists(fileOps){let modified=new Set([...fileOps.edited,...fileOps.written]),readOnly=[...fileOps.read].filter(f=>!modified.has(f)).sort(),modifiedFiles=[...modified].sort();return{readFiles:readOnly,modifiedFiles}}function formatFileOperations(readFiles,modifiedFiles){let sections=[];return readFiles.length>0&§ions.push(`<read-files>
|
|
465
|
+
`);for(let line of lines)if(line.trim())try{let entry=JSON.parse(line);entries.push(entry)}catch{}return entries}function getLatestCompactionEntry(entries){for(let i=entries.length-1;i>=0;i--)if(entries[i].type==="compaction")return entries[i];return null}function buildEntryIndex(entries,byId){if(byId)return byId;let index3=new Map;for(let entry of entries)index3.set(entry.id,entry);return index3}function buildSessionPath(entries,leafId,byId){let index3=buildEntryIndex(entries,byId),leaf;if(leafId===null)return[];if(leafId&&(leaf=index3.get(leafId)),leaf??=entries[entries.length-1],!leaf)return[];let path7=[],current=leaf;for(;current;)path7.push(current),current=current.parentId?index3.get(current.parentId):void 0;return path7.reverse(),path7}function getSessionContextSettings(path7){let thinkingLevel="off",explicitModel=null,derivedModel=null;for(let entry of path7)entry.type==="thinking_level_change"?thinkingLevel=entry.thinkingLevel:entry.type==="model_change"?explicitModel={provider:entry.provider,modelId:entry.modelId}:entry.type==="message"&&entry.message.role==="assistant"&&(derivedModel={provider:entry.message.provider,modelId:entry.message.model});return{thinkingLevel,model:explicitModel??derivedModel}}function isContextMessage(message){return message.role!=="assistant"||message.stopReason!=="error"&&message.stopReason!=="aborted"&&message.stopReason!=="deferred"}function backfillDanglingToolResults(messages){let answeredToolCallIds=new Set;for(let message of messages)message.role==="toolResult"&&answeredToolCallIds.add(message.toolCallId);let repaired=[],changed=!1;for(let message of messages)if(repaired.push(message),message.role==="assistant"){let danglingCalls=message.content.filter(block=>block.type==="toolCall"&&!answeredToolCallIds.has(block.id));if(danglingCalls.length>0){for(let call of danglingCalls)answeredToolCallIds.add(call.id),repaired.push(createInterruptedToolResultMessage(call,message.timestamp));changed=!0}}return changed?repaired:messages}function sessionEntryToContextMessages(entry){if(entry.type==="message"){let message=entry.message;return(message.role==="user"||message.role==="assistant"||message.role==="toolResult")&&message.content==null?[{...message,content:[]}]:[message]}return entry.type==="custom_message"?[createCustomMessage(entry.customType,entry.content??[],entry.display,entry.details,entry.timestamp)]:entry.type==="branch_summary"&&entry.summary?[createBranchSummaryMessage(entry.summary,entry.fromId,entry.timestamp)]:entry.type==="compaction"?[createCompactionSummaryMessage(entry.summary,entry.tokensBefore,entry.timestamp)]:[]}function buildContextEntries(entries,leafId,byId){let path7=buildSessionPath(entries,leafId,byId),compaction=null;for(let entry of path7)entry.type==="compaction"&&(compaction=entry);if(!compaction)return path7;let compactionIdx=path7.findIndex(entry=>entry.id===compaction.id);if(compactionIdx<0)return path7;let contextEntries=[compaction],foundFirstKept=!1;for(let i=0;i<compactionIdx;i++){let entry=path7[i];entry.id===compaction.firstKeptEntryId&&(foundFirstKept=!0),foundFirstKept&&contextEntries.push(entry)}return contextEntries.push(...path7.slice(compactionIdx+1)),contextEntries}function buildSessionContext(entries,leafId,byId,entryProjections){let path7=buildSessionPath(entries,leafId,byId),{thinkingLevel,model}=getSessionContextSettings(path7),contextEntries=buildContextEntries(entries,leafId,byId),projected=entryProjections===void 0?contextEntries:applyEntryProjections(contextEntries,entryProjections);return{messages:backfillDanglingToolResults(projected.flatMap(sessionEntryToContextMessages).filter(isContextMessage)),thinkingLevel,model}}function applyEntryProjections(entries,projections){let projected=entries;for(let projection of projections)projected=projection.project(projected);return projected}function getDefaultSessionDirPath(cwd,agentDir=getAgentDir()){let resolvedCwd=resolvePath(cwd),resolvedAgentDir=resolvePath(agentDir),safePath=`--${resolvedCwd.replace(/^[/\\]/,"").replace(/[/\\:]/g,"-")}--`;return join19(resolvedAgentDir,"sessions",safePath)}function getDefaultSessionDir(cwd,agentDir=getAgentDir()){let sessionDir=getDefaultSessionDirPath(cwd,agentDir);return existsSync6(sessionDir)||mkdirSync7(sessionDir,{recursive:!0}),sessionDir}function getTraceFilePathForSession(sessionFilePath){return sessionFilePath.endsWith(".trace.jsonl")?sessionFilePath:sessionFilePath.endsWith(".jsonl")?`${sessionFilePath.slice(0,-6)}.trace.jsonl`:`${sessionFilePath}.trace.jsonl`}function parseSessionEntryLine2(line){if(!line.trim())return null;try{return JSON.parse(line)}catch{return null}}function readSessionHeaderForDiscovery(storage,filePath){try{return storage.readHeader(filePath)}catch{return null}}function getSessionHeaderCwd(header){let cwd=header.cwd;return typeof cwd=="string"?cwd:void 0}function sessionCwdMatches(cwd,resolvedCwd){return cwd!==void 0&&cwd!==""&&resolvePath(cwd)===resolvedCwd}function findMostRecentSessionWithStorage(storage,sessionDir,cwd){let resolvedCwd=cwd?resolvePath(cwd):void 0;try{let files=storage.listSessionFiles(sessionDir).map(path7=>({path:path7,mtime:storage.modifiedTime(path7).getTime()})).sort((a,b2)=>b2.mtime-a.mtime);for(let{path:path7}of files){let header=readSessionHeaderForDiscovery(storage,path7);if(header&&(!resolvedCwd||sessionCwdMatches(getSessionHeaderCwd(header),resolvedCwd)))return path7}return null}catch{return null}}function findMostRecentSession(sessionDir,cwd){return findMostRecentSessionWithStorage(FileSessionStorageProvider.instance,sessionDir,cwd)}function isMessageWithContent(message){return typeof message.role=="string"&&"content"in message}function extractTextContent(message){let content=message.content;return typeof content=="string"?content:content.filter(block=>block.type==="text").map(block=>block.text).join(" ")}function getMessageActivityTime(entry){let message=entry.message;if(!isMessageWithContent(message)||message.role!=="user"&&message.role!=="assistant")return;let msgTimestamp=message.timestamp;if(typeof msgTimestamp=="number")return msgTimestamp;let t2=new Date(entry.timestamp).getTime();return Number.isNaN(t2)?void 0:t2}async function buildSessionInfo(filePath,signal,fileStats){try{let stats=fileStats??await stat2(filePath),header=null,messageCount=0,firstMessage="",allMessagesText="",name,lastActivityTime,rl=createInterface({input:createReadStream(filePath,{encoding:"utf8",signal}),crlfDelay:1/0});for await(let line of rl){let entry=parseSessionEntryLine2(line);if(!entry)continue;if(!header){if(entry.type!=="session")return null;header=entry;continue}if(entry.type==="session_info"&&(name=entry.name?.trim()||void 0),entry.type!=="message")continue;messageCount++;let activityTime=getMessageActivityTime(entry);typeof activityTime=="number"&&(lastActivityTime=Math.max(lastActivityTime??0,activityTime));let message=entry.message;if(!isMessageWithContent(message)||message.role!=="user"&&message.role!=="assistant")continue;let textContent=extractTextContent(message);if(textContent){if(allMessagesText.length<SESSION_SEARCH_TEXT_BUDGET){let remaining=SESSION_SEARCH_TEXT_BUDGET-allMessagesText.length;allMessagesText+=(allMessagesText?" ":"")+textContent.slice(0,remaining)}!firstMessage&&message.role==="user"&&(firstMessage=textContent)}}if(!header)return null;let cwd=typeof header.cwd=="string"?header.cwd:"",parentSessionPath=header.parentSession,profileId=typeof header.profileId=="string"?header.profileId:void 0,profileVersion=typeof header.profileVersion=="string"?header.profileVersion:void 0,headerTime=typeof header.timestamp=="string"?new Date(header.timestamp).getTime():NaN,modified=typeof lastActivityTime=="number"&&lastActivityTime>0?new Date(lastActivityTime):Number.isNaN(headerTime)?stats.mtime:new Date(headerTime);return{path:filePath,id:header.id,cwd,name,parentSessionPath,profileId,profileVersion,created:new Date(header.timestamp),modified,messageCount,firstMessage:firstMessage||"(no messages)",allMessagesText}}catch{return signal?.throwIfAborted(),null}}function deriveSessionIndexFields(entries){let header=entries.find(e=>e.type==="session");if(!header)return null;let name,messageCount=0,firstMessage="",lastActivityTime;for(let entry of entries){if(entry.type==="session")continue;if(entry.type==="session_info"){name=entry.name?.trim()||void 0;continue}if(entry.type!=="message")continue;messageCount++;let activityTime=getMessageActivityTime(entry);typeof activityTime=="number"&&(lastActivityTime=Math.max(lastActivityTime??0,activityTime));let message=entry.message;if(!isMessageWithContent(message)||message.role!=="user"&&message.role!=="assistant")continue;let textContent=extractTextContent(message);textContent&&!firstMessage&&message.role==="user"&&(firstMessage=textContent)}let headerTime=typeof header.timestamp=="string"?new Date(header.timestamp).getTime():NaN;return{sessionId:header.id,cwd:typeof header.cwd=="string"?header.cwd:"",name,parentSessionPath:header.parentSession,profileId:typeof header.profileId=="string"?header.profileId:void 0,profileVersion:typeof header.profileVersion=="string"?header.profileVersion:void 0,createdMs:headerTime,modifiedMs:typeof lastActivityTime=="number"&&lastActivityTime>0?lastActivityTime:Number.isNaN(headerTime)?Date.now():headerTime,messageCount,firstMessage:firstMessage||"(no messages)"}}var MAX_CONCURRENT_SESSION_INFO_LOADS=10,MAX_CONCURRENT_SESSION_DISCOVERY_LOADS=64,SESSION_SEARCH_TEXT_BUDGET=64*1024,CURRENT_SESSION_LIST_PUBLISH_INTERVAL=10,ALL_SESSION_LIST_PUBLISH_INTERVAL=100;async function mapWithConcurrency(items,limit,map,signal){let results=new Array(items.length),nextIndex=0,worker=async()=>{for(;nextIndex<items.length;){signal?.throwIfAborted();let index3=nextIndex++;results[index3]=await map(items[index3],index3)}};return await Promise.all(Array.from({length:Math.min(limit,items.length)},()=>worker())),results}function sortSessionInfos(sessions){return sessions.sort((a,b2)=>b2.modified.getTime()-a.modified.getTime())}function buildSessionInfosWithConcurrency(files,onLoaded,signal){return mapWithConcurrency(files,MAX_CONCURRENT_SESSION_INFO_LOADS,async(file,index3)=>{let info=await buildSessionInfo(file.path,signal,file.stats);return onLoaded(info,index3),info},signal)}async function listSessionsFromDir(dir,onProgress,signal){if(signal?.throwIfAborted(),!existsSync6(dir))return[];try{let files=(await readdir2(dir)).filter(file=>file.endsWith(".jsonl")).sort((a,b2)=>b2.localeCompare(a)).map(file=>({path:join19(dir,file)})),total=files.length,partialSessions=[],loaded=0;return(await buildSessionInfosWithConcurrency(files,info=>{loaded++,info&&partialSessions.push(info);let publishPartial=loaded===1||loaded%CURRENT_SESSION_LIST_PUBLISH_INTERVAL===0||loaded===total;onProgress?.(loaded,total,publishPartial?sortSessionInfos([...partialSessions]):void 0)},signal)).filter(info=>info!==null)}catch{return signal?.throwIfAborted(),[]}}async function scanAllSessionsFromRoot(sessionsDir,onProgress,signal){try{if(!existsSync6(sessionsDir))return[];let dirs=(await readdir2(sessionsDir,{withFileTypes:!0})).filter(entry=>(entry.isDirectory()||entry.isSymbolicLink())&&entry.name!==AGENT_SESSIONS_DIR_NAME).map(entry=>join19(sessionsDir,entry.name)),allFiles=(await mapWithConcurrency(dirs,MAX_CONCURRENT_SESSION_DISCOVERY_LOADS,async dir=>{try{return(await readdir2(dir)).filter(file=>file.endsWith(".jsonl")).map(file=>join19(dir,file))}catch{return[]}},signal)).flat(),candidates=await mapWithConcurrency(allFiles,MAX_CONCURRENT_SESSION_DISCOVERY_LOADS,async path7=>{try{return{path:path7,stats:await stat2(path7)}}catch{return{path:path7}}},signal);candidates.sort((a,b2)=>(b2.stats?.mtimeMs??Number.NEGATIVE_INFINITY)-(a.stats?.mtimeMs??Number.NEGATIVE_INFINITY)||basename4(b2.path).localeCompare(basename4(a.path)));let totalFiles=candidates.length,loaded=0,firstCandidateLoaded=!1,partialSessions=[],results=await buildSessionInfosWithConcurrency(candidates,(info,index3)=>{loaded++,index3===0&&(firstCandidateLoaded=!0),info&&partialSessions.push(info);let publishPartial=firstCandidateLoaded&&(index3===0||loaded%ALL_SESSION_LIST_PUBLISH_INTERVAL===0||loaded===totalFiles);onProgress?.(loaded,totalFiles,publishPartial?sortSessionInfos([...partialSessions]):void 0)},signal);return sortSessionInfos(results.filter(info=>info!==null))}catch{return signal?.throwIfAborted(),[]}}var SessionManager=class _SessionManager{sessionId="";sessionFile;sessionDir;cwd;persist;flushed=!1;entryProjections=[];fileEntries=[];byId=new Map;labelsById=new Map;labelTimestampsById=new Map;compactionOperations=new Map;leafId=null;storage;storageWriterId;constructor(cwd,sessionDir,sessionFile,persist,newSessionOptions,preloadedFileEntries,storage=FileSessionStorageProvider.instance){this.cwd=resolvePath(cwd),this.sessionDir=normalizePath(sessionDir),this.persist=persist,this.storage=storage,persist&&this.sessionDir&&this.storage.ensureDir(this.sessionDir),sessionFile?this._setSessionFile(sessionFile,preloadedFileEntries):this.newSession(newSessionOptions)}setSessionFile(sessionFile){this._setSessionFile(sessionFile)}_setSessionFile(sessionFile,preloadedFileEntries){if(this.sessionFile=resolvePath(sessionFile),this.storage.exists(this.sessionFile)){if(this.fileEntries=preloadedFileEntries??this.storage.loadEntries(this.sessionFile),this.fileEntries.length===0){let explicitPath=this.sessionFile;if(this.storage.size(explicitPath)>0)throw new Error(t("Session file is not a valid {appName} session: {path}",{appName:APP_NAME,path:explicitPath}));this.newSession(),this.sessionFile=explicitPath,this._rewriteFile(),this.flushed=!0;return}let header=this.fileEntries.find(e=>e.type==="session");this.sessionId=header?.id??createSessionId(),migrateToCurrentVersion(this.fileEntries)&&this._rewriteFile(),this._buildIndex(),this.flushed=!0}else{let explicitPath=this.sessionFile;this.newSession(),this.sessionFile=explicitPath}}newSession(options){options?.id!==void 0&&assertValidSessionId(options.id),this.sessionId=options?.id??createSessionId();let timestamp=new Date().toISOString(),header={type:"session",version:CURRENT_SESSION_VERSION,id:this.sessionId,timestamp,cwd:this.cwd,parentSession:options?.parentSession,...options?.profileId===void 0?{}:{profileId:options.profileId},...options?.profileVersion===void 0?{}:{profileVersion:options.profileVersion},...options?.parentAgentSession===void 0?{}:{parentAgentSession:options.parentAgentSession},...options?.agentRole===void 0?{}:{agentRole:options.agentRole},...options?.parentTraceId===void 0?{}:{parentTraceId:options.parentTraceId}};if(this.fileEntries=[header],this.byId.clear(),this.labelsById.clear(),this.labelTimestampsById.clear(),this.compactionOperations.clear(),this.leafId=null,this.flushed=!1,this.persist){let fileTimestamp=timestamp.replace(/[:.]/g,"-");this.sessionFile=join19(this.getSessionDir(),`${fileTimestamp}_${this.sessionId}.jsonl`)}return this.sessionFile}_buildIndex(){this.byId.clear(),this.labelsById.clear(),this.labelTimestampsById.clear(),this.compactionOperations.clear(),this.leafId=null;for(let entry of this.fileEntries)if(entry.type!=="session"){if(this.byId.set(entry.id,entry),this.leafId=entry.id,entry.type==="compaction"&&entry.operationId!==void 0){if(typeof entry.operationId!="string"||entry.operationId.trim()==="")throw new Error(t("Invalid compaction operationId in session entry: {operationId}",{operationId:String(entry.operationId)}));if(this.compactionOperations.has(entry.operationId))throw new Error(t("Duplicate compaction operationId in session: {operationId}",{operationId:entry.operationId}));this.compactionOperations.set(entry.operationId,entry)}entry.type==="label"&&(entry.label?(this.labelsById.set(entry.targetId,entry.label),this.labelTimestampsById.set(entry.targetId,entry.timestamp)):(this.labelsById.delete(entry.targetId),this.labelTimestampsById.delete(entry.targetId)))}}_rewriteFile(){!this.persist||!this.sessionFile||(this.assertWritable(),this.storage.rewrite(this.sessionFile,this.fileEntries))}assertWritable(){!this.persist||!this.sessionFile||(this.storageWriterId??=randomUUID4(),this.storage.guard?.ensureWritable(this.sessionFile,this.storageWriterId))}isPersisted(){return this.persist}getCwd(){return this.cwd}getSessionDir(){return this.sessionDir}usesDefaultSessionDir(){return this.sessionDir===getDefaultSessionDirPath(this.cwd)}getSessionId(){return this.sessionId}getSessionFile(){return this.sessionFile}getRevision(){return{version:1,sessionId:this.sessionId,sequence:Math.max(0,this.fileEntries.length-1),leafId:this.leafId}}_hasConversation(){return this.fileEntries.some(e=>e.type==="message"&&(e.message.role==="user"||e.message.role==="assistant"))}_persist(entry){if(!(!this.persist||!this.sessionFile))if(this.assertWritable(),this.flushed)this.storage.append(this.sessionFile,entry);else{if(!this._hasConversation())return;this.storage.createExclusive(this.sessionFile,this.fileEntries),this.flushed=!0,this.notifySessionIndex(!0)}}notifySessionIndex(immediate){if(!this.persist||!this.flushed||!this.sessionFile||this.sessionDir!==getDefaultSessionDirPath(this.cwd))return;let fields=deriveSessionIndexFields(this.fileEntries);fields&&recordSessionUpdate({sessionPath:this.sessionFile,sessionId:fields.sessionId,cwd:fields.cwd,name:fields.name,parentSessionPath:fields.parentSessionPath,profileId:fields.profileId,profileVersion:fields.profileVersion,createdMs:fields.createdMs,modifiedMs:fields.modifiedMs,messageCount:fields.messageCount,firstMessage:fields.firstMessage,immediate})}_appendEntry(entry){let previousLeafId=this.leafId,previousFlushed=this.flushed,sessionFile=this.sessionFile,fileExisted=sessionFile!==void 0&&this.storage.exists(sessionFile),previousFileSize=fileExisted?this.storage.size(sessionFile):void 0;this.fileEntries.push(entry),this.byId.set(entry.id,entry),this.leafId=entry.id;try{this._persist(entry),previousFlushed&&this.notifySessionIndex(!1)}catch(error2){this.fileEntries.pop(),this.byId.get(entry.id)===entry&&this.byId.delete(entry.id),this.leafId=previousLeafId,this.flushed=previousFlushed;try{sessionFile&&previousFileSize!==void 0?this.storage.truncate(sessionFile,previousFileSize):sessionFile&&!fileExisted&&this.storage.exists(sessionFile)&&this.storage.remove(sessionFile)}catch(rollbackError){throw new AggregateError([error2,rollbackError],t("Session append failed and rollback failed"))}throw error2}}appendMessage(message){let entry={type:"message",id:generateId(this.byId),parentId:this.leafId,timestamp:new Date().toISOString(),message};return this._appendEntry(entry),entry.id}appendThinkingLevelChange(thinkingLevel){let entry={type:"thinking_level_change",id:generateId(this.byId),parentId:this.leafId,timestamp:new Date().toISOString(),thinkingLevel};return this._appendEntry(entry),entry.id}appendModelChange(provider,modelId){let entry={type:"model_change",id:generateId(this.byId),parentId:this.leafId,timestamp:new Date().toISOString(),provider,modelId};return this._appendEntry(entry),entry.id}appendCompaction(summary,firstKeptEntryId,tokensBefore,details,fromHook,usage){let entry={type:"compaction",id:generateId(this.byId),parentId:this.leafId,timestamp:new Date().toISOString(),summary,firstKeptEntryId,tokensBefore,details,usage,fromHook};return this._appendEntry(entry),entry.id}commitCompaction(request){this._validateCompactionCommitRequest(request);let previousOperation=this.compactionOperations.get(request.operationId);if(previousOperation){if(this._matchesCompactionCommitRequest(previousOperation,request))return{version:1,status:"replayed",entryId:previousOperation.id,revision:this._revisionAfterEntry(previousOperation)};throw new Error(t("operation_id_reused: {operationId}",{operationId:request.operationId}))}let currentRevision=this.getRevision();if(!sameSessionRevision(request.expectedRevision,currentRevision))return{version:1,status:"revision_conflict",currentRevision};if(!this.getBranch().some(entry2=>entry2.id===request.firstKeptEntryId))throw new Error(t("first_kept_entry_not_on_current_branch: {firstKeptEntryId}",{firstKeptEntryId:request.firstKeptEntryId}));let entry={type:"compaction",id:generateId(this.byId),parentId:this.leafId,timestamp:new Date().toISOString(),operationId:request.operationId,summary:request.summary,firstKeptEntryId:request.firstKeptEntryId,tokensBefore:request.tokensBefore,details:request.details,usage:request.usage,fromHook:request.fromHook};return this._appendEntry(entry),this.compactionOperations.set(request.operationId,entry),{version:1,status:"committed",entryId:entry.id,revision:this.getRevision()}}_validateCompactionCommitRequest(request){if(!request||typeof request!="object")throw new Error(t("Compaction commit request must be an object"));if(request.version!==1)throw new Error(t("Unsupported compaction commit request version"));if(typeof request.operationId!="string"||request.operationId.trim()==="")throw new Error(t("operationId must be a non-empty string"));if(typeof request.summary!="string"||request.summary.trim()==="")throw new Error(t("summary must be a non-empty string"));if(typeof request.firstKeptEntryId!="string"||request.firstKeptEntryId==="")throw new Error(t("firstKeptEntryId must be a non-empty string"));if(typeof request.tokensBefore!="number"||!Number.isFinite(request.tokensBefore)||request.tokensBefore<0)throw new Error(t("tokensBefore must be a non-negative finite number"));request.details!==void 0&&assertJsonSerializable(request.details,"details"),request.usage!==void 0&&assertJsonSerializable(request.usage,"usage");let revision=request.expectedRevision;if(revision?.version!==1||typeof revision.sessionId!="string"||revision.sessionId===""||!Number.isInteger(revision.sequence)||revision.sequence<0||revision.leafId!==null&&typeof revision.leafId!="string")throw new Error(t("expectedRevision must be a valid SessionRevisionV1"))}_matchesCompactionCommitRequest(entry,request){let entryIndex=this.fileEntries.indexOf(entry);if(entryIndex<=0)throw new Error(t("Compaction operation entry is missing: {entryId}",{entryId:entry.id}));return request.expectedRevision.version===1&&request.expectedRevision.sessionId===this.sessionId&&request.expectedRevision.sequence===entryIndex-1&&request.expectedRevision.leafId===entry.parentId&&request.summary===entry.summary&&request.firstKeptEntryId===entry.firstKeptEntryId&&request.tokensBefore===entry.tokensBefore&&request.fromHook===entry.fromHook&&isDeepStrictEqual(request.details,entry.details)&&isDeepStrictEqual(request.usage,entry.usage)}_revisionAfterEntry(entry){let entryIndex=this.fileEntries.indexOf(entry);if(entryIndex<=0)throw new Error(t("Compaction operation entry is missing: {entryId}",{entryId:entry.id}));return{version:1,sessionId:this.sessionId,sequence:entryIndex,leafId:entry.id}}appendCustomEntry(customType,data){let entry={type:"custom",customType,data,id:generateId(this.byId),parentId:this.leafId,timestamp:new Date().toISOString()};return this._appendEntry(entry),entry.id}appendSessionInfo(name){let sanitizedName=name.replace(/[\r\n]+/g," ").trim(),entry={type:"session_info",id:generateId(this.byId),parentId:this.leafId,timestamp:new Date().toISOString(),name:sanitizedName};return this._appendEntry(entry),this.flushed&&this.notifySessionIndex(!0),entry.id}getSessionName(){for(let i=this.fileEntries.length-1;i>=0;i--){let entry=this.fileEntries[i];if(entry.type==="session_info")return entry.name?.trim()||void 0}}appendCustomMessageEntry(customType,content,display,details){let entry={type:"custom_message",customType,content,display,details,id:generateId(this.byId),parentId:this.leafId,timestamp:new Date().toISOString()};return this._appendEntry(entry),entry.id}getLeafId(){return this.leafId}getLeafEntry(){return this.leafId?this.byId.get(this.leafId):void 0}getEntry(id){return this.byId.get(id)}getChildren(parentId){let children=[];for(let entry of this.byId.values())entry.parentId===parentId&&children.push(entry);return children}getLabel(id){return this.labelsById.get(id)}appendLabelChange(targetId,label){if(!this.byId.has(targetId))throw new Error(t("Entry {id} not found",{id:targetId}));let entry={type:"label",id:generateId(this.byId),parentId:this.leafId,timestamp:new Date().toISOString(),targetId,label};return this._appendEntry(entry),label?(this.labelsById.set(targetId,label),this.labelTimestampsById.set(targetId,entry.timestamp)):(this.labelsById.delete(targetId),this.labelTimestampsById.delete(targetId)),entry.id}getBranch(fromId){let path7=[],startId=fromId??this.leafId,current=startId?this.byId.get(startId):void 0;for(;current;)path7.push(current),current=current.parentId?this.byId.get(current.parentId):void 0;return path7.reverse(),path7}buildContextEntries(){return buildContextEntries(this.getEntries(),this.leafId,this.byId)}buildSessionContext(){return buildSessionContext(this.getEntries(),this.leafId,this.byId,this.entryProjections)}registerEntryProjection(projection){return this.entryProjections.push(projection),()=>{let index3=this.entryProjections.indexOf(projection);index3>=0&&this.entryProjections.splice(index3,1)}}getHeader(){let h=this.fileEntries.find(e=>e.type==="session");return h||null}getEntryCount(){return this.byId.size}getEntries(){return this.fileEntries.filter(e=>e.type!=="session")}getTree(){let entries=this.getEntries(),nodeMap=new Map,roots=[];for(let entry of entries){let label=this.labelsById.get(entry.id),labelTimestamp=this.labelTimestampsById.get(entry.id);nodeMap.set(entry.id,{entry,children:[],label,labelTimestamp})}for(let entry of entries){let node=nodeMap.get(entry.id);if(entry.parentId===null||entry.parentId===entry.id)roots.push(node);else{let parent=nodeMap.get(entry.parentId);parent?parent.children.push(node):roots.push(node)}}let stack=[...roots];for(;stack.length>0;){let node=stack.pop();node.children.sort((a,b2)=>new Date(a.entry.timestamp).getTime()-new Date(b2.entry.timestamp).getTime()),stack.push(...node.children)}return roots}branch(branchFromId){if(!this.byId.has(branchFromId))throw new Error(t("Entry {id} not found",{id:branchFromId}));this.leafId=branchFromId}resetLeaf(){this.leafId=null}branchWithSummary(branchFromId,summary,details,fromHook,usage){if(branchFromId!==null&&!this.byId.has(branchFromId))throw new Error(t("Entry {id} not found",{id:branchFromId}));let fromId=this.leafId??"root";this.leafId=branchFromId;let entry={type:"branch_summary",id:generateId(this.byId),parentId:branchFromId,timestamp:new Date().toISOString(),fromId,summary,details,usage,fromHook};return this._appendEntry(entry),entry.id}createBranchedSession(leafId){let previousSessionFile=this.sessionFile,path7=this.getBranch(leafId);if(path7.length===0)throw new Error(t("Entry {id} not found",{id:leafId}));let pathWithoutLabels=[],replacementByLabelId=new Map,pendingLabelIds=[],pathParentId=null;for(let entry of path7){if(entry.type==="label"){pendingLabelIds.push(entry.id);continue}for(let labelId of pendingLabelIds)replacementByLabelId.set(labelId,entry.id);pendingLabelIds.length=0,pathWithoutLabels.push(entry.type==="compaction"?{...entry,parentId:pathParentId,firstKeptEntryId:replacementByLabelId.get(entry.firstKeptEntryId)??entry.firstKeptEntryId}:{...entry,parentId:pathParentId}),pathParentId=entry.id}let newSessionId=createSessionId(),timestamp=new Date().toISOString(),fileTimestamp=timestamp.replace(/[:.]/g,"-"),newSessionFile=join19(this.getSessionDir(),`${fileTimestamp}_${newSessionId}.jsonl`),header={type:"session",version:CURRENT_SESSION_VERSION,id:newSessionId,timestamp,cwd:this.cwd,parentSession:this.persist?previousSessionFile:void 0},pathEntryIds=new Set(pathWithoutLabels.map(e=>e.id)),labelsToWrite=[];for(let[targetId,label]of this.labelsById)pathEntryIds.has(targetId)&&labelsToWrite.push({targetId,label,timestamp:this.labelTimestampsById.get(targetId)});if(this.persist){let parentId2=pathWithoutLabels[pathWithoutLabels.length-1]?.id||null,labelEntries2=[];for(let{targetId,label,timestamp:labelTimestamp}of labelsToWrite){let labelEntry={type:"label",id:generateId(new Set(pathEntryIds)),parentId:parentId2,timestamp:labelTimestamp,targetId,label};pathEntryIds.add(labelEntry.id),labelEntries2.push(labelEntry),parentId2=labelEntry.id}return this.fileEntries=[header,...pathWithoutLabels,...labelEntries2],this.sessionId=newSessionId,this.sessionFile=newSessionFile,this._buildIndex(),this._hasConversation()?(this._rewriteFile(),this.flushed=!0,this.notifySessionIndex(!0)):this.flushed=!1,newSessionFile}let labelEntries=[],parentId=pathWithoutLabels[pathWithoutLabels.length-1]?.id||null;for(let{targetId,label,timestamp:labelTimestamp}of labelsToWrite){let labelEntry={type:"label",id:generateId(new Set([...pathEntryIds,...labelEntries.map(e=>e.id)])),parentId,timestamp:labelTimestamp,targetId,label};labelEntries.push(labelEntry),parentId=labelEntry.id}this.fileEntries=[header,...pathWithoutLabels,...labelEntries],this.sessionId=newSessionId,this._buildIndex()}static create(cwd,sessionDir,options,storage=FileSessionStorageProvider.instance){let dir=sessionDir?normalizePath(sessionDir):getDefaultSessionDir(cwd);return new _SessionManager(cwd,dir,void 0,!0,options,void 0,storage)}static open(path7,sessionDir,cwdOverride,storage=FileSessionStorageProvider.instance){let resolvedPath=resolvePath(path7),header=null,preloadedFileEntries;if(cwdOverride===void 0&&storage.exists(resolvedPath))try{header=storage.readHeader(resolvedPath)}catch(error2){if(!(error2 instanceof SessionHeaderScanLimitError))throw error2;preloadedFileEntries=storage.loadEntries(resolvedPath);let firstEntry=preloadedFileEntries[0];header=firstEntry?.type==="session"?firstEntry:null}let cwd=cwdOverride??(header?getSessionHeaderCwd(header):void 0)??process.cwd(),dir=sessionDir?normalizePath(sessionDir):resolve3(resolvedPath,"..");return new _SessionManager(cwd,dir,resolvedPath,!0,void 0,preloadedFileEntries,storage)}static continueRecent(cwd,sessionDir,storage=FileSessionStorageProvider.instance){let dir=sessionDir?normalizePath(sessionDir):getDefaultSessionDir(cwd),filterCwd=sessionDir!==void 0&&dir!==getDefaultSessionDirPath(cwd),mostRecent=findMostRecentSessionWithStorage(storage,dir,filterCwd?cwd:void 0);return mostRecent?new _SessionManager(cwd,dir,mostRecent,!0,void 0,void 0,storage):new _SessionManager(cwd,dir,void 0,!0,void 0,void 0,storage)}static inMemory(cwd=process.cwd(),options){return new _SessionManager(cwd,"",void 0,!1,options)}static forkFrom(sourcePath,targetCwd,sessionDir,options,storage=FileSessionStorageProvider.instance){let resolvedSourcePath=resolvePath(sourcePath),resolvedTargetCwd=resolvePath(targetCwd),sourceEntries=storage.loadEntries(resolvedSourcePath);if(sourceEntries.length===0)throw new Error(t("Cannot fork: source session file is empty or invalid: {path}",{path:resolvedSourcePath}));if(!sourceEntries.find(e=>e.type==="session"))throw new Error(t("Cannot fork: source session has no header: {path}",{path:resolvedSourcePath}));let dir=sessionDir?normalizePath(sessionDir):getDefaultSessionDir(resolvedTargetCwd);storage.ensureDir(dir),options?.id!==void 0&&assertValidSessionId(options.id);let newSessionId=options?.id??createSessionId(),timestamp=new Date().toISOString(),fileTimestamp=timestamp.replace(/[:.]/g,"-"),newSessionFile=join19(dir,`${fileTimestamp}_${newSessionId}.jsonl`),forkedEntries=[{type:"session",version:CURRENT_SESSION_VERSION,id:newSessionId,timestamp,cwd:resolvedTargetCwd,parentSession:resolvedSourcePath},...sourceEntries.filter(entry=>entry.type!=="session")];if(storage.createExclusive(newSessionFile,forkedEntries),dir===getDefaultSessionDirPath(resolvedTargetCwd)){let fields=deriveSessionIndexFields(forkedEntries);fields&&recordSessionUpdate({sessionPath:newSessionFile,sessionId:fields.sessionId,cwd:fields.cwd,name:fields.name,parentSessionPath:fields.parentSessionPath,profileId:fields.profileId,profileVersion:fields.profileVersion,createdMs:fields.createdMs,modifiedMs:fields.modifiedMs,messageCount:fields.messageCount,firstMessage:fields.firstMessage,immediate:!0})}return new _SessionManager(resolvedTargetCwd,dir,newSessionFile,!0,void 0,void 0,storage)}static findById(cwd,id,sessionDir,storage=FileSessionStorageProvider.instance){let dir=sessionDir?normalizePath(sessionDir):getDefaultSessionDir(cwd),filterCwd=sessionDir!==void 0&&dir!==getDefaultSessionDirPath(cwd),resolvedCwd=resolvePath(cwd);try{for(let path7 of storage.listSessionFiles(dir)){let header=readSessionHeaderForDiscovery(storage,path7);if(header?.id===id&&!(filterCwd&&!sessionCwdMatches(getSessionHeaderCwd(header),resolvedCwd)))return path7}}catch{}}static async list(cwd,sessionDir,onProgress,signal){let dir=sessionDir?normalizePath(sessionDir):getDefaultSessionDir(cwd),filterCwd=sessionDir!==void 0&&dir!==getDefaultSessionDirPath(cwd),resolvedCwd=resolvePath(cwd),includeSession=session=>!filterCwd||sessionCwdMatches(session.cwd,resolvedCwd),sessions=(await listSessionsFromDir(dir,onProgress?(loaded,total,partialSessions)=>onProgress(loaded,total,partialSessions?.filter(includeSession)):void 0,signal)).filter(includeSession);return sortSessionInfos(sessions)}static async listAll(sessionDirOrOnProgress,onProgressOrSignal,signal){let customSessionDir=typeof sessionDirOrOnProgress=="string"?normalizePath(sessionDirOrOnProgress):void 0,progress=typeof sessionDirOrOnProgress=="function"?sessionDirOrOnProgress:typeof onProgressOrSignal=="function"?onProgressOrSignal:void 0,abortSignal=typeof sessionDirOrOnProgress=="string"||typeof onProgressOrSignal=="function"?signal:onProgressOrSignal??signal;if(abortSignal?.throwIfAborted(),customSessionDir)return sortSessionInfos(await listSessionsFromDir(customSessionDir,progress,abortSignal));let sessionsDir=getSessionsDir(),viaIndex=await listSessionsViaIndex({sessionsRoot:sessionsDir,buildInfo:path7=>buildSessionInfo(path7,abortSignal),scanAll:()=>scanAllSessionsFromRoot(sessionsDir,progress,abortSignal),onHit:sessions=>progress?.(sessions.length,sessions.length,sessions),signal:abortSignal});return viaIndex!==void 0?viaIndex:scanAllSessionsFromRoot(sessionsDir,progress,abortSignal)}};function createFileOps(){return{read:new Set,written:new Set,edited:new Set}}function extractFileOpsFromMessage(message,fileOps){if(message.role==="assistant"&&!(!("content"in message)||!Array.isArray(message.content)))for(let block of message.content){if(typeof block!="object"||block===null||!("type"in block)||block.type!=="toolCall"||!("arguments"in block)||!("name"in block))continue;let args=block.arguments;if(!args)continue;let path7=typeof args.path=="string"?args.path:void 0;if(path7)switch(block.name){case"read":fileOps.read.add(path7);break;case"write":fileOps.written.add(path7);break;case"edit":fileOps.edited.add(path7);break}}}function computeFileLists(fileOps){let modified=new Set([...fileOps.edited,...fileOps.written]),readOnly=[...fileOps.read].filter(f=>!modified.has(f)).sort(),modifiedFiles=[...modified].sort();return{readFiles:readOnly,modifiedFiles}}function formatFileOperations(readFiles,modifiedFiles){let sections=[];return readFiles.length>0&§ions.push(`<read-files>
|
|
466
466
|
${readFiles.join(`
|
|
467
467
|
`)}
|
|
468
468
|
</read-files>`),modifiedFiles.length>0&§ions.push(`<modified-files>
|
|
@@ -481,7 +481,7 @@ ${sections.join(`
|
|
|
481
481
|
`:"")+keptParts.join(`
|
|
482
482
|
|
|
483
483
|
`),omittedMessages}}function serializeMessageParts(msg){let parts=[];if(msg.role==="user"){let content=contentText(msg.content,"");content&&parts.push(`[User]: ${content}`)}else if(msg.role==="assistant"){let thinkingParts=[],toolCalls=[];for(let block of msg.content)if(block.type==="thinking")thinkingParts.push(block.thinking);else if(block.type==="toolCall"){let args=block.arguments,argsStr=Object.entries(args).map(([k,v2])=>`${k}=${JSON.stringify(v2)}`).join(", ");toolCalls.push(`${block.name}(${argsStr})`)}thinkingParts.length>0&&parts.push(`[Assistant thinking]: ${thinkingParts.join(`
|
|
484
|
-
`)}`),msg.content.some(block=>block.type==="text")&&parts.push(`[Assistant]: ${contentText(msg.content)}`),toolCalls.length>0&&parts.push(`[Assistant tool calls]: ${toolCalls.join("; ")}`)}else if(msg.role==="toolResult"){let content=contentText(msg.content,"");content&&parts.push(`[Tool result]: ${truncateForSummary(content,TOOL_RESULT_MAX_CHARS)}`)}return parts}function startNoopSpan(_options,callback){try{return Promise.resolve(callback(noopTelemetrySpan))}catch(error2){return Promise.reject(error2)}}var noopTelemetrySpan={startSpan:startNoopSpan,addEvent:()=>{},setAttributes:()=>{},setStatus:()=>{}};Object.freeze(noopTelemetrySpan);var defaultStreamFn;function setDefaultStreamFn(streamFn){defaultStreamFn=streamFn}function getDefaultStreamFn(){if(!defaultStreamFn)throw new Error("No default stream function configured. Pass streamFn explicitly or call setDefaultStreamFn().");return defaultStreamFn}async function runAgentLoop(prompts,context,config,emit,signal,streamFn){let newMessages=[...prompts],currentContext={...context,messages:[...context.messages,...prompts]};await emit({type:"agent_start"}),await emit({type:"turn_start"});for(let prompt of prompts)await emit({type:"message_start",message:prompt}),await emit({type:"message_end",message:prompt});return await runLoop(currentContext,newMessages,config,signal,emit,streamFn??getDefaultStreamFn()),newMessages}async function runAgentLoopContinue(context,config,emit,signal,streamFn){if(context.messages.length===0)throw new Error("Cannot continue: no messages in context");if(context.messages[context.messages.length-1].role==="assistant")throw new Error("Cannot continue from message role: assistant");let newMessages=[],currentContext={...context};return await emit({type:"agent_start"}),await emit({type:"turn_start"}),await runLoop(currentContext,newMessages,config,signal,emit,streamFn??getDefaultStreamFn()),newMessages}async function runLoop(initialContext,newMessages,initialConfig,signal,emit,streamFunction){let currentContext=initialContext,config=initialConfig,lastCompletedTurn,pendingMessages=await config.getSteeringMessages?.()||[];for(;;){let hasMoreToolCalls=!0;for(;hasMoreToolCalls||pendingMessages.length>0;){if(lastCompletedTurn){let nextTurnSnapshot=await config.prepareNextTurn?.(lastCompletedTurn);nextTurnSnapshot&&(currentContext=nextTurnSnapshot.context??currentContext,config={...config,model:nextTurnSnapshot.model??config.model,reasoning:nextTurnSnapshot.thinkingLevel===void 0?config.reasoning:nextTurnSnapshot.thinkingLevel==="off"?void 0:nextTurnSnapshot.thinkingLevel}),pendingMessages.length===0&&(pendingMessages=await config.getSteeringMessages?.()||[]),await emit({type:"turn_start"})}if(pendingMessages.length>0){for(let message2 of pendingMessages)await emit({type:"message_start",message:message2}),await emit({type:"message_end",message:message2}),currentContext.messages.push(message2),newMessages.push(message2);pendingMessages=[]}let message=await streamAssistantResponse(currentContext,config,signal,emit,streamFunction);if(newMessages.push(message),message.stopReason==="error"||message.stopReason==="aborted"){await emit({type:"turn_end",message,toolResults:[]}),await emit({type:"agent_end",messages:newMessages});return}let toolCalls=message.content.filter(c2=>c2.type==="toolCall"),toolResults=[];if(hasMoreToolCalls=!1,toolCalls.length>0){let executedToolBatch=message.stopReason==="length"?await failToolCallsFromTruncatedMessage(toolCalls,emit):await executeToolCalls(currentContext,message,config,signal,emit);toolResults.push(...executedToolBatch.messages),hasMoreToolCalls=!executedToolBatch.terminate;for(let result of toolResults)currentContext.messages.push(result),newMessages.push(result)}if(await emit({type:"turn_end",message,toolResults}),lastCompletedTurn={message,toolResults,context:currentContext,newMessages},await config.shouldStopAfterTurn?.(lastCompletedTurn)){await emit({type:"agent_end",messages:newMessages});return}pendingMessages=await config.getSteeringMessages?.()||[]}let followUpMessages=await config.getFollowUpMessages?.()||[];if(followUpMessages.length>0){pendingMessages=followUpMessages;continue}break}await emit({type:"agent_end",messages:newMessages})}async function streamAssistantResponse(context,config,signal,emit,streamFunction){let messages=context.messages;config.transformContext&&(messages=await config.transformContext(messages,signal));let llmMessages=await config.convertToLlm(messages),llmContext={systemPrompt:context.systemPrompt,messages:llmMessages,tools:context.tools},resolvedApiKey=(config.getApiKey?await config.getApiKey(config.model.provider):void 0)||config.apiKey,response=await streamFunction(config.model,llmContext,{...config,apiKey:resolvedApiKey,signal}),partialMessage=null,addedPartial=!1;for await(let event of response)switch(event.type){case"start":partialMessage=event.partial,context.messages.push(partialMessage),addedPartial=!0,await emit({type:"message_start",message:{...partialMessage}});break;case"text_start":case"text_delta":case"text_end":case"thinking_start":case"thinking_delta":case"thinking_end":case"toolcall_start":case"toolcall_delta":case"toolcall_end":partialMessage&&(partialMessage=event.partial,context.messages[context.messages.length-1]=partialMessage,await emit({type:"message_update",assistantMessageEvent:event,message:{...partialMessage}}));break;case"done":case"error":{let finalMessage2=await response.result();return addedPartial?context.messages[context.messages.length-1]=finalMessage2:context.messages.push(finalMessage2),addedPartial||await emit({type:"message_start",message:{...finalMessage2}}),await emit({type:"message_end",message:finalMessage2}),finalMessage2}}let finalMessage=await response.result();return addedPartial?context.messages[context.messages.length-1]=finalMessage:(context.messages.push(finalMessage),await emit({type:"message_start",message:{...finalMessage}})),await emit({type:"message_end",message:finalMessage}),finalMessage}async function failToolCallsFromTruncatedMessage(toolCalls,emit){let messages=[];for(let toolCall of toolCalls){await emit({type:"tool_execution_start",toolCallId:toolCall.id,toolName:toolCall.name,args:toolCall.arguments});let finalized={toolCall,result:createErrorToolResult(`Tool call "${toolCall.name}" was not executed: the response hit the output token limit, so its arguments may be truncated. Re-issue the tool call with complete arguments.`),isError:!0};await emitToolExecutionEnd(finalized,emit);let toolResultMessage=createToolResultMessage(finalized);await emitToolResultMessage(toolResultMessage,emit),messages.push(toolResultMessage)}return{messages,terminate:!1}}async function failUnexecutedToolCalls(toolCalls,emit){let messages=[];for(let toolCall of toolCalls){await emit({type:"tool_execution_start",toolCallId:toolCall.id,toolName:toolCall.name,args:toolCall.arguments});let finalized={toolCall,result:createErrorToolResult("Tool call was not executed: the turn was interrupted by the user."),isError:!0};await emitToolExecutionEnd(finalized,emit);let toolResultMessage=createToolResultMessage(finalized);await emitToolResultMessage(toolResultMessage,emit),messages.push(toolResultMessage)}return messages}async function executeToolCalls(currentContext,assistantMessage,config,signal,emit){let toolCalls=assistantMessage.content.filter(c2=>c2.type==="toolCall");if(config.toolExecution==="sequential")return executeToolCallsSequential(currentContext,assistantMessage,toolCalls,config,signal,emit);let groups=groupToolCallsByExecutionMode(currentContext,toolCalls),messages=[],groupTerminates=[],groupIndex=0;for(;groupIndex<groups.length&&!signal?.aborted;groupIndex++){let group=groups[groupIndex],executed=group.sequential?await executeToolCallsSequential(currentContext,assistantMessage,group.toolCalls,config,signal,emit):await executeToolCallsParallel(currentContext,assistantMessage,group.toolCalls,config,signal,emit);messages.push(...executed.messages),groupTerminates.push(executed.terminate)}if(groupIndex<groups.length){let remaining=groups.slice(groupIndex).flatMap(group=>group.toolCalls);messages.push(...await failUnexecutedToolCalls(remaining,emit))}return{messages,terminate:groupTerminates.length>0&&groupTerminates.every(Boolean)}}function groupToolCallsByExecutionMode(currentContext,toolCalls){let groups=[];for(let toolCall of toolCalls){let sequential=currentContext.tools?.find(t2=>t2.name===toolCall.name)?.executionMode==="sequential",lastGroup=groups[groups.length-1];!sequential&&lastGroup&&!lastGroup.sequential?lastGroup.toolCalls.push(toolCall):groups.push({sequential,toolCalls:[toolCall]})}return groups}async function executeToolCallsSequential(currentContext,assistantMessage,toolCalls,config,signal,emit){let finalizedCalls=[],messages=[];for(let toolCall of toolCalls){await emit({type:"tool_execution_start",toolCallId:toolCall.id,toolName:toolCall.name,args:toolCall.arguments});let preparation=await prepareToolCall(currentContext,assistantMessage,toolCall,config,signal),finalized;if(preparation.kind==="immediate")finalized={toolCall,result:preparation.result,isError:preparation.isError};else{let executed=await executePreparedToolCall(preparation,signal,emit);finalized=await finalizeExecutedToolCall(currentContext,assistantMessage,preparation,executed,config,signal)}await emitToolExecutionEnd(finalized,emit);let toolResultMessage=createToolResultMessage(finalized);if(await emitToolResultMessage(toolResultMessage,emit),finalizedCalls.push(finalized),messages.push(toolResultMessage),signal?.aborted)break}return messages.length<toolCalls.length&&messages.push(...await failUnexecutedToolCalls(toolCalls.slice(messages.length),emit)),{messages,terminate:shouldTerminateToolBatch(finalizedCalls)}}async function executeToolCallsParallel(currentContext,assistantMessage,toolCalls,config,signal,emit){let finalizedCalls=[],index3=0;for(;index3<toolCalls.length;index3++){let toolCall=toolCalls[index3];await emit({type:"tool_execution_start",toolCallId:toolCall.id,toolName:toolCall.name,args:toolCall.arguments});let preparation=await prepareToolCall(currentContext,assistantMessage,toolCall,config,signal);if(preparation.kind==="immediate"){let finalized={toolCall,result:preparation.result,isError:preparation.isError};if(await emitToolExecutionEnd(finalized,emit),finalizedCalls.push(finalized),signal?.aborted){index3++;break}continue}if(finalizedCalls.push(async()=>{if(signal?.aborted){let finalized2={toolCall,result:createErrorToolResult("Operation aborted"),isError:!0};return await emitToolExecutionEnd(finalized2,emit),finalized2}let executed=await executePreparedToolCall(preparation,signal,emit),finalized=await finalizeExecutedToolCall(currentContext,assistantMessage,preparation,executed,config,signal);return await emitToolExecutionEnd(finalized,emit),finalized}),signal?.aborted){index3++;break}}let orderedFinalizedCalls=await Promise.all(finalizedCalls.map(entry=>typeof entry=="function"?entry():Promise.resolve(entry))),messages=[];for(let finalized of orderedFinalizedCalls){let toolResultMessage=createToolResultMessage(finalized);await emitToolResultMessage(toolResultMessage,emit),messages.push(toolResultMessage)}return index3<toolCalls.length&&messages.push(...await failUnexecutedToolCalls(toolCalls.slice(index3),emit)),{messages,terminate:shouldTerminateToolBatch(orderedFinalizedCalls)}}function shouldTerminateToolBatch(finalizedCalls){return finalizedCalls.length>0&&finalizedCalls.every(finalized=>finalized.result.terminate===!0)}function prepareToolCallArguments(tool,toolCall){if(!tool.prepareArguments)return toolCall;let preparedArguments=tool.prepareArguments(toolCall.arguments);return preparedArguments===toolCall.arguments?toolCall:{...toolCall,arguments:preparedArguments}}async function prepareToolCall(currentContext,assistantMessage,toolCall,config,signal){let tool=currentContext.tools?.find(t2=>t2.name===toolCall.name);if(!tool)return{kind:"immediate",result:createErrorToolResult(`Tool ${toolCall.name} not found`),isError:!0};try{let preparedToolCall=prepareToolCallArguments(tool,toolCall),validatedArgs=validateToolArguments(tool,preparedToolCall);if(config.beforeToolCall){let beforeResult=await config.beforeToolCall({assistantMessage,toolCall,args:validatedArgs,context:currentContext},signal);if(signal?.aborted)return{kind:"immediate",result:createErrorToolResult("Operation aborted"),isError:!0};if(beforeResult?.block){let result=createErrorToolResult(beforeResult.reason||"Tool execution was blocked");return beforeResult.terminate===!0&&(result.terminate=!0),{kind:"immediate",result,isError:!0}}beforeResult?.args!==void 0&&(validatedArgs=validateToolArguments(tool,{...preparedToolCall,arguments:beforeResult.args}))}return signal?.aborted?{kind:"immediate",result:createErrorToolResult("Operation aborted"),isError:!0}:{kind:"prepared",toolCall,tool,args:validatedArgs}}catch(error2){return{kind:"immediate",result:createErrorToolResult(error2 instanceof Error?error2.message:String(error2)),isError:!0}}}async function executePreparedToolCall(prepared,signal,emit){let updateEvents=[],acceptingUpdates=!0;try{let result=await prepared.tool.execute(prepared.toolCall.id,prepared.args,signal,partialResult=>{acceptingUpdates&&updateEvents.push(Promise.resolve(emit({type:"tool_execution_update",toolCallId:prepared.toolCall.id,toolName:prepared.toolCall.name,args:prepared.toolCall.arguments,partialResult})))});return acceptingUpdates=!1,await Promise.all(updateEvents),{result,isError:!1}}catch(error2){return acceptingUpdates=!1,await Promise.all(updateEvents),{result:createErrorToolResult(error2 instanceof Error?error2.message:String(error2)),isError:!0}}finally{acceptingUpdates=!1}}async function finalizeExecutedToolCall(currentContext,assistantMessage,prepared,executed,config,signal){let result=executed.result,isError=executed.isError;if(config.afterToolCall)try{let afterResult=await config.afterToolCall({assistantMessage,toolCall:prepared.toolCall,args:prepared.args,result,isError,context:currentContext},signal);afterResult&&(result={...result,content:afterResult.content??result.content,details:afterResult.details??result.details,usage:afterResult.usage??result.usage,terminate:afterResult.terminate??result.terminate},isError=afterResult.isError??isError)}catch(error2){result=createErrorToolResult(error2 instanceof Error?error2.message:String(error2)),isError=!0}return{toolCall:prepared.toolCall,result,isError}}function createErrorToolResult(message){return{content:[{type:"text",text:message}],details:{}}}async function emitToolExecutionEnd(finalized,emit){await emit({type:"tool_execution_end",toolCallId:finalized.toolCall.id,toolName:finalized.toolCall.name,result:finalized.result,isError:finalized.isError})}function createToolResultMessage(finalized){return{role:"toolResult",toolCallId:finalized.toolCall.id,toolName:finalized.toolCall.name,content:finalized.result.content??[],details:finalized.result.details,usage:finalized.result.usage,...finalized.result.addedToolNames?.length?{addedToolNames:finalized.result.addedToolNames}:{},isError:finalized.isError,timestamp:Date.now()}}async function emitToolResultMessage(toolResultMessage,emit){await emit({type:"message_start",message:toolResultMessage}),await emit({type:"message_end",message:toolResultMessage})}function defaultConvertToLlm(messages){return messages.filter(message=>message.role==="user"||message.role==="assistant"||message.role==="toolResult")}var EMPTY_USAGE={input:0,output:0,cacheRead:0,cacheWrite:0,totalTokens:0,cost:{input:0,output:0,cacheRead:0,cacheWrite:0,total:0}},DEFAULT_MODEL={id:"unknown",name:"unknown",api:"unknown",provider:"unknown",baseUrl:"",reasoning:!1,input:[],cost:{input:0,output:0,cacheRead:0,cacheWrite:0},contextWindow:0,maxTokens:0};function createMutableAgentState(initialState){let tools=initialState?.tools?.slice()??[],messages=initialState?.messages?.slice()??[];return{systemPrompt:initialState?.systemPrompt??"",model:initialState?.model??DEFAULT_MODEL,thinkingLevel:initialState?.thinkingLevel??"off",get tools(){return tools},set tools(nextTools){tools=nextTools.slice()},get messages(){return messages},set messages(nextMessages){messages=nextMessages.slice()},isStreaming:!1,streamingMessage:void 0,pendingToolCalls:new Set,errorMessage:void 0}}var PendingMessageQueue=class{messages=[];mode;constructor(mode){this.mode=mode}enqueue(message){this.messages.push(message)}hasItems(){return this.messages.length>0}drain(){if(this.mode==="all"){let drained=this.messages.slice();return this.messages=[],drained}let first=this.messages[0];return first?(this.messages=this.messages.slice(1),[first]):[]}peek(){return this.messages.slice()}reorder(from,to){if(from===to||from<0||to<0||from>=this.messages.length||to>=this.messages.length)return!1;let removed=this.messages.splice(from,1);return this.messages.splice(to,0,...removed),!0}removeAt(index3){if(!(index3<0||index3>=this.messages.length))return this.messages.splice(index3,1)[0]}clear(){this.messages=[]}},Agent=class{_state;listeners=new Set;steeringQueue;followUpQueue;convertToLlm;transformContext;streamFunction;getApiKey;onPayload;onResponse;beforeToolCall;afterToolCall;shouldStopAfterTurn;prepareNextTurn;prepareNextTurnWithContext;activeRun;sessionId;thinkingBudgets;transport;maxRetryDelayMs;toolExecution;constructor(options){let runtimeOptions=options??{};this._state=createMutableAgentState(runtimeOptions.initialState),this.convertToLlm=runtimeOptions.convertToLlm??defaultConvertToLlm,this.transformContext=runtimeOptions.transformContext,this.streamFunction=runtimeOptions.streamFn??getDefaultStreamFn(),this.getApiKey=runtimeOptions.getApiKey,this.onPayload=runtimeOptions.onPayload,this.onResponse=runtimeOptions.onResponse,this.beforeToolCall=runtimeOptions.beforeToolCall,this.afterToolCall=runtimeOptions.afterToolCall,this.shouldStopAfterTurn=runtimeOptions.shouldStopAfterTurn,this.prepareNextTurn=runtimeOptions.prepareNextTurn,this.prepareNextTurnWithContext=runtimeOptions.prepareNextTurnWithContext,this.steeringQueue=new PendingMessageQueue(runtimeOptions.steeringMode??"one-at-a-time"),this.followUpQueue=new PendingMessageQueue(runtimeOptions.followUpMode??"one-at-a-time"),this.sessionId=runtimeOptions.sessionId,this.thinkingBudgets=runtimeOptions.thinkingBudgets,this.transport=runtimeOptions.transport??"auto",this.maxRetryDelayMs=runtimeOptions.maxRetryDelayMs,this.toolExecution=runtimeOptions.toolExecution??"parallel"}subscribe(listener){return this.listeners.add(listener),()=>this.listeners.delete(listener)}get state(){return this._state}set steeringMode(mode){this.steeringQueue.mode=mode}get steeringMode(){return this.steeringQueue.mode}set followUpMode(mode){this.followUpQueue.mode=mode}get followUpMode(){return this.followUpQueue.mode}steer(message){this.steeringQueue.enqueue(message)}followUp(message){this.followUpQueue.enqueue(message)}peekSteeringQueue(){return this.steeringQueue.peek()}peekFollowUpQueue(){return this.followUpQueue.peek()}reorderQueuedMessages(queue,from,to){return this.queueFor(queue).reorder(from,to)}removeQueuedMessage(queue,index3){return this.queueFor(queue).removeAt(index3)??null}clearSteeringQueue(){this.steeringQueue.clear()}clearFollowUpQueue(){this.followUpQueue.clear()}clearAllQueues(){this.clearSteeringQueue(),this.clearFollowUpQueue()}hasQueuedMessages(){return this.steeringQueue.hasItems()||this.followUpQueue.hasItems()}get signal(){return this.activeRun?.abortController.signal}abort(){this.activeRun?.abortController.abort()}waitForIdle(){return this.activeRun?.promise??Promise.resolve()}reset(){if(this.activeRun)throw new Error("Agent is already processing. Wait for completion before resetting.");this._state.messages=[],this._state.isStreaming=!1,this._state.streamingMessage=void 0,this._state.pendingToolCalls=new Set,this._state.errorMessage=void 0,this.clearFollowUpQueue(),this.clearSteeringQueue()}async prompt(input,images){if(this.activeRun)throw new Error("Agent is already processing a prompt. Use steer() or followUp() to queue messages, or wait for completion.");let messages=this.normalizePromptInput(input,images);await this.runPromptMessages(messages)}async continue(){if(this.activeRun)throw new Error("Agent is already processing. Wait for completion before continuing.");let lastMessage=this._state.messages[this._state.messages.length-1];if(!lastMessage)throw new Error("No messages to continue from");if(lastMessage.role==="assistant"){let queuedSteering=this.steeringQueue.drain();if(queuedSteering.length>0){await this.runPromptMessages(queuedSteering,{skipInitialSteeringPoll:!0});return}let queuedFollowUps=this.followUpQueue.drain();if(queuedFollowUps.length>0){await this.runPromptMessages(queuedFollowUps);return}throw new Error("Cannot continue from message role: assistant")}await this.runContinuation()}normalizePromptInput(input,images){if(Array.isArray(input))return input;if(typeof input!="string")return[input];let content=[{type:"text",text:input}];return images&&images.length>0&&content.push(...images),[{role:"user",content,timestamp:Date.now()}]}queueFor(queue){return queue==="steer"?this.steeringQueue:this.followUpQueue}async runPromptMessages(messages,options={}){await this.runWithLifecycle(async signal=>{await runAgentLoop(messages,this.createContextSnapshot(),this.createLoopConfig(options),event=>this.processEvents(event),signal,this.streamFunction)})}async runContinuation(){await this.runWithLifecycle(async signal=>{await runAgentLoopContinue(this.createContextSnapshot(),this.createLoopConfig(),event=>this.processEvents(event),signal,this.streamFunction)})}createContextSnapshot(){return{systemPrompt:this._state.systemPrompt,messages:this._state.messages.slice(),tools:this._state.tools.slice()}}createLoopConfig(options={}){let skipInitialSteeringPoll=options.skipInitialSteeringPoll===!0,shouldStopAfterTurn=this.shouldStopAfterTurn;return{model:this._state.model,reasoning:this._state.thinkingLevel==="off"?void 0:this._state.thinkingLevel,sessionId:this.sessionId,onPayload:this.onPayload,onResponse:this.onResponse,transport:this.transport,thinkingBudgets:this.thinkingBudgets,maxRetryDelayMs:this.maxRetryDelayMs,toolExecution:this.toolExecution,beforeToolCall:this.beforeToolCall,afterToolCall:this.afterToolCall,shouldStopAfterTurn:shouldStopAfterTurn?async context=>await shouldStopAfterTurn(context,this.signal):void 0,prepareNextTurn:this.prepareNextTurnWithContext||this.prepareNextTurn?async context=>this.prepareNextTurnWithContext?await this.prepareNextTurnWithContext(context,this.signal):await this.prepareNextTurn?.(this.signal):void 0,convertToLlm:this.convertToLlm,transformContext:this.transformContext,getApiKey:this.getApiKey,getSteeringMessages:async()=>skipInitialSteeringPoll?(skipInitialSteeringPoll=!1,[]):this.steeringQueue.drain(),getFollowUpMessages:async()=>this.followUpQueue.drain()}}async runWithLifecycle(executor){if(this.activeRun)throw new Error("Agent is already processing.");let abortController=new AbortController,resolvePromise=()=>{},promise=new Promise(resolve5=>{resolvePromise=resolve5});this.activeRun={promise,resolve:resolvePromise,abortController},this._state.isStreaming=!0,this._state.streamingMessage=void 0,this._state.errorMessage=void 0;try{await executor(abortController.signal)}catch(error2){await this.handleRunFailure(error2,abortController.signal.aborted)}finally{this.finishRun()}}async handleRunFailure(error2,aborted){let failureMessage={role:"assistant",content:[{type:"text",text:""}],api:this._state.model.api,provider:this._state.model.provider,model:this._state.model.id,usage:EMPTY_USAGE,stopReason:aborted?"aborted":"error",errorMessage:error2 instanceof Error?error2.message:String(error2),timestamp:Date.now()};await this.processEvents({type:"message_start",message:failureMessage}),await this.processEvents({type:"message_end",message:failureMessage}),await this.processEvents({type:"turn_end",message:failureMessage,toolResults:[]}),await this.processEvents({type:"agent_end",messages:[failureMessage]})}finishRun(){this._state.isStreaming=!1,this._state.streamingMessage=void 0,this._state.pendingToolCalls=new Set,this.activeRun?.resolve(),this.activeRun=void 0}async processEvents(event){switch(event.type){case"message_start":this._state.streamingMessage=event.message;break;case"message_update":this._state.streamingMessage=event.message;break;case"message_end":this._state.streamingMessage=void 0,this._state.messages.push(event.message);break;case"tool_execution_start":{let pendingToolCalls=new Set(this._state.pendingToolCalls);pendingToolCalls.add(event.toolCallId),this._state.pendingToolCalls=pendingToolCalls;break}case"tool_execution_end":{let pendingToolCalls=new Set(this._state.pendingToolCalls);pendingToolCalls.delete(event.toolCallId),this._state.pendingToolCalls=pendingToolCalls;break}case"turn_end":event.message.role==="assistant"&&event.message.errorMessage&&(this._state.errorMessage=event.message.errorMessage);break;case"agent_end":this._state.streamingMessage=void 0;break}let signal=this.activeRun?.abortController.signal;if(!signal)throw new Error("Agent listener invoked outside active run");for(let listener of this.listeners)await listener(event,signal)}};function TaggedError(tag){class TaggedErrorClass extends Error{_tag=tag;constructor(props){super(props.message),this.name=tag,Object.assign(this,props)}toJSON(){let payload={};for(let key of Object.keys(this))key!=="_tag"&&(payload[key]=this[key]);return{_tag:tag,message:this.message,...payload}}static is(value){return value instanceof TaggedErrorClass}}return TaggedErrorClass}var LaneBusy=class extends TaggedError("LaneBusy"){},MissingIdentities=class extends TaggedError("MissingIdentities"){},NoActiveRun=class extends TaggedError("NoActiveRun"){},NoActiveOperation=class extends TaggedError("NoActiveOperation"){},NothingToResume=class extends TaggedError("NothingToResume"){},InvalidMessage=class extends TaggedError("InvalidMessage"){},UnknownSkill=class extends TaggedError("UnknownSkill"){},UnknownTemplate=class extends TaggedError("UnknownTemplate"){},UnknownTarget=class extends TaggedError("UnknownTarget"){},UnknownQueueItem=class extends TaggedError("UnknownQueueItem"){},LaneExists=class extends TaggedError("LaneExists"){},InvalidLane=class extends TaggedError("InvalidLane"){},NothingToCompact=class extends TaggedError("NothingToCompact"){},Closed=class extends TaggedError("Closed"){};var SUMMARIZATION_SYSTEM_PROMPT=`You are a context summarization assistant. Your task is to read a conversation between a user and an AI assistant, then produce a structured summary following the exact format specified.
|
|
484
|
+
`)}`),msg.content.some(block=>block.type==="text")&&parts.push(`[Assistant]: ${contentText(msg.content)}`),toolCalls.length>0&&parts.push(`[Assistant tool calls]: ${toolCalls.join("; ")}`)}else if(msg.role==="toolResult"){let content=contentText(msg.content,"");content&&parts.push(`[Tool result]: ${truncateForSummary(content,TOOL_RESULT_MAX_CHARS)}`)}return parts}function startNoopSpan(_options,callback){try{return Promise.resolve(callback(noopTelemetrySpan))}catch(error2){return Promise.reject(error2)}}var noopTelemetrySpan={startSpan:startNoopSpan,addEvent:()=>{},setAttributes:()=>{},setStatus:()=>{}};Object.freeze(noopTelemetrySpan);var defaultStreamFn;function setDefaultStreamFn(streamFn){defaultStreamFn=streamFn}function getDefaultStreamFn(){if(!defaultStreamFn)throw new Error("No default stream function configured. Pass streamFn explicitly or call setDefaultStreamFn().");return defaultStreamFn}async function runAgentLoop(prompts,context,config,emit,signal,streamFn){let newMessages=[...prompts],currentContext={...context,messages:[...context.messages,...prompts]};await emit({type:"agent_start"}),await emit({type:"turn_start"});for(let prompt of prompts)await emit({type:"message_start",message:prompt}),await emit({type:"message_end",message:prompt});return await runLoop(currentContext,newMessages,config,signal,emit,streamFn??getDefaultStreamFn()),newMessages}async function runAgentLoopContinue(context,config,emit,signal,streamFn){if(context.messages.length===0)throw new Error("Cannot continue: no messages in context");if(context.messages[context.messages.length-1].role==="assistant")throw new Error("Cannot continue from message role: assistant");let newMessages=[],currentContext={...context};return await emit({type:"agent_start"}),await emit({type:"turn_start"}),await runLoop(currentContext,newMessages,config,signal,emit,streamFn??getDefaultStreamFn()),newMessages}async function runLoop(initialContext,newMessages,initialConfig,signal,emit,streamFunction){let currentContext=initialContext,config=initialConfig,lastCompletedTurn,pendingMessages=await config.getSteeringMessages?.()||[];for(;;){let hasMoreToolCalls=!0;for(;hasMoreToolCalls||pendingMessages.length>0;){if(lastCompletedTurn){let nextTurnSnapshot=await config.prepareNextTurn?.(lastCompletedTurn);nextTurnSnapshot&&(currentContext=nextTurnSnapshot.context??currentContext,config={...config,model:nextTurnSnapshot.model??config.model,reasoning:nextTurnSnapshot.thinkingLevel===void 0?config.reasoning:nextTurnSnapshot.thinkingLevel==="off"?void 0:nextTurnSnapshot.thinkingLevel}),pendingMessages.length===0&&(pendingMessages=await config.getSteeringMessages?.()||[]),await emit({type:"turn_start"})}if(pendingMessages.length>0){for(let message2 of pendingMessages)await emit({type:"message_start",message:message2}),await emit({type:"message_end",message:message2}),currentContext.messages.push(message2),newMessages.push(message2);pendingMessages=[]}let message=await streamAssistantResponse(currentContext,config,signal,emit,streamFunction);if(newMessages.push(message),message.stopReason==="error"||message.stopReason==="aborted"){await emit({type:"turn_end",message,toolResults:[]}),await emit({type:"agent_end",messages:newMessages});return}let toolCalls=message.content.filter(c2=>c2.type==="toolCall"),toolResults=[];if(hasMoreToolCalls=!1,toolCalls.length>0){let executedToolBatch=message.stopReason==="length"?await failToolCallsFromTruncatedMessage(toolCalls,emit):await executeToolCalls(currentContext,message,config,signal,emit);toolResults.push(...executedToolBatch.messages),hasMoreToolCalls=!executedToolBatch.terminate;for(let result of toolResults)currentContext.messages.push(result),newMessages.push(result)}if(await emit({type:"turn_end",message,toolResults}),lastCompletedTurn={message,toolResults,context:currentContext,newMessages},await config.shouldStopAfterTurn?.(lastCompletedTurn)){await emit({type:"agent_end",messages:newMessages});return}pendingMessages=await config.getSteeringMessages?.()||[]}let followUpMessages=await config.getFollowUpMessages?.()||[];if(followUpMessages.length>0){pendingMessages=followUpMessages;continue}break}await emit({type:"agent_end",messages:newMessages})}async function streamAssistantResponse(context,config,signal,emit,streamFunction){let messages=context.messages;config.transformContext&&(messages=await config.transformContext(messages,signal));let llmMessages=await config.convertToLlm(messages),llmContext={systemPrompt:context.systemPrompt,messages:llmMessages,tools:context.tools},resolvedApiKey=(config.getApiKey?await config.getApiKey(config.model.provider):void 0)||config.apiKey,response=await streamFunction(config.model,llmContext,{...config,apiKey:resolvedApiKey,signal}),partialMessage=null,addedPartial=!1;for await(let event of response)switch(event.type){case"start":partialMessage=event.partial,context.messages.push(partialMessage),addedPartial=!0,await emit({type:"message_start",message:{...partialMessage}});break;case"text_start":case"text_delta":case"text_end":case"thinking_start":case"thinking_delta":case"thinking_end":case"toolcall_start":case"toolcall_delta":case"toolcall_end":partialMessage&&(partialMessage=event.partial,context.messages[context.messages.length-1]=partialMessage,await emit({type:"message_update",assistantMessageEvent:event,message:{...partialMessage}}));break;case"done":case"error":{let finalMessage2=await response.result();return addedPartial?context.messages[context.messages.length-1]=finalMessage2:context.messages.push(finalMessage2),addedPartial||await emit({type:"message_start",message:{...finalMessage2}}),await emit({type:"message_end",message:finalMessage2}),finalMessage2}}let finalMessage=await response.result();return addedPartial?context.messages[context.messages.length-1]=finalMessage:(context.messages.push(finalMessage),await emit({type:"message_start",message:{...finalMessage}})),await emit({type:"message_end",message:finalMessage}),finalMessage}async function failToolCallsFromTruncatedMessage(toolCalls,emit){let messages=[],emitErrors=[];for(let toolCall of toolCalls){await emitRecordingErrors(()=>emit({type:"tool_execution_start",toolCallId:toolCall.id,toolName:toolCall.name,args:toolCall.arguments}),emitErrors);let finalized={toolCall,result:createErrorToolResult(`Tool call "${toolCall.name}" was not executed: the response hit the output token limit, so its arguments may be truncated. Re-issue the tool call with complete arguments.`),isError:!0};await emitRecordingErrors(()=>emitToolExecutionEnd(finalized,emit),emitErrors);let toolResultMessage=createToolResultMessage(finalized);await emitRecordingErrors(()=>emit({type:"message_start",message:toolResultMessage}),emitErrors),await emitRecordingErrors(()=>emit({type:"message_end",message:toolResultMessage}),emitErrors),messages.push(toolResultMessage)}if(emitErrors.length>0)throw emitErrors[0];return{messages,terminate:!1}}async function failUnexecutedToolCalls(toolCalls,emit){let messages=[],emitErrors=[];for(let toolCall of toolCalls){await emitRecordingErrors(()=>emit({type:"tool_execution_start",toolCallId:toolCall.id,toolName:toolCall.name,args:toolCall.arguments}),emitErrors);let finalized={toolCall,result:createErrorToolResult("Tool call was not executed: the turn was interrupted by the user."),isError:!0};await emitRecordingErrors(()=>emitToolExecutionEnd(finalized,emit),emitErrors);let toolResultMessage=createToolResultMessage(finalized);await emitRecordingErrors(()=>emit({type:"message_start",message:toolResultMessage}),emitErrors),await emitRecordingErrors(()=>emit({type:"message_end",message:toolResultMessage}),emitErrors),messages.push(toolResultMessage)}return{messages,emitErrors}}async function executeToolCalls(currentContext,assistantMessage,config,signal,emit){let toolCalls=assistantMessage.content.filter(c2=>c2.type==="toolCall");if(config.toolExecution==="sequential")return executeToolCallsSequential(currentContext,assistantMessage,toolCalls,config,signal,emit);let groups=groupToolCallsByExecutionMode(currentContext,toolCalls),messages=[],groupTerminates=[],firstGroupError,hasGroupError=!1,groupIndex=0;for(;groupIndex<groups.length&&!signal?.aborted;groupIndex++){let group=groups[groupIndex];try{let executed=group.sequential?await executeToolCallsSequential(currentContext,assistantMessage,group.toolCalls,config,signal,emit):await executeToolCallsParallel(currentContext,assistantMessage,group.toolCalls,config,signal,emit);messages.push(...executed.messages),groupTerminates.push(executed.terminate)}catch(error2){hasGroupError||(hasGroupError=!0,firstGroupError=error2),groupTerminates.push(!1)}}if(groupIndex<groups.length){let remaining=groups.slice(groupIndex).flatMap(group=>group.toolCalls),fill=await failUnexecutedToolCalls(remaining,emit);messages.push(...fill.messages),!hasGroupError&&fill.emitErrors.length>0&&(hasGroupError=!0,firstGroupError=fill.emitErrors[0])}if(hasGroupError)throw firstGroupError;return{messages,terminate:groupTerminates.length>0&&groupTerminates.every(Boolean)}}function groupToolCallsByExecutionMode(currentContext,toolCalls){let groups=[];for(let toolCall of toolCalls){let sequential=currentContext.tools?.find(t2=>t2.name===toolCall.name)?.executionMode==="sequential",lastGroup=groups[groups.length-1];!sequential&&lastGroup&&!lastGroup.sequential?lastGroup.toolCalls.push(toolCall):groups.push({sequential,toolCalls:[toolCall]})}return groups}async function executeToolCallsSequential(currentContext,assistantMessage,toolCalls,config,signal,emit){let finalizedCalls=[],messages=[],firstEmitError,hasEmitError=!1;for(let toolCall of toolCalls){let finalized;try{await emit({type:"tool_execution_start",toolCallId:toolCall.id,toolName:toolCall.name,args:toolCall.arguments});let preparation=await prepareToolCall(currentContext,assistantMessage,toolCall,config,signal);if(preparation.kind==="immediate")finalized={toolCall,result:preparation.result,isError:preparation.isError};else{let executed=await executePreparedToolCall(preparation,signal,emit);finalized=await finalizeExecutedToolCall(currentContext,assistantMessage,preparation,executed,config,signal)}await emitToolExecutionEnd(finalized,emit)}catch(error2){finalized={toolCall,result:createErrorToolResult(error2 instanceof Error?error2.message:String(error2)),isError:!0},hasEmitError||(hasEmitError=!0,firstEmitError=error2)}let toolResultMessage=createToolResultMessage(finalized);try{await emit({type:"message_start",message:toolResultMessage})}catch(error2){hasEmitError||(hasEmitError=!0,firstEmitError=error2)}try{await emit({type:"message_end",message:toolResultMessage})}catch(error2){hasEmitError||(hasEmitError=!0,firstEmitError=error2)}if(finalizedCalls.push(finalized),messages.push(toolResultMessage),signal?.aborted)break}if(messages.length<toolCalls.length){let fill=await failUnexecutedToolCalls(toolCalls.slice(messages.length),emit);messages.push(...fill.messages),!hasEmitError&&fill.emitErrors.length>0&&(hasEmitError=!0,firstEmitError=fill.emitErrors[0])}if(hasEmitError)throw firstEmitError;return{messages,terminate:shouldTerminateToolBatch(finalizedCalls)}}async function executeToolCallsParallel(currentContext,assistantMessage,toolCalls,config,signal,emit){let finalizedCalls=[],firstEmitError,hasEmitError=!1,index3=0;for(;index3<toolCalls.length;index3++){let toolCall=toolCalls[index3],preparation;try{await emit({type:"tool_execution_start",toolCallId:toolCall.id,toolName:toolCall.name,args:toolCall.arguments}),preparation=await prepareToolCall(currentContext,assistantMessage,toolCall,config,signal)}catch(error2){if(finalizedCalls.push({toolCall,result:createErrorToolResult(error2 instanceof Error?error2.message:String(error2)),isError:!0}),hasEmitError||(hasEmitError=!0,firstEmitError=error2),signal?.aborted){index3++;break}continue}if(preparation.kind==="immediate"){let finalized={toolCall,result:preparation.result,isError:preparation.isError};try{await emitToolExecutionEnd(finalized,emit)}catch(error2){finalized.result=createErrorToolResult(error2 instanceof Error?error2.message:String(error2)),finalized.isError=!0,hasEmitError||(hasEmitError=!0,firstEmitError=error2)}if(finalizedCalls.push(finalized),signal?.aborted){index3++;break}continue}if(finalizedCalls.push(async()=>{if(signal?.aborted){let finalized2={toolCall,result:createErrorToolResult("Operation aborted"),isError:!0};return await emitToolExecutionEnd(finalized2,emit),finalized2}let executed=await executePreparedToolCall(preparation,signal,emit),finalized=await finalizeExecutedToolCall(currentContext,assistantMessage,preparation,executed,config,signal);return await emitToolExecutionEnd(finalized,emit),finalized}),signal?.aborted){index3++;break}}let settled=await Promise.allSettled(finalizedCalls.map(entry=>typeof entry=="function"?entry():Promise.resolve(entry))),orderedFinalizedCalls=[];for(let[entryIndex,outcome]of settled.entries()){if(outcome.status==="fulfilled"){orderedFinalizedCalls.push(outcome.value);continue}hasEmitError||(hasEmitError=!0,firstEmitError=outcome.reason),orderedFinalizedCalls.push({toolCall:toolCalls[entryIndex],result:createErrorToolResult(outcome.reason instanceof Error?outcome.reason.message:String(outcome.reason)),isError:!0})}let messages=[];for(let finalized of orderedFinalizedCalls){let toolResultMessage=createToolResultMessage(finalized);try{await emit({type:"message_start",message:toolResultMessage})}catch(error2){hasEmitError||(hasEmitError=!0,firstEmitError=error2)}try{await emit({type:"message_end",message:toolResultMessage})}catch(error2){hasEmitError||(hasEmitError=!0,firstEmitError=error2)}messages.push(toolResultMessage)}if(index3<toolCalls.length){let fill=await failUnexecutedToolCalls(toolCalls.slice(index3),emit);messages.push(...fill.messages),!hasEmitError&&fill.emitErrors.length>0&&(hasEmitError=!0,firstEmitError=fill.emitErrors[0])}if(hasEmitError)throw firstEmitError;return{messages,terminate:shouldTerminateToolBatch(orderedFinalizedCalls)}}function shouldTerminateToolBatch(finalizedCalls){return finalizedCalls.length>0&&finalizedCalls.every(finalized=>finalized.result.terminate===!0)}function prepareToolCallArguments(tool,toolCall){if(!tool.prepareArguments)return toolCall;let preparedArguments=tool.prepareArguments(toolCall.arguments);return preparedArguments===toolCall.arguments?toolCall:{...toolCall,arguments:preparedArguments}}async function prepareToolCall(currentContext,assistantMessage,toolCall,config,signal){let tool=currentContext.tools?.find(t2=>t2.name===toolCall.name);if(!tool)return{kind:"immediate",result:createErrorToolResult(`Tool ${toolCall.name} not found`),isError:!0};try{let preparedToolCall=prepareToolCallArguments(tool,toolCall),validatedArgs=validateToolArguments(tool,preparedToolCall);if(config.beforeToolCall){let beforeResult=await config.beforeToolCall({assistantMessage,toolCall,args:validatedArgs,context:currentContext},signal);if(signal?.aborted)return{kind:"immediate",result:createErrorToolResult("Operation aborted"),isError:!0};if(beforeResult?.block){let result=createErrorToolResult(beforeResult.reason||"Tool execution was blocked");return beforeResult.terminate===!0&&(result.terminate=!0),{kind:"immediate",result,isError:!0}}beforeResult?.args!==void 0&&(validatedArgs=validateToolArguments(tool,{...preparedToolCall,arguments:beforeResult.args}))}return signal?.aborted?{kind:"immediate",result:createErrorToolResult("Operation aborted"),isError:!0}:{kind:"prepared",toolCall,tool,args:validatedArgs}}catch(error2){return{kind:"immediate",result:createErrorToolResult(error2 instanceof Error?error2.message:String(error2)),isError:!0}}}async function executePreparedToolCall(prepared,signal,emit){let updateEvents=[],updateErrors=[],acceptingUpdates=!0;try{let result=await prepared.tool.execute(prepared.toolCall.id,prepared.args,signal,partialResult=>{acceptingUpdates&&updateEvents.push(Promise.resolve(emit({type:"tool_execution_update",toolCallId:prepared.toolCall.id,toolName:prepared.toolCall.name,args:prepared.toolCall.arguments,partialResult})).catch(error2=>{updateErrors.push(error2)}))});if(acceptingUpdates=!1,await Promise.all(updateEvents),updateErrors.length>0)throw updateErrors[0];return{result,isError:!1}}catch(error2){return acceptingUpdates=!1,await Promise.all(updateEvents),{result:createErrorToolResult(error2 instanceof Error?error2.message:String(error2)),isError:!0}}finally{acceptingUpdates=!1}}async function finalizeExecutedToolCall(currentContext,assistantMessage,prepared,executed,config,signal){let result=executed.result,isError=executed.isError;if(config.afterToolCall)try{let afterResult=await config.afterToolCall({assistantMessage,toolCall:prepared.toolCall,args:prepared.args,result,isError,context:currentContext},signal);afterResult&&(result={...result,content:afterResult.content??result.content,details:afterResult.details??result.details,usage:afterResult.usage??result.usage,terminate:afterResult.terminate??result.terminate},isError=afterResult.isError??isError)}catch(error2){result=createErrorToolResult(error2 instanceof Error?error2.message:String(error2)),isError=!0}return{toolCall:prepared.toolCall,result,isError}}function createErrorToolResult(message){return{content:[{type:"text",text:message}],details:{}}}async function emitToolExecutionEnd(finalized,emit){await emit({type:"tool_execution_end",toolCallId:finalized.toolCall.id,toolName:finalized.toolCall.name,result:finalized.result,isError:finalized.isError})}function createToolResultMessage(finalized){return{role:"toolResult",toolCallId:finalized.toolCall.id,toolName:finalized.toolCall.name,content:finalized.result.content??[],details:finalized.result.details,usage:finalized.result.usage,...finalized.result.addedToolNames?.length?{addedToolNames:finalized.result.addedToolNames}:{},isError:finalized.isError,timestamp:Date.now()}}async function emitRecordingErrors(emitEvent,errors){try{await emitEvent()}catch(error2){errors.push(error2)}}function defaultConvertToLlm(messages){return messages.filter(message=>message.role==="user"||message.role==="assistant"||message.role==="toolResult")}var EMPTY_USAGE={input:0,output:0,cacheRead:0,cacheWrite:0,totalTokens:0,cost:{input:0,output:0,cacheRead:0,cacheWrite:0,total:0}},DEFAULT_MODEL={id:"unknown",name:"unknown",api:"unknown",provider:"unknown",baseUrl:"",reasoning:!1,input:[],cost:{input:0,output:0,cacheRead:0,cacheWrite:0},contextWindow:0,maxTokens:0};function createMutableAgentState(initialState){let tools=initialState?.tools?.slice()??[],messages=initialState?.messages?.slice()??[];return{systemPrompt:initialState?.systemPrompt??"",model:initialState?.model??DEFAULT_MODEL,thinkingLevel:initialState?.thinkingLevel??"off",get tools(){return tools},set tools(nextTools){tools=nextTools.slice()},get messages(){return messages},set messages(nextMessages){messages=nextMessages.slice()},isStreaming:!1,streamingMessage:void 0,pendingToolCalls:new Set,errorMessage:void 0}}var PendingMessageQueue=class{messages=[];mode;constructor(mode){this.mode=mode}enqueue(message){this.messages.push(message)}hasItems(){return this.messages.length>0}drain(){if(this.mode==="all"){let drained=this.messages.slice();return this.messages=[],drained}let first=this.messages[0];return first?(this.messages=this.messages.slice(1),[first]):[]}peek(){return this.messages.slice()}reorder(from,to){if(from===to||from<0||to<0||from>=this.messages.length||to>=this.messages.length)return!1;let removed=this.messages.splice(from,1);return this.messages.splice(to,0,...removed),!0}removeAt(index3){if(!(index3<0||index3>=this.messages.length))return this.messages.splice(index3,1)[0]}clear(){this.messages=[]}},Agent=class{_state;listeners=new Set;steeringQueue;followUpQueue;convertToLlm;transformContext;streamFunction;getApiKey;onPayload;onResponse;beforeToolCall;afterToolCall;shouldStopAfterTurn;prepareNextTurn;prepareNextTurnWithContext;activeRun;sessionId;thinkingBudgets;transport;maxRetryDelayMs;toolExecution;constructor(options){let runtimeOptions=options??{};this._state=createMutableAgentState(runtimeOptions.initialState),this.convertToLlm=runtimeOptions.convertToLlm??defaultConvertToLlm,this.transformContext=runtimeOptions.transformContext,this.streamFunction=runtimeOptions.streamFn??getDefaultStreamFn(),this.getApiKey=runtimeOptions.getApiKey,this.onPayload=runtimeOptions.onPayload,this.onResponse=runtimeOptions.onResponse,this.beforeToolCall=runtimeOptions.beforeToolCall,this.afterToolCall=runtimeOptions.afterToolCall,this.shouldStopAfterTurn=runtimeOptions.shouldStopAfterTurn,this.prepareNextTurn=runtimeOptions.prepareNextTurn,this.prepareNextTurnWithContext=runtimeOptions.prepareNextTurnWithContext,this.steeringQueue=new PendingMessageQueue(runtimeOptions.steeringMode??"one-at-a-time"),this.followUpQueue=new PendingMessageQueue(runtimeOptions.followUpMode??"one-at-a-time"),this.sessionId=runtimeOptions.sessionId,this.thinkingBudgets=runtimeOptions.thinkingBudgets,this.transport=runtimeOptions.transport??"auto",this.maxRetryDelayMs=runtimeOptions.maxRetryDelayMs,this.toolExecution=runtimeOptions.toolExecution??"parallel"}subscribe(listener){return this.listeners.add(listener),()=>this.listeners.delete(listener)}get state(){return this._state}set steeringMode(mode){this.steeringQueue.mode=mode}get steeringMode(){return this.steeringQueue.mode}set followUpMode(mode){this.followUpQueue.mode=mode}get followUpMode(){return this.followUpQueue.mode}steer(message){this.steeringQueue.enqueue(message)}followUp(message){this.followUpQueue.enqueue(message)}peekSteeringQueue(){return this.steeringQueue.peek()}peekFollowUpQueue(){return this.followUpQueue.peek()}reorderQueuedMessages(queue,from,to){return this.queueFor(queue).reorder(from,to)}removeQueuedMessage(queue,index3){return this.queueFor(queue).removeAt(index3)??null}clearSteeringQueue(){this.steeringQueue.clear()}clearFollowUpQueue(){this.followUpQueue.clear()}clearAllQueues(){this.clearSteeringQueue(),this.clearFollowUpQueue()}hasQueuedMessages(){return this.steeringQueue.hasItems()||this.followUpQueue.hasItems()}get signal(){return this.activeRun?.abortController.signal}abort(){this.activeRun?.abortController.abort()}waitForIdle(){return this.activeRun?.promise??Promise.resolve()}reset(){if(this.activeRun)throw new Error("Agent is already processing. Wait for completion before resetting.");this._state.messages=[],this._state.isStreaming=!1,this._state.streamingMessage=void 0,this._state.pendingToolCalls=new Set,this._state.errorMessage=void 0,this.clearFollowUpQueue(),this.clearSteeringQueue()}async prompt(input,images){if(this.activeRun)throw new Error("Agent is already processing a prompt. Use steer() or followUp() to queue messages, or wait for completion.");let messages=this.normalizePromptInput(input,images);await this.runPromptMessages(messages)}async continue(){if(this.activeRun)throw new Error("Agent is already processing. Wait for completion before continuing.");let lastMessage=this._state.messages[this._state.messages.length-1];if(!lastMessage)throw new Error("No messages to continue from");if(lastMessage.role==="assistant"){let queuedSteering=this.steeringQueue.drain();if(queuedSteering.length>0){await this.runPromptMessages(queuedSteering,{skipInitialSteeringPoll:!0});return}let queuedFollowUps=this.followUpQueue.drain();if(queuedFollowUps.length>0){await this.runPromptMessages(queuedFollowUps);return}throw new Error("Cannot continue from message role: assistant")}await this.runContinuation()}normalizePromptInput(input,images){if(Array.isArray(input))return input;if(typeof input!="string")return[input];let content=[{type:"text",text:input}];return images&&images.length>0&&content.push(...images),[{role:"user",content,timestamp:Date.now()}]}queueFor(queue){return queue==="steer"?this.steeringQueue:this.followUpQueue}async runPromptMessages(messages,options={}){await this.runWithLifecycle(async signal=>{await runAgentLoop(messages,this.createContextSnapshot(),this.createLoopConfig(options),event=>this.processEvents(event),signal,this.streamFunction)})}async runContinuation(){await this.runWithLifecycle(async signal=>{await runAgentLoopContinue(this.createContextSnapshot(),this.createLoopConfig(),event=>this.processEvents(event),signal,this.streamFunction)})}createContextSnapshot(){return{systemPrompt:this._state.systemPrompt,messages:this._state.messages.slice(),tools:this._state.tools.slice()}}createLoopConfig(options={}){let skipInitialSteeringPoll=options.skipInitialSteeringPoll===!0,shouldStopAfterTurn=this.shouldStopAfterTurn;return{model:this._state.model,reasoning:this._state.thinkingLevel==="off"?void 0:this._state.thinkingLevel,sessionId:this.sessionId,onPayload:this.onPayload,onResponse:this.onResponse,transport:this.transport,thinkingBudgets:this.thinkingBudgets,maxRetryDelayMs:this.maxRetryDelayMs,toolExecution:this.toolExecution,beforeToolCall:this.beforeToolCall,afterToolCall:this.afterToolCall,shouldStopAfterTurn:shouldStopAfterTurn?async context=>await shouldStopAfterTurn(context,this.signal):void 0,prepareNextTurn:this.prepareNextTurnWithContext||this.prepareNextTurn?async context=>this.prepareNextTurnWithContext?await this.prepareNextTurnWithContext(context,this.signal):await this.prepareNextTurn?.(this.signal):void 0,convertToLlm:this.convertToLlm,transformContext:this.transformContext,getApiKey:this.getApiKey,getSteeringMessages:async()=>skipInitialSteeringPoll?(skipInitialSteeringPoll=!1,[]):this.steeringQueue.drain(),getFollowUpMessages:async()=>this.followUpQueue.drain()}}async runWithLifecycle(executor){if(this.activeRun)throw new Error("Agent is already processing.");let abortController=new AbortController,resolvePromise=()=>{},promise=new Promise(resolve5=>{resolvePromise=resolve5});this.activeRun={promise,resolve:resolvePromise,abortController},this._state.isStreaming=!0,this._state.streamingMessage=void 0,this._state.errorMessage=void 0;try{await executor(abortController.signal)}catch(error2){await this.handleRunFailure(error2,abortController.signal.aborted)}finally{this.finishRun()}}async handleRunFailure(error2,aborted){let failureMessage={role:"assistant",content:[{type:"text",text:""}],api:this._state.model.api,provider:this._state.model.provider,model:this._state.model.id,usage:EMPTY_USAGE,stopReason:aborted?"aborted":"error",errorMessage:error2 instanceof Error?error2.message:String(error2),timestamp:Date.now()};await this.processEvents({type:"message_start",message:failureMessage}),await this.processEvents({type:"message_end",message:failureMessage}),await this.processEvents({type:"turn_end",message:failureMessage,toolResults:[]}),await this.processEvents({type:"agent_end",messages:[failureMessage]})}finishRun(){this._state.isStreaming=!1,this._state.streamingMessage=void 0,this._state.pendingToolCalls=new Set,this.activeRun?.resolve(),this.activeRun=void 0}async processEvents(event){switch(event.type){case"message_start":this._state.streamingMessage=event.message;break;case"message_update":this._state.streamingMessage=event.message;break;case"message_end":this._state.streamingMessage=void 0,this._state.messages.push(event.message);break;case"tool_execution_start":{let pendingToolCalls=new Set(this._state.pendingToolCalls);pendingToolCalls.add(event.toolCallId),this._state.pendingToolCalls=pendingToolCalls;break}case"tool_execution_end":{let pendingToolCalls=new Set(this._state.pendingToolCalls);pendingToolCalls.delete(event.toolCallId),this._state.pendingToolCalls=pendingToolCalls;break}case"turn_end":event.message.role==="assistant"&&event.message.errorMessage&&(this._state.errorMessage=event.message.errorMessage);break;case"agent_end":this._state.streamingMessage=void 0;break}let signal=this.activeRun?.abortController.signal;if(!signal)throw new Error("Agent listener invoked outside active run");for(let listener of this.listeners)await listener(event,signal)}};function TaggedError(tag){class TaggedErrorClass extends Error{_tag=tag;constructor(props){super(props.message),this.name=tag,Object.assign(this,props)}toJSON(){let payload={};for(let key of Object.keys(this))key!=="_tag"&&(payload[key]=this[key]);return{_tag:tag,message:this.message,...payload}}static is(value){return value instanceof TaggedErrorClass}}return TaggedErrorClass}var LaneBusy=class extends TaggedError("LaneBusy"){},MissingIdentities=class extends TaggedError("MissingIdentities"){},NoActiveRun=class extends TaggedError("NoActiveRun"){},NoActiveOperation=class extends TaggedError("NoActiveOperation"){},NothingToResume=class extends TaggedError("NothingToResume"){},InvalidMessage=class extends TaggedError("InvalidMessage"){},UnknownSkill=class extends TaggedError("UnknownSkill"){},UnknownTemplate=class extends TaggedError("UnknownTemplate"){},UnknownTarget=class extends TaggedError("UnknownTarget"){},UnknownQueueItem=class extends TaggedError("UnknownQueueItem"){},LaneExists=class extends TaggedError("LaneExists"){},InvalidLane=class extends TaggedError("InvalidLane"){},NothingToCompact=class extends TaggedError("NothingToCompact"){},Closed=class extends TaggedError("Closed"){};var SUMMARIZATION_SYSTEM_PROMPT=`You are a context summarization assistant. Your task is to read a conversation between a user and an AI assistant, then produce a structured summary following the exact format specified.
|
|
485
485
|
|
|
486
486
|
Do NOT continue the conversation. Do NOT respond to any questions in the conversation. ONLY output the structured summary.
|
|
487
487
|
The summary must only objectively state facts and state from the conversation that already happened: never include instructions to the assistant or the user, and never include wording that requests a specific reply.`,SUMMARIZATION_PROMPT=`The messages above are a conversation to summarize. Create a structured context checkpoint summary that another LLM will use to continue the work.
|