@anmol-srv/sigil 0.11.0 → 0.12.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/cli.js +397 -339
- package/dist/daemon.js +198 -121
- package/dist/hooks/post-tool-use.js +18 -18
- package/dist/hooks/session-end.js +28 -28
- package/dist/hooks/stop.js +36 -36
- package/dist/hooks/user-prompt-submit.js +17 -17
- package/dist/server.js +26 -26
- package/package.json +1 -1
- package/src/gui/web/api.js +37 -0
- package/src/gui/web/app.css +114 -50
- package/src/gui/web/app.js +203 -91
- package/src/gui/web/components.js +90 -0
- package/src/gui/web/design/colors_and_type.css +178 -0
- package/src/gui/web/design/sigil-mark-mono.svg +8 -0
- package/src/gui/web/design/sigil-mark.svg +26 -0
- package/src/gui/web/index.html +54 -42
- package/src/gui/web/toast.js +62 -0
package/dist/hooks/stop.js
CHANGED
|
@@ -1,13 +1,13 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
2
|
import { createRequire as __sigilCreateRequire } from 'node:module'; const require = __sigilCreateRequire(import.meta.url);
|
|
3
|
-
var xl=Object.defineProperty;var c=(t,e)=>()=>(t&&(e=t(t=0)),e);var A=(t,e)=>{for(var r in e)xl(t,r,{get:e[r],enumerable:!0})};import{fileURLToPath as El}from"node:url";import{dirname as sn,join as
|
|
3
|
+
var xl=Object.defineProperty;var c=(t,e)=>()=>(t&&(e=t(t=0)),e);var A=(t,e)=>{for(var r in e)xl(t,r,{get:e[r],enumerable:!0})};import{fileURLToPath as El}from"node:url";import{dirname as sn,join as E}from"node:path";import{existsSync as cn}from"node:fs";import{homedir as bl}from"node:os";function Sl(){let t=sn(El(import.meta.url));for(let e=0;e<10;e++){if(cn(E(t,"package.json"))&&cn(E(t,"prompts")))return t;let r=sn(t);if(r===t)break;t=r}return process.cwd()}var Ce,z,bx,un,R,Re,Sx,Nr,Al,fn,ln,pn,dn,Ax,Tx,Ix,Ox,vx,Cx,Rx,Lx,Nx,Dx,Px,mn,Mx,kx,$=c(()=>{Ce=Sl(),z=E(Ce,"prompts"),bx=E(Ce,"src","db","migrations"),un=bl(),R=E(un,".sigil"),Re=E(R,".env"),Sx=E(R,"db"),Nr=E(R,"CLAUDE.md"),Al=E(R,"schemas"),fn=E(R,".hook-errors.log"),ln=E(R,".last-clean-doctor"),pn=E(R,".active-session.json"),dn=E(R,".stop-cursor.json"),Ax=E(R,".hook-dedup.json"),Tx=E(R,"sock"),Ix=E(R,"sigild.pid"),Ox=E(R,"sigild.log"),vx=E(R,"heartbeat.json"),Cx=E(R,"onboarding-state.json"),Rx=E(R,"gui.token"),Lx=E(Ce,"dist","gui"),Nx=E(Ce,"src","gui","web"),Dx=E(R,"iroh"),Px=E(R,"identity.key"),mn=E(un,".claude"),Mx=E(mn,"settings.json"),kx=E(mn,"CLAUDE.md")});function St(t){if(!t||typeof t!="string")return t;let e=t;for(let r of Il)e=e.replace(r,te);return e=e.replace(Ol,(r,o)=>`${o}=${te}`),e=e.replace(vl,(r,o)=>`${o}${te}:${te}@`),e=e.replace(Rl,(r,o)=>`${o}=${te}`),e}var te,Il,Ol,vl,Cl,Rl,Le=c(()=>{te="***MASKED***",Il=[/\b(sk-(?:proj-|ant-)?[A-Za-z0-9_\-]{20,})\b/g,/\b(ghp_[A-Za-z0-9]{36,})\b/g,/\b(github_pat_[A-Za-z0-9_]{20,})\b/g,/\b(gho_[A-Za-z0-9]{36,})\b/g,/\b(glpat-[A-Za-z0-9_\-]{20,})\b/g,/\b(xox[baprs]-[A-Za-z0-9\-]{10,})\b/g,/\b(whsec_[A-Za-z0-9]{20,})\b/g,/\b(rk_(?:live|test)_[A-Za-z0-9]{20,})\b/g,/\b(AKIA[A-Z0-9]{16})\b/g,/\b(ASIA[A-Z0-9]{16})\b/g,/\b(eyJ[A-Za-z0-9_\-]{20,}\.[A-Za-z0-9_\-]{10,}\.[A-Za-z0-9_\-]{10,})\b/g,/\b([A-Za-z0-9]{24}\.[A-Za-z0-9_\-]{6}\.[A-Za-z0-9_\-]{27})\b/g,/\b(\d{8,12}:[A-Za-z0-9_\-]{35})\b/g],Ol=new RegExp(`\\b(api[_-]?key|api[_-]?secret|secret[_-]?key|secret|token|password|passwd|pwd|auth[_-]?token|access[_-]?token|refresh[_-]?token|bearer|private[_-]?key|client[_-]?secret)\\s*[=:]\\s*["']?([^\\s"']{8,})["']?`,"gi"),vl=/(\w+:\/\/)([^:/\s]+):([^@\s]{3,})@/g,Cl=["DATABASE_URL","REDIS_URL","MONGODB_URI","MONGO_URI","POSTGRES_URL","DSN","CONNECTION_STRING","ENCRYPTION_KEY","JWT_SECRET","SIGIL_ENCRYPTION_KEY","SESSION_SECRET","WEBHOOK_SECRET"],Rl=new RegExp(`\\b(${Cl.join("|")})\\s*[=:]\\s*["']?([^\\s"']+)["']?`,"gi")});var Dr={};A(Dr,{default:()=>p});var b,wn,Ll,p,x=c(()=>{b=(t,e)=>process.env[t]??e,wn=b("SIGIL_DB_TYPE","postgres");if(wn!=="postgres")throw new Error(`SIGIL_DB_TYPE=${wn} is no longer supported. Sigil 0.10.0+ is Postgres-only.
|
|
4
4
|
PGlite was deprecated; existing PGlite data at ~/.sigil/db is preserved but unreachable from this version.
|
|
5
5
|
Set SIGIL_DB_TYPE=postgres in ~/.sigil/.env and configure SIGIL_DB_HOST / PORT / NAME / USER / PASSWORD.
|
|
6
|
-
Run \`sigil init\` for an interactive setup.`);Ll={db:{type:"postgres",get url(){return
|
|
7
|
-
`)[0]}`,fix:"Start Postgres (e.g. `docker start sigil-pg` or your equivalent) and verify SIGIL_DB_HOST/PORT/NAME/USER/PASSWORD in ~/.sigil/.env"})}return t}function Fl(t){let{provider:e,model:r}=p.embedding;if(e&&r){let o=Object.keys(Cn).find(n=>Cn[n].some(a=>a.test(r)));o&&o!==e&&t.push({level:"fail",code:"EMBEDDING_PROVIDER_MODEL_MISMATCH",message:`EMBEDDING_PROVIDER=${e} but EMBEDDING_MODEL=${r} is a ${o} model.`,fix:Hl(e,r,o)})}if(e&&Ln[e]){let o=Ln[e];p.embedding[o]||t.push({level:"fail",code:"EMBEDDING_PROVIDER_MISSING_KEY",message:`EMBEDDING_PROVIDER=${e} but no ${Ne(o)} found.`,fix:`Set ${Ne(o)} in ~/.sigil/.env, or run 'sigil init' to reconfigure.`})}}function Ul(t){let{provider:e}=p.llm;if(e&&Rn[e]){let r=Rn[e];p.llm[r]||t.push({level:"fail",code:"LLM_PROVIDER_MISSING_KEY",message:`LLM_PROVIDER=${e} but no ${Ne(r)} found.`,fix:`Set ${Ne(r)} in ~/.sigil/.env, or run 'sigil init' to reconfigure.`})}e==="openrouter"&&p.llm.openrouterModel&&(p.llm.openrouterModel.includes("/")||t.push({level:"warn",code:"OPENROUTER_MODEL_FORMAT",message:`LLM_OPENROUTER_MODEL=${p.llm.openrouterModel} doesn't look like vendor/model format.`,fix:'Use format like "anthropic/claude-haiku-4-5" or "google/gemini-2.5-flash".'}))}function jl(t){p.db.type==="postgres"&&(!p.db.host||!p.db.database||!p.db.user)&&t.push({level:"fail",code:"DB_CONFIG_INCOMPLETE",message:"SIGIL_DB_TYPE=postgres but host/database/user missing.",fix:"Set SIGIL_DB_HOST, SIGIL_DB_NAME, SIGIL_DB_USER, SIGIL_DB_PASSWORD in ~/.sigil/.env. Run `sigil init` for an interactive setup."})}function Ne(t){return{openaiApiKey:"OPENAI_API_KEY",apiKey:"ANTHROPIC_API_KEY",openrouterApiKey:"OPENROUTER_API_KEY",voyageApiKey:"VOYAGE_API_KEY"}[t]||t}function Hl(t,e,r){let o={voyage:"voyage-3.5, voyage-3-large, voyage-code-3.5",openai:"text-embedding-3-large, text-embedding-3-small",ollama:"nomic-embed-text, mxbai-embed-large"}[t]||"(see provider docs)";return`Either set EMBEDDING_PROVIDER=${r} (matches your current model), or change EMBEDDING_MODEL to one of: ${o}`}var Cn,Rn,Ln,
|
|
8
|
-
`,"utf8")}catch{}}async function Jl(t,e=null){try{let{validateConfig:r}=await Promise.resolve().then(()=>(
|
|
9
|
-
`).filter(Boolean),o=[];for(let n of r.slice(-t))try{o.push(JSON.parse(n))}catch{}return o}async function Vl(){let t=0;try{let o=await kr(
|
|
10
|
-
`))if(o.trim())try{let n=JSON.parse(o);(n.ts?new Date(n.ts).getTime():0)>t&&(r+=1)}catch{}return r}async function zl(){try{await Kl(
|
|
6
|
+
Run \`sigil init\` for an interactive setup.`);Ll={db:{type:"postgres",get url(){return b("SIGIL_DATABASE_URL",b("DATABASE_URL",""))||null},get host(){return b("SIGIL_DB_HOST","localhost")},get port(){return Number(b("SIGIL_DB_PORT",5432))},get database(){return b("SIGIL_DB_NAME","sigil")},get user(){return b("SIGIL_DB_USER","sigil_app")},get password(){return b("SIGIL_DB_PASSWORD","")}},embedding:{get provider(){return process.env.EMBEDDING_PROVIDER||""},get model(){return process.env.EMBEDDING_MODEL||"nomic-embed-text"},get dimensions(){return Number(process.env.EMBEDDING_DIMENSIONS)||768},get ollamaHost(){return process.env.OLLAMA_HOST||"http://localhost:11434"},get openaiApiKey(){return process.env.OPENAI_API_KEY||""},get voyageApiKey(){return process.env.VOYAGE_API_KEY||""},openrouterApiKey:process.env.OPENROUTER_API_KEY||"",openrouterBaseUrl:process.env.EMBEDDING_OPENROUTER_BASE_URL||process.env.LLM_OPENROUTER_BASE_URL||"",openrouterReferer:process.env.EMBEDDING_OPENROUTER_REFERER||process.env.LLM_OPENROUTER_REFERER||"https://github.com/Anmol-Srv/sigil",openrouterTitle:process.env.EMBEDDING_OPENROUTER_TITLE||process.env.LLM_OPENROUTER_TITLE||"Sigil"},llm:{get provider(){return process.env.LLM_PROVIDER||""},get openaiApiKey(){return process.env.OPENAI_API_KEY||""},get openaiModel(){return process.env.LLM_OPENAI_MODEL||"gpt-4o-mini"},get ollamaHost(){return process.env.LLM_OLLAMA_HOST||process.env.OLLAMA_HOST||"http://localhost:11434"},get ollamaModel(){return process.env.LLM_OLLAMA_MODEL||"qwen2.5:7b"},get cliModel(){return process.env.LLM_CLI_MODEL||"haiku"},get apiKey(){return process.env.ANTHROPIC_API_KEY||""},get openrouterApiKey(){return process.env.OPENROUTER_API_KEY||""},get openrouterModel(){return process.env.LLM_OPENROUTER_MODEL||"google/gemini-flash-latest"},get openrouterBaseUrl(){return process.env.LLM_OPENROUTER_BASE_URL||""},get openrouterReferer(){return process.env.LLM_OPENROUTER_REFERER||"https://github.com/Anmol-Srv/sigil"},get openrouterTitle(){return process.env.LLM_OPENROUTER_TITLE||"Sigil"},get extractionModel(){return process.env.LLM_EXTRACTION_MODEL||""},get decisionModel(){return process.env.LLM_DECISION_MODEL||""},get entityModel(){return process.env.LLM_ENTITY_MODEL||""},get maxRetries(){return Number(process.env.LLM_MAX_RETRIES)||3},get cliTimeout(){return Number(process.env.LLM_CLI_TIMEOUT)||12e4}},output:{storage:process.env.OUTPUT_STORAGE||"local",dir:process.env.OUTPUT_DIR||"./output",s3:{endpoint:process.env.S3_ENDPOINT||"",bucket:process.env.S3_BUCKET||"",region:process.env.S3_REGION||"us-east-1",accessKey:process.env.S3_ACCESS_KEY||"",secretKey:process.env.S3_SECRET_KEY||"",publicUrl:process.env.S3_PUBLIC_URL||""}},server:{port:Number(process.env.PORT)||4e3,host:process.env.HOST||"0.0.0.0",logLevel:process.env.LOG_LEVEL||"info"},http:{enabled:b("SIGIL_HTTP_ENABLED","true")!=="false",host:b("SIGIL_HTTP_HOST","127.0.0.1"),port:Number(b("SIGIL_HTTP_PORT",7777))},network:{mode:b("SIGIL_MODE","solo"),enabled:b("SIGIL_NETWORK_ENABLED",null)===null?b("SIGIL_MODE","solo")!=="solo":b("SIGIL_NETWORK_ENABLED","false")!=="false",masterNodeId:b("SIGIL_MASTER_NODE_ID","")||null},defaults:{namespace:process.env.DEFAULT_NAMESPACE||"default"},memory:{skipThreshold:Number(process.env.MEMORY_SKIP_THRESHOLD)||.88,ambiguousThreshold:Number(process.env.MEMORY_AMBIGUOUS_THRESHOLD)||.78,minFactSimilarity:Number(process.env.MEMORY_MIN_FACT_SIMILARITY)||.45,injectionFloor:Number(process.env.MEMORY_INJECTION_FLOOR)||.6},search:{synthesize:b("SIGIL_SYNTHESIZE","true")!=="false",synthesizeModel:b("SIGIL_SYNTH_MODEL","")},ingest:{eagerExtract:b("SIGIL_EAGER_EXTRACT","true")!=="false"},hebbian:{entity:{enabled:b("SIGIL_HEBBIAN_ENTITY_ENABLED",null,"true")!=="false",eta:Number(b("SIGIL_HEBBIAN_ENTITY_ETA",null,1)),cap:Number(b("SIGIL_HEBBIAN_ENTITY_CAP",null,50)),halfLifeDays:Number(b("SIGIL_HEBBIAN_ENTITY_HALF_LIFE_DAYS",null,30)),minEffective:Number(b("SIGIL_HEBBIAN_ENTITY_MIN_EFFECTIVE",null,.5)),rrfWeight:Number(b("SIGIL_HEBBIAN_ENTITY_RRF_WEIGHT",null,.3)),maxWriteEntities:Number(b("SIGIL_HEBBIAN_ENTITY_MAX_WRITE",null,12)),expandPerSeed:Number(b("SIGIL_HEBBIAN_ENTITY_EXPAND_PER_SEED",null,3))}}},p=Ll});function _n(t){return{host:t.db.host,port:t.db.port,database:t.db.database,user:t.db.user,password:t.db.password}}var xn=c(()=>{});function bn(t){if(!t)throw new Error("url driver: SIGIL_DATABASE_URL is empty");let e;try{e=new URL(t)}catch(a){throw new Error(`url driver: invalid URL \u2014 ${a.message}`)}if(!/^postgres(ql)?:$/i.test(e.protocol))throw new Error(`url driver: expected postgres:// or postgresql:// scheme, got ${e.protocol}`);let r=e.searchParams.get("sslmode"),o=Dl(e.hostname,r),n={host:e.hostname,port:e.port?Number(e.port):5432,database:e.pathname.replace(/^\//,"")||"postgres",user:decodeURIComponent(e.username),password:decodeURIComponent(e.password)};return o!==void 0&&(n.ssl=o),e.searchParams.get("application_name")||(n.application_name="sigil"),n}function Dl(t,e){if(e==="disable")return!1;if(e==="require"||e==="verify-full"||e==="verify-ca")return{rejectUnauthorized:!0};if(e==="no-verify"||e==="prefer")return{rejectUnauthorized:!1};if(!En.some(r=>r.test(t)))return Nl.some(r=>r.test(t))?{rejectUnauthorized:!0}:{rejectUnauthorized:!1}}function Sn(t){try{let e=new URL(t).hostname;return/\.neon\.tech$/i.test(e)?"neon":/\.pooler\.supabase\.com$/i.test(e)?"supabase-pooler":/\.supabase\.co$/i.test(e)||/\.supabase\.com$/i.test(e)?"supabase":/\.rds\.amazonaws\.com$/i.test(e)?"aws-rds":/\.render\.com$/i.test(e)?"render":/\.railway\.app$/i.test(e)?"railway":/\.cockroachlabs\.cloud$/i.test(e)?"cockroachdb":En.some(r=>r.test(e))?"local":"unknown"}catch{return"unknown"}}var Nl,En,An=c(()=>{Nl=[/\.neon\.tech$/i,/\.supabase\.co$/i,/\.supabase\.com$/i,/\.pooler\.supabase\.com$/i,/\.rds\.amazonaws\.com$/i,/\.render\.com$/i,/\.railway\.app$/i,/\.cockroachlabs\.cloud$/i],En=[/^localhost$/i,/^127\.0\.0\.1$/,/^::1$/,/\.local$/i]});function Tn(t){let e=t.db.url;return e?{kind:"url",provider:Sn(e),connection:bn(e)}:{kind:"local",provider:"local",connection:_n(t)}}var In=c(()=>{xn();An()});var Mr={};A(Mr,{default:()=>m});import Pl from"knex";function Ml(t){return Array.isArray(t)?t.map(Pr):t&&typeof t=="object"?Pr(t):t}function kl(t,e){return e(Bl(t))}function Pr(t){if(!t||typeof t!="object"||t instanceof Date)return t;if(Array.isArray(t))return t.map(Pr);let e={};for(let[r,o]of Object.entries(t))e[r.replace(/_([a-z])/g,(n,a)=>a.toUpperCase())]=o;return e}function Bl(t){return t.replace(/[A-Z]/g,e=>`_${e.toLowerCase()}`)}var On,vn,m,I=c(()=>{x();In();On=Tn(p),vn=Pl({client:"pg",connection:On.connection,pool:{min:2,max:10},postProcessResponse:Ml,wrapIdentifier:kl});vn.__sigilDriver=On;m=vn});var Dn={};A(Dn,{validateConfig:()=>Nn,validateConfigDeep:()=>$l});function Nn(){let t=[];return Fl(t),Ul(t),jl(t),t}async function $l(){let t=Nn();if(p.db.type==="postgres"&&!t.some(e=>e.code.startsWith("DB_")))try{await(await Promise.resolve().then(()=>(I(),Mr))).default.raw("SELECT 1")}catch(e){t.push({level:"fail",code:"DB_UNREACHABLE",message:`Postgres at ${p.db.host}:${p.db.port}/${p.db.database} unreachable: ${e.message.split(`
|
|
7
|
+
`)[0]}`,fix:"Start Postgres (e.g. `docker start sigil-pg` or your equivalent) and verify SIGIL_DB_HOST/PORT/NAME/USER/PASSWORD in ~/.sigil/.env"})}return t}function Fl(t){let{provider:e,model:r}=p.embedding;if(e&&r){let o=Object.keys(Cn).find(n=>Cn[n].some(a=>a.test(r)));o&&o!==e&&t.push({level:"fail",code:"EMBEDDING_PROVIDER_MODEL_MISMATCH",message:`EMBEDDING_PROVIDER=${e} but EMBEDDING_MODEL=${r} is a ${o} model.`,fix:Hl(e,r,o)})}if(e&&Ln[e]){let o=Ln[e];p.embedding[o]||t.push({level:"fail",code:"EMBEDDING_PROVIDER_MISSING_KEY",message:`EMBEDDING_PROVIDER=${e} but no ${Ne(o)} found.`,fix:`Set ${Ne(o)} in ~/.sigil/.env, or run 'sigil init' to reconfigure.`})}}function Ul(t){let{provider:e}=p.llm;if(e&&Rn[e]){let r=Rn[e];p.llm[r]||t.push({level:"fail",code:"LLM_PROVIDER_MISSING_KEY",message:`LLM_PROVIDER=${e} but no ${Ne(r)} found.`,fix:`Set ${Ne(r)} in ~/.sigil/.env, or run 'sigil init' to reconfigure.`})}e==="openrouter"&&p.llm.openrouterModel&&(p.llm.openrouterModel.includes("/")||t.push({level:"warn",code:"OPENROUTER_MODEL_FORMAT",message:`LLM_OPENROUTER_MODEL=${p.llm.openrouterModel} doesn't look like vendor/model format.`,fix:'Use format like "anthropic/claude-haiku-4-5" or "google/gemini-2.5-flash".'}))}function jl(t){p.db.type==="postgres"&&(!p.db.host||!p.db.database||!p.db.user)&&t.push({level:"fail",code:"DB_CONFIG_INCOMPLETE",message:"SIGIL_DB_TYPE=postgres but host/database/user missing.",fix:"Set SIGIL_DB_HOST, SIGIL_DB_NAME, SIGIL_DB_USER, SIGIL_DB_PASSWORD in ~/.sigil/.env. Run `sigil init` for an interactive setup."})}function Ne(t){return{openaiApiKey:"OPENAI_API_KEY",apiKey:"ANTHROPIC_API_KEY",openrouterApiKey:"OPENROUTER_API_KEY",voyageApiKey:"VOYAGE_API_KEY"}[t]||t}function Hl(t,e,r){let o={voyage:"voyage-3.5, voyage-3-large, voyage-code-3.5",openai:"text-embedding-3-large, text-embedding-3-small",ollama:"nomic-embed-text, mxbai-embed-large"}[t]||"(see provider docs)";return`Either set EMBEDDING_PROVIDER=${r} (matches your current model), or change EMBEDDING_MODEL to one of: ${o}`}var Cn,Rn,Ln,Pn=c(()=>{x();Cn={voyage:[/^voyage-/],openai:[/^text-embedding-/],ollama:[/^nomic-embed/,/^mxbai-embed/,/^all-minilm/,/^bge-/,/^snowflake-/,/^granite-embedding/]},Rn={openai:"openaiApiKey",anthropic:"apiKey",openrouter:"openrouterApiKey"},Ln={openai:"openaiApiKey",voyage:"voyageApiKey",openrouter:"openrouterApiKey"}});var Br={};A(Br,{HOOK_ERROR_LOG:()=>De,LAST_CLEAN_DOCTOR_PATH:()=>Pe,clearLastCleanDoctor:()=>Xl,failClosedOnBadConfig:()=>Jl,getUnackedErrorCount:()=>Vl,markDoctorClean:()=>zl,readRecentHookErrors:()=>ql,recordHookError:()=>Mn});import{appendFile as Gl,readFile as kr,writeFile as Kl,unlink as Wl}from"node:fs/promises";import{createHash as Yl}from"node:crypto";async function Mn(t,e,r=null){try{let o={ts:new Date().toISOString(),hook:t,error:St(e?.message||String(e)),input_hash:r?Zl(r):null};await Gl(De,JSON.stringify(o)+`
|
|
8
|
+
`,"utf8")}catch{}}async function Jl(t,e=null){try{let{validateConfig:r}=await Promise.resolve().then(()=>(Pn(),Dn)),o=r().filter(n=>n.level==="fail");if(o.length===0)return!1;for(let n of o){let a=new Error(`${n.code}: ${n.message} \u2014 fix: ${n.fix}`);await Mn(t,a,e)}return!0}catch{return!1}}async function ql(t=10){let e;try{e=await kr(De,"utf8")}catch{return[]}let r=e.split(`
|
|
9
|
+
`).filter(Boolean),o=[];for(let n of r.slice(-t))try{o.push(JSON.parse(n))}catch{}return o}async function Vl(){let t=0;try{let o=await kr(Pe,"utf8");t=new Date(o.trim()).getTime()}catch{}let e;try{e=await kr(De,"utf8")}catch{return 0}let r=0;for(let o of e.split(`
|
|
10
|
+
`))if(o.trim())try{let n=JSON.parse(o);(n.ts?new Date(n.ts).getTime():0)>t&&(r+=1)}catch{}return r}async function zl(){try{await Kl(Pe,new Date().toISOString(),"utf8")}catch{}}async function Xl(){try{await Wl(Pe)}catch{}}function Zl(t){try{let e=typeof t=="string"?t:JSON.stringify(t);return Yl("sha256").update(e).digest("hex").slice(0,12)}catch{return null}}var De,Pe,$r=c(()=>{$();Le();De=fn,Pe=ln});var kn,Bn=c(()=>{kn="useandom-26T198340PX75pxJACKVERYMINDBUSHWOLF_GQZbfghjklqvwyzrict"});import{webcrypto as $n}from"node:crypto";function tp(t){if(t<0||t>1024)throw new RangeError("Wrong ID size");!ht||ht.length<t?(ht=Buffer.allocUnsafe(t*Ql),$n.getRandomValues(ht),At=0):At+t>ht.length&&($n.getRandomValues(ht),At=0),At+=t}function X(t=21){tp(t|=0);let e="";for(let r=At-t;r<At;r++)e+=kn[ht[r]&63];return e}var Ql,ht,At,Tt=c(()=>{Bn();Ql=128});async function ee({podType:t,externalId:e,name:r,namespace:o,attrs:n={},entityId:a=null,connectionId:i=null,startedAt:s=null}){if(!e)throw new Error("upsertPod requires externalId; use insertPod for custom pods");let u=`pod-${X(16)}`,f=o||p.defaults.namespace,{rows:[l]}=await m.raw(`
|
|
11
11
|
INSERT INTO pod (uid, pod_type, name, namespace, attrs, entity_id, connection_id, external_id, started_at, created_at, updated_at)
|
|
12
12
|
VALUES (?, ?, ?, ?, ?::jsonb, ?, ?, ?, ?, NOW(), NOW())
|
|
13
13
|
ON CONFLICT (pod_type, external_id, namespace) WHERE external_id IS NOT NULL DO UPDATE SET
|
|
@@ -20,9 +20,9 @@ Run \`sigil init\` for an interactive setup.`);Ll={db:{type:"postgres",get url()
|
|
|
20
20
|
updated_at = NOW()
|
|
21
21
|
WHERE id = ?`,[e,r,t])}var It=c(()=>{Tt();I();x()});function Hn({sessionId:t,transcriptPath:e=null,cwd:r=null,turnCount:o=0,model:n=null,conclusion:a=null,summary:i=null}){return{session_id:t,transcript_path:e,cwd:r,turn_count:o,model:n,conclusion:a,summary:i}}function Gn({sessionId:t,startedAt:e=new Date}={}){let o=(e instanceof Date?e:new Date(e)).toISOString().replace("T"," ").slice(0,16),n=t?t.slice(0,8):"unknown";return`claude-session ${o} (${n})`}var Un,jn,Fr=c(()=>{Ot();Un="claude_session",jn={name:"claude_session",description:"Claude Code session",identityField:"session_id",attrsSchema:{session_id:"string",transcript_path:"string",cwd:"string",turn_count:"number",model:"string",conclusion:"string",summary:"string"},visibility:"private",activeMode:"singleton-live",hotContextBudget:6,retrievalWeights:{recency:1,relevance:.7},importanceDefault:2,ttlDays:90,schemaDocPath:"kinds/claude_session.schema.md",writePolicy:"origin-only",resolveActiveScope:async()=>{try{let t=await Ur();return t?[t]:[]}catch{return[]}}}});var $e={};A($e,{CURSOR_PATH:()=>vt,endActiveSession:()=>fp,ensureActiveSession:()=>jr,getActiveCursor:()=>up,getActiveSessionPodUid:()=>Ur});import{writeFile as rp,readFile as op,unlink as np}from"node:fs/promises";import{existsSync as ap,mkdirSync as ip}from"node:fs";import{dirname as Kn}from"node:path";async function Be(){try{let t=await op(vt,"utf8");return JSON.parse(t)}catch{return null}}async function Wn(t){ap(Kn(vt))||ip(Kn(vt),{recursive:!0}),await rp(vt,JSON.stringify(t,null,2),"utf8")}async function jr({sessionId:t,transcriptPath:e=null,cwd:r=null,model:o=null,namespace:n=null}){if(!t)throw new Error("ensureActiveSession requires sessionId from hook stdin");let a=n||p.defaults.namespace,i=await Be();if(i&&i.session_id===t&&i.namespace===a){let f=await re(i.pod_uid);if(f)return await Me(f.id,{turn_count:(lp(f.attrs)||0)+1}),await cp(i),f}let s=new Date,{pod:u}=await ee({podType:Un,externalId:t,name:Gn({sessionId:t,startedAt:s}),namespace:a,attrs:Hn({sessionId:t,transcriptPath:e,cwd:r,turnCount:1,model:o}),startedAt:s});return await Wn({session_id:t,pod_uid:u.uid,namespace:a,started_at:u.startedAt??s.toISOString(),last_seen_at:new Date().toISOString()}),u}async function cp(t){await Wn({...t,last_seen_at:new Date().toISOString()})}async function Ur({allowStale:t=!1}={}){let e=await Be();return!e||!e.pod_uid||!t&&e.started_at&&Date.now()-new Date(e.started_at).getTime()>sp?null:e.pod_uid}async function up(){return Be()}async function fp({conclusion:t=null,summary:e=null}={}){let r=await Be();if(!r)return null;let o=await re(r.pod_uid);if(o){if(t||e){let n={};t&&(n.conclusion=t),e&&(n.summary=e),await Me(o.id,n)}await Fn(o.id)}try{await np(vt)}catch{}return o}function lp(t){if(!t)return 0;if(typeof t=="object")return t.turn_count??0;try{return JSON.parse(t).turn_count??0}catch{return 0}}var vt,sp,Ot=c(()=>{It();Fr();x();$();vt=pn,sp=360*60*1e3});var ie={};A(ie,{attach:()=>Fe,attachDocument:()=>Hr,attachEntity:()=>pp,attachFact:()=>ae,detach:()=>dp,factIdsInPod:()=>gp,listMembers:()=>mp,listPodsForMember:()=>hp});async function Fe(t,e,r,o="primary"){let{rowCount:n}=await m.raw(`INSERT INTO pod_membership (pod_id, member_type, member_id, role)
|
|
22
22
|
VALUES (?, ?, ?, ?)
|
|
23
|
-
ON CONFLICT (pod_id, member_type, member_id) DO NOTHING`,[t,e,r,o]);return n>0&&(e==="fact"?await ne(t,{facts:1}):e==="document"&&await ne(t,{docs:1})),{attached:n>0}}async function dp(t,e,r){let o=await m("pod_membership").where({podId:t,memberType:e,memberId:r}).del();return o>0&&(e==="fact"?await ne(t,{facts:-1}):e==="document"&&await ne(t,{docs:-1})),{detached:o>0}}async function mp(t,{memberType:e,limit:r=20}={}){if(!e)throw new Error("listMembers requires a memberType filter");return m(`${e} as t`).join("pod_membership as pm",function(){this.on("pm.member_id","=","t.id").andOnVal("pm.member_type","=",e)}).where("pm.pod_id",t).orderBy("pm.createdAt","desc").limit(r).select("t.*","pm.role as podRole","pm.createdAt as attachedAt")}async function hp(t,e){return m("pod as p").join("pod_membership as pm","pm.pod_id","p.id").where("pm.memberType",t).where("pm.memberId",e).select("p.*","pm.role as podRole")}async function gp(t){return await m("pod_membership").where({podId:t,memberType:"fact"}).pluck("memberId")}var ae,Hr,pp,Ue=c(()=>{I();It();ae=(t,e,r)=>Fe(t,"fact",e,r),Hr=(t,e,r)=>Fe(t,"document",e,r),pp=(t,e,r)=>Fe(t,"entity",e,r)});var qr={};A(qr,{POD_TYPE:()=>Kr,deriveProjectRoot:()=>Jr,ensureProjectPod:()=>Yr,formatForDisplay:()=>_p,membership:()=>ie,projectKind:()=>Wr});import{execFileSync as yp}from"node:child_process";import{basename as Yn}from"node:path";async function Yr({cwd:t,namespace:e=null}){if(!t)return null;let r=Jr(t),o=e||p.defaults.namespace,a=(r!==t?!1:Gr(t)===t)?r:Gr(t),{pod:i}=await ee({podType:Kr,externalId:r,name:Yn(r)||r,namespace:o,attrs:{root_path:r,git_root:a||null,display_name:Yn(r)||r,discovered_at:new Date().toISOString()},startedAt:new Date});return i}function Jr(t){return Gr(t)||t}function Gr(t){try{return yp("git",["rev-parse","--show-toplevel"],{cwd:t,encoding:"utf8",stdio:["ignore","pipe","ignore"]}).trim()||null}catch{return null}}async function wp(){try{let{getActiveCursor:t}=await Promise.resolve().then(()=>(Ot(),$e));return(await t())?.cwd||null}catch{return null}}function _p(t){let e=xp(t.attrs);return{uid:t.uid,name:t.name,rootPath:e.root_path,gitRoot:e.git_root,displayName:e.display_name,discoveredAt:e.discovered_at,memberFactCount:t.memberFactCount,memberDocCount:t.memberDocCount}}function xp(t){if(!t)return{};if(typeof t=="object")return t;try{return JSON.parse(t)}catch{return{}}}var Kr,Wr,se=c(()=>{It();Ue();x();Kr="project",Wr={name:"project",description:"Code project rooted at a git repo or directory",identityField:"root_path",attrsSchema:{root_path:"string",git_root:"string",display_name:"string",discovered_at:"string"},visibility:"shared",activeMode:"multi-active",hotContextBudget:4,retrievalWeights:{recency:.6,relevance:1},importanceDefault:3,ttlDays:null,schemaDocPath:"kinds/project.schema.md",writePolicy:"origin-only",resolveActiveScope:async(t={})=>{let e=t.cwd||await wp();if(!e)return[];let r=t.namespace||p.defaults.namespace,o=Jr(e),n=await oe({podType:Kr,externalId:o,namespace:r});return n?[n.uid]:[]}}});var Jn={};A(Jn,{ensureActivePodsForHook:()=>Ep});async function Ep({sessionId:t,cwd:e=null,transcriptPath:r=null,model:o=null,namespace:n=null}){let a=null;if(t)try{a=await jr({sessionId:t,transcriptPath:r,cwd:e,model:o,namespace:n})}catch{a=null}let i=null;if(e)try{i=await Yr({cwd:e,namespace:n})}catch{i=null}let s=[a,i].filter(Boolean).map(u=>u.uid);return{sessionPod:a,projectPod:i,podUids:s}}var qn=c(()=>{Ot();se()});var Vn={};A(Vn,{chat:()=>bp,meta:()=>Sp,setup:()=>Ap});async function bp(t,{model:e,jsonMode:r=!1}={}){let o=e||p.llm.openaiModel,n=[{role:"user",content:t}];r&&!t.toLowerCase().includes("json")&&n.unshift({role:"system",content:"Respond with valid JSON."});let a={model:o,messages:n};r&&(a.response_format={type:"json_object"});let i=await fetch("https://api.openai.com/v1/chat/completions",{method:"POST",headers:{"Content-Type":"application/json",Authorization:`Bearer ${p.llm.openaiApiKey}`},body:JSON.stringify(a)});if(!i.ok){let l=await i.text();throw new Error(`OpenAI error ${i.status}: ${l}`)}let s=await i.json(),u=s.choices[0].message.content.trim(),f=s.usage||{};return{text:u,inputTokens:f.prompt_tokens||0,outputTokens:f.completion_tokens||0,model:o}}async function Ap({existing:t,clack:e}){let r=t.OPENAI_API_KEY||"",o=await e.text({message:"OpenAI API key (paste, then Enter)",placeholder:r?"(keep existing \u2014 press Enter)":"sk-proj-...",validate:n=>{if(!n&&!r)return"API key is required";if(n&&!n.startsWith("sk-"))return'OpenAI keys start with "sk-" \u2014 check paste'}});return e.isCancel(o)?null:{env:{OPENAI_API_KEY:o||r}}}var Sp,zn=c(()=>{x();Sp={id:"openai",label:"OpenAI",hint:"gpt-4o-mini"}});function W(t){return Math.ceil((t||"").length/4)}function Vr(t,e,r){let o=Tp[t];return o?(e*o.input+r*o.output)/1e6:0}function ce({provider:t,model:e,caller:r,input:o,response:n,inputTokens:a,outputTokens:i,cost:s,durationMs:u,status:f,error:l}){m("llm_log").insert({provider:t,model:e,caller:r,input:o?.slice(0,1e4),response:n?.slice(0,1e4),inputTokens:a,outputTokens:i,cost:s,durationMs:u,status:f,error:l?.slice(0,2e3)}).catch(h=>console.error("[llm-log] Write failed:",h.message))}async function zr(t,e=3){for(let r=1;r<=e;r++)try{return await t()}catch(o){if(r===e)throw o;let n=Math.min(1e3*2**(r-1),1e4);await new Promise(a=>setTimeout(a,n))}}var Tp,ue=c(()=>{I();Tp={"gpt-4o-mini":{input:.15,output:.6},"gpt-4o":{input:2.5,output:10},"gpt-4.1-nano":{input:.1,output:.4},"gpt-4.1-mini":{input:.4,output:1.6},"claude-haiku-4-5-20251001":{input:.8,output:4},"claude-sonnet-4-6":{input:3,output:15},"claude-opus-4-6":{input:15,output:75}}});var Xn={};A(Xn,{chat:()=>Op,meta:()=>vp,setup:()=>Cp});async function Ip(){if(!Xr){let{default:t}=await import("@anthropic-ai/sdk");Xr=new t({apiKey:p.llm.apiKey})}return Xr}async function Op(t,{model:e,jsonMode:r=!1}={}){let o=e||"claude-haiku-4-5-20251001",n=await Ip(),a=[{role:"user",content:t}],i=r?"Respond with valid JSON only. No explanation or wrapping.":void 0,s=await n.messages.create({model:o,max_tokens:4096,messages:a,...i&&{system:i}});return{text:s.content[0].text.trim(),inputTokens:s.usage?.input_tokens||W(t),outputTokens:s.usage?.output_tokens||W(s.content[0].text),model:o}}async function Cp({existing:t,clack:e}){let r=t.ANTHROPIC_API_KEY||"",o=await e.text({message:"Anthropic API key (paste, then Enter)",placeholder:r?"(keep existing \u2014 press Enter)":"sk-ant-...",validate:n=>{if(!n&&!r)return"API key is required";if(n&&!n.startsWith("sk-ant-"))return'Anthropic keys start with "sk-ant-" \u2014 check paste'}});return e.isCancel(o)?null:{env:{ANTHROPIC_API_KEY:o||r}}}var Xr,vp,Zn=c(()=>{x();ue();Xr=null;vp={id:"anthropic",label:"Anthropic",hint:"Claude Haiku \u2014 requires API key"}});var ta={};A(ta,{chat:()=>Lp,meta:()=>Np,setup:()=>
|
|
23
|
+
ON CONFLICT (pod_id, member_type, member_id) DO NOTHING`,[t,e,r,o]);return n>0&&(e==="fact"?await ne(t,{facts:1}):e==="document"&&await ne(t,{docs:1})),{attached:n>0}}async function dp(t,e,r){let o=await m("pod_membership").where({podId:t,memberType:e,memberId:r}).del();return o>0&&(e==="fact"?await ne(t,{facts:-1}):e==="document"&&await ne(t,{docs:-1})),{detached:o>0}}async function mp(t,{memberType:e,limit:r=20}={}){if(!e)throw new Error("listMembers requires a memberType filter");return m(`${e} as t`).join("pod_membership as pm",function(){this.on("pm.member_id","=","t.id").andOnVal("pm.member_type","=",e)}).where("pm.pod_id",t).orderBy("pm.createdAt","desc").limit(r).select("t.*","pm.role as podRole","pm.createdAt as attachedAt")}async function hp(t,e){return m("pod as p").join("pod_membership as pm","pm.pod_id","p.id").where("pm.memberType",t).where("pm.memberId",e).select("p.*","pm.role as podRole")}async function gp(t){return await m("pod_membership").where({podId:t,memberType:"fact"}).pluck("memberId")}var ae,Hr,pp,Ue=c(()=>{I();It();ae=(t,e,r)=>Fe(t,"fact",e,r),Hr=(t,e,r)=>Fe(t,"document",e,r),pp=(t,e,r)=>Fe(t,"entity",e,r)});var qr={};A(qr,{POD_TYPE:()=>Kr,deriveProjectRoot:()=>Jr,ensureProjectPod:()=>Yr,formatForDisplay:()=>_p,membership:()=>ie,projectKind:()=>Wr});import{execFileSync as yp}from"node:child_process";import{basename as Yn}from"node:path";async function Yr({cwd:t,namespace:e=null}){if(!t)return null;let r=Jr(t),o=e||p.defaults.namespace,a=(r!==t?!1:Gr(t)===t)?r:Gr(t),{pod:i}=await ee({podType:Kr,externalId:r,name:Yn(r)||r,namespace:o,attrs:{root_path:r,git_root:a||null,display_name:Yn(r)||r,discovered_at:new Date().toISOString()},startedAt:new Date});return i}function Jr(t){return Gr(t)||t}function Gr(t){try{return yp("git",["rev-parse","--show-toplevel"],{cwd:t,encoding:"utf8",stdio:["ignore","pipe","ignore"]}).trim()||null}catch{return null}}async function wp(){try{let{getActiveCursor:t}=await Promise.resolve().then(()=>(Ot(),$e));return(await t())?.cwd||null}catch{return null}}function _p(t){let e=xp(t.attrs);return{uid:t.uid,name:t.name,rootPath:e.root_path,gitRoot:e.git_root,displayName:e.display_name,discoveredAt:e.discovered_at,memberFactCount:t.memberFactCount,memberDocCount:t.memberDocCount}}function xp(t){if(!t)return{};if(typeof t=="object")return t;try{return JSON.parse(t)}catch{return{}}}var Kr,Wr,se=c(()=>{It();Ue();x();Kr="project",Wr={name:"project",description:"Code project rooted at a git repo or directory",identityField:"root_path",attrsSchema:{root_path:"string",git_root:"string",display_name:"string",discovered_at:"string"},visibility:"shared",activeMode:"multi-active",hotContextBudget:4,retrievalWeights:{recency:.6,relevance:1},importanceDefault:3,ttlDays:null,schemaDocPath:"kinds/project.schema.md",writePolicy:"origin-only",resolveActiveScope:async(t={})=>{let e=t.cwd||await wp();if(!e)return[];let r=t.namespace||p.defaults.namespace,o=Jr(e),n=await oe({podType:Kr,externalId:o,namespace:r});return n?[n.uid]:[]}}});var Jn={};A(Jn,{ensureActivePodsForHook:()=>Ep});async function Ep({sessionId:t,cwd:e=null,transcriptPath:r=null,model:o=null,namespace:n=null}){let a=null;if(t)try{a=await jr({sessionId:t,transcriptPath:r,cwd:e,model:o,namespace:n})}catch{a=null}let i=null;if(e)try{i=await Yr({cwd:e,namespace:n})}catch{i=null}let s=[a,i].filter(Boolean).map(u=>u.uid);return{sessionPod:a,projectPod:i,podUids:s}}var qn=c(()=>{Ot();se()});var Vn={};A(Vn,{chat:()=>bp,meta:()=>Sp,setup:()=>Ap});async function bp(t,{model:e,jsonMode:r=!1}={}){let o=e||p.llm.openaiModel,n=[{role:"user",content:t}];r&&!t.toLowerCase().includes("json")&&n.unshift({role:"system",content:"Respond with valid JSON."});let a={model:o,messages:n};r&&(a.response_format={type:"json_object"});let i=await fetch("https://api.openai.com/v1/chat/completions",{method:"POST",headers:{"Content-Type":"application/json",Authorization:`Bearer ${p.llm.openaiApiKey}`},body:JSON.stringify(a)});if(!i.ok){let l=await i.text();throw new Error(`OpenAI error ${i.status}: ${l}`)}let s=await i.json(),u=s.choices[0].message.content.trim(),f=s.usage||{};return{text:u,inputTokens:f.prompt_tokens||0,outputTokens:f.completion_tokens||0,model:o}}async function Ap({existing:t,clack:e}){let r=t.OPENAI_API_KEY||"",o=await e.text({message:"OpenAI API key (paste, then Enter)",placeholder:r?"(keep existing \u2014 press Enter)":"sk-proj-...",validate:n=>{if(!n&&!r)return"API key is required";if(n&&!n.startsWith("sk-"))return'OpenAI keys start with "sk-" \u2014 check paste'}});return e.isCancel(o)?null:{env:{OPENAI_API_KEY:o||r}}}var Sp,zn=c(()=>{x();Sp={id:"openai",label:"OpenAI",hint:"gpt-4o-mini"}});function W(t){return Math.ceil((t||"").length/4)}function Vr(t,e,r){let o=Tp[t];return o?(e*o.input+r*o.output)/1e6:0}function ce({provider:t,model:e,caller:r,input:o,response:n,inputTokens:a,outputTokens:i,cost:s,durationMs:u,status:f,error:l}){m("llm_log").insert({provider:t,model:e,caller:r,input:o?.slice(0,1e4),response:n?.slice(0,1e4),inputTokens:a,outputTokens:i,cost:s,durationMs:u,status:f,error:l?.slice(0,2e3)}).catch(h=>console.error("[llm-log] Write failed:",h.message))}async function zr(t,e=3){for(let r=1;r<=e;r++)try{return await t()}catch(o){if(r===e)throw o;let n=Math.min(1e3*2**(r-1),1e4);await new Promise(a=>setTimeout(a,n))}}var Tp,ue=c(()=>{I();Tp={"gpt-4o-mini":{input:.15,output:.6},"gpt-4o":{input:2.5,output:10},"gpt-4.1-nano":{input:.1,output:.4},"gpt-4.1-mini":{input:.4,output:1.6},"claude-haiku-4-5-20251001":{input:.8,output:4},"claude-sonnet-4-6":{input:3,output:15},"claude-opus-4-6":{input:15,output:75}}});var Xn={};A(Xn,{chat:()=>Op,meta:()=>vp,setup:()=>Cp});async function Ip(){if(!Xr){let{default:t}=await import("@anthropic-ai/sdk");Xr=new t({apiKey:p.llm.apiKey})}return Xr}async function Op(t,{model:e,jsonMode:r=!1}={}){let o=e||"claude-haiku-4-5-20251001",n=await Ip(),a=[{role:"user",content:t}],i=r?"Respond with valid JSON only. No explanation or wrapping.":void 0,s=await n.messages.create({model:o,max_tokens:4096,messages:a,...i&&{system:i}});return{text:s.content[0].text.trim(),inputTokens:s.usage?.input_tokens||W(t),outputTokens:s.usage?.output_tokens||W(s.content[0].text),model:o}}async function Cp({existing:t,clack:e}){let r=t.ANTHROPIC_API_KEY||"",o=await e.text({message:"Anthropic API key (paste, then Enter)",placeholder:r?"(keep existing \u2014 press Enter)":"sk-ant-...",validate:n=>{if(!n&&!r)return"API key is required";if(n&&!n.startsWith("sk-ant-"))return'Anthropic keys start with "sk-ant-" \u2014 check paste'}});return e.isCancel(o)?null:{env:{ANTHROPIC_API_KEY:o||r}}}var Xr,vp,Zn=c(()=>{x();ue();Xr=null;vp={id:"anthropic",label:"Anthropic",hint:"Claude Haiku \u2014 requires API key"}});var ta={};A(ta,{chat:()=>Lp,meta:()=>Np,setup:()=>Dp});async function Lp(t,{model:e,jsonMode:r=!1}={}){let o=e||p.llm.openrouterModel;if(!p.llm.openrouterApiKey)throw new Error("OPENROUTER_API_KEY is not set");if(!o)throw new Error("No OpenRouter model resolved. Set LLM_OPENROUTER_MODEL or pass `model`.");let n=[{role:"user",content:t}];r&&!t.toLowerCase().includes("json")&&n.unshift({role:"system",content:"Respond with valid JSON."});let a={model:o,messages:n};r&&(a.response_format={type:"json_object"});let i=(p.llm.openrouterBaseUrl||Rp).replace(/\/+$/,""),s={"Content-Type":"application/json",Authorization:`Bearer ${p.llm.openrouterApiKey}`};p.llm.openrouterReferer&&(s["HTTP-Referer"]=p.llm.openrouterReferer),p.llm.openrouterTitle&&(s["X-Title"]=p.llm.openrouterTitle);let u=await fetch(`${i}/chat/completions`,{method:"POST",headers:s,body:JSON.stringify(a)});if(!u.ok){let g=await u.text();throw new Error(`OpenRouter error ${u.status}: ${g}`)}let f=await u.json(),h=(f.choices?.[0]?.message?.content||"").trim(),d=f.usage||{};return{text:h,inputTokens:d.prompt_tokens||0,outputTokens:d.completion_tokens||0,model:f.model||o}}async function Dp({existing:t,clack:e}){let r={},o=t.OPENROUTER_API_KEY||"",n=await e.text({message:"OpenRouter API key (paste, then Enter)",placeholder:o?"(keep existing \u2014 press Enter)":"sk-or-v1-...",validate:u=>{if(!u&&!o)return"API key is required";if(u&&!u.startsWith("sk-or-"))return'OpenRouter keys start with "sk-or-" \u2014 check paste'}});if(e.isCancel(n))return null;r.OPENROUTER_API_KEY=n||o;let a=t.LLM_OPENROUTER_MODEL||"",i=await e.text({message:"OpenRouter model (vendor/model)",placeholder:a||Qn,validate:u=>{if(u&&!u.includes("/"))return'OpenRouter models are "vendor/model" \u2014 e.g. google/gemini-flash-latest'}});if(e.isCancel(i))return null;r.LLM_OPENROUTER_MODEL=i||a||Qn;let s=await e.select({message:"Configure per-task model overrides? (advanced \u2014 better quality / cost)",options:[{value:"no",label:"No, use one model everywhere",hint:"simpler \u2014 debug one model"},{value:"yes",label:"Yes, configure smart split",hint:"~5\xD7 cheaper extraction + better AUDM/synthesis"}],initialValue:"no"});if(e.isCancel(s))return null;if(s==="yes"){let u=await e.text({message:"Extraction model (high-volume; cheap matters)",placeholder:t.LLM_EXTRACTION_MODEL||Ct.extraction});if(e.isCancel(u))return null;r.LLM_EXTRACTION_MODEL=u||t.LLM_EXTRACTION_MODEL||Ct.extraction;let f=await e.text({message:"Decision model (AUDM; smart matters)",placeholder:t.LLM_DECISION_MODEL||Ct.decision});if(e.isCancel(f))return null;r.LLM_DECISION_MODEL=f||t.LLM_DECISION_MODEL||Ct.decision;let l=await e.text({message:"Synthesis model (read-time answer composition)",placeholder:t.SIGIL_SYNTH_MODEL||Ct.synthesis});if(e.isCancel(l))return null;r.SIGIL_SYNTH_MODEL=l||t.SIGIL_SYNTH_MODEL||Ct.synthesis}return e.note(`OpenRouter can drive both LLM calls and embeddings.
|
|
24
24
|
You will pick an embedding provider in the next step \u2014 "openrouter" is an option,
|
|
25
|
-
or you can use a direct provider (Ollama / OpenAI / Voyage) for embeddings.`,"OpenRouter scope"),{env:r}}var Rp,Np,Qn,Ct,ea=c(()=>{x();Rp="https://openrouter.ai/api/v1";Np={id:"openrouter",label:"OpenRouter",hint:"one key, many models (Anthropic / OpenAI / Meta / ...)"},Qn="google/gemini-flash-latest",Ct={extraction:"openrouter:qwen/qwen3.5-flash",decision:"openrouter:anthropic/claude-sonnet-latest",synthesis:"openrouter:anthropic/claude-sonnet-latest"}});var ra={};A(ra,{chat:()=>$p,meta:()=>Fp,setup:()=>Up});import{spawn as
|
|
25
|
+
or you can use a direct provider (Ollama / OpenAI / Voyage) for embeddings.`,"OpenRouter scope"),{env:r}}var Rp,Np,Qn,Ct,ea=c(()=>{x();Rp="https://openrouter.ai/api/v1";Np={id:"openrouter",label:"OpenRouter",hint:"one key, many models (Anthropic / OpenAI / Meta / ...)"},Qn="google/gemini-flash-latest",Ct={extraction:"openrouter:qwen/qwen3.5-flash",decision:"openrouter:anthropic/claude-sonnet-latest",synthesis:"openrouter:anthropic/claude-sonnet-latest"}});var ra={};A(ra,{chat:()=>$p,meta:()=>Fp,setup:()=>Up});import{spawn as Pp}from"node:child_process";function Bp(t,e){let r=p.llm.cliTimeout||12e4;return new Promise((o,n)=>{let a=Pp("claude",t,{stdio:["pipe","pipe","pipe"]}),i=setTimeout(()=>{a.kill("SIGTERM"),n(new Error(`claude CLI timed out after ${r}ms`))},r),s="",u="";a.stdout.on("data",f=>{s+=f}),a.stderr.on("data",f=>{u+=f}),a.on("error",f=>{clearTimeout(i),n(new Error(`Failed to spawn claude CLI: ${f.message}`))}),a.on("close",f=>{clearTimeout(i),o({stdout:s,stderr:u,code:f})}),a.stdin.write(e),a.stdin.end()})}async function $p(t,{model:e,jsonMode:r=!1}={}){let o=e||p.llm.cliModel||"haiku",n=Mp[o]||o,a=["-p","--model",n,"--output-format","json"];r&&a.push("--json-schema",kp);let{stdout:i,stderr:s,code:u}=await Bp(a,t);if(u!==0)throw new Error(`claude CLI exited ${u}: ${(s||i).slice(0,500)}`);let f;try{f=JSON.parse(i)}catch{return{text:i.trim(),inputTokens:W(t),outputTokens:W(i),model:n}}if(f.is_error)throw new Error(`claude CLI error: ${f.result||"unknown error"}`);let l=r&&f.structured_output?JSON.stringify(f.structured_output):(f.result||"").trim(),h=f.usage||{};return{text:l,inputTokens:h.input_tokens||W(t),outputTokens:h.output_tokens||W(l),model:n,cost:f.total_cost_usd||0}}async function Up(){return{env:{}}}var Mp,kp,Fp,oa=c(()=>{x();ue();Mp={"claude-haiku-4-5-20251001":"haiku","claude-sonnet-4-6":"sonnet","claude-opus-4-6":"opus"},kp=JSON.stringify({type:"object",additionalProperties:!0});Fp={id:"claude-cli",label:"Claude Code",hint:"uses your existing subscription \u2014 no extra API key"}});var na={};A(na,{chat:()=>jp,meta:()=>Hp,setup:()=>Gp});async function jp(t,{model:e,jsonMode:r=!1}={}){let o=e||p.llm.ollamaModel,n=`${p.llm.ollamaHost}/api/chat`,a={model:o,messages:[{role:"user",content:t}],stream:!1};r&&(a.format="json");let i=await fetch(n,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(a)});if(!i.ok){let u=await i.text();throw new Error(`Ollama error ${i.status}: ${u}`)}let s=await i.json();return{text:s.message.content.trim(),inputTokens:s.prompt_eval_count||W(t),outputTokens:s.eval_count||W(s.message.content),model:o}}async function Gp({existing:t,clack:e}){let r=t.OLLAMA_HOST||"http://localhost:11434",o=await e.text({message:"Ollama host",placeholder:r,initialValue:r,validate:n=>{if(n&&!/^https?:\/\//.test(n))return"Must start with http:// or https://"}});return e.isCancel(o)?null:{env:{OLLAMA_HOST:o||r}}}var Hp,aa=c(()=>{x();ue();Hp={id:"ollama",label:"Ollama",hint:"local models \u2014 no API cost"}});function je(t,e){if(e<1)return[];let r=[];for(let o=0;o<t.length;o+=e)r.push(t.slice(o,o+e));return r}var Zr=c(()=>{});var ia={};A(ia,{embedBatch:()=>Wp});async function Wp(t,{model:e,ollamaHost:r}){let o=je(t,Kp),n=[];for(let a of o){let i=await fetch(`${r}/api/embed`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({model:e,input:a})});if(!i.ok)throw new Error(`Ollama embed failed: ${i.status} ${await i.text()}`);let s=await i.json();n.push(...s.embeddings)}return n}var Kp,sa=c(()=>{Zr();Kp=50});var ca={};A(ca,{embedBatch:()=>Yp});async function Yp(t,{model:e,openaiApiKey:r,dimensions:o}={}){let n={model:e,input:t};o&&/^text-embedding-3/.test(e)&&(n.dimensions=o);let a=await fetch("https://api.openai.com/v1/embeddings",{method:"POST",headers:{"Content-Type":"application/json",Authorization:`Bearer ${r}`},body:JSON.stringify(n)});if(!a.ok)throw new Error(`OpenAI embed failed: ${a.status} ${await a.text()}`);return(await a.json()).data.map(s=>s.embedding)}var ua=c(()=>{});var fa={};A(fa,{embedBatch:()=>qp});async function qp(t,{model:e,voyageApiKey:r,inputType:o="document",dimensions:n}={}){if(!r)throw new Error("VOYAGE_API_KEY is not set. Get one at dashboard.voyageai.com.");let a=je(t,Jp),i=[];for(let s of a){let u={input:s,model:e||"voyage-3-large",input_type:o==="query"?"query":"document"};n&&(u.output_dimension=n);let f=await fetch("https://api.voyageai.com/v1/embeddings",{method:"POST",headers:{"Content-Type":"application/json",Authorization:`Bearer ${r}`},body:JSON.stringify(u)});if(!f.ok){let d=await f.text();throw new Error(`Voyage embed failed: ${f.status} ${d}`)}let h=[...(await f.json()).data].sort((d,g)=>d.index-g.index);i.push(...h.map(d=>d.embedding))}return i}var Jp,la=c(()=>{Zr();Jp=50});var pa={};A(pa,{embedBatch:()=>zp});async function zp(t,{model:e,openrouterApiKey:r,openrouterBaseUrl:o,openrouterReferer:n,openrouterTitle:a,dimensions:i}={}){if(!r)throw new Error("OPENROUTER_API_KEY is not set");if(!e)throw new Error('No OpenRouter embedding model resolved. Set EMBEDDING_MODEL (e.g. "openai/text-embedding-3-large").');let s={model:e,input:t};i&&/(^|\/)text-embedding-3/.test(e)&&(s.dimensions=i);let u=(o||Vp).replace(/\/+$/,""),f={"Content-Type":"application/json",Authorization:`Bearer ${r}`};n&&(f["HTTP-Referer"]=n),a&&(f["X-Title"]=a);let l=await fetch(`${u}/embeddings`,{method:"POST",headers:f,body:JSON.stringify(s)});if(!l.ok)throw new Error(`OpenRouter embed failed: ${l.status} ${await l.text()}`);return[...(await l.json()).data].sort((g,y)=>g.index-y.index).map(g=>g.embedding)}var Vp,da=c(()=>{Vp="https://openrouter.ai/api/v1"});import{spawn as Xp}from"node:child_process";async function ro(t){if(!Qr[t]){let e=eo[t];if(!e)throw new Error(`Unknown LLM provider: "${t}". Available: ${Object.keys(eo).join(", ")}`);let r=await e();Qr[t]=r.chat}return Qr[t]}async function ha(t){if(!to[t]){let e=ma[t];if(!e)throw new Error(`Unknown embedding provider: "${t}". Available: ${Object.keys(ma).join(", ")}`);let r=await e();to[t]=r.embedBatch}return to[t]}function ga(t,e){if(!t)return{provider:e,model:null};let r=t.indexOf(":");return r>0&&eo[t.slice(0,r)]?{provider:t.slice(0,r),model:t.slice(r+1)}:{provider:e,model:t}}async function ya(){let t=p.llm.ollamaHost||p.embedding.ollamaHost||"http://localhost:11434";try{return(await fetch(`${t}/api/tags`,{signal:AbortSignal.timeout(2e3)})).ok}catch{return!1}}function Zp(){return new Promise(t=>{let e=Xp("claude",["--version"],{stdio:"pipe"});e.on("error",()=>t(!1)),e.on("close",r=>t(r===0)),setTimeout(()=>{e.kill(),t(!1)},3e3)})}async function wa(){if(k)return k;if(p.llm.provider)return k=p.llm.provider,k;if(p.llm.openrouterApiKey)return k="openrouter",k;if(p.llm.apiKey)return k="anthropic",k;if(p.llm.openaiApiKey)return k="openai",k;if(await ya())return k="ollama",k;if(await Zp())return k="claude-cli",k;throw new Error(`No LLM provider available. Either:
|
|
26
26
|
- Set LLM_PROVIDER (openai, anthropic, openrouter, ollama, claude-cli)
|
|
27
27
|
- Set ANTHROPIC_API_KEY, OPENAI_API_KEY, or OPENROUTER_API_KEY
|
|
28
28
|
- Start Ollama locally
|
|
@@ -47,7 +47,7 @@ or you can use a direct provider (Ollama / OpenAI / Voyage) for embeddings.`,"Op
|
|
|
47
47
|
${ao(r,e+1)}`:`- ${r}`).join(`
|
|
48
48
|
`);if(typeof t=="object"){let r=" ".repeat(e);return Object.entries(t).filter(([,o])=>o!=null).map(([o,n])=>typeof n=="object"?`${r}${o}:
|
|
49
49
|
${ao(n,e+1)}`:`${r}${o}: ${n}`).join(`
|
|
50
|
-
`)}return String(t)}var Ra=c(()=>{});function La(t,{format:e,filePath:r,contentType:o}={}){let n=e||cd(o)||ud(r)||fd(t);return(sd[n]||no)(t)}function cd(t){if(!t)return null;let e=t.split(";")[0].trim();return id[e]||null}function ud(t){if(!t)return null;let e=t.match(/\.[^.]+$/)?.[0]?.toLowerCase();return e&&ad[e]||null}function fd(t){if(!t)return"text";let e=t.trim();return e.startsWith("{")||e.startsWith("[")?"json":e.startsWith("<!DOCTYPE")||e.startsWith("<html")?"html":e.match(/^#{1,6}\s/m)?"markdown":e.match(/^(import|export|function|class|const|let|var|def|func|package)\s/m)?"code":"text"}var ad,id,sd,Na=c(()=>{Sa();Aa();Ia();va();Ra();ad={".md":"markdown",".mdx":"markdown",".txt":"text",".html":"html",".htm":"html",".json":"json",".js":"code",".ts":"code",".jsx":"code",".tsx":"code",".py":"code",".go":"code",".rs":"code",".java":"code",".rb":"code",".php":"code",".c":"code",".cpp":"code",".h":"code",".cs":"code",".swift":"code",".kt":"code",".yaml":"text",".yml":"text",".toml":"text",".ini":"text",".cfg":"text",".env":"text",".csv":"text",".sql":"code",".sh":"code",".bash":"code",".zsh":"code"},id={"text/markdown":"markdown","text/html":"html","text/plain":"text","application/json":"json","text/javascript":"code","application/javascript":"code","text/x-python":"code"},sd={markdown:ba,text:no,html:Ta,code:Oa,json:Ca}});function ld(t,{maxTokens:e=512,overlapTokens:r=50}={}){if(!t?.trim())return[];let o=e*4,n=r*4;if(t.length<=o)return[{content:t.trim(),index:0}];let a=pd(t),i=[],s="",u="";for(let f of a){if(f.length>o){s.trim()&&(i.push({content:s.trim(),index:i.length}),u=io(s,n),s="");let l=dd(f,o,n);for(let h of l)i.push({content:h.trim(),index:i.length});u=io(i[i.length-1].content,n);continue}(s+f).length>o?(i.push({content:s.trim(),index:i.length}),u=io(s,n),s=u+f):s+=f}return s.trim()&&i.push({content:s.trim(),index:i.length}),i}function
|
|
50
|
+
`)}return String(t)}var Ra=c(()=>{});function La(t,{format:e,filePath:r,contentType:o}={}){let n=e||cd(o)||ud(r)||fd(t);return(sd[n]||no)(t)}function cd(t){if(!t)return null;let e=t.split(";")[0].trim();return id[e]||null}function ud(t){if(!t)return null;let e=t.match(/\.[^.]+$/)?.[0]?.toLowerCase();return e&&ad[e]||null}function fd(t){if(!t)return"text";let e=t.trim();return e.startsWith("{")||e.startsWith("[")?"json":e.startsWith("<!DOCTYPE")||e.startsWith("<html")?"html":e.match(/^#{1,6}\s/m)?"markdown":e.match(/^(import|export|function|class|const|let|var|def|func|package)\s/m)?"code":"text"}var ad,id,sd,Na=c(()=>{Sa();Aa();Ia();va();Ra();ad={".md":"markdown",".mdx":"markdown",".txt":"text",".html":"html",".htm":"html",".json":"json",".js":"code",".ts":"code",".jsx":"code",".tsx":"code",".py":"code",".go":"code",".rs":"code",".java":"code",".rb":"code",".php":"code",".c":"code",".cpp":"code",".h":"code",".cs":"code",".swift":"code",".kt":"code",".yaml":"text",".yml":"text",".toml":"text",".ini":"text",".cfg":"text",".env":"text",".csv":"text",".sql":"code",".sh":"code",".bash":"code",".zsh":"code"},id={"text/markdown":"markdown","text/html":"html","text/plain":"text","application/json":"json","text/javascript":"code","application/javascript":"code","text/x-python":"code"},sd={markdown:ba,text:no,html:Ta,code:Oa,json:Ca}});function ld(t,{maxTokens:e=512,overlapTokens:r=50}={}){if(!t?.trim())return[];let o=e*4,n=r*4;if(t.length<=o)return[{content:t.trim(),index:0}];let a=pd(t),i=[],s="",u="";for(let f of a){if(f.length>o){s.trim()&&(i.push({content:s.trim(),index:i.length}),u=io(s,n),s="");let l=dd(f,o,n);for(let h of l)i.push({content:h.trim(),index:i.length});u=io(i[i.length-1].content,n);continue}(s+f).length>o?(i.push({content:s.trim(),index:i.length}),u=io(s,n),s=u+f):s+=f}return s.trim()&&i.push({content:s.trim(),index:i.length}),i}function Da(t,e={}){let r=[];for(let{heading:o,text:n}of t){if(!n?.trim())continue;let a=ld(n,e);for(let i of a)r.push({content:i.content,index:r.length,sectionHeading:o})}return r}function pd(t){return t.split(/(?<=[.!?])\s+|(?<=\n)\s*/).filter(r=>r.trim())}function dd(t,e,r){let o=[],n=0;for(;n<t.length;){let a=Math.min(n+e,t.length);if(o.push(t.slice(n,a)),n=a-r,n>=t.length)break}return o}function io(t,e){if(t.length<=e)return t;let r=t.slice(-e),o=r.search(/[.!?]\s+/);return o!==-1?r.slice(o+1).trimStart():r}var tb,Pa=c(()=>{tb=Object.freeze({version:3,size:512,overlap:50,contextualPrefix:!0})});function U(t){return t?`[${t.join(",")}]`:null}function Ma(){let t=Number(p.embedding.dimensions)||768;if(!Number.isInteger(t)||t<=0)throw new Error(`Invalid EMBEDDING_DIMENSIONS: ${p.embedding.dimensions}`);return t}function Rt(t="embedding"){return`(${t}::halfvec(${Ma()}))`}function Lt(){return`?::halfvec(${Ma()})`}var Nt=c(()=>{x()});import{createHash as md}from"node:crypto";function gd(t,e,r,o="document"){let n=md("sha256");return n.update(t),n.update("\0"),n.update(e),n.update("\0"),n.update(o),n.update("\0"),n.update(r),n.digest("hex")}async function yd(t){if(!t.length)return new Map;let e=await m("embedding_cache").whereIn("key",t).select("key","embedding");return new Map(e.map(r=>[r.key,wd(r.embedding)]))}function wd(t){return Array.isArray(t)||typeof t!="string"?t:(t.startsWith("[")?t.slice(1,-1):t).split(",").map(Number)}async function _d(t){t.length&&await m("embedding_cache").whereIn("key",t).update({hits:m.raw("hits + 1"),lastUsedAt:m.fn.now()})}async function xd(t,e,r){if(t.length){for(let{key:o,embedding:n}of t)await m.raw(`
|
|
51
51
|
INSERT INTO embedding_cache (key, provider, model, embedding, hits, created_at, last_used_at)
|
|
52
52
|
VALUES (?, ?, ?, ?, 0, NOW(), NOW())
|
|
53
53
|
ON CONFLICT (key) DO UPDATE
|
|
@@ -58,7 +58,7 @@ ${ao(n,e+1)}`:`${r}${o}: ${n}`).join(`
|
|
|
58
58
|
SELECT key FROM embedding_cache ORDER BY last_used_at ASC LIMIT ?
|
|
59
59
|
)
|
|
60
60
|
`,[o])}async function $a(t,e,r,o,n,a={}){if(!t.length)return[];let i=a.inputType||n?.inputType||"document",s=t.map(g=>gd(e,r,g,i)),u=await yd(s),f=[],l=[],h=new Array(t.length);for(let g=0;g<t.length;g++){let y=u.get(s[g]);y?h[g]=y:(f.push(t[g]),l.push(g))}if(f.length){let g=await o(f,n),y=[];for(let _=0;_<f.length;_++){let w=l[_];h[w]=g[_],y.push({key:s[w],embedding:g[_]})}xd(y,e,r).catch(_=>{process.stderr.write(`[embedding-cache] store failed: ${_.message}
|
|
61
|
-
`)})}let d=s.filter(g=>u.has(g));return d.length&&_d(d).catch(()=>{}),h}var ka,hd,Ba,Ed,Fa=c(()=>{Nt();I();ka=1e4,hd=500;Ba=0,Ed=6e4});async function Ge(t,e={}){let[r]=await fe([t],e);return r}async function fe(t,{inputType:e="document"}={}){if(!t.length)return[];let r=await _a(),o=await ha(r),n=p.embedding.model,a={...p.embedding,inputType:e};return $a(t,r,n,o,a,{inputType:e})}var
|
|
61
|
+
`)})}let d=s.filter(g=>u.has(g));return d.length&&_d(d).catch(()=>{}),h}var ka,hd,Ba,Ed,Fa=c(()=>{Nt();I();ka=1e4,hd=500;Ba=0,Ed=6e4});async function Ge(t,e={}){let[r]=await fe([t],e);return r}async function fe(t,{inputType:e="document"}={}){if(!t.length)return[];let r=await _a(),o=await ha(r),n=p.embedding.model,a={...p.embedding,inputType:e};return $a(t,r,n,o,a,{inputType:e})}var lb,Ke=c(()=>{x();oo();Fa();({dimensions:lb}=p.embedding)});import{readFile as Sd}from"node:fs/promises";import{join as Ad}from"node:path";async function Ua(t,e,{title:r}){if(!t.length)return t;let o=await Sd(Td,"utf8"),n=t.map((i,s)=>`Chunk ${s+1}: ${i.content.slice(0,200)}`),a=`${o}
|
|
62
62
|
|
|
63
63
|
---
|
|
64
64
|
|
|
@@ -86,7 +86,7 @@ Respond with a JSON array of ${t.length} context prefix strings.`;try{let i=awai
|
|
|
86
86
|
UPDATE chunk
|
|
87
87
|
SET search_vector = to_tsvector('english', COALESCE(contextual_prefix, '') || ' ' || content)
|
|
88
88
|
WHERE document_id = ?
|
|
89
|
-
`,[t]),n}var Ja=c(()=>{I();Nt()});var vd,We,co=c(()=>{vd=typeof global=="object"&&global&&global.Object===Object&&global,We=vd});var Cd,Rd,v,Z=c(()=>{co();Cd=typeof self=="object"&&self&&self.Object===Object&&self,Rd=We||Cd||Function("return this")(),v=Rd});var Ld,D,Pt=c(()=>{Z();Ld=v.Symbol,D=Ld});function Dd(t){var e=Nd.call(t,le),r=t[le];try{t[le]=void 0;var o=!0}catch{}var n=Pd.call(t);return o&&(e?t[le]=r:delete t[le]),n}var qa,Nd,Pd,le,Va,za=c(()=>{Pt();qa=Object.prototype,Nd=qa.hasOwnProperty,Pd=qa.toString,le=D?D.toStringTag:void 0;Va=Dd});function Bd(t){return kd.call(t)}var Md,kd,Xa,Za=c(()=>{Md=Object.prototype,kd=Md.toString;Xa=Bd});function Ud(t){return t==null?t===void 0?Fd:$d:Qa&&Qa in Object(t)?Va(t):Xa(t)}var $d,Fd,Qa,Y,Dt=c(()=>{Pt();za();Za();$d="[object Null]",Fd="[object Undefined]",Qa=D?D.toStringTag:void 0;Y=Ud});function jd(t){return t!=null&&typeof t=="object"}var J,Mt=c(()=>{J=jd});function Gd(t){return typeof t=="symbol"||J(t)&&Y(t)==Hd}var Hd,q,kt=c(()=>{Dt();Mt();Hd="[object Symbol]";q=Gd});function Kd(t,e){for(var r=-1,o=t==null?0:t.length,n=Array(o);++r<o;)n[r]=e(t[r],r,t);return n}var Bt,uo=c(()=>{Bt=Kd});var Wd,T,j=c(()=>{Wd=Array.isArray,T=Wd});function ri(t){if(typeof t=="string")return t;if(T(t))return Bt(t,ri)+"";if(q(t))return ei?ei.call(t):"";var e=t+"";return e=="0"&&1/t==-Yd?"-0":e}var Yd,ti,ei,oi,ni=c(()=>{Pt();uo();j();kt();Yd=1/0,ti=D?D.prototype:void 0,ei=ti?ti.toString:void 0;oi=ri});function qd(t){for(var e=t.length;e--&&Jd.test(t.charAt(e)););return e}var Jd,ai,ii=c(()=>{Jd=/\s/;ai=qd});function zd(t){return t&&t.slice(0,ai(t)+1).replace(Vd,"")}var Vd,si,ci=c(()=>{ii();Vd=/^\s+/;si=zd});function Xd(t){var e=typeof t;return t!=null&&(e=="object"||e=="function")}var V,$t=c(()=>{V=Xd});function rm(t){if(typeof t=="number")return t;if(q(t))return ui;if(V(t)){var e=typeof t.valueOf=="function"?t.valueOf():t;t=V(e)?e+"":e}if(typeof t!="string")return t===0?t:+t;t=si(t);var r=Qd.test(t);return r||tm.test(t)?em(t.slice(2),r?2:8):Zd.test(t)?ui:+t}var ui,Zd,Qd,tm,em,fi,li=c(()=>{ci();$t();kt();ui=NaN,Zd=/^[-+]0x[0-9a-f]+$/i,Qd=/^0b[01]+$/i,tm=/^0o[0-7]+$/i,em=parseInt;fi=rm});function nm(t){if(!t)return t===0?t:0;if(t=fi(t),t===pi||t===-pi){var e=t<0?-1:1;return e*om}return t===t?t:0}var pi,om,di,mi=c(()=>{li();pi=1/0,om=17976931348623157e292;di=nm});function am(t){var e=di(t),r=e%1;return e===e?r?e-r:e:0}var hi,gi=c(()=>{mi();hi=am});function im(t){return t}var at,pe=c(()=>{at=im});function lm(t){if(!V(t))return!1;var e=Y(t);return e==cm||e==um||e==sm||e==fm}var sm,cm,um,fm,Ye,fo=c(()=>{Dt();$t();sm="[object AsyncFunction]",cm="[object Function]",um="[object GeneratorFunction]",fm="[object Proxy]";Ye=lm});var pm,Je,yi=c(()=>{Z();pm=v["__core-js_shared__"],Je=pm});function dm(t){return!!wi&&wi in t}var wi,_i,xi=c(()=>{yi();wi=(function(){var t=/[^.]+$/.exec(Je&&Je.keys&&Je.keys.IE_PROTO||"");return t?"Symbol(src)_1."+t:""})();_i=dm});function gm(t){if(t!=null){try{return hm.call(t)}catch{}try{return t+""}catch{}}return""}var mm,hm,Q,lo=c(()=>{mm=Function.prototype,hm=mm.toString;Q=gm});function Am(t){if(!V(t)||_i(t))return!1;var e=Ye(t)?Sm:wm;return e.test(Q(t))}var ym,wm,_m,xm,Em,bm,Sm,Ei,bi=c(()=>{fo();xi();$t();lo();ym=/[\\^$.*+?()[\]{}|]/g,wm=/^\[object .+?Constructor\]$/,_m=Function.prototype,xm=Object.prototype,Em=_m.toString,bm=xm.hasOwnProperty,Sm=RegExp("^"+Em.call(bm).replace(ym,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$");Ei=Am});function Tm(t,e){return t?.[e]}var Si,Ai=c(()=>{Si=Tm});function Im(t,e){var r=Si(t,e);return Ei(r)?r:void 0}var B,it=c(()=>{bi();Ai();B=Im});var Om,qe,Ti=c(()=>{it();Z();Om=B(v,"WeakMap"),qe=Om});function vm(t,e,r){switch(r.length){case 0:return t.call(e);case 1:return t.call(e,r[0]);case 2:return t.call(e,r[0],r[1]);case 3:return t.call(e,r[0],r[1],r[2])}return t.apply(e,r)}var Ii,Oi=c(()=>{Ii=vm});function Cm(){}var vi,Ci=c(()=>{vi=Cm});function Pm(t){var e=0,r=0;return function(){var o=Nm(),n=Lm-(o-r);if(r=o,n>0){if(++e>=Rm)return arguments[0]}else e=0;return t.apply(void 0,arguments)}}var Rm,Lm,Nm,Ri,Li=c(()=>{Rm=800,Lm=16,Nm=Date.now;Ri=Pm});function Dm(t){return function(){return t}}var Ni,Pi=c(()=>{Ni=Dm});var Mm,Ft,po=c(()=>{it();Mm=(function(){try{var t=B(Object,"defineProperty");return t({},"",{}),t}catch{}})(),Ft=Mm});var km,Di,Mi=c(()=>{Pi();po();pe();km=Ft?function(t,e){return Ft(t,"toString",{configurable:!0,enumerable:!1,value:Ni(e),writable:!0})}:at,Di=km});var Bm,ki,Bi=c(()=>{Mi();Li();Bm=Ri(Di),ki=Bm});function $m(t,e,r,o){for(var n=t.length,a=r+(o?1:-1);o?a--:++a<n;)if(e(t[a],a,t))return a;return-1}var $i,Fi=c(()=>{$i=$m});function Fm(t){return t!==t}var Ui,ji=c(()=>{Ui=Fm});function Um(t,e,r){for(var o=r-1,n=t.length;++o<n;)if(t[o]===e)return o;return-1}var Hi,Gi=c(()=>{Hi=Um});function jm(t,e,r){return e===e?Hi(t,e,r):$i(t,Ui,r)}var Ki,Wi=c(()=>{Fi();ji();Gi();Ki=jm});function Hm(t,e){var r=t==null?0:t.length;return!!r&&Ki(t,e,0)>-1}var Yi,Ji=c(()=>{Wi();Yi=Hm});function Wm(t,e){var r=typeof t;return e=e??Gm,!!e&&(r=="number"||r!="symbol"&&Km.test(t))&&t>-1&&t%1==0&&t<e}var Gm,Km,Ut,Ve=c(()=>{Gm=9007199254740991,Km=/^(?:0|[1-9]\d*)$/;Ut=Wm});function Ym(t,e,r){e=="__proto__"&&Ft?Ft(t,e,{configurable:!0,enumerable:!0,value:r,writable:!0}):t[e]=r}var qi,Vi=c(()=>{po();qi=Ym});function Jm(t,e){return t===e||t!==t&&e!==e}var jt,ze=c(()=>{jt=Jm});function qm(t,e,r){return e=zi(e===void 0?t.length-1:e,0),function(){for(var o=arguments,n=-1,a=zi(o.length-e,0),i=Array(a);++n<a;)i[n]=o[e+n];n=-1;for(var s=Array(e+1);++n<e;)s[n]=o[n];return s[e]=r(i),Ii(t,this,s)}}var zi,Xi,Zi=c(()=>{Oi();zi=Math.max;Xi=qm});function Vm(t,e){return ki(Xi(t,e,at),t+"")}var Qi,ts=c(()=>{pe();Zi();Bi();Qi=Vm});function Xm(t){return typeof t=="number"&&t>-1&&t%1==0&&t<=zm}var zm,Ht,Xe=c(()=>{zm=9007199254740991;Ht=Xm});function Zm(t){return t!=null&&Ht(t.length)&&!Ye(t)}var st,de=c(()=>{fo();Xe();st=Zm});function Qm(t,e,r){if(!V(r))return!1;var o=typeof e;return(o=="number"?st(r)&&Ut(e,r.length):o=="string"&&e in r)?jt(r[e],t):!1}var me,mo=c(()=>{ze();de();Ve();$t();me=Qm});function eh(t){var e=t&&t.constructor,r=typeof e=="function"&&e.prototype||th;return t===r}var th,es,rs=c(()=>{th=Object.prototype;es=eh});function rh(t,e){for(var r=-1,o=Array(t);++r<t;)o[r]=e(r);return o}var os,ns=c(()=>{os=rh});function nh(t){return J(t)&&Y(t)==oh}var oh,ho,as=c(()=>{Dt();Mt();oh="[object Arguments]";ho=nh});var is,ah,ih,sh,Gt,Ze=c(()=>{as();Mt();is=Object.prototype,ah=is.hasOwnProperty,ih=is.propertyIsEnumerable,sh=ho((function(){return arguments})())?ho:function(t){return J(t)&&ah.call(t,"callee")&&!ih.call(t,"callee")},Gt=sh});function ch(){return!1}var ss,cs=c(()=>{ss=ch});var ls,us,uh,fs,fh,lh,he,go=c(()=>{Z();cs();ls=typeof exports=="object"&&exports&&!exports.nodeType&&exports,us=ls&&typeof module=="object"&&module&&!module.nodeType&&module,uh=us&&us.exports===ls,fs=uh?v.Buffer:void 0,fh=fs?fs.isBuffer:void 0,lh=fh||ss,he=lh});function kh(t){return J(t)&&Ht(t.length)&&!!S[Y(t)]}var ph,dh,mh,hh,gh,yh,wh,_h,xh,Eh,bh,Sh,Ah,Th,Ih,Oh,vh,Ch,Rh,Lh,Nh,Ph,Dh,Mh,S,ps,ds=c(()=>{Dt();Xe();Mt();ph="[object Arguments]",dh="[object Array]",mh="[object Boolean]",hh="[object Date]",gh="[object Error]",yh="[object Function]",wh="[object Map]",_h="[object Number]",xh="[object Object]",Eh="[object RegExp]",bh="[object Set]",Sh="[object String]",Ah="[object WeakMap]",Th="[object ArrayBuffer]",Ih="[object DataView]",Oh="[object Float32Array]",vh="[object Float64Array]",Ch="[object Int8Array]",Rh="[object Int16Array]",Lh="[object Int32Array]",Nh="[object Uint8Array]",Ph="[object Uint8ClampedArray]",Dh="[object Uint16Array]",Mh="[object Uint32Array]",S={};S[Oh]=S[vh]=S[Ch]=S[Rh]=S[Lh]=S[Nh]=S[Ph]=S[Dh]=S[Mh]=!0;S[ph]=S[dh]=S[Th]=S[mh]=S[Ih]=S[hh]=S[gh]=S[yh]=S[wh]=S[_h]=S[xh]=S[Eh]=S[bh]=S[Sh]=S[Ah]=!1;ps=kh});function Bh(t){return function(e){return t(e)}}var Qe,yo=c(()=>{Qe=Bh});var ms,ge,$h,wo,Fh,_o,hs=c(()=>{co();ms=typeof exports=="object"&&exports&&!exports.nodeType&&exports,ge=ms&&typeof module=="object"&&module&&!module.nodeType&&module,$h=ge&&ge.exports===ms,wo=$h&&We.process,Fh=(function(){try{var t=ge&&ge.require&&ge.require("util").types;return t||wo&&wo.binding&&wo.binding("util")}catch{}})(),_o=Fh});var gs,Uh,tr,xo=c(()=>{ds();yo();hs();gs=_o&&_o.isTypedArray,Uh=gs?Qe(gs):ps,tr=Uh});function Gh(t,e){var r=T(t),o=!r&&Gt(t),n=!r&&!o&&he(t),a=!r&&!o&&!n&&tr(t),i=r||o||n||a,s=i?os(t.length,String):[],u=s.length;for(var f in t)(e||Hh.call(t,f))&&!(i&&(f=="length"||n&&(f=="offset"||f=="parent")||a&&(f=="buffer"||f=="byteLength"||f=="byteOffset")||Ut(f,u)))&&s.push(f);return s}var jh,Hh,ys,ws=c(()=>{ns();Ze();j();go();Ve();xo();jh=Object.prototype,Hh=jh.hasOwnProperty;ys=Gh});function Kh(t,e){return function(r){return t(e(r))}}var _s,xs=c(()=>{_s=Kh});var Wh,Es,bs=c(()=>{xs();Wh=_s(Object.keys,Object),Es=Wh});function qh(t){if(!es(t))return Es(t);var e=[];for(var r in Object(t))Jh.call(t,r)&&r!="constructor"&&e.push(r);return e}var Yh,Jh,Ss,As=c(()=>{rs();bs();Yh=Object.prototype,Jh=Yh.hasOwnProperty;Ss=qh});function Vh(t){return st(t)?ys(t):Ss(t)}var Kt,er=c(()=>{ws();As();de();Kt=Vh});function Zh(t,e){if(T(t))return!1;var r=typeof t;return r=="number"||r=="symbol"||r=="boolean"||t==null||q(t)?!0:Xh.test(t)||!zh.test(t)||e!=null&&t in Object(e)}var zh,Xh,Wt,rr=c(()=>{j();kt();zh=/\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\\]|\\.)*?\1)\]/,Xh=/^\w*$/;Wt=Zh});var Qh,tt,ye=c(()=>{it();Qh=B(Object,"create"),tt=Qh});function tg(){this.__data__=tt?tt(null):{},this.size=0}var Ts,Is=c(()=>{ye();Ts=tg});function eg(t){var e=this.has(t)&&delete this.__data__[t];return this.size-=e?1:0,e}var Os,vs=c(()=>{Os=eg});function ag(t){var e=this.__data__;if(tt){var r=e[t];return r===rg?void 0:r}return ng.call(e,t)?e[t]:void 0}var rg,og,ng,Cs,Rs=c(()=>{ye();rg="__lodash_hash_undefined__",og=Object.prototype,ng=og.hasOwnProperty;Cs=ag});function cg(t){var e=this.__data__;return tt?e[t]!==void 0:sg.call(e,t)}var ig,sg,Ls,Ns=c(()=>{ye();ig=Object.prototype,sg=ig.hasOwnProperty;Ls=cg});function fg(t,e){var r=this.__data__;return this.size+=this.has(t)?0:1,r[t]=tt&&e===void 0?ug:e,this}var ug,Ps,Ds=c(()=>{ye();ug="__lodash_hash_undefined__";Ps=fg});function Yt(t){var e=-1,r=t==null?0:t.length;for(this.clear();++e<r;){var o=t[e];this.set(o[0],o[1])}}var Eo,Ms=c(()=>{Is();vs();Rs();Ns();Ds();Yt.prototype.clear=Ts;Yt.prototype.delete=Os;Yt.prototype.get=Cs;Yt.prototype.has=Ls;Yt.prototype.set=Ps;Eo=Yt});function lg(){this.__data__=[],this.size=0}var ks,Bs=c(()=>{ks=lg});function pg(t,e){for(var r=t.length;r--;)if(jt(t[r][0],e))return r;return-1}var ct,we=c(()=>{ze();ct=pg});function hg(t){var e=this.__data__,r=ct(e,t);if(r<0)return!1;var o=e.length-1;return r==o?e.pop():mg.call(e,r,1),--this.size,!0}var dg,mg,$s,Fs=c(()=>{we();dg=Array.prototype,mg=dg.splice;$s=hg});function gg(t){var e=this.__data__,r=ct(e,t);return r<0?void 0:e[r][1]}var Us,js=c(()=>{we();Us=gg});function yg(t){return ct(this.__data__,t)>-1}var Hs,Gs=c(()=>{we();Hs=yg});function wg(t,e){var r=this.__data__,o=ct(r,t);return o<0?(++this.size,r.push([t,e])):r[o][1]=e,this}var Ks,Ws=c(()=>{we();Ks=wg});function Jt(t){var e=-1,r=t==null?0:t.length;for(this.clear();++e<r;){var o=t[e];this.set(o[0],o[1])}}var ut,_e=c(()=>{Bs();Fs();js();Gs();Ws();Jt.prototype.clear=ks;Jt.prototype.delete=$s;Jt.prototype.get=Us;Jt.prototype.has=Hs;Jt.prototype.set=Ks;ut=Jt});var _g,ft,or=c(()=>{it();Z();_g=B(v,"Map"),ft=_g});function xg(){this.size=0,this.__data__={hash:new Eo,map:new(ft||ut),string:new Eo}}var Ys,Js=c(()=>{Ms();_e();or();Ys=xg});function Eg(t){var e=typeof t;return e=="string"||e=="number"||e=="symbol"||e=="boolean"?t!=="__proto__":t===null}var qs,Vs=c(()=>{qs=Eg});function bg(t,e){var r=t.__data__;return qs(e)?r[typeof e=="string"?"string":"hash"]:r.map}var lt,xe=c(()=>{Vs();lt=bg});function Sg(t){var e=lt(this,t).delete(t);return this.size-=e?1:0,e}var zs,Xs=c(()=>{xe();zs=Sg});function Ag(t){return lt(this,t).get(t)}var Zs,Qs=c(()=>{xe();Zs=Ag});function Tg(t){return lt(this,t).has(t)}var tc,ec=c(()=>{xe();tc=Tg});function Ig(t,e){var r=lt(this,t),o=r.size;return r.set(t,e),this.size+=r.size==o?0:1,this}var rc,oc=c(()=>{xe();rc=Ig});function qt(t){var e=-1,r=t==null?0:t.length;for(this.clear();++e<r;){var o=t[e];this.set(o[0],o[1])}}var wt,nr=c(()=>{Js();Xs();Qs();ec();oc();qt.prototype.clear=Ys;qt.prototype.delete=zs;qt.prototype.get=Zs;qt.prototype.has=tc;qt.prototype.set=rc;wt=qt});function bo(t,e){if(typeof t!="function"||e!=null&&typeof e!="function")throw new TypeError(Og);var r=function(){var o=arguments,n=e?e.apply(this,o):o[0],a=r.cache;if(a.has(n))return a.get(n);var i=t.apply(this,o);return r.cache=a.set(n,i)||a,i};return r.cache=new(bo.Cache||wt),r}var Og,nc,ac=c(()=>{nr();Og="Expected a function";bo.Cache=wt;nc=bo});function Cg(t){var e=nc(t,function(o){return r.size===vg&&r.clear(),o}),r=e.cache;return e}var vg,ic,sc=c(()=>{ac();vg=500;ic=Cg});var Rg,Lg,Ng,cc,uc=c(()=>{sc();Rg=/[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|$))/g,Lg=/\\(\\)?/g,Ng=ic(function(t){var e=[];return t.charCodeAt(0)===46&&e.push(""),t.replace(Rg,function(r,o,n,a){e.push(n?a.replace(Lg,"$1"):o||r)}),e}),cc=Ng});function Pg(t){return t==null?"":oi(t)}var fc,lc=c(()=>{ni();fc=Pg});function Dg(t,e){return T(t)?t:Wt(t,e)?[t]:cc(fc(t))}var ar,So=c(()=>{j();rr();uc();lc();ar=Dg});function kg(t){if(typeof t=="string"||q(t))return t;var e=t+"";return e=="0"&&1/t==-Mg?"-0":e}var Mg,pt,Ee=c(()=>{kt();Mg=1/0;pt=kg});function Bg(t,e){e=ar(e,t);for(var r=0,o=e.length;t!=null&&r<o;)t=t[pt(e[r++])];return r&&r==o?t:void 0}var Vt,ir=c(()=>{So();Ee();Vt=Bg});function $g(t,e,r){var o=t==null?void 0:Vt(t,e);return o===void 0?r:o}var pc,dc=c(()=>{ir();pc=$g});function Fg(t,e){for(var r=-1,o=e.length,n=t.length;++r<o;)t[n+r]=e[r];return t}var sr,Ao=c(()=>{sr=Fg});function Ug(t){return T(t)||Gt(t)||!!(mc&&t&&t[mc])}var mc,hc,gc=c(()=>{Pt();Ze();j();mc=D?D.isConcatSpreadable:void 0;hc=Ug});function yc(t,e,r,o,n){var a=-1,i=t.length;for(r||(r=hc),n||(n=[]);++a<i;){var s=t[a];e>0&&r(s)?e>1?yc(s,e-1,r,o,n):sr(n,s):o||(n[n.length]=s)}return n}var wc,_c=c(()=>{Ao();gc();wc=yc});function jg(t,e,r){var o=-1,n=t.length;e<0&&(e=-e>n?0:n+e),r=r>n?n:r,r<0&&(r+=n),n=e>r?0:r-e>>>0,e>>>=0;for(var a=Array(n);++o<n;)a[o]=t[o+e];return a}var xc,Ec=c(()=>{xc=jg});function Kg(t,e,r){(r?me(t,e,r):e===void 0)?e=1:e=Gg(hi(e),0);var o=t==null?0:t.length;if(!o||e<1)return[];for(var n=0,a=0,i=Array(Hg(o/e));n<o;)i[a++]=xc(t,n,n+=e);return i}var Hg,Gg,To,bc=c(()=>{Ec();mo();gi();Hg=Math.ceil,Gg=Math.max;To=Kg});function Wg(){this.__data__=new ut,this.size=0}var Sc,Ac=c(()=>{_e();Sc=Wg});function Yg(t){var e=this.__data__,r=e.delete(t);return this.size=e.size,r}var Tc,Ic=c(()=>{Tc=Yg});function Jg(t){return this.__data__.get(t)}var Oc,vc=c(()=>{Oc=Jg});function qg(t){return this.__data__.has(t)}var Cc,Rc=c(()=>{Cc=qg});function zg(t,e){var r=this.__data__;if(r instanceof ut){var o=r.__data__;if(!ft||o.length<Vg-1)return o.push([t,e]),this.size=++r.size,this;r=this.__data__=new wt(o)}return r.set(t,e),this.size=r.size,this}var Vg,Lc,Nc=c(()=>{_e();or();nr();Vg=200;Lc=zg});function zt(t){var e=this.__data__=new ut(t);this.size=e.size}var Xt,Io=c(()=>{_e();Ac();Ic();vc();Rc();Nc();zt.prototype.clear=Sc;zt.prototype.delete=Tc;zt.prototype.get=Oc;zt.prototype.has=Cc;zt.prototype.set=Lc;Xt=zt});function Xg(t,e){for(var r=-1,o=t==null?0:t.length,n=0,a=[];++r<o;){var i=t[r];e(i,r,t)&&(a[n++]=i)}return a}var Pc,Dc=c(()=>{Pc=Xg});function Zg(){return[]}var Mc,kc=c(()=>{Mc=Zg});var Qg,ty,Bc,ey,$c,Fc=c(()=>{Dc();kc();Qg=Object.prototype,ty=Qg.propertyIsEnumerable,Bc=Object.getOwnPropertySymbols,ey=Bc?function(t){return t==null?[]:(t=Object(t),Pc(Bc(t),function(e){return ty.call(t,e)}))}:Mc,$c=ey});function ry(t,e,r){var o=e(t);return T(t)?o:sr(o,r(t))}var Uc,jc=c(()=>{Ao();j();Uc=ry});function oy(t){return Uc(t,Kt,$c)}var Oo,Hc=c(()=>{jc();Fc();er();Oo=oy});var ny,cr,Gc=c(()=>{it();Z();ny=B(v,"DataView"),cr=ny});var ay,ur,Kc=c(()=>{it();Z();ay=B(v,"Promise"),ur=ay});var iy,dt,vo=c(()=>{it();Z();iy=B(v,"Set"),dt=iy});var Wc,sy,Yc,Jc,qc,Vc,cy,uy,fy,ly,py,_t,Co,zc=c(()=>{Gc();or();Kc();vo();Ti();Dt();lo();Wc="[object Map]",sy="[object Object]",Yc="[object Promise]",Jc="[object Set]",qc="[object WeakMap]",Vc="[object DataView]",cy=Q(cr),uy=Q(ft),fy=Q(ur),ly=Q(dt),py=Q(qe),_t=Y;(cr&&_t(new cr(new ArrayBuffer(1)))!=Vc||ft&&_t(new ft)!=Wc||ur&&_t(ur.resolve())!=Yc||dt&&_t(new dt)!=Jc||qe&&_t(new qe)!=qc)&&(_t=function(t){var e=Y(t),r=e==sy?t.constructor:void 0,o=r?Q(r):"";if(o)switch(o){case cy:return Vc;case uy:return Wc;case fy:return Yc;case ly:return Jc;case py:return qc}return e});Co=_t});var dy,Ro,Xc=c(()=>{Z();dy=v.Uint8Array,Ro=dy});function hy(t){return this.__data__.set(t,my),this}var my,Zc,Qc=c(()=>{my="__lodash_hash_undefined__";Zc=hy});function gy(t){return this.__data__.has(t)}var tu,eu=c(()=>{tu=gy});function fr(t){var e=-1,r=t==null?0:t.length;for(this.__data__=new wt;++e<r;)this.add(t[e])}var lr,Lo=c(()=>{nr();Qc();eu();fr.prototype.add=fr.prototype.push=Zc;fr.prototype.has=tu;lr=fr});function yy(t,e){for(var r=-1,o=t==null?0:t.length;++r<o;)if(e(t[r],r,t))return!0;return!1}var ru,ou=c(()=>{ru=yy});function wy(t,e){return t.has(e)}var pr,No=c(()=>{pr=wy});function Ey(t,e,r,o,n,a){var i=r&_y,s=t.length,u=e.length;if(s!=u&&!(i&&u>s))return!1;var f=a.get(t),l=a.get(e);if(f&&l)return f==e&&l==t;var h=-1,d=!0,g=r&xy?new lr:void 0;for(a.set(t,e),a.set(e,t);++h<s;){var y=t[h],_=e[h];if(o)var w=i?o(_,y,h,e,t,a):o(y,_,h,t,e,a);if(w!==void 0){if(w)continue;d=!1;break}if(g){if(!ru(e,function(C,M){if(!pr(g,M)&&(y===C||n(y,C,r,o,a)))return g.push(M)})){d=!1;break}}else if(!(y===_||n(y,_,r,o,a))){d=!1;break}}return a.delete(t),a.delete(e),d}var _y,xy,dr,Po=c(()=>{Lo();ou();No();_y=1,xy=2;dr=Ey});function by(t){var e=-1,r=Array(t.size);return t.forEach(function(o,n){r[++e]=[n,o]}),r}var nu,au=c(()=>{nu=by});function Sy(t){var e=-1,r=Array(t.size);return t.forEach(function(o){r[++e]=o}),r}var Zt,mr=c(()=>{Zt=Sy});function By(t,e,r,o,n,a,i){switch(r){case ky:if(t.byteLength!=e.byteLength||t.byteOffset!=e.byteOffset)return!1;t=t.buffer,e=e.buffer;case My:return!(t.byteLength!=e.byteLength||!a(new Ro(t),new Ro(e)));case Iy:case Oy:case Ry:return jt(+t,+e);case vy:return t.name==e.name&&t.message==e.message;case Ly:case Py:return t==e+"";case Cy:var s=nu;case Ny:var u=o&Ay;if(s||(s=Zt),t.size!=e.size&&!u)return!1;var f=i.get(t);if(f)return f==e;o|=Ty,i.set(t,e);var l=dr(s(t),s(e),o,n,a,i);return i.delete(t),l;case Dy:if(Do)return Do.call(t)==Do.call(e)}return!1}var Ay,Ty,Iy,Oy,vy,Cy,Ry,Ly,Ny,Py,Dy,My,ky,iu,Do,su,cu=c(()=>{Pt();Xc();ze();Po();au();mr();Ay=1,Ty=2,Iy="[object Boolean]",Oy="[object Date]",vy="[object Error]",Cy="[object Map]",Ry="[object Number]",Ly="[object RegExp]",Ny="[object Set]",Py="[object String]",Dy="[object Symbol]",My="[object ArrayBuffer]",ky="[object DataView]",iu=D?D.prototype:void 0,Do=iu?iu.valueOf:void 0;su=By});function jy(t,e,r,o,n,a){var i=r&$y,s=Oo(t),u=s.length,f=Oo(e),l=f.length;if(u!=l&&!i)return!1;for(var h=u;h--;){var d=s[h];if(!(i?d in e:Uy.call(e,d)))return!1}var g=a.get(t),y=a.get(e);if(g&&y)return g==e&&y==t;var _=!0;a.set(t,e),a.set(e,t);for(var w=i;++h<u;){d=s[h];var C=t[d],M=e[d];if(o)var R=i?o(M,C,d,e,t,a):o(C,M,d,t,e,a);if(!(R===void 0?C===M||n(C,M,r,o,a):R)){_=!1;break}w||(w=d=="constructor")}if(_&&!w){var O=t.constructor,H=e.constructor;O!=H&&"constructor"in t&&"constructor"in e&&!(typeof O=="function"&&O instanceof O&&typeof H=="function"&&H instanceof H)&&(_=!1)}return a.delete(t),a.delete(e),_}var $y,Fy,Uy,uu,fu=c(()=>{Hc();$y=1,Fy=Object.prototype,Uy=Fy.hasOwnProperty;uu=jy});function Ky(t,e,r,o,n,a){var i=T(t),s=T(e),u=i?pu:Co(t),f=s?pu:Co(e);u=u==lu?hr:u,f=f==lu?hr:f;var l=u==hr,h=f==hr,d=u==f;if(d&&he(t)){if(!he(e))return!1;i=!0,l=!1}if(d&&!l)return a||(a=new Xt),i||tr(t)?dr(t,e,r,o,n,a):su(t,e,u,r,o,n,a);if(!(r&Hy)){var g=l&&du.call(t,"__wrapped__"),y=h&&du.call(e,"__wrapped__");if(g||y){var _=g?t.value():t,w=y?e.value():e;return a||(a=new Xt),n(_,w,r,o,a)}}return d?(a||(a=new Xt),uu(t,e,r,o,n,a)):!1}var Hy,lu,pu,hr,Gy,du,mu,hu=c(()=>{Io();Po();cu();fu();zc();j();go();xo();Hy=1,lu="[object Arguments]",pu="[object Array]",hr="[object Object]",Gy=Object.prototype,du=Gy.hasOwnProperty;mu=Ky});function gu(t,e,r,o,n){return t===e?!0:t==null||e==null||!J(t)&&!J(e)?t!==t&&e!==e:mu(t,e,r,o,gu,n)}var gr,Mo=c(()=>{hu();Mt();gr=gu});function Jy(t,e,r,o){var n=r.length,a=n,i=!o;if(t==null)return!a;for(t=Object(t);n--;){var s=r[n];if(i&&s[2]?s[1]!==t[s[0]]:!(s[0]in t))return!1}for(;++n<a;){s=r[n];var u=s[0],f=t[u],l=s[1];if(i&&s[2]){if(f===void 0&&!(u in t))return!1}else{var h=new Xt;if(o)var d=o(f,l,u,t,e,h);if(!(d===void 0?gr(l,f,Wy|Yy,o,h):d))return!1}}return!0}var Wy,Yy,yu,wu=c(()=>{Io();Mo();Wy=1,Yy=2;yu=Jy});function qy(t){return t===t&&!V(t)}var yr,ko=c(()=>{$t();yr=qy});function Vy(t){for(var e=Kt(t),r=e.length;r--;){var o=e[r],n=t[o];e[r]=[o,n,yr(n)]}return e}var _u,xu=c(()=>{ko();er();_u=Vy});function zy(t,e){return function(r){return r==null?!1:r[t]===e&&(e!==void 0||t in Object(r))}}var wr,Bo=c(()=>{wr=zy});function Xy(t){var e=_u(t);return e.length==1&&e[0][2]?wr(e[0][0],e[0][1]):function(r){return r===t||yu(r,t,e)}}var Eu,bu=c(()=>{wu();xu();Bo();Eu=Xy});function Zy(t,e){return t!=null&&e in Object(t)}var Su,Au=c(()=>{Su=Zy});function Qy(t,e,r){e=ar(e,t);for(var o=-1,n=e.length,a=!1;++o<n;){var i=pt(e[o]);if(!(a=t!=null&&r(t,i)))break;t=t[i]}return a||++o!=n?a:(n=t==null?0:t.length,!!n&&Ht(n)&&Ut(i,n)&&(T(t)||Gt(t)))}var Tu,Iu=c(()=>{So();Ze();j();Ve();Xe();Ee();Tu=Qy});function tw(t,e){return t!=null&&Tu(t,e,Su)}var Ou,vu=c(()=>{Au();Iu();Ou=tw});function ow(t,e){return Wt(t)&&yr(e)?wr(pt(t),e):function(r){var o=pc(r,t);return o===void 0&&o===e?Ou(r,t):gr(e,o,ew|rw)}}var ew,rw,Cu,Ru=c(()=>{Mo();dc();vu();rr();ko();Bo();Ee();ew=1,rw=2;Cu=ow});function nw(t){return function(e){return e?.[t]}}var Lu,Nu=c(()=>{Lu=nw});function aw(t){return function(e){return Vt(e,t)}}var Pu,Du=c(()=>{ir();Pu=aw});function iw(t){return Wt(t)?Lu(pt(t)):Pu(t)}var Mu,ku=c(()=>{Nu();Du();rr();Ee();Mu=iw});function sw(t){return typeof t=="function"?t:t==null?at:typeof t=="object"?T(t)?Cu(t[0],t[1]):Eu(t):Mu(t)}var mt,be=c(()=>{bu();Ru();pe();j();ku();mt=sw});function cw(t,e,r,o){for(var n=-1,a=t==null?0:t.length;++n<a;){var i=t[n];e(o,i,r(i),t)}return o}var Bu,$u=c(()=>{Bu=cw});function uw(t){return function(e,r,o){for(var n=-1,a=Object(e),i=o(e),s=i.length;s--;){var u=i[t?s:++n];if(r(a[u],u,a)===!1)break}return e}}var Fu,Uu=c(()=>{Fu=uw});var fw,ju,Hu=c(()=>{Uu();fw=Fu(),ju=fw});function lw(t,e){return t&&ju(t,e,Kt)}var Gu,Ku=c(()=>{Hu();er();Gu=lw});function pw(t,e){return function(r,o){if(r==null)return r;if(!st(r))return t(r,o);for(var n=r.length,a=e?n:-1,i=Object(r);(e?a--:++a<n)&&o(i[a],a,i)!==!1;);return r}}var Wu,Yu=c(()=>{de();Wu=pw});var dw,_r,$o=c(()=>{Ku();Yu();dw=Wu(Gu),_r=dw});function mw(t,e,r,o){return _r(t,function(n,a,i){e(o,n,r(n),i)}),o}var Ju,qu=c(()=>{$o();Ju=mw});function hw(t,e){return function(r,o){var n=T(r)?Bu:Ju,a=e?e():{};return n(r,t,mt(o,2),a)}}var Vu,zu=c(()=>{$u();qu();be();j();Vu=hw});function gw(t,e,r){for(var o=-1,n=t==null?0:t.length;++o<n;)if(r(e,t[o]))return!0;return!1}var Xu,Zu=c(()=>{Xu=gw});function yw(t,e){var r=-1,o=st(t)?Array(t.length):[];return _r(t,function(n,a,i){o[++r]=e(n,a,i)}),o}var Qu,tf=c(()=>{$o();de();Qu=yw});var ww,_w,xw,Fo,ef=c(()=>{Vi();zu();ww=Object.prototype,_w=ww.hasOwnProperty,xw=Vu(function(t,e,r){_w.call(t,r)?t[r].push(e):qi(t,r,[e])}),Fo=xw});function Ew(t,e){for(var r,o=-1,n=t.length;++o<n;){var a=e(t[o]);a!==void 0&&(r=r===void 0?a:r+a)}return r}var rf,of=c(()=>{rf=Ew});function bw(t,e){var r=t.length;for(t.sort(e);r--;)t[r]=t[r].value;return t}var nf,af=c(()=>{nf=bw});function Sw(t,e){if(t!==e){var r=t!==void 0,o=t===null,n=t===t,a=q(t),i=e!==void 0,s=e===null,u=e===e,f=q(e);if(!s&&!f&&!a&&t>e||a&&i&&u&&!s&&!f||o&&i&&u||!r&&u||!n)return 1;if(!o&&!a&&!f&&t<e||f&&r&&n&&!o&&!a||s&&r&&n||!i&&n||!u)return-1}return 0}var sf,cf=c(()=>{kt();sf=Sw});function Aw(t,e,r){for(var o=-1,n=t.criteria,a=e.criteria,i=n.length,s=r.length;++o<i;){var u=sf(n[o],a[o]);if(u){if(o>=s)return u;var f=r[o];return u*(f=="desc"?-1:1)}}return t.index-e.index}var uf,ff=c(()=>{cf();uf=Aw});function Tw(t,e,r){e.length?e=Bt(e,function(a){return T(a)?function(i){return Vt(i,a.length===1?a[0]:a)}:a}):e=[at];var o=-1;e=Bt(e,Qe(mt));var n=Qu(t,function(a,i,s){var u=Bt(e,function(f){return f(a)});return{criteria:u,index:++o,value:a}});return nf(n,function(a,i){return uf(a,i,r)})}var lf,pf=c(()=>{uo();ir();be();tf();af();yo();ff();pe();j();lf=Tw});var Iw,Uo,df=c(()=>{_c();pf();ts();mo();Iw=Qi(function(t,e){if(t==null)return[];var r=e.length;return r>1&&me(t,e[0],e[1])?e=[]:r>2&&me(e[0],e[1],e[2])&&(e=[e[0]]),lf(t,wc(e,1),[])}),Uo=Iw});function Ow(t,e){return t&&t.length?rf(t,mt(e,2)):0}var jo,mf=c(()=>{be();of();jo=Ow});var vw,Cw,hf,gf=c(()=>{vo();Ci();mr();vw=1/0,Cw=dt&&1/Zt(new dt([,-0]))[1]==vw?function(t){return new dt(t)}:vi,hf=Cw});function Lw(t,e,r){var o=-1,n=Yi,a=t.length,i=!0,s=[],u=s;if(r)i=!1,n=Xu;else if(a>=Rw){var f=e?null:hf(t);if(f)return Zt(f);i=!1,n=pr,u=new lr}else u=e?[]:s;t:for(;++o<a;){var l=t[o],h=e?e(l):l;if(l=r||l!==0?l:0,i&&h===h){for(var d=u.length;d--;)if(u[d]===h)continue t;e&&u.push(h),s.push(l)}else n(u,h,r)||(u!==s&&u.push(h),s.push(l))}return s}var Rw,yf,wf=c(()=>{Lo();Ji();Zu();No();gf();mr();Rw=200;yf=Lw});function Nw(t,e){return t&&t.length?yf(t,mt(e,2)):[]}var Ho,_f=c(()=>{be();wf();Ho=Nw});var xr=c(()=>{bc();ef();df();mf();_f();});import{readFile as Pw}from"node:fs/promises";function Mw(t){let e=[];return t.sectionHeading&&e.push(`[Section: ${t.sectionHeading}]`),t.contextualPrefix&&e.push(t.contextualPrefix),e.push(t.content),e.join(`
|
|
89
|
+
`,[t]),n}var Ja=c(()=>{I();Nt()});var vd,We,co=c(()=>{vd=typeof global=="object"&&global&&global.Object===Object&&global,We=vd});var Cd,Rd,v,Z=c(()=>{co();Cd=typeof self=="object"&&self&&self.Object===Object&&self,Rd=We||Cd||Function("return this")(),v=Rd});var Ld,P,Dt=c(()=>{Z();Ld=v.Symbol,P=Ld});function Pd(t){var e=Nd.call(t,le),r=t[le];try{t[le]=void 0;var o=!0}catch{}var n=Dd.call(t);return o&&(e?t[le]=r:delete t[le]),n}var qa,Nd,Dd,le,Va,za=c(()=>{Dt();qa=Object.prototype,Nd=qa.hasOwnProperty,Dd=qa.toString,le=P?P.toStringTag:void 0;Va=Pd});function Bd(t){return kd.call(t)}var Md,kd,Xa,Za=c(()=>{Md=Object.prototype,kd=Md.toString;Xa=Bd});function Ud(t){return t==null?t===void 0?Fd:$d:Qa&&Qa in Object(t)?Va(t):Xa(t)}var $d,Fd,Qa,Y,Pt=c(()=>{Dt();za();Za();$d="[object Null]",Fd="[object Undefined]",Qa=P?P.toStringTag:void 0;Y=Ud});function jd(t){return t!=null&&typeof t=="object"}var J,Mt=c(()=>{J=jd});function Gd(t){return typeof t=="symbol"||J(t)&&Y(t)==Hd}var Hd,q,kt=c(()=>{Pt();Mt();Hd="[object Symbol]";q=Gd});function Kd(t,e){for(var r=-1,o=t==null?0:t.length,n=Array(o);++r<o;)n[r]=e(t[r],r,t);return n}var Bt,uo=c(()=>{Bt=Kd});var Wd,T,j=c(()=>{Wd=Array.isArray,T=Wd});function ri(t){if(typeof t=="string")return t;if(T(t))return Bt(t,ri)+"";if(q(t))return ei?ei.call(t):"";var e=t+"";return e=="0"&&1/t==-Yd?"-0":e}var Yd,ti,ei,oi,ni=c(()=>{Dt();uo();j();kt();Yd=1/0,ti=P?P.prototype:void 0,ei=ti?ti.toString:void 0;oi=ri});function qd(t){for(var e=t.length;e--&&Jd.test(t.charAt(e)););return e}var Jd,ai,ii=c(()=>{Jd=/\s/;ai=qd});function zd(t){return t&&t.slice(0,ai(t)+1).replace(Vd,"")}var Vd,si,ci=c(()=>{ii();Vd=/^\s+/;si=zd});function Xd(t){var e=typeof t;return t!=null&&(e=="object"||e=="function")}var V,$t=c(()=>{V=Xd});function rm(t){if(typeof t=="number")return t;if(q(t))return ui;if(V(t)){var e=typeof t.valueOf=="function"?t.valueOf():t;t=V(e)?e+"":e}if(typeof t!="string")return t===0?t:+t;t=si(t);var r=Qd.test(t);return r||tm.test(t)?em(t.slice(2),r?2:8):Zd.test(t)?ui:+t}var ui,Zd,Qd,tm,em,fi,li=c(()=>{ci();$t();kt();ui=NaN,Zd=/^[-+]0x[0-9a-f]+$/i,Qd=/^0b[01]+$/i,tm=/^0o[0-7]+$/i,em=parseInt;fi=rm});function nm(t){if(!t)return t===0?t:0;if(t=fi(t),t===pi||t===-pi){var e=t<0?-1:1;return e*om}return t===t?t:0}var pi,om,di,mi=c(()=>{li();pi=1/0,om=17976931348623157e292;di=nm});function am(t){var e=di(t),r=e%1;return e===e?r?e-r:e:0}var hi,gi=c(()=>{mi();hi=am});function im(t){return t}var at,pe=c(()=>{at=im});function lm(t){if(!V(t))return!1;var e=Y(t);return e==cm||e==um||e==sm||e==fm}var sm,cm,um,fm,Ye,fo=c(()=>{Pt();$t();sm="[object AsyncFunction]",cm="[object Function]",um="[object GeneratorFunction]",fm="[object Proxy]";Ye=lm});var pm,Je,yi=c(()=>{Z();pm=v["__core-js_shared__"],Je=pm});function dm(t){return!!wi&&wi in t}var wi,_i,xi=c(()=>{yi();wi=(function(){var t=/[^.]+$/.exec(Je&&Je.keys&&Je.keys.IE_PROTO||"");return t?"Symbol(src)_1."+t:""})();_i=dm});function gm(t){if(t!=null){try{return hm.call(t)}catch{}try{return t+""}catch{}}return""}var mm,hm,Q,lo=c(()=>{mm=Function.prototype,hm=mm.toString;Q=gm});function Am(t){if(!V(t)||_i(t))return!1;var e=Ye(t)?Sm:wm;return e.test(Q(t))}var ym,wm,_m,xm,Em,bm,Sm,Ei,bi=c(()=>{fo();xi();$t();lo();ym=/[\\^$.*+?()[\]{}|]/g,wm=/^\[object .+?Constructor\]$/,_m=Function.prototype,xm=Object.prototype,Em=_m.toString,bm=xm.hasOwnProperty,Sm=RegExp("^"+Em.call(bm).replace(ym,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$");Ei=Am});function Tm(t,e){return t?.[e]}var Si,Ai=c(()=>{Si=Tm});function Im(t,e){var r=Si(t,e);return Ei(r)?r:void 0}var B,it=c(()=>{bi();Ai();B=Im});var Om,qe,Ti=c(()=>{it();Z();Om=B(v,"WeakMap"),qe=Om});function vm(t,e,r){switch(r.length){case 0:return t.call(e);case 1:return t.call(e,r[0]);case 2:return t.call(e,r[0],r[1]);case 3:return t.call(e,r[0],r[1],r[2])}return t.apply(e,r)}var Ii,Oi=c(()=>{Ii=vm});function Cm(){}var vi,Ci=c(()=>{vi=Cm});function Dm(t){var e=0,r=0;return function(){var o=Nm(),n=Lm-(o-r);if(r=o,n>0){if(++e>=Rm)return arguments[0]}else e=0;return t.apply(void 0,arguments)}}var Rm,Lm,Nm,Ri,Li=c(()=>{Rm=800,Lm=16,Nm=Date.now;Ri=Dm});function Pm(t){return function(){return t}}var Ni,Di=c(()=>{Ni=Pm});var Mm,Ft,po=c(()=>{it();Mm=(function(){try{var t=B(Object,"defineProperty");return t({},"",{}),t}catch{}})(),Ft=Mm});var km,Pi,Mi=c(()=>{Di();po();pe();km=Ft?function(t,e){return Ft(t,"toString",{configurable:!0,enumerable:!1,value:Ni(e),writable:!0})}:at,Pi=km});var Bm,ki,Bi=c(()=>{Mi();Li();Bm=Ri(Pi),ki=Bm});function $m(t,e,r,o){for(var n=t.length,a=r+(o?1:-1);o?a--:++a<n;)if(e(t[a],a,t))return a;return-1}var $i,Fi=c(()=>{$i=$m});function Fm(t){return t!==t}var Ui,ji=c(()=>{Ui=Fm});function Um(t,e,r){for(var o=r-1,n=t.length;++o<n;)if(t[o]===e)return o;return-1}var Hi,Gi=c(()=>{Hi=Um});function jm(t,e,r){return e===e?Hi(t,e,r):$i(t,Ui,r)}var Ki,Wi=c(()=>{Fi();ji();Gi();Ki=jm});function Hm(t,e){var r=t==null?0:t.length;return!!r&&Ki(t,e,0)>-1}var Yi,Ji=c(()=>{Wi();Yi=Hm});function Wm(t,e){var r=typeof t;return e=e??Gm,!!e&&(r=="number"||r!="symbol"&&Km.test(t))&&t>-1&&t%1==0&&t<e}var Gm,Km,Ut,Ve=c(()=>{Gm=9007199254740991,Km=/^(?:0|[1-9]\d*)$/;Ut=Wm});function Ym(t,e,r){e=="__proto__"&&Ft?Ft(t,e,{configurable:!0,enumerable:!0,value:r,writable:!0}):t[e]=r}var qi,Vi=c(()=>{po();qi=Ym});function Jm(t,e){return t===e||t!==t&&e!==e}var jt,ze=c(()=>{jt=Jm});function qm(t,e,r){return e=zi(e===void 0?t.length-1:e,0),function(){for(var o=arguments,n=-1,a=zi(o.length-e,0),i=Array(a);++n<a;)i[n]=o[e+n];n=-1;for(var s=Array(e+1);++n<e;)s[n]=o[n];return s[e]=r(i),Ii(t,this,s)}}var zi,Xi,Zi=c(()=>{Oi();zi=Math.max;Xi=qm});function Vm(t,e){return ki(Xi(t,e,at),t+"")}var Qi,ts=c(()=>{pe();Zi();Bi();Qi=Vm});function Xm(t){return typeof t=="number"&&t>-1&&t%1==0&&t<=zm}var zm,Ht,Xe=c(()=>{zm=9007199254740991;Ht=Xm});function Zm(t){return t!=null&&Ht(t.length)&&!Ye(t)}var st,de=c(()=>{fo();Xe();st=Zm});function Qm(t,e,r){if(!V(r))return!1;var o=typeof e;return(o=="number"?st(r)&&Ut(e,r.length):o=="string"&&e in r)?jt(r[e],t):!1}var me,mo=c(()=>{ze();de();Ve();$t();me=Qm});function eh(t){var e=t&&t.constructor,r=typeof e=="function"&&e.prototype||th;return t===r}var th,es,rs=c(()=>{th=Object.prototype;es=eh});function rh(t,e){for(var r=-1,o=Array(t);++r<t;)o[r]=e(r);return o}var os,ns=c(()=>{os=rh});function nh(t){return J(t)&&Y(t)==oh}var oh,ho,as=c(()=>{Pt();Mt();oh="[object Arguments]";ho=nh});var is,ah,ih,sh,Gt,Ze=c(()=>{as();Mt();is=Object.prototype,ah=is.hasOwnProperty,ih=is.propertyIsEnumerable,sh=ho((function(){return arguments})())?ho:function(t){return J(t)&&ah.call(t,"callee")&&!ih.call(t,"callee")},Gt=sh});function ch(){return!1}var ss,cs=c(()=>{ss=ch});var ls,us,uh,fs,fh,lh,he,go=c(()=>{Z();cs();ls=typeof exports=="object"&&exports&&!exports.nodeType&&exports,us=ls&&typeof module=="object"&&module&&!module.nodeType&&module,uh=us&&us.exports===ls,fs=uh?v.Buffer:void 0,fh=fs?fs.isBuffer:void 0,lh=fh||ss,he=lh});function kh(t){return J(t)&&Ht(t.length)&&!!S[Y(t)]}var ph,dh,mh,hh,gh,yh,wh,_h,xh,Eh,bh,Sh,Ah,Th,Ih,Oh,vh,Ch,Rh,Lh,Nh,Dh,Ph,Mh,S,ps,ds=c(()=>{Pt();Xe();Mt();ph="[object Arguments]",dh="[object Array]",mh="[object Boolean]",hh="[object Date]",gh="[object Error]",yh="[object Function]",wh="[object Map]",_h="[object Number]",xh="[object Object]",Eh="[object RegExp]",bh="[object Set]",Sh="[object String]",Ah="[object WeakMap]",Th="[object ArrayBuffer]",Ih="[object DataView]",Oh="[object Float32Array]",vh="[object Float64Array]",Ch="[object Int8Array]",Rh="[object Int16Array]",Lh="[object Int32Array]",Nh="[object Uint8Array]",Dh="[object Uint8ClampedArray]",Ph="[object Uint16Array]",Mh="[object Uint32Array]",S={};S[Oh]=S[vh]=S[Ch]=S[Rh]=S[Lh]=S[Nh]=S[Dh]=S[Ph]=S[Mh]=!0;S[ph]=S[dh]=S[Th]=S[mh]=S[Ih]=S[hh]=S[gh]=S[yh]=S[wh]=S[_h]=S[xh]=S[Eh]=S[bh]=S[Sh]=S[Ah]=!1;ps=kh});function Bh(t){return function(e){return t(e)}}var Qe,yo=c(()=>{Qe=Bh});var ms,ge,$h,wo,Fh,_o,hs=c(()=>{co();ms=typeof exports=="object"&&exports&&!exports.nodeType&&exports,ge=ms&&typeof module=="object"&&module&&!module.nodeType&&module,$h=ge&&ge.exports===ms,wo=$h&&We.process,Fh=(function(){try{var t=ge&&ge.require&&ge.require("util").types;return t||wo&&wo.binding&&wo.binding("util")}catch{}})(),_o=Fh});var gs,Uh,tr,xo=c(()=>{ds();yo();hs();gs=_o&&_o.isTypedArray,Uh=gs?Qe(gs):ps,tr=Uh});function Gh(t,e){var r=T(t),o=!r&&Gt(t),n=!r&&!o&&he(t),a=!r&&!o&&!n&&tr(t),i=r||o||n||a,s=i?os(t.length,String):[],u=s.length;for(var f in t)(e||Hh.call(t,f))&&!(i&&(f=="length"||n&&(f=="offset"||f=="parent")||a&&(f=="buffer"||f=="byteLength"||f=="byteOffset")||Ut(f,u)))&&s.push(f);return s}var jh,Hh,ys,ws=c(()=>{ns();Ze();j();go();Ve();xo();jh=Object.prototype,Hh=jh.hasOwnProperty;ys=Gh});function Kh(t,e){return function(r){return t(e(r))}}var _s,xs=c(()=>{_s=Kh});var Wh,Es,bs=c(()=>{xs();Wh=_s(Object.keys,Object),Es=Wh});function qh(t){if(!es(t))return Es(t);var e=[];for(var r in Object(t))Jh.call(t,r)&&r!="constructor"&&e.push(r);return e}var Yh,Jh,Ss,As=c(()=>{rs();bs();Yh=Object.prototype,Jh=Yh.hasOwnProperty;Ss=qh});function Vh(t){return st(t)?ys(t):Ss(t)}var Kt,er=c(()=>{ws();As();de();Kt=Vh});function Zh(t,e){if(T(t))return!1;var r=typeof t;return r=="number"||r=="symbol"||r=="boolean"||t==null||q(t)?!0:Xh.test(t)||!zh.test(t)||e!=null&&t in Object(e)}var zh,Xh,Wt,rr=c(()=>{j();kt();zh=/\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\\]|\\.)*?\1)\]/,Xh=/^\w*$/;Wt=Zh});var Qh,tt,ye=c(()=>{it();Qh=B(Object,"create"),tt=Qh});function tg(){this.__data__=tt?tt(null):{},this.size=0}var Ts,Is=c(()=>{ye();Ts=tg});function eg(t){var e=this.has(t)&&delete this.__data__[t];return this.size-=e?1:0,e}var Os,vs=c(()=>{Os=eg});function ag(t){var e=this.__data__;if(tt){var r=e[t];return r===rg?void 0:r}return ng.call(e,t)?e[t]:void 0}var rg,og,ng,Cs,Rs=c(()=>{ye();rg="__lodash_hash_undefined__",og=Object.prototype,ng=og.hasOwnProperty;Cs=ag});function cg(t){var e=this.__data__;return tt?e[t]!==void 0:sg.call(e,t)}var ig,sg,Ls,Ns=c(()=>{ye();ig=Object.prototype,sg=ig.hasOwnProperty;Ls=cg});function fg(t,e){var r=this.__data__;return this.size+=this.has(t)?0:1,r[t]=tt&&e===void 0?ug:e,this}var ug,Ds,Ps=c(()=>{ye();ug="__lodash_hash_undefined__";Ds=fg});function Yt(t){var e=-1,r=t==null?0:t.length;for(this.clear();++e<r;){var o=t[e];this.set(o[0],o[1])}}var Eo,Ms=c(()=>{Is();vs();Rs();Ns();Ps();Yt.prototype.clear=Ts;Yt.prototype.delete=Os;Yt.prototype.get=Cs;Yt.prototype.has=Ls;Yt.prototype.set=Ds;Eo=Yt});function lg(){this.__data__=[],this.size=0}var ks,Bs=c(()=>{ks=lg});function pg(t,e){for(var r=t.length;r--;)if(jt(t[r][0],e))return r;return-1}var ct,we=c(()=>{ze();ct=pg});function hg(t){var e=this.__data__,r=ct(e,t);if(r<0)return!1;var o=e.length-1;return r==o?e.pop():mg.call(e,r,1),--this.size,!0}var dg,mg,$s,Fs=c(()=>{we();dg=Array.prototype,mg=dg.splice;$s=hg});function gg(t){var e=this.__data__,r=ct(e,t);return r<0?void 0:e[r][1]}var Us,js=c(()=>{we();Us=gg});function yg(t){return ct(this.__data__,t)>-1}var Hs,Gs=c(()=>{we();Hs=yg});function wg(t,e){var r=this.__data__,o=ct(r,t);return o<0?(++this.size,r.push([t,e])):r[o][1]=e,this}var Ks,Ws=c(()=>{we();Ks=wg});function Jt(t){var e=-1,r=t==null?0:t.length;for(this.clear();++e<r;){var o=t[e];this.set(o[0],o[1])}}var ut,_e=c(()=>{Bs();Fs();js();Gs();Ws();Jt.prototype.clear=ks;Jt.prototype.delete=$s;Jt.prototype.get=Us;Jt.prototype.has=Hs;Jt.prototype.set=Ks;ut=Jt});var _g,ft,or=c(()=>{it();Z();_g=B(v,"Map"),ft=_g});function xg(){this.size=0,this.__data__={hash:new Eo,map:new(ft||ut),string:new Eo}}var Ys,Js=c(()=>{Ms();_e();or();Ys=xg});function Eg(t){var e=typeof t;return e=="string"||e=="number"||e=="symbol"||e=="boolean"?t!=="__proto__":t===null}var qs,Vs=c(()=>{qs=Eg});function bg(t,e){var r=t.__data__;return qs(e)?r[typeof e=="string"?"string":"hash"]:r.map}var lt,xe=c(()=>{Vs();lt=bg});function Sg(t){var e=lt(this,t).delete(t);return this.size-=e?1:0,e}var zs,Xs=c(()=>{xe();zs=Sg});function Ag(t){return lt(this,t).get(t)}var Zs,Qs=c(()=>{xe();Zs=Ag});function Tg(t){return lt(this,t).has(t)}var tc,ec=c(()=>{xe();tc=Tg});function Ig(t,e){var r=lt(this,t),o=r.size;return r.set(t,e),this.size+=r.size==o?0:1,this}var rc,oc=c(()=>{xe();rc=Ig});function qt(t){var e=-1,r=t==null?0:t.length;for(this.clear();++e<r;){var o=t[e];this.set(o[0],o[1])}}var wt,nr=c(()=>{Js();Xs();Qs();ec();oc();qt.prototype.clear=Ys;qt.prototype.delete=zs;qt.prototype.get=Zs;qt.prototype.has=tc;qt.prototype.set=rc;wt=qt});function bo(t,e){if(typeof t!="function"||e!=null&&typeof e!="function")throw new TypeError(Og);var r=function(){var o=arguments,n=e?e.apply(this,o):o[0],a=r.cache;if(a.has(n))return a.get(n);var i=t.apply(this,o);return r.cache=a.set(n,i)||a,i};return r.cache=new(bo.Cache||wt),r}var Og,nc,ac=c(()=>{nr();Og="Expected a function";bo.Cache=wt;nc=bo});function Cg(t){var e=nc(t,function(o){return r.size===vg&&r.clear(),o}),r=e.cache;return e}var vg,ic,sc=c(()=>{ac();vg=500;ic=Cg});var Rg,Lg,Ng,cc,uc=c(()=>{sc();Rg=/[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|$))/g,Lg=/\\(\\)?/g,Ng=ic(function(t){var e=[];return t.charCodeAt(0)===46&&e.push(""),t.replace(Rg,function(r,o,n,a){e.push(n?a.replace(Lg,"$1"):o||r)}),e}),cc=Ng});function Dg(t){return t==null?"":oi(t)}var fc,lc=c(()=>{ni();fc=Dg});function Pg(t,e){return T(t)?t:Wt(t,e)?[t]:cc(fc(t))}var ar,So=c(()=>{j();rr();uc();lc();ar=Pg});function kg(t){if(typeof t=="string"||q(t))return t;var e=t+"";return e=="0"&&1/t==-Mg?"-0":e}var Mg,pt,Ee=c(()=>{kt();Mg=1/0;pt=kg});function Bg(t,e){e=ar(e,t);for(var r=0,o=e.length;t!=null&&r<o;)t=t[pt(e[r++])];return r&&r==o?t:void 0}var Vt,ir=c(()=>{So();Ee();Vt=Bg});function $g(t,e,r){var o=t==null?void 0:Vt(t,e);return o===void 0?r:o}var pc,dc=c(()=>{ir();pc=$g});function Fg(t,e){for(var r=-1,o=e.length,n=t.length;++r<o;)t[n+r]=e[r];return t}var sr,Ao=c(()=>{sr=Fg});function Ug(t){return T(t)||Gt(t)||!!(mc&&t&&t[mc])}var mc,hc,gc=c(()=>{Dt();Ze();j();mc=P?P.isConcatSpreadable:void 0;hc=Ug});function yc(t,e,r,o,n){var a=-1,i=t.length;for(r||(r=hc),n||(n=[]);++a<i;){var s=t[a];e>0&&r(s)?e>1?yc(s,e-1,r,o,n):sr(n,s):o||(n[n.length]=s)}return n}var wc,_c=c(()=>{Ao();gc();wc=yc});function jg(t,e,r){var o=-1,n=t.length;e<0&&(e=-e>n?0:n+e),r=r>n?n:r,r<0&&(r+=n),n=e>r?0:r-e>>>0,e>>>=0;for(var a=Array(n);++o<n;)a[o]=t[o+e];return a}var xc,Ec=c(()=>{xc=jg});function Kg(t,e,r){(r?me(t,e,r):e===void 0)?e=1:e=Gg(hi(e),0);var o=t==null?0:t.length;if(!o||e<1)return[];for(var n=0,a=0,i=Array(Hg(o/e));n<o;)i[a++]=xc(t,n,n+=e);return i}var Hg,Gg,To,bc=c(()=>{Ec();mo();gi();Hg=Math.ceil,Gg=Math.max;To=Kg});function Wg(){this.__data__=new ut,this.size=0}var Sc,Ac=c(()=>{_e();Sc=Wg});function Yg(t){var e=this.__data__,r=e.delete(t);return this.size=e.size,r}var Tc,Ic=c(()=>{Tc=Yg});function Jg(t){return this.__data__.get(t)}var Oc,vc=c(()=>{Oc=Jg});function qg(t){return this.__data__.has(t)}var Cc,Rc=c(()=>{Cc=qg});function zg(t,e){var r=this.__data__;if(r instanceof ut){var o=r.__data__;if(!ft||o.length<Vg-1)return o.push([t,e]),this.size=++r.size,this;r=this.__data__=new wt(o)}return r.set(t,e),this.size=r.size,this}var Vg,Lc,Nc=c(()=>{_e();or();nr();Vg=200;Lc=zg});function zt(t){var e=this.__data__=new ut(t);this.size=e.size}var Xt,Io=c(()=>{_e();Ac();Ic();vc();Rc();Nc();zt.prototype.clear=Sc;zt.prototype.delete=Tc;zt.prototype.get=Oc;zt.prototype.has=Cc;zt.prototype.set=Lc;Xt=zt});function Xg(t,e){for(var r=-1,o=t==null?0:t.length,n=0,a=[];++r<o;){var i=t[r];e(i,r,t)&&(a[n++]=i)}return a}var Dc,Pc=c(()=>{Dc=Xg});function Zg(){return[]}var Mc,kc=c(()=>{Mc=Zg});var Qg,ty,Bc,ey,$c,Fc=c(()=>{Pc();kc();Qg=Object.prototype,ty=Qg.propertyIsEnumerable,Bc=Object.getOwnPropertySymbols,ey=Bc?function(t){return t==null?[]:(t=Object(t),Dc(Bc(t),function(e){return ty.call(t,e)}))}:Mc,$c=ey});function ry(t,e,r){var o=e(t);return T(t)?o:sr(o,r(t))}var Uc,jc=c(()=>{Ao();j();Uc=ry});function oy(t){return Uc(t,Kt,$c)}var Oo,Hc=c(()=>{jc();Fc();er();Oo=oy});var ny,cr,Gc=c(()=>{it();Z();ny=B(v,"DataView"),cr=ny});var ay,ur,Kc=c(()=>{it();Z();ay=B(v,"Promise"),ur=ay});var iy,dt,vo=c(()=>{it();Z();iy=B(v,"Set"),dt=iy});var Wc,sy,Yc,Jc,qc,Vc,cy,uy,fy,ly,py,_t,Co,zc=c(()=>{Gc();or();Kc();vo();Ti();Pt();lo();Wc="[object Map]",sy="[object Object]",Yc="[object Promise]",Jc="[object Set]",qc="[object WeakMap]",Vc="[object DataView]",cy=Q(cr),uy=Q(ft),fy=Q(ur),ly=Q(dt),py=Q(qe),_t=Y;(cr&&_t(new cr(new ArrayBuffer(1)))!=Vc||ft&&_t(new ft)!=Wc||ur&&_t(ur.resolve())!=Yc||dt&&_t(new dt)!=Jc||qe&&_t(new qe)!=qc)&&(_t=function(t){var e=Y(t),r=e==sy?t.constructor:void 0,o=r?Q(r):"";if(o)switch(o){case cy:return Vc;case uy:return Wc;case fy:return Yc;case ly:return Jc;case py:return qc}return e});Co=_t});var dy,Ro,Xc=c(()=>{Z();dy=v.Uint8Array,Ro=dy});function hy(t){return this.__data__.set(t,my),this}var my,Zc,Qc=c(()=>{my="__lodash_hash_undefined__";Zc=hy});function gy(t){return this.__data__.has(t)}var tu,eu=c(()=>{tu=gy});function fr(t){var e=-1,r=t==null?0:t.length;for(this.__data__=new wt;++e<r;)this.add(t[e])}var lr,Lo=c(()=>{nr();Qc();eu();fr.prototype.add=fr.prototype.push=Zc;fr.prototype.has=tu;lr=fr});function yy(t,e){for(var r=-1,o=t==null?0:t.length;++r<o;)if(e(t[r],r,t))return!0;return!1}var ru,ou=c(()=>{ru=yy});function wy(t,e){return t.has(e)}var pr,No=c(()=>{pr=wy});function Ey(t,e,r,o,n,a){var i=r&_y,s=t.length,u=e.length;if(s!=u&&!(i&&u>s))return!1;var f=a.get(t),l=a.get(e);if(f&&l)return f==e&&l==t;var h=-1,d=!0,g=r&xy?new lr:void 0;for(a.set(t,e),a.set(e,t);++h<s;){var y=t[h],_=e[h];if(o)var w=i?o(_,y,h,e,t,a):o(y,_,h,t,e,a);if(w!==void 0){if(w)continue;d=!1;break}if(g){if(!ru(e,function(C,M){if(!pr(g,M)&&(y===C||n(y,C,r,o,a)))return g.push(M)})){d=!1;break}}else if(!(y===_||n(y,_,r,o,a))){d=!1;break}}return a.delete(t),a.delete(e),d}var _y,xy,dr,Do=c(()=>{Lo();ou();No();_y=1,xy=2;dr=Ey});function by(t){var e=-1,r=Array(t.size);return t.forEach(function(o,n){r[++e]=[n,o]}),r}var nu,au=c(()=>{nu=by});function Sy(t){var e=-1,r=Array(t.size);return t.forEach(function(o){r[++e]=o}),r}var Zt,mr=c(()=>{Zt=Sy});function By(t,e,r,o,n,a,i){switch(r){case ky:if(t.byteLength!=e.byteLength||t.byteOffset!=e.byteOffset)return!1;t=t.buffer,e=e.buffer;case My:return!(t.byteLength!=e.byteLength||!a(new Ro(t),new Ro(e)));case Iy:case Oy:case Ry:return jt(+t,+e);case vy:return t.name==e.name&&t.message==e.message;case Ly:case Dy:return t==e+"";case Cy:var s=nu;case Ny:var u=o&Ay;if(s||(s=Zt),t.size!=e.size&&!u)return!1;var f=i.get(t);if(f)return f==e;o|=Ty,i.set(t,e);var l=dr(s(t),s(e),o,n,a,i);return i.delete(t),l;case Py:if(Po)return Po.call(t)==Po.call(e)}return!1}var Ay,Ty,Iy,Oy,vy,Cy,Ry,Ly,Ny,Dy,Py,My,ky,iu,Po,su,cu=c(()=>{Dt();Xc();ze();Do();au();mr();Ay=1,Ty=2,Iy="[object Boolean]",Oy="[object Date]",vy="[object Error]",Cy="[object Map]",Ry="[object Number]",Ly="[object RegExp]",Ny="[object Set]",Dy="[object String]",Py="[object Symbol]",My="[object ArrayBuffer]",ky="[object DataView]",iu=P?P.prototype:void 0,Po=iu?iu.valueOf:void 0;su=By});function jy(t,e,r,o,n,a){var i=r&$y,s=Oo(t),u=s.length,f=Oo(e),l=f.length;if(u!=l&&!i)return!1;for(var h=u;h--;){var d=s[h];if(!(i?d in e:Uy.call(e,d)))return!1}var g=a.get(t),y=a.get(e);if(g&&y)return g==e&&y==t;var _=!0;a.set(t,e),a.set(e,t);for(var w=i;++h<u;){d=s[h];var C=t[d],M=e[d];if(o)var L=i?o(M,C,d,e,t,a):o(C,M,d,t,e,a);if(!(L===void 0?C===M||n(C,M,r,o,a):L)){_=!1;break}w||(w=d=="constructor")}if(_&&!w){var O=t.constructor,H=e.constructor;O!=H&&"constructor"in t&&"constructor"in e&&!(typeof O=="function"&&O instanceof O&&typeof H=="function"&&H instanceof H)&&(_=!1)}return a.delete(t),a.delete(e),_}var $y,Fy,Uy,uu,fu=c(()=>{Hc();$y=1,Fy=Object.prototype,Uy=Fy.hasOwnProperty;uu=jy});function Ky(t,e,r,o,n,a){var i=T(t),s=T(e),u=i?pu:Co(t),f=s?pu:Co(e);u=u==lu?hr:u,f=f==lu?hr:f;var l=u==hr,h=f==hr,d=u==f;if(d&&he(t)){if(!he(e))return!1;i=!0,l=!1}if(d&&!l)return a||(a=new Xt),i||tr(t)?dr(t,e,r,o,n,a):su(t,e,u,r,o,n,a);if(!(r&Hy)){var g=l&&du.call(t,"__wrapped__"),y=h&&du.call(e,"__wrapped__");if(g||y){var _=g?t.value():t,w=y?e.value():e;return a||(a=new Xt),n(_,w,r,o,a)}}return d?(a||(a=new Xt),uu(t,e,r,o,n,a)):!1}var Hy,lu,pu,hr,Gy,du,mu,hu=c(()=>{Io();Do();cu();fu();zc();j();go();xo();Hy=1,lu="[object Arguments]",pu="[object Array]",hr="[object Object]",Gy=Object.prototype,du=Gy.hasOwnProperty;mu=Ky});function gu(t,e,r,o,n){return t===e?!0:t==null||e==null||!J(t)&&!J(e)?t!==t&&e!==e:mu(t,e,r,o,gu,n)}var gr,Mo=c(()=>{hu();Mt();gr=gu});function Jy(t,e,r,o){var n=r.length,a=n,i=!o;if(t==null)return!a;for(t=Object(t);n--;){var s=r[n];if(i&&s[2]?s[1]!==t[s[0]]:!(s[0]in t))return!1}for(;++n<a;){s=r[n];var u=s[0],f=t[u],l=s[1];if(i&&s[2]){if(f===void 0&&!(u in t))return!1}else{var h=new Xt;if(o)var d=o(f,l,u,t,e,h);if(!(d===void 0?gr(l,f,Wy|Yy,o,h):d))return!1}}return!0}var Wy,Yy,yu,wu=c(()=>{Io();Mo();Wy=1,Yy=2;yu=Jy});function qy(t){return t===t&&!V(t)}var yr,ko=c(()=>{$t();yr=qy});function Vy(t){for(var e=Kt(t),r=e.length;r--;){var o=e[r],n=t[o];e[r]=[o,n,yr(n)]}return e}var _u,xu=c(()=>{ko();er();_u=Vy});function zy(t,e){return function(r){return r==null?!1:r[t]===e&&(e!==void 0||t in Object(r))}}var wr,Bo=c(()=>{wr=zy});function Xy(t){var e=_u(t);return e.length==1&&e[0][2]?wr(e[0][0],e[0][1]):function(r){return r===t||yu(r,t,e)}}var Eu,bu=c(()=>{wu();xu();Bo();Eu=Xy});function Zy(t,e){return t!=null&&e in Object(t)}var Su,Au=c(()=>{Su=Zy});function Qy(t,e,r){e=ar(e,t);for(var o=-1,n=e.length,a=!1;++o<n;){var i=pt(e[o]);if(!(a=t!=null&&r(t,i)))break;t=t[i]}return a||++o!=n?a:(n=t==null?0:t.length,!!n&&Ht(n)&&Ut(i,n)&&(T(t)||Gt(t)))}var Tu,Iu=c(()=>{So();Ze();j();Ve();Xe();Ee();Tu=Qy});function tw(t,e){return t!=null&&Tu(t,e,Su)}var Ou,vu=c(()=>{Au();Iu();Ou=tw});function ow(t,e){return Wt(t)&&yr(e)?wr(pt(t),e):function(r){var o=pc(r,t);return o===void 0&&o===e?Ou(r,t):gr(e,o,ew|rw)}}var ew,rw,Cu,Ru=c(()=>{Mo();dc();vu();rr();ko();Bo();Ee();ew=1,rw=2;Cu=ow});function nw(t){return function(e){return e?.[t]}}var Lu,Nu=c(()=>{Lu=nw});function aw(t){return function(e){return Vt(e,t)}}var Du,Pu=c(()=>{ir();Du=aw});function iw(t){return Wt(t)?Lu(pt(t)):Du(t)}var Mu,ku=c(()=>{Nu();Pu();rr();Ee();Mu=iw});function sw(t){return typeof t=="function"?t:t==null?at:typeof t=="object"?T(t)?Cu(t[0],t[1]):Eu(t):Mu(t)}var mt,be=c(()=>{bu();Ru();pe();j();ku();mt=sw});function cw(t,e,r,o){for(var n=-1,a=t==null?0:t.length;++n<a;){var i=t[n];e(o,i,r(i),t)}return o}var Bu,$u=c(()=>{Bu=cw});function uw(t){return function(e,r,o){for(var n=-1,a=Object(e),i=o(e),s=i.length;s--;){var u=i[t?s:++n];if(r(a[u],u,a)===!1)break}return e}}var Fu,Uu=c(()=>{Fu=uw});var fw,ju,Hu=c(()=>{Uu();fw=Fu(),ju=fw});function lw(t,e){return t&&ju(t,e,Kt)}var Gu,Ku=c(()=>{Hu();er();Gu=lw});function pw(t,e){return function(r,o){if(r==null)return r;if(!st(r))return t(r,o);for(var n=r.length,a=e?n:-1,i=Object(r);(e?a--:++a<n)&&o(i[a],a,i)!==!1;);return r}}var Wu,Yu=c(()=>{de();Wu=pw});var dw,_r,$o=c(()=>{Ku();Yu();dw=Wu(Gu),_r=dw});function mw(t,e,r,o){return _r(t,function(n,a,i){e(o,n,r(n),i)}),o}var Ju,qu=c(()=>{$o();Ju=mw});function hw(t,e){return function(r,o){var n=T(r)?Bu:Ju,a=e?e():{};return n(r,t,mt(o,2),a)}}var Vu,zu=c(()=>{$u();qu();be();j();Vu=hw});function gw(t,e,r){for(var o=-1,n=t==null?0:t.length;++o<n;)if(r(e,t[o]))return!0;return!1}var Xu,Zu=c(()=>{Xu=gw});function yw(t,e){var r=-1,o=st(t)?Array(t.length):[];return _r(t,function(n,a,i){o[++r]=e(n,a,i)}),o}var Qu,tf=c(()=>{$o();de();Qu=yw});var ww,_w,xw,Fo,ef=c(()=>{Vi();zu();ww=Object.prototype,_w=ww.hasOwnProperty,xw=Vu(function(t,e,r){_w.call(t,r)?t[r].push(e):qi(t,r,[e])}),Fo=xw});function Ew(t,e){for(var r,o=-1,n=t.length;++o<n;){var a=e(t[o]);a!==void 0&&(r=r===void 0?a:r+a)}return r}var rf,of=c(()=>{rf=Ew});function bw(t,e){var r=t.length;for(t.sort(e);r--;)t[r]=t[r].value;return t}var nf,af=c(()=>{nf=bw});function Sw(t,e){if(t!==e){var r=t!==void 0,o=t===null,n=t===t,a=q(t),i=e!==void 0,s=e===null,u=e===e,f=q(e);if(!s&&!f&&!a&&t>e||a&&i&&u&&!s&&!f||o&&i&&u||!r&&u||!n)return 1;if(!o&&!a&&!f&&t<e||f&&r&&n&&!o&&!a||s&&r&&n||!i&&n||!u)return-1}return 0}var sf,cf=c(()=>{kt();sf=Sw});function Aw(t,e,r){for(var o=-1,n=t.criteria,a=e.criteria,i=n.length,s=r.length;++o<i;){var u=sf(n[o],a[o]);if(u){if(o>=s)return u;var f=r[o];return u*(f=="desc"?-1:1)}}return t.index-e.index}var uf,ff=c(()=>{cf();uf=Aw});function Tw(t,e,r){e.length?e=Bt(e,function(a){return T(a)?function(i){return Vt(i,a.length===1?a[0]:a)}:a}):e=[at];var o=-1;e=Bt(e,Qe(mt));var n=Qu(t,function(a,i,s){var u=Bt(e,function(f){return f(a)});return{criteria:u,index:++o,value:a}});return nf(n,function(a,i){return uf(a,i,r)})}var lf,pf=c(()=>{uo();ir();be();tf();af();yo();ff();pe();j();lf=Tw});var Iw,Uo,df=c(()=>{_c();pf();ts();mo();Iw=Qi(function(t,e){if(t==null)return[];var r=e.length;return r>1&&me(t,e[0],e[1])?e=[]:r>2&&me(e[0],e[1],e[2])&&(e=[e[0]]),lf(t,wc(e,1),[])}),Uo=Iw});function Ow(t,e){return t&&t.length?rf(t,mt(e,2)):0}var jo,mf=c(()=>{be();of();jo=Ow});var vw,Cw,hf,gf=c(()=>{vo();Ci();mr();vw=1/0,Cw=dt&&1/Zt(new dt([,-0]))[1]==vw?function(t){return new dt(t)}:vi,hf=Cw});function Lw(t,e,r){var o=-1,n=Yi,a=t.length,i=!0,s=[],u=s;if(r)i=!1,n=Xu;else if(a>=Rw){var f=e?null:hf(t);if(f)return Zt(f);i=!1,n=pr,u=new lr}else u=e?[]:s;t:for(;++o<a;){var l=t[o],h=e?e(l):l;if(l=r||l!==0?l:0,i&&h===h){for(var d=u.length;d--;)if(u[d]===h)continue t;e&&u.push(h),s.push(l)}else n(u,h,r)||(u!==s&&u.push(h),s.push(l))}return s}var Rw,yf,wf=c(()=>{Lo();Ji();Zu();No();gf();mr();Rw=200;yf=Lw});function Nw(t,e){return t&&t.length?yf(t,mt(e,2)):[]}var Ho,_f=c(()=>{be();wf();Ho=Nw});var xr=c(()=>{bc();ef();df();mf();_f();});import{readFile as Dw}from"node:fs/promises";function Mw(t){let e=[];return t.sectionHeading&&e.push(`[Section: ${t.sectionHeading}]`),t.contextualPrefix&&e.push(t.contextualPrefix),e.push(t.content),e.join(`
|
|
90
90
|
`)}function kw(t,e,r){return`${t}
|
|
91
91
|
|
|
92
92
|
---
|
|
@@ -101,7 +101,7 @@ Respond with ONLY a JSON array of facts. Each fact object must have exactly thes
|
|
|
101
101
|
- "confidence" (string): one of high, medium, low
|
|
102
102
|
- "importance" (string): "vital" if essential to understanding the topic, "supplementary" if supporting detail
|
|
103
103
|
|
|
104
|
-
Output the JSON array directly, no explanation or wrapping.`}function Bw(t,e){let r=Array.isArray(t)?t:Array.isArray(t?.facts)?t.facts:null;return r?r.filter(o=>o.content&&e.includes(o.category)&&["high","medium","low"].includes(o.confidence)).map(o=>({...o,importance:["vital","supplementary"].includes(o.importance)?o.importance:"supplementary"})):[]}async function $w(t,e,r){let o=Mw(t),n=kw(e,o,r),a=await yt(n,{model:p.llm.extractionModel,caller:"extractor"});return Bw(a,r).map(s=>({...s,sourceSection:t.sectionHeading||null}))}async function xf(t,{promptPath:e,categories:r}){if(!t.length)return[];let o=await
|
|
104
|
+
Output the JSON array directly, no explanation or wrapping.`}function Bw(t,e){let r=Array.isArray(t)?t:Array.isArray(t?.facts)?t.facts:null;return r?r.filter(o=>o.content&&e.includes(o.category)&&["high","medium","low"].includes(o.confidence)).map(o=>({...o,importance:["vital","supplementary"].includes(o.importance)?o.importance:"supplementary"})):[]}async function $w(t,e,r){let o=Mw(t),n=kw(e,o,r),a=await yt(n,{model:p.llm.extractionModel,caller:"extractor"});return Bw(a,r).map(s=>({...s,sourceSection:t.sectionHeading||null}))}async function xf(t,{promptPath:e,categories:r}){if(!t.length)return[];let o=await Dw(e,"utf8"),n=To(t,Pw),a=[];for(let i of n){let s=await Promise.all(i.map(u=>$w(u,o,r).catch(f=>(console.error(`[extractor] chunk failed: ${f.message}`),[]))));a.push(...s.flat())}return a}var Pw,Ef=c(()=>{xr();nt();x();Pw=5});var bf={};A(bf,{currentAgent:()=>Hw,currentDeviceId:()=>jw,currentRequestContext:()=>Go,runWithRequestContext:()=>Uw});import{AsyncLocalStorage as Fw}from"node:async_hooks";function Uw(t,e){return Er.run(t,e)}function Go(){return Er.getStore()||null}function jw(){return Er.getStore()?.device?.id??null}function Hw(){return Er.getStore()?.agent??process.env.SIGIL_AGENT??null}var Er,Ko=c(()=>{Er=new Fw});import{readFile as Gw}from"node:fs/promises";import Kw from"node:path";async function Af({content:t,category:e,confidence:r,importance:o,namespace:n,sourceDocumentIds:a,sourceSection:i,embedding:s}){t=St(t);let u=s||await Ge(t),f=await Vw(u,{namespace:n}),l={skip:Sf,ambiguous:Wo};if(!f.length)return{action:"ADD",fact:await Se({content:t,category:e,confidence:r,importance:o,namespace:n,sourceDocumentIds:a,sourceSection:i,embedding:u}),audm:{topSimilarity:null,matchCount:0,decision:"no-match",thresholds:l}};let h=f[0],d={topSimilarity:Number(h.similarity),matchCount:f.length,existingId:h.id,existingContent:h.content,thresholds:l};if(h.similarity>=Sf)return{action:"SKIP",existing:h,audm:{...d,decision:"skip-duplicate"}};if(h.similarity>=Wo){let y=await Yw(t,h.content);if(y==="UPDATE"){let w=await Se({content:t,category:e,confidence:r,importance:o,namespace:n,sourceDocumentIds:a,sourceSection:i,embedding:u});return await Tf(h.id,w.id),await Yo({targetType:"fact",targetId:h.id,event:"UPDATE",oldContent:h.content,newContent:t,triggeredBy:`audm:sim=${h.similarity.toFixed(3)}`}),{action:"UPDATE",fact:w,supersededId:h.id,audm:{...d,decision:"llm:UPDATE"}}}if(y==="CONTRADICT"){let w=await Se({content:t,category:e,confidence:r,importance:o,namespace:n,sourceDocumentIds:a,sourceSection:i,embedding:u});return await qw(h.id,w.id),await Yo({targetType:"fact",targetId:h.id,event:"CONTRADICT",oldContent:h.content,newContent:t,triggeredBy:`audm:sim=${h.similarity.toFixed(3)}`}),{action:"CONTRADICT",fact:w,contradictedId:h.id,audm:{...d,decision:"llm:CONTRADICT"}}}return{action:"ADD",fact:await Se({content:t,category:e,confidence:r,importance:o,namespace:n,sourceDocumentIds:a,sourceSection:i,embedding:u}),audm:{...d,decision:"llm:ADD"}}}return{action:"ADD",fact:await Se({content:t,category:e,confidence:r,importance:o,namespace:n,sourceDocumentIds:a,sourceSection:i,embedding:u}),audm:{...d,decision:"below-ambiguous"}}}async function Yw(t,e){let o=`${await Gw(Ww,"utf8")}
|
|
105
105
|
|
|
106
106
|
**EXISTING FACT:** ${e}
|
|
107
107
|
|
|
@@ -119,7 +119,7 @@ Output the JSON array directly, no explanation or wrapping.`}function Bw(t,e){le
|
|
|
119
119
|
AND 1 - (${a}) >= ?
|
|
120
120
|
ORDER BY ${a}
|
|
121
121
|
LIMIT ?
|
|
122
|
-
`,[n,e,n,r,n,o]);return s})}async function Yo({targetType:t,targetId:e,event:r,oldContent:o,newContent:n,triggeredBy:a}){await m("history").insert({targetType:t,targetId:e,event:r,oldContent:o||null,newContent:n||null,triggeredBy:a||null})}var Ww,Sf,Wo,If=c(()=>{Tt();I();Ke();nt();Nt();Le();x();$();Ww=Kw.join(z,"audm-decision.md"),Sf=p.memory.skipThreshold,Wo=p.memory.ambiguousThreshold});var br,zw,
|
|
122
|
+
`,[n,e,n,r,n,o]);return s})}async function Yo({targetType:t,targetId:e,event:r,oldContent:o,newContent:n,triggeredBy:a}){await m("history").insert({targetType:t,targetId:e,event:r,oldContent:o||null,newContent:n||null,triggeredBy:a||null})}var Ww,Sf,Wo,If=c(()=>{Tt();I();Ke();nt();Nt();Le();x();$();Ww=Kw.join(z,"audm-decision.md"),Sf=p.memory.skipThreshold,Wo=p.memory.ambiguousThreshold});var br,zw,BR,Of,qo=c(()=>{br={preference:"Personal likes, dislikes, favorites, preferred tools/foods/methods",opinion:"Personal views, assessments, evaluations of tools/concepts/approaches",personal:"Personal facts \u2014 birthday, workplace, location, biographical details",experience:"Personal experiences \u2014 projects built, tools used, skills acquired",business_rule:"Organizational rules, policies, constraints",workflow:"Process flows, state transitions, procedures",architecture:"System design, service interactions, infrastructure",convention:"Coding patterns, naming rules, team standards",decision:"Why choices were made, tradeoffs considered",domain_knowledge:"Domain-specific terminology and concepts",key_insight:"Important takeaways, notable explanations",metric:"Quantitative data, measurements, statistics",issue:"Known problems, bugs, limitations, risks",action_item:"Tasks, follow-ups, assignments, deadlines"},zw=["preference","opinion","personal","experience"],BR=Object.keys(br).filter(t=>!zw.includes(t)),Of=br});import{readFile as Xw}from"node:fs/promises";import{join as Zw}from"node:path";async function Cf(t,{title:e}={}){if(!t?.trim()||t.trim().length<t_)return{route:"noise",facts:[],entities:[],reasoning:"Empty or too short"};if(t.length>e_)return{route:"knowledge",facts:[],entities:[],reasoning:"Long content \u2014 auto-routed to full pipeline"};let o=`${await Xw(Qw,"utf8")}
|
|
123
123
|
|
|
124
124
|
---
|
|
125
125
|
|
|
@@ -176,19 +176,19 @@ Decision rules:
|
|
|
176
176
|
- If you cannot tell, "same" is false. Don't guess.
|
|
177
177
|
|
|
178
178
|
Respond as STRICT JSON, no markdown, no prose:
|
|
179
|
-
{"same": boolean, "rename": boolean, "current_name": "<one of A or B verbatim, or null>", "reason": "one short sentence"}`,f;try{f=await gt(u,{model:p.llm.entityModel,caller:"entity-matcher"})}catch{return{same:!1,rename:!1,reason:"llm-error"}}let l=f_(f);return l&&typeof l.same=="boolean"?{same:l.same===!0,rename:l.rename===!0&&l.same===!0,currentName:typeof l.current_name=="string"?l.current_name:null,reason:typeof l.reason=="string"?l.reason:""}:{same:/^\s*(yes|true)\b/i.test(f),rename:!1,currentName:null,reason:"fallback-text-match"}}function f_(t){if(typeof t!="string")return null;try{return JSON.parse(t.trim())}catch{}let e=t.match(/\{[\s\S]*\}/);if(e)try{return JSON.parse(e[0])}catch{}return null}var u_,
|
|
179
|
+
{"same": boolean, "rename": boolean, "current_name": "<one of A or B verbatim, or null>", "reason": "one short sentence"}`,f;try{f=await gt(u,{model:p.llm.entityModel,caller:"entity-matcher"})}catch{return{same:!1,rename:!1,reason:"llm-error"}}let l=f_(f);return l&&typeof l.same=="boolean"?{same:l.same===!0,rename:l.rename===!0&&l.same===!0,currentName:typeof l.current_name=="string"?l.current_name:null,reason:typeof l.reason=="string"?l.reason:""}:{same:/^\s*(yes|true)\b/i.test(f),rename:!1,currentName:null,reason:"fallback-text-match"}}function f_(t){if(typeof t!="string")return null;try{return JSON.parse(t.trim())}catch{}let e=t.match(/\{[\s\S]*\}/);if(e)try{return JSON.parse(e[0])}catch{}return null}var u_,Df=c(()=>{I();nt();Nt();x();u_=.85});var Pf={};A(Pf,{followMergeChain:()=>m_,mergeEntities:()=>l_});async function l_(t,e){let[r,o]=await Promise.all([et(t),et(e)]);if(!r||!o)throw new Error(`Entity ${t} or ${e} not found`);if(t===e)return r;let n=(r.mentionCount||0)+(o.mentionCount||0);await m.transaction(async i=>{await i("relation").where({sourceId:e}).update({sourceId:t}),await i("relation").where({targetId:e}).update({targetId:t}),await i("relation").whereRaw("source_id = target_id").del(),await i.raw(`
|
|
180
180
|
INSERT INTO fact_entity (fact_id, entity_id, mention_type, mention_count, created_at, updated_at)
|
|
181
181
|
SELECT fact_id, ?, mention_type, mention_count, NOW(), NOW()
|
|
182
182
|
FROM fact_entity
|
|
183
183
|
WHERE entity_id = ?
|
|
184
184
|
ON CONFLICT (fact_id, entity_id, mention_type)
|
|
185
185
|
DO UPDATE SET mention_count = fact_entity.mention_count + EXCLUDED.mention_count
|
|
186
|
-
`,[t,e]),await i("fact_entity").where({entityId:e}).del(),await i("entity").where({id:t}).update({mentionCount:n}),await i("pod").where({entityId:t,status:"active"}).first()?await i("pod").where({entityId:e}).update({status:"archived",updatedAt:i.fn.now()}):await i("pod").where({entityId:e}).update({entityId:t,updatedAt:i.fn.now()}),await i("entity").where({id:e}).update({mergedWith:t})}),await d_(t);let a=p_(o);for(let i of a)await xt(t,i);return console.log(`[entity-merge] Merged ${e} (${o.name}) into ${t} (${r.name})`),{...r,mentionCount:n}}function p_(t){if(!t.entityTypes)return[t.entityType];try{return JSON.parse(t.entityTypes)}catch{return[t.entityType]}}async function d_(t){let e=await m("relation").where(function(){this.where({sourceId:t}).orWhere({targetId:t})}).whereNull("invalidAt"),r=Fo(e,o=>`${o.sourceId}-${o.targetId}-${o.relationType}`);for(let o of Object.values(r)){if(o.length<=1)continue;let[n,...a]=Uo(o,"id"),i=jo(o,"mentionCount");await m("relation").where({id:n.id}).update({mentionCount:i}),await m("relation").whereIn("id",a.map(s=>s.id)).del()}}async function m_(t){let e=await et(t),r=[e?.id];for(;e?.mergedWith;)e=await et(e.mergedWith),e&&r.push(e.id);return{canonical:e,chain:r}}var Mf=c(()=>{xr();I();Ar()});import{readFile as h_}from"node:fs/promises";async function Ie({name:t,entityType:e,description:r,namespace:o,externalId:n,embedding:a,episodeText:i,episodeEntityIds:s=[]}){let u=o||p.defaults.namespace,f=await Ae(t,u);if(f)return f=await Et(f.id),await Te(f.id),f.entityType!==e&&await xt(f.id,e),f;let l=a||await Ge(`${e}: ${t}`),h=await Nf(t,l,{namespace:u,limit:3});for(let y of h){let _=await Xo(t,e,y,i);if(_.same)return kf(y,{newName:t,entityType:e,isRename:_.rename,currentName:_.currentName})}let d=new Set(h.map(y=>y.id)),g=s.filter(y=>y!=null&&!d.has(y));for(let y of g){let _=await Et(y);if(!_||_.namespace!==u||_.name?.toLowerCase()===t.toLowerCase())continue;let w=await Xo(t,e,{..._,types:g_(_),similarity:0},i);if(w.same)return kf(_,{newName:t,entityType:e,isRename:w.rename,currentName:w.currentName})}try{return await Vo({name:t,entityType:e,description:r,namespace:u,externalId:n,embedding:l})}catch(y){if(Bf(y)){let _=await Ae(t,u);if(_){let w=await Et(_.id);return await Te(w.id),await xt(w.id,e),w}}throw y}}function Bf(t){return t?!!(t.code==="23505"||typeof t.message=="string"&&t.message.includes("duplicate key value violates unique constraint")):!1}async function kf(t,{newName:e,entityType:r,isRename:o,currentName:n}){let a=await Et(t.id);if(await Te(a.id),await xt(a.id,r),o&&a.name&&a.name.toLowerCase()!==e.toLowerCase()){let i=e.toLowerCase(),s=a.name.toLowerCase(),u=(n||"").toLowerCase(),f,l;if(u===i?(f=e,l=a.name):u===s?(f=a.name,l=e):(f=e,l=a.name),l&&l.toLowerCase()!==f.toLowerCase()&&(await Sr(a.id,l),a.aliases=[...a.aliases||[],l.toLowerCase()]),f!==a.name)try{await zo(a.id,f),a.name=f}catch(h){if(Bf(h)){let d=await Ae(f,a.namespace);if(d&&d.id!==a.id){let{mergeEntities:g}=await Promise.resolve().then(()=>(Mf(),
|
|
186
|
+
`,[t,e]),await i("fact_entity").where({entityId:e}).del(),await i("entity").where({id:t}).update({mentionCount:n}),await i("pod").where({entityId:t,status:"active"}).first()?await i("pod").where({entityId:e}).update({status:"archived",updatedAt:i.fn.now()}):await i("pod").where({entityId:e}).update({entityId:t,updatedAt:i.fn.now()}),await i("entity").where({id:e}).update({mergedWith:t})}),await d_(t);let a=p_(o);for(let i of a)await xt(t,i);return console.log(`[entity-merge] Merged ${e} (${o.name}) into ${t} (${r.name})`),{...r,mentionCount:n}}function p_(t){if(!t.entityTypes)return[t.entityType];try{return JSON.parse(t.entityTypes)}catch{return[t.entityType]}}async function d_(t){let e=await m("relation").where(function(){this.where({sourceId:t}).orWhere({targetId:t})}).whereNull("invalidAt"),r=Fo(e,o=>`${o.sourceId}-${o.targetId}-${o.relationType}`);for(let o of Object.values(r)){if(o.length<=1)continue;let[n,...a]=Uo(o,"id"),i=jo(o,"mentionCount");await m("relation").where({id:n.id}).update({mentionCount:i}),await m("relation").whereIn("id",a.map(s=>s.id)).del()}}async function m_(t){let e=await et(t),r=[e?.id];for(;e?.mergedWith;)e=await et(e.mergedWith),e&&r.push(e.id);return{canonical:e,chain:r}}var Mf=c(()=>{xr();I();Ar()});import{readFile as h_}from"node:fs/promises";async function Ie({name:t,entityType:e,description:r,namespace:o,externalId:n,embedding:a,episodeText:i,episodeEntityIds:s=[]}){let u=o||p.defaults.namespace,f=await Ae(t,u);if(f)return f=await Et(f.id),await Te(f.id),f.entityType!==e&&await xt(f.id,e),f;let l=a||await Ge(`${e}: ${t}`),h=await Nf(t,l,{namespace:u,limit:3});for(let y of h){let _=await Xo(t,e,y,i);if(_.same)return kf(y,{newName:t,entityType:e,isRename:_.rename,currentName:_.currentName})}let d=new Set(h.map(y=>y.id)),g=s.filter(y=>y!=null&&!d.has(y));for(let y of g){let _=await Et(y);if(!_||_.namespace!==u||_.name?.toLowerCase()===t.toLowerCase())continue;let w=await Xo(t,e,{..._,types:g_(_),similarity:0},i);if(w.same)return kf(_,{newName:t,entityType:e,isRename:w.rename,currentName:w.currentName})}try{return await Vo({name:t,entityType:e,description:r,namespace:u,externalId:n,embedding:l})}catch(y){if(Bf(y)){let _=await Ae(t,u);if(_){let w=await Et(_.id);return await Te(w.id),await xt(w.id,e),w}}throw y}}function Bf(t){return t?!!(t.code==="23505"||typeof t.message=="string"&&t.message.includes("duplicate key value violates unique constraint")):!1}async function kf(t,{newName:e,entityType:r,isRename:o,currentName:n}){let a=await Et(t.id);if(await Te(a.id),await xt(a.id,r),o&&a.name&&a.name.toLowerCase()!==e.toLowerCase()){let i=e.toLowerCase(),s=a.name.toLowerCase(),u=(n||"").toLowerCase(),f,l;if(u===i?(f=e,l=a.name):u===s?(f=a.name,l=e):(f=e,l=a.name),l&&l.toLowerCase()!==f.toLowerCase()&&(await Sr(a.id,l),a.aliases=[...a.aliases||[],l.toLowerCase()]),f!==a.name)try{await zo(a.id,f),a.name=f}catch(h){if(Bf(h)){let d=await Ae(f,a.namespace);if(d&&d.id!==a.id){let{mergeEntities:g}=await Promise.resolve().then(()=>(Mf(),Pf));return await g(d.id,a.id),await Sr(d.id,a.name),await Et(d.id)}}throw h}}return a}function g_(t){if(t.entityTypes)try{return JSON.parse(t.entityTypes)}catch{}return[t.entityType]}async function Zo(t,{promptPath:e,namespace:r}){if(!t.length)return[];let o=t.map(d=>`- [${d.category}] ${d.content}`).join(`
|
|
187
187
|
`),a=`${await h_(e,"utf8")}
|
|
188
188
|
|
|
189
189
|
---
|
|
190
190
|
|
|
191
|
-
${o}`,i=await gt(a,{model:p.llm.entityModel,caller:"entity-resolver"}),s=He(i);if(!Array.isArray(s))return[];let u=s.filter(d=>d.name);if(!u.length)return[];let f=new Array(u.length),l=[],h=[];for(let d=0;d<u.length;d++){let g=await y_(u[d].name,r);g?(f[d]=g,l.push(g.id)):h.push(d)}for(let d of h){let g=u[d],y=await Ie({name:g.name,entityType:"topic",description:g.description||null,namespace:r,episodeText:o,episodeEntityIds:l});f[d]=y,y?.id&&l.push(y.id)}return f.filter(Boolean)}async function y_(t,e){let{findByName:r,getCanonicalEntity:o,incrementMentionCount:n}=await Promise.resolve().then(()=>(Ar(),Lf)),a=await r(t,e);if(!a)return null;let i=await o(a.id);return await n(i.id),i}var $f=c(()=>{Ke();nt();x();Ar();
|
|
191
|
+
${o}`,i=await gt(a,{model:p.llm.entityModel,caller:"entity-resolver"}),s=He(i);if(!Array.isArray(s))return[];let u=s.filter(d=>d.name);if(!u.length)return[];let f=new Array(u.length),l=[],h=[];for(let d=0;d<u.length;d++){let g=await y_(u[d].name,r);g?(f[d]=g,l.push(g.id)):h.push(d)}for(let d of h){let g=u[d],y=await Ie({name:g.name,entityType:"topic",description:g.description||null,namespace:r,episodeText:o,episodeEntityIds:l});f[d]=y,y?.id&&l.push(y.id)}return f.filter(Boolean)}async function y_(t,e){let{findByName:r,getCanonicalEntity:o,incrementMentionCount:n}=await Promise.resolve().then(()=>(Ar(),Lf)),a=await r(t,e);if(!a)return null;let i=await o(a.id);return await n(i.id),i}var $f=c(()=>{Ke();nt();x();Ar();Df()});async function Tr({sourceId:t,targetId:e,relationType:r,sourceFactId:o,validAt:n}){let{rows:[a]}=await m.raw(`
|
|
192
192
|
INSERT INTO relation (source_id, target_id, relation_type, source_fact_id, mention_count, valid_at, created_at, updated_at)
|
|
193
193
|
VALUES (?, ?, ?, ?, 1, ?, NOW(), NOW())
|
|
194
194
|
ON CONFLICT (source_id, target_id, relation_type) DO UPDATE SET
|
|
@@ -197,25 +197,25 @@ ${o}`,i=await gt(a,{model:p.llm.entityModel,caller:"entity-resolver"}),s=He(i);i
|
|
|
197
197
|
updated_at = NOW()
|
|
198
198
|
RETURNING *
|
|
199
199
|
`,[t,e,r,o||null,n||null]);return a}var Ff=c(()=>{I()});async function Ir(t,e){if(!e.length)return;let r=Ho(e,"id"),o=r.map(n=>({factId:t,entityId:n.id,mentionType:"content",mentionCount:1}));await m("fact_entity").insert(o).onConflict(m.raw("(fact_id, entity_id, mention_type)")).merge({mentionCount:m.raw("fact_entity.mention_count + 1")}),await w_(t,r)}async function w_(t,e){let r=e.map(n=>n.id).filter(Boolean);if(!r.length)return;let o=await m("pod").whereIn("entityId",r).where({status:"active"}).select("id");for(let{id:n}of o)await ae(n,t,"mention")}var Uf=c(()=>{xr();I();Ue()});import __ from"node:path";async function rn(t,e,r,o){let{title:n,sourceType:a,metadata:i={}}=t,s=e.filter(d=>d.action==="ADD"||d.action==="UPDATE"),u=s.map(d=>d.fact||d.existing).filter(Boolean),l=s.find(d=>d.fact)?.fact?.id||null,h=new Date().toISOString().split("T")[0];return o?.items?.length?x_({entityDefs:o,factObjects:u,firstFactId:l,namespace:r,today:h}):E_({title:n,sourceType:a,metadata:i,factObjects:u,firstFactId:l,namespace:r,today:h})}async function x_({entityDefs:t,factObjects:e,firstFactId:r,namespace:o,today:n}){let a={},i=0,s=e.map(d=>d.content).filter(Boolean).join(`
|
|
200
|
-
`),u=[];for(let d of t.items){let g=await Ie({name:d.name,entityType:d.type,description:d.description,namespace:o,episodeText:s,episodeEntityIds:u});a[d.name]=g,g?.id&&u.push(g.id)}for(let d of t.relations||[]){let g=a[d.source],y=a[d.target];if(!g||!y)continue;let _=Qo(e,d.source)||Qo(e,d.target);await Tr({sourceId:g.id,targetId:y.id,relationType:d.type,sourceFactId:_?.id||r,validAt:n}),i++}let f=await en(e,o),l=tn(Object.values(a),f),h=0;for(let d of e){let g=l.filter(y=>Or(d.content,y));g.length&&(await Ir(d.id,g),h+=g.length)}return{entityCount:l.length,relationCount:i,factEntityLinks:h,topics:l.filter(d=>d.entityType==="topic").map(d=>d.name)}}async function E_({title:t,sourceType:e,metadata:r,factObjects:o,firstFactId:n,namespace:a,today:i}){if(!t){let w=o.length?await Zo(o,{promptPath:jf,namespace:a}):[],C=await en(o,a),M=tn(w,C),
|
|
201
|
-
`).slice(0,2e3),u=await Ie({name:t,entityType:"document",description:`${e} document: ${t}`,namespace:a,episodeText:s}),f=null;r.author&&(f=await Ie({name:r.author,entityType:"person",namespace:a,episodeText:s,episodeEntityIds:u?.id?[u.id]:[]}));let l=o.length?await Zo(o,{promptPath:jf,namespace:a}):[],h=0;f&&(await Tr({sourceId:u.id,targetId:f.id,relationType:"AUTHORED_BY",sourceFactId:n,validAt:i}),h++);for(let w of l){let C=Qo(o,w.name);await Tr({sourceId:u.id,targetId:w.id,relationType:"COVERS",sourceFactId:C?.id||n,validAt:i}),h++}let d=[u,f,...l].filter(Boolean),g=await en(o,a),y=tn(d,g),_=0;for(let w of o){let C=y.filter(M=>Or(w.content,M));C.length&&(await Ir(w.id,C),_+=C.length)}return{entityCount:y.length,relationCount:h,factEntityLinks:_,topics:l.map(w=>w.name)}}function Qo(t,e){if(!e)return null;let r=e.toLowerCase();return t.find(o=>o.content?.toLowerCase().includes(r))||null}function Or(t,e){if(!t||!e?.name)return!1;let r=t.toLowerCase();return[e.name.toLowerCase(),...e.aliases||[]].some(n=>n?new RegExp(`\\b${b_(n)}\\b`).test(r):!1)}function b_(t){return t.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")}function tn(...t){let e=new Set,r=[];for(let o of t)for(let n of o)!n||e.has(n.id)||(e.add(n.id),r.push(n));return r}async function en(t,e){if(!t?.length)return[];let r=await m("entity as e").join("pod as p","p.entity_id","e.id").where("p.status","active").where("e.namespace",e).whereNull("e.mergedWith").select("e.id","e.uid","e.name","e.entityType","e.aliases");return r.length?r.filter(o=>t.some(n=>Or(n.content,o))):[]}var jf,Hf=c(()=>{$f();Ff();Uf();$();I();jf=__.join(z,"entity-extraction.md")});var S_,Gf,on=c(()=>{I();x();S_=1440*60*1e3,Gf={name:"person",description:"A person you have a working relationship with",identityField:"primary_handle",attrsSchema:{platforms:"object",role:"string",relationship:"string",notes:"string"},visibility:"private",activeMode:"rolling-window",hotContextBudget:4,retrievalWeights:{recency:1,relevance:.8},importanceDefault:3,ttlDays:null,schemaDocPath:"kinds/person.schema.md",writePolicy:"origin-only",resolveActiveScope:async(t={})=>{let e=t.namespace||p.defaults.namespace;try{let r=new Date(Date.now()-S_);return(await m("pod as p").join("pod_membership as pm","pm.pod_id","p.id").join("fact_lifecycle as fl","fl.fact_id","pm.member_id").where("pm.memberType","fact").where("p.podType","person").where("p.namespace",e).where("p.status","active").where("fl.lastAccessedAt",">=",r).distinct("p.uid")).map(n=>n.uid)}catch{return[]}}}});async function Kf(t,e){if(!t||typeof t!="object")return[];let r=[],o=e||p.defaults.namespace;if(t.slack?.team_id&&t.connection_id){let a=await oe({podType:"connector_workspace",externalId:`slack:${t.slack.team_id}`,namespace:o});a&&r.push({podId:a.id,role:"primary"})}if(t.github?.org&&t.connection_id){let a=await oe({podType:"connector_workspace",externalId:`github:${t.github.org}`,namespace:o});a&&r.push({podId:a.id,role:"primary"})}let n=t.project_root||t.source_root;if(n)try{let{ensureProjectPod:a}=await Promise.resolve().then(()=>(se(),qr)),i=await a({cwd:n,namespace:o});i&&r.push({podId:i.id,role:"primary"})}catch{}return r}var Wf=c(()=>{It();on();x()});var Vf={};A(Vf,{ingestDocument:()=>v_});import{createHash as T_}from"node:crypto";import{join as I_}from"node:path";async function v_({content:t,title:e,sourcePath:r,sourceType:o="raw",contentType:n,namespace:a,metadata:i={},promptPath:s,categories:u,entities:f,skipFacts:l=!1,skipEntities:h=!1,skipContextualization:d=!1,classify:g=!0,podUids:y=[],resolvePodsFrom:_=null}){t=St(t);let w=a||p.defaults.namespace,C=u||Object.keys(br),M=s||O_,
|
|
202
|
-
`),O=await Cf(t,{title:
|
|
200
|
+
`),u=[];for(let d of t.items){let g=await Ie({name:d.name,entityType:d.type,description:d.description,namespace:o,episodeText:s,episodeEntityIds:u});a[d.name]=g,g?.id&&u.push(g.id)}for(let d of t.relations||[]){let g=a[d.source],y=a[d.target];if(!g||!y)continue;let _=Qo(e,d.source)||Qo(e,d.target);await Tr({sourceId:g.id,targetId:y.id,relationType:d.type,sourceFactId:_?.id||r,validAt:n}),i++}let f=await en(e,o),l=tn(Object.values(a),f),h=0;for(let d of e){let g=l.filter(y=>Or(d.content,y));g.length&&(await Ir(d.id,g),h+=g.length)}return{entityCount:l.length,relationCount:i,factEntityLinks:h,topics:l.filter(d=>d.entityType==="topic").map(d=>d.name)}}async function E_({title:t,sourceType:e,metadata:r,factObjects:o,firstFactId:n,namespace:a,today:i}){if(!t){let w=o.length?await Zo(o,{promptPath:jf,namespace:a}):[],C=await en(o,a),M=tn(w,C),L=0;for(let O of o){let H=M.filter(Cr=>Or(O.content,Cr));H.length&&(await Ir(O.id,H),L+=H.length)}return{entityCount:M.length,relationCount:0,factEntityLinks:L,topics:w.map(O=>O.name)}}let s=o.map(w=>w.content).filter(Boolean).join(`
|
|
201
|
+
`).slice(0,2e3),u=await Ie({name:t,entityType:"document",description:`${e} document: ${t}`,namespace:a,episodeText:s}),f=null;r.author&&(f=await Ie({name:r.author,entityType:"person",namespace:a,episodeText:s,episodeEntityIds:u?.id?[u.id]:[]}));let l=o.length?await Zo(o,{promptPath:jf,namespace:a}):[],h=0;f&&(await Tr({sourceId:u.id,targetId:f.id,relationType:"AUTHORED_BY",sourceFactId:n,validAt:i}),h++);for(let w of l){let C=Qo(o,w.name);await Tr({sourceId:u.id,targetId:w.id,relationType:"COVERS",sourceFactId:C?.id||n,validAt:i}),h++}let d=[u,f,...l].filter(Boolean),g=await en(o,a),y=tn(d,g),_=0;for(let w of o){let C=y.filter(M=>Or(w.content,M));C.length&&(await Ir(w.id,C),_+=C.length)}return{entityCount:y.length,relationCount:h,factEntityLinks:_,topics:l.map(w=>w.name)}}function Qo(t,e){if(!e)return null;let r=e.toLowerCase();return t.find(o=>o.content?.toLowerCase().includes(r))||null}function Or(t,e){if(!t||!e?.name)return!1;let r=t.toLowerCase();return[e.name.toLowerCase(),...e.aliases||[]].some(n=>n?new RegExp(`\\b${b_(n)}\\b`).test(r):!1)}function b_(t){return t.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")}function tn(...t){let e=new Set,r=[];for(let o of t)for(let n of o)!n||e.has(n.id)||(e.add(n.id),r.push(n));return r}async function en(t,e){if(!t?.length)return[];let r=await m("entity as e").join("pod as p","p.entity_id","e.id").where("p.status","active").where("e.namespace",e).whereNull("e.mergedWith").select("e.id","e.uid","e.name","e.entityType","e.aliases");return r.length?r.filter(o=>t.some(n=>Or(n.content,o))):[]}var jf,Hf=c(()=>{$f();Ff();Uf();$();I();jf=__.join(z,"entity-extraction.md")});var S_,Gf,on=c(()=>{I();x();S_=1440*60*1e3,Gf={name:"person",description:"A person you have a working relationship with",identityField:"primary_handle",attrsSchema:{platforms:"object",role:"string",relationship:"string",notes:"string"},visibility:"private",activeMode:"rolling-window",hotContextBudget:4,retrievalWeights:{recency:1,relevance:.8},importanceDefault:3,ttlDays:null,schemaDocPath:"kinds/person.schema.md",writePolicy:"origin-only",resolveActiveScope:async(t={})=>{let e=t.namespace||p.defaults.namespace;try{let r=new Date(Date.now()-S_);return(await m("pod as p").join("pod_membership as pm","pm.pod_id","p.id").join("fact_lifecycle as fl","fl.fact_id","pm.member_id").where("pm.memberType","fact").where("p.podType","person").where("p.namespace",e).where("p.status","active").where("fl.lastAccessedAt",">=",r).distinct("p.uid")).map(n=>n.uid)}catch{return[]}}}});async function Kf(t,e){if(!t||typeof t!="object")return[];let r=[],o=e||p.defaults.namespace;if(t.slack?.team_id&&t.connection_id){let a=await oe({podType:"connector_workspace",externalId:`slack:${t.slack.team_id}`,namespace:o});a&&r.push({podId:a.id,role:"primary"})}if(t.github?.org&&t.connection_id){let a=await oe({podType:"connector_workspace",externalId:`github:${t.github.org}`,namespace:o});a&&r.push({podId:a.id,role:"primary"})}let n=t.project_root||t.source_root;if(n)try{let{ensureProjectPod:a}=await Promise.resolve().then(()=>(se(),qr)),i=await a({cwd:n,namespace:o});i&&r.push({podId:i.id,role:"primary"})}catch{}return r}var Wf=c(()=>{It();on();x()});var Vf={};A(Vf,{ingestDocument:()=>v_});import{createHash as T_}from"node:crypto";import{join as I_}from"node:path";async function v_({content:t,title:e,sourcePath:r,sourceType:o="raw",contentType:n,namespace:a,metadata:i={},promptPath:s,categories:u,entities:f,skipFacts:l=!1,skipEntities:h=!1,skipContextualization:d=!1,classify:g=!0,podUids:y=[],resolvePodsFrom:_=null}){t=St(t);let w=a||p.defaults.namespace,C=u||Object.keys(br),M=s||O_,L=e||r,O=null;if(g&&(process.stderr.write(`[0/6] Classifying input...
|
|
202
|
+
`),O=await Cf(t,{title:L}),process.stderr.write(` Route: ${O.route} \u2014 ${O.reasoning}
|
|
203
203
|
`),O.route==="noise"))return process.stderr.write(` Skipped \u2014 classified as noise.
|
|
204
|
-
`),{documentId:null,title:
|
|
205
|
-
`);let H=T_("sha256").update(t).digest("hex"),Cr=r||`thought:${H}`,{doc:
|
|
206
|
-
`),{documentId:
|
|
207
|
-
`);let Lr=La(t,{format:i.format,filePath:r,contentType:n});if(
|
|
208
|
-
`);let
|
|
209
|
-
`),{documentId:
|
|
210
|
-
`),G=
|
|
211
|
-
`),!d&&G.length&&(G=await Ua(G,Lr.text,{title:
|
|
212
|
-
${ot.content}`:ot.content}),bt=await fe(
|
|
213
|
-
`),K=await R_(G,{documentId:
|
|
214
|
-
`),await so(
|
|
215
|
-
`),Qt=await rn({title:
|
|
216
|
-
`))}catch(
|
|
217
|
-
`),{documentId:
|
|
218
|
-
`),!a.length)return{counts:{total:0,added:0,skipped:0,updated:0,contradicted:0},results:[]};let i=await fe(a.map(s=>s.content));return qf(a,{documentId:e,namespace:r,embeddings:i})}async function L_({podUids:t,resolvePodsFrom:e,metadata:r,namespace:o}){let n=[];for(let i of t){let s=await re(i);s&&n.push({podId:s.id,role:"primary"})}if(e==="metadata"){let i=await Kf(r,o);for(let s of i)n.push(s)}let a=new Map;for(let i of n){let s=a.get(i.podId);(!s||i.role==="primary"&&s.role!=="primary")&&a.set(i.podId,i)}return[...a.values()]}async function Jf(t,e){if(!(!e.length||!t.length))for(let r of t){let o=r?.fact?.id??r?.existing?.id;if(!o)continue;let n=r?.action==="SKIP"?"mention":"primary";for(let{podId:a}of e)await ae(a,o,n)}}var O_,zf=c(()=>{Na();
|
|
204
|
+
`),{documentId:null,title:L,skipped:!0,route:"noise"};process.stderr.write(`[1/6] Checking for changes...
|
|
205
|
+
`);let H=T_("sha256").update(t).digest("hex"),Cr=r||`thought:${H}`,{doc:D,changed:_l}=await Ha({sourcePath:Cr,sourceType:o,title:L,contentHash:H,namespace:w});if(!_l)return process.stderr.write(` Skipped \u2014 content unchanged.
|
|
206
|
+
`),{documentId:D.id,title:L,skipped:!0};i&&(Object.keys(i).length||i.connection_id)&&await Ka(D.id,i,i.connection_id??null);let Rr=await L_({podUids:y,resolvePodsFrom:_,metadata:i,namespace:w});for(let{podId:N,role:bt}of Rr)await Hr(N,D.id,bt);process.stderr.write(`[2/6] Parsing content...
|
|
207
|
+
`);let Lr=La(t,{format:i.format,filePath:r,contentType:n});if(L=e||Lr.metadata?.title||r,O?.route==="thought"&&O.facts.length){process.stderr.write(`[thought] Storing ${O.facts.length} facts directly...
|
|
208
|
+
`);let N=await C_(O.facts,{documentId:D.id,namespace:w}),bt={entityCount:0,relationCount:0,factEntityLinks:0,topics:[]};return!h&&N.results.length&&(bt=await rn({title:L,sourceType:o,metadata:i},N.results,w,f)),await so(D.id,{chunkCount:0,factCount:N.counts.added}),await Jf(N.results,Rr),await Jo(D.id,N.results.map(Oe=>Oe.fact?.id??Oe.existing?.id).filter(Boolean)),process.stderr.write(`Done. Route: thought, ${N.counts.total} facts (${N.counts.added} new)
|
|
209
|
+
`),{documentId:D.id,documentUid:D.uid,title:L,skipped:!1,route:"thought",chunkCount:0,facts:{...N.counts,verdicts:Yf(N.results)},entities:bt}}let G=[],K={counts:{total:0,added:0,skipped:0,updated:0,contradicted:0},results:[]},Qt={entityCount:0,relationCount:0,factEntityLinks:0,topics:[]};try{process.stderr.write(`[3/6] Chunking and embedding...
|
|
210
|
+
`),G=Da(Lr.sections),process.stderr.write(` ${G.length} chunks created
|
|
211
|
+
`),!d&&G.length&&(G=await Ua(G,Lr.text,{title:L}));let N=G.map(ot=>{let ve=ot.contextualPrefix;return ve?`${ve}
|
|
212
|
+
${ot.content}`:ot.content}),bt=await fe(N),Oe=G.map((ot,ve)=>({...ot,embedding:bt[ve]}));await Ya(D.id,Oe,w),!l&&p.ingest.eagerExtract?(process.stderr.write(`[4/6] Extracting facts...
|
|
213
|
+
`),K=await R_(G,{documentId:D.id,namespace:w,promptPath:M,categories:C})):p.ingest.eagerExtract||process.stderr.write(`[4/6] Skipping fact extraction (SIGIL_EAGER_EXTRACT=false)
|
|
214
|
+
`),await so(D.id,{chunkCount:G.length,factCount:K.counts.added+K.counts.updated+K.counts.contradicted}),await Jf(K.results,Rr),await Jo(D.id,K.results.map(ot=>ot.fact?.id??ot.existing?.id).filter(Boolean)),!h&&K.results.length&&(process.stderr.write(`[5/6] Linking entities...
|
|
215
|
+
`),Qt=await rn({title:L,sourceType:o,metadata:i},K.results,w,f),process.stderr.write(` ${Qt.entityCount} entities, ${Qt.relationCount} relations
|
|
216
|
+
`))}catch(N){throw console.error(`[pipeline] Failed after document upsert: ${N.message}`),await Ga(D.id).catch(()=>{}),N}return process.stderr.write(`Done. ${G.length} chunks, ${K.counts.total} facts, ${Qt.entityCount} entities
|
|
217
|
+
`),{documentId:D.id,documentUid:D.uid,title:L,skipped:!1,route:O?.route??null,chunkCount:G.length,facts:{...K.counts,verdicts:Yf(K.results)},entities:Qt}}function Yf(t){return(t||[]).map(e=>({action:e.action,factId:e.fact?.id??e.existing?.id??null,content:String(e.fact?.content||e.existing?.content||"").slice(0,240),audm:e.audm||null,supersededId:e.supersededId??null,contradictedId:e.contradictedId??null}))}async function qf(t,{documentId:e,namespace:r,embeddings:o,defaultConfidence:n="medium",defaultImportance:a="supplementary"}){let i={total:t.length,added:0,skipped:0,updated:0,contradicted:0},s=[];for(let u=0;u<t.length;u++){let f=t[u],l=await Af({content:f.content,category:f.category,confidence:f.confidence||n,importance:f.importance||a,namespace:r,sourceDocumentIds:e?[e]:[],sourceSection:f.sourceSection||f.category,embedding:o[u]});s.push(l);let h=l.action.toLowerCase();h==="add"?i.added++:h==="skip"?i.skipped++:h==="update"?i.updated++:h==="contradict"&&i.contradicted++}return{counts:i,results:s}}async function C_(t,{documentId:e,namespace:r}){let o=await fe(t.map(n=>n.content));return qf(t,{documentId:e,namespace:r,embeddings:o,defaultConfidence:"high",defaultImportance:"vital"})}async function R_(t,{documentId:e,namespace:r,promptPath:o,categories:n}){let a=await xf(t,{promptPath:o,categories:n});if(process.stderr.write(` ${a.length} facts extracted from ${t.length} chunks
|
|
218
|
+
`),!a.length)return{counts:{total:0,added:0,skipped:0,updated:0,contradicted:0},results:[]};let i=await fe(a.map(s=>s.content));return qf(a,{documentId:e,namespace:r,embeddings:i})}async function L_({podUids:t,resolvePodsFrom:e,metadata:r,namespace:o}){let n=[];for(let i of t){let s=await re(i);s&&n.push({podId:s.id,role:"primary"})}if(e==="metadata"){let i=await Kf(r,o);for(let s of i)n.push(s)}let a=new Map;for(let i of n){let s=a.get(i.podId);(!s||i.role==="primary"&&s.role!=="primary")&&a.set(i.podId,i)}return[...a.values()]}async function Jf(t,e){if(!(!e.length||!t.length))for(let r of t){let o=r?.fact?.id??r?.existing?.id;if(!o)continue;let n=r?.action==="SKIP"?"mention":"primary";for(let{podId:a}of e)await ae(a,o,n)}}var O_,zf=c(()=>{Na();Pa();Ke();ja();Wa();Ja();Ef();If();qo();Rf();Hf();It();Ue();Wf();Le();x();$();O_=I_(z,"default-extraction.md")});var nn,N_,Xf,Zf=c(()=>{nn=class{constructor(){this.buffer=[],this.subs=new Set}emit(e,r={}){let o={type:e,ts:new Date().toISOString(),...r};this.buffer.push(o),this.buffer.length>200&&this.buffer.shift();for(let n of this.subs)try{n(o)}catch{}return o}subscribe(e){return this.subs.add(e),()=>this.subs.delete(e)}recent(e=50){return e>=this.buffer.length?[...this.buffer]:this.buffer.slice(-e)}subscriberCount(){return this.subs.size}},N_=new nn,Xf=N_});var tl={};A(tl,{clearTraces:()=>$_,getTrace:()=>B_,listTraces:()=>k_,recordTrace:()=>M_});function P_(){let t=Go();return{deviceId:t?.device?.id??null,transport:t?.transport??null}}async function M_({kind:t,summary:e,detail:r={},namespace:o=null,durationMs:n=null}){let a=`trace-${X(16)}`,i=new Date().toISOString(),{deviceId:s,transport:u}=P_(),f=r;try{JSON.stringify(r).length>D_&&(f={truncated:!0,note:"trace detail exceeded size cap",summary:e})}catch{f={error:"detail not serializable"}}try{Xf.emit("trace",{uid:a,kind:t,summary:e,namespace:o,durationMs:n,deviceId:s,transport:u,detail:f})}catch{}try{return await m("trace_event").insert({uid:a,kind:t,ts:i,duration_ms:n,namespace:o,summary:e,device_id:s,transport:u,detail:JSON.stringify(f)}),a}catch(l){return console.error("[trace-store] persist failed:",l.message),null}}async function k_({kind:t=null,namespace:e=null,before:r=null,limit:o=50}={}){let n=m("trace_event").select("uid","kind","ts","duration_ms as durationMs","namespace","summary","device_id as deviceId","transport","detail").orderBy("ts","desc").limit(Math.min(Number(o)||50,200));return t&&(n=n.where({kind:t})),e&&(n=n.where({namespace:e})),r&&(n=n.where("ts","<",r)),(await n).map(i=>({...i,detail:typeof i.detail=="string"?Qf(i.detail):i.detail}))}async function B_(t){let e=await m("trace_event").select("uid","kind","ts","duration_ms as durationMs","namespace","summary","device_id as deviceId","transport","detail").where({uid:t}).first();return e?{...e,detail:typeof e.detail=="string"?Qf(e.detail):e.detail}:null}async function $_(){return{cleared:await m("trace_event").del()}}function Qf(t){try{return JSON.parse(t)}catch{return{}}}var D_,el=c(()=>{Tt();I();Zf();Ko();D_=256*1024});function ol(t){for(let e of F_)if(!t[e])throw new Error(`Pod kind missing required field: ${e}`);if(t.visibility&&!U_.has(t.visibility))throw new Error(`Pod kind ${t.name}: invalid visibility ${t.visibility}`);if(t.activeMode&&!j_.has(t.activeMode))throw new Error(`Pod kind ${t.name}: invalid activeMode ${t.activeMode}`);if(t.writePolicy&&!H_.has(t.writePolicy))throw new Error(`Pod kind ${t.name}: invalid writePolicy ${t.writePolicy}`);rl.set(t.name,G_(t))}function G_(t){return{visibility:"private",activeMode:"multi-active",hotContextBudget:0,retrievalWeights:{recency:1,relevance:1},importanceDefault:2,ttlDays:null,writePolicy:"origin-only",lifecycle:{},...t}}async function nl(t={}){let e=[];for(let r of rl.values())if(typeof r.resolveActiveScope=="function")try{let o=await r.resolveActiveScope(t);Array.isArray(o)&&o.length>0&&e.push({kind:r,scope:o})}catch(o){process.stderr.write(`[sigil:pods] resolveActiveScope failed for kind "${r.name}": ${o.message}
|
|
219
219
|
`),K_(r.name,o)}return e}function K_(t,e){Promise.resolve().then(()=>(el(),tl)).then(({recordTrace:r})=>r({kind:"lifecycle",summary:`pod-resolution failed for kind "${t}"`,detail:{kind:t,error:e.message}})).catch(()=>{})}var F_,U_,j_,H_,rl,an=c(()=>{$();F_=["name"],U_=new Set(["private","shared","public"]),j_=new Set(["singleton-live","multi-active","rolling-window","always"]),H_=new Set(["origin-only","shared-allowlist","open"]),rl=new Map});async function Y_(t){if(t.project)return t.project;if(!t.cwd)try{let{getActiveCursor:e}=await Promise.resolve().then(()=>(Ot(),$e)),r=await e();t={...t,cwd:r?.cwd}}catch{return null}if(!t.cwd)return null;try{let{deriveProjectRoot:e}=await Promise.resolve().then(()=>(se(),qr)),r=e(t.cwd);return r?r.split("/").pop():null}catch{return null}}function J_(t){if(!t)return{};if(typeof t=="object")return t;try{return JSON.parse(t)}catch{return{}}}var W_,al,il=c(()=>{I();x();W_="playbook",al={name:"playbook",description:"A reusable workflow or debug recipe (procedural memory)",identityField:"slug",attrsSchema:{slug:"string",project:"string",description:"string",tags:"array"},visibility:"shared",activeMode:"always",hotContextBudget:3,retrievalWeights:{recency:.3,relevance:1},importanceDefault:3,ttlDays:null,schemaDocPath:"kinds/playbook.schema.md",writePolicy:"origin-only",resolveActiveScope:async(t={})=>{let e=t.namespace||p.defaults.namespace,r=await Y_(t);try{let n=await m("pod").where({podType:W_,namespace:e,status:"active"}).select("uid","attrs");return r?n.filter(i=>{let s=J_(i.attrs);return!s.project||s.project===r}).map(i=>i.uid):n.map(i=>i.uid)}catch{return[]}}}});var q_,sl,cl=c(()=>{I();x();q_=["__virtual:vital__"],sl={name:"vital",description:"Facts marked importance=5 (vital), surfaced globally",identityField:null,attrsSchema:{},visibility:"public",activeMode:"always",hotContextBudget:6,retrievalWeights:{recency:.5,relevance:1},importanceDefault:5,ttlDays:null,schemaDocPath:"kinds/vital.schema.md",writePolicy:"open",resolveActiveScope:async()=>q_,fetchFacts:async(t={},{slots:e=8,namespace:r}={})=>{let o=r||t.namespace||p.defaults.namespace;return m("fact as f").leftJoin("fact_lifecycle as fl","fl.fact_id","f.id").where({"f.status":"active","f.namespace":o}).where(n=>{n.where("f.importance","vital").orWhere("f.importance_score",5)}).orderByRaw("COALESCE(fl.access_count, 0) DESC, f.created_at DESC").limit(e).pluck("f.content")}}});function z_(){if(!ul){for(let t of V_)ol(t);ul=!0}}var V_,ul,fl=c(()=>{an();Fr();on();se();il();cl();V_=[jn,Wr,Gf,al,sl],ul=!1;z_()});var ml={};A(ml,{factsInPodsByRecency:()=>pl,getHotFacts:()=>ll,updateContextSnapshot:()=>Q_,writeSnapshotToFile:()=>dl});async function ll({namespace:t,limit:e=X_,ctx:r={}}={}){let o=t||p.defaults.namespace,n={...r,namespace:o};n.cwd||(n.cwd=await Z_());let a=await nl(n),i=await Promise.all(a.map(async({kind:f,scope:l})=>{try{return typeof f.fetchFacts=="function"?await f.fetchFacts(n,{slots:f.hotContextBudget,namespace:o}):await pl(l,o,f.hotContextBudget)}catch{return[]}})),s=new Set,u=[];for(let f of i)for(let l of f)if(!(!l||s.has(l))&&(s.add(l),u.push(l),u.length>=e))return u;if(u.length===0){let f=await m("fact as f").leftJoin("fact_lifecycle as fl","fl.fact_id","f.id").where({"f.status":"active","f.namespace":o}).orderByRaw("COALESCE(fl.last_accessed_at, f.created_at) DESC").limit(e).pluck("f.content");for(let l of f)if(!(!l||s.has(l))&&(s.add(l),u.push(l),u.length>=e))break}return u.slice(0,e)}async function pl(t,e,r){if(!Array.isArray(t)||t.length===0)return[];let o=t.filter(n=>typeof n=="string"&&!n.startsWith("__virtual:"));return o.length===0?[]:m("fact as f").join("pod_membership as pm",function(){this.on("pm.member_id","=","f.id").andOnVal("pm.member_type","=","fact")}).join("pod as p","p.id","pm.pod_id").leftJoin("fact_lifecycle as fl","fl.fact_id","f.id").whereIn("p.uid",o).where({"f.status":"active","f.namespace":e}).orderByRaw(`
|
|
220
220
|
COALESCE(f.importance_score, 2) DESC,
|
|
221
221
|
COALESCE(fl.last_accessed_at, f.created_at) DESC
|
|
@@ -253,9 +253,9 @@ Each saved fact must:
|
|
|
253
253
|
Respond as STRICT JSON, no markdown:
|
|
254
254
|
{"memorable": boolean, "facts": ["...", "..."]}
|
|
255
255
|
|
|
256
|
-
If "memorable" is false, "facts" must be an empty array.`;async function hx(t){let{promptJson:e}=await Promise.resolve().then(()=>(nt(),Ea)),r=(await Promise.resolve().then(()=>(x(),
|
|
256
|
+
If "memorable" is false, "facts" must be an empty array.`;async function hx(t){let{promptJson:e}=await Promise.resolve().then(()=>(nt(),Ea)),r=(await Promise.resolve().then(()=>(x(),Dr))).default,o=`${mx}
|
|
257
257
|
|
|
258
258
|
---
|
|
259
259
|
User message:
|
|
260
|
-
${t}`,n=await e(o,{model:r.llm.extractionModel,caller:"stop-hook"});return!n||n.memorable!==!0?[]:Array.isArray(n.facts)?n.facts.filter(a=>typeof a=="string").map(a=>a.trim()).filter(a=>a.length>=8&&a.length<=200):[]}async function gx(t,{podUids:e=[]}={}){let{ingestDocument:r}=await Promise.resolve().then(()=>(zf(),Vf)),o=(await Promise.resolve().then(()=>(x(),
|
|
260
|
+
${t}`,n=await e(o,{model:r.llm.extractionModel,caller:"stop-hook"});return!n||n.memorable!==!0?[]:Array.isArray(n.facts)?n.facts.filter(a=>typeof a=="string").map(a=>a.trim()).filter(a=>a.length>=8&&a.length<=200):[]}async function gx(t,{podUids:e=[]}={}){let{ingestDocument:r}=await Promise.resolve().then(()=>(zf(),Vf)),o=(await Promise.resolve().then(()=>(x(),Dr))).default;for(let n of t)try{await r({content:n,namespace:o.defaults.namespace,classify:!1,podUids:e})}catch(a){process.stderr.write(`[sigil:stop] save failed: ${a.message}
|
|
261
261
|
`)}try{let{updateContextSnapshot:n}=await Promise.resolve().then(()=>(hl(),ml));await n({namespace:o.defaults.namespace})}catch{}}ix();
|