diff --git a/latest.json b/latest.json index eb09667..9aa2e27 100644 --- a/latest.json +++ b/latest.json @@ -1,4 +1,4 @@ { - "version": "0.0.15", + "version": "0.0.16", "updateCommand": "claude plugin update supermemory@supermemory-plugins" } diff --git a/package-lock.json b/package-lock.json index 5d2c6c1..635a043 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,12 +1,12 @@ { "name": "claude-supermemory-dev", - "version": "0.0.15", + "version": "0.0.16", "lockfileVersion": 3, "requires": true, "packages": { "": { "name": "claude-supermemory-dev", - "version": "0.0.15", + "version": "0.0.16", "dependencies": { "supermemory": "^4.0.0" }, diff --git a/package.json b/package.json index 9b263b3..c156656 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "claude-supermemory-dev", - "version": "0.0.15", + "version": "0.0.16", "description": "Claude code plugin by Supermemory AI", "private": true, "type": "commonjs", diff --git a/plugin/.claude-plugin/plugin.json b/plugin/.claude-plugin/plugin.json index eedb484..0789cfe 100644 --- a/plugin/.claude-plugin/plugin.json +++ b/plugin/.claude-plugin/plugin.json @@ -1,7 +1,7 @@ { "name": "supermemory", "displayName": "Supermemory", - "version": "0.0.15", + "version": "0.0.16", "description": "Persistent memory across Claude Code sessions using Supermemory", "author": { "name": "Supermemory", diff --git a/plugin/commands/statusline.md b/plugin/commands/statusline.md new file mode 100644 index 0000000..985f28d --- /dev/null +++ b/plugin/commands/statusline.md @@ -0,0 +1,24 @@ +--- +name: statusline +description: Install the Supermemory activity status line for Claude Code +allowed-tools: Bash(node:*) PowerShell(node:*) +--- + +# Install the Supermemory status line + +Run this command exactly: + +```bash +node '${CLAUDE_PLUGIN_ROOT}/scripts/install-statusline.cjs' '${CLAUDE_PLUGIN_DATA}' +``` + +Then report the command output to the user. + +The installer is intentionally conservative: + +- It uses Claude Code's persistent plugin data directory, so plugin upgrades do not break the configured path. +- It uses Node on macOS, Linux, and Windows; no POSIX shell syntax is required. +- It preserves all unrelated Claude settings. +- If another status line is already configured, it leaves that configuration untouched and explains what to do next. + +Once enabled, the status line displays factual per-session activity such as memory items loaded, search results, session saving, and session captured. diff --git a/plugin/package-lock.json b/plugin/package-lock.json index 95d7b89..2528b68 100644 --- a/plugin/package-lock.json +++ b/plugin/package-lock.json @@ -1,12 +1,12 @@ { "name": "claude-supermemory", - "version": "0.0.15", + "version": "0.0.16", "lockfileVersion": 3, "requires": true, "packages": { "": { "name": "claude-supermemory", - "version": "0.0.15", + "version": "0.0.16", "license": "MIT", "engines": { "node": ">=18.0.0" diff --git a/plugin/package.json b/plugin/package.json index 061f686..a8ce383 100644 --- a/plugin/package.json +++ b/plugin/package.json @@ -1,6 +1,6 @@ { "name": "claude-supermemory", - "version": "0.0.15", + "version": "0.0.16", "description": "Persistent memory for Claude Code using Supermemory", "private": true, "engines": { diff --git a/plugin/scripts/context-hook.cjs b/plugin/scripts/context-hook.cjs index 5ff6349..0cccd09 100755 --- a/plugin/scripts/context-hook.cjs +++ b/plugin/scripts/context-hook.cjs @@ -1,9 +1,9 @@ #!/usr/bin/env node -var ot=Object.defineProperty;var Qn=Object.getOwnPropertyDescriptor;var _n=Object.getOwnPropertyNames;var $n=Object.prototype.hasOwnProperty;var eo=(e,t)=>()=>(e&&(t=e(e=0)),t);var d=(e,t)=>()=>(t||e((t={exports:{}}).exports,t),t.exports),to=(e,t)=>{for(var r in t)ot(e,r,{get:t[r],enumerable:!0})},ro=(e,t,r,n)=>{if(t&&typeof t=="object"||typeof t=="function")for(let o of _n(t))!$n.call(e,o)&&o!==r&&ot(e,o,{get:()=>t[o],enumerable:!(n=Qn(t,o))||n.enumerable});return e};var no=e=>ro(ot({},"__esModule",{value:!0}),e);var at=d(V=>{"use strict";Object.defineProperty(V,"__esModule",{value:!0});V.__setModuleDefault=V.__createBinding=void 0;V.__classPrivateFieldSet=oo;V.__classPrivateFieldGet=so;V.__importStar=io;V.__exportStar=ao;function oo(e,t,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 t=="function"?e!==t||!o:!t.has(e))throw new TypeError("Cannot write private member to an object whose class did not declare it");return n==="a"?o.call(e,r):o?o.value=r:t.set(e,r),r}function so(e,t,r,n){if(r==="a"&&!n)throw new TypeError("Private accessor was defined without a getter");if(typeof t=="function"?e!==t||!n:!t.has(e))throw new TypeError("Cannot read private member from an object whose class did not declare it");return r==="m"?n:r==="a"?n.call(e):n?n.value:t.get(e)}var it=Object.create?function(e,t,r,n){n===void 0&&(n=r);var o=Object.getOwnPropertyDescriptor(t,r);(!o||("get"in o?!t.__esModule:o.writable||o.configurable))&&(o={enumerable:!0,get:function(){return t[r]}}),Object.defineProperty(e,n,o)}:function(e,t,r,n){n===void 0&&(n=r),e[n]=t[r]};V.__createBinding=it;var ur=Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}:function(e,t){e.default=t};V.__setModuleDefault=ur;var st=function(e){return st=Object.getOwnPropertyNames||function(t){var r=[];for(var n in t)Object.prototype.hasOwnProperty.call(t,n)&&(r[r.length]=n);return r},st(e)};function io(e){if(e&&e.__esModule)return e;var t={};if(e!=null)for(var r=st(e),n=0;n{"use strict";Object.defineProperty(B,"__esModule",{value:!0});B.uuid4=void 0;var co=function(){let{crypto:e}=globalThis;if(e?.randomUUID)return B.uuid4=e.randomUUID.bind(e),e.randomUUID();let t=new Uint8Array(1),r=e?()=>e.getRandomValues(t)[0]:()=>Math.random()*255&255;return"10000000-1000-4000-8000-100000000000".replace(/[018]/g,n=>(+n^r()&15>>+n/4).toString(16))};B.uuid4=co});var ct=d(A=>{"use strict";Object.defineProperty(A,"__esModule",{value:!0});A.castToError=void 0;A.isAbortError=fo;function fo(e){return typeof e=="object"&&e!==null&&("name"in e&&e.name==="AbortError"||"message"in e&&String(e.message).includes("FetchRequestCanceledException"))}var uo=e=>{if(e instanceof Error)return e;if(typeof e=="object"&&e!==null){try{if(Object.prototype.toString.call(e)==="[object Error]"){let t=new Error(e.message,e.cause?{cause:e.cause}:{});return e.stack&&(t.stack=e.stack),e.cause&&!t.cause&&(t.cause=e.cause),e.name&&(t.name=e.name),t}}catch{}try{return new Error(JSON.stringify(e))}catch{}}return new Error(e)};A.castToError=uo});var _=d(P=>{"use strict";Object.defineProperty(P,"__esModule",{value:!0});P.InternalServerError=P.RateLimitError=P.UnprocessableEntityError=P.ConflictError=P.NotFoundError=P.PermissionDeniedError=P.AuthenticationError=P.BadRequestError=P.APIConnectionTimeoutError=P.APIConnectionError=P.APIUserAbortError=P.APIError=P.SupermemoryError=void 0;var lo=ct(),Pe=class extends Error{};P.SupermemoryError=Pe;var q=class e extends Pe{constructor(t,r,n,o){super(`${e.makeMessage(t,r,n)}`),this.status=t,this.headers=o,this.error=r}static makeMessage(t,r,n){let o=r?.message?typeof r.message=="string"?r.message:JSON.stringify(r.message):r?JSON.stringify(r):n;return t&&o?`${t} ${o}`:t?`${t} status code (no body)`:o||"(no status code or body)"}static generate(t,r,n,o){if(!t||!o)return new Q({message:n,cause:(0,lo.castToError)(r)});let s=r;return t===400?new ze(t,s,n,o):t===401?new xe(t,s,n,o):t===403?new je(t,s,n,o):t===404?new be(t,s,n,o):t===409?new ye(t,s,n,o):t===422?new Oe(t,s,n,o):t===429?new Xe(t,s,n,o):t>=500?new he(t,s,n,o):new e(t,s,n,o)}};P.APIError=q;var ft=class extends q{constructor({message:t}={}){super(void 0,void 0,t||"Request was aborted.",void 0)}};P.APIUserAbortError=ft;var Q=class extends q{constructor({message:t,cause:r}){super(void 0,void 0,t||"Connection error.",void 0),r&&(this.cause=r)}};P.APIConnectionError=Q;var ut=class extends Q{constructor({message:t}={}){super({message:t??"Request timed out."})}};P.APIConnectionTimeoutError=ut;var ze=class extends q{};P.BadRequestError=ze;var xe=class extends q{};P.AuthenticationError=xe;var je=class extends q{};P.PermissionDeniedError=je;var be=class extends q{};P.NotFoundError=be;var ye=class extends q{};P.ConflictError=ye;var Oe=class extends q{};P.UnprocessableEntityError=Oe;var Xe=class extends q{};P.RateLimitError=Xe;var he=class extends q{};P.InternalServerError=he});var ee=d(m=>{"use strict";Object.defineProperty(m,"__esModule",{value:!0});m.safeJSON=m.maybeCoerceBoolean=m.maybeCoerceFloat=m.maybeCoerceInteger=m.coerceBoolean=m.coerceFloat=m.coerceInteger=m.validatePositiveInteger=m.ensurePresent=m.isReadonlyArray=m.isArray=m.isAbsoluteURL=void 0;m.maybeObj=Po;m.isEmptyObj=zo;m.hasOwn=xo;m.isObj=jo;var $=_(),vo=/^[a-z][a-z0-9+.-]*:/i,po=e=>vo.test(e);m.isAbsoluteURL=po;var mo=e=>(m.isArray=Array.isArray,(0,m.isArray)(e));m.isArray=mo;m.isReadonlyArray=m.isArray;function Po(e){return typeof e!="object"?{}:e??{}}function zo(e){if(!e)return!0;for(let t in e)return!1;return!0}function xo(e,t){return Object.prototype.hasOwnProperty.call(e,t)}function jo(e){return e!=null&&typeof e=="object"&&!Array.isArray(e)}var bo=e=>{if(e==null)throw new $.SupermemoryError(`Expected a value to be given but received ${e} instead.`);return e};m.ensurePresent=bo;var yo=(e,t)=>{if(typeof t!="number"||!Number.isInteger(t))throw new $.SupermemoryError(`${e} must be an integer`);if(t<0)throw new $.SupermemoryError(`${e} must be a positive integer`);return t};m.validatePositiveInteger=yo;var Oo=e=>{if(typeof e=="number")return Math.round(e);if(typeof e=="string")return parseInt(e,10);throw new $.SupermemoryError(`Could not coerce ${e} (type: ${typeof e}) into a number`)};m.coerceInteger=Oo;var Xo=e=>{if(typeof e=="number")return e;if(typeof e=="string")return parseFloat(e);throw new $.SupermemoryError(`Could not coerce ${e} (type: ${typeof e}) into a number`)};m.coerceFloat=Xo;var ho=e=>typeof e=="boolean"?e:typeof e=="string"?e==="true":!!e;m.coerceBoolean=ho;var qo=e=>{if(e!=null)return(0,m.coerceInteger)(e)};m.maybeCoerceInteger=qo;var Ho=e=>{if(e!=null)return(0,m.coerceFloat)(e)};m.maybeCoerceFloat=Ho;var Wo=e=>{if(e!=null)return(0,m.coerceBoolean)(e)};m.maybeCoerceBoolean=Wo;var To=e=>{try{return JSON.parse(e)}catch{return}};m.safeJSON=To});var lr=d(qe=>{"use strict";Object.defineProperty(qe,"__esModule",{value:!0});qe.sleep=void 0;var No=e=>new Promise(t=>setTimeout(t,e));qe.sleep=No});var dt=d(He=>{"use strict";Object.defineProperty(He,"__esModule",{value:!0});He.VERSION=void 0;He.VERSION="4.0.0"});var Pr=d(k=>{"use strict";Object.defineProperty(k,"__esModule",{value:!0});k.getPlatformHeaders=k.isRunningInBrowser=void 0;var te=dt(),Lo=()=>typeof window<"u"&&typeof window.document<"u"&&typeof navigator<"u";k.isRunningInBrowser=Lo;function Vo(){return typeof Deno<"u"&&Deno.build!=null?"deno":typeof EdgeRuntime<"u"?"edge":Object.prototype.toString.call(typeof globalThis.process<"u"?globalThis.process:0)==="[object process]"?"node":"unknown"}var Ro=()=>{let e=Vo();if(e==="deno")return{"X-Stainless-Lang":"js","X-Stainless-Package-Version":te.VERSION,"X-Stainless-OS":pr(Deno.build.os),"X-Stainless-Arch":vr(Deno.build.arch),"X-Stainless-Runtime":"deno","X-Stainless-Runtime-Version":typeof Deno.version=="string"?Deno.version:Deno.version?.deno??"unknown"};if(typeof EdgeRuntime<"u")return{"X-Stainless-Lang":"js","X-Stainless-Package-Version":te.VERSION,"X-Stainless-OS":"Unknown","X-Stainless-Arch":`other:${EdgeRuntime}`,"X-Stainless-Runtime":"edge","X-Stainless-Runtime-Version":globalThis.process.version};if(e==="node")return{"X-Stainless-Lang":"js","X-Stainless-Package-Version":te.VERSION,"X-Stainless-OS":pr(globalThis.process.platform??"unknown"),"X-Stainless-Arch":vr(globalThis.process.arch??"unknown"),"X-Stainless-Runtime":"node","X-Stainless-Runtime-Version":globalThis.process.version??"unknown"};let t=go();return t?{"X-Stainless-Lang":"js","X-Stainless-Package-Version":te.VERSION,"X-Stainless-OS":"Unknown","X-Stainless-Arch":"unknown","X-Stainless-Runtime":`browser:${t.browser}`,"X-Stainless-Runtime-Version":t.version}:{"X-Stainless-Lang":"js","X-Stainless-Package-Version":te.VERSION,"X-Stainless-OS":"Unknown","X-Stainless-Arch":"unknown","X-Stainless-Runtime":"unknown","X-Stainless-Runtime-Version":"unknown"}};function go(){if(typeof navigator>"u"||!navigator)return null;let e=[{key:"edge",pattern:/Edge(?:\W+(\d+)\.(\d+)(?:\.(\d+))?)?/},{key:"ie",pattern:/MSIE(?:\W+(\d+)\.(\d+)(?:\.(\d+))?)?/},{key:"ie",pattern:/Trident(?:.*rv\:(\d+)\.(\d+)(?:\.(\d+))?)?/},{key:"chrome",pattern:/Chrome(?:\W+(\d+)\.(\d+)(?:\.(\d+))?)?/},{key:"firefox",pattern:/Firefox(?:\W+(\d+)\.(\d+)(?:\.(\d+))?)?/},{key:"safari",pattern:/(?:Version\W+(\d+)\.(\d+)(?:\.(\d+))?)?(?:\W+Mobile\S*)?\W+Safari/}];for(let{key:t,pattern:r}of e){let n=r.exec(navigator.userAgent);if(n){let o=n[1]||0,s=n[2]||0,i=n[3]||0;return{browser:t,version:`${o}.${s}.${i}`}}}return null}var vr=e=>e==="x32"?"x32":e==="x86_64"||e==="x64"?"x64":e==="arm"?"arm":e==="aarch64"||e==="arm64"?"arm64":e?`other:${e}`:"unknown",pr=e=>(e=e.toLowerCase(),e.includes("ios")?"iOS":e==="android"?"Android":e==="darwin"?"MacOS":e==="win32"?"Windows":e==="freebsd"?"FreeBSD":e==="openbsd"?"OpenBSD":e==="linux"?"Linux":e?`Other:${e}`:"Unknown"),mr,wo=()=>mr??(mr=Ro());k.getPlatformHeaders=wo});var lt=d(D=>{"use strict";Object.defineProperty(D,"__esModule",{value:!0});D.getDefaultFetch=Mo;D.makeReadableStream=zr;D.ReadableStreamFrom=Zo;D.ReadableStreamToAsyncIterable=Fo;D.CancelReadableStream=So;function Mo(){if(typeof fetch<"u")return fetch;throw new Error("`fetch` is not defined as a global; Either pass `fetch` to the client, `new Supermemory({ fetch })` or polyfill the global, `globalThis.fetch = fetch`")}function zr(...e){let t=globalThis.ReadableStream;if(typeof t>"u")throw new Error("`ReadableStream` is not defined as a global; You will need to polyfill it, `globalThis.ReadableStream = ReadableStream`");return new t(...e)}function Zo(e){let t=Symbol.asyncIterator in e?e[Symbol.asyncIterator]():e[Symbol.iterator]();return zr({start(){},async pull(r){let{done:n,value:o}=await t.next();n?r.close():r.enqueue(o)},async cancel(){await t.return?.()}})}function Fo(e){if(e[Symbol.asyncIterator])return e;let t=e.getReader();return{async next(){try{let r=await t.read();return r?.done&&t.releaseLock(),r}catch(r){throw t.releaseLock(),r}},async return(){let r=t.cancel();return t.releaseLock(),await r,{done:!0,value:void 0}},[Symbol.asyncIterator](){return this}}}async function So(e){if(e===null||typeof e!="object")return;if(e[Symbol.asyncIterator]){await e[Symbol.asyncIterator]().return?.();return}let t=e.getReader(),r=t.cancel();t.releaseLock(),await r}});var xr=d(We=>{"use strict";Object.defineProperty(We,"__esModule",{value:!0});We.FallbackEncoder=void 0;var Uo=({headers:e,body:t})=>({bodyHeaders:{"content-type":"application/json"},body:JSON.stringify(t)});We.FallbackEncoder=Uo});var re=d(y=>{"use strict";Object.defineProperty(y,"__esModule",{value:!0});y.createForm=y.multipartFormRequestOptions=y.maybeMultipartFormRequestOptions=y.isAsyncIterable=y.checkFileSupport=void 0;y.makeFile=vt;y.getName=Te;var Do=lt(),Yo=()=>{if(typeof File>"u"){let{process:e}=globalThis,t=typeof e?.versions?.node=="string"&&parseInt(e.versions.node.split("."))<20;throw new Error("`File` is not defined as a global, which is required for file uploads."+(t?" Update to Node 20 LTS or newer, or set `globalThis.File` to `import('node:buffer').File`.":""))}};y.checkFileSupport=Yo;function vt(e,t,r){return(0,y.checkFileSupport)(),new File(e,t??"unknown_file",r)}function Te(e){return(typeof e=="object"&&e!==null&&("name"in e&&e.name&&String(e.name)||"url"in e&&e.url&&String(e.url)||"filename"in e&&e.filename&&String(e.filename)||"path"in e&&e.path&&String(e.path))||"").split(/[\\/]/).pop()||void 0}var Go=e=>e!=null&&typeof e=="object"&&typeof e[Symbol.asyncIterator]=="function";y.isAsyncIterable=Go;var ko=async(e,t)=>pt(e.body)?{...e,body:await(0,y.createForm)(e.body,t)}:e;y.maybeMultipartFormRequestOptions=ko;var Eo=async(e,t)=>({...e,body:await(0,y.createForm)(e.body,t)});y.multipartFormRequestOptions=Eo;var jr=new WeakMap;function Ko(e){let t=typeof e=="function"?e:e.fetch,r=jr.get(t);if(r)return r;let n=(async()=>{try{let o="Response"in t?t.Response:(await t("data:,")).constructor,s=new FormData;return s.toString()!==await new o(s).text()}catch{return!0}})();return jr.set(t,n),n}var Co=async(e,t)=>{if(!await Ko(t))throw new TypeError("The provided fetch function does not support file uploads with the current global FormData class.");let r=new FormData;return await Promise.all(Object.entries(e||{}).map(([n,o])=>mt(r,n,o))),r};y.createForm=Co;var br=e=>e instanceof Blob&&"name"in e,Io=e=>typeof e=="object"&&e!==null&&(e instanceof Response||(0,y.isAsyncIterable)(e)||br(e)),pt=e=>{if(Io(e))return!0;if(Array.isArray(e))return e.some(pt);if(e&&typeof e=="object"){for(let t in e)if(pt(e[t]))return!0}return!1},mt=async(e,t,r)=>{if(r!==void 0){if(r==null)throw new TypeError(`Received null for "${t}"; to pass null in FormData, you must use the string 'null'`);if(typeof r=="string"||typeof r=="number"||typeof r=="boolean")e.append(t,String(r));else if(r instanceof Response)e.append(t,vt([await r.blob()],Te(r)));else if((0,y.isAsyncIterable)(r))e.append(t,vt([await new Response((0,Do.ReadableStreamFrom)(r)).blob()],Te(r)));else if(br(r))e.append(t,r,Te(r));else if(Array.isArray(r))await Promise.all(r.map(n=>mt(e,t+"[]",n)));else if(typeof r=="object")await Promise.all(Object.entries(r).map(([n,o])=>mt(e,`${t}[${n}]`,o)));else throw new TypeError(`Invalid value given to form, expected a string, number, boolean, object, Array, File or Blob but got ${r} instead`)}}});var Or=d(zt=>{"use strict";Object.defineProperty(zt,"__esModule",{value:!0});zt.toFile=Qo;var ne=re(),Jo=re(),yr=e=>e!=null&&typeof e=="object"&&typeof e.size=="number"&&typeof e.type=="string"&&typeof e.text=="function"&&typeof e.slice=="function"&&typeof e.arrayBuffer=="function",Bo=e=>e!=null&&typeof e=="object"&&typeof e.name=="string"&&typeof e.lastModified=="number"&&yr(e),Ao=e=>e!=null&&typeof e=="object"&&typeof e.url=="string"&&typeof e.blob=="function";async function Qo(e,t,r){if((0,Jo.checkFileSupport)(),e=await e,Bo(e))return e instanceof File?e:(0,ne.makeFile)([await e.arrayBuffer()],e.name);if(Ao(e)){let o=await e.blob();return t||(t=new URL(e.url).pathname.split(/[\\/]/).pop()),(0,ne.makeFile)(await Pt(o),t,r)}let n=await Pt(e);if(t||(t=(0,ne.getName)(e)),!r?.type){let o=n.find(s=>typeof s=="object"&&"type"in s&&s.type);typeof o=="string"&&(r={...r,type:o})}return(0,ne.makeFile)(n,t,r)}async function Pt(e){let t=[];if(typeof e=="string"||ArrayBuffer.isView(e)||e instanceof ArrayBuffer)t.push(e);else if(yr(e))t.push(e instanceof Blob?e:await e.arrayBuffer());else if((0,ne.isAsyncIterable)(e))for await(let r of e)t.push(...await Pt(r));else{let r=e?.constructor?.name;throw new Error(`Unexpected data type: ${typeof e}${r?`; constructor: ${r}`:""}${_o(e)}`)}return t}function _o(e){return typeof e!="object"||e===null?"":`; props: [${Object.getOwnPropertyNames(e).map(r=>`"${r}"`).join(", ")}]`}});var xt=d(Ne=>{"use strict";Object.defineProperty(Ne,"__esModule",{value:!0});Ne.toFile=void 0;var $o=Or();Object.defineProperty(Ne,"toFile",{enumerable:!0,get:function(){return $o.toFile}})});var E=d(Le=>{"use strict";Object.defineProperty(Le,"__esModule",{value:!0});Le.APIResource=void 0;var jt=class{constructor(t){this._client=t}};Le.APIResource=jt});var oe=d(K=>{"use strict";Object.defineProperty(K,"__esModule",{value:!0});K.isEmptyHeaders=K.buildHeaders=void 0;var Xr=ee(),hr=Symbol("brand.privateNullableHeaders");function*qr(e){if(!e)return;if(hr in e){let{values:n,nulls:o}=e;yield*n.entries();for(let s of o)yield[s,null];return}let t=!1,r;e instanceof Headers?r=e.entries():(0,Xr.isReadonlyArray)(e)?r=e:(t=!0,r=Object.entries(e??{}));for(let n of r){let o=n[0];if(typeof o!="string")throw new TypeError("expected header name to be a string");let s=(0,Xr.isReadonlyArray)(n[1])?n[1]:[n[1]],i=!1;for(let a of s)a!==void 0&&(t&&!i&&(i=!0,yield[o,null]),yield[o,a])}}var es=e=>{let t=new Headers,r=new Set;for(let n of e){let o=new Set;for(let[s,i]of qr(n)){let a=s.toLowerCase();o.has(a)||(t.delete(s),o.add(a)),i===null?(t.delete(s),r.add(a)):(t.append(s,i),r.delete(a))}}return{[hr]:!0,values:t,nulls:r}};K.buildHeaders=es;var ts=e=>{for(let t of qr(e))return!1;return!0};K.isEmptyHeaders=ts});var Ve=d(Z=>{"use strict";Object.defineProperty(Z,"__esModule",{value:!0});Z.path=Z.createPathTagFunction=void 0;Z.encodeURIPath=bt;var rs=_();function bt(e){return e.replace(/[^A-Za-z0-9\-._~!$&'()*+,;=:@]+/g,encodeURIComponent)}var Hr=Object.freeze(Object.create(null)),ns=(e=bt)=>function(r,...n){if(r.length===1)return r[0];let o=!1,s=[],i=r.reduce((f,p,x)=>{/[?#]/.test(p)&&(o=!0);let c=n[x],j=(o?encodeURIComponent:e)(""+c);return x!==n.length&&(c==null||typeof c=="object"&&c.toString===Object.getPrototypeOf(Object.getPrototypeOf(c.hasOwnProperty??Hr)??Hr)?.toString)&&(j=c+"",s.push({start:f.length+p.length,length:j.length,error:`Value of type ${Object.prototype.toString.call(c).slice(8,-1)} is not a valid path parameter`})),f+p+(x===n.length?"":j)},""),a=i.split(/[?#]/,1)[0],u=/(?<=^|\/)(?:\.|%2e){1,2}(?=\/|$)/gi,l;for(;(l=u.exec(a))!==null;)s.push({start:l.index,length:l[0].length,error:`Value "${l[0]}" can't be safely passed as a path parameter`});if(s.sort((f,p)=>f.start-p.start),s.length>0){let f=0,p=s.reduce((x,c)=>{let j=" ".repeat(c.start-f),h="^".repeat(c.length);return f=c.start+c.length,x+j+h},"");throw new rs.SupermemoryError(`Path parameters result in path with invalid segments: -${s.map(x=>x.error).join(` +var lt=Object.defineProperty;var Wo=Object.getOwnPropertyDescriptor;var To=Object.getOwnPropertyNames;var No=Object.prototype.hasOwnProperty;var Lo=(e,t)=>()=>(e&&(t=e(e=0)),t);var d=(e,t)=>()=>(t||e((t={exports:{}}).exports,t),t.exports),Vo=(e,t)=>{for(var r in t)lt(e,r,{get:t[r],enumerable:!0})},go=(e,t,r,n)=>{if(t&&typeof t=="object"||typeof t=="function")for(let o of To(t))!No.call(e,o)&&o!==r&<(e,o,{get:()=>t[o],enumerable:!(n=Wo(t,o))||n.enumerable});return e};var Ro=e=>go(lt({},"__esModule",{value:!0}),e);var mt=d(w=>{"use strict";Object.defineProperty(w,"__esModule",{value:!0});w.__setModuleDefault=w.__createBinding=void 0;w.__classPrivateFieldSet=wo;w.__classPrivateFieldGet=Mo;w.__importStar=Zo;w.__exportStar=So;function wo(e,t,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 t=="function"?e!==t||!o:!t.has(e))throw new TypeError("Cannot write private member to an object whose class did not declare it");return n==="a"?o.call(e,r):o?o.value=r:t.set(e,r),r}function Mo(e,t,r,n){if(r==="a"&&!n)throw new TypeError("Private accessor was defined without a getter");if(typeof t=="function"?e!==t||!n:!t.has(e))throw new TypeError("Cannot read private member from an object whose class did not declare it");return r==="m"?n:r==="a"?n.call(e):n?n.value:t.get(e)}var pt=Object.create?function(e,t,r,n){n===void 0&&(n=r);var o=Object.getOwnPropertyDescriptor(t,r);(!o||("get"in o?!t.__esModule:o.writable||o.configurable))&&(o={enumerable:!0,get:function(){return t[r]}}),Object.defineProperty(e,n,o)}:function(e,t,r,n){n===void 0&&(n=r),e[n]=t[r]};w.__createBinding=pt;var Or=Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}:function(e,t){e.default=t};w.__setModuleDefault=Or;var vt=function(e){return vt=Object.getOwnPropertyNames||function(t){var r=[];for(var n in t)Object.prototype.hasOwnProperty.call(t,n)&&(r[r.length]=n);return r},vt(e)};function Zo(e){if(e&&e.__esModule)return e;var t={};if(e!=null)for(var r=vt(e),n=0;n{"use strict";Object.defineProperty(te,"__esModule",{value:!0});te.uuid4=void 0;var Do=function(){let{crypto:e}=globalThis;if(e?.randomUUID)return te.uuid4=e.randomUUID.bind(e),e.randomUUID();let t=new Uint8Array(1),r=e?()=>e.getRandomValues(t)[0]:()=>Math.random()*255&255;return"10000000-1000-4000-8000-100000000000".replace(/[018]/g,n=>(+n^r()&15>>+n/4).toString(16))};te.uuid4=Do});var Pt=d(re=>{"use strict";Object.defineProperty(re,"__esModule",{value:!0});re.castToError=void 0;re.isAbortError=Fo;function Fo(e){return typeof e=="object"&&e!==null&&("name"in e&&e.name==="AbortError"||"message"in e&&String(e.message).includes("FetchRequestCanceledException"))}var Uo=e=>{if(e instanceof Error)return e;if(typeof e=="object"&&e!==null){try{if(Object.prototype.toString.call(e)==="[object Error]"){let t=new Error(e.message,e.cause?{cause:e.cause}:{});return e.stack&&(t.stack=e.stack),e.cause&&!t.cause&&(t.cause=e.cause),e.name&&(t.name=e.name),t}}catch{}try{return new Error(JSON.stringify(e))}catch{}}return new Error(e)};re.castToError=Uo});var oe=d(P=>{"use strict";Object.defineProperty(P,"__esModule",{value:!0});P.InternalServerError=P.RateLimitError=P.UnprocessableEntityError=P.ConflictError=P.NotFoundError=P.PermissionDeniedError=P.AuthenticationError=P.BadRequestError=P.APIConnectionTimeoutError=P.APIConnectionError=P.APIUserAbortError=P.APIError=P.SupermemoryError=void 0;var Yo=Pt(),Xe=class extends Error{};P.SupermemoryError=Xe;var H=class e extends Xe{constructor(t,r,n,o){super(`${e.makeMessage(t,r,n)}`),this.status=t,this.headers=o,this.error=r}static makeMessage(t,r,n){let o=r?.message?typeof r.message=="string"?r.message:JSON.stringify(r.message):r?JSON.stringify(r):n;return t&&o?`${t} ${o}`:t?`${t} status code (no body)`:o||"(no status code or body)"}static generate(t,r,n,o){if(!t||!o)return new ne({message:n,cause:(0,Yo.castToError)(r)});let s=r;return t===400?new he(t,s,n,o):t===401?new qe(t,s,n,o):t===403?new He(t,s,n,o):t===404?new We(t,s,n,o):t===409?new Te(t,s,n,o):t===422?new Ne(t,s,n,o):t===429?new Le(t,s,n,o):t>=500?new Ve(t,s,n,o):new e(t,s,n,o)}};P.APIError=H;var zt=class extends H{constructor({message:t}={}){super(void 0,void 0,t||"Request was aborted.",void 0)}};P.APIUserAbortError=zt;var ne=class extends H{constructor({message:t,cause:r}){super(void 0,void 0,t||"Connection error.",void 0),r&&(this.cause=r)}};P.APIConnectionError=ne;var xt=class extends ne{constructor({message:t}={}){super({message:t??"Request timed out."})}};P.APIConnectionTimeoutError=xt;var he=class extends H{};P.BadRequestError=he;var qe=class extends H{};P.AuthenticationError=qe;var He=class extends H{};P.PermissionDeniedError=He;var We=class extends H{};P.NotFoundError=We;var Te=class extends H{};P.ConflictError=Te;var Ne=class extends H{};P.UnprocessableEntityError=Ne;var Le=class extends H{};P.RateLimitError=Le;var Ve=class extends H{};P.InternalServerError=Ve});var ie=d(m=>{"use strict";Object.defineProperty(m,"__esModule",{value:!0});m.safeJSON=m.maybeCoerceBoolean=m.maybeCoerceFloat=m.maybeCoerceInteger=m.coerceBoolean=m.coerceFloat=m.coerceInteger=m.validatePositiveInteger=m.ensurePresent=m.isReadonlyArray=m.isArray=m.isAbsoluteURL=void 0;m.maybeObj=Ko;m.isEmptyObj=Co;m.hasOwn=Io;m.isObj=Jo;var se=oe(),Go=/^[a-z][a-z0-9+.-]*:/i,Eo=e=>Go.test(e);m.isAbsoluteURL=Eo;var ko=e=>(m.isArray=Array.isArray,(0,m.isArray)(e));m.isArray=ko;m.isReadonlyArray=m.isArray;function Ko(e){return typeof e!="object"?{}:e??{}}function Co(e){if(!e)return!0;for(let t in e)return!1;return!0}function Io(e,t){return Object.prototype.hasOwnProperty.call(e,t)}function Jo(e){return e!=null&&typeof e=="object"&&!Array.isArray(e)}var Bo=e=>{if(e==null)throw new se.SupermemoryError(`Expected a value to be given but received ${e} instead.`);return e};m.ensurePresent=Bo;var Ao=(e,t)=>{if(typeof t!="number"||!Number.isInteger(t))throw new se.SupermemoryError(`${e} must be an integer`);if(t<0)throw new se.SupermemoryError(`${e} must be a positive integer`);return t};m.validatePositiveInteger=Ao;var Qo=e=>{if(typeof e=="number")return Math.round(e);if(typeof e=="string")return parseInt(e,10);throw new se.SupermemoryError(`Could not coerce ${e} (type: ${typeof e}) into a number`)};m.coerceInteger=Qo;var _o=e=>{if(typeof e=="number")return e;if(typeof e=="string")return parseFloat(e);throw new se.SupermemoryError(`Could not coerce ${e} (type: ${typeof e}) into a number`)};m.coerceFloat=_o;var $o=e=>typeof e=="boolean"?e:typeof e=="string"?e==="true":!!e;m.coerceBoolean=$o;var es=e=>{if(e!=null)return(0,m.coerceInteger)(e)};m.maybeCoerceInteger=es;var ts=e=>{if(e!=null)return(0,m.coerceFloat)(e)};m.maybeCoerceFloat=ts;var rs=e=>{if(e!=null)return(0,m.coerceBoolean)(e)};m.maybeCoerceBoolean=rs;var ns=e=>{try{return JSON.parse(e)}catch{return}};m.safeJSON=ns});var hr=d(ge=>{"use strict";Object.defineProperty(ge,"__esModule",{value:!0});ge.sleep=void 0;var os=e=>new Promise(t=>setTimeout(t,e));ge.sleep=os});var jt=d(Re=>{"use strict";Object.defineProperty(Re,"__esModule",{value:!0});Re.VERSION=void 0;Re.VERSION="4.0.0"});var Tr=d(B=>{"use strict";Object.defineProperty(B,"__esModule",{value:!0});B.getPlatformHeaders=B.isRunningInBrowser=void 0;var ae=jt(),ss=()=>typeof window<"u"&&typeof window.document<"u"&&typeof navigator<"u";B.isRunningInBrowser=ss;function is(){return typeof Deno<"u"&&Deno.build!=null?"deno":typeof EdgeRuntime<"u"?"edge":Object.prototype.toString.call(typeof globalThis.process<"u"?globalThis.process:0)==="[object process]"?"node":"unknown"}var as=()=>{let e=is();if(e==="deno")return{"X-Stainless-Lang":"js","X-Stainless-Package-Version":ae.VERSION,"X-Stainless-OS":Hr(Deno.build.os),"X-Stainless-Arch":qr(Deno.build.arch),"X-Stainless-Runtime":"deno","X-Stainless-Runtime-Version":typeof Deno.version=="string"?Deno.version:Deno.version?.deno??"unknown"};if(typeof EdgeRuntime<"u")return{"X-Stainless-Lang":"js","X-Stainless-Package-Version":ae.VERSION,"X-Stainless-OS":"Unknown","X-Stainless-Arch":`other:${EdgeRuntime}`,"X-Stainless-Runtime":"edge","X-Stainless-Runtime-Version":globalThis.process.version};if(e==="node")return{"X-Stainless-Lang":"js","X-Stainless-Package-Version":ae.VERSION,"X-Stainless-OS":Hr(globalThis.process.platform??"unknown"),"X-Stainless-Arch":qr(globalThis.process.arch??"unknown"),"X-Stainless-Runtime":"node","X-Stainless-Runtime-Version":globalThis.process.version??"unknown"};let t=cs();return t?{"X-Stainless-Lang":"js","X-Stainless-Package-Version":ae.VERSION,"X-Stainless-OS":"Unknown","X-Stainless-Arch":"unknown","X-Stainless-Runtime":`browser:${t.browser}`,"X-Stainless-Runtime-Version":t.version}:{"X-Stainless-Lang":"js","X-Stainless-Package-Version":ae.VERSION,"X-Stainless-OS":"Unknown","X-Stainless-Arch":"unknown","X-Stainless-Runtime":"unknown","X-Stainless-Runtime-Version":"unknown"}};function cs(){if(typeof navigator>"u"||!navigator)return null;let e=[{key:"edge",pattern:/Edge(?:\W+(\d+)\.(\d+)(?:\.(\d+))?)?/},{key:"ie",pattern:/MSIE(?:\W+(\d+)\.(\d+)(?:\.(\d+))?)?/},{key:"ie",pattern:/Trident(?:.*rv\:(\d+)\.(\d+)(?:\.(\d+))?)?/},{key:"chrome",pattern:/Chrome(?:\W+(\d+)\.(\d+)(?:\.(\d+))?)?/},{key:"firefox",pattern:/Firefox(?:\W+(\d+)\.(\d+)(?:\.(\d+))?)?/},{key:"safari",pattern:/(?:Version\W+(\d+)\.(\d+)(?:\.(\d+))?)?(?:\W+Mobile\S*)?\W+Safari/}];for(let{key:t,pattern:r}of e){let n=r.exec(navigator.userAgent);if(n){let o=n[1]||0,s=n[2]||0,i=n[3]||0;return{browser:t,version:`${o}.${s}.${i}`}}}return null}var qr=e=>e==="x32"?"x32":e==="x86_64"||e==="x64"?"x64":e==="arm"?"arm":e==="aarch64"||e==="arm64"?"arm64":e?`other:${e}`:"unknown",Hr=e=>(e=e.toLowerCase(),e.includes("ios")?"iOS":e==="android"?"Android":e==="darwin"?"MacOS":e==="win32"?"Windows":e==="freebsd"?"FreeBSD":e==="openbsd"?"OpenBSD":e==="linux"?"Linux":e?`Other:${e}`:"Unknown"),Wr,fs=()=>Wr??(Wr=as());B.getPlatformHeaders=fs});var yt=d(C=>{"use strict";Object.defineProperty(C,"__esModule",{value:!0});C.getDefaultFetch=us;C.makeReadableStream=Nr;C.ReadableStreamFrom=ds;C.ReadableStreamToAsyncIterable=ls;C.CancelReadableStream=vs;function us(){if(typeof fetch<"u")return fetch;throw new Error("`fetch` is not defined as a global; Either pass `fetch` to the client, `new Supermemory({ fetch })` or polyfill the global, `globalThis.fetch = fetch`")}function Nr(...e){let t=globalThis.ReadableStream;if(typeof t>"u")throw new Error("`ReadableStream` is not defined as a global; You will need to polyfill it, `globalThis.ReadableStream = ReadableStream`");return new t(...e)}function ds(e){let t=Symbol.asyncIterator in e?e[Symbol.asyncIterator]():e[Symbol.iterator]();return Nr({start(){},async pull(r){let{done:n,value:o}=await t.next();n?r.close():r.enqueue(o)},async cancel(){await t.return?.()}})}function ls(e){if(e[Symbol.asyncIterator])return e;let t=e.getReader();return{async next(){try{let r=await t.read();return r?.done&&t.releaseLock(),r}catch(r){throw t.releaseLock(),r}},async return(){let r=t.cancel();return t.releaseLock(),await r,{done:!0,value:void 0}},[Symbol.asyncIterator](){return this}}}async function vs(e){if(e===null||typeof e!="object")return;if(e[Symbol.asyncIterator]){await e[Symbol.asyncIterator]().return?.();return}let t=e.getReader(),r=t.cancel();t.releaseLock(),await r}});var Lr=d(we=>{"use strict";Object.defineProperty(we,"__esModule",{value:!0});we.FallbackEncoder=void 0;var ps=({headers:e,body:t})=>({bodyHeaders:{"content-type":"application/json"},body:JSON.stringify(t)});we.FallbackEncoder=ps});var ce=d(b=>{"use strict";Object.defineProperty(b,"__esModule",{value:!0});b.createForm=b.multipartFormRequestOptions=b.maybeMultipartFormRequestOptions=b.isAsyncIterable=b.checkFileSupport=void 0;b.makeFile=bt;b.getName=Me;var ms=yt(),Ps=()=>{if(typeof File>"u"){let{process:e}=globalThis,t=typeof e?.versions?.node=="string"&&parseInt(e.versions.node.split("."))<20;throw new Error("`File` is not defined as a global, which is required for file uploads."+(t?" Update to Node 20 LTS or newer, or set `globalThis.File` to `import('node:buffer').File`.":""))}};b.checkFileSupport=Ps;function bt(e,t,r){return(0,b.checkFileSupport)(),new File(e,t??"unknown_file",r)}function Me(e){return(typeof e=="object"&&e!==null&&("name"in e&&e.name&&String(e.name)||"url"in e&&e.url&&String(e.url)||"filename"in e&&e.filename&&String(e.filename)||"path"in e&&e.path&&String(e.path))||"").split(/[\\/]/).pop()||void 0}var zs=e=>e!=null&&typeof e=="object"&&typeof e[Symbol.asyncIterator]=="function";b.isAsyncIterable=zs;var xs=async(e,t)=>Ot(e.body)?{...e,body:await(0,b.createForm)(e.body,t)}:e;b.maybeMultipartFormRequestOptions=xs;var js=async(e,t)=>({...e,body:await(0,b.createForm)(e.body,t)});b.multipartFormRequestOptions=js;var Vr=new WeakMap;function ys(e){let t=typeof e=="function"?e:e.fetch,r=Vr.get(t);if(r)return r;let n=(async()=>{try{let o="Response"in t?t.Response:(await t("data:,")).constructor,s=new FormData;return s.toString()!==await new o(s).text()}catch{return!0}})();return Vr.set(t,n),n}var bs=async(e,t)=>{if(!await ys(t))throw new TypeError("The provided fetch function does not support file uploads with the current global FormData class.");let r=new FormData;return await Promise.all(Object.entries(e||{}).map(([n,o])=>Xt(r,n,o))),r};b.createForm=bs;var gr=e=>e instanceof Blob&&"name"in e,Os=e=>typeof e=="object"&&e!==null&&(e instanceof Response||(0,b.isAsyncIterable)(e)||gr(e)),Ot=e=>{if(Os(e))return!0;if(Array.isArray(e))return e.some(Ot);if(e&&typeof e=="object"){for(let t in e)if(Ot(e[t]))return!0}return!1},Xt=async(e,t,r)=>{if(r!==void 0){if(r==null)throw new TypeError(`Received null for "${t}"; to pass null in FormData, you must use the string 'null'`);if(typeof r=="string"||typeof r=="number"||typeof r=="boolean")e.append(t,String(r));else if(r instanceof Response)e.append(t,bt([await r.blob()],Me(r)));else if((0,b.isAsyncIterable)(r))e.append(t,bt([await new Response((0,ms.ReadableStreamFrom)(r)).blob()],Me(r)));else if(gr(r))e.append(t,r,Me(r));else if(Array.isArray(r))await Promise.all(r.map(n=>Xt(e,t+"[]",n)));else if(typeof r=="object")await Promise.all(Object.entries(r).map(([n,o])=>Xt(e,`${t}[${n}]`,o)));else throw new TypeError(`Invalid value given to form, expected a string, number, boolean, object, Array, File or Blob but got ${r} instead`)}}});var wr=d(qt=>{"use strict";Object.defineProperty(qt,"__esModule",{value:!0});qt.toFile=Hs;var fe=ce(),Xs=ce(),Rr=e=>e!=null&&typeof e=="object"&&typeof e.size=="number"&&typeof e.type=="string"&&typeof e.text=="function"&&typeof e.slice=="function"&&typeof e.arrayBuffer=="function",hs=e=>e!=null&&typeof e=="object"&&typeof e.name=="string"&&typeof e.lastModified=="number"&&Rr(e),qs=e=>e!=null&&typeof e=="object"&&typeof e.url=="string"&&typeof e.blob=="function";async function Hs(e,t,r){if((0,Xs.checkFileSupport)(),e=await e,hs(e))return e instanceof File?e:(0,fe.makeFile)([await e.arrayBuffer()],e.name);if(qs(e)){let o=await e.blob();return t||(t=new URL(e.url).pathname.split(/[\\/]/).pop()),(0,fe.makeFile)(await ht(o),t,r)}let n=await ht(e);if(t||(t=(0,fe.getName)(e)),!r?.type){let o=n.find(s=>typeof s=="object"&&"type"in s&&s.type);typeof o=="string"&&(r={...r,type:o})}return(0,fe.makeFile)(n,t,r)}async function ht(e){let t=[];if(typeof e=="string"||ArrayBuffer.isView(e)||e instanceof ArrayBuffer)t.push(e);else if(Rr(e))t.push(e instanceof Blob?e:await e.arrayBuffer());else if((0,fe.isAsyncIterable)(e))for await(let r of e)t.push(...await ht(r));else{let r=e?.constructor?.name;throw new Error(`Unexpected data type: ${typeof e}${r?`; constructor: ${r}`:""}${Ws(e)}`)}return t}function Ws(e){return typeof e!="object"||e===null?"":`; props: [${Object.getOwnPropertyNames(e).map(r=>`"${r}"`).join(", ")}]`}});var Ht=d(Ze=>{"use strict";Object.defineProperty(Ze,"__esModule",{value:!0});Ze.toFile=void 0;var Ts=wr();Object.defineProperty(Ze,"toFile",{enumerable:!0,get:function(){return Ts.toFile}})});var A=d(Se=>{"use strict";Object.defineProperty(Se,"__esModule",{value:!0});Se.APIResource=void 0;var Wt=class{constructor(t){this._client=t}};Se.APIResource=Wt});var ue=d(Q=>{"use strict";Object.defineProperty(Q,"__esModule",{value:!0});Q.isEmptyHeaders=Q.buildHeaders=void 0;var Mr=ie(),Zr=Symbol("brand.privateNullableHeaders");function*Sr(e){if(!e)return;if(Zr in e){let{values:n,nulls:o}=e;yield*n.entries();for(let s of o)yield[s,null];return}let t=!1,r;e instanceof Headers?r=e.entries():(0,Mr.isReadonlyArray)(e)?r=e:(t=!0,r=Object.entries(e??{}));for(let n of r){let o=n[0];if(typeof o!="string")throw new TypeError("expected header name to be a string");let s=(0,Mr.isReadonlyArray)(n[1])?n[1]:[n[1]],i=!1;for(let a of s)a!==void 0&&(t&&!i&&(i=!0,yield[o,null]),yield[o,a])}}var Ns=e=>{let t=new Headers,r=new Set;for(let n of e){let o=new Set;for(let[s,i]of Sr(n)){let a=s.toLowerCase();o.has(a)||(t.delete(s),o.add(a)),i===null?(t.delete(s),r.add(a)):(t.append(s,i),r.delete(a))}}return{[Zr]:!0,values:t,nulls:r}};Q.buildHeaders=Ns;var Ls=e=>{for(let t of Sr(e))return!1;return!0};Q.isEmptyHeaders=Ls});var De=d(Y=>{"use strict";Object.defineProperty(Y,"__esModule",{value:!0});Y.path=Y.createPathTagFunction=void 0;Y.encodeURIPath=Tt;var Vs=oe();function Tt(e){return e.replace(/[^A-Za-z0-9\-._~!$&'()*+,;=:@]+/g,encodeURIComponent)}var Dr=Object.freeze(Object.create(null)),gs=(e=Tt)=>function(r,...n){if(r.length===1)return r[0];let o=!1,s=[],i=r.reduce((u,v,z)=>{/[?#]/.test(v)&&(o=!0);let f=n[z],j=(o?encodeURIComponent:e)(""+f);return z!==n.length&&(f==null||typeof f=="object"&&f.toString===Object.getPrototypeOf(Object.getPrototypeOf(f.hasOwnProperty??Dr)??Dr)?.toString)&&(j=f+"",s.push({start:u.length+v.length,length:j.length,error:`Value of type ${Object.prototype.toString.call(f).slice(8,-1)} is not a valid path parameter`})),u+v+(z===n.length?"":j)},""),a=i.split(/[?#]/,1)[0],c=/(?<=^|\/)(?:\.|%2e){1,2}(?=\/|$)/gi,l;for(;(l=c.exec(a))!==null;)s.push({start:l.index,length:l[0].length,error:`Value "${l[0]}" can't be safely passed as a path parameter`});if(s.sort((u,v)=>u.start-v.start),s.length>0){let u=0,v=s.reduce((z,f)=>{let j=" ".repeat(f.start-u),q="^".repeat(f.length);return u=f.start+f.length,z+j+q},"");throw new Vs.SupermemoryError(`Path parameters result in path with invalid segments: +${s.map(z=>z.error).join(` `)} ${i} -${p}`)}return i};Z.createPathTagFunction=ns;Z.path=(0,Z.createPathTagFunction)(bt)});var Ot=d(Re=>{"use strict";Object.defineProperty(Re,"__esModule",{value:!0});Re.Connections=void 0;var os=E(),ss=oe(),g=Ve(),yt=class extends os.APIResource{create(t,r={},n){return this._client.post((0,g.path)`/v3/connections/${t}`,{body:r,...n})}list(t={},r){return this._client.post("/v3/connections/list",{body:t,...r})}configure(t,r,n){return this._client.post((0,g.path)`/v3/connections/${t}/configure`,{body:r,...n})}deleteByID(t,r){return this._client.delete((0,g.path)`/v3/connections/${t}`,r)}deleteByProvider(t,r,n){return this._client.delete((0,g.path)`/v3/connections/${t}`,{body:r,...n})}getByID(t,r){return this._client.get((0,g.path)`/v3/connections/${t}`,r)}getByTag(t,r,n){return this._client.post((0,g.path)`/v3/connections/${t}/connection`,{body:r,...n})}import(t,r={},n){return this._client.post((0,g.path)`/v3/connections/${t}/import`,{body:r,...n,headers:(0,ss.buildHeaders)([{Accept:"text/plain"},n?.headers])})}listDocuments(t,r={},n){return this._client.post((0,g.path)`/v3/connections/${t}/documents`,{body:r,...n})}resources(t,r={},n){return this._client.get((0,g.path)`/v3/connections/${t}/resources`,{query:r,...n})}};Re.Connections=yt});var qt=d(ge=>{"use strict";Object.defineProperty(ge,"__esModule",{value:!0});ge.Documents=void 0;var is=E(),as=oe(),cs=re(),Xt=Ve(),ht=class extends is.APIResource{update(t,r={},n){return this._client.patch((0,Xt.path)`/v3/documents/${t}`,{body:r,...n})}list(t={},r){return this._client.post("/v3/documents/list",{body:t,...r})}delete(t,r){return this._client.delete((0,Xt.path)`/v3/documents/${t}`,{...r,headers:(0,as.buildHeaders)([{Accept:"*/*"},r?.headers])})}add(t,r){return this._client.post("/v3/documents",{body:t,...r})}batchAdd(t,r){return this._client.post("/v3/documents/batch",{body:t,...r})}deleteBulk(t={},r){return this._client.delete("/v3/documents/bulk",{body:t,...r})}get(t,r){return this._client.get((0,Xt.path)`/v3/documents/${t}`,r)}listProcessing(t){return this._client.get("/v3/documents/processing",t)}uploadFile(t,r){return this._client.post("/v3/documents/file",(0,cs.multipartFormRequestOptions)({body:t,...r},this._client))}};ge.Documents=ht});var Tt=d(we=>{"use strict";Object.defineProperty(we,"__esModule",{value:!0});we.Memories=void 0;var fs=E(),us=oe(),ds=re(),Ht=Ve(),Wt=class extends fs.APIResource{update(t,r={},n){return this._client.patch((0,Ht.path)`/v3/documents/${t}`,{body:r,...n})}list(t={},r){return this._client.post("/v3/documents/list",{body:t,...r})}delete(t,r){return this._client.delete((0,Ht.path)`/v3/documents/${t}`,{...r,headers:(0,us.buildHeaders)([{Accept:"*/*"},r?.headers])})}add(t,r){return this._client.post("/v3/documents",{body:t,...r})}forget(t,r){return this._client.delete("/v4/memories",{body:t,...r})}get(t,r){return this._client.get((0,Ht.path)`/v3/documents/${t}`,r)}updateMemory(t,r){return this._client.patch("/v4/memories",{body:t,...r})}uploadFile(t,r){return this._client.post("/v3/documents/file",(0,ds.multipartFormRequestOptions)({body:t,...r},this._client))}};we.Memories=Wt});var Lt=d(Me=>{"use strict";Object.defineProperty(Me,"__esModule",{value:!0});Me.Search=void 0;var ls=E(),Nt=class extends ls.APIResource{documents(t,r){return this._client.post("/v3/search",{body:t,...r})}execute(t,r){return this._client.post("/v3/search",{body:t,...r})}memories(t,r){return this._client.post("/v4/search",{body:t,...r})}};Me.Search=Nt});var Rt=d(Ze=>{"use strict";Object.defineProperty(Ze,"__esModule",{value:!0});Ze.Settings=void 0;var vs=E(),Vt=class extends vs.APIResource{update(t={},r){return this._client.patch("/v3/settings",{body:t,...r})}get(t){return this._client.get("/v3/settings",t)}};Ze.Settings=Vt});var Wr=d(T=>{"use strict";Object.defineProperty(T,"__esModule",{value:!0});T.Settings=T.Search=T.Memories=T.Documents=T.Connections=void 0;var ps=Ot();Object.defineProperty(T,"Connections",{enumerable:!0,get:function(){return ps.Connections}});var ms=qt();Object.defineProperty(T,"Documents",{enumerable:!0,get:function(){return ms.Documents}});var Ps=Tt();Object.defineProperty(T,"Memories",{enumerable:!0,get:function(){return Ps.Memories}});var zs=Lt();Object.defineProperty(T,"Search",{enumerable:!0,get:function(){return zs.Search}});var xs=Rt();Object.defineProperty(T,"Settings",{enumerable:!0,get:function(){return xs.Settings}})});var gt=d(Y=>{"use strict";Object.defineProperty(Y,"__esModule",{value:!0});Y.formatRequestDetails=Y.parseLogLevel=void 0;Y.loggerFor=Nr;var js=ee(),Se={off:0,error:200,warn:300,info:400,debug:500},bs=(e,t,r)=>{if(e){if((0,js.hasOwn)(Se,e))return e;Nr(r).warn(`${t} was set to ${JSON.stringify(e)}, expected one of ${JSON.stringify(Object.keys(Se))}`)}};Y.parseLogLevel=bs;function se(){}function Fe(e,t,r){return!t||Se[e]>Se[r]?se:t[e].bind(t)}var ys={error:se,warn:se,info:se,debug:se},Tr=new WeakMap;function Nr(e){let t=e.logger,r=e.logLevel??"off";if(!t)return ys;let n=Tr.get(t);if(n&&n[0]===r)return n[1];let o={error:Fe("error",t,r),warn:Fe("warn",t,r),info:Fe("info",t,r),debug:Fe("debug",t,r)};return Tr.set(t,[r,o]),o}var Os=e=>(e.options&&(e.options={...e.options},delete e.options.headers),e.headers&&(e.headers=Object.fromEntries((e.headers instanceof Headers?[...e.headers]:Object.entries(e.headers)).map(([t,r])=>[t,t.toLowerCase()==="authorization"||t.toLowerCase()==="cookie"||t.toLowerCase()==="set-cookie"?"***":r]))),"retryOfRequestLogID"in e&&(e.retryOfRequestLogID&&(e.retryOf=e.retryOfRequestLogID),delete e.retryOfRequestLogID),e);Y.formatRequestDetails=Os});var Vr=d(wt=>{"use strict";Object.defineProperty(wt,"__esModule",{value:!0});wt.defaultParseResponse=Xs;var Lr=gt();async function Xs(e,t){let{response:r,requestLogID:n,retryOfRequestLogID:o,startTime:s}=t,i=await(async()=>{if(r.status===204)return null;if(t.options.__binaryResponse)return r;let u=r.headers.get("content-type")?.split(";")[0]?.trim();return u?.includes("application/json")||u?.endsWith("+json")?await r.json():await r.text()})();return(0,Lr.loggerFor)(e).debug(`[${n}] response parsed`,(0,Lr.formatRequestDetails)({retryOfRequestLogID:o,url:r.url,status:r.status,body:i,durationMs:Date.now()-s})),i}});var Ft=d(Ue=>{"use strict";var ie;Object.defineProperty(Ue,"__esModule",{value:!0});Ue.APIPromise=void 0;var Mt=at(),hs=Vr(),Zt=class e extends Promise{constructor(t,r,n=hs.defaultParseResponse){super(o=>{o(null)}),this.responsePromise=r,this.parseResponse=n,ie.set(this,void 0),Mt.__classPrivateFieldSet(this,ie,t,"f")}_thenUnwrap(t){return new e(Mt.__classPrivateFieldGet(this,ie,"f"),this.responsePromise,async(r,n)=>t(await this.parseResponse(r,n),n))}asResponse(){return this.responsePromise.then(t=>t.response)}async withResponse(){let[t,r]=await Promise.all([this.parse(),this.asResponse()]);return{data:t,response:r}}parse(){return this.parsedPromise||(this.parsedPromise=this.responsePromise.then(t=>this.parseResponse(Mt.__classPrivateFieldGet(this,ie,"f"),t))),this.parsedPromise}then(t,r){return this.parse().then(t,r)}catch(t){return this.parse().catch(t)}finally(t){return this.parse().finally(t)}};Ue.APIPromise=Zt;ie=new WeakMap});var Rr=d(De=>{"use strict";Object.defineProperty(De,"__esModule",{value:!0});De.readEnv=void 0;var qs=e=>{if(typeof globalThis.process<"u")return globalThis.process.env?.[e]?.trim()??void 0;if(typeof globalThis.Deno<"u")return globalThis.Deno.env?.get?.(e)?.trim()};De.readEnv=qs});var Kt=d(Ge=>{"use strict";var kt,Et,Ye,gr;Object.defineProperty(Ge,"__esModule",{value:!0});Ge.Supermemory=void 0;var F=at(),Hs=dr(),St=ee(),Ws=lr(),Ut=ct(),Ts=Pr(),Dt=F.__importStar(lt()),Ns=F.__importStar(xr()),Ls=dt(),b=F.__importStar(_()),Vs=F.__importStar(xt()),ae=F.__importStar(Wr()),Rs=Ft(),gs=Ot(),ws=qt(),Ms=Tt(),Zs=Lt(),Fs=Rt(),Yt=oe(),Gt=Rr(),O=gt(),Ss=ee(),z=class{constructor({baseURL:t=(0,Gt.readEnv)("SUPERMEMORY_BASE_URL"),apiKey:r=(0,Gt.readEnv)("SUPERMEMORY_API_KEY"),...n}={}){if(kt.add(this),Ye.set(this,void 0),this.memories=new ae.Memories(this),this.documents=new ae.Documents(this),this.search=new ae.Search(this),this.settings=new ae.Settings(this),this.connections=new ae.Connections(this),r===void 0)throw new b.SupermemoryError("The SUPERMEMORY_API_KEY environment variable is missing or empty; either provide it, or instantiate the Supermemory client with an apiKey option, like new Supermemory({ apiKey: 'My API Key' }).");let o={apiKey:r,...n,baseURL:t||"https://api.supermemory.ai"};this.baseURL=o.baseURL,this.timeout=o.timeout??Et.DEFAULT_TIMEOUT,this.logger=o.logger??console;let s="warn";this.logLevel=s,this.logLevel=(0,O.parseLogLevel)(o.logLevel,"ClientOptions.logLevel",this)??(0,O.parseLogLevel)((0,Gt.readEnv)("SUPERMEMORY_LOG"),"process.env['SUPERMEMORY_LOG']",this)??s,this.fetchOptions=o.fetchOptions,this.maxRetries=o.maxRetries??2,this.fetch=o.fetch??Dt.getDefaultFetch(),F.__classPrivateFieldSet(this,Ye,Ns.FallbackEncoder,"f"),this._options=o,this.apiKey=r}withOptions(t){return new this.constructor({...this._options,baseURL:this.baseURL,maxRetries:this.maxRetries,timeout:this.timeout,logger:this.logger,logLevel:this.logLevel,fetch:this.fetch,fetchOptions:this.fetchOptions,apiKey:this.apiKey,...t})}add(t,r){return this.post("/v3/documents",{body:t,...r})}profile(t,r){return this.post("/v4/profile",{body:t,...r})}defaultQuery(){return this._options.defaultQuery}validateHeaders({values:t,nulls:r}){}async authHeaders(t){return(0,Yt.buildHeaders)([{Authorization:`Bearer ${this.apiKey}`}])}stringifyQuery(t){return Object.entries(t).filter(([r,n])=>typeof n<"u").map(([r,n])=>{if(typeof n=="string"||typeof n=="number"||typeof n=="boolean")return`${encodeURIComponent(r)}=${encodeURIComponent(n)}`;if(n===null)return`${encodeURIComponent(r)}=`;throw new b.SupermemoryError(`Cannot stringify type ${typeof n}; Expected string, number, boolean, or null. If you need to pass nested query parameters, you can manually encode them, e.g. { query: { 'foo[key1]': value1, 'foo[key2]': value2 } }, and please open a GitHub issue requesting better support for your use case.`)}).join("&")}getUserAgent(){return`${this.constructor.name}/JS ${Ls.VERSION}`}defaultIdempotencyKey(){return`stainless-node-retry-${(0,Hs.uuid4)()}`}makeStatusError(t,r,n,o){return b.APIError.generate(t,r,n,o)}buildURL(t,r,n){let o=!F.__classPrivateFieldGet(this,kt,"m",gr).call(this)&&n||this.baseURL,s=(0,St.isAbsoluteURL)(t)?new URL(t):new URL(o+(o.endsWith("/")&&t.startsWith("/")?t.slice(1):t)),i=this.defaultQuery();return(0,Ss.isEmptyObj)(i)||(r={...i,...r}),typeof r=="object"&&r&&!Array.isArray(r)&&(s.search=this.stringifyQuery(r)),s.toString()}async prepareOptions(t){}async prepareRequest(t,{url:r,options:n}){}get(t,r){return this.methodRequest("get",t,r)}post(t,r){return this.methodRequest("post",t,r)}patch(t,r){return this.methodRequest("patch",t,r)}put(t,r){return this.methodRequest("put",t,r)}delete(t,r){return this.methodRequest("delete",t,r)}methodRequest(t,r,n){return this.request(Promise.resolve(n).then(o=>({method:t,path:r,...o})))}request(t,r=null){return new Rs.APIPromise(this,this.makeRequest(t,r,void 0))}async makeRequest(t,r,n){let o=await t,s=o.maxRetries??this.maxRetries;r==null&&(r=s),await this.prepareOptions(o);let{req:i,url:a,timeout:u}=await this.buildRequest(o,{retryCount:s-r});await this.prepareRequest(i,{url:a,options:o});let l="log_"+(Math.random()*(1<<24)|0).toString(16).padStart(6,"0"),f=n===void 0?"":`, retryOf: ${n}`,p=Date.now();if((0,O.loggerFor)(this).debug(`[${l}] sending request`,(0,O.formatRequestDetails)({retryOfRequestLogID:n,method:o.method,url:a,options:o,headers:i.headers})),o.signal?.aborted)throw new b.APIUserAbortError;let x=new AbortController,c=await this.fetchWithTimeout(a,i,u,x).catch(Ut.castToError),j=Date.now();if(c instanceof globalThis.Error){let U=`retrying, ${r} attempts remaining`;if(o.signal?.aborted)throw new b.APIUserAbortError;let X=(0,Ut.isAbortError)(c)||/timed? ?out/i.test(String(c)+("cause"in c?String(c.cause):""));if(r)return(0,O.loggerFor)(this).info(`[${l}] connection ${X?"timed out":"failed"} - ${U}`),(0,O.loggerFor)(this).debug(`[${l}] connection ${X?"timed out":"failed"} (${U})`,(0,O.formatRequestDetails)({retryOfRequestLogID:n,url:a,durationMs:j-p,message:c.message})),this.retryRequest(o,r,n??l);throw(0,O.loggerFor)(this).info(`[${l}] connection ${X?"timed out":"failed"} - error; no more retries left`),(0,O.loggerFor)(this).debug(`[${l}] connection ${X?"timed out":"failed"} (error; no more retries left)`,(0,O.formatRequestDetails)({retryOfRequestLogID:n,url:a,durationMs:j-p,message:c.message})),X?new b.APIConnectionTimeoutError:new b.APIConnectionError({cause:c})}let h=`[${l}${f}] ${i.method} ${a} ${c.ok?"succeeded":"failed"} with status ${c.status} in ${j-p}ms`;if(!c.ok){let U=await this.shouldRetry(c);if(r&&U){let me=`retrying, ${r} attempts remaining`;return await Dt.CancelReadableStream(c.body),(0,O.loggerFor)(this).info(`${h} - ${me}`),(0,O.loggerFor)(this).debug(`[${l}] response error (${me})`,(0,O.formatRequestDetails)({retryOfRequestLogID:n,url:c.url,status:c.status,headers:c.headers,durationMs:j-p})),this.retryRequest(o,r,n??l,c.headers)}let X=U?"error; no more retries left":"error; not retryable";(0,O.loggerFor)(this).info(`${h} - ${X}`);let L=await c.text().catch(me=>(0,Ut.castToError)(me).message),J=(0,St.safeJSON)(L),fr=J?void 0:L;throw(0,O.loggerFor)(this).debug(`[${l}] response error (${X})`,(0,O.formatRequestDetails)({retryOfRequestLogID:n,url:c.url,status:c.status,headers:c.headers,message:fr,durationMs:Date.now()-p})),this.makeStatusError(c.status,J,fr,c.headers)}return(0,O.loggerFor)(this).info(h),(0,O.loggerFor)(this).debug(`[${l}] response start`,(0,O.formatRequestDetails)({retryOfRequestLogID:n,url:c.url,status:c.status,headers:c.headers,durationMs:j-p})),{response:c,options:o,controller:x,requestLogID:l,retryOfRequestLogID:n,startTime:p}}async fetchWithTimeout(t,r,n,o){let{signal:s,method:i,...a}=r||{};s&&s.addEventListener("abort",()=>o.abort());let u=setTimeout(()=>o.abort(),n),l=globalThis.ReadableStream&&a.body instanceof globalThis.ReadableStream||typeof a.body=="object"&&a.body!==null&&Symbol.asyncIterator in a.body,f={signal:o.signal,...l?{duplex:"half"}:{},method:"GET",...a};i&&(f.method=i.toUpperCase());try{return await this.fetch.call(void 0,t,f)}finally{clearTimeout(u)}}async shouldRetry(t){let r=t.headers.get("x-should-retry");return r==="true"?!0:r==="false"?!1:t.status===408||t.status===409||t.status===429||t.status>=500}async retryRequest(t,r,n,o){let s,i=o?.get("retry-after-ms");if(i){let u=parseFloat(i);Number.isNaN(u)||(s=u)}let a=o?.get("retry-after");if(a&&!s){let u=parseFloat(a);Number.isNaN(u)?s=Date.parse(a)-Date.now():s=u*1e3}if(!(s&&0<=s&&s<60*1e3)){let u=t.maxRetries??this.maxRetries;s=this.calculateDefaultRetryTimeoutMillis(r,u)}return await(0,Ws.sleep)(s),this.makeRequest(t,r-1,n)}calculateDefaultRetryTimeoutMillis(t,r){let s=r-t,i=Math.min(.5*Math.pow(2,s),8),a=1-Math.random()*.25;return i*a*1e3}async buildRequest(t,{retryCount:r=0}={}){let n={...t},{method:o,path:s,query:i,defaultBaseURL:a}=n,u=this.buildURL(s,i,a);"timeout"in n&&(0,St.validatePositiveInteger)("timeout",n.timeout),n.timeout=n.timeout??this.timeout;let{bodyHeaders:l,body:f}=this.buildBody({options:n}),p=await this.buildHeaders({options:t,method:o,bodyHeaders:l,retryCount:r});return{req:{method:o,headers:p,...n.signal&&{signal:n.signal},...globalThis.ReadableStream&&f instanceof globalThis.ReadableStream&&{duplex:"half"},...f&&{body:f},...this.fetchOptions??{},...n.fetchOptions??{}},url:u,timeout:n.timeout}}async buildHeaders({options:t,method:r,bodyHeaders:n,retryCount:o}){let s={};this.idempotencyHeader&&r!=="get"&&(t.idempotencyKey||(t.idempotencyKey=this.defaultIdempotencyKey()),s[this.idempotencyHeader]=t.idempotencyKey);let i=(0,Yt.buildHeaders)([s,{Accept:"application/json","User-Agent":this.getUserAgent(),"X-Stainless-Retry-Count":String(o),...t.timeout?{"X-Stainless-Timeout":String(Math.trunc(t.timeout/1e3))}:{},...(0,Ts.getPlatformHeaders)()},await this.authHeaders(t),this._options.defaultHeaders,n,t.headers]);return this.validateHeaders(i),i.values}buildBody({options:{body:t,headers:r}}){if(!t)return{bodyHeaders:void 0,body:void 0};let n=(0,Yt.buildHeaders)([r]);return ArrayBuffer.isView(t)||t instanceof ArrayBuffer||t instanceof DataView||typeof t=="string"&&n.values.has("content-type")||globalThis.Blob&&t instanceof globalThis.Blob||t instanceof FormData||t instanceof URLSearchParams||globalThis.ReadableStream&&t instanceof globalThis.ReadableStream?{bodyHeaders:void 0,body:t}:typeof t=="object"&&(Symbol.asyncIterator in t||Symbol.iterator in t&&"next"in t&&typeof t.next=="function")?{bodyHeaders:void 0,body:Dt.ReadableStreamFrom(t)}:F.__classPrivateFieldGet(this,Ye,"f").call(this,{body:t,headers:n})}};Ge.Supermemory=z;Et=z,Ye=new WeakMap,kt=new WeakSet,gr=function(){return this.baseURL!=="https://api.supermemory.ai"};z.Supermemory=Et;z.DEFAULT_TIMEOUT=6e4;z.SupermemoryError=b.SupermemoryError;z.APIError=b.APIError;z.APIConnectionError=b.APIConnectionError;z.APIConnectionTimeoutError=b.APIConnectionTimeoutError;z.APIUserAbortError=b.APIUserAbortError;z.NotFoundError=b.NotFoundError;z.ConflictError=b.ConflictError;z.RateLimitError=b.RateLimitError;z.BadRequestError=b.BadRequestError;z.AuthenticationError=b.AuthenticationError;z.InternalServerError=b.InternalServerError;z.PermissionDeniedError=b.PermissionDeniedError;z.UnprocessableEntityError=b.UnprocessableEntityError;z.toFile=Vs.toFile;z.Memories=Ms.Memories;z.Documents=ws.Documents;z.Search=Zs.Search;z.Settings=Fs.Settings;z.Connections=gs.Connections});var Mr=d((v,wr)=>{"use strict";v=wr.exports=function(...e){return new v.default(...e)};Object.defineProperty(v,"__esModule",{value:!0});v.UnprocessableEntityError=v.PermissionDeniedError=v.InternalServerError=v.AuthenticationError=v.BadRequestError=v.RateLimitError=v.ConflictError=v.NotFoundError=v.APIUserAbortError=v.APIConnectionTimeoutError=v.APIConnectionError=v.APIError=v.SupermemoryError=v.Supermemory=v.APIPromise=v.toFile=v.default=void 0;var Us=Kt();Object.defineProperty(v,"default",{enumerable:!0,get:function(){return Us.Supermemory}});var Ds=xt();Object.defineProperty(v,"toFile",{enumerable:!0,get:function(){return Ds.toFile}});var Ys=Ft();Object.defineProperty(v,"APIPromise",{enumerable:!0,get:function(){return Ys.APIPromise}});var Gs=Kt();Object.defineProperty(v,"Supermemory",{enumerable:!0,get:function(){return Gs.Supermemory}});var H=_();Object.defineProperty(v,"SupermemoryError",{enumerable:!0,get:function(){return H.SupermemoryError}});Object.defineProperty(v,"APIError",{enumerable:!0,get:function(){return H.APIError}});Object.defineProperty(v,"APIConnectionError",{enumerable:!0,get:function(){return H.APIConnectionError}});Object.defineProperty(v,"APIConnectionTimeoutError",{enumerable:!0,get:function(){return H.APIConnectionTimeoutError}});Object.defineProperty(v,"APIUserAbortError",{enumerable:!0,get:function(){return H.APIUserAbortError}});Object.defineProperty(v,"NotFoundError",{enumerable:!0,get:function(){return H.NotFoundError}});Object.defineProperty(v,"ConflictError",{enumerable:!0,get:function(){return H.ConflictError}});Object.defineProperty(v,"RateLimitError",{enumerable:!0,get:function(){return H.RateLimitError}});Object.defineProperty(v,"BadRequestError",{enumerable:!0,get:function(){return H.BadRequestError}});Object.defineProperty(v,"AuthenticationError",{enumerable:!0,get:function(){return H.AuthenticationError}});Object.defineProperty(v,"InternalServerError",{enumerable:!0,get:function(){return H.InternalServerError}});Object.defineProperty(v,"PermissionDeniedError",{enumerable:!0,get:function(){return H.PermissionDeniedError}});Object.defineProperty(v,"UnprocessableEntityError",{enumerable:!0,get:function(){return H.UnprocessableEntityError}})});var Fr={};to(Fr,{getRequestIntegrity:()=>ti,sanitizeContent:()=>Cs,sanitizeMetadata:()=>Qs,validateApiKeyFormat:()=>ks,validateContainerTag:()=>Es,validateContentLength:()=>Is,validateRecallConfig:()=>_s});function ks(e){return!e||typeof e!="string"?{valid:!1,reason:"key is empty or not a string"}:e.startsWith("sm_")?e.length<20?{valid:!1,reason:"key is too short"}:/\s/.test(e)?{valid:!1,reason:"key contains whitespace"}:{valid:!0}:{valid:!1,reason:"key must start with sm_ prefix"}}function Es(e){return!e||typeof e!="string"?{valid:!1,reason:"tag is empty"}:e.length>100?{valid:!1,reason:"tag exceeds 100 characters"}:/^[a-zA-Z0-9_-]+$/.test(e)?/^[-_]|[-_]$/.test(e)?{valid:!1,reason:"tag must not start or end with - or _"}:{valid:!0}:{valid:!1,reason:"tag contains invalid characters (only alphanumeric, underscore, hyphen allowed)"}}function Cs(e,t=1e5){if(!e||typeof e!="string")return"";let r=e;for(let n of Ks)r=r.replace(n,"");return r.length>t&&(r=r.slice(0,t)),r}function Is(e,t=1,r=1e5){return e.lengthr?{valid:!1,reason:`content exceeds maximum length (${r})`}:{valid:!0}}function Qs(e){let t={},r=0;for(let[n,o]of Object.entries(e)){if(r>=Js)break;n.length>Bs||/[^\w.-]/.test(n)||(typeof o=="string"?(t[n]=o.slice(0,As),r++):(typeof o=="number"&&Number.isFinite(o)||typeof o=="boolean")&&(t[n]=o,r++))}return t}function _s(e,t){let r=[];return(!Number.isInteger(e)||e<1||e>20)&&r.push("maxRecallResults must be an integer between 1 and 20"),(!Number.isInteger(t)||t<1||t>500)&&r.push("profileFrequency must be an integer between 1 and 500"),r}function Ct(e){return(0,ke.createHash)("sha256").update(e).digest("hex")}function ei(e,t){let r=[Ct(e),Ct(t),Zr].join(":");return(0,ke.createHmac)("sha256",$s).update(r).digest("base64url")}function ti(e,t){let r=Ct(t),n=ei(e,t);return{"X-Content-Hash":r,"X-Request-Integrity":[`v${Zr}`,n].join(".")}}var ke,Ks,Js,Bs,As,Zr,$s,Sr=eo(()=>{ke=require("node:crypto");Ks=[/[\x00-\x08\x0B\x0C\x0E-\x1F\x7F]/g,/\uFEFF/g,/[\uFFF0-\uFFFF]/g];Js=50,Bs=128,As=1024;Zr=1,$s="7f2a9c4b8e1d6f3a5c0b9d8e7f6a5b4c3d2e1f0a9b8c7d6e5f4a3b2c1d0e9f8a"});var It=d((cc,Ur)=>{var ri="https://api.supermemory.ai";Ur.exports={BASE_URL:ri}});var Er=d((fc,kr)=>{function ce(e){return String(e??"").toLowerCase().trim()}function Jt(e,t=r=>r){let r=new Set;return e.filter(n=>{let o=ce(t(n));return!o||r.has(o)?!1:(r.add(o),!0)})}function Dr(e){return[e?.memory,e?.chunk,e?.content,e?.context].find(r=>typeof r=="string"&&r.trim().length>0)||""}function Yr(e){let t=ce(Dr(e));if(t)return`content:${t}`;let r=ce(e?.id);return r?`id:${r}`:""}function ni(e,t){let r=e.similarity??-1,n=t.similarity??-1;if(r!==n)return n-r;let o=e.updatedAt?Date.parse(e.updatedAt):0;return(t.updatedAt?Date.parse(t.updatedAt):0)-o}function Gr(e,t=10){let r=Jt(e.flatMap(n=>n?.results||[]).sort(ni),Yr).slice(0,t);return{results:r,total:r.length,timing:Math.max(0,...e.map(n=>n?.timing||0))}}function oi(e,t=10){let r=Jt(e.flatMap(i=>i?.profile?.static||[])),n=new Set(r.map(ce)),o=Jt(e.flatMap(i=>i?.profile?.dynamic||[])).filter(i=>!n.has(ce(i))),s=Gr(e.map(i=>i?.searchResults).filter(Boolean),t);return{profile:{static:r,dynamic:o},searchResults:s.results.length>0?s:void 0}}kr.exports={extractResultText:Dr,searchResultKey:Yr,mergeSearchResponses:Gr,mergeProfileResponses:oi}});var Qr=d((uc,Ar)=>{var si=Mr().default,{getRequestIntegrity:ii,validateApiKeyFormat:ai,validateContainerTag:ci}=(Sr(),no(Fr)),{BASE_URL:fi}=It(),{extractResultText:Kr,searchResultKey:Bt,mergeSearchResponses:Cr,mergeProfileResponses:Ir}=Er(),ui="claudecode_default";function di(e,t=r=>r){let r=new Set;return e.filter(n=>{let o=String(t(n)).toLowerCase().trim();return!o||r.has(o)?!1:(r.add(o),!0)})}function Jr(e){return{AND:[{key:"sm_scope",value:e,filterType:"metadata"}]}}function Br(e){return/^repo_.+__[0-9a-f]{16}$/i.test(e)}var Qt=`Shared coding-agent memory for one software repository. +${v}`)}return i};Y.createPathTagFunction=gs;Y.path=(0,Y.createPathTagFunction)(Tt)});var Lt=d(Fe=>{"use strict";Object.defineProperty(Fe,"__esModule",{value:!0});Fe.Connections=void 0;var Rs=A(),ws=ue(),S=De(),Nt=class extends Rs.APIResource{create(t,r={},n){return this._client.post((0,S.path)`/v3/connections/${t}`,{body:r,...n})}list(t={},r){return this._client.post("/v3/connections/list",{body:t,...r})}configure(t,r,n){return this._client.post((0,S.path)`/v3/connections/${t}/configure`,{body:r,...n})}deleteByID(t,r){return this._client.delete((0,S.path)`/v3/connections/${t}`,r)}deleteByProvider(t,r,n){return this._client.delete((0,S.path)`/v3/connections/${t}`,{body:r,...n})}getByID(t,r){return this._client.get((0,S.path)`/v3/connections/${t}`,r)}getByTag(t,r,n){return this._client.post((0,S.path)`/v3/connections/${t}/connection`,{body:r,...n})}import(t,r={},n){return this._client.post((0,S.path)`/v3/connections/${t}/import`,{body:r,...n,headers:(0,ws.buildHeaders)([{Accept:"text/plain"},n?.headers])})}listDocuments(t,r={},n){return this._client.post((0,S.path)`/v3/connections/${t}/documents`,{body:r,...n})}resources(t,r={},n){return this._client.get((0,S.path)`/v3/connections/${t}/resources`,{query:r,...n})}};Fe.Connections=Nt});var Rt=d(Ue=>{"use strict";Object.defineProperty(Ue,"__esModule",{value:!0});Ue.Documents=void 0;var Ms=A(),Zs=ue(),Ss=ce(),Vt=De(),gt=class extends Ms.APIResource{update(t,r={},n){return this._client.patch((0,Vt.path)`/v3/documents/${t}`,{body:r,...n})}list(t={},r){return this._client.post("/v3/documents/list",{body:t,...r})}delete(t,r){return this._client.delete((0,Vt.path)`/v3/documents/${t}`,{...r,headers:(0,Zs.buildHeaders)([{Accept:"*/*"},r?.headers])})}add(t,r){return this._client.post("/v3/documents",{body:t,...r})}batchAdd(t,r){return this._client.post("/v3/documents/batch",{body:t,...r})}deleteBulk(t={},r){return this._client.delete("/v3/documents/bulk",{body:t,...r})}get(t,r){return this._client.get((0,Vt.path)`/v3/documents/${t}`,r)}listProcessing(t){return this._client.get("/v3/documents/processing",t)}uploadFile(t,r){return this._client.post("/v3/documents/file",(0,Ss.multipartFormRequestOptions)({body:t,...r},this._client))}};Ue.Documents=gt});var Zt=d(Ye=>{"use strict";Object.defineProperty(Ye,"__esModule",{value:!0});Ye.Memories=void 0;var Ds=A(),Fs=ue(),Us=ce(),wt=De(),Mt=class extends Ds.APIResource{update(t,r={},n){return this._client.patch((0,wt.path)`/v3/documents/${t}`,{body:r,...n})}list(t={},r){return this._client.post("/v3/documents/list",{body:t,...r})}delete(t,r){return this._client.delete((0,wt.path)`/v3/documents/${t}`,{...r,headers:(0,Fs.buildHeaders)([{Accept:"*/*"},r?.headers])})}add(t,r){return this._client.post("/v3/documents",{body:t,...r})}forget(t,r){return this._client.delete("/v4/memories",{body:t,...r})}get(t,r){return this._client.get((0,wt.path)`/v3/documents/${t}`,r)}updateMemory(t,r){return this._client.patch("/v4/memories",{body:t,...r})}uploadFile(t,r){return this._client.post("/v3/documents/file",(0,Us.multipartFormRequestOptions)({body:t,...r},this._client))}};Ye.Memories=Mt});var Dt=d(Ge=>{"use strict";Object.defineProperty(Ge,"__esModule",{value:!0});Ge.Search=void 0;var Ys=A(),St=class extends Ys.APIResource{documents(t,r){return this._client.post("/v3/search",{body:t,...r})}execute(t,r){return this._client.post("/v3/search",{body:t,...r})}memories(t,r){return this._client.post("/v4/search",{body:t,...r})}};Ge.Search=St});var Ut=d(Ee=>{"use strict";Object.defineProperty(Ee,"__esModule",{value:!0});Ee.Settings=void 0;var Gs=A(),Ft=class extends Gs.APIResource{update(t={},r){return this._client.patch("/v3/settings",{body:t,...r})}get(t){return this._client.get("/v3/settings",t)}};Ee.Settings=Ft});var Fr=d(V=>{"use strict";Object.defineProperty(V,"__esModule",{value:!0});V.Settings=V.Search=V.Memories=V.Documents=V.Connections=void 0;var Es=Lt();Object.defineProperty(V,"Connections",{enumerable:!0,get:function(){return Es.Connections}});var ks=Rt();Object.defineProperty(V,"Documents",{enumerable:!0,get:function(){return ks.Documents}});var Ks=Zt();Object.defineProperty(V,"Memories",{enumerable:!0,get:function(){return Ks.Memories}});var Cs=Dt();Object.defineProperty(V,"Search",{enumerable:!0,get:function(){return Cs.Search}});var Is=Ut();Object.defineProperty(V,"Settings",{enumerable:!0,get:function(){return Is.Settings}})});var Yt=d(I=>{"use strict";Object.defineProperty(I,"__esModule",{value:!0});I.formatRequestDetails=I.parseLogLevel=void 0;I.loggerFor=Yr;var Js=ie(),Ke={off:0,error:200,warn:300,info:400,debug:500},Bs=(e,t,r)=>{if(e){if((0,Js.hasOwn)(Ke,e))return e;Yr(r).warn(`${t} was set to ${JSON.stringify(e)}, expected one of ${JSON.stringify(Object.keys(Ke))}`)}};I.parseLogLevel=Bs;function de(){}function ke(e,t,r){return!t||Ke[e]>Ke[r]?de:t[e].bind(t)}var As={error:de,warn:de,info:de,debug:de},Ur=new WeakMap;function Yr(e){let t=e.logger,r=e.logLevel??"off";if(!t)return As;let n=Ur.get(t);if(n&&n[0]===r)return n[1];let o={error:ke("error",t,r),warn:ke("warn",t,r),info:ke("info",t,r),debug:ke("debug",t,r)};return Ur.set(t,[r,o]),o}var Qs=e=>(e.options&&(e.options={...e.options},delete e.options.headers),e.headers&&(e.headers=Object.fromEntries((e.headers instanceof Headers?[...e.headers]:Object.entries(e.headers)).map(([t,r])=>[t,t.toLowerCase()==="authorization"||t.toLowerCase()==="cookie"||t.toLowerCase()==="set-cookie"?"***":r]))),"retryOfRequestLogID"in e&&(e.retryOfRequestLogID&&(e.retryOf=e.retryOfRequestLogID),delete e.retryOfRequestLogID),e);I.formatRequestDetails=Qs});var Er=d(Gt=>{"use strict";Object.defineProperty(Gt,"__esModule",{value:!0});Gt.defaultParseResponse=_s;var Gr=Yt();async function _s(e,t){let{response:r,requestLogID:n,retryOfRequestLogID:o,startTime:s}=t,i=await(async()=>{if(r.status===204)return null;if(t.options.__binaryResponse)return r;let c=r.headers.get("content-type")?.split(";")[0]?.trim();return c?.includes("application/json")||c?.endsWith("+json")?await r.json():await r.text()})();return(0,Gr.loggerFor)(e).debug(`[${n}] response parsed`,(0,Gr.formatRequestDetails)({retryOfRequestLogID:o,url:r.url,status:r.status,body:i,durationMs:Date.now()-s})),i}});var Kt=d(Ce=>{"use strict";var le;Object.defineProperty(Ce,"__esModule",{value:!0});Ce.APIPromise=void 0;var Et=mt(),$s=Er(),kt=class e extends Promise{constructor(t,r,n=$s.defaultParseResponse){super(o=>{o(null)}),this.responsePromise=r,this.parseResponse=n,le.set(this,void 0),Et.__classPrivateFieldSet(this,le,t,"f")}_thenUnwrap(t){return new e(Et.__classPrivateFieldGet(this,le,"f"),this.responsePromise,async(r,n)=>t(await this.parseResponse(r,n),n))}asResponse(){return this.responsePromise.then(t=>t.response)}async withResponse(){let[t,r]=await Promise.all([this.parse(),this.asResponse()]);return{data:t,response:r}}parse(){return this.parsedPromise||(this.parsedPromise=this.responsePromise.then(t=>this.parseResponse(Et.__classPrivateFieldGet(this,le,"f"),t))),this.parsedPromise}then(t,r){return this.parse().then(t,r)}catch(t){return this.parse().catch(t)}finally(t){return this.parse().finally(t)}};Ce.APIPromise=kt;le=new WeakMap});var kr=d(Ie=>{"use strict";Object.defineProperty(Ie,"__esModule",{value:!0});Ie.readEnv=void 0;var ei=e=>{if(typeof globalThis.process<"u")return globalThis.process.env?.[e]?.trim()??void 0;if(typeof globalThis.Deno<"u")return globalThis.Deno.env?.get?.(e)?.trim()};Ie.readEnv=ei});var $t=d(Be=>{"use strict";var Qt,_t,Je,Kr;Object.defineProperty(Be,"__esModule",{value:!0});Be.Supermemory=void 0;var G=mt(),ti=Xr(),Ct=ie(),ri=hr(),It=Pt(),ni=Tr(),Jt=G.__importStar(yt()),oi=G.__importStar(Lr()),si=jt(),y=G.__importStar(oe()),ii=G.__importStar(Ht()),ve=G.__importStar(Fr()),ai=Kt(),ci=Lt(),fi=Rt(),ui=Zt(),di=Dt(),li=Ut(),Bt=ue(),At=kr(),O=Yt(),vi=ie(),x=class{constructor({baseURL:t=(0,At.readEnv)("SUPERMEMORY_BASE_URL"),apiKey:r=(0,At.readEnv)("SUPERMEMORY_API_KEY"),...n}={}){if(Qt.add(this),Je.set(this,void 0),this.memories=new ve.Memories(this),this.documents=new ve.Documents(this),this.search=new ve.Search(this),this.settings=new ve.Settings(this),this.connections=new ve.Connections(this),r===void 0)throw new y.SupermemoryError("The SUPERMEMORY_API_KEY environment variable is missing or empty; either provide it, or instantiate the Supermemory client with an apiKey option, like new Supermemory({ apiKey: 'My API Key' }).");let o={apiKey:r,...n,baseURL:t||"https://api.supermemory.ai"};this.baseURL=o.baseURL,this.timeout=o.timeout??_t.DEFAULT_TIMEOUT,this.logger=o.logger??console;let s="warn";this.logLevel=s,this.logLevel=(0,O.parseLogLevel)(o.logLevel,"ClientOptions.logLevel",this)??(0,O.parseLogLevel)((0,At.readEnv)("SUPERMEMORY_LOG"),"process.env['SUPERMEMORY_LOG']",this)??s,this.fetchOptions=o.fetchOptions,this.maxRetries=o.maxRetries??2,this.fetch=o.fetch??Jt.getDefaultFetch(),G.__classPrivateFieldSet(this,Je,oi.FallbackEncoder,"f"),this._options=o,this.apiKey=r}withOptions(t){return new this.constructor({...this._options,baseURL:this.baseURL,maxRetries:this.maxRetries,timeout:this.timeout,logger:this.logger,logLevel:this.logLevel,fetch:this.fetch,fetchOptions:this.fetchOptions,apiKey:this.apiKey,...t})}add(t,r){return this.post("/v3/documents",{body:t,...r})}profile(t,r){return this.post("/v4/profile",{body:t,...r})}defaultQuery(){return this._options.defaultQuery}validateHeaders({values:t,nulls:r}){}async authHeaders(t){return(0,Bt.buildHeaders)([{Authorization:`Bearer ${this.apiKey}`}])}stringifyQuery(t){return Object.entries(t).filter(([r,n])=>typeof n<"u").map(([r,n])=>{if(typeof n=="string"||typeof n=="number"||typeof n=="boolean")return`${encodeURIComponent(r)}=${encodeURIComponent(n)}`;if(n===null)return`${encodeURIComponent(r)}=`;throw new y.SupermemoryError(`Cannot stringify type ${typeof n}; Expected string, number, boolean, or null. If you need to pass nested query parameters, you can manually encode them, e.g. { query: { 'foo[key1]': value1, 'foo[key2]': value2 } }, and please open a GitHub issue requesting better support for your use case.`)}).join("&")}getUserAgent(){return`${this.constructor.name}/JS ${si.VERSION}`}defaultIdempotencyKey(){return`stainless-node-retry-${(0,ti.uuid4)()}`}makeStatusError(t,r,n,o){return y.APIError.generate(t,r,n,o)}buildURL(t,r,n){let o=!G.__classPrivateFieldGet(this,Qt,"m",Kr).call(this)&&n||this.baseURL,s=(0,Ct.isAbsoluteURL)(t)?new URL(t):new URL(o+(o.endsWith("/")&&t.startsWith("/")?t.slice(1):t)),i=this.defaultQuery();return(0,vi.isEmptyObj)(i)||(r={...i,...r}),typeof r=="object"&&r&&!Array.isArray(r)&&(s.search=this.stringifyQuery(r)),s.toString()}async prepareOptions(t){}async prepareRequest(t,{url:r,options:n}){}get(t,r){return this.methodRequest("get",t,r)}post(t,r){return this.methodRequest("post",t,r)}patch(t,r){return this.methodRequest("patch",t,r)}put(t,r){return this.methodRequest("put",t,r)}delete(t,r){return this.methodRequest("delete",t,r)}methodRequest(t,r,n){return this.request(Promise.resolve(n).then(o=>({method:t,path:r,...o})))}request(t,r=null){return new ai.APIPromise(this,this.makeRequest(t,r,void 0))}async makeRequest(t,r,n){let o=await t,s=o.maxRetries??this.maxRetries;r==null&&(r=s),await this.prepareOptions(o);let{req:i,url:a,timeout:c}=await this.buildRequest(o,{retryCount:s-r});await this.prepareRequest(i,{url:a,options:o});let l="log_"+(Math.random()*(1<<24)|0).toString(16).padStart(6,"0"),u=n===void 0?"":`, retryOf: ${n}`,v=Date.now();if((0,O.loggerFor)(this).debug(`[${l}] sending request`,(0,O.formatRequestDetails)({retryOfRequestLogID:n,method:o.method,url:a,options:o,headers:i.headers})),o.signal?.aborted)throw new y.APIUserAbortError;let z=new AbortController,f=await this.fetchWithTimeout(a,i,c,z).catch(It.castToError),j=Date.now();if(f instanceof globalThis.Error){let k=`retrying, ${r} attempts remaining`;if(o.signal?.aborted)throw new y.APIUserAbortError;let N=(0,It.isAbortError)(f)||/timed? ?out/i.test(String(f)+("cause"in f?String(f.cause):""));if(r)return(0,O.loggerFor)(this).info(`[${l}] connection ${N?"timed out":"failed"} - ${k}`),(0,O.loggerFor)(this).debug(`[${l}] connection ${N?"timed out":"failed"} (${k})`,(0,O.formatRequestDetails)({retryOfRequestLogID:n,url:a,durationMs:j-v,message:f.message})),this.retryRequest(o,r,n??l);throw(0,O.loggerFor)(this).info(`[${l}] connection ${N?"timed out":"failed"} - error; no more retries left`),(0,O.loggerFor)(this).debug(`[${l}] connection ${N?"timed out":"failed"} (error; no more retries left)`,(0,O.formatRequestDetails)({retryOfRequestLogID:n,url:a,durationMs:j-v,message:f.message})),N?new y.APIConnectionTimeoutError:new y.APIConnectionError({cause:f})}let q=`[${l}${u}] ${i.method} ${a} ${f.ok?"succeeded":"failed"} with status ${f.status} in ${j-v}ms`;if(!f.ok){let k=await this.shouldRetry(f);if(r&&k){let K=`retrying, ${r} attempts remaining`;return await Jt.CancelReadableStream(f.body),(0,O.loggerFor)(this).info(`${q} - ${K}`),(0,O.loggerFor)(this).debug(`[${l}] response error (${K})`,(0,O.formatRequestDetails)({retryOfRequestLogID:n,url:f.url,status:f.status,headers:f.headers,durationMs:j-v})),this.retryRequest(o,r,n??l,f.headers)}let N=k?"error; no more retries left":"error; not retryable";(0,O.loggerFor)(this).info(`${q} - ${N}`);let ee=await f.text().catch(K=>(0,It.castToError)(K).message),Oe=(0,Ct.safeJSON)(ee),L=Oe?void 0:ee;throw(0,O.loggerFor)(this).debug(`[${l}] response error (${N})`,(0,O.formatRequestDetails)({retryOfRequestLogID:n,url:f.url,status:f.status,headers:f.headers,message:L,durationMs:Date.now()-v})),this.makeStatusError(f.status,Oe,L,f.headers)}return(0,O.loggerFor)(this).info(q),(0,O.loggerFor)(this).debug(`[${l}] response start`,(0,O.formatRequestDetails)({retryOfRequestLogID:n,url:f.url,status:f.status,headers:f.headers,durationMs:j-v})),{response:f,options:o,controller:z,requestLogID:l,retryOfRequestLogID:n,startTime:v}}async fetchWithTimeout(t,r,n,o){let{signal:s,method:i,...a}=r||{};s&&s.addEventListener("abort",()=>o.abort());let c=setTimeout(()=>o.abort(),n),l=globalThis.ReadableStream&&a.body instanceof globalThis.ReadableStream||typeof a.body=="object"&&a.body!==null&&Symbol.asyncIterator in a.body,u={signal:o.signal,...l?{duplex:"half"}:{},method:"GET",...a};i&&(u.method=i.toUpperCase());try{return await this.fetch.call(void 0,t,u)}finally{clearTimeout(c)}}async shouldRetry(t){let r=t.headers.get("x-should-retry");return r==="true"?!0:r==="false"?!1:t.status===408||t.status===409||t.status===429||t.status>=500}async retryRequest(t,r,n,o){let s,i=o?.get("retry-after-ms");if(i){let c=parseFloat(i);Number.isNaN(c)||(s=c)}let a=o?.get("retry-after");if(a&&!s){let c=parseFloat(a);Number.isNaN(c)?s=Date.parse(a)-Date.now():s=c*1e3}if(!(s&&0<=s&&s<60*1e3)){let c=t.maxRetries??this.maxRetries;s=this.calculateDefaultRetryTimeoutMillis(r,c)}return await(0,ri.sleep)(s),this.makeRequest(t,r-1,n)}calculateDefaultRetryTimeoutMillis(t,r){let s=r-t,i=Math.min(.5*Math.pow(2,s),8),a=1-Math.random()*.25;return i*a*1e3}async buildRequest(t,{retryCount:r=0}={}){let n={...t},{method:o,path:s,query:i,defaultBaseURL:a}=n,c=this.buildURL(s,i,a);"timeout"in n&&(0,Ct.validatePositiveInteger)("timeout",n.timeout),n.timeout=n.timeout??this.timeout;let{bodyHeaders:l,body:u}=this.buildBody({options:n}),v=await this.buildHeaders({options:t,method:o,bodyHeaders:l,retryCount:r});return{req:{method:o,headers:v,...n.signal&&{signal:n.signal},...globalThis.ReadableStream&&u instanceof globalThis.ReadableStream&&{duplex:"half"},...u&&{body:u},...this.fetchOptions??{},...n.fetchOptions??{}},url:c,timeout:n.timeout}}async buildHeaders({options:t,method:r,bodyHeaders:n,retryCount:o}){let s={};this.idempotencyHeader&&r!=="get"&&(t.idempotencyKey||(t.idempotencyKey=this.defaultIdempotencyKey()),s[this.idempotencyHeader]=t.idempotencyKey);let i=(0,Bt.buildHeaders)([s,{Accept:"application/json","User-Agent":this.getUserAgent(),"X-Stainless-Retry-Count":String(o),...t.timeout?{"X-Stainless-Timeout":String(Math.trunc(t.timeout/1e3))}:{},...(0,ni.getPlatformHeaders)()},await this.authHeaders(t),this._options.defaultHeaders,n,t.headers]);return this.validateHeaders(i),i.values}buildBody({options:{body:t,headers:r}}){if(!t)return{bodyHeaders:void 0,body:void 0};let n=(0,Bt.buildHeaders)([r]);return ArrayBuffer.isView(t)||t instanceof ArrayBuffer||t instanceof DataView||typeof t=="string"&&n.values.has("content-type")||globalThis.Blob&&t instanceof globalThis.Blob||t instanceof FormData||t instanceof URLSearchParams||globalThis.ReadableStream&&t instanceof globalThis.ReadableStream?{bodyHeaders:void 0,body:t}:typeof t=="object"&&(Symbol.asyncIterator in t||Symbol.iterator in t&&"next"in t&&typeof t.next=="function")?{bodyHeaders:void 0,body:Jt.ReadableStreamFrom(t)}:G.__classPrivateFieldGet(this,Je,"f").call(this,{body:t,headers:n})}};Be.Supermemory=x;_t=x,Je=new WeakMap,Qt=new WeakSet,Kr=function(){return this.baseURL!=="https://api.supermemory.ai"};x.Supermemory=_t;x.DEFAULT_TIMEOUT=6e4;x.SupermemoryError=y.SupermemoryError;x.APIError=y.APIError;x.APIConnectionError=y.APIConnectionError;x.APIConnectionTimeoutError=y.APIConnectionTimeoutError;x.APIUserAbortError=y.APIUserAbortError;x.NotFoundError=y.NotFoundError;x.ConflictError=y.ConflictError;x.RateLimitError=y.RateLimitError;x.BadRequestError=y.BadRequestError;x.AuthenticationError=y.AuthenticationError;x.InternalServerError=y.InternalServerError;x.PermissionDeniedError=y.PermissionDeniedError;x.UnprocessableEntityError=y.UnprocessableEntityError;x.toFile=ii.toFile;x.Memories=ui.Memories;x.Documents=fi.Documents;x.Search=di.Search;x.Settings=li.Settings;x.Connections=ci.Connections});var Ir=d((p,Cr)=>{"use strict";p=Cr.exports=function(...e){return new p.default(...e)};Object.defineProperty(p,"__esModule",{value:!0});p.UnprocessableEntityError=p.PermissionDeniedError=p.InternalServerError=p.AuthenticationError=p.BadRequestError=p.RateLimitError=p.ConflictError=p.NotFoundError=p.APIUserAbortError=p.APIConnectionTimeoutError=p.APIConnectionError=p.APIError=p.SupermemoryError=p.Supermemory=p.APIPromise=p.toFile=p.default=void 0;var pi=$t();Object.defineProperty(p,"default",{enumerable:!0,get:function(){return pi.Supermemory}});var mi=Ht();Object.defineProperty(p,"toFile",{enumerable:!0,get:function(){return mi.toFile}});var Pi=Kt();Object.defineProperty(p,"APIPromise",{enumerable:!0,get:function(){return Pi.APIPromise}});var zi=$t();Object.defineProperty(p,"Supermemory",{enumerable:!0,get:function(){return zi.Supermemory}});var W=oe();Object.defineProperty(p,"SupermemoryError",{enumerable:!0,get:function(){return W.SupermemoryError}});Object.defineProperty(p,"APIError",{enumerable:!0,get:function(){return W.APIError}});Object.defineProperty(p,"APIConnectionError",{enumerable:!0,get:function(){return W.APIConnectionError}});Object.defineProperty(p,"APIConnectionTimeoutError",{enumerable:!0,get:function(){return W.APIConnectionTimeoutError}});Object.defineProperty(p,"APIUserAbortError",{enumerable:!0,get:function(){return W.APIUserAbortError}});Object.defineProperty(p,"NotFoundError",{enumerable:!0,get:function(){return W.NotFoundError}});Object.defineProperty(p,"ConflictError",{enumerable:!0,get:function(){return W.ConflictError}});Object.defineProperty(p,"RateLimitError",{enumerable:!0,get:function(){return W.RateLimitError}});Object.defineProperty(p,"BadRequestError",{enumerable:!0,get:function(){return W.BadRequestError}});Object.defineProperty(p,"AuthenticationError",{enumerable:!0,get:function(){return W.AuthenticationError}});Object.defineProperty(p,"InternalServerError",{enumerable:!0,get:function(){return W.InternalServerError}});Object.defineProperty(p,"PermissionDeniedError",{enumerable:!0,get:function(){return W.PermissionDeniedError}});Object.defineProperty(p,"UnprocessableEntityError",{enumerable:!0,get:function(){return W.UnprocessableEntityError}})});var Br={};Vo(Br,{getRequestIntegrity:()=>Li,sanitizeContent:()=>bi,sanitizeMetadata:()=>Hi,validateApiKeyFormat:()=>xi,validateContainerTag:()=>ji,validateContentLength:()=>Oi,validateRecallConfig:()=>Wi});function xi(e){return!e||typeof e!="string"?{valid:!1,reason:"key is empty or not a string"}:e.startsWith("sm_")?e.length<20?{valid:!1,reason:"key is too short"}:/\s/.test(e)?{valid:!1,reason:"key contains whitespace"}:{valid:!0}:{valid:!1,reason:"key must start with sm_ prefix"}}function ji(e){return!e||typeof e!="string"?{valid:!1,reason:"tag is empty"}:e.length>100?{valid:!1,reason:"tag exceeds 100 characters"}:/^[a-zA-Z0-9_-]+$/.test(e)?/^[-_]|[-_]$/.test(e)?{valid:!1,reason:"tag must not start or end with - or _"}:{valid:!0}:{valid:!1,reason:"tag contains invalid characters (only alphanumeric, underscore, hyphen allowed)"}}function bi(e,t=1e5){if(!e||typeof e!="string")return"";let r=e;for(let n of yi)r=r.replace(n,"");return r.length>t&&(r=r.slice(0,t)),r}function Oi(e,t=1,r=1e5){return e.lengthr?{valid:!1,reason:`content exceeds maximum length (${r})`}:{valid:!0}}function Hi(e){let t={},r=0;for(let[n,o]of Object.entries(e)){if(r>=Xi)break;n.length>hi||/[^\w.-]/.test(n)||(typeof o=="string"?(t[n]=o.slice(0,qi),r++):(typeof o=="number"&&Number.isFinite(o)||typeof o=="boolean")&&(t[n]=o,r++))}return t}function Wi(e,t){let r=[];return(!Number.isInteger(e)||e<1||e>20)&&r.push("maxRecallResults must be an integer between 1 and 20"),(!Number.isInteger(t)||t<1||t>500)&&r.push("profileFrequency must be an integer between 1 and 500"),r}function er(e){return(0,Ae.createHash)("sha256").update(e).digest("hex")}function Ni(e,t){let r=[er(e),er(t),Jr].join(":");return(0,Ae.createHmac)("sha256",Ti).update(r).digest("base64url")}function Li(e,t){let r=er(t),n=Ni(e,t);return{"X-Content-Hash":r,"X-Request-Integrity":[`v${Jr}`,n].join(".")}}var Ae,yi,Xi,hi,qi,Jr,Ti,Ar=Lo(()=>{Ae=require("node:crypto");yi=[/[\x00-\x08\x0B\x0C\x0E-\x1F\x7F]/g,/\uFEFF/g,/[\uFFF0-\uFFFF]/g];Xi=50,hi=128,qi=1024;Jr=1,Ti="7f2a9c4b8e1d6f3a5c0b9d8e7f6a5b4c3d2e1f0a9b8c7d6e5f4a3b2c1d0e9f8a"});var tr=d((nf,Qr)=>{var Vi="https://api.supermemory.ai";Qr.exports={BASE_URL:Vi}});var rn=d((of,tn)=>{function pe(e){return String(e??"").toLowerCase().trim()}function rr(e,t=r=>r){let r=new Set;return e.filter(n=>{let o=pe(t(n));return!o||r.has(o)?!1:(r.add(o),!0)})}function _r(e){return[e?.memory,e?.chunk,e?.content,e?.context].find(r=>typeof r=="string"&&r.trim().length>0)||""}function $r(e){let t=pe(_r(e));if(t)return`content:${t}`;let r=pe(e?.id);return r?`id:${r}`:""}function gi(e,t){let r=e.similarity??-1,n=t.similarity??-1;if(r!==n)return n-r;let o=e.updatedAt?Date.parse(e.updatedAt):0;return(t.updatedAt?Date.parse(t.updatedAt):0)-o}function en(e,t=10){let r=rr(e.flatMap(n=>n?.results||[]).sort(gi),$r).slice(0,t);return{results:r,total:r.length,timing:Math.max(0,...e.map(n=>n?.timing||0))}}function Ri(e,t=10){let r=rr(e.flatMap(i=>i?.profile?.static||[])),n=new Set(r.map(pe)),o=rr(e.flatMap(i=>i?.profile?.dynamic||[])).filter(i=>!n.has(pe(i))),s=en(e.map(i=>i?.searchResults).filter(Boolean),t);return{profile:{static:r,dynamic:o},searchResults:s.results.length>0?s:void 0}}tn.exports={extractResultText:_r,searchResultKey:$r,mergeSearchResponses:en,mergeProfileResponses:Ri}});var un=d((sf,fn)=>{var wi=Ir().default,{getRequestIntegrity:Mi,validateApiKeyFormat:Zi,validateContainerTag:Si}=(Ar(),Ro(Br)),{BASE_URL:Di}=tr(),{extractResultText:nn,searchResultKey:nr,mergeSearchResponses:on,mergeProfileResponses:sn}=rn(),Fi="claudecode_default";function Ui(e,t=r=>r){let r=new Set;return e.filter(n=>{let o=String(t(n)).toLowerCase().trim();return!o||r.has(o)?!1:(r.add(o),!0)})}function an(e){return{AND:[{key:"sm_scope",value:e,filterType:"metadata"}]}}function cn(e){return/^repo_.+__[0-9a-f]{16}$/i.test(e)}var sr=`Shared coding-agent memory for one software repository. RULES: - Preserve durable context that helps Claude Code, Codex, OpenCode, or Cursor continue the work @@ -21,9 +21,9 @@ EXTRACT: SKIP: - Generic assistant suggestions the user did not accept - Transient command output and low-value implementation chatter -- Granular details that do not help future work`,li=Qt,vi=Qt,At=class{constructor(t,r,n={}){if(!t)throw new Error("SUPERMEMORY_CC_API_KEY is required");let o=ai(t);if(!o.valid)throw new Error(`Invalid API key: ${o.reason}`);let s=r||ui,i=ci(s);i.valid||console.warn(`Container tag warning: ${i.reason}`);let a=ii(t,s);this.client=new si({apiKey:t,baseURL:n.baseUrl||fi,defaultHeaders:{...a,"x-sm-source":"claude-code"}}),this.containerTag=s}async addMemory(t,r,n={},o={}){let s={content:t,containerTag:r||this.containerTag,metadata:{sm_source:"claude-code",...n}};o.customId&&(s.customId=o.customId),o.entityContext&&(s.entityContext=o.entityContext);let i=await this.client.add(s);return{id:i.id,status:i.status,containerTag:r||this.containerTag}}async search(t,r,n={}){let o={q:t,containerTag:r||this.containerTag,limit:n.limit||10,searchMode:n.searchMode||"hybrid"};n.filters&&(o.filters=n.filters);let s=await this.client.search.memories(o),i=s.results.map(a=>({id:a.id,memory:Kr(a),chunk:a.chunk,metadata:a.metadata,updatedAt:a.updatedAt,similarity:a.similarity,containerTag:r||this.containerTag}));return{results:di(i,Bt),total:s.total,timing:s.timing}}async searchMany(t,r,n={}){let o=[...new Set(r.filter(Boolean))],s=await Promise.allSettled(o.map(a=>this.search(t,a,n))),i=s.filter(a=>a.status==="fulfilled").map(a=>a.value);if(i.length===0)throw s.find(u=>u.status==="rejected")?.reason||new Error("No memory containers could be searched");return Cr(i,n.limit||10)}async searchScoped(t,r,n,o,s={}){let i=[...new Set(n.filter(f=>f&&f!==r))],a=Br(r)?{...s,filters:Jr(o)}:s,u=await Promise.allSettled([this.search(t,r,a),...i.map(f=>this.search(t,f,s))]),l=u.filter(f=>f.status==="fulfilled").map(f=>f.value);if(l.length===0)throw u.find(p=>p.status==="rejected")?.reason||new Error("No memory containers could be searched");return Cr(l,s.limit||10)}async getProfile(t,r,n={}){let o={containerTag:t||this.containerTag,q:r};n.filters&&(o.filters=n.filters);let s=await this.client.profile(o),i=new Set,a=(x,c=j=>j)=>x.filter(j=>{let h=String(c(j)).toLowerCase().trim();return!h||i.has(h)?!1:(i.add(h),!0)}),u=x=>Bt({memory:x}),l=a(s.profile?.static||[],u),f=a(s.profile?.dynamic||[],u),p;if(s.searchResults){let x=s.searchResults.results.map(c=>({id:c.id,memory:Kr(c),similarity:c.similarity,title:c.title,updatedAt:c.updatedAt}));p={results:a(x,Bt),total:s.searchResults.total,timing:s.searchResults.timing}}return{profile:{static:l,dynamic:f},searchResults:p}}async getProfileMany(t,r,n={}){let o=[...new Set(t.filter(Boolean))],s=await Promise.allSettled(o.map(a=>this.getProfile(a,r,n))),i=s.filter(a=>a.status==="fulfilled").map(a=>a.value);if(i.length===0)throw s.find(u=>u.status==="rejected")?.reason||new Error("No memory profiles could be loaded");return Ir(i,n.limit||10)}async getProfileScoped(t,r,n,o,s={}){let i=[...new Set(r.filter(f=>f&&f!==t))],a=Br(t)?{...s,filters:Jr(n)}:s,u=await Promise.allSettled([this.getProfile(t,o,a),...i.map(f=>this.getProfile(f,o))]),l=u.filter(f=>f.status==="fulfilled").map(f=>f.value);if(l.length===0)throw u.find(p=>p.status==="rejected")?.reason||new Error("No memory profiles could be loaded");return Ir(l,s.limit||10)}};Ar.exports={SupermemoryClient:At,AGENT_ENTITY_CONTEXT:Qt,PERSONAL_ENTITY_CONTEXT:li,REPO_ENTITY_CONTEXT:vi}});var _t=d((dc,_r)=>{var{execSync:Ee}=require("node:child_process"),fe=require("node:path");function pi(e){let t=process.env.SUPERMEMORY_ISOLATE_WORKTREES==="true";try{if(t)return Ee("git rev-parse --show-toplevel",{cwd:e,encoding:"utf-8",stdio:["pipe","pipe","pipe"]}).trim()||null;let r=Ee("git rev-parse --git-common-dir",{cwd:e,encoding:"utf-8",stdio:["pipe","pipe","pipe"]}).trim();if(r===".git")return Ee("git rev-parse --show-toplevel",{cwd:e,encoding:"utf-8",stdio:["pipe","pipe","pipe"]}).trim()||null;let n=fe.resolve(e,r);return fe.basename(n)===".git"&&!n.includes(`${fe.sep}.git${fe.sep}`)?fe.dirname(n):Ee("git rev-parse --show-toplevel",{cwd:e,encoding:"utf-8",stdio:["pipe","pipe","pipe"]}).trim()||null}catch{return null}}_r.exports={getGitRoot:pi}});var Ce=d((lc,on)=>{var ue=require("node:fs"),Ke=require("node:path"),{getGitRoot:$r}=_t(),en=Ke.join(".claude",".supermemory-claude"),tn="config.json";function rn(e){let r=$r(e)||e;return Ke.join(r,en,tn)}function nn(e){try{let t=rn(e);if(ue.existsSync(t))return JSON.parse(ue.readFileSync(t,"utf-8"))}catch{}return null}function mi(e,t){let n=$r(e)||e,o=Ke.join(n,en),s=Ke.join(o,tn);ue.existsSync(o)||ue.mkdirSync(o,{recursive:!0});let a={...nn(e)||{},...t};return ue.writeFileSync(s,JSON.stringify(a,null,2)),s}on.exports={getConfigPath:rn,loadProjectConfig:nn,saveProjectConfig:mi}});var hn=d((vc,Xn)=>{var{execSync:Je}=require("node:child_process"),Pi=require("node:crypto"),w=require("node:fs"),C=require("node:os"),W=require("node:path"),{loadProjectConfig:sn}=Ce(),{getGitRoot:an}=_t();function R(e){return Pi.createHash("sha256").update(e).digest("hex").slice(0,16)}var Ie=new Map;function cn(e){let t=e.trim();if(!t)return null;let r;if(/^[a-z][a-z\d+.-]*:\/\//i.test(t))try{let n=new URL(t);n.protocol==="file:"?r=`file:${decodeURIComponent(n.pathname)}`:r=`${n.hostname.toLowerCase()}${n.port?`:${n.port}`:""}/${n.pathname.replace(/^\/+/,"")}`}catch{r=t}else{let n=t.match(/^(?:[^@/]+@)?([^:]+):(.+)$/);r=n?`${n[1].toLowerCase()}/${n[2]}`:`file:${W.resolve(t)}`}return r.replace(/[?#].*$/,"").replace(/\/+$/,"").replace(/\.git$/i,"").replace(/\/{2,}/g,"/").toLowerCase()}function fn(e){if(Ie.has(e))return Ie.get(e);try{let t=Je("git remote get-url origin",{cwd:e,encoding:"utf-8",stdio:["pipe","pipe","pipe"]}).trim(),r=cn(t),n=t.replace(/\/+$/,"").replace(/\.git$/i,""),o=Math.max(n.lastIndexOf("/"),n.lastIndexOf(":")),i={name:n.slice(o+1)||null,normalizedRemote:r};return Ie.set(e,i),i}catch{let t={name:null,normalizedRemote:null};return Ie.set(e,t),t}}function Be(e){return fn(e).name}function N(e){return an(e)||W.resolve(e)}function un(e){return`user_project_${R(N(e))}`}function dn(e){return rr(e)}function ln(e){return`claudecode_project_${R(N(e))}`}function vn(e){let t=null;try{t=Je("git config user.email",{cwd:N(e),encoding:"utf-8",stdio:["pipe","pipe","pipe"]}).trim()}catch{}return t=t||process.env.USER||process.env.USERNAME||C.hostname(),`codex_user_${R(t)}`}function pn(e){return`codex_project_${R(N(e))}`}function Ae(){try{let e=W.join(C.homedir(),".codex","supermemory.json");return w.existsSync(e)?JSON.parse(w.readFileSync(e,"utf-8")):null}catch{return null}}function $t(e){let t=W.join(C.homedir(),".config","cursor","supermemory.json"),r=null;try{w.existsSync(t)&&(r=JSON.parse(w.readFileSync(t,"utf-8")))}catch{}let n=null,o=W.resolve(e);for(;;){let s=W.join(o,".cursor",".supermemory","config.json");try{if(w.existsSync(s)){n=JSON.parse(w.readFileSync(s,"utf-8"));break}}catch{}let i=W.dirname(o);if(i===o)break;o=i}return{...r||{},...n||{}}}function mn(e){let t=$t(e),r=null;try{r=Je("git config user.email",{cwd:N(e),encoding:"utf-8",stdio:["pipe","pipe","pipe"]}).trim()}catch{}let n=`${C.hostname()}_${C.userInfo().username}`;return M([t.userContainerTag||process.env.SUPERMEMORY_USER_TAG||process.env.CURSOR_USER_EMAIL||r||n]).map(o=>`cursor_user_${R(o)}`)}function Pn(e){let t=$t(e),r=N(e);return M([t.projectContainerTag||process.env.SUPERMEMORY_PROJECT_TAG||r]).map(n=>`cursor_project_${R(n)}`)}function zi(e){let t="",r=0,n=!1,o=!1,s=!1;for(;r=0&&e[l]==="\\";l--)u++;u%2===0&&(n=!n),t+=i,r++;continue}if(n){t+=i,r++;continue}if(!o&&!s&&i==="/"&&a==="/"){o=!0,r+=2;continue}if(!o&&!s&&i==="/"&&a==="*"){s=!0,r+=2;continue}if(o){i===` +- Granular details that do not help future work`,Yi=sr,Gi=sr,or=class{constructor(t,r,n={}){if(!t)throw new Error("SUPERMEMORY_CC_API_KEY is required");let o=Zi(t);if(!o.valid)throw new Error(`Invalid API key: ${o.reason}`);let s=r||Fi,i=Si(s);i.valid||console.warn(`Container tag warning: ${i.reason}`);let a=Mi(t,s);this.client=new wi({apiKey:t,baseURL:n.baseUrl||Di,defaultHeaders:{...a,"x-sm-source":"claude-code"}}),this.containerTag=s}async addMemory(t,r,n={},o={}){let s={content:t,containerTag:r||this.containerTag,metadata:{sm_source:"claude-code",...n}};o.customId&&(s.customId=o.customId),o.entityContext&&(s.entityContext=o.entityContext);let i=await this.client.add(s);return{id:i.id,status:i.status,containerTag:r||this.containerTag}}async search(t,r,n={}){let o={q:t,containerTag:r||this.containerTag,limit:n.limit||10,searchMode:n.searchMode||"hybrid"};n.filters&&(o.filters=n.filters);let s=await this.client.search.memories(o),i=s.results.map(a=>({id:a.id,memory:nn(a),chunk:a.chunk,metadata:a.metadata,updatedAt:a.updatedAt,similarity:a.similarity,containerTag:r||this.containerTag}));return{results:Ui(i,nr),total:s.total,timing:s.timing}}async searchMany(t,r,n={}){let o=[...new Set(r.filter(Boolean))],s=await Promise.allSettled(o.map(a=>this.search(t,a,n))),i=s.filter(a=>a.status==="fulfilled").map(a=>a.value);if(i.length===0)throw s.find(c=>c.status==="rejected")?.reason||new Error("No memory containers could be searched");return on(i,n.limit||10)}async searchScoped(t,r,n,o,s={}){let i=[...new Set(n.filter(u=>u&&u!==r))],a=cn(r)?{...s,filters:an(o)}:s,c=await Promise.allSettled([this.search(t,r,a),...i.map(u=>this.search(t,u,s))]),l=c.filter(u=>u.status==="fulfilled").map(u=>u.value);if(l.length===0)throw c.find(v=>v.status==="rejected")?.reason||new Error("No memory containers could be searched");return on(l,s.limit||10)}async getProfile(t,r,n={}){let o={containerTag:t||this.containerTag,q:r};n.filters&&(o.filters=n.filters);let s=await this.client.profile(o),i=new Set,a=(z,f=j=>j)=>z.filter(j=>{let q=String(f(j)).toLowerCase().trim();return!q||i.has(q)?!1:(i.add(q),!0)}),c=z=>nr({memory:z}),l=a(s.profile?.static||[],c),u=a(s.profile?.dynamic||[],c),v;if(s.searchResults){let z=s.searchResults.results.map(f=>({id:f.id,memory:nn(f),similarity:f.similarity,title:f.title,updatedAt:f.updatedAt}));v={results:a(z,nr),total:s.searchResults.total,timing:s.searchResults.timing}}return{profile:{static:l,dynamic:u},searchResults:v}}async getProfileMany(t,r,n={}){let o=[...new Set(t.filter(Boolean))],s=await Promise.allSettled(o.map(a=>this.getProfile(a,r,n))),i=s.filter(a=>a.status==="fulfilled").map(a=>a.value);if(i.length===0)throw s.find(c=>c.status==="rejected")?.reason||new Error("No memory profiles could be loaded");return sn(i,n.limit||10)}async getProfileScoped(t,r,n,o,s={}){let i=[...new Set(r.filter(u=>u&&u!==t))],a=cn(t)?{...s,filters:an(n)}:s,c=await Promise.allSettled([this.getProfile(t,o,a),...i.map(u=>this.getProfile(u,o))]),l=c.filter(u=>u.status==="fulfilled").map(u=>u.value);if(l.length===0)throw c.find(v=>v.status==="rejected")?.reason||new Error("No memory profiles could be loaded");return sn(l,s.limit||10)}};fn.exports={SupermemoryClient:or,AGENT_ENTITY_CONTEXT:sr,PERSONAL_ENTITY_CONTEXT:Yi,REPO_ENTITY_CONTEXT:Gi}});var ir=d((af,dn)=>{var{execSync:Qe}=require("node:child_process"),me=require("node:path");function Ei(e){let t=process.env.SUPERMEMORY_ISOLATE_WORKTREES==="true";try{if(t)return Qe("git rev-parse --show-toplevel",{cwd:e,encoding:"utf-8",stdio:["pipe","pipe","pipe"]}).trim()||null;let r=Qe("git rev-parse --git-common-dir",{cwd:e,encoding:"utf-8",stdio:["pipe","pipe","pipe"]}).trim();if(r===".git")return Qe("git rev-parse --show-toplevel",{cwd:e,encoding:"utf-8",stdio:["pipe","pipe","pipe"]}).trim()||null;let n=me.resolve(e,r);return me.basename(n)===".git"&&!n.includes(`${me.sep}.git${me.sep}`)?me.dirname(n):Qe("git rev-parse --show-toplevel",{cwd:e,encoding:"utf-8",stdio:["pipe","pipe","pipe"]}).trim()||null}catch{return null}}dn.exports={getGitRoot:Ei}});var $e=d((cf,zn)=>{var Pe=require("node:fs"),_e=require("node:path"),{getGitRoot:ln}=ir(),vn=_e.join(".claude",".supermemory-claude"),pn="config.json";function mn(e){let r=ln(e)||e;return _e.join(r,vn,pn)}function Pn(e){try{let t=mn(e);if(Pe.existsSync(t))return JSON.parse(Pe.readFileSync(t,"utf-8"))}catch{}return null}function ki(e,t){let n=ln(e)||e,o=_e.join(n,vn),s=_e.join(o,pn);Pe.existsSync(o)||Pe.mkdirSync(o,{recursive:!0});let a={...Pn(e)||{},...t};return Pe.writeFileSync(s,JSON.stringify(a,null,2)),s}zn.exports={getConfigPath:mn,loadProjectConfig:Pn,saveProjectConfig:ki}});var Zn=d((ff,Mn)=>{var{execSync:tt}=require("node:child_process"),Ki=require("node:crypto"),D=require("node:fs"),_=require("node:os"),T=require("node:path"),{loadProjectConfig:xn}=$e(),{getGitRoot:jn}=ir();function M(e){return Ki.createHash("sha256").update(e).digest("hex").slice(0,16)}var et=new Map;function yn(e){let t=e.trim();if(!t)return null;let r;if(/^[a-z][a-z\d+.-]*:\/\//i.test(t))try{let n=new URL(t);n.protocol==="file:"?r=`file:${decodeURIComponent(n.pathname)}`:r=`${n.hostname.toLowerCase()}${n.port?`:${n.port}`:""}/${n.pathname.replace(/^\/+/,"")}`}catch{r=t}else{let n=t.match(/^(?:[^@/]+@)?([^:]+):(.+)$/);r=n?`${n[1].toLowerCase()}/${n[2]}`:`file:${T.resolve(t)}`}return r.replace(/[?#].*$/,"").replace(/\/+$/,"").replace(/\.git$/i,"").replace(/\/{2,}/g,"/").toLowerCase()}function bn(e){if(et.has(e))return et.get(e);try{let t=tt("git remote get-url origin",{cwd:e,encoding:"utf-8",stdio:["pipe","pipe","pipe"]}).trim(),r=yn(t),n=t.replace(/\/+$/,"").replace(/\.git$/i,""),o=Math.max(n.lastIndexOf("/"),n.lastIndexOf(":")),i={name:n.slice(o+1)||null,normalizedRemote:r};return et.set(e,i),i}catch{let t={name:null,normalizedRemote:null};return et.set(e,t),t}}function rt(e){return bn(e).name}function g(e){return jn(e)||T.resolve(e)}function On(e){return`user_project_${M(g(e))}`}function Xn(e){return ur(e)}function hn(e){return`claudecode_project_${M(g(e))}`}function qn(e){let t=null;try{t=tt("git config user.email",{cwd:g(e),encoding:"utf-8",stdio:["pipe","pipe","pipe"]}).trim()}catch{}return t=t||process.env.USER||process.env.USERNAME||_.hostname(),`codex_user_${M(t)}`}function Hn(e){return`codex_project_${M(g(e))}`}function nt(){try{let e=T.join(_.homedir(),".codex","supermemory.json");return D.existsSync(e)?JSON.parse(D.readFileSync(e,"utf-8")):null}catch{return null}}function ar(e){let t=T.join(_.homedir(),".config","cursor","supermemory.json"),r=null;try{D.existsSync(t)&&(r=JSON.parse(D.readFileSync(t,"utf-8")))}catch{}let n=null,o=T.resolve(e);for(;;){let s=T.join(o,".cursor",".supermemory","config.json");try{if(D.existsSync(s)){n=JSON.parse(D.readFileSync(s,"utf-8"));break}}catch{}let i=T.dirname(o);if(i===o)break;o=i}return{...r||{},...n||{}}}function Wn(e){let t=ar(e),r=null;try{r=tt("git config user.email",{cwd:g(e),encoding:"utf-8",stdio:["pipe","pipe","pipe"]}).trim()}catch{}let n=`${_.hostname()}_${_.userInfo().username}`;return F([t.userContainerTag||process.env.SUPERMEMORY_USER_TAG||process.env.CURSOR_USER_EMAIL||r||n]).map(o=>`cursor_user_${M(o)}`)}function Tn(e){let t=ar(e),r=g(e);return F([t.projectContainerTag||process.env.SUPERMEMORY_PROJECT_TAG||r]).map(n=>`cursor_project_${M(n)}`)}function Ci(e){let t="",r=0,n=!1,o=!1,s=!1;for(;r=0&&e[l]==="\\";l--)c++;c%2===0&&(n=!n),t+=i,r++;continue}if(n){t+=i,r++;continue}if(!o&&!s&&i==="/"&&a==="/"){o=!0,r+=2;continue}if(!o&&!s&&i==="/"&&a==="*"){s=!0,r+=2;continue}if(o){i===` `&&(o=!1,t+=i),r++;continue}if(s){if(i==="*"&&a==="/"){s=!1,r+=2;continue}i===` -`&&(t+=i),r++;continue}t+=i,r++}return t.replace(/,\s*([}\]])/g,"$1")}function er(){let e=W.join(C.homedir(),".config","opencode");for(let t of["supermemory.jsonc","supermemory.json"])try{let r=W.join(e,t);if(!w.existsSync(r))continue;return JSON.parse(zi(w.readFileSync(r,"utf-8")))}catch{return null}return null}function zn(e){let t=er(),r=null;try{r=Je("git config user.email",{cwd:N(e),encoding:"utf-8",stdio:["pipe","pipe","pipe"]}).trim()}catch{}r=r||process.env.USER||process.env.USERNAME||"anonymous";let n=R(r);return M([t?.userContainerTag,`${t?.containerTagPrefix||"opencode"}_user_${n}`,`opencode_user_${n}`])}function xn(e){let t=er(),r=[...new Set([e,W.resolve(e),N(e)].map(n=>R(n)))];return M([t?.projectContainerTag,...r.flatMap(n=>[`${t?.containerTagPrefix||"opencode"}_project_${n}`,`opencode_project_${n}`])])}function xi(e){let t=Ae(),r=vn(e),n=r.slice(11);return M([t?.userContainerTag,`${t?.containerTagPrefix||"codex"}_user_${n}`,r])}function ji(e){let t=Ae(),r=pn(e),n=r.slice(14);return M([t?.projectContainerTag,`${t?.containerTagPrefix||"codex"}_project_${n}`,r])}function tr(e){return(e.toLowerCase().replace(/[^a-z0-9]/g,"_").replace(/_+/g,"_").replace(/^_|_$/g,"")||"unknown").slice(0,95).replace(/_+$/g,"")||"unknown"}function jn(e){let t=N(e),{normalizedRemote:r}=fn(t),n=process.env.SUPERMEMORY_ISOLATE_WORKTREES==="true",o=t;try{o=w.realpathSync.native(t)}catch{}return R(!n&&r?r:`path:${o}`)}function bn(e){let t=N(e),n=Be(t)||W.basename(t)||"unknown";return`repo_${tr(n)}`}function Qe(e){let t=N(e),n=Be(t)||W.basename(t)||"unknown";return`repo_${tr(n).slice(0,72).replace(/_+$/g,"")||"unknown"}__${jn(e)}`}function rr(e){return sn(e)?.repoContainerTag||process.env.SUPERMEMORY_REPO_TAG||$t(e)?.repoContainerTag||Ae()?.projectContainerTag||er()?.projectContainerTag||Qe(e)}function bi(e){let t=N(e);return Be(t)||W.basename(t)||"unknown"}function M(e){return[...new Set(e.filter(t=>typeof t=="string"&&t.trim()))]}function yn(e){let t=sn(e),r=Ae();return M([dn(e),Qe(e),t?.personalContainerTag,r?.userContainerTag,un(e),ln(e),...xi(e),...zn(e),...mn(e)])}function On(e){return M([rr(e),Qe(e),bn(e),...ji(e),...xn(e),...Pn(e)])}function yi(e){return M([...yn(e),...On(e)])}Xn.exports={sha256:R,getGitRoot:an,normalizeGitRemote:cn,getGitRepoName:Be,getProjectIdentity:jn,getContainerTag:dn,getGeneratedContainerTag:un,getLegacyContainerTag:ln,getLegacyCodexUserTag:vn,getLegacyCodexProjectTag:pn,getLegacyOpenCodeUserTags:zn,getLegacyOpenCodeProjectTags:xn,getLegacyCursorUserTags:mn,getLegacyCursorProjectTags:Pn,getRepoContainerTag:rr,getGeneratedRepoContainerTag:Qe,getLegacyGeneratedRepoContainerTag:bn,getProjectName:bi,getPersonalReadTags:yn,getProjectReadTags:On,getAllReadTags:yi,sanitizeRepoName:tr}});var Hn=d((pc,qn)=>{var{execFile:Oi}=require("node:child_process");function _e(e,t){return new Promise((r,n)=>{Oi(e,t,{windowsHide:!0},o=>{o?n(o):r()})})}async function Xi(e){let t=e.toString();if(!/^https?:\/\//i.test(t))throw new Error("Refusing to open non-http URL");if(process.platform==="win32"){try{await _e("rundll32.exe",["url.dll,FileProtocolHandler",t]);return}catch{}await _e("cmd.exe",["/c","start",'""',t]);return}if(process.platform==="darwin"){await _e("open",[t]);return}await _e("xdg-open",[t])}qn.exports={openUrl:Xi}});var Wn=d((mc,hi)=>{hi.exports=` +`&&(t+=i),r++;continue}t+=i,r++}return t.replace(/,\s*([}\]])/g,"$1")}function cr(){let e=T.join(_.homedir(),".config","opencode");for(let t of["supermemory.jsonc","supermemory.json"])try{let r=T.join(e,t);if(!D.existsSync(r))continue;return JSON.parse(Ci(D.readFileSync(r,"utf-8")))}catch{return null}return null}function Nn(e){let t=cr(),r=null;try{r=tt("git config user.email",{cwd:g(e),encoding:"utf-8",stdio:["pipe","pipe","pipe"]}).trim()}catch{}r=r||process.env.USER||process.env.USERNAME||"anonymous";let n=M(r);return F([t?.userContainerTag,`${t?.containerTagPrefix||"opencode"}_user_${n}`,`opencode_user_${n}`])}function Ln(e){let t=cr(),r=[...new Set([e,T.resolve(e),g(e)].map(n=>M(n)))];return F([t?.projectContainerTag,...r.flatMap(n=>[`${t?.containerTagPrefix||"opencode"}_project_${n}`,`opencode_project_${n}`])])}function Ii(e){let t=nt(),r=qn(e),n=r.slice(11);return F([t?.userContainerTag,`${t?.containerTagPrefix||"codex"}_user_${n}`,r])}function Ji(e){let t=nt(),r=Hn(e),n=r.slice(14);return F([t?.projectContainerTag,`${t?.containerTagPrefix||"codex"}_project_${n}`,r])}function fr(e){return(e.toLowerCase().replace(/[^a-z0-9]/g,"_").replace(/_+/g,"_").replace(/^_|_$/g,"")||"unknown").slice(0,95).replace(/_+$/g,"")||"unknown"}function Vn(e){let t=g(e),{normalizedRemote:r}=bn(t),n=process.env.SUPERMEMORY_ISOLATE_WORKTREES==="true",o=t;try{o=D.realpathSync.native(t)}catch{}return M(!n&&r?r:`path:${o}`)}function gn(e){let t=g(e),n=rt(t)||T.basename(t)||"unknown";return`repo_${fr(n)}`}function ot(e){let t=g(e),n=rt(t)||T.basename(t)||"unknown";return`repo_${fr(n).slice(0,72).replace(/_+$/g,"")||"unknown"}__${Vn(e)}`}function ur(e){return xn(e)?.repoContainerTag||process.env.SUPERMEMORY_REPO_TAG||ar(e)?.repoContainerTag||nt()?.projectContainerTag||cr()?.projectContainerTag||ot(e)}function Bi(e){let t=g(e);return rt(t)||T.basename(t)||"unknown"}function F(e){return[...new Set(e.filter(t=>typeof t=="string"&&t.trim()))]}function Rn(e){let t=xn(e),r=nt();return F([Xn(e),ot(e),t?.personalContainerTag,r?.userContainerTag,On(e),hn(e),...Ii(e),...Nn(e),...Wn(e)])}function wn(e){return F([ur(e),ot(e),gn(e),...Ji(e),...Ln(e),...Tn(e)])}function Ai(e){return F([...Rn(e),...wn(e)])}Mn.exports={sha256:M,getGitRoot:jn,normalizeGitRemote:yn,getGitRepoName:rt,getProjectIdentity:Vn,getContainerTag:Xn,getGeneratedContainerTag:On,getLegacyContainerTag:hn,getLegacyCodexUserTag:qn,getLegacyCodexProjectTag:Hn,getLegacyOpenCodeUserTags:Nn,getLegacyOpenCodeProjectTags:Ln,getLegacyCursorUserTags:Wn,getLegacyCursorProjectTags:Tn,getRepoContainerTag:ur,getGeneratedRepoContainerTag:ot,getLegacyGeneratedRepoContainerTag:gn,getProjectName:Bi,getPersonalReadTags:Rn,getProjectReadTags:wn,getAllReadTags:Ai,sanitizeRepoName:fr}});var Dn=d((uf,Sn)=>{var{execFile:Qi}=require("node:child_process");function st(e,t){return new Promise((r,n)=>{Qi(e,t,{windowsHide:!0},o=>{o?n(o):r()})})}async function _i(e){let t=e.toString();if(!/^https?:\/\//i.test(t))throw new Error("Refusing to open non-http URL");if(process.platform==="win32"){try{await st("rundll32.exe",["url.dll,FileProtocolHandler",t]);return}catch{}await st("cmd.exe",["/c","start",'""',t]);return}if(process.platform==="darwin"){await st("open",[t]);return}await st("xdg-open",[t])}Sn.exports={openUrl:_i}});var Fn=d((df,$i)=>{$i.exports=` Connected - Supermemory