@clauderecallhq/cli 0.12.5 → 0.61.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +37 -17
- package/README.md +110 -22
- package/dist/cli.js +1641 -353
- package/dist/daemon/entrypoint.js +1872 -54
- package/dist/mcp-server.js +930 -0
- package/dist/share/fonts/Inter-Bold.woff +0 -0
- package/dist/share/fonts/Inter-Regular.woff +0 -0
- package/dist/share/fonts/JetBrainsMono-Regular.woff +0 -0
- package/dist/web/assets/_brand-Bw9uSB4O.js +1 -0
- package/dist/web/assets/captureNode-9CVj9vYC.js +2 -0
- package/dist/web/assets/card-a-minimal-ujNERzX7.js +1 -0
- package/dist/web/assets/card-b-terminal-DpJ_tVpg.js +1 -0
- package/dist/web/assets/card-c-gradient-CZXVGuNd.js +1 -0
- package/dist/web/assets/card-d-dashboard-CHKD-PnB.js +1 -0
- package/dist/web/assets/dist-CWaokT35.js +56 -0
- package/dist/web/assets/index-B-HrjaDy.css +1 -0
- package/dist/web/assets/index-BZYcD76T.js +633 -0
- package/dist/web/assets/jetbrains-mono-latin-700-normal-D3wTyLJW.woff +0 -0
- package/dist/web/assets/patterns-BPeZb9N0.js +1 -0
- package/dist/web/assets/stats-BSwqSiFU.js +1 -0
- package/dist/web/assets/thread-D2AXyhOx.js +1 -0
- package/dist/web/index.html +8 -2
- package/package.json +58 -18
- package/scripts/postinstall.mjs +38 -0
- package/dist/cli.js.map +0 -1
- package/dist/commands/activate.js +0 -69
- package/dist/commands/activate.js.map +0 -1
- package/dist/commands/audit-secrets.js +0 -103
- package/dist/commands/audit-secrets.js.map +0 -1
- package/dist/commands/blame.js +0 -35
- package/dist/commands/blame.js.map +0 -1
- package/dist/commands/config-verification.js +0 -18
- package/dist/commands/config-verification.js.map +0 -1
- package/dist/commands/context.js +0 -144
- package/dist/commands/context.js.map +0 -1
- package/dist/commands/correlate.js +0 -70
- package/dist/commands/correlate.js.map +0 -1
- package/dist/commands/digest.js +0 -78
- package/dist/commands/digest.js.map +0 -1
- package/dist/commands/health.js +0 -62
- package/dist/commands/health.js.map +0 -1
- package/dist/commands/index.js +0 -247
- package/dist/commands/index.js.map +0 -1
- package/dist/commands/install-extension.js +0 -138
- package/dist/commands/install-extension.js.map +0 -1
- package/dist/commands/license.js +0 -39
- package/dist/commands/license.js.map +0 -1
- package/dist/commands/list.js +0 -47
- package/dist/commands/list.js.map +0 -1
- package/dist/commands/mcp.js +0 -29
- package/dist/commands/mcp.js.map +0 -1
- package/dist/commands/open.js +0 -28
- package/dist/commands/open.js.map +0 -1
- package/dist/commands/paste.js +0 -154
- package/dist/commands/paste.js.map +0 -1
- package/dist/commands/projects.js +0 -36
- package/dist/commands/projects.js.map +0 -1
- package/dist/commands/search.js +0 -67
- package/dist/commands/search.js.map +0 -1
- package/dist/commands/semantic.js +0 -173
- package/dist/commands/semantic.js.map +0 -1
- package/dist/commands/show.js +0 -121
- package/dist/commands/show.js.map +0 -1
- package/dist/commands/start.js +0 -47
- package/dist/commands/start.js.map +0 -1
- package/dist/commands/stats.js +0 -133
- package/dist/commands/stats.js.map +0 -1
- package/dist/commands/status.js +0 -45
- package/dist/commands/status.js.map +0 -1
- package/dist/commands/stop.js +0 -29
- package/dist/commands/stop.js.map +0 -1
- package/dist/commands/thread.js +0 -396
- package/dist/commands/thread.js.map +0 -1
- package/dist/context/formatter.js +0 -103
- package/dist/context/formatter.js.map +0 -1
- package/dist/daemon/auto-tag-config.js +0 -103
- package/dist/daemon/auto-tag-config.js.map +0 -1
- package/dist/daemon/auto-tag-config.test.js +0 -72
- package/dist/daemon/auto-tag-config.test.js.map +0 -1
- package/dist/daemon/auto-title-config.js +0 -70
- package/dist/daemon/auto-title-config.js.map +0 -1
- package/dist/daemon/bulk-title-jobs.js +0 -170
- package/dist/daemon/bulk-title-jobs.js.map +0 -1
- package/dist/daemon/correlator.js +0 -320
- package/dist/daemon/correlator.js.map +0 -1
- package/dist/daemon/discover.js +0 -316
- package/dist/daemon/discover.js.map +0 -1
- package/dist/daemon/editor-detection.js +0 -186
- package/dist/daemon/editor-detection.js.map +0 -1
- package/dist/daemon/entrypoint.js.map +0 -1
- package/dist/daemon/git-correlator.js +0 -256
- package/dist/daemon/git-correlator.js.map +0 -1
- package/dist/daemon/mcp-installer.js +0 -108
- package/dist/daemon/mcp-installer.js.map +0 -1
- package/dist/daemon/onboarding-state.js +0 -140
- package/dist/daemon/onboarding-state.js.map +0 -1
- package/dist/daemon/pidfile.js +0 -57
- package/dist/daemon/pidfile.js.map +0 -1
- package/dist/daemon/ports.js +0 -48
- package/dist/daemon/ports.js.map +0 -1
- package/dist/daemon/scanProgressRegistry.js +0 -62
- package/dist/daemon/scanProgressRegistry.js.map +0 -1
- package/dist/daemon/server.js +0 -2010
- package/dist/daemon/server.js.map +0 -1
- package/dist/daemon/tag-scanner/anthropic-client.js +0 -40
- package/dist/daemon/tag-scanner/anthropic-client.js.map +0 -1
- package/dist/daemon/tag-scanner/autopilot.js +0 -131
- package/dist/daemon/tag-scanner/autopilot.js.map +0 -1
- package/dist/daemon/tag-scanner/claude-cli-driver.js +0 -250
- package/dist/daemon/tag-scanner/claude-cli-driver.js.map +0 -1
- package/dist/daemon/tag-scanner/orchestrator.js +0 -88
- package/dist/daemon/tag-scanner/orchestrator.js.map +0 -1
- package/dist/daemon/tag-scanner/prompt.js +0 -46
- package/dist/daemon/tag-scanner/prompt.js.map +0 -1
- package/dist/daemon/tag-scanner/prompt.test.js +0 -48
- package/dist/daemon/tag-scanner/prompt.test.js.map +0 -1
- package/dist/daemon/tag-scanner/scan-state.js +0 -49
- package/dist/daemon/tag-scanner/scan-state.js.map +0 -1
- package/dist/daemon/tag-scanner/session-fetcher.js +0 -82
- package/dist/daemon/tag-scanner/session-fetcher.js.map +0 -1
- package/dist/daemon/tag-scanner/session-fetcher.test.js +0 -34
- package/dist/daemon/tag-scanner/session-fetcher.test.js.map +0 -1
- package/dist/daemon/tag-scanner/validator.js +0 -50
- package/dist/daemon/tag-scanner/validator.js.map +0 -1
- package/dist/daemon/tag-scanner/validator.test.js +0 -41
- package/dist/daemon/tag-scanner/validator.test.js.map +0 -1
- package/dist/daemon/terminal-registry.js +0 -443
- package/dist/daemon/terminal-registry.js.map +0 -1
- package/dist/daemon/ui.js +0 -64
- package/dist/daemon/ui.js.map +0 -1
- package/dist/daemon/watcher.js +0 -256
- package/dist/daemon/watcher.js.map +0 -1
- package/dist/db/client.js +0 -22
- package/dist/db/client.js.map +0 -1
- package/dist/db/schema.js +0 -496
- package/dist/db/schema.js.map +0 -1
- package/dist/license/api-base.js +0 -13
- package/dist/license/api-base.js.map +0 -1
- package/dist/license/manager.js +0 -43
- package/dist/license/manager.js.map +0 -1
- package/dist/license/public-key.js +0 -19
- package/dist/license/public-key.js.map +0 -1
- package/dist/license/storage.js +0 -27
- package/dist/license/storage.js.map +0 -1
- package/dist/license/verify.js +0 -23
- package/dist/license/verify.js.map +0 -1
- package/dist/mcp/audit.js +0 -126
- package/dist/mcp/audit.js.map +0 -1
- package/dist/mcp/prompts.js +0 -180
- package/dist/mcp/prompts.js.map +0 -1
- package/dist/mcp/server.js +0 -502
- package/dist/mcp/server.js.map +0 -1
- package/dist/mcp/thread-tools.js +0 -363
- package/dist/mcp/thread-tools.js.map +0 -1
- package/dist/mcp/write-tools.js +0 -239
- package/dist/mcp/write-tools.js.map +0 -1
- package/dist/parser/jsonl.js +0 -150
- package/dist/parser/jsonl.js.map +0 -1
- package/dist/semantic/chunker.js +0 -47
- package/dist/semantic/chunker.js.map +0 -1
- package/dist/semantic/config.js +0 -74
- package/dist/semantic/config.js.map +0 -1
- package/dist/semantic/embedder.js +0 -54
- package/dist/semantic/embedder.js.map +0 -1
- package/dist/semantic/fusion.js +0 -38
- package/dist/semantic/fusion.js.map +0 -1
- package/dist/semantic/model-download.js +0 -69
- package/dist/semantic/model-download.js.map +0 -1
- package/dist/semantic/pipeline.js +0 -375
- package/dist/semantic/pipeline.js.map +0 -1
- package/dist/semantic/query.js +0 -42
- package/dist/semantic/query.js.map +0 -1
- package/dist/semantic/worker.js +0 -78
- package/dist/semantic/worker.js.map +0 -1
- package/dist/stats/backfill.js +0 -151
- package/dist/stats/backfill.js.map +0 -1
- package/dist/stats/health.js +0 -102
- package/dist/stats/health.js.map +0 -1
- package/dist/stats/query.js +0 -385
- package/dist/stats/query.js.map +0 -1
- package/dist/utils/aliases.js +0 -107
- package/dist/utils/aliases.js.map +0 -1
- package/dist/utils/autoCollections.js +0 -635
- package/dist/utils/autoCollections.js.map +0 -1
- package/dist/utils/autoTitle.js +0 -348
- package/dist/utils/autoTitle.js.map +0 -1
- package/dist/utils/collections.js +0 -446
- package/dist/utils/collections.js.map +0 -1
- package/dist/utils/format.js +0 -46
- package/dist/utils/format.js.map +0 -1
- package/dist/utils/notes.js +0 -270
- package/dist/utils/notes.js.map +0 -1
- package/dist/utils/paths.js +0 -50
- package/dist/utils/paths.js.map +0 -1
- package/dist/utils/pricing.js +0 -257
- package/dist/utils/pricing.js.map +0 -1
- package/dist/utils/secret-scanner.js +0 -166
- package/dist/utils/secret-scanner.js.map +0 -1
- package/dist/utils/sessionLabel.js +0 -64
- package/dist/utils/sessionLabel.js.map +0 -1
- package/dist/utils/tags.js +0 -97
- package/dist/utils/tags.js.map +0 -1
- package/dist/utils/thread-context.js +0 -129
- package/dist/utils/thread-context.js.map +0 -1
- package/dist/utils/threadFilter.js +0 -18
- package/dist/utils/threadFilter.js.map +0 -1
- package/dist/utils/threads-titler.js +0 -298
- package/dist/utils/threads-titler.js.map +0 -1
- package/dist/utils/threads.js +0 -383
- package/dist/utils/threads.js.map +0 -1
- package/dist/utils/usage.js +0 -76
- package/dist/utils/usage.js.map +0 -1
- package/dist/verification/compute.js +0 -88
- package/dist/verification/compute.js.map +0 -1
- package/dist/verification/config.js +0 -34
- package/dist/verification/config.js.map +0 -1
- package/dist/web/assets/index-CIr6J4Fw.js +0 -1201
- package/dist/web/assets/index-Ctc8g9Jw.css +0 -1
|
Binary file
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{n as e,r as t,t as n}from"./_brand-Bw9uSB4O.js";var r=`#0b0c0f`,i=`#e7e9ee`,a=`#8b9098`,o={markStroke:i,wordmarkFg:i};function s(s){let c=[e(o,`patterns`),{type:`div`,props:{style:{display:`flex`,flexDirection:`column`,gap:`6px`},children:[{type:`div`,props:{style:{fontSize:`38px`,fontWeight:700,color:i,lineHeight:1.15},children:`Recurring patterns`}},{type:`div`,props:{style:{fontSize:`18px`,color:a},children:s.metaLine}}]}},{type:`div`,props:{style:{display:`flex`,flex:1,width:`100%`,borderRadius:`14px`,border:`1px solid #1f2229`,overflow:`hidden`,backgroundColor:`#0e0f12`},children:[{type:`img`,props:{src:s.heroImage,width:`100%`,height:`100%`,style:{objectFit:`cover`,objectPosition:`center`}}}]}}];return s.verdict&&c.push({type:`div`,props:{style:{display:`flex`,fontSize:`22px`,fontStyle:`italic`,color:i,borderLeft:`3px solid ${n}`,paddingLeft:`20px`},children:`"${s.verdict}"`}}),c.push(t(o)),{type:`div`,props:{style:{display:`flex`,flexDirection:`column`,width:`100%`,height:`100%`,backgroundColor:r,padding:`52px 56px`,fontFamily:`Inter`,gap:`22px`},children:c}}}export{s as render};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{a as e,n as t,o as n,r,t as i}from"./_brand-Bw9uSB4O.js";var a=`#0b0c0f`,o=`#e7e9ee`,s=`#8b9098`,c=`#1f2229`,l={markStroke:o,wordmarkFg:o};function u(e,t){return{type:`div`,props:{style:{display:`flex`,flexDirection:`column`,gap:`6px`,flex:1},children:[{type:`span`,props:{style:{fontSize:`40px`,fontWeight:700,color:o,fontFamily:`JetBrains Mono`,lineHeight:1},children:e}},{type:`span`,props:{style:{fontSize:`13px`,color:s,textTransform:`uppercase`,letterSpacing:`0.18em`,fontWeight:600},children:t}}]}}}function d(e,t){return{type:`div`,props:{style:{display:`flex`,justifyContent:`space-between`,alignItems:`center`,padding:`14px 18px`,backgroundColor:`#15171c`,borderRadius:`10px`,border:`1px solid ${c}`},children:[{type:`span`,props:{style:{fontSize:`14px`,color:s,textTransform:`uppercase`,letterSpacing:`0.14em`,fontWeight:600},children:e}},{type:`span`,props:{style:{fontSize:`20px`,color:o,fontWeight:700},children:t}}]}}}function f(f){let p=f.cachedTokens>=1e5?`+ ${e(f.cachedTokens)} cache-replayed`:null,m=[];f.topModel&&m.push(d(`top model`,f.topModel)),f.topProject&&m.push(d(`top project`,`${f.topProject.name} · ${f.topProject.sharePct}%`)),f.peakHours&&m.push(d(`peak hours`,f.peakHours));let h=[t(l,`stats`),{type:`div`,props:{style:{display:`flex`,flexDirection:`column`,gap:`6px`},children:[{type:`div`,props:{style:{fontSize:`38px`,fontWeight:700,color:o,lineHeight:1.1},children:f.rangeLabel}},{type:`div`,props:{style:{fontSize:`18px`,color:s},children:f.scopeLabel}}]}},{type:`div`,props:{style:{display:`flex`,flexDirection:`column`,alignItems:`center`,padding:`20px 0 12px 0`},children:[{type:`span`,props:{style:{fontSize:`180px`,fontWeight:700,color:i,fontFamily:`JetBrains Mono`,lineHeight:1,letterSpacing:`-0.04em`},children:f.costDollars}},{type:`span`,props:{style:{marginTop:`14px`,fontSize:`15px`,color:s,textTransform:`uppercase`,letterSpacing:`0.28em`,fontWeight:600},children:`spent on Claude Code`}}]}},{type:`div`,props:{style:{display:`flex`,width:`100%`,height:`1px`,backgroundColor:c}}},{type:`div`,props:{style:{display:`flex`,justifyContent:`space-between`,gap:`20px`},children:[u(f.totalSessions.toLocaleString(`en-US`),`sessions`),u(n(f.workingTokens),`tokens`),u(f.activeDays.toLocaleString(`en-US`),`active days`)]}}];return m.length&&h.push({type:`div`,props:{style:{display:`flex`,flexDirection:`column`,gap:`10px`},children:m}}),p&&h.push({type:`div`,props:{style:{fontSize:`13px`,color:s,fontFamily:`JetBrains Mono`,opacity:.7},children:p}}),f.verdict&&h.push({type:`div`,props:{style:{display:`flex`,fontSize:`22px`,fontStyle:`italic`,color:o,borderLeft:`3px solid ${i}`,paddingLeft:`20px`,marginTop:`4px`},children:`"${f.verdict}"`}}),h.push({type:`div`,props:{style:{display:`flex`,flex:1}}}),h.push(r(l)),{type:`div`,props:{style:{display:`flex`,flexDirection:`column`,width:`100%`,height:`100%`,backgroundColor:a,padding:`60px 64px`,fontFamily:`Inter`,gap:`22px`},children:h}}}export{f as render};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{n as e,r as t,t as n}from"./_brand-Bw9uSB4O.js";var r=`#0b0c0f`,i=`#e7e9ee`,a=`#8b9098`,o=`#15171c`,s=`#262a31`,c=`#3a3f49`,l={markStroke:i,wordmarkFg:i},u=8,d=8,f=968,p=760,m=16,h=16,g=168,_=10,v=14,y=28,b=80,x=64,S=1.22,C=1.2;function w(e,t,n){if(!e)return 1;let r=n*.55,i=Math.max(1,Math.floor(t/r)),a=e.split(/\s+/).filter(Boolean);if(a.length===0)return 1;let o=1,s=0;for(let e of a)if(e.length>i)s>0&&(o+=1,s=0),o+=Math.floor(e.length/i),s=e.length%i,s===0&&(s=i);else{let t=s===0?e.length:s+1+e.length;t>i?(o+=1,s=e.length):s=t}return Math.max(1,o)}function T(e){let t=new Map(e.sessions.map(e=>[e.id,e])),n=new Map;for(let t of e.edges){let e=n.get(t.parentId)??[];e.push(t.childId),n.set(t.parentId,e)}let r=new Map,i=[],a=e.rootIds.filter(e=>t.has(e));for(let e of a)r.has(e)||(r.set(e,0),i.push({id:e,depth:0}));for(;i.length;){let{id:e,depth:t}=i.shift(),a=n.get(e)??[];for(let e of a)r.has(e)||(r.set(e,t+1),i.push({id:e,depth:t+1}))}for(let t of e.sessions)r.has(t.id)||r.set(t.id,0);let o=new Map,s=0;for(let t of e.sessions){let e=r.get(t.id)??0;if(e>=d){s+=1;continue}let n=o.get(e)??[];n.push(t),o.set(e,n)}let c=Array.from(o.keys()).sort((e,t)=>e-t),l=c.length,_=f-m*2,T=p-h*2,E=Math.max(...c.map(e=>Math.min(o.get(e).length,u)),1),D=Math.floor((_-(E-1)*v)/E);D=Math.min(D,g),D=Math.max(D,b);let O=D/g,k=Math.max(9,Math.round(13*O)),A=Math.max(8,Math.round(11*O)),j=[];for(let e of c)for(let t of o.get(e).slice(0,u))j.push(t.title);let M=l>1?Math.floor((T-(l-1)*y)/l):T,N=x;for(let e=0;e<6;e++){let e=Math.max(6,Math.round(D*.07)),t=D-e*2,n=j.reduce((e,n)=>Math.max(e,w(n,t,k)),1),r=Math.ceil(n*k*S),i=Math.ceil(A*C)+4,a=20+r+i;if(a<=M){N=Math.max(x,a);break}if(k>9){--k;continue}N=M;break}N=Math.max(x,Math.min(N,M));let P=l>1?(T-N)/(l-1):0,F=[],I=[],L=new Map;for(let e=0;e<c.length;e++){let t=c[e],n=o.get(t),r=n.slice(0,u),i=n.length-r.length,a=r.length,s=a*D+(a-1)*v,l=m+Math.max(0,(_-s)/2),d=h+e*P;for(let e=0;e<a;e++){let t=l+e*(D+v);F.push({session:r[e],x:t,y:d,w:D,h:N,titleFontSize:k,metaFontSize:A}),L.set(r[e].id,{cx:t+D/2,cy:d+N/2,topY:d,bottomY:d+N})}i>0&&I.push({y:d+N/2,rightX:m+_,count:i})}let R=[];for(let t of e.edges){let e=L.get(t.parentId),n=L.get(t.childId);!e||!n||e.cy>=n.cy||R.push({x1:e.cx,y1:e.bottomY,x2:n.cx,y2:n.topY})}return{placed:F,edges:R,overflow:I,truncated:s}}function E(e){let t=e.session.project??``,n=Math.max(6,Math.round(e.w*.07));return{type:`div`,props:{style:{display:`flex`,flexDirection:`column`,position:`absolute`,left:`${e.x}px`,top:`${e.y}px`,width:`${e.w}px`,height:`${e.h}px`,backgroundColor:o,border:`1px solid ${s}`,borderRadius:`${_}px`,padding:`10px ${n}px`,boxSizing:`border-box`,gap:`4px`},children:[{type:`div`,props:{style:{display:`flex`,fontSize:`${e.titleFontSize}px`,fontWeight:600,color:i,lineHeight:S,overflow:`hidden`},children:e.session.title}},t?{type:`div`,props:{style:{display:`flex`,marginTop:`auto`,fontSize:`${e.metaFontSize}px`,color:a,fontFamily:`JetBrains Mono`,textOverflow:`ellipsis`,overflow:`hidden`,whiteSpace:`nowrap`},children:t}}:{type:`div`,props:{style:{display:`flex`}}}]}}}function D(e){return{type:`div`,props:{style:{display:`flex`,position:`absolute`,right:`${f-e.rightX}px`,top:`${e.y-16}px`,height:`32px`,padding:`0 14px`,alignItems:`center`,justifyContent:`center`,backgroundColor:`#1f2229`,color:a,fontSize:`13px`,fontWeight:600,borderRadius:`16px`,border:`1px solid ${s}`},children:`+${e.count} more`}}}function O(e){return{type:`svg`,props:{width:f,height:p,viewBox:`0 0 ${f} ${p}`,style:{display:`flex`,position:`absolute`,left:`0px`,top:`0px`},children:e.map(e=>({type:`path`,props:{d:`M ${e.x1} ${e.y1} C ${e.x1} ${(e.y1+e.y2)/2}, ${e.x2} ${(e.y1+e.y2)/2}, ${e.x2} ${e.y2}`,fill:`none`,stroke:c,strokeWidth:2,strokeLinecap:`round`}}))}}}function k(o){let{placed:c,edges:u,overflow:d,truncated:g}=T(o),_=[O(u)];for(let e of c)_.push(E(e));for(let e of d)_.push(D(e));g>0&&_.push({type:`div`,props:{style:{display:`flex`,position:`absolute`,left:`${m}px`,bottom:`${h-4}px`,fontSize:`12px`,color:a,fontFamily:`JetBrains Mono`},children:`+ ${g} more deeper in the tree`}});let v=[e(l,`thread`),{type:`div`,props:{style:{display:`flex`,flexDirection:`column`,gap:`6px`},children:[{type:`div`,props:{style:{fontSize:`36px`,fontWeight:700,color:i,lineHeight:1.15,wordBreak:`break-word`},children:o.threadName}},{type:`div`,props:{style:{fontSize:`17px`,color:a},children:o.metaLine}}]}},{type:`div`,props:{style:{display:`flex`,position:`relative`,width:`${f}px`,height:`${p}px`,backgroundColor:`#0e0f12`,borderRadius:`14px`,border:`1px solid ${s}`,overflow:`hidden`,boxSizing:`border-box`},children:_}}];return o.verdict&&v.push({type:`div`,props:{style:{display:`flex`,fontSize:`20px`,fontStyle:`italic`,color:i,borderLeft:`3px solid ${n}`,paddingLeft:`18px`},children:`"${o.verdict}"`}}),v.push(t(l)),{type:`div`,props:{style:{display:`flex`,flexDirection:`column`,width:`100%`,height:`100%`,backgroundColor:r,padding:`52px 56px`,fontFamily:`Inter`,gap:`20px`},children:v}}}export{k as render};
|
package/dist/web/index.html
CHANGED
|
@@ -6,8 +6,14 @@
|
|
|
6
6
|
<title>Claude Recall</title>
|
|
7
7
|
<meta name="description" content="Local, searchable memory for every Claude Code session you've ever run." />
|
|
8
8
|
<link rel="icon" type="image/svg+xml" href="./favicon.svg" />
|
|
9
|
-
|
|
10
|
-
|
|
9
|
+
<!-- CSP fallback for file:// loads (HTTP-served loads get the daemon's response header instead).
|
|
10
|
+
Note: frame-ancestors is a header-only directive and is omitted here. -->
|
|
11
|
+
<meta http-equiv="Content-Security-Policy"
|
|
12
|
+
content="default-src 'self'; script-src 'self' 'wasm-unsafe-eval'; style-src 'self' 'unsafe-inline'; img-src 'self' data: blob: https://clauderecall.com; font-src 'self' data:; connect-src 'self' data: https://clauderecall.com; base-uri 'self'; form-action 'self'">
|
|
13
|
+
<!-- Defense-in-depth for non-HTTP loads (L2). -->
|
|
14
|
+
<meta http-equiv="X-Content-Type-Options" content="nosniff">
|
|
15
|
+
<script type="module" crossorigin src="./assets/index-BZYcD76T.js"></script>
|
|
16
|
+
<link rel="stylesheet" crossorigin href="./assets/index-B-HrjaDy.css">
|
|
11
17
|
</head>
|
|
12
18
|
<body>
|
|
13
19
|
<div id="root"></div>
|
package/package.json
CHANGED
|
@@ -1,46 +1,54 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@clauderecallhq/cli",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.61.3",
|
|
4
4
|
"description": "Never lose a Claude Code session again. Local, fast, searchable memory over every session you've ever run.",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"homepage": "https://clauderecall.com",
|
|
7
7
|
"repository": {
|
|
8
8
|
"type": "git",
|
|
9
|
-
"url": "git+https://
|
|
9
|
+
"url": "git+https://gitlab.com/clauderecallhq/clauderecallhq.git"
|
|
10
10
|
},
|
|
11
11
|
"bugs": {
|
|
12
|
-
"url": "https://
|
|
12
|
+
"url": "https://gitlab.com/clauderecallhq/clauderecallhq/-/issues"
|
|
13
13
|
},
|
|
14
14
|
"bin": {
|
|
15
|
-
"recall": "
|
|
16
|
-
"claude-recall-mcp": "
|
|
15
|
+
"recall": "dist/cli.js",
|
|
16
|
+
"claude-recall-mcp": "dist/mcp-server.js"
|
|
17
17
|
},
|
|
18
18
|
"mcpName": "io.github.clauderecallhq/recall",
|
|
19
|
-
"main": "
|
|
19
|
+
"main": "dist/cli.js",
|
|
20
20
|
"files": [
|
|
21
|
-
"dist/",
|
|
22
|
-
"
|
|
23
|
-
"
|
|
21
|
+
"dist/cli.js",
|
|
22
|
+
"dist/mcp-server.js",
|
|
23
|
+
"dist/daemon/entrypoint.js",
|
|
24
|
+
"dist/share/fonts/",
|
|
25
|
+
"dist/web/",
|
|
26
|
+
"scripts/postinstall.mjs",
|
|
27
|
+
"README.md",
|
|
28
|
+
"LICENSE"
|
|
24
29
|
],
|
|
25
30
|
"scripts": {
|
|
26
31
|
"dev": "tsx src/cli.ts",
|
|
27
|
-
"build": "npm run build:cli && npm run build:web",
|
|
28
|
-
"build:cli": "tsc &&
|
|
32
|
+
"build": "npm run build:cli && npm run build:tooling && npm run build:web",
|
|
33
|
+
"build:cli": "tsc && node scripts/build-bundle.mjs",
|
|
34
|
+
"build:tooling": "tsc -p tooling/tsconfig.json && mkdir -p dist/marketing/prospects && cp tooling/marketing/prospects/schema.sql dist/marketing/prospects/schema.sql && mkdir -p dist/marketing/cold-email/templates && cp -r tooling/marketing/cold-email/templates/defaults dist/marketing/cold-email/templates/defaults && mkdir -p dist/marketing/dashboard && cp tooling/marketing/dashboard/ui.html dist/marketing/dashboard/ui.html && chmod +x dist/marketing/prospects/cli.js dist/marketing/scrapers/cli.js dist/marketing/cold-email/cli.js",
|
|
29
35
|
"build:web": "vite build",
|
|
30
36
|
"dev:web": "vite",
|
|
31
37
|
"start": "node dist/cli.js",
|
|
32
38
|
"typecheck": "tsc --noEmit",
|
|
33
39
|
"recall": "tsx src/cli.ts",
|
|
34
40
|
"test": "npm run test:unit",
|
|
35
|
-
"test:unit": "npm run build:cli && node --test test/*.test.mjs",
|
|
41
|
+
"test:unit": "npm run build:cli && npm run build:tooling && node --test test/*.test.mjs",
|
|
36
42
|
"test:mcp": "npm run build:cli && node --test test/mcp.smoke.test.mjs",
|
|
37
43
|
"test:e2e": "playwright test",
|
|
38
44
|
"test:e2e:ui": "playwright test --ui",
|
|
39
45
|
"test:e2e:debug": "playwright test --debug",
|
|
46
|
+
"tiktok:follow": "tsx tooling/marketing/scrapers/tiktok-auto-follow.ts",
|
|
40
47
|
"version-bump": "node scripts/bump-versions.mjs",
|
|
41
48
|
"version-bump:dry": "node scripts/bump-versions.mjs --dry-run",
|
|
42
49
|
"installs": "node scripts/installs.mjs",
|
|
43
|
-
"prepare": "git config core.hooksPath .githooks"
|
|
50
|
+
"prepare": "[ -d .git ] && git config core.hooksPath .githooks || true",
|
|
51
|
+
"postinstall": "node scripts/postinstall.mjs"
|
|
44
52
|
},
|
|
45
53
|
"keywords": [
|
|
46
54
|
"claude",
|
|
@@ -54,26 +62,54 @@
|
|
|
54
62
|
"license": "SEE LICENSE IN LICENSE",
|
|
55
63
|
"private": false,
|
|
56
64
|
"engines": {
|
|
57
|
-
"node": ">=
|
|
65
|
+
"node": ">=22"
|
|
58
66
|
},
|
|
67
|
+
"os": [
|
|
68
|
+
"darwin",
|
|
69
|
+
"linux",
|
|
70
|
+
"win32"
|
|
71
|
+
],
|
|
72
|
+
"cpu": [
|
|
73
|
+
"x64",
|
|
74
|
+
"arm64"
|
|
75
|
+
],
|
|
59
76
|
"dependencies": {
|
|
60
|
-
"@anthropic-ai/sdk": "^0.
|
|
77
|
+
"@anthropic-ai/sdk": "^0.94.0",
|
|
61
78
|
"@hono/node-server": "^2.0.0",
|
|
62
79
|
"@modelcontextprotocol/sdk": "^1.29.0",
|
|
63
80
|
"@tanstack/react-virtual": "^3.13.24",
|
|
64
|
-
"@
|
|
81
|
+
"@types/d3": "^7.4.3",
|
|
65
82
|
"better-sqlite3": "^12.9.0",
|
|
66
|
-
"
|
|
83
|
+
"bullmq": "^5.76.3",
|
|
67
84
|
"chalk": "^5.3.0",
|
|
68
85
|
"chokidar": "^5.0.0",
|
|
69
86
|
"cli-table3": "^0.6.5",
|
|
70
87
|
"commander": "^14.0.3",
|
|
88
|
+
"d3": "^7.9.0",
|
|
71
89
|
"date-fns": "^4.1.0",
|
|
72
90
|
"dompurify": "^3.4.0",
|
|
91
|
+
"dotenv": "^17.4.2",
|
|
73
92
|
"hono": "^4.6.3",
|
|
93
|
+
"html-to-image": "^1.11.13",
|
|
94
|
+
"html-to-text": "^9.0.5",
|
|
95
|
+
"imapflow": "^1.3.2",
|
|
96
|
+
"ink": "^7.0.1",
|
|
97
|
+
"ink-text-input": "^6.0.0",
|
|
98
|
+
"ioredis": "^5.10.1",
|
|
74
99
|
"jose": "^6.2.2",
|
|
100
|
+
"mailparser": "^3.9.8",
|
|
101
|
+
"nodemailer": "^8.0.7",
|
|
102
|
+
"react": "^19.2.5",
|
|
103
|
+
"satori": "^0.26.0",
|
|
104
|
+
"sharp": "^0.34.5",
|
|
105
|
+
"sqlite-vec": "^0.1.6",
|
|
106
|
+
"ulid": "^3.0.2",
|
|
107
|
+
"wink-bm25-text-search": "^3.1.2",
|
|
75
108
|
"zod": "^4.3.6"
|
|
76
109
|
},
|
|
110
|
+
"optionalDependencies": {
|
|
111
|
+
"@huggingface/transformers": "^3.4.1"
|
|
112
|
+
},
|
|
77
113
|
"devDependencies": {
|
|
78
114
|
"@fontsource/inter": "^5.2.8",
|
|
79
115
|
"@fontsource/jetbrains-mono": "^5.2.8",
|
|
@@ -81,16 +117,20 @@
|
|
|
81
117
|
"@tanstack/react-query": "^5.99.1",
|
|
82
118
|
"@types/better-sqlite3": "^7.6.11",
|
|
83
119
|
"@types/dompurify": "^3.0.5",
|
|
120
|
+
"@types/html-to-text": "^9.0.4",
|
|
121
|
+
"@types/mailparser": "^3.4.6",
|
|
84
122
|
"@types/node": "^25.6.0",
|
|
123
|
+
"@types/nodemailer": "^8.0.0",
|
|
85
124
|
"@types/react": "^19.2.14",
|
|
86
125
|
"@types/react-dom": "^19.2.3",
|
|
87
126
|
"@vitejs/plugin-react": "^6.0.1",
|
|
88
127
|
"autoprefixer": "^10.5.0",
|
|
89
128
|
"clsx": "^2.1.1",
|
|
129
|
+
"esbuild": "^0.28.0",
|
|
90
130
|
"highlight.js": "^11.11.1",
|
|
91
131
|
"marked": "^18.0.2",
|
|
132
|
+
"patchright": "^1.59.4",
|
|
92
133
|
"postcss": "^8.5.10",
|
|
93
|
-
"react": "^19.2.5",
|
|
94
134
|
"react-dom": "^19.2.5",
|
|
95
135
|
"tailwindcss": "^3.4.19",
|
|
96
136
|
"tsx": "^4.19.1",
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
import { existsSync } from 'node:fs';
|
|
3
|
+
import { execSync, spawnSync } from 'node:child_process';
|
|
4
|
+
|
|
5
|
+
const cliPath = 'dist/cli.js';
|
|
6
|
+
|
|
7
|
+
if (!existsSync(cliPath)) {
|
|
8
|
+
console.log('[recall] dist/cli.js missing — rebuilding so the linked CLI keeps working');
|
|
9
|
+
execSync('npm run build:cli', { stdio: 'inherit' });
|
|
10
|
+
}
|
|
11
|
+
|
|
12
|
+
if (process.env.RECALL_SKIP_MODEL_DOWNLOAD === '1') {
|
|
13
|
+
console.log('[recall] RECALL_SKIP_MODEL_DOWNLOAD=1 — skipping embedder model download');
|
|
14
|
+
console.log('[recall] Run `recall semantic install` later to enable vector search');
|
|
15
|
+
process.exit(0);
|
|
16
|
+
}
|
|
17
|
+
|
|
18
|
+
if (process.env.CI === 'true' && process.env.RECALL_FORCE_MODEL_DOWNLOAD !== '1') {
|
|
19
|
+
console.log('[recall] CI environment detected — skipping embedder model download');
|
|
20
|
+
console.log('[recall] Run `recall semantic install` to enable vector search later');
|
|
21
|
+
process.exit(0);
|
|
22
|
+
}
|
|
23
|
+
|
|
24
|
+
console.log('[recall] Installing embedder model bge-base-en-v1.5 (~110MB) so vector search works out of the box…');
|
|
25
|
+
console.log('[recall] set RECALL_SKIP_MODEL_DOWNLOAD=1 to skip; install later with `recall semantic install`');
|
|
26
|
+
|
|
27
|
+
const result = spawnSync(process.execPath, [cliPath, 'semantic', 'install'], {
|
|
28
|
+
stdio: 'inherit',
|
|
29
|
+
env: process.env,
|
|
30
|
+
});
|
|
31
|
+
|
|
32
|
+
if (result.status !== 0) {
|
|
33
|
+
console.warn('[recall] Embedder model download skipped or failed (exit code ' + result.status + ')');
|
|
34
|
+
console.warn('[recall] CLI is installed and working. Run `recall semantic install` later to enable vector search.');
|
|
35
|
+
}
|
|
36
|
+
|
|
37
|
+
// Always exit 0: never block install on model download
|
|
38
|
+
process.exit(0);
|
package/dist/cli.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,69 +0,0 @@
|
|
|
1
|
-
import { hostname } from 'node:os';
|
|
2
|
-
import { randomBytes } from 'node:crypto';
|
|
3
|
-
import { c } from '../utils/format.js';
|
|
4
|
-
import { apiBase } from '../license/api-base.js';
|
|
5
|
-
import { verifyLicenseJwt } from '../license/verify.js';
|
|
6
|
-
import { writeStoredLicense } from '../license/storage.js';
|
|
7
|
-
export async function runActivate(licenseKey) {
|
|
8
|
-
const trimmed = licenseKey.trim();
|
|
9
|
-
if (trimmed.length < 8) {
|
|
10
|
-
console.error(c.warn('License key looks too short. Paste the full key from your purchase email.'));
|
|
11
|
-
process.exit(1);
|
|
12
|
-
}
|
|
13
|
-
const instanceName = `${hostname()}-${randomBytes(4).toString('hex')}`;
|
|
14
|
-
const url = `${apiBase()}/api/license/activate`;
|
|
15
|
-
let response;
|
|
16
|
-
try {
|
|
17
|
-
response = await fetch(url, {
|
|
18
|
-
method: 'POST',
|
|
19
|
-
headers: { 'Content-Type': 'application/json' },
|
|
20
|
-
body: JSON.stringify({ license_key: trimmed, instance_name: instanceName }),
|
|
21
|
-
});
|
|
22
|
-
}
|
|
23
|
-
catch (err) {
|
|
24
|
-
const message = err instanceof Error ? err.message : 'unknown error';
|
|
25
|
-
console.error(c.warn(`Could not reach activation server at ${url}: ${message}`));
|
|
26
|
-
console.error(c.dim('If you are offline, try again when you have a connection.'));
|
|
27
|
-
process.exit(1);
|
|
28
|
-
}
|
|
29
|
-
let body;
|
|
30
|
-
try {
|
|
31
|
-
body = (await response.json());
|
|
32
|
-
}
|
|
33
|
-
catch {
|
|
34
|
-
console.error(c.warn(`Activation server returned invalid JSON (status ${response.status}).`));
|
|
35
|
-
process.exit(1);
|
|
36
|
-
}
|
|
37
|
-
if (response.status !== 200 || !body.license_jwt) {
|
|
38
|
-
const msg = body.error ?? `activation failed (status ${response.status})`;
|
|
39
|
-
console.error(c.warn(`Activation refused: ${msg}`));
|
|
40
|
-
process.exit(1);
|
|
41
|
-
}
|
|
42
|
-
const verified = await verifyLicenseJwt(body.license_jwt);
|
|
43
|
-
if (!verified.valid || !verified.claims) {
|
|
44
|
-
console.error(c.warn(`Server returned a JWT that fails local verification: ${verified.reason ?? 'unknown'}`));
|
|
45
|
-
console.error(c.dim('This usually means the CLI is older than the server, or the public key was rotated.'));
|
|
46
|
-
process.exit(1);
|
|
47
|
-
}
|
|
48
|
-
writeStoredLicense({
|
|
49
|
-
license_jwt: body.license_jwt,
|
|
50
|
-
license_key: trimmed,
|
|
51
|
-
key_short: body.key_short ?? verified.claims.key_short,
|
|
52
|
-
customer_email: body.customer_email ?? verified.claims.email,
|
|
53
|
-
activated_at: new Date().toISOString(),
|
|
54
|
-
tier: 'pro',
|
|
55
|
-
test_mode: Boolean(verified.claims.test_mode),
|
|
56
|
-
});
|
|
57
|
-
console.log();
|
|
58
|
-
console.log(c.bold('Activated.'));
|
|
59
|
-
console.log(` ${c.dim('Tier:')} Pro`);
|
|
60
|
-
console.log(` ${c.dim('Key:')} ${body.key_short ?? verified.claims.key_short}`);
|
|
61
|
-
console.log(` ${c.dim('Email:')} ${body.customer_email ?? verified.claims.email}`);
|
|
62
|
-
if (verified.claims.test_mode) {
|
|
63
|
-
console.log(` ${c.warn('Test mode:')} this license was issued in LemonSqueezy test mode.`);
|
|
64
|
-
}
|
|
65
|
-
console.log();
|
|
66
|
-
console.log(c.dim('Pro features (search, context, MCP, semantic, advanced UI) are now unlocked.'));
|
|
67
|
-
console.log();
|
|
68
|
-
}
|
|
69
|
-
//# sourceMappingURL=activate.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"activate.js","sourceRoot":"","sources":["../../src/commands/activate.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,103 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* `recall audit-secrets` — scan the live SQLite database for any secrets
|
|
3
|
-
* that slipped through past ingest. Useful for confirming that a `--force`
|
|
4
|
-
* reindex actually scrubbed everything, and for seeing where the old
|
|
5
|
-
* cleartext currently lives before you reindex.
|
|
6
|
-
*
|
|
7
|
-
* Read-only by default. Pass --redact to rewrite the offending rows in
|
|
8
|
-
* place (updates content_text, raw_json, and first_user_message).
|
|
9
|
-
*/
|
|
10
|
-
import { getDb } from '../db/client.js';
|
|
11
|
-
import { scanForSecrets, redactSecrets } from '../utils/secret-scanner.js';
|
|
12
|
-
import { c } from '../utils/format.js';
|
|
13
|
-
export async function runAuditSecrets(options) {
|
|
14
|
-
const db = getDb();
|
|
15
|
-
const stats = new Map();
|
|
16
|
-
let rowsScanned = 0;
|
|
17
|
-
let rowsWithSecrets = 0;
|
|
18
|
-
let rowsRedacted = 0;
|
|
19
|
-
const affectedSessions = new Set();
|
|
20
|
-
const rows = db
|
|
21
|
-
.prepare(`SELECT uuid, session_id, content_text, raw_json
|
|
22
|
-
FROM messages
|
|
23
|
-
WHERE content_text IS NOT NULL`)
|
|
24
|
-
.all();
|
|
25
|
-
const updateStmt = db.prepare(`UPDATE messages SET content_text = ?, raw_json = ? WHERE uuid = ?`);
|
|
26
|
-
const tally = (text, sessionId) => {
|
|
27
|
-
const matches = scanForSecrets(text);
|
|
28
|
-
if (matches.length === 0)
|
|
29
|
-
return false;
|
|
30
|
-
for (const m of matches) {
|
|
31
|
-
const s = stats.get(m.pattern) ?? {
|
|
32
|
-
pattern: m.pattern,
|
|
33
|
-
severity: m.severity,
|
|
34
|
-
hits: 0,
|
|
35
|
-
sessions: new Set(),
|
|
36
|
-
};
|
|
37
|
-
s.hits += 1;
|
|
38
|
-
s.sessions.add(sessionId);
|
|
39
|
-
stats.set(m.pattern, s);
|
|
40
|
-
}
|
|
41
|
-
return true;
|
|
42
|
-
};
|
|
43
|
-
process.stdout.write(c.dim(`Scanning ${rows.length.toLocaleString()} messages…\n`));
|
|
44
|
-
for (const r of rows) {
|
|
45
|
-
rowsScanned += 1;
|
|
46
|
-
const hit = tally(r.content_text ?? '', r.session_id) ||
|
|
47
|
-
tally(r.raw_json ?? '', r.session_id);
|
|
48
|
-
if (hit) {
|
|
49
|
-
rowsWithSecrets += 1;
|
|
50
|
-
affectedSessions.add(r.session_id);
|
|
51
|
-
if (options.verbose) {
|
|
52
|
-
process.stderr.write(c.dim(` hit in session ${r.session_id.slice(0, 8)} message ${r.uuid.slice(0, 8)}\n`));
|
|
53
|
-
}
|
|
54
|
-
if (options.redact) {
|
|
55
|
-
const safeContent = redactSecrets(r.content_text ?? '').redacted;
|
|
56
|
-
const safeRaw = r.raw_json ? redactSecrets(r.raw_json).redacted : null;
|
|
57
|
-
updateStmt.run(safeContent, safeRaw, r.uuid);
|
|
58
|
-
rowsRedacted += 1;
|
|
59
|
-
}
|
|
60
|
-
}
|
|
61
|
-
}
|
|
62
|
-
// Also scan first_user_message — that's what shows up in the list view.
|
|
63
|
-
const sessRows = db
|
|
64
|
-
.prepare(`SELECT id, first_user_message FROM sessions
|
|
65
|
-
WHERE first_user_message IS NOT NULL`)
|
|
66
|
-
.all();
|
|
67
|
-
const updateSess = db.prepare('UPDATE sessions SET first_user_message = ? WHERE id = ?');
|
|
68
|
-
let sessionPreviewsRedacted = 0;
|
|
69
|
-
for (const s of sessRows) {
|
|
70
|
-
if (scanForSecrets(s.first_user_message).length > 0) {
|
|
71
|
-
affectedSessions.add(s.id);
|
|
72
|
-
if (options.redact) {
|
|
73
|
-
updateSess.run(redactSecrets(s.first_user_message).redacted, s.id);
|
|
74
|
-
sessionPreviewsRedacted += 1;
|
|
75
|
-
}
|
|
76
|
-
}
|
|
77
|
-
}
|
|
78
|
-
// Report
|
|
79
|
-
process.stdout.write('\n');
|
|
80
|
-
if (stats.size === 0) {
|
|
81
|
-
process.stdout.write(c.ok(`✓ clean — no secrets detected across ${rowsScanned.toLocaleString()} messages.\n`));
|
|
82
|
-
return;
|
|
83
|
-
}
|
|
84
|
-
const sorted = [...stats.values()].sort((a, b) => b.hits - a.hits);
|
|
85
|
-
process.stdout.write(c.warn(`⚠ ${rowsWithSecrets.toLocaleString()} message${rowsWithSecrets === 1 ? '' : 's'} ` +
|
|
86
|
-
`across ${affectedSessions.size.toLocaleString()} session${affectedSessions.size === 1 ? '' : 's'} ` +
|
|
87
|
-
`contain detected secrets.\n\n`));
|
|
88
|
-
process.stdout.write(c.bold(' Pattern Hits Sessions\n'));
|
|
89
|
-
process.stdout.write(c.dim(' ──────────────────────────────────────────────\n'));
|
|
90
|
-
for (const s of sorted) {
|
|
91
|
-
const badge = s.severity === 'high' ? c.err('●') : c.warn('●');
|
|
92
|
-
process.stdout.write(` ${badge} ${s.pattern.padEnd(30)} ${String(s.hits).padStart(5)} ${String(s.sessions.size).padStart(4)}\n`);
|
|
93
|
-
}
|
|
94
|
-
process.stdout.write('\n');
|
|
95
|
-
if (options.redact) {
|
|
96
|
-
process.stdout.write(c.ok(`✓ redacted in place: ${rowsRedacted.toLocaleString()} messages, ${sessionPreviewsRedacted.toLocaleString()} session previews.\n`));
|
|
97
|
-
process.stdout.write(c.dim(' (The source JSONL files at ~/.claude/projects/ were not modified.)\n'));
|
|
98
|
-
}
|
|
99
|
-
else {
|
|
100
|
-
process.stdout.write(c.dim(' Rerun with --redact to scrub these in place, or run `recall index --force`.\n'));
|
|
101
|
-
}
|
|
102
|
-
}
|
|
103
|
-
//# sourceMappingURL=audit-secrets.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"audit-secrets.js","sourceRoot":"","sources":["../../src/commands/audit-secrets.ts"],"names":[],"mappings":"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"}
|
package/dist/commands/blame.js
DELETED
|
@@ -1,35 +0,0 @@
|
|
|
1
|
-
import { c } from '../utils/format.js';
|
|
2
|
-
import { findSessionsByCommit } from '../daemon/git-correlator.js';
|
|
3
|
-
export async function runBlame(sha, options) {
|
|
4
|
-
const trimmed = sha.trim();
|
|
5
|
-
if (!/^[0-9a-fA-F]{4,40}$/.test(trimmed)) {
|
|
6
|
-
console.error(c.err(`not a valid commit SHA: '${sha}'`));
|
|
7
|
-
process.exit(1);
|
|
8
|
-
return;
|
|
9
|
-
}
|
|
10
|
-
const rows = findSessionsByCommit(trimmed);
|
|
11
|
-
if (options.json) {
|
|
12
|
-
console.log(JSON.stringify(rows, null, 2));
|
|
13
|
-
return;
|
|
14
|
-
}
|
|
15
|
-
if (rows.length === 0) {
|
|
16
|
-
console.log('');
|
|
17
|
-
console.log(c.dim(`no correlated sessions for ${trimmed}`));
|
|
18
|
-
console.log(c.dim(` (if you haven't yet, run \`recall correlate\` to backfill)`));
|
|
19
|
-
console.log('');
|
|
20
|
-
return;
|
|
21
|
-
}
|
|
22
|
-
console.log('');
|
|
23
|
-
console.log(`${c.bold('commit')} ${c.accent(rows[0].commitSha.slice(0, 12))} ${c.dim(rows[0].committedAt ?? '')}`);
|
|
24
|
-
if (rows[0].subject)
|
|
25
|
-
console.log(` ${rows[0].subject}`);
|
|
26
|
-
console.log('');
|
|
27
|
-
console.log(c.dim(`authored during ${rows.length} session${rows.length === 1 ? '' : 's'}:`));
|
|
28
|
-
for (const r of rows) {
|
|
29
|
-
const label = r.alias ?? r.sessionId.slice(0, 8);
|
|
30
|
-
console.log(` ${c.accent(label.padEnd(24))} ${c.dim((r.project ?? '').slice(0, 24).padEnd(26))} ${c.dim(r.startedAt ?? '')}`);
|
|
31
|
-
console.log(` ${c.dim(`recall show ${r.sessionId}`)}`);
|
|
32
|
-
}
|
|
33
|
-
console.log('');
|
|
34
|
-
}
|
|
35
|
-
//# sourceMappingURL=blame.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"blame.js","sourceRoot":"","sources":["../../src/commands/blame.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,18 +0,0 @@
|
|
|
1
|
-
import { isVerificationEnabled, setVerificationEnabled } from '../verification/config.js';
|
|
2
|
-
import { c } from '../utils/format.js';
|
|
3
|
-
export function runConfigVerification(action) {
|
|
4
|
-
if (action === 'on') {
|
|
5
|
-
setVerificationEnabled(true);
|
|
6
|
-
process.stdout.write(c.ok('Verification badges enabled.') + '\n');
|
|
7
|
-
return;
|
|
8
|
-
}
|
|
9
|
-
if (action === 'off') {
|
|
10
|
-
setVerificationEnabled(false);
|
|
11
|
-
process.stdout.write('Verification badges disabled.\n');
|
|
12
|
-
return;
|
|
13
|
-
}
|
|
14
|
-
const enabled = isVerificationEnabled();
|
|
15
|
-
process.stdout.write(`Verification badges: ${enabled ? c.ok('ON') : 'OFF'}\n`);
|
|
16
|
-
process.stdout.write(`\nToggle with: recall verify on | off\n`);
|
|
17
|
-
}
|
|
18
|
-
//# sourceMappingURL=config-verification.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"config-verification.js","sourceRoot":"","sources":["../../src/commands/config-verification.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,qBAAqB,EAAE,sBAAsB,EAAE,MAAM,2BAA2B,CAAC;AAC1F,OAAO,EAAE,CAAC,EAAE,MAAM,oBAAoB,CAAC;AAEvC,MAAM,UAAU,qBAAqB,CAAC,MAA0B;IAC9D,IAAI,MAAM,KAAK,IAAI,EAAE,CAAC;QACpB,sBAAsB,CAAC,IAAI,CAAC,CAAC;QAC7B,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,8BAA8B,CAAC,GAAG,IAAI,CAAC,CAAC;QAClE,OAAO;IACT,CAAC;IAED,IAAI,MAAM,KAAK,KAAK,EAAE,CAAC;QACrB,sBAAsB,CAAC,KAAK,CAAC,CAAC;QAC9B,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,iCAAiC,CAAC,CAAC;QACxD,OAAO;IACT,CAAC;IAED,MAAM,OAAO,GAAG,qBAAqB,EAAE,CAAC;IACxC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,wBAAwB,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,KAAK,IAAI,CAAC,CAAC;IAC/E,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,yCAAyC,CAAC,CAAC;AAClE,CAAC"}
|