wyrm-mcp 7.2.3 → 7.2.4

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 (46) hide show
  1. package/dist/autoconfig.js +5 -5
  2. package/dist/autoconfig.js.map +1 -1
  3. package/dist/cloud/client.js +1 -1
  4. package/dist/cloud/client.js.map +1 -1
  5. package/dist/cloud/sync-engine.d.ts.map +1 -1
  6. package/dist/cloud/sync-engine.js +6 -6
  7. package/dist/cloud/sync-engine.js.map +1 -1
  8. package/dist/database.d.ts +87 -0
  9. package/dist/database.d.ts.map +1 -1
  10. package/dist/database.js +61 -20
  11. package/dist/database.js.map +1 -1
  12. package/dist/handlers/intelligence.d.ts.map +1 -1
  13. package/dist/handlers/intelligence.js +16 -16
  14. package/dist/handlers/intelligence.js.map +1 -1
  15. package/dist/handlers/search.d.ts.map +1 -1
  16. package/dist/handlers/search.js +2 -2
  17. package/dist/handlers/search.js.map +1 -1
  18. package/dist/handlers/session.d.ts.map +1 -1
  19. package/dist/handlers/session.js +21 -18
  20. package/dist/handlers/session.js.map +1 -1
  21. package/dist/handlers/types.d.ts +1 -1
  22. package/dist/handlers/types.d.ts.map +1 -1
  23. package/dist/http-fast.d.ts.map +1 -1
  24. package/dist/http-fast.js +18 -17
  25. package/dist/http-fast.js.map +1 -1
  26. package/dist/index.js +2 -2
  27. package/dist/index.js.map +1 -1
  28. package/dist/memory-artifacts.d.ts +45 -1
  29. package/dist/memory-artifacts.d.ts.map +1 -1
  30. package/dist/memory-artifacts.js +34 -24
  31. package/dist/memory-artifacts.js.map +1 -1
  32. package/dist/migrations.d.ts.map +1 -1
  33. package/dist/migrations.js +24 -0
  34. package/dist/migrations.js.map +1 -1
  35. package/dist/rerank.d.ts +59 -0
  36. package/dist/rerank.d.ts.map +1 -0
  37. package/dist/rerank.js +1 -0
  38. package/dist/rerank.js.map +1 -0
  39. package/dist/statusline.js +10 -10
  40. package/dist/statusline.js.map +1 -1
  41. package/dist/tool-manifest-v2.json +1 -1
  42. package/dist/tool-manifest.json +1 -1
  43. package/dist/wyrm-cli.js +1 -1
  44. package/dist/wyrm-cli.js.map +1 -1
  45. package/dist/wyrm-manifest.json +1 -1
  46. package/package.json +1 -1
package/dist/http-fast.js CHANGED
@@ -1,31 +1,31 @@
1
1
  #!/usr/bin/env node
2
- import Q from"http";import{WyrmDB as F}from"./database.js";import{cache as E,estimateTokens as X,truncateToTokens as K,timed as H}from"./performance.js";import{authMiddleware as z,getAuthStatus as D,getSecurityHeaders as L}from"./http-auth.js";import{WyrmLogger as V}from"./logger.js";import{sanitizeFtsQuery as W,validateProjectPath as Z}from"./security.js";import{readFileSync as R,existsSync as y,readdirSync as tt,realpathSync as G}from"fs";import{homedir as et}from"os";import{dirname as U,join as _}from"path";import{fileURLToPath as rt}from"url";const x=_(U(rt(import.meta.url)),"..","ui","dragon-mark.svg");let v=null;import{getUIDashboardHTML as nt}from"./ui-dashboard.js";import{verifyLicense as B}from"./license.js";import{MemoryArtifacts as st}from"./memory-artifacts.js";import{GroundTruths as ot,computeStaleness as at}from"./intelligence.js";import{FailurePatterns as ct}from"./failure-patterns.js";import{handleDaemonWrite as it}from"./daemon-write-endpoint.js";import{retryableWriteCause as ut,busyErrorBody as lt}from"./sqlite-busy.js";import{sseFrame as dt,resolveStartCursor as Y,SSE_KEEPALIVE as mt}from"./events-sse.js";import{readonlyBlocks as pt}from"./readonly-gate.js";import{resolveActorEnvelope as ft,runWithActor as Et}from"./handlers/boundary.js";const C=parseInt(process.env.WYRM_PORT||"3333")||3333,T=process.env.WYRM_UI_READONLY==="1",ht=512*1024,b=500,St=parseInt(process.env.WYRM_MAX_SSE_STREAMS||"64",10)||64,_t=parseInt(process.env.WYRM_MAX_SSE_PER_IP||"8",10)||8;let N=0;const O=new Map;let g=null,j=null,M=null,I=null;function o(){return g||(g=new F(process.env.WYRM_DB_PATH)),g}function yt(){return j||(j=new st(o().getDatabase())),j}function Tt(){return M||(M=new ot(o().getDatabase())),M}function Ot(){return I||(I=new ct(o().getDatabase())),I}function gt(t){const e=g;g=t,j=null,M=null,I=null;try{e?.close()}catch{}}function $(){const t=[],e=et(),r=new Set;let n=[];try{n=tt(e)}catch{return t}n.sort((s,a)=>a.localeCompare(s));for(const s of n){if(s!==".wyrm"&&!s.startsWith(".wyrm-"))continue;let a;try{a=G(_(e,s))}catch{continue}if(r.has(a))continue;const u=_(a,"wyrm.db");if(!y(u))continue;r.add(a);let c="Local",i="free";try{const m=_(a,"license.json");if(y(m)){const d=JSON.parse(R(m,"utf-8")),p=B(d);c=d.license&&d.license.issued_to||c,i=p.valid?p.tier:"free"}else{const d=_(a,"cloud.json");y(d)&&(c=JSON.parse(R(d,"utf-8")).email||c)}}catch{}const l=s.replace(/^\.wyrm-?/,"")||"default";t.push({name:l,dbPath:u,account:c,tier:i})}return t}const A=new V({level:"info"});function S(t,e,r){const n=Number.parseInt(String(t??""),10);return!Number.isFinite(n)||n<1?e:Math.min(n,r)}function P(t){const e=t==null?"":String(t);if(e)return o().getProject(e)||o().getProjectByName(e)}function h(t,e,r,n=200){const s=JSON.stringify(r),a=L(e);t.writeHead(n,{"Content-Type":"application/json","Content-Length":Buffer.byteLength(s),"X-Tokens":String(X(r)),...a}),t.end(s)}function Rt(t,e,r){const n=L(e);t.writeHead(200,{...n,"Content-Type":"text/html; charset=utf-8","Content-Length":Buffer.byteLength(r),"Cache-Control":"no-store"}),t.end(r)}function vt(t){return new Promise((e,r)=>{if(t.method==="GET"){e({});return}let n="",s=0;t.on("data",a=>{if(s+=a.length,s>ht){t.destroy(),r(new Error("Request body too large"));return}n+=a}),t.on("end",()=>{try{e(n?JSON.parse(n):{})}catch{r(new Error("Invalid JSON"))}}),t.on("error",r)})}const J={"GET /c":t=>{const e=`ctx:${t.p||"global"}`,r=E.get(e);if(r)return r;const n=t.p;let s;if(n){const a=o().getProject(n);if(!a)return{e:"not found"};const u=o().getPendingQuests(a.id),c=o().getRecentSessions(a.id,3);s={n:a.name,s:a.stack,q:u.length,qt:u.slice(0,5).map(i=>i.title),r:c[0]?.summary||c[0]?.notes?.slice(0,200)||null}}else{const a=o().getAllProjects(20),u=o().getAllPendingQuests();s={p:a.map(c=>({n:c.name,s:c.stack,q:o().getPendingQuests(c.id).length})),tq:u.length}}return E.set(e,s),s},"GET /p":()=>{const t=E.get("projects");if(t)return t;const r=o().getAllProjects(50).map(n=>({i:n.id,n:n.name,p:n.path,s:n.stack}));return E.set("projects",r),r},"POST /scan":t=>{const e=t.d||t.directory||process.env.HOME+"/Git Projects",r=Z(e);return r?(E.invalidate(),{found:o().scanForProjects(r,!0).length}):{e:"path not allowed"}},"GET /q":t=>{const e=t.p;if(e){const r=o().getProject(e);return r?o().getPendingQuests(r.id).map(n=>({i:n.id,t:n.title,p:n.priority[0]})):{e:"not found"}}return o().getAllPendingQuests().slice(0,20).map(r=>({i:r.id,t:r.title,p:r.priority[0]}))},"POST /q":t=>{const e=t.p,r=o().getProject(e);return r?(E.invalidate("ctx"),{i:o().addQuest(r.id,t.t,t.d,t.pr||"medium").id}):{e:"not found"}},"POST /qc":t=>{const e=typeof t.i=="number"?t.i:parseInt(String(t.i),10);return!e||e<1?{e:"id required"}:(E.invalidate("ctx"),o().updateQuest(e,"completed"),{ok:1})},"POST /s":t=>{const e=t.p;let r=o().getProject(e);if(r||(o().scanForProjects(e,!1),r=o().getProject(e)),!r)return{e:"not found"};let n=o().getTodaySession(r.id);return n||(n=o().createSession(r.id,{objectives:t.o||"",notes:""})),E.invalidate("ctx"),{i:n.id,d:n.date}},"POST /su":t=>{const e=t.i;return E.invalidate("ctx"),o().updateSession(e,{notes:t.n,summary:t.s,completed:t.c}),{ok:1}},"POST /x":t=>{const e=t.p,r=o().getProject(e);return r?(o().setContext(r.id,t.k,t.v),E.invalidate("ctx"),{ok:1}):{e:"not found"}},"GET /x":t=>{const e=t.p,r=o().getProject(e);return r?o().getAllContext(r.id):{e:"not found"}},"POST /g":t=>{const e=t.k,r=t.v;return!e||typeof e!="string"?{e:"k (key) required"}:r==null?{e:"v (value) required"}:(o().setGlobalContext(e,String(r)),E.invalidate(),{ok:1})},"GET /g":()=>o().getAllGlobalContext(),"GET /s":t=>{const e=t.q;if(!e)return{e:"query required"};const r=W(e);return{q:o().searchQuests(r).slice(0,5).map(s=>({i:s.id,t:s.title})),s:o().searchSessions(r).slice(0,3).map(s=>({i:s.id,d:s.date})),p:o().searchProjects(r).slice(0,3).map(s=>({n:s.name,p:s.path}))}},"POST /d":t=>{const e=t.p,r=o().getProject(e);return r?{i:o().insertData(r.id,t.c,t.k,t.v,t.m).id}:{e:"not found"}},"GET /d":t=>{const e=t.p,r=o().getProject(e);if(!r)return{e:"not found"};const n=S(t.l,20,100);return o().queryData(r.id,t.c,n).map(s=>({k:s.key,v:K(s.value,100)}))},"GET /d/agg":t=>{const e=t.p,r=o().getProject(e);if(!r)return{e:"not found"};const n=t.c;if(!n)return{e:"c (category) required"};const s=t.stack_key,a=t.scanner,u=S(t.l,1e3,1e4),c={};for(const i of o().queryData(r.id,n,u)){let l;try{l=JSON.parse(i.value)}catch{continue}if(s&&l.stack_key!==s||a&&l.scanner!==a)continue;const m=String(l.scanner??""),d=String(l.payload_hash??"");if(!m||!d)continue;const p=`${m}:${d}`,f=c[p]??{s:m,ph:d,sk:String(l.stack_key??""),h:0,t:0};f.t+=1,l.hit&&(f.h+=1),c[p]=f}return Object.values(c).map(i=>({...i,r:i.t>0?i.h/i.t:0})).sort((i,l)=>l.r-i.r||l.h-i.h)},"POST /batch":t=>{const e=t.ops;if(!e||!Array.isArray(e))return{e:"ops required"};if(e.length>b)return{e:`max ${b} ops per batch`};const r=performance.now();return{r:e.map(s=>{const a=`${s.m} ${s.r}`,u=J[a];if(!u)return{e:"unknown"};try{return{d:u(s.a||{})}}catch{return{e:"op failed"}}}),ms:Math.round(performance.now()-r)}},"POST /write":t=>it({db:o(),artifacts:yt(),truths:Tt(),failures:Ot()},t),"GET /syms":t=>{const e=String(t.q??"").slice(0,200);if(!e)return[];const r=S(t.limit,20,200),n=o().getDatabase();try{return n.prepare(`
2
+ import V from"http";import{WyrmDB as H}from"./database.js";import{cache as h,estimateTokens as z,truncateToTokens as Z,timed as G}from"./performance.js";import{authMiddleware as tt,getAuthStatus as D,getSecurityHeaders as L}from"./http-auth.js";import{WyrmLogger as et}from"./logger.js";import{sanitizeFtsQuery as W,validateProjectPath as rt}from"./security.js";import{readFileSync as R,existsSync as S,readdirSync as nt,realpathSync as U}from"fs";import{homedir as st}from"os";import{dirname as x,join as y}from"path";import{fileURLToPath as ot}from"url";const B=y(x(ot(import.meta.url)),"..","ui","dragon-mark.svg");let v=null;import{getUIDashboardHTML as at}from"./ui-dashboard.js";import{verifyLicense as Y}from"./license.js";import{MemoryArtifacts as ct}from"./memory-artifacts.js";import{createVectorStore as it}from"./vectors.js";import{GroundTruths as lt,computeStaleness as ut}from"./intelligence.js";import{FailurePatterns as dt}from"./failure-patterns.js";import{handleDaemonWrite as mt}from"./daemon-write-endpoint.js";import{retryableWriteCause as $,busyErrorBody as q}from"./sqlite-busy.js";import{sseFrame as pt,resolveStartCursor as J,SSE_KEEPALIVE as ft}from"./events-sse.js";import{readonlyBlocks as Et}from"./readonly-gate.js";import{resolveActorEnvelope as ht,runWithActor as _t}from"./handlers/boundary.js";const C=parseInt(process.env.WYRM_PORT||"3333")||3333,T=process.env.WYRM_UI_READONLY==="1",yt=512*1024,j=500,St=parseInt(process.env.WYRM_MAX_SSE_STREAMS||"64",10)||64,Tt=parseInt(process.env.WYRM_MAX_SSE_PER_IP||"8",10)||8;let k=0;const O=new Map;let g=null,b=null,M=null,I=null;function o(){return g||(g=new H(process.env.WYRM_DB_PATH)),g}function A(){if(!b){b=new ct(o().getDatabase());try{const t=process.env.WYRM_VECTOR_PROVIDER||"auto";t!=="none"&&b.setVectorStore(it({provider:t},o().getDatabase()))}catch{}}return b}function Ot(){return M||(M=new lt(o().getDatabase())),M}function gt(){return I||(I=new dt(o().getDatabase())),I}function Rt(t){const e=g;g=t,b=null,M=null,I=null;try{e?.close()}catch{}}function Q(){const t=[],e=st(),r=new Set;let n=[];try{n=nt(e)}catch{return t}n.sort((s,a)=>a.localeCompare(s));for(const s of n){if(s!==".wyrm"&&!s.startsWith(".wyrm-"))continue;let a;try{a=U(y(e,s))}catch{continue}if(r.has(a))continue;const l=y(a,"wyrm.db");if(!S(l))continue;r.add(a);let c="Local",i="free";try{const p=y(a,"license.json");if(S(p)){const d=JSON.parse(R(p,"utf-8")),m=Y(d);c=d.license&&d.license.issued_to||c,i=m.valid?m.tier:"free"}else{const d=y(a,"cloud.json");S(d)&&(c=JSON.parse(R(d,"utf-8")).email||c)}}catch{}const u=s.replace(/^\.wyrm-?/,"")||"default";t.push({name:u,dbPath:l,account:c,tier:i})}return t}const N=new et({level:"info"});function _(t,e,r){const n=Number.parseInt(String(t??""),10);return!Number.isFinite(n)||n<1?e:Math.min(n,r)}function P(t){const e=t==null?"":String(t);if(e)return o().getProject(e)||o().getProjectByName(e)}function E(t,e,r,n=200){const s=JSON.stringify(r),a=L(e);t.writeHead(n,{"Content-Type":"application/json","Content-Length":Buffer.byteLength(s),"X-Tokens":String(z(r)),...a}),t.end(s)}function vt(t,e,r){const n=L(e);t.writeHead(200,{...n,"Content-Type":"text/html; charset=utf-8","Content-Length":Buffer.byteLength(r),"Cache-Control":"no-store"}),t.end(r)}function bt(t){return new Promise((e,r)=>{if(t.method==="GET"){e({});return}let n="",s=0;t.on("data",a=>{if(s+=a.length,s>yt){t.destroy(),r(new Error("Request body too large"));return}n+=a}),t.on("end",()=>{try{e(n?JSON.parse(n):{})}catch{r(new Error("Invalid JSON"))}}),t.on("error",r)})}const X={"GET /c":t=>{const e=`ctx:${t.p||"global"}`,r=h.get(e);if(r)return r;const n=t.p;let s;if(n){const a=o().getProject(n);if(!a)return{e:"not found"};const l=o().getPendingQuests(a.id),c=o().getRecentSessions(a.id,3);s={n:a.name,s:a.stack,q:l.length,qt:l.slice(0,5).map(i=>i.title),r:c[0]?.summary||c[0]?.notes?.slice(0,200)||null}}else{const a=o().getAllProjects(20),l=o().getAllPendingQuests();s={p:a.map(c=>({n:c.name,s:c.stack,q:o().getPendingQuests(c.id).length})),tq:l.length}}return h.set(e,s),s},"GET /p":()=>{const t=h.get("projects");if(t)return t;const r=o().getAllProjects(50).map(n=>({i:n.id,n:n.name,p:n.path,s:n.stack}));return h.set("projects",r),r},"POST /scan":t=>{const e=t.d||t.directory||process.env.HOME+"/Git Projects",r=rt(e);return r?(h.invalidate(),{found:o().scanForProjects(r,!0).length}):{e:"path not allowed"}},"GET /q":t=>{const e=t.p;if(e){const r=o().getProject(e);return r?o().getPendingQuests(r.id).map(n=>({i:n.id,t:n.title,p:n.priority[0]})):{e:"not found"}}return o().getAllPendingQuests().slice(0,20).map(r=>({i:r.id,t:r.title,p:r.priority[0]}))},"POST /q":t=>{const e=t.p,r=o().getProject(e);return r?(h.invalidate("ctx"),{i:o().addQuest(r.id,t.t,t.d,t.pr||"medium").id}):{e:"not found"}},"POST /qc":t=>{const e=typeof t.i=="number"?t.i:parseInt(String(t.i),10);return!e||e<1?{e:"id required"}:(h.invalidate("ctx"),o().updateQuest(e,"completed"),{ok:1})},"POST /s":t=>{const e=t.p;let r=o().getProject(e);if(r||(o().scanForProjects(e,!1),r=o().getProject(e)),!r)return{e:"not found"};let n=o().getTodaySession(r.id);return n||(n=o().createSession(r.id,{objectives:t.o||"",notes:""})),h.invalidate("ctx"),{i:n.id,d:n.date}},"POST /su":t=>{const e=t.i;return h.invalidate("ctx"),o().updateSession(e,{notes:t.n,summary:t.s,completed:t.c}),{ok:1}},"POST /x":t=>{const e=t.p,r=o().getProject(e);return r?(o().setContext(r.id,t.k,t.v),h.invalidate("ctx"),{ok:1}):{e:"not found"}},"GET /x":t=>{const e=t.p,r=o().getProject(e);return r?o().getAllContext(r.id):{e:"not found"}},"POST /g":t=>{const e=t.k,r=t.v;return!e||typeof e!="string"?{e:"k (key) required"}:r==null?{e:"v (value) required"}:(o().setGlobalContext(e,String(r)),h.invalidate(),{ok:1})},"GET /g":()=>o().getAllGlobalContext(),"GET /s":t=>{const e=t.q;if(!e)return{e:"query required"};const r=W(e);return{q:o().searchQuests(r).slice(0,5).map(s=>({i:s.id,t:s.title})),s:o().searchSessions(r).slice(0,3).map(s=>({i:s.id,d:s.date})),p:o().searchProjects(r).slice(0,3).map(s=>({n:s.name,p:s.path}))}},"POST /d":t=>{const e=t.p,r=o().getProject(e);return r?{i:o().insertData(r.id,t.c,t.k,t.v,t.m).id}:{e:"not found"}},"GET /d":t=>{const e=t.p,r=o().getProject(e);if(!r)return{e:"not found"};const n=_(t.l,20,100);return o().queryData(r.id,t.c,n).map(s=>({k:s.key,v:Z(s.value,100)}))},"GET /d/agg":t=>{const e=t.p,r=o().getProject(e);if(!r)return{e:"not found"};const n=t.c;if(!n)return{e:"c (category) required"};const s=t.stack_key,a=t.scanner,l=_(t.l,1e3,1e4),c={};for(const i of o().queryData(r.id,n,l)){let u;try{u=JSON.parse(i.value)}catch{continue}if(s&&u.stack_key!==s||a&&u.scanner!==a)continue;const p=String(u.scanner??""),d=String(u.payload_hash??"");if(!p||!d)continue;const m=`${p}:${d}`,f=c[m]??{s:p,ph:d,sk:String(u.stack_key??""),h:0,t:0};f.t+=1,u.hit&&(f.h+=1),c[m]=f}return Object.values(c).map(i=>({...i,r:i.t>0?i.h/i.t:0})).sort((i,u)=>u.r-i.r||u.h-i.h)},"POST /batch":t=>{const e=t.ops;if(!e||!Array.isArray(e))return{e:"ops required"};if(e.length>j)return{e:`max ${j} ops per batch`};const r=performance.now();return{r:e.map(s=>{const a=`${s.m} ${s.r}`,l=X[a];if(!l)return{e:"unknown"};try{return{d:l(s.a||{})}}catch{return{e:"op failed"}}}),ms:Math.round(performance.now()-r)}},"POST /write":t=>mt({db:o(),artifacts:A(),truths:Ot(),failures:gt()},t),"GET /syms":t=>{const e=String(t.q??"").slice(0,200);if(!e)return[];const r=_(t.limit,20,200),n=o().getDatabase();try{return n.prepare(`
3
3
  SELECT symbol, kind, language, file_path, line, signature, project_id
4
4
  FROM symbol_index
5
5
  WHERE symbol LIKE ?
6
6
  ORDER BY project_id, file_path, line
7
7
  LIMIT ?
8
- `).all(`%${e}%`,r)}catch{return[]}},"GET /failures":t=>{const e=String(t.target??"").slice(0,200),r=S(t.limit,10,100),n=o().getDatabase();try{return n.prepare(`
8
+ `).all(`%${e}%`,r)}catch{return[]}},"GET /failures":t=>{const e=String(t.target??"").slice(0,200),r=_(t.limit,10,100),n=o().getDatabase();try{return n.prepare(`
9
9
  SELECT id, scope, target, description, why_failed, occurrences,
10
10
  severity, last_seen
11
11
  FROM failure_patterns
12
12
  WHERE resolved = 0 AND (target = ? OR target LIKE ?)
13
13
  ORDER BY occurrences DESC, last_seen DESC
14
14
  LIMIT ?
15
- `).all(e,`%${e}%`,r)}catch{return[]}},"GET /truths":t=>{const e=String(t.q??"").slice(0,200),r=S(t.limit,5,50);if(!e)return[];const n=o().getDatabase();try{return n.prepare(`
15
+ `).all(e,`%${e}%`,r)}catch{return[]}},"GET /truths":t=>{const e=String(t.q??"").slice(0,200),r=_(t.limit,5,50);if(!e)return[];const n=o().getDatabase();try{return n.prepare(`
16
16
  SELECT category, key, value, rationale, confidence, ttl_days
17
17
  FROM ground_truths
18
18
  WHERE is_current = 1
19
19
  AND (key LIKE ? OR value LIKE ? OR rationale LIKE ?)
20
20
  ORDER BY confidence DESC
21
21
  LIMIT ?
22
- `).all(`%${e}%`,`%${e}%`,`%${e}%`,r)}catch{return[]}},"GET /audit":t=>{const e=S(t.limit,50,500),r=t.kind,n=o().getDatabase();try{return r?n.prepare("SELECT * FROM audit_log WHERE event_kind = ? ORDER BY id DESC LIMIT ?").all(r,e):n.prepare("SELECT * FROM audit_log ORDER BY id DESC LIMIT ?").all(e)}catch{return[]}},"GET /sync/push":t=>{const e=t.since,r=S(t.limit,500,5e3),n=o().getDatabase(),s=[],a=e??"1970-01-01",u=[["session","sessions","created_at"],["quest","quests","created_at"],["truth","ground_truths","updated_at"],["artifact","memory_artifacts","last_accessed_at"],["edge","decision_edges","created_at"]],c=(()=>{try{return n.prepare("PRAGMA table_info(projects)").all().some(l=>l.name==="sync_policy")?"AND (project_id IS NULL OR project_id IN (SELECT id FROM projects WHERE sync_policy = 'team'))":""}catch{return""}})();for(const[i,l,m]of u){if(s.length>=r)break;try{const d=n.prepare(`SELECT * FROM ${l}
23
- WHERE is_shared = 1 ${c} AND ${m} > ?
24
- ORDER BY ${m} ASC
25
- LIMIT ?`).all(a,Math.max(1,r-s.length));for(const p of d)s.push({kind:i,id:p.id,project_id:p.project_id??null,updated_at:p[m]??null,payload:p})}catch{}}return{rows:s,count:s.length,cursor:new Date().toISOString()}},"GET /events":t=>{if(!o().liveMemoryEnabled())return{e:"live memory disabled",disabled:1};const e=P(t.project??t.p);if(!e)return{e:"not found"};const r=Y(void 0,t.since),n=S(t.limit??t.l,100,1e3),a=t.shared==="1"||t.shared==="true"?o().eventsForPush(e.id,r,n):o().eventsSince(e.id,r,n),u=a.length?a[a.length-1].cursor:r;return{project:e.name,cursor:u,count:a.length,events:a}},"POST /events":t=>{if(!o().liveMemoryEnabled())return{e:"live memory disabled",disabled:1};const e=P(t.project??t.p);if(!e)return{e:"not found"};const r=Array.isArray(t.events)?t.events:t.event?[t.event]:[];if(r.length===0)return{e:"events[] required"};if(r.length>b)return{e:`max ${b} events per request`};let n=0,s=0,a=0;for(const u of r){const c=o().ingestRemoteEvent(e.id,u);c==="inserted"?n++:c==="echo"?a++:s++}return n>0&&E.invalidate("ctx"),{project:e.name,inserted:n,duplicate:s,echo:a}},"GET /stats":()=>{const{result:t,ms:e}=H(()=>o().getStats());return{...t,ms:e,cache:E.stats()}},"GET /health":()=>({ok:1,ts:Date.now()}),"GET /auth/status":()=>{const t=D();return{auth:t.requireAuth?1:0,origins:t.allowedOrigins.length}},"GET /ui/stats":()=>{const t=o().getDatabase(),e=t.prepare("SELECT COUNT(*) as c FROM projects").get().c,r=t.prepare("SELECT COUNT(*) as c FROM sessions").get().c,n=t.prepare("SELECT COUNT(*) as c FROM quests WHERE status IN ('pending','in_progress')").get().c,s=t.prepare("SELECT COUNT(*) as c FROM data_lake").get().c,a=t.prepare("SELECT COUNT(*) as c FROM memory_artifacts WHERE needs_review = 0").get().c,u=t.prepare("SELECT COUNT(*) as c FROM memory_artifacts WHERE needs_review = 1").get().c,c=t.prepare("SELECT COUNT(*) as c FROM ground_truths WHERE is_current = 1").get().c,i=t.prepare(`
22
+ `).all(`%${e}%`,`%${e}%`,`%${e}%`,r)}catch{return[]}},"GET /routing":t=>{const e=String(t.task_type??t.t??"").slice(0,200).trim();if(!e)return{e:"task_type required"};const r=_(t.limit,10,100);let n;const s=t.p;if(s){const c=o().getProject(s);if(!c)return{e:"not found"};n=c.id}const a=t.since_days!=null?Number(t.since_days):void 0;return o().recallRouting(e,{projectId:n,limit:r,sinceDays:Number.isFinite(a)?a:void 0}).map(c=>({m:c.model_id,tools:c.tool_names,runs:c.runs,ok:c.successes,fail:c.failures,rate:Math.round(c.success_rate*1e3)/1e3,ms:c.avg_latency_ms,last:c.last_ts}))},"POST /routing":t=>{const e=String(t.task_type??"").slice(0,200).trim(),r=String(t.model_id??"").slice(0,200).trim();if(!e)return{e:"task_type required"};if(!r)return{e:"model_id required"};if(t.success===void 0||t.success===null)return{e:"success required"};let n;const s=t.p;if(s){const i=o().getProject(s);i&&(n=i.id)}const a=Array.isArray(t.tool_names)?t.tool_names.map(i=>String(i)):t.tool_names!=null?String(t.tool_names):null,l=t.latency_ms!=null?Number(t.latency_ms):null,c=t.success===!0||t.success===1||t.success==="1"||t.success==="true";try{return{i:o().recordRouting({projectId:n,taskType:e,modelId:r,toolNames:a,success:c,latencyMs:Number.isFinite(l)?l:null})}}catch(i){return{e:i.message}}},"GET /audit":t=>{const e=_(t.limit,50,500),r=t.kind,n=o().getDatabase();try{return r?n.prepare("SELECT * FROM audit_log WHERE event_kind = ? ORDER BY id DESC LIMIT ?").all(r,e):n.prepare("SELECT * FROM audit_log ORDER BY id DESC LIMIT ?").all(e)}catch{return[]}},"GET /sync/push":t=>{const e=t.since,r=_(t.limit,500,5e3),n=o().getDatabase(),s=[],a=e??"1970-01-01",l=[["session","sessions","created_at"],["quest","quests","created_at"],["truth","ground_truths","updated_at"],["artifact","memory_artifacts","last_accessed_at"],["edge","decision_edges","created_at"]],c=(()=>{try{return n.prepare("PRAGMA table_info(projects)").all().some(u=>u.name==="sync_policy")?"AND (project_id IS NULL OR project_id IN (SELECT id FROM projects WHERE sync_policy = 'team'))":""}catch{return""}})();for(const[i,u,p]of l){if(s.length>=r)break;try{const d=n.prepare(`SELECT * FROM ${u}
23
+ WHERE is_shared = 1 ${c} AND ${p} > ?
24
+ ORDER BY ${p} ASC
25
+ LIMIT ?`).all(a,Math.max(1,r-s.length));for(const m of d)s.push({kind:i,id:m.id,project_id:m.project_id??null,updated_at:m[p]??null,payload:m})}catch{}}return{rows:s,count:s.length,cursor:new Date().toISOString()}},"GET /events":t=>{if(!o().liveMemoryEnabled())return{e:"live memory disabled",disabled:1};const e=P(t.project??t.p);if(!e)return{e:"not found"};const r=J(void 0,t.since),n=_(t.limit??t.l,100,1e3),a=t.shared==="1"||t.shared==="true"?o().eventsForPush(e.id,r,n):o().eventsSince(e.id,r,n),l=a.length?a[a.length-1].cursor:r;return{project:e.name,cursor:l,count:a.length,events:a}},"POST /events":t=>{if(!o().liveMemoryEnabled())return{e:"live memory disabled",disabled:1};const e=P(t.project??t.p);if(!e)return{e:"not found"};const r=Array.isArray(t.events)?t.events:t.event?[t.event]:[];if(r.length===0)return{e:"events[] required"};if(r.length>j)return{e:`max ${j} events per request`};let n=0,s=0,a=0;for(const l of r){const c=o().ingestRemoteEvent(e.id,l);c==="inserted"?n++:c==="echo"?a++:s++}return n>0&&h.invalidate("ctx"),{project:e.name,inserted:n,duplicate:s,echo:a}},"GET /stats":()=>{const{result:t,ms:e}=G(()=>o().getStats());return{...t,ms:e,cache:h.stats()}},"GET /health":()=>({ok:1,ts:Date.now()}),"GET /auth/status":()=>{const t=D();return{auth:t.requireAuth?1:0,origins:t.allowedOrigins.length}},"GET /ui/stats":()=>{const t=o().getDatabase(),e=t.prepare("SELECT COUNT(*) as c FROM projects").get().c,r=t.prepare("SELECT COUNT(*) as c FROM sessions").get().c,n=t.prepare("SELECT COUNT(*) as c FROM quests WHERE status IN ('pending','in_progress')").get().c,s=t.prepare("SELECT COUNT(*) as c FROM data_lake").get().c,a=t.prepare("SELECT COUNT(*) as c FROM memory_artifacts WHERE needs_review = 0").get().c,l=t.prepare("SELECT COUNT(*) as c FROM memory_artifacts WHERE needs_review = 1").get().c,c=t.prepare("SELECT COUNT(*) as c FROM ground_truths WHERE is_current = 1").get().c,i=t.prepare(`
26
26
  SELECT date, summary, objectives FROM sessions
27
27
  ORDER BY created_at DESC LIMIT 8
28
- `).all();return{projects:e,sessions:r,active_quests:n,data_points:s,artifacts:a,review_queue:u,truths:c,recent_sessions:i}},"GET /ui/memories":t=>{const e=o().getDatabase(),r=Math.max(1,parseInt(String(t.page||"1"),10)),n=Math.min(100,Math.max(1,parseInt(String(t.limit||"20"),10))),s=t.kind?String(t.kind):"",a=t.search?String(t.search):"",u=(r-1)*n;let c,i,l,m;if(a){const f=W(a);s?(c=`
28
+ `).all();return{projects:e,sessions:r,active_quests:n,data_points:s,artifacts:a,review_queue:l,truths:c,recent_sessions:i}},"GET /ui/memories":t=>{const e=o().getDatabase(),r=Math.max(1,parseInt(String(t.page||"1"),10)),n=Math.min(100,Math.max(1,parseInt(String(t.limit||"20"),10))),s=t.kind?String(t.kind):"",a=t.search?String(t.search):"",l=(r-1)*n;let c,i,u,p;if(a){const f=W(a);s?(c=`
29
29
  SELECT ma.*, p.name AS project_name
30
30
  FROM memory_artifacts ma
31
31
  JOIN memory_artifacts_fts fts ON fts.rowid = ma.id
@@ -36,7 +36,7 @@ import Q from"http";import{WyrmDB as F}from"./database.js";import{cache as E,est
36
36
  SELECT COUNT(*) as c FROM memory_artifacts ma
37
37
  JOIN memory_artifacts_fts fts ON fts.rowid = ma.id
38
38
  WHERE memory_artifacts_fts MATCH ? AND ma.kind = ?
39
- AND ma.supersedes_id IS NULL`,l=[f,s,n,u],m=[f,s]):(c=`
39
+ AND ma.supersedes_id IS NULL`,u=[f,s,n,l],p=[f,s]):(c=`
40
40
  SELECT ma.*, p.name AS project_name
41
41
  FROM memory_artifacts ma
42
42
  JOIN memory_artifacts_fts fts ON fts.rowid = ma.id
@@ -45,17 +45,17 @@ import Q from"http";import{WyrmDB as F}from"./database.js";import{cache as E,est
45
45
  ORDER BY ma.confidence DESC LIMIT ? OFFSET ?`,i=`
46
46
  SELECT COUNT(*) as c FROM memory_artifacts ma
47
47
  JOIN memory_artifacts_fts fts ON fts.rowid = ma.id
48
- WHERE memory_artifacts_fts MATCH ? AND ma.supersedes_id IS NULL`,l=[f,n,u],m=[f])}else s?(c=`
48
+ WHERE memory_artifacts_fts MATCH ? AND ma.supersedes_id IS NULL`,u=[f,n,l],p=[f])}else s?(c=`
49
49
  SELECT ma.*, p.name AS project_name
50
50
  FROM memory_artifacts ma
51
51
  LEFT JOIN projects p ON ma.project_id = p.id
52
52
  WHERE ma.kind = ? AND ma.supersedes_id IS NULL
53
- ORDER BY ma.confidence DESC LIMIT ? OFFSET ?`,i="SELECT COUNT(*) as c FROM memory_artifacts WHERE kind = ? AND supersedes_id IS NULL",l=[s,n,u],m=[s]):(c=`
53
+ ORDER BY ma.confidence DESC LIMIT ? OFFSET ?`,i="SELECT COUNT(*) as c FROM memory_artifacts WHERE kind = ? AND supersedes_id IS NULL",u=[s,n,l],p=[s]):(c=`
54
54
  SELECT ma.*, p.name AS project_name
55
55
  FROM memory_artifacts ma
56
56
  LEFT JOIN projects p ON ma.project_id = p.id
57
57
  WHERE ma.supersedes_id IS NULL
58
- ORDER BY ma.confidence DESC LIMIT ? OFFSET ?`,i="SELECT COUNT(*) as c FROM memory_artifacts WHERE supersedes_id IS NULL",l=[n,u],m=[]);const d=e.prepare(c).all(...l),p=e.prepare(i).get(...m).c;return{items:d,total:p,page:r,limit:n}},"GET /ui/quests":()=>{const e=o().getDatabase().prepare(`
58
+ ORDER BY ma.confidence DESC LIMIT ? OFFSET ?`,i="SELECT COUNT(*) as c FROM memory_artifacts WHERE supersedes_id IS NULL",u=[n,l],p=[]);const d=e.prepare(c).all(...u),m=e.prepare(i).get(...p).c;return{items:d,total:m,page:r,limit:n}},"GET /ui/quests":()=>{const e=o().getDatabase().prepare(`
59
59
  SELECT q.id, q.title, q.status, q.priority, p.name AS project_name
60
60
  FROM quests q
61
61
  LEFT JOIN projects p ON q.project_id = p.id
@@ -66,15 +66,16 @@ import Q from"http";import{WyrmDB as F}from"./database.js";import{cache as E,est
66
66
  LEFT JOIN projects p ON gt.project_id = p.id
67
67
  WHERE gt.is_current = 1
68
68
  ORDER BY gt.updated_at DESC LIMIT ? OFFSET ?
69
- `).all(n,s),u=e.prepare("SELECT COUNT(*) as c FROM ground_truths WHERE is_current = 1").get().c;return{items:a.map(i=>({...i,staleness:at(i)})),total:u,page:r,limit:n}},"GET /ui/review":()=>({items:o().getDatabase().prepare(`
69
+ `).all(n,s),l=e.prepare("SELECT COUNT(*) as c FROM ground_truths WHERE is_current = 1").get().c;return{items:a.map(i=>({...i,staleness:ut(i)})),total:l,page:r,limit:n}},"GET /ui/review":()=>({items:o().getDatabase().prepare(`
70
70
  SELECT ma.*, p.name AS project_name
71
71
  FROM memory_artifacts ma
72
72
  LEFT JOIN projects p ON ma.project_id = p.id
73
73
  WHERE ma.needs_review = 1
74
74
  ORDER BY ma.created_at DESC
75
- `).all()}),"GET /ui/account":()=>{const t=U(o().getDatabasePath());try{const e=_(t,"license.json");if(y(e)){const r=JSON.parse(R(e,"utf-8")),n=B(r);return{account:r.license&&r.license.issued_to||"unknown",tier:n.valid?n.tier:"free",valid:!!n.valid,expires:n.expiresAt||null,readonly:T}}}catch{}try{const e=_(t,"cloud.json");if(y(e))return{account:JSON.parse(R(e,"utf-8")).email||"Local",tier:"free",valid:!1,expires:null,readonly:T}}catch{}return{account:"Local",tier:"free",valid:!1,expires:null,readonly:T}},"GET /ui/impact":()=>{const t=o().getDatabase(),e=r=>{try{return t.prepare(r).get()?.n||0}catch{return 0}};return{failures_blocked:e("SELECT COALESCE(SUM(occurrences),0) AS n FROM failure_patterns"),tokens_saved:e("SELECT COALESCE(SUM(estimated_tokens),0) AS n FROM token_savings_log"),memories:e("SELECT COUNT(*) AS n FROM memory_artifacts WHERE supersedes_id IS NULL"),memories_week:e("SELECT COUNT(*) AS n FROM memory_artifacts WHERE created_at >= datetime('now','-7 days')"),truths:e("SELECT COUNT(*) AS n FROM ground_truths WHERE is_current = 1"),sessions:e("SELECT COUNT(*) AS n FROM sessions"),quests_completed:e("SELECT COUNT(*) AS n FROM quests WHERE status = 'completed'"),skills:e("SELECT COUNT(*) AS n FROM skills"),projects:e("SELECT COUNT(*) AS n FROM projects")}},"GET /ui/memory":t=>{const e=o().getDatabase(),r=parseInt(String(t&&t.id||"0"),10);if(!r)return{item:null};try{return{item:e.prepare(`SELECT ma.*, p.name AS project_name
75
+ `).all()}),"GET /ui/account":()=>{const t=x(o().getDatabasePath());try{const e=y(t,"license.json");if(S(e)){const r=JSON.parse(R(e,"utf-8")),n=Y(r);return{account:r.license&&r.license.issued_to||"unknown",tier:n.valid?n.tier:"free",valid:!!n.valid,expires:n.expiresAt||null,readonly:T}}}catch{}try{const e=y(t,"cloud.json");if(S(e))return{account:JSON.parse(R(e,"utf-8")).email||"Local",tier:"free",valid:!1,expires:null,readonly:T}}catch{}return{account:"Local",tier:"free",valid:!1,expires:null,readonly:T}},"GET /ui/impact":()=>{const t=o().getDatabase(),e=r=>{try{return t.prepare(r).get()?.n||0}catch{return 0}};return{failures_blocked:e("SELECT COALESCE(SUM(occurrences),0) AS n FROM failure_patterns"),tokens_saved:e("SELECT COALESCE(SUM(estimated_tokens),0) AS n FROM token_savings_log"),memories:e("SELECT COUNT(*) AS n FROM memory_artifacts WHERE supersedes_id IS NULL"),memories_week:e("SELECT COUNT(*) AS n FROM memory_artifacts WHERE created_at >= datetime('now','-7 days')"),truths:e("SELECT COUNT(*) AS n FROM ground_truths WHERE is_current = 1"),sessions:e("SELECT COUNT(*) AS n FROM sessions"),quests_completed:e("SELECT COUNT(*) AS n FROM quests WHERE status = 'completed'"),skills:e("SELECT COUNT(*) AS n FROM skills"),projects:e("SELECT COUNT(*) AS n FROM projects")}},"GET /ui/memory":t=>{const e=o().getDatabase(),r=parseInt(String(t&&t.id||"0"),10);if(!r)return{item:null};try{return{item:e.prepare(`SELECT ma.*, p.name AS project_name
76
76
  FROM memory_artifacts ma LEFT JOIN projects p ON ma.project_id = p.id
77
- WHERE ma.id = ?`).get(r)||null}}catch{return{item:null}}},"GET /ui/skills":()=>{const t=o().getDatabase();try{const e=t.prepare(`SELECT name, description, category, tier, usage_count, is_active
78
- FROM skills ORDER BY category COLLATE NOCASE, name COLLATE NOCASE`).all();return{items:e,total:e.length}}catch{return{items:[],total:0}}},"GET /ui/homes":()=>{const t=$();let e=o().getDatabasePath();try{e=G(e)}catch{}return{homes:t.map(r=>({...r,active:r.dbPath===e}))}},"POST /ui/switch":t=>{const e=String(t&&t.path||""),r=$().find(n=>n.dbPath===e);if(!r)return{ok:!1,error:"unknown home"};try{return gt(new F(r.dbPath)),{ok:!0,account:r.account,tier:r.tier}}catch(n){return{ok:!1,error:n instanceof Error?n.message:String(n)}}}};function Lt(t,e,r){if(!o().liveMemoryEnabled()){h(e,t,{e:"live memory disabled",disabled:1},503);return}const n=P(r.project??r.p);if(!n){h(e,t,{e:"not found"},404);return}const s=t.socket.remoteAddress||"unknown";if(N>=St){h(e,t,{e:"too many concurrent streams",retry_after:5},503);return}if((O.get(s)??0)>=_t){h(e,t,{e:"too many concurrent streams from this client",retry_after:5},503);return}N++,O.set(s,(O.get(s)??0)+1);let a=Y(t.headers["last-event-id"],r.since);const c=!(s==="127.0.0.1"||s==="::1"||s==="::ffff:127.0.0.1")||r.shared==="1"||r.shared==="true";e.writeHead(200,{...L(t),"Content-Type":"text/event-stream; charset=utf-8","Cache-Control":"no-cache, no-transform",Connection:"keep-alive","X-Accel-Buffering":"no"}),e.write(`retry: 3000
77
+ WHERE ma.id = ?`).get(r)||null}}catch{return{item:null}}},"GET /ui/recall":async t=>{const e=t.search?String(t.search):t.q?String(t.q):"";if(!e)return{items:[],total:0};const r=_(t.limit,6,25),n=t.kind?String(t.kind):void 0,a=(await A().recallHybridGlobal(e,{limit:r,kind:n})).map(l=>({...l.artifact,relevance:Math.round(l.relevance_score*1e3)/1e3,match_type:l.match_type}));return{items:a,total:a.length}},"GET /ui/context":async t=>{const e=t.search?String(t.search):t.q?String(t.q):"";if(!e)return{context:"",items:[],total:0,tokens:0};const r=_(t.limit,10,25),n=_(t.budget,900,2400),s=await A().recallHybridGlobal(e,{limit:r}),a=[],l=[];let c=0;for(const i of s){const u=i.artifact,p=String(u.problem??u.title??u.summary??u.key??u.kind??"").trim(),d=String(u.validated_fix??u.content??u.body??u.value??u.problem??"").replace(/\s+/g," ").trim(),m=`- ${p}${d?": "+d.slice(0,320):""}`,f=Math.ceil(m.length/4);c+f<=n?(a.push(m),c+=f):a.push(`- ${p.slice(0,64)} \u2026 (recall for detail)`),l.push({...u,relevance:Math.round(i.relevance_score*1e3)/1e3,match_type:i.match_type})}return{context:a.join(`
78
+ `),tokens:c,items:l,total:l.length}},"GET /ui/skills":()=>{const t=o().getDatabase();try{const e=t.prepare(`SELECT name, description, category, tier, usage_count, is_active
79
+ FROM skills ORDER BY category COLLATE NOCASE, name COLLATE NOCASE`).all();return{items:e,total:e.length}}catch{return{items:[],total:0}}},"GET /ui/homes":()=>{const t=Q();let e=o().getDatabasePath();try{e=U(e)}catch{}return{homes:t.map(r=>({...r,active:r.dbPath===e}))}},"POST /ui/switch":t=>{const e=String(t&&t.path||""),r=Q().find(n=>n.dbPath===e);if(!r)return{ok:!1,error:"unknown home"};try{return Rt(new H(r.dbPath)),{ok:!0,account:r.account,tier:r.tier}}catch(n){return{ok:!1,error:n instanceof Error?n.message:String(n)}}}};function Lt(t,e,r){if(!o().liveMemoryEnabled()){E(e,t,{e:"live memory disabled",disabled:1},503);return}const n=P(r.project??r.p);if(!n){E(e,t,{e:"not found"},404);return}const s=t.socket.remoteAddress||"unknown";if(k>=St){E(e,t,{e:"too many concurrent streams",retry_after:5},503);return}if((O.get(s)??0)>=Tt){E(e,t,{e:"too many concurrent streams from this client",retry_after:5},503);return}k++,O.set(s,(O.get(s)??0)+1);let a=J(t.headers["last-event-id"],r.since);const c=!(s==="127.0.0.1"||s==="::1"||s==="::ffff:127.0.0.1")||r.shared==="1"||r.shared==="true";e.writeHead(200,{...L(t),"Content-Type":"text/event-stream; charset=utf-8","Cache-Control":"no-cache, no-transform",Connection:"keep-alive","X-Accel-Buffering":"no"}),e.write(`retry: 3000
79
80
 
80
- `);let i,l,m=!1;const d=()=>{if(m)return;m=!0,i&&clearInterval(i),l&&clearInterval(l),N--;const f=(O.get(s)??1)-1;f<=0?O.delete(s):O.set(s,f)},p=()=>{if(e.writableEnded){d();return}try{const f=c?o().eventsForPush(n.id,a,200):o().eventsSince(n.id,a,200);for(const k of f)a=k.cursor,e.write(dt(k))}catch{}};p(),i=setInterval(p,1e3),l=setInterval(()=>{try{e.write(mt)}catch{}},25e3),t.on("close",d),e.on("close",d),e.on("error",d)}const w=Q.createServer(async(t,e)=>{if(!z(t,e).error)try{const n=new URL(t.url||"/",`http://localhost:${C}`);if(T&&pt(t.method||"GET",n.pathname)){h(e,t,{e:"read-only mode",readonly:1},403);return}let s;try{s=await vt(t)}catch(d){if(d.message==="Invalid JSON"){h(e,t,{e:"Invalid JSON body"},400);return}throw d}if(n.searchParams.forEach((d,p)=>s[p]=d),t.method==="GET"&&n.pathname==="/dragon-mark.svg"){try{if(!v&&y(x)&&(v=R(x)),v){e.writeHead(200,{...L(t),"Content-Type":"image/svg+xml","Cache-Control":"public, max-age=86400","Content-Length":v.length}),e.end(v);return}}catch{}h(e,t,{e:"not found"},404);return}if(t.method==="GET"&&n.pathname==="/ui"){Rt(e,t,nt());return}if(t.method==="GET"&&n.pathname==="/events/stream"){Lt(t,e,s);return}const a=n.pathname.match(/^\/ui\/review\/(\d+)\/(approve|reject)$/);if(t.method==="POST"&&a){const d=parseInt(a[1],10),p=a[2],f=o().getDatabase();p==="approve"?f.prepare("UPDATE memory_artifacts SET needs_review = 0 WHERE id = ?").run(d):f.prepare("DELETE FROM memory_artifacts WHERE id = ?").run(d),h(e,t,{ok:!0});return}const u=`${t.method} ${n.pathname}`,c=J[u];if(!c){if(n.pathname==="/"){h(e,t,{wyrm:"3.0",auth:D().requireAuth?"required":"disabled",tip:"GET /c for quick context"});return}h(e,t,{e:"not found"},404);return}const i=ft({header:t.headers["wyrm-actor"]}),{result:l,ms:m}=H(()=>Et(i,()=>c(s)));e.setHeader("X-Time-Ms",String(m)),h(e,t,l)}catch(n){const s=ut(n);if(s!==null){const a=lt("http",s);e.setHeader("Retry-After",String(Math.ceil(a.error.retry_after_ms/1e3))),h(e,t,a,503);return}A.error("Fast API request failed",{path:t.url,error:n.message}),h(e,t,{e:"Internal server error"},500)}}),q=()=>{w.close(()=>{try{g?.close()}catch{}process.exit(0)})};process.on("SIGINT",q),process.on("SIGTERM",q);import{fileURLToPath as Ct}from"url";const bt=Ct(import.meta.url);if(process.argv[1]===bt){const t=process.env.WYRM_BIND_HOST||"127.0.0.1";w.listen(C,t,()=>{A.info("Wyrm Fast API started",{port:C,host:t}),console.log(`\u{F115D} Wyrm Fast API on ${t}:${C}`),console.log(` Auth: ${D().requireAuth?"required":"disabled"}`),T&&console.log(" Read-only: writes + off-box egress blocked (safe to expose)"),t!=="127.0.0.1"&&t!=="::1"&&t!=="localhost"&&(A.warn("Wyrm Fast API bound to a NON-loopback host \u2014 reachable beyond localhost; ensure auth is required",{host:t}),console.log(` \u26A0 bound to ${t}: reachable beyond localhost \u2014 make sure auth is required`),T||console.log(" \u26A0 not in read-only mode; set WYRM_UI_READONLY=1 for a public bind"))})}export{w as server};
81
+ `);let i,u,p=!1;const d=()=>{if(p)return;p=!0,i&&clearInterval(i),u&&clearInterval(u),k--;const f=(O.get(s)??1)-1;f<=0?O.delete(s):O.set(s,f)},m=()=>{if(e.writableEnded){d();return}try{const f=c?o().eventsForPush(n.id,a,200):o().eventsSince(n.id,a,200);for(const F of f)a=F.cursor,e.write(pt(F))}catch{}};m(),i=setInterval(m,1e3),u=setInterval(()=>{try{e.write(ft)}catch{}},25e3),t.on("close",d),e.on("close",d),e.on("error",d)}const w=V.createServer(async(t,e)=>{if(!tt(t,e).error)try{const n=new URL(t.url||"/",`http://localhost:${C}`);if(T&&Et(t.method||"GET",n.pathname)){E(e,t,{e:"read-only mode",readonly:1},403);return}let s;try{s=await bt(t)}catch(d){if(d.message==="Invalid JSON"){E(e,t,{e:"Invalid JSON body"},400);return}throw d}if(n.searchParams.forEach((d,m)=>s[m]=d),t.method==="GET"&&n.pathname==="/dragon-mark.svg"){try{if(!v&&S(B)&&(v=R(B)),v){e.writeHead(200,{...L(t),"Content-Type":"image/svg+xml","Cache-Control":"public, max-age=86400","Content-Length":v.length}),e.end(v);return}}catch{}E(e,t,{e:"not found"},404);return}if(t.method==="GET"&&n.pathname==="/ui"){vt(e,t,at());return}if(t.method==="GET"&&n.pathname==="/events/stream"){Lt(t,e,s);return}const a=n.pathname.match(/^\/ui\/review\/(\d+)\/(approve|reject)$/);if(t.method==="POST"&&a){const d=parseInt(a[1],10),m=a[2],f=o().getDatabase();m==="approve"?f.prepare("UPDATE memory_artifacts SET needs_review = 0 WHERE id = ?").run(d):f.prepare("DELETE FROM memory_artifacts WHERE id = ?").run(d),E(e,t,{ok:!0});return}const l=`${t.method} ${n.pathname}`,c=X[l];if(!c){if(n.pathname==="/"){E(e,t,{wyrm:"3.0",auth:D().requireAuth?"required":"disabled",tip:"GET /c for quick context"});return}E(e,t,{e:"not found"},404);return}const i=ht({header:t.headers["wyrm-actor"]}),{result:u,ms:p}=G(()=>_t(i,()=>c(s)));e.setHeader("X-Time-Ms",String(p)),u instanceof Promise?u.then(d=>E(e,t,d)).catch(d=>{const m=$(d);if(m!==null){const f=q("http",m);e.setHeader("Retry-After",String(Math.ceil(f.error.retry_after_ms/1e3))),E(e,t,f,503);return}N.error("Fast API request failed",{path:t.url,error:d.message}),E(e,t,{e:"Internal server error"},500)}):E(e,t,u)}catch(n){const s=$(n);if(s!==null){const a=q("http",s);e.setHeader("Retry-After",String(Math.ceil(a.error.retry_after_ms/1e3))),E(e,t,a,503);return}N.error("Fast API request failed",{path:t.url,error:n.message}),E(e,t,{e:"Internal server error"},500)}}),K=()=>{w.close(()=>{try{g?.close()}catch{}process.exit(0)})};process.on("SIGINT",K),process.on("SIGTERM",K);import{fileURLToPath as Ct}from"url";const jt=Ct(import.meta.url);if(process.argv[1]===jt){const t=process.env.WYRM_BIND_HOST||"127.0.0.1";w.listen(C,t,()=>{N.info("Wyrm Fast API started",{port:C,host:t}),console.log(`\u{F115D} Wyrm Fast API on ${t}:${C}`),console.log(` Auth: ${D().requireAuth?"required":"disabled"}`),T&&console.log(" Read-only: writes + off-box egress blocked (safe to expose)"),t!=="127.0.0.1"&&t!=="::1"&&t!=="localhost"&&(N.warn("Wyrm Fast API bound to a NON-loopback host \u2014 reachable beyond localhost; ensure auth is required",{host:t}),console.log(` \u26A0 bound to ${t}: reachable beyond localhost \u2014 make sure auth is required`),T||console.log(" \u26A0 not in read-only mode; set WYRM_UI_READONLY=1 for a public bind"))})}export{w as server};
@@ -1 +1 @@
1
- {"version":3,"file":"http-fast.js","sourceRoot":"","sources":["../src/http-fast.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"http-fast.js","sourceRoot":"","sources":["../src/http-fast.ts"],"names":[],"mappings":"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"}
package/dist/index.js CHANGED
@@ -1,3 +1,3 @@
1
1
  #!/usr/bin/env node
2
- import{Server as _t}from"@modelcontextprotocol/sdk/server/index.js";import{StdioServerTransport as yt}from"@modelcontextprotocol/sdk/server/stdio.js";import{CallToolRequestSchema as dt,GetPromptRequestSchema as ft,ListPromptsRequestSchema as gt,ListResourcesRequestSchema as ht,ListResourceTemplatesRequestSchema as wt,ListToolsRequestSchema as St,ReadResourceRequestSchema as Rt}from"@modelcontextprotocol/sdk/types.js";import{WyrmDB as kt}from"./database.js";import{ValidationError as q}from"./validate.js";import{validationErrorResponse as U,cacheKeyFor as vt}from"./render.js";import{handlerRegistry as S,registryToolDefs as Et,applyDeclaredOutputSchemas as bt,buildStableToolList as Dt}from"./handlers/registry.js";import{resolveActorEnvelope as V,runWithActor as $,getActor as Ct,runWithReadCacheKey as Tt}from"./handlers/boundary.js";import{resolveAliasCall as Ot}from"./handlers/aliases.js";import{resolveShimCall as Mt,shimToolDefs as xt}from"./handlers/shims.js";import{getPromptResult as Wt,wyrmPromptList as It}from"./handlers/prompts.js";import{listWyrmResources as At,listWyrmResourceTemplates as Pt,readWyrmResource as Nt,ResourceNotFoundError as Lt}from"./handlers/resources.js";import{TaskStore as Yt,resolveTaskGate as jt,runLongOp as Ft}from"./tasks.js";import{registerTaskHandlers as Bt,finalizeEarly as Ht,unwrapOutcome as Kt,applyAdminGate as Gt}from"./tasks-dispatch.js";import{ReplicationManager as qt}from"./replication-daemon.js";import{WYRM_SERVER_INSTRUCTIONS as Ut}from"./priority-embed.js";import{WyrmSync as Vt}from"./sync.js";import{cache as R,estimateTokens as I}from"./performance.js";import{readFileSync as J,unlinkSync as $t,existsSync as z}from"fs";import{join as Jt}from"path";import{initializeOrchestrator as zt}from"./auto-orchestrator.js";import{getCrypto as Xt,initializeCrypto as Qt}from"./crypto.js";import{createVectorStore as Zt}from"./vectors.js";import{IndexingPipeline as te}from"./indexer.js";import{KnowledgeGraph as ee}from"./knowledge-graph.js";import{MemoryArtifacts as oe}from"./memory-artifacts.js";import{GroundTruths as re,ReasoningScaffolds as se}from"./intelligence.js";import{classifyCapture as Wr}from"./capture.js";import{initializeLicense as ne,getLicenseInfo as ae}from"./license.js";import{activationSatisfied as ie,activationGateResult as ce}from"./activation.js";import{WyrmAnalytics as me}from"./analytics.js";import{WyrmCloudBackup as le}from"./cloud-backup.js";import{CloudSyncManager as pe}from"./cloud-sync.js";import{FailurePatterns as ue}from"./failure-patterns.js";import{AgentPresence as _e}from"./presence.js";import{Causality as ye}from"./causality.js";import{SymbolGraph as de}from"./symbols.js";import{HourLedger as fe}from"./hours.js";import{ToolAnalytics as ge}from"./tool-analytics.js";import{Rehydration as he}from"./rehydration.js";import{AuditLog as we,loadAuditSignerFromEnv as Se}from"./audit.js";import{retryableWriteCause as Re,busyErrorResponse as ke}from"./sqlite-busy.js";import{SubAgent as ve}from"./sub-agent.js";import{Federation as Ee}from"./federation.js";import{Goals as be}from"./goals.js";import{OutboundMcpClient as De}from"./mcp-client.js";import{AgentLoop as Ce}from"./agent-loop.js";import{makeInternalDispatch as Te}from"./internal-dispatch.js";import{AgentDaemon as Oe}from"./agent-daemon.js";import{emitStartupVersionBanner as Me}from"./version-check.js";import{resolveProfile as xe,filterByProfile as We}from"./tool-profiles.js";import{annotateTools as Ie,elideDefaultAnnotations as Ae}from"./tool-annotations.js";import{applyDeprecationNotices as Pe,noteDeprecatedToolInvocation as Ne,isHardCliExile as Le,cliExileRedirectResponse as Ye}from"./deprecations.js";import{goldenCapture as g}from"./golden.js";import{makeEstimator as je}from"./token-budget.js";import{makeRunBudgetedContextBuild as Fe}from"./context-build-budgeted.js";import{makeRunCompanionBuddy as Be}from"./buddy-runner.js";import{loadWeightsFromEnv as He}from"./context-ranking.js";import{SessionSeen as Ke}from"./session-seen.js";import{DesignSystem as Ge}from"./design.js";import{fileURLToPath as qe}from"url";import{dirname as Ue,join as X}from"path";import{readFileSync as Ve,existsSync as $e}from"fs";const Je=137;let A=null;function ze(){return A||(A=new Ge(o.getDatabase())),A}const Xe=je(),Qe=He();let P=null;function Q(){return P||(P=new Ke(o.getDatabase())),P}const O=(()=>{try{const t=Ue(qe(import.meta.url));for(const e of[X(t,"..","package.json"),X(t,"..","..","package.json")])if($e(e)){const r=JSON.parse(Ve(e,"utf-8")).version;if(typeof r=="string")return r}}catch{}return"unknown"})(),o=new kt,Ze=new Vt(o),Z=new ee(o.getDatabase()),E=new oe(o.getDatabase()),M=new re(o.getDatabase()),N=new se(o.getDatabase()),L=new ue(o.getDatabase()),Y=new _e(o.getDatabase()),tt=new ye(o.getDatabase()),j=new de(o.getDatabase()),to=new fe(o.getDatabase()),b=new ge(o.getDatabase()),eo=Fe({groundTruths:M,scaffoldLib:N,memory:E,toolAnalytics:b,sessionSeen:Q,tokenEstimator:Xe,rankWeights:Qe}),et=new he(o.getDatabase()),oo=new we(o.getDatabase(),Se()),ro=new ve(o.getDatabase()),ot=new Ee(o.getDatabase()),rt=new be(o.getDatabase()),st={projects:o,goals:rt,getActor:Ct,store:o,raw:()=>o.getDatabase(),memory:E,truths:M,scaffolds:N,failures:L,presence:Y,rehydration:et,graph:Z,symbols:j,vectors:()=>v,indexing:()=>x,cache:R,decrypt:t=>B.maybeDecrypt(t),clientSupportsResources:()=>{const t=u.getClientCapabilities()?.experimental;return!!t&&"resources"in t}},F=new De(o.getDatabase()),so=Be({db:o,mcpClient:F,version:O}),no=new Oe(o.getDatabase()),ao=Te({db:o,failures:L,symbols:j,rehydration:et,causality:tt,presence:Y,federation:ot,memory:E,groundTruths:M}),io=new Ce(o.getDatabase(),F,ao);if(process.env.WYRM_ENCRYPTION_KEY)try{Qt(process.env.WYRM_ENCRYPTION_KEY)}catch(t){console.error("Wyrm: Failed to initialize encryption:",t)}const B=Xt();let v=null,x=null;try{const t=process.env.WYRM_VECTOR_PROVIDER||"auto";if(t!=="none"){v=Zt({provider:t},o.getDatabase()),E.setVectorStore(v);const e=(r,m)=>{try{switch(r){case"session":{const s=o.getSession(m);return s&&[s.objectives,s.completed,s.notes,s.summary].filter(Boolean).join(" ")||null}case"quest":{const s=o.getDatabase().prepare("SELECT * FROM quests WHERE id = ?").get(m);return s&&[s.title,s.description].filter(Boolean).join(" ")||null}case"note":case"context":{const s=o.getDatabase().prepare("SELECT value FROM data_lake WHERE id = ?").all(m);if(!s.length)return null;const _=B.maybeDecrypt(s[0].value);return _.startsWith("ENCRYPTED:")?null:_}default:return null}}catch{return null}};x=new te(o.getDatabase(),v,e,{batchSize:20,maxRetries:3,intervalMs:1e4}),x.start()}}catch(t){console.error("Wyrm: Failed to initialize vector store:",t)}const co=zt({autoOrchestrateEnabled:!0,minConfidenceThreshold:65,maxParallelAgents:6,defaultHaikuBoosting:!0,trackMetrics:!0});ne();const H=ae();H.tier!=="free"&&console.error(`Wyrm: Licensed \u2014 ${H.tier} tier (expires: ${H.expiresAt||"never"})`);try{const t=process.env.HOME||process.env.USERPROFILE||"",e=Jt(t,".wyrm","bundled-skills.json");if(t&&z(e)){const r=JSON.parse(J(e,"utf-8"));let m=0;for(const s of r.skills)try{if(!z(s.path))continue;const l=J(s.path,"utf-8").match(/^---\s*\n([\s\S]*?)\n---/);let a=s.name,d;if(l){const i=l[1].match(/description:\s*\|?\s*\n([\s\S]*?)(?:\nname:|\nmetadata:|\ncategory:|\ntype:|$)/);i&&(a=i[1].split(`
3
- `).map(C=>C.trim()).filter(Boolean).join(" ").slice(0,500));const p=l[1].match(/category:\s*([^\n]+)/);p&&(d=p[1].trim())}o.registerSkill(s.name,a,s.path,d,"Ghost Protocol",void 0,"bundled"),m++}catch{}m>0&&console.error(`Wyrm: Registered ${m} bundled skill(s) on first start.`);try{$t(e)}catch{}}}catch{}const K=new me(o.getDatabase()),nt=new le;process.env.WYRM_R2_ENDPOINT&&process.env.WYRM_R2_ACCESS_KEY&&process.env.WYRM_R2_SECRET_KEY&&nt.configure({endpoint:process.env.WYRM_R2_ENDPOINT,bucket:process.env.WYRM_R2_BUCKET||"wyrm-backups",accessKeyId:process.env.WYRM_R2_ACCESS_KEY,secretAccessKey:process.env.WYRM_R2_SECRET_KEY},process.env.WYRM_ENCRYPTION_KEY);import{fileURLToPath as mo}from"url";import{dirname as lo,join as at}from"path";const po=mo(import.meta.url),it=lo(po),uo=new pe(at(it,"cloud-sync-entrypoint.js")),_o=new qt(at(it,"replication-daemon-entrypoint.js")),k=[],ct=500;function h(t){k.push(t),k.length>ct&&k.splice(0,k.length-ct),K.record({tool:t.tool,tokens_in:t.tokens_in,tokens_out:t.tokens_out,cached:t.cached,ms:t.ms,success:!0,timestamp:t.timestamp})}function yo(t){const e=t?k.slice(-t):k,r=e.filter(i=>i.cached),m=new Map;let s=0,_=0,l=0,a=0;for(const i of e){s+=i.tokens_in,_+=i.tokens_out,a+=i.ms,i.cached&&(l+=i.tokens_out);const p=m.get(i.tool)||{calls:0,tokens:0};p.calls++,p.tokens+=i.tokens_out,m.set(i.tool,p)}const d=[...m.entries()].map(([i,p])=>({tool:i,...p})).sort((i,p)=>p.tokens-i.tokens).slice(0,10);return{totalCalls:e.length,cachedCalls:r.length,cacheHitRate:e.length>0?`${(r.length/e.length*100).toFixed(1)}%`:"0%",totalTokensIn:s,totalTokensOut:_,tokensSaved:l,avgResponseMs:e.length>0?Math.round(a/e.length):0,topTools:d}}const fo=new Map;function go(t,e=!1){return{content:[{type:"text",text:t}]}}const ho=new Set(["wyrm_list_projects","wyrm_project_context","wyrm_global_context","wyrm_all_quests","wyrm_data_query","wyrm_data_categories","wyrm_search","wyrm_stats","wyrm_skill_list","wyrm_skill_get","wyrm_skill_search","wyrm_skill_stats","wyrm_orchestration_config","wyrm_orchestration_stats","wyrm_license","wyrm_analytics_dashboard","wyrm_cost_report","wyrm_entity_search","wyrm_entity_graph","wyrm_entity_path","wyrm_context_build","wyrm_truth_get","wyrm_scaffold_get","wyrm_session_prime"]),mt=new Set(["wyrm_session_start","wyrm_session_update","wyrm_quest_add","wyrm_quest_complete","wyrm_data_insert","wyrm_data_batch_insert","wyrm_set_global","wyrm_scan_projects","wyrm_sync","wyrm_maintenance","wyrm_vector_setup","wyrm_reindex","wyrm_skill_register","wyrm_skill_delete","wyrm_skill_activate","wyrm_skill_deactivate","wyrm_spec_register","wyrm_activate","wyrm_cloud_backup","wyrm_cloud_sync","wyrm_encrypt_setup","wyrm_entity_add","wyrm_entity_link","wyrm_entity_merge","wyrm_remember","wyrm_recall","wyrm_feedback","wyrm_truth_set","wyrm_scaffold_save","wyrm_distill","wyrm_review","wyrm_capture","wyrm_import_git","wyrm_import_pr","wyrm_import_rules","wyrm_inject_prompt","wyrm_prune","wyrm_sync_export","wyrm_sync_import"]),D=new Yt,u=new _t({name:"wyrm",version:O},{capabilities:{tools:{},prompts:{},resources:{},tasks:{list:{},cancel:{},requests:{tools:{call:{}}}}},instructions:Ut}),lt={...st,db:o,sync:Ze,graph:Z,memory:E,groundTruths:M,scaffoldLib:N,failures:L,presence:Y,causality:tt,symbols:j,hours:to,toolAnalytics:b,auditLog:oo,subAgent:ro,federation:ot,goals:rt,mcpClient:F,agentDaemon:no,agentLoop:io,analytics:K,cloudBackup:nt,cloudSyncManager:uo,replicationManager:_o,orchestrator:co,server:u,wyrmCrypto:B,get vectorStore(){return v},get indexingPipeline(){return x},setVectorStore:t=>{v=t},WYRM_PACKAGE_VERSION:O,WYRM_TOOL_COUNT:Je,WRITE_TOOLS:mt,usageLog:k,responseFingerprints:fo,designSystem:ze,sessionSeen:Q,cachedResponse:go,getUsageStats:yo,runCompanionBuddy:so,runBudgetedContextBuild:eo};u.setRequestHandler(St,async()=>{const t=[...Et(),...xt()],e=xe();return{tools:Dt(bt(Pe(Ae(Ie(We(t,e))))))}}),u.setRequestHandler(gt,async()=>({prompts:[...It()]})),u.setRequestHandler(ft,async t=>{const e=t.params.arguments??{},r=V({args:e,meta:t.params._meta,clientName:u.getClientVersion()?.name});return $(r,()=>Wt(t.params.name,e,st))}),u.setRequestHandler(ht,async()=>({resources:At()})),u.setRequestHandler(wt,async()=>({resourceTemplates:Pt()})),u.setRequestHandler(Rt,async t=>{const e=t.params.uri;try{const r=Nt(e,lt),{nextCursor:m,...s}=r;return m?{contents:[s],_meta:{"wyrm/nextCursor":m}}:{contents:[s]}}catch(r){throw r instanceof Lt?new Error(r.message):r}}),Bt(u,D),u.setRequestHandler(dt,async t=>{const{name:e,arguments:r}=t.params;if(!ie())return ce();const m=V({args:r??{},meta:t.params._meta,clientName:u.getClientVersion()?.name});Ne(e);const s=performance.now(),_=JSON.stringify(r||{}),l=I(_);let a,d,i=null;try{const n=Ot(e,r??{});n.via?.kind==="cli-exile"&&(i=n.via),{tool:a,args:d}=Mt(n.tool,n.args)}catch(n){if(n instanceof q){const c=Math.round(performance.now()-s);h({tool:e,tokens_in:l,tokens_out:0,cached:!1,ms:c,timestamp:new Date().toISOString()});const y=U(e,n.field,n.message);return g({tool:e,args:r,meta:t.params._meta,response:y,outcome:"validation_error",ms:c,dispatch:"switch"}),y}throw n}if(i&&Le(i.name)){const n=Math.round(performance.now()-s);h({tool:e,tokens_in:l,tokens_out:0,cached:!1,ms:n,timestamp:new Date().toISOString()});const c=Ye(i.name);return g({tool:e,args:r,meta:t.params._meta,response:c,outcome:"soft_error",ms:n,dispatch:"switch"}),c}const p=jt(u.getClientCapabilities()?.tasks,t.params),C=Gt(D,p,a,n=>{const c=Math.round(performance.now()-s);h({tool:e,tokens_in:l,tokens_out:0,cached:!1,ms:c,timestamp:new Date().toISOString()}),g({tool:e,args:r,meta:t.params._meta,response:n,outcome:"soft_error",ms:c,dispatch:S.has(a)?"registry":"switch"})});if(C!==null)return C;const pt=a===e?_:JSON.stringify(d),W=ho.has(a)?vt(a,pt):null;if(W){const n=R.get(W);if(n){const c=Math.round(performance.now()-s),y=I(JSON.stringify(n));h({tool:e,tokens_in:l,tokens_out:y,cached:!0,ms:c,timestamp:new Date().toISOString()});const f={...n};return g({tool:e,args:r,meta:t.params._meta,response:f,cached:!0,ms:c,dispatch:S.has(a)?"registry":"switch"}),Ht(D,p,a,f)}}if(mt.has(a)){const n=d?.projectPath;n&&R.invalidate(n),R.invalidate("wyrm_list_projects"),R.invalidate("wyrm_global_context"),R.invalidate("wyrm_all_quests"),R.invalidate("wyrm_stats")}let T;const ut=d||{};try{const n=await $(m,async()=>{const G=S.get(a);return G?await Ft(a,p,D,()=>Tt(W,()=>G(ut,lt))):{kind:"inline",result:{content:[{type:"text",text:`Unknown tool: ${a}`}],isError:!0}}}),{wireValue:c,payload:y}=Kt(D,n);T=y;const f=Math.round(performance.now()-s),w=I(JSON.stringify(T));return h({tool:e,tokens_in:l,tokens_out:w,cached:!1,ms:f,timestamp:new Date().toISOString()}),b.log({tool_name:e,args:r,success:!T?.isError,latency_ms:f}),g({tool:e,args:r,meta:t.params._meta,response:T,ms:f,dispatch:S.has(a)?"registry":"switch"}),c}catch(n){const c=Math.round(performance.now()-s);if(n instanceof q){h({tool:e,tokens_in:l,tokens_out:0,cached:!1,ms:c,timestamp:new Date().toISOString()});const w=U(e,n.field,n.message);return g({tool:e,args:r,meta:t.params._meta,response:w,outcome:"validation_error",ms:c,dispatch:S.has(a)?"registry":"switch"}),w}const y=Re(n);if(y!==null){h({tool:e,tokens_in:l,tokens_out:0,cached:!1,ms:c,timestamp:new Date().toISOString()}),b.log({tool_name:e,args:r,success:!1,error_message:`WYRM_BUSY[${y}]: ${String(n).slice(0,400)}`,latency_ms:c});const w=ke(e,y);return g({tool:e,args:r,meta:t.params._meta,response:w,outcome:"error",ms:c,dispatch:S.has(a)?"registry":"switch"}),w}h({tool:e,tokens_in:l,tokens_out:0,cached:!1,ms:c,timestamp:new Date().toISOString()}),b.log({tool_name:e,args:r,success:!1,error_message:String(n).slice(0,500),latency_ms:c});const f={content:[{type:"text",text:`Error: ${n}`}],isError:!0};return g({tool:e,args:r,meta:t.params._meta,response:f,outcome:"error",ms:c,dispatch:S.has(a)?"registry":"switch"}),f}}),process.on("uncaughtException",t=>{try{console.error("Wyrm[uncaughtException]:",t instanceof Error?t.stack:t)}catch{}}),process.on("unhandledRejection",t=>{try{console.error("Wyrm[unhandledRejection]:",t instanceof Error?t.stack:t)}catch{}});async function wo(){const t=new yt;await u.connect(t),Me(o.getDatabase(),O).catch(()=>{});const e=()=>{try{K.shutdown()}catch{}process.exit(0)};process.on("SIGINT",e),process.on("SIGTERM",e)}wo().catch(console.error);export{Wr as classifyCapture};
2
+ import{Server as _t}from"@modelcontextprotocol/sdk/server/index.js";import{StdioServerTransport as yt}from"@modelcontextprotocol/sdk/server/stdio.js";import{CallToolRequestSchema as dt,GetPromptRequestSchema as ft,ListPromptsRequestSchema as gt,ListResourcesRequestSchema as ht,ListResourceTemplatesRequestSchema as wt,ListToolsRequestSchema as St,ReadResourceRequestSchema as Rt}from"@modelcontextprotocol/sdk/types.js";import{WyrmDB as kt,resolveDbPath as vt}from"./database.js";import{ValidationError as q}from"./validate.js";import{validationErrorResponse as U,cacheKeyFor as Et}from"./render.js";import{handlerRegistry as S,registryToolDefs as bt,applyDeclaredOutputSchemas as Dt,buildStableToolList as Ct}from"./handlers/registry.js";import{resolveActorEnvelope as V,runWithActor as $,getActor as Tt,runWithReadCacheKey as Ot}from"./handlers/boundary.js";import{resolveAliasCall as Mt}from"./handlers/aliases.js";import{resolveShimCall as xt,shimToolDefs as Wt}from"./handlers/shims.js";import{getPromptResult as It,wyrmPromptList as Pt}from"./handlers/prompts.js";import{listWyrmResources as At,listWyrmResourceTemplates as Nt,readWyrmResource as Lt,ResourceNotFoundError as Yt}from"./handlers/resources.js";import{TaskStore as jt,resolveTaskGate as Ft,runLongOp as Bt}from"./tasks.js";import{registerTaskHandlers as Ht,finalizeEarly as Kt,unwrapOutcome as Gt,applyAdminGate as qt}from"./tasks-dispatch.js";import{ReplicationManager as Ut}from"./replication-daemon.js";import{WYRM_SERVER_INSTRUCTIONS as Vt}from"./priority-embed.js";import{WyrmSync as $t}from"./sync.js";import{cache as R,estimateTokens as I}from"./performance.js";import{readFileSync as J,unlinkSync as Jt,existsSync as z}from"fs";import{join as zt}from"path";import{initializeOrchestrator as Xt}from"./auto-orchestrator.js";import{getCrypto as Qt,initializeCrypto as Zt}from"./crypto.js";import{createVectorStore as te}from"./vectors.js";import{IndexingPipeline as ee}from"./indexer.js";import{KnowledgeGraph as oe}from"./knowledge-graph.js";import{MemoryArtifacts as re}from"./memory-artifacts.js";import{GroundTruths as se,ReasoningScaffolds as ne}from"./intelligence.js";import{classifyCapture as Ir}from"./capture.js";import{initializeLicense as ae,getLicenseInfo as ie}from"./license.js";import{activationSatisfied as ce,activationGateResult as me}from"./activation.js";import{WyrmAnalytics as le}from"./analytics.js";import{WyrmCloudBackup as pe}from"./cloud-backup.js";import{CloudSyncManager as ue}from"./cloud-sync.js";import{FailurePatterns as _e}from"./failure-patterns.js";import{AgentPresence as ye}from"./presence.js";import{Causality as de}from"./causality.js";import{SymbolGraph as fe}from"./symbols.js";import{HourLedger as ge}from"./hours.js";import{ToolAnalytics as he}from"./tool-analytics.js";import{Rehydration as we}from"./rehydration.js";import{AuditLog as Se,loadAuditSignerFromEnv as Re}from"./audit.js";import{retryableWriteCause as ke,busyErrorResponse as ve}from"./sqlite-busy.js";import{SubAgent as Ee}from"./sub-agent.js";import{Federation as be}from"./federation.js";import{Goals as De}from"./goals.js";import{OutboundMcpClient as Ce}from"./mcp-client.js";import{AgentLoop as Te}from"./agent-loop.js";import{makeInternalDispatch as Oe}from"./internal-dispatch.js";import{AgentDaemon as Me}from"./agent-daemon.js";import{emitStartupVersionBanner as xe}from"./version-check.js";import{resolveProfile as We,filterByProfile as Ie}from"./tool-profiles.js";import{annotateTools as Pe,elideDefaultAnnotations as Ae}from"./tool-annotations.js";import{applyDeprecationNotices as Ne,noteDeprecatedToolInvocation as Le,isHardCliExile as Ye,cliExileRedirectResponse as je}from"./deprecations.js";import{goldenCapture as g}from"./golden.js";import{makeEstimator as Fe}from"./token-budget.js";import{makeRunBudgetedContextBuild as Be}from"./context-build-budgeted.js";import{makeRunCompanionBuddy as He}from"./buddy-runner.js";import{loadWeightsFromEnv as Ke}from"./context-ranking.js";import{SessionSeen as Ge}from"./session-seen.js";import{DesignSystem as qe}from"./design.js";import{fileURLToPath as Ue}from"url";import{dirname as Ve,join as X}from"path";import{readFileSync as $e,existsSync as Je}from"fs";const ze=137;let P=null;function Xe(){return P||(P=new qe(o.getDatabase())),P}const Qe=Fe(),Ze=Ke();let A=null;function Q(){return A||(A=new Ge(o.getDatabase())),A}const O=(()=>{try{const t=Ve(Ue(import.meta.url));for(const e of[X(t,"..","package.json"),X(t,"..","..","package.json")])if(Je(e)){const r=JSON.parse($e(e,"utf-8")).version;if(typeof r=="string")return r}}catch{}return"unknown"})(),o=new kt(vt()),to=new $t(o),Z=new oe(o.getDatabase()),E=new re(o.getDatabase()),M=new se(o.getDatabase()),N=new ne(o.getDatabase()),L=new _e(o.getDatabase()),Y=new ye(o.getDatabase()),tt=new de(o.getDatabase()),j=new fe(o.getDatabase()),eo=new ge(o.getDatabase()),b=new he(o.getDatabase()),oo=Be({groundTruths:M,scaffoldLib:N,memory:E,toolAnalytics:b,sessionSeen:Q,tokenEstimator:Qe,rankWeights:Ze}),et=new we(o.getDatabase()),ro=new Se(o.getDatabase(),Re()),so=new Ee(o.getDatabase()),ot=new be(o.getDatabase()),rt=new De(o.getDatabase()),st={projects:o,goals:rt,getActor:Tt,store:o,raw:()=>o.getDatabase(),memory:E,truths:M,scaffolds:N,failures:L,presence:Y,rehydration:et,graph:Z,symbols:j,vectors:()=>v,indexing:()=>x,cache:R,decrypt:t=>B.maybeDecrypt(t),clientSupportsResources:()=>{const t=u.getClientCapabilities()?.experimental;return!!t&&"resources"in t}},F=new Ce(o.getDatabase()),no=He({db:o,mcpClient:F,version:O}),ao=new Me(o.getDatabase()),io=Oe({db:o,failures:L,symbols:j,rehydration:et,causality:tt,presence:Y,federation:ot,memory:E,groundTruths:M}),co=new Te(o.getDatabase(),F,io);if(process.env.WYRM_ENCRYPTION_KEY)try{Zt(process.env.WYRM_ENCRYPTION_KEY)}catch(t){console.error("Wyrm: Failed to initialize encryption:",t)}const B=Qt();let v=null,x=null;try{const t=process.env.WYRM_VECTOR_PROVIDER||"auto";if(t!=="none"){v=te({provider:t},o.getDatabase()),E.setVectorStore(v);const e=(r,m)=>{try{switch(r){case"session":{const s=o.getSession(m);return s&&[s.objectives,s.completed,s.notes,s.summary].filter(Boolean).join(" ")||null}case"quest":{const s=o.getDatabase().prepare("SELECT * FROM quests WHERE id = ?").get(m);return s&&[s.title,s.description].filter(Boolean).join(" ")||null}case"note":case"context":{const s=o.getDatabase().prepare("SELECT value FROM data_lake WHERE id = ?").all(m);if(!s.length)return null;const _=B.maybeDecrypt(s[0].value);return _.startsWith("ENCRYPTED:")?null:_}default:return null}}catch{return null}};x=new ee(o.getDatabase(),v,e,{batchSize:20,maxRetries:3,intervalMs:1e4}),x.start()}}catch(t){console.error("Wyrm: Failed to initialize vector store:",t)}const mo=Xt({autoOrchestrateEnabled:!0,minConfidenceThreshold:65,maxParallelAgents:6,defaultHaikuBoosting:!0,trackMetrics:!0});ae();const H=ie();H.tier!=="free"&&console.error(`Wyrm: Licensed \u2014 ${H.tier} tier (expires: ${H.expiresAt||"never"})`);try{const t=process.env.HOME||process.env.USERPROFILE||"",e=zt(t,".wyrm","bundled-skills.json");if(t&&z(e)){const r=JSON.parse(J(e,"utf-8"));let m=0;for(const s of r.skills)try{if(!z(s.path))continue;const l=J(s.path,"utf-8").match(/^---\s*\n([\s\S]*?)\n---/);let a=s.name,d;if(l){const i=l[1].match(/description:\s*\|?\s*\n([\s\S]*?)(?:\nname:|\nmetadata:|\ncategory:|\ntype:|$)/);i&&(a=i[1].split(`
3
+ `).map(C=>C.trim()).filter(Boolean).join(" ").slice(0,500));const p=l[1].match(/category:\s*([^\n]+)/);p&&(d=p[1].trim())}o.registerSkill(s.name,a,s.path,d,"Ghost Protocol",void 0,"bundled"),m++}catch{}m>0&&console.error(`Wyrm: Registered ${m} bundled skill(s) on first start.`);try{Jt(e)}catch{}}}catch{}const K=new le(o.getDatabase()),nt=new pe;process.env.WYRM_R2_ENDPOINT&&process.env.WYRM_R2_ACCESS_KEY&&process.env.WYRM_R2_SECRET_KEY&&nt.configure({endpoint:process.env.WYRM_R2_ENDPOINT,bucket:process.env.WYRM_R2_BUCKET||"wyrm-backups",accessKeyId:process.env.WYRM_R2_ACCESS_KEY,secretAccessKey:process.env.WYRM_R2_SECRET_KEY},process.env.WYRM_ENCRYPTION_KEY);import{fileURLToPath as lo}from"url";import{dirname as po,join as at}from"path";const uo=lo(import.meta.url),it=po(uo),_o=new ue(at(it,"cloud-sync-entrypoint.js")),yo=new Ut(at(it,"replication-daemon-entrypoint.js")),k=[],ct=500;function h(t){k.push(t),k.length>ct&&k.splice(0,k.length-ct),K.record({tool:t.tool,tokens_in:t.tokens_in,tokens_out:t.tokens_out,cached:t.cached,ms:t.ms,success:!0,timestamp:t.timestamp})}function fo(t){const e=t?k.slice(-t):k,r=e.filter(i=>i.cached),m=new Map;let s=0,_=0,l=0,a=0;for(const i of e){s+=i.tokens_in,_+=i.tokens_out,a+=i.ms,i.cached&&(l+=i.tokens_out);const p=m.get(i.tool)||{calls:0,tokens:0};p.calls++,p.tokens+=i.tokens_out,m.set(i.tool,p)}const d=[...m.entries()].map(([i,p])=>({tool:i,...p})).sort((i,p)=>p.tokens-i.tokens).slice(0,10);return{totalCalls:e.length,cachedCalls:r.length,cacheHitRate:e.length>0?`${(r.length/e.length*100).toFixed(1)}%`:"0%",totalTokensIn:s,totalTokensOut:_,tokensSaved:l,avgResponseMs:e.length>0?Math.round(a/e.length):0,topTools:d}}const go=new Map;function ho(t,e=!1){return{content:[{type:"text",text:t}]}}const wo=new Set(["wyrm_list_projects","wyrm_project_context","wyrm_global_context","wyrm_all_quests","wyrm_data_query","wyrm_data_categories","wyrm_search","wyrm_stats","wyrm_skill_list","wyrm_skill_get","wyrm_skill_search","wyrm_skill_stats","wyrm_orchestration_config","wyrm_orchestration_stats","wyrm_license","wyrm_analytics_dashboard","wyrm_cost_report","wyrm_entity_search","wyrm_entity_graph","wyrm_entity_path","wyrm_context_build","wyrm_truth_get","wyrm_scaffold_get","wyrm_session_prime"]),mt=new Set(["wyrm_session_start","wyrm_session_update","wyrm_quest_add","wyrm_quest_complete","wyrm_data_insert","wyrm_data_batch_insert","wyrm_set_global","wyrm_scan_projects","wyrm_sync","wyrm_maintenance","wyrm_vector_setup","wyrm_reindex","wyrm_skill_register","wyrm_skill_delete","wyrm_skill_activate","wyrm_skill_deactivate","wyrm_spec_register","wyrm_activate","wyrm_cloud_backup","wyrm_cloud_sync","wyrm_encrypt_setup","wyrm_entity_add","wyrm_entity_link","wyrm_entity_merge","wyrm_remember","wyrm_recall","wyrm_feedback","wyrm_truth_set","wyrm_scaffold_save","wyrm_distill","wyrm_review","wyrm_capture","wyrm_import_git","wyrm_import_pr","wyrm_import_rules","wyrm_inject_prompt","wyrm_prune","wyrm_sync_export","wyrm_sync_import"]),D=new jt,u=new _t({name:"wyrm",version:O},{capabilities:{tools:{},prompts:{},resources:{},tasks:{list:{},cancel:{},requests:{tools:{call:{}}}}},instructions:Vt}),lt={...st,db:o,sync:to,graph:Z,memory:E,groundTruths:M,scaffoldLib:N,failures:L,presence:Y,causality:tt,symbols:j,hours:eo,toolAnalytics:b,auditLog:ro,subAgent:so,federation:ot,goals:rt,mcpClient:F,agentDaemon:ao,agentLoop:co,analytics:K,cloudBackup:nt,cloudSyncManager:_o,replicationManager:yo,orchestrator:mo,server:u,wyrmCrypto:B,get vectorStore(){return v},get indexingPipeline(){return x},setVectorStore:t=>{v=t},WYRM_PACKAGE_VERSION:O,WYRM_TOOL_COUNT:ze,WRITE_TOOLS:mt,usageLog:k,responseFingerprints:go,designSystem:Xe,sessionSeen:Q,cachedResponse:ho,getUsageStats:fo,runCompanionBuddy:no,runBudgetedContextBuild:oo};u.setRequestHandler(St,async()=>{const t=[...bt(),...Wt()],e=We();return{tools:Ct(Dt(Ne(Ae(Pe(Ie(t,e))))))}}),u.setRequestHandler(gt,async()=>({prompts:[...Pt()]})),u.setRequestHandler(ft,async t=>{const e=t.params.arguments??{},r=V({args:e,meta:t.params._meta,clientName:u.getClientVersion()?.name});return $(r,()=>It(t.params.name,e,st))}),u.setRequestHandler(ht,async()=>({resources:At()})),u.setRequestHandler(wt,async()=>({resourceTemplates:Nt()})),u.setRequestHandler(Rt,async t=>{const e=t.params.uri;try{const r=Lt(e,lt),{nextCursor:m,...s}=r;return m?{contents:[s],_meta:{"wyrm/nextCursor":m}}:{contents:[s]}}catch(r){throw r instanceof Yt?new Error(r.message):r}}),Ht(u,D),u.setRequestHandler(dt,async t=>{const{name:e,arguments:r}=t.params;if(!ce())return me();const m=V({args:r??{},meta:t.params._meta,clientName:u.getClientVersion()?.name});Le(e);const s=performance.now(),_=JSON.stringify(r||{}),l=I(_);let a,d,i=null;try{const n=Mt(e,r??{});n.via?.kind==="cli-exile"&&(i=n.via),{tool:a,args:d}=xt(n.tool,n.args)}catch(n){if(n instanceof q){const c=Math.round(performance.now()-s);h({tool:e,tokens_in:l,tokens_out:0,cached:!1,ms:c,timestamp:new Date().toISOString()});const y=U(e,n.field,n.message);return g({tool:e,args:r,meta:t.params._meta,response:y,outcome:"validation_error",ms:c,dispatch:"switch"}),y}throw n}if(i&&Ye(i.name)){const n=Math.round(performance.now()-s);h({tool:e,tokens_in:l,tokens_out:0,cached:!1,ms:n,timestamp:new Date().toISOString()});const c=je(i.name);return g({tool:e,args:r,meta:t.params._meta,response:c,outcome:"soft_error",ms:n,dispatch:"switch"}),c}const p=Ft(u.getClientCapabilities()?.tasks,t.params),C=qt(D,p,a,n=>{const c=Math.round(performance.now()-s);h({tool:e,tokens_in:l,tokens_out:0,cached:!1,ms:c,timestamp:new Date().toISOString()}),g({tool:e,args:r,meta:t.params._meta,response:n,outcome:"soft_error",ms:c,dispatch:S.has(a)?"registry":"switch"})});if(C!==null)return C;const pt=a===e?_:JSON.stringify(d),W=wo.has(a)?Et(a,pt):null;if(W){const n=R.get(W);if(n){const c=Math.round(performance.now()-s),y=I(JSON.stringify(n));h({tool:e,tokens_in:l,tokens_out:y,cached:!0,ms:c,timestamp:new Date().toISOString()});const f={...n};return g({tool:e,args:r,meta:t.params._meta,response:f,cached:!0,ms:c,dispatch:S.has(a)?"registry":"switch"}),Kt(D,p,a,f)}}if(mt.has(a)){const n=d?.projectPath;n&&R.invalidate(n),R.invalidate("wyrm_list_projects"),R.invalidate("wyrm_global_context"),R.invalidate("wyrm_all_quests"),R.invalidate("wyrm_stats")}let T;const ut=d||{};try{const n=await $(m,async()=>{const G=S.get(a);return G?await Bt(a,p,D,()=>Ot(W,()=>G(ut,lt))):{kind:"inline",result:{content:[{type:"text",text:`Unknown tool: ${a}`}],isError:!0}}}),{wireValue:c,payload:y}=Gt(D,n);T=y;const f=Math.round(performance.now()-s),w=I(JSON.stringify(T));return h({tool:e,tokens_in:l,tokens_out:w,cached:!1,ms:f,timestamp:new Date().toISOString()}),b.log({tool_name:e,args:r,success:!T?.isError,latency_ms:f}),g({tool:e,args:r,meta:t.params._meta,response:T,ms:f,dispatch:S.has(a)?"registry":"switch"}),c}catch(n){const c=Math.round(performance.now()-s);if(n instanceof q){h({tool:e,tokens_in:l,tokens_out:0,cached:!1,ms:c,timestamp:new Date().toISOString()});const w=U(e,n.field,n.message);return g({tool:e,args:r,meta:t.params._meta,response:w,outcome:"validation_error",ms:c,dispatch:S.has(a)?"registry":"switch"}),w}const y=ke(n);if(y!==null){h({tool:e,tokens_in:l,tokens_out:0,cached:!1,ms:c,timestamp:new Date().toISOString()}),b.log({tool_name:e,args:r,success:!1,error_message:`WYRM_BUSY[${y}]: ${String(n).slice(0,400)}`,latency_ms:c});const w=ve(e,y);return g({tool:e,args:r,meta:t.params._meta,response:w,outcome:"error",ms:c,dispatch:S.has(a)?"registry":"switch"}),w}h({tool:e,tokens_in:l,tokens_out:0,cached:!1,ms:c,timestamp:new Date().toISOString()}),b.log({tool_name:e,args:r,success:!1,error_message:String(n).slice(0,500),latency_ms:c});const f={content:[{type:"text",text:`Error: ${n}`}],isError:!0};return g({tool:e,args:r,meta:t.params._meta,response:f,outcome:"error",ms:c,dispatch:S.has(a)?"registry":"switch"}),f}}),process.on("uncaughtException",t=>{try{console.error("Wyrm[uncaughtException]:",t instanceof Error?t.stack:t)}catch{}}),process.on("unhandledRejection",t=>{try{console.error("Wyrm[unhandledRejection]:",t instanceof Error?t.stack:t)}catch{}});async function So(){const t=new yt;await u.connect(t),xe(o.getDatabase(),O).catch(()=>{});const e=()=>{try{K.shutdown()}catch{}process.exit(0)};process.on("SIGINT",e),process.on("SIGTERM",e)}So().catch(console.error);export{Ir as classifyCapture};