@surething/cockpit 1.0.219 → 1.0.221
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/.next-prod/BUILD_ID +1 -1
- package/.next-prod/app-path-routes-manifest.json +2 -2
- package/.next-prod/build-manifest.json +2 -2
- package/.next-prod/prerender-manifest.json +3 -3
- package/.next-prod/server/app/_global-error/page.js.nft.json +1 -1
- package/.next-prod/server/app/_global-error/page_client-reference-manifest.js +1 -1
- package/.next-prod/server/app/_global-error.html +1 -1
- package/.next-prod/server/app/_global-error.rsc +1 -1
- package/.next-prod/server/app/_global-error.segments/_full.segment.rsc +1 -1
- package/.next-prod/server/app/_global-error.segments/_global-error/__PAGE__.segment.rsc +1 -1
- package/.next-prod/server/app/_global-error.segments/_global-error.segment.rsc +1 -1
- package/.next-prod/server/app/_global-error.segments/_head.segment.rsc +1 -1
- package/.next-prod/server/app/_global-error.segments/_index.segment.rsc +1 -1
- package/.next-prod/server/app/_global-error.segments/_tree.segment.rsc +1 -1
- package/.next-prod/server/app/_not-found/page.js +1 -1
- package/.next-prod/server/app/_not-found/page.js.nft.json +1 -1
- package/.next-prod/server/app/_not-found/page_client-reference-manifest.js +1 -1
- package/.next-prod/server/app/_not-found.html +1 -1
- package/.next-prod/server/app/_not-found.rsc +2 -2
- package/.next-prod/server/app/_not-found.segments/_full.segment.rsc +2 -2
- package/.next-prod/server/app/_not-found.segments/_head.segment.rsc +1 -1
- package/.next-prod/server/app/_not-found.segments/_index.segment.rsc +2 -2
- package/.next-prod/server/app/_not-found.segments/_not-found/__PAGE__.segment.rsc +1 -1
- package/.next-prod/server/app/_not-found.segments/_not-found.segment.rsc +1 -1
- package/.next-prod/server/app/_not-found.segments/_tree.segment.rsc +1 -1
- package/.next-prod/server/app/api/agent/test/route.js.nft.json +1 -1
- package/.next-prod/server/app/api/bash/route.js.nft.json +1 -1
- package/.next-prod/server/app/api/chat/codex/route.js +2 -2
- package/.next-prod/server/app/api/chat/codex/route.js.nft.json +1 -1
- package/.next-prod/server/app/api/chat/deepseek/route.js +2 -2
- package/.next-prod/server/app/api/chat/deepseek/route.js.nft.json +1 -1
- package/.next-prod/server/app/api/chat/kimi/route.js +2 -2
- package/.next-prod/server/app/api/chat/kimi/route.js.nft.json +1 -1
- package/.next-prod/server/app/api/chat/ollama/route.js +2 -2
- package/.next-prod/server/app/api/chat/ollama/route.js.nft.json +1 -1
- package/.next-prod/server/app/api/chat/pty-input/route.js.nft.json +1 -1
- package/.next-prod/server/app/api/chat/route.js +4 -2
- package/.next-prod/server/app/api/chat/route.js.nft.json +1 -1
- package/.next-prod/server/app/api/claude-stats/route.js.nft.json +1 -1
- package/.next-prod/server/app/api/commands/route.js +1 -1
- package/.next-prod/server/app/api/commands/route.js.nft.json +1 -1
- package/.next-prod/server/app/api/comments/route.js.nft.json +1 -1
- package/.next-prod/server/app/api/db/columns/route.js.nft.json +1 -1
- package/.next-prod/server/app/api/db/connect/route.js.nft.json +1 -1
- package/.next-prod/server/app/api/db/disconnect/route.js.nft.json +1 -1
- package/.next-prod/server/app/api/db/export/route.js.nft.json +1 -1
- package/.next-prod/server/app/api/db/query/route.js.nft.json +1 -1
- package/.next-prod/server/app/api/db/schemas/route.js.nft.json +1 -1
- package/.next-prod/server/app/api/dev/spans/route.js.nft.json +1 -1
- package/.next-prod/server/app/api/extension/version/route.js.nft.json +1 -1
- package/.next-prod/server/app/api/file/route.js.nft.json +1 -1
- package/.next-prod/server/app/api/files/blame/route.js.nft.json +1 -1
- package/.next-prod/server/app/api/files/clipboard/route.js.nft.json +1 -1
- package/.next-prod/server/app/api/files/copy/route.js.nft.json +1 -1
- package/.next-prod/server/app/api/files/delete/route.js.nft.json +1 -1
- package/.next-prod/server/app/api/files/expanded/route.js.nft.json +1 -1
- package/.next-prod/server/app/api/files/index/route.js.nft.json +1 -1
- package/.next-prod/server/app/api/files/init/route.js.nft.json +1 -1
- package/.next-prod/server/app/api/files/paste/route.js.nft.json +1 -1
- package/.next-prod/server/app/api/files/read/route.js.nft.json +1 -1
- package/.next-prod/server/app/api/files/readdir/route.js.nft.json +1 -1
- package/.next-prod/server/app/api/files/recent/route.js.nft.json +1 -1
- package/.next-prod/server/app/api/files/save/route.js.nft.json +1 -1
- package/.next-prod/server/app/api/files/search/route.js.nft.json +1 -1
- package/.next-prod/server/app/api/files/stat/route.js.nft.json +1 -1
- package/.next-prod/server/app/api/files/text/route.js.nft.json +1 -1
- package/.next-prod/server/app/api/git/branch-diff/route.js.nft.json +1 -1
- package/.next-prod/server/app/api/git/branches/route.js.nft.json +1 -1
- package/.next-prod/server/app/api/git/commit-diff/route.js.nft.json +1 -1
- package/.next-prod/server/app/api/git/commits/route.js.nft.json +1 -1
- package/.next-prod/server/app/api/git/diff/route.js.nft.json +1 -1
- package/.next-prod/server/app/api/git/discard/route.js.nft.json +1 -1
- package/.next-prod/server/app/api/git/stage/route.js.nft.json +1 -1
- package/.next-prod/server/app/api/git/status/route.js.nft.json +1 -1
- package/.next-prod/server/app/api/git/unstage/route.js.nft.json +1 -1
- package/.next-prod/server/app/api/git/worktree/route.js.nft.json +1 -1
- package/.next-prod/server/app/api/global-state/route.js.nft.json +1 -1
- package/.next-prod/server/app/api/jupyter/load/route.js.nft.json +1 -1
- package/.next-prod/server/app/api/jupyter/save/route.js.nft.json +1 -1
- package/.next-prod/server/app/api/jupyter/shutdown/route.js.nft.json +1 -1
- package/.next-prod/server/app/api/lsp/definition/route.js.nft.json +1 -1
- package/.next-prod/server/app/api/lsp/hover/route.js.nft.json +1 -1
- package/.next-prod/server/app/api/lsp/references/route.js.nft.json +1 -1
- package/.next-prod/server/app/api/lsp/status/route.js.nft.json +1 -1
- package/.next-prod/server/app/api/lsp/warmup/route.js.nft.json +1 -1
- package/.next-prod/server/app/api/mysql/columns/route.js.nft.json +1 -1
- package/.next-prod/server/app/api/mysql/connect/route.js.nft.json +1 -1
- package/.next-prod/server/app/api/mysql/disconnect/route.js.nft.json +1 -1
- package/.next-prod/server/app/api/mysql/export/route.js.nft.json +1 -1
- package/.next-prod/server/app/api/mysql/query/route.js.nft.json +1 -1
- package/.next-prod/server/app/api/mysql/schemas/route.js.nft.json +1 -1
- package/.next-prod/server/app/api/neo4j/connect/route.js.nft.json +1 -1
- package/.next-prod/server/app/api/neo4j/disconnect/route.js.nft.json +1 -1
- package/.next-prod/server/app/api/neo4j/query/route.js.nft.json +1 -1
- package/.next-prod/server/app/api/neo4j/schema/route.js.nft.json +1 -1
- package/.next-prod/server/app/api/note/route.js.nft.json +1 -1
- package/.next-prod/server/app/api/ollama/models/route.js.nft.json +1 -1
- package/.next-prod/server/app/api/ollama/start/route.js.nft.json +1 -1
- package/.next-prod/server/app/api/open-cursor/route.js.nft.json +1 -1
- package/.next-prod/server/app/api/open-vscode/route.js.nft.json +1 -1
- package/.next-prod/server/app/api/pick-folder/route.js.nft.json +1 -1
- package/.next-prod/server/app/api/pinned-sessions/route.js.nft.json +1 -1
- package/.next-prod/server/app/api/project-settings/route.js.nft.json +1 -1
- package/.next-prod/server/app/api/project-state/route.js.nft.json +1 -1
- package/.next-prod/server/app/api/projectGraph/affected/route.js.nft.json +1 -1
- package/.next-prod/server/app/api/projectGraph/callees/route.js.nft.json +1 -1
- package/.next-prod/server/app/api/projectGraph/callers/route.js.nft.json +1 -1
- package/.next-prod/server/app/api/projectGraph/coedit/route.js.nft.json +1 -1
- package/.next-prod/server/app/api/projectGraph/context/route.js.nft.json +1 -1
- package/.next-prod/server/app/api/projectGraph/file/route.js.nft.json +1 -1
- package/.next-prod/server/app/api/projectGraph/file-functions/route.js.nft.json +1 -1
- package/.next-prod/server/app/api/projectGraph/impact/route.js.nft.json +1 -1
- package/.next-prod/server/app/api/projectGraph/related/route.js.nft.json +1 -1
- package/.next-prod/server/app/api/projectGraph/risk/route.js.nft.json +1 -1
- package/.next-prod/server/app/api/projectGraph/search/route.js.nft.json +1 -1
- package/.next-prod/server/app/api/projects/route.js.nft.json +1 -1
- package/.next-prod/server/app/api/redis/command/route.js.nft.json +1 -1
- package/.next-prod/server/app/api/redis/connect/route.js.nft.json +1 -1
- package/.next-prod/server/app/api/redis/delete/route.js.nft.json +1 -1
- package/.next-prod/server/app/api/redis/disconnect/route.js.nft.json +1 -1
- package/.next-prod/server/app/api/redis/get/route.js.nft.json +1 -1
- package/.next-prod/server/app/api/redis/keys/route.js.nft.json +1 -1
- package/.next-prod/server/app/api/redis/set/route.js.nft.json +1 -1
- package/.next-prod/server/app/api/review/[id]/comments/route.js.nft.json +1 -1
- package/.next-prod/server/app/api/review/[id]/replies/route.js.nft.json +1 -1
- package/.next-prod/server/app/api/review/[id]/route.js.nft.json +1 -1
- package/.next-prod/server/app/api/review/identify/route.js.nft.json +1 -1
- package/.next-prod/server/app/api/review/order/route.js.nft.json +1 -1
- package/.next-prod/server/app/api/review/route.js.nft.json +1 -1
- package/.next-prod/server/app/api/review/share-info/route.js.nft.json +1 -1
- package/.next-prod/server/app/api/review/users/route.js.nft.json +1 -1
- package/.next-prod/server/app/api/scheduled-tasks/route.js +1 -1
- package/.next-prod/server/app/api/scheduled-tasks/route.js.nft.json +1 -1
- package/.next-prod/server/app/api/services/config/route.js.nft.json +1 -1
- package/.next-prod/server/app/api/services/scripts/route.js.nft.json +1 -1
- package/.next-prod/server/app/api/session/[sessionId]/fork/route.js.nft.json +1 -1
- package/.next-prod/server/app/api/session/[sessionId]/history/route.js.nft.json +1 -1
- package/.next-prod/server/app/api/session-by-path/route.js +1 -1
- package/.next-prod/server/app/api/session-by-path/route.js.nft.json +1 -1
- package/.next-prod/server/app/api/sessions/projects/[encodedPath]/route.js.nft.json +1 -1
- package/.next-prod/server/app/api/sessions/projects/route.js.nft.json +1 -1
- package/.next-prod/server/app/api/sessions/route.js.nft.json +1 -1
- package/.next-prod/server/app/api/settings/route.js.nft.json +1 -1
- package/.next-prod/server/app/api/skills/[id]/route.js.nft.json +1 -1
- package/.next-prod/server/app/api/skills/content/route.js.nft.json +1 -1
- package/.next-prod/server/app/api/skills/route.js.nft.json +1 -1
- package/.next-prod/server/app/api/terminal/aliases/route.js.nft.json +1 -1
- package/.next-prod/server/app/api/terminal/autocomplete/route.js.nft.json +1 -1
- package/.next-prod/server/app/api/terminal/bubble-order/route.js.nft.json +1 -1
- package/.next-prod/server/app/api/terminal/env/route.js.nft.json +1 -1
- package/.next-prod/server/app/api/terminal/history/route.js.nft.json +1 -1
- package/.next-prod/server/app/api/version/route.js.nft.json +1 -1
- package/.next-prod/server/app/favicon.ico/route.js.nft.json +1 -1
- package/.next-prod/server/app/manifest.webmanifest/route.js.nft.json +1 -1
- package/.next-prod/server/app/page.js +1 -1
- package/.next-prod/server/app/page.js.nft.json +1 -1
- package/.next-prod/server/app/page_client-reference-manifest.js +1 -1
- package/.next-prod/server/app/project/page.js +1 -1
- package/.next-prod/server/app/project/page.js.nft.json +1 -1
- package/.next-prod/server/app/project/page_client-reference-manifest.js +1 -1
- package/.next-prod/server/app/review/[id]/page.js +1 -1
- package/.next-prod/server/app/review/[id]/page.js.nft.json +1 -1
- package/.next-prod/server/app/review/[id]/page_client-reference-manifest.js +1 -1
- package/.next-prod/server/app-paths-manifest.json +2 -2
- package/.next-prod/server/chunks/{1921.js → 3408.js} +2 -2
- package/.next-prod/server/chunks/3863.js +2 -2
- package/.next-prod/server/chunks/8555.js +836 -0
- package/.next-prod/server/chunks/8916.js +1 -1
- package/.next-prod/server/chunks/9658.js +6 -6
- package/.next-prod/server/middleware-build-manifest.js +1 -1
- package/.next-prod/server/pages/404.html +1 -1
- package/.next-prod/server/pages/500.html +1 -1
- package/.next-prod/server/server-reference-manifest.json +1 -1
- package/.next-prod/static/chunks/{5204-babf0d0290febbec.js → 2759-50f11ab1460db5e0.js} +2 -2
- package/.next-prod/static/chunks/6345-bab6a02df39cb716.js +14 -0
- package/.next-prod/static/chunks/9403-de4673c851686913.js +29 -0
- package/.next-prod/static/chunks/app/{layout-a21c32c2b18fbae2.js → layout-de73b7c59e956b47.js} +1 -1
- package/.next-prod/static/chunks/app/{page-c5dc8ea6f9fc740b.js → page-d539c7c36a32fd49.js} +1 -1
- package/.next-prod/static/chunks/app/project/{page-c5dc8ea6f9fc740b.js → page-d539c7c36a32fd49.js} +1 -1
- package/.next-prod/trace +13 -13
- package/.next-prod/trace-build +1 -1
- package/README.md +2 -1
- package/README.zh.md +2 -1
- package/dist/{chunk-O4P2J44N.mjs → chunk-4S74IEU4.mjs} +1 -1
- package/dist/{chunk-GCYLMG43.mjs → chunk-6BFKFQG5.mjs} +7 -0
- package/dist/{chunk-WOM47O75.mjs → chunk-ICB7IS3A.mjs} +1 -1
- package/dist/httpApi.mjs +2 -2
- package/dist/scheduledTasks.mjs +74 -14
- package/dist/{server-SNB4H35J.mjs → server-Z6V4HKGV.mjs} +2 -2
- package/dist/wsServer.mjs +14 -4
- package/package.json +1 -1
- package/.next-prod/server/chunks/9877.js +0 -511
- package/.next-prod/static/chunks/6321-a2227f1f162bd000.js +0 -29
- package/.next-prod/static/chunks/6345-d9033e1e3d07c277.js +0 -14
- /package/.next-prod/static/{2xsVtkHy1Q-18e5b3DPua → QNr0r0SO5D70hTak_CnhT}/_buildManifest.js +0 -0
- /package/.next-prod/static/{2xsVtkHy1Q-18e5b3DPua → QNr0r0SO5D70hTak_CnhT}/_ssgManifest.js +0 -0
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
"use strict";exports.id=3863,exports.ids=[3863],exports.modules={3863:(a,b,c)=>{c.d(b,{FP:()=>
|
|
1
|
+
"use strict";exports.id=3863,exports.ids=[3863],exports.modules={3863:(a,b,c)=>{c.d(b,{FP:()=>n,Yp:()=>m});var d=c(29021),e=c(21820),f=c(33873),g=c(55511),h=c(14566),i=c(79646);let j=a=>`'${a.replace(/'/g,"'\\''")}'`;function k(a){try{return(0,i.execSync)(`command -v ${a}`,{stdio:"ignore"}),!0}catch{return!1}}let l=new Map;function m(a,b){let c=l.get(a);if(!c)return!1;try{return c(b),!0}catch{return!1}}function n(a){let{cwd:b,prompt:c,onJsonlLine:m,onPtyData:n,onSubmit:o,onComplete:p,onQuestionEsc:q,signal:r,debug:s=!1,idleMs:t=3e3,timeoutMs:u,cols:v=80,rows:w=24,stuckMs:x=1e4,graceMs:y=3e4,onStuck:z}=a,A=a.sessionId||g.randomUUID(),B=!0===a.resume,C=f.join(function(a){let b=a;try{b=d.realpathSync(a)}catch{}let c=b.replace(/\//g,"-");return f.join(e.homedir(),".claude","projects",c)}(b),`${A}.jsonl`),D=function(){let a=f.join(e.tmpdir(),"cockpit-claude-hooks-v2.json"),b=JSON.stringify({hooks:{Stop:[{hooks:[{type:"command",command:"true"}]}],PreToolUse:[{matcher:"AskUserQuestion",hooks:[{type:"command",command:`echo ${j("Interactive questions cannot be displayed in this session. Do NOT retry this tool. Instead, present your questions as plain text in your reply - each question with its options and your recommended choice - then end your turn and wait for the user to answer in the next message.")} >&2; exit 2`}]}]}});try{if(d.readFileSync(a,"utf8")===b)return a}catch{}let c=`${a}.${process.pid}.tmp`;return d.writeFileSync(c,b),d.renameSync(c,a),a}(),E=(...a)=>{s&&console.error("[driver]",...a)},F={"image/png":"png","image/jpeg":"jpg","image/webp":"webp","image/gif":"gif"},G=[];for(let b of a.images||[])try{let a=f.join(e.tmpdir(),`cockpit-pty-img-${g.randomUUID()}.${F[b.media_type]||"png"}`);d.writeFileSync(a,Buffer.from(b.data,"base64")),G.push({path:a,isPng:"image/png"===b.media_type})}catch{}let H=G.length>0&&("darwin"===process.platform||"linux"===process.platform&&(k("wl-copy")||k("xclip"))),I=!H&&G.length?`${c}
|
|
2
2
|
|
|
3
3
|
[Attached image(s)]:
|
|
4
|
-
${G.map(a=>a.path).join("\n")}`:c,J=()=>{for(let a of G){try{d.unlinkSync(a.path)}catch{}try{d.unlinkSync(`${a.path}.png`)}catch{}}};return new Promise(a=>{let c,e=0;try{e=d.readFileSync(C,"utf8").split("\n").filter(Boolean).length}catch{}let f=B?["-r",A,"--dangerously-skip-permissions"]:["--session-id",A,"--dangerously-skip-permissions"];f.push("--settings",D);let g=`claude ${f.join(" ")}`;E("spawn:",g,"| jsonl:",C,"| baseline:",e);let
|
|
4
|
+
${G.map(a=>a.path).join("\n")}`:c,J=()=>{for(let a of G){try{d.unlinkSync(a.path)}catch{}try{d.unlinkSync(`${a.path}.png`)}catch{}}};return new Promise(a=>{let c,e=0;try{e=d.readFileSync(C,"utf8").split("\n").filter(Boolean).length}catch{}let f=B?["-r",A,"--dangerously-skip-permissions"]:["--session-id",A,"--dangerously-skip-permissions"];f.push("--settings",D);let g=`claude ${f.join(" ")}`;E("spawn:",g,"| jsonl:",C,"| baseline:",e);let s=process.env.SHELL||("darwin"===process.platform?"/bin/zsh":"/bin/bash");try{c=h.spawn(s,["--login","-c",g],{name:"xterm-256color",cols:v,rows:w,cwd:b,env:process.env})}catch(b){J(),a({sessionId:A,jsonlPath:C,completed:!1,completedVia:null,exitCode:null,crashed:!0,crashError:`spawn failed: ${String(b)}`,newLines:[]});return}l.set(A,a=>{try{c.write(a)}catch{}});let F="",K=Date.now(),L=!1,M=!1,N=0,O=!1,P=!1,Q=null,R=!1,S=!1,T=e,U=0,V=!1,W=!1,X="",Y=!1,Z=[];c.onData(a=>{if((F+=a).length>2e5&&(F=F.slice(-15e4)),K=Date.now(),n?.(a),!W&&/claude-code\/cli\.js:\d+:\d+/.test(F)){W=!0;let a=F.match(/Cannot read properties of [^\n\x1b]+/);E("CRASH detected:",X=(a?a[0]:"claude-code internal crash").trim()),setTimeout(()=>{if(!S)try{c.kill()}catch{}},100),setTimeout(()=>{if(!S)try{c.kill("SIGKILL")}catch{}},1e3);return}!L&&/Bypass Permissions mode|Yes, I accept/i.test(F)&&(L=!0,E("accept menu → Down + Enter"),setTimeout(()=>c.write("\x1b[B"),400),setTimeout(()=>c.write("\r"),700)),!M&&O&&!P&&/Enter to select.*Esc to cancel/i.test(F)&&(M=!0,E("AskUserQuestion UI detected → ESC + end turn"),q?.(),setTimeout(()=>{try{c.write("\x1b")}catch{}},300),setTimeout(()=>ai("question_esc"),600))});let $=0,_=setInterval(()=>{if(O||S)return;let a=/bypass permissions on|shift\+tab/i.test(F);if(a&&!$&&($=Date.now()),!a)return;let b=Date.now()-K>2200,c=Date.now()-$>4e3;(b||c)&&af()},300),aa=null,ab=setTimeout(()=>{O||S||(E(`not ready after ${x}ms → prompt for manual handling, grace ${y}ms`),z?.(),aa=setTimeout(()=>{if(!O&&!S){Y=!0,E("grace window elapsed and still not ready → kill");try{c.kill()}catch{}setTimeout(()=>{if(!S)try{c.kill("SIGKILL")}catch{}},1500)}},y))},x),ac=()=>{clearTimeout(ab),aa&&clearTimeout(aa)},ad=null,ae=a=>new Promise(b=>{let c=Date.now(),d=setInterval(()=>{((F.match(/\[Image/g)||[]).length>=a||Date.now()-c>2500||S)&&(clearInterval(d),b())},100)});async function af(){if(!O){if(O=!0,ac(),H){ad=function(){try{if("darwin"===process.platform)return(0,i.execSync)("pbpaste",{encoding:"utf8"});if(k("wl-paste"))return(0,i.execSync)("wl-paste -n",{encoding:"utf8"});if(k("xclip"))return(0,i.execSync)("xclip -o -selection clipboard",{encoding:"utf8"})}catch{}return null}();for(let a=0;a<G.length&&!S;a++){if(!function(a,b){try{if("darwin"===process.platform){let c=a;return b||(c=`${a}.png`,(0,i.execSync)(`sips -s format png ${j(a)} --out ${j(c)}`,{stdio:"ignore"})),(0,i.execSync)(`osascript -e 'set the clipboard to (read (POSIX file ${JSON.stringify(c)}) as \xabclass PNGf\xbb)'`,{stdio:"ignore"}),!0}if("linux"===process.platform){if(k("wl-copy"))return(0,i.execSync)(`wl-copy --type image/png < ${j(a)}`,{shell:"/bin/bash",stdio:"ignore"}),!0;if(k("xclip"))return(0,i.execSync)(`xclip -selection clipboard -t image/png -i ${j(a)}`,{stdio:"ignore"}),!0}}catch{}return!1}(G[a].path,G[a].isPng)){E("clipboard set failed, skipping this image");continue}c.write("\x16"),await ae(a+1)}}E("paste prompt + Enter"+(G.length?` (${H?"clipboard":"path"} x${G.length} img)`:"")),c.write("\x1b[200~"+I+"\x1b[201~"),setTimeout(()=>c.write("\r"),250),null!=ad&&setTimeout(()=>{null!=ad&&function(a){try{if("darwin"===process.platform)return void(0,i.execSync)("pbcopy",{input:a});if(k("wl-copy"))return void(0,i.execSync)("wl-copy",{input:a});k("xclip")&&(0,i.execSync)("xclip -selection clipboard",{input:a})}catch{}}(ad)},800),o?.()}}let ag=setInterval(()=>{let a;try{a=d.readFileSync(C,"utf8")}catch{return}let b=a.split("\n").filter(Boolean);for(let a=T;a<b.length;a++){let c;try{c=JSON.parse(b[a])}catch{continue}Z.push(c),U=Date.now(),m?.(c);let d=Array.isArray(c.message?.content)?c.message.content.map(a=>a.type).join(","):"";"assistant"===c.type&&d.includes("text")&&(V=!0),"assistant"===c.type&&Array.isArray(c.message?.content)&&(N+=c.message.content.filter(a=>"tool_use"===a.type&&"AskUserQuestion"===a.name).length)>=3&&!P&&(E(`AskUserQuestion x${N} → break retry loop, end turn`),q?.(),ai("question_loop")),"system"!==c.type||"stop_hook_summary"!==c.subtype||P||ai("stop_hook_summary")}T=b.length},150),ah=setInterval(()=>{!P&&O&&V&&Date.now()-U>t&&Date.now()-K>t&&ai("idle")},300);function ai(a){P||(P=!0,Q=a,E("complete via",a),p?.(a),setTimeout(aj,200))}function aj(){if(!R){R=!0,E("exit: Ctrl+C x2 → SIGHUP → SIGKILL");try{c.write("\x03")}catch{}setTimeout(()=>{try{c.write("\x03")}catch{}},150),setTimeout(()=>{if(!S)try{c.kill()}catch{}},900),setTimeout(()=>{if(!S)try{c.kill("SIGKILL")}catch{}},2e3)}}let ak=()=>{E("aborted → interrupt + guaranteed kill");try{c.write("\x1b"),c.write("\x03")}catch{}setTimeout(()=>{if(!S)try{c.kill()}catch{}},500),setTimeout(()=>{if(!S)try{c.kill("SIGKILL")}catch{}},1500)},al=!1;r&&(r.aborted?ak():(r.addEventListener("abort",ak,{once:!0}),al=!0));let am=u?setTimeout(()=>{if(!S){E("TIMEOUT, killing");try{c.kill()}catch{}setTimeout(()=>{if(!S)try{c.kill("SIGKILL")}catch{}},1500)}},u):null;c.onExit(({exitCode:b})=>{S=!0,clearInterval(ag),clearInterval(_),clearInterval(ah),ac(),am&&clearTimeout(am),l.delete(A),J(),al&&r?.removeEventListener("abort",ak),E("exit code",b,"completed",P,"via",Q),a({sessionId:A,jsonlPath:C,completed:P,completedVia:Q,exitCode:b,crashed:W,crashError:X,timedOut:Y,newLines:Z})})})}}};
|