@clauderecallhq/cli 0.12.1 → 0.61.2

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 (220) hide show
  1. package/LICENSE +37 -17
  2. package/README.md +316 -106
  3. package/dist/cli.js +1641 -361
  4. package/dist/daemon/entrypoint.js +1872 -54
  5. package/dist/mcp-server.js +930 -0
  6. package/dist/share/fonts/Inter-Bold.woff +0 -0
  7. package/dist/share/fonts/Inter-Regular.woff +0 -0
  8. package/dist/share/fonts/JetBrainsMono-Regular.woff +0 -0
  9. package/dist/web/assets/_brand-Bw9uSB4O.js +1 -0
  10. package/dist/web/assets/captureNode-9CVj9vYC.js +2 -0
  11. package/dist/web/assets/card-a-minimal-ujNERzX7.js +1 -0
  12. package/dist/web/assets/card-b-terminal-DpJ_tVpg.js +1 -0
  13. package/dist/web/assets/card-c-gradient-CZXVGuNd.js +1 -0
  14. package/dist/web/assets/card-d-dashboard-CHKD-PnB.js +1 -0
  15. package/dist/web/assets/dist-CWaokT35.js +56 -0
  16. package/dist/web/assets/index-B-HrjaDy.css +1 -0
  17. package/dist/web/assets/index-BZYcD76T.js +633 -0
  18. package/dist/web/assets/jetbrains-mono-latin-700-normal-D3wTyLJW.woff +0 -0
  19. package/dist/web/assets/patterns-BPeZb9N0.js +1 -0
  20. package/dist/web/assets/stats-BSwqSiFU.js +1 -0
  21. package/dist/web/assets/thread-D2AXyhOx.js +1 -0
  22. package/dist/web/index.html +8 -2
  23. package/package.json +57 -16
  24. package/scripts/postinstall.mjs +38 -0
  25. package/dist/cli.js.map +0 -1
  26. package/dist/commands/activate.js +0 -69
  27. package/dist/commands/activate.js.map +0 -1
  28. package/dist/commands/audit-secrets.js +0 -103
  29. package/dist/commands/audit-secrets.js.map +0 -1
  30. package/dist/commands/blame.js +0 -35
  31. package/dist/commands/blame.js.map +0 -1
  32. package/dist/commands/config-verification.js +0 -18
  33. package/dist/commands/config-verification.js.map +0 -1
  34. package/dist/commands/context.js +0 -144
  35. package/dist/commands/context.js.map +0 -1
  36. package/dist/commands/correlate.js +0 -70
  37. package/dist/commands/correlate.js.map +0 -1
  38. package/dist/commands/digest.js +0 -78
  39. package/dist/commands/digest.js.map +0 -1
  40. package/dist/commands/health.js +0 -62
  41. package/dist/commands/health.js.map +0 -1
  42. package/dist/commands/index.js +0 -247
  43. package/dist/commands/index.js.map +0 -1
  44. package/dist/commands/install-extension.js +0 -138
  45. package/dist/commands/install-extension.js.map +0 -1
  46. package/dist/commands/installs.js +0 -128
  47. package/dist/commands/installs.js.map +0 -1
  48. package/dist/commands/license.js +0 -39
  49. package/dist/commands/license.js.map +0 -1
  50. package/dist/commands/list.js +0 -47
  51. package/dist/commands/list.js.map +0 -1
  52. package/dist/commands/mcp.js +0 -29
  53. package/dist/commands/mcp.js.map +0 -1
  54. package/dist/commands/open.js +0 -28
  55. package/dist/commands/open.js.map +0 -1
  56. package/dist/commands/paste.js +0 -154
  57. package/dist/commands/paste.js.map +0 -1
  58. package/dist/commands/projects.js +0 -36
  59. package/dist/commands/projects.js.map +0 -1
  60. package/dist/commands/search.js +0 -67
  61. package/dist/commands/search.js.map +0 -1
  62. package/dist/commands/semantic.js +0 -173
  63. package/dist/commands/semantic.js.map +0 -1
  64. package/dist/commands/show.js +0 -121
  65. package/dist/commands/show.js.map +0 -1
  66. package/dist/commands/start.js +0 -47
  67. package/dist/commands/start.js.map +0 -1
  68. package/dist/commands/stats.js +0 -133
  69. package/dist/commands/stats.js.map +0 -1
  70. package/dist/commands/status.js +0 -45
  71. package/dist/commands/status.js.map +0 -1
  72. package/dist/commands/stop.js +0 -29
  73. package/dist/commands/stop.js.map +0 -1
  74. package/dist/commands/thread.js +0 -396
  75. package/dist/commands/thread.js.map +0 -1
  76. package/dist/context/formatter.js +0 -103
  77. package/dist/context/formatter.js.map +0 -1
  78. package/dist/daemon/auto-tag-config.js +0 -103
  79. package/dist/daemon/auto-tag-config.js.map +0 -1
  80. package/dist/daemon/auto-tag-config.test.js +0 -72
  81. package/dist/daemon/auto-tag-config.test.js.map +0 -1
  82. package/dist/daemon/auto-title-config.js +0 -70
  83. package/dist/daemon/auto-title-config.js.map +0 -1
  84. package/dist/daemon/bulk-title-jobs.js +0 -170
  85. package/dist/daemon/bulk-title-jobs.js.map +0 -1
  86. package/dist/daemon/correlator.js +0 -320
  87. package/dist/daemon/correlator.js.map +0 -1
  88. package/dist/daemon/discover.js +0 -316
  89. package/dist/daemon/discover.js.map +0 -1
  90. package/dist/daemon/editor-detection.js +0 -186
  91. package/dist/daemon/editor-detection.js.map +0 -1
  92. package/dist/daemon/entrypoint.js.map +0 -1
  93. package/dist/daemon/git-correlator.js +0 -256
  94. package/dist/daemon/git-correlator.js.map +0 -1
  95. package/dist/daemon/mcp-installer.js +0 -108
  96. package/dist/daemon/mcp-installer.js.map +0 -1
  97. package/dist/daemon/onboarding-state.js +0 -140
  98. package/dist/daemon/onboarding-state.js.map +0 -1
  99. package/dist/daemon/pidfile.js +0 -57
  100. package/dist/daemon/pidfile.js.map +0 -1
  101. package/dist/daemon/ports.js +0 -48
  102. package/dist/daemon/ports.js.map +0 -1
  103. package/dist/daemon/scanProgressRegistry.js +0 -62
  104. package/dist/daemon/scanProgressRegistry.js.map +0 -1
  105. package/dist/daemon/server.js +0 -2010
  106. package/dist/daemon/server.js.map +0 -1
  107. package/dist/daemon/tag-scanner/anthropic-client.js +0 -40
  108. package/dist/daemon/tag-scanner/anthropic-client.js.map +0 -1
  109. package/dist/daemon/tag-scanner/autopilot.js +0 -131
  110. package/dist/daemon/tag-scanner/autopilot.js.map +0 -1
  111. package/dist/daemon/tag-scanner/claude-cli-driver.js +0 -250
  112. package/dist/daemon/tag-scanner/claude-cli-driver.js.map +0 -1
  113. package/dist/daemon/tag-scanner/orchestrator.js +0 -88
  114. package/dist/daemon/tag-scanner/orchestrator.js.map +0 -1
  115. package/dist/daemon/tag-scanner/prompt.js +0 -46
  116. package/dist/daemon/tag-scanner/prompt.js.map +0 -1
  117. package/dist/daemon/tag-scanner/prompt.test.js +0 -48
  118. package/dist/daemon/tag-scanner/prompt.test.js.map +0 -1
  119. package/dist/daemon/tag-scanner/scan-state.js +0 -49
  120. package/dist/daemon/tag-scanner/scan-state.js.map +0 -1
  121. package/dist/daemon/tag-scanner/session-fetcher.js +0 -82
  122. package/dist/daemon/tag-scanner/session-fetcher.js.map +0 -1
  123. package/dist/daemon/tag-scanner/session-fetcher.test.js +0 -34
  124. package/dist/daemon/tag-scanner/session-fetcher.test.js.map +0 -1
  125. package/dist/daemon/tag-scanner/validator.js +0 -50
  126. package/dist/daemon/tag-scanner/validator.js.map +0 -1
  127. package/dist/daemon/tag-scanner/validator.test.js +0 -41
  128. package/dist/daemon/tag-scanner/validator.test.js.map +0 -1
  129. package/dist/daemon/terminal-registry.js +0 -443
  130. package/dist/daemon/terminal-registry.js.map +0 -1
  131. package/dist/daemon/ui.js +0 -64
  132. package/dist/daemon/ui.js.map +0 -1
  133. package/dist/daemon/watcher.js +0 -256
  134. package/dist/daemon/watcher.js.map +0 -1
  135. package/dist/db/client.js +0 -22
  136. package/dist/db/client.js.map +0 -1
  137. package/dist/db/schema.js +0 -496
  138. package/dist/db/schema.js.map +0 -1
  139. package/dist/license/api-base.js +0 -13
  140. package/dist/license/api-base.js.map +0 -1
  141. package/dist/license/manager.js +0 -43
  142. package/dist/license/manager.js.map +0 -1
  143. package/dist/license/public-key.js +0 -19
  144. package/dist/license/public-key.js.map +0 -1
  145. package/dist/license/storage.js +0 -27
  146. package/dist/license/storage.js.map +0 -1
  147. package/dist/license/verify.js +0 -23
  148. package/dist/license/verify.js.map +0 -1
  149. package/dist/mcp/audit.js +0 -126
  150. package/dist/mcp/audit.js.map +0 -1
  151. package/dist/mcp/prompts.js +0 -180
  152. package/dist/mcp/prompts.js.map +0 -1
  153. package/dist/mcp/server.js +0 -502
  154. package/dist/mcp/server.js.map +0 -1
  155. package/dist/mcp/thread-tools.js +0 -363
  156. package/dist/mcp/thread-tools.js.map +0 -1
  157. package/dist/mcp/write-tools.js +0 -239
  158. package/dist/mcp/write-tools.js.map +0 -1
  159. package/dist/parser/jsonl.js +0 -150
  160. package/dist/parser/jsonl.js.map +0 -1
  161. package/dist/semantic/chunker.js +0 -47
  162. package/dist/semantic/chunker.js.map +0 -1
  163. package/dist/semantic/config.js +0 -74
  164. package/dist/semantic/config.js.map +0 -1
  165. package/dist/semantic/embedder.js +0 -54
  166. package/dist/semantic/embedder.js.map +0 -1
  167. package/dist/semantic/fusion.js +0 -38
  168. package/dist/semantic/fusion.js.map +0 -1
  169. package/dist/semantic/model-download.js +0 -69
  170. package/dist/semantic/model-download.js.map +0 -1
  171. package/dist/semantic/pipeline.js +0 -375
  172. package/dist/semantic/pipeline.js.map +0 -1
  173. package/dist/semantic/query.js +0 -42
  174. package/dist/semantic/query.js.map +0 -1
  175. package/dist/semantic/worker.js +0 -78
  176. package/dist/semantic/worker.js.map +0 -1
  177. package/dist/stats/backfill.js +0 -151
  178. package/dist/stats/backfill.js.map +0 -1
  179. package/dist/stats/health.js +0 -102
  180. package/dist/stats/health.js.map +0 -1
  181. package/dist/stats/query.js +0 -385
  182. package/dist/stats/query.js.map +0 -1
  183. package/dist/utils/aliases.js +0 -107
  184. package/dist/utils/aliases.js.map +0 -1
  185. package/dist/utils/autoCollections.js +0 -635
  186. package/dist/utils/autoCollections.js.map +0 -1
  187. package/dist/utils/autoTitle.js +0 -348
  188. package/dist/utils/autoTitle.js.map +0 -1
  189. package/dist/utils/collections.js +0 -446
  190. package/dist/utils/collections.js.map +0 -1
  191. package/dist/utils/format.js +0 -46
  192. package/dist/utils/format.js.map +0 -1
  193. package/dist/utils/notes.js +0 -270
  194. package/dist/utils/notes.js.map +0 -1
  195. package/dist/utils/paths.js +0 -50
  196. package/dist/utils/paths.js.map +0 -1
  197. package/dist/utils/pricing.js +0 -257
  198. package/dist/utils/pricing.js.map +0 -1
  199. package/dist/utils/secret-scanner.js +0 -166
  200. package/dist/utils/secret-scanner.js.map +0 -1
  201. package/dist/utils/sessionLabel.js +0 -64
  202. package/dist/utils/sessionLabel.js.map +0 -1
  203. package/dist/utils/tags.js +0 -97
  204. package/dist/utils/tags.js.map +0 -1
  205. package/dist/utils/thread-context.js +0 -129
  206. package/dist/utils/thread-context.js.map +0 -1
  207. package/dist/utils/threadFilter.js +0 -18
  208. package/dist/utils/threadFilter.js.map +0 -1
  209. package/dist/utils/threads-titler.js +0 -298
  210. package/dist/utils/threads-titler.js.map +0 -1
  211. package/dist/utils/threads.js +0 -383
  212. package/dist/utils/threads.js.map +0 -1
  213. package/dist/utils/usage.js +0 -76
  214. package/dist/utils/usage.js.map +0 -1
  215. package/dist/verification/compute.js +0 -88
  216. package/dist/verification/compute.js.map +0 -1
  217. package/dist/verification/config.js +0 -34
  218. package/dist/verification/config.js.map +0 -1
  219. package/dist/web/assets/index-CIr6J4Fw.js +0 -1201
  220. package/dist/web/assets/index-Ctc8g9Jw.css +0 -1
@@ -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};
@@ -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
- <script type="module" crossorigin src="./assets/index-CIr6J4Fw.js"></script>
10
- <link rel="stylesheet" crossorigin href="./assets/index-Ctc8g9Jw.css">
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,45 +1,54 @@
1
1
  {
2
2
  "name": "@clauderecallhq/cli",
3
- "version": "0.12.1",
3
+ "version": "0.61.2",
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://github.com/clauderecallhq/.github.git"
9
+ "url": "git+https://gitlab.com/clauderecallhq/clauderecallhq.git"
10
10
  },
11
11
  "bugs": {
12
- "url": "https://github.com/clauderecallhq/.github/issues"
12
+ "url": "https://gitlab.com/clauderecallhq/clauderecallhq/-/issues"
13
13
  },
14
14
  "bin": {
15
15
  "recall": "./dist/cli.js",
16
- "claude-recall-mcp": "./dist/mcp/server.js"
16
+ "claude-recall-mcp": "./dist/mcp-server.js"
17
17
  },
18
18
  "mcpName": "io.github.clauderecallhq/recall",
19
19
  "main": "./dist/cli.js",
20
20
  "files": [
21
- "dist/",
22
- "bin/",
23
- "README.md"
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 && chmod +x dist/cli.js dist/daemon/entrypoint.js dist/mcp/server.js",
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
- "prepare": "git config core.hooksPath .githooks"
49
+ "installs": "node scripts/installs.mjs",
50
+ "prepare": "[ -d .git ] && git config core.hooksPath .githooks || true",
51
+ "postinstall": "node scripts/postinstall.mjs"
43
52
  },
44
53
  "keywords": [
45
54
  "claude",
@@ -53,26 +62,54 @@
53
62
  "license": "SEE LICENSE IN LICENSE",
54
63
  "private": false,
55
64
  "engines": {
56
- "node": ">=20"
65
+ "node": ">=22"
57
66
  },
67
+ "os": [
68
+ "darwin",
69
+ "linux",
70
+ "win32"
71
+ ],
72
+ "cpu": [
73
+ "x64",
74
+ "arm64"
75
+ ],
58
76
  "dependencies": {
59
- "@anthropic-ai/sdk": "^0.91.1",
77
+ "@anthropic-ai/sdk": "^0.94.0",
60
78
  "@hono/node-server": "^2.0.0",
61
79
  "@modelcontextprotocol/sdk": "^1.29.0",
62
80
  "@tanstack/react-virtual": "^3.13.24",
63
- "@huggingface/transformers": "^3.4.1",
81
+ "@types/d3": "^7.4.3",
64
82
  "better-sqlite3": "^12.9.0",
65
- "sqlite-vec": "^0.1.6",
83
+ "bullmq": "^5.76.3",
66
84
  "chalk": "^5.3.0",
67
85
  "chokidar": "^5.0.0",
68
86
  "cli-table3": "^0.6.5",
69
87
  "commander": "^14.0.3",
88
+ "d3": "^7.9.0",
70
89
  "date-fns": "^4.1.0",
71
90
  "dompurify": "^3.4.0",
91
+ "dotenv": "^17.4.2",
72
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",
73
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",
74
108
  "zod": "^4.3.6"
75
109
  },
110
+ "optionalDependencies": {
111
+ "@huggingface/transformers": "^3.4.1"
112
+ },
76
113
  "devDependencies": {
77
114
  "@fontsource/inter": "^5.2.8",
78
115
  "@fontsource/jetbrains-mono": "^5.2.8",
@@ -80,16 +117,20 @@
80
117
  "@tanstack/react-query": "^5.99.1",
81
118
  "@types/better-sqlite3": "^7.6.11",
82
119
  "@types/dompurify": "^3.0.5",
120
+ "@types/html-to-text": "^9.0.4",
121
+ "@types/mailparser": "^3.4.6",
83
122
  "@types/node": "^25.6.0",
123
+ "@types/nodemailer": "^8.0.0",
84
124
  "@types/react": "^19.2.14",
85
125
  "@types/react-dom": "^19.2.3",
86
126
  "@vitejs/plugin-react": "^6.0.1",
87
127
  "autoprefixer": "^10.5.0",
88
128
  "clsx": "^2.1.1",
129
+ "esbuild": "^0.28.0",
89
130
  "highlight.js": "^11.11.1",
90
131
  "marked": "^18.0.2",
132
+ "patchright": "^1.59.4",
91
133
  "postcss": "^8.5.10",
92
- "react": "^19.2.5",
93
134
  "react-dom": "^19.2.5",
94
135
  "tailwindcss": "^3.4.19",
95
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":"AAAA;;;;;;;;GAQG;AACH,OAAO,EAAE,KAAK,EAAE,MAAM,iBAAiB,CAAC;AACxC,OAAO,EAAE,cAAc,EAAE,aAAa,EAAE,MAAM,4BAA4B,CAAC;AAC3E,OAAO,EAAE,CAAC,EAAE,MAAM,oBAAoB,CAAC;AAcvC,MAAM,CAAC,KAAK,UAAU,eAAe,CAAC,OAAqB;IACzD,MAAM,EAAE,GAAG,KAAK,EAAE,CAAC;IACnB,MAAM,KAAK,GAAG,IAAI,GAAG,EAAuB,CAAC;IAC7C,IAAI,WAAW,GAAG,CAAC,CAAC;IACpB,IAAI,eAAe,GAAG,CAAC,CAAC;IACxB,IAAI,YAAY,GAAG,CAAC,CAAC;IACrB,MAAM,gBAAgB,GAAG,IAAI,GAAG,EAAU,CAAC;IAE3C,MAAM,IAAI,GAAG,EAAE;SACZ,OAAO,CACN;;sCAEgC,CACjC;SACA,GAAG,EAKF,CAAC;IAEL,MAAM,UAAU,GAAG,EAAE,CAAC,OAAO,CAC3B,mEAAmE,CACpE,CAAC;IAEF,MAAM,KAAK,GAAG,CAAC,IAAY,EAAE,SAAiB,EAAE,EAAE;QAChD,MAAM,OAAO,GAAG,cAAc,CAAC,IAAI,CAAC,CAAC;QACrC,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC;YAAE,OAAO,KAAK,CAAC;QACvC,KAAK,MAAM,CAAC,IAAI,OAAO,EAAE,CAAC;YACxB,MAAM,CAAC,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI;gBAChC,OAAO,EAAE,CAAC,CAAC,OAAO;gBAClB,QAAQ,EAAE,CAAC,CAAC,QAAQ;gBACpB,IAAI,EAAE,CAAC;gBACP,QAAQ,EAAE,IAAI,GAAG,EAAU;aAC5B,CAAC;YACF,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC;YACZ,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;YAC1B,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC;QAC1B,CAAC;QACD,OAAO,IAAI,CAAC;IACd,CAAC,CAAC;IAEF,OAAO,CAAC,MAAM,CAAC,KAAK,CAClB,CAAC,CAAC,GAAG,CAAC,YAAY,IAAI,CAAC,MAAM,CAAC,cAAc,EAAE,cAAc,CAAC,CAC9D,CAAC;IAEF,KAAK,MAAM,CAAC,IAAI,IAAI,EAAE,CAAC;QACrB,WAAW,IAAI,CAAC,CAAC;QACjB,MAAM,GAAG,GACP,KAAK,CAAC,CAAC,CAAC,YAAY,IAAI,EAAE,EAAE,CAAC,CAAC,UAAU,CAAC;YACzC,KAAK,CAAC,CAAC,CAAC,QAAQ,IAAI,EAAE,EAAE,CAAC,CAAC,UAAU,CAAC,CAAC;QACxC,IAAI,GAAG,EAAE,CAAC;YACR,eAAe,IAAI,CAAC,CAAC;YACrB,gBAAgB,CAAC,GAAG,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC;YACnC,IAAI,OAAO,CAAC,OAAO,EAAE,CAAC;gBACpB,OAAO,CAAC,MAAM,CAAC,KAAK,CAClB,CAAC,CAAC,GAAG,CACH,oBAAoB,CAAC,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,YAAY,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,CAC/E,CACF,CAAC;YACJ,CAAC;YACD,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;gBACnB,MAAM,WAAW,GAAG,aAAa,CAAC,CAAC,CAAC,YAAY,IAAI,EAAE,CAAC,CAAC,QAAQ,CAAC;gBACjE,MAAM,OAAO,GAAG,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC;gBACvE,UAAU,CAAC,GAAG,CAAC,WAAW,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC;gBAC7C,YAAY,IAAI,CAAC,CAAC;YACpB,CAAC;QACH,CAAC;IACH,CAAC;IAED,wEAAwE;IACxE,MAAM,QAAQ,GAAG,EAAE;SAChB,OAAO,CACN;4CACsC,CACvC;SACA,GAAG,EAAuD,CAAC;IAC9D,MAAM,UAAU,GAAG,EAAE,CAAC,OAAO,CAC3B,yDAAyD,CAC1D,CAAC;IACF,IAAI,uBAAuB,GAAG,CAAC,CAAC;IAChC,KAAK,MAAM,CAAC,IAAI,QAAQ,EAAE,CAAC;QACzB,IAAI,cAAc,CAAC,CAAC,CAAC,kBAAkB,CAAC,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACpD,gBAAgB,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;YAC3B,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;gBACnB,UAAU,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC,CAAC,kBAAkB,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC;gBACnE,uBAAuB,IAAI,CAAC,CAAC;YAC/B,CAAC;QACH,CAAC;IACH,CAAC;IAED,SAAS;IACT,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IAC3B,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,EAAE,CAAC;QACrB,OAAO,CAAC,MAAM,CAAC,KAAK,CAClB,CAAC,CAAC,EAAE,CAAC,wCAAwC,WAAW,CAAC,cAAc,EAAE,cAAc,CAAC,CACzF,CAAC;QACF,OAAO;IACT,CAAC;IAED,MAAM,MAAM,GAAG,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC;IACnE,OAAO,CAAC,MAAM,CAAC,KAAK,CAClB,CAAC,CAAC,IAAI,CACJ,KAAK,eAAe,CAAC,cAAc,EAAE,WAAW,eAAe,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,GAAG;QACjF,UAAU,gBAAgB,CAAC,IAAI,CAAC,cAAc,EAAE,WAAW,gBAAgB,CAAC,IAAI,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,GAAG;QACpG,+BAA+B,CAClC,CACF,CAAC;IACF,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,qDAAqD,CAAC,CAAC,CAAC;IACpF,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,oDAAoD,CAAC,CAAC,CAAC;IAClF,KAAK,MAAM,CAAC,IAAI,MAAM,EAAE,CAAC;QACvB,MAAM,KAAK,GAAG,CAAC,CAAC,QAAQ,KAAK,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QAC/D,OAAO,CAAC,MAAM,CAAC,KAAK,CAClB,KAAK,KAAK,IAAI,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC,IAAI,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,MAAM,MAAM,CAAC,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAC9G,CAAC;IACJ,CAAC;IACD,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IAE3B,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;QACnB,OAAO,CAAC,MAAM,CAAC,KAAK,CAClB,CAAC,CAAC,EAAE,CACF,wBAAwB,YAAY,CAAC,cAAc,EAAE,cAAc,uBAAuB,CAAC,cAAc,EAAE,sBAAsB,CAClI,CACF,CAAC;QACF,OAAO,CAAC,MAAM,CAAC,KAAK,CAClB,CAAC,CAAC,GAAG,CACH,wEAAwE,CACzE,CACF,CAAC;IACJ,CAAC;SAAM,CAAC;QACN,OAAO,CAAC,MAAM,CAAC,KAAK,CAClB,CAAC,CAAC,GAAG,CAAC,iFAAiF,CAAC,CACzF,CAAC;IACJ,CAAC;AACH,CAAC"}
@@ -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"}