kennel 0.2.37 → 0.2.39

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 (79) hide show
  1. package/dist/core/runtime.js +3 -1
  2. package/dist/llm/worker.js +3 -1
  3. package/dist/notes/command.js +3 -1
  4. package/dist/package/preview.js +3 -1
  5. package/dist/site/hot-viewer.d.ts +1 -1
  6. package/dist/site/hot-viewer.js +34 -3
  7. package/package.json +2 -2
  8. package/web/assets/{abnfDiagram-VRR7QNED-D-wDEOuY.js → abnfDiagram-VRR7QNED-C6_-_jqE.js} +1 -1
  9. package/web/assets/{arc-DLDOZUl0.js → arc-DaQ6OIoR.js} +1 -1
  10. package/web/assets/{architectureDiagram-ZJ3FMSHR-DNrOiRRh.js → architectureDiagram-ZJ3FMSHR-DTojidQe.js} +1 -1
  11. package/web/assets/ask-tray-KUTWZ4MV-DvL75aHD.js +24 -0
  12. package/web/assets/{blockDiagram-677ZJIJ3-Cw-GxdXn.js → blockDiagram-677ZJIJ3-yOJUN_m5.js} +1 -1
  13. package/web/assets/{c4Diagram-LMCZKHZV-CISkVgyv.js → c4Diagram-LMCZKHZV-UjcT-m1T.js} +1 -1
  14. package/web/assets/channel-C3SEyQYu.js +1 -0
  15. package/web/assets/{chunk-2Q5K7J3B-CoYAPY2m.js → chunk-2Q5K7J3B-CcZzk5ML.js} +1 -1
  16. package/web/assets/{chunk-32BRIVSS-zcpFrZg7.js → chunk-32BRIVSS-BTSujxFN.js} +1 -1
  17. package/web/assets/{chunk-5VM5RSS4-BlQZuGxc.js → chunk-5VM5RSS4-DPlR3gQv.js} +1 -1
  18. package/web/assets/{chunk-EX3LRPZG-CT1XD_WJ.js → chunk-EX3LRPZG-BRBFgIHS.js} +1 -1
  19. package/web/assets/{chunk-JWPE2WC7-C2-AGbdV.js → chunk-JWPE2WC7-DtbIaf1u.js} +1 -1
  20. package/web/assets/{chunk-MOJQB5TN-EpHbGsdi.js → chunk-MOJQB5TN-9jU0GI-j.js} +1 -1
  21. package/web/assets/{chunk-RYQCIY6F-BYbxuF2f.js → chunk-RYQCIY6F-BixiZOVp.js} +1 -1
  22. package/web/assets/{chunk-V7JOEXUC-DSAAV6N4.js → chunk-V7JOEXUC-BZ2H8ogE.js} +1 -1
  23. package/web/assets/{chunk-VR4S4FIN-ayX5qMZr.js → chunk-VR4S4FIN-BL10DAex.js} +1 -1
  24. package/web/assets/{chunk-XXDRQBXY-45ncruvJ.js → chunk-XXDRQBXY-DcppYjo6.js} +1 -1
  25. package/web/assets/classDiagram-OUVF2IWQ-BdAXLPse.js +1 -0
  26. package/web/assets/classDiagram-v2-EOCWNBFH-BdAXLPse.js +1 -0
  27. package/web/assets/{cose-bilkent-JH36ORCC-Bx9S1JXJ.js → cose-bilkent-JH36ORCC-Cgvqo5Vf.js} +1 -1
  28. package/web/assets/{cynefin-VYW2F7L2-snxI94-K.js → cynefin-VYW2F7L2-BQ7wt45I.js} +1 -1
  29. package/web/assets/{cynefinDiagram-TSTJHNR4-D8s6RSSq.js → cynefinDiagram-TSTJHNR4-kkFdZ7zi.js} +1 -1
  30. package/web/assets/{dagre-VKFMJZFB-CqoML5Ji.js → dagre-VKFMJZFB-DEpIkW_K.js} +1 -1
  31. package/web/assets/{diagram-FQU43EPY-BScsOBc2.js → diagram-FQU43EPY-BVQC0UWP.js} +1 -1
  32. package/web/assets/{diagram-G47NLZAW-CSXWBABs.js → diagram-G47NLZAW-Cxuq2dO3.js} +1 -1
  33. package/web/assets/{diagram-NH7WQ7WH-BrHvegaG.js → diagram-NH7WQ7WH-F6Qesucv.js} +1 -1
  34. package/web/assets/{diagram-OA4YK3LP-DB6G71aV.js → diagram-OA4YK3LP-hepvtqAE.js} +1 -1
  35. package/web/assets/{diagram-WEI45ONY-Cc5KaH88.js → diagram-WEI45ONY-CfQte2ei.js} +1 -1
  36. package/web/assets/{ebnfDiagram-CCIWWBDH-Cm9dKWpi.js → ebnfDiagram-CCIWWBDH-BqOulZys.js} +1 -1
  37. package/web/assets/{entity-search-page-YP4SPMBC-1HMsmBph.js → entity-search-page-YP4SPMBC-BKH9R5nO.js} +1 -1
  38. package/web/assets/{erDiagram-Q63AITRT-D9o4-3z_.js → erDiagram-Q63AITRT-BxCO7pVV.js} +1 -1
  39. package/web/assets/{flowDiagram-23GEKE2U-DlSlSN8b.js → flowDiagram-23GEKE2U-H0w6mn4S.js} +1 -1
  40. package/web/assets/{ganttDiagram-NO4QXBWP-k01Z0ICp.js → ganttDiagram-NO4QXBWP-1Mvoz0hd.js} +1 -1
  41. package/web/assets/{gitGraphDiagram-IHSO6WYX-Cjp_loRm.js → gitGraphDiagram-IHSO6WYX-B_Zhhqk4.js} +1 -1
  42. package/web/assets/index-QCajCjwA.css +1 -0
  43. package/web/assets/index-pXpgbx7D.js +492 -0
  44. package/web/assets/{infoDiagram-FWYZ7A6U-CIvVYqYA.js → infoDiagram-FWYZ7A6U-BunMdCGy.js} +1 -1
  45. package/web/assets/{ishikawaDiagram-FXEZZL3T-4-sr6Mvi.js → ishikawaDiagram-FXEZZL3T-2tdEVjqs.js} +1 -1
  46. package/web/assets/{journeyDiagram-5HDEW3XC-BP9GqWiL.js → journeyDiagram-5HDEW3XC-DO-J_T2C.js} +1 -1
  47. package/web/assets/{kanban-definition-HUTT4EX6-Dc7cR6bt.js → kanban-definition-HUTT4EX6-CnoFxqoa.js} +1 -1
  48. package/web/assets/{linear-CUy1jgIb.js → linear-Ceg6io_2.js} +1 -1
  49. package/web/assets/{linked-session-header-S55EVSN7-3bK4qoiP.js → linked-session-header-S55EVSN7-P_bjsJir.js} +1 -1
  50. package/web/assets/{mermaid.core-B-0mplWE.js → mermaid.core-X1Uu4bc2.js} +4 -4
  51. package/web/assets/{mindmap-definition-LN4V7U3C-B4hH_ssZ.js → mindmap-definition-LN4V7U3C-CVzPnppR.js} +1 -1
  52. package/web/assets/{pegDiagram-2B236MQR-DcASm1rV.js → pegDiagram-2B236MQR-DAINu_s_.js} +1 -1
  53. package/web/assets/{pieDiagram-ENE6RG2P-CcH8-R__.js → pieDiagram-ENE6RG2P-B4_nXDis.js} +1 -1
  54. package/web/assets/{plugin-host-modules-CI2CeYDa.js → plugin-host-modules-LhPofIZf.js} +1 -1
  55. package/web/assets/{project-search-page-TZG7AZBQ-DFlU6M8G.js → project-search-page-TZG7AZBQ-Bm3ftrZ5.js} +1 -1
  56. package/web/assets/{quadrantDiagram-ABIIQ3AL-BQX_WoM7.js → quadrantDiagram-ABIIQ3AL-DZYBmnrH.js} +1 -1
  57. package/web/assets/{railroadDiagram-RFXS5EU6-C8_ZmZc9.js → railroadDiagram-RFXS5EU6-Bz84eqb8.js} +1 -1
  58. package/web/assets/{requirementDiagram-TGXJPOKE-BqELfMX7.js → requirementDiagram-TGXJPOKE-64zNrehW.js} +1 -1
  59. package/web/assets/{sankeyDiagram-HTMAVEWB-Bu5aTMvb.js → sankeyDiagram-HTMAVEWB-Dl_wrA2h.js} +1 -1
  60. package/web/assets/{selection-popup-RZDT6KZK-D2DH3zcN.js → selection-popup-ABYH3A27-i0uWpyQp.js} +1 -1
  61. package/web/assets/{sequenceDiagram-DBY2YBRQ-Dbf_tezm.js → sequenceDiagram-DBY2YBRQ-QiicN0_i.js} +1 -1
  62. package/web/assets/{sizeCapture-X5ZJPWSS-DPVSvKgC.js → sizeCapture-X5ZJPWSS-UYznseYi.js} +1 -1
  63. package/web/assets/{stateDiagram-2N3HPSRC-DcJtmh_P.js → stateDiagram-2N3HPSRC-BiAHkZb3.js} +1 -1
  64. package/web/assets/{stateDiagram-v2-6OUMAXLB-CFhOPpxK.js → stateDiagram-v2-6OUMAXLB-DgSGWnq5.js} +1 -1
  65. package/web/assets/{swimlanes-5IMT3BWC-u0y2iSGe.js → swimlanes-5IMT3BWC-Ccl_OPSL.js} +2 -2
  66. package/web/assets/swimlanesDiagram-G3AALYLV-B7Mm_-w4.js +8 -0
  67. package/web/assets/{timeline-definition-FHXFAJF6-DVzApElo.js → timeline-definition-FHXFAJF6-BfEDp1Tz.js} +1 -1
  68. package/web/assets/{vennDiagram-L72KCM5P-DKmwS868.js → vennDiagram-L72KCM5P-DipqKATv.js} +1 -1
  69. package/web/assets/{wardleyDiagram-EHGQE667-BAC_uhn9.js → wardleyDiagram-EHGQE667-BRwun2eQ.js} +1 -1
  70. package/web/assets/{xychartDiagram-FW5EYKEG-Dx9RDeB9.js → xychartDiagram-FW5EYKEG-48H2tQjU.js} +1 -1
  71. package/web/index.html +2 -2
  72. package/web/assets/ask-tray-5HAI5ZUG-Bmz1vige.js +0 -23
  73. package/web/assets/channel-D7IslKH6.js +0 -1
  74. package/web/assets/classDiagram-OUVF2IWQ-8egtQzGs.js +0 -1
  75. package/web/assets/classDiagram-v2-EOCWNBFH-8egtQzGs.js +0 -1
  76. package/web/assets/index-Dt8OzQCe.css +0 -1
  77. package/web/assets/index-kEVTlQlX.js +0 -451
  78. package/web/assets/project-search-dialog-OJIM5FZU-CN-CXk-C.js +0 -43
  79. package/web/assets/swimlanesDiagram-G3AALYLV-C6xJvzKK.js +0 -8
@@ -36718,7 +36718,9 @@ class RepositoryNotesError extends Error {
36718
36718
  }
36719
36719
  function kennelConfigHome() {
36720
36720
  const xdg = process.env.XDG_CONFIG_HOME?.trim();
36721
- return xdg ? xdg : join2(homedir2(), ".config");
36721
+ if (xdg)
36722
+ return xdg;
36723
+ return join2(homedir2(), ".config");
36722
36724
  }
36723
36725
  function kennelConfigFile() {
36724
36726
  return join2(kennelConfigHome(), "kennel", "config.json");
@@ -790,7 +790,9 @@ class RepositoryNotesError extends Error {
790
790
  }
791
791
  function kennelConfigHome() {
792
792
  const xdg = process.env.XDG_CONFIG_HOME?.trim();
793
- return xdg ? xdg : join3(homedir(), ".config");
793
+ if (xdg)
794
+ return xdg;
795
+ return join3(homedir(), ".config");
794
796
  }
795
797
  function kennelConfigFile() {
796
798
  return join3(kennelConfigHome(), "kennel", "config.json");
@@ -33,7 +33,9 @@ class RepositoryNotesError extends Error {
33
33
  }
34
34
  function kennelConfigHome() {
35
35
  const xdg = process.env.XDG_CONFIG_HOME?.trim();
36
- return xdg ? xdg : join(homedir(), ".config");
36
+ if (xdg)
37
+ return xdg;
38
+ return join(homedir(), ".config");
37
39
  }
38
40
  function kennelConfigFile() {
39
41
  return join(kennelConfigHome(), "kennel", "config.json");
@@ -38326,7 +38326,9 @@ import { basename as basename5, dirname as dirname6, join as join2, relative as
38326
38326
  import { promisify } from "node:util";
38327
38327
  function kennelConfigHome() {
38328
38328
  const xdg = process.env.XDG_CONFIG_HOME?.trim();
38329
- return xdg ? xdg : join2(homedir2(), ".config");
38329
+ if (xdg)
38330
+ return xdg;
38331
+ return join2(homedir2(), ".config");
38330
38332
  }
38331
38333
  function kennelConfigFile() {
38332
38334
  return join2(kennelConfigHome(), "kennel", "config.json");
@@ -1,4 +1,4 @@
1
1
  import { type ViewerOptions } from './viewer.js';
2
2
  /** The hot viewer runs Vite from a Kennel source checkout; npm installs have none. */
3
3
  export declare function hotViewerAvailable(): boolean;
4
- export declare function hotViewer(options: ViewerOptions): Promise<void>;
4
+ export declare function hotViewer(options: ViewerOptions, restarting?: boolean): Promise<void>;
@@ -57,6 +57,10 @@ async function portOpen(host, port) {
57
57
  socket.setTimeout(250, () => finish(false));
58
58
  });
59
59
  }
60
+ /** The dev script writes its PID here so the CLI can stop a stale viewer. */
61
+ function viewerPidFile(port) {
62
+ return resolve(tmpdir(), `kennel-hot-viewer-${port}.pid`);
63
+ }
60
64
  function startupLock(host, port) {
61
65
  const name = `${host}-${port}`.replaceAll(/[^a-zA-Z0-9.-]/g, '-');
62
66
  return resolve(tmpdir(), `kennel-hot-viewer-${name}.lock`);
@@ -94,7 +98,29 @@ async function releaseLock(path, token) {
94
98
  return;
95
99
  await rm(path, { force: true, recursive: true });
96
100
  }
97
- export async function hotViewer(options) {
101
+ /** Stop the viewer serving an older plugin set and wait for its port. */
102
+ async function restartStaleViewer(options) {
103
+ const pid = Number((await readFile(viewerPidFile(options.port), 'utf8').catch(() => '')).trim());
104
+ if (!Number.isInteger(pid) || pid <= 1)
105
+ return false;
106
+ try {
107
+ process.kill(pid, 'SIGTERM');
108
+ }
109
+ catch (error) {
110
+ // ESRCH means the old viewer already stopped; continue and check the port.
111
+ if (!(error instanceof Error && 'code' in error && error.code === 'ESRCH'))
112
+ return false;
113
+ }
114
+ // Wait until the old viewer is fully gone so the fresh one can bind the port.
115
+ for (let attempt = 0; attempt < 40; attempt += 1) {
116
+ const status = await viewerStatus(`http://${options.host}:${options.port}`);
117
+ if (status === 'unavailable' && !await portOpen(options.host, options.port))
118
+ return true;
119
+ await new Promise((done) => setTimeout(done, 250));
120
+ }
121
+ return false;
122
+ }
123
+ export async function hotViewer(options, restarting = false) {
98
124
  if (options.tailscale) {
99
125
  throw new Error('The hot viewer is not available through Tailscale. Use kennel serve for remote access.');
100
126
  }
@@ -145,8 +171,13 @@ export async function hotViewer(options) {
145
171
  throw new Error(`Port ${options.port} runs the static Kennel viewer, not the hot viewer. ${restart}`);
146
172
  }
147
173
  if (running.kernelKey !== expectedKey) {
148
- throw new Error(`The Kennel hot viewer on port ${options.port} serves plugin set ${running.kernelKey}, `
149
- + `but the installed plugins are ${expectedKey}. ${restart}`);
174
+ const stale = `The Kennel hot viewer on port ${options.port} serves plugin set ${running.kernelKey}, `
175
+ + `but the installed plugins are ${expectedKey}. ${restart}`;
176
+ // Restart the stale viewer automatically so the command proceeds to the
177
+ // preview instead of asking the user to stop it by hand.
178
+ if (!restarting && await restartStaleViewer(options))
179
+ return hotViewer(options, true);
180
+ throw new Error(stale);
150
181
  }
151
182
  const terminal = previewTerminal(viewerUrl, options);
152
183
  if (options.open)
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "kennel",
3
- "version": "0.2.37",
3
+ "version": "0.2.39",
4
4
  "description": "Open-source pop-up previews for AI output: markdown, HTML artifacts, email, images, code, tables, notes, and calendars, from the terminal or your agent session.",
5
5
  "type": "module",
6
6
  "license": "MIT",
@@ -69,7 +69,7 @@
69
69
  "effect": "^3.19.7",
70
70
  "esbuild": "^0.27.0",
71
71
  "kennel-mcp": "https://registry.npmjs.org/%40raggle-ai%2fkennel-mcp/-/kennel-mcp-0.1.8.tgz",
72
- "kennel-plugins": "0.1.17",
72
+ "kennel-plugins": "0.1.18",
73
73
  "koffi": "^3.3.1",
74
74
  "lucide-react": "^0.562.0",
75
75
  "radix-ui": "^1.6.7",
@@ -1 +1 @@
1
- import{g as p,r as u,d as a}from"./chunk-MOJQB5TN-EpHbGsdi.js";import{p as f}from"./chunk-JWPE2WC7-C2-AGbdV.js";import{_ as n,l as o}from"./mermaid.core-B-0mplWE.js";import{b as c,M as d}from"./cynefin-VYW2F7L2-snxI94-K.js";import"./index-kEVTlQlX.js";import"./react-DELVxLrX.js";import"./markdown-BP-54rPU.js";import"./tanstack-CRaSxWtK.js";var v=c().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("*"),m=t?parseInt(t,10):0,l=s?parseInt(s,10):1/0;return{min:m,max:l}}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 d(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}},C={parser:R,db:a,renderer:u,styles:p};export{C as diagram};
1
+ import{g as p,r as u,d as a}from"./chunk-MOJQB5TN-9jU0GI-j.js";import{p as f}from"./chunk-JWPE2WC7-DtbIaf1u.js";import{_ as n,l as o}from"./mermaid.core-X1Uu4bc2.js";import{b as c,M as d}from"./cynefin-VYW2F7L2-BQ7wt45I.js";import"./index-pXpgbx7D.js";import"./react-DELVxLrX.js";import"./markdown-BP-54rPU.js";import"./tanstack-CRaSxWtK.js";var v=c().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("*"),m=t?parseInt(t,10):0,l=s?parseInt(s,10):1/0;return{min:m,max:l}}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 d(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}},C={parser:R,db:a,renderer:u,styles:p};export{C 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 sn,ab as on,ac as fn}from"./mermaid.core-B-0mplWE.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 sn,ab as on,ac as fn}from"./mermaid.core-X1Uu4bc2.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};