strikethroo 3.20.0 → 3.21.1

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/README.md +5 -5
  2. package/dist/__tests__/fixtures/review-gate.d.ts +2 -2
  3. package/dist/__tests__/fixtures/review-gate.js +2 -2
  4. package/dist-web/assets/{arc-Dkjz56tp.js → arc-CI0Wz_RO.js} +1 -1
  5. package/dist-web/assets/{architectureDiagram-3BPJPVTR-iXtuE2mI.js → architectureDiagram-3BPJPVTR-DiPKn_AV.js} +1 -1
  6. package/dist-web/assets/{blockDiagram-GPEHLZMM-kczqnfyf.js → blockDiagram-GPEHLZMM-vhFLf-e4.js} +1 -1
  7. package/dist-web/assets/{c4Diagram-AAUBKEIU-BJb5zuL4.js → c4Diagram-AAUBKEIU-fFHALhIr.js} +1 -1
  8. package/dist-web/assets/channel-BdNTvb9Q.js +1 -0
  9. package/dist-web/assets/{chunk-2J33WTMH-CxV08CGM.js → chunk-2J33WTMH-BUM-nM-I.js} +1 -1
  10. package/dist-web/assets/{chunk-4BX2VUAB-DtevBfEc.js → chunk-4BX2VUAB-DMmn86U5.js} +1 -1
  11. package/dist-web/assets/{chunk-55IACEB6-B5EwdX60.js → chunk-55IACEB6-DCCv7gPx.js} +1 -1
  12. package/dist-web/assets/{chunk-727SXJPM-CDMVQwiZ.js → chunk-727SXJPM-DHl7abi4.js} +1 -1
  13. package/dist-web/assets/{chunk-AQP2D5EJ-Cmi-q7qs.js → chunk-AQP2D5EJ-D8B20QQU.js} +1 -1
  14. package/dist-web/assets/{chunk-FMBD7UC4-DM0JjfXm.js → chunk-FMBD7UC4-C8wIp3c7.js} +1 -1
  15. package/dist-web/assets/{chunk-ND2GUHAM-D_0KBuvp.js → chunk-ND2GUHAM-CsqZbutS.js} +1 -1
  16. package/dist-web/assets/{chunk-QZHKN3VN-DgjBVdN3.js → chunk-QZHKN3VN-CnJcl9TY.js} +1 -1
  17. package/dist-web/assets/classDiagram-4FO5ZUOK-pTWZKccN.js +1 -0
  18. package/dist-web/assets/classDiagram-v2-Q7XG4LA2-pTWZKccN.js +1 -0
  19. package/dist-web/assets/{cose-bilkent-S5V4N54A-2X_oMTrS.js → cose-bilkent-S5V4N54A-BVfRNCXu.js} +1 -1
  20. package/dist-web/assets/{dagre-BM42HDAG-CQ4PLmJ7.js → dagre-BM42HDAG-DLUHSqN2.js} +1 -1
  21. package/dist-web/assets/{diagram-2AECGRRQ-CUIYVugk.js → diagram-2AECGRRQ-DWtRGFb5.js} +1 -1
  22. package/dist-web/assets/{diagram-5GNKFQAL-CUN46biX.js → diagram-5GNKFQAL-CpLug81g.js} +1 -1
  23. package/dist-web/assets/{diagram-KO2AKTUF-BwGE9mXP.js → diagram-KO2AKTUF-CXD6YxHT.js} +1 -1
  24. package/dist-web/assets/{diagram-LMA3HP47-BFvYljso.js → diagram-LMA3HP47-C25CLd27.js} +1 -1
  25. package/dist-web/assets/{diagram-OG6HWLK6-DQESoNO6.js → diagram-OG6HWLK6-ZVs7D5JT.js} +1 -1
  26. package/dist-web/assets/{erDiagram-TEJ5UH35-Xxa-C-7C.js → erDiagram-TEJ5UH35-CN4IlbMW.js} +1 -1
  27. package/dist-web/assets/{flowDiagram-I6XJVG4X-ZXlcl3FI.js → flowDiagram-I6XJVG4X-C1yrTexh.js} +1 -1
  28. package/dist-web/assets/{ganttDiagram-6RSMTGT7-639zZEJn.js → ganttDiagram-6RSMTGT7-jKZ-OaAQ.js} +1 -1
  29. package/dist-web/assets/{gitGraphDiagram-PVQCEYII-D378NwPP.js → gitGraphDiagram-PVQCEYII-18PcsPEi.js} +1 -1
  30. package/dist-web/assets/{index-CV3f_nEk.js → index-D1jtB4Z6.js} +4 -4
  31. package/dist-web/assets/{index-CltC0Z0l.js → index-D1qW8oIz.js} +1 -1
  32. package/dist-web/assets/{index-D_u5u8Jp.js → index-D9UUG7EG.js} +1 -1
  33. package/dist-web/assets/{infoDiagram-5YYISTIA-hm0Rm8Hk.js → infoDiagram-5YYISTIA-PDz79bKv.js} +1 -1
  34. package/dist-web/assets/{ishikawaDiagram-YF4QCWOH-BKaNXRNm.js → ishikawaDiagram-YF4QCWOH-En6s8Uwq.js} +1 -1
  35. package/dist-web/assets/{journeyDiagram-JHISSGLW-BTesZrhR.js → journeyDiagram-JHISSGLW-DQa9SKmH.js} +1 -1
  36. package/dist-web/assets/{kanban-definition-UN3LZRKU-zH4yTzK-.js → kanban-definition-UN3LZRKU-CdNvJO-a.js} +1 -1
  37. package/dist-web/assets/{linear-DydrltGo.js → linear-CyHC1UJZ.js} +1 -1
  38. package/dist-web/assets/{mermaid.core-6sggtY9D.js → mermaid.core-DhuCG6HG.js} +4 -4
  39. package/dist-web/assets/{mindmap-definition-RKZ34NQL-D-SKqSV7.js → mindmap-definition-RKZ34NQL-jL13DOXt.js} +1 -1
  40. package/dist-web/assets/{pieDiagram-4H26LBE5-CixbznXI.js → pieDiagram-4H26LBE5-DqvzGtOq.js} +1 -1
  41. package/dist-web/assets/{quadrantDiagram-W4KKPZXB-Bp_r3xZ_.js → quadrantDiagram-W4KKPZXB-CSho20Lx.js} +1 -1
  42. package/dist-web/assets/{requirementDiagram-4Y6WPE33-DBI0I-yH.js → requirementDiagram-4Y6WPE33-CkM3G3jW.js} +1 -1
  43. package/dist-web/assets/{sankeyDiagram-5OEKKPKP-L9aDe73z.js → sankeyDiagram-5OEKKPKP-u4kruEYt.js} +1 -1
  44. package/dist-web/assets/{sequenceDiagram-3UESZ5HK-DKDg2YBx.js → sequenceDiagram-3UESZ5HK-jaQA7KOJ.js} +1 -1
  45. package/dist-web/assets/{stateDiagram-AJRCARHV-BNOyMtbE.js → stateDiagram-AJRCARHV-BsXa3zaY.js} +1 -1
  46. package/dist-web/assets/stateDiagram-v2-BHNVJYJU-Fvsq6oHn.js +1 -0
  47. package/dist-web/assets/{timeline-definition-PNZ67QCA-TxrVYrFx.js → timeline-definition-PNZ67QCA-mTdgqUKu.js} +1 -1
  48. package/dist-web/assets/{vennDiagram-CIIHVFJN-Dy10qwes.js → vennDiagram-CIIHVFJN-D5GLA7Kr.js} +1 -1
  49. package/dist-web/assets/{wardley-L42UT6IY-BK34Wfx4.js → wardley-L42UT6IY-B7kWs2q_.js} +1 -1
  50. package/dist-web/assets/{wardleyDiagram-YWT4CUSO-CVrRTSrA.js → wardleyDiagram-YWT4CUSO-C7K7YQAq.js} +1 -1
  51. package/dist-web/assets/{xychartDiagram-2RQKCTM6-C5I6dcA4.js → xychartDiagram-2RQKCTM6-CqG434Jj.js} +1 -1
  52. package/dist-web/index.html +1 -1
  53. package/package.json +1 -1
  54. package/templates/harness/skills/st-code-review/SKILL.md +3 -22
  55. package/templates/harness/skills/st-code-review/scripts/code-review.cjs +65 -59
  56. package/templates/harness/skills/st-create-plan/SKILL.md +2 -15
  57. package/templates/harness/skills/st-execute-blueprint/SKILL.md +47 -75
  58. package/templates/harness/skills/st-execute-task/SKILL.md +38 -69
  59. package/templates/harness/skills/st-full-workflow/SKILL.md +49 -94
  60. package/templates/harness/skills/st-generate-tasks/SKILL.md +4 -34
  61. package/templates/harness/skills/st-refine-plan/SKILL.md +16 -47
  62. package/templates/strikethroo/config/config.yaml +10 -9
  63. package/templates/strikethroo/config/schemas/self-review-v2.xsd +13 -34
  64. package/dist-web/assets/channel-8nB_gBIH.js +0 -1
  65. package/dist-web/assets/classDiagram-4FO5ZUOK-q25i6fzz.js +0 -1
  66. package/dist-web/assets/classDiagram-v2-Q7XG4LA2-q25i6fzz.js +0 -1
  67. package/dist-web/assets/stateDiagram-v2-BHNVJYJU-eUEoteIn.js +0 -1
package/README.md CHANGED
@@ -43,7 +43,7 @@ Correcting a plan costs a sentence. Correcting the same misunderstanding in a di
43
43
 
44
44
  ### Guarantees are compiled, not requested
45
45
 
46
- A rule in Markdown is a request; a rule in TypeScript is a guarantee. Hooks and templates are yours to edit. Termination bounds, safety floors, and fail-safe defaults are compiled -- `MAX_REVIEW_ROUNDS` can be tightened by config and raised by nothing.
46
+ A rule in Markdown is a request; a rule in TypeScript is a guarantee. Hooks and templates are yours to edit. The certification rule -- an uncertified review is never reported as a clean one -- is compiled and cannot be loosened by editing a hook.
47
47
 
48
48
  </td>
49
49
  </tr>
@@ -54,7 +54,7 @@ A rule in Markdown is a request; a rule in TypeScript is a guarantee. Hooks and
54
54
 
55
55
  ### Nobody marks their own homework
56
56
 
57
- The optional review gate runs on a *different* harness than the one that wrote the code -- the current harness is structurally excluded from the candidate set, not merely deprioritized. The reviewer detects and never fixes; remediation is dispatched separately.
57
+ The optional review gate runs on a *different* harness than the one that wrote the code -- the current harness is structurally excluded from the candidate set, not merely deprioritized. The reviewer detects and never fixes; findings are reported for you to act on.
58
58
 
59
59
  </td>
60
60
  <td width="50%" valign="top">
@@ -130,11 +130,11 @@ flowchart LR
130
130
  |-------------|---------------------------------|---------------------------------------------------------|
131
131
  | **Plan** | `/st-create-plan <your prompt>` | `.ai/strikethroo/plans/64--auth/plan-64--auth.md` |
132
132
  | **Execute** | `/st-execute-blueprint 64` | Task blueprint, then working code, one commit per phase |
133
- | **Review** | Automatic (optional) | Findings validated against schema; bounded fixes |
133
+ | **Review** | Automatic (optional) | Findings validated against schema; report-only |
134
134
 
135
135
  `st-execute-blueprint` decomposes the plan into atomic tasks and builds the dependency-mapped blueprint itself when one does not exist yet. Run `/st-generate-tasks 64` on its own only when you want to inspect or hand-tune the blueprint before execution starts.
136
136
 
137
- Your review lands on the plan, before any code exists -- that is where a correction costs a sentence. Each step runs with clean context: the planning agent sees only the work order, and each execution sub-agent receives only its specific task. After execution, an optional automated review gate runs on a discovered second harness, critiques the cumulative diff, and drives bounded remediation if findings exceed configured thresholds.
137
+ Your review lands on the plan, before any code exists -- that is where a correction costs a sentence. Each step runs with clean context: the planning agent sees only the work order, and each execution sub-agent receives only its specific task. After execution, an optional automated review gate runs once on a discovered second harness, critiques the cumulative diff, and reports schema-validated findings for you to act on.
138
138
 
139
139
  See the [Workflow Guide](https://strikethroo.canpicasoft.com/workflow.html) for the full step-by-step with advanced patterns. Once a plan exists, visualize its plans, tasks, and dependency graph in [Visualizations](https://strikethroo.canpicasoft.com/visualizations.html).
140
140
 
@@ -161,7 +161,7 @@ Reads your workspace and reports internal inconsistencies -- missing or malforme
161
161
 
162
162
  ## Optional Code Review Gate
163
163
 
164
- After blueprint execution, an optional automated code review gate runs when a second harness is discovered. The reviewer critiques the cumulative diff against the plan's requirements, emits findings validated against a schema, and hands high-confidence findings to the implementer for remediation. Any applied fix forces a full re-run of tests and validation before re-verification.
164
+ After blueprint execution, an optional automated code review gate runs once when a second harness is discovered. The reviewer critiques the cumulative diff against the plan's requirements and emits findings validated against a schema. The gate reports; it does not decide -- there are no severity or confidence floors, and nothing is applied automatically. You read the findings and choose what to act on.
165
165
 
166
166
  **To disable:** Edit `.ai/strikethroo/config/hooks/CODE_REVIEW.md` to empty or delete it. The gate skips cleanly with a note in the execution summary.
167
167
 
@@ -5,8 +5,8 @@
5
5
  *
6
6
  * Two factories: a minimal v4 workspace whose hook/XSD/base-commit presence is
7
7
  * independently switchable (so each fail-safe skip reason is one toggle away),
8
- * and a `<review>` XML builder so partition/validation tests describe findings
9
- * as data instead of hand-written XML.
8
+ * and a `<review>` XML builder so certification/validation tests describe
9
+ * findings as data instead of hand-written XML.
10
10
  */
11
11
  export declare const REAL_HOOK_CONTENT: string;
12
12
  export declare const REAL_XSD_PATH: string;
@@ -6,8 +6,8 @@
6
6
  *
7
7
  * Two factories: a minimal v4 workspace whose hook/XSD/base-commit presence is
8
8
  * independently switchable (so each fail-safe skip reason is one toggle away),
9
- * and a `<review>` XML builder so partition/validation tests describe findings
10
- * as data instead of hand-written XML.
9
+ * and a `<review>` XML builder so certification/validation tests describe
10
+ * findings as data instead of hand-written XML.
11
11
  */
12
12
  var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
13
13
  if (k2 === undefined) k2 = k;
@@ -1 +1 @@
1
- import{bk as ln,aN as an,H as k,b7 as w,F as N,ag as un,V as g,bc as tn,b8 as C,aH as _,c as rn,m as o,aF as on,j as sn,d as fn}from"./mermaid.core-6sggtY9D.js";function cn(l){return l.innerRadius}function gn(l){return l.outerRadius}function yn(l){return l.startAngle}function dn(l){return l.endAngle}function mn(l){return l&&l.padAngle}function pn(l,h,j,F,v,A,O,a){var q=j-l,i=F-h,n=O-v,d=a-A,u=d*q-n*i;if(!(u*u<g))return u=(n*(h-A)-d*(l-v))/u,[l+u*q,h+u*i]}function Q(l,h,j,F,v,A,O){var a=l-j,q=h-F,i=(O?A:-A)/C(a*a+q*q),n=i*q,d=-i*a,u=l+n,s=h+d,f=j+n,c=F+d,S=(u+f)/2,t=(s+c)/2,m=f-u,y=c-s,R=m*m+y*y,T=v-A,P=u*c-f*s,D=(y<0?-1:1)*C(on(0,T*T*R-P*P)),E=(P*y-m*D)/R,I=(-P*m-y*D)/R,b=(P*y+m*D)/R,p=(-P*m+y*D)/R,x=E-S,e=I-t,r=b-S,V=p-t;return x*x+e*e>r*r+V*V&&(E=b,I=p),{cx:E,cy:I,x01:-n,y01:-d,x11:E*(v/T-1),y11:I*(v/T-1)}}function hn(){var l=cn,h=gn,j=N(0),F=null,v=yn,A=dn,O=mn,a=null,q=ln(i);function i(){var n,d,u=+l.apply(this,arguments),s=+h.apply(this,arguments),f=v.apply(this,arguments)-un,c=A.apply(this,arguments)-un,S=rn(c-f),t=c>f;if(a||(a=n=q()),s<u&&(d=s,s=u,u=d),!(s>g))a.moveTo(0,0);else if(S>tn-g)a.moveTo(s*k(f),s*w(f)),a.arc(0,0,s,f,c,!t),u>g&&(a.moveTo(u*k(c),u*w(c)),a.arc(0,0,u,c,f,t));else{var m=f,y=c,R=f,T=c,P=S,D=S,E=O.apply(this,arguments)/2,I=E>g&&(F?+F.apply(this,arguments):C(u*u+s*s)),b=_(rn(s-u)/2,+j.apply(this,arguments)),p=b,x=b,e,r;if(I>g){var V=sn(I/u*w(E)),G=sn(I/s*w(E));(P-=V*2)>g?(V*=t?1:-1,R+=V,T-=V):(P=0,R=T=(f+c)/2),(D-=G*2)>g?(G*=t?1:-1,m+=G,y-=G):(D=0,m=y=(f+c)/2)}var z=s*k(m),B=s*w(m),J=u*k(T),K=u*w(T);if(b>g){var L=s*k(y),M=s*w(y),U=u*k(R),W=u*w(R),H;if(S<an)if(H=pn(z,B,U,W,L,M,J,K)){var X=z-H[0],Y=B-H[1],Z=L-H[0],$=M-H[1],nn=1/w(fn((X*Z+Y*$)/(C(X*X+Y*Y)*C(Z*Z+$*$)))/2),en=C(H[0]*H[0]+H[1]*H[1]);p=_(b,(u-en)/(nn-1)),x=_(b,(s-en)/(nn+1))}else p=x=0}D>g?x>g?(e=Q(U,W,z,B,s,x,t),r=Q(L,M,J,K,s,x,t),a.moveTo(e.cx+e.x01,e.cy+e.y01),x<b?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(z,B),a.arc(0,0,s,m,y,!t)):a.moveTo(z,B),!(u>g)||!(P>g)?a.lineTo(J,K):p>g?(e=Q(J,K,L,M,u,-p,t),r=Q(z,B,U,W,u,-p,t),a.lineTo(e.cx+e.x01,e.cy+e.y01),p<b?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-an/2;return[k(d)*n,w(d)*n]},i.innerRadius=function(n){return arguments.length?(l=typeof n=="function"?n:N(+n),i):l},i.outerRadius=function(n){return arguments.length?(h=typeof n=="function"?n:N(+n),i):h},i.cornerRadius=function(n){return arguments.length?(j=typeof n=="function"?n:N(+n),i):j},i.padRadius=function(n){return arguments.length?(F=n==null?null:typeof n=="function"?n:N(+n),i):F},i.startAngle=function(n){return arguments.length?(v=typeof n=="function"?n:N(+n),i):v},i.endAngle=function(n){return arguments.length?(A=typeof n=="function"?n:N(+n),i):A},i.padAngle=function(n){return arguments.length?(O=typeof n=="function"?n:N(+n),i):O},i.context=function(n){return arguments.length?(a=n??null,i):a},i}export{hn as d};
1
+ import{bk as ln,aN as an,H as k,b7 as w,F as N,ag as un,V as g,bc as tn,b8 as C,aH as _,c as rn,m as o,aF as on,j as sn,d as fn}from"./mermaid.core-DhuCG6HG.js";function cn(l){return l.innerRadius}function gn(l){return l.outerRadius}function yn(l){return l.startAngle}function dn(l){return l.endAngle}function mn(l){return l&&l.padAngle}function pn(l,h,j,F,v,A,O,a){var q=j-l,i=F-h,n=O-v,d=a-A,u=d*q-n*i;if(!(u*u<g))return u=(n*(h-A)-d*(l-v))/u,[l+u*q,h+u*i]}function Q(l,h,j,F,v,A,O){var a=l-j,q=h-F,i=(O?A:-A)/C(a*a+q*q),n=i*q,d=-i*a,u=l+n,s=h+d,f=j+n,c=F+d,S=(u+f)/2,t=(s+c)/2,m=f-u,y=c-s,R=m*m+y*y,T=v-A,P=u*c-f*s,D=(y<0?-1:1)*C(on(0,T*T*R-P*P)),E=(P*y-m*D)/R,I=(-P*m-y*D)/R,b=(P*y+m*D)/R,p=(-P*m+y*D)/R,x=E-S,e=I-t,r=b-S,V=p-t;return x*x+e*e>r*r+V*V&&(E=b,I=p),{cx:E,cy:I,x01:-n,y01:-d,x11:E*(v/T-1),y11:I*(v/T-1)}}function hn(){var l=cn,h=gn,j=N(0),F=null,v=yn,A=dn,O=mn,a=null,q=ln(i);function i(){var n,d,u=+l.apply(this,arguments),s=+h.apply(this,arguments),f=v.apply(this,arguments)-un,c=A.apply(this,arguments)-un,S=rn(c-f),t=c>f;if(a||(a=n=q()),s<u&&(d=s,s=u,u=d),!(s>g))a.moveTo(0,0);else if(S>tn-g)a.moveTo(s*k(f),s*w(f)),a.arc(0,0,s,f,c,!t),u>g&&(a.moveTo(u*k(c),u*w(c)),a.arc(0,0,u,c,f,t));else{var m=f,y=c,R=f,T=c,P=S,D=S,E=O.apply(this,arguments)/2,I=E>g&&(F?+F.apply(this,arguments):C(u*u+s*s)),b=_(rn(s-u)/2,+j.apply(this,arguments)),p=b,x=b,e,r;if(I>g){var V=sn(I/u*w(E)),G=sn(I/s*w(E));(P-=V*2)>g?(V*=t?1:-1,R+=V,T-=V):(P=0,R=T=(f+c)/2),(D-=G*2)>g?(G*=t?1:-1,m+=G,y-=G):(D=0,m=y=(f+c)/2)}var z=s*k(m),B=s*w(m),J=u*k(T),K=u*w(T);if(b>g){var L=s*k(y),M=s*w(y),U=u*k(R),W=u*w(R),H;if(S<an)if(H=pn(z,B,U,W,L,M,J,K)){var X=z-H[0],Y=B-H[1],Z=L-H[0],$=M-H[1],nn=1/w(fn((X*Z+Y*$)/(C(X*X+Y*Y)*C(Z*Z+$*$)))/2),en=C(H[0]*H[0]+H[1]*H[1]);p=_(b,(u-en)/(nn-1)),x=_(b,(s-en)/(nn+1))}else p=x=0}D>g?x>g?(e=Q(U,W,z,B,s,x,t),r=Q(L,M,J,K,s,x,t),a.moveTo(e.cx+e.x01,e.cy+e.y01),x<b?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(z,B),a.arc(0,0,s,m,y,!t)):a.moveTo(z,B),!(u>g)||!(P>g)?a.lineTo(J,K):p>g?(e=Q(J,K,L,M,u,-p,t),r=Q(z,B,U,W,u,-p,t),a.lineTo(e.cx+e.x01,e.cy+e.y01),p<b?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-an/2;return[k(d)*n,w(d)*n]},i.innerRadius=function(n){return arguments.length?(l=typeof n=="function"?n:N(+n),i):l},i.outerRadius=function(n){return arguments.length?(h=typeof n=="function"?n:N(+n),i):h},i.cornerRadius=function(n){return arguments.length?(j=typeof n=="function"?n:N(+n),i):j},i.padRadius=function(n){return arguments.length?(F=n==null?null:typeof n=="function"?n:N(+n),i):F},i.startAngle=function(n){return arguments.length?(v=typeof n=="function"?n:N(+n),i):v},i.endAngle=function(n){return arguments.length?(A=typeof n=="function"?n:N(+n),i):A},i.padAngle=function(n){return arguments.length?(O=typeof n=="function"?n:N(+n),i):O},i.context=function(n){return arguments.length?(a=n??null,i):a},i}export{hn as d};