@computesdk/loops 0.1.7 → 0.1.8

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 (67) hide show
  1. package/API.md +3 -2
  2. package/README.md +9 -0
  3. package/dist/assets/{abnfDiagram-VCTEODGH-BKE3wXte.js → abnfDiagram-VCTEODGH-DvAFvtUx.js} +1 -1
  4. package/dist/assets/{arc-C6ZC2rP7.js → arc-BfT_ObJl.js} +1 -1
  5. package/dist/assets/{architectureDiagram-5GKGNRK7-BP4EuLVY.js → architectureDiagram-5GKGNRK7-BSAmaM66.js} +1 -1
  6. package/dist/assets/{blockDiagram-I7D4REHJ-BLw7XXPz.js → blockDiagram-I7D4REHJ-gs0pS4Pu.js} +1 -1
  7. package/dist/assets/{c4Diagram-7LVT6UL2-Bx80SfZM.js → c4Diagram-7LVT6UL2-DndY0BSq.js} +1 -1
  8. package/dist/assets/channel-DY5YiWiz.js +1 -0
  9. package/dist/assets/{chunk-2Q5K7J3B-BPBebY_E.js → chunk-2Q5K7J3B-D1m9_EXZ.js} +1 -1
  10. package/dist/assets/{chunk-5VM5RSS4-QL5btn2z.js → chunk-5VM5RSS4-BhIBf8_r.js} +1 -1
  11. package/dist/assets/{chunk-F27PBJKO-DwZ1yutT.js → chunk-F27PBJKO-dJNMvdyv.js} +1 -1
  12. package/dist/assets/{chunk-IMKFNOWR-D_oIgde6.js → chunk-IMKFNOWR-DgU7bzoT.js} +1 -1
  13. package/dist/assets/{chunk-JWPE2WC7-B7803oA6.js → chunk-JWPE2WC7-Lv2kYUK6.js} +1 -1
  14. package/dist/assets/{chunk-POPQ4Y6H-BVGDPtWK.js → chunk-POPQ4Y6H-BIYuA4wp.js} +1 -1
  15. package/dist/assets/{chunk-SVP7TREG-LBP3GH9l.js → chunk-SVP7TREG-Diaa6DCx.js} +1 -1
  16. package/dist/assets/{chunk-TICWLB2K-BI5m3CJb.js → chunk-TICWLB2K-CfIETJY-.js} +1 -1
  17. package/dist/assets/{chunk-XXDRQBXY-kxt8MH_7.js → chunk-XXDRQBXY-CDxADcjM.js} +1 -1
  18. package/dist/assets/classDiagram-ZZMXUADV-CqqArcQH.js +1 -0
  19. package/dist/assets/classDiagram-v2-VYDZK3BY-CqqArcQH.js +1 -0
  20. package/dist/assets/{cose-bilkent-JH36ORCC-9ujaMun3.js → cose-bilkent-JH36ORCC-0bcWM-Kb.js} +1 -1
  21. package/dist/assets/{cynefin-OW5HDTMX-D-nWdDZr.js → cynefin-OW5HDTMX-8MEtijdt.js} +1 -1
  22. package/dist/assets/{cynefinDiagram-5FMLGOSQ-CI6Scxp6.js → cynefinDiagram-5FMLGOSQ-BqhG1OLj.js} +1 -1
  23. package/dist/assets/{dagre-GXQ25YYZ-B8xNwtVY.js → dagre-GXQ25YYZ-DGjjfS3r.js} +1 -1
  24. package/dist/assets/{diagram-S7CK7UJ4-CbG9exCu.js → diagram-S7CK7UJ4-CxmbNpJp.js} +1 -1
  25. package/dist/assets/{diagram-UQ7AKVKN-DJEVVOdt.js → diagram-UQ7AKVKN-wMr5KidC.js} +1 -1
  26. package/dist/assets/{diagram-VSXAHHWV-DXqMiZ59.js → diagram-VSXAHHWV-Ctn6KmCs.js} +1 -1
  27. package/dist/assets/{diagram-VX7I27RA-BgUsFlGi.js → diagram-VX7I27RA-DIAY_rBa.js} +1 -1
  28. package/dist/assets/{diagram-Z3DM3KII-15W3Mbq6.js → diagram-Z3DM3KII-BP-C0VlN.js} +1 -1
  29. package/dist/assets/{ebnfDiagram-PWID7BFC-QnWuy49w.js → ebnfDiagram-PWID7BFC-CuETSBu4.js} +1 -1
  30. package/dist/assets/{erDiagram-RLTQ6QDP-CtFAKfHK.js → erDiagram-RLTQ6QDP-DJihq6vQ.js} +1 -1
  31. package/dist/assets/{flowDiagram-HODETNUW-BXiSgIdj.js → flowDiagram-HODETNUW-oQI1I7d_.js} +1 -1
  32. package/dist/assets/{ganttDiagram-EL5Y4UJY-0X4MJoKa.js → ganttDiagram-EL5Y4UJY-bgToJYcR.js} +1 -1
  33. package/dist/assets/{gitGraphDiagram-WWUBYQGX-D1RSU4p4.js → gitGraphDiagram-WWUBYQGX-xVnsKMuN.js} +1 -1
  34. package/dist/assets/{highlighted-body-JLMTFACH-DJpqqoLg.js → highlighted-body-JLMTFACH-DW5I3I3F.js} +1 -1
  35. package/dist/assets/{index-B3Ugq2o6.js → index-Dc10Ixdc.js} +8 -8
  36. package/dist/assets/{infoDiagram-27XIBGKW-DHPDHcTh.js → infoDiagram-27XIBGKW-BMAjnK3g.js} +1 -1
  37. package/dist/assets/{ishikawaDiagram-5VMMS53U-BaYQe1ZZ.js → ishikawaDiagram-5VMMS53U-C3k2WliB.js} +1 -1
  38. package/dist/assets/{journeyDiagram-3NMN7TZE-gQ5s_wv1.js → journeyDiagram-3NMN7TZE-Bm3s7CxV.js} +1 -1
  39. package/dist/assets/{kanban-definition-UXKFOSKX-BxwSa57H.js → kanban-definition-UXKFOSKX-wN25TjIt.js} +1 -1
  40. package/dist/assets/{layout-thi9yMYl.js → layout-CUPJrCbg.js} +1 -1
  41. package/dist/assets/{linear-C3tNDt0i.js → linear-CII0x-d9.js} +1 -1
  42. package/dist/assets/{mindmap-definition-YA3MSWOX-D4R4OXev.js → mindmap-definition-YA3MSWOX-t-OCVnG7.js} +1 -1
  43. package/dist/assets/{pegDiagram-XKGWAZYB-BnVd3_9Z.js → pegDiagram-XKGWAZYB-BHUmUuNy.js} +1 -1
  44. package/dist/assets/{pieDiagram-E7YTZNPT-CwX8mvdJ.js → pieDiagram-E7YTZNPT-B130SP36.js} +1 -1
  45. package/dist/assets/{quadrantDiagram-AXDQQJYC-CoiKagpY.js → quadrantDiagram-AXDQQJYC-WJdAbGdI.js} +1 -1
  46. package/dist/assets/{railroadDiagram-O6MQD6OU-DZCee713.js → railroadDiagram-O6MQD6OU-DyIASQMx.js} +1 -1
  47. package/dist/assets/{requirementDiagram-BXWQKSXE-BCksgH3P.js → requirementDiagram-BXWQKSXE-BCwOEVf2.js} +1 -1
  48. package/dist/assets/{sankeyDiagram-P5KCCOFB-B0xOVx2_.js → sankeyDiagram-P5KCCOFB-WZ7QJHcc.js} +1 -1
  49. package/dist/assets/{sequenceDiagram-WJ2MYXX4-8myX-w3k.js → sequenceDiagram-WJ2MYXX4-CVNkeGxk.js} +1 -1
  50. package/dist/assets/{sizeCapture-INFHLROL-DtAA6XEA.js → sizeCapture-INFHLROL-DK3Wt0TI.js} +1 -1
  51. package/dist/assets/{stateDiagram-D77RDMKH-eNo1EA8t.js → stateDiagram-D77RDMKH-BXl_44CS.js} +1 -1
  52. package/dist/assets/stateDiagram-v2-MP3YSRHH-B6Ocr83t.js +1 -0
  53. package/dist/assets/{swimlanes-42K2YHIH-CuZGWGh2.js → swimlanes-42K2YHIH-lLoitUlw.js} +1 -1
  54. package/dist/assets/swimlanesDiagram-VR7AAH4N-CMme7rlS.js +8 -0
  55. package/dist/assets/{timeline-definition-24CTP7MA-lyUBY_Xm.js → timeline-definition-24CTP7MA-DPj_1tiR.js} +1 -1
  56. package/dist/assets/{vennDiagram-4TSXK5OY-BaFKzCtR.js → vennDiagram-4TSXK5OY-JdPNY4X7.js} +1 -1
  57. package/dist/assets/{wardleyDiagram-VM6X3IG4-DMcUcLi9.js → wardleyDiagram-VM6X3IG4-lp9tl8ql.js} +1 -1
  58. package/dist/assets/{xychartDiagram-S5SC5T6Z-BVotbEcG.js → xychartDiagram-S5SC5T6Z-BPS939el.js} +1 -1
  59. package/dist/index.html +1 -1
  60. package/dist/server.mjs +92 -30
  61. package/package.json +2 -2
  62. package/src/shared/types.ts +2 -0
  63. package/dist/assets/channel-D148DRm1.js +0 -1
  64. package/dist/assets/classDiagram-ZZMXUADV-CncavLbb.js +0 -1
  65. package/dist/assets/classDiagram-v2-VYDZK3BY-CncavLbb.js +0 -1
  66. package/dist/assets/stateDiagram-v2-MP3YSRHH-BZn7zD-F.js +0 -1
  67. package/dist/assets/swimlanesDiagram-VR7AAH4N-BG9s9tCY.js +0 -8
package/API.md CHANGED
@@ -43,7 +43,8 @@ await loops.prompt(chat, "make search() faster; bench is node bench.mjs");
43
43
  | `GET /chats/:id/runs` | `Run[]` for a canvas, without the transcript |
44
44
  | `GET /config?chat=` | `{ cwd, keys: [{ key, value, source }] }` — each setting with the file it came from |
45
45
  | `GET /session?run=&name=` | one attempt's transcript (`ParentItem[]`) |
46
- | `GET /diff?run=&name=` | `text/plain` unified diff (`name` is an attempt label or a style; `best` works too) |
46
+ | `GET /diff?run=&name=` | `text/plain` unified diff from the original first-round fork to the candidate (`name` is an attempt label or a style; `best` works too); Apply/rebase does not change this historical baseline. Legacy records without the fork use their recorded execution base. |
47
+ | `GET /files?run=` | `{ files: string[] }` — changed candidate paths using the same historical baseline as `/diff`, not a list of successfully applied paths |
47
48
  | `GET /shot?run=&attempt=&f=` | `image/png` — an attempt's screenshot |
48
49
  | `GET /sheet?run=&f=` | `image/png` — the round's contact sheet |
49
50
  | `GET /size?run=` | `{ bytes, dirs }` — what a run's worktrees hold (what `clean` would free) |
@@ -78,7 +79,7 @@ reader (the client above does) so the token can travel in `Authorization`.
78
79
  | `POST /workspaces/remove` | `{ id }` | close a workspace tab; keep sessions, bindings, and running agents |
79
80
  | `POST /prompt` | `{ chat, text, behavior? }` | send a message; `behavior` is `steer`/`followUp` while running |
80
81
  | `POST /abort` | `{ chat }` | request cancellation of this chat's parent turn; background loops are independent |
81
- | `POST /answer` | `{ chat, question, choice }` | answer a queued question (a "needs you" card) |
82
+ | `POST /answer` | `{ chat, question, choice }` | answer a queued question (a "needs you" card); unknown/cross-chat IDs return 404, answered/expired/superseded decisions return 409 |
82
83
  | `POST /ui` | `{ chat, id, response }` | answer an extension dialog: `{ value }`, `{ confirmed }` or `{ cancelled }` |
83
84
  | `POST /steer` | `{ chat, run, action, … }` | engine actions, below |
84
85
  | `POST /config` | `{ chat, key, value }` | write one setting (the engine's own writer) |
package/README.md CHANGED
@@ -31,10 +31,19 @@ the session is the durable record, and `.pi/loops/` is a rebuildable index plus
31
31
  | the brief / approve card | the extension's `ctx.ui.select`, as an `extension_ui_request` |
32
32
  | diffs, screenshots, sheets | read-only routes over the run's worktrees and archived shots under `.pi/loops/` |
33
33
 
34
+ Outcome questions belong to their exact run and round. Later execution can supersede them (including a recorded
35
+ same-round retry); expired/superseded cards leave Needs you but remain in the conversation with their reason.
36
+ This is derived from Pi's entries, including existing histories, never a manufactured human answer. Generic asks
37
+ remain open until answered or expired. Stale answer submissions are refused; stopping alone does not answer a card.
38
+
34
39
  Completed results keep the metric, candidate check, changed files, and next step together in one header.
35
40
  “Tracked edits applied” requires the engine's recorded `best.applied` commit; answering an Apply question
36
41
  does not prove success. Old records without that fact remain unconfirmed. Added/deleted files are called
37
42
  out separately because the engine's tracked-file apply does not include them. Apply stays in the conversation.
43
+ “Best version vs original” and its file list keep comparing the first round's recorded fork commit to the
44
+ winning candidate, even after Apply, resume, or a checkout rebase. This is historical candidate evidence, not a
45
+ claim that added/deleted files landed in your checkout. Legacy records without that original anchor retain their
46
+ recorded execution-base comparison; the server does not guess an original from a later round or commit parent.
38
47
 
39
48
  A chat's directory comes from Pi itself: each session header records its `cwd`.
40
49
  The server resumes that exact session file in that directory; selecting a workspace cannot move a chat.
@@ -1 +1 @@
1
- import{g as p,r as u,d as a}from"./chunk-SVP7TREG-LBP3GH9l.js";import{p as f}from"./chunk-JWPE2WC7-B7803oA6.js";import{_ as n,l as o}from"./index-B3Ugq2o6.js";import{M as c,b as d}from"./cynefin-OW5HDTMX-D-nWdDZr.js";var v=d().RailroadAbnf.parser.LangiumParser,l=n(e=>{const r=e.alternatives.map(g);return r.length===1?r[0]:{type:"choice",alternatives:r}},"transformAlternation"),g=n(e=>{const r=e.elements.map(y);return r.length===1?r[0]:{type:"sequence",elements:r}},"transformConcatenation"),b=n(e=>{if(e.includes("*")){const[t,s]=e.split("*"),i=t?parseInt(t,10):0,m=s?parseInt(s,10):1/0;return{min:i,max:m}}const r=parseInt(e,10);return{min:r,max:r}},"parseRepeat"),y=n(e=>{const r=A(e.primary);if(!e.repeat)return r;const{min:t,max:s}=b(e.repeat);return t===0&&s===1?{type:"optional",element:r}:{type:"repetition",element:r,min:t,max:s}},"transformElement"),A=n(e=>{switch(e.$type){case"AbnfStringLiteral":return{type:"terminal",value:e.value};case"AbnfNumVal":return{type:"terminal",value:e.value};case"AbnfRuleName":return{type:"nonterminal",name:e.name};case"AbnfGroup":return l(e.element);case"AbnfOptionalGroup":return{type:"optional",element:l(e.element)};default:throw new Error(`Unsupported ABNF primary node: ${e.$type}`)}},"transformPrimary"),P=n(e=>({name:e.name,definition:l(e.definition)}),"transformRule"),h=n(e=>{f(e,a),e.title&&a.setTitle(e.title),e.rules.map(r=>a.addRule(P(r)))},"populateDb"),R={parse:n(e=>{a.clear(),o.debug("[ABNF Parser] Starting Langium parse");const r=v.parse(e);if(r.lexerErrors.length>0||r.parserErrors.length>0)throw new c(r);const t=r.value;o.debug("[ABNF Parser] Parsed rules:",t.rules.length),h(t),o.debug("[ABNF Parser] Parse complete")},"parse"),parser:{yy:a}},w={parser:R,db:a,renderer:u,styles:p};export{w as diagram};
1
+ import{g as p,r as u,d as a}from"./chunk-SVP7TREG-Diaa6DCx.js";import{p as f}from"./chunk-JWPE2WC7-Lv2kYUK6.js";import{_ as n,l as o}from"./index-Dc10Ixdc.js";import{M as c,b as d}from"./cynefin-OW5HDTMX-8MEtijdt.js";var v=d().RailroadAbnf.parser.LangiumParser,l=n(e=>{const r=e.alternatives.map(g);return r.length===1?r[0]:{type:"choice",alternatives:r}},"transformAlternation"),g=n(e=>{const r=e.elements.map(y);return r.length===1?r[0]:{type:"sequence",elements:r}},"transformConcatenation"),b=n(e=>{if(e.includes("*")){const[t,s]=e.split("*"),i=t?parseInt(t,10):0,m=s?parseInt(s,10):1/0;return{min:i,max:m}}const r=parseInt(e,10);return{min:r,max:r}},"parseRepeat"),y=n(e=>{const r=A(e.primary);if(!e.repeat)return r;const{min:t,max:s}=b(e.repeat);return t===0&&s===1?{type:"optional",element:r}:{type:"repetition",element:r,min:t,max:s}},"transformElement"),A=n(e=>{switch(e.$type){case"AbnfStringLiteral":return{type:"terminal",value:e.value};case"AbnfNumVal":return{type:"terminal",value:e.value};case"AbnfRuleName":return{type:"nonterminal",name:e.name};case"AbnfGroup":return l(e.element);case"AbnfOptionalGroup":return{type:"optional",element:l(e.element)};default:throw new Error(`Unsupported ABNF primary node: ${e.$type}`)}},"transformPrimary"),P=n(e=>({name:e.name,definition:l(e.definition)}),"transformRule"),h=n(e=>{f(e,a),e.title&&a.setTitle(e.title),e.rules.map(r=>a.addRule(P(r)))},"populateDb"),R={parse:n(e=>{a.clear(),o.debug("[ABNF Parser] Starting Langium parse");const r=v.parse(e);if(r.lexerErrors.length>0||r.parserErrors.length>0)throw new c(r);const t=r.value;o.debug("[ABNF Parser] Parsed rules:",t.rules.length),h(t),o.debug("[ABNF Parser] Parse complete")},"parse"),parser:{yy:a}},w={parser:R,db:a,renderer:u,styles:p};export{w as diagram};
@@ -1 +1 @@
1
- import{K as ln,L as an,M as y,N as tn,O as X,P as O,Q as _,S as un,T as rn,V as $,X as o,Y as M,Z as sn,$ as on,a0 as fn}from"./index-B3Ugq2o6.js";function cn(l){return l.innerRadius}function yn(l){return l.outerRadius}function gn(l){return l.startAngle}function dn(l){return l.endAngle}function mn(l){return l&&l.padAngle}function pn(l,h,D,S,v,A,N,a){var E=D-l,i=S-h,n=N-v,d=a-A,u=d*E-n*i;if(!(u*u<y))return u=(n*(h-A)-d*(l-v))/u,[l+u*E,h+u*i]}function G(l,h,D,S,v,A,N){var a=l-D,E=h-S,i=(N?A:-A)/$(a*a+E*E),n=i*E,d=-i*a,u=l+n,s=h+d,f=D+n,c=S+d,Q=(u+f)/2,t=(s+c)/2,m=f-u,g=c-s,R=m*m+g*g,T=v-A,P=u*c-f*s,I=(g<0?-1:1)*$(fn(0,T*T*R-P*P)),K=(P*g-m*I)/R,L=(-P*m-g*I)/R,w=(P*g+m*I)/R,p=(-P*m+g*I)/R,x=K-Q,e=L-t,r=w-Q,V=p-t;return x*x+e*e>r*r+V*V&&(K=w,L=p),{cx:K,cy:L,x01:-n,y01:-d,x11:K*(v/T-1),y11:L*(v/T-1)}}function hn(){var l=cn,h=yn,D=M(0),S=null,v=gn,A=dn,N=mn,a=null,E=ln(i);function i(){var n,d,u=+l.apply(this,arguments),s=+h.apply(this,arguments),f=v.apply(this,arguments)-an,c=A.apply(this,arguments)-an,Q=un(c-f),t=c>f;if(a||(a=n=E()),s<u&&(d=s,s=u,u=d),!(s>y))a.moveTo(0,0);else if(Q>tn-y)a.moveTo(s*X(f),s*O(f)),a.arc(0,0,s,f,c,!t),u>y&&(a.moveTo(u*X(c),u*O(c)),a.arc(0,0,u,c,f,t));else{var m=f,g=c,R=f,T=c,P=Q,I=Q,K=N.apply(this,arguments)/2,L=K>y&&(S?+S.apply(this,arguments):$(u*u+s*s)),w=_(un(s-u)/2,+D.apply(this,arguments)),p=w,x=w,e,r;if(L>y){var V=sn(L/u*O(K)),j=sn(L/s*O(K));(P-=V*2)>y?(V*=t?1:-1,R+=V,T-=V):(P=0,R=T=(f+c)/2),(I-=j*2)>y?(j*=t?1:-1,m+=j,g-=j):(I=0,m=g=(f+c)/2)}var Y=s*X(m),Z=s*O(m),z=u*X(T),B=u*O(T);if(w>y){var C=s*X(g),F=s*O(g),H=u*X(R),J=u*O(R),q;if(Q<rn)if(q=pn(Y,Z,H,J,C,F,z,B)){var U=Y-q[0],W=Z-q[1],k=C-q[0],b=F-q[1],nn=1/O(on((U*k+W*b)/($(U*U+W*W)*$(k*k+b*b)))/2),en=$(q[0]*q[0]+q[1]*q[1]);p=_(w,(u-en)/(nn-1)),x=_(w,(s-en)/(nn+1))}else p=x=0}I>y?x>y?(e=G(H,J,Y,Z,s,x,t),r=G(C,F,z,B,s,x,t),a.moveTo(e.cx+e.x01,e.cy+e.y01),x<w?a.arc(e.cx,e.cy,x,o(e.y01,e.x01),o(r.y01,r.x01),!t):(a.arc(e.cx,e.cy,x,o(e.y01,e.x01),o(e.y11,e.x11),!t),a.arc(0,0,s,o(e.cy+e.y11,e.cx+e.x11),o(r.cy+r.y11,r.cx+r.x11),!t),a.arc(r.cx,r.cy,x,o(r.y11,r.x11),o(r.y01,r.x01),!t))):(a.moveTo(Y,Z),a.arc(0,0,s,m,g,!t)):a.moveTo(Y,Z),!(u>y)||!(P>y)?a.lineTo(z,B):p>y?(e=G(z,B,C,F,u,-p,t),r=G(Y,Z,H,J,u,-p,t),a.lineTo(e.cx+e.x01,e.cy+e.y01),p<w?a.arc(e.cx,e.cy,p,o(e.y01,e.x01),o(r.y01,r.x01),!t):(a.arc(e.cx,e.cy,p,o(e.y01,e.x01),o(e.y11,e.x11),!t),a.arc(0,0,u,o(e.cy+e.y11,e.cx+e.x11),o(r.cy+r.y11,r.cx+r.x11),t),a.arc(r.cx,r.cy,p,o(r.y11,r.x11),o(r.y01,r.x01),!t))):a.arc(0,0,u,T,R,t)}if(a.closePath(),n)return a=null,n+""||null}return i.centroid=function(){var n=(+l.apply(this,arguments)+ +h.apply(this,arguments))/2,d=(+v.apply(this,arguments)+ +A.apply(this,arguments))/2-rn/2;return[X(d)*n,O(d)*n]},i.innerRadius=function(n){return arguments.length?(l=typeof n=="function"?n:M(+n),i):l},i.outerRadius=function(n){return arguments.length?(h=typeof n=="function"?n:M(+n),i):h},i.cornerRadius=function(n){return arguments.length?(D=typeof n=="function"?n:M(+n),i):D},i.padRadius=function(n){return arguments.length?(S=n==null?null:typeof n=="function"?n:M(+n),i):S},i.startAngle=function(n){return arguments.length?(v=typeof n=="function"?n:M(+n),i):v},i.endAngle=function(n){return arguments.length?(A=typeof n=="function"?n:M(+n),i):A},i.padAngle=function(n){return arguments.length?(N=typeof n=="function"?n:M(+n),i):N},i.context=function(n){return arguments.length?(a=n??null,i):a},i}export{hn as d};
1
+ import{K as ln,L as an,M as y,N as tn,O as X,P as O,Q as _,S as un,T as rn,V as $,X as o,Y as M,Z as sn,$ as on,a0 as fn}from"./index-Dc10Ixdc.js";function cn(l){return l.innerRadius}function yn(l){return l.outerRadius}function gn(l){return l.startAngle}function dn(l){return l.endAngle}function mn(l){return l&&l.padAngle}function pn(l,h,D,S,v,A,N,a){var E=D-l,i=S-h,n=N-v,d=a-A,u=d*E-n*i;if(!(u*u<y))return u=(n*(h-A)-d*(l-v))/u,[l+u*E,h+u*i]}function G(l,h,D,S,v,A,N){var a=l-D,E=h-S,i=(N?A:-A)/$(a*a+E*E),n=i*E,d=-i*a,u=l+n,s=h+d,f=D+n,c=S+d,Q=(u+f)/2,t=(s+c)/2,m=f-u,g=c-s,R=m*m+g*g,T=v-A,P=u*c-f*s,I=(g<0?-1:1)*$(fn(0,T*T*R-P*P)),K=(P*g-m*I)/R,L=(-P*m-g*I)/R,w=(P*g+m*I)/R,p=(-P*m+g*I)/R,x=K-Q,e=L-t,r=w-Q,V=p-t;return x*x+e*e>r*r+V*V&&(K=w,L=p),{cx:K,cy:L,x01:-n,y01:-d,x11:K*(v/T-1),y11:L*(v/T-1)}}function hn(){var l=cn,h=yn,D=M(0),S=null,v=gn,A=dn,N=mn,a=null,E=ln(i);function i(){var n,d,u=+l.apply(this,arguments),s=+h.apply(this,arguments),f=v.apply(this,arguments)-an,c=A.apply(this,arguments)-an,Q=un(c-f),t=c>f;if(a||(a=n=E()),s<u&&(d=s,s=u,u=d),!(s>y))a.moveTo(0,0);else if(Q>tn-y)a.moveTo(s*X(f),s*O(f)),a.arc(0,0,s,f,c,!t),u>y&&(a.moveTo(u*X(c),u*O(c)),a.arc(0,0,u,c,f,t));else{var m=f,g=c,R=f,T=c,P=Q,I=Q,K=N.apply(this,arguments)/2,L=K>y&&(S?+S.apply(this,arguments):$(u*u+s*s)),w=_(un(s-u)/2,+D.apply(this,arguments)),p=w,x=w,e,r;if(L>y){var V=sn(L/u*O(K)),j=sn(L/s*O(K));(P-=V*2)>y?(V*=t?1:-1,R+=V,T-=V):(P=0,R=T=(f+c)/2),(I-=j*2)>y?(j*=t?1:-1,m+=j,g-=j):(I=0,m=g=(f+c)/2)}var Y=s*X(m),Z=s*O(m),z=u*X(T),B=u*O(T);if(w>y){var C=s*X(g),F=s*O(g),H=u*X(R),J=u*O(R),q;if(Q<rn)if(q=pn(Y,Z,H,J,C,F,z,B)){var U=Y-q[0],W=Z-q[1],k=C-q[0],b=F-q[1],nn=1/O(on((U*k+W*b)/($(U*U+W*W)*$(k*k+b*b)))/2),en=$(q[0]*q[0]+q[1]*q[1]);p=_(w,(u-en)/(nn-1)),x=_(w,(s-en)/(nn+1))}else p=x=0}I>y?x>y?(e=G(H,J,Y,Z,s,x,t),r=G(C,F,z,B,s,x,t),a.moveTo(e.cx+e.x01,e.cy+e.y01),x<w?a.arc(e.cx,e.cy,x,o(e.y01,e.x01),o(r.y01,r.x01),!t):(a.arc(e.cx,e.cy,x,o(e.y01,e.x01),o(e.y11,e.x11),!t),a.arc(0,0,s,o(e.cy+e.y11,e.cx+e.x11),o(r.cy+r.y11,r.cx+r.x11),!t),a.arc(r.cx,r.cy,x,o(r.y11,r.x11),o(r.y01,r.x01),!t))):(a.moveTo(Y,Z),a.arc(0,0,s,m,g,!t)):a.moveTo(Y,Z),!(u>y)||!(P>y)?a.lineTo(z,B):p>y?(e=G(z,B,C,F,u,-p,t),r=G(Y,Z,H,J,u,-p,t),a.lineTo(e.cx+e.x01,e.cy+e.y01),p<w?a.arc(e.cx,e.cy,p,o(e.y01,e.x01),o(r.y01,r.x01),!t):(a.arc(e.cx,e.cy,p,o(e.y01,e.x01),o(e.y11,e.x11),!t),a.arc(0,0,u,o(e.cy+e.y11,e.cx+e.x11),o(r.cy+r.y11,r.cx+r.x11),t),a.arc(r.cx,r.cy,p,o(r.y11,r.x11),o(r.y01,r.x01),!t))):a.arc(0,0,u,T,R,t)}if(a.closePath(),n)return a=null,n+""||null}return i.centroid=function(){var n=(+l.apply(this,arguments)+ +h.apply(this,arguments))/2,d=(+v.apply(this,arguments)+ +A.apply(this,arguments))/2-rn/2;return[X(d)*n,O(d)*n]},i.innerRadius=function(n){return arguments.length?(l=typeof n=="function"?n:M(+n),i):l},i.outerRadius=function(n){return arguments.length?(h=typeof n=="function"?n:M(+n),i):h},i.cornerRadius=function(n){return arguments.length?(D=typeof n=="function"?n:M(+n),i):D},i.padRadius=function(n){return arguments.length?(S=n==null?null:typeof n=="function"?n:M(+n),i):S},i.startAngle=function(n){return arguments.length?(v=typeof n=="function"?n:M(+n),i):v},i.endAngle=function(n){return arguments.length?(A=typeof n=="function"?n:M(+n),i):A},i.padAngle=function(n){return arguments.length?(N=typeof n=="function"?n:M(+n),i):N},i.context=function(n){return arguments.length?(a=n??null,i):a},i}export{hn as d};