edgeone 1.6.25 → 1.6.26
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/edgeone-dist/cli.js +2111 -352
- package/edgeone-dist/pages/dev/runner-worker.js +2111 -352
- package/edgeone-dist/pages/templates/agent-python/context.py +5 -1
- package/edgeone-dist/pages/templates/agent-python/memory.py +248 -19
- package/edgeone-dist/studio/ui/assets/agent-obs-Dvi4IpEy.js +4 -0
- package/edgeone-dist/studio/ui/assets/agent-obs-qDJCE0TQ.css +1 -0
- package/edgeone-dist/studio/ui/assets/{index-DN8YhmEp.js → index-DD3d108t.js} +1 -1
- package/edgeone-dist/studio/ui/index.html +3 -3
- package/package.json +1 -1
- package/edgeone-dist/studio/ui/assets/agent-obs-BpTIot8x.js +0 -4
- package/edgeone-dist/studio/ui/assets/agent-obs-CEOY4DZz.css +0 -1
package/edgeone-dist/cli.js
CHANGED
|
@@ -566,7 +566,7 @@ ${A.join(`
|
|
|
566
566
|
`;y.forEach(A=>{v+=A}),e.fail(v)}};let p={};s.conflicts=function(g,y){si("<string|object> [array|string]",[g,y],arguments.length),typeof g=="object"?Object.keys(g).forEach(v=>{s.conflicts(v,g[v])}):(t.global(g),p[g]||(p[g]=[]),Array.isArray(y)?y.forEach(v=>s.conflicts(g,v)):p[g].push(y))},s.getConflicting=()=>p,s.conflicting=function(g){Object.keys(g).forEach(y=>{p[y]&&p[y].forEach(v=>{v&&g[y]!==void 0&&g[v]!==void 0&&e.fail(n("Arguments %s and %s are mutually exclusive",y,v))})}),t.getInternalMethods().getParserConfiguration()["strip-dashed"]&&Object.keys(p).forEach(y=>{p[y].forEach(v=>{v&&g[r.Parser.camelCase(y)]!==void 0&&g[r.Parser.camelCase(v)]!==void 0&&e.fail(n("Arguments %s and %s are mutually exclusive",y,v))})})},s.recommendCommands=function(g,y){y=y.sort((E,k)=>k.length-E.length);let A=null,S=1/0;for(let E=0,k;(k=y[E])!==void 0;E++){let P=D3e(g,k);P<=3&&P<S&&(S=P,A=k)}A&&e.fail(n("Did you mean %s?",A))},s.reset=function(g){return c=KI(c,y=>!g[y]),p=KI(p,y=>!g[y]),s};let f=[];return s.freeze=function(){f.push({implied:c,conflicting:p})},s.unfreeze=function(){let g=f.pop();ig(g,void 0,r),{implied:c,conflicting:p}=g},s}var ci=function(t,e,r,n,o){if(n==="m")throw new TypeError("Private method is not writable");if(n==="a"&&!o)throw new TypeError("Private accessor was defined without a setter");if(typeof e=="function"?t!==e||!o:!e.has(t))throw new TypeError("Cannot write private member to an object whose class did not declare it");return n==="a"?o.call(t,r):o?o.value=r:e.set(t,r),r},Ve=function(t,e,r,n){if(r==="a"&&!n)throw new TypeError("Private accessor was defined without a getter");if(typeof e=="function"?t!==e||!n:!e.has(t))throw new TypeError("Cannot read private member from an object whose class did not declare it");return r==="m"?n:r==="a"?n.call(t):n?n.value:e.get(t)},Fp,dD,P8,Sv,JA,GV,ZI,hD,WV,Cv,YV,Iv,Mw,KA,kv,JV,mF,md,Bi,KV,XV,XA,mD,gF,gD,ek,ZV,xs,AD,yD,vD,Ls,eG,Qw,cp;function Z3e(t){return(e=[],r=t.process.cwd(),n)=>{let o=new Que(e,r,n,t);return Object.defineProperty(o,"argv",{get:()=>o.parse(),enumerable:!0}),o.help(),o.version(),o}}var N3e=Symbol("copyDoubleDash"),O3e=Symbol("copyDoubleDash"),Bue=Symbol("deleteFromParserHintObject"),F3e=Symbol("emitWarning"),L3e=Symbol("freeze"),j3e=Symbol("getDollarZero"),xD=Symbol("getParserConfiguration"),M3e=Symbol("getUsageConfiguration"),Due=Symbol("guessLocale"),Q3e=Symbol("guessVersion"),q3e=Symbol("parsePositionalNumbers"),Pue=Symbol("pkgUp"),tk=Symbol("populateParserHintArray"),AF=Symbol("populateParserHintSingleValueDictionary"),Rue=Symbol("populateParserHintArrayDictionary"),Nue=Symbol("populateParserHintDictionary"),Oue=Symbol("sanitizeKey"),Fue=Symbol("setKey"),Lue=Symbol("unfreeze"),U3e=Symbol("validateAsync"),$3e=Symbol("getCommandInstance"),z3e=Symbol("getContext"),H3e=Symbol("getHasOutput"),V3e=Symbol("getLoggerInstance"),G3e=Symbol("getParseContext"),W3e=Symbol("getUsageInstance"),Y3e=Symbol("getValidationInstance"),tG=Symbol("hasParseCallback"),J3e=Symbol("isGlobalContext"),bD=Symbol("postProcess"),K3e=Symbol("rebase"),jue=Symbol("reset"),R8=Symbol("runYargsParserAndExecuteCommands"),Mue=Symbol("runValidation"),X3e=Symbol("setHasOutput"),ED=Symbol("kTrackManuallySetKeys"),Que=class{constructor(e=[],r,n,o){this.customScriptName=!1,this.parsed=!1,Fp.set(this,void 0),dD.set(this,void 0),P8.set(this,{commands:[],fullCommands:[]}),Sv.set(this,null),JA.set(this,null),GV.set(this,"show-hidden"),ZI.set(this,null),hD.set(this,!0),WV.set(this,{}),Cv.set(this,!0),YV.set(this,[]),Iv.set(this,void 0),Mw.set(this,{}),KA.set(this,!1),kv.set(this,null),JV.set(this,!0),mF.set(this,void 0),md.set(this,""),Bi.set(this,void 0),KV.set(this,void 0),XV.set(this,{}),XA.set(this,null),mD.set(this,null),gF.set(this,{}),gD.set(this,{}),ek.set(this,void 0),ZV.set(this,!1),xs.set(this,void 0),AD.set(this,!1),yD.set(this,!1),vD.set(this,!1),Ls.set(this,void 0),eG.set(this,{}),Qw.set(this,null),cp.set(this,void 0),ci(this,xs,o,"f"),ci(this,ek,e,"f"),ci(this,dD,r,"f"),ci(this,KV,n,"f"),ci(this,Iv,new zV(this),"f"),this.$0=this[j3e](),this[jue](),ci(this,Fp,Ve(this,Fp,"f"),"f"),ci(this,Ls,Ve(this,Ls,"f"),"f"),ci(this,cp,Ve(this,cp,"f"),"f"),ci(this,Bi,Ve(this,Bi,"f"),"f"),Ve(this,Bi,"f").showHiddenOpt=Ve(this,GV,"f"),ci(this,mF,this[O3e](),"f")}addHelpOpt(e,r){let n="help";return si("[string|boolean] [string]",[e,r],arguments.length),Ve(this,kv,"f")&&(this[Bue](Ve(this,kv,"f")),ci(this,kv,null,"f")),e===!1&&r===void 0?this:(ci(this,kv,typeof e=="string"?e:n,"f"),this.boolean(Ve(this,kv,"f")),this.describe(Ve(this,kv,"f"),r||Ve(this,Ls,"f").deferY18nLookup("Show help")),this)}help(e,r){return this.addHelpOpt(e,r)}addShowHiddenOpt(e,r){if(si("[string|boolean] [string]",[e,r],arguments.length),e===!1&&r===void 0)return this;let n=typeof e=="string"?e:Ve(this,GV,"f");return this.boolean(n),this.describe(n,r||Ve(this,Ls,"f").deferY18nLookup("Show hidden options")),Ve(this,Bi,"f").showHiddenOpt=n,this}showHidden(e,r){return this.addShowHiddenOpt(e,r)}alias(e,r){return si("<object|string|array> [string|array]",[e,r],arguments.length),this[Rue](this.alias.bind(this),"alias",e,r),this}array(e){return si("<array|string>",[e],arguments.length),this[tk]("array",e),this[ED](e),this}boolean(e){return si("<array|string>",[e],arguments.length),this[tk]("boolean",e),this[ED](e),this}check(e,r){return si("<function> [boolean]",[e,r],arguments.length),this.middleware((n,o)=>fD(()=>e(n,o.getOptions()),s=>(s?(typeof s=="string"||s instanceof Error)&&Ve(this,Ls,"f").fail(s.toString(),s):Ve(this,Ls,"f").fail(Ve(this,xs,"f").y18n.__("Argument check failed: %s",e.toString())),n),s=>(Ve(this,Ls,"f").fail(s.message?s.message:s.toString(),s),n)),!1,r),this}choices(e,r){return si("<object|string|array> [string|array]",[e,r],arguments.length),this[Rue](this.choices.bind(this),"choices",e,r),this}coerce(e,r){if(si("<object|string|array> [function]",[e,r],arguments.length),Array.isArray(e)){if(!r)throw new ju("coerce callback must be provided");for(let n of e)this.coerce(n,r);return this}else if(typeof e=="object"){for(let n of Object.keys(e))this.coerce(n,e[n]);return this}if(!r)throw new ju("coerce callback must be provided");return Ve(this,Bi,"f").key[e]=!0,Ve(this,Iv,"f").addCoerceMiddleware((n,o)=>{let s;return Object.prototype.hasOwnProperty.call(n,e)?fD(()=>(s=o.getAliases(),r(n[e])),u=>{n[e]=u;let p=o.getInternalMethods().getParserConfiguration()["strip-aliased"];if(s[e]&&p!==!0)for(let f of s[e])n[f]=u;return n},u=>{throw new ju(u.message)}):n},e),this}conflicts(e,r){return si("<string|object> [string|array]",[e,r],arguments.length),Ve(this,cp,"f").conflicts(e,r),this}config(e="config",r,n){return si("[object|string] [string|function] [function]",[e,r,n],arguments.length),typeof e=="object"&&!Array.isArray(e)?(e=T8(e,Ve(this,dD,"f"),this[xD]()["deep-merge-config"]||!1,Ve(this,xs,"f")),Ve(this,Bi,"f").configObjects=(Ve(this,Bi,"f").configObjects||[]).concat(e),this):(typeof r=="function"&&(n=r,r=void 0),this.describe(e,r||Ve(this,Ls,"f").deferY18nLookup("Path to JSON config file")),(Array.isArray(e)?e:[e]).forEach(o=>{Ve(this,Bi,"f").config[o]=n||!0}),this)}completion(e,r,n){return si("[string] [string|boolean|function] [function]",[e,r,n],arguments.length),typeof r=="function"&&(n=r,r=void 0),ci(this,JA,e||Ve(this,JA,"f")||"completion","f"),!r&&r!==!1&&(r="generate completion script"),this.command(Ve(this,JA,"f"),r),n&&Ve(this,Sv,"f").registerFunction(n),this}command(e,r,n,o,s,c){return si("<string|array|object> [string|boolean] [function|object] [function] [array] [boolean|string]",[e,r,n,o,s,c],arguments.length),Ve(this,Fp,"f").addHandler(e,r,n,o,s,c),this}commands(e,r,n,o,s,c){return this.command(e,r,n,o,s,c)}commandDir(e,r){si("<string> [object]",[e,r],arguments.length);let n=Ve(this,KV,"f")||Ve(this,xs,"f").require;return Ve(this,Fp,"f").addDirectory(e,n,Ve(this,xs,"f").getCallerFile(),r),this}count(e){return si("<array|string>",[e],arguments.length),this[tk]("count",e),this[ED](e),this}default(e,r,n){return si("<object|string|array> [*] [string]",[e,r,n],arguments.length),n&&(Sue(e,Ve(this,xs,"f")),Ve(this,Bi,"f").defaultDescription[e]=n),typeof r=="function"&&(Sue(e,Ve(this,xs,"f")),Ve(this,Bi,"f").defaultDescription[e]||(Ve(this,Bi,"f").defaultDescription[e]=Ve(this,Ls,"f").functionDescription(r)),r=r.call()),this[AF](this.default.bind(this),"default",e,r),this}defaults(e,r,n){return this.default(e,r,n)}demandCommand(e=1,r,n,o){return si("[number] [number|string] [string|null|undefined] [string|null|undefined]",[e,r,n,o],arguments.length),typeof r!="number"&&(n=r,r=1/0),this.global("_",!1),Ve(this,Bi,"f").demandedCommands._={min:e,max:r,minMsg:n,maxMsg:o},this}demand(e,r,n){return Array.isArray(r)?(r.forEach(o=>{ig(n,!0,Ve(this,xs,"f")),this.demandOption(o,n)}),r=1/0):typeof r!="number"&&(n=r,r=1/0),typeof e=="number"?(ig(n,!0,Ve(this,xs,"f")),this.demandCommand(e,r,n,n)):Array.isArray(e)?e.forEach(o=>{ig(n,!0,Ve(this,xs,"f")),this.demandOption(o,n)}):typeof n=="string"?this.demandOption(e,n):(n===!0||typeof n>"u")&&this.demandOption(e),this}demandOption(e,r){return si("<object|string|array> [string]",[e,r],arguments.length),this[AF](this.demandOption.bind(this),"demandedOptions",e,r),this}deprecateOption(e,r){return si("<string> [string|boolean]",[e,r],arguments.length),Ve(this,Bi,"f").deprecatedOptions[e]=r,this}describe(e,r){return si("<object|string|array> [string]",[e,r],arguments.length),this[Fue](e,!0),Ve(this,Ls,"f").describe(e,r),this}detectLocale(e){return si("<boolean>",[e],arguments.length),ci(this,hD,e,"f"),this}env(e){return si("[string|boolean]",[e],arguments.length),e===!1?delete Ve(this,Bi,"f").envPrefix:Ve(this,Bi,"f").envPrefix=e||"",this}epilogue(e){return si("<string>",[e],arguments.length),Ve(this,Ls,"f").epilog(e),this}epilog(e){return this.epilogue(e)}example(e,r){return si("<string|array> [string]",[e,r],arguments.length),Array.isArray(e)?e.forEach(n=>this.example(...n)):Ve(this,Ls,"f").example(e,r),this}exit(e,r){ci(this,KA,!0,"f"),ci(this,ZI,r,"f"),Ve(this,Cv,"f")&&Ve(this,xs,"f").process.exit(e)}exitProcess(e=!0){return si("[boolean]",[e],arguments.length),ci(this,Cv,e,"f"),this}fail(e){if(si("<function|boolean>",[e],arguments.length),typeof e=="boolean"&&e!==!1)throw new ju("Invalid first argument. Expected function or boolean 'false'");return Ve(this,Ls,"f").failFn(e),this}getAliases(){return this.parsed?this.parsed.aliases:{}}async getCompletion(e,r){return si("<array> [function]",[e,r],arguments.length),r?Ve(this,Sv,"f").getCompletion(e,r):new Promise((n,o)=>{Ve(this,Sv,"f").getCompletion(e,(s,c)=>{s?o(s):n(c)})})}getDemandedOptions(){return si([],0),Ve(this,Bi,"f").demandedOptions}getDemandedCommands(){return si([],0),Ve(this,Bi,"f").demandedCommands}getDeprecatedOptions(){return si([],0),Ve(this,Bi,"f").deprecatedOptions}getDetectLocale(){return Ve(this,hD,"f")}getExitProcess(){return Ve(this,Cv,"f")}getGroups(){return Object.assign({},Ve(this,Mw,"f"),Ve(this,gD,"f"))}getHelp(){if(ci(this,KA,!0,"f"),!Ve(this,Ls,"f").hasCachedHelpMessage()){if(!this.parsed){let r=this[R8](Ve(this,ek,"f"),void 0,void 0,0,!0);if(Mu(r))return r.then(()=>Ve(this,Ls,"f").help())}let e=Ve(this,Fp,"f").runDefaultBuilderOn(this);if(Mu(e))return e.then(()=>Ve(this,Ls,"f").help())}return Promise.resolve(Ve(this,Ls,"f").help())}getOptions(){return Ve(this,Bi,"f")}getStrict(){return Ve(this,AD,"f")}getStrictCommands(){return Ve(this,yD,"f")}getStrictOptions(){return Ve(this,vD,"f")}global(e,r){return si("<string|array> [boolean]",[e,r],arguments.length),e=[].concat(e),r!==!1?Ve(this,Bi,"f").local=Ve(this,Bi,"f").local.filter(n=>e.indexOf(n)===-1):e.forEach(n=>{Ve(this,Bi,"f").local.includes(n)||Ve(this,Bi,"f").local.push(n)}),this}group(e,r){si("<string|array> <string>",[e,r],arguments.length);let n=Ve(this,gD,"f")[r]||Ve(this,Mw,"f")[r];Ve(this,gD,"f")[r]&&delete Ve(this,gD,"f")[r];let o={};return Ve(this,Mw,"f")[r]=(n||[]).concat(e).filter(s=>o[s]?!1:o[s]=!0),this}hide(e){return si("<string>",[e],arguments.length),Ve(this,Bi,"f").hiddenOptions.push(e),this}implies(e,r){return si("<string|object> [number|string|array]",[e,r],arguments.length),Ve(this,cp,"f").implies(e,r),this}locale(e){return si("[string]",[e],arguments.length),e===void 0?(this[Due](),Ve(this,xs,"f").y18n.getLocale()):(ci(this,hD,!1,"f"),Ve(this,xs,"f").y18n.setLocale(e),this)}middleware(e,r,n){return Ve(this,Iv,"f").addMiddleware(e,!!r,n)}nargs(e,r){return si("<string|object|array> [number]",[e,r],arguments.length),this[AF](this.nargs.bind(this),"narg",e,r),this}normalize(e){return si("<array|string>",[e],arguments.length),this[tk]("normalize",e),this}number(e){return si("<array|string>",[e],arguments.length),this[tk]("number",e),this[ED](e),this}option(e,r){if(si("<string|object> [object]",[e,r],arguments.length),typeof e=="object")Object.keys(e).forEach(n=>{this.options(n,e[n])});else{typeof r!="object"&&(r={}),this[ED](e),Ve(this,Qw,"f")&&(e==="version"||(r==null?void 0:r.alias)==="version")&&this[F3e](['"version" is a reserved word.',"Please do one of the following:",'- Disable version with `yargs.version(false)` if using "version" as an option',"- Use the built-in `yargs.version` method instead (if applicable)","- Use a different option key","https://yargs.js.org/docs/#api-reference-version"].join(`
|
|
567
567
|
`),void 0,"versionWarning"),Ve(this,Bi,"f").key[e]=!0,r.alias&&this.alias(e,r.alias);let n=r.deprecate||r.deprecated;n&&this.deprecateOption(e,n);let o=r.demand||r.required||r.require;o&&this.demand(e,o),r.demandOption&&this.demandOption(e,typeof r.demandOption=="string"?r.demandOption:void 0),r.conflicts&&this.conflicts(e,r.conflicts),"default"in r&&this.default(e,r.default),r.implies!==void 0&&this.implies(e,r.implies),r.nargs!==void 0&&this.nargs(e,r.nargs),r.config&&this.config(e,r.configParser),r.normalize&&this.normalize(e),r.choices&&this.choices(e,r.choices),r.coerce&&this.coerce(e,r.coerce),r.group&&this.group(e,r.group),(r.boolean||r.type==="boolean")&&(this.boolean(e),r.alias&&this.boolean(r.alias)),(r.array||r.type==="array")&&(this.array(e),r.alias&&this.array(r.alias)),(r.number||r.type==="number")&&(this.number(e),r.alias&&this.number(r.alias)),(r.string||r.type==="string")&&(this.string(e),r.alias&&this.string(r.alias)),(r.count||r.type==="count")&&this.count(e),typeof r.global=="boolean"&&this.global(e,r.global),r.defaultDescription&&(Ve(this,Bi,"f").defaultDescription[e]=r.defaultDescription),r.skipValidation&&this.skipValidation(e);let s=r.describe||r.description||r.desc,c=Ve(this,Ls,"f").getDescriptions();(!Object.prototype.hasOwnProperty.call(c,e)||typeof s=="string")&&this.describe(e,s),r.hidden&&this.hide(e),r.requiresArg&&this.requiresArg(e)}return this}options(e,r){return this.option(e,r)}parse(e,r,n){si("[string|array] [function|boolean|object] [function]",[e,r,n],arguments.length),this[L3e](),typeof e>"u"&&(e=Ve(this,ek,"f")),typeof r=="object"&&(ci(this,mD,r,"f"),r=n),typeof r=="function"&&(ci(this,XA,r,"f"),r=!1),r||ci(this,ek,e,"f"),Ve(this,XA,"f")&&ci(this,Cv,!1,"f");let o=this[R8](e,!!r),s=this.parsed;return Ve(this,Sv,"f").setParsed(this.parsed),Mu(o)?o.then(c=>(Ve(this,XA,"f")&&Ve(this,XA,"f").call(this,Ve(this,ZI,"f"),c,Ve(this,md,"f")),c)).catch(c=>{throw Ve(this,XA,"f")&&Ve(this,XA,"f")(c,this.parsed.argv,Ve(this,md,"f")),c}).finally(()=>{this[Lue](),this.parsed=s}):(Ve(this,XA,"f")&&Ve(this,XA,"f").call(this,Ve(this,ZI,"f"),o,Ve(this,md,"f")),this[Lue](),this.parsed=s,o)}parseAsync(e,r,n){let o=this.parse(e,r,n);return Mu(o)?o:Promise.resolve(o)}parseSync(e,r,n){let o=this.parse(e,r,n);if(Mu(o))throw new ju(".parseSync() must not be used with asynchronous builders, handlers, or middleware");return o}parserConfiguration(e){return si("<object>",[e],arguments.length),ci(this,XV,e,"f"),this}pkgConf(e,r){si("<string> [string]",[e,r],arguments.length);let n=null,o=this[Pue](r||Ve(this,dD,"f"));return o[e]&&typeof o[e]=="object"&&(n=T8(o[e],r||Ve(this,dD,"f"),this[xD]()["deep-merge-config"]||!1,Ve(this,xs,"f")),Ve(this,Bi,"f").configObjects=(Ve(this,Bi,"f").configObjects||[]).concat(n)),this}positional(e,r){si("<string> <object>",[e,r],arguments.length);let n=["default","defaultDescription","implies","normalize","choices","conflicts","coerce","type","describe","desc","description","alias"];r=KI(r,(c,u)=>c==="type"&&!["string","number","boolean"].includes(u)?!1:n.includes(c));let o=Ve(this,P8,"f").fullCommands[Ve(this,P8,"f").fullCommands.length-1],s=o?Ve(this,Fp,"f").cmdToParseOptions(o):{array:[],alias:{},default:{},demand:{}};return dF(s).forEach(c=>{let u=s[c];Array.isArray(u)?u.indexOf(e)!==-1&&(r[c]=!0):u[e]&&!(c in r)&&(r[c]=u[e])}),this.group(e,Ve(this,Ls,"f").getPositionalGroupName()),this.option(e,r)}recommendCommands(e=!0){return si("[boolean]",[e],arguments.length),ci(this,ZV,e,"f"),this}required(e,r,n){return this.demand(e,r,n)}require(e,r,n){return this.demand(e,r,n)}requiresArg(e){return si("<array|string|object> [number]",[e],arguments.length),typeof e=="string"&&Ve(this,Bi,"f").narg[e]?this:(this[AF](this.requiresArg.bind(this),"narg",e,NaN),this)}showCompletionScript(e,r){return si("[string] [string]",[e,r],arguments.length),e=e||this.$0,Ve(this,mF,"f").log(Ve(this,Sv,"f").generateCompletionScript(e,r||Ve(this,JA,"f")||"completion")),this}showHelp(e){if(si("[string|function]",[e],arguments.length),ci(this,KA,!0,"f"),!Ve(this,Ls,"f").hasCachedHelpMessage()){if(!this.parsed){let n=this[R8](Ve(this,ek,"f"),void 0,void 0,0,!0);if(Mu(n))return n.then(()=>{Ve(this,Ls,"f").showHelp(e)}),this}let r=Ve(this,Fp,"f").runDefaultBuilderOn(this);if(Mu(r))return r.then(()=>{Ve(this,Ls,"f").showHelp(e)}),this}return Ve(this,Ls,"f").showHelp(e),this}scriptName(e){return this.customScriptName=!0,this.$0=e,this}showHelpOnFail(e,r){return si("[boolean|string] [string]",[e,r],arguments.length),Ve(this,Ls,"f").showHelpOnFail(e,r),this}showVersion(e){return si("[string|function]",[e],arguments.length),Ve(this,Ls,"f").showVersion(e),this}skipValidation(e){return si("<array|string>",[e],arguments.length),this[tk]("skipValidation",e),this}strict(e){return si("[boolean]",[e],arguments.length),ci(this,AD,e!==!1,"f"),this}strictCommands(e){return si("[boolean]",[e],arguments.length),ci(this,yD,e!==!1,"f"),this}strictOptions(e){return si("[boolean]",[e],arguments.length),ci(this,vD,e!==!1,"f"),this}string(e){return si("<array|string>",[e],arguments.length),this[tk]("string",e),this[ED](e),this}terminalWidth(){return si([],0),Ve(this,xs,"f").process.stdColumns}updateLocale(e){return this.updateStrings(e)}updateStrings(e){return si("<object>",[e],arguments.length),ci(this,hD,!1,"f"),Ve(this,xs,"f").y18n.updateLocale(e),this}usage(e,r,n,o){if(si("<string|null|undefined> [string|boolean] [function|object] [function]",[e,r,n,o],arguments.length),r!==void 0){if(ig(e,null,Ve(this,xs,"f")),(e||"").match(/^\$0( |$)/))return this.command(e,r,n,o);throw new ju(".usage() description must start with $0 if being used as alias for .command()")}else return Ve(this,Ls,"f").usage(e),this}usageConfiguration(e){return si("<object>",[e],arguments.length),ci(this,eG,e,"f"),this}version(e,r,n){let o="version";if(si("[boolean|string] [string] [string]",[e,r,n],arguments.length),Ve(this,Qw,"f")&&(this[Bue](Ve(this,Qw,"f")),Ve(this,Ls,"f").version(void 0),ci(this,Qw,null,"f")),arguments.length===0)n=this[Q3e](),e=o;else if(arguments.length===1){if(e===!1)return this;n=e,e=o}else arguments.length===2&&(n=r,r=void 0);return ci(this,Qw,typeof e=="string"?e:o,"f"),r=r||Ve(this,Ls,"f").deferY18nLookup("Show version number"),Ve(this,Ls,"f").version(n||void 0),this.boolean(Ve(this,Qw,"f")),this.describe(Ve(this,Qw,"f"),r),this}wrap(e){return si("<number|null|undefined>",[e],arguments.length),Ve(this,Ls,"f").wrap(e),this}[(Fp=new WeakMap,dD=new WeakMap,P8=new WeakMap,Sv=new WeakMap,JA=new WeakMap,GV=new WeakMap,ZI=new WeakMap,hD=new WeakMap,WV=new WeakMap,Cv=new WeakMap,YV=new WeakMap,Iv=new WeakMap,Mw=new WeakMap,KA=new WeakMap,kv=new WeakMap,JV=new WeakMap,mF=new WeakMap,md=new WeakMap,Bi=new WeakMap,KV=new WeakMap,XV=new WeakMap,XA=new WeakMap,mD=new WeakMap,gF=new WeakMap,gD=new WeakMap,ek=new WeakMap,ZV=new WeakMap,xs=new WeakMap,AD=new WeakMap,yD=new WeakMap,vD=new WeakMap,Ls=new WeakMap,eG=new WeakMap,Qw=new WeakMap,cp=new WeakMap,N3e)](e){if(!e._||!e["--"])return e;e._.push.apply(e._,e["--"]);try{delete e["--"]}catch{}return e}[O3e](){return{log:(...e)=>{this[tG]()||console.log(...e),ci(this,KA,!0,"f"),Ve(this,md,"f").length&&ci(this,md,Ve(this,md,"f")+`
|
|
568
568
|
`,"f"),ci(this,md,Ve(this,md,"f")+e.join(" "),"f")},error:(...e)=>{this[tG]()||console.error(...e),ci(this,KA,!0,"f"),Ve(this,md,"f").length&&ci(this,md,Ve(this,md,"f")+`
|
|
569
|
-
`,"f"),ci(this,md,Ve(this,md,"f")+e.join(" "),"f")}}}[Bue](e){dF(Ve(this,Bi,"f")).forEach(r=>{if((o=>o==="configObjects")(r))return;let n=Ve(this,Bi,"f")[r];Array.isArray(n)?n.includes(e)&&n.splice(n.indexOf(e),1):typeof n=="object"&&delete n[e]}),delete Ve(this,Ls,"f").getDescriptions()[e]}[F3e](e,r,n){Ve(this,WV,"f")[n]||(Ve(this,xs,"f").process.emitWarning(e,r),Ve(this,WV,"f")[n]=!0)}[L3e](){Ve(this,YV,"f").push({options:Ve(this,Bi,"f"),configObjects:Ve(this,Bi,"f").configObjects.slice(0),exitProcess:Ve(this,Cv,"f"),groups:Ve(this,Mw,"f"),strict:Ve(this,AD,"f"),strictCommands:Ve(this,yD,"f"),strictOptions:Ve(this,vD,"f"),completionCommand:Ve(this,JA,"f"),output:Ve(this,md,"f"),exitError:Ve(this,ZI,"f"),hasOutput:Ve(this,KA,"f"),parsed:this.parsed,parseFn:Ve(this,XA,"f"),parseContext:Ve(this,mD,"f")}),Ve(this,Ls,"f").freeze(),Ve(this,cp,"f").freeze(),Ve(this,Fp,"f").freeze(),Ve(this,Iv,"f").freeze()}[j3e](){let e="",r;return/\b(node|iojs|electron)(\.exe)?$/.test(Ve(this,xs,"f").process.argv()[0])?r=Ve(this,xs,"f").process.argv().slice(1,2):r=Ve(this,xs,"f").process.argv().slice(0,1),e=r.map(n=>{let o=this[K3e](Ve(this,dD,"f"),n);return n.match(/^(\/|([a-zA-Z]:)?\\)/)&&o.length<n.length?o:n}).join(" ").trim(),Ve(this,xs,"f").getEnv("_")&&Ve(this,xs,"f").getProcessArgvBin()===Ve(this,xs,"f").getEnv("_")&&(e=Ve(this,xs,"f").getEnv("_").replace(`${Ve(this,xs,"f").path.dirname(Ve(this,xs,"f").process.execPath())}/`,"")),e}[xD](){return Ve(this,XV,"f")}[M3e](){return Ve(this,eG,"f")}[Due](){if(!Ve(this,hD,"f"))return;let e=Ve(this,xs,"f").getEnv("LC_ALL")||Ve(this,xs,"f").getEnv("LC_MESSAGES")||Ve(this,xs,"f").getEnv("LANG")||Ve(this,xs,"f").getEnv("LANGUAGE")||"en_US";this.locale(e.replace(/[.:].*/,""))}[Q3e](){return this[Pue]().version||"unknown"}[q3e](e){let r=e["--"]?e["--"]:e._;for(let n=0,o;(o=r[n])!==void 0;n++)Ve(this,xs,"f").Parser.looksLikeNumber(o)&&Number.isSafeInteger(Math.floor(parseFloat(`${o}`)))&&(r[n]=Number(o));return e}[Pue](e){let r=e||"*";if(Ve(this,gF,"f")[r])return Ve(this,gF,"f")[r];let n={};try{let o=e||Ve(this,xs,"f").mainFilename;!e&&Ve(this,xs,"f").path.extname(o)&&(o=Ve(this,xs,"f").path.dirname(o));let s=Ve(this,xs,"f").findUp(o,(c,u)=>{if(u.includes("package.json"))return"package.json"});ig(s,void 0,Ve(this,xs,"f")),n=JSON.parse(Ve(this,xs,"f").readFileSync(s,"utf8"))}catch{}return Ve(this,gF,"f")[r]=n||{},Ve(this,gF,"f")[r]}[tk](e,r){r=[].concat(r),r.forEach(n=>{n=this[Oue](n),Ve(this,Bi,"f")[e].push(n)})}[AF](e,r,n,o){this[Nue](e,r,n,o,(s,c,u)=>{Ve(this,Bi,"f")[s][c]=u})}[Rue](e,r,n,o){this[Nue](e,r,n,o,(s,c,u)=>{Ve(this,Bi,"f")[s][c]=(Ve(this,Bi,"f")[s][c]||[]).concat(u)})}[Nue](e,r,n,o,s){if(Array.isArray(n))n.forEach(c=>{e(c,o)});else if((c=>typeof c=="object")(n))for(let c of dF(n))e(c,n[c]);else s(r,this[Oue](n),o)}[Oue](e){return e==="__proto__"?"___proto___":e}[Fue](e,r){return this[AF](this[Fue].bind(this),"key",e,r),this}[Lue](){var e,r,n,o,s,c,u,p,f,h,g,y;let v=Ve(this,YV,"f").pop();ig(v,void 0,Ve(this,xs,"f"));let A;e=this,r=this,n=this,o=this,s=this,c=this,u=this,p=this,f=this,h=this,g=this,y=this,{options:{set value(S){ci(e,Bi,S,"f")}}.value,configObjects:A,exitProcess:{set value(S){ci(r,Cv,S,"f")}}.value,groups:{set value(S){ci(n,Mw,S,"f")}}.value,output:{set value(S){ci(o,md,S,"f")}}.value,exitError:{set value(S){ci(s,ZI,S,"f")}}.value,hasOutput:{set value(S){ci(c,KA,S,"f")}}.value,parsed:this.parsed,strict:{set value(S){ci(u,AD,S,"f")}}.value,strictCommands:{set value(S){ci(p,yD,S,"f")}}.value,strictOptions:{set value(S){ci(f,vD,S,"f")}}.value,completionCommand:{set value(S){ci(h,JA,S,"f")}}.value,parseFn:{set value(S){ci(g,XA,S,"f")}}.value,parseContext:{set value(S){ci(y,mD,S,"f")}}.value}=v,Ve(this,Bi,"f").configObjects=A,Ve(this,Ls,"f").unfreeze(),Ve(this,cp,"f").unfreeze(),Ve(this,Fp,"f").unfreeze(),Ve(this,Iv,"f").unfreeze()}[U3e](e,r){return fD(r,n=>(e(n),n))}getInternalMethods(){return{getCommandInstance:this[$3e].bind(this),getContext:this[z3e].bind(this),getHasOutput:this[H3e].bind(this),getLoggerInstance:this[V3e].bind(this),getParseContext:this[G3e].bind(this),getParserConfiguration:this[xD].bind(this),getUsageConfiguration:this[M3e].bind(this),getUsageInstance:this[W3e].bind(this),getValidationInstance:this[Y3e].bind(this),hasParseCallback:this[tG].bind(this),isGlobalContext:this[J3e].bind(this),postProcess:this[bD].bind(this),reset:this[jue].bind(this),runValidation:this[Mue].bind(this),runYargsParserAndExecuteCommands:this[R8].bind(this),setHasOutput:this[X3e].bind(this)}}[$3e](){return Ve(this,Fp,"f")}[z3e](){return Ve(this,P8,"f")}[H3e](){return Ve(this,KA,"f")}[V3e](){return Ve(this,mF,"f")}[G3e](){return Ve(this,mD,"f")||{}}[W3e](){return Ve(this,Ls,"f")}[Y3e](){return Ve(this,cp,"f")}[tG](){return!!Ve(this,XA,"f")}[J3e](){return Ve(this,JV,"f")}[bD](e,r,n,o){return n||Mu(e)||(r||(e=this[N3e](e)),(this[xD]()["parse-positional-numbers"]||this[xD]()["parse-positional-numbers"]===void 0)&&(e=this[q3e](e)),o&&(e=pD(e,this,Ve(this,Iv,"f").getMiddleware(),!1))),e}[jue](e={}){ci(this,Bi,Ve(this,Bi,"f")||{},"f");let r={};r.local=Ve(this,Bi,"f").local||[],r.configObjects=Ve(this,Bi,"f").configObjects||[];let n={};r.local.forEach(c=>{n[c]=!0,(e[c]||[]).forEach(u=>{n[u]=!0})}),Object.assign(Ve(this,gD,"f"),Object.keys(Ve(this,Mw,"f")).reduce((c,u)=>{let p=Ve(this,Mw,"f")[u].filter(f=>!(f in n));return p.length>0&&(c[u]=p),c},{})),ci(this,Mw,{},"f");let o=["array","boolean","string","skipValidation","count","normalize","number","hiddenOptions"],s=["narg","key","alias","default","defaultDescription","config","choices","demandedOptions","demandedCommands","deprecatedOptions"];return o.forEach(c=>{r[c]=(Ve(this,Bi,"f")[c]||[]).filter(u=>!n[u])}),s.forEach(c=>{r[c]=KI(Ve(this,Bi,"f")[c],u=>!n[u])}),r.envPrefix=Ve(this,Bi,"f").envPrefix,ci(this,Bi,r,"f"),ci(this,Ls,Ve(this,Ls,"f")?Ve(this,Ls,"f").reset(n):I3e(this,Ve(this,xs,"f")),"f"),ci(this,cp,Ve(this,cp,"f")?Ve(this,cp,"f").reset(n):R3e(this,Ve(this,Ls,"f"),Ve(this,xs,"f")),"f"),ci(this,Fp,Ve(this,Fp,"f")?Ve(this,Fp,"f").reset():_3e(Ve(this,Ls,"f"),Ve(this,cp,"f"),Ve(this,Iv,"f"),Ve(this,xs,"f")),"f"),Ve(this,Sv,"f")||ci(this,Sv,B3e(this,Ve(this,Ls,"f"),Ve(this,Fp,"f"),Ve(this,xs,"f")),"f"),Ve(this,Iv,"f").reset(),ci(this,JA,null,"f"),ci(this,md,"","f"),ci(this,ZI,null,"f"),ci(this,KA,!1,"f"),this.parsed=!1,this}[K3e](e,r){return Ve(this,xs,"f").path.relative(e,r)}[R8](e,r,n,o=0,s=!1){let c=!!n||s;e=e||Ve(this,ek,"f"),Ve(this,Bi,"f").__=Ve(this,xs,"f").y18n.__,Ve(this,Bi,"f").configuration=this[xD]();let u=!!Ve(this,Bi,"f").configuration["populate--"],p=Object.assign({},Ve(this,Bi,"f").configuration,{"populate--":!0}),f=Ve(this,xs,"f").Parser.detailed(e,Object.assign({},Ve(this,Bi,"f"),{configuration:{"parse-positional-numbers":!1,...p}})),h=Object.assign(f.argv,Ve(this,mD,"f")),g,y=f.aliases,v=!1,A=!1;Object.keys(h).forEach(S=>{S===Ve(this,kv,"f")&&h[S]?v=!0:S===Ve(this,Qw,"f")&&h[S]&&(A=!0)}),h.$0=this.$0,this.parsed=f,o===0&&Ve(this,Ls,"f").clearCachedHelpMessage();try{if(this[Due](),r)return this[bD](h,u,!!n,!1);Ve(this,kv,"f")&&[Ve(this,kv,"f")].concat(y[Ve(this,kv,"f")]||[]).filter(j=>j.length>1).includes(""+h._[h._.length-1])&&(h._.pop(),v=!0),ci(this,JV,!1,"f");let S=Ve(this,Fp,"f").getCommands(),E=Ve(this,Sv,"f").completionKey in h,k=v||E||s;if(h._.length){if(S.length){let P;for(let j=o||0,F;h._[j]!==void 0;j++)if(F=String(h._[j]),S.includes(F)&&F!==Ve(this,JA,"f")){let z=Ve(this,Fp,"f").runCommand(F,this,f,j+1,s,v||A||s);return this[bD](z,u,!!n,!1)}else if(!P&&F!==Ve(this,JA,"f")){P=F;break}!Ve(this,Fp,"f").hasDefaultCommand()&&Ve(this,ZV,"f")&&P&&!k&&Ve(this,cp,"f").recommendCommands(P,S)}Ve(this,JA,"f")&&h._.includes(Ve(this,JA,"f"))&&!E&&(Ve(this,Cv,"f")&&XI(!0),this.showCompletionScript(),this.exit(0))}if(Ve(this,Fp,"f").hasDefaultCommand()&&!k){let P=Ve(this,Fp,"f").runCommand(null,this,f,0,s,v||A||s);return this[bD](P,u,!!n,!1)}if(E){Ve(this,Cv,"f")&&XI(!0),e=[].concat(e);let P=e.slice(e.indexOf(`--${Ve(this,Sv,"f").completionKey}`)+1);return Ve(this,Sv,"f").getCompletion(P,(j,F)=>{if(j)throw new ju(j.message);(F||[]).forEach(z=>{Ve(this,mF,"f").log(z)}),this.exit(0)}),this[bD](h,!u,!!n,!1)}if(Ve(this,KA,"f")||(v?(Ve(this,Cv,"f")&&XI(!0),c=!0,this.showHelp("log"),this.exit(0)):A&&(Ve(this,Cv,"f")&&XI(!0),c=!0,Ve(this,Ls,"f").showVersion("log"),this.exit(0))),!c&&Ve(this,Bi,"f").skipValidation.length>0&&(c=Object.keys(h).some(P=>Ve(this,Bi,"f").skipValidation.indexOf(P)>=0&&h[P]===!0)),!c){if(f.error)throw new ju(f.error.message);if(!E){let P=this[Mue](y,{},f.error);n||(g=pD(h,this,Ve(this,Iv,"f").getMiddleware(),!0)),g=this[U3e](P,g!=null?g:h),Mu(g)&&!n&&(g=g.then(()=>pD(h,this,Ve(this,Iv,"f").getMiddleware(),!1)))}}}catch(S){if(S instanceof ju)Ve(this,Ls,"f").fail(S.message,S);else throw S}return this[bD](g!=null?g:h,u,!!n,!0)}[Mue](e,r,n,o){let s={...this.getDemandedOptions()};return c=>{if(n)throw new ju(n.message);Ve(this,cp,"f").nonOptionCount(c),Ve(this,cp,"f").requiredArguments(c,s);let u=!1;Ve(this,yD,"f")&&(u=Ve(this,cp,"f").unknownCommands(c)),Ve(this,AD,"f")&&!u?Ve(this,cp,"f").unknownArguments(c,e,r,!!o):Ve(this,vD,"f")&&Ve(this,cp,"f").unknownArguments(c,e,{},!1,!1),Ve(this,cp,"f").limitedChoices(c),Ve(this,cp,"f").implications(c),Ve(this,cp,"f").conflicting(c)}}[X3e](){ci(this,KA,!0,"f")}[ED](e){if(typeof e=="string")Ve(this,Bi,"f").key[e]=!0;else for(let r of e)Ve(this,Bi,"f").key[r]=!0}};function S3e(t){return!!t&&typeof t.getInternalMethods=="function"}var rrr=Z3e(_ue),eMe=rrr;var yb={name:"edgeone",version:"1.6.25",description:"Command-line interface for TencentCloud Pages Functions",bin:{edgeone:"./edgeone-bin/edgeone.js"},files:["./edgeone-bin/edgeone.js","./edgeone-dist/cli.js","./edgeone-dist/pages/templates","./edgeone-dist/pages/dev/runner-worker.js","./edgeone-dist/pages/observability-python/**","./edgeone-dist/libs-pages-blob-python/**","./edgeone-dist/libs-pages-agent-toolkit/**","./edgeone-dist/studio/**","./libs-pages-blob-python/**","./libs-pages-agent-toolkit/**"],author:"",keywords:["tencent","edgeone","edgefunctions","edgeone","cli","typescript"],scripts:{clean:"rimraf ./edgeone-dist ./edgeone-bin ./libs-node-ai ./libs-kv-client",bundle:"node -r esbuild-register ./scripts/bundle.ts",watch:"node -r esbuild-register ./scripts/bundle.ts watch",build:"npm run clean && npm run build:pages-ai && npm run build:kv-client && npm run prepare:blob-wheel && npm run prepare:agent-toolkit-wheel && npm run bundle","build:pages-ai":"node ./scripts/build-pages-ai.js","build:kv-client":"node ./scripts/build-kv-client.js","prepare:blob-wheel":"node ./scripts/prepare-pages-blob-wheel.js","prepare:agent-toolkit-wheel":"node ./scripts/prepare-pages-agent-toolkit-wheel.js","verify:publish-assets":"node ./scripts/verify-publish-assets.js","upload:agent-version-manifest":"node ./scripts/upload-agent-version-manifest.js",format:'prettier --write "src/**/*.{ts,tsx,js,jsx,json,md}" "scripts/**/*.{ts,js}" "*.{json,md}"',prepack:"npm run build && npm run verify:publish-assets",prepublishOnly:"npm run build && npm run verify:publish-assets",test:"vitest run","test:watch":"vitest","test:coverage":"vitest run --coverage","test:observability":"vitest run --config src/agent/observability/node/tests/vitest.config.ts && cd src/agent/observability/python && uv run pytest tests/ -q"},dependencies:{"@edgeone/framework-detect":"^0.0.2","@edgeone/is-spa":"^0.0.3","@edgeone/nuxt-pages":"1.1.0","@edgeone/opennextjs-pages":"0.2.10","@edgeone/pages-agent-toolkit":"^0.1.34","@edgeone/pages-blob":"^0.0.16",archiver:"^7.0.1",chokidar:"^4.0.1","common-path-prefix":"^1.0.0","cos-nodejs-sdk-v5":"^2.14.7","cross-spawn":"^7.0.6",crypto:"^1.0.1","detect-port":"^2.1.0",esbuild:"^0.19.2","esbuild-plugin-polyfill-node":"^0.3.0","esbuild-plugin-vue":"^0.2.4","fast-glob":"^3.3.0","fs-extra":"^11.3.1",giget:"^2.0.0","ink-table":"^3.1.0",inquirer:"^8.2.4",install:"^0.13.0",lodash:"^4.17.21","mime-types":"^3.0.1",minimatch:"^9.0.5","node-persist":"^4.0.3",npm:"^10.9.1",open:"^8.4.2","p-map":"^5.5.0","parse-gitignore":"^2.0.0",portfinder:"^1.0.32",undici:"^5.29.0",vitest:"^4.0.17"},devDependencies:{"@babel/generator":"^7.28.0","@babel/parser":"^7.28.0","@babel/traverse":"^7.28.0","@babel/types":"^7.28.0","@opentelemetry/api":"^1.9.1","@opentelemetry/core":"^1.30.1","@opentelemetry/exporter-metrics-otlp-http":"^0.55.0","@opentelemetry/exporter-trace-otlp-http":"^0.55.0","@opentelemetry/instrumentation":"^0.55.0","@opentelemetry/otlp-transformer":"^0.55.0","@opentelemetry/resources":"^1.30.1","@opentelemetry/sdk-metrics":"^1.30.1","@opentelemetry/sdk-trace-base":"^1.30.1","@opentelemetry/sdk-trace-node":"^1.30.1","@opentelemetry/semantic-conventions":"^1.40.0","@tencent/capi-nodejs-sdk":"^2.3.2","@types/http-proxy":"^1.17.12","@types/inquirer":"^9.0.8","@types/ip":"^1.1.0","@types/lodash":"^4.14.198","@types/prompts":"^2.4.4","@types/react":"^17.0.2","@types/uuid":"^9.0.3","@types/ws":"^8.5.7","@types/yargs":"^17.0.24","@vitest/coverage-v8":"^4.0.17",axios:"^1.7.9",chalk:"^5.3.0",cookie:"^1.0.2",dotenv:"^16.3.1","esbuild-register":"^3.6.0",execa:"^7.1.1","http-proxy":"^1.18.1",husky:"^8.0.3",ink:"^3.2.0",ip:"^2.0.1",json5:"^2.2.3","lint-staged":"^15.2.0",lodash:"^4.17.21",moment:"^2.30.1","node-fetch":"^3.3.2",prettier:"^3.1.1",prompts:"^2.4.2",protobufjs:"^8.4.2",react:"^17.0.2",rimraf:"^6.0.1",semiver:"^1.1.0",sirv:"^2.0.3","tencentcloud-cls-sdk-js-web":"^1.0.13","ts-node":"^10.9.2",typescript:"^5.9.3","update-check":"^1.5.4",uuid:"^9.0.0",ws:"^8.14.2",yargs:"^17.6.2",zod:"^3.23.8","zod-to-json-schema":"^3.23.5"},engines:{node:">=12"},"lint-staged":{"*.{ts,tsx,js,jsx,json,md}":["prettier --write"]}};var Lde=Bt(Wc()),jde=Bt(NF()),Mde=Bt($pe());function Dq(t,e){return function(){return t.apply(e,arguments)}}var{toString:rar}=Object.prototype,{getPrototypeOf:VG}=Object,{iterator:GG,toStringTag:Q6e}=Symbol,WG=(t=>e=>{let r=rar.call(e);return t[r]||(t[r]=r.slice(8,-1).toLowerCase())})(Object.create(null)),Ib=t=>(t=t.toLowerCase(),e=>WG(e)===t),YG=t=>e=>typeof e===t,{isArray:OD}=Array,LF=YG("undefined");function jF(t){return t!==null&&!LF(t)&&t.constructor!==null&&!LF(t.constructor)&&O0(t.constructor.isBuffer)&&t.constructor.isBuffer(t)}var q6e=Ib("ArrayBuffer");function nar(t){let e;return typeof ArrayBuffer<"u"&&ArrayBuffer.isView?e=ArrayBuffer.isView(t):e=t&&t.buffer&&q6e(t.buffer),e}var iar=YG("string"),O0=YG("function"),U6e=YG("number"),Pq=t=>t!==null&&typeof t=="object",sar=t=>t===!0||t===!1,HG=t=>{if(WG(t)!=="object")return!1;let e=VG(t);return(e===null||e===Object.prototype||Object.getPrototypeOf(e)===null)&&!(Q6e in t)&&!(GG in t)},oar=t=>{if(!Pq(t)||jF(t))return!1;try{return Object.keys(t).length===0&&Object.getPrototypeOf(t)===Object.prototype}catch{return!1}},aar=Ib("Date"),car=Ib("File"),uar=t=>!!(t&&typeof t.uri<"u"),lar=t=>t&&typeof t.getParts<"u",par=Ib("Blob"),far=Ib("FileList"),dar=t=>Pq(t)&&O0(t.pipe);function har(){return typeof globalThis<"u"?globalThis:typeof self<"u"?self:typeof window<"u"?window:typeof global<"u"?global:{}}var j6e=har(),M6e=typeof j6e.FormData<"u"?j6e.FormData:void 0,mar=t=>{if(!t)return!1;if(M6e&&t instanceof M6e)return!0;let e=VG(t);if(!e||e===Object.prototype||!O0(t.append))return!1;let r=WG(t);return r==="formdata"||r==="object"&&O0(t.toString)&&t.toString()==="[object FormData]"},gar=Ib("URLSearchParams"),[Aar,yar,xar,bar]=["ReadableStream","Request","Response","Headers"].map(Ib),Ear=t=>t.trim?t.trim():t.replace(/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g,"");function Rq(t,e,{allOwnKeys:r=!1}={}){if(t===null||typeof t>"u")return;let n,o;if(typeof t!="object"&&(t=[t]),OD(t))for(n=0,o=t.length;n<o;n++)e.call(null,t[n],n,t);else{if(jF(t))return;let s=r?Object.getOwnPropertyNames(t):Object.keys(t),c=s.length,u;for(n=0;n<c;n++)u=s[n],e.call(null,t[u],u,t)}}function $6e(t,e){if(jF(t))return null;e=e.toLowerCase();let r=Object.keys(t),n=r.length,o;for(;n-- >0;)if(o=r[n],e===o.toLowerCase())return o;return null}var ND=typeof globalThis<"u"?globalThis:typeof self<"u"?self:typeof window<"u"?window:global,z6e=t=>!LF(t)&&t!==ND;function zpe(...t){let{caseless:e,skipUndefined:r}=z6e(this)&&this||{},n={},o=(s,c)=>{if(c==="__proto__"||c==="constructor"||c==="prototype")return;let u=e&&typeof c=="string"&&$6e(n,c)||c,p=Hpe(n,u)?n[u]:void 0;HG(p)&&HG(s)?n[u]=zpe(p,s):HG(s)?n[u]=zpe({},s):OD(s)?n[u]=s.slice():(!r||!LF(s))&&(n[u]=s)};for(let s=0,c=t.length;s<c;s++){let u=t[s];if(!u||jF(u)||(Rq(u,o),typeof u!="object"||OD(u)))continue;let p=Object.getOwnPropertySymbols(u);for(let f=0;f<p.length;f++){let h=p[f];Nar.call(u,h)&&o(u[h],h)}}return n}var war=(t,e,r,{allOwnKeys:n}={})=>(Rq(e,(o,s)=>{r&&O0(o)?Object.defineProperty(t,s,{__proto__:null,value:Dq(o,r),writable:!0,enumerable:!0,configurable:!0}):Object.defineProperty(t,s,{__proto__:null,value:o,writable:!0,enumerable:!0,configurable:!0})},{allOwnKeys:n}),t),_ar=t=>(t.charCodeAt(0)===65279&&(t=t.slice(1)),t),Sar=(t,e,r,n)=>{t.prototype=Object.create(e.prototype,n),Object.defineProperty(t.prototype,"constructor",{__proto__:null,value:t,writable:!0,enumerable:!1,configurable:!0}),Object.defineProperty(t,"super",{__proto__:null,value:e.prototype}),r&&Object.assign(t.prototype,r)},Car=(t,e,r,n)=>{let o,s,c,u={};if(e=e||{},t==null)return e;do{for(o=Object.getOwnPropertyNames(t),s=o.length;s-- >0;)c=o[s],(!n||n(c,t,e))&&!u[c]&&(e[c]=t[c],u[c]=!0);t=r!==!1&&VG(t)}while(t&&(!r||r(t,e))&&t!==Object.prototype);return e},Iar=(t,e,r)=>{t=String(t),(r===void 0||r>t.length)&&(r=t.length),r-=e.length;let n=t.indexOf(e,r);return n!==-1&&n===r},kar=t=>{if(!t)return null;if(OD(t))return t;let e=t.length;if(!U6e(e))return null;let r=new Array(e);for(;e-- >0;)r[e]=t[e];return r},Tar=(t=>e=>t&&e instanceof t)(typeof Uint8Array<"u"&&VG(Uint8Array)),Bar=(t,e)=>{let n=(t&&t[GG]).call(t),o;for(;(o=n.next())&&!o.done;){let s=o.value;e.call(t,s[0],s[1])}},Dar=(t,e)=>{let r,n=[];for(;(r=t.exec(e))!==null;)n.push(r);return n},Par=Ib("HTMLFormElement"),Rar=t=>t.toLowerCase().replace(/[-_\s]([a-z\d])(\w*)/g,function(r,n,o){return n.toUpperCase()+o}),Hpe=(({hasOwnProperty:t})=>(e,r)=>t.call(e,r))(Object.prototype),{propertyIsEnumerable:Nar}=Object.prototype,Oar=Ib("RegExp"),H6e=(t,e)=>{let r=Object.getOwnPropertyDescriptors(t),n={};Rq(r,(o,s)=>{let c;(c=e(o,s,t))!==!1&&(n[s]=c||o)}),Object.defineProperties(t,n)},Far=t=>{H6e(t,(e,r)=>{if(O0(t)&&["arguments","caller","callee"].includes(r))return!1;let n=t[r];if(O0(n)){if(e.enumerable=!1,"writable"in e){e.writable=!1;return}e.set||(e.set=()=>{throw Error("Can not rewrite read-only method '"+r+"'")})}})},Lar=(t,e)=>{let r={},n=o=>{o.forEach(s=>{r[s]=!0})};return OD(t)?n(t):n(String(t).split(e)),r},jar=()=>{},Mar=(t,e)=>t!=null&&Number.isFinite(t=+t)?t:e;function Qar(t){return!!(t&&O0(t.append)&&t[Q6e]==="FormData"&&t[GG])}var qar=t=>{let e=new WeakSet,r=n=>{if(Pq(n)){if(e.has(n))return;if(jF(n))return n;if(!("toJSON"in n)){e.add(n);let o=OD(n)?[]:{};return Rq(n,(s,c)=>{let u=r(s);!LF(u)&&(o[c]=u)}),e.delete(n),o}}return n};return r(t)},Uar=Ib("AsyncFunction"),$ar=t=>t&&(Pq(t)||O0(t))&&O0(t.then)&&O0(t.catch),V6e=((t,e)=>t?setImmediate:e?((r,n)=>(ND.addEventListener("message",({source:o,data:s})=>{o===ND&&s===r&&n.length&&n.shift()()},!1),o=>{n.push(o),ND.postMessage(r,"*")}))(`axios@${Math.random()}`,[]):r=>setTimeout(r))(typeof setImmediate=="function",O0(ND.postMessage)),zar=typeof queueMicrotask<"u"?queueMicrotask.bind(ND):typeof process<"u"&&process.nextTick||V6e,Har=t=>t!=null&&O0(t[GG]),lt={isArray:OD,isArrayBuffer:q6e,isBuffer:jF,isFormData:mar,isArrayBufferView:nar,isString:iar,isNumber:U6e,isBoolean:sar,isObject:Pq,isPlainObject:HG,isEmptyObject:oar,isReadableStream:Aar,isRequest:yar,isResponse:xar,isHeaders:bar,isUndefined:LF,isDate:aar,isFile:car,isReactNativeBlob:uar,isReactNative:lar,isBlob:par,isRegExp:Oar,isFunction:O0,isStream:dar,isURLSearchParams:gar,isTypedArray:Tar,isFileList:far,forEach:Rq,merge:zpe,extend:war,trim:Ear,stripBOM:_ar,inherits:Sar,toFlatObject:Car,kindOf:WG,kindOfTest:Ib,endsWith:Iar,toArray:kar,forEachEntry:Bar,matchAll:Dar,isHTMLForm:Par,hasOwnProperty:Hpe,hasOwnProp:Hpe,reduceDescriptors:H6e,freezeMethods:Far,toObjectSet:Lar,toCamelCase:Rar,noop:jar,toFiniteNumber:Mar,findKey:$6e,global:ND,isContextDefined:z6e,isSpecCompliantForm:Qar,toJSONObject:qar,isAsyncFn:Uar,isThenable:$ar,setImmediate:V6e,asap:zar,isIterable:Har};var Var=lt.toObjectSet(["age","authorization","content-length","content-type","etag","expires","from","host","if-modified-since","if-unmodified-since","last-modified","location","max-forwards","proxy-authorization","referer","retry-after","user-agent"]),G6e=t=>{let e={},r,n,o;return t&&t.split(`
|
|
569
|
+
`,"f"),ci(this,md,Ve(this,md,"f")+e.join(" "),"f")}}}[Bue](e){dF(Ve(this,Bi,"f")).forEach(r=>{if((o=>o==="configObjects")(r))return;let n=Ve(this,Bi,"f")[r];Array.isArray(n)?n.includes(e)&&n.splice(n.indexOf(e),1):typeof n=="object"&&delete n[e]}),delete Ve(this,Ls,"f").getDescriptions()[e]}[F3e](e,r,n){Ve(this,WV,"f")[n]||(Ve(this,xs,"f").process.emitWarning(e,r),Ve(this,WV,"f")[n]=!0)}[L3e](){Ve(this,YV,"f").push({options:Ve(this,Bi,"f"),configObjects:Ve(this,Bi,"f").configObjects.slice(0),exitProcess:Ve(this,Cv,"f"),groups:Ve(this,Mw,"f"),strict:Ve(this,AD,"f"),strictCommands:Ve(this,yD,"f"),strictOptions:Ve(this,vD,"f"),completionCommand:Ve(this,JA,"f"),output:Ve(this,md,"f"),exitError:Ve(this,ZI,"f"),hasOutput:Ve(this,KA,"f"),parsed:this.parsed,parseFn:Ve(this,XA,"f"),parseContext:Ve(this,mD,"f")}),Ve(this,Ls,"f").freeze(),Ve(this,cp,"f").freeze(),Ve(this,Fp,"f").freeze(),Ve(this,Iv,"f").freeze()}[j3e](){let e="",r;return/\b(node|iojs|electron)(\.exe)?$/.test(Ve(this,xs,"f").process.argv()[0])?r=Ve(this,xs,"f").process.argv().slice(1,2):r=Ve(this,xs,"f").process.argv().slice(0,1),e=r.map(n=>{let o=this[K3e](Ve(this,dD,"f"),n);return n.match(/^(\/|([a-zA-Z]:)?\\)/)&&o.length<n.length?o:n}).join(" ").trim(),Ve(this,xs,"f").getEnv("_")&&Ve(this,xs,"f").getProcessArgvBin()===Ve(this,xs,"f").getEnv("_")&&(e=Ve(this,xs,"f").getEnv("_").replace(`${Ve(this,xs,"f").path.dirname(Ve(this,xs,"f").process.execPath())}/`,"")),e}[xD](){return Ve(this,XV,"f")}[M3e](){return Ve(this,eG,"f")}[Due](){if(!Ve(this,hD,"f"))return;let e=Ve(this,xs,"f").getEnv("LC_ALL")||Ve(this,xs,"f").getEnv("LC_MESSAGES")||Ve(this,xs,"f").getEnv("LANG")||Ve(this,xs,"f").getEnv("LANGUAGE")||"en_US";this.locale(e.replace(/[.:].*/,""))}[Q3e](){return this[Pue]().version||"unknown"}[q3e](e){let r=e["--"]?e["--"]:e._;for(let n=0,o;(o=r[n])!==void 0;n++)Ve(this,xs,"f").Parser.looksLikeNumber(o)&&Number.isSafeInteger(Math.floor(parseFloat(`${o}`)))&&(r[n]=Number(o));return e}[Pue](e){let r=e||"*";if(Ve(this,gF,"f")[r])return Ve(this,gF,"f")[r];let n={};try{let o=e||Ve(this,xs,"f").mainFilename;!e&&Ve(this,xs,"f").path.extname(o)&&(o=Ve(this,xs,"f").path.dirname(o));let s=Ve(this,xs,"f").findUp(o,(c,u)=>{if(u.includes("package.json"))return"package.json"});ig(s,void 0,Ve(this,xs,"f")),n=JSON.parse(Ve(this,xs,"f").readFileSync(s,"utf8"))}catch{}return Ve(this,gF,"f")[r]=n||{},Ve(this,gF,"f")[r]}[tk](e,r){r=[].concat(r),r.forEach(n=>{n=this[Oue](n),Ve(this,Bi,"f")[e].push(n)})}[AF](e,r,n,o){this[Nue](e,r,n,o,(s,c,u)=>{Ve(this,Bi,"f")[s][c]=u})}[Rue](e,r,n,o){this[Nue](e,r,n,o,(s,c,u)=>{Ve(this,Bi,"f")[s][c]=(Ve(this,Bi,"f")[s][c]||[]).concat(u)})}[Nue](e,r,n,o,s){if(Array.isArray(n))n.forEach(c=>{e(c,o)});else if((c=>typeof c=="object")(n))for(let c of dF(n))e(c,n[c]);else s(r,this[Oue](n),o)}[Oue](e){return e==="__proto__"?"___proto___":e}[Fue](e,r){return this[AF](this[Fue].bind(this),"key",e,r),this}[Lue](){var e,r,n,o,s,c,u,p,f,h,g,y;let v=Ve(this,YV,"f").pop();ig(v,void 0,Ve(this,xs,"f"));let A;e=this,r=this,n=this,o=this,s=this,c=this,u=this,p=this,f=this,h=this,g=this,y=this,{options:{set value(S){ci(e,Bi,S,"f")}}.value,configObjects:A,exitProcess:{set value(S){ci(r,Cv,S,"f")}}.value,groups:{set value(S){ci(n,Mw,S,"f")}}.value,output:{set value(S){ci(o,md,S,"f")}}.value,exitError:{set value(S){ci(s,ZI,S,"f")}}.value,hasOutput:{set value(S){ci(c,KA,S,"f")}}.value,parsed:this.parsed,strict:{set value(S){ci(u,AD,S,"f")}}.value,strictCommands:{set value(S){ci(p,yD,S,"f")}}.value,strictOptions:{set value(S){ci(f,vD,S,"f")}}.value,completionCommand:{set value(S){ci(h,JA,S,"f")}}.value,parseFn:{set value(S){ci(g,XA,S,"f")}}.value,parseContext:{set value(S){ci(y,mD,S,"f")}}.value}=v,Ve(this,Bi,"f").configObjects=A,Ve(this,Ls,"f").unfreeze(),Ve(this,cp,"f").unfreeze(),Ve(this,Fp,"f").unfreeze(),Ve(this,Iv,"f").unfreeze()}[U3e](e,r){return fD(r,n=>(e(n),n))}getInternalMethods(){return{getCommandInstance:this[$3e].bind(this),getContext:this[z3e].bind(this),getHasOutput:this[H3e].bind(this),getLoggerInstance:this[V3e].bind(this),getParseContext:this[G3e].bind(this),getParserConfiguration:this[xD].bind(this),getUsageConfiguration:this[M3e].bind(this),getUsageInstance:this[W3e].bind(this),getValidationInstance:this[Y3e].bind(this),hasParseCallback:this[tG].bind(this),isGlobalContext:this[J3e].bind(this),postProcess:this[bD].bind(this),reset:this[jue].bind(this),runValidation:this[Mue].bind(this),runYargsParserAndExecuteCommands:this[R8].bind(this),setHasOutput:this[X3e].bind(this)}}[$3e](){return Ve(this,Fp,"f")}[z3e](){return Ve(this,P8,"f")}[H3e](){return Ve(this,KA,"f")}[V3e](){return Ve(this,mF,"f")}[G3e](){return Ve(this,mD,"f")||{}}[W3e](){return Ve(this,Ls,"f")}[Y3e](){return Ve(this,cp,"f")}[tG](){return!!Ve(this,XA,"f")}[J3e](){return Ve(this,JV,"f")}[bD](e,r,n,o){return n||Mu(e)||(r||(e=this[N3e](e)),(this[xD]()["parse-positional-numbers"]||this[xD]()["parse-positional-numbers"]===void 0)&&(e=this[q3e](e)),o&&(e=pD(e,this,Ve(this,Iv,"f").getMiddleware(),!1))),e}[jue](e={}){ci(this,Bi,Ve(this,Bi,"f")||{},"f");let r={};r.local=Ve(this,Bi,"f").local||[],r.configObjects=Ve(this,Bi,"f").configObjects||[];let n={};r.local.forEach(c=>{n[c]=!0,(e[c]||[]).forEach(u=>{n[u]=!0})}),Object.assign(Ve(this,gD,"f"),Object.keys(Ve(this,Mw,"f")).reduce((c,u)=>{let p=Ve(this,Mw,"f")[u].filter(f=>!(f in n));return p.length>0&&(c[u]=p),c},{})),ci(this,Mw,{},"f");let o=["array","boolean","string","skipValidation","count","normalize","number","hiddenOptions"],s=["narg","key","alias","default","defaultDescription","config","choices","demandedOptions","demandedCommands","deprecatedOptions"];return o.forEach(c=>{r[c]=(Ve(this,Bi,"f")[c]||[]).filter(u=>!n[u])}),s.forEach(c=>{r[c]=KI(Ve(this,Bi,"f")[c],u=>!n[u])}),r.envPrefix=Ve(this,Bi,"f").envPrefix,ci(this,Bi,r,"f"),ci(this,Ls,Ve(this,Ls,"f")?Ve(this,Ls,"f").reset(n):I3e(this,Ve(this,xs,"f")),"f"),ci(this,cp,Ve(this,cp,"f")?Ve(this,cp,"f").reset(n):R3e(this,Ve(this,Ls,"f"),Ve(this,xs,"f")),"f"),ci(this,Fp,Ve(this,Fp,"f")?Ve(this,Fp,"f").reset():_3e(Ve(this,Ls,"f"),Ve(this,cp,"f"),Ve(this,Iv,"f"),Ve(this,xs,"f")),"f"),Ve(this,Sv,"f")||ci(this,Sv,B3e(this,Ve(this,Ls,"f"),Ve(this,Fp,"f"),Ve(this,xs,"f")),"f"),Ve(this,Iv,"f").reset(),ci(this,JA,null,"f"),ci(this,md,"","f"),ci(this,ZI,null,"f"),ci(this,KA,!1,"f"),this.parsed=!1,this}[K3e](e,r){return Ve(this,xs,"f").path.relative(e,r)}[R8](e,r,n,o=0,s=!1){let c=!!n||s;e=e||Ve(this,ek,"f"),Ve(this,Bi,"f").__=Ve(this,xs,"f").y18n.__,Ve(this,Bi,"f").configuration=this[xD]();let u=!!Ve(this,Bi,"f").configuration["populate--"],p=Object.assign({},Ve(this,Bi,"f").configuration,{"populate--":!0}),f=Ve(this,xs,"f").Parser.detailed(e,Object.assign({},Ve(this,Bi,"f"),{configuration:{"parse-positional-numbers":!1,...p}})),h=Object.assign(f.argv,Ve(this,mD,"f")),g,y=f.aliases,v=!1,A=!1;Object.keys(h).forEach(S=>{S===Ve(this,kv,"f")&&h[S]?v=!0:S===Ve(this,Qw,"f")&&h[S]&&(A=!0)}),h.$0=this.$0,this.parsed=f,o===0&&Ve(this,Ls,"f").clearCachedHelpMessage();try{if(this[Due](),r)return this[bD](h,u,!!n,!1);Ve(this,kv,"f")&&[Ve(this,kv,"f")].concat(y[Ve(this,kv,"f")]||[]).filter(j=>j.length>1).includes(""+h._[h._.length-1])&&(h._.pop(),v=!0),ci(this,JV,!1,"f");let S=Ve(this,Fp,"f").getCommands(),E=Ve(this,Sv,"f").completionKey in h,k=v||E||s;if(h._.length){if(S.length){let P;for(let j=o||0,F;h._[j]!==void 0;j++)if(F=String(h._[j]),S.includes(F)&&F!==Ve(this,JA,"f")){let z=Ve(this,Fp,"f").runCommand(F,this,f,j+1,s,v||A||s);return this[bD](z,u,!!n,!1)}else if(!P&&F!==Ve(this,JA,"f")){P=F;break}!Ve(this,Fp,"f").hasDefaultCommand()&&Ve(this,ZV,"f")&&P&&!k&&Ve(this,cp,"f").recommendCommands(P,S)}Ve(this,JA,"f")&&h._.includes(Ve(this,JA,"f"))&&!E&&(Ve(this,Cv,"f")&&XI(!0),this.showCompletionScript(),this.exit(0))}if(Ve(this,Fp,"f").hasDefaultCommand()&&!k){let P=Ve(this,Fp,"f").runCommand(null,this,f,0,s,v||A||s);return this[bD](P,u,!!n,!1)}if(E){Ve(this,Cv,"f")&&XI(!0),e=[].concat(e);let P=e.slice(e.indexOf(`--${Ve(this,Sv,"f").completionKey}`)+1);return Ve(this,Sv,"f").getCompletion(P,(j,F)=>{if(j)throw new ju(j.message);(F||[]).forEach(z=>{Ve(this,mF,"f").log(z)}),this.exit(0)}),this[bD](h,!u,!!n,!1)}if(Ve(this,KA,"f")||(v?(Ve(this,Cv,"f")&&XI(!0),c=!0,this.showHelp("log"),this.exit(0)):A&&(Ve(this,Cv,"f")&&XI(!0),c=!0,Ve(this,Ls,"f").showVersion("log"),this.exit(0))),!c&&Ve(this,Bi,"f").skipValidation.length>0&&(c=Object.keys(h).some(P=>Ve(this,Bi,"f").skipValidation.indexOf(P)>=0&&h[P]===!0)),!c){if(f.error)throw new ju(f.error.message);if(!E){let P=this[Mue](y,{},f.error);n||(g=pD(h,this,Ve(this,Iv,"f").getMiddleware(),!0)),g=this[U3e](P,g!=null?g:h),Mu(g)&&!n&&(g=g.then(()=>pD(h,this,Ve(this,Iv,"f").getMiddleware(),!1)))}}}catch(S){if(S instanceof ju)Ve(this,Ls,"f").fail(S.message,S);else throw S}return this[bD](g!=null?g:h,u,!!n,!0)}[Mue](e,r,n,o){let s={...this.getDemandedOptions()};return c=>{if(n)throw new ju(n.message);Ve(this,cp,"f").nonOptionCount(c),Ve(this,cp,"f").requiredArguments(c,s);let u=!1;Ve(this,yD,"f")&&(u=Ve(this,cp,"f").unknownCommands(c)),Ve(this,AD,"f")&&!u?Ve(this,cp,"f").unknownArguments(c,e,r,!!o):Ve(this,vD,"f")&&Ve(this,cp,"f").unknownArguments(c,e,{},!1,!1),Ve(this,cp,"f").limitedChoices(c),Ve(this,cp,"f").implications(c),Ve(this,cp,"f").conflicting(c)}}[X3e](){ci(this,KA,!0,"f")}[ED](e){if(typeof e=="string")Ve(this,Bi,"f").key[e]=!0;else for(let r of e)Ve(this,Bi,"f").key[r]=!0}};function S3e(t){return!!t&&typeof t.getInternalMethods=="function"}var rrr=Z3e(_ue),eMe=rrr;var yb={name:"edgeone",version:"1.6.26",description:"Command-line interface for TencentCloud Pages Functions",bin:{edgeone:"./edgeone-bin/edgeone.js"},files:["./edgeone-bin/edgeone.js","./edgeone-dist/cli.js","./edgeone-dist/pages/templates","./edgeone-dist/pages/dev/runner-worker.js","./edgeone-dist/pages/observability-python/**","./edgeone-dist/libs-pages-blob-python/**","./edgeone-dist/libs-pages-agent-toolkit/**","./edgeone-dist/studio/**","./libs-pages-blob-python/**","./libs-pages-agent-toolkit/**"],author:"",keywords:["tencent","edgeone","edgefunctions","edgeone","cli","typescript"],scripts:{clean:"rimraf ./edgeone-dist ./edgeone-bin ./libs-node-ai ./libs-kv-client",bundle:"node -r esbuild-register ./scripts/bundle.ts",watch:"node -r esbuild-register ./scripts/bundle.ts watch",build:"npm run clean && npm run build:pages-ai && npm run build:kv-client && npm run prepare:blob-wheel && npm run prepare:agent-toolkit-wheel && npm run bundle","build:pages-ai":"node ./scripts/build-pages-ai.js","build:kv-client":"node ./scripts/build-kv-client.js","prepare:blob-wheel":"node ./scripts/prepare-pages-blob-wheel.js","prepare:agent-toolkit-wheel":"node ./scripts/prepare-pages-agent-toolkit-wheel.js","verify:publish-assets":"node ./scripts/verify-publish-assets.js","upload:agent-version-manifest":"node ./scripts/upload-agent-version-manifest.js",format:'prettier --write "src/**/*.{ts,tsx,js,jsx,json,md}" "scripts/**/*.{ts,js}" "*.{json,md}"',prepack:"npm run build && npm run verify:publish-assets",prepublishOnly:"npm run build && npm run verify:publish-assets",test:"vitest run","test:watch":"vitest","test:coverage":"vitest run --coverage","test:observability":"vitest run --config src/agent/observability/node/tests/vitest.config.ts && cd src/agent/observability/python && uv run pytest tests/ -q"},dependencies:{"@edgeone/framework-detect":"^0.0.2","@edgeone/is-spa":"^0.0.3","@edgeone/nuxt-pages":"1.1.0","@edgeone/opennextjs-pages":"0.2.10","@edgeone/pages-agent-toolkit":"^0.1.34","@edgeone/pages-blob":"^0.0.16",archiver:"^7.0.1",chokidar:"^4.0.1","common-path-prefix":"^1.0.0","cos-nodejs-sdk-v5":"^2.14.7","cross-spawn":"^7.0.6",crypto:"^1.0.1","detect-port":"^2.1.0",esbuild:"^0.19.2","esbuild-plugin-polyfill-node":"^0.3.0","esbuild-plugin-vue":"^0.2.4","fast-glob":"^3.3.0","fs-extra":"^11.3.1",giget:"^2.0.0","ink-table":"^3.1.0",inquirer:"^8.2.4",install:"^0.13.0",lodash:"^4.17.21","mime-types":"^3.0.1",minimatch:"^9.0.5","node-persist":"^4.0.3",npm:"^10.9.1",open:"^8.4.2","p-map":"^5.5.0","parse-gitignore":"^2.0.0",portfinder:"^1.0.32",undici:"^5.29.0",vitest:"^4.0.17"},devDependencies:{"@babel/generator":"^7.28.0","@babel/parser":"^7.28.0","@babel/traverse":"^7.28.0","@babel/types":"^7.28.0","@opentelemetry/api":"^1.9.1","@opentelemetry/core":"^1.30.1","@opentelemetry/exporter-metrics-otlp-http":"^0.55.0","@opentelemetry/exporter-trace-otlp-http":"^0.55.0","@opentelemetry/instrumentation":"^0.55.0","@opentelemetry/otlp-transformer":"^0.55.0","@opentelemetry/resources":"^1.30.1","@opentelemetry/sdk-metrics":"^1.30.1","@opentelemetry/sdk-trace-base":"^1.30.1","@opentelemetry/sdk-trace-node":"^1.30.1","@opentelemetry/semantic-conventions":"^1.40.0","@tencent/capi-nodejs-sdk":"^2.3.2","@types/http-proxy":"^1.17.12","@types/inquirer":"^9.0.8","@types/ip":"^1.1.0","@types/lodash":"^4.14.198","@types/prompts":"^2.4.4","@types/react":"^17.0.2","@types/uuid":"^9.0.3","@types/ws":"^8.5.7","@types/yargs":"^17.0.24","@vitest/coverage-v8":"^4.0.17",axios:"^1.7.9",chalk:"^5.3.0",cookie:"^1.0.2",dotenv:"^16.3.1","esbuild-register":"^3.6.0",execa:"^7.1.1","http-proxy":"^1.18.1",husky:"^8.0.3",ink:"^3.2.0",ip:"^2.0.1",json5:"^2.2.3","lint-staged":"^15.2.0",lodash:"^4.17.21",moment:"^2.30.1","node-fetch":"^3.3.2",prettier:"^3.1.1",prompts:"^2.4.2",protobufjs:"^8.4.2",react:"^17.0.2",rimraf:"^6.0.1",semiver:"^1.1.0",sirv:"^2.0.3","tencentcloud-cls-sdk-js-web":"^1.0.13","ts-node":"^10.9.2",typescript:"^5.9.3","update-check":"^1.5.4",uuid:"^9.0.0",ws:"^8.14.2",yargs:"^17.6.2",zod:"^3.23.8","zod-to-json-schema":"^3.23.5"},engines:{node:">=12"},"lint-staged":{"*.{ts,tsx,js,jsx,json,md}":["prettier --write"]}};var Lde=Bt(Wc()),jde=Bt(NF()),Mde=Bt($pe());function Dq(t,e){return function(){return t.apply(e,arguments)}}var{toString:rar}=Object.prototype,{getPrototypeOf:VG}=Object,{iterator:GG,toStringTag:Q6e}=Symbol,WG=(t=>e=>{let r=rar.call(e);return t[r]||(t[r]=r.slice(8,-1).toLowerCase())})(Object.create(null)),Ib=t=>(t=t.toLowerCase(),e=>WG(e)===t),YG=t=>e=>typeof e===t,{isArray:OD}=Array,LF=YG("undefined");function jF(t){return t!==null&&!LF(t)&&t.constructor!==null&&!LF(t.constructor)&&O0(t.constructor.isBuffer)&&t.constructor.isBuffer(t)}var q6e=Ib("ArrayBuffer");function nar(t){let e;return typeof ArrayBuffer<"u"&&ArrayBuffer.isView?e=ArrayBuffer.isView(t):e=t&&t.buffer&&q6e(t.buffer),e}var iar=YG("string"),O0=YG("function"),U6e=YG("number"),Pq=t=>t!==null&&typeof t=="object",sar=t=>t===!0||t===!1,HG=t=>{if(WG(t)!=="object")return!1;let e=VG(t);return(e===null||e===Object.prototype||Object.getPrototypeOf(e)===null)&&!(Q6e in t)&&!(GG in t)},oar=t=>{if(!Pq(t)||jF(t))return!1;try{return Object.keys(t).length===0&&Object.getPrototypeOf(t)===Object.prototype}catch{return!1}},aar=Ib("Date"),car=Ib("File"),uar=t=>!!(t&&typeof t.uri<"u"),lar=t=>t&&typeof t.getParts<"u",par=Ib("Blob"),far=Ib("FileList"),dar=t=>Pq(t)&&O0(t.pipe);function har(){return typeof globalThis<"u"?globalThis:typeof self<"u"?self:typeof window<"u"?window:typeof global<"u"?global:{}}var j6e=har(),M6e=typeof j6e.FormData<"u"?j6e.FormData:void 0,mar=t=>{if(!t)return!1;if(M6e&&t instanceof M6e)return!0;let e=VG(t);if(!e||e===Object.prototype||!O0(t.append))return!1;let r=WG(t);return r==="formdata"||r==="object"&&O0(t.toString)&&t.toString()==="[object FormData]"},gar=Ib("URLSearchParams"),[Aar,yar,xar,bar]=["ReadableStream","Request","Response","Headers"].map(Ib),Ear=t=>t.trim?t.trim():t.replace(/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g,"");function Rq(t,e,{allOwnKeys:r=!1}={}){if(t===null||typeof t>"u")return;let n,o;if(typeof t!="object"&&(t=[t]),OD(t))for(n=0,o=t.length;n<o;n++)e.call(null,t[n],n,t);else{if(jF(t))return;let s=r?Object.getOwnPropertyNames(t):Object.keys(t),c=s.length,u;for(n=0;n<c;n++)u=s[n],e.call(null,t[u],u,t)}}function $6e(t,e){if(jF(t))return null;e=e.toLowerCase();let r=Object.keys(t),n=r.length,o;for(;n-- >0;)if(o=r[n],e===o.toLowerCase())return o;return null}var ND=typeof globalThis<"u"?globalThis:typeof self<"u"?self:typeof window<"u"?window:global,z6e=t=>!LF(t)&&t!==ND;function zpe(...t){let{caseless:e,skipUndefined:r}=z6e(this)&&this||{},n={},o=(s,c)=>{if(c==="__proto__"||c==="constructor"||c==="prototype")return;let u=e&&typeof c=="string"&&$6e(n,c)||c,p=Hpe(n,u)?n[u]:void 0;HG(p)&&HG(s)?n[u]=zpe(p,s):HG(s)?n[u]=zpe({},s):OD(s)?n[u]=s.slice():(!r||!LF(s))&&(n[u]=s)};for(let s=0,c=t.length;s<c;s++){let u=t[s];if(!u||jF(u)||(Rq(u,o),typeof u!="object"||OD(u)))continue;let p=Object.getOwnPropertySymbols(u);for(let f=0;f<p.length;f++){let h=p[f];Nar.call(u,h)&&o(u[h],h)}}return n}var war=(t,e,r,{allOwnKeys:n}={})=>(Rq(e,(o,s)=>{r&&O0(o)?Object.defineProperty(t,s,{__proto__:null,value:Dq(o,r),writable:!0,enumerable:!0,configurable:!0}):Object.defineProperty(t,s,{__proto__:null,value:o,writable:!0,enumerable:!0,configurable:!0})},{allOwnKeys:n}),t),_ar=t=>(t.charCodeAt(0)===65279&&(t=t.slice(1)),t),Sar=(t,e,r,n)=>{t.prototype=Object.create(e.prototype,n),Object.defineProperty(t.prototype,"constructor",{__proto__:null,value:t,writable:!0,enumerable:!1,configurable:!0}),Object.defineProperty(t,"super",{__proto__:null,value:e.prototype}),r&&Object.assign(t.prototype,r)},Car=(t,e,r,n)=>{let o,s,c,u={};if(e=e||{},t==null)return e;do{for(o=Object.getOwnPropertyNames(t),s=o.length;s-- >0;)c=o[s],(!n||n(c,t,e))&&!u[c]&&(e[c]=t[c],u[c]=!0);t=r!==!1&&VG(t)}while(t&&(!r||r(t,e))&&t!==Object.prototype);return e},Iar=(t,e,r)=>{t=String(t),(r===void 0||r>t.length)&&(r=t.length),r-=e.length;let n=t.indexOf(e,r);return n!==-1&&n===r},kar=t=>{if(!t)return null;if(OD(t))return t;let e=t.length;if(!U6e(e))return null;let r=new Array(e);for(;e-- >0;)r[e]=t[e];return r},Tar=(t=>e=>t&&e instanceof t)(typeof Uint8Array<"u"&&VG(Uint8Array)),Bar=(t,e)=>{let n=(t&&t[GG]).call(t),o;for(;(o=n.next())&&!o.done;){let s=o.value;e.call(t,s[0],s[1])}},Dar=(t,e)=>{let r,n=[];for(;(r=t.exec(e))!==null;)n.push(r);return n},Par=Ib("HTMLFormElement"),Rar=t=>t.toLowerCase().replace(/[-_\s]([a-z\d])(\w*)/g,function(r,n,o){return n.toUpperCase()+o}),Hpe=(({hasOwnProperty:t})=>(e,r)=>t.call(e,r))(Object.prototype),{propertyIsEnumerable:Nar}=Object.prototype,Oar=Ib("RegExp"),H6e=(t,e)=>{let r=Object.getOwnPropertyDescriptors(t),n={};Rq(r,(o,s)=>{let c;(c=e(o,s,t))!==!1&&(n[s]=c||o)}),Object.defineProperties(t,n)},Far=t=>{H6e(t,(e,r)=>{if(O0(t)&&["arguments","caller","callee"].includes(r))return!1;let n=t[r];if(O0(n)){if(e.enumerable=!1,"writable"in e){e.writable=!1;return}e.set||(e.set=()=>{throw Error("Can not rewrite read-only method '"+r+"'")})}})},Lar=(t,e)=>{let r={},n=o=>{o.forEach(s=>{r[s]=!0})};return OD(t)?n(t):n(String(t).split(e)),r},jar=()=>{},Mar=(t,e)=>t!=null&&Number.isFinite(t=+t)?t:e;function Qar(t){return!!(t&&O0(t.append)&&t[Q6e]==="FormData"&&t[GG])}var qar=t=>{let e=new WeakSet,r=n=>{if(Pq(n)){if(e.has(n))return;if(jF(n))return n;if(!("toJSON"in n)){e.add(n);let o=OD(n)?[]:{};return Rq(n,(s,c)=>{let u=r(s);!LF(u)&&(o[c]=u)}),e.delete(n),o}}return n};return r(t)},Uar=Ib("AsyncFunction"),$ar=t=>t&&(Pq(t)||O0(t))&&O0(t.then)&&O0(t.catch),V6e=((t,e)=>t?setImmediate:e?((r,n)=>(ND.addEventListener("message",({source:o,data:s})=>{o===ND&&s===r&&n.length&&n.shift()()},!1),o=>{n.push(o),ND.postMessage(r,"*")}))(`axios@${Math.random()}`,[]):r=>setTimeout(r))(typeof setImmediate=="function",O0(ND.postMessage)),zar=typeof queueMicrotask<"u"?queueMicrotask.bind(ND):typeof process<"u"&&process.nextTick||V6e,Har=t=>t!=null&&O0(t[GG]),lt={isArray:OD,isArrayBuffer:q6e,isBuffer:jF,isFormData:mar,isArrayBufferView:nar,isString:iar,isNumber:U6e,isBoolean:sar,isObject:Pq,isPlainObject:HG,isEmptyObject:oar,isReadableStream:Aar,isRequest:yar,isResponse:xar,isHeaders:bar,isUndefined:LF,isDate:aar,isFile:car,isReactNativeBlob:uar,isReactNative:lar,isBlob:par,isRegExp:Oar,isFunction:O0,isStream:dar,isURLSearchParams:gar,isTypedArray:Tar,isFileList:far,forEach:Rq,merge:zpe,extend:war,trim:Ear,stripBOM:_ar,inherits:Sar,toFlatObject:Car,kindOf:WG,kindOfTest:Ib,endsWith:Iar,toArray:kar,forEachEntry:Bar,matchAll:Dar,isHTMLForm:Par,hasOwnProperty:Hpe,hasOwnProp:Hpe,reduceDescriptors:H6e,freezeMethods:Far,toObjectSet:Lar,toCamelCase:Rar,noop:jar,toFiniteNumber:Mar,findKey:$6e,global:ND,isContextDefined:z6e,isSpecCompliantForm:Qar,toJSONObject:qar,isAsyncFn:Uar,isThenable:$ar,setImmediate:V6e,asap:zar,isIterable:Har};var Var=lt.toObjectSet(["age","authorization","content-length","content-type","etag","expires","from","host","if-modified-since","if-unmodified-since","last-modified","location","max-forwards","proxy-authorization","referer","retry-after","user-agent"]),G6e=t=>{let e={},r,n,o;return t&&t.split(`
|
|
570
570
|
`).forEach(function(c){o=c.indexOf(":"),r=c.substring(0,o).trim().toLowerCase(),n=c.substring(o+1).trim(),!(!r||e[r]&&Var[r])&&(r==="set-cookie"?e[r]?e[r].push(n):e[r]=[n]:e[r]=e[r]?e[r]+", "+n:n)}),e};function Gar(t){let e=0,r=t.length;for(;e<r;){let n=t.charCodeAt(e);if(n!==9&&n!==32)break;e+=1}for(;r>e;){let n=t.charCodeAt(r-1);if(n!==9&&n!==32)break;r-=1}return e===0&&r===t.length?t:t.slice(e,r)}var War=new RegExp("[\\u0000-\\u0008\\u000a-\\u001f\\u007f]+","g"),Yar=new RegExp("[^\\u0009\\u0020-\\u007e\\u0080-\\u00ff]+","g");function Vpe(t,e){return lt.isArray(t)?t.map(r=>Vpe(r,e)):Gar(String(t).replace(e,""))}var W6e=t=>Vpe(t,War),Jar=t=>Vpe(t,Yar);function MF(t){let e=Object.create(null);return lt.forEach(t.toJSON(),(r,n)=>{e[n]=Jar(r)}),e}var Y6e=Symbol("internals");function Nq(t){return t&&String(t).trim().toLowerCase()}function JG(t){return t===!1||t==null?t:lt.isArray(t)?t.map(JG):W6e(String(t))}function Kar(t){let e=Object.create(null),r=/([^\s,;=]+)\s*(?:=\s*([^,;]+))?/g,n;for(;n=r.exec(t);)e[n[1]]=n[2];return e}var Xar=t=>/^[-_a-zA-Z0-9^`|~,!#$%&'*+.]+$/.test(t.trim());function Gpe(t,e,r,n,o){if(lt.isFunction(n))return n.call(this,e,r);if(o&&(e=r),!!lt.isString(e)){if(lt.isString(n))return e.indexOf(n)!==-1;if(lt.isRegExp(n))return n.test(e)}}function Zar(t){return t.trim().toLowerCase().replace(/([a-z\d])(\w*)/g,(e,r,n)=>r.toUpperCase()+n)}function ecr(t,e){let r=lt.toCamelCase(" "+e);["get","set","has"].forEach(n=>{Object.defineProperty(t,n+r,{__proto__:null,value:function(o,s,c){return this[n].call(this,e,o,s,c)},configurable:!0})})}var QF=class{constructor(e){e&&this.set(e)}set(e,r,n){let o=this;function s(u,p,f){let h=Nq(p);if(!h)return;let g=lt.findKey(o,h);(!g||o[g]===void 0||f===!0||f===void 0&&o[g]!==!1)&&(o[g||p]=JG(u))}let c=(u,p)=>lt.forEach(u,(f,h)=>s(f,h,p));if(lt.isPlainObject(e)||e instanceof this.constructor)c(e,r);else if(lt.isString(e)&&(e=e.trim())&&!Xar(e))c(G6e(e),r);else if(lt.isObject(e)&<.isIterable(e)){let u={},p,f;for(let h of e){if(!lt.isArray(h))throw new TypeError("Object iterator must return a key-value pair");u[f=h[0]]=(p=u[f])?lt.isArray(p)?[...p,h[1]]:[p,h[1]]:h[1]}c(u,r)}else e!=null&&s(r,e,n);return this}get(e,r){if(e=Nq(e),e){let n=lt.findKey(this,e);if(n){let o=this[n];if(!r)return o;if(r===!0)return Kar(o);if(lt.isFunction(r))return r.call(this,o,n);if(lt.isRegExp(r))return r.exec(o);throw new TypeError("parser must be boolean|regexp|function")}}}has(e,r){if(e=Nq(e),e){let n=lt.findKey(this,e);return!!(n&&this[n]!==void 0&&(!r||Gpe(this,this[n],n,r)))}return!1}delete(e,r){let n=this,o=!1;function s(c){if(c=Nq(c),c){let u=lt.findKey(n,c);u&&(!r||Gpe(n,n[u],u,r))&&(delete n[u],o=!0)}}return lt.isArray(e)?e.forEach(s):s(e),o}clear(e){let r=Object.keys(this),n=r.length,o=!1;for(;n--;){let s=r[n];(!e||Gpe(this,this[s],s,e,!0))&&(delete this[s],o=!0)}return o}normalize(e){let r=this,n={};return lt.forEach(this,(o,s)=>{let c=lt.findKey(n,s);if(c){r[c]=JG(o),delete r[s];return}let u=e?Zar(s):String(s).trim();u!==s&&delete r[s],r[u]=JG(o),n[u]=!0}),this}concat(...e){return this.constructor.concat(this,...e)}toJSON(e){let r=Object.create(null);return lt.forEach(this,(n,o)=>{n!=null&&n!==!1&&(r[o]=e&<.isArray(n)?n.join(", "):n)}),r}[Symbol.iterator](){return Object.entries(this.toJSON())[Symbol.iterator]()}toString(){return Object.entries(this.toJSON()).map(([e,r])=>e+": "+r).join(`
|
|
571
571
|
`)}getSetCookie(){return this.get("set-cookie")||[]}get[Symbol.toStringTag](){return"AxiosHeaders"}static from(e){return e instanceof this?e:new this(e)}static concat(e,...r){let n=new this(e);return r.forEach(o=>n.set(o)),n}static accessor(e){let n=(this[Y6e]=this[Y6e]={accessors:{}}).accessors,o=this.prototype;function s(c){let u=Nq(c);n[u]||(ecr(o,c),n[u]=!0)}return lt.isArray(e)?e.forEach(s):s(e),this}};QF.accessor(["Content-Type","Content-Length","Accept","Accept-Encoding","User-Agent","Authorization"]);lt.reduceDescriptors(QF.prototype,({value:t},e)=>{let r=e[0].toUpperCase()+e.slice(1);return{get:()=>t,set(n){this[r]=n}}});lt.freezeMethods(QF);var qu=QF;var tcr="[REDACTED ****]";function rcr(t){if(lt.hasOwnProp(t,"toJSON"))return!0;let e=Object.getPrototypeOf(t);for(;e&&e!==Object.prototype;){if(lt.hasOwnProp(e,"toJSON"))return!0;e=Object.getPrototypeOf(e)}return!1}function ncr(t,e){let r=new Set(e.map(s=>String(s).toLowerCase())),n=[],o=s=>{if(s===null||typeof s!="object"||lt.isBuffer(s))return s;if(n.indexOf(s)!==-1)return;s instanceof qu&&(s=s.toJSON()),n.push(s);let c;if(lt.isArray(s))c=[],s.forEach((u,p)=>{let f=o(u);lt.isUndefined(f)||(c[p]=f)});else{if(!lt.isPlainObject(s)&&rcr(s))return n.pop(),s;c=Object.create(null);for(let[u,p]of Object.entries(s)){let f=r.has(u.toLowerCase())?tcr:o(p);lt.isUndefined(f)||(c[u]=f)}}return n.pop(),c};return o(t)}var ph=class t extends Error{static from(e,r,n,o,s,c){let u=new t(e.message,r||e.code,n,o,s);return u.cause=e,u.name=e.name,e.status!=null&&u.status==null&&(u.status=e.status),c&&Object.assign(u,c),u}constructor(e,r,n,o,s){super(e),Object.defineProperty(this,"message",{__proto__:null,value:e,enumerable:!0,writable:!0,configurable:!0}),this.name="AxiosError",this.isAxiosError=!0,r&&(this.code=r),n&&(this.config=n),o&&(this.request=o),s&&(this.response=s,this.status=s.status)}toJSON(){let e=this.config,r=e&<.hasOwnProp(e,"redact")?e.redact:void 0,n=lt.isArray(r)&&r.length>0?ncr(e,r):lt.toJSONObject(e);return{message:this.message,name:this.name,description:this.description,number:this.number,fileName:this.fileName,lineNumber:this.lineNumber,columnNumber:this.columnNumber,stack:this.stack,config:n,code:this.code,status:this.status}}};ph.ERR_BAD_OPTION_VALUE="ERR_BAD_OPTION_VALUE";ph.ERR_BAD_OPTION="ERR_BAD_OPTION";ph.ECONNABORTED="ECONNABORTED";ph.ETIMEDOUT="ETIMEDOUT";ph.ECONNREFUSED="ECONNREFUSED";ph.ERR_NETWORK="ERR_NETWORK";ph.ERR_FR_TOO_MANY_REDIRECTS="ERR_FR_TOO_MANY_REDIRECTS";ph.ERR_DEPRECATED="ERR_DEPRECATED";ph.ERR_BAD_RESPONSE="ERR_BAD_RESPONSE";ph.ERR_BAD_REQUEST="ERR_BAD_REQUEST";ph.ERR_CANCELED="ERR_CANCELED";ph.ERR_NOT_SUPPORT="ERR_NOT_SUPPORT";ph.ERR_INVALID_URL="ERR_INVALID_URL";ph.ERR_FORM_DATA_DEPTH_EXCEEDED="ERR_FORM_DATA_DEPTH_EXCEEDED";var Jr=ph;var K5e=Bt(J5e(),1),cW=K5e.default;function mfe(t){return lt.isPlainObject(t)||lt.isArray(t)}function X5e(t){return lt.endsWith(t,"[]")?t.slice(0,-2):t}function hfe(t,e,r){return t?t.concat(e).map(function(o,s){return o=X5e(o),!r&&s?"["+o+"]":o}).join(r?".":""):e}function Uur(t){return lt.isArray(t)&&!t.some(mfe)}var $ur=lt.toFlatObject(lt,{},null,function(e){return/^is[A-Z]/.test(e)});function zur(t,e,r){if(!lt.isObject(t))throw new TypeError("target must be an object");e=e||new(cW||FormData),r=lt.toFlatObject(r,{metaTokens:!0,dots:!1,indexes:!1},!1,function(E,k){return!lt.isUndefined(k[E])});let n=r.metaTokens,o=r.visitor||g,s=r.dots,c=r.indexes,u=r.Blob||typeof Blob<"u"&&Blob,p=r.maxDepth===void 0?100:r.maxDepth,f=u&<.isSpecCompliantForm(e);if(!lt.isFunction(o))throw new TypeError("visitor must be a function");function h(S){if(S===null)return"";if(lt.isDate(S))return S.toISOString();if(lt.isBoolean(S))return S.toString();if(!f&<.isBlob(S))throw new Jr("Blob is not supported. Use a Buffer instead.");return lt.isArrayBuffer(S)||lt.isTypedArray(S)?f&&typeof Blob=="function"?new Blob([S]):Buffer.from(S):S}function g(S,E,k){let P=S;if(lt.isReactNative(e)&<.isReactNativeBlob(S))return e.append(hfe(k,E,s),h(S)),!1;if(S&&!k&&typeof S=="object"){if(lt.endsWith(E,"{}"))E=n?E:E.slice(0,-2),S=JSON.stringify(S);else if(lt.isArray(S)&&Uur(S)||(lt.isFileList(S)||lt.endsWith(E,"[]"))&&(P=lt.toArray(S)))return E=X5e(E),P.forEach(function(F,z){!(lt.isUndefined(F)||F===null)&&e.append(c===!0?hfe([E],z,s):c===null?E:E+"[]",h(F))}),!1}return mfe(S)?!0:(e.append(hfe(k,E,s),h(S)),!1)}let y=[],v=Object.assign($ur,{defaultVisitor:g,convertValue:h,isVisitable:mfe});function A(S,E,k=0){if(!lt.isUndefined(S)){if(k>p)throw new Jr("Object is too deeply nested ("+k+" levels). Max depth: "+p,Jr.ERR_FORM_DATA_DEPTH_EXCEEDED);if(y.indexOf(S)!==-1)throw new Error("Circular reference detected in "+E.join("."));y.push(S),lt.forEach(S,function(j,F){(!(lt.isUndefined(j)||j===null)&&o.call(e,j,lt.isString(F)?F.trim():F,E,v))===!0&&A(j,E?E.concat(F):[F],k+1)}),y.pop()}}if(!lt.isObject(t))throw new TypeError("data must be an object");return A(t),e}var ck=zur;function Z5e(t){let e={"!":"%21","'":"%27","(":"%28",")":"%29","~":"%7E","%20":"+"};return encodeURIComponent(t).replace(/[!'()~]|%20/g,function(n){return e[n]})}function e9e(t,e){this._pairs=[],t&&ck(t,this,e)}var t9e=e9e.prototype;t9e.append=function(e,r){this._pairs.push([e,r])};t9e.toString=function(e){let r=e?function(n){return e.call(this,n,Z5e)}:Z5e;return this._pairs.map(function(o){return r(o[0])+"="+r(o[1])},"").join("&")};var r9e=e9e;function Hur(t){return encodeURIComponent(t).replace(/%3A/gi,":").replace(/%24/g,"$").replace(/%2C/gi,",").replace(/%20/g,"+")}function LD(t,e,r){if(!e)return t;let n=r&&r.encode||Hur,o=lt.isFunction(r)?{serialize:r}:r,s=o&&o.serialize,c;if(s?c=s(e,o):c=lt.isURLSearchParams(e)?e.toString():new r9e(e,o).toString(n),c){let u=t.indexOf("#");u!==-1&&(t=t.slice(0,u)),t+=(t.indexOf("?")===-1?"?":"&")+c}return t}var gfe=class{constructor(){this.handlers=[]}use(e,r,n){return this.handlers.push({fulfilled:e,rejected:r,synchronous:n?n.synchronous:!1,runWhen:n?n.runWhen:null}),this.handlers.length-1}eject(e){this.handlers[e]&&(this.handlers[e]=null)}clear(){this.handlers&&(this.handlers=[])}forEach(e){lt.forEach(this.handlers,function(n){n!==null&&e(n)})}},Afe=gfe;var uk={silentJSONParsing:!0,forcedJSONParsing:!0,clarifyTimeoutError:!1,legacyInterceptorReqResOrdering:!0,advertiseZstdAcceptEncoding:!1};var o9e=Bt(require("crypto"),1);var n9e=Bt(require("url"),1),i9e=n9e.default.URLSearchParams;var yfe="abcdefghijklmnopqrstuvwxyz",s9e="0123456789",a9e={DIGIT:s9e,ALPHA:yfe,ALPHA_DIGIT:yfe+yfe.toUpperCase()+s9e},Vur=(t=16,e=a9e.ALPHA_DIGIT)=>{let r="",{length:n}=e,o=new Uint32Array(t);o9e.default.randomFillSync(o);for(let s=0;s<t;s++)r+=e[o[s]%n];return r},c9e={isNode:!0,classes:{URLSearchParams:i9e,FormData:cW,Blob:typeof Blob<"u"&&Blob||null},ALPHABET:a9e,generateString:Vur,protocols:["http","https","file","data"]};var bfe={};pue(bfe,{hasBrowserEnv:()=>xfe,hasStandardBrowserEnv:()=>Gur,hasStandardBrowserWebWorkerEnv:()=>Wur,navigator:()=>vfe,origin:()=>Yur});var xfe=typeof window<"u"&&typeof document<"u",vfe=typeof navigator=="object"&&navigator||void 0,Gur=xfe&&(!vfe||["ReactNative","NativeScript","NS"].indexOf(vfe.product)<0),Wur=typeof WorkerGlobalScope<"u"&&self instanceof WorkerGlobalScope&&typeof self.importScripts=="function",Yur=xfe&&window.location.href||"http://localhost";var Va={...bfe,...c9e};function Efe(t,e){return ck(t,new Va.classes.URLSearchParams,{visitor:function(r,n,o,s){return Va.isNode&<.isBuffer(r)?(this.append(n,r.toString("base64")),!1):s.defaultVisitor.apply(this,arguments)},...e})}function Jur(t){return lt.matchAll(/\w+|\[(\w*)]/g,t).map(e=>e[0]==="[]"?"":e[1]||e[0])}function Kur(t){let e={},r=Object.keys(t),n,o=r.length,s;for(n=0;n<o;n++)s=r[n],e[s]=t[s];return e}function Xur(t){function e(r,n,o,s){let c=r[s++];if(c==="__proto__")return!0;let u=Number.isFinite(+c),p=s>=r.length;return c=!c&<.isArray(o)?o.length:c,p?(lt.hasOwnProp(o,c)?o[c]=lt.isArray(o[c])?o[c].concat(n):[o[c],n]:o[c]=n,!u):((!lt.hasOwnProp(o,c)||!lt.isObject(o[c]))&&(o[c]=[]),e(r,n,o[c],s)&<.isArray(o[c])&&(o[c]=Kur(o[c])),!u)}if(lt.isFormData(t)&<.isFunction(t.entries)){let r={};return lt.forEachEntry(t,(n,o)=>{e(Jur(n),o,r,0)}),r}return null}var uW=Xur;var HF=(t,e)=>t!=null&<.hasOwnProp(t,e)?t[e]:void 0;function Zur(t,e,r){if(lt.isString(t))try{return(e||JSON.parse)(t),lt.trim(t)}catch(n){if(n.name!=="SyntaxError")throw n}return(r||JSON.stringify)(t)}var wfe={transitional:uk,adapter:["xhr","http","fetch"],transformRequest:[function(e,r){let n=r.getContentType()||"",o=n.indexOf("application/json")>-1,s=lt.isObject(e);if(s&<.isHTMLForm(e)&&(e=new FormData(e)),lt.isFormData(e))return o?JSON.stringify(uW(e)):e;if(lt.isArrayBuffer(e)||lt.isBuffer(e)||lt.isStream(e)||lt.isFile(e)||lt.isBlob(e)||lt.isReadableStream(e))return e;if(lt.isArrayBufferView(e))return e.buffer;if(lt.isURLSearchParams(e))return r.setContentType("application/x-www-form-urlencoded;charset=utf-8",!1),e.toString();let u;if(s){let p=HF(this,"formSerializer");if(n.indexOf("application/x-www-form-urlencoded")>-1)return Efe(e,p).toString();if((u=lt.isFileList(e))||n.indexOf("multipart/form-data")>-1){let f=HF(this,"env"),h=f&&f.FormData;return ck(u?{"files[]":e}:e,h&&new h,p)}}return s||o?(r.setContentType("application/json",!1),Zur(e)):e}],transformResponse:[function(e){let r=HF(this,"transitional")||wfe.transitional,n=r&&r.forcedJSONParsing,o=HF(this,"responseType"),s=o==="json";if(lt.isResponse(e)||lt.isReadableStream(e))return e;if(e&<.isString(e)&&(n&&!o||s)){let u=!(r&&r.silentJSONParsing)&&s;try{return JSON.parse(e,HF(this,"parseReviver"))}catch(p){if(u)throw p.name==="SyntaxError"?Jr.from(p,Jr.ERR_BAD_RESPONSE,this,null,HF(this,"response")):p}}return e}],timeout:0,xsrfCookieName:"XSRF-TOKEN",xsrfHeaderName:"X-XSRF-TOKEN",maxContentLength:-1,maxBodyLength:-1,env:{FormData:Va.classes.FormData,Blob:Va.classes.Blob},validateStatus:function(e){return e>=200&&e<300},headers:{common:{Accept:"application/json, text/plain, */*","Content-Type":void 0}}};lt.forEach(["delete","get","head","post","put","patch","query"],t=>{wfe.headers[t]={}});var VF=wfe;function Mq(t,e){let r=this||VF,n=e||r,o=qu.from(n.headers),s=n.data;return lt.forEach(t,function(u){s=u.call(r,s,o.normalize(),e?e.status:void 0)}),o.normalize(),s}function Qq(t){return!!(t&&t.__CANCEL__)}var _fe=class extends Jr{constructor(e,r,n){super(e==null?"canceled":e,Jr.ERR_CANCELED,r,n),this.name="CanceledError",this.__CANCEL__=!0}},ty=_fe;function Hw(t,e,r){let n=r.config.validateStatus;!r.status||!n||n(r.status)?t(r):e(new Jr("Request failed with status code "+r.status,r.status>=400&&r.status<500?Jr.ERR_BAD_REQUEST:Jr.ERR_BAD_RESPONSE,r.config,r.request,r))}function Sfe(t){return typeof t!="string"?!1:/^([a-z][a-z\d+\-.]*:)?\/\//i.test(t)}function Cfe(t,e){return e?t.replace(/\/?\/$/,"")+"/"+e.replace(/^\/+/,""):t}function jD(t,e,r){let n=!Sfe(e);return t&&(n||r===!1)?Cfe(t,e):e}var elr={ftp:21,gopher:70,http:80,https:443,ws:80,wss:443};function tlr(t){try{return new URL(t)}catch{return null}}function u9e(t){var e=(typeof t=="string"?tlr(t):t)||{},r=e.protocol,n=e.host,o=e.port;if(typeof n!="string"||!n||typeof r!="string"||(r=r.split(":",1)[0],n=n.replace(/:\d*$/,""),o=parseInt(o)||elr[r]||0,!rlr(n,o)))return"";var s=Ife(r+"_proxy")||Ife("all_proxy");return s&&s.indexOf("://")===-1&&(s=r+"://"+s),s}function rlr(t,e){var r=Ife("no_proxy").toLowerCase();return r?r==="*"?!1:r.split(/[,\s]/).every(function(n){if(!n)return!0;var o=n.match(/^(.+):(\d+)$/),s=o?o[1]:n,c=o?parseInt(o[2]):0;return c&&c!==e?!0:/^[.*]/.test(s)?(s.charAt(0)==="*"&&(s=s.slice(1)),!t.endsWith(s)):t!==s}):!0}function Ife(t){return process.env[t.toLowerCase()]||process.env[t.toUpperCase()]||""}var sde=Bt(S9e(),1),t7e=Bt(require("http"),1),r7e=Bt(require("https"),1),n7e=Bt(require("http2"),1),i7e=Bt(require("util"),1),ide=require("path"),s7e=Bt(Yfe(),1),ry=Bt(require("zlib"),1);var rC="1.17.0";function Yq(t){let e=/^([-+\w]{1,25}):(?:\/\/)?/.exec(t);return e&&e[1]||""}var rpr=/^([^,;]+\/[^,;]+)?((?:;[^,;=]+=[^,;]+)*)(;base64)?,([\s\S]*)$/;function Jfe(t,e,r){let n=r&&r.Blob||Va.classes.Blob,o=Yq(t);if(e===void 0&&n&&(e=!0),o==="data"){t=o.length?t.slice(o.length+1):t;let s=rpr.exec(t);if(!s)throw new Jr("Invalid URL",Jr.ERR_INVALID_URL);let c=s[1],u=s[2],p=s[3]?"base64":"utf8",f=s[4],h;c?h=u?c+u:c:u&&(h="text/plain"+u);let g=Buffer.from(decodeURIComponent(f),p);if(e){if(!n)throw new Jr("Blob is not supported",Jr.ERR_NOT_SUPPORT);return new n([g],{type:h})}return g}throw new Jr("Unsupported protocol "+o,Jr.ERR_NOT_SUPPORT)}var Rv=Bt(require("stream"),1);var P9e=Bt(require("stream"),1);var Kfe=Symbol("internals"),Xfe=class extends P9e.default.Transform{constructor(e){e=lt.toFlatObject(e,{maxRate:0,chunkSize:64*1024,minChunkSize:100,timeWindow:500,ticksRate:2,samplesCount:15},null,(n,o)=>!lt.isUndefined(o[n])),super({readableHighWaterMark:e.chunkSize});let r=this[Kfe]={timeWindow:e.timeWindow,chunkSize:e.chunkSize,maxRate:e.maxRate,minChunkSize:e.minChunkSize,bytesSeen:0,isCaptured:!1,notifiedBytesLoaded:0,ts:Date.now(),bytes:0,onReadCallback:null};this.on("newListener",n=>{n==="progress"&&(r.isCaptured||(r.isCaptured=!0))})}_read(e){let r=this[Kfe];return r.onReadCallback&&r.onReadCallback(),super._read(e)}_transform(e,r,n){let o=this[Kfe],s=o.maxRate,c=this.readableHighWaterMark,u=o.timeWindow,p=1e3/u,f=s/p,h=o.minChunkSize!==!1?Math.max(o.minChunkSize,f*.01):0,g=(v,A)=>{let S=Buffer.byteLength(v);o.bytesSeen+=S,o.bytes+=S,o.isCaptured&&this.emit("progress",o.bytesSeen),this.push(v)?process.nextTick(A):o.onReadCallback=()=>{o.onReadCallback=null,process.nextTick(A)}},y=(v,A)=>{let S=Buffer.byteLength(v),E=null,k=c,P,j=0;if(s){let F=Date.now();(!o.ts||(j=F-o.ts)>=u)&&(o.ts=F,P=f-o.bytes,o.bytes=P<0?-P:0,j=0),P=f-o.bytes}if(s){if(P<=0)return setTimeout(()=>{A(null,v)},u-j);P<k&&(k=P)}k&&S>k&&S-k>h&&(E=v.subarray(k),v=v.subarray(0,k)),g(v,E?()=>{process.nextTick(A,null,E)}:A)};y(e,function v(A,S){if(A)return n(A);S?y(S,v):n(null)})}},Zfe=Xfe;var o7e=require("events");var N9e=Bt(require("util"),1),O9e=require("stream");var{asyncIterator:R9e}=Symbol,npr=async function*(t){t.stream?yield*t.stream():t.arrayBuffer?yield await t.arrayBuffer():t[R9e]?yield*t[R9e]():yield t},mW=npr;var ipr=Va.ALPHABET.ALPHA_DIGIT+"-_",Jq=typeof TextEncoder=="function"?new TextEncoder:new N9e.default.TextEncoder,zD=`\r
|
|
572
572
|
`,spr=Jq.encode(zD),opr=2,ede=class{constructor(e,r){let{escapeName:n}=this.constructor,o=lt.isString(r),s=`Content-Disposition: form-data; name="${n(e)}"${!o&&r.name?`; filename="${n(r.name)}"`:""}${zD}`;if(o)r=Jq.encode(String(r).replace(/\r?\n|\r\n?/g,zD));else{let c=String(r.type||"application/octet-stream").replace(/[\r\n]/g,"");s+=`Content-Type: ${c}${zD}`}this.headers=Jq.encode(s+zD),this.contentLength=o?r.byteLength:r.size,this.size=this.headers.byteLength+this.contentLength+opr,this.name=e,this.value=r}async*encode(){yield this.headers;let{value:e}=this;lt.isTypedArray(e)?yield e:yield*mW(e),yield spr}static escapeName(e){return String(e).replace(/[\r\n"]/g,r=>({"\r":"%0D","\n":"%0A",'"':"%22"})[r])}},apr=(t,e,r)=>{let{tag:n="form-data-boundary",size:o=25,boundary:s=n+"-"+Va.generateString(o,ipr)}=r||{};if(!lt.isFormData(t))throw new TypeError("FormData instance required");if(s.length<1||s.length>70)throw new Error("boundary must be 1-70 characters long");let c=Jq.encode("--"+s+zD),u=Jq.encode("--"+s+"--"+zD),p=u.byteLength,f=Array.from(t.entries()).map(([g,y])=>{let v=new ede(g,y);return p+=v.size,v});p+=c.byteLength*f.length,p=lt.toFiniteNumber(p);let h={"Content-Type":`multipart/form-data; boundary=${s}`};return Number.isFinite(p)&&(h["Content-Length"]=p),e&&e(h),O9e.Readable.from(async function*(){for(let g of f)yield c,yield*g.encode();yield u}())},F9e=apr;var L9e=Bt(require("stream"),1),tde=class extends L9e.default.Transform{__transform(e,r,n){this.push(e),n()}_transform(e,r,n){if(e.length!==0&&(this._transform=this.__transform,e[0]!==120)){let o=Buffer.alloc(2);o[0]=120,o[1]=156,this.push(o,r)}this.__transform(e,r,n)}},j9e=tde;var M9e=Bt(require("http2"),1),Q9e=Bt(require("util"),1),rde=class{constructor(){this.sessions=Object.create(null)}getSession(e,r){r=Object.assign({sessionTimeout:1e3},r);let n=this.sessions[e];if(n){let g=n.length;for(let y=0;y<g;y++){let[v,A]=n[y];if(!v.destroyed&&!v.closed&&Q9e.default.isDeepStrictEqual(A,r))return v}}let o=M9e.default.connect(e,r),s,c,u=()=>{if(s)return;s=!0,c&&(clearTimeout(c),c=null);let g=n,y=g.length,v=y;for(;v--;)if(g[v][0]===o){y===1?delete this.sessions[e]:g.splice(v,1),o.closed||o.close();return}},p=o.request,{sessionTimeout:f}=r;if(f!=null){let g=0;o.request=function(){let y=p.apply(this,arguments);return g++,c&&(clearTimeout(c),c=null),y.once("close",()=>{--g||(c=setTimeout(()=>{c=null,u()},f))}),y}}o.once("close",u);let h=[o,r];return n?n.push(h):n=this.sessions[e]=[h],o}},q9e=rde;var cpr=(t,e)=>lt.isAsyncFn(t)?function(...r){let n=r.pop();t.apply(this,r).then(o=>{try{e?n(null,...e(o)):n(null,o)}catch(s){n(s)}},n)}:t,U9e=cpr;var upr=new Set(["localhost"]),H9e=t=>{let e=t.split(".");return e.length!==4||e[0]!=="127"?!1:e.every(r=>/^\d+$/.test(r)&&Number(r)>=0&&Number(r)<=255)},lpr=t=>{if(t==="::1")return!0;let e=t.match(/^::ffff:(\d+\.\d+\.\d+\.\d+)$/i);if(e)return H9e(e[1]);let r=t.match(/^::ffff:([0-9a-f]{1,4}):([0-9a-f]{1,4})$/i);if(r){let o=parseInt(r[1],16);return o>=32512&&o<=32767}let n=t.split(":");if(n.length===8){for(let o=0;o<7;o++)if(!/^0+$/.test(n[o]))return!1;return/^0*1$/.test(n[7])}return!1},$9e=t=>t?upr.has(t)||H9e(t)?!0:lpr(t):!1,ppr={http:80,https:443,ws:80,wss:443,ftp:21},fpr=t=>{let e=t,r=0;if(e.charAt(0)==="["){let s=e.indexOf("]");if(s!==-1){let c=e.slice(1,s),u=e.slice(s+1);return u.charAt(0)===":"&&/^\d+$/.test(u.slice(1))&&(r=Number.parseInt(u.slice(1),10)),[c,r]}}let n=e.indexOf(":"),o=e.lastIndexOf(":");return n!==-1&&n===o&&/^\d+$/.test(e.slice(o+1))&&(r=Number.parseInt(e.slice(o+1),10),e=e.slice(0,o)),[e,r]},dpr=/^(?:::|(?:0{1,4}:){1,4}:|(?:0{1,4}:){5})ffff:(\d+\.\d+\.\d+\.\d+)$/i,hpr=/^(?:::|(?:0{1,4}:){1,4}:|(?:0{1,4}:){5})ffff:([0-9a-f]{1,4}):([0-9a-f]{1,4})$/i,mpr=t=>{if(typeof t!="string"||t.indexOf(":")===-1)return t;let e=t.match(dpr);if(e)return e[1];let r=t.match(hpr);if(r){let n=parseInt(r[1],16),o=parseInt(r[2],16);return`${n>>8}.${n&255}.${o>>8}.${o&255}`}return t},z9e=t=>t&&(t.charAt(0)==="["&&t.charAt(t.length-1)==="]"&&(t=t.slice(1,-1)),mpr(t.replace(/\.+$/,"")));function nde(t){let e;try{e=new URL(t)}catch{return!1}let r=(process.env.no_proxy||process.env.NO_PROXY||"").toLowerCase();if(!r)return!1;if(r==="*")return!0;let n=Number.parseInt(e.port,10)||ppr[e.protocol.split(":",1)[0]]||0,o=z9e(e.hostname.toLowerCase());return r.split(/[\s,]+/).some(s=>{if(!s)return!1;let[c,u]=fpr(s);return c=z9e(c),!c||u&&u!==n?!1:(c.charAt(0)==="*"&&(c=c.slice(1)),c.charAt(0)==="."?o.endsWith(c):o===c||$9e(o)&&$9e(c))})}function gpr(t,e){t=t||10;let r=new Array(t),n=new Array(t),o=0,s=0,c;return e=e!==void 0?e:1e3,function(p){let f=Date.now(),h=n[s];c||(c=f),r[o]=p,n[o]=f;let g=s,y=0;for(;g!==o;)y+=r[g++],g=g%t;if(o=(o+1)%t,o===s&&(s=(s+1)%t),f-c<e)return;let v=h&&f-h;return v?Math.round(y*1e3/v):void 0}}var V9e=gpr;function Apr(t,e){let r=0,n=1e3/e,o,s,c=(f,h=Date.now())=>{r=h,o=null,s&&(clearTimeout(s),s=null),t(...f)};return[(...f)=>{let h=Date.now(),g=h-r;g>=n?c(f,h):(o=f,s||(s=setTimeout(()=>{s=null,c(o)},n-g)))},()=>o&&c(o)]}var G9e=Apr;var nC=(t,e,r=3)=>{let n=0,o=V9e(50,250);return G9e(s=>{if(!s||typeof s.loaded!="number")return;let c=s.loaded,u=s.lengthComputable?s.total:void 0,p=u!=null?Math.min(c,u):c,f=Math.max(0,p-n),h=o(f);n=Math.max(n,p);let g={loaded:p,total:u,progress:u?p/u:void 0,bytes:f,rate:h||void 0,estimated:h&&u?(u-p)/h:void 0,event:s,lengthComputable:u!=null,[e?"download":"upload"]:!0};t(g)},r)},KF=(t,e)=>{let r=t!=null;return[n=>e[0]({lengthComputable:r,total:t,loaded:n}),e[1]]},XF=t=>(...e)=>lt.asap(()=>t(...e));function Kq(t){if(!t||typeof t!="string"||!t.startsWith("data:"))return 0;let e=t.indexOf(",");if(e<0)return 0;let r=t.slice(5,e),n=t.slice(e+1);if(/;base64/i.test(r)){let c=n.length,u=n.length;for(let v=0;v<u;v++)if(n.charCodeAt(v)===37&&v+2<u){let A=n.charCodeAt(v+1),S=n.charCodeAt(v+2);(A>=48&&A<=57||A>=65&&A<=70||A>=97&&A<=102)&&(S>=48&&S<=57||S>=65&&S<=70||S>=97&&S<=102)&&(c-=2,v+=2)}let p=0,f=u-1,h=v=>v>=2&&n.charCodeAt(v-2)===37&&n.charCodeAt(v-1)===51&&(n.charCodeAt(v)===68||n.charCodeAt(v)===100);f>=0&&(n.charCodeAt(f)===61?(p++,f--):h(f)&&(p++,f-=3)),p===1&&f>=0&&(n.charCodeAt(f)===61||h(f))&&p++;let y=Math.floor(c/4)*3-(p||0);return y>0?y:0}if(typeof Buffer<"u"&&typeof Buffer.byteLength=="function")return Buffer.byteLength(n,"utf8");let s=0;for(let c=0,u=n.length;c<u;c++){let p=n.charCodeAt(c);if(p<128)s+=1;else if(p<2048)s+=2;else if(p>=55296&&p<=56319&&c+1<u){let f=n.charCodeAt(c+1);f>=56320&&f<=57343?(s+=4,c++):s+=3}else s+=3}return s}var W9e={flush:ry.default.constants.Z_SYNC_FLUSH,finishFlush:ry.default.constants.Z_SYNC_FLUSH},ypr={flush:ry.default.constants.BROTLI_OPERATION_FLUSH,finishFlush:ry.default.constants.BROTLI_OPERATION_FLUSH},vpr={flush:ry.default.constants.ZSTD_e_flush,finishFlush:ry.default.constants.ZSTD_e_flush},a7e=lt.isFunction(ry.default.createBrotliDecompress),c7e=lt.isFunction(ry.default.createZstdDecompress),u7e="gzip, compress, deflate"+(a7e?", br":""),xpr=u7e+(c7e?", zstd":""),{http:bpr,https:Epr}=s7e.default,l7e=/https:?/,wpr=["content-type","content-length"];function _pr(t,e,r){if(r!=="content-only"){t.set(e);return}Object.entries(e).forEach(([n,o])=>{wpr.includes(n.toLowerCase())&&t.set(n,o)})}var Y9e=Symbol("axios.http.socketListener"),gW=Symbol("axios.http.currentReq"),p7e=Symbol("axios.http.installedTunnel"),Spr=new Map,J9e=new WeakMap;function Cpr(t,e){let r=t.protocol+"//"+t.hostname+":"+(t.port||"")+"#"+(t.auth||""),n=e?J9e.get(e)||J9e.set(e,new Map).get(e):Spr,o=n.get(r);if(o)return o;let s=e&&e.options?{...e.options,...t}:t;if(o=new sde.default(s),e&&e.options){let c={...e.options},u=o.callback;o.callback=function(f,h){return u.call(this,f,{...c,...h})}}return o[p7e]=!0,n.set(r,o),o}var K9e=Va.protocols.map(t=>t+":"),X9e=t=>{if(!lt.isString(t))return t;try{return decodeURIComponent(t)}catch{return t}},Z9e=(t,[e,r])=>(t.on("end",r).on("error",r),e),Ipr=new q9e;function kpr(t,e,r){t.beforeRedirects.proxy&&t.beforeRedirects.proxy(t),t.beforeRedirects.auth&&t.beforeRedirects.auth(t),t.beforeRedirects.config&&t.beforeRedirects.config(t,e,r)}function f7e(t,e,r,n,o){let s=e;if(!s&&s!==!1){let c=u9e(r);c&&(nde(r)||(s=new URL(c)))}if(n&&t.headers)for(let c of Object.keys(t.headers))c.toLowerCase()==="proxy-authorization"&&delete t.headers[c];if(n&&t.agent&&t.agent[p7e]&&(t.agent=void 0),s){let c=s instanceof URL,u=y=>c||lt.hasOwnProp(s,y)?s[y]:void 0,p=u("username"),f=u("password"),h=lt.hasOwnProp(s,"auth")?s.auth:void 0;if(p&&(h=(p||"")+":"+(f||"")),h){let y=typeof h=="object",v=y&<.hasOwnProp(h,"username")?h.username:void 0,A=y&<.hasOwnProp(h,"password")?h.password:void 0;if(!!(v||A))h=(v||"")+":"+(A||"");else if(y)throw new Jr("Invalid proxy authorization",Jr.ERR_BAD_OPTION,{proxy:s})}if(l7e.test(t.protocol)){if(!(o instanceof sde.default)){let y=u("hostname")||u("host"),v=u("port"),A=u("protocol"),S=A?A.includes(":")?A:`${A}:`:"http:",E=y&&y.includes(":")&&!y.startsWith("[")?`[${y}]`:y,k=new URL(`${S}//${E}${v?":"+v:""}`),P={protocol:k.protocol,hostname:k.hostname.replace(/^\[|\]$/g,""),port:k.port,auth:h&&typeof h=="string"?h:void 0};k.protocol==="https:"&&(P.ALPNProtocols=["http/1.1"]);let j=Cpr(P,o);t.agent=j,t.agents&&(t.agents.https=j)}}else{if(h){let S=Buffer.from(h,"utf8").toString("base64");t.headers["Proxy-Authorization"]="Basic "+S}let y=!1;for(let S of Object.keys(t.headers))if(S.toLowerCase()==="host"){y=!0;break}y||(t.headers.host=t.hostname+(t.port?":"+t.port:""));let v=u("hostname")||u("host");t.hostname=v,t.host=v,t.port=u("port"),t.path=r;let A=u("protocol");A&&(t.protocol=A.includes(":")?A:`${A}:`)}}t.beforeRedirects.proxy=function(u){f7e(u,e,u.href,!0,o)}}var Tpr=typeof process<"u"&<.kindOf(process)==="process",Bpr=t=>new Promise((e,r)=>{let n,o,s=(p,f)=>{o||(o=!0,n&&n(p,f))},c=p=>{s(p),e(p)},u=p=>{s(p,!0),r(p)};t(c,u,p=>n=p).catch(u)}),Dpr=({address:t,family:e})=>{if(!lt.isString(t))throw TypeError("address must be a string");return{address:t,family:e||(t.indexOf(".")<0?6:4)}},e7e=(t,e)=>Dpr(lt.isObject(t)?t:{address:t,family:e}),Ppr={request(t,e){let r=t.protocol+"//"+t.hostname+":"+(t.port||(t.protocol==="https:"?443:80)),{http2Options:n,headers:o}=t,s=Ipr.getSession(r,n),{HTTP2_HEADER_SCHEME:c,HTTP2_HEADER_METHOD:u,HTTP2_HEADER_PATH:p,HTTP2_HEADER_STATUS:f}=n7e.default.constants,h={[c]:t.protocol.replace(":",""),[u]:t.method,[p]:t.path};lt.forEach(o,(y,v)=>{v.charAt(0)!==":"&&(h[v]=y)});let g=s.request(h);return g.once("response",y=>{let v=g;y=Object.assign({},y);let A=y[f];delete y[f],v.headers=y,v.statusCode=+A,e(v)}),g}},d7e=Tpr&&function(e){return Bpr(async function(n,o,s){let c=_t=>lt.hasOwnProp(e,_t)?e[_t]:void 0,u=c("transitional")||uk,p=c("data"),f=c("lookup"),h=c("family"),g=c("httpVersion");g===void 0&&(g=1);let y=c("http2Options"),v=c("responseType"),A=c("responseEncoding"),S=e.method.toUpperCase(),E,k=!1,P,j;if(g=+g,Number.isNaN(g))throw TypeError(`Invalid protocol version: '${e.httpVersion}' is not a number`);if(g!==1&&g!==2)throw TypeError(`Unsupported protocol version '${g}'`);let F=g===2;if(f){let _t=U9e(f,At=>lt.isArray(At)?At:[At]);f=(At,dt,B)=>{_t(At,dt,(Je,ct,Ce)=>{if(Je)return B(Je);let we=lt.isArray(ct)?ct.map(We=>e7e(We)):[e7e(ct,Ce)];dt.all?B(Je,we):B(Je,we[0].address,we[0].family)})}}let z=new o7e.EventEmitter;function re(_t){try{z.emit("abort",!_t||_t.type?new ty(null,e,P):_t)}catch{}}function Y(){j&&(clearTimeout(j),j=null)}function me(){let _t=e.timeout?"timeout of "+e.timeout+"ms exceeded":"timeout exceeded";return e.timeoutErrorMessage&&(_t=e.timeoutErrorMessage),new Jr(_t,u.clarifyTimeoutError?Jr.ETIMEDOUT:Jr.ECONNABORTED,e,P)}z.once("abort",o);let ne=()=>{Y(),e.cancelToken&&e.cancelToken.unsubscribe(re),e.signal&&e.signal.removeEventListener("abort",re),z.removeAllListeners()};(e.cancelToken||e.signal)&&(e.cancelToken&&e.cancelToken.subscribe(re),e.signal&&(e.signal.aborted?re():e.signal.addEventListener("abort",re))),s((_t,At)=>{if(E=!0,Y(),At){k=!0,ne();return}let{data:dt}=_t;if(dt instanceof Rv.default.Readable||dt instanceof Rv.default.Duplex){let B=Rv.default.finished(dt,()=>{B(),ne()})}else ne()});let ce=jD(e.baseURL,e.url,e.allowAbsoluteUrls),ee=new URL(ce,Va.hasBrowserEnv?Va.origin:void 0),ge=ee.protocol||K9e[0];if(ge==="data:"){if(e.maxContentLength>-1){let At=String(e.url||ce||"");if(Kq(At)>e.maxContentLength)return o(new Jr("maxContentLength size of "+e.maxContentLength+" exceeded",Jr.ERR_BAD_RESPONSE,e))}let _t;if(S!=="GET")return Hw(n,o,{status:405,statusText:"method not allowed",headers:{},config:e});try{_t=Jfe(e.url,v==="blob",{Blob:e.env&&e.env.Blob})}catch(At){throw Jr.from(At,Jr.ERR_BAD_REQUEST,e)}return v==="text"?(_t=_t.toString(A),(!A||A==="utf8")&&(_t=lt.stripBOM(_t))):v==="stream"&&(_t=Rv.default.Readable.from(_t)),Hw(n,o,{data:_t,status:200,statusText:"OK",headers:new qu,config:e})}if(K9e.indexOf(ge)===-1)return o(new Jr("Unsupported protocol "+ge,Jr.ERR_BAD_REQUEST,e));let J=qu.from(e.headers).normalize();J.set("User-Agent","axios/"+rC,!1);let{onUploadProgress:U,onDownloadProgress:de}=e,Oe=e.maxRate,ye,be;if(lt.isSpecCompliantForm(p)){let _t=J.getContentType(/boundary=([-_\w\d]{10,70})/i);p=F9e(p,At=>{J.set(At)},{tag:`axios-${rC}-boundary`,boundary:_t&&_t[1]||void 0})}else if(lt.isFormData(p)&<.isFunction(p.getHeaders)&&p.getHeaders!==Object.prototype.getHeaders){if(_pr(J,p.getHeaders(),c("formDataHeaderPolicy")),!J.hasContentLength())try{let _t=await i7e.default.promisify(p.getLength).call(p);Number.isFinite(_t)&&_t>=0&&J.setContentLength(_t)}catch{}}else if(lt.isBlob(p)||lt.isFile(p))p.size&&J.setContentType(p.type||"application/octet-stream"),J.setContentLength(p.size||0),p=Rv.default.Readable.from(mW(p));else if(p&&!lt.isStream(p)){if(!Buffer.isBuffer(p))if(lt.isArrayBuffer(p))p=Buffer.from(new Uint8Array(p));else if(lt.isString(p))p=Buffer.from(p,"utf-8");else return o(new Jr("Data after transformation must be a string, an ArrayBuffer, a Buffer, or a Stream",Jr.ERR_BAD_REQUEST,e));if(J.setContentLength(p.length,!1),e.maxBodyLength>-1&&p.length>e.maxBodyLength)return o(new Jr("Request body larger than maxBodyLength limit",Jr.ERR_BAD_REQUEST,e))}let Ne=lt.toFiniteNumber(J.getContentLength());lt.isArray(Oe)?(ye=Oe[0],be=Oe[1]):ye=be=Oe,p&&(U||ye)&&(lt.isStream(p)||(p=Rv.default.Readable.from(p,{objectMode:!1})),p=Rv.default.pipeline([p,new Zfe({maxRate:lt.toFiniteNumber(ye)})],lt.noop),U&&p.on("progress",Z9e(p,KF(Ne,nC(XF(U),!1,3)))));let He,ft=c("auth");if(ft){let _t=ft.username||"",At=ft.password||"";He=_t+":"+At}if(!He&&(ee.username||ee.password)){let _t=X9e(ee.username),At=X9e(ee.password);He=_t+":"+At}He&&J.delete("authorization");let wt;try{wt=LD(ee.pathname+ee.search,e.params,e.paramsSerializer).replace(/^\?/,"")}catch(_t){let At=new Error(_t.message);return At.config=e,At.url=e.url,At.exists=!0,o(At)}J.set("Accept-Encoding",lt.hasOwnProp(u,"advertiseZstdAcceptEncoding")&&u.advertiseZstdAcceptEncoding===!0?xpr:u7e,!1);let Ye=Object.assign(Object.create(null),{path:wt,method:S,headers:MF(J),agents:{http:e.httpAgent,https:e.httpsAgent},auth:He,protocol:ge,family:h,beforeRedirect:kpr,beforeRedirects:Object.create(null),http2Options:y});!lt.isUndefined(f)&&(Ye.lookup=f);let Ke=c("socketPath");if(Ke){if(typeof Ke!="string")return o(new Jr("socketPath must be a string",Jr.ERR_BAD_OPTION_VALUE,e));let _t=c("allowedSocketPaths");if(_t!=null){let At=Array.isArray(_t)?_t:[_t],dt=(0,ide.resolve)(Ke);if(!At.some(Je=>typeof Je=="string"&&(0,ide.resolve)(Je)===dt))return o(new Jr(`socketPath "${Ke}" is not permitted by allowedSocketPaths`,Jr.ERR_BAD_OPTION_VALUE,e))}Ye.socketPath=Ke}else Ye.hostname=ee.hostname.startsWith("[")?ee.hostname.slice(1,-1):ee.hostname,Ye.port=ee.port,f7e(Ye,e.proxy,ge+"//"+ee.hostname+(ee.port?":"+ee.port:"")+Ye.path,!1,e.httpsAgent);let Me,et=!1,yt=l7e.test(Ye.protocol);if(Ye.agent==null&&(Ye.agent=yt?e.httpsAgent:e.httpAgent),F)Me=Ppr;else{let _t=c("transport");if(_t)Me=_t;else if(e.maxRedirects===0)Me=yt?r7e.default:t7e.default,et=!0;else{e.maxRedirects&&(Ye.maxRedirects=e.maxRedirects);let At=c("beforeRedirect");if(At&&(Ye.beforeRedirects.config=At),He){let dt=ee.origin,B=He;Ye.beforeRedirects.auth=function(ct){try{new URL(ct.href).origin===dt&&(ct.auth=B)}catch{}}}Me=yt?Epr:bpr}}e.maxBodyLength>-1?Ye.maxBodyLength=e.maxBodyLength:Ye.maxBodyLength=1/0,Ye.insecureHTTPParser=!!c("insecureHTTPParser"),P=Me.request(Ye,function(At){if(Y(),P.destroyed)return;let dt=[At],B=lt.toFiniteNumber(At.headers["content-length"]);if(de||be){let we=new Zfe({maxRate:lt.toFiniteNumber(be)});de&&we.on("progress",Z9e(we,KF(B,nC(XF(de),!0,3)))),dt.push(we)}let Je=At,ct=At.req||P;if(e.decompress!==!1&&At.headers["content-encoding"])switch((S==="HEAD"||At.statusCode===204)&&delete At.headers["content-encoding"],(At.headers["content-encoding"]||"").toLowerCase()){case"gzip":case"x-gzip":case"compress":case"x-compress":dt.push(ry.default.createUnzip(W9e)),delete At.headers["content-encoding"];break;case"deflate":dt.push(new j9e),dt.push(ry.default.createUnzip(W9e)),delete At.headers["content-encoding"];break;case"br":a7e&&(dt.push(ry.default.createBrotliDecompress(ypr)),delete At.headers["content-encoding"]);break;case"zstd":c7e&&(dt.push(ry.default.createZstdDecompress(vpr)),delete At.headers["content-encoding"]);break}Je=dt.length>1?Rv.default.pipeline(dt,lt.noop):dt[0];let Ce={status:At.statusCode,statusText:At.statusMessage,headers:new qu(At.headers),config:e,request:ct};if(v==="stream"){if(e.maxContentLength>-1){let we=e.maxContentLength,We=Je;async function*rt(){let pe=0;for await(let Xe of We){if(pe+=Xe.length,pe>we)throw new Jr("maxContentLength size of "+we+" exceeded",Jr.ERR_BAD_RESPONSE,e,ct);yield Xe}}Je=Rv.default.Readable.from(rt(),{objectMode:!1})}Ce.data=Je,Hw(n,o,Ce)}else{let we=[],We=0;Je.on("data",function(pe){we.push(pe),We+=pe.length,e.maxContentLength>-1&&We>e.maxContentLength&&(k=!0,Je.destroy(),re(new Jr("maxContentLength size of "+e.maxContentLength+" exceeded",Jr.ERR_BAD_RESPONSE,e,ct)))}),Je.on("aborted",function(){if(k)return;let pe=new Jr("stream has been aborted",Jr.ERR_BAD_RESPONSE,e,ct,Ce);Je.destroy(pe),o(pe)}),Je.on("error",function(pe){k||o(Jr.from(pe,null,e,ct,Ce))}),Je.on("end",function(){try{let pe=we.length===1?we[0]:Buffer.concat(we);v!=="arraybuffer"&&(pe=pe.toString(A),(!A||A==="utf8")&&(pe=lt.stripBOM(pe))),Ce.data=pe}catch(pe){return o(Jr.from(pe,null,e,Ce.request,Ce))}Hw(n,o,Ce)})}z.once("abort",we=>{Je.destroyed||(Je.emit("error",we),Je.destroy())})}),z.once("abort",_t=>{P.close?P.close():P.destroy(_t)}),P.on("error",function(At){o(Jr.from(At,null,e,P))});let Nt=new Set;if(P.on("socket",function(At){At.setKeepAlive(!0,1e3*60),At[Y9e]||(At.on("error",function(B){let Je=At[gW];Je&&!Je.destroyed&&Je.destroy(B)}),At[Y9e]=!0),At[gW]=P,Nt.add(At)}),P.once("close",function(){Y();for(let At of Nt)At[gW]===P&&(At[gW]=null);Nt.clear()}),e.timeout){let _t=parseInt(e.timeout,10);if(Number.isNaN(_t)){re(new Jr("error trying to parse `config.timeout` to int",Jr.ERR_BAD_OPTION_VALUE,e,P));return}let At=function(){E||re(me())};et&&_t>0&&(j=setTimeout(At,_t)),P.setTimeout(_t,At)}else P.setTimeout(0);if(lt.isStream(p)){let _t=!1,At=!1;p.on("end",()=>{_t=!0}),p.once("error",B=>{At=!0,P.destroy(B)}),p.on("close",()=>{!_t&&!At&&re(new ty("Request stream has been aborted",e,P))});let dt=p;if(e.maxBodyLength>-1&&e.maxRedirects===0){let B=e.maxBodyLength,Je=0;dt=Rv.default.pipeline([p,new Rv.default.Transform({transform(ct,Ce,we){if(Je+=ct.length,Je>B)return we(new Jr("Request body larger than maxBodyLength limit",Jr.ERR_BAD_REQUEST,e,P));we(null,ct)}})],lt.noop),dt.on("error",ct=>{P.destroyed||P.destroy(ct)})}dt.pipe(P)}else p&&P.write(p),P.end()})};var h7e=Va.hasStandardBrowserEnv?((t,e)=>r=>(r=new URL(r,Va.origin),t.protocol===r.protocol&&t.host===r.host&&(e||t.port===r.port)))(new URL(Va.origin),Va.navigator&&/(msie|trident)/i.test(Va.navigator.userAgent)):()=>!0;var m7e=Va.hasStandardBrowserEnv?{write(t,e,r,n,o,s,c){if(typeof document>"u")return;let u=[`${t}=${encodeURIComponent(e)}`];lt.isNumber(r)&&u.push(`expires=${new Date(r).toUTCString()}`),lt.isString(n)&&u.push(`path=${n}`),lt.isString(o)&&u.push(`domain=${o}`),s===!0&&u.push("secure"),lt.isString(c)&&u.push(`SameSite=${c}`),document.cookie=u.join("; ")},read(t){if(typeof document>"u")return null;let e=document.cookie.split(";");for(let r=0;r<e.length;r++){let n=e[r].replace(/^\s+/,""),o=n.indexOf("=");if(o!==-1&&n.slice(0,o)===t)return decodeURIComponent(n.slice(o+1))}return null},remove(t){this.write(t,"",Date.now()-864e5,"/")}}:{write(){},read(){return null},remove(){}};var g7e=t=>t instanceof qu?{...t}:t;function Tb(t,e){e=e||{};let r=Object.create(null);Object.defineProperty(r,"hasOwnProperty",{__proto__:null,value:Object.prototype.hasOwnProperty,enumerable:!1,writable:!0,configurable:!0});function n(f,h,g,y){return lt.isPlainObject(f)&<.isPlainObject(h)?lt.merge.call({caseless:y},f,h):lt.isPlainObject(h)?lt.merge({},h):lt.isArray(h)?h.slice():h}function o(f,h,g,y){if(lt.isUndefined(h)){if(!lt.isUndefined(f))return n(void 0,f,g,y)}else return n(f,h,g,y)}function s(f,h){if(!lt.isUndefined(h))return n(void 0,h)}function c(f,h){if(lt.isUndefined(h)){if(!lt.isUndefined(f))return n(void 0,f)}else return n(void 0,h)}function u(f,h,g){if(lt.hasOwnProp(e,g))return n(f,h);if(lt.hasOwnProp(t,g))return n(void 0,f)}let p={url:s,method:s,data:s,baseURL:c,transformRequest:c,transformResponse:c,paramsSerializer:c,timeout:c,timeoutMessage:c,withCredentials:c,withXSRFToken:c,adapter:c,responseType:c,xsrfCookieName:c,xsrfHeaderName:c,onUploadProgress:c,onDownloadProgress:c,decompress:c,maxContentLength:c,maxBodyLength:c,beforeRedirect:c,transport:c,httpAgent:c,httpsAgent:c,cancelToken:c,socketPath:c,allowedSocketPaths:c,responseEncoding:c,validateStatus:u,headers:(f,h,g)=>o(g7e(f),g7e(h),g,!0)};return lt.forEach(Object.keys({...t,...e}),function(h){if(h==="__proto__"||h==="constructor"||h==="prototype")return;let g=lt.hasOwnProp(p,h)?p[h]:o,y=lt.hasOwnProp(t,h)?t[h]:void 0,v=lt.hasOwnProp(e,h)?e[h]:void 0,A=g(y,v,h);lt.isUndefined(A)&&g!==u||(r[h]=A)}),r}var Rpr=["content-type","content-length"];function Npr(t,e,r){if(r!=="content-only"){t.set(e);return}Object.entries(e).forEach(([n,o])=>{Rpr.includes(n.toLowerCase())&&t.set(n,o)})}var Opr=t=>encodeURIComponent(t).replace(/%([0-9A-F]{2})/gi,(e,r)=>String.fromCharCode(parseInt(r,16)));function Fpr(t){let e=Tb({},t),r=y=>lt.hasOwnProp(e,y)?e[y]:void 0,n=r("data"),o=r("withXSRFToken"),s=r("xsrfHeaderName"),c=r("xsrfCookieName"),u=r("headers"),p=r("auth"),f=r("baseURL"),h=r("allowAbsoluteUrls"),g=r("url");if(e.headers=u=qu.from(u),e.url=LD(jD(f,g,h),r("params"),r("paramsSerializer")),p&&u.set("Authorization","Basic "+btoa((p.username||"")+":"+(p.password?Opr(p.password):""))),lt.isFormData(n)&&(Va.hasStandardBrowserEnv||Va.hasStandardBrowserWebWorkerEnv||lt.isReactNative(n)?u.setContentType(void 0):lt.isFunction(n.getHeaders)&&Npr(u,n.getHeaders(),r("formDataHeaderPolicy"))),Va.hasStandardBrowserEnv&&(lt.isFunction(o)&&(o=o(e)),o===!0||o==null&&h7e(e.url))){let v=s&&c&&m7e.read(c);v&&u.set(s,v)}return e}var AW=Fpr;var Lpr=typeof XMLHttpRequest<"u",A7e=Lpr&&function(t){return new Promise(function(r,n){let o=AW(t),s=o.data,c=qu.from(o.headers).normalize(),{responseType:u,onUploadProgress:p,onDownloadProgress:f}=o,h,g,y,v,A;function S(){v&&v(),A&&A(),o.cancelToken&&o.cancelToken.unsubscribe(h),o.signal&&o.signal.removeEventListener("abort",h)}let E=new XMLHttpRequest;E.open(o.method.toUpperCase(),o.url,!0),E.timeout=o.timeout;function k(){if(!E)return;let j=qu.from("getAllResponseHeaders"in E&&E.getAllResponseHeaders()),z={data:!u||u==="text"||u==="json"?E.responseText:E.response,status:E.status,statusText:E.statusText,headers:j,config:t,request:E};Hw(function(Y){r(Y),S()},function(Y){n(Y),S()},z),E=null}"onloadend"in E?E.onloadend=k:E.onreadystatechange=function(){!E||E.readyState!==4||E.status===0&&!(E.responseURL&&E.responseURL.startsWith("file:"))||setTimeout(k)},E.onabort=function(){E&&(n(new Jr("Request aborted",Jr.ECONNABORTED,t,E)),S(),E=null)},E.onerror=function(F){let z=F&&F.message?F.message:"Network Error",re=new Jr(z,Jr.ERR_NETWORK,t,E);re.event=F||null,n(re),S(),E=null},E.ontimeout=function(){let F=o.timeout?"timeout of "+o.timeout+"ms exceeded":"timeout exceeded",z=o.transitional||uk;o.timeoutErrorMessage&&(F=o.timeoutErrorMessage),n(new Jr(F,z.clarifyTimeoutError?Jr.ETIMEDOUT:Jr.ECONNABORTED,t,E)),S(),E=null},s===void 0&&c.setContentType(null),"setRequestHeader"in E&<.forEach(MF(c),function(F,z){E.setRequestHeader(z,F)}),lt.isUndefined(o.withCredentials)||(E.withCredentials=!!o.withCredentials),u&&u!=="json"&&(E.responseType=o.responseType),f&&([y,A]=nC(f,!0),E.addEventListener("progress",y)),p&&E.upload&&([g,v]=nC(p),E.upload.addEventListener("progress",g),E.upload.addEventListener("loadend",v)),(o.cancelToken||o.signal)&&(h=j=>{E&&(n(!j||j.type?new ty(null,t,E):j),E.abort(),S(),E=null)},o.cancelToken&&o.cancelToken.subscribe(h),o.signal&&(o.signal.aborted?h():o.signal.addEventListener("abort",h)));let P=Yq(o.url);if(P&&!Va.protocols.includes(P)){n(new Jr("Unsupported protocol "+P+":",Jr.ERR_BAD_REQUEST,t));return}E.send(s||null)})};var jpr=(t,e)=>{if(t=t?t.filter(Boolean):[],!e&&!t.length)return;let r=new AbortController,n=!1,o=function(p){if(!n){n=!0,c();let f=p instanceof Error?p:this.reason;r.abort(f instanceof Jr?f:new ty(f instanceof Error?f.message:f))}},s=e&&setTimeout(()=>{s=null,o(new Jr(`timeout of ${e}ms exceeded`,Jr.ETIMEDOUT))},e),c=()=>{t&&(s&&clearTimeout(s),s=null,t.forEach(p=>{p.unsubscribe?p.unsubscribe(o):p.removeEventListener("abort",o)}),t=null)};t.forEach(p=>p.addEventListener("abort",o));let{signal:u}=r;return u.unsubscribe=()=>lt.asap(c),u},y7e=jpr;var Mpr=function*(t,e){let r=t.byteLength;if(!e||r<e){yield t;return}let n=0,o;for(;n<r;)o=n+e,yield t.slice(n,o),n=o},Qpr=async function*(t,e){for await(let r of qpr(t))yield*Mpr(r,e)},qpr=async function*(t){if(t[Symbol.asyncIterator]){yield*t;return}let e=t.getReader();try{for(;;){let{done:r,value:n}=await e.read();if(r)break;yield n}}finally{await e.cancel()}},ode=(t,e,r,n)=>{let o=Qpr(t,e),s=0,c,u=p=>{c||(c=!0,n&&n(p))};return new ReadableStream({async pull(p){try{let{done:f,value:h}=await o.next();if(f){u(),p.close();return}let g=h.byteLength;if(r){let y=s+=g;r(y)}p.enqueue(new Uint8Array(h))}catch(f){throw u(f),f}},cancel(p){return u(p),o.return()}},{highWaterMark:2})};var v7e=64*1024,{isFunction:yW}=lt,Upr=t=>encodeURIComponent(t).replace(/%([0-9A-F]{2})/gi,(e,r)=>String.fromCharCode(parseInt(r,16))),x7e=t=>{if(!lt.isString(t))return t;try{return decodeURIComponent(t)}catch{return t}},b7e=(t,...e)=>{try{return!!t(...e)}catch{return!1}},$pr=t=>{let e=t.indexOf("://"),r=t;return e!==-1&&(r=r.slice(e+3)),r.includes("@")||r.includes(":")},zpr=t=>{let e=lt.global!==void 0&<.global!==null?lt.global:globalThis,{ReadableStream:r,TextEncoder:n}=e;t=lt.merge.call({skipUndefined:!0},{Request:e.Request,Response:e.Response},t);let{fetch:o,Request:s,Response:c}=t,u=o?yW(o):typeof fetch=="function",p=yW(s),f=yW(c);if(!u)return!1;let h=u&&yW(r),g=u&&(typeof n=="function"?(k=>P=>k.encode(P))(new n):async k=>new Uint8Array(await new s(k).arrayBuffer())),y=p&&h&&b7e(()=>{let k=!1,P=new s(Va.origin,{body:new r,method:"POST",get duplex(){return k=!0,"half"}}),j=P.headers.has("Content-Type");return P.body!=null&&P.body.cancel(),k&&!j}),v=f&&h&&b7e(()=>lt.isReadableStream(new c("").body)),A={stream:v&&(k=>k.body)};u&&["text","arrayBuffer","blob","formData","stream"].forEach(k=>{!A[k]&&(A[k]=(P,j)=>{let F=P&&P[k];if(F)return F.call(P);throw new Jr(`Response type '${k}' is not supported`,Jr.ERR_NOT_SUPPORT,j)})});let S=async k=>{if(k==null)return 0;if(lt.isBlob(k))return k.size;if(lt.isSpecCompliantForm(k))return(await new s(Va.origin,{method:"POST",body:k}).arrayBuffer()).byteLength;if(lt.isArrayBufferView(k)||lt.isArrayBuffer(k))return k.byteLength;if(lt.isURLSearchParams(k)&&(k=k+""),lt.isString(k))return(await g(k)).byteLength},E=async(k,P)=>{let j=lt.toFiniteNumber(k.getContentLength());return j==null?S(P):j};return async k=>{let{url:P,method:j,data:F,signal:z,cancelToken:re,timeout:Y,onDownloadProgress:me,onUploadProgress:ne,responseType:ce,headers:ee,withCredentials:ge="same-origin",fetchOptions:J,maxContentLength:U,maxBodyLength:de}=AW(k),Oe=lt.isNumber(U)&&U>-1,ye=lt.isNumber(de)&&de>-1,be=Ke=>lt.hasOwnProp(k,Ke)?k[Ke]:void 0,Ne=o||fetch;ce=ce?(ce+"").toLowerCase():"text";let He=y7e([z,re&&re.toAbortSignal()],Y),ft=null,wt=He&&He.unsubscribe&&(()=>{He.unsubscribe()}),Ye;try{let Ke,Me=be("auth");if(Me){let dt=Me.username||"",B=Me.password||"";Ke={username:dt,password:B}}if($pr(P)){let dt=new URL(P,Va.origin);if(!Ke&&(dt.username||dt.password)){let B=x7e(dt.username),Je=x7e(dt.password);Ke={username:B,password:Je}}(dt.username||dt.password)&&(dt.username="",dt.password="",P=dt.href)}if(Ke&&(ee.delete("authorization"),ee.set("Authorization","Basic "+btoa(Upr((Ke.username||"")+":"+(Ke.password||""))))),Oe&&typeof P=="string"&&P.startsWith("data:")&&Kq(P)>U)throw new Jr("maxContentLength size of "+U+" exceeded",Jr.ERR_BAD_RESPONSE,k,ft);if(ye&&j!=="get"&&j!=="head"){let dt=await E(ee,F);if(typeof dt=="number"&&isFinite(dt)&&dt>de)throw new Jr("Request body larger than maxBodyLength limit",Jr.ERR_BAD_REQUEST,k,ft)}if(ne&&y&&j!=="get"&&j!=="head"&&(Ye=await E(ee,F))!==0){let dt=new s(P,{method:"POST",body:F,duplex:"half"}),B;if(lt.isFormData(F)&&(B=dt.headers.get("content-type"))&&ee.setContentType(B),dt.body){let[Je,ct]=KF(Ye,nC(XF(ne)));F=ode(dt.body,v7e,Je,ct)}}lt.isString(ge)||(ge=ge?"include":"omit");let et=p&&"credentials"in s.prototype;if(lt.isFormData(F)){let dt=ee.getContentType();dt&&/^multipart\/form-data/i.test(dt)&&!/boundary=/i.test(dt)&&ee.delete("content-type")}ee.set("User-Agent","axios/"+rC,!1);let yt={...J,signal:He,method:j.toUpperCase(),headers:MF(ee.normalize()),body:F,duplex:"half",credentials:et?ge:void 0};ft=p&&new s(P,yt);let Nt=await(p?Ne(ft,J):Ne(P,yt));if(Oe){let dt=lt.toFiniteNumber(Nt.headers.get("content-length"));if(dt!=null&&dt>U)throw new Jr("maxContentLength size of "+U+" exceeded",Jr.ERR_BAD_RESPONSE,k,ft)}let _t=v&&(ce==="stream"||ce==="response");if(v&&Nt.body&&(me||Oe||_t&&wt)){let dt={};["status","statusText","headers"].forEach(We=>{dt[We]=Nt[We]});let B=lt.toFiniteNumber(Nt.headers.get("content-length")),[Je,ct]=me&&KF(B,nC(XF(me),!0))||[],Ce=0,we=We=>{if(Oe&&(Ce=We,Ce>U))throw new Jr("maxContentLength size of "+U+" exceeded",Jr.ERR_BAD_RESPONSE,k,ft);Je&&Je(We)};Nt=new c(ode(Nt.body,v7e,we,()=>{ct&&ct(),wt&&wt()}),dt)}ce=ce||"text";let At=await A[lt.findKey(A,ce)||"text"](Nt,k);if(Oe&&!v&&!_t){let dt;if(At!=null&&(typeof At.byteLength=="number"?dt=At.byteLength:typeof At.size=="number"?dt=At.size:typeof At=="string"&&(dt=typeof n=="function"?new n().encode(At).byteLength:At.length)),typeof dt=="number"&&dt>U)throw new Jr("maxContentLength size of "+U+" exceeded",Jr.ERR_BAD_RESPONSE,k,ft)}return!_t&&wt&&wt(),await new Promise((dt,B)=>{Hw(dt,B,{data:At,headers:qu.from(Nt.headers),status:Nt.status,statusText:Nt.statusText,config:k,request:ft})})}catch(Ke){if(wt&&wt(),He&&He.aborted&&He.reason instanceof Jr){let Me=He.reason;throw Me.config=k,ft&&(Me.request=ft),Ke!==Me&&(Me.cause=Ke),Me}throw Ke&&Ke.name==="TypeError"&&/Load failed|fetch/i.test(Ke.message)?Object.assign(new Jr("Network Error",Jr.ERR_NETWORK,k,ft,Ke&&Ke.response),{cause:Ke.cause||Ke}):Jr.from(Ke,Ke&&Ke.code,k,ft,Ke&&Ke.response)}}},Hpr=new Map,ade=t=>{let e=t&&t.env||{},{fetch:r,Request:n,Response:o}=e,s=[n,o,r],c=s.length,u=c,p,f,h=Hpr;for(;u--;)p=s[u],f=h.get(p),f===void 0&&h.set(p,f=u?new Map:zpr(e)),h=f;return f},dmi=ade();var cde={http:d7e,xhr:A7e,fetch:{get:ade}};lt.forEach(cde,(t,e)=>{if(t){try{Object.defineProperty(t,"name",{__proto__:null,value:e})}catch{}Object.defineProperty(t,"adapterName",{__proto__:null,value:e})}});var E7e=t=>`- ${t}`,Gpr=t=>lt.isFunction(t)||t===null||t===!1;function Wpr(t,e){t=lt.isArray(t)?t:[t];let{length:r}=t,n,o,s={};for(let c=0;c<r;c++){n=t[c];let u;if(o=n,!Gpr(n)&&(o=cde[(u=String(n)).toLowerCase()],o===void 0))throw new Jr(`Unknown adapter '${u}'`);if(o&&(lt.isFunction(o)||(o=o.get(e))))break;s[u||"#"+c]=o}if(!o){let c=Object.entries(s).map(([p,f])=>`adapter ${p} `+(f===!1?"is not supported by the environment":"is not available in the build")),u=r?c.length>1?`since :
|
|
@@ -2059,6 +2059,9 @@ var LANGGRAPH_STORE_PREFIX = "langgraph_store";
|
|
|
2059
2059
|
var LANGGRAPH_STORE_KEY_SEPARATOR = "__key__";
|
|
2060
2060
|
var LANGGRAPH_SERDE_VERSION = 1;
|
|
2061
2061
|
var CLAUDE_SESSION_PREFIX = "claude_sessions";
|
|
2062
|
+
var CLAUDE_SESSION_MAPPING_PREFIX = "claude_session_mapping";
|
|
2063
|
+
var STATE_PREFIX = "state";
|
|
2064
|
+
var MAX_STATE_KEY_LENGTH = 256;
|
|
2062
2065
|
var SESSION_METADATA_MARKER = { agent_sdk_session: true };
|
|
2063
2066
|
var VALID_ROLES = /* @__PURE__ */ new Set([
|
|
2064
2067
|
"user",
|
|
@@ -2105,6 +2108,15 @@ var MemoryStorageError = class extends Error {
|
|
|
2105
2108
|
this.cause = cause;
|
|
2106
2109
|
}
|
|
2107
2110
|
};
|
|
2111
|
+
var MemoryCorruptError = class extends Error {
|
|
2112
|
+
code = "MemoryCorruptError";
|
|
2113
|
+
cause;
|
|
2114
|
+
constructor(message, cause) {
|
|
2115
|
+
super(message);
|
|
2116
|
+
this.name = "MemoryCorruptError";
|
|
2117
|
+
this.cause = cause;
|
|
2118
|
+
}
|
|
2119
|
+
};
|
|
2108
2120
|
var dynamicImport = new Function(
|
|
2109
2121
|
"specifier",
|
|
2110
2122
|
"return import(specifier);"
|
|
@@ -2112,7 +2124,7 @@ var dynamicImport = new Function(
|
|
|
2112
2124
|
var langchainLoadPromise;
|
|
2113
2125
|
var langchainMessagesPromise;
|
|
2114
2126
|
function isMemoryError(error) {
|
|
2115
|
-
return error instanceof MemoryValidationError || error instanceof MemoryNotFoundError || error instanceof MemoryQuotaExceededError || error instanceof MemoryStorageError;
|
|
2127
|
+
return error instanceof MemoryValidationError || error instanceof MemoryNotFoundError || error instanceof MemoryQuotaExceededError || error instanceof MemoryStorageError || error instanceof MemoryCorruptError;
|
|
2116
2128
|
}
|
|
2117
2129
|
async function wrapStorage(operation) {
|
|
2118
2130
|
try {
|
|
@@ -2280,10 +2292,17 @@ async function reviveLangGraphJsonValue(value) {
|
|
|
2280
2292
|
return revived;
|
|
2281
2293
|
}
|
|
2282
2294
|
async function deserializeLangGraphJson(value) {
|
|
2283
|
-
|
|
2284
|
-
|
|
2295
|
+
try {
|
|
2296
|
+
if (isLangGraphSerializedJson(value)) {
|
|
2297
|
+
return reviveLangGraphJsonValue(JSON.parse(value.data));
|
|
2298
|
+
}
|
|
2299
|
+
return reviveLangGraphJsonValue(value);
|
|
2300
|
+
} catch (error) {
|
|
2301
|
+
throw new MemoryCorruptError(
|
|
2302
|
+
"LangGraph persisted state is corrupt or incompatible.",
|
|
2303
|
+
error
|
|
2304
|
+
);
|
|
2285
2305
|
}
|
|
2286
|
-
return reviveLangGraphJsonValue(value);
|
|
2287
2306
|
}
|
|
2288
2307
|
function normalizeStoreLimit(value, fallback) {
|
|
2289
2308
|
if (typeof value !== "number" || !Number.isFinite(value)) {
|
|
@@ -2395,6 +2414,115 @@ function validateMessageId(messageId) {
|
|
|
2395
2414
|
throw new MemoryValidationError("messageId is required.");
|
|
2396
2415
|
}
|
|
2397
2416
|
}
|
|
2417
|
+
function validateStateKey(key) {
|
|
2418
|
+
if (typeof key !== "string" || key.length === 0) {
|
|
2419
|
+
throw new MemoryValidationError("state key is required.");
|
|
2420
|
+
}
|
|
2421
|
+
if (key.length > MAX_STATE_KEY_LENGTH) {
|
|
2422
|
+
throw new MemoryValidationError(
|
|
2423
|
+
\`state key must be at most \${MAX_STATE_KEY_LENGTH} characters.\`
|
|
2424
|
+
);
|
|
2425
|
+
}
|
|
2426
|
+
}
|
|
2427
|
+
function assertStateSerializable(value, path = "state value", seen = /* @__PURE__ */ new Set()) {
|
|
2428
|
+
if (value === null || typeof value === "string" || typeof value === "boolean") {
|
|
2429
|
+
return;
|
|
2430
|
+
}
|
|
2431
|
+
if (typeof value === "number") {
|
|
2432
|
+
if (Number.isFinite(value))
|
|
2433
|
+
return;
|
|
2434
|
+
throw new MemoryValidationError(\`\${path} must contain only JSON values.\`);
|
|
2435
|
+
}
|
|
2436
|
+
if (value === void 0 || typeof value === "function" || typeof value === "symbol" || typeof value === "bigint") {
|
|
2437
|
+
throw new MemoryValidationError(\`\${path} must be JSON serializable.\`);
|
|
2438
|
+
}
|
|
2439
|
+
if (typeof value !== "object") {
|
|
2440
|
+
throw new MemoryValidationError(\`\${path} must be JSON serializable.\`);
|
|
2441
|
+
}
|
|
2442
|
+
if (seen.has(value)) {
|
|
2443
|
+
throw new MemoryValidationError(\`\${path} must not contain circular references.\`);
|
|
2444
|
+
}
|
|
2445
|
+
seen.add(value);
|
|
2446
|
+
if (Array.isArray(value)) {
|
|
2447
|
+
value.forEach((item, index) => assertStateSerializable(item, \`\${path}[\${index}]\`, seen));
|
|
2448
|
+
} else if (isPlainObject(value)) {
|
|
2449
|
+
for (const [key, item] of Object.entries(value)) {
|
|
2450
|
+
assertStateSerializable(item, \`\${path}.\${key}\`, seen);
|
|
2451
|
+
}
|
|
2452
|
+
} else {
|
|
2453
|
+
throw new MemoryValidationError(\`\${path} must contain only JSON values.\`);
|
|
2454
|
+
}
|
|
2455
|
+
seen.delete(value);
|
|
2456
|
+
}
|
|
2457
|
+
function stateConversationPrefix(conversationId) {
|
|
2458
|
+
return \`\${STATE_PREFIX}/\${encodeKeySegment(conversationId)}/\`;
|
|
2459
|
+
}
|
|
2460
|
+
function createAgentStateStore(store, boundConversationId) {
|
|
2461
|
+
const requireConversation = () => {
|
|
2462
|
+
if (!boundConversationId) {
|
|
2463
|
+
throw new MemoryValidationError(
|
|
2464
|
+
"State operations require a bound conversationId."
|
|
2465
|
+
);
|
|
2466
|
+
}
|
|
2467
|
+
validateConversationId(boundConversationId);
|
|
2468
|
+
return boundConversationId;
|
|
2469
|
+
};
|
|
2470
|
+
return {
|
|
2471
|
+
async get(key) {
|
|
2472
|
+
validateStateKey(key);
|
|
2473
|
+
const conversationId = requireConversation();
|
|
2474
|
+
return wrapStorage(async () => {
|
|
2475
|
+
const raw = await store.get(
|
|
2476
|
+
\`\${stateConversationPrefix(conversationId)}\${encodeKeySegment(key)}\`,
|
|
2477
|
+
{ consistency: "strong" }
|
|
2478
|
+
);
|
|
2479
|
+
if (raw === null)
|
|
2480
|
+
return null;
|
|
2481
|
+
if (typeof raw !== "string") {
|
|
2482
|
+
throw new MemoryStorageError("Stored state value is not valid JSON text.");
|
|
2483
|
+
}
|
|
2484
|
+
try {
|
|
2485
|
+
return JSON.parse(raw);
|
|
2486
|
+
} catch (error) {
|
|
2487
|
+
throw new MemoryStorageError("Stored state value is invalid JSON.", error);
|
|
2488
|
+
}
|
|
2489
|
+
});
|
|
2490
|
+
},
|
|
2491
|
+
async set(key, value) {
|
|
2492
|
+
validateStateKey(key);
|
|
2493
|
+
const conversationId = requireConversation();
|
|
2494
|
+
assertStateSerializable(value);
|
|
2495
|
+
let serialized;
|
|
2496
|
+
try {
|
|
2497
|
+
serialized = JSON.stringify(value);
|
|
2498
|
+
} catch (error) {
|
|
2499
|
+
throw new MemoryValidationError(\`state value must be JSON serializable: \${String(error)}\`);
|
|
2500
|
+
}
|
|
2501
|
+
await wrapStorage(
|
|
2502
|
+
() => store.set(
|
|
2503
|
+
\`\${stateConversationPrefix(conversationId)}\${encodeKeySegment(key)}\`,
|
|
2504
|
+
serialized
|
|
2505
|
+
)
|
|
2506
|
+
);
|
|
2507
|
+
},
|
|
2508
|
+
async delete(key) {
|
|
2509
|
+
validateStateKey(key);
|
|
2510
|
+
const conversationId = requireConversation();
|
|
2511
|
+
await wrapStorage(
|
|
2512
|
+
() => store.delete(
|
|
2513
|
+
\`\${stateConversationPrefix(conversationId)}\${encodeKeySegment(key)}\`
|
|
2514
|
+
)
|
|
2515
|
+
);
|
|
2516
|
+
}
|
|
2517
|
+
};
|
|
2518
|
+
}
|
|
2519
|
+
async function deleteAgentState(store, conversationId) {
|
|
2520
|
+
const listed = await store.list({
|
|
2521
|
+
prefix: stateConversationPrefix(conversationId),
|
|
2522
|
+
consistency: "strong"
|
|
2523
|
+
});
|
|
2524
|
+
await Promise.all(listed.keys.map((key) => store.delete(key)));
|
|
2525
|
+
}
|
|
2398
2526
|
function validateUserId(userId) {
|
|
2399
2527
|
if (userId === void 0) {
|
|
2400
2528
|
return;
|
|
@@ -2527,6 +2655,9 @@ function cursorSortKey(cursor) {
|
|
|
2527
2655
|
const payload = decodeConversationCursor(cursor);
|
|
2528
2656
|
return \`\${reverseTimestamp(payload.lastMessageAt)}_\${encodeKeySegment(payload.conversationId)}\`;
|
|
2529
2657
|
}
|
|
2658
|
+
function cursorListCursor(cursor) {
|
|
2659
|
+
return cursor ? decodeConversationCursor(cursor).listCursor : void 0;
|
|
2660
|
+
}
|
|
2530
2661
|
function indexSortKey(key, prefix) {
|
|
2531
2662
|
return key.slice(prefix.length);
|
|
2532
2663
|
}
|
|
@@ -2694,6 +2825,51 @@ function claudeSessionBase(projectKey, sessionId) {
|
|
|
2694
2825
|
function claudeProjectPrefix(projectKey) {
|
|
2695
2826
|
return \`\${CLAUDE_SESSION_PREFIX}/\${encodeKeySegment(projectKey)}/\`;
|
|
2696
2827
|
}
|
|
2828
|
+
function claudeSessionMappingKey(conversationId) {
|
|
2829
|
+
return \`\${CLAUDE_SESSION_MAPPING_PREFIX}/\${encodeKeySegment(conversationId)}\`;
|
|
2830
|
+
}
|
|
2831
|
+
function normalizeClaudeUuid(value) {
|
|
2832
|
+
const trimmed = value.trim().toLowerCase();
|
|
2833
|
+
return /^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$/.test(trimmed) ? trimmed : null;
|
|
2834
|
+
}
|
|
2835
|
+
function claudeSessionIdFromKey(key) {
|
|
2836
|
+
const prefix = \`\${CLAUDE_SESSION_PREFIX}/\`;
|
|
2837
|
+
if (!key.startsWith(prefix)) {
|
|
2838
|
+
return null;
|
|
2839
|
+
}
|
|
2840
|
+
const segments = key.slice(prefix.length).split("/");
|
|
2841
|
+
return segments.length >= 3 && segments[1] ? decodeKeySegment(segments[1]) : null;
|
|
2842
|
+
}
|
|
2843
|
+
async function deleteClaudeSessionForConversation(store, conversationId) {
|
|
2844
|
+
const mappingKey = claudeSessionMappingKey(conversationId);
|
|
2845
|
+
const mapping = await store.get(mappingKey, {
|
|
2846
|
+
consistency: "strong"
|
|
2847
|
+
});
|
|
2848
|
+
let sessionId = null;
|
|
2849
|
+
if (typeof mapping === "string") {
|
|
2850
|
+
sessionId = mapping;
|
|
2851
|
+
} else if (isPlainObject(mapping) && typeof mapping.sessionId === "string") {
|
|
2852
|
+
sessionId = mapping.sessionId;
|
|
2853
|
+
} else if (isPlainObject(mapping) && typeof mapping.session_id === "string") {
|
|
2854
|
+
sessionId = mapping.session_id;
|
|
2855
|
+
}
|
|
2856
|
+
if (!sessionId) {
|
|
2857
|
+
sessionId = normalizeClaudeUuid(conversationId);
|
|
2858
|
+
}
|
|
2859
|
+
await store.delete(mappingKey);
|
|
2860
|
+
if (!sessionId) {
|
|
2861
|
+
return;
|
|
2862
|
+
}
|
|
2863
|
+
const listed = await store.list({
|
|
2864
|
+
prefix: \`\${CLAUDE_SESSION_PREFIX}/\`,
|
|
2865
|
+
consistency: "strong"
|
|
2866
|
+
});
|
|
2867
|
+
for (const key of listed.keys) {
|
|
2868
|
+
if (claudeSessionIdFromKey(key) === sessionId) {
|
|
2869
|
+
await store.delete(key);
|
|
2870
|
+
}
|
|
2871
|
+
}
|
|
2872
|
+
}
|
|
2697
2873
|
function claudePartsPrefix(key) {
|
|
2698
2874
|
let base = claudeSessionBase(key.projectKey, key.sessionId).slice(0, -1);
|
|
2699
2875
|
if (key.subpath) {
|
|
@@ -2731,7 +2907,9 @@ function createClaudeSessionStore(store) {
|
|
|
2731
2907
|
consistency: "strong"
|
|
2732
2908
|
});
|
|
2733
2909
|
if (typeof raw !== "string") {
|
|
2734
|
-
|
|
2910
|
+
throw new MemoryCorruptError(
|
|
2911
|
+
\`Claude session part '\${partKey}' is not valid JSONL text.\`
|
|
2912
|
+
);
|
|
2735
2913
|
}
|
|
2736
2914
|
for (const line of raw.split("\\n")) {
|
|
2737
2915
|
const trimmed = line.trim();
|
|
@@ -2740,7 +2918,11 @@ function createClaudeSessionStore(store) {
|
|
|
2740
2918
|
}
|
|
2741
2919
|
try {
|
|
2742
2920
|
entries.push(JSON.parse(trimmed));
|
|
2743
|
-
} catch {
|
|
2921
|
+
} catch (error) {
|
|
2922
|
+
throw new MemoryCorruptError(
|
|
2923
|
+
\`Claude session part '\${partKey}' contains malformed JSONL.\`,
|
|
2924
|
+
error
|
|
2925
|
+
);
|
|
2744
2926
|
}
|
|
2745
2927
|
}
|
|
2746
2928
|
}
|
|
@@ -2866,8 +3048,70 @@ async function listConversationsByUser(store, userId, options) {
|
|
|
2866
3048
|
});
|
|
2867
3049
|
}
|
|
2868
3050
|
async function listConversationsFromIndex(store, options) {
|
|
3051
|
+
if (!options.before) {
|
|
3052
|
+
const fast = await listConversationsFromIndexFast(store, options);
|
|
3053
|
+
if (fast)
|
|
3054
|
+
return fast;
|
|
3055
|
+
}
|
|
2869
3056
|
return listConversationsFromIndexFull(store, options);
|
|
2870
3057
|
}
|
|
3058
|
+
async function listConversationsFromIndexFast(store, options) {
|
|
3059
|
+
var _a, _b;
|
|
3060
|
+
let listCursor = cursorListCursor(options.after);
|
|
3061
|
+
if (options.after && !listCursor) {
|
|
3062
|
+
return null;
|
|
3063
|
+
}
|
|
3064
|
+
const pageItems = [];
|
|
3065
|
+
const seen = /* @__PURE__ */ new Set();
|
|
3066
|
+
let lastCursor;
|
|
3067
|
+
while (pageItems.length < options.limit) {
|
|
3068
|
+
const listed = await store.list({
|
|
3069
|
+
prefix: options.prefix,
|
|
3070
|
+
cursor: listCursor,
|
|
3071
|
+
limit: options.limit - pageItems.length,
|
|
3072
|
+
paginate: false,
|
|
3073
|
+
consistency: "strong"
|
|
3074
|
+
});
|
|
3075
|
+
lastCursor = listed.cursor;
|
|
3076
|
+
if (!listed.keys.length) {
|
|
3077
|
+
break;
|
|
3078
|
+
}
|
|
3079
|
+
const indexItems = [...listed.keys].sort(
|
|
3080
|
+
(left, right) => options.order === "desc" ? left.localeCompare(right) : right.localeCompare(left)
|
|
3081
|
+
).map((key) => {
|
|
3082
|
+
const conversationId = options.conversationIdFromKey(key);
|
|
3083
|
+
if (!conversationId || seen.has(conversationId)) {
|
|
3084
|
+
return null;
|
|
3085
|
+
}
|
|
3086
|
+
seen.add(conversationId);
|
|
3087
|
+
return {
|
|
3088
|
+
key,
|
|
3089
|
+
sortKey: indexSortKey(key, options.prefix),
|
|
3090
|
+
conversationId
|
|
3091
|
+
};
|
|
3092
|
+
}).filter((item) => item !== null);
|
|
3093
|
+
const metas = await Promise.all(
|
|
3094
|
+
indexItems.map((item) => readConversationMeta(store, item.conversationId))
|
|
3095
|
+
);
|
|
3096
|
+
for (let i = 0; i < indexItems.length; i++) {
|
|
3097
|
+
const meta = metas[i];
|
|
3098
|
+
if (meta) {
|
|
3099
|
+
pageItems.push({ indexItem: indexItems[i], meta });
|
|
3100
|
+
}
|
|
3101
|
+
}
|
|
3102
|
+
if (!listed.cursor) {
|
|
3103
|
+
break;
|
|
3104
|
+
}
|
|
3105
|
+
listCursor = listed.cursor;
|
|
3106
|
+
}
|
|
3107
|
+
const firstItem = (_a = pageItems[0]) == null ? void 0 : _a.indexItem;
|
|
3108
|
+
const lastItem = (_b = pageItems[pageItems.length - 1]) == null ? void 0 : _b.indexItem;
|
|
3109
|
+
return {
|
|
3110
|
+
items: pageItems.map((item) => item.meta),
|
|
3111
|
+
nextCursor: lastItem ? encodeConversationCursorFromIndexItem(lastItem, lastCursor) : void 0,
|
|
3112
|
+
previousCursor: firstItem ? encodeConversationCursorFromIndexItem(firstItem) : void 0
|
|
3113
|
+
};
|
|
3114
|
+
}
|
|
2871
3115
|
async function listConversationsFromIndexFull(store, options) {
|
|
2872
3116
|
var _a, _b;
|
|
2873
3117
|
const afterSortKey = options.after ? cursorSortKey(options.after) : void 0;
|
|
@@ -3304,6 +3548,7 @@ function createAgentMemory(store, options = {}) {
|
|
|
3304
3548
|
const maxMessagesPerConversation = options.maxMessagesPerConversation ?? DEFAULT_MAX_MESSAGES_PER_CONVERSATION;
|
|
3305
3549
|
const langgraphCheckpointer = createLangGraphCheckpointer(store);
|
|
3306
3550
|
const langgraphStore = createLangGraphStore(store);
|
|
3551
|
+
const state = createAgentStateStore(store, options.conversationId);
|
|
3307
3552
|
let claudeStoreCache = null;
|
|
3308
3553
|
let lastMessageCreatedAt = 0;
|
|
3309
3554
|
const appendMessagesInternal = async (inputs) => {
|
|
@@ -3589,8 +3834,13 @@ function createAgentMemory(store, options = {}) {
|
|
|
3589
3834
|
listMessageKeys(store, input.conversationId)
|
|
3590
3835
|
]);
|
|
3591
3836
|
if (!meta) {
|
|
3837
|
+
if (options.conversationId === input.conversationId) {
|
|
3838
|
+
await deleteAgentState(store, input.conversationId);
|
|
3839
|
+
}
|
|
3840
|
+
await deleteClaudeSessionForConversation(store, input.conversationId);
|
|
3841
|
+
await langgraphCheckpointer.deleteThread(input.conversationId);
|
|
3592
3842
|
throw new MemoryNotFoundError(
|
|
3593
|
-
"Conversation not found by
|
|
3843
|
+
"Conversation not found by deleteConversation."
|
|
3594
3844
|
);
|
|
3595
3845
|
}
|
|
3596
3846
|
const deleteOps = [];
|
|
@@ -3607,6 +3857,11 @@ function createAgentMemory(store, options = {}) {
|
|
|
3607
3857
|
deleteOps.push(store.delete(metaKey(input.conversationId)));
|
|
3608
3858
|
deleteOps.push(store.delete(conversationIndexKey(meta)));
|
|
3609
3859
|
await Promise.all(deleteOps);
|
|
3860
|
+
if (options.conversationId === input.conversationId) {
|
|
3861
|
+
await deleteAgentState(store, input.conversationId);
|
|
3862
|
+
}
|
|
3863
|
+
await deleteClaudeSessionForConversation(store, input.conversationId);
|
|
3864
|
+
await langgraphCheckpointer.deleteThread(input.conversationId);
|
|
3610
3865
|
});
|
|
3611
3866
|
},
|
|
3612
3867
|
async updateConversation(input) {
|
|
@@ -3642,14 +3897,49 @@ function createAgentMemory(store, options = {}) {
|
|
|
3642
3897
|
}));
|
|
3643
3898
|
},
|
|
3644
3899
|
openaiSession(sessionId, sessionOptions = {}) {
|
|
3900
|
+
const boundSessionId = sessionId ?? options.conversationId;
|
|
3901
|
+
if (!boundSessionId) {
|
|
3902
|
+
throw new MemoryValidationError(
|
|
3903
|
+
"openaiSession requires a sessionId or bound conversationId."
|
|
3904
|
+
);
|
|
3905
|
+
}
|
|
3645
3906
|
const maxItems = sessionOptions.maxItems ?? MAX_LIMIT;
|
|
3646
3907
|
return createOpenAISession(
|
|
3647
3908
|
memory,
|
|
3648
|
-
|
|
3909
|
+
boundSessionId,
|
|
3649
3910
|
maxItems,
|
|
3650
3911
|
appendMessagesInternal
|
|
3651
3912
|
);
|
|
3652
3913
|
},
|
|
3914
|
+
async claudeSessionBinding(conversationId) {
|
|
3915
|
+
const resolvedConversationId = conversationId ?? options.conversationId;
|
|
3916
|
+
if (!resolvedConversationId) {
|
|
3917
|
+
throw new MemoryValidationError(
|
|
3918
|
+
"claudeSessionBinding requires a conversationId or bound conversationId."
|
|
3919
|
+
);
|
|
3920
|
+
}
|
|
3921
|
+
validateConversationId(resolvedConversationId);
|
|
3922
|
+
return wrapStorage(async () => {
|
|
3923
|
+
const mappingKey = claudeSessionMappingKey(resolvedConversationId);
|
|
3924
|
+
const existing = await store.get(
|
|
3925
|
+
mappingKey,
|
|
3926
|
+
{ consistency: "strong" }
|
|
3927
|
+
);
|
|
3928
|
+
if (typeof existing === "string" && existing) {
|
|
3929
|
+
return existing;
|
|
3930
|
+
}
|
|
3931
|
+
if (isPlainObject(existing) && (typeof existing.sessionId === "string" || typeof existing.session_id === "string") && (existing.sessionId || existing.session_id)) {
|
|
3932
|
+
return String(existing.sessionId || existing.session_id);
|
|
3933
|
+
}
|
|
3934
|
+
const sessionId = normalizeClaudeUuid(resolvedConversationId) ?? randomUUID();
|
|
3935
|
+
const binding = {
|
|
3936
|
+
conversationId: resolvedConversationId,
|
|
3937
|
+
sessionId
|
|
3938
|
+
};
|
|
3939
|
+
await store.set(mappingKey, binding);
|
|
3940
|
+
return sessionId;
|
|
3941
|
+
});
|
|
3942
|
+
},
|
|
3653
3943
|
claudeSessionStore() {
|
|
3654
3944
|
if (!claudeStoreCache) {
|
|
3655
3945
|
claudeStoreCache = createClaudeSessionStore(store);
|
|
@@ -3657,7 +3947,8 @@ function createAgentMemory(store, options = {}) {
|
|
|
3657
3947
|
return claudeStoreCache;
|
|
3658
3948
|
},
|
|
3659
3949
|
langgraphCheckpointer,
|
|
3660
|
-
langgraphStore
|
|
3950
|
+
langgraphStore,
|
|
3951
|
+
state
|
|
3661
3952
|
};
|
|
3662
3953
|
return memory;
|
|
3663
3954
|
}
|
|
@@ -3902,24 +4193,24 @@ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__ge
|
|
|
3902
4193
|
var require_dist = __commonJS({
|
|
3903
4194
|
"node_modules/@edgeone/pages-blob/dist/index.js"(exports, module) {
|
|
3904
4195
|
"use strict";
|
|
3905
|
-
var
|
|
4196
|
+
var U = Object.defineProperty;
|
|
3906
4197
|
var le = Object.getOwnPropertyDescriptor;
|
|
3907
4198
|
var ue = Object.getOwnPropertyNames;
|
|
3908
4199
|
var ge = Object.prototype.hasOwnProperty;
|
|
3909
4200
|
var fe = (t, e) => {
|
|
3910
4201
|
for (var r in e)
|
|
3911
|
-
|
|
4202
|
+
U(t, r, { get: e[r], enumerable: true });
|
|
3912
4203
|
};
|
|
3913
4204
|
var he = (t, e, r, n) => {
|
|
3914
4205
|
if (e && typeof e == "object" || typeof e == "function")
|
|
3915
4206
|
for (let s of ue(e))
|
|
3916
|
-
!ge.call(t, s) && s !== r &&
|
|
4207
|
+
!ge.call(t, s) && s !== r && U(t, s, { get: () => e[s], enumerable: !(n = le(e, s)) || n.enumerable });
|
|
3917
4208
|
return t;
|
|
3918
4209
|
};
|
|
3919
|
-
var me = (t) => he(
|
|
3920
|
-
var
|
|
3921
|
-
fe(
|
|
3922
|
-
module.exports = me(
|
|
4210
|
+
var me = (t) => he(U({}, "__esModule", { value: true }), t);
|
|
4211
|
+
var Oe = {};
|
|
4212
|
+
fe(Oe, { InvalidKeyError: () => w, InvalidStoreNameError: () => y, MissingProjectIdError: () => T, PagesBlobError: () => h, PreconditionFailedError: () => x, QuotaExceededError: () => O, RateLimitedError: () => j, Store: () => E, getStore: () => Me, listStores: () => De });
|
|
4213
|
+
module.exports = me(Oe);
|
|
3923
4214
|
var h = class extends Error {
|
|
3924
4215
|
code;
|
|
3925
4216
|
constructor(e, r) {
|
|
@@ -3941,12 +4232,12 @@ var require_dist = __commonJS({
|
|
|
3941
4232
|
super("MISSING_ENVIRONMENT", \`Environment not configured for Pages Blob. Missing: \${e.join(", ")}. Supply these properties when creating a store, or ensure the function is running in a Pages environment.\`);
|
|
3942
4233
|
}
|
|
3943
4234
|
};
|
|
3944
|
-
var
|
|
4235
|
+
var O = class extends h {
|
|
3945
4236
|
constructor() {
|
|
3946
4237
|
super("QUOTA_EXCEEDED", "storage quota exceeded");
|
|
3947
4238
|
}
|
|
3948
4239
|
};
|
|
3949
|
-
var
|
|
4240
|
+
var j = class extends h {
|
|
3950
4241
|
constructor() {
|
|
3951
4242
|
super("RATE_LIMITED", "request rate limited, please retry later");
|
|
3952
4243
|
}
|
|
@@ -3979,7 +4270,7 @@ var require_dist = __commonJS({
|
|
|
3979
4270
|
if (new TextEncoder().encode(t).length > 600)
|
|
3980
4271
|
throw new w("Blob key must be a sequence of Unicode characters whose UTF-8 encoding is at most 600 bytes long.");
|
|
3981
4272
|
}
|
|
3982
|
-
function
|
|
4273
|
+
function z(t) {
|
|
3983
4274
|
if (t === "")
|
|
3984
4275
|
throw new y("Store name must not be empty.");
|
|
3985
4276
|
if (t.includes("/") || t.includes(":"))
|
|
@@ -4067,45 +4358,48 @@ var require_dist = __commonJS({
|
|
|
4067
4358
|
}
|
|
4068
4359
|
};
|
|
4069
4360
|
var ye = new TextEncoder();
|
|
4070
|
-
function
|
|
4361
|
+
function _(t) {
|
|
4071
4362
|
let e = ye.encode(t), r = new ArrayBuffer(e.byteLength), n = new Uint8Array(r);
|
|
4072
4363
|
return n.set(e), n;
|
|
4073
4364
|
}
|
|
4074
|
-
function
|
|
4365
|
+
function G(t) {
|
|
4075
4366
|
let e = t instanceof Uint8Array ? t : new Uint8Array(t), r = "";
|
|
4076
4367
|
for (let n = 0; n < e.length; n++)
|
|
4077
4368
|
r += e[n].toString(16).padStart(2, "0");
|
|
4078
4369
|
return r;
|
|
4079
4370
|
}
|
|
4080
|
-
async function
|
|
4081
|
-
let r = await crypto.subtle.importKey("raw",
|
|
4082
|
-
return
|
|
4371
|
+
async function H(t, e) {
|
|
4372
|
+
let r = await crypto.subtle.importKey("raw", _(t), { name: "HMAC", hash: "SHA-1" }, false, ["sign"]), n = await crypto.subtle.sign("HMAC", r, _(e));
|
|
4373
|
+
return G(n);
|
|
4083
4374
|
}
|
|
4084
4375
|
async function pe(t) {
|
|
4085
|
-
let e = await crypto.subtle.digest("SHA-1",
|
|
4086
|
-
return
|
|
4376
|
+
let e = await crypto.subtle.digest("SHA-1", _(t));
|
|
4377
|
+
return G(e);
|
|
4087
4378
|
}
|
|
4088
|
-
function
|
|
4379
|
+
function $(t) {
|
|
4089
4380
|
return encodeURIComponent(t).replace(/[!'()*]/g, (e) => "%" + e.charCodeAt(0).toString(16).toUpperCase());
|
|
4090
4381
|
}
|
|
4091
|
-
function
|
|
4382
|
+
function P(t) {
|
|
4092
4383
|
try {
|
|
4093
4384
|
return decodeURIComponent(t);
|
|
4094
4385
|
} catch {
|
|
4095
4386
|
return t;
|
|
4096
4387
|
}
|
|
4097
4388
|
}
|
|
4098
|
-
function
|
|
4099
|
-
return t.split("/").map((e) =>
|
|
4389
|
+
function we(t) {
|
|
4390
|
+
return t.split("/").map((e) => P(e)).join("/");
|
|
4391
|
+
}
|
|
4392
|
+
function I(t) {
|
|
4393
|
+
return we(P(t));
|
|
4100
4394
|
}
|
|
4101
4395
|
function W(t) {
|
|
4102
|
-
return t.split("/").map((e) =>
|
|
4396
|
+
return t.split("/").map((e) => $(P(e))).join("/");
|
|
4103
4397
|
}
|
|
4104
|
-
var
|
|
4105
|
-
function
|
|
4106
|
-
return t === "host" || t === "x-cos-security-token" ? false : !!(
|
|
4398
|
+
var Ce = /* @__PURE__ */ new Set(["cache-control", "content-disposition", "content-encoding", "content-length", "content-md5", "content-type", "expect", "expires", "if-match", "if-modified-since", "if-none-match", "if-unmodified-since", "origin", "range", "transfer-encoding"]);
|
|
4399
|
+
function xe(t) {
|
|
4400
|
+
return t === "host" || t === "x-cos-security-token" ? false : !!(Ce.has(t) || t.startsWith("x-cos-"));
|
|
4107
4401
|
}
|
|
4108
|
-
function
|
|
4402
|
+
function X(t) {
|
|
4109
4403
|
if (!t)
|
|
4110
4404
|
return [];
|
|
4111
4405
|
let e = [];
|
|
@@ -4113,27 +4407,27 @@ var require_dist = __commonJS({
|
|
|
4113
4407
|
n != null && e.push([r.toLowerCase(), String(n)]);
|
|
4114
4408
|
return e.sort(([r], [n]) => r < n ? -1 : r > n ? 1 : 0), e;
|
|
4115
4409
|
}
|
|
4116
|
-
function X(t) {
|
|
4117
|
-
return t.map(([e, r]) => \`\${O(e)}=\${O(r)}\`).join("&");
|
|
4118
|
-
}
|
|
4119
4410
|
function Y(t) {
|
|
4120
|
-
return t.map(([e]) =>
|
|
4411
|
+
return t.map(([e, r]) => \`\${$(e)}=\${$(r)}\`).join("&");
|
|
4412
|
+
}
|
|
4413
|
+
function F(t) {
|
|
4414
|
+
return t.map(([e]) => $(e)).join(";");
|
|
4121
4415
|
}
|
|
4122
4416
|
async function V(t) {
|
|
4123
|
-
let e = t.method.toLowerCase(), r = t.pathname.startsWith("/") ? t.pathname : \`/\${t.pathname}\`, n = Math.floor(Date.now() / 1e3), s = n + (t.expireSeconds ?? 3600), i = \`\${n};\${s}\`, o =
|
|
4417
|
+
let e = t.method.toLowerCase(), r = t.pathname.startsWith("/") ? t.pathname : \`/\${t.pathname}\`, n = Math.floor(Date.now() / 1e3), s = n + (t.expireSeconds ?? 3600), i = \`\${n};\${s}\`, o = X(t.headers).filter(([N]) => xe(N)), c = F(o), d = Y(o), u = X(t.query), l = F(u), g = Y(u), p = \`\${e}
|
|
4124
4418
|
\${r}
|
|
4125
4419
|
\${g}
|
|
4126
4420
|
\${d}
|
|
4127
4421
|
\`, oe = \`sha1
|
|
4128
4422
|
\${i}
|
|
4129
4423
|
\${await pe(p)}
|
|
4130
|
-
\`, ie = await
|
|
4131
|
-
for (let [
|
|
4132
|
-
|
|
4133
|
-
return { authorization: ce, signedHeaders:
|
|
4424
|
+
\`, ie = await H(t.secretKey, i), ae = await H(ie, oe), ce = ["q-sign-algorithm=sha1", \`q-ak=\${t.secretId}\`, \`q-sign-time=\${i}\`, \`q-key-time=\${i}\`, \`q-header-list=\${c}\`, \`q-url-param-list=\${l}\`, \`q-signature=\${ae}\`].join("&"), q = {};
|
|
4425
|
+
for (let [N, de] of o)
|
|
4426
|
+
q[N] = de;
|
|
4427
|
+
return { authorization: ce, signedHeaders: q };
|
|
4134
4428
|
}
|
|
4135
4429
|
async function J(t) {
|
|
4136
|
-
let e = new URL(t.domain), r =
|
|
4430
|
+
let e = new URL(t.domain), r = P(t.key), n = \`/\${I(t.key)}\`, s = \`/\${W(r)}\`;
|
|
4137
4431
|
e.pathname = s;
|
|
4138
4432
|
let { authorization: i } = await V({ method: t.method, pathname: n, query: t.query, headers: t.headers, secretId: t.credential.secretId, secretKey: t.credential.secretKey, expireSeconds: t.expireSeconds });
|
|
4139
4433
|
if (t.query)
|
|
@@ -4149,7 +4443,7 @@ var require_dist = __commonJS({
|
|
|
4149
4443
|
return t.credential.sessionToken && e.searchParams.set("x-cos-security-token", t.credential.sessionToken), e.toString();
|
|
4150
4444
|
}
|
|
4151
4445
|
async function S(t) {
|
|
4152
|
-
let e = new URL(t.domain), r = t.key ?
|
|
4446
|
+
let e = new URL(t.domain), r = t.key ? P(t.key) : "", n = t.key ? \`/\${I(t.key)}\` : "/", s = r ? \`/\${W(r)}\` : "/";
|
|
4153
4447
|
if (e.pathname = s, t.query)
|
|
4154
4448
|
for (let [l, g] of Object.entries(t.query))
|
|
4155
4449
|
g != null && e.searchParams.set(l, String(g));
|
|
@@ -4169,9 +4463,9 @@ var require_dist = __commonJS({
|
|
|
4169
4463
|
}
|
|
4170
4464
|
throw u;
|
|
4171
4465
|
}
|
|
4172
|
-
var
|
|
4173
|
-
var
|
|
4174
|
-
var
|
|
4466
|
+
var be = "blob.edgeone.site";
|
|
4467
|
+
var Te = "blob-nocache.edgeone.site";
|
|
4468
|
+
var M = class t {
|
|
4175
4469
|
credentialManager;
|
|
4176
4470
|
bucket = "";
|
|
4177
4471
|
region = "";
|
|
@@ -4181,7 +4475,7 @@ var require_dist = __commonJS({
|
|
|
4181
4475
|
initialized = false;
|
|
4182
4476
|
static buildErrorDetail(e, r, n, s, i) {
|
|
4183
4477
|
let a = n ? \`\${r}/\${n}\` : r, o = i ? \` [request-id: \${i}]\` : "";
|
|
4184
|
-
return \`\${e} \${a} - \${
|
|
4478
|
+
return \`\${e} \${a} - \${Ee(s)}\${o}\`;
|
|
4185
4479
|
}
|
|
4186
4480
|
constructor(e) {
|
|
4187
4481
|
this.credentialManager = e;
|
|
@@ -4207,7 +4501,7 @@ var require_dist = __commonJS({
|
|
|
4207
4501
|
let a = this.computeSubdomain(e);
|
|
4208
4502
|
if (!a)
|
|
4209
4503
|
throw new f(0, "unable to derive tenant subdomain from credential; missing appId/zoneId/projectId or resourcePrefix");
|
|
4210
|
-
this.cachedDomain = \`https://\${a}.\${
|
|
4504
|
+
this.cachedDomain = \`https://\${a}.\${be}\`, this.uncachedDomain = \`https://\${a}.\${Te}\`, this.initialized = true;
|
|
4211
4505
|
}
|
|
4212
4506
|
async resolveDomain(e) {
|
|
4213
4507
|
return await this.ensureInitialized(), e === "strong" ? this.uncachedDomain : this.cachedDomain;
|
|
@@ -4231,14 +4525,14 @@ var require_dist = __commonJS({
|
|
|
4231
4525
|
return await l.arrayBuffer().catch(() => {
|
|
4232
4526
|
}), { etag: "", statusCode: 412 };
|
|
4233
4527
|
if (!l.ok) {
|
|
4234
|
-
let p = await
|
|
4235
|
-
throw new f(l.status, t.buildErrorDetail("PUT", i, o, p || \`status \${l.status}\`,
|
|
4528
|
+
let p = await k(l);
|
|
4529
|
+
throw new f(l.status, t.buildErrorDetail("PUT", i, o, p || \`status \${l.status}\`, R(l)));
|
|
4236
4530
|
}
|
|
4237
4531
|
let g = l.headers.get("etag") || "";
|
|
4238
4532
|
return await l.arrayBuffer().catch(() => {
|
|
4239
4533
|
}), { etag: g, statusCode: l.status };
|
|
4240
4534
|
} catch (l) {
|
|
4241
|
-
throw l instanceof f ? l : new f(0, t.buildErrorDetail("PUT", i, o,
|
|
4535
|
+
throw l instanceof f ? l : new f(0, t.buildErrorDetail("PUT", i, o, A(l)));
|
|
4242
4536
|
}
|
|
4243
4537
|
}
|
|
4244
4538
|
async createPresignedPutUrl(e, r, n) {
|
|
@@ -4255,13 +4549,13 @@ var require_dist = __commonJS({
|
|
|
4255
4549
|
return await o.arrayBuffer().catch(() => {
|
|
4256
4550
|
}), null;
|
|
4257
4551
|
if (!o.ok) {
|
|
4258
|
-
let u = await
|
|
4259
|
-
throw new f(o.status, t.buildErrorDetail("GET", s, a, u || \`status \${o.status}\`,
|
|
4552
|
+
let u = await k(o);
|
|
4553
|
+
throw new f(o.status, t.buildErrorDetail("GET", s, a, u || \`status \${o.status}\`, R(o)));
|
|
4260
4554
|
}
|
|
4261
4555
|
let c = new Uint8Array(await o.arrayBuffer()), d = Z(o.headers);
|
|
4262
4556
|
return { body: c, contentType: d["content-type"], headers: d };
|
|
4263
4557
|
} catch (o) {
|
|
4264
|
-
throw o instanceof f ? o : new f(0, t.buildErrorDetail("GET", s, a,
|
|
4558
|
+
throw o instanceof f ? o : new f(0, t.buildErrorDetail("GET", s, a, A(o)));
|
|
4265
4559
|
}
|
|
4266
4560
|
}
|
|
4267
4561
|
async headObject(e, r, n) {
|
|
@@ -4271,13 +4565,13 @@ var require_dist = __commonJS({
|
|
|
4271
4565
|
if (o.status === 404)
|
|
4272
4566
|
return null;
|
|
4273
4567
|
if (!o.ok) {
|
|
4274
|
-
let d = await
|
|
4275
|
-
throw new f(o.status, t.buildErrorDetail("HEAD", s, a, d || \`status \${o.status}\`,
|
|
4568
|
+
let d = await k(o);
|
|
4569
|
+
throw new f(o.status, t.buildErrorDetail("HEAD", s, a, d || \`status \${o.status}\`, R(o)));
|
|
4276
4570
|
}
|
|
4277
4571
|
let c = Z(o.headers);
|
|
4278
4572
|
return { cacheControl: c["cache-control"], contentType: c["content-type"], etag: c.etag, headers: c };
|
|
4279
4573
|
} catch (o) {
|
|
4280
|
-
throw o instanceof f ? o : new f(0, t.buildErrorDetail("HEAD", s, a,
|
|
4574
|
+
throw o instanceof f ? o : new f(0, t.buildErrorDetail("HEAD", s, a, A(o)));
|
|
4281
4575
|
}
|
|
4282
4576
|
}
|
|
4283
4577
|
async deleteObject(e, r) {
|
|
@@ -4289,10 +4583,10 @@ var require_dist = __commonJS({
|
|
|
4289
4583
|
});
|
|
4290
4584
|
return;
|
|
4291
4585
|
}
|
|
4292
|
-
let o = await
|
|
4293
|
-
throw new f(a.status, t.buildErrorDetail("DELETE", n, i, o || \`status \${a.status}\`,
|
|
4586
|
+
let o = await k(a);
|
|
4587
|
+
throw new f(a.status, t.buildErrorDetail("DELETE", n, i, o || \`status \${a.status}\`, R(a)));
|
|
4294
4588
|
} catch (a) {
|
|
4295
|
-
throw a instanceof f ? a : new f(0, t.buildErrorDetail("DELETE", n, i,
|
|
4589
|
+
throw a instanceof f ? a : new f(0, t.buildErrorDetail("DELETE", n, i, A(a)));
|
|
4296
4590
|
}
|
|
4297
4591
|
}
|
|
4298
4592
|
async listObjects(e, r) {
|
|
@@ -4318,35 +4612,35 @@ var require_dist = __commonJS({
|
|
|
4318
4612
|
return r;
|
|
4319
4613
|
}
|
|
4320
4614
|
async getBucketRaw(e) {
|
|
4321
|
-
let r = await this.resolveDomain(e.consistency), n = await this.resolveCredential(), s = { prefix: e.prefix };
|
|
4322
|
-
e.delimiter && (s.delimiter = e.delimiter), e.marker && (s.marker = e.marker), e.maxKeys && (s["max-keys"] = e.maxKeys);
|
|
4615
|
+
let r = await this.resolveDomain(e.consistency), n = await this.resolveCredential(), s = { prefix: I(e.prefix) };
|
|
4616
|
+
e.delimiter && (s.delimiter = e.delimiter), e.marker && (s.marker = I(e.marker)), e.maxKeys && (s["max-keys"] = e.maxKeys);
|
|
4323
4617
|
try {
|
|
4324
4618
|
let i = await S({ domain: r, method: "GET", query: s, credential: n });
|
|
4325
4619
|
if (!i.ok) {
|
|
4326
|
-
let o = await
|
|
4327
|
-
throw new f(i.status, t.buildErrorDetail("LIST", r, e.prefix, o || \`status \${i.status}\`,
|
|
4620
|
+
let o = await k(i);
|
|
4621
|
+
throw new f(i.status, t.buildErrorDetail("LIST", r, e.prefix, o || \`status \${i.status}\`, R(i)));
|
|
4328
4622
|
}
|
|
4329
4623
|
let a = await i.text();
|
|
4330
|
-
return
|
|
4624
|
+
return Se(a);
|
|
4331
4625
|
} catch (i) {
|
|
4332
|
-
throw i instanceof f ? i : new f(0, t.buildErrorDetail("LIST", r, e.prefix,
|
|
4626
|
+
throw i instanceof f ? i : new f(0, t.buildErrorDetail("LIST", r, e.prefix, A(i)));
|
|
4333
4627
|
}
|
|
4334
4628
|
}
|
|
4335
4629
|
};
|
|
4336
|
-
function
|
|
4630
|
+
function Ee(t) {
|
|
4337
4631
|
return t.replace(/[a-zA-Z0-9\\-]+\\.cos\\.[a-zA-Z0-9\\-.]+\\.myqcloud\\.com/gi, "[cos-origin]").replace(/[a-zA-Z0-9\\-]+\\.cos\\.[a-zA-Z0-9\\-.]+\\.tencentcos\\.cn/gi, "[cos-origin]");
|
|
4338
4632
|
}
|
|
4339
|
-
async function
|
|
4633
|
+
async function k(t) {
|
|
4340
4634
|
try {
|
|
4341
4635
|
return await t.text();
|
|
4342
4636
|
} catch {
|
|
4343
4637
|
return "";
|
|
4344
4638
|
}
|
|
4345
4639
|
}
|
|
4346
|
-
function
|
|
4640
|
+
function R(t) {
|
|
4347
4641
|
return t.headers.get("x-cos-request-id") || t.headers.get("x-eo-log-id") || void 0;
|
|
4348
4642
|
}
|
|
4349
|
-
function
|
|
4643
|
+
function A(t) {
|
|
4350
4644
|
let e = t, r = e.message || String(t), n = e.cause;
|
|
4351
4645
|
if (n) {
|
|
4352
4646
|
let s = n.message || n.code || "";
|
|
@@ -4360,43 +4654,43 @@ var require_dist = __commonJS({
|
|
|
4360
4654
|
e[n.toLowerCase()] = r;
|
|
4361
4655
|
}), e;
|
|
4362
4656
|
}
|
|
4363
|
-
function
|
|
4657
|
+
function Se(t) {
|
|
4364
4658
|
let e = [], r = /<Contents>([\\s\\S]*?)<\\/Contents>/g, n;
|
|
4365
4659
|
for (; (n = r.exec(t)) !== null; ) {
|
|
4366
|
-
let d = n[1], u =
|
|
4367
|
-
u !== null && e.push({ key:
|
|
4660
|
+
let d = n[1], u = v(d, "Key"), l = v(d, "ETag");
|
|
4661
|
+
u !== null && e.push({ key: L(u), etag: l || "" });
|
|
4368
4662
|
}
|
|
4369
4663
|
let s = [], i = /<CommonPrefixes>([\\s\\S]*?)<\\/CommonPrefixes>/g;
|
|
4370
4664
|
for (; (n = i.exec(t)) !== null; ) {
|
|
4371
|
-
let d = n[1], u =
|
|
4372
|
-
u !== null && s.push(
|
|
4665
|
+
let d = n[1], u = v(d, "Prefix");
|
|
4666
|
+
u !== null && s.push(L(u));
|
|
4373
4667
|
}
|
|
4374
|
-
let o =
|
|
4375
|
-
return { contents: e, commonPrefixes: s, isTruncated: o, nextMarker:
|
|
4668
|
+
let o = v(t, "IsTruncated") === "true", c = v(t, "NextMarker") || "";
|
|
4669
|
+
return { contents: e, commonPrefixes: s, isTruncated: o, nextMarker: L(c) };
|
|
4376
4670
|
}
|
|
4377
|
-
function
|
|
4671
|
+
function v(t, e) {
|
|
4378
4672
|
let n = new RegExp(\`<\${e}>([\\\\s\\\\S]*?)<\\\\/\${e}>\`).exec(t);
|
|
4379
4673
|
return n ? n[1] : null;
|
|
4380
4674
|
}
|
|
4381
|
-
function
|
|
4675
|
+
function L(t) {
|
|
4382
4676
|
return t.replace(/</g, "<").replace(/>/g, ">").replace(/"/g, '"').replace(/'/g, "'").replace(/&/g, "&");
|
|
4383
4677
|
}
|
|
4384
|
-
var
|
|
4385
|
-
async function
|
|
4678
|
+
var Pe = "X-RateLimit-Reset";
|
|
4679
|
+
async function B(t, e, r = 2) {
|
|
4386
4680
|
var _a, _b;
|
|
4387
4681
|
(_b = (_a = e.signal) == null ? void 0 : _a.throwIfAborted) == null ? void 0 : _b.call(_a);
|
|
4388
4682
|
try {
|
|
4389
4683
|
let n = await fetch(t, e);
|
|
4390
4684
|
if (r > 0 && (n.status === 429 || n.status >= 500)) {
|
|
4391
|
-
let s = Q(n.headers.get(
|
|
4392
|
-
return await ee(s, e.signal),
|
|
4685
|
+
let s = Q(n.headers.get(Pe));
|
|
4686
|
+
return await ee(s, e.signal), B(t, e, r - 1);
|
|
4393
4687
|
}
|
|
4394
4688
|
return n;
|
|
4395
4689
|
} catch (n) {
|
|
4396
4690
|
if (r === 0 || n instanceof DOMException && n.name === "AbortError")
|
|
4397
4691
|
throw n;
|
|
4398
4692
|
let s = Q();
|
|
4399
|
-
return await ee(s, e.signal),
|
|
4693
|
+
return await ee(s, e.signal), B(t, e, r - 1);
|
|
4400
4694
|
}
|
|
4401
4695
|
}
|
|
4402
4696
|
function Q(t) {
|
|
@@ -4414,14 +4708,14 @@ var require_dist = __commonJS({
|
|
|
4414
4708
|
e == null ? void 0 : e.addEventListener("abort", i, { once: true });
|
|
4415
4709
|
});
|
|
4416
4710
|
}
|
|
4417
|
-
var
|
|
4711
|
+
var Ie = "prod";
|
|
4418
4712
|
function te() {
|
|
4419
4713
|
let t = typeof process < "u" ? process.env.PAGES_BLOB_STS_ENV : void 0;
|
|
4420
|
-
return t === "test" || t === "prod" ? t :
|
|
4714
|
+
return t === "test" || t === "prod" ? t : Ie;
|
|
4421
4715
|
}
|
|
4422
|
-
var
|
|
4423
|
-
var
|
|
4424
|
-
var
|
|
4716
|
+
var ke = 300;
|
|
4717
|
+
var Re = "https://blob-sts.edgeone.site/";
|
|
4718
|
+
var D = class {
|
|
4425
4719
|
authToken;
|
|
4426
4720
|
projectId;
|
|
4427
4721
|
cached = null;
|
|
@@ -4439,16 +4733,16 @@ var require_dist = __commonJS({
|
|
|
4439
4733
|
}
|
|
4440
4734
|
isExpired(e) {
|
|
4441
4735
|
let r = Math.floor(Date.now() / 1e3);
|
|
4442
|
-
return e.expiredTime - r <
|
|
4736
|
+
return e.expiredTime - r < ke;
|
|
4443
4737
|
}
|
|
4444
4738
|
async fetchCredential() {
|
|
4445
4739
|
for (let n = 1; n <= 3; n++) {
|
|
4446
4740
|
let s = new AbortController(), i = setTimeout(() => s.abort(), 1e4), a;
|
|
4447
4741
|
try {
|
|
4448
|
-
a = await
|
|
4742
|
+
a = await B(Re, { method: "POST", headers: { "Content-Type": "application/json", Authorization: \`Bearer \${this.authToken}\`, "X-Env": te() }, body: JSON.stringify(this.projectId ? { ProjectId: this.projectId } : {}), signal: s.signal });
|
|
4449
4743
|
} catch (d) {
|
|
4450
4744
|
if (n < 3) {
|
|
4451
|
-
await
|
|
4745
|
+
await K(500 * n);
|
|
4452
4746
|
continue;
|
|
4453
4747
|
}
|
|
4454
4748
|
throw new m(\`failed to obtain STS credential: \${d.message || "timeout"}\`);
|
|
@@ -4461,7 +4755,7 @@ var require_dist = __commonJS({
|
|
|
4461
4755
|
throw new m("rate limited, please retry later");
|
|
4462
4756
|
if (!a.ok) {
|
|
4463
4757
|
if (a.status >= 500 && n < 3) {
|
|
4464
|
-
await
|
|
4758
|
+
await K(500 * n);
|
|
4465
4759
|
continue;
|
|
4466
4760
|
}
|
|
4467
4761
|
let d = await a.text().catch(() => "unknown error");
|
|
@@ -4481,7 +4775,7 @@ var require_dist = __commonJS({
|
|
|
4481
4775
|
throw new m(\`credential exchange failed (code=\${o.code}): \${d}\`);
|
|
4482
4776
|
}
|
|
4483
4777
|
if (n < 3) {
|
|
4484
|
-
await
|
|
4778
|
+
await K(500 * n);
|
|
4485
4779
|
continue;
|
|
4486
4780
|
}
|
|
4487
4781
|
throw new m("invalid STS credential response");
|
|
@@ -4489,12 +4783,12 @@ var require_dist = __commonJS({
|
|
|
4489
4783
|
throw new m("invalid STS credential response");
|
|
4490
4784
|
}
|
|
4491
4785
|
};
|
|
4492
|
-
function
|
|
4786
|
+
function K(t) {
|
|
4493
4787
|
return new Promise((e) => setTimeout(e, t));
|
|
4494
4788
|
}
|
|
4495
|
-
var
|
|
4789
|
+
var Ae = "{{PAGES_BLOB_DEPLOY_CREDENTIAL}}";
|
|
4496
4790
|
function re() {
|
|
4497
|
-
let t = {}, e =
|
|
4791
|
+
let t = {}, e = ve();
|
|
4498
4792
|
if (e)
|
|
4499
4793
|
t.deployCredential = e;
|
|
4500
4794
|
else {
|
|
@@ -4504,8 +4798,8 @@ var require_dist = __commonJS({
|
|
|
4504
4798
|
let r = ne("PAGES_PROJECT_ID");
|
|
4505
4799
|
return r && (t.projectId = r), t;
|
|
4506
4800
|
}
|
|
4507
|
-
function
|
|
4508
|
-
let t =
|
|
4801
|
+
function ve() {
|
|
4802
|
+
let t = Ae;
|
|
4509
4803
|
if (!(t.startsWith("{{") && t.endsWith("}}")))
|
|
4510
4804
|
return t || void 0;
|
|
4511
4805
|
}
|
|
@@ -4513,15 +4807,15 @@ var require_dist = __commonJS({
|
|
|
4513
4807
|
if (typeof process < "u" && process.env)
|
|
4514
4808
|
return process.env[t];
|
|
4515
4809
|
}
|
|
4516
|
-
function
|
|
4810
|
+
function Me(t) {
|
|
4517
4811
|
let e = typeof t == "string" ? t : t.name;
|
|
4518
|
-
|
|
4519
|
-
let r = se(typeof t == "string" ? void 0 : t), n = new
|
|
4812
|
+
z(e);
|
|
4813
|
+
let r = se(typeof t == "string" ? void 0 : t), n = new D(r.authToken, r.projectId), s = new M(n);
|
|
4520
4814
|
return new E(s, e, r.consistency ?? "eventual");
|
|
4521
4815
|
}
|
|
4522
|
-
async function
|
|
4523
|
-
let e = se(t ? { name: "__list__", projectId: t.projectId, token: t.token, consistency: t.consistency } : void 0), r = new
|
|
4524
|
-
return { stores: (await new
|
|
4816
|
+
async function De(t) {
|
|
4817
|
+
let e = se(t ? { name: "__list__", projectId: t.projectId, token: t.token, consistency: t.consistency } : void 0), r = new D(e.authToken, e.projectId);
|
|
4818
|
+
return { stores: (await new M(r).listStores(e.consistency)).map((i) => ({ name: i })) };
|
|
4525
4819
|
}
|
|
4526
4820
|
function se(t) {
|
|
4527
4821
|
let e = re(), r = (t == null ? void 0 : t.token) || e.deployCredential, n = (t == null ? void 0 : t.projectId) || e.projectId;
|
|
@@ -4557,6 +4851,9 @@ var LANGGRAPH_STORE_PREFIX = "langgraph_store";
|
|
|
4557
4851
|
var LANGGRAPH_STORE_KEY_SEPARATOR = "__key__";
|
|
4558
4852
|
var LANGGRAPH_SERDE_VERSION = 1;
|
|
4559
4853
|
var CLAUDE_SESSION_PREFIX = "claude_sessions";
|
|
4854
|
+
var CLAUDE_SESSION_MAPPING_PREFIX = "claude_session_mapping";
|
|
4855
|
+
var STATE_PREFIX = "state";
|
|
4856
|
+
var MAX_STATE_KEY_LENGTH = 256;
|
|
4560
4857
|
var SESSION_METADATA_MARKER = { agent_sdk_session: true };
|
|
4561
4858
|
var VALID_ROLES = /* @__PURE__ */ new Set([
|
|
4562
4859
|
"user",
|
|
@@ -4603,6 +4900,15 @@ var MemoryStorageError = class extends Error {
|
|
|
4603
4900
|
this.cause = cause;
|
|
4604
4901
|
}
|
|
4605
4902
|
};
|
|
4903
|
+
var MemoryCorruptError = class extends Error {
|
|
4904
|
+
code = "MemoryCorruptError";
|
|
4905
|
+
cause;
|
|
4906
|
+
constructor(message, cause) {
|
|
4907
|
+
super(message);
|
|
4908
|
+
this.name = "MemoryCorruptError";
|
|
4909
|
+
this.cause = cause;
|
|
4910
|
+
}
|
|
4911
|
+
};
|
|
4606
4912
|
var dynamicImport = new Function(
|
|
4607
4913
|
"specifier",
|
|
4608
4914
|
"return import(specifier);"
|
|
@@ -4610,7 +4916,7 @@ var dynamicImport = new Function(
|
|
|
4610
4916
|
var langchainLoadPromise;
|
|
4611
4917
|
var langchainMessagesPromise;
|
|
4612
4918
|
function isMemoryError(error) {
|
|
4613
|
-
return error instanceof MemoryValidationError || error instanceof MemoryNotFoundError || error instanceof MemoryQuotaExceededError || error instanceof MemoryStorageError;
|
|
4919
|
+
return error instanceof MemoryValidationError || error instanceof MemoryNotFoundError || error instanceof MemoryQuotaExceededError || error instanceof MemoryStorageError || error instanceof MemoryCorruptError;
|
|
4614
4920
|
}
|
|
4615
4921
|
async function wrapStorage(operation) {
|
|
4616
4922
|
try {
|
|
@@ -4778,10 +5084,17 @@ async function reviveLangGraphJsonValue(value) {
|
|
|
4778
5084
|
return revived;
|
|
4779
5085
|
}
|
|
4780
5086
|
async function deserializeLangGraphJson(value) {
|
|
4781
|
-
|
|
4782
|
-
|
|
5087
|
+
try {
|
|
5088
|
+
if (isLangGraphSerializedJson(value)) {
|
|
5089
|
+
return reviveLangGraphJsonValue(JSON.parse(value.data));
|
|
5090
|
+
}
|
|
5091
|
+
return reviveLangGraphJsonValue(value);
|
|
5092
|
+
} catch (error) {
|
|
5093
|
+
throw new MemoryCorruptError(
|
|
5094
|
+
"LangGraph persisted state is corrupt or incompatible.",
|
|
5095
|
+
error
|
|
5096
|
+
);
|
|
4783
5097
|
}
|
|
4784
|
-
return reviveLangGraphJsonValue(value);
|
|
4785
5098
|
}
|
|
4786
5099
|
function normalizeStoreLimit(value, fallback) {
|
|
4787
5100
|
if (typeof value !== "number" || !Number.isFinite(value)) {
|
|
@@ -4893,6 +5206,115 @@ function validateMessageId(messageId) {
|
|
|
4893
5206
|
throw new MemoryValidationError("messageId is required.");
|
|
4894
5207
|
}
|
|
4895
5208
|
}
|
|
5209
|
+
function validateStateKey(key) {
|
|
5210
|
+
if (typeof key !== "string" || key.length === 0) {
|
|
5211
|
+
throw new MemoryValidationError("state key is required.");
|
|
5212
|
+
}
|
|
5213
|
+
if (key.length > MAX_STATE_KEY_LENGTH) {
|
|
5214
|
+
throw new MemoryValidationError(
|
|
5215
|
+
\`state key must be at most \${MAX_STATE_KEY_LENGTH} characters.\`
|
|
5216
|
+
);
|
|
5217
|
+
}
|
|
5218
|
+
}
|
|
5219
|
+
function assertStateSerializable(value, path = "state value", seen = /* @__PURE__ */ new Set()) {
|
|
5220
|
+
if (value === null || typeof value === "string" || typeof value === "boolean") {
|
|
5221
|
+
return;
|
|
5222
|
+
}
|
|
5223
|
+
if (typeof value === "number") {
|
|
5224
|
+
if (Number.isFinite(value))
|
|
5225
|
+
return;
|
|
5226
|
+
throw new MemoryValidationError(\`\${path} must contain only JSON values.\`);
|
|
5227
|
+
}
|
|
5228
|
+
if (value === void 0 || typeof value === "function" || typeof value === "symbol" || typeof value === "bigint") {
|
|
5229
|
+
throw new MemoryValidationError(\`\${path} must be JSON serializable.\`);
|
|
5230
|
+
}
|
|
5231
|
+
if (typeof value !== "object") {
|
|
5232
|
+
throw new MemoryValidationError(\`\${path} must be JSON serializable.\`);
|
|
5233
|
+
}
|
|
5234
|
+
if (seen.has(value)) {
|
|
5235
|
+
throw new MemoryValidationError(\`\${path} must not contain circular references.\`);
|
|
5236
|
+
}
|
|
5237
|
+
seen.add(value);
|
|
5238
|
+
if (Array.isArray(value)) {
|
|
5239
|
+
value.forEach((item, index) => assertStateSerializable(item, \`\${path}[\${index}]\`, seen));
|
|
5240
|
+
} else if (isPlainObject(value)) {
|
|
5241
|
+
for (const [key, item] of Object.entries(value)) {
|
|
5242
|
+
assertStateSerializable(item, \`\${path}.\${key}\`, seen);
|
|
5243
|
+
}
|
|
5244
|
+
} else {
|
|
5245
|
+
throw new MemoryValidationError(\`\${path} must contain only JSON values.\`);
|
|
5246
|
+
}
|
|
5247
|
+
seen.delete(value);
|
|
5248
|
+
}
|
|
5249
|
+
function stateConversationPrefix(conversationId) {
|
|
5250
|
+
return \`\${STATE_PREFIX}/\${encodeKeySegment(conversationId)}/\`;
|
|
5251
|
+
}
|
|
5252
|
+
function createAgentStateStore(store, boundConversationId) {
|
|
5253
|
+
const requireConversation = () => {
|
|
5254
|
+
if (!boundConversationId) {
|
|
5255
|
+
throw new MemoryValidationError(
|
|
5256
|
+
"State operations require a bound conversationId."
|
|
5257
|
+
);
|
|
5258
|
+
}
|
|
5259
|
+
validateConversationId(boundConversationId);
|
|
5260
|
+
return boundConversationId;
|
|
5261
|
+
};
|
|
5262
|
+
return {
|
|
5263
|
+
async get(key) {
|
|
5264
|
+
validateStateKey(key);
|
|
5265
|
+
const conversationId = requireConversation();
|
|
5266
|
+
return wrapStorage(async () => {
|
|
5267
|
+
const raw = await store.get(
|
|
5268
|
+
\`\${stateConversationPrefix(conversationId)}\${encodeKeySegment(key)}\`,
|
|
5269
|
+
{ consistency: "strong" }
|
|
5270
|
+
);
|
|
5271
|
+
if (raw === null)
|
|
5272
|
+
return null;
|
|
5273
|
+
if (typeof raw !== "string") {
|
|
5274
|
+
throw new MemoryStorageError("Stored state value is not valid JSON text.");
|
|
5275
|
+
}
|
|
5276
|
+
try {
|
|
5277
|
+
return JSON.parse(raw);
|
|
5278
|
+
} catch (error) {
|
|
5279
|
+
throw new MemoryStorageError("Stored state value is invalid JSON.", error);
|
|
5280
|
+
}
|
|
5281
|
+
});
|
|
5282
|
+
},
|
|
5283
|
+
async set(key, value) {
|
|
5284
|
+
validateStateKey(key);
|
|
5285
|
+
const conversationId = requireConversation();
|
|
5286
|
+
assertStateSerializable(value);
|
|
5287
|
+
let serialized;
|
|
5288
|
+
try {
|
|
5289
|
+
serialized = JSON.stringify(value);
|
|
5290
|
+
} catch (error) {
|
|
5291
|
+
throw new MemoryValidationError(\`state value must be JSON serializable: \${String(error)}\`);
|
|
5292
|
+
}
|
|
5293
|
+
await wrapStorage(
|
|
5294
|
+
() => store.set(
|
|
5295
|
+
\`\${stateConversationPrefix(conversationId)}\${encodeKeySegment(key)}\`,
|
|
5296
|
+
serialized
|
|
5297
|
+
)
|
|
5298
|
+
);
|
|
5299
|
+
},
|
|
5300
|
+
async delete(key) {
|
|
5301
|
+
validateStateKey(key);
|
|
5302
|
+
const conversationId = requireConversation();
|
|
5303
|
+
await wrapStorage(
|
|
5304
|
+
() => store.delete(
|
|
5305
|
+
\`\${stateConversationPrefix(conversationId)}\${encodeKeySegment(key)}\`
|
|
5306
|
+
)
|
|
5307
|
+
);
|
|
5308
|
+
}
|
|
5309
|
+
};
|
|
5310
|
+
}
|
|
5311
|
+
async function deleteAgentState(store, conversationId) {
|
|
5312
|
+
const listed = await store.list({
|
|
5313
|
+
prefix: stateConversationPrefix(conversationId),
|
|
5314
|
+
consistency: "strong"
|
|
5315
|
+
});
|
|
5316
|
+
await Promise.all(listed.keys.map((key) => store.delete(key)));
|
|
5317
|
+
}
|
|
4896
5318
|
function validateUserId(userId) {
|
|
4897
5319
|
if (userId === void 0) {
|
|
4898
5320
|
return;
|
|
@@ -5025,6 +5447,9 @@ function cursorSortKey(cursor) {
|
|
|
5025
5447
|
const payload = decodeConversationCursor(cursor);
|
|
5026
5448
|
return \`\${reverseTimestamp(payload.lastMessageAt)}_\${encodeKeySegment(payload.conversationId)}\`;
|
|
5027
5449
|
}
|
|
5450
|
+
function cursorListCursor(cursor) {
|
|
5451
|
+
return cursor ? decodeConversationCursor(cursor).listCursor : void 0;
|
|
5452
|
+
}
|
|
5028
5453
|
function indexSortKey(key, prefix) {
|
|
5029
5454
|
return key.slice(prefix.length);
|
|
5030
5455
|
}
|
|
@@ -5192,6 +5617,51 @@ function claudeSessionBase(projectKey, sessionId) {
|
|
|
5192
5617
|
function claudeProjectPrefix(projectKey) {
|
|
5193
5618
|
return \`\${CLAUDE_SESSION_PREFIX}/\${encodeKeySegment(projectKey)}/\`;
|
|
5194
5619
|
}
|
|
5620
|
+
function claudeSessionMappingKey(conversationId) {
|
|
5621
|
+
return \`\${CLAUDE_SESSION_MAPPING_PREFIX}/\${encodeKeySegment(conversationId)}\`;
|
|
5622
|
+
}
|
|
5623
|
+
function normalizeClaudeUuid(value) {
|
|
5624
|
+
const trimmed = value.trim().toLowerCase();
|
|
5625
|
+
return /^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$/.test(trimmed) ? trimmed : null;
|
|
5626
|
+
}
|
|
5627
|
+
function claudeSessionIdFromKey(key) {
|
|
5628
|
+
const prefix = \`\${CLAUDE_SESSION_PREFIX}/\`;
|
|
5629
|
+
if (!key.startsWith(prefix)) {
|
|
5630
|
+
return null;
|
|
5631
|
+
}
|
|
5632
|
+
const segments = key.slice(prefix.length).split("/");
|
|
5633
|
+
return segments.length >= 3 && segments[1] ? decodeKeySegment(segments[1]) : null;
|
|
5634
|
+
}
|
|
5635
|
+
async function deleteClaudeSessionForConversation(store, conversationId) {
|
|
5636
|
+
const mappingKey = claudeSessionMappingKey(conversationId);
|
|
5637
|
+
const mapping = await store.get(mappingKey, {
|
|
5638
|
+
consistency: "strong"
|
|
5639
|
+
});
|
|
5640
|
+
let sessionId = null;
|
|
5641
|
+
if (typeof mapping === "string") {
|
|
5642
|
+
sessionId = mapping;
|
|
5643
|
+
} else if (isPlainObject(mapping) && typeof mapping.sessionId === "string") {
|
|
5644
|
+
sessionId = mapping.sessionId;
|
|
5645
|
+
} else if (isPlainObject(mapping) && typeof mapping.session_id === "string") {
|
|
5646
|
+
sessionId = mapping.session_id;
|
|
5647
|
+
}
|
|
5648
|
+
if (!sessionId) {
|
|
5649
|
+
sessionId = normalizeClaudeUuid(conversationId);
|
|
5650
|
+
}
|
|
5651
|
+
await store.delete(mappingKey);
|
|
5652
|
+
if (!sessionId) {
|
|
5653
|
+
return;
|
|
5654
|
+
}
|
|
5655
|
+
const listed = await store.list({
|
|
5656
|
+
prefix: \`\${CLAUDE_SESSION_PREFIX}/\`,
|
|
5657
|
+
consistency: "strong"
|
|
5658
|
+
});
|
|
5659
|
+
for (const key of listed.keys) {
|
|
5660
|
+
if (claudeSessionIdFromKey(key) === sessionId) {
|
|
5661
|
+
await store.delete(key);
|
|
5662
|
+
}
|
|
5663
|
+
}
|
|
5664
|
+
}
|
|
5195
5665
|
function claudePartsPrefix(key) {
|
|
5196
5666
|
let base = claudeSessionBase(key.projectKey, key.sessionId).slice(0, -1);
|
|
5197
5667
|
if (key.subpath) {
|
|
@@ -5229,7 +5699,9 @@ function createClaudeSessionStore(store) {
|
|
|
5229
5699
|
consistency: "strong"
|
|
5230
5700
|
});
|
|
5231
5701
|
if (typeof raw !== "string") {
|
|
5232
|
-
|
|
5702
|
+
throw new MemoryCorruptError(
|
|
5703
|
+
\`Claude session part '\${partKey}' is not valid JSONL text.\`
|
|
5704
|
+
);
|
|
5233
5705
|
}
|
|
5234
5706
|
for (const line of raw.split("\\n")) {
|
|
5235
5707
|
const trimmed = line.trim();
|
|
@@ -5238,7 +5710,11 @@ function createClaudeSessionStore(store) {
|
|
|
5238
5710
|
}
|
|
5239
5711
|
try {
|
|
5240
5712
|
entries.push(JSON.parse(trimmed));
|
|
5241
|
-
} catch {
|
|
5713
|
+
} catch (error) {
|
|
5714
|
+
throw new MemoryCorruptError(
|
|
5715
|
+
\`Claude session part '\${partKey}' contains malformed JSONL.\`,
|
|
5716
|
+
error
|
|
5717
|
+
);
|
|
5242
5718
|
}
|
|
5243
5719
|
}
|
|
5244
5720
|
}
|
|
@@ -5364,8 +5840,70 @@ async function listConversationsByUser(store, userId, options) {
|
|
|
5364
5840
|
});
|
|
5365
5841
|
}
|
|
5366
5842
|
async function listConversationsFromIndex(store, options) {
|
|
5843
|
+
if (!options.before) {
|
|
5844
|
+
const fast = await listConversationsFromIndexFast(store, options);
|
|
5845
|
+
if (fast)
|
|
5846
|
+
return fast;
|
|
5847
|
+
}
|
|
5367
5848
|
return listConversationsFromIndexFull(store, options);
|
|
5368
5849
|
}
|
|
5850
|
+
async function listConversationsFromIndexFast(store, options) {
|
|
5851
|
+
var _a, _b;
|
|
5852
|
+
let listCursor = cursorListCursor(options.after);
|
|
5853
|
+
if (options.after && !listCursor) {
|
|
5854
|
+
return null;
|
|
5855
|
+
}
|
|
5856
|
+
const pageItems = [];
|
|
5857
|
+
const seen = /* @__PURE__ */ new Set();
|
|
5858
|
+
let lastCursor;
|
|
5859
|
+
while (pageItems.length < options.limit) {
|
|
5860
|
+
const listed = await store.list({
|
|
5861
|
+
prefix: options.prefix,
|
|
5862
|
+
cursor: listCursor,
|
|
5863
|
+
limit: options.limit - pageItems.length,
|
|
5864
|
+
paginate: false,
|
|
5865
|
+
consistency: "strong"
|
|
5866
|
+
});
|
|
5867
|
+
lastCursor = listed.cursor;
|
|
5868
|
+
if (!listed.keys.length) {
|
|
5869
|
+
break;
|
|
5870
|
+
}
|
|
5871
|
+
const indexItems = [...listed.keys].sort(
|
|
5872
|
+
(left, right) => options.order === "desc" ? left.localeCompare(right) : right.localeCompare(left)
|
|
5873
|
+
).map((key) => {
|
|
5874
|
+
const conversationId = options.conversationIdFromKey(key);
|
|
5875
|
+
if (!conversationId || seen.has(conversationId)) {
|
|
5876
|
+
return null;
|
|
5877
|
+
}
|
|
5878
|
+
seen.add(conversationId);
|
|
5879
|
+
return {
|
|
5880
|
+
key,
|
|
5881
|
+
sortKey: indexSortKey(key, options.prefix),
|
|
5882
|
+
conversationId
|
|
5883
|
+
};
|
|
5884
|
+
}).filter((item) => item !== null);
|
|
5885
|
+
const metas = await Promise.all(
|
|
5886
|
+
indexItems.map((item) => readConversationMeta(store, item.conversationId))
|
|
5887
|
+
);
|
|
5888
|
+
for (let i = 0; i < indexItems.length; i++) {
|
|
5889
|
+
const meta = metas[i];
|
|
5890
|
+
if (meta) {
|
|
5891
|
+
pageItems.push({ indexItem: indexItems[i], meta });
|
|
5892
|
+
}
|
|
5893
|
+
}
|
|
5894
|
+
if (!listed.cursor) {
|
|
5895
|
+
break;
|
|
5896
|
+
}
|
|
5897
|
+
listCursor = listed.cursor;
|
|
5898
|
+
}
|
|
5899
|
+
const firstItem = (_a = pageItems[0]) == null ? void 0 : _a.indexItem;
|
|
5900
|
+
const lastItem = (_b = pageItems[pageItems.length - 1]) == null ? void 0 : _b.indexItem;
|
|
5901
|
+
return {
|
|
5902
|
+
items: pageItems.map((item) => item.meta),
|
|
5903
|
+
nextCursor: lastItem ? encodeConversationCursorFromIndexItem(lastItem, lastCursor) : void 0,
|
|
5904
|
+
previousCursor: firstItem ? encodeConversationCursorFromIndexItem(firstItem) : void 0
|
|
5905
|
+
};
|
|
5906
|
+
}
|
|
5369
5907
|
async function listConversationsFromIndexFull(store, options) {
|
|
5370
5908
|
var _a, _b;
|
|
5371
5909
|
const afterSortKey = options.after ? cursorSortKey(options.after) : void 0;
|
|
@@ -5802,6 +6340,7 @@ function createAgentMemory(store, options = {}) {
|
|
|
5802
6340
|
const maxMessagesPerConversation = options.maxMessagesPerConversation ?? DEFAULT_MAX_MESSAGES_PER_CONVERSATION;
|
|
5803
6341
|
const langgraphCheckpointer = createLangGraphCheckpointer(store);
|
|
5804
6342
|
const langgraphStore = createLangGraphStore(store);
|
|
6343
|
+
const state = createAgentStateStore(store, options.conversationId);
|
|
5805
6344
|
let claudeStoreCache = null;
|
|
5806
6345
|
let lastMessageCreatedAt = 0;
|
|
5807
6346
|
const appendMessagesInternal = async (inputs) => {
|
|
@@ -6087,8 +6626,13 @@ function createAgentMemory(store, options = {}) {
|
|
|
6087
6626
|
listMessageKeys(store, input.conversationId)
|
|
6088
6627
|
]);
|
|
6089
6628
|
if (!meta) {
|
|
6629
|
+
if (options.conversationId === input.conversationId) {
|
|
6630
|
+
await deleteAgentState(store, input.conversationId);
|
|
6631
|
+
}
|
|
6632
|
+
await deleteClaudeSessionForConversation(store, input.conversationId);
|
|
6633
|
+
await langgraphCheckpointer.deleteThread(input.conversationId);
|
|
6090
6634
|
throw new MemoryNotFoundError(
|
|
6091
|
-
"Conversation not found by
|
|
6635
|
+
"Conversation not found by deleteConversation."
|
|
6092
6636
|
);
|
|
6093
6637
|
}
|
|
6094
6638
|
const deleteOps = [];
|
|
@@ -6105,6 +6649,11 @@ function createAgentMemory(store, options = {}) {
|
|
|
6105
6649
|
deleteOps.push(store.delete(metaKey(input.conversationId)));
|
|
6106
6650
|
deleteOps.push(store.delete(conversationIndexKey(meta)));
|
|
6107
6651
|
await Promise.all(deleteOps);
|
|
6652
|
+
if (options.conversationId === input.conversationId) {
|
|
6653
|
+
await deleteAgentState(store, input.conversationId);
|
|
6654
|
+
}
|
|
6655
|
+
await deleteClaudeSessionForConversation(store, input.conversationId);
|
|
6656
|
+
await langgraphCheckpointer.deleteThread(input.conversationId);
|
|
6108
6657
|
});
|
|
6109
6658
|
},
|
|
6110
6659
|
async updateConversation(input) {
|
|
@@ -6140,14 +6689,49 @@ function createAgentMemory(store, options = {}) {
|
|
|
6140
6689
|
}));
|
|
6141
6690
|
},
|
|
6142
6691
|
openaiSession(sessionId, sessionOptions = {}) {
|
|
6692
|
+
const boundSessionId = sessionId ?? options.conversationId;
|
|
6693
|
+
if (!boundSessionId) {
|
|
6694
|
+
throw new MemoryValidationError(
|
|
6695
|
+
"openaiSession requires a sessionId or bound conversationId."
|
|
6696
|
+
);
|
|
6697
|
+
}
|
|
6143
6698
|
const maxItems = sessionOptions.maxItems ?? MAX_LIMIT;
|
|
6144
6699
|
return createOpenAISession(
|
|
6145
6700
|
memory,
|
|
6146
|
-
|
|
6701
|
+
boundSessionId,
|
|
6147
6702
|
maxItems,
|
|
6148
6703
|
appendMessagesInternal
|
|
6149
6704
|
);
|
|
6150
6705
|
},
|
|
6706
|
+
async claudeSessionBinding(conversationId) {
|
|
6707
|
+
const resolvedConversationId = conversationId ?? options.conversationId;
|
|
6708
|
+
if (!resolvedConversationId) {
|
|
6709
|
+
throw new MemoryValidationError(
|
|
6710
|
+
"claudeSessionBinding requires a conversationId or bound conversationId."
|
|
6711
|
+
);
|
|
6712
|
+
}
|
|
6713
|
+
validateConversationId(resolvedConversationId);
|
|
6714
|
+
return wrapStorage(async () => {
|
|
6715
|
+
const mappingKey = claudeSessionMappingKey(resolvedConversationId);
|
|
6716
|
+
const existing = await store.get(
|
|
6717
|
+
mappingKey,
|
|
6718
|
+
{ consistency: "strong" }
|
|
6719
|
+
);
|
|
6720
|
+
if (typeof existing === "string" && existing) {
|
|
6721
|
+
return existing;
|
|
6722
|
+
}
|
|
6723
|
+
if (isPlainObject(existing) && (typeof existing.sessionId === "string" || typeof existing.session_id === "string") && (existing.sessionId || existing.session_id)) {
|
|
6724
|
+
return String(existing.sessionId || existing.session_id);
|
|
6725
|
+
}
|
|
6726
|
+
const sessionId = normalizeClaudeUuid(resolvedConversationId) ?? randomUUID();
|
|
6727
|
+
const binding = {
|
|
6728
|
+
conversationId: resolvedConversationId,
|
|
6729
|
+
sessionId
|
|
6730
|
+
};
|
|
6731
|
+
await store.set(mappingKey, binding);
|
|
6732
|
+
return sessionId;
|
|
6733
|
+
});
|
|
6734
|
+
},
|
|
6151
6735
|
claudeSessionStore() {
|
|
6152
6736
|
if (!claudeStoreCache) {
|
|
6153
6737
|
claudeStoreCache = createClaudeSessionStore(store);
|
|
@@ -6155,7 +6739,8 @@ function createAgentMemory(store, options = {}) {
|
|
|
6155
6739
|
return claudeStoreCache;
|
|
6156
6740
|
},
|
|
6157
6741
|
langgraphCheckpointer,
|
|
6158
|
-
langgraphStore
|
|
6742
|
+
langgraphStore,
|
|
6743
|
+
state
|
|
6159
6744
|
};
|
|
6160
6745
|
return memory;
|
|
6161
6746
|
}
|
|
@@ -8964,6 +9549,9 @@ var LANGGRAPH_STORE_PREFIX = "langgraph_store";
|
|
|
8964
9549
|
var LANGGRAPH_STORE_KEY_SEPARATOR = "__key__";
|
|
8965
9550
|
var LANGGRAPH_SERDE_VERSION = 1;
|
|
8966
9551
|
var CLAUDE_SESSION_PREFIX = "claude_sessions";
|
|
9552
|
+
var CLAUDE_SESSION_MAPPING_PREFIX = "claude_session_mapping";
|
|
9553
|
+
var STATE_PREFIX = "state";
|
|
9554
|
+
var MAX_STATE_KEY_LENGTH = 256;
|
|
8967
9555
|
var SESSION_METADATA_MARKER = { agent_sdk_session: true };
|
|
8968
9556
|
var VALID_ROLES = /* @__PURE__ */ new Set([
|
|
8969
9557
|
"user",
|
|
@@ -9010,6 +9598,15 @@ var MemoryStorageError = class extends Error {
|
|
|
9010
9598
|
this.cause = cause;
|
|
9011
9599
|
}
|
|
9012
9600
|
};
|
|
9601
|
+
var MemoryCorruptError = class extends Error {
|
|
9602
|
+
code = "MemoryCorruptError";
|
|
9603
|
+
cause;
|
|
9604
|
+
constructor(message, cause) {
|
|
9605
|
+
super(message);
|
|
9606
|
+
this.name = "MemoryCorruptError";
|
|
9607
|
+
this.cause = cause;
|
|
9608
|
+
}
|
|
9609
|
+
};
|
|
9013
9610
|
var dynamicImport = new Function(
|
|
9014
9611
|
"specifier",
|
|
9015
9612
|
"return import(specifier);"
|
|
@@ -9017,7 +9614,7 @@ var dynamicImport = new Function(
|
|
|
9017
9614
|
var langchainLoadPromise;
|
|
9018
9615
|
var langchainMessagesPromise;
|
|
9019
9616
|
function isMemoryError(error) {
|
|
9020
|
-
return error instanceof MemoryValidationError || error instanceof MemoryNotFoundError || error instanceof MemoryQuotaExceededError || error instanceof MemoryStorageError;
|
|
9617
|
+
return error instanceof MemoryValidationError || error instanceof MemoryNotFoundError || error instanceof MemoryQuotaExceededError || error instanceof MemoryStorageError || error instanceof MemoryCorruptError;
|
|
9021
9618
|
}
|
|
9022
9619
|
async function wrapStorage(operation) {
|
|
9023
9620
|
try {
|
|
@@ -9185,10 +9782,17 @@ async function reviveLangGraphJsonValue(value) {
|
|
|
9185
9782
|
return revived;
|
|
9186
9783
|
}
|
|
9187
9784
|
async function deserializeLangGraphJson(value) {
|
|
9188
|
-
|
|
9189
|
-
|
|
9785
|
+
try {
|
|
9786
|
+
if (isLangGraphSerializedJson(value)) {
|
|
9787
|
+
return reviveLangGraphJsonValue(JSON.parse(value.data));
|
|
9788
|
+
}
|
|
9789
|
+
return reviveLangGraphJsonValue(value);
|
|
9790
|
+
} catch (error) {
|
|
9791
|
+
throw new MemoryCorruptError(
|
|
9792
|
+
"LangGraph persisted state is corrupt or incompatible.",
|
|
9793
|
+
error
|
|
9794
|
+
);
|
|
9190
9795
|
}
|
|
9191
|
-
return reviveLangGraphJsonValue(value);
|
|
9192
9796
|
}
|
|
9193
9797
|
function normalizeStoreLimit(value, fallback) {
|
|
9194
9798
|
if (typeof value !== "number" || !Number.isFinite(value)) {
|
|
@@ -9300,6 +9904,115 @@ function validateMessageId(messageId) {
|
|
|
9300
9904
|
throw new MemoryValidationError("messageId is required.");
|
|
9301
9905
|
}
|
|
9302
9906
|
}
|
|
9907
|
+
function validateStateKey(key) {
|
|
9908
|
+
if (typeof key !== "string" || key.length === 0) {
|
|
9909
|
+
throw new MemoryValidationError("state key is required.");
|
|
9910
|
+
}
|
|
9911
|
+
if (key.length > MAX_STATE_KEY_LENGTH) {
|
|
9912
|
+
throw new MemoryValidationError(
|
|
9913
|
+
\`state key must be at most \${MAX_STATE_KEY_LENGTH} characters.\`
|
|
9914
|
+
);
|
|
9915
|
+
}
|
|
9916
|
+
}
|
|
9917
|
+
function assertStateSerializable(value, path2 = "state value", seen = /* @__PURE__ */ new Set()) {
|
|
9918
|
+
if (value === null || typeof value === "string" || typeof value === "boolean") {
|
|
9919
|
+
return;
|
|
9920
|
+
}
|
|
9921
|
+
if (typeof value === "number") {
|
|
9922
|
+
if (Number.isFinite(value))
|
|
9923
|
+
return;
|
|
9924
|
+
throw new MemoryValidationError(\`\${path2} must contain only JSON values.\`);
|
|
9925
|
+
}
|
|
9926
|
+
if (value === void 0 || typeof value === "function" || typeof value === "symbol" || typeof value === "bigint") {
|
|
9927
|
+
throw new MemoryValidationError(\`\${path2} must be JSON serializable.\`);
|
|
9928
|
+
}
|
|
9929
|
+
if (typeof value !== "object") {
|
|
9930
|
+
throw new MemoryValidationError(\`\${path2} must be JSON serializable.\`);
|
|
9931
|
+
}
|
|
9932
|
+
if (seen.has(value)) {
|
|
9933
|
+
throw new MemoryValidationError(\`\${path2} must not contain circular references.\`);
|
|
9934
|
+
}
|
|
9935
|
+
seen.add(value);
|
|
9936
|
+
if (Array.isArray(value)) {
|
|
9937
|
+
value.forEach((item, index) => assertStateSerializable(item, \`\${path2}[\${index}]\`, seen));
|
|
9938
|
+
} else if (isPlainObject(value)) {
|
|
9939
|
+
for (const [key, item] of Object.entries(value)) {
|
|
9940
|
+
assertStateSerializable(item, \`\${path2}.\${key}\`, seen);
|
|
9941
|
+
}
|
|
9942
|
+
} else {
|
|
9943
|
+
throw new MemoryValidationError(\`\${path2} must contain only JSON values.\`);
|
|
9944
|
+
}
|
|
9945
|
+
seen.delete(value);
|
|
9946
|
+
}
|
|
9947
|
+
function stateConversationPrefix(conversationId) {
|
|
9948
|
+
return \`\${STATE_PREFIX}/\${encodeKeySegment(conversationId)}/\`;
|
|
9949
|
+
}
|
|
9950
|
+
function createAgentStateStore(store, boundConversationId) {
|
|
9951
|
+
const requireConversation = () => {
|
|
9952
|
+
if (!boundConversationId) {
|
|
9953
|
+
throw new MemoryValidationError(
|
|
9954
|
+
"State operations require a bound conversationId."
|
|
9955
|
+
);
|
|
9956
|
+
}
|
|
9957
|
+
validateConversationId(boundConversationId);
|
|
9958
|
+
return boundConversationId;
|
|
9959
|
+
};
|
|
9960
|
+
return {
|
|
9961
|
+
async get(key) {
|
|
9962
|
+
validateStateKey(key);
|
|
9963
|
+
const conversationId = requireConversation();
|
|
9964
|
+
return wrapStorage(async () => {
|
|
9965
|
+
const raw = await store.get(
|
|
9966
|
+
\`\${stateConversationPrefix(conversationId)}\${encodeKeySegment(key)}\`,
|
|
9967
|
+
{ consistency: "strong" }
|
|
9968
|
+
);
|
|
9969
|
+
if (raw === null)
|
|
9970
|
+
return null;
|
|
9971
|
+
if (typeof raw !== "string") {
|
|
9972
|
+
throw new MemoryStorageError("Stored state value is not valid JSON text.");
|
|
9973
|
+
}
|
|
9974
|
+
try {
|
|
9975
|
+
return JSON.parse(raw);
|
|
9976
|
+
} catch (error) {
|
|
9977
|
+
throw new MemoryStorageError("Stored state value is invalid JSON.", error);
|
|
9978
|
+
}
|
|
9979
|
+
});
|
|
9980
|
+
},
|
|
9981
|
+
async set(key, value) {
|
|
9982
|
+
validateStateKey(key);
|
|
9983
|
+
const conversationId = requireConversation();
|
|
9984
|
+
assertStateSerializable(value);
|
|
9985
|
+
let serialized;
|
|
9986
|
+
try {
|
|
9987
|
+
serialized = JSON.stringify(value);
|
|
9988
|
+
} catch (error) {
|
|
9989
|
+
throw new MemoryValidationError(\`state value must be JSON serializable: \${String(error)}\`);
|
|
9990
|
+
}
|
|
9991
|
+
await wrapStorage(
|
|
9992
|
+
() => store.set(
|
|
9993
|
+
\`\${stateConversationPrefix(conversationId)}\${encodeKeySegment(key)}\`,
|
|
9994
|
+
serialized
|
|
9995
|
+
)
|
|
9996
|
+
);
|
|
9997
|
+
},
|
|
9998
|
+
async delete(key) {
|
|
9999
|
+
validateStateKey(key);
|
|
10000
|
+
const conversationId = requireConversation();
|
|
10001
|
+
await wrapStorage(
|
|
10002
|
+
() => store.delete(
|
|
10003
|
+
\`\${stateConversationPrefix(conversationId)}\${encodeKeySegment(key)}\`
|
|
10004
|
+
)
|
|
10005
|
+
);
|
|
10006
|
+
}
|
|
10007
|
+
};
|
|
10008
|
+
}
|
|
10009
|
+
async function deleteAgentState(store, conversationId) {
|
|
10010
|
+
const listed = await store.list({
|
|
10011
|
+
prefix: stateConversationPrefix(conversationId),
|
|
10012
|
+
consistency: "strong"
|
|
10013
|
+
});
|
|
10014
|
+
await Promise.all(listed.keys.map((key) => store.delete(key)));
|
|
10015
|
+
}
|
|
9303
10016
|
function validateUserId(userId) {
|
|
9304
10017
|
if (userId === void 0) {
|
|
9305
10018
|
return;
|
|
@@ -9432,6 +10145,9 @@ function cursorSortKey(cursor) {
|
|
|
9432
10145
|
const payload = decodeConversationCursor(cursor);
|
|
9433
10146
|
return \`\${reverseTimestamp(payload.lastMessageAt)}_\${encodeKeySegment(payload.conversationId)}\`;
|
|
9434
10147
|
}
|
|
10148
|
+
function cursorListCursor(cursor) {
|
|
10149
|
+
return cursor ? decodeConversationCursor(cursor).listCursor : void 0;
|
|
10150
|
+
}
|
|
9435
10151
|
function indexSortKey(key, prefix) {
|
|
9436
10152
|
return key.slice(prefix.length);
|
|
9437
10153
|
}
|
|
@@ -9599,6 +10315,51 @@ function claudeSessionBase(projectKey, sessionId) {
|
|
|
9599
10315
|
function claudeProjectPrefix(projectKey) {
|
|
9600
10316
|
return \`\${CLAUDE_SESSION_PREFIX}/\${encodeKeySegment(projectKey)}/\`;
|
|
9601
10317
|
}
|
|
10318
|
+
function claudeSessionMappingKey(conversationId) {
|
|
10319
|
+
return \`\${CLAUDE_SESSION_MAPPING_PREFIX}/\${encodeKeySegment(conversationId)}\`;
|
|
10320
|
+
}
|
|
10321
|
+
function normalizeClaudeUuid(value) {
|
|
10322
|
+
const trimmed = value.trim().toLowerCase();
|
|
10323
|
+
return /^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$/.test(trimmed) ? trimmed : null;
|
|
10324
|
+
}
|
|
10325
|
+
function claudeSessionIdFromKey(key) {
|
|
10326
|
+
const prefix = \`\${CLAUDE_SESSION_PREFIX}/\`;
|
|
10327
|
+
if (!key.startsWith(prefix)) {
|
|
10328
|
+
return null;
|
|
10329
|
+
}
|
|
10330
|
+
const segments = key.slice(prefix.length).split("/");
|
|
10331
|
+
return segments.length >= 3 && segments[1] ? decodeKeySegment(segments[1]) : null;
|
|
10332
|
+
}
|
|
10333
|
+
async function deleteClaudeSessionForConversation(store, conversationId) {
|
|
10334
|
+
const mappingKey = claudeSessionMappingKey(conversationId);
|
|
10335
|
+
const mapping = await store.get(mappingKey, {
|
|
10336
|
+
consistency: "strong"
|
|
10337
|
+
});
|
|
10338
|
+
let sessionId = null;
|
|
10339
|
+
if (typeof mapping === "string") {
|
|
10340
|
+
sessionId = mapping;
|
|
10341
|
+
} else if (isPlainObject(mapping) && typeof mapping.sessionId === "string") {
|
|
10342
|
+
sessionId = mapping.sessionId;
|
|
10343
|
+
} else if (isPlainObject(mapping) && typeof mapping.session_id === "string") {
|
|
10344
|
+
sessionId = mapping.session_id;
|
|
10345
|
+
}
|
|
10346
|
+
if (!sessionId) {
|
|
10347
|
+
sessionId = normalizeClaudeUuid(conversationId);
|
|
10348
|
+
}
|
|
10349
|
+
await store.delete(mappingKey);
|
|
10350
|
+
if (!sessionId) {
|
|
10351
|
+
return;
|
|
10352
|
+
}
|
|
10353
|
+
const listed = await store.list({
|
|
10354
|
+
prefix: \`\${CLAUDE_SESSION_PREFIX}/\`,
|
|
10355
|
+
consistency: "strong"
|
|
10356
|
+
});
|
|
10357
|
+
for (const key of listed.keys) {
|
|
10358
|
+
if (claudeSessionIdFromKey(key) === sessionId) {
|
|
10359
|
+
await store.delete(key);
|
|
10360
|
+
}
|
|
10361
|
+
}
|
|
10362
|
+
}
|
|
9602
10363
|
function claudePartsPrefix(key) {
|
|
9603
10364
|
let base = claudeSessionBase(key.projectKey, key.sessionId).slice(0, -1);
|
|
9604
10365
|
if (key.subpath) {
|
|
@@ -9636,7 +10397,9 @@ function createClaudeSessionStore(store) {
|
|
|
9636
10397
|
consistency: "strong"
|
|
9637
10398
|
});
|
|
9638
10399
|
if (typeof raw !== "string") {
|
|
9639
|
-
|
|
10400
|
+
throw new MemoryCorruptError(
|
|
10401
|
+
\`Claude session part '\${partKey}' is not valid JSONL text.\`
|
|
10402
|
+
);
|
|
9640
10403
|
}
|
|
9641
10404
|
for (const line of raw.split("\\n")) {
|
|
9642
10405
|
const trimmed = line.trim();
|
|
@@ -9645,7 +10408,11 @@ function createClaudeSessionStore(store) {
|
|
|
9645
10408
|
}
|
|
9646
10409
|
try {
|
|
9647
10410
|
entries.push(JSON.parse(trimmed));
|
|
9648
|
-
} catch {
|
|
10411
|
+
} catch (error) {
|
|
10412
|
+
throw new MemoryCorruptError(
|
|
10413
|
+
\`Claude session part '\${partKey}' contains malformed JSONL.\`,
|
|
10414
|
+
error
|
|
10415
|
+
);
|
|
9649
10416
|
}
|
|
9650
10417
|
}
|
|
9651
10418
|
}
|
|
@@ -9771,8 +10538,70 @@ async function listConversationsByUser(store, userId, options) {
|
|
|
9771
10538
|
});
|
|
9772
10539
|
}
|
|
9773
10540
|
async function listConversationsFromIndex(store, options) {
|
|
10541
|
+
if (!options.before) {
|
|
10542
|
+
const fast = await listConversationsFromIndexFast(store, options);
|
|
10543
|
+
if (fast)
|
|
10544
|
+
return fast;
|
|
10545
|
+
}
|
|
9774
10546
|
return listConversationsFromIndexFull(store, options);
|
|
9775
10547
|
}
|
|
10548
|
+
async function listConversationsFromIndexFast(store, options) {
|
|
10549
|
+
var _a, _b;
|
|
10550
|
+
let listCursor = cursorListCursor(options.after);
|
|
10551
|
+
if (options.after && !listCursor) {
|
|
10552
|
+
return null;
|
|
10553
|
+
}
|
|
10554
|
+
const pageItems = [];
|
|
10555
|
+
const seen = /* @__PURE__ */ new Set();
|
|
10556
|
+
let lastCursor;
|
|
10557
|
+
while (pageItems.length < options.limit) {
|
|
10558
|
+
const listed = await store.list({
|
|
10559
|
+
prefix: options.prefix,
|
|
10560
|
+
cursor: listCursor,
|
|
10561
|
+
limit: options.limit - pageItems.length,
|
|
10562
|
+
paginate: false,
|
|
10563
|
+
consistency: "strong"
|
|
10564
|
+
});
|
|
10565
|
+
lastCursor = listed.cursor;
|
|
10566
|
+
if (!listed.keys.length) {
|
|
10567
|
+
break;
|
|
10568
|
+
}
|
|
10569
|
+
const indexItems = [...listed.keys].sort(
|
|
10570
|
+
(left, right) => options.order === "desc" ? left.localeCompare(right) : right.localeCompare(left)
|
|
10571
|
+
).map((key) => {
|
|
10572
|
+
const conversationId = options.conversationIdFromKey(key);
|
|
10573
|
+
if (!conversationId || seen.has(conversationId)) {
|
|
10574
|
+
return null;
|
|
10575
|
+
}
|
|
10576
|
+
seen.add(conversationId);
|
|
10577
|
+
return {
|
|
10578
|
+
key,
|
|
10579
|
+
sortKey: indexSortKey(key, options.prefix),
|
|
10580
|
+
conversationId
|
|
10581
|
+
};
|
|
10582
|
+
}).filter((item) => item !== null);
|
|
10583
|
+
const metas = await Promise.all(
|
|
10584
|
+
indexItems.map((item) => readConversationMeta(store, item.conversationId))
|
|
10585
|
+
);
|
|
10586
|
+
for (let i = 0; i < indexItems.length; i++) {
|
|
10587
|
+
const meta = metas[i];
|
|
10588
|
+
if (meta) {
|
|
10589
|
+
pageItems.push({ indexItem: indexItems[i], meta });
|
|
10590
|
+
}
|
|
10591
|
+
}
|
|
10592
|
+
if (!listed.cursor) {
|
|
10593
|
+
break;
|
|
10594
|
+
}
|
|
10595
|
+
listCursor = listed.cursor;
|
|
10596
|
+
}
|
|
10597
|
+
const firstItem = (_a = pageItems[0]) == null ? void 0 : _a.indexItem;
|
|
10598
|
+
const lastItem = (_b = pageItems[pageItems.length - 1]) == null ? void 0 : _b.indexItem;
|
|
10599
|
+
return {
|
|
10600
|
+
items: pageItems.map((item) => item.meta),
|
|
10601
|
+
nextCursor: lastItem ? encodeConversationCursorFromIndexItem(lastItem, lastCursor) : void 0,
|
|
10602
|
+
previousCursor: firstItem ? encodeConversationCursorFromIndexItem(firstItem) : void 0
|
|
10603
|
+
};
|
|
10604
|
+
}
|
|
9776
10605
|
async function listConversationsFromIndexFull(store, options) {
|
|
9777
10606
|
var _a, _b;
|
|
9778
10607
|
const afterSortKey = options.after ? cursorSortKey(options.after) : void 0;
|
|
@@ -10209,6 +11038,7 @@ function createAgentMemory(store, options = {}) {
|
|
|
10209
11038
|
const maxMessagesPerConversation = options.maxMessagesPerConversation ?? DEFAULT_MAX_MESSAGES_PER_CONVERSATION;
|
|
10210
11039
|
const langgraphCheckpointer = createLangGraphCheckpointer(store);
|
|
10211
11040
|
const langgraphStore = createLangGraphStore(store);
|
|
11041
|
+
const state = createAgentStateStore(store, options.conversationId);
|
|
10212
11042
|
let claudeStoreCache = null;
|
|
10213
11043
|
let lastMessageCreatedAt = 0;
|
|
10214
11044
|
const appendMessagesInternal = async (inputs) => {
|
|
@@ -10494,8 +11324,13 @@ function createAgentMemory(store, options = {}) {
|
|
|
10494
11324
|
listMessageKeys(store, input.conversationId)
|
|
10495
11325
|
]);
|
|
10496
11326
|
if (!meta) {
|
|
11327
|
+
if (options.conversationId === input.conversationId) {
|
|
11328
|
+
await deleteAgentState(store, input.conversationId);
|
|
11329
|
+
}
|
|
11330
|
+
await deleteClaudeSessionForConversation(store, input.conversationId);
|
|
11331
|
+
await langgraphCheckpointer.deleteThread(input.conversationId);
|
|
10497
11332
|
throw new MemoryNotFoundError(
|
|
10498
|
-
"Conversation not found by
|
|
11333
|
+
"Conversation not found by deleteConversation."
|
|
10499
11334
|
);
|
|
10500
11335
|
}
|
|
10501
11336
|
const deleteOps = [];
|
|
@@ -10512,6 +11347,11 @@ function createAgentMemory(store, options = {}) {
|
|
|
10512
11347
|
deleteOps.push(store.delete(metaKey(input.conversationId)));
|
|
10513
11348
|
deleteOps.push(store.delete(conversationIndexKey(meta)));
|
|
10514
11349
|
await Promise.all(deleteOps);
|
|
11350
|
+
if (options.conversationId === input.conversationId) {
|
|
11351
|
+
await deleteAgentState(store, input.conversationId);
|
|
11352
|
+
}
|
|
11353
|
+
await deleteClaudeSessionForConversation(store, input.conversationId);
|
|
11354
|
+
await langgraphCheckpointer.deleteThread(input.conversationId);
|
|
10515
11355
|
});
|
|
10516
11356
|
},
|
|
10517
11357
|
async updateConversation(input) {
|
|
@@ -10547,14 +11387,49 @@ function createAgentMemory(store, options = {}) {
|
|
|
10547
11387
|
}));
|
|
10548
11388
|
},
|
|
10549
11389
|
openaiSession(sessionId, sessionOptions = {}) {
|
|
11390
|
+
const boundSessionId = sessionId ?? options.conversationId;
|
|
11391
|
+
if (!boundSessionId) {
|
|
11392
|
+
throw new MemoryValidationError(
|
|
11393
|
+
"openaiSession requires a sessionId or bound conversationId."
|
|
11394
|
+
);
|
|
11395
|
+
}
|
|
10550
11396
|
const maxItems = sessionOptions.maxItems ?? MAX_LIMIT;
|
|
10551
11397
|
return createOpenAISession(
|
|
10552
11398
|
memory,
|
|
10553
|
-
|
|
11399
|
+
boundSessionId,
|
|
10554
11400
|
maxItems,
|
|
10555
11401
|
appendMessagesInternal
|
|
10556
11402
|
);
|
|
10557
11403
|
},
|
|
11404
|
+
async claudeSessionBinding(conversationId) {
|
|
11405
|
+
const resolvedConversationId = conversationId ?? options.conversationId;
|
|
11406
|
+
if (!resolvedConversationId) {
|
|
11407
|
+
throw new MemoryValidationError(
|
|
11408
|
+
"claudeSessionBinding requires a conversationId or bound conversationId."
|
|
11409
|
+
);
|
|
11410
|
+
}
|
|
11411
|
+
validateConversationId(resolvedConversationId);
|
|
11412
|
+
return wrapStorage(async () => {
|
|
11413
|
+
const mappingKey = claudeSessionMappingKey(resolvedConversationId);
|
|
11414
|
+
const existing = await store.get(
|
|
11415
|
+
mappingKey,
|
|
11416
|
+
{ consistency: "strong" }
|
|
11417
|
+
);
|
|
11418
|
+
if (typeof existing === "string" && existing) {
|
|
11419
|
+
return existing;
|
|
11420
|
+
}
|
|
11421
|
+
if (isPlainObject(existing) && (typeof existing.sessionId === "string" || typeof existing.session_id === "string") && (existing.sessionId || existing.session_id)) {
|
|
11422
|
+
return String(existing.sessionId || existing.session_id);
|
|
11423
|
+
}
|
|
11424
|
+
const sessionId = normalizeClaudeUuid(resolvedConversationId) ?? randomUUID();
|
|
11425
|
+
const binding = {
|
|
11426
|
+
conversationId: resolvedConversationId,
|
|
11427
|
+
sessionId
|
|
11428
|
+
};
|
|
11429
|
+
await store.set(mappingKey, binding);
|
|
11430
|
+
return sessionId;
|
|
11431
|
+
});
|
|
11432
|
+
},
|
|
10558
11433
|
claudeSessionStore() {
|
|
10559
11434
|
if (!claudeStoreCache) {
|
|
10560
11435
|
claudeStoreCache = createClaudeSessionStore(store);
|
|
@@ -10562,7 +11437,8 @@ function createAgentMemory(store, options = {}) {
|
|
|
10562
11437
|
return claudeStoreCache;
|
|
10563
11438
|
},
|
|
10564
11439
|
langgraphCheckpointer,
|
|
10565
|
-
langgraphStore
|
|
11440
|
+
langgraphStore,
|
|
11441
|
+
state
|
|
10566
11442
|
};
|
|
10567
11443
|
return memory;
|
|
10568
11444
|
}
|
|
@@ -11243,6 +12119,7 @@ function createAgentRuntime(options) {
|
|
|
11243
12119
|
env,
|
|
11244
12120
|
store: createAgentMemory(createLazyStore(resolveMemoryStore), {
|
|
11245
12121
|
runId: run_id,
|
|
12122
|
+
conversationId: conversation_id,
|
|
11246
12123
|
maxMessagesPerConversation: (_a = defaults == null ? void 0 : defaults.memoryQuota) == null ? void 0 : _a.maxMessagesPerConversation
|
|
11247
12124
|
}),
|
|
11248
12125
|
agents: {
|
|
@@ -23777,6 +24654,9 @@ var LANGGRAPH_STORE_PREFIX = "langgraph_store";
|
|
|
23777
24654
|
var LANGGRAPH_STORE_KEY_SEPARATOR = "__key__";
|
|
23778
24655
|
var LANGGRAPH_SERDE_VERSION = 1;
|
|
23779
24656
|
var CLAUDE_SESSION_PREFIX = "claude_sessions";
|
|
24657
|
+
var CLAUDE_SESSION_MAPPING_PREFIX = "claude_session_mapping";
|
|
24658
|
+
var STATE_PREFIX = "state";
|
|
24659
|
+
var MAX_STATE_KEY_LENGTH = 256;
|
|
23780
24660
|
var SESSION_METADATA_MARKER = { agent_sdk_session: true };
|
|
23781
24661
|
var VALID_ROLES = /* @__PURE__ */ new Set([
|
|
23782
24662
|
"user",
|
|
@@ -23823,6 +24703,15 @@ var MemoryStorageError = class extends Error {
|
|
|
23823
24703
|
this.cause = cause;
|
|
23824
24704
|
}
|
|
23825
24705
|
};
|
|
24706
|
+
var MemoryCorruptError = class extends Error {
|
|
24707
|
+
code = "MemoryCorruptError";
|
|
24708
|
+
cause;
|
|
24709
|
+
constructor(message, cause) {
|
|
24710
|
+
super(message);
|
|
24711
|
+
this.name = "MemoryCorruptError";
|
|
24712
|
+
this.cause = cause;
|
|
24713
|
+
}
|
|
24714
|
+
};
|
|
23826
24715
|
var dynamicImport = new Function(
|
|
23827
24716
|
"specifier",
|
|
23828
24717
|
"return import(specifier);"
|
|
@@ -23830,7 +24719,7 @@ var dynamicImport = new Function(
|
|
|
23830
24719
|
var langchainLoadPromise;
|
|
23831
24720
|
var langchainMessagesPromise;
|
|
23832
24721
|
function isMemoryError(error51) {
|
|
23833
|
-
return error51 instanceof MemoryValidationError || error51 instanceof MemoryNotFoundError || error51 instanceof MemoryQuotaExceededError || error51 instanceof MemoryStorageError;
|
|
24722
|
+
return error51 instanceof MemoryValidationError || error51 instanceof MemoryNotFoundError || error51 instanceof MemoryQuotaExceededError || error51 instanceof MemoryStorageError || error51 instanceof MemoryCorruptError;
|
|
23834
24723
|
}
|
|
23835
24724
|
async function wrapStorage(operation) {
|
|
23836
24725
|
try {
|
|
@@ -23998,10 +24887,17 @@ async function reviveLangGraphJsonValue(value) {
|
|
|
23998
24887
|
return revived;
|
|
23999
24888
|
}
|
|
24000
24889
|
async function deserializeLangGraphJson(value) {
|
|
24001
|
-
|
|
24002
|
-
|
|
24890
|
+
try {
|
|
24891
|
+
if (isLangGraphSerializedJson(value)) {
|
|
24892
|
+
return reviveLangGraphJsonValue(JSON.parse(value.data));
|
|
24893
|
+
}
|
|
24894
|
+
return reviveLangGraphJsonValue(value);
|
|
24895
|
+
} catch (error51) {
|
|
24896
|
+
throw new MemoryCorruptError(
|
|
24897
|
+
"LangGraph persisted state is corrupt or incompatible.",
|
|
24898
|
+
error51
|
|
24899
|
+
);
|
|
24003
24900
|
}
|
|
24004
|
-
return reviveLangGraphJsonValue(value);
|
|
24005
24901
|
}
|
|
24006
24902
|
function normalizeStoreLimit(value, fallback) {
|
|
24007
24903
|
if (typeof value !== "number" || !Number.isFinite(value)) {
|
|
@@ -24113,6 +25009,115 @@ function validateMessageId(messageId) {
|
|
|
24113
25009
|
throw new MemoryValidationError("messageId is required.");
|
|
24114
25010
|
}
|
|
24115
25011
|
}
|
|
25012
|
+
function validateStateKey(key) {
|
|
25013
|
+
if (typeof key !== "string" || key.length === 0) {
|
|
25014
|
+
throw new MemoryValidationError("state key is required.");
|
|
25015
|
+
}
|
|
25016
|
+
if (key.length > MAX_STATE_KEY_LENGTH) {
|
|
25017
|
+
throw new MemoryValidationError(
|
|
25018
|
+
\`state key must be at most \${MAX_STATE_KEY_LENGTH} characters.\`
|
|
25019
|
+
);
|
|
25020
|
+
}
|
|
25021
|
+
}
|
|
25022
|
+
function assertStateSerializable(value, path2 = "state value", seen = /* @__PURE__ */ new Set()) {
|
|
25023
|
+
if (value === null || typeof value === "string" || typeof value === "boolean") {
|
|
25024
|
+
return;
|
|
25025
|
+
}
|
|
25026
|
+
if (typeof value === "number") {
|
|
25027
|
+
if (Number.isFinite(value))
|
|
25028
|
+
return;
|
|
25029
|
+
throw new MemoryValidationError(\`\${path2} must contain only JSON values.\`);
|
|
25030
|
+
}
|
|
25031
|
+
if (value === void 0 || typeof value === "function" || typeof value === "symbol" || typeof value === "bigint") {
|
|
25032
|
+
throw new MemoryValidationError(\`\${path2} must be JSON serializable.\`);
|
|
25033
|
+
}
|
|
25034
|
+
if (typeof value !== "object") {
|
|
25035
|
+
throw new MemoryValidationError(\`\${path2} must be JSON serializable.\`);
|
|
25036
|
+
}
|
|
25037
|
+
if (seen.has(value)) {
|
|
25038
|
+
throw new MemoryValidationError(\`\${path2} must not contain circular references.\`);
|
|
25039
|
+
}
|
|
25040
|
+
seen.add(value);
|
|
25041
|
+
if (Array.isArray(value)) {
|
|
25042
|
+
value.forEach((item, index) => assertStateSerializable(item, \`\${path2}[\${index}]\`, seen));
|
|
25043
|
+
} else if (isPlainObject(value)) {
|
|
25044
|
+
for (const [key, item] of Object.entries(value)) {
|
|
25045
|
+
assertStateSerializable(item, \`\${path2}.\${key}\`, seen);
|
|
25046
|
+
}
|
|
25047
|
+
} else {
|
|
25048
|
+
throw new MemoryValidationError(\`\${path2} must contain only JSON values.\`);
|
|
25049
|
+
}
|
|
25050
|
+
seen.delete(value);
|
|
25051
|
+
}
|
|
25052
|
+
function stateConversationPrefix(conversationId) {
|
|
25053
|
+
return \`\${STATE_PREFIX}/\${encodeKeySegment(conversationId)}/\`;
|
|
25054
|
+
}
|
|
25055
|
+
function createAgentStateStore(store, boundConversationId) {
|
|
25056
|
+
const requireConversation = () => {
|
|
25057
|
+
if (!boundConversationId) {
|
|
25058
|
+
throw new MemoryValidationError(
|
|
25059
|
+
"State operations require a bound conversationId."
|
|
25060
|
+
);
|
|
25061
|
+
}
|
|
25062
|
+
validateConversationId(boundConversationId);
|
|
25063
|
+
return boundConversationId;
|
|
25064
|
+
};
|
|
25065
|
+
return {
|
|
25066
|
+
async get(key) {
|
|
25067
|
+
validateStateKey(key);
|
|
25068
|
+
const conversationId = requireConversation();
|
|
25069
|
+
return wrapStorage(async () => {
|
|
25070
|
+
const raw = await store.get(
|
|
25071
|
+
\`\${stateConversationPrefix(conversationId)}\${encodeKeySegment(key)}\`,
|
|
25072
|
+
{ consistency: "strong" }
|
|
25073
|
+
);
|
|
25074
|
+
if (raw === null)
|
|
25075
|
+
return null;
|
|
25076
|
+
if (typeof raw !== "string") {
|
|
25077
|
+
throw new MemoryStorageError("Stored state value is not valid JSON text.");
|
|
25078
|
+
}
|
|
25079
|
+
try {
|
|
25080
|
+
return JSON.parse(raw);
|
|
25081
|
+
} catch (error51) {
|
|
25082
|
+
throw new MemoryStorageError("Stored state value is invalid JSON.", error51);
|
|
25083
|
+
}
|
|
25084
|
+
});
|
|
25085
|
+
},
|
|
25086
|
+
async set(key, value) {
|
|
25087
|
+
validateStateKey(key);
|
|
25088
|
+
const conversationId = requireConversation();
|
|
25089
|
+
assertStateSerializable(value);
|
|
25090
|
+
let serialized;
|
|
25091
|
+
try {
|
|
25092
|
+
serialized = JSON.stringify(value);
|
|
25093
|
+
} catch (error51) {
|
|
25094
|
+
throw new MemoryValidationError(\`state value must be JSON serializable: \${String(error51)}\`);
|
|
25095
|
+
}
|
|
25096
|
+
await wrapStorage(
|
|
25097
|
+
() => store.set(
|
|
25098
|
+
\`\${stateConversationPrefix(conversationId)}\${encodeKeySegment(key)}\`,
|
|
25099
|
+
serialized
|
|
25100
|
+
)
|
|
25101
|
+
);
|
|
25102
|
+
},
|
|
25103
|
+
async delete(key) {
|
|
25104
|
+
validateStateKey(key);
|
|
25105
|
+
const conversationId = requireConversation();
|
|
25106
|
+
await wrapStorage(
|
|
25107
|
+
() => store.delete(
|
|
25108
|
+
\`\${stateConversationPrefix(conversationId)}\${encodeKeySegment(key)}\`
|
|
25109
|
+
)
|
|
25110
|
+
);
|
|
25111
|
+
}
|
|
25112
|
+
};
|
|
25113
|
+
}
|
|
25114
|
+
async function deleteAgentState(store, conversationId) {
|
|
25115
|
+
const listed = await store.list({
|
|
25116
|
+
prefix: stateConversationPrefix(conversationId),
|
|
25117
|
+
consistency: "strong"
|
|
25118
|
+
});
|
|
25119
|
+
await Promise.all(listed.keys.map((key) => store.delete(key)));
|
|
25120
|
+
}
|
|
24116
25121
|
function validateUserId(userId) {
|
|
24117
25122
|
if (userId === void 0) {
|
|
24118
25123
|
return;
|
|
@@ -24245,6 +25250,9 @@ function cursorSortKey(cursor) {
|
|
|
24245
25250
|
const payload = decodeConversationCursor(cursor);
|
|
24246
25251
|
return \`\${reverseTimestamp(payload.lastMessageAt)}_\${encodeKeySegment(payload.conversationId)}\`;
|
|
24247
25252
|
}
|
|
25253
|
+
function cursorListCursor(cursor) {
|
|
25254
|
+
return cursor ? decodeConversationCursor(cursor).listCursor : void 0;
|
|
25255
|
+
}
|
|
24248
25256
|
function indexSortKey(key, prefix) {
|
|
24249
25257
|
return key.slice(prefix.length);
|
|
24250
25258
|
}
|
|
@@ -24412,6 +25420,51 @@ function claudeSessionBase(projectKey, sessionId) {
|
|
|
24412
25420
|
function claudeProjectPrefix(projectKey) {
|
|
24413
25421
|
return \`\${CLAUDE_SESSION_PREFIX}/\${encodeKeySegment(projectKey)}/\`;
|
|
24414
25422
|
}
|
|
25423
|
+
function claudeSessionMappingKey(conversationId) {
|
|
25424
|
+
return \`\${CLAUDE_SESSION_MAPPING_PREFIX}/\${encodeKeySegment(conversationId)}\`;
|
|
25425
|
+
}
|
|
25426
|
+
function normalizeClaudeUuid(value) {
|
|
25427
|
+
const trimmed = value.trim().toLowerCase();
|
|
25428
|
+
return /^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$/.test(trimmed) ? trimmed : null;
|
|
25429
|
+
}
|
|
25430
|
+
function claudeSessionIdFromKey(key) {
|
|
25431
|
+
const prefix = \`\${CLAUDE_SESSION_PREFIX}/\`;
|
|
25432
|
+
if (!key.startsWith(prefix)) {
|
|
25433
|
+
return null;
|
|
25434
|
+
}
|
|
25435
|
+
const segments = key.slice(prefix.length).split("/");
|
|
25436
|
+
return segments.length >= 3 && segments[1] ? decodeKeySegment(segments[1]) : null;
|
|
25437
|
+
}
|
|
25438
|
+
async function deleteClaudeSessionForConversation(store, conversationId) {
|
|
25439
|
+
const mappingKey = claudeSessionMappingKey(conversationId);
|
|
25440
|
+
const mapping = await store.get(mappingKey, {
|
|
25441
|
+
consistency: "strong"
|
|
25442
|
+
});
|
|
25443
|
+
let sessionId = null;
|
|
25444
|
+
if (typeof mapping === "string") {
|
|
25445
|
+
sessionId = mapping;
|
|
25446
|
+
} else if (isPlainObject(mapping) && typeof mapping.sessionId === "string") {
|
|
25447
|
+
sessionId = mapping.sessionId;
|
|
25448
|
+
} else if (isPlainObject(mapping) && typeof mapping.session_id === "string") {
|
|
25449
|
+
sessionId = mapping.session_id;
|
|
25450
|
+
}
|
|
25451
|
+
if (!sessionId) {
|
|
25452
|
+
sessionId = normalizeClaudeUuid(conversationId);
|
|
25453
|
+
}
|
|
25454
|
+
await store.delete(mappingKey);
|
|
25455
|
+
if (!sessionId) {
|
|
25456
|
+
return;
|
|
25457
|
+
}
|
|
25458
|
+
const listed = await store.list({
|
|
25459
|
+
prefix: \`\${CLAUDE_SESSION_PREFIX}/\`,
|
|
25460
|
+
consistency: "strong"
|
|
25461
|
+
});
|
|
25462
|
+
for (const key of listed.keys) {
|
|
25463
|
+
if (claudeSessionIdFromKey(key) === sessionId) {
|
|
25464
|
+
await store.delete(key);
|
|
25465
|
+
}
|
|
25466
|
+
}
|
|
25467
|
+
}
|
|
24415
25468
|
function claudePartsPrefix(key) {
|
|
24416
25469
|
let base = claudeSessionBase(key.projectKey, key.sessionId).slice(0, -1);
|
|
24417
25470
|
if (key.subpath) {
|
|
@@ -24449,7 +25502,9 @@ function createClaudeSessionStore(store) {
|
|
|
24449
25502
|
consistency: "strong"
|
|
24450
25503
|
});
|
|
24451
25504
|
if (typeof raw !== "string") {
|
|
24452
|
-
|
|
25505
|
+
throw new MemoryCorruptError(
|
|
25506
|
+
\`Claude session part '\${partKey}' is not valid JSONL text.\`
|
|
25507
|
+
);
|
|
24453
25508
|
}
|
|
24454
25509
|
for (const line of raw.split("\\n")) {
|
|
24455
25510
|
const trimmed = line.trim();
|
|
@@ -24458,7 +25513,11 @@ function createClaudeSessionStore(store) {
|
|
|
24458
25513
|
}
|
|
24459
25514
|
try {
|
|
24460
25515
|
entries.push(JSON.parse(trimmed));
|
|
24461
|
-
} catch {
|
|
25516
|
+
} catch (error51) {
|
|
25517
|
+
throw new MemoryCorruptError(
|
|
25518
|
+
\`Claude session part '\${partKey}' contains malformed JSONL.\`,
|
|
25519
|
+
error51
|
|
25520
|
+
);
|
|
24462
25521
|
}
|
|
24463
25522
|
}
|
|
24464
25523
|
}
|
|
@@ -24584,8 +25643,70 @@ async function listConversationsByUser(store, userId, options) {
|
|
|
24584
25643
|
});
|
|
24585
25644
|
}
|
|
24586
25645
|
async function listConversationsFromIndex(store, options) {
|
|
25646
|
+
if (!options.before) {
|
|
25647
|
+
const fast = await listConversationsFromIndexFast(store, options);
|
|
25648
|
+
if (fast)
|
|
25649
|
+
return fast;
|
|
25650
|
+
}
|
|
24587
25651
|
return listConversationsFromIndexFull(store, options);
|
|
24588
25652
|
}
|
|
25653
|
+
async function listConversationsFromIndexFast(store, options) {
|
|
25654
|
+
var _a3, _b;
|
|
25655
|
+
let listCursor = cursorListCursor(options.after);
|
|
25656
|
+
if (options.after && !listCursor) {
|
|
25657
|
+
return null;
|
|
25658
|
+
}
|
|
25659
|
+
const pageItems = [];
|
|
25660
|
+
const seen = /* @__PURE__ */ new Set();
|
|
25661
|
+
let lastCursor;
|
|
25662
|
+
while (pageItems.length < options.limit) {
|
|
25663
|
+
const listed = await store.list({
|
|
25664
|
+
prefix: options.prefix,
|
|
25665
|
+
cursor: listCursor,
|
|
25666
|
+
limit: options.limit - pageItems.length,
|
|
25667
|
+
paginate: false,
|
|
25668
|
+
consistency: "strong"
|
|
25669
|
+
});
|
|
25670
|
+
lastCursor = listed.cursor;
|
|
25671
|
+
if (!listed.keys.length) {
|
|
25672
|
+
break;
|
|
25673
|
+
}
|
|
25674
|
+
const indexItems = [...listed.keys].sort(
|
|
25675
|
+
(left, right) => options.order === "desc" ? left.localeCompare(right) : right.localeCompare(left)
|
|
25676
|
+
).map((key) => {
|
|
25677
|
+
const conversationId = options.conversationIdFromKey(key);
|
|
25678
|
+
if (!conversationId || seen.has(conversationId)) {
|
|
25679
|
+
return null;
|
|
25680
|
+
}
|
|
25681
|
+
seen.add(conversationId);
|
|
25682
|
+
return {
|
|
25683
|
+
key,
|
|
25684
|
+
sortKey: indexSortKey(key, options.prefix),
|
|
25685
|
+
conversationId
|
|
25686
|
+
};
|
|
25687
|
+
}).filter((item) => item !== null);
|
|
25688
|
+
const metas = await Promise.all(
|
|
25689
|
+
indexItems.map((item) => readConversationMeta(store, item.conversationId))
|
|
25690
|
+
);
|
|
25691
|
+
for (let i = 0; i < indexItems.length; i++) {
|
|
25692
|
+
const meta3 = metas[i];
|
|
25693
|
+
if (meta3) {
|
|
25694
|
+
pageItems.push({ indexItem: indexItems[i], meta: meta3 });
|
|
25695
|
+
}
|
|
25696
|
+
}
|
|
25697
|
+
if (!listed.cursor) {
|
|
25698
|
+
break;
|
|
25699
|
+
}
|
|
25700
|
+
listCursor = listed.cursor;
|
|
25701
|
+
}
|
|
25702
|
+
const firstItem = (_a3 = pageItems[0]) == null ? void 0 : _a3.indexItem;
|
|
25703
|
+
const lastItem = (_b = pageItems[pageItems.length - 1]) == null ? void 0 : _b.indexItem;
|
|
25704
|
+
return {
|
|
25705
|
+
items: pageItems.map((item) => item.meta),
|
|
25706
|
+
nextCursor: lastItem ? encodeConversationCursorFromIndexItem(lastItem, lastCursor) : void 0,
|
|
25707
|
+
previousCursor: firstItem ? encodeConversationCursorFromIndexItem(firstItem) : void 0
|
|
25708
|
+
};
|
|
25709
|
+
}
|
|
24589
25710
|
async function listConversationsFromIndexFull(store, options) {
|
|
24590
25711
|
var _a3, _b;
|
|
24591
25712
|
const afterSortKey = options.after ? cursorSortKey(options.after) : void 0;
|
|
@@ -25022,6 +26143,7 @@ function createAgentMemory(store, options = {}) {
|
|
|
25022
26143
|
const maxMessagesPerConversation = options.maxMessagesPerConversation ?? DEFAULT_MAX_MESSAGES_PER_CONVERSATION;
|
|
25023
26144
|
const langgraphCheckpointer = createLangGraphCheckpointer(store);
|
|
25024
26145
|
const langgraphStore = createLangGraphStore(store);
|
|
26146
|
+
const state = createAgentStateStore(store, options.conversationId);
|
|
25025
26147
|
let claudeStoreCache = null;
|
|
25026
26148
|
let lastMessageCreatedAt = 0;
|
|
25027
26149
|
const appendMessagesInternal = async (inputs) => {
|
|
@@ -25307,8 +26429,13 @@ function createAgentMemory(store, options = {}) {
|
|
|
25307
26429
|
listMessageKeys(store, input.conversationId)
|
|
25308
26430
|
]);
|
|
25309
26431
|
if (!meta3) {
|
|
26432
|
+
if (options.conversationId === input.conversationId) {
|
|
26433
|
+
await deleteAgentState(store, input.conversationId);
|
|
26434
|
+
}
|
|
26435
|
+
await deleteClaudeSessionForConversation(store, input.conversationId);
|
|
26436
|
+
await langgraphCheckpointer.deleteThread(input.conversationId);
|
|
25310
26437
|
throw new MemoryNotFoundError(
|
|
25311
|
-
"Conversation not found by
|
|
26438
|
+
"Conversation not found by deleteConversation."
|
|
25312
26439
|
);
|
|
25313
26440
|
}
|
|
25314
26441
|
const deleteOps = [];
|
|
@@ -25325,6 +26452,11 @@ function createAgentMemory(store, options = {}) {
|
|
|
25325
26452
|
deleteOps.push(store.delete(metaKey(input.conversationId)));
|
|
25326
26453
|
deleteOps.push(store.delete(conversationIndexKey(meta3)));
|
|
25327
26454
|
await Promise.all(deleteOps);
|
|
26455
|
+
if (options.conversationId === input.conversationId) {
|
|
26456
|
+
await deleteAgentState(store, input.conversationId);
|
|
26457
|
+
}
|
|
26458
|
+
await deleteClaudeSessionForConversation(store, input.conversationId);
|
|
26459
|
+
await langgraphCheckpointer.deleteThread(input.conversationId);
|
|
25328
26460
|
});
|
|
25329
26461
|
},
|
|
25330
26462
|
async updateConversation(input) {
|
|
@@ -25360,14 +26492,49 @@ function createAgentMemory(store, options = {}) {
|
|
|
25360
26492
|
}));
|
|
25361
26493
|
},
|
|
25362
26494
|
openaiSession(sessionId, sessionOptions = {}) {
|
|
26495
|
+
const boundSessionId = sessionId ?? options.conversationId;
|
|
26496
|
+
if (!boundSessionId) {
|
|
26497
|
+
throw new MemoryValidationError(
|
|
26498
|
+
"openaiSession requires a sessionId or bound conversationId."
|
|
26499
|
+
);
|
|
26500
|
+
}
|
|
25363
26501
|
const maxItems = sessionOptions.maxItems ?? MAX_LIMIT;
|
|
25364
26502
|
return createOpenAISession(
|
|
25365
26503
|
memory,
|
|
25366
|
-
|
|
26504
|
+
boundSessionId,
|
|
25367
26505
|
maxItems,
|
|
25368
26506
|
appendMessagesInternal
|
|
25369
26507
|
);
|
|
25370
26508
|
},
|
|
26509
|
+
async claudeSessionBinding(conversationId) {
|
|
26510
|
+
const resolvedConversationId = conversationId ?? options.conversationId;
|
|
26511
|
+
if (!resolvedConversationId) {
|
|
26512
|
+
throw new MemoryValidationError(
|
|
26513
|
+
"claudeSessionBinding requires a conversationId or bound conversationId."
|
|
26514
|
+
);
|
|
26515
|
+
}
|
|
26516
|
+
validateConversationId(resolvedConversationId);
|
|
26517
|
+
return wrapStorage(async () => {
|
|
26518
|
+
const mappingKey = claudeSessionMappingKey(resolvedConversationId);
|
|
26519
|
+
const existing = await store.get(
|
|
26520
|
+
mappingKey,
|
|
26521
|
+
{ consistency: "strong" }
|
|
26522
|
+
);
|
|
26523
|
+
if (typeof existing === "string" && existing) {
|
|
26524
|
+
return existing;
|
|
26525
|
+
}
|
|
26526
|
+
if (isPlainObject(existing) && (typeof existing.sessionId === "string" || typeof existing.session_id === "string") && (existing.sessionId || existing.session_id)) {
|
|
26527
|
+
return String(existing.sessionId || existing.session_id);
|
|
26528
|
+
}
|
|
26529
|
+
const sessionId = normalizeClaudeUuid(resolvedConversationId) ?? randomUUID();
|
|
26530
|
+
const binding = {
|
|
26531
|
+
conversationId: resolvedConversationId,
|
|
26532
|
+
sessionId
|
|
26533
|
+
};
|
|
26534
|
+
await store.set(mappingKey, binding);
|
|
26535
|
+
return sessionId;
|
|
26536
|
+
});
|
|
26537
|
+
},
|
|
25371
26538
|
claudeSessionStore() {
|
|
25372
26539
|
if (!claudeStoreCache) {
|
|
25373
26540
|
claudeStoreCache = createClaudeSessionStore(store);
|
|
@@ -25375,7 +26542,8 @@ function createAgentMemory(store, options = {}) {
|
|
|
25375
26542
|
return claudeStoreCache;
|
|
25376
26543
|
},
|
|
25377
26544
|
langgraphCheckpointer,
|
|
25378
|
-
langgraphStore
|
|
26545
|
+
langgraphStore,
|
|
26546
|
+
state
|
|
25379
26547
|
};
|
|
25380
26548
|
return memory;
|
|
25381
26549
|
}
|
|
@@ -26056,6 +27224,7 @@ function createAgentRuntime(options) {
|
|
|
26056
27224
|
env,
|
|
26057
27225
|
store: createAgentMemory(createLazyStore(resolveMemoryStore), {
|
|
26058
27226
|
runId: run_id,
|
|
27227
|
+
conversationId: conversation_id,
|
|
26059
27228
|
maxMessagesPerConversation: (_a3 = defaults2 == null ? void 0 : defaults2.memoryQuota) == null ? void 0 : _a3.maxMessagesPerConversation
|
|
26060
27229
|
}),
|
|
26061
27230
|
agents: {
|
|
@@ -47948,24 +49117,24 @@ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__ge
|
|
|
47948
49117
|
var require_dist = __commonJS({
|
|
47949
49118
|
"node_modules/@edgeone/pages-blob/dist/index.js"(exports, module) {
|
|
47950
49119
|
"use strict";
|
|
47951
|
-
var
|
|
49120
|
+
var U = Object.defineProperty;
|
|
47952
49121
|
var le = Object.getOwnPropertyDescriptor;
|
|
47953
49122
|
var ue = Object.getOwnPropertyNames;
|
|
47954
49123
|
var ge = Object.prototype.hasOwnProperty;
|
|
47955
49124
|
var fe = (t, e) => {
|
|
47956
49125
|
for (var r in e)
|
|
47957
|
-
|
|
49126
|
+
U(t, r, { get: e[r], enumerable: true });
|
|
47958
49127
|
};
|
|
47959
49128
|
var he = (t, e, r, n) => {
|
|
47960
49129
|
if (e && typeof e == "object" || typeof e == "function")
|
|
47961
49130
|
for (let s of ue(e))
|
|
47962
|
-
!ge.call(t, s) && s !== r &&
|
|
49131
|
+
!ge.call(t, s) && s !== r && U(t, s, { get: () => e[s], enumerable: !(n = le(e, s)) || n.enumerable });
|
|
47963
49132
|
return t;
|
|
47964
49133
|
};
|
|
47965
|
-
var me = (t) => he(
|
|
47966
|
-
var
|
|
47967
|
-
fe(
|
|
47968
|
-
module.exports = me(
|
|
49134
|
+
var me = (t) => he(U({}, "__esModule", { value: true }), t);
|
|
49135
|
+
var Oe = {};
|
|
49136
|
+
fe(Oe, { InvalidKeyError: () => w, InvalidStoreNameError: () => y, MissingProjectIdError: () => T, PagesBlobError: () => h, PreconditionFailedError: () => x, QuotaExceededError: () => O, RateLimitedError: () => j, Store: () => E, getStore: () => Me, listStores: () => De });
|
|
49137
|
+
module.exports = me(Oe);
|
|
47969
49138
|
var h = class extends Error {
|
|
47970
49139
|
code;
|
|
47971
49140
|
constructor(e, r) {
|
|
@@ -47987,12 +49156,12 @@ var require_dist = __commonJS({
|
|
|
47987
49156
|
super("MISSING_ENVIRONMENT", \`Environment not configured for Pages Blob. Missing: \${e.join(", ")}. Supply these properties when creating a store, or ensure the function is running in a Pages environment.\`);
|
|
47988
49157
|
}
|
|
47989
49158
|
};
|
|
47990
|
-
var
|
|
49159
|
+
var O = class extends h {
|
|
47991
49160
|
constructor() {
|
|
47992
49161
|
super("QUOTA_EXCEEDED", "storage quota exceeded");
|
|
47993
49162
|
}
|
|
47994
49163
|
};
|
|
47995
|
-
var
|
|
49164
|
+
var j = class extends h {
|
|
47996
49165
|
constructor() {
|
|
47997
49166
|
super("RATE_LIMITED", "request rate limited, please retry later");
|
|
47998
49167
|
}
|
|
@@ -48025,7 +49194,7 @@ var require_dist = __commonJS({
|
|
|
48025
49194
|
if (new TextEncoder().encode(t).length > 600)
|
|
48026
49195
|
throw new w("Blob key must be a sequence of Unicode characters whose UTF-8 encoding is at most 600 bytes long.");
|
|
48027
49196
|
}
|
|
48028
|
-
function
|
|
49197
|
+
function z(t) {
|
|
48029
49198
|
if (t === "")
|
|
48030
49199
|
throw new y("Store name must not be empty.");
|
|
48031
49200
|
if (t.includes("/") || t.includes(":"))
|
|
@@ -48113,45 +49282,48 @@ var require_dist = __commonJS({
|
|
|
48113
49282
|
}
|
|
48114
49283
|
};
|
|
48115
49284
|
var ye = new TextEncoder();
|
|
48116
|
-
function
|
|
49285
|
+
function _(t) {
|
|
48117
49286
|
let e = ye.encode(t), r = new ArrayBuffer(e.byteLength), n = new Uint8Array(r);
|
|
48118
49287
|
return n.set(e), n;
|
|
48119
49288
|
}
|
|
48120
|
-
function
|
|
49289
|
+
function G(t) {
|
|
48121
49290
|
let e = t instanceof Uint8Array ? t : new Uint8Array(t), r = "";
|
|
48122
49291
|
for (let n = 0; n < e.length; n++)
|
|
48123
49292
|
r += e[n].toString(16).padStart(2, "0");
|
|
48124
49293
|
return r;
|
|
48125
49294
|
}
|
|
48126
|
-
async function
|
|
48127
|
-
let r = await crypto.subtle.importKey("raw",
|
|
48128
|
-
return
|
|
49295
|
+
async function H(t, e) {
|
|
49296
|
+
let r = await crypto.subtle.importKey("raw", _(t), { name: "HMAC", hash: "SHA-1" }, false, ["sign"]), n = await crypto.subtle.sign("HMAC", r, _(e));
|
|
49297
|
+
return G(n);
|
|
48129
49298
|
}
|
|
48130
49299
|
async function pe(t) {
|
|
48131
|
-
let e = await crypto.subtle.digest("SHA-1",
|
|
48132
|
-
return
|
|
49300
|
+
let e = await crypto.subtle.digest("SHA-1", _(t));
|
|
49301
|
+
return G(e);
|
|
48133
49302
|
}
|
|
48134
|
-
function
|
|
49303
|
+
function $(t) {
|
|
48135
49304
|
return encodeURIComponent(t).replace(/[!'()*]/g, (e) => "%" + e.charCodeAt(0).toString(16).toUpperCase());
|
|
48136
49305
|
}
|
|
48137
|
-
function
|
|
49306
|
+
function P(t) {
|
|
48138
49307
|
try {
|
|
48139
49308
|
return decodeURIComponent(t);
|
|
48140
49309
|
} catch {
|
|
48141
49310
|
return t;
|
|
48142
49311
|
}
|
|
48143
49312
|
}
|
|
48144
|
-
function
|
|
48145
|
-
return t.split("/").map((e) =>
|
|
49313
|
+
function we(t) {
|
|
49314
|
+
return t.split("/").map((e) => P(e)).join("/");
|
|
49315
|
+
}
|
|
49316
|
+
function I(t) {
|
|
49317
|
+
return we(P(t));
|
|
48146
49318
|
}
|
|
48147
49319
|
function W(t) {
|
|
48148
|
-
return t.split("/").map((e) =>
|
|
49320
|
+
return t.split("/").map((e) => $(P(e))).join("/");
|
|
48149
49321
|
}
|
|
48150
|
-
var
|
|
48151
|
-
function
|
|
48152
|
-
return t === "host" || t === "x-cos-security-token" ? false : !!(
|
|
49322
|
+
var Ce = /* @__PURE__ */ new Set(["cache-control", "content-disposition", "content-encoding", "content-length", "content-md5", "content-type", "expect", "expires", "if-match", "if-modified-since", "if-none-match", "if-unmodified-since", "origin", "range", "transfer-encoding"]);
|
|
49323
|
+
function xe(t) {
|
|
49324
|
+
return t === "host" || t === "x-cos-security-token" ? false : !!(Ce.has(t) || t.startsWith("x-cos-"));
|
|
48153
49325
|
}
|
|
48154
|
-
function
|
|
49326
|
+
function X(t) {
|
|
48155
49327
|
if (!t)
|
|
48156
49328
|
return [];
|
|
48157
49329
|
let e = [];
|
|
@@ -48159,27 +49331,27 @@ var require_dist = __commonJS({
|
|
|
48159
49331
|
n != null && e.push([r.toLowerCase(), String(n)]);
|
|
48160
49332
|
return e.sort(([r], [n]) => r < n ? -1 : r > n ? 1 : 0), e;
|
|
48161
49333
|
}
|
|
48162
|
-
function X(t) {
|
|
48163
|
-
return t.map(([e, r]) => \`\${O(e)}=\${O(r)}\`).join("&");
|
|
48164
|
-
}
|
|
48165
49334
|
function Y(t) {
|
|
48166
|
-
return t.map(([e]) =>
|
|
49335
|
+
return t.map(([e, r]) => \`\${$(e)}=\${$(r)}\`).join("&");
|
|
49336
|
+
}
|
|
49337
|
+
function F(t) {
|
|
49338
|
+
return t.map(([e]) => $(e)).join(";");
|
|
48167
49339
|
}
|
|
48168
49340
|
async function V(t) {
|
|
48169
|
-
let e = t.method.toLowerCase(), r = t.pathname.startsWith("/") ? t.pathname : \`/\${t.pathname}\`, n = Math.floor(Date.now() / 1e3), s = n + (t.expireSeconds ?? 3600), i = \`\${n};\${s}\`, o =
|
|
49341
|
+
let e = t.method.toLowerCase(), r = t.pathname.startsWith("/") ? t.pathname : \`/\${t.pathname}\`, n = Math.floor(Date.now() / 1e3), s = n + (t.expireSeconds ?? 3600), i = \`\${n};\${s}\`, o = X(t.headers).filter(([N]) => xe(N)), c = F(o), d = Y(o), u = X(t.query), l = F(u), g = Y(u), p = \`\${e}
|
|
48170
49342
|
\${r}
|
|
48171
49343
|
\${g}
|
|
48172
49344
|
\${d}
|
|
48173
49345
|
\`, oe = \`sha1
|
|
48174
49346
|
\${i}
|
|
48175
49347
|
\${await pe(p)}
|
|
48176
|
-
\`, ie = await
|
|
48177
|
-
for (let [
|
|
48178
|
-
|
|
48179
|
-
return { authorization: ce, signedHeaders:
|
|
49348
|
+
\`, ie = await H(t.secretKey, i), ae = await H(ie, oe), ce = ["q-sign-algorithm=sha1", \`q-ak=\${t.secretId}\`, \`q-sign-time=\${i}\`, \`q-key-time=\${i}\`, \`q-header-list=\${c}\`, \`q-url-param-list=\${l}\`, \`q-signature=\${ae}\`].join("&"), q = {};
|
|
49349
|
+
for (let [N, de] of o)
|
|
49350
|
+
q[N] = de;
|
|
49351
|
+
return { authorization: ce, signedHeaders: q };
|
|
48180
49352
|
}
|
|
48181
49353
|
async function J(t) {
|
|
48182
|
-
let e = new URL(t.domain), r =
|
|
49354
|
+
let e = new URL(t.domain), r = P(t.key), n = \`/\${I(t.key)}\`, s = \`/\${W(r)}\`;
|
|
48183
49355
|
e.pathname = s;
|
|
48184
49356
|
let { authorization: i } = await V({ method: t.method, pathname: n, query: t.query, headers: t.headers, secretId: t.credential.secretId, secretKey: t.credential.secretKey, expireSeconds: t.expireSeconds });
|
|
48185
49357
|
if (t.query)
|
|
@@ -48195,7 +49367,7 @@ var require_dist = __commonJS({
|
|
|
48195
49367
|
return t.credential.sessionToken && e.searchParams.set("x-cos-security-token", t.credential.sessionToken), e.toString();
|
|
48196
49368
|
}
|
|
48197
49369
|
async function S(t) {
|
|
48198
|
-
let e = new URL(t.domain), r = t.key ?
|
|
49370
|
+
let e = new URL(t.domain), r = t.key ? P(t.key) : "", n = t.key ? \`/\${I(t.key)}\` : "/", s = r ? \`/\${W(r)}\` : "/";
|
|
48199
49371
|
if (e.pathname = s, t.query)
|
|
48200
49372
|
for (let [l, g] of Object.entries(t.query))
|
|
48201
49373
|
g != null && e.searchParams.set(l, String(g));
|
|
@@ -48215,9 +49387,9 @@ var require_dist = __commonJS({
|
|
|
48215
49387
|
}
|
|
48216
49388
|
throw u;
|
|
48217
49389
|
}
|
|
48218
|
-
var
|
|
48219
|
-
var
|
|
48220
|
-
var
|
|
49390
|
+
var be = "blob.edgeone.site";
|
|
49391
|
+
var Te = "blob-nocache.edgeone.site";
|
|
49392
|
+
var M = class t {
|
|
48221
49393
|
credentialManager;
|
|
48222
49394
|
bucket = "";
|
|
48223
49395
|
region = "";
|
|
@@ -48227,7 +49399,7 @@ var require_dist = __commonJS({
|
|
|
48227
49399
|
initialized = false;
|
|
48228
49400
|
static buildErrorDetail(e, r, n, s, i) {
|
|
48229
49401
|
let a = n ? \`\${r}/\${n}\` : r, o = i ? \` [request-id: \${i}]\` : "";
|
|
48230
|
-
return \`\${e} \${a} - \${
|
|
49402
|
+
return \`\${e} \${a} - \${Ee(s)}\${o}\`;
|
|
48231
49403
|
}
|
|
48232
49404
|
constructor(e) {
|
|
48233
49405
|
this.credentialManager = e;
|
|
@@ -48253,7 +49425,7 @@ var require_dist = __commonJS({
|
|
|
48253
49425
|
let a = this.computeSubdomain(e);
|
|
48254
49426
|
if (!a)
|
|
48255
49427
|
throw new f(0, "unable to derive tenant subdomain from credential; missing appId/zoneId/projectId or resourcePrefix");
|
|
48256
|
-
this.cachedDomain = \`https://\${a}.\${
|
|
49428
|
+
this.cachedDomain = \`https://\${a}.\${be}\`, this.uncachedDomain = \`https://\${a}.\${Te}\`, this.initialized = true;
|
|
48257
49429
|
}
|
|
48258
49430
|
async resolveDomain(e) {
|
|
48259
49431
|
return await this.ensureInitialized(), e === "strong" ? this.uncachedDomain : this.cachedDomain;
|
|
@@ -48277,14 +49449,14 @@ var require_dist = __commonJS({
|
|
|
48277
49449
|
return await l.arrayBuffer().catch(() => {
|
|
48278
49450
|
}), { etag: "", statusCode: 412 };
|
|
48279
49451
|
if (!l.ok) {
|
|
48280
|
-
let p = await
|
|
48281
|
-
throw new f(l.status, t.buildErrorDetail("PUT", i, o, p || \`status \${l.status}\`,
|
|
49452
|
+
let p = await k(l);
|
|
49453
|
+
throw new f(l.status, t.buildErrorDetail("PUT", i, o, p || \`status \${l.status}\`, R(l)));
|
|
48282
49454
|
}
|
|
48283
49455
|
let g = l.headers.get("etag") || "";
|
|
48284
49456
|
return await l.arrayBuffer().catch(() => {
|
|
48285
49457
|
}), { etag: g, statusCode: l.status };
|
|
48286
49458
|
} catch (l) {
|
|
48287
|
-
throw l instanceof f ? l : new f(0, t.buildErrorDetail("PUT", i, o,
|
|
49459
|
+
throw l instanceof f ? l : new f(0, t.buildErrorDetail("PUT", i, o, A(l)));
|
|
48288
49460
|
}
|
|
48289
49461
|
}
|
|
48290
49462
|
async createPresignedPutUrl(e, r, n) {
|
|
@@ -48301,13 +49473,13 @@ var require_dist = __commonJS({
|
|
|
48301
49473
|
return await o.arrayBuffer().catch(() => {
|
|
48302
49474
|
}), null;
|
|
48303
49475
|
if (!o.ok) {
|
|
48304
|
-
let u = await
|
|
48305
|
-
throw new f(o.status, t.buildErrorDetail("GET", s, a, u || \`status \${o.status}\`,
|
|
49476
|
+
let u = await k(o);
|
|
49477
|
+
throw new f(o.status, t.buildErrorDetail("GET", s, a, u || \`status \${o.status}\`, R(o)));
|
|
48306
49478
|
}
|
|
48307
49479
|
let c = new Uint8Array(await o.arrayBuffer()), d = Z(o.headers);
|
|
48308
49480
|
return { body: c, contentType: d["content-type"], headers: d };
|
|
48309
49481
|
} catch (o) {
|
|
48310
|
-
throw o instanceof f ? o : new f(0, t.buildErrorDetail("GET", s, a,
|
|
49482
|
+
throw o instanceof f ? o : new f(0, t.buildErrorDetail("GET", s, a, A(o)));
|
|
48311
49483
|
}
|
|
48312
49484
|
}
|
|
48313
49485
|
async headObject(e, r, n) {
|
|
@@ -48317,13 +49489,13 @@ var require_dist = __commonJS({
|
|
|
48317
49489
|
if (o.status === 404)
|
|
48318
49490
|
return null;
|
|
48319
49491
|
if (!o.ok) {
|
|
48320
|
-
let d = await
|
|
48321
|
-
throw new f(o.status, t.buildErrorDetail("HEAD", s, a, d || \`status \${o.status}\`,
|
|
49492
|
+
let d = await k(o);
|
|
49493
|
+
throw new f(o.status, t.buildErrorDetail("HEAD", s, a, d || \`status \${o.status}\`, R(o)));
|
|
48322
49494
|
}
|
|
48323
49495
|
let c = Z(o.headers);
|
|
48324
49496
|
return { cacheControl: c["cache-control"], contentType: c["content-type"], etag: c.etag, headers: c };
|
|
48325
49497
|
} catch (o) {
|
|
48326
|
-
throw o instanceof f ? o : new f(0, t.buildErrorDetail("HEAD", s, a,
|
|
49498
|
+
throw o instanceof f ? o : new f(0, t.buildErrorDetail("HEAD", s, a, A(o)));
|
|
48327
49499
|
}
|
|
48328
49500
|
}
|
|
48329
49501
|
async deleteObject(e, r) {
|
|
@@ -48335,10 +49507,10 @@ var require_dist = __commonJS({
|
|
|
48335
49507
|
});
|
|
48336
49508
|
return;
|
|
48337
49509
|
}
|
|
48338
|
-
let o = await
|
|
48339
|
-
throw new f(a.status, t.buildErrorDetail("DELETE", n, i, o || \`status \${a.status}\`,
|
|
49510
|
+
let o = await k(a);
|
|
49511
|
+
throw new f(a.status, t.buildErrorDetail("DELETE", n, i, o || \`status \${a.status}\`, R(a)));
|
|
48340
49512
|
} catch (a) {
|
|
48341
|
-
throw a instanceof f ? a : new f(0, t.buildErrorDetail("DELETE", n, i,
|
|
49513
|
+
throw a instanceof f ? a : new f(0, t.buildErrorDetail("DELETE", n, i, A(a)));
|
|
48342
49514
|
}
|
|
48343
49515
|
}
|
|
48344
49516
|
async listObjects(e, r) {
|
|
@@ -48364,35 +49536,35 @@ var require_dist = __commonJS({
|
|
|
48364
49536
|
return r;
|
|
48365
49537
|
}
|
|
48366
49538
|
async getBucketRaw(e) {
|
|
48367
|
-
let r = await this.resolveDomain(e.consistency), n = await this.resolveCredential(), s = { prefix: e.prefix };
|
|
48368
|
-
e.delimiter && (s.delimiter = e.delimiter), e.marker && (s.marker = e.marker), e.maxKeys && (s["max-keys"] = e.maxKeys);
|
|
49539
|
+
let r = await this.resolveDomain(e.consistency), n = await this.resolveCredential(), s = { prefix: I(e.prefix) };
|
|
49540
|
+
e.delimiter && (s.delimiter = e.delimiter), e.marker && (s.marker = I(e.marker)), e.maxKeys && (s["max-keys"] = e.maxKeys);
|
|
48369
49541
|
try {
|
|
48370
49542
|
let i = await S({ domain: r, method: "GET", query: s, credential: n });
|
|
48371
49543
|
if (!i.ok) {
|
|
48372
|
-
let o = await
|
|
48373
|
-
throw new f(i.status, t.buildErrorDetail("LIST", r, e.prefix, o || \`status \${i.status}\`,
|
|
49544
|
+
let o = await k(i);
|
|
49545
|
+
throw new f(i.status, t.buildErrorDetail("LIST", r, e.prefix, o || \`status \${i.status}\`, R(i)));
|
|
48374
49546
|
}
|
|
48375
49547
|
let a = await i.text();
|
|
48376
|
-
return
|
|
49548
|
+
return Se(a);
|
|
48377
49549
|
} catch (i) {
|
|
48378
|
-
throw i instanceof f ? i : new f(0, t.buildErrorDetail("LIST", r, e.prefix,
|
|
49550
|
+
throw i instanceof f ? i : new f(0, t.buildErrorDetail("LIST", r, e.prefix, A(i)));
|
|
48379
49551
|
}
|
|
48380
49552
|
}
|
|
48381
49553
|
};
|
|
48382
|
-
function
|
|
49554
|
+
function Ee(t) {
|
|
48383
49555
|
return t.replace(/[a-zA-Z0-9\\-]+\\.cos\\.[a-zA-Z0-9\\-.]+\\.myqcloud\\.com/gi, "[cos-origin]").replace(/[a-zA-Z0-9\\-]+\\.cos\\.[a-zA-Z0-9\\-.]+\\.tencentcos\\.cn/gi, "[cos-origin]");
|
|
48384
49556
|
}
|
|
48385
|
-
async function
|
|
49557
|
+
async function k(t) {
|
|
48386
49558
|
try {
|
|
48387
49559
|
return await t.text();
|
|
48388
49560
|
} catch {
|
|
48389
49561
|
return "";
|
|
48390
49562
|
}
|
|
48391
49563
|
}
|
|
48392
|
-
function
|
|
49564
|
+
function R(t) {
|
|
48393
49565
|
return t.headers.get("x-cos-request-id") || t.headers.get("x-eo-log-id") || void 0;
|
|
48394
49566
|
}
|
|
48395
|
-
function
|
|
49567
|
+
function A(t) {
|
|
48396
49568
|
let e = t, r = e.message || String(t), n = e.cause;
|
|
48397
49569
|
if (n) {
|
|
48398
49570
|
let s = n.message || n.code || "";
|
|
@@ -48406,43 +49578,43 @@ var require_dist = __commonJS({
|
|
|
48406
49578
|
e[n.toLowerCase()] = r;
|
|
48407
49579
|
}), e;
|
|
48408
49580
|
}
|
|
48409
|
-
function
|
|
49581
|
+
function Se(t) {
|
|
48410
49582
|
let e = [], r = /<Contents>([\\s\\S]*?)<\\/Contents>/g, n;
|
|
48411
49583
|
for (; (n = r.exec(t)) !== null; ) {
|
|
48412
|
-
let d = n[1], u =
|
|
48413
|
-
u !== null && e.push({ key:
|
|
49584
|
+
let d = n[1], u = v(d, "Key"), l = v(d, "ETag");
|
|
49585
|
+
u !== null && e.push({ key: L(u), etag: l || "" });
|
|
48414
49586
|
}
|
|
48415
49587
|
let s = [], i = /<CommonPrefixes>([\\s\\S]*?)<\\/CommonPrefixes>/g;
|
|
48416
49588
|
for (; (n = i.exec(t)) !== null; ) {
|
|
48417
|
-
let d = n[1], u =
|
|
48418
|
-
u !== null && s.push(
|
|
49589
|
+
let d = n[1], u = v(d, "Prefix");
|
|
49590
|
+
u !== null && s.push(L(u));
|
|
48419
49591
|
}
|
|
48420
|
-
let o =
|
|
48421
|
-
return { contents: e, commonPrefixes: s, isTruncated: o, nextMarker:
|
|
49592
|
+
let o = v(t, "IsTruncated") === "true", c = v(t, "NextMarker") || "";
|
|
49593
|
+
return { contents: e, commonPrefixes: s, isTruncated: o, nextMarker: L(c) };
|
|
48422
49594
|
}
|
|
48423
|
-
function
|
|
49595
|
+
function v(t, e) {
|
|
48424
49596
|
let n = new RegExp(\`<\${e}>([\\\\s\\\\S]*?)<\\\\/\${e}>\`).exec(t);
|
|
48425
49597
|
return n ? n[1] : null;
|
|
48426
49598
|
}
|
|
48427
|
-
function
|
|
49599
|
+
function L(t) {
|
|
48428
49600
|
return t.replace(/</g, "<").replace(/>/g, ">").replace(/"/g, '"').replace(/'/g, "'").replace(/&/g, "&");
|
|
48429
49601
|
}
|
|
48430
|
-
var
|
|
48431
|
-
async function
|
|
49602
|
+
var Pe = "X-RateLimit-Reset";
|
|
49603
|
+
async function B(t, e, r = 2) {
|
|
48432
49604
|
var _a, _b;
|
|
48433
49605
|
(_b = (_a = e.signal) == null ? void 0 : _a.throwIfAborted) == null ? void 0 : _b.call(_a);
|
|
48434
49606
|
try {
|
|
48435
49607
|
let n = await fetch(t, e);
|
|
48436
49608
|
if (r > 0 && (n.status === 429 || n.status >= 500)) {
|
|
48437
|
-
let s = Q(n.headers.get(
|
|
48438
|
-
return await ee(s, e.signal),
|
|
49609
|
+
let s = Q(n.headers.get(Pe));
|
|
49610
|
+
return await ee(s, e.signal), B(t, e, r - 1);
|
|
48439
49611
|
}
|
|
48440
49612
|
return n;
|
|
48441
49613
|
} catch (n) {
|
|
48442
49614
|
if (r === 0 || n instanceof DOMException && n.name === "AbortError")
|
|
48443
49615
|
throw n;
|
|
48444
49616
|
let s = Q();
|
|
48445
|
-
return await ee(s, e.signal),
|
|
49617
|
+
return await ee(s, e.signal), B(t, e, r - 1);
|
|
48446
49618
|
}
|
|
48447
49619
|
}
|
|
48448
49620
|
function Q(t) {
|
|
@@ -48460,14 +49632,14 @@ var require_dist = __commonJS({
|
|
|
48460
49632
|
e == null ? void 0 : e.addEventListener("abort", i, { once: true });
|
|
48461
49633
|
});
|
|
48462
49634
|
}
|
|
48463
|
-
var
|
|
49635
|
+
var Ie = "prod";
|
|
48464
49636
|
function te() {
|
|
48465
49637
|
let t = typeof process < "u" ? process.env.PAGES_BLOB_STS_ENV : void 0;
|
|
48466
|
-
return t === "test" || t === "prod" ? t :
|
|
49638
|
+
return t === "test" || t === "prod" ? t : Ie;
|
|
48467
49639
|
}
|
|
48468
|
-
var
|
|
48469
|
-
var
|
|
48470
|
-
var
|
|
49640
|
+
var ke = 300;
|
|
49641
|
+
var Re = "https://blob-sts.edgeone.site/";
|
|
49642
|
+
var D = class {
|
|
48471
49643
|
authToken;
|
|
48472
49644
|
projectId;
|
|
48473
49645
|
cached = null;
|
|
@@ -48485,16 +49657,16 @@ var require_dist = __commonJS({
|
|
|
48485
49657
|
}
|
|
48486
49658
|
isExpired(e) {
|
|
48487
49659
|
let r = Math.floor(Date.now() / 1e3);
|
|
48488
|
-
return e.expiredTime - r <
|
|
49660
|
+
return e.expiredTime - r < ke;
|
|
48489
49661
|
}
|
|
48490
49662
|
async fetchCredential() {
|
|
48491
49663
|
for (let n = 1; n <= 3; n++) {
|
|
48492
49664
|
let s = new AbortController(), i = setTimeout(() => s.abort(), 1e4), a;
|
|
48493
49665
|
try {
|
|
48494
|
-
a = await
|
|
49666
|
+
a = await B(Re, { method: "POST", headers: { "Content-Type": "application/json", Authorization: \`Bearer \${this.authToken}\`, "X-Env": te() }, body: JSON.stringify(this.projectId ? { ProjectId: this.projectId } : {}), signal: s.signal });
|
|
48495
49667
|
} catch (d) {
|
|
48496
49668
|
if (n < 3) {
|
|
48497
|
-
await
|
|
49669
|
+
await K(500 * n);
|
|
48498
49670
|
continue;
|
|
48499
49671
|
}
|
|
48500
49672
|
throw new m(\`failed to obtain STS credential: \${d.message || "timeout"}\`);
|
|
@@ -48507,7 +49679,7 @@ var require_dist = __commonJS({
|
|
|
48507
49679
|
throw new m("rate limited, please retry later");
|
|
48508
49680
|
if (!a.ok) {
|
|
48509
49681
|
if (a.status >= 500 && n < 3) {
|
|
48510
|
-
await
|
|
49682
|
+
await K(500 * n);
|
|
48511
49683
|
continue;
|
|
48512
49684
|
}
|
|
48513
49685
|
let d = await a.text().catch(() => "unknown error");
|
|
@@ -48527,7 +49699,7 @@ var require_dist = __commonJS({
|
|
|
48527
49699
|
throw new m(\`credential exchange failed (code=\${o.code}): \${d}\`);
|
|
48528
49700
|
}
|
|
48529
49701
|
if (n < 3) {
|
|
48530
|
-
await
|
|
49702
|
+
await K(500 * n);
|
|
48531
49703
|
continue;
|
|
48532
49704
|
}
|
|
48533
49705
|
throw new m("invalid STS credential response");
|
|
@@ -48535,12 +49707,12 @@ var require_dist = __commonJS({
|
|
|
48535
49707
|
throw new m("invalid STS credential response");
|
|
48536
49708
|
}
|
|
48537
49709
|
};
|
|
48538
|
-
function
|
|
49710
|
+
function K(t) {
|
|
48539
49711
|
return new Promise((e) => setTimeout(e, t));
|
|
48540
49712
|
}
|
|
48541
|
-
var
|
|
49713
|
+
var Ae = "{{PAGES_BLOB_DEPLOY_CREDENTIAL}}";
|
|
48542
49714
|
function re() {
|
|
48543
|
-
let t = {}, e =
|
|
49715
|
+
let t = {}, e = ve();
|
|
48544
49716
|
if (e)
|
|
48545
49717
|
t.deployCredential = e;
|
|
48546
49718
|
else {
|
|
@@ -48550,8 +49722,8 @@ var require_dist = __commonJS({
|
|
|
48550
49722
|
let r = ne("PAGES_PROJECT_ID");
|
|
48551
49723
|
return r && (t.projectId = r), t;
|
|
48552
49724
|
}
|
|
48553
|
-
function
|
|
48554
|
-
let t =
|
|
49725
|
+
function ve() {
|
|
49726
|
+
let t = Ae;
|
|
48555
49727
|
if (!(t.startsWith("{{") && t.endsWith("}}")))
|
|
48556
49728
|
return t || void 0;
|
|
48557
49729
|
}
|
|
@@ -48559,15 +49731,15 @@ var require_dist = __commonJS({
|
|
|
48559
49731
|
if (typeof process < "u" && process.env)
|
|
48560
49732
|
return process.env[t];
|
|
48561
49733
|
}
|
|
48562
|
-
function
|
|
49734
|
+
function Me(t) {
|
|
48563
49735
|
let e = typeof t == "string" ? t : t.name;
|
|
48564
|
-
|
|
48565
|
-
let r = se(typeof t == "string" ? void 0 : t), n = new
|
|
49736
|
+
z(e);
|
|
49737
|
+
let r = se(typeof t == "string" ? void 0 : t), n = new D(r.authToken, r.projectId), s = new M(n);
|
|
48566
49738
|
return new E(s, e, r.consistency ?? "eventual");
|
|
48567
49739
|
}
|
|
48568
|
-
async function
|
|
48569
|
-
let e = se(t ? { name: "__list__", projectId: t.projectId, token: t.token, consistency: t.consistency } : void 0), r = new
|
|
48570
|
-
return { stores: (await new
|
|
49740
|
+
async function De(t) {
|
|
49741
|
+
let e = se(t ? { name: "__list__", projectId: t.projectId, token: t.token, consistency: t.consistency } : void 0), r = new D(e.authToken, e.projectId);
|
|
49742
|
+
return { stores: (await new M(r).listStores(e.consistency)).map((i) => ({ name: i })) };
|
|
48571
49743
|
}
|
|
48572
49744
|
function se(t) {
|
|
48573
49745
|
let e = re(), r = (t == null ? void 0 : t.token) || e.deployCredential, n = (t == null ? void 0 : t.projectId) || e.projectId;
|
|
@@ -48609,6 +49781,9 @@ var LANGGRAPH_STORE_PREFIX = "langgraph_store";
|
|
|
48609
49781
|
var LANGGRAPH_STORE_KEY_SEPARATOR = "__key__";
|
|
48610
49782
|
var LANGGRAPH_SERDE_VERSION = 1;
|
|
48611
49783
|
var CLAUDE_SESSION_PREFIX = "claude_sessions";
|
|
49784
|
+
var CLAUDE_SESSION_MAPPING_PREFIX = "claude_session_mapping";
|
|
49785
|
+
var STATE_PREFIX = "state";
|
|
49786
|
+
var MAX_STATE_KEY_LENGTH = 256;
|
|
48612
49787
|
var SESSION_METADATA_MARKER = { agent_sdk_session: true };
|
|
48613
49788
|
var VALID_ROLES = /* @__PURE__ */ new Set([
|
|
48614
49789
|
"user",
|
|
@@ -48655,6 +49830,15 @@ var MemoryStorageError = class extends Error {
|
|
|
48655
49830
|
this.cause = cause;
|
|
48656
49831
|
}
|
|
48657
49832
|
};
|
|
49833
|
+
var MemoryCorruptError = class extends Error {
|
|
49834
|
+
code = "MemoryCorruptError";
|
|
49835
|
+
cause;
|
|
49836
|
+
constructor(message, cause) {
|
|
49837
|
+
super(message);
|
|
49838
|
+
this.name = "MemoryCorruptError";
|
|
49839
|
+
this.cause = cause;
|
|
49840
|
+
}
|
|
49841
|
+
};
|
|
48658
49842
|
var dynamicImport = new Function(
|
|
48659
49843
|
"specifier",
|
|
48660
49844
|
"return import(specifier);"
|
|
@@ -48662,7 +49846,7 @@ var dynamicImport = new Function(
|
|
|
48662
49846
|
var langchainLoadPromise;
|
|
48663
49847
|
var langchainMessagesPromise;
|
|
48664
49848
|
function isMemoryError(error) {
|
|
48665
|
-
return error instanceof MemoryValidationError || error instanceof MemoryNotFoundError || error instanceof MemoryQuotaExceededError || error instanceof MemoryStorageError;
|
|
49849
|
+
return error instanceof MemoryValidationError || error instanceof MemoryNotFoundError || error instanceof MemoryQuotaExceededError || error instanceof MemoryStorageError || error instanceof MemoryCorruptError;
|
|
48666
49850
|
}
|
|
48667
49851
|
async function wrapStorage(operation) {
|
|
48668
49852
|
try {
|
|
@@ -48830,10 +50014,17 @@ async function reviveLangGraphJsonValue(value) {
|
|
|
48830
50014
|
return revived;
|
|
48831
50015
|
}
|
|
48832
50016
|
async function deserializeLangGraphJson(value) {
|
|
48833
|
-
|
|
48834
|
-
|
|
50017
|
+
try {
|
|
50018
|
+
if (isLangGraphSerializedJson(value)) {
|
|
50019
|
+
return reviveLangGraphJsonValue(JSON.parse(value.data));
|
|
50020
|
+
}
|
|
50021
|
+
return reviveLangGraphJsonValue(value);
|
|
50022
|
+
} catch (error) {
|
|
50023
|
+
throw new MemoryCorruptError(
|
|
50024
|
+
"LangGraph persisted state is corrupt or incompatible.",
|
|
50025
|
+
error
|
|
50026
|
+
);
|
|
48835
50027
|
}
|
|
48836
|
-
return reviveLangGraphJsonValue(value);
|
|
48837
50028
|
}
|
|
48838
50029
|
function normalizeStoreLimit(value, fallback) {
|
|
48839
50030
|
if (typeof value !== "number" || !Number.isFinite(value)) {
|
|
@@ -48945,6 +50136,115 @@ function validateMessageId(messageId) {
|
|
|
48945
50136
|
throw new MemoryValidationError("messageId is required.");
|
|
48946
50137
|
}
|
|
48947
50138
|
}
|
|
50139
|
+
function validateStateKey(key) {
|
|
50140
|
+
if (typeof key !== "string" || key.length === 0) {
|
|
50141
|
+
throw new MemoryValidationError("state key is required.");
|
|
50142
|
+
}
|
|
50143
|
+
if (key.length > MAX_STATE_KEY_LENGTH) {
|
|
50144
|
+
throw new MemoryValidationError(
|
|
50145
|
+
\`state key must be at most \${MAX_STATE_KEY_LENGTH} characters.\`
|
|
50146
|
+
);
|
|
50147
|
+
}
|
|
50148
|
+
}
|
|
50149
|
+
function assertStateSerializable(value, path2 = "state value", seen = /* @__PURE__ */ new Set()) {
|
|
50150
|
+
if (value === null || typeof value === "string" || typeof value === "boolean") {
|
|
50151
|
+
return;
|
|
50152
|
+
}
|
|
50153
|
+
if (typeof value === "number") {
|
|
50154
|
+
if (Number.isFinite(value))
|
|
50155
|
+
return;
|
|
50156
|
+
throw new MemoryValidationError(\`\${path2} must contain only JSON values.\`);
|
|
50157
|
+
}
|
|
50158
|
+
if (value === void 0 || typeof value === "function" || typeof value === "symbol" || typeof value === "bigint") {
|
|
50159
|
+
throw new MemoryValidationError(\`\${path2} must be JSON serializable.\`);
|
|
50160
|
+
}
|
|
50161
|
+
if (typeof value !== "object") {
|
|
50162
|
+
throw new MemoryValidationError(\`\${path2} must be JSON serializable.\`);
|
|
50163
|
+
}
|
|
50164
|
+
if (seen.has(value)) {
|
|
50165
|
+
throw new MemoryValidationError(\`\${path2} must not contain circular references.\`);
|
|
50166
|
+
}
|
|
50167
|
+
seen.add(value);
|
|
50168
|
+
if (Array.isArray(value)) {
|
|
50169
|
+
value.forEach((item, index) => assertStateSerializable(item, \`\${path2}[\${index}]\`, seen));
|
|
50170
|
+
} else if (isPlainObject(value)) {
|
|
50171
|
+
for (const [key, item] of Object.entries(value)) {
|
|
50172
|
+
assertStateSerializable(item, \`\${path2}.\${key}\`, seen);
|
|
50173
|
+
}
|
|
50174
|
+
} else {
|
|
50175
|
+
throw new MemoryValidationError(\`\${path2} must contain only JSON values.\`);
|
|
50176
|
+
}
|
|
50177
|
+
seen.delete(value);
|
|
50178
|
+
}
|
|
50179
|
+
function stateConversationPrefix(conversationId) {
|
|
50180
|
+
return \`\${STATE_PREFIX}/\${encodeKeySegment(conversationId)}/\`;
|
|
50181
|
+
}
|
|
50182
|
+
function createAgentStateStore(store, boundConversationId) {
|
|
50183
|
+
const requireConversation = () => {
|
|
50184
|
+
if (!boundConversationId) {
|
|
50185
|
+
throw new MemoryValidationError(
|
|
50186
|
+
"State operations require a bound conversationId."
|
|
50187
|
+
);
|
|
50188
|
+
}
|
|
50189
|
+
validateConversationId(boundConversationId);
|
|
50190
|
+
return boundConversationId;
|
|
50191
|
+
};
|
|
50192
|
+
return {
|
|
50193
|
+
async get(key) {
|
|
50194
|
+
validateStateKey(key);
|
|
50195
|
+
const conversationId = requireConversation();
|
|
50196
|
+
return wrapStorage(async () => {
|
|
50197
|
+
const raw = await store.get(
|
|
50198
|
+
\`\${stateConversationPrefix(conversationId)}\${encodeKeySegment(key)}\`,
|
|
50199
|
+
{ consistency: "strong" }
|
|
50200
|
+
);
|
|
50201
|
+
if (raw === null)
|
|
50202
|
+
return null;
|
|
50203
|
+
if (typeof raw !== "string") {
|
|
50204
|
+
throw new MemoryStorageError("Stored state value is not valid JSON text.");
|
|
50205
|
+
}
|
|
50206
|
+
try {
|
|
50207
|
+
return JSON.parse(raw);
|
|
50208
|
+
} catch (error) {
|
|
50209
|
+
throw new MemoryStorageError("Stored state value is invalid JSON.", error);
|
|
50210
|
+
}
|
|
50211
|
+
});
|
|
50212
|
+
},
|
|
50213
|
+
async set(key, value) {
|
|
50214
|
+
validateStateKey(key);
|
|
50215
|
+
const conversationId = requireConversation();
|
|
50216
|
+
assertStateSerializable(value);
|
|
50217
|
+
let serialized;
|
|
50218
|
+
try {
|
|
50219
|
+
serialized = JSON.stringify(value);
|
|
50220
|
+
} catch (error) {
|
|
50221
|
+
throw new MemoryValidationError(\`state value must be JSON serializable: \${String(error)}\`);
|
|
50222
|
+
}
|
|
50223
|
+
await wrapStorage(
|
|
50224
|
+
() => store.set(
|
|
50225
|
+
\`\${stateConversationPrefix(conversationId)}\${encodeKeySegment(key)}\`,
|
|
50226
|
+
serialized
|
|
50227
|
+
)
|
|
50228
|
+
);
|
|
50229
|
+
},
|
|
50230
|
+
async delete(key) {
|
|
50231
|
+
validateStateKey(key);
|
|
50232
|
+
const conversationId = requireConversation();
|
|
50233
|
+
await wrapStorage(
|
|
50234
|
+
() => store.delete(
|
|
50235
|
+
\`\${stateConversationPrefix(conversationId)}\${encodeKeySegment(key)}\`
|
|
50236
|
+
)
|
|
50237
|
+
);
|
|
50238
|
+
}
|
|
50239
|
+
};
|
|
50240
|
+
}
|
|
50241
|
+
async function deleteAgentState(store, conversationId) {
|
|
50242
|
+
const listed = await store.list({
|
|
50243
|
+
prefix: stateConversationPrefix(conversationId),
|
|
50244
|
+
consistency: "strong"
|
|
50245
|
+
});
|
|
50246
|
+
await Promise.all(listed.keys.map((key) => store.delete(key)));
|
|
50247
|
+
}
|
|
48948
50248
|
function validateUserId(userId) {
|
|
48949
50249
|
if (userId === void 0) {
|
|
48950
50250
|
return;
|
|
@@ -49077,6 +50377,9 @@ function cursorSortKey(cursor) {
|
|
|
49077
50377
|
const payload = decodeConversationCursor(cursor);
|
|
49078
50378
|
return \`\${reverseTimestamp(payload.lastMessageAt)}_\${encodeKeySegment(payload.conversationId)}\`;
|
|
49079
50379
|
}
|
|
50380
|
+
function cursorListCursor(cursor) {
|
|
50381
|
+
return cursor ? decodeConversationCursor(cursor).listCursor : void 0;
|
|
50382
|
+
}
|
|
49080
50383
|
function indexSortKey(key, prefix) {
|
|
49081
50384
|
return key.slice(prefix.length);
|
|
49082
50385
|
}
|
|
@@ -49244,6 +50547,51 @@ function claudeSessionBase(projectKey, sessionId) {
|
|
|
49244
50547
|
function claudeProjectPrefix(projectKey) {
|
|
49245
50548
|
return \`\${CLAUDE_SESSION_PREFIX}/\${encodeKeySegment(projectKey)}/\`;
|
|
49246
50549
|
}
|
|
50550
|
+
function claudeSessionMappingKey(conversationId) {
|
|
50551
|
+
return \`\${CLAUDE_SESSION_MAPPING_PREFIX}/\${encodeKeySegment(conversationId)}\`;
|
|
50552
|
+
}
|
|
50553
|
+
function normalizeClaudeUuid(value) {
|
|
50554
|
+
const trimmed = value.trim().toLowerCase();
|
|
50555
|
+
return /^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$/.test(trimmed) ? trimmed : null;
|
|
50556
|
+
}
|
|
50557
|
+
function claudeSessionIdFromKey(key) {
|
|
50558
|
+
const prefix = \`\${CLAUDE_SESSION_PREFIX}/\`;
|
|
50559
|
+
if (!key.startsWith(prefix)) {
|
|
50560
|
+
return null;
|
|
50561
|
+
}
|
|
50562
|
+
const segments = key.slice(prefix.length).split("/");
|
|
50563
|
+
return segments.length >= 3 && segments[1] ? decodeKeySegment(segments[1]) : null;
|
|
50564
|
+
}
|
|
50565
|
+
async function deleteClaudeSessionForConversation(store, conversationId) {
|
|
50566
|
+
const mappingKey = claudeSessionMappingKey(conversationId);
|
|
50567
|
+
const mapping = await store.get(mappingKey, {
|
|
50568
|
+
consistency: "strong"
|
|
50569
|
+
});
|
|
50570
|
+
let sessionId = null;
|
|
50571
|
+
if (typeof mapping === "string") {
|
|
50572
|
+
sessionId = mapping;
|
|
50573
|
+
} else if (isPlainObject(mapping) && typeof mapping.sessionId === "string") {
|
|
50574
|
+
sessionId = mapping.sessionId;
|
|
50575
|
+
} else if (isPlainObject(mapping) && typeof mapping.session_id === "string") {
|
|
50576
|
+
sessionId = mapping.session_id;
|
|
50577
|
+
}
|
|
50578
|
+
if (!sessionId) {
|
|
50579
|
+
sessionId = normalizeClaudeUuid(conversationId);
|
|
50580
|
+
}
|
|
50581
|
+
await store.delete(mappingKey);
|
|
50582
|
+
if (!sessionId) {
|
|
50583
|
+
return;
|
|
50584
|
+
}
|
|
50585
|
+
const listed = await store.list({
|
|
50586
|
+
prefix: \`\${CLAUDE_SESSION_PREFIX}/\`,
|
|
50587
|
+
consistency: "strong"
|
|
50588
|
+
});
|
|
50589
|
+
for (const key of listed.keys) {
|
|
50590
|
+
if (claudeSessionIdFromKey(key) === sessionId) {
|
|
50591
|
+
await store.delete(key);
|
|
50592
|
+
}
|
|
50593
|
+
}
|
|
50594
|
+
}
|
|
49247
50595
|
function claudePartsPrefix(key) {
|
|
49248
50596
|
let base = claudeSessionBase(key.projectKey, key.sessionId).slice(0, -1);
|
|
49249
50597
|
if (key.subpath) {
|
|
@@ -49281,7 +50629,9 @@ function createClaudeSessionStore(store) {
|
|
|
49281
50629
|
consistency: "strong"
|
|
49282
50630
|
});
|
|
49283
50631
|
if (typeof raw !== "string") {
|
|
49284
|
-
|
|
50632
|
+
throw new MemoryCorruptError(
|
|
50633
|
+
\`Claude session part '\${partKey}' is not valid JSONL text.\`
|
|
50634
|
+
);
|
|
49285
50635
|
}
|
|
49286
50636
|
for (const line of raw.split("\\n")) {
|
|
49287
50637
|
const trimmed = line.trim();
|
|
@@ -49290,7 +50640,11 @@ function createClaudeSessionStore(store) {
|
|
|
49290
50640
|
}
|
|
49291
50641
|
try {
|
|
49292
50642
|
entries.push(JSON.parse(trimmed));
|
|
49293
|
-
} catch {
|
|
50643
|
+
} catch (error) {
|
|
50644
|
+
throw new MemoryCorruptError(
|
|
50645
|
+
\`Claude session part '\${partKey}' contains malformed JSONL.\`,
|
|
50646
|
+
error
|
|
50647
|
+
);
|
|
49294
50648
|
}
|
|
49295
50649
|
}
|
|
49296
50650
|
}
|
|
@@ -49416,8 +50770,70 @@ async function listConversationsByUser(store, userId, options) {
|
|
|
49416
50770
|
});
|
|
49417
50771
|
}
|
|
49418
50772
|
async function listConversationsFromIndex(store, options) {
|
|
50773
|
+
if (!options.before) {
|
|
50774
|
+
const fast = await listConversationsFromIndexFast(store, options);
|
|
50775
|
+
if (fast)
|
|
50776
|
+
return fast;
|
|
50777
|
+
}
|
|
49419
50778
|
return listConversationsFromIndexFull(store, options);
|
|
49420
50779
|
}
|
|
50780
|
+
async function listConversationsFromIndexFast(store, options) {
|
|
50781
|
+
var _a, _b;
|
|
50782
|
+
let listCursor = cursorListCursor(options.after);
|
|
50783
|
+
if (options.after && !listCursor) {
|
|
50784
|
+
return null;
|
|
50785
|
+
}
|
|
50786
|
+
const pageItems = [];
|
|
50787
|
+
const seen = /* @__PURE__ */ new Set();
|
|
50788
|
+
let lastCursor;
|
|
50789
|
+
while (pageItems.length < options.limit) {
|
|
50790
|
+
const listed = await store.list({
|
|
50791
|
+
prefix: options.prefix,
|
|
50792
|
+
cursor: listCursor,
|
|
50793
|
+
limit: options.limit - pageItems.length,
|
|
50794
|
+
paginate: false,
|
|
50795
|
+
consistency: "strong"
|
|
50796
|
+
});
|
|
50797
|
+
lastCursor = listed.cursor;
|
|
50798
|
+
if (!listed.keys.length) {
|
|
50799
|
+
break;
|
|
50800
|
+
}
|
|
50801
|
+
const indexItems = [...listed.keys].sort(
|
|
50802
|
+
(left, right) => options.order === "desc" ? left.localeCompare(right) : right.localeCompare(left)
|
|
50803
|
+
).map((key) => {
|
|
50804
|
+
const conversationId = options.conversationIdFromKey(key);
|
|
50805
|
+
if (!conversationId || seen.has(conversationId)) {
|
|
50806
|
+
return null;
|
|
50807
|
+
}
|
|
50808
|
+
seen.add(conversationId);
|
|
50809
|
+
return {
|
|
50810
|
+
key,
|
|
50811
|
+
sortKey: indexSortKey(key, options.prefix),
|
|
50812
|
+
conversationId
|
|
50813
|
+
};
|
|
50814
|
+
}).filter((item) => item !== null);
|
|
50815
|
+
const metas = await Promise.all(
|
|
50816
|
+
indexItems.map((item) => readConversationMeta(store, item.conversationId))
|
|
50817
|
+
);
|
|
50818
|
+
for (let i = 0; i < indexItems.length; i++) {
|
|
50819
|
+
const meta = metas[i];
|
|
50820
|
+
if (meta) {
|
|
50821
|
+
pageItems.push({ indexItem: indexItems[i], meta });
|
|
50822
|
+
}
|
|
50823
|
+
}
|
|
50824
|
+
if (!listed.cursor) {
|
|
50825
|
+
break;
|
|
50826
|
+
}
|
|
50827
|
+
listCursor = listed.cursor;
|
|
50828
|
+
}
|
|
50829
|
+
const firstItem = (_a = pageItems[0]) == null ? void 0 : _a.indexItem;
|
|
50830
|
+
const lastItem = (_b = pageItems[pageItems.length - 1]) == null ? void 0 : _b.indexItem;
|
|
50831
|
+
return {
|
|
50832
|
+
items: pageItems.map((item) => item.meta),
|
|
50833
|
+
nextCursor: lastItem ? encodeConversationCursorFromIndexItem(lastItem, lastCursor) : void 0,
|
|
50834
|
+
previousCursor: firstItem ? encodeConversationCursorFromIndexItem(firstItem) : void 0
|
|
50835
|
+
};
|
|
50836
|
+
}
|
|
49421
50837
|
async function listConversationsFromIndexFull(store, options) {
|
|
49422
50838
|
var _a, _b;
|
|
49423
50839
|
const afterSortKey = options.after ? cursorSortKey(options.after) : void 0;
|
|
@@ -49854,6 +51270,7 @@ function createAgentMemory(store, options = {}) {
|
|
|
49854
51270
|
const maxMessagesPerConversation = options.maxMessagesPerConversation ?? DEFAULT_MAX_MESSAGES_PER_CONVERSATION;
|
|
49855
51271
|
const langgraphCheckpointer = createLangGraphCheckpointer(store);
|
|
49856
51272
|
const langgraphStore = createLangGraphStore(store);
|
|
51273
|
+
const state = createAgentStateStore(store, options.conversationId);
|
|
49857
51274
|
let claudeStoreCache = null;
|
|
49858
51275
|
let lastMessageCreatedAt = 0;
|
|
49859
51276
|
const appendMessagesInternal = async (inputs) => {
|
|
@@ -50139,8 +51556,13 @@ function createAgentMemory(store, options = {}) {
|
|
|
50139
51556
|
listMessageKeys(store, input.conversationId)
|
|
50140
51557
|
]);
|
|
50141
51558
|
if (!meta) {
|
|
51559
|
+
if (options.conversationId === input.conversationId) {
|
|
51560
|
+
await deleteAgentState(store, input.conversationId);
|
|
51561
|
+
}
|
|
51562
|
+
await deleteClaudeSessionForConversation(store, input.conversationId);
|
|
51563
|
+
await langgraphCheckpointer.deleteThread(input.conversationId);
|
|
50142
51564
|
throw new MemoryNotFoundError(
|
|
50143
|
-
"Conversation not found by
|
|
51565
|
+
"Conversation not found by deleteConversation."
|
|
50144
51566
|
);
|
|
50145
51567
|
}
|
|
50146
51568
|
const deleteOps = [];
|
|
@@ -50157,6 +51579,11 @@ function createAgentMemory(store, options = {}) {
|
|
|
50157
51579
|
deleteOps.push(store.delete(metaKey(input.conversationId)));
|
|
50158
51580
|
deleteOps.push(store.delete(conversationIndexKey(meta)));
|
|
50159
51581
|
await Promise.all(deleteOps);
|
|
51582
|
+
if (options.conversationId === input.conversationId) {
|
|
51583
|
+
await deleteAgentState(store, input.conversationId);
|
|
51584
|
+
}
|
|
51585
|
+
await deleteClaudeSessionForConversation(store, input.conversationId);
|
|
51586
|
+
await langgraphCheckpointer.deleteThread(input.conversationId);
|
|
50160
51587
|
});
|
|
50161
51588
|
},
|
|
50162
51589
|
async updateConversation(input) {
|
|
@@ -50192,14 +51619,49 @@ function createAgentMemory(store, options = {}) {
|
|
|
50192
51619
|
}));
|
|
50193
51620
|
},
|
|
50194
51621
|
openaiSession(sessionId, sessionOptions = {}) {
|
|
51622
|
+
const boundSessionId = sessionId ?? options.conversationId;
|
|
51623
|
+
if (!boundSessionId) {
|
|
51624
|
+
throw new MemoryValidationError(
|
|
51625
|
+
"openaiSession requires a sessionId or bound conversationId."
|
|
51626
|
+
);
|
|
51627
|
+
}
|
|
50195
51628
|
const maxItems = sessionOptions.maxItems ?? MAX_LIMIT;
|
|
50196
51629
|
return createOpenAISession(
|
|
50197
51630
|
memory,
|
|
50198
|
-
|
|
51631
|
+
boundSessionId,
|
|
50199
51632
|
maxItems,
|
|
50200
51633
|
appendMessagesInternal
|
|
50201
51634
|
);
|
|
50202
51635
|
},
|
|
51636
|
+
async claudeSessionBinding(conversationId) {
|
|
51637
|
+
const resolvedConversationId = conversationId ?? options.conversationId;
|
|
51638
|
+
if (!resolvedConversationId) {
|
|
51639
|
+
throw new MemoryValidationError(
|
|
51640
|
+
"claudeSessionBinding requires a conversationId or bound conversationId."
|
|
51641
|
+
);
|
|
51642
|
+
}
|
|
51643
|
+
validateConversationId(resolvedConversationId);
|
|
51644
|
+
return wrapStorage(async () => {
|
|
51645
|
+
const mappingKey = claudeSessionMappingKey(resolvedConversationId);
|
|
51646
|
+
const existing = await store.get(
|
|
51647
|
+
mappingKey,
|
|
51648
|
+
{ consistency: "strong" }
|
|
51649
|
+
);
|
|
51650
|
+
if (typeof existing === "string" && existing) {
|
|
51651
|
+
return existing;
|
|
51652
|
+
}
|
|
51653
|
+
if (isPlainObject(existing) && (typeof existing.sessionId === "string" || typeof existing.session_id === "string") && (existing.sessionId || existing.session_id)) {
|
|
51654
|
+
return String(existing.sessionId || existing.session_id);
|
|
51655
|
+
}
|
|
51656
|
+
const sessionId = normalizeClaudeUuid(resolvedConversationId) ?? randomUUID();
|
|
51657
|
+
const binding = {
|
|
51658
|
+
conversationId: resolvedConversationId,
|
|
51659
|
+
sessionId
|
|
51660
|
+
};
|
|
51661
|
+
await store.set(mappingKey, binding);
|
|
51662
|
+
return sessionId;
|
|
51663
|
+
});
|
|
51664
|
+
},
|
|
50203
51665
|
claudeSessionStore() {
|
|
50204
51666
|
if (!claudeStoreCache) {
|
|
50205
51667
|
claudeStoreCache = createClaudeSessionStore(store);
|
|
@@ -50207,7 +51669,8 @@ function createAgentMemory(store, options = {}) {
|
|
|
50207
51669
|
return claudeStoreCache;
|
|
50208
51670
|
},
|
|
50209
51671
|
langgraphCheckpointer,
|
|
50210
|
-
langgraphStore
|
|
51672
|
+
langgraphStore,
|
|
51673
|
+
state
|
|
50211
51674
|
};
|
|
50212
51675
|
return memory;
|
|
50213
51676
|
}
|
|
@@ -50888,6 +52351,7 @@ function createAgentRuntime(options) {
|
|
|
50888
52351
|
env,
|
|
50889
52352
|
store: createAgentMemory(createLazyStore(resolveMemoryStore), {
|
|
50890
52353
|
runId: run_id,
|
|
52354
|
+
conversationId: conversation_id,
|
|
50891
52355
|
maxMessagesPerConversation: (_a = defaults == null ? void 0 : defaults.memoryQuota) == null ? void 0 : _a.maxMessagesPerConversation
|
|
50892
52356
|
}),
|
|
50893
52357
|
agents: {
|
|
@@ -51388,24 +52852,24 @@ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__ge
|
|
|
51388
52852
|
var require_dist = __commonJS({
|
|
51389
52853
|
"node_modules/@edgeone/pages-blob/dist/index.js"(exports, module) {
|
|
51390
52854
|
"use strict";
|
|
51391
|
-
var
|
|
52855
|
+
var U = Object.defineProperty;
|
|
51392
52856
|
var le = Object.getOwnPropertyDescriptor;
|
|
51393
52857
|
var ue = Object.getOwnPropertyNames;
|
|
51394
52858
|
var ge = Object.prototype.hasOwnProperty;
|
|
51395
52859
|
var fe = (t, e) => {
|
|
51396
52860
|
for (var r in e)
|
|
51397
|
-
|
|
52861
|
+
U(t, r, { get: e[r], enumerable: true });
|
|
51398
52862
|
};
|
|
51399
52863
|
var he = (t, e, r, n) => {
|
|
51400
52864
|
if (e && typeof e == "object" || typeof e == "function")
|
|
51401
52865
|
for (let s of ue(e))
|
|
51402
|
-
!ge.call(t, s) && s !== r &&
|
|
52866
|
+
!ge.call(t, s) && s !== r && U(t, s, { get: () => e[s], enumerable: !(n = le(e, s)) || n.enumerable });
|
|
51403
52867
|
return t;
|
|
51404
52868
|
};
|
|
51405
|
-
var me = (t) => he(
|
|
51406
|
-
var
|
|
51407
|
-
fe(
|
|
51408
|
-
module.exports = me(
|
|
52869
|
+
var me = (t) => he(U({}, "__esModule", { value: true }), t);
|
|
52870
|
+
var Oe = {};
|
|
52871
|
+
fe(Oe, { InvalidKeyError: () => w, InvalidStoreNameError: () => y, MissingProjectIdError: () => T, PagesBlobError: () => h, PreconditionFailedError: () => x, QuotaExceededError: () => O, RateLimitedError: () => j, Store: () => E, getStore: () => Me, listStores: () => De });
|
|
52872
|
+
module.exports = me(Oe);
|
|
51409
52873
|
var h = class extends Error {
|
|
51410
52874
|
code;
|
|
51411
52875
|
constructor(e, r) {
|
|
@@ -51427,12 +52891,12 @@ var require_dist = __commonJS({
|
|
|
51427
52891
|
super("MISSING_ENVIRONMENT", \`Environment not configured for Pages Blob. Missing: \${e.join(", ")}. Supply these properties when creating a store, or ensure the function is running in a Pages environment.\`);
|
|
51428
52892
|
}
|
|
51429
52893
|
};
|
|
51430
|
-
var
|
|
52894
|
+
var O = class extends h {
|
|
51431
52895
|
constructor() {
|
|
51432
52896
|
super("QUOTA_EXCEEDED", "storage quota exceeded");
|
|
51433
52897
|
}
|
|
51434
52898
|
};
|
|
51435
|
-
var
|
|
52899
|
+
var j = class extends h {
|
|
51436
52900
|
constructor() {
|
|
51437
52901
|
super("RATE_LIMITED", "request rate limited, please retry later");
|
|
51438
52902
|
}
|
|
@@ -51465,7 +52929,7 @@ var require_dist = __commonJS({
|
|
|
51465
52929
|
if (new TextEncoder().encode(t).length > 600)
|
|
51466
52930
|
throw new w("Blob key must be a sequence of Unicode characters whose UTF-8 encoding is at most 600 bytes long.");
|
|
51467
52931
|
}
|
|
51468
|
-
function
|
|
52932
|
+
function z2(t) {
|
|
51469
52933
|
if (t === "")
|
|
51470
52934
|
throw new y("Store name must not be empty.");
|
|
51471
52935
|
if (t.includes("/") || t.includes(":"))
|
|
@@ -51553,45 +53017,48 @@ var require_dist = __commonJS({
|
|
|
51553
53017
|
}
|
|
51554
53018
|
};
|
|
51555
53019
|
var ye = new TextEncoder();
|
|
51556
|
-
function
|
|
53020
|
+
function _(t) {
|
|
51557
53021
|
let e = ye.encode(t), r = new ArrayBuffer(e.byteLength), n = new Uint8Array(r);
|
|
51558
53022
|
return n.set(e), n;
|
|
51559
53023
|
}
|
|
51560
|
-
function
|
|
53024
|
+
function G2(t) {
|
|
51561
53025
|
let e = t instanceof Uint8Array ? t : new Uint8Array(t), r = "";
|
|
51562
53026
|
for (let n = 0; n < e.length; n++)
|
|
51563
53027
|
r += e[n].toString(16).padStart(2, "0");
|
|
51564
53028
|
return r;
|
|
51565
53029
|
}
|
|
51566
|
-
async function
|
|
51567
|
-
let r = await crypto.subtle.importKey("raw",
|
|
51568
|
-
return
|
|
53030
|
+
async function H(t, e) {
|
|
53031
|
+
let r = await crypto.subtle.importKey("raw", _(t), { name: "HMAC", hash: "SHA-1" }, false, ["sign"]), n = await crypto.subtle.sign("HMAC", r, _(e));
|
|
53032
|
+
return G2(n);
|
|
51569
53033
|
}
|
|
51570
53034
|
async function pe(t) {
|
|
51571
|
-
let e = await crypto.subtle.digest("SHA-1",
|
|
51572
|
-
return
|
|
53035
|
+
let e = await crypto.subtle.digest("SHA-1", _(t));
|
|
53036
|
+
return G2(e);
|
|
51573
53037
|
}
|
|
51574
|
-
function
|
|
53038
|
+
function $(t) {
|
|
51575
53039
|
return encodeURIComponent(t).replace(/[!'()*]/g, (e) => "%" + e.charCodeAt(0).toString(16).toUpperCase());
|
|
51576
53040
|
}
|
|
51577
|
-
function
|
|
53041
|
+
function P(t) {
|
|
51578
53042
|
try {
|
|
51579
53043
|
return decodeURIComponent(t);
|
|
51580
53044
|
} catch {
|
|
51581
53045
|
return t;
|
|
51582
53046
|
}
|
|
51583
53047
|
}
|
|
51584
|
-
function
|
|
51585
|
-
return t.split("/").map((e) =>
|
|
53048
|
+
function we(t) {
|
|
53049
|
+
return t.split("/").map((e) => P(e)).join("/");
|
|
53050
|
+
}
|
|
53051
|
+
function I(t) {
|
|
53052
|
+
return we(P(t));
|
|
51586
53053
|
}
|
|
51587
53054
|
function W(t) {
|
|
51588
|
-
return t.split("/").map((e) =>
|
|
53055
|
+
return t.split("/").map((e) => $(P(e))).join("/");
|
|
51589
53056
|
}
|
|
51590
|
-
var
|
|
51591
|
-
function
|
|
51592
|
-
return t === "host" || t === "x-cos-security-token" ? false : !!(
|
|
53057
|
+
var Ce = /* @__PURE__ */ new Set(["cache-control", "content-disposition", "content-encoding", "content-length", "content-md5", "content-type", "expect", "expires", "if-match", "if-modified-since", "if-none-match", "if-unmodified-since", "origin", "range", "transfer-encoding"]);
|
|
53058
|
+
function xe(t) {
|
|
53059
|
+
return t === "host" || t === "x-cos-security-token" ? false : !!(Ce.has(t) || t.startsWith("x-cos-"));
|
|
51593
53060
|
}
|
|
51594
|
-
function
|
|
53061
|
+
function X(t) {
|
|
51595
53062
|
if (!t)
|
|
51596
53063
|
return [];
|
|
51597
53064
|
let e = [];
|
|
@@ -51599,27 +53066,27 @@ var require_dist = __commonJS({
|
|
|
51599
53066
|
n != null && e.push([r.toLowerCase(), String(n)]);
|
|
51600
53067
|
return e.sort(([r], [n]) => r < n ? -1 : r > n ? 1 : 0), e;
|
|
51601
53068
|
}
|
|
51602
|
-
function X(t) {
|
|
51603
|
-
return t.map(([e, r]) => \`\${O(e)}=\${O(r)}\`).join("&");
|
|
51604
|
-
}
|
|
51605
53069
|
function Y(t) {
|
|
51606
|
-
return t.map(([e]) =>
|
|
53070
|
+
return t.map(([e, r]) => \`\${$(e)}=\${$(r)}\`).join("&");
|
|
53071
|
+
}
|
|
53072
|
+
function F(t) {
|
|
53073
|
+
return t.map(([e]) => $(e)).join(";");
|
|
51607
53074
|
}
|
|
51608
53075
|
async function V(t) {
|
|
51609
|
-
let e = t.method.toLowerCase(), r = t.pathname.startsWith("/") ? t.pathname : \`/\${t.pathname}\`, n = Math.floor(Date.now() / 1e3), s = n + (t.expireSeconds ?? 3600), i = \`\${n};\${s}\`, o =
|
|
53076
|
+
let e = t.method.toLowerCase(), r = t.pathname.startsWith("/") ? t.pathname : \`/\${t.pathname}\`, n = Math.floor(Date.now() / 1e3), s = n + (t.expireSeconds ?? 3600), i = \`\${n};\${s}\`, o = X(t.headers).filter(([N]) => xe(N)), c = F(o), d = Y(o), u = X(t.query), l = F(u), g = Y(u), p = \`\${e}
|
|
51610
53077
|
\${r}
|
|
51611
53078
|
\${g}
|
|
51612
53079
|
\${d}
|
|
51613
53080
|
\`, oe = \`sha1
|
|
51614
53081
|
\${i}
|
|
51615
53082
|
\${await pe(p)}
|
|
51616
|
-
\`, ie = await
|
|
51617
|
-
for (let [
|
|
51618
|
-
|
|
51619
|
-
return { authorization: ce, signedHeaders:
|
|
53083
|
+
\`, ie = await H(t.secretKey, i), ae = await H(ie, oe), ce = ["q-sign-algorithm=sha1", \`q-ak=\${t.secretId}\`, \`q-sign-time=\${i}\`, \`q-key-time=\${i}\`, \`q-header-list=\${c}\`, \`q-url-param-list=\${l}\`, \`q-signature=\${ae}\`].join("&"), q = {};
|
|
53084
|
+
for (let [N, de] of o)
|
|
53085
|
+
q[N] = de;
|
|
53086
|
+
return { authorization: ce, signedHeaders: q };
|
|
51620
53087
|
}
|
|
51621
53088
|
async function J(t) {
|
|
51622
|
-
let e = new URL(t.domain), r =
|
|
53089
|
+
let e = new URL(t.domain), r = P(t.key), n = \`/\${I(t.key)}\`, s = \`/\${W(r)}\`;
|
|
51623
53090
|
e.pathname = s;
|
|
51624
53091
|
let { authorization: i } = await V({ method: t.method, pathname: n, query: t.query, headers: t.headers, secretId: t.credential.secretId, secretKey: t.credential.secretKey, expireSeconds: t.expireSeconds });
|
|
51625
53092
|
if (t.query)
|
|
@@ -51635,7 +53102,7 @@ var require_dist = __commonJS({
|
|
|
51635
53102
|
return t.credential.sessionToken && e.searchParams.set("x-cos-security-token", t.credential.sessionToken), e.toString();
|
|
51636
53103
|
}
|
|
51637
53104
|
async function S(t) {
|
|
51638
|
-
let e = new URL(t.domain), r = t.key ?
|
|
53105
|
+
let e = new URL(t.domain), r = t.key ? P(t.key) : "", n = t.key ? \`/\${I(t.key)}\` : "/", s = r ? \`/\${W(r)}\` : "/";
|
|
51639
53106
|
if (e.pathname = s, t.query)
|
|
51640
53107
|
for (let [l, g] of Object.entries(t.query))
|
|
51641
53108
|
g != null && e.searchParams.set(l, String(g));
|
|
@@ -51655,9 +53122,9 @@ var require_dist = __commonJS({
|
|
|
51655
53122
|
}
|
|
51656
53123
|
throw u;
|
|
51657
53124
|
}
|
|
51658
|
-
var
|
|
51659
|
-
var
|
|
51660
|
-
var
|
|
53125
|
+
var be = "blob.edgeone.site";
|
|
53126
|
+
var Te = "blob-nocache.edgeone.site";
|
|
53127
|
+
var M = class t {
|
|
51661
53128
|
credentialManager;
|
|
51662
53129
|
bucket = "";
|
|
51663
53130
|
region = "";
|
|
@@ -51667,7 +53134,7 @@ var require_dist = __commonJS({
|
|
|
51667
53134
|
initialized = false;
|
|
51668
53135
|
static buildErrorDetail(e, r, n, s, i) {
|
|
51669
53136
|
let a = n ? \`\${r}/\${n}\` : r, o = i ? \` [request-id: \${i}]\` : "";
|
|
51670
|
-
return \`\${e} \${a} - \${
|
|
53137
|
+
return \`\${e} \${a} - \${Ee(s)}\${o}\`;
|
|
51671
53138
|
}
|
|
51672
53139
|
constructor(e) {
|
|
51673
53140
|
this.credentialManager = e;
|
|
@@ -51693,7 +53160,7 @@ var require_dist = __commonJS({
|
|
|
51693
53160
|
let a = this.computeSubdomain(e);
|
|
51694
53161
|
if (!a)
|
|
51695
53162
|
throw new f(0, "unable to derive tenant subdomain from credential; missing appId/zoneId/projectId or resourcePrefix");
|
|
51696
|
-
this.cachedDomain = \`https://\${a}.\${
|
|
53163
|
+
this.cachedDomain = \`https://\${a}.\${be}\`, this.uncachedDomain = \`https://\${a}.\${Te}\`, this.initialized = true;
|
|
51697
53164
|
}
|
|
51698
53165
|
async resolveDomain(e) {
|
|
51699
53166
|
return await this.ensureInitialized(), e === "strong" ? this.uncachedDomain : this.cachedDomain;
|
|
@@ -51717,14 +53184,14 @@ var require_dist = __commonJS({
|
|
|
51717
53184
|
return await l.arrayBuffer().catch(() => {
|
|
51718
53185
|
}), { etag: "", statusCode: 412 };
|
|
51719
53186
|
if (!l.ok) {
|
|
51720
|
-
let p = await
|
|
51721
|
-
throw new f(l.status, t.buildErrorDetail("PUT", i, o, p || \`status \${l.status}\`,
|
|
53187
|
+
let p = await k(l);
|
|
53188
|
+
throw new f(l.status, t.buildErrorDetail("PUT", i, o, p || \`status \${l.status}\`, R(l)));
|
|
51722
53189
|
}
|
|
51723
53190
|
let g = l.headers.get("etag") || "";
|
|
51724
53191
|
return await l.arrayBuffer().catch(() => {
|
|
51725
53192
|
}), { etag: g, statusCode: l.status };
|
|
51726
53193
|
} catch (l) {
|
|
51727
|
-
throw l instanceof f ? l : new f(0, t.buildErrorDetail("PUT", i, o,
|
|
53194
|
+
throw l instanceof f ? l : new f(0, t.buildErrorDetail("PUT", i, o, A(l)));
|
|
51728
53195
|
}
|
|
51729
53196
|
}
|
|
51730
53197
|
async createPresignedPutUrl(e, r, n) {
|
|
@@ -51741,13 +53208,13 @@ var require_dist = __commonJS({
|
|
|
51741
53208
|
return await o.arrayBuffer().catch(() => {
|
|
51742
53209
|
}), null;
|
|
51743
53210
|
if (!o.ok) {
|
|
51744
|
-
let u = await
|
|
51745
|
-
throw new f(o.status, t.buildErrorDetail("GET", s, a, u || \`status \${o.status}\`,
|
|
53211
|
+
let u = await k(o);
|
|
53212
|
+
throw new f(o.status, t.buildErrorDetail("GET", s, a, u || \`status \${o.status}\`, R(o)));
|
|
51746
53213
|
}
|
|
51747
53214
|
let c = new Uint8Array(await o.arrayBuffer()), d = Z(o.headers);
|
|
51748
53215
|
return { body: c, contentType: d["content-type"], headers: d };
|
|
51749
53216
|
} catch (o) {
|
|
51750
|
-
throw o instanceof f ? o : new f(0, t.buildErrorDetail("GET", s, a,
|
|
53217
|
+
throw o instanceof f ? o : new f(0, t.buildErrorDetail("GET", s, a, A(o)));
|
|
51751
53218
|
}
|
|
51752
53219
|
}
|
|
51753
53220
|
async headObject(e, r, n) {
|
|
@@ -51757,13 +53224,13 @@ var require_dist = __commonJS({
|
|
|
51757
53224
|
if (o.status === 404)
|
|
51758
53225
|
return null;
|
|
51759
53226
|
if (!o.ok) {
|
|
51760
|
-
let d = await
|
|
51761
|
-
throw new f(o.status, t.buildErrorDetail("HEAD", s, a, d || \`status \${o.status}\`,
|
|
53227
|
+
let d = await k(o);
|
|
53228
|
+
throw new f(o.status, t.buildErrorDetail("HEAD", s, a, d || \`status \${o.status}\`, R(o)));
|
|
51762
53229
|
}
|
|
51763
53230
|
let c = Z(o.headers);
|
|
51764
53231
|
return { cacheControl: c["cache-control"], contentType: c["content-type"], etag: c.etag, headers: c };
|
|
51765
53232
|
} catch (o) {
|
|
51766
|
-
throw o instanceof f ? o : new f(0, t.buildErrorDetail("HEAD", s, a,
|
|
53233
|
+
throw o instanceof f ? o : new f(0, t.buildErrorDetail("HEAD", s, a, A(o)));
|
|
51767
53234
|
}
|
|
51768
53235
|
}
|
|
51769
53236
|
async deleteObject(e, r) {
|
|
@@ -51775,10 +53242,10 @@ var require_dist = __commonJS({
|
|
|
51775
53242
|
});
|
|
51776
53243
|
return;
|
|
51777
53244
|
}
|
|
51778
|
-
let o = await
|
|
51779
|
-
throw new f(a.status, t.buildErrorDetail("DELETE", n, i, o || \`status \${a.status}\`,
|
|
53245
|
+
let o = await k(a);
|
|
53246
|
+
throw new f(a.status, t.buildErrorDetail("DELETE", n, i, o || \`status \${a.status}\`, R(a)));
|
|
51780
53247
|
} catch (a) {
|
|
51781
|
-
throw a instanceof f ? a : new f(0, t.buildErrorDetail("DELETE", n, i,
|
|
53248
|
+
throw a instanceof f ? a : new f(0, t.buildErrorDetail("DELETE", n, i, A(a)));
|
|
51782
53249
|
}
|
|
51783
53250
|
}
|
|
51784
53251
|
async listObjects(e, r) {
|
|
@@ -51804,35 +53271,35 @@ var require_dist = __commonJS({
|
|
|
51804
53271
|
return r;
|
|
51805
53272
|
}
|
|
51806
53273
|
async getBucketRaw(e) {
|
|
51807
|
-
let r = await this.resolveDomain(e.consistency), n = await this.resolveCredential(), s = { prefix: e.prefix };
|
|
51808
|
-
e.delimiter && (s.delimiter = e.delimiter), e.marker && (s.marker = e.marker), e.maxKeys && (s["max-keys"] = e.maxKeys);
|
|
53274
|
+
let r = await this.resolveDomain(e.consistency), n = await this.resolveCredential(), s = { prefix: I(e.prefix) };
|
|
53275
|
+
e.delimiter && (s.delimiter = e.delimiter), e.marker && (s.marker = I(e.marker)), e.maxKeys && (s["max-keys"] = e.maxKeys);
|
|
51809
53276
|
try {
|
|
51810
53277
|
let i = await S({ domain: r, method: "GET", query: s, credential: n });
|
|
51811
53278
|
if (!i.ok) {
|
|
51812
|
-
let o = await
|
|
51813
|
-
throw new f(i.status, t.buildErrorDetail("LIST", r, e.prefix, o || \`status \${i.status}\`,
|
|
53279
|
+
let o = await k(i);
|
|
53280
|
+
throw new f(i.status, t.buildErrorDetail("LIST", r, e.prefix, o || \`status \${i.status}\`, R(i)));
|
|
51814
53281
|
}
|
|
51815
53282
|
let a = await i.text();
|
|
51816
|
-
return
|
|
53283
|
+
return Se(a);
|
|
51817
53284
|
} catch (i) {
|
|
51818
|
-
throw i instanceof f ? i : new f(0, t.buildErrorDetail("LIST", r, e.prefix,
|
|
53285
|
+
throw i instanceof f ? i : new f(0, t.buildErrorDetail("LIST", r, e.prefix, A(i)));
|
|
51819
53286
|
}
|
|
51820
53287
|
}
|
|
51821
53288
|
};
|
|
51822
|
-
function
|
|
53289
|
+
function Ee(t) {
|
|
51823
53290
|
return t.replace(/[a-zA-Z0-9\\-]+\\.cos\\.[a-zA-Z0-9\\-.]+\\.myqcloud\\.com/gi, "[cos-origin]").replace(/[a-zA-Z0-9\\-]+\\.cos\\.[a-zA-Z0-9\\-.]+\\.tencentcos\\.cn/gi, "[cos-origin]");
|
|
51824
53291
|
}
|
|
51825
|
-
async function
|
|
53292
|
+
async function k(t) {
|
|
51826
53293
|
try {
|
|
51827
53294
|
return await t.text();
|
|
51828
53295
|
} catch {
|
|
51829
53296
|
return "";
|
|
51830
53297
|
}
|
|
51831
53298
|
}
|
|
51832
|
-
function
|
|
53299
|
+
function R(t) {
|
|
51833
53300
|
return t.headers.get("x-cos-request-id") || t.headers.get("x-eo-log-id") || void 0;
|
|
51834
53301
|
}
|
|
51835
|
-
function
|
|
53302
|
+
function A(t) {
|
|
51836
53303
|
let e = t, r = e.message || String(t), n = e.cause;
|
|
51837
53304
|
if (n) {
|
|
51838
53305
|
let s = n.message || n.code || "";
|
|
@@ -51846,43 +53313,43 @@ var require_dist = __commonJS({
|
|
|
51846
53313
|
e[n.toLowerCase()] = r;
|
|
51847
53314
|
}), e;
|
|
51848
53315
|
}
|
|
51849
|
-
function
|
|
53316
|
+
function Se(t) {
|
|
51850
53317
|
let e = [], r = /<Contents>([\\s\\S]*?)<\\/Contents>/g, n;
|
|
51851
53318
|
for (; (n = r.exec(t)) !== null; ) {
|
|
51852
|
-
let d = n[1], u =
|
|
51853
|
-
u !== null && e.push({ key:
|
|
53319
|
+
let d = n[1], u = v(d, "Key"), l = v(d, "ETag");
|
|
53320
|
+
u !== null && e.push({ key: L(u), etag: l || "" });
|
|
51854
53321
|
}
|
|
51855
53322
|
let s = [], i = /<CommonPrefixes>([\\s\\S]*?)<\\/CommonPrefixes>/g;
|
|
51856
53323
|
for (; (n = i.exec(t)) !== null; ) {
|
|
51857
|
-
let d = n[1], u =
|
|
51858
|
-
u !== null && s.push(
|
|
53324
|
+
let d = n[1], u = v(d, "Prefix");
|
|
53325
|
+
u !== null && s.push(L(u));
|
|
51859
53326
|
}
|
|
51860
|
-
let o =
|
|
51861
|
-
return { contents: e, commonPrefixes: s, isTruncated: o, nextMarker:
|
|
53327
|
+
let o = v(t, "IsTruncated") === "true", c = v(t, "NextMarker") || "";
|
|
53328
|
+
return { contents: e, commonPrefixes: s, isTruncated: o, nextMarker: L(c) };
|
|
51862
53329
|
}
|
|
51863
|
-
function
|
|
53330
|
+
function v(t, e) {
|
|
51864
53331
|
let n = new RegExp(\`<\${e}>([\\\\s\\\\S]*?)<\\\\/\${e}>\`).exec(t);
|
|
51865
53332
|
return n ? n[1] : null;
|
|
51866
53333
|
}
|
|
51867
|
-
function
|
|
53334
|
+
function L(t) {
|
|
51868
53335
|
return t.replace(/</g, "<").replace(/>/g, ">").replace(/"/g, '"').replace(/'/g, "'").replace(/&/g, "&");
|
|
51869
53336
|
}
|
|
51870
|
-
var
|
|
51871
|
-
async function
|
|
53337
|
+
var Pe = "X-RateLimit-Reset";
|
|
53338
|
+
async function B(t, e, r = 2) {
|
|
51872
53339
|
var _a3, _b;
|
|
51873
53340
|
(_b = (_a3 = e.signal) == null ? void 0 : _a3.throwIfAborted) == null ? void 0 : _b.call(_a3);
|
|
51874
53341
|
try {
|
|
51875
53342
|
let n = await fetch(t, e);
|
|
51876
53343
|
if (r > 0 && (n.status === 429 || n.status >= 500)) {
|
|
51877
|
-
let s = Q(n.headers.get(
|
|
51878
|
-
return await ee(s, e.signal),
|
|
53344
|
+
let s = Q(n.headers.get(Pe));
|
|
53345
|
+
return await ee(s, e.signal), B(t, e, r - 1);
|
|
51879
53346
|
}
|
|
51880
53347
|
return n;
|
|
51881
53348
|
} catch (n) {
|
|
51882
53349
|
if (r === 0 || n instanceof DOMException && n.name === "AbortError")
|
|
51883
53350
|
throw n;
|
|
51884
53351
|
let s = Q();
|
|
51885
|
-
return await ee(s, e.signal),
|
|
53352
|
+
return await ee(s, e.signal), B(t, e, r - 1);
|
|
51886
53353
|
}
|
|
51887
53354
|
}
|
|
51888
53355
|
function Q(t) {
|
|
@@ -51900,14 +53367,14 @@ var require_dist = __commonJS({
|
|
|
51900
53367
|
e == null ? void 0 : e.addEventListener("abort", i, { once: true });
|
|
51901
53368
|
});
|
|
51902
53369
|
}
|
|
51903
|
-
var
|
|
53370
|
+
var Ie = "prod";
|
|
51904
53371
|
function te() {
|
|
51905
53372
|
let t = typeof process < "u" ? process.env.PAGES_BLOB_STS_ENV : void 0;
|
|
51906
|
-
return t === "test" || t === "prod" ? t :
|
|
53373
|
+
return t === "test" || t === "prod" ? t : Ie;
|
|
51907
53374
|
}
|
|
51908
|
-
var
|
|
51909
|
-
var
|
|
51910
|
-
var
|
|
53375
|
+
var ke = 300;
|
|
53376
|
+
var Re = "https://blob-sts.edgeone.site/";
|
|
53377
|
+
var D = class {
|
|
51911
53378
|
authToken;
|
|
51912
53379
|
projectId;
|
|
51913
53380
|
cached = null;
|
|
@@ -51925,16 +53392,16 @@ var require_dist = __commonJS({
|
|
|
51925
53392
|
}
|
|
51926
53393
|
isExpired(e) {
|
|
51927
53394
|
let r = Math.floor(Date.now() / 1e3);
|
|
51928
|
-
return e.expiredTime - r <
|
|
53395
|
+
return e.expiredTime - r < ke;
|
|
51929
53396
|
}
|
|
51930
53397
|
async fetchCredential() {
|
|
51931
53398
|
for (let n = 1; n <= 3; n++) {
|
|
51932
53399
|
let s = new AbortController(), i = setTimeout(() => s.abort(), 1e4), a;
|
|
51933
53400
|
try {
|
|
51934
|
-
a = await
|
|
53401
|
+
a = await B(Re, { method: "POST", headers: { "Content-Type": "application/json", Authorization: \`Bearer \${this.authToken}\`, "X-Env": te() }, body: JSON.stringify(this.projectId ? { ProjectId: this.projectId } : {}), signal: s.signal });
|
|
51935
53402
|
} catch (d) {
|
|
51936
53403
|
if (n < 3) {
|
|
51937
|
-
await
|
|
53404
|
+
await K(500 * n);
|
|
51938
53405
|
continue;
|
|
51939
53406
|
}
|
|
51940
53407
|
throw new m(\`failed to obtain STS credential: \${d.message || "timeout"}\`);
|
|
@@ -51947,7 +53414,7 @@ var require_dist = __commonJS({
|
|
|
51947
53414
|
throw new m("rate limited, please retry later");
|
|
51948
53415
|
if (!a.ok) {
|
|
51949
53416
|
if (a.status >= 500 && n < 3) {
|
|
51950
|
-
await
|
|
53417
|
+
await K(500 * n);
|
|
51951
53418
|
continue;
|
|
51952
53419
|
}
|
|
51953
53420
|
let d = await a.text().catch(() => "unknown error");
|
|
@@ -51967,7 +53434,7 @@ var require_dist = __commonJS({
|
|
|
51967
53434
|
throw new m(\`credential exchange failed (code=\${o.code}): \${d}\`);
|
|
51968
53435
|
}
|
|
51969
53436
|
if (n < 3) {
|
|
51970
|
-
await
|
|
53437
|
+
await K(500 * n);
|
|
51971
53438
|
continue;
|
|
51972
53439
|
}
|
|
51973
53440
|
throw new m("invalid STS credential response");
|
|
@@ -51975,12 +53442,12 @@ var require_dist = __commonJS({
|
|
|
51975
53442
|
throw new m("invalid STS credential response");
|
|
51976
53443
|
}
|
|
51977
53444
|
};
|
|
51978
|
-
function
|
|
53445
|
+
function K(t) {
|
|
51979
53446
|
return new Promise((e) => setTimeout(e, t));
|
|
51980
53447
|
}
|
|
51981
|
-
var
|
|
53448
|
+
var Ae = "{{PAGES_BLOB_DEPLOY_CREDENTIAL}}";
|
|
51982
53449
|
function re() {
|
|
51983
|
-
let t = {}, e =
|
|
53450
|
+
let t = {}, e = ve();
|
|
51984
53451
|
if (e)
|
|
51985
53452
|
t.deployCredential = e;
|
|
51986
53453
|
else {
|
|
@@ -51990,8 +53457,8 @@ var require_dist = __commonJS({
|
|
|
51990
53457
|
let r = ne("PAGES_PROJECT_ID");
|
|
51991
53458
|
return r && (t.projectId = r), t;
|
|
51992
53459
|
}
|
|
51993
|
-
function
|
|
51994
|
-
let t =
|
|
53460
|
+
function ve() {
|
|
53461
|
+
let t = Ae;
|
|
51995
53462
|
if (!(t.startsWith("{{") && t.endsWith("}}")))
|
|
51996
53463
|
return t || void 0;
|
|
51997
53464
|
}
|
|
@@ -51999,15 +53466,15 @@ var require_dist = __commonJS({
|
|
|
51999
53466
|
if (typeof process < "u" && process.env)
|
|
52000
53467
|
return process.env[t];
|
|
52001
53468
|
}
|
|
52002
|
-
function
|
|
53469
|
+
function Me(t) {
|
|
52003
53470
|
let e = typeof t == "string" ? t : t.name;
|
|
52004
|
-
|
|
52005
|
-
let r = se(typeof t == "string" ? void 0 : t), n = new
|
|
53471
|
+
z2(e);
|
|
53472
|
+
let r = se(typeof t == "string" ? void 0 : t), n = new D(r.authToken, r.projectId), s = new M(n);
|
|
52006
53473
|
return new E(s, e, r.consistency ?? "eventual");
|
|
52007
53474
|
}
|
|
52008
|
-
async function
|
|
52009
|
-
let e = se(t ? { name: "__list__", projectId: t.projectId, token: t.token, consistency: t.consistency } : void 0), r = new
|
|
52010
|
-
return { stores: (await new
|
|
53475
|
+
async function De(t) {
|
|
53476
|
+
let e = se(t ? { name: "__list__", projectId: t.projectId, token: t.token, consistency: t.consistency } : void 0), r = new D(e.authToken, e.projectId);
|
|
53477
|
+
return { stores: (await new M(r).listStores(e.consistency)).map((i) => ({ name: i })) };
|
|
52011
53478
|
}
|
|
52012
53479
|
function se(t) {
|
|
52013
53480
|
let e = re(), r = (t == null ? void 0 : t.token) || e.deployCredential, n = (t == null ? void 0 : t.projectId) || e.projectId;
|
|
@@ -64065,6 +65532,9 @@ var LANGGRAPH_STORE_PREFIX = "langgraph_store";
|
|
|
64065
65532
|
var LANGGRAPH_STORE_KEY_SEPARATOR = "__key__";
|
|
64066
65533
|
var LANGGRAPH_SERDE_VERSION = 1;
|
|
64067
65534
|
var CLAUDE_SESSION_PREFIX = "claude_sessions";
|
|
65535
|
+
var CLAUDE_SESSION_MAPPING_PREFIX = "claude_session_mapping";
|
|
65536
|
+
var STATE_PREFIX = "state";
|
|
65537
|
+
var MAX_STATE_KEY_LENGTH = 256;
|
|
64068
65538
|
var SESSION_METADATA_MARKER = { agent_sdk_session: true };
|
|
64069
65539
|
var VALID_ROLES = /* @__PURE__ */ new Set([
|
|
64070
65540
|
"user",
|
|
@@ -64111,6 +65581,15 @@ var MemoryStorageError = class extends Error {
|
|
|
64111
65581
|
this.cause = cause;
|
|
64112
65582
|
}
|
|
64113
65583
|
};
|
|
65584
|
+
var MemoryCorruptError = class extends Error {
|
|
65585
|
+
code = "MemoryCorruptError";
|
|
65586
|
+
cause;
|
|
65587
|
+
constructor(message, cause) {
|
|
65588
|
+
super(message);
|
|
65589
|
+
this.name = "MemoryCorruptError";
|
|
65590
|
+
this.cause = cause;
|
|
65591
|
+
}
|
|
65592
|
+
};
|
|
64114
65593
|
var dynamicImport = new Function(
|
|
64115
65594
|
"specifier",
|
|
64116
65595
|
"return import(specifier);"
|
|
@@ -64118,7 +65597,7 @@ var dynamicImport = new Function(
|
|
|
64118
65597
|
var langchainLoadPromise;
|
|
64119
65598
|
var langchainMessagesPromise;
|
|
64120
65599
|
function isMemoryError(error51) {
|
|
64121
|
-
return error51 instanceof MemoryValidationError || error51 instanceof MemoryNotFoundError || error51 instanceof MemoryQuotaExceededError || error51 instanceof MemoryStorageError;
|
|
65600
|
+
return error51 instanceof MemoryValidationError || error51 instanceof MemoryNotFoundError || error51 instanceof MemoryQuotaExceededError || error51 instanceof MemoryStorageError || error51 instanceof MemoryCorruptError;
|
|
64122
65601
|
}
|
|
64123
65602
|
async function wrapStorage(operation) {
|
|
64124
65603
|
try {
|
|
@@ -64286,10 +65765,17 @@ async function reviveLangGraphJsonValue(value) {
|
|
|
64286
65765
|
return revived;
|
|
64287
65766
|
}
|
|
64288
65767
|
async function deserializeLangGraphJson(value) {
|
|
64289
|
-
|
|
64290
|
-
|
|
65768
|
+
try {
|
|
65769
|
+
if (isLangGraphSerializedJson(value)) {
|
|
65770
|
+
return reviveLangGraphJsonValue(JSON.parse(value.data));
|
|
65771
|
+
}
|
|
65772
|
+
return reviveLangGraphJsonValue(value);
|
|
65773
|
+
} catch (error51) {
|
|
65774
|
+
throw new MemoryCorruptError(
|
|
65775
|
+
"LangGraph persisted state is corrupt or incompatible.",
|
|
65776
|
+
error51
|
|
65777
|
+
);
|
|
64291
65778
|
}
|
|
64292
|
-
return reviveLangGraphJsonValue(value);
|
|
64293
65779
|
}
|
|
64294
65780
|
function normalizeStoreLimit(value, fallback) {
|
|
64295
65781
|
if (typeof value !== "number" || !Number.isFinite(value)) {
|
|
@@ -64401,6 +65887,115 @@ function validateMessageId(messageId) {
|
|
|
64401
65887
|
throw new MemoryValidationError("messageId is required.");
|
|
64402
65888
|
}
|
|
64403
65889
|
}
|
|
65890
|
+
function validateStateKey(key) {
|
|
65891
|
+
if (typeof key !== "string" || key.length === 0) {
|
|
65892
|
+
throw new MemoryValidationError("state key is required.");
|
|
65893
|
+
}
|
|
65894
|
+
if (key.length > MAX_STATE_KEY_LENGTH) {
|
|
65895
|
+
throw new MemoryValidationError(
|
|
65896
|
+
\`state key must be at most \${MAX_STATE_KEY_LENGTH} characters.\`
|
|
65897
|
+
);
|
|
65898
|
+
}
|
|
65899
|
+
}
|
|
65900
|
+
function assertStateSerializable(value, path2 = "state value", seen = /* @__PURE__ */ new Set()) {
|
|
65901
|
+
if (value === null || typeof value === "string" || typeof value === "boolean") {
|
|
65902
|
+
return;
|
|
65903
|
+
}
|
|
65904
|
+
if (typeof value === "number") {
|
|
65905
|
+
if (Number.isFinite(value))
|
|
65906
|
+
return;
|
|
65907
|
+
throw new MemoryValidationError(\`\${path2} must contain only JSON values.\`);
|
|
65908
|
+
}
|
|
65909
|
+
if (value === void 0 || typeof value === "function" || typeof value === "symbol" || typeof value === "bigint") {
|
|
65910
|
+
throw new MemoryValidationError(\`\${path2} must be JSON serializable.\`);
|
|
65911
|
+
}
|
|
65912
|
+
if (typeof value !== "object") {
|
|
65913
|
+
throw new MemoryValidationError(\`\${path2} must be JSON serializable.\`);
|
|
65914
|
+
}
|
|
65915
|
+
if (seen.has(value)) {
|
|
65916
|
+
throw new MemoryValidationError(\`\${path2} must not contain circular references.\`);
|
|
65917
|
+
}
|
|
65918
|
+
seen.add(value);
|
|
65919
|
+
if (Array.isArray(value)) {
|
|
65920
|
+
value.forEach((item, index) => assertStateSerializable(item, \`\${path2}[\${index}]\`, seen));
|
|
65921
|
+
} else if (isPlainObject(value)) {
|
|
65922
|
+
for (const [key, item] of Object.entries(value)) {
|
|
65923
|
+
assertStateSerializable(item, \`\${path2}.\${key}\`, seen);
|
|
65924
|
+
}
|
|
65925
|
+
} else {
|
|
65926
|
+
throw new MemoryValidationError(\`\${path2} must contain only JSON values.\`);
|
|
65927
|
+
}
|
|
65928
|
+
seen.delete(value);
|
|
65929
|
+
}
|
|
65930
|
+
function stateConversationPrefix(conversationId) {
|
|
65931
|
+
return \`\${STATE_PREFIX}/\${encodeKeySegment(conversationId)}/\`;
|
|
65932
|
+
}
|
|
65933
|
+
function createAgentStateStore(store, boundConversationId) {
|
|
65934
|
+
const requireConversation = () => {
|
|
65935
|
+
if (!boundConversationId) {
|
|
65936
|
+
throw new MemoryValidationError(
|
|
65937
|
+
"State operations require a bound conversationId."
|
|
65938
|
+
);
|
|
65939
|
+
}
|
|
65940
|
+
validateConversationId(boundConversationId);
|
|
65941
|
+
return boundConversationId;
|
|
65942
|
+
};
|
|
65943
|
+
return {
|
|
65944
|
+
async get(key) {
|
|
65945
|
+
validateStateKey(key);
|
|
65946
|
+
const conversationId = requireConversation();
|
|
65947
|
+
return wrapStorage(async () => {
|
|
65948
|
+
const raw = await store.get(
|
|
65949
|
+
\`\${stateConversationPrefix(conversationId)}\${encodeKeySegment(key)}\`,
|
|
65950
|
+
{ consistency: "strong" }
|
|
65951
|
+
);
|
|
65952
|
+
if (raw === null)
|
|
65953
|
+
return null;
|
|
65954
|
+
if (typeof raw !== "string") {
|
|
65955
|
+
throw new MemoryStorageError("Stored state value is not valid JSON text.");
|
|
65956
|
+
}
|
|
65957
|
+
try {
|
|
65958
|
+
return JSON.parse(raw);
|
|
65959
|
+
} catch (error51) {
|
|
65960
|
+
throw new MemoryStorageError("Stored state value is invalid JSON.", error51);
|
|
65961
|
+
}
|
|
65962
|
+
});
|
|
65963
|
+
},
|
|
65964
|
+
async set(key, value) {
|
|
65965
|
+
validateStateKey(key);
|
|
65966
|
+
const conversationId = requireConversation();
|
|
65967
|
+
assertStateSerializable(value);
|
|
65968
|
+
let serialized;
|
|
65969
|
+
try {
|
|
65970
|
+
serialized = JSON.stringify(value);
|
|
65971
|
+
} catch (error51) {
|
|
65972
|
+
throw new MemoryValidationError(\`state value must be JSON serializable: \${String(error51)}\`);
|
|
65973
|
+
}
|
|
65974
|
+
await wrapStorage(
|
|
65975
|
+
() => store.set(
|
|
65976
|
+
\`\${stateConversationPrefix(conversationId)}\${encodeKeySegment(key)}\`,
|
|
65977
|
+
serialized
|
|
65978
|
+
)
|
|
65979
|
+
);
|
|
65980
|
+
},
|
|
65981
|
+
async delete(key) {
|
|
65982
|
+
validateStateKey(key);
|
|
65983
|
+
const conversationId = requireConversation();
|
|
65984
|
+
await wrapStorage(
|
|
65985
|
+
() => store.delete(
|
|
65986
|
+
\`\${stateConversationPrefix(conversationId)}\${encodeKeySegment(key)}\`
|
|
65987
|
+
)
|
|
65988
|
+
);
|
|
65989
|
+
}
|
|
65990
|
+
};
|
|
65991
|
+
}
|
|
65992
|
+
async function deleteAgentState(store, conversationId) {
|
|
65993
|
+
const listed = await store.list({
|
|
65994
|
+
prefix: stateConversationPrefix(conversationId),
|
|
65995
|
+
consistency: "strong"
|
|
65996
|
+
});
|
|
65997
|
+
await Promise.all(listed.keys.map((key) => store.delete(key)));
|
|
65998
|
+
}
|
|
64404
65999
|
function validateUserId(userId) {
|
|
64405
66000
|
if (userId === void 0) {
|
|
64406
66001
|
return;
|
|
@@ -64533,6 +66128,9 @@ function cursorSortKey(cursor) {
|
|
|
64533
66128
|
const payload = decodeConversationCursor(cursor);
|
|
64534
66129
|
return \`\${reverseTimestamp(payload.lastMessageAt)}_\${encodeKeySegment(payload.conversationId)}\`;
|
|
64535
66130
|
}
|
|
66131
|
+
function cursorListCursor(cursor) {
|
|
66132
|
+
return cursor ? decodeConversationCursor(cursor).listCursor : void 0;
|
|
66133
|
+
}
|
|
64536
66134
|
function indexSortKey(key, prefix) {
|
|
64537
66135
|
return key.slice(prefix.length);
|
|
64538
66136
|
}
|
|
@@ -64700,6 +66298,51 @@ function claudeSessionBase(projectKey, sessionId) {
|
|
|
64700
66298
|
function claudeProjectPrefix(projectKey) {
|
|
64701
66299
|
return \`\${CLAUDE_SESSION_PREFIX}/\${encodeKeySegment(projectKey)}/\`;
|
|
64702
66300
|
}
|
|
66301
|
+
function claudeSessionMappingKey(conversationId) {
|
|
66302
|
+
return \`\${CLAUDE_SESSION_MAPPING_PREFIX}/\${encodeKeySegment(conversationId)}\`;
|
|
66303
|
+
}
|
|
66304
|
+
function normalizeClaudeUuid(value) {
|
|
66305
|
+
const trimmed = value.trim().toLowerCase();
|
|
66306
|
+
return /^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$/.test(trimmed) ? trimmed : null;
|
|
66307
|
+
}
|
|
66308
|
+
function claudeSessionIdFromKey(key) {
|
|
66309
|
+
const prefix = \`\${CLAUDE_SESSION_PREFIX}/\`;
|
|
66310
|
+
if (!key.startsWith(prefix)) {
|
|
66311
|
+
return null;
|
|
66312
|
+
}
|
|
66313
|
+
const segments = key.slice(prefix.length).split("/");
|
|
66314
|
+
return segments.length >= 3 && segments[1] ? decodeKeySegment(segments[1]) : null;
|
|
66315
|
+
}
|
|
66316
|
+
async function deleteClaudeSessionForConversation(store, conversationId) {
|
|
66317
|
+
const mappingKey = claudeSessionMappingKey(conversationId);
|
|
66318
|
+
const mapping = await store.get(mappingKey, {
|
|
66319
|
+
consistency: "strong"
|
|
66320
|
+
});
|
|
66321
|
+
let sessionId = null;
|
|
66322
|
+
if (typeof mapping === "string") {
|
|
66323
|
+
sessionId = mapping;
|
|
66324
|
+
} else if (isPlainObject(mapping) && typeof mapping.sessionId === "string") {
|
|
66325
|
+
sessionId = mapping.sessionId;
|
|
66326
|
+
} else if (isPlainObject(mapping) && typeof mapping.session_id === "string") {
|
|
66327
|
+
sessionId = mapping.session_id;
|
|
66328
|
+
}
|
|
66329
|
+
if (!sessionId) {
|
|
66330
|
+
sessionId = normalizeClaudeUuid(conversationId);
|
|
66331
|
+
}
|
|
66332
|
+
await store.delete(mappingKey);
|
|
66333
|
+
if (!sessionId) {
|
|
66334
|
+
return;
|
|
66335
|
+
}
|
|
66336
|
+
const listed = await store.list({
|
|
66337
|
+
prefix: \`\${CLAUDE_SESSION_PREFIX}/\`,
|
|
66338
|
+
consistency: "strong"
|
|
66339
|
+
});
|
|
66340
|
+
for (const key of listed.keys) {
|
|
66341
|
+
if (claudeSessionIdFromKey(key) === sessionId) {
|
|
66342
|
+
await store.delete(key);
|
|
66343
|
+
}
|
|
66344
|
+
}
|
|
66345
|
+
}
|
|
64703
66346
|
function claudePartsPrefix(key) {
|
|
64704
66347
|
let base = claudeSessionBase(key.projectKey, key.sessionId).slice(0, -1);
|
|
64705
66348
|
if (key.subpath) {
|
|
@@ -64737,7 +66380,9 @@ function createClaudeSessionStore(store) {
|
|
|
64737
66380
|
consistency: "strong"
|
|
64738
66381
|
});
|
|
64739
66382
|
if (typeof raw !== "string") {
|
|
64740
|
-
|
|
66383
|
+
throw new MemoryCorruptError(
|
|
66384
|
+
\`Claude session part '\${partKey}' is not valid JSONL text.\`
|
|
66385
|
+
);
|
|
64741
66386
|
}
|
|
64742
66387
|
for (const line of raw.split("\\n")) {
|
|
64743
66388
|
const trimmed = line.trim();
|
|
@@ -64746,7 +66391,11 @@ function createClaudeSessionStore(store) {
|
|
|
64746
66391
|
}
|
|
64747
66392
|
try {
|
|
64748
66393
|
entries.push(JSON.parse(trimmed));
|
|
64749
|
-
} catch {
|
|
66394
|
+
} catch (error51) {
|
|
66395
|
+
throw new MemoryCorruptError(
|
|
66396
|
+
\`Claude session part '\${partKey}' contains malformed JSONL.\`,
|
|
66397
|
+
error51
|
|
66398
|
+
);
|
|
64750
66399
|
}
|
|
64751
66400
|
}
|
|
64752
66401
|
}
|
|
@@ -64872,8 +66521,70 @@ async function listConversationsByUser(store, userId, options) {
|
|
|
64872
66521
|
});
|
|
64873
66522
|
}
|
|
64874
66523
|
async function listConversationsFromIndex(store, options) {
|
|
66524
|
+
if (!options.before) {
|
|
66525
|
+
const fast = await listConversationsFromIndexFast(store, options);
|
|
66526
|
+
if (fast)
|
|
66527
|
+
return fast;
|
|
66528
|
+
}
|
|
64875
66529
|
return listConversationsFromIndexFull(store, options);
|
|
64876
66530
|
}
|
|
66531
|
+
async function listConversationsFromIndexFast(store, options) {
|
|
66532
|
+
var _a3, _b;
|
|
66533
|
+
let listCursor = cursorListCursor(options.after);
|
|
66534
|
+
if (options.after && !listCursor) {
|
|
66535
|
+
return null;
|
|
66536
|
+
}
|
|
66537
|
+
const pageItems = [];
|
|
66538
|
+
const seen = /* @__PURE__ */ new Set();
|
|
66539
|
+
let lastCursor;
|
|
66540
|
+
while (pageItems.length < options.limit) {
|
|
66541
|
+
const listed = await store.list({
|
|
66542
|
+
prefix: options.prefix,
|
|
66543
|
+
cursor: listCursor,
|
|
66544
|
+
limit: options.limit - pageItems.length,
|
|
66545
|
+
paginate: false,
|
|
66546
|
+
consistency: "strong"
|
|
66547
|
+
});
|
|
66548
|
+
lastCursor = listed.cursor;
|
|
66549
|
+
if (!listed.keys.length) {
|
|
66550
|
+
break;
|
|
66551
|
+
}
|
|
66552
|
+
const indexItems = [...listed.keys].sort(
|
|
66553
|
+
(left, right) => options.order === "desc" ? left.localeCompare(right) : right.localeCompare(left)
|
|
66554
|
+
).map((key) => {
|
|
66555
|
+
const conversationId = options.conversationIdFromKey(key);
|
|
66556
|
+
if (!conversationId || seen.has(conversationId)) {
|
|
66557
|
+
return null;
|
|
66558
|
+
}
|
|
66559
|
+
seen.add(conversationId);
|
|
66560
|
+
return {
|
|
66561
|
+
key,
|
|
66562
|
+
sortKey: indexSortKey(key, options.prefix),
|
|
66563
|
+
conversationId
|
|
66564
|
+
};
|
|
66565
|
+
}).filter((item) => item !== null);
|
|
66566
|
+
const metas = await Promise.all(
|
|
66567
|
+
indexItems.map((item) => readConversationMeta(store, item.conversationId))
|
|
66568
|
+
);
|
|
66569
|
+
for (let i = 0; i < indexItems.length; i++) {
|
|
66570
|
+
const meta3 = metas[i];
|
|
66571
|
+
if (meta3) {
|
|
66572
|
+
pageItems.push({ indexItem: indexItems[i], meta: meta3 });
|
|
66573
|
+
}
|
|
66574
|
+
}
|
|
66575
|
+
if (!listed.cursor) {
|
|
66576
|
+
break;
|
|
66577
|
+
}
|
|
66578
|
+
listCursor = listed.cursor;
|
|
66579
|
+
}
|
|
66580
|
+
const firstItem = (_a3 = pageItems[0]) == null ? void 0 : _a3.indexItem;
|
|
66581
|
+
const lastItem = (_b = pageItems[pageItems.length - 1]) == null ? void 0 : _b.indexItem;
|
|
66582
|
+
return {
|
|
66583
|
+
items: pageItems.map((item) => item.meta),
|
|
66584
|
+
nextCursor: lastItem ? encodeConversationCursorFromIndexItem(lastItem, lastCursor) : void 0,
|
|
66585
|
+
previousCursor: firstItem ? encodeConversationCursorFromIndexItem(firstItem) : void 0
|
|
66586
|
+
};
|
|
66587
|
+
}
|
|
64877
66588
|
async function listConversationsFromIndexFull(store, options) {
|
|
64878
66589
|
var _a3, _b;
|
|
64879
66590
|
const afterSortKey = options.after ? cursorSortKey(options.after) : void 0;
|
|
@@ -65310,6 +67021,7 @@ function createAgentMemory(store, options = {}) {
|
|
|
65310
67021
|
const maxMessagesPerConversation = options.maxMessagesPerConversation ?? DEFAULT_MAX_MESSAGES_PER_CONVERSATION;
|
|
65311
67022
|
const langgraphCheckpointer = createLangGraphCheckpointer(store);
|
|
65312
67023
|
const langgraphStore = createLangGraphStore(store);
|
|
67024
|
+
const state = createAgentStateStore(store, options.conversationId);
|
|
65313
67025
|
let claudeStoreCache = null;
|
|
65314
67026
|
let lastMessageCreatedAt = 0;
|
|
65315
67027
|
const appendMessagesInternal = async (inputs) => {
|
|
@@ -65595,8 +67307,13 @@ function createAgentMemory(store, options = {}) {
|
|
|
65595
67307
|
listMessageKeys(store, input.conversationId)
|
|
65596
67308
|
]);
|
|
65597
67309
|
if (!meta3) {
|
|
67310
|
+
if (options.conversationId === input.conversationId) {
|
|
67311
|
+
await deleteAgentState(store, input.conversationId);
|
|
67312
|
+
}
|
|
67313
|
+
await deleteClaudeSessionForConversation(store, input.conversationId);
|
|
67314
|
+
await langgraphCheckpointer.deleteThread(input.conversationId);
|
|
65598
67315
|
throw new MemoryNotFoundError(
|
|
65599
|
-
"Conversation not found by
|
|
67316
|
+
"Conversation not found by deleteConversation."
|
|
65600
67317
|
);
|
|
65601
67318
|
}
|
|
65602
67319
|
const deleteOps = [];
|
|
@@ -65613,6 +67330,11 @@ function createAgentMemory(store, options = {}) {
|
|
|
65613
67330
|
deleteOps.push(store.delete(metaKey(input.conversationId)));
|
|
65614
67331
|
deleteOps.push(store.delete(conversationIndexKey(meta3)));
|
|
65615
67332
|
await Promise.all(deleteOps);
|
|
67333
|
+
if (options.conversationId === input.conversationId) {
|
|
67334
|
+
await deleteAgentState(store, input.conversationId);
|
|
67335
|
+
}
|
|
67336
|
+
await deleteClaudeSessionForConversation(store, input.conversationId);
|
|
67337
|
+
await langgraphCheckpointer.deleteThread(input.conversationId);
|
|
65616
67338
|
});
|
|
65617
67339
|
},
|
|
65618
67340
|
async updateConversation(input) {
|
|
@@ -65648,14 +67370,49 @@ function createAgentMemory(store, options = {}) {
|
|
|
65648
67370
|
}));
|
|
65649
67371
|
},
|
|
65650
67372
|
openaiSession(sessionId, sessionOptions = {}) {
|
|
67373
|
+
const boundSessionId = sessionId ?? options.conversationId;
|
|
67374
|
+
if (!boundSessionId) {
|
|
67375
|
+
throw new MemoryValidationError(
|
|
67376
|
+
"openaiSession requires a sessionId or bound conversationId."
|
|
67377
|
+
);
|
|
67378
|
+
}
|
|
65651
67379
|
const maxItems = sessionOptions.maxItems ?? MAX_LIMIT;
|
|
65652
67380
|
return createOpenAISession(
|
|
65653
67381
|
memory,
|
|
65654
|
-
|
|
67382
|
+
boundSessionId,
|
|
65655
67383
|
maxItems,
|
|
65656
67384
|
appendMessagesInternal
|
|
65657
67385
|
);
|
|
65658
67386
|
},
|
|
67387
|
+
async claudeSessionBinding(conversationId) {
|
|
67388
|
+
const resolvedConversationId = conversationId ?? options.conversationId;
|
|
67389
|
+
if (!resolvedConversationId) {
|
|
67390
|
+
throw new MemoryValidationError(
|
|
67391
|
+
"claudeSessionBinding requires a conversationId or bound conversationId."
|
|
67392
|
+
);
|
|
67393
|
+
}
|
|
67394
|
+
validateConversationId(resolvedConversationId);
|
|
67395
|
+
return wrapStorage(async () => {
|
|
67396
|
+
const mappingKey = claudeSessionMappingKey(resolvedConversationId);
|
|
67397
|
+
const existing = await store.get(
|
|
67398
|
+
mappingKey,
|
|
67399
|
+
{ consistency: "strong" }
|
|
67400
|
+
);
|
|
67401
|
+
if (typeof existing === "string" && existing) {
|
|
67402
|
+
return existing;
|
|
67403
|
+
}
|
|
67404
|
+
if (isPlainObject(existing) && (typeof existing.sessionId === "string" || typeof existing.session_id === "string") && (existing.sessionId || existing.session_id)) {
|
|
67405
|
+
return String(existing.sessionId || existing.session_id);
|
|
67406
|
+
}
|
|
67407
|
+
const sessionId = normalizeClaudeUuid(resolvedConversationId) ?? randomUUID();
|
|
67408
|
+
const binding = {
|
|
67409
|
+
conversationId: resolvedConversationId,
|
|
67410
|
+
sessionId
|
|
67411
|
+
};
|
|
67412
|
+
await store.set(mappingKey, binding);
|
|
67413
|
+
return sessionId;
|
|
67414
|
+
});
|
|
67415
|
+
},
|
|
65659
67416
|
claudeSessionStore() {
|
|
65660
67417
|
if (!claudeStoreCache) {
|
|
65661
67418
|
claudeStoreCache = createClaudeSessionStore(store);
|
|
@@ -65663,7 +67420,8 @@ function createAgentMemory(store, options = {}) {
|
|
|
65663
67420
|
return claudeStoreCache;
|
|
65664
67421
|
},
|
|
65665
67422
|
langgraphCheckpointer,
|
|
65666
|
-
langgraphStore
|
|
67423
|
+
langgraphStore,
|
|
67424
|
+
state
|
|
65667
67425
|
};
|
|
65668
67426
|
return memory;
|
|
65669
67427
|
}
|
|
@@ -66344,6 +68102,7 @@ function createAgentRuntime(options) {
|
|
|
66344
68102
|
env,
|
|
66345
68103
|
store: createAgentMemory(createLazyStore(resolveMemoryStore), {
|
|
66346
68104
|
runId: run_id,
|
|
68105
|
+
conversationId: conversation_id,
|
|
66347
68106
|
maxMessagesPerConversation: (_a3 = defaults2 == null ? void 0 : defaults2.memoryQuota) == null ? void 0 : _a3.maxMessagesPerConversation
|
|
66348
68107
|
}),
|
|
66349
68108
|
agents: {
|