kennel 0.2.33 → 0.2.35

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 (70) hide show
  1. package/package.json +4 -2
  2. package/scripts/verify-config.mjs +59 -0
  3. package/web/assets/{abnfDiagram-VRR7QNED-CpP1VHKI.js → abnfDiagram-VRR7QNED-DkUWNWQv.js} +1 -1
  4. package/web/assets/{arc-kL4AxfvR.js → arc-CWgT7-8E.js} +1 -1
  5. package/web/assets/{architectureDiagram-ZJ3FMSHR-BWaRktRJ.js → architectureDiagram-ZJ3FMSHR-CbbK1pio.js} +1 -1
  6. package/web/assets/{ask-tray-PMT6VVXN-FqPDpwtw.js → ask-tray-PMT6VVXN-DteuP1wb.js} +3 -3
  7. package/web/assets/{blockDiagram-677ZJIJ3-B07uVoPU.js → blockDiagram-677ZJIJ3-Di0N2Zrt.js} +1 -1
  8. package/web/assets/{c4Diagram-LMCZKHZV-uvoaQC09.js → c4Diagram-LMCZKHZV-CFQ0opmD.js} +1 -1
  9. package/web/assets/channel-DjWTzvSU.js +1 -0
  10. package/web/assets/{chunk-2Q5K7J3B-BH3SaHqk.js → chunk-2Q5K7J3B-qj1cLdQn.js} +1 -1
  11. package/web/assets/{chunk-32BRIVSS-SPD8Eraw.js → chunk-32BRIVSS-b9orjz7Y.js} +1 -1
  12. package/web/assets/{chunk-5VM5RSS4-DNeOgOuZ.js → chunk-5VM5RSS4-sl1sfXrn.js} +1 -1
  13. package/web/assets/{chunk-EX3LRPZG-SJQ-vKGz.js → chunk-EX3LRPZG-hD0CMU1X.js} +1 -1
  14. package/web/assets/{chunk-JWPE2WC7-Dy_9wZ2Y.js → chunk-JWPE2WC7-LkIZFja0.js} +1 -1
  15. package/web/assets/{chunk-MOJQB5TN-CuIx80Vn.js → chunk-MOJQB5TN-Br8N3iZB.js} +1 -1
  16. package/web/assets/{chunk-RYQCIY6F-DDG61RKR.js → chunk-RYQCIY6F-n9axjI51.js} +1 -1
  17. package/web/assets/{chunk-V7JOEXUC-7OMVhaoH.js → chunk-V7JOEXUC-B3qK4s0p.js} +1 -1
  18. package/web/assets/{chunk-VR4S4FIN-Y-HNaSmV.js → chunk-VR4S4FIN-B-fGQdxx.js} +1 -1
  19. package/web/assets/{chunk-XXDRQBXY-CtG0MPgC.js → chunk-XXDRQBXY-B1sU0_T8.js} +1 -1
  20. package/web/assets/classDiagram-OUVF2IWQ-BUdjbB9h.js +1 -0
  21. package/web/assets/classDiagram-v2-EOCWNBFH-BUdjbB9h.js +1 -0
  22. package/web/assets/{cose-bilkent-JH36ORCC-BZaPMYcl.js → cose-bilkent-JH36ORCC-9kt0gyOg.js} +1 -1
  23. package/web/assets/{cynefin-VYW2F7L2-DxAlRHA1.js → cynefin-VYW2F7L2-C_5DmNI2.js} +1 -1
  24. package/web/assets/{cynefinDiagram-TSTJHNR4-gjgzmagS.js → cynefinDiagram-TSTJHNR4-FjyUfQKs.js} +1 -1
  25. package/web/assets/{dagre-VKFMJZFB-DvLPeYuw.js → dagre-VKFMJZFB-xBTDce3j.js} +1 -1
  26. package/web/assets/{diagram-FQU43EPY-443LFnzG.js → diagram-FQU43EPY-BDl-JVFm.js} +1 -1
  27. package/web/assets/{diagram-G47NLZAW-CqfUewot.js → diagram-G47NLZAW-DC-yPPXI.js} +1 -1
  28. package/web/assets/{diagram-NH7WQ7WH-D-FElUGW.js → diagram-NH7WQ7WH-CJCFdJQX.js} +1 -1
  29. package/web/assets/{diagram-OA4YK3LP-DbidUAp5.js → diagram-OA4YK3LP-DW4j2HK1.js} +1 -1
  30. package/web/assets/{diagram-WEI45ONY-CPLeckCZ.js → diagram-WEI45ONY-bssZQ_KW.js} +1 -1
  31. package/web/assets/{ebnfDiagram-CCIWWBDH-DR0rqZzN.js → ebnfDiagram-CCIWWBDH-C1sFSx5c.js} +1 -1
  32. package/web/assets/{entity-search-page-G6QEQNXT-CnG8d-at.js → entity-search-page-G6QEQNXT-B1s01aOP.js} +1 -1
  33. package/web/assets/{erDiagram-Q63AITRT-DMXv_8Tj.js → erDiagram-Q63AITRT-CyoqC1og.js} +1 -1
  34. package/web/assets/{flowDiagram-23GEKE2U-DnbQjZs0.js → flowDiagram-23GEKE2U-Cpv1-1QG.js} +1 -1
  35. package/web/assets/{ganttDiagram-NO4QXBWP-DBKIrjj8.js → ganttDiagram-NO4QXBWP-Bja02J7q.js} +1 -1
  36. package/web/assets/{gitGraphDiagram-IHSO6WYX-BqqxKWT_.js → gitGraphDiagram-IHSO6WYX-C3i9WA5a.js} +1 -1
  37. package/web/assets/{index-Bd3ghcW-.js → index-DrgVGQZb.js} +87 -87
  38. package/web/assets/{infoDiagram-FWYZ7A6U-Ba6Fs17y.js → infoDiagram-FWYZ7A6U-CZ9_Met7.js} +1 -1
  39. package/web/assets/{ishikawaDiagram-FXEZZL3T-D3BOtFjy.js → ishikawaDiagram-FXEZZL3T-fTKSpUER.js} +1 -1
  40. package/web/assets/{journeyDiagram-5HDEW3XC-MbzFPQm8.js → journeyDiagram-5HDEW3XC-C0PkbUrw.js} +1 -1
  41. package/web/assets/{kanban-definition-HUTT4EX6-CurBmwu1.js → kanban-definition-HUTT4EX6-BBfylG7Y.js} +1 -1
  42. package/web/assets/{linear-CQIr4JjI.js → linear-CtzyRrjx.js} +1 -1
  43. package/web/assets/{linked-session-header-M7WY6IGF-BBgN8zTq.js → linked-session-header-M7WY6IGF-BpGDoYK2.js} +1 -1
  44. package/web/assets/{mermaid.core-bE6Vl3bZ.js → mermaid.core-BbYSRWM1.js} +4 -4
  45. package/web/assets/{mindmap-definition-LN4V7U3C-C1a46OGU.js → mindmap-definition-LN4V7U3C-cPd5mUs_.js} +1 -1
  46. package/web/assets/{pegDiagram-2B236MQR-DZxMOxek.js → pegDiagram-2B236MQR-BLysIVEy.js} +1 -1
  47. package/web/assets/{pieDiagram-ENE6RG2P-BN0XOKLi.js → pieDiagram-ENE6RG2P-B4JqjP9b.js} +1 -1
  48. package/web/assets/{plugin-host-modules-CaRD5_5q.js → plugin-host-modules-C68oxv16.js} +1 -1
  49. package/web/assets/{project-search-dialog-HJFGW4DG-h_dHeh7g.js → project-search-dialog-HJFGW4DG-Dars8w7y.js} +1 -1
  50. package/web/assets/{project-search-page-NKQEBGPF-2AzjjLEC.js → project-search-page-NKQEBGPF-C3cyX3wH.js} +1 -1
  51. package/web/assets/{quadrantDiagram-ABIIQ3AL-C6IegTP-.js → quadrantDiagram-ABIIQ3AL-BS1oURCa.js} +1 -1
  52. package/web/assets/{railroadDiagram-RFXS5EU6-bsjyAl-q.js → railroadDiagram-RFXS5EU6-D_EuGbb3.js} +1 -1
  53. package/web/assets/{requirementDiagram-TGXJPOKE-Cl8EZWy7.js → requirementDiagram-TGXJPOKE-JP02IzCE.js} +1 -1
  54. package/web/assets/{sankeyDiagram-HTMAVEWB-DhK4rRux.js → sankeyDiagram-HTMAVEWB-Cx60HPlW.js} +1 -1
  55. package/web/assets/{selection-popup-532EHNCZ-E2iQ2gQQ.js → selection-popup-532EHNCZ-CrxsF7m_.js} +1 -1
  56. package/web/assets/{sequenceDiagram-DBY2YBRQ-DQTaPSD6.js → sequenceDiagram-DBY2YBRQ-3QtW06kU.js} +1 -1
  57. package/web/assets/{sizeCapture-X5ZJPWSS-k77bZ1zg.js → sizeCapture-X5ZJPWSS-CSuoZJuk.js} +1 -1
  58. package/web/assets/{stateDiagram-2N3HPSRC-Cv_5WuZJ.js → stateDiagram-2N3HPSRC-BAsydsiR.js} +1 -1
  59. package/web/assets/{stateDiagram-v2-6OUMAXLB-DJ1Lrskh.js → stateDiagram-v2-6OUMAXLB-CvxijWG0.js} +1 -1
  60. package/web/assets/{swimlanes-5IMT3BWC-gBtAjG3z.js → swimlanes-5IMT3BWC-B4PBXpHZ.js} +2 -2
  61. package/web/assets/swimlanesDiagram-G3AALYLV-C8TD61rP.js +8 -0
  62. package/web/assets/{timeline-definition-FHXFAJF6-CFjnM1Qq.js → timeline-definition-FHXFAJF6-BaZngtPX.js} +1 -1
  63. package/web/assets/{vennDiagram-L72KCM5P-CeMWrThY.js → vennDiagram-L72KCM5P-BlruBTgi.js} +1 -1
  64. package/web/assets/{wardleyDiagram-EHGQE667-R-ZaAOAI.js → wardleyDiagram-EHGQE667-C3EyrPsg.js} +1 -1
  65. package/web/assets/{xychartDiagram-FW5EYKEG-BFXoMXiN.js → xychartDiagram-FW5EYKEG-C-70lIOx.js} +1 -1
  66. package/web/index.html +1 -1
  67. package/web/assets/channel-Djmf1Ik1.js +0 -1
  68. package/web/assets/classDiagram-OUVF2IWQ-hlDS9RWf.js +0 -1
  69. package/web/assets/classDiagram-v2-EOCWNBFH-hlDS9RWf.js +0 -1
  70. package/web/assets/swimlanesDiagram-G3AALYLV-DF1K9voG.js +0 -8
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "kennel",
3
- "version": "0.2.33",
3
+ "version": "0.2.35",
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",
@@ -43,13 +43,15 @@
43
43
  "bin",
44
44
  "dist",
45
45
  "schemas",
46
+ "scripts/verify-config.mjs",
46
47
  "templates",
47
48
  "web"
48
49
  ],
49
50
  "scripts": {
50
51
  "build": "node scripts/build.mjs",
51
52
  "typecheck": "tsc -p tsconfig.json --noEmit",
52
- "check": "npm run build && node --check bin/kennel.mjs && node --check dist/main.js && npm run smoke",
53
+ "check": "npm run build && node --check bin/kennel.mjs && node --check dist/main.js && npm run smoke && npm run verify:config",
54
+ "verify:config": "node scripts/verify-config.mjs .",
53
55
  "smoke": "node --input-type=module -e \"await import('./dist/mcp/generate.js')\"",
54
56
  "prepack": "node scripts/build.mjs",
55
57
  "pack:check": "bun pm pack --dry-run",
@@ -0,0 +1,59 @@
1
+ import assert from "node:assert/strict"
2
+ import { spawnSync } from "node:child_process"
3
+ import { mkdtemp, mkdir, readFile, rm, writeFile } from "node:fs/promises"
4
+ import { createRequire } from "node:module"
5
+ import { tmpdir } from "node:os"
6
+ import { join, resolve } from "node:path"
7
+
8
+ // Run against the built checkout, a packed install, or a released npm install.
9
+ // Usage: node packages/cli/scripts/verify-config.mjs <CLI package directory>
10
+ const [directory] = process.argv.slice(2)
11
+ if (!directory) throw new Error("Supply the CLI package directory")
12
+ const root = resolve(directory)
13
+ const require = createRequire(join(root, "package.json"))
14
+ const { z } = require("zod")
15
+ const schema = JSON.parse(await readFile(join(root, "schemas/config.schema.json"), "utf8"))
16
+ assert.equal(schema.$id, "https://raggle.co/kennel/config.json")
17
+ const validator = z.fromJSONSchema(schema)
18
+ const temporary = await mkdtemp(join(tmpdir(), "kennel-config-verify-"))
19
+
20
+ try {
21
+ const configHome = join(temporary, "config")
22
+ const configFile = join(configHome, "kennel/config.json")
23
+ await mkdir(join(configHome, "kennel"), { recursive: true })
24
+ const config = {
25
+ $schema: schema.$id,
26
+ allowedRoots: [temporary],
27
+ externalPlugins: [],
28
+ repositoryNotes: { enabled: true },
29
+ }
30
+ const cases = [
31
+ { name: "repository notes enabled", value: config, valid: true },
32
+ { name: "invalid repository notes flag", value: { ...config, repositoryNotes: { enabled: "true" } }, valid: false, field: "repositoryNotes" },
33
+ { name: "unknown setting", value: { ...config, unknownSetting: true }, valid: false, field: "unknownSetting" },
34
+ ]
35
+
36
+ for (const { name, value, valid, field } of cases) {
37
+ assert.equal(validator.safeParse(value).success, valid, `${name}: packaged schema verdict`)
38
+ await writeFile(configFile, `${JSON.stringify(value, null, 2)}\n`)
39
+ const result = spawnSync(process.execPath, [join(root, "bin/kennel.mjs"), "plugin", "list"], {
40
+ cwd: temporary,
41
+ env: { ...process.env, XDG_CONFIG_HOME: configHome, XDG_CACHE_HOME: join(temporary, "cache") },
42
+ encoding: "utf8",
43
+ timeout: 30_000,
44
+ })
45
+ if (result.error) throw result.error
46
+ assert.equal(result.signal, null, `${name}: CLI terminated by signal`)
47
+ if (valid) {
48
+ assert.equal(result.status, 0, `${name}: ${result.stderr}`)
49
+ assert.match(result.stdout, /No external plugins installed\./)
50
+ } else {
51
+ assert.equal(result.status, 2, `${name}: CLI must reject invalid config`)
52
+ assert.ok(result.stderr.includes(`Invalid Kennel config at ${configFile}`), `${name}: expected config validation error, got ${result.stderr}`)
53
+ assert.ok(result.stderr.includes(field), `${name}: error must identify ${field}`)
54
+ }
55
+ console.log(`PASS: ${name} (packaged schema and installed CLI)`)
56
+ }
57
+ } finally {
58
+ await rm(temporary, { recursive: true, force: true })
59
+ }
@@ -1 +1 @@
1
- import{g as p,r as u,d as a}from"./chunk-MOJQB5TN-CuIx80Vn.js";import{p as f}from"./chunk-JWPE2WC7-Dy_9wZ2Y.js";import{_ as n,l as o}from"./mermaid.core-bE6Vl3bZ.js";import{b as c,M as d}from"./cynefin-VYW2F7L2-DxAlRHA1.js";import"./index-Bd3ghcW-.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-Br8N3iZB.js";import{p as f}from"./chunk-JWPE2WC7-LkIZFja0.js";import{_ as n,l as o}from"./mermaid.core-BbYSRWM1.js";import{b as c,M as d}from"./cynefin-VYW2F7L2-C_5DmNI2.js";import"./index-DrgVGQZb.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-bE6Vl3bZ.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-BbYSRWM1.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};