@sma1lboy/rove 0.9.157 → 0.9.159

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 (57) hide show
  1. package/dist/cli/{chunk-bhv2b63j.js → chunk-0f377y88.js} +1 -1
  2. package/dist/cli/chunk-1w8nmx4v.js +2 -0
  3. package/dist/cli/{chunk-3ry6prwn.js → chunk-3e5n28t6.js} +1 -1
  4. package/dist/cli/{chunk-ksbvcxc3.js → chunk-4728688z.js} +1 -1
  5. package/dist/cli/{chunk-vb4xz8pz.js → chunk-4wrby8xt.js} +3 -3
  6. package/dist/cli/{chunk-mbvk5758.js → chunk-6tgc7mhc.js} +1 -1
  7. package/dist/cli/{chunk-2egeskms.js → chunk-7fy242v4.js} +1 -1
  8. package/dist/cli/{chunk-qch6g9za.js → chunk-9m0tb44t.js} +1 -1
  9. package/dist/cli/{chunk-nss70xwr.js → chunk-9wn8m2rt.js} +1 -1
  10. package/dist/cli/{chunk-t90vnrpk.js → chunk-atzd04e0.js} +1 -1
  11. package/dist/cli/{chunk-2ge9th94.js → chunk-bc93p4fx.js} +1 -1
  12. package/dist/cli/{chunk-940nrpw3.js → chunk-ckqjhfss.js} +1 -1
  13. package/dist/cli/{chunk-mw7az4dy.js → chunk-cpmbj0zg.js} +1 -1
  14. package/dist/cli/{chunk-vjykdnst.js → chunk-dqxzpetd.js} +1 -1
  15. package/dist/cli/{chunk-158gfptx.js → chunk-dxcwhdsx.js} +1 -1
  16. package/dist/cli/chunk-e5f9rdj2.js +2 -0
  17. package/dist/cli/{chunk-3evh2jfe.js → chunk-es4985my.js} +1 -1
  18. package/dist/cli/{chunk-ybcacmqv.js → chunk-g8r9zv1x.js} +1 -1
  19. package/dist/cli/{chunk-7rf1b05j.js → chunk-gf5y2jft.js} +2 -2
  20. package/dist/cli/{chunk-n7n12868.js → chunk-hfdxy3qe.js} +2 -2
  21. package/dist/cli/{chunk-dyxz1ch3.js → chunk-kkc2vejt.js} +1 -1
  22. package/dist/cli/chunk-m4zadw45.js +7 -0
  23. package/dist/cli/{chunk-kth4fmzh.js → chunk-mmfwyc7j.js} +2 -2
  24. package/dist/cli/{chunk-ztb025x6.js → chunk-mxz4jmb8.js} +1 -1
  25. package/dist/cli/{chunk-tvzy1h3c.js → chunk-nsayx0vv.js} +2 -2
  26. package/dist/cli/{chunk-w93ahgrj.js → chunk-pny0ne6r.js} +1 -1
  27. package/dist/cli/{chunk-xcmftf87.js → chunk-pz92vzcv.js} +7 -7
  28. package/dist/cli/{chunk-we0gedwp.js → chunk-qq5z2ev8.js} +1 -1
  29. package/dist/cli/{chunk-exggdhpt.js → chunk-s53jjqyf.js} +1 -1
  30. package/dist/cli/{chunk-eyjbq4ee.js → chunk-s6fcwzyg.js} +2 -2
  31. package/dist/cli/{chunk-vffbdrqa.js → chunk-svndhd3d.js} +1 -1
  32. package/dist/cli/chunk-tb6b5zx4.js +3 -0
  33. package/dist/cli/{chunk-fd2zhddn.js → chunk-w06vgba4.js} +1 -1
  34. package/dist/cli/{chunk-h165zftp.js → chunk-w3gzwzfk.js} +1 -1
  35. package/dist/cli/{chunk-xhte0jhf.js → chunk-w6s06z4a.js} +2 -2
  36. package/dist/cli/chunk-wk7f8ns5.js +7 -0
  37. package/dist/cli/{chunk-mhzv94cg.js → chunk-wt8dc57p.js} +4 -4
  38. package/dist/cli/{chunk-kkvgtey3.js → chunk-wy1rbq5h.js} +1 -1
  39. package/dist/cli/{chunk-ptjc5mtc.js → chunk-xxmyqw1v.js} +1 -1
  40. package/dist/cli/{chunk-fm5s7njg.js → chunk-ynknvkrw.js} +1 -1
  41. package/dist/cli/{chunk-3sah6nks.js → chunk-yxnqzamz.js} +1 -1
  42. package/dist/cli/{chunk-yqvrr5kt.js → chunk-yzwv7g1r.js} +1 -1
  43. package/dist/cli/chunk-zvhrhn88.js +16 -0
  44. package/dist/cli/index.js +3 -3
  45. package/dist/cli/kobe.js +1 -1
  46. package/dist/cli/rove.js +1 -1
  47. package/dist/skills/rove/references/api-flags.md +4 -2
  48. package/dist/web-ui/assets/{harness-DvVhbIUb.js → harness-CUUTBlyr.js} +2 -2
  49. package/dist/web-ui/assets/{index-DrVCJr6C.js → index-DnDZBV-z.js} +2 -2
  50. package/dist/web-ui/index.html +1 -1
  51. package/package.json +1 -1
  52. package/dist/cli/chunk-2f6p2wrk.js +0 -7
  53. package/dist/cli/chunk-d2qjxtfh.js +0 -7
  54. package/dist/cli/chunk-ngnrz33z.js +0 -3
  55. package/dist/cli/chunk-njgxgh1f.js +0 -16
  56. package/dist/cli/chunk-nx7ahbsg.js +0 -2
  57. package/dist/cli/chunk-tpcrsppv.js +0 -2
@@ -1,2 +1,2 @@
1
1
  // @bun
2
- import{releaseBodyLines,runShellUpdater}from"./chunk-2ge9th94.js";import{$jsx,$jsxs,bootPaneHost,pageCloseBindings,require_react_production,useBindings,useRenderer,useT,useTheme}from"./chunk-vb4xz8pz.js";import"./chunk-764bsyb0.js";import"./chunk-xqw5d5rv.js";import"./chunk-h4n8ffqy.js";import"./chunk-6xppe9bj.js";import{BREAKING_VERSIONS,CURRENT_VERSION,UPDATE_COMMAND,breakingVersionsCrossed,fetchReleaseNotes,fetchReleaseSummaries}from"./chunk-dyxz1ch3.js";import"./chunk-fm5s7njg.js";import"./chunk-nss70xwr.js";import"./chunk-fd2zhddn.js";import"./chunk-sdyzxayr.js";import"./chunk-zqfbyq0a.js";import"./chunk-4502n1bk.js";import"./chunk-nm0pq5r6.js";import"./chunk-mqqnk8w7.js";import"./chunk-0wnfq5sx.js";import"./chunk-7j5372wb.js";import"./chunk-mnqxgvyb.js";import"./chunk-5v893waj.js";import"./chunk-xy8be792.js";import"./chunk-a3a9gdc4.js";import"./chunk-2brn8e1y.js";import"./chunk-ch9b1d5y.js";import"./chunk-g56kvet6.js";import"./chunk-k2ckx8zw.js";import"./chunk-pw6yfj10.js";import"./chunk-mcdv19rs.js";import"./chunk-r3k9rbwm.js";import{__toESM}from"./chunk-wqfp8d9w.js";import{TextAttributes}from"@opentui/core";var import_react2=__toESM(require_react_production(),1);var RELEASE_LIMIT=20;function VersionsPage(props){let{theme}=useTheme(),t=useT(),renderer=useRenderer(),[releases,setReleases]=import_react2.useState(null),[cursor,setCursor]=import_react2.useState(0),[notes,setNotes]=import_react2.useState({}),[status,setStatus]=import_react2.useState(null),selected=releases?.[cursor],crossings=selected?breakingVersionsCrossed(CURRENT_VERSION,selected.version):[];import_react2.useEffect(()=>{fetchReleaseSummaries(RELEASE_LIMIT).then((fetched)=>setReleases(fetched))},[]);let selectedVersion=selected?.version;import_react2.useEffect(()=>{if(selectedVersion===void 0||notes[selectedVersion]!==void 0)return;setNotes((cache)=>({...cache,[selectedVersion]:"loading"})),fetchReleaseNotes(selectedVersion).then((fetched)=>{setNotes((cache)=>({...cache,[selectedVersion]:fetched??"missing"}))})},[selectedVersion,notes]);function move(delta){let count=releases?.length??0;if(count===0)return;setCursor((index)=>(index+delta+count)%count)}async function installSelected(){if(!selected)return;setStatus(t("update.statusRunningUpdater")),await new Promise((resolve)=>setTimeout(resolve,30)),await runShellUpdater({renderer,t,targetLabel:selected.version,command:`${UPDATE_COMMAND} -s -- ${selected.version}`})}useBindings(()=>({bindings:[{key:"up",cmd:()=>move(-1)},{key:"down",cmd:()=>move(1)},{key:"k",cmd:()=>move(-1)},{key:"j",cmd:()=>move(1)},{key:"return",cmd:()=>void installSelected()},{key:"u",cmd:()=>void installSelected()},...pageCloseBindings(props.onClose)]}));let selectedNotes=selectedVersion===void 0?void 0:notes[selectedVersion];return $jsxs("box",{flexDirection:"column",flexGrow:1,paddingTop:1,paddingLeft:2,paddingRight:2,children:[$jsxs("box",{flexDirection:"row",justifyContent:"space-between",flexShrink:0,children:[$jsx("text",{fg:theme.text,attributes:TextAttributes.BOLD,wrapMode:"none",children:t("update.versions.pageTitle")}),$jsx("text",{fg:theme.textMuted,wrapMode:"none",onMouseUp:props.onClose,children:t("update.versions.closeHint")})]}),$jsxs("box",{flexDirection:"row",flexGrow:1,paddingTop:1,gap:2,children:[$jsxs("box",{flexDirection:"column",width:26,flexShrink:0,children:[releases===null?$jsx("text",{fg:theme.textMuted,children:t("update.versions.loading")}):null,releases!==null&&releases.length===0?$jsx("text",{fg:theme.textMuted,wrapMode:"word",children:t("update.versions.unavailable")}):null,(releases??[]).map((release,index)=>{let active=index===cursor,tags=[release.version===CURRENT_VERSION?t("update.versions.tagCurrent"):"",index===0?t("update.versions.tagLatest"):"",BREAKING_VERSIONS.includes(release.version)?t("update.versions.tagBreaking"):""].filter(Boolean).join(" ");return $jsxs("box",{flexDirection:"row",gap:1,paddingLeft:1,backgroundColor:active?theme.primary:void 0,onMouseUp:()=>setCursor(index),children:[$jsxs("text",{fg:active?theme.selectedListItemText:theme.text,attributes:release.version===CURRENT_VERSION?TextAttributes.BOLD:void 0,wrapMode:"none",children:["v",release.version]}),tags?$jsx("text",{fg:active?theme.selectedListItemText:theme.textMuted,wrapMode:"none",children:tags}):null]},release.version)})]}),$jsxs("box",{flexDirection:"column",flexGrow:1,flexShrink:1,children:[$jsx("scrollbox",{flexGrow:1,flexShrink:1,stickyScroll:!1,verticalScrollbarOptions:{trackOptions:{foregroundColor:"transparent"}},children:$jsxs("box",{flexDirection:"column",paddingRight:1,paddingBottom:1,gap:0,children:[selectedNotes==="loading"?$jsx("text",{fg:theme.textMuted,children:t("update.loadingNotes")}):null,selectedNotes==="missing"?$jsx("text",{fg:theme.textMuted,wrapMode:"word",children:t("update.notesUnavailable")}):null,selectedNotes!==void 0&&selectedNotes!=="loading"&&selectedNotes!=="missing"?releaseBodyLines(selectedNotes.body).map((line,i)=>$jsx("text",{fg:theme.textMuted,wrapMode:"word",children:line},`${i}:${line}`)):null]})}),crossings.length>0?$jsx("text",{fg:theme.warning,wrapMode:"word",children:t("update.versions.breakingWarning",{versions:crossings.join(", ")})}):null]})]}),status?$jsx("text",{fg:theme.info,wrapMode:"word",children:status}):null,$jsx("box",{flexShrink:0,paddingTop:1,children:$jsx("text",{fg:theme.textMuted,attributes:TextAttributes.DIM,wrapMode:"none",children:t("update.versions.footerHint")})})]})}var INLINE_ROWS=24;async function startVersionsHost(){await bootPaneHost({inlineRows:INLINE_ROWS,setup:()=>({root:()=>$jsx(VersionsPage,{onClose:()=>process.exit(0)})})})}export{startVersionsHost};
2
+ import{releaseBodyLines,runShellUpdater}from"./chunk-bc93p4fx.js";import{$jsx,$jsxs,bootPaneHost,pageCloseBindings,require_react_production,useBindings,useRenderer,useT,useTheme}from"./chunk-4wrby8xt.js";import"./chunk-764bsyb0.js";import"./chunk-xqw5d5rv.js";import"./chunk-h4n8ffqy.js";import"./chunk-6xppe9bj.js";import{BREAKING_VERSIONS,CURRENT_VERSION,UPDATE_COMMAND,breakingVersionsCrossed,fetchReleaseNotes,fetchReleaseSummaries}from"./chunk-kkc2vejt.js";import"./chunk-ynknvkrw.js";import"./chunk-9wn8m2rt.js";import"./chunk-w06vgba4.js";import"./chunk-sdyzxayr.js";import"./chunk-zqfbyq0a.js";import"./chunk-4502n1bk.js";import"./chunk-nm0pq5r6.js";import"./chunk-mqqnk8w7.js";import"./chunk-0wnfq5sx.js";import"./chunk-7j5372wb.js";import"./chunk-mnqxgvyb.js";import"./chunk-5v893waj.js";import"./chunk-xy8be792.js";import"./chunk-a3a9gdc4.js";import"./chunk-2brn8e1y.js";import"./chunk-ch9b1d5y.js";import"./chunk-g56kvet6.js";import"./chunk-k2ckx8zw.js";import"./chunk-pw6yfj10.js";import"./chunk-mcdv19rs.js";import"./chunk-r3k9rbwm.js";import{__toESM}from"./chunk-wqfp8d9w.js";import{TextAttributes}from"@opentui/core";var import_react2=__toESM(require_react_production(),1);var RELEASE_LIMIT=20;function VersionsPage(props){let{theme}=useTheme(),t=useT(),renderer=useRenderer(),[releases,setReleases]=import_react2.useState(null),[cursor,setCursor]=import_react2.useState(0),[notes,setNotes]=import_react2.useState({}),[status,setStatus]=import_react2.useState(null),selected=releases?.[cursor],crossings=selected?breakingVersionsCrossed(CURRENT_VERSION,selected.version):[];import_react2.useEffect(()=>{fetchReleaseSummaries(RELEASE_LIMIT).then((fetched)=>setReleases(fetched))},[]);let selectedVersion=selected?.version;import_react2.useEffect(()=>{if(selectedVersion===void 0||notes[selectedVersion]!==void 0)return;setNotes((cache)=>({...cache,[selectedVersion]:"loading"})),fetchReleaseNotes(selectedVersion).then((fetched)=>{setNotes((cache)=>({...cache,[selectedVersion]:fetched??"missing"}))})},[selectedVersion,notes]);function move(delta){let count=releases?.length??0;if(count===0)return;setCursor((index)=>(index+delta+count)%count)}async function installSelected(){if(!selected)return;setStatus(t("update.statusRunningUpdater")),await new Promise((resolve)=>setTimeout(resolve,30)),await runShellUpdater({renderer,t,targetLabel:selected.version,command:`${UPDATE_COMMAND} -s -- ${selected.version}`})}useBindings(()=>({bindings:[{key:"up",cmd:()=>move(-1)},{key:"down",cmd:()=>move(1)},{key:"k",cmd:()=>move(-1)},{key:"j",cmd:()=>move(1)},{key:"return",cmd:()=>void installSelected()},{key:"u",cmd:()=>void installSelected()},...pageCloseBindings(props.onClose)]}));let selectedNotes=selectedVersion===void 0?void 0:notes[selectedVersion];return $jsxs("box",{flexDirection:"column",flexGrow:1,paddingTop:1,paddingLeft:2,paddingRight:2,children:[$jsxs("box",{flexDirection:"row",justifyContent:"space-between",flexShrink:0,children:[$jsx("text",{fg:theme.text,attributes:TextAttributes.BOLD,wrapMode:"none",children:t("update.versions.pageTitle")}),$jsx("text",{fg:theme.textMuted,wrapMode:"none",onMouseUp:props.onClose,children:t("update.versions.closeHint")})]}),$jsxs("box",{flexDirection:"row",flexGrow:1,paddingTop:1,gap:2,children:[$jsxs("box",{flexDirection:"column",width:26,flexShrink:0,children:[releases===null?$jsx("text",{fg:theme.textMuted,children:t("update.versions.loading")}):null,releases!==null&&releases.length===0?$jsx("text",{fg:theme.textMuted,wrapMode:"word",children:t("update.versions.unavailable")}):null,(releases??[]).map((release,index)=>{let active=index===cursor,tags=[release.version===CURRENT_VERSION?t("update.versions.tagCurrent"):"",index===0?t("update.versions.tagLatest"):"",BREAKING_VERSIONS.includes(release.version)?t("update.versions.tagBreaking"):""].filter(Boolean).join(" ");return $jsxs("box",{flexDirection:"row",gap:1,paddingLeft:1,backgroundColor:active?theme.primary:void 0,onMouseUp:()=>setCursor(index),children:[$jsxs("text",{fg:active?theme.selectedListItemText:theme.text,attributes:release.version===CURRENT_VERSION?TextAttributes.BOLD:void 0,wrapMode:"none",children:["v",release.version]}),tags?$jsx("text",{fg:active?theme.selectedListItemText:theme.textMuted,wrapMode:"none",children:tags}):null]},release.version)})]}),$jsxs("box",{flexDirection:"column",flexGrow:1,flexShrink:1,children:[$jsx("scrollbox",{flexGrow:1,flexShrink:1,stickyScroll:!1,verticalScrollbarOptions:{trackOptions:{foregroundColor:"transparent"}},children:$jsxs("box",{flexDirection:"column",paddingRight:1,paddingBottom:1,gap:0,children:[selectedNotes==="loading"?$jsx("text",{fg:theme.textMuted,children:t("update.loadingNotes")}):null,selectedNotes==="missing"?$jsx("text",{fg:theme.textMuted,wrapMode:"word",children:t("update.notesUnavailable")}):null,selectedNotes!==void 0&&selectedNotes!=="loading"&&selectedNotes!=="missing"?releaseBodyLines(selectedNotes.body).map((line,i)=>$jsx("text",{fg:theme.textMuted,wrapMode:"word",children:line},`${i}:${line}`)):null]})}),crossings.length>0?$jsx("text",{fg:theme.warning,wrapMode:"word",children:t("update.versions.breakingWarning",{versions:crossings.join(", ")})}):null]})]}),status?$jsx("text",{fg:theme.info,wrapMode:"word",children:status}):null,$jsx("box",{flexShrink:0,paddingTop:1,children:$jsx("text",{fg:theme.textMuted,attributes:TextAttributes.DIM,wrapMode:"none",children:t("update.versions.footerHint")})})]})}var INLINE_ROWS=24;async function startVersionsHost(){await bootPaneHost({inlineRows:INLINE_ROWS,setup:()=>({root:()=>$jsx(VersionsPage,{onClose:()=>process.exit(0)})})})}export{startVersionsHost};
@@ -0,0 +1,2 @@
1
+ // @bun
2
+ import{PS_PROBE_TIMEOUT_MS,PsProbeUnavailableError,engineProcessIn,foregroundEngine,foregroundEngineIn,hasAncestor,parsePsSnapshot,psSnapshot,psSnapshotWith,vendorFromArgv}from"./chunk-hfdxy3qe.js";import"./chunk-4gjr08g0.js";import"./chunk-sfv15era.js";import"./chunk-w7zv47mp.js";import"./chunk-gwcneg6c.js";import"./chunk-25hxhtdr.js";import"./chunk-7jkf3tvr.js";import"./chunk-2fypr41w.js";import"./chunk-kt1ppyje.js";import"./chunk-5v893waj.js";import"./chunk-axfn4f28.js";import"./chunk-xy8be792.js";import"./chunk-a3a9gdc4.js";import"./chunk-2brn8e1y.js";import"./chunk-3wj69b0a.js";import"./chunk-ch9b1d5y.js";import"./chunk-bq3fyc0p.js";import"./chunk-p7s4xwgx.js";import"./chunk-4pmd0mxp.js";import"./chunk-g56kvet6.js";import"./chunk-k2ckx8zw.js";import"./chunk-pw6yfj10.js";import"./chunk-mcdv19rs.js";import"./chunk-r3k9rbwm.js";import"./chunk-wqfp8d9w.js";export{vendorFromArgv,psSnapshotWith,psSnapshot,parsePsSnapshot,hasAncestor,foregroundEngineIn,foregroundEngine,engineProcessIn,PsProbeUnavailableError,PS_PROBE_TIMEOUT_MS};
@@ -1,3 +1,3 @@
1
1
  // @bun
2
2
  var ENGINE_ACTIVITY_KINDS=["session-start","turn-start","turn-complete","turn-failed","turn-interrupted","awaiting-input","session-end","tool-pre","tool-post","tool-failed","pre-compact","post-compact","subagent-start","subagent-stop"];function isEngineActivityKind(v){return ENGINE_ACTIVITY_KINDS.includes(v)}var ACTIVITY_STATE_KINDS=["session-start","turn-start","turn-complete","turn-failed","turn-interrupted","awaiting-input","session-end"];function affectsActivityState(kind){return ACTIVITY_STATE_KINDS.includes(kind)}
3
- export{isEngineActivityKind,affectsActivityState};
3
+ export{ENGINE_ACTIVITY_KINDS,isEngineActivityKind,affectsActivityState};
@@ -1,5 +1,5 @@
1
1
  // @bun
2
- import{defaultDaemonLogPath,defaultPtyHostLogPath}from"./chunk-mcdv19rs.js";import"./chunk-r3k9rbwm.js";import"./chunk-wqfp8d9w.js";import{mkdirSync,readFileSync,writeFileSync}from"fs";import{dirname,join}from"path";var REPORT_ENV_SUFFIXES=["HOME_DIR","DAEMON_SOCKET_PATH","SOCKET_PATH","PTY_SOCKET_PATH","DAEMON_WEB_PORT","PTY_PORT","WEB_HOST","BIN_PATH","DEV","DEBUG","TERMINAL_BACKEND","TASK_ID","TAB_ID"],REPORT_ENV_KEYS=["SHELL","TERM","TERM_PROGRAM","TERM_PROGRAM_VERSION","COLORTERM","VISUAL","EDITOR",...REPORT_ENV_SUFFIXES.flatMap((suffix)=>[`ROVE_${suffix}`,`KOBE_${suffix}`]),"ROVE_INVOKED_AS"],LOG_TAIL_LINES=200;function logTail(path,count){try{return readFileSync(path,"utf8").split(`
2
+ import{defaultDaemonLogPath,defaultPtyHostLogPath}from"./chunk-mcdv19rs.js";import"./chunk-r3k9rbwm.js";import"./chunk-wqfp8d9w.js";import{mkdirSync,readFileSync,writeFileSync}from"fs";import{dirname,join}from"path";var REPORT_ENV_SUFFIXES=["HOME_DIR","DAEMON_SOCKET_PATH","SOCKET_PATH","PTY_SOCKET_PATH","PTY_PORT","WEB_HOST","BIN_PATH","DEV","DEBUG","TERMINAL_BACKEND","TASK_ID","TAB_ID"],REPORT_ENV_KEYS=["SHELL","TERM","TERM_PROGRAM","TERM_PROGRAM_VERSION","COLORTERM","VISUAL","EDITOR",...REPORT_ENV_SUFFIXES.flatMap((suffix)=>[`ROVE_${suffix}`,`KOBE_${suffix}`]),"ROVE_INVOKED_AS"],LOG_TAIL_LINES=200;function logTail(path,count){try{return readFileSync(path,"utf8").split(`
3
3
  `).filter((line)=>line.trim().length>0).slice(-count).join(`
4
4
  `)}catch{return""}}function reportEnvLines(env){let shown=new Set(REPORT_ENV_KEYS),keys=new Set(shown);for(let key of Object.keys(env))if(key.startsWith("ROVE_")||key.startsWith("KOBE_"))keys.add(key);return[...keys].sort().map((key)=>{let value=env[key];if(value===void 0)return`${key}=(unset)`;return shown.has(key)?`${key}=${value}`:`${key}=(set)`})}function buildReportBundle(doctorLines,parts){return["# Rove doctor report",`generated: ${parts.generatedAt}`,"","## diagnosis",...doctorLines,"","## environment",...reportEnvLines(parts.env),"",`## daemon.log (last ${LOG_TAIL_LINES} lines)`,parts.daemonLog||"(empty or absent)","",`## pty.log (last ${LOG_TAIL_LINES} lines)`,parts.ptyLog||"(empty or absent)",""].join(`
5
5
  `)}function writeReportBundle(doctorLines){let dir=dirname(defaultDaemonLogPath());mkdirSync(dir,{recursive:!0});let path=join(dir,"rove-doctor-report.txt");return writeFileSync(path,buildReportBundle(doctorLines,{generatedAt:new Date().toISOString(),env:process.env,daemonLog:logTail(defaultDaemonLogPath(),LOG_TAIL_LINES),ptyLog:logTail(defaultPtyHostLogPath(),LOG_TAIL_LINES)})),path}export{writeReportBundle,reportEnvLines,buildReportBundle};