@precisionutilityguild/liquid-shadow 1.0.3 → 1.0.5

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.
Files changed (33) hide show
  1. package/README.md +2 -2
  2. package/dist/data/migrations/000_baseline.sql +277 -0
  3. package/dist/entry/cli/index.js +708 -431
  4. package/dist/entry/mcp/server.js +349 -296
  5. package/dist/index.js +676 -123
  6. package/dist/logic/domain/embeddings/worker.js +1 -1
  7. package/dist/logic/parser/index.js +14 -13
  8. package/dist/skills/shadow_audit/SKILL.md +40 -0
  9. package/dist/skills/shadow_chronicle/SKILL.md +40 -0
  10. package/dist/skills/shadow_continue/SKILL.md +55 -0
  11. package/dist/skills/shadow_crystallize/SKILL.md +41 -0
  12. package/dist/skills/shadow_mission/SKILL.md +50 -0
  13. package/dist/skills/shadow_onboard/SKILL.md +35 -0
  14. package/dist/skills/shadow_research/SKILL.md +34 -0
  15. package/dist/skills/shadow_sync/SKILL.md +18 -0
  16. package/dist/skills/shadow_synthesize/SKILL.md +47 -0
  17. package/dist/skills/shadow_trace_impact/SKILL.md +55 -0
  18. package/dist/skills/shadow_understand/SKILL.md +51 -0
  19. package/dist/skills/shadow_workspace/SKILL.md +30 -0
  20. package/dist/web-manifest.json +1 -1
  21. package/package.json +3 -2
  22. package/skills/shadow_audit/SKILL.md +40 -0
  23. package/skills/shadow_chronicle/SKILL.md +40 -0
  24. package/skills/shadow_continue/SKILL.md +55 -0
  25. package/skills/shadow_crystallize/SKILL.md +41 -0
  26. package/skills/shadow_mission/SKILL.md +50 -0
  27. package/skills/shadow_onboard/SKILL.md +35 -0
  28. package/skills/shadow_research/SKILL.md +34 -0
  29. package/skills/shadow_sync/SKILL.md +18 -0
  30. package/skills/shadow_synthesize/SKILL.md +47 -0
  31. package/skills/shadow_trace_impact/SKILL.md +55 -0
  32. package/skills/shadow_understand/SKILL.md +51 -0
  33. package/skills/shadow_workspace/SKILL.md +30 -0
@@ -1,32 +1,41 @@
1
1
  #!/usr/bin/env node
2
- var pa=Object.create;var us=Object.defineProperty;var da=Object.getOwnPropertyDescriptor;var ua=Object.getOwnPropertyNames;var ma=Object.getPrototypeOf,ha=Object.prototype.hasOwnProperty;var fa=(i=>typeof require<"u"?require:typeof Proxy<"u"?new Proxy(i,{get:(e,t)=>(typeof require<"u"?require:e)[t]}):i)(function(i){if(typeof require<"u")return require.apply(this,arguments);throw Error('Dynamic require of "'+i+'" is not supported')});var K=(i,e)=>()=>(i&&(e=i(i=0)),e);var ga=(i,e)=>()=>(e||i((e={exports:{}}).exports,e),e.exports),ms=(i,e)=>{for(var t in e)us(i,t,{get:e[t],enumerable:!0})},ya=(i,e,t,n)=>{if(e&&typeof e=="object"||typeof e=="function")for(let s of ua(e))!ha.call(i,s)&&s!==t&&us(i,s,{get:()=>e[s],enumerable:!(n=da(e,s))||n.enumerable});return i};var ba=(i,e,t)=>(t=i!=null?pa(ma(i)):{},ya(e||!i||!i.__esModule?us(t,"default",{value:i,enumerable:!0}):t,i));import _a from"pino";var Ea,Sa,S,W=K(()=>{"use strict";Ea={10:"TRACE",20:"DEBUG",30:"INFO",40:"WARN",50:"ERROR",60:"FATAL"},Sa=_a({level:process.env.LOG_LEVEL||"warn",base:{service:"liquid-shadow"},formatters:{level(i,e){return{level:i,severity:Ea[e]??"INFO"}}},transport:{target:"pino-pretty",options:{colorize:!0,translateTime:"HH:MM:ss",destination:2,levelKey:"severity",messageKey:"message"}}}),S=Sa});import Nt from"fs";import fs from"path";import{fileURLToPath as va}from"url";function ka(i){i.exec(`
2
+ var lx=Object.create;var pc=Object.defineProperty;var ux=Object.getOwnPropertyDescriptor;var dx=Object.getOwnPropertyNames;var px=Object.getPrototypeOf,mx=Object.prototype.hasOwnProperty;var fx=(n=>typeof require<"u"?require:typeof Proxy<"u"?new Proxy(n,{get:(e,r)=>(typeof require<"u"?require:e)[r]}):n)(function(n){if(typeof require<"u")return require.apply(this,arguments);throw Error('Dynamic require of "'+n+'" is not supported')});var be=(n,e)=>()=>(n&&(e=n(n=0)),e);var hx=(n,e)=>()=>(e||n((e={exports:{}}).exports,e),e.exports),et=(n,e)=>{for(var r in e)pc(n,r,{get:e[r],enumerable:!0})},gx=(n,e,r,i)=>{if(e&&typeof e=="object"||typeof e=="function")for(let t of dx(e))!mx.call(n,t)&&t!==r&&pc(n,t,{get:()=>e[t],enumerable:!(i=ux(e,t))||i.enumerable});return n};var yx=(n,e,r)=>(r=n!=null?lx(px(n)):{},gx(e||!n||!n.__esModule?pc(r,"default",{value:n,enumerable:!0}):r,n));import bx from"pino";var vx,_x,$,J=be(()=>{"use strict";vx={10:"TRACE",20:"DEBUG",30:"INFO",40:"WARN",50:"ERROR",60:"FATAL"},_x=bx({level:process.env.LOG_LEVEL||"warn",base:{service:"liquid-shadow"},formatters:{level(n,e){return{level:n,severity:vx[e]??"INFO"}}},transport:{target:"pino-pretty",options:{colorize:!0,translateTime:"HH:MM:ss",destination:2,levelKey:"severity",messageKey:"message"}}}),$=_x});import vn from"fs";import Yi from"path";import{fileURLToPath as $x}from"url";function Ex(){let n=kx;if(vn.readdirSync(n).some(i=>i.match(/^\d{3}_.*\.sql$/)))return n;let r=Yi.resolve(n,"../../data/migrations");return vn.existsSync(r)&&vn.readdirSync(r).some(i=>i.match(/^\d{3}_.*\.sql$/))?r:n}function Ix(n){n.exec(`
3
3
  CREATE TABLE IF NOT EXISTS schema_migrations (
4
- version INTEGER PRIMARY KEY,
5
- name TEXT NOT NULL,
6
- applied_at REAL DEFAULT (unixepoch())
4
+ version INTEGER PRIMARY KEY,
5
+ name TEXT NOT NULL,
6
+ applied_at REAL DEFAULT (unixepoch())
7
7
  );
8
- `)}function Ia(i){ka(i);let e=i.prepare("SELECT version FROM schema_migrations ORDER BY version").all();return new Set(e.map(t=>t.version))}function Ca(){let i=Ra;if(!Nt.readdirSync(i).some(r=>r.match(/^\d{3}_.*\.sql$/))){let r=fs.resolve(i,"../../data/migrations");Nt.existsSync(r)&&Nt.readdirSync(r).some(c=>c.match(/^\d{3}_.*\.sql$/))&&(i=r)}let n=Nt.readdirSync(i).filter(r=>r.match(/^\d{3}_.*\.sql$/)).sort(),s=[];for(let r of n){let o=r.match(/^(\d{3})_(.+)\.sql$/);if(!o)continue;let c=parseInt(o[1],10),a=o[2],p=Nt.readFileSync(fs.join(i,r),"utf-8").split(/^-- DOWN$/m),u=p[0].trim(),d=p[1]?.trim();s.push({version:c,name:a,up:u,down:d})}return s}function La(i,e){At.info({version:e.version,name:e.name},"Applying migration"),i.transaction(()=>{i.exec(e.up),i.prepare("INSERT INTO schema_migrations (version, name) VALUES (?, ?)").run(e.version,e.name)})(),At.info({version:e.version},"Migration applied successfully")}function ii(i){let e=Ia(i),n=Ca().filter(s=>!e.has(s.version));if(n.length===0){At.debug("No pending migrations");return}At.info({count:n.length},"Running pending migrations");for(let s of n)La(i,s);At.info("All migrations complete")}var At,Ta,Ra,ri=K(()=>{"use strict";W();At=S.child({module:"migrations"}),Ta=va(import.meta.url),Ra=fs.dirname(Ta)});import $a from"better-sqlite3";import on from"path";import gs from"fs";import oi from"crypto";import Na from"os";function cn(i){let e=Na.homedir(),t=on.join(e,".mcp-liquid-shadow"),n=on.join(t,"dbs");gs.existsSync(n)||gs.mkdirSync(n,{recursive:!0});let s=oi.createHash("sha256").update(i).digest("hex").substring(0,12),o=`${on.basename(i).replace(/[^a-zA-Z0-9-_]/g,"_")}_${s}.db`;return on.join(n,o)}function Aa(i,e){let t=e||cn(i);Fe.debug({repoPath:i,dbPath:t},"Initializing database");let n=new $a(t);return n.pragma("journal_mode = WAL"),n.pragma("busy_timeout = 5000"),ii(n),an.set(i,t),Ge.set(t,n),Fe.debug({repoPath:i,dbPath:t},"Database initialized successfully"),n}function mt(i){return oi.createHash("sha256").update(i,"utf8").digest("hex")}function ai(i,e){return e?mt(i)!==e:!0}function We(i){let e=an.get(i)||cn(i),t=Ge.get(e);if(t){if(t.open)return t;Ge.delete(e)}let n=Aa(i);return Ge.set(e,n),n}function He(i){let e=cn(i);if(!gs.existsSync(e))return!1;try{let t=We(i);return t.prepare(`
8
+ `)}function Tx(n){Ix(n);let e=n.prepare("SELECT version FROM schema_migrations ORDER BY version").all();return new Set(e.map(r=>r.version))}function Px(n){return vn.readdirSync(n).filter(r=>r.match(/^\d{3}_.*\.sql$/)&&!r.startsWith("000_")).sort().map(r=>{let i=r.match(/^(\d{3})_(.+)\.sql$/),t=parseInt(i[1],10),o=i[2],a=vn.readFileSync(Yi.join(n,r),"utf-8").split(/^-- DOWN$/m);return{version:t,name:o,up:a[0].trim(),down:a[1]?.trim()}})}function Rx(n,e){Ht.info({version:e.version,name:e.name},"Applying migration"),n.transaction(()=>{n.exec(e.up),n.prepare("INSERT INTO schema_migrations (version, name) VALUES (?, ?)").run(e.version,e.name)})(),Ht.info({version:e.version},"Migration applied successfully")}function zx(n,e,r){let i=Yi.join(e,"000_baseline.sql");if(!vn.existsSync(i)){Ht.warn("000_baseline.sql not found \u2014 falling back to incremental migrations");return}Ht.info("Fresh database detected \u2014 applying consolidated baseline schema");let t=vn.readFileSync(i,"utf-8");n.transaction(()=>{n.exec(t);let o=n.prepare("INSERT OR IGNORE INTO schema_migrations (version, name) VALUES (?, ?)");for(let s of r)o.run(s.version,s.name)})(),Ht.info({stamped:r.length},"Baseline applied \u2014 incremental migrations stamped")}function Jf(n){let e=Tx(n),r=Ex(),i=Px(r);if(e.size===0){zx(n,r,i);return}let t=i.filter(o=>!e.has(o.version));if(t.length===0){Ht.debug("No pending migrations");return}Ht.info({count:t.length},"Running pending migrations");for(let o of t)Rx(n,o);Ht.info("All migrations complete")}var Ht,wx,kx,qf=be(()=>{"use strict";J();Ht=$.child({module:"migrations"}),wx=$x(import.meta.url),kx=Yi.dirname(wx)});import Nx from"better-sqlite3";import Xi from"path";import fc from"fs";import Vf from"crypto";import Cx from"os";function eo(n){let e=Cx.homedir(),r=Xi.join(e,".mcp-liquid-shadow"),i=Xi.join(r,"dbs");fc.existsSync(i)||fc.mkdirSync(i,{recursive:!0});let t=Vf.createHash("sha256").update(n).digest("hex").substring(0,12),s=`${Xi.basename(n).replace(/[^a-zA-Z0-9-_]/g,"_")}_${t}.db`;return Xi.join(i,s)}function Kf(n,e){let r=e||eo(n);zt.debug({repoPath:n,dbPath:r},"Initializing database");let i=new Nx(r);return i.pragma("journal_mode = WAL"),i.pragma("busy_timeout = 5000"),Jf(i),Qi.set(n,r),Wt.set(r,i),zt.debug({repoPath:n,dbPath:r},"Database initialized successfully"),i}function _n(n){return Vf.createHash("sha256").update(n,"utf8").digest("hex")}function hc(n,e){return e?_n(n)!==e:!0}function We(n){let e=Qi.get(n)||eo(n),r=Wt.get(e);if(r){if(r.open)return r;Wt.delete(e)}let i=Kf(n);return Wt.set(e,i),i}function Oe(n){let e=eo(n);if(!fc.existsSync(e))return!1;try{let r=We(n);return r.prepare(`
9
9
  SELECT value FROM index_metadata
10
10
  WHERE key = 'index_completed'
11
- `).get()?.value==="true"?!0:t.prepare("SELECT COUNT(*) as count FROM files").get().count>0}catch(t){return Fe.debug({repoPath:i,error:t},"Error checking index status"),!1}}function ys(i,e){let t=We(i),n=t.prepare("INSERT OR REPLACE INTO index_metadata (key, value, updated_at) VALUES (?, ?, unixepoch())");t.transaction(()=>{n.run("index_completed","true"),n.run("last_indexed_at",Date.now().toString()),e&&n.run("last_indexed_commit",e)})(),Fe.debug({repoPath:i,commitSha:e},"Repository marked as indexed")}function Pt(i){try{return We(i).prepare(`
11
+ `).get()?.value==="true"?!0:r.prepare("SELECT COUNT(*) as count FROM files").get().count>0}catch(r){return zt.debug({repoPath:n,error:r},"Error checking index status"),!1}}function to(n,e){let r=We(n),i=r.prepare("INSERT OR REPLACE INTO index_metadata (key, value, updated_at) VALUES (?, ?, unixepoch())");r.transaction(()=>{i.run("index_completed","true"),i.run("last_indexed_at",Date.now().toString()),e&&i.run("last_indexed_commit",e)})(),zt.debug({repoPath:n,commitSha:e},"Repository marked as indexed")}function Jn(n){try{return We(n).prepare(`
12
12
  SELECT value FROM index_metadata
13
13
  WHERE key = 'last_indexed_commit'
14
- `).get()?.value||null}catch(e){return Fe.debug({repoPath:i,error:e},"Error getting last indexed commit"),null}}function ln(i){let e=an.get(i)||cn(i),t=Ge.get(e);t&&(t.open&&(Fe.debug({repoPath:i,dbPath:e},"Closing database connection"),t.close()),Ge.delete(e)),an.delete(i)}function ci(){for(let[i,e]of Ge.entries())try{e.open&&(Fe.debug({dbPath:i},"Closing database connection"),e.close())}catch(t){Fe.error({dbPath:i,err:t},"Error closing database execution")}Ge.clear()}var Fe,Ge,an,li,qe=K(()=>{"use strict";W();ri();Fe=S.child({module:"db"});Ge=new Map,an=new Map;process.on("exit",()=>ci());li=i=>{Fe.debug({signal:i},"Received termination signal, closing databases"),ci(),process.exit(0)};process.on("SIGINT",()=>li("SIGINT"));process.on("SIGTERM",()=>li("SIGTERM"))});var te,Le=K(()=>{"use strict";te=class{db;constructor(e){this.db=e}get database(){return this.db}all(e,...t){return this.db.prepare(e).all(...t)}get(e,...t){return this.db.prepare(e).get(...t)}run(e,...t){return this.db.prepare(e).run(...t).changes}insert(e,...t){return this.db.prepare(e).run(...t).lastInsertRowid}transaction(e){return this.db.transaction(e)()}}});import Pa from"path";var pn,pi=K(()=>{"use strict";Le();pn=class extends te{findByPath(e){return this.get("SELECT * FROM files WHERE path = ?",e)}findAll(e){let t="SELECT * FROM files ORDER BY path ASC";return e&&(t+=` LIMIT ${e}`),this.all(t)}getAllPaths(){return this.all("SELECT path FROM files").map(t=>t.path)}findInSubPath(e,t){let n=Pa.resolve(e,t),s=n.endsWith("/")?n:n+"/";return this.all(`
14
+ `).get()?.value||null}catch(e){return zt.debug({repoPath:n,error:e},"Error getting last indexed commit"),null}}function Yr(n){let e=Qi.get(n)||eo(n),r=Wt.get(e);r&&(r.open&&(zt.debug({repoPath:n,dbPath:e},"Closing database connection"),r.close()),Wt.delete(e)),Qi.delete(n)}function Yf(){for(let[n,e]of Wt.entries())try{e.open&&(zt.debug({dbPath:n},"Closing database connection"),e.close())}catch(r){zt.error({dbPath:n,err:r},"Error closing database execution")}Wt.clear()}var zt,Wt,Qi,Xf,dt=be(()=>{"use strict";J();qf();zt=$.child({module:"db"});Wt=new Map,Qi=new Map;process.on("exit",()=>Yf());Xf=n=>{zt.debug({signal:n},"Received termination signal, closing databases"),Yf(),process.exit(0)};process.on("SIGINT",()=>Xf("SIGINT"));process.on("SIGTERM",()=>Xf("SIGTERM"))});var we,_t=be(()=>{"use strict";we=class{db;constructor(e){this.db=e}get database(){return this.db}all(e,...r){return this.db.prepare(e).all(...r)}get(e,...r){return this.db.prepare(e).get(...r)}run(e,...r){return this.db.prepare(e).run(...r).changes}insert(e,...r){return this.db.prepare(e).run(...r).lastInsertRowid}transaction(e){return this.db.transaction(e)()}}});import Dx from"path";var no,Qf=be(()=>{"use strict";_t();no=class extends we{findByPath(e){return this.get("SELECT * FROM files WHERE path = ?",e)}findAll(e){let r="SELECT * FROM files ORDER BY path ASC";return e&&(r+=` LIMIT ${e}`),this.all(r)}getAllPaths(){return this.all("SELECT path FROM files").map(r=>r.path)}findInSubPath(e,r){let i=Dx.resolve(e,r),t=i.endsWith("/")?i:i+"/";return this.all(`
15
15
  SELECT * FROM files
16
16
  WHERE (path LIKE ? OR path = ?)
17
17
  ORDER BY path ASC
18
- `,`${s}%`,n)}findWithEmbeddings(){return this.all("SELECT * FROM files WHERE embedding IS NOT NULL")}findFts(e,t=10){return this.all(`
18
+ `,`${t}%`,i)}findWithEmbeddings(){return this.all("SELECT * FROM files WHERE embedding IS NOT NULL")}findFts(e,r=10){return this.all(`
19
19
  SELECT files.*, files_fts.rank
20
20
  FROM files_fts
21
21
  JOIN files ON files.rowid = files_fts.rowid
22
22
  WHERE files_fts MATCH ?
23
23
  ORDER BY rank
24
24
  LIMIT ?
25
- `,e,t)}findByPathKeywords(e,t=10){let n=e.map(()=>"LOWER(path) LIKE ?").join(" OR ");return this.all(`
25
+ `,e,r)}findByPathKeywords(e,r=10){let i=e.map(()=>"LOWER(path) LIKE ?").join(" OR ");return this.all(`
26
26
  SELECT * FROM files
27
- WHERE ${n}
27
+ WHERE ${i}
28
28
  LIMIT ?
29
- `,...e.map(s=>`%${s}%`),t)}getContent(e){return this.get("SELECT content FROM file_content WHERE file_path = ?",e)?.content}findContentByToken(e,t=10){return this.all(`
29
+ `,...e.map(t=>`%${t}%`),r)}findContentFts(e,r=50){let i=this.buildContentFtsQuery(e);return i?this.all(`
30
+ SELECT
31
+ files.*,
32
+ bm25(content_fts, 0.2, 1.0) AS bm25_rank
33
+ FROM content_fts
34
+ JOIN files ON files.path = content_fts.file_path
35
+ WHERE content_fts MATCH ?
36
+ ORDER BY bm25_rank ASC
37
+ LIMIT ?
38
+ `,i,Math.max(1,Math.min(r,1e3))):[]}getContent(e){return this.get("SELECT content FROM file_content WHERE file_path = ?",e)?.content}findContentByToken(e,r=10){return this.all(`
30
39
  SELECT file_path
31
40
  FROM content_fts
32
41
  WHERE content_fts MATCH ?
@@ -34,28 +43,28 @@ var pa=Object.create;var us=Object.defineProperty;var da=Object.getOwnPropertyDe
34
43
  AND file_path NOT LIKE '%/test/%'
35
44
  AND file_path NOT LIKE '%.spec.%'
36
45
  LIMIT ?
37
- `,`"${e.replace(/[^a-zA-Z0-9_\/]/g," ")}"`,t).map(s=>s.file_path)}findSynapses(e){let t="SELECT * FROM event_synapses WHERE 1=1",n=[];if(e.type&&(t+=" AND type = ?",n.push(e.type)),e.name){let s=e.name;s.startsWith("/")&&(s=s.substring(1)),s.endsWith("/")&&(s=s.substring(0,s.length-1)),s.length>0&&(t+=" AND (name LIKE ? OR name LIKE ? OR name = ?)",n.push(`${s}%`),n.push(`%/${s}%`),n.push(e.name))}return e.direction&&(t+=" AND direction = ?",n.push(e.direction)),t+=` LIMIT ${e.limit||50}`,this.all(t,...n)}exists(e){return!!this.get("SELECT 1 FROM files WHERE path = ?",e)}update(e,t){let n=Object.keys(t);if(n.length===0)return;let s=n.map(o=>`${o} = ?`).join(", "),r=Object.values(t);r.push(e),this.run(`UPDATE files SET ${s} WHERE path = ?`,...r)}getStats(){let e=this.get(`
46
+ `,`"${e.replace(/[^a-zA-Z0-9_\/]/g," ")}"`,r).map(t=>t.file_path)}findSynapses(e){let r="SELECT * FROM event_synapses WHERE 1=1",i=[];if(e.type&&(r+=" AND type = ?",i.push(e.type)),e.name){let t=e.name;t.startsWith("/")&&(t=t.substring(1)),t.endsWith("/")&&(t=t.substring(0,t.length-1)),t.length>0&&(r+=" AND (name LIKE ? OR name LIKE ? OR name = ?)",i.push(`${t}%`),i.push(`%/${t}%`),i.push(e.name))}return e.direction&&(r+=" AND direction = ?",i.push(e.direction)),r+=` LIMIT ${e.limit||50}`,this.all(r,...i)}exists(e){return!!this.get("SELECT 1 FROM files WHERE path = ?",e)}update(e,r){let i=Object.keys(r);if(i.length===0)return;let t=i.map(s=>`${s} = ?`).join(", "),o=Object.values(r);o.push(e),this.run(`UPDATE files SET ${t} WHERE path = ?`,...o)}getStats(){let e=this.get(`
38
47
  SELECT
39
48
  COUNT(*) as total,
40
49
  SUM(CASE WHEN summary IS NOT NULL AND summary != '' THEN 1 ELSE 0 END) as withSummary
41
50
  FROM files
42
- `);return{total:e?.total||0,withSummary:e?.withSummary||0}}getGravityMap(e=[],t){let n={},s=`
51
+ `);return{total:e?.total||0,withSummary:e?.withSummary||0}}getGravityMap(e=[],r){let i={},t=`
43
52
  SELECT ws.file_path, m.name as mission_name, m.status
44
53
  FROM working_set ws
45
54
  JOIN missions m ON ws.mission_id = m.id
46
55
  WHERE (
47
- (m.status IN ('in-progress', 'verifying') ${t?"AND m.git_branch = ?":""})
56
+ (m.status IN ('in-progress', 'verifying') ${r?"AND m.git_branch = ?":""})
48
57
  OR m.id IN (${e.length>0?e.join(","):"-1"})
49
58
  )
50
59
  AND ws.file_path IS NOT NULL
51
- `,r=[];t&&r.push(t);let o=this.all(s,...r);for(let l of o){n[l.file_path]||(n[l.file_path]={score:1,reasons:[]});let p=l.status==="in-progress"||l.status==="verifying"?1:.5;n[l.file_path].score+=p;let u=l.status==="in-progress"||l.status==="verifying"?"Working Set":"Lineage Bleed";n[l.file_path].reasons.push(`${u}: ${l.mission_name}`)}let c=Math.floor(Date.now()/1e3)-86400,a=this.all(`
60
+ `,o=[];r&&o.push(r);let s=this.all(t,...o);for(let l of s){i[l.file_path]||(i[l.file_path]={score:1,reasons:[]});let u=l.status==="in-progress"||l.status==="verifying"?1:.5;i[l.file_path].score+=u;let d=l.status==="in-progress"||l.status==="verifying"?"Working Set":"Lineage Bleed";i[l.file_path].reasons.push(`${d}: ${l.mission_name}`)}let a=Math.floor(Date.now()/1e3)-86400,c=this.all(`
52
61
  SELECT file_path, type, mission_id
53
62
  FROM intent_logs
54
63
  WHERE (created_at > ? OR mission_id IN (${e.length>0?e.join(","):"-1"}))
55
64
  AND file_path IS NOT NULL
56
65
  ORDER BY created_at DESC
57
66
  LIMIT 100
58
- `,c);for(let l of a){n[l.file_path]||(n[l.file_path]={score:1,reasons:[]});let p=l.mission_id?e.includes(l.mission_id):!1,u=p?.1:.2;n[l.file_path].score<5&&(n[l.file_path].score+=u);let d=p?`Lineage Intent: ${l.type}`:`Recent Intent: ${l.type}`;!n[l.file_path].reasons.includes(d)&&n[l.file_path].reasons.length<5&&n[l.file_path].reasons.push(d)}return n}getCount(){return this.get("SELECT COUNT(*) as count FROM files")?.count||0}getTopDirectories(e,t=8){return this.all(`
67
+ `,a);for(let l of c){i[l.file_path]||(i[l.file_path]={score:1,reasons:[]});let u=l.mission_id?e.includes(l.mission_id):!1,d=u?.1:.2;i[l.file_path].score<5&&(i[l.file_path].score+=d);let p=u?`Lineage Intent: ${l.type}`:`Recent Intent: ${l.type}`;!i[l.file_path].reasons.includes(p)&&i[l.file_path].reasons.length<5&&i[l.file_path].reasons.push(p)}return i}getCount(){return this.get("SELECT COUNT(*) as count FROM files")?.count||0}getTopDirectories(e,r=8){return this.all(`
59
68
  SELECT
60
69
  SUBSTR(path, LENGTH(?) + 2,
61
70
  INSTR(SUBSTR(path, LENGTH(?) + 2), '/') - 1
@@ -72,13 +81,13 @@ var pa=Object.create;var us=Object.defineProperty;var da=Object.getOwnPropertyDe
72
81
  GROUP BY root
73
82
  ORDER BY total_files DESC
74
83
  LIMIT ?
75
- `,e,e,e,t)}hasFilesPattern(e){return!!this.get("SELECT 1 FROM files WHERE path LIKE ? LIMIT 1",e)}findPackageJsonChildren(e){return this.all(`
84
+ `,e,e,e,r)}hasFilesPattern(e){return!!this.get("SELECT 1 FROM files WHERE path LIKE ? LIMIT 1",e)}findPackageJsonChildren(e){return this.all(`
76
85
  SELECT
77
86
  path,
78
87
  SUBSTR(path, LENGTH(?) + 2) as relPath
79
88
  FROM files
80
89
  WHERE path LIKE ? || '/%/package.json'
81
- `,e,e)}deletePaths(e){if(e.length===0)return;let t=this.db.prepare("DELETE FROM files WHERE path = ?");this.db.transaction(s=>{for(let r of s)t.run(r)})(e)}updateMtime(e,t){this.run("UPDATE files SET mtime = ? WHERE path = ?",t,e)}batchSaveIndexResults(e,t,n,s){let r=this.db.prepare("DELETE FROM exports WHERE file_path = ?"),o=this.db.prepare("DELETE FROM imports WHERE file_path = ?"),c=this.db.prepare("DELETE FROM configs WHERE file_path = ?"),a=this.db.prepare("DELETE FROM file_content WHERE file_path = ?"),l=this.db.prepare("DELETE FROM event_synapses WHERE file_path = ?"),p=this.db.prepare("INSERT INTO exports (file_path, name, kind, signature, doc, start_line, end_line, classification, capabilities, parent_id, embedding) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)"),u=this.db.prepare("INSERT INTO imports (file_path, module_specifier, imported_symbols, resolved_path) VALUES (?, ?, ?, ?)"),d=this.db.prepare("INSERT INTO configs (file_path, key, value, kind) VALUES (?, ?, ?, ?)"),m=this.db.prepare("INSERT INTO file_content (file_path, content) VALUES (?, ?)"),h=this.db.prepare("INSERT INTO event_synapses (file_path, type, name, direction, line_number, code_snippet) VALUES (?, ?, ?, ?, ?, ?)"),g=this.db.prepare(`
90
+ `,e,e)}deletePaths(e){if(e.length===0)return;let r=this.db.prepare("DELETE FROM files WHERE path = ?");this.db.transaction(t=>{for(let o of t)r.run(o)})(e)}updateMtime(e,r){this.run("UPDATE files SET mtime = ? WHERE path = ?",r,e)}batchSaveIndexResults(e,r,i,t){let o=this.db.prepare("DELETE FROM exports WHERE file_path = ?"),s=this.db.prepare("DELETE FROM imports WHERE file_path = ?"),a=this.db.prepare("DELETE FROM configs WHERE file_path = ?"),c=this.db.prepare("DELETE FROM file_content WHERE file_path = ?"),l=this.db.prepare("DELETE FROM event_synapses WHERE file_path = ?"),u=this.db.prepare("INSERT INTO exports (file_path, name, kind, signature, doc, start_line, end_line, classification, capabilities, parent_id, embedding) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)"),d=this.db.prepare("INSERT INTO imports (file_path, module_specifier, imported_symbols, resolved_path) VALUES (?, ?, ?, ?)"),p=this.db.prepare("INSERT INTO configs (file_path, key, value, kind) VALUES (?, ?, ?, ?)"),f=this.db.prepare("INSERT INTO file_content (file_path, content) VALUES (?, ?)"),m=this.db.prepare("INSERT INTO event_synapses (file_path, type, name, direction, line_number, code_snippet) VALUES (?, ?, ?, ?, ?, ?)"),h=this.db.prepare(`
82
91
  INSERT INTO files (path, mtime, last_scanned_at, classification, summary, embedding, content_hash)
83
92
  VALUES (?, ?, ?, ?, ?, ?, ?)
84
93
  ON CONFLICT(path) DO UPDATE SET
@@ -88,36 +97,36 @@ var pa=Object.create;var us=Object.defineProperty;var da=Object.getOwnPropertyDe
88
97
  summary=excluded.summary,
89
98
  embedding=excluded.embedding,
90
99
  content_hash=excluded.content_hash
91
- `),_=this.db.transaction(y=>{for(let E of y){let{meta:w,exports:x,imports:v,configs:k,events:N,content:O,classification:T,summary:I,embedding:U,contentHash:H}=E;r.run(w.path),o.run(w.path),c.run(w.path),a.run(w.path),l.run(w.path);let P=H??(O&&n?n(O):null);if(g.run(w.path,w.mtime,Date.now(),T||"Unknown",I||"",U?JSON.stringify(U):null,P),x){let R=(A,D,$)=>{for(let L of D){let Y=L.embedding?JSON.stringify(L.embedding):null,he=p.run(A,L.name,L.kind,L.signature,L.doc||"",L.line,L.endLine||L.line,L.classification||"Other",L.capabilities||"[]",$,Y);L.members&&L.members.length>0&&R(A,L.members,he.lastInsertRowid)}};R(w.path,x,null)}if(v)for(let R of v){let A=R.resolved_path!==void 0?R.resolved_path:s?.(R.module,w.path,t)??"";u.run(w.path,R.module,R.name,A)}if(k)for(let R of k)d.run(w.path,R.key,R.value,R.kind);if(O!==void 0&&m.run(w.path,O),N)for(let R of N)h.run(w.path,R.type,R.name,R.direction,R.line,R.snippet)}}),b=500;for(let y=0;y<e.length;y+=b)_(e.slice(y,y+b))}getLatestScanTime(){return this.get("SELECT MAX(last_scanned_at) as t FROM files")?.t||null}}});var dn,di=K(()=>{"use strict";Le();dn=class extends te{findByNameAndFile(e,t){return this.all("SELECT * FROM exports WHERE file_path = ? AND name = ?",t,e)}findByNameGlobal(e){return this.all("SELECT * FROM exports WHERE name = ?",e)}findAtLine(e,t){return this.get(`
100
+ `),v=this.db.transaction(g=>{for(let x of g){let{meta:S,exports:E,imports:w,configs:z,events:R,content:U,classification:I,summary:T,embedding:N,contentHash:F}=x;o.run(S.path),s.run(S.path),a.run(S.path),c.run(S.path),l.run(S.path);let D=F??(U&&i?i(U):null);if(h.run(S.path,S.mtime,Date.now(),I||"Unknown",T||"",N?JSON.stringify(N):null,D),E){let C=(W,q,B)=>{for(let H of q){let Q=H.embedding?JSON.stringify(H.embedding):null,V=u.run(W,H.name,H.kind,H.signature,H.doc||"",H.line,H.endLine||H.line,H.classification||"Other",H.capabilities||"[]",B,Q);H.members&&H.members.length>0&&C(W,H.members,V.lastInsertRowid)}};C(S.path,E,null)}if(w)for(let C of w){let W=C.resolved_path!==void 0?C.resolved_path:t?.(C.module,S.path,r)??"";d.run(S.path,C.module,C.name,W)}if(z)for(let C of z)p.run(S.path,C.key,C.value,C.kind);if(U!==void 0&&f.run(S.path,U),R)for(let C of R)m.run(S.path,C.type,C.name,C.direction,C.line,C.snippet)}}),b=500;for(let g=0;g<e.length;g+=b)v(e.slice(g,g+b))}getLatestScanTime(){return this.get("SELECT MAX(last_scanned_at) as t FROM files")?.t||null}buildContentFtsQuery(e){let r=e.replace(/([a-z0-9])([A-Z])/g,"$1 $2").toLowerCase().split(/[^a-z0-9_]+/).map(o=>o.trim()).filter(o=>o.length>=2).slice(0,12);if(r.length===0)return"";if(r.length===1)return`${r[0]}*`;let i=`"${r.join(" ")}"`,t=r.map(o=>`${o}*`).join(" OR ");return`${i} OR ${t}`}}});var ro,eh=be(()=>{"use strict";_t();ro=class n extends we{static HTTP_METHOD_EXPORTS=new Set(["GET","POST","PUT","PATCH","DELETE","HEAD","OPTIONS"]);findByNameAndFile(e,r){return this.all("SELECT * FROM exports WHERE file_path = ? AND name = ?",r,e)}findByNameGlobal(e){return this.all("SELECT * FROM exports WHERE name = ?",e)}findAtLine(e,r){return this.get(`
92
101
  SELECT * FROM exports
93
102
  WHERE file_path = ? AND start_line <= ? AND end_line >= ?
94
103
  ORDER BY (end_line - start_line) ASC -- Get innermost symbol
95
104
  LIMIT 1
96
- `,e,t,t)}findById(e){return this.get("SELECT * FROM exports WHERE id = ?",e)}findHydratedById(e){let t=this.findById(e);if(!t)return;let n=this.all(`
97
- SELECT id, mission_id, type, content, created_at, confidence
105
+ `,e,r,r)}findById(e){return this.get("SELECT * FROM exports WHERE id = ?",e)}findHydratedById(e){let r=this.findById(e);if(!r)return;let i=this.all(`
106
+ SELECT id, mission_id, type, content, created_at, confidence, is_crystallized, crystal_id
98
107
  FROM intent_logs
99
108
  WHERE symbol_id = ?
100
109
  ORDER BY created_at DESC
101
- LIMIT 5
102
- `,e),r=this.get("SELECT COUNT(*) as count FROM intent_logs WHERE symbol_id = ?",e)?.count||0,o=this.all(`
110
+ LIMIT 10
111
+ `,e),o=this.get("SELECT COUNT(*) as count FROM intent_logs WHERE symbol_id = ?",e)?.count||0,s=this.all(`
103
112
  SELECT m.id, m.name, m.status
104
113
  FROM missions m
105
114
  JOIN working_set ws ON ws.mission_id = m.id
106
115
  WHERE ws.symbol_id = ?
107
116
  AND m.status IN ('in-progress', 'planned', 'verifying')
108
117
  GROUP BY m.id
109
- `,e);return{...t,recent_intents:n,intent_log_count:r,active_missions:o}}findRoutesByCapability(e){return this.all(`
118
+ `,e);return{...r,recent_intents:i,intent_log_count:o,active_missions:s}}findRoutesByCapability(e){return this.all(`
110
119
  SELECT name, file_path, signature
111
120
  FROM exports
112
121
  WHERE kind = 'HTTP Route'
113
122
  AND capabilities LIKE ?
114
- `,`%${e}%`)}findRoutesByToken(e,t=5){return this.all(`
123
+ `,`%${e}%`)}findRoutesByToken(e,r=5){return this.all(`
115
124
  SELECT *
116
125
  FROM exports
117
126
  WHERE (kind = 'HTTP Route' OR classification = 'Service Boundary')
118
127
  AND (name LIKE ? OR signature LIKE ?)
119
128
  LIMIT ?
120
- `,`%${e}%`,`%${e}%`,t)}findByFile(e){return this.all("SELECT * FROM exports WHERE file_path = ? ORDER BY start_line ASC",e)}findByFiles(e){if(e.length===0)return[];let t=e.map(()=>"?").join(", ");return this.all(`SELECT * FROM exports WHERE file_path IN (${t}) ORDER BY file_path, start_line ASC`,...e)}findSiblings(e){return this.all(`
129
+ `,`%${e}%`,`%${e}%`,r)}findByFile(e){return this.all("SELECT * FROM exports WHERE file_path = ? ORDER BY start_line ASC",e)}findByFiles(e){if(e.length===0)return[];let r=e.map(()=>"?").join(", ");return this.all(`SELECT * FROM exports WHERE file_path IN (${r}) ORDER BY file_path, start_line ASC`,...e)}findSiblings(e){return this.all(`
121
130
  SELECT name, kind, signature, start_line, end_line,
122
131
  parent_id, id,
123
132
  (SELECT name FROM exports WHERE id = e.parent_id) as parent_name
@@ -125,7 +134,7 @@ var pa=Object.create;var us=Object.defineProperty;var da=Object.getOwnPropertyDe
125
134
  WHERE file_path = ?
126
135
  AND parent_id IS NULL
127
136
  ORDER BY start_line ASC
128
- `,e)}findByName(e,t=20){return this.all("SELECT * FROM exports WHERE name = ? LIMIT ?",e,t)}findClassByName(e){return this.get("SELECT * FROM exports WHERE name = ? AND kind = 'ClassDeclaration' LIMIT 1",e)}findDefinitionCandidates(e,t){let n=[e],s=`
137
+ `,e)}findByName(e,r=20){return this.all("SELECT * FROM exports WHERE name = ? LIMIT ?",e,r)}findClassByName(e){return this.get("SELECT * FROM exports WHERE name = ? AND kind = 'ClassDeclaration' LIMIT 1",e)}findDefinitionCandidates(e,r){let i=[e],t=`
129
138
  SELECT e.id, e.name, e.kind, e.start_line, e.end_line, e.signature, e.doc,
130
139
  f.path as file_path, e.classification, e.capabilities,
131
140
  p.name as parent_name, p.kind as parent_kind
@@ -133,12 +142,12 @@ var pa=Object.create;var us=Object.defineProperty;var da=Object.getOwnPropertyDe
133
142
  JOIN files f ON e.file_path = f.path
134
143
  LEFT JOIN exports p ON e.parent_id = p.id
135
144
  WHERE e.name = ?
136
- `;return t&&(s+=" AND f.path = ?",n.push(t)),s+=`
145
+ `;return r&&(t+=" AND f.path = ?",i.push(r)),t+=`
137
146
  ORDER BY
138
147
  CASE WHEN e.parent_id IS NULL THEN 0 ELSE 1 END,
139
148
  CASE WHEN e.kind = 'ExportSpecifier' THEN 2 ELSE 0 END
140
149
  LIMIT 10
141
- `,this.all(s,...n)}findMemberCandidates(e,t,n){let s=[e,t],r=`
150
+ `,this.all(t,...i)}findMemberCandidates(e,r,i){let t=[e,r],o=`
142
151
  SELECT e.id, e.name, e.kind, e.start_line, e.end_line, e.signature, e.doc,
143
152
  f.path as file_path, e.classification, e.capabilities,
144
153
  p.name as parent_name, p.kind as parent_kind
@@ -146,12 +155,12 @@ var pa=Object.create;var us=Object.defineProperty;var da=Object.getOwnPropertyDe
146
155
  JOIN files f ON e.file_path = f.path
147
156
  LEFT JOIN exports p ON e.parent_id = p.id
148
157
  WHERE p.name = ? AND e.name = ?
149
- `;return n&&(r+=" AND f.path = ?",s.push(n)),r+=`
158
+ `;return i&&(o+=" AND f.path = ?",t.push(i)),o+=`
150
159
  ORDER BY
151
160
  CASE WHEN e.parent_id IS NULL THEN 0 ELSE 1 END,
152
161
  CASE WHEN e.kind = 'ExportSpecifier' THEN 2 ELSE 0 END
153
162
  LIMIT 10
154
- `,this.all(r,...s)}findPotentialParents(e){return this.all(`
163
+ `,this.all(o,...t)}findPotentialParents(e){return this.all(`
155
164
  SELECT name, kind, file_path
156
165
  FROM exports
157
166
  WHERE kind IN ('ClassDeclaration', 'ClassExpression', 'TsInterfaceDeclaration')
@@ -159,27 +168,27 @@ var pa=Object.create;var us=Object.defineProperty;var da=Object.getOwnPropertyDe
159
168
  SELECT rowid FROM content_fts WHERE content MATCH ?
160
169
  )
161
170
  LIMIT 3
162
- `,`"${e}"`)}findFuzzyCandidates(e){let t=e.charAt(0).toLowerCase();return this.all(`
171
+ `,`"${e}"`)}findFuzzyCandidates(e){let r=e.charAt(0).toLowerCase();return this.all(`
163
172
  SELECT DISTINCT name FROM exports
164
173
  WHERE parent_id IS NULL
165
174
  AND (name LIKE ? OR name LIKE ? OR ABS(LENGTH(name) - LENGTH(?)) <= 5)
166
175
  ORDER BY ABS(LENGTH(name) - LENGTH(?)) ASC
167
176
  LIMIT 1000
168
- `,t+"%","%"+t+"%",e,e)}findTopLevelByFile(e){return this.all(`
177
+ `,r+"%","%"+r+"%",e,e)}findTopLevelByFile(e){return this.all(`
169
178
  SELECT * FROM exports
170
179
  WHERE file_path = ? AND parent_id IS NULL
171
180
  ORDER BY start_line ASC
172
- `,e)}findFts(e,t=20){return this.all(`
181
+ `,e)}findFts(e,r=20){return this.all(`
173
182
  SELECT e.*
174
183
  FROM exports e
175
184
  JOIN exports_fts ON e.id = exports_fts.rowid
176
185
  WHERE exports_fts MATCH ?
177
186
  LIMIT ?
178
- `,e,t)}findByPartialName(e,t=20){return this.all(`
187
+ `,e,r)}findByPartialName(e,r=20){return this.all(`
179
188
  SELECT * FROM exports
180
189
  WHERE lower(name) LIKE ?
181
190
  LIMIT ?
182
- `,`%${e.toLowerCase()}%`,t)}getAllNames(e=5e3){return this.all("SELECT DISTINCT name FROM exports WHERE parent_id IS NULL LIMIT ?",e).map(n=>n.name)}countByFile(e){return this.get("SELECT COUNT(*) as count FROM exports WHERE file_path = ?",e)?.count||0}findDeadExports(e={}){let{limit:t=50,includeTests:n=!1,includeMigrations:s=!1,includeFixtures:r=!1,excludePatterns:o=[],confidenceThreshold:c="all"}=e,a=[];n||(a.push("e.file_path NOT LIKE '%/test/%'"),a.push("e.file_path NOT LIKE '%/tests/%'"),a.push("e.file_path NOT LIKE '%/__tests__/%'"),a.push("e.file_path NOT LIKE '%.spec.%'"),a.push("e.file_path NOT LIKE '%.test.%'")),s||(a.push("e.file_path NOT LIKE '%/migrations/%'"),a.push("e.file_path NOT LIKE '%/migration/%'"),a.push("e.file_path NOT LIKE '%Migration.%'")),r||(a.push("e.file_path NOT LIKE '%/__fixtures__/%'"),a.push("e.file_path NOT LIKE '%/__mocks__/%'"),a.push("e.file_path NOT LIKE '%/fixtures/%'"),a.push("e.file_path NOT LIKE '%/mocks/%'"),a.push("e.file_path NOT LIKE '%.fixture.%'"),a.push("e.file_path NOT LIKE '%.mock.%'"));for(let m of o){let h=m.replace(/\*\*/g,"%").replace(/\*/g,"%").replace(/\?/g,"_");a.push(`e.file_path NOT LIKE '${h}'`)}let l=a.length>0?`AND ${a.join(" AND ")}`:"",u=this.all(`
191
+ `,`%${e.toLowerCase()}%`,r)}getAllNames(e=5e3){return this.all("SELECT DISTINCT name FROM exports WHERE parent_id IS NULL LIMIT ?",e).map(i=>i.name)}countByFile(e){return this.get("SELECT COUNT(*) as count FROM exports WHERE file_path = ?",e)?.count||0}findDeadExports(e={}){let{limit:r=50,includeTests:i=!1,includeMigrations:t=!1,includeFixtures:o=!1,excludePatterns:s=[],confidenceThreshold:a="all"}=e,c=[];i||(c.push("e.file_path NOT LIKE '%/test/%'"),c.push("e.file_path NOT LIKE '%/tests/%'"),c.push("e.file_path NOT LIKE '%/__tests__/%'"),c.push("e.file_path NOT LIKE '%.spec.%'"),c.push("e.file_path NOT LIKE '%.test.%'")),t||(c.push("e.file_path NOT LIKE '%/migrations/%'"),c.push("e.file_path NOT LIKE '%/migration/%'"),c.push("e.file_path NOT LIKE '%Migration.%'")),o||(c.push("e.file_path NOT LIKE '%/__fixtures__/%'"),c.push("e.file_path NOT LIKE '%/__mocks__/%'"),c.push("e.file_path NOT LIKE '%/fixtures/%'"),c.push("e.file_path NOT LIKE '%/mocks/%'"),c.push("e.file_path NOT LIKE '%.fixture.%'"),c.push("e.file_path NOT LIKE '%.mock.%'"));for(let m of s){let h=m.replace(/\*\*/g,"%").replace(/\*/g,"%").replace(/\?/g,"_");c.push(`e.file_path NOT LIKE '${h}'`)}let l=c.length>0?`AND ${c.join(" AND ")}`:"",p=this.all(`
183
192
  SELECT e.name, e.kind, e.file_path, e.start_line
184
193
  FROM exports e
185
194
  WHERE e.kind IN (
@@ -189,27 +198,34 @@ var pa=Object.create;var us=Object.defineProperty;var da=Object.getOwnPropertyDe
189
198
  )
190
199
  AND e.parent_id IS NULL
191
200
  ${l}
192
- AND NOT EXISTS (SELECT 1 FROM imports i WHERE i.imported_symbols LIKE '%' || e.name || '%')
201
+ AND NOT EXISTS (
202
+ SELECT 1
203
+ FROM imports i
204
+ WHERE REPLACE(i.imported_symbols, ' ', '') = e.name
205
+ OR REPLACE(i.imported_symbols, ' ', '') LIKE e.name || ',%'
206
+ OR REPLACE(i.imported_symbols, ' ', '') LIKE '%,' || e.name
207
+ OR REPLACE(i.imported_symbols, ' ', '') LIKE '%,' || e.name || ',%'
208
+ )
193
209
  AND NOT EXISTS (SELECT 1 FROM imports i WHERE i.resolved_path = e.file_path AND i.imported_symbols LIKE '%*%')
194
210
  ORDER BY e.file_path, e.start_line
195
211
  LIMIT ?
196
- `,t*2).map(m=>{let{confidence:h,reason:g}=this.scoreDeadExportConfidence(m);return{...m,confidence:h,reason:g}}),d=u;return c==="high"?d=u.filter(m=>m.confidence==="high"):c==="medium"&&(d=u.filter(m=>m.confidence==="high"||m.confidence==="medium")),d.slice(0,t)}scoreDeadExportConfidence(e){let t=e.file_path.toLowerCase(),n=e.name;return t.includes("/index.")||t.endsWith("index.ts")||t.endsWith("index.js")?{confidence:"low",reason:"Barrel/index file - likely re-export"}:e.kind==="TsInterfaceDeclaration"||e.kind==="TsTypeAliasDeclaration"?{confidence:"medium",reason:"Type definition - may be used externally"}:t.includes("/entry/")||t.includes("/bin/")||t.includes("main.")||t.includes("server.")||t.includes("cli.")?{confidence:"medium",reason:"Entry point - may be invoked externally"}:n.startsWith("create")||n.endsWith("Factory")||n.endsWith("Builder")?{confidence:"medium",reason:"Factory/builder pattern - may be used dynamically"}:n.startsWith("use")&&n.length>3?{confidence:"medium",reason:"Hook pattern - may be used in components"}:{confidence:"high",reason:"No detected usage"}}getGravityMap(e=[],t){let n={},s=`
212
+ `,r*2).filter(m=>!this.isFrameworkEntrypointExport(m)).map(m=>{let{confidence:h,reason:v}=this.scoreDeadExportConfidence(m);return{...m,confidence:h,reason:v}}),f=p;return a==="high"?f=p.filter(m=>m.confidence==="high"):a==="medium"&&(f=p.filter(m=>m.confidence==="high"||m.confidence==="medium")),f.slice(0,r)}scoreDeadExportConfidence(e){let r=e.file_path.toLowerCase(),i=e.name;return r.includes("/index.")||r.endsWith("index.ts")||r.endsWith("index.js")?{confidence:"low",reason:"Barrel/index file - likely re-export"}:e.kind==="TsInterfaceDeclaration"||e.kind==="TsTypeAliasDeclaration"?{confidence:"medium",reason:"Type definition - may be used externally"}:r.includes("/entry/")||r.includes("/bin/")||r.includes("main.")||r.includes("server.")||r.includes("cli.")?{confidence:"medium",reason:"Entry point - may be invoked externally"}:(r.includes("/components/")||r.endsWith(".tsx")||r.endsWith(".jsx"))&&/^[A-Z][A-Za-z0-9_]*$/.test(i)?{confidence:"medium",reason:"Component export - may be used by runtime composition"}:(r.includes("/contexts/")||r.includes("/context/"))&&(/Provider$/.test(i)||i.startsWith("use"))?{confidence:"medium",reason:"Context/provider export - may be wired dynamically"}:i.startsWith("create")||i.endsWith("Factory")||i.endsWith("Builder")?{confidence:"medium",reason:"Factory/builder pattern - may be used dynamically"}:i.startsWith("use")&&i.length>3?{confidence:"medium",reason:"Hook pattern - may be used in components"}:{confidence:"high",reason:"No detected usage"}}isFrameworkEntrypointExport(e){let i=e.file_path.toLowerCase().replace(/\\/g,"/"),t=e.name;return!!(/(^|\/)(src\/)?app\/.*\/route\.(t|j)sx?$/.test(i)&&n.HTTP_METHOD_EXPORTS.has(t)||/(^|\/)(src\/)?app\/.*\/(page|layout|loading|error|not-found|default|template)\.(t|j)sx?$/.test(i)||/(^|\/)(src\/)?middleware\.(t|j)sx?$/.test(i)||i.includes("/routes/")&&["loader","action","meta","headers"].includes(t))}getGravityMap(e=[],r){let i={},t=`
197
213
  SELECT ws.symbol_id, m.name as mission_name, m.status
198
214
  FROM working_set ws
199
215
  JOIN missions m ON ws.mission_id = m.id
200
216
  WHERE (
201
- (m.status IN ('in-progress', 'verifying') ${t?"AND m.git_branch = ?":""})
217
+ (m.status IN ('in-progress', 'verifying') ${r?"AND m.git_branch = ?":""})
202
218
  OR m.id IN (${e.length>0?e.join(","):"-1"})
203
219
  )
204
220
  AND ws.symbol_id IS NOT NULL
205
- `,r=[];t&&r.push(t);let o=this.all(s,...r);for(let l of o){n[l.symbol_id]||(n[l.symbol_id]={score:1,reasons:[]});let p=l.status==="in-progress"||l.status==="verifying"?1:.5;n[l.symbol_id].score+=p;let u=l.status==="in-progress"||l.status==="verifying"?"Working Set":"Lineage Bleed";n[l.symbol_id].reasons.push(`${u}: ${l.mission_name}`)}let c=Math.floor(Date.now()/1e3)-86400,a=this.all(`
221
+ `,o=[];r&&o.push(r);let s=this.all(t,...o);for(let l of s){i[l.symbol_id]||(i[l.symbol_id]={score:1,reasons:[]});let u=l.status==="in-progress"||l.status==="verifying"?1:.5;i[l.symbol_id].score+=u;let d=l.status==="in-progress"||l.status==="verifying"?"Working Set":"Lineage Bleed";i[l.symbol_id].reasons.push(`${d}: ${l.mission_name}`)}let a=Math.floor(Date.now()/1e3)-86400,c=this.all(`
206
222
  SELECT symbol_id, type, mission_id
207
223
  FROM intent_logs
208
224
  WHERE (created_at > ? OR mission_id IN (${e.length>0?e.join(","):"-1"}))
209
225
  AND symbol_id IS NOT NULL
210
226
  ORDER BY created_at DESC
211
227
  LIMIT 200
212
- `,c);for(let l of a){n[l.symbol_id]||(n[l.symbol_id]={score:1,reasons:[]});let p=l.mission_id?e.includes(l.mission_id):!1,u=p?.1:.2;n[l.symbol_id].score<5&&(n[l.symbol_id].score+=u);let d=p?`Lineage Intent: ${l.type}`:`Recent Intent: ${l.type}`;!n[l.symbol_id].reasons.includes(d)&&n[l.symbol_id].reasons.length<5&&n[l.symbol_id].reasons.push(d)}return n}getCount(){return this.get("SELECT COUNT(*) as count FROM exports")?.count||0}getKindDistribution(e=5){return this.all(`
228
+ `,a);for(let l of c){i[l.symbol_id]||(i[l.symbol_id]={score:1,reasons:[]});let u=l.mission_id?e.includes(l.mission_id):!1,d=u?.1:.2;i[l.symbol_id].score<5&&(i[l.symbol_id].score+=d);let p=u?`Lineage Intent: ${l.type}`:`Recent Intent: ${l.type}`;!i[l.symbol_id].reasons.includes(p)&&i[l.symbol_id].reasons.length<5&&i[l.symbol_id].reasons.push(p)}return i}getCount(){return this.get("SELECT COUNT(*) as count FROM exports")?.count||0}getKindDistribution(e=5){return this.all(`
213
229
  SELECT kind, COUNT(*) as c
214
230
  FROM exports
215
231
  WHERE kind IS NOT NULL AND kind != ''
@@ -222,7 +238,7 @@ var pa=Object.create;var us=Object.defineProperty;var da=Object.getOwnPropertyDe
222
238
  OR name LIKE ?
223
239
  OR name LIKE ?
224
240
  LIMIT 10
225
- `,e,`%.${e}`,`%::${e}`)}}});var ui,mi=K(()=>{"use strict";ui=`
241
+ `,e,`%.${e}`,`%::${e}`)}}});var th,nh=be(()=>{"use strict";th=`
226
242
  WITH RECURSIVE dependency_chain AS (
227
243
  -- Base case: Direct dependents of the target symbol
228
244
  -- Meaning: Files that import the file where the symbol is defined
@@ -273,37 +289,37 @@ SELECT DISTINCT
273
289
  dc.imported_symbols
274
290
  FROM dependency_chain dc
275
291
  ORDER BY dc.depth, dc.consumer_path;
276
- `});var un,hi=K(()=>{"use strict";Le();mi();un=class extends te{findByFile(e){return this.all("SELECT * FROM imports WHERE file_path = ?",e)}findByFiles(e){if(e.length===0)return[];let t=e.map(()=>"?").join(", ");return this.all(`SELECT * FROM imports WHERE file_path IN (${t}) ORDER BY file_path`,...e)}getAllResolved(){return this.all(`
292
+ `});var io,rh=be(()=>{"use strict";_t();nh();io=class extends we{findByFile(e){return this.all("SELECT * FROM imports WHERE file_path = ?",e)}findByFiles(e){if(e.length===0)return[];let r=e.map(()=>"?").join(", ");return this.all(`SELECT * FROM imports WHERE file_path IN (${r}) ORDER BY file_path`,...e)}getAllResolved(){return this.all(`
277
293
  SELECT * FROM imports
278
294
  WHERE resolved_path IS NOT NULL AND resolved_path != ''
279
- `)}findDependents(e){return this.all("SELECT * FROM imports WHERE resolved_path = ?",e)}countByFile(e){return this.get("SELECT COUNT(*) as count FROM imports WHERE file_path = ?",e)?.count||0}countDependents(e){return this.get("SELECT COUNT(*) as count FROM imports WHERE resolved_path = ?",e)?.count||0}getImportsForFile(e){return this.all("SELECT module_specifier, imported_symbols, resolved_path FROM imports WHERE file_path = ?",e)}findImportSource(e,t){return this.get(`
295
+ `)}findDependents(e){return this.all("SELECT * FROM imports WHERE resolved_path = ?",e)}countByFile(e){return this.get("SELECT COUNT(*) as count FROM imports WHERE file_path = ?",e)?.count||0}countDependents(e){return this.get("SELECT COUNT(*) as count FROM imports WHERE resolved_path = ?",e)?.count||0}getImportsForFile(e){return this.all("SELECT module_specifier, imported_symbols, resolved_path FROM imports WHERE file_path = ?",e)}findImportSource(e,r){return this.get(`
280
296
  SELECT *
281
297
  FROM imports
282
298
  WHERE file_path = ?
283
299
  AND (imported_symbols LIKE ? OR imported_symbols = '*')
284
300
  LIMIT 1
285
- `,e,`%${t}%`)}findProxies(e){return this.all(`
301
+ `,e,`%${r}%`)}findProxies(e){return this.all(`
286
302
  SELECT i.file_path
287
303
  FROM imports i
288
304
  JOIN exports e ON i.file_path = e.file_path
289
305
  WHERE i.resolved_path = ?
290
306
  AND (e.kind = 'ExportAllDeclaration' OR e.kind = 'ExportMapping')
291
- `,e)}findVerifiedDependents(e,t){if(e.length===0)return[];let n=e.map(()=>"?").join(", ");return this.all(`
307
+ `,e)}findVerifiedDependents(e,r){if(e.length===0)return[];let i=e.map(()=>"?").join(", ");return this.all(`
292
308
  SELECT i.file_path, i.imported_symbols, f.classification, f.summary
293
309
  FROM imports i
294
310
  JOIN files f ON i.file_path = f.path
295
- WHERE i.resolved_path IN (${n})
311
+ WHERE i.resolved_path IN (${i})
296
312
  AND (i.imported_symbols LIKE ? OR i.imported_symbols = '' OR i.imported_symbols = '*')
297
313
  LIMIT 10
298
- `,...e,`%${t}%`)}countVerifiedDependents(e,t){if(e.length===0)return 0;let n=e.map(()=>"?").join(", ");return this.get(`
314
+ `,...e,`%${r}%`)}countVerifiedDependents(e,r){if(e.length===0)return 0;let i=e.map(()=>"?").join(", ");return this.get(`
299
315
  SELECT COUNT(*) as count FROM imports
300
- WHERE resolved_path IN (${n})
316
+ WHERE resolved_path IN (${i})
301
317
  AND (imported_symbols LIKE ? OR imported_symbols = '' OR imported_symbols = '*')
302
- `,...e,`%${t}%`)?.count||0}findImpactDependents(e,t,n){return this.all(ui,e,t,n,t)}getCount(){return this.get("SELECT COUNT(*) as count FROM imports")?.count||0}}});var mn,fi=K(()=>{"use strict";Le();mn=class extends te{findById(e){return this.get("SELECT * FROM missions WHERE id = ?",e)}findByIds(e){if(e.length===0)return[];let t=e.map(()=>"?").join(", ");return this.all(`SELECT * FROM missions WHERE id IN (${t})`,...e)}findActive(e){let t="SELECT * FROM missions WHERE status IN ('in-progress', 'planned', 'verifying')",n=[];return e&&(t+=" AND git_branch = ?",n.push(e)),t+=` ORDER BY
318
+ `,...e,`%${r}%`)?.count||0}findImpactDependents(e,r,i){return this.all(th,e,r,i,r)}getCount(){return this.get("SELECT COUNT(*) as count FROM imports")?.count||0}}});var Xr,gc=be(()=>{"use strict";_t();Xr=class extends we{findById(e){return this.get("SELECT * FROM missions WHERE id = ?",e)}findByIds(e){if(e.length===0)return[];let r=e.map(()=>"?").join(", ");return this.all(`SELECT * FROM missions WHERE id IN (${r})`,...e)}findActive(e){let r="SELECT * FROM missions WHERE status IN ('in-progress', 'planned', 'verifying')",i=[];return e&&(r+=" AND git_branch = ?",i.push(e)),r+=` ORDER BY
303
319
  CASE WHEN status = 'in-progress' THEN 0 WHEN status = 'verifying' THEN 1 ELSE 2 END,
304
- created_at ASC`,this.all(t,...n)}findAll(e){let t="SELECT * FROM missions",n=[];return e&&(t+=" WHERE status = ?",n.push(e)),t+=` ORDER BY
320
+ created_at ASC`,this.all(r,...i)}findAll(e){let r="SELECT * FROM missions",i=[];return e&&(r+=" WHERE status = ?",i.push(e)),r+=` ORDER BY
305
321
  CASE WHEN status = 'in-progress' THEN 0 WHEN status = 'verifying' THEN 1 ELSE 2 END,
306
- created_at ASC`,this.all(t,...n)}findRecentCompleted(e=3){return this.all(`
322
+ created_at ASC`,this.all(r,...i)}findRecentCompleted(e=3){return this.all(`
307
323
  SELECT * FROM missions
308
324
  WHERE status = 'completed'
309
325
  ORDER BY updated_at DESC, id DESC
@@ -311,7 +327,7 @@ ORDER BY dc.depth, dc.consumer_path;
311
327
  `,e)}create(e){return this.insert(`
312
328
  INSERT INTO missions (name, goal, strategy_graph, status, git_branch, commit_sha, parent_id, verification_context, outcome_contract)
313
329
  VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?)
314
- `,e.name,e.goal,e.strategy_graph,e.status,e.git_branch,e.commit_sha,e.parent_id,e.verification_context,e.outcome_contract)}addArtifact(e,t,n,s){this.run("INSERT INTO mission_artifacts (mission_id, type, identifier, metadata) VALUES (?, ?, ?, ?)",e,t,n,s?JSON.stringify(s):null)}getArtifacts(e){return this.all("SELECT * FROM mission_artifacts WHERE mission_id = ?",e)}update(e,t){let n=Object.keys(t);if(n.length===0)return;let s=n.map(o=>`${o} = ?`).join(", "),r=Object.values(t);r.push(e),this.run(`UPDATE missions SET ${s}, updated_at = unixepoch() WHERE id = ?`,...r)}updateStatus(e,t,n){n?this.run("UPDATE missions SET status = ?, updated_at = unixepoch(), commit_sha = ? WHERE id = ?",t,n,e):this.run("UPDATE missions SET status = ?, updated_at = unixepoch() WHERE id = ?",t,e)}getWorkingSet(e){return this.all("SELECT file_path, type FROM working_set WHERE mission_id = ?",e)}clearWorkingSet(e){this.run("DELETE FROM working_set WHERE mission_id = ?",e)}addToWorkingSet(e,t,n="file"){this.run("INSERT OR IGNORE INTO files (path, mtime, last_scanned_at) VALUES (?, unixepoch(), unixepoch())",t),this.run("INSERT INTO working_set (mission_id, file_path, type) VALUES (?, ?, ?)",e,t,n)}findColdMissions(e,t=10){return this.all(`
330
+ `,e.name,e.goal,e.strategy_graph,e.status,e.git_branch,e.commit_sha,e.parent_id,e.verification_context,e.outcome_contract)}addArtifact(e,r,i,t){this.run("INSERT INTO mission_artifacts (mission_id, type, identifier, metadata) VALUES (?, ?, ?, ?)",e,r,i,t?JSON.stringify(t):null)}getArtifacts(e){return this.all("SELECT * FROM mission_artifacts WHERE mission_id = ?",e)}update(e,r){let i=Object.keys(r);if(i.length===0)return;let t=i.map(s=>`${s} = ?`).join(", "),o=Object.values(r);o.push(e),this.run(`UPDATE missions SET ${t}, updated_at = unixepoch() WHERE id = ?`,...o)}updateStatus(e,r,i){i?this.run("UPDATE missions SET status = ?, updated_at = unixepoch(), commit_sha = ? WHERE id = ?",r,i,e):this.run("UPDATE missions SET status = ?, updated_at = unixepoch() WHERE id = ?",r,e)}getWorkingSet(e){return this.all("SELECT file_path, type FROM working_set WHERE mission_id = ?",e)}clearWorkingSet(e){this.run("DELETE FROM working_set WHERE mission_id = ?",e)}addToWorkingSet(e,r,i="file"){this.run("INSERT OR IGNORE INTO files (path, mtime, last_scanned_at) VALUES (?, unixepoch(), unixepoch())",r),this.run("INSERT INTO working_set (mission_id, file_path, type) VALUES (?, ?, ?)",e,r,i)}findColdMissions(e,r=10){return this.all(`
315
331
  SELECT m.id, COUNT(il.id) as log_count
316
332
  FROM missions m
317
333
  LEFT JOIN intent_logs il ON il.mission_id = m.id
@@ -319,23 +335,23 @@ ORDER BY dc.depth, dc.consumer_path;
319
335
  AND m.status != 'distilled'
320
336
  GROUP BY m.id
321
337
  HAVING log_count > ?
322
- `,e,t).map(s=>s.id)}getStats(){let e=this.get(`
338
+ `,e,r).map(t=>t.id)}getStats(){let e=this.get(`
323
339
  SELECT
324
340
  COUNT(*) as total,
325
341
  SUM(CASE WHEN status='completed' THEN 1 ELSE 0 END) as completed,
326
342
  SUM(CASE WHEN status IN ('in-progress', 'planned', 'verifying') THEN 1 ELSE 0 END) as active
327
343
  FROM missions
328
- `);return{total:e?.total||0,completed:e?.completed||0,active:e?.active||0}}getAnalytics(){let e=this.getStats(),t=e.total>0?Math.round(e.completed/e.total*100):0,n=this.get(`
344
+ `);return{total:e?.total||0,completed:e?.completed||0,active:e?.active||0}}getAnalytics(){let e=this.getStats(),r=e.total>0?Math.round(e.completed/e.total*100):0,i=this.get(`
329
345
  SELECT AVG(updated_at - created_at) AS avg_duration
330
346
  FROM missions
331
347
  WHERE status = 'completed' AND updated_at > created_at
332
- `),s=n?.avg_duration!=null?Math.round(n.avg_duration):null,r=Math.floor(Date.now()/1e3)-168*3600,o=Math.floor(Date.now()/1e3)-720*3600,c=this.get("SELECT COUNT(*) AS n FROM missions WHERE status = 'completed' AND updated_at >= ?",r),a=this.get("SELECT COUNT(*) AS n FROM missions WHERE status = 'completed' AND updated_at >= ?",o),l=c?.n??0,p=a?.n??0,u=`${l} completed in last 7 days, ${p} in last 30 days.`;if(s!=null){let d=Math.round(s/60);u+=` Avg mission duration: ${d} min.`}return{completionRate:t,averageDurationSeconds:s,completedLast7Days:l,completedLast30Days:p,velocityNote:u}}suspendByBranch(e){this.run(`UPDATE missions
348
+ `),t=i?.avg_duration!=null?Math.round(i.avg_duration):null,o=Math.floor(Date.now()/1e3)-168*3600,s=Math.floor(Date.now()/1e3)-720*3600,a=this.get("SELECT COUNT(*) AS n FROM missions WHERE status = 'completed' AND updated_at >= ?",o),c=this.get("SELECT COUNT(*) AS n FROM missions WHERE status = 'completed' AND updated_at >= ?",s),l=a?.n??0,u=c?.n??0,d=`${l} completed in last 7 days, ${u} in last 30 days.`;if(t!=null){let p=Math.round(t/60);d+=` Avg mission duration: ${p} min.`}return{completionRate:r,averageDurationSeconds:t,completedLast7Days:l,completedLast30Days:u,velocityNote:d}}suspendByBranch(e){this.run(`UPDATE missions
333
349
  SET status = 'suspended', updated_at = unixepoch()
334
350
  WHERE git_branch = ? AND status IN ('in-progress', 'planned', 'verifying')`,e)}resumeByBranch(e){this.run(`UPDATE missions
335
351
  SET status = 'in-progress', updated_at = unixepoch()
336
- WHERE git_branch = ? AND status = 'suspended'`,e)}findMergedMissions(e,t){if(t.length===0)return[];let n=t.filter(r=>r!==e);if(n.length===0)return[];let s=n.map(()=>"?").join(",");return this.all(`SELECT * FROM missions
352
+ WHERE git_branch = ? AND status = 'suspended'`,e)}findMergedMissions(e,r){if(r.length===0)return[];let i=r.filter(o=>o!==e);if(i.length===0)return[];let t=i.map(()=>"?").join(",");return this.all(`SELECT * FROM missions
337
353
  WHERE status IN ('in-progress', 'planned', 'verifying', 'suspended')
338
- AND git_branch IN (${s})`,...n)}findByCommitShas(e){if(e.length===0)return[];let t=e.map(()=>"?").join(",");return this.all(`SELECT * FROM missions WHERE commit_sha IN (${t})`,...e)}findByParentId(e){return this.all("SELECT * FROM missions WHERE parent_id = ?",e)}hasChildren(e){return!!this.get("SELECT 1 FROM missions WHERE parent_id = ? LIMIT 1",e)}hasNoSteps(e){if(!e.strategy_graph)return!0;try{let t=JSON.parse(e.strategy_graph),n=t?.steps??t;return!Array.isArray(n)||n.length===0}catch{return!0}}findParentOnlyIds(e){return e.filter(t=>t.parent_id!=null||!this.hasChildren(t.id)?!1:this.hasNoSteps(t)).map(t=>t.id)}createLink(e,t,n,s,r){this.db.exec(`
354
+ AND git_branch IN (${t})`,...i)}findByCommitShas(e){if(e.length===0)return[];let r=e.map(()=>"?").join(",");return this.all(`SELECT * FROM missions WHERE commit_sha IN (${r})`,...e)}findByParentId(e){return this.all("SELECT * FROM missions WHERE parent_id = ?",e)}hasChildren(e){return!!this.get("SELECT 1 FROM missions WHERE parent_id = ? LIMIT 1",e)}hasNoSteps(e){if(!e.strategy_graph)return!0;try{let r=JSON.parse(e.strategy_graph),i=r?.steps??r;return!Array.isArray(i)||i.length===0}catch{return!0}}findParentOnlyIds(e){return e.filter(r=>r.parent_id!=null||!this.hasChildren(r.id)?!1:this.hasNoSteps(r)).map(r=>r.id)}createLink(e,r,i,t,o){this.db.exec(`
339
355
  CREATE TABLE IF NOT EXISTS cross_repo_links (
340
356
  id INTEGER PRIMARY KEY AUTOINCREMENT,
341
357
  mission_id INTEGER NOT NULL,
@@ -350,24 +366,32 @@ ORDER BY dc.depth, dc.consumer_path;
350
366
  `),this.run(`
351
367
  INSERT INTO cross_repo_links (mission_id, linked_repo_path, linked_mission_id, relationship, direction)
352
368
  VALUES (?, ?, ?, ?, ?)
353
- `,e,t,n,s,r)}getLinks(e){try{return this.all(`
369
+ `,e,r,i,t,o)}getLinks(e){try{return this.all(`
354
370
  SELECT linked_repo_path, linked_mission_id, relationship, direction
355
371
  FROM cross_repo_links
356
372
  WHERE mission_id = ?
357
- `,e)}catch{return[]}}findLastMission(){return this.get("SELECT * FROM missions ORDER BY updated_at DESC, id DESC LIMIT 1")}findActiveByPriority(){return this.get("SELECT * FROM missions WHERE status IN ('in-progress', 'active', 'verifying') ORDER BY CASE WHEN status = 'in-progress' THEN 0 ELSE 1 END, created_at ASC LIMIT 1")}}});import{fileURLToPath as Ma}from"node:url";import{dirname as bs,join as yi,resolve as Da}from"node:path";import{existsSync as Oa}from"node:fs";function Wa(){let i=gi;for(;i!==bs(i);){if(Oa(yi(i,"package.json")))return i;i=bs(i)}return Da(gi,"..","..")}function ht(...i){return yi(Wa(),...i)}var Fa,gi,hn=K(()=>{"use strict";Fa=Ma(import.meta.url),gi=bs(Fa)});import{Worker as Ha}from"node:worker_threads";import{cpus as Ua}from"node:os";import{fileURLToPath as ja}from"node:url";import{dirname as za,join as bi}from"node:path";import{existsSync as _i}from"node:fs";function Ba(){if(Si.endsWith(".ts")){let e=bi(Ei,"worker.ts");if(_i(e))return e}let i=bi(Ei,"worker.js");return _i(i)?i:ht("dist/logic/domain/embeddings/worker.js")}function it(i){return ft||(ft=new gt(i)),ft}async function Mt(){ft&&(await ft.shutdown(),ft=null)}var Si,Ei,gt,ft,wi=K(()=>{"use strict";W();hn();Si=ja(import.meta.url),Ei=za(Si);gt=class{workers=[];taskQueue=[];pendingTasks=new Map;taskIdCounter=0;initialized=!1;initPromise;shutdownRequested=!1;numWorkers;cacheDir;initTimeout;constructor(e={}){this.numWorkers=e.numWorkers??Math.max(1,Math.min(4,Ua().length-1)),this.cacheDir=e.cacheDir??"./.cache",this.initTimeout=e.initTimeout??6e4}async initialize(){if(!this.initialized)return this.initPromise?this.initPromise:(this.initPromise=this._doInitialize(),this.initPromise)}async _doInitialize(){let e;try{S.info({numWorkers:this.numWorkers},"Initializing embedding worker pool");let t=new Promise((n,s)=>{e=setTimeout(()=>s(new Error(`Worker pool initialization timed out after ${this.initTimeout}ms`)),this.initTimeout)});if(await Promise.race([this._initializeWorkers(),t]),e&&clearTimeout(e),this.shutdownRequested){this.initialized=!1,this.initPromise=void 0,S.debug("Initialization completed but shutdown was requested");return}this.initialized=!0,S.info({numWorkers:this.workers.length},"Embedding worker pool ready")}catch(t){throw e&&clearTimeout(e),this.initPromise=void 0,this.initialized=!1,await this.shutdown(),t}}async _initializeWorkers(){let e=Ba();S.debug({workerPath:e},"Resolved worker path");let t=[];for(let n=0;n<this.numWorkers;n++)n>0&&await new Promise(s=>setTimeout(s,25)),t.push(this.createWorker(e,n));await Promise.all(t)}async createWorker(e,t){return new Promise((n,s)=>{let r=setTimeout(()=>{s(new Error(`Worker ${t} initialization timed out`))},this.initTimeout),o=new Ha(e,{workerData:{cacheDir:this.cacheDir},execArgv:process.execArgv}),c={worker:o,busy:!1,currentTaskId:null};o.on("message",a=>{if(a.type==="ready"){if(clearTimeout(r),this.shutdownRequested){S.debug({workerIndex:t},"Worker ready but shutdown requested, terminating"),o.terminate().catch(()=>{}),n();return}this.workers.push(c),S.debug({workerIndex:t},"Worker ready"),n()}else a.type==="result"&&a.id?this.handleTaskComplete(c,a.id,a.embeddings||[]):a.type==="error"&&a.id&&this.handleTaskError(c,a.id,new Error(a.error||"Unknown error"))}),o.on("error",a=>{if(clearTimeout(r),S.error({err:a,workerIndex:t},"Worker error"),c.currentTaskId&&this.handleTaskError(c,c.currentTaskId,a),!this.initialized){s(a);return}let l=this.workers.indexOf(c);l!==-1&&this.workers.splice(l,1),!this.shutdownRequested&&this.initialized&&this.createWorker(e,t).catch(p=>{S.error({err:p},"Failed to replace crashed worker")})}),o.on("exit",a=>{a!==0&&!this.shutdownRequested&&S.warn({workerIndex:t,code:a},"Worker exited unexpectedly")})})}handleTaskComplete(e,t,n){let s=this.pendingTasks.get(t);s&&(this.pendingTasks.delete(t),s.resolve(n)),e.busy=!1,e.currentTaskId=null,this.processQueue()}handleTaskError(e,t,n){let s=this.pendingTasks.get(t);s&&(this.pendingTasks.delete(t),s.reject(n)),e.busy=!1,e.currentTaskId=null,this.processQueue()}processQueue(){if(this.taskQueue.length===0)return;let e=this.workers.find(n=>!n.busy);if(!e)return;let t=this.taskQueue.shift();t&&(e.busy=!0,e.currentTaskId=t.id,this.pendingTasks.set(t.id,t),e.worker.postMessage({type:"embed",id:t.id,texts:t.texts}))}async generateEmbeddings(e,t=128,n){if(this.initialized||await this.initialize(),e.length===0)return[];let s=[];for(let l=0;l<e.length;l+=t)s.push(e.slice(l,l+t));let r=new Array(s.length),o=0,c=s.map((l,p)=>new Promise((u,d)=>{let h={id:`task_${++this.taskIdCounter}`,texts:l,resolve:g=>{if(r[p]=g,o++,n){let _=Math.min(o*t,e.length);n(_,e.length)}u()},reject:g=>{if(r[p]=new Array(l.length).fill(null),o++,S.warn({err:g,chunkIndex:p},"Chunk embedding failed"),n){let _=Math.min(o*t,e.length);n(_,e.length)}u()}};this.taskQueue.push(h),this.processQueue()}));await Promise.all(c);let a=[];for(let l of r)a.push(...l);return S.info({total:e.length,successful:a.filter(l=>l!==null).length,workers:this.workers.length},"Parallel embedding generation complete"),a}get workerCount(){return this.workers.length}get busyWorkers(){return this.workers.filter(e=>e.busy).length}get queueSize(){return this.taskQueue.length}get isInitialized(){return this.initialized}async shutdown(){if(this.shutdownRequested=!0,this.initPromise)try{await this.initPromise}catch{}if(!this.initialized&&this.workers.length===0){this.shutdownRequested=!1,this.initPromise=void 0;return}S.info({numWorkers:this.workers.length},"Shutting down embedding worker pool");let e=this.workers.map(t=>new Promise(n=>{t.worker.postMessage({type:"shutdown"}),t.worker.once("exit",()=>n()),setTimeout(()=>{t.worker.terminate().then(()=>n())},5e3)}));await Promise.all(e),this.workers=[],this.taskQueue=[],this.pendingTasks.clear(),this.initialized=!1,this.shutdownRequested=!1,S.info("Embedding worker pool shutdown complete")}},ft=null});var Ss={};ms(Ss,{EmbeddingPriorityQueue:()=>fn,EmbeddingWorkerPool:()=>gt,cosineSimilarity:()=>Ft,generateEmbedding:()=>gn,generateEmbeddingsBatch:()=>yn,getDefaultPool:()=>it,setUseWorkerThreads:()=>Ot,shutdownDefaultPool:()=>Mt});async function Ga(){return Dt||(Dt=await import("@xenova/transformers"),Dt.env.cacheDir="./.cache",Dt.env.allowLocalModels=!0),Dt}function Ot(i){Es=i,S.info({useWorkerThreads:i},"Worker thread mode updated")}async function vi(){return _s||(_s=(async()=>{S.info("Loading embedding model (all-MiniLM-L6-v2)...");let{pipeline:i}=await Ga();return await i("feature-extraction","Xenova/all-MiniLM-L6-v2")})()),_s}async function gn(i){try{let t=await(await vi())(i,{pooling:"mean",normalize:!0});return Array.from(t.data)}catch(e){return S.error({err:e},"Failed to generate embedding"),null}}async function yn(i,e=xi,t){return i.length===0?[]:Es?it().generateEmbeddings(i,e,t):Ti(i,e,t)}async function Ti(i,e,t){let n=new Array(i.length).fill(null),s=await vi();for(let r=0;r<i.length;r+=e){let o=Math.min(r+e,i.length),c=i.slice(r,o);try{let a=await s(c,{pooling:"mean",normalize:!0}),[l,p]=a.dims;for(let u=0;u<l;u++){let d=u*p,m=d+p;n[r+u]=Array.from(a.data.slice(d,m))}}catch(a){S.error({err:a,batchStart:r,batchEnd:o},"Single-threaded batch embedding failed, falling back to sequential for this chunk");for(let l=0;l<c.length;l++)try{let p=c[l];if(!p||p.trim().length===0)continue;let u=await s(p,{pooling:"mean",normalize:!0});n[r+l]=Array.from(u.data)}catch{n[r+l]=null}}t&&t(o,i.length)}return S.debug({total:i.length,successful:n.filter(r=>r!==null).length},"Batch embedding complete"),n}function Ft(i,e){let t=0,n=0,s=0;for(let r=0;r<i.length;r++)t+=i[r]*e[r],n+=i[r]*i[r],s+=e[r]*e[r];return t/(Math.sqrt(n)*Math.sqrt(s))}var Dt,xi,Es,_s,fn,rt=K(()=>{"use strict";W();wi();Dt=null;xi=128,Es=!1;_s=null;fn=class{queue=[];processing=!1;results=new Map;enqueue(e){this.queue.push(e),this.queue.sort((t,n)=>n.priority-t.priority)}enqueueMany(e){this.queue.push(...e),this.queue.sort((t,n)=>n.priority-t.priority)}get size(){return this.queue.length}get isProcessing(){return this.processing}getResult(e){return this.results.get(e)}async processQueue(e=xi,t){if(this.processing)return S.warn("Queue processing already in progress"),this.results;this.processing=!0;let n=this.queue.length;try{Es?await this.processQueueParallel(e,n,t):await this.processQueueSequential(e,n,t)}finally{this.processing=!1}return this.results}async processQueueSequential(e,t,n){for(;this.queue.length>0;){let s=this.queue.splice(0,e),r=s.map(c=>c.text),o=await Ti(r,r.length);if(s.forEach((c,a)=>{this.results.set(c.id,o[a])}),n){let c=t-this.queue.length;n(c,t)}}}async processQueueParallel(e,t,n){let s=this.queue.splice(0),r=s.map(a=>a.text),c=await it().generateEmbeddings(r,e,(a,l)=>{n&&n(a,l)});s.forEach((a,l)=>{this.results.set(a.id,c[l])})}clear(){this.queue=[],this.results.clear()}}});var bn,Ri=K(()=>{"use strict";Le();W();bn=class i extends te{findByMission(e,t=50){return this.all(`
358
- SELECT * FROM intent_logs
373
+ `,e)}catch{return[]}}findLastMission(){return this.get("SELECT * FROM missions ORDER BY updated_at DESC, id DESC LIMIT 1")}findActiveByPriority(){return this.get("SELECT * FROM missions WHERE status IN ('in-progress', 'active', 'verifying') ORDER BY CASE WHEN status = 'in-progress' THEN 0 ELSE 1 END, created_at ASC LIMIT 1")}}});import{fileURLToPath as Lx}from"node:url";import{dirname as yc,join as oh,resolve as Ax}from"node:path";import{existsSync as Ox}from"node:fs";function jx(){let n=ih;for(;n!==yc(n);){if(Ox(oh(n,"package.json")))return n;n=yc(n)}return Ax(ih,"..","..")}function qn(...n){return oh(jx(),...n)}var Mx,ih,oo=be(()=>{"use strict";Mx=Lx(import.meta.url),ih=yc(Mx)});import{Worker as Fx}from"node:worker_threads";import{cpus as Ux}from"node:os";import{fileURLToPath as Zx}from"node:url";import{dirname as Hx,join as sh}from"node:path";import{existsSync as ah}from"node:fs";function Wx(){if(lh.endsWith(".ts")){let e=sh(ch,"worker.ts");if(ah(e))return e}let n=sh(ch,"worker.js");return ah(n)?n:qn("dist/logic/domain/embeddings/worker.js")}function xn(n){return Vn||(Vn=new Kn(n)),Vn}async function Sn(){Vn&&(await Vn.shutdown(),Vn=null)}var lh,ch,Kn,Vn,uh=be(()=>{"use strict";J();oo();lh=Zx(import.meta.url),ch=Hx(lh);Kn=class{workers=[];taskQueue=[];pendingTasks=new Map;taskIdCounter=0;initialized=!1;initPromise;shutdownRequested=!1;numWorkers;cacheDir;initTimeout;constructor(e={}){this.numWorkers=e.numWorkers??Math.max(1,Math.min(4,Ux().length-1)),this.cacheDir=e.cacheDir??"./.cache",this.initTimeout=e.initTimeout??6e4}async initialize(){if(!this.initialized)return this.initPromise?this.initPromise:(this.initPromise=this._doInitialize(),this.initPromise)}async _doInitialize(){let e;try{$.info({numWorkers:this.numWorkers},"Initializing embedding worker pool");let r=new Promise((i,t)=>{e=setTimeout(()=>t(new Error(`Worker pool initialization timed out after ${this.initTimeout}ms`)),this.initTimeout)});if(await Promise.race([this._initializeWorkers(),r]),e&&clearTimeout(e),this.shutdownRequested){this.initialized=!1,this.initPromise=void 0,$.debug("Initialization completed but shutdown was requested");return}this.initialized=!0,$.info({numWorkers:this.workers.length},"Embedding worker pool ready")}catch(r){throw e&&clearTimeout(e),this.initPromise=void 0,this.initialized=!1,await this.shutdown(),r}}async _initializeWorkers(){let e=Wx();$.debug({workerPath:e},"Resolved worker path");let r=[];for(let i=0;i<this.numWorkers;i++)i>0&&await new Promise(t=>setTimeout(t,25)),r.push(this.createWorker(e,i));await Promise.all(r)}async createWorker(e,r){return new Promise((i,t)=>{let o=setTimeout(()=>{t(new Error(`Worker ${r} initialization timed out`))},this.initTimeout),s=new Fx(e,{workerData:{cacheDir:this.cacheDir},execArgv:process.execArgv}),a={worker:s,busy:!1,currentTaskId:null};s.on("message",c=>{if(c.type==="ready"){if(clearTimeout(o),this.shutdownRequested){$.debug({workerIndex:r},"Worker ready but shutdown requested, terminating"),s.terminate().catch(()=>{}),i();return}this.workers.push(a),$.debug({workerIndex:r},"Worker ready"),i()}else c.type==="result"&&c.id?this.handleTaskComplete(a,c.id,c.embeddings||[]):c.type==="error"&&c.id&&this.handleTaskError(a,c.id,new Error(c.error||"Unknown error"))}),s.on("error",c=>{if(clearTimeout(o),$.error({err:c,workerIndex:r},"Worker error"),a.currentTaskId&&this.handleTaskError(a,a.currentTaskId,c),!this.initialized){t(c);return}let l=this.workers.indexOf(a);l!==-1&&this.workers.splice(l,1),!this.shutdownRequested&&this.initialized&&this.createWorker(e,r).catch(u=>{$.error({err:u},"Failed to replace crashed worker")})}),s.on("exit",c=>{c!==0&&!this.shutdownRequested&&$.warn({workerIndex:r,code:c},"Worker exited unexpectedly")})})}handleTaskComplete(e,r,i){let t=this.pendingTasks.get(r);t&&(this.pendingTasks.delete(r),t.resolve(i)),e.busy=!1,e.currentTaskId=null,this.processQueue()}handleTaskError(e,r,i){let t=this.pendingTasks.get(r);t&&(this.pendingTasks.delete(r),t.reject(i)),e.busy=!1,e.currentTaskId=null,this.processQueue()}processQueue(){if(this.taskQueue.length===0)return;let e=this.workers.find(i=>!i.busy);if(!e)return;let r=this.taskQueue.shift();r&&(e.busy=!0,e.currentTaskId=r.id,this.pendingTasks.set(r.id,r),e.worker.postMessage({type:"embed",id:r.id,texts:r.texts}))}async generateEmbeddings(e,r=128,i){if(this.initialized||await this.initialize(),e.length===0)return[];let t=[];for(let l=0;l<e.length;l+=r)t.push(e.slice(l,l+r));let o=new Array(t.length),s=0,a=t.map((l,u)=>new Promise((d,p)=>{let m={id:`task_${++this.taskIdCounter}`,texts:l,resolve:h=>{if(o[u]=h,s++,i){let v=Math.min(s*r,e.length);i(v,e.length)}d()},reject:h=>{if(o[u]=new Array(l.length).fill(null),s++,$.warn({err:h,chunkIndex:u},"Chunk embedding failed"),i){let v=Math.min(s*r,e.length);i(v,e.length)}d()}};this.taskQueue.push(m),this.processQueue()}));await Promise.all(a);let c=[];for(let l of o)c.push(...l);return $.info({total:e.length,successful:c.filter(l=>l!==null).length,workers:this.workers.length},"Parallel embedding generation complete"),c}get workerCount(){return this.workers.length}get busyWorkers(){return this.workers.filter(e=>e.busy).length}get queueSize(){return this.taskQueue.length}get isInitialized(){return this.initialized}async shutdown(){if(this.shutdownRequested=!0,this.initPromise)try{await this.initPromise}catch{}if(!this.initialized&&this.workers.length===0){this.shutdownRequested=!1,this.initPromise=void 0;return}$.info({numWorkers:this.workers.length},"Shutting down embedding worker pool");let e=this.workers.map(r=>new Promise(i=>{r.worker.postMessage({type:"shutdown"}),r.worker.once("exit",()=>i()),setTimeout(()=>{r.worker.terminate().then(()=>i())},5e3)}));await Promise.all(e),this.workers=[],this.taskQueue=[],this.pendingTasks.clear(),this.initialized=!1,this.shutdownRequested=!1,$.info("Embedding worker pool shutdown complete")}},Vn=null});var ni={};et(ni,{EmbeddingPriorityQueue:()=>ao,EmbeddingWorkerPool:()=>Kn,cosineSimilarity:()=>uo,generateEmbedding:()=>co,generateEmbeddingsBatch:()=>lo,getDefaultPool:()=>xn,setUseWorkerThreads:()=>ti,shutdownDefaultPool:()=>Sn});async function Bx(){return Qr||(Qr=await import("@xenova/transformers"),Qr.env.cacheDir="./.cache",Qr.env.allowLocalModels=!0),Qr}function ti(n){vc=n,$.info({useWorkerThreads:n},"Worker thread mode updated")}function dh(n=!1){let e=(ei||"").toLowerCase(),r={};return ei&&(r.dtype=ei),n?(r.quantized=!1,r):(e==="fp32"||e==="fp16"||e==="float32"||e==="float16"?r.quantized=!1:e.startsWith("q")&&(r.quantized=!0),r)}async function Gx(){$.info({model:so,dtype:ei},"Loading embedding model...");let{pipeline:n}=await Bx(),e=dh(!1);try{return await n("feature-extraction",so,e)}catch(r){let i=r?.message||"";if(!(i.includes("/onnx/model_quantized.onnx")||i.includes("model_quantized.onnx")))throw r;return $.warn({model:so,dtype:ei},"Quantized ONNX artifact missing, retrying with unquantized ONNX"),await n("feature-extraction",so,dh(!0))}}async function mh(){return bc||(bc=Gx()),bc}async function co(n){try{let r=await(await mh())(n,{pooling:"mean",normalize:!0});return Array.from(r.data)}catch(e){return $.error({err:e},"Failed to generate embedding"),null}}async function lo(n,e=ph,r){return n.length===0?[]:vc?xn().generateEmbeddings(n,e,r):fh(n,e,r)}async function fh(n,e,r){let i=new Array(n.length).fill(null),t=await mh();for(let o=0;o<n.length;o+=e){let s=Math.min(o+e,n.length),a=n.slice(o,s);try{let c=await t(a,{pooling:"mean",normalize:!0}),[l,u]=c.dims;for(let d=0;d<l;d++){let p=d*u,f=p+u;i[o+d]=Array.from(c.data.slice(p,f))}}catch(c){$.error({err:c,batchStart:o,batchEnd:s},"Single-threaded batch embedding failed, falling back to sequential for this chunk");for(let l=0;l<a.length;l++)try{let u=a[l];if(!u||u.trim().length===0)continue;let d=await t(u,{pooling:"mean",normalize:!0});i[o+l]=Array.from(d.data)}catch{i[o+l]=null}}r&&r(s,n.length)}return $.debug({total:n.length,successful:i.filter(o=>o!==null).length},"Batch embedding complete"),i}function uo(n,e){let r=0,i=0,t=0;for(let o=0;o<n.length;o++)r+=n[o]*e[o],i+=n[o]*n[o],t+=e[o]*e[o];return r/(Math.sqrt(i)*Math.sqrt(t))}var so,ei,Qr,ph,vc,bc,ao,Nt=be(()=>{"use strict";J();uh();so=process.env.EMBEDDING_MODEL??"Xenova/all-MiniLM-L6-v2",ei=process.env.EMBEDDING_DTYPE??"fp32",Qr=null;ph=128,vc=!1;bc=null;ao=class{queue=[];processing=!1;results=new Map;enqueue(e){this.queue.push(e),this.queue.sort((r,i)=>i.priority-r.priority)}enqueueMany(e){this.queue.push(...e),this.queue.sort((r,i)=>i.priority-r.priority)}get size(){return this.queue.length}get isProcessing(){return this.processing}getResult(e){return this.results.get(e)}async processQueue(e=ph,r){if(this.processing)return $.warn("Queue processing already in progress"),this.results;this.processing=!0;let i=this.queue.length;try{vc?await this.processQueueParallel(e,i,r):await this.processQueueSequential(e,i,r)}finally{this.processing=!1}return this.results}async processQueueSequential(e,r,i){for(;this.queue.length>0;){let t=this.queue.splice(0,e),o=t.map(a=>a.text),s=await fh(o,o.length);if(t.forEach((a,c)=>{this.results.set(a.id,s[c])}),i){let a=r-this.queue.length;i(a,r)}}}async processQueueParallel(e,r,i){let t=this.queue.splice(0),o=t.map(c=>c.text),a=await xn().generateEmbeddings(o,e,(c,l)=>{i&&i(c,l)});t.forEach((c,l)=>{this.results.set(c.id,a[l])})}clear(){this.queue=[],this.results.clear()}}});var po,hh=be(()=>{"use strict";_t();J();po=class n extends we{findByMission(e,r=50){return this.all(`
374
+ SELECT
375
+ id, mission_id, symbol_id, file_path, type, content, confidence,
376
+ symbol_name, signature, commit_sha, is_crystallized, crystal_id,
377
+ created_at
378
+ FROM intent_logs
359
379
  WHERE mission_id = ?
360
380
  ORDER BY created_at DESC
361
381
  LIMIT ?
362
- `,e,t)}findRecentDecisionActivity(e=10){return this.all(`
363
- SELECT * FROM intent_logs
382
+ `,e,r)}findRecentDecisionActivity(e=10){return this.all(`
383
+ SELECT
384
+ id, mission_id, symbol_id, file_path, type, content, confidence,
385
+ symbol_name, signature, commit_sha, is_crystallized, crystal_id,
386
+ created_at
387
+ FROM intent_logs
364
388
  WHERE type IN ('decision', 'system', 'fix', 'heritage', 'adr')
365
389
  ORDER BY created_at DESC
366
390
  LIMIT ?
367
- `,e)}create(e){let t=this.insert(`
391
+ `,e)}create(e){let r=this.insert(`
368
392
  INSERT INTO intent_logs (mission_id, symbol_id, file_path, type, content, confidence, symbol_name, signature, commit_sha)
369
393
  VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?)
370
- `,e.mission_id,e.symbol_id,e.file_path,e.type,e.content,e.confidence,e.symbol_name,e.signature,e.commit_sha);return i.EMBEDDABLE_TYPES.has(e.type)&&this.generateAndStoreEmbedding(Number(t),e).catch(n=>{S.debug({err:n,intentLogId:t},"Failed to generate intent log embedding")}),t}static EMBEDDABLE_TYPES=new Set(["decision","discovery","fix","blocker","heritage","crystal"]);static buildEmbeddingText(e){let t=[`[${e.type}]`];return e.symbol_name&&t.push(`symbol: ${e.symbol_name}`),e.file_path&&t.push(`file: ${e.file_path.split("/").pop()}`),t.push(e.content),t.join(" ")}async generateAndStoreEmbedding(e,t){let{generateEmbedding:n}=await Promise.resolve().then(()=>(rt(),Ss)),s=i.buildEmbeddingText(t),r=await n(s);r&&this.run("UPDATE intent_logs SET embedding = ? WHERE id = ?",JSON.stringify(r),e)}findWithEmbeddings(){return this.all("SELECT * FROM intent_logs WHERE embedding IS NOT NULL AND type NOT IN ('system', 'lapsed')")}delete(e){this.run("DELETE FROM intent_logs WHERE id = ?",e)}update(e,t){let n=Object.keys(t);if(n.length===0)return;let s=n.map(o=>`${o} = ?`).join(", "),r=Object.values(t);r.push(e),this.run(`UPDATE intent_logs SET ${s} WHERE id = ?`,...r)}findRepairableOrphans(){return this.all(`
394
+ `,e.mission_id,e.symbol_id,e.file_path,e.type,e.content,e.confidence,e.symbol_name,e.signature,e.commit_sha);return n.EMBEDDABLE_TYPES.has(e.type)&&this.generateAndStoreEmbedding(Number(r),e).catch(i=>{$.debug({err:i,intentLogId:r},"Failed to generate intent log embedding")}),r}static EMBEDDABLE_TYPES=new Set(["decision","discovery","fix","blocker","heritage","crystal"]);static buildEmbeddingText(e){let r=[`[${e.type}]`];return e.symbol_name&&r.push(`symbol: ${e.symbol_name}`),e.file_path&&r.push(`file: ${e.file_path.split("/").pop()}`),r.push(e.content),r.join(" ")}async generateAndStoreEmbedding(e,r){let{generateEmbedding:i}=await Promise.resolve().then(()=>(Nt(),ni)),t=n.buildEmbeddingText(r),o=await i(t);o&&this.run("UPDATE intent_logs SET embedding = ? WHERE id = ?",JSON.stringify(o),e)}findWithEmbeddings(){return this.all("SELECT * FROM intent_logs WHERE embedding IS NOT NULL AND type NOT IN ('system', 'lapsed')")}async findSemanticMatches(e,r,i){let{cosineSimilarity:t}=await Promise.resolve().then(()=>(Nt(),ni)),o=this.findWithEmbeddings();if(o.length>5e3)return $.warn({count:o.length},"Intent log count exceeds brute-force vector scan limit (5000). Skipping semantic recall."),[];let s=[];for(let a of o)if(!(i&&a.symbol_id===i))try{let c=JSON.parse(a.embedding),l=t(e,c);l>.25&&s.push({id:a.id,mission_id:a.mission_id,type:a.type,content:a.content,symbol_name:a.symbol_name,file_path:a.file_path,similarity:l,created_at:a.created_at})}catch{}return s.sort((a,c)=>c.similarity-a.similarity).slice(0,r)}delete(e){this.run("DELETE FROM intent_logs WHERE id = ?",e)}update(e,r){let i=Object.keys(r);if(i.length===0)return;let t=i.map(s=>`${s} = ?`).join(", "),o=Object.values(r);o.push(e),this.run(`UPDATE intent_logs SET ${t} WHERE id = ?`,...o)}findRepairableOrphans(){return this.all(`
371
395
  SELECT id, file_path, symbol_name, signature
372
396
  FROM intent_logs
373
397
  WHERE symbol_id IS NULL AND symbol_name IS NOT NULL
@@ -389,53 +413,72 @@ ORDER BY dc.depth, dc.consumer_path;
389
413
  type = 'lapsed',
390
414
  content = 'Lapsed: ' || content
391
415
  WHERE id = ?
392
- `,e)}importHeritage(e,t,n,s){this.run(`
416
+ `,e)}importHeritage(e,r,i,t){this.run(`
393
417
  INSERT INTO intent_logs (type, content, commit_sha, created_at, confidence, mission_id)
394
- VALUES ('heritage', ?, ?, ?, ?, 0)
395
- `,e,t,n,s)}countByType(e){return this.get("SELECT COUNT(*) as count FROM intent_logs WHERE type = ?",e)?.count||0}findRawByMission(e){return this.all(`SELECT * FROM intent_logs
418
+ VALUES ('heritage', ?, ?, ?, ?, NULL)
419
+ `,e,r,i,t)}countByType(e){return this.get("SELECT COUNT(*) as count FROM intent_logs WHERE type = ?",e)?.count||0}findRawByMission(e){return this.all(`SELECT
420
+ id, mission_id, symbol_id, file_path, type, content, confidence,
421
+ symbol_name, signature, commit_sha, is_crystallized, crystal_id,
422
+ created_at
423
+ FROM intent_logs
396
424
  WHERE mission_id = ? AND is_crystallized = 0
397
425
  AND type NOT IN ('adr', 'system', 'crystal', 'lapsed')
398
- ORDER BY created_at ASC`,e)}findCrystalByMission(e){return this.get(`SELECT * FROM intent_logs
426
+ ORDER BY created_at ASC`,e)}findCrystalByMission(e){return this.get(`SELECT
427
+ id, mission_id, symbol_id, file_path, type, content, confidence,
428
+ symbol_name, signature, commit_sha, is_crystallized, crystal_id,
429
+ created_at
430
+ FROM intent_logs
399
431
  WHERE mission_id = ? AND type = 'crystal'
400
- ORDER BY created_at DESC LIMIT 1`,e)}crystallize(e,t){return this.transaction(()=>{let n=this.insert(`INSERT INTO intent_logs (mission_id, type, content, confidence, is_crystallized, symbol_id, file_path, symbol_name, signature, commit_sha)
401
- VALUES (?, 'crystal', ?, 1.0, 0, NULL, NULL, NULL, NULL, NULL)`,e,t);return this.run(`UPDATE intent_logs
432
+ ORDER BY created_at DESC LIMIT 1`,e)}crystallize(e,r){return this.transaction(()=>{let i=this.insert(`INSERT INTO intent_logs (mission_id, type, content, confidence, is_crystallized, symbol_id, file_path, symbol_name, signature, commit_sha)
433
+ VALUES (?, 'crystal', ?, 1.0, 0, NULL, NULL, NULL, NULL, NULL)`,e,r);return this.run(`UPDATE intent_logs
402
434
  SET is_crystallized = 1, crystal_id = ?
403
435
  WHERE mission_id = ? AND is_crystallized = 0 AND id != ?
404
- AND type NOT IN ('adr', 'system', 'crystal', 'lapsed')`,n,e,n),n})}countByMissions(e){if(e.length===0)return{};let t=e.map(()=>"?").join(","),n=this.all(`SELECT mission_id, COUNT(*) as cnt
436
+ AND type NOT IN ('adr', 'system', 'crystal', 'lapsed')`,i,e,i),i})}findRawBySymbol(e){return this.all(`SELECT * FROM intent_logs
437
+ WHERE symbol_id = ? AND mission_id IS NULL AND is_crystallized = 0
438
+ AND type NOT IN ('adr', 'system', 'crystal', 'lapsed')
439
+ ORDER BY created_at ASC`,e)}crystallizeBySymbol(e,r){return this.transaction(()=>{let i=this.insert(`INSERT INTO intent_logs (mission_id, symbol_id, type, content, confidence, is_crystallized, file_path, symbol_name, signature, commit_sha)
440
+ VALUES (NULL, ?, 'crystal', ?, 1.0, 0, NULL, NULL, NULL, NULL)`,e,r);return this.run(`UPDATE intent_logs
441
+ SET is_crystallized = 1, crystal_id = ?
442
+ WHERE symbol_id = ? AND mission_id IS NULL AND is_crystallized = 0 AND id != ?
443
+ AND type NOT IN ('adr', 'system', 'crystal', 'lapsed')`,i,e,i),i})}countByMissions(e){if(e.length===0)return{};let r=e.map(()=>"?").join(","),i=this.all(`SELECT mission_id, COUNT(*) as cnt
405
444
  FROM intent_logs
406
- WHERE mission_id IN (${t})
445
+ WHERE mission_id IN (${r})
407
446
  AND type NOT IN ('system', 'adr', 'lapsed')
408
- GROUP BY mission_id`,...e),s={};for(let r of n)s[r.mission_id]=r.cnt;return s}findMissionsWithBlockers(e){if(e.length===0)return new Set;let t=e.map(()=>"?").join(","),n=this.all(`SELECT DISTINCT mission_id
447
+ GROUP BY mission_id`,...e),t={};for(let o of i)t[o.mission_id]=o.cnt;return t}findMissionsWithBlockers(e){if(e.length===0)return new Set;let r=e.map(()=>"?").join(","),i=this.all(`SELECT DISTINCT mission_id
409
448
  FROM intent_logs
410
- WHERE mission_id IN (${t})
411
- AND type = 'blocker'`,...e);return new Set(n.map(s=>s.mission_id))}findByMissionPreferCrystal(e,t=50){let n=this.findCrystalByMission(e);if(n){let s=this.all(`SELECT * FROM intent_logs
449
+ WHERE mission_id IN (${r})
450
+ AND type = 'blocker'`,...e);return new Set(i.map(t=>t.mission_id))}findByMissionPreferCrystal(e,r=50){let i=this.findCrystalByMission(e);if(i){let t=this.all(`SELECT
451
+ id, mission_id, symbol_id, file_path, type, content, confidence,
452
+ symbol_name, signature, commit_sha, is_crystallized, crystal_id,
453
+ created_at
454
+ FROM intent_logs
412
455
  WHERE mission_id = ? AND is_crystallized = 0 AND type NOT IN ('adr', 'system', 'crystal', 'lapsed')
413
456
  AND created_at > ?
414
- ORDER BY created_at DESC LIMIT ?`,e,n.created_at,t-1);return[n,...s]}return this.findByMission(e,t)}async backfillEmbeddings(e=64,t){let{generateEmbeddingsBatch:n}=await Promise.resolve().then(()=>(rt(),Ss)),s=[...i.EMBEDDABLE_TYPES].map(p=>`'${p}'`).join(","),r=this.all(`SELECT * FROM intent_logs WHERE embedding IS NULL AND type IN (${s})`);if(r.length===0)return 0;let o=r.map(p=>i.buildEmbeddingText(p)),c=await n(o,e,t),a=this.db.prepare("UPDATE intent_logs SET embedding = ? WHERE id = ?"),l=0;return this.transaction(()=>{for(let p=0;p<r.length;p++)c[p]&&(a.run(JSON.stringify(c[p]),r[p].id),l++)}),S.info({total:r.length,embedded:l},"Intent log embedding backfill complete"),l}}});var _n,ki=K(()=>{"use strict";Le();_n=class extends te{findByKey(e,t=20){return this.all(`
457
+ ORDER BY created_at DESC LIMIT ?`,e,i.created_at,r-1);return[i,...t]}return this.findByMission(e,r)}async backfillEmbeddings(e=64,r){let{generateEmbeddingsBatch:i}=await Promise.resolve().then(()=>(Nt(),ni)),t=[...n.EMBEDDABLE_TYPES].map(u=>`'${u}'`).join(","),o=this.all(`SELECT * FROM intent_logs WHERE embedding IS NULL AND type IN (${t})`);if(o.length===0)return 0;let s=o.map(u=>n.buildEmbeddingText(u)),a=await i(s,e,r),c=this.db.prepare("UPDATE intent_logs SET embedding = ? WHERE id = ?"),l=0;return this.transaction(()=>{for(let u=0;u<o.length;u++)a[u]&&(c.run(JSON.stringify(a[u]),o[u].id),l++)}),$.info({total:o.length,embedded:l},"Intent log embedding backfill complete"),l}}});var mo,gh=be(()=>{"use strict";_t();mo=class extends we{findByKey(e,r=20){return this.all(`
415
458
  SELECT file_path, key, value, kind
416
459
  FROM configs
417
460
  WHERE key LIKE ? OR value LIKE ?
418
461
  LIMIT ?
419
- `,`%${e}%`,`%${e}%`,t)}findByKind(e,t=50){let n="SELECT key, value, kind, file_path FROM configs",s=[];return e&&(n+=" WHERE kind = ?",s.push(e)),n+=" LIMIT ?",s.push(t),this.all(n,...s)}findEnvValue(e){return this.get("SELECT value FROM configs WHERE key LIKE ? OR key = ? LIMIT 1",`%:env:${e}`,e)?.value}countByKind(e){return this.get("SELECT COUNT(*) as count FROM configs WHERE kind = ?",e)?.count||0}getAll(){return this.all("SELECT key, value, kind, file_path FROM configs")}}});var En,Ii=K(()=>{"use strict";Le();En=class extends te{search(e,t=10){return this.all(`
462
+ `,`%${e}%`,`%${e}%`,r)}findByKind(e,r=50){let i="SELECT key, value, kind, file_path FROM configs",t=[];return e&&(i+=" WHERE kind = ?",t.push(e)),i+=" LIMIT ?",t.push(r),this.all(i,...t)}findEnvValue(e){return this.get("SELECT value FROM configs WHERE key LIKE ? OR key = ? LIMIT 1",`%:env:${e}`,e)?.value}countByKind(e){return this.get("SELECT COUNT(*) as count FROM configs WHERE kind = ?",e)?.count||0}getAll(){return this.all("SELECT key, value, kind, file_path FROM configs")}}});var fo,yh=be(()=>{"use strict";_t();fo=class extends we{search(e,r=10){return this.all(`
420
463
  SELECT file_path, snippet(content_fts, 1, '<b>', '</b>', '...', 20) as snippet
421
464
  FROM content_fts
422
465
  WHERE content_fts MATCH ?
423
466
  LIMIT ?
424
- `,e,t)}}});var Ci,Sn,Li=K(()=>{"use strict";Le();Ci=500,Sn=class extends te{record(e,t,n=null){this.run("INSERT INTO search_history (query, mode, branch) VALUES (?, ?, ?)",e,t,n),this.pruneIfNeeded()}findRecent(e=20){return this.all("SELECT id, query, mode, branch, created_at FROM search_history ORDER BY created_at DESC LIMIT ?",e)}findRecentByQueryPrefix(e,t=10){return e.trim()?this.all(`SELECT id, query, mode, branch, created_at FROM search_history
425
- WHERE query LIKE ? ORDER BY created_at DESC LIMIT ?`,`${e}%`,t):this.findRecent(t)}pruneIfNeeded(){(this.get("SELECT COUNT(*) as count FROM search_history")?.count??0)<=Ci||this.run(`DELETE FROM search_history WHERE id NOT IN (
467
+ `,e,r)}}});var bh,ho,vh=be(()=>{"use strict";_t();bh=500,ho=class extends we{record(e,r,i=null){this.run("INSERT INTO search_history (query, mode, branch) VALUES (?, ?, ?)",e,r,i),this.pruneIfNeeded()}findRecent(e=20){return this.all("SELECT id, query, mode, branch, created_at FROM search_history ORDER BY created_at DESC LIMIT ?",e)}findRecentByQueryPrefix(e,r=10){return e.trim()?this.all(`SELECT id, query, mode, branch, created_at FROM search_history
468
+ WHERE query LIKE ? ORDER BY created_at DESC LIMIT ?`,`${e}%`,r):this.findRecent(r)}pruneIfNeeded(){(this.get("SELECT COUNT(*) as count FROM search_history")?.count??0)<=bh||this.run(`DELETE FROM search_history WHERE id NOT IN (
426
469
  SELECT id FROM search_history ORDER BY created_at DESC LIMIT ?
427
- )`,Ci)}}});var wn,$i=K(()=>{"use strict";Le();wn=class extends te{getSection(e){return this.get("SELECT section, data, updated_at FROM hologram_snapshot WHERE section = ?",e)}getAllSections(){return this.all("SELECT section, data, updated_at FROM hologram_snapshot ORDER BY section")}upsertSection(e,t){this.run(`
470
+ )`,bh)}}});var go,_h=be(()=>{"use strict";_t();go=class extends we{getSection(e){return this.get("SELECT section, data, updated_at FROM hologram_snapshot WHERE section = ?",e)}getAllSections(){return this.all("SELECT section, data, updated_at FROM hologram_snapshot ORDER BY section")}upsertSection(e,r){this.run(`
428
471
  INSERT INTO hologram_snapshot (section, data, updated_at)
429
472
  VALUES (?, ?, unixepoch())
430
473
  ON CONFLICT(section) DO UPDATE SET
431
474
  data = excluded.data,
432
475
  updated_at = excluded.updated_at
433
- `,e,t)}deleteSection(e){this.run("DELETE FROM hologram_snapshot WHERE section = ?",e)}deleteAll(){this.run("DELETE FROM hologram_snapshot")}hasSection(e){return(this.get("SELECT COUNT(*) as count FROM hologram_snapshot WHERE section = ?",e)?.count??0)>0}}});var C,z=K(()=>{"use strict";qe();pi();di();hi();fi();Ri();ki();Ii();Li();$i();C=class{static repositoryCache=new Map;static getInstance(e){let t=this.repositoryCache.get(e);if(t){let r=We(e),o=t.files?.database,c=!t.intentLogs||!t.searchHistory||!t.missions||!t.hologram;if(o===r&&r.open&&!c)return t;this.repositoryCache.delete(e)}let n=We(e),s={files:new pn(n),exports:new dn(n),imports:new un(n),missions:new mn(n),intentLogs:new bn(n),configs:new _n(n),content:new En(n),searchHistory:new Sn(n),hologram:new wn(n)};return this.repositoryCache.set(e,s),s}static closeInstance(e){this.repositoryCache.delete(e),ln(e)}static clearCache(e){this.repositoryCache.delete(e)}}});var Pi=ga((yd,ws)=>{var vn=process||{},Ni=vn.argv||[],xn=vn.env||{},qa=!(xn.NO_COLOR||Ni.includes("--no-color"))&&(!!xn.FORCE_COLOR||Ni.includes("--color")||vn.platform==="win32"||(vn.stdout||{}).isTTY&&xn.TERM!=="dumb"||!!xn.CI),Ja=(i,e,t=i)=>n=>{let s=""+n,r=s.indexOf(e,i.length);return~r?i+Ya(s,e,t,r)+e:i+s+e},Ya=(i,e,t,n)=>{let s="",r=0;do s+=i.substring(r,n)+t,r=n+e.length,n=i.indexOf(e,r);while(~n);return s+i.substring(r)},Ai=(i=qa)=>{let e=i?Ja:()=>String;return{isColorSupported:i,reset:e("\x1B[0m","\x1B[0m"),bold:e("\x1B[1m","\x1B[22m","\x1B[22m\x1B[1m"),dim:e("\x1B[2m","\x1B[22m","\x1B[22m\x1B[2m"),italic:e("\x1B[3m","\x1B[23m"),underline:e("\x1B[4m","\x1B[24m"),inverse:e("\x1B[7m","\x1B[27m"),hidden:e("\x1B[8m","\x1B[28m"),strikethrough:e("\x1B[9m","\x1B[29m"),black:e("\x1B[30m","\x1B[39m"),red:e("\x1B[31m","\x1B[39m"),green:e("\x1B[32m","\x1B[39m"),yellow:e("\x1B[33m","\x1B[39m"),blue:e("\x1B[34m","\x1B[39m"),magenta:e("\x1B[35m","\x1B[39m"),cyan:e("\x1B[36m","\x1B[39m"),white:e("\x1B[37m","\x1B[39m"),gray:e("\x1B[90m","\x1B[39m"),bgBlack:e("\x1B[40m","\x1B[49m"),bgRed:e("\x1B[41m","\x1B[49m"),bgGreen:e("\x1B[42m","\x1B[49m"),bgYellow:e("\x1B[43m","\x1B[49m"),bgBlue:e("\x1B[44m","\x1B[49m"),bgMagenta:e("\x1B[45m","\x1B[49m"),bgCyan:e("\x1B[46m","\x1B[49m"),bgWhite:e("\x1B[47m","\x1B[49m"),blackBright:e("\x1B[90m","\x1B[39m"),redBright:e("\x1B[91m","\x1B[39m"),greenBright:e("\x1B[92m","\x1B[39m"),yellowBright:e("\x1B[93m","\x1B[39m"),blueBright:e("\x1B[94m","\x1B[39m"),magentaBright:e("\x1B[95m","\x1B[39m"),cyanBright:e("\x1B[96m","\x1B[39m"),whiteBright:e("\x1B[97m","\x1B[39m"),bgBlackBright:e("\x1B[100m","\x1B[49m"),bgRedBright:e("\x1B[101m","\x1B[49m"),bgGreenBright:e("\x1B[102m","\x1B[49m"),bgYellowBright:e("\x1B[103m","\x1B[49m"),bgBlueBright:e("\x1B[104m","\x1B[49m"),bgMagentaBright:e("\x1B[105m","\x1B[49m"),bgCyanBright:e("\x1B[106m","\x1B[49m"),bgWhiteBright:e("\x1B[107m","\x1B[49m")}};ws.exports=Ai();ws.exports.createColors=Ai});var Mr,Dr,Or,Fr,Wr,Hr,Ur,jr,zr,Br,Gr,qr,Jr,Yr,Hs,Vr,Qr,Kr,Xr=K(()=>{"use strict";Mr=[/\/pages\/(?!_)[^/]+\.(tsx?|jsx?)$/i,/\/pages\/.*\/index\.(tsx?|jsx?)$/i,/\/app\/.*\/page\.(tsx?|jsx?)$/i,/\/app\/.*\/layout\.(tsx?|jsx?)$/i,/\/app\/api\/.*\/route\.(ts|js)$/i,/\/pages\/api\/.*\.(ts|js)$/i],Dr=[/\.(routes?|router|controller|handler|endpoint|api)\.(ts|js|tsx|jsx)$/i,/\/routes?\//i,/\/controllers?\//i,/index\.(ts|js|tsx|jsx)$/i],Or=[/\/components?\/.*\.(tsx|jsx)$/i,/\/features?\/.*\.(tsx|jsx)$/i,/\/views?\/.*\.(tsx|jsx)$/i,/\/screens?\/.*\.(tsx|jsx)$/i,/\/widgets?\/.*\.(tsx|jsx)$/i],Fr=[/\.(service|usecase|interactor|manager|facade)\.(ts|js)$/i,/\/services?\//i,/\/usecases?\//i,/\/domain\//i,/\/business\//i],Wr=[/\/mcp\/handlers?\/[^/]+\.(ts|js)$/i,/\/mcp\/tools?\/[^/]+\.(ts|js)$/i,/\/mcp\/server\.(ts|js)$/i,/\/mcp\/index\.(ts|js)$/i],Hr=[/\/mcp\/utils?\.(ts|js)$/i,/\/mcp\/schemas?\.(ts|js)$/i,/\/mcp\/resources?\.(ts|js)$/i],Ur=[/\/commands?\/[^/]+\.(ts|js|py|php)$/i,/\/cli\/[^/]+\.(ts|js|py|php)$/i,/\/bin\/[^/]+\.(ts|js|py|php)$/i,/cli\.(ts|js|py|php)$/i,/main\.(ts|js|py|php)$/i],jr=[/\/parser\/[^/]+\.(ts|js)$/i,/\/ast\/[^/]+\.(ts|js)$/i,/\.(parser|visitor|walker|transformer)\.(ts|js)$/i],zr=[/\/core\/[^/]+\.(ts|js)$/i,/\/engine\/[^/]+\.(ts|js)$/i,/\/processing\/[^/]+\.(ts|js)$/i,/\/analysis\/[^/]+\.(ts|js)$/i,/\.(analyzer|processor|scanner|indexer|resolver)\.(ts|js)$/i],Br=[/\/ui\/[^/]+\.(ts|js|tsx|jsx)$/i,/\/display\/[^/]+\.(ts|js)$/i,/\/output\/[^/]+\.(ts|js)$/i,/\.(formatter|renderer|printer)\.(ts|js)$/i],Gr=[/\/stores?\//i,/\/slices?\//i,/\/reducers?\//i,/\/atoms?\//i,/\/selectors?\//i,/\.(store|slice|reducer|atom|selector)\.(ts|js)$/i,/.*Slice\.(ts|js)$/i,/.*Store\.(ts|js)$/i],qr=[/\/hooks?\//i,/\/contexts?\//i,/\/providers?\//i,/use[A-Z].*\.(ts|js)$/,/.*Context\.(ts|tsx|js|jsx)$/i,/.*Provider\.(ts|tsx|js|jsx)$/i],Jr=[/\/schemas?\//i,/\/validations?\//i,/\.(schema|validation|validator)\.(ts|js)$/i],Yr=[/\.(types?|dto|interface|interfaces)\.(ts|js)$/i,/types\.ts$/i,/\/types?\//i,/\/dtos?\//i,/\/interfaces?\//i,/\/contracts?\//i,/\.d\.ts$/i],Hs=[/\.(model|entity|schema|repository|repo|dao|migration|query|mutation|resolver|connection|db)\.(ts|js)$/i,/queries\.(ts|js)$/i,/mutations\.(ts|js)$/i,/resolvers\.(ts|js)$/i,/connection\.(ts|js)$/i,/\/models?\//i,/\/entities?\//i,/\/repositories?\//i,/\/repos?\//i,/\/data\//i,/\/database\//i,/\/prisma\//i,/\/drizzle\//i,/\/api\/.*client\.(ts|js|tsx)$/i,/(^|\/)[A-Z0-9_-]*API\.(tsx?|js|jsx)$/],Vr=[/\.(util|utils|helper|helpers|lib|common|shared)\.(ts|js)$/i,/\/utils?\//i,/\/helpers?\//i,/\/lib\//i,/\/common\//i,/\/shared\//i],Qr=["express","fastify","koa","hapi","restify","next","nuxt","gatsby","remix","@nestjs/common","@nestjs/core","react-router","vue-router","@angular/router","zod","joi","yup","valibot","superstruct"],Kr=["prisma","@prisma/client","typeorm","sequelize","mongoose","drizzle-orm","knex","pg","mysql","sqlite","better-sqlite3","mongodb","redis","ioredis","zustand","redux","recoil","jotai","mobx"]});var Zr,eo,to,no,so=K(()=>{"use strict";Zr=[/urls\.py$/i,/wsgi\.py$/i,/asgi\.py$/i,/manage\.py$/i,/main\.py$/i,/app\.py$/i,/\/endpoints?\/.*\.py$/i,/\/commands?\/.*\.py$/i],eo=[/views\.py$/i,/forms\.py$/i,/serializers\.py$/i,/admin\.py$/i,/apps\.py$/i,/tasks\.py$/i,/middlewares?\.py$/i,/signals?\.py$/i,/context_processors\.py$/i],to=[/models\.py$/i,/\/models\/.*\.py$/i,/\/migrations\/.*\.py$/i,/schema\.py$/i,/documents\.py$/i],no=["django.urls","django.http","flask","fastapi","chalice","tornado"]});var io,ro,oo,ao,co=K(()=>{"use strict";io=[/\/routes?\/.*\.php$/i,/\/controllers?\/.*\.php$/i,/index\.php$/i,/server\.php$/i,/artisan$/i,/console$/i],ro=[/\/services?\/.*\.php$/i,/\/providers?\/.*\.php$/i,/\/middleware\/.*\.php$/i,/\/jobs?\/.*\.php$/i,/\/listeners?\/.*\.php$/i,/\/events?\/.*\.php$/i,/\/observers?\/.*\.php$/i,/\/console\/commands\/.*\.php$/i,/\/actions?\/.*\.php$/i,/\/traits?\/.*\.php$/i,/\/concerns?\/.*\.php$/i,/\/contracts?\/.*\.php$/i],oo=[/\/models?\/.*\.php$/i,/\/eloquent\/.*\.php$/i,/\/migrations?\/.*\.php$/i,/\/seeders?\/.*\.php$/i,/\/factories?\/.*\.php$/i,/\/repositories?\/.*\.php$/i,/\/resources?\/.*\.php$/i],ao=["laravel","symfony","slim","cakephp","codeigniter"]});import lo from"path";function Qt(i,e,t){let n=[],s="Unknown",r=0;t||(t=el(i,e));let{inDegree:o,outDegree:c}=t,a=(d,m,h,g)=>{for(let _ of d)if(_.test(i))return n.push(`${g}: ${_.source}`),s=m,r+=h,!0;return!1},l=!1;if(l||(l=a(Mr,"Entry",45,"Next.js entry")),l||(l=a(Wr,"Entry",40,"MCP handler")),l||(l=a(Ur,"Entry",40,"CLI command")),l||(l=a(Hs,"Data",45,"Data layer/Repository")),l||(l=a(Gr,"Data",35,"State management")),l||(l=a(Or,"Logic",40,"React component")),l||(l=a(Fr,"Logic",35,"Logic pattern")),l||(l=a(jr,"Logic",35,"Parser/AST")),l||(l=a(zr,"Logic",35,"Core module")),l||(l=a(Br,"Logic",30,"UI layer")),l||(l=a(Yr,"Types",35,"Type definition")),l||(l=a(Zr,"Entry",40,"Python Entry")),l||(l=a(to,"Data",40,"Python Data")),l||(l=a(eo,"Logic",35,"Python Logic")),l||(l=a(io,"Entry",40,"PHP Entry")),l||(l=a(oo,"Data",40,"PHP Data")),l||(l=a(ro,"Logic",35,"PHP Logic")),l||(l=a(qr,"Logic",35,"Hook/Context")),!l){for(let d of Hr)if(d.test(i)){n.push(`MCP utility: ${d.source}`),/schemas?/i.test(i)?s="Types":/resources?/i.test(i)?s="Data":s="Utility",r+=35,l=!0;break}}l||a(Jr,"Data",35,"Schema definition")&&(l=!0),l||(a(Hs,"Data",30,"Path matches data pattern")||a(Vr,"Utility",25,"Path matches utility pattern")||a(Dr,"Entry",30,"Path matches entry pattern"))&&(l=!0);for(let d of Kc)if(d.test(i)){n.push(`Test file: ${d.source}`),s="Test",r=50,l=!0;break}l||a(Xc,"Infrastructure",40,"Infrastructure")&&(l=!0);for(let d of Zc)d.test(i)&&(n.push(`Monorepo component: ${d.source}`),/\/apps\/[^/]+\/src\/pages\//i.test(i)&&(n.push("Monorepo App Entry"),s==="Unknown"&&(s="Entry"),r+=20),/\/packages\/[^/]+\/src\//i.test(i)&&(r+=10));let u=e.imports.getImportsForFile(i).map(d=>d.module_specifier.toLowerCase());for(let d of Kr)if(u.some(m=>m.includes(d))){n.push(`Imports JS data library: ${d}`),(s==="Unknown"||s==="Data")&&(s="Data",r+=25);break}for(let d of no)if(u.some(m=>m.includes(d))){n.push(`Imports Python framework: ${d}`),(s==="Unknown"||s==="Entry")&&(s="Entry",r+=20);break}for(let d of ao)if(u.some(m=>m.includes(d))){n.push(`Imports PHP framework: ${d}`),(s==="Unknown"||s==="Entry")&&(s="Entry",r+=20);break}for(let d of Qr)if(u.some(m=>m.includes(d))){n.push(`Imports JS framework: ${d}`),(s==="Unknown"||s==="Entry")&&(s="Entry",r+=20);break}if(o===0&&c>0&&(n.push("Entry point: nothing imports this file (in-degree=0)"),s==="Unknown"?(s="Entry",r+=30):s==="Entry"&&(r+=15)),o>5&&c<=2&&(n.push(`High reuse: ${o} files import this (candidate for Utility)`),s==="Unknown"?(s="Utility",r+=25):s==="Utility"&&(r+=10)),s==="Unknown"&&o>0&&c>0){let d=o/(o+c);d>.3&&d<.7&&(n.push(`Balanced traffic: in=${o}, out=${c} (likely Logic layer)`),s="Logic",r+=25)}return s==="Unknown"&&(n.push("No strong classification signals detected"),r=10),r=Math.min(r,100),{layer:s,confidence:r,signals:n}}function el(i,e){let t=e.imports.countDependents(i),n=e.imports.countByFile(i);return{inDegree:t,outDegree:n}}function Ze(i,e){let t=i.files.getAllPaths().map(h=>({path:h})),n=new Map,s={Entry:[],Logic:[],Data:[],Utility:[],Infrastructure:[],Test:[],Types:[],Unknown:[]};for(let h of t){let g=Qt(h.path,i);n.set(h.path,g),s[g.layer].push({path:h.path,classification:g})}let r={Entry:Xe(s.Entry,e),Logic:Xe(s.Logic,e),Data:Xe(s.Data,e),Utility:Xe(s.Utility,e),Infrastructure:Xe(s.Infrastructure,e),Test:Xe(s.Test,e),Types:Xe(s.Types,e),Unknown:Xe(s.Unknown,e)},o={};t.forEach(h=>{let g=lo.extname(h.path).toLowerCase();g&&(o[g]=(o[g]||0)+1)});let c={".ts":"TypeScript",".tsx":"Typescript (React)",".js":"JavaScript",".jsx":"JavaScript (React)",".py":"Python",".php":"PHP",".go":"Go",".rs":"Rust",".java":"Java",".cs":"C#",".rb":"Ruby",".vue":"Vue"},a={};Object.entries(o).forEach(([h,g])=>{let _=c[h];_&&(a[_]=(a[_]||0)+g)});let l=Object.entries(a).sort((h,g)=>g[1]-h[1]),p=l.length>0?l[0][0]:"Unknown",{pattern:u,patternConfidence:d,insights:m}=tl(r,t.length,i);return{pattern:u,patternConfidence:d,layers:r,insights:m,primaryStack:p}}function Xe(i,e){return i.sort((t,n)=>n.classification.confidence-t.classification.confidence),{count:i.length,topFiles:i.slice(0,5).map(t=>({path:lo.relative(e,t.path),confidence:t.classification.confidence,signals:t.classification.signals.slice(0,2)}))}}function tl(i,e,t){let n=[],s="Unknown",r=0,o=i.Entry.count/e*100,c=i.Logic.count/e*100,a=i.Data.count/e*100,l=i.Utility.count/e*100,p=i.Unknown.count/e*100;o>5&&c>10&&a>5&&p<40?(s="Layered",r=60+Math.min(30,(100-p)/3),n.push(`Clear layer separation: Entry (${o.toFixed(1)}%), Logic (${c.toFixed(1)}%), Data (${a.toFixed(1)}%)`)):l>20?(s="Modular",r=50+l/2,n.push(`High shared module usage: ${l.toFixed(1)}% utility files`)):p>60&&(s="Monolithic",r=40+p/4,n.push(`Limited architectural structure: ${p.toFixed(1)}% files with unclear layer assignment`));let u=t.configs.countByKind("Service");return u>3&&(s="Microservices",r=55+u*5,n.push(`Detected ${u} service definitions (likely microservices)`)),i.Entry.count===0&&n.push("\u26A0\uFE0F No clear entry points detected - consider adding route/controller files"),i.Data.count===0&&n.push("\u26A0\uFE0F No data layer detected - repository may not use traditional ORM patterns"),l>30&&n.push(`High utility concentration (${l.toFixed(1)}%) - good reusability`),{pattern:s,patternConfidence:Math.min(100,r),insights:n}}var Kc,Xc,Zc,Kt=K(()=>{"use strict";Xr();so();co();Kc=[/\.(test|spec)\.(ts|tsx|js|jsx)$/i,/tests?\.py$/i,/\/__tests__\//i,/\/tests?\//i,/\.e2e\.(ts|js)$/i,/\.integration\.(ts|js)$/i],Xc=[/Dockerfile/i,/docker-compose/i,/\.ya?ml$/i,/nginx\.conf/i,/\/infra\//i,/\/deploy\//i,/\/k8s\//i,/\/kubernetes\//i,/\/terraform\//i,/\/ansible\//i,/package\.json/i,/tsconfig.*\.json/i,/\.env/i],Zc=[/\/apps\/[^/]+\//i,/\/services\/[^/]+\//i,/\/packages\/[^/]+\//i,/\/backends\/[^/]+\//i,/\/backends_python\/[^/]+\//i]});var po={};ms(po,{HologramService:()=>ge});var Te,ge,Rt=K(()=>{"use strict";z();Kt();W();Te=S.child({module:"hologram"}),ge=class{repos;repoPath;constructor(e){this.repoPath=e,this.repos=C.getInstance(e)}updateTopography(e){Te.debug({repoPath:this.repoPath},"Updating topography snapshot");let t=Object.values(e.layers).reduce((r,o)=>r+o.count,0),n={};for(let[r,o]of Object.entries(e.layers)){let c=t>0?o.count/t*100:0;n[r]={count:o.count,percentage:Math.round(c*10)/10,topFiles:o.topFiles.slice(0,3).map(a=>({path:a.path,confidence:a.confidence}))}}let s={pattern:e.pattern,patternConfidence:e.patternConfidence,layerDistribution:n,insights:e.insights,updatedAt:Date.now()};this.repos.hologram.upsertSection("topography",JSON.stringify(s)),Te.info({repoPath:this.repoPath},"Topography snapshot updated")}refreshTopography(){let e=Ze(this.repos,this.repoPath);this.updateTopography(e)}updateGravityZones(e){Te.debug({repoPath:this.repoPath,count:e.length},"Updating gravity zones");let t={hotspots:e.slice(0,50),updatedAt:Date.now()};this.repos.hologram.upsertSection("gravity",JSON.stringify(t)),Te.info({repoPath:this.repoPath},"Gravity zones updated")}updateGhostBridges(e){Te.debug({repoPath:this.repoPath,count:e.length},"Updating ghost bridges");let t={bridges:e.slice(0,20),updatedAt:Date.now()};this.repos.hologram.upsertSection("ghosts",JSON.stringify(t)),Te.info({repoPath:this.repoPath},"Ghost bridges updated")}getSnapshot(){let e=this.repos.hologram.getAllSections(),t={metadata:{repoPath:this.repoPath,lastUpdated:Date.now(),version:"1.0.0"}};for(let n of e)try{let s=JSON.parse(n.data);switch(n.section){case"topography":t.topography=s;break;case"gravity":t.gravity=s;break;case"ghosts":t.ghosts=s;break}}catch(s){Te.error({repoPath:this.repoPath,section:n.section,error:s},"Failed to parse hologram section")}return t}getSection(e){let t=this.repos.hologram.getSection(e);if(!t)return null;try{return JSON.parse(t.data)}catch(n){return Te.error({repoPath:this.repoPath,section:e,error:n},"Failed to parse section"),null}}computeGravityZones(){Te.debug({repoPath:this.repoPath},"Computing gravity zones from import graph");let e=this.repos.files.getAllPaths(),t=new Map;for(let s of e){let r=Qt(s,this.repos);if(r.layer==="Test"||r.layer==="Unknown")continue;let o=this.repos.exports.findByFile(s);if(o.length===0)continue;let c=this.repos.imports.countDependents(s),a=this.repos.imports.countByFile(s),l=c*2+a;if(l>0){let p=o.find(d=>d.kind!=="TsTypeAliasDeclaration"&&d.kind!=="TsInterfaceDeclaration")||o[0],u=`${s}::${p.name}`;t.set(u,{symbol:p.name,filePath:s,inDegree:c,outDegree:a,gravity:l})}}let n=Array.from(t.values()).sort((s,r)=>r.gravity-s.gravity).slice(0,50);return Te.info({repoPath:this.repoPath,count:n.length},"Gravity zones computed"),n}isInitialized(){return this.repos.hologram.getAllSections().length>0}clear(){this.repos.hologram.deleteAll(),Te.info({repoPath:this.repoPath},"Hologram cleared")}}});var Qo={};ms(Qo,{GraphExporterService:()=>Xs});var Vo,Xs,Ko=K(()=>{"use strict";z();W();Vo=S.child({module:"graph-exporter"}),Xs=class{constructor(e){this.repoPath=e;this.repos=C.getInstance(e)}repos;async generateGraph(e={}){let{includeCompleted:t=!0,format:n="mermaid",focusMissionId:s,depth:r=10,limit:o=100}=e;Vo.info({focusMissionId:s,depth:r,format:n,includeCompleted:t},"Generating mission graph");let c=this.buildMissionTree(s,t,r,o);return n==="json"?JSON.stringify(c,null,2):this.generateMermaidDiagram(c)}buildMissionTree(e,t,n,s){let r;if(e){let a=this.repos.missions.findById(e);r=a?[a]:[]}else r=this.repos.missions.findAll().filter(l=>!l.parent_id),t||(r=r.filter(l=>l.status!=="completed"));let o=0,c=[];for(let a of r){if(o>=s)break;let l=this.buildNode(a,t,n,1,{count:o,max:s});l&&(c.push(l),o+=this.countNodes(l))}return c}buildNode(e,t,n,s,r){if(s>n||r.count>=r.max)return null;let o;if(e.strategy_graph)try{let p=JSON.parse(e.strategy_graph);o=this.parseStrategySteps(p)}catch(p){Vo.debug({missionId:e.id,err:p},"Failed to parse strategy graph")}let c={id:e.id,name:e.name,status:e.status,goal:e.goal,branch:e.git_branch||void 0,children:[],steps:o},a=this.repos.missions.findByParentId(e.id),l=t?a:a.filter(p=>p.status!=="completed");for(let p of l){if(r.count>=r.max)break;let u=this.buildNode(p,t,n,s+1,r);u&&(c.children.push(u),r.count++)}return c}parseStrategySteps(e){let t=[];return Array.isArray(e)?e.map((n,s)=>({id:n.id||`step-${s}`,description:n.description||n.content||n.name||`Step ${s+1}`,status:n.status,dependencies:n.dependencies||n.deps})):e.steps&&Array.isArray(e.steps)?this.parseStrategySteps(e.steps):typeof e=="object"?Object.entries(e).map(([n,s])=>({id:n,description:s.description||s.content||n,status:s.status,dependencies:s.dependencies||s.deps})):t}countNodes(e){let t=1;for(let n of e.children)t+=this.countNodes(n);return t}generateMermaidDiagram(e){let t=["graph TD"];for(let n of e)this.addMermaidNode(n,t);return t.join(`
434
- `)}addMermaidNode(e,t,n){let s=`M${e.id}`,r=this.getStatusIcon(e.status),o=this.getStatusClass(e.status),c=`${r} ${e.name}`;if(t.push(` ${s}["${this.escapeMermaid(c)}"]:::${o}`),n&&t.push(` ${n} --> ${s}`),e.steps&&e.steps.length>0&&e.steps.length<=10)for(let a of e.steps){let l=`S${e.id}_${a.id}`,p=a.status||"pending",u=this.getStatusIcon(p),d=this.getStatusClass(p),m=`${u} ${a.description}`;if(t.push(` ${l}["${this.escapeMermaid(m)}"]:::${d}`),t.push(` ${s} -.-> ${l}`),a.dependencies&&a.dependencies.length>0)for(let h of a.dependencies){let g=`S${e.id}_${h}`;t.push(` ${g} --> ${l}`)}}for(let a of e.children)this.addMermaidNode(a,t,s);n||(t.push(""),t.push(" classDef completed fill:#90EE90,stroke:#2E8B57,stroke-width:2px"),t.push(" classDef inProgress fill:#87CEEB,stroke:#4682B4,stroke-width:2px"),t.push(" classDef planned fill:#FFE4B5,stroke:#DAA520,stroke-width:2px"),t.push(" classDef suspended fill:#D3D3D3,stroke:#808080,stroke-width:2px"),t.push(" classDef failed fill:#FFB6C1,stroke:#DC143C,stroke-width:2px"),t.push(" classDef pending fill:#FFF8DC,stroke:#B8860B,stroke-width:1px"))}getStatusIcon(e){return{completed:"\u2713","in-progress":"\u26A1",planned:"\u{1F4CB}",suspended:"\u23F8",failed:"\u2717",pending:"\u25CB",verifying:"\u{1F50D}"}[e]||"\u25CB"}getStatusClass(e){return{completed:"completed","in-progress":"inProgress",planned:"planned",suspended:"suspended",failed:"failed",pending:"pending",verifying:"inProgress"}[e]||"pending"}escapeMermaid(e){return e.replace(/"/g,"#quot;").replace(/\n/g," ").replace(/\[/g,"#91;").replace(/]/g,"#93;").slice(0,100)}}});import"dotenv/config";import{Cli as ep}from"clerc";W();import ti from"fs";import wa from"path";import ni from"js-yaml";var si={ignore:[],include:[],maxDepth:10},xa=[{name:".liquid-shadow.yaml",parse:i=>ni.load(i)??{}},{name:".liquid-shadow.yml",parse:i=>ni.load(i)??{}},{name:".ls.json",parse:i=>JSON.parse(i)},{name:".liquid-shadow.json",parse:i=>JSON.parse(i)},{name:".ls.rc",parse:i=>JSON.parse(i)},{name:".liquid-shadow.rc",parse:i=>JSON.parse(i)}];function Oe(i){for(let{name:e,parse:t}of xa){let n=wa.join(i,e);if(ti.existsSync(n))try{let s=ti.readFileSync(n,"utf8"),r=t(s);return S.debug({repoPath:i,configFile:e},"Loaded repository configuration"),{...si,...r}}catch(s){S.error({repoPath:i,file:e,err:s},"Failed to parse configuration file")}}return si}function hs(i,e){let n=Oe(i).cli??{};return{dir:e.dir??n.dir??".",level:e.level??n.level,deep:e.deep!==void 0?e.deep:n.deep}}z();import Qa from"path";var re=ba(Pi(),1);import*as $e from"@clack/prompts";var q={red:re.default.red,green:re.default.green,yellow:re.default.yellow,blue:re.default.blue,magenta:re.default.magenta,cyan:re.default.cyan,white:re.default.white,gray:re.default.gray,bold:re.default.bold,dim:re.default.dim,italic:re.default.italic,underline:re.default.underline,inverse:re.default.inverse},Je=i=>i.replace(/\x1b\[[0-9;]*m/g,""),se=i=>$e.intro(re.default.bgCyan(re.default.black(re.default.bold(` ${i} `)))),Ee=i=>$e.outro(re.default.cyan(i)),X=(i,e,t="blue")=>{let n=e.split(`
435
- `),s=Je(i),r=Math.max(s.length+4,...n.map(a=>Je(a).length))+2,o="\u2500".repeat(r),c=q[t];console.log(c(`\u250C${o}\u2510`)),console.log(c("\u2502 ")+q.bold(i).padEnd(r+(i.length-s.length)-1)+c("\u2502")),console.log(c(`\u251C${o}\u2524`)),n.forEach(a=>{let l=Je(a),p=" ".repeat(r-l.length-1);console.log(c("\u2502 ")+a+p+c("\u2502"))}),console.log(c(`\u2514${o}\u2518`))},Tn=(i,e)=>{let t=i.map((s,r)=>Math.max(Je(s).length,...e.map(o=>Je(o[r]||"").length))+2),n=q.cyan("\u2502");console.log(n),console.log(n+" "+i.map((s,r)=>q.bold(q.cyan(s)).padEnd(t[r]+(s.length-Je(s).length))).join(q.gray(" "))+" "),e.forEach(s=>{console.log(n+" "+s.map((r,o)=>(r||"").padEnd(t[o]+(r.length-Je(r).length))).join(q.gray(" "))+" ")}),console.log(n)},Mi=(i,e="\u2022")=>{i.forEach(t=>{console.log(`${q.cyan("\u2502")} ${q.cyan(e)} ${t}`)})},Rn=(i,e=40)=>{let t=Math.max(...i.map(s=>s.value)),n=Math.max(...i.map(s=>Je(s.label).length));console.log(q.cyan("\u2502")),i.forEach(s=>{let r=Math.round(s.value/t*e),o="\u2588".repeat(r)+q.dim("\u2591".repeat(e-r)),c=s.color?q[s.color]:q.cyan,a=s.label.padEnd(n);console.log(`${q.cyan("\u2502")} ${q.bold(a)} ${c(o)} ${q.white(s.value.toString())}`)}),console.log(q.cyan("\u2502"))},xs=(i,e="")=>{i.forEach((t,n)=>{let s=n===i.length-1,r=s?"\u2514\u2500\u2500 ":"\u251C\u2500\u2500 ",o=t.color?q[t.color]:t.children?q.blue:q.white,c=t.info?` ${q.gray(`(${t.info})`)}`:"";if(console.log(`${q.cyan("\u2502")} ${e}${q.gray(r)}${o(t.name)}${c}`),t.children&&t.children.length>0){let a=e+(s?" ":"\u2502 ");xs(t.children,a)}})},be=()=>$e.spinner();async function kn(i,e,t){if(e.length===0)return;let n=await $e.select({message:i,options:e.map(s=>({value:s.value,label:s.label,...s.hint!=null&&{hint:s.hint}})),...t?.limit!=null&&{maxItems:t.limit}});if(!$e.isCancel(n))return n}var Va=i=>{console.error("");let e=i instanceof Error?i.message:String(i);console.error(` ${q.red("\u2716")} ${q.bold("Error: ")} ${e}`),i instanceof Error&&"cause"in i&&console.error(` ${q.dim("Cause: "+String(i.cause))}`),console.error(""),process.exit(1)},B=async i=>{try{await i()}catch(e){Va(e)}},f=q;rt();qe();W();async function J(i){S.debug("Performing graceful shutdown...");try{await Mt()}catch(e){S.error({err:e},"Error shutting down worker pool")}try{i&&ln(i)}catch(e){S.error({err:e},"Error closing database")}S.debug("Shutdown complete")}async function Di(i){let e=Qa.resolve(i);try{await B(async()=>{se("\u{1F311} Liquid Shadow: Scouting Report");let t=C.getInstance(e),n=Oe(e),s=n.ignore&&n.ignore.length>0,r=t.files.getCount(),o=t.exports.getCount(),c=t.files.getLatestScanTime(),a=t.exports.getKindDistribution(5);X("Intelligence Summary",`${f.bold("\u{1F4E1} Topology")}: ${f.cyan(r.toString())} files mapped
436
- ${f.bold("\u{1F9E9} Symbols")}: ${f.cyan(o.toString())} exports detected
437
- ${f.bold("\u{1F552} Last Sync")}: ${c?f.yellow(new Date(c).toLocaleString()):f.red("Never")}
438
- ${f.bold("\u2699\uFE0F Config")}: ${s?f.green("Custom Intelligence"):f.gray("Standard Sieve")}`,"blue"),a.length>0&&(console.log(""),console.log(` ${f.bold("Symbol Distribution (Top 5)")}`),Rn(a.map(l=>({label:l.kind,value:l.c,color:"cyan"})),30)),console.log(""),console.log(` ${f.dim("Pro-tip: Try")} ${f.bold(f.cyan("liquid-shadow dashboard"))} ${f.dim("for the full tactical view.")}`),console.log(""),Ee("Scouting complete.")})}finally{await J(e)}}z();qe();import ji from"path";var vs=class{startTime=Date.now();indexRuns=0;indexCacheHits=0;lastIndexDurationMs=null;lastIndexCompletedAt=null;lastRunPhases=[];queryCount=0;lastQueryLatencyMs=null;recentLatencySumMs=0;recentLatencyCount=0;recentLatencies=[];searchHistoryFailureCount=0;recordIndexStart(){this.indexRuns+=1}recordIndexCacheHit(){this.indexCacheHits+=1}recordIndexEnd(e){this.lastIndexDurationMs=e,this.lastIndexCompletedAt=Date.now()}recordIndexPhase(e,t){this.lastRunPhases.push({phase:e,durationMs:t})}clearIndexPhases(){this.lastRunPhases=[]}recordQueryStart(){let e=performance.now();return()=>{this.queryCount+=1;let t=performance.now()-e;if(this.lastQueryLatencyMs=t,this.recentLatencies.push(t),this.recentLatencies.length>100){let n=this.recentLatencies.shift();this.recentLatencySumMs=this.recentLatencySumMs-n+t}else this.recentLatencySumMs+=t,this.recentLatencyCount=this.recentLatencies.length}}recordSearchHistoryFailure(){this.searchHistoryFailureCount+=1}getSnapshot(){let e=this.recentLatencies.length,t=e>0?this.recentLatencies.reduce((n,s)=>n+s,0)/e:null;return{index:{runs:this.indexRuns,cacheHits:this.indexCacheHits,lastDurationMs:this.lastIndexDurationMs,lastCompletedAt:this.lastIndexCompletedAt,lastRunPhases:[...this.lastRunPhases]},query:{count:this.queryCount,lastLatencyMs:this.lastQueryLatencyMs,recentLatencySumMs:this.recentLatencySumMs,recentLatencyCount:e,avgLatencyMs:t,searchHistoryFailures:this.searchHistoryFailureCount},uptimeMs:Date.now()-this.startTime}}reset(){this.indexRuns=0,this.indexCacheHits=0,this.lastIndexDurationMs=null,this.lastIndexCompletedAt=null,this.lastRunPhases=[],this.queryCount=0,this.lastQueryLatencyMs=null,this.recentLatencySumMs=0,this.recentLatencyCount=0,this.recentLatencies=[],this.searchHistoryFailureCount=0}},Ye=new vs;function Oi(){Ye.recordIndexStart()}function Ts(){Ye.recordIndexCacheHit()}function Fi(i){Ye.recordIndexEnd(i)}function Wt(i,e){Ye.recordIndexPhase(i,e)}function Wi(){Ye.clearIndexPhases()}function In(){return Ye.recordQueryStart()}function yt(){Ye.recordSearchHistoryFailure()}function Cn(){return Ye.getSnapshot()}W();import ue from"fs";import ot from"path";var bt=S.child({module:"git-hooks"}),Ln={"post-merge":`#!/bin/sh
476
+ `,e,r)}deleteSection(e){this.run("DELETE FROM hologram_snapshot WHERE section = ?",e)}deleteAll(){this.run("DELETE FROM hologram_snapshot")}hasSection(e){return(this.get("SELECT COUNT(*) as count FROM hologram_snapshot WHERE section = ?",e)?.count??0)>0}}});var L,X=be(()=>{"use strict";dt();Qf();eh();rh();gc();hh();gh();yh();vh();_h();L=class{static repositoryCache=new Map;static getInstance(e){let r=this.repositoryCache.get(e);if(r){let o=We(e),s=r.files?.database,a=!r.intentLogs||!r.searchHistory||!r.missions||!r.hologram;if(s===o&&o.open&&!a)return r;this.repositoryCache.delete(e)}let i=We(e),t={files:new no(i),exports:new ro(i),imports:new io(i),missions:new Xr(i),intentLogs:new po(i),configs:new mo(i),content:new fo(i),searchHistory:new ho(i),hologram:new go(i)};return this.repositoryCache.set(e,t),t}static closeInstance(e){this.repositoryCache.delete(e),Yr(e)}static clearCache(e){this.repositoryCache.delete(e)}}});var $h=hx((FT,_c)=>{var bo=process||{},xh=bo.argv||[],yo=bo.env||{},Jx=!(yo.NO_COLOR||xh.includes("--no-color"))&&(!!yo.FORCE_COLOR||xh.includes("--color")||bo.platform==="win32"||(bo.stdout||{}).isTTY&&yo.TERM!=="dumb"||!!yo.CI),qx=(n,e,r=n)=>i=>{let t=""+i,o=t.indexOf(e,n.length);return~o?n+Vx(t,e,r,o)+e:n+t+e},Vx=(n,e,r,i)=>{let t="",o=0;do t+=n.substring(o,i)+r,o=i+e.length,i=n.indexOf(e,o);while(~i);return t+n.substring(o)},Sh=(n=Jx)=>{let e=n?qx:()=>String;return{isColorSupported:n,reset:e("\x1B[0m","\x1B[0m"),bold:e("\x1B[1m","\x1B[22m","\x1B[22m\x1B[1m"),dim:e("\x1B[2m","\x1B[22m","\x1B[22m\x1B[2m"),italic:e("\x1B[3m","\x1B[23m"),underline:e("\x1B[4m","\x1B[24m"),inverse:e("\x1B[7m","\x1B[27m"),hidden:e("\x1B[8m","\x1B[28m"),strikethrough:e("\x1B[9m","\x1B[29m"),black:e("\x1B[30m","\x1B[39m"),red:e("\x1B[31m","\x1B[39m"),green:e("\x1B[32m","\x1B[39m"),yellow:e("\x1B[33m","\x1B[39m"),blue:e("\x1B[34m","\x1B[39m"),magenta:e("\x1B[35m","\x1B[39m"),cyan:e("\x1B[36m","\x1B[39m"),white:e("\x1B[37m","\x1B[39m"),gray:e("\x1B[90m","\x1B[39m"),bgBlack:e("\x1B[40m","\x1B[49m"),bgRed:e("\x1B[41m","\x1B[49m"),bgGreen:e("\x1B[42m","\x1B[49m"),bgYellow:e("\x1B[43m","\x1B[49m"),bgBlue:e("\x1B[44m","\x1B[49m"),bgMagenta:e("\x1B[45m","\x1B[49m"),bgCyan:e("\x1B[46m","\x1B[49m"),bgWhite:e("\x1B[47m","\x1B[49m"),blackBright:e("\x1B[90m","\x1B[39m"),redBright:e("\x1B[91m","\x1B[39m"),greenBright:e("\x1B[92m","\x1B[39m"),yellowBright:e("\x1B[93m","\x1B[39m"),blueBright:e("\x1B[94m","\x1B[39m"),magentaBright:e("\x1B[95m","\x1B[39m"),cyanBright:e("\x1B[96m","\x1B[39m"),whiteBright:e("\x1B[97m","\x1B[39m"),bgBlackBright:e("\x1B[100m","\x1B[49m"),bgRedBright:e("\x1B[101m","\x1B[49m"),bgGreenBright:e("\x1B[102m","\x1B[49m"),bgYellowBright:e("\x1B[103m","\x1B[49m"),bgBlueBright:e("\x1B[104m","\x1B[49m"),bgMagentaBright:e("\x1B[105m","\x1B[49m"),bgCyanBright:e("\x1B[106m","\x1B[49m"),bgWhiteBright:e("\x1B[107m","\x1B[49m")}};_c.exports=Sh();_c.exports.createColors=Sh});var Ao,Oo,pg,Mo,mg,fg,hg,gg,yg,bg,vg,_g,xg,Sg,ui,jo,$g,wg,Oc=be(()=>{"use strict";Ao=[/\/pages\/(?!_)[^/]+\.(tsx?|jsx?)$/i,/\/pages\/.*\/index\.(tsx?|jsx?)$/i,/\/app\/.*\/page\.(tsx?|jsx?)$/i,/\/app\/.*\/layout\.(tsx?|jsx?)$/i,/\/app\/api\/.*\/route\.(ts|js)$/i,/\/pages\/api\/.*\.(ts|js)$/i],Oo=[/\.(routes?|router|controller|handler|endpoint|api)\.(ts|js|tsx|jsx)$/i,/\/routes?\//i,/\/controllers?\//i,/index\.(ts|js|tsx|jsx)$/i],pg=[/\/components?\/.*\.(tsx|jsx)$/i,/\/features?\/.*\.(tsx|jsx)$/i,/\/views?\/.*\.(tsx|jsx)$/i,/\/screens?\/.*\.(tsx|jsx)$/i,/\/widgets?\/.*\.(tsx|jsx)$/i],Mo=[/\.(service|usecase|interactor|manager|facade)\.(ts|js)$/i,/\/services?\//i,/\/usecases?\//i,/\/domain\//i,/\/business\//i],mg=[/\/mcp\/handlers?\/[^/]+\.(ts|js)$/i,/\/mcp\/tools?\/[^/]+\.(ts|js)$/i,/\/mcp\/server\.(ts|js)$/i,/\/mcp\/index\.(ts|js)$/i],fg=[/\/mcp\/utils?\.(ts|js)$/i,/\/mcp\/schemas?\.(ts|js)$/i,/\/mcp\/resources?\.(ts|js)$/i],hg=[/\/commands?\/[^/]+\.(ts|js|py|php)$/i,/\/cli\/[^/]+\.(ts|js|py|php)$/i,/\/bin\/[^/]+\.(ts|js|py|php)$/i,/cli\.(ts|js|py|php)$/i,/main\.(ts|js|py|php)$/i],gg=[/\/parser\/[^/]+\.(ts|js)$/i,/\/ast\/[^/]+\.(ts|js)$/i,/\.(parser|visitor|walker|transformer)\.(ts|js)$/i],yg=[/\/core\/[^/]+\.(ts|js)$/i,/\/engine\/[^/]+\.(ts|js)$/i,/\/processing\/[^/]+\.(ts|js)$/i,/\/analysis\/[^/]+\.(ts|js)$/i,/\.(analyzer|processor|scanner|indexer|resolver)\.(ts|js)$/i],bg=[/\/ui\/[^/]+\.(ts|js|tsx|jsx)$/i,/\/display\/[^/]+\.(ts|js)$/i,/\/output\/[^/]+\.(ts|js)$/i,/\.(formatter|renderer|printer)\.(ts|js)$/i],vg=[/\/stores?\//i,/\/slices?\//i,/\/reducers?\//i,/\/atoms?\//i,/\/selectors?\//i,/\.(store|slice|reducer|atom|selector)\.(ts|js)$/i,/.*Slice\.(ts|js)$/i,/.*Store\.(ts|js)$/i],_g=[/\/hooks?\//i,/\/contexts?\//i,/\/providers?\//i,/use[A-Z].*\.(ts|js)$/,/.*Context\.(ts|tsx|js|jsx)$/i,/.*Provider\.(ts|tsx|js|jsx)$/i],xg=[/\/schemas?\//i,/\/validations?\//i,/\.(schema|validation|validator)\.(ts|js)$/i],Sg=[/\.(types?|dto|interface|interfaces)\.(ts|js)$/i,/types\.ts$/i,/\/types?\//i,/\/dtos?\//i,/\/interfaces?\//i,/\/contracts?\//i,/\.d\.ts$/i],ui=[/\.(model|entity|schema|repository|repo|dao|migration|query|mutation|resolver|connection|db)\.(ts|js)$/i,/queries\.(ts|js)$/i,/mutations\.(ts|js)$/i,/resolvers\.(ts|js)$/i,/connection\.(ts|js)$/i,/\/models?\//i,/\/entities?\//i,/\/repositories?\//i,/\/repos?\//i,/\/data\//i,/\/database\//i,/\/prisma\//i,/\/drizzle\//i,/\/api\/.*client\.(ts|js|tsx)$/i,/(^|\/)[A-Z0-9_-]*API\.(tsx?|js|jsx)$/],jo=[/\.(util|utils|helper|helpers|lib|common|shared)\.(ts|js)$/i,/\/utils?\//i,/\/helpers?\//i,/\/lib\//i,/\/common\//i,/\/shared\//i],$g=["express","fastify","koa","hapi","restify","next","nuxt","gatsby","remix","@nestjs/common","@nestjs/core","react-router","vue-router","@angular/router","zod","joi","yup","valibot","superstruct"],wg=["prisma","@prisma/client","typeorm","sequelize","mongoose","drizzle-orm","knex","pg","mysql","sqlite","better-sqlite3","mongodb","redis","ioredis","zustand","redux","recoil","jotai","mobx"]});var Fo,Eg,Uo,Ig,Mc=be(()=>{"use strict";Fo=[/urls\.py$/i,/wsgi\.py$/i,/asgi\.py$/i,/manage\.py$/i,/main\.py$/i,/app\.py$/i,/\/endpoints?\/.*\.py$/i,/\/commands?\/.*\.py$/i],Eg=[/views\.py$/i,/forms\.py$/i,/serializers\.py$/i,/admin\.py$/i,/apps\.py$/i,/tasks\.py$/i,/middlewares?\.py$/i,/signals?\.py$/i,/context_processors\.py$/i],Uo=[/models\.py$/i,/\/models\/.*\.py$/i,/\/migrations\/.*\.py$/i,/schema\.py$/i,/documents\.py$/i],Ig=["django.urls","django.http","flask","fastapi","chalice","tornado"]});var Zo,Pg,Ho,Rg,jc=be(()=>{"use strict";Zo=[/\/routes?\/.*\.php$/i,/\/controllers?\/.*\.php$/i,/index\.php$/i,/server\.php$/i,/artisan$/i,/console$/i],Pg=[/\/services?\/.*\.php$/i,/\/providers?\/.*\.php$/i,/\/middleware\/.*\.php$/i,/\/jobs?\/.*\.php$/i,/\/listeners?\/.*\.php$/i,/\/events?\/.*\.php$/i,/\/observers?\/.*\.php$/i,/\/console\/commands\/.*\.php$/i,/\/actions?\/.*\.php$/i,/\/traits?\/.*\.php$/i,/\/concerns?\/.*\.php$/i,/\/contracts?\/.*\.php$/i],Ho=[/\/models?\/.*\.php$/i,/\/eloquent\/.*\.php$/i,/\/migrations?\/.*\.php$/i,/\/seeders?\/.*\.php$/i,/\/factories?\/.*\.php$/i,/\/repositories?\/.*\.php$/i,/\/resources?\/.*\.php$/i],Rg=["laravel","symfony","slim","cakephp","codeigniter"]});import Ng from"path";function Yt(n,e,r){let i=[],t="Unknown",o=0;r||(r=LS(n,e));let{inDegree:s,outDegree:a}=r,c=(p,f,m,h)=>{for(let v of p)if(v.test(n))return i.push(`${h}: ${v.source}`),t=f,o+=m,!0;return!1},l=!1;if(l||(l=c(Ao,"Entry",45,"Next.js entry")),l||(l=c(mg,"Entry",40,"MCP handler")),l||(l=c(hg,"Entry",40,"CLI command")),l||(l=c(ui,"Data",45,"Data layer/Repository")),l||(l=c(vg,"Data",35,"State management")),l||(l=c(pg,"Logic",40,"React component")),l||(l=c(Mo,"Logic",35,"Logic pattern")),l||(l=c(gg,"Logic",35,"Parser/AST")),l||(l=c(yg,"Logic",35,"Core module")),l||(l=c(bg,"Logic",30,"UI layer")),l||(l=c(Sg,"Types",35,"Type definition")),l||(l=c(Fo,"Entry",40,"Python Entry")),l||(l=c(Uo,"Data",40,"Python Data")),l||(l=c(Eg,"Logic",35,"Python Logic")),l||(l=c(Zo,"Entry",40,"PHP Entry")),l||(l=c(Ho,"Data",40,"PHP Data")),l||(l=c(Pg,"Logic",35,"PHP Logic")),l||(l=c(_g,"Logic",35,"Hook/Context")),!l){for(let p of fg)if(p.test(n)){i.push(`MCP utility: ${p.source}`),/schemas?/i.test(n)?t="Types":/resources?/i.test(n)?t="Data":t="Utility",o+=35,l=!0;break}}l||c(xg,"Data",35,"Schema definition")&&(l=!0),l||(c(ui,"Data",30,"Path matches data pattern")||c(jo,"Utility",25,"Path matches utility pattern")||c(Oo,"Entry",30,"Path matches entry pattern"))&&(l=!0);for(let p of Fc)if(p.test(n)){i.push(`Test file: ${p.source}`),t="Test",o=50,l=!0;break}l||c(Uc,"Infrastructure",40,"Infrastructure")&&(l=!0);for(let p of DS)p.test(n)&&(i.push(`Monorepo component: ${p.source}`),/\/apps\/[^/]+\/src\/pages\//i.test(n)&&(i.push("Monorepo App Entry"),t==="Unknown"&&(t="Entry"),o+=20),/\/packages\/[^/]+\/src\//i.test(n)&&(o+=10));let d=e.imports.getImportsForFile(n).map(p=>p.module_specifier.toLowerCase());for(let p of wg)if(d.some(f=>f.includes(p))){i.push(`Imports JS data library: ${p}`),(t==="Unknown"||t==="Data")&&(t="Data",o+=25);break}for(let p of Ig)if(d.some(f=>f.includes(p))){i.push(`Imports Python framework: ${p}`),(t==="Unknown"||t==="Entry")&&(t="Entry",o+=20);break}for(let p of Rg)if(d.some(f=>f.includes(p))){i.push(`Imports PHP framework: ${p}`),(t==="Unknown"||t==="Entry")&&(t="Entry",o+=20);break}for(let p of $g)if(d.some(f=>f.includes(p))){i.push(`Imports JS framework: ${p}`),(t==="Unknown"||t==="Entry")&&(t="Entry",o+=20);break}if(s===0&&a>0&&(i.push("Entry point: nothing imports this file (in-degree=0)"),t==="Unknown"?(t="Entry",o+=30):t==="Entry"&&(o+=15)),s>5&&a<=2&&(i.push(`High reuse: ${s} files import this (candidate for Utility)`),t==="Unknown"?(t="Utility",o+=25):t==="Utility"&&(o+=10)),t==="Unknown"&&s>0&&a>0){let p=s/(s+a);p>.3&&p<.7&&(i.push(`Balanced traffic: in=${s}, out=${a} (likely Logic layer)`),t="Logic",o+=25)}return t==="Unknown"&&(i.push("No strong classification signals detected"),o=10),o=Math.min(o,100),{layer:t,confidence:o,signals:i}}function LS(n,e){let r=e.imports.countDependents(n),i=e.imports.countByFile(n);return{inDegree:r,outDegree:i}}function Ge(n,e){let r=n.files.getAllPaths().map(m=>({path:m})),i=new Map,t={Entry:[],Logic:[],Data:[],Utility:[],Infrastructure:[],Test:[],Types:[],Unknown:[]};for(let m of r){let h=Yt(m.path,n);i.set(m.path,h),t[h.layer].push({path:m.path,classification:h})}let o={Entry:Kt(t.Entry,e),Logic:Kt(t.Logic,e),Data:Kt(t.Data,e),Utility:Kt(t.Utility,e),Infrastructure:Kt(t.Infrastructure,e),Test:Kt(t.Test,e),Types:Kt(t.Types,e),Unknown:Kt(t.Unknown,e)},s={};r.forEach(m=>{let h=Ng.extname(m.path).toLowerCase();h&&(s[h]=(s[h]||0)+1)});let a={".ts":"TypeScript",".tsx":"Typescript (React)",".js":"JavaScript",".jsx":"JavaScript (React)",".py":"Python",".php":"PHP",".go":"Go",".rs":"Rust",".java":"Java",".cs":"C#",".rb":"Ruby",".vue":"Vue"},c={};Object.entries(s).forEach(([m,h])=>{let v=a[m];v&&(c[v]=(c[v]||0)+h)});let l=Object.entries(c).sort((m,h)=>h[1]-m[1]),u=l.length>0?l[0][0]:"Unknown",{pattern:d,patternConfidence:p,insights:f}=AS(o,r.length,n);return{pattern:d,patternConfidence:p,layers:o,insights:f,primaryStack:u}}function Kt(n,e){return n.sort((r,i)=>i.classification.confidence-r.classification.confidence),{count:n.length,topFiles:n.slice(0,5).map(r=>({path:Ng.relative(e,r.path),confidence:r.classification.confidence,signals:r.classification.signals.slice(0,2)}))}}function AS(n,e,r){let i=[],t="Unknown",o=0,s=n.Entry.count/e*100,a=n.Logic.count/e*100,c=n.Data.count/e*100,l=n.Utility.count/e*100,u=n.Unknown.count/e*100;s>5&&a>10&&c>5&&u<40?(t="Layered",o=60+Math.min(30,(100-u)/3),i.push(`Clear layer separation: Entry (${s.toFixed(1)}%), Logic (${a.toFixed(1)}%), Data (${c.toFixed(1)}%)`)):l>20?(t="Modular",o=50+l/2,i.push(`High shared module usage: ${l.toFixed(1)}% utility files`)):u>60&&(t="Monolithic",o=40+u/4,i.push(`Limited architectural structure: ${u.toFixed(1)}% files with unclear layer assignment`));let d=r.configs.countByKind("Service");return d>3&&(t="Microservices",o=55+d*5,i.push(`Detected ${d} service definitions (likely microservices)`)),n.Entry.count===0&&i.push("\u26A0\uFE0F No clear entry points detected - consider adding route/controller files"),n.Data.count===0&&i.push("\u26A0\uFE0F No data layer detected - repository may not use traditional ORM patterns"),l>30&&i.push(`High utility concentration (${l.toFixed(1)}%) - good reusability`),{pattern:t,patternConfidence:Math.min(100,o),insights:i}}var Fc,Uc,DS,ht=be(()=>{"use strict";Oc();Mc();jc();Fc=[/\.(test|spec)\.(ts|tsx|js|jsx)$/i,/tests?\.py$/i,/\/__tests__\//i,/\/tests?\//i,/\.e2e\.(ts|js)$/i,/\.integration\.(ts|js)$/i],Uc=[/Dockerfile/i,/docker-compose/i,/\.ya?ml$/i,/nginx\.conf/i,/\/infra\//i,/\/deploy\//i,/\/k8s\//i,/\/kubernetes\//i,/\/terraform\//i,/\/ansible\//i,/package\.json/i,/tsconfig.*\.json/i,/\.env/i],DS=[/\/apps\/[^/]+\//i,/\/services\/[^/]+\//i,/\/packages\/[^/]+\//i,/\/backends\/[^/]+\//i,/\/backends_python\/[^/]+\//i]});var Zg={};et(Zg,{HologramService:()=>pe});var yt,pe,Je=be(()=>{"use strict";X();ht();J();yt=$.child({module:"hologram"}),pe=class{repos;repoPath;constructor(e){this.repoPath=e,this.repos=L.getInstance(e)}updateTopography(e){yt.debug({repoPath:this.repoPath},"Updating topography snapshot");let r=Object.values(e.layers).reduce((o,s)=>o+s.count,0),i={};for(let[o,s]of Object.entries(e.layers)){let a=r>0?s.count/r*100:0;i[o]={count:s.count,percentage:Math.round(a*10)/10,topFiles:s.topFiles.slice(0,3).map(c=>({path:c.path,confidence:c.confidence}))}}let t={pattern:e.pattern,patternConfidence:e.patternConfidence,layerDistribution:i,insights:e.insights,updatedAt:Date.now()};this.repos.hologram.upsertSection("topography",JSON.stringify(t)),yt.info({repoPath:this.repoPath},"Topography snapshot updated")}refreshTopography(){let e=Ge(this.repos,this.repoPath);this.updateTopography(e)}updateGravityZones(e){yt.debug({repoPath:this.repoPath,count:e.length},"Updating gravity zones");let r={hotspots:e.slice(0,50),updatedAt:Date.now()};this.repos.hologram.upsertSection("gravity",JSON.stringify(r)),yt.info({repoPath:this.repoPath},"Gravity zones updated")}updateGhostBridges(e){yt.debug({repoPath:this.repoPath,count:e.length},"Updating ghost bridges");let r={bridges:e.slice(0,20),updatedAt:Date.now()};this.repos.hologram.upsertSection("ghosts",JSON.stringify(r)),yt.info({repoPath:this.repoPath},"Ghost bridges updated")}getSnapshot(){let e=this.repos.hologram.getAllSections(),r={metadata:{repoPath:this.repoPath,lastUpdated:Date.now(),version:"1.0.0"}};for(let i of e)try{let t=JSON.parse(i.data);switch(i.section){case"topography":r.topography=t;break;case"gravity":r.gravity=t;break;case"ghosts":r.ghosts=t;break}}catch(t){yt.error({repoPath:this.repoPath,section:i.section,error:t},"Failed to parse hologram section")}return r}getSection(e){let r=this.repos.hologram.getSection(e);if(!r)return null;try{return JSON.parse(r.data)}catch(i){return yt.error({repoPath:this.repoPath,section:e,error:i},"Failed to parse section"),null}}computeGravityZones(){yt.debug({repoPath:this.repoPath},"Computing gravity zones from import graph");let e=this.repos.files.getAllPaths(),r=new Map;for(let t of e){let o=Yt(t,this.repos);if(o.layer==="Test"||o.layer==="Unknown")continue;let s=this.repos.exports.findByFile(t);if(s.length===0)continue;let a=this.repos.imports.countDependents(t),c=this.repos.imports.countByFile(t),l=a*2+c;if(l>0){let u=s.find(p=>p.kind!=="TsTypeAliasDeclaration"&&p.kind!=="TsInterfaceDeclaration")||s[0],d=`${t}::${u.name}`;r.set(d,{symbol:u.name,filePath:t,inDegree:a,outDegree:c,gravity:l})}}let i=Array.from(r.values()).sort((t,o)=>o.gravity-t.gravity).slice(0,50);return yt.info({repoPath:this.repoPath,count:i.length},"Gravity zones computed"),i}isInitialized(){return this.repos.hologram.getAllSections().length>0}clear(){this.repos.hologram.deleteAll(),yt.info({repoPath:this.repoPath},"Hologram cleared")}}});var Qv={};et(Qv,{GraphExporterService:()=>Va});var Xv,Va,Qm=be(()=>{"use strict";X();J();Xv=$.child({module:"graph-exporter"}),Va=class{constructor(e){this.repoPath=e;this.repos=L.getInstance(e)}repos;async generateGraph(e={}){let{includeCompleted:r=!0,format:i="mermaid",focusMissionId:t,depth:o=10,limit:s=100}=e;Xv.info({focusMissionId:t,depth:o,format:i,includeCompleted:r},"Generating mission graph");let a=this.buildMissionTree(t,r,o,s);return i==="json"?JSON.stringify(a,null,2):this.generateMermaidDiagram(a)}buildMissionTree(e,r,i,t){let o;if(e){let c=this.repos.missions.findById(e);o=c?[c]:[]}else o=this.repos.missions.findAll().filter(l=>!l.parent_id),r||(o=o.filter(l=>l.status!=="completed"));let s=0,a=[];for(let c of o){if(s>=t)break;let l=this.buildNode(c,r,i,1,{count:s,max:t});l&&(a.push(l),s+=this.countNodes(l))}return a}buildNode(e,r,i,t,o){if(t>i||o.count>=o.max)return null;let s;if(e.strategy_graph)try{let u=JSON.parse(e.strategy_graph);s=this.parseStrategySteps(u)}catch(u){Xv.debug({missionId:e.id,err:u},"Failed to parse strategy graph")}let a={id:e.id,name:e.name,status:e.status,goal:e.goal,branch:e.git_branch||void 0,children:[],steps:s},c=this.repos.missions.findByParentId(e.id),l=r?c:c.filter(u=>u.status!=="completed");for(let u of l){if(o.count>=o.max)break;let d=this.buildNode(u,r,i,t+1,o);d&&(a.children.push(d),o.count++)}return a}parseStrategySteps(e){let r=[];return Array.isArray(e)?e.map((i,t)=>({id:i.id||`step-${t}`,description:i.description||i.content||i.name||`Step ${t+1}`,status:i.status,dependencies:i.dependencies||i.deps})):e.steps&&Array.isArray(e.steps)?this.parseStrategySteps(e.steps):typeof e=="object"?Object.entries(e).map(([i,t])=>({id:i,description:t.description||t.content||i,status:t.status,dependencies:t.dependencies||t.deps})):r}countNodes(e){let r=1;for(let i of e.children)r+=this.countNodes(i);return r}generateMermaidDiagram(e){let r=["graph TD"];for(let i of e)this.addMermaidNode(i,r);return r.join(`
477
+ `)}addMermaidNode(e,r,i){let t=`M${e.id}`,o=this.getStatusIcon(e.status),s=this.getStatusClass(e.status),a=`${o} ${e.name}`;if(r.push(` ${t}["${this.escapeMermaid(a)}"]:::${s}`),i&&r.push(` ${i} --> ${t}`),e.steps&&e.steps.length>0&&e.steps.length<=10)for(let c of e.steps){let l=`S${e.id}_${c.id}`,u=c.status||"pending",d=this.getStatusIcon(u),p=this.getStatusClass(u),f=`${d} ${c.description}`;if(r.push(` ${l}["${this.escapeMermaid(f)}"]:::${p}`),r.push(` ${t} -.-> ${l}`),c.dependencies&&c.dependencies.length>0)for(let m of c.dependencies){let h=`S${e.id}_${m}`;r.push(` ${h} --> ${l}`)}}for(let c of e.children)this.addMermaidNode(c,r,t);i||(r.push(""),r.push(" classDef completed fill:#90EE90,stroke:#2E8B57,stroke-width:2px"),r.push(" classDef inProgress fill:#87CEEB,stroke:#4682B4,stroke-width:2px"),r.push(" classDef planned fill:#FFE4B5,stroke:#DAA520,stroke-width:2px"),r.push(" classDef suspended fill:#D3D3D3,stroke:#808080,stroke-width:2px"),r.push(" classDef failed fill:#FFB6C1,stroke:#DC143C,stroke-width:2px"),r.push(" classDef pending fill:#FFF8DC,stroke:#B8860B,stroke-width:1px"))}getStatusIcon(e){return{completed:"\u2713","in-progress":"\u26A1",planned:"\u{1F4CB}",suspended:"\u23F8",failed:"\u2717",pending:"\u25CB",verifying:"\u{1F50D}"}[e]||"\u25CB"}getStatusClass(e){return{completed:"completed","in-progress":"inProgress",planned:"planned",suspended:"suspended",failed:"failed",pending:"pending",verifying:"inProgress"}[e]||"pending"}escapeMermaid(e){return e.replace(/"/g,"#quot;").replace(/\n/g," ").replace(/\[/g,"#91;").replace(/]/g,"#93;").slice(0,100)}}});import"dotenv/config";import{Cli as SI}from"clerc";J();import Wf from"fs";import xx from"path";import Bf from"js-yaml";var Gf={ignore:[],include:[],maxDepth:10},Sx=[{name:".liquid-shadow.yaml",parse:n=>Bf.load(n)??{}},{name:".liquid-shadow.yml",parse:n=>Bf.load(n)??{}},{name:".ls.json",parse:n=>JSON.parse(n)},{name:".liquid-shadow.json",parse:n=>JSON.parse(n)},{name:".ls.rc",parse:n=>JSON.parse(n)},{name:".liquid-shadow.rc",parse:n=>JSON.parse(n)}];function Rt(n){for(let{name:e,parse:r}of Sx){let i=xx.join(n,e);if(Wf.existsSync(i))try{let t=Wf.readFileSync(i,"utf8"),o=r(t);return $.debug({repoPath:n,configFile:e},"Loaded repository configuration"),{...Gf,...o}}catch(t){$.error({repoPath:n,file:e,err:t},"Failed to parse configuration file")}}return Gf}function mc(n,e){let i=Rt(n).cli??{};return{dir:e.dir??i.dir??".",level:e.level??i.level,deep:e.deep!==void 0?e.deep:i.deep}}X();import Yx from"path";var Re=yx($h(),1);import*as xt from"@clack/prompts";var ue={red:Re.default.red,green:Re.default.green,yellow:Re.default.yellow,blue:Re.default.blue,magenta:Re.default.magenta,cyan:Re.default.cyan,white:Re.default.white,gray:Re.default.gray,bold:Re.default.bold,dim:Re.default.dim,italic:Re.default.italic,underline:Re.default.underline,inverse:Re.default.inverse},Bt=n=>n.replace(/\x1b\[[0-9;]*m/g,""),Ie=n=>xt.intro(Re.default.bgCyan(Re.default.black(Re.default.bold(` ${n} `)))),pt=n=>xt.outro(Re.default.cyan(n)),_e=(n,e,r="blue")=>{let i=e.split(`
478
+ `),t=Bt(n),o=Math.max(t.length+4,...i.map(c=>Bt(c).length))+2,s="\u2500".repeat(o),a=ue[r];console.log(a(`\u250C${s}\u2510`)),console.log(a("\u2502 ")+ue.bold(n).padEnd(o+(n.length-t.length)-1)+a("\u2502")),console.log(a(`\u251C${s}\u2524`)),i.forEach(c=>{let l=Bt(c),u=" ".repeat(o-l.length-1);console.log(a("\u2502 ")+c+u+a("\u2502"))}),console.log(a(`\u2514${s}\u2518`))},vo=(n,e)=>{let r=n.map((t,o)=>Math.max(Bt(t).length,...e.map(s=>Bt(s[o]||"").length))+2),i=ue.cyan("\u2502");console.log(i),console.log(i+" "+n.map((t,o)=>ue.bold(ue.cyan(t)).padEnd(r[o]+(t.length-Bt(t).length))).join(ue.gray(" "))+" "),e.forEach(t=>{console.log(i+" "+t.map((o,s)=>(o||"").padEnd(r[s]+(o.length-Bt(o).length))).join(ue.gray(" "))+" ")}),console.log(i)},wh=(n,e="\u2022")=>{n.forEach(r=>{console.log(`${ue.cyan("\u2502")} ${ue.cyan(e)} ${r}`)})},_o=(n,e=40)=>{let r=Math.max(...n.map(t=>t.value)),i=Math.max(...n.map(t=>Bt(t.label).length));console.log(ue.cyan("\u2502")),n.forEach(t=>{let o=Math.round(t.value/r*e),s="\u2588".repeat(o)+ue.dim("\u2591".repeat(e-o)),a=t.color?ue[t.color]:ue.cyan,c=t.label.padEnd(i);console.log(`${ue.cyan("\u2502")} ${ue.bold(c)} ${a(s)} ${ue.white(t.value.toString())}`)}),console.log(ue.cyan("\u2502"))},xc=(n,e="")=>{n.forEach((r,i)=>{let t=i===n.length-1,o=t?"\u2514\u2500\u2500 ":"\u251C\u2500\u2500 ",s=r.color?ue[r.color]:r.children?ue.blue:ue.white,a=r.info?` ${ue.gray(`(${r.info})`)}`:"";if(console.log(`${ue.cyan("\u2502")} ${e}${ue.gray(o)}${s(r.name)}${a}`),r.children&&r.children.length>0){let c=e+(t?" ":"\u2502 ");xc(r.children,c)}})},tt=()=>xt.spinner();async function xo(n,e,r){if(e.length===0)return;let i=await xt.select({message:n,options:e.map(t=>({value:t.value,label:t.label,...t.hint!=null&&{hint:t.hint}})),...r?.limit!=null&&{maxItems:r.limit}});if(!xt.isCancel(i))return i}var Kx=n=>{console.error("");let e=n instanceof Error?n.message:String(n);console.error(` ${ue.red("\u2716")} ${ue.bold("Error: ")} ${e}`),n instanceof Error&&"cause"in n&&console.error(` ${ue.dim("Cause: "+String(n.cause))}`),console.error(""),process.exit(1)},ie=async n=>{try{await n()}catch(e){Kx(e)}},_=ue;Nt();dt();J();async function de(n){$.debug("Performing graceful shutdown...");try{await Sn()}catch(e){$.error({err:e},"Error shutting down worker pool")}try{n&&Yr(n)}catch(e){$.error({err:e},"Error closing database")}$.debug("Shutdown complete")}async function kh(n){let e=Yx.resolve(n);try{await ie(async()=>{Ie("\u{1F311} Liquid Shadow: Scouting Report");let r=L.getInstance(e),i=Rt(e),t=i.ignore&&i.ignore.length>0,o=r.files.getCount(),s=r.exports.getCount(),a=r.files.getLatestScanTime(),c=r.exports.getKindDistribution(5);_e("Intelligence Summary",`${_.bold("\u{1F4E1} Topology")}: ${_.cyan(o.toString())} files mapped
479
+ ${_.bold("\u{1F9E9} Symbols")}: ${_.cyan(s.toString())} exports detected
480
+ ${_.bold("\u{1F552} Last Sync")}: ${a?_.yellow(new Date(a).toLocaleString()):_.red("Never")}
481
+ ${_.bold("\u2699\uFE0F Config")}: ${t?_.green("Custom Intelligence"):_.gray("Standard Sieve")}`,"blue"),c.length>0&&(console.log(""),console.log(` ${_.bold("Symbol Distribution (Top 5)")}`),_o(c.map(l=>({label:l.kind,value:l.c,color:"cyan"})),30)),console.log(""),console.log(` ${_.dim("Pro-tip: Try")} ${_.bold(_.cyan("liquid-shadow dashboard"))} ${_.dim("for the full tactical view.")}`),console.log(""),pt("Scouting complete.")})}finally{await de(e)}}X();dt();import Ph from"path";var Sc=class{startTime=Date.now();indexRuns=0;indexCacheHits=0;lastIndexDurationMs=null;lastIndexCompletedAt=null;lastRunPhases=[];queryCount=0;lastQueryLatencyMs=null;recentLatencySumMs=0;recentLatencyCount=0;recentLatencies=[];searchHistoryFailureCount=0;recordIndexStart(){this.indexRuns+=1}recordIndexCacheHit(){this.indexCacheHits+=1}recordIndexEnd(e){this.lastIndexDurationMs=e,this.lastIndexCompletedAt=Date.now()}recordIndexPhase(e,r){this.lastRunPhases.push({phase:e,durationMs:r})}clearIndexPhases(){this.lastRunPhases=[]}recordQueryStart(){let e=performance.now();return()=>{this.queryCount+=1;let r=performance.now()-e;if(this.lastQueryLatencyMs=r,this.recentLatencies.push(r),this.recentLatencies.length>100){let i=this.recentLatencies.shift();this.recentLatencySumMs=this.recentLatencySumMs-i+r}else this.recentLatencySumMs+=r,this.recentLatencyCount=this.recentLatencies.length}}recordSearchHistoryFailure(){this.searchHistoryFailureCount+=1}getSnapshot(){let e=this.recentLatencies.length,r=e>0?this.recentLatencies.reduce((i,t)=>i+t,0)/e:null;return{index:{runs:this.indexRuns,cacheHits:this.indexCacheHits,lastDurationMs:this.lastIndexDurationMs,lastCompletedAt:this.lastIndexCompletedAt,lastRunPhases:[...this.lastRunPhases]},query:{count:this.queryCount,lastLatencyMs:this.lastQueryLatencyMs,recentLatencySumMs:this.recentLatencySumMs,recentLatencyCount:e,avgLatencyMs:r,searchHistoryFailures:this.searchHistoryFailureCount},uptimeMs:Date.now()-this.startTime}}reset(){this.indexRuns=0,this.indexCacheHits=0,this.lastIndexDurationMs=null,this.lastIndexCompletedAt=null,this.lastRunPhases=[],this.queryCount=0,this.lastQueryLatencyMs=null,this.recentLatencySumMs=0,this.recentLatencyCount=0,this.recentLatencies=[],this.searchHistoryFailureCount=0}},Gt=new Sc;function Eh(){Gt.recordIndexStart()}function So(){Gt.recordIndexCacheHit()}function Ih(n){Gt.recordIndexEnd(n)}function ri(n,e){Gt.recordIndexPhase(n,e)}function Th(){Gt.clearIndexPhases()}function $n(){return Gt.recordQueryStart()}function St(){Gt.recordSearchHistoryFailure()}function wn(){return Gt.getSnapshot()}J();import Be from"fs";import kn from"path";var Yn=$.child({module:"git-hooks"}),$o={"post-merge":`#!/bin/sh
439
482
  # Liquid Shadow: Auto-refresh index after merge/pull
440
483
  # Generated by liquid-shadow
441
484
 
@@ -469,30 +512,30 @@ REPO_PATH="$(git rev-parse --show-toplevel)"
469
512
  nohup npx @precisionutilityguild/liquid-shadow sync "$REPO_PATH" > /dev/null 2>&1 &
470
513
 
471
514
  exit 0
472
- `};function Hi(i){let{repoPath:e,enableAutoRefresh:t=!0,enableSymbolHealing:n=!0}=i,s=ot.join(e,".git","hooks"),r=[],o=[],c=[];if(!ue.existsSync(ot.join(e,".git")))return c.push("Not a git repository"),{installed:r,skipped:o,errors:c};ue.existsSync(s)||ue.mkdirSync(s,{recursive:!0});let a=[];t&&a.push("post-merge","post-checkout"),n&&a.push("post-commit");for(let l of a){let p=ot.join(s,l),u=Ln[l];if(!u){c.push(`No template found for hook: ${l}`);continue}try{if(ue.existsSync(p)){let d=ue.readFileSync(p,"utf-8");if(d.includes("liquid-shadow")||d.includes("mcp-liquid-shadow")){o.push(l),bt.info({hookName:l},"Hook already installed, skipping");continue}let m=`${p}.backup-${Date.now()}`;ue.copyFileSync(p,m),bt.info({hookName:l,backupPath:m},"Backed up existing hook")}ue.writeFileSync(p,u,{mode:493}),r.push(l),bt.info({hookName:l},"Installed git hook")}catch(d){c.push(`Failed to install ${l}: ${d}`),bt.error({hookName:l,err:d},"Failed to install hook")}}return{installed:r,skipped:o,errors:c}}function Ui(i){let e=ot.join(i,".git","hooks"),t=[],n=[];if(!ue.existsSync(e))return{removed:t,errors:n};let s=Object.keys(Ln);for(let r of s){let o=ot.join(e,r);try{if(ue.existsSync(o)){let c=ue.readFileSync(o,"utf-8");(c.includes("liquid-shadow")||c.includes("mcp-liquid-shadow"))&&(ue.unlinkSync(o),t.push(r),bt.info({hookName:r},"Removed git hook"))}}catch(c){n.push(`Failed to remove ${r}: ${c}`),bt.error({hookName:r,err:c},"Failed to remove hook")}}return{removed:t,errors:n}}function _t(i){let e=ot.join(i,".git","hooks"),t=[],n=[];if(!ue.existsSync(e))return{installed:t,notInstalled:Object.keys(Ln)};let s=Object.keys(Ln);for(let r of s){let o=ot.join(e,r);if(ue.existsSync(o)){let c=ue.readFileSync(o,"utf-8");c.includes("liquid-shadow")||c.includes("mcp-liquid-shadow")?t.push(r):n.push(r)}else n.push(r)}return{installed:t,notInstalled:n}}async function Rs(i){let e=ji.resolve(i);try{await B(async()=>{se("Liquid Shadow Intelligence Dashboard");let t=C.getInstance(e),n=Cn(),s=_t(e),r=t.files.getCount(),o=t.exports.getCount(),c=t.files.getLatestScanTime(),a=t.exports.getKindDistribution(5);if(X("Operational Core",`${f.bold("State")}: ${He(e)?f.green("IDENTIFIED (Stable)"):f.red("UNKNOWN (Needs Index)")}
473
- ${f.bold("Repository")}: ${f.cyan(ji.basename(e))}
474
- ${f.bold("Infrastructure")}: ${s.installed?f.green("Git-Hooked"):f.yellow("Standalone")}
475
- ${f.bold("Last Sync")}: ${c?f.yellow(new Date(c).toLocaleString()):f.red("Never")}`,"blue"),console.log(""),X("Intelligence Density",`${f.bold("Files Target")}: ${f.cyan(r.toString())}
476
- ${f.bold("Symbols Mapped")}: ${f.cyan(o.toString())}
477
- ${f.bold("Graph Edges")}: ${f.cyan(t.imports.getCount().toString())}
478
- ${f.bold("Hotspots")}: ${f.yellow(a.length.toString())}`,"cyan"),n.query.count>0||n.index.runs>0){console.log("");let l=n.index.runs>0?(n.index.cacheHits/n.index.runs*100).toFixed(1):"0.0";X("Reasoning Efficiency",`${f.bold("Query Count")}: ${f.cyan(n.query.count.toString())}
479
- ${f.bold("Avg Latency")}: ${f.yellow(`${n.query.avgLatencyMs?.toFixed(2)||0}ms`)}
480
- ${f.bold("Cache Hit Rate")}: ${f.green(`${l}%`)}`,"green")}a.length>0&&(console.log(""),console.log(` ${f.bold("Intelligence Landscape")}`),Rn(a.map(l=>({label:l.kind,value:l.c,color:"cyan"})),35)),console.log(""),Ee("Liquid Shadow is observing.")})}finally{await J(e)}}z();qe();import Ka from"path";async function zi(i){let e=Ka.resolve(i);try{await B(async()=>{let t=C.getInstance(e),n=_t(e),s=Cn(),r=Math.floor(s.uptimeMs/1e3),o=Math.floor(r/60),c=Math.floor(o/60),a=c>0?`${c}h ${o%60}m`:o>0?`${o}m ${r%60}s`:`${r}s`,l=s.index.lastCompletedAt?new Date(s.index.lastCompletedAt).toLocaleString():"Never",p=s.index.lastDurationMs?`${(s.index.lastDurationMs/1e3).toFixed(2)}s`:"N/A",u=s.query.avgLatencyMs?`${s.query.avgLatencyMs.toFixed(2)}ms`:"N/A",d=s.query.lastLatencyMs?`${s.query.lastLatencyMs.toFixed(2)}ms`:"N/A",m=s.index.runs>0?(s.index.cacheHits/s.index.runs*100).toFixed(1):"0.0";X("Performance Metrics",`${f.bold("Uptime")}: ${f.cyan(a)}
481
- ${f.bold("Indexed")}: ${He(e)?f.green("Yes"):f.red("No")}
482
- ${f.bold("Files")}: ${f.cyan(t.files.getCount().toString())}
483
- ${f.bold("Exports")}: ${f.cyan(t.exports.getCount().toString())}
484
- ${f.bold("Imports")}: ${f.cyan(t.imports.getCount().toString())}
485
- ${f.bold("Last Indexed Commit")}: ${Pt(e)?f.yellow(Pt(e).substring(0,7)):f.red("None")}
486
- ${f.bold("Git Hooks")}: ${n.installed?f.green("Installed"):f.yellow("Not Installed")}`,"blue"),console.log(""),X("Index Metrics",`${f.bold("Total Runs")}: ${f.cyan(s.index.runs.toString())}
487
- ${f.bold("Cache Hits")}: ${f.cyan(s.index.cacheHits.toString())}
488
- ${f.bold("Cache Hit Rate")}: ${f.cyan(`${m}%`)}
489
- ${f.bold("Last Duration")}: ${f.yellow(p)}
490
- ${f.bold("Last Completed")}: ${f.yellow(l)}`,"cyan"),s.index.lastRunPhases.length>0&&(console.log(""),console.log(` ${f.bold("Last Index Run Phases:")}`),s.index.lastRunPhases.forEach(h=>{let g=`${(h.durationMs/1e3).toFixed(2)}s`;console.log(` ${f.gray(h.phase.padEnd(20))} ${f.cyan(g)}`)})),console.log(""),X("Query Metrics",`${f.bold("Total Queries")}: ${f.cyan(s.query.count.toString())}
491
- ${f.bold("Avg Latency")}: ${f.yellow(u)}
492
- ${f.bold("Last Latency")}: ${f.yellow(d)}
493
- ${f.bold("Search History Failures")}: ${s.query.searchHistoryFailures>0?f.red(s.query.searchHistoryFailures.toString()):f.green("0")}`,"green")})}finally{await J(e)}}import Oc from"path";import Xa from"fast-glob";import Gi from"fs";import Za from"ignore";import qi from"path";var $n=["**/node_modules/**","**/.git/**","**/dist/**","**/build/**","**/vendor/**","**/.next/**","**/.cache/**","**/coverage/**","**/*.min.js"],Bi=["**/*.{ts,tsx,yaml,yml,php,py,go}","**/*.prisma","**/*.{graphql,gql}","**/Dockerfile*","**/.env*","**/package.json","**/lerna.json","**/turbo.json","**/pnpm-workspace.yaml"],Et={MAX_DEPTH:10,MIN_DEPTH:1,MAX_LIMIT:500,MIN_LIMIT:1,MAX_QUERY_LENGTH:500,DEFAULT_DEPTH:3,DEFAULT_LIMIT:10},me={FILTERED_QUERY_LIMIT_MULTIPLIER:3,SCORE_BASE:1e3,EXACT_MATCH_BONUS:500,RECENT_FILE_BOOST:80,OLDER_FILE_BOOST:30,RECENT_FILE_THRESHOLD_DAYS:7,OLDER_FILE_THRESHOLD_DAYS:30,FUZZY_MATCH_LIMIT:30,ENABLE_LEXICAL_SCORING:process.env.ENABLE_LEXICAL_SCORING!=="false",LEXICAL_WEIGHT:parseFloat(process.env.LEXICAL_WEIGHT??String(.4)),GRAVITY_STRUCTURAL_WEIGHT:.5},ks={SECONDS_PER_DAY:86400,SECONDS_PER_YEAR:31536e3},Nn={DEFAULT_CONCURRENCY:parseInt(process.env.INDEX_CONCURRENCY??String(5),10)};async function Is(i,e=[]){let t=Za(),n=qi.join(i,".gitignore");return Gi.existsSync(n)&&t.add(Gi.readFileSync(n,"utf8")),e.length>0&&t.add(e),(await Xa(Bi,{cwd:i,absolute:!0,ignore:$n,stats:!0})).filter(o=>{let c=qi.relative(i,o.path);return!t.ignores(c)}).map(o=>({path:o.path,mtime:o.stats.mtimeMs}))}import $s from"@swc/core";import or from"fs";function Ji(i){let e=i.split(`
494
- `),t=[],n=0;for(let s of e)t.push(n),n+=s.length+1;return t}function V(i,e){for(let t=0;t<e.length;t++)if(e[t+1]>i||t===e.length-1)return t+1;return 1}function An(i,e){return e.slice(0,i).toString("utf8").length}function Yi(i){if(i.toString("utf8").length===i.length)return n=>n;let t=new Map;return n=>{let s=t.get(n);return s===void 0&&(s=i.slice(0,n).toString("utf8").length,t.set(n,s)),s}}function Vi(i,e,t){let n=i.start-e,s=i.end-e;return n<0||s>t.length?"":t.slice(n,s).toString("utf8")}function Qi(i){let e=[],t=/\/\*\*[\s\S]*?\*\//g,n;for(;(n=t.exec(i))!==null;)e.push({start:n.index,end:n.index+n[0].length,text:n[0]});return e}function Ne(i,e,t){for(let n of e){if(n.start===i)return n.text;if(n.start>i&&n.start<i+50){let s=t.substring(i,n.start);if(/^\s*$/.test(s))return n.text}if(n.end<=i&&n.end>i-50){let s=t.substring(n.end,i);if(/^\s*$/.test(s))return n.text}}return""}function Ki(i){if(!i)return"";let t=i.replace(/\/\*\*|\*\/|\*/g,"").trim().split(`
495
- `)[0].trim();return t.length>200?t.substring(0,197)+"...":t}function Pn(i,e,t){let n=i.toLowerCase(),s=e.toLowerCase();return n.includes("components/")||n.endsWith(".tsx")?"Component":n.startsWith("use")||s.startsWith("use")?"Hook":n.includes("models/")||s.endsWith("model")?"Model":n.includes("services/")||n.includes("controllers/")||n.includes("handlers/")||n.includes("mcp/")||n.endsWith("service.ts")||n.endsWith("controller.ts")||n.endsWith("handler.ts")||s.endsWith("service")||s.endsWith("controller")||s.endsWith("handler")?"Service":n.includes("repositories/")||n.includes("repos/")||n.endsWith("repository.ts")||n.endsWith("repo.ts")||s.endsWith("repository")||s.endsWith("repo")?"Repository":t==="TsInterfaceDeclaration"||t==="TsTypeAliasDeclaration"?"Type Definition":"Other"}function Ht(i){let e=[];return/\b(fetch|axios|superagent|got)\s*\(|import\s+.*\b(http|https|node-fetch)\b/i.test(i)&&e.push("Network"),(/\b(knex|prisma|typeorm|mongoose|sequelize|pg|mysql|sqlite3)\b/i.test(i)||/\b(SELECT\s+.*FROM|INSERT\s+INTO|UPDATE\s+.*SET|DELETE\s+FROM)\b/i.test(i)||/\.query\s*\(|\.execute\s*\(/i.test(i)&&/db|database|client|pool/i.test(i))&&e.push("Database"),(/\bfs\./i.test(i)||/\b(readFileSync|writeFileSync|readFile|writeFile|readdir)\b/.test(i)||/import\s+.*\bfs\b/.test(i))&&e.push("File System"),(/\b(localStorage|sessionStorage|indexedDB)\./.test(i)||/\bdocument\.cookie\b/.test(i))&&e.push("Browser Storage"),e}function Ae(i,e){if(!i)return"";let t=i.replace(/^([\s\S]*?\*\/)?\s*/,"").replace(/^.*\} from ['"].*['"];?\s*/,"").replace(/^import .*['"];?\s*/,"").trim();if(e==="TsInterfaceDeclaration"||e==="TsTypeAliasDeclaration")return t;let n=0,s=0,r=t.length;for(let o=0;o<t.length;o++){let c=t[o];if(c==="(")n++;else if(c===")")n--;else if(c==="<")s++;else if(c===">")s--;else if(c==="{"){if(n===0&&s===0){r=o;break}}else if(c==="; "&&n===0&&s===0){r=o;break}else if(c==="="&&t[o+1]===">"&&n===0&&s===0){r=o+2;break}}return t.substring(0,r).trim()}function Xi(i){let e=[];for(let t of i)t.type==="ImportDeclaration"&&e.push({module:t.source.value,name:t.specifiers.map(n=>n.type==="ImportDefaultSpecifier"?"default":n.type==="ImportNamespaceSpecifier"?"*":n.local?.value||n.imported?.value||"*").join("","")}),t.type==="ExportAllDeclaration"&&e.push({module:t.source.value,name:"*"}),t.type==="ExportNamedDeclaration"&&t.source&&e.push({module:t.source.value,name:t.specifiers.map(n=>n.type==="ExportSpecifier"?n.orig.value:"*").join(", ")});return e}function Zi(i,e,t,n,s,r,o,c,a){let l=a??(u=>An(u,t)),p=[];for(let u of i){if(u.type==="ExportDeclaration"){let d=u.declaration,m=d.type,h="";m==="VariableDeclaration"?h=d.declarations.map(w=>w.id.value).join("",""):h=d.id?.value||d.identifier?.value||"anonymous";let g=l(u.span.start-e),_=l(u.span.end-e),b=Ne(g,r,n),y=c(u.span),E=[];if(u.type==="ExportDeclaration"&&(m==="ClassDeclaration"||m==="ClassExpression")){let w=d.body||[];for(let x of w)if(x.type==="ClassMethod"||x.type==="ClassProperty"){let v=x.key.value;if(!v)continue;let k=l(x.span.start-e),N=l(x.span.end-e),O=c(x.span),T=Ne(k,r,n);E.push({name:v,kind:x.type,signature:Ae(O,x.type),line:V(k,s),endLine:V(N,s),doc:T,classification:x.type==="ClassMethod"?"Method":"Property",capabilities:"[]"})}}else if(m==="FunctionDeclaration"&&d.body?.type==="BlockStatement")E=Cs(d.body.stmts,e,t,n,s,r,c,l);else if(m==="VariableDeclaration"){for(let w of d.declarations)if(w.init&&(w.init.type==="ArrowFunctionExpression"||w.init.type==="FunctionExpression")&&w.init.body?.type==="BlockStatement"){E=Cs(w.init.body.stmts,e,t,n,s,r,c,l);break}}p.push({name:h,kind:m,signature:Ae(y,m),line:V(g,s),endLine:V(_,s),doc:b,classification:Pn(o,h,m),capabilities:JSON.stringify(Ht(y)),members:E})}if(u.type==="ExportNamedDeclaration"){for(let d of u.specifiers)if(d.type==="ExportSpecifier"){let m=l(u.span.start-e),h=l(u.span.end-e),g=Ne(m,r,n);p.push({name:d.exported?.value||d.orig.value,kind:"ExportSpecifier",signature:`export { ${d.orig.value} }`,line:V(m,s),endLine:V(h,s),doc:g,classification:"Export mapping",capabilities:"[]"})}}if(u.type==="ExportDefaultDeclaration"){let d=l(u.span.start-e),m=l(u.span.end-e),h=Ne(d,r,n),g=c(u.span),_=[];if(u.decl.type==="ClassExpression"||u.decl.type==="ClassDeclaration"){let b=u.decl.body||[];for(let y of b)if(y.type==="ClassMethod"||y.type==="ClassProperty"){let E=y.key.value;if(!E)continue;let w=l(y.span.start-e),x=l(y.span.end-e),v=c(y.span),k=Ne(w,r,n);_.push({name:E,kind:y.type,signature:Ae(v,y.type),line:V(w,s),endLine:V(x,s),doc:k,classification:y.type==="ClassMethod"?"Method":"Property",capabilities:"[]"})}}else(u.decl.type==="FunctionExpression"||u.decl.type==="FunctionDeclaration"||u.decl.type==="ArrowFunctionExpression")&&u.decl.body?.type==="BlockStatement"&&(_=Cs(u.decl.body.stmts,e,t,n,s,r,c,l));p.push({name:"default",kind:"DefaultExport",signature:Ae(g,"DefaultExport"),line:V(d,s),endLine:V(m,s),doc:h,classification:"Default Export",capabilities:JSON.stringify(Ht(g)),members:_})}if(u.type==="ExportAllDeclaration"){let d=l(u.span.start-e),m=l(u.span.end-e),h=u.source.value,g=Ne(d,r,n);p.push({name:"*",kind:"ExportAllDeclaration",signature:`export * from "${h}"`,line:V(d,s),endLine:V(m,s),doc:g,classification:"Re-export",capabilities:"[]"})}}return p}function Cs(i,e,t,n,s,r,o,c){let a=[];for(let l of i){if(l.type==="VariableDeclaration")for(let p of l.declarations){let u=[],d=m=>{if(m.type==="Identifier")u.push({name:m.value,span:m.span});else if(m.type==="ArrayPattern")for(let h of m.elements)h&&d(h);else if(m.type==="ObjectPattern")for(let h of m.properties)h.type==="AssignmentPatternProperty"?u.push({name:h.key.value,span:h.span}):h.type==="KeyValuePatternProperty"&&d(h.value)};d(p.id);for(let m of u){let h=c(m.span.start-e),g=c(m.span.end-e),_=o(m.span),b=Ne(h,r,n);a.push({name:m.name,kind:"VariableDeclaration",signature:Ae(_,"VariableDeclaration"),line:V(h,s),endLine:V(g,s),doc:b,classification:"Internal Variable",capabilities:"[]"})}}if(l.type==="FunctionDeclaration"){let p=l.identifier?.value||l.ident?.value||"anonymous",u=c(l.span.start-e),d=c(l.span.end-e),m=o(l.span),h=Ne(u,r,n);a.push({name:p,kind:"FunctionDeclaration",signature:Ae(m,"FunctionDeclaration"),line:V(u,s),endLine:V(d,s),doc:h,classification:"Internal Function",capabilities:"[]"})}if(l.type==="ReturnStatement"&&l.argument?.type==="ObjectExpression")for(let p of l.argument.properties){let u="",d=p.span||p.key?.span||p.ident?.span;if(p.type==="KeyValueProperty"){let m=p.key;u=m?.value||m?.raw||(m?.type==="Identifier"?m.value:"")}else p.type==="MethodProperty"?u=p.key?.value||p.key?.raw||"":p.type==="ShorthandProperty"?u=p.ident?.value||"":p.type==="Identifier"&&(u=p.value||"");if(u&&d){let m=c(d.start-e),h=c(d.end-e),g=o(d),_=Ne(m,r,n);a.push({name:u,kind:"ReturnProperty",signature:Ae(g,"ReturnProperty"),line:V(m,s),endLine:V(h,s),doc:_,classification:"Return Member",capabilities:"[]"})}}if(l.type==="ExpressionStatement"&&l.expression.type==="CallExpression"){let p=l.expression;if(p.callee.type==="MemberExpression"&&(p.callee.property?.value==="on"||p.callee.property?.value==="once")){let u=p.arguments[0]?.expression?.value,d=p.arguments[1]?.expression;if(u&&d&&(d.type==="ArrowFunctionExpression"||d.type==="FunctionExpression")){let m=c(d.span.start-e),h=c(d.span.end-e),g=o(d.span);a.push({name:`on:${u}`,kind:d.type,signature:Ae(g,d.type),line:V(m,s),endLine:V(h,s),doc:"",classification:"Event Handler",capabilities:"[]"})}}if(p.callee.type==="Identifier"&&p.callee.value==="addRoute"&&p.arguments.length>=3){let u=p.arguments[2].expression;if(u.type==="StringLiteral"){let d=u.value,m=c(p.span.start-e),h=c(p.span.end-e),g=o(p.span);a.push({name:d,kind:"HTTP Route",signature:Ae(g,"HTTP Route"),line:V(m,s),endLine:V(h,s),doc:"",classification:"Service Boundary",capabilities:JSON.stringify({path:d})})}}}}return a}function er(i,e,t,n,s,r){let o=r??(l=>An(l,t)),c=[];function a(l){if(!(!l||typeof l!="object")){if(l.type==="CallExpression"){let p=ec(l);if(p){let u=o(l.span.start-e);c.push({...p,line:V(u,n),snippet:s(l.span)})}}for(let p of Object.keys(l)){if(p==="span")continue;let u=l[p];Array.isArray(u)?u.forEach(a):typeof u=="object"&&a(u)}}}return i.forEach(a),c}function ec(i){let{callee:e,arguments:t}=i;if(!t||t.length===0)return null;if(e.type==="Identifier"&&e.value,e.type==="Identifier"&&e.value==="addRoute"&&t.length>=3){let n=t[2].expression;if(n.type==="StringLiteral")return{type:"api_route",name:n.value,direction:"consume"}}if(e.type==="MemberExpression"&&e.property?.type==="Identifier"){let n=e.property.value;if(n==="emit"&&t[0].expression.type==="StringLiteral")return{type:"socket_event",name:t[0].expression.value,direction:"produce"};if(n==="on"&&t[0].expression.type==="StringLiteral")return{type:"socket_event",name:t[0].expression.value,direction:"consume"};if(["get","post","put","delete","patch"].includes(n)&&t[0].expression.type==="StringLiteral"){let r=t[0].expression.value,o=e.object.type==="Identifier"?e.object.value:"";if(["axios","http","request","appApi","restApi","adminApi","client"].includes(o))return{type:"api_route",name:r,direction:"produce"};if(r.startsWith("/"))return{type:"api_route",name:r,direction:"consume"}}}return e.type==="Identifier"&&e.value==="fetch"&&t[0].expression.type==="StringLiteral"?{type:"api_route",name:t[0].expression.value,direction:"produce"}:null}function Ut(i){let{classification:e,capabilities:t,exports:n,fileName:s}=i,r={Network:"API integration",Database:"data persistence","File System":"file I/O operations","Browser Storage":"client-side storage"},o=t.map(h=>r[h]).filter(Boolean).join(" and "),a={Component:(h,g)=>{let _=g.find(y=>y.kind==="FunctionDeclaration"||y.kind==="ClassDeclaration")?.name,b=_?`React component: ${_}`:"React UI component";return h?`${b} with ${h}`:b},Hook:(h,g)=>{let _=g.find(y=>y.name.startsWith("use"))?.name,b=_?`Custom React hook: ${_}`:"Custom React hook";return h?`${b} for ${h}`:b},Service:(h,g)=>{let b=`Service layer: ${g[0]?.name||"Service"}`;return h?`${b} handling ${h}`:b},Repository:(h,g)=>`Data repository: ${g[0]?.name||"Repository"} for ${h||"data access"}`,"Type Definition":(h,g)=>`Type definitions: ${g.slice(0,3).map(b=>b.name).join("")}${g.length>3?"...":""}`,Model:(h,g)=>`Data model: ${g[0]?.name||"Model"}`,"HTTP Route":(h,g)=>{let _=g.filter(b=>b.classification==="Service Boundary");return _.length>0?`API endpoints: ${_.slice(0,3).map(b=>b.name).join("")}`:"API route handler"},"Micro IR (PHP)":(h,g)=>{let _=g.some(y=>y.classification==="Service Boundary"),b=g.find(y=>y.kind==="ClassDeclaration")?.name;return _?"PHP controller with API routes":b?`PHP class: ${b}`:"PHP module"},"Micro IR (Python)":(h,g)=>{let _=g.some(y=>y.classification==="Service Boundary"),b=g.find(y=>y.kind==="ClassDeclaration")?.name;return _?"Python API handler with routes":b?`Python class: ${b}`:"Python module"},"Micro IR (Go/TS) ":(h,g)=>{let _=g.some(y=>y.kind==="TypeDeclaration"),b=g.filter(y=>y.kind==="FunctionDeclaration");return _&&b.length>0?`Go package: types and ${b.length} function(s)`:_?"Go package: type definitions":b.length>0?`Go package: ${b[0].name} and ${b.length} function(s)`:"Go module"},"Micro IR (Rust/TS) ":(h,g)=>{let _=g.find(E=>E.kind==="TraitDeclaration")?.name,b=g.find(E=>E.kind==="StructDeclaration")?.name,y=g.filter(E=>E.kind==="FunctionDeclaration");return _?h.includes("Rust trait")?`Rust module: trait ${_}`:`Rust module: ${_}`:b?`Rust module: struct ${b}`:y.length>0?`Rust module: ${y.length} function(s)`:"Rust module"}}[e];if(a)return a(o,n);if(n.length===0)return s?`Module: ${s}`:"Module with no exports";let l=n.filter(h=>h.kind==="FunctionDeclaration"),p=n.filter(h=>h.kind==="ClassDeclaration"),u=n.filter(h=>h.kind==="TsInterfaceDeclaration"||h.kind==="TsTypeAliasDeclaration"),d=[];if(p.length>0&&d.push(`Class: ${p[0].name}`),l.length>0){let h=l.slice(0,2).map(g=>g.name).join("");d.push(`Functions: ${h}`)}u.length>0&&d.push(`Types: ${u.length}`);let m=d.length>0?d.join(" | "):`Module with ${n.length} export(s)`;return o?`${m} \u2014 ${o}`:m}function tr(i){let e=new Set;function t(n){if(!(!n||typeof n!="object")){n.typeAnnotation&&ee(n.typeAnnotation,e),(n.type==="TsTypeReference"||n.type==="TsTypeAnnotation")&&ee(n,e);for(let s in n){if(s==="span"||s==="comments"||s==="interpreter")continue;let r=n[s];r&&typeof r=="object"&&(Array.isArray(r)?r.forEach(t):t(r))}}}return i.forEach(n=>t(n)),Array.from(e)}function ee(i,e){if(i){if(i.type==="TsTypeAnnotation"){ee(i.typeAnnotation,e);return}i.type==="TsTypeReference"&&(i.typeName?.type==="Identifier"&&e.add(i.typeName.value),i.typeName?.type==="TsQualifiedName"&&nr(i.typeName,e),i.typeParams&&ee(i.typeParams,e)),i.type==="TsArrayType"&&ee(i.elementType,e),i.type==="TsUnionType"&&i.types?.forEach(t=>ee(t,e)),i.type==="TsIntersectionType"&&i.types?.forEach(t=>ee(t,e)),i.type==="TsTupleType"&&i.elemTypes?.forEach(t=>ee(t.ty,e)),(i.type==="TsFunctionType"||i.type==="TsConstructorType")&&(i.params?.forEach(t=>ee(t.typeAnnotation,e)),i.typeAnnotation&&ee(i.typeAnnotation,e)),i.type==="TsTypeParameterDeclaration"&&i.params?.forEach(t=>{t.constraint&&ee(t.constraint,e),t.default&&ee(t.default,e)}),i.type==="TsTypeParameterInstantiation"&&i.params?.forEach(t=>ee(t,e)),i.type==="TsMappedType"&&i.typeAnnotation&&ee(i.typeAnnotation,e),i.type==="TsIndexedAccessType"&&(ee(i.objectType,e),ee(i.indexType,e)),i.type==="TsConditionalType"&&(ee(i.checkType,e),ee(i.extendsType,e),ee(i.trueType,e),ee(i.falseType,e)),i.type==="TsTypeLiteral"&&i.members?.forEach(t=>{t.typeAnnotation&&ee(t.typeAnnotation,e)})}}function nr(i,e){i.type==="TsQualifiedName"?(i.left&&nr(i.left,e),i.right?.value&&e.add(i.right.value)):i.type==="Identifier"&&e.add(i.value)}import ar from"path";import Ls from"path";W();hn();import ir from"path";import tc from"fs";import{fileURLToPath as nc}from"url";import*as at from"web-tree-sitter";var wu=ir.dirname(nc(import.meta.url)),sr=S.child({module:"parser:tree-sitter"}),Mn=class{parser=null;languages=new Map;async ensureInitialized(){if(this.parser)return;let e=at.Parser||at;await e.init(),this.parser=new e}async getLanguage(e){if(this.languages.has(e))return this.languages.get(e);let t=ht("resources","grammars",`tree-sitter-${this.getLangName(e)}.wasm`);if(!tc.existsSync(t))return sr.warn({grammarPath:t},"Grammar WASM not found"),null;try{let n=await at.Language.load(t);return this.languages.set(e,n),n}catch(n){return sr.error({err:n,ext:e},"Failed to load language grammar"),null}}getLangName(e){switch(e.toLowerCase()){case".php":return"php";case".py":return"python";case".go":return"go";case".rs":return"rust";default:return""}}getQueries(e){switch(e.toLowerCase()){case".php":return`
515
+ `};function $c(n){let{repoPath:e,enableAutoRefresh:r=!0,enableSymbolHealing:i=!0}=n,t=kn.join(e,".git","hooks"),o=[],s=[],a=[];if(!Be.existsSync(kn.join(e,".git")))return a.push("Not a git repository"),{installed:o,skipped:s,errors:a};Be.existsSync(t)||Be.mkdirSync(t,{recursive:!0});let c=[];r&&c.push("post-merge","post-checkout"),i&&c.push("post-commit");for(let l of c){let u=kn.join(t,l),d=$o[l];if(!d){a.push(`No template found for hook: ${l}`);continue}try{if(Be.existsSync(u)){let p=Be.readFileSync(u,"utf-8");if(p.includes("liquid-shadow")||p.includes("mcp-liquid-shadow")){s.push(l),Yn.info({hookName:l},"Hook already installed, skipping");continue}let f=`${u}.backup-${Date.now()}`;Be.copyFileSync(u,f),Yn.info({hookName:l,backupPath:f},"Backed up existing hook")}Be.writeFileSync(u,d,{mode:493}),o.push(l),Yn.info({hookName:l},"Installed git hook")}catch(p){a.push(`Failed to install ${l}: ${p}`),Yn.error({hookName:l,err:p},"Failed to install hook")}}return{installed:o,skipped:s,errors:a}}function wc(n){let e=kn.join(n,".git","hooks"),r=[],i=[];if(!Be.existsSync(e))return{removed:r,errors:i};let t=Object.keys($o);for(let o of t){let s=kn.join(e,o);try{if(Be.existsSync(s)){let a=Be.readFileSync(s,"utf-8");(a.includes("liquid-shadow")||a.includes("mcp-liquid-shadow"))&&(Be.unlinkSync(s),r.push(o),Yn.info({hookName:o},"Removed git hook"))}}catch(a){i.push(`Failed to remove ${o}: ${a}`),Yn.error({hookName:o,err:a},"Failed to remove hook")}}return{removed:r,errors:i}}function Ct(n){let e=kn.join(n,".git","hooks"),r=[],i=[];if(!Be.existsSync(e))return{installed:r,notInstalled:Object.keys($o)};let t=Object.keys($o);for(let o of t){let s=kn.join(e,o);if(Be.existsSync(s)){let a=Be.readFileSync(s,"utf-8");a.includes("liquid-shadow")||a.includes("mcp-liquid-shadow")?r.push(o):i.push(o)}else i.push(o)}return{installed:r,notInstalled:i}}async function kc(n){let e=Ph.resolve(n);try{await ie(async()=>{Ie("Liquid Shadow Intelligence Dashboard");let r=L.getInstance(e),i=wn(),t=Ct(e),o=r.files.getCount(),s=r.exports.getCount(),a=r.files.getLatestScanTime(),c=r.exports.getKindDistribution(5);if(_e("Operational Core",`${_.bold("State")}: ${Oe(e)?_.green("IDENTIFIED (Stable)"):_.red("UNKNOWN (Needs Index)")}
516
+ ${_.bold("Repository")}: ${_.cyan(Ph.basename(e))}
517
+ ${_.bold("Infrastructure")}: ${t.installed?_.green("Git-Hooked"):_.yellow("Standalone")}
518
+ ${_.bold("Last Sync")}: ${a?_.yellow(new Date(a).toLocaleString()):_.red("Never")}`,"blue"),console.log(""),_e("Intelligence Density",`${_.bold("Files Target")}: ${_.cyan(o.toString())}
519
+ ${_.bold("Symbols Mapped")}: ${_.cyan(s.toString())}
520
+ ${_.bold("Graph Edges")}: ${_.cyan(r.imports.getCount().toString())}
521
+ ${_.bold("Hotspots")}: ${_.yellow(c.length.toString())}`,"cyan"),i.query.count>0||i.index.runs>0){console.log("");let l=i.index.runs>0?(i.index.cacheHits/i.index.runs*100).toFixed(1):"0.0";_e("Reasoning Efficiency",`${_.bold("Query Count")}: ${_.cyan(i.query.count.toString())}
522
+ ${_.bold("Avg Latency")}: ${_.yellow(`${i.query.avgLatencyMs?.toFixed(2)||0}ms`)}
523
+ ${_.bold("Cache Hit Rate")}: ${_.green(`${l}%`)}`,"green")}c.length>0&&(console.log(""),console.log(` ${_.bold("Intelligence Landscape")}`),_o(c.map(l=>({label:l.kind,value:l.c,color:"cyan"})),35)),console.log(""),pt("Liquid Shadow is observing.")})}finally{await de(e)}}X();dt();import Xx from"path";async function Rh(n){let e=Xx.resolve(n);try{await ie(async()=>{let r=L.getInstance(e),i=Ct(e),t=wn(),o=Math.floor(t.uptimeMs/1e3),s=Math.floor(o/60),a=Math.floor(s/60),c=a>0?`${a}h ${s%60}m`:s>0?`${s}m ${o%60}s`:`${o}s`,l=t.index.lastCompletedAt?new Date(t.index.lastCompletedAt).toLocaleString():"Never",u=t.index.lastDurationMs?`${(t.index.lastDurationMs/1e3).toFixed(2)}s`:"N/A",d=t.query.avgLatencyMs?`${t.query.avgLatencyMs.toFixed(2)}ms`:"N/A",p=t.query.lastLatencyMs?`${t.query.lastLatencyMs.toFixed(2)}ms`:"N/A",f=t.index.runs>0?(t.index.cacheHits/t.index.runs*100).toFixed(1):"0.0";_e("Performance Metrics",`${_.bold("Uptime")}: ${_.cyan(c)}
524
+ ${_.bold("Indexed")}: ${Oe(e)?_.green("Yes"):_.red("No")}
525
+ ${_.bold("Files")}: ${_.cyan(r.files.getCount().toString())}
526
+ ${_.bold("Exports")}: ${_.cyan(r.exports.getCount().toString())}
527
+ ${_.bold("Imports")}: ${_.cyan(r.imports.getCount().toString())}
528
+ ${_.bold("Last Indexed Commit")}: ${Jn(e)?_.yellow(Jn(e).substring(0,7)):_.red("None")}
529
+ ${_.bold("Git Hooks")}: ${i.installed?_.green("Installed"):_.yellow("Not Installed")}`,"blue"),console.log(""),_e("Index Metrics",`${_.bold("Total Runs")}: ${_.cyan(t.index.runs.toString())}
530
+ ${_.bold("Cache Hits")}: ${_.cyan(t.index.cacheHits.toString())}
531
+ ${_.bold("Cache Hit Rate")}: ${_.cyan(`${f}%`)}
532
+ ${_.bold("Last Duration")}: ${_.yellow(u)}
533
+ ${_.bold("Last Completed")}: ${_.yellow(l)}`,"cyan"),t.index.lastRunPhases.length>0&&(console.log(""),console.log(` ${_.bold("Last Index Run Phases:")}`),t.index.lastRunPhases.forEach(m=>{let h=`${(m.durationMs/1e3).toFixed(2)}s`;console.log(` ${_.gray(m.phase.padEnd(20))} ${_.cyan(h)}`)})),console.log(""),_e("Query Metrics",`${_.bold("Total Queries")}: ${_.cyan(t.query.count.toString())}
534
+ ${_.bold("Avg Latency")}: ${_.yellow(d)}
535
+ ${_.bold("Last Latency")}: ${_.yellow(p)}
536
+ ${_.bold("Search History Failures")}: ${t.query.searchHistoryFailures>0?_.red(t.query.searchHistoryFailures.toString()):_.green("0")}`,"green")})}finally{await de(e)}}import rI from"path";import Qx from"fast-glob";import Nh from"fs";import eS from"ignore";import Ch from"path";var wo=["**/node_modules/**","**/.git/**","**/dist/**","**/build/**","**/vendor/**","**/.next/**","**/.cache/**","**/coverage/**","**/*.min.js"],zh=["**/*.{ts,tsx,yaml,yml,php,py,go}","**/*.prisma","**/*.{graphql,gql}","**/Dockerfile*","**/.env*","**/package.json","**/lerna.json","**/turbo.json","**/pnpm-workspace.yaml"],he={MAX_DEPTH:10,MIN_DEPTH:1,MAX_LIMIT:500,MIN_LIMIT:1,MAX_QUERY_LENGTH:500,DEFAULT_DEPTH:3,DEFAULT_LIMIT:10},Me={FILTERED_QUERY_LIMIT_MULTIPLIER:3,SCORE_BASE:1e3,EXACT_MATCH_BONUS:500,RECENT_FILE_BOOST:80,OLDER_FILE_BOOST:30,RECENT_FILE_THRESHOLD_DAYS:7,OLDER_FILE_THRESHOLD_DAYS:30,FUZZY_MATCH_LIMIT:30,ENABLE_LEXICAL_SCORING:process.env.ENABLE_LEXICAL_SCORING!=="false",LEXICAL_WEIGHT:parseFloat(process.env.LEXICAL_WEIGHT??String(.4)),GRAVITY_STRUCTURAL_WEIGHT:.5},Ec={SECONDS_PER_DAY:86400,SECONDS_PER_YEAR:31536e3},ko={DEFAULT_CONCURRENCY:parseInt(process.env.INDEX_CONCURRENCY??String(5),10)};async function Ic(n,e=[]){let r=eS(),i=Ch.join(n,".gitignore");return Nh.existsSync(i)&&r.add(Nh.readFileSync(i,"utf8")),e.length>0&&r.add(e),(await Qx(zh,{cwd:n,absolute:!0,ignore:wo,stats:!0})).filter(s=>{let a=Ch.relative(n,s.path);return!r.ignores(a)}).map(s=>({path:s.path,mtime:s.stats.mtimeMs}))}import Vh from"fs";function Dh(n){let e=n.split(`
537
+ `),r=[],i=0;for(let t of e)r.push(i),i+=t.length+1;return r}function ge(n,e){for(let r=0;r<e.length;r++)if(e[r+1]>n||r===e.length-1)return r+1;return 1}function Eo(n,e){return e.slice(0,n).toString("utf8").length}function Lh(n){if(n.toString("utf8").length===n.length)return i=>i;let r=new Map;return i=>{let t=r.get(i);return t===void 0&&(t=n.slice(0,i).toString("utf8").length,r.set(i,t)),t}}function Ah(n,e,r){let i=n.start-e,t=n.end-e;return i<0||t>r.length?"":r.slice(i,t).toString("utf8")}function Oh(n){let e=[],r=/\/\*\*[\s\S]*?\*\//g,i;for(;(i=r.exec(n))!==null;)e.push({start:i.index,end:i.index+i[0].length,text:i[0]});return e}function $t(n,e,r){for(let i of e){if(i.start===n)return i.text;if(i.start>n&&i.start<n+50){let t=r.substring(n,i.start);if(/^\s*$/.test(t))return i.text}if(i.end<=n&&i.end>n-50){let t=r.substring(i.end,n);if(/^\s*$/.test(t))return i.text}}return""}function Mh(n){if(!n)return"";let r=n.replace(/\/\*\*|\*\/|\*/g,"").trim().split(`
538
+ `)[0].trim();return r.length>200?r.substring(0,197)+"...":r}function Io(n,e,r){let i=n.toLowerCase(),t=e.toLowerCase();return i.includes("components/")||i.endsWith(".tsx")?"Component":i.startsWith("use")||t.startsWith("use")?"Hook":i.includes("models/")||t.endsWith("model")?"Model":i.includes("services/")||i.includes("controllers/")||i.includes("handlers/")||i.includes("mcp/")||i.endsWith("service.ts")||i.endsWith("controller.ts")||i.endsWith("handler.ts")||t.endsWith("service")||t.endsWith("controller")||t.endsWith("handler")?"Service":i.includes("repositories/")||i.includes("repos/")||i.endsWith("repository.ts")||i.endsWith("repo.ts")||t.endsWith("repository")||t.endsWith("repo")?"Repository":r==="TsInterfaceDeclaration"||r==="TsTypeAliasDeclaration"?"Type Definition":"Other"}function ii(n){let e=[];return/\b(fetch|axios|superagent|got)\s*\(|import\s+.*\b(http|https|node-fetch)\b/i.test(n)&&e.push("Network"),(/\b(knex|prisma|typeorm|mongoose|sequelize|pg|mysql|sqlite3)\b/i.test(n)||/\b(SELECT\s+.*FROM|INSERT\s+INTO|UPDATE\s+.*SET|DELETE\s+FROM)\b/i.test(n)||/\.query\s*\(|\.execute\s*\(/i.test(n)&&/db|database|client|pool/i.test(n))&&e.push("Database"),(/\bfs\./i.test(n)||/\b(readFileSync|writeFileSync|readFile|writeFile|readdir)\b/.test(n)||/import\s+.*\bfs\b/.test(n))&&e.push("File System"),(/\b(localStorage|sessionStorage|indexedDB)\./.test(n)||/\bdocument\.cookie\b/.test(n))&&e.push("Browser Storage"),e}function nt(n,e){if(!n)return"";let r=n.trimStart();for(;/^\/\*[\s\S]*?\*\//.test(r);)r=r.replace(/^\/\*[\s\S]*?\*\/\s*/,"");for(;/^\/\/[^\n]*\n/.test(r);)r=r.replace(/^\/\/[^\n]*\n\s*/,"");if(r=r.replace(/^(?:import[^\n]*\n)+/,"").replace(/^(?:export\s+\{[^}]*\}\s+from\s+['"][^'"]+['"];?\s*\n?)+/,"").trim(),e==="TsInterfaceDeclaration"||e==="TsTypeAliasDeclaration")return r;let i=0,t=0,o=r.length;for(let a=0;a<r.length;a++){let c=r[a];if(c==="(")i++;else if(c===")")i--;else if(c==="<")t++;else if(c===">")t--;else if(c==="{"){if(i===0&&t===0){o=a;break}}else if(c===";"&&i===0&&t===0){o=a;break}else if(c==="="&&r[a+1]===">"&&i===0&&t===0){o=a+2;break}}let s=r.substring(0,o).trim();return s.length>500?s.slice(0,497)+"...":s}function jh(n){let e=[];for(let r of n)r.type==="ImportDeclaration"&&e.push({module:r.source.value,name:r.specifiers.map(i=>i.type==="ImportDefaultSpecifier"?"default":i.type==="ImportNamespaceSpecifier"?"*":i.local?.value||i.imported?.value||"*").join(", ")}),r.type==="ExportAllDeclaration"&&e.push({module:r.source.value,name:"*"}),r.type==="ExportNamedDeclaration"&&r.source&&e.push({module:r.source.value,name:r.specifiers.map(i=>i.type==="ExportSpecifier"?i.orig.value:"*").join(", ")});return e}function tS(n,e){for(let r of n){if((r.type==="FunctionDeclaration"||r.type==="ClassDeclaration")&&(r.identifier?.value||r.id?.value)===e)return r.span;if(r.type==="VariableDeclaration"){for(let i of r.declarations)if(i.id?.type==="Identifier"&&i.id.value===e)return i.span||r.span}if((r.type==="TsTypeAliasDeclaration"||r.type==="TsInterfaceDeclaration"||r.type==="TsEnumDeclaration")&&(r.id?.value||r.identifier?.value)===e)return r.span;if(r.type==="ExportDeclaration"){let i=r.declaration;if(!i)continue;if((i.type==="FunctionDeclaration"||i.type==="ClassDeclaration")&&(i.identifier?.value||i.id?.value)===e)return i.span||r.span;if(i.type==="VariableDeclaration"){for(let t of i.declarations)if(t.id?.type==="Identifier"&&t.id.value===e)return t.span||i.span||r.span}}}return null}function Fh(n,e,r,i,t,o,s,a,c){let l=c??(d=>Eo(d,r)),u=[];for(let d of n){if(d.type==="ExportDeclaration"){let p=d.declaration,f=p.type,m="";f==="VariableDeclaration"?m=p.declarations.map(S=>S.id.value).join("",""):m=p.id?.value||p.identifier?.value||"anonymous";let h=l(d.span.start-e),v=l(d.span.end-e),b=$t(h,o,i),g=a(d.span),x=[];if(d.type==="ExportDeclaration"&&(f==="ClassDeclaration"||f==="ClassExpression")){let S=p.body||[];for(let E of S)if(E.type==="ClassMethod"||E.type==="ClassProperty"){let w=E.key.value;if(!w)continue;let z=l(E.span.start-e),R=l(E.span.end-e),U=a(E.span),I=$t(z,o,i);x.push({name:w,kind:E.type,signature:nt(U,E.type),line:ge(z,t),endLine:ge(R,t),doc:I,classification:E.type==="ClassMethod"?"Method":"Property",capabilities:"[]"})}}else if(f==="FunctionDeclaration"&&p.body?.type==="BlockStatement")x=Tc(p.body.stmts,e,r,i,t,o,a,l);else if(f==="VariableDeclaration"){for(let S of p.declarations)if(S.init&&(S.init.type==="ArrowFunctionExpression"||S.init.type==="FunctionExpression")&&S.init.body?.type==="BlockStatement"){x=Tc(S.init.body.stmts,e,r,i,t,o,a,l);break}}u.push({name:m,kind:f,signature:nt(g,f),line:ge(h,t),endLine:ge(v,t),doc:b,classification:Io(s,m,f),capabilities:JSON.stringify(ii(g)),members:x})}if(d.type==="ExportNamedDeclaration"){for(let p of d.specifiers)if(p.type==="ExportSpecifier"){let f=p.orig.value,m=p.exported?.value||f,v=tS(n,f)||d.span,b=l(v.start-e),g=l(v.end-e),x=$t(b,o,i);u.push({name:m,kind:"ExportSpecifier",signature:`export { ${f} }`,line:ge(b,t),endLine:ge(g,t),doc:x,classification:"Export mapping",capabilities:"[]"})}}if(d.type==="ExportDefaultDeclaration"){let p=l(d.span.start-e),f=l(d.span.end-e),m=$t(p,o,i),h=a(d.span),v=[];if(d.decl.type==="ClassExpression"||d.decl.type==="ClassDeclaration"){let b=d.decl.body||[];for(let g of b)if(g.type==="ClassMethod"||g.type==="ClassProperty"){let x=g.key.value;if(!x)continue;let S=l(g.span.start-e),E=l(g.span.end-e),w=a(g.span),z=$t(S,o,i);v.push({name:x,kind:g.type,signature:nt(w,g.type),line:ge(S,t),endLine:ge(E,t),doc:z,classification:g.type==="ClassMethod"?"Method":"Property",capabilities:"[]"})}}else(d.decl.type==="FunctionExpression"||d.decl.type==="FunctionDeclaration"||d.decl.type==="ArrowFunctionExpression")&&d.decl.body?.type==="BlockStatement"&&(v=Tc(d.decl.body.stmts,e,r,i,t,o,a,l));u.push({name:"default",kind:"DefaultExport",signature:nt(h,"DefaultExport"),line:ge(p,t),endLine:ge(f,t),doc:m,classification:"Default Export",capabilities:JSON.stringify(ii(h)),members:v})}if(d.type==="ExportAllDeclaration"){let p=l(d.span.start-e),f=l(d.span.end-e),m=d.source.value,h=$t(p,o,i);u.push({name:"*",kind:"ExportAllDeclaration",signature:`export * from "${m}"`,line:ge(p,t),endLine:ge(f,t),doc:h,classification:"Re-export",capabilities:"[]"})}}return u}function Tc(n,e,r,i,t,o,s,a){let c=[];for(let l of n){if(l.type==="VariableDeclaration")for(let u of l.declarations){let d=[],p=m=>{if(m.type==="Identifier")d.push({name:m.value,span:m.span});else if(m.type==="ArrayPattern")for(let h of m.elements)h&&p(h);else if(m.type==="ObjectPattern")for(let h of m.properties)h.type==="AssignmentPatternProperty"?d.push({name:h.key.value,span:h.span}):h.type==="KeyValuePatternProperty"&&p(h.value)};p(u.id);let f=u.init&&(u.init.type==="ArrowFunctionExpression"||u.init.type==="FunctionExpression");for(let m of d){let h=f?u.init.span||u.span||m.span:u.span||m.span,v=f?u.init.type:"VariableDeclaration",b=f?"Internal Function":"Internal Variable",g=a(h.start-e),x=a(h.end-e),S=s(h),E=$t(g,o,i);c.push({name:m.name,kind:v,signature:nt(S,v),line:ge(g,t),endLine:ge(x,t),doc:E,classification:b,capabilities:"[]"})}}if(l.type==="FunctionDeclaration"){let u=l.identifier?.value||l.ident?.value||"anonymous",d=a(l.span.start-e),p=a(l.span.end-e),f=s(l.span),m=$t(d,o,i);c.push({name:u,kind:"FunctionDeclaration",signature:nt(f,"FunctionDeclaration"),line:ge(d,t),endLine:ge(p,t),doc:m,classification:"Internal Function",capabilities:"[]"})}if(l.type==="ReturnStatement"&&l.argument?.type==="ObjectExpression")for(let u of l.argument.properties){let d="",p=u.span||u.key?.span||u.ident?.span;if(u.type==="KeyValueProperty"){let f=u.key;d=f?.value||f?.raw||(f?.type==="Identifier"?f.value:"")}else u.type==="MethodProperty"?d=u.key?.value||u.key?.raw||"":u.type==="ShorthandProperty"?d=u.ident?.value||"":u.type==="Identifier"&&(d=u.value||"");if(d&&p){let f=a(p.start-e),m=a(p.end-e),h=s(p),v=$t(f,o,i);c.push({name:d,kind:"ReturnProperty",signature:nt(h,"ReturnProperty"),line:ge(f,t),endLine:ge(m,t),doc:v,classification:"Return Member",capabilities:"[]"})}}if(l.type==="ExpressionStatement"&&l.expression.type==="CallExpression"){let u=l.expression;if(u.callee.type==="MemberExpression"&&(u.callee.property?.value==="on"||u.callee.property?.value==="once")){let d=u.arguments[0]?.expression?.value,p=u.arguments[1]?.expression;if(d&&p&&(p.type==="ArrowFunctionExpression"||p.type==="FunctionExpression")){let f=a(p.span.start-e),m=a(p.span.end-e),h=s(p.span);c.push({name:`on:${d}`,kind:p.type,signature:nt(h,p.type),line:ge(f,t),endLine:ge(m,t),doc:"",classification:"Event Handler",capabilities:"[]"})}}if(u.callee.type==="Identifier"&&u.callee.value==="addRoute"&&u.arguments.length>=3){let d=u.arguments[2].expression;if(d.type==="StringLiteral"){let p=d.value,f=a(u.span.start-e),m=a(u.span.end-e),h=s(u.span);c.push({name:p,kind:"HTTP Route",signature:nt(h,"HTTP Route"),line:ge(f,t),endLine:ge(m,t),doc:"",classification:"Service Boundary",capabilities:JSON.stringify({path:p})})}}}}return c}function Uh(n,e,r,i,t,o){let s=o??(l=>Eo(l,r)),a=[];function c(l){if(!(!l||typeof l!="object")){if(l.type==="CallExpression"){let u=nS(l);if(u){let d=s(l.span.start-e);a.push({...u,line:ge(d,i),snippet:t(l.span)})}}for(let u of Object.keys(l)){if(u==="span")continue;let d=l[u];Array.isArray(d)?d.forEach(c):typeof d=="object"&&c(d)}}}return n.forEach(c),a}function nS(n){let{callee:e,arguments:r}=n;if(!r||r.length===0)return null;if(e.type==="Identifier"&&e.value,e.type==="Identifier"&&e.value==="addRoute"&&r.length>=3){let i=r[2].expression;if(i.type==="StringLiteral")return{type:"api_route",name:i.value,direction:"consume"}}if(e.type==="MemberExpression"&&e.property?.type==="Identifier"){let i=e.property.value;if(i==="emit"&&r[0].expression.type==="StringLiteral")return{type:"socket_event",name:r[0].expression.value,direction:"produce"};if(i==="on"&&r[0].expression.type==="StringLiteral")return{type:"socket_event",name:r[0].expression.value,direction:"consume"};if(["get","post","put","delete","patch"].includes(i)&&r[0].expression.type==="StringLiteral"){let o=r[0].expression.value,s=e.object.type==="Identifier"?e.object.value:"";if(["axios","http","request","appApi","restApi","adminApi","client"].includes(s))return{type:"api_route",name:o,direction:"produce"};if(o.startsWith("/"))return{type:"api_route",name:o,direction:"consume"}}}return e.type==="Identifier"&&e.value==="fetch"&&r[0].expression.type==="StringLiteral"?{type:"api_route",name:r[0].expression.value,direction:"produce"}:null}function oi(n){let{classification:e,capabilities:r,exports:i,fileName:t}=n,o={Network:"API integration",Database:"data persistence","File System":"file I/O operations","Browser Storage":"client-side storage"},s=r.map(m=>o[m]).filter(Boolean).join(" and "),c={Component:(m,h)=>{let v=h.find(g=>g.kind==="FunctionDeclaration"||g.kind==="ClassDeclaration")?.name,b=v?`React component: ${v}`:"React UI component";return m?`${b} with ${m}`:b},Hook:(m,h)=>{let v=h.find(g=>g.name.startsWith("use"))?.name,b=v?`Custom React hook: ${v}`:"Custom React hook";return m?`${b} for ${m}`:b},Service:(m,h)=>{let b=`Service layer: ${h[0]?.name||"Service"}`;return m?`${b} handling ${m}`:b},Repository:(m,h)=>`Data repository: ${h[0]?.name||"Repository"} for ${m||"data access"}`,"Type Definition":(m,h)=>`Type definitions: ${h.slice(0,3).map(b=>b.name).join("")}${h.length>3?"...":""}`,Model:(m,h)=>`Data model: ${h[0]?.name||"Model"}`,"HTTP Route":(m,h)=>{let v=h.filter(b=>b.classification==="Service Boundary");return v.length>0?`API endpoints: ${v.slice(0,3).map(b=>b.name).join("")}`:"API route handler"},"Micro IR (PHP)":(m,h)=>{let v=h.some(g=>g.classification==="Service Boundary"),b=h.find(g=>g.kind==="ClassDeclaration")?.name;return v?"PHP controller with API routes":b?`PHP class: ${b}`:"PHP module"},"Micro IR (Python)":(m,h)=>{let v=h.some(g=>g.classification==="Service Boundary"),b=h.find(g=>g.kind==="ClassDeclaration")?.name;return v?"Python API handler with routes":b?`Python class: ${b}`:"Python module"},"Micro IR (Go/TS) ":(m,h)=>{let v=h.some(g=>g.kind==="TypeDeclaration"),b=h.filter(g=>g.kind==="FunctionDeclaration");return v&&b.length>0?`Go package: types and ${b.length} function(s)`:v?"Go package: type definitions":b.length>0?`Go package: ${b[0].name} and ${b.length} function(s)`:"Go module"},"Micro IR (Rust/TS) ":(m,h)=>{let v=h.find(x=>x.kind==="TraitDeclaration")?.name,b=h.find(x=>x.kind==="StructDeclaration")?.name,g=h.filter(x=>x.kind==="FunctionDeclaration");return v?m.includes("Rust trait")?`Rust module: trait ${v}`:`Rust module: ${v}`:b?`Rust module: struct ${b}`:g.length>0?`Rust module: ${g.length} function(s)`:"Rust module"}}[e];if(c)return c(s,i);if(i.length===0)return t?`Module: ${t}`:"Module with no exports";let l=i.filter(m=>m.kind==="FunctionDeclaration"),u=i.filter(m=>m.kind==="ClassDeclaration"),d=i.filter(m=>m.kind==="TsInterfaceDeclaration"||m.kind==="TsTypeAliasDeclaration"),p=[];if(u.length>0&&p.push(`Class: ${u[0].name}`),l.length>0){let m=l.slice(0,2).map(h=>h.name).join("");p.push(`Functions: ${m}`)}d.length>0&&p.push(`Types: ${d.length}`);let f=p.length>0?p.join(" | "):`Module with ${i.length} export(s)`;return s?`${f} \u2014 ${s}`:f}function Zh(n){let e=new Set;function r(i){if(!(!i||typeof i!="object")){i.typeAnnotation&&Se(i.typeAnnotation,e),(i.type==="TsTypeReference"||i.type==="TsTypeAnnotation")&&Se(i,e);for(let t in i){if(t==="span"||t==="comments"||t==="interpreter")continue;let o=i[t];o&&typeof o=="object"&&(Array.isArray(o)?o.forEach(r):r(o))}}}return n.forEach(i=>r(i)),Array.from(e)}function Se(n,e){if(n){if(n.type==="TsTypeAnnotation"){Se(n.typeAnnotation,e);return}n.type==="TsTypeReference"&&(n.typeName?.type==="Identifier"&&e.add(n.typeName.value),n.typeName?.type==="TsQualifiedName"&&Hh(n.typeName,e),n.typeParams&&Se(n.typeParams,e)),n.type==="TsArrayType"&&Se(n.elementType,e),n.type==="TsUnionType"&&n.types?.forEach(r=>Se(r,e)),n.type==="TsIntersectionType"&&n.types?.forEach(r=>Se(r,e)),n.type==="TsTupleType"&&n.elemTypes?.forEach(r=>Se(r.ty,e)),(n.type==="TsFunctionType"||n.type==="TsConstructorType")&&(n.params?.forEach(r=>Se(r.typeAnnotation,e)),n.typeAnnotation&&Se(n.typeAnnotation,e)),n.type==="TsTypeParameterDeclaration"&&n.params?.forEach(r=>{r.constraint&&Se(r.constraint,e),r.default&&Se(r.default,e)}),n.type==="TsTypeParameterInstantiation"&&n.params?.forEach(r=>Se(r,e)),n.type==="TsMappedType"&&n.typeAnnotation&&Se(n.typeAnnotation,e),n.type==="TsIndexedAccessType"&&(Se(n.objectType,e),Se(n.indexType,e)),n.type==="TsConditionalType"&&(Se(n.checkType,e),Se(n.extendsType,e),Se(n.trueType,e),Se(n.falseType,e)),n.type==="TsTypeLiteral"&&n.members?.forEach(r=>{r.typeAnnotation&&Se(r.typeAnnotation,e)})}}function Hh(n,e){n.type==="TsQualifiedName"?(n.left&&Hh(n.left,e),n.right?.value&&e.add(n.right.value)):n.type==="Identifier"&&e.add(n.value)}import Kh from"path";import Pc from"path";J();oo();import Bh from"path";import rS from"fs";import{fileURLToPath as iS}from"url";import*as En from"web-tree-sitter";var BP=Bh.dirname(iS(import.meta.url)),Wh=$.child({module:"parser:tree-sitter"}),To=class{parser=null;languages=new Map;async ensureInitialized(){if(this.parser)return;let e=En.Parser||En;await e.init(),this.parser=new e}async getLanguage(e){if(this.languages.has(e))return this.languages.get(e);let r=qn("resources","grammars",`tree-sitter-${this.getLangName(e)}.wasm`);if(!rS.existsSync(r))return Wh.warn({grammarPath:r},"Grammar WASM not found"),null;try{let i=await En.Language.load(r);return this.languages.set(e,i),i}catch(i){return Wh.error({err:i,ext:e},"Failed to load language grammar"),null}}getLangName(e){switch(e.toLowerCase()){case".php":return"php";case".py":return"python";case".go":return"go";case".rs":return"rust";default:return""}}getQueries(e){switch(e.toLowerCase()){case".php":return`
496
539
  (function_definition name: (name) @name) @func
497
540
  (class_declaration name: (name) @name) @class
498
541
  (interface_declaration name: (name) @name) @interface
@@ -516,239 +559,112 @@ ${f.bold("Search History Failures")}: ${s.query.searchHistoryFailures>0?f.red(s.
516
559
  (trait_item name: (_type_identifier) @name) @trait
517
560
  (type_item name: (_type_identifier) @name) @type
518
561
  (use_declaration argument: (_) @name) @import
519
- `;default:return""}}mapKind(e,t){if(e==="import")return"ImportDeclaration";if(t===".php"){if(e==="func")return"FunctionDeclaration";if(e==="class")return"ClassDeclaration";if(e==="interface")return"InterfaceDeclaration";if(e==="trait")return"TraitDeclaration";if(e==="method")return"MethodDeclaration"}if(t===".py"){if(e==="func")return"FunctionDeclaration";if(e==="class")return"ClassDeclaration"}if(t===".go"){if(e==="func")return"FunctionDeclaration";if(e==="type")return"TypeDeclaration"}if(t===".rs"){if(e==="func")return"FunctionDeclaration";if(e==="struct")return"StructDeclaration";if(e==="enum")return"EnumDeclaration";if(e==="trait")return"TraitDeclaration";if(e==="type")return"TypeDeclaration"}return"Unknown"}mapClassification(e){return e==="import"?"Dependency":e==="func"||e==="method"?"Function":e==="class"||e==="interface"||e==="trait"||e==="struct"||e==="enum"||e==="type"?"Class":"Other"}async parse(e,t){await this.ensureInitialized();let n=ir.extname(e).toLowerCase(),s=await this.getLanguage(n);if(!s||!this.parser)return[];this.parser.setLanguage(s);let r=this.parser.parse(t),o=t.split(`
520
- `),c=this.getQueries(n);if(!c)return[];let l=new at.Query(s,c).matches(r.rootNode),p=[];for(let u of l){let d=u.captures.find(g=>g.name==="name")?.node,m=u.captures[0].node,h=u.captures[0].name;if(d){let g=m.startPosition.row+1,_=m.endPosition.row+1,b=o[m.startPosition.row].trim();p.push({name:d.text,kind:this.mapKind(h,n),classification:this.mapClassification(h),signature:b,line:g,endLine:_,doc:"",capabilities:"{}"})}}return p}};var Dn=class{parse(e,t=!1){let n=[],s=[],r=e.split(`
521
- `),o="",c="",a=0,l=0,p=-1,u=-1,d=[],m=[],h=!1,g=t?"api":"",_="",b=/^namespace\s+([a-zA-Z0-9_\\]+);/,y=/^(?:abstract\s+)?(?:readonly\s+)?class\s+([a-zA-Z0-9_]+)/,E=/^interface\s+([a-zA-Z0-9_]+)/,w=/^trait\s+([a-zA-Z0-9_]+)/,x=/^(?:public|protected|private|static|\s)*function\s+([a-zA-Z0-9_]+)\s*\(/,v=/^use\s+([a-zA-Z0-9_\\]+)(?:\s+as\s+([a-zA-Z0-9_]+))?;/,k=/^#\[([a-zA-Z0-9_\\]+)(?:\((.*)\))?\]/,N=/(?:Route::|router->|\$router->|->)(get|post|put|delete|patch|match)\s*\(\s*(?:uri\s*:\s*)?['"]([^'"]+)['"]/,O=/->prefix\s*\(\s*(?:prefix\s*:\s*)?['"]([^'"]+)['"]/;for(let T=0;T<r.length;T++){let I=r[T].trim();if(!I)continue;let U=(I.match(/{/g)||[]).length,H=(I.match(/}/g)||[]).length,P=l;if(l+=U-H,c&&l<=u){let F=n.find(M=>M.name===c&&M.line===a);F&&(F.endLine=T+1),c="",u=-1}if(o&&l<=p){let F=n.find(M=>M.name===o&&(M.kind==="ClassDeclaration"||M.kind==="TraitDeclaration"||M.kind==="InterfaceDeclaration"));F&&(F.endLine=T+1),o="",p=-1}let R=I.match(O);if(R&&(g=R[1]),I.includes("});")&&(g=""),I.startsWith("/**")){h=!0,m=[];continue}if(h){I.endsWith("*/")?h=!1:m.push(I.replace(/^\*\s?/,""));continue}let A=I.match(k);if(A){d.push(A[1]);continue}let D=I.match(b);if(D){_=D[1]||"",d=[],m=[];continue}let $=I.match(y);if($){o=$[1],p=l-U;let F={attributes:d};_&&(F.namespace=_),n.push({name:o,kind:"ClassDeclaration",classification:"Class",signature:`class ${o}`,line:T+1,endLine:T+1,doc:m.join(`
522
- `).trim(),capabilities:JSON.stringify(F),members:[]}),d=[],m=[];continue}let L=I.match(E);if(L){let F=L[1];o=F,p=l-U,n.push({name:F,kind:"InterfaceDeclaration",classification:"Interface",signature:`interface ${F}`,line:T+1,endLine:T+1,doc:m.join(`
523
- `).trim(),capabilities:JSON.stringify({attributes:d}),members:[]}),d=[],m=[];continue}let Y=I.match(w);if(Y){let F=Y[1];o=F,p=l-U,n.push({name:F,kind:"TraitDeclaration",classification:"Trait",signature:`trait ${F}`,line:T+1,endLine:T+1,doc:m.join(`
524
- `).trim(),capabilities:JSON.stringify({attributes:d}),members:[]}),d=[],m=[];continue}let he=I.match(x);if(he){let F=he[1],M=!!o;c=F,a=T+1,u=l-U;let _e=!1,de={};for(let ie of d)ie.toLowerCase().includes("route")&&(_e=!0,de={type:"route",method:"GET",path:"/"});let Ce=m.join(`
525
- `).trim();if(_e){let ie=de.path||"/";n.push({name:ie,kind:"HTTP Route",classification:"Service Boundary",signature:`Function: ${F}`,line:T+1,endLine:T+1,doc:Ce,capabilities:JSON.stringify({type:"route",handler:o?`${o}@${F}`:F,...de})}),s.push({type:"api_route",name:ie,direction:"consume",line:T+1,snippet:I})}n.push({name:F,kind:M?"MethodDeclaration":"FunctionDeclaration",classification:M?"Method":"Function",signature:`${M?o+":: ":""}${F}`,line:T+1,endLine:T+1,doc:Ce,capabilities:JSON.stringify({attributes:d})}),d=[],m=[];continue}let pe=I.match(v);if(pe){let F=pe[1]||"",M=pe[2]||F.split("\\").pop()||"";n.push({name:M,kind:"ImportSpecifier",classification:"Dependency",signature:`use ${F}`,line:T+1,endLine:T+1,doc:"",capabilities:JSON.stringify({type:"use",namespace:F})}),d=[],m=[];continue}let ae=I.match(N);if(ae){let F=ae[1].toUpperCase(),M=ae[2];if(I.includes("Route::")||I.includes("router->")||I.includes("action")||I.includes(",")&&!I.includes("view(")){if(g){let Be=g.startsWith("/")?g:`/${g}`,ds=M.startsWith("/")?M:`/${M}`;M=(Be+ds).replace(/\/+/g,"/")}let de=null,Ce=I.match(/\[\s*([a-zA-Z0-9_]+)::class\s*,\s*['"]([^'"]+)['"]\s*\]/);if(Ce)de=`${Ce[1]}@${Ce[2]}`;else if(I.includes("::class")){let Be=I.match(/([a-zA-Z0-9_]+)::class/);Be&&(de=Be[1])}let ie=I;!I.endsWith(");")&&T+1<r.length&&(ie+=" "+r[T+1].trim(),!ie.endsWith(");")&&T+2<r.length&&(ie+=" "+r[T+2].trim())),n.push({name:M,kind:"HTTP Route",classification:"Service Boundary",signature:ie,line:T+1,endLine:T+1,doc:"",capabilities:JSON.stringify({type:"route",method:F,path:M,handler:de})}),s.push({type:"api_route",name:M,direction:"consume",line:T+1,snippet:ie,method:F,url:M}),m=[];continue}}let ye=/(?:\$client|client|Http)::(get|post|put|delete|patch|request)\s*\(\s*(?:url\s*:\s*)?([^,)]+)|(?:\$client|client)->(request|get|post|put|delete|patch)\s*\(\s*([^,)]+)/,j=I.match(ye);if(j){let F=(j[1]||j[3]).toUpperCase(),M=(j[2]||j[4]).trim();(M.startsWith("'")&&M.endsWith("'")||M.startsWith('"')&&M.endsWith('"'))&&(M=M.substring(1,M.length-1)),s.push({type:"api_route",name:M,direction:"produce",line:T+1,snippet:I,method:F,url:M})}!I.startsWith("#[")&&!I.startsWith("//")&&!I.startsWith("*")&&!h&&(d=[],m=[])}return{nodes:n,events:s}}};var On=class{currentRoutePrefix="";parse(e){this.currentRoutePrefix="";let t=[],n=[],s=e.split(`
526
- `),r=[{indent:-1,name:"root",type:"root"}],o=[],c=/^class\s+([a-zA-Z0-9_]+)/,a=/^async\s+def\s+([a-zA-Z0-9_]+)|^def\s+([a-zA-Z0-9_]+)/,l=/^(?:from\s+([a-zA-Z0-9_\.]+)\s+import|import\s+([a-zA-Z0-9_\.]+))/,p=/^@(.*)/;function u(b){return b.trim().split(/[.(]/)[0]?.trim()||b}function d(b){let y=b.decorators.map(w=>u(w.raw)),E={decorators:b.decorators,decoratorNames:y};return b.async===!0&&(E.async=!0),JSON.stringify(E)}let m=!1,h="",g=[],_=[];for(let b=0;b<s.length;b++){let y=s[b],E=y.trim();if(!E||E.startsWith("#"))continue;let w=/^([a-zA-Z0-9_]+)\s*=\s*(?:APIRouter|Blueprint)\s*\(\s*(?:prefix\s*=\s*)?['"]([^'"]+)['"]/,x=E.match(w);if(x&&(this.currentRoutePrefix=x[2]),m){if(E.endsWith(h)||E.includes(h)){m=!1;let $=E.replace(h,"").trim();$&&g.push($);let L=r[r.length-1];L.node&&(L.node.doc=g.join(`
527
- `).trim()),g=[]}else g.push(E);continue}let v=y.search(/\S/),k=y.trim(),N=k.match(/^(['"]{3})/);if(N){let $=N[1],L=r[r.length-1];if(L.node&&!L.node.doc){if(k.substring(3).includes($)){let Y=k.replace(new RegExp($,"g"),"").trim();L.node.doc=Y}else{m=!0,h=$;let Y=k.substring(3).trim();Y&&g.push(Y)}continue}}for(;r.length>1&&r[r.length-1].indent>=v;)r.pop();let O=r[r.length-1],T=k.match(p);if(T){o.push({raw:T[1].trim(),line:b+1});continue}let I=k.match(c);if(I){let $=I[1],L={name:$,kind:"ClassDeclaration",classification:"Class",signature:`class ${$}`,line:b+1,endLine:b+1,doc:"",capabilities:d({decorators:o}),members:[]};_.push(L),O.node?(O.node.members||(O.node.members=[]),O.node.members.push(L)):t.push(L),r.push({indent:v,name:$,type:"class",node:L}),o=[];continue}let U=k.match(a);if(U){let $=!!U[1],L=U[1]||U[2],Y=O.type==="class",he=!1,pe={};for(let M of o)if(M.raw.match(/(?:app|router)\.(get|post|put|delete|patch)/)){he=!0;let de=["get","post","put","delete","patch"].find(Be=>M.raw.toLowerCase().includes(`.${Be}`))?.toUpperCase()||"GET",Ce=M.raw.match(/['"]([^'"]+)['"]/),ie=Ce?Ce[1]:"/";if(this.currentRoutePrefix){let Be=this.currentRoutePrefix.endsWith("/")?this.currentRoutePrefix.slice(0,-1):this.currentRoutePrefix,ds=ie.startsWith("/")?ie:`/${ie}`;ie=Be+ds}pe={type:"route",method:de,path:ie}}if(he){let M=pe.path||"",_e={name:M||L,kind:"HTTP Route",classification:"Service Boundary",signature:`Function: ${L}`,line:b+1,endLine:b+1,doc:"",capabilities:JSON.stringify({handler:Y?`${O.name}.${L}`:L,async:$,...pe})};_.push(_e),t.push(_e),n.push({type:"api_route",name:M,direction:"consume",line:b+1,snippet:k})}let ae=o.some(M=>M.raw==="staticmethod"),ye=o.some(M=>M.raw==="classmethod"),j=`${$?"async ":""}${Y?(ae?"@staticmethod ":ye?"@classmethod ":"")+O.name+".":""}${L}`,F={name:L,kind:$&&Y?"AsyncMethodDeclaration":$?"AsyncFunctionDeclaration":Y?"MethodDeclaration":"FunctionDeclaration",classification:Y?ae||ye?"Static Method":"Method":"Function",signature:j,line:b+1,endLine:b+1,doc:"",capabilities:d({decorators:o,async:$}),members:[]};_.push(F),O.node?(O.node.members||(O.node.members=[]),O.node.members.push(F)):t.push(F),r.push({indent:v,name:L,type:"function",node:F}),o=[];continue}let H=/^(?:path|re_path|url)\s*\(\s*['"]([^'"]+)['"]/,P=k.match(H);if(P){let $=P[1].replace(/^\^/,""),L={name:$,kind:"HTTP Route",classification:"Service Boundary",signature:k.trim(),line:b+1,endLine:b+1,doc:"",capabilities:JSON.stringify({type:"route",method:"GET",path:$})};_.push(L),t.push(L),n.push({type:"api_route",name:$,direction:"consume",line:b+1,snippet:k});continue}let R=/(?:requests|httpx|client|http)\.(get|post|put|delete|patch|request)\s*\(\s*(?:url\s*:\s*)?([^,)]+)/,A=k.match(R);if(A){let $=A[1].toUpperCase(),L=A[2].trim();(L.startsWith("'")&&L.endsWith("'")||L.startsWith('"')&&L.endsWith('"'))&&(L=L.substring(1,L.length-1)),n.push({type:"api_route",name:L,direction:"produce",line:b+1,snippet:k,method:$,url:L})}let D=k.match(l);if(D){let $=D[1]||D[2],L={name:$,kind:"ImportSpecifier",classification:"Dependency",signature:`import ${$}`,line:b+1,endLine:b+1,doc:"",capabilities:JSON.stringify({type:"import",module:$})};_.push(L),t.push(L),o=[];continue}o=[],O.node&&(O.node.endLine=b+1)}return{nodes:_,events:n}}};var rr=[{extension:[".php"],rules:[]},{extension:[".py"],rules:[]},{extension:[".go"],rules:[{regex:/func\s+([a-zA-Z0-9_]+)\(/g,onMatch:i=>({name:i[1],kind:"FunctionDeclaration",classification:"Function",signature:i[0]})},{regex:/func\s+\([^\)]+\)\s+([a-zA-Z0-9_]+)\(/g,onMatch:i=>({name:i[1],kind:"MethodDeclaration",classification:"Method",signature:i[0]})},{regex:/import\s+['"]([^'"]+)['"]/g,onMatch:i=>({name:i[1],kind:"ImportSpecifier",classification:"Dependency",signature:i[0],meta:{type:"import",path:i[1]}})}]},{extension:[".rs"],rules:[{regex:/fn\s+([a-zA-Z0-9_]+)\s*\(/g,onMatch:i=>({name:i[1],kind:"FunctionDeclaration",classification:"Function",signature:i[0]})},{regex:/struct\s+([a-zA-Z0-9_]+)/g,onMatch:i=>({name:i[1],kind:"StructDeclaration",classification:"Class",signature:i[0]})},{regex:/enum\s+([a-zA-Z0-9_]+)/g,onMatch:i=>({name:i[1],kind:"EnumDeclaration",classification:"Class",signature:i[0]})},{regex:/trait\s+([a-zA-Z0-9_]+)/g,onMatch:i=>({name:i[1],kind:"TraitDeclaration",classification:"Class",signature:i[0]})},{regex:/use\s+([a-zA-Z0-9_:]+(?:\s+as\s+[a-zA-Z0-9_]+)?);/g,onMatch:i=>({name:i[1].trim(),kind:"ImportDeclaration",classification:"Dependency",signature:i[0],meta:{type:"import",path:i[1].trim()}})}]},{extension:[".ts",".tsx",".js",".jsx",".mjs",".cjs"],rules:[{regex:/(?:export\s+)?(?:async\s+)?function\s+([a-zA-Z0-9_]+)\s*\(/g,onMatch:i=>({name:i[1],kind:"FunctionDeclaration",classification:"Function"})},{regex:/(?:export\s+)?class\s+([a-zA-Z0-9_]+)/g,onMatch:i=>({name:i[1],kind:"ClassDeclaration",classification:"Class"})},{regex:/(?:export\s+)?interface\s+([a-zA-Z0-9_]+)/g,onMatch:i=>({name:i[1],kind:"InterfaceDeclaration",classification:"Interface"})},{regex:/(?:export\s+)?const\s+([a-zA-Z0-9_]+)\s*=/g,onMatch:i=>({name:i[1],kind:"VariableDeclaration",classification:"Constant"})},{regex:/import\s+.*\s+from\s+['"]([^'"]+)['"]/g,onMatch:i=>({name:i[1],kind:"ImportDeclaration",classification:"Dependency",meta:{path:i[1]}})}]}];function sc(i,e){let t=[];if(i===".go"&&e.some(n=>n.kind==="TypeDeclaration")&&t.push("Go type"),i===".rs"&&(e.some(n=>n.kind==="TraitDeclaration")&&t.push("Rust trait"),e.some(n=>n.kind==="StructDeclaration")&&t.push("Rust struct"),e.some(n=>n.kind==="EnumDeclaration")&&t.push("Rust enum")),i===".py"){for(let n of e)if(n.capabilities)try{if(JSON.parse(n.capabilities).decoratorNames?.length){t.push("Python decorators");break}}catch{}e.some(n=>n.kind==="AsyncFunctionDeclaration"||n.kind==="AsyncMethodDeclaration")&&t.push("Async")}return t}var Fn=class{phpParser=new Dn;pythonParser=new On;treeSitterParser=new Mn;supports(e){return rr.some(t=>t.extension.includes(e.toLowerCase()))}async parse(e,t){let n=Ls.extname(e).toLowerCase(),s=[],r=[];if(n===".php"||n===".py"||n===".go"||n===".rs"){if(n===".py"){let a=this.pythonParser.parse(t);s=a.nodes,r=a.events}else if(n===".php"){let a=e.toLowerCase().endsWith("api.php"),l=this.phpParser.parse(t,a);s=l.nodes,r=l.events}else try{s=await this.treeSitterParser.parse(e,t)}catch{}if(s.length>0){let a=n===".php"?"Micro IR (PHP/TS) ":n===".py"?"Micro IR (Python/TS) ":n===".go"?"Micro IR (Go/TS) ":"Micro IR (Rust/TS) ",l=s.filter(m=>m.classification!=="Dependency"),p=s.filter(m=>m.classification==="Dependency"),u=sc(n,s),d=Ut({classification:a,capabilities:u,exports:l.map(m=>({name:m.name,kind:m.kind,classification:m.classification})),fileName:Ls.basename(e)});return{exports:l,imports:p.map(m=>({module:m.name,name:m.name,kind:m.kind,classification:m.classification})),events:r,classification:a,summary:d||`${n.substring(1).toUpperCase()} module`,parseStatus:"success"}}}let o=rr.find(a=>a.extension.includes(n));if(!o)return{exports:[],imports:[],classification:"Unknown",summary:"",parseStatus:"failed",parseError:`Unsupported file extension: ${n}`};for(let a of o.rules){a.regex.lastIndex=0;let l;for(;(l=a.regex.exec(t))!==null;){let p=a.onMatch(l),u=t.substring(0,l.index).split(`
528
- `).length;s.push({name:p.name||"anonymous",kind:p.kind||"Unknown",classification:p.classification||"Other",signature:p.signature||l[0],line:u,endLine:u,doc:"",capabilities:JSON.stringify(p.meta||{})})}}let c=Ut({classification:`Micro IR (${n.substring(1).toUpperCase()})`,capabilities:[],exports:s.map(a=>({name:a.name,kind:a.kind,classification:a.classification})),fileName:Ls.basename(e)});return{exports:s,imports:[],classification:`Micro IR (${n.substring(1).toUpperCase()})`,summary:c||"Module",parseStatus:s.length>0?"success":"partial"}}};W();var Ns=new Fn;async function jt(i){let e=ar.extname(i);if(Ns.supports(e)&&e!==".ts"&&e!==".tsx")try{let r=await or.promises.readFile(i,"utf-8");return{...await Ns.parse(i,r),content:r}}catch(r){return S.error({filePath:i,error:r.message},"HeuristicParser failed"),{exports:[],imports:[],classification:"Unknown",summary:"",content:"",parseStatus:"failed",parseError:r.message}}let t;try{t=await or.promises.readFile(i)}catch(r){return{exports:[],imports:[],classification:"Error",summary:"",content:"",parseStatus:"failed",parseError:`File read error: ${r.message}`}}let n=t.toString("utf8"),s=Ji(n);try{let r=i.endsWith(".tsx"),o=i.endsWith(".d.ts")||i.endsWith(".d.tsx"),c,a={syntax:"typescript",tsx:r,decorators:!0,comments:!0};if(o)try{c=$s.parseSync(n,a)}catch{c=$s.parseSync(n,{...a,isModule:!1})}else c=$s.parseSync(n,a);let l=c.span.start,p=Yi(t),u=Qi(n),d=w=>Vi(w,l,t),m=Xi(c.body),h=tr(c.body);h.length>0&&S.debug({filePath:i,count:h.length},"Extracted type references"),h.forEach(w=>{m.push({module:"__type_reference__",name:w})});let g=Zi(c.body,l,t,n,s,u,i,d,p),_=er(c.body,l,t,s,d,p),b=Pn(i,"","Module"),y=u.length>0&&u[0].start===0?u[0].text:g.find(w=>w.doc)?.doc||"",E=Ki(y);if(!E&&g.length>0){let w=Ht(n);E=Ut({classification:b,capabilities:w,exports:g.map(x=>({name:x.name,kind:x.kind,classification:x.classification})),fileName:ar.basename(i)})}return{exports:g,imports:m,events:_,classification:b,summary:E,content:n,parseStatus:"success"}}catch(r){S.warn({filePath:i,error:r.message},"SWC parsing failed, using heuristic fallback");try{let o=await Ns.parse(i,n);return{...o,content:n,classification:o.classification+" (Degraded)",parseStatus:"partial",parseError:`SWC failed, used heuristic fallback: ${r.message}`}}catch(o){return S.error({filePath:i,error:o.message},"All parsing strategies failed"),{exports:[],imports:[],classification:"Error",summary:"",content:n,parseStatus:"failed",parseError:`All parsing strategies failed: ${o.message}`}}}}import Wn from"path";var ic=50;function zt(i,e,t,n){let s={name:Wn.basename(e)||e,type:"directory",path:e,children:[]};return i.forEach(r=>{let c=Wn.relative(e,r.path).split(Wn.sep),a=s;for(let l=0;l<c.length;l++){let p=c[l];if(n!==void 0&&l>=n)return;let u=l===c.length-1;if(n===1&&l===0&&u)return;let d=n!==void 0&&l===n-1&&!u,m=Wn.join(e,...c.slice(0,l+1)),h=a.children?.find(g=>g.name===p);if(!h){if(a.children&&a.children.length>=ic){a.children.find(b=>b.type==="truncated")||a.children.push({name:"... (truncated) ",type:"truncated",path:"",children:void 0});return}h={name:p,type:u?"file":"directory",path:m,children:u||d?void 0:[],summary:u?{classification:r.classification,summaryText:r.summary,exports:r.exports,imports:r.imports,chunks:r.chunks}:void 0},h.summary&&(t==="structure"||t==="signatures")&&(delete h.summary.chunks,delete h.summary.imports),a.children?.push(h)}a=h}}),s}W();import Ms from"p-limit";qe();import Ds from"path";import Nc from"fs";import Ac from"os";import we from"path";import wt from"fs";import{loadConfig as oc,createMatchPath as ac}from"tsconfig-paths";import Ve from"path";import Bt from"fs";var Qe=class extends Error{constructor(t,n,s){super(n);this.code=t;this.cause=s;this.name="FileSystemError"}};function cr(i){let e;try{e=Bt.statSync(i).isDirectory()?i:Ve.dirname(i)}catch(t){throw t.code==="ENOENT"?new Qe("FILE_NOT_FOUND",`Start path does not exist: ${i}`,t):t.code==="EACCES"||t.code==="EPERM"?new Qe("PERMISSION_DENIED",`Permission denied accessing: ${i}`,t):new Qe("UNKNOWN",`Failed to access path: ${i}`,t)}for(;e!==Ve.dirname(e);){let t=Ve.join(e,"tsconfig.json");if(Bt.existsSync(t))return e;e=Ve.dirname(e)}return null}function lr(i){let e;try{e=Bt.statSync(i).isDirectory()?i:Ve.dirname(i)}catch(t){throw t.code==="ENOENT"?new Qe("FILE_NOT_FOUND",`Start path does not exist: ${i}`,t):t.code==="EACCES"||t.code==="EPERM"?new Qe("PERMISSION_DENIED",`Permission denied accessing: ${i}`,t):new Qe("UNKNOWN",`Failed to access path: ${i}`,t)}for(;e!==Ve.dirname(e);){let t=Ve.join(e,"package.json");if(Bt.existsSync(t))try{if(JSON.parse(Bt.readFileSync(t,"utf8")).workspaces)return e}catch{}e=Ve.dirname(e)}return null}import St from"path";import ct from"fs";function pr(i,e){let t=new Map,n=e.workspaces||[];for(let s of n){let r=s.replace("/*",""),o=St.join(i,r);if(!ct.existsSync(o))continue;let c=ct.readdirSync(o);for(let a of c){let l=St.join(o,a,"package.json");if(ct.existsSync(l))try{let p=JSON.parse(ct.readFileSync(l,"utf8"));p.name&&t.set(p.name,{name:p.name,path:St.dirname(l),main:p.main||"dist/index.js"})}catch{}}}return t}function dr(i){let e=new Map;try{let t=JSON.parse(ct.readFileSync(i,"utf8")),n={...t.dependencies,...t.devDependencies};for(let[s,r]of Object.entries(n))if(typeof r=="string"&&r.startsWith("file:")){let o=r.substring(5),c=St.dirname(i),a=St.resolve(c,o),l=St.join(a,"package.json");if(ct.existsSync(l))try{let p=JSON.parse(ct.readFileSync(l,"utf8"));e.set(s,{name:s,path:a,main:p.main||"dist/index.js"})}catch{}}}catch{}return e}import ur from"path";import Se from"fs";var rc=[".ts",".tsx",".d.ts",".js",".jsx"];function Ke(i){let e=ur.extname(i);if(e===".js"||e===".jsx"){let t=i.slice(0,-e.length),n=e===".jsx"?[".tsx",".ts"]:[".ts",".tsx"];for(let s of n){let r=t+s;if(Se.existsSync(r)&&Se.statSync(r).isFile())return r}if(Se.existsSync(i)&&Se.statSync(i).isFile())return i}if(Se.existsSync(i)&&Se.statSync(i).isFile())return i;for(let t of rc){let n=i+t;if(Se.existsSync(n)&&Se.statSync(n).isFile())return n}if(Se.existsSync(i)&&Se.statSync(i).isDirectory())for(let t of[".ts",".tsx",".js",".jsx"]){let n=ur.join(i,"index"+t);if(Se.existsSync(n))return n}return""}var Un=new Map;function Hn(i){let e=cr(i);if(!e)return null;if(Un.has(e))return Un.get(e)||null;let t=oc(e);if(t.resultType==="failed")return Un.set(e,null),null;let n=t,s=n.absoluteBaseUrl;!s&&n.paths&&Object.keys(n.paths).length>0&&(s=n.configFileAbsolutePath?we.dirname(n.configFileAbsolutePath):e);let r=ac(s,n.paths,n.mainFields,n.addMatchAll),o=lr(e),c=new Map;if(o){let u=we.join(o,"package.json");if(wt.existsSync(u))try{let d=JSON.parse(wt.readFileSync(u,"utf8"));c=pr(o,d)}catch{}}let a=we.join(e,"package.json");wt.existsSync(a)&&dr(a).forEach((d,m)=>c.set(m,d));let l={baseUrl:s||"",paths:n.paths,matchPath:r,workspacePackages:c,imports:new Map},p=we.join(e,"package.json");if(wt.existsSync(p))try{let u=JSON.parse(wt.readFileSync(p,"utf8"));if(u.imports){for(let[d,m]of Object.entries(u.imports))if(typeof m=="string"||typeof m=="object"&&m!==null){let h=m;Array.isArray(m)&&(h=m[0]),typeof h=="object"&&(h=h.default||h.node),typeof h=="string"&&l.imports.set(d,h)}}}catch{}return Un.set(e,l),l}function lt(i,e,t){if(!i)return"";if(i.includes(".")&&!i.startsWith(".")&&!i.startsWith("/")&&!i.endsWith(".js")&&!i.endsWith(".ts")&&!i.endsWith(".json")){let s=i.split(".")[0];if(s&&s!==i){let r=lt(s,e,t);if(r)return r}}if(i.startsWith(".")){let s=we.dirname(e),r=we.resolve(s,i);return Ke(r)}let n=Hn(e);if(n){let s=n.matchPath(i);if(s)return Ke(s);if(!i.startsWith("@")||i.startsWith("@/")){let o=we.resolve(n.baseUrl,i),c=Ke(o);if(c)return c}for(let[o,c]of n.imports.entries())if(o.includes("*")){let a="^"+o.replace(/[\\^$+.()|[\]{}]/g,"\\$&").replace(/\*/g,"(.*)")+"$",l=new RegExp(a),p=i.match(l);if(p){let u=p[1],d=c.replace("*",u),m=we.resolve(n.baseUrl,d);return Ke(m)}}else if(o===i){let a=we.resolve(n.baseUrl,c);return Ke(a)}let r=n.workspacePackages.get(i);if(r){let o=we.join(r.path,"src/index.ts");if(wt.existsSync(o))return o;let c=we.join(r.path,r.main),a=Ke(c);if(a)return a}}return""}import cc from"fs";import lc from"path";import hr from"js-yaml";function mr(i){let e=lc.basename(i),t=cc.readFileSync(i,"utf8"),n=[];if(e.endsWith(".prisma"))return{...mc(t,i),content:t};if(e.endsWith(".graphql")||e.endsWith(".gql"))return{...hc(t,i),content:t};let s="Configuration";return e==="lerna.json"?{...gc(t,i),content:t}:e==="turbo.json"?{...yc(t,i),content:t}:e==="pnpm-workspace.yaml"?{...bc(t,i),content:t}:(e.includes("Dockerfile")?(s="Infrastructure (Docker) ",pc(t,n)):e.endsWith(".yaml")||e.endsWith(".yml")?(s="Infrastructure (YAML) ",dc(t,n)):e.startsWith(".env")?(s="Configuration (Env) ",uc(t,n)):e==="package.json"&&(s="Project Manifest",fc(t,n)),{configs:n,classification:s,content:t})}function pc(i,e){let t=i.split(`
529
- `);for(let n of t){let s=n.trim();if(s.startsWith("FROM "))e.push({key:"base_image",value:s.substring(5).trim(),kind:"Image"});else if(s.startsWith("EXPOSE "))e.push({key:"port",value:s.substring(7).trim(),kind:"Port"});else if(s.startsWith("ENV ")){let r=s.substring(4).trim().split(/\s+|=/);if(r[0]){let o=r[0],c=r.slice(1).join("= ").trim()||"undefined",a="Env";(o.endsWith("_URI")||o.endsWith("_URL")||o.endsWith("_HOST"))&&(a="Service"),e.push({key:o,value:c,kind:a})}}}}function dc(i,e){try{let t=hr.load(i);if(!t||typeof t!="object")return;if(t.services&&typeof t.services=="object")for(let[s,r]of Object.entries(t.services)){if(!r||typeof r!="object")continue;let o=r;if(e.push({key:`service:${s}`,value:s,kind:"Service"}),o.image&&e.push({key:`service:${s}:image`,value:String(o.image),kind:"Image"}),Array.isArray(o.ports)&&o.ports.forEach(c=>{e.push({key:`service:${s}:port`,value:String(c),kind:"Port"})}),o.environment){if(Array.isArray(o.environment))o.environment.forEach(c=>{let[a,...l]=c.split("= ");a&&l.length>0&&e.push({key:`service:${s}:env:${a}`,value:l.join("= "),kind:"Env"})});else if(typeof o.environment=="object")for(let[c,a]of Object.entries(o.environment))e.push({key:`service:${s}:env:${c}`,value:String(a),kind:"Env"})}if(Array.isArray(o.depends_on))o.depends_on.forEach(c=>{e.push({key:`service:${s}:depends_on`,value:c,kind:"Dependency"})});else if(o.depends_on&&typeof o.depends_on=="object")for(let c of Object.keys(o.depends_on))e.push({key:`service:${s}:depends_on`,value:c,kind:"Dependency"})}let n=(s,r="")=>{if(!(!s||typeof s!="object"||Array.isArray(s)))for(let[o,c]of Object.entries(s)){let a=r?`${r}.${o}`:o;if(t.services&&(a.startsWith("services.")||a==="services")){c&&typeof c=="object"&&!Array.isArray(c)&&n(c,a);continue}if(c&&typeof c=="object"&&!Array.isArray(c))n(c,a);else{let l=String(c),p="Env";o.toLowerCase().includes("image")&&(p="Image"),o.toLowerCase().includes("port")&&(p="Port"),o.toLowerCase().includes("service")&&(p="Service"),(o.endsWith("_URI")||o.endsWith("_URL")||o.endsWith("_HOST"))&&(p="Service"),e.push({key:a,value:l.length>100?l.substring(0,97)+"...":l,kind:p})}}};n(t)}catch{let n=i.match(/^\s{2}([a-z0-9_-]+):/gm);n&&n.forEach(s=>{let r=s.trim().replace(" : ","");r!=="services"&&r!=="version"&&r!=="volumes"&&r!=="networks"&&e.push({key:"service",value:r,kind:"Service"})})}}function uc(i,e){let t=i.split(`
530
- `);for(let n of t){let s=n.trim();if(s&&!s.startsWith("#")){let r=s.split("=");if(r[0]){let o=r[0].trim(),c=r.slice(1).join("=");c=c.trim().replace(/^['"](.*)['"]$/,"$1");let a="Env";(o.endsWith("_URI")||o.endsWith("_URL")||o.endsWith("_HOST"))&&(a="Service"),e.push({key:o,value:c,kind:a})}}}}function mc(i,e){let t=[],n="Contract (Prisma) ",s=/^model\s+(\w+)/gm,r;for(;(r=s.exec(i))!==null;)t.push({key:"model",value:r[1],kind:"Database Model"});let o=/^enum\s+(\w+)/gm;for(;(r=o.exec(i))!==null;)t.push({key:"enum",value:r[1],kind:"Database Enum"});let c=/provider\s*=\s*"([^"]+)"/,a=i.match(c);return a&&t.push({key:"datasource_provider",value:a[1],kind:"Database Config"}),{classification:n,configs:t,content:i}}function hc(i,e){let t=[],n="Contract (GraphQL) ",s=/^(?:type|input|interface|enum)\s+(\w+)/gm,r;for(;(r=s.exec(i))!==null;){let o=r[0],c="GraphQL Type";o.startsWith("input")&&(c="GraphQL Input"),o.startsWith("interface")&&(c="GraphQL Interface"),o.startsWith("enum")&&(c="GraphQL Enum"),t.push({key:"type_definition",value:r[1],kind:c})}return{classification:n,configs:t,content:i}}function fc(i,e){try{let t=JSON.parse(i);if(t.name&&e.push({key:"name",value:t.name,kind:"Service"}),t.description&&e.push({key:"description",value:t.description,kind:"Service"}),t.workspaces){let r=Array.isArray(t.workspaces)?t.workspaces.join("",""):JSON.stringify(t.workspaces);e.push({key:"workspaces",value:r,kind:"Env"})}if(t.scripts){let r=["start","dev","build","test","docker"];for(let o of Object.keys(t.scripts))r.some(c=>o.includes(c))&&e.push({key:`script:${o}`,value:t.scripts[o],kind:"Env"})}let n={...t.dependencies,...t.devDependencies},s=["react","vue","svelte","angular","next","nuxt","express","fastify","nestjs","remix","vite","webpack","tailwindcss","database"];for(let r of Object.keys(n))if(s.some(o=>r.includes(o))){let o=n[r].replace(/[\^~]/,"");e.push({key:`dep:${r}`,value:o,kind:"Service"})}}catch{}}function gc(i,e){let t=[],n="Monorepo (Lerna) ";try{let s=JSON.parse(i);t.push({key:"monorepo_type",value:"lerna",kind:"Monorepo"}),s.version&&t.push({key:"lerna_version",value:s.version,kind:"Monorepo"}),s.packages&&(Array.isArray(s.packages)?s.packages:[s.packages]).forEach(o=>{t.push({key:"package_glob",value:o,kind:"Monorepo"})}),s.npmClient&&t.push({key:"npm_client",value:s.npmClient,kind:"Monorepo"})}catch{}return{configs:t,classification:n,content:i}}function yc(i,e){let t=[],n="Monorepo (Turborepo) ";try{let s=JSON.parse(i);if(t.push({key:"monorepo_type",value:"turborepo",kind:"Monorepo"}),s.pipeline)for(let r of Object.keys(s.pipeline)){t.push({key:`pipeline:${r}`,value:r,kind:"Monorepo"});let o=s.pipeline[r];o.dependsOn&&t.push({key:`pipeline:${r}:depends_on`,value:o.dependsOn.join("",""),kind:"Dependency"})}if(s.tasks)for(let r of Object.keys(s.tasks))t.push({key:`task:${r}`,value:r,kind:"Monorepo"})}catch{}return{configs:t,classification:n,content:i}}function bc(i,e){let t=[],n="Monorepo (pnpm) ";try{let s=hr.load(i);t.push({key:"monorepo_type",value:"pnpm",kind:"Monorepo"}),s&&s.packages&&(Array.isArray(s.packages)?s.packages:[s.packages]).forEach(o=>{t.push({key:"package_glob",value:o,kind:"Monorepo"})})}catch{}return{configs:t,classification:n,content:i}}z();rt();import{execSync as pt}from"child_process";import Gt from"path";import As from"fs";function ce(i){try{if(!As.existsSync(Gt.join(i,".git")))return null;let e=pt("git rev-parse --abbrev-ref HEAD",{cwd:i,stdio:["ignore","pipe","ignore"],encoding:"utf8"}).trim();return e==="HEAD"?pt("git rev-parse --short HEAD",{cwd:i,stdio:["ignore","pipe","ignore"],encoding:"utf8"}).trim():e.replace(/[\/\\:*"<>|?]/g,"-")}catch{return null}}function xe(i){try{return As.existsSync(Gt.join(i,".git"))?pt("git rev-parse HEAD",{cwd:i,stdio:["ignore","pipe","ignore"],encoding:"utf8"}).trim():null}catch{return null}}function gr(i,e=50){try{let t=pt(`git rev-list --max-count=${e} HEAD`,{cwd:i,stdio:["ignore","pipe","ignore"],encoding:"utf8"}).trim();return t?t.split(`
531
- `):[]}catch{return[]}}function yr(i,e,t){try{return pt(`git merge-tree --write-tree ${e} ${t}`,{cwd:i,stdio:["ignore","ignore","ignore"]}),!1}catch{return!0}}var _c=new Set([".ts",".tsx",".yaml",".yml",".php",".py",".go",".prisma",".graphql",".gql"]),Ec=new Set(["package.json","lerna.json","turbo.json","pnpm-workspace.yaml"]),Sc=new Set(["node_modules",".git","dist","build","vendor",".next",".cache","coverage"]);function fr(i){let e=i.split("/");for(let s of e)if(Sc.has(s))return!1;if(i.endsWith(".min.js"))return!1;let t=Gt.basename(i);if(t.startsWith("Dockerfile")||t.startsWith(".env")||Ec.has(t))return!0;let n=Gt.extname(t).toLowerCase();return _c.has(n)}function wc(i){let e=i.trim(),t=e.indexOf(" -> ");if(t!==-1)return e.substring(t+4);let n=e.split(/\s+/);return n.length>=2?n[n.length-1]:e}function br(i,e){try{if(!As.existsSync(Gt.join(i,".git")))return!0;let t=xe(i);if(!t)return!0;if(e&&e!==t){let s=pt(`git diff --name-only ${e} ${t}`,{cwd:i,stdio:["ignore","pipe","ignore"],encoding:"utf8"}).trim();if(s&&s.split(`
532
- `).some(r=>r&&fr(r)))return!0}let n=pt("git status --porcelain",{cwd:i,stdio:["ignore","pipe","ignore"],encoding:"utf8"}).trim();return n?n.split(`
533
- `).some(s=>s?fr(wc(s)):!1):!1}catch{return!0}}z();W();import{execSync as _r}from"child_process";var dt=S.child({module:"nano-repair"}),Pe=class{intentLogs;exports;missions;repoPath;constructor(e){let{intentLogs:t,exports:n,missions:s}=C.getInstance(e);this.intentLogs=t,this.exports=n,this.missions=s,this.repoPath=e}detectAndRepairShifts(){let e=this.intentLogs.findRepairableOrphans();if(e.length===0)return{repaired:0,failed:0};dt.info({count:e.length},"Detected orphaned intent logs. Attempting recovery...");let t=0,n=0;for(let s of e){let r=this.exports.findByNameAndFile(s.symbol_name,s.file_path);if(r.length>0){let c=r.find(a=>a.signature===s.signature)||r[0];this.intentLogs.update(s.id,{symbol_id:c.id}),dt.info({logId:s.id,symbol:s.symbol_name},"Relinked symbol in same file"),t++;continue}let o=this.exports.findByNameGlobal(s.symbol_name);if(o.length>0){let c=o.filter(a=>a.file_path!==s.file_path);if(c.length>0){let a=c.find(l=>l.signature===s.signature)||c[0];this.intentLogs.update(s.id,{symbol_id:a.id,file_path:a.file_path}),dt.info({logId:s.id,symbol:s.symbol_name,oldPath:s.file_path,newPath:a.file_path},"Detected Nano-Repair Shift (file move)"),t++;continue}}n++}return t>0&&dt.info({repaired:t,failed:n},"Nano-Repair recovery complete"),{repaired:t,failed:n}}syncLifecycle(){let e="HEAD";try{e=_r("git rev-parse --abbrev-ref HEAD",{cwd:this.repoPath,encoding:"utf-8",stdio:["ignore","pipe","ignore"]}).trim()}catch{return{suspended:0,resumed:0,completed:0}}if(!e)return{suspended:0,resumed:0,completed:0};let t=this.missions.findActive(),n=0;for(let o of t)o.git_branch&&o.git_branch!==e&&(this.missions.updateStatus(o.id,"suspended"),dt.info({missionId:o.id,branch:o.git_branch,current:e},"Context Pivot: Suspended mission"),n++);this.missions.resumeByBranch(e);let s=[];try{s=_r(`git branch --merged "${e}"`,{cwd:this.repoPath,encoding:"utf-8",stdio:["ignore","pipe","ignore"]}).split(`
534
- `).map(c=>c.trim().replace(/^\* /,"")).filter(c=>c&&c!==e)}catch{}let r=0;if(s.length>0){let o=this.missions.findMergedMissions(e,s);for(let c of o)this.missions.updateStatus(c.id,"completed"),dt.info({missionId:c.id,branch:c.git_branch},"Merge Sentinel: Auto-completed mission"),r++}return(n>0||r>0)&&dt.info({suspended:n,completed:r},"Git-Native Lifecycle Sync complete"),{suspended:n,resumed:-1,completed:r}}};W();hn();import{Worker as xc}from"node:worker_threads";import{cpus as vc}from"node:os";import{fileURLToPath as Tc}from"node:url";import{dirname as Rc,join as kc}from"node:path";import{existsSync as Ic}from"node:fs";var Er=Tc(import.meta.url),Cc=Rc(Er),Lc=Er.endsWith(".ts");function $c(){if(Lc)return null;let i=kc(Cc,"worker.js");return Ic(i)?i:ht("dist/logic/parser/worker.js")}var Ps=class{workers=[];taskQueue=[];pendingTasks=new Map;taskIdCounter=0;initialized=!1;initPromise;shutdownRequested=!1;numWorkers;initTimeout;constructor(e={}){this.numWorkers=e.numWorkers??Math.max(1,Math.min(4,vc().length-1)),this.initTimeout=e.initTimeout??3e4}async initialize(){if(!this.initialized)return this.initPromise?this.initPromise:(this.initPromise=this._doInitialize(),this.initPromise)}async _doInitialize(){let e;try{S.info({numWorkers:this.numWorkers},"Initializing parser worker pool");let t=new Promise((n,s)=>{e=setTimeout(()=>s(new Error(`Parser pool initialization timed out after ${this.initTimeout}ms`)),this.initTimeout)});if(await Promise.race([this._initializeWorkers(),t]),e&&clearTimeout(e),this.shutdownRequested){this.initialized=!1,this.initPromise=void 0;return}this.initialized=!0,S.info({numWorkers:this.workers.length},"Parser worker pool ready")}catch(t){throw e&&clearTimeout(e),this.initPromise=void 0,this.initialized=!1,await this.shutdown(),t}}async _initializeWorkers(){let e=$c();if(!e)throw new Error("Parser worker pool not available in development mode (tsx). Use main-thread fallback.");S.debug({workerPath:e},"Resolved parser worker path");let t=[];for(let n=0;n<this.numWorkers;n++)t.push(this.createWorker(e,n));await Promise.all(t)}async createWorker(e,t){return new Promise((n,s)=>{let r=setTimeout(()=>{s(new Error(`Parser worker ${t} initialization timed out`))},this.initTimeout),o=new xc(e,{execArgv:process.execArgv}),c={worker:o,busy:!1,currentTaskId:null};o.on("message",a=>{if(a.type==="ready"){if(clearTimeout(r),this.shutdownRequested){o.terminate().catch(()=>{}),n();return}this.workers.push(c),S.debug({workerIndex:t},"Parser worker ready"),n()}else a.type==="result"&&a.id?this.handleTaskComplete(c,a.id,a.result):a.type==="error"&&a.id&&this.handleTaskError(c,a.id,new Error(a.error||"Unknown error"))}),o.on("error",a=>{if(clearTimeout(r),S.error({err:a,workerIndex:t},"Parser worker error"),c.currentTaskId&&this.handleTaskError(c,c.currentTaskId,a),!this.initialized){s(a);return}let l=this.workers.indexOf(c);l!==-1&&this.workers.splice(l,1),!this.shutdownRequested&&this.initialized&&this.createWorker(e,t).catch(p=>{S.error({err:p},"Failed to replace crashed parser worker")})}),o.on("exit",a=>{a!==0&&!this.shutdownRequested&&S.warn({workerIndex:t,code:a},"Parser worker exited unexpectedly")})})}handleTaskComplete(e,t,n){let s=this.pendingTasks.get(t);s&&(this.pendingTasks.delete(t),s.resolve(n)),e.busy=!1,e.currentTaskId=null,this.processQueue()}handleTaskError(e,t,n){let s=this.pendingTasks.get(t);s&&(this.pendingTasks.delete(t),s.reject(n)),e.busy=!1,e.currentTaskId=null,this.processQueue()}processQueue(){if(this.taskQueue.length===0)return;let e=this.workers.find(n=>!n.busy);if(!e)return;let t=this.taskQueue.shift();t&&(e.busy=!0,e.currentTaskId=t.id,this.pendingTasks.set(t.id,t),e.worker.postMessage({type:"parse",id:t.id,filePath:t.filePath}))}async parseFile(e){return this.initialized||await this.initialize(),new Promise((t,n)=>{let r={id:`parse_${++this.taskIdCounter}`,filePath:e,resolve:t,reject:n};this.taskQueue.push(r),this.processQueue()})}get workerCount(){return this.workers.length}get busyWorkers(){return this.workers.filter(e=>e.busy).length}get queueSize(){return this.taskQueue.length}get isInitialized(){return this.initialized}async shutdown(){if(this.shutdownRequested=!0,this.initPromise)try{await this.initPromise}catch{}if(!this.initialized&&this.workers.length===0){this.shutdownRequested=!1,this.initPromise=void 0;return}S.info({numWorkers:this.workers.length},"Shutting down parser worker pool");let e=this.workers.map(t=>new Promise(n=>{t.worker.postMessage({type:"shutdown"}),t.worker.once("exit",()=>n()),setTimeout(()=>{t.worker.terminate().then(()=>n())},5e3)}));await Promise.all(e),this.workers=[],this.taskQueue=[],this.pendingTasks.clear(),this.initialized=!1,this.shutdownRequested=!1,this.initPromise=void 0,S.info("Parser worker pool shutdown complete")}},xt=null;function Sr(i){return xt||(xt=new Ps(i)),xt}async function wr(){xt&&(await xt.shutdown(),xt=null)}var Pc=Ac.cpus().length||4,Mc=Nn.DEFAULT_CONCURRENCY;async function G(i,e=Mc,t=!1,n=!0,s){let r=C.getInstance(i),o=r.files.database,c=Oe(i),a=c.concurrency??e;if(Oi(),!t&&He(i)){let b=Pt(i),y=xe(i);if(b&&!br(i,b))return Ts(),S.debug({repoPath:i,commit:y},"Index is current, skipping re-index (fast-path)"),o}Hn(i);let l=r.files.findAll(),p=new Map(l.map(b=>[b.path,{mtime:b.mtime,hash:b.content_hash}])),u=Date.now();s?.({phase:"scan",current:0,total:0,message:"Scanning repository..."});let d=await Is(i,c.ignore),m=new Map(d.map(b=>[b.path,b.mtime])),h=l.filter(b=>!m.has(b.path)).map(b=>b.path),g=l.length===0,_=[];if(t||g)_.push(...d);else{let b=d.filter(x=>{let v=p.get(x.path);return!v||v.mtime!==x.mtime}),y=Ms(a*4),E=b.map(x=>y(async()=>{let v=p.get(x.path);if(!v||!v.hash)return x;try{let k=await Nc.promises.readFile(x.path,"utf8");return ai(k,v.hash)?x:(r.files.updateMtime(x.path,x.mtime),null)}catch{return null}})),w=await Promise.all(E);_.push(...w.filter(x=>x!==null))}if(h.length===0&&_.length===0){Ts();let b=xe(i);return ys(i,b||void 0),o}if(g?S.info({totalFiles:d.length},"Starting initial repository indexing..."):S.info({toDelete:h.length,toProcess:_.length},"Syncing repository updates..."),h.length>0&&r.files.deletePaths(h),_.length>0){Wi(),n?(Ot(!0),it().initialize().catch(()=>{})):Ot(!1);let b=/\.(ts|tsx|php|py|go|js|jsx|mjs|cjs)$/,y=[],E=[];for(let R of _)b.test(Ds.basename(R.path))?y.push(R):E.push(R);let w=0,x=_.length,v=!1,k=Sr();try{await k.initialize(),v=!0,S.info({workers:k.workerCount},"Parser worker pool active")}catch(R){S.warn({err:R},"Parser worker pool failed to initialize, falling back to main-thread parsing"),v=!1}let N=(R,A)=>{let D=A.imports?.map(L=>({...L,resolved_path:lt(L.module,R.path,i)})),$=A.content?mt(A.content):null;return w++,(w%50===0||w===x)&&S.info({completed:w,total:x},"Parsing files..."),s?.({phase:"parse",current:w,total:x,message:`Parsing ${Ds.basename(R.path)}`}),{meta:R,...A,imports:D,embedding:null,kind:"code",contentHash:$}},O;if(v)O=y.map(R=>k.parseFile(R.path).then(A=>N(R,A),A=>(w++,S.error({path:R.path,error:A},"Worker parse failed"),{meta:R,exports:[],imports:[],content:"",kind:"error"})));else{let R=g?Math.max(a,Math.min(Pc-1,16)):a,A=Ms(R);O=y.map(D=>A(async()=>{try{let $=await jt(D.path);return N(D,$)}catch($){return w++,S.error({path:D.path,error:$},"Failed to parse file"),{meta:D,exports:[],imports:[],content:"",kind:"error"}}}))}let T=Ms(a),I=E.map(R=>T(async()=>{try{let A=mr(R.path),D=A.content?mt(A.content):null;return w++,(w%50===0||w===x)&&S.info({completed:w,total:x},"Parsing configs..."),s?.({phase:"parse",current:w,total:x,message:`Parsing config ${Ds.basename(R.path)}`}),{meta:R,...A,embedding:null,kind:"config",contentHash:D}}catch(A){return w++,S.error({path:R.path,error:A},"Failed to parse config"),{meta:R,exports:[],imports:[],content:"",kind:"error"}}}));S.info({total:x,codeFiles:y.length,configFiles:E.length,useParserPool:v},"Phase 1: Parsing all files...");let U=Date.now(),H=(await Promise.all([...O,...I])).filter(Boolean),P=Date.now()-U;if(Wt("parse",P),S.info({count:H.length,time:`${(P/1e3).toFixed(1)}s`},"Phase 1 complete"),v&&wr().catch(()=>{}),o.pragma("synchronous = NORMAL"),o.pragma("cache_size = -64000"),n){let R=[];H.forEach((ae,ye)=>{"summary"in ae&&ae.summary&&R.push({fileIdx:ye,text:ae.summary})}),S.info("Phase 2+3: Generating embeddings + persisting in parallel..."),s?.({phase:"embed",current:0,total:H.length,message:"Generating embeddings..."});let A=Date.now(),D=(async()=>{if(R.length>0){S.info({count:R.length}," \u2192 Generating file summary embeddings...");let ae=R.map(j=>j.text),ye=await yn(ae,256);return S.info({count:R.length}," \u2713 File summaries complete"),ye}return[]})();s?.({phase:"persist",current:0,total:H.length,message:"Saving to database..."});let $=Date.now();r.files.batchSaveIndexResults(H,i,mt,lt);let L=Date.now()-$;Wt("persist",L),S.info({time:`${(L/1e3).toFixed(1)}s`},"Structural persist complete");let Y=await D,he=Date.now()-A;if(Wt("embed",he),S.info({time:`${(he/1e3).toFixed(1)}s`},"Embeddings complete"),Y.length>0){let ae=o.prepare("UPDATE files SET embedding = ? WHERE path = ?"),ye=o.transaction(F=>{for(let M of F)ae.run(M.embedding?JSON.stringify(M.embedding):null,M.path)}),j=R.map((F,M)=>({path:H[F.fileIdx].meta.path,embedding:Y[M]}));ye(j),S.info({count:j.length},"Embedding column updated")}let pe=await r.intentLogs.backfillEmbeddings(64);pe>0&&S.info({count:pe}," \u2713 Intent log embeddings backfilled")}else{s?.({phase:"persist",current:0,total:H.length,message:"Saving to database..."});let R=Date.now();r.files.batchSaveIndexResults(H,i,mt,lt),Wt("persist",Date.now()-R)}o.pragma("synchronous = FULL"),o.pragma("cache_size = -2000")}if(g||_.length>0){let b=xe(i);ys(i,b||void 0)}return(_.length>0||h.length>0)&&new Pe(i).detectAndRepairShifts(),Fi(Date.now()-u),s?.({phase:"complete",current:_.length,total:_.length,message:"Indexing complete"}),o}W();import xr from"path";import Dc from"ignore";import vr from"fs";z();async function qt(i,e=Nn.DEFAULT_CONCURRENCY,t="detailed",n,s){S.info({repo:i,level:t,subPath:n},"Ensuring cache is up-to-date..."),await G(i,e);let{files:r,exports:o,imports:c}=C.getInstance(i),a=n?r.findInSubPath(i,n):r.findAll(),l=Oe(i),p=Dc(),u=xr.join(i,".gitignore");if(vr.existsSync(u)&&p.add(vr.readFileSync(u,"utf8")),l.ignore&&l.ignore.length>0&&p.add(l.ignore),p.add($n),a=a.filter(y=>{let E=xr.relative(i,y.path);return!p.ignores(E)}),S.info({count:a.length},"Fetching data from DB..."),t==="lite"){let y=a.map(E=>({path:E.path,mtime:E.mtime}));return zt(y,i,t,s)}if(t==="summaries"){let y=a.map(E=>({path:E.path,mtime:E.mtime,classification:E.classification||void 0,summary:E.summary||void 0}));return zt(y,i,t,s)}let d=a.map(y=>y.path),m=o.findByFiles(d),h=t==="detailed"?c.findByFiles(d):[],g=new Map;for(let y of m){let E=g.get(y.file_path)||[];E.push(y),g.set(y.file_path,E)}let _=new Map;for(let y of h){let E=_.get(y.file_path)||[];E.push(y),_.set(y.file_path,E)}let b=a.map(y=>{let w=(g.get(y.path)||[]).map(v=>({name:v.name,kind:v.kind,signature:v.signature,line:v.start_line}));t==="structure"?w=w.map(v=>({name:v.name,kind:v.kind,line:v.line})):t==="signatures"&&(w=w.map(v=>({name:v.name,kind:v.kind,signature:v.signature,line:v.line})));let x=[];return t==="detailed"&&(x=(_.get(y.path)||[]).map(k=>({module:k.module_specifier,resolved_path:k.resolved_path}))),{path:y.path,mtime:y.mtime,classification:y.classification||void 0,summary:y.summary||void 0,exports:w,imports:x.length>0?x:void 0,chunks:[]}});return S.info({count:b.length},"Building hierarchical project tree..."),zt(b,i,t,s)}rt();async function Tr(i,e){let t=Oc.resolve(i);try{await B(async()=>{se("\u{1F311} Liquid Shadow: Topological Mapping");let n=parseInt(e.depth,10),s=await qt(t,n,"detailed",e.subPath);console.log(` ${f.bold("Root")}: ${f.cyan(t)}`),e.subPath&&console.log(` ${f.bold("Subpath")}: ${f.yellow(e.subPath)}`),console.log("");let r=o=>({name:o.name,info:o.type==="directory"?`${o.children?.length||0} items`:o.size,color:o.type==="directory"?"blue":"white",children:o.children?.map(r)});xs([r(s)]),console.log(""),Ee("Mapping concluded.")})}finally{await J(t)}}import kr from"path";import Fc from"fs";W();import ne from"path";import Os from"fs";var jn=S.child({module:"path-resolver"}),Jt=class{repoPath;constructor(e){this.repoPath=ne.isAbsolute(e)?ne.normalize(e):ne.resolve(process.cwd(),e)}resolve(e){if(!e)return this.repoPath;if(e.includes("\0"))throw jn.error({inputPath:e},"Path contains null bytes - possible attack"),new Error("Invalid path: contains null bytes");let t;if(ne.isAbsolute(e)?t=ne.normalize(e):t=ne.join(this.repoPath,e),t=ne.normalize(t),!this.isWithinRoot(t))throw jn.warn({inputPath:e,resolved:t},"Path traversal attempt blocked"),new Error(`Access denied: path '${e}' is outside the repository root`);return t}resolveAndValidate(e){try{let t=this.resolve(e);return Os.existsSync(t)?t:(jn.debug({inputPath:e,resolved:t},"Path does not exist"),null)}catch(t){return jn.error({inputPath:e,error:t},"Error validating path"),null}}isWithinRoot(e){try{let t=ne.resolve(e),n=ne.resolve(this.repoPath),s=ne.relative(n,t);if(s.startsWith("..")||ne.isAbsolute(s))return!1;if(Os.existsSync(t)){let o=Os.realpathSync(t),c=ne.relative(n,o);if(c.startsWith("..")||ne.isAbsolute(c))return!1}return!0}catch{return!1}}getRelative(e){let t=ne.normalize(e);return ne.relative(this.repoPath,t)}resolveBatch(e){return e.map(t=>this.resolve(t))}static normalize(e){return ne.normalize(e)}static isPathWithinRoot(e,t){let n=ne.resolve(e),s=ne.resolve(t),r=ne.relative(n,s);return r===""||!r.startsWith("..")&&!ne.isAbsolute(r)}};function Rr(i){return new Jt(i)}async function Ir(i,e){let t=kr.resolve(i);await B(async()=>{if(se("\u{1F311} Liquid Shadow: Intelligence Deployment"),console.log(` ${f.bold("Target")}: ${f.cyan(t)}`),console.log(` ${f.bold("Objective")}: ${e.output?f.magenta("Data Extraction"):f.green("Semantic Mapping")}`),console.log(""),!e.output){let s=be();s.start("Engaging intelligence engines...");let r="",o=c=>{if(c.phase!==r){r=c.phase;let a={scan:"\u{1F4E1} Scanning topography",parse:"\u{1F9E9} Parsing symbols",embed:"\u{1F9E0} Generating vectors",persist:"\u{1F4BE} Hardening index",complete:"\u{1F3C1} Mapping complete"}[c.phase]||c.phase;s.message(`${a}...`)}if(c.total>0&&c.current>0){let a=Math.round(c.current/c.total*100);s.message(`${r==="parse"?"Parsing":"Processing"}: ${c.current}/${c.total} (${a}%)`)}};try{await G(t,void 0,e.force,e.deep??!0,o),s.message("\u{1FA79} Running Nano-Repair healing...");let a=new Pe(t).detectAndRepairShifts();s.stop("Intelligence mapping successfully concluded."),console.log(""),console.log(` ${f.bold("Next Steps:")}`),console.log(` ${f.dim("view your repo stats")} -> ${f.bold(f.cyan("liquid-shadow dashboard"))}`),console.log(` ${f.dim("start a chat search")} -> ${f.bold(f.cyan('liquid-shadow search-concept "your query"'))}`),console.log(""),Ee("Liquid Shadow is online.")}catch(c){throw s.stop(`Operation failed: ${c.message}`),c}finally{await J(t)}return}let n=be();n.start("Engaging intelligence engines...");try{let s=await qt(t,5,e.level,e.subPath),r=kr.resolve(e.output);if((process.env.LIQUID_SHADOW_SANDBOX==="1"||process.env.LIQUID_SHADOW_SANDBOX==="true")&&!Jt.isPathWithinRoot(t,r))throw new Error("Sandbox mode: output path must be inside the repository. Set LIQUID_SHADOW_SANDBOX=0 to allow external paths.");Fc.writeFileSync(r,JSON.stringify(s,null,2)),n.stop(`Data extraction saved: ${f.bold(f.cyan(r))}`),Ee("Extraction complete.")}catch(s){throw n.stop(`Extraction failed: ${s.message}`),s}finally{await J(t)}})}import{performance as Cr}from"perf_hooks";import Wc from"path";z();async function Lr(i){let e=Wc.resolve(i);await B(async()=>{console.log(`
535
- ${f.bold("Performance Benchmark - Liquid Shadow Intelligence")}`),console.log(` ${f.gray("Repository: ")} ${e}`),console.log(` ${f.yellow("Starting fresh index (DB deleted)...")}
536
- `);let t=Cr.now();try{await G(e,10,!0);let n=Cr.now()-t,s=C.getInstance(e),r=s.files.getCount(),o=s.exports.getCount(),c=s.exports.getWithEmbeddingsCount();X("Benchmark Results",`${f.bold("Total Time")}: ${n.toFixed(2)}ms (${(n/1e3).toFixed(2)}s)
537
- ${f.bold("Files Processed")}: ${f.cyan(r.toString())}
538
- ${f.bold("Symbols Extracted")}: ${f.cyan(o.toString())}
539
- ${f.bold("Symbols Embedded")}: ${f.cyan(c.toString())} (${(c/o*100).toFixed(1)}%)
540
- `+"\u2500".repeat(40)+`
541
- ${f.bold("Files/sec")}: ${f.green((r/(n/1e3)).toFixed(2))}
542
- ${f.bold("Symbols/sec")}: ${f.green((o/(n/1e3)).toFixed(2))}
543
- ${f.bold("ms per file")}: ${f.yellow((n/r).toFixed(2))}`,"green")}catch(n){throw console.error(`
544
- Benchmark failed during execution:`,n),n}finally{await J(e)}})}import Gn from"path";import fe from"path";import Ws from"fs";var Hc=/[\x00-\x1f\x7f]/g,Uc=/[\x00-\x08\x0b\x0c\x0e-\x1f\x7f]/g;function Fs(i){if(typeof i!="string")throw new Error("Invalid path: expected string");if(i.includes("\0"))throw new Error("Invalid path: null bytes are not allowed");if(i.replace(Hc,"").length!==i.length)throw new Error("Invalid path: control characters are not allowed");return i.trim()}function zn(i,e=4096){if(typeof i!="string")return"";let t=i.replace(Uc,"").trim();return t.length>e?t.slice(0,e):t}qe();function jc(i){let e=fe.isAbsolute(i)?fe.normalize(i):fe.resolve(process.cwd(),i),t=fe.parse(e).root;for(;e!==t;){if(Ws.existsSync(fe.join(e,".liquid-shadow.db"))||Ws.existsSync(fe.join(e,".git"))||Ws.existsSync(fe.join(e,"package.json")))return e;let n=fe.dirname(e);if(n===e)break;e=n}return null}function Me(i){let e=i?.repoPath?String(i.repoPath):void 0,t=i?.filePath?String(i.filePath):void 0;e&&(e=Fs(e)),t&&(t=Fs(t));let n;if(e)fe.isAbsolute(e)||(e=fe.resolve(process.cwd(),e)),n=e;else if(t){let o=fe.resolve(process.cwd(),t);n=jc(fe.dirname(o))||process.cwd()}else n=process.cwd();n=fe.normalize(n);let s=Rr(n),r;return t&&(r=s.resolve(t)),{...i,repoPath:n,filePath:r,resolver:s}}z();W();import Nr from"@swc/core";import Yt from"fs";import ve from"path";import{Visitor as zc}from"@swc/core/Visitor.js";var Bn=class extends zc{calls=new Set;apiCalls=[];imports=new Map;axiosInstances=new Map([["axios",""],["http",""],["appApi",""],["restApi",""],["adminApi",""]]);visitImportDeclaration(e){let t=e.source.value;for(let n of e.specifiers)(n.type==="ImportDefaultSpecifier"||n.type==="ImportSpecifier")&&this.imports.set(n.local.value,t);return super.visitImportDeclaration(e)}visitCallExpression(e){if(e.callee.type==="Identifier"){let t=e.callee.value;this.calls.add(t),(t==="axios"||t==="http")&&e.arguments.length>0&&this.extractApiCallFromConfig(e.arguments[0].expression)}else if(e.callee.type==="MemberExpression"){let t=e.callee.property.value,n=r=>{if(!r)return"?";if(r.type==="Identifier")return r.value;if(r.type==="ThisExpression")return"this";if(r.type==="MemberExpression"){let o=n(r.object),c=r.property.value||"?";return`${o}.${c}`}return r.type==="TsNonNullExpression"||r.type==="TsAsExpression"||r.type==="ParenthesisExpression"?n(r.expression):"?"},s=n(e.callee.object);if(s!=="?"&&t){if(this.calls.add(`${s}.${t}`),s==="axios"||s==="http"||this.axiosInstances.has(s)){let r=this.axiosInstances.get(s)||"";this.extractApiCall(t,e.arguments,r)}if((s.toLowerCase().includes("pubsub")||s==="pubSubClient"||s.endsWith(".pubSubClient"))&&t!=="subscribe"){let r=t;if((t==="publish"||t==="publishMessage"||t==="publishTaskByNameAndPayload")&&e.arguments.length>0)for(let o of e.arguments){let c=o.expression;if(c.type==="ObjectExpression"){let a=c.properties.find(l=>l.key?.type==="Identifier"&&(l.key.value==="action"||l.key.value==="type")||l.key?.type==="StringLiteral"&&(l.key.value==="action"||l.key.value==="type"));if(a&&a.value?.type==="StringLiteral"){r=a.value.value;break}}if(c.type==="CallExpression"&&c.callee.type==="MemberExpression"&&c.callee.object.value==="JSON"&&c.callee.property.value==="stringify"&&c.arguments.length>0){let a=c.arguments[0].expression;if(a.type==="ObjectExpression"){let l=a.properties.find(p=>p.key?.type==="Identifier"&&(p.key.value==="action"||p.key.value==="type")||p.key?.type==="StringLiteral"&&(p.key.value==="action"||p.key.value==="type"));if(l&&l.value?.type==="StringLiteral"){r=l.value.value;break}}}}this.apiCalls.push({method:"PUBSUB",url:r})}}}return e.callee.type==="Identifier"&&e.callee.value==="fetch"&&this.extractApiCall("GET",e.arguments),super.visitCallExpression(e)}visitNewExpression(e){return e.callee.type==="Identifier"&&this.calls.add(e.callee.value),super.visitNewExpression(e)}visitVariableDeclarator(e){if(e.init&&e.init.type==="CallExpression"){let t=e.init.callee;if(t.type==="MemberExpression"&&t.property.value==="create"&&t.object.value==="axios"){let s=e.init.arguments[0]?.expression;if(s&&s.type==="ObjectExpression"){let r=s.properties.find(o=>o.key.value==="baseURL");if(r){let o="?";r.value.type==="StringLiteral"?o=r.value.value:r.value.type==="Identifier"&&(o=`\${${r.value.value}}`),e.id.type==="Identifier"&&this.axiosInstances.set(e.id.value,o)}}}}return super.visitVariableDeclarator(e)}extractApiCallFromConfig(e){if(e&&e.type==="ObjectExpression"){let t=e.properties.find(s=>s.key.type==="Identifier"&&s.key.value==="url"||s.key.type==="StringLiteral"&&s.key.value==="url"),n=e.properties.find(s=>s.key.type==="Identifier"&&s.key.value==="method"||s.key.type==="StringLiteral"&&s.key.value==="method");if(t&&t.value){let s=n?.value?.value||"GET",r=this.resolveUrlValue(t.value);r!=="?"&&this.apiCalls.push({method:s.toUpperCase(),url:r})}}}resolveUrlValue(e){return e.type==="StringLiteral"?e.value:e.type==="TemplateLiteral"?e.quasis.map(t=>t.cooked).join("*"):"?"}visitTsType(e){return e}extractApiCall(e,t,n=""){if(t.length>0){let s=t[0].expression,r=this.resolveUrlValue(s);if(r!=="?"){if(n&&n!=="?"){let o=n.endsWith("/")||r.startsWith("/")?"":"/";r=`${n}${o}${r}`}this.apiCalls.push({method:e.toUpperCase(),url:r})}}}},vt=class{calls=new Set;apiCalls=[];imports=new Map;visit(e,t){if(t===".php"){let n=/(?:([a-zA-Z0-9_$->:\(\)]*)?(?:->|::))?([a-zA-Z0-9_]+)\s*\(([\s\S]*?)\)/g,s;for(;(s=n.exec(e))!==null;){let r=s[1]||"",o=s[2],c=s[3];if(this.calls.add(o),r&&!["$this","self","parent"].includes(r)&&this.calls.add(`${r}${r.includes("::")?"::":"->"}${o}`),["save","delete","update","create","first","all","where","get","find"].includes(o)&&r&&!["Log","Route","Cache","Config","Http"].includes(r)&&this.apiCalls.push({method:"DB",url:`${r}->${o}()`}),o==="publish"&&r&&(r.includes("topic")||r.includes("pubSub"))&&this.apiCalls.push({method:"PUBSUB",url:"publish"}),["get","post","put","delete","patch","request"].includes(o)&&(r==="Http"||r==="client"||r.endsWith("request")||r.includes("Client")||!r)){let p=c.match(/(?:url\s*:\s*)?['"]([^'"]+)['"]/),u=p?p[1]:c.split(",")[0].trim()||"unknown";this.apiCalls.push({method:o.toUpperCase(),url:u})}}}else if(t===".py"){let n=/(?:([a-zA-Z0-9_\.]+)\.)?([a-zA-Z0-9_]+)\s*\(([\s\S]*?)\)/g,s;for(;(s=n.exec(e))!==null;){let r=s[1]||"",o=s[2],c=s[3];if(this.calls.add(o),r&&r!=="self"&&r!=="cls"&&this.calls.add(`${r}.${o}`),["save","delete","update","create","first","all","filter","get"].includes(o)&&r&&!["logger","os","sys"].includes(r)&&this.apiCalls.push({method:"DB",url:`${r}.${o}()`}),o==="publish"&&r&&(r.includes("publisher")||r.includes("client"))&&this.apiCalls.push({method:"PUBSUB",url:"publish"}),["get","post","put","delete","patch","request"].includes(o)&&(r==="requests"||r==="httpx"||r==="client"||r==="http"||!r)){let p=c.match(/(?:url\s*:\s*)?['"]([^'"]+)['"]/),u=p?p[1]:c.split(",")[0].trim()||"unknown";this.apiCalls.push({method:o.toUpperCase(),url:u})}}}else if([".ts",".tsx",".js",".jsx"].includes(t)){let n=/import\s+[\s\S]*?from\s+['"](.*?)['"];?/g,s;for(;(s=n.exec(e))!==null;)this.imports.set("*",s[1]);let r=/(?:([a-zA-Z0-9_$]+)\.)?([a-zA-Z0-9_$]+)\s*\(/g,o;for(;(o=r.exec(e))!==null;){let c=o[1],a=o[2];c?(this.calls.add(`${c}.${a}`),(c.toLowerCase().includes("pubsub")||c==="pubSubClient")&&a!=="subscribe"&&this.apiCalls.push({method:"PUBSUB",url:a})):this.calls.add(a)}}else{let n=/\.([a-zA-Z0-9_]+)\s*\(/g,s;for(;(s=n.exec(e))!==null;)this.calls.add(s[1])}if(t===".php"){let n=/use\s+([a-zA-Z0-9_\\]+)(?:\s+as\s+([a-zA-Z0-9_]+))?;/g,s;for(;(s=n.exec(e))!==null;){let r=s[1],o=r.split("\\"),c=s[2]||o[o.length-1];this.imports.set(c,r)}}else if(t===".py"){let n=/from\s+([a-zA-Z0-9_\.]+)\s+import\s+([a-zA-Z0-9_,\s]+)/g,s;for(;(s=n.exec(e))!==null;){let c=s[1];s[2].split(",").map(l=>l.trim()).forEach(l=>{this.imports.set(l,c)})}let r=/^import\s+([a-zA-Z0-9_\.]+)/gm,o;for(;(o=r.exec(e))!==null;){let c=o[1],a=c.split("."),l=a[a.length-1];this.imports.set(l,c)}}}};var Bc=new Set(["api","v1","v2","v3","http","https","localhost","admin","internal","public","private","app","src","get","post","put","delete","patch","user","users","id","search","list","create","update","data"]);function $r(i,e){let t=e,n=e.match(/\$\{([^}]+)\}/g);if(n)for(let p of n){let u=p.substring(2,p.length-1),d=i.configs.findEnvValue(u);d&&(t=t.replace(p,d))}let s=t.split("?")[0].split("#")[0];try{s.includes("://")&&(s=new URL(s).pathname)}catch{}s.length>1&&s.endsWith("/")&&(s=s.substring(0,s.length-1));let r=[],o=s.replace(/\*/g,"%").replace(/:[^/]+/g,"%").replace(/\{[^}]+\}/g,"%"),c=i.files.findSynapses({type:"api_route",name:o.includes("%")?o:s,direction:"consume",limit:10});for(let p of c){let u=p.name.replace(/:[^/]+/g,"[^/]+").replace(/\{[^}]+\}/g,"[^/]+").replace(/\*/g,"[^/]+");new RegExp(`^${u.replace(/\//g,"\\/")}$`).test(s.replace(/\*/g,"test-val"))&&r.push({file_path:p.file_path,start_line:p.line_number||0,signature:`[Synapse] ${p.name}`,score:1e3})}let a=s.split(/[^a-zA-Z0-9-_]/).filter(p=>p.length>=3&&!Bc.has(p.toLowerCase())&&!/^\d+$/.test(p));if(a.length>0){let u=[...a].sort((m,h)=>h.length-m.length)[0],d=i.exports.findRoutesByToken(u,20);for(let m of d){let h=50,g=(m.signature||m.name||"").toLowerCase();(m.name||"").toLowerCase().includes(s.replace(/\*/g,"").toLowerCase())&&(h+=200);for(let b of a)g.includes(b.toLowerCase())&&(h+=20);r.push({file_path:m.file_path,start_line:m.start_line,signature:`[Boundary] ${m.signature||m.name}`,capabilities:m.capabilities||void 0,score:h})}}if(r.length<3){let p=a.map(u=>u.replace(/[^a-zA-Z0-9_]/g,"")).filter(u=>u.length>0).join(" AND ");if(p.length>0){let u=i.content.search(p);for(let d of u){let m=0,h=d.file_path.toLowerCase(),g=d.snippet.toLowerCase();(h.includes("route")||h.includes("controller"))&&(m+=10),(h.includes("src/api")||h.includes("services/api"))&&(m+=5),(g.includes("addroute")||g.includes("@get"))&&(m+=15),(g.includes("axios.")||g.includes("fetch("))&&(m-=10),(h.includes(".spec.")||h.includes(".test."))&&(m-=20),m>0&&r.push({file_path:d.file_path,start_line:0,signature:`[FTS Match] ${d.snippet.replace(/\n/g," ")}`,score:m})}}}let l=new Map;return r.sort((p,u)=>u.score-p.score).forEach(p=>{l.has(p.file_path)||l.set(p.file_path,p)}),Array.from(l.values()).slice(0,3)}var Gc=4,Vt=50,qc=2,Jc=new Set(["push","pop","shift","unshift","slice","splice","map","filter","reduce","reduceRight","forEach","find","findIndex","includes","indexOf","lastIndexOf","every","some","flat","flatMap","fill","copyWithin","entries","keys","values","join","concat","sort","reverse","at","with","toSorted","toReversed","toSpliced","toString","valueOf","hasOwnProperty","isPrototypeOf","propertyIsEnumerable","toLocaleString","charAt","charCodeAt","codePointAt","split","substring","substr","trim","trimStart","trimEnd","padStart","padEnd","repeat","replace","replaceAll","match","matchAll","search","toLowerCase","toUpperCase","localeCompare","normalize","startsWith","endsWith","then","catch","finally","get","set","has","delete","clear","size","length","call","apply","bind"]);async function Ar(i){let{repoPath:e,filePath:t,symbolName:n}=Me(i);if(!t)return{isError:!0,content:[{type:"text",text:"Error: 'filePath' is required."}]};let s=t;await G(e);let r=C.getInstance(e);if(!Yt.existsSync(s))return{isError:!0,content:[{type:"text",text:`File not found: ${s}`}]};let o,c=ve.basename(s),a;if(n){let d=r.exports.findByNameAndFile(n,s);if(d.length>0){let m=d[0];o={start:m.start_line,end:m.end_line},c=m.name,a=m.start_line}}let l={type:o?"function":"file",name:c,path:ve.relative(e,s),line:a,children:[]},p=new Set;p.add(s+(n?`:${n}`:""));let u={count:0,truncated:!1};return await Tt(s,l,e,r,p,1,u,o),u.truncated&&l.children.push({type:"function",name:"\u26A0\uFE0F Output Truncated",details:`Trace limited to ${Vt} nodes. Use summarize_file on specific files for deeper analysis.`,children:[]}),{content:[{type:"text",text:JSON.stringify(l,null,2)}]}}async function Tt(i,e,t,n,s,r,o,c){if(!(r>Gc)){if(o.count>=Vt){o.truncated=!0;return}try{let a=Yt.readFileSync(i,"utf8"),l=ve.extname(i).toLowerCase(),u=(a.match(/import\s+[\s\S]*?from\s+['"].*?['"];?/gm)||[]).join(`
545
- `);c&&(a=a.split(`
546
- `).slice(c.start-1,c.end).join(`
547
- `));let d;if(l===".ts"||l===".tsx"||l===".js"||l===".jsx"){d=new Bn;let _={syntax:"typescript",tsx:i.endsWith(".tsx"),target:"es2020"};try{let b=c?`${u}
548
- ${a}`:a,y=await Nr.parse(b,_);d.visitModule(y)}catch{if(c)try{let y=`${u}
549
- class TraceContext {
550
- ${a}
551
- }`,E=await Nr.parse(y,_);d.visitModule(E)}catch{let E=new vt,w=l;E.visit(a,w),d.calls=E.calls,d.apiCalls=E.apiCalls,d.imports=E.imports}else{let y=new vt;y.visit(a,l),d.calls=y.calls,d.apiCalls=y.apiCalls,d.imports=y.imports}}}else d=new vt,d.visit(a,l);S.info({file:ve.basename(i),calls:d.calls.size,apiCalls:d.apiCalls.length,depth:r},"Analyzed file");let m=d.apiCalls.slice(0,10);for(let _ of m){if(o.count>=Vt)break;if(o.count++,_.method==="PUBSUB"){let w={type:"event_trigger",name:`PubSub Event: ${_.url}`,details:"Detected via PubSub client usage",children:[]};e.children.push(w);let x=n.exports.findByNameGlobal(_.url).concat(n.exports.findByMethodName(_.url));if(_.url.length>10){let k=_.url.replace(/To[A-Z][a-zA-Z]+$/,"");if(k!==_.url){let N=n.exports.findByNameGlobal(k).concat(n.exports.findByMethodName(k));x.push(...N)}}let v=new Set;for(let k of x){if(v.has(k.file_path)||k.file_path===i)continue;if(v.add(k.file_path),o.count>=Vt)break;o.count++;let N={type:"subscriber",name:`${k.name} (${ve.basename(k.file_path)})`,path:ve.relative(t,k.file_path),line:k.start_line,details:"Potential Subscriber / Handler",children:[]};w.children.push(N),Yt.existsSync(k.file_path)&&!s.has(k.file_path)&&(s.add(k.file_path),await Tt(k.file_path,N,t,n,s,r+1,o))}continue}let b={type:"api_call",name:`${_.method} ${_.url}`,details:"Detected via string literal analysis",children:[]};e.children.push(b);let E=$r(n,_.url).slice(0,qc);for(let w of E){if(o.count>=Vt)break;o.count++;let x={type:"route",name:w.signature||"Route Handler",path:w.file_path,line:w.start_line,children:[]};if(b.children.push(x),Yt.existsSync(w.file_path)&&!s.has(w.file_path)&&(s.add(w.file_path),await Tt(w.file_path,x,t,n,s,r+1,o)),w.capabilities)try{let v=JSON.parse(w.capabilities);if(v.handler){let[k,N]=v.handler.split("@");if(k){let T=k.split("\\").pop();if(T){let I=n.exports.findClassByName(T);if(I){let U=n.exports.findByNameAndFile(N||"",I.file_path),H,P=I.start_line;U.length>0&&(H={start:U[0].start_line,end:U[0].end_line},P=U[0].start_line);let R={type:"component",name:`${T}${N?" :: "+N:""}`,path:ve.relative(t,I.file_path),line:P,details:"Controller Logic (Macro IR)",children:[]};x.children.push(R),s.has(I.file_path+(N?`:${N}`:""))||(s.add(I.file_path+(N?`:${N}`:"")),await Tt(I.file_path,R,t,n,s,r+1,o,H))}}}}}catch{}}}let h=d.calls,g=Array.from(h).sort();for(let _ of g)if(d.imports.has(_)){let b=d.imports.get(_);if(!b.startsWith(".")){if(["react","react-dom"].includes(b))continue;e.children.push({type:"function",name:_,details:`External: ${b}`,children:[]});continue}let y=lt(b,i,t);if(y&&Yt.existsSync(y))if(s.has(y))e.children.push({type:"function",name:_,details:"Circular / Already Visited",path:ve.relative(t,y),children:[]});else{s.add(y);let E={type:"file",name:_,details:`Imported from ${ve.basename(y)}`,path:ve.relative(t,y),children:[]};e.children.push(E),await Tt(y,E,t,n,s,r+1,o)}}else if(!["log","info","error","warn","print"].includes(_)){let b=n.exports.findByNameGlobal(_);if(b.length===0){let y=_.split(/(?:\.|->|::)+/);if(y.length>1){let E=y[y.length-1];Jc.has(E)||(b=n.exports.findByMethodName(E))}}if(b.length>0){let y=b.find(w=>w.file_path===i),E=y||(b.length===1?b[0]:null);if(E){let w=`${E.file_path}:${E.name}`;if(!s.has(w)){s.add(w);let x={type:"component",name:_,details:`Resolved via global index${y?" (local)":""}`,path:ve.relative(t,E.file_path),line:E.start_line,children:[]};e.children.push(x),await Tt(E.file_path,x,t,n,s,r+1,o,{start:E.start_line,end:E.end_line})}}}}}catch(a){S.error({filePath:i,error:a.message},"Trace analysis failed"),e.children.push({type:"function",name:"Error",details:a.message,children:[]})}}}async function Pr(i,e){let t=Gn.resolve(e.dir),n=Gn.isAbsolute(i)?i:Gn.resolve(t,i);await B(async()=>{se("Execution Trace");let s=be();s.start(`Tracing ${f.cyan(e.symbolName||Gn.basename(n))}...`);try{let r=await Ar({repoPath:t,filePath:n,symbolName:e.symbolName});s.stop("Trace complete."),r.isError?console.error(f.red(r.content[0].text)):X("Flow Results",r.content[0].text,"magenta")}catch(r){throw s.stop(`Trace failed: ${r.message}`),r}finally{await J(t)}})}import sl from"path";z();Rt();W();import{execSync as uo}from"child_process";import nl from"path";var qn=S.child({module:"shadow-trace"}),kt=class{intentLogs;exports;repoPath;hologramService;constructor(e){let{intentLogs:t,exports:n}=C.getInstance(e);this.intentLogs=t,this.exports=n,this.repoPath=e,this.hologramService=new ge(e)}analyzeGhostChanges(e){let t=e?`${e}..HEAD`:"HEAD~1..HEAD",n=[];try{let r=uo(`git diff --name-only ${t}`,{cwd:this.repoPath,encoding:"utf-8"}).split(`
552
- `).filter(o=>o.trim()!=="");if(r.length===0)return;qn.info({files:r.length,range:t},"Initiating Shadow Trace analysis...");for(let o of r){let c=nl.join(this.repoPath,o),l=uo(`git diff -U0 ${t} -- ${o}`,{cwd:this.repoPath,encoding:"utf-8"}).matchAll(/@@ -(\d+)(?:,\d+)? \+(\d+)(?:,\d+)? @@/g);for(let p of l){let u=parseInt(p[2],10),d=this.exports.findAtLine(c,u);d&&(this.intentLogs.create({mission_id:0,file_path:c,symbol_id:d.id,type:"discovery",content:`Shadow Trace: Modified externally in ${t}`,confidence:.8,symbol_name:d.name,signature:d.signature,commit_sha:null}),qn.debug({symbol:d.name},"Logged ghost change"),n.push({from:"external",to:`${o}:${d.name}`,pattern:"git-delta",confidence:.8}))}}n.length>0&&this.hologramService.updateGhostBridges(n),qn.info("Shadow Trace complete.")}catch(s){qn.warn({err:s.message},"Shadow Trace failed: git diff error.")}}};z();import{execSync as It}from"child_process";var Jn=class{constructor(e,t="refs/notes/shadow"){this.repoPath=e;this.ref=t}addNote(e,t){try{It(`git notes --ref ${this.ref} add -f -m '${t.replace(/'/g,"'\\''")}' ${e}`,{cwd:this.repoPath,stdio:["ignore","pipe","ignore"],encoding:"utf8"})}catch(n){throw new Error(`Failed to add git note to ${e}: ${n.message}`)}}getNote(e){try{return It(`git notes --ref ${this.ref} show ${e}`,{cwd:this.repoPath,stdio:["ignore","pipe","ignore"],encoding:"utf8"}).trim()}catch{return null}}listNotes(){let e=new Map;try{let t=It(`git notes --ref ${this.ref} list`,{cwd:this.repoPath,stdio:["ignore","pipe","ignore"],encoding:"utf8"}).trim();if(!t)return e;let n=t.split(`
553
- `);for(let s of n){let[r,o]=s.split(" ");if(o){let c=this.getNote(o);c&&e.set(o,c)}}}catch{}return e}removeNote(e){try{It(`git notes --ref ${this.ref} remove ${e}`,{cwd:this.repoPath,stdio:["ignore","pipe","ignore"],encoding:"utf8"})}catch{}}push(e="origin"){try{It(`git push ${e} ${this.ref}`,{cwd:this.repoPath,stdio:["ignore","pipe","ignore"],encoding:"utf8"})}catch(t){throw new Error(`Failed to push git notes to ${e}: ${t.message}`)}}fetch(e="origin"){try{It(`git fetch ${e} ${this.ref}:${this.ref}`,{cwd:this.repoPath,stdio:["ignore","pipe","ignore"],encoding:"utf8"})}catch{}}};W();var Ct=S.child({module:"persistence-service"}),Re=class{gitNotes;repoPath;constructor(e){this.repoPath=e,this.gitNotes=new Jn(e)}async syncMissionToGitNotes(e){let{missions:t,intentLogs:n}=C.getInstance(this.repoPath),s=t.findById(e);if(!s)throw new Error(`Mission ${e} not found`);if(!s.commit_sha){Ct.warn({missionId:e},"Cannot sync mission without commit_sha");return}Ct.info({missionId:e,commitSha:s.commit_sha},"Syncing mission to Git Notes");let r=t.getArtifacts(e),o=n.findByMission(e,1e3),c=o.find(p=>p.type==="adr"),a=o.filter(p=>p.type==="decision").map(p=>({content:p.content,symbol_name:p.symbol_name,created_at:p.created_at})),l={version:"1.0",mission:{name:s.name,goal:s.goal,status:s.status,strategy_graph:s.strategy_graph,git_branch:s.git_branch,commit_sha:s.commit_sha,parent_id:s.parent_id,verification_context:s.verification_context,outcome_contract:s.outcome_contract,created_at:s.created_at,updated_at:s.updated_at},artifacts:r,adr:c?c.content:null,decisions:a};this.gitNotes.addNote(s.commit_sha,JSON.stringify(l,null,2))}async syncAllToGitNotes(){let{missions:e}=C.getInstance(this.repoPath),t=e.findActive(),n=e.findRecentCompleted(10),s=[...t,...n];for(let r of s)try{await this.syncMissionToGitNotes(r.id)}catch(o){Ct.error({missionId:r.id,error:o},"Failed to sync mission")}}async recoverFromGitNotes(){let e=this.gitNotes.listNotes(),{missions:t,intentLogs:n}=C.getInstance(this.repoPath),s=0,r=0;for(let[o,c]of e.entries())try{let a=JSON.parse(c);if(a.version!=="1.0")continue;if(t.findByCommitShas([o]).some(d=>d.name===a.mission.name)){Ct.debug({commitSha:o,missionName:a.mission.name},"Mission already exists, skipping recovery");continue}let u=t.create({name:a.mission.name,goal:a.mission.goal,status:a.mission.status,strategy_graph:a.mission.strategy_graph,git_branch:a.mission.git_branch,commit_sha:o,parent_id:a.mission.parent_id,verification_context:a.mission.verification_context,outcome_contract:a.mission.outcome_contract});if(s++,a.adr&&(n.create({mission_id:Number(u),symbol_id:null,file_path:null,type:"adr",content:a.adr,confidence:1,symbol_name:null,signature:null,commit_sha:o}),r++),a.decisions&&a.decisions.length>0)for(let d of a.decisions)n.create({mission_id:Number(u),symbol_id:null,file_path:null,type:"decision",content:d.content,confidence:1,symbol_name:d.symbol_name,signature:null,commit_sha:o}),r++;Ct.info({commitSha:o,missionName:a.mission.name,logsRecovered:r},"Re-hydrated mission from Git Notes")}catch(a){Ct.error({commitSha:o,error:a},"Failed to parse Git Note for recovery")}return{missionsRecovered:s,logsRecovered:r}}};z();Kt();async function mo(i){let{repoPath:e}=i;try{await G(e),new kt(e).analyzeGhostChanges();let n=new Pe(e),s=n.detectAndRepairShifts(),r=n.syncLifecycle(),c=await new Re(e).recoverFromGitNotes(),{HologramService:a}=await Promise.resolve().then(()=>(Rt(),po)),l=new a(e),p=Ze(C.getInstance(e),e);l.updateTopography(p);let u=l.computeGravityZones();l.updateGravityZones(u);let d="Shadow Sync complete. Code changes indexed and intent logs updated.";return d+=`
554
- \u269B\uFE0F Hologram: Refreshed architectural map (${u.length} hotspots).`,s.repaired>0&&(d+=`
555
- \u2728 Nano-Repair: Fixed ${s.repaired} links.`),c.missionsRecovered>0&&(d+=`
556
- \u{1F9EC} Re-hydration: Recovered ${c.missionsRecovered} missions.`),{content:[{type:"text",text:d}]}}catch(t){return{content:[{type:"text",text:`Error: ${t.message}`}],isError:!0}}}async function ho(i,e){let t=sl.resolve(i);await B(async()=>{se("Shadow Sync");let n=be();n.start("Synchronizing intelligence lifecycle...");try{let s=await mo({repoPath:t});n.stop("Sync complete."),s.isError?console.error(f.red(s.content[0].text)):(console.log(""),console.log(s.content[0].text),console.log(""))}catch(s){throw n.stop(`Sync failed: ${s.message}`),s}finally{await J(t)}})}Kt();z();W();Rt();import go from"path";z();Kt();Rt();import Ue from"path";async function fo(i){let{repoPath:e}=i;await G(e);let t=C.getInstance(e),n=Ze(t,e),r=new ge(e).getSnapshot(),o=[],c=[],a=Object.values(n.layers.Entry.topFiles).map(d=>d.path),l=new Set(Object.values(n.layers.Data.topFiles).map(d=>d.path));for(let d of a){let m=Ue.isAbsolute(d)?d:Ue.join(e,d),h=t.imports.findByFile(m);for(let g of h)g.resolved_path&&l.has(Ue.relative(e,g.resolved_path))&&o.push(`\u2694\uFE0F LAYER BYPASS: \`${Ue.relative(e,d)}\` directly imports Data layer \`${Ue.relative(e,g.resolved_path)}\`. Should go through Logic.`)}let p=r.gravity?.hotspots||[];for(let d of p){let m=Qt(d.filePath,t);(m.layer==="Utility"||m.layer==="Unknown")&&d.gravity>50&&c.push(`\u{1F6A8} GRAVITY ANOMALY: \`${Ue.relative(e,d.filePath)}\` has high gravity (${d.gravity.toFixed(0)}) but is classified as ${m.layer}. Consider promoting to Core Logic.`)}for(let d of a){let m=Ue.isAbsolute(d)?d:Ue.join(e,d),h=t.exports.findByFile(m);h.length>10&&c.push(`\u{1F388} ENTRY BLOAT: \`${Ue.relative(e,d)}\` exports ${h.length} symbols. Entry handlers should be thin interfaces.`)}let u=`# \u{1F575}\uFE0F Architectural Scout Report
557
-
558
- `;return o.length===0&&c.length===0?u+=`\u2705 No significant architectural drift detected. The structure remains "Legit".
559
- `:(o.length>0&&(u+=`## \u274C Structural Violations
560
- `,o.forEach(d=>u+=`- ${d}
561
- `),u+=`
562
- `),c.length>0&&(u+=`## \u26A0\uFE0F Architectural Warnings
563
- `,c.forEach(d=>u+=`- ${d}
564
- `),u+=`
565
- `)),{content:[{type:"text",text:u}]}}async function yo(i,e,t){let n=e?go.resolve(process.cwd(),e):process.cwd();if(i==="init"){S.info('Running full initialization (same as "index --force")...'),await G(n,void 0,!0,!0);return}if(i==="tree"){S.info('For tree view, please use the "tree" command.');return}if(i==="topography"){await G(n);let s=C.getInstance(n),r=Ze(s,n);console.log(`
566
- \u{1F3D7}\uFE0F Architecture Summary for ${go.basename(n)}
567
- `),console.log(`Detected Pattern: **${r.pattern}** (Confidence: ${r.patternConfidence.toFixed(0)}%)`),r.insights.length>0&&(console.log(`
568
- Insights:`),r.insights.forEach(l=>console.log(`- ${l}`))),console.log(`
569
- Layer Distribution:`);let o=["Entry","Logic","Data","Utility","Infrastructure","Test","Types","Unknown"],c=Object.values(r.layers).reduce((l,p)=>l+p.count,0),a=l=>{switch(l){case"Entry":return"\u{1F6AA}";case"Logic":return"\u2699\uFE0F";case"Data":return"\u{1F4BE}";case"Utility":return"\u{1F527}";case"Infrastructure":return"\u{1F3D7}\uFE0F";case"Test":return"\u{1F9EA}";case"Types":return"\u{1F4DD}";default:return"\u2753"}};o.forEach(l=>{let p=r.layers[l],u=c>0?(p.count/c*100).toFixed(1):"0.0";console.log(`${a(l)} ${l.padEnd(14)} | ${p.count.toString().padStart(5)} files | ${u}%`)}),console.log(`
570
- Top Files by Layer:`),o.forEach(l=>{let p=r.layers[l];p.count!==0&&(console.log(`
571
- ${a(l)} ${l}`),p.topFiles.forEach(u=>{console.log(` - ${u.path} (${u.confidence}% conf)`),u.signals.length>0&&console.log(` \u2514\u2500 ${u.signals.slice(0,1).join(", ")}`)}))});return}if(i==="scout"){let s=await fo({repoPath:n});console.log(s.content[0].text);return}if(i==="hologram"){let s=new ge(n);console.log(JSON.stringify(s.getSnapshot(),null,2));return}S.error(`Unknown recon mode: ${i}. Available: init, topography, scout, hologram`)}import nn from"path";z();var Xt=class{static extractSnippet(e,t,n=300){if(!e||!t)return"";let s=t.toLowerCase().split(/\s+/).filter(d=>d.length>2&&!["the","and","for","with","from"].includes(d));if(s.length===0)return e.slice(0,n)+"...";let r=e.split(`
572
- `),o=new Array(r.length).fill(0);for(let d=0;d<r.length;d++){let m=r[d].toLowerCase(),h=0,g=0;for(let _ of s)m.includes(_)&&(h++,g++);(m.includes("export ")||m.includes("class ")||m.includes("function ")||m.includes("interface "))&&(h+=1),o[d]=g*10+h}let c=0,a=-1,l=5;for(let d=0;d<=r.length-l;d++){let m=0;for(let h=0;h<l;h++)m+=o[d+h];m>a&&(a=m,c=d)}if(a<=0)return e.slice(0,n).trim()+"...";let u=r.slice(c,c+l).join(`
573
- `).trim();return c>0&&(u=`...
574
- `+u),c+l<r.length&&(u=u+`
575
- ...`),u.length>n?u.slice(0,n)+"...":u}static calculateLexicalScore(e,t){if(!e||!t)return 0;let n=t.toLowerCase().split(/\s+/).filter(o=>o.length>2&&!["the","and","for","with","from"].includes(o));if(n.length===0)return 0;let s=0,r=e.toLowerCase();for(let o of n)if(r.includes(o)){s+=1;let c=new RegExp(`\\b${o}`,"gi"),a=r.match(c);a&&(s+=Math.min(a.length*.2,2)),new RegExp(`(class|function|export|interface|enum|type)\\s+${o}`,"i").test(e)&&(s+=1.5)}return s/n.length}};rt();z();W();var et=S.child({module:"clean-sweep"}),Us=class{files;intentLogs;constructor(e){let{files:t,intentLogs:n}=C.getInstance(e);this.files=t,this.intentLogs=n}pruneOrphans(){et.info("Starting orphan pruning...");let e=0,t=0,n=this.intentLogs.findOrphans();et.info({orphanCount:n.length},"Found orphaned logs");for(let o of n)o.file_path&&this.files.exists(o.file_path)?(this.intentLogs.markAsLapsed(o.id),t++,et.debug({logId:o.id,symbolName:o.symbol_name},"Converted to lapsed intent")):(this.intentLogs.delete(o.id),e++,et.debug({logId:o.id},"Deleted orphaned log"));let s=this.intentLogs.findLogsForMissingFiles();for(let o of s)this.intentLogs.delete(o.id),e++;let r=this.intentLogs.findRecentDecisionActivity(1e3).length;return et.info({deleted:e,converted:t},"Orphan pruning complete"),{deleted:e,converted:t,retained:r}}},js=class{lambda;constructor(e=.01){this.lambda=e}calculateScore(e,t){let s=(Math.floor(Date.now()/1e3)-t)/(3600*24),r=Math.exp(-this.lambda*s);return e*r}scoreResults(e){return e.map(t=>({...t,decayed_score:this.calculateScore(t.score,t.created_at)}))}},zs=class{missions;constructor(e){let{missions:t}=C.getInstance(e);this.missions=t}findColdMissions(){let e=Math.floor(Date.now()/1e3)-604800,t=this.missions.findColdMissions(e,10);return et.info({count:t.length},"Found cold missions for compaction"),t}markDistilled(e){this.missions.update(e,{status:"distilled"})}},Yn=class{pruner;scorer;compactor;constructor(e){this.pruner=new Us(e),this.scorer=new js,this.compactor=new zs(e)}runMaintenance(){et.info("Initiating Clean Sweep maintenance protocol...");let e=this.pruner.pruneOrphans(),t=this.compactor.findColdMissions();return et.info("Clean Sweep maintenance complete"),{pruning:e,compaction:{eligible:t.length}}}getScorer(){return this.scorer}getCompactor(){return this.compactor}};z();W();var bo=S.child({module:"lineage-service"}),Zt=class{repoPath;constructor(e){this.repoPath=e}getAncestorMissionIds(e=50){try{let t=gr(this.repoPath,e);if(t.length===0)return[];let{missions:n}=C.getInstance(this.repoPath),r=n.findByCommitShas(t).map(o=>o.id);return r.length>0&&bo.debug({count:r.length},"Identified ancestor missions for gravity bleed"),r}catch(t){return bo.warn({err:t.message},"Failed to identify ancestor missions"),[]}}};var il={Solid:1,Liquid:.8,Virtual:.4,Intel:.2,Phantom:.05},ke=class{static classify(e,t){let n=e.toLowerCase();if(t?.content){let s=t.content;if(s.includes("describe(")||s.includes("test(")||s.includes("it(")||s.includes("expect(")||s.includes('from "@jest/globals"')||s.includes('from "vitest"'))return"Virtual"}return t?.exports&&(t.exports.some(r=>r.kind==="ClassDeclaration"||r.kind==="Class")||t.exports.length>5),n.includes("/dist/")||n.includes("/build/")||n.includes("/.generated/")||n.includes("/node_modules/")||n.endsWith(".map")||n.endsWith(".log")?"Phantom":n.includes("/test/")||n.includes("/tests/")||n.includes("/__tests__/")||n.includes("/__mocks__/")||n.includes(".spec.")||n.includes(".test.")||n.includes("/e2e/")||n.includes("/test-utils/")?"Virtual":n.includes("/examples/")||n.includes("/fixtures/")||n.includes("/mocks/")||n.includes("/stories/")||n.includes("/samples/")||n.includes("/docs/")?"Intel":n.includes("/src/")||n.includes("/lib/")||n.includes("/app/")||n.includes("/core/")||n.includes("/logic/")||n.includes("/domain/")||n.includes("/services/")||n.includes("/controllers/")||n.includes("/handlers/")||n.includes("/repositories/")||n.includes("/models/")||n.includes("/packages/")&&!n.includes("/packages/config/")||n.includes("/backends/")||t?.exports&&(t.exports.some(s=>s.kind==="ClassDeclaration"||s.kind==="Class")||t.exports.length>5)?"Solid":"Liquid"}static mapClassificationToTier(e){let t=e.toLowerCase();return t==="service"||t==="repository"||t==="model"||t==="controller"||t==="handler"||t==="component"||t==="hook"||t==="titanium"||t==="solid"?"Solid":t==="test"||t==="iron"||t==="virtual"?"Virtual":t==="lead"||t==="intel"?"Intel":t==="ghost"||t==="error"||t==="phantom"?"Phantom":"Liquid"}static getMultiplier(e,t){let n=t?this.mapClassificationToTier(t):this.classify(e);return il[n]}};W();function rl(i,e){let t=[];for(let n=0;n<=e.length;n++)t[n]=[n];for(let n=0;n<=i.length;n++)t[0][n]=n;for(let n=1;n<=e.length;n++)for(let s=1;s<=i.length;s++)e.charAt(n-1)===i.charAt(s-1)?t[n][s]=t[n-1][s-1]:t[n][s]=Math.min(t[n-1][s-1]+1,t[n][s-1]+1,t[n-1][s]+1);return t[e.length][i.length]}function ol(i,e){let t=rl(i.toLowerCase(),e.toLowerCase()),n=Math.max(i.length,e.length);return Math.round((n-t)/n*100)}function _o(i){let e=[],t="";for(let n=0;n<i.length;n++){let s=i[n],r=s>="A"&&s<="Z",o=s>="a"&&s<="z";r&&t.length>0?(e.push(t),t=s):o||r?t+=s:t.length>0&&(e.push(t),t="")}return t.length>0&&e.push(t),e}function al(i,e){let t=_o(e),n=i.toLowerCase();if(t.map(o=>o[0].toLowerCase()).join("")===n)return!0;let r=0;for(let o of t){if(r>=i.length)break;let c=o.toLowerCase();if(c.startsWith(n.slice(r))){r=i.length;break}c[0]===n[r]&&r++}return r===i.length}function cl(i,e){return _o(e).map(s=>s[0].toLowerCase()).join("")===i.toLowerCase()}function ll(i,e){let t=i.toLowerCase(),n=e.toLowerCase();if(i===e)return{matchType:"exact",score:100};if(t===n)return{matchType:"exact-case-insensitive",score:98};if(n.startsWith(t))return{matchType:"prefix",score:90+i.length/e.length*8};if(n.endsWith(t))return{matchType:"suffix",score:80+i.length/e.length*8};if(n.includes(t)){let r=i.length/e.length,o=n.indexOf(t)/e.length;return{matchType:"substring",score:70+r*10-o*5}}return cl(i,e)?{matchType:"acronym",score:75}:al(i,e)?{matchType:"camel-case",score:65}:{matchType:"levenshtein",score:ol(i,e)*.6}}function en(i,e,t=50,n=5){let s=[];for(let r of e){let{matchType:o,score:c}=ll(i,r);if(c>=t){let l={exact:1e3,"exact-case-insensitive":900,prefix:800,suffix:700,substring:600,acronym:550,"camel-case":500,levenshtein:100}[o]+c;s.push({match:r,score:c,matchType:o,rank:l})}}return s.sort((r,o)=>o.rank!==r.rank?o.rank-r.rank:o.score!==r.score?o.score-r.score:r.match.length-o.match.length),s.slice(0,n)}Rt();var tt=class i{constructor(e){this.repoPath=e}get filesRepo(){return C.getInstance(this.repoPath).files}get exportsRepo(){return C.getInstance(this.repoPath).exports}get intentLogsRepo(){return C.getInstance(this.repoPath).intentLogs}static normalizeFileType(e){if(e==null)return;let t=Array.isArray(e)?e:e.split(",").map(n=>n.trim().replace(/^\./,""));return t.filter(Boolean).length?t:void 0}static matchesFilters(e,t,n,s){if(t.fileType?.length){let r=e.replace(/^.*\./,"").toLowerCase();if(!t.fileType.some(o=>o.toLowerCase()===r))return!1}if(t.layer!=null||t.excludeLayers&&t.excludeLayers.length>0){let r=s!=null?ke.mapClassificationToTier(s):ke.classify(e);if(t.layer!=null&&r!==t.layer||t.excludeLayers?.includes(r))return!1}return!0}async searchByPath(e,t,n,s,r,o=!1){let c=e.toLowerCase().split(/\s+/).filter(Boolean),a=this.filesRepo.findByPathKeywords(c,Math.min((t??50)*(r?me.FILTERED_QUERY_LIMIT_MULTIPLIER:1),Et.MAX_LIMIT));r&&(a=a.filter(u=>i.matchesFilters(u.path,s,u.mtime,u.classification)),a=a.slice(0,t??50));let l=u=>u.replace(this.repoPath,"").replace(/^\//,"");if(a.length===0)return{content:[{type:"text",text:`No indexed files match path/filename: "${e}".
576
-
577
- If the repo is not indexed, run shadow_recon_onboard then shadow_sync_trace. Otherwise try broader keywords.`}]};if(o){let d=new ge(this.repoPath).getSection("gravity"),m=new Map;if(d?.hotspots)for(let _ of d.hotspots){let b=m.get(_.filePath)||0;m.set(_.filePath,b+_.gravity)}let h=a.map(_=>{let b=m.get(_.path)||0,y=_.classification?ke.mapClassificationToTier(_.classification):ke.classify(_.path);return{..._,gravity:b,layer:y}});return h.sort((_,b)=>b.gravity-_.gravity),{content:[{type:"text",text:`# Resolved paths: "${e}" (Ranked by Gravity)
578
-
579
- ${h.length} file(s):
580
-
581
- `+h.map((_,b)=>{let y=_.gravity>50?" \u269B\uFE0F":_.gravity>0?" \u2022":"",E=_.gravity>0?` [G:${Math.round(_.gravity)}]`:"";return`${b+1}. \`${l(_.path)}\` (${_.layer})${y}${E}`}).join(`
562
+ `;default:return""}}mapKind(e,r){if(e==="import")return"ImportDeclaration";if(r===".php"){if(e==="func")return"FunctionDeclaration";if(e==="class")return"ClassDeclaration";if(e==="interface")return"InterfaceDeclaration";if(e==="trait")return"TraitDeclaration";if(e==="method")return"MethodDeclaration"}if(r===".py"){if(e==="func")return"FunctionDeclaration";if(e==="class")return"ClassDeclaration"}if(r===".go"){if(e==="func")return"FunctionDeclaration";if(e==="type")return"TypeDeclaration"}if(r===".rs"){if(e==="func")return"FunctionDeclaration";if(e==="struct")return"StructDeclaration";if(e==="enum")return"EnumDeclaration";if(e==="trait")return"TraitDeclaration";if(e==="type")return"TypeDeclaration"}return"Unknown"}mapClassification(e){return e==="import"?"Dependency":e==="func"||e==="method"?"Function":e==="class"||e==="interface"||e==="trait"||e==="struct"||e==="enum"||e==="type"?"Class":"Other"}async parse(e,r){await this.ensureInitialized();let i=Bh.extname(e).toLowerCase(),t=await this.getLanguage(i);if(!t||!this.parser)return[];this.parser.setLanguage(t);let o=this.parser.parse(r),s=r.split(`
563
+ `),a=this.getQueries(i);if(!a)return[];let l=new En.Query(t,a).matches(o.rootNode),u=[];for(let d of l){let p=d.captures.find(h=>h.name==="name")?.node,f=d.captures[0].node,m=d.captures[0].name;if(p){let h=f.startPosition.row+1,v=f.endPosition.row+1,b=s[f.startPosition.row].trim();u.push({name:p.text,kind:this.mapKind(m,i),classification:this.mapClassification(m),signature:b,line:h,endLine:v,doc:"",capabilities:"{}"})}}return u}};var Po=class{parse(e,r=!1){let i=[],t=[],o=e.split(`
564
+ `),s="",a="",c=0,l=0,u=-1,d=-1,p=[],f=[],m=!1,h=r?"api":"",v="",b=/^namespace\s+([a-zA-Z0-9_\\]+);/,g=/^(?:abstract\s+)?(?:readonly\s+)?class\s+([a-zA-Z0-9_]+)/,x=/^interface\s+([a-zA-Z0-9_]+)/,S=/^trait\s+([a-zA-Z0-9_]+)/,E=/^(?:public|protected|private|static|\s)*function\s+([a-zA-Z0-9_]+)\s*\(/,w=/^use\s+([a-zA-Z0-9_\\]+)(?:\s+as\s+([a-zA-Z0-9_]+))?;/,z=/^#\[([a-zA-Z0-9_\\]+)(?:\((.*)\))?\]/,R=/(?:Route::|router->|\$router->|->)(get|post|put|delete|patch|match)\s*\(\s*(?:uri\s*:\s*)?['"]([^'"]+)['"]/,U=/->prefix\s*\(\s*(?:prefix\s*:\s*)?['"]([^'"]+)['"]/;for(let I=0;I<o.length;I++){let T=o[I].trim();if(!T)continue;let N=(T.match(/{/g)||[]).length,F=(T.match(/}/g)||[]).length,D=l;if(l+=N-F,a&&l<=d){let K=i.find(G=>G.name===a&&G.line===c);K&&(K.endLine=I+1),a="",d=-1}if(s&&l<=u){let K=i.find(G=>G.name===s&&(G.kind==="ClassDeclaration"||G.kind==="TraitDeclaration"||G.kind==="InterfaceDeclaration"));K&&(K.endLine=I+1),s="",u=-1}let C=T.match(U);if(C&&(h=C[1]),T.includes("});")&&(h=""),T.startsWith("/**")){m=!0,f=[];continue}if(m){T.endsWith("*/")?m=!1:f.push(T.replace(/^\*\s?/,""));continue}let W=T.match(z);if(W){p.push(W[1]);continue}let q=T.match(b);if(q){v=q[1]||"",p=[],f=[];continue}let B=T.match(g);if(B){s=B[1],u=l-N;let K={attributes:p};v&&(K.namespace=v),i.push({name:s,kind:"ClassDeclaration",classification:"Class",signature:`class ${s}`,line:I+1,endLine:I+1,doc:f.join(`
565
+ `).trim(),capabilities:JSON.stringify(K),members:[]}),p=[],f=[];continue}let H=T.match(x);if(H){let K=H[1];s=K,u=l-N,i.push({name:K,kind:"InterfaceDeclaration",classification:"Interface",signature:`interface ${K}`,line:I+1,endLine:I+1,doc:f.join(`
566
+ `).trim(),capabilities:JSON.stringify({attributes:p}),members:[]}),p=[],f=[];continue}let Q=T.match(S);if(Q){let K=Q[1];s=K,u=l-N,i.push({name:K,kind:"TraitDeclaration",classification:"Trait",signature:`trait ${K}`,line:I+1,endLine:I+1,doc:f.join(`
567
+ `).trim(),capabilities:JSON.stringify({attributes:p}),members:[]}),p=[],f=[];continue}let V=T.match(E);if(V){let K=V[1],G=!!s;a=K,c=I+1,d=l-N;let Ne=!1,Ee={};for(let Pe of p)Pe.toLowerCase().includes("route")&&(Ne=!0,Ee={type:"route",method:"GET",path:"/"});let He=f.join(`
568
+ `).trim();if(Ne){let Pe=Ee.path||"/";i.push({name:Pe,kind:"HTTP Route",classification:"Service Boundary",signature:`Function: ${K}`,line:I+1,endLine:I+1,doc:He,capabilities:JSON.stringify({type:"route",handler:s?`${s}@${K}`:K,...Ee})}),t.push({type:"api_route",name:Pe,direction:"consume",line:I+1,snippet:T})}i.push({name:K,kind:G?"MethodDeclaration":"FunctionDeclaration",classification:G?"Method":"Function",signature:`${G?s+":: ":""}${K}`,line:I+1,endLine:I+1,doc:He,capabilities:JSON.stringify({attributes:p})}),p=[],f=[];continue}let re=T.match(w);if(re){let K=re[1]||"",G=re[2]||K.split("\\").pop()||"";i.push({name:G,kind:"ImportSpecifier",classification:"Dependency",signature:`use ${K}`,line:I+1,endLine:I+1,doc:"",capabilities:JSON.stringify({type:"use",namespace:K})}),p=[],f=[];continue}let le=T.match(R);if(le){let K=le[1].toUpperCase(),G=le[2];if(T.includes("Route::")||T.includes("router->")||T.includes("action")||T.includes(",")&&!T.includes("view(")){if(h){let $e=h.startsWith("/")?h:`/${h}`,Vr=G.startsWith("/")?G:`/${G}`;G=($e+Vr).replace(/\/+/g,"/")}let Ee=null,He=T.match(/\[\s*([a-zA-Z0-9_]+)::class\s*,\s*['"]([^'"]+)['"]\s*\]/);if(He)Ee=`${He[1]}@${He[2]}`;else if(T.includes("::class")){let $e=T.match(/([a-zA-Z0-9_]+)::class/);$e&&(Ee=$e[1])}let Pe=T;!T.endsWith(");")&&I+1<o.length&&(Pe+=" "+o[I+1].trim(),!Pe.endsWith(");")&&I+2<o.length&&(Pe+=" "+o[I+2].trim())),i.push({name:G,kind:"HTTP Route",classification:"Service Boundary",signature:Pe,line:I+1,endLine:I+1,doc:"",capabilities:JSON.stringify({type:"route",method:K,path:G,handler:Ee})}),t.push({type:"api_route",name:G,direction:"consume",line:I+1,snippet:Pe,method:K,url:G}),f=[];continue}}let fe=/(?:\$client|client|Http)::(get|post|put|delete|patch|request)\s*\(\s*(?:url\s*:\s*)?([^,)]+)|(?:\$client|client)->(request|get|post|put|delete|patch)\s*\(\s*([^,)]+)/,se=T.match(fe);if(se){let K=(se[1]||se[3]).toUpperCase(),G=(se[2]||se[4]).trim();(G.startsWith("'")&&G.endsWith("'")||G.startsWith('"')&&G.endsWith('"'))&&(G=G.substring(1,G.length-1)),t.push({type:"api_route",name:G,direction:"produce",line:I+1,snippet:T,method:K,url:G})}!T.startsWith("#[")&&!T.startsWith("//")&&!T.startsWith("*")&&!m&&(p=[],f=[])}return{nodes:i,events:t}}};var Ro=class{currentRoutePrefix="";parse(e){this.currentRoutePrefix="";let r=[],i=[],t=e.split(`
569
+ `),o=[{indent:-1,name:"root",type:"root"}],s=[],a=/^class\s+([a-zA-Z0-9_]+)/,c=/^async\s+def\s+([a-zA-Z0-9_]+)|^def\s+([a-zA-Z0-9_]+)/,l=/^(?:from\s+([a-zA-Z0-9_\.]+)\s+import|import\s+([a-zA-Z0-9_\.]+))/,u=/^@(.*)/;function d(b){return b.trim().split(/[.(]/)[0]?.trim()||b}function p(b){let g=b.decorators.map(S=>d(S.raw)),x={decorators:b.decorators,decoratorNames:g};return b.async===!0&&(x.async=!0),JSON.stringify(x)}let f=!1,m="",h=[],v=[];for(let b=0;b<t.length;b++){let g=t[b],x=g.trim();if(!x||x.startsWith("#"))continue;let S=/^([a-zA-Z0-9_]+)\s*=\s*(?:APIRouter|Blueprint)\s*\(\s*(?:prefix\s*=\s*)?['"]([^'"]+)['"]/,E=x.match(S);if(E&&(this.currentRoutePrefix=E[2]),f){if(x.endsWith(m)||x.includes(m)){f=!1;let B=x.replace(m,"").trim();B&&h.push(B);let H=o[o.length-1];H.node&&(H.node.doc=h.join(`
570
+ `).trim()),h=[]}else h.push(x);continue}let w=g.search(/\S/),z=g.trim(),R=z.match(/^(['"]{3})/);if(R){let B=R[1],H=o[o.length-1];if(H.node&&!H.node.doc){if(z.substring(3).includes(B)){let Q=z.replace(new RegExp(B,"g"),"").trim();H.node.doc=Q}else{f=!0,m=B;let Q=z.substring(3).trim();Q&&h.push(Q)}continue}}for(;o.length>1&&o[o.length-1].indent>=w;)o.pop();let U=o[o.length-1],I=z.match(u);if(I){s.push({raw:I[1].trim(),line:b+1});continue}let T=z.match(a);if(T){let B=T[1],H={name:B,kind:"ClassDeclaration",classification:"Class",signature:`class ${B}`,line:b+1,endLine:b+1,doc:"",capabilities:p({decorators:s}),members:[]};v.push(H),U.node?(U.node.members||(U.node.members=[]),U.node.members.push(H)):r.push(H),o.push({indent:w,name:B,type:"class",node:H}),s=[];continue}let N=z.match(c);if(N){let B=!!N[1],H=N[1]||N[2],Q=U.type==="class",V=!1,re={};for(let G of s)if(G.raw.match(/(?:app|router)\.(get|post|put|delete|patch)/)){V=!0;let Ee=["get","post","put","delete","patch"].find($e=>G.raw.toLowerCase().includes(`.${$e}`))?.toUpperCase()||"GET",He=G.raw.match(/['"]([^'"]+)['"]/),Pe=He?He[1]:"/";if(this.currentRoutePrefix){let $e=this.currentRoutePrefix.endsWith("/")?this.currentRoutePrefix.slice(0,-1):this.currentRoutePrefix,Vr=Pe.startsWith("/")?Pe:`/${Pe}`;Pe=$e+Vr}re={type:"route",method:Ee,path:Pe}}if(V){let G=re.path||"",Ne={name:G||H,kind:"HTTP Route",classification:"Service Boundary",signature:`Function: ${H}`,line:b+1,endLine:b+1,doc:"",capabilities:JSON.stringify({handler:Q?`${U.name}.${H}`:H,async:B,...re})};v.push(Ne),r.push(Ne),i.push({type:"api_route",name:G,direction:"consume",line:b+1,snippet:z})}let le=s.some(G=>G.raw==="staticmethod"),fe=s.some(G=>G.raw==="classmethod"),se=`${B?"async ":""}${Q?(le?"@staticmethod ":fe?"@classmethod ":"")+U.name+".":""}${H}`,K={name:H,kind:B&&Q?"AsyncMethodDeclaration":B?"AsyncFunctionDeclaration":Q?"MethodDeclaration":"FunctionDeclaration",classification:Q?le||fe?"Static Method":"Method":"Function",signature:se,line:b+1,endLine:b+1,doc:"",capabilities:p({decorators:s,async:B}),members:[]};v.push(K),U.node?(U.node.members||(U.node.members=[]),U.node.members.push(K)):r.push(K),o.push({indent:w,name:H,type:"function",node:K}),s=[];continue}let F=/^(?:path|re_path|url)\s*\(\s*['"]([^'"]+)['"]/,D=z.match(F);if(D){let B=D[1].replace(/^\^/,""),H={name:B,kind:"HTTP Route",classification:"Service Boundary",signature:z.trim(),line:b+1,endLine:b+1,doc:"",capabilities:JSON.stringify({type:"route",method:"GET",path:B})};v.push(H),r.push(H),i.push({type:"api_route",name:B,direction:"consume",line:b+1,snippet:z});continue}let C=/(?:requests|httpx|client|http)\.(get|post|put|delete|patch|request)\s*\(\s*(?:url\s*:\s*)?([^,)]+)/,W=z.match(C);if(W){let B=W[1].toUpperCase(),H=W[2].trim();(H.startsWith("'")&&H.endsWith("'")||H.startsWith('"')&&H.endsWith('"'))&&(H=H.substring(1,H.length-1)),i.push({type:"api_route",name:H,direction:"produce",line:b+1,snippet:z,method:B,url:H})}let q=z.match(l);if(q){let B=q[1]||q[2],H={name:B,kind:"ImportSpecifier",classification:"Dependency",signature:`import ${B}`,line:b+1,endLine:b+1,doc:"",capabilities:JSON.stringify({type:"import",module:B})};v.push(H),r.push(H),s=[];continue}s=[],U.node&&(U.node.endLine=b+1)}return{nodes:v,events:i}}};function oS(n,e){let r=0,i=!1;for(let t=e;t<n.length;t++){let o=n[t];for(let s of o)if(s==="{")r++,i=!0;else if(s==="}"&&(r--,i&&r<=0))return t+1;if(!i&&t>e&&/[;}]$/.test(o.trim()))return t+1}return Math.min(n.length,e+41)}var Gh=[{extension:[".php"],rules:[]},{extension:[".py"],rules:[]},{extension:[".go"],rules:[{regex:/func\s+([a-zA-Z0-9_]+)\(/g,onMatch:n=>({name:n[1],kind:"FunctionDeclaration",classification:"Function",signature:n[0]})},{regex:/func\s+\([^\)]+\)\s+([a-zA-Z0-9_]+)\(/g,onMatch:n=>({name:n[1],kind:"MethodDeclaration",classification:"Method",signature:n[0]})},{regex:/import\s+['"]([^'"]+)['"]/g,onMatch:n=>({name:n[1],kind:"ImportSpecifier",classification:"Dependency",signature:n[0],meta:{type:"import",path:n[1]}})}]},{extension:[".rs"],rules:[{regex:/fn\s+([a-zA-Z0-9_]+)\s*\(/g,onMatch:n=>({name:n[1],kind:"FunctionDeclaration",classification:"Function",signature:n[0]})},{regex:/struct\s+([a-zA-Z0-9_]+)/g,onMatch:n=>({name:n[1],kind:"StructDeclaration",classification:"Class",signature:n[0]})},{regex:/enum\s+([a-zA-Z0-9_]+)/g,onMatch:n=>({name:n[1],kind:"EnumDeclaration",classification:"Class",signature:n[0]})},{regex:/trait\s+([a-zA-Z0-9_]+)/g,onMatch:n=>({name:n[1],kind:"TraitDeclaration",classification:"Class",signature:n[0]})},{regex:/use\s+([a-zA-Z0-9_:]+(?:\s+as\s+[a-zA-Z0-9_]+)?);/g,onMatch:n=>({name:n[1].trim(),kind:"ImportDeclaration",classification:"Dependency",signature:n[0],meta:{type:"import",path:n[1].trim()}})}]},{extension:[".ts",".tsx",".js",".jsx",".mjs",".cjs"],rules:[{regex:/(?:export\s+)?(?:async\s+)?function\s+([a-zA-Z0-9_]+)\s*\(/g,onMatch:n=>({name:n[1],kind:"FunctionDeclaration",classification:"Function"})},{regex:/(?:export\s+)?class\s+([a-zA-Z0-9_]+)/g,onMatch:n=>({name:n[1],kind:"ClassDeclaration",classification:"Class"})},{regex:/(?:export\s+)?interface\s+([a-zA-Z0-9_]+)/g,onMatch:n=>({name:n[1],kind:"InterfaceDeclaration",classification:"Interface"})},{regex:/(?:export\s+)?const\s+([a-zA-Z0-9_]+)\s*=/g,onMatch:n=>({name:n[1],kind:"VariableDeclaration",classification:"Constant"})},{regex:/import\s+.*\s+from\s+['"]([^'"]+)['"]/g,onMatch:n=>({name:n[1],kind:"ImportDeclaration",classification:"Dependency",meta:{path:n[1]}})}]}];function sS(n,e){let r=[];if(n===".go"&&e.some(i=>i.kind==="TypeDeclaration")&&r.push("Go type"),n===".rs"&&(e.some(i=>i.kind==="TraitDeclaration")&&r.push("Rust trait"),e.some(i=>i.kind==="StructDeclaration")&&r.push("Rust struct"),e.some(i=>i.kind==="EnumDeclaration")&&r.push("Rust enum")),n===".py"){for(let i of e)if(i.capabilities)try{if(JSON.parse(i.capabilities).decoratorNames?.length){r.push("Python decorators");break}}catch{}e.some(i=>i.kind==="AsyncFunctionDeclaration"||i.kind==="AsyncMethodDeclaration")&&r.push("Async")}return r}var zo=class{phpParser=new Po;pythonParser=new Ro;treeSitterParser=new To;supports(e){return Gh.some(r=>r.extension.includes(e.toLowerCase()))}async parse(e,r){let i=Pc.extname(e).toLowerCase(),t=[],o=[];if(i===".php"||i===".py"||i===".go"||i===".rs"){if(i===".py"){let l=this.pythonParser.parse(r);t=l.nodes,o=l.events}else if(i===".php"){let l=e.toLowerCase().endsWith("api.php"),u=this.phpParser.parse(r,l);t=u.nodes,o=u.events}else try{t=await this.treeSitterParser.parse(e,r)}catch{}if(t.length>0){let l=i===".php"?"Micro IR (PHP/TS) ":i===".py"?"Micro IR (Python/TS) ":i===".go"?"Micro IR (Go/TS) ":"Micro IR (Rust/TS) ",u=t.filter(m=>m.classification!=="Dependency"),d=t.filter(m=>m.classification==="Dependency"),p=sS(i,t),f=oi({classification:l,capabilities:p,exports:u.map(m=>({name:m.name,kind:m.kind,classification:m.classification})),fileName:Pc.basename(e)});return{exports:u,imports:d.map(m=>({module:m.name,name:m.name,kind:m.kind,classification:m.classification})),events:o,classification:l,summary:f||`${i.substring(1).toUpperCase()} module`,parseStatus:"success"}}}let s=Gh.find(l=>l.extension.includes(i));if(!s)return{exports:[],imports:[],classification:"Unknown",summary:"",parseStatus:"failed",parseError:`Unsupported file extension: ${i}`};let a=r.split(`
571
+ `);for(let l of s.rules){l.regex.lastIndex=0;let u;for(;(u=l.regex.exec(r))!==null;){let d=l.onMatch(u),p=r.substring(0,u.index).split(`
572
+ `).length,f=oS(a,p-1);t.push({name:d.name||"anonymous",kind:d.kind||"Unknown",classification:d.classification||"Other",signature:d.signature||u[0],line:p,endLine:f,doc:"",capabilities:JSON.stringify(d.meta||{})})}}let c=oi({classification:`Micro IR (${i.substring(1).toUpperCase()})`,capabilities:[],exports:t.map(l=>({name:l.name,kind:l.kind,classification:l.classification})),fileName:Pc.basename(e)});return{exports:t,imports:[],classification:`Micro IR (${i.substring(1).toUpperCase()})`,summary:c||"Module",parseStatus:t.length>0?"success":"partial"}}};J();import*as Rc from"@swc/core";function Jh(n){if(!n||typeof n!="object")return!1;let e=n;return typeof e.parse=="function"&&typeof e.parseSync=="function"}function aS(){if(Jh(Rc))return Rc;let n=Rc;if(Jh(n.default))return n.default;throw new Error("SWC runtime unavailable: couldn't resolve parse/parseSync from @swc/core exports")}var qh=aS();function si(n,e,r){return qh.parse(n,e,r)}function No(n,e,r){return qh.parseSync(n,e,r)}var zc=new zo;async function Xn(n){let e=Kh.extname(n);if(zc.supports(e)&&e!==".ts"&&e!==".tsx")try{let o=await Vh.promises.readFile(n,"utf-8");return{...await zc.parse(n,o),content:o}}catch(o){return $.error({filePath:n,error:o.message},"HeuristicParser failed"),{exports:[],imports:[],classification:"Unknown",summary:"",content:"",parseStatus:"failed",parseError:o.message}}let r;try{r=await Vh.promises.readFile(n)}catch(o){return{exports:[],imports:[],classification:"Error",summary:"",content:"",parseStatus:"failed",parseError:`File read error: ${o.message}`}}let i=r.toString("utf8"),t=Dh(i);try{let o=n.endsWith(".tsx"),s=n.endsWith(".d.ts")||n.endsWith(".d.tsx"),a,c={syntax:"typescript",tsx:o,decorators:!0,comments:!0};if(s)try{a=No(i,c)}catch{a=No(i,{...c,isModule:!1})}else a=No(i,c);let l=a.span.start,u=Lh(r),d=Oh(i),p=E=>Ah(E,l,r),f=jh(a.body),m=Zh(a.body);m.length>0&&$.debug({filePath:n,count:m.length},"Extracted type references"),m.forEach(E=>{f.push({module:"__type_reference__",name:E})});let h=Fh(a.body,l,r,i,t,d,n,p,u),v=Uh(a.body,l,r,t,p,u),b=Io(n,"","Module"),x=d.length>0&&i.slice(0,d[0].start).trim().length===0?d[0].text:h.find(E=>E.doc)?.doc||"",S=Mh(x);if(!S&&h.length>0){let E=ii(i);S=oi({classification:b,capabilities:E,exports:h.map(w=>({name:w.name,kind:w.kind,classification:w.classification})),fileName:Kh.basename(n)})}return{exports:h,imports:f,events:v,classification:b,summary:S,content:i,parseStatus:"success"}}catch(o){$.warn({filePath:n,error:o.message},"SWC parsing failed, using heuristic fallback");try{let s=await zc.parse(n,i);return{...s,content:i,classification:s.classification+" (Degraded)",parseStatus:"partial",parseError:`SWC failed, used heuristic fallback: ${o.message}`}}catch(s){return $.error({filePath:n,error:s.message},"All parsing strategies failed"),{exports:[],imports:[],classification:"Error",summary:"",content:i,parseStatus:"failed",parseError:`All parsing strategies failed: ${s.message}`}}}}import Co from"path";var cS=50;function ai(n,e,r,i){let t={name:Co.basename(e)||e,type:"directory",path:e,children:[]};return n.forEach(o=>{let a=Co.relative(e,o.path).split(Co.sep),c=t;for(let l=0;l<a.length;l++){let u=a[l];if(i!==void 0&&l>=i)return;let d=l===a.length-1;if(i===1&&l===0&&d)return;let p=i!==void 0&&l===i-1&&!d,f=Co.join(e,...a.slice(0,l+1)),m=c.children?.find(h=>h.name===u);if(!m){if(c.children&&c.children.length>=cS){c.children.find(b=>b.type==="truncated")||c.children.push({name:"... (truncated) ",type:"truncated",path:"",children:void 0});return}m={name:u,type:d?"file":"directory",path:f,children:d||p?void 0:[],summary:d?{classification:o.classification,summaryText:o.summary,exports:o.exports,imports:o.imports,chunks:o.chunks}:void 0},m.summary&&(r==="structure"||r==="signatures")&&(delete m.summary.chunks,delete m.summary.imports),c.children?.push(m)}c=m}}),t}J();import Zc from"p-limit";dt();import Hc from"path";import OS from"fs";import MS from"os";import ft from"path";import nr from"fs";import{loadConfig as dS,createMatchPath as pS}from"tsconfig-paths";import Jt from"path";import ci from"fs";var qt=class extends Error{constructor(r,i,t){super(i);this.code=r;this.cause=t;this.name="FileSystemError"}};function Yh(n){let e;try{e=ci.statSync(n).isDirectory()?n:Jt.dirname(n)}catch(r){throw r.code==="ENOENT"?new qt("FILE_NOT_FOUND",`Start path does not exist: ${n}`,r):r.code==="EACCES"||r.code==="EPERM"?new qt("PERMISSION_DENIED",`Permission denied accessing: ${n}`,r):new qt("UNKNOWN",`Failed to access path: ${n}`,r)}for(;e!==Jt.dirname(e);){let r=Jt.join(e,"tsconfig.json");if(ci.existsSync(r))return e;e=Jt.dirname(e)}return null}function Xh(n){let e;try{e=ci.statSync(n).isDirectory()?n:Jt.dirname(n)}catch(r){throw r.code==="ENOENT"?new qt("FILE_NOT_FOUND",`Start path does not exist: ${n}`,r):r.code==="EACCES"||r.code==="EPERM"?new qt("PERMISSION_DENIED",`Permission denied accessing: ${n}`,r):new qt("UNKNOWN",`Failed to access path: ${n}`,r)}for(;e!==Jt.dirname(e);){let r=Jt.join(e,"package.json");if(ci.existsSync(r))try{if(JSON.parse(ci.readFileSync(r,"utf8")).workspaces)return e}catch{}e=Jt.dirname(e)}return null}import Qn from"path";import In from"fs";function Qh(n,e){let r=new Map,i=e.workspaces||[];for(let t of i){let o=t.replace("/*",""),s=Qn.join(n,o);if(!In.existsSync(s))continue;let a=In.readdirSync(s);for(let c of a){let l=Qn.join(s,c,"package.json");if(In.existsSync(l))try{let u=JSON.parse(In.readFileSync(l,"utf8"));u.name&&r.set(u.name,{name:u.name,path:Qn.dirname(l),main:u.main||"dist/index.js"})}catch{}}}return r}function eg(n){let e=new Map;try{let r=JSON.parse(In.readFileSync(n,"utf8")),i={...r.dependencies,...r.devDependencies};for(let[t,o]of Object.entries(i))if(typeof o=="string"&&o.startsWith("file:")){let s=o.substring(5),a=Qn.dirname(n),c=Qn.resolve(a,s),l=Qn.join(c,"package.json");if(In.existsSync(l))try{let u=JSON.parse(In.readFileSync(l,"utf8"));e.set(t,{name:t,path:c,main:u.main||"dist/index.js"})}catch{}}}catch{}return e}import tg from"path";import mt from"fs";var lS=[".ts",".tsx",".d.ts",".js",".jsx"];function rt(n){let e=tg.extname(n);if(e===".js"||e===".jsx"){let r=n.slice(0,-e.length),i=e===".jsx"?[".tsx",".ts"]:[".ts",".tsx"];for(let t of i){let o=r+t;if(mt.existsSync(o)&&mt.statSync(o).isFile())return o}if(mt.existsSync(n)&&mt.statSync(n).isFile())return n}if(mt.existsSync(n)&&mt.statSync(n).isFile())return n;for(let r of lS){let i=n+r;if(mt.existsSync(i)&&mt.statSync(i).isFile())return i}if(mt.existsSync(n)&&mt.statSync(n).isDirectory())for(let r of[".ts",".tsx",".js",".jsx"]){let i=tg.join(n,"index"+r);if(mt.existsSync(i))return i}return""}import er from"path";import uS from"fs";function Do(n,e,r){if(n.startsWith(".")){let t=er.dirname(e),o=er.resolve(t,n),s=rt(o);return s?{resolved:!0,resolvedPath:s}:{resolved:!1,error:`File not found at relative path: ${o}`,suggestion:"Check if the file exists and has a supported extension (.ts, .tsx, .js, .jsx)"}}let i=tr(e);if(i){if(i.matchPath){let o=i.matchPath(n);if(o){let s=rt(o);return s?{resolved:!0,resolvedPath:s}:{resolved:!1,error:`Path alias matched to '${o}' but file does not exist`,suggestion:"Check if the target file exists or if the alias mapping in tsconfig.json is correct"}}}if(!n.startsWith("@")){let o=er.resolve(i.baseUrl,n),s=rt(o);if(s)return{resolved:!0,resolvedPath:s}}let t=i.workspacePackages.get(n);if(t){let o=er.join(t.path,"src/index.ts");if(uS.existsSync(o))return{resolved:!0,resolvedPath:o};let s=er.join(t.path,t.main),a=rt(s);return a?{resolved:!0,resolvedPath:a}:{resolved:!1,error:`Workspace package '${n}' found at ${t.path} but entry point not found`,suggestion:`Check main field in ${er.join(t.path,"package.json")}`}}}else return{resolved:!1,error:"No tsconfig.json found",suggestion:"Ensure a tsconfig.json exists in the project root or parent directories"};return n.startsWith("@")?{resolved:!1,error:`Path alias '${n}' not found in tsconfig.json paths`,suggestion:'Check tsconfig.json "paths" configuration'}:{resolved:!1,error:"Module not found (treated as external) ",suggestion:"Install dependency or check import path"}}var Lo=new Map;function tr(n){let e=Yh(n);if(!e)return null;if(Lo.has(e))return Lo.get(e)||null;let r=dS(e);if(r.resultType==="failed")return Lo.set(e,null),null;let i=r,t=i.absoluteBaseUrl;!t&&i.paths&&Object.keys(i.paths).length>0&&(t=i.configFileAbsolutePath?ft.dirname(i.configFileAbsolutePath):e);let o=pS(t,i.paths,i.mainFields,i.addMatchAll),s=Xh(e),a=new Map;if(s){let d=ft.join(s,"package.json");if(nr.existsSync(d))try{let p=JSON.parse(nr.readFileSync(d,"utf8"));a=Qh(s,p)}catch{}}let c=ft.join(e,"package.json");nr.existsSync(c)&&eg(c).forEach((p,f)=>a.set(f,p));let l={baseUrl:t||"",paths:i.paths,matchPath:o,workspacePackages:a,imports:new Map},u=ft.join(e,"package.json");if(nr.existsSync(u))try{let d=JSON.parse(nr.readFileSync(u,"utf8"));if(d.imports){for(let[p,f]of Object.entries(d.imports))if(typeof f=="string"||typeof f=="object"&&f!==null){let m=f;Array.isArray(f)&&(m=f[0]),typeof m=="object"&&(m=m.default||m.node),typeof m=="string"&&l.imports.set(p,m)}}}catch{}return Lo.set(e,l),l}function Vt(n,e,r){if(!n)return"";if(n.includes(".")&&!n.startsWith(".")&&!n.startsWith("/")&&!n.endsWith(".js")&&!n.endsWith(".ts")&&!n.endsWith(".json")){let t=n.split(".")[0];if(t&&t!==n){let o=Vt(t,e,r);if(o)return o}}if(n.startsWith(".")){let t=ft.dirname(e),o=ft.resolve(t,n);return rt(o)}let i=tr(e);if(i){let t=i.matchPath(n);if(t)return rt(t);if(!n.startsWith("@")||n.startsWith("@/")){let s=ft.resolve(i.baseUrl,n),a=rt(s);if(a)return a}for(let[s,a]of i.imports.entries())if(s.includes("*")){let c="^"+s.replace(/[\\^$+.()|[\]{}]/g,"\\$&").replace(/\*/g,"(.*)")+"$",l=new RegExp(c),u=n.match(l);if(u){let d=u[1],p=a.replace("*",d),f=ft.resolve(i.baseUrl,p);return rt(f)}}else if(s===n){let c=ft.resolve(i.baseUrl,a);return rt(c)}let o=i.workspacePackages.get(n);if(o){let s=ft.join(o.path,"src/index.ts");if(nr.existsSync(s))return s;let a=ft.join(o.path,o.main),c=rt(a);if(c)return c}}return""}import mS from"fs";import fS from"path";import rg from"js-yaml";function ng(n){let e=fS.basename(n),r=mS.readFileSync(n,"utf8"),i=[];if(e.endsWith(".prisma"))return{...bS(r,n),content:r};if(e.endsWith(".graphql")||e.endsWith(".gql"))return{...vS(r,n),content:r};let t="Configuration";return e==="lerna.json"?{...xS(r,n),content:r}:e==="turbo.json"?{...SS(r,n),content:r}:e==="pnpm-workspace.yaml"?{...$S(r,n),content:r}:(e.includes("Dockerfile")?(t="Infrastructure (Docker) ",hS(r,i)):e.endsWith(".yaml")||e.endsWith(".yml")?(t="Infrastructure (YAML) ",gS(r,i)):e.startsWith(".env")?(t="Configuration (Env) ",yS(r,i)):e==="package.json"&&(t="Project Manifest",_S(r,i)),{configs:i,classification:t,content:r})}function hS(n,e){let r=n.split(`
573
+ `);for(let i of r){let t=i.trim();if(t.startsWith("FROM "))e.push({key:"base_image",value:t.substring(5).trim(),kind:"Image"});else if(t.startsWith("EXPOSE "))e.push({key:"port",value:t.substring(7).trim(),kind:"Port"});else if(t.startsWith("ENV ")){let o=t.substring(4).trim().split(/\s+|=/);if(o[0]){let s=o[0],a=o.slice(1).join("= ").trim()||"undefined",c="Env";(s.endsWith("_URI")||s.endsWith("_URL")||s.endsWith("_HOST"))&&(c="Service"),e.push({key:s,value:a,kind:c})}}}}function gS(n,e){try{let r=rg.load(n);if(!r||typeof r!="object")return;if(r.services&&typeof r.services=="object")for(let[t,o]of Object.entries(r.services)){if(!o||typeof o!="object")continue;let s=o;if(e.push({key:`service:${t}`,value:t,kind:"Service"}),s.image&&e.push({key:`service:${t}:image`,value:String(s.image),kind:"Image"}),Array.isArray(s.ports)&&s.ports.forEach(a=>{e.push({key:`service:${t}:port`,value:String(a),kind:"Port"})}),s.environment){if(Array.isArray(s.environment))s.environment.forEach(a=>{let[c,...l]=a.split("= ");c&&l.length>0&&e.push({key:`service:${t}:env:${c}`,value:l.join("= "),kind:"Env"})});else if(typeof s.environment=="object")for(let[a,c]of Object.entries(s.environment))e.push({key:`service:${t}:env:${a}`,value:String(c),kind:"Env"})}if(Array.isArray(s.depends_on))s.depends_on.forEach(a=>{e.push({key:`service:${t}:depends_on`,value:a,kind:"Dependency"})});else if(s.depends_on&&typeof s.depends_on=="object")for(let a of Object.keys(s.depends_on))e.push({key:`service:${t}:depends_on`,value:a,kind:"Dependency"})}let i=(t,o="")=>{if(!(!t||typeof t!="object"||Array.isArray(t)))for(let[s,a]of Object.entries(t)){let c=o?`${o}.${s}`:s;if(r.services&&(c.startsWith("services.")||c==="services")){a&&typeof a=="object"&&!Array.isArray(a)&&i(a,c);continue}if(a&&typeof a=="object"&&!Array.isArray(a))i(a,c);else if(a!=null){let l=String(a);if(l==="[object Object]"||l.includes("[object Object]"))continue;let u="Env",d=/^[a-z0-9_-]+$/i.test(l),p=l.includes("://");s.toLowerCase().includes("service")&&(d||p)&&(u="Service"),s.toLowerCase().includes("image")&&(u="Image"),s.toLowerCase().includes("port")&&(u="Port"),(s.endsWith("_URI")||s.endsWith("_URL")||s.endsWith("_HOST"))&&p&&(u="Service"),e.push({key:c,value:l.length>200?l.substring(0,197)+"...":l,kind:u})}}};i(r)}catch{let i=n.match(/^\s{2}([a-z0-9_-]+):/gm);i&&i.forEach(t=>{let o=t.trim().replace(" : ","");o!=="services"&&o!=="version"&&o!=="volumes"&&o!=="networks"&&e.push({key:"service",value:o,kind:"Service"})})}}function yS(n,e){let r=n.split(`
574
+ `);for(let i of r){let t=i.trim();if(t&&!t.startsWith("#")){let o=t.split("=");if(o[0]){let s=o[0].trim(),a=o.slice(1).join("=");a=a.trim().replace(/^['"](.*)['"]$/,"$1");let c="Env",l=a.includes("://");(s.endsWith("_URI")||s.endsWith("_URL")||s.endsWith("_HOST"))&&l&&(c="Service"),e.push({key:s,value:a,kind:c})}}}}function bS(n,e){let r=[],i="Contract (Prisma) ",t=/^model\s+(\w+)/gm,o;for(;(o=t.exec(n))!==null;)r.push({key:"model",value:o[1],kind:"Database Model"});let s=/^enum\s+(\w+)/gm;for(;(o=s.exec(n))!==null;)r.push({key:"enum",value:o[1],kind:"Database Enum"});let a=/provider\s*=\s*"([^"]+)"/,c=n.match(a);return c&&r.push({key:"datasource_provider",value:c[1],kind:"Database Config"}),{classification:i,configs:r,content:n}}function vS(n,e){let r=[],i="Contract (GraphQL) ",t=/^(?:type|input|interface|enum)\s+(\w+)/gm,o;for(;(o=t.exec(n))!==null;){let s=o[0],a="GraphQL Type";s.startsWith("input")&&(a="GraphQL Input"),s.startsWith("interface")&&(a="GraphQL Interface"),s.startsWith("enum")&&(a="GraphQL Enum"),r.push({key:"type_definition",value:o[1],kind:a})}return{classification:i,configs:r,content:n}}function _S(n,e){try{let r=JSON.parse(n);if(r.name&&e.push({key:"name",value:r.name,kind:"Service"}),r.description&&e.push({key:"description",value:r.description,kind:"Env"}),r.workspaces){let o=Array.isArray(r.workspaces)?r.workspaces.join("",""):JSON.stringify(r.workspaces);e.push({key:"workspaces",value:o,kind:"Env"})}if(r.scripts){let o=["start","dev","build","test","docker"];for(let s of Object.keys(r.scripts))o.some(a=>s.includes(a))&&e.push({key:`script:${s}`,value:r.scripts[s],kind:"Env"})}let i={...r.dependencies,...r.devDependencies},t=["react","vue","svelte","angular","next","nuxt","express","fastify","nestjs","remix","vite","webpack","tailwindcss","database"];for(let o of Object.keys(i))if(t.some(s=>o.includes(s))){let s=i[o].replace(/[\^~]/,"");e.push({key:`dep:${o}`,value:s,kind:"Dependency"})}}catch{}}function xS(n,e){let r=[],i="Monorepo (Lerna) ";try{let t=JSON.parse(n);r.push({key:"monorepo_type",value:"lerna",kind:"Monorepo"}),t.version&&r.push({key:"lerna_version",value:t.version,kind:"Monorepo"}),t.packages&&(Array.isArray(t.packages)?t.packages:[t.packages]).forEach(s=>{r.push({key:"package_glob",value:s,kind:"Monorepo"})}),t.npmClient&&r.push({key:"npm_client",value:t.npmClient,kind:"Monorepo"})}catch{}return{configs:r,classification:i,content:n}}function SS(n,e){let r=[],i="Monorepo (Turborepo) ";try{let t=JSON.parse(n);if(r.push({key:"monorepo_type",value:"turborepo",kind:"Monorepo"}),t.pipeline)for(let o of Object.keys(t.pipeline)){r.push({key:`pipeline:${o}`,value:o,kind:"Monorepo"});let s=t.pipeline[o];s.dependsOn&&r.push({key:`pipeline:${o}:depends_on`,value:s.dependsOn.join("",""),kind:"Dependency"})}if(t.tasks)for(let o of Object.keys(t.tasks))r.push({key:`task:${o}`,value:o,kind:"Monorepo"})}catch{}return{configs:r,classification:i,content:n}}function $S(n,e){let r=[],i="Monorepo (pnpm) ";try{let t=rg.load(n);r.push({key:"monorepo_type",value:"pnpm",kind:"Monorepo"}),t&&t.packages&&(Array.isArray(t.packages)?t.packages:[t.packages]).forEach(s=>{r.push({key:"package_glob",value:s,kind:"Monorepo"})})}catch{}return{configs:r,classification:i,content:n}}X();Nt();import{execSync as Tn}from"child_process";import li from"path";import Nc from"fs";function Te(n){try{if(!Nc.existsSync(li.join(n,".git")))return null;let e=Tn("git rev-parse --abbrev-ref HEAD",{cwd:n,stdio:["ignore","pipe","ignore"],encoding:"utf8"}).trim();return e==="HEAD"?Tn("git rev-parse --short HEAD",{cwd:n,stdio:["ignore","pipe","ignore"],encoding:"utf8"}).trim():e.replace(/[\/\\:*"<>|?]/g,"-")}catch{return null}}function it(n){try{return Nc.existsSync(li.join(n,".git"))?Tn("git rev-parse HEAD",{cwd:n,stdio:["ignore","pipe","ignore"],encoding:"utf8"}).trim():null}catch{return null}}function Cc(n,e=50){try{let r=Tn(`git rev-list --max-count=${e} HEAD`,{cwd:n,stdio:["ignore","pipe","ignore"],encoding:"utf8"}).trim();return r?r.split(`
575
+ `):[]}catch{return[]}}function Dc(n,e,r){try{return Tn(`git merge-tree --write-tree ${e} ${r}`,{cwd:n,stdio:["ignore","ignore","ignore"]}),!1}catch{return!0}}var og=new Set([".ts",".tsx",".yaml",".yml",".php",".py",".go",".prisma",".graphql",".gql"]),sg=new Set(["package.json","lerna.json","turbo.json","pnpm-workspace.yaml"]),ag=new Set(["node_modules",".git","dist","build","vendor",".next",".cache","coverage"]);function ig(n){let e=n.split("/");for(let t of e)if(ag.has(t))return!1;if(n.endsWith(".min.js"))return!1;let r=li.basename(n);if(r.startsWith("Dockerfile")||r.startsWith(".env")||sg.has(r))return!0;let i=li.extname(r).toLowerCase();return og.has(i)}function wS(n){let e=n.trim(),r=e.indexOf(" -> ");if(r!==-1)return e.substring(r+4);let i=e.split(/\s+/);return i.length>=2?i[i.length-1]:e}function Lc(n,e){try{if(!Nc.existsSync(li.join(n,".git")))return!0;let r=it(n);if(!r)return!0;if(e&&e!==r){let t=Tn(`git diff --name-only ${e} ${r}`,{cwd:n,stdio:["ignore","pipe","ignore"],encoding:"utf8"}).trim();if(t&&t.split(`
576
+ `).some(o=>o&&ig(o)))return!0}let i=Tn("git status --porcelain",{cwd:n,stdio:["ignore","pipe","ignore"],encoding:"utf8"}).trim();return i?i.split(`
577
+ `).some(t=>t?ig(wS(t)):!1):!1}catch{return!0}}X();J();import{execSync as cg}from"child_process";var Pn=$.child({module:"nano-repair"}),Ce=class{intentLogs;exports;missions;repoPath;constructor(e){let{intentLogs:r,exports:i,missions:t}=L.getInstance(e);this.intentLogs=r,this.exports=i,this.missions=t,this.repoPath=e}detectAndRepairShifts(){let e=this.intentLogs.findRepairableOrphans();if(e.length===0)return{repaired:0,failed:0};Pn.info({count:e.length},"Detected orphaned intent logs. Attempting recovery...");let r=0,i=0;for(let t of e){let o=this.exports.findByNameAndFile(t.symbol_name,t.file_path);if(o.length>0){let a=o.find(c=>c.signature===t.signature)||o[0];this.intentLogs.update(t.id,{symbol_id:a.id}),Pn.info({logId:t.id,symbol:t.symbol_name},"Relinked symbol in same file"),r++;continue}let s=this.exports.findByNameGlobal(t.symbol_name);if(s.length>0){let a=s.filter(c=>c.file_path!==t.file_path);if(a.length>0){let c=a.find(l=>l.signature===t.signature)||a[0];this.intentLogs.update(t.id,{symbol_id:c.id,file_path:c.file_path}),Pn.info({logId:t.id,symbol:t.symbol_name,oldPath:t.file_path,newPath:c.file_path},"Detected Nano-Repair Shift (file move)"),r++;continue}}i++}return r>0&&Pn.info({repaired:r,failed:i},"Nano-Repair recovery complete"),{repaired:r,failed:i}}syncLifecycle(){let e="HEAD";try{e=cg("git rev-parse --abbrev-ref HEAD",{cwd:this.repoPath,encoding:"utf-8",stdio:["ignore","pipe","ignore"]}).trim()}catch{return{suspended:0,resumed:0,completed:0}}if(!e)return{suspended:0,resumed:0,completed:0};let r=this.missions.findActive(),i=0;for(let s of r)s.git_branch&&s.git_branch!==e&&(this.missions.updateStatus(s.id,"suspended"),Pn.info({missionId:s.id,branch:s.git_branch,current:e},"Context Pivot: Suspended mission"),i++);this.missions.resumeByBranch(e);let t=[];try{t=cg(`git branch --merged "${e}"`,{cwd:this.repoPath,encoding:"utf-8",stdio:["ignore","pipe","ignore"]}).split(`
578
+ `).map(a=>a.trim().replace(/^\* /,"")).filter(a=>a&&a!==e)}catch{}let o=0;if(t.length>0){let s=this.missions.findMergedMissions(e,t);for(let a of s)this.missions.updateStatus(a.id,"completed"),Pn.info({missionId:a.id,branch:a.git_branch},"Merge Sentinel: Auto-completed mission"),o++}return(i>0||o>0)&&Pn.info({suspended:i,completed:o},"Git-Native Lifecycle Sync complete"),{suspended:i,resumed:-1,completed:o}}};J();oo();import{Worker as kS}from"node:worker_threads";import{cpus as ES}from"node:os";import{fileURLToPath as IS}from"node:url";import{dirname as TS,join as PS}from"node:path";import{existsSync as RS}from"node:fs";var lg=IS(import.meta.url),zS=TS(lg),NS=lg.endsWith(".ts");function CS(){if(NS)return null;let n=PS(zS,"worker.js");return RS(n)?n:qn("dist/logic/parser/worker.js")}var Ac=class{workers=[];taskQueue=[];pendingTasks=new Map;taskIdCounter=0;initialized=!1;initPromise;shutdownRequested=!1;numWorkers;initTimeout;constructor(e={}){this.numWorkers=e.numWorkers??Math.max(1,Math.min(4,ES().length-1)),this.initTimeout=e.initTimeout??3e4}async initialize(){if(!this.initialized)return this.initPromise?this.initPromise:(this.initPromise=this._doInitialize(),this.initPromise)}async _doInitialize(){let e;try{$.info({numWorkers:this.numWorkers},"Initializing parser worker pool");let r=new Promise((i,t)=>{e=setTimeout(()=>t(new Error(`Parser pool initialization timed out after ${this.initTimeout}ms`)),this.initTimeout)});if(await Promise.race([this._initializeWorkers(),r]),e&&clearTimeout(e),this.shutdownRequested){this.initialized=!1,this.initPromise=void 0;return}this.initialized=!0,$.info({numWorkers:this.workers.length},"Parser worker pool ready")}catch(r){throw e&&clearTimeout(e),this.initPromise=void 0,this.initialized=!1,await this.shutdown(),r}}async _initializeWorkers(){let e=CS();if(!e)throw new Error("Parser worker pool not available in development mode (tsx). Use main-thread fallback.");$.debug({workerPath:e},"Resolved parser worker path");let r=[];for(let i=0;i<this.numWorkers;i++)r.push(this.createWorker(e,i));await Promise.all(r)}async createWorker(e,r){return new Promise((i,t)=>{let o=setTimeout(()=>{t(new Error(`Parser worker ${r} initialization timed out`))},this.initTimeout),s=new kS(e,{execArgv:process.execArgv}),a={worker:s,busy:!1,currentTaskId:null};s.on("message",c=>{if(c.type==="ready"){if(clearTimeout(o),this.shutdownRequested){s.terminate().catch(()=>{}),i();return}this.workers.push(a),$.debug({workerIndex:r},"Parser worker ready"),i()}else c.type==="result"&&c.id?this.handleTaskComplete(a,c.id,c.result):c.type==="error"&&c.id&&this.handleTaskError(a,c.id,new Error(c.error||"Unknown error"))}),s.on("error",c=>{if(clearTimeout(o),$.error({err:c,workerIndex:r},"Parser worker error"),a.currentTaskId&&this.handleTaskError(a,a.currentTaskId,c),!this.initialized){t(c);return}let l=this.workers.indexOf(a);l!==-1&&this.workers.splice(l,1),!this.shutdownRequested&&this.initialized&&this.createWorker(e,r).catch(u=>{$.error({err:u},"Failed to replace crashed parser worker")})}),s.on("exit",c=>{c!==0&&!this.shutdownRequested&&$.warn({workerIndex:r,code:c},"Parser worker exited unexpectedly")})})}handleTaskComplete(e,r,i){let t=this.pendingTasks.get(r);t&&(this.pendingTasks.delete(r),t.resolve(i)),e.busy=!1,e.currentTaskId=null,this.processQueue()}handleTaskError(e,r,i){let t=this.pendingTasks.get(r);t&&(this.pendingTasks.delete(r),t.reject(i)),e.busy=!1,e.currentTaskId=null,this.processQueue()}processQueue(){if(this.taskQueue.length===0)return;let e=this.workers.find(i=>!i.busy);if(!e)return;let r=this.taskQueue.shift();r&&(e.busy=!0,e.currentTaskId=r.id,this.pendingTasks.set(r.id,r),e.worker.postMessage({type:"parse",id:r.id,filePath:r.filePath}))}async parseFile(e){return this.initialized||await this.initialize(),new Promise((r,i)=>{let o={id:`parse_${++this.taskIdCounter}`,filePath:e,resolve:r,reject:i};this.taskQueue.push(o),this.processQueue()})}get workerCount(){return this.workers.length}get busyWorkers(){return this.workers.filter(e=>e.busy).length}get queueSize(){return this.taskQueue.length}get isInitialized(){return this.initialized}async shutdown(){if(this.shutdownRequested=!0,this.initPromise)try{await this.initPromise}catch{}if(!this.initialized&&this.workers.length===0){this.shutdownRequested=!1,this.initPromise=void 0;return}$.info({numWorkers:this.workers.length},"Shutting down parser worker pool");let e=this.workers.map(r=>new Promise(i=>{r.worker.postMessage({type:"shutdown"}),r.worker.once("exit",()=>i()),setTimeout(()=>{r.worker.terminate().then(()=>i())},5e3)}));await Promise.all(e),this.workers=[],this.taskQueue=[],this.pendingTasks.clear(),this.initialized=!1,this.shutdownRequested=!1,this.initPromise=void 0,$.info("Parser worker pool shutdown complete")}},rr=null;function ug(n){return rr||(rr=new Ac(n)),rr}async function dg(){rr&&(await rr.shutdown(),rr=null)}X();J();ht();Oc();Mc();jc();import{execSync as Cg}from"child_process";var Wo=$.child({module:"heritage-analyzer"}),Rn=class{repos;repoPath;constructor(e){this.repos=L.getInstance(e),this.repoPath=e}analyzeHeritage(e=20){try{Wo.info({limit:e},"Analyzing repository heritage...");let r=Cg(`git log -n ${e} --pretty=format:"%H|%at|%an|%s"`,{cwd:this.repoPath,encoding:"utf-8"});if(!r)return;let i=r.split(`
579
+ `).filter(Boolean);for(let t of i){let[o,s,a,c]=t.split("|"),l=this.analyzeCommitImpact(o);if(l.significant){let u=Array.from(l.layers).join(", "),d=`Heritage: ${c} (by ${a}). Touched ${l.fileCount} files across [${u}].`;this.repos.intentLogs.importHeritage(d,o,parseInt(s,10),.7),Wo.debug({sha:o,subject:c},"Logged heritage move")}}Wo.info("Heritage analysis complete.")}catch(r){Wo.warn({err:r.message},"Failed to run heritage analysis")}}analyzeCommitImpact(e){let r=new Set,i=0;try{let o=Cg(`git diff-tree --no-commit-id --name-only -r ${e}`,{cwd:this.repoPath,encoding:"utf-8"}).split(`
580
+ `).filter(Boolean);i=o.length;for(let c of o){let l=this.classifyPathOnly(c);l!=="Unknown"&&r.add(l)}let s=r.has("Entry")||r.has("Data")||r.has("Infrastructure"),a=r.size>=2||i>5;return{significant:s||a,layers:r,fileCount:i}}catch{return{significant:!1,layers:r,fileCount:0}}}classifyPathOnly(e){let r=e.startsWith("/")?e:"/"+e;return Fc.some(i=>i.test(r))?"Test":Oo.some(i=>i.test(r))||Ao.some(i=>i.test(r))?"Entry":ui.some(i=>i.test(r))?"Data":jo.some(i=>i.test(r))?"Utility":Fo.some(i=>i.test(r))?"Entry":Uo.some(i=>i.test(r))?"Data":Zo.some(i=>i.test(r))?"Entry":Ho.some(i=>i.test(r))?"Data":Uc.some(i=>i.test(r))?"Infrastructure":/\.(service|logic|usecase|interactor|manager)\.(ts|js|php|py)$/i.test(r)||Mo.some(i=>i.test(r))?"Logic":"Unknown"}};var jS=MS.cpus().length||4,FS=ko.DEFAULT_CONCURRENCY;function Ag(n,e=[]){if(!Array.isArray(n))return e;for(let r of n)!r||typeof r!="object"||(e.push(r),Array.isArray(r.members)&&r.members.length>0&&Ag(r.members,e));return e}function Dg(n){if(typeof n!="number"||!Number.isFinite(n))return null;let e=Math.trunc(n);return e>0?e:null}function Og(n){let e=typeof n?.content=="string"&&n.content.length>0?n.content.split(`
581
+ `).length:0,r=Ag(n?.exports),i=0,t=0,o=0,s=0;for(let a of r){let c=Dg(a?.line??a?.start_line),l=Dg(a?.endLine??a?.end_line??c);if(!c||!l||l<c||e>0&&l>e){t++;continue}i++,l>c&&s++,e>0&&c===e&&l===e&&o++}return{total:r.length,valid:i,invalid:t,eofCollapsed:o,multiLine:s,lineCount:e}}function US(n){let e=Og(n);if(e.total===0||e.lineCount===0)return!1;if(e.invalid>0)return!0;let r=e.eofCollapsed/e.total;return e.eofCollapsed>=3&&r>=.5||e.total>=2&&e.eofCollapsed===e.total}function Lg(n){let e=Og(n);return e.valid*2+e.multiLine*2-e.eofCollapsed*3-e.invalid*4}async function ee(n,e=FS,r=!1,i=!0,t){let o=L.getInstance(n),s=o.files.database,a=Rt(n),c=a.concurrency??e;if(Eh(),!r&&Oe(n)){let b=Jn(n),g=it(n);if(b&&!Lc(n,b))return So(),$.debug({repoPath:n,commit:g},"Index is current, skipping re-index (fast-path)"),s}tr(n);let l=o.files.findAll(),u=new Map(l.map(b=>[b.path,{mtime:b.mtime,hash:b.content_hash}])),d=Date.now();t?.({phase:"scan",current:0,total:0,message:"Scanning repository..."});let p=await Ic(n,a.ignore),f=new Map(p.map(b=>[b.path,b.mtime])),m=l.filter(b=>!f.has(b.path)).map(b=>b.path),h=l.length===0,v=[];if(r||h)v.push(...p);else{let b=p.filter(E=>{let w=u.get(E.path);return!w||w.mtime!==E.mtime}),g=Zc(c*4),x=b.map(E=>g(async()=>{let w=u.get(E.path);if(!w||!w.hash)return E;try{let z=await OS.promises.readFile(E.path,"utf8");return hc(z,w.hash)?E:(o.files.updateMtime(E.path,E.mtime),null)}catch{return null}})),S=await Promise.all(x);v.push(...S.filter(E=>E!==null))}if(m.length===0&&v.length===0){So();let b=it(n);return to(n,b||void 0),s}if(h?$.info({totalFiles:p.length},"Starting initial repository indexing..."):$.info({toDelete:m.length,toProcess:v.length},"Syncing repository updates..."),m.length>0&&o.files.deletePaths(m),v.length>0){Th(),i?(ti(!0),xn().initialize().catch(()=>{})):ti(!1);let b=/\.(ts|tsx|php|py|go|js|jsx|mjs|cjs)$/,g=[],x=[];for(let C of v)b.test(Hc.basename(C.path))?g.push(C):x.push(C);let S=0,E=v.length,w=!1,z=ug();try{await z.initialize(),w=!0,$.info({workers:z.workerCount},"Parser worker pool active")}catch(C){$.warn({err:C},"Parser worker pool failed to initialize, falling back to main-thread parsing"),w=!1}let R=async(C,W)=>{let q=W;if(w&&US(W))try{let Q=await Xn(C.path);Lg(Q)>Lg(W)&&($.warn({filePath:C.path},"Detected suspicious worker parse ranges; using main-thread parse output"),q=Q)}catch(Q){$.warn({filePath:C.path,err:Q instanceof Error?Q.message:String(Q)},"Main-thread parse retry failed after suspicious worker parse")}let B=q.imports?.map(Q=>({...Q,resolved_path:Vt(Q.module,C.path,n)})),H=q.content?_n(q.content):null;return S++,(S%50===0||S===E)&&$.info({completed:S,total:E},"Parsing files..."),t?.({phase:"parse",current:S,total:E,message:`Parsing ${Hc.basename(C.path)}`}),{meta:C,...q,imports:B,embedding:null,kind:"code",contentHash:H}},U;if(w)U=g.map(C=>z.parseFile(C.path).then(W=>R(C,W),W=>(S++,$.error({path:C.path,error:W},"Worker parse failed"),{meta:C,exports:[],imports:[],content:"",kind:"error"})));else{let C=h?Math.max(c,Math.min(jS-1,16)):c,W=Zc(C);U=g.map(q=>W(async()=>{try{let B=await Xn(q.path);return R(q,B)}catch(B){return S++,$.error({path:q.path,error:B},"Failed to parse file"),{meta:q,exports:[],imports:[],content:"",kind:"error"}}}))}let I=Zc(c),T=x.map(C=>I(async()=>{try{let W=ng(C.path),q=W.content?_n(W.content):null;return S++,(S%50===0||S===E)&&$.info({completed:S,total:E},"Parsing configs..."),t?.({phase:"parse",current:S,total:E,message:`Parsing config ${Hc.basename(C.path)}`}),{meta:C,...W,embedding:null,kind:"config",contentHash:q}}catch(W){return S++,$.error({path:C.path,error:W},"Failed to parse config"),{meta:C,exports:[],imports:[],content:"",kind:"error"}}}));$.info({total:E,codeFiles:g.length,configFiles:x.length,useParserPool:w},"Phase 1: Parsing all files...");let N=Date.now(),F=(await Promise.all([...U,...T])).filter(Boolean),D=Date.now()-N;if(ri("parse",D),$.info({count:F.length,time:`${(D/1e3).toFixed(1)}s`},"Phase 1 complete"),w&&dg().catch(()=>{}),s.pragma("synchronous = NORMAL"),s.pragma("cache_size = -64000"),i){let C=[];F.forEach((le,fe)=>{"summary"in le&&le.summary&&C.push({fileIdx:fe,text:le.summary})}),$.info("Phase 2+3: Generating embeddings + persisting in parallel..."),t?.({phase:"embed",current:0,total:F.length,message:"Generating embeddings..."});let W=Date.now(),q=(async()=>{if(C.length>0){$.info({count:C.length}," \u2192 Generating file summary embeddings...");let le=C.map(se=>se.text),fe=await lo(le,256);return $.info({count:C.length}," \u2713 File summaries complete"),fe}return[]})();t?.({phase:"persist",current:0,total:F.length,message:"Saving to database..."});let B=Date.now();o.files.batchSaveIndexResults(F,n,_n,Vt);let H=Date.now()-B;ri("persist",H),$.info({time:`${(H/1e3).toFixed(1)}s`},"Structural persist complete");let Q=await q,V=Date.now()-W;if(ri("embed",V),$.info({time:`${(V/1e3).toFixed(1)}s`},"Embeddings complete"),Q.length>0){let le=s.prepare("UPDATE files SET embedding = ? WHERE path = ?"),fe=s.transaction(K=>{for(let G of K)le.run(G.embedding?JSON.stringify(G.embedding):null,G.path)}),se=C.map((K,G)=>({path:F[K.fileIdx].meta.path,embedding:Q[G]}));fe(se),$.info({count:se.length},"Embedding column updated")}let re=await o.intentLogs.backfillEmbeddings(64);re>0&&$.info({count:re}," \u2713 Intent log embeddings backfilled")}else{t?.({phase:"persist",current:0,total:F.length,message:"Saving to database..."});let C=Date.now();o.files.batchSaveIndexResults(F,n,_n,Vt),ri("persist",Date.now()-C)}s.pragma("synchronous = FULL"),s.pragma("cache_size = -2000")}if(h||v.length>0){let b=it(n);to(n,b||void 0)}if((v.length>0||m.length>0)&&new Ce(n).detectAndRepairShifts(),h||i)try{new Rn(n).analyzeHeritage(50)}catch(b){$.warn({err:b.message},"Heritage sync deferred")}return Ih(Date.now()-d),t?.({phase:"complete",current:v.length,total:v.length,message:"Indexing complete"}),s}J();import Mg from"path";import ZS from"ignore";import jg from"fs";X();async function zn(n,e=ko.DEFAULT_CONCURRENCY,r="detailed",i,t){$.info({repo:n,level:r,subPath:i},"Ensuring cache is up-to-date..."),await ee(n,e);let{files:o,exports:s,imports:a}=L.getInstance(n),c=i?o.findInSubPath(n,i):o.findAll(),l=Rt(n),u=ZS(),d=Mg.join(n,".gitignore");if(jg.existsSync(d)&&u.add(jg.readFileSync(d,"utf8")),l.ignore&&l.ignore.length>0&&u.add(l.ignore),u.add(wo),c=c.filter(g=>{let x=Mg.relative(n,g.path);return!u.ignores(x)}),$.info({count:c.length},"Fetching data from DB..."),r==="lite"){let g=c.map(x=>({path:x.path,mtime:x.mtime}));return ai(g,n,r,t)}if(r==="summaries"){let g=c.map(x=>({path:x.path,mtime:x.mtime,classification:x.classification||void 0,summary:x.summary||void 0}));return ai(g,n,r,t)}let p=c.map(g=>g.path),f=s.findByFiles(p),m=r==="detailed"?a.findByFiles(p):[],h=new Map;for(let g of f){let x=h.get(g.file_path)||[];x.push(g),h.set(g.file_path,x)}let v=new Map;for(let g of m){let x=v.get(g.file_path)||[];x.push(g),v.set(g.file_path,x)}let b=c.map(g=>{let S=(h.get(g.path)||[]).map(w=>({name:w.name,kind:w.kind,signature:w.signature,line:w.start_line}));r==="structure"?S=S.map(w=>({name:w.name,kind:w.kind,line:w.line})):r==="signatures"&&(S=S.map(w=>({name:w.name,kind:w.kind,signature:w.signature,line:w.line})));let E=[];return r==="detailed"&&(E=(v.get(g.path)||[]).map(z=>({module:z.module_specifier,resolved_path:z.resolved_path}))),{path:g.path,mtime:g.mtime,classification:g.classification||void 0,summary:g.summary||void 0,exports:S,imports:E.length>0?E:void 0,chunks:[]}});return $.info({count:b.length},"Building hierarchical project tree..."),ai(b,n,r,t)}Nt();X();X();var Nn=class n{static extractKeywords(e){if(!e)return[];let r=new Set(["the","and","for","with","from","this","that","into","onto","http","https","www","com","org","net","api"]),t=e.replace(/([a-z0-9])([A-Z])/g,"$1 $2").toLowerCase().split(/[^a-z0-9_]+/).map(o=>o.trim()).filter(o=>o.length>2&&!r.has(o));return Array.from(new Set(t))}static calculateKeywordCoverageFromKeywords(e,r){if(!e||!r||r.length===0)return 0;let i=e.toLowerCase();return r.filter(o=>i.includes(o)).length/r.length}static calculateKeywordCoverage(e,r){return n.calculateKeywordCoverageFromKeywords(e,n.extractKeywords(r))}static extractSnippet(e,r,i=300){if(!e||!r)return"";let t=n.extractKeywords(r);if(t.length===0)return e.slice(0,i)+"...";let o=e.split(`
582
+ `),s=new Array(o.length).fill(0);for(let p=0;p<o.length;p++){let f=o[p].toLowerCase(),m=0,h=0;for(let v of t)f.includes(v)&&(m++,h++);(f.includes("export ")||f.includes("class ")||f.includes("function ")||f.includes("interface "))&&(m+=1),s[p]=h*10+m}let a=0,c=-1,l=5;for(let p=0;p<=o.length-l;p++){let f=0;for(let m=0;m<l;m++)f+=s[p+m];f>c&&(c=f,a=p)}if(c<=0)return e.slice(0,i).trim()+"...";let d=o.slice(a,a+l).join(`
583
+ `).trim();return a>0&&(d=`...
584
+ `+d),a+l<o.length&&(d=d+`
585
+ ...`),d.length>i?d.slice(0,i)+"...":d}static calculateLexicalScore(e,r){if(!e||!r)return 0;let i=n.extractKeywords(r);if(i.length===0)return 0;let t=0,o=e.toLowerCase();for(let s of i)if(o.includes(s)){t+=1;let a=new RegExp(`\\b${s}`,"gi"),c=o.match(a);c&&(t+=Math.min(c.length*.2,2)),new RegExp(`(class|function|export|interface|enum|type)\\s+${s}`,"i").test(e)&&(t+=1.5)}return t/i.length}};Nt();X();J();var Xt=$.child({module:"clean-sweep"}),Wc=class{files;intentLogs;constructor(e){let{files:r,intentLogs:i}=L.getInstance(e);this.files=r,this.intentLogs=i}pruneOrphans(){Xt.info("Starting orphan pruning...");let e=0,r=0,i=this.intentLogs.findOrphans();Xt.info({orphanCount:i.length},"Found orphaned logs");for(let s of i)s.file_path&&this.files.exists(s.file_path)?(this.intentLogs.markAsLapsed(s.id),r++,Xt.debug({logId:s.id,symbolName:s.symbol_name},"Converted to lapsed intent")):(this.intentLogs.delete(s.id),e++,Xt.debug({logId:s.id},"Deleted orphaned log"));let t=this.intentLogs.findLogsForMissingFiles();for(let s of t)this.intentLogs.delete(s.id),e++;let o=this.intentLogs.findRecentDecisionActivity(1e3).length;return Xt.info({deleted:e,converted:r},"Orphan pruning complete"),{deleted:e,converted:r,retained:o}}},Bo=class{lambda;constructor(e=.01){this.lambda=e}calculateScore(e,r){let t=(Math.floor(Date.now()/1e3)-r)/(3600*24),o=Math.exp(-this.lambda*t);return e*o}scoreResults(e){return e.map(r=>({...r,decayed_score:this.calculateScore(r.score,r.created_at)}))}},Bc=class{missions;constructor(e){let{missions:r}=L.getInstance(e);this.missions=r}findColdMissions(){let e=Math.floor(Date.now()/1e3)-604800,r=this.missions.findColdMissions(e,10);return Xt.info({count:r.length},"Found cold missions for compaction"),r}markDistilled(e){this.missions.update(e,{status:"distilled"})}},Cn=class{pruner;scorer;compactor;constructor(e){this.pruner=new Wc(e),this.scorer=new Bo,this.compactor=new Bc(e)}runMaintenance(){Xt.info("Initiating Clean Sweep maintenance protocol...");let e=this.pruner.pruneOrphans(),r=this.compactor.findColdMissions();return Xt.info("Clean Sweep maintenance complete"),{pruning:e,compaction:{eligible:r.length}}}getScorer(){return this.scorer}getCompactor(){return this.compactor}};X();J();var Fg=$.child({module:"lineage-service"}),di=class{repoPath;constructor(e){this.repoPath=e}getAncestorMissionIds(e=50){try{let r=Cc(this.repoPath,e);if(r.length===0)return[];let{missions:i}=L.getInstance(this.repoPath),o=i.findByCommitShas(r).map(s=>s.id);return o.length>0&&Fg.debug({count:o.length},"Identified ancestor missions for gravity bleed"),o}catch(r){return Fg.warn({err:r.message},"Failed to identify ancestor missions"),[]}}};var HS={Solid:1,Liquid:.8,Virtual:.4,Intel:.2,Phantom:.05},gt=class{static classify(e,r){let i=e.toLowerCase();if(r?.content){let t=r.content;if(t.includes("describe(")||t.includes("test(")||t.includes("it(")||t.includes("expect(")||t.includes('from "@jest/globals"')||t.includes('from "vitest"'))return"Virtual"}return r?.exports&&(r.exports.some(o=>o.kind==="ClassDeclaration"||o.kind==="Class")||r.exports.length>5),i.includes("/dist/")||i.includes("/build/")||i.includes("/.generated/")||i.includes("/node_modules/")||i.endsWith(".map")||i.endsWith(".log")?"Phantom":i.includes("/test/")||i.includes("/tests/")||i.includes("/__tests__/")||i.includes("/__mocks__/")||i.includes(".spec.")||i.includes(".test.")||i.includes("/e2e/")||i.includes("/test-utils/")?"Virtual":i.includes("/examples/")||i.includes("/fixtures/")||i.includes("/mocks/")||i.includes("/stories/")||i.includes("/samples/")||i.includes("/docs/")?"Intel":i.includes("/src/")||i.includes("/lib/")||i.includes("/app/")||i.includes("/core/")||i.includes("/logic/")||i.includes("/domain/")||i.includes("/services/")||i.includes("/controllers/")||i.includes("/handlers/")||i.includes("/repositories/")||i.includes("/models/")||i.includes("/packages/")&&!i.includes("/packages/config/")||i.includes("/backends/")||r?.exports&&(r.exports.some(t=>t.kind==="ClassDeclaration"||t.kind==="Class")||r.exports.length>5)?"Solid":"Liquid"}static mapClassificationToTier(e){let r=e.toLowerCase();return r==="service"||r==="repository"||r==="model"||r==="controller"||r==="handler"||r==="component"||r==="hook"||r==="titanium"||r==="solid"?"Solid":r==="test"||r==="iron"||r==="virtual"?"Virtual":r==="lead"||r==="intel"?"Intel":r==="ghost"||r==="error"||r==="phantom"?"Phantom":"Liquid"}static getMultiplier(e,r){let i=r?this.mapClassificationToTier(r):this.classify(e);return HS[i]}};J();function WS(n,e){let r=[];for(let i=0;i<=e.length;i++)r[i]=[i];for(let i=0;i<=n.length;i++)r[0][i]=i;for(let i=1;i<=e.length;i++)for(let t=1;t<=n.length;t++)e.charAt(i-1)===n.charAt(t-1)?r[i][t]=r[i-1][t-1]:r[i][t]=Math.min(r[i-1][t-1]+1,r[i][t-1]+1,r[i-1][t]+1);return r[e.length][n.length]}function BS(n,e){let r=WS(n.toLowerCase(),e.toLowerCase()),i=Math.max(n.length,e.length);return Math.round((i-r)/i*100)}function Ug(n){let e=[],r="";for(let i=0;i<n.length;i++){let t=n[i],o=t>="A"&&t<="Z",s=t>="a"&&t<="z";o&&r.length>0?(e.push(r),r=t):s||o?r+=t:r.length>0&&(e.push(r),r="")}return r.length>0&&e.push(r),e}function GS(n,e){let r=Ug(e),i=n.toLowerCase();if(r.map(s=>s[0].toLowerCase()).join("")===i)return!0;let o=0;for(let s of r){if(o>=n.length)break;let a=s.toLowerCase();if(a.startsWith(i.slice(o))){o=n.length;break}a[0]===i[o]&&o++}return o===n.length}function JS(n,e){return Ug(e).map(t=>t[0].toLowerCase()).join("")===n.toLowerCase()}function qS(n,e){let r=n.toLowerCase(),i=e.toLowerCase();if(n===e)return{matchType:"exact",score:100};if(r===i)return{matchType:"exact-case-insensitive",score:98};if(i.startsWith(r))return{matchType:"prefix",score:90+n.length/e.length*8};if(i.endsWith(r))return{matchType:"suffix",score:80+n.length/e.length*8};if(i.includes(r)){let o=n.length/e.length,s=i.indexOf(r)/e.length;return{matchType:"substring",score:70+o*10-s*5}}return JS(n,e)?{matchType:"acronym",score:75}:GS(n,e)?{matchType:"camel-case",score:65}:{matchType:"levenshtein",score:BS(n,e)*.6}}function ir(n,e,r=50,i=5){let t=[];for(let o of e){let{matchType:s,score:a}=qS(n,o);if(a>=r){let l={exact:1e3,"exact-case-insensitive":900,prefix:800,suffix:700,substring:600,acronym:550,"camel-case":500,levenshtein:100}[s]+a;t.push({match:o,score:a,matchType:s,rank:l})}}return t.sort((o,s)=>s.rank!==o.rank?s.rank-o.rank:s.score!==o.score?s.score-o.score:o.match.length-s.match.length),t.slice(0,i)}Je();var ot=class n{constructor(e){this.repoPath=e}get filesRepo(){return L.getInstance(this.repoPath).files}get exportsRepo(){return L.getInstance(this.repoPath).exports}get intentLogsRepo(){return L.getInstance(this.repoPath).intentLogs}static normalizeFileType(e){if(e==null)return;let r=Array.isArray(e)?e:e.split(",").map(i=>i.trim().replace(/^\./,""));return r.filter(Boolean).length?r:void 0}static matchesFilters(e,r,i,t){if(r.fileType?.length){let o=e.replace(/^.*\./,"").toLowerCase();if(!r.fileType.some(s=>s.toLowerCase()===o))return!1}if(r.layer!=null||r.excludeLayers&&r.excludeLayers.length>0){let o=t!=null?gt.mapClassificationToTier(t):gt.classify(e);if(r.layer!=null&&o!==r.layer||r.excludeLayers?.includes(o))return!1}return!0}async searchByPath(e,r,i,t,o,s=!1){let a=this.extractPathKeywords(e),c=this.isLikelySymbolQuery(e),l=this.filesRepo.findByPathKeywords(a,Math.min((r??50)*(o?Me.FILTERED_QUERY_LIMIT_MULTIPLIER:1),he.MAX_LIMIT)).map(g=>({...g,source:"path",keywordHits:this.countPathKeywordHits(g.path,a),relevance:this.scorePathResult(g.path,a,"path",c)}));o&&(l=l.filter(g=>n.matchesFilters(g.path,t,g.mtime,g.classification))),c&&a.length>=3&&(l=l.filter(g=>g.source==="symbol"||g.keywordHits>=2));let u=this.findSymbolBackedPaths(e,a,r*3),d=new Set(l.map(g=>g.path));for(let g of u){if(d.has(g))continue;let x=this.filesRepo.findByPath(g);x&&(o&&!n.matchesFilters(x.path,t,x.mtime,x.classification)||(l.push({...x,source:"symbol",keywordHits:this.countPathKeywordHits(x.path,a),relevance:this.scorePathResult(x.path,a,"symbol",c)}),d.add(g)))}l.sort((g,x)=>x.relevance-g.relevance),o||(l=l.slice(0,Math.min(r*4,he.MAX_LIMIT)));let p=l.length;if(p===0)return{content:[{type:"text",text:`No indexed files match path/filename: "${e}".
586
+
587
+ If the repo is not indexed, run shadow_recon_onboard then shadow_sync_trace. Otherwise try broader keywords.`}]};let f=g=>g.replace(this.repoPath,"").replace(/^\//,"");if(s){let x=new pe(this.repoPath).getSection("gravity"),S=new Map;if(x?.hotspots)for(let I of x.hotspots){let T=S.get(I.filePath)||0;S.set(I.filePath,T+I.gravity)}let E=l.map(I=>{let T=S.get(I.path)||0,N=I.classification?gt.mapClassificationToTier(I.classification):gt.classify(I.path);return{...I,gravity:T,layer:N}});E.sort((I,T)=>T.gravity!==I.gravity?T.gravity-I.gravity:T.relevance!==I.relevance?T.relevance-I.relevance:I.path.localeCompare(T.path));let w=E.slice(i,i+r),z=i+r<p;if(w.length===0)return{content:[{type:"text",text:`No results at offset ${i}. Total matches: ${p}.`}]};let R=z?`
588
+ > **Note**: More results available. Use \`offset: ${i+r}\` to see the next page.`:"";return{content:[{type:"text",text:`# Resolved paths: "${e}" (Ranked by Gravity)
589
+
590
+ Showing ${w.length} of ${p} file(s) (offset: ${i}, limit: ${r})${R}
591
+
592
+ `+w.map((I,T)=>{let N=I.gravity>50?" \u269B\uFE0F":I.gravity>0?" \u2022":"",F=I.gravity>0?` [G:${Math.round(I.gravity)}]`:"",D=I.source==="symbol"?" [via symbol]":"";return`${i+T+1}. \`${f(I.path)}\` (${I.layer})${N}${F}${D}`}).join(`
582
593
  `)+`
583
594
 
584
- > **Legend**: \u269B\uFE0F = High-gravity hotspot (>50), \u2022 = Has gravity, G = Gravity score`}]}}return{content:[{type:"text",text:`# Resolved paths: "${e}"
595
+ > **Legend**: \u269B\uFE0F = High-gravity hotspot (>50), \u2022 = Has gravity, G = Gravity score`}]}}let m=l.slice(i,i+r),h=i+r<p;if(m.length===0)return{content:[{type:"text",text:`No results at offset ${i}. Total matches: ${p}.`}]};let v=h?`
596
+ > **Note**: More results available. Use \`offset: ${i+r}\` to see the next page.`:"";return{content:[{type:"text",text:`# Resolved paths: "${e}"
585
597
 
586
- ${a.length} file(s):
598
+ Showing ${m.length} of ${p} file(s) (offset: ${i}, limit: ${r})${v}
587
599
 
588
- `+a.map((u,d)=>`${d+1}. \`${l(u.path)}\`${u.classification?` (${u.classification})`:""}`).join(`
589
- `)}]}}async searchByConcept(e,t,n,s,r,o=!1){S.info({repoPath:this.repoPath,query:e},"Searching by concept (Semantic Analysis)...");let c=await gn(e),a=y=>y.replace(this.repoPath,"").replace(/^\//,"");if(c){let y=await this.findConceptMatches(e,c,s,r,t*2,0),E=this.findIntentLogMatches(c,5);if(y.length>0||E.length>0){let w=y.length,x=y.slice(n,n+t),k=n+t<w?`
590
- > **Note**: More results available. Use \`offset: ${n+t}\` to see the next page.`:"",N=o?`
591
- > _Compact mode: snippets omitted_`:w>20&&!o?"\n> \u{1F4A1} **Tip**: Use `compact: true` to reduce output size (omits snippets).":"",O=`# Semantic Concept Search: "${e}"
600
+ `+m.map((g,x)=>{let S=g.source==="symbol"?" [via symbol]":"";return`${i+x+1}. \`${f(g.path)}\`${g.classification?` (${g.classification})`:""}${S}`}).join(`
601
+ `)}]}}async searchByConcept(e,r,i,t,o,s=!1){$.info({repoPath:this.repoPath,query:e},"Searching by concept (Semantic Analysis)...");let a=await co(e),c=p=>p.replace(this.repoPath,"").replace(/^\//,""),l=Math.min(Math.max((r+i)*2,r),he.MAX_LIMIT),u=await this.findConceptMatches(e,a,t,o,l,0),d=a?await this.findIntentLogMatches(a,5):[];if(u.length>0||d.length>0){let p=u.length,f=u.slice(i,i+r),h=i+r<p?`
602
+ > **Note**: More results available. Use \`offset: ${i+r}\` to see the next page.`:"",v=s?`
603
+ > _Compact mode: snippets omitted_`:p>20&&!s?"\n> \u{1F4A1} **Tip**: Use `compact: true` to reduce output size (omits snippets).":"",b=`# Semantic Concept Search: "${e}"
592
604
 
593
- Showing ${x.length} of ${w} relevant file(s) (offset: ${n}, limit: ${t})${k}${N}
605
+ Showing ${f.length} of ${p} relevant file(s) (offset: ${i}, limit: ${r})${h}${v}
594
606
 
595
- `,I=new ge(this.repoPath).getSection("gravity"),U=new Map;if(I?.hotspots)for(let P of I.hotspots)U.set(P.filePath,P.gravity);let H=o?O+x.map((P,R)=>{let A=a(P.path),D=Math.round((P.decayedScore||0)*100),L=U.get(P.path)?" \u269B\uFE0F":"";return`${n+R+1}. \`${A}\`${L} (${D}%) - ${P.summary||"No summary"}`}).join(`
596
- `):O+x.map((P,R)=>{let A=a(P.path),D=Math.round((P.decayedScore||0)*100),$=U.get(P.path),L=$?" \u269B\uFE0F **CORE**":"",Y=$&&$>50?`
597
- > \u26A0\uFE0F **STRATEGIC RISK**: High-gravity hotspot (${$.toFixed(0)}). Modifications may have significant architectural impact.`:"";return`## ${n+R+1}. ${A}${L} (${D}% Match)
598
- > **Rationale**: ${P.rationale}${Y}
607
+ `,x=new pe(this.repoPath).getSection("gravity"),S=new Map;if(x?.hotspots)for(let w of x.hotspots)S.set(w.filePath,w.gravity);let E=s?b+f.map((w,z)=>{let R=c(w.path),U=Math.round((w.score||0)*100),T=S.get(w.path)?" \u269B\uFE0F":"";return`${i+z+1}. \`${R}\`${T} (${U}%) - ${w.summary||"No summary"}`}).join(`
608
+ `):b+f.map((w,z)=>{let R=c(w.path),U=Math.round((w.score||0)*100),I=S.get(w.path),T=I?" \u269B\uFE0F **CORE**":"",N=I&&I>50?`
609
+ > \u26A0\uFE0F **STRATEGIC RISK**: High-gravity hotspot (${I.toFixed(0)}). Modifications may have significant architectural impact.`:"";return`## ${i+z+1}. ${R}${T} (${U}% Match)
610
+ > **Rationale**: ${w.rationale}${N}
599
611
 
600
- `+(P.snippet?`**Matched Snippet**:
612
+ `+(w.snippet?`**Matched Snippet**:
601
613
  \`\`\`typescript
602
- ${P.snippet}
614
+ ${w.snippet}
603
615
  \`\`\`
604
616
 
605
- `:"")+`**Summary**: ${P.summary||"No summary available"}
617
+ `:"")+`**Summary**: ${w.summary||"No summary available"}
606
618
  `}).join(`
607
- `);return E.length>0&&(H+=`
619
+ `);return d.length>0&&(E+=`
608
620
 
609
621
  ---
610
- ## Intent Vectors (${E.length} matching decision(s))
622
+ ## Intent Vectors (${d.length} matching decision(s))
611
623
 
612
- `,H+=E.map((P,R)=>{let A=Math.round((P.score||0)*100),D=P.symbolName?` \`${P.symbolName}\``:"",$=P.missionId?` [Mission #${P.missionId}]`:"",L=P.content.length>200?P.content.slice(0,200)+"...":P.content;return o?`${R+1}. **[${P.type}]**${D}${$} (${A}%) - ${L}`:`### ${R+1}. [${P.type}]${D}${$} (${A}% Match)
613
- > ${L}
624
+ `,E+=d.map((w,z)=>{let R=Math.round((w.score||0)*100),U=w.symbolName?` \`${w.symbolName}\``:"",I=w.missionId?` [Mission #${w.missionId}]`:"",T=w.content.length>200?w.content.slice(0,200)+"...":w.content;return s?`${z+1}. **[${w.type}]**${U}${I} (${R}%) - ${T}`:`### ${z+1}. [${w.type}]${U}${I} (${R}% Match)
625
+ > ${T}
614
626
  `}).join(`
615
- `)),{content:[{type:"text",text:H}]}}}let l=e.replace(/[^\w\s]/g," ").trim(),p=this.filesRepo.findFts(l,(t+n)*(r?me.FILTERED_QUERY_LIMIT_MULTIPLIER:1));r&&(p=p.filter(y=>i.matchesFilters(y.path,s,y.mtime,y.classification)));let u=p.slice(n,n+t);if(u.length===0&&n===0){let y=this.filesRepo.getStats(),E=e.toLowerCase().split(/\s+/),w=this.filesRepo.findByPathKeywords(E,t);return r&&(w=w.filter(x=>i.matchesFilters(x.path,s,x.mtime,x.classification))),w.length>0?{content:[{type:"text",text:`# Concept Search: "${e}"
616
-
617
- \u26A0\uFE0F No semantic matches in file summaries (${y.withSummary}/${y.total} indexed).
627
+ `)),{content:[{type:"text",text:E}]}}if(i===0){let p=this.filesRepo.getStats(),f=e.toLowerCase().split(/\s+/),m=this.filesRepo.findByPathKeywords(f,r);if(o&&(m=m.filter(h=>n.matchesFilters(h.path,t,h.mtime,h.classification))),m.length>0)return{content:[{type:"text",text:`# Concept Search: "${e}"
618
628
 
619
- Found ${w.length} file(s) with matching paths:
629
+ \u26A0\uFE0F No hybrid matches (${p.withSummary}/${p.total} summaries indexed).
620
630
 
621
- `+w.map((v,k)=>`${k+1}. \`${a(v.path)}\` (${v.classification||"Unknown"})`).join(`
622
- `)}]}:{content:[{type:"text",text:`No files found matching concept: "${e}"
631
+ Found ${m.length} file(s) with matching paths:
623
632
 
624
- Summary Stats: ${y.withSummary}/${y.total} summaries.
633
+ `+m.map((v,b)=>`${b+1}. \`${c(v.path)}\` (${v.classification||"Unknown"})`).join(`
634
+ `)}]}}return{content:[{type:"text",text:`No files found matching concept: "${e}"
625
635
 
626
- Try a symbol search: shadow_search_symbol({ query: "${e}", repoPath })`}]}}let d=p.length,h=n+t<d?`
627
- > Use \`offset: ${n+t}\` for more results.`:"",g=o?`
628
- > _Compact mode_`:d>20&&!o?"\n> \u{1F4A1} Use `compact: true` to reduce output size.":"",_=`# Concept Search (FTS Fallback): "${e}"
629
-
630
- Showing ${u.length} of ${d} relevant file(s)${h}${g}
631
-
632
- `;return{content:[{type:"text",text:o?_+u.map((y,E)=>`${n+E+1}. \`${a(y.path)}\``).join(`
633
- `):_+u.map((y,E)=>`## ${n+E+1}. ${a(y.path)}
634
-
635
- **Summary**: ${y.summary||"No summary available"}
636
- `).join(`
637
- `)}]}}async searchBySymbol(e,t,n,s,r,o="any"){let c=e.toLowerCase(),a=T=>T.replace(this.repoPath,"").replace(/^\//,""),l=this.buildFtsQuery(e,o),p;try{p=this.exportsRepo.findFts(l,t+50)}catch{p=this.exportsRepo.findByPartialName(e,t+50)}if(p.length===0){let T=this.exportsRepo.getAllNames(5e3),I=e.trim().split(/\s+/).filter(H=>H.length>0);if(I.length>1){let H=new Map;for(let R of I){let A=en(R,T,40,20);for(let D of A){let $=H.get(D.match);$?($.terms.push(R),$.bestScore=Math.max($.bestScore,D.score)):H.set(D.match,{terms:[R],bestScore:D.score})}}let P=Array.from(H.entries()).sort((R,A)=>A[1].terms.length!==R[1].terms.length?A[1].terms.length-R[1].terms.length:A[1].bestScore-R[1].bestScore).slice(0,10);if(P.length>0){let R=P.map(([A,D])=>{let $=D.terms.join(", ");return` \u2022 \`${A}\` (matches: ${$}, ${Math.round(D.bestScore)}%)`}).join(`
636
+ Try a symbol search: shadow_search_symbol({ query: "${e}", repoPath })`}]}}async searchBySymbol(e,r,i,t,o,s="any"){let a=e.toLowerCase(),c=I=>I.replace(this.repoPath,"").replace(/^\//,""),l=this.buildFtsQuery(e,s),u;try{u=this.exportsRepo.findFts(l,r+50)}catch{u=this.exportsRepo.findByPartialName(e,r+50)}if(u.length===0){let I=this.exportsRepo.getAllNames(5e3),T=e.trim().split(/\s+/).filter(F=>F.length>0);if(T.length>1){let F=new Map;for(let C of T){let W=ir(C,I,40,20);for(let q of W){let B=F.get(q.match);B?(B.terms.push(C),B.bestScore=Math.max(B.bestScore,q.score)):F.set(q.match,{terms:[C],bestScore:q.score})}}let D=Array.from(F.entries()).sort((C,W)=>W[1].terms.length!==C[1].terms.length?W[1].terms.length-C[1].terms.length:W[1].bestScore-C[1].bestScore).slice(0,10);if(D.length>0){let C=D.map(([W,q])=>{let B=q.terms.join(", ");return` \u2022 \`${W}\` (matches: ${B}, ${Math.round(q.bestScore)}%)`}).join(`
638
637
  `);return{content:[{type:"text",text:`No symbols found matching all terms: "${e}"
639
638
 
640
639
  **Partial matches:**
641
- ${R}
640
+ ${C}
642
641
 
643
- \u{1F4A1} Try searching for individual terms, or use shadow_search_concept for semantic search.`}]}}}else{let H=en(e,T,50,5);if(H.length>0){let P=H.map(R=>` \u2022 \`${R.match}\` (${Math.round(R.score)}% ${R.matchType} match)`).join(`
642
+ \u{1F4A1} Try searching for individual terms, or use shadow_search_concept for semantic search.`}]}}}else{let F=ir(e,I,50,5);if(F.length>0){let D=F.map(C=>` \u2022 \`${C.match}\` (${Math.round(C.score)}% ${C.matchType} match)`).join(`
644
643
  `);return{content:[{type:"text",text:`No symbols found matching: "${e}"
645
644
 
646
645
  **Did you mean?**
647
- ${P}
646
+ ${D}
648
647
 
649
648
  \u{1F4A1} Try shadow_search_symbol with fuzzy, or shadow_search_concept for semantic search.`}]}}}return{content:[{type:"text",text:`No symbols found matching: "${e}"
650
649
 
651
- \u{1F4A1} Try shadow_search_symbol (fuzzy) or shadow_search_concept for semantic search.`}]}}r&&(p=p.filter(T=>{let I=this.filesRepo.findByPath(T.file_path);return i.matchesFilters(T.file_path,s,I?.mtime,I?.classification)}));let u=new Zt(this.repoPath),d=new ge(this.repoPath),m=u.getAncestorMissionIds(),h=ce(this.repoPath)||void 0,g=this.exportsRepo.getGravityMap(m,h),_=d.getSection("gravity"),b=new Map;if(_?.hotspots)for(let T of _.hotspots)b.set(`${T.filePath}::${T.symbol}`,T.gravity);let y="\u{1F525}",E="\u26A1",w="\u269B\uFE0F",x=p.map((T,I)=>{let U=g[T.id],H=b.get(`${T.file_path}::${T.name}`),P=this.filesRepo.findByPath(T.file_path),R=ke.getMultiplier(T.file_path,P?.classification),A=(me.SCORE_BASE-I)*R;U&&(A+=U.score*me.SCORE_BASE),H&&(A+=H*me.SCORE_BASE*me.GRAVITY_STRUCTURAL_WEIGHT),T.name.toLowerCase()===c&&(A+=me.EXACT_MATCH_BONUS*R);let D=P?.mtime;if(D!=null){let L=D>1e10?D/1e3:D,Y=(Date.now()/1e3-L)/ks.SECONDS_PER_DAY;Y<me.RECENT_FILE_THRESHOLD_DAYS?A+=me.RECENT_FILE_BOOST:Y<me.OLDER_FILE_THRESHOLD_DAYS&&(A+=me.OLDER_FILE_BOOST)}let $=[];return U&&$.push(...U.reasons),H&&$.push(`Structural Hotspot (Gravity: ${H.toFixed(1)})`),{...T,activeGravity:U,structuralGravity:H,sortScore:A,reasons:$}}).sort((T,I)=>I.sortScore-T.sortScore).slice(n,n+t),v=p.length,k=n+t<v,N=x.map((T,I)=>{let U=a(T.file_path),H=this.filesRepo.getContent(T.file_path),P="";if(H){let D=H.split(`
652
- `);P=D.slice(Math.max(0,T.start_line-2),Math.min(D.length,T.start_line+3)).join(`
653
- `).trim()}let R=[];T.activeGravity&&(T.activeGravity.reasons.some(D=>D.includes("Working Set"))?R.push(y):T.activeGravity.reasons.some(D=>D.includes("Recent Intent"))&&R.push(E)),T.structuralGravity&&R.push(w);let A=R.length>0?` ${R.join("")}`:"";return{relPath:U,name:T.name,kind:T.kind,signature:T.signature,line:T.start_line,snippet:P,badgeStr:A,gravityReasons:T.reasons}});return{content:[{type:"text",text:`# Symbol Search Results: "${e}"
650
+ \u{1F4A1} Try shadow_search_symbol (fuzzy) or shadow_search_concept for semantic search.`}]}}o&&(u=u.filter(I=>{let T=this.filesRepo.findByPath(I.file_path);return n.matchesFilters(I.file_path,t,T?.mtime,T?.classification)}));let d=new di(this.repoPath),p=new pe(this.repoPath),f=d.getAncestorMissionIds(),m=Te(this.repoPath)||void 0,h=this.exportsRepo.getGravityMap(f,m),v=p.getSection("gravity"),b=new Map;if(v?.hotspots)for(let I of v.hotspots)b.set(`${I.filePath}::${I.symbol}`,I.gravity);let g="\u{1F525}",x="\u26A1",S="\u269B\uFE0F",E=u.map((I,T)=>{let N=h[I.id],F=b.get(`${I.file_path}::${I.name}`),D=this.filesRepo.findByPath(I.file_path),C=gt.getMultiplier(I.file_path,D?.classification),W=(Me.SCORE_BASE-T)*C;N&&(W+=N.score*Me.SCORE_BASE),F&&(W+=F*Me.SCORE_BASE*Me.GRAVITY_STRUCTURAL_WEIGHT),I.name.toLowerCase()===a&&(W+=Me.EXACT_MATCH_BONUS*C);let q=D?.mtime;if(q!=null){let H=q>1e10?q/1e3:q,Q=(Date.now()/1e3-H)/Ec.SECONDS_PER_DAY;Q<Me.RECENT_FILE_THRESHOLD_DAYS?W+=Me.RECENT_FILE_BOOST:Q<Me.OLDER_FILE_THRESHOLD_DAYS&&(W+=Me.OLDER_FILE_BOOST)}let B=[];return N&&B.push(...N.reasons),F&&B.push(`Structural Hotspot (Gravity: ${F.toFixed(1)})`),{...I,activeGravity:N,structuralGravity:F,sortScore:W,reasons:B}}).sort((I,T)=>T.sortScore-I.sortScore).slice(i,i+r),w=u.length,z=i+r<w,R=E.map((I,T)=>{let N=c(I.file_path),F=this.filesRepo.getContent(I.file_path),D="";if(F){let q=F.split(`
651
+ `);D=q.slice(Math.max(0,I.start_line-2),Math.min(q.length,I.start_line+3)).join(`
652
+ `).trim()}let C=[];I.activeGravity&&(I.activeGravity.reasons.some(q=>q.includes("Working Set"))?C.push(g):I.activeGravity.reasons.some(q=>q.includes("Recent Intent"))&&C.push(x)),I.structuralGravity&&C.push(S);let W=C.length>0?` ${C.join("")}`:"";return{relPath:N,name:I.name,kind:I.kind,signature:I.signature,line:I.start_line,snippet:D,badgeStr:W,gravityReasons:I.reasons}});return{content:[{type:"text",text:`# Symbol Search Results: "${e}"
654
653
 
655
- Showing ${N.length} matching symbol(s)${k?` (use offset=${n+t} for more)`:""}:
654
+ Showing ${R.length} matching symbol(s)${z?` (use offset=${i+r} for more)`:""}:
656
655
 
657
- `+N.map((T,I)=>{let U=`## ${n+I+1}. \`${T.name}\` (${T.kind})${T.badgeStr}
658
- **File**: \`${T.relPath}:${T.line}\`
659
- `;return T.gravityReasons&&(U+=`> *${T.gravityReasons.join(", ")}*
660
- `),T.signature&&(U+=`**Signature**: \`${T.signature}\`
661
- `),T.snippet&&(U+=`
656
+ `+R.map((I,T)=>{let N=`## ${i+T+1}. \`${I.name}\` (${I.kind})${I.badgeStr}
657
+ **File**: \`${I.relPath}:${I.line}\`
658
+ `;return I.gravityReasons&&(N+=`> *${I.gravityReasons.join(", ")}*
659
+ `),I.signature&&(N+=`**Signature**: \`${I.signature}\`
660
+ `),I.snippet&&(N+=`
662
661
  \`\`\`typescript
663
- ${T.snippet}
662
+ ${I.snippet}
664
663
  \`\`\`
665
- `),U}).join(`
666
- `)}]}}async findConceptMatches(e,t,n,s,r,o=0){let c=ce(this.repoPath)||void 0;if(!t)return[];let a=this.filesRepo.findWithEmbeddings(),p=new Yn(this.repoPath).getScorer(),d=new Zt(this.repoPath).getAncestorMissionIds(),m=[];for(let g of a)try{let _=JSON.parse(g.embedding),b=Ft(t,_),y=this.filesRepo.getContent(g.path),E=me.ENABLE_LEXICAL_SCORING&&y?Xt.calculateLexicalScore(y,e):0,w=1;if(y){let v=/\b(class|function|const|let|var|enum)\s+\w+/.test(y);if(/export\s+/.test(y)&&!v){let N=y.replace(/\/\/.*$/gm,"").replace(/\/\*[\s\S]*?\*\//g,"");/\b(class|function|const|let|var|enum)\s+\w+/.test(N)||(w=.1)}}let x=E>0?.1:.18;if(b>x){if(s&&!i.matchesFilters(g.path,n,g.mtime,g.classification))continue;let v=g.mtime>2e9?Math.floor(g.mtime/1e3):g.mtime,k=Math.floor(Date.now()/1e3)-ks.SECONDS_PER_YEAR,N=ke.getMultiplier(g.path,g.classification),O=p.calculateScore(b,v||k);O*=N;let I=this.filesRepo.getGravityMap(d,c)[g.path],U=g.classification?ke.mapClassificationToTier(g.classification):ke.classify(g.path,{content:y??void 0}),H=`Similarity: ${(b*100).toFixed(0)}%, Tier: ${U}${N!==1?` (${N}x)`:""}`;E>0&&(O+=E*me.LEXICAL_WEIGHT,H+=` | Lexical: +${E.toFixed(1)}`),I&&(O+=I.score,H+=` | \u{1F525} Gravity: +${I.score.toFixed(1)} (${I.reasons.join(", ")})`),w<1&&(O*=w,H+=` | \u{1F4C9} Barrel: x${w}`);let P=y?Xt.extractSnippet(y,e):void 0;m.push({path:g.path,summary:g.summary||"",score:b,decayedScore:O,rationale:H,snippet:P})}}catch{}let h=new Map;for(let g of m){let _=g.path.split("/").pop()?.split(".")[0].replace(/(Controller|Service|Repository|Component|View|Page|Handler|Wrapper|Client|DTO|Interface)$/i,"").toLowerCase();_&&_.length>3&&(h.has(_)||h.set(_,[]),h.get(_).push(g))}for(let[g,_]of h.entries())if(new Set(_.map(y=>y.path.split(".").pop())).size>1)for(let y of _)y.decayedScore=(y.decayedScore||0)+.15,y.rationale+=` | \u{1F310} Polyglot Flow: +0.15 (Linked via '${g}')`;return m.sort((g,_)=>(_.decayedScore||0)-(g.decayedScore||0)),m}findIntentLogMatches(e,t){let n=this.intentLogsRepo.findWithEmbeddings(),s=[];for(let r of n)try{let o=JSON.parse(r.embedding),c=Ft(e,o);c>.25&&s.push({id:r.id,missionId:r.mission_id,type:r.type,content:r.content,symbolName:r.symbol_name,filePath:r.file_path,score:c,decayedScore:c,rationale:`Similarity: ${(c*100).toFixed(0)}%`,createdAt:r.created_at})}catch{}return s.sort((r,o)=>(o.decayedScore||0)-(r.decayedScore||0)),s.slice(0,t)}buildFtsQuery(e,t){let n=e.trim();if(!n.includes(" "))return`"${n}" OR ${n}*`;let s=n.split(/\s+/).filter(r=>r.length>0);switch(t){case"exact":return`"${n}"`;case"all":return s.map(r=>`${r}*`).join(" ");default:return s.map(r=>`${r}*`).join(" OR ")}}};W();z();function Vn(i){let{fileType:e,layer:t}=i,n={fileType:tt.normalizeFileType(e),layer:t},s=!!(n.fileType?.length||n.layer!=null);return{filters:n,hasFilters:s}}async function Eo(i){let e=zn(i.query??""),t={...i,query:e},n=In();try{let{repoPath:s}=Me(t),{query:r,limit:o=Et.DEFAULT_LIMIT,offset:c=0,compact:a=!1}=t;await G(s);let{filters:l,hasFilters:p}=Vn(t),d=await new tt(s).searchByConcept(r,o,c,l,p,a);return pl(s,r,"concept"),n(),d}catch(s){return S.error({error:s,args:i},"Concept Search failed"),n(),await yt(),{content:[{type:"text",text:`Concept Search failed: ${s instanceof Error?s.message:String(s)}`}],isError:!0}}}function pl(i,e,t){try{let n=C.getInstance(i),s=ce(i);n.searchHistory.record(e,t,s)}catch(n){let s=ce(i);S.error({module:"search",repoPath:i,query:e,mode:t,error:n instanceof Error?n.message:String(n),branch:s},"Failed to record search history"),yt()}}W();z();async function Bs(i){let e=zn(i.query??""),t={...i,query:e},n=In();try{let{repoPath:s}=Me(t),{query:r,limit:o=Et.DEFAULT_LIMIT,offset:c=0,matchMode:a="any"}=t;await G(s);let{filters:l,hasFilters:p}=Vn(t),d=await new tt(s).searchBySymbol(r,o,c,l,p,a);return dl(s,r,"symbol"),n(),d}catch(s){return S.error({error:s,args:i},"Symbol Search failed"),n(),await yt(),{content:[{type:"text",text:`Symbol Search failed: ${s instanceof Error?s.message:String(s)}`}],isError:!0}}}function dl(i,e,t){try{let n=C.getInstance(i),s=ce(i);n.searchHistory.record(e,t,s)}catch(n){let s=ce(i);S.error({module:"search",repoPath:i,query:e,mode:t,error:n instanceof Error?n.message:String(n),branch:s},"Failed to record search history"),yt()}}z();W();import tn from"path";function So(i,e){let t=i.findContentByToken(e,100);return{count:t.length,files:t}}async function wo(i){let{repoPath:e,query:t,key:n="",kind:s,limit:r=50,showUsage:o=!1}=i,c=n||t;if(!c&&!s)return{content:[{type:"text",text:'Error: Either "key" or "kind" parameter is required.'}]};await G(e);let a=C.getInstance(e),{configs:l,files:p}=a;if(c){S.info({repoPath:e,key:c},"Searching for config key in DB...");let h=l.findByKey(c,r);if(h.length===0)return{content:[{type:"text",text:`No configuration found for key: ${c}`}]};if(o){let b=h.map(x=>{let v=So(p,x.key),k=v.count===0?"\u26A0\uFE0F ORPHANED":`\u2713 ${v.count} usage(s)`;return{file:tn.relative(e,x.file_path),key:x.key,value:x.value,kind:x.kind,usageCount:v.count,usageFiles:v.files.slice(0,5).map(N=>tn.relative(e,N)),status:k}});b.sort((x,v)=>x.usageCount===0&&v.usageCount>0?-1:v.usageCount===0&&x.usageCount>0?1:x.usageCount-v.usageCount);let y=b.filter(x=>x.usageCount===0).length;return{content:[{type:"text",text:(y>0?`# Configuration Search: "${c}" (with Usage Analysis)
667
-
668
- \u26A0\uFE0F **${y} orphaned var(s)** (defined but never used in code)
669
-
670
- Found ${h.length} match(es):
671
-
672
- `:`# Configuration Search: "${c}" (with Usage Analysis)
673
-
674
- Found ${h.length} match(es), all in use:
675
-
676
- `)+b.map(x=>{let v=`## ${x.file} (${x.kind}) ${x.status}
677
- **${x.key}**: \`${x.value}\``;return x.usageCount>0&&x.usageFiles.length>0&&(v+=`
678
- > Used in: ${x.usageFiles.map(k=>`\`${k}\``).join(", ")}${x.usageCount>5?` (+${x.usageCount-5} more)`:""}`),v}).join(`
679
-
680
- `)}]}}let g=h.map(b=>({file:tn.relative(e,b.file_path),key:b.key,value:b.value,kind:b.kind}));return{content:[{type:"text",text:`# Configuration Search: "${c}"
681
-
682
- Found ${h.length} match(es):
683
-
684
- `+g.map(b=>`## ${b.file} (${b.kind})
685
- **${b.key}**: \`${b.value}\``).join(`
686
-
687
- `)+"\n\n> \u{1F4A1} **Tip**: Use `showUsage: true` to see usage counts and identify orphaned vars."}]}}let u=l.findByKind(s||null,r);if(o){let h=u.map(y=>{let E=So(p,y.key);return{file:tn.relative(e,y.file_path),key:y.key,value:y.value,kind:y.kind,usageCount:E.count,status:E.count===0?"ORPHANED":"in-use"}});h.sort((y,E)=>y.usageCount===0&&E.usageCount>0?-1:E.usageCount===0&&y.usageCount>0?1:y.usageCount-E.usageCount);let g=h.filter(y=>y.usageCount===0).length,_=h.length,b=`# Config Discovery (${s||"all"}) with Usage Analysis
688
-
689
- `;return b+=`**Summary**: ${_} config(s) found, ${g} orphaned
690
-
691
- `,g>0&&(b+=`## \u26A0\uFE0F Orphaned (${g})
692
- `,b+=h.filter(y=>y.usageCount===0).map(y=>`- \`${y.key}\` in ${y.file}`).join(`
693
- `),b+=`
694
-
695
- `),b+=`## \u2713 In Use (${_-g})
696
- `,b+=h.filter(y=>y.usageCount>0).map(y=>`- \`${y.key}\` (${y.usageCount} usages)`).join(`
697
- `),u.length===r&&(b+=`
698
-
699
- > Results limited to ${r} entries. Use the 'limit' parameter to see more.`),{content:[{type:"text",text:b}]}}let d=u.map(h=>({...h,file:tn.relative(e,h.file_path)})),m=JSON.stringify(d,null,2);return u.length===r&&(m=`Results limited to ${r} entries. Use the 'limit' parameter to see more.
700
-
701
- `+m),m+="\n\n> \u{1F4A1} **Tip**: Use `showUsage: true` to see usage counts and identify orphaned vars.",{content:[{type:"text",text:m}]}}z();import xo from"path";async function Qn(i){let{repoPath:e,filePath:t}=Me(i);if(!t)return{content:[{type:"text",text:"Error: filePath is required"}],isError:!0};let n=i.detailLevel||"signatures";await G(e);let{files:s,exports:r}=C.getInstance(e),o=s.findByPath(t),c=xo.basename(t),a=/\.(ts|tsx|php|py|go)$/.test(c),l;a?l=await jt(t):l={exports:r.findByFile(t),imports:[]},n==="structure"?(l.exports=l.exports.map(m=>{let h={name:m.name,kind:m.kind,line:m.start_line,classification:m.classification};return m.members&&m.members.length>0?{...h,members:m.members.map(g=>({name:`${m.name}.${g.name}`,kind:g.kind,line:g.start_line}))}:h}),delete l.imports):n==="signatures"&&(l.exports=l.exports.map(m=>{let h={name:m.name,kind:m.kind,signature:m.signature,line:m.start_line,classification:m.classification,capabilities:JSON.parse(m.capabilities||"[]")};return m.members&&m.members.length>0?{...h,members:m.members.map(g=>({name:`${m.name}.${g.name}`,kind:g.kind,signature:g.signature,line:g.start_line}))}:h}),delete l.imports);let p=xo.relative(e,t),u=l.exports?.length||0,d="";return n==="structure"&&u>0?d=`
702
-
703
- \u{1F4A1} Showing ${u} symbol names. For full signatures: shadow_inspect_file({ filePath: "${p}", detailLevel: "signatures" })`:n==="signatures"&&u>0&&(d=`
704
-
705
- \u{1F4A1} Showing ${u} complete signatures. To inspect a specific symbol: shadow_inspect_symbol({ symbolName: "...", context: "full" })`),{content:[{type:"text",text:JSON.stringify({...l,fileDescription:o?.summary||"",classification:o?.classification||"Unknown"},null,2)+d}]}}z();import vo from"path";import ul from"fs";function ml(i,e,t){let n=i.split(`
706
- `),s=[],r=0;for(let u=0;u<Math.min(n.length,50);u++){let d=n[u].trim();if(d.startsWith("import ")||d.startsWith("from ")||d.startsWith("export ")&&d.includes(" from "))r=u+1;else if(d&&!d.startsWith("//")&&!d.startsWith("/*")&&!d.startsWith("*")&&d!==""&&r>0)break}r>0&&(s.push(...n.slice(0,r)),s.push(""));let o=[...t].sort((u,d)=>u.startLine-d.startLine),c=0,a=0;for(let u of o)if(u.isTarget){s.push(`// \u2501\u2501\u2501 REQUESTED: ${u.name} \u2501\u2501\u2501`);let d=n.slice(u.startLine-1,u.endLine);s.push(...d),s.push("// \u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501"),s.push(""),a++}else{let d=u.signature||hl(n,u.startLine-1,u.kind);d&&(s.push(`${d}`),s.push(` /* implementation: ${u.lineCount} lines */`),s.push(""),c++)}let l=o[o.length-1];if(l)for(let u=l.endLine;u<n.length;u++){let d=n[u].trim();if(d==="}"||d==="};"){s.push(n[u]);break}else if(d&&!d.startsWith("//"))break}return{foldedSource:s.join(`
707
- `),totalOriginalLines:n.length,foldedToLines:s.length,siblingsShown:a,siblingsFolded:c}}function hl(i,e,t){let n=i[e];if(t.includes("Function")||t.includes("Method")||t.includes("Arrow")){let s="";for(let r=e;r<Math.min(e+5,i.length);r++)if(s+=i[r],s.includes("{")||s.includes("=>")){let o=s.indexOf("{");o>0&&(s=s.substring(0,o).trim());break}return s.trim()}return n}async function Lt(i){let{repoPath:e,filePath:t,resolver:n}=Me(i),s=String(i.symbolName),r=i.context||"definition";if(t&&!n.isWithinRoot(t))return{content:[{type:"text",text:`Error: Access denied. Path ${t} is outside the repository root.`}],isError:!0};await G(e);let o=C.getInstance(e),c=[];if(s.includes(".")){let[v,k]=s.split(".");c=o.exports.findMemberCandidates(v,k,t)}else c=o.exports.findDefinitionCandidates(s,t);if(c.length===0){let v=o.exports.findPotentialParents(s);if(v.length>0){let T=v.map(I=>`\`${I.name}\` (in ${n.getRelative(I.file_path)})`).join(", ");return{content:[{type:"text",text:`Symbol "${s}" not found as a top-level export.
708
- However, it likely exists inside: ${T}.
709
- Try: shadow_inspect_symbol({ symbolName: "${v[0].name}", context: "full" }) to see the class body.`}]}}let N=o.exports.findFuzzyCandidates(s).map(T=>T.name),O=en(s,N,50,3);if(O.length>0){let T=O.map(I=>` \u2022 \`${I.match}\` (${I.score}% match)`).join(`
710
- `);return{content:[{type:"text",text:`Error: Symbol "${s}" not found in the index.
711
-
712
- Suggestions:
713
- ${T}
714
-
715
- Next steps:
716
- \u2022 Search semantically: shadow_search_concept({ query: "${s}" })
717
- \u2022 Verify repository is indexed: shadow_sync_index({ repoPath: "${e}" })`}]}}return{content:[{type:"text",text:`Error: Symbol "${s}" not found in the index.
718
-
719
- Next steps:
720
- \u2022 Search for it: shadow_search_concept({ query: "${s}" })
721
- \u2022 Try with file path: shadow_inspect_symbol({ symbolName: "${s}", filePath: "..." })
722
- `}]}}let a=c[0];if(a.kind==="ExportSpecifier"||a.kind==="ExportAllDeclaration"){let v=o.imports.findImportSource(a.file_path,s);if(v&&v.resolved_path)return Lt({...i,filePath:v.resolved_path})}let l=ul.readFileSync(a.file_path,"utf8"),p=l.split(`
723
- `),u=a.end_line-a.start_line+1,d=150,m,h=!1,g=null;if(r==="definition"&&u>d){let k=o.exports.findSiblings(a.file_path).map(N=>({name:N.name,kind:N.kind,signature:N.signature||"",startLine:N.start_line,endLine:N.end_line,lineCount:N.end_line-N.start_line+1,isTarget:N.name===a.name&&N.start_line===a.start_line,parentName:N.parent_name}));if(k.length>1){g=ml(l,{name:a.name,startLine:a.start_line,endLine:a.end_line},k);let N=n.getRelative(a.file_path);m=g.foldedSource+`
724
-
725
- \u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501
726
- \u{1F4CA} Semantic Fold Applied (context: "definition")
727
-
728
- Original file: ${g.totalOriginalLines} lines
729
- Folded view: ${g.foldedToLines} lines
730
- Target Symbol: ${a.name}
731
- \u{1F4A1} Need more context?
732
- \u2022 Full symbol + dependencies + usage: shadow_inspect_symbol({ symbolName: "${a.name}", context: "full" })
733
- \u2022 ALL symbols in this file: shadow_inspect_file({ filePath: "${N}", detailLevel: "signatures" })
734
- \u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501`,h=!0}else m=p.slice(a.start_line-1,a.start_line-1+d).join(`
735
- `)+`
736
-
737
- ... (truncated ${u-d} lines)`,h=!0}else m=p.slice(a.start_line-1,a.end_line).join(`
738
- `);let _=a.parent_name?`${a.parent_name}.${a.name}`:a.name,b=o.exports.findHydratedById(a.id),y={name:_,kind:a.kind,file:n.getRelative(a.file_path),startLine:a.start_line,endLine:a.end_line,totalLines:u,...h&&{truncated:!0,previewLines:d},classification:a.classification,intelligence:b?{working_set_of:b.active_missions.map(v=>`Mission #${v.id}: ${v.name}`),total_intents:b.intent_log_count,latest_intent:b.recent_intents[0]?`${b.recent_intents[0].type}: ${b.recent_intents[0].content}`:null}:void 0,source:m};if(r==="definition")return{content:[{type:"text",text:JSON.stringify(y,null,2)}]};let E={definition:y,dependencies:o.imports.getImportsForFile(a.file_path).map(v=>({module:v.module_specifier,symbols:v.imported_symbols,relativePath:v.resolved_path?vo.relative(e,v.resolved_path):null}))},w=[a.file_path],x=o.imports.findVerifiedDependents(w,s);return E.verifiedUsages=x.slice(0,10).map(v=>({file:vo.relative(e,v.file_path),classification:v.classification,importedSymbols:v.imported_symbols})),{content:[{type:"text",text:JSON.stringify(E,null,2)}]}}async function To(i,e){let t=nn.resolve(e.dir);await B(async()=>{se("Semantic Concept Search");let n=be();n.start(`Analyzing intent: "${f.bold(i)}"...`);try{let s=await Eo({repoPath:t,query:i});n.stop("Analysis complete.");let r=s.content[0].text;if(r.includes("Found")){let c=r.split("## ").slice(1).map(a=>{let[l,...p]=a.split(`
739
-
740
- `),[u,d]=l.split(" ( "),m=(u??"").replace(/^\d+\.\s*/,"").trim(),h=p.find(g=>g.startsWith("**Summary**: "))?.replace("**Summary**: ","")||"";return{name:m,matchPct:d??"",summaryLine:h}});if(c.forEach(({name:a,matchPct:l,summaryLine:p})=>{X(`${f.green(a)} ${f.dim("("+(l||""))}`,p,"blue"),console.log("")}),e.interactive&&c.length>1){let a=await kn("Inspect a file",c.map(l=>({value:{name:l.name},label:l.name,hint:l.summaryLine.slice(0,50)})),{limit:15});if(a){let l=a.name.startsWith(t)?a.name:nn.join(t,a.name),p=await Qn({repoPath:t,filePath:l});p.content?.[0]&&(console.log(""),X(f.bold("File summary"),p.content[0].text,"cyan"))}}}else console.log(r)}catch(s){throw n.stop(`Search failed: ${s.message}`),s}finally{await J(t)}})}async function Ro(i,e){let t=nn.resolve(e.dir);await B(async()=>{se("Symbol Search");let n=be();n.start(`Searching symbols: "${f.bold(i)}"...`);try{let s=await Bs({repoPath:t,query:i});n.stop("Search complete.");let r=s.content[0].text;try{let o=JSON.parse(r);if(Array.isArray(o)){if(console.log(""),Tn(["Symbol","Kind","File","Line"],o.map(c=>[f.bold(f.green(c.name)),f.dim(c.kind??""),f.cyan(c.file??""),f.yellow(String(c.line??""))])),e.interactive&&o.length>1){let c=o.map(l=>({value:l,label:l.name,hint:`${l.file??""}:${l.line??""}`})),a=await kn("Inspect symbol",c,{limit:15});if(a){let l=await Lt({repoPath:t,symbolName:a.name});l.content?.[0]&&(console.log(""),X(f.bold(a.name),l.content[0].text,"cyan"))}}}else console.log(r)}catch{console.log(r)}}catch(s){throw n.stop(`Search failed: ${s.message}`),s}finally{await J(t)}})}async function ko(i,e){let t=nn.resolve(e.dir);await B(async()=>{se("Fuzzy Symbol Search");let n=be();n.start(`Fuzzy matching: "${f.bold(i)}"...`);try{let s=await Bs({repoPath:t,query:i});n.stop("Search complete.");let r=s.content[0].text;if(r.includes("## ")){let c=r.split("## ").slice(1).map(a=>{let l=a.split(`
741
- `),p=l[0],u=l.find(b=>b.startsWith("**Match**:"))||"",d=l.find(b=>b.startsWith("**File**:"))||"",m=p.match(/`([^`]+)`/),h=m?m[1]:"",g=u.match(/\*\*Match\*\*: (.+) \((\d+)% confidence\)/),_=d.match(/`([^:]+):(\d+)`/);return{symbolName:h,file:_?_[1]:"",line:_?_[2]:"",matchType:g?g[1]:"",confidence:g?g[2]:""}});if(console.log(""),console.log(f.dim(`Found ${c.length} fuzzy match(es):`)),console.log(""),c.forEach((a,l)=>{console.log(`${f.dim(`${l+1}.`)} ${f.bold(f.green(a.symbolName))} ${f.dim(`(${a.matchType}, ${a.confidence}% match)`)}`),console.log(` ${f.cyan(a.file)}:${f.yellow(a.line)}`),console.log("")}),e.interactive&&c.length>1){let a=await kn("Inspect symbol",c.map(l=>({value:l,label:l.symbolName,hint:`${l.file}:${l.line}`})),{limit:15});if(a){let l=await Lt({repoPath:t,symbolName:a.symbolName});l.content?.[0]&&(console.log(""),X(f.bold(a.symbolName),l.content[0].text,"cyan"))}}}else console.log(r)}catch(s){throw n.stop(`Search failed: ${s.message}`),s}finally{await J(t)}})}async function Io(i,e){let t=nn.resolve(e.dir);await B(async()=>{se("Config Search");let n=be();n.start(`Searching config: ${f.bold(i||"all")}...`);try{let s=await wo({repoPath:t,key:i,kind:e.kind});n.stop("Search complete."),X("\u2699\uFE0F Results",s.content[0].text,"yellow")}finally{await J(t)}})}W();var Gs=S.child({module:"mcp:tools:env:hooks"});async function Kn(i){let{repoPath:e,action:t,enableAutoRefresh:n,enableSymbolHealing:s}=i;if(t==="install"){Gs.info({repoPath:e,enableAutoRefresh:n,enableSymbolHealing:s},"Installing git hooks");let r=Hi({repoPath:e,enableAutoRefresh:n??!0,enableSymbolHealing:s??!0}),o=["# Git Hooks Installation","",`## Installed (${r.installed.length})`,r.installed.length>0?r.installed.map(c=>`- \`${c}\``).join(`
742
- `):"- None","",`## \u23ED\uFE0F Skipped (${r.skipped.length})`,r.skipped.length>0?r.skipped.map(c=>`- \`${c}\` (already installed)`).join(`
743
- `):"- None",""];return r.errors.length>0&&(o.push(`## Errors (${r.errors.length})`),o.push(r.errors.map(c=>`- ${c}`).join(`
744
- `)),o.push("")),o.push("---"),o.push("**What happens now?**"),(n??!0)&&o.push("- After `git pull` or `git checkout`: Index auto-refreshes in background"),(s??!0)&&o.push("- After `git commit`: Symbol shift detection runs automatically"),{content:[{type:"text",text:o.join(`
745
- `)}]}}if(t==="remove"){Gs.info({repoPath:e},"Uninstalling git hooks");let r=Ui(e),o=["# Git Hooks Uninstallation","",`## Removed (${r.removed.length})`,r.removed.length>0?r.removed.map(c=>`- \`${c}\``).join(`
746
- `):"- None",""];return r.errors.length>0&&(o.push(`## Errors (${r.errors.length})`),o.push(r.errors.map(c=>`- ${c}`).join(`
747
- `))),{content:[{type:"text",text:o.join(`
748
- `)}]}}if(t==="status"){Gs.info({repoPath:e},"Checking git hooks status");let r=_t(e);return{content:[{type:"text",text:["# Git Hooks Status","",`## Installed (${r.installed.length})`,r.installed.length>0?r.installed.map(c=>`- \`${c}\``).join(`
749
- `):"- None","",`## Not Installed (${r.notInstalled.length})`,r.notInstalled.length>0?r.notInstalled.map(c=>`- \`${c}\``).join(`
750
- `):"- None","","---",'**To install hooks**: Use `shadow_env_hooks({ action: "install" })`'].join(`
751
- `)}]}}return{content:[{type:"text",text:`Unknown action: ${t}`}],isError:!0}}async function Co(i){let[e,t="."]=i;if(!e||!["install","uninstall","status"].includes(e)){console.log(""),console.log(` ${f.bold("Usage: ")} liquid-shadow hooks <install|uninstall|status> [path]`),console.log(""),console.log(` ${f.bold("Commands: ")}`),console.log(` ${f.cyan("install")} Install git hooks for automatic index refresh and symbol healing`),console.log(` ${f.cyan("uninstall")} Remove installed git hooks`),console.log(` ${f.cyan("status")} Check git hooks installation status`),console.log(""),console.log(` ${f.bold("Examples: ")}`),console.log(" liquid-shadow hooks install ."),console.log(" liquid-shadow hooks status /path/to/repo"),console.log("");return}await B(async()=>{let n=fa("path").resolve(t);switch(e){case"install":{let s=await Kn({repoPath:n,action:"install",enableAutoRefresh:!0,enableSymbolHealing:!0});if(console.log(""),console.log(` ${f.green("\u2714")} ${f.bold("Git hooks installed successfully")}`),console.log(""),s.content&&s.content[0])try{let r=JSON.parse(s.content[0].text);console.log(` ${f.bold("Installed hooks: ")}`),r.hooks.forEach(o=>{console.log(` ${f.cyan("\u2022")} ${o}`)}),console.log("")}catch{console.log(s.content[0].text)}break}case"uninstall":{await Kn({repoPath:n,action:"remove"}),console.log(""),console.log(` ${f.green("\u2714")} ${f.bold("Git hooks uninstalled successfully")}`),console.log("");break}case"status":{let s=await Kn({repoPath:n,action:"status"});if(console.log(""),console.log(` ${f.bold("Git Hooks Status")}`),console.log(""),s.content&&s.content[0])try{let r=JSON.parse(s.content[0].text);r.installed&&r.installed.length>0?(console.log(` ${f.green("\u2714")} Installed hooks:`),r.installed.forEach(o=>{console.log(` ${f.cyan("\u2022")} ${o}`)})):console.log(` ${f.yellow("\u26A0")} No hooks installed`),r.missing&&r.missing.length>0&&(console.log(""),console.log(` ${f.dim("Missing hooks: ")}`),r.missing.forEach(o=>{console.log(` ${f.dim("\u2022")} ${o}`)}))}catch{console.log(s.content[0].text)}console.log("");break}}})}z();W();import fl from"path";import gl from"fs";var Lo=S.child({module:"mcp:tools:workspace:list"});async function $o(i){let{repoPaths:e,status:t,limit:n,summarize:s=!1}=i;Lo.info({repoCount:e.length,status:t,summarize:s},"Getting workspace missions");let r=[];for(let c of e)if(gl.existsSync(c))try{let{missions:a}=C.getInstance(c),l=a.findAll(t);for(let p of l){let u=a.getLinks(p.id);r.push({...p,repo_path:c,repo_name:fl.basename(c),cross_repo_links:u})}}catch(a){Lo.error({error:a,repoPath:c},"Failed to query repo missions")}if(r.sort((c,a)=>{let l=d=>d==="in-progress"?0:d==="verifying"?1:2,p=l(c.status),u=l(a.status);return p!==u?p-u:(c.created_at||0)-(a.created_at||0)}),s||r.length>50&&!n){let c=n||20,a=r.slice(0,c),l=r.reduce((u,d)=>(u[d.status]=(u[d.status]||0)+1,u),{}),p=r.reduce((u,d)=>(u[d.repo_name]=(u[d.repo_name]||0)+1,u),{});return{content:[{type:"text",text:JSON.stringify({summary:{total_missions:r.length,by_status:l,by_repo:p,showing_top:c},top_missions:a,hint:`Showing top ${c} of ${r.length} missions. Use limit to adjust or summarize:false for full list.`},null,2)}]}}let o=n?r.slice(0,n):r;return{content:[{type:"text",text:JSON.stringify({total_missions:r.length,showing:o.length,missions:o},null,2)}]}}z();W();var yl=S.child({module:"mcp:tools:workspace:link"});async function No(i){let{parentRepoPath:e,parentMissionId:t,childRepoPath:n,childMissionId:s,relationship:r="related"}=i;yl.info({parentRepoPath:e,childRepoPath:n},"Linking cross-repo missions");let{missions:o}=C.getInstance(e),{missions:c}=C.getInstance(n);try{let a=o.findById(t),l=c.findById(s);if(!a)throw new Error(`Parent mission ${t} not found`);if(!l)throw new Error(`Child mission ${s} not found`);return o.createLink(t,n,s,r,"parent"),c.createLink(s,e,t,r,"child"),{content:[{type:"text",text:JSON.stringify({status:"linked",relationship:r},null,2)}]}}catch(a){throw new Error(`Failed to link: ${a.message}`)}}W();import kl from"path";W();qe();import bl from"better-sqlite3";import $t from"path";import Ao from"fs";import _l from"os";import El from"crypto";var Sl=S.child({module:"fusion-connection"}),Xn=5,wl=1,Po=["files","exports","imports","configs","schema_migrations"],Zn=class{fusionDb;attachedRepos=new Map;fusionDbPath;name;constructor(e){this.name=e.name,this.fusionDbPath=this.getFusionDbPath(e.name),Sl.info({name:e.name,path:this.fusionDbPath},"Initializing fused index connection");let t=$t.dirname(this.fusionDbPath);Ao.existsSync(t)||Ao.mkdirSync(t,{recursive:!0}),this.fusionDb=new bl(this.fusionDbPath),this.fusionDb.pragma("journal_mode = WAL"),this.fusionDb.pragma("busy_timeout = 5000"),this.initFusionSchema();for(let n of e.repoPaths)this.attachRepo(n)}getFusionDbPath(e){let t=_l.homedir(),n=$t.join(t,".mcp-liquid-shadow","fused"),s=e.replace(/[^a-zA-Z0-9-_]/g,"_");return $t.join(n,`${s}.db`)}initFusionSchema(){this.fusionDb.exec(`
664
+ `),N}).join(`
665
+ `)}]}}async findConceptMatches(e,r,i,t,o,s=0){let a=Te(this.repoPath)||void 0,l=new Cn(this.repoPath).getScorer(),d=new di(this.repoPath).getAncestorMissionIds(),p=this.filesRepo.getGravityMap(d,a),f=Nn.extractKeywords(e),m=f.length>=3,h=this.extractOrderedConceptTerms(e),v=this.buildNgrams(h,2,3),b=m?this.collectConceptSymbolHintPaths(f,Math.max(o*10,100)):new Set,g=Math.min(Math.max((o+s)*6,Me.FILTERED_QUERY_LIMIT_MULTIPLIER*20),he.MAX_LIMIT),[x,S]=await Promise.all([Promise.resolve(r?this.filesRepo.findWithEmbeddings():[]),Promise.resolve(this.filesRepo.findContentFts(e,g))]),E=[];if(r){for(let T of x)try{let N=JSON.parse(T.embedding),F=uo(r,N);E.push({row:T,similarity:F,vectorRank:0})}catch{}E.sort((T,N)=>N.similarity-T.similarity);for(let T=0;T<E.length;T++)E[T].vectorRank=T+1}let w=this.rrfMerge(E.slice(0,g).map(T=>({path:T.row.path,rank:T.vectorRank,score:T.similarity,row:T.row})),S.slice(0,g).map((T,N)=>({path:T.path,rank:N+1,bm25Rank:T.bm25_rank,row:T})),60);if(w.length===0)return[];let z=new Map;for(let T of E)z.set(T.row.path,T.similarity);let R=[],U=new Map;for(let T of w){let N=T.row,F=z.get(N.path)||0,D=T.ftsRank!==null,C=T.vectorRank!==null,W=this.filesRepo.getContent(N.path),q=Me.ENABLE_LEXICAL_SCORING&&W?Nn.calculateLexicalScore(W,e):0,B=W?Nn.calculateKeywordCoverageFromKeywords(W,f):0,H=f.length>0?Math.round(B*f.length):0,Q=this.calculatePhraseCoverage(`${N.path}
666
+ ${N.summary||""}
667
+ ${W||""}`,v),V=b.has(N.path),re=1;if(W){let Kr=/\b(class|function|const|let|var|enum)\s+\w+/.test(W);if(/export\s+/.test(W)&&!Kr){let cx=W.replace(/\/\/.*$/gm,"").replace(/\/\*[\s\S]*?\*\//g,"");/\b(class|function|const|let|var|enum)\s+\w+/.test(cx)||(re=.1)}}let le=V?.08:q>0||Q>0||D?.14:m?.22:.18;if(C&&F<=le&&!D)continue;if(f.length>0&&q===0&&!D){if(m){if(!V&&(H===0&&Q===0&&F<.4||H<=1&&Q===0&&F<.34||H===1&&F<.3))continue}else if(H===0&&F<.24)continue}if(m&&!V&&Q===0&&H<=1&&F<.3&&!D||t&&!n.matchesFilters(N.path,i,N.mtime,N.classification))continue;let fe=N.mtime>2e9?Math.floor(N.mtime/1e3):N.mtime,se=Math.floor(Date.now()/1e3)-Ec.SECONDS_PER_YEAR,K=gt.getMultiplier(N.path,N.classification),G=C?l.calculateScore(F,fe||se):0,Ne=T.fusedScore*60,Ee=(Ne+G*.2)*K,He=p[N.path],Pe=N.classification?gt.mapClassificationToTier(N.classification):gt.classify(N.path,{content:W??void 0}),$e=`vector_rank: ${this.formatRank(T.vectorRank)} | fts_rank: ${this.formatRank(T.ftsRank)} | fused_score: ${T.fusedScore.toFixed(6)} | Similarity: ${(F*100).toFixed(0)}%, Tier: ${Pe}${K!==1?` (${K}x)`:""}`;if(V&&($e+=" | SymbolHint"),q>0&&(Ee+=q*Me.LEXICAL_WEIGHT,$e+=` | Lexical: +${q.toFixed(1)}`),f.length>0)if(B>0){let Kr=m?B*.45:B*.35;Ee+=Kr,$e+=` | Keywords: ${(B*100).toFixed(0)}%`}else $e+=" | Keywords: 0%",m&&!D&&(Ee*=.55,$e+=" (penalty)");if(v.length>0)if(Q>0){let Kr=m?Q*.8:Q*.35;Ee+=Kr,$e+=` | Phrases: ${(Q*100).toFixed(0)}%`}else m&&!D&&(Ee*=.72,$e+=" | Phrases: 0% (penalty)");He&&(Ee+=He.score,$e+=` | \u{1F525} Gravity: +${He.score.toFixed(1)} (${He.reasons.join(", ")})`),m&&this.isGenericConceptPath(N.path)&&H<=1&&Q===0&&!D&&(Ee*=.75,$e+=" | Generic path penalty"),re<1&&(Ee*=re,$e+=` | \u{1F4C9} Barrel: x${re}`);let Vr=W?Nn.extractSnippet(W,e):void 0,ax=Math.max(F,Math.min(1,Ne));R.push({path:N.path,summary:N.summary||"",score:ax,fusedScore:T.fusedScore,vectorRank:T.vectorRank,ftsRank:T.ftsRank,decayedScore:Ee,rationale:$e,snippet:Vr}),U.set(N.path,{lexicalScore:q,keywordCoverage:B,matchedKeywordCount:H,phraseCoverage:Q})}if(R.length>0&&f.length>0){let T=this.exportsRepo.findByFiles(R.map(F=>F.path)),N=new Map;for(let F of T){let D=N.get(F.file_path)??[];D.push(F.name),N.set(F.file_path,D)}for(let F of R){let D=this.calculateIdentifierOverlap(f,N.get(F.path)??[]);if(D>0){let C=m?D*.8:D*.25;F.decayedScore=(F.decayedScore||0)+C,F.rationale+=` | Symbols: ${(D*100).toFixed(0)}%`}else m&&this.isGenericConceptPath(F.path)&&(F.decayedScore=(F.decayedScore||0)*.82,F.rationale+=" | Symbols: 0% (generic penalty)")}}let I=new Map;for(let T of R){let N=T.path.split("/").pop()?.split(".")[0].replace(/(Controller|Service|Repository|Component|View|Page|Handler|Wrapper|Client|DTO|Interface)$/i,"").toLowerCase();N&&N.length>3&&(I.has(N)||I.set(N,[]),I.get(N).push(T))}for(let[T,N]of I.entries())if(new Set(N.map(D=>D.path.split(".").pop())).size>1)for(let D of N)D.decayedScore=(D.decayedScore||0)+.15,D.rationale+=` | \u{1F310} Polyglot Flow: +0.15 (Linked via '${T}')`;if(m&&R.length>1){let T=Math.min(Math.max(o*4,Me.FILTERED_QUERY_LIMIT_MULTIPLIER*20),R.length),N=[...R].sort((D,C)=>(C.decayedScore||0)-(D.decayedScore||0)).slice(0,T),F=this.computeBm25LikeConfirmation(N.map(D=>D.path),f);for(let D of N){let C=F.get(D.path)||0,W=U.get(D.path);if(C>0){let q=Math.min(.95,C*.18);D.decayedScore=(D.decayedScore||0)+q,D.rationale+=` | LexConfirm: +${q.toFixed(2)}`}else W&&W.matchedKeywordCount<=1&&W.phraseCoverage===0&&W.lexicalScore===0&&(D.decayedScore=(D.decayedScore||0)*.85,D.rationale+=" | LexConfirm: 0 (penalty)")}}return R.sort((T,N)=>(N.decayedScore||0)-(T.decayedScore||0)),R.slice(s,s+Math.min(o,he.MAX_LIMIT))}async findIntentLogMatches(e,r){return(await this.intentLogsRepo.findSemanticMatches(e,r)).map(t=>({id:t.id,missionId:t.mission_id,type:t.type,content:t.content,symbolName:t.symbol_name,filePath:t.file_path,score:t.similarity,decayedScore:t.similarity,rationale:`Similarity: ${(t.similarity*100).toFixed(0)}%`,createdAt:t.created_at}))}buildFtsQuery(e,r){let i=e.trim();if(!i.includes(" "))return`"${i}" OR ${i}*`;let t=i.split(/\s+/).filter(o=>o.length>0);switch(r){case"exact":return`"${i}"`;case"all":return t.map(o=>`${o}*`).join(" ");default:return t.map(o=>`${o}*`).join(" OR ")}}extractPathKeywords(e){let r=e.trim();if(!r)return[];let i=r.replace(/([a-z0-9])([A-Z])/g,"$1 $2").toLowerCase().split(/[^a-z0-9_\/.-]+/).map(o=>o.trim()).filter(o=>o.length>=2),t=new Set;t.add(r.toLowerCase());for(let o of i)t.add(o);return Array.from(t)}isLikelySymbolQuery(e){let r=e.trim();return!r||/[\/\\]/.test(r)?!1:/^[a-z]+(?:[A-Z][a-z0-9]+)+$/.test(r)||!r.includes(" ")&&/[A-Z]/.test(r)}countPathKeywordHits(e,r){let i=e.toLowerCase(),t=r.filter(s=>s.length>=3),o=0;for(let s of t)i.includes(s.toLowerCase())&&(o+=1);return o}scorePathResult(e,r,i,t){let s=this.countPathKeywordHits(e,r)*10;i==="symbol"&&(s+=25);let a=e.toLowerCase(),c=a.includes("/.env")||a.endsWith(".env")||a.endsWith(".yml")||a.endsWith(".yaml")||a.endsWith(".json")||a.endsWith(".md");return t&&c&&(s-=20),t&&a.includes("/tests/")&&(s-=15),s}findSymbolBackedPaths(e,r,i){let t=e.trim().toLowerCase();if(!t)return[];if(/[\/\\]/.test(t))return[];let o=Array.from(new Set([t,...r])).filter(c=>c.length>=3).slice(0,6);if(o.length===0)return[];let s=o.flatMap(c=>{let l=c===t?Math.min(i,60):Math.min(i,30);return this.exportsRepo.findByPartialName(c,l)}),a=new Map;for(let c of s){let l=c.name.toLowerCase(),u=0;l===t&&(u+=6),l.startsWith(t)&&(u+=4),l.includes(t)&&(u+=3);for(let p of r)p.length>=3&&l.includes(p)&&(u+=1);if(u===0)continue;let d=a.get(c.file_path)||0;u>d&&a.set(c.file_path,u)}return Array.from(a.entries()).sort((c,l)=>l[1]-c[1]).slice(0,Math.min(i,he.MAX_LIMIT)).map(([c])=>c)}rrfMerge(e,r,i){let t=new Map,o=1.2,s=.8;for(let a of e){let c=t.get(a.path)||{path:a.path,row:a.row,vectorRank:null,ftsRank:null,fusedScore:0};c.vectorRank=a.rank,c.fusedScore+=o/(i+a.rank),t.set(a.path,c)}for(let a of r){let c=t.get(a.path)||{path:a.path,row:a.row,vectorRank:null,ftsRank:null,fusedScore:0};c.ftsRank=a.rank,c.fusedScore+=s/(i+a.rank),t.set(a.path,c)}return Array.from(t.values()).sort((a,c)=>c.fusedScore-a.fusedScore)}formatRank(e){return e==null?"none":String(e)}extractOrderedConceptTerms(e){return e?e.replace(/([a-z0-9])([A-Z])/g,"$1 $2").toLowerCase().split(/[^a-z0-9_]+/).map(r=>r.trim()).filter(r=>r.length>=3):[]}buildNgrams(e,r,i){if(e.length<r)return[];let t=[];for(let o=r;o<=i&&!(e.length<o);o++)for(let s=0;s<=e.length-o;s++)t.push(e.slice(s,s+o).join(" "));return Array.from(new Set(t))}calculatePhraseCoverage(e,r){if(!e||r.length===0)return 0;let i=e.toLowerCase(),t=0;for(let o of r)i.includes(o)&&(t+=1);return t/r.length}calculateIdentifierOverlap(e,r){if(e.length===0||r.length===0)return 0;let i=new Set(e.map(s=>s.toLowerCase())),t=new Set;for(let s of r){let a=s.replace(/([a-z0-9])([A-Z])/g,"$1 $2").toLowerCase().split(/[^a-z0-9_]+/).map(c=>c.trim()).filter(c=>c.length>=3);for(let c of a)t.add(c)}let o=0;for(let s of i)t.has(s)&&(o+=1);return o/i.size}isGenericConceptPath(e){let r=e.toLowerCase();return/(?:^|\/)(index|utils?|helpers?|common|shared|types?|constants?|models?)(?:\/|\.|$)/.test(r)}computeBm25LikeConfirmation(e,r){let i=Array.from(new Set(r.map(d=>d.toLowerCase()).filter(d=>d.length>=3)));if(e.length===0||i.length===0)return new Map;let t=new Set(i),o=[],s=new Map;for(let d of e){let f=(this.filesRepo.getContent(d)??"").toLowerCase().split(/[^a-z0-9_]+/).map(h=>h.trim()).filter(Boolean),m=new Map;for(let h of f)t.has(h)&&m.set(h,(m.get(h)||0)+1);for(let h of i)(m.get(h)||0)>0&&s.set(h,(s.get(h)||0)+1);o.push({path:d,frequencies:m,length:Math.max(f.length,1)})}let a=o.reduce((d,p)=>d+p.length,0)/Math.max(o.length,1),c=1.2,l=.75,u=new Map;for(let d of o){let p=0;for(let f of i){let m=d.frequencies.get(f)||0;if(m===0)continue;let h=s.get(f)||0,v=Math.log(1+(o.length-h+.5)/(h+.5)),b=m*(c+1)/(m+c*(1-l+l*(d.length/Math.max(a,1))));p+=v*b}u.set(d.path,p)}return u}collectConceptSymbolHintPaths(e,r){let i=Array.from(new Set(e.filter(o=>o.length>=4&&!this.isLowSignalConceptKeyword(o)))).slice(0,6);if(i.length===0)return new Set;let t=new Map;for(let o of i){let s=this.exportsRepo.findByPartialName(o,Math.min(r,80));for(let a of s){let c=a.name.toLowerCase(),l=0;c===o&&(l+=3),c.startsWith(o)&&(l+=2),c.includes(o)&&(l+=1),l!==0&&t.set(a.file_path,(t.get(a.file_path)||0)+l)}}return new Set(Array.from(t.entries()).sort((o,s)=>s[1]-o[1]).slice(0,Math.min(r,he.MAX_LIMIT)).map(([o])=>o))}isLowSignalConceptKeyword(e){return new Set(["type","types","data","update","create","list","item","value","model","helper"]).has(e.toLowerCase())}};Je();ht();function Dn(n){let{fileType:e,layer:r}=n,i={fileType:ot.normalizeFileType(e),layer:r},t=!!(i.fileType?.length||i.layer!=null);return{filters:i,hasFilters:t}}X();Je();import{Visitor as VS}from"@swc/core/Visitor.js";var or=class extends VS{calls=new Set;apiCalls=[];imports=new Map;axiosInstances=new Map([["axios",""],["http",""],["appApi",""],["restApi",""],["adminApi",""]]);visitImportDeclaration(e){let r=e.source.value;for(let i of e.specifiers)(i.type==="ImportDefaultSpecifier"||i.type==="ImportSpecifier")&&this.imports.set(i.local.value,r);return super.visitImportDeclaration(e)}visitCallExpression(e){if(e.callee.type==="Identifier"){let r=e.callee.value;this.calls.add(r),(r==="axios"||r==="http")&&e.arguments.length>0&&this.extractApiCallFromConfig(e.arguments[0].expression)}else if(e.callee.type==="MemberExpression"){let r=e.callee.property.value,i=o=>{if(!o)return"?";if(o.type==="Identifier")return o.value;if(o.type==="ThisExpression")return"this";if(o.type==="MemberExpression"){let s=i(o.object),a=o.property.value||"?";return`${s}.${a}`}return o.type==="TsNonNullExpression"||o.type==="TsAsExpression"||o.type==="ParenthesisExpression"?i(o.expression):"?"},t=i(e.callee.object);if(t!=="?"&&r){if(this.calls.add(`${t}.${r}`),t==="axios"||t==="http"||this.axiosInstances.has(t)){let o=this.axiosInstances.get(t)||"";this.extractApiCall(r,e.arguments,o)}if((t.toLowerCase().includes("pubsub")||t==="pubSubClient"||t.endsWith(".pubSubClient"))&&r!=="subscribe"){let o=r;if((r==="publish"||r==="publishMessage"||r==="publishTaskByNameAndPayload")&&e.arguments.length>0)for(let s of e.arguments){let a=s.expression;if(a.type==="ObjectExpression"){let c=a.properties.find(l=>l.key?.type==="Identifier"&&(l.key.value==="action"||l.key.value==="type")||l.key?.type==="StringLiteral"&&(l.key.value==="action"||l.key.value==="type"));if(c&&c.value?.type==="StringLiteral"){o=c.value.value;break}}if(a.type==="CallExpression"&&a.callee.type==="MemberExpression"&&a.callee.object.value==="JSON"&&a.callee.property.value==="stringify"&&a.arguments.length>0){let c=a.arguments[0].expression;if(c.type==="ObjectExpression"){let l=c.properties.find(u=>u.key?.type==="Identifier"&&(u.key.value==="action"||u.key.value==="type")||u.key?.type==="StringLiteral"&&(u.key.value==="action"||u.key.value==="type"));if(l&&l.value?.type==="StringLiteral"){o=l.value.value;break}}}}this.apiCalls.push({method:"PUBSUB",url:o})}}}return e.callee.type==="Identifier"&&e.callee.value==="fetch"&&this.extractApiCall("GET",e.arguments),super.visitCallExpression(e)}visitNewExpression(e){return e.callee.type==="Identifier"&&this.calls.add(e.callee.value),super.visitNewExpression(e)}visitVariableDeclarator(e){if(e.init&&e.init.type==="CallExpression"){let r=e.init.callee;if(r.type==="MemberExpression"&&r.property.value==="create"&&r.object.value==="axios"){let t=e.init.arguments[0]?.expression;if(t&&t.type==="ObjectExpression"){let o=t.properties.find(s=>s.key.value==="baseURL");if(o){let s="?";o.value.type==="StringLiteral"?s=o.value.value:o.value.type==="Identifier"&&(s=`\${${o.value.value}}`),e.id.type==="Identifier"&&this.axiosInstances.set(e.id.value,s)}}}}return super.visitVariableDeclarator(e)}extractApiCallFromConfig(e){if(e&&e.type==="ObjectExpression"){let r=e.properties.find(t=>t.key.type==="Identifier"&&t.key.value==="url"||t.key.type==="StringLiteral"&&t.key.value==="url"),i=e.properties.find(t=>t.key.type==="Identifier"&&t.key.value==="method"||t.key.type==="StringLiteral"&&t.key.value==="method");if(r&&r.value){let t=i?.value?.value||"GET",o=this.resolveUrlValue(r.value);o!=="?"&&this.apiCalls.push({method:t.toUpperCase(),url:o})}}}resolveUrlValue(e){return e.type==="StringLiteral"?e.value:e.type==="TemplateLiteral"?e.quasis.map(r=>r.cooked).join("*"):"?"}visitTsType(e){return e}extractApiCall(e,r,i=""){if(r.length>0){let t=r[0].expression,o=this.resolveUrlValue(t);if(o!=="?"){if(i&&i!=="?"){let s=i.endsWith("/")||o.startsWith("/")?"":"/";o=`${i}${s}${o}`}this.apiCalls.push({method:e.toUpperCase(),url:o})}}}},Qt=class{calls=new Set;apiCalls=[];imports=new Map;visit(e,r){if(r===".php"){let i=/(?:([a-zA-Z0-9_$->:\(\)]*)?(?:->|::))?([a-zA-Z0-9_]+)\s*\(([\s\S]*?)\)/g,t;for(;(t=i.exec(e))!==null;){let o=t[1]||"",s=t[2],a=t[3];if(this.calls.add(s),o&&!["$this","self","parent"].includes(o)&&this.calls.add(`${o}${o.includes("::")?"::":"->"}${s}`),["save","delete","update","create","first","all","where","get","find"].includes(s)&&o&&!["Log","Route","Cache","Config","Http"].includes(o)&&this.apiCalls.push({method:"DB",url:`${o}->${s}()`}),s==="publish"&&o&&(o.includes("topic")||o.includes("pubSub"))&&this.apiCalls.push({method:"PUBSUB",url:"publish"}),["get","post","put","delete","patch","request"].includes(s)&&(o==="Http"||o==="client"||o.endsWith("request")||o.includes("Client")||!o)){let u=a.match(/(?:url\s*:\s*)?['"]([^'"]+)['"]/),d=u?u[1]:a.split(",")[0].trim()||"unknown";this.apiCalls.push({method:s.toUpperCase(),url:d})}}}else if(r===".py"){let i=/(?:([a-zA-Z0-9_\.]+)\.)?([a-zA-Z0-9_]+)\s*\(([\s\S]*?)\)/g,t;for(;(t=i.exec(e))!==null;){let o=t[1]||"",s=t[2],a=t[3];if(this.calls.add(s),o&&o!=="self"&&o!=="cls"&&this.calls.add(`${o}.${s}`),["save","delete","update","create","first","all","filter","get"].includes(s)&&o&&!["logger","os","sys"].includes(o)&&this.apiCalls.push({method:"DB",url:`${o}.${s}()`}),s==="publish"&&o&&(o.includes("publisher")||o.includes("client"))&&this.apiCalls.push({method:"PUBSUB",url:"publish"}),["get","post","put","delete","patch","request"].includes(s)&&(o==="requests"||o==="httpx"||o==="client"||o==="http"||!o)){let u=a.match(/(?:url\s*:\s*)?['"]([^'"]+)['"]/),d=u?u[1]:a.split(",")[0].trim()||"unknown";this.apiCalls.push({method:s.toUpperCase(),url:d})}}}else if([".ts",".tsx",".js",".jsx"].includes(r)){let i=/import\s+[\s\S]*?from\s+['"](.*?)['"];?/g,t;for(;(t=i.exec(e))!==null;)this.imports.set("*",t[1]);let o=/(?:([a-zA-Z0-9_$]+)\.)?([a-zA-Z0-9_$]+)\s*\(/g,s;for(;(s=o.exec(e))!==null;){let a=s[1],c=s[2];a?(this.calls.add(`${a}.${c}`),(a.toLowerCase().includes("pubsub")||a==="pubSubClient")&&c!=="subscribe"&&this.apiCalls.push({method:"PUBSUB",url:c})):this.calls.add(c)}}else{let i=/\.([a-zA-Z0-9_]+)\s*\(/g,t;for(;(t=i.exec(e))!==null;)this.calls.add(t[1])}if(r===".php"){let i=/use\s+([a-zA-Z0-9_\\]+)(?:\s+as\s+([a-zA-Z0-9_]+))?;/g,t;for(;(t=i.exec(e))!==null;){let o=t[1],s=o.split("\\"),a=t[2]||s[s.length-1];this.imports.set(a,o)}}else if(r===".py"){let i=/from\s+([a-zA-Z0-9_\.]+)\s+import\s+([a-zA-Z0-9_,\s]+)/g,t;for(;(t=i.exec(e))!==null;){let a=t[1];t[2].split(",").map(l=>l.trim()).forEach(l=>{this.imports.set(l,a)})}let o=/^import\s+([a-zA-Z0-9_\.]+)/gm,s;for(;(s=o.exec(e))!==null;){let a=s[1],c=a.split("."),l=c[c.length-1];this.imports.set(l,a)}}}};J();import o$ from"path";J();dt();import KS from"better-sqlite3";import sr from"path";import Hg from"fs";import YS from"os";import XS from"crypto";var QS=$.child({module:"fusion-connection"}),Go=5,e$=1,Wg=["files","exports","imports","configs","schema_migrations"],Jo=class{fusionDb;attachedRepos=new Map;fusionDbPath;name;constructor(e){this.name=e.name,this.fusionDbPath=this.getFusionDbPath(e.name),QS.info({name:e.name,path:this.fusionDbPath},"Initializing fused index connection");let r=sr.dirname(this.fusionDbPath);Hg.existsSync(r)||Hg.mkdirSync(r,{recursive:!0}),this.fusionDb=new KS(this.fusionDbPath),this.fusionDb.pragma("journal_mode = WAL"),this.fusionDb.pragma("busy_timeout = 5000"),this.initFusionSchema();for(let i of e.repoPaths)this.attachRepo(i)}getFusionDbPath(e){let r=YS.homedir(),i=sr.join(r,".mcp-liquid-shadow","fused"),t=e.replace(/[^a-zA-Z0-9-_]/g,"_");return sr.join(i,`${t}.db`)}initFusionSchema(){this.fusionDb.exec(`
752
668
  CREATE TABLE IF NOT EXISTS fused_repos (
753
669
  alias TEXT PRIMARY KEY,
754
670
  repo_path TEXT NOT NULL UNIQUE,
@@ -782,64 +698,375 @@ Target Symbol: ${a.name}
782
698
 
783
699
  CREATE INDEX IF NOT EXISTS idx_virtual_edges_source ON virtual_edges(source_repo, source_file_path);
784
700
  CREATE INDEX IF NOT EXISTS idx_virtual_edges_target ON virtual_edges(target_repo, target_file_path);
785
- `),this.fusionDb.prepare("INSERT OR REPLACE INTO fused_metadata (key, value, updated_at) VALUES ('schema_version', ?, unixepoch())").run(wl.toString())}attachRepo(e){let t=$t.resolve(e);if(this.attachedRepos.has(t))return;if(!He(t))throw new Error(`Repository "${t}" is not indexed. Run shadow_recon_onboard({ repoPath: "${t}" }) then shadow_sync_trace({ repoPath: "${t}" }).`);let n=We(t),s=n.name;this.validateSchemaCompatibility(n,t);let r=this.getSchemaVersion(n),o=this.generateAlias(t),c=3,a=100;for(let l=1;l<=c;l++)try{this.fusionDb.exec(`ATTACH DATABASE '${s}' AS ${o}`);let p={alias:o,repoPath:t,dbPath:s,schemaVersion:r,attached:!0};this.attachedRepos.set(t,p),this.fusionDb.prepare(`INSERT OR REPLACE INTO fused_repos (alias, repo_path, db_path, schema_version, attached_at, last_validated_at)
786
- VALUES (?, ?, ?, ?, unixepoch(), unixepoch())`).run(o,t,s,r);return}catch(p){let u=p instanceof Error?p.message.toLowerCase():String(p).toLowerCase();if((u.includes("locked")||u.includes("busy"))&&l<c){this.sleep(a*l);continue}throw p}}checkHealth(){let e=[];for(let t of this.attachedRepos.values())try{this.fusionDb.prepare(`SELECT 1 FROM ${t.alias}.files LIMIT 1`).get(),e.push({alias:t.alias,repoPath:t.repoPath,accessible:!0})}catch(n){e.push({alias:t.alias,repoPath:t.repoPath,accessible:!1,error:n instanceof Error?n.message:String(n)})}return{healthy:e.every(t=>t.accessible),repos:e}}detachRepo(e){let t=$t.resolve(e),n=this.attachedRepos.get(t);n&&(this.fusionDb.exec(`DETACH DATABASE ${n.alias}`),this.attachedRepos.delete(t),this.fusionDb.prepare("DELETE FROM fused_repos WHERE repo_path = ?").run(t))}refreshRepo(e){this.detachRepo(e),this.attachRepo(e)}refreshAll(){let e=Array.from(this.attachedRepos.keys());for(let t of e)this.refreshRepo(t)}validateSchemas(){let e=Array.from(this.attachedRepos.values()).map(t=>{let n=We(t.repoPath),s=Po.filter(o=>!this.checkTableExists(n,o)),r=this.getSchemaVersion(n);return{alias:t.alias,repoPath:t.repoPath,schemaVersion:r,compatible:r>=Xn&&s.length===0,missingTables:s}});return{valid:e.every(t=>t.compatible),minVersion:Xn,repos:e}}getAttachedRepos(){return Array.from(this.attachedRepos.values())}prepare(e){return this.fusionDb.prepare(e)}exec(e){this.fusionDb.exec(e)}close(){for(let e of this.attachedRepos.values())try{this.fusionDb.exec(`DETACH DATABASE ${e.alias}`)}catch{}this.attachedRepos.clear(),this.fusionDb.open&&this.fusionDb.close()}generateAlias(e){let t=$t.basename(e).replace(/[^a-zA-Z0-9]/g,"_").toLowerCase(),n=El.createHash("sha256").update(e).digest("hex").substring(0,6);return`repo_${t}_${n}`}getSchemaVersion(e){try{return e.prepare("SELECT MAX(version) as version FROM schema_migrations").get()?.version||0}catch{return 0}}validateSchemaCompatibility(e,t){let n=this.getSchemaVersion(e);if(n<Xn)throw new Error(`Schema version mismatch for ${t}. Expected >= ${Xn}, got ${n}.`);let s=Po.filter(r=>!this.checkTableExists(e,r));if(s.length>0)throw new Error(`Missing tables in ${t}: ${s.join(", ")}`)}checkTableExists(e,t){try{return!!e.prepare("SELECT name FROM sqlite_master WHERE type='table' AND name=?").get(t)}catch{return!1}}sleep(e){let t=Date.now()+e;for(;Date.now()<t;);}get nameValue(){return this.name}get dbPath(){return this.fusionDbPath}};W();var nt=S.child({module:"edge-scanner"});function qs(i){let e=i.split("?")[0].split("#")[0];return e.length>1&&e.endsWith("/")&&(e=e.slice(0,-1)),e}function xl(i){if(!i)return null;try{let e=JSON.parse(i);return e.path||e.name||null}catch{return null}}function vl(i,e){let t=qs(i),n=qs(e);if(t===n)return!0;let s=n.replace(/:[^/]+/g,"[^/]+").replace(/\{[^}]+\}/g,"[^/]+").replace(/\$[^/]+/g,"[^/]+");return new RegExp(`^${s}$`).test(t)}function Tl(i){nt.info("Starting HTTP gap detection scan");let e=i.getAttachedRepos();if(e.length<2)return nt.warn("Need at least 2 repos for cross-repo dependency detection"),0;let t=[];for(let r of e)try{let o=`
701
+ `),this.fusionDb.prepare("INSERT OR REPLACE INTO fused_metadata (key, value, updated_at) VALUES ('schema_version', ?, unixepoch())").run(e$.toString())}attachRepo(e){let r=sr.resolve(e);if(this.attachedRepos.has(r))return;if(!Oe(r))throw new Error(`Repository "${r}" is not indexed. Run shadow_recon_onboard({ repoPath: "${r}" }) then shadow_sync_trace({ repoPath: "${r}" }).`);let i=We(r),t=i.name;this.validateSchemaCompatibility(i,r);let o=this.getSchemaVersion(i),s=this.generateAlias(r),a=3,c=100;for(let l=1;l<=a;l++)try{this.fusionDb.exec(`ATTACH DATABASE '${t}' AS ${s}`);let u={alias:s,repoPath:r,dbPath:t,schemaVersion:o,attached:!0};this.attachedRepos.set(r,u),this.fusionDb.prepare(`INSERT OR REPLACE INTO fused_repos (alias, repo_path, db_path, schema_version, attached_at, last_validated_at)
702
+ VALUES (?, ?, ?, ?, unixepoch(), unixepoch())`).run(s,r,t,o);return}catch(u){let d=u instanceof Error?u.message.toLowerCase():String(u).toLowerCase();if((d.includes("locked")||d.includes("busy"))&&l<a){this.sleep(c*l);continue}throw u}}checkHealth(){let e=[];for(let r of this.attachedRepos.values())try{this.fusionDb.prepare(`SELECT 1 FROM ${r.alias}.files LIMIT 1`).get(),e.push({alias:r.alias,repoPath:r.repoPath,accessible:!0})}catch(i){e.push({alias:r.alias,repoPath:r.repoPath,accessible:!1,error:i instanceof Error?i.message:String(i)})}return{healthy:e.every(r=>r.accessible),repos:e}}detachRepo(e){let r=sr.resolve(e),i=this.attachedRepos.get(r);i&&(this.fusionDb.exec(`DETACH DATABASE ${i.alias}`),this.attachedRepos.delete(r),this.fusionDb.prepare("DELETE FROM fused_repos WHERE repo_path = ?").run(r))}refreshRepo(e){this.detachRepo(e),this.attachRepo(e)}refreshAll(){let e=Array.from(this.attachedRepos.keys());for(let r of e)this.refreshRepo(r)}validateSchemas(){let e=Array.from(this.attachedRepos.values()).map(r=>{let i=We(r.repoPath),t=Wg.filter(s=>!this.checkTableExists(i,s)),o=this.getSchemaVersion(i);return{alias:r.alias,repoPath:r.repoPath,schemaVersion:o,compatible:o>=Go&&t.length===0,missingTables:t}});return{valid:e.every(r=>r.compatible),minVersion:Go,repos:e}}getAttachedRepos(){return Array.from(this.attachedRepos.values())}prepare(e){return this.fusionDb.prepare(e)}exec(e){this.fusionDb.exec(e)}close(){for(let e of this.attachedRepos.values())try{this.fusionDb.exec(`DETACH DATABASE ${e.alias}`)}catch{}this.attachedRepos.clear(),this.fusionDb.open&&this.fusionDb.close()}generateAlias(e){let r=sr.basename(e).replace(/[^a-zA-Z0-9]/g,"_").toLowerCase(),i=XS.createHash("sha256").update(e).digest("hex").substring(0,6);return`repo_${r}_${i}`}getSchemaVersion(e){try{return e.prepare("SELECT MAX(version) as version FROM schema_migrations").get()?.version||0}catch{return 0}}validateSchemaCompatibility(e,r){let i=this.getSchemaVersion(e);if(i<Go)throw new Error(`Schema version mismatch for ${r}. Expected >= ${Go}, got ${i}.`);let t=Wg.filter(o=>!this.checkTableExists(e,o));if(t.length>0)throw new Error(`Missing tables in ${r}: ${t.join(", ")}`)}checkTableExists(e,r){try{return!!e.prepare("SELECT name FROM sqlite_master WHERE type='table' AND name=?").get(r)}catch{return!1}}sleep(e){let r=Date.now()+e;for(;Date.now()<r;);}get nameValue(){return this.name}get dbPath(){return this.fusionDbPath}};J();var en=$.child({module:"edge-scanner"});function Gc(n){let e=n.split("?")[0].split("#")[0];return e.length>1&&e.endsWith("/")&&(e=e.slice(0,-1)),e}function t$(n){if(!n)return null;try{let e=JSON.parse(n);return e.path||e.name||null}catch{return null}}function n$(n,e){let r=Gc(n),i=Gc(e);if(r===i)return!0;let t=i.replace(/:[^/]+/g,"[^/]+").replace(/\{[^}]+\}/g,"[^/]+").replace(/\$[^/]+/g,"[^/]+");return new RegExp(`^${t}$`).test(r)}function r$(n){en.info("Starting HTTP gap detection scan");let e=n.getAttachedRepos();if(e.length<2)return en.warn("Need at least 2 repos for cross-repo dependency detection"),0;let r=[];for(let o of e)try{let s=`
787
703
  SELECT id, name, file_path, capabilities
788
- FROM ${r.alias}.exports
704
+ FROM ${o.alias}.exports
789
705
  WHERE kind = 'HTTP Route'
790
- `,c=i.executeRawQuery(o);for(let a of c){let l=xl(a.capabilities)||a.name;l&&l.startsWith("/")&&t.push({repo:r.alias,repoPath:r.repoPath,filePath:a.file_path,symbolId:a.id,routePath:l})}}catch(o){nt.warn({repo:r.alias,error:o},"Failed to query backend routes")}nt.debug({count:t.length},"Found backend routes");let n=[];for(let r of e)try{let o=`
706
+ `,a=n.executeRawQuery(s);for(let c of a){let l=t$(c.capabilities)||c.name;l&&l.startsWith("/")&&r.push({repo:o.alias,repoPath:o.repoPath,filePath:c.file_path,symbolId:c.id,routePath:l})}}catch(s){en.warn({repo:o.alias,error:s},"Failed to query backend routes")}en.debug({count:r.length},"Found backend routes");let i=[];for(let o of e)try{let s=`
791
707
  SELECT file_path, name
792
- FROM ${r.alias}.event_synapses
708
+ FROM ${o.alias}.event_synapses
793
709
  WHERE type = 'api_route' AND direction = 'produce'
794
- `,c=i.executeRawQuery(o);for(let a of c){let l=qs(a.name);l&&l.startsWith("/")&&n.push({repo:r.alias,repoPath:r.repoPath,filePath:a.file_path,routePath:l})}}catch(o){nt.warn({repo:r.alias,error:o},"Failed to query frontend API calls")}nt.debug({count:n.length},"Found frontend API calls");let s=0;for(let r of n)for(let o of t)if(r.repoPath!==o.repoPath&&vl(r.routePath,o.routePath))try{i.addVirtualEdge({sourceRepo:r.repoPath,sourceFilePath:r.filePath,targetRepo:o.repoPath,targetFilePath:o.filePath,targetSymbolId:o.symbolId,relationship:"api_call",metadata:{frontendPath:r.routePath,backendPath:o.routePath,method:o.method},confidence:1}),s++}catch(c){nt.debug({source:r.filePath,target:o.filePath,error:c},"Skipped duplicate edge")}return nt.info({edgesCreated:s,backendRoutes:t.length,frontendCalls:n.length},"HTTP gap detection scan completed"),s}function Mo(i){let e=Tl(i);return{httpGaps:e,totalEdges:e}}W();var Rl=S.child({module:"fusion-index-service"}),es=class{constructor(e){this.connection=e}executeFederatedQuery(e,...t){return this.connection.prepare(e).all(...t).map(r=>{let{_repo_alias:o,_repo_path:c,...a}=r;return{repo:o,repoPath:c,data:a}})}executeRawQuery(e,...t){return this.connection.prepare(e).all(...t)}buildAdvancedQuery(e){let t=this.connection.getAttachedRepos();if(t.length===0)throw new Error("No repositories attached");let{table:n,tableAlias:s,columns:r,joins:o,where:c,groupBy:a,having:l,orderBy:p,limit:u,offset:d}=e,m=s||n.charAt(0),h=r.join(", "),_=t.map(b=>{let y=`${b.alias}.${n} ${m}`,E="";o&&o.length>0&&(E=o.map(k=>{let N=k.alias||k.table.charAt(0);return`${k.type} JOIN ${b.alias}.${k.table} ${N} ON ${k.on}`}).join(`
795
- `));let w=c?`WHERE ${c}`:"",x=a&&a.length>0?`GROUP BY ${a.join(", ")}`:"",v=l?`HAVING ${l}`:"";return`SELECT '${b.alias}' as _repo_alias, '${b.repoPath}' as _repo_path, ${h} FROM ${y} ${E} ${w} ${x} ${v}`.trim()}).join(`
710
+ `,a=n.executeRawQuery(s);for(let c of a){let l=Gc(c.name);l&&l.startsWith("/")&&i.push({repo:o.alias,repoPath:o.repoPath,filePath:c.file_path,routePath:l})}}catch(s){en.warn({repo:o.alias,error:s},"Failed to query frontend API calls")}en.debug({count:i.length},"Found frontend API calls");let t=0;for(let o of i)for(let s of r)if(o.repoPath!==s.repoPath&&n$(o.routePath,s.routePath))try{n.addVirtualEdge({sourceRepo:o.repoPath,sourceFilePath:o.filePath,targetRepo:s.repoPath,targetFilePath:s.filePath,targetSymbolId:s.symbolId,relationship:"api_call",metadata:{frontendPath:o.routePath,backendPath:s.routePath,method:s.method},confidence:1}),t++}catch(a){en.debug({source:o.filePath,target:s.filePath,error:a},"Skipped duplicate edge")}return en.info({edgesCreated:t,backendRoutes:r.length,frontendCalls:i.length},"HTTP gap detection scan completed"),t}function Bg(n){let e=r$(n);return{httpGaps:e,totalEdges:e}}J();var i$=$.child({module:"fusion-index-service"}),qo=class{constructor(e){this.connection=e}executeFederatedQuery(e,...r){return this.connection.prepare(e).all(...r).map(o=>{let{_repo_alias:s,_repo_path:a,...c}=o;return{repo:s,repoPath:a,data:c}})}executeRawQuery(e,...r){return this.connection.prepare(e).all(...r)}buildAdvancedQuery(e){let r=this.connection.getAttachedRepos();if(r.length===0)throw new Error("No repositories attached");let{table:i,tableAlias:t,columns:o,joins:s,where:a,groupBy:c,having:l,orderBy:u,limit:d,offset:p}=e,f=t||i.charAt(0),m=o.join(", "),v=r.map(b=>{let g=`${b.alias}.${i} ${f}`,x="";s&&s.length>0&&(x=s.map(z=>{let R=z.alias||z.table.charAt(0);return`${z.type} JOIN ${b.alias}.${z.table} ${R} ON ${z.on}`}).join(`
711
+ `));let S=a?`WHERE ${a}`:"",E=c&&c.length>0?`GROUP BY ${c.join(", ")}`:"",w=l?`HAVING ${l}`:"";return`SELECT '${b.alias}' as _repo_alias, '${b.repoPath}' as _repo_path, ${m} FROM ${g} ${x} ${S} ${E} ${w}`.trim()}).join(`
796
712
  UNION ALL
797
- `);return p&&(_=`SELECT * FROM (${_}) AS federated_results ORDER BY ${p}`),u!==void 0&&(_+=` LIMIT ${u}`),d!==void 0&&(_+=` OFFSET ${d}`),_}buildFtsQuery(e,t,n,s,r=50){let o=this.connection.getAttachedRepos();if(o.length===0)throw new Error("No repositories attached");let c=n.replace(/"/g,'""'),a=s.map(p=>`c.${p}`).join(", ");return`${o.map(p=>`
798
- SELECT '${p.alias}' as _repo_alias, '${p.repoPath}' as _repo_path, ${a}, bm25(${p.alias}.${e}) as _fts_rank
799
- FROM ${p.alias}.${e} fts
800
- JOIN ${p.alias}.${t} c ON fts.rowid = c.id
801
- WHERE ${p.alias}.${e} MATCH '"${c}"'`).join(`
713
+ `);return u&&(v=`SELECT * FROM (${v}) AS federated_results ORDER BY ${u}`),d!==void 0&&(v+=` LIMIT ${d}`),p!==void 0&&(v+=` OFFSET ${p}`),v}buildFtsQuery(e,r,i,t,o=50){let s=this.connection.getAttachedRepos();if(s.length===0)throw new Error("No repositories attached");let a=i.replace(/"/g,'""'),c=t.map(u=>`c.${u}`).join(", ");return`${s.map(u=>`
714
+ SELECT '${u.alias}' as _repo_alias, '${u.repoPath}' as _repo_path, ${c}, bm25(${u.alias}.${e}) as _fts_rank
715
+ FROM ${u.alias}.${e} fts
716
+ JOIN ${u.alias}.${r} c ON fts.rowid = c.id
717
+ WHERE ${u.alias}.${e} MATCH '"${a}"'`).join(`
802
718
  UNION ALL
803
- `)} ORDER BY _fts_rank LIMIT ${r}`}buildCrossRepoImportsQuery(){let e=this.connection.getAttachedRepos();if(e.length<2)throw new Error("Cross-repo analysis requires at least 2 attached repositories");let t=[];for(let n of e)for(let s of e)n.alias!==s.alias&&t.push(`
719
+ `)} ORDER BY _fts_rank LIMIT ${o}`}buildCrossRepoImportsQuery(){let e=this.connection.getAttachedRepos();if(e.length<2)throw new Error("Cross-repo analysis requires at least 2 attached repositories");let r=[];for(let i of e)for(let t of e)i.alias!==t.alias&&r.push(`
804
720
  SELECT
805
- '${n.alias}' as source_repo, '${n.repoPath}' as source_repo_path,
721
+ '${i.alias}' as source_repo, '${i.repoPath}' as source_repo_path,
806
722
  i.file_path as source_file, i.module_specifier, i.imported_symbols,
807
- '${s.alias}' as target_repo, '${s.repoPath}' as target_repo_path,
723
+ '${t.alias}' as target_repo, '${t.repoPath}' as target_repo_path,
808
724
  f.path as target_file
809
- FROM ${n.alias}.imports i
810
- JOIN ${s.alias}.files f ON i.resolved_path = f.path
811
- WHERE i.resolved_path IS NOT NULL`);return t.join(`
725
+ FROM ${i.alias}.imports i
726
+ JOIN ${t.alias}.files f ON i.resolved_path = f.path
727
+ WHERE i.resolved_path IS NOT NULL`);return r.join(`
812
728
  UNION ALL
813
- `)}buildUnionQuery(e,t,n){let s=this.connection.getAttachedRepos();if(s.length===0)throw new Error("No repositories attached");let r=t.join(", "),o=n?` WHERE ${n}`:"";return s.map(c=>`SELECT '${c.alias}' as _repo_alias, '${c.repoPath}' as _repo_path, ${r} FROM ${c.alias}.${e}${o}`).join(`
729
+ `)}buildUnionQuery(e,r,i){let t=this.connection.getAttachedRepos();if(t.length===0)throw new Error("No repositories attached");let o=r.join(", "),s=i?` WHERE ${i}`:"";return t.map(a=>`SELECT '${a.alias}' as _repo_alias, '${a.repoPath}' as _repo_path, ${o} FROM ${a.alias}.${e}${s}`).join(`
814
730
  UNION ALL
815
- `)}searchExports(e,t=50){let n=this.buildUnionQuery("exports",["id","name","kind","file_path","signature"],"name LIKE ?")+` LIMIT ${t*this.connection.getAttachedRepos().length}`,s=Array(this.connection.getAttachedRepos().length).fill(`%${e}%`);return this.executeFederatedQuery(n,...s)}searchFiles(e,t=50){let n=this.buildUnionQuery("files",["path","classification","content_hash"],"path LIKE ?")+` LIMIT ${t*this.connection.getAttachedRepos().length}`,s=Array(this.connection.getAttachedRepos().length).fill(`%${e}%`);return this.executeFederatedQuery(n,...s)}getVirtualEdges(e,t){let n="SELECT * FROM virtual_edges WHERE 1=1",s=[];return e&&(n+=" AND source_repo = ?",s.push(e)),t&&(n+=" AND target_repo = ?",s.push(t)),this.connection.prepare(n).all(...s)}addVirtualEdge(e){return this.connection.prepare(`
731
+ `)}searchExports(e,r=50){let i=this.buildUnionQuery("exports",["id","name","kind","file_path","signature"],"name LIKE ?")+` LIMIT ${r*this.connection.getAttachedRepos().length}`,t=Array(this.connection.getAttachedRepos().length).fill(`%${e}%`);return this.executeFederatedQuery(i,...t)}searchFiles(e,r=50){let i=this.buildUnionQuery("files",["path","classification","content_hash"],"path LIKE ?")+` LIMIT ${r*this.connection.getAttachedRepos().length}`,t=Array(this.connection.getAttachedRepos().length).fill(`%${e}%`);return this.executeFederatedQuery(i,...t)}getVirtualEdges(e,r){let i="SELECT * FROM virtual_edges WHERE 1=1",t=[];return e&&(i+=" AND source_repo = ?",t.push(e)),r&&(i+=" AND target_repo = ?",t.push(r)),this.connection.prepare(i).all(...t)}addVirtualEdge(e){return this.connection.prepare(`
816
732
  INSERT INTO virtual_edges
817
733
  (source_repo, source_file_path, source_symbol_id, target_repo, target_file_path, target_symbol_id, relationship, metadata, confidence, updated_at)
818
734
  VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, unixepoch())
819
- `).run(e.sourceRepo,e.sourceFilePath,e.sourceSymbolId||null,e.targetRepo,e.targetFilePath,e.targetSymbolId||null,e.relationship,e.metadata?JSON.stringify(e.metadata):null,e.confidence??1).lastInsertRowid}scanEdges(){return Rl.info({name:this.connection.nameValue},"Starting edge scan"),Mo(this)}getAttachedRepos(){return this.connection.getAttachedRepos()}get name(){return this.connection.nameValue}};var Do=S.child({module:"fused-index"}),Ys=class{connection;service;configName;constructor(e){this.configName=e.name,this.connection=new Zn(e),this.service=new es(this.connection)}attachRepo(e){this.connection.attachRepo(e)}detachRepo(e){this.connection.detachRepo(e)}refreshRepo(e){this.connection.refreshRepo(e)}getAttachedRepos(){return this.connection.getAttachedRepos()}checkHealth(){return this.connection.checkHealth()}close(){this.connection.close(),Do.info({name:this.configName},"Fused index closed")}getStatus(){let e=this.service.executeRawQuery("SELECT COUNT(*) as count FROM virtual_edges");return{name:this.connection.nameValue,path:this.connection.dbPath,attachedRepos:this.connection.getAttachedRepos().length,repos:this.connection.getAttachedRepos(),virtualEdgesCount:e[0]?.count||0}}searchExports(e,t=50){return this.service.searchExports(e,t)}searchFiles(e,t=50){return this.service.searchFiles(e,t)}getVirtualEdges(e,t){return this.service.getVirtualEdges(e,t)}addVirtualEdge(e){return this.service.addVirtualEdge(e)}scanEdges(){return this.service.scanEdges()}buildUnionQuery(e,t,n){return this.service.buildUnionQuery(e,t,n)}executeFederatedQuery(e,...t){return this.service.executeFederatedQuery(e,...t)}executeRawQuery(e,...t){return this.service.executeRawQuery(e,...t)}buildAdvancedQuery(e){return this.service.buildAdvancedQuery(e)}buildFtsQuery(e,t,n,s,r){return this.service.buildFtsQuery(e,t,n,s,r)}buildCrossRepoImportsQuery(){return this.service.buildCrossRepoImportsQuery()}refreshAll(){this.connection.refreshAll()}validateSchemas(){return Do.debug({name:this.configName},"Delegating validateSchemas"),this.connection.validateSchemas()}},Js=new Map;function Oo(i){let e=Js.get(i.name);if(e){let n=new Set(e.getAttachedRepos().map(o=>o.repoPath)),s=new Set(i.repoPaths.map(o=>kl.resolve(o)));if(n.size===s.size&&[...n].every(o=>s.has(o)))return e;e.close(),Js.delete(i.name)}let t=new Ys(i);return Js.set(i.name,t),t}W();var Il=S.child({module:"mcp:tools:workspace:fuse"});async function Fo(i){let{repoPaths:e,name:t}=i;Il.info({repoCount:e.length,name:t},"Creating fused workspace index");try{let n=Oo({repoPaths:e,name:t||`workspace-${Date.now()}`});return{content:[{type:"text",text:JSON.stringify({message:"Fused index created",status:n.getStatus()},null,2)}]}}catch(n){throw new Error(`Failed to fuse: ${n.message}`)}}import ts from"path";async function Wo(i){let[e,...t]=i;if(!e||!["missions","link","fuse"].includes(e)){console.log(""),console.log(` ${f.bold("Usage: ")} liquid-shadow workspace <missions|link> [options]`),console.log(""),console.log(` ${f.bold("Commands: ")}`),console.log(` ${f.cyan("missions")} <paths...> Get unified view of missions across repositories`),console.log(` ${f.cyan("link")} <args...> Link missions across repositories`),console.log(` ${f.cyan("fuse")} <paths...> Create fused index for cross-repo search (use --name for custom name)`),console.log(""),console.log(` ${f.bold("Examples: ")}`),console.log(" liquid-shadow workspace missions /frontend /backend"),console.log(" liquid-shadow workspace link /frontend 5 /backend 12"),console.log(" liquid-shadow workspace fuse /frontend /backend --name my-app"),console.log("");return}await B(async()=>{switch(e){case"missions":{if(t.length===0){console.error(` ${f.red("\u2716")} Please provide at least one repository path`);return}let n=t.map(r=>ts.resolve(r)),s=await $o({repoPaths:n});if(console.log(""),console.log(` ${f.bold("Workspace Missions")}`),console.log(""),s.content&&s.content[0]){let r=JSON.parse(s.content[0].text);r.missions&&r.missions.length>0?r.missions.forEach(o=>{console.log(` ${f.cyan("\u2022")} ${f.bold(o.name)} (ID: ${o.id})`),console.log(` ${f.dim("Repo: ")} ${o.repo_path}`),console.log(` ${f.dim("Status: ")} ${o.status}`),console.log(` ${f.dim("Branch: ")} ${o.git_branch||"N/A"}`),o.cross_repo_links&&o.cross_repo_links.length>0&&console.log(` ${f.dim("Links: ")} ${o.cross_repo_links.length} cross-repo link(s)`),console.log("")}):(console.log(` ${f.yellow("\u26A0")} No missions found`),console.log(""))}break}case"link":{if(t.length<4){console.error(""),console.error(` ${f.red("\u2716")} Usage: workspace link <parent-repo> <parent-id> <child-repo> <child-id> [relationship]`),console.error("");return}let[n,s,r,o,c]=t;await No({parentRepoPath:ts.resolve(n),parentMissionId:parseInt(s,10),childRepoPath:ts.resolve(r),childMissionId:parseInt(o,10),relationship:c}),console.log(""),console.log(` ${f.green("\u2714")} ${f.bold("Missions linked successfully")}`),console.log(` ${f.dim("Parent: ")} ${n} (Mission ${s})`),console.log(` ${f.dim("Child: ")} ${r} (Mission ${o})`),c&&console.log(` ${f.dim("Relationship: ")} ${c}`),console.log("");break}case"fuse":{if(t.length===0){console.error(` ${f.red("\u2716")} Please provide at least one repository path`);return}let n,s=[];for(let o=0;o<t.length;o++)t[o]==="--name"&&o+1<t.length?(n=t[o+1],o++):s.push(ts.resolve(t[o]));let r=await Fo({repoPaths:s,name:n});if(console.log(""),console.log(` ${f.green("\u2714")} ${f.bold("Fused Index Created")}`),r.content&&r.content[0]){let o=JSON.parse(r.content[0].text);console.log(` ${f.dim("Name: ")} ${o.fused_index.name}`),console.log(` ${f.dim("Path: ")} ${o.fused_index.path}`),console.log(` ${f.dim("Repos: ")} ${o.fused_index.attachedRepos}`),console.log(""),console.log(` ${f.bold("Instructions:")}`),console.log(` ${o.instructions}`)}console.log("");break}}})}W();W();var Cl=S.child({module:"strategy-normalizer"}),je=class{static normalize(e){if(!e)return{steps:[]};let t;if(typeof e=="string")try{t=JSON.parse(e)}catch(s){return Cl.warn({strategyInput:e,err:s},"Failed to parse strategy JSON"),{steps:[]}}else t=e;return{steps:this.normalizeSteps(t)}}static normalizeSteps(e){return Array.isArray(e)?e.map((t,n)=>typeof t=="string"?{id:`step-${n}`,description:t,status:"pending"}:typeof t=="object"&&t!==null?{id:t.id||`step-${n}`,description:t.description||t.content||t.name||`Step ${n+1}`,status:t.status||"pending",dependencies:t.dependencies||t.deps,verification:t.verification,...t}:{id:`step-${n}`,description:String(t),status:"pending"}):e.steps&&Array.isArray(e.steps)?this.normalizeSteps(e.steps):typeof e=="object"?Object.entries(e).map(([t,n],s)=>typeof n=="string"?{id:t,description:n,status:"pending"}:typeof n=="object"&&n!==null?{id:t,description:n.description||n.content||n.name||t,status:n.status||"pending",dependencies:n.dependencies||n.deps,verification:n.verification,...n}:{id:t||`step-${s}`,description:String(n),status:"pending"}):[]}static stringify(e){return JSON.stringify(e,null,2)}static validate(e){let t=[];if(!e)return{valid:!0,errors:[]};try{let n=this.normalize(e),s=new Set;for(let r of n.steps)if(s.has(r.id)&&t.push(`Duplicate step ID: ${r.id}`),s.add(r.id),r.dependencies)for(let o of r.dependencies)s.has(o)||t.push(`Step "${r.id}" depends on non-existent step "${o}"`);return{valid:t.length===0,errors:t}}catch(n){return t.push(`Strategy validation failed: ${n instanceof Error?n.message:String(n)}`),{valid:!1,errors:t}}}};W();import Vs from"fs";import Ho from"path";import Ll from"os";var $l=[{id:"step-0",description:"Analyze impact: identify dependents and call sites",status:"pending"},{id:"step-1",description:"Implement refactor and update call sites",status:"pending"},{id:"step-2",description:"Run tests and verify behavior; update docs if needed",status:"pending"}],Nl=[{id:"step-0",description:"Capture requirements and acceptance criteria",status:"pending"},{id:"step-1",description:"Implement feature with tests",status:"pending"},{id:"step-2",description:"Integrate and verify end-to-end",status:"pending"}],Al=[{id:"step-0",description:"Reproduce the bug and document steps",status:"pending"},{id:"step-1",description:"Diagnose root cause and plan fix",status:"pending"},{id:"step-2",description:"Apply fix and add/update regression test",status:"pending"},{id:"step-3",description:"Verify fix and run full test suite",status:"pending"}],Uo=[{id:"refactoring",name:"Refactoring",description:"Impact analysis \u2192 implementation \u2192 verification",defaultGoal:"Refactor {{target}} safely with full impact analysis and verification.",steps:$l},{id:"feature",name:"Feature",description:"Requirements \u2192 implementation \u2192 testing",defaultGoal:"Implement {{target}} with clear requirements and end-to-end verification.",steps:Nl},{id:"bug-fix",name:"Bug fix",description:"Reproduction \u2192 diagnosis \u2192 fix \u2192 regression test",defaultGoal:"Fix {{target}}: reproduce, diagnose, fix, and add regression test.",steps:Al}],Qs=new Map(Uo.map(i=>[i.id,i])),ns=!1;function Pl(){if(ns)return;let i=Ho.join(Ll.homedir(),".shadow","templates");if(!Vs.existsSync(i)){S.debug({templatesDir:i},"Custom templates directory does not exist"),ns=!0;return}try{let e=Vs.readdirSync(i).filter(t=>t.endsWith(".json"));for(let t of e)try{let n=Ho.join(i,t),s=Vs.readFileSync(n,"utf8"),r=JSON.parse(s);if(!r.id||!r.name||!r.defaultGoal||!r.steps){S.warn({file:t,template:r},"Invalid custom template structure - skipping");continue}if(!Array.isArray(r.steps)||r.steps.length===0){S.warn({file:t},"Template has no steps - skipping");continue}if(Uo.some(o=>o.id===r.id)){S.warn({file:t,templateId:r.id},"Custom template ID conflicts with built-in - skipping");continue}Qs.set(r.id,r),S.info({file:t,templateId:r.id},"Loaded custom template")}catch(n){S.warn({file:t,error:n},"Failed to load custom template")}ns=!0}catch(e){S.warn({error:e,templatesDir:i},"Failed to read custom templates directory"),ns=!0}}function Ml(i){return Pl(),Qs.get(i)}function Dl(i,e){let t=i;for(let[n,s]of Object.entries(e))t=t.replace(new RegExp(`\\{\\{${n}\\}\\}`,"g"),s);return t}function jo(i,e,t={}){let n=Ml(i);if(!n)throw new Error(`Unknown template: ${i}. Use one of: ${Array.from(Qs.keys()).join(", ")}`);let s=t.target||"scope",r=e||(i==="refactoring"?`Refactor ${s}`:i==="feature"?`Feature: ${s}`:`Fix: ${s}`),o=Dl(n.defaultGoal,{...t,target:s}),c=je.normalize({steps:n.steps}),a=je.stringify(c);return{name:r,goal:o,strategy:a}}z();var ss=S.child({module:"mcp:tools:ops:plan"});async function zo(i){let{repoPath:e,name:t,goal:n,strategy:s,missionId:r,parentId:o,outcomeContract:c,templateId:a,templateVars:l}=i,{missions:p}=C.getInstance(e),u=ce(e),d=xe(e);ss.info({repoPath:e,name:t,missionId:r,templateId:a},"Planning mission");try{let m=t,h=n,g=s;if(a){let E=jo(a,t,l||{});m=m??E.name,h=h??E.goal,g=g??E.strategy}if(!m||!h)throw new Error("Mission requires name and goal (or templateId with optional templateVars).");let _=null;if(g){let E=je.normalize(g);_=je.stringify(E);let w=je.validate(_);w.valid||ss.warn({errors:w.errors,strategy:g},"Strategy validation warnings detected")}let b,y;r?(p.update(r,{name:m,goal:h,strategy_graph:_,commit_sha:d,parent_id:o!==void 0?o:void 0,outcome_contract:c}),b=r,y=`Mission "${m}" updated.`):(b=p.create({name:m,goal:h,strategy_graph:_,status:"planned",git_branch:u,commit_sha:d,parent_id:o||null,verification_context:null,outcome_contract:c||null}),y=`Mission "${m}" planned.`);try{await new Re(e).syncMissionToGitNotes(Number(b))}catch(E){ss.warn({syncError:E,missionId:b},"Git Notes sync deferred")}return{content:[{type:"text",text:JSON.stringify({missionId:b,status:"planned",message:y,strategy_saved:!!g,contract_saved:!!c,from_template:a??void 0,commit:d},null,2)}]}}catch(m){throw ss.error({error:m,repoPath:e},"Failed to plan mission"),new Error(`Failed to plan mission: ${m instanceof Error?m.message:String(m)}`)}}W();z();z();W();var Ol=S.child({module:"collision-service"}),sn=class{repoPath;constructor(e){this.repoPath=e}async analyzePotentialCollisions(){let e=ce(this.repoPath);if(!e)return[];let{missions:t,intentLogs:n}=C.getInstance(this.repoPath),s=t.findActive().filter(c=>c.git_branch&&c.git_branch!==e),r=[],o=new Set;for(let c of s){let a=c.git_branch;if(o.has(a))continue;o.add(a),Ol.info({branch:a,currentBranch:e},"Checking predictive collisions"),yr(this.repoPath,e,a)&&r.push({branch:a,type:"file",description:`Background merge-tree detected a file-level conflict between '${e}' and '${a}'.`});let p=t.findActive(e),u=new Set;for(let h of p)t.getWorkingSet(h.id).forEach(g=>u.add(g.file_path));let m=t.getWorkingSet(c.id).filter(h=>u.has(h.file_path));m.length>0&&r.push({branch:a,type:"intent",description:`Logical conflict: Mission '${c.name}' on '${a}' is modifying files you are currently working on.`,conflictingFiles:m.map(h=>h.file_path)})}return r}};var is=class i{constructor(e){this.intentLogs=e}static RECENCY_HALF_LIFE_HOURS=48;static WEIGHTS={recency:.4,activity:.3,statusBoost:.2,blockerBoost:.1};score(e){if(e.length===0)return[];let t=Math.floor(Date.now()/1e3),n=e.map(a=>a.id),s=this.intentLogs.countByMissions(n),r=this.intentLogs.findMissionsWithBlockers(n),o=Math.max(1,...Object.values(s));return e.map(a=>{let l=this.computeRecency(a.updated_at,t),p=(s[a.id]||0)/o,u=this.computeStatusBoost(a.status),d=r.has(a.id)?1:0,m=i.WEIGHTS,h=l*m.recency+p*m.activity+u*m.statusBoost+d*m.blockerBoost;return{mission:a,score:Math.round(h*1e3)/1e3,breakdown:{recency:Math.round(l*1e3)/1e3,activity:Math.round(p*1e3)/1e3,blockerBoost:d,statusBoost:u}}}).sort((a,l)=>l.score-a.score)}computeRecency(e,t){let n=Math.max(0,(t-e)/3600);return Math.pow(.5,n/i.RECENCY_HALF_LIFE_HOURS)}computeStatusBoost(e){switch(e){case"in-progress":return 1;case"verifying":return .8;case"planned":return .4;default:return 0}}};var ut=S.child({module:"mcp:tools:ops:briefing"});async function Bo(i){let{repoPath:e,missionId:t,scope:n="mission",altitude:s,activeMissionsLimit:r,recentActivityLimit:o,compact:c}=i,a=c??(s==="orbit"||s==="atmosphere"),l=o??(s==="orbit"?0:s==="ground"?20:10),{missions:p,intentLogs:u}=C.getInstance(e),d=xe(e),m=ce(e);ut.info({repoPath:e,missionId:t,scope:n},"Generating briefing");try{if(n==="project"){let E=p.findActive(m||void 0),w=E.length;r&&E.length>r&&(E=E.slice(0,r));let x=p.findParentOnlyIds(E),v=new Set(x),k=E.filter(j=>!v.has(j.id)),O=new is(u).score(k),T=.15,I=3,U=a&&O.length>I?O.filter((j,F)=>F<I||j.score>=T):O,H=U.map(j=>j.mission),P=new Map(U.map(j=>[j.mission.id,j.score])),R=j=>({id:j.id,name:j.name,goal:j.goal,status:j.status,relevance:P.get(j.id)}),A=H.length===0&&E.length===0?{tool:"shadow_ops_plan",reason:"No open work; create a mission"}:{tool:"shadow_ops_track",reason:"Select a mission from hierarchy or next_work_candidates to execute"};if(s==="orbit"){let j={scope:"project",altitude:"orbit",counts:p.getStats(),next_work_candidates:H.map(R),meta:{current_branch:m,activeMissionsTotal:w}};return{content:[{type:"text",text:JSON.stringify(j,null,2)}],suggestedNext:A}}let D={},$=[];for(let j of E)j.parent_id!=null?(D[j.parent_id]||(D[j.parent_id]=[]),D[j.parent_id].push(j)):$.push(j);let L=p.findRecentCompleted(5).map(R);if(s==="ground"){let j=l>0?u.findRecentDecisionActivity(l):void 0,F=x.map(de=>({parent:E.find(ie=>ie.id===de),children:D[de]??[]})),M=$.filter(de=>!v.has(de.id)),_e={scope:"project",altitude:"ground",counts:p.getStats(),analytics:p.getAnalytics(),hierarchy:F.length>0?F:void 0,standalone_active:M.length>0?M:void 0,active_missions:F.length===0?E:void 0,next_work_candidates:H,recent_completed:L,recent_activity:j,meta:{current_branch:m,current_commit:d,activeMissionsTotal:w,active_limit_applied:!!r,relevance_filtered:U.length<O.length?{shown:U.length,total:O.length}:void 0}};return{content:[{type:"text",text:JSON.stringify(_e,null,2)}],suggestedNext:A}}let Y=l>0?u.findRecentDecisionActivity(l):void 0,he=E;a&&(he=E.map(j=>({...j,strategy_graph:void 0,verification_context:void 0,outcome_contract:void 0})));let pe=x.map(j=>{let F=E.find(_e=>_e.id===j);return{parent:a?{...F,strategy_graph:void 0,verification_context:void 0}:F,children:D[j]??[]}}),ae=$.filter(j=>!v.has(j.id)),ye={scope:"project",altitude:"atmosphere",counts:p.getStats(),analytics:p.getAnalytics(),hierarchy:pe.length>0?pe:void 0,standalone_active:ae.length>0?ae:void 0,active_missions:pe.length===0?he:void 0,next_work_candidates:H.map(R),recent_completed:L,recent_activity:Y,meta:{current_branch:m,current_commit:d,activeMissionsTotal:w,active_limit_applied:!!r,relevance_filtered:U.length<O.length?{shown:U.length,total:O.length}:void 0}};return{content:[{type:"text",text:JSON.stringify(ye,null,2)}],suggestedNext:A}}let h;if(t?h=p.findById(t):h=p.findActive(m||void 0)[0],!h)return{content:[{type:"text",text:"No active missions found. Ready for new assignment."}]};let g=null;try{h.strategy_graph&&(g=JSON.parse(h.strategy_graph))}catch{ut.warn({missionId:h.id},"Failed to parse strategy graph")}if(s==="orbit"){let E={altitude:"orbit",mission:{id:h.id,name:h.name,goal:h.goal,status:h.status,last_updated:new Date(h.updated_at*1e3).toISOString()},strategy_snapshot:g};return{content:[{type:"text",text:JSON.stringify(E,null,2)}]}}let _="No external shadow changes detected.";try{new kt(e).analyzeGhostChanges(h.commit_sha||void 0),_="Shadow Trace completed: Checked for external modifications."}catch(E){ut.warn({error:E},"Ghost analysis failed")}let b={repaired:0,failed:0};try{b=new Pe(e).detectAndRepairShifts()}catch(E){ut.warn({error:E},"Symbol shift repair failed")}if(s==="ground"){let E={altitude:"ground",mission:{id:h.id,name:h.name,goal:h.goal,status:h.status,last_updated:new Date(h.updated_at*1e3).toISOString(),git_branch:h.git_branch,commit_sha:h.commit_sha,outcome_contract:h.outcome_contract},artifacts:p.getArtifacts(h.id),shadow_trace:{ghost_analysis:_,symbols_repaired:b.repaired,symbols_missing:b.failed},context:{current_commit:d,working_set:p.getWorkingSet(h.id).map(w=>w.file_path)},strategy_snapshot:g,recent_activity:u.findByMission(h.id,l||20),ancestor_activity_summary:[],predictive_collisions:[]};try{let w=new sn(e);E.predictive_collisions=await w.analyzePotentialCollisions()}catch(w){ut.warn({error:w},"Predictive collision analysis failed")}if(h.parent_id){let w=u.findByMission(h.parent_id,5);E.ancestor_activity_summary=w.map(x=>({type:x.type,content:x.content,date:new Date(x.created_at*1e3).toISOString()}))}return{content:[{type:"text",text:JSON.stringify(E,null,2)}]}}let y={altitude:"atmosphere",mission:{id:h.id,name:h.name,goal:h.goal,status:h.status,last_updated:new Date(h.updated_at*1e3).toISOString(),git_branch:h.git_branch,commit_sha:h.commit_sha,outcome_contract:h.outcome_contract},artifacts:p.getArtifacts(h.id),shadow_trace:{ghost_analysis:_,symbols_repaired:b.repaired,symbols_missing:b.failed},context:{current_commit:d,working_set:p.getWorkingSet(h.id).map(E=>E.file_path)},strategy_snapshot:g,recent_activity:u.findByMissionPreferCrystal(h.id,15),ancestor_activity_summary:[],predictive_collisions:[]};try{let E=new sn(e);y.predictive_collisions=await E.analyzePotentialCollisions()}catch(E){ut.warn({error:E},"Predictive collision analysis failed")}if(h.parent_id){let E=u.findByMissionPreferCrystal(h.parent_id,3);y.ancestor_activity_summary=E.map(w=>({type:w.type,content:w.content,date:new Date(w.created_at*1e3).toISOString()}))}return{content:[{type:"text",text:JSON.stringify(y,null,2)}]}}catch(h){throw ut.error({error:h,repoPath:e},"Failed to generate briefing"),new Error(`Failed to generate briefing: ${h instanceof Error?h.message:String(h)}`)}}W();z();z();W();W();var Fl=S.child({module:"reasoning-engine"}),rs=class{analyze(e){Fl.debug({logCount:e.length},"Performing reasoning pass over intent logs");let t={context:[],decisions:[],consequences:[],recommendations:[],unclassified:[]};for(let n of e){let s=n.content.toLowerCase(),r=this.matchesContext(s,n.type),o=this.matchesDecision(s,n.type),c=this.matchesConsequence(s,n.type),a=this.matchesRecommendation(s,n.type);r?t.context.push(n.content):o?t.decisions.push(n.content):a?t.recommendations.push(n.content):c?t.consequences.push(n.content):n.type==="decision"?t.decisions.push(n.content):n.type==="discovery"||n.type==="fix"?t.consequences.push(n.content):t.unclassified.push(n.content)}return t}matchesContext(e,t){return["because","since","given","due to","context: ","problem: ","situation:"].some(s=>e.includes(s))||t==="blocker"}matchesDecision(e,t){return["decided","chose","implemented","integrated","using","selected","strategy:"].some(s=>e.includes(s))||t==="decision"}matchesConsequence(e,t){return["results in","enables","allows","impact: ","consequence: ","next steps: ","meaning"].some(s=>e.includes(s))||t==="fix"}matchesRecommendation(e,t){return["should","recommend","suggest","next work","future","consider","strategy advice"].some(s=>e.includes(s))}};var os=S.child({module:"briefing-engine"}),ze=class{intentLogs;missions;reasoningEngine;persistencePivot;constructor(e){let{intentLogs:t,missions:n}=C.getInstance(e);this.intentLogs=t,this.missions=n,this.reasoningEngine=new rs,this.persistencePivot=new Re(e)}async distillMission(e,t=!0){os.info({missionId:e},"Synthesizing mission intelligence into Tactical Briefing...");let n=this.gatherConsolidatedLogs(e);if(n.length===0)return{missionId:e,adr:"No intent logs found for this mission.",metrics:{totalLogs:0,symbolCount:0}};let s=this.reasoningEngine.analyze(n),r=new Set(n.map(c=>c.symbol_name).filter(Boolean)),o=`# Architectural Decision Record: Mission #${e}
820
-
821
- `;if(o+=`## Summary of Intent
822
- `,o+=`Collected ${n.length} intent events across ${r.size} symbols.
823
-
824
- `,s.context.length>0&&(o+=`### Context
825
- `,s.context.forEach(c=>{o+=`- ${c}
826
- `}),o+=`
827
- `),s.decisions.length>0&&(o+=`### Key Decisions
828
- `,s.decisions.forEach(c=>{o+=`- ${c}
829
- `}),o+=`
830
- `),s.consequences.length>0&&(o+=`### Consequences & Evolutions
831
- `,s.consequences.forEach(c=>{o+=`- ${c}
832
- `}),o+=`
833
- `),s.recommendations.length>0&&(o+=`### Strategic Recommendations
834
- `,s.recommendations.forEach(c=>{o+=`- ${c}
835
- `}),o+=`
836
- `),s.unclassified.length>0&&(o+=`### Additional Notes
837
- `,s.unclassified.forEach(c=>{o+=`- ${c}
838
- `}),o+=`
839
- `),o+=`
735
+ `).run(e.sourceRepo,e.sourceFilePath,e.sourceSymbolId||null,e.targetRepo,e.targetFilePath,e.targetSymbolId||null,e.relationship,e.metadata?JSON.stringify(e.metadata):null,e.confidence??1).lastInsertRowid}scanEdges(){return i$.info({name:this.connection.nameValue},"Starting edge scan"),Bg(this)}getAttachedRepos(){return this.connection.getAttachedRepos()}get name(){return this.connection.nameValue}};var Gg=$.child({module:"fused-index"}),Ko=class{connection;service;configName;constructor(e){this.configName=e.name,this.connection=new Jo(e),this.service=new qo(this.connection)}attachRepo(e){this.connection.attachRepo(e)}detachRepo(e){this.connection.detachRepo(e)}refreshRepo(e){this.connection.refreshRepo(e)}getAttachedRepos(){return this.connection.getAttachedRepos()}checkHealth(){return this.connection.checkHealth()}close(){this.connection.close(),Gg.info({name:this.configName},"Fused index closed")}getStatus(){let e=this.service.executeRawQuery("SELECT COUNT(*) as count FROM virtual_edges");return{name:this.connection.nameValue,path:this.connection.dbPath,attachedRepos:this.connection.getAttachedRepos().length,repos:this.connection.getAttachedRepos(),virtualEdgesCount:e[0]?.count||0}}searchExports(e,r=50){return this.service.searchExports(e,r)}searchFiles(e,r=50){return this.service.searchFiles(e,r)}getVirtualEdges(e,r){return this.service.getVirtualEdges(e,r)}addVirtualEdge(e){return this.service.addVirtualEdge(e)}scanEdges(){return this.service.scanEdges()}buildUnionQuery(e,r,i){return this.service.buildUnionQuery(e,r,i)}executeFederatedQuery(e,...r){return this.service.executeFederatedQuery(e,...r)}executeRawQuery(e,...r){return this.service.executeRawQuery(e,...r)}buildAdvancedQuery(e){return this.service.buildAdvancedQuery(e)}buildFtsQuery(e,r,i,t,o){return this.service.buildFtsQuery(e,r,i,t,o)}buildCrossRepoImportsQuery(){return this.service.buildCrossRepoImportsQuery()}refreshAll(){this.connection.refreshAll()}validateSchemas(){return Gg.debug({name:this.configName},"Delegating validateSchemas"),this.connection.validateSchemas()}},Vo=new Map;function Jc(n){let e=Vo.get(n.name);if(e){let i=new Set(e.getAttachedRepos().map(s=>s.repoPath)),t=new Set(n.repoPaths.map(s=>o$.resolve(s)));if(i.size===t.size&&[...i].every(s=>t.has(s)))return e;e.close(),Vo.delete(n.name)}let r=new Ko(n);return Vo.set(n.name,r),r}function qc(){return Array.from(Vo.keys())}import Dt from"path";import Vc from"fs";var ar=class{constructor(e){this.repoPath=e}async analyze(e,r={}){let{filePath:i,depth:t=3,limit:o=50,offset:s=0}=r,a=L.getInstance(this.repoPath),c=i?a.exports.findByNameAndFile(e,i):a.exports.findByNameGlobal(e);if(c.length===0)return[];let l=[];for(let u of c){let d=a.imports.findImpactDependents(u.file_path,`%${e}%`,t),p=[],f=new Set;for(let S of d){let E=Dt.relative(this.repoPath,S.consumer_path);if(f.has(E))continue;let w=`Imports ${S.imported_symbols}`,z=await this.verifySymbolUsage(S.consumer_path,u.name);z?w+=" (\u2705 Verified Call)":w+=" (\u26A0\uFE0F Potential Import - Usage not statically detected)",f.add(E),p.push({type:"IMPORT",file:E,depth:S.depth,details:w,verified:z})}let m=a.exports.findRoutesByCapability(e);u.kind==="HTTP Route"&&m.push({name:u.name,file_path:u.file_path,signature:u.signature});for(let S of m){let w=S.name.split("/").filter(R=>R.length>3&&!R.includes("{")&&!R.includes("$")&&!R.includes("<")).sort((R,U)=>U.length-R.length)[0];if(!w||["admin","api","user","users","update","create","delete","list","index","show","store"].includes(w.toLowerCase()))continue;let z=a.files.findContentByToken(w,10);for(let R of z){let U=Dt.relative(this.repoPath,R);!f.has(U)&&R!==u.file_path&&(f.add(U),p.push({type:"API_USAGE",file:U,depth:2,details:`Likely calls route ${S.name} (matched token '${w}')`,verified:!1}))}}let h=a.files.findContentByToken(e,20);for(let S of h){let E=Dt.relative(this.repoPath,S);!f.has(E)&&S!==u.file_path&&(f.add(E),p.push({type:"POTENTIAL_USAGE",file:E,depth:2,details:`Contains keyword '${e}' (Dynamic/Implicit usage)`,verified:!0}))}u.kind==="HTTP Route"&&await this.addCrossRepoImpact(p,f,u),p.sort((S,E)=>S.verified&&!E.verified?-1:!S.verified&&E.verified?1:S.depth!==E.depth?S.depth-E.depth:S.file.localeCompare(E.file));let v=p.length,b=p.slice(s,s+o),g=s+o<v,x=this.calculateRiskScore(u,v,p);l.push({symbol:e,definedIn:Dt.relative(this.repoPath,u.file_path),riskScore:x,impact:b,pagination:{total:v,offset:s,limit:o,hasMore:g}})}return l}async verifySymbolUsage(e,r){try{if(!Vc.existsSync(e))return!1;let i=Vc.readFileSync(e,"utf8"),t=Dt.extname(e).toLowerCase(),o=new Set;if(t===".ts"||t===".tsx"||t===".js"||t===".jsx"){let s=new or;try{let a=await si(i,{syntax:"typescript",tsx:e.endsWith(".tsx"),target:"es2020"});s.visitModule(a),o=s.calls}catch{return i.includes(r)}}else{let s=new Qt;s.visit(i,t),o=s.calls}if(o.has(r))return!0;for(let s of o){if(s===r)return!0;let a=s.split(/(?:\.|->|::)+/),c=a[a.length-1],l=r.split(/(?:\.|->|::)+/),u=l[l.length-1];if(c===u)return!0}return!1}catch{return!1}}async addCrossRepoImpact(e,r,i){try{let t=qc();for(let o of t)try{let a=(await import("os")).homedir(),c=Dt.join(a,".mcp-liquid-shadow","fused"),l=o.replace(/[^a-zA-Z0-9-_]/g,"_"),u=Dt.join(c,`${l}.db`);if(!Vc.existsSync(u))continue;let d=(await import("better-sqlite3")).default,p=new d(u),f=p.prepare("SELECT source_repo, source_file_path, relationship, metadata FROM virtual_edges WHERE target_repo = ? AND target_file_path = ? AND relationship = 'api_call'").all(this.repoPath,i.file_path);p.close();for(let m of f){let h=Dt.relative(m.source_repo,m.source_file_path),v=`${m.source_repo}:${h}`;r.has(v)||(r.add(v),e.push({type:"CROSS_REPO_API_CALL",file:v,depth:1,details:`Cross-repo API call from ${Dt.basename(m.source_repo)}`,verified:!0}))}}catch{continue}}catch{}}calculateRiskScore(e,r,i){let a=(new pe(this.repoPath).getSnapshot().gravity?.hotspots||[]).find(p=>p.filePath===e.file_path&&p.symbol===e.name)?.gravity||0,c=i.filter(p=>p.type==="CROSS_REPO_API_CALL").length,l=a/50+r/15+c*2,u="LOW",d="Peripheral symbol with limited usage.";return l>=8?(u="CRITICAL",d=`Core architectural pillar (Gravity: ${a.toFixed(0)}). Modification will destabilize ${r} dependents.`):l>=4?(u="HIGH",d=`High-gravity symbol with significant blast radius (${r} files).`):l>=1.5&&(u="MEDIUM",d="Standard library symbol with moderate dependency chain."),{score:Math.min(10,Math.round(l*10)/10),level:u,rationale:d}}};X();var Yo=class n{constructor(e){this.intentLogs=e}static RECENCY_HALF_LIFE_HOURS=48;static WEIGHTS={recency:.4,activity:.3,statusBoost:.2,blockerBoost:.1};score(e){if(e.length===0)return[];let r=Math.floor(Date.now()/1e3),i=e.map(c=>c.id),t=this.intentLogs.countByMissions(i),o=this.intentLogs.findMissionsWithBlockers(i),s=Math.max(1,...Object.values(t));return e.map(c=>{let l=this.computeRecency(c.updated_at,r),u=(t[c.id]||0)/s,d=this.computeStatusBoost(c.status),p=o.has(c.id)?1:0,f=n.WEIGHTS,m=l*f.recency+u*f.activity+d*f.statusBoost+p*f.blockerBoost;return{mission:c,score:Math.round(m*1e3)/1e3,breakdown:{recency:Math.round(l*1e3)/1e3,activity:Math.round(u*1e3)/1e3,blockerBoost:p,statusBoost:d}}}).sort((c,l)=>l.score-c.score)}computeRecency(e,r){let i=Math.max(0,(r-e)/3600);return Math.pow(.5,i/n.RECENCY_HALF_LIFE_HOURS)}computeStatusBoost(e){switch(e){case"in-progress":return 1;case"verifying":return .8;case"planned":return .4;default:return 0}}};X();Je();J();import{execSync as Jg}from"child_process";import s$ from"path";var Xo=$.child({module:"shadow-trace"}),Lt=class{intentLogs;exports;repoPath;hologramService;constructor(e){let{intentLogs:r,exports:i}=L.getInstance(e);this.intentLogs=r,this.exports=i,this.repoPath=e,this.hologramService=new pe(e)}analyzeGhostChanges(e){let r=e?`${e}..HEAD`:"HEAD~1..HEAD",i=[];try{let o=Jg(`git diff --name-only ${r}`,{cwd:this.repoPath,encoding:"utf-8"}).split(`
736
+ `).filter(s=>s.trim()!=="");if(o.length===0)return;Xo.info({files:o.length,range:r},"Initiating Shadow Trace analysis...");for(let s of o){let a=s$.join(this.repoPath,s),l=Jg(`git diff -U0 ${r} -- ${s}`,{cwd:this.repoPath,encoding:"utf-8"}).matchAll(/@@ -(\d+)(?:,\d+)? \+(\d+)(?:,\d+)? @@/g);for(let u of l){let d=parseInt(u[2],10),p=this.exports.findAtLine(a,d);p&&(this.intentLogs.create({mission_id:0,file_path:a,symbol_id:p.id,type:"discovery",content:`Shadow Trace: Modified externally in ${r}`,confidence:.8,symbol_name:p.name,signature:p.signature,commit_sha:null}),Xo.debug({symbol:p.name},"Logged ghost change"),i.push({from:"external",to:`${s}:${p.name}`,pattern:"git-delta",confidence:.8}))}}i.length>0&&this.hologramService.updateGhostBridges(i),Xo.info("Shadow Trace complete.")}catch(t){Xo.warn({err:t.message},"Shadow Trace failed: git diff error.")}}};X();J();var a$=$.child({module:"collision-service"}),Qo=class{repoPath;constructor(e){this.repoPath=e}async analyzePotentialCollisions(){let e=Te(this.repoPath);if(!e)return[];let{missions:r,intentLogs:i}=L.getInstance(this.repoPath),t=r.findActive().filter(a=>a.git_branch&&a.git_branch!==e),o=[],s=new Set;for(let a of t){let c=a.git_branch;if(s.has(c))continue;s.add(c),a$.info({branch:c,currentBranch:e},"Checking predictive collisions"),Dc(this.repoPath,e,c)&&o.push({branch:c,type:"file",description:`Background merge-tree detected a file-level conflict between '${e}' and '${c}'.`});let u=r.findActive(e),d=new Set;for(let m of u)r.getWorkingSet(m.id).forEach(h=>d.add(h.file_path));let f=r.getWorkingSet(a.id).filter(m=>d.has(m.file_path));f.length>0&&o.push({branch:c,type:"intent",description:`Logical conflict: Mission '${a.name}' on '${c}' is modifying files you are currently working on.`,conflictingFiles:f.map(m=>m.file_path)})}return o}};var cr=class{constructor(e){this.repoPath=e}async getBriefing(e={}){let{missionId:r,scope:i="mission",altitude:t,activeMissionsLimit:o,recentActivityLimit:s,compact:a}=e,c=a??(t==="orbit"||t==="atmosphere"),l=s??(t==="orbit"?0:t==="ground"?20:10),{missions:u,intentLogs:d}=L.getInstance(this.repoPath),p=it(this.repoPath),f=Te(this.repoPath);return i==="project"?this.getProjectBriefing({altitude:t,activeMissionsLimit:o,recentActivityLimit:l,compact:c,currentBranch:f,currentCommit:p}):this.getMissionBriefing({missionId:r,altitude:t,recentActivityLimit:l,currentBranch:f,currentCommit:p})}async getProjectBriefing(e){let{repoPath:r}=this,{missions:i,intentLogs:t}=L.getInstance(r),{altitude:o,activeMissionsLimit:s,recentActivityLimit:a,compact:c,currentBranch:l,currentCommit:u}=e,d=i.findActive(l||void 0),p=d.length;s&&d.length>s&&(d=d.slice(0,s));let f=i.findParentOnlyIds(d),m=new Set(f),h=d.filter(D=>!m.has(D.id)),b=new Yo(t).score(h),g=.15,x=3,S=c&&b.length>x?b.filter((D,C)=>C<x||D.score>=g):b,E=S.map(D=>D.mission),w=new Map(S.map(D=>[D.mission.id,D.score])),z=D=>({id:D.id,name:D.name,goal:D.goal,status:D.status,relevance:w.get(D.id)});if(o==="orbit")return{scope:"project",altitude:"orbit",counts:i.getStats(),next_work_candidates:E.map(z),meta:{current_branch:l,activeMissionsTotal:p}};let R={},U=[];for(let D of d)D.parent_id!=null?(R[D.parent_id]||(R[D.parent_id]=[]),R[D.parent_id].push(D)):U.push(D);let I=i.findRecentCompleted(5).map(z),T=a>0?t.findRecentDecisionActivity(a):void 0,N=f.map(D=>{let C=d.find(q=>q.id===D);return{parent:c?{...C,strategy_graph:void 0,verification_context:void 0}:C,children:R[D]??[]}}),F=U.filter(D=>!m.has(D.id));return{scope:"project",altitude:o||"atmosphere",counts:i.getStats(),analytics:i.getAnalytics(),hierarchy:N.length>0?N:void 0,standalone_active:F.length>0?F:void 0,active_missions:N.length===0?c?d.map(D=>({...D,strategy_graph:void 0})):d:void 0,next_work_candidates:E.map(z),recent_completed:I,recent_activity:T,meta:{current_branch:l,current_commit:u,activeMissionsTotal:p,active_limit_applied:!!s,relevance_filtered:S.length<b.length?{shown:S.length,total:b.length}:void 0}}}async getMissionBriefing(e){let{repoPath:r}=this,{missions:i,intentLogs:t}=L.getInstance(r),{missionId:o,altitude:s,recentActivityLimit:a,currentBranch:c,currentCommit:l}=e,u;if(o?u=i.findById(o):u=i.findActive(c||void 0)[0],!u)return null;let d=null;try{u.strategy_graph&&(d=JSON.parse(u.strategy_graph))}catch{}if(s==="orbit")return{altitude:"orbit",mission:{id:u.id,name:u.name,goal:u.goal,status:u.status,last_updated:new Date(u.updated_at*1e3).toISOString()},strategy_snapshot:d};let p="No external shadow changes detected.";try{new Lt(r).analyzeGhostChanges(u.commit_sha||void 0),p="Shadow Trace completed: Checked for external modifications."}catch{}let f={repaired:0,failed:0};try{f=new Ce(r).detectAndRepairShifts()}catch{}let m={altitude:s||"atmosphere",mission:{id:u.id,name:u.name,goal:u.goal,status:u.status,last_updated:new Date(u.updated_at*1e3).toISOString(),git_branch:u.git_branch,commit_sha:u.commit_sha,outcome_contract:u.outcome_contract},artifacts:i.getArtifacts(u.id),shadow_trace:{ghost_analysis:p,symbols_repaired:f.repaired,symbols_missing:f.failed},context:{current_commit:l,working_set:i.getWorkingSet(u.id).map(h=>h.file_path)},strategy_snapshot:d,recent_activity:s==="ground"?t.findByMission(u.id,a||20):t.findByMissionPreferCrystal(u.id,15),ancestor_activity_summary:[],predictive_collisions:[]};try{let h=new Qo(r);m.predictive_collisions=await h.analyzePotentialCollisions()}catch{}if(u.parent_id){let h=s==="ground"?t.findByMission(u.parent_id,5):t.findByMissionPreferCrystal(u.parent_id,3);m.ancestor_activity_summary=h.map(v=>({type:v.type,content:v.content,date:new Date(v.created_at*1e3).toISOString()}))}return m}};var qg=[{name:"shadow_recon_onboard",description:"Initial onboarding for a repository. Indexes all files, extracts symbols, and detects services.",inputSchema:{type:"object",properties:{repoPath:{type:"string",description:"Absolute path to the repository root"}},required:["repoPath"]}},{name:"shadow_recon_topography",description:"Analyze architectural layers (Entry/Logic/Data/Utility). Returns layer breakdown and architectural insights.",inputSchema:{type:"object",properties:{repoPath:{type:"string",description:"Absolute path to the repository root"}},required:["repoPath"]}},{name:"shadow_recon_scout",description:"(Expert) Detect architectural drift, pattern violations, and gravity anomalies.",inputSchema:{type:"object",properties:{repoPath:{type:"string",description:"Absolute path to the repository root"}},required:["repoPath"]}},{name:"shadow_recon_tree",description:"Generate hierarchical file tree with file classifications and export summaries.",inputSchema:{type:"object",properties:{repoPath:{type:"string",description:"Absolute path to the repository root"},subPath:{type:"string",description:"Relative path to focus tree on a specific subdirectory"},maxDepth:{type:"number",description:"Maximum directory depth to traverse"}},required:["repoPath"]}},{name:"shadow_recon_hologram",description:"Get the project hologram (persistent architectural snapshot) and gravity zones.",inputSchema:{type:"object",properties:{repoPath:{type:"string",description:"Absolute path to the repository root"},compact:{type:"boolean",description:"Omit large arrays (gravity.hotspots) for lighter output"}},required:["repoPath"]}},{name:"shadow_search_concept",description:"Semantic/Vector-based intent search across file purpose and logic.",inputSchema:{type:"object",properties:{repoPath:{type:"string",description:"Absolute path to the repository"},query:{type:"string",description:"Search term or semantic intent"},limit:{type:"number",description:"Max results (default 10)"},offset:{type:"number",description:"Pagination offset"},compact:{type:"boolean",description:"Return compact output (no snippets)"},fileType:{type:"string",description:"Filter by extension(s)"},layer:{type:"string",enum:["Solid","Liquid","Virtual","Intel","Phantom"]},includeTests:{type:"boolean",description:"Include test files (Virtual)"}},required:["repoPath","query"]}},{name:"shadow_search_symbol",description:"Exact and fuzzy code symbol matching (classes, functions, methods).",inputSchema:{type:"object",properties:{repoPath:{type:"string",description:"Absolute path to the repository"},query:{type:"string",description:"Symbol name or partial name"},limit:{type:"number",description:"Max results"},offset:{type:"number",description:"Pagination offset"},fileType:{type:"string",description:"Filter by extension(s)"},matchMode:{type:"string",enum:["any","all","exact"],description:"Match mode for multi-word queries: 'any' (OR, default), 'all' (AND), 'exact' (phrase)"}},required:["repoPath","query"]}},{name:"shadow_search_config",description:"Environment and configuration discovery (ENV, Ports, Docker, YAML).",inputSchema:{type:"object",properties:{repoPath:{type:"string",description:"Absolute path to the repository"},query:{type:"string",description:"Search term for values/keys"},key:{type:"string",description:"Specific config key match"},kind:{type:"string",enum:["Service","Image","Port","Env"]},limit:{type:"number"},showUsage:{type:"boolean",description:"Cross-reference with code to show usage counts and identify orphaned vars (defined but never used)"}},required:["repoPath"]}},{name:"shadow_search_path",description:"Filename-keyword resolution using the search index.",inputSchema:{type:"object",properties:{repoPath:{type:"string",description:"Absolute path to the repository"},query:{type:"string",description:"Filename part or path keyword"},limit:{type:"number"},ranked:{type:"boolean",description:"Sort results by gravity (high-import files first) and show layer classification (Entry/Logic/Data)"}},required:["repoPath","query"]}},{name:"shadow_analyze_impact",description:"Calculate blast radius and Strategic Risk Scoring of changing a symbol.",inputSchema:{type:"object",properties:{repoPath:{type:"string"},symbolName:{type:"string",description:"Symbol to analyze"},filePath:{type:"string",description:"Specific file where symbol is defined"},depth:{type:"number",description:"Traversal depth (default 3)"},limit:{type:"number",description:"Max results per symbol (default 50)"},offset:{type:"number",description:"Pagination offset"}},required:["repoPath","symbolName"]}},{name:"shadow_analyze_flow",description:"Execution call-chain tracing (AST-based) for a specific function/method.",inputSchema:{type:"object",properties:{repoPath:{type:"string"},filePath:{type:"string",description:"File to start trace from"},symbolName:{type:"string",description:"Function/method name"}},required:["repoPath","filePath"]}},{name:"shadow_analyze_deps",description:"Direct file import/export mapping and dependency graph inspection.",inputSchema:{type:"object",properties:{repoPath:{type:"string"},filePath:{type:"string"},direction:{type:"string",enum:["imports","imported_by"]}},required:["repoPath","filePath","direction"]}},{name:"shadow_analyze_debt",description:"Recursive dead-code detection and circular import identification. For dead-code mode: excludes migrations and fixtures by default, returns results with confidence scoring.",inputSchema:{type:"object",properties:{repoPath:{type:"string"},mode:{type:"string",enum:["dead-code","circular-deps"]},limit:{type:"number"},includeTests:{type:"boolean"},excludePatterns:{type:"array",items:{type:"string"},description:"Custom glob patterns to exclude (e.g., '**/migrations/**')"},includeMigrations:{type:"boolean",description:"Include migration files (default: false)"},includeFixtures:{type:"boolean",description:"Include fixture/mock files (default: false)"},confidenceThreshold:{type:"string",enum:["all","high","medium"],description:"Filter by confidence: 'all' (default), 'high' (likely dead), 'medium' (possibly intentional)"}},required:["repoPath","mode"]}}];var Vg=[{name:"shadow_ops_plan",description:"Create a new development mission or strategic initiative with goals and strategy.",inputSchema:{type:"object",properties:{repoPath:{type:"string"},name:{type:"string",description:"Mission name"},goal:{type:"string",description:"Objective and success criteria"},strategy:{type:"string",description:"JSON strategy (steps DAG)"},parentId:{type:"number",description:"ID of parent mission"},outcomeContract:{type:"string",description:"Success verification contract"},templateId:{type:"string",enum:["refactoring","feature","bug-fix"]},templateVars:{type:"object",description:"Template variables"}},required:["repoPath"]}},{name:"shadow_ops_track",description:"Update mission step status, record progress, and track completion.",inputSchema:{type:"object",properties:{repoPath:{type:"string"},missionId:{type:"number"},stepId:{type:"string"},status:{type:"string",enum:["pending","in-progress","completed","failed","skipped"]},contextPivot:{type:"string",description:"Rationale for status change"},updates:{type:"array",items:{type:"object",properties:{stepId:{type:"string"},status:{type:"string"},contextPivot:{type:"string"}}}}},required:["repoPath","missionId"]}},{name:"shadow_ops_log",description:"Record architectural decisions, discoveries, or blockers to the intent log.",inputSchema:{type:"object",properties:{repoPath:{type:"string"},missionId:{type:"number",description:"Mission to attach this log to. Optional \u2014 if omitted, auto-resolves to the active mission or logs as standalone."},type:{type:"string",enum:["decision","blocker","discovery","fix"]},content:{type:"string"},filePath:{type:"string",description:"File path to associate with this log"},symbolName:{type:"string",description:"Symbol related to this intent"},standalone:{type:"boolean",description:"If true, log is anchored to symbolName only (no mission). Requires symbolName."}},required:["repoPath","type","content"]}},{name:"shadow_ops_briefing",description:"Active situational awareness - Get details on missions, decisions, and next steps.",inputSchema:{type:"object",properties:{repoPath:{type:"string"},missionId:{type:"number",description:"Optional specific mission ID"},scope:{type:"string",enum:["mission","project"]},altitude:{type:"string",enum:["orbit","atmosphere","ground"],description:"Zoom level: orbit (~200 tokens, counts+candidates only), atmosphere (strategy+crystals, default), ground (raw logs+working set)"},includeGroupedByParent:{type:"boolean"},activeMissionsLimit:{type:"number",description:"Limit active missions in output"},recentActivityLimit:{type:"number",description:"Limit recent activity logs"},compact:{type:"boolean",description:"Omit strategy_graph JSON for lighter output"}},required:["repoPath"]}},{name:"shadow_ops_synthesize",description:"Distill mission context and logs into an Architectural Decision Record (ADR).",inputSchema:{type:"object",properties:{repoPath:{type:"string"},missionId:{type:"number"}},required:["repoPath","missionId"]}},{name:"shadow_ops_chronicle",description:"Archive feed of the repository narrative (initiatives and standalones).",inputSchema:{type:"object",properties:{repoPath:{type:"string"},format:{type:"string",enum:["markdown","json"]},limit:{type:"number"},offset:{type:"number"},since:{type:"number"},until:{type:"number"}},required:["repoPath"]}},{name:"shadow_ops_context",description:'Session-start bundle in one call: hologram + chronicle (last 5) + briefing summary (counts, next_work_candidates). Use for "new chat, give me the world" without multiple round-trips.',inputSchema:{type:"object",properties:{repoPath:{type:"string"},compact:{type:"boolean",description:"Return lighter payload (omit full hologram.gravity.hotspots, strategy_graph)"}},required:["repoPath"]}},{name:"shadow_ops_health",description:"System health metrics and intelligence index status.",inputSchema:{type:"object",properties:{repoPath:{type:"string"}},required:["repoPath"]}},{name:"shadow_ops_crystallize",description:"Compress a mission's intent logs into a single crystal summary. Raw logs are marked as absorbed and replaced by one dense crystal node for token-efficient briefings.",inputSchema:{type:"object",properties:{repoPath:{type:"string"},missionId:{type:"number"}},required:["repoPath","missionId"]}},{name:"shadow_ops_graph",description:"Visualize mission lineage and dependencies.",inputSchema:{type:"object",properties:{repoPath:{type:"string"},missionId:{type:"number"},depth:{type:"number"},limit:{type:"number"},format:{type:"string",enum:["mermaid","json"]}},required:["repoPath"]}},{name:"shadow_working_set_check",description:"Checks which files are in active mission working sets to detect parallel editing conflicts.",inputSchema:{type:"object",properties:{repoPath:{type:"string"},filePaths:{type:"array",items:{type:"string"}}},required:["repoPath","filePaths"]}},{name:"shadow_inspect_symbol",description:"Dense code retrieval for a single symbol with semantic folding and usage context.",inputSchema:{type:"object",properties:{repoPath:{type:"string"},symbolName:{type:"string"},filePath:{type:"string"},context:{type:"string",enum:["definition","full"]}},required:["repoPath","symbolName"]}},{name:"shadow_inspect_file",description:"Token-efficient summary of ALL symbols and exports in a file.",inputSchema:{type:"object",properties:{repoPath:{type:"string"},filePath:{type:"string"},detailLevel:{type:"string",enum:["structure","signatures","summaries","detailed"]}},required:["repoPath","filePath"]}},{name:"shadow_sync_trace",description:"Full lifecycle synchronization - Repairs index, analyzes changes, and re-hydrates state.",inputSchema:{type:"object",properties:{repoPath:{type:"string"},sinceCommit:{type:"string"}},required:["repoPath"]}},{name:"shadow_sync_index",description:"Incremental code re-indexing to reflect latest file changes.",inputSchema:{type:"object",properties:{repoPath:{type:"string"},deep:{type:"boolean",description:"Force full rebuild"}},required:["repoPath"]}},{name:"shadow_sync_repair",description:"NanoRepair only - Heals broken intent links and symbol shifts.",inputSchema:{type:"object",properties:{repoPath:{type:"string"}},required:["repoPath"]}},{name:"shadow_env_hooks",description:"Install and manage Git hooks for automated intelligence maintenance.",inputSchema:{type:"object",properties:{repoPath:{type:"string"},action:{type:"string",enum:["install","remove","status"]},enableAutoRefresh:{type:"boolean"},enableSymbolHealing:{type:"boolean"}},required:["repoPath","action"]}},{name:"shadow_env_diagnose",description:"Missions and intelligence toolset health check.",inputSchema:{type:"object",properties:{repoPath:{type:"string"}},required:["repoPath"]}},{name:"shadow_workspace_list",description:"Federated view of active missions across multiple repositories.",inputSchema:{type:"object",properties:{repoPaths:{type:"array",items:{type:"string"}},status:{type:"string"}},required:["repoPaths"]}},{name:"shadow_workspace_link",description:"Establish intent-level dependencies between missions in different repos.",inputSchema:{type:"object",properties:{parentRepoPath:{type:"string"},parentMissionId:{type:"number"},childRepoPath:{type:"string"},childMissionId:{type:"number"},relationship:{type:"string"}},required:["parentRepoPath","parentMissionId","childRepoPath","childMissionId","relationship"]}},{name:"shadow_workspace_fuse",description:"Create unified cross-repo search indices using SQLite fusion.",inputSchema:{type:"object",properties:{repoPaths:{type:"array",items:{type:"string"}},name:{type:"string"}},required:["repoPaths"]}}];var y={};et(y,{$brand:()=>es,$input:()=>hd,$output:()=>fd,NEVER:()=>Kc,TimePrecision:()=>vd,ZodAny:()=>cm,ZodArray:()=>pm,ZodBase64:()=>Ia,ZodBase64URL:()=>Ta,ZodBigInt:()=>Mr,ZodBigIntFormat:()=>za,ZodBoolean:()=>Or,ZodCIDRv4:()=>ka,ZodCIDRv6:()=>Ea,ZodCUID:()=>ba,ZodCUID2:()=>va,ZodCatch:()=>Dm,ZodCodec:()=>ja,ZodCustom:()=>Hi,ZodCustomStringFormat:()=>Lr,ZodDate:()=>Mi,ZodDefault:()=>Tm,ZodDiscriminatedUnion:()=>fm,ZodE164:()=>Pa,ZodEmail:()=>ha,ZodEmoji:()=>ga,ZodEnum:()=>Cr,ZodError:()=>Lk,ZodExactOptional:()=>km,ZodFile:()=>$m,ZodFirstPartyTypeKind:()=>Gm,ZodFunction:()=>Hm,ZodGUID:()=>Ci,ZodIPv4:()=>$a,ZodIPv6:()=>wa,ZodISODate:()=>la,ZodISODateTime:()=>ca,ZodISODuration:()=>da,ZodISOTime:()=>ua,ZodIntersection:()=>hm,ZodIssueCode:()=>Ok,ZodJWT:()=>Ra,ZodKSUID:()=>Sa,ZodLazy:()=>Fm,ZodLiteral:()=>Sm,ZodMAC:()=>tm,ZodMap:()=>_m,ZodNaN:()=>Am,ZodNanoID:()=>ya,ZodNever:()=>um,ZodNonOptional:()=>Oa,ZodNull:()=>sm,ZodNullable:()=>Im,ZodNumber:()=>Ar,ZodNumberFormat:()=>Zn,ZodObject:()=>Fi,ZodOptional:()=>Aa,ZodPipe:()=>Ma,ZodPrefault:()=>Rm,ZodPromise:()=>Zm,ZodReadonly:()=>Om,ZodRealError:()=>Ke,ZodRecord:()=>Zi,ZodSet:()=>xm,ZodString:()=>Dr,ZodStringFormat:()=>ce,ZodSuccess:()=>Cm,ZodSymbol:()=>im,ZodTemplateLiteral:()=>jm,ZodTransform:()=>wm,ZodTuple:()=>ym,ZodType:()=>te,ZodULID:()=>_a,ZodURL:()=>Oi,ZodUUID:()=>It,ZodUndefined:()=>om,ZodUnion:()=>Ui,ZodUnknown:()=>lm,ZodVoid:()=>dm,ZodXID:()=>xa,ZodXor:()=>mm,_ZodString:()=>fa,_default:()=>Pm,_function:()=>Tv,any:()=>sv,array:()=>ji,base64:()=>Hb,base64url:()=>Wb,bigint:()=>tv,boolean:()=>rm,catch:()=>Lm,check:()=>Pv,cidrv4:()=>Ub,cidrv6:()=>Zb,clone:()=>je,codec:()=>kv,coerce:()=>Jm,config:()=>xe,core:()=>Mt,cuid:()=>Cb,cuid2:()=>Db,custom:()=>Rv,date:()=>cv,decode:()=>qp,decodeAsync:()=>Kp,describe:()=>zv,discriminatedUnion:()=>fv,e164:()=>Bb,email:()=>$b,emoji:()=>zb,encode:()=>Jp,encodeAsync:()=>Vp,endsWith:()=>$r,enum:()=>Da,exactOptional:()=>Em,file:()=>xv,flattenError:()=>_i,float32:()=>Yb,float64:()=>Xb,formatError:()=>xi,fromJSONSchema:()=>Mv,function:()=>Tv,getErrorMap:()=>jk,globalRegistry:()=>De,gt:()=>kt,gte:()=>Fe,guid:()=>wb,hash:()=>Kb,hex:()=>Vb,hostname:()=>qb,httpUrl:()=>Rb,includes:()=>xr,instanceof:()=>Cv,int:()=>ma,int32:()=>Qb,int64:()=>nv,intersection:()=>gm,ipv4:()=>Mb,ipv6:()=>Fb,iso:()=>Nr,json:()=>Lv,jwt:()=>Gb,keyof:()=>lv,ksuid:()=>Ob,lazy:()=>Um,length:()=>Fn,literal:()=>_v,locales:()=>Pi,looseObject:()=>pv,looseRecord:()=>gv,lowercase:()=>vr,lt:()=>wt,lte:()=>Xe,mac:()=>jb,map:()=>yv,maxLength:()=>jn,maxSize:()=>cn,meta:()=>Nv,mime:()=>wr,minLength:()=>Ot,minSize:()=>Et,multipleOf:()=>an,nan:()=>wv,nanoid:()=>Nb,nativeEnum:()=>vv,negative:()=>Xs,never:()=>Na,nonnegative:()=>ea,nonoptional:()=>Nm,nonpositive:()=>Qs,normalize:()=>kr,null:()=>am,nullable:()=>Li,nullish:()=>Sv,number:()=>nm,object:()=>uv,optional:()=>Di,overwrite:()=>vt,parse:()=>Hp,parseAsync:()=>Wp,partialRecord:()=>hv,pipe:()=>Ai,positive:()=>Ys,prefault:()=>zm,preprocess:()=>Av,prettifyError:()=>cl,promise:()=>Iv,property:()=>ta,readonly:()=>Mm,record:()=>vm,refine:()=>Wm,regex:()=>br,regexes:()=>at,registry:()=>Rs,safeDecode:()=>Xp,safeDecodeAsync:()=>em,safeEncode:()=>Yp,safeEncodeAsync:()=>Qp,safeParse:()=>Bp,safeParseAsync:()=>Gp,set:()=>bv,setErrorMap:()=>Mk,size:()=>Mn,slugify:()=>Pr,startsWith:()=>Sr,strictObject:()=>dv,string:()=>pa,stringFormat:()=>Jb,stringbool:()=>Dv,success:()=>$v,superRefine:()=>Bm,symbol:()=>iv,templateLiteral:()=>Ev,toJSONSchema:()=>oa,toLowerCase:()=>Ir,toUpperCase:()=>Tr,transform:()=>La,treeifyError:()=>al,trim:()=>Er,tuple:()=>bm,uint32:()=>ev,uint64:()=>rv,ulid:()=>Lb,undefined:()=>ov,union:()=>Ca,unknown:()=>Un,uppercase:()=>_r,url:()=>Pb,util:()=>M,uuid:()=>kb,uuidv4:()=>Eb,uuidv6:()=>Ib,uuidv7:()=>Tb,void:()=>av,xid:()=>Ab,xor:()=>mv});var Mt={};et(Mt,{$ZodAny:()=>Au,$ZodArray:()=>Uu,$ZodAsyncError:()=>bt,$ZodBase64:()=>Eu,$ZodBase64URL:()=>Iu,$ZodBigInt:()=>$s,$ZodBigIntFormat:()=>Nu,$ZodBoolean:()=>ki,$ZodCIDRv4:()=>$u,$ZodCIDRv6:()=>wu,$ZodCUID:()=>du,$ZodCUID2:()=>pu,$ZodCatch:()=>od,$ZodCheck:()=>me,$ZodCheckBigIntFormat:()=>Ul,$ZodCheckEndsWith:()=>Ql,$ZodCheckGreaterThan:()=>gs,$ZodCheckIncludes:()=>Yl,$ZodCheckLengthEquals:()=>Jl,$ZodCheckLessThan:()=>hs,$ZodCheckLowerCase:()=>Vl,$ZodCheckMaxLength:()=>Bl,$ZodCheckMaxSize:()=>Zl,$ZodCheckMimeType:()=>tu,$ZodCheckMinLength:()=>Gl,$ZodCheckMinSize:()=>Hl,$ZodCheckMultipleOf:()=>jl,$ZodCheckNumberFormat:()=>Fl,$ZodCheckOverwrite:()=>nu,$ZodCheckProperty:()=>eu,$ZodCheckRegex:()=>ql,$ZodCheckSizeEquals:()=>Wl,$ZodCheckStartsWith:()=>Xl,$ZodCheckStringFormat:()=>gr,$ZodCheckUpperCase:()=>Kl,$ZodCodec:()=>Ii,$ZodCustom:()=>md,$ZodCustomStringFormat:()=>Ru,$ZodDate:()=>Fu,$ZodDefault:()=>td,$ZodDiscriminatedUnion:()=>Wu,$ZodE164:()=>Tu,$ZodEmail:()=>au,$ZodEmoji:()=>lu,$ZodEncodeError:()=>tn,$ZodEnum:()=>Vu,$ZodError:()=>vi,$ZodExactOptional:()=>Qu,$ZodFile:()=>Yu,$ZodFunction:()=>ud,$ZodGUID:()=>ou,$ZodIPv4:()=>_u,$ZodIPv6:()=>xu,$ZodISODate:()=>yu,$ZodISODateTime:()=>gu,$ZodISODuration:()=>vu,$ZodISOTime:()=>bu,$ZodIntersection:()=>Bu,$ZodJWT:()=>Pu,$ZodKSUID:()=>hu,$ZodLazy:()=>pd,$ZodLiteral:()=>Ku,$ZodMAC:()=>Su,$ZodMap:()=>Ju,$ZodNaN:()=>sd,$ZodNanoID:()=>uu,$ZodNever:()=>Mu,$ZodNonOptional:()=>rd,$ZodNull:()=>Lu,$ZodNullable:()=>ed,$ZodNumber:()=>Ss,$ZodNumberFormat:()=>zu,$ZodObject:()=>Sy,$ZodObjectJIT:()=>Zu,$ZodOptional:()=>ks,$ZodPipe:()=>ad,$ZodPrefault:()=>nd,$ZodPromise:()=>dd,$ZodReadonly:()=>cd,$ZodRealError:()=>Ve,$ZodRecord:()=>Gu,$ZodRegistry:()=>Ps,$ZodSet:()=>qu,$ZodString:()=>On,$ZodStringFormat:()=>ae,$ZodSuccess:()=>id,$ZodSymbol:()=>Cu,$ZodTemplateLiteral:()=>ld,$ZodTransform:()=>Xu,$ZodTuple:()=>ws,$ZodType:()=>Y,$ZodULID:()=>mu,$ZodURL:()=>cu,$ZodUUID:()=>su,$ZodUndefined:()=>Du,$ZodUnion:()=>Ei,$ZodUnknown:()=>Ou,$ZodVoid:()=>ju,$ZodXID:()=>fu,$ZodXor:()=>Hu,$brand:()=>es,$constructor:()=>k,$input:()=>hd,$output:()=>fd,Doc:()=>wi,JSONSchema:()=>xb,JSONSchemaGenerator:()=>sa,NEVER:()=>Kc,TimePrecision:()=>vd,_any:()=>Fd,_array:()=>Jd,_base64:()=>Js,_base64url:()=>qs,_bigint:()=>Cd,_boolean:()=>zd,_catch:()=>Ik,_check:()=>_b,_cidrv4:()=>Bs,_cidrv6:()=>Gs,_coercedBigint:()=>Dd,_coercedBoolean:()=>Nd,_coercedDate:()=>Bd,_coercedNumber:()=>kd,_coercedString:()=>yd,_cuid:()=>Ms,_cuid2:()=>js,_custom:()=>Vd,_date:()=>Wd,_decode:()=>ss,_decodeAsync:()=>cs,_default:()=>wk,_discriminatedUnion:()=>pk,_e164:()=>Vs,_email:()=>zs,_emoji:()=>As,_encode:()=>os,_encodeAsync:()=>as,_endsWith:()=>$r,_enum:()=>bk,_file:()=>qd,_float32:()=>Id,_float64:()=>Td,_gt:()=>kt,_gte:()=>Fe,_guid:()=>Ri,_includes:()=>xr,_int:()=>Ed,_int32:()=>Pd,_int64:()=>Ld,_intersection:()=>mk,_ipv4:()=>Hs,_ipv6:()=>Ws,_isoDate:()=>xd,_isoDateTime:()=>_d,_isoDuration:()=>$d,_isoTime:()=>Sd,_jwt:()=>Ks,_ksuid:()=>Zs,_lazy:()=>zk,_length:()=>Fn,_literal:()=>_k,_lowercase:()=>vr,_lt:()=>wt,_lte:()=>Xe,_mac:()=>bd,_map:()=>gk,_max:()=>Xe,_maxLength:()=>jn,_maxSize:()=>cn,_mime:()=>wr,_min:()=>Fe,_minLength:()=>Ot,_minSize:()=>Et,_multipleOf:()=>an,_nan:()=>Gd,_nanoid:()=>Os,_nativeEnum:()=>vk,_negative:()=>Xs,_never:()=>Zd,_nonnegative:()=>ea,_nonoptional:()=>kk,_nonpositive:()=>Qs,_normalize:()=>kr,_null:()=>jd,_nullable:()=>$k,_number:()=>wd,_optional:()=>Sk,_overwrite:()=>vt,_parse:()=>pr,_parseAsync:()=>mr,_pipe:()=>Tk,_positive:()=>Ys,_promise:()=>Nk,_property:()=>ta,_readonly:()=>Pk,_record:()=>hk,_refine:()=>Kd,_regex:()=>br,_safeDecode:()=>us,_safeDecodeAsync:()=>ps,_safeEncode:()=>ls,_safeEncodeAsync:()=>ds,_safeParse:()=>fr,_safeParseAsync:()=>hr,_set:()=>yk,_size:()=>Mn,_slugify:()=>Pr,_startsWith:()=>Sr,_string:()=>gd,_stringFormat:()=>Rr,_stringbool:()=>ep,_success:()=>Ek,_superRefine:()=>Yd,_symbol:()=>Od,_templateLiteral:()=>Rk,_toLowerCase:()=>Ir,_toUpperCase:()=>Tr,_transform:()=>xk,_trim:()=>Er,_tuple:()=>fk,_uint32:()=>Rd,_uint64:()=>Ad,_ulid:()=>Fs,_undefined:()=>Md,_union:()=>uk,_unknown:()=>Ud,_uppercase:()=>_r,_url:()=>zi,_uuid:()=>Ns,_uuidv4:()=>Cs,_uuidv6:()=>Ds,_uuidv7:()=>Ls,_void:()=>Hd,_xid:()=>Us,_xor:()=>dk,clone:()=>je,config:()=>xe,createStandardJSONSchemaMethod:()=>zr,createToJSONSchemaMethod:()=>tp,decode:()=>L$,decodeAsync:()=>O$,describe:()=>Xd,encode:()=>D$,encodeAsync:()=>A$,extractDefs:()=>un,finalize:()=>dn,flattenError:()=>_i,formatError:()=>xi,globalConfig:()=>pi,globalRegistry:()=>De,initializeContext:()=>ln,isValidBase64:()=>ku,isValidBase64URL:()=>by,isValidJWT:()=>vy,locales:()=>Pi,meta:()=>Qd,parse:()=>rs,parseAsync:()=>is,prettifyError:()=>cl,process:()=>oe,regexes:()=>at,registry:()=>Rs,safeDecode:()=>j$,safeDecodeAsync:()=>U$,safeEncode:()=>M$,safeEncodeAsync:()=>F$,safeParse:()=>ll,safeParseAsync:()=>ul,toDotPath:()=>ey,toJSONSchema:()=>oa,treeifyError:()=>al,util:()=>M,version:()=>ru});var Kc=Object.freeze({status:"aborted"});function k(n,e,r){function i(a,c){if(a._zod||Object.defineProperty(a,"_zod",{value:{def:c,constr:s,traits:new Set},enumerable:!1}),a._zod.traits.has(n))return;a._zod.traits.add(n),e(a,c);let l=s.prototype,u=Object.keys(l);for(let d=0;d<u.length;d++){let p=u[d];p in a||(a[p]=l[p].bind(a))}}let t=r?.Parent??Object;class o extends t{}Object.defineProperty(o,"name",{value:n});function s(a){var c;let l=r?.Parent?new o:this;i(l,a),(c=l._zod).deferred??(c.deferred=[]);for(let u of l._zod.deferred)u();return l}return Object.defineProperty(s,"init",{value:i}),Object.defineProperty(s,Symbol.hasInstance,{value:a=>r?.Parent&&a instanceof r.Parent?!0:a?._zod?.traits?.has(n)}),Object.defineProperty(s,"name",{value:n}),s}var es=Symbol("zod_brand"),bt=class extends Error{constructor(){super("Encountered Promise during synchronous parse. Use .parseAsync() instead.")}},tn=class extends Error{constructor(e){super(`Encountered unidirectional transform during encode: ${e}`),this.name="ZodEncodeError"}},pi={};function xe(n){return n&&Object.assign(pi,n),pi}var M={};et(M,{BIGINT_FORMAT_RANGES:()=>sl,Class:()=>Xc,NUMBER_FORMAT_RANGES:()=>ol,aborted:()=>sn,allowsEval:()=>tl,assert:()=>p$,assertEqual:()=>c$,assertIs:()=>u$,assertNever:()=>d$,assertNotEqual:()=>l$,assignProp:()=>rn,base64ToUint8Array:()=>Yg,base64urlToUint8Array:()=>P$,cached:()=>ur,captureStackTrace:()=>ns,cleanEnum:()=>T$,cleanRegex:()=>hi,clone:()=>je,cloneDef:()=>f$,createTransparentProxy:()=>_$,defineLazy:()=>ne,esc:()=>ts,escapeRegex:()=>st,extend:()=>$$,finalizeIssue:()=>qe,floatSafeRemainder:()=>Qc,getElementAtPath:()=>h$,getEnumValues:()=>fi,getLengthableOrigin:()=>bi,getParsedType:()=>v$,getSizableOrigin:()=>yi,hexToUint8Array:()=>z$,isObject:()=>Ln,isPlainObject:()=>on,issue:()=>dr,joinValues:()=>P,jsonStringifyReplacer:()=>lr,merge:()=>k$,mergeDefs:()=>At,normalizeParams:()=>j,nullish:()=>nn,numKeys:()=>b$,objectClone:()=>m$,omit:()=>S$,optionalKeys:()=>il,parsedType:()=>O,partial:()=>E$,pick:()=>x$,prefixIssues:()=>Ye,primitiveTypes:()=>rl,promiseAllObject:()=>g$,propertyKeyTypes:()=>gi,randomString:()=>y$,required:()=>I$,safeExtend:()=>w$,shallowClone:()=>nl,slugify:()=>el,stringifyPrimitive:()=>A,uint8ArrayToBase64:()=>Xg,uint8ArrayToBase64url:()=>R$,uint8ArrayToHex:()=>N$,unwrapMessage:()=>mi});function c$(n){return n}function l$(n){return n}function u$(n){}function d$(n){throw new Error("Unexpected value in exhaustive check")}function p$(n){}function fi(n){let e=Object.values(n).filter(i=>typeof i=="number");return Object.entries(n).filter(([i,t])=>e.indexOf(+i)===-1).map(([i,t])=>t)}function P(n,e="|"){return n.map(r=>A(r)).join(e)}function lr(n,e){return typeof e=="bigint"?e.toString():e}function ur(n){return{get value(){{let r=n();return Object.defineProperty(this,"value",{value:r}),r}throw new Error("cached value already set")}}}function nn(n){return n==null}function hi(n){let e=n.startsWith("^")?1:0,r=n.endsWith("$")?n.length-1:n.length;return n.slice(e,r)}function Qc(n,e){let r=(n.toString().split(".")[1]||"").length,i=e.toString(),t=(i.split(".")[1]||"").length;if(t===0&&/\d?e-\d?/.test(i)){let c=i.match(/\d?e-(\d?)/);c?.[1]&&(t=Number.parseInt(c[1]))}let o=r>t?r:t,s=Number.parseInt(n.toFixed(o).replace(".","")),a=Number.parseInt(e.toFixed(o).replace(".",""));return s%a/10**o}var Kg=Symbol("evaluating");function ne(n,e,r){let i;Object.defineProperty(n,e,{get(){if(i!==Kg)return i===void 0&&(i=Kg,i=r()),i},set(t){Object.defineProperty(n,e,{value:t})},configurable:!0})}function m$(n){return Object.create(Object.getPrototypeOf(n),Object.getOwnPropertyDescriptors(n))}function rn(n,e,r){Object.defineProperty(n,e,{value:r,writable:!0,enumerable:!0,configurable:!0})}function At(...n){let e={};for(let r of n){let i=Object.getOwnPropertyDescriptors(r);Object.assign(e,i)}return Object.defineProperties({},e)}function f$(n){return At(n._zod.def)}function h$(n,e){return e?e.reduce((r,i)=>r?.[i],n):n}function g$(n){let e=Object.keys(n),r=e.map(i=>n[i]);return Promise.all(r).then(i=>{let t={};for(let o=0;o<e.length;o++)t[e[o]]=i[o];return t})}function y$(n=10){let e="abcdefghijklmnopqrstuvwxyz",r="";for(let i=0;i<n;i++)r+=e[Math.floor(Math.random()*e.length)];return r}function ts(n){return JSON.stringify(n)}function el(n){return n.toLowerCase().trim().replace(/[^\w\s-]/g,"").replace(/[\s_-]+/g,"-").replace(/^-+|-+$/g,"")}var ns="captureStackTrace"in Error?Error.captureStackTrace:(...n)=>{};function Ln(n){return typeof n=="object"&&n!==null&&!Array.isArray(n)}var tl=ur(()=>{if(typeof navigator<"u"&&navigator?.userAgent?.includes("Cloudflare"))return!1;try{let n=Function;return new n(""),!0}catch{return!1}});function on(n){if(Ln(n)===!1)return!1;let e=n.constructor;if(e===void 0||typeof e!="function")return!0;let r=e.prototype;return!(Ln(r)===!1||Object.prototype.hasOwnProperty.call(r,"isPrototypeOf")===!1)}function nl(n){return on(n)?{...n}:Array.isArray(n)?[...n]:n}function b$(n){let e=0;for(let r in n)Object.prototype.hasOwnProperty.call(n,r)&&e++;return e}var v$=n=>{let e=typeof n;switch(e){case"undefined":return"undefined";case"string":return"string";case"number":return Number.isNaN(n)?"nan":"number";case"boolean":return"boolean";case"function":return"function";case"bigint":return"bigint";case"symbol":return"symbol";case"object":return Array.isArray(n)?"array":n===null?"null":n.then&&typeof n.then=="function"&&n.catch&&typeof n.catch=="function"?"promise":typeof Map<"u"&&n instanceof Map?"map":typeof Set<"u"&&n instanceof Set?"set":typeof Date<"u"&&n instanceof Date?"date":typeof File<"u"&&n instanceof File?"file":"object";default:throw new Error(`Unknown data type: ${e}`)}},gi=new Set(["string","number","symbol"]),rl=new Set(["string","number","bigint","boolean","symbol","undefined"]);function st(n){return n.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")}function je(n,e,r){let i=new n._zod.constr(e??n._zod.def);return(!e||r?.parent)&&(i._zod.parent=n),i}function j(n){let e=n;if(!e)return{};if(typeof e=="string")return{error:()=>e};if(e?.message!==void 0){if(e?.error!==void 0)throw new Error("Cannot specify both `message` and `error` params");e.error=e.message}return delete e.message,typeof e.error=="string"?{...e,error:()=>e.error}:e}function _$(n){let e;return new Proxy({},{get(r,i,t){return e??(e=n()),Reflect.get(e,i,t)},set(r,i,t,o){return e??(e=n()),Reflect.set(e,i,t,o)},has(r,i){return e??(e=n()),Reflect.has(e,i)},deleteProperty(r,i){return e??(e=n()),Reflect.deleteProperty(e,i)},ownKeys(r){return e??(e=n()),Reflect.ownKeys(e)},getOwnPropertyDescriptor(r,i){return e??(e=n()),Reflect.getOwnPropertyDescriptor(e,i)},defineProperty(r,i,t){return e??(e=n()),Reflect.defineProperty(e,i,t)}})}function A(n){return typeof n=="bigint"?n.toString()+"n":typeof n=="string"?`"${n}"`:`${n}`}function il(n){return Object.keys(n).filter(e=>n[e]._zod.optin==="optional"&&n[e]._zod.optout==="optional")}var ol={safeint:[Number.MIN_SAFE_INTEGER,Number.MAX_SAFE_INTEGER],int32:[-2147483648,2147483647],uint32:[0,4294967295],float32:[-34028234663852886e22,34028234663852886e22],float64:[-Number.MAX_VALUE,Number.MAX_VALUE]},sl={int64:[BigInt("-9223372036854775808"),BigInt("9223372036854775807")],uint64:[BigInt(0),BigInt("18446744073709551615")]};function x$(n,e){let r=n._zod.def,i=r.checks;if(i&&i.length>0)throw new Error(".pick() cannot be used on object schemas containing refinements");let o=At(n._zod.def,{get shape(){let s={};for(let a in e){if(!(a in r.shape))throw new Error(`Unrecognized key: "${a}"`);e[a]&&(s[a]=r.shape[a])}return rn(this,"shape",s),s},checks:[]});return je(n,o)}function S$(n,e){let r=n._zod.def,i=r.checks;if(i&&i.length>0)throw new Error(".omit() cannot be used on object schemas containing refinements");let o=At(n._zod.def,{get shape(){let s={...n._zod.def.shape};for(let a in e){if(!(a in r.shape))throw new Error(`Unrecognized key: "${a}"`);e[a]&&delete s[a]}return rn(this,"shape",s),s},checks:[]});return je(n,o)}function $$(n,e){if(!on(e))throw new Error("Invalid input to extend: expected a plain object");let r=n._zod.def.checks;if(r&&r.length>0){let o=n._zod.def.shape;for(let s in e)if(Object.getOwnPropertyDescriptor(o,s)!==void 0)throw new Error("Cannot overwrite keys on object schemas containing refinements. Use `.safeExtend()` instead.")}let t=At(n._zod.def,{get shape(){let o={...n._zod.def.shape,...e};return rn(this,"shape",o),o}});return je(n,t)}function w$(n,e){if(!on(e))throw new Error("Invalid input to safeExtend: expected a plain object");let r=At(n._zod.def,{get shape(){let i={...n._zod.def.shape,...e};return rn(this,"shape",i),i}});return je(n,r)}function k$(n,e){let r=At(n._zod.def,{get shape(){let i={...n._zod.def.shape,...e._zod.def.shape};return rn(this,"shape",i),i},get catchall(){return e._zod.def.catchall},checks:[]});return je(n,r)}function E$(n,e,r){let t=e._zod.def.checks;if(t&&t.length>0)throw new Error(".partial() cannot be used on object schemas containing refinements");let s=At(e._zod.def,{get shape(){let a=e._zod.def.shape,c={...a};if(r)for(let l in r){if(!(l in a))throw new Error(`Unrecognized key: "${l}"`);r[l]&&(c[l]=n?new n({type:"optional",innerType:a[l]}):a[l])}else for(let l in a)c[l]=n?new n({type:"optional",innerType:a[l]}):a[l];return rn(this,"shape",c),c},checks:[]});return je(e,s)}function I$(n,e,r){let i=At(e._zod.def,{get shape(){let t=e._zod.def.shape,o={...t};if(r)for(let s in r){if(!(s in o))throw new Error(`Unrecognized key: "${s}"`);r[s]&&(o[s]=new n({type:"nonoptional",innerType:t[s]}))}else for(let s in t)o[s]=new n({type:"nonoptional",innerType:t[s]});return rn(this,"shape",o),o}});return je(e,i)}function sn(n,e=0){if(n.aborted===!0)return!0;for(let r=e;r<n.issues.length;r++)if(n.issues[r]?.continue!==!0)return!0;return!1}function Ye(n,e){return e.map(r=>{var i;return(i=r).path??(i.path=[]),r.path.unshift(n),r})}function mi(n){return typeof n=="string"?n:n?.message}function qe(n,e,r){let i={...n,path:n.path??[]};if(!n.message){let t=mi(n.inst?._zod.def?.error?.(n))??mi(e?.error?.(n))??mi(r.customError?.(n))??mi(r.localeError?.(n))??"Invalid input";i.message=t}return delete i.inst,delete i.continue,e?.reportInput||delete i.input,i}function yi(n){return n instanceof Set?"set":n instanceof Map?"map":n instanceof File?"file":"unknown"}function bi(n){return Array.isArray(n)?"array":typeof n=="string"?"string":"unknown"}function O(n){let e=typeof n;switch(e){case"number":return Number.isNaN(n)?"nan":"number";case"object":{if(n===null)return"null";if(Array.isArray(n))return"array";let r=n;if(r&&Object.getPrototypeOf(r)!==Object.prototype&&"constructor"in r&&r.constructor)return r.constructor.name}}return e}function dr(...n){let[e,r,i]=n;return typeof e=="string"?{message:e,code:"custom",input:r,inst:i}:{...e}}function T$(n){return Object.entries(n).filter(([e,r])=>Number.isNaN(Number.parseInt(e,10))).map(e=>e[1])}function Yg(n){let e=atob(n),r=new Uint8Array(e.length);for(let i=0;i<e.length;i++)r[i]=e.charCodeAt(i);return r}function Xg(n){let e="";for(let r=0;r<n.length;r++)e+=String.fromCharCode(n[r]);return btoa(e)}function P$(n){let e=n.replace(/-/g,"+").replace(/_/g,"/"),r="=".repeat((4-e.length%4)%4);return Yg(e+r)}function R$(n){return Xg(n).replace(/\+/g,"-").replace(/\//g,"_").replace(/=/g,"")}function z$(n){let e=n.replace(/^0x/,"");if(e.length%2!==0)throw new Error("Invalid hex string length");let r=new Uint8Array(e.length/2);for(let i=0;i<e.length;i+=2)r[i/2]=Number.parseInt(e.slice(i,i+2),16);return r}function N$(n){return Array.from(n).map(e=>e.toString(16).padStart(2,"0")).join("")}var Xc=class{constructor(...e){}};var Qg=(n,e)=>{n.name="$ZodError",Object.defineProperty(n,"_zod",{value:n._zod,enumerable:!1}),Object.defineProperty(n,"issues",{value:e,enumerable:!1}),n.message=JSON.stringify(e,lr,2),Object.defineProperty(n,"toString",{value:()=>n.message,enumerable:!1})},vi=k("$ZodError",Qg),Ve=k("$ZodError",Qg,{Parent:Error});function _i(n,e=r=>r.message){let r={},i=[];for(let t of n.issues)t.path.length>0?(r[t.path[0]]=r[t.path[0]]||[],r[t.path[0]].push(e(t))):i.push(e(t));return{formErrors:i,fieldErrors:r}}function xi(n,e=r=>r.message){let r={_errors:[]},i=t=>{for(let o of t.issues)if(o.code==="invalid_union"&&o.errors.length)o.errors.map(s=>i({issues:s}));else if(o.code==="invalid_key")i({issues:o.issues});else if(o.code==="invalid_element")i({issues:o.issues});else if(o.path.length===0)r._errors.push(e(o));else{let s=r,a=0;for(;a<o.path.length;){let c=o.path[a];a===o.path.length-1?(s[c]=s[c]||{_errors:[]},s[c]._errors.push(e(o))):s[c]=s[c]||{_errors:[]},s=s[c],a++}}};return i(n),r}function al(n,e=r=>r.message){let r={errors:[]},i=(t,o=[])=>{var s,a;for(let c of t.issues)if(c.code==="invalid_union"&&c.errors.length)c.errors.map(l=>i({issues:l},c.path));else if(c.code==="invalid_key")i({issues:c.issues},c.path);else if(c.code==="invalid_element")i({issues:c.issues},c.path);else{let l=[...o,...c.path];if(l.length===0){r.errors.push(e(c));continue}let u=r,d=0;for(;d<l.length;){let p=l[d],f=d===l.length-1;typeof p=="string"?(u.properties??(u.properties={}),(s=u.properties)[p]??(s[p]={errors:[]}),u=u.properties[p]):(u.items??(u.items=[]),(a=u.items)[p]??(a[p]={errors:[]}),u=u.items[p]),f&&u.errors.push(e(c)),d++}}};return i(n),r}function ey(n){let e=[],r=n.map(i=>typeof i=="object"?i.key:i);for(let i of r)typeof i=="number"?e.push(`[${i}]`):typeof i=="symbol"?e.push(`[${JSON.stringify(String(i))}]`):/[^\w$]/.test(i)?e.push(`[${JSON.stringify(i)}]`):(e.length&&e.push("."),e.push(i));return e.join("")}function cl(n){let e=[],r=[...n.issues].sort((i,t)=>(i.path??[]).length-(t.path??[]).length);for(let i of r)e.push(`\u2716 ${i.message}`),i.path?.length&&e.push(` \u2192 at ${ey(i.path)}`);return e.join(`
737
+ `)}var pr=n=>(e,r,i,t)=>{let o=i?Object.assign(i,{async:!1}):{async:!1},s=e._zod.run({value:r,issues:[]},o);if(s instanceof Promise)throw new bt;if(s.issues.length){let a=new(t?.Err??n)(s.issues.map(c=>qe(c,o,xe())));throw ns(a,t?.callee),a}return s.value},rs=pr(Ve),mr=n=>async(e,r,i,t)=>{let o=i?Object.assign(i,{async:!0}):{async:!0},s=e._zod.run({value:r,issues:[]},o);if(s instanceof Promise&&(s=await s),s.issues.length){let a=new(t?.Err??n)(s.issues.map(c=>qe(c,o,xe())));throw ns(a,t?.callee),a}return s.value},is=mr(Ve),fr=n=>(e,r,i)=>{let t=i?{...i,async:!1}:{async:!1},o=e._zod.run({value:r,issues:[]},t);if(o instanceof Promise)throw new bt;return o.issues.length?{success:!1,error:new(n??vi)(o.issues.map(s=>qe(s,t,xe())))}:{success:!0,data:o.value}},ll=fr(Ve),hr=n=>async(e,r,i)=>{let t=i?Object.assign(i,{async:!0}):{async:!0},o=e._zod.run({value:r,issues:[]},t);return o instanceof Promise&&(o=await o),o.issues.length?{success:!1,error:new n(o.issues.map(s=>qe(s,t,xe())))}:{success:!0,data:o.value}},ul=hr(Ve),os=n=>(e,r,i)=>{let t=i?Object.assign(i,{direction:"backward"}):{direction:"backward"};return pr(n)(e,r,t)},D$=os(Ve),ss=n=>(e,r,i)=>pr(n)(e,r,i),L$=ss(Ve),as=n=>async(e,r,i)=>{let t=i?Object.assign(i,{direction:"backward"}):{direction:"backward"};return mr(n)(e,r,t)},A$=as(Ve),cs=n=>async(e,r,i)=>mr(n)(e,r,i),O$=cs(Ve),ls=n=>(e,r,i)=>{let t=i?Object.assign(i,{direction:"backward"}):{direction:"backward"};return fr(n)(e,r,t)},M$=ls(Ve),us=n=>(e,r,i)=>fr(n)(e,r,i),j$=us(Ve),ds=n=>async(e,r,i)=>{let t=i?Object.assign(i,{direction:"backward"}):{direction:"backward"};return hr(n)(e,r,t)},F$=ds(Ve),ps=n=>async(e,r,i)=>hr(n)(e,r,i),U$=ps(Ve);var at={};et(at,{base64:()=>El,base64url:()=>ms,bigint:()=>Nl,boolean:()=>Dl,browserEmail:()=>V$,cidrv4:()=>wl,cidrv6:()=>kl,cuid:()=>dl,cuid2:()=>pl,date:()=>Tl,datetime:()=>Rl,domain:()=>X$,duration:()=>yl,e164:()=>Il,email:()=>vl,emoji:()=>_l,extendedDuration:()=>Z$,guid:()=>bl,hex:()=>Q$,hostname:()=>Y$,html5Email:()=>G$,idnEmail:()=>q$,integer:()=>Cl,ipv4:()=>xl,ipv6:()=>Sl,ksuid:()=>hl,lowercase:()=>Ol,mac:()=>$l,md5_base64:()=>tw,md5_base64url:()=>nw,md5_hex:()=>ew,nanoid:()=>gl,null:()=>Ll,number:()=>fs,rfc5322Email:()=>J$,sha1_base64:()=>iw,sha1_base64url:()=>ow,sha1_hex:()=>rw,sha256_base64:()=>aw,sha256_base64url:()=>cw,sha256_hex:()=>sw,sha384_base64:()=>uw,sha384_base64url:()=>dw,sha384_hex:()=>lw,sha512_base64:()=>mw,sha512_base64url:()=>fw,sha512_hex:()=>pw,string:()=>zl,time:()=>Pl,ulid:()=>ml,undefined:()=>Al,unicodeEmail:()=>ty,uppercase:()=>Ml,uuid:()=>An,uuid4:()=>H$,uuid6:()=>W$,uuid7:()=>B$,xid:()=>fl});var dl=/^[cC][^\s-]{8,}$/,pl=/^[0-9a-z]+$/,ml=/^[0-9A-HJKMNP-TV-Za-hjkmnp-tv-z]{26}$/,fl=/^[0-9a-vA-V]{20}$/,hl=/^[A-Za-z0-9]{27}$/,gl=/^[a-zA-Z0-9_-]{21}$/,yl=/^P(?:(\d+W)|(?!.*W)(?=\d|T\d)(\d+Y)?(\d+M)?(\d+D)?(T(?=\d)(\d+H)?(\d+M)?(\d+([.,]\d+)?S)?)?)$/,Z$=/^[-+]?P(?!$)(?:(?:[-+]?\d+Y)|(?:[-+]?\d+[.,]\d+Y$))?(?:(?:[-+]?\d+M)|(?:[-+]?\d+[.,]\d+M$))?(?:(?:[-+]?\d+W)|(?:[-+]?\d+[.,]\d+W$))?(?:(?:[-+]?\d+D)|(?:[-+]?\d+[.,]\d+D$))?(?:T(?=[\d+-])(?:(?:[-+]?\d+H)|(?:[-+]?\d+[.,]\d+H$))?(?:(?:[-+]?\d+M)|(?:[-+]?\d+[.,]\d+M$))?(?:[-+]?\d+(?:[.,]\d+)?S)?)??$/,bl=/^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12})$/,An=n=>n?new RegExp(`^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-${n}[0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12})$`):/^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$/,H$=An(4),W$=An(6),B$=An(7),vl=/^(?!\.)(?!.*\.\.)([A-Za-z0-9_'+\-\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\-]*\.)+[A-Za-z]{2,}$/,G$=/^[a-zA-Z0-9.!#$%&'*+/=?^_`{|}~-]+@[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\.[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)*$/,J$=/^(([^<>()\[\]\\.,;:\s@"]+(\.[^<>()\[\]\\.,;:\s@"]+)*)|(".+"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))$/,ty=/^[^\s@"]{1,64}@[^\s@]{1,255}$/u,q$=ty,V$=/^[a-zA-Z0-9.!#$%&'*+/=?^_`{|}~-]+@[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\.[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)*$/,K$="^(\\p{Extended_Pictographic}|\\p{Emoji_Component})+$";function _l(){return new RegExp(K$,"u")}var xl=/^(?:(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\.){3}(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])$/,Sl=/^(([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|:((:[0-9a-fA-F]{1,4}){1,7}|:))$/,$l=n=>{let e=st(n??":");return new RegExp(`^(?:[0-9A-F]{2}${e}){5}[0-9A-F]{2}$|^(?:[0-9a-f]{2}${e}){5}[0-9a-f]{2}$`)},wl=/^((25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\.){3}(25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\/([0-9]|[1-2][0-9]|3[0-2])$/,kl=/^(([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}|::|([0-9a-fA-F]{1,4})?::([0-9a-fA-F]{1,4}:?){0,6})\/(12[0-8]|1[01][0-9]|[1-9]?[0-9])$/,El=/^$|^(?:[0-9a-zA-Z+/]{4})*(?:(?:[0-9a-zA-Z+/]{2}==)|(?:[0-9a-zA-Z+/]{3}=))?$/,ms=/^[A-Za-z0-9_-]*$/,Y$=/^(?=.{1,253}\.?$)[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\.[a-zA-Z0-9](?:[-0-9a-zA-Z]{0,61}[0-9a-zA-Z])?)*\.?$/,X$=/^([a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?\.)+[a-zA-Z]{2,}$/,Il=/^\+[1-9]\d{6,14}$/,ny="(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))",Tl=new RegExp(`^${ny}$`);function ry(n){let e="(?:[01]\\d|2[0-3]):[0-5]\\d";return typeof n.precision=="number"?n.precision===-1?`${e}`:n.precision===0?`${e}:[0-5]\\d`:`${e}:[0-5]\\d\\.\\d{${n.precision}}`:`${e}(?::[0-5]\\d(?:\\.\\d+)?)?`}function Pl(n){return new RegExp(`^${ry(n)}$`)}function Rl(n){let e=ry({precision:n.precision}),r=["Z"];n.local&&r.push(""),n.offset&&r.push("([+-](?:[01]\\d|2[0-3]):[0-5]\\d)");let i=`${e}(?:${r.join("|")})`;return new RegExp(`^${ny}T(?:${i})$`)}var zl=n=>{let e=n?`[\\s\\S]{${n?.minimum??0},${n?.maximum??""}}`:"[\\s\\S]*";return new RegExp(`^${e}$`)},Nl=/^-?\d+n?$/,Cl=/^-?\d+$/,fs=/^-?\d+(?:\.\d+)?$/,Dl=/^(?:true|false)$/i,Ll=/^null$/i;var Al=/^undefined$/i;var Ol=/^[^A-Z]*$/,Ml=/^[^a-z]*$/,Q$=/^[0-9a-fA-F]*$/;function Si(n,e){return new RegExp(`^[A-Za-z0-9+/]{${n}}${e}$`)}function $i(n){return new RegExp(`^[A-Za-z0-9_-]{${n}}$`)}var ew=/^[0-9a-fA-F]{32}$/,tw=Si(22,"=="),nw=$i(22),rw=/^[0-9a-fA-F]{40}$/,iw=Si(27,"="),ow=$i(27),sw=/^[0-9a-fA-F]{64}$/,aw=Si(43,"="),cw=$i(43),lw=/^[0-9a-fA-F]{96}$/,uw=Si(64,""),dw=$i(64),pw=/^[0-9a-fA-F]{128}$/,mw=Si(86,"=="),fw=$i(86);var me=k("$ZodCheck",(n,e)=>{var r;n._zod??(n._zod={}),n._zod.def=e,(r=n._zod).onattach??(r.onattach=[])}),oy={number:"number",bigint:"bigint",object:"date"},hs=k("$ZodCheckLessThan",(n,e)=>{me.init(n,e);let r=oy[typeof e.value];n._zod.onattach.push(i=>{let t=i._zod.bag,o=(e.inclusive?t.maximum:t.exclusiveMaximum)??Number.POSITIVE_INFINITY;e.value<o&&(e.inclusive?t.maximum=e.value:t.exclusiveMaximum=e.value)}),n._zod.check=i=>{(e.inclusive?i.value<=e.value:i.value<e.value)||i.issues.push({origin:r,code:"too_big",maximum:typeof e.value=="object"?e.value.getTime():e.value,input:i.value,inclusive:e.inclusive,inst:n,continue:!e.abort})}}),gs=k("$ZodCheckGreaterThan",(n,e)=>{me.init(n,e);let r=oy[typeof e.value];n._zod.onattach.push(i=>{let t=i._zod.bag,o=(e.inclusive?t.minimum:t.exclusiveMinimum)??Number.NEGATIVE_INFINITY;e.value>o&&(e.inclusive?t.minimum=e.value:t.exclusiveMinimum=e.value)}),n._zod.check=i=>{(e.inclusive?i.value>=e.value:i.value>e.value)||i.issues.push({origin:r,code:"too_small",minimum:typeof e.value=="object"?e.value.getTime():e.value,input:i.value,inclusive:e.inclusive,inst:n,continue:!e.abort})}}),jl=k("$ZodCheckMultipleOf",(n,e)=>{me.init(n,e),n._zod.onattach.push(r=>{var i;(i=r._zod.bag).multipleOf??(i.multipleOf=e.value)}),n._zod.check=r=>{if(typeof r.value!=typeof e.value)throw new Error("Cannot mix number and bigint in multiple_of check.");(typeof r.value=="bigint"?r.value%e.value===BigInt(0):Qc(r.value,e.value)===0)||r.issues.push({origin:typeof r.value,code:"not_multiple_of",divisor:e.value,input:r.value,inst:n,continue:!e.abort})}}),Fl=k("$ZodCheckNumberFormat",(n,e)=>{me.init(n,e),e.format=e.format||"float64";let r=e.format?.includes("int"),i=r?"int":"number",[t,o]=ol[e.format];n._zod.onattach.push(s=>{let a=s._zod.bag;a.format=e.format,a.minimum=t,a.maximum=o,r&&(a.pattern=Cl)}),n._zod.check=s=>{let a=s.value;if(r){if(!Number.isInteger(a)){s.issues.push({expected:i,format:e.format,code:"invalid_type",continue:!1,input:a,inst:n});return}if(!Number.isSafeInteger(a)){a>0?s.issues.push({input:a,code:"too_big",maximum:Number.MAX_SAFE_INTEGER,note:"Integers must be within the safe integer range.",inst:n,origin:i,inclusive:!0,continue:!e.abort}):s.issues.push({input:a,code:"too_small",minimum:Number.MIN_SAFE_INTEGER,note:"Integers must be within the safe integer range.",inst:n,origin:i,inclusive:!0,continue:!e.abort});return}}a<t&&s.issues.push({origin:"number",input:a,code:"too_small",minimum:t,inclusive:!0,inst:n,continue:!e.abort}),a>o&&s.issues.push({origin:"number",input:a,code:"too_big",maximum:o,inclusive:!0,inst:n,continue:!e.abort})}}),Ul=k("$ZodCheckBigIntFormat",(n,e)=>{me.init(n,e);let[r,i]=sl[e.format];n._zod.onattach.push(t=>{let o=t._zod.bag;o.format=e.format,o.minimum=r,o.maximum=i}),n._zod.check=t=>{let o=t.value;o<r&&t.issues.push({origin:"bigint",input:o,code:"too_small",minimum:r,inclusive:!0,inst:n,continue:!e.abort}),o>i&&t.issues.push({origin:"bigint",input:o,code:"too_big",maximum:i,inclusive:!0,inst:n,continue:!e.abort})}}),Zl=k("$ZodCheckMaxSize",(n,e)=>{var r;me.init(n,e),(r=n._zod.def).when??(r.when=i=>{let t=i.value;return!nn(t)&&t.size!==void 0}),n._zod.onattach.push(i=>{let t=i._zod.bag.maximum??Number.POSITIVE_INFINITY;e.maximum<t&&(i._zod.bag.maximum=e.maximum)}),n._zod.check=i=>{let t=i.value;t.size<=e.maximum||i.issues.push({origin:yi(t),code:"too_big",maximum:e.maximum,inclusive:!0,input:t,inst:n,continue:!e.abort})}}),Hl=k("$ZodCheckMinSize",(n,e)=>{var r;me.init(n,e),(r=n._zod.def).when??(r.when=i=>{let t=i.value;return!nn(t)&&t.size!==void 0}),n._zod.onattach.push(i=>{let t=i._zod.bag.minimum??Number.NEGATIVE_INFINITY;e.minimum>t&&(i._zod.bag.minimum=e.minimum)}),n._zod.check=i=>{let t=i.value;t.size>=e.minimum||i.issues.push({origin:yi(t),code:"too_small",minimum:e.minimum,inclusive:!0,input:t,inst:n,continue:!e.abort})}}),Wl=k("$ZodCheckSizeEquals",(n,e)=>{var r;me.init(n,e),(r=n._zod.def).when??(r.when=i=>{let t=i.value;return!nn(t)&&t.size!==void 0}),n._zod.onattach.push(i=>{let t=i._zod.bag;t.minimum=e.size,t.maximum=e.size,t.size=e.size}),n._zod.check=i=>{let t=i.value,o=t.size;if(o===e.size)return;let s=o>e.size;i.issues.push({origin:yi(t),...s?{code:"too_big",maximum:e.size}:{code:"too_small",minimum:e.size},inclusive:!0,exact:!0,input:i.value,inst:n,continue:!e.abort})}}),Bl=k("$ZodCheckMaxLength",(n,e)=>{var r;me.init(n,e),(r=n._zod.def).when??(r.when=i=>{let t=i.value;return!nn(t)&&t.length!==void 0}),n._zod.onattach.push(i=>{let t=i._zod.bag.maximum??Number.POSITIVE_INFINITY;e.maximum<t&&(i._zod.bag.maximum=e.maximum)}),n._zod.check=i=>{let t=i.value;if(t.length<=e.maximum)return;let s=bi(t);i.issues.push({origin:s,code:"too_big",maximum:e.maximum,inclusive:!0,input:t,inst:n,continue:!e.abort})}}),Gl=k("$ZodCheckMinLength",(n,e)=>{var r;me.init(n,e),(r=n._zod.def).when??(r.when=i=>{let t=i.value;return!nn(t)&&t.length!==void 0}),n._zod.onattach.push(i=>{let t=i._zod.bag.minimum??Number.NEGATIVE_INFINITY;e.minimum>t&&(i._zod.bag.minimum=e.minimum)}),n._zod.check=i=>{let t=i.value;if(t.length>=e.minimum)return;let s=bi(t);i.issues.push({origin:s,code:"too_small",minimum:e.minimum,inclusive:!0,input:t,inst:n,continue:!e.abort})}}),Jl=k("$ZodCheckLengthEquals",(n,e)=>{var r;me.init(n,e),(r=n._zod.def).when??(r.when=i=>{let t=i.value;return!nn(t)&&t.length!==void 0}),n._zod.onattach.push(i=>{let t=i._zod.bag;t.minimum=e.length,t.maximum=e.length,t.length=e.length}),n._zod.check=i=>{let t=i.value,o=t.length;if(o===e.length)return;let s=bi(t),a=o>e.length;i.issues.push({origin:s,...a?{code:"too_big",maximum:e.length}:{code:"too_small",minimum:e.length},inclusive:!0,exact:!0,input:i.value,inst:n,continue:!e.abort})}}),gr=k("$ZodCheckStringFormat",(n,e)=>{var r,i;me.init(n,e),n._zod.onattach.push(t=>{let o=t._zod.bag;o.format=e.format,e.pattern&&(o.patterns??(o.patterns=new Set),o.patterns.add(e.pattern))}),e.pattern?(r=n._zod).check??(r.check=t=>{e.pattern.lastIndex=0,!e.pattern.test(t.value)&&t.issues.push({origin:"string",code:"invalid_format",format:e.format,input:t.value,...e.pattern?{pattern:e.pattern.toString()}:{},inst:n,continue:!e.abort})}):(i=n._zod).check??(i.check=()=>{})}),ql=k("$ZodCheckRegex",(n,e)=>{gr.init(n,e),n._zod.check=r=>{e.pattern.lastIndex=0,!e.pattern.test(r.value)&&r.issues.push({origin:"string",code:"invalid_format",format:"regex",input:r.value,pattern:e.pattern.toString(),inst:n,continue:!e.abort})}}),Vl=k("$ZodCheckLowerCase",(n,e)=>{e.pattern??(e.pattern=Ol),gr.init(n,e)}),Kl=k("$ZodCheckUpperCase",(n,e)=>{e.pattern??(e.pattern=Ml),gr.init(n,e)}),Yl=k("$ZodCheckIncludes",(n,e)=>{me.init(n,e);let r=st(e.includes),i=new RegExp(typeof e.position=="number"?`^.{${e.position}}${r}`:r);e.pattern=i,n._zod.onattach.push(t=>{let o=t._zod.bag;o.patterns??(o.patterns=new Set),o.patterns.add(i)}),n._zod.check=t=>{t.value.includes(e.includes,e.position)||t.issues.push({origin:"string",code:"invalid_format",format:"includes",includes:e.includes,input:t.value,inst:n,continue:!e.abort})}}),Xl=k("$ZodCheckStartsWith",(n,e)=>{me.init(n,e);let r=new RegExp(`^${st(e.prefix)}.*`);e.pattern??(e.pattern=r),n._zod.onattach.push(i=>{let t=i._zod.bag;t.patterns??(t.patterns=new Set),t.patterns.add(r)}),n._zod.check=i=>{i.value.startsWith(e.prefix)||i.issues.push({origin:"string",code:"invalid_format",format:"starts_with",prefix:e.prefix,input:i.value,inst:n,continue:!e.abort})}}),Ql=k("$ZodCheckEndsWith",(n,e)=>{me.init(n,e);let r=new RegExp(`.*${st(e.suffix)}$`);e.pattern??(e.pattern=r),n._zod.onattach.push(i=>{let t=i._zod.bag;t.patterns??(t.patterns=new Set),t.patterns.add(r)}),n._zod.check=i=>{i.value.endsWith(e.suffix)||i.issues.push({origin:"string",code:"invalid_format",format:"ends_with",suffix:e.suffix,input:i.value,inst:n,continue:!e.abort})}});function iy(n,e,r){n.issues.length&&e.issues.push(...Ye(r,n.issues))}var eu=k("$ZodCheckProperty",(n,e)=>{me.init(n,e),n._zod.check=r=>{let i=e.schema._zod.run({value:r.value[e.property],issues:[]},{});if(i instanceof Promise)return i.then(t=>iy(t,r,e.property));iy(i,r,e.property)}}),tu=k("$ZodCheckMimeType",(n,e)=>{me.init(n,e);let r=new Set(e.mime);n._zod.onattach.push(i=>{i._zod.bag.mime=e.mime}),n._zod.check=i=>{r.has(i.value.type)||i.issues.push({code:"invalid_value",values:e.mime,input:i.value.type,inst:n,continue:!e.abort})}}),nu=k("$ZodCheckOverwrite",(n,e)=>{me.init(n,e),n._zod.check=r=>{r.value=e.tx(r.value)}});var wi=class{constructor(e=[]){this.content=[],this.indent=0,this&&(this.args=e)}indented(e){this.indent+=1,e(this),this.indent-=1}write(e){if(typeof e=="function"){e(this,{execution:"sync"}),e(this,{execution:"async"});return}let i=e.split(`
738
+ `).filter(s=>s),t=Math.min(...i.map(s=>s.length-s.trimStart().length)),o=i.map(s=>s.slice(t)).map(s=>" ".repeat(this.indent*2)+s);for(let s of o)this.content.push(s)}compile(){let e=Function,r=this?.args,t=[...(this?.content??[""]).map(o=>` ${o}`)];return new e(...r,t.join(`
739
+ `))}};var ru={major:4,minor:3,patch:6};var Y=k("$ZodType",(n,e)=>{var r;n??(n={}),n._zod.def=e,n._zod.bag=n._zod.bag||{},n._zod.version=ru;let i=[...n._zod.def.checks??[]];n._zod.traits.has("$ZodCheck")&&i.unshift(n);for(let t of i)for(let o of t._zod.onattach)o(n);if(i.length===0)(r=n._zod).deferred??(r.deferred=[]),n._zod.deferred?.push(()=>{n._zod.run=n._zod.parse});else{let t=(s,a,c)=>{let l=sn(s),u;for(let d of a){if(d._zod.def.when){if(!d._zod.def.when(s))continue}else if(l)continue;let p=s.issues.length,f=d._zod.check(s);if(f instanceof Promise&&c?.async===!1)throw new bt;if(u||f instanceof Promise)u=(u??Promise.resolve()).then(async()=>{await f,s.issues.length!==p&&(l||(l=sn(s,p)))});else{if(s.issues.length===p)continue;l||(l=sn(s,p))}}return u?u.then(()=>s):s},o=(s,a,c)=>{if(sn(s))return s.aborted=!0,s;let l=t(a,i,c);if(l instanceof Promise){if(c.async===!1)throw new bt;return l.then(u=>n._zod.parse(u,c))}return n._zod.parse(l,c)};n._zod.run=(s,a)=>{if(a.skipChecks)return n._zod.parse(s,a);if(a.direction==="backward"){let l=n._zod.parse({value:s.value,issues:[]},{...a,skipChecks:!0});return l instanceof Promise?l.then(u=>o(u,s,a)):o(l,s,a)}let c=n._zod.parse(s,a);if(c instanceof Promise){if(a.async===!1)throw new bt;return c.then(l=>t(l,i,a))}return t(c,i,a)}}ne(n,"~standard",()=>({validate:t=>{try{let o=ll(n,t);return o.success?{value:o.data}:{issues:o.error?.issues}}catch{return ul(n,t).then(s=>s.success?{value:s.data}:{issues:s.error?.issues})}},vendor:"zod",version:1}))}),On=k("$ZodString",(n,e)=>{Y.init(n,e),n._zod.pattern=[...n?._zod.bag?.patterns??[]].pop()??zl(n._zod.bag),n._zod.parse=(r,i)=>{if(e.coerce)try{r.value=String(r.value)}catch{}return typeof r.value=="string"||r.issues.push({expected:"string",code:"invalid_type",input:r.value,inst:n}),r}}),ae=k("$ZodStringFormat",(n,e)=>{gr.init(n,e),On.init(n,e)}),ou=k("$ZodGUID",(n,e)=>{e.pattern??(e.pattern=bl),ae.init(n,e)}),su=k("$ZodUUID",(n,e)=>{if(e.version){let i={v1:1,v2:2,v3:3,v4:4,v5:5,v6:6,v7:7,v8:8}[e.version];if(i===void 0)throw new Error(`Invalid UUID version: "${e.version}"`);e.pattern??(e.pattern=An(i))}else e.pattern??(e.pattern=An());ae.init(n,e)}),au=k("$ZodEmail",(n,e)=>{e.pattern??(e.pattern=vl),ae.init(n,e)}),cu=k("$ZodURL",(n,e)=>{ae.init(n,e),n._zod.check=r=>{try{let i=r.value.trim(),t=new URL(i);e.hostname&&(e.hostname.lastIndex=0,e.hostname.test(t.hostname)||r.issues.push({code:"invalid_format",format:"url",note:"Invalid hostname",pattern:e.hostname.source,input:r.value,inst:n,continue:!e.abort})),e.protocol&&(e.protocol.lastIndex=0,e.protocol.test(t.protocol.endsWith(":")?t.protocol.slice(0,-1):t.protocol)||r.issues.push({code:"invalid_format",format:"url",note:"Invalid protocol",pattern:e.protocol.source,input:r.value,inst:n,continue:!e.abort})),e.normalize?r.value=t.href:r.value=i;return}catch{r.issues.push({code:"invalid_format",format:"url",input:r.value,inst:n,continue:!e.abort})}}}),lu=k("$ZodEmoji",(n,e)=>{e.pattern??(e.pattern=_l()),ae.init(n,e)}),uu=k("$ZodNanoID",(n,e)=>{e.pattern??(e.pattern=gl),ae.init(n,e)}),du=k("$ZodCUID",(n,e)=>{e.pattern??(e.pattern=dl),ae.init(n,e)}),pu=k("$ZodCUID2",(n,e)=>{e.pattern??(e.pattern=pl),ae.init(n,e)}),mu=k("$ZodULID",(n,e)=>{e.pattern??(e.pattern=ml),ae.init(n,e)}),fu=k("$ZodXID",(n,e)=>{e.pattern??(e.pattern=fl),ae.init(n,e)}),hu=k("$ZodKSUID",(n,e)=>{e.pattern??(e.pattern=hl),ae.init(n,e)}),gu=k("$ZodISODateTime",(n,e)=>{e.pattern??(e.pattern=Rl(e)),ae.init(n,e)}),yu=k("$ZodISODate",(n,e)=>{e.pattern??(e.pattern=Tl),ae.init(n,e)}),bu=k("$ZodISOTime",(n,e)=>{e.pattern??(e.pattern=Pl(e)),ae.init(n,e)}),vu=k("$ZodISODuration",(n,e)=>{e.pattern??(e.pattern=yl),ae.init(n,e)}),_u=k("$ZodIPv4",(n,e)=>{e.pattern??(e.pattern=xl),ae.init(n,e),n._zod.bag.format="ipv4"}),xu=k("$ZodIPv6",(n,e)=>{e.pattern??(e.pattern=Sl),ae.init(n,e),n._zod.bag.format="ipv6",n._zod.check=r=>{try{new URL(`http://[${r.value}]`)}catch{r.issues.push({code:"invalid_format",format:"ipv6",input:r.value,inst:n,continue:!e.abort})}}}),Su=k("$ZodMAC",(n,e)=>{e.pattern??(e.pattern=$l(e.delimiter)),ae.init(n,e),n._zod.bag.format="mac"}),$u=k("$ZodCIDRv4",(n,e)=>{e.pattern??(e.pattern=wl),ae.init(n,e)}),wu=k("$ZodCIDRv6",(n,e)=>{e.pattern??(e.pattern=kl),ae.init(n,e),n._zod.check=r=>{let i=r.value.split("/");try{if(i.length!==2)throw new Error;let[t,o]=i;if(!o)throw new Error;let s=Number(o);if(`${s}`!==o)throw new Error;if(s<0||s>128)throw new Error;new URL(`http://[${t}]`)}catch{r.issues.push({code:"invalid_format",format:"cidrv6",input:r.value,inst:n,continue:!e.abort})}}});function ku(n){if(n==="")return!0;if(n.length%4!==0)return!1;try{return atob(n),!0}catch{return!1}}var Eu=k("$ZodBase64",(n,e)=>{e.pattern??(e.pattern=El),ae.init(n,e),n._zod.bag.contentEncoding="base64",n._zod.check=r=>{ku(r.value)||r.issues.push({code:"invalid_format",format:"base64",input:r.value,inst:n,continue:!e.abort})}});function by(n){if(!ms.test(n))return!1;let e=n.replace(/[-_]/g,i=>i==="-"?"+":"/"),r=e.padEnd(Math.ceil(e.length/4)*4,"=");return ku(r)}var Iu=k("$ZodBase64URL",(n,e)=>{e.pattern??(e.pattern=ms),ae.init(n,e),n._zod.bag.contentEncoding="base64url",n._zod.check=r=>{by(r.value)||r.issues.push({code:"invalid_format",format:"base64url",input:r.value,inst:n,continue:!e.abort})}}),Tu=k("$ZodE164",(n,e)=>{e.pattern??(e.pattern=Il),ae.init(n,e)});function vy(n,e=null){try{let r=n.split(".");if(r.length!==3)return!1;let[i]=r;if(!i)return!1;let t=JSON.parse(atob(i));return!("typ"in t&&t?.typ!=="JWT"||!t.alg||e&&(!("alg"in t)||t.alg!==e))}catch{return!1}}var Pu=k("$ZodJWT",(n,e)=>{ae.init(n,e),n._zod.check=r=>{vy(r.value,e.alg)||r.issues.push({code:"invalid_format",format:"jwt",input:r.value,inst:n,continue:!e.abort})}}),Ru=k("$ZodCustomStringFormat",(n,e)=>{ae.init(n,e),n._zod.check=r=>{e.fn(r.value)||r.issues.push({code:"invalid_format",format:e.format,input:r.value,inst:n,continue:!e.abort})}}),Ss=k("$ZodNumber",(n,e)=>{Y.init(n,e),n._zod.pattern=n._zod.bag.pattern??fs,n._zod.parse=(r,i)=>{if(e.coerce)try{r.value=Number(r.value)}catch{}let t=r.value;if(typeof t=="number"&&!Number.isNaN(t)&&Number.isFinite(t))return r;let o=typeof t=="number"?Number.isNaN(t)?"NaN":Number.isFinite(t)?void 0:"Infinity":void 0;return r.issues.push({expected:"number",code:"invalid_type",input:t,inst:n,...o?{received:o}:{}}),r}}),zu=k("$ZodNumberFormat",(n,e)=>{Fl.init(n,e),Ss.init(n,e)}),ki=k("$ZodBoolean",(n,e)=>{Y.init(n,e),n._zod.pattern=Dl,n._zod.parse=(r,i)=>{if(e.coerce)try{r.value=!!r.value}catch{}let t=r.value;return typeof t=="boolean"||r.issues.push({expected:"boolean",code:"invalid_type",input:t,inst:n}),r}}),$s=k("$ZodBigInt",(n,e)=>{Y.init(n,e),n._zod.pattern=Nl,n._zod.parse=(r,i)=>{if(e.coerce)try{r.value=BigInt(r.value)}catch{}return typeof r.value=="bigint"||r.issues.push({expected:"bigint",code:"invalid_type",input:r.value,inst:n}),r}}),Nu=k("$ZodBigIntFormat",(n,e)=>{Ul.init(n,e),$s.init(n,e)}),Cu=k("$ZodSymbol",(n,e)=>{Y.init(n,e),n._zod.parse=(r,i)=>{let t=r.value;return typeof t=="symbol"||r.issues.push({expected:"symbol",code:"invalid_type",input:t,inst:n}),r}}),Du=k("$ZodUndefined",(n,e)=>{Y.init(n,e),n._zod.pattern=Al,n._zod.values=new Set([void 0]),n._zod.optin="optional",n._zod.optout="optional",n._zod.parse=(r,i)=>{let t=r.value;return typeof t>"u"||r.issues.push({expected:"undefined",code:"invalid_type",input:t,inst:n}),r}}),Lu=k("$ZodNull",(n,e)=>{Y.init(n,e),n._zod.pattern=Ll,n._zod.values=new Set([null]),n._zod.parse=(r,i)=>{let t=r.value;return t===null||r.issues.push({expected:"null",code:"invalid_type",input:t,inst:n}),r}}),Au=k("$ZodAny",(n,e)=>{Y.init(n,e),n._zod.parse=r=>r}),Ou=k("$ZodUnknown",(n,e)=>{Y.init(n,e),n._zod.parse=r=>r}),Mu=k("$ZodNever",(n,e)=>{Y.init(n,e),n._zod.parse=(r,i)=>(r.issues.push({expected:"never",code:"invalid_type",input:r.value,inst:n}),r)}),ju=k("$ZodVoid",(n,e)=>{Y.init(n,e),n._zod.parse=(r,i)=>{let t=r.value;return typeof t>"u"||r.issues.push({expected:"void",code:"invalid_type",input:t,inst:n}),r}}),Fu=k("$ZodDate",(n,e)=>{Y.init(n,e),n._zod.parse=(r,i)=>{if(e.coerce)try{r.value=new Date(r.value)}catch{}let t=r.value,o=t instanceof Date;return o&&!Number.isNaN(t.getTime())||r.issues.push({expected:"date",code:"invalid_type",input:t,...o?{received:"Invalid Date"}:{},inst:n}),r}});function ay(n,e,r){n.issues.length&&e.issues.push(...Ye(r,n.issues)),e.value[r]=n.value}var Uu=k("$ZodArray",(n,e)=>{Y.init(n,e),n._zod.parse=(r,i)=>{let t=r.value;if(!Array.isArray(t))return r.issues.push({expected:"array",code:"invalid_type",input:t,inst:n}),r;r.value=Array(t.length);let o=[];for(let s=0;s<t.length;s++){let a=t[s],c=e.element._zod.run({value:a,issues:[]},i);c instanceof Promise?o.push(c.then(l=>ay(l,r,s))):ay(c,r,s)}return o.length?Promise.all(o).then(()=>r):r}});function xs(n,e,r,i,t){if(n.issues.length){if(t&&!(r in i))return;e.issues.push(...Ye(r,n.issues))}n.value===void 0?r in i&&(e.value[r]=void 0):e.value[r]=n.value}function _y(n){let e=Object.keys(n.shape);for(let i of e)if(!n.shape?.[i]?._zod?.traits?.has("$ZodType"))throw new Error(`Invalid element at key "${i}": expected a Zod schema`);let r=il(n.shape);return{...n,keys:e,keySet:new Set(e),numKeys:e.length,optionalKeys:new Set(r)}}function xy(n,e,r,i,t,o){let s=[],a=t.keySet,c=t.catchall._zod,l=c.def.type,u=c.optout==="optional";for(let d in e){if(a.has(d))continue;if(l==="never"){s.push(d);continue}let p=c.run({value:e[d],issues:[]},i);p instanceof Promise?n.push(p.then(f=>xs(f,r,d,e,u))):xs(p,r,d,e,u)}return s.length&&r.issues.push({code:"unrecognized_keys",keys:s,input:e,inst:o}),n.length?Promise.all(n).then(()=>r):r}var Sy=k("$ZodObject",(n,e)=>{if(Y.init(n,e),!Object.getOwnPropertyDescriptor(e,"shape")?.get){let a=e.shape;Object.defineProperty(e,"shape",{get:()=>{let c={...a};return Object.defineProperty(e,"shape",{value:c}),c}})}let i=ur(()=>_y(e));ne(n._zod,"propValues",()=>{let a=e.shape,c={};for(let l in a){let u=a[l]._zod;if(u.values){c[l]??(c[l]=new Set);for(let d of u.values)c[l].add(d)}}return c});let t=Ln,o=e.catchall,s;n._zod.parse=(a,c)=>{s??(s=i.value);let l=a.value;if(!t(l))return a.issues.push({expected:"object",code:"invalid_type",input:l,inst:n}),a;a.value={};let u=[],d=s.shape;for(let p of s.keys){let f=d[p],m=f._zod.optout==="optional",h=f._zod.run({value:l[p],issues:[]},c);h instanceof Promise?u.push(h.then(v=>xs(v,a,p,l,m))):xs(h,a,p,l,m)}return o?xy(u,l,a,c,i.value,n):u.length?Promise.all(u).then(()=>a):a}}),Zu=k("$ZodObjectJIT",(n,e)=>{Sy.init(n,e);let r=n._zod.parse,i=ur(()=>_y(e)),t=p=>{let f=new wi(["shape","payload","ctx"]),m=i.value,h=x=>{let S=ts(x);return`shape[${S}]._zod.run({ value: input[${S}], issues: [] }, ctx)`};f.write("const input = payload.value;");let v=Object.create(null),b=0;for(let x of m.keys)v[x]=`key_${b++}`;f.write("const newResult = {};");for(let x of m.keys){let S=v[x],E=ts(x),z=p[x]?._zod?.optout==="optional";f.write(`const ${S} = ${h(x)};`),z?f.write(`
740
+ if (${S}.issues.length) {
741
+ if (${E} in input) {
742
+ payload.issues = payload.issues.concat(${S}.issues.map(iss => ({
743
+ ...iss,
744
+ path: iss.path ? [${E}, ...iss.path] : [${E}]
745
+ })));
746
+ }
747
+ }
748
+
749
+ if (${S}.value === undefined) {
750
+ if (${E} in input) {
751
+ newResult[${E}] = undefined;
752
+ }
753
+ } else {
754
+ newResult[${E}] = ${S}.value;
755
+ }
756
+
757
+ `):f.write(`
758
+ if (${S}.issues.length) {
759
+ payload.issues = payload.issues.concat(${S}.issues.map(iss => ({
760
+ ...iss,
761
+ path: iss.path ? [${E}, ...iss.path] : [${E}]
762
+ })));
763
+ }
764
+
765
+ if (${S}.value === undefined) {
766
+ if (${E} in input) {
767
+ newResult[${E}] = undefined;
768
+ }
769
+ } else {
770
+ newResult[${E}] = ${S}.value;
771
+ }
772
+
773
+ `)}f.write("payload.value = newResult;"),f.write("return payload;");let g=f.compile();return(x,S)=>g(p,x,S)},o,s=Ln,a=!pi.jitless,l=a&&tl.value,u=e.catchall,d;n._zod.parse=(p,f)=>{d??(d=i.value);let m=p.value;return s(m)?a&&l&&f?.async===!1&&f.jitless!==!0?(o||(o=t(e.shape)),p=o(p,f),u?xy([],m,p,f,d,n):p):r(p,f):(p.issues.push({expected:"object",code:"invalid_type",input:m,inst:n}),p)}});function cy(n,e,r,i){for(let o of n)if(o.issues.length===0)return e.value=o.value,e;let t=n.filter(o=>!sn(o));return t.length===1?(e.value=t[0].value,t[0]):(e.issues.push({code:"invalid_union",input:e.value,inst:r,errors:n.map(o=>o.issues.map(s=>qe(s,i,xe())))}),e)}var Ei=k("$ZodUnion",(n,e)=>{Y.init(n,e),ne(n._zod,"optin",()=>e.options.some(t=>t._zod.optin==="optional")?"optional":void 0),ne(n._zod,"optout",()=>e.options.some(t=>t._zod.optout==="optional")?"optional":void 0),ne(n._zod,"values",()=>{if(e.options.every(t=>t._zod.values))return new Set(e.options.flatMap(t=>Array.from(t._zod.values)))}),ne(n._zod,"pattern",()=>{if(e.options.every(t=>t._zod.pattern)){let t=e.options.map(o=>o._zod.pattern);return new RegExp(`^(${t.map(o=>hi(o.source)).join("|")})$`)}});let r=e.options.length===1,i=e.options[0]._zod.run;n._zod.parse=(t,o)=>{if(r)return i(t,o);let s=!1,a=[];for(let c of e.options){let l=c._zod.run({value:t.value,issues:[]},o);if(l instanceof Promise)a.push(l),s=!0;else{if(l.issues.length===0)return l;a.push(l)}}return s?Promise.all(a).then(c=>cy(c,t,n,o)):cy(a,t,n,o)}});function ly(n,e,r,i){let t=n.filter(o=>o.issues.length===0);return t.length===1?(e.value=t[0].value,e):(t.length===0?e.issues.push({code:"invalid_union",input:e.value,inst:r,errors:n.map(o=>o.issues.map(s=>qe(s,i,xe())))}):e.issues.push({code:"invalid_union",input:e.value,inst:r,errors:[],inclusive:!1}),e)}var Hu=k("$ZodXor",(n,e)=>{Ei.init(n,e),e.inclusive=!1;let r=e.options.length===1,i=e.options[0]._zod.run;n._zod.parse=(t,o)=>{if(r)return i(t,o);let s=!1,a=[];for(let c of e.options){let l=c._zod.run({value:t.value,issues:[]},o);l instanceof Promise?(a.push(l),s=!0):a.push(l)}return s?Promise.all(a).then(c=>ly(c,t,n,o)):ly(a,t,n,o)}}),Wu=k("$ZodDiscriminatedUnion",(n,e)=>{e.inclusive=!1,Ei.init(n,e);let r=n._zod.parse;ne(n._zod,"propValues",()=>{let t={};for(let o of e.options){let s=o._zod.propValues;if(!s||Object.keys(s).length===0)throw new Error(`Invalid discriminated union option at index "${e.options.indexOf(o)}"`);for(let[a,c]of Object.entries(s)){t[a]||(t[a]=new Set);for(let l of c)t[a].add(l)}}return t});let i=ur(()=>{let t=e.options,o=new Map;for(let s of t){let a=s._zod.propValues?.[e.discriminator];if(!a||a.size===0)throw new Error(`Invalid discriminated union option at index "${e.options.indexOf(s)}"`);for(let c of a){if(o.has(c))throw new Error(`Duplicate discriminator value "${String(c)}"`);o.set(c,s)}}return o});n._zod.parse=(t,o)=>{let s=t.value;if(!Ln(s))return t.issues.push({code:"invalid_type",expected:"object",input:s,inst:n}),t;let a=i.value.get(s?.[e.discriminator]);return a?a._zod.run(t,o):e.unionFallback?r(t,o):(t.issues.push({code:"invalid_union",errors:[],note:"No matching discriminator",discriminator:e.discriminator,input:s,path:[e.discriminator],inst:n}),t)}}),Bu=k("$ZodIntersection",(n,e)=>{Y.init(n,e),n._zod.parse=(r,i)=>{let t=r.value,o=e.left._zod.run({value:t,issues:[]},i),s=e.right._zod.run({value:t,issues:[]},i);return o instanceof Promise||s instanceof Promise?Promise.all([o,s]).then(([c,l])=>uy(r,c,l)):uy(r,o,s)}});function iu(n,e){if(n===e)return{valid:!0,data:n};if(n instanceof Date&&e instanceof Date&&+n==+e)return{valid:!0,data:n};if(on(n)&&on(e)){let r=Object.keys(e),i=Object.keys(n).filter(o=>r.indexOf(o)!==-1),t={...n,...e};for(let o of i){let s=iu(n[o],e[o]);if(!s.valid)return{valid:!1,mergeErrorPath:[o,...s.mergeErrorPath]};t[o]=s.data}return{valid:!0,data:t}}if(Array.isArray(n)&&Array.isArray(e)){if(n.length!==e.length)return{valid:!1,mergeErrorPath:[]};let r=[];for(let i=0;i<n.length;i++){let t=n[i],o=e[i],s=iu(t,o);if(!s.valid)return{valid:!1,mergeErrorPath:[i,...s.mergeErrorPath]};r.push(s.data)}return{valid:!0,data:r}}return{valid:!1,mergeErrorPath:[]}}function uy(n,e,r){let i=new Map,t;for(let a of e.issues)if(a.code==="unrecognized_keys"){t??(t=a);for(let c of a.keys)i.has(c)||i.set(c,{}),i.get(c).l=!0}else n.issues.push(a);for(let a of r.issues)if(a.code==="unrecognized_keys")for(let c of a.keys)i.has(c)||i.set(c,{}),i.get(c).r=!0;else n.issues.push(a);let o=[...i].filter(([,a])=>a.l&&a.r).map(([a])=>a);if(o.length&&t&&n.issues.push({...t,keys:o}),sn(n))return n;let s=iu(e.value,r.value);if(!s.valid)throw new Error(`Unmergable intersection. Error path: ${JSON.stringify(s.mergeErrorPath)}`);return n.value=s.data,n}var ws=k("$ZodTuple",(n,e)=>{Y.init(n,e);let r=e.items;n._zod.parse=(i,t)=>{let o=i.value;if(!Array.isArray(o))return i.issues.push({input:o,inst:n,expected:"tuple",code:"invalid_type"}),i;i.value=[];let s=[],a=[...r].reverse().findIndex(u=>u._zod.optin!=="optional"),c=a===-1?0:r.length-a;if(!e.rest){let u=o.length>r.length,d=o.length<c-1;if(u||d)return i.issues.push({...u?{code:"too_big",maximum:r.length,inclusive:!0}:{code:"too_small",minimum:r.length},input:o,inst:n,origin:"array"}),i}let l=-1;for(let u of r){if(l++,l>=o.length&&l>=c)continue;let d=u._zod.run({value:o[l],issues:[]},t);d instanceof Promise?s.push(d.then(p=>ys(p,i,l))):ys(d,i,l)}if(e.rest){let u=o.slice(r.length);for(let d of u){l++;let p=e.rest._zod.run({value:d,issues:[]},t);p instanceof Promise?s.push(p.then(f=>ys(f,i,l))):ys(p,i,l)}}return s.length?Promise.all(s).then(()=>i):i}});function ys(n,e,r){n.issues.length&&e.issues.push(...Ye(r,n.issues)),e.value[r]=n.value}var Gu=k("$ZodRecord",(n,e)=>{Y.init(n,e),n._zod.parse=(r,i)=>{let t=r.value;if(!on(t))return r.issues.push({expected:"record",code:"invalid_type",input:t,inst:n}),r;let o=[],s=e.keyType._zod.values;if(s){r.value={};let a=new Set;for(let l of s)if(typeof l=="string"||typeof l=="number"||typeof l=="symbol"){a.add(typeof l=="number"?l.toString():l);let u=e.valueType._zod.run({value:t[l],issues:[]},i);u instanceof Promise?o.push(u.then(d=>{d.issues.length&&r.issues.push(...Ye(l,d.issues)),r.value[l]=d.value})):(u.issues.length&&r.issues.push(...Ye(l,u.issues)),r.value[l]=u.value)}let c;for(let l in t)a.has(l)||(c=c??[],c.push(l));c&&c.length>0&&r.issues.push({code:"unrecognized_keys",input:t,inst:n,keys:c})}else{r.value={};for(let a of Reflect.ownKeys(t)){if(a==="__proto__")continue;let c=e.keyType._zod.run({value:a,issues:[]},i);if(c instanceof Promise)throw new Error("Async schemas not supported in object keys currently");if(typeof a=="string"&&fs.test(a)&&c.issues.length){let d=e.keyType._zod.run({value:Number(a),issues:[]},i);if(d instanceof Promise)throw new Error("Async schemas not supported in object keys currently");d.issues.length===0&&(c=d)}if(c.issues.length){e.mode==="loose"?r.value[a]=t[a]:r.issues.push({code:"invalid_key",origin:"record",issues:c.issues.map(d=>qe(d,i,xe())),input:a,path:[a],inst:n});continue}let u=e.valueType._zod.run({value:t[a],issues:[]},i);u instanceof Promise?o.push(u.then(d=>{d.issues.length&&r.issues.push(...Ye(a,d.issues)),r.value[c.value]=d.value})):(u.issues.length&&r.issues.push(...Ye(a,u.issues)),r.value[c.value]=u.value)}}return o.length?Promise.all(o).then(()=>r):r}}),Ju=k("$ZodMap",(n,e)=>{Y.init(n,e),n._zod.parse=(r,i)=>{let t=r.value;if(!(t instanceof Map))return r.issues.push({expected:"map",code:"invalid_type",input:t,inst:n}),r;let o=[];r.value=new Map;for(let[s,a]of t){let c=e.keyType._zod.run({value:s,issues:[]},i),l=e.valueType._zod.run({value:a,issues:[]},i);c instanceof Promise||l instanceof Promise?o.push(Promise.all([c,l]).then(([u,d])=>{dy(u,d,r,s,t,n,i)})):dy(c,l,r,s,t,n,i)}return o.length?Promise.all(o).then(()=>r):r}});function dy(n,e,r,i,t,o,s){n.issues.length&&(gi.has(typeof i)?r.issues.push(...Ye(i,n.issues)):r.issues.push({code:"invalid_key",origin:"map",input:t,inst:o,issues:n.issues.map(a=>qe(a,s,xe()))})),e.issues.length&&(gi.has(typeof i)?r.issues.push(...Ye(i,e.issues)):r.issues.push({origin:"map",code:"invalid_element",input:t,inst:o,key:i,issues:e.issues.map(a=>qe(a,s,xe()))})),r.value.set(n.value,e.value)}var qu=k("$ZodSet",(n,e)=>{Y.init(n,e),n._zod.parse=(r,i)=>{let t=r.value;if(!(t instanceof Set))return r.issues.push({input:t,inst:n,expected:"set",code:"invalid_type"}),r;let o=[];r.value=new Set;for(let s of t){let a=e.valueType._zod.run({value:s,issues:[]},i);a instanceof Promise?o.push(a.then(c=>py(c,r))):py(a,r)}return o.length?Promise.all(o).then(()=>r):r}});function py(n,e){n.issues.length&&e.issues.push(...n.issues),e.value.add(n.value)}var Vu=k("$ZodEnum",(n,e)=>{Y.init(n,e);let r=fi(e.entries),i=new Set(r);n._zod.values=i,n._zod.pattern=new RegExp(`^(${r.filter(t=>gi.has(typeof t)).map(t=>typeof t=="string"?st(t):t.toString()).join("|")})$`),n._zod.parse=(t,o)=>{let s=t.value;return i.has(s)||t.issues.push({code:"invalid_value",values:r,input:s,inst:n}),t}}),Ku=k("$ZodLiteral",(n,e)=>{if(Y.init(n,e),e.values.length===0)throw new Error("Cannot create literal schema with no valid values");let r=new Set(e.values);n._zod.values=r,n._zod.pattern=new RegExp(`^(${e.values.map(i=>typeof i=="string"?st(i):i?st(i.toString()):String(i)).join("|")})$`),n._zod.parse=(i,t)=>{let o=i.value;return r.has(o)||i.issues.push({code:"invalid_value",values:e.values,input:o,inst:n}),i}}),Yu=k("$ZodFile",(n,e)=>{Y.init(n,e),n._zod.parse=(r,i)=>{let t=r.value;return t instanceof File||r.issues.push({expected:"file",code:"invalid_type",input:t,inst:n}),r}}),Xu=k("$ZodTransform",(n,e)=>{Y.init(n,e),n._zod.parse=(r,i)=>{if(i.direction==="backward")throw new tn(n.constructor.name);let t=e.transform(r.value,r);if(i.async)return(t instanceof Promise?t:Promise.resolve(t)).then(s=>(r.value=s,r));if(t instanceof Promise)throw new bt;return r.value=t,r}});function my(n,e){return n.issues.length&&e===void 0?{issues:[],value:void 0}:n}var ks=k("$ZodOptional",(n,e)=>{Y.init(n,e),n._zod.optin="optional",n._zod.optout="optional",ne(n._zod,"values",()=>e.innerType._zod.values?new Set([...e.innerType._zod.values,void 0]):void 0),ne(n._zod,"pattern",()=>{let r=e.innerType._zod.pattern;return r?new RegExp(`^(${hi(r.source)})?$`):void 0}),n._zod.parse=(r,i)=>{if(e.innerType._zod.optin==="optional"){let t=e.innerType._zod.run(r,i);return t instanceof Promise?t.then(o=>my(o,r.value)):my(t,r.value)}return r.value===void 0?r:e.innerType._zod.run(r,i)}}),Qu=k("$ZodExactOptional",(n,e)=>{ks.init(n,e),ne(n._zod,"values",()=>e.innerType._zod.values),ne(n._zod,"pattern",()=>e.innerType._zod.pattern),n._zod.parse=(r,i)=>e.innerType._zod.run(r,i)}),ed=k("$ZodNullable",(n,e)=>{Y.init(n,e),ne(n._zod,"optin",()=>e.innerType._zod.optin),ne(n._zod,"optout",()=>e.innerType._zod.optout),ne(n._zod,"pattern",()=>{let r=e.innerType._zod.pattern;return r?new RegExp(`^(${hi(r.source)}|null)$`):void 0}),ne(n._zod,"values",()=>e.innerType._zod.values?new Set([...e.innerType._zod.values,null]):void 0),n._zod.parse=(r,i)=>r.value===null?r:e.innerType._zod.run(r,i)}),td=k("$ZodDefault",(n,e)=>{Y.init(n,e),n._zod.optin="optional",ne(n._zod,"values",()=>e.innerType._zod.values),n._zod.parse=(r,i)=>{if(i.direction==="backward")return e.innerType._zod.run(r,i);if(r.value===void 0)return r.value=e.defaultValue,r;let t=e.innerType._zod.run(r,i);return t instanceof Promise?t.then(o=>fy(o,e)):fy(t,e)}});function fy(n,e){return n.value===void 0&&(n.value=e.defaultValue),n}var nd=k("$ZodPrefault",(n,e)=>{Y.init(n,e),n._zod.optin="optional",ne(n._zod,"values",()=>e.innerType._zod.values),n._zod.parse=(r,i)=>(i.direction==="backward"||r.value===void 0&&(r.value=e.defaultValue),e.innerType._zod.run(r,i))}),rd=k("$ZodNonOptional",(n,e)=>{Y.init(n,e),ne(n._zod,"values",()=>{let r=e.innerType._zod.values;return r?new Set([...r].filter(i=>i!==void 0)):void 0}),n._zod.parse=(r,i)=>{let t=e.innerType._zod.run(r,i);return t instanceof Promise?t.then(o=>hy(o,n)):hy(t,n)}});function hy(n,e){return!n.issues.length&&n.value===void 0&&n.issues.push({code:"invalid_type",expected:"nonoptional",input:n.value,inst:e}),n}var id=k("$ZodSuccess",(n,e)=>{Y.init(n,e),n._zod.parse=(r,i)=>{if(i.direction==="backward")throw new tn("ZodSuccess");let t=e.innerType._zod.run(r,i);return t instanceof Promise?t.then(o=>(r.value=o.issues.length===0,r)):(r.value=t.issues.length===0,r)}}),od=k("$ZodCatch",(n,e)=>{Y.init(n,e),ne(n._zod,"optin",()=>e.innerType._zod.optin),ne(n._zod,"optout",()=>e.innerType._zod.optout),ne(n._zod,"values",()=>e.innerType._zod.values),n._zod.parse=(r,i)=>{if(i.direction==="backward")return e.innerType._zod.run(r,i);let t=e.innerType._zod.run(r,i);return t instanceof Promise?t.then(o=>(r.value=o.value,o.issues.length&&(r.value=e.catchValue({...r,error:{issues:o.issues.map(s=>qe(s,i,xe()))},input:r.value}),r.issues=[]),r)):(r.value=t.value,t.issues.length&&(r.value=e.catchValue({...r,error:{issues:t.issues.map(o=>qe(o,i,xe()))},input:r.value}),r.issues=[]),r)}}),sd=k("$ZodNaN",(n,e)=>{Y.init(n,e),n._zod.parse=(r,i)=>((typeof r.value!="number"||!Number.isNaN(r.value))&&r.issues.push({input:r.value,inst:n,expected:"nan",code:"invalid_type"}),r)}),ad=k("$ZodPipe",(n,e)=>{Y.init(n,e),ne(n._zod,"values",()=>e.in._zod.values),ne(n._zod,"optin",()=>e.in._zod.optin),ne(n._zod,"optout",()=>e.out._zod.optout),ne(n._zod,"propValues",()=>e.in._zod.propValues),n._zod.parse=(r,i)=>{if(i.direction==="backward"){let o=e.out._zod.run(r,i);return o instanceof Promise?o.then(s=>bs(s,e.in,i)):bs(o,e.in,i)}let t=e.in._zod.run(r,i);return t instanceof Promise?t.then(o=>bs(o,e.out,i)):bs(t,e.out,i)}});function bs(n,e,r){return n.issues.length?(n.aborted=!0,n):e._zod.run({value:n.value,issues:n.issues},r)}var Ii=k("$ZodCodec",(n,e)=>{Y.init(n,e),ne(n._zod,"values",()=>e.in._zod.values),ne(n._zod,"optin",()=>e.in._zod.optin),ne(n._zod,"optout",()=>e.out._zod.optout),ne(n._zod,"propValues",()=>e.in._zod.propValues),n._zod.parse=(r,i)=>{if((i.direction||"forward")==="forward"){let o=e.in._zod.run(r,i);return o instanceof Promise?o.then(s=>vs(s,e,i)):vs(o,e,i)}else{let o=e.out._zod.run(r,i);return o instanceof Promise?o.then(s=>vs(s,e,i)):vs(o,e,i)}}});function vs(n,e,r){if(n.issues.length)return n.aborted=!0,n;if((r.direction||"forward")==="forward"){let t=e.transform(n.value,n);return t instanceof Promise?t.then(o=>_s(n,o,e.out,r)):_s(n,t,e.out,r)}else{let t=e.reverseTransform(n.value,n);return t instanceof Promise?t.then(o=>_s(n,o,e.in,r)):_s(n,t,e.in,r)}}function _s(n,e,r,i){return n.issues.length?(n.aborted=!0,n):r._zod.run({value:e,issues:n.issues},i)}var cd=k("$ZodReadonly",(n,e)=>{Y.init(n,e),ne(n._zod,"propValues",()=>e.innerType._zod.propValues),ne(n._zod,"values",()=>e.innerType._zod.values),ne(n._zod,"optin",()=>e.innerType?._zod?.optin),ne(n._zod,"optout",()=>e.innerType?._zod?.optout),n._zod.parse=(r,i)=>{if(i.direction==="backward")return e.innerType._zod.run(r,i);let t=e.innerType._zod.run(r,i);return t instanceof Promise?t.then(gy):gy(t)}});function gy(n){return n.value=Object.freeze(n.value),n}var ld=k("$ZodTemplateLiteral",(n,e)=>{Y.init(n,e);let r=[];for(let i of e.parts)if(typeof i=="object"&&i!==null){if(!i._zod.pattern)throw new Error(`Invalid template literal part, no pattern found: ${[...i._zod.traits].shift()}`);let t=i._zod.pattern instanceof RegExp?i._zod.pattern.source:i._zod.pattern;if(!t)throw new Error(`Invalid template literal part: ${i._zod.traits}`);let o=t.startsWith("^")?1:0,s=t.endsWith("$")?t.length-1:t.length;r.push(t.slice(o,s))}else if(i===null||rl.has(typeof i))r.push(st(`${i}`));else throw new Error(`Invalid template literal part: ${i}`);n._zod.pattern=new RegExp(`^${r.join("")}$`),n._zod.parse=(i,t)=>typeof i.value!="string"?(i.issues.push({input:i.value,inst:n,expected:"string",code:"invalid_type"}),i):(n._zod.pattern.lastIndex=0,n._zod.pattern.test(i.value)||i.issues.push({input:i.value,inst:n,code:"invalid_format",format:e.format??"template_literal",pattern:n._zod.pattern.source}),i)}),ud=k("$ZodFunction",(n,e)=>(Y.init(n,e),n._def=e,n._zod.def=e,n.implement=r=>{if(typeof r!="function")throw new Error("implement() must be called with a function");return function(...i){let t=n._def.input?rs(n._def.input,i):i,o=Reflect.apply(r,this,t);return n._def.output?rs(n._def.output,o):o}},n.implementAsync=r=>{if(typeof r!="function")throw new Error("implementAsync() must be called with a function");return async function(...i){let t=n._def.input?await is(n._def.input,i):i,o=await Reflect.apply(r,this,t);return n._def.output?await is(n._def.output,o):o}},n._zod.parse=(r,i)=>typeof r.value!="function"?(r.issues.push({code:"invalid_type",expected:"function",input:r.value,inst:n}),r):(n._def.output&&n._def.output._zod.def.type==="promise"?r.value=n.implementAsync(r.value):r.value=n.implement(r.value),r),n.input=(...r)=>{let i=n.constructor;return Array.isArray(r[0])?new i({type:"function",input:new ws({type:"tuple",items:r[0],rest:r[1]}),output:n._def.output}):new i({type:"function",input:r[0],output:n._def.output})},n.output=r=>{let i=n.constructor;return new i({type:"function",input:n._def.input,output:r})},n)),dd=k("$ZodPromise",(n,e)=>{Y.init(n,e),n._zod.parse=(r,i)=>Promise.resolve(r.value).then(t=>e.innerType._zod.run({value:t,issues:[]},i))}),pd=k("$ZodLazy",(n,e)=>{Y.init(n,e),ne(n._zod,"innerType",()=>e.getter()),ne(n._zod,"pattern",()=>n._zod.innerType?._zod?.pattern),ne(n._zod,"propValues",()=>n._zod.innerType?._zod?.propValues),ne(n._zod,"optin",()=>n._zod.innerType?._zod?.optin??void 0),ne(n._zod,"optout",()=>n._zod.innerType?._zod?.optout??void 0),n._zod.parse=(r,i)=>n._zod.innerType._zod.run(r,i)}),md=k("$ZodCustom",(n,e)=>{me.init(n,e),Y.init(n,e),n._zod.parse=(r,i)=>r,n._zod.check=r=>{let i=r.value,t=e.fn(i);if(t instanceof Promise)return t.then(o=>yy(o,r,i,n));yy(t,r,i,n)}});function yy(n,e,r,i){if(!n){let t={code:"custom",input:r,inst:i,path:[...i._zod.def.path??[]],continue:!i._zod.def.abort};i._zod.def.params&&(t.params=i._zod.def.params),e.issues.push(dr(t))}}var Pi={};et(Pi,{ar:()=>$y,az:()=>wy,be:()=>Ey,bg:()=>Iy,ca:()=>Ty,cs:()=>Py,da:()=>Ry,de:()=>zy,en:()=>Es,eo:()=>Ny,es:()=>Cy,fa:()=>Dy,fi:()=>Ly,fr:()=>Ay,frCA:()=>Oy,he:()=>My,hu:()=>jy,hy:()=>Uy,id:()=>Zy,is:()=>Hy,it:()=>Wy,ja:()=>By,ka:()=>Gy,kh:()=>Jy,km:()=>Is,ko:()=>qy,lt:()=>Ky,mk:()=>Yy,ms:()=>Xy,nl:()=>Qy,no:()=>eb,ota:()=>tb,pl:()=>rb,ps:()=>nb,pt:()=>ib,ru:()=>sb,sl:()=>ab,sv:()=>cb,ta:()=>lb,th:()=>ub,tr:()=>db,ua:()=>pb,uk:()=>Ts,ur:()=>mb,uz:()=>fb,vi:()=>hb,yo:()=>bb,zhCN:()=>gb,zhTW:()=>yb});var gw=()=>{let n={string:{unit:"\u062D\u0631\u0641",verb:"\u0623\u0646 \u064A\u062D\u0648\u064A"},file:{unit:"\u0628\u0627\u064A\u062A",verb:"\u0623\u0646 \u064A\u062D\u0648\u064A"},array:{unit:"\u0639\u0646\u0635\u0631",verb:"\u0623\u0646 \u064A\u062D\u0648\u064A"},set:{unit:"\u0639\u0646\u0635\u0631",verb:"\u0623\u0646 \u064A\u062D\u0648\u064A"}};function e(t){return n[t]??null}let r={regex:"\u0645\u062F\u062E\u0644",email:"\u0628\u0631\u064A\u062F \u0625\u0644\u0643\u062A\u0631\u0648\u0646\u064A",url:"\u0631\u0627\u0628\u0637",emoji:"\u0625\u064A\u0645\u0648\u062C\u064A",uuid:"UUID",uuidv4:"UUIDv4",uuidv6:"UUIDv6",nanoid:"nanoid",guid:"GUID",cuid:"cuid",cuid2:"cuid2",ulid:"ULID",xid:"XID",ksuid:"KSUID",datetime:"\u062A\u0627\u0631\u064A\u062E \u0648\u0648\u0642\u062A \u0628\u0645\u0639\u064A\u0627\u0631 ISO",date:"\u062A\u0627\u0631\u064A\u062E \u0628\u0645\u0639\u064A\u0627\u0631 ISO",time:"\u0648\u0642\u062A \u0628\u0645\u0639\u064A\u0627\u0631 ISO",duration:"\u0645\u062F\u0629 \u0628\u0645\u0639\u064A\u0627\u0631 ISO",ipv4:"\u0639\u0646\u0648\u0627\u0646 IPv4",ipv6:"\u0639\u0646\u0648\u0627\u0646 IPv6",cidrv4:"\u0645\u062F\u0649 \u0639\u0646\u0627\u0648\u064A\u0646 \u0628\u0635\u064A\u063A\u0629 IPv4",cidrv6:"\u0645\u062F\u0649 \u0639\u0646\u0627\u0648\u064A\u0646 \u0628\u0635\u064A\u063A\u0629 IPv6",base64:"\u0646\u064E\u0635 \u0628\u062A\u0631\u0645\u064A\u0632 base64-encoded",base64url:"\u0646\u064E\u0635 \u0628\u062A\u0631\u0645\u064A\u0632 base64url-encoded",json_string:"\u0646\u064E\u0635 \u0639\u0644\u0649 \u0647\u064A\u0626\u0629 JSON",e164:"\u0631\u0642\u0645 \u0647\u0627\u062A\u0641 \u0628\u0645\u0639\u064A\u0627\u0631 E.164",jwt:"JWT",template_literal:"\u0645\u062F\u062E\u0644"},i={nan:"NaN"};return t=>{switch(t.code){case"invalid_type":{let o=i[t.expected]??t.expected,s=O(t.input),a=i[s]??s;return/^[A-Z]/.test(t.expected)?`\u0645\u062F\u062E\u0644\u0627\u062A \u063A\u064A\u0631 \u0645\u0642\u0628\u0648\u0644\u0629: \u064A\u0641\u062A\u0631\u0636 \u0625\u062F\u062E\u0627\u0644 instanceof ${t.expected}\u060C \u0648\u0644\u0643\u0646 \u062A\u0645 \u0625\u062F\u062E\u0627\u0644 ${a}`:`\u0645\u062F\u062E\u0644\u0627\u062A \u063A\u064A\u0631 \u0645\u0642\u0628\u0648\u0644\u0629: \u064A\u0641\u062A\u0631\u0636 \u0625\u062F\u062E\u0627\u0644 ${o}\u060C \u0648\u0644\u0643\u0646 \u062A\u0645 \u0625\u062F\u062E\u0627\u0644 ${a}`}case"invalid_value":return t.values.length===1?`\u0645\u062F\u062E\u0644\u0627\u062A \u063A\u064A\u0631 \u0645\u0642\u0628\u0648\u0644\u0629: \u064A\u0641\u062A\u0631\u0636 \u0625\u062F\u062E\u0627\u0644 ${A(t.values[0])}`:`\u0627\u062E\u062A\u064A\u0627\u0631 \u063A\u064A\u0631 \u0645\u0642\u0628\u0648\u0644: \u064A\u062A\u0648\u0642\u0639 \u0627\u0646\u062A\u0642\u0627\u0621 \u0623\u062D\u062F \u0647\u0630\u0647 \u0627\u0644\u062E\u064A\u0627\u0631\u0627\u062A: ${P(t.values,"|")}`;case"too_big":{let o=t.inclusive?"<=":"<",s=e(t.origin);return s?` \u0623\u0643\u0628\u0631 \u0645\u0646 \u0627\u0644\u0644\u0627\u0632\u0645: \u064A\u0641\u062A\u0631\u0636 \u0623\u0646 \u062A\u0643\u0648\u0646 ${t.origin??"\u0627\u0644\u0642\u064A\u0645\u0629"} ${o} ${t.maximum.toString()} ${s.unit??"\u0639\u0646\u0635\u0631"}`:`\u0623\u0643\u0628\u0631 \u0645\u0646 \u0627\u0644\u0644\u0627\u0632\u0645: \u064A\u0641\u062A\u0631\u0636 \u0623\u0646 \u062A\u0643\u0648\u0646 ${t.origin??"\u0627\u0644\u0642\u064A\u0645\u0629"} ${o} ${t.maximum.toString()}`}case"too_small":{let o=t.inclusive?">=":">",s=e(t.origin);return s?`\u0623\u0635\u063A\u0631 \u0645\u0646 \u0627\u0644\u0644\u0627\u0632\u0645: \u064A\u0641\u062A\u0631\u0636 \u0644\u0640 ${t.origin} \u0623\u0646 \u064A\u0643\u0648\u0646 ${o} ${t.minimum.toString()} ${s.unit}`:`\u0623\u0635\u063A\u0631 \u0645\u0646 \u0627\u0644\u0644\u0627\u0632\u0645: \u064A\u0641\u062A\u0631\u0636 \u0644\u0640 ${t.origin} \u0623\u0646 \u064A\u0643\u0648\u0646 ${o} ${t.minimum.toString()}`}case"invalid_format":{let o=t;return o.format==="starts_with"?`\u0646\u064E\u0635 \u063A\u064A\u0631 \u0645\u0642\u0628\u0648\u0644: \u064A\u062C\u0628 \u0623\u0646 \u064A\u0628\u062F\u0623 \u0628\u0640 "${t.prefix}"`:o.format==="ends_with"?`\u0646\u064E\u0635 \u063A\u064A\u0631 \u0645\u0642\u0628\u0648\u0644: \u064A\u062C\u0628 \u0623\u0646 \u064A\u0646\u062A\u0647\u064A \u0628\u0640 "${o.suffix}"`:o.format==="includes"?`\u0646\u064E\u0635 \u063A\u064A\u0631 \u0645\u0642\u0628\u0648\u0644: \u064A\u062C\u0628 \u0623\u0646 \u064A\u062A\u0636\u0645\u0651\u064E\u0646 "${o.includes}"`:o.format==="regex"?`\u0646\u064E\u0635 \u063A\u064A\u0631 \u0645\u0642\u0628\u0648\u0644: \u064A\u062C\u0628 \u0623\u0646 \u064A\u0637\u0627\u0628\u0642 \u0627\u0644\u0646\u0645\u0637 ${o.pattern}`:`${r[o.format]??t.format} \u063A\u064A\u0631 \u0645\u0642\u0628\u0648\u0644`}case"not_multiple_of":return`\u0631\u0642\u0645 \u063A\u064A\u0631 \u0645\u0642\u0628\u0648\u0644: \u064A\u062C\u0628 \u0623\u0646 \u064A\u0643\u0648\u0646 \u0645\u0646 \u0645\u0636\u0627\u0639\u0641\u0627\u062A ${t.divisor}`;case"unrecognized_keys":return`\u0645\u0639\u0631\u0641${t.keys.length>1?"\u0627\u062A":""} \u063A\u0631\u064A\u0628${t.keys.length>1?"\u0629":""}: ${P(t.keys,"\u060C ")}`;case"invalid_key":return`\u0645\u0639\u0631\u0641 \u063A\u064A\u0631 \u0645\u0642\u0628\u0648\u0644 \u0641\u064A ${t.origin}`;case"invalid_union":return"\u0645\u062F\u062E\u0644 \u063A\u064A\u0631 \u0645\u0642\u0628\u0648\u0644";case"invalid_element":return`\u0645\u062F\u062E\u0644 \u063A\u064A\u0631 \u0645\u0642\u0628\u0648\u0644 \u0641\u064A ${t.origin}`;default:return"\u0645\u062F\u062E\u0644 \u063A\u064A\u0631 \u0645\u0642\u0628\u0648\u0644"}}};function $y(){return{localeError:gw()}}var yw=()=>{let n={string:{unit:"simvol",verb:"olmal\u0131d\u0131r"},file:{unit:"bayt",verb:"olmal\u0131d\u0131r"},array:{unit:"element",verb:"olmal\u0131d\u0131r"},set:{unit:"element",verb:"olmal\u0131d\u0131r"}};function e(t){return n[t]??null}let r={regex:"input",email:"email address",url:"URL",emoji:"emoji",uuid:"UUID",uuidv4:"UUIDv4",uuidv6:"UUIDv6",nanoid:"nanoid",guid:"GUID",cuid:"cuid",cuid2:"cuid2",ulid:"ULID",xid:"XID",ksuid:"KSUID",datetime:"ISO datetime",date:"ISO date",time:"ISO time",duration:"ISO duration",ipv4:"IPv4 address",ipv6:"IPv6 address",cidrv4:"IPv4 range",cidrv6:"IPv6 range",base64:"base64-encoded string",base64url:"base64url-encoded string",json_string:"JSON string",e164:"E.164 number",jwt:"JWT",template_literal:"input"},i={nan:"NaN"};return t=>{switch(t.code){case"invalid_type":{let o=i[t.expected]??t.expected,s=O(t.input),a=i[s]??s;return/^[A-Z]/.test(t.expected)?`Yanl\u0131\u015F d\u0259y\u0259r: g\xF6zl\u0259nil\u0259n instanceof ${t.expected}, daxil olan ${a}`:`Yanl\u0131\u015F d\u0259y\u0259r: g\xF6zl\u0259nil\u0259n ${o}, daxil olan ${a}`}case"invalid_value":return t.values.length===1?`Yanl\u0131\u015F d\u0259y\u0259r: g\xF6zl\u0259nil\u0259n ${A(t.values[0])}`:`Yanl\u0131\u015F se\xE7im: a\u015Fa\u011F\u0131dak\u0131lardan biri olmal\u0131d\u0131r: ${P(t.values,"|")}`;case"too_big":{let o=t.inclusive?"<=":"<",s=e(t.origin);return s?`\xC7ox b\xF6y\xFCk: g\xF6zl\u0259nil\u0259n ${t.origin??"d\u0259y\u0259r"} ${o}${t.maximum.toString()} ${s.unit??"element"}`:`\xC7ox b\xF6y\xFCk: g\xF6zl\u0259nil\u0259n ${t.origin??"d\u0259y\u0259r"} ${o}${t.maximum.toString()}`}case"too_small":{let o=t.inclusive?">=":">",s=e(t.origin);return s?`\xC7ox ki\xE7ik: g\xF6zl\u0259nil\u0259n ${t.origin} ${o}${t.minimum.toString()} ${s.unit}`:`\xC7ox ki\xE7ik: g\xF6zl\u0259nil\u0259n ${t.origin} ${o}${t.minimum.toString()}`}case"invalid_format":{let o=t;return o.format==="starts_with"?`Yanl\u0131\u015F m\u0259tn: "${o.prefix}" il\u0259 ba\u015Flamal\u0131d\u0131r`:o.format==="ends_with"?`Yanl\u0131\u015F m\u0259tn: "${o.suffix}" il\u0259 bitm\u0259lidir`:o.format==="includes"?`Yanl\u0131\u015F m\u0259tn: "${o.includes}" daxil olmal\u0131d\u0131r`:o.format==="regex"?`Yanl\u0131\u015F m\u0259tn: ${o.pattern} \u015Fablonuna uy\u011Fun olmal\u0131d\u0131r`:`Yanl\u0131\u015F ${r[o.format]??t.format}`}case"not_multiple_of":return`Yanl\u0131\u015F \u0259d\u0259d: ${t.divisor} il\u0259 b\xF6l\xFCn\u0259 bil\u0259n olmal\u0131d\u0131r`;case"unrecognized_keys":return`Tan\u0131nmayan a\xE7ar${t.keys.length>1?"lar":""}: ${P(t.keys,", ")}`;case"invalid_key":return`${t.origin} daxilind\u0259 yanl\u0131\u015F a\xE7ar`;case"invalid_union":return"Yanl\u0131\u015F d\u0259y\u0259r";case"invalid_element":return`${t.origin} daxilind\u0259 yanl\u0131\u015F d\u0259y\u0259r`;default:return"Yanl\u0131\u015F d\u0259y\u0259r"}}};function wy(){return{localeError:yw()}}function ky(n,e,r,i){let t=Math.abs(n),o=t%10,s=t%100;return s>=11&&s<=19?i:o===1?e:o>=2&&o<=4?r:i}var bw=()=>{let n={string:{unit:{one:"\u0441\u0456\u043C\u0432\u0430\u043B",few:"\u0441\u0456\u043C\u0432\u0430\u043B\u044B",many:"\u0441\u0456\u043C\u0432\u0430\u043B\u0430\u045E"},verb:"\u043C\u0435\u0446\u044C"},array:{unit:{one:"\u044D\u043B\u0435\u043C\u0435\u043D\u0442",few:"\u044D\u043B\u0435\u043C\u0435\u043D\u0442\u044B",many:"\u044D\u043B\u0435\u043C\u0435\u043D\u0442\u0430\u045E"},verb:"\u043C\u0435\u0446\u044C"},set:{unit:{one:"\u044D\u043B\u0435\u043C\u0435\u043D\u0442",few:"\u044D\u043B\u0435\u043C\u0435\u043D\u0442\u044B",many:"\u044D\u043B\u0435\u043C\u0435\u043D\u0442\u0430\u045E"},verb:"\u043C\u0435\u0446\u044C"},file:{unit:{one:"\u0431\u0430\u0439\u0442",few:"\u0431\u0430\u0439\u0442\u044B",many:"\u0431\u0430\u0439\u0442\u0430\u045E"},verb:"\u043C\u0435\u0446\u044C"}};function e(t){return n[t]??null}let r={regex:"\u0443\u0432\u043E\u0434",email:"email \u0430\u0434\u0440\u0430\u0441",url:"URL",emoji:"\u044D\u043C\u043E\u0434\u0437\u0456",uuid:"UUID",uuidv4:"UUIDv4",uuidv6:"UUIDv6",nanoid:"nanoid",guid:"GUID",cuid:"cuid",cuid2:"cuid2",ulid:"ULID",xid:"XID",ksuid:"KSUID",datetime:"ISO \u0434\u0430\u0442\u0430 \u0456 \u0447\u0430\u0441",date:"ISO \u0434\u0430\u0442\u0430",time:"ISO \u0447\u0430\u0441",duration:"ISO \u043F\u0440\u0430\u0446\u044F\u0433\u043B\u0430\u0441\u0446\u044C",ipv4:"IPv4 \u0430\u0434\u0440\u0430\u0441",ipv6:"IPv6 \u0430\u0434\u0440\u0430\u0441",cidrv4:"IPv4 \u0434\u044B\u044F\u043F\u0430\u0437\u043E\u043D",cidrv6:"IPv6 \u0434\u044B\u044F\u043F\u0430\u0437\u043E\u043D",base64:"\u0440\u0430\u0434\u043E\u043A \u0443 \u0444\u0430\u0440\u043C\u0430\u0446\u0435 base64",base64url:"\u0440\u0430\u0434\u043E\u043A \u0443 \u0444\u0430\u0440\u043C\u0430\u0446\u0435 base64url",json_string:"JSON \u0440\u0430\u0434\u043E\u043A",e164:"\u043D\u0443\u043C\u0430\u0440 E.164",jwt:"JWT",template_literal:"\u0443\u0432\u043E\u0434"},i={nan:"NaN",number:"\u043B\u0456\u043A",array:"\u043C\u0430\u0441\u0456\u045E"};return t=>{switch(t.code){case"invalid_type":{let o=i[t.expected]??t.expected,s=O(t.input),a=i[s]??s;return/^[A-Z]/.test(t.expected)?`\u041D\u044F\u043F\u0440\u0430\u0432\u0456\u043B\u044C\u043D\u044B \u045E\u0432\u043E\u0434: \u0447\u0430\u043A\u0430\u045E\u0441\u044F instanceof ${t.expected}, \u0430\u0442\u0440\u044B\u043C\u0430\u043D\u0430 ${a}`:`\u041D\u044F\u043F\u0440\u0430\u0432\u0456\u043B\u044C\u043D\u044B \u045E\u0432\u043E\u0434: \u0447\u0430\u043A\u0430\u045E\u0441\u044F ${o}, \u0430\u0442\u0440\u044B\u043C\u0430\u043D\u0430 ${a}`}case"invalid_value":return t.values.length===1?`\u041D\u044F\u043F\u0440\u0430\u0432\u0456\u043B\u044C\u043D\u044B \u045E\u0432\u043E\u0434: \u0447\u0430\u043A\u0430\u043B\u0430\u0441\u044F ${A(t.values[0])}`:`\u041D\u044F\u043F\u0440\u0430\u0432\u0456\u043B\u044C\u043D\u044B \u0432\u0430\u0440\u044B\u044F\u043D\u0442: \u0447\u0430\u043A\u0430\u045E\u0441\u044F \u0430\u0434\u0437\u0456\u043D \u0437 ${P(t.values,"|")}`;case"too_big":{let o=t.inclusive?"<=":"<",s=e(t.origin);if(s){let a=Number(t.maximum),c=ky(a,s.unit.one,s.unit.few,s.unit.many);return`\u0417\u0430\u043D\u0430\u0434\u0442\u0430 \u0432\u044F\u043B\u0456\u043A\u0456: \u0447\u0430\u043A\u0430\u043B\u0430\u0441\u044F, \u0448\u0442\u043E ${t.origin??"\u0437\u043D\u0430\u0447\u044D\u043D\u043D\u0435"} \u043F\u0430\u0432\u0456\u043D\u043D\u0430 ${s.verb} ${o}${t.maximum.toString()} ${c}`}return`\u0417\u0430\u043D\u0430\u0434\u0442\u0430 \u0432\u044F\u043B\u0456\u043A\u0456: \u0447\u0430\u043A\u0430\u043B\u0430\u0441\u044F, \u0448\u0442\u043E ${t.origin??"\u0437\u043D\u0430\u0447\u044D\u043D\u043D\u0435"} \u043F\u0430\u0432\u0456\u043D\u043D\u0430 \u0431\u044B\u0446\u044C ${o}${t.maximum.toString()}`}case"too_small":{let o=t.inclusive?">=":">",s=e(t.origin);if(s){let a=Number(t.minimum),c=ky(a,s.unit.one,s.unit.few,s.unit.many);return`\u0417\u0430\u043D\u0430\u0434\u0442\u0430 \u043C\u0430\u043B\u044B: \u0447\u0430\u043A\u0430\u043B\u0430\u0441\u044F, \u0448\u0442\u043E ${t.origin} \u043F\u0430\u0432\u0456\u043D\u043D\u0430 ${s.verb} ${o}${t.minimum.toString()} ${c}`}return`\u0417\u0430\u043D\u0430\u0434\u0442\u0430 \u043C\u0430\u043B\u044B: \u0447\u0430\u043A\u0430\u043B\u0430\u0441\u044F, \u0448\u0442\u043E ${t.origin} \u043F\u0430\u0432\u0456\u043D\u043D\u0430 \u0431\u044B\u0446\u044C ${o}${t.minimum.toString()}`}case"invalid_format":{let o=t;return o.format==="starts_with"?`\u041D\u044F\u043F\u0440\u0430\u0432\u0456\u043B\u044C\u043D\u044B \u0440\u0430\u0434\u043E\u043A: \u043F\u0430\u0432\u0456\u043D\u0435\u043D \u043F\u0430\u0447\u044B\u043D\u0430\u0446\u0446\u0430 \u0437 "${o.prefix}"`:o.format==="ends_with"?`\u041D\u044F\u043F\u0440\u0430\u0432\u0456\u043B\u044C\u043D\u044B \u0440\u0430\u0434\u043E\u043A: \u043F\u0430\u0432\u0456\u043D\u0435\u043D \u0437\u0430\u043A\u0430\u043D\u0447\u0432\u0430\u0446\u0446\u0430 \u043D\u0430 "${o.suffix}"`:o.format==="includes"?`\u041D\u044F\u043F\u0440\u0430\u0432\u0456\u043B\u044C\u043D\u044B \u0440\u0430\u0434\u043E\u043A: \u043F\u0430\u0432\u0456\u043D\u0435\u043D \u0437\u043C\u044F\u0448\u0447\u0430\u0446\u044C "${o.includes}"`:o.format==="regex"?`\u041D\u044F\u043F\u0440\u0430\u0432\u0456\u043B\u044C\u043D\u044B \u0440\u0430\u0434\u043E\u043A: \u043F\u0430\u0432\u0456\u043D\u0435\u043D \u0430\u0434\u043F\u0430\u0432\u044F\u0434\u0430\u0446\u044C \u0448\u0430\u0431\u043B\u043E\u043D\u0443 ${o.pattern}`:`\u041D\u044F\u043F\u0440\u0430\u0432\u0456\u043B\u044C\u043D\u044B ${r[o.format]??t.format}`}case"not_multiple_of":return`\u041D\u044F\u043F\u0440\u0430\u0432\u0456\u043B\u044C\u043D\u044B \u043B\u0456\u043A: \u043F\u0430\u0432\u0456\u043D\u0435\u043D \u0431\u044B\u0446\u044C \u043A\u0440\u0430\u0442\u043D\u044B\u043C ${t.divisor}`;case"unrecognized_keys":return`\u041D\u0435\u0440\u0430\u0441\u043F\u0430\u0437\u043D\u0430\u043D\u044B ${t.keys.length>1?"\u043A\u043B\u044E\u0447\u044B":"\u043A\u043B\u044E\u0447"}: ${P(t.keys,", ")}`;case"invalid_key":return`\u041D\u044F\u043F\u0440\u0430\u0432\u0456\u043B\u044C\u043D\u044B \u043A\u043B\u044E\u0447 \u0443 ${t.origin}`;case"invalid_union":return"\u041D\u044F\u043F\u0440\u0430\u0432\u0456\u043B\u044C\u043D\u044B \u045E\u0432\u043E\u0434";case"invalid_element":return`\u041D\u044F\u043F\u0440\u0430\u0432\u0456\u043B\u044C\u043D\u0430\u0435 \u0437\u043D\u0430\u0447\u044D\u043D\u043D\u0435 \u045E ${t.origin}`;default:return"\u041D\u044F\u043F\u0440\u0430\u0432\u0456\u043B\u044C\u043D\u044B \u045E\u0432\u043E\u0434"}}};function Ey(){return{localeError:bw()}}var vw=()=>{let n={string:{unit:"\u0441\u0438\u043C\u0432\u043E\u043B\u0430",verb:"\u0434\u0430 \u0441\u044A\u0434\u044A\u0440\u0436\u0430"},file:{unit:"\u0431\u0430\u0439\u0442\u0430",verb:"\u0434\u0430 \u0441\u044A\u0434\u044A\u0440\u0436\u0430"},array:{unit:"\u0435\u043B\u0435\u043C\u0435\u043D\u0442\u0430",verb:"\u0434\u0430 \u0441\u044A\u0434\u044A\u0440\u0436\u0430"},set:{unit:"\u0435\u043B\u0435\u043C\u0435\u043D\u0442\u0430",verb:"\u0434\u0430 \u0441\u044A\u0434\u044A\u0440\u0436\u0430"}};function e(t){return n[t]??null}let r={regex:"\u0432\u0445\u043E\u0434",email:"\u0438\u043C\u0435\u0439\u043B \u0430\u0434\u0440\u0435\u0441",url:"URL",emoji:"\u0435\u043C\u043E\u0434\u0436\u0438",uuid:"UUID",uuidv4:"UUIDv4",uuidv6:"UUIDv6",nanoid:"nanoid",guid:"GUID",cuid:"cuid",cuid2:"cuid2",ulid:"ULID",xid:"XID",ksuid:"KSUID",datetime:"ISO \u0432\u0440\u0435\u043C\u0435",date:"ISO \u0434\u0430\u0442\u0430",time:"ISO \u0432\u0440\u0435\u043C\u0435",duration:"ISO \u043F\u0440\u043E\u0434\u044A\u043B\u0436\u0438\u0442\u0435\u043B\u043D\u043E\u0441\u0442",ipv4:"IPv4 \u0430\u0434\u0440\u0435\u0441",ipv6:"IPv6 \u0430\u0434\u0440\u0435\u0441",cidrv4:"IPv4 \u0434\u0438\u0430\u043F\u0430\u0437\u043E\u043D",cidrv6:"IPv6 \u0434\u0438\u0430\u043F\u0430\u0437\u043E\u043D",base64:"base64-\u043A\u043E\u0434\u0438\u0440\u0430\u043D \u043D\u0438\u0437",base64url:"base64url-\u043A\u043E\u0434\u0438\u0440\u0430\u043D \u043D\u0438\u0437",json_string:"JSON \u043D\u0438\u0437",e164:"E.164 \u043D\u043E\u043C\u0435\u0440",jwt:"JWT",template_literal:"\u0432\u0445\u043E\u0434"},i={nan:"NaN",number:"\u0447\u0438\u0441\u043B\u043E",array:"\u043C\u0430\u0441\u0438\u0432"};return t=>{switch(t.code){case"invalid_type":{let o=i[t.expected]??t.expected,s=O(t.input),a=i[s]??s;return/^[A-Z]/.test(t.expected)?`\u041D\u0435\u0432\u0430\u043B\u0438\u0434\u0435\u043D \u0432\u0445\u043E\u0434: \u043E\u0447\u0430\u043A\u0432\u0430\u043D instanceof ${t.expected}, \u043F\u043E\u043B\u0443\u0447\u0435\u043D ${a}`:`\u041D\u0435\u0432\u0430\u043B\u0438\u0434\u0435\u043D \u0432\u0445\u043E\u0434: \u043E\u0447\u0430\u043A\u0432\u0430\u043D ${o}, \u043F\u043E\u043B\u0443\u0447\u0435\u043D ${a}`}case"invalid_value":return t.values.length===1?`\u041D\u0435\u0432\u0430\u043B\u0438\u0434\u0435\u043D \u0432\u0445\u043E\u0434: \u043E\u0447\u0430\u043A\u0432\u0430\u043D ${A(t.values[0])}`:`\u041D\u0435\u0432\u0430\u043B\u0438\u0434\u043D\u0430 \u043E\u043F\u0446\u0438\u044F: \u043E\u0447\u0430\u043A\u0432\u0430\u043D\u043E \u0435\u0434\u043D\u043E \u043E\u0442 ${P(t.values,"|")}`;case"too_big":{let o=t.inclusive?"<=":"<",s=e(t.origin);return s?`\u0422\u0432\u044A\u0440\u0434\u0435 \u0433\u043E\u043B\u044F\u043C\u043E: \u043E\u0447\u0430\u043A\u0432\u0430 \u0441\u0435 ${t.origin??"\u0441\u0442\u043E\u0439\u043D\u043E\u0441\u0442"} \u0434\u0430 \u0441\u044A\u0434\u044A\u0440\u0436\u0430 ${o}${t.maximum.toString()} ${s.unit??"\u0435\u043B\u0435\u043C\u0435\u043D\u0442\u0430"}`:`\u0422\u0432\u044A\u0440\u0434\u0435 \u0433\u043E\u043B\u044F\u043C\u043E: \u043E\u0447\u0430\u043A\u0432\u0430 \u0441\u0435 ${t.origin??"\u0441\u0442\u043E\u0439\u043D\u043E\u0441\u0442"} \u0434\u0430 \u0431\u044A\u0434\u0435 ${o}${t.maximum.toString()}`}case"too_small":{let o=t.inclusive?">=":">",s=e(t.origin);return s?`\u0422\u0432\u044A\u0440\u0434\u0435 \u043C\u0430\u043B\u043A\u043E: \u043E\u0447\u0430\u043A\u0432\u0430 \u0441\u0435 ${t.origin} \u0434\u0430 \u0441\u044A\u0434\u044A\u0440\u0436\u0430 ${o}${t.minimum.toString()} ${s.unit}`:`\u0422\u0432\u044A\u0440\u0434\u0435 \u043C\u0430\u043B\u043A\u043E: \u043E\u0447\u0430\u043A\u0432\u0430 \u0441\u0435 ${t.origin} \u0434\u0430 \u0431\u044A\u0434\u0435 ${o}${t.minimum.toString()}`}case"invalid_format":{let o=t;if(o.format==="starts_with")return`\u041D\u0435\u0432\u0430\u043B\u0438\u0434\u0435\u043D \u043D\u0438\u0437: \u0442\u0440\u044F\u0431\u0432\u0430 \u0434\u0430 \u0437\u0430\u043F\u043E\u0447\u0432\u0430 \u0441 "${o.prefix}"`;if(o.format==="ends_with")return`\u041D\u0435\u0432\u0430\u043B\u0438\u0434\u0435\u043D \u043D\u0438\u0437: \u0442\u0440\u044F\u0431\u0432\u0430 \u0434\u0430 \u0437\u0430\u0432\u044A\u0440\u0448\u0432\u0430 \u0441 "${o.suffix}"`;if(o.format==="includes")return`\u041D\u0435\u0432\u0430\u043B\u0438\u0434\u0435\u043D \u043D\u0438\u0437: \u0442\u0440\u044F\u0431\u0432\u0430 \u0434\u0430 \u0432\u043A\u043B\u044E\u0447\u0432\u0430 "${o.includes}"`;if(o.format==="regex")return`\u041D\u0435\u0432\u0430\u043B\u0438\u0434\u0435\u043D \u043D\u0438\u0437: \u0442\u0440\u044F\u0431\u0432\u0430 \u0434\u0430 \u0441\u044A\u0432\u043F\u0430\u0434\u0430 \u0441 ${o.pattern}`;let s="\u041D\u0435\u0432\u0430\u043B\u0438\u0434\u0435\u043D";return o.format==="emoji"&&(s="\u041D\u0435\u0432\u0430\u043B\u0438\u0434\u043D\u043E"),o.format==="datetime"&&(s="\u041D\u0435\u0432\u0430\u043B\u0438\u0434\u043D\u043E"),o.format==="date"&&(s="\u041D\u0435\u0432\u0430\u043B\u0438\u0434\u043D\u0430"),o.format==="time"&&(s="\u041D\u0435\u0432\u0430\u043B\u0438\u0434\u043D\u043E"),o.format==="duration"&&(s="\u041D\u0435\u0432\u0430\u043B\u0438\u0434\u043D\u0430"),`${s} ${r[o.format]??t.format}`}case"not_multiple_of":return`\u041D\u0435\u0432\u0430\u043B\u0438\u0434\u043D\u043E \u0447\u0438\u0441\u043B\u043E: \u0442\u0440\u044F\u0431\u0432\u0430 \u0434\u0430 \u0431\u044A\u0434\u0435 \u043A\u0440\u0430\u0442\u043D\u043E \u043D\u0430 ${t.divisor}`;case"unrecognized_keys":return`\u041D\u0435\u0440\u0430\u0437\u043F\u043E\u0437\u043D\u0430\u0442${t.keys.length>1?"\u0438":""} \u043A\u043B\u044E\u0447${t.keys.length>1?"\u043E\u0432\u0435":""}: ${P(t.keys,", ")}`;case"invalid_key":return`\u041D\u0435\u0432\u0430\u043B\u0438\u0434\u0435\u043D \u043A\u043B\u044E\u0447 \u0432 ${t.origin}`;case"invalid_union":return"\u041D\u0435\u0432\u0430\u043B\u0438\u0434\u0435\u043D \u0432\u0445\u043E\u0434";case"invalid_element":return`\u041D\u0435\u0432\u0430\u043B\u0438\u0434\u043D\u0430 \u0441\u0442\u043E\u0439\u043D\u043E\u0441\u0442 \u0432 ${t.origin}`;default:return"\u041D\u0435\u0432\u0430\u043B\u0438\u0434\u0435\u043D \u0432\u0445\u043E\u0434"}}};function Iy(){return{localeError:vw()}}var _w=()=>{let n={string:{unit:"car\xE0cters",verb:"contenir"},file:{unit:"bytes",verb:"contenir"},array:{unit:"elements",verb:"contenir"},set:{unit:"elements",verb:"contenir"}};function e(t){return n[t]??null}let r={regex:"entrada",email:"adre\xE7a electr\xF2nica",url:"URL",emoji:"emoji",uuid:"UUID",uuidv4:"UUIDv4",uuidv6:"UUIDv6",nanoid:"nanoid",guid:"GUID",cuid:"cuid",cuid2:"cuid2",ulid:"ULID",xid:"XID",ksuid:"KSUID",datetime:"data i hora ISO",date:"data ISO",time:"hora ISO",duration:"durada ISO",ipv4:"adre\xE7a IPv4",ipv6:"adre\xE7a IPv6",cidrv4:"rang IPv4",cidrv6:"rang IPv6",base64:"cadena codificada en base64",base64url:"cadena codificada en base64url",json_string:"cadena JSON",e164:"n\xFAmero E.164",jwt:"JWT",template_literal:"entrada"},i={nan:"NaN"};return t=>{switch(t.code){case"invalid_type":{let o=i[t.expected]??t.expected,s=O(t.input),a=i[s]??s;return/^[A-Z]/.test(t.expected)?`Tipus inv\xE0lid: s'esperava instanceof ${t.expected}, s'ha rebut ${a}`:`Tipus inv\xE0lid: s'esperava ${o}, s'ha rebut ${a}`}case"invalid_value":return t.values.length===1?`Valor inv\xE0lid: s'esperava ${A(t.values[0])}`:`Opci\xF3 inv\xE0lida: s'esperava una de ${P(t.values," o ")}`;case"too_big":{let o=t.inclusive?"com a m\xE0xim":"menys de",s=e(t.origin);return s?`Massa gran: s'esperava que ${t.origin??"el valor"} contingu\xE9s ${o} ${t.maximum.toString()} ${s.unit??"elements"}`:`Massa gran: s'esperava que ${t.origin??"el valor"} fos ${o} ${t.maximum.toString()}`}case"too_small":{let o=t.inclusive?"com a m\xEDnim":"m\xE9s de",s=e(t.origin);return s?`Massa petit: s'esperava que ${t.origin} contingu\xE9s ${o} ${t.minimum.toString()} ${s.unit}`:`Massa petit: s'esperava que ${t.origin} fos ${o} ${t.minimum.toString()}`}case"invalid_format":{let o=t;return o.format==="starts_with"?`Format inv\xE0lid: ha de comen\xE7ar amb "${o.prefix}"`:o.format==="ends_with"?`Format inv\xE0lid: ha d'acabar amb "${o.suffix}"`:o.format==="includes"?`Format inv\xE0lid: ha d'incloure "${o.includes}"`:o.format==="regex"?`Format inv\xE0lid: ha de coincidir amb el patr\xF3 ${o.pattern}`:`Format inv\xE0lid per a ${r[o.format]??t.format}`}case"not_multiple_of":return`N\xFAmero inv\xE0lid: ha de ser m\xFAltiple de ${t.divisor}`;case"unrecognized_keys":return`Clau${t.keys.length>1?"s":""} no reconeguda${t.keys.length>1?"s":""}: ${P(t.keys,", ")}`;case"invalid_key":return`Clau inv\xE0lida a ${t.origin}`;case"invalid_union":return"Entrada inv\xE0lida";case"invalid_element":return`Element inv\xE0lid a ${t.origin}`;default:return"Entrada inv\xE0lida"}}};function Ty(){return{localeError:_w()}}var xw=()=>{let n={string:{unit:"znak\u016F",verb:"m\xEDt"},file:{unit:"bajt\u016F",verb:"m\xEDt"},array:{unit:"prvk\u016F",verb:"m\xEDt"},set:{unit:"prvk\u016F",verb:"m\xEDt"}};function e(t){return n[t]??null}let r={regex:"regul\xE1rn\xED v\xFDraz",email:"e-mailov\xE1 adresa",url:"URL",emoji:"emoji",uuid:"UUID",uuidv4:"UUIDv4",uuidv6:"UUIDv6",nanoid:"nanoid",guid:"GUID",cuid:"cuid",cuid2:"cuid2",ulid:"ULID",xid:"XID",ksuid:"KSUID",datetime:"datum a \u010Das ve form\xE1tu ISO",date:"datum ve form\xE1tu ISO",time:"\u010Das ve form\xE1tu ISO",duration:"doba trv\xE1n\xED ISO",ipv4:"IPv4 adresa",ipv6:"IPv6 adresa",cidrv4:"rozsah IPv4",cidrv6:"rozsah IPv6",base64:"\u0159et\u011Bzec zak\xF3dovan\xFD ve form\xE1tu base64",base64url:"\u0159et\u011Bzec zak\xF3dovan\xFD ve form\xE1tu base64url",json_string:"\u0159et\u011Bzec ve form\xE1tu JSON",e164:"\u010D\xEDslo E.164",jwt:"JWT",template_literal:"vstup"},i={nan:"NaN",number:"\u010D\xEDslo",string:"\u0159et\u011Bzec",function:"funkce",array:"pole"};return t=>{switch(t.code){case"invalid_type":{let o=i[t.expected]??t.expected,s=O(t.input),a=i[s]??s;return/^[A-Z]/.test(t.expected)?`Neplatn\xFD vstup: o\u010Dek\xE1v\xE1no instanceof ${t.expected}, obdr\u017Eeno ${a}`:`Neplatn\xFD vstup: o\u010Dek\xE1v\xE1no ${o}, obdr\u017Eeno ${a}`}case"invalid_value":return t.values.length===1?`Neplatn\xFD vstup: o\u010Dek\xE1v\xE1no ${A(t.values[0])}`:`Neplatn\xE1 mo\u017Enost: o\u010Dek\xE1v\xE1na jedna z hodnot ${P(t.values,"|")}`;case"too_big":{let o=t.inclusive?"<=":"<",s=e(t.origin);return s?`Hodnota je p\u0159\xEDli\u0161 velk\xE1: ${t.origin??"hodnota"} mus\xED m\xEDt ${o}${t.maximum.toString()} ${s.unit??"prvk\u016F"}`:`Hodnota je p\u0159\xEDli\u0161 velk\xE1: ${t.origin??"hodnota"} mus\xED b\xFDt ${o}${t.maximum.toString()}`}case"too_small":{let o=t.inclusive?">=":">",s=e(t.origin);return s?`Hodnota je p\u0159\xEDli\u0161 mal\xE1: ${t.origin??"hodnota"} mus\xED m\xEDt ${o}${t.minimum.toString()} ${s.unit??"prvk\u016F"}`:`Hodnota je p\u0159\xEDli\u0161 mal\xE1: ${t.origin??"hodnota"} mus\xED b\xFDt ${o}${t.minimum.toString()}`}case"invalid_format":{let o=t;return o.format==="starts_with"?`Neplatn\xFD \u0159et\u011Bzec: mus\xED za\u010D\xEDnat na "${o.prefix}"`:o.format==="ends_with"?`Neplatn\xFD \u0159et\u011Bzec: mus\xED kon\u010Dit na "${o.suffix}"`:o.format==="includes"?`Neplatn\xFD \u0159et\u011Bzec: mus\xED obsahovat "${o.includes}"`:o.format==="regex"?`Neplatn\xFD \u0159et\u011Bzec: mus\xED odpov\xEDdat vzoru ${o.pattern}`:`Neplatn\xFD form\xE1t ${r[o.format]??t.format}`}case"not_multiple_of":return`Neplatn\xE9 \u010D\xEDslo: mus\xED b\xFDt n\xE1sobkem ${t.divisor}`;case"unrecognized_keys":return`Nezn\xE1m\xE9 kl\xED\u010De: ${P(t.keys,", ")}`;case"invalid_key":return`Neplatn\xFD kl\xED\u010D v ${t.origin}`;case"invalid_union":return"Neplatn\xFD vstup";case"invalid_element":return`Neplatn\xE1 hodnota v ${t.origin}`;default:return"Neplatn\xFD vstup"}}};function Py(){return{localeError:xw()}}var Sw=()=>{let n={string:{unit:"tegn",verb:"havde"},file:{unit:"bytes",verb:"havde"},array:{unit:"elementer",verb:"indeholdt"},set:{unit:"elementer",verb:"indeholdt"}};function e(t){return n[t]??null}let r={regex:"input",email:"e-mailadresse",url:"URL",emoji:"emoji",uuid:"UUID",uuidv4:"UUIDv4",uuidv6:"UUIDv6",nanoid:"nanoid",guid:"GUID",cuid:"cuid",cuid2:"cuid2",ulid:"ULID",xid:"XID",ksuid:"KSUID",datetime:"ISO dato- og klokkesl\xE6t",date:"ISO-dato",time:"ISO-klokkesl\xE6t",duration:"ISO-varighed",ipv4:"IPv4-omr\xE5de",ipv6:"IPv6-omr\xE5de",cidrv4:"IPv4-spektrum",cidrv6:"IPv6-spektrum",base64:"base64-kodet streng",base64url:"base64url-kodet streng",json_string:"JSON-streng",e164:"E.164-nummer",jwt:"JWT",template_literal:"input"},i={nan:"NaN",string:"streng",number:"tal",boolean:"boolean",array:"liste",object:"objekt",set:"s\xE6t",file:"fil"};return t=>{switch(t.code){case"invalid_type":{let o=i[t.expected]??t.expected,s=O(t.input),a=i[s]??s;return/^[A-Z]/.test(t.expected)?`Ugyldigt input: forventede instanceof ${t.expected}, fik ${a}`:`Ugyldigt input: forventede ${o}, fik ${a}`}case"invalid_value":return t.values.length===1?`Ugyldig v\xE6rdi: forventede ${A(t.values[0])}`:`Ugyldigt valg: forventede en af f\xF8lgende ${P(t.values,"|")}`;case"too_big":{let o=t.inclusive?"<=":"<",s=e(t.origin),a=i[t.origin]??t.origin;return s?`For stor: forventede ${a??"value"} ${s.verb} ${o} ${t.maximum.toString()} ${s.unit??"elementer"}`:`For stor: forventede ${a??"value"} havde ${o} ${t.maximum.toString()}`}case"too_small":{let o=t.inclusive?">=":">",s=e(t.origin),a=i[t.origin]??t.origin;return s?`For lille: forventede ${a} ${s.verb} ${o} ${t.minimum.toString()} ${s.unit}`:`For lille: forventede ${a} havde ${o} ${t.minimum.toString()}`}case"invalid_format":{let o=t;return o.format==="starts_with"?`Ugyldig streng: skal starte med "${o.prefix}"`:o.format==="ends_with"?`Ugyldig streng: skal ende med "${o.suffix}"`:o.format==="includes"?`Ugyldig streng: skal indeholde "${o.includes}"`:o.format==="regex"?`Ugyldig streng: skal matche m\xF8nsteret ${o.pattern}`:`Ugyldig ${r[o.format]??t.format}`}case"not_multiple_of":return`Ugyldigt tal: skal v\xE6re deleligt med ${t.divisor}`;case"unrecognized_keys":return`${t.keys.length>1?"Ukendte n\xF8gler":"Ukendt n\xF8gle"}: ${P(t.keys,", ")}`;case"invalid_key":return`Ugyldig n\xF8gle i ${t.origin}`;case"invalid_union":return"Ugyldigt input: matcher ingen af de tilladte typer";case"invalid_element":return`Ugyldig v\xE6rdi i ${t.origin}`;default:return"Ugyldigt input"}}};function Ry(){return{localeError:Sw()}}var $w=()=>{let n={string:{unit:"Zeichen",verb:"zu haben"},file:{unit:"Bytes",verb:"zu haben"},array:{unit:"Elemente",verb:"zu haben"},set:{unit:"Elemente",verb:"zu haben"}};function e(t){return n[t]??null}let r={regex:"Eingabe",email:"E-Mail-Adresse",url:"URL",emoji:"Emoji",uuid:"UUID",uuidv4:"UUIDv4",uuidv6:"UUIDv6",nanoid:"nanoid",guid:"GUID",cuid:"cuid",cuid2:"cuid2",ulid:"ULID",xid:"XID",ksuid:"KSUID",datetime:"ISO-Datum und -Uhrzeit",date:"ISO-Datum",time:"ISO-Uhrzeit",duration:"ISO-Dauer",ipv4:"IPv4-Adresse",ipv6:"IPv6-Adresse",cidrv4:"IPv4-Bereich",cidrv6:"IPv6-Bereich",base64:"Base64-codierter String",base64url:"Base64-URL-codierter String",json_string:"JSON-String",e164:"E.164-Nummer",jwt:"JWT",template_literal:"Eingabe"},i={nan:"NaN",number:"Zahl",array:"Array"};return t=>{switch(t.code){case"invalid_type":{let o=i[t.expected]??t.expected,s=O(t.input),a=i[s]??s;return/^[A-Z]/.test(t.expected)?`Ung\xFCltige Eingabe: erwartet instanceof ${t.expected}, erhalten ${a}`:`Ung\xFCltige Eingabe: erwartet ${o}, erhalten ${a}`}case"invalid_value":return t.values.length===1?`Ung\xFCltige Eingabe: erwartet ${A(t.values[0])}`:`Ung\xFCltige Option: erwartet eine von ${P(t.values,"|")}`;case"too_big":{let o=t.inclusive?"<=":"<",s=e(t.origin);return s?`Zu gro\xDF: erwartet, dass ${t.origin??"Wert"} ${o}${t.maximum.toString()} ${s.unit??"Elemente"} hat`:`Zu gro\xDF: erwartet, dass ${t.origin??"Wert"} ${o}${t.maximum.toString()} ist`}case"too_small":{let o=t.inclusive?">=":">",s=e(t.origin);return s?`Zu klein: erwartet, dass ${t.origin} ${o}${t.minimum.toString()} ${s.unit} hat`:`Zu klein: erwartet, dass ${t.origin} ${o}${t.minimum.toString()} ist`}case"invalid_format":{let o=t;return o.format==="starts_with"?`Ung\xFCltiger String: muss mit "${o.prefix}" beginnen`:o.format==="ends_with"?`Ung\xFCltiger String: muss mit "${o.suffix}" enden`:o.format==="includes"?`Ung\xFCltiger String: muss "${o.includes}" enthalten`:o.format==="regex"?`Ung\xFCltiger String: muss dem Muster ${o.pattern} entsprechen`:`Ung\xFCltig: ${r[o.format]??t.format}`}case"not_multiple_of":return`Ung\xFCltige Zahl: muss ein Vielfaches von ${t.divisor} sein`;case"unrecognized_keys":return`${t.keys.length>1?"Unbekannte Schl\xFCssel":"Unbekannter Schl\xFCssel"}: ${P(t.keys,", ")}`;case"invalid_key":return`Ung\xFCltiger Schl\xFCssel in ${t.origin}`;case"invalid_union":return"Ung\xFCltige Eingabe";case"invalid_element":return`Ung\xFCltiger Wert in ${t.origin}`;default:return"Ung\xFCltige Eingabe"}}};function zy(){return{localeError:$w()}}var ww=()=>{let n={string:{unit:"characters",verb:"to have"},file:{unit:"bytes",verb:"to have"},array:{unit:"items",verb:"to have"},set:{unit:"items",verb:"to have"},map:{unit:"entries",verb:"to have"}};function e(t){return n[t]??null}let r={regex:"input",email:"email address",url:"URL",emoji:"emoji",uuid:"UUID",uuidv4:"UUIDv4",uuidv6:"UUIDv6",nanoid:"nanoid",guid:"GUID",cuid:"cuid",cuid2:"cuid2",ulid:"ULID",xid:"XID",ksuid:"KSUID",datetime:"ISO datetime",date:"ISO date",time:"ISO time",duration:"ISO duration",ipv4:"IPv4 address",ipv6:"IPv6 address",mac:"MAC address",cidrv4:"IPv4 range",cidrv6:"IPv6 range",base64:"base64-encoded string",base64url:"base64url-encoded string",json_string:"JSON string",e164:"E.164 number",jwt:"JWT",template_literal:"input"},i={nan:"NaN"};return t=>{switch(t.code){case"invalid_type":{let o=i[t.expected]??t.expected,s=O(t.input),a=i[s]??s;return`Invalid input: expected ${o}, received ${a}`}case"invalid_value":return t.values.length===1?`Invalid input: expected ${A(t.values[0])}`:`Invalid option: expected one of ${P(t.values,"|")}`;case"too_big":{let o=t.inclusive?"<=":"<",s=e(t.origin);return s?`Too big: expected ${t.origin??"value"} to have ${o}${t.maximum.toString()} ${s.unit??"elements"}`:`Too big: expected ${t.origin??"value"} to be ${o}${t.maximum.toString()}`}case"too_small":{let o=t.inclusive?">=":">",s=e(t.origin);return s?`Too small: expected ${t.origin} to have ${o}${t.minimum.toString()} ${s.unit}`:`Too small: expected ${t.origin} to be ${o}${t.minimum.toString()}`}case"invalid_format":{let o=t;return o.format==="starts_with"?`Invalid string: must start with "${o.prefix}"`:o.format==="ends_with"?`Invalid string: must end with "${o.suffix}"`:o.format==="includes"?`Invalid string: must include "${o.includes}"`:o.format==="regex"?`Invalid string: must match pattern ${o.pattern}`:`Invalid ${r[o.format]??t.format}`}case"not_multiple_of":return`Invalid number: must be a multiple of ${t.divisor}`;case"unrecognized_keys":return`Unrecognized key${t.keys.length>1?"s":""}: ${P(t.keys,", ")}`;case"invalid_key":return`Invalid key in ${t.origin}`;case"invalid_union":return"Invalid input";case"invalid_element":return`Invalid value in ${t.origin}`;default:return"Invalid input"}}};function Es(){return{localeError:ww()}}var kw=()=>{let n={string:{unit:"karaktrojn",verb:"havi"},file:{unit:"bajtojn",verb:"havi"},array:{unit:"elementojn",verb:"havi"},set:{unit:"elementojn",verb:"havi"}};function e(t){return n[t]??null}let r={regex:"enigo",email:"retadreso",url:"URL",emoji:"emo\u011Dio",uuid:"UUID",uuidv4:"UUIDv4",uuidv6:"UUIDv6",nanoid:"nanoid",guid:"GUID",cuid:"cuid",cuid2:"cuid2",ulid:"ULID",xid:"XID",ksuid:"KSUID",datetime:"ISO-datotempo",date:"ISO-dato",time:"ISO-tempo",duration:"ISO-da\u016Dro",ipv4:"IPv4-adreso",ipv6:"IPv6-adreso",cidrv4:"IPv4-rango",cidrv6:"IPv6-rango",base64:"64-ume kodita karaktraro",base64url:"URL-64-ume kodita karaktraro",json_string:"JSON-karaktraro",e164:"E.164-nombro",jwt:"JWT",template_literal:"enigo"},i={nan:"NaN",number:"nombro",array:"tabelo",null:"senvalora"};return t=>{switch(t.code){case"invalid_type":{let o=i[t.expected]??t.expected,s=O(t.input),a=i[s]??s;return/^[A-Z]/.test(t.expected)?`Nevalida enigo: atendi\u011Dis instanceof ${t.expected}, ricevi\u011Dis ${a}`:`Nevalida enigo: atendi\u011Dis ${o}, ricevi\u011Dis ${a}`}case"invalid_value":return t.values.length===1?`Nevalida enigo: atendi\u011Dis ${A(t.values[0])}`:`Nevalida opcio: atendi\u011Dis unu el ${P(t.values,"|")}`;case"too_big":{let o=t.inclusive?"<=":"<",s=e(t.origin);return s?`Tro granda: atendi\u011Dis ke ${t.origin??"valoro"} havu ${o}${t.maximum.toString()} ${s.unit??"elementojn"}`:`Tro granda: atendi\u011Dis ke ${t.origin??"valoro"} havu ${o}${t.maximum.toString()}`}case"too_small":{let o=t.inclusive?">=":">",s=e(t.origin);return s?`Tro malgranda: atendi\u011Dis ke ${t.origin} havu ${o}${t.minimum.toString()} ${s.unit}`:`Tro malgranda: atendi\u011Dis ke ${t.origin} estu ${o}${t.minimum.toString()}`}case"invalid_format":{let o=t;return o.format==="starts_with"?`Nevalida karaktraro: devas komenci\u011Di per "${o.prefix}"`:o.format==="ends_with"?`Nevalida karaktraro: devas fini\u011Di per "${o.suffix}"`:o.format==="includes"?`Nevalida karaktraro: devas inkluzivi "${o.includes}"`:o.format==="regex"?`Nevalida karaktraro: devas kongrui kun la modelo ${o.pattern}`:`Nevalida ${r[o.format]??t.format}`}case"not_multiple_of":return`Nevalida nombro: devas esti oblo de ${t.divisor}`;case"unrecognized_keys":return`Nekonata${t.keys.length>1?"j":""} \u015Dlosilo${t.keys.length>1?"j":""}: ${P(t.keys,", ")}`;case"invalid_key":return`Nevalida \u015Dlosilo en ${t.origin}`;case"invalid_union":return"Nevalida enigo";case"invalid_element":return`Nevalida valoro en ${t.origin}`;default:return"Nevalida enigo"}}};function Ny(){return{localeError:kw()}}var Ew=()=>{let n={string:{unit:"caracteres",verb:"tener"},file:{unit:"bytes",verb:"tener"},array:{unit:"elementos",verb:"tener"},set:{unit:"elementos",verb:"tener"}};function e(t){return n[t]??null}let r={regex:"entrada",email:"direcci\xF3n de correo electr\xF3nico",url:"URL",emoji:"emoji",uuid:"UUID",uuidv4:"UUIDv4",uuidv6:"UUIDv6",nanoid:"nanoid",guid:"GUID",cuid:"cuid",cuid2:"cuid2",ulid:"ULID",xid:"XID",ksuid:"KSUID",datetime:"fecha y hora ISO",date:"fecha ISO",time:"hora ISO",duration:"duraci\xF3n ISO",ipv4:"direcci\xF3n IPv4",ipv6:"direcci\xF3n IPv6",cidrv4:"rango IPv4",cidrv6:"rango IPv6",base64:"cadena codificada en base64",base64url:"URL codificada en base64",json_string:"cadena JSON",e164:"n\xFAmero E.164",jwt:"JWT",template_literal:"entrada"},i={nan:"NaN",string:"texto",number:"n\xFAmero",boolean:"booleano",array:"arreglo",object:"objeto",set:"conjunto",file:"archivo",date:"fecha",bigint:"n\xFAmero grande",symbol:"s\xEDmbolo",undefined:"indefinido",null:"nulo",function:"funci\xF3n",map:"mapa",record:"registro",tuple:"tupla",enum:"enumeraci\xF3n",union:"uni\xF3n",literal:"literal",promise:"promesa",void:"vac\xEDo",never:"nunca",unknown:"desconocido",any:"cualquiera"};return t=>{switch(t.code){case"invalid_type":{let o=i[t.expected]??t.expected,s=O(t.input),a=i[s]??s;return/^[A-Z]/.test(t.expected)?`Entrada inv\xE1lida: se esperaba instanceof ${t.expected}, recibido ${a}`:`Entrada inv\xE1lida: se esperaba ${o}, recibido ${a}`}case"invalid_value":return t.values.length===1?`Entrada inv\xE1lida: se esperaba ${A(t.values[0])}`:`Opci\xF3n inv\xE1lida: se esperaba una de ${P(t.values,"|")}`;case"too_big":{let o=t.inclusive?"<=":"<",s=e(t.origin),a=i[t.origin]??t.origin;return s?`Demasiado grande: se esperaba que ${a??"valor"} tuviera ${o}${t.maximum.toString()} ${s.unit??"elementos"}`:`Demasiado grande: se esperaba que ${a??"valor"} fuera ${o}${t.maximum.toString()}`}case"too_small":{let o=t.inclusive?">=":">",s=e(t.origin),a=i[t.origin]??t.origin;return s?`Demasiado peque\xF1o: se esperaba que ${a} tuviera ${o}${t.minimum.toString()} ${s.unit}`:`Demasiado peque\xF1o: se esperaba que ${a} fuera ${o}${t.minimum.toString()}`}case"invalid_format":{let o=t;return o.format==="starts_with"?`Cadena inv\xE1lida: debe comenzar con "${o.prefix}"`:o.format==="ends_with"?`Cadena inv\xE1lida: debe terminar en "${o.suffix}"`:o.format==="includes"?`Cadena inv\xE1lida: debe incluir "${o.includes}"`:o.format==="regex"?`Cadena inv\xE1lida: debe coincidir con el patr\xF3n ${o.pattern}`:`Inv\xE1lido ${r[o.format]??t.format}`}case"not_multiple_of":return`N\xFAmero inv\xE1lido: debe ser m\xFAltiplo de ${t.divisor}`;case"unrecognized_keys":return`Llave${t.keys.length>1?"s":""} desconocida${t.keys.length>1?"s":""}: ${P(t.keys,", ")}`;case"invalid_key":return`Llave inv\xE1lida en ${i[t.origin]??t.origin}`;case"invalid_union":return"Entrada inv\xE1lida";case"invalid_element":return`Valor inv\xE1lido en ${i[t.origin]??t.origin}`;default:return"Entrada inv\xE1lida"}}};function Cy(){return{localeError:Ew()}}var Iw=()=>{let n={string:{unit:"\u06A9\u0627\u0631\u0627\u06A9\u062A\u0631",verb:"\u062F\u0627\u0634\u062A\u0647 \u0628\u0627\u0634\u062F"},file:{unit:"\u0628\u0627\u06CC\u062A",verb:"\u062F\u0627\u0634\u062A\u0647 \u0628\u0627\u0634\u062F"},array:{unit:"\u0622\u06CC\u062A\u0645",verb:"\u062F\u0627\u0634\u062A\u0647 \u0628\u0627\u0634\u062F"},set:{unit:"\u0622\u06CC\u062A\u0645",verb:"\u062F\u0627\u0634\u062A\u0647 \u0628\u0627\u0634\u062F"}};function e(t){return n[t]??null}let r={regex:"\u0648\u0631\u0648\u062F\u06CC",email:"\u0622\u062F\u0631\u0633 \u0627\u06CC\u0645\u06CC\u0644",url:"URL",emoji:"\u0627\u06CC\u0645\u0648\u062C\u06CC",uuid:"UUID",uuidv4:"UUIDv4",uuidv6:"UUIDv6",nanoid:"nanoid",guid:"GUID",cuid:"cuid",cuid2:"cuid2",ulid:"ULID",xid:"XID",ksuid:"KSUID",datetime:"\u062A\u0627\u0631\u06CC\u062E \u0648 \u0632\u0645\u0627\u0646 \u0627\u06CC\u0632\u0648",date:"\u062A\u0627\u0631\u06CC\u062E \u0627\u06CC\u0632\u0648",time:"\u0632\u0645\u0627\u0646 \u0627\u06CC\u0632\u0648",duration:"\u0645\u062F\u062A \u0632\u0645\u0627\u0646 \u0627\u06CC\u0632\u0648",ipv4:"IPv4 \u0622\u062F\u0631\u0633",ipv6:"IPv6 \u0622\u062F\u0631\u0633",cidrv4:"IPv4 \u062F\u0627\u0645\u0646\u0647",cidrv6:"IPv6 \u062F\u0627\u0645\u0646\u0647",base64:"base64-encoded \u0631\u0634\u062A\u0647",base64url:"base64url-encoded \u0631\u0634\u062A\u0647",json_string:"JSON \u0631\u0634\u062A\u0647",e164:"E.164 \u0639\u062F\u062F",jwt:"JWT",template_literal:"\u0648\u0631\u0648\u062F\u06CC"},i={nan:"NaN",number:"\u0639\u062F\u062F",array:"\u0622\u0631\u0627\u06CC\u0647"};return t=>{switch(t.code){case"invalid_type":{let o=i[t.expected]??t.expected,s=O(t.input),a=i[s]??s;return/^[A-Z]/.test(t.expected)?`\u0648\u0631\u0648\u062F\u06CC \u0646\u0627\u0645\u0639\u062A\u0628\u0631: \u0645\u06CC\u200C\u0628\u0627\u06CC\u0633\u062A instanceof ${t.expected} \u0645\u06CC\u200C\u0628\u0648\u062F\u060C ${a} \u062F\u0631\u06CC\u0627\u0641\u062A \u0634\u062F`:`\u0648\u0631\u0648\u062F\u06CC \u0646\u0627\u0645\u0639\u062A\u0628\u0631: \u0645\u06CC\u200C\u0628\u0627\u06CC\u0633\u062A ${o} \u0645\u06CC\u200C\u0628\u0648\u062F\u060C ${a} \u062F\u0631\u06CC\u0627\u0641\u062A \u0634\u062F`}case"invalid_value":return t.values.length===1?`\u0648\u0631\u0648\u062F\u06CC \u0646\u0627\u0645\u0639\u062A\u0628\u0631: \u0645\u06CC\u200C\u0628\u0627\u06CC\u0633\u062A ${A(t.values[0])} \u0645\u06CC\u200C\u0628\u0648\u062F`:`\u06AF\u0632\u06CC\u0646\u0647 \u0646\u0627\u0645\u0639\u062A\u0628\u0631: \u0645\u06CC\u200C\u0628\u0627\u06CC\u0633\u062A \u06CC\u06A9\u06CC \u0627\u0632 ${P(t.values,"|")} \u0645\u06CC\u200C\u0628\u0648\u062F`;case"too_big":{let o=t.inclusive?"<=":"<",s=e(t.origin);return s?`\u062E\u06CC\u0644\u06CC \u0628\u0632\u0631\u06AF: ${t.origin??"\u0645\u0642\u062F\u0627\u0631"} \u0628\u0627\u06CC\u062F ${o}${t.maximum.toString()} ${s.unit??"\u0639\u0646\u0635\u0631"} \u0628\u0627\u0634\u062F`:`\u062E\u06CC\u0644\u06CC \u0628\u0632\u0631\u06AF: ${t.origin??"\u0645\u0642\u062F\u0627\u0631"} \u0628\u0627\u06CC\u062F ${o}${t.maximum.toString()} \u0628\u0627\u0634\u062F`}case"too_small":{let o=t.inclusive?">=":">",s=e(t.origin);return s?`\u062E\u06CC\u0644\u06CC \u06A9\u0648\u0686\u06A9: ${t.origin} \u0628\u0627\u06CC\u062F ${o}${t.minimum.toString()} ${s.unit} \u0628\u0627\u0634\u062F`:`\u062E\u06CC\u0644\u06CC \u06A9\u0648\u0686\u06A9: ${t.origin} \u0628\u0627\u06CC\u062F ${o}${t.minimum.toString()} \u0628\u0627\u0634\u062F`}case"invalid_format":{let o=t;return o.format==="starts_with"?`\u0631\u0634\u062A\u0647 \u0646\u0627\u0645\u0639\u062A\u0628\u0631: \u0628\u0627\u06CC\u062F \u0628\u0627 "${o.prefix}" \u0634\u0631\u0648\u0639 \u0634\u0648\u062F`:o.format==="ends_with"?`\u0631\u0634\u062A\u0647 \u0646\u0627\u0645\u0639\u062A\u0628\u0631: \u0628\u0627\u06CC\u062F \u0628\u0627 "${o.suffix}" \u062A\u0645\u0627\u0645 \u0634\u0648\u062F`:o.format==="includes"?`\u0631\u0634\u062A\u0647 \u0646\u0627\u0645\u0639\u062A\u0628\u0631: \u0628\u0627\u06CC\u062F \u0634\u0627\u0645\u0644 "${o.includes}" \u0628\u0627\u0634\u062F`:o.format==="regex"?`\u0631\u0634\u062A\u0647 \u0646\u0627\u0645\u0639\u062A\u0628\u0631: \u0628\u0627\u06CC\u062F \u0628\u0627 \u0627\u0644\u06AF\u0648\u06CC ${o.pattern} \u0645\u0637\u0627\u0628\u0642\u062A \u062F\u0627\u0634\u062A\u0647 \u0628\u0627\u0634\u062F`:`${r[o.format]??t.format} \u0646\u0627\u0645\u0639\u062A\u0628\u0631`}case"not_multiple_of":return`\u0639\u062F\u062F \u0646\u0627\u0645\u0639\u062A\u0628\u0631: \u0628\u0627\u06CC\u062F \u0645\u0636\u0631\u0628 ${t.divisor} \u0628\u0627\u0634\u062F`;case"unrecognized_keys":return`\u06A9\u0644\u06CC\u062F${t.keys.length>1?"\u0647\u0627\u06CC":""} \u0646\u0627\u0634\u0646\u0627\u0633: ${P(t.keys,", ")}`;case"invalid_key":return`\u06A9\u0644\u06CC\u062F \u0646\u0627\u0634\u0646\u0627\u0633 \u062F\u0631 ${t.origin}`;case"invalid_union":return"\u0648\u0631\u0648\u062F\u06CC \u0646\u0627\u0645\u0639\u062A\u0628\u0631";case"invalid_element":return`\u0645\u0642\u062F\u0627\u0631 \u0646\u0627\u0645\u0639\u062A\u0628\u0631 \u062F\u0631 ${t.origin}`;default:return"\u0648\u0631\u0648\u062F\u06CC \u0646\u0627\u0645\u0639\u062A\u0628\u0631"}}};function Dy(){return{localeError:Iw()}}var Tw=()=>{let n={string:{unit:"merkki\xE4",subject:"merkkijonon"},file:{unit:"tavua",subject:"tiedoston"},array:{unit:"alkiota",subject:"listan"},set:{unit:"alkiota",subject:"joukon"},number:{unit:"",subject:"luvun"},bigint:{unit:"",subject:"suuren kokonaisluvun"},int:{unit:"",subject:"kokonaisluvun"},date:{unit:"",subject:"p\xE4iv\xE4m\xE4\xE4r\xE4n"}};function e(t){return n[t]??null}let r={regex:"s\xE4\xE4nn\xF6llinen lauseke",email:"s\xE4hk\xF6postiosoite",url:"URL-osoite",emoji:"emoji",uuid:"UUID",uuidv4:"UUIDv4",uuidv6:"UUIDv6",nanoid:"nanoid",guid:"GUID",cuid:"cuid",cuid2:"cuid2",ulid:"ULID",xid:"XID",ksuid:"KSUID",datetime:"ISO-aikaleima",date:"ISO-p\xE4iv\xE4m\xE4\xE4r\xE4",time:"ISO-aika",duration:"ISO-kesto",ipv4:"IPv4-osoite",ipv6:"IPv6-osoite",cidrv4:"IPv4-alue",cidrv6:"IPv6-alue",base64:"base64-koodattu merkkijono",base64url:"base64url-koodattu merkkijono",json_string:"JSON-merkkijono",e164:"E.164-luku",jwt:"JWT",template_literal:"templaattimerkkijono"},i={nan:"NaN"};return t=>{switch(t.code){case"invalid_type":{let o=i[t.expected]??t.expected,s=O(t.input),a=i[s]??s;return/^[A-Z]/.test(t.expected)?`Virheellinen tyyppi: odotettiin instanceof ${t.expected}, oli ${a}`:`Virheellinen tyyppi: odotettiin ${o}, oli ${a}`}case"invalid_value":return t.values.length===1?`Virheellinen sy\xF6te: t\xE4ytyy olla ${A(t.values[0])}`:`Virheellinen valinta: t\xE4ytyy olla yksi seuraavista: ${P(t.values,"|")}`;case"too_big":{let o=t.inclusive?"<=":"<",s=e(t.origin);return s?`Liian suuri: ${s.subject} t\xE4ytyy olla ${o}${t.maximum.toString()} ${s.unit}`.trim():`Liian suuri: arvon t\xE4ytyy olla ${o}${t.maximum.toString()}`}case"too_small":{let o=t.inclusive?">=":">",s=e(t.origin);return s?`Liian pieni: ${s.subject} t\xE4ytyy olla ${o}${t.minimum.toString()} ${s.unit}`.trim():`Liian pieni: arvon t\xE4ytyy olla ${o}${t.minimum.toString()}`}case"invalid_format":{let o=t;return o.format==="starts_with"?`Virheellinen sy\xF6te: t\xE4ytyy alkaa "${o.prefix}"`:o.format==="ends_with"?`Virheellinen sy\xF6te: t\xE4ytyy loppua "${o.suffix}"`:o.format==="includes"?`Virheellinen sy\xF6te: t\xE4ytyy sis\xE4lt\xE4\xE4 "${o.includes}"`:o.format==="regex"?`Virheellinen sy\xF6te: t\xE4ytyy vastata s\xE4\xE4nn\xF6llist\xE4 lauseketta ${o.pattern}`:`Virheellinen ${r[o.format]??t.format}`}case"not_multiple_of":return`Virheellinen luku: t\xE4ytyy olla luvun ${t.divisor} monikerta`;case"unrecognized_keys":return`${t.keys.length>1?"Tuntemattomat avaimet":"Tuntematon avain"}: ${P(t.keys,", ")}`;case"invalid_key":return"Virheellinen avain tietueessa";case"invalid_union":return"Virheellinen unioni";case"invalid_element":return"Virheellinen arvo joukossa";default:return"Virheellinen sy\xF6te"}}};function Ly(){return{localeError:Tw()}}var Pw=()=>{let n={string:{unit:"caract\xE8res",verb:"avoir"},file:{unit:"octets",verb:"avoir"},array:{unit:"\xE9l\xE9ments",verb:"avoir"},set:{unit:"\xE9l\xE9ments",verb:"avoir"}};function e(t){return n[t]??null}let r={regex:"entr\xE9e",email:"adresse e-mail",url:"URL",emoji:"emoji",uuid:"UUID",uuidv4:"UUIDv4",uuidv6:"UUIDv6",nanoid:"nanoid",guid:"GUID",cuid:"cuid",cuid2:"cuid2",ulid:"ULID",xid:"XID",ksuid:"KSUID",datetime:"date et heure ISO",date:"date ISO",time:"heure ISO",duration:"dur\xE9e ISO",ipv4:"adresse IPv4",ipv6:"adresse IPv6",cidrv4:"plage IPv4",cidrv6:"plage IPv6",base64:"cha\xEEne encod\xE9e en base64",base64url:"cha\xEEne encod\xE9e en base64url",json_string:"cha\xEEne JSON",e164:"num\xE9ro E.164",jwt:"JWT",template_literal:"entr\xE9e"},i={nan:"NaN",number:"nombre",array:"tableau"};return t=>{switch(t.code){case"invalid_type":{let o=i[t.expected]??t.expected,s=O(t.input),a=i[s]??s;return/^[A-Z]/.test(t.expected)?`Entr\xE9e invalide : instanceof ${t.expected} attendu, ${a} re\xE7u`:`Entr\xE9e invalide : ${o} attendu, ${a} re\xE7u`}case"invalid_value":return t.values.length===1?`Entr\xE9e invalide : ${A(t.values[0])} attendu`:`Option invalide : une valeur parmi ${P(t.values,"|")} attendue`;case"too_big":{let o=t.inclusive?"<=":"<",s=e(t.origin);return s?`Trop grand : ${t.origin??"valeur"} doit ${s.verb} ${o}${t.maximum.toString()} ${s.unit??"\xE9l\xE9ment(s)"}`:`Trop grand : ${t.origin??"valeur"} doit \xEAtre ${o}${t.maximum.toString()}`}case"too_small":{let o=t.inclusive?">=":">",s=e(t.origin);return s?`Trop petit : ${t.origin} doit ${s.verb} ${o}${t.minimum.toString()} ${s.unit}`:`Trop petit : ${t.origin} doit \xEAtre ${o}${t.minimum.toString()}`}case"invalid_format":{let o=t;return o.format==="starts_with"?`Cha\xEEne invalide : doit commencer par "${o.prefix}"`:o.format==="ends_with"?`Cha\xEEne invalide : doit se terminer par "${o.suffix}"`:o.format==="includes"?`Cha\xEEne invalide : doit inclure "${o.includes}"`:o.format==="regex"?`Cha\xEEne invalide : doit correspondre au mod\xE8le ${o.pattern}`:`${r[o.format]??t.format} invalide`}case"not_multiple_of":return`Nombre invalide : doit \xEAtre un multiple de ${t.divisor}`;case"unrecognized_keys":return`Cl\xE9${t.keys.length>1?"s":""} non reconnue${t.keys.length>1?"s":""} : ${P(t.keys,", ")}`;case"invalid_key":return`Cl\xE9 invalide dans ${t.origin}`;case"invalid_union":return"Entr\xE9e invalide";case"invalid_element":return`Valeur invalide dans ${t.origin}`;default:return"Entr\xE9e invalide"}}};function Ay(){return{localeError:Pw()}}var Rw=()=>{let n={string:{unit:"caract\xE8res",verb:"avoir"},file:{unit:"octets",verb:"avoir"},array:{unit:"\xE9l\xE9ments",verb:"avoir"},set:{unit:"\xE9l\xE9ments",verb:"avoir"}};function e(t){return n[t]??null}let r={regex:"entr\xE9e",email:"adresse courriel",url:"URL",emoji:"emoji",uuid:"UUID",uuidv4:"UUIDv4",uuidv6:"UUIDv6",nanoid:"nanoid",guid:"GUID",cuid:"cuid",cuid2:"cuid2",ulid:"ULID",xid:"XID",ksuid:"KSUID",datetime:"date-heure ISO",date:"date ISO",time:"heure ISO",duration:"dur\xE9e ISO",ipv4:"adresse IPv4",ipv6:"adresse IPv6",cidrv4:"plage IPv4",cidrv6:"plage IPv6",base64:"cha\xEEne encod\xE9e en base64",base64url:"cha\xEEne encod\xE9e en base64url",json_string:"cha\xEEne JSON",e164:"num\xE9ro E.164",jwt:"JWT",template_literal:"entr\xE9e"},i={nan:"NaN"};return t=>{switch(t.code){case"invalid_type":{let o=i[t.expected]??t.expected,s=O(t.input),a=i[s]??s;return/^[A-Z]/.test(t.expected)?`Entr\xE9e invalide : attendu instanceof ${t.expected}, re\xE7u ${a}`:`Entr\xE9e invalide : attendu ${o}, re\xE7u ${a}`}case"invalid_value":return t.values.length===1?`Entr\xE9e invalide : attendu ${A(t.values[0])}`:`Option invalide : attendu l'une des valeurs suivantes ${P(t.values,"|")}`;case"too_big":{let o=t.inclusive?"\u2264":"<",s=e(t.origin);return s?`Trop grand : attendu que ${t.origin??"la valeur"} ait ${o}${t.maximum.toString()} ${s.unit}`:`Trop grand : attendu que ${t.origin??"la valeur"} soit ${o}${t.maximum.toString()}`}case"too_small":{let o=t.inclusive?"\u2265":">",s=e(t.origin);return s?`Trop petit : attendu que ${t.origin} ait ${o}${t.minimum.toString()} ${s.unit}`:`Trop petit : attendu que ${t.origin} soit ${o}${t.minimum.toString()}`}case"invalid_format":{let o=t;return o.format==="starts_with"?`Cha\xEEne invalide : doit commencer par "${o.prefix}"`:o.format==="ends_with"?`Cha\xEEne invalide : doit se terminer par "${o.suffix}"`:o.format==="includes"?`Cha\xEEne invalide : doit inclure "${o.includes}"`:o.format==="regex"?`Cha\xEEne invalide : doit correspondre au motif ${o.pattern}`:`${r[o.format]??t.format} invalide`}case"not_multiple_of":return`Nombre invalide : doit \xEAtre un multiple de ${t.divisor}`;case"unrecognized_keys":return`Cl\xE9${t.keys.length>1?"s":""} non reconnue${t.keys.length>1?"s":""} : ${P(t.keys,", ")}`;case"invalid_key":return`Cl\xE9 invalide dans ${t.origin}`;case"invalid_union":return"Entr\xE9e invalide";case"invalid_element":return`Valeur invalide dans ${t.origin}`;default:return"Entr\xE9e invalide"}}};function Oy(){return{localeError:Rw()}}var zw=()=>{let n={string:{label:"\u05DE\u05D7\u05E8\u05D5\u05D6\u05EA",gender:"f"},number:{label:"\u05DE\u05E1\u05E4\u05E8",gender:"m"},boolean:{label:"\u05E2\u05E8\u05DA \u05D1\u05D5\u05DC\u05D9\u05D0\u05E0\u05D9",gender:"m"},bigint:{label:"BigInt",gender:"m"},date:{label:"\u05EA\u05D0\u05E8\u05D9\u05DA",gender:"m"},array:{label:"\u05DE\u05E2\u05E8\u05DA",gender:"m"},object:{label:"\u05D0\u05D5\u05D1\u05D9\u05D9\u05E7\u05D8",gender:"m"},null:{label:"\u05E2\u05E8\u05DA \u05E8\u05D9\u05E7 (null)",gender:"m"},undefined:{label:"\u05E2\u05E8\u05DA \u05DC\u05D0 \u05DE\u05D5\u05D2\u05D3\u05E8 (undefined)",gender:"m"},symbol:{label:"\u05E1\u05D9\u05DE\u05D1\u05D5\u05DC (Symbol)",gender:"m"},function:{label:"\u05E4\u05D5\u05E0\u05E7\u05E6\u05D9\u05D4",gender:"f"},map:{label:"\u05DE\u05E4\u05D4 (Map)",gender:"f"},set:{label:"\u05E7\u05D1\u05D5\u05E6\u05D4 (Set)",gender:"f"},file:{label:"\u05E7\u05D5\u05D1\u05E5",gender:"m"},promise:{label:"Promise",gender:"m"},NaN:{label:"NaN",gender:"m"},unknown:{label:"\u05E2\u05E8\u05DA \u05DC\u05D0 \u05D9\u05D3\u05D5\u05E2",gender:"m"},value:{label:"\u05E2\u05E8\u05DA",gender:"m"}},e={string:{unit:"\u05EA\u05D5\u05D5\u05D9\u05DD",shortLabel:"\u05E7\u05E6\u05E8",longLabel:"\u05D0\u05E8\u05D5\u05DA"},file:{unit:"\u05D1\u05D9\u05D9\u05D8\u05D9\u05DD",shortLabel:"\u05E7\u05D8\u05DF",longLabel:"\u05D2\u05D3\u05D5\u05DC"},array:{unit:"\u05E4\u05E8\u05D9\u05D8\u05D9\u05DD",shortLabel:"\u05E7\u05D8\u05DF",longLabel:"\u05D2\u05D3\u05D5\u05DC"},set:{unit:"\u05E4\u05E8\u05D9\u05D8\u05D9\u05DD",shortLabel:"\u05E7\u05D8\u05DF",longLabel:"\u05D2\u05D3\u05D5\u05DC"},number:{unit:"",shortLabel:"\u05E7\u05D8\u05DF",longLabel:"\u05D2\u05D3\u05D5\u05DC"}},r=l=>l?n[l]:void 0,i=l=>{let u=r(l);return u?u.label:l??n.unknown.label},t=l=>`\u05D4${i(l)}`,o=l=>(r(l)?.gender??"m")==="f"?"\u05E6\u05E8\u05D9\u05DB\u05D4 \u05DC\u05D4\u05D9\u05D5\u05EA":"\u05E6\u05E8\u05D9\u05DA \u05DC\u05D4\u05D9\u05D5\u05EA",s=l=>l?e[l]??null:null,a={regex:{label:"\u05E7\u05DC\u05D8",gender:"m"},email:{label:"\u05DB\u05EA\u05D5\u05D1\u05EA \u05D0\u05D9\u05DE\u05D9\u05D9\u05DC",gender:"f"},url:{label:"\u05DB\u05EA\u05D5\u05D1\u05EA \u05E8\u05E9\u05EA",gender:"f"},emoji:{label:"\u05D0\u05D9\u05DE\u05D5\u05D2'\u05D9",gender:"m"},uuid:{label:"UUID",gender:"m"},nanoid:{label:"nanoid",gender:"m"},guid:{label:"GUID",gender:"m"},cuid:{label:"cuid",gender:"m"},cuid2:{label:"cuid2",gender:"m"},ulid:{label:"ULID",gender:"m"},xid:{label:"XID",gender:"m"},ksuid:{label:"KSUID",gender:"m"},datetime:{label:"\u05EA\u05D0\u05E8\u05D9\u05DA \u05D5\u05D6\u05DE\u05DF ISO",gender:"m"},date:{label:"\u05EA\u05D0\u05E8\u05D9\u05DA ISO",gender:"m"},time:{label:"\u05D6\u05DE\u05DF ISO",gender:"m"},duration:{label:"\u05DE\u05E9\u05DA \u05D6\u05DE\u05DF ISO",gender:"m"},ipv4:{label:"\u05DB\u05EA\u05D5\u05D1\u05EA IPv4",gender:"f"},ipv6:{label:"\u05DB\u05EA\u05D5\u05D1\u05EA IPv6",gender:"f"},cidrv4:{label:"\u05D8\u05D5\u05D5\u05D7 IPv4",gender:"m"},cidrv6:{label:"\u05D8\u05D5\u05D5\u05D7 IPv6",gender:"m"},base64:{label:"\u05DE\u05D7\u05E8\u05D5\u05D6\u05EA \u05D1\u05D1\u05E1\u05D9\u05E1 64",gender:"f"},base64url:{label:"\u05DE\u05D7\u05E8\u05D5\u05D6\u05EA \u05D1\u05D1\u05E1\u05D9\u05E1 64 \u05DC\u05DB\u05EA\u05D5\u05D1\u05D5\u05EA \u05E8\u05E9\u05EA",gender:"f"},json_string:{label:"\u05DE\u05D7\u05E8\u05D5\u05D6\u05EA JSON",gender:"f"},e164:{label:"\u05DE\u05E1\u05E4\u05E8 E.164",gender:"m"},jwt:{label:"JWT",gender:"m"},ends_with:{label:"\u05E7\u05DC\u05D8",gender:"m"},includes:{label:"\u05E7\u05DC\u05D8",gender:"m"},lowercase:{label:"\u05E7\u05DC\u05D8",gender:"m"},starts_with:{label:"\u05E7\u05DC\u05D8",gender:"m"},uppercase:{label:"\u05E7\u05DC\u05D8",gender:"m"}},c={nan:"NaN"};return l=>{switch(l.code){case"invalid_type":{let u=l.expected,d=c[u??""]??i(u),p=O(l.input),f=c[p]??n[p]?.label??p;return/^[A-Z]/.test(l.expected)?`\u05E7\u05DC\u05D8 \u05DC\u05D0 \u05EA\u05E7\u05D9\u05DF: \u05E6\u05E8\u05D9\u05DA \u05DC\u05D4\u05D9\u05D5\u05EA instanceof ${l.expected}, \u05D4\u05EA\u05E7\u05D1\u05DC ${f}`:`\u05E7\u05DC\u05D8 \u05DC\u05D0 \u05EA\u05E7\u05D9\u05DF: \u05E6\u05E8\u05D9\u05DA \u05DC\u05D4\u05D9\u05D5\u05EA ${d}, \u05D4\u05EA\u05E7\u05D1\u05DC ${f}`}case"invalid_value":{if(l.values.length===1)return`\u05E2\u05E8\u05DA \u05DC\u05D0 \u05EA\u05E7\u05D9\u05DF: \u05D4\u05E2\u05E8\u05DA \u05D7\u05D9\u05D9\u05D1 \u05DC\u05D4\u05D9\u05D5\u05EA ${A(l.values[0])}`;let u=l.values.map(f=>A(f));if(l.values.length===2)return`\u05E2\u05E8\u05DA \u05DC\u05D0 \u05EA\u05E7\u05D9\u05DF: \u05D4\u05D0\u05E4\u05E9\u05E8\u05D5\u05D9\u05D5\u05EA \u05D4\u05DE\u05EA\u05D0\u05D9\u05DE\u05D5\u05EA \u05D4\u05DF ${u[0]} \u05D0\u05D5 ${u[1]}`;let d=u[u.length-1];return`\u05E2\u05E8\u05DA \u05DC\u05D0 \u05EA\u05E7\u05D9\u05DF: \u05D4\u05D0\u05E4\u05E9\u05E8\u05D5\u05D9\u05D5\u05EA \u05D4\u05DE\u05EA\u05D0\u05D9\u05DE\u05D5\u05EA \u05D4\u05DF ${u.slice(0,-1).join(", ")} \u05D0\u05D5 ${d}`}case"too_big":{let u=s(l.origin),d=t(l.origin??"value");if(l.origin==="string")return`${u?.longLabel??"\u05D0\u05E8\u05D5\u05DA"} \u05DE\u05D3\u05D9: ${d} \u05E6\u05E8\u05D9\u05DB\u05D4 \u05DC\u05D4\u05DB\u05D9\u05DC ${l.maximum.toString()} ${u?.unit??""} ${l.inclusive?"\u05D0\u05D5 \u05E4\u05D7\u05D5\u05EA":"\u05DC\u05DB\u05DC \u05D4\u05D9\u05D5\u05EA\u05E8"}`.trim();if(l.origin==="number"){let m=l.inclusive?`\u05E7\u05D8\u05DF \u05D0\u05D5 \u05E9\u05D5\u05D5\u05D4 \u05DC-${l.maximum}`:`\u05E7\u05D8\u05DF \u05DE-${l.maximum}`;return`\u05D2\u05D3\u05D5\u05DC \u05DE\u05D3\u05D9: ${d} \u05E6\u05E8\u05D9\u05DA \u05DC\u05D4\u05D9\u05D5\u05EA ${m}`}if(l.origin==="array"||l.origin==="set"){let m=l.origin==="set"?"\u05E6\u05E8\u05D9\u05DB\u05D4":"\u05E6\u05E8\u05D9\u05DA",h=l.inclusive?`${l.maximum} ${u?.unit??""} \u05D0\u05D5 \u05E4\u05D7\u05D5\u05EA`:`\u05E4\u05D7\u05D5\u05EA \u05DE-${l.maximum} ${u?.unit??""}`;return`\u05D2\u05D3\u05D5\u05DC \u05DE\u05D3\u05D9: ${d} ${m} \u05DC\u05D4\u05DB\u05D9\u05DC ${h}`.trim()}let p=l.inclusive?"<=":"<",f=o(l.origin??"value");return u?.unit?`${u.longLabel} \u05DE\u05D3\u05D9: ${d} ${f} ${p}${l.maximum.toString()} ${u.unit}`:`${u?.longLabel??"\u05D2\u05D3\u05D5\u05DC"} \u05DE\u05D3\u05D9: ${d} ${f} ${p}${l.maximum.toString()}`}case"too_small":{let u=s(l.origin),d=t(l.origin??"value");if(l.origin==="string")return`${u?.shortLabel??"\u05E7\u05E6\u05E8"} \u05DE\u05D3\u05D9: ${d} \u05E6\u05E8\u05D9\u05DB\u05D4 \u05DC\u05D4\u05DB\u05D9\u05DC ${l.minimum.toString()} ${u?.unit??""} ${l.inclusive?"\u05D0\u05D5 \u05D9\u05D5\u05EA\u05E8":"\u05DC\u05E4\u05D7\u05D5\u05EA"}`.trim();if(l.origin==="number"){let m=l.inclusive?`\u05D2\u05D3\u05D5\u05DC \u05D0\u05D5 \u05E9\u05D5\u05D5\u05D4 \u05DC-${l.minimum}`:`\u05D2\u05D3\u05D5\u05DC \u05DE-${l.minimum}`;return`\u05E7\u05D8\u05DF \u05DE\u05D3\u05D9: ${d} \u05E6\u05E8\u05D9\u05DA \u05DC\u05D4\u05D9\u05D5\u05EA ${m}`}if(l.origin==="array"||l.origin==="set"){let m=l.origin==="set"?"\u05E6\u05E8\u05D9\u05DB\u05D4":"\u05E6\u05E8\u05D9\u05DA";if(l.minimum===1&&l.inclusive){let v=(l.origin==="set","\u05DC\u05E4\u05D7\u05D5\u05EA \u05E4\u05E8\u05D9\u05D8 \u05D0\u05D7\u05D3");return`\u05E7\u05D8\u05DF \u05DE\u05D3\u05D9: ${d} ${m} \u05DC\u05D4\u05DB\u05D9\u05DC ${v}`}let h=l.inclusive?`${l.minimum} ${u?.unit??""} \u05D0\u05D5 \u05D9\u05D5\u05EA\u05E8`:`\u05D9\u05D5\u05EA\u05E8 \u05DE-${l.minimum} ${u?.unit??""}`;return`\u05E7\u05D8\u05DF \u05DE\u05D3\u05D9: ${d} ${m} \u05DC\u05D4\u05DB\u05D9\u05DC ${h}`.trim()}let p=l.inclusive?">=":">",f=o(l.origin??"value");return u?.unit?`${u.shortLabel} \u05DE\u05D3\u05D9: ${d} ${f} ${p}${l.minimum.toString()} ${u.unit}`:`${u?.shortLabel??"\u05E7\u05D8\u05DF"} \u05DE\u05D3\u05D9: ${d} ${f} ${p}${l.minimum.toString()}`}case"invalid_format":{let u=l;if(u.format==="starts_with")return`\u05D4\u05DE\u05D7\u05E8\u05D5\u05D6\u05EA \u05D7\u05D9\u05D9\u05D1\u05EA \u05DC\u05D4\u05EA\u05D7\u05D9\u05DC \u05D1 "${u.prefix}"`;if(u.format==="ends_with")return`\u05D4\u05DE\u05D7\u05E8\u05D5\u05D6\u05EA \u05D7\u05D9\u05D9\u05D1\u05EA \u05DC\u05D4\u05E1\u05EA\u05D9\u05D9\u05DD \u05D1 "${u.suffix}"`;if(u.format==="includes")return`\u05D4\u05DE\u05D7\u05E8\u05D5\u05D6\u05EA \u05D7\u05D9\u05D9\u05D1\u05EA \u05DC\u05DB\u05DC\u05D5\u05DC "${u.includes}"`;if(u.format==="regex")return`\u05D4\u05DE\u05D7\u05E8\u05D5\u05D6\u05EA \u05D7\u05D9\u05D9\u05D1\u05EA \u05DC\u05D4\u05EA\u05D0\u05D9\u05DD \u05DC\u05EA\u05D1\u05E0\u05D9\u05EA ${u.pattern}`;let d=a[u.format],p=d?.label??u.format,m=(d?.gender??"m")==="f"?"\u05EA\u05E7\u05D9\u05E0\u05D4":"\u05EA\u05E7\u05D9\u05DF";return`${p} \u05DC\u05D0 ${m}`}case"not_multiple_of":return`\u05DE\u05E1\u05E4\u05E8 \u05DC\u05D0 \u05EA\u05E7\u05D9\u05DF: \u05D7\u05D9\u05D9\u05D1 \u05DC\u05D4\u05D9\u05D5\u05EA \u05DE\u05DB\u05E4\u05DC\u05D4 \u05E9\u05DC ${l.divisor}`;case"unrecognized_keys":return`\u05DE\u05E4\u05EA\u05D7${l.keys.length>1?"\u05D5\u05EA":""} \u05DC\u05D0 \u05DE\u05D6\u05D5\u05D4${l.keys.length>1?"\u05D9\u05DD":"\u05D4"}: ${P(l.keys,", ")}`;case"invalid_key":return"\u05E9\u05D3\u05D4 \u05DC\u05D0 \u05EA\u05E7\u05D9\u05DF \u05D1\u05D0\u05D5\u05D1\u05D9\u05D9\u05E7\u05D8";case"invalid_union":return"\u05E7\u05DC\u05D8 \u05DC\u05D0 \u05EA\u05E7\u05D9\u05DF";case"invalid_element":return`\u05E2\u05E8\u05DA \u05DC\u05D0 \u05EA\u05E7\u05D9\u05DF \u05D1${t(l.origin??"array")}`;default:return"\u05E7\u05DC\u05D8 \u05DC\u05D0 \u05EA\u05E7\u05D9\u05DF"}}};function My(){return{localeError:zw()}}var Nw=()=>{let n={string:{unit:"karakter",verb:"legyen"},file:{unit:"byte",verb:"legyen"},array:{unit:"elem",verb:"legyen"},set:{unit:"elem",verb:"legyen"}};function e(t){return n[t]??null}let r={regex:"bemenet",email:"email c\xEDm",url:"URL",emoji:"emoji",uuid:"UUID",uuidv4:"UUIDv4",uuidv6:"UUIDv6",nanoid:"nanoid",guid:"GUID",cuid:"cuid",cuid2:"cuid2",ulid:"ULID",xid:"XID",ksuid:"KSUID",datetime:"ISO id\u0151b\xE9lyeg",date:"ISO d\xE1tum",time:"ISO id\u0151",duration:"ISO id\u0151intervallum",ipv4:"IPv4 c\xEDm",ipv6:"IPv6 c\xEDm",cidrv4:"IPv4 tartom\xE1ny",cidrv6:"IPv6 tartom\xE1ny",base64:"base64-k\xF3dolt string",base64url:"base64url-k\xF3dolt string",json_string:"JSON string",e164:"E.164 sz\xE1m",jwt:"JWT",template_literal:"bemenet"},i={nan:"NaN",number:"sz\xE1m",array:"t\xF6mb"};return t=>{switch(t.code){case"invalid_type":{let o=i[t.expected]??t.expected,s=O(t.input),a=i[s]??s;return/^[A-Z]/.test(t.expected)?`\xC9rv\xE9nytelen bemenet: a v\xE1rt \xE9rt\xE9k instanceof ${t.expected}, a kapott \xE9rt\xE9k ${a}`:`\xC9rv\xE9nytelen bemenet: a v\xE1rt \xE9rt\xE9k ${o}, a kapott \xE9rt\xE9k ${a}`}case"invalid_value":return t.values.length===1?`\xC9rv\xE9nytelen bemenet: a v\xE1rt \xE9rt\xE9k ${A(t.values[0])}`:`\xC9rv\xE9nytelen opci\xF3: valamelyik \xE9rt\xE9k v\xE1rt ${P(t.values,"|")}`;case"too_big":{let o=t.inclusive?"<=":"<",s=e(t.origin);return s?`T\xFAl nagy: ${t.origin??"\xE9rt\xE9k"} m\xE9rete t\xFAl nagy ${o}${t.maximum.toString()} ${s.unit??"elem"}`:`T\xFAl nagy: a bemeneti \xE9rt\xE9k ${t.origin??"\xE9rt\xE9k"} t\xFAl nagy: ${o}${t.maximum.toString()}`}case"too_small":{let o=t.inclusive?">=":">",s=e(t.origin);return s?`T\xFAl kicsi: a bemeneti \xE9rt\xE9k ${t.origin} m\xE9rete t\xFAl kicsi ${o}${t.minimum.toString()} ${s.unit}`:`T\xFAl kicsi: a bemeneti \xE9rt\xE9k ${t.origin} t\xFAl kicsi ${o}${t.minimum.toString()}`}case"invalid_format":{let o=t;return o.format==="starts_with"?`\xC9rv\xE9nytelen string: "${o.prefix}" \xE9rt\xE9kkel kell kezd\u0151dnie`:o.format==="ends_with"?`\xC9rv\xE9nytelen string: "${o.suffix}" \xE9rt\xE9kkel kell v\xE9gz\u0151dnie`:o.format==="includes"?`\xC9rv\xE9nytelen string: "${o.includes}" \xE9rt\xE9ket kell tartalmaznia`:o.format==="regex"?`\xC9rv\xE9nytelen string: ${o.pattern} mint\xE1nak kell megfelelnie`:`\xC9rv\xE9nytelen ${r[o.format]??t.format}`}case"not_multiple_of":return`\xC9rv\xE9nytelen sz\xE1m: ${t.divisor} t\xF6bbsz\xF6r\xF6s\xE9nek kell lennie`;case"unrecognized_keys":return`Ismeretlen kulcs${t.keys.length>1?"s":""}: ${P(t.keys,", ")}`;case"invalid_key":return`\xC9rv\xE9nytelen kulcs ${t.origin}`;case"invalid_union":return"\xC9rv\xE9nytelen bemenet";case"invalid_element":return`\xC9rv\xE9nytelen \xE9rt\xE9k: ${t.origin}`;default:return"\xC9rv\xE9nytelen bemenet"}}};function jy(){return{localeError:Nw()}}function Fy(n,e,r){return Math.abs(n)===1?e:r}function yr(n){if(!n)return"";let e=["\u0561","\u0565","\u0568","\u056B","\u0578","\u0578\u0582","\u0585"],r=n[n.length-1];return n+(e.includes(r)?"\u0576":"\u0568")}var Cw=()=>{let n={string:{unit:{one:"\u0576\u0577\u0561\u0576",many:"\u0576\u0577\u0561\u0576\u0576\u0565\u0580"},verb:"\u0578\u0582\u0576\u0565\u0576\u0561\u056C"},file:{unit:{one:"\u0562\u0561\u0575\u0569",many:"\u0562\u0561\u0575\u0569\u0565\u0580"},verb:"\u0578\u0582\u0576\u0565\u0576\u0561\u056C"},array:{unit:{one:"\u057F\u0561\u0580\u0580",many:"\u057F\u0561\u0580\u0580\u0565\u0580"},verb:"\u0578\u0582\u0576\u0565\u0576\u0561\u056C"},set:{unit:{one:"\u057F\u0561\u0580\u0580",many:"\u057F\u0561\u0580\u0580\u0565\u0580"},verb:"\u0578\u0582\u0576\u0565\u0576\u0561\u056C"}};function e(t){return n[t]??null}let r={regex:"\u0574\u0578\u0582\u057F\u0584",email:"\u0567\u056C. \u0570\u0561\u057D\u0581\u0565",url:"URL",emoji:"\u0567\u0574\u0578\u057B\u056B",uuid:"UUID",uuidv4:"UUIDv4",uuidv6:"UUIDv6",nanoid:"nanoid",guid:"GUID",cuid:"cuid",cuid2:"cuid2",ulid:"ULID",xid:"XID",ksuid:"KSUID",datetime:"ISO \u0561\u0574\u057D\u0561\u0569\u056B\u057E \u0587 \u056A\u0561\u0574",date:"ISO \u0561\u0574\u057D\u0561\u0569\u056B\u057E",time:"ISO \u056A\u0561\u0574",duration:"ISO \u057F\u0587\u0578\u0572\u0578\u0582\u0569\u0575\u0578\u0582\u0576",ipv4:"IPv4 \u0570\u0561\u057D\u0581\u0565",ipv6:"IPv6 \u0570\u0561\u057D\u0581\u0565",cidrv4:"IPv4 \u0574\u056B\u057B\u0561\u056F\u0561\u0575\u0584",cidrv6:"IPv6 \u0574\u056B\u057B\u0561\u056F\u0561\u0575\u0584",base64:"base64 \u0571\u0587\u0561\u0579\u0561\u0583\u0578\u057E \u057F\u0578\u0572",base64url:"base64url \u0571\u0587\u0561\u0579\u0561\u0583\u0578\u057E \u057F\u0578\u0572",json_string:"JSON \u057F\u0578\u0572",e164:"E.164 \u0570\u0561\u0574\u0561\u0580",jwt:"JWT",template_literal:"\u0574\u0578\u0582\u057F\u0584"},i={nan:"NaN",number:"\u0569\u056B\u057E",array:"\u0566\u0561\u0576\u0563\u057E\u0561\u056E"};return t=>{switch(t.code){case"invalid_type":{let o=i[t.expected]??t.expected,s=O(t.input),a=i[s]??s;return/^[A-Z]/.test(t.expected)?`\u054D\u056D\u0561\u056C \u0574\u0578\u0582\u057F\u0584\u0561\u0563\u0580\u0578\u0582\u0574\u2024 \u057D\u057A\u0561\u057D\u057E\u0578\u0582\u0574 \u0567\u0580 instanceof ${t.expected}, \u057D\u057F\u0561\u0581\u057E\u0565\u056C \u0567 ${a}`:`\u054D\u056D\u0561\u056C \u0574\u0578\u0582\u057F\u0584\u0561\u0563\u0580\u0578\u0582\u0574\u2024 \u057D\u057A\u0561\u057D\u057E\u0578\u0582\u0574 \u0567\u0580 ${o}, \u057D\u057F\u0561\u0581\u057E\u0565\u056C \u0567 ${a}`}case"invalid_value":return t.values.length===1?`\u054D\u056D\u0561\u056C \u0574\u0578\u0582\u057F\u0584\u0561\u0563\u0580\u0578\u0582\u0574\u2024 \u057D\u057A\u0561\u057D\u057E\u0578\u0582\u0574 \u0567\u0580 ${A(t.values[1])}`:`\u054D\u056D\u0561\u056C \u057F\u0561\u0580\u0562\u0565\u0580\u0561\u056F\u2024 \u057D\u057A\u0561\u057D\u057E\u0578\u0582\u0574 \u0567\u0580 \u0570\u0565\u057F\u0587\u0575\u0561\u056C\u0576\u0565\u0580\u056B\u0581 \u0574\u0565\u056F\u0568\u055D ${P(t.values,"|")}`;case"too_big":{let o=t.inclusive?"<=":"<",s=e(t.origin);if(s){let a=Number(t.maximum),c=Fy(a,s.unit.one,s.unit.many);return`\u0549\u0561\u0583\u0561\u0566\u0561\u0576\u0581 \u0574\u0565\u056E \u0561\u0580\u056A\u0565\u0584\u2024 \u057D\u057A\u0561\u057D\u057E\u0578\u0582\u0574 \u0567, \u0578\u0580 ${yr(t.origin??"\u0561\u0580\u056A\u0565\u0584")} \u056F\u0578\u0582\u0576\u0565\u0576\u0561 ${o}${t.maximum.toString()} ${c}`}return`\u0549\u0561\u0583\u0561\u0566\u0561\u0576\u0581 \u0574\u0565\u056E \u0561\u0580\u056A\u0565\u0584\u2024 \u057D\u057A\u0561\u057D\u057E\u0578\u0582\u0574 \u0567, \u0578\u0580 ${yr(t.origin??"\u0561\u0580\u056A\u0565\u0584")} \u056C\u056B\u0576\u056B ${o}${t.maximum.toString()}`}case"too_small":{let o=t.inclusive?">=":">",s=e(t.origin);if(s){let a=Number(t.minimum),c=Fy(a,s.unit.one,s.unit.many);return`\u0549\u0561\u0583\u0561\u0566\u0561\u0576\u0581 \u0583\u0578\u0584\u0580 \u0561\u0580\u056A\u0565\u0584\u2024 \u057D\u057A\u0561\u057D\u057E\u0578\u0582\u0574 \u0567, \u0578\u0580 ${yr(t.origin)} \u056F\u0578\u0582\u0576\u0565\u0576\u0561 ${o}${t.minimum.toString()} ${c}`}return`\u0549\u0561\u0583\u0561\u0566\u0561\u0576\u0581 \u0583\u0578\u0584\u0580 \u0561\u0580\u056A\u0565\u0584\u2024 \u057D\u057A\u0561\u057D\u057E\u0578\u0582\u0574 \u0567, \u0578\u0580 ${yr(t.origin)} \u056C\u056B\u0576\u056B ${o}${t.minimum.toString()}`}case"invalid_format":{let o=t;return o.format==="starts_with"?`\u054D\u056D\u0561\u056C \u057F\u0578\u0572\u2024 \u057A\u0565\u057F\u0584 \u0567 \u057D\u056F\u057D\u057E\u056B "${o.prefix}"-\u0578\u057E`:o.format==="ends_with"?`\u054D\u056D\u0561\u056C \u057F\u0578\u0572\u2024 \u057A\u0565\u057F\u0584 \u0567 \u0561\u057E\u0561\u0580\u057F\u057E\u056B "${o.suffix}"-\u0578\u057E`:o.format==="includes"?`\u054D\u056D\u0561\u056C \u057F\u0578\u0572\u2024 \u057A\u0565\u057F\u0584 \u0567 \u057A\u0561\u0580\u0578\u0582\u0576\u0561\u056F\u056B "${o.includes}"`:o.format==="regex"?`\u054D\u056D\u0561\u056C \u057F\u0578\u0572\u2024 \u057A\u0565\u057F\u0584 \u0567 \u0570\u0561\u0574\u0561\u057A\u0561\u057F\u0561\u057D\u056D\u0561\u0576\u056B ${o.pattern} \u0571\u0587\u0561\u0579\u0561\u0583\u056B\u0576`:`\u054D\u056D\u0561\u056C ${r[o.format]??t.format}`}case"not_multiple_of":return`\u054D\u056D\u0561\u056C \u0569\u056B\u057E\u2024 \u057A\u0565\u057F\u0584 \u0567 \u0562\u0561\u0566\u0574\u0561\u057A\u0561\u057F\u056B\u056F \u056C\u056B\u0576\u056B ${t.divisor}-\u056B`;case"unrecognized_keys":return`\u0549\u0573\u0561\u0576\u0561\u0579\u057E\u0561\u056E \u0562\u0561\u0576\u0561\u056C\u056B${t.keys.length>1?"\u0576\u0565\u0580":""}. ${P(t.keys,", ")}`;case"invalid_key":return`\u054D\u056D\u0561\u056C \u0562\u0561\u0576\u0561\u056C\u056B ${yr(t.origin)}-\u0578\u0582\u0574`;case"invalid_union":return"\u054D\u056D\u0561\u056C \u0574\u0578\u0582\u057F\u0584\u0561\u0563\u0580\u0578\u0582\u0574";case"invalid_element":return`\u054D\u056D\u0561\u056C \u0561\u0580\u056A\u0565\u0584 ${yr(t.origin)}-\u0578\u0582\u0574`;default:return"\u054D\u056D\u0561\u056C \u0574\u0578\u0582\u057F\u0584\u0561\u0563\u0580\u0578\u0582\u0574"}}};function Uy(){return{localeError:Cw()}}var Dw=()=>{let n={string:{unit:"karakter",verb:"memiliki"},file:{unit:"byte",verb:"memiliki"},array:{unit:"item",verb:"memiliki"},set:{unit:"item",verb:"memiliki"}};function e(t){return n[t]??null}let r={regex:"input",email:"alamat email",url:"URL",emoji:"emoji",uuid:"UUID",uuidv4:"UUIDv4",uuidv6:"UUIDv6",nanoid:"nanoid",guid:"GUID",cuid:"cuid",cuid2:"cuid2",ulid:"ULID",xid:"XID",ksuid:"KSUID",datetime:"tanggal dan waktu format ISO",date:"tanggal format ISO",time:"jam format ISO",duration:"durasi format ISO",ipv4:"alamat IPv4",ipv6:"alamat IPv6",cidrv4:"rentang alamat IPv4",cidrv6:"rentang alamat IPv6",base64:"string dengan enkode base64",base64url:"string dengan enkode base64url",json_string:"string JSON",e164:"angka E.164",jwt:"JWT",template_literal:"input"},i={nan:"NaN"};return t=>{switch(t.code){case"invalid_type":{let o=i[t.expected]??t.expected,s=O(t.input),a=i[s]??s;return/^[A-Z]/.test(t.expected)?`Input tidak valid: diharapkan instanceof ${t.expected}, diterima ${a}`:`Input tidak valid: diharapkan ${o}, diterima ${a}`}case"invalid_value":return t.values.length===1?`Input tidak valid: diharapkan ${A(t.values[0])}`:`Pilihan tidak valid: diharapkan salah satu dari ${P(t.values,"|")}`;case"too_big":{let o=t.inclusive?"<=":"<",s=e(t.origin);return s?`Terlalu besar: diharapkan ${t.origin??"value"} memiliki ${o}${t.maximum.toString()} ${s.unit??"elemen"}`:`Terlalu besar: diharapkan ${t.origin??"value"} menjadi ${o}${t.maximum.toString()}`}case"too_small":{let o=t.inclusive?">=":">",s=e(t.origin);return s?`Terlalu kecil: diharapkan ${t.origin} memiliki ${o}${t.minimum.toString()} ${s.unit}`:`Terlalu kecil: diharapkan ${t.origin} menjadi ${o}${t.minimum.toString()}`}case"invalid_format":{let o=t;return o.format==="starts_with"?`String tidak valid: harus dimulai dengan "${o.prefix}"`:o.format==="ends_with"?`String tidak valid: harus berakhir dengan "${o.suffix}"`:o.format==="includes"?`String tidak valid: harus menyertakan "${o.includes}"`:o.format==="regex"?`String tidak valid: harus sesuai pola ${o.pattern}`:`${r[o.format]??t.format} tidak valid`}case"not_multiple_of":return`Angka tidak valid: harus kelipatan dari ${t.divisor}`;case"unrecognized_keys":return`Kunci tidak dikenali ${t.keys.length>1?"s":""}: ${P(t.keys,", ")}`;case"invalid_key":return`Kunci tidak valid di ${t.origin}`;case"invalid_union":return"Input tidak valid";case"invalid_element":return`Nilai tidak valid di ${t.origin}`;default:return"Input tidak valid"}}};function Zy(){return{localeError:Dw()}}var Lw=()=>{let n={string:{unit:"stafi",verb:"a\xF0 hafa"},file:{unit:"b\xE6ti",verb:"a\xF0 hafa"},array:{unit:"hluti",verb:"a\xF0 hafa"},set:{unit:"hluti",verb:"a\xF0 hafa"}};function e(t){return n[t]??null}let r={regex:"gildi",email:"netfang",url:"vefsl\xF3\xF0",emoji:"emoji",uuid:"UUID",uuidv4:"UUIDv4",uuidv6:"UUIDv6",nanoid:"nanoid",guid:"GUID",cuid:"cuid",cuid2:"cuid2",ulid:"ULID",xid:"XID",ksuid:"KSUID",datetime:"ISO dagsetning og t\xEDmi",date:"ISO dagsetning",time:"ISO t\xEDmi",duration:"ISO t\xEDmalengd",ipv4:"IPv4 address",ipv6:"IPv6 address",cidrv4:"IPv4 range",cidrv6:"IPv6 range",base64:"base64-encoded strengur",base64url:"base64url-encoded strengur",json_string:"JSON strengur",e164:"E.164 t\xF6lugildi",jwt:"JWT",template_literal:"gildi"},i={nan:"NaN",number:"n\xFAmer",array:"fylki"};return t=>{switch(t.code){case"invalid_type":{let o=i[t.expected]??t.expected,s=O(t.input),a=i[s]??s;return/^[A-Z]/.test(t.expected)?`Rangt gildi: \xDE\xFA sl\xF3st inn ${a} \xFEar sem \xE1 a\xF0 vera instanceof ${t.expected}`:`Rangt gildi: \xDE\xFA sl\xF3st inn ${a} \xFEar sem \xE1 a\xF0 vera ${o}`}case"invalid_value":return t.values.length===1?`Rangt gildi: gert r\xE1\xF0 fyrir ${A(t.values[0])}`:`\xD3gilt val: m\xE1 vera eitt af eftirfarandi ${P(t.values,"|")}`;case"too_big":{let o=t.inclusive?"<=":"<",s=e(t.origin);return s?`Of st\xF3rt: gert er r\xE1\xF0 fyrir a\xF0 ${t.origin??"gildi"} hafi ${o}${t.maximum.toString()} ${s.unit??"hluti"}`:`Of st\xF3rt: gert er r\xE1\xF0 fyrir a\xF0 ${t.origin??"gildi"} s\xE9 ${o}${t.maximum.toString()}`}case"too_small":{let o=t.inclusive?">=":">",s=e(t.origin);return s?`Of l\xEDti\xF0: gert er r\xE1\xF0 fyrir a\xF0 ${t.origin} hafi ${o}${t.minimum.toString()} ${s.unit}`:`Of l\xEDti\xF0: gert er r\xE1\xF0 fyrir a\xF0 ${t.origin} s\xE9 ${o}${t.minimum.toString()}`}case"invalid_format":{let o=t;return o.format==="starts_with"?`\xD3gildur strengur: ver\xF0ur a\xF0 byrja \xE1 "${o.prefix}"`:o.format==="ends_with"?`\xD3gildur strengur: ver\xF0ur a\xF0 enda \xE1 "${o.suffix}"`:o.format==="includes"?`\xD3gildur strengur: ver\xF0ur a\xF0 innihalda "${o.includes}"`:o.format==="regex"?`\xD3gildur strengur: ver\xF0ur a\xF0 fylgja mynstri ${o.pattern}`:`Rangt ${r[o.format]??t.format}`}case"not_multiple_of":return`R\xF6ng tala: ver\xF0ur a\xF0 vera margfeldi af ${t.divisor}`;case"unrecognized_keys":return`\xD3\xFEekkt ${t.keys.length>1?"ir lyklar":"ur lykill"}: ${P(t.keys,", ")}`;case"invalid_key":return`Rangur lykill \xED ${t.origin}`;case"invalid_union":return"Rangt gildi";case"invalid_element":return`Rangt gildi \xED ${t.origin}`;default:return"Rangt gildi"}}};function Hy(){return{localeError:Lw()}}var Aw=()=>{let n={string:{unit:"caratteri",verb:"avere"},file:{unit:"byte",verb:"avere"},array:{unit:"elementi",verb:"avere"},set:{unit:"elementi",verb:"avere"}};function e(t){return n[t]??null}let r={regex:"input",email:"indirizzo email",url:"URL",emoji:"emoji",uuid:"UUID",uuidv4:"UUIDv4",uuidv6:"UUIDv6",nanoid:"nanoid",guid:"GUID",cuid:"cuid",cuid2:"cuid2",ulid:"ULID",xid:"XID",ksuid:"KSUID",datetime:"data e ora ISO",date:"data ISO",time:"ora ISO",duration:"durata ISO",ipv4:"indirizzo IPv4",ipv6:"indirizzo IPv6",cidrv4:"intervallo IPv4",cidrv6:"intervallo IPv6",base64:"stringa codificata in base64",base64url:"URL codificata in base64",json_string:"stringa JSON",e164:"numero E.164",jwt:"JWT",template_literal:"input"},i={nan:"NaN",number:"numero",array:"vettore"};return t=>{switch(t.code){case"invalid_type":{let o=i[t.expected]??t.expected,s=O(t.input),a=i[s]??s;return/^[A-Z]/.test(t.expected)?`Input non valido: atteso instanceof ${t.expected}, ricevuto ${a}`:`Input non valido: atteso ${o}, ricevuto ${a}`}case"invalid_value":return t.values.length===1?`Input non valido: atteso ${A(t.values[0])}`:`Opzione non valida: atteso uno tra ${P(t.values,"|")}`;case"too_big":{let o=t.inclusive?"<=":"<",s=e(t.origin);return s?`Troppo grande: ${t.origin??"valore"} deve avere ${o}${t.maximum.toString()} ${s.unit??"elementi"}`:`Troppo grande: ${t.origin??"valore"} deve essere ${o}${t.maximum.toString()}`}case"too_small":{let o=t.inclusive?">=":">",s=e(t.origin);return s?`Troppo piccolo: ${t.origin} deve avere ${o}${t.minimum.toString()} ${s.unit}`:`Troppo piccolo: ${t.origin} deve essere ${o}${t.minimum.toString()}`}case"invalid_format":{let o=t;return o.format==="starts_with"?`Stringa non valida: deve iniziare con "${o.prefix}"`:o.format==="ends_with"?`Stringa non valida: deve terminare con "${o.suffix}"`:o.format==="includes"?`Stringa non valida: deve includere "${o.includes}"`:o.format==="regex"?`Stringa non valida: deve corrispondere al pattern ${o.pattern}`:`Invalid ${r[o.format]??t.format}`}case"not_multiple_of":return`Numero non valido: deve essere un multiplo di ${t.divisor}`;case"unrecognized_keys":return`Chiav${t.keys.length>1?"i":"e"} non riconosciut${t.keys.length>1?"e":"a"}: ${P(t.keys,", ")}`;case"invalid_key":return`Chiave non valida in ${t.origin}`;case"invalid_union":return"Input non valido";case"invalid_element":return`Valore non valido in ${t.origin}`;default:return"Input non valido"}}};function Wy(){return{localeError:Aw()}}var Ow=()=>{let n={string:{unit:"\u6587\u5B57",verb:"\u3067\u3042\u308B"},file:{unit:"\u30D0\u30A4\u30C8",verb:"\u3067\u3042\u308B"},array:{unit:"\u8981\u7D20",verb:"\u3067\u3042\u308B"},set:{unit:"\u8981\u7D20",verb:"\u3067\u3042\u308B"}};function e(t){return n[t]??null}let r={regex:"\u5165\u529B\u5024",email:"\u30E1\u30FC\u30EB\u30A2\u30C9\u30EC\u30B9",url:"URL",emoji:"\u7D75\u6587\u5B57",uuid:"UUID",uuidv4:"UUIDv4",uuidv6:"UUIDv6",nanoid:"nanoid",guid:"GUID",cuid:"cuid",cuid2:"cuid2",ulid:"ULID",xid:"XID",ksuid:"KSUID",datetime:"ISO\u65E5\u6642",date:"ISO\u65E5\u4ED8",time:"ISO\u6642\u523B",duration:"ISO\u671F\u9593",ipv4:"IPv4\u30A2\u30C9\u30EC\u30B9",ipv6:"IPv6\u30A2\u30C9\u30EC\u30B9",cidrv4:"IPv4\u7BC4\u56F2",cidrv6:"IPv6\u7BC4\u56F2",base64:"base64\u30A8\u30F3\u30B3\u30FC\u30C9\u6587\u5B57\u5217",base64url:"base64url\u30A8\u30F3\u30B3\u30FC\u30C9\u6587\u5B57\u5217",json_string:"JSON\u6587\u5B57\u5217",e164:"E.164\u756A\u53F7",jwt:"JWT",template_literal:"\u5165\u529B\u5024"},i={nan:"NaN",number:"\u6570\u5024",array:"\u914D\u5217"};return t=>{switch(t.code){case"invalid_type":{let o=i[t.expected]??t.expected,s=O(t.input),a=i[s]??s;return/^[A-Z]/.test(t.expected)?`\u7121\u52B9\u306A\u5165\u529B: instanceof ${t.expected}\u304C\u671F\u5F85\u3055\u308C\u307E\u3057\u305F\u304C\u3001${a}\u304C\u5165\u529B\u3055\u308C\u307E\u3057\u305F`:`\u7121\u52B9\u306A\u5165\u529B: ${o}\u304C\u671F\u5F85\u3055\u308C\u307E\u3057\u305F\u304C\u3001${a}\u304C\u5165\u529B\u3055\u308C\u307E\u3057\u305F`}case"invalid_value":return t.values.length===1?`\u7121\u52B9\u306A\u5165\u529B: ${A(t.values[0])}\u304C\u671F\u5F85\u3055\u308C\u307E\u3057\u305F`:`\u7121\u52B9\u306A\u9078\u629E: ${P(t.values,"\u3001")}\u306E\u3044\u305A\u308C\u304B\u3067\u3042\u308B\u5FC5\u8981\u304C\u3042\u308A\u307E\u3059`;case"too_big":{let o=t.inclusive?"\u4EE5\u4E0B\u3067\u3042\u308B":"\u3088\u308A\u5C0F\u3055\u3044",s=e(t.origin);return s?`\u5927\u304D\u3059\u304E\u308B\u5024: ${t.origin??"\u5024"}\u306F${t.maximum.toString()}${s.unit??"\u8981\u7D20"}${o}\u5FC5\u8981\u304C\u3042\u308A\u307E\u3059`:`\u5927\u304D\u3059\u304E\u308B\u5024: ${t.origin??"\u5024"}\u306F${t.maximum.toString()}${o}\u5FC5\u8981\u304C\u3042\u308A\u307E\u3059`}case"too_small":{let o=t.inclusive?"\u4EE5\u4E0A\u3067\u3042\u308B":"\u3088\u308A\u5927\u304D\u3044",s=e(t.origin);return s?`\u5C0F\u3055\u3059\u304E\u308B\u5024: ${t.origin}\u306F${t.minimum.toString()}${s.unit}${o}\u5FC5\u8981\u304C\u3042\u308A\u307E\u3059`:`\u5C0F\u3055\u3059\u304E\u308B\u5024: ${t.origin}\u306F${t.minimum.toString()}${o}\u5FC5\u8981\u304C\u3042\u308A\u307E\u3059`}case"invalid_format":{let o=t;return o.format==="starts_with"?`\u7121\u52B9\u306A\u6587\u5B57\u5217: "${o.prefix}"\u3067\u59CB\u307E\u308B\u5FC5\u8981\u304C\u3042\u308A\u307E\u3059`:o.format==="ends_with"?`\u7121\u52B9\u306A\u6587\u5B57\u5217: "${o.suffix}"\u3067\u7D42\u308F\u308B\u5FC5\u8981\u304C\u3042\u308A\u307E\u3059`:o.format==="includes"?`\u7121\u52B9\u306A\u6587\u5B57\u5217: "${o.includes}"\u3092\u542B\u3080\u5FC5\u8981\u304C\u3042\u308A\u307E\u3059`:o.format==="regex"?`\u7121\u52B9\u306A\u6587\u5B57\u5217: \u30D1\u30BF\u30FC\u30F3${o.pattern}\u306B\u4E00\u81F4\u3059\u308B\u5FC5\u8981\u304C\u3042\u308A\u307E\u3059`:`\u7121\u52B9\u306A${r[o.format]??t.format}`}case"not_multiple_of":return`\u7121\u52B9\u306A\u6570\u5024: ${t.divisor}\u306E\u500D\u6570\u3067\u3042\u308B\u5FC5\u8981\u304C\u3042\u308A\u307E\u3059`;case"unrecognized_keys":return`\u8A8D\u8B58\u3055\u308C\u3066\u3044\u306A\u3044\u30AD\u30FC${t.keys.length>1?"\u7FA4":""}: ${P(t.keys,"\u3001")}`;case"invalid_key":return`${t.origin}\u5185\u306E\u7121\u52B9\u306A\u30AD\u30FC`;case"invalid_union":return"\u7121\u52B9\u306A\u5165\u529B";case"invalid_element":return`${t.origin}\u5185\u306E\u7121\u52B9\u306A\u5024`;default:return"\u7121\u52B9\u306A\u5165\u529B"}}};function By(){return{localeError:Ow()}}var Mw=()=>{let n={string:{unit:"\u10E1\u10D8\u10DB\u10D1\u10DD\u10DA\u10DD",verb:"\u10E3\u10DC\u10D3\u10D0 \u10E8\u10D4\u10D8\u10EA\u10D0\u10D5\u10D3\u10D4\u10E1"},file:{unit:"\u10D1\u10D0\u10D8\u10E2\u10D8",verb:"\u10E3\u10DC\u10D3\u10D0 \u10E8\u10D4\u10D8\u10EA\u10D0\u10D5\u10D3\u10D4\u10E1"},array:{unit:"\u10D4\u10DA\u10D4\u10DB\u10D4\u10DC\u10E2\u10D8",verb:"\u10E3\u10DC\u10D3\u10D0 \u10E8\u10D4\u10D8\u10EA\u10D0\u10D5\u10D3\u10D4\u10E1"},set:{unit:"\u10D4\u10DA\u10D4\u10DB\u10D4\u10DC\u10E2\u10D8",verb:"\u10E3\u10DC\u10D3\u10D0 \u10E8\u10D4\u10D8\u10EA\u10D0\u10D5\u10D3\u10D4\u10E1"}};function e(t){return n[t]??null}let r={regex:"\u10E8\u10D4\u10E7\u10D5\u10D0\u10DC\u10D0",email:"\u10D4\u10DA-\u10E4\u10DD\u10E1\u10E2\u10D8\u10E1 \u10DB\u10D8\u10E1\u10D0\u10DB\u10D0\u10E0\u10D7\u10D8",url:"URL",emoji:"\u10D4\u10DB\u10DD\u10EF\u10D8",uuid:"UUID",uuidv4:"UUIDv4",uuidv6:"UUIDv6",nanoid:"nanoid",guid:"GUID",cuid:"cuid",cuid2:"cuid2",ulid:"ULID",xid:"XID",ksuid:"KSUID",datetime:"\u10D7\u10D0\u10E0\u10D8\u10E6\u10D8-\u10D3\u10E0\u10DD",date:"\u10D7\u10D0\u10E0\u10D8\u10E6\u10D8",time:"\u10D3\u10E0\u10DD",duration:"\u10EE\u10D0\u10DC\u10D2\u10E0\u10EB\u10DA\u10D8\u10D5\u10DD\u10D1\u10D0",ipv4:"IPv4 \u10DB\u10D8\u10E1\u10D0\u10DB\u10D0\u10E0\u10D7\u10D8",ipv6:"IPv6 \u10DB\u10D8\u10E1\u10D0\u10DB\u10D0\u10E0\u10D7\u10D8",cidrv4:"IPv4 \u10D3\u10D8\u10D0\u10DE\u10D0\u10D6\u10DD\u10DC\u10D8",cidrv6:"IPv6 \u10D3\u10D8\u10D0\u10DE\u10D0\u10D6\u10DD\u10DC\u10D8",base64:"base64-\u10D9\u10DD\u10D3\u10D8\u10E0\u10D4\u10D1\u10E3\u10DA\u10D8 \u10E1\u10E2\u10E0\u10D8\u10DC\u10D2\u10D8",base64url:"base64url-\u10D9\u10DD\u10D3\u10D8\u10E0\u10D4\u10D1\u10E3\u10DA\u10D8 \u10E1\u10E2\u10E0\u10D8\u10DC\u10D2\u10D8",json_string:"JSON \u10E1\u10E2\u10E0\u10D8\u10DC\u10D2\u10D8",e164:"E.164 \u10DC\u10DD\u10DB\u10D4\u10E0\u10D8",jwt:"JWT",template_literal:"\u10E8\u10D4\u10E7\u10D5\u10D0\u10DC\u10D0"},i={nan:"NaN",number:"\u10E0\u10D8\u10EA\u10EE\u10D5\u10D8",string:"\u10E1\u10E2\u10E0\u10D8\u10DC\u10D2\u10D8",boolean:"\u10D1\u10E3\u10DA\u10D4\u10D0\u10DC\u10D8",function:"\u10E4\u10E3\u10DC\u10E5\u10EA\u10D8\u10D0",array:"\u10DB\u10D0\u10E1\u10D8\u10D5\u10D8"};return t=>{switch(t.code){case"invalid_type":{let o=i[t.expected]??t.expected,s=O(t.input),a=i[s]??s;return/^[A-Z]/.test(t.expected)?`\u10D0\u10E0\u10D0\u10E1\u10EC\u10DD\u10E0\u10D8 \u10E8\u10D4\u10E7\u10D5\u10D0\u10DC\u10D0: \u10DB\u10DD\u10E1\u10D0\u10DA\u10DD\u10D3\u10DC\u10D4\u10DA\u10D8 instanceof ${t.expected}, \u10DB\u10D8\u10E6\u10D4\u10D1\u10E3\u10DA\u10D8 ${a}`:`\u10D0\u10E0\u10D0\u10E1\u10EC\u10DD\u10E0\u10D8 \u10E8\u10D4\u10E7\u10D5\u10D0\u10DC\u10D0: \u10DB\u10DD\u10E1\u10D0\u10DA\u10DD\u10D3\u10DC\u10D4\u10DA\u10D8 ${o}, \u10DB\u10D8\u10E6\u10D4\u10D1\u10E3\u10DA\u10D8 ${a}`}case"invalid_value":return t.values.length===1?`\u10D0\u10E0\u10D0\u10E1\u10EC\u10DD\u10E0\u10D8 \u10E8\u10D4\u10E7\u10D5\u10D0\u10DC\u10D0: \u10DB\u10DD\u10E1\u10D0\u10DA\u10DD\u10D3\u10DC\u10D4\u10DA\u10D8 ${A(t.values[0])}`:`\u10D0\u10E0\u10D0\u10E1\u10EC\u10DD\u10E0\u10D8 \u10D5\u10D0\u10E0\u10D8\u10D0\u10DC\u10E2\u10D8: \u10DB\u10DD\u10E1\u10D0\u10DA\u10DD\u10D3\u10DC\u10D4\u10DA\u10D8\u10D0 \u10D4\u10E0\u10D7-\u10D4\u10E0\u10D7\u10D8 ${P(t.values,"|")}-\u10D3\u10D0\u10DC`;case"too_big":{let o=t.inclusive?"<=":"<",s=e(t.origin);return s?`\u10D6\u10D4\u10D3\u10DB\u10D4\u10E2\u10D0\u10D3 \u10D3\u10D8\u10D3\u10D8: \u10DB\u10DD\u10E1\u10D0\u10DA\u10DD\u10D3\u10DC\u10D4\u10DA\u10D8 ${t.origin??"\u10DB\u10DC\u10D8\u10E8\u10D5\u10DC\u10D4\u10DA\u10DD\u10D1\u10D0"} ${s.verb} ${o}${t.maximum.toString()} ${s.unit}`:`\u10D6\u10D4\u10D3\u10DB\u10D4\u10E2\u10D0\u10D3 \u10D3\u10D8\u10D3\u10D8: \u10DB\u10DD\u10E1\u10D0\u10DA\u10DD\u10D3\u10DC\u10D4\u10DA\u10D8 ${t.origin??"\u10DB\u10DC\u10D8\u10E8\u10D5\u10DC\u10D4\u10DA\u10DD\u10D1\u10D0"} \u10D8\u10E7\u10DD\u10E1 ${o}${t.maximum.toString()}`}case"too_small":{let o=t.inclusive?">=":">",s=e(t.origin);return s?`\u10D6\u10D4\u10D3\u10DB\u10D4\u10E2\u10D0\u10D3 \u10DE\u10D0\u10E2\u10D0\u10E0\u10D0: \u10DB\u10DD\u10E1\u10D0\u10DA\u10DD\u10D3\u10DC\u10D4\u10DA\u10D8 ${t.origin} ${s.verb} ${o}${t.minimum.toString()} ${s.unit}`:`\u10D6\u10D4\u10D3\u10DB\u10D4\u10E2\u10D0\u10D3 \u10DE\u10D0\u10E2\u10D0\u10E0\u10D0: \u10DB\u10DD\u10E1\u10D0\u10DA\u10DD\u10D3\u10DC\u10D4\u10DA\u10D8 ${t.origin} \u10D8\u10E7\u10DD\u10E1 ${o}${t.minimum.toString()}`}case"invalid_format":{let o=t;return o.format==="starts_with"?`\u10D0\u10E0\u10D0\u10E1\u10EC\u10DD\u10E0\u10D8 \u10E1\u10E2\u10E0\u10D8\u10DC\u10D2\u10D8: \u10E3\u10DC\u10D3\u10D0 \u10D8\u10EC\u10E7\u10D4\u10D1\u10DD\u10D3\u10D4\u10E1 "${o.prefix}"-\u10D8\u10D7`:o.format==="ends_with"?`\u10D0\u10E0\u10D0\u10E1\u10EC\u10DD\u10E0\u10D8 \u10E1\u10E2\u10E0\u10D8\u10DC\u10D2\u10D8: \u10E3\u10DC\u10D3\u10D0 \u10DB\u10D7\u10D0\u10D5\u10E0\u10D3\u10D4\u10D1\u10DD\u10D3\u10D4\u10E1 "${o.suffix}"-\u10D8\u10D7`:o.format==="includes"?`\u10D0\u10E0\u10D0\u10E1\u10EC\u10DD\u10E0\u10D8 \u10E1\u10E2\u10E0\u10D8\u10DC\u10D2\u10D8: \u10E3\u10DC\u10D3\u10D0 \u10E8\u10D4\u10D8\u10EA\u10D0\u10D5\u10D3\u10D4\u10E1 "${o.includes}"-\u10E1`:o.format==="regex"?`\u10D0\u10E0\u10D0\u10E1\u10EC\u10DD\u10E0\u10D8 \u10E1\u10E2\u10E0\u10D8\u10DC\u10D2\u10D8: \u10E3\u10DC\u10D3\u10D0 \u10E8\u10D4\u10D4\u10E1\u10D0\u10D1\u10D0\u10DB\u10D4\u10D1\u10DD\u10D3\u10D4\u10E1 \u10E8\u10D0\u10D1\u10DA\u10DD\u10DC\u10E1 ${o.pattern}`:`\u10D0\u10E0\u10D0\u10E1\u10EC\u10DD\u10E0\u10D8 ${r[o.format]??t.format}`}case"not_multiple_of":return`\u10D0\u10E0\u10D0\u10E1\u10EC\u10DD\u10E0\u10D8 \u10E0\u10D8\u10EA\u10EE\u10D5\u10D8: \u10E3\u10DC\u10D3\u10D0 \u10D8\u10E7\u10DD\u10E1 ${t.divisor}-\u10D8\u10E1 \u10EF\u10D4\u10E0\u10D0\u10D3\u10D8`;case"unrecognized_keys":return`\u10E3\u10EA\u10DC\u10DD\u10D1\u10D8 \u10D2\u10D0\u10E1\u10D0\u10E6\u10D4\u10D1${t.keys.length>1?"\u10D4\u10D1\u10D8":"\u10D8"}: ${P(t.keys,", ")}`;case"invalid_key":return`\u10D0\u10E0\u10D0\u10E1\u10EC\u10DD\u10E0\u10D8 \u10D2\u10D0\u10E1\u10D0\u10E6\u10D4\u10D1\u10D8 ${t.origin}-\u10E8\u10D8`;case"invalid_union":return"\u10D0\u10E0\u10D0\u10E1\u10EC\u10DD\u10E0\u10D8 \u10E8\u10D4\u10E7\u10D5\u10D0\u10DC\u10D0";case"invalid_element":return`\u10D0\u10E0\u10D0\u10E1\u10EC\u10DD\u10E0\u10D8 \u10DB\u10DC\u10D8\u10E8\u10D5\u10DC\u10D4\u10DA\u10DD\u10D1\u10D0 ${t.origin}-\u10E8\u10D8`;default:return"\u10D0\u10E0\u10D0\u10E1\u10EC\u10DD\u10E0\u10D8 \u10E8\u10D4\u10E7\u10D5\u10D0\u10DC\u10D0"}}};function Gy(){return{localeError:Mw()}}var jw=()=>{let n={string:{unit:"\u178F\u17BD\u17A2\u1780\u17D2\u179F\u179A",verb:"\u1782\u17BD\u179A\u1798\u17B6\u1793"},file:{unit:"\u1794\u17C3",verb:"\u1782\u17BD\u179A\u1798\u17B6\u1793"},array:{unit:"\u1792\u17B6\u178F\u17BB",verb:"\u1782\u17BD\u179A\u1798\u17B6\u1793"},set:{unit:"\u1792\u17B6\u178F\u17BB",verb:"\u1782\u17BD\u179A\u1798\u17B6\u1793"}};function e(t){return n[t]??null}let r={regex:"\u1791\u17B7\u1793\u17D2\u1793\u1793\u17D0\u1799\u1794\u1789\u17D2\u1785\u17BC\u179B",email:"\u17A2\u17B6\u179F\u1799\u178A\u17D2\u178B\u17B6\u1793\u17A2\u17CA\u17B8\u1798\u17C2\u179B",url:"URL",emoji:"\u179F\u1789\u17D2\u1789\u17B6\u17A2\u17B6\u179A\u1798\u17D2\u1798\u178E\u17CD",uuid:"UUID",uuidv4:"UUIDv4",uuidv6:"UUIDv6",nanoid:"nanoid",guid:"GUID",cuid:"cuid",cuid2:"cuid2",ulid:"ULID",xid:"XID",ksuid:"KSUID",datetime:"\u1780\u17B6\u179B\u1794\u179A\u17B7\u1785\u17D2\u1786\u17C1\u1791 \u1793\u17B7\u1784\u1798\u17C9\u17C4\u1784 ISO",date:"\u1780\u17B6\u179B\u1794\u179A\u17B7\u1785\u17D2\u1786\u17C1\u1791 ISO",time:"\u1798\u17C9\u17C4\u1784 ISO",duration:"\u179A\u1799\u17C8\u1796\u17C1\u179B ISO",ipv4:"\u17A2\u17B6\u179F\u1799\u178A\u17D2\u178B\u17B6\u1793 IPv4",ipv6:"\u17A2\u17B6\u179F\u1799\u178A\u17D2\u178B\u17B6\u1793 IPv6",cidrv4:"\u178A\u17C2\u1793\u17A2\u17B6\u179F\u1799\u178A\u17D2\u178B\u17B6\u1793 IPv4",cidrv6:"\u178A\u17C2\u1793\u17A2\u17B6\u179F\u1799\u178A\u17D2\u178B\u17B6\u1793 IPv6",base64:"\u1781\u17D2\u179F\u17C2\u17A2\u1780\u17D2\u179F\u179A\u17A2\u17CA\u17B7\u1780\u17BC\u178A base64",base64url:"\u1781\u17D2\u179F\u17C2\u17A2\u1780\u17D2\u179F\u179A\u17A2\u17CA\u17B7\u1780\u17BC\u178A base64url",json_string:"\u1781\u17D2\u179F\u17C2\u17A2\u1780\u17D2\u179F\u179A JSON",e164:"\u179B\u17C1\u1781 E.164",jwt:"JWT",template_literal:"\u1791\u17B7\u1793\u17D2\u1793\u1793\u17D0\u1799\u1794\u1789\u17D2\u1785\u17BC\u179B"},i={nan:"NaN",number:"\u179B\u17C1\u1781",array:"\u17A2\u17B6\u179A\u17C1 (Array)",null:"\u1782\u17D2\u1798\u17B6\u1793\u178F\u1798\u17D2\u179B\u17C3 (null)"};return t=>{switch(t.code){case"invalid_type":{let o=i[t.expected]??t.expected,s=O(t.input),a=i[s]??s;return/^[A-Z]/.test(t.expected)?`\u1791\u17B7\u1793\u17D2\u1793\u1793\u17D0\u1799\u1794\u1789\u17D2\u1785\u17BC\u179B\u1798\u17B7\u1793\u178F\u17D2\u179A\u17B9\u1798\u178F\u17D2\u179A\u17BC\u179C\u17D6 \u178F\u17D2\u179A\u17BC\u179C\u1780\u17B6\u179A instanceof ${t.expected} \u1794\u17C9\u17BB\u1793\u17D2\u178F\u17C2\u1791\u1791\u17BD\u179B\u1794\u17B6\u1793 ${a}`:`\u1791\u17B7\u1793\u17D2\u1793\u1793\u17D0\u1799\u1794\u1789\u17D2\u1785\u17BC\u179B\u1798\u17B7\u1793\u178F\u17D2\u179A\u17B9\u1798\u178F\u17D2\u179A\u17BC\u179C\u17D6 \u178F\u17D2\u179A\u17BC\u179C\u1780\u17B6\u179A ${o} \u1794\u17C9\u17BB\u1793\u17D2\u178F\u17C2\u1791\u1791\u17BD\u179B\u1794\u17B6\u1793 ${a}`}case"invalid_value":return t.values.length===1?`\u1791\u17B7\u1793\u17D2\u1793\u1793\u17D0\u1799\u1794\u1789\u17D2\u1785\u17BC\u179B\u1798\u17B7\u1793\u178F\u17D2\u179A\u17B9\u1798\u178F\u17D2\u179A\u17BC\u179C\u17D6 \u178F\u17D2\u179A\u17BC\u179C\u1780\u17B6\u179A ${A(t.values[0])}`:`\u1787\u1798\u17D2\u179A\u17BE\u179F\u1798\u17B7\u1793\u178F\u17D2\u179A\u17B9\u1798\u178F\u17D2\u179A\u17BC\u179C\u17D6 \u178F\u17D2\u179A\u17BC\u179C\u1787\u17B6\u1798\u17BD\u1799\u1780\u17D2\u1793\u17BB\u1784\u1785\u17C6\u178E\u17C4\u1798 ${P(t.values,"|")}`;case"too_big":{let o=t.inclusive?"<=":"<",s=e(t.origin);return s?`\u1792\u17C6\u1796\u17C1\u1780\u17D6 \u178F\u17D2\u179A\u17BC\u179C\u1780\u17B6\u179A ${t.origin??"\u178F\u1798\u17D2\u179B\u17C3"} ${o} ${t.maximum.toString()} ${s.unit??"\u1792\u17B6\u178F\u17BB"}`:`\u1792\u17C6\u1796\u17C1\u1780\u17D6 \u178F\u17D2\u179A\u17BC\u179C\u1780\u17B6\u179A ${t.origin??"\u178F\u1798\u17D2\u179B\u17C3"} ${o} ${t.maximum.toString()}`}case"too_small":{let o=t.inclusive?">=":">",s=e(t.origin);return s?`\u178F\u17BC\u1785\u1796\u17C1\u1780\u17D6 \u178F\u17D2\u179A\u17BC\u179C\u1780\u17B6\u179A ${t.origin} ${o} ${t.minimum.toString()} ${s.unit}`:`\u178F\u17BC\u1785\u1796\u17C1\u1780\u17D6 \u178F\u17D2\u179A\u17BC\u179C\u1780\u17B6\u179A ${t.origin} ${o} ${t.minimum.toString()}`}case"invalid_format":{let o=t;return o.format==="starts_with"?`\u1781\u17D2\u179F\u17C2\u17A2\u1780\u17D2\u179F\u179A\u1798\u17B7\u1793\u178F\u17D2\u179A\u17B9\u1798\u178F\u17D2\u179A\u17BC\u179C\u17D6 \u178F\u17D2\u179A\u17BC\u179C\u1785\u17B6\u1794\u17CB\u1795\u17D2\u178F\u17BE\u1798\u178A\u17C4\u1799 "${o.prefix}"`:o.format==="ends_with"?`\u1781\u17D2\u179F\u17C2\u17A2\u1780\u17D2\u179F\u179A\u1798\u17B7\u1793\u178F\u17D2\u179A\u17B9\u1798\u178F\u17D2\u179A\u17BC\u179C\u17D6 \u178F\u17D2\u179A\u17BC\u179C\u1794\u1789\u17D2\u1785\u1794\u17CB\u178A\u17C4\u1799 "${o.suffix}"`:o.format==="includes"?`\u1781\u17D2\u179F\u17C2\u17A2\u1780\u17D2\u179F\u179A\u1798\u17B7\u1793\u178F\u17D2\u179A\u17B9\u1798\u178F\u17D2\u179A\u17BC\u179C\u17D6 \u178F\u17D2\u179A\u17BC\u179C\u1798\u17B6\u1793 "${o.includes}"`:o.format==="regex"?`\u1781\u17D2\u179F\u17C2\u17A2\u1780\u17D2\u179F\u179A\u1798\u17B7\u1793\u178F\u17D2\u179A\u17B9\u1798\u178F\u17D2\u179A\u17BC\u179C\u17D6 \u178F\u17D2\u179A\u17BC\u179C\u178F\u17C2\u1795\u17D2\u1782\u17BC\u1795\u17D2\u1782\u1784\u1793\u17B9\u1784\u1791\u1798\u17D2\u179A\u1784\u17CB\u178A\u17C2\u179B\u1794\u17B6\u1793\u1780\u17C6\u178E\u178F\u17CB ${o.pattern}`:`\u1798\u17B7\u1793\u178F\u17D2\u179A\u17B9\u1798\u178F\u17D2\u179A\u17BC\u179C\u17D6 ${r[o.format]??t.format}`}case"not_multiple_of":return`\u179B\u17C1\u1781\u1798\u17B7\u1793\u178F\u17D2\u179A\u17B9\u1798\u178F\u17D2\u179A\u17BC\u179C\u17D6 \u178F\u17D2\u179A\u17BC\u179C\u178F\u17C2\u1787\u17B6\u1796\u17A0\u17BB\u1782\u17BB\u178E\u1793\u17C3 ${t.divisor}`;case"unrecognized_keys":return`\u179A\u1780\u1783\u17BE\u1789\u179F\u17C4\u1798\u17B7\u1793\u179F\u17D2\u1782\u17B6\u179B\u17CB\u17D6 ${P(t.keys,", ")}`;case"invalid_key":return`\u179F\u17C4\u1798\u17B7\u1793\u178F\u17D2\u179A\u17B9\u1798\u178F\u17D2\u179A\u17BC\u179C\u1793\u17C5\u1780\u17D2\u1793\u17BB\u1784 ${t.origin}`;case"invalid_union":return"\u1791\u17B7\u1793\u17D2\u1793\u1793\u17D0\u1799\u1798\u17B7\u1793\u178F\u17D2\u179A\u17B9\u1798\u178F\u17D2\u179A\u17BC\u179C";case"invalid_element":return`\u1791\u17B7\u1793\u17D2\u1793\u1793\u17D0\u1799\u1798\u17B7\u1793\u178F\u17D2\u179A\u17B9\u1798\u178F\u17D2\u179A\u17BC\u179C\u1793\u17C5\u1780\u17D2\u1793\u17BB\u1784 ${t.origin}`;default:return"\u1791\u17B7\u1793\u17D2\u1793\u1793\u17D0\u1799\u1798\u17B7\u1793\u178F\u17D2\u179A\u17B9\u1798\u178F\u17D2\u179A\u17BC\u179C"}}};function Is(){return{localeError:jw()}}function Jy(){return Is()}var Fw=()=>{let n={string:{unit:"\uBB38\uC790",verb:"to have"},file:{unit:"\uBC14\uC774\uD2B8",verb:"to have"},array:{unit:"\uAC1C",verb:"to have"},set:{unit:"\uAC1C",verb:"to have"}};function e(t){return n[t]??null}let r={regex:"\uC785\uB825",email:"\uC774\uBA54\uC77C \uC8FC\uC18C",url:"URL",emoji:"\uC774\uBAA8\uC9C0",uuid:"UUID",uuidv4:"UUIDv4",uuidv6:"UUIDv6",nanoid:"nanoid",guid:"GUID",cuid:"cuid",cuid2:"cuid2",ulid:"ULID",xid:"XID",ksuid:"KSUID",datetime:"ISO \uB0A0\uC9DC\uC2DC\uAC04",date:"ISO \uB0A0\uC9DC",time:"ISO \uC2DC\uAC04",duration:"ISO \uAE30\uAC04",ipv4:"IPv4 \uC8FC\uC18C",ipv6:"IPv6 \uC8FC\uC18C",cidrv4:"IPv4 \uBC94\uC704",cidrv6:"IPv6 \uBC94\uC704",base64:"base64 \uC778\uCF54\uB529 \uBB38\uC790\uC5F4",base64url:"base64url \uC778\uCF54\uB529 \uBB38\uC790\uC5F4",json_string:"JSON \uBB38\uC790\uC5F4",e164:"E.164 \uBC88\uD638",jwt:"JWT",template_literal:"\uC785\uB825"},i={nan:"NaN"};return t=>{switch(t.code){case"invalid_type":{let o=i[t.expected]??t.expected,s=O(t.input),a=i[s]??s;return/^[A-Z]/.test(t.expected)?`\uC798\uBABB\uB41C \uC785\uB825: \uC608\uC0C1 \uD0C0\uC785\uC740 instanceof ${t.expected}, \uBC1B\uC740 \uD0C0\uC785\uC740 ${a}\uC785\uB2C8\uB2E4`:`\uC798\uBABB\uB41C \uC785\uB825: \uC608\uC0C1 \uD0C0\uC785\uC740 ${o}, \uBC1B\uC740 \uD0C0\uC785\uC740 ${a}\uC785\uB2C8\uB2E4`}case"invalid_value":return t.values.length===1?`\uC798\uBABB\uB41C \uC785\uB825: \uAC12\uC740 ${A(t.values[0])} \uC774\uC5B4\uC57C \uD569\uB2C8\uB2E4`:`\uC798\uBABB\uB41C \uC635\uC158: ${P(t.values,"\uB610\uB294 ")} \uC911 \uD558\uB098\uC5EC\uC57C \uD569\uB2C8\uB2E4`;case"too_big":{let o=t.inclusive?"\uC774\uD558":"\uBBF8\uB9CC",s=o==="\uBBF8\uB9CC"?"\uC774\uC5B4\uC57C \uD569\uB2C8\uB2E4":"\uC5EC\uC57C \uD569\uB2C8\uB2E4",a=e(t.origin),c=a?.unit??"\uC694\uC18C";return a?`${t.origin??"\uAC12"}\uC774 \uB108\uBB34 \uD07D\uB2C8\uB2E4: ${t.maximum.toString()}${c} ${o}${s}`:`${t.origin??"\uAC12"}\uC774 \uB108\uBB34 \uD07D\uB2C8\uB2E4: ${t.maximum.toString()} ${o}${s}`}case"too_small":{let o=t.inclusive?"\uC774\uC0C1":"\uCD08\uACFC",s=o==="\uC774\uC0C1"?"\uC774\uC5B4\uC57C \uD569\uB2C8\uB2E4":"\uC5EC\uC57C \uD569\uB2C8\uB2E4",a=e(t.origin),c=a?.unit??"\uC694\uC18C";return a?`${t.origin??"\uAC12"}\uC774 \uB108\uBB34 \uC791\uC2B5\uB2C8\uB2E4: ${t.minimum.toString()}${c} ${o}${s}`:`${t.origin??"\uAC12"}\uC774 \uB108\uBB34 \uC791\uC2B5\uB2C8\uB2E4: ${t.minimum.toString()} ${o}${s}`}case"invalid_format":{let o=t;return o.format==="starts_with"?`\uC798\uBABB\uB41C \uBB38\uC790\uC5F4: "${o.prefix}"(\uC73C)\uB85C \uC2DC\uC791\uD574\uC57C \uD569\uB2C8\uB2E4`:o.format==="ends_with"?`\uC798\uBABB\uB41C \uBB38\uC790\uC5F4: "${o.suffix}"(\uC73C)\uB85C \uB05D\uB098\uC57C \uD569\uB2C8\uB2E4`:o.format==="includes"?`\uC798\uBABB\uB41C \uBB38\uC790\uC5F4: "${o.includes}"\uC744(\uB97C) \uD3EC\uD568\uD574\uC57C \uD569\uB2C8\uB2E4`:o.format==="regex"?`\uC798\uBABB\uB41C \uBB38\uC790\uC5F4: \uC815\uADDC\uC2DD ${o.pattern} \uD328\uD134\uACFC \uC77C\uCE58\uD574\uC57C \uD569\uB2C8\uB2E4`:`\uC798\uBABB\uB41C ${r[o.format]??t.format}`}case"not_multiple_of":return`\uC798\uBABB\uB41C \uC22B\uC790: ${t.divisor}\uC758 \uBC30\uC218\uC5EC\uC57C \uD569\uB2C8\uB2E4`;case"unrecognized_keys":return`\uC778\uC2DD\uD560 \uC218 \uC5C6\uB294 \uD0A4: ${P(t.keys,", ")}`;case"invalid_key":return`\uC798\uBABB\uB41C \uD0A4: ${t.origin}`;case"invalid_union":return"\uC798\uBABB\uB41C \uC785\uB825";case"invalid_element":return`\uC798\uBABB\uB41C \uAC12: ${t.origin}`;default:return"\uC798\uBABB\uB41C \uC785\uB825"}}};function qy(){return{localeError:Fw()}}var Ti=n=>n.charAt(0).toUpperCase()+n.slice(1);function Vy(n){let e=Math.abs(n),r=e%10,i=e%100;return i>=11&&i<=19||r===0?"many":r===1?"one":"few"}var Uw=()=>{let n={string:{unit:{one:"simbolis",few:"simboliai",many:"simboli\u0173"},verb:{smaller:{inclusive:"turi b\u016Bti ne ilgesn\u0117 kaip",notInclusive:"turi b\u016Bti trumpesn\u0117 kaip"},bigger:{inclusive:"turi b\u016Bti ne trumpesn\u0117 kaip",notInclusive:"turi b\u016Bti ilgesn\u0117 kaip"}}},file:{unit:{one:"baitas",few:"baitai",many:"bait\u0173"},verb:{smaller:{inclusive:"turi b\u016Bti ne didesnis kaip",notInclusive:"turi b\u016Bti ma\u017Eesnis kaip"},bigger:{inclusive:"turi b\u016Bti ne ma\u017Eesnis kaip",notInclusive:"turi b\u016Bti didesnis kaip"}}},array:{unit:{one:"element\u0105",few:"elementus",many:"element\u0173"},verb:{smaller:{inclusive:"turi tur\u0117ti ne daugiau kaip",notInclusive:"turi tur\u0117ti ma\u017Eiau kaip"},bigger:{inclusive:"turi tur\u0117ti ne ma\u017Eiau kaip",notInclusive:"turi tur\u0117ti daugiau kaip"}}},set:{unit:{one:"element\u0105",few:"elementus",many:"element\u0173"},verb:{smaller:{inclusive:"turi tur\u0117ti ne daugiau kaip",notInclusive:"turi tur\u0117ti ma\u017Eiau kaip"},bigger:{inclusive:"turi tur\u0117ti ne ma\u017Eiau kaip",notInclusive:"turi tur\u0117ti daugiau kaip"}}}};function e(t,o,s,a){let c=n[t]??null;return c===null?c:{unit:c.unit[o],verb:c.verb[a][s?"inclusive":"notInclusive"]}}let r={regex:"\u012Fvestis",email:"el. pa\u0161to adresas",url:"URL",emoji:"jaustukas",uuid:"UUID",uuidv4:"UUIDv4",uuidv6:"UUIDv6",nanoid:"nanoid",guid:"GUID",cuid:"cuid",cuid2:"cuid2",ulid:"ULID",xid:"XID",ksuid:"KSUID",datetime:"ISO data ir laikas",date:"ISO data",time:"ISO laikas",duration:"ISO trukm\u0117",ipv4:"IPv4 adresas",ipv6:"IPv6 adresas",cidrv4:"IPv4 tinklo prefiksas (CIDR)",cidrv6:"IPv6 tinklo prefiksas (CIDR)",base64:"base64 u\u017Ekoduota eilut\u0117",base64url:"base64url u\u017Ekoduota eilut\u0117",json_string:"JSON eilut\u0117",e164:"E.164 numeris",jwt:"JWT",template_literal:"\u012Fvestis"},i={nan:"NaN",number:"skai\u010Dius",bigint:"sveikasis skai\u010Dius",string:"eilut\u0117",boolean:"login\u0117 reik\u0161m\u0117",undefined:"neapibr\u0117\u017Eta reik\u0161m\u0117",function:"funkcija",symbol:"simbolis",array:"masyvas",object:"objektas",null:"nulin\u0117 reik\u0161m\u0117"};return t=>{switch(t.code){case"invalid_type":{let o=i[t.expected]??t.expected,s=O(t.input),a=i[s]??s;return/^[A-Z]/.test(t.expected)?`Gautas tipas ${a}, o tik\u0117tasi - instanceof ${t.expected}`:`Gautas tipas ${a}, o tik\u0117tasi - ${o}`}case"invalid_value":return t.values.length===1?`Privalo b\u016Bti ${A(t.values[0])}`:`Privalo b\u016Bti vienas i\u0161 ${P(t.values,"|")} pasirinkim\u0173`;case"too_big":{let o=i[t.origin]??t.origin,s=e(t.origin,Vy(Number(t.maximum)),t.inclusive??!1,"smaller");if(s?.verb)return`${Ti(o??t.origin??"reik\u0161m\u0117")} ${s.verb} ${t.maximum.toString()} ${s.unit??"element\u0173"}`;let a=t.inclusive?"ne didesnis kaip":"ma\u017Eesnis kaip";return`${Ti(o??t.origin??"reik\u0161m\u0117")} turi b\u016Bti ${a} ${t.maximum.toString()} ${s?.unit}`}case"too_small":{let o=i[t.origin]??t.origin,s=e(t.origin,Vy(Number(t.minimum)),t.inclusive??!1,"bigger");if(s?.verb)return`${Ti(o??t.origin??"reik\u0161m\u0117")} ${s.verb} ${t.minimum.toString()} ${s.unit??"element\u0173"}`;let a=t.inclusive?"ne ma\u017Eesnis kaip":"didesnis kaip";return`${Ti(o??t.origin??"reik\u0161m\u0117")} turi b\u016Bti ${a} ${t.minimum.toString()} ${s?.unit}`}case"invalid_format":{let o=t;return o.format==="starts_with"?`Eilut\u0117 privalo prasid\u0117ti "${o.prefix}"`:o.format==="ends_with"?`Eilut\u0117 privalo pasibaigti "${o.suffix}"`:o.format==="includes"?`Eilut\u0117 privalo \u012Ftraukti "${o.includes}"`:o.format==="regex"?`Eilut\u0117 privalo atitikti ${o.pattern}`:`Neteisingas ${r[o.format]??t.format}`}case"not_multiple_of":return`Skai\u010Dius privalo b\u016Bti ${t.divisor} kartotinis.`;case"unrecognized_keys":return`Neatpa\u017Eint${t.keys.length>1?"i":"as"} rakt${t.keys.length>1?"ai":"as"}: ${P(t.keys,", ")}`;case"invalid_key":return"Rastas klaidingas raktas";case"invalid_union":return"Klaidinga \u012Fvestis";case"invalid_element":{let o=i[t.origin]??t.origin;return`${Ti(o??t.origin??"reik\u0161m\u0117")} turi klaiding\u0105 \u012Fvest\u012F`}default:return"Klaidinga \u012Fvestis"}}};function Ky(){return{localeError:Uw()}}var Zw=()=>{let n={string:{unit:"\u0437\u043D\u0430\u0446\u0438",verb:"\u0434\u0430 \u0438\u043C\u0430\u0430\u0442"},file:{unit:"\u0431\u0430\u0458\u0442\u0438",verb:"\u0434\u0430 \u0438\u043C\u0430\u0430\u0442"},array:{unit:"\u0441\u0442\u0430\u0432\u043A\u0438",verb:"\u0434\u0430 \u0438\u043C\u0430\u0430\u0442"},set:{unit:"\u0441\u0442\u0430\u0432\u043A\u0438",verb:"\u0434\u0430 \u0438\u043C\u0430\u0430\u0442"}};function e(t){return n[t]??null}let r={regex:"\u0432\u043D\u0435\u0441",email:"\u0430\u0434\u0440\u0435\u0441\u0430 \u043D\u0430 \u0435-\u043F\u043E\u0448\u0442\u0430",url:"URL",emoji:"\u0435\u043C\u043E\u045F\u0438",uuid:"UUID",uuidv4:"UUIDv4",uuidv6:"UUIDv6",nanoid:"nanoid",guid:"GUID",cuid:"cuid",cuid2:"cuid2",ulid:"ULID",xid:"XID",ksuid:"KSUID",datetime:"ISO \u0434\u0430\u0442\u0443\u043C \u0438 \u0432\u0440\u0435\u043C\u0435",date:"ISO \u0434\u0430\u0442\u0443\u043C",time:"ISO \u0432\u0440\u0435\u043C\u0435",duration:"ISO \u0432\u0440\u0435\u043C\u0435\u0442\u0440\u0430\u0435\u045A\u0435",ipv4:"IPv4 \u0430\u0434\u0440\u0435\u0441\u0430",ipv6:"IPv6 \u0430\u0434\u0440\u0435\u0441\u0430",cidrv4:"IPv4 \u043E\u043F\u0441\u0435\u0433",cidrv6:"IPv6 \u043E\u043F\u0441\u0435\u0433",base64:"base64-\u0435\u043D\u043A\u043E\u0434\u0438\u0440\u0430\u043D\u0430 \u043D\u0438\u0437\u0430",base64url:"base64url-\u0435\u043D\u043A\u043E\u0434\u0438\u0440\u0430\u043D\u0430 \u043D\u0438\u0437\u0430",json_string:"JSON \u043D\u0438\u0437\u0430",e164:"E.164 \u0431\u0440\u043E\u0458",jwt:"JWT",template_literal:"\u0432\u043D\u0435\u0441"},i={nan:"NaN",number:"\u0431\u0440\u043E\u0458",array:"\u043D\u0438\u0437\u0430"};return t=>{switch(t.code){case"invalid_type":{let o=i[t.expected]??t.expected,s=O(t.input),a=i[s]??s;return/^[A-Z]/.test(t.expected)?`\u0413\u0440\u0435\u0448\u0435\u043D \u0432\u043D\u0435\u0441: \u0441\u0435 \u043E\u0447\u0435\u043A\u0443\u0432\u0430 instanceof ${t.expected}, \u043F\u0440\u0438\u043C\u0435\u043D\u043E ${a}`:`\u0413\u0440\u0435\u0448\u0435\u043D \u0432\u043D\u0435\u0441: \u0441\u0435 \u043E\u0447\u0435\u043A\u0443\u0432\u0430 ${o}, \u043F\u0440\u0438\u043C\u0435\u043D\u043E ${a}`}case"invalid_value":return t.values.length===1?`Invalid input: expected ${A(t.values[0])}`:`\u0413\u0440\u0435\u0448\u0430\u043D\u0430 \u043E\u043F\u0446\u0438\u0458\u0430: \u0441\u0435 \u043E\u0447\u0435\u043A\u0443\u0432\u0430 \u0435\u0434\u043D\u0430 ${P(t.values,"|")}`;case"too_big":{let o=t.inclusive?"<=":"<",s=e(t.origin);return s?`\u041F\u0440\u0435\u043C\u043D\u043E\u0433\u0443 \u0433\u043E\u043B\u0435\u043C: \u0441\u0435 \u043E\u0447\u0435\u043A\u0443\u0432\u0430 ${t.origin??"\u0432\u0440\u0435\u0434\u043D\u043E\u0441\u0442\u0430"} \u0434\u0430 \u0438\u043C\u0430 ${o}${t.maximum.toString()} ${s.unit??"\u0435\u043B\u0435\u043C\u0435\u043D\u0442\u0438"}`:`\u041F\u0440\u0435\u043C\u043D\u043E\u0433\u0443 \u0433\u043E\u043B\u0435\u043C: \u0441\u0435 \u043E\u0447\u0435\u043A\u0443\u0432\u0430 ${t.origin??"\u0432\u0440\u0435\u0434\u043D\u043E\u0441\u0442\u0430"} \u0434\u0430 \u0431\u0438\u0434\u0435 ${o}${t.maximum.toString()}`}case"too_small":{let o=t.inclusive?">=":">",s=e(t.origin);return s?`\u041F\u0440\u0435\u043C\u043D\u043E\u0433\u0443 \u043C\u0430\u043B: \u0441\u0435 \u043E\u0447\u0435\u043A\u0443\u0432\u0430 ${t.origin} \u0434\u0430 \u0438\u043C\u0430 ${o}${t.minimum.toString()} ${s.unit}`:`\u041F\u0440\u0435\u043C\u043D\u043E\u0433\u0443 \u043C\u0430\u043B: \u0441\u0435 \u043E\u0447\u0435\u043A\u0443\u0432\u0430 ${t.origin} \u0434\u0430 \u0431\u0438\u0434\u0435 ${o}${t.minimum.toString()}`}case"invalid_format":{let o=t;return o.format==="starts_with"?`\u041D\u0435\u0432\u0430\u0436\u0435\u0447\u043A\u0430 \u043D\u0438\u0437\u0430: \u043C\u043E\u0440\u0430 \u0434\u0430 \u0437\u0430\u043F\u043E\u0447\u043D\u0443\u0432\u0430 \u0441\u043E "${o.prefix}"`:o.format==="ends_with"?`\u041D\u0435\u0432\u0430\u0436\u0435\u0447\u043A\u0430 \u043D\u0438\u0437\u0430: \u043C\u043E\u0440\u0430 \u0434\u0430 \u0437\u0430\u0432\u0440\u0448\u0443\u0432\u0430 \u0441\u043E "${o.suffix}"`:o.format==="includes"?`\u041D\u0435\u0432\u0430\u0436\u0435\u0447\u043A\u0430 \u043D\u0438\u0437\u0430: \u043C\u043E\u0440\u0430 \u0434\u0430 \u0432\u043A\u043B\u0443\u0447\u0443\u0432\u0430 "${o.includes}"`:o.format==="regex"?`\u041D\u0435\u0432\u0430\u0436\u0435\u0447\u043A\u0430 \u043D\u0438\u0437\u0430: \u043C\u043E\u0440\u0430 \u0434\u0430 \u043E\u0434\u0433\u043E\u0430\u0440\u0430 \u043D\u0430 \u043F\u0430\u0442\u0435\u0440\u043D\u043E\u0442 ${o.pattern}`:`Invalid ${r[o.format]??t.format}`}case"not_multiple_of":return`\u0413\u0440\u0435\u0448\u0435\u043D \u0431\u0440\u043E\u0458: \u043C\u043E\u0440\u0430 \u0434\u0430 \u0431\u0438\u0434\u0435 \u0434\u0435\u043B\u0438\u0432 \u0441\u043E ${t.divisor}`;case"unrecognized_keys":return`${t.keys.length>1?"\u041D\u0435\u043F\u0440\u0435\u043F\u043E\u0437\u043D\u0430\u0435\u043D\u0438 \u043A\u043B\u0443\u0447\u0435\u0432\u0438":"\u041D\u0435\u043F\u0440\u0435\u043F\u043E\u0437\u043D\u0430\u0435\u043D \u043A\u043B\u0443\u0447"}: ${P(t.keys,", ")}`;case"invalid_key":return`\u0413\u0440\u0435\u0448\u0435\u043D \u043A\u043B\u0443\u0447 \u0432\u043E ${t.origin}`;case"invalid_union":return"\u0413\u0440\u0435\u0448\u0435\u043D \u0432\u043D\u0435\u0441";case"invalid_element":return`\u0413\u0440\u0435\u0448\u043D\u0430 \u0432\u0440\u0435\u0434\u043D\u043E\u0441\u0442 \u0432\u043E ${t.origin}`;default:return"\u0413\u0440\u0435\u0448\u0435\u043D \u0432\u043D\u0435\u0441"}}};function Yy(){return{localeError:Zw()}}var Hw=()=>{let n={string:{unit:"aksara",verb:"mempunyai"},file:{unit:"bait",verb:"mempunyai"},array:{unit:"elemen",verb:"mempunyai"},set:{unit:"elemen",verb:"mempunyai"}};function e(t){return n[t]??null}let r={regex:"input",email:"alamat e-mel",url:"URL",emoji:"emoji",uuid:"UUID",uuidv4:"UUIDv4",uuidv6:"UUIDv6",nanoid:"nanoid",guid:"GUID",cuid:"cuid",cuid2:"cuid2",ulid:"ULID",xid:"XID",ksuid:"KSUID",datetime:"tarikh masa ISO",date:"tarikh ISO",time:"masa ISO",duration:"tempoh ISO",ipv4:"alamat IPv4",ipv6:"alamat IPv6",cidrv4:"julat IPv4",cidrv6:"julat IPv6",base64:"string dikodkan base64",base64url:"string dikodkan base64url",json_string:"string JSON",e164:"nombor E.164",jwt:"JWT",template_literal:"input"},i={nan:"NaN",number:"nombor"};return t=>{switch(t.code){case"invalid_type":{let o=i[t.expected]??t.expected,s=O(t.input),a=i[s]??s;return/^[A-Z]/.test(t.expected)?`Input tidak sah: dijangka instanceof ${t.expected}, diterima ${a}`:`Input tidak sah: dijangka ${o}, diterima ${a}`}case"invalid_value":return t.values.length===1?`Input tidak sah: dijangka ${A(t.values[0])}`:`Pilihan tidak sah: dijangka salah satu daripada ${P(t.values,"|")}`;case"too_big":{let o=t.inclusive?"<=":"<",s=e(t.origin);return s?`Terlalu besar: dijangka ${t.origin??"nilai"} ${s.verb} ${o}${t.maximum.toString()} ${s.unit??"elemen"}`:`Terlalu besar: dijangka ${t.origin??"nilai"} adalah ${o}${t.maximum.toString()}`}case"too_small":{let o=t.inclusive?">=":">",s=e(t.origin);return s?`Terlalu kecil: dijangka ${t.origin} ${s.verb} ${o}${t.minimum.toString()} ${s.unit}`:`Terlalu kecil: dijangka ${t.origin} adalah ${o}${t.minimum.toString()}`}case"invalid_format":{let o=t;return o.format==="starts_with"?`String tidak sah: mesti bermula dengan "${o.prefix}"`:o.format==="ends_with"?`String tidak sah: mesti berakhir dengan "${o.suffix}"`:o.format==="includes"?`String tidak sah: mesti mengandungi "${o.includes}"`:o.format==="regex"?`String tidak sah: mesti sepadan dengan corak ${o.pattern}`:`${r[o.format]??t.format} tidak sah`}case"not_multiple_of":return`Nombor tidak sah: perlu gandaan ${t.divisor}`;case"unrecognized_keys":return`Kunci tidak dikenali: ${P(t.keys,", ")}`;case"invalid_key":return`Kunci tidak sah dalam ${t.origin}`;case"invalid_union":return"Input tidak sah";case"invalid_element":return`Nilai tidak sah dalam ${t.origin}`;default:return"Input tidak sah"}}};function Xy(){return{localeError:Hw()}}var Ww=()=>{let n={string:{unit:"tekens",verb:"heeft"},file:{unit:"bytes",verb:"heeft"},array:{unit:"elementen",verb:"heeft"},set:{unit:"elementen",verb:"heeft"}};function e(t){return n[t]??null}let r={regex:"invoer",email:"emailadres",url:"URL",emoji:"emoji",uuid:"UUID",uuidv4:"UUIDv4",uuidv6:"UUIDv6",nanoid:"nanoid",guid:"GUID",cuid:"cuid",cuid2:"cuid2",ulid:"ULID",xid:"XID",ksuid:"KSUID",datetime:"ISO datum en tijd",date:"ISO datum",time:"ISO tijd",duration:"ISO duur",ipv4:"IPv4-adres",ipv6:"IPv6-adres",cidrv4:"IPv4-bereik",cidrv6:"IPv6-bereik",base64:"base64-gecodeerde tekst",base64url:"base64 URL-gecodeerde tekst",json_string:"JSON string",e164:"E.164-nummer",jwt:"JWT",template_literal:"invoer"},i={nan:"NaN",number:"getal"};return t=>{switch(t.code){case"invalid_type":{let o=i[t.expected]??t.expected,s=O(t.input),a=i[s]??s;return/^[A-Z]/.test(t.expected)?`Ongeldige invoer: verwacht instanceof ${t.expected}, ontving ${a}`:`Ongeldige invoer: verwacht ${o}, ontving ${a}`}case"invalid_value":return t.values.length===1?`Ongeldige invoer: verwacht ${A(t.values[0])}`:`Ongeldige optie: verwacht \xE9\xE9n van ${P(t.values,"|")}`;case"too_big":{let o=t.inclusive?"<=":"<",s=e(t.origin),a=t.origin==="date"?"laat":t.origin==="string"?"lang":"groot";return s?`Te ${a}: verwacht dat ${t.origin??"waarde"} ${o}${t.maximum.toString()} ${s.unit??"elementen"} ${s.verb}`:`Te ${a}: verwacht dat ${t.origin??"waarde"} ${o}${t.maximum.toString()} is`}case"too_small":{let o=t.inclusive?">=":">",s=e(t.origin),a=t.origin==="date"?"vroeg":t.origin==="string"?"kort":"klein";return s?`Te ${a}: verwacht dat ${t.origin} ${o}${t.minimum.toString()} ${s.unit} ${s.verb}`:`Te ${a}: verwacht dat ${t.origin} ${o}${t.minimum.toString()} is`}case"invalid_format":{let o=t;return o.format==="starts_with"?`Ongeldige tekst: moet met "${o.prefix}" beginnen`:o.format==="ends_with"?`Ongeldige tekst: moet op "${o.suffix}" eindigen`:o.format==="includes"?`Ongeldige tekst: moet "${o.includes}" bevatten`:o.format==="regex"?`Ongeldige tekst: moet overeenkomen met patroon ${o.pattern}`:`Ongeldig: ${r[o.format]??t.format}`}case"not_multiple_of":return`Ongeldig getal: moet een veelvoud van ${t.divisor} zijn`;case"unrecognized_keys":return`Onbekende key${t.keys.length>1?"s":""}: ${P(t.keys,", ")}`;case"invalid_key":return`Ongeldige key in ${t.origin}`;case"invalid_union":return"Ongeldige invoer";case"invalid_element":return`Ongeldige waarde in ${t.origin}`;default:return"Ongeldige invoer"}}};function Qy(){return{localeError:Ww()}}var Bw=()=>{let n={string:{unit:"tegn",verb:"\xE5 ha"},file:{unit:"bytes",verb:"\xE5 ha"},array:{unit:"elementer",verb:"\xE5 inneholde"},set:{unit:"elementer",verb:"\xE5 inneholde"}};function e(t){return n[t]??null}let r={regex:"input",email:"e-postadresse",url:"URL",emoji:"emoji",uuid:"UUID",uuidv4:"UUIDv4",uuidv6:"UUIDv6",nanoid:"nanoid",guid:"GUID",cuid:"cuid",cuid2:"cuid2",ulid:"ULID",xid:"XID",ksuid:"KSUID",datetime:"ISO dato- og klokkeslett",date:"ISO-dato",time:"ISO-klokkeslett",duration:"ISO-varighet",ipv4:"IPv4-omr\xE5de",ipv6:"IPv6-omr\xE5de",cidrv4:"IPv4-spekter",cidrv6:"IPv6-spekter",base64:"base64-enkodet streng",base64url:"base64url-enkodet streng",json_string:"JSON-streng",e164:"E.164-nummer",jwt:"JWT",template_literal:"input"},i={nan:"NaN",number:"tall",array:"liste"};return t=>{switch(t.code){case"invalid_type":{let o=i[t.expected]??t.expected,s=O(t.input),a=i[s]??s;return/^[A-Z]/.test(t.expected)?`Ugyldig input: forventet instanceof ${t.expected}, fikk ${a}`:`Ugyldig input: forventet ${o}, fikk ${a}`}case"invalid_value":return t.values.length===1?`Ugyldig verdi: forventet ${A(t.values[0])}`:`Ugyldig valg: forventet en av ${P(t.values,"|")}`;case"too_big":{let o=t.inclusive?"<=":"<",s=e(t.origin);return s?`For stor(t): forventet ${t.origin??"value"} til \xE5 ha ${o}${t.maximum.toString()} ${s.unit??"elementer"}`:`For stor(t): forventet ${t.origin??"value"} til \xE5 ha ${o}${t.maximum.toString()}`}case"too_small":{let o=t.inclusive?">=":">",s=e(t.origin);return s?`For lite(n): forventet ${t.origin} til \xE5 ha ${o}${t.minimum.toString()} ${s.unit}`:`For lite(n): forventet ${t.origin} til \xE5 ha ${o}${t.minimum.toString()}`}case"invalid_format":{let o=t;return o.format==="starts_with"?`Ugyldig streng: m\xE5 starte med "${o.prefix}"`:o.format==="ends_with"?`Ugyldig streng: m\xE5 ende med "${o.suffix}"`:o.format==="includes"?`Ugyldig streng: m\xE5 inneholde "${o.includes}"`:o.format==="regex"?`Ugyldig streng: m\xE5 matche m\xF8nsteret ${o.pattern}`:`Ugyldig ${r[o.format]??t.format}`}case"not_multiple_of":return`Ugyldig tall: m\xE5 v\xE6re et multiplum av ${t.divisor}`;case"unrecognized_keys":return`${t.keys.length>1?"Ukjente n\xF8kler":"Ukjent n\xF8kkel"}: ${P(t.keys,", ")}`;case"invalid_key":return`Ugyldig n\xF8kkel i ${t.origin}`;case"invalid_union":return"Ugyldig input";case"invalid_element":return`Ugyldig verdi i ${t.origin}`;default:return"Ugyldig input"}}};function eb(){return{localeError:Bw()}}var Gw=()=>{let n={string:{unit:"harf",verb:"olmal\u0131d\u0131r"},file:{unit:"bayt",verb:"olmal\u0131d\u0131r"},array:{unit:"unsur",verb:"olmal\u0131d\u0131r"},set:{unit:"unsur",verb:"olmal\u0131d\u0131r"}};function e(t){return n[t]??null}let r={regex:"giren",email:"epostag\xE2h",url:"URL",emoji:"emoji",uuid:"UUID",uuidv4:"UUIDv4",uuidv6:"UUIDv6",nanoid:"nanoid",guid:"GUID",cuid:"cuid",cuid2:"cuid2",ulid:"ULID",xid:"XID",ksuid:"KSUID",datetime:"ISO heng\xE2m\u0131",date:"ISO tarihi",time:"ISO zaman\u0131",duration:"ISO m\xFCddeti",ipv4:"IPv4 ni\u015F\xE2n\u0131",ipv6:"IPv6 ni\u015F\xE2n\u0131",cidrv4:"IPv4 menzili",cidrv6:"IPv6 menzili",base64:"base64-\u015Fifreli metin",base64url:"base64url-\u015Fifreli metin",json_string:"JSON metin",e164:"E.164 say\u0131s\u0131",jwt:"JWT",template_literal:"giren"},i={nan:"NaN",number:"numara",array:"saf",null:"gayb"};return t=>{switch(t.code){case"invalid_type":{let o=i[t.expected]??t.expected,s=O(t.input),a=i[s]??s;return/^[A-Z]/.test(t.expected)?`F\xE2sit giren: umulan instanceof ${t.expected}, al\u0131nan ${a}`:`F\xE2sit giren: umulan ${o}, al\u0131nan ${a}`}case"invalid_value":return t.values.length===1?`F\xE2sit giren: umulan ${A(t.values[0])}`:`F\xE2sit tercih: m\xFBteberler ${P(t.values,"|")}`;case"too_big":{let o=t.inclusive?"<=":"<",s=e(t.origin);return s?`Fazla b\xFCy\xFCk: ${t.origin??"value"}, ${o}${t.maximum.toString()} ${s.unit??"elements"} sahip olmal\u0131yd\u0131.`:`Fazla b\xFCy\xFCk: ${t.origin??"value"}, ${o}${t.maximum.toString()} olmal\u0131yd\u0131.`}case"too_small":{let o=t.inclusive?">=":">",s=e(t.origin);return s?`Fazla k\xFC\xE7\xFCk: ${t.origin}, ${o}${t.minimum.toString()} ${s.unit} sahip olmal\u0131yd\u0131.`:`Fazla k\xFC\xE7\xFCk: ${t.origin}, ${o}${t.minimum.toString()} olmal\u0131yd\u0131.`}case"invalid_format":{let o=t;return o.format==="starts_with"?`F\xE2sit metin: "${o.prefix}" ile ba\u015Flamal\u0131.`:o.format==="ends_with"?`F\xE2sit metin: "${o.suffix}" ile bitmeli.`:o.format==="includes"?`F\xE2sit metin: "${o.includes}" ihtiv\xE2 etmeli.`:o.format==="regex"?`F\xE2sit metin: ${o.pattern} nak\u015F\u0131na uymal\u0131.`:`F\xE2sit ${r[o.format]??t.format}`}case"not_multiple_of":return`F\xE2sit say\u0131: ${t.divisor} kat\u0131 olmal\u0131yd\u0131.`;case"unrecognized_keys":return`Tan\u0131nmayan anahtar ${t.keys.length>1?"s":""}: ${P(t.keys,", ")}`;case"invalid_key":return`${t.origin} i\xE7in tan\u0131nmayan anahtar var.`;case"invalid_union":return"Giren tan\u0131namad\u0131.";case"invalid_element":return`${t.origin} i\xE7in tan\u0131nmayan k\u0131ymet var.`;default:return"K\u0131ymet tan\u0131namad\u0131."}}};function tb(){return{localeError:Gw()}}var Jw=()=>{let n={string:{unit:"\u062A\u0648\u06A9\u064A",verb:"\u0648\u0644\u0631\u064A"},file:{unit:"\u0628\u0627\u06CC\u067C\u0633",verb:"\u0648\u0644\u0631\u064A"},array:{unit:"\u062A\u0648\u06A9\u064A",verb:"\u0648\u0644\u0631\u064A"},set:{unit:"\u062A\u0648\u06A9\u064A",verb:"\u0648\u0644\u0631\u064A"}};function e(t){return n[t]??null}let r={regex:"\u0648\u0631\u0648\u062F\u064A",email:"\u0628\u0631\u06CC\u069A\u0646\u0627\u0644\u06CC\u06A9",url:"\u06CC\u0648 \u0622\u0631 \u0627\u0644",emoji:"\u0627\u06CC\u0645\u0648\u062C\u064A",uuid:"UUID",uuidv4:"UUIDv4",uuidv6:"UUIDv6",nanoid:"nanoid",guid:"GUID",cuid:"cuid",cuid2:"cuid2",ulid:"ULID",xid:"XID",ksuid:"KSUID",datetime:"\u0646\u06CC\u067C\u0647 \u0627\u0648 \u0648\u062E\u062A",date:"\u0646\u06D0\u067C\u0647",time:"\u0648\u062E\u062A",duration:"\u0645\u0648\u062F\u0647",ipv4:"\u062F IPv4 \u067E\u062A\u0647",ipv6:"\u062F IPv6 \u067E\u062A\u0647",cidrv4:"\u062F IPv4 \u0633\u0627\u062D\u0647",cidrv6:"\u062F IPv6 \u0633\u0627\u062D\u0647",base64:"base64-encoded \u0645\u062A\u0646",base64url:"base64url-encoded \u0645\u062A\u0646",json_string:"JSON \u0645\u062A\u0646",e164:"\u062F E.164 \u0634\u0645\u06D0\u0631\u0647",jwt:"JWT",template_literal:"\u0648\u0631\u0648\u062F\u064A"},i={nan:"NaN",number:"\u0639\u062F\u062F",array:"\u0627\u0631\u06D0"};return t=>{switch(t.code){case"invalid_type":{let o=i[t.expected]??t.expected,s=O(t.input),a=i[s]??s;return/^[A-Z]/.test(t.expected)?`\u0646\u0627\u0633\u0645 \u0648\u0631\u0648\u062F\u064A: \u0628\u0627\u06CC\u062F instanceof ${t.expected} \u0648\u0627\u06CC, \u0645\u06AB\u0631 ${a} \u062A\u0631\u0644\u0627\u0633\u0647 \u0634\u0648`:`\u0646\u0627\u0633\u0645 \u0648\u0631\u0648\u062F\u064A: \u0628\u0627\u06CC\u062F ${o} \u0648\u0627\u06CC, \u0645\u06AB\u0631 ${a} \u062A\u0631\u0644\u0627\u0633\u0647 \u0634\u0648`}case"invalid_value":return t.values.length===1?`\u0646\u0627\u0633\u0645 \u0648\u0631\u0648\u062F\u064A: \u0628\u0627\u06CC\u062F ${A(t.values[0])} \u0648\u0627\u06CC`:`\u0646\u0627\u0633\u0645 \u0627\u0646\u062A\u062E\u0627\u0628: \u0628\u0627\u06CC\u062F \u06CC\u0648 \u0644\u0647 ${P(t.values,"|")} \u0685\u062E\u0647 \u0648\u0627\u06CC`;case"too_big":{let o=t.inclusive?"<=":"<",s=e(t.origin);return s?`\u0689\u06CC\u0631 \u0644\u0648\u06CC: ${t.origin??"\u0627\u0631\u0632\u069A\u062A"} \u0628\u0627\u06CC\u062F ${o}${t.maximum.toString()} ${s.unit??"\u0639\u0646\u0635\u0631\u0648\u0646\u0647"} \u0648\u0644\u0631\u064A`:`\u0689\u06CC\u0631 \u0644\u0648\u06CC: ${t.origin??"\u0627\u0631\u0632\u069A\u062A"} \u0628\u0627\u06CC\u062F ${o}${t.maximum.toString()} \u0648\u064A`}case"too_small":{let o=t.inclusive?">=":">",s=e(t.origin);return s?`\u0689\u06CC\u0631 \u06A9\u0648\u0686\u0646\u06CC: ${t.origin} \u0628\u0627\u06CC\u062F ${o}${t.minimum.toString()} ${s.unit} \u0648\u0644\u0631\u064A`:`\u0689\u06CC\u0631 \u06A9\u0648\u0686\u0646\u06CC: ${t.origin} \u0628\u0627\u06CC\u062F ${o}${t.minimum.toString()} \u0648\u064A`}case"invalid_format":{let o=t;return o.format==="starts_with"?`\u0646\u0627\u0633\u0645 \u0645\u062A\u0646: \u0628\u0627\u06CC\u062F \u062F "${o.prefix}" \u0633\u0631\u0647 \u067E\u06CC\u0644 \u0634\u064A`:o.format==="ends_with"?`\u0646\u0627\u0633\u0645 \u0645\u062A\u0646: \u0628\u0627\u06CC\u062F \u062F "${o.suffix}" \u0633\u0631\u0647 \u067E\u0627\u06CC \u062A\u0647 \u0648\u0631\u0633\u064A\u0696\u064A`:o.format==="includes"?`\u0646\u0627\u0633\u0645 \u0645\u062A\u0646: \u0628\u0627\u06CC\u062F "${o.includes}" \u0648\u0644\u0631\u064A`:o.format==="regex"?`\u0646\u0627\u0633\u0645 \u0645\u062A\u0646: \u0628\u0627\u06CC\u062F \u062F ${o.pattern} \u0633\u0631\u0647 \u0645\u0637\u0627\u0628\u0642\u062A \u0648\u0644\u0631\u064A`:`${r[o.format]??t.format} \u0646\u0627\u0633\u0645 \u062F\u06CC`}case"not_multiple_of":return`\u0646\u0627\u0633\u0645 \u0639\u062F\u062F: \u0628\u0627\u06CC\u062F \u062F ${t.divisor} \u0645\u0636\u0631\u0628 \u0648\u064A`;case"unrecognized_keys":return`\u0646\u0627\u0633\u0645 ${t.keys.length>1?"\u06A9\u0644\u06CC\u0689\u0648\u0646\u0647":"\u06A9\u0644\u06CC\u0689"}: ${P(t.keys,", ")}`;case"invalid_key":return`\u0646\u0627\u0633\u0645 \u06A9\u0644\u06CC\u0689 \u067E\u0647 ${t.origin} \u06A9\u06D0`;case"invalid_union":return"\u0646\u0627\u0633\u0645\u0647 \u0648\u0631\u0648\u062F\u064A";case"invalid_element":return`\u0646\u0627\u0633\u0645 \u0639\u0646\u0635\u0631 \u067E\u0647 ${t.origin} \u06A9\u06D0`;default:return"\u0646\u0627\u0633\u0645\u0647 \u0648\u0631\u0648\u062F\u064A"}}};function nb(){return{localeError:Jw()}}var qw=()=>{let n={string:{unit:"znak\xF3w",verb:"mie\u0107"},file:{unit:"bajt\xF3w",verb:"mie\u0107"},array:{unit:"element\xF3w",verb:"mie\u0107"},set:{unit:"element\xF3w",verb:"mie\u0107"}};function e(t){return n[t]??null}let r={regex:"wyra\u017Cenie",email:"adres email",url:"URL",emoji:"emoji",uuid:"UUID",uuidv4:"UUIDv4",uuidv6:"UUIDv6",nanoid:"nanoid",guid:"GUID",cuid:"cuid",cuid2:"cuid2",ulid:"ULID",xid:"XID",ksuid:"KSUID",datetime:"data i godzina w formacie ISO",date:"data w formacie ISO",time:"godzina w formacie ISO",duration:"czas trwania ISO",ipv4:"adres IPv4",ipv6:"adres IPv6",cidrv4:"zakres IPv4",cidrv6:"zakres IPv6",base64:"ci\u0105g znak\xF3w zakodowany w formacie base64",base64url:"ci\u0105g znak\xF3w zakodowany w formacie base64url",json_string:"ci\u0105g znak\xF3w w formacie JSON",e164:"liczba E.164",jwt:"JWT",template_literal:"wej\u015Bcie"},i={nan:"NaN",number:"liczba",array:"tablica"};return t=>{switch(t.code){case"invalid_type":{let o=i[t.expected]??t.expected,s=O(t.input),a=i[s]??s;return/^[A-Z]/.test(t.expected)?`Nieprawid\u0142owe dane wej\u015Bciowe: oczekiwano instanceof ${t.expected}, otrzymano ${a}`:`Nieprawid\u0142owe dane wej\u015Bciowe: oczekiwano ${o}, otrzymano ${a}`}case"invalid_value":return t.values.length===1?`Nieprawid\u0142owe dane wej\u015Bciowe: oczekiwano ${A(t.values[0])}`:`Nieprawid\u0142owa opcja: oczekiwano jednej z warto\u015Bci ${P(t.values,"|")}`;case"too_big":{let o=t.inclusive?"<=":"<",s=e(t.origin);return s?`Za du\u017Ca warto\u015B\u0107: oczekiwano, \u017Ce ${t.origin??"warto\u015B\u0107"} b\u0119dzie mie\u0107 ${o}${t.maximum.toString()} ${s.unit??"element\xF3w"}`:`Zbyt du\u017C(y/a/e): oczekiwano, \u017Ce ${t.origin??"warto\u015B\u0107"} b\u0119dzie wynosi\u0107 ${o}${t.maximum.toString()}`}case"too_small":{let o=t.inclusive?">=":">",s=e(t.origin);return s?`Za ma\u0142a warto\u015B\u0107: oczekiwano, \u017Ce ${t.origin??"warto\u015B\u0107"} b\u0119dzie mie\u0107 ${o}${t.minimum.toString()} ${s.unit??"element\xF3w"}`:`Zbyt ma\u0142(y/a/e): oczekiwano, \u017Ce ${t.origin??"warto\u015B\u0107"} b\u0119dzie wynosi\u0107 ${o}${t.minimum.toString()}`}case"invalid_format":{let o=t;return o.format==="starts_with"?`Nieprawid\u0142owy ci\u0105g znak\xF3w: musi zaczyna\u0107 si\u0119 od "${o.prefix}"`:o.format==="ends_with"?`Nieprawid\u0142owy ci\u0105g znak\xF3w: musi ko\u0144czy\u0107 si\u0119 na "${o.suffix}"`:o.format==="includes"?`Nieprawid\u0142owy ci\u0105g znak\xF3w: musi zawiera\u0107 "${o.includes}"`:o.format==="regex"?`Nieprawid\u0142owy ci\u0105g znak\xF3w: musi odpowiada\u0107 wzorcowi ${o.pattern}`:`Nieprawid\u0142ow(y/a/e) ${r[o.format]??t.format}`}case"not_multiple_of":return`Nieprawid\u0142owa liczba: musi by\u0107 wielokrotno\u015Bci\u0105 ${t.divisor}`;case"unrecognized_keys":return`Nierozpoznane klucze${t.keys.length>1?"s":""}: ${P(t.keys,", ")}`;case"invalid_key":return`Nieprawid\u0142owy klucz w ${t.origin}`;case"invalid_union":return"Nieprawid\u0142owe dane wej\u015Bciowe";case"invalid_element":return`Nieprawid\u0142owa warto\u015B\u0107 w ${t.origin}`;default:return"Nieprawid\u0142owe dane wej\u015Bciowe"}}};function rb(){return{localeError:qw()}}var Vw=()=>{let n={string:{unit:"caracteres",verb:"ter"},file:{unit:"bytes",verb:"ter"},array:{unit:"itens",verb:"ter"},set:{unit:"itens",verb:"ter"}};function e(t){return n[t]??null}let r={regex:"padr\xE3o",email:"endere\xE7o de e-mail",url:"URL",emoji:"emoji",uuid:"UUID",uuidv4:"UUIDv4",uuidv6:"UUIDv6",nanoid:"nanoid",guid:"GUID",cuid:"cuid",cuid2:"cuid2",ulid:"ULID",xid:"XID",ksuid:"KSUID",datetime:"data e hora ISO",date:"data ISO",time:"hora ISO",duration:"dura\xE7\xE3o ISO",ipv4:"endere\xE7o IPv4",ipv6:"endere\xE7o IPv6",cidrv4:"faixa de IPv4",cidrv6:"faixa de IPv6",base64:"texto codificado em base64",base64url:"URL codificada em base64",json_string:"texto JSON",e164:"n\xFAmero E.164",jwt:"JWT",template_literal:"entrada"},i={nan:"NaN",number:"n\xFAmero",null:"nulo"};return t=>{switch(t.code){case"invalid_type":{let o=i[t.expected]??t.expected,s=O(t.input),a=i[s]??s;return/^[A-Z]/.test(t.expected)?`Tipo inv\xE1lido: esperado instanceof ${t.expected}, recebido ${a}`:`Tipo inv\xE1lido: esperado ${o}, recebido ${a}`}case"invalid_value":return t.values.length===1?`Entrada inv\xE1lida: esperado ${A(t.values[0])}`:`Op\xE7\xE3o inv\xE1lida: esperada uma das ${P(t.values,"|")}`;case"too_big":{let o=t.inclusive?"<=":"<",s=e(t.origin);return s?`Muito grande: esperado que ${t.origin??"valor"} tivesse ${o}${t.maximum.toString()} ${s.unit??"elementos"}`:`Muito grande: esperado que ${t.origin??"valor"} fosse ${o}${t.maximum.toString()}`}case"too_small":{let o=t.inclusive?">=":">",s=e(t.origin);return s?`Muito pequeno: esperado que ${t.origin} tivesse ${o}${t.minimum.toString()} ${s.unit}`:`Muito pequeno: esperado que ${t.origin} fosse ${o}${t.minimum.toString()}`}case"invalid_format":{let o=t;return o.format==="starts_with"?`Texto inv\xE1lido: deve come\xE7ar com "${o.prefix}"`:o.format==="ends_with"?`Texto inv\xE1lido: deve terminar com "${o.suffix}"`:o.format==="includes"?`Texto inv\xE1lido: deve incluir "${o.includes}"`:o.format==="regex"?`Texto inv\xE1lido: deve corresponder ao padr\xE3o ${o.pattern}`:`${r[o.format]??t.format} inv\xE1lido`}case"not_multiple_of":return`N\xFAmero inv\xE1lido: deve ser m\xFAltiplo de ${t.divisor}`;case"unrecognized_keys":return`Chave${t.keys.length>1?"s":""} desconhecida${t.keys.length>1?"s":""}: ${P(t.keys,", ")}`;case"invalid_key":return`Chave inv\xE1lida em ${t.origin}`;case"invalid_union":return"Entrada inv\xE1lida";case"invalid_element":return`Valor inv\xE1lido em ${t.origin}`;default:return"Campo inv\xE1lido"}}};function ib(){return{localeError:Vw()}}function ob(n,e,r,i){let t=Math.abs(n),o=t%10,s=t%100;return s>=11&&s<=19?i:o===1?e:o>=2&&o<=4?r:i}var Kw=()=>{let n={string:{unit:{one:"\u0441\u0438\u043C\u0432\u043E\u043B",few:"\u0441\u0438\u043C\u0432\u043E\u043B\u0430",many:"\u0441\u0438\u043C\u0432\u043E\u043B\u043E\u0432"},verb:"\u0438\u043C\u0435\u0442\u044C"},file:{unit:{one:"\u0431\u0430\u0439\u0442",few:"\u0431\u0430\u0439\u0442\u0430",many:"\u0431\u0430\u0439\u0442"},verb:"\u0438\u043C\u0435\u0442\u044C"},array:{unit:{one:"\u044D\u043B\u0435\u043C\u0435\u043D\u0442",few:"\u044D\u043B\u0435\u043C\u0435\u043D\u0442\u0430",many:"\u044D\u043B\u0435\u043C\u0435\u043D\u0442\u043E\u0432"},verb:"\u0438\u043C\u0435\u0442\u044C"},set:{unit:{one:"\u044D\u043B\u0435\u043C\u0435\u043D\u0442",few:"\u044D\u043B\u0435\u043C\u0435\u043D\u0442\u0430",many:"\u044D\u043B\u0435\u043C\u0435\u043D\u0442\u043E\u0432"},verb:"\u0438\u043C\u0435\u0442\u044C"}};function e(t){return n[t]??null}let r={regex:"\u0432\u0432\u043E\u0434",email:"email \u0430\u0434\u0440\u0435\u0441",url:"URL",emoji:"\u044D\u043C\u043E\u0434\u0437\u0438",uuid:"UUID",uuidv4:"UUIDv4",uuidv6:"UUIDv6",nanoid:"nanoid",guid:"GUID",cuid:"cuid",cuid2:"cuid2",ulid:"ULID",xid:"XID",ksuid:"KSUID",datetime:"ISO \u0434\u0430\u0442\u0430 \u0438 \u0432\u0440\u0435\u043C\u044F",date:"ISO \u0434\u0430\u0442\u0430",time:"ISO \u0432\u0440\u0435\u043C\u044F",duration:"ISO \u0434\u043B\u0438\u0442\u0435\u043B\u044C\u043D\u043E\u0441\u0442\u044C",ipv4:"IPv4 \u0430\u0434\u0440\u0435\u0441",ipv6:"IPv6 \u0430\u0434\u0440\u0435\u0441",cidrv4:"IPv4 \u0434\u0438\u0430\u043F\u0430\u0437\u043E\u043D",cidrv6:"IPv6 \u0434\u0438\u0430\u043F\u0430\u0437\u043E\u043D",base64:"\u0441\u0442\u0440\u043E\u043A\u0430 \u0432 \u0444\u043E\u0440\u043C\u0430\u0442\u0435 base64",base64url:"\u0441\u0442\u0440\u043E\u043A\u0430 \u0432 \u0444\u043E\u0440\u043C\u0430\u0442\u0435 base64url",json_string:"JSON \u0441\u0442\u0440\u043E\u043A\u0430",e164:"\u043D\u043E\u043C\u0435\u0440 E.164",jwt:"JWT",template_literal:"\u0432\u0432\u043E\u0434"},i={nan:"NaN",number:"\u0447\u0438\u0441\u043B\u043E",array:"\u043C\u0430\u0441\u0441\u0438\u0432"};return t=>{switch(t.code){case"invalid_type":{let o=i[t.expected]??t.expected,s=O(t.input),a=i[s]??s;return/^[A-Z]/.test(t.expected)?`\u041D\u0435\u0432\u0435\u0440\u043D\u044B\u0439 \u0432\u0432\u043E\u0434: \u043E\u0436\u0438\u0434\u0430\u043B\u043E\u0441\u044C instanceof ${t.expected}, \u043F\u043E\u043B\u0443\u0447\u0435\u043D\u043E ${a}`:`\u041D\u0435\u0432\u0435\u0440\u043D\u044B\u0439 \u0432\u0432\u043E\u0434: \u043E\u0436\u0438\u0434\u0430\u043B\u043E\u0441\u044C ${o}, \u043F\u043E\u043B\u0443\u0447\u0435\u043D\u043E ${a}`}case"invalid_value":return t.values.length===1?`\u041D\u0435\u0432\u0435\u0440\u043D\u044B\u0439 \u0432\u0432\u043E\u0434: \u043E\u0436\u0438\u0434\u0430\u043B\u043E\u0441\u044C ${A(t.values[0])}`:`\u041D\u0435\u0432\u0435\u0440\u043D\u044B\u0439 \u0432\u0430\u0440\u0438\u0430\u043D\u0442: \u043E\u0436\u0438\u0434\u0430\u043B\u043E\u0441\u044C \u043E\u0434\u043D\u043E \u0438\u0437 ${P(t.values,"|")}`;case"too_big":{let o=t.inclusive?"<=":"<",s=e(t.origin);if(s){let a=Number(t.maximum),c=ob(a,s.unit.one,s.unit.few,s.unit.many);return`\u0421\u043B\u0438\u0448\u043A\u043E\u043C \u0431\u043E\u043B\u044C\u0448\u043E\u0435 \u0437\u043D\u0430\u0447\u0435\u043D\u0438\u0435: \u043E\u0436\u0438\u0434\u0430\u043B\u043E\u0441\u044C, \u0447\u0442\u043E ${t.origin??"\u0437\u043D\u0430\u0447\u0435\u043D\u0438\u0435"} \u0431\u0443\u0434\u0435\u0442 \u0438\u043C\u0435\u0442\u044C ${o}${t.maximum.toString()} ${c}`}return`\u0421\u043B\u0438\u0448\u043A\u043E\u043C \u0431\u043E\u043B\u044C\u0448\u043E\u0435 \u0437\u043D\u0430\u0447\u0435\u043D\u0438\u0435: \u043E\u0436\u0438\u0434\u0430\u043B\u043E\u0441\u044C, \u0447\u0442\u043E ${t.origin??"\u0437\u043D\u0430\u0447\u0435\u043D\u0438\u0435"} \u0431\u0443\u0434\u0435\u0442 ${o}${t.maximum.toString()}`}case"too_small":{let o=t.inclusive?">=":">",s=e(t.origin);if(s){let a=Number(t.minimum),c=ob(a,s.unit.one,s.unit.few,s.unit.many);return`\u0421\u043B\u0438\u0448\u043A\u043E\u043C \u043C\u0430\u043B\u0435\u043D\u044C\u043A\u043E\u0435 \u0437\u043D\u0430\u0447\u0435\u043D\u0438\u0435: \u043E\u0436\u0438\u0434\u0430\u043B\u043E\u0441\u044C, \u0447\u0442\u043E ${t.origin} \u0431\u0443\u0434\u0435\u0442 \u0438\u043C\u0435\u0442\u044C ${o}${t.minimum.toString()} ${c}`}return`\u0421\u043B\u0438\u0448\u043A\u043E\u043C \u043C\u0430\u043B\u0435\u043D\u044C\u043A\u043E\u0435 \u0437\u043D\u0430\u0447\u0435\u043D\u0438\u0435: \u043E\u0436\u0438\u0434\u0430\u043B\u043E\u0441\u044C, \u0447\u0442\u043E ${t.origin} \u0431\u0443\u0434\u0435\u0442 ${o}${t.minimum.toString()}`}case"invalid_format":{let o=t;return o.format==="starts_with"?`\u041D\u0435\u0432\u0435\u0440\u043D\u0430\u044F \u0441\u0442\u0440\u043E\u043A\u0430: \u0434\u043E\u043B\u0436\u043D\u0430 \u043D\u0430\u0447\u0438\u043D\u0430\u0442\u044C\u0441\u044F \u0441 "${o.prefix}"`:o.format==="ends_with"?`\u041D\u0435\u0432\u0435\u0440\u043D\u0430\u044F \u0441\u0442\u0440\u043E\u043A\u0430: \u0434\u043E\u043B\u0436\u043D\u0430 \u0437\u0430\u043A\u0430\u043D\u0447\u0438\u0432\u0430\u0442\u044C\u0441\u044F \u043D\u0430 "${o.suffix}"`:o.format==="includes"?`\u041D\u0435\u0432\u0435\u0440\u043D\u0430\u044F \u0441\u0442\u0440\u043E\u043A\u0430: \u0434\u043E\u043B\u0436\u043D\u0430 \u0441\u043E\u0434\u0435\u0440\u0436\u0430\u0442\u044C "${o.includes}"`:o.format==="regex"?`\u041D\u0435\u0432\u0435\u0440\u043D\u0430\u044F \u0441\u0442\u0440\u043E\u043A\u0430: \u0434\u043E\u043B\u0436\u043D\u0430 \u0441\u043E\u043E\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u043E\u0432\u0430\u0442\u044C \u0448\u0430\u0431\u043B\u043E\u043D\u0443 ${o.pattern}`:`\u041D\u0435\u0432\u0435\u0440\u043D\u044B\u0439 ${r[o.format]??t.format}`}case"not_multiple_of":return`\u041D\u0435\u0432\u0435\u0440\u043D\u043E\u0435 \u0447\u0438\u0441\u043B\u043E: \u0434\u043E\u043B\u0436\u043D\u043E \u0431\u044B\u0442\u044C \u043A\u0440\u0430\u0442\u043D\u044B\u043C ${t.divisor}`;case"unrecognized_keys":return`\u041D\u0435\u0440\u0430\u0441\u043F\u043E\u0437\u043D\u0430\u043D\u043D${t.keys.length>1?"\u044B\u0435":"\u044B\u0439"} \u043A\u043B\u044E\u0447${t.keys.length>1?"\u0438":""}: ${P(t.keys,", ")}`;case"invalid_key":return`\u041D\u0435\u0432\u0435\u0440\u043D\u044B\u0439 \u043A\u043B\u044E\u0447 \u0432 ${t.origin}`;case"invalid_union":return"\u041D\u0435\u0432\u0435\u0440\u043D\u044B\u0435 \u0432\u0445\u043E\u0434\u043D\u044B\u0435 \u0434\u0430\u043D\u043D\u044B\u0435";case"invalid_element":return`\u041D\u0435\u0432\u0435\u0440\u043D\u043E\u0435 \u0437\u043D\u0430\u0447\u0435\u043D\u0438\u0435 \u0432 ${t.origin}`;default:return"\u041D\u0435\u0432\u0435\u0440\u043D\u044B\u0435 \u0432\u0445\u043E\u0434\u043D\u044B\u0435 \u0434\u0430\u043D\u043D\u044B\u0435"}}};function sb(){return{localeError:Kw()}}var Yw=()=>{let n={string:{unit:"znakov",verb:"imeti"},file:{unit:"bajtov",verb:"imeti"},array:{unit:"elementov",verb:"imeti"},set:{unit:"elementov",verb:"imeti"}};function e(t){return n[t]??null}let r={regex:"vnos",email:"e-po\u0161tni naslov",url:"URL",emoji:"emoji",uuid:"UUID",uuidv4:"UUIDv4",uuidv6:"UUIDv6",nanoid:"nanoid",guid:"GUID",cuid:"cuid",cuid2:"cuid2",ulid:"ULID",xid:"XID",ksuid:"KSUID",datetime:"ISO datum in \u010Das",date:"ISO datum",time:"ISO \u010Das",duration:"ISO trajanje",ipv4:"IPv4 naslov",ipv6:"IPv6 naslov",cidrv4:"obseg IPv4",cidrv6:"obseg IPv6",base64:"base64 kodiran niz",base64url:"base64url kodiran niz",json_string:"JSON niz",e164:"E.164 \u0161tevilka",jwt:"JWT",template_literal:"vnos"},i={nan:"NaN",number:"\u0161tevilo",array:"tabela"};return t=>{switch(t.code){case"invalid_type":{let o=i[t.expected]??t.expected,s=O(t.input),a=i[s]??s;return/^[A-Z]/.test(t.expected)?`Neveljaven vnos: pri\u010Dakovano instanceof ${t.expected}, prejeto ${a}`:`Neveljaven vnos: pri\u010Dakovano ${o}, prejeto ${a}`}case"invalid_value":return t.values.length===1?`Neveljaven vnos: pri\u010Dakovano ${A(t.values[0])}`:`Neveljavna mo\u017Enost: pri\u010Dakovano eno izmed ${P(t.values,"|")}`;case"too_big":{let o=t.inclusive?"<=":"<",s=e(t.origin);return s?`Preveliko: pri\u010Dakovano, da bo ${t.origin??"vrednost"} imelo ${o}${t.maximum.toString()} ${s.unit??"elementov"}`:`Preveliko: pri\u010Dakovano, da bo ${t.origin??"vrednost"} ${o}${t.maximum.toString()}`}case"too_small":{let o=t.inclusive?">=":">",s=e(t.origin);return s?`Premajhno: pri\u010Dakovano, da bo ${t.origin} imelo ${o}${t.minimum.toString()} ${s.unit}`:`Premajhno: pri\u010Dakovano, da bo ${t.origin} ${o}${t.minimum.toString()}`}case"invalid_format":{let o=t;return o.format==="starts_with"?`Neveljaven niz: mora se za\u010Deti z "${o.prefix}"`:o.format==="ends_with"?`Neveljaven niz: mora se kon\u010Dati z "${o.suffix}"`:o.format==="includes"?`Neveljaven niz: mora vsebovati "${o.includes}"`:o.format==="regex"?`Neveljaven niz: mora ustrezati vzorcu ${o.pattern}`:`Neveljaven ${r[o.format]??t.format}`}case"not_multiple_of":return`Neveljavno \u0161tevilo: mora biti ve\u010Dkratnik ${t.divisor}`;case"unrecognized_keys":return`Neprepoznan${t.keys.length>1?"i klju\u010Di":" klju\u010D"}: ${P(t.keys,", ")}`;case"invalid_key":return`Neveljaven klju\u010D v ${t.origin}`;case"invalid_union":return"Neveljaven vnos";case"invalid_element":return`Neveljavna vrednost v ${t.origin}`;default:return"Neveljaven vnos"}}};function ab(){return{localeError:Yw()}}var Xw=()=>{let n={string:{unit:"tecken",verb:"att ha"},file:{unit:"bytes",verb:"att ha"},array:{unit:"objekt",verb:"att inneh\xE5lla"},set:{unit:"objekt",verb:"att inneh\xE5lla"}};function e(t){return n[t]??null}let r={regex:"regulj\xE4rt uttryck",email:"e-postadress",url:"URL",emoji:"emoji",uuid:"UUID",uuidv4:"UUIDv4",uuidv6:"UUIDv6",nanoid:"nanoid",guid:"GUID",cuid:"cuid",cuid2:"cuid2",ulid:"ULID",xid:"XID",ksuid:"KSUID",datetime:"ISO-datum och tid",date:"ISO-datum",time:"ISO-tid",duration:"ISO-varaktighet",ipv4:"IPv4-intervall",ipv6:"IPv6-intervall",cidrv4:"IPv4-spektrum",cidrv6:"IPv6-spektrum",base64:"base64-kodad str\xE4ng",base64url:"base64url-kodad str\xE4ng",json_string:"JSON-str\xE4ng",e164:"E.164-nummer",jwt:"JWT",template_literal:"mall-literal"},i={nan:"NaN",number:"antal",array:"lista"};return t=>{switch(t.code){case"invalid_type":{let o=i[t.expected]??t.expected,s=O(t.input),a=i[s]??s;return/^[A-Z]/.test(t.expected)?`Ogiltig inmatning: f\xF6rv\xE4ntat instanceof ${t.expected}, fick ${a}`:`Ogiltig inmatning: f\xF6rv\xE4ntat ${o}, fick ${a}`}case"invalid_value":return t.values.length===1?`Ogiltig inmatning: f\xF6rv\xE4ntat ${A(t.values[0])}`:`Ogiltigt val: f\xF6rv\xE4ntade en av ${P(t.values,"|")}`;case"too_big":{let o=t.inclusive?"<=":"<",s=e(t.origin);return s?`F\xF6r stor(t): f\xF6rv\xE4ntade ${t.origin??"v\xE4rdet"} att ha ${o}${t.maximum.toString()} ${s.unit??"element"}`:`F\xF6r stor(t): f\xF6rv\xE4ntat ${t.origin??"v\xE4rdet"} att ha ${o}${t.maximum.toString()}`}case"too_small":{let o=t.inclusive?">=":">",s=e(t.origin);return s?`F\xF6r lite(t): f\xF6rv\xE4ntade ${t.origin??"v\xE4rdet"} att ha ${o}${t.minimum.toString()} ${s.unit}`:`F\xF6r lite(t): f\xF6rv\xE4ntade ${t.origin??"v\xE4rdet"} att ha ${o}${t.minimum.toString()}`}case"invalid_format":{let o=t;return o.format==="starts_with"?`Ogiltig str\xE4ng: m\xE5ste b\xF6rja med "${o.prefix}"`:o.format==="ends_with"?`Ogiltig str\xE4ng: m\xE5ste sluta med "${o.suffix}"`:o.format==="includes"?`Ogiltig str\xE4ng: m\xE5ste inneh\xE5lla "${o.includes}"`:o.format==="regex"?`Ogiltig str\xE4ng: m\xE5ste matcha m\xF6nstret "${o.pattern}"`:`Ogiltig(t) ${r[o.format]??t.format}`}case"not_multiple_of":return`Ogiltigt tal: m\xE5ste vara en multipel av ${t.divisor}`;case"unrecognized_keys":return`${t.keys.length>1?"Ok\xE4nda nycklar":"Ok\xE4nd nyckel"}: ${P(t.keys,", ")}`;case"invalid_key":return`Ogiltig nyckel i ${t.origin??"v\xE4rdet"}`;case"invalid_union":return"Ogiltig input";case"invalid_element":return`Ogiltigt v\xE4rde i ${t.origin??"v\xE4rdet"}`;default:return"Ogiltig input"}}};function cb(){return{localeError:Xw()}}var Qw=()=>{let n={string:{unit:"\u0B8E\u0BB4\u0BC1\u0BA4\u0BCD\u0BA4\u0BC1\u0B95\u0BCD\u0B95\u0BB3\u0BCD",verb:"\u0B95\u0BCA\u0BA3\u0BCD\u0B9F\u0BBF\u0BB0\u0BC1\u0B95\u0BCD\u0B95 \u0BB5\u0BC7\u0BA3\u0BCD\u0B9F\u0BC1\u0BAE\u0BCD"},file:{unit:"\u0BAA\u0BC8\u0B9F\u0BCD\u0B9F\u0BC1\u0B95\u0BB3\u0BCD",verb:"\u0B95\u0BCA\u0BA3\u0BCD\u0B9F\u0BBF\u0BB0\u0BC1\u0B95\u0BCD\u0B95 \u0BB5\u0BC7\u0BA3\u0BCD\u0B9F\u0BC1\u0BAE\u0BCD"},array:{unit:"\u0B89\u0BB1\u0BC1\u0BAA\u0BCD\u0BAA\u0BC1\u0B95\u0BB3\u0BCD",verb:"\u0B95\u0BCA\u0BA3\u0BCD\u0B9F\u0BBF\u0BB0\u0BC1\u0B95\u0BCD\u0B95 \u0BB5\u0BC7\u0BA3\u0BCD\u0B9F\u0BC1\u0BAE\u0BCD"},set:{unit:"\u0B89\u0BB1\u0BC1\u0BAA\u0BCD\u0BAA\u0BC1\u0B95\u0BB3\u0BCD",verb:"\u0B95\u0BCA\u0BA3\u0BCD\u0B9F\u0BBF\u0BB0\u0BC1\u0B95\u0BCD\u0B95 \u0BB5\u0BC7\u0BA3\u0BCD\u0B9F\u0BC1\u0BAE\u0BCD"}};function e(t){return n[t]??null}let r={regex:"\u0B89\u0BB3\u0BCD\u0BB3\u0BC0\u0B9F\u0BC1",email:"\u0BAE\u0BBF\u0BA9\u0BCD\u0BA9\u0B9E\u0BCD\u0B9A\u0BB2\u0BCD \u0BAE\u0BC1\u0B95\u0BB5\u0BB0\u0BBF",url:"URL",emoji:"emoji",uuid:"UUID",uuidv4:"UUIDv4",uuidv6:"UUIDv6",nanoid:"nanoid",guid:"GUID",cuid:"cuid",cuid2:"cuid2",ulid:"ULID",xid:"XID",ksuid:"KSUID",datetime:"ISO \u0BA4\u0BC7\u0BA4\u0BBF \u0BA8\u0BC7\u0BB0\u0BAE\u0BCD",date:"ISO \u0BA4\u0BC7\u0BA4\u0BBF",time:"ISO \u0BA8\u0BC7\u0BB0\u0BAE\u0BCD",duration:"ISO \u0B95\u0BBE\u0BB2 \u0B85\u0BB3\u0BB5\u0BC1",ipv4:"IPv4 \u0BAE\u0BC1\u0B95\u0BB5\u0BB0\u0BBF",ipv6:"IPv6 \u0BAE\u0BC1\u0B95\u0BB5\u0BB0\u0BBF",cidrv4:"IPv4 \u0BB5\u0BB0\u0BAE\u0BCD\u0BAA\u0BC1",cidrv6:"IPv6 \u0BB5\u0BB0\u0BAE\u0BCD\u0BAA\u0BC1",base64:"base64-encoded \u0B9A\u0BB0\u0BAE\u0BCD",base64url:"base64url-encoded \u0B9A\u0BB0\u0BAE\u0BCD",json_string:"JSON \u0B9A\u0BB0\u0BAE\u0BCD",e164:"E.164 \u0B8E\u0BA3\u0BCD",jwt:"JWT",template_literal:"input"},i={nan:"NaN",number:"\u0B8E\u0BA3\u0BCD",array:"\u0B85\u0BA3\u0BBF",null:"\u0BB5\u0BC6\u0BB1\u0BC1\u0BAE\u0BC8"};return t=>{switch(t.code){case"invalid_type":{let o=i[t.expected]??t.expected,s=O(t.input),a=i[s]??s;return/^[A-Z]/.test(t.expected)?`\u0BA4\u0BB5\u0BB1\u0BBE\u0BA9 \u0B89\u0BB3\u0BCD\u0BB3\u0BC0\u0B9F\u0BC1: \u0B8E\u0BA4\u0BBF\u0BB0\u0BCD\u0BAA\u0BBE\u0BB0\u0BCD\u0B95\u0BCD\u0B95\u0BAA\u0BCD\u0BAA\u0B9F\u0BCD\u0B9F\u0BA4\u0BC1 instanceof ${t.expected}, \u0BAA\u0BC6\u0BB1\u0BAA\u0BCD\u0BAA\u0B9F\u0BCD\u0B9F\u0BA4\u0BC1 ${a}`:`\u0BA4\u0BB5\u0BB1\u0BBE\u0BA9 \u0B89\u0BB3\u0BCD\u0BB3\u0BC0\u0B9F\u0BC1: \u0B8E\u0BA4\u0BBF\u0BB0\u0BCD\u0BAA\u0BBE\u0BB0\u0BCD\u0B95\u0BCD\u0B95\u0BAA\u0BCD\u0BAA\u0B9F\u0BCD\u0B9F\u0BA4\u0BC1 ${o}, \u0BAA\u0BC6\u0BB1\u0BAA\u0BCD\u0BAA\u0B9F\u0BCD\u0B9F\u0BA4\u0BC1 ${a}`}case"invalid_value":return t.values.length===1?`\u0BA4\u0BB5\u0BB1\u0BBE\u0BA9 \u0B89\u0BB3\u0BCD\u0BB3\u0BC0\u0B9F\u0BC1: \u0B8E\u0BA4\u0BBF\u0BB0\u0BCD\u0BAA\u0BBE\u0BB0\u0BCD\u0B95\u0BCD\u0B95\u0BAA\u0BCD\u0BAA\u0B9F\u0BCD\u0B9F\u0BA4\u0BC1 ${A(t.values[0])}`:`\u0BA4\u0BB5\u0BB1\u0BBE\u0BA9 \u0BB5\u0BBF\u0BB0\u0BC1\u0BAA\u0BCD\u0BAA\u0BAE\u0BCD: \u0B8E\u0BA4\u0BBF\u0BB0\u0BCD\u0BAA\u0BBE\u0BB0\u0BCD\u0B95\u0BCD\u0B95\u0BAA\u0BCD\u0BAA\u0B9F\u0BCD\u0B9F\u0BA4\u0BC1 ${P(t.values,"|")} \u0B87\u0BB2\u0BCD \u0B92\u0BA9\u0BCD\u0BB1\u0BC1`;case"too_big":{let o=t.inclusive?"<=":"<",s=e(t.origin);return s?`\u0BAE\u0BBF\u0B95 \u0BAA\u0BC6\u0BB0\u0BBF\u0BAF\u0BA4\u0BC1: \u0B8E\u0BA4\u0BBF\u0BB0\u0BCD\u0BAA\u0BBE\u0BB0\u0BCD\u0B95\u0BCD\u0B95\u0BAA\u0BCD\u0BAA\u0B9F\u0BCD\u0B9F\u0BA4\u0BC1 ${t.origin??"\u0BAE\u0BA4\u0BBF\u0BAA\u0BCD\u0BAA\u0BC1"} ${o}${t.maximum.toString()} ${s.unit??"\u0B89\u0BB1\u0BC1\u0BAA\u0BCD\u0BAA\u0BC1\u0B95\u0BB3\u0BCD"} \u0B86\u0B95 \u0B87\u0BB0\u0BC1\u0B95\u0BCD\u0B95 \u0BB5\u0BC7\u0BA3\u0BCD\u0B9F\u0BC1\u0BAE\u0BCD`:`\u0BAE\u0BBF\u0B95 \u0BAA\u0BC6\u0BB0\u0BBF\u0BAF\u0BA4\u0BC1: \u0B8E\u0BA4\u0BBF\u0BB0\u0BCD\u0BAA\u0BBE\u0BB0\u0BCD\u0B95\u0BCD\u0B95\u0BAA\u0BCD\u0BAA\u0B9F\u0BCD\u0B9F\u0BA4\u0BC1 ${t.origin??"\u0BAE\u0BA4\u0BBF\u0BAA\u0BCD\u0BAA\u0BC1"} ${o}${t.maximum.toString()} \u0B86\u0B95 \u0B87\u0BB0\u0BC1\u0B95\u0BCD\u0B95 \u0BB5\u0BC7\u0BA3\u0BCD\u0B9F\u0BC1\u0BAE\u0BCD`}case"too_small":{let o=t.inclusive?">=":">",s=e(t.origin);return s?`\u0BAE\u0BBF\u0B95\u0B9A\u0BCD \u0B9A\u0BBF\u0BB1\u0BBF\u0BAF\u0BA4\u0BC1: \u0B8E\u0BA4\u0BBF\u0BB0\u0BCD\u0BAA\u0BBE\u0BB0\u0BCD\u0B95\u0BCD\u0B95\u0BAA\u0BCD\u0BAA\u0B9F\u0BCD\u0B9F\u0BA4\u0BC1 ${t.origin} ${o}${t.minimum.toString()} ${s.unit} \u0B86\u0B95 \u0B87\u0BB0\u0BC1\u0B95\u0BCD\u0B95 \u0BB5\u0BC7\u0BA3\u0BCD\u0B9F\u0BC1\u0BAE\u0BCD`:`\u0BAE\u0BBF\u0B95\u0B9A\u0BCD \u0B9A\u0BBF\u0BB1\u0BBF\u0BAF\u0BA4\u0BC1: \u0B8E\u0BA4\u0BBF\u0BB0\u0BCD\u0BAA\u0BBE\u0BB0\u0BCD\u0B95\u0BCD\u0B95\u0BAA\u0BCD\u0BAA\u0B9F\u0BCD\u0B9F\u0BA4\u0BC1 ${t.origin} ${o}${t.minimum.toString()} \u0B86\u0B95 \u0B87\u0BB0\u0BC1\u0B95\u0BCD\u0B95 \u0BB5\u0BC7\u0BA3\u0BCD\u0B9F\u0BC1\u0BAE\u0BCD`}case"invalid_format":{let o=t;return o.format==="starts_with"?`\u0BA4\u0BB5\u0BB1\u0BBE\u0BA9 \u0B9A\u0BB0\u0BAE\u0BCD: "${o.prefix}" \u0B87\u0BB2\u0BCD \u0BA4\u0BCA\u0B9F\u0B99\u0BCD\u0B95 \u0BB5\u0BC7\u0BA3\u0BCD\u0B9F\u0BC1\u0BAE\u0BCD`:o.format==="ends_with"?`\u0BA4\u0BB5\u0BB1\u0BBE\u0BA9 \u0B9A\u0BB0\u0BAE\u0BCD: "${o.suffix}" \u0B87\u0BB2\u0BCD \u0BAE\u0BC1\u0B9F\u0BBF\u0BB5\u0B9F\u0BC8\u0BAF \u0BB5\u0BC7\u0BA3\u0BCD\u0B9F\u0BC1\u0BAE\u0BCD`:o.format==="includes"?`\u0BA4\u0BB5\u0BB1\u0BBE\u0BA9 \u0B9A\u0BB0\u0BAE\u0BCD: "${o.includes}" \u0B90 \u0B89\u0BB3\u0BCD\u0BB3\u0B9F\u0B95\u0BCD\u0B95 \u0BB5\u0BC7\u0BA3\u0BCD\u0B9F\u0BC1\u0BAE\u0BCD`:o.format==="regex"?`\u0BA4\u0BB5\u0BB1\u0BBE\u0BA9 \u0B9A\u0BB0\u0BAE\u0BCD: ${o.pattern} \u0BAE\u0BC1\u0BB1\u0BC8\u0BAA\u0BBE\u0B9F\u0BCD\u0B9F\u0BC1\u0B9F\u0BA9\u0BCD \u0BAA\u0BCA\u0BB0\u0BC1\u0BA8\u0BCD\u0BA4 \u0BB5\u0BC7\u0BA3\u0BCD\u0B9F\u0BC1\u0BAE\u0BCD`:`\u0BA4\u0BB5\u0BB1\u0BBE\u0BA9 ${r[o.format]??t.format}`}case"not_multiple_of":return`\u0BA4\u0BB5\u0BB1\u0BBE\u0BA9 \u0B8E\u0BA3\u0BCD: ${t.divisor} \u0B87\u0BA9\u0BCD \u0BAA\u0BB2\u0BAE\u0BBE\u0B95 \u0B87\u0BB0\u0BC1\u0B95\u0BCD\u0B95 \u0BB5\u0BC7\u0BA3\u0BCD\u0B9F\u0BC1\u0BAE\u0BCD`;case"unrecognized_keys":return`\u0B85\u0B9F\u0BC8\u0BAF\u0BBE\u0BB3\u0BAE\u0BCD \u0BA4\u0BC6\u0BB0\u0BBF\u0BAF\u0BBE\u0BA4 \u0BB5\u0BBF\u0B9A\u0BC8${t.keys.length>1?"\u0B95\u0BB3\u0BCD":""}: ${P(t.keys,", ")}`;case"invalid_key":return`${t.origin} \u0B87\u0BB2\u0BCD \u0BA4\u0BB5\u0BB1\u0BBE\u0BA9 \u0BB5\u0BBF\u0B9A\u0BC8`;case"invalid_union":return"\u0BA4\u0BB5\u0BB1\u0BBE\u0BA9 \u0B89\u0BB3\u0BCD\u0BB3\u0BC0\u0B9F\u0BC1";case"invalid_element":return`${t.origin} \u0B87\u0BB2\u0BCD \u0BA4\u0BB5\u0BB1\u0BBE\u0BA9 \u0BAE\u0BA4\u0BBF\u0BAA\u0BCD\u0BAA\u0BC1`;default:return"\u0BA4\u0BB5\u0BB1\u0BBE\u0BA9 \u0B89\u0BB3\u0BCD\u0BB3\u0BC0\u0B9F\u0BC1"}}};function lb(){return{localeError:Qw()}}var ek=()=>{let n={string:{unit:"\u0E15\u0E31\u0E27\u0E2D\u0E31\u0E01\u0E29\u0E23",verb:"\u0E04\u0E27\u0E23\u0E21\u0E35"},file:{unit:"\u0E44\u0E1A\u0E15\u0E4C",verb:"\u0E04\u0E27\u0E23\u0E21\u0E35"},array:{unit:"\u0E23\u0E32\u0E22\u0E01\u0E32\u0E23",verb:"\u0E04\u0E27\u0E23\u0E21\u0E35"},set:{unit:"\u0E23\u0E32\u0E22\u0E01\u0E32\u0E23",verb:"\u0E04\u0E27\u0E23\u0E21\u0E35"}};function e(t){return n[t]??null}let r={regex:"\u0E02\u0E49\u0E2D\u0E21\u0E39\u0E25\u0E17\u0E35\u0E48\u0E1B\u0E49\u0E2D\u0E19",email:"\u0E17\u0E35\u0E48\u0E2D\u0E22\u0E39\u0E48\u0E2D\u0E35\u0E40\u0E21\u0E25",url:"URL",emoji:"\u0E2D\u0E34\u0E42\u0E21\u0E08\u0E34",uuid:"UUID",uuidv4:"UUIDv4",uuidv6:"UUIDv6",nanoid:"nanoid",guid:"GUID",cuid:"cuid",cuid2:"cuid2",ulid:"ULID",xid:"XID",ksuid:"KSUID",datetime:"\u0E27\u0E31\u0E19\u0E17\u0E35\u0E48\u0E40\u0E27\u0E25\u0E32\u0E41\u0E1A\u0E1A ISO",date:"\u0E27\u0E31\u0E19\u0E17\u0E35\u0E48\u0E41\u0E1A\u0E1A ISO",time:"\u0E40\u0E27\u0E25\u0E32\u0E41\u0E1A\u0E1A ISO",duration:"\u0E0A\u0E48\u0E27\u0E07\u0E40\u0E27\u0E25\u0E32\u0E41\u0E1A\u0E1A ISO",ipv4:"\u0E17\u0E35\u0E48\u0E2D\u0E22\u0E39\u0E48 IPv4",ipv6:"\u0E17\u0E35\u0E48\u0E2D\u0E22\u0E39\u0E48 IPv6",cidrv4:"\u0E0A\u0E48\u0E27\u0E07 IP \u0E41\u0E1A\u0E1A IPv4",cidrv6:"\u0E0A\u0E48\u0E27\u0E07 IP \u0E41\u0E1A\u0E1A IPv6",base64:"\u0E02\u0E49\u0E2D\u0E04\u0E27\u0E32\u0E21\u0E41\u0E1A\u0E1A Base64",base64url:"\u0E02\u0E49\u0E2D\u0E04\u0E27\u0E32\u0E21\u0E41\u0E1A\u0E1A Base64 \u0E2A\u0E33\u0E2B\u0E23\u0E31\u0E1A URL",json_string:"\u0E02\u0E49\u0E2D\u0E04\u0E27\u0E32\u0E21\u0E41\u0E1A\u0E1A JSON",e164:"\u0E40\u0E1A\u0E2D\u0E23\u0E4C\u0E42\u0E17\u0E23\u0E28\u0E31\u0E1E\u0E17\u0E4C\u0E23\u0E30\u0E2B\u0E27\u0E48\u0E32\u0E07\u0E1B\u0E23\u0E30\u0E40\u0E17\u0E28 (E.164)",jwt:"\u0E42\u0E17\u0E40\u0E04\u0E19 JWT",template_literal:"\u0E02\u0E49\u0E2D\u0E21\u0E39\u0E25\u0E17\u0E35\u0E48\u0E1B\u0E49\u0E2D\u0E19"},i={nan:"NaN",number:"\u0E15\u0E31\u0E27\u0E40\u0E25\u0E02",array:"\u0E2D\u0E32\u0E23\u0E4C\u0E40\u0E23\u0E22\u0E4C (Array)",null:"\u0E44\u0E21\u0E48\u0E21\u0E35\u0E04\u0E48\u0E32 (null)"};return t=>{switch(t.code){case"invalid_type":{let o=i[t.expected]??t.expected,s=O(t.input),a=i[s]??s;return/^[A-Z]/.test(t.expected)?`\u0E1B\u0E23\u0E30\u0E40\u0E20\u0E17\u0E02\u0E49\u0E2D\u0E21\u0E39\u0E25\u0E44\u0E21\u0E48\u0E16\u0E39\u0E01\u0E15\u0E49\u0E2D\u0E07: \u0E04\u0E27\u0E23\u0E40\u0E1B\u0E47\u0E19 instanceof ${t.expected} \u0E41\u0E15\u0E48\u0E44\u0E14\u0E49\u0E23\u0E31\u0E1A ${a}`:`\u0E1B\u0E23\u0E30\u0E40\u0E20\u0E17\u0E02\u0E49\u0E2D\u0E21\u0E39\u0E25\u0E44\u0E21\u0E48\u0E16\u0E39\u0E01\u0E15\u0E49\u0E2D\u0E07: \u0E04\u0E27\u0E23\u0E40\u0E1B\u0E47\u0E19 ${o} \u0E41\u0E15\u0E48\u0E44\u0E14\u0E49\u0E23\u0E31\u0E1A ${a}`}case"invalid_value":return t.values.length===1?`\u0E04\u0E48\u0E32\u0E44\u0E21\u0E48\u0E16\u0E39\u0E01\u0E15\u0E49\u0E2D\u0E07: \u0E04\u0E27\u0E23\u0E40\u0E1B\u0E47\u0E19 ${A(t.values[0])}`:`\u0E15\u0E31\u0E27\u0E40\u0E25\u0E37\u0E2D\u0E01\u0E44\u0E21\u0E48\u0E16\u0E39\u0E01\u0E15\u0E49\u0E2D\u0E07: \u0E04\u0E27\u0E23\u0E40\u0E1B\u0E47\u0E19\u0E2B\u0E19\u0E36\u0E48\u0E07\u0E43\u0E19 ${P(t.values,"|")}`;case"too_big":{let o=t.inclusive?"\u0E44\u0E21\u0E48\u0E40\u0E01\u0E34\u0E19":"\u0E19\u0E49\u0E2D\u0E22\u0E01\u0E27\u0E48\u0E32",s=e(t.origin);return s?`\u0E40\u0E01\u0E34\u0E19\u0E01\u0E33\u0E2B\u0E19\u0E14: ${t.origin??"\u0E04\u0E48\u0E32"} \u0E04\u0E27\u0E23\u0E21\u0E35${o} ${t.maximum.toString()} ${s.unit??"\u0E23\u0E32\u0E22\u0E01\u0E32\u0E23"}`:`\u0E40\u0E01\u0E34\u0E19\u0E01\u0E33\u0E2B\u0E19\u0E14: ${t.origin??"\u0E04\u0E48\u0E32"} \u0E04\u0E27\u0E23\u0E21\u0E35${o} ${t.maximum.toString()}`}case"too_small":{let o=t.inclusive?"\u0E2D\u0E22\u0E48\u0E32\u0E07\u0E19\u0E49\u0E2D\u0E22":"\u0E21\u0E32\u0E01\u0E01\u0E27\u0E48\u0E32",s=e(t.origin);return s?`\u0E19\u0E49\u0E2D\u0E22\u0E01\u0E27\u0E48\u0E32\u0E01\u0E33\u0E2B\u0E19\u0E14: ${t.origin} \u0E04\u0E27\u0E23\u0E21\u0E35${o} ${t.minimum.toString()} ${s.unit}`:`\u0E19\u0E49\u0E2D\u0E22\u0E01\u0E27\u0E48\u0E32\u0E01\u0E33\u0E2B\u0E19\u0E14: ${t.origin} \u0E04\u0E27\u0E23\u0E21\u0E35${o} ${t.minimum.toString()}`}case"invalid_format":{let o=t;return o.format==="starts_with"?`\u0E23\u0E39\u0E1B\u0E41\u0E1A\u0E1A\u0E44\u0E21\u0E48\u0E16\u0E39\u0E01\u0E15\u0E49\u0E2D\u0E07: \u0E02\u0E49\u0E2D\u0E04\u0E27\u0E32\u0E21\u0E15\u0E49\u0E2D\u0E07\u0E02\u0E36\u0E49\u0E19\u0E15\u0E49\u0E19\u0E14\u0E49\u0E27\u0E22 "${o.prefix}"`:o.format==="ends_with"?`\u0E23\u0E39\u0E1B\u0E41\u0E1A\u0E1A\u0E44\u0E21\u0E48\u0E16\u0E39\u0E01\u0E15\u0E49\u0E2D\u0E07: \u0E02\u0E49\u0E2D\u0E04\u0E27\u0E32\u0E21\u0E15\u0E49\u0E2D\u0E07\u0E25\u0E07\u0E17\u0E49\u0E32\u0E22\u0E14\u0E49\u0E27\u0E22 "${o.suffix}"`:o.format==="includes"?`\u0E23\u0E39\u0E1B\u0E41\u0E1A\u0E1A\u0E44\u0E21\u0E48\u0E16\u0E39\u0E01\u0E15\u0E49\u0E2D\u0E07: \u0E02\u0E49\u0E2D\u0E04\u0E27\u0E32\u0E21\u0E15\u0E49\u0E2D\u0E07\u0E21\u0E35 "${o.includes}" \u0E2D\u0E22\u0E39\u0E48\u0E43\u0E19\u0E02\u0E49\u0E2D\u0E04\u0E27\u0E32\u0E21`:o.format==="regex"?`\u0E23\u0E39\u0E1B\u0E41\u0E1A\u0E1A\u0E44\u0E21\u0E48\u0E16\u0E39\u0E01\u0E15\u0E49\u0E2D\u0E07: \u0E15\u0E49\u0E2D\u0E07\u0E15\u0E23\u0E07\u0E01\u0E31\u0E1A\u0E23\u0E39\u0E1B\u0E41\u0E1A\u0E1A\u0E17\u0E35\u0E48\u0E01\u0E33\u0E2B\u0E19\u0E14 ${o.pattern}`:`\u0E23\u0E39\u0E1B\u0E41\u0E1A\u0E1A\u0E44\u0E21\u0E48\u0E16\u0E39\u0E01\u0E15\u0E49\u0E2D\u0E07: ${r[o.format]??t.format}`}case"not_multiple_of":return`\u0E15\u0E31\u0E27\u0E40\u0E25\u0E02\u0E44\u0E21\u0E48\u0E16\u0E39\u0E01\u0E15\u0E49\u0E2D\u0E07: \u0E15\u0E49\u0E2D\u0E07\u0E40\u0E1B\u0E47\u0E19\u0E08\u0E33\u0E19\u0E27\u0E19\u0E17\u0E35\u0E48\u0E2B\u0E32\u0E23\u0E14\u0E49\u0E27\u0E22 ${t.divisor} \u0E44\u0E14\u0E49\u0E25\u0E07\u0E15\u0E31\u0E27`;case"unrecognized_keys":return`\u0E1E\u0E1A\u0E04\u0E35\u0E22\u0E4C\u0E17\u0E35\u0E48\u0E44\u0E21\u0E48\u0E23\u0E39\u0E49\u0E08\u0E31\u0E01: ${P(t.keys,", ")}`;case"invalid_key":return`\u0E04\u0E35\u0E22\u0E4C\u0E44\u0E21\u0E48\u0E16\u0E39\u0E01\u0E15\u0E49\u0E2D\u0E07\u0E43\u0E19 ${t.origin}`;case"invalid_union":return"\u0E02\u0E49\u0E2D\u0E21\u0E39\u0E25\u0E44\u0E21\u0E48\u0E16\u0E39\u0E01\u0E15\u0E49\u0E2D\u0E07: \u0E44\u0E21\u0E48\u0E15\u0E23\u0E07\u0E01\u0E31\u0E1A\u0E23\u0E39\u0E1B\u0E41\u0E1A\u0E1A\u0E22\u0E39\u0E40\u0E19\u0E35\u0E22\u0E19\u0E17\u0E35\u0E48\u0E01\u0E33\u0E2B\u0E19\u0E14\u0E44\u0E27\u0E49";case"invalid_element":return`\u0E02\u0E49\u0E2D\u0E21\u0E39\u0E25\u0E44\u0E21\u0E48\u0E16\u0E39\u0E01\u0E15\u0E49\u0E2D\u0E07\u0E43\u0E19 ${t.origin}`;default:return"\u0E02\u0E49\u0E2D\u0E21\u0E39\u0E25\u0E44\u0E21\u0E48\u0E16\u0E39\u0E01\u0E15\u0E49\u0E2D\u0E07"}}};function ub(){return{localeError:ek()}}var tk=()=>{let n={string:{unit:"karakter",verb:"olmal\u0131"},file:{unit:"bayt",verb:"olmal\u0131"},array:{unit:"\xF6\u011Fe",verb:"olmal\u0131"},set:{unit:"\xF6\u011Fe",verb:"olmal\u0131"}};function e(t){return n[t]??null}let r={regex:"girdi",email:"e-posta adresi",url:"URL",emoji:"emoji",uuid:"UUID",uuidv4:"UUIDv4",uuidv6:"UUIDv6",nanoid:"nanoid",guid:"GUID",cuid:"cuid",cuid2:"cuid2",ulid:"ULID",xid:"XID",ksuid:"KSUID",datetime:"ISO tarih ve saat",date:"ISO tarih",time:"ISO saat",duration:"ISO s\xFCre",ipv4:"IPv4 adresi",ipv6:"IPv6 adresi",cidrv4:"IPv4 aral\u0131\u011F\u0131",cidrv6:"IPv6 aral\u0131\u011F\u0131",base64:"base64 ile \u015Fifrelenmi\u015F metin",base64url:"base64url ile \u015Fifrelenmi\u015F metin",json_string:"JSON dizesi",e164:"E.164 say\u0131s\u0131",jwt:"JWT",template_literal:"\u015Eablon dizesi"},i={nan:"NaN"};return t=>{switch(t.code){case"invalid_type":{let o=i[t.expected]??t.expected,s=O(t.input),a=i[s]??s;return/^[A-Z]/.test(t.expected)?`Ge\xE7ersiz de\u011Fer: beklenen instanceof ${t.expected}, al\u0131nan ${a}`:`Ge\xE7ersiz de\u011Fer: beklenen ${o}, al\u0131nan ${a}`}case"invalid_value":return t.values.length===1?`Ge\xE7ersiz de\u011Fer: beklenen ${A(t.values[0])}`:`Ge\xE7ersiz se\xE7enek: a\u015Fa\u011F\u0131dakilerden biri olmal\u0131: ${P(t.values,"|")}`;case"too_big":{let o=t.inclusive?"<=":"<",s=e(t.origin);return s?`\xC7ok b\xFCy\xFCk: beklenen ${t.origin??"de\u011Fer"} ${o}${t.maximum.toString()} ${s.unit??"\xF6\u011Fe"}`:`\xC7ok b\xFCy\xFCk: beklenen ${t.origin??"de\u011Fer"} ${o}${t.maximum.toString()}`}case"too_small":{let o=t.inclusive?">=":">",s=e(t.origin);return s?`\xC7ok k\xFC\xE7\xFCk: beklenen ${t.origin} ${o}${t.minimum.toString()} ${s.unit}`:`\xC7ok k\xFC\xE7\xFCk: beklenen ${t.origin} ${o}${t.minimum.toString()}`}case"invalid_format":{let o=t;return o.format==="starts_with"?`Ge\xE7ersiz metin: "${o.prefix}" ile ba\u015Flamal\u0131`:o.format==="ends_with"?`Ge\xE7ersiz metin: "${o.suffix}" ile bitmeli`:o.format==="includes"?`Ge\xE7ersiz metin: "${o.includes}" i\xE7ermeli`:o.format==="regex"?`Ge\xE7ersiz metin: ${o.pattern} desenine uymal\u0131`:`Ge\xE7ersiz ${r[o.format]??t.format}`}case"not_multiple_of":return`Ge\xE7ersiz say\u0131: ${t.divisor} ile tam b\xF6l\xFCnebilmeli`;case"unrecognized_keys":return`Tan\u0131nmayan anahtar${t.keys.length>1?"lar":""}: ${P(t.keys,", ")}`;case"invalid_key":return`${t.origin} i\xE7inde ge\xE7ersiz anahtar`;case"invalid_union":return"Ge\xE7ersiz de\u011Fer";case"invalid_element":return`${t.origin} i\xE7inde ge\xE7ersiz de\u011Fer`;default:return"Ge\xE7ersiz de\u011Fer"}}};function db(){return{localeError:tk()}}var nk=()=>{let n={string:{unit:"\u0441\u0438\u043C\u0432\u043E\u043B\u0456\u0432",verb:"\u043C\u0430\u0442\u0438\u043C\u0435"},file:{unit:"\u0431\u0430\u0439\u0442\u0456\u0432",verb:"\u043C\u0430\u0442\u0438\u043C\u0435"},array:{unit:"\u0435\u043B\u0435\u043C\u0435\u043D\u0442\u0456\u0432",verb:"\u043C\u0430\u0442\u0438\u043C\u0435"},set:{unit:"\u0435\u043B\u0435\u043C\u0435\u043D\u0442\u0456\u0432",verb:"\u043C\u0430\u0442\u0438\u043C\u0435"}};function e(t){return n[t]??null}let r={regex:"\u0432\u0445\u0456\u0434\u043D\u0456 \u0434\u0430\u043D\u0456",email:"\u0430\u0434\u0440\u0435\u0441\u0430 \u0435\u043B\u0435\u043A\u0442\u0440\u043E\u043D\u043D\u043E\u0457 \u043F\u043E\u0448\u0442\u0438",url:"URL",emoji:"\u0435\u043C\u043E\u0434\u0437\u0456",uuid:"UUID",uuidv4:"UUIDv4",uuidv6:"UUIDv6",nanoid:"nanoid",guid:"GUID",cuid:"cuid",cuid2:"cuid2",ulid:"ULID",xid:"XID",ksuid:"KSUID",datetime:"\u0434\u0430\u0442\u0430 \u0442\u0430 \u0447\u0430\u0441 ISO",date:"\u0434\u0430\u0442\u0430 ISO",time:"\u0447\u0430\u0441 ISO",duration:"\u0442\u0440\u0438\u0432\u0430\u043B\u0456\u0441\u0442\u044C ISO",ipv4:"\u0430\u0434\u0440\u0435\u0441\u0430 IPv4",ipv6:"\u0430\u0434\u0440\u0435\u0441\u0430 IPv6",cidrv4:"\u0434\u0456\u0430\u043F\u0430\u0437\u043E\u043D IPv4",cidrv6:"\u0434\u0456\u0430\u043F\u0430\u0437\u043E\u043D IPv6",base64:"\u0440\u044F\u0434\u043E\u043A \u0443 \u043A\u043E\u0434\u0443\u0432\u0430\u043D\u043D\u0456 base64",base64url:"\u0440\u044F\u0434\u043E\u043A \u0443 \u043A\u043E\u0434\u0443\u0432\u0430\u043D\u043D\u0456 base64url",json_string:"\u0440\u044F\u0434\u043E\u043A JSON",e164:"\u043D\u043E\u043C\u0435\u0440 E.164",jwt:"JWT",template_literal:"\u0432\u0445\u0456\u0434\u043D\u0456 \u0434\u0430\u043D\u0456"},i={nan:"NaN",number:"\u0447\u0438\u0441\u043B\u043E",array:"\u043C\u0430\u0441\u0438\u0432"};return t=>{switch(t.code){case"invalid_type":{let o=i[t.expected]??t.expected,s=O(t.input),a=i[s]??s;return/^[A-Z]/.test(t.expected)?`\u041D\u0435\u043F\u0440\u0430\u0432\u0438\u043B\u044C\u043D\u0456 \u0432\u0445\u0456\u0434\u043D\u0456 \u0434\u0430\u043D\u0456: \u043E\u0447\u0456\u043A\u0443\u0454\u0442\u044C\u0441\u044F instanceof ${t.expected}, \u043E\u0442\u0440\u0438\u043C\u0430\u043D\u043E ${a}`:`\u041D\u0435\u043F\u0440\u0430\u0432\u0438\u043B\u044C\u043D\u0456 \u0432\u0445\u0456\u0434\u043D\u0456 \u0434\u0430\u043D\u0456: \u043E\u0447\u0456\u043A\u0443\u0454\u0442\u044C\u0441\u044F ${o}, \u043E\u0442\u0440\u0438\u043C\u0430\u043D\u043E ${a}`}case"invalid_value":return t.values.length===1?`\u041D\u0435\u043F\u0440\u0430\u0432\u0438\u043B\u044C\u043D\u0456 \u0432\u0445\u0456\u0434\u043D\u0456 \u0434\u0430\u043D\u0456: \u043E\u0447\u0456\u043A\u0443\u0454\u0442\u044C\u0441\u044F ${A(t.values[0])}`:`\u041D\u0435\u043F\u0440\u0430\u0432\u0438\u043B\u044C\u043D\u0430 \u043E\u043F\u0446\u0456\u044F: \u043E\u0447\u0456\u043A\u0443\u0454\u0442\u044C\u0441\u044F \u043E\u0434\u043D\u0435 \u0437 ${P(t.values,"|")}`;case"too_big":{let o=t.inclusive?"<=":"<",s=e(t.origin);return s?`\u0417\u0430\u043D\u0430\u0434\u0442\u043E \u0432\u0435\u043B\u0438\u043A\u0435: \u043E\u0447\u0456\u043A\u0443\u0454\u0442\u044C\u0441\u044F, \u0449\u043E ${t.origin??"\u0437\u043D\u0430\u0447\u0435\u043D\u043D\u044F"} ${s.verb} ${o}${t.maximum.toString()} ${s.unit??"\u0435\u043B\u0435\u043C\u0435\u043D\u0442\u0456\u0432"}`:`\u0417\u0430\u043D\u0430\u0434\u0442\u043E \u0432\u0435\u043B\u0438\u043A\u0435: \u043E\u0447\u0456\u043A\u0443\u0454\u0442\u044C\u0441\u044F, \u0449\u043E ${t.origin??"\u0437\u043D\u0430\u0447\u0435\u043D\u043D\u044F"} \u0431\u0443\u0434\u0435 ${o}${t.maximum.toString()}`}case"too_small":{let o=t.inclusive?">=":">",s=e(t.origin);return s?`\u0417\u0430\u043D\u0430\u0434\u0442\u043E \u043C\u0430\u043B\u0435: \u043E\u0447\u0456\u043A\u0443\u0454\u0442\u044C\u0441\u044F, \u0449\u043E ${t.origin} ${s.verb} ${o}${t.minimum.toString()} ${s.unit}`:`\u0417\u0430\u043D\u0430\u0434\u0442\u043E \u043C\u0430\u043B\u0435: \u043E\u0447\u0456\u043A\u0443\u0454\u0442\u044C\u0441\u044F, \u0449\u043E ${t.origin} \u0431\u0443\u0434\u0435 ${o}${t.minimum.toString()}`}case"invalid_format":{let o=t;return o.format==="starts_with"?`\u041D\u0435\u043F\u0440\u0430\u0432\u0438\u043B\u044C\u043D\u0438\u0439 \u0440\u044F\u0434\u043E\u043A: \u043F\u043E\u0432\u0438\u043D\u0435\u043D \u043F\u043E\u0447\u0438\u043D\u0430\u0442\u0438\u0441\u044F \u0437 "${o.prefix}"`:o.format==="ends_with"?`\u041D\u0435\u043F\u0440\u0430\u0432\u0438\u043B\u044C\u043D\u0438\u0439 \u0440\u044F\u0434\u043E\u043A: \u043F\u043E\u0432\u0438\u043D\u0435\u043D \u0437\u0430\u043A\u0456\u043D\u0447\u0443\u0432\u0430\u0442\u0438\u0441\u044F \u043D\u0430 "${o.suffix}"`:o.format==="includes"?`\u041D\u0435\u043F\u0440\u0430\u0432\u0438\u043B\u044C\u043D\u0438\u0439 \u0440\u044F\u0434\u043E\u043A: \u043F\u043E\u0432\u0438\u043D\u0435\u043D \u043C\u0456\u0441\u0442\u0438\u0442\u0438 "${o.includes}"`:o.format==="regex"?`\u041D\u0435\u043F\u0440\u0430\u0432\u0438\u043B\u044C\u043D\u0438\u0439 \u0440\u044F\u0434\u043E\u043A: \u043F\u043E\u0432\u0438\u043D\u0435\u043D \u0432\u0456\u0434\u043F\u043E\u0432\u0456\u0434\u0430\u0442\u0438 \u0448\u0430\u0431\u043B\u043E\u043D\u0443 ${o.pattern}`:`\u041D\u0435\u043F\u0440\u0430\u0432\u0438\u043B\u044C\u043D\u0438\u0439 ${r[o.format]??t.format}`}case"not_multiple_of":return`\u041D\u0435\u043F\u0440\u0430\u0432\u0438\u043B\u044C\u043D\u0435 \u0447\u0438\u0441\u043B\u043E: \u043F\u043E\u0432\u0438\u043D\u043D\u043E \u0431\u0443\u0442\u0438 \u043A\u0440\u0430\u0442\u043D\u0438\u043C ${t.divisor}`;case"unrecognized_keys":return`\u041D\u0435\u0440\u043E\u0437\u043F\u0456\u0437\u043D\u0430\u043D\u0438\u0439 \u043A\u043B\u044E\u0447${t.keys.length>1?"\u0456":""}: ${P(t.keys,", ")}`;case"invalid_key":return`\u041D\u0435\u043F\u0440\u0430\u0432\u0438\u043B\u044C\u043D\u0438\u0439 \u043A\u043B\u044E\u0447 \u0443 ${t.origin}`;case"invalid_union":return"\u041D\u0435\u043F\u0440\u0430\u0432\u0438\u043B\u044C\u043D\u0456 \u0432\u0445\u0456\u0434\u043D\u0456 \u0434\u0430\u043D\u0456";case"invalid_element":return`\u041D\u0435\u043F\u0440\u0430\u0432\u0438\u043B\u044C\u043D\u0435 \u0437\u043D\u0430\u0447\u0435\u043D\u043D\u044F \u0443 ${t.origin}`;default:return"\u041D\u0435\u043F\u0440\u0430\u0432\u0438\u043B\u044C\u043D\u0456 \u0432\u0445\u0456\u0434\u043D\u0456 \u0434\u0430\u043D\u0456"}}};function Ts(){return{localeError:nk()}}function pb(){return Ts()}var rk=()=>{let n={string:{unit:"\u062D\u0631\u0648\u0641",verb:"\u06C1\u0648\u0646\u0627"},file:{unit:"\u0628\u0627\u0626\u0679\u0633",verb:"\u06C1\u0648\u0646\u0627"},array:{unit:"\u0622\u0626\u0679\u0645\u0632",verb:"\u06C1\u0648\u0646\u0627"},set:{unit:"\u0622\u0626\u0679\u0645\u0632",verb:"\u06C1\u0648\u0646\u0627"}};function e(t){return n[t]??null}let r={regex:"\u0627\u0646 \u067E\u0679",email:"\u0627\u06CC \u0645\u06CC\u0644 \u0627\u06CC\u0688\u0631\u06CC\u0633",url:"\u06CC\u0648 \u0622\u0631 \u0627\u06CC\u0644",emoji:"\u0627\u06CC\u0645\u0648\u062C\u06CC",uuid:"\u06CC\u0648 \u06CC\u0648 \u0622\u0626\u06CC \u0688\u06CC",uuidv4:"\u06CC\u0648 \u06CC\u0648 \u0622\u0626\u06CC \u0688\u06CC \u0648\u06CC 4",uuidv6:"\u06CC\u0648 \u06CC\u0648 \u0622\u0626\u06CC \u0688\u06CC \u0648\u06CC 6",nanoid:"\u0646\u06CC\u0646\u0648 \u0622\u0626\u06CC \u0688\u06CC",guid:"\u062C\u06CC \u06CC\u0648 \u0622\u0626\u06CC \u0688\u06CC",cuid:"\u0633\u06CC \u06CC\u0648 \u0622\u0626\u06CC \u0688\u06CC",cuid2:"\u0633\u06CC \u06CC\u0648 \u0622\u0626\u06CC \u0688\u06CC 2",ulid:"\u06CC\u0648 \u0627\u06CC\u0644 \u0622\u0626\u06CC \u0688\u06CC",xid:"\u0627\u06CC\u06A9\u0633 \u0622\u0626\u06CC \u0688\u06CC",ksuid:"\u06A9\u06D2 \u0627\u06CC\u0633 \u06CC\u0648 \u0622\u0626\u06CC \u0688\u06CC",datetime:"\u0622\u0626\u06CC \u0627\u06CC\u0633 \u0627\u0648 \u0688\u06CC\u0679 \u0679\u0627\u0626\u0645",date:"\u0622\u0626\u06CC \u0627\u06CC\u0633 \u0627\u0648 \u062A\u0627\u0631\u06CC\u062E",time:"\u0622\u0626\u06CC \u0627\u06CC\u0633 \u0627\u0648 \u0648\u0642\u062A",duration:"\u0622\u0626\u06CC \u0627\u06CC\u0633 \u0627\u0648 \u0645\u062F\u062A",ipv4:"\u0622\u0626\u06CC \u067E\u06CC \u0648\u06CC 4 \u0627\u06CC\u0688\u0631\u06CC\u0633",ipv6:"\u0622\u0626\u06CC \u067E\u06CC \u0648\u06CC 6 \u0627\u06CC\u0688\u0631\u06CC\u0633",cidrv4:"\u0622\u0626\u06CC \u067E\u06CC \u0648\u06CC 4 \u0631\u06CC\u0646\u062C",cidrv6:"\u0622\u0626\u06CC \u067E\u06CC \u0648\u06CC 6 \u0631\u06CC\u0646\u062C",base64:"\u0628\u06CC\u0633 64 \u0627\u0646 \u06A9\u0648\u0688\u0688 \u0633\u0679\u0631\u0646\u06AF",base64url:"\u0628\u06CC\u0633 64 \u06CC\u0648 \u0622\u0631 \u0627\u06CC\u0644 \u0627\u0646 \u06A9\u0648\u0688\u0688 \u0633\u0679\u0631\u0646\u06AF",json_string:"\u062C\u06D2 \u0627\u06CC\u0633 \u0627\u0648 \u0627\u06CC\u0646 \u0633\u0679\u0631\u0646\u06AF",e164:"\u0627\u06CC 164 \u0646\u0645\u0628\u0631",jwt:"\u062C\u06D2 \u0688\u0628\u0644\u06CC\u0648 \u0679\u06CC",template_literal:"\u0627\u0646 \u067E\u0679"},i={nan:"NaN",number:"\u0646\u0645\u0628\u0631",array:"\u0622\u0631\u06D2",null:"\u0646\u0644"};return t=>{switch(t.code){case"invalid_type":{let o=i[t.expected]??t.expected,s=O(t.input),a=i[s]??s;return/^[A-Z]/.test(t.expected)?`\u063A\u0644\u0637 \u0627\u0646 \u067E\u0679: instanceof ${t.expected} \u0645\u062A\u0648\u0642\u0639 \u062A\u06BE\u0627\u060C ${a} \u0645\u0648\u0635\u0648\u0644 \u06C1\u0648\u0627`:`\u063A\u0644\u0637 \u0627\u0646 \u067E\u0679: ${o} \u0645\u062A\u0648\u0642\u0639 \u062A\u06BE\u0627\u060C ${a} \u0645\u0648\u0635\u0648\u0644 \u06C1\u0648\u0627`}case"invalid_value":return t.values.length===1?`\u063A\u0644\u0637 \u0627\u0646 \u067E\u0679: ${A(t.values[0])} \u0645\u062A\u0648\u0642\u0639 \u062A\u06BE\u0627`:`\u063A\u0644\u0637 \u0622\u067E\u0634\u0646: ${P(t.values,"|")} \u0645\u06CC\u06BA \u0633\u06D2 \u0627\u06CC\u06A9 \u0645\u062A\u0648\u0642\u0639 \u062A\u06BE\u0627`;case"too_big":{let o=t.inclusive?"<=":"<",s=e(t.origin);return s?`\u0628\u06C1\u062A \u0628\u0691\u0627: ${t.origin??"\u0648\u06CC\u0644\u06CC\u0648"} \u06A9\u06D2 ${o}${t.maximum.toString()} ${s.unit??"\u0639\u0646\u0627\u0635\u0631"} \u06C1\u0648\u0646\u06D2 \u0645\u062A\u0648\u0642\u0639 \u062A\u06BE\u06D2`:`\u0628\u06C1\u062A \u0628\u0691\u0627: ${t.origin??"\u0648\u06CC\u0644\u06CC\u0648"} \u06A9\u0627 ${o}${t.maximum.toString()} \u06C1\u0648\u0646\u0627 \u0645\u062A\u0648\u0642\u0639 \u062A\u06BE\u0627`}case"too_small":{let o=t.inclusive?">=":">",s=e(t.origin);return s?`\u0628\u06C1\u062A \u0686\u06BE\u0648\u0679\u0627: ${t.origin} \u06A9\u06D2 ${o}${t.minimum.toString()} ${s.unit} \u06C1\u0648\u0646\u06D2 \u0645\u062A\u0648\u0642\u0639 \u062A\u06BE\u06D2`:`\u0628\u06C1\u062A \u0686\u06BE\u0648\u0679\u0627: ${t.origin} \u06A9\u0627 ${o}${t.minimum.toString()} \u06C1\u0648\u0646\u0627 \u0645\u062A\u0648\u0642\u0639 \u062A\u06BE\u0627`}case"invalid_format":{let o=t;return o.format==="starts_with"?`\u063A\u0644\u0637 \u0633\u0679\u0631\u0646\u06AF: "${o.prefix}" \u0633\u06D2 \u0634\u0631\u0648\u0639 \u06C1\u0648\u0646\u0627 \u0686\u0627\u06C1\u06CC\u06D2`:o.format==="ends_with"?`\u063A\u0644\u0637 \u0633\u0679\u0631\u0646\u06AF: "${o.suffix}" \u067E\u0631 \u062E\u062A\u0645 \u06C1\u0648\u0646\u0627 \u0686\u0627\u06C1\u06CC\u06D2`:o.format==="includes"?`\u063A\u0644\u0637 \u0633\u0679\u0631\u0646\u06AF: "${o.includes}" \u0634\u0627\u0645\u0644 \u06C1\u0648\u0646\u0627 \u0686\u0627\u06C1\u06CC\u06D2`:o.format==="regex"?`\u063A\u0644\u0637 \u0633\u0679\u0631\u0646\u06AF: \u067E\u06CC\u0679\u0631\u0646 ${o.pattern} \u0633\u06D2 \u0645\u06CC\u0686 \u06C1\u0648\u0646\u0627 \u0686\u0627\u06C1\u06CC\u06D2`:`\u063A\u0644\u0637 ${r[o.format]??t.format}`}case"not_multiple_of":return`\u063A\u0644\u0637 \u0646\u0645\u0628\u0631: ${t.divisor} \u06A9\u0627 \u0645\u0636\u0627\u0639\u0641 \u06C1\u0648\u0646\u0627 \u0686\u0627\u06C1\u06CC\u06D2`;case"unrecognized_keys":return`\u063A\u06CC\u0631 \u062A\u0633\u0644\u06CC\u0645 \u0634\u062F\u06C1 \u06A9\u06CC${t.keys.length>1?"\u0632":""}: ${P(t.keys,"\u060C ")}`;case"invalid_key":return`${t.origin} \u0645\u06CC\u06BA \u063A\u0644\u0637 \u06A9\u06CC`;case"invalid_union":return"\u063A\u0644\u0637 \u0627\u0646 \u067E\u0679";case"invalid_element":return`${t.origin} \u0645\u06CC\u06BA \u063A\u0644\u0637 \u0648\u06CC\u0644\u06CC\u0648`;default:return"\u063A\u0644\u0637 \u0627\u0646 \u067E\u0679"}}};function mb(){return{localeError:rk()}}var ik=()=>{let n={string:{unit:"belgi",verb:"bo\u2018lishi kerak"},file:{unit:"bayt",verb:"bo\u2018lishi kerak"},array:{unit:"element",verb:"bo\u2018lishi kerak"},set:{unit:"element",verb:"bo\u2018lishi kerak"}};function e(t){return n[t]??null}let r={regex:"kirish",email:"elektron pochta manzili",url:"URL",emoji:"emoji",uuid:"UUID",uuidv4:"UUIDv4",uuidv6:"UUIDv6",nanoid:"nanoid",guid:"GUID",cuid:"cuid",cuid2:"cuid2",ulid:"ULID",xid:"XID",ksuid:"KSUID",datetime:"ISO sana va vaqti",date:"ISO sana",time:"ISO vaqt",duration:"ISO davomiylik",ipv4:"IPv4 manzil",ipv6:"IPv6 manzil",mac:"MAC manzil",cidrv4:"IPv4 diapazon",cidrv6:"IPv6 diapazon",base64:"base64 kodlangan satr",base64url:"base64url kodlangan satr",json_string:"JSON satr",e164:"E.164 raqam",jwt:"JWT",template_literal:"kirish"},i={nan:"NaN",number:"raqam",array:"massiv"};return t=>{switch(t.code){case"invalid_type":{let o=i[t.expected]??t.expected,s=O(t.input),a=i[s]??s;return/^[A-Z]/.test(t.expected)?`Noto\u2018g\u2018ri kirish: kutilgan instanceof ${t.expected}, qabul qilingan ${a}`:`Noto\u2018g\u2018ri kirish: kutilgan ${o}, qabul qilingan ${a}`}case"invalid_value":return t.values.length===1?`Noto\u2018g\u2018ri kirish: kutilgan ${A(t.values[0])}`:`Noto\u2018g\u2018ri variant: quyidagilardan biri kutilgan ${P(t.values,"|")}`;case"too_big":{let o=t.inclusive?"<=":"<",s=e(t.origin);return s?`Juda katta: kutilgan ${t.origin??"qiymat"} ${o}${t.maximum.toString()} ${s.unit} ${s.verb}`:`Juda katta: kutilgan ${t.origin??"qiymat"} ${o}${t.maximum.toString()}`}case"too_small":{let o=t.inclusive?">=":">",s=e(t.origin);return s?`Juda kichik: kutilgan ${t.origin} ${o}${t.minimum.toString()} ${s.unit} ${s.verb}`:`Juda kichik: kutilgan ${t.origin} ${o}${t.minimum.toString()}`}case"invalid_format":{let o=t;return o.format==="starts_with"?`Noto\u2018g\u2018ri satr: "${o.prefix}" bilan boshlanishi kerak`:o.format==="ends_with"?`Noto\u2018g\u2018ri satr: "${o.suffix}" bilan tugashi kerak`:o.format==="includes"?`Noto\u2018g\u2018ri satr: "${o.includes}" ni o\u2018z ichiga olishi kerak`:o.format==="regex"?`Noto\u2018g\u2018ri satr: ${o.pattern} shabloniga mos kelishi kerak`:`Noto\u2018g\u2018ri ${r[o.format]??t.format}`}case"not_multiple_of":return`Noto\u2018g\u2018ri raqam: ${t.divisor} ning karralisi bo\u2018lishi kerak`;case"unrecognized_keys":return`Noma\u2019lum kalit${t.keys.length>1?"lar":""}: ${P(t.keys,", ")}`;case"invalid_key":return`${t.origin} dagi kalit noto\u2018g\u2018ri`;case"invalid_union":return"Noto\u2018g\u2018ri kirish";case"invalid_element":return`${t.origin} da noto\u2018g\u2018ri qiymat`;default:return"Noto\u2018g\u2018ri kirish"}}};function fb(){return{localeError:ik()}}var ok=()=>{let n={string:{unit:"k\xFD t\u1EF1",verb:"c\xF3"},file:{unit:"byte",verb:"c\xF3"},array:{unit:"ph\u1EA7n t\u1EED",verb:"c\xF3"},set:{unit:"ph\u1EA7n t\u1EED",verb:"c\xF3"}};function e(t){return n[t]??null}let r={regex:"\u0111\u1EA7u v\xE0o",email:"\u0111\u1ECBa ch\u1EC9 email",url:"URL",emoji:"emoji",uuid:"UUID",uuidv4:"UUIDv4",uuidv6:"UUIDv6",nanoid:"nanoid",guid:"GUID",cuid:"cuid",cuid2:"cuid2",ulid:"ULID",xid:"XID",ksuid:"KSUID",datetime:"ng\xE0y gi\u1EDD ISO",date:"ng\xE0y ISO",time:"gi\u1EDD ISO",duration:"kho\u1EA3ng th\u1EDDi gian ISO",ipv4:"\u0111\u1ECBa ch\u1EC9 IPv4",ipv6:"\u0111\u1ECBa ch\u1EC9 IPv6",cidrv4:"d\u1EA3i IPv4",cidrv6:"d\u1EA3i IPv6",base64:"chu\u1ED7i m\xE3 h\xF3a base64",base64url:"chu\u1ED7i m\xE3 h\xF3a base64url",json_string:"chu\u1ED7i JSON",e164:"s\u1ED1 E.164",jwt:"JWT",template_literal:"\u0111\u1EA7u v\xE0o"},i={nan:"NaN",number:"s\u1ED1",array:"m\u1EA3ng"};return t=>{switch(t.code){case"invalid_type":{let o=i[t.expected]??t.expected,s=O(t.input),a=i[s]??s;return/^[A-Z]/.test(t.expected)?`\u0110\u1EA7u v\xE0o kh\xF4ng h\u1EE3p l\u1EC7: mong \u0111\u1EE3i instanceof ${t.expected}, nh\u1EADn \u0111\u01B0\u1EE3c ${a}`:`\u0110\u1EA7u v\xE0o kh\xF4ng h\u1EE3p l\u1EC7: mong \u0111\u1EE3i ${o}, nh\u1EADn \u0111\u01B0\u1EE3c ${a}`}case"invalid_value":return t.values.length===1?`\u0110\u1EA7u v\xE0o kh\xF4ng h\u1EE3p l\u1EC7: mong \u0111\u1EE3i ${A(t.values[0])}`:`T\xF9y ch\u1ECDn kh\xF4ng h\u1EE3p l\u1EC7: mong \u0111\u1EE3i m\u1ED9t trong c\xE1c gi\xE1 tr\u1ECB ${P(t.values,"|")}`;case"too_big":{let o=t.inclusive?"<=":"<",s=e(t.origin);return s?`Qu\xE1 l\u1EDBn: mong \u0111\u1EE3i ${t.origin??"gi\xE1 tr\u1ECB"} ${s.verb} ${o}${t.maximum.toString()} ${s.unit??"ph\u1EA7n t\u1EED"}`:`Qu\xE1 l\u1EDBn: mong \u0111\u1EE3i ${t.origin??"gi\xE1 tr\u1ECB"} ${o}${t.maximum.toString()}`}case"too_small":{let o=t.inclusive?">=":">",s=e(t.origin);return s?`Qu\xE1 nh\u1ECF: mong \u0111\u1EE3i ${t.origin} ${s.verb} ${o}${t.minimum.toString()} ${s.unit}`:`Qu\xE1 nh\u1ECF: mong \u0111\u1EE3i ${t.origin} ${o}${t.minimum.toString()}`}case"invalid_format":{let o=t;return o.format==="starts_with"?`Chu\u1ED7i kh\xF4ng h\u1EE3p l\u1EC7: ph\u1EA3i b\u1EAFt \u0111\u1EA7u b\u1EB1ng "${o.prefix}"`:o.format==="ends_with"?`Chu\u1ED7i kh\xF4ng h\u1EE3p l\u1EC7: ph\u1EA3i k\u1EBFt th\xFAc b\u1EB1ng "${o.suffix}"`:o.format==="includes"?`Chu\u1ED7i kh\xF4ng h\u1EE3p l\u1EC7: ph\u1EA3i bao g\u1ED3m "${o.includes}"`:o.format==="regex"?`Chu\u1ED7i kh\xF4ng h\u1EE3p l\u1EC7: ph\u1EA3i kh\u1EDBp v\u1EDBi m\u1EABu ${o.pattern}`:`${r[o.format]??t.format} kh\xF4ng h\u1EE3p l\u1EC7`}case"not_multiple_of":return`S\u1ED1 kh\xF4ng h\u1EE3p l\u1EC7: ph\u1EA3i l\xE0 b\u1ED9i s\u1ED1 c\u1EE7a ${t.divisor}`;case"unrecognized_keys":return`Kh\xF3a kh\xF4ng \u0111\u01B0\u1EE3c nh\u1EADn d\u1EA1ng: ${P(t.keys,", ")}`;case"invalid_key":return`Kh\xF3a kh\xF4ng h\u1EE3p l\u1EC7 trong ${t.origin}`;case"invalid_union":return"\u0110\u1EA7u v\xE0o kh\xF4ng h\u1EE3p l\u1EC7";case"invalid_element":return`Gi\xE1 tr\u1ECB kh\xF4ng h\u1EE3p l\u1EC7 trong ${t.origin}`;default:return"\u0110\u1EA7u v\xE0o kh\xF4ng h\u1EE3p l\u1EC7"}}};function hb(){return{localeError:ok()}}var sk=()=>{let n={string:{unit:"\u5B57\u7B26",verb:"\u5305\u542B"},file:{unit:"\u5B57\u8282",verb:"\u5305\u542B"},array:{unit:"\u9879",verb:"\u5305\u542B"},set:{unit:"\u9879",verb:"\u5305\u542B"}};function e(t){return n[t]??null}let r={regex:"\u8F93\u5165",email:"\u7535\u5B50\u90AE\u4EF6",url:"URL",emoji:"\u8868\u60C5\u7B26\u53F7",uuid:"UUID",uuidv4:"UUIDv4",uuidv6:"UUIDv6",nanoid:"nanoid",guid:"GUID",cuid:"cuid",cuid2:"cuid2",ulid:"ULID",xid:"XID",ksuid:"KSUID",datetime:"ISO\u65E5\u671F\u65F6\u95F4",date:"ISO\u65E5\u671F",time:"ISO\u65F6\u95F4",duration:"ISO\u65F6\u957F",ipv4:"IPv4\u5730\u5740",ipv6:"IPv6\u5730\u5740",cidrv4:"IPv4\u7F51\u6BB5",cidrv6:"IPv6\u7F51\u6BB5",base64:"base64\u7F16\u7801\u5B57\u7B26\u4E32",base64url:"base64url\u7F16\u7801\u5B57\u7B26\u4E32",json_string:"JSON\u5B57\u7B26\u4E32",e164:"E.164\u53F7\u7801",jwt:"JWT",template_literal:"\u8F93\u5165"},i={nan:"NaN",number:"\u6570\u5B57",array:"\u6570\u7EC4",null:"\u7A7A\u503C(null)"};return t=>{switch(t.code){case"invalid_type":{let o=i[t.expected]??t.expected,s=O(t.input),a=i[s]??s;return/^[A-Z]/.test(t.expected)?`\u65E0\u6548\u8F93\u5165\uFF1A\u671F\u671B instanceof ${t.expected}\uFF0C\u5B9E\u9645\u63A5\u6536 ${a}`:`\u65E0\u6548\u8F93\u5165\uFF1A\u671F\u671B ${o}\uFF0C\u5B9E\u9645\u63A5\u6536 ${a}`}case"invalid_value":return t.values.length===1?`\u65E0\u6548\u8F93\u5165\uFF1A\u671F\u671B ${A(t.values[0])}`:`\u65E0\u6548\u9009\u9879\uFF1A\u671F\u671B\u4EE5\u4E0B\u4E4B\u4E00 ${P(t.values,"|")}`;case"too_big":{let o=t.inclusive?"<=":"<",s=e(t.origin);return s?`\u6570\u503C\u8FC7\u5927\uFF1A\u671F\u671B ${t.origin??"\u503C"} ${o}${t.maximum.toString()} ${s.unit??"\u4E2A\u5143\u7D20"}`:`\u6570\u503C\u8FC7\u5927\uFF1A\u671F\u671B ${t.origin??"\u503C"} ${o}${t.maximum.toString()}`}case"too_small":{let o=t.inclusive?">=":">",s=e(t.origin);return s?`\u6570\u503C\u8FC7\u5C0F\uFF1A\u671F\u671B ${t.origin} ${o}${t.minimum.toString()} ${s.unit}`:`\u6570\u503C\u8FC7\u5C0F\uFF1A\u671F\u671B ${t.origin} ${o}${t.minimum.toString()}`}case"invalid_format":{let o=t;return o.format==="starts_with"?`\u65E0\u6548\u5B57\u7B26\u4E32\uFF1A\u5FC5\u987B\u4EE5 "${o.prefix}" \u5F00\u5934`:o.format==="ends_with"?`\u65E0\u6548\u5B57\u7B26\u4E32\uFF1A\u5FC5\u987B\u4EE5 "${o.suffix}" \u7ED3\u5C3E`:o.format==="includes"?`\u65E0\u6548\u5B57\u7B26\u4E32\uFF1A\u5FC5\u987B\u5305\u542B "${o.includes}"`:o.format==="regex"?`\u65E0\u6548\u5B57\u7B26\u4E32\uFF1A\u5FC5\u987B\u6EE1\u8DB3\u6B63\u5219\u8868\u8FBE\u5F0F ${o.pattern}`:`\u65E0\u6548${r[o.format]??t.format}`}case"not_multiple_of":return`\u65E0\u6548\u6570\u5B57\uFF1A\u5FC5\u987B\u662F ${t.divisor} \u7684\u500D\u6570`;case"unrecognized_keys":return`\u51FA\u73B0\u672A\u77E5\u7684\u952E(key): ${P(t.keys,", ")}`;case"invalid_key":return`${t.origin} \u4E2D\u7684\u952E(key)\u65E0\u6548`;case"invalid_union":return"\u65E0\u6548\u8F93\u5165";case"invalid_element":return`${t.origin} \u4E2D\u5305\u542B\u65E0\u6548\u503C(value)`;default:return"\u65E0\u6548\u8F93\u5165"}}};function gb(){return{localeError:sk()}}var ak=()=>{let n={string:{unit:"\u5B57\u5143",verb:"\u64C1\u6709"},file:{unit:"\u4F4D\u5143\u7D44",verb:"\u64C1\u6709"},array:{unit:"\u9805\u76EE",verb:"\u64C1\u6709"},set:{unit:"\u9805\u76EE",verb:"\u64C1\u6709"}};function e(t){return n[t]??null}let r={regex:"\u8F38\u5165",email:"\u90F5\u4EF6\u5730\u5740",url:"URL",emoji:"emoji",uuid:"UUID",uuidv4:"UUIDv4",uuidv6:"UUIDv6",nanoid:"nanoid",guid:"GUID",cuid:"cuid",cuid2:"cuid2",ulid:"ULID",xid:"XID",ksuid:"KSUID",datetime:"ISO \u65E5\u671F\u6642\u9593",date:"ISO \u65E5\u671F",time:"ISO \u6642\u9593",duration:"ISO \u671F\u9593",ipv4:"IPv4 \u4F4D\u5740",ipv6:"IPv6 \u4F4D\u5740",cidrv4:"IPv4 \u7BC4\u570D",cidrv6:"IPv6 \u7BC4\u570D",base64:"base64 \u7DE8\u78BC\u5B57\u4E32",base64url:"base64url \u7DE8\u78BC\u5B57\u4E32",json_string:"JSON \u5B57\u4E32",e164:"E.164 \u6578\u503C",jwt:"JWT",template_literal:"\u8F38\u5165"},i={nan:"NaN"};return t=>{switch(t.code){case"invalid_type":{let o=i[t.expected]??t.expected,s=O(t.input),a=i[s]??s;return/^[A-Z]/.test(t.expected)?`\u7121\u6548\u7684\u8F38\u5165\u503C\uFF1A\u9810\u671F\u70BA instanceof ${t.expected}\uFF0C\u4F46\u6536\u5230 ${a}`:`\u7121\u6548\u7684\u8F38\u5165\u503C\uFF1A\u9810\u671F\u70BA ${o}\uFF0C\u4F46\u6536\u5230 ${a}`}case"invalid_value":return t.values.length===1?`\u7121\u6548\u7684\u8F38\u5165\u503C\uFF1A\u9810\u671F\u70BA ${A(t.values[0])}`:`\u7121\u6548\u7684\u9078\u9805\uFF1A\u9810\u671F\u70BA\u4EE5\u4E0B\u5176\u4E2D\u4E4B\u4E00 ${P(t.values,"|")}`;case"too_big":{let o=t.inclusive?"<=":"<",s=e(t.origin);return s?`\u6578\u503C\u904E\u5927\uFF1A\u9810\u671F ${t.origin??"\u503C"} \u61C9\u70BA ${o}${t.maximum.toString()} ${s.unit??"\u500B\u5143\u7D20"}`:`\u6578\u503C\u904E\u5927\uFF1A\u9810\u671F ${t.origin??"\u503C"} \u61C9\u70BA ${o}${t.maximum.toString()}`}case"too_small":{let o=t.inclusive?">=":">",s=e(t.origin);return s?`\u6578\u503C\u904E\u5C0F\uFF1A\u9810\u671F ${t.origin} \u61C9\u70BA ${o}${t.minimum.toString()} ${s.unit}`:`\u6578\u503C\u904E\u5C0F\uFF1A\u9810\u671F ${t.origin} \u61C9\u70BA ${o}${t.minimum.toString()}`}case"invalid_format":{let o=t;return o.format==="starts_with"?`\u7121\u6548\u7684\u5B57\u4E32\uFF1A\u5FC5\u9808\u4EE5 "${o.prefix}" \u958B\u982D`:o.format==="ends_with"?`\u7121\u6548\u7684\u5B57\u4E32\uFF1A\u5FC5\u9808\u4EE5 "${o.suffix}" \u7D50\u5C3E`:o.format==="includes"?`\u7121\u6548\u7684\u5B57\u4E32\uFF1A\u5FC5\u9808\u5305\u542B "${o.includes}"`:o.format==="regex"?`\u7121\u6548\u7684\u5B57\u4E32\uFF1A\u5FC5\u9808\u7B26\u5408\u683C\u5F0F ${o.pattern}`:`\u7121\u6548\u7684 ${r[o.format]??t.format}`}case"not_multiple_of":return`\u7121\u6548\u7684\u6578\u5B57\uFF1A\u5FC5\u9808\u70BA ${t.divisor} \u7684\u500D\u6578`;case"unrecognized_keys":return`\u7121\u6CD5\u8B58\u5225\u7684\u9375\u503C${t.keys.length>1?"\u5011":""}\uFF1A${P(t.keys,"\u3001")}`;case"invalid_key":return`${t.origin} \u4E2D\u6709\u7121\u6548\u7684\u9375\u503C`;case"invalid_union":return"\u7121\u6548\u7684\u8F38\u5165\u503C";case"invalid_element":return`${t.origin} \u4E2D\u6709\u7121\u6548\u7684\u503C`;default:return"\u7121\u6548\u7684\u8F38\u5165\u503C"}}};function yb(){return{localeError:ak()}}var ck=()=>{let n={string:{unit:"\xE0mi",verb:"n\xED"},file:{unit:"bytes",verb:"n\xED"},array:{unit:"nkan",verb:"n\xED"},set:{unit:"nkan",verb:"n\xED"}};function e(t){return n[t]??null}let r={regex:"\u1EB9\u0300r\u1ECD \xECb\xE1w\u1ECDl\xE9",email:"\xE0d\xEDr\u1EB9\u0301s\xEC \xECm\u1EB9\u0301l\xEC",url:"URL",emoji:"emoji",uuid:"UUID",uuidv4:"UUIDv4",uuidv6:"UUIDv6",nanoid:"nanoid",guid:"GUID",cuid:"cuid",cuid2:"cuid2",ulid:"ULID",xid:"XID",ksuid:"KSUID",datetime:"\xE0k\xF3k\xF2 ISO",date:"\u1ECDj\u1ECD\u0301 ISO",time:"\xE0k\xF3k\xF2 ISO",duration:"\xE0k\xF3k\xF2 t\xF3 p\xE9 ISO",ipv4:"\xE0d\xEDr\u1EB9\u0301s\xEC IPv4",ipv6:"\xE0d\xEDr\u1EB9\u0301s\xEC IPv6",cidrv4:"\xE0gb\xE8gb\xE8 IPv4",cidrv6:"\xE0gb\xE8gb\xE8 IPv6",base64:"\u1ECD\u0300r\u1ECD\u0300 t\xED a k\u1ECD\u0301 n\xED base64",base64url:"\u1ECD\u0300r\u1ECD\u0300 base64url",json_string:"\u1ECD\u0300r\u1ECD\u0300 JSON",e164:"n\u1ECD\u0301mb\xE0 E.164",jwt:"JWT",template_literal:"\u1EB9\u0300r\u1ECD \xECb\xE1w\u1ECDl\xE9"},i={nan:"NaN",number:"n\u1ECD\u0301mb\xE0",array:"akop\u1ECD"};return t=>{switch(t.code){case"invalid_type":{let o=i[t.expected]??t.expected,s=O(t.input),a=i[s]??s;return/^[A-Z]/.test(t.expected)?`\xCCb\xE1w\u1ECDl\xE9 a\u1E63\xEC\u1E63e: a n\xED l\xE1ti fi instanceof ${t.expected}, \xE0m\u1ECD\u0300 a r\xED ${a}`:`\xCCb\xE1w\u1ECDl\xE9 a\u1E63\xEC\u1E63e: a n\xED l\xE1ti fi ${o}, \xE0m\u1ECD\u0300 a r\xED ${a}`}case"invalid_value":return t.values.length===1?`\xCCb\xE1w\u1ECDl\xE9 a\u1E63\xEC\u1E63e: a n\xED l\xE1ti fi ${A(t.values[0])}`:`\xC0\u1E63\xE0y\xE0n a\u1E63\xEC\u1E63e: yan \u1ECD\u0300kan l\xE1ra ${P(t.values,"|")}`;case"too_big":{let o=t.inclusive?"<=":"<",s=e(t.origin);return s?`T\xF3 p\u1ECD\u0300 j\xF9: a n\xED l\xE1ti j\u1EB9\u0301 p\xE9 ${t.origin??"iye"} ${s.verb} ${o}${t.maximum} ${s.unit}`:`T\xF3 p\u1ECD\u0300 j\xF9: a n\xED l\xE1ti j\u1EB9\u0301 ${o}${t.maximum}`}case"too_small":{let o=t.inclusive?">=":">",s=e(t.origin);return s?`K\xE9r\xE9 ju: a n\xED l\xE1ti j\u1EB9\u0301 p\xE9 ${t.origin} ${s.verb} ${o}${t.minimum} ${s.unit}`:`K\xE9r\xE9 ju: a n\xED l\xE1ti j\u1EB9\u0301 ${o}${t.minimum}`}case"invalid_format":{let o=t;return o.format==="starts_with"?`\u1ECC\u0300r\u1ECD\u0300 a\u1E63\xEC\u1E63e: gb\u1ECD\u0301d\u1ECD\u0300 b\u1EB9\u0300r\u1EB9\u0300 p\u1EB9\u0300l\xFA "${o.prefix}"`:o.format==="ends_with"?`\u1ECC\u0300r\u1ECD\u0300 a\u1E63\xEC\u1E63e: gb\u1ECD\u0301d\u1ECD\u0300 par\xED p\u1EB9\u0300l\xFA "${o.suffix}"`:o.format==="includes"?`\u1ECC\u0300r\u1ECD\u0300 a\u1E63\xEC\u1E63e: gb\u1ECD\u0301d\u1ECD\u0300 n\xED "${o.includes}"`:o.format==="regex"?`\u1ECC\u0300r\u1ECD\u0300 a\u1E63\xEC\u1E63e: gb\u1ECD\u0301d\u1ECD\u0300 b\xE1 \xE0p\u1EB9\u1EB9r\u1EB9 mu ${o.pattern}`:`A\u1E63\xEC\u1E63e: ${r[o.format]??t.format}`}case"not_multiple_of":return`N\u1ECD\u0301mb\xE0 a\u1E63\xEC\u1E63e: gb\u1ECD\u0301d\u1ECD\u0300 j\u1EB9\u0301 \xE8y\xE0 p\xEDp\xEDn ti ${t.divisor}`;case"unrecognized_keys":return`B\u1ECDt\xECn\xEC \xE0\xECm\u1ECD\u0300: ${P(t.keys,", ")}`;case"invalid_key":return`B\u1ECDt\xECn\xEC a\u1E63\xEC\u1E63e n\xEDn\xFA ${t.origin}`;case"invalid_union":return"\xCCb\xE1w\u1ECDl\xE9 a\u1E63\xEC\u1E63e";case"invalid_element":return`Iye a\u1E63\xEC\u1E63e n\xEDn\xFA ${t.origin}`;default:return"\xCCb\xE1w\u1ECDl\xE9 a\u1E63\xEC\u1E63e"}}};function bb(){return{localeError:ck()}}var vb,fd=Symbol("ZodOutput"),hd=Symbol("ZodInput"),Ps=class{constructor(){this._map=new WeakMap,this._idmap=new Map}add(e,...r){let i=r[0];return this._map.set(e,i),i&&typeof i=="object"&&"id"in i&&this._idmap.set(i.id,e),this}clear(){return this._map=new WeakMap,this._idmap=new Map,this}remove(e){let r=this._map.get(e);return r&&typeof r=="object"&&"id"in r&&this._idmap.delete(r.id),this._map.delete(e),this}get(e){let r=e._zod.parent;if(r){let i={...this.get(r)??{}};delete i.id;let t={...i,...this._map.get(e)};return Object.keys(t).length?t:void 0}return this._map.get(e)}has(e){return this._map.has(e)}};function Rs(){return new Ps}(vb=globalThis).__zod_globalRegistry??(vb.__zod_globalRegistry=Rs());var De=globalThis.__zod_globalRegistry;function gd(n,e){return new n({type:"string",...j(e)})}function yd(n,e){return new n({type:"string",coerce:!0,...j(e)})}function zs(n,e){return new n({type:"string",format:"email",check:"string_format",abort:!1,...j(e)})}function Ri(n,e){return new n({type:"string",format:"guid",check:"string_format",abort:!1,...j(e)})}function Ns(n,e){return new n({type:"string",format:"uuid",check:"string_format",abort:!1,...j(e)})}function Cs(n,e){return new n({type:"string",format:"uuid",check:"string_format",abort:!1,version:"v4",...j(e)})}function Ds(n,e){return new n({type:"string",format:"uuid",check:"string_format",abort:!1,version:"v6",...j(e)})}function Ls(n,e){return new n({type:"string",format:"uuid",check:"string_format",abort:!1,version:"v7",...j(e)})}function zi(n,e){return new n({type:"string",format:"url",check:"string_format",abort:!1,...j(e)})}function As(n,e){return new n({type:"string",format:"emoji",check:"string_format",abort:!1,...j(e)})}function Os(n,e){return new n({type:"string",format:"nanoid",check:"string_format",abort:!1,...j(e)})}function Ms(n,e){return new n({type:"string",format:"cuid",check:"string_format",abort:!1,...j(e)})}function js(n,e){return new n({type:"string",format:"cuid2",check:"string_format",abort:!1,...j(e)})}function Fs(n,e){return new n({type:"string",format:"ulid",check:"string_format",abort:!1,...j(e)})}function Us(n,e){return new n({type:"string",format:"xid",check:"string_format",abort:!1,...j(e)})}function Zs(n,e){return new n({type:"string",format:"ksuid",check:"string_format",abort:!1,...j(e)})}function Hs(n,e){return new n({type:"string",format:"ipv4",check:"string_format",abort:!1,...j(e)})}function Ws(n,e){return new n({type:"string",format:"ipv6",check:"string_format",abort:!1,...j(e)})}function bd(n,e){return new n({type:"string",format:"mac",check:"string_format",abort:!1,...j(e)})}function Bs(n,e){return new n({type:"string",format:"cidrv4",check:"string_format",abort:!1,...j(e)})}function Gs(n,e){return new n({type:"string",format:"cidrv6",check:"string_format",abort:!1,...j(e)})}function Js(n,e){return new n({type:"string",format:"base64",check:"string_format",abort:!1,...j(e)})}function qs(n,e){return new n({type:"string",format:"base64url",check:"string_format",abort:!1,...j(e)})}function Vs(n,e){return new n({type:"string",format:"e164",check:"string_format",abort:!1,...j(e)})}function Ks(n,e){return new n({type:"string",format:"jwt",check:"string_format",abort:!1,...j(e)})}var vd={Any:null,Minute:-1,Second:0,Millisecond:3,Microsecond:6};function _d(n,e){return new n({type:"string",format:"datetime",check:"string_format",offset:!1,local:!1,precision:null,...j(e)})}function xd(n,e){return new n({type:"string",format:"date",check:"string_format",...j(e)})}function Sd(n,e){return new n({type:"string",format:"time",check:"string_format",precision:null,...j(e)})}function $d(n,e){return new n({type:"string",format:"duration",check:"string_format",...j(e)})}function wd(n,e){return new n({type:"number",checks:[],...j(e)})}function kd(n,e){return new n({type:"number",coerce:!0,checks:[],...j(e)})}function Ed(n,e){return new n({type:"number",check:"number_format",abort:!1,format:"safeint",...j(e)})}function Id(n,e){return new n({type:"number",check:"number_format",abort:!1,format:"float32",...j(e)})}function Td(n,e){return new n({type:"number",check:"number_format",abort:!1,format:"float64",...j(e)})}function Pd(n,e){return new n({type:"number",check:"number_format",abort:!1,format:"int32",...j(e)})}function Rd(n,e){return new n({type:"number",check:"number_format",abort:!1,format:"uint32",...j(e)})}function zd(n,e){return new n({type:"boolean",...j(e)})}function Nd(n,e){return new n({type:"boolean",coerce:!0,...j(e)})}function Cd(n,e){return new n({type:"bigint",...j(e)})}function Dd(n,e){return new n({type:"bigint",coerce:!0,...j(e)})}function Ld(n,e){return new n({type:"bigint",check:"bigint_format",abort:!1,format:"int64",...j(e)})}function Ad(n,e){return new n({type:"bigint",check:"bigint_format",abort:!1,format:"uint64",...j(e)})}function Od(n,e){return new n({type:"symbol",...j(e)})}function Md(n,e){return new n({type:"undefined",...j(e)})}function jd(n,e){return new n({type:"null",...j(e)})}function Fd(n){return new n({type:"any"})}function Ud(n){return new n({type:"unknown"})}function Zd(n,e){return new n({type:"never",...j(e)})}function Hd(n,e){return new n({type:"void",...j(e)})}function Wd(n,e){return new n({type:"date",...j(e)})}function Bd(n,e){return new n({type:"date",coerce:!0,...j(e)})}function Gd(n,e){return new n({type:"nan",...j(e)})}function wt(n,e){return new hs({check:"less_than",...j(e),value:n,inclusive:!1})}function Xe(n,e){return new hs({check:"less_than",...j(e),value:n,inclusive:!0})}function kt(n,e){return new gs({check:"greater_than",...j(e),value:n,inclusive:!1})}function Fe(n,e){return new gs({check:"greater_than",...j(e),value:n,inclusive:!0})}function Ys(n){return kt(0,n)}function Xs(n){return wt(0,n)}function Qs(n){return Xe(0,n)}function ea(n){return Fe(0,n)}function an(n,e){return new jl({check:"multiple_of",...j(e),value:n})}function cn(n,e){return new Zl({check:"max_size",...j(e),maximum:n})}function Et(n,e){return new Hl({check:"min_size",...j(e),minimum:n})}function Mn(n,e){return new Wl({check:"size_equals",...j(e),size:n})}function jn(n,e){return new Bl({check:"max_length",...j(e),maximum:n})}function Ot(n,e){return new Gl({check:"min_length",...j(e),minimum:n})}function Fn(n,e){return new Jl({check:"length_equals",...j(e),length:n})}function br(n,e){return new ql({check:"string_format",format:"regex",...j(e),pattern:n})}function vr(n){return new Vl({check:"string_format",format:"lowercase",...j(n)})}function _r(n){return new Kl({check:"string_format",format:"uppercase",...j(n)})}function xr(n,e){return new Yl({check:"string_format",format:"includes",...j(e),includes:n})}function Sr(n,e){return new Xl({check:"string_format",format:"starts_with",...j(e),prefix:n})}function $r(n,e){return new Ql({check:"string_format",format:"ends_with",...j(e),suffix:n})}function ta(n,e,r){return new eu({check:"property",property:n,schema:e,...j(r)})}function wr(n,e){return new tu({check:"mime_type",mime:n,...j(e)})}function vt(n){return new nu({check:"overwrite",tx:n})}function kr(n){return vt(e=>e.normalize(n))}function Er(){return vt(n=>n.trim())}function Ir(){return vt(n=>n.toLowerCase())}function Tr(){return vt(n=>n.toUpperCase())}function Pr(){return vt(n=>el(n))}function Jd(n,e,r){return new n({type:"array",element:e,...j(r)})}function uk(n,e,r){return new n({type:"union",options:e,...j(r)})}function dk(n,e,r){return new n({type:"union",options:e,inclusive:!1,...j(r)})}function pk(n,e,r,i){return new n({type:"union",options:r,discriminator:e,...j(i)})}function mk(n,e,r){return new n({type:"intersection",left:e,right:r})}function fk(n,e,r,i){let t=r instanceof Y,o=t?i:r,s=t?r:null;return new n({type:"tuple",items:e,rest:s,...j(o)})}function hk(n,e,r,i){return new n({type:"record",keyType:e,valueType:r,...j(i)})}function gk(n,e,r,i){return new n({type:"map",keyType:e,valueType:r,...j(i)})}function yk(n,e,r){return new n({type:"set",valueType:e,...j(r)})}function bk(n,e,r){let i=Array.isArray(e)?Object.fromEntries(e.map(t=>[t,t])):e;return new n({type:"enum",entries:i,...j(r)})}function vk(n,e,r){return new n({type:"enum",entries:e,...j(r)})}function _k(n,e,r){return new n({type:"literal",values:Array.isArray(e)?e:[e],...j(r)})}function qd(n,e){return new n({type:"file",...j(e)})}function xk(n,e){return new n({type:"transform",transform:e})}function Sk(n,e){return new n({type:"optional",innerType:e})}function $k(n,e){return new n({type:"nullable",innerType:e})}function wk(n,e,r){return new n({type:"default",innerType:e,get defaultValue(){return typeof r=="function"?r():nl(r)}})}function kk(n,e,r){return new n({type:"nonoptional",innerType:e,...j(r)})}function Ek(n,e){return new n({type:"success",innerType:e})}function Ik(n,e,r){return new n({type:"catch",innerType:e,catchValue:typeof r=="function"?r:()=>r})}function Tk(n,e,r){return new n({type:"pipe",in:e,out:r})}function Pk(n,e){return new n({type:"readonly",innerType:e})}function Rk(n,e,r){return new n({type:"template_literal",parts:e,...j(r)})}function zk(n,e){return new n({type:"lazy",getter:e})}function Nk(n,e){return new n({type:"promise",innerType:e})}function Vd(n,e,r){let i=j(r);return i.abort??(i.abort=!0),new n({type:"custom",check:"custom",fn:e,...i})}function Kd(n,e,r){return new n({type:"custom",check:"custom",fn:e,...j(r)})}function Yd(n){let e=_b(r=>(r.addIssue=i=>{if(typeof i=="string")r.issues.push(dr(i,r.value,e._zod.def));else{let t=i;t.fatal&&(t.continue=!1),t.code??(t.code="custom"),t.input??(t.input=r.value),t.inst??(t.inst=e),t.continue??(t.continue=!e._zod.def.abort),r.issues.push(dr(t))}},n(r.value,r)));return e}function _b(n,e){let r=new me({check:"custom",...j(e)});return r._zod.check=n,r}function Xd(n){let e=new me({check:"describe"});return e._zod.onattach=[r=>{let i=De.get(r)??{};De.add(r,{...i,description:n})}],e._zod.check=()=>{},e}function Qd(n){let e=new me({check:"meta"});return e._zod.onattach=[r=>{let i=De.get(r)??{};De.add(r,{...i,...n})}],e._zod.check=()=>{},e}function ep(n,e){let r=j(e),i=r.truthy??["true","1","yes","on","y","enabled"],t=r.falsy??["false","0","no","off","n","disabled"];r.case!=="sensitive"&&(i=i.map(f=>typeof f=="string"?f.toLowerCase():f),t=t.map(f=>typeof f=="string"?f.toLowerCase():f));let o=new Set(i),s=new Set(t),a=n.Codec??Ii,c=n.Boolean??ki,l=n.String??On,u=new l({type:"string",error:r.error}),d=new c({type:"boolean",error:r.error}),p=new a({type:"pipe",in:u,out:d,transform:((f,m)=>{let h=f;return r.case!=="sensitive"&&(h=h.toLowerCase()),o.has(h)?!0:s.has(h)?!1:(m.issues.push({code:"invalid_value",expected:"stringbool",values:[...o,...s],input:m.value,inst:p,continue:!1}),{})}),reverseTransform:((f,m)=>f===!0?i[0]||"true":t[0]||"false"),error:r.error});return p}function Rr(n,e,r,i={}){let t=j(i),o={...j(i),check:"string_format",type:"string",format:e,fn:typeof r=="function"?r:a=>r.test(a),...t};return r instanceof RegExp&&(o.pattern=r),new n(o)}function ln(n){let e=n?.target??"draft-2020-12";return e==="draft-4"&&(e="draft-04"),e==="draft-7"&&(e="draft-07"),{processors:n.processors??{},metadataRegistry:n?.metadata??De,target:e,unrepresentable:n?.unrepresentable??"throw",override:n?.override??(()=>{}),io:n?.io??"output",counter:0,seen:new Map,cycles:n?.cycles??"ref",reused:n?.reused??"inline",external:n?.external??void 0}}function oe(n,e,r={path:[],schemaPath:[]}){var i;let t=n._zod.def,o=e.seen.get(n);if(o)return o.count++,r.schemaPath.includes(n)&&(o.cycle=r.path),o.schema;let s={schema:{},count:1,cycle:void 0,path:r.path};e.seen.set(n,s);let a=n._zod.toJSONSchema?.();if(a)s.schema=a;else{let u={...r,schemaPath:[...r.schemaPath,n],path:r.path};if(n._zod.processJSONSchema)n._zod.processJSONSchema(e,s.schema,u);else{let p=s.schema,f=e.processors[t.type];if(!f)throw new Error(`[toJSONSchema]: Non-representable type encountered: ${t.type}`);f(n,e,p,u)}let d=n._zod.parent;d&&(s.ref||(s.ref=d),oe(d,e,u),e.seen.get(d).isParent=!0)}let c=e.metadataRegistry.get(n);return c&&Object.assign(s.schema,c),e.io==="input"&&Ue(n)&&(delete s.schema.examples,delete s.schema.default),e.io==="input"&&s.schema._prefault&&((i=s.schema).default??(i.default=s.schema._prefault)),delete s.schema._prefault,e.seen.get(n).schema}function un(n,e){let r=n.seen.get(e);if(!r)throw new Error("Unprocessed schema. This is a bug in Zod.");let i=new Map;for(let s of n.seen.entries()){let a=n.metadataRegistry.get(s[0])?.id;if(a){let c=i.get(a);if(c&&c!==s[0])throw new Error(`Duplicate schema id "${a}" detected during JSON Schema conversion. Two different schemas cannot share the same id when converted together.`);i.set(a,s[0])}}let t=s=>{let a=n.target==="draft-2020-12"?"$defs":"definitions";if(n.external){let d=n.external.registry.get(s[0])?.id,p=n.external.uri??(m=>m);if(d)return{ref:p(d)};let f=s[1].defId??s[1].schema.id??`schema${n.counter++}`;return s[1].defId=f,{defId:f,ref:`${p("__shared")}#/${a}/${f}`}}if(s[1]===r)return{ref:"#"};let l=`#/${a}/`,u=s[1].schema.id??`__schema${n.counter++}`;return{defId:u,ref:l+u}},o=s=>{if(s[1].schema.$ref)return;let a=s[1],{ref:c,defId:l}=t(s);a.def={...a.schema},l&&(a.defId=l);let u=a.schema;for(let d in u)delete u[d];u.$ref=c};if(n.cycles==="throw")for(let s of n.seen.entries()){let a=s[1];if(a.cycle)throw new Error(`Cycle detected: #/${a.cycle?.join("/")}/<root>
774
+
775
+ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.`)}for(let s of n.seen.entries()){let a=s[1];if(e===s[0]){o(s);continue}if(n.external){let l=n.external.registry.get(s[0])?.id;if(e!==s[0]&&l){o(s);continue}}if(n.metadataRegistry.get(s[0])?.id){o(s);continue}if(a.cycle){o(s);continue}if(a.count>1&&n.reused==="ref"){o(s);continue}}}function dn(n,e){let r=n.seen.get(e);if(!r)throw new Error("Unprocessed schema. This is a bug in Zod.");let i=s=>{let a=n.seen.get(s);if(a.ref===null)return;let c=a.def??a.schema,l={...c},u=a.ref;if(a.ref=null,u){i(u);let p=n.seen.get(u),f=p.schema;if(f.$ref&&(n.target==="draft-07"||n.target==="draft-04"||n.target==="openapi-3.0")?(c.allOf=c.allOf??[],c.allOf.push(f)):Object.assign(c,f),Object.assign(c,l),s._zod.parent===u)for(let h in c)h==="$ref"||h==="allOf"||h in l||delete c[h];if(f.$ref&&p.def)for(let h in c)h==="$ref"||h==="allOf"||h in p.def&&JSON.stringify(c[h])===JSON.stringify(p.def[h])&&delete c[h]}let d=s._zod.parent;if(d&&d!==u){i(d);let p=n.seen.get(d);if(p?.schema.$ref&&(c.$ref=p.schema.$ref,p.def))for(let f in c)f==="$ref"||f==="allOf"||f in p.def&&JSON.stringify(c[f])===JSON.stringify(p.def[f])&&delete c[f]}n.override({zodSchema:s,jsonSchema:c,path:a.path??[]})};for(let s of[...n.seen.entries()].reverse())i(s[0]);let t={};if(n.target==="draft-2020-12"?t.$schema="https://json-schema.org/draft/2020-12/schema":n.target==="draft-07"?t.$schema="http://json-schema.org/draft-07/schema#":n.target==="draft-04"?t.$schema="http://json-schema.org/draft-04/schema#":n.target,n.external?.uri){let s=n.external.registry.get(e)?.id;if(!s)throw new Error("Schema is missing an `id` property");t.$id=n.external.uri(s)}Object.assign(t,r.def??r.schema);let o=n.external?.defs??{};for(let s of n.seen.entries()){let a=s[1];a.def&&a.defId&&(o[a.defId]=a.def)}n.external||Object.keys(o).length>0&&(n.target==="draft-2020-12"?t.$defs=o:t.definitions=o);try{let s=JSON.parse(JSON.stringify(t));return Object.defineProperty(s,"~standard",{value:{...e["~standard"],jsonSchema:{input:zr(e,"input",n.processors),output:zr(e,"output",n.processors)}},enumerable:!1,writable:!1}),s}catch{throw new Error("Error converting schema to JSON.")}}function Ue(n,e){let r=e??{seen:new Set};if(r.seen.has(n))return!1;r.seen.add(n);let i=n._zod.def;if(i.type==="transform")return!0;if(i.type==="array")return Ue(i.element,r);if(i.type==="set")return Ue(i.valueType,r);if(i.type==="lazy")return Ue(i.getter(),r);if(i.type==="promise"||i.type==="optional"||i.type==="nonoptional"||i.type==="nullable"||i.type==="readonly"||i.type==="default"||i.type==="prefault")return Ue(i.innerType,r);if(i.type==="intersection")return Ue(i.left,r)||Ue(i.right,r);if(i.type==="record"||i.type==="map")return Ue(i.keyType,r)||Ue(i.valueType,r);if(i.type==="pipe")return Ue(i.in,r)||Ue(i.out,r);if(i.type==="object"){for(let t in i.shape)if(Ue(i.shape[t],r))return!0;return!1}if(i.type==="union"){for(let t of i.options)if(Ue(t,r))return!0;return!1}if(i.type==="tuple"){for(let t of i.items)if(Ue(t,r))return!0;return!!(i.rest&&Ue(i.rest,r))}return!1}var tp=(n,e={})=>r=>{let i=ln({...r,processors:e});return oe(n,i),un(i,n),dn(i,n)},zr=(n,e,r={})=>i=>{let{libraryOptions:t,target:o}=i??{},s=ln({...t??{},target:o,io:e,processors:r});return oe(n,s),un(s,n),dn(s,n)};var Ck={guid:"uuid",url:"uri",datetime:"date-time",json_string:"json-string",regex:""},np=(n,e,r,i)=>{let t=r;t.type="string";let{minimum:o,maximum:s,format:a,patterns:c,contentEncoding:l}=n._zod.bag;if(typeof o=="number"&&(t.minLength=o),typeof s=="number"&&(t.maxLength=s),a&&(t.format=Ck[a]??a,t.format===""&&delete t.format,a==="time"&&delete t.format),l&&(t.contentEncoding=l),c&&c.size>0){let u=[...c];u.length===1?t.pattern=u[0].source:u.length>1&&(t.allOf=[...u.map(d=>({...e.target==="draft-07"||e.target==="draft-04"||e.target==="openapi-3.0"?{type:"string"}:{},pattern:d.source}))])}},rp=(n,e,r,i)=>{let t=r,{minimum:o,maximum:s,format:a,multipleOf:c,exclusiveMaximum:l,exclusiveMinimum:u}=n._zod.bag;typeof a=="string"&&a.includes("int")?t.type="integer":t.type="number",typeof u=="number"&&(e.target==="draft-04"||e.target==="openapi-3.0"?(t.minimum=u,t.exclusiveMinimum=!0):t.exclusiveMinimum=u),typeof o=="number"&&(t.minimum=o,typeof u=="number"&&e.target!=="draft-04"&&(u>=o?delete t.minimum:delete t.exclusiveMinimum)),typeof l=="number"&&(e.target==="draft-04"||e.target==="openapi-3.0"?(t.maximum=l,t.exclusiveMaximum=!0):t.exclusiveMaximum=l),typeof s=="number"&&(t.maximum=s,typeof l=="number"&&e.target!=="draft-04"&&(l<=s?delete t.maximum:delete t.exclusiveMaximum)),typeof c=="number"&&(t.multipleOf=c)},ip=(n,e,r,i)=>{r.type="boolean"},op=(n,e,r,i)=>{if(e.unrepresentable==="throw")throw new Error("BigInt cannot be represented in JSON Schema")},sp=(n,e,r,i)=>{if(e.unrepresentable==="throw")throw new Error("Symbols cannot be represented in JSON Schema")},ap=(n,e,r,i)=>{e.target==="openapi-3.0"?(r.type="string",r.nullable=!0,r.enum=[null]):r.type="null"},cp=(n,e,r,i)=>{if(e.unrepresentable==="throw")throw new Error("Undefined cannot be represented in JSON Schema")},lp=(n,e,r,i)=>{if(e.unrepresentable==="throw")throw new Error("Void cannot be represented in JSON Schema")},up=(n,e,r,i)=>{r.not={}},dp=(n,e,r,i)=>{},pp=(n,e,r,i)=>{},mp=(n,e,r,i)=>{if(e.unrepresentable==="throw")throw new Error("Date cannot be represented in JSON Schema")},fp=(n,e,r,i)=>{let t=n._zod.def,o=fi(t.entries);o.every(s=>typeof s=="number")&&(r.type="number"),o.every(s=>typeof s=="string")&&(r.type="string"),r.enum=o},hp=(n,e,r,i)=>{let t=n._zod.def,o=[];for(let s of t.values)if(s===void 0){if(e.unrepresentable==="throw")throw new Error("Literal `undefined` cannot be represented in JSON Schema")}else if(typeof s=="bigint"){if(e.unrepresentable==="throw")throw new Error("BigInt literals cannot be represented in JSON Schema");o.push(Number(s))}else o.push(s);if(o.length!==0)if(o.length===1){let s=o[0];r.type=s===null?"null":typeof s,e.target==="draft-04"||e.target==="openapi-3.0"?r.enum=[s]:r.const=s}else o.every(s=>typeof s=="number")&&(r.type="number"),o.every(s=>typeof s=="string")&&(r.type="string"),o.every(s=>typeof s=="boolean")&&(r.type="boolean"),o.every(s=>s===null)&&(r.type="null"),r.enum=o},gp=(n,e,r,i)=>{if(e.unrepresentable==="throw")throw new Error("NaN cannot be represented in JSON Schema")},yp=(n,e,r,i)=>{let t=r,o=n._zod.pattern;if(!o)throw new Error("Pattern not found in template literal");t.type="string",t.pattern=o.source},bp=(n,e,r,i)=>{let t=r,o={type:"string",format:"binary",contentEncoding:"binary"},{minimum:s,maximum:a,mime:c}=n._zod.bag;s!==void 0&&(o.minLength=s),a!==void 0&&(o.maxLength=a),c?c.length===1?(o.contentMediaType=c[0],Object.assign(t,o)):(Object.assign(t,o),t.anyOf=c.map(l=>({contentMediaType:l}))):Object.assign(t,o)},vp=(n,e,r,i)=>{r.type="boolean"},_p=(n,e,r,i)=>{if(e.unrepresentable==="throw")throw new Error("Custom types cannot be represented in JSON Schema")},xp=(n,e,r,i)=>{if(e.unrepresentable==="throw")throw new Error("Function types cannot be represented in JSON Schema")},Sp=(n,e,r,i)=>{if(e.unrepresentable==="throw")throw new Error("Transforms cannot be represented in JSON Schema")},$p=(n,e,r,i)=>{if(e.unrepresentable==="throw")throw new Error("Map cannot be represented in JSON Schema")},wp=(n,e,r,i)=>{if(e.unrepresentable==="throw")throw new Error("Set cannot be represented in JSON Schema")},kp=(n,e,r,i)=>{let t=r,o=n._zod.def,{minimum:s,maximum:a}=n._zod.bag;typeof s=="number"&&(t.minItems=s),typeof a=="number"&&(t.maxItems=a),t.type="array",t.items=oe(o.element,e,{...i,path:[...i.path,"items"]})},Ep=(n,e,r,i)=>{let t=r,o=n._zod.def;t.type="object",t.properties={};let s=o.shape;for(let l in s)t.properties[l]=oe(s[l],e,{...i,path:[...i.path,"properties",l]});let a=new Set(Object.keys(s)),c=new Set([...a].filter(l=>{let u=o.shape[l]._zod;return e.io==="input"?u.optin===void 0:u.optout===void 0}));c.size>0&&(t.required=Array.from(c)),o.catchall?._zod.def.type==="never"?t.additionalProperties=!1:o.catchall?o.catchall&&(t.additionalProperties=oe(o.catchall,e,{...i,path:[...i.path,"additionalProperties"]})):e.io==="output"&&(t.additionalProperties=!1)},ra=(n,e,r,i)=>{let t=n._zod.def,o=t.inclusive===!1,s=t.options.map((a,c)=>oe(a,e,{...i,path:[...i.path,o?"oneOf":"anyOf",c]}));o?r.oneOf=s:r.anyOf=s},Ip=(n,e,r,i)=>{let t=n._zod.def,o=oe(t.left,e,{...i,path:[...i.path,"allOf",0]}),s=oe(t.right,e,{...i,path:[...i.path,"allOf",1]}),a=l=>"allOf"in l&&Object.keys(l).length===1,c=[...a(o)?o.allOf:[o],...a(s)?s.allOf:[s]];r.allOf=c},Tp=(n,e,r,i)=>{let t=r,o=n._zod.def;t.type="array";let s=e.target==="draft-2020-12"?"prefixItems":"items",a=e.target==="draft-2020-12"||e.target==="openapi-3.0"?"items":"additionalItems",c=o.items.map((p,f)=>oe(p,e,{...i,path:[...i.path,s,f]})),l=o.rest?oe(o.rest,e,{...i,path:[...i.path,a,...e.target==="openapi-3.0"?[o.items.length]:[]]}):null;e.target==="draft-2020-12"?(t.prefixItems=c,l&&(t.items=l)):e.target==="openapi-3.0"?(t.items={anyOf:c},l&&t.items.anyOf.push(l),t.minItems=c.length,l||(t.maxItems=c.length)):(t.items=c,l&&(t.additionalItems=l));let{minimum:u,maximum:d}=n._zod.bag;typeof u=="number"&&(t.minItems=u),typeof d=="number"&&(t.maxItems=d)},Pp=(n,e,r,i)=>{let t=r,o=n._zod.def;t.type="object";let s=o.keyType,c=s._zod.bag?.patterns;if(o.mode==="loose"&&c&&c.size>0){let u=oe(o.valueType,e,{...i,path:[...i.path,"patternProperties","*"]});t.patternProperties={};for(let d of c)t.patternProperties[d.source]=u}else(e.target==="draft-07"||e.target==="draft-2020-12")&&(t.propertyNames=oe(o.keyType,e,{...i,path:[...i.path,"propertyNames"]})),t.additionalProperties=oe(o.valueType,e,{...i,path:[...i.path,"additionalProperties"]});let l=s._zod.values;if(l){let u=[...l].filter(d=>typeof d=="string"||typeof d=="number");u.length>0&&(t.required=u)}},Rp=(n,e,r,i)=>{let t=n._zod.def,o=oe(t.innerType,e,i),s=e.seen.get(n);e.target==="openapi-3.0"?(s.ref=t.innerType,r.nullable=!0):r.anyOf=[o,{type:"null"}]},zp=(n,e,r,i)=>{let t=n._zod.def;oe(t.innerType,e,i);let o=e.seen.get(n);o.ref=t.innerType},Np=(n,e,r,i)=>{let t=n._zod.def;oe(t.innerType,e,i);let o=e.seen.get(n);o.ref=t.innerType,r.default=JSON.parse(JSON.stringify(t.defaultValue))},Cp=(n,e,r,i)=>{let t=n._zod.def;oe(t.innerType,e,i);let o=e.seen.get(n);o.ref=t.innerType,e.io==="input"&&(r._prefault=JSON.parse(JSON.stringify(t.defaultValue)))},Dp=(n,e,r,i)=>{let t=n._zod.def;oe(t.innerType,e,i);let o=e.seen.get(n);o.ref=t.innerType;let s;try{s=t.catchValue(void 0)}catch{throw new Error("Dynamic catch values are not supported in JSON Schema")}r.default=s},Lp=(n,e,r,i)=>{let t=n._zod.def,o=e.io==="input"?t.in._zod.def.type==="transform"?t.out:t.in:t.out;oe(o,e,i);let s=e.seen.get(n);s.ref=o},Ap=(n,e,r,i)=>{let t=n._zod.def;oe(t.innerType,e,i);let o=e.seen.get(n);o.ref=t.innerType,r.readOnly=!0},Op=(n,e,r,i)=>{let t=n._zod.def;oe(t.innerType,e,i);let o=e.seen.get(n);o.ref=t.innerType},ia=(n,e,r,i)=>{let t=n._zod.def;oe(t.innerType,e,i);let o=e.seen.get(n);o.ref=t.innerType},Mp=(n,e,r,i)=>{let t=n._zod.innerType;oe(t,e,i);let o=e.seen.get(n);o.ref=t},na={string:np,number:rp,boolean:ip,bigint:op,symbol:sp,null:ap,undefined:cp,void:lp,never:up,any:dp,unknown:pp,date:mp,enum:fp,literal:hp,nan:gp,template_literal:yp,file:bp,success:vp,custom:_p,function:xp,transform:Sp,map:$p,set:wp,array:kp,object:Ep,union:ra,intersection:Ip,tuple:Tp,record:Pp,nullable:Rp,nonoptional:zp,default:Np,prefault:Cp,catch:Dp,pipe:Lp,readonly:Ap,promise:Op,optional:ia,lazy:Mp};function oa(n,e){if("_idmap"in n){let i=n,t=ln({...e,processors:na}),o={};for(let c of i._idmap.entries()){let[l,u]=c;oe(u,t)}let s={},a={registry:i,uri:e?.uri,defs:o};t.external=a;for(let c of i._idmap.entries()){let[l,u]=c;un(t,u),s[l]=dn(t,u)}if(Object.keys(o).length>0){let c=t.target==="draft-2020-12"?"$defs":"definitions";s.__shared={[c]:o}}return{schemas:s}}let r=ln({...e,processors:na});return oe(n,r),un(r,n),dn(r,n)}var sa=class{get metadataRegistry(){return this.ctx.metadataRegistry}get target(){return this.ctx.target}get unrepresentable(){return this.ctx.unrepresentable}get override(){return this.ctx.override}get io(){return this.ctx.io}get counter(){return this.ctx.counter}set counter(e){this.ctx.counter=e}get seen(){return this.ctx.seen}constructor(e){let r=e?.target??"draft-2020-12";r==="draft-4"&&(r="draft-04"),r==="draft-7"&&(r="draft-07"),this.ctx=ln({processors:na,target:r,...e?.metadata&&{metadata:e.metadata},...e?.unrepresentable&&{unrepresentable:e.unrepresentable},...e?.override&&{override:e.override},...e?.io&&{io:e.io}})}process(e,r={path:[],schemaPath:[]}){return oe(e,this.ctx,r)}emit(e,r){r&&(r.cycles&&(this.ctx.cycles=r.cycles),r.reused&&(this.ctx.reused=r.reused),r.external&&(this.ctx.external=r.external)),un(this.ctx,e);let i=dn(this.ctx,e),{"~standard":t,...o}=i;return o}};var xb={};var Ni={};et(Ni,{ZodAny:()=>cm,ZodArray:()=>pm,ZodBase64:()=>Ia,ZodBase64URL:()=>Ta,ZodBigInt:()=>Mr,ZodBigIntFormat:()=>za,ZodBoolean:()=>Or,ZodCIDRv4:()=>ka,ZodCIDRv6:()=>Ea,ZodCUID:()=>ba,ZodCUID2:()=>va,ZodCatch:()=>Dm,ZodCodec:()=>ja,ZodCustom:()=>Hi,ZodCustomStringFormat:()=>Lr,ZodDate:()=>Mi,ZodDefault:()=>Tm,ZodDiscriminatedUnion:()=>fm,ZodE164:()=>Pa,ZodEmail:()=>ha,ZodEmoji:()=>ga,ZodEnum:()=>Cr,ZodExactOptional:()=>km,ZodFile:()=>$m,ZodFunction:()=>Hm,ZodGUID:()=>Ci,ZodIPv4:()=>$a,ZodIPv6:()=>wa,ZodIntersection:()=>hm,ZodJWT:()=>Ra,ZodKSUID:()=>Sa,ZodLazy:()=>Fm,ZodLiteral:()=>Sm,ZodMAC:()=>tm,ZodMap:()=>_m,ZodNaN:()=>Am,ZodNanoID:()=>ya,ZodNever:()=>um,ZodNonOptional:()=>Oa,ZodNull:()=>sm,ZodNullable:()=>Im,ZodNumber:()=>Ar,ZodNumberFormat:()=>Zn,ZodObject:()=>Fi,ZodOptional:()=>Aa,ZodPipe:()=>Ma,ZodPrefault:()=>Rm,ZodPromise:()=>Zm,ZodReadonly:()=>Om,ZodRecord:()=>Zi,ZodSet:()=>xm,ZodString:()=>Dr,ZodStringFormat:()=>ce,ZodSuccess:()=>Cm,ZodSymbol:()=>im,ZodTemplateLiteral:()=>jm,ZodTransform:()=>wm,ZodTuple:()=>ym,ZodType:()=>te,ZodULID:()=>_a,ZodURL:()=>Oi,ZodUUID:()=>It,ZodUndefined:()=>om,ZodUnion:()=>Ui,ZodUnknown:()=>lm,ZodVoid:()=>dm,ZodXID:()=>xa,ZodXor:()=>mm,_ZodString:()=>fa,_default:()=>Pm,_function:()=>Tv,any:()=>sv,array:()=>ji,base64:()=>Hb,base64url:()=>Wb,bigint:()=>tv,boolean:()=>rm,catch:()=>Lm,check:()=>Pv,cidrv4:()=>Ub,cidrv6:()=>Zb,codec:()=>kv,cuid:()=>Cb,cuid2:()=>Db,custom:()=>Rv,date:()=>cv,describe:()=>zv,discriminatedUnion:()=>fv,e164:()=>Bb,email:()=>$b,emoji:()=>zb,enum:()=>Da,exactOptional:()=>Em,file:()=>xv,float32:()=>Yb,float64:()=>Xb,function:()=>Tv,guid:()=>wb,hash:()=>Kb,hex:()=>Vb,hostname:()=>qb,httpUrl:()=>Rb,instanceof:()=>Cv,int:()=>ma,int32:()=>Qb,int64:()=>nv,intersection:()=>gm,ipv4:()=>Mb,ipv6:()=>Fb,json:()=>Lv,jwt:()=>Gb,keyof:()=>lv,ksuid:()=>Ob,lazy:()=>Um,literal:()=>_v,looseObject:()=>pv,looseRecord:()=>gv,mac:()=>jb,map:()=>yv,meta:()=>Nv,nan:()=>wv,nanoid:()=>Nb,nativeEnum:()=>vv,never:()=>Na,nonoptional:()=>Nm,null:()=>am,nullable:()=>Li,nullish:()=>Sv,number:()=>nm,object:()=>uv,optional:()=>Di,partialRecord:()=>hv,pipe:()=>Ai,prefault:()=>zm,preprocess:()=>Av,promise:()=>Iv,readonly:()=>Mm,record:()=>vm,refine:()=>Wm,set:()=>bv,strictObject:()=>dv,string:()=>pa,stringFormat:()=>Jb,stringbool:()=>Dv,success:()=>$v,superRefine:()=>Bm,symbol:()=>iv,templateLiteral:()=>Ev,transform:()=>La,tuple:()=>bm,uint32:()=>ev,uint64:()=>rv,ulid:()=>Lb,undefined:()=>ov,union:()=>Ca,unknown:()=>Un,url:()=>Pb,uuid:()=>kb,uuidv4:()=>Eb,uuidv6:()=>Ib,uuidv7:()=>Tb,void:()=>av,xid:()=>Ab,xor:()=>mv});var aa={};et(aa,{endsWith:()=>$r,gt:()=>kt,gte:()=>Fe,includes:()=>xr,length:()=>Fn,lowercase:()=>vr,lt:()=>wt,lte:()=>Xe,maxLength:()=>jn,maxSize:()=>cn,mime:()=>wr,minLength:()=>Ot,minSize:()=>Et,multipleOf:()=>an,negative:()=>Xs,nonnegative:()=>ea,nonpositive:()=>Qs,normalize:()=>kr,overwrite:()=>vt,positive:()=>Ys,property:()=>ta,regex:()=>br,size:()=>Mn,slugify:()=>Pr,startsWith:()=>Sr,toLowerCase:()=>Ir,toUpperCase:()=>Tr,trim:()=>Er,uppercase:()=>_r});var Nr={};et(Nr,{ZodISODate:()=>la,ZodISODateTime:()=>ca,ZodISODuration:()=>da,ZodISOTime:()=>ua,date:()=>Fp,datetime:()=>jp,duration:()=>Zp,time:()=>Up});var ca=k("ZodISODateTime",(n,e)=>{gu.init(n,e),ce.init(n,e)});function jp(n){return _d(ca,n)}var la=k("ZodISODate",(n,e)=>{yu.init(n,e),ce.init(n,e)});function Fp(n){return xd(la,n)}var ua=k("ZodISOTime",(n,e)=>{bu.init(n,e),ce.init(n,e)});function Up(n){return Sd(ua,n)}var da=k("ZodISODuration",(n,e)=>{vu.init(n,e),ce.init(n,e)});function Zp(n){return $d(da,n)}var Sb=(n,e)=>{vi.init(n,e),n.name="ZodError",Object.defineProperties(n,{format:{value:r=>xi(n,r)},flatten:{value:r=>_i(n,r)},addIssue:{value:r=>{n.issues.push(r),n.message=JSON.stringify(n.issues,lr,2)}},addIssues:{value:r=>{n.issues.push(...r),n.message=JSON.stringify(n.issues,lr,2)}},isEmpty:{get(){return n.issues.length===0}}})},Lk=k("ZodError",Sb),Ke=k("ZodError",Sb,{Parent:Error});var Hp=pr(Ke),Wp=mr(Ke),Bp=fr(Ke),Gp=hr(Ke),Jp=os(Ke),qp=ss(Ke),Vp=as(Ke),Kp=cs(Ke),Yp=ls(Ke),Xp=us(Ke),Qp=ds(Ke),em=ps(Ke);var te=k("ZodType",(n,e)=>(Y.init(n,e),Object.assign(n["~standard"],{jsonSchema:{input:zr(n,"input"),output:zr(n,"output")}}),n.toJSONSchema=tp(n,{}),n.def=e,n.type=e.type,Object.defineProperty(n,"_def",{value:e}),n.check=(...r)=>n.clone(M.mergeDefs(e,{checks:[...e.checks??[],...r.map(i=>typeof i=="function"?{_zod:{check:i,def:{check:"custom"},onattach:[]}}:i)]}),{parent:!0}),n.with=n.check,n.clone=(r,i)=>je(n,r,i),n.brand=()=>n,n.register=((r,i)=>(r.add(n,i),n)),n.parse=(r,i)=>Hp(n,r,i,{callee:n.parse}),n.safeParse=(r,i)=>Bp(n,r,i),n.parseAsync=async(r,i)=>Wp(n,r,i,{callee:n.parseAsync}),n.safeParseAsync=async(r,i)=>Gp(n,r,i),n.spa=n.safeParseAsync,n.encode=(r,i)=>Jp(n,r,i),n.decode=(r,i)=>qp(n,r,i),n.encodeAsync=async(r,i)=>Vp(n,r,i),n.decodeAsync=async(r,i)=>Kp(n,r,i),n.safeEncode=(r,i)=>Yp(n,r,i),n.safeDecode=(r,i)=>Xp(n,r,i),n.safeEncodeAsync=async(r,i)=>Qp(n,r,i),n.safeDecodeAsync=async(r,i)=>em(n,r,i),n.refine=(r,i)=>n.check(Wm(r,i)),n.superRefine=r=>n.check(Bm(r)),n.overwrite=r=>n.check(vt(r)),n.optional=()=>Di(n),n.exactOptional=()=>Em(n),n.nullable=()=>Li(n),n.nullish=()=>Di(Li(n)),n.nonoptional=r=>Nm(n,r),n.array=()=>ji(n),n.or=r=>Ca([n,r]),n.and=r=>gm(n,r),n.transform=r=>Ai(n,La(r)),n.default=r=>Pm(n,r),n.prefault=r=>zm(n,r),n.catch=r=>Lm(n,r),n.pipe=r=>Ai(n,r),n.readonly=()=>Mm(n),n.describe=r=>{let i=n.clone();return De.add(i,{description:r}),i},Object.defineProperty(n,"description",{get(){return De.get(n)?.description},configurable:!0}),n.meta=(...r)=>{if(r.length===0)return De.get(n);let i=n.clone();return De.add(i,r[0]),i},n.isOptional=()=>n.safeParse(void 0).success,n.isNullable=()=>n.safeParse(null).success,n.apply=r=>r(n),n)),fa=k("_ZodString",(n,e)=>{On.init(n,e),te.init(n,e),n._zod.processJSONSchema=(i,t,o)=>np(n,i,t,o);let r=n._zod.bag;n.format=r.format??null,n.minLength=r.minimum??null,n.maxLength=r.maximum??null,n.regex=(...i)=>n.check(br(...i)),n.includes=(...i)=>n.check(xr(...i)),n.startsWith=(...i)=>n.check(Sr(...i)),n.endsWith=(...i)=>n.check($r(...i)),n.min=(...i)=>n.check(Ot(...i)),n.max=(...i)=>n.check(jn(...i)),n.length=(...i)=>n.check(Fn(...i)),n.nonempty=(...i)=>n.check(Ot(1,...i)),n.lowercase=i=>n.check(vr(i)),n.uppercase=i=>n.check(_r(i)),n.trim=()=>n.check(Er()),n.normalize=(...i)=>n.check(kr(...i)),n.toLowerCase=()=>n.check(Ir()),n.toUpperCase=()=>n.check(Tr()),n.slugify=()=>n.check(Pr())}),Dr=k("ZodString",(n,e)=>{On.init(n,e),fa.init(n,e),n.email=r=>n.check(zs(ha,r)),n.url=r=>n.check(zi(Oi,r)),n.jwt=r=>n.check(Ks(Ra,r)),n.emoji=r=>n.check(As(ga,r)),n.guid=r=>n.check(Ri(Ci,r)),n.uuid=r=>n.check(Ns(It,r)),n.uuidv4=r=>n.check(Cs(It,r)),n.uuidv6=r=>n.check(Ds(It,r)),n.uuidv7=r=>n.check(Ls(It,r)),n.nanoid=r=>n.check(Os(ya,r)),n.guid=r=>n.check(Ri(Ci,r)),n.cuid=r=>n.check(Ms(ba,r)),n.cuid2=r=>n.check(js(va,r)),n.ulid=r=>n.check(Fs(_a,r)),n.base64=r=>n.check(Js(Ia,r)),n.base64url=r=>n.check(qs(Ta,r)),n.xid=r=>n.check(Us(xa,r)),n.ksuid=r=>n.check(Zs(Sa,r)),n.ipv4=r=>n.check(Hs($a,r)),n.ipv6=r=>n.check(Ws(wa,r)),n.cidrv4=r=>n.check(Bs(ka,r)),n.cidrv6=r=>n.check(Gs(Ea,r)),n.e164=r=>n.check(Vs(Pa,r)),n.datetime=r=>n.check(jp(r)),n.date=r=>n.check(Fp(r)),n.time=r=>n.check(Up(r)),n.duration=r=>n.check(Zp(r))});function pa(n){return gd(Dr,n)}var ce=k("ZodStringFormat",(n,e)=>{ae.init(n,e),fa.init(n,e)}),ha=k("ZodEmail",(n,e)=>{au.init(n,e),ce.init(n,e)});function $b(n){return zs(ha,n)}var Ci=k("ZodGUID",(n,e)=>{ou.init(n,e),ce.init(n,e)});function wb(n){return Ri(Ci,n)}var It=k("ZodUUID",(n,e)=>{su.init(n,e),ce.init(n,e)});function kb(n){return Ns(It,n)}function Eb(n){return Cs(It,n)}function Ib(n){return Ds(It,n)}function Tb(n){return Ls(It,n)}var Oi=k("ZodURL",(n,e)=>{cu.init(n,e),ce.init(n,e)});function Pb(n){return zi(Oi,n)}function Rb(n){return zi(Oi,{protocol:/^https?$/,hostname:at.domain,...M.normalizeParams(n)})}var ga=k("ZodEmoji",(n,e)=>{lu.init(n,e),ce.init(n,e)});function zb(n){return As(ga,n)}var ya=k("ZodNanoID",(n,e)=>{uu.init(n,e),ce.init(n,e)});function Nb(n){return Os(ya,n)}var ba=k("ZodCUID",(n,e)=>{du.init(n,e),ce.init(n,e)});function Cb(n){return Ms(ba,n)}var va=k("ZodCUID2",(n,e)=>{pu.init(n,e),ce.init(n,e)});function Db(n){return js(va,n)}var _a=k("ZodULID",(n,e)=>{mu.init(n,e),ce.init(n,e)});function Lb(n){return Fs(_a,n)}var xa=k("ZodXID",(n,e)=>{fu.init(n,e),ce.init(n,e)});function Ab(n){return Us(xa,n)}var Sa=k("ZodKSUID",(n,e)=>{hu.init(n,e),ce.init(n,e)});function Ob(n){return Zs(Sa,n)}var $a=k("ZodIPv4",(n,e)=>{_u.init(n,e),ce.init(n,e)});function Mb(n){return Hs($a,n)}var tm=k("ZodMAC",(n,e)=>{Su.init(n,e),ce.init(n,e)});function jb(n){return bd(tm,n)}var wa=k("ZodIPv6",(n,e)=>{xu.init(n,e),ce.init(n,e)});function Fb(n){return Ws(wa,n)}var ka=k("ZodCIDRv4",(n,e)=>{$u.init(n,e),ce.init(n,e)});function Ub(n){return Bs(ka,n)}var Ea=k("ZodCIDRv6",(n,e)=>{wu.init(n,e),ce.init(n,e)});function Zb(n){return Gs(Ea,n)}var Ia=k("ZodBase64",(n,e)=>{Eu.init(n,e),ce.init(n,e)});function Hb(n){return Js(Ia,n)}var Ta=k("ZodBase64URL",(n,e)=>{Iu.init(n,e),ce.init(n,e)});function Wb(n){return qs(Ta,n)}var Pa=k("ZodE164",(n,e)=>{Tu.init(n,e),ce.init(n,e)});function Bb(n){return Vs(Pa,n)}var Ra=k("ZodJWT",(n,e)=>{Pu.init(n,e),ce.init(n,e)});function Gb(n){return Ks(Ra,n)}var Lr=k("ZodCustomStringFormat",(n,e)=>{Ru.init(n,e),ce.init(n,e)});function Jb(n,e,r={}){return Rr(Lr,n,e,r)}function qb(n){return Rr(Lr,"hostname",at.hostname,n)}function Vb(n){return Rr(Lr,"hex",at.hex,n)}function Kb(n,e){let r=e?.enc??"hex",i=`${n}_${r}`,t=at[i];if(!t)throw new Error(`Unrecognized hash format: ${i}`);return Rr(Lr,i,t,e)}var Ar=k("ZodNumber",(n,e)=>{Ss.init(n,e),te.init(n,e),n._zod.processJSONSchema=(i,t,o)=>rp(n,i,t,o),n.gt=(i,t)=>n.check(kt(i,t)),n.gte=(i,t)=>n.check(Fe(i,t)),n.min=(i,t)=>n.check(Fe(i,t)),n.lt=(i,t)=>n.check(wt(i,t)),n.lte=(i,t)=>n.check(Xe(i,t)),n.max=(i,t)=>n.check(Xe(i,t)),n.int=i=>n.check(ma(i)),n.safe=i=>n.check(ma(i)),n.positive=i=>n.check(kt(0,i)),n.nonnegative=i=>n.check(Fe(0,i)),n.negative=i=>n.check(wt(0,i)),n.nonpositive=i=>n.check(Xe(0,i)),n.multipleOf=(i,t)=>n.check(an(i,t)),n.step=(i,t)=>n.check(an(i,t)),n.finite=()=>n;let r=n._zod.bag;n.minValue=Math.max(r.minimum??Number.NEGATIVE_INFINITY,r.exclusiveMinimum??Number.NEGATIVE_INFINITY)??null,n.maxValue=Math.min(r.maximum??Number.POSITIVE_INFINITY,r.exclusiveMaximum??Number.POSITIVE_INFINITY)??null,n.isInt=(r.format??"").includes("int")||Number.isSafeInteger(r.multipleOf??.5),n.isFinite=!0,n.format=r.format??null});function nm(n){return wd(Ar,n)}var Zn=k("ZodNumberFormat",(n,e)=>{zu.init(n,e),Ar.init(n,e)});function ma(n){return Ed(Zn,n)}function Yb(n){return Id(Zn,n)}function Xb(n){return Td(Zn,n)}function Qb(n){return Pd(Zn,n)}function ev(n){return Rd(Zn,n)}var Or=k("ZodBoolean",(n,e)=>{ki.init(n,e),te.init(n,e),n._zod.processJSONSchema=(r,i,t)=>ip(n,r,i,t)});function rm(n){return zd(Or,n)}var Mr=k("ZodBigInt",(n,e)=>{$s.init(n,e),te.init(n,e),n._zod.processJSONSchema=(i,t,o)=>op(n,i,t,o),n.gte=(i,t)=>n.check(Fe(i,t)),n.min=(i,t)=>n.check(Fe(i,t)),n.gt=(i,t)=>n.check(kt(i,t)),n.gte=(i,t)=>n.check(Fe(i,t)),n.min=(i,t)=>n.check(Fe(i,t)),n.lt=(i,t)=>n.check(wt(i,t)),n.lte=(i,t)=>n.check(Xe(i,t)),n.max=(i,t)=>n.check(Xe(i,t)),n.positive=i=>n.check(kt(BigInt(0),i)),n.negative=i=>n.check(wt(BigInt(0),i)),n.nonpositive=i=>n.check(Xe(BigInt(0),i)),n.nonnegative=i=>n.check(Fe(BigInt(0),i)),n.multipleOf=(i,t)=>n.check(an(i,t));let r=n._zod.bag;n.minValue=r.minimum??null,n.maxValue=r.maximum??null,n.format=r.format??null});function tv(n){return Cd(Mr,n)}var za=k("ZodBigIntFormat",(n,e)=>{Nu.init(n,e),Mr.init(n,e)});function nv(n){return Ld(za,n)}function rv(n){return Ad(za,n)}var im=k("ZodSymbol",(n,e)=>{Cu.init(n,e),te.init(n,e),n._zod.processJSONSchema=(r,i,t)=>sp(n,r,i,t)});function iv(n){return Od(im,n)}var om=k("ZodUndefined",(n,e)=>{Du.init(n,e),te.init(n,e),n._zod.processJSONSchema=(r,i,t)=>cp(n,r,i,t)});function ov(n){return Md(om,n)}var sm=k("ZodNull",(n,e)=>{Lu.init(n,e),te.init(n,e),n._zod.processJSONSchema=(r,i,t)=>ap(n,r,i,t)});function am(n){return jd(sm,n)}var cm=k("ZodAny",(n,e)=>{Au.init(n,e),te.init(n,e),n._zod.processJSONSchema=(r,i,t)=>dp(n,r,i,t)});function sv(){return Fd(cm)}var lm=k("ZodUnknown",(n,e)=>{Ou.init(n,e),te.init(n,e),n._zod.processJSONSchema=(r,i,t)=>pp(n,r,i,t)});function Un(){return Ud(lm)}var um=k("ZodNever",(n,e)=>{Mu.init(n,e),te.init(n,e),n._zod.processJSONSchema=(r,i,t)=>up(n,r,i,t)});function Na(n){return Zd(um,n)}var dm=k("ZodVoid",(n,e)=>{ju.init(n,e),te.init(n,e),n._zod.processJSONSchema=(r,i,t)=>lp(n,r,i,t)});function av(n){return Hd(dm,n)}var Mi=k("ZodDate",(n,e)=>{Fu.init(n,e),te.init(n,e),n._zod.processJSONSchema=(i,t,o)=>mp(n,i,t,o),n.min=(i,t)=>n.check(Fe(i,t)),n.max=(i,t)=>n.check(Xe(i,t));let r=n._zod.bag;n.minDate=r.minimum?new Date(r.minimum):null,n.maxDate=r.maximum?new Date(r.maximum):null});function cv(n){return Wd(Mi,n)}var pm=k("ZodArray",(n,e)=>{Uu.init(n,e),te.init(n,e),n._zod.processJSONSchema=(r,i,t)=>kp(n,r,i,t),n.element=e.element,n.min=(r,i)=>n.check(Ot(r,i)),n.nonempty=r=>n.check(Ot(1,r)),n.max=(r,i)=>n.check(jn(r,i)),n.length=(r,i)=>n.check(Fn(r,i)),n.unwrap=()=>n.element});function ji(n,e){return Jd(pm,n,e)}function lv(n){let e=n._zod.def.shape;return Da(Object.keys(e))}var Fi=k("ZodObject",(n,e)=>{Zu.init(n,e),te.init(n,e),n._zod.processJSONSchema=(r,i,t)=>Ep(n,r,i,t),M.defineLazy(n,"shape",()=>e.shape),n.keyof=()=>Da(Object.keys(n._zod.def.shape)),n.catchall=r=>n.clone({...n._zod.def,catchall:r}),n.passthrough=()=>n.clone({...n._zod.def,catchall:Un()}),n.loose=()=>n.clone({...n._zod.def,catchall:Un()}),n.strict=()=>n.clone({...n._zod.def,catchall:Na()}),n.strip=()=>n.clone({...n._zod.def,catchall:void 0}),n.extend=r=>M.extend(n,r),n.safeExtend=r=>M.safeExtend(n,r),n.merge=r=>M.merge(n,r),n.pick=r=>M.pick(n,r),n.omit=r=>M.omit(n,r),n.partial=(...r)=>M.partial(Aa,n,r[0]),n.required=(...r)=>M.required(Oa,n,r[0])});function uv(n,e){let r={type:"object",shape:n??{},...M.normalizeParams(e)};return new Fi(r)}function dv(n,e){return new Fi({type:"object",shape:n,catchall:Na(),...M.normalizeParams(e)})}function pv(n,e){return new Fi({type:"object",shape:n,catchall:Un(),...M.normalizeParams(e)})}var Ui=k("ZodUnion",(n,e)=>{Ei.init(n,e),te.init(n,e),n._zod.processJSONSchema=(r,i,t)=>ra(n,r,i,t),n.options=e.options});function Ca(n,e){return new Ui({type:"union",options:n,...M.normalizeParams(e)})}var mm=k("ZodXor",(n,e)=>{Ui.init(n,e),Hu.init(n,e),n._zod.processJSONSchema=(r,i,t)=>ra(n,r,i,t),n.options=e.options});function mv(n,e){return new mm({type:"union",options:n,inclusive:!1,...M.normalizeParams(e)})}var fm=k("ZodDiscriminatedUnion",(n,e)=>{Ui.init(n,e),Wu.init(n,e)});function fv(n,e,r){return new fm({type:"union",options:e,discriminator:n,...M.normalizeParams(r)})}var hm=k("ZodIntersection",(n,e)=>{Bu.init(n,e),te.init(n,e),n._zod.processJSONSchema=(r,i,t)=>Ip(n,r,i,t)});function gm(n,e){return new hm({type:"intersection",left:n,right:e})}var ym=k("ZodTuple",(n,e)=>{ws.init(n,e),te.init(n,e),n._zod.processJSONSchema=(r,i,t)=>Tp(n,r,i,t),n.rest=r=>n.clone({...n._zod.def,rest:r})});function bm(n,e,r){let i=e instanceof Y,t=i?r:e,o=i?e:null;return new ym({type:"tuple",items:n,rest:o,...M.normalizeParams(t)})}var Zi=k("ZodRecord",(n,e)=>{Gu.init(n,e),te.init(n,e),n._zod.processJSONSchema=(r,i,t)=>Pp(n,r,i,t),n.keyType=e.keyType,n.valueType=e.valueType});function vm(n,e,r){return new Zi({type:"record",keyType:n,valueType:e,...M.normalizeParams(r)})}function hv(n,e,r){let i=je(n);return i._zod.values=void 0,new Zi({type:"record",keyType:i,valueType:e,...M.normalizeParams(r)})}function gv(n,e,r){return new Zi({type:"record",keyType:n,valueType:e,mode:"loose",...M.normalizeParams(r)})}var _m=k("ZodMap",(n,e)=>{Ju.init(n,e),te.init(n,e),n._zod.processJSONSchema=(r,i,t)=>$p(n,r,i,t),n.keyType=e.keyType,n.valueType=e.valueType,n.min=(...r)=>n.check(Et(...r)),n.nonempty=r=>n.check(Et(1,r)),n.max=(...r)=>n.check(cn(...r)),n.size=(...r)=>n.check(Mn(...r))});function yv(n,e,r){return new _m({type:"map",keyType:n,valueType:e,...M.normalizeParams(r)})}var xm=k("ZodSet",(n,e)=>{qu.init(n,e),te.init(n,e),n._zod.processJSONSchema=(r,i,t)=>wp(n,r,i,t),n.min=(...r)=>n.check(Et(...r)),n.nonempty=r=>n.check(Et(1,r)),n.max=(...r)=>n.check(cn(...r)),n.size=(...r)=>n.check(Mn(...r))});function bv(n,e){return new xm({type:"set",valueType:n,...M.normalizeParams(e)})}var Cr=k("ZodEnum",(n,e)=>{Vu.init(n,e),te.init(n,e),n._zod.processJSONSchema=(i,t,o)=>fp(n,i,t,o),n.enum=e.entries,n.options=Object.values(e.entries);let r=new Set(Object.keys(e.entries));n.extract=(i,t)=>{let o={};for(let s of i)if(r.has(s))o[s]=e.entries[s];else throw new Error(`Key ${s} not found in enum`);return new Cr({...e,checks:[],...M.normalizeParams(t),entries:o})},n.exclude=(i,t)=>{let o={...e.entries};for(let s of i)if(r.has(s))delete o[s];else throw new Error(`Key ${s} not found in enum`);return new Cr({...e,checks:[],...M.normalizeParams(t),entries:o})}});function Da(n,e){let r=Array.isArray(n)?Object.fromEntries(n.map(i=>[i,i])):n;return new Cr({type:"enum",entries:r,...M.normalizeParams(e)})}function vv(n,e){return new Cr({type:"enum",entries:n,...M.normalizeParams(e)})}var Sm=k("ZodLiteral",(n,e)=>{Ku.init(n,e),te.init(n,e),n._zod.processJSONSchema=(r,i,t)=>hp(n,r,i,t),n.values=new Set(e.values),Object.defineProperty(n,"value",{get(){if(e.values.length>1)throw new Error("This schema contains multiple valid literal values. Use `.values` instead.");return e.values[0]}})});function _v(n,e){return new Sm({type:"literal",values:Array.isArray(n)?n:[n],...M.normalizeParams(e)})}var $m=k("ZodFile",(n,e)=>{Yu.init(n,e),te.init(n,e),n._zod.processJSONSchema=(r,i,t)=>bp(n,r,i,t),n.min=(r,i)=>n.check(Et(r,i)),n.max=(r,i)=>n.check(cn(r,i)),n.mime=(r,i)=>n.check(wr(Array.isArray(r)?r:[r],i))});function xv(n){return qd($m,n)}var wm=k("ZodTransform",(n,e)=>{Xu.init(n,e),te.init(n,e),n._zod.processJSONSchema=(r,i,t)=>Sp(n,r,i,t),n._zod.parse=(r,i)=>{if(i.direction==="backward")throw new tn(n.constructor.name);r.addIssue=o=>{if(typeof o=="string")r.issues.push(M.issue(o,r.value,e));else{let s=o;s.fatal&&(s.continue=!1),s.code??(s.code="custom"),s.input??(s.input=r.value),s.inst??(s.inst=n),r.issues.push(M.issue(s))}};let t=e.transform(r.value,r);return t instanceof Promise?t.then(o=>(r.value=o,r)):(r.value=t,r)}});function La(n){return new wm({type:"transform",transform:n})}var Aa=k("ZodOptional",(n,e)=>{ks.init(n,e),te.init(n,e),n._zod.processJSONSchema=(r,i,t)=>ia(n,r,i,t),n.unwrap=()=>n._zod.def.innerType});function Di(n){return new Aa({type:"optional",innerType:n})}var km=k("ZodExactOptional",(n,e)=>{Qu.init(n,e),te.init(n,e),n._zod.processJSONSchema=(r,i,t)=>ia(n,r,i,t),n.unwrap=()=>n._zod.def.innerType});function Em(n){return new km({type:"optional",innerType:n})}var Im=k("ZodNullable",(n,e)=>{ed.init(n,e),te.init(n,e),n._zod.processJSONSchema=(r,i,t)=>Rp(n,r,i,t),n.unwrap=()=>n._zod.def.innerType});function Li(n){return new Im({type:"nullable",innerType:n})}function Sv(n){return Di(Li(n))}var Tm=k("ZodDefault",(n,e)=>{td.init(n,e),te.init(n,e),n._zod.processJSONSchema=(r,i,t)=>Np(n,r,i,t),n.unwrap=()=>n._zod.def.innerType,n.removeDefault=n.unwrap});function Pm(n,e){return new Tm({type:"default",innerType:n,get defaultValue(){return typeof e=="function"?e():M.shallowClone(e)}})}var Rm=k("ZodPrefault",(n,e)=>{nd.init(n,e),te.init(n,e),n._zod.processJSONSchema=(r,i,t)=>Cp(n,r,i,t),n.unwrap=()=>n._zod.def.innerType});function zm(n,e){return new Rm({type:"prefault",innerType:n,get defaultValue(){return typeof e=="function"?e():M.shallowClone(e)}})}var Oa=k("ZodNonOptional",(n,e)=>{rd.init(n,e),te.init(n,e),n._zod.processJSONSchema=(r,i,t)=>zp(n,r,i,t),n.unwrap=()=>n._zod.def.innerType});function Nm(n,e){return new Oa({type:"nonoptional",innerType:n,...M.normalizeParams(e)})}var Cm=k("ZodSuccess",(n,e)=>{id.init(n,e),te.init(n,e),n._zod.processJSONSchema=(r,i,t)=>vp(n,r,i,t),n.unwrap=()=>n._zod.def.innerType});function $v(n){return new Cm({type:"success",innerType:n})}var Dm=k("ZodCatch",(n,e)=>{od.init(n,e),te.init(n,e),n._zod.processJSONSchema=(r,i,t)=>Dp(n,r,i,t),n.unwrap=()=>n._zod.def.innerType,n.removeCatch=n.unwrap});function Lm(n,e){return new Dm({type:"catch",innerType:n,catchValue:typeof e=="function"?e:()=>e})}var Am=k("ZodNaN",(n,e)=>{sd.init(n,e),te.init(n,e),n._zod.processJSONSchema=(r,i,t)=>gp(n,r,i,t)});function wv(n){return Gd(Am,n)}var Ma=k("ZodPipe",(n,e)=>{ad.init(n,e),te.init(n,e),n._zod.processJSONSchema=(r,i,t)=>Lp(n,r,i,t),n.in=e.in,n.out=e.out});function Ai(n,e){return new Ma({type:"pipe",in:n,out:e})}var ja=k("ZodCodec",(n,e)=>{Ma.init(n,e),Ii.init(n,e)});function kv(n,e,r){return new ja({type:"pipe",in:n,out:e,transform:r.decode,reverseTransform:r.encode})}var Om=k("ZodReadonly",(n,e)=>{cd.init(n,e),te.init(n,e),n._zod.processJSONSchema=(r,i,t)=>Ap(n,r,i,t),n.unwrap=()=>n._zod.def.innerType});function Mm(n){return new Om({type:"readonly",innerType:n})}var jm=k("ZodTemplateLiteral",(n,e)=>{ld.init(n,e),te.init(n,e),n._zod.processJSONSchema=(r,i,t)=>yp(n,r,i,t)});function Ev(n,e){return new jm({type:"template_literal",parts:n,...M.normalizeParams(e)})}var Fm=k("ZodLazy",(n,e)=>{pd.init(n,e),te.init(n,e),n._zod.processJSONSchema=(r,i,t)=>Mp(n,r,i,t),n.unwrap=()=>n._zod.def.getter()});function Um(n){return new Fm({type:"lazy",getter:n})}var Zm=k("ZodPromise",(n,e)=>{dd.init(n,e),te.init(n,e),n._zod.processJSONSchema=(r,i,t)=>Op(n,r,i,t),n.unwrap=()=>n._zod.def.innerType});function Iv(n){return new Zm({type:"promise",innerType:n})}var Hm=k("ZodFunction",(n,e)=>{ud.init(n,e),te.init(n,e),n._zod.processJSONSchema=(r,i,t)=>xp(n,r,i,t)});function Tv(n){return new Hm({type:"function",input:Array.isArray(n?.input)?bm(n?.input):n?.input??ji(Un()),output:n?.output??Un()})}var Hi=k("ZodCustom",(n,e)=>{md.init(n,e),te.init(n,e),n._zod.processJSONSchema=(r,i,t)=>_p(n,r,i,t)});function Pv(n){let e=new me({check:"custom"});return e._zod.check=n,e}function Rv(n,e){return Vd(Hi,n??(()=>!0),e)}function Wm(n,e={}){return Kd(Hi,n,e)}function Bm(n){return Yd(n)}var zv=Xd,Nv=Qd;function Cv(n,e={}){let r=new Hi({type:"custom",check:"custom",fn:i=>i instanceof n,abort:!0,...M.normalizeParams(e)});return r._zod.bag.Class=n,r._zod.check=i=>{i.value instanceof n||i.issues.push({code:"invalid_type",expected:n.name,input:i.value,inst:r,path:[...r._zod.def.path??[]]})},r}var Dv=(...n)=>ep({Codec:ja,Boolean:Or,String:Dr},...n);function Lv(n){let e=Um(()=>Ca([pa(n),nm(),rm(),am(),ji(e),vm(pa(),e)]));return e}function Av(n,e){return Ai(La(n),e)}var Ok={invalid_type:"invalid_type",too_big:"too_big",too_small:"too_small",invalid_format:"invalid_format",not_multiple_of:"not_multiple_of",unrecognized_keys:"unrecognized_keys",invalid_union:"invalid_union",invalid_key:"invalid_key",invalid_element:"invalid_element",invalid_value:"invalid_value",custom:"custom"};function Mk(n){xe({customError:n})}function jk(){return xe().customError}var Gm;Gm||(Gm={});var Z={...Ni,...aa,iso:Nr},Fk=new Set(["$schema","$ref","$defs","definitions","$id","id","$comment","$anchor","$vocabulary","$dynamicRef","$dynamicAnchor","type","enum","const","anyOf","oneOf","allOf","not","properties","required","additionalProperties","patternProperties","propertyNames","minProperties","maxProperties","items","prefixItems","additionalItems","minItems","maxItems","uniqueItems","contains","minContains","maxContains","minLength","maxLength","pattern","format","minimum","maximum","exclusiveMinimum","exclusiveMaximum","multipleOf","description","default","contentEncoding","contentMediaType","contentSchema","unevaluatedItems","unevaluatedProperties","if","then","else","dependentSchemas","dependentRequired","nullable","readOnly"]);function Uk(n,e){let r=n.$schema;return r==="https://json-schema.org/draft/2020-12/schema"?"draft-2020-12":r==="http://json-schema.org/draft-07/schema#"?"draft-7":r==="http://json-schema.org/draft-04/schema#"?"draft-4":e??"draft-2020-12"}function Zk(n,e){if(!n.startsWith("#"))throw new Error("External $ref is not supported, only local refs (#/...) are allowed");let r=n.slice(1).split("/").filter(Boolean);if(r.length===0)return e.rootSchema;let i=e.version==="draft-2020-12"?"$defs":"definitions";if(r[0]===i){let t=r[1];if(!t||!e.defs[t])throw new Error(`Reference not found: ${n}`);return e.defs[t]}throw new Error(`Reference not found: ${n}`)}function Ov(n,e){if(n.not!==void 0){if(typeof n.not=="object"&&Object.keys(n.not).length===0)return Z.never();throw new Error("not is not supported in Zod (except { not: {} } for never)")}if(n.unevaluatedItems!==void 0)throw new Error("unevaluatedItems is not supported");if(n.unevaluatedProperties!==void 0)throw new Error("unevaluatedProperties is not supported");if(n.if!==void 0||n.then!==void 0||n.else!==void 0)throw new Error("Conditional schemas (if/then/else) are not supported");if(n.dependentSchemas!==void 0||n.dependentRequired!==void 0)throw new Error("dependentSchemas and dependentRequired are not supported");if(n.$ref){let t=n.$ref;if(e.refs.has(t))return e.refs.get(t);if(e.processing.has(t))return Z.lazy(()=>{if(!e.refs.has(t))throw new Error(`Circular reference not resolved: ${t}`);return e.refs.get(t)});e.processing.add(t);let o=Zk(t,e),s=Le(o,e);return e.refs.set(t,s),e.processing.delete(t),s}if(n.enum!==void 0){let t=n.enum;if(e.version==="openapi-3.0"&&n.nullable===!0&&t.length===1&&t[0]===null)return Z.null();if(t.length===0)return Z.never();if(t.length===1)return Z.literal(t[0]);if(t.every(s=>typeof s=="string"))return Z.enum(t);let o=t.map(s=>Z.literal(s));return o.length<2?o[0]:Z.union([o[0],o[1],...o.slice(2)])}if(n.const!==void 0)return Z.literal(n.const);let r=n.type;if(Array.isArray(r)){let t=r.map(o=>{let s={...n,type:o};return Ov(s,e)});return t.length===0?Z.never():t.length===1?t[0]:Z.union(t)}if(!r)return Z.any();let i;switch(r){case"string":{let t=Z.string();if(n.format){let o=n.format;o==="email"?t=t.check(Z.email()):o==="uri"||o==="uri-reference"?t=t.check(Z.url()):o==="uuid"||o==="guid"?t=t.check(Z.uuid()):o==="date-time"?t=t.check(Z.iso.datetime()):o==="date"?t=t.check(Z.iso.date()):o==="time"?t=t.check(Z.iso.time()):o==="duration"?t=t.check(Z.iso.duration()):o==="ipv4"?t=t.check(Z.ipv4()):o==="ipv6"?t=t.check(Z.ipv6()):o==="mac"?t=t.check(Z.mac()):o==="cidr"?t=t.check(Z.cidrv4()):o==="cidr-v6"?t=t.check(Z.cidrv6()):o==="base64"?t=t.check(Z.base64()):o==="base64url"?t=t.check(Z.base64url()):o==="e164"?t=t.check(Z.e164()):o==="jwt"?t=t.check(Z.jwt()):o==="emoji"?t=t.check(Z.emoji()):o==="nanoid"?t=t.check(Z.nanoid()):o==="cuid"?t=t.check(Z.cuid()):o==="cuid2"?t=t.check(Z.cuid2()):o==="ulid"?t=t.check(Z.ulid()):o==="xid"?t=t.check(Z.xid()):o==="ksuid"&&(t=t.check(Z.ksuid()))}typeof n.minLength=="number"&&(t=t.min(n.minLength)),typeof n.maxLength=="number"&&(t=t.max(n.maxLength)),n.pattern&&(t=t.regex(new RegExp(n.pattern))),i=t;break}case"number":case"integer":{let t=r==="integer"?Z.number().int():Z.number();typeof n.minimum=="number"&&(t=t.min(n.minimum)),typeof n.maximum=="number"&&(t=t.max(n.maximum)),typeof n.exclusiveMinimum=="number"?t=t.gt(n.exclusiveMinimum):n.exclusiveMinimum===!0&&typeof n.minimum=="number"&&(t=t.gt(n.minimum)),typeof n.exclusiveMaximum=="number"?t=t.lt(n.exclusiveMaximum):n.exclusiveMaximum===!0&&typeof n.maximum=="number"&&(t=t.lt(n.maximum)),typeof n.multipleOf=="number"&&(t=t.multipleOf(n.multipleOf)),i=t;break}case"boolean":{i=Z.boolean();break}case"null":{i=Z.null();break}case"object":{let t={},o=n.properties||{},s=new Set(n.required||[]);for(let[c,l]of Object.entries(o)){let u=Le(l,e);t[c]=s.has(c)?u:u.optional()}if(n.propertyNames){let c=Le(n.propertyNames,e),l=n.additionalProperties&&typeof n.additionalProperties=="object"?Le(n.additionalProperties,e):Z.any();if(Object.keys(t).length===0){i=Z.record(c,l);break}let u=Z.object(t).passthrough(),d=Z.looseRecord(c,l);i=Z.intersection(u,d);break}if(n.patternProperties){let c=n.patternProperties,l=Object.keys(c),u=[];for(let p of l){let f=Le(c[p],e),m=Z.string().regex(new RegExp(p));u.push(Z.looseRecord(m,f))}let d=[];if(Object.keys(t).length>0&&d.push(Z.object(t).passthrough()),d.push(...u),d.length===0)i=Z.object({}).passthrough();else if(d.length===1)i=d[0];else{let p=Z.intersection(d[0],d[1]);for(let f=2;f<d.length;f++)p=Z.intersection(p,d[f]);i=p}break}let a=Z.object(t);n.additionalProperties===!1?i=a.strict():typeof n.additionalProperties=="object"?i=a.catchall(Le(n.additionalProperties,e)):i=a.passthrough();break}case"array":{let t=n.prefixItems,o=n.items;if(t&&Array.isArray(t)){let s=t.map(c=>Le(c,e)),a=o&&typeof o=="object"&&!Array.isArray(o)?Le(o,e):void 0;a?i=Z.tuple(s).rest(a):i=Z.tuple(s),typeof n.minItems=="number"&&(i=i.check(Z.minLength(n.minItems))),typeof n.maxItems=="number"&&(i=i.check(Z.maxLength(n.maxItems)))}else if(Array.isArray(o)){let s=o.map(c=>Le(c,e)),a=n.additionalItems&&typeof n.additionalItems=="object"?Le(n.additionalItems,e):void 0;a?i=Z.tuple(s).rest(a):i=Z.tuple(s),typeof n.minItems=="number"&&(i=i.check(Z.minLength(n.minItems))),typeof n.maxItems=="number"&&(i=i.check(Z.maxLength(n.maxItems)))}else if(o!==void 0){let s=Le(o,e),a=Z.array(s);typeof n.minItems=="number"&&(a=a.min(n.minItems)),typeof n.maxItems=="number"&&(a=a.max(n.maxItems)),i=a}else i=Z.array(Z.any());break}default:throw new Error(`Unsupported type: ${r}`)}return n.description&&(i=i.describe(n.description)),n.default!==void 0&&(i=i.default(n.default)),i}function Le(n,e){if(typeof n=="boolean")return n?Z.any():Z.never();let r=Ov(n,e),i=n.type||n.enum!==void 0||n.const!==void 0;if(n.anyOf&&Array.isArray(n.anyOf)){let a=n.anyOf.map(l=>Le(l,e)),c=Z.union(a);r=i?Z.intersection(r,c):c}if(n.oneOf&&Array.isArray(n.oneOf)){let a=n.oneOf.map(l=>Le(l,e)),c=Z.xor(a);r=i?Z.intersection(r,c):c}if(n.allOf&&Array.isArray(n.allOf))if(n.allOf.length===0)r=i?r:Z.any();else{let a=i?r:Le(n.allOf[0],e),c=i?0:1;for(let l=c;l<n.allOf.length;l++)a=Z.intersection(a,Le(n.allOf[l],e));r=a}n.nullable===!0&&e.version==="openapi-3.0"&&(r=Z.nullable(r)),n.readOnly===!0&&(r=Z.readonly(r));let t={},o=["$id","id","$comment","$anchor","$vocabulary","$dynamicRef","$dynamicAnchor"];for(let a of o)a in n&&(t[a]=n[a]);let s=["contentEncoding","contentMediaType","contentSchema"];for(let a of s)a in n&&(t[a]=n[a]);for(let a of Object.keys(n))Fk.has(a)||(t[a]=n[a]);return Object.keys(t).length>0&&e.registry.add(r,t),r}function Mv(n,e){if(typeof n=="boolean")return n?Z.any():Z.never();let r=Uk(n,e?.defaultTarget),i=n.$defs||n.definitions||{},t={version:r,defs:i,refs:new Map,processing:new Set,rootSchema:n,registry:e?.registry??De};return Le(n,t)}var Jm={};et(Jm,{bigint:()=>Gk,boolean:()=>Bk,date:()=>Jk,number:()=>Wk,string:()=>Hk});function Hk(n){return yd(Dr,n)}function Wk(n){return kd(Ar,n)}function Bk(n){return Nd(Or,n)}function Gk(n){return Dd(Mr,n)}function Jk(n){return Bd(Mi,n)}xe(Es());var _L=y.object({repoPath:y.string(),mode:y.enum(["init","tree","topography","scout","hologram","tools"]),subPath:y.string().optional(),maxDepth:y.number().int().min(he.MIN_DEPTH).max(he.MAX_DEPTH).optional()}),xL=y.object({repoPath:y.string(),mode:y.enum(["symbol","concept","symbol-fuzzy","config","path"]).default("symbol"),query:y.string().max(he.MAX_QUERY_LENGTH).optional(),key:y.string().optional(),kind:y.enum(["Service","Image","Port","Env"]).optional(),limit:y.number().int().min(he.MIN_LIMIT).max(he.MAX_LIMIT).optional(),offset:y.number().int().min(0).optional(),compact:y.boolean().optional()}).refine(n=>!(n.mode==="concept"&&(!n.query||n.query.trim().length===0)),{message:"Concept search requires a non-empty query",path:["query"]}),SL=y.object({repoPath:y.string(),mode:y.enum(["symbol","file"]),filePath:y.string().optional(),detailLevel:y.enum(["structure","signatures","summaries","detailed"]).optional(),symbolName:y.string().optional(),context:y.enum(["definition","full"]).optional()}),$L=y.object({repoPath:y.string(),mode:y.enum(["impact","deps","flow","dead-code","circular-deps"]),filePath:y.string().optional(),symbolName:y.string().optional(),direction:y.enum(["imports","imported_by"]).optional(),depth:y.number().int().min(he.MIN_DEPTH).max(he.MAX_DEPTH).optional(),limit:y.number().int().min(he.MIN_LIMIT).max(he.MAX_LIMIT).optional(),includeTests:y.boolean().optional()}),wL=y.object({repoPath:y.string(),action:y.enum(["index","repair","trace"]),deep:y.boolean().optional(),sinceCommit:y.string().optional()}),kL=y.object({repoPath:y.string(),action:y.enum(["install","remove","status"]),enableAutoRefresh:y.boolean().optional(),enableSymbolHealing:y.boolean().optional()}),EL=y.object({action:y.enum(["list","link","fuse"]),repoPaths:y.array(y.string()).optional(),name:y.string().optional(),status:y.string().optional(),parentRepoPath:y.string().optional(),parentMissionId:y.number().optional(),childRepoPath:y.string().optional(),childMissionId:y.number().optional(),relationship:y.string().optional()});var qk=[...qg,...Vg];J();J();var Vk=$.child({module:"strategy-normalizer"}),jt=class{static normalize(e){if(!e)return{steps:[]};let r;if(typeof e=="string")try{r=JSON.parse(e)}catch(t){return Vk.warn({strategyInput:e,err:t},"Failed to parse strategy JSON"),{steps:[]}}else r=e;return{steps:this.normalizeSteps(r)}}static normalizeSteps(e){return Array.isArray(e)?e.map((r,i)=>typeof r=="string"?{id:`step-${i}`,description:r,status:"pending"}:typeof r=="object"&&r!==null?{id:r.id||`step-${i}`,description:r.description||r.content||r.name||`Step ${i+1}`,status:r.status||"pending",dependencies:r.dependencies||r.deps,verification:r.verification,...r}:{id:`step-${i}`,description:String(r),status:"pending"}):e.steps&&Array.isArray(e.steps)?this.normalizeSteps(e.steps):typeof e=="object"?Object.entries(e).map(([r,i],t)=>typeof i=="string"?{id:r,description:i,status:"pending"}:typeof i=="object"&&i!==null?{id:r,description:i.description||i.content||i.name||r,status:i.status||"pending",dependencies:i.dependencies||i.deps,verification:i.verification,...i}:{id:r||`step-${t}`,description:String(i),status:"pending"}):[]}static stringify(e){return JSON.stringify(e,null,2)}static validate(e){let r=[];if(!e)return{valid:!0,errors:[]};try{let i=this.normalize(e),t=new Set;for(let o of i.steps)if(t.has(o.id)&&r.push(`Duplicate step ID: ${o.id}`),t.add(o.id),o.dependencies)for(let s of o.dependencies)t.has(s)||r.push(`Step "${o.id}" depends on non-existent step "${s}"`);return{valid:r.length===0,errors:r}}catch(i){return r.push(`Strategy validation failed: ${i instanceof Error?i.message:String(i)}`),{valid:!1,errors:r}}}};J();import qm from"fs";import jv from"path";import Kk from"os";var Yk=[{id:"step-0",description:"Analyze impact: identify dependents and call sites",status:"pending"},{id:"step-1",description:"Implement refactor and update call sites",status:"pending"},{id:"step-2",description:"Run tests and verify behavior; update docs if needed",status:"pending"}],Xk=[{id:"step-0",description:"Capture requirements and acceptance criteria",status:"pending"},{id:"step-1",description:"Implement feature with tests",status:"pending"},{id:"step-2",description:"Integrate and verify end-to-end",status:"pending"}],Qk=[{id:"step-0",description:"Reproduce the bug and document steps",status:"pending"},{id:"step-1",description:"Diagnose root cause and plan fix",status:"pending"},{id:"step-2",description:"Apply fix and add/update regression test",status:"pending"},{id:"step-3",description:"Verify fix and run full test suite",status:"pending"}],Fv=[{id:"refactoring",name:"Refactoring",description:"Impact analysis \u2192 implementation \u2192 verification",defaultGoal:"Refactor {{target}} safely with full impact analysis and verification.",steps:Yk},{id:"feature",name:"Feature",description:"Requirements \u2192 implementation \u2192 testing",defaultGoal:"Implement {{target}} with clear requirements and end-to-end verification.",steps:Xk},{id:"bug-fix",name:"Bug fix",description:"Reproduction \u2192 diagnosis \u2192 fix \u2192 regression test",defaultGoal:"Fix {{target}}: reproduce, diagnose, fix, and add regression test.",steps:Qk}],Vm=new Map(Fv.map(n=>[n.id,n])),Fa=!1;function eE(){if(Fa)return;let n=jv.join(Kk.homedir(),".shadow","templates");if(!qm.existsSync(n)){$.debug({templatesDir:n},"Custom templates directory does not exist"),Fa=!0;return}try{let e=qm.readdirSync(n).filter(r=>r.endsWith(".json"));for(let r of e)try{let i=jv.join(n,r),t=qm.readFileSync(i,"utf8"),o=JSON.parse(t);if(!o.id||!o.name||!o.defaultGoal||!o.steps){$.warn({file:r,template:o},"Invalid custom template structure - skipping");continue}if(!Array.isArray(o.steps)||o.steps.length===0){$.warn({file:r},"Template has no steps - skipping");continue}if(Fv.some(s=>s.id===o.id)){$.warn({file:r,templateId:o.id},"Custom template ID conflicts with built-in - skipping");continue}Vm.set(o.id,o),$.info({file:r,templateId:o.id},"Loaded custom template")}catch(i){$.warn({file:r,error:i},"Failed to load custom template")}Fa=!0}catch(e){$.warn({error:e,templatesDir:n},"Failed to read custom templates directory"),Fa=!0}}function Uv(n){return eE(),Vm.get(n)}function tE(n,e){let r=n;for(let[i,t]of Object.entries(e))r=r.replace(new RegExp(`\\{\\{${i}\\}\\}`,"g"),t);return r}function Km(n,e,r={}){let i=Uv(n);if(!i)throw new Error(`Unknown template: ${n}. Use one of: ${Array.from(Vm.keys()).join(", ")}`);let t=r.target||"scope",o=e||(n==="refactoring"?`Refactor ${t}`:n==="feature"?`Feature: ${t}`:`Fix: ${t}`),s=tE(i.defaultGoal,{...r,target:t}),a=jt.normalize({steps:i.steps}),c=jt.stringify(a);return{name:o,goal:s,strategy:c}}X();X();import{execSync as jr}from"child_process";var Wi=class{constructor(e,r="refs/notes/shadow"){this.repoPath=e;this.ref=r}addNote(e,r){try{jr(`git notes --ref ${this.ref} add -f -m '${r.replace(/'/g,"'\\''")}' ${e}`,{cwd:this.repoPath,stdio:["ignore","pipe","ignore"],encoding:"utf8"})}catch(i){throw new Error(`Failed to add git note to ${e}: ${i.message}`)}}getNote(e){try{return jr(`git notes --ref ${this.ref} show ${e}`,{cwd:this.repoPath,stdio:["ignore","pipe","ignore"],encoding:"utf8"}).trim()}catch{return null}}listNotes(){let e=new Map;try{let r=jr(`git notes --ref ${this.ref} list`,{cwd:this.repoPath,stdio:["ignore","pipe","ignore"],encoding:"utf8"}).trim();if(!r)return e;let i=r.split(`
776
+ `);for(let t of i){let[o,s]=t.split(" ");if(s){let a=this.getNote(s);a&&e.set(s,a)}}}catch{}return e}removeNote(e){try{jr(`git notes --ref ${this.ref} remove ${e}`,{cwd:this.repoPath,stdio:["ignore","pipe","ignore"],encoding:"utf8"})}catch{}}push(e="origin"){try{jr(`git push ${e} ${this.ref}`,{cwd:this.repoPath,stdio:["ignore","pipe","ignore"],encoding:"utf8"})}catch(r){throw new Error(`Failed to push git notes to ${e}: ${r.message}`)}}fetch(e="origin"){try{jr(`git fetch ${e} ${this.ref}:${this.ref}`,{cwd:this.repoPath,stdio:["ignore","pipe","ignore"],encoding:"utf8"})}catch{}}};J();var Fr=$.child({module:"persistence-service"}),ct=class{gitNotes;repoPath;constructor(e){this.repoPath=e,this.gitNotes=new Wi(e)}async syncMissionToGitNotes(e){let{missions:r,intentLogs:i}=L.getInstance(this.repoPath),t=r.findById(e);if(!t)throw new Error(`Mission ${e} not found`);if(!t.commit_sha){Fr.warn({missionId:e},"Cannot sync mission without commit_sha");return}Fr.info({missionId:e,commitSha:t.commit_sha},"Syncing mission to Git Notes");let o=r.getArtifacts(e),s=i.findByMission(e,1e3),a=s.find(u=>u.type==="adr"),c=s.filter(u=>u.type==="decision").map(u=>({content:u.content,symbol_name:u.symbol_name,created_at:u.created_at})),l={version:"1.0",mission:{name:t.name,goal:t.goal,status:t.status,strategy_graph:t.strategy_graph,git_branch:t.git_branch,commit_sha:t.commit_sha,parent_id:t.parent_id,verification_context:t.verification_context,outcome_contract:t.outcome_contract,created_at:t.created_at,updated_at:t.updated_at},artifacts:o,adr:a?a.content:null,decisions:c};this.gitNotes.addNote(t.commit_sha,JSON.stringify(l,null,2))}async syncAllToGitNotes(){let{missions:e}=L.getInstance(this.repoPath),r=e.findActive(),i=e.findRecentCompleted(10),t=[...r,...i];for(let o of t)try{await this.syncMissionToGitNotes(o.id)}catch(s){Fr.error({missionId:o.id,error:s},"Failed to sync mission")}}async recoverFromGitNotes(){let e=this.gitNotes.listNotes(),{missions:r,intentLogs:i}=L.getInstance(this.repoPath),t=0,o=0;for(let[s,a]of e.entries())try{let c=JSON.parse(a);if(c.version!=="1.0")continue;if(r.findByCommitShas([s]).some(p=>p.name===c.mission.name)){Fr.debug({commitSha:s,missionName:c.mission.name},"Mission already exists, skipping recovery");continue}let d=r.create({name:c.mission.name,goal:c.mission.goal,status:c.mission.status,strategy_graph:c.mission.strategy_graph,git_branch:c.mission.git_branch,commit_sha:s,parent_id:c.mission.parent_id,verification_context:c.mission.verification_context,outcome_contract:c.mission.outcome_contract});if(t++,c.adr&&(i.create({mission_id:Number(d),symbol_id:null,file_path:null,type:"adr",content:c.adr,confidence:1,symbol_name:null,signature:null,commit_sha:s}),o++),c.decisions&&c.decisions.length>0)for(let p of c.decisions)i.create({mission_id:Number(d),symbol_id:null,file_path:null,type:"decision",content:p.content,confidence:1,symbol_name:p.symbol_name,signature:null,commit_sha:s}),o++;Fr.info({commitSha:s,missionName:c.mission.name,logsRecovered:o},"Re-hydrated mission from Git Notes")}catch(c){Fr.error({commitSha:s,error:c},"Failed to parse Git Note for recovery")}return{missionsRecovered:t,logsRecovered:o}}};var Ua=$.child({module:"mcp:tools:ops:plan"});async function Za(n){let{repoPath:e,name:r,goal:i,strategy:t,missionId:o,parentId:s,outcomeContract:a,templateId:c,templateVars:l}=n,{missions:u}=L.getInstance(e),d=Te(e),p=it(e);Ua.info({repoPath:e,name:r,missionId:o,templateId:c},"Planning mission");try{let f=r,m=i,h=t;if(c){let x=Km(c,r,l||{});f=f??x.name,m=m??x.goal,h=h??x.strategy}if(!f||!m)throw new Error("Mission requires name and goal (or templateId with optional templateVars).");let v=null;if(h){let x=jt.normalize(h);v=jt.stringify(x);let S=jt.validate(v);S.valid||Ua.warn({errors:S.errors,strategy:h},"Strategy validation warnings detected")}let b,g;o?(u.update(o,{name:f,goal:m,strategy_graph:v,commit_sha:p,parent_id:s!==void 0?s:void 0,outcome_contract:a}),b=o,g=`Mission "${f}" updated.`):(b=u.create({name:f,goal:m,strategy_graph:v,status:"planned",git_branch:d,commit_sha:p,parent_id:s||null,verification_context:null,outcome_contract:a||null}),g=`Mission "${f}" planned.`);try{await new ct(e).syncMissionToGitNotes(Number(b))}catch(x){Ua.warn({syncError:x,missionId:b},"Git Notes sync deferred")}return{content:[{type:"text",text:JSON.stringify({missionId:b,status:"planned",message:g,strategy_saved:!!h,contract_saved:!!a,from_template:c??void 0,commit:p},null,2)}]}}catch(f){throw Ua.error({error:f,repoPath:e},"Failed to plan mission"),new Error(`Failed to plan mission: ${f instanceof Error?f.message:String(f)}`)}}J();X();X();J();J();var nE=$.child({module:"reasoning-engine"}),Hn=class{analyze(e){nE.debug({logCount:e.length},"Performing reasoning pass over intent logs");let r={context:[],decisions:[],consequences:[],recommendations:[],unclassified:[]};for(let i of e){let t=i.content.toLowerCase(),o=this.matchesContext(t,i.type),s=this.matchesDecision(t,i.type),a=this.matchesConsequence(t,i.type),c=this.matchesRecommendation(t,i.type);o?r.context.push(i.content):s?r.decisions.push(i.content):c?r.recommendations.push(i.content):a?r.consequences.push(i.content):i.type==="decision"?r.decisions.push(i.content):i.type==="discovery"||i.type==="fix"?r.consequences.push(i.content):r.unclassified.push(i.content)}return r}matchesContext(e,r){return["because","since","given","due to","context: ","problem: ","situation:"].some(t=>e.includes(t))||r==="blocker"}matchesDecision(e,r){return["decided","chose","implemented","integrated","using","selected","strategy:"].some(t=>e.includes(t))||r==="decision"}matchesConsequence(e,r){return["results in","enables","allows","impact: ","consequence: ","next steps: ","meaning"].some(t=>e.includes(t))||r==="fix"}matchesRecommendation(e,r){return["should","recommend","suggest","next work","future","consider","strategy advice"].some(t=>e.includes(t))}};var Ha=$.child({module:"briefing-engine"}),Tt=class{intentLogs;missions;reasoningEngine;persistencePivot;constructor(e){let{intentLogs:r,missions:i}=L.getInstance(e);this.intentLogs=r,this.missions=i,this.reasoningEngine=new Hn,this.persistencePivot=new ct(e)}async distillMission(e,r=!0){Ha.info({missionId:e},"Synthesizing mission intelligence into Tactical Briefing...");let i=this.gatherConsolidatedLogs(e);if(i.length===0)return{missionId:e,adr:"No intent logs found for this mission.",metrics:{totalLogs:0,symbolCount:0}};let t=this.reasoningEngine.analyze(i),o=new Set(i.map(a=>a.symbol_name).filter(Boolean)),s=`# Architectural Decision Record: Mission #${e}
777
+
778
+ `;if(s+=`## Summary of Intent
779
+ `,s+=`Collected ${i.length} intent events across ${o.size} symbols.
780
+
781
+ `,t.context.length>0&&(s+=`### Context
782
+ `,t.context.forEach(a=>{s+=`- ${a}
783
+ `}),s+=`
784
+ `),t.decisions.length>0&&(s+=`### Key Decisions
785
+ `,t.decisions.forEach(a=>{s+=`- ${a}
786
+ `}),s+=`
787
+ `),t.consequences.length>0&&(s+=`### Consequences & Evolutions
788
+ `,t.consequences.forEach(a=>{s+=`- ${a}
789
+ `}),s+=`
790
+ `),t.recommendations.length>0&&(s+=`### Strategic Recommendations
791
+ `,t.recommendations.forEach(a=>{s+=`- ${a}
792
+ `}),s+=`
793
+ `),t.unclassified.length>0&&(s+=`### Additional Notes
794
+ `,t.unclassified.forEach(a=>{s+=`- ${a}
795
+ `}),s+=`
796
+ `),s+=`
840
797
  ---
841
- *Generated by Liquid Shadow Reasoning Engine v1*`,t){this.intentLogs.create({mission_id:e,type:"adr",content:o,confidence:1,symbol_id:null,file_path:null,symbol_name:null,signature:null,commit_sha:null});try{await this.persistencePivot.syncMissionToGitNotes(e),os.info({missionId:e},"Tactical Briefing synthesized, archived, and synced to Git Notes.")}catch(c){os.error({missionId:e,error:c},"Failed to sync ADR to Git Notes")}}else os.info({missionId:e},"Tactical Briefing synthesized (dry-run).");return{missionId:e,adr:o,metrics:{totalLogs:n.length,symbolCount:r.size}}}gatherConsolidatedLogs(e,t=0){let n=this.intentLogs.findByMissionPreferCrystal(e,500);if(t>2)return n;let s=this.missions.findByParentId(e);for(let r of s)n.push(...this.gatherConsolidatedLogs(r.id,t+1));return n.filter(r=>r.type!=="adr"&&r.type!=="system")}};W();import{Visitor as Wl}from"@swc/core/Visitor.js";import*as Go from"@swc/core";var Hl=S.child({module:"verification-engine"}),Ks=class extends Wl{foundUsage=!1;foundImport=!1;rule;currentFunctionName=null;constructor(e){super(),this.rule=e}visitImportDeclaration(e){return this.rule.type==="import"&&e.source.value===this.rule.target&&(this.foundImport=!0),super.visitImportDeclaration(e)}visitFunctionDeclaration(e){let t=this.currentFunctionName;this.currentFunctionName=e.identifier.value;let n=super.visitFunctionDeclaration(e);return this.currentFunctionName=t,n}visitCallExpression(e){return this.rule.type==="usage"&&e.callee.type==="Identifier"&&e.callee.value===this.rule.target&&(!this.rule.context||this.currentFunctionName===this.rule.context)&&(this.foundUsage=!0),super.visitCallExpression(e)}},as=class{async verify(e,t){try{let n=await Go.parse(e,{syntax:"typescript",tsx:!0,comments:!1}),s=new Ks(t);s.visitProgram(n);let r=!1,o=[];if(t.type==="import")r=s.foundImport,r||o.push(`Required import "${t.target}" not found.`);else if(t.type==="usage"){if(r=s.foundUsage,!r){let c=t.context?` in function "${t.context}"`:"";o.push(`Required usage of "${t.target}"${c} not found.`)}}else t.type==="pattern"&&(r=new RegExp(t.target).test(e),r||o.push(`Required pattern "${t.target}" not found.`));return{passed:r,errors:o}}catch(n){return Hl.error({error:n},"Verification failed due to parse error"),{passed:!1,errors:[`Parse error: ${n.message}`]}}}};import qo from"path";import cs from"fs";var De=S.child({module:"mcp:tools:ops:track"});async function Jo(i,e,t){let{missions:n,intentLogs:s}=C.getInstance(i),r=n.findById(e);if(!r?.parent_id)return;let o=n.findByParentId(r.parent_id);if(!o.every(l=>l.status==="completed"))return;let a=n.findById(r.parent_id);if(!(!a||a.status==="completed")){De.info({parentId:a.id,childCount:o.length},"All children completed \u2014 cascading parent completion"),n.updateStatus(a.id,"completed",t||void 0),s.create({mission_id:a.id,type:"system",content:`Parent auto-completed: all ${o.length} child missions finished`,confidence:1,symbol_id:null,file_path:null,symbol_name:null,signature:null,commit_sha:t});try{await new ze(i).distillMission(a.id),De.info({parentId:a.id},"Parent Auto-Synthesis completed")}catch(l){De.warn({synthesisError:l,parentId:a.id},"Parent Auto-Synthesis deferred")}try{await new Re(i).syncMissionToGitNotes(a.id)}catch(l){De.warn({syncError:l,parentId:a.id},"Parent Git Notes sync deferred")}await Jo(i,a.id,t)}}async function Yo(i){let{repoPath:e,missionId:t,stepId:n,status:s,contextPivot:r,updates:o,artifacts:c}=i,{missions:a,intentLogs:l}=C.getInstance(e),p=xe(e);De.info({repoPath:e,missionId:t,singleStep:n,batchCount:o?.length,artifactCount:c?.length},"Updating mission status");try{if(c&&Array.isArray(c))for(let m of c)a.addArtifact(t,m.type,m.identifier,m.metadata);let u=[];if(o&&Array.isArray(o)&&u.push(...o),n&&s&&u.push({stepId:n,status:s,contextPivot:r}),s&&!n){if(a.updateStatus(t,s,p||void 0),l.create({mission_id:t,type:"system",content:`Mission status changed to "${s}"`,confidence:1,symbol_id:null,file_path:null,symbol_name:null,signature:null,commit_sha:p}),s==="completed"){try{await new ze(e).distillMission(t),De.info({missionId:t},"Auto-Synthesis completed successfully")}catch(m){De.warn({synthesisError:m,missionId:t},"Auto-Synthesis deferred or failed")}await Jo(e,t,p)}if(!u.length)return{content:[{type:"text",text:JSON.stringify({missionId:t,status:s,message:"Mission status updated successfully.",artifacts_added:c?.length||0,commit:p},null,2)}]}}if(u.length===0&&(!c||c.length===0))throw new Error("No updates provided. Must specify either 'updates', 'stepId'/'status', 'status' (top-level), or 'artifacts'.");let d=[];for(let m of u){let{stepId:h,status:g,contextPivot:_}=m,b=a.findById(t);if(!b)throw new Error(`Mission ID ${t} not found`);let y=JSON.parse(b.strategy_graph||"{}"),E=null;if(Array.isArray(y)?E=y.find(w=>w.id===h):y.nodes&&Array.isArray(y.nodes)?E=y.nodes.find(w=>w.id===h):y.steps?Array.isArray(y.steps)?E=y.steps.find(w=>w.id===h):E=y.steps[h]:y[h]&&(E=y[h]),!E)throw new Error(`Step ID "${h}" not found`);if(g==="completed"&&E.verification){let w=new as,x=Array.isArray(E.verification)?E.verification:[E.verification];for(let v of x){let k=v.filePath;if(k&&!qo.isAbsolute(k)&&(k=qo.join(e,k)),k){if(!cs.existsSync(k))throw new Error(`Verification failed: File not found at ${k}`);let N=await w.verify(cs.readFileSync(k,"utf8"),v);if(!N.passed)throw new Error(`Verification failed: ${N.errors.join("")}`)}else{let N=a.getWorkingSet(t),O=!1;for(let T of N){if(!cs.existsSync(T.file_path))continue;if((await w.verify(cs.readFileSync(T.file_path,"utf8"),v)).passed){O=!0;break}}if(!O)throw new Error(`Verification failed for rule "${v.target}" in working set.`)}}}if(E.status=g,a.update(t,{strategy_graph:JSON.stringify(y),commit_sha:p}),l.create({mission_id:t,type:"system",content:`Step "${h}" updated to "${g}"`,confidence:1,symbol_id:null,file_path:null,symbol_name:null,signature:null,commit_sha:p}),_)try{let w=JSON.parse(_);if(a.clearWorkingSet(t),w.files&&Array.isArray(w.files))for(let x of w.files)a.addToWorkingSet(t,x)}catch(w){De.warn({error:w},"Failed to apply context pivot")}d.push({stepId:h,status:g})}try{await new Re(e).syncMissionToGitNotes(t)}catch(m){De.warn({syncError:m,missionId:t},"Git Notes sync deferred")}return{content:[{type:"text",text:JSON.stringify({missionId:t,updates:d,artifacts_added:c?.length||0,message:"Status updated",commit:p},null,2)}]}}catch(u){throw De.error({error:u,repoPath:e},"Failed to update status"),new Error(`Failed to update status: ${u instanceof Error?u.message:String(u)}`)}}W();var Xo=S.child({module:"mcp:tools:ops:graph"});async function Zo(i){let{repoPath:e,missionId:t,depth:n,limit:s,format:r="mermaid"}=i;Xo.info({repoPath:e,missionId:t,format:r},"Generating mission graph");try{let{GraphExporterService:o}=await Promise.resolve().then(()=>(Ko(),Qo));return{content:[{type:"text",text:await new o(e).generateGraph({includeCompleted:!0,format:r,focusMissionId:t,depth:n,limit:s})}]}}catch(o){throw Xo.error({error:o,repoPath:e},"Failed to generate mission graph"),new Error(`Failed to generate mission graph: ${o.message}`)}}z();W();var rn=S.child({module:"mcp:tools:ops:log"});async function ea(i){let{repoPath:e,missionId:t,type:n,content:s,filePath:r,symbolName:o}=i;rn.info({repoPath:e,type:n,symbolName:o},"Logging intent");let{missions:c,exports:a,intentLogs:l}=C.getInstance(e);try{let p=t??null;if(p){if(!c.findById(p))throw new Error(`Mission ${p} not found. Use shadow_ops_briefing to see available missions.`)}else{let g=c.findActive();g.length>0?(p=g[0].id,rn.debug({missionId:p},"Auto-resolved to active mission")):(p=null,rn.debug("No active mission found, logging as system/unlinked intent"))}let u=null,d=null,m=o||null;if(o){let _=(r?a.findByNameAndFile(o,r):a.findByName(o))[0];_?(u=_.id,d=_.signature,m=_.name):rn.warn({symbolName:o,filePath:r},"Symbol not found for intent linking")}let h=l.create({mission_id:p,symbol_id:u,file_path:r||null,type:n,content:s,confidence:1,symbol_name:m,signature:d,commit_sha:null});return{content:[{type:"text",text:JSON.stringify({logId:h,missionId:p,symbolId:u,status:"logged",message:u?`Intent linked to symbol "${o}"`:"Intent logged (unlinked)"},null,2)}]}}catch(p){throw rn.error({error:p,repoPath:e},"Failed to log intent"),new Error(`Failed to log intent: ${p instanceof Error?p.message:String(p)}`)}}z();W();var ta=S.child({module:"mcp:tools:ops:synthesize"});async function na(i){let{repoPath:e,missionId:t}=i;ta.info({repoPath:e,missionId:t},"Synthesizing mission");let{missions:n}=C.getInstance(e);try{if(!n.findById(t))throw new Error(`Mission ${t} not found`);let o=await new ze(e).distillMission(t);return{content:[{type:"text",text:JSON.stringify({missionId:t,adr:o.adr,metrics:o.metrics},null,2)}]}}catch(s){throw ta.error({error:s,repoPath:e},"Failed to synthesize ADR"),new Error(`Failed to synthesize ADR: ${s instanceof Error?s.message:String(s)}`)}}import Ul from"path";var Q={...f,box:X,table:Tn,list:Mi};async function sa(i){let[e,...t]=i;if(!e||!["plan","briefing","update","log","synthesize","graph"].includes(e)){console.log(""),console.log(` ${Q.bold("Usage: ")} liquid-shadow mission <action> [options]`),console.log(""),console.log(` ${Q.bold("Actions: ")}`),console.log(` ${Q.cyan("plan")} <repo> <name> <goal> Plan a new mission`),console.log(` ${Q.cyan("update")} <repo> <id> <status> Update mission status`),console.log(` ${Q.cyan("log")} <repo> <id> <type> <msg> Log a mission discovery/intent`),console.log(` ${Q.cyan("briefing")} <repo> [--branch] Get mission briefing`),console.log(` ${Q.cyan("synthesize")} <repo> <id> Distill mission into ADR`),console.log(` ${Q.cyan("graph")} <repo> [id] Generate mission lineage graph`),console.log("");return}await B(async()=>{let n=t[0]?Ul.resolve(t[0]):process.cwd();switch(e){case"plan":{let[s,r,o]=t;if(!r||!o){console.error(` ${Q.red("\u2716")} Usage: mission plan <repo> <name> <goal>`);return}let c=await zo({repoPath:n,name:r,goal:o}),a=JSON.parse(c.content[0].text);console.log(` ${Q.green("\u2714")} Mission planned (ID: ${a.missionId})`);break}case"update":{let[s,r,o]=t;if(!r||!o){console.error(` ${Q.red("\u2716")} Usage: mission update <repo> <id> <status>`);return}await Yo({repoPath:n,missionId:parseInt(r),status:o}),console.log(` ${Q.green("\u2714")} Status updated to ${o}`);break}case"log":{let[s,r,o,...c]=t;if(!r||!o||c.length===0){console.error(` ${Q.red("\u2716")} Usage: mission log <repo> <id> <type> <message>`);return}await ea({repoPath:n,missionId:parseInt(r),type:o,content:c.join(" ")}),console.log(` ${Q.green("\u2714")} Intent logged`);break}case"synthesize":{let[s,r]=t;if(!r){console.error(` ${Q.red("\u2716")} Usage: mission synthesize <repo> <id>`);return}let o=await na({repoPath:n,missionId:parseInt(r)});console.log(""),Q.box("Mission Synthesis (ADR)",o.content[0].text,"magenta");break}case"graph":{let[s,r]=t,o=await Zo({repoPath:n,missionId:r?parseInt(r):void 0,format:"mermaid"});console.log(""),console.log(o.content[0].text);break}case"briefing":{let s=await Bo({repoPath:n});if(s.content&&s.content[0]){let r=s.content[0].text;try{let o=JSON.parse(r);if(o.mission){console.log(""),console.log(Q.bold(Q.cyan(` Mission Dashboard: ${o.mission.name} `))),Q.box("Tactical Goal",o.mission.goal,"cyan");let c=o.mission.status==="completed"?"green":o.mission.status==="failed"?"red":"yellow",a=[["Status",Q.bold(Q[c](o.mission.status.toUpperCase()))],["ID",`#${o.mission.id}`],["Branch",o.mission.git_branch||"main"]];Q.table(["Field","Value"],a),o.recent_activity&&o.recent_activity.length>0&&(console.log(` ${Q.bold("Recent Activity:")}`),Q.list(o.recent_activity.slice(0,5).map(l=>`${Q.dim(`[${l.type.toUpperCase()}]`)} ${l.content}`)))}else console.log(r)}catch{console.log(r)}}break}}})}import Zs from"path";async function ia(i){let[e,...t]=i;if(!e||!["symbol","file"].includes(e)){console.log(""),console.log(` ${f.bold("Usage: ")} liquid-shadow inspect <symbol|file> [options]`),console.log(""),console.log(` ${f.bold("Actions: ")}`),console.log(` ${f.cyan("symbol")} <repo> <name> Read source code for a symbol`),console.log(` ${f.cyan("file")} <repo> <path> Get a token-efficient file summary`),console.log("");return}await B(async()=>{let n=t[0]?Zs.resolve(t[0]):process.cwd();if(e==="symbol"){let s=t[1];if(!s){console.error(` ${f.red("\u2716")} Please provide a symbol name`);return}let r=await Lt({repoPath:n,symbolName:s});console.log(""),r.content&&r.content[0]&&console.log(r.content[0].text)}else{let s=t[1];if(!s){console.error(` ${f.red("\u2716")} Please provide a file path`);return}let r=Zs.isAbsolute(s)?s:Zs.join(n,s),o=await Qn({repoPath:n,filePath:r});console.log(""),o.content&&o.content[0]&&console.log(o.content[0].text)}})}var ra=["index","status","metrics","benchmark","tree","trace","watch","search-config","search-concept","search-symbol","search-fuzzy","hooks","workspace","mission","inspect","completion"],jl=["--help","-h","--version","-v","--dir","-d"],zl={index:["--output","-o","--level","-l","--subPath","--force","--deep"],tree:["--subPath","--depth","-d"],trace:["--dir","-d"],"search-config":["--dir","-d","--kind"],"search-concept":["--dir","-d","--interactive","-i"],"search-symbol":["--dir","-d","--interactive","-i"],"search-fuzzy":["--dir","-d","--interactive","-i"]};function Bl(){let i=Object.entries(zl).map(([n,s])=>` ${n}) opts="${s.join(" ")}" ;;`).join(`
842
- `),e=ra.join(" ");return`# Bash completion for liquid-shadow. Usage: source <(liquid-shadow completion bash)
798
+ *Generated by Liquid Shadow Reasoning Engine v1*`,r){this.intentLogs.create({mission_id:e,type:"adr",content:s,confidence:1,symbol_id:null,file_path:null,symbol_name:null,signature:null,commit_sha:null});try{await this.persistencePivot.syncMissionToGitNotes(e),Ha.info({missionId:e},"Tactical Briefing synthesized, archived, and synced to Git Notes.")}catch(a){Ha.error({missionId:e,error:a},"Failed to sync ADR to Git Notes")}}else Ha.info({missionId:e},"Tactical Briefing synthesized (dry-run).");return{missionId:e,adr:s,metrics:{totalLogs:i.length,symbolCount:o.size}}}gatherConsolidatedLogs(e,r=0){let i=this.intentLogs.findByMissionPreferCrystal(e,500);if(r>2)return i;let t=this.missions.findByParentId(e);for(let o of t)i.push(...this.gatherConsolidatedLogs(o.id,r+1));return i.filter(o=>o.type!=="adr"&&o.type!=="system")}};J();import{Visitor as rE}from"@swc/core/Visitor.js";import*as Zv from"@swc/core";var iE=$.child({module:"verification-engine"}),Ym=class extends rE{foundUsage=!1;foundImport=!1;rule;currentFunctionName=null;constructor(e){super(),this.rule=e}visitImportDeclaration(e){return this.rule.type==="import"&&e.source.value===this.rule.target&&(this.foundImport=!0),super.visitImportDeclaration(e)}visitFunctionDeclaration(e){let r=this.currentFunctionName;this.currentFunctionName=e.identifier.value;let i=super.visitFunctionDeclaration(e);return this.currentFunctionName=r,i}visitCallExpression(e){return this.rule.type==="usage"&&e.callee.type==="Identifier"&&e.callee.value===this.rule.target&&(!this.rule.context||this.currentFunctionName===this.rule.context)&&(this.foundUsage=!0),super.visitCallExpression(e)}},Wa=class{async verify(e,r){try{let i=await Zv.parse(e,{syntax:"typescript",tsx:!0,comments:!1}),t=new Ym(r);t.visitProgram(i);let o=!1,s=[];if(r.type==="import")o=t.foundImport,o||s.push(`Required import "${r.target}" not found.`);else if(r.type==="usage"){if(o=t.foundUsage,!o){let a=r.context?` in function "${r.context}"`:"";s.push(`Required usage of "${r.target}"${a} not found.`)}}else r.type==="pattern"&&(o=new RegExp(r.target).test(e),o||s.push(`Required pattern "${r.target}" not found.`));return{passed:o,errors:s}}catch(i){return iE.error({error:i},"Verification failed due to parse error"),{passed:!1,errors:[`Parse error: ${i.message}`]}}}};import Hv from"path";import Ba from"fs";var lt=$.child({module:"mcp:tools:ops:track"});async function Wv(n,e,r){let{missions:i,intentLogs:t}=L.getInstance(n),o=i.findById(e);if(!o?.parent_id)return;let s=i.findByParentId(o.parent_id);if(!s.every(l=>l.status==="completed"))return;let c=i.findById(o.parent_id);if(!(!c||c.status==="completed")){lt.info({parentId:c.id,childCount:s.length},"All children completed \u2014 cascading parent completion"),i.updateStatus(c.id,"completed",r||void 0),i.clearWorkingSet(c.id),t.create({mission_id:c.id,type:"system",content:`Parent auto-completed: all ${s.length} child missions finished`,confidence:1,symbol_id:null,file_path:null,symbol_name:null,signature:null,commit_sha:r});try{await new Tt(n).distillMission(c.id),lt.info({parentId:c.id},"Parent Auto-Synthesis completed")}catch(l){lt.warn({synthesisError:l,parentId:c.id},"Parent Auto-Synthesis deferred")}try{await new ct(n).syncMissionToGitNotes(c.id)}catch(l){lt.warn({syncError:l,parentId:c.id},"Parent Git Notes sync deferred")}await Wv(n,c.id,r)}}async function Ga(n){let{repoPath:e,missionId:r,stepId:i,status:t,contextPivot:o,updates:s,artifacts:a}=n,{missions:c,intentLogs:l}=L.getInstance(e),u=it(e);lt.info({repoPath:e,missionId:r,singleStep:i,batchCount:s?.length,artifactCount:a?.length},"Updating mission status");try{if(a&&Array.isArray(a))for(let f of a)c.addArtifact(r,f.type,f.identifier,f.metadata);let d=[];if(s&&Array.isArray(s)&&d.push(...s),i&&t&&d.push({stepId:i,status:t,contextPivot:o}),t&&!i){if(c.updateStatus(r,t,u||void 0),t==="completed"&&c.clearWorkingSet(r),l.create({mission_id:r,type:"system",content:`Mission status changed to "${t}"`,confidence:1,symbol_id:null,file_path:null,symbol_name:null,signature:null,commit_sha:u}),t==="completed"){try{await new Tt(e).distillMission(r),lt.info({missionId:r},"Auto-Synthesis completed successfully")}catch(f){lt.warn({synthesisError:f,missionId:r},"Auto-Synthesis deferred or failed")}await Wv(e,r,u)}if(!d.length)return{content:[{type:"text",text:JSON.stringify({missionId:r,status:t,message:"Mission status updated successfully.",artifacts_added:a?.length||0,commit:u},null,2)}]}}if(d.length===0&&(!a||a.length===0))throw new Error("No updates provided. Must specify either 'updates', 'stepId'/'status', 'status' (top-level), or 'artifacts'.");let p=[];for(let f of d){let{stepId:m,status:h,contextPivot:v}=f,b=c.findById(r);if(!b)throw new Error(`Mission ID ${r} not found`);let g=JSON.parse(b.strategy_graph||"{}"),x=null;if(Array.isArray(g)?x=g.find(S=>S.id===m):g.nodes&&Array.isArray(g.nodes)?x=g.nodes.find(S=>S.id===m):g.steps?Array.isArray(g.steps)?x=g.steps.find(S=>S.id===m):x=g.steps[m]:g[m]&&(x=g[m]),!x)throw new Error(`Step ID "${m}" not found`);if(h==="completed"&&x.verification){let S=new Wa,E=Array.isArray(x.verification)?x.verification:[x.verification];for(let w of E){let z=w;if(typeof w=="string"&&(z={type:"pattern",target:w}),!z||!z.target){lt.warn({rule:w},"Skipping invalid verification rule (missing target)");continue}let R=z.filePath;if(R&&!Hv.isAbsolute(R)&&(R=Hv.join(e,R)),R){if(!Ba.existsSync(R))throw new Error(`Verification failed: File not found at ${R}`);let U=await S.verify(Ba.readFileSync(R,"utf8"),z);if(!U.passed)throw new Error(`Verification failed: ${U.errors.join("")}`)}else{let U=c.getWorkingSet(r),I=!1;U.length===0&&lt.warn("No working set files to verify against for rule");for(let T of U){if(!Ba.existsSync(T.file_path))continue;if((await S.verify(Ba.readFileSync(T.file_path,"utf8"),z)).passed){I=!0;break}}if(!I)throw new Error(`Verification failed: Rule "${z.target}" not satisfied in any working set file.`)}}}if(x.status=h,c.update(r,{strategy_graph:JSON.stringify(g),commit_sha:u}),l.create({mission_id:r,type:"system",content:`Step "${m}" updated to "${h}"`,confidence:1,symbol_id:null,file_path:null,symbol_name:null,signature:null,commit_sha:u}),v)try{let S=JSON.parse(v);if(c.clearWorkingSet(r),S.files&&Array.isArray(S.files))for(let E of S.files)c.addToWorkingSet(r,E)}catch(S){lt.warn({error:S},"Failed to apply context pivot")}p.push({stepId:m,status:h})}try{await new ct(e).syncMissionToGitNotes(r)}catch(f){lt.warn({syncError:f,missionId:r},"Git Notes sync deferred")}return{content:[{type:"text",text:JSON.stringify({missionId:r,updates:p,artifacts_added:a?.length||0,message:"Status updated",commit:u},null,2)}]}}catch(d){throw lt.error({error:d,repoPath:e},"Failed to update status"),new Error(`Failed to update status: ${d instanceof Error?d.message:String(d)}`)}}J();var Bv=$.child({module:"mcp:tools:ops:briefing"});async function Ur(n){let{repoPath:e,scope:r="mission"}=n;Bv.info({repoPath:e,missionId:n.missionId,scope:r},"Generating briefing");try{let t=await new cr(e).getBriefing(n);if(!t&&r==="mission")return{content:[{type:"text",text:"No active missions found. Ready for new assignment."}]};let o;if(r==="project"){let s=t.counts;o=t.next_work_candidates.length===0&&s.active===0?{tool:"shadow_ops_plan",reason:"No open work; create a mission"}:{tool:"shadow_ops_track",reason:"Select a mission from hierarchy or next_work_candidates to execute"}}return{content:[{type:"text",text:JSON.stringify(t,null,2)}],suggestedNext:o}}catch(i){throw Bv.error({error:i,repoPath:e},"Failed to generate briefing"),new Error(`Failed to generate briefing: ${i instanceof Error?i.message:String(i)}`)}}X();J();var Gv=$.child({module:"mcp:tools:ops:synthesize"});async function Ja(n){let{repoPath:e,missionId:r}=n;Gv.info({repoPath:e,missionId:r},"Synthesizing mission");let{missions:i}=L.getInstance(e);try{if(!i.findById(r))throw new Error(`Mission ${r} not found`);let s=await new Tt(e).distillMission(r);return{content:[{type:"text",text:JSON.stringify({missionId:r,adr:s.adr,metrics:s.metrics},null,2)}]}}catch(t){throw Gv.error({error:t,repoPath:e},"Failed to synthesize ADR"),new Error(`Failed to synthesize ADR: ${t instanceof Error?t.message:String(t)}`)}}J();X();J();var oE=$.child({module:"narrative-service"}),Ft=class{missions;briefingEngine;repoPath;constructor(e){this.repoPath=e;let{missions:r}=L.getInstance(e);this.missions=r,this.briefingEngine=new Tt(e)}async generateChronicle(e={}){oE.info(e,"Generating Repo Chronicle...");let i=this.missions.findAll().filter(l=>l.parent_id===null&&l.status!=="planned");e.since&&(i=i.filter(l=>l.updated_at>=e.since)),e.until&&(i=i.filter(l=>l.updated_at<=e.until)),i.sort((l,u)=>u.updated_at-l.updated_at);let t=e.offset||0,o=e.limit||10;i=i.slice(t,t+o);let s=[],a=[],c=[];for(let l of i){let u=this.missions.findByParentId(l.id),d=u.length>0,p=await this.briefingEngine.distillMission(l.id,!1);if(d){let f=[];for(let h of u)f.push(await this.mapMissionToEpisode(h));f.unshift(await this.mapMissionToEpisode(l));let m={kind:"initiative",root_mission_id:l.id,title:l.name,strategy_graph:l.strategy_graph?JSON.parse(l.strategy_graph):{},episodes:e.compact?[]:f,synthesized_narrative:e.compact?this.truncateText(p.adr):p.adr||""};s.push(m),c.push(m)}else{let f=await this.mapMissionToEpisode(l,p.adr,e.compact);a.push(f),c.push(f)}}return{repo_path:this.repoPath,generated_at:Date.now(),initiatives:s,unattached_episodes:a,timeline:c}}async mapMissionToEpisode(e,r,i=!1){let t=r;return t||(t=(await this.briefingEngine.distillMission(e.id,!1)).adr),{kind:"episode",mission_id:e.id,title:e.name,goal:e.goal,outcome:e.outcome_contract,intents:[],adr_summary:i?this.truncateText(t):t}}truncateText(e,r=300){return e?e.length<=r?e:e.slice(0,r)+"... (truncated)":""}renderChronicleMarkdown(e){let r=`# Repository Chronicle
799
+
800
+ `;if(r+=`*Generated at ${new Date(e.generated_at).toISOString()}*
801
+
802
+ `,e.timeline&&e.timeline.length>0)for(let i of e.timeline)i.kind==="initiative"?(r+=`### \u{1F9EC} ${i.title} (Mission #${i.root_mission_id})
803
+ `,r+=`${i.synthesized_narrative}
804
+
805
+ `):(r+=`### \u269B\uFE0F ${i.title} (Mission #${i.mission_id})
806
+ `,r+=`${i.adr_summary}
807
+
808
+ `),r+=`---
809
+ `;return r}};var Jv=$.child({module:"mcp:tools:ops:chronicle"});async function qv(n){let{repoPath:e,format:r="markdown",...i}=n,t=new Ft(e);Jv.info({repoPath:e,format:r,filters:i},"Generating Chronicle");try{let o=await t.generateChronicle(i),s={tool:"shadow_ops_briefing",reason:"Current backlog and next work"};return r==="json"?{content:[{type:"text",text:JSON.stringify(o,null,2)}],suggestedNext:s}:{content:[{type:"text",text:t.renderChronicleMarkdown(o)}],suggestedNext:s}}catch(o){throw Jv.error({error:o,repoPath:e},"Failed to generate chronicle"),new Error(`Failed to generate chronicle: ${o instanceof Error?o.message:String(o)}`)}}Je();async function Vv(n){let{repoPath:e,compact:r=!0}=n,t=new pe(e).getSnapshot();r&&t.gravity?.hotspots&&(t={...t,gravity:{...t.gravity,hotspots:t.gravity.hotspots.slice(0,10),_truncated:t.gravity.hotspots.length>10,_totalHotspots:t.gravity.hotspots.length}});let a={...await new Ft(e).generateChronicle({limit:5,compact:r}),initiatives:[],unattached_episodes:[]},l=(await Ur({repoPath:e,scope:"project",altitude:r?"orbit":"atmosphere",compact:r,activeMissionsLimit:r?10:void 0,recentActivityLimit:r?5:10})).content?.[0],u=l&&l.type==="text"?l.text:"{}",d={};try{d=JSON.parse(u)}catch{}let p={counts:d.counts,next_work_candidates:d.next_work_candidates??[],active_count:Array.isArray(d.active_missions)?d.active_missions.length:0};return{content:[{type:"text",text:JSON.stringify({hologram:t,chronicle:a,briefing:p},null,2)}],suggestedNext:{tool:p.next_work_candidates.length>0?"shadow_ops_track":"shadow_ops_plan",reason:p.next_work_candidates.length>0?"Pick one from next_work_candidates and run /continue":"No open work; create a mission"}}}J();dt();import Xm from"path";var Kv=$.child({module:"mcp:tools:ops:health"});async function Yv(n){let e=n.repoPath,r=Xm.isAbsolute(e)?Xm.normalize(e):Xm.resolve(process.cwd(),e);Kv.info({repoPath:r},"Health check");let i=!1,t=!1;try{We(r),i=!0,t=Oe(r)}catch(c){Kv.debug({repoPath:r,error:c},"Health: DB check failed")}let o=wn(),s={status:i?t?"ready":"index_pending":"db_unavailable",database:i,indexed:t,metrics:{index:o.index,query:o.query,uptimeMs:o.uptimeMs}},a=t?{tool:"shadow_recon_hologram",reason:"Architecture overview"}:{tool:"shadow_recon_onboard",reason:"Index the repo first"};return{content:[{type:"text",text:JSON.stringify(s,null,2)}],suggestedNext:a}}X();J();var Bi=$.child({module:"mcp:tools:ops:log"});async function qa(n){let{repoPath:e,missionId:r,type:i,content:t,filePath:o,symbolName:s,standalone:a}=n;Bi.info({repoPath:e,type:i,symbolName:s,standalone:a},"Logging intent");let{missions:c,exports:l,intentLogs:u}=L.getInstance(e);try{let d=r??null;if(a){if(!s)throw new Error('Standalone intent logs must be anchored to a symbol. Please provide "symbolName".');d=null}else if(d){if(!c.findById(d))throw new Error(`Mission ${d} not found. Use shadow_ops_briefing to see available missions.`)}else{let v=c.findActive();v.length>0?(d=v.find(b=>b.status==="in-progress")?.id||v[0].id,Bi.debug({missionId:d},"Auto-resolved to active mission")):(d=null,Bi.debug("No active mission found, logging as system/unlinked intent"))}let p=null,f=null,m=s||null;if(s){let b=(o?l.findByNameAndFile(s,o):l.findByName(s))[0];b?(p=b.id,f=b.signature,m=b.name):Bi.warn({symbolName:s,filePath:o},"Symbol not found for intent linking")}let h=u.create({mission_id:d,symbol_id:p,file_path:o||null,type:i,content:t,confidence:1,symbol_name:m,signature:f,commit_sha:null});return{content:[{type:"text",text:JSON.stringify({logId:h,missionId:d,symbolId:p,status:"logged",message:p?`Intent linked to symbol "${s}"`:"Intent logged (unlinked)"},null,2)}]}}catch(d){throw Bi.error({error:d,repoPath:e},"Failed to log intent"),new Error(`Failed to log intent: ${d instanceof Error?d.message:String(d)}`)}}J();var e_=$.child({module:"mcp:tools:ops:graph"});async function Ka(n){let{repoPath:e,missionId:r,depth:i,limit:t,format:o="mermaid"}=n;e_.info({repoPath:e,missionId:r,format:o},"Generating mission graph");try{let{GraphExporterService:s}=await Promise.resolve().then(()=>(Qm(),Qv));return{content:[{type:"text",text:await new s(e).generateGraph({includeCompleted:!0,format:o,focusMissionId:r,depth:i,limit:t})}]}}catch(s){throw e_.error({error:s,repoPath:e},"Failed to generate mission graph"),new Error(`Failed to generate mission graph: ${s.message}`)}}X();J();var t_=$.child({module:"mcp:tools:ops:crystallize"});async function n_(n){let{repoPath:e,missionId:r,symbolId:i}=n;t_.info({repoPath:e,missionId:r,symbolId:i},"Crystallizing logs");let{intentLogs:t,missions:o,exports:s}=L.getInstance(e);if(typeof r=="number"){let a=o.findById(r);if(!a)throw new Error(`Mission ${r} not found`);let c=t.findRawByMission(r);if(c.length===0){let h=t.findCrystalByMission(r);return{content:[{type:"text",text:JSON.stringify({missionId:r,status:h?"already_crystallized":"no_logs",message:h?"Mission already has a crystal with no new raw logs to absorb.":"No raw intent logs found for this mission.",crystalId:h?.id??null},null,2)}]}}let u=new Hn().analyze(c),d=new Set(c.map(h=>h.symbol_name).filter(Boolean)),p=new Set(c.map(h=>h.type)),f=`[Crystal] Mission #${r}: ${a.name}
810
+ `;f+=`Compressed ${c.length} logs across ${d.size} symbols.
811
+ `,f+=`Types: ${[...p].join(", ")}
812
+
813
+ `,u.decisions.length>0&&(f+=`Decisions: ${u.decisions.join(" | ")}
814
+ `),u.context.length>0&&(f+=`Context: ${u.context.join(" | ")}
815
+ `),u.consequences.length>0&&(f+=`Consequences: ${u.consequences.join(" | ")}
816
+ `),u.recommendations.length>0&&(f+=`Recommendations: ${u.recommendations.join(" | ")}
817
+ `);let m=t.crystallize(r,f.trim());return t_.info({missionId:r,crystalId:m,absorbed:c.length},"Crystallization complete"),{content:[{type:"text",text:JSON.stringify({missionId:r,crystalId:m,absorbed:c.length,symbolsCompressed:d.size,status:"crystallized"},null,2)}]}}if(typeof i=="number"){let a=s.findHydratedById(i);if(!s.findById(i))throw new Error(`Symbol ${i} not found in index`);let l=t.findRawBySymbol(i);if(l.length===0)return{content:[{type:"text",text:JSON.stringify({symbolId:i,status:"no_logs",message:"No raw standalone intent logs found for this symbol."},null,2)}]};let d=new Hn().analyze(l),p=new Set(l.map(h=>h.type)),f=`[Crystal] Symbol #${i}: ${a?.name||"Unknown"}
818
+ `;f+=`Compressed ${l.length} standalone insights.
819
+ `,f+=`Types: ${[...p].join(", ")}
820
+
821
+ `,d.decisions.length>0&&(f+=`Decisions: ${d.decisions.join(" | ")}
822
+ `),d.context.length>0&&(f+=`Context: ${d.context.join(" | ")}
823
+ `);let m=t.crystallizeBySymbol(i,f.trim());return{content:[{type:"text",text:JSON.stringify({symbolId:i,crystalId:m,absorbed:l.length,status:"crystallized"},null,2)}]}}throw new Error("Must provide either missionId or symbolId to crystallize.")}J();X();import Ya from"path";var sE=$.child({module:"mcp:tools:ops:working-set-check"});async function r_(n){let{repoPath:e,filePaths:r}=n,{missions:i}=L.getInstance(e),t=i.findActive(),o=[];for(let s of t){let a=i.getWorkingSet(s.id);for(let c of a)if(r.includes(c.file_path))o.push({file_path:c.file_path,mission_id:s.id,mission_name:s.name});else{let l=Ya.isAbsolute(c.file_path)?c.file_path:Ya.join(e,c.file_path);for(let u of r){let d=Ya.isAbsolute(u)?u:Ya.join(e,u);if(l===d){o.push({file_path:c.file_path,mission_id:s.id,mission_name:s.name});break}}}}return sE.info({repoPath:e,conflictsCount:o.length},"Working set check completed"),{content:[{type:"text",text:JSON.stringify({conflicts:o},null,2)}]}}import Qe from"path";import tf from"fs";J();import ke from"path";import ef from"fs";var Xa=$.child({module:"path-resolver"}),pn=class{repoPath;constructor(e){this.repoPath=ke.isAbsolute(e)?ke.normalize(e):ke.resolve(process.cwd(),e)}resolve(e){if(!e)return this.repoPath;if(e.includes("\0"))throw Xa.error({inputPath:e},"Path contains null bytes - possible attack"),new Error("Invalid path: contains null bytes");let r;if(ke.isAbsolute(e)?r=ke.normalize(e):r=ke.join(this.repoPath,e),r=ke.normalize(r),!this.isWithinRoot(r))throw Xa.warn({inputPath:e,resolved:r},"Path traversal attempt blocked"),new Error(`Access denied: path '${e}' is outside the repository root`);return r}resolveAndValidate(e){try{let r=this.resolve(e);return ef.existsSync(r)?r:(Xa.debug({inputPath:e,resolved:r},"Path does not exist"),null)}catch(r){return Xa.error({inputPath:e,error:r},"Error validating path"),null}}isWithinRoot(e){try{let r=ke.resolve(e),i=ke.resolve(this.repoPath),t=ke.relative(i,r);if(t.startsWith("..")||ke.isAbsolute(t))return!1;if(ef.existsSync(r)){let s=ef.realpathSync(r),a=ke.relative(i,s);if(a.startsWith("..")||ke.isAbsolute(a))return!1}return!0}catch{return!1}}getRelative(e){let r=ke.normalize(e);return ke.relative(this.repoPath,r)}resolveBatch(e){return e.map(r=>this.resolve(r))}static normalize(e){return ke.normalize(e)}static isPathWithinRoot(e,r){let i=ke.resolve(e),t=ke.resolve(r),o=ke.relative(i,t);return o===""||!o.startsWith("..")&&!ke.isAbsolute(o)}};function i_(n){return new pn(n)}var aE=/[\x00-\x1f\x7f]/g,cE=/[\x00-\x08\x0b\x0c\x0e-\x1f\x7f]/g;function Wn(n){if(typeof n!="string")throw new Error("Invalid path: expected string");if(n.includes("\0"))throw new Error("Invalid path: null bytes are not allowed");if(n.replace(aE,"").length!==n.length)throw new Error("Invalid path: control characters are not allowed");return n.trim()}function Bn(n,e=4096){if(typeof n!="string")return"";let r=n.replace(cE,"").trim();return r.length>e?r.slice(0,e):r}dt();var Gi=`
824
+
825
+ To check repository and connection health: shadow_env_diagnose({ repoPath }).`;function mn(n,e,r){return{content:[{type:"text",text:`[${n}] ${e}`}],isError:!0,errorCode:n,errorDetails:r}}function uE(n){let e=Qe.isAbsolute(n)?Qe.normalize(n):Qe.resolve(process.cwd(),n),r=Qe.parse(e).root;for(;e!==r;){if(tf.existsSync(Qe.join(e,".liquid-shadow.db"))||tf.existsSync(Qe.join(e,".git"))||tf.existsSync(Qe.join(e,"package.json")))return e;let i=Qe.dirname(e);if(i===e)break;e=i}return null}function ut(n){let e=n?.repoPath?String(n.repoPath):void 0,r=n?.filePath?String(n.filePath):void 0;e&&(e=Wn(e)),r&&(r=Wn(r));let i;if(e)Qe.isAbsolute(e)||(e=Qe.resolve(process.cwd(),e)),i=e;else if(r){let s=Qe.resolve(process.cwd(),r);i=uE(Qe.dirname(s))||process.cwd()}else i=process.cwd();i=Qe.normalize(i);let t=i_(i),o;return r&&(o=t.resolve(r)),{...n,repoPath:i,filePath:o,resolver:t}}function o_(n,e){if(!Oe(n)){let r=`Repository not indexed yet. Run initial indexing first:
826
+
827
+ 1. shadow_recon_onboard({ repoPath: "${n}" }) // one-time
828
+ 2. shadow_sync_trace({ repoPath: "${n}" }) // then sync
829
+
830
+ After that, ${e} and other tools will work.`+Gi;return mn("FILE_NOT_FOUND",r,{repoPath:n,toolName:e,requiresIndexing:!0})}return null}J();X();async function Qa(n){let e=Bn(n.query??""),r={...n,query:e},i=$n();try{let{repoPath:t}=ut(r),{query:o,limit:s=he.DEFAULT_LIMIT,offset:a=0,compact:c=!1}=r;await ee(t);let{filters:l,hasFilters:u}=Dn(r),p=await new ot(t).searchByConcept(o,s,a,l,u,c);return dE(t,o,"concept"),i(),p}catch(t){return $.error({error:t,args:n},"Concept Search failed"),i(),await St(),{content:[{type:"text",text:`Concept Search failed: ${t instanceof Error?t.message:String(t)}`}],isError:!0}}}function dE(n,e,r){try{let i=L.getInstance(n),t=Te(n);i.searchHistory.record(e,r,t)}catch(i){let t=Te(n);$.error({module:"search",repoPath:n,query:e,mode:r,error:i instanceof Error?i.message:String(i),branch:t},"Failed to record search history"),St()}}J();X();async function Ji(n){let e=Bn(n.query??""),r={...n,query:e},i=$n();try{let{repoPath:t}=ut(r),{query:o,limit:s=he.DEFAULT_LIMIT,offset:a=0,matchMode:c="any"}=r;await ee(t);let{filters:l,hasFilters:u}=Dn(r),p=await new ot(t).searchBySymbol(o,s,a,l,u,c);return pE(t,o,"symbol"),i(),p}catch(t){return $.error({error:t,args:n},"Symbol Search failed"),i(),await St(),{content:[{type:"text",text:`Symbol Search failed: ${t instanceof Error?t.message:String(t)}`}],isError:!0}}}function pE(n,e,r){try{let i=L.getInstance(n),t=Te(n);i.searchHistory.record(e,r,t)}catch(i){let t=Te(n);$.error({module:"search",repoPath:n,query:e,mode:r,error:i instanceof Error?i.message:String(i),branch:t},"Failed to record search history"),St()}}X();J();import Zr from"path";function s_(n,e){let r=n.findContentByToken(e,100);return{count:r.length,files:r}}async function ec(n){let{repoPath:e,query:r,key:i="",kind:t,limit:o=50,showUsage:s=!1}=n,a=i||r;if(!a&&!t)return{content:[{type:"text",text:'Error: Either "key" or "kind" parameter is required.'}]};await ee(e);let c=L.getInstance(e),{configs:l,files:u}=c;if(a){$.info({repoPath:e,key:a},"Searching for config key in DB...");let m=l.findByKey(a,o);if(m.length===0)return{content:[{type:"text",text:`No configuration found for key: ${a}`}]};if(s){let b=m.map(E=>{let w=s_(u,E.key),z=w.count===0?"\u26A0\uFE0F ORPHANED":`\u2713 ${w.count} usage(s)`;return{file:Zr.relative(e,E.file_path),key:E.key,value:E.value,kind:E.kind,usageCount:w.count,usageFiles:w.files.slice(0,5).map(R=>Zr.relative(e,R)),status:z}});b.sort((E,w)=>E.usageCount===0&&w.usageCount>0?-1:w.usageCount===0&&E.usageCount>0?1:E.usageCount-w.usageCount);let g=b.filter(E=>E.usageCount===0).length;return{content:[{type:"text",text:(g>0?`# Configuration Search: "${a}" (with Usage Analysis)
831
+
832
+ \u26A0\uFE0F **${g} orphaned var(s)** (defined but never used in code)
833
+
834
+ Found ${m.length} match(es):
835
+
836
+ `:`# Configuration Search: "${a}" (with Usage Analysis)
837
+
838
+ Found ${m.length} match(es), all in use:
839
+
840
+ `)+b.map(E=>{let w=`## ${E.file} (${E.kind}) ${E.status}
841
+ **${E.key}**: \`${E.value}\``;return E.usageCount>0&&E.usageFiles.length>0&&(w+=`
842
+ > Used in: ${E.usageFiles.map(z=>`\`${z}\``).join(", ")}${E.usageCount>5?` (+${E.usageCount-5} more)`:""}`),w}).join(`
843
+
844
+ `)}]}}let h=m.map(b=>({file:Zr.relative(e,b.file_path),key:b.key,value:b.value,kind:b.kind}));return{content:[{type:"text",text:`# Configuration Search: "${a}"
845
+
846
+ Found ${m.length} match(es):
847
+
848
+ `+h.map(b=>`## ${b.file} (${b.kind})
849
+ **${b.key}**: \`${b.value}\``).join(`
850
+
851
+ `)+"\n\n> \u{1F4A1} **Tip**: Use `showUsage: true` to see usage counts and identify orphaned vars."}]}}let d=l.findByKind(t||null,o);if(s){let m=d.map(g=>{let x=s_(u,g.key);return{file:Zr.relative(e,g.file_path),key:g.key,value:g.value,kind:g.kind,usageCount:x.count,usageFiles:x.files.slice(0,3).map(S=>Zr.relative(e,S)),status:x.count===0?"ORPHANED":"in-use"}});m.sort((g,x)=>g.usageCount===0&&x.usageCount>0?-1:x.usageCount===0&&g.usageCount>0?1:g.usageCount-x.usageCount);let h=m.filter(g=>g.usageCount===0).length,v=m.length,b=`# Config Discovery (${t||"all"}) with Usage Analysis
852
+
853
+ `;return b+=`**Summary**: ${v} config(s) found, ${h} orphaned
854
+
855
+ `,h>0&&(b+=`## \u26A0\uFE0F Orphaned (${h})
856
+ `,b+=m.filter(g=>g.usageCount===0).map(g=>`- \`${g.key}\` in ${g.file}`).join(`
857
+ `),b+=`
858
+
859
+ `),b+=`## \u2713 In Use (${v-h})
860
+ `,b+=m.filter(g=>g.usageCount>0).map(g=>{let x=g.usageFiles.length>0?`, used in ${g.usageFiles.map(S=>`\`${S}\``).join(", ")}${g.usageCount>3?` (+${g.usageCount-3} more)`:""}`:"";return`- \`${g.key}\`=\`${g.value}\` in \`${g.file}\` (${g.usageCount} usages${x})`}).join(`
861
+ `),d.length===o&&(b+=`
862
+
863
+ > Results limited to ${o} entries. Use the 'limit' parameter to see more.`),{content:[{type:"text",text:b}]}}let p=d.map(m=>({...m,file:Zr.relative(e,m.file_path)})),f=JSON.stringify(p,null,2);return d.length===o&&(f=`Results limited to ${o} entries. Use the 'limit' parameter to see more.
864
+
865
+ `+f),f+="\n\n> \u{1F4A1} **Tip**: Use `showUsage: true` to see usage counts and identify orphaned vars.",{content:[{type:"text",text:f}]}}J();X();async function a_(n){let e=Bn(n.query??""),r={...n,query:e},i=$n();try{let{repoPath:t}=ut(r),{query:o,limit:s=he.DEFAULT_LIMIT,offset:a=0,ranked:c=!1}=r;await ee(t);let{filters:l,hasFilters:u}=Dn(r),p=await new ot(t).searchByPath(o,s,a,l,u,c);return mE(t,o,"path"),i(),p}catch(t){return $.error({error:t,args:n},"Path Search failed"),i(),await St(),{content:[{type:"text",text:`Path Search failed: ${t instanceof Error?t.message:String(t)}`}],isError:!0}}}function mE(n,e,r){try{let i=L.getInstance(n),t=Te(n);i.searchHistory.record(e,r,t)}catch(i){let t=Te(n);$.error({module:"search",repoPath:n,query:e,mode:r,error:i instanceof Error?i.message:String(i),branch:t},"Failed to record search history"),St()}}J();async function c_(n){let{repoPath:e,filePath:r,symbolName:i,depth:t=3,limit:o=50,offset:s=0}=n;await ee(e);try{let c=await new ar(e).analyze(i,{filePath:r,depth:t,limit:o,offset:s});return c.length===0?{content:[{type:"text",text:`Symbol "${i}" not found.`}],isError:!0}:{content:[{type:"text",text:JSON.stringify(c,null,2)}]}}catch(a){return $.error({error:a,args:n},"Impact Analysis failed"),{content:[{type:"text",text:`Impact Analysis failed: ${a instanceof Error?a.message:String(a)}`}],isError:!0}}}X();J();import Gn from"fs";import Ae from"path";var fE=new Set(["api","v1","v2","v3","http","https","localhost","admin","internal","public","private","app","src","get","post","put","delete","patch","user","users","id","search","list","create","update","data"]),hE=new Set(["GET","POST","PUT","DELETE","PATCH"]),gE=[/\bRoute::(?:get|post|put|delete|patch)\b/i,/\brouter\.(?:get|post|put|delete|patch)\s*\(/i,/\bapp\.(?:get|post|put|delete|patch)\s*\(/i,/\bfastify\.(?:get|post|put|delete|patch)\s*\(/i,/\baddRoute\s*\(/i,/\bHTTPMethods\.(?:GET|POST|PUT|DELETE|PATCH)\b/i,/\bpath\s*\(/i,/\bre_path\s*\(/i,/@(?:GET|POST|PUT|DELETE|PATCH|Route)\b/i,/@(?:Get|Post|Put|Delete|Patch|RequestMapping)\b/];function yE(n){return n.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")}function qi(n){let e=n.split("?")[0].split("#")[0];return e.length>1&&e.endsWith("/")&&(e=e.slice(0,-1)),e}function nf(n){let e=qi(n).replace(/:[^/]+/g,"__SEG__").replace(/\{[^}]+\}/g,"__SEG__").replace(/\$[^/]+/g,"__SEG__").replace(/\*/g,"__SEG__"),r=yE(e).replace(/__SEG__/g,"[^/]+");return new RegExp(`^${r}$`)}function l_(n){let e=[/(HTTPMethods\.)?(GET|POST|PUT|DELETE|PATCH)\b/i,/Route::(get|post|put|delete|patch)\b/i,/@(GET|POST|PUT|DELETE|PATCH)\b/i],r;for(let i of e){let t=n.match(i);if(t?.[2]){r=t[2].toUpperCase();break}if(t?.[1]){r=t[1].toUpperCase();break}}return r&&hE.has(r)?r:null}function bE(n){return n.replace(/<[^>]+>/g," ")}function vE(n){return gE.some(e=>e.test(n))}function _E(n){let e=[],r=/['"`]([^'"`]*\/[^'"`]*)['"`]/g,i=null;for(;(i=r.exec(n))!==null;){let t=i[1].trim();t&&e.push(t)}return e}function xE(n){let e=n.replace(/^\^/,"").replace(/\$$/,"");if(e.includes("://"))try{e=new URL(e).pathname}catch{}if(!e.startsWith("/")){let r=e.indexOf("/");if(r===-1)return null;e=e.slice(r)}return qi(e)}function SE(n,e){let r=_E(n);for(let i of r){let t=xE(i);if(!t)continue;let o=nf(t),s=e.replace(/\*/g,"test-val");if(o.test(s)||!/[:{*$]/.test(t)&&s.startsWith(`${t}/`))return!0}return!1}function $E(n,e){if(e)try{let t=JSON.parse(e);if(typeof t.path=="string"&&t.path.startsWith("/"))return qi(t.path)}catch{}let r=/['"]([^'"]+)['"]/g,i=null;for(;(i=r.exec(n))!==null;){let t=i[1].trim();if(t){if(t=t.replace(/^\^/,"").replace(/\$$/,""),!t.startsWith("/")){if(!t.includes("/")&&!t.includes(":"))continue;t=`/${t}`}return qi(t)}}return null}function wE(n,e){let r=n.toLowerCase();return e.reduce((i,t)=>i+(r.includes(t.toLowerCase())?20:0),0)}function rf(n,e,r){let i=e,t=e.match(/\$\{([^}]+)\}/g);if(t)for(let f of t){let m=f.substring(2,f.length-1),h=n.configs.findEnvValue(m);h&&(i=i.replace(f,h))}let o=i.split("?")[0].split("#")[0];try{o.includes("://")&&(o=new URL(o).pathname)}catch{}o=qi(o);let s=r?.toUpperCase(),a=[],c=!1,l=o.replace(/\*/g,"%").replace(/:[^/]+/g,"%").replace(/\{[^}]+\}/g,"%"),u=n.files.findSynapses({type:"api_route",name:l.includes("%")?l:o,direction:"consume",limit:10});for(let f of u)nf(f.name).test(o.replace(/\*/g,"test-val"))&&(a.push({file_path:f.file_path,start_line:f.line_number||0,signature:`[Synapse] ${f.name}`,score:1e3}),c=!0);let d=o.split(/[^a-zA-Z0-9-_]/).filter(f=>f.length>=3&&!fE.has(f.toLowerCase())&&!/^\d+$/.test(f));if(d.length>0){let h=[...d].sort((b,g)=>g.length-b.length).slice(0,2).flatMap(b=>n.exports.findRoutesByToken(b,20)),v=new Set;for(let b of h){let g=`${b.file_path}:${b.start_line}:${b.name}`;if(v.has(g))continue;v.add(g);let x=b.signature||b.name||"",S=l_(x);if(s&&S&&s!==S)continue;let E=$E(x,b.capabilities);if(s&&!S&&!E)continue;let w=40;if(E){if(!nf(E).test(o.replace(/\*/g,"test-val")))continue;w+=280,c=!0}s&&S&&s===S&&(w+=120,c=!0),w+=wE(`${x} ${E||""}`,d),a.push({file_path:b.file_path,start_line:b.start_line,signature:`[Boundary] ${x}`,capabilities:b.capabilities||void 0,score:w})}}if(a.length<3&&!c){let f=d.map(m=>m.replace(/[^a-zA-Z0-9_]/g,"")).filter(m=>m.length>0).join(" AND ");if(f.length>0){let m=n.content.search(f);for(let h of m){let v=bE(h.snippet);if(!vE(v)||!SE(v,o))continue;let b=l_(v);if(s&&b&&b!==s)continue;let g=0,x=h.file_path.toLowerCase(),S=v.toLowerCase();(x.includes("route")||x.includes("controller"))&&(g+=10),(x.includes("src/api")||x.includes("services/api"))&&(g+=5),(S.includes("addroute")||S.includes("@get"))&&(g+=15),(S.includes("axios.")||S.includes("fetch("))&&(g-=10),(x.includes(".spec.")||x.includes(".test."))&&(g-=20),s&&S.includes(s.toLowerCase())&&(g+=20),g>0&&a.push({file_path:h.file_path,start_line:0,signature:`[FTS Match] ${v.replace(/\n/g," ")}`,score:g})}}}let p=new Map;return a.sort((f,m)=>m.score-f.score).forEach(f=>{p.has(f.file_path)||p.set(f.file_path,f)}),Array.from(p.values()).slice(0,c?2:3)}var kE=4,Vi=50,EE=2,IE=4,TE=new Set(["publish","publishmessage","publishtaskbynameandpayload"]),PE=new Set(["Error","TypeError","RangeError","ReferenceError","SyntaxError","Promise","Map","Set","WeakMap","WeakSet","Date","Array","Object","String","Number","Boolean","RegExp","URL","URLSearchParams"]),RE=new Set(["error","errors","request","response","result","results","value","values","item","data","payload","message","messages","text","description","name","id","type","status","code"]),d_=new Set(["req","res","request","response","error","err","event","item","row","data","value","obj","window","document","console","json","math"]),zE=new Set(["push","pop","shift","unshift","slice","splice","map","filter","reduce","reduceRight","forEach","find","findIndex","includes","indexOf","lastIndexOf","every","some","flat","flatMap","fill","copyWithin","entries","keys","values","join","concat","sort","reverse","at","with","toSorted","toReversed","toSpliced","toString","valueOf","hasOwnProperty","isPrototypeOf","propertyIsEnumerable","toLocaleString","charAt","charCodeAt","codePointAt","split","substring","substr","trim","trimStart","trimEnd","padStart","padEnd","repeat","replace","replaceAll","match","matchAll","search","toLowerCase","toUpperCase","localeCompare","normalize","startsWith","endsWith","then","catch","finally","get","set","has","delete","clear","size","length","call","apply","bind"]);function NE(n,e){return Ae.resolve(n)===Ae.resolve(e)}function CE(n){if(PE.has(n))return!0;let e=n.trim().toLowerCase();if(RE.has(e))return!0;let r=n.split(/(?:\.|->|::)+/).filter(Boolean);if(r.length>1){let i=r[0].replace(/^\$+/,"").toLowerCase();if(d_.has(i))return!0}return!1}function u_(n){let e=n.trim();if(!e)return"";let r=e.indexOf("/"),i=r>=0?e.slice(r):e;return i.length>1&&i.endsWith("/")?i.slice(0,-1):i}function DE(n){return n.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")}function sf(n){let e=n.split(/(?:\.|::|->)+/).filter(Boolean);return e.length>0?e[e.length-1]:n.trim()}function LE(n,e){let r=0,i=!1;for(let t=e;t<n.length;t++){let o=n[t];for(let a of o)if(a==="{")r++,i=!0;else if(a==="}"&&(r--,i&&r<=0))return{start:e+1,end:t+1};let s=o.trim();if(!i&&/[;}]$/.test(s))return{start:e+1,end:t+1}}return{start:e+1,end:Math.min(n.length,e+40)}}function of(n,e){let r=sf(e);if(!r)return null;try{let i=Gn.readFileSync(n,"utf8").split(`
866
+ `),t=DE(r),o=[new RegExp(`^\\s*(?:export\\s+)?(?:async\\s+)?function\\s+${t}\\b`),new RegExp(`^\\s*(?:(?:public|private|protected|static|readonly|async|abstract|get|set)\\s+)*${t}\\s*(?:<[^>]*>)?\\s*\\(`),new RegExp(`^\\s*(?:(?:public|private|protected|static|readonly|async|abstract)\\s+)*${t}\\s*[:=]\\s*(?:async\\s*)?(?:\\([^)]*\\)\\s*=>|function\\b)`),new RegExp(`^\\s*(?:export\\s+)?class\\s+${t}\\b`)];for(let s=0;s<i.length;s++){let a=i[s];if(a.includes(r)&&o.some(c=>c.test(a)))return LE(i,s)}}catch{return null}return null}function p_(n,e,r){try{let i=Gn.readFileSync(n,"utf8").split(`
867
+ `);if(e.start<1||e.end<e.start||e.start>i.length||e.end>i.length||!i.slice(e.start-1,e.end).join(`
868
+ `).trim())return!0;if(e.start===e.end){let o=i[e.start-1]?.trim()||"",s=o.replace(/\s+/g,"");if(!s||/^[{}()[\];,]+$/.test(s))return!0;let a=sf(r);if(a&&!o.includes(a))return!0}return!1}catch{return!0}}function tc(n,e,r){if(e){if(!r)return e;if(p_(n,e,r)){let i=of(n,r);if(i)return i}return e}}function AE(n,e,r){let i=n.exports.findByNameAndFile(r,e);if(i.length>0)return i[0];let t=n.exports.findByFile(e);if(t.length===0)return null;if(r.includes("/")){let a=u_(r),c=t.find(l=>!l?.name||typeof l.name!="string"?!1:u_(l.name)===a);if(c)return c}let o=r.split(/(?:\.|::|->)+/).filter(Boolean);if(o.length>1){let a=o[o.length-1],c=n.exports.findByNameAndFile(a,e);if(c.length===1)return c[0]}return t.find(a=>typeof a?.name=="string"&&(a.name===r||a.name.includes(r)))||null}async function nc(n){let{repoPath:e,filePath:r,symbolName:i}=ut(n);if(!r)return{isError:!0,content:[{type:"text",text:"Error: 'filePath' is required."}]};let t=r;await ee(e);let o=L.getInstance(e);if(!Gn.existsSync(t))return{isError:!0,content:[{type:"text",text:`File not found: ${t}`}]};let s,a=Ae.basename(t),c;if(i){let p=sf(i),f=AE(o,t,i);if(f){let m=f;s={start:m.start_line,end:m.end_line},a=m.name,c=m.start_line}else{let m=of(t,i);if(m)s=m,c=m.start,a=p||i;else{let h=o.exports.findByFile(t).map(v=>v.name).filter(v=>!!v).slice(0,10);return{isError:!0,content:[{type:"text",text:`Symbol not found in file: "${i}"
869
+ File: ${Ae.relative(e,t)}
870
+ `+(h.length>0?`Top symbols in file: ${h.join(", ")}`:"No indexed symbols found for this file.")}]}}}if(s&&p_(t,s,i)){let m=of(t,i);m&&($.warn({filePath:t,symbolName:i,start:s.start,end:s.end},"Indexed symbol range appears degenerate; using source-inferred range for flow"),s=m,c=m.start,a===Ae.basename(t)&&(a=p||i))}}let l={type:s?"function":"file",name:a,path:Ae.relative(e,t),line:c,children:[]},u=new Set;u.add(t+(i?`:${i}`:""));let d={count:0,truncated:!1};return await Hr(t,l,e,o,u,1,d,s),d.truncated&&l.children.push({type:"function",name:"\u26A0\uFE0F Output Truncated",details:`Trace limited to ${Vi} nodes. Use summarize_file on specific files for deeper analysis.`,children:[]}),{content:[{type:"text",text:JSON.stringify(l,null,2)}]}}async function Hr(n,e,r,i,t,o,s,a){if(!(o>kE)){if(s.count>=Vi){s.truncated=!0;return}try{let c=Gn.readFileSync(n,"utf8"),l=Ae.extname(n).toLowerCase(),d=(c.match(/import\s+[\s\S]*?from\s+['"].*?['"];?/gm)||[]).join(`
871
+ `);a&&(c=c.split(`
872
+ `).slice(a.start-1,a.end).join(`
873
+ `));let p;if(l===".ts"||l===".tsx"||l===".js"||l===".jsx"){p=new or;let v={syntax:"typescript",tsx:n.endsWith(".tsx"),target:"es2020"};try{let b=a?`${d}
874
+ ${c}`:c,g=await si(b,v);p.visitModule(g)}catch{if(a)try{let g=`${d}
875
+ class TraceContext {
876
+ ${c}
877
+ }`,x=await si(g,v);p.visitModule(x)}catch{let x=new Qt,S=l;x.visit(c,S),p.calls=x.calls,p.apiCalls=x.apiCalls,p.imports=x.imports}else{let g=new Qt;g.visit(c,l),p.calls=g.calls,p.apiCalls=g.apiCalls,p.imports=g.imports}}}else p=new Qt,p.visit(c,l);$.info({file:Ae.basename(n),calls:p.calls.size,apiCalls:p.apiCalls.length,depth:o},"Analyzed file");let f=p.apiCalls.slice(0,10);for(let v of f){if(s.count>=Vi)break;if(s.count++,v.method==="PUBSUB"){let S={type:"event_trigger",name:`PubSub Event: ${v.url}`,details:"Detected via PubSub client usage",children:[]};e.children.push(S);let E=v.url.toLowerCase();if(TE.has(E)){S.children.push({type:"subscriber",name:"PubSub fan-out omitted",details:"Generic publish call without concrete event/action; skipping global subscriber expansion to avoid false links.",children:[]});continue}let w=i.exports.findByNameGlobal(v.url).concat(i.exports.findByMethodName(v.url));if(v.url.length>10){let R=v.url.replace(/To[A-Z][a-zA-Z]+$/,"");if(R!==v.url){let U=i.exports.findByNameGlobal(R).concat(i.exports.findByMethodName(R));w.push(...U)}}let z=new Set;for(let R of w.slice(0,IE)){if(z.has(R.file_path)||R.file_path===n)continue;if(z.add(R.file_path),s.count>=Vi)break;s.count++;let U={type:"subscriber",name:`${R.name} (${Ae.basename(R.file_path)})`,path:Ae.relative(r,R.file_path),line:R.start_line,details:"Potential Subscriber / Handler",children:[]};S.children.push(U),Gn.existsSync(R.file_path)&&!t.has(R.file_path)&&(t.add(R.file_path),await Hr(R.file_path,U,r,i,t,o+1,s))}continue}let b={type:"api_call",name:`${v.method} ${v.url}`,details:"Detected via string literal analysis",children:[]};e.children.push(b);let x=rf(i,v.url,v.method).slice(0,EE);for(let S of x){if(NE(S.file_path,n))continue;if(s.count>=Vi)break;s.count++;let E={type:"route",name:S.signature||"Route Handler",path:S.file_path,line:S.start_line,children:[]};if(b.children.push(E),Gn.existsSync(S.file_path)&&!t.has(S.file_path)&&(t.add(S.file_path),await Hr(S.file_path,E,r,i,t,o+1,s)),S.capabilities)try{let w=JSON.parse(S.capabilities);if(w.handler){let[z,R]=w.handler.split("@");if(z){let I=z.split("\\").pop();if(I){let T=i.exports.findClassByName(I);if(T){let N=i.exports.findByNameAndFile(R||"",T.file_path),F,D=T.start_line;N.length>0&&(F=tc(T.file_path,{start:N[0].start_line,end:N[0].end_line},R||""),F||(F={start:N[0].start_line,end:N[0].end_line}),D=F.start);let C={type:"component",name:`${I}${R?" :: "+R:""}`,path:Ae.relative(r,T.file_path),line:D,details:"Controller Logic (Macro IR)",children:[]};E.children.push(C),t.has(T.file_path+(R?`:${R}`:""))||(t.add(T.file_path+(R?`:${R}`:"")),await Hr(T.file_path,C,r,i,t,o+1,s,F))}}}}}catch{}}}let m=p.calls,h=Array.from(m).sort();for(let v of h)if(p.imports.has(v)){let b=p.imports.get(v);if(!b.startsWith(".")){if(["react","react-dom"].includes(b))continue;e.children.push({type:"function",name:v,details:`External: ${b}`,children:[]});continue}let g=Vt(b,n,r);if(g&&Gn.existsSync(g)){let x=i.exports.findByNameAndFile(v,g),S=x.length>0?x[0]:null,E=S?`${g}:${S.name}`:g;if(t.has(E))e.children.push({type:"function",name:v,details:"Circular / Already Visited",path:Ae.relative(r,g),line:S?.start_line,children:[]});else{t.add(E);let w={type:S?"component":"file",name:v,details:S?`Imported symbol from ${Ae.basename(g)}`:`Imported from ${Ae.basename(g)}`,path:Ae.relative(r,g),line:S?.start_line,children:[]};e.children.push(w);let z=S?tc(g,{start:S.start_line,end:S.end_line},v):void 0;await Hr(g,w,r,i,t,o+1,s,z)}}}else if(!["log","info","error","warn","print"].includes(v)&&!CE(v)){let b=i.exports.findByNameGlobal(v);if(b.length===0){let g=v.split(/(?:\.|->|::)+/);if(g.length>1){let x=g[0]?.replace(/^\$+/,"").toLowerCase(),S=g[g.length-1];!zE.has(S)&&!(x&&d_.has(x))&&(b=i.exports.findByMethodName(S))}}if(b.length>0){let g=b.find(S=>S.file_path===n),x=g||(b.length===1?b[0]:null);if(x){let S=`${x.file_path}:${x.name}`;if(!t.has(S)){t.add(S);let E={type:"component",name:v,details:`Resolved via global index${g?" (local)":""}`,path:Ae.relative(r,x.file_path),line:tc(x.file_path,{start:x.start_line,end:x.end_line},v)?.start,children:[]};e.children.push(E);let w=tc(x.file_path,{start:x.start_line,end:x.end_line},v)||{start:x.start_line,end:x.end_line};await Hr(x.file_path,E,r,i,t,o+1,s,w)}}}}}catch(c){$.error({filePath:n,error:c.message},"Trace analysis failed"),e.children.push({type:"function",name:"Error",details:c.message,children:[]})}}}X();import m_ from"path";async function h_(n){let{repoPath:e,filePath:r,direction:i,limit:t,offset:o=0}=n;await ee(e);let{imports:s}=L.getInstance(e);if(i==="imports"){let c=s.findByFile(r).filter(p=>p.module_specifier!=="__type_reference__").map(p=>{let f={module:p.module_specifier,symbols:p.imported_symbols,resolvedPath:p.resolved_path,relativePath:p.resolved_path?m_.relative(e,p.resolved_path):null,isExternal:!p.resolved_path};if(!p.resolved_path){let m=Do(p.module_specifier,r,e);if(!m.resolved)return{...f,resolutionError:m.error,suggestion:m.suggestion}}return f}),l=[...c].sort((p,f)=>(p.relativePath||"").localeCompare(f.relativePath||"")),d={results:f_(l,t,o),total:c.length,offset:o,limit:t||c.length,hasMore:t?o+t<c.length:!1};return{content:[{type:"text",text:JSON.stringify(d,null,2)}]}}else{let c=s.findDependents(r).map(p=>({file:p.file_path,relativePath:m_.relative(e,p.file_path),importStatement:p.module_specifier,importedSymbols:p.imported_symbols})),l=[...c].sort((p,f)=>(p.relativePath||"").localeCompare(f.relativePath||"")),d={results:f_(l,t,o),total:c.length,offset:o,limit:t||c.length,hasMore:t?o+t<c.length:!1};return{content:[{type:"text",text:JSON.stringify(d,null,2)}]}}}function f_(n,e,r=0){return e?n.slice(r,r+e):n.slice(r)}X();import g_ from"path";import OE from"fs";async function y_(n){let{repoPath:e,mode:r,limit:i=50,includeTests:t=!1,includeMigrations:o=!1,includeFixtures:s=!1,excludePatterns:a=[],confidenceThreshold:c="all"}=n;await ee(e);let{exports:l,imports:u}=L.getInstance(e);if(r==="dead-code"){let f=l.findDeadExports({limit:i,includeTests:t,includeMigrations:o,includeFixtures:s,excludePatterns:a,confidenceThreshold:c}).map(x=>({name:x.name,kind:x.kind,file:g_.relative(e,x.file_path),line:x.start_line,confidence:x.confidence,reason:x.reason})),m={high:{},medium:{},low:{}};for(let x of f)m[x.confidence][x.file]||(m[x.confidence][x.file]=[]),m[x.confidence][x.file].push({name:x.name,kind:x.kind,line:x.line,reason:x.reason});let h=[],v=Object.values(m.high).flat().length,b=Object.values(m.medium).flat().length,g=Object.values(m.low).flat().length;return h.push(`# Dead Export Analysis
878
+ `),h.push(`Found ${f.length} potentially unused exports.`),h.push(`- **High confidence** (likely dead): ${v}`),h.push(`- **Medium confidence** (possibly intentional): ${b}`),h.push(`- **Low confidence** (likely intentional): ${g}
879
+ `),v>0&&(h.push(`## High Confidence (Likely Dead)
880
+ `),h.push(JSON.stringify(m.high,null,2))),b>0&&c!=="high"&&(h.push(`
881
+ ## Medium Confidence (Possibly Intentional)
882
+ `),h.push(JSON.stringify(m.medium,null,2))),g>0&&c==="all"&&(h.push(`
883
+ ## Low Confidence (Likely Intentional)
884
+ `),h.push(JSON.stringify(m.low,null,2))),{content:[{type:"text",text:h.join(`
885
+ `)}]}}else if(r==="circular-deps"){let g=function(w,z){if(h.length>=p)return!1;v.add(w),b.add(w),z.push(w);let R=m.get(w)||new Set;for(let U of R)if(v.has(U)){if(b.has(U)){let I=z.indexOf(U);if(I>=0){let T=z.slice(I);T.push(U),h.push(T)}}}else if(g(U,[...z]))return!0;return b.delete(w),!1};var d=g;let p=typeof i=="number"?i:20,f=u.getAllResolved(),m=new Map;for(let w of f)m.has(w.file_path)||m.set(w.file_path,new Set),m.get(w.file_path).add(w.resolved_path);let h=[],v=new Set,b=new Set;for(let w of m.keys())!v.has(w)&&h.length<p&&g(w,[]);let x=[],S=new Map;for(let w of f){let z=`${w.file_path}|${w.resolved_path}`;S.has(z)||S.set(z,[]),S.get(z).push(w)}for(let w of h){let z=!1;for(let R=0;R<w.length-1;R++){let U=w[R],I=w[R+1],T=S.get(`${U}|${I}`);if(T){for(let N of T)try{let F=OE.readFileSync(U,"utf8"),D=N.module_specifier.replace(/[.*+?^${}()|[\]\\]/g,"\\$&"),C=new RegExp(`import\\s+type\\s+.*from\\s+['"]${D}['"]`,"i"),W=new RegExp(`import\\s+\\{.*type\\s+.*\\}.*from\\s+['"]${D}['"]`,"s");if(C.test(F)||W.test(F)){z=!0;break}let q=N.imported_symbols.split(",").map(B=>B.trim());for(let B of q){if(!B||B==="*")continue;let H=B.replace(/[.*+?^${}()|[\]\\]/g,"\\$&");if(new RegExp(`\\(\\s*\\)\\s*=>\\s*${H}`).test(F)){z=!0;break}}}catch{}if(z)break}}z||x.push(w)}let E=x.map((w,z)=>({id:z+1,length:w.length-1,chain:w.map(R=>g_.relative(e,R))}));return{content:[{type:"text",text:`# Circular Dependency Analysis
886
+
887
+ Found ${x.length} circular dependency chain(s).
888
+
889
+ ${JSON.stringify(E,null,2)}`}]}}return{isError:!0,content:[{type:"text",text:"Invalid mode"}]}}async function b_(n){let{repoPath:e,subPath:r,maxDepth:i=5}=n,t=5e4,o=[{level:"signatures",depth:i},{level:"summaries",depth:i,meta:{warning:"Export lists omitted for token efficiency.",action:"Use 'shadow_inspect_file' on specific files to see exports."}},{level:"structure",depth:i,meta:{warning:"Detailed signatures omitted due to repo size.",action:"Use 'shadow_inspect_file' on specific files to see details."}},{level:"summaries",depth:2,meta:{warning:"Repository is large. Showing top 2 levels with summaries only.",action:"Use 'shadow_recon_tree' with a 'subPath' to explore deeper."}},{level:"structure",depth:2,meta:{warning:"Repository is large. Showing top 2 levels structure only.",action:"Use 'shadow_recon_tree' with a 'subPath' to explore."}},{level:"lite",depth:1,meta:{warning:"Repository is massive. Showing root files only.",action:"Use 'shadow_recon_tree' with a 'subPath' to explore."}}];for(let s of o){let a=await zn(e,5,s.level,r,s.depth);s.meta&&(a._meta=s.meta);let c=JSON.stringify(a,null,2);if(c.length<=t)return{content:[{type:"text",text:c}]}}return{content:[{type:"text",text:`Warning: The repository at ${r||"root"} is massive (exceeds ${t} chars even at minimal depth).
890
+ Please use 'shadow_recon_tree' with a more specific 'subPath' or use 'shadow_search_symbol' to find what you need.`}]}}Je();async function v_(n){let{repoPath:e,compact:r=!1}=n,t=new pe(e).getSnapshot();if(r&&t.gravity?.hotspots){let o=t.gravity.hotspots.length;t={...t,gravity:{...t.gravity,hotspots:t.gravity.hotspots.slice(0,20),_truncated:o>20,_totalHotspots:o}}}return{content:[{type:"text",text:JSON.stringify(t,null,2)}],suggestedNext:{tool:"shadow_ops_chronicle",reason:"Recent decisions and ADRs"}}}X();ht();Je();function __(n){switch(n){case"Entry":return"\u{1F6AA}";case"Logic":return"\u2699\uFE0F";case"Data":return"\u{1F4BE}";case"Utility":return"\u{1F527}";case"Infrastructure":return"\u{1F3D7}\uFE0F";case"Test":return"\u{1F9EA}";case"Types":return"\u{1F4DD}";case"Unknown":return"\u2753"}}async function x_(n){let{repoPath:e}=n;await ee(e);let r=L.getInstance(e),i=Ge(r,e);new pe(e).updateTopography(i);let o=["Entry","Logic","Data","Utility","Infrastructure","Test","Types","Unknown"],s=`# \u{1F3D7}\uFE0F Architecture Summary
891
+
892
+ `;if(s+=`## Detected Pattern: **${i.pattern}**
893
+ `,s+=`Confidence: ${i.patternConfidence.toFixed(0)}%
894
+
895
+ `,i.insights.length>0){s+=`## Insights
896
+ `;for(let c of i.insights)s+=`- ${c}
897
+ `;s+=`
898
+ `}s+=`## Layer Distribution
899
+
900
+ `,s+=`| Layer | Files | % of Total |
901
+ `,s+=`|-------|------:|:----------:|
902
+ `;let a=o.reduce((c,l)=>c+i.layers[l].count,0);for(let c of o){let l=i.layers[c],u=a>0?(l.count/a*100).toFixed(1):"0.0",d=__(c);s+=`| ${d} ${c} | ${l.count} | ${u}% |
903
+ `}s+=`
904
+ ## Top Files by Layer
905
+
906
+ `;for(let c of o){let l=i.layers[c];if(l.count===0)continue;let u=__(c);if(s+=`### ${u} ${c} (${l.count} files)
907
+ `,l.topFiles.length>0)for(let d of l.topFiles)s+=`- \`${d.path}\` (${d.confidence}% conf)
908
+ `,d.signals.length>0&&(s+=` - ${d.signals.join("; ")}
909
+ `);else s+=`- _No files classified with high confidence_
910
+ `;s+=`
911
+ `}return s+=`---
912
+ `,s+=`**Next Steps:**
913
+ `,s+="- Use `shadow_inspect_file` to explore files in each layer\n",s+="- Use `shadow_analyze_flow` to trace execution from Entry \u2192 Logic \u2192 Data\n",s+="- Use `shadow_analyze_deps` to understand layer boundaries\n",{content:[{type:"text",text:s}],suggestedNext:{tool:"shadow_recon_tree",reason:"Explore a subPath or use shadow_inspect_file"}}}X();ht();Je();import Ut from"path";async function rc(n){let{repoPath:e}=n;await ee(e);let r=L.getInstance(e),i=Ge(r,e),o=new pe(e).getSnapshot(),s=[],a=[],c=Object.values(i.layers.Entry.topFiles).map(p=>p.path),l=new Set(Object.values(i.layers.Data.topFiles).map(p=>p.path));for(let p of c){let f=Ut.isAbsolute(p)?p:Ut.join(e,p),m=r.imports.findByFile(f);for(let h of m)h.resolved_path&&l.has(Ut.relative(e,h.resolved_path))&&s.push(`\u2694\uFE0F LAYER BYPASS: \`${Ut.relative(e,p)}\` directly imports Data layer \`${Ut.relative(e,h.resolved_path)}\`. Should go through Logic.`)}let u=o.gravity?.hotspots||[];for(let p of u){let f=Yt(p.filePath,r);(f.layer==="Utility"||f.layer==="Unknown")&&p.gravity>50&&a.push(`\u{1F6A8} GRAVITY ANOMALY: \`${Ut.relative(e,p.filePath)}\` has high gravity (${p.gravity.toFixed(0)}) but is classified as ${f.layer}. Consider promoting to Core Logic.`)}for(let p of c){let f=Ut.isAbsolute(p)?p:Ut.join(e,p),m=r.exports.findByFile(f);m.length>10&&a.push(`\u{1F388} ENTRY BLOAT: \`${Ut.relative(e,p)}\` exports ${m.length} symbols. Entry handlers should be thin interfaces.`)}let d=`# \u{1F575}\uFE0F Architectural Scout Report
914
+
915
+ `;return s.length===0&&a.length===0?d+=`\u2705 No significant architectural drift detected. The structure remains "Legit".
916
+ `:(s.length>0&&(d+=`## \u274C Structural Violations
917
+ `,s.forEach(p=>d+=`- ${p}
918
+ `),d+=`
919
+ `),a.length>0&&(d+=`## \u26A0\uFE0F Architectural Warnings
920
+ `,a.forEach(p=>d+=`- ${p}
921
+ `),d+=`
922
+ `)),{content:[{type:"text",text:d}]}}X();J();import Pt from"path";Je();ht();async function S_(n){let{repoPath:e}=n;$.info({repoPath:e},"Setting up repository..."),$.info({repoPath:e}," Ensuring index is up-to-date...");let r=Date.now();await ee(e,void 0,!1,!0,V=>{let re=V.total>0?Math.round(V.current/V.total*100):0;$.info({phase:V.phase,progress:`${V.current}/${V.total}`,percentage:`${re}%`},V.message||`Indexing progress: ${V.phase}`)});let t=((Date.now()-r)/1e3).toFixed(1);$.info({repoPath:e,indexTime:`${t}s`}," Index check complete"),await Sn();let o=L.getInstance(e);$.info({repoPath:e},"Populating Project Hologram...");let s=new pe(e),a=Ge(o,e);s.updateTopography(a);let c=s.computeGravityZones();s.updateGravityZones(c),$.info({repoPath:e,sections:2},"Project Hologram populated (topography + gravity)");let l=o.files.getCount(),u=o.exports.getCount(),d=o.configs.getAll(),p=o.files.getTopDirectories(e),f=[],m=[],h="Standalone",v=V=>o.files.findPackageJsonChildren(V),b=V=>{let re=Pt.join(V,"package.json"),le=d.filter(G=>G.file_path===re),fe=[],se=G=>le.some(Ne=>Ne.key.startsWith("dep: ")&&Ne.key.includes(G));se("react")&&fe.push("React"),se("vue")&&fe.push("Vue"),se("next")&&fe.push("Next.js"),se("fastify")&&fe.push("Fastify"),se("express")&&fe.push("Express"),se("nestjs")&&fe.push("NestJS"),(se("prisma")||se("typeorm"))&&fe.push("DB");let K=le.find(G=>G.key==="description")?.value||"";return{stack:fe.join(", "),description:K.length>80?K.substring(0,77)+"...":K}},g=Pt.join(e,"apps"),x=Pt.join(e,"packages"),S=Pt.join(e,"services"),E=o.files.hasFilesPattern(g+"/%"),w=o.files.hasFilesPattern(x+"/%"),z=o.files.hasFilesPattern(S+"/%"),R=(V,re)=>{let le=v(V);le.length>0&&(f.push(`| **${re}/ (Directory)** | \uFE0F **DO NOT SUMMARIZE FULL DIR** | |`),le.forEach(fe=>{let se=Pt.dirname(fe.path),K=Pt.basename(se);if(K.startsWith("_")||K.includes("template"))return;let G=Pt.relative(e,se),Ne=b(se);f.push(`| \u2514\u2500 \`${G}\` | ${Ne.stack||"Module"} | ${Ne.description} |`),m.push(G)}))};E||w||z?(h="Monorepo",R(g,"apps"),R(S,"services"),R(x,"packages")):p.forEach(V=>{let re=V.root;if(!re||re.startsWith("."))return;let le=b(Pt.join(e,re));f.push(`| \`${re}/\` | ${le.stack||"Module"} | ${le.description} |`)});let U=Pt.join(e,"package.json"),T=d.find(V=>V.key==="name"&&V.kind==="Service"&&V.file_path===U)?.value||Pt.basename(e),N=d.filter(V=>V.kind==="Service"&&(V.key.startsWith("service:")||V.file==="docker-compose.yml")),F=[...new Set(N.map(V=>V.value).filter(V=>V&&typeof V=="string"&&!V.includes("[object Object]")&&!["postgres","redis","db","worker","undefined"].includes(V.toLowerCase())))],D=F.slice(0,5),C=D.length>0?`Service Cluster: ${D.join(", ")}${F.length>5?` (+${F.length-5} others)`:""}`:"",W=l<100?"small":"large",q=W==="small"?"You can safely use `shadow_recon_tree` to view the full tree.":' **AVOID summarizing large directories like `apps/` or `services/` as a whole.**\n Instead, look for a specific component in the map below and use `shadow_recon_tree({ subPath: "apps/my-app" })` on it.\n\uFE0F **Prefer Search:** Use `shadow_search_symbol` for directly finding symbols.',B="";try{let re=new Ce(e).detectAndRepairShifts(),le=new Lt(e),fe=o.missions.findLastMission();le.analyzeGhostChanges(fe?.commit_sha||void 0),o.intentLogs.countByType("heritage")===0&&new Rn(e).analyzeHeritage(20);let K=o.intentLogs.countByType("heritage"),G=o.intentLogs.countByType("discovery");K>0||G>0||re.repaired>0?B=`
923
+ ## Shadow Engine Insights
924
+ `+(K>0?`* **Architectural Heritage**: Bootstrapped ${K} significant historical moves.
925
+ `:"")+(G>0?`* **Recent Changes**: Detected ${G} external modifications.
926
+ `:"")+(re.repaired>0?`* **Symbol Healing**: Automatically repaired ${re.repaired} orphaned intent links.
927
+ `:""):B=`
928
+ ## Shadow Engine Status: **Active**
929
+ * **Integrity**: Git River matches Symbol Index.
930
+ * **Heritage**: Ready to track developer intent.
931
+ `}catch(V){B=`
932
+ ## Shadow Engine Status: **Offline**
933
+ * Error: ${V instanceof Error?V.message:"Unknown"}
934
+ `}try{let re=new Cn(e).runMaintenance();(re.pruning.deleted>0||re.pruning.converted>0)&&(B+=`
935
+ ### Clean Sweep Cycle
936
+ * **Pruned**: ${re.pruning.deleted} orphaned logs deleted, ${re.pruning.converted} converted to lapsed.
937
+ `+(re.compaction.eligible>0?`* **Compaction**: ${re.compaction.eligible} cold missions eligible for briefing synthesis.
938
+ `:""))}catch(V){$.warn({error:V},"Metabolism maintenance failed")}let H="";try{let V=o.missions.findActiveByPriority();V?H=`
939
+ ## Active Mission: **${V.name}** (#${V.id})
940
+ * Use \`shadow_ops_briefing\` to resume context.
941
+ `:H=`
942
+ ## Mission Status: **Idle**
943
+ * No active mission. Use \`shadow_ops_plan\` to begin task tracking.
944
+ `}catch{}return{content:[{type:"text",text:`
945
+ # Repository Indexed: ${T}
946
+
947
+ \u23F1\uFE0F **Initial deep index completed in ${t}s** (one-time operation - future syncs are instant)
948
+
949
+ ## \u{1F3D7}\uFE0F Architecture: ${h}
950
+ ${C?`> ${C}
951
+ `:""}
952
+
953
+ ${B}
954
+ ${H}
955
+
956
+ This is a ${W} repository with ${l} files.
957
+
958
+ ## System Overview
959
+ | Statistic | Value |
960
+ |-----------|-------|
961
+ | Total Files | ${l} |
962
+ | Exported Symbols | ${u} |
963
+ | Primary Stack | ${a.primaryStack} |
964
+
965
+ ## Component Map
966
+ | Component | Tech Stack | Description |
967
+ |-----------|------------|-------------|
968
+ ${f.length>20?f.slice(0,20).join(`
969
+ `)+`
970
+ | ... | ... | (*${f.length-20} more components hidden*) |`:f.join(`
971
+ `)}
972
+
973
+ ## Recommended Exploration Strategy
974
+ ${q}
975
+
976
+ ## \uFE0F Quick Reference
977
+ | Goal | Tool | Example |
978
+ |------|------|---------|
979
+ | Search for code | \`shadow_search_symbol\` | \`shadow_search_symbol({ query: "ProductController" })\` |
980
+ | Explore a *specific* component | \`shadow_recon_tree\` | \`shadow_recon_tree({ subPath: "apps/admin" })\` |
981
+ | Trace data flow | \`shadow_analyze_flow\` | \`shadow_analyze_flow({ filePath: "apps/admin/src/Admin.tsx" })\` |
982
+ | Find config/env | \`shadow_search_config\` | \`shadow_search_config({ key: "DATABASE_URL" })\` |
983
+
984
+ ---
985
+ **Ready.** What would you like to investigate first?
986
+ `}]}}X();import $_ from"path";import ME from"fs";function jE(n,e,r){let i=n.split(`
987
+ `),t=[],o=0;for(let d=0;d<Math.min(i.length,50);d++){let p=i[d].trim();if(p.startsWith("import ")||p.startsWith("from ")||p.startsWith("export ")&&p.includes(" from "))o=d+1;else if(p&&!p.startsWith("//")&&!p.startsWith("/*")&&!p.startsWith("*")&&p!==""&&o>0)break}o>0&&(t.push(...i.slice(0,o)),t.push(""));let s=[...r].sort((d,p)=>d.startLine-p.startLine),a=0,c=0;for(let d of s)if(d.isTarget){t.push(`// \u2501\u2501\u2501 REQUESTED: ${d.name} \u2501\u2501\u2501`);let p=i.slice(d.startLine-1,d.endLine);t.push(...p),t.push("// \u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501"),t.push(""),c++}else{let p=d.signature||FE(i,d.startLine-1,d.kind);p&&(t.push(`${p}`),t.push(` /* implementation: ${d.lineCount} lines */`),t.push(""),a++)}let l=s[s.length-1];if(l)for(let d=l.endLine;d<i.length;d++){let p=i[d].trim();if(p==="}"||p==="};"){t.push(i[d]);break}else if(p&&!p.startsWith("//"))break}return{foldedSource:t.join(`
988
+ `),totalOriginalLines:i.length,foldedToLines:t.length,siblingsShown:c,siblingsFolded:a}}function FE(n,e,r){let i=n[e];if(r.includes("Function")||r.includes("Method")||r.includes("Arrow")){let t="";for(let o=e;o<Math.min(e+5,n.length);o++)if(t+=n[o],t.includes("{")||t.includes("=>")){let s=t.indexOf("{");s>0&&(t=t.substring(0,s).trim());break}return t.trim()}return i}async function fn(n){let{repoPath:e,filePath:r,resolver:i}=ut(n),t=String(n.symbolName),o=n.context||"definition";if(r&&!i.isWithinRoot(r))return{content:[{type:"text",text:`Error: Access denied. Path ${r} is outside the repository root.`}],isError:!0};await ee(e);let s=L.getInstance(e),a=[];if(t.includes(".")){let[w,z]=t.split(".");a=s.exports.findMemberCandidates(w,z,r)}else a=s.exports.findDefinitionCandidates(t,r);if(a.length===0){let w=s.exports.findPotentialParents(t);if(w.length>0){let I=w.map(T=>`\`${T.name}\` (in ${i.getRelative(T.file_path)})`).join(", ");return{content:[{type:"text",text:`Symbol "${t}" not found as a top-level export.
989
+ However, it likely exists inside: ${I}.
990
+ Try: shadow_inspect_symbol({ symbolName: "${w[0].name}", context: "full" }) to see the class body.`}]}}let R=s.exports.findFuzzyCandidates(t).map(I=>I.name),U=ir(t,R,50,3);if(U.length>0){let I=U.map(T=>` \u2022 \`${T.match}\` (${T.score}% match)`).join(`
991
+ `);return{content:[{type:"text",text:`Error: Symbol "${t}" not found in the index.
992
+
993
+ Suggestions:
994
+ ${I}
995
+
996
+ Next steps:
997
+ \u2022 Search semantically: shadow_search_concept({ query: "${t}" })
998
+ \u2022 Verify repository is indexed: shadow_sync_index({ repoPath: "${e}" })`}]}}return{content:[{type:"text",text:`Error: Symbol "${t}" not found in the index.
999
+
1000
+ Next steps:
1001
+ \u2022 Search for it: shadow_search_concept({ query: "${t}" })
1002
+ \u2022 Try with file path: shadow_inspect_symbol({ symbolName: "${t}", filePath: "..." })
1003
+ `}]}}let c=a[0];if(c.kind==="ExportSpecifier"||c.kind==="ExportAllDeclaration"){let w=s.imports.findImportSource(c.file_path,t);if(w&&w.resolved_path)return fn({...n,filePath:w.resolved_path})}let l=ME.readFileSync(c.file_path,"utf8"),u=l.split(`
1004
+ `),d=c.end_line-c.start_line+1,p=150,f,m=!1,h=null;if(o==="definition"&&d>p){let z=s.exports.findSiblings(c.file_path).map(R=>({name:R.name,kind:R.kind,signature:R.signature||"",startLine:R.start_line,endLine:R.end_line,lineCount:R.end_line-R.start_line+1,isTarget:R.name===c.name&&R.start_line===c.start_line,parentName:R.parent_name}));if(z.length>1){h=jE(l,{name:c.name,startLine:c.start_line,endLine:c.end_line},z);let R=i.getRelative(c.file_path);f=h.foldedSource+`
1005
+
1006
+ \u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501
1007
+ \u{1F4CA} Semantic Fold Applied (context: "definition")
1008
+
1009
+ Original file: ${h.totalOriginalLines} lines
1010
+ Folded view: ${h.foldedToLines} lines
1011
+ Target Symbol: ${c.name}
1012
+ \u{1F4A1} Need more context?
1013
+ \u2022 Full symbol + dependencies + usage: shadow_inspect_symbol({ symbolName: "${c.name}", context: "full" })
1014
+ \u2022 ALL symbols in this file: shadow_inspect_file({ filePath: "${R}", detailLevel: "signatures" })
1015
+ \u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501`,m=!0}else f=u.slice(c.start_line-1,c.start_line-1+p).join(`
1016
+ `)+`
1017
+
1018
+ ... (truncated ${d-p} lines)`,m=!0}else f=u.slice(c.start_line-1,c.end_line).join(`
1019
+ `);let v=c.parent_name?`${c.parent_name}.${c.name}`:c.name,b=s.exports.findHydratedById(c.id),g={name:v,kind:c.kind,file:i.getRelative(c.file_path),startLine:c.start_line,endLine:c.end_line,totalLines:d,...m&&{truncated:!0,previewLines:p},classification:c.classification,source:f};if(b&&b.recent_intents&&b.recent_intents.length>0){let w={},z=Date.now();for(let R of b.recent_intents){if(R.is_crystallized&&R.type!=="crystal")continue;let U=R.created_at;U<1e10&&(U*=1e3);let I=new Date(U).getTime(),T=z-I,N="just now";if(T>0){let F=Math.floor(T/1e3),D=Math.floor(F/60),C=Math.floor(D/60),W=Math.floor(C/24);W>0?N=`${W}d ago`:C>0?N=`${C}h ago`:D>0?N=`${D}m ago`:N=`${F}s ago`}w[R.type]||(w[R.type]=[]),w[R.type].push(`[${N}] ${R.content}`)}g.intelligence={working_set_of:b.active_missions.map(R=>`Mission #${R.id}: ${R.name}`),total_intents:b.intent_log_count,recent_activity:w}}else b&&(g.intelligence={working_set_of:b.active_missions.map(w=>`Mission #${w.id}: ${w.name}`),total_intents:b.intent_log_count,recent_activity:null});try{let{generateEmbedding:w}=await Promise.resolve().then(()=>(Nt(),ni)),z=`Symbol: ${g.name}
1020
+ Signature: ${c.signature||""}
1021
+ File: ${g.file}`,R=await w(z);if(R){let U=s.intentLogs.findSemanticMatches(R,3,c.id),I=new Promise(N=>setTimeout(()=>N([]),100)),T=await Promise.race([U,I]);T&&T.length>0&&(g.intelligence||(g.intelligence={}),g.intelligence.related_knowledge=T.map(N=>({type:N.type,content:N.content,from_symbol:N.symbol_name,similarity:`${(N.similarity*100).toFixed(0)}%`})))}}catch{}if(o==="definition")return{content:[{type:"text",text:JSON.stringify(g,null,2)}]};let x={definition:g,dependencies:s.imports.getImportsForFile(c.file_path).map(w=>({module:w.module_specifier,symbols:w.imported_symbols,relativePath:w.resolved_path?$_.relative(e,w.resolved_path):null}))},S=[c.file_path],E=s.imports.findVerifiedDependents(S,t);return x.verifiedUsages=E.slice(0,10).map(w=>({file:$_.relative(e,w.file_path),classification:w.classification,importedSymbols:w.imported_symbols})),{content:[{type:"text",text:JSON.stringify(x,null,2)}]}}X();ht();import UE from"fs";import w_ from"path";var ZE=new Set(["ClassDeclaration","FunctionDeclaration","TsInterfaceDeclaration","TsTypeAliasDeclaration","TsEnumDeclaration","VariableDeclaration"]);function k_(n){return n.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")}function af(n,e,r){let i=r.trim();return!!(!i||i.length>8e3||/^\w{1,4}\s+['"].*['"];?$/.test(i)&&!i.startsWith("export ")||i.includes(`
1022
+ import `)&&!i.startsWith("import ")||e&&ZE.has(e)&&n&&!new RegExp(`\\b${k_(n)}\\b`).test(i))}function HE(n,e){let r=Math.max(0,(n.start_line||1)-1),i=Math.min(e.length,Math.max(r+1,(n.end_line||n.start_line||1)+1,r+120)),t=e.slice(r,i).join(`
1023
+ `),o=nt(t,n.kind);return o?o.length>800?`${o.slice(0,797)}...`:o:n.signature||""}function WE(n,e,r){if(!n)return null;let i=k_(n),t=[];e==="TsTypeAliasDeclaration"&&t.push(new RegExp(`^\\s*export\\s+type\\s+${i}\\b`)),e==="TsInterfaceDeclaration"&&t.push(new RegExp(`^\\s*export\\s+interface\\s+${i}\\b`)),e==="FunctionDeclaration"&&t.push(new RegExp(`^\\s*(?:export\\s+)?(?:async\\s+)?function\\s+${i}\\b`)),e==="ClassDeclaration"&&t.push(new RegExp(`^\\s*(?:export\\s+)?(?:abstract\\s+)?class\\s+${i}\\b`)),e==="VariableDeclaration"&&t.push(new RegExp(`^\\s*(?:export\\s+)?(?:const|let|var)\\s+${i}\\b`)),t.push(new RegExp(`\\b${i}\\b`));for(let o of t)for(let s=0;s<r.length;s++)if(o.test(r[s]))return s+1;return null}function BE(n,e,r){let i=Math.max(0,n-1);if(e==="TsTypeAliasDeclaration"||e==="VariableDeclaration"||e==="TsEnumDeclaration"){for(let t=i;t<r.length;t++){if(r[t].includes(";"))return t+1;if(/^\s*export\s+(type|interface|class|function|const|let|var)\b/.test(r[t])&&t>i)return t}return Math.min(r.length,n+20)}if(e==="TsInterfaceDeclaration"||e==="ClassDeclaration"||e==="FunctionDeclaration"){let t=0,o=!1;for(let s=i;s<r.length;s++){let a=r[s];for(let c of a)c==="{"?(t+=1,o=!0):c==="}"&&(t-=1);if(o&&t<=0)return s+1}return Math.min(r.length,n+120)}return Math.min(r.length,n+40)}function GE(n){return Array.isArray(n)?n.filter(e=>e.module!=="__type_reference__"):n}function JE(n,e){return n?e==="TsTypeAliasDeclaration"?`type ${n}`:e==="TsInterfaceDeclaration"?`interface ${n}`:e==="FunctionDeclaration"?`function ${n}()`:e==="ClassDeclaration"?`class ${n}`:e==="VariableDeclaration"?`const ${n}`:`${e||"symbol"} ${n}`:e||"symbol"}function qE(n,e){if(!n||e!=="TsTypeAliasDeclaration"&&e!=="TsInterfaceDeclaration")return n;let r=n.indexOf(`
1024
+ export `);return r<=0?n:n.slice(0,r).trim()}async function Wr(n){let{repoPath:e,filePath:r}=ut(n);if(!r)return{content:[{type:"text",text:"Error: filePath is required"}],isError:!0};let i=n.detailLevel||"signatures";await ee(e);let{files:t,exports:o}=L.getInstance(e),s=t.findByPath(r),a=w_.basename(r),c=/\.(ts|tsx|php|py|go)$/.test(a),l;c?l=await Xn(r):l={exports:o.findByFile(r),imports:[]};let u=null;if(c)try{u=UE.readFileSync(r,"utf8").split(`
1025
+ `)}catch{u=null}Array.isArray(l.exports)&&u&&(l.exports=l.exports.map(m=>{let h=typeof m.signature=="string"?m.signature:"",v=m.start_line??m.line??1,b=m.end_line??m.endLine??v;if(af(m.name||"",m.kind,h)){let x=WE(m.name||"",m.kind,u),S=x??v,E=x?BE(S,m.kind,u):b,w=HE({name:m.name||"",kind:m.kind,signature:h,start_line:S,end_line:E},u),z=qE(w,m.kind),R=af(m.name||"",m.kind,z)?JE(m.name||"",m.kind):z;return{...m,signature:R,start_line:S,end_line:E,line:S,endLine:E,members:Array.isArray(m.members)?m.members.filter(U=>{let I=typeof U.signature=="string"?U.signature:"";return!af(U.name||"",U.kind,I)}):m.members}}return m})),l.imports=GE(l.imports),i==="structure"?(l.exports=l.exports.map(m=>{let h={name:m.name,kind:m.kind,line:m.start_line,classification:m.classification};return m.members&&m.members.length>0?{...h,members:m.members.map(v=>({name:`${m.name}.${v.name}`,kind:v.kind,line:v.start_line}))}:h}),delete l.imports):i==="signatures"&&(l.exports=l.exports.map(m=>{let h={name:m.name,kind:m.kind,signature:m.signature,line:m.start_line,classification:m.classification,capabilities:JSON.parse(m.capabilities||"[]")};return m.members&&m.members.length>0?{...h,members:m.members.map(v=>({name:`${m.name}.${v.name}`,kind:v.kind,signature:v.signature,line:v.start_line}))}:h}),delete l.imports);let d=w_.relative(e,r),p=l.exports?.length||0,f="";return i==="structure"&&p>0?f=`
1026
+
1027
+ \u{1F4A1} Showing ${p} symbol names. For full signatures: shadow_inspect_file({ filePath: "${d}", detailLevel: "signatures" })`:i==="signatures"&&p>0&&(f=`
1028
+
1029
+ \u{1F4A1} Showing ${p} complete signatures. To inspect a specific symbol: shadow_inspect_symbol({ symbolName: "...", context: "full" })`),{content:[{type:"text",text:JSON.stringify({...l,fileDescription:s?.summary||"",classification:s?.classification&&s.classification!=="Unknown"?s.classification:Yt(r,L.getInstance(e)).layer},null,2)+f}]}}X();ht();async function ic(n){let{repoPath:e}=n;try{await ee(e),new Lt(e).analyzeGhostChanges();let i=new Ce(e),t=i.detectAndRepairShifts(),o=i.syncLifecycle(),a=await new ct(e).recoverFromGitNotes(),{HologramService:c}=await Promise.resolve().then(()=>(Je(),Zg)),l=new c(e),u=Ge(L.getInstance(e),e);l.updateTopography(u);let d=l.computeGravityZones();l.updateGravityZones(d);let p="Shadow Sync complete. Code changes indexed and intent logs updated.";return p+=`
1030
+ \u269B\uFE0F Hologram: Refreshed architectural map (${d.length} hotspots).`,t.repaired>0&&(p+=`
1031
+ \u2728 Nano-Repair: Fixed ${t.repaired} links.`),a.missionsRecovered>0&&(p+=`
1032
+ \u{1F9EC} Re-hydration: Recovered ${a.missionsRecovered} missions.`),{content:[{type:"text",text:p}]}}catch(r){return{content:[{type:"text",text:`Error: ${r.message}`}],isError:!0}}}Je();async function E_(n){let{repoPath:e,deep:r}=n;try{let i=r===!0;await ee(e,5,i,i);let t=new Ce(e),o=t.detectAndRepairShifts(),s=t.syncLifecycle(),a=new pe(e);a.refreshTopography();let c=a.computeGravityZones();a.updateGravityZones(c);let l=`Repository at ${e} has been ${r?"deeply ":""}re-indexed.`;return o.repaired>0&&(l+=`
1033
+ \u2728 Nano-Repair: Fixed ${o.repaired} links.`),l+=`
1034
+ \u269B\uFE0F Hologram: Refreshed architectural map (${c.length} hotspots).`,{content:[{type:"text",text:l}]}}catch(i){return{content:[{type:"text",text:`Error: ${i.message}`}],isError:!0}}}async function I_(n){let{repoPath:e}=n;try{let i=new Ce(e).detectAndRepairShifts();return{content:[{type:"text",text:JSON.stringify(i,null,2)}]}}catch(r){return{content:[{type:"text",text:`Error tracing shifts: ${r.message}`}],isError:!0}}}J();var cf=$.child({module:"mcp:tools:env:hooks"});async function Br(n){let{repoPath:e,action:r,enableAutoRefresh:i,enableSymbolHealing:t}=n;if(r==="install"){cf.info({repoPath:e,enableAutoRefresh:i,enableSymbolHealing:t},"Installing git hooks");let o=$c({repoPath:e,enableAutoRefresh:i??!0,enableSymbolHealing:t??!0}),s=["# Git Hooks Installation","",`## Installed (${o.installed.length})`,o.installed.length>0?o.installed.map(a=>`- \`${a}\``).join(`
1035
+ `):"- None","",`## \u23ED\uFE0F Skipped (${o.skipped.length})`,o.skipped.length>0?o.skipped.map(a=>`- \`${a}\` (already installed)`).join(`
1036
+ `):"- None",""];return o.errors.length>0&&(s.push(`## Errors (${o.errors.length})`),s.push(o.errors.map(a=>`- ${a}`).join(`
1037
+ `)),s.push("")),s.push("---"),s.push("**What happens now?**"),(i??!0)&&s.push("- After `git pull` or `git checkout`: Index auto-refreshes in background"),(t??!0)&&s.push("- After `git commit`: Symbol shift detection runs automatically"),{content:[{type:"text",text:s.join(`
1038
+ `)}]}}if(r==="remove"){cf.info({repoPath:e},"Uninstalling git hooks");let o=wc(e),s=["# Git Hooks Uninstallation","",`## Removed (${o.removed.length})`,o.removed.length>0?o.removed.map(a=>`- \`${a}\``).join(`
1039
+ `):"- None",""];return o.errors.length>0&&(s.push(`## Errors (${o.errors.length})`),s.push(o.errors.map(a=>`- ${a}`).join(`
1040
+ `))),{content:[{type:"text",text:s.join(`
1041
+ `)}]}}if(r==="status"){cf.info({repoPath:e},"Checking git hooks status");let o=Ct(e);return{content:[{type:"text",text:["# Git Hooks Status","",`## Installed (${o.installed.length})`,o.installed.length>0?o.installed.map(a=>`- \`${a}\``).join(`
1042
+ `):"- None","",`## Not Installed (${o.notInstalled.length})`,o.notInstalled.length>0?o.notInstalled.map(a=>`- \`${a}\``).join(`
1043
+ `):"- None","","---",'**To install hooks**: Use `shadow_env_hooks({ action: "install" })`'].join(`
1044
+ `)}]}}return{content:[{type:"text",text:`Unknown action: ${r}`}],isError:!0}}dt();import oc from"path";import T_ from"fs";J();var VE=$.child({module:"mcp:tools:env:diagnose"});async function P_(n){let{repoPath:e}=n,r=oc.isAbsolute(e)?oc.normalize(e):oc.resolve(process.cwd(),e);VE.info({repoPath:r},"Running MCP diagnose");let i=["# MCP Server Health Check","",`**Repository path**: \`${r}\``,""],t=!1;try{t=T_.statSync(r).isDirectory()}catch{}i.push("## 1. Path"),i.push(t?"\u2705 Directory exists":"\u274C Path missing or not a directory"),i.push("");let o=oc.join(r,".git"),s=t&&T_.existsSync(o);i.push("## 2. Git repository"),i.push(s?"\u2705 `.git` found":"\u274C Not a Git repository (or path invalid)"),i.push("");let a=!1,c=!1;if(t)try{We(r),a=!0,c=Oe(r)}catch{}i.push("## 3. Database & index"),i.push(a?"\u2705 Database connected":"\u274C Database not available"),i.push(c?"\u2705 Repository indexed":"\u26A0\uFE0F Not indexed yet"),i.push("");let l=t?Ct(r):{installed:[],notInstalled:[]};return i.push("## 4. Git hooks"),i.push(l.installed.length>0?`\u2705 Installed: ${l.installed.join(", ")}`:"\u26A0\uFE0F No Shadow hooks installed"),i.push(""),i.push("## 5. Next steps"),t?c?i.push("- Index is ready. Use shadow_search_*, shadow_inspect_*, shadow_analyze_*."):i.push("- Run **shadow_recon_onboard** to populate the index."):i.push("- Use a valid repository path."),{content:[{type:"text",text:i.join(`
1045
+ `)}]}}X();J();import KE from"path";import YE from"fs";var R_=$.child({module:"mcp:tools:workspace:list"});async function sc(n){let{repoPaths:e,status:r,limit:i,summarize:t=!1}=n;R_.info({repoCount:e.length,status:r,summarize:t},"Getting workspace missions");let o=[];for(let a of e)if(YE.existsSync(a))try{let{missions:c}=L.getInstance(a),l=c.findAll(r);for(let u of l){let d=c.getLinks(u.id);o.push({...u,repo_path:a,repo_name:KE.basename(a),cross_repo_links:d})}}catch(c){R_.error({error:c,repoPath:a},"Failed to query repo missions")}if(o.sort((a,c)=>{let l=p=>p==="in-progress"?0:p==="verifying"?1:2,u=l(a.status),d=l(c.status);return u!==d?u-d:(a.created_at||0)-(c.created_at||0)}),t||o.length>50&&!i){let a=i||20,c=o.slice(0,a),l=o.reduce((d,p)=>(d[p.status]=(d[p.status]||0)+1,d),{}),u=o.reduce((d,p)=>(d[p.repo_name]=(d[p.repo_name]||0)+1,d),{});return{content:[{type:"text",text:JSON.stringify({summary:{total_missions:o.length,by_status:l,by_repo:u,showing_top:a},top_missions:c,hint:`Showing top ${a} of ${o.length} missions. Use limit to adjust or summarize:false for full list.`},null,2)}]}}let s=i?o.slice(0,i):o;return{content:[{type:"text",text:JSON.stringify({total_missions:o.length,showing:s.length,missions:s},null,2)}]}}X();J();var XE=$.child({module:"mcp:tools:workspace:link"});async function ac(n){let{parentRepoPath:e,parentMissionId:r,childRepoPath:i,childMissionId:t,relationship:o="related"}=n;XE.info({parentRepoPath:e,childRepoPath:i},"Linking cross-repo missions");let{missions:s}=L.getInstance(e),{missions:a}=L.getInstance(i);try{let c=s.findById(r),l=a.findById(t);if(!c)throw new Error(`Parent mission ${r} not found`);if(!l)throw new Error(`Child mission ${t} not found`);return s.createLink(r,i,t,o,"parent"),a.createLink(t,e,r,o,"child"),{content:[{type:"text",text:JSON.stringify({status:"linked",relationship:o},null,2)}]}}catch(c){throw new Error(`Failed to link: ${c.message}`)}}J();var QE=$.child({module:"mcp:tools:workspace:fuse"});async function cc(n){let{repoPaths:e,name:r}=n;QE.info({repoCount:e.length,name:r},"Creating fused workspace index");try{let i=Jc({repoPaths:e,name:r||`workspace-${Date.now()}`});return{content:[{type:"text",text:JSON.stringify({message:"Fused index created",status:i.getStatus()},null,2)}]}}catch(i){throw new Error(`Failed to fuse: ${i.message}`)}}var lf=y.object({repoPath:y.string(),name:y.string().optional(),goal:y.string().optional(),strategy:y.string().optional(),missionId:y.number().optional(),parentId:y.number().optional(),outcomeContract:y.string().optional(),templateId:y.string().optional(),templateVars:y.record(y.string(),y.string()).optional()}),uf=y.object({repoPath:y.string(),missionId:y.number(),stepId:y.string().optional(),status:y.enum(["pending","in-progress","completed","failed","skipped"]).optional(),contextPivot:y.string().optional(),updates:y.array(y.object({stepId:y.string(),status:y.enum(["pending","in-progress","completed","failed","skipped"]),contextPivot:y.string().optional()})).optional(),artifacts:y.array(y.object({type:y.string(),identifier:y.string(),metadata:y.record(y.string(),y.any()).optional()})).optional()}),df=y.object({repoPath:y.string(),missionId:y.number().optional(),scope:y.enum(["mission","project"]).optional(),altitude:y.enum(["orbit","atmosphere","ground"]).optional(),activeMissionsLimit:y.number().int().positive().optional(),recentActivityLimit:y.number().int().positive().optional(),compact:y.boolean().optional()}),pf=y.object({repoPath:y.string(),missionId:y.number().optional(),type:y.enum(["decision","blocker","discovery","fix"]),content:y.string(),filePath:y.string().optional(),symbolName:y.string().optional(),standalone:y.boolean().optional()}),mf=y.object({repoPath:y.string(),missionId:y.number()}),ff=y.object({repoPath:y.string(),format:y.enum(["markdown","json"]).optional(),limit:y.number().optional(),offset:y.number().optional(),since:y.number().optional(),until:y.number().optional()}),hf=y.object({repoPath:y.string()}),gf=y.object({repoPath:y.string(),compact:y.boolean().optional()}),yf=y.object({repoPath:y.string(),missionId:y.number().optional(),symbolId:y.number().optional()}),bf=y.object({repoPath:y.string(),missionId:y.number().optional(),depth:y.number().optional(),limit:y.number().optional(),format:y.enum(["mermaid","json"]).optional()}),z_=y.object({repoPath:y.string(),filePaths:y.array(y.string())}),vf=y.object({repoPath:y.string(),subPath:y.string().optional(),maxDepth:y.number().int().optional()}),_f=y.object({repoPath:y.string(),compact:y.boolean().optional()}),xf=y.object({repoPath:y.string()}),Sf=y.object({repoPath:y.string()}),$f=y.object({repoPath:y.string()}),wf=y.object({repoPath:y.string(),query:y.string(),limit:y.number().int().optional(),offset:y.number().int().optional(),compact:y.boolean().optional(),fileType:y.string().optional(),layer:y.enum(["Solid","Liquid","Virtual","Intel","Phantom"]).optional()}),kf=y.object({repoPath:y.string(),query:y.string(),limit:y.number().int().optional(),offset:y.number().int().optional(),fileType:y.string().optional(),layer:y.enum(["Solid","Liquid","Virtual","Intel","Phantom"]).optional(),matchMode:y.enum(["any","all","exact"]).optional()}),Ef=y.object({repoPath:y.string(),query:y.string().optional(),key:y.string().optional(),kind:y.enum(["Service","Image","Port","Env"]).optional(),limit:y.number().int().optional(),showUsage:y.boolean().optional()}),If=y.object({repoPath:y.string(),query:y.string(),limit:y.number().int().optional(),offset:y.number().int().optional(),fileType:y.string().optional(),layer:y.enum(["Solid","Liquid","Virtual","Intel","Phantom"]).optional(),ranked:y.boolean().optional()}),Tf=y.object({repoPath:y.string(),filePath:y.string().optional(),symbolName:y.string(),depth:y.number().int().optional(),limit:y.number().int().positive().optional(),offset:y.number().int().nonnegative().optional()}),Pf=y.object({repoPath:y.string(),filePath:y.string(),symbolName:y.string().optional()}),Rf=y.object({repoPath:y.string(),filePath:y.string(),direction:y.enum(["imports","imported_by"]),limit:y.number().int().positive().optional(),offset:y.number().int().nonnegative().optional()}),zf=y.object({repoPath:y.string(),mode:y.enum(["dead-code","circular-deps"]),limit:y.number().int().optional(),includeTests:y.boolean().optional(),excludePatterns:y.array(y.string()).optional(),includeMigrations:y.boolean().optional(),includeFixtures:y.boolean().optional(),confidenceThreshold:y.enum(["all","high","medium"]).optional()}),Nf=y.object({repoPath:y.string(),symbolName:y.string(),filePath:y.string().optional(),context:y.enum(["definition","full"]).optional()}),Cf=y.object({repoPath:y.string(),filePath:y.string(),detailLevel:y.enum(["structure","signatures","summaries","detailed"]).optional()}),Df=y.object({repoPath:y.string()}),Lf=y.object({repoPath:y.string(),deep:y.boolean().optional()}),Af=y.object({repoPath:y.string()}),Of=y.object({repoPath:y.string(),action:y.enum(["install","remove","status"]),enableAutoRefresh:y.boolean().optional(),enableSymbolHealing:y.boolean().optional()}),Mf=y.object({repoPath:y.string()}),jf=y.object({repoPaths:y.array(y.string()),status:y.string().optional(),limit:y.number().int().positive().optional(),summarize:y.boolean().optional()}),Ff=y.object({parentRepoPath:y.string(),parentMissionId:y.number(),childRepoPath:y.string(),childMissionId:y.number(),relationship:y.string()}),Uf=y.object({repoPaths:y.array(y.string()),name:y.string().optional()});J();var eI=["repoPath","filePath","subPath","path","parentRepoPath","childRepoPath"];function lc(n,e){if(!(!n||typeof n!="object"))for(let r in n)typeof n[r]=="string"?["filePath","subPath","path","repoPath","parentRepoPath","childRepoPath"].includes(r)&&(n[r]=e.resolve(n[r])):Array.isArray(n[r])?n[r].forEach(i=>lc(i,e)):typeof n[r]=="object"&&lc(n[r],e)}function N_(n){if(!(!n||typeof n!="object")){for(let e of eI)if(typeof n[e]=="string")try{n[e]=Wn(n[e])}catch(r){throw r}Array.isArray(n.repoPaths)&&(n.repoPaths=n.repoPaths.map(e=>typeof e=="string"?Wn(e):e))}}function C_(n,e){return async r=>{let i=$.child({handler:n});try{N_(r)}catch(t){return i.warn({err:t},"Path sanitization failed"),mn("VALIDATION_ERROR",t.message,{})}try{if(r?.repoPath&&typeof r.repoPath=="string"){let o=new pn(r.repoPath);lc(r,o)}i.info({args:r},"Handling tool call");let t=await e(r);return i.debug("Tool call successful"),t}catch(t){i.error({err:t},"Error in tool handler");let o=t.message?.includes("Access denied"),s=`Handler '${n}' failed: ${t.message}`;return!o&&r?.repoPath&&(s+=Gi),mn(o?"FORBIDDEN":"INTERNAL_ERROR",s,{stack:t.stack})}}}function D_(n,e,r){return async i=>{let t=$.child({handler:n});try{N_(i)}catch(s){return t.warn({err:s},"Path sanitization failed"),mn("VALIDATION_ERROR",s.message,{})}if(i?.repoPath&&typeof i.repoPath=="string"){let s=new pn(i.repoPath);lc(i,s)}t.info({args:i},"Handling tool call with validation");let o=e.safeParse(i);if(!o.success){let s=o.error.issues.map(a=>`${a.path.length>0?`${a.path.join(".")}: `:""}${a.message}`).join(", ");return t.warn({validationIssues:o.error.issues},"Validation failed"),mn("VALIDATION_ERROR",`Validation error: ${s}`,{issues:o.error.issues})}try{let s=await r(o.data);return t.debug("Tool call successful"),s}catch(s){t.error({err:s},"Error in tool handler");let a=s.message?.includes("Access denied"),c=`Handler '${n}' failed: ${s.message}`,l=o.data;return!a&&l?.repoPath&&(c+=Gi),mn(a?"FORBIDDEN":"INTERNAL_ERROR",c,{stack:s.stack})}}}function Gr(n,e){return async r=>{let i=r.repoPath;if(!i)return n(r);let t=o_(i,e);return t||n(r)}}var tI={shadow_ops_plan:{default:Za},shadow_ops_track:{default:Ga},shadow_ops_briefing:{default:Ur},shadow_ops_log:{default:qa},shadow_ops_synthesize:{default:Ja},shadow_ops_chronicle:{default:qv},shadow_ops_context:{default:Gr(Vv,"shadow_ops_context")},shadow_ops_health:{default:Yv},shadow_ops_graph:{default:Ka},shadow_ops_crystallize:{default:n_},shadow_working_set_check:{default:Gr(r_,"shadow_working_set_check")},shadow_recon_tree:{default:b_},shadow_recon_hologram:{default:v_},shadow_recon_topography:{default:x_},shadow_recon_scout:{default:rc},shadow_recon_onboard:{default:S_},shadow_search_concept:{default:Qa},shadow_search_symbol:{default:Ji},shadow_search_config:{default:ec},shadow_search_path:{default:a_},shadow_analyze_impact:{default:c_},shadow_analyze_flow:{default:nc},shadow_analyze_deps:{default:h_},shadow_analyze_debt:{default:y_},shadow_inspect_symbol:{default:Gr(fn,"shadow_inspect_symbol")},shadow_inspect_file:{default:Gr(Wr,"shadow_inspect_file")},shadow_sync_trace:{default:Gr(ic,"shadow_sync_trace")},shadow_sync_index:{default:E_},shadow_sync_repair:{default:Gr(I_,"shadow_sync_repair")},shadow_env_hooks:{default:Br},shadow_env_diagnose:{default:P_},shadow_workspace_list:{default:sc},shadow_workspace_link:{default:ac},shadow_workspace_fuse:{default:cc}},nI={shadow_ops_plan:lf,shadow_ops_track:uf,shadow_ops_briefing:df,shadow_ops_log:pf,shadow_ops_synthesize:mf,shadow_ops_chronicle:ff,shadow_ops_context:gf,shadow_ops_health:hf,shadow_ops_graph:bf,shadow_ops_crystallize:yf,shadow_working_set_check:z_,shadow_recon_tree:vf,shadow_recon_hologram:_f,shadow_recon_topography:xf,shadow_recon_scout:Sf,shadow_recon_onboard:$f,shadow_search_concept:wf,shadow_search_symbol:kf,shadow_search_config:Ef,shadow_search_path:If,shadow_analyze_impact:Tf,shadow_analyze_flow:Pf,shadow_analyze_deps:Rf,shadow_analyze_debt:zf,shadow_inspect_symbol:Nf,shadow_inspect_file:Cf,shadow_sync_trace:Df,shadow_sync_index:Lf,shadow_sync_repair:Af,shadow_env_hooks:Of,shadow_env_diagnose:Mf,shadow_workspace_list:jf,shadow_workspace_link:Ff,shadow_workspace_fuse:Uf},L_=new Map;for(let[n,e]of Object.entries(tI)){let r=nI[n];r?L_.set(n,D_(n,r,async i=>{if(e.default)return e.default(i);let t=i.mode||i.action;if(!t){let s=Object.keys(e);return{content:[{type:"text",text:`Missing required parameter "mode" or "action" for tool ${n}.
1046
+
1047
+ \u{1F4A1} Solution: Specify one of: ${s.join(", ")}`}],isError:!0}}let o=e[t];if(!o){let s=Object.keys(e);return{content:[{type:"text",text:`Invalid mode/action "${t}" for tool ${n}.
1048
+
1049
+ \u{1F4A1} Solution: Use one of these modes: ${s.join(", ")}`}],isError:!0}}return o(i)})):L_.set(n,C_(n,async i=>{if(e.default)return e.default(i);let t=i.mode||i.action;if(!t)throw new Error(`Missing mode/action for tool ${n}`);let o=e[t];if(!o)throw new Error(`Unknown mode/action '${t}' for tool ${n}`);return o(i)}))}X();gc();dt();ht();Je();Qm();async function A_(n,e){let r=rI.resolve(n);try{await ie(async()=>{Ie("\u{1F311} Liquid Shadow: Topological Mapping");let i=parseInt(e.depth,10),t=await zn(r,i,"detailed",e.subPath);console.log(` ${_.bold("Root")}: ${_.cyan(r)}`),e.subPath&&console.log(` ${_.bold("Subpath")}: ${_.yellow(e.subPath)}`),console.log("");let o=s=>({name:s.name,info:s.type==="directory"?`${s.children?.length||0} items`:s.size,color:s.type==="directory"?"blue":"white",children:s.children?.map(o)});xc([o(t)]),console.log(""),pt("Mapping concluded.")})}finally{await de(r)}}import O_ from"path";import iI from"fs";async function M_(n,e){let r=O_.resolve(n);await ie(async()=>{if(Ie("\u{1F311} Liquid Shadow: Intelligence Deployment"),console.log(` ${_.bold("Target")}: ${_.cyan(r)}`),console.log(` ${_.bold("Objective")}: ${e.output?_.magenta("Data Extraction"):_.green("Semantic Mapping")}`),console.log(""),!e.output){let t=tt();t.start("Engaging intelligence engines...");let o="",s=a=>{if(a.phase!==o){o=a.phase;let c={scan:"\u{1F4E1} Scanning topography",parse:"\u{1F9E9} Parsing symbols",embed:"\u{1F9E0} Generating vectors",persist:"\u{1F4BE} Hardening index",complete:"\u{1F3C1} Mapping complete"}[a.phase]||a.phase;t.message(`${c}...`)}if(a.total>0&&a.current>0){let c=Math.round(a.current/a.total*100);t.message(`${o==="parse"?"Parsing":"Processing"}: ${a.current}/${a.total} (${c}%)`)}};try{await ee(r,void 0,e.force,e.deep??!0,s),t.message("\u{1FA79} Running Nano-Repair healing...");let c=new Ce(r).detectAndRepairShifts();t.stop("Intelligence mapping successfully concluded."),console.log(""),console.log(` ${_.bold("Next Steps:")}`),console.log(` ${_.dim("view your repo stats")} -> ${_.bold(_.cyan("liquid-shadow dashboard"))}`),console.log(` ${_.dim("start a chat search")} -> ${_.bold(_.cyan('liquid-shadow search-concept "your query"'))}`),console.log(""),pt("Liquid Shadow is online.")}catch(a){throw t.stop(`Operation failed: ${a.message}`),a}finally{await de(r)}return}let i=tt();i.start("Engaging intelligence engines...");try{let t=await zn(r,5,e.level,e.subPath),o=O_.resolve(e.output);if((process.env.LIQUID_SHADOW_SANDBOX==="1"||process.env.LIQUID_SHADOW_SANDBOX==="true")&&!pn.isPathWithinRoot(r,o))throw new Error("Sandbox mode: output path must be inside the repository. Set LIQUID_SHADOW_SANDBOX=0 to allow external paths.");iI.writeFileSync(o,JSON.stringify(t,null,2)),i.stop(`Data extraction saved: ${_.bold(_.cyan(o))}`),pt("Extraction complete.")}catch(t){throw i.stop(`Extraction failed: ${t.message}`),t}finally{await de(r)}})}import{performance as j_}from"perf_hooks";import oI from"path";X();async function F_(n){let e=oI.resolve(n);await ie(async()=>{console.log(`
1050
+ ${_.bold("Performance Benchmark - Liquid Shadow Intelligence")}`),console.log(` ${_.gray("Repository: ")} ${e}`),console.log(` ${_.yellow("Starting fresh index (DB deleted)...")}
1051
+ `);let r=j_.now();try{await ee(e,10,!0);let i=j_.now()-r,t=L.getInstance(e),o=t.files.getCount(),s=t.exports.getCount(),a=t.exports.getWithEmbeddingsCount();_e("Benchmark Results",`${_.bold("Total Time")}: ${i.toFixed(2)}ms (${(i/1e3).toFixed(2)}s)
1052
+ ${_.bold("Files Processed")}: ${_.cyan(o.toString())}
1053
+ ${_.bold("Symbols Extracted")}: ${_.cyan(s.toString())}
1054
+ ${_.bold("Symbols Embedded")}: ${_.cyan(a.toString())} (${(a/s*100).toFixed(1)}%)
1055
+ `+"\u2500".repeat(40)+`
1056
+ ${_.bold("Files/sec")}: ${_.green((o/(i/1e3)).toFixed(2))}
1057
+ ${_.bold("Symbols/sec")}: ${_.green((s/(i/1e3)).toFixed(2))}
1058
+ ${_.bold("ms per file")}: ${_.yellow((i/o).toFixed(2))}`,"green")}catch(i){throw console.error(`
1059
+ Benchmark failed during execution:`,i),i}finally{await de(e)}})}import uc from"path";async function U_(n,e){let r=uc.resolve(e.dir),i=uc.isAbsolute(n)?n:uc.resolve(r,n);await ie(async()=>{Ie("Execution Trace");let t=tt();t.start(`Tracing ${_.cyan(e.symbolName||uc.basename(i))}...`);try{let o=await nc({repoPath:r,filePath:i,symbolName:e.symbolName});t.stop("Trace complete."),o.isError?console.error(_.red(o.content[0].text)):_e("Flow Results",o.content[0].text,"magenta")}catch(o){throw t.stop(`Trace failed: ${o.message}`),o}finally{await de(r)}})}import sI from"path";async function Z_(n,e){let r=sI.resolve(n);await ie(async()=>{Ie("Shadow Sync");let i=tt();i.start("Synchronizing intelligence lifecycle...");try{let t=await ic({repoPath:r});i.stop("Sync complete."),t.isError?console.error(_.red(t.content[0].text)):(console.log(""),console.log(t.content[0].text),console.log(""))}catch(t){throw i.stop(`Sync failed: ${t.message}`),t}finally{await de(r)}})}ht();X();J();Je();import H_ from"path";async function W_(n,e,r){let i=e?H_.resolve(process.cwd(),e):process.cwd();if(n==="init"){$.info('Running full initialization (same as "index --force")...'),await ee(i,void 0,!0,!0);return}if(n==="tree"){$.info('For tree view, please use the "tree" command.');return}if(n==="topography"){await ee(i);let t=L.getInstance(i),o=Ge(t,i);console.log(`
1060
+ \u{1F3D7}\uFE0F Architecture Summary for ${H_.basename(i)}
1061
+ `),console.log(`Detected Pattern: **${o.pattern}** (Confidence: ${o.patternConfidence.toFixed(0)}%)`),o.insights.length>0&&(console.log(`
1062
+ Insights:`),o.insights.forEach(l=>console.log(`- ${l}`))),console.log(`
1063
+ Layer Distribution:`);let s=["Entry","Logic","Data","Utility","Infrastructure","Test","Types","Unknown"],a=Object.values(o.layers).reduce((l,u)=>l+u.count,0),c=l=>{switch(l){case"Entry":return"\u{1F6AA}";case"Logic":return"\u2699\uFE0F";case"Data":return"\u{1F4BE}";case"Utility":return"\u{1F527}";case"Infrastructure":return"\u{1F3D7}\uFE0F";case"Test":return"\u{1F9EA}";case"Types":return"\u{1F4DD}";default:return"\u2753"}};s.forEach(l=>{let u=o.layers[l],d=a>0?(u.count/a*100).toFixed(1):"0.0";console.log(`${c(l)} ${l.padEnd(14)} | ${u.count.toString().padStart(5)} files | ${d}%`)}),console.log(`
1064
+ Top Files by Layer:`),s.forEach(l=>{let u=o.layers[l];u.count!==0&&(console.log(`
1065
+ ${c(l)} ${l}`),u.topFiles.forEach(d=>{console.log(` - ${d.path} (${d.confidence}% conf)`),d.signals.length>0&&console.log(` \u2514\u2500 ${d.signals.slice(0,1).join(", ")}`)}))});return}if(n==="scout"){let t=await rc({repoPath:i});console.log(t.content[0].text);return}if(n==="hologram"){let t=new pe(i);console.log(JSON.stringify(t.getSnapshot(),null,2));return}$.error(`Unknown recon mode: ${n}. Available: init, topography, scout, hologram`)}import Ki from"path";async function B_(n,e){let r=Ki.resolve(e.dir);await ie(async()=>{Ie("Semantic Concept Search");let i=tt();i.start(`Analyzing intent: "${_.bold(n)}"...`);try{let t=await Qa({repoPath:r,query:n});i.stop("Analysis complete.");let o=t.content[0].text;if(o.includes("Found")){let a=o.split("## ").slice(1).map(c=>{let[l,...u]=c.split(`
1066
+
1067
+ `),[d,p]=l.split(" ( "),f=(d??"").replace(/^\d+\.\s*/,"").trim(),m=u.find(h=>h.startsWith("**Summary**: "))?.replace("**Summary**: ","")||"";return{name:f,matchPct:p??"",summaryLine:m}});if(a.forEach(({name:c,matchPct:l,summaryLine:u})=>{_e(`${_.green(c)} ${_.dim("("+(l||""))}`,u,"blue"),console.log("")}),e.interactive&&a.length>1){let c=await xo("Inspect a file",a.map(l=>({value:{name:l.name},label:l.name,hint:l.summaryLine.slice(0,50)})),{limit:15});if(c){let l=c.name.startsWith(r)?c.name:Ki.join(r,c.name),u=await Wr({repoPath:r,filePath:l});u.content?.[0]&&(console.log(""),_e(_.bold("File summary"),u.content[0].text,"cyan"))}}}else console.log(o)}catch(t){throw i.stop(`Search failed: ${t.message}`),t}finally{await de(r)}})}async function G_(n,e){let r=Ki.resolve(e.dir);await ie(async()=>{Ie("Symbol Search");let i=tt();i.start(`Searching symbols: "${_.bold(n)}"...`);try{let t=await Ji({repoPath:r,query:n});i.stop("Search complete.");let o=t.content[0].text;try{let s=JSON.parse(o);if(Array.isArray(s)){if(console.log(""),vo(["Symbol","Kind","File","Line"],s.map(a=>[_.bold(_.green(a.name)),_.dim(a.kind??""),_.cyan(a.file??""),_.yellow(String(a.line??""))])),e.interactive&&s.length>1){let a=s.map(l=>({value:l,label:l.name,hint:`${l.file??""}:${l.line??""}`})),c=await xo("Inspect symbol",a,{limit:15});if(c){let l=await fn({repoPath:r,symbolName:c.name});l.content?.[0]&&(console.log(""),_e(_.bold(c.name),l.content[0].text,"cyan"))}}}else console.log(o)}catch{console.log(o)}}catch(t){throw i.stop(`Search failed: ${t.message}`),t}finally{await de(r)}})}async function J_(n,e){let r=Ki.resolve(e.dir);await ie(async()=>{Ie("Fuzzy Symbol Search");let i=tt();i.start(`Fuzzy matching: "${_.bold(n)}"...`);try{let t=await Ji({repoPath:r,query:n});i.stop("Search complete.");let o=t.content[0].text;if(o.includes("## ")){let a=o.split("## ").slice(1).map(c=>{let l=c.split(`
1068
+ `),u=l[0],d=l.find(b=>b.startsWith("**Match**:"))||"",p=l.find(b=>b.startsWith("**File**:"))||"",f=u.match(/`([^`]+)`/),m=f?f[1]:"",h=d.match(/\*\*Match\*\*: (.+) \((\d+)% confidence\)/),v=p.match(/`([^:]+):(\d+)`/);return{symbolName:m,file:v?v[1]:"",line:v?v[2]:"",matchType:h?h[1]:"",confidence:h?h[2]:""}});if(console.log(""),console.log(_.dim(`Found ${a.length} fuzzy match(es):`)),console.log(""),a.forEach((c,l)=>{console.log(`${_.dim(`${l+1}.`)} ${_.bold(_.green(c.symbolName))} ${_.dim(`(${c.matchType}, ${c.confidence}% match)`)}`),console.log(` ${_.cyan(c.file)}:${_.yellow(c.line)}`),console.log("")}),e.interactive&&a.length>1){let c=await xo("Inspect symbol",a.map(l=>({value:l,label:l.symbolName,hint:`${l.file}:${l.line}`})),{limit:15});if(c){let l=await fn({repoPath:r,symbolName:c.symbolName});l.content?.[0]&&(console.log(""),_e(_.bold(c.symbolName),l.content[0].text,"cyan"))}}}else console.log(o)}catch(t){throw i.stop(`Search failed: ${t.message}`),t}finally{await de(r)}})}async function q_(n,e){let r=Ki.resolve(e.dir);await ie(async()=>{Ie("Config Search");let i=tt();i.start(`Searching config: ${_.bold(n||"all")}...`);try{let t=await ec({repoPath:r,key:n,kind:e.kind});i.stop("Search complete."),_e("\u2699\uFE0F Results",t.content[0].text,"yellow")}finally{await de(r)}})}async function V_(n){let[e,r="."]=n;if(!e||!["install","uninstall","status"].includes(e)){console.log(""),console.log(` ${_.bold("Usage: ")} liquid-shadow hooks <install|uninstall|status> [path]`),console.log(""),console.log(` ${_.bold("Commands: ")}`),console.log(` ${_.cyan("install")} Install git hooks for automatic index refresh and symbol healing`),console.log(` ${_.cyan("uninstall")} Remove installed git hooks`),console.log(` ${_.cyan("status")} Check git hooks installation status`),console.log(""),console.log(` ${_.bold("Examples: ")}`),console.log(" liquid-shadow hooks install ."),console.log(" liquid-shadow hooks status /path/to/repo"),console.log("");return}await ie(async()=>{let i=fx("path").resolve(r);switch(e){case"install":{let t=await Br({repoPath:i,action:"install",enableAutoRefresh:!0,enableSymbolHealing:!0});if(console.log(""),console.log(` ${_.green("\u2714")} ${_.bold("Git hooks installed successfully")}`),console.log(""),t.content&&t.content[0])try{let o=JSON.parse(t.content[0].text);console.log(` ${_.bold("Installed hooks: ")}`),o.hooks.forEach(s=>{console.log(` ${_.cyan("\u2022")} ${s}`)}),console.log("")}catch{console.log(t.content[0].text)}break}case"uninstall":{await Br({repoPath:i,action:"remove"}),console.log(""),console.log(` ${_.green("\u2714")} ${_.bold("Git hooks uninstalled successfully")}`),console.log("");break}case"status":{let t=await Br({repoPath:i,action:"status"});if(console.log(""),console.log(` ${_.bold("Git Hooks Status")}`),console.log(""),t.content&&t.content[0])try{let o=JSON.parse(t.content[0].text);o.installed&&o.installed.length>0?(console.log(` ${_.green("\u2714")} Installed hooks:`),o.installed.forEach(s=>{console.log(` ${_.cyan("\u2022")} ${s}`)})):console.log(` ${_.yellow("\u26A0")} No hooks installed`),o.missing&&o.missing.length>0&&(console.log(""),console.log(` ${_.dim("Missing hooks: ")}`),o.missing.forEach(s=>{console.log(` ${_.dim("\u2022")} ${s}`)}))}catch{console.log(t.content[0].text)}console.log("");break}}})}import dc from"path";async function K_(n){let[e,...r]=n;if(!e||!["missions","link","fuse"].includes(e)){console.log(""),console.log(` ${_.bold("Usage: ")} liquid-shadow workspace <missions|link> [options]`),console.log(""),console.log(` ${_.bold("Commands: ")}`),console.log(` ${_.cyan("missions")} <paths...> Get unified view of missions across repositories`),console.log(` ${_.cyan("link")} <args...> Link missions across repositories`),console.log(` ${_.cyan("fuse")} <paths...> Create fused index for cross-repo search (use --name for custom name)`),console.log(""),console.log(` ${_.bold("Examples: ")}`),console.log(" liquid-shadow workspace missions /frontend /backend"),console.log(" liquid-shadow workspace link /frontend 5 /backend 12"),console.log(" liquid-shadow workspace fuse /frontend /backend --name my-app"),console.log("");return}await ie(async()=>{switch(e){case"missions":{if(r.length===0){console.error(` ${_.red("\u2716")} Please provide at least one repository path`);return}let i=r.map(o=>dc.resolve(o)),t=await sc({repoPaths:i});if(console.log(""),console.log(` ${_.bold("Workspace Missions")}`),console.log(""),t.content&&t.content[0]){let o=JSON.parse(t.content[0].text);o.missions&&o.missions.length>0?o.missions.forEach(s=>{console.log(` ${_.cyan("\u2022")} ${_.bold(s.name)} (ID: ${s.id})`),console.log(` ${_.dim("Repo: ")} ${s.repo_path}`),console.log(` ${_.dim("Status: ")} ${s.status}`),console.log(` ${_.dim("Branch: ")} ${s.git_branch||"N/A"}`),s.cross_repo_links&&s.cross_repo_links.length>0&&console.log(` ${_.dim("Links: ")} ${s.cross_repo_links.length} cross-repo link(s)`),console.log("")}):(console.log(` ${_.yellow("\u26A0")} No missions found`),console.log(""))}break}case"link":{if(r.length<4){console.error(""),console.error(` ${_.red("\u2716")} Usage: workspace link <parent-repo> <parent-id> <child-repo> <child-id> [relationship]`),console.error("");return}let[i,t,o,s,a]=r;await ac({parentRepoPath:dc.resolve(i),parentMissionId:parseInt(t,10),childRepoPath:dc.resolve(o),childMissionId:parseInt(s,10),relationship:a}),console.log(""),console.log(` ${_.green("\u2714")} ${_.bold("Missions linked successfully")}`),console.log(` ${_.dim("Parent: ")} ${i} (Mission ${t})`),console.log(` ${_.dim("Child: ")} ${o} (Mission ${s})`),a&&console.log(` ${_.dim("Relationship: ")} ${a}`),console.log("");break}case"fuse":{if(r.length===0){console.error(` ${_.red("\u2716")} Please provide at least one repository path`);return}let i,t=[];for(let s=0;s<r.length;s++)r[s]==="--name"&&s+1<r.length?(i=r[s+1],s++):t.push(dc.resolve(r[s]));let o=await cc({repoPaths:t,name:i});if(console.log(""),console.log(` ${_.green("\u2714")} ${_.bold("Fused Index Created")}`),o.content&&o.content[0]){let s=JSON.parse(o.content[0].text);console.log(` ${_.dim("Name: ")} ${s.fused_index.name}`),console.log(` ${_.dim("Path: ")} ${s.fused_index.path}`),console.log(` ${_.dim("Repos: ")} ${s.fused_index.attachedRepos}`),console.log(""),console.log(` ${_.bold("Instructions:")}`),console.log(` ${s.instructions}`)}console.log("");break}}})}import aI from"path";var ye={..._,box:_e,table:vo,list:wh};async function Y_(n){let[e,...r]=n;if(!e||!["plan","briefing","update","log","synthesize","graph"].includes(e)){console.log(""),console.log(` ${ye.bold("Usage: ")} liquid-shadow mission <action> [options]`),console.log(""),console.log(` ${ye.bold("Actions: ")}`),console.log(` ${ye.cyan("plan")} <repo> <name> <goal> Plan a new mission`),console.log(` ${ye.cyan("update")} <repo> <id> <status> Update mission status`),console.log(` ${ye.cyan("log")} <repo> <id> <type> <msg> Log a mission discovery/intent`),console.log(` ${ye.cyan("briefing")} <repo> [--branch] Get mission briefing`),console.log(` ${ye.cyan("synthesize")} <repo> <id> Distill mission into ADR`),console.log(` ${ye.cyan("graph")} <repo> [id] Generate mission lineage graph`),console.log("");return}await ie(async()=>{let i=r[0]?aI.resolve(r[0]):process.cwd();switch(e){case"plan":{let[t,o,s]=r;if(!o||!s){console.error(` ${ye.red("\u2716")} Usage: mission plan <repo> <name> <goal>`);return}let a=await Za({repoPath:i,name:o,goal:s}),c=JSON.parse(a.content[0].text);console.log(` ${ye.green("\u2714")} Mission planned (ID: ${c.missionId})`);break}case"update":{let[t,o,s]=r;if(!o||!s){console.error(` ${ye.red("\u2716")} Usage: mission update <repo> <id> <status>`);return}await Ga({repoPath:i,missionId:parseInt(o),status:s}),console.log(` ${ye.green("\u2714")} Status updated to ${s}`);break}case"log":{let[t,o,s,...a]=r;if(!o||!s||a.length===0){console.error(` ${ye.red("\u2716")} Usage: mission log <repo> <id> <type> <message>`);return}await qa({repoPath:i,missionId:parseInt(o),type:s,content:a.join(" ")}),console.log(` ${ye.green("\u2714")} Intent logged`);break}case"synthesize":{let[t,o]=r;if(!o){console.error(` ${ye.red("\u2716")} Usage: mission synthesize <repo> <id>`);return}let s=await Ja({repoPath:i,missionId:parseInt(o)});console.log(""),ye.box("Mission Synthesis (ADR)",s.content[0].text,"magenta");break}case"graph":{let[t,o]=r,s=await Ka({repoPath:i,missionId:o?parseInt(o):void 0,format:"mermaid"});console.log(""),console.log(s.content[0].text);break}case"briefing":{let t=await Ur({repoPath:i});if(t.content&&t.content[0]){let o=t.content[0].text;try{let s=JSON.parse(o);if(s.mission){console.log(""),console.log(ye.bold(ye.cyan(` Mission Dashboard: ${s.mission.name} `))),ye.box("Tactical Goal",s.mission.goal,"cyan");let a=s.mission.status==="completed"?"green":s.mission.status==="failed"?"red":"yellow",c=[["Status",ye.bold(ye[a](s.mission.status.toUpperCase()))],["ID",`#${s.mission.id}`],["Branch",s.mission.git_branch||"main"]];ye.table(["Field","Value"],c),s.recent_activity&&s.recent_activity.length>0&&(console.log(` ${ye.bold("Recent Activity:")}`),ye.list(s.recent_activity.slice(0,5).map(l=>`${ye.dim(`[${l.type.toUpperCase()}]`)} ${l.content}`)))}else console.log(o)}catch{console.log(o)}}break}}})}import Zf from"path";async function X_(n){let[e,...r]=n;if(!e||!["symbol","file"].includes(e)){console.log(""),console.log(` ${_.bold("Usage: ")} liquid-shadow inspect <symbol|file> [options]`),console.log(""),console.log(` ${_.bold("Actions: ")}`),console.log(` ${_.cyan("symbol")} <repo> <name> Read source code for a symbol`),console.log(` ${_.cyan("file")} <repo> <path> Get a token-efficient file summary`),console.log("");return}await ie(async()=>{let i=r[0]?Zf.resolve(r[0]):process.cwd();if(e==="symbol"){let t=r[1];if(!t){console.error(` ${_.red("\u2716")} Please provide a symbol name`);return}let o=await fn({repoPath:i,symbolName:t});console.log(""),o.content&&o.content[0]&&console.log(o.content[0].text)}else{let t=r[1];if(!t){console.error(` ${_.red("\u2716")} Please provide a file path`);return}let o=Zf.isAbsolute(t)?t:Zf.join(i,t),s=await Wr({repoPath:i,filePath:o});console.log(""),s.content&&s.content[0]&&console.log(s.content[0].text)}})}var Q_=["index","status","metrics","benchmark","tree","trace","watch","search-config","search-concept","search-symbol","search-fuzzy","hooks","workspace","mission","inspect","completion"],cI=["--help","-h","--version","-v","--dir","-d"],lI={index:["--output","-o","--level","-l","--subPath","--force","--deep"],tree:["--subPath","--depth","-d"],trace:["--dir","-d"],"search-config":["--dir","-d","--kind"],"search-concept":["--dir","-d","--interactive","-i"],"search-symbol":["--dir","-d","--interactive","-i"],"search-fuzzy":["--dir","-d","--interactive","-i"]};function uI(){let n=Object.entries(lI).map(([i,t])=>` ${i}) opts="${t.join(" ")}" ;;`).join(`
1069
+ `),e=Q_.join(" ");return`# Bash completion for liquid-shadow. Usage: source <(liquid-shadow completion bash)
843
1070
  _liquid_shadow() {
844
1071
  local cur="\${COMP_WORDS[COMP_CWORD]}"
845
1072
  local words=("\${COMP_WORDS[@]}")
@@ -849,10 +1076,10 @@ _liquid_shadow() {
849
1076
  if [[ "\${words[$i]}" != -* ]]; then cmd="\${words[$i]}"; break; fi
850
1077
  ((i++))
851
1078
  done
852
- local opts="${jl.join(" ")}"
1079
+ local opts="${cI.join(" ")}"
853
1080
  if [ -n "$cmd" ]; then
854
1081
  case "$cmd" in
855
- ${i}
1082
+ ${n}
856
1083
  esac
857
1084
  else
858
1085
  COMPREPLY=($(compgen -W "${e}" -- "$cur"))
@@ -861,11 +1088,11 @@ ${i}
861
1088
  COMPREPLY=($(compgen -W "$opts" -- "$cur"))
862
1089
  }
863
1090
  complete -F _liquid_shadow liquid-shadow
864
- `}function Gl(){return`# Zsh completion for liquid-shadow. Usage: source <(liquid-shadow completion zsh)
1091
+ `}function dI(){return`# Zsh completion for liquid-shadow. Usage: source <(liquid-shadow completion zsh)
865
1092
  # Run after compinit (e.g. in .zshrc after compinit)
866
1093
 
867
1094
  _liquid_shadow() {
868
- local -a cmds; cmds=(${ra.map(e=>`'${e}'`).join(" ")})
1095
+ local -a cmds; cmds=(${Q_.map(e=>`'${e}'`).join(" ")})
869
1096
  if [ $CURRENT -eq 2 ]; then
870
1097
  _describe 'command' cmds
871
1098
  return
@@ -882,18 +1109,7 @@ _liquid_shadow() {
882
1109
  _describe 'flag' fl
883
1110
  }
884
1111
  compdef _liquid_shadow liquid-shadow
885
- `}async function oa(i){i==="bash"?console.log(Bl()):i==="zsh"?console.log(Gl()):(console.error("Usage: liquid-shadow completion <bash|zsh>"),console.error("Then: source <(liquid-shadow completion bash) # or zsh"),process.exit(1))}import ql from"fs";import Jl from"path";var Yl=2e3;async function aa(i){let e=Jl.resolve(i);await B(async()=>{se("Watch mode");let t=Oe(e),n=null,s=()=>{n&&clearTimeout(n),n=setTimeout(async()=>{n=null;try{console.log(""),console.log(f.dim(" Changes detected, reindexing...")),await G(e,5,!1,!0),console.log(f.green(" Reindex complete."))}catch(r){console.error(f.red(" Reindex failed:"),r instanceof Error?r.message:r)}},Yl)};try{ql.watch(e,{recursive:!0},(r,o)=>{o&&!o.includes("node_modules")&&s()}),console.log(f.cyan(` Watching ${e}`)),console.log(f.dim(" Ignore: "+(t.ignore?.length?t.ignore.join(", "):"default"))),Ee("Ctrl+C to stop"),await new Promise((r,o)=>{process.on("SIGINT",()=>o(new Error("SIGINT"))),process.on("SIGTERM",()=>o(new Error("SIGTERM")))}).catch(()=>{})}finally{n&&clearTimeout(n),await J(e)}})}z();W();var Vl=S.child({module:"narrative-service"}),ls=class{missions;briefingEngine;repoPath;constructor(e){this.repoPath=e;let{missions:t}=C.getInstance(e);this.missions=t,this.briefingEngine=new ze(e)}async generateChronicle(e={}){Vl.info(e,"Generating Repo Chronicle...");let n=this.missions.findAll().filter(l=>l.parent_id===null&&l.status!=="planned");e.since&&(n=n.filter(l=>l.updated_at>=e.since)),e.until&&(n=n.filter(l=>l.updated_at<=e.until)),n.sort((l,p)=>p.updated_at-l.updated_at);let s=e.offset||0,r=e.limit||10;n=n.slice(s,s+r);let o=[],c=[],a=[];for(let l of n){let p=this.missions.findByParentId(l.id),u=p.length>0,d=await this.briefingEngine.distillMission(l.id,!1);if(u){let m=[];for(let g of p)m.push(await this.mapMissionToEpisode(g));m.unshift(await this.mapMissionToEpisode(l));let h={kind:"initiative",root_mission_id:l.id,title:l.name,strategy_graph:l.strategy_graph?JSON.parse(l.strategy_graph):{},episodes:e.compact?[]:m,synthesized_narrative:e.compact?this.truncateText(d.adr):d.adr||""};o.push(h),a.push(h)}else{let m=await this.mapMissionToEpisode(l,d.adr,e.compact);c.push(m),a.push(m)}}return{repo_path:this.repoPath,generated_at:Date.now(),initiatives:o,unattached_episodes:c,timeline:a}}async mapMissionToEpisode(e,t,n=!1){let s=t;return s||(s=(await this.briefingEngine.distillMission(e.id,!1)).adr),{kind:"episode",mission_id:e.id,title:e.name,goal:e.goal,outcome:e.outcome_contract,intents:[],adr_summary:n?this.truncateText(s):s}}truncateText(e,t=300){return e?e.length<=t?e:e.slice(0,t)+"... (truncated)":""}renderChronicleMarkdown(e){let t=`# Repository Chronicle
886
-
887
- `;if(t+=`*Generated at ${new Date(e.generated_at).toISOString()}*
888
-
889
- `,e.timeline&&e.timeline.length>0)for(let n of e.timeline)n.kind==="initiative"?(t+=`### \u{1F9EC} ${n.title} (Mission #${n.root_mission_id})
890
- `,t+=`${n.synthesized_narrative}
891
-
892
- `):(t+=`### \u269B\uFE0F ${n.title} (Mission #${n.mission_id})
893
- `,t+=`${n.adr_summary}
894
-
895
- `),t+=`---
896
- `;return t}};W();import Ql from"path";async function ca(i,e){let t=Ql.resolve(i||process.cwd()),n=e.format==="json"?"json":"markdown",s=S.child({module:"cli:chronicle",repoPath:t});s.info("Generating repository chronicle...");try{let r=new ls(t),o=await r.generateChronicle({limit:e.limit,offset:e.offset,since:e.since,until:e.until});console.log(n==="json"?JSON.stringify(o,null,2):r.renderChronicleMarkdown(o))}catch(r){s.error({error:r},"Failed to generate chronicle"),console.error(`Error: ${r instanceof Error?r.message:String(r)}`),process.exit(1)}}import Ie from"fs";import st from"path";import Kl from"os";var ei={shadow_audit:'---\nname: audit\ndescription: Perform codebase health audits to identify dead code, circular dependencies, and technical debt. Use when auditing code quality, finding unused code, detecting circular dependencies, or when the user asks about codebase health, technical debt, or code cleanup.\n---\n\n# Codebase Audit\n\nComprehensive health audit using Shadow analyze toolkit.\n\n## \u{1F680} Workflow\n\n1. **Session Context**: `shadow_ops_context` (repoPath) \u2014 **ONE CALL** for hologram + chronicle + briefing. Get architecture baseline.\n2. **Dead Code Detection**: `shadow_analyze_debt` (mode: "dead-code", limit: 100, includeTests: false, repoPath) \u2014 Unused exports.\n3. **Circular Dependencies**: `shadow_analyze_debt` (mode: "circular-deps", limit: 20, repoPath) \u2014 Import cycles.\n4. **Layer Integrity** (optional): `shadow_recon_topography` (repoPath) \u2014 Detailed layer analysis if hologram summary isn\'t enough.\n5. **Log Findings**: `shadow_ops_log` (missionId, type: "discovery", content, repoPath).\n6. **Create Cleanup Mission** (optional): `shadow_ops_plan` (name: "Codebase Cleanup", templateId: "refactoring", templateVars, repoPath).\n\n## \u{1F6E0} Precise Tooling\n\n| Audit Target | Atomic Tool |\n| :--- | :--- |\n| **Session Start** \u{1F680} | `shadow_ops_context` (repoPath) \u2014 **START HERE** for baseline |\n| **Architecture** | `shadow_recon_hologram` (repoPath) \u2014 if you need standalone |\n| **Dead Code** | `shadow_analyze_debt` (mode: "dead-code", limit: 100, **confidenceThreshold: "high"**) |\n| **Circular Deps** | `shadow_analyze_debt` (mode: "circular-deps") |\n| **Layers** | `shadow_recon_topography` \u2014 detailed breakdown if needed |\n| **Config Audit** | `shadow_search_config` (kind: "Env", **showUsage: true**) \u2014 find orphaned env vars |\n\n## \u{1F4A1} Intelligence Options\n\n- **`shadow_analyze_debt` confidence levels**: Use `confidenceThreshold: "high"` for likely dead code, `"medium"` for possibly intentional (test fixtures, etc.), `"all"` for everything.\n- **`shadow_analyze_debt` exclusion filters**: Use `excludePatterns`, `includeMigrations: false`, `includeFixtures: false` to reduce noise.\n- **`shadow_search_config` with `showUsage: true`**: Cross-references config vars with code to show usage counts and identify orphaned vars (defined but never used).\n\n## \u{1F50D} Health Criteria\n\n- **Critical Issues**: Circular deps in core logic, >50 dead exports, orphaned env vars with secrets\n- **Warning Signs**: Layer violations (Test \u2192 Logic), >20 dead exports, >10 orphaned configs\n- **Good Health**: Clean layers, <10 dead exports, no circular deps, all configs in use\n',shadow_chronicle:`---
1112
+ `}async function ex(n){n==="bash"?console.log(uI()):n==="zsh"?console.log(dI()):(console.error("Usage: liquid-shadow completion <bash|zsh>"),console.error("Then: source <(liquid-shadow completion bash) # or zsh"),process.exit(1))}import pI from"fs";import mI from"path";var fI=2e3;async function tx(n){let e=mI.resolve(n);await ie(async()=>{Ie("Watch mode");let r=Rt(e),i=null,t=()=>{i&&clearTimeout(i),i=setTimeout(async()=>{i=null;try{console.log(""),console.log(_.dim(" Changes detected, reindexing...")),await ee(e,5,!1,!0),console.log(_.green(" Reindex complete."))}catch(o){console.error(_.red(" Reindex failed:"),o instanceof Error?o.message:o)}},fI)};try{pI.watch(e,{recursive:!0},(o,s)=>{s&&!s.includes("node_modules")&&t()}),console.log(_.cyan(` Watching ${e}`)),console.log(_.dim(" Ignore: "+(r.ignore?.length?r.ignore.join(", "):"default"))),pt("Ctrl+C to stop"),await new Promise((o,s)=>{process.on("SIGINT",()=>s(new Error("SIGINT"))),process.on("SIGTERM",()=>s(new Error("SIGTERM")))}).catch(()=>{})}finally{i&&clearTimeout(i),await de(e)}})}J();import hI from"path";async function nx(n,e){let r=hI.resolve(n||process.cwd()),i=e.format==="json"?"json":"markdown",t=$.child({module:"cli:chronicle",repoPath:r});t.info("Generating repository chronicle...");try{let o=new Ft(r),s=await o.generateChronicle({limit:e.limit,offset:e.offset,since:e.since,until:e.until});console.log(i==="json"?JSON.stringify(s,null,2):o.renderChronicleMarkdown(s))}catch(o){t.error({error:o},"Failed to generate chronicle"),console.error(`Error: ${o instanceof Error?o.message:String(o)}`),process.exit(1)}}import yn from"fs";import Jr from"path";import bI from"os";import hn from"fs";import gn from"path";import gI from"os";var rx={shadow_shadow_audit:'---\nname: audit\ndescription: Perform codebase health audits to identify dead code, circular dependencies, and technical debt. Use when auditing code quality, finding unused code, detecting circular dependencies, or when the user asks about codebase health, technical debt, or code cleanup.\n---\n\n# Codebase Audit\n\nComprehensive health audit using Shadow analyze toolkit.\n\n## \u{1F680} Workflow\n\n1. **Session Context**: `shadow_ops_context` (repoPath) \u2014 **ONE CALL** for hologram + chronicle + briefing. Get architecture baseline.\n2. **Dead Code Detection**: `shadow_analyze_debt` (mode: "dead-code", limit: 100, includeTests: false, repoPath) \u2014 Unused exports.\n3. **Circular Dependencies**: `shadow_analyze_debt` (mode: "circular-deps", limit: 20, repoPath) \u2014 Import cycles.\n4. **Layer Integrity** (optional): `shadow_recon_topography` (repoPath) \u2014 Detailed layer analysis if hologram summary isn\'t enough.\n5. **Log Findings**: `shadow_ops_log` (missionId, type: "discovery", content, repoPath).\n6. **Create Cleanup Mission** (optional): `shadow_ops_plan` (name: "Codebase Cleanup", templateId: "refactoring", templateVars, repoPath).\n\n## \u{1F6E0} Precise Tooling\n\n| Audit Target | Atomic Tool |\n| :------------------- | :------------------------------------------------------------------------------------- |\n| **Session Start** \u{1F680} | `shadow_ops_context` (repoPath) \u2014 **START HERE** for baseline |\n| **Architecture** | `shadow_recon_hologram` (repoPath) \u2014 if you need standalone |\n| **Dead Code** | `shadow_analyze_debt` (mode: "dead-code", limit: 100, **confidenceThreshold: "high"**) |\n| **Circular Deps** | `shadow_analyze_debt` (mode: "circular-deps") |\n| **Layers** | `shadow_recon_topography` \u2014 detailed breakdown if needed |\n| **Config Audit** | `shadow_search_config` (kind: "Env", **showUsage: true**) \u2014 find orphaned env vars |\n\n## \u{1F4A1} Intelligence Options\n\n- **`shadow_analyze_debt` confidence levels**: Use `confidenceThreshold: "high"` for likely dead code, `"medium"` for possibly intentional (test fixtures, etc.), `"all"` for everything.\n- **`shadow_analyze_debt` exclusion filters**: Use `excludePatterns`, `includeMigrations: false`, `includeFixtures: false` to reduce noise.\n- **`shadow_search_config` with `showUsage: true`**: Cross-references config vars with code to show usage counts and identify orphaned vars (defined but never used).\n\n## \u{1F50D} Health Criteria\n\n- **Critical Issues**: Circular deps in core logic, >50 dead exports, orphaned env vars with secrets\n- **Warning Signs**: Layer violations (Test \u2192 Logic), >20 dead exports, >10 orphaned configs\n- **Good Health**: Clean layers, <10 dead exports, no circular deps, all configs in use\n',shadow_shadow_chronicle:`---
897
1113
  name: chronicle
898
1114
  description: Retrieve and analyze the repository's narrative archive as recorded in Git-native memory. Use when you need to understand historical decisions, catch up on repository progress, review recently completed missions, or when the user asks for a project history, changelog, or chronological overview of architectural changes.
899
1115
  ---
@@ -905,7 +1121,7 @@ Retrieve narrative archive from Git-native memory.
905
1121
  ## \u{1F680} Workflow
906
1122
 
907
1123
  1. **Recent History**: \`shadow_ops_chronicle\` (limit: 10, format: "markdown", repoPath) \u2014 Last 10 entries.
908
- 2. **Time-Filtered**:
1124
+ 2. **Time-Filtered**:
909
1125
  - \`shadow_ops_chronicle\` (since: &lt;unix&gt;, limit: 20, repoPath)
910
1126
  - \`shadow_ops_chronicle\` (until: &lt;unix&gt;, limit: 20, repoPath)
911
1127
  3. **Structured Data**: \`shadow_ops_chronicle\` (format: "json", limit: 50, repoPath) \u2014 For processing.
@@ -913,12 +1129,12 @@ Retrieve narrative archive from Git-native memory.
913
1129
 
914
1130
  ## \u{1F6E0} Precise Tooling
915
1131
 
916
- | Chronicle Query | Atomic Tool |
917
- | :--- | :--- |
918
- | **Recent (Markdown)** | \`shadow_ops_chronicle\` (limit: 10, format: "markdown") |
919
- | **Time Range** | \`shadow_ops_chronicle\` (since: &lt;unix&gt;, until: &lt;unix&gt;) |
920
- | **JSON Data** | \`shadow_ops_chronicle\` (format: "json", limit: 50) |
921
- | **Pagination** | \`shadow_ops_chronicle\` (limit: 10, offset: 10) |
1132
+ | Chronicle Query | Atomic Tool |
1133
+ | :-------------------- | :---------------------------------------------------------------- |
1134
+ | **Recent (Markdown)** | \`shadow_ops_chronicle\` (limit: 10, format: "markdown") |
1135
+ | **Time Range** | \`shadow_ops_chronicle\` (since: &lt;unix&gt;, until: &lt;unix&gt;) |
1136
+ | **JSON Data** | \`shadow_ops_chronicle\` (format: "json", limit: 50) |
1137
+ | **Pagination** | \`shadow_ops_chronicle\` (limit: 10, offset: 10) |
922
1138
 
923
1139
  ## Output Formats
924
1140
 
@@ -933,7 +1149,7 @@ Retrieve narrative archive from Git-native memory.
933
1149
  - **Progress Reports**: Show what's been done this week
934
1150
 
935
1151
  **Note:** Chronicle reads from Git Notes, so it's persistent across branches and clones.
936
- `,shadow_continue:'---\nname: continue\ndescription: Get briefing, pick one mission from next_work_candidates, then work that mission to completion with all remaining steps in one run. Use when continuing work on missions, executing mission steps, or when the user asks to continue work, finish a mission, or proceed with development tasks.\n---\n\n**In one sentence:** Get briefing (+ optional trace), pick **one mission** from **next_work_candidates** (ranked by relevance), then work that mission to completion \u2014 all remaining steps in one run. Update and log as you go. No status reports; when you\'re done with that mission, it\'s done.\n\n---\n## 1. Context\n\n- **Option A (one shot):** `shadow_ops_context` (repoPath) \u2192 returns hologram + chronicle(5) + **briefing** (counts, **next_work_candidates** ranked by relevance). Use when you want architecture + history + backlog in one call at the start of /continue.\n- **Option B:** `shadow_ops_briefing` (scope: "project", repoPath) \u2192 **next_work_candidates** (relevance-ranked), hierarchy, analytics.\n - Use **altitude** to control output density: `orbit` (~200 tokens, counts + candidates only), `atmosphere` (default, strategy + crystals), `ground` (raw logs + working set + collisions).\n- `shadow_sync_trace` (repoPath) only if you care about external changes. Otherwise skip.\n\n## 2. Pick one mission\n\n- **`next_work_candidates`** are ranked by the MissionRelevanceScorer (recency \xD7 0.4 + activity \xD7 0.3 + status \xD7 0.2 + blockers \xD7 0.1). Higher score = more relevant.\n- Choose the top-ranked candidate. Prefer in-progress over planned. Parent-only missions (umbrellas) are already filtered out.\n\n## 3. Work the whole mission\n\n- For that mission, run through **all remaining steps** (not just one):\n - **Surgical Discovery:** `shadow_analyze_flow` (symbolName, filePath, repoPath).\n - **Execute Step**: Set in-progress \u2192 implement \u2192 `shadow_ops_track` (missionId, stepId, status: "completed", contextPivot, repoPath).\n - **Atomic Logging:** At least once per step. `shadow_ops_log` (missionId, type: "decision", content, symbolName, repoPath).\n- **Seal the mission**: `shadow_ops_track` (missionId, status: "completed", repoPath).\n - This **auto-triggers**: ADR synthesis, Git Notes persistence, and cascade parent completion (if all sibling missions are also done, the parent auto-completes too).\n - No need to call `shadow_ops_synthesize` separately \u2014 it\'s automatic on completion.\n- **Optional \u2014 Crystallize** (for long-running missions with many logs): `shadow_ops_crystallize` (missionId, repoPath) compresses raw intent logs into a single crystal summary. Useful mid-mission to keep briefings lean.\n\n## \u{1F6E0} Precise Tooling\n\n| Action | Atomic Tool | Example |\n| :--- | :--- | :--- |\n| **Context (one shot)** | `shadow_ops_context` | repoPath \u2014 hologram + chronicle + briefing |\n| **Briefing** | `shadow_ops_briefing` | scope: "project", altitude: "orbit", repoPath |\n| **Flow Trace** | `shadow_analyze_flow` | symbolName: "handleRequest", filePath, repoPath |\n| **Step Update** | `shadow_ops_track` | missionId: 4, stepId: "s2", status: "completed" |\n| **Intent Log** | `shadow_ops_log` | missionId: 4, type: "fix", content: "..." |\n| **Complete Mission** | `shadow_ops_track` | missionId: 4, status: "completed" \u2014 auto-synthesizes ADR |\n| **Crystallize** | `shadow_ops_crystallize` | missionId: 4 \u2014 compress logs mid-mission |\n\n*Note: Always use `symbolName` in `shadow_ops_log` to create Liquid Anchors.*\n\n## 4. Don\'t\n\n- Don\'t do one step and stop \u2014 /continue is "finish a mission," not "do one step."\n- Don\'t call `shadow_ops_synthesize` after completing \u2014 it\'s automatic on `status: "completed"`.\n- Don\'t long status reports. Don\'t ask "what should I work on?" unless a real tie. Don\'t auto-commit.\n\n---\n\n**Tools:** `shadow_ops_context` (optional start), `shadow_ops_briefing`, `shadow_ops_track`, `shadow_ops_log`, `shadow_ops_crystallize`, `shadow_sync_trace`. For discovery: `shadow_search_*`, `shadow_recon_*`, `shadow_analyze_*`.\n',shadow_crystallize:`---
1152
+ `,shadow_shadow_continue:'---\nname: continue\ndescription: Get briefing, pick one mission from next_work_candidates, then work that mission to completion with all remaining steps in one run. Use when continuing work on missions, executing mission steps, or when the user asks to continue work, finish a mission, or proceed with development tasks.\n---\n\n**In one sentence:** Get briefing (+ optional trace), pick **one mission** from **next_work_candidates** (ranked by relevance), then work that mission to completion \u2014 all remaining steps in one run. Update and log as you go. No status reports; when you\'re done with that mission, it\'s done.\n\n---\n\n## 1. Context\n\n- **Option A (one shot):** `shadow_ops_context` (repoPath) \u2192 returns hologram + chronicle(5) + **briefing** (counts, **next_work_candidates** ranked by relevance). Use when you want architecture + history + backlog in one call at the start of /continue.\n- **Option B:** `shadow_ops_briefing` (scope: "project", repoPath) \u2192 **next_work_candidates** (relevance-ranked), hierarchy, analytics.\n - Use **altitude** to control output density: `orbit` (~200 tokens, counts + candidates only), `atmosphere` (default, strategy + crystals), `ground` (raw logs + working set + collisions).\n- `shadow_sync_trace` (repoPath) only if you care about external changes. Otherwise skip.\n\n## 2. Pick one mission\n\n- **`next_work_candidates`** are ranked by the MissionRelevanceScorer (recency \xD7 0.4 + activity \xD7 0.3 + status \xD7 0.2 + blockers \xD7 0.1). Higher score = more relevant.\n- Choose the top-ranked candidate. Prefer in-progress over planned. Parent-only missions (umbrellas) are already filtered out.\n\n## 3. Work the whole mission\n\n- For that mission, run through **all remaining steps** (not just one):\n - **Surgical Discovery:** `shadow_analyze_flow` (symbolName, filePath, repoPath).\n - **Execute Step**: Set in-progress \u2192 implement \u2192 `shadow_ops_track` (missionId, stepId, status: "completed", contextPivot, repoPath).\n - **Atomic Logging:** At least once per step. `shadow_ops_log` (missionId, type: "decision", content, symbolName, repoPath).\n- **Seal the mission**: `shadow_ops_track` (missionId, status: "completed", repoPath).\n - This **auto-triggers**: ADR synthesis, Git Notes persistence, and cascade parent completion (if all sibling missions are also done, the parent auto-completes too).\n - No need to call `shadow_ops_synthesize` separately \u2014 it\'s automatic on completion.\n- **Optional \u2014 Crystallize** (for long-running missions with many logs): `shadow_ops_crystallize` (missionId, repoPath) compresses raw intent logs into a single crystal summary. Useful mid-mission to keep briefings lean.\n\n## \u{1F6E0} Precise Tooling\n\n| Action | Atomic Tool | Example |\n| :--------------------- | :----------------------- | :------------------------------------------------------- |\n| **Context (one shot)** | `shadow_ops_context` | repoPath \u2014 hologram + chronicle + briefing |\n| **Briefing** | `shadow_ops_briefing` | scope: "project", altitude: "orbit", repoPath |\n| **Flow Trace** | `shadow_analyze_flow` | symbolName: "handleRequest", filePath, repoPath |\n| **Step Update** | `shadow_ops_track` | missionId: 4, stepId: "s2", status: "completed" |\n| **Intent Log** | `shadow_ops_log` | missionId: 4, type: "fix", content: "..." |\n| **Complete Mission** | `shadow_ops_track` | missionId: 4, status: "completed" \u2014 auto-synthesizes ADR |\n| **Crystallize** | `shadow_ops_crystallize` | missionId: 4 \u2014 compress logs mid-mission |\n\n_Note: Always use `symbolName` in `shadow_ops_log` to create Liquid Anchors._\n\n## 4. Don\'t\n\n- Don\'t do one step and stop \u2014 /continue is "finish a mission," not "do one step."\n- Don\'t call `shadow_ops_synthesize` after completing \u2014 it\'s automatic on `status: "completed"`.\n- Don\'t long status reports. Don\'t ask "what should I work on?" unless a real tie. Don\'t auto-commit.\n\n---\n\n**Tools:** `shadow_ops_context` (optional start), `shadow_ops_briefing`, `shadow_ops_track`, `shadow_ops_log`, `shadow_ops_crystallize`, `shadow_sync_trace`. For discovery: `shadow_search_*`, `shadow_recon_*`, `shadow_analyze_*`.\n',shadow_shadow_crystallize:`---
937
1153
  name: crystallize
938
1154
  description: Compress a mission's intent logs into a dense crystal summary for token-efficient briefings. Use when a mission has accumulated many raw logs, when briefings are too verbose, or when the user asks about log compression, crystallization, or context reduction.
939
1155
  ---
@@ -956,11 +1172,11 @@ Compress raw intent logs into a single crystal summary node. The crystal replace
956
1172
 
957
1173
  ## Precise Tooling
958
1174
 
959
- | Action | Atomic Tool | Usage |
960
- | :--- | :--- | :--- |
961
- | **Crystallize** | \`shadow_ops_crystallize\` | missionId, repoPath \u2014 compress raw logs |
962
- | **Check Status** | \`shadow_ops_briefing\` (altitude: "atmosphere") | Verify crystal appears in activity |
963
- | **Full Logs** | \`shadow_ops_briefing\` (altitude: "ground") | Still shows raw logs if needed |
1175
+ | Action | Atomic Tool | Usage |
1176
+ | :--------------- | :--------------------------------------------- | :-------------------------------------- |
1177
+ | **Crystallize** | \`shadow_ops_crystallize\` | missionId, repoPath \u2014 compress raw logs |
1178
+ | **Check Status** | \`shadow_ops_briefing\` (altitude: "atmosphere") | Verify crystal appears in activity |
1179
+ | **Full Logs** | \`shadow_ops_briefing\` (altitude: "ground") | Still shows raw logs if needed |
964
1180
 
965
1181
  ## What the Crystal Contains
966
1182
 
@@ -974,7 +1190,7 @@ Compress raw intent logs into a single crystal summary node. The crystal replace
974
1190
  - Crystallization is **idempotent**: if no new raw logs exist, it reports \`already_crystallized\`.
975
1191
  - New logs added after crystallization remain as raw until the next crystallize call.
976
1192
  - Raw logs are **not deleted** \u2014 they're marked as absorbed. \`ground\` altitude still shows them.
977
- `,shadow_mission:`---
1193
+ `,shadow_shadow_mission:`---
978
1194
  name: mission
979
1195
  description: Define the objective, strategy, and success criteria for a new development mission. Use when planning strategic initiatives, creating missions, setting up development goals, or when the user asks about mission planning, strategic alignment, or outcome contracts.
980
1196
  ---
@@ -993,22 +1209,22 @@ Define the objective, strategy, and success criteria for a new mission. This wor
993
1209
  - \`shadow_ops_chronicle\` (limit: 10, repoPath) \u2014 More historical ADRs if 5 isn't enough.
994
1210
  - \`shadow_ops_briefing\` (scope: "project", altitude: "ground", repoPath) \u2014 Full detail with analytics, collisions, and working sets.
995
1211
  3. **Strategic Plan**: \`shadow_ops_plan\` (name, goal, outcomeContract, ...).
996
- * **Strategy DAG**: Define logical steps and verification rules.
997
- * **Initiative vs Mission**: Decide if this is a parent (Initiative) or a leaf (Mission). Parent missions auto-complete via cascade when all children finish.
1212
+ - **Strategy DAG**: Define logical steps and verification rules.
1213
+ - **Initiative vs Mission**: Decide if this is a parent (Initiative) or a leaf (Mission). Parent missions auto-complete via cascade when all children finish.
998
1214
  4. **Alignment**: Present the plan to the user. Do not begin execution until the user approves the strategy.
999
1215
 
1000
1216
  ## Precise Tooling
1001
1217
 
1002
- | Setup Action | Precise Tool Call | Usage |
1003
- | :--- | :--- | :--- |
1004
- | **Session Start** | \`shadow_ops_context\` | **START HERE** \u2014 hologram + chronicle + briefing in one call |
1005
- | **Establish Plan** | \`shadow_ops_plan\` | Create the mission and strategy. |
1006
- | **Architectural Map** | \`shadow_recon_topography\` | Contextualize the target layers (if context wasn't enough). |
1007
- | **Detailed Briefing** | \`shadow_ops_briefing\` (altitude: "ground") | Full analytics, collisions, working sets. |
1008
- | **Lean Briefing** | \`shadow_ops_briefing\` (altitude: "orbit") | Counts + candidates only (~200 tokens). |
1009
- | **Graph View** | \`shadow_ops_graph\` | Visualize the initiative's hierarchy. |
1218
+ | Setup Action | Precise Tool Call | Usage |
1219
+ | :-------------------- | :----------------------------------------- | :----------------------------------------------------------- |
1220
+ | **Session Start** | \`shadow_ops_context\` | **START HERE** \u2014 hologram + chronicle + briefing in one call |
1221
+ | **Establish Plan** | \`shadow_ops_plan\` | Create the mission and strategy. |
1222
+ | **Architectural Map** | \`shadow_recon_topography\` | Contextualize the target layers (if context wasn't enough). |
1223
+ | **Detailed Briefing** | \`shadow_ops_briefing\` (altitude: "ground") | Full analytics, collisions, working sets. |
1224
+ | **Lean Briefing** | \`shadow_ops_briefing\` (altitude: "orbit") | Counts + candidates only (~200 tokens). |
1225
+ | **Graph View** | \`shadow_ops_graph\` | Visualize the initiative's hierarchy. |
1010
1226
 
1011
- *Note: **Always start with \`shadow_ops_context\`** for instant mission landscape + architectural context. Ensure the \`outcomeContract\` is binary and verifiable. Parent initiatives auto-cascade on child completion \u2014 no manual closing needed.*
1227
+ _Note: **Always start with \`shadow_ops_context\`** for instant mission landscape + architectural context. Ensure the \`outcomeContract\` is binary and verifiable. Parent initiatives auto-cascade on child completion \u2014 no manual closing needed._
1012
1228
 
1013
1229
  ## Briefing Altitude Levels
1014
1230
 
@@ -1020,11 +1236,11 @@ Define the objective, strategy, and success criteria for a new mission. This wor
1020
1236
 
1021
1237
  Capture the "Why" and "How" during the planning phase to ensure the final ADR has architectural depth.
1022
1238
 
1023
- * **Decision Logs**: Capture why a specific strategy or library was chosen.
1024
- * **Discovery Logs**: Record insights found during initial reconnaissance.
1239
+ - **Decision Logs**: Capture why a specific strategy or library was chosen.
1240
+ - **Discovery Logs**: Record insights found during initial reconnaissance.
1025
1241
 
1026
1242
  **Hand-off**: Once the mission is planned and logged, the setup phase is over. Execute via \`/continue\`.
1027
- `,shadow_onboard:'---\nname: onboard\ndescription: Initialize and analyze a new repository for deep intelligence by building semantic index, syncing state, activating git hooks, and establishing missions. Use when onboarding to a new repository, initializing Shadow Engine, setting up git hooks, or when the user asks about repository setup, initialization, or first-time configuration.\n---\n\n# Repository Onboarding\n\nInitialize and analyze a new repository for deep intelligence.\n\n## Workflow\n\n1. **Semantic Init**: `shadow_recon_onboard` (repoPath) \u2014 **Only run once** per repo to build the baseline. Auto-populates the hologram.\n2. **Read Hologram**: `shadow_recon_hologram` (repoPath) \u2014 Get instant architectural context (~1300 tokens: topography + gravity zones).\n3. **Unified Sync**: `shadow_sync_trace` (repoPath) \u2014 **The One-Stop Shop**. Performs indexing + ghost analysis + mission re-hydration.\n4. **Active Briefing**: `shadow_ops_briefing` (scope: "project", altitude: "atmosphere", repoPath) \u2014 Resumes the shared backlog with relevance-ranked candidates.\n - Use `altitude: "orbit"` for a lean overview (~200 tokens), or `altitude: "ground"` for full detail.\n5. **Architectural Deep Dive** (optional):\n - `shadow_recon_topography` (repoPath) \u2014 View layers (Entry/Logic/Data/Utility/Test).\n - `shadow_ops_chronicle` (limit: 5, repoPath) \u2014 Narrative feed.\n6. **Hooks Activation**: `shadow_env_hooks` (action: "install", repoPath).\n7. **Establish Mission**: `shadow_ops_plan` (name, goal, repoPath).\n\n## Precise Tooling\n\n| Action | Atomic Tool |\n| :--- | :--- |\n| **Index** | `shadow_recon_onboard` |\n| **Hologram** | `shadow_recon_hologram` (repoPath) |\n| **Layers** | `shadow_recon_topography` |\n| **History** | `shadow_ops_chronicle` (limit: 10) |\n| **Resume (lean)** | `shadow_ops_briefing` (scope: "project", altitude: "orbit") |\n| **Resume (full)** | `shadow_ops_briefing` (scope: "project", altitude: "atmosphere") |\n| **Hooks** | `shadow_env_hooks` (action: "install") |\n\n*Note: Always use absolute paths for `repoPath`. Call `shadow_recon_hologram` immediately after init for instant architectural context.*\n',shadow_research:`---
1243
+ `,shadow_shadow_onboard:'---\nname: onboard\ndescription: Initialize and analyze a new repository for deep intelligence by building semantic index, syncing state, activating git hooks, and establishing missions. Use when onboarding to a new repository, initializing Shadow Engine, setting up git hooks, or when the user asks about repository setup, initialization, or first-time configuration.\n---\n\n# Repository Onboarding\n\nInitialize and analyze a new repository for deep intelligence.\n\n## Workflow\n\n1. **Semantic Init**: `shadow_recon_onboard` (repoPath) \u2014 **Only run once** per repo to build the baseline. Auto-populates the hologram.\n2. **Read Hologram**: `shadow_recon_hologram` (repoPath) \u2014 Get instant architectural context (~1300 tokens: topography + gravity zones).\n3. **Unified Sync**: `shadow_sync_trace` (repoPath) \u2014 **The One-Stop Shop**. Performs indexing + ghost analysis + mission re-hydration.\n4. **Active Briefing**: `shadow_ops_briefing` (scope: "project", altitude: "atmosphere", repoPath) \u2014 Resumes the shared backlog with relevance-ranked candidates.\n - Use `altitude: "orbit"` for a lean overview (~200 tokens), or `altitude: "ground"` for full detail.\n5. **Architectural Deep Dive** (optional):\n - `shadow_recon_topography` (repoPath) \u2014 View layers (Entry/Logic/Data/Utility/Test).\n - `shadow_ops_chronicle` (limit: 5, repoPath) \u2014 Narrative feed.\n6. **Hooks Activation**: `shadow_env_hooks` (action: "install", repoPath).\n7. **Establish Mission**: `shadow_ops_plan` (name, goal, repoPath).\n\n## Precise Tooling\n\n| Action | Atomic Tool |\n| :---------------- | :--------------------------------------------------------------- |\n| **Index** | `shadow_recon_onboard` |\n| **Hologram** | `shadow_recon_hologram` (repoPath) |\n| **Layers** | `shadow_recon_topography` |\n| **History** | `shadow_ops_chronicle` (limit: 10) |\n| **Resume (lean)** | `shadow_ops_briefing` (scope: "project", altitude: "orbit") |\n| **Resume (full)** | `shadow_ops_briefing` (scope: "project", altitude: "atmosphere") |\n| **Hooks** | `shadow_env_hooks` (action: "install") |\n\n_Note: Always use absolute paths for `repoPath`. Call `shadow_recon_hologram` immediately after init for instant architectural context._\n',shadow_shadow_research:`---
1028
1244
  name: research
1029
1245
  description: Conduct high-signal research for external dependencies by combining local context, web search, and Context7 documentation. Use when researching libraries, checking integration examples, verifying versions, or when the user asks about external dependencies, library documentation, or integration patterns.
1030
1246
  ---
@@ -1043,13 +1259,13 @@ High-signal research for external dependencies.
1043
1259
 
1044
1260
  ## \u{1F6E0} Precise Tooling
1045
1261
 
1046
- | Discovery Layer | Atomic Tool |
1047
- | :--- | :--- |
1048
- | **Local Usage** | \`shadow_search_concept\` (query, **compact: true** for broad search) |
1262
+ | Discovery Layer | Atomic Tool |
1263
+ | :----------------- | :-------------------------------------------------------------------------- |
1264
+ | **Local Usage** | \`shadow_search_concept\` (query, **compact: true** for broad search) |
1049
1265
  | **File Discovery** | \`shadow_search_path\` (query, **ranked: true**) \u2014 gravity-sorted with layers |
1050
- | **Config Check** | \`shadow_search_config\` (key, **showUsage: true**) \u2014 with usage counts |
1051
- | **External Docs**| context7 tools (user-context7) |
1052
- | **Relational** | \`shadow_analyze_deps\` (filePath, direction) |
1266
+ | **Config Check** | \`shadow_search_config\` (key, **showUsage: true**) \u2014 with usage counts |
1267
+ | **External Docs** | context7 tools (user-context7) |
1268
+ | **Relational** | \`shadow_analyze_deps\` (filePath, direction) |
1053
1269
 
1054
1270
  ## \u{1F4A1} Intelligence Options
1055
1271
 
@@ -1057,7 +1273,8 @@ High-signal research for external dependencies.
1057
1273
  - **\`shadow_search_path\` with \`ranked: true\`**: Results sorted by gravity (high-import files first) with layer classification. Reveals architecturally important files.
1058
1274
  - **\`shadow_search_config\` with \`showUsage: true\`**: Shows usage counts per config var and identifies orphaned vars (defined but never used in code).
1059
1275
 
1060
- *Note: Always check \`package.json\` for the exact version before querying Context7 to ensure documentation alignment.*`,shadow_sync:`---
1276
+ _Note: Always check \`package.json\` for the exact version before querying Context7 to ensure documentation alignment._
1277
+ `,shadow_shadow_sync:`---
1061
1278
  name: sync
1062
1279
  description: Sync index and mission state after external changes. Day-to-day: index + NanoRepair run automatically when MCP tools (search, inspect, etc.) trigger reindex. Use trace after git pull/checkout/merge (or rely on hooks); use index deep:true for full rebuild.
1063
1280
  ---
@@ -1068,14 +1285,14 @@ description: Sync index and mission state after external changes. Day-to-day: in
1068
1285
 
1069
1286
  ## When to run sync manually
1070
1287
 
1071
- | Situation | Action |
1072
- | :--- | :--- |
1288
+ | Situation | Action |
1289
+ | :-------------------------------- | :----------------------------------------------------------------- |
1073
1290
  | **After git pull/checkout/merge** | \`shadow_sync_trace\` (repoPath) \u2014 or rely on Git hooks if installed |
1074
- | **Full rebuild (corruption)** | \`shadow_sync_index\` (repoPath; use deep: true if supported) |
1075
- | **Repair only (rare)** | \`shadow_sync_repair\` (repoPath) |
1291
+ | **Full rebuild (corruption)** | \`shadow_sync_index\` (repoPath; use deep: true if supported) |
1292
+ | **Repair only (rare)** | \`shadow_sync_repair\` (repoPath) |
1076
1293
 
1077
1294
  **Note:** \`trace\` does index + ghost analysis + NanoRepair + lifecycle + mission re-hydration. Hooks run it on commit/checkout/merge.
1078
- `,shadow_synthesize:`---
1295
+ `,shadow_shadow_synthesize:`---
1079
1296
  name: synthesize
1080
1297
  description: Distill mission logs into Architectural Decision Records (ADRs) and persist them to the Shadow Engine and Git Notes. Use when completing missions, creating ADRs, synthesizing architectural decisions, or when the user asks about decision records, mission completion, or architectural documentation.
1081
1298
  ---
@@ -1089,29 +1306,30 @@ Distill mission logs into an Architectural Decision Record (ADR) and persist it
1089
1306
  ## Workflow
1090
1307
 
1091
1308
  1. **Complete Mission**: \`shadow_ops_track\` (missionId, status: "completed", repoPath).
1092
- * The Shadow Engine will automatically:
1093
- * Distill all intent logs (recursive for child missions).
1094
- * Format the ADR using markdown and **Liquid Anchors**.
1095
- * Persist the record to SQLite and **Git Notes**.
1096
- * **Cascade**: If all sibling missions under the same parent are completed, the parent mission auto-completes with its own ADR synthesis.
1309
+ - The Shadow Engine will automatically:
1310
+ - Distill all intent logs (recursive for child missions).
1311
+ - Format the ADR using markdown and **Liquid Anchors**.
1312
+ - Persist the record to SQLite and **Git Notes**.
1313
+ - **Cascade**: If all sibling missions under the same parent are completed, the parent mission auto-completes with its own ADR synthesis.
1097
1314
  2. **Verify**: Check the synthesized record via \`shadow_ops_chronicle\` (limit: 5, repoPath).
1098
1315
  3. **Manual Synthesis**: Use \`shadow_ops_synthesize\` only to **re-generate** an existing record or for specific partial distillations.
1099
1316
  4. **Pre-synthesis Compression** (optional): For missions with many raw logs, \`shadow_ops_crystallize\` (missionId, repoPath) compresses logs into a crystal summary before synthesis for cleaner ADRs.
1100
1317
 
1101
1318
  ## Precise Tooling
1102
1319
 
1103
- | Action | Atomic Tool | Usage |
1104
- | :--- | :--- | :--- |
1105
- | **Complete & Seal** | \`shadow_ops_track\` (status: "completed") | **Primary**. Triggers auto-synthesis + cascade. |
1106
- | **Manual Distill** | \`shadow_ops_synthesize\` | Re-run synthesis manually (re-gen only). |
1107
- | **Crystallize First** | \`shadow_ops_crystallize\` | Compress raw logs before synthesis. |
1108
- | **View Chronicle** | \`shadow_ops_chronicle\` | View the combined narrative feed. |
1320
+ | Action | Atomic Tool | Usage |
1321
+ | :-------------------- | :--------------------------------------- | :---------------------------------------------- |
1322
+ | **Complete & Seal** | \`shadow_ops_track\` (status: "completed") | **Primary**. Triggers auto-synthesis + cascade. |
1323
+ | **Manual Distill** | \`shadow_ops_synthesize\` | Re-run synthesis manually (re-gen only). |
1324
+ | **Crystallize First** | \`shadow_ops_crystallize\` | Compress raw logs before synthesis. |
1325
+ | **View Chronicle** | \`shadow_ops_chronicle\` | View the combined narrative feed. |
1109
1326
 
1110
- *Note: Synthesis consolidation includes all child missions recursively. Cascade parent completion propagates upward through the entire hierarchy.*
1327
+ _Note: Synthesis consolidation includes all child missions recursively. Cascade parent completion propagates upward through the entire hierarchy._
1111
1328
 
1112
1329
  ## Cascade Parent Completion
1113
1330
 
1114
1331
  When the last child mission under a parent is completed:
1332
+
1115
1333
  1. Parent status is set to \`completed\`
1116
1334
  2. A system intent log records the cascade event
1117
1335
  3. Parent ADR is synthesized (recursive child distillation)
@@ -1121,7 +1339,62 @@ When the last child mission under a parent is completed:
1121
1339
  ## Tooling Strategy
1122
1340
 
1123
1341
  Synthesis is the final commit of the mission's logic into the repository's permanent history. Avoid manual markdown files for ADRs; trust the **Git Notes** architecture to preserve the "Story of the Code."
1124
- `,"shadow_trace-impact":'---\nname: trace-impact\ndescription: Map the blast radius of a change by analyzing impact, flow traces, cross-repo dependencies, and boundary maps. Use when analyzing change impact, assessing risk, tracing dependencies, or when the user asks about change impact, blast radius, or dependency analysis.\n---\n\n# Impact Analysis\n\nMap the blast radius of a change using the full Shadow analyze toolkit.\n\n## \u{1F680} Workflow\n\n1. **Session Context**: `shadow_ops_context` (repoPath) \u2014 **ONE CALL** for hologram + chronicle + briefing. Check if symbol is in gravity zones.\n2. **Impact (Blast Radius)**: `shadow_analyze_impact` (symbolName, filePath, depth: 3, repoPath) \u2014 ALL affected files.\n3. **Dependencies**:\n - `shadow_analyze_deps` (filePath, direction: "imported_by", repoPath) \u2014 Who imports this?\n - `shadow_analyze_deps` (filePath, direction: "imports", repoPath) \u2014 What does it import?\n4. **Flow Trace**: `shadow_analyze_flow` (symbolName, filePath, repoPath) \u2014 Execution path.\n5. **Health Check**:\n - `shadow_analyze_debt` (mode: "circular-deps", repoPath) \u2014 Any import cycles?\n - `shadow_analyze_debt` (mode: "dead-code", limit: 50, repoPath) \u2014 Unused exports?\n6. **Cross-Repo Check** (if multi-repo):\n - `shadow_workspace_fuse` (repoPaths, repoPath).\n - `shadow_search_symbol` (query, limit: 50, repoPath).\n7. **Boundary Map**: `shadow_recon_topography` (repoPath) \u2014 Layer crossing check.\n8. **Log Risk**: `shadow_ops_log` (missionId, type: "discovery", content, symbolName, repoPath).\n\n## \u{1F6E0} Precise Tooling\n\n| Impact Layer | Atomic Tool |\n| :--- | :--- |\n| **Session Start** \u{1F680} | `shadow_ops_context` (repoPath) \u2014 **START HERE** for context |\n| **Hologram** | `shadow_recon_hologram` (repoPath) \u2014 if you need standalone |\n| **Blast Radius** | `shadow_analyze_impact` (symbolName, depth: 3) |\n| **Dependents** | `shadow_analyze_deps` (filePath, direction: "imported_by") |\n| **Dependencies** | `shadow_analyze_deps` (filePath, direction: "imports") |\n| **Flow Path** | `shadow_analyze_flow` (symbolName, filePath) |\n| **Circular Deps** | `shadow_analyze_debt` (mode: "circular-deps") |\n| **Dead Code** | `shadow_analyze_debt` (mode: "dead-code", **confidenceThreshold: "high"**) |\n| **File Discovery** | `shadow_search_path` (query, **ranked: true**) \u2014 gravity-sorted |\n| **Workspace Fuse**| `shadow_workspace_fuse` (repoPaths, repoPath) |\n| **Topography** | `shadow_recon_topography` |\n\n## \u{1F4A1} Intelligence Options\n\n- **`shadow_search_path` with `ranked: true`**: Find related files sorted by gravity (high-import files first) with layer classification. Helps identify which affected files are architecturally critical.\n- **`shadow_analyze_debt` confidence levels**: Use `confidenceThreshold: "high"` to focus on likely dead code, avoiding noise from test fixtures and migrations.\n\n*Note: **Start with `shadow_ops_context`** for instant gravity zones + architectural context. Use depth higher than 3 for impact analysis only if the symbol is a fundamental primitive (e.g., RepositoryFactory).*\n\n## \u{1F6E0} Risk Classification\n\n- **Critical Risk**: Symbol in gravity zones (top 10) + >20 dependents + crosses layers\n- **High Risk**: >10 dependents OR crosses layers (e.g., Test -> Logic)\n- **Medium Risk**: 5-10 dependents within same layer\n- **Low Risk**: <5 dependents, same layer, no circular deps',shadow_understand:'---\nname: understand\ndescription: Find the high-signal path to understanding complex logic through intent retrieval, topological placement, relational analysis, and mechanics inspection. Use when understanding architecture, analyzing complex code, tracing logic flow, or when the user asks about how something works, architectural patterns, or code comprehension.\n---\n\n# Architectural Understanding\n\nFind the high-signal path to understanding complex logic.\n\n## Workflow\n\n1. **Session Context (The Fast Lane)**: `shadow_ops_context` (repoPath) \u2014 **ONE CALL** returns hologram + chronicle(5) + briefing (relevance-ranked candidates).\n - Skip to step 3 if you have what you need from context alone.\n2. **Optional Expanded Context** (only if shadow_ops_context wasn\'t enough):\n - `shadow_recon_topography` (repoPath) \u2014 Detailed layer breakdown beyond hologram summary.\n - `shadow_recon_tree` (subPath: "src/services", maxDepth: 2, repoPath) \u2014 Visual file hierarchy.\n - `shadow_ops_briefing` (scope: "mission", missionId, altitude: "ground") \u2014 Full mission detail with raw logs, working set, collisions.\n3. **Relational Analysis (The Who)**:\n - `shadow_analyze_impact` (symbolName, filePath, depth: 3, repoPath) \u2014 Blast radius.\n - `shadow_analyze_deps` (filePath, direction: "imported_by", repoPath) \u2014 Who depends on this?\n - `shadow_search_concept` (query, repoPath) \u2014 Semantic search.\n4. **Mechanics (The How)**:\n - **For Logic**: `shadow_analyze_flow` (symbolName, filePath, repoPath) \u2014 Trace execution.\n - **For Objects**: `shadow_inspect_file` (filePath, detailLevel: "signatures", repoPath) \u2014 All exports.\n - **For Symbol Deep Dive**: `shadow_inspect_symbol` (symbolName, filePath, context: "full", repoPath) \u2014 With deps.\n5. **Synthesis**: `shadow_ops_log` (missionId, type: "discovery", content, symbolName, repoPath).\n\n## Precise Tooling\n\n| Discovery Layer | Atomic Tool |\n| :--------------------- | :---------------------------------------------------- |\n| **Session Start** | `shadow_ops_context` (repoPath) \u2014 **START HERE** |\n| **Hologram** | `shadow_recon_hologram` (repoPath) \u2014 if you need standalone hologram |\n| **History** | `shadow_ops_chronicle` (limit: 5) \u2014 if you need more than 5 from context |\n| **Layers** | `shadow_recon_topography` \u2014 detailed breakdown |\n| **Mission Detail** | `shadow_ops_briefing` (altitude: "ground") \u2014 full logs + working set |\n| **Blast Radius** | `shadow_analyze_impact` (symbolName, depth: 3) |\n| **Dependents** | `shadow_analyze_deps` (filePath, direction: "imported_by") |\n| **Flow Trace** | `shadow_analyze_flow` (symbolName, filePath) |\n| **Structure** | `shadow_inspect_file` (detailLevel: "signatures") |\n| **Deep Dive** | `shadow_inspect_symbol` (context: "full") |\n| **File Discovery** | `shadow_search_path` (query, **ranked: true**) \u2014 gravity-sorted results with layer classification |\n\n*Note: **ALWAYS start with `shadow_ops_context`** for instant architectural context + history + mission state in ONE call. Use `context: "definition"` for token-efficient single symbol inspection.*\n\n## Intelligence Options\n\n- **`shadow_search_path` with `ranked: true`**: Results sorted by gravity (high-import files first) with layer classification (Entry/Logic/Data). Use when you need to find the most architecturally important files matching a pattern.\n- **`shadow_search_concept` with `compact: true`**: Omits code snippets for ~60% token savings. Use for broad exploration before deep dives.\n- **Briefing altitude levels**: Use `orbit` for quick status, `atmosphere` for strategy + crystals, `ground` for raw logs + collisions.\n- **`shadow_ops_crystallize`**: If a mission has excessive raw logs, crystallize them first for leaner briefings.\n',shadow_workspace:`---
1342
+ `,shadow_shadow_trace_impact:`---
1343
+ name: trace-impact
1344
+ description: Map the blast radius of a change by analyzing impact, flow traces, cross-repo dependencies, and boundary maps. Use when analyzing change impact, assessing risk, tracing dependencies, or when the user asks about change impact, blast radius, or dependency analysis.
1345
+ ---
1346
+
1347
+ # Impact Analysis
1348
+
1349
+ Map the blast radius of a change using the full Shadow analyze toolkit.
1350
+
1351
+ ## \u{1F680} Workflow
1352
+
1353
+ 1. **Session Context**: \`shadow_ops_context\` (repoPath) \u2014 **ONE CALL** for hologram + chronicle + briefing. Check if symbol is in gravity zones.
1354
+ 2. **Impact (Blast Radius)**: \`shadow_analyze_impact\` (symbolName, filePath, depth: 3, repoPath) \u2014 ALL affected files.
1355
+ 3. **Dependencies**:
1356
+ - \`shadow_analyze_deps\` (filePath, direction: "imported_by", repoPath) \u2014 Who imports this?
1357
+ - \`shadow_analyze_deps\` (filePath, direction: "imports", repoPath) \u2014 What does it import?
1358
+ 4. **Flow Trace**: \`shadow_analyze_flow\` (symbolName, filePath, repoPath) \u2014 Execution path.
1359
+ 5. **Health Check**:
1360
+ - \`shadow_analyze_debt\` (mode: "circular-deps", repoPath) \u2014 Any import cycles?
1361
+ - \`shadow_analyze_debt\` (mode: "dead-code", limit: 50, repoPath) \u2014 Unused exports?
1362
+ 6. **Cross-Repo Check** (if multi-repo):
1363
+ - \`shadow_workspace_fuse\` (repoPaths, repoPath).
1364
+ - \`shadow_search_symbol\` (query, limit: 50, repoPath).
1365
+ 7. **Boundary Map**: \`shadow_recon_topography\` (repoPath) \u2014 Layer crossing check.
1366
+ 8. **Log Risk**: \`shadow_ops_log\` (missionId, type: "discovery", content, symbolName, repoPath).
1367
+
1368
+ ## \u{1F6E0} Precise Tooling
1369
+
1370
+ | Impact Layer | Atomic Tool |
1371
+ | :------------------- | :------------------------------------------------------------------------- |
1372
+ | **Session Start** \u{1F680} | \`shadow_ops_context\` (repoPath) \u2014 **START HERE** for context |
1373
+ | **Hologram** | \`shadow_recon_hologram\` (repoPath) \u2014 if you need standalone |
1374
+ | **Blast Radius** | \`shadow_analyze_impact\` (symbolName, depth: 3) |
1375
+ | **Dependents** | \`shadow_analyze_deps\` (filePath, direction: "imported_by") |
1376
+ | **Dependencies** | \`shadow_analyze_deps\` (filePath, direction: "imports") |
1377
+ | **Flow Path** | \`shadow_analyze_flow\` (symbolName, filePath) |
1378
+ | **Circular Deps** | \`shadow_analyze_debt\` (mode: "circular-deps") |
1379
+ | **Dead Code** | \`shadow_analyze_debt\` (mode: "dead-code", **confidenceThreshold: "high"**) |
1380
+ | **File Discovery** | \`shadow_search_path\` (query, **ranked: true**) \u2014 gravity-sorted |
1381
+ | **Workspace Fuse** | \`shadow_workspace_fuse\` (repoPaths, repoPath) |
1382
+ | **Topography** | \`shadow_recon_topography\` |
1383
+
1384
+ ## \u{1F4A1} Intelligence Options
1385
+
1386
+ - **\`shadow_search_path\` with \`ranked: true\`**: Find related files sorted by gravity (high-import files first) with layer classification. Helps identify which affected files are architecturally critical.
1387
+ - **\`shadow_analyze_debt\` confidence levels**: Use \`confidenceThreshold: "high"\` to focus on likely dead code, avoiding noise from test fixtures and migrations.
1388
+
1389
+ _Note: **Start with \`shadow_ops_context\`** for instant gravity zones + architectural context. Use depth higher than 3 for impact analysis only if the symbol is a fundamental primitive (e.g., RepositoryFactory)._
1390
+
1391
+ ## \u{1F6E0} Risk Classification
1392
+
1393
+ - **Critical Risk**: Symbol in gravity zones (top 10) + >20 dependents + crosses layers
1394
+ - **High Risk**: >10 dependents OR crosses layers (e.g., Test -> Logic)
1395
+ - **Medium Risk**: 5-10 dependents within same layer
1396
+ - **Low Risk**: <5 dependents, same layer, no circular deps
1397
+ `,shadow_shadow_understand:'---\nname: understand\ndescription: Find the high-signal path to understanding complex logic through intent retrieval, topological placement, relational analysis, and mechanics inspection. Use when understanding architecture, analyzing complex code, tracing logic flow, or when the user asks about how something works, architectural patterns, or code comprehension.\n---\n\n# Architectural Understanding\n\nFind the high-signal path to understanding complex logic.\n\n## Workflow\n\n1. **Session Context (The Fast Lane)**: `shadow_ops_context` (repoPath) \u2014 **ONE CALL** returns hologram + chronicle(5) + briefing (relevance-ranked candidates).\n - Skip to step 3 if you have what you need from context alone.\n2. **Optional Expanded Context** (only if shadow_ops_context wasn\'t enough):\n - `shadow_recon_topography` (repoPath) \u2014 Detailed layer breakdown beyond hologram summary.\n - `shadow_recon_tree` (subPath: "src/services", maxDepth: 2, repoPath) \u2014 Visual file hierarchy.\n - `shadow_ops_briefing` (scope: "mission", missionId, altitude: "ground") \u2014 Full mission detail with raw logs, working set, collisions.\n3. **Relational Analysis (The Who)**:\n - `shadow_analyze_impact` (symbolName, filePath, depth: 3, repoPath) \u2014 Blast radius.\n - `shadow_analyze_deps` (filePath, direction: "imported_by", repoPath) \u2014 Who depends on this?\n - `shadow_search_concept` (query, repoPath) \u2014 Semantic search.\n4. **Mechanics (The How)**:\n - **For Logic**: `shadow_analyze_flow` (symbolName, filePath, repoPath) \u2014 Trace execution.\n - **For Objects**: `shadow_inspect_file` (filePath, detailLevel: "signatures", repoPath) \u2014 All exports.\n - **For Symbol Deep Dive**: `shadow_inspect_symbol` (symbolName, filePath, context: "full", repoPath) \u2014 With deps.\n5. **Synthesis**: `shadow_ops_log` (missionId, type: "discovery", content, symbolName, repoPath).\n\n## Precise Tooling\n\n| Discovery Layer | Atomic Tool |\n| :----------------- | :------------------------------------------------------------------------------------------------ |\n| **Session Start** | `shadow_ops_context` (repoPath) \u2014 **START HERE** |\n| **Hologram** | `shadow_recon_hologram` (repoPath) \u2014 if you need standalone hologram |\n| **History** | `shadow_ops_chronicle` (limit: 5) \u2014 if you need more than 5 from context |\n| **Layers** | `shadow_recon_topography` \u2014 detailed breakdown |\n| **Mission Detail** | `shadow_ops_briefing` (altitude: "ground") \u2014 full logs + working set |\n| **Blast Radius** | `shadow_analyze_impact` (symbolName, depth: 3) |\n| **Dependents** | `shadow_analyze_deps` (filePath, direction: "imported_by") |\n| **Flow Trace** | `shadow_analyze_flow` (symbolName, filePath) |\n| **Structure** | `shadow_inspect_file` (detailLevel: "signatures") |\n| **Deep Dive** | `shadow_inspect_symbol` (context: "full") |\n| **File Discovery** | `shadow_search_path` (query, **ranked: true**) \u2014 gravity-sorted results with layer classification |\n\n_Note: **ALWAYS start with `shadow_ops_context`** for instant architectural context + history + mission state in ONE call. Use `context: "definition"` for token-efficient single symbol inspection._\n\n## Intelligence Options\n\n- **`shadow_search_path` with `ranked: true`**: Results sorted by gravity (high-import files first) with layer classification (Entry/Logic/Data). Use when you need to find the most architecturally important files matching a pattern.\n- **`shadow_search_concept` with `compact: true`**: Omits code snippets for ~60% token savings. Use for broad exploration before deep dives.\n- **Briefing altitude levels**: Use `orbit` for quick status, `atmosphere` for strategy + crystals, `ground` for raw logs + collisions.\n- **`shadow_ops_crystallize`**: If a mission has excessive raw logs, crystallize them first for leaner briefings.\n',shadow_shadow_workspace:`---
1125
1398
  name: workspace
1126
1399
  description: Manage multi-repository workspaces and cross-repo mission links using the Shadow Engine. Use when working with multiple repositories, federated search across repos, linking missions across repos, or when the user asks about workspace management, multi-repo workflows, or cross-repository dependencies.
1127
1400
  ---
@@ -1139,15 +1412,19 @@ Manage multi-repository workspaces and cross-repo mission links using the Shadow
1139
1412
 
1140
1413
  ## \u{1F6E0} Precise Tooling
1141
1414
 
1142
- | Action | Atomic Tool | Example |
1143
- | :--- | :--- | :--- |
1144
- | **List** | \`shadow_workspace_list\` | \`{ repoPath, repoPaths: [...] }\` |
1145
- | **Fuse** | \`shadow_workspace_fuse\` | \`{ repoPath, repoPaths: [...] }\` |
1146
- | **Link** | \`shadow_workspace_link\` | \`{ parentMissionId: 1, childMissionId: 2, ... }\` |
1147
- | **Visualize** | \`shadow_ops_graph\` | \`{ missionId: 1, depth: 3, repoPath }\` |
1415
+ | Action | Atomic Tool | Example |
1416
+ | :------------ | :---------------------- | :----------------------------------------------- |
1417
+ | **List** | \`shadow_workspace_list\` | \`{ repoPath, repoPaths: [...] }\` |
1418
+ | **Fuse** | \`shadow_workspace_fuse\` | \`{ repoPath, repoPaths: [...] }\` |
1419
+ | **Link** | \`shadow_workspace_link\` | \`{ parentMissionId: 1, childMissionId: 2, ... }\` |
1420
+ | **Visualize** | \`shadow_ops_graph\` | \`{ missionId: 1, depth: 3, repoPath }\` |
1148
1421
 
1149
- *Note: Use fused search after \`shadow_workspace_fuse\` to look up concepts across all repositories simultaneously.*
1422
+ _Note: Use fused search after \`shadow_workspace_fuse\` to look up concepts across all repositories simultaneously._
1150
1423
 
1151
1424
  ## \u{1F6E0} Tooling Strategy
1152
1425
 
1153
- Use **\`shadow_workspace_fuse\`** early in multi-repo sessions to unlock "X-Ray" vision across boundaries.`};import{pino as Xl}from"pino";import*as oe from"@clack/prompts";var ps=Xl({transport:{target:"pino-pretty",options:{colorize:!0}}});async function la(i=!1,e=!1){oe.intro("\u{1F311} Liquid Shadow: Tactical Onboarding");let t=Kl.homedir(),n=st.join(t,".claude","skills"),s=st.join(t,".gemini","antigravity","global_workflows"),r=0,o=e||await oe.confirm({message:"Deploy Autonomous Reasoning Skills? (Injects /onboard, /understand, etc.)",initialValue:!0});if(oe.isCancel(o)){oe.outro("Onboarding aborted.");return}let c=e||await oe.confirm({message:"Connect to MCP Reasoning Engines? (Claude Code, Desktop, Antigravity)",initialValue:!0});if(oe.isCancel(c)){oe.outro("Onboarding aborted.");return}if(!o&&!c){oe.outro("No actions selected. Operational state unchanged.");return}let a=oe.spinner();if(a.start("Establishing intelligence assets..."),o){if(Ie.existsSync(n))for(let[l,p]of Object.entries(ei)){let u=st.join(n,l);Ie.existsSync(u)||Ie.mkdirSync(u,{recursive:!0});let d=st.join(u,"SKILL.md");(i||!Ie.existsSync(d))&&(Ie.writeFileSync(d,p),r++)}if(Ie.existsSync(s))for(let[l,p]of Object.entries(ei)){let u=st.join(s,`${l}.md`);(i||!Ie.existsSync(u))&&(Ie.writeFileSync(u,p),r++)}}c&&await Zl(t),a.stop("Intelligence layer established."),r>0?oe.note(`Successfully deployed ${r} tactical skills.`,"Manifest"):oe.note("No new skills deployed (up to date or scope skipped).","Manifest"),oe.outro("\u{1F311} Liquid Shadow is operational.")}async function Zl(i){let e=[{name:"Claude Code",path:st.join(i,".claude.json"),type:"stdio"},{name:"Antigravity IDE",path:st.join(i,".gemini","antigravity","mcp_config.json")},{name:"Claude Desktop",path:st.join(i,"Library","Application Support","Claude","claude_desktop_config.json")}];for(let t of e){if(!Ie.existsSync(t.path)){ps.debug(`${t.name} config not found at ${t.path}, skipping.`);continue}try{let n=Ie.readFileSync(t.path,"utf8"),s=JSON.parse(n);s.mcpServers||(s.mcpServers={});let r="liquid-shadow",o=s.mcpServers[r],c={command:"liquid-shadow-mcp",args:[],env:{}};if(t.type==="stdio"&&(c.type="stdio"),o){ps.info(`${t.name}: ${r} MCP server already configured.`);continue}s.mcpServers[r]=c,Ie.writeFileSync(t.path,JSON.stringify(s,null,2)),ps.info(`Updated ${t.name} config at ${t.path}`)}catch(n){ps.error(`Failed to update ${t.name} config at ${t.path}: ${n}`)}}}function le(i){let e=process.cwd();return hs(e,i.flags)}process.on("unhandledRejection",i=>{console.error("\x1B[31mUnhandled Rejection:\x1B[0m",i),J().then(()=>process.exit(1))});process.on("uncaughtException",i=>{console.error("\x1B[31mUncaught Exception:\x1B[0m",i),J().then(()=>process.exit(1))});var Z=ep().name("liquid-shadow").version("1.0.2").description("Tactical Repository Intelligence Operative - Liquid Shadow Ecosystem").scriptName("liquid-shadow");Z.command("index","Index the repository for AI analysis",{parameters:["[dir]"],flags:{output:{type:String,alias:"o",description:"Export to JSON file instead of indexing"},level:{type:String,alias:"l",description:"Detail level",default:"detailed"},subPath:{type:String,description:"Only process files within this subpath"},force:{type:Boolean,description:"Force re-indexing of all files",default:!1},deep:{type:Boolean,description:"Perform deep semantic indexing (headings + symbol embeddings)",default:!0}}}).on("index",async i=>{let e=le(i),t={...i.flags,dir:i.flags.dir??e.dir,level:i.flags.level??e.level,deep:i.flags.deep??e.deep};t.deep==="false"||t.deep===!1?t.deep=!1:t.deep=!0,await Ir(i.parameters.dir||e.dir,t)});Z.command("status","Show current repository intelligence status",{parameters:["[dir]"]}).on("status",async i=>{let e=le(i);await Di(i.parameters.dir||e.dir)});Z.command("dashboard","Operational intelligence dashboard (TUI)",{parameters:["[dir]"]}).on("dashboard",async i=>{let e=le(i);await Rs(i.parameters.dir||e.dir)});Z.command("metrics","Show performance metrics and observability data",{parameters:["[dir]"]}).on("metrics",async i=>{let e=le(i);await zi(i.parameters.dir||e.dir)});Z.command("benchmark","Run performance benchmark on repository indexing",{parameters:["[dir]"]}).on("benchmark",async i=>{let e=le(i);await Lr(i.parameters.dir||e.dir)});Z.command("tree","Visualize repository structure as a tree",{parameters:["[dir]"],flags:{subPath:{type:String,description:"Subpath to visualize"},depth:{type:String,alias:"d",description:"Max depth",default:"3"}}}).on("tree",async i=>{let e=le(i);await Tr(i.parameters.dir||e.dir,{...i.flags,dir:i.flags.dir??e.dir})});Z.command("recon","Repository reconnaissance and architecture analysis",{parameters:["<mode>","[dir]"],flags:{subPath:{type:String,description:"Subpath to focus on"}}}).on("recon",async i=>{let e=le(i);await yo(i.parameters.mode,i.parameters.dir||e.dir,{...i.flags})});Z.command("trace","Trace execution flow for a given file/symbol",{parameters:["<file>","[symbolName]"],flags:{dir:{type:String,alias:"d",default:"."}}}).on("trace",async i=>{let e=le(i);await Pr(i.parameters.file,{...i.flags,dir:i.flags.dir??e.dir,symbolName:i.parameters.symbolName})});Z.command("sync","Deep synchronize intelligence lifecycle (Trace + Repair + Re-hydrate)",{parameters:["[dir]"]}).on("sync",async i=>{let e=le(i);await ho(i.parameters.dir||e.dir,{})});Z.command("search-config","Search for configuration values",{parameters:["[key]"],flags:{dir:{type:String,alias:"d",default:"."},kind:{type:String,description:"Filter by config kind"}}}).on("search-config",async i=>{let e=le(i);await Io(i.parameters.key,{...i.flags,dir:i.flags.dir??e.dir})});Z.command("search-concept","Search for files by concept/intent (Semantic)",{parameters:["<query>"],flags:{dir:{type:String,alias:"d",default:"."},interactive:{type:Boolean,alias:"i",description:"Interactive TUI: pick a result to inspect",default:!1}}}).on("search-concept",async i=>{let e=le(i);await To(i.parameters.query,{...i.flags,dir:i.flags.dir??e.dir})});Z.command("search-symbol","Search for specific code symbols",{parameters:["<query>"],flags:{dir:{type:String,alias:"d",default:"."},interactive:{type:Boolean,alias:"i",description:"Interactive TUI: pick a result to inspect",default:!1}}}).on("search-symbol",async i=>{let e=le(i);await Ro(i.parameters.query,{...i.flags,dir:i.flags.dir??e.dir})});Z.command("search-fuzzy",'Fuzzy search for symbols (e.g., "usc" finds "UserServiceClient")',{parameters:["<query>"],flags:{dir:{type:String,alias:"d",default:"."},interactive:{type:Boolean,alias:"i",description:"Interactive TUI: pick a result to inspect",default:!1}}}).on("search-fuzzy",async i=>{let e=le(i);await ko(i.parameters.query,{...i.flags,dir:i.flags.dir??e.dir})});Z.command("hooks","Manage git hooks for automatic intelligence updates",{parameters:["<action>","[path]"]}).on("hooks",async i=>{await Co([i.parameters.action,i.parameters.path])});Z.command("workspace","Workspace-level mission orchestration",{parameters:["<action>","[args...]"]}).on("workspace",async i=>{await Wo([i.parameters.action,...i.parameters.args])});Z.command("mission","Mission management (start, plan, briefing, distill)",{parameters:["<action>","[args...]"]}).on("mission",async i=>{await sa([i.parameters.action,...i.parameters.args])});Z.command("inspect","Deep inspection of specific files or symbols",{parameters:["<mode>","[args...]"]}).on("inspect",async i=>{await ia([i.parameters.mode,...i.parameters.args])});Z.command("watch","Watch repo and reindex on file changes",{parameters:["[dir]"]}).on("watch",async i=>{let e=le(i);await aa(i.parameters.dir||e.dir)});Z.command("chronicle","Generate a repository-wide narrative feed (ADRs/Epics)",{parameters:["[dir]"],flags:{format:{type:String,alias:"f",description:"Output format (markdown|json)",default:"markdown"},limit:{type:Number,alias:"l",description:"Limit number of entries",default:10},offset:{type:Number,description:"Pagination offset",default:0},since:{type:String,description:"Show entries since date (YYYY-MM-DD)"},until:{type:String,description:"Show entries until date (YYYY-MM-DD)"}}}).on("chronicle",async i=>{let e=le(i);await ca(i.parameters.dir||e.dir,{...i.flags,format:i.flags.format,limit:i.flags.limit?parseInt(String(i.flags.limit),10):void 0,offset:i.flags.offset?parseInt(String(i.flags.offset),10):void 0,since:i.flags.since?Math.floor(new Date(String(i.flags.since)).getTime()/1e3):void 0,until:i.flags.until?Math.floor(new Date(String(i.flags.until)).getTime()/1e3):void 0})});Z.command("init","Initialize Liquid Shadow skills and configuration",{flags:{force:{type:Boolean,alias:"f",description:"Force overwrite existing skills",default:!1},yes:{type:Boolean,alias:"y",description:"Skip interactive confirmation (unsafe)",default:!1}}}).on("init",async i=>{await la(i.flags.force,i.flags.yes)});Z.command("completion","Generate shell completion script (bash or zsh)",{parameters:["<shell>"]}).on("completion",async i=>{await oa(i.parameters.shell||"")});if(process.argv.length<=2){let i=hs(process.cwd(),{});Rs(i.dir)}else Z.parse();
1426
+ Use **\`shadow_workspace_fuse\`** early in multi-repo sessions to unlock "X-Ray" vision across boundaries.
1427
+ `};import*as Zt from"@clack/prompts";function yI(n){return[{name:"Claude Code",dir:gn.join(n,".claude","skills"),folderBased:!0,createIfMissing:!1},{name:"Cursor",dir:gn.join(n,".cursor","skills"),folderBased:!0,createIfMissing:!1},{name:"Gemini CLI",dir:gn.join(n,".gemini","skills"),folderBased:!0,createIfMissing:!0},{name:"Codex",dir:gn.join(n,".codex","skills"),folderBased:!0,createIfMissing:!1},{name:"Antigravity",dir:gn.join(n,".gemini","antigravity","global_workflows"),folderBased:!1,createIfMissing:!1}]}function Hf(n=!1){let e=gI.homedir(),r=yI(e),i=0;for(let t of r){if(!hn.existsSync(t.dir))if(t.createIfMissing)hn.mkdirSync(t.dir,{recursive:!0});else continue;for(let[o,s]of Object.entries(rx))if(t.folderBased){let a=gn.join(t.dir,o);hn.existsSync(a)||hn.mkdirSync(a,{recursive:!0});let c=gn.join(a,"SKILL.md");(n||!hn.existsSync(c))&&(hn.writeFileSync(c,s),i++)}else{let a=gn.join(t.dir,`${o}.md`);(n||!hn.existsSync(a))&&(hn.writeFileSync(a,s),i++)}}return i}async function ix(){Zt.intro("\u{1F311} Liquid Shadow: Skills Update");let n=Zt.spinner();n.start("Deploying latest skill definitions...");let e=Hf(!0);n.stop("Done."),e>0?Zt.note(`Updated ${e} skill files across all detected targets.`,"Manifest"):Zt.note("No skill targets found (Claude Code, Cursor, Gemini CLI, Codex, Antigravity).","Manifest"),Zt.outro("\u{1F311} Skills are up to date.")}import{pino as vI}from"pino";import*as ze from"@clack/prompts";var bn=vI({transport:{target:"pino-pretty",options:{colorize:!0}}}),qr="liquid-shadow",ox="liquid-shadow-mcp";async function sx(n=!1,e=!1){ze.intro("\u{1F311} Liquid Shadow: Tactical Onboarding");let r=bI.homedir(),i=0,t=e||await ze.confirm({message:"Deploy Autonomous Reasoning Skills? (Injects /onboard, /understand, etc.)",initialValue:!0});if(ze.isCancel(t)){ze.outro("Onboarding aborted.");return}let o=e||await ze.confirm({message:"Connect to MCP Reasoning Engines? (Claude Code, Claude Desktop, Gemini CLI, Codex)",initialValue:!0});if(ze.isCancel(o)){ze.outro("Onboarding aborted.");return}if(!t&&!o){ze.outro("No actions selected. Operational state unchanged.");return}let s=ze.spinner();s.start("Establishing intelligence assets..."),t&&(i=Hf(n)),o&&(_I(r),xI(r)),s.stop("Intelligence layer established."),i>0?ze.note(`Successfully deployed ${i} tactical skills.`,"Manifest"):ze.note("No new skills deployed (up to date or scope skipped).","Manifest"),ze.outro("\u{1F311} Liquid Shadow is operational.")}function _I(n){let e=[{name:"Claude Code",path:Jr.join(n,".claude.json"),extraFields:{type:"stdio"},createIfMissing:!1},{name:"Claude Desktop",path:Jr.join(n,"Library","Application Support","Claude","claude_desktop_config.json"),createIfMissing:!1},{name:"Gemini CLI",path:Jr.join(n,".gemini","settings.json"),createIfMissing:!0},{name:"Antigravity IDE",path:Jr.join(n,".gemini","antigravity","mcp_config.json"),createIfMissing:!1}];for(let r of e){if(!yn.existsSync(r.path))if(r.createIfMissing)yn.mkdirSync(Jr.dirname(r.path),{recursive:!0}),yn.writeFileSync(r.path,"{}");else{bn.debug(`${r.name} config not found at ${r.path}, skipping.`);continue}try{let i=JSON.parse(yn.readFileSync(r.path,"utf8"));if(i.mcpServers||(i.mcpServers={}),i.mcpServers[qr]){bn.info(`${r.name}: ${qr} already configured.`);continue}i.mcpServers[qr]={command:ox,args:[],env:{},...r.extraFields??{}},yn.writeFileSync(r.path,JSON.stringify(i,null,2)),bn.info(`Updated ${r.name} config at ${r.path}`)}catch(i){bn.error(`Failed to update ${r.name} config at ${r.path}: ${i}`)}}}function xI(n){let e=Jr.join(n,".codex","config.toml");if(!yn.existsSync(e)){bn.debug(`Codex config not found at ${e}, skipping.`);return}try{let r=yn.readFileSync(e,"utf8");if(r.includes(`[mcp_servers.${qr}]`)){bn.info(`Codex: ${qr} already configured.`);return}let i=`
1428
+ [mcp_servers.${qr}]
1429
+ command = "${ox}"
1430
+ `;yn.writeFileSync(e,r+i),bn.info(`Updated Codex config at ${e}`)}catch(r){bn.error(`Failed to update Codex config at ${e}: ${r}`)}}function Ze(n){let e=process.cwd();return mc(e,n.flags)}process.on("unhandledRejection",n=>{console.error("\x1B[31mUnhandled Rejection:\x1B[0m",n),de().then(()=>process.exit(1))});process.on("uncaughtException",n=>{console.error("\x1B[31mUncaught Exception:\x1B[0m",n),de().then(()=>process.exit(1))});var ve=SI().name("liquid-shadow").version("1.0.2").description("Tactical Repository Intelligence Operative - Liquid Shadow Ecosystem").scriptName("liquid-shadow");ve.command("index","Index the repository for AI analysis",{parameters:["[dir]"],flags:{output:{type:String,alias:"o",description:"Export to JSON file instead of indexing"},level:{type:String,alias:"l",description:"Detail level",default:"detailed"},subPath:{type:String,description:"Only process files within this subpath"},force:{type:Boolean,description:"Force re-indexing of all files",default:!1},deep:{type:Boolean,description:"Perform deep semantic indexing (headings + symbol embeddings)",default:!0}}}).on("index",async n=>{let e=Ze(n),r={...n.flags,dir:n.flags.dir??e.dir,level:n.flags.level??e.level,deep:n.flags.deep??e.deep};r.deep==="false"||r.deep===!1?r.deep=!1:r.deep=!0,await M_(n.parameters.dir||e.dir,r)});ve.command("status","Show current repository intelligence status",{parameters:["[dir]"]}).on("status",async n=>{let e=Ze(n);await kh(n.parameters.dir||e.dir)});ve.command("dashboard","Operational intelligence dashboard (TUI)",{parameters:["[dir]"]}).on("dashboard",async n=>{let e=Ze(n);await kc(n.parameters.dir||e.dir)});ve.command("metrics","Show performance metrics and observability data",{parameters:["[dir]"]}).on("metrics",async n=>{let e=Ze(n);await Rh(n.parameters.dir||e.dir)});ve.command("benchmark","Run performance benchmark on repository indexing",{parameters:["[dir]"]}).on("benchmark",async n=>{let e=Ze(n);await F_(n.parameters.dir||e.dir)});ve.command("tree","Visualize repository structure as a tree",{parameters:["[dir]"],flags:{subPath:{type:String,description:"Subpath to visualize"},depth:{type:String,alias:"d",description:"Max depth",default:"3"}}}).on("tree",async n=>{let e=Ze(n);await A_(n.parameters.dir||e.dir,{...n.flags,dir:n.flags.dir??e.dir})});ve.command("recon","Repository reconnaissance and architecture analysis",{parameters:["<mode>","[dir]"],flags:{subPath:{type:String,description:"Subpath to focus on"}}}).on("recon",async n=>{let e=Ze(n);await W_(n.parameters.mode,n.parameters.dir||e.dir,{...n.flags})});ve.command("trace","Trace execution flow for a given file/symbol",{parameters:["<file>","[symbolName]"],flags:{dir:{type:String,alias:"d",default:"."}}}).on("trace",async n=>{let e=Ze(n);await U_(n.parameters.file,{...n.flags,dir:n.flags.dir??e.dir,symbolName:n.parameters.symbolName})});ve.command("sync","Deep synchronize intelligence lifecycle (Trace + Repair + Re-hydrate)",{parameters:["[dir]"]}).on("sync",async n=>{let e=Ze(n);await Z_(n.parameters.dir||e.dir,{})});ve.command("search-config","Search for configuration values",{parameters:["[key]"],flags:{dir:{type:String,alias:"d",default:"."},kind:{type:String,description:"Filter by config kind"}}}).on("search-config",async n=>{let e=Ze(n);await q_(n.parameters.key,{...n.flags,dir:n.flags.dir??e.dir})});ve.command("search-concept","Search for files by concept/intent (Semantic)",{parameters:["<query>"],flags:{dir:{type:String,alias:"d",default:"."},interactive:{type:Boolean,alias:"i",description:"Interactive TUI: pick a result to inspect",default:!1}}}).on("search-concept",async n=>{let e=Ze(n);await B_(n.parameters.query,{...n.flags,dir:n.flags.dir??e.dir})});ve.command("search-symbol","Search for specific code symbols",{parameters:["<query>"],flags:{dir:{type:String,alias:"d",default:"."},interactive:{type:Boolean,alias:"i",description:"Interactive TUI: pick a result to inspect",default:!1}}}).on("search-symbol",async n=>{let e=Ze(n);await G_(n.parameters.query,{...n.flags,dir:n.flags.dir??e.dir})});ve.command("search-fuzzy",'Fuzzy search for symbols (e.g., "usc" finds "UserServiceClient")',{parameters:["<query>"],flags:{dir:{type:String,alias:"d",default:"."},interactive:{type:Boolean,alias:"i",description:"Interactive TUI: pick a result to inspect",default:!1}}}).on("search-fuzzy",async n=>{let e=Ze(n);await J_(n.parameters.query,{...n.flags,dir:n.flags.dir??e.dir})});ve.command("hooks","Manage git hooks for automatic intelligence updates",{parameters:["<action>","[path]"]}).on("hooks",async n=>{await V_([n.parameters.action,n.parameters.path])});ve.command("workspace","Workspace-level mission orchestration",{parameters:["<action>","[args...]"]}).on("workspace",async n=>{await K_([n.parameters.action,...n.parameters.args])});ve.command("mission","Mission management (start, plan, briefing, distill)",{parameters:["<action>","[args...]"]}).on("mission",async n=>{await Y_([n.parameters.action,...n.parameters.args])});ve.command("inspect","Deep inspection of specific files or symbols",{parameters:["<mode>","[args...]"]}).on("inspect",async n=>{await X_([n.parameters.mode,...n.parameters.args])});ve.command("watch","Watch repo and reindex on file changes",{parameters:["[dir]"]}).on("watch",async n=>{let e=Ze(n);await tx(n.parameters.dir||e.dir)});ve.command("chronicle","Generate a repository-wide narrative feed (ADRs/Epics)",{parameters:["[dir]"],flags:{format:{type:String,alias:"f",description:"Output format (markdown|json)",default:"markdown"},limit:{type:Number,alias:"l",description:"Limit number of entries",default:10},offset:{type:Number,description:"Pagination offset",default:0},since:{type:String,description:"Show entries since date (YYYY-MM-DD)"},until:{type:String,description:"Show entries until date (YYYY-MM-DD)"}}}).on("chronicle",async n=>{let e=Ze(n);await nx(n.parameters.dir||e.dir,{...n.flags,format:n.flags.format,limit:n.flags.limit?parseInt(String(n.flags.limit),10):void 0,offset:n.flags.offset?parseInt(String(n.flags.offset),10):void 0,since:n.flags.since?Math.floor(new Date(String(n.flags.since)).getTime()/1e3):void 0,until:n.flags.until?Math.floor(new Date(String(n.flags.until)).getTime()/1e3):void 0})});ve.command("init","Initialize Liquid Shadow skills and configuration",{flags:{force:{type:Boolean,alias:"f",description:"Force overwrite existing skills",default:!1},yes:{type:Boolean,alias:"y",description:"Skip interactive confirmation (unsafe)",default:!1}}}).on("init",async n=>{await sx(n.flags.force,n.flags.yes)});ve.command("skills","Manage Liquid Shadow reasoning skills",{parameters:["<action>"]}).on("skills",async n=>{let e=n.parameters.action;e==="update"?await ix():(console.error(`Unknown skills action: ${e}. Available: update`),process.exit(1))});ve.command("completion","Generate shell completion script (bash or zsh)",{parameters:["<shell>"]}).on("completion",async n=>{await ex(n.parameters.shell||"")});if(process.argv.length<=2){let n=mc(process.cwd(),{});kc(n.dir)}else ve.parse();