pilotswarm 0.5.49 → 0.5.50

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 (66) hide show
  1. package/package.json +2 -2
  2. package/ui/react/src/web-app.js +72 -3
  3. package/web/dist/assets/{abnfDiagram-VRR7QNED-CXF6f3n3.js → abnfDiagram-VRR7QNED-C_4vfIbv.js} +1 -1
  4. package/web/dist/assets/{arc-MlDVINID.js → arc-DOWqX-WF.js} +1 -1
  5. package/web/dist/assets/{architectureDiagram-ZJ3FMSHR-Bdz1J9H-.js → architectureDiagram-ZJ3FMSHR-Cc38vIUp.js} +1 -1
  6. package/web/dist/assets/{blockDiagram-677ZJIJ3-tO706-rr.js → blockDiagram-677ZJIJ3-CJasxBgg.js} +1 -1
  7. package/web/dist/assets/{c4Diagram-LMCZKHZV-BuZrMrYZ.js → c4Diagram-LMCZKHZV-CSsFEvwn.js} +1 -1
  8. package/web/dist/assets/channel-CJecP6sr.js +1 -0
  9. package/web/dist/assets/{chunk-2Q5K7J3B-BWWIPnCk.js → chunk-2Q5K7J3B-Cdcmo5W3.js} +1 -1
  10. package/web/dist/assets/{chunk-32BRIVSS-TyL8x2Q5.js → chunk-32BRIVSS-CmCFzR3z.js} +1 -1
  11. package/web/dist/assets/{chunk-5VM5RSS4-ZTwZyN5B.js → chunk-5VM5RSS4-gZUtbZIc.js} +1 -1
  12. package/web/dist/assets/{chunk-EX3LRPZG-CjWsKz70.js → chunk-EX3LRPZG-nF9v3PEA.js} +1 -1
  13. package/web/dist/assets/{chunk-JWPE2WC7-BNQrzsa3.js → chunk-JWPE2WC7-BhwKbO0c.js} +1 -1
  14. package/web/dist/assets/{chunk-MOJQB5TN-B51xJi0l.js → chunk-MOJQB5TN-B8zfb4XG.js} +1 -1
  15. package/web/dist/assets/{chunk-RYQCIY6F-BCdsh9nc.js → chunk-RYQCIY6F-SM2kSUT1.js} +1 -1
  16. package/web/dist/assets/{chunk-V7JOEXUC-C7FFxC7C.js → chunk-V7JOEXUC-C7lbdZCo.js} +1 -1
  17. package/web/dist/assets/{chunk-VR4S4FIN-DWoFV0Pb.js → chunk-VR4S4FIN-BZR3_tbV.js} +1 -1
  18. package/web/dist/assets/{chunk-XXDRQBXY-plM48yQb.js → chunk-XXDRQBXY-DU5shflv.js} +1 -1
  19. package/web/dist/assets/classDiagram-OUVF2IWQ-BqWAphrT.js +1 -0
  20. package/web/dist/assets/classDiagram-v2-EOCWNBFH-BqWAphrT.js +1 -0
  21. package/web/dist/assets/{cose-bilkent-JH36ORCC-cPPsd8jq.js → cose-bilkent-JH36ORCC-O3mfbu3h.js} +1 -1
  22. package/web/dist/assets/{cynefin-VYW2F7L2-DLoMRcB-.js → cynefin-VYW2F7L2-kJrtGP23.js} +1 -1
  23. package/web/dist/assets/{cynefinDiagram-TSTJHNR4-DbxB1EcR.js → cynefinDiagram-TSTJHNR4-DBJPD4ep.js} +1 -1
  24. package/web/dist/assets/{dagre-VKFMJZFB-Cl5J3v7U.js → dagre-VKFMJZFB-Dcs8wwU7.js} +1 -1
  25. package/web/dist/assets/{diagram-FQU43EPY-C_5l69HJ.js → diagram-FQU43EPY-DyfyZ0qG.js} +1 -1
  26. package/web/dist/assets/{diagram-G47NLZAW-B_nxM69x.js → diagram-G47NLZAW-Dd2HPM5s.js} +1 -1
  27. package/web/dist/assets/{diagram-NH7WQ7WH-BogLLCcM.js → diagram-NH7WQ7WH-DC03_BJp.js} +1 -1
  28. package/web/dist/assets/{diagram-OA4YK3LP-1HZ1DJgO.js → diagram-OA4YK3LP-CfPUNCYI.js} +1 -1
  29. package/web/dist/assets/{diagram-WEI45ONY-CZ9akwtz.js → diagram-WEI45ONY-O-K9BqwQ.js} +1 -1
  30. package/web/dist/assets/{ebnfDiagram-CCIWWBDH-CCg2iaF2.js → ebnfDiagram-CCIWWBDH-Pu3yFM4q.js} +1 -1
  31. package/web/dist/assets/{erDiagram-Q63AITRT-BCYw6hLk.js → erDiagram-Q63AITRT-9oh4uutz.js} +1 -1
  32. package/web/dist/assets/{flowDiagram-23GEKE2U-B3O-UeAj.js → flowDiagram-23GEKE2U-D6sP81ck.js} +1 -1
  33. package/web/dist/assets/{ganttDiagram-NO4QXBWP-GJzz1tR4.js → ganttDiagram-NO4QXBWP-7aJ0dtGR.js} +1 -1
  34. package/web/dist/assets/{gitGraphDiagram-IHSO6WYX-Ch1cfaOe.js → gitGraphDiagram-IHSO6WYX-bLa8NZvk.js} +1 -1
  35. package/web/dist/assets/{index-wYKm3Bnl.js → index-DT_gy82W.js} +2 -2
  36. package/web/dist/assets/{infoDiagram-FWYZ7A6U-Bjo2ImAx.js → infoDiagram-FWYZ7A6U-Bx2QUCNC.js} +1 -1
  37. package/web/dist/assets/{ishikawaDiagram-FXEZZL3T-Cknf936W.js → ishikawaDiagram-FXEZZL3T-Z43QbfP4.js} +1 -1
  38. package/web/dist/assets/{journeyDiagram-5HDEW3XC-Chy2vDKP.js → journeyDiagram-5HDEW3XC-DDp4teSL.js} +1 -1
  39. package/web/dist/assets/{kanban-definition-HUTT4EX6-BL4WMBwi.js → kanban-definition-HUTT4EX6-CoNysaii.js} +1 -1
  40. package/web/dist/assets/{linear-B8XSGnZ8.js → linear-DiAWjM7P.js} +1 -1
  41. package/web/dist/assets/{mermaid.core-CFdkmvEY.js → mermaid.core-Pc4CQtPH.js} +4 -4
  42. package/web/dist/assets/{mindmap-definition-LN4V7U3C-CHOBIkSR.js → mindmap-definition-LN4V7U3C-BXkQ4eOw.js} +1 -1
  43. package/web/dist/assets/{papaparse.min-DnG1sqyK.js → papaparse.min-CzTZ22jn.js} +1 -1
  44. package/web/dist/assets/{pegDiagram-2B236MQR-VuMpZEdm.js → pegDiagram-2B236MQR-DLawXMJA.js} +1 -1
  45. package/web/dist/assets/{pieDiagram-ENE6RG2P-CkFTLWPp.js → pieDiagram-ENE6RG2P-Bqw6TCQf.js} +1 -1
  46. package/web/dist/assets/{pilotswarm-CLJw14xm.js → pilotswarm-CJ6SEIPj.js} +6 -6
  47. package/web/dist/assets/{quadrantDiagram-ABIIQ3AL-B74MHjsI.js → quadrantDiagram-ABIIQ3AL-D4Nrodp1.js} +1 -1
  48. package/web/dist/assets/{railroadDiagram-RFXS5EU6-CwcT-BI1.js → railroadDiagram-RFXS5EU6-14ozmmna.js} +1 -1
  49. package/web/dist/assets/{requirementDiagram-TGXJPOKE-CfV8rmaQ.js → requirementDiagram-TGXJPOKE-g2jB_CR_.js} +1 -1
  50. package/web/dist/assets/{sankeyDiagram-HTMAVEWB-BECA4LLx.js → sankeyDiagram-HTMAVEWB-UsWtjkg-.js} +1 -1
  51. package/web/dist/assets/{sequenceDiagram-DBY2YBRQ-C80kbBkw.js → sequenceDiagram-DBY2YBRQ-DOCKalZQ.js} +1 -1
  52. package/web/dist/assets/{sizeCapture-X5ZJPWSS-BgdLZC94.js → sizeCapture-X5ZJPWSS-GOrSPHZX.js} +1 -1
  53. package/web/dist/assets/{stateDiagram-2N3HPSRC-DY_mnuOT.js → stateDiagram-2N3HPSRC-DcTBrPP0.js} +1 -1
  54. package/web/dist/assets/stateDiagram-v2-6OUMAXLB-DjyLnyGF.js +1 -0
  55. package/web/dist/assets/{swimlanes-5IMT3BWC-9m8kjDvw.js → swimlanes-5IMT3BWC-DXlohBs3.js} +2 -2
  56. package/web/dist/assets/swimlanesDiagram-G3AALYLV-B8GZDsc2.js +8 -0
  57. package/web/dist/assets/{timeline-definition-FHXFAJF6-CRDqu4Os.js → timeline-definition-FHXFAJF6-CLAJChwQ.js} +1 -1
  58. package/web/dist/assets/{vennDiagram-L72KCM5P-B2KNeFvN.js → vennDiagram-L72KCM5P-DapjeRd3.js} +1 -1
  59. package/web/dist/assets/{wardleyDiagram-EHGQE667-DC0vN3Ub.js → wardleyDiagram-EHGQE667-eYWaR7BL.js} +1 -1
  60. package/web/dist/assets/{xychartDiagram-FW5EYKEG-DOY6Rwu4.js → xychartDiagram-FW5EYKEG-DcJXUeUI.js} +1 -1
  61. package/web/dist/index.html +2 -2
  62. package/web/dist/assets/channel-moQWQGwr.js +0 -1
  63. package/web/dist/assets/classDiagram-OUVF2IWQ-33Sv-tmv.js +0 -1
  64. package/web/dist/assets/classDiagram-v2-EOCWNBFH-33Sv-tmv.js +0 -1
  65. package/web/dist/assets/stateDiagram-v2-6OUMAXLB-Dw3VhZ5V.js +0 -1
  66. package/web/dist/assets/swimlanesDiagram-G3AALYLV-DoOI0AiK.js +0 -8
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "pilotswarm",
3
- "version": "0.5.49",
3
+ "version": "0.5.50",
4
4
  "description": "PilotSwarm application package: terminal UI, browser portal + Web API server, and MCP server — one install, three bins.",
5
5
  "type": "module",
6
6
  "license": "MIT",
@@ -81,7 +81,7 @@
81
81
  "ink": "^6.8.0",
82
82
  "jose": "^6.2.2",
83
83
  "mermaid": "^11.16.0",
84
- "pilotswarm-sdk": "0.5.49",
84
+ "pilotswarm-sdk": "0.5.50",
85
85
  "react": "^19.2.4",
86
86
  "react-dom": "^19.2.4",
87
87
  "ws": "^8.18.2"
@@ -3949,7 +3949,7 @@ const SESSION_DETAIL_NONE = "—";
3949
3949
  */
3950
3950
  export function visibleWaitReason(session, statusLabel) {
3951
3951
  const reason = typeof session?.waitReason === "string" && session.waitReason.trim()
3952
- ? session.waitReason.trim()
3952
+ ? clampWaitReason(session.waitReason)
3953
3953
  : null;
3954
3954
  if (!reason) return null;
3955
3955
  const status = String(statusLabel || "");
@@ -3961,6 +3961,66 @@ export function visibleWaitReason(session, statusLabel) {
3961
3961
  return waiting ? reason : null;
3962
3962
  }
3963
3963
 
3964
+ /** Words kept before the sentence is clipped. A glance, not a document. */
3965
+ export const WAIT_REASON_MAX_WORDS = 10;
3966
+
3967
+ /**
3968
+ * A ceiling on the clipped line, because a word count is not a length.
3969
+ *
3970
+ * These instructions carry session UUIDs and artifact filenames, and one of
3971
+ * those is a single 40-character "word" — ten of them ran to 100 characters
3972
+ * and wrapped the box anyway. Whichever limit is reached first wins.
3973
+ */
3974
+ export const WAIT_REASON_MAX_CHARS = 72;
3975
+
3976
+ /**
3977
+ * One line's worth of a wait reason.
3978
+ *
3979
+ * `waitReason` is not one kind of text. `wait` asks the model for "why you're
3980
+ * waiting" and gets a sentence. `cron` asks for "what to do on each wake-up"
3981
+ * and gets an INSTRUCTION — the real wake-up prompt, which is replayed on
3982
+ * every fire and is routinely several paragraphs. Both land in the same column
3983
+ * and both used to be printed in full, so a cron session's detail box was its
3984
+ * entire next-turn plan under a one-word label.
3985
+ *
3986
+ * The stored value is left alone — for a cron it is load-bearing state, not
3987
+ * decoration. Only the display is cut, and newlines are flattened first so a
3988
+ * multi-paragraph prompt cannot smuggle its shape through the word count.
3989
+ */
3990
+ export function clampWaitReason(
3991
+ text,
3992
+ maxWords = WAIT_REASON_MAX_WORDS,
3993
+ maxChars = WAIT_REASON_MAX_CHARS,
3994
+ ) {
3995
+ const flat = String(text ?? "").replace(/\s+/gu, " ").trim();
3996
+ if (!flat) return "";
3997
+ const words = flat.split(" ");
3998
+ let kept = words.slice(0, maxWords).join(" ");
3999
+ // Then the length ceiling, cutting back to a word boundary so the line
4000
+ // does not end mid-UUID. A first word that is already over the limit is
4001
+ // cut where it stands — better a clipped token than a wrapped box.
4002
+ if (kept.length > maxChars) {
4003
+ const cut = kept.slice(0, maxChars);
4004
+ const boundary = cut.lastIndexOf(" ");
4005
+ kept = boundary > 0 ? cut.slice(0, boundary) : cut;
4006
+ }
4007
+ if (kept === flat) return flat;
4008
+ // Trailing punctuation on the last kept word reads as a full stop followed
4009
+ // by an ellipsis ("plan,…"), so it goes.
4010
+ return `${kept.replace(/[.,;:—-]+$/u, "")}…`;
4011
+ }
4012
+
4013
+ /**
4014
+ * What the detail box calls the sentence beside it.
4015
+ *
4016
+ * A cron session is not waiting *because of* this text — it is waiting for the
4017
+ * next tick, and the text is what it will then do. Naming it "Waiting" made
4018
+ * the wake-up instruction read as a stall reason.
4019
+ */
4020
+ export function waitReasonLabel(session) {
4021
+ return session?.cronActive === true ? "On wake" : "Waiting";
4022
+ }
4023
+
3964
4024
  function SessionDetailBox({ session, childCount = 0, pause = null, controller = null, collapsed = false, onToggle = null }) {
3965
4025
  // EVERY field renders on EVERY selection, empty ones as an em dash. The box
3966
4026
  // is a fixed grid of rows, so moving through the list cannot change its
@@ -4041,8 +4101,17 @@ function SessionDetailBox({ session, childCount = 0, pause = null, controller =
4041
4101
  const pauseBlock = (!pause && !waitReason) ? null : React.createElement("div", {
4042
4102
  className: `ps-session-detail-pause${pause ? " is-paused" : ""}`,
4043
4103
  },
4044
- React.createElement("span", { className: "ps-session-detail-label" }, pause ? "Paused" : "Waiting"),
4045
- React.createElement("span", { className: "ps-session-detail-why" },
4104
+ React.createElement("span", { className: "ps-session-detail-label" },
4105
+ pause ? "Paused" : waitReasonLabel(session)),
4106
+ React.createElement("span", {
4107
+ className: "ps-session-detail-why",
4108
+ // Clipped on screen, whole on hover: for a cron the full text is the
4109
+ // wake-up instruction, and someone reading the box is often trying to
4110
+ // find out exactly what the next tick will do.
4111
+ ...(!pause && typeof session?.waitReason === "string" && session.waitReason.trim()
4112
+ ? { title: session.waitReason.trim() }
4113
+ : {}),
4114
+ },
4046
4115
  // The sentence already says when it clears wherever it can; `clears`
4047
4116
  // only fills the gap where it cannot.
4048
4117
  pause ? pause.reason : waitReason,
@@ -1 +1 @@
1
- import{g as p,r as u,d as a}from"./chunk-MOJQB5TN-B51xJi0l.js";import{p as f}from"./chunk-JWPE2WC7-BNQrzsa3.js";import{_ as n,l as o}from"./mermaid.core-CFdkmvEY.js";import{M as c,b as d}from"./cynefin-VYW2F7L2-DLoMRcB-.js";import"./pilotswarm-CLJw14xm.js";var v=d().RailroadAbnf.parser.LangiumParser,i=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("*"),l=t?parseInt(t,10):0,m=s?parseInt(s,10):1/0;return{min:l,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 i(e.element);case"AbnfOptionalGroup":return{type:"optional",element:i(e.element)};default:throw new Error(`Unsupported ABNF primary node: ${e.$type}`)}},"transformPrimary"),P=n(e=>({name:e.name,definition:i(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}},B={parser:R,db:a,renderer:u,styles:p};export{B as diagram};
1
+ import{g as p,r as u,d as a}from"./chunk-MOJQB5TN-B8zfb4XG.js";import{p as f}from"./chunk-JWPE2WC7-BhwKbO0c.js";import{_ as n,l as o}from"./mermaid.core-Pc4CQtPH.js";import{M as c,b as d}from"./cynefin-VYW2F7L2-kJrtGP23.js";import"./pilotswarm-CJ6SEIPj.js";var v=d().RailroadAbnf.parser.LangiumParser,i=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("*"),l=t?parseInt(t,10):0,m=s?parseInt(s,10):1/0;return{min:l,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 i(e.element);case"AbnfOptionalGroup":return{type:"optional",element:i(e.element)};default:throw new Error(`Unsupported ABNF primary node: ${e.$type}`)}},"transformPrimary"),P=n(e=>({name:e.name,definition:i(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}},B={parser:R,db:a,renderer:u,styles:p};export{B as diagram};
@@ -1 +1 @@
1
- import{Y as ln,$ as an,a0 as F,a1 as q,a2 as j,a3 as un,a4 as y,a5 as tn,a6 as J,a7 as _,a8 as rn,a9 as o,aa as on,ab as sn,ac as fn}from"./mermaid.core-CFdkmvEY.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,I,D,v,A,z,a){var O=I-l,i=D-h,n=z-v,d=a-A,u=d*O-n*i;if(!(u*u<y))return u=(n*(h-A)-d*(l-v))/u,[l+u*O,h+u*i]}function U(l,h,I,D,v,A,z){var a=l-I,O=h-D,i=(z?A:-A)/J(a*a+O*O),n=i*O,d=-i*a,u=l+n,s=h+d,f=I+n,c=D+d,B=(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,S=(g<0?-1:1)*J(on(0,T*T*R-P*P)),Y=(P*g-m*S)/R,$=(-P*m-g*S)/R,w=(P*g+m*S)/R,p=(-P*m+g*S)/R,x=Y-B,e=$-t,r=w-B,C=p-t;return x*x+e*e>r*r+C*C&&(Y=w,$=p),{cx:Y,cy:$,x01:-n,y01:-d,x11:Y*(v/T-1),y11:$*(v/T-1)}}function hn(){var l=cn,h=yn,I=j(0),D=null,v=gn,A=dn,z=mn,a=null,O=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,B=rn(c-f),t=c>f;if(a||(a=n=O()),s<u&&(d=s,s=u,u=d),!(s>y))a.moveTo(0,0);else if(B>tn-y)a.moveTo(s*F(f),s*q(f)),a.arc(0,0,s,f,c,!t),u>y&&(a.moveTo(u*F(c),u*q(c)),a.arc(0,0,u,c,f,t));else{var m=f,g=c,R=f,T=c,P=B,S=B,Y=z.apply(this,arguments)/2,$=Y>y&&(D?+D.apply(this,arguments):J(u*u+s*s)),w=_(rn(s-u)/2,+I.apply(this,arguments)),p=w,x=w,e,r;if($>y){var C=sn($/u*q(Y)),K=sn($/s*q(Y));(P-=C*2)>y?(C*=t?1:-1,R+=C,T-=C):(P=0,R=T=(f+c)/2),(S-=K*2)>y?(K*=t?1:-1,m+=K,g-=K):(S=0,m=g=(f+c)/2)}var G=s*F(m),H=s*q(m),L=u*F(T),M=u*q(T);if(w>y){var N=s*F(g),Q=s*q(g),V=u*F(R),W=u*q(R),E;if(B<an)if(E=pn(G,H,V,W,N,Q,L,M)){var X=G-E[0],Z=H-E[1],b=N-E[0],k=Q-E[1],nn=1/q(fn((X*b+Z*k)/(J(X*X+Z*Z)*J(b*b+k*k)))/2),en=J(E[0]*E[0]+E[1]*E[1]);p=_(w,(u-en)/(nn-1)),x=_(w,(s-en)/(nn+1))}else p=x=0}S>y?x>y?(e=U(V,W,G,H,s,x,t),r=U(N,Q,L,M,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(G,H),a.arc(0,0,s,m,g,!t)):a.moveTo(G,H),!(u>y)||!(P>y)?a.lineTo(L,M):p>y?(e=U(L,M,N,Q,u,-p,t),r=U(G,H,V,W,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-an/2;return[F(d)*n,q(d)*n]},i.innerRadius=function(n){return arguments.length?(l=typeof n=="function"?n:j(+n),i):l},i.outerRadius=function(n){return arguments.length?(h=typeof n=="function"?n:j(+n),i):h},i.cornerRadius=function(n){return arguments.length?(I=typeof n=="function"?n:j(+n),i):I},i.padRadius=function(n){return arguments.length?(D=n==null?null:typeof n=="function"?n:j(+n),i):D},i.startAngle=function(n){return arguments.length?(v=typeof n=="function"?n:j(+n),i):v},i.endAngle=function(n){return arguments.length?(A=typeof n=="function"?n:j(+n),i):A},i.padAngle=function(n){return arguments.length?(z=typeof n=="function"?n:j(+n),i):z},i.context=function(n){return arguments.length?(a=n??null,i):a},i}export{hn as d};
1
+ import{Y as ln,$ as an,a0 as F,a1 as q,a2 as j,a3 as un,a4 as y,a5 as tn,a6 as J,a7 as _,a8 as rn,a9 as o,aa as on,ab as sn,ac as fn}from"./mermaid.core-Pc4CQtPH.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,I,D,v,A,z,a){var O=I-l,i=D-h,n=z-v,d=a-A,u=d*O-n*i;if(!(u*u<y))return u=(n*(h-A)-d*(l-v))/u,[l+u*O,h+u*i]}function U(l,h,I,D,v,A,z){var a=l-I,O=h-D,i=(z?A:-A)/J(a*a+O*O),n=i*O,d=-i*a,u=l+n,s=h+d,f=I+n,c=D+d,B=(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,S=(g<0?-1:1)*J(on(0,T*T*R-P*P)),Y=(P*g-m*S)/R,$=(-P*m-g*S)/R,w=(P*g+m*S)/R,p=(-P*m+g*S)/R,x=Y-B,e=$-t,r=w-B,C=p-t;return x*x+e*e>r*r+C*C&&(Y=w,$=p),{cx:Y,cy:$,x01:-n,y01:-d,x11:Y*(v/T-1),y11:$*(v/T-1)}}function hn(){var l=cn,h=yn,I=j(0),D=null,v=gn,A=dn,z=mn,a=null,O=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,B=rn(c-f),t=c>f;if(a||(a=n=O()),s<u&&(d=s,s=u,u=d),!(s>y))a.moveTo(0,0);else if(B>tn-y)a.moveTo(s*F(f),s*q(f)),a.arc(0,0,s,f,c,!t),u>y&&(a.moveTo(u*F(c),u*q(c)),a.arc(0,0,u,c,f,t));else{var m=f,g=c,R=f,T=c,P=B,S=B,Y=z.apply(this,arguments)/2,$=Y>y&&(D?+D.apply(this,arguments):J(u*u+s*s)),w=_(rn(s-u)/2,+I.apply(this,arguments)),p=w,x=w,e,r;if($>y){var C=sn($/u*q(Y)),K=sn($/s*q(Y));(P-=C*2)>y?(C*=t?1:-1,R+=C,T-=C):(P=0,R=T=(f+c)/2),(S-=K*2)>y?(K*=t?1:-1,m+=K,g-=K):(S=0,m=g=(f+c)/2)}var G=s*F(m),H=s*q(m),L=u*F(T),M=u*q(T);if(w>y){var N=s*F(g),Q=s*q(g),V=u*F(R),W=u*q(R),E;if(B<an)if(E=pn(G,H,V,W,N,Q,L,M)){var X=G-E[0],Z=H-E[1],b=N-E[0],k=Q-E[1],nn=1/q(fn((X*b+Z*k)/(J(X*X+Z*Z)*J(b*b+k*k)))/2),en=J(E[0]*E[0]+E[1]*E[1]);p=_(w,(u-en)/(nn-1)),x=_(w,(s-en)/(nn+1))}else p=x=0}S>y?x>y?(e=U(V,W,G,H,s,x,t),r=U(N,Q,L,M,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(G,H),a.arc(0,0,s,m,g,!t)):a.moveTo(G,H),!(u>y)||!(P>y)?a.lineTo(L,M):p>y?(e=U(L,M,N,Q,u,-p,t),r=U(G,H,V,W,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-an/2;return[F(d)*n,q(d)*n]},i.innerRadius=function(n){return arguments.length?(l=typeof n=="function"?n:j(+n),i):l},i.outerRadius=function(n){return arguments.length?(h=typeof n=="function"?n:j(+n),i):h},i.cornerRadius=function(n){return arguments.length?(I=typeof n=="function"?n:j(+n),i):I},i.padRadius=function(n){return arguments.length?(D=n==null?null:typeof n=="function"?n:j(+n),i):D},i.startAngle=function(n){return arguments.length?(v=typeof n=="function"?n:j(+n),i):v},i.endAngle=function(n){return arguments.length?(A=typeof n=="function"?n:j(+n),i):A},i.padAngle=function(n){return arguments.length?(z=typeof n=="function"?n:j(+n),i):z},i.context=function(n){return arguments.length?(a=n??null,i):a},i}export{hn as d};