@huynle/hub 0.8.6 → 0.9.0

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 (184) hide show
  1. package/CHANGELOG.md +139 -0
  2. package/README.md +69 -12
  3. package/package.json +5 -1
  4. package/packages/claude-code/package.json +1 -1
  5. package/packages/cli/dist/hub-cli.js +278 -35
  6. package/packages/cli/package.json +1 -1
  7. package/packages/cli/src/bootstrap/adapters/opencode/README.md +4 -2
  8. package/packages/cli/src/bootstrap/release/harness-pins.json +22 -0
  9. package/packages/cli/src/bootstrap/release/harness-pins.pending.json +1 -20
  10. package/packages/cli/src/cli.ts +23 -10
  11. package/packages/cli/src/http.ts +1 -0
  12. package/packages/cli/src/launches.ts +5 -1
  13. package/packages/cli/src/mcp.ts +28 -8
  14. package/packages/cli/src/messaging.ts +14 -0
  15. package/packages/cli/src/team-intake-mcp.ts +26 -2
  16. package/packages/codex/package.json +1 -1
  17. package/packages/node/package.json +1 -1
  18. package/packages/preset/package.json +1 -1
  19. package/packages/protocol/package.json +1 -1
  20. package/packages/protocol/schema/app-delivery/v1.schema.json +677 -0
  21. package/packages/protocol/src/artifacts.ts +43 -0
  22. package/packages/protocol/src/credentials.ts +38 -0
  23. package/packages/protocol/src/index.ts +56 -5
  24. package/packages/protocol/src/launch.ts +7 -2
  25. package/packages/protocol/src/markdown.ts +753 -0
  26. package/packages/protocol/src/media-allowlist.ts +240 -0
  27. package/packages/protocol/src/media.ts +120 -0
  28. package/packages/protocol/src/preview-bundle.ts +221 -0
  29. package/packages/protocol/src/voice-recording.ts +8 -0
  30. package/packages/runtime-openshell/package.json +1 -1
  31. package/packages/runtime-sdk/package.json +1 -1
  32. package/packages/sdk/package.json +1 -1
  33. package/packages/sdk/src/client.ts +17 -3
  34. package/packages/sdk/src/errors.ts +1 -0
  35. package/packages/sdk/src/team-intake.ts +8 -0
  36. package/packages/sdk/src/types.ts +16 -2
  37. package/packages/spoke-sdk/package.json +1 -1
  38. package/src/central/agent/delivery.ts +35 -6
  39. package/src/central/agent/errors.ts +2 -0
  40. package/src/central/agent/events.ts +11 -2
  41. package/src/central/agent/launch-engine.ts +65 -4
  42. package/src/central/agent/launch-routes.ts +8 -0
  43. package/src/central/agent/launch-spec.ts +18 -1
  44. package/src/central/agent/launch-store.ts +2 -2
  45. package/src/central/agent/message-routes.ts +49 -11
  46. package/src/central/agent/messages.ts +17 -4
  47. package/src/central/agent/not-after.ts +28 -0
  48. package/src/central/agent/placement.ts +36 -4
  49. package/src/central/agent/routes.ts +3 -1
  50. package/src/central/agent/webhook-routes.ts +21 -9
  51. package/src/central/agent/webhooks.ts +27 -9
  52. package/src/central/artifacts/host.ts +3 -1
  53. package/src/central/artifacts/maintenance.ts +2 -1
  54. package/src/central/artifacts/preview-bundle.ts +81 -0
  55. package/src/central/artifacts/previews.ts +94 -0
  56. package/src/central/artifacts/routes.ts +12 -1
  57. package/src/central/artifacts/store.ts +198 -8
  58. package/src/central/config.ts +34 -0
  59. package/src/central/fetch-budget.ts +59 -0
  60. package/src/central/fetcher.ts +372 -0
  61. package/src/central/http.ts +277 -22
  62. package/src/central/media-remote.ts +248 -0
  63. package/src/central/media-timeline.ts +317 -0
  64. package/src/central/media-unfurl.ts +119 -0
  65. package/src/central/profiles/content.ts +3 -35
  66. package/src/central/recording/routes.ts +2 -2
  67. package/src/central/recording/schema.ts +3 -1
  68. package/src/central/registry.ts +449 -21
  69. package/src/central/spoke-ws.ts +17 -3
  70. package/src/central/store.ts +21 -0
  71. package/src/central/teams/intake-routes.ts +2 -1
  72. package/src/central/teams/intake.ts +200 -15
  73. package/src/central/unfurl-parse.ts +313 -0
  74. package/src/index.ts +68 -8
  75. package/src/speakable.ts +33 -1
  76. package/src/spoke/conversation.ts +7 -4
  77. package/src/spoke/deliver.ts +19 -0
  78. package/src/spoke/media-bytes.ts +171 -0
  79. package/src/spoke/media-policy.ts +394 -0
  80. package/src/spoke/media.ts +189 -0
  81. package/src/spoke/own-server.ts +30 -0
  82. package/src/spoke/preview-bundle.ts +538 -0
  83. package/src/spoke/spoke.ts +387 -17
  84. package/src/spoke/timeline.ts +59 -5
  85. package/src/spoke/voice-front.ts +335 -0
  86. package/web/dist/assets/24BXRY42-Zfr7jm_p.js +2 -0
  87. package/web/dist/assets/4FHPYW2L-C6Z67098.js +2 -0
  88. package/web/dist/assets/4LWW3ZNH-CUiYeygH.js +1 -0
  89. package/web/dist/assets/5THPTBWS-Ce_hS451.js +1 -0
  90. package/web/dist/assets/5XYWFMKW-CW-BCKiK.js +4 -0
  91. package/web/dist/assets/64PMEAB3-BjpCDGU9.js +8 -0
  92. package/web/dist/assets/6BEWHPQE-BpNa96Ze.js +2 -0
  93. package/web/dist/assets/6PIGVMFT-YXn9Hgnb.js +1 -0
  94. package/web/dist/assets/75JW6PN6-BFpDBuGN.js +2 -0
  95. package/web/dist/assets/7WLXJQOR-D6QVYUu9.js +1 -0
  96. package/web/dist/assets/7XWI72E6-BMuIspEy.js +2 -0
  97. package/web/dist/assets/A4UD2L5Z-BQzcD9dU.js +8 -0
  98. package/web/dist/assets/ArtifactPage-4GoBqSpU.js +1 -0
  99. package/web/dist/assets/ArtifactPane-Dx_0iWwH.js +1 -0
  100. package/web/dist/assets/ArtifactWorkbench-CuHgARMk.js +6 -0
  101. package/web/dist/assets/BGW36YJW-CJMhya8S.js +4 -0
  102. package/web/dist/assets/CGIZI67J-DYDSLME8.js +2 -0
  103. package/web/dist/assets/DKTLEL5E-DciMwFJ1.js +1 -0
  104. package/web/dist/assets/DNNCRC2E-BIeKf5t-.js +5 -0
  105. package/web/dist/assets/Diagram-CZM_R7MG.js +1 -0
  106. package/web/dist/assets/Diagram-vdpmp3xu.css +1 -0
  107. package/web/dist/assets/E67EBMDD--AucIw59.js +5 -0
  108. package/web/dist/assets/EFYWJBJK-CVywe_D5.js +1 -0
  109. package/web/dist/assets/EXE5EH6O-DR1IHCTr.js +4 -0
  110. package/web/dist/assets/FTXIJQGB-BZVuiBn1.js +1 -0
  111. package/web/dist/assets/G3MDBVQH-BZmnMkFw.js +1 -0
  112. package/web/dist/assets/G6GPDDNC-DEz8F449.js +2 -0
  113. package/web/dist/assets/G76NGGFM-CrB2V34K.js +1 -0
  114. package/web/dist/assets/GH6G3TJC-D3RTYEH4.js +2 -0
  115. package/web/dist/assets/HPNUA7RO-B19NeNOJ.js +1 -0
  116. package/web/dist/assets/HQRGC5D7-Dmpzq6Rn.js +4 -0
  117. package/web/dist/assets/IX6Z2TVR-DphRHnek.js +5 -0
  118. package/web/dist/assets/J77NQRCJ-B7AGcxvw.js +3 -0
  119. package/web/dist/assets/JAD36DTZ-B9-dbsS0.js +5 -0
  120. package/web/dist/assets/LF3NJQAX-koL91UZ9.js +2 -0
  121. package/web/dist/assets/LRZCOFJZ-Cdjasfuf.js +6 -0
  122. package/web/dist/assets/Library-TwvrwqSk.js +2 -0
  123. package/web/dist/assets/Lightbox-C8KNKwOA.css +1 -0
  124. package/web/dist/assets/Lightbox-Du56MXGX.js +1 -0
  125. package/web/dist/assets/MediaImage-Ds_JUx3a.js +4 -0
  126. package/web/dist/assets/N5NF2FGY-OuapYTfr.js +2 -0
  127. package/web/dist/assets/N7OWWQHY-BNLd-Q_U.js +2 -0
  128. package/web/dist/assets/NT5JY5WP-1lJM-aun.js +1 -0
  129. package/web/dist/assets/OT7W3RNY-jDL3drzX.js +4 -0
  130. package/web/dist/assets/P67P66DB-CE-opRb8.js +3 -0
  131. package/web/dist/assets/PFLLLM7K-DDJFgzW3.js +2 -0
  132. package/web/dist/assets/PUAMC4MJ-CtBm-WuU.js +12 -0
  133. package/web/dist/assets/PVFCHRLY-CG5JXv60.js +2 -0
  134. package/web/dist/assets/ProfilesDestination-rKNDpLjR.js +1 -0
  135. package/web/dist/assets/QQW2P742-BbcEkpa4.js +1 -0
  136. package/web/dist/assets/RVARI57O-CgA1WoRv.js +1 -0
  137. package/web/dist/assets/S63OEDPG-CKlhpvl2.js +3 -0
  138. package/web/dist/assets/SG5TVYLW-BBtiwXPL.js +2 -0
  139. package/web/dist/assets/TeamsPage-DtJylLrt.js +1 -0
  140. package/web/dist/assets/UGRSUGA2-urZ_hx83.js +5 -0
  141. package/web/dist/assets/V44WA6U7-DYfX3OlM.js +1 -0
  142. package/web/dist/assets/V67O4WWV-xYxJ00QW.js +1 -0
  143. package/web/dist/assets/VBUCM3YD-JHGjuJC_.js +1 -0
  144. package/web/dist/assets/VINGRCPA-DZuJa3SH.js +7 -0
  145. package/web/dist/assets/WL6DNKX4-BHqripdA.js +2 -0
  146. package/web/dist/assets/WQ63CJYP-D6G5frDY.js +2 -0
  147. package/web/dist/assets/Watchtower-Bmgdyfjb.js +2 -0
  148. package/web/dist/assets/XOYAOB3S-L-KeA1EF.js +13 -0
  149. package/web/dist/assets/Y5LQLG3M-dr2-erb8.js +2 -0
  150. package/web/dist/assets/YIK6JTN6--1t-Ud8k.js +2 -0
  151. package/web/dist/assets/artifacts-DU9uRgs1.js +1 -0
  152. package/web/dist/assets/index-C3ci5UtY.css +1 -0
  153. package/web/dist/assets/index-D-xG9nrc.js +36 -0
  154. package/web/dist/assets/lazy-f3CuUNJZ.js +43 -0
  155. package/web/dist/assets/live-7q72Lyj2.js +5 -0
  156. package/web/dist/assets/mermaid.worker-WDVRAh32.js +1 -0
  157. package/web/dist/assets/pane-layout-0RrLHGDr.js +1 -0
  158. package/web/dist/assets/preload-helper-BLdHbfdN.js +1 -0
  159. package/web/dist/assets/{renderer2d-CYag1CnR.js → renderer2d-hfZxM6Xl.js} +1 -1
  160. package/web/dist/assets/{renderer3d-BRB6rgDJ.js → renderer3d-Km9vipTM.js} +1 -1
  161. package/web/dist/assets/{safe-area-fOy0AOuG.js → safe-area-BAbgBiFk.js} +1 -1
  162. package/web/dist/assets/{silero-worker-DhlIHyD_.js → silero-worker-e802lB5T.js} +1 -1
  163. package/web/dist/assets/smart-turn-v3.2-cpu-WpeLRbPA.onnx +0 -0
  164. package/web/dist/assets/smart-turn-worker-DaVJPdvJ.js +11 -0
  165. package/web/dist/assets/source-BWlvaODa.js +1 -0
  166. package/web/dist/assets/toast-Cuu2K0hx.js +1 -0
  167. package/web/dist/assets/ui-CFB4wQfF.js +3 -0
  168. package/web/dist/index.html +8 -6
  169. package/web/src/voice/turn/LICENSE +28 -0
  170. package/web/dist/assets/ArtifactPage-Dq7VW-bU.js +0 -1
  171. package/web/dist/assets/ArtifactPane-DKwbMTX9.js +0 -1
  172. package/web/dist/assets/ArtifactWorkbench-vrgIfncX.js +0 -6
  173. package/web/dist/assets/Library-D6-Go6Cu.js +0 -2
  174. package/web/dist/assets/ProfilesDestination-BOML2Dgf.js +0 -1
  175. package/web/dist/assets/TeamsPage-CNBTE8gB.js +0 -1
  176. package/web/dist/assets/Watchtower-Dor1Ubjy.js +0 -2
  177. package/web/dist/assets/hub-CrbItiwP.js +0 -13
  178. package/web/dist/assets/index-82Ce0IAf.css +0 -1
  179. package/web/dist/assets/index-D9SP3_0z.js +0 -22
  180. package/web/dist/assets/live-BNJgy0vg.js +0 -5
  181. package/web/dist/assets/pane-layout-EdR1kRrG.js +0 -1
  182. package/web/dist/assets/preload-helper-DqrJTq0t.js +0 -1
  183. package/web/dist/assets/source-Wbq35qGp.js +0 -1
  184. package/web/dist/assets/ui-j5FFk90B.js +0 -3
@@ -0,0 +1,8 @@
1
+ import{d as e,i as t,n,o as r,r as i,s as a,t as o,u as s}from"./BGW36YJW-CJMhya8S.js";import{a as c,t as l}from"./DKTLEL5E-DciMwFJ1.js";import{c as u,d,g as f,h as p,i as m,l as h,o as g,s as _,u as v}from"./EFYWJBJK-CVywe_D5.js";import{a as y,i as b,r as ee,t as te}from"./VBUCM3YD-JHGjuJC_.js";import{t as ne}from"./NT5JY5WP-1lJM-aun.js";import{r as re}from"./4LWW3ZNH-CUiYeygH.js";import{A as x,E as S,I as C,N as w,T,_ as E,d as D,f as ie,h as O,l as ae,r as oe,s as se,u as k,y as A}from"./lazy-f3CuUNJZ.js";var j=`EOF USECASE ACTOR SYSTEM_BOUNDARY END DIRECTION TD TB BT LR RL NOTE FOR JSON CLASS_DEF CLASS STYLE INCLUDE EXTEND TRUE FALSE IDENTIFIER NUMBER AT COMMA COLON HASH_COLOR CSS_IDENTIFIER CSS_ESCAPED_COMMA DASH DOT PERCENT CSS_PUNCTUATION LABEL_PUNCTUATION LABEL_SYMBOL PLAIN_STRING MARKDOWN_STRING UNCLOSED_MARKDOWN_STRING COMMENT NEWLINE ACC_DESCR_BLOCK ACC_TITLE_LINE ACC_DESCR_LINE JSON_DECLARATION_START JSON_OBJECT_LITERAL UNCLOSED_JSON_OBJECT_LITERAL GENERALIZATION DEPENDENCY_ARROW STEREOTYPE_START STEREOTYPE_END STEREOTYPE_TEXT UNCLOSED_STEREOTYPE_TEXT CLASS_SEPARATOR FORWARD_SOLID BACKWARD_SOLID FORWARD_CIRCLE BACKWARD_CIRCLE FORWARD_CROSS BACKWARD_CROSS MARKERLESS_SOLID METADATA_START LBRACE RBRACE LBRACKET RBRACKET LPAREN RPAREN`.split(` `),M=1,N=2,P=/* @__PURE__ */ new Uint8Array(128);for(let e=48;e<=57;e++)P[e]=M;for(let e=65;e<=90;e++)P[e]=P[e+32]=M;P[95]=M;for(let e of`!#$&*+/=?^|~`)P[e.charCodeAt(0)]=N;var ce=[0,12,5,14,3,9,2,2,2,2,2,4,3,4,8,5,5,7,6,4,5];function F(e){return e<128&&(P[e]&M)!==0}function I(e,t,n){for(let r=0;r<n.length;r++)if((e.charCodeAt(t+r)|32)!==n.charCodeAt(r))return!1;return!0}function le(e,t,n){switch(n){case 97:return e.startsWith(`actor`,t)?2:0;case 115:return e.startsWith(`systemBoundary`,t)?3:e.startsWith(`style`,t)?16:0;case 101:return e.startsWith(`end`,t)?4:I(e,t,`extend`)?18:0;case 69:return I(e,t,`extend`)?18:0;case 100:return e.startsWith(`direction`,t)?5:0;case 84:return e.startsWith(`TD`,t)?6:e.startsWith(`TB`,t)?7:0;case 66:return e.startsWith(`BT`,t)?8:0;case 76:return e.startsWith(`LR`,t)?9:0;case 82:return e.startsWith(`RL`,t)?10:0;case 110:return e.startsWith(`note`,t)?11:0;case 102:return e.startsWith(`for`,t)?12:e.startsWith(`false`,t)?20:0;case 106:return e.startsWith(`json`,t)?13:0;case 99:return e.startsWith(`classDef`,t)?14:e.startsWith(`class`,t)?15:0;case 105:case 73:return I(e,t,`include`)?17:0;case 116:return e.startsWith(`true`,t)?19:0;case 117:return+!!e.startsWith(`usecase-beta`,t);default:return 0}}function L(e,t){[e,t]=E(e,t);let n=1,r=0;for(let i=0;i<t;i++){let a=e.charCodeAt(i);a!==10&&a!==13||(a===13&&i+1<t&&e.charCodeAt(i+1)===10&&i++,n++,r=i+1)}return[n,t-r+1]}function ue(e,t,n){let[r,i]=L(e,t);return`line ${r}, column ${i} [${E(e,t)[1]},${E(e,n)[1]})`}function de(e,t,n){for(let r=t+1;r<e.length;r++){let t=e.charCodeAt(r);if(t===n)return r+1;if(t===10||t===13)return-1}return-1}function fe(e,t){let n=e.charCodeAt(t);return n!==34&&n!==39||n===34&&e.charCodeAt(t+1)===96||de(e,t,n)!==-1}function pe(e,t,n){let[r,i]=L(e,t),[a,o]=[E(e,t)[1],E(e,t+n)[1]];return new k(`Error lexing usecase diagram: unexpected character: ->${e.charAt(t)}<- at offset: ${a}, skipped ${o-a} characters. at line ${r}, column ${i} [${a},${o})`,`syntax`,{type:`usecase`,line:r,column:i})}function me(e){let t=[],n=[],r=[],i=e.length,a=0,o=!0,s=!1;for(;a<i;){let c=e.charCodeAt(a);if(c===32||c===9){a++;continue}let l,u=a+1,d=!1;if(c<128&&(P[c]&M)!==0){if(l=0,c===97&&o&&e.startsWith(`acc`,a)){let t=e.startsWith(`Descr`,a+3);if(t||e.startsWith(`Title`,a+3)){let n=a+8;for(;A(e.charCodeAt(n));)n++;let r=e.charCodeAt(n);if(r===58)for(l=t?42:41,u=n+1;u<i&&e.charCodeAt(u)!==10&&e.charCodeAt(u)!==13;)u++;else if(r===123&&t&&!s){let t=e.indexOf(`}`,n+1);t===-1?s=!0:(l=40,u=t+1)}}}else if(c===106&&e.startsWith(`json`,a)&&A(e.charCodeAt(a+4))){let s=a+5;for(;A(e.charCodeAt(s));)s++;let c=s;for(;F(e.charCodeAt(s));)s++;if(s>c){for(;A(e.charCodeAt(s));)s++;if(e.charCodeAt(s)===64){for(s++;A(e.charCodeAt(s));)s++;if(e.charCodeAt(s)===123){t.push(43),n.push(a),r.push(s),a=s;let c=0,l=!1,u=!1,d=s;for(;d<i;d++){let t=e.charCodeAt(d);if(l)u?u=!1:t===92?u=!0:t===34&&(l=!1);else if(t===34)l=!0;else if(t===123)c++;else if(t===125&&--c===0)break}t.push(d<i?44:45),n.push(s),a=d<i?d+1:i,r.push(a),o=!1;continue}}}}if(l===0){for(;u<i&&F(e.charCodeAt(u));)u++;let t=le(e,a,c);if(t!==0)t===1||u-a===ce[t]?(l=t,u=a+ce[t]):l=21;else if((c===111||c===120)&&e.charCodeAt(a+1)===45&&e.charCodeAt(a+2)===45)l=c===111?56:58,u=a+3;else if(w(c)){let t=a+1;for(;w(e.charCodeAt(t));)t++;if(e.charCodeAt(t)===46&&w(e.charCodeAt(t+1))){for(l=22,u=t+2;w(e.charCodeAt(u));)u++;for(;C(e.charCodeAt(u));)u++}else l=21}else for(l=21;e.charCodeAt(u)===45&&F(e.charCodeAt(u+1));)for(l=27,u+=2;F(e.charCodeAt(u));)u++}}else if(c===10)l=39,d=!0;else if(c===13)l=39,d=!0,e.charCodeAt(u)===10&&u++;else if(c===34||c===39){if(c===34&&e.charCodeAt(a+1)===96){let t=e.indexOf('`"',a+2);l=t===-1?37:36,u=t===-1?i:t+2}else if(l=35,u=de(e,a,c),u===-1){let t=a+1;for(;t<i&&!fe(e,t);)t++;throw pe(e,a,t-a)}}else if(c===37){if(o&&e.charCodeAt(u)===37)for(l=38;u<i&&e.charCodeAt(u)!==10&&e.charCodeAt(u)!==13;)u++;else l=31}else if(c===45){if(e.charCodeAt(u)!==45)l=29;else{for(;e.charCodeAt(u)===45;)u++;let t=e.charCodeAt(u),n=u-a===2;n&&t===124&&e.charCodeAt(u+1)===62?(l=46,u+=2):t===62?(l=53,u++):n&&(t===111||t===120)?(l=t===111?55:57,u++):l=59}}else if(c===46){let t=e.charCodeAt(u);if(t===46&&e.charCodeAt(u+1)===62)l=47,u+=2;else if(w(t)){for(l=22;w(e.charCodeAt(u));)u++;for(;C(e.charCodeAt(u));)u++}else l=30}else if(c===60){if(e.charCodeAt(u)===60){if(t.push(48),n.push(a),r.push(a+2),o=!1,a+=2,a>=i)break;if(e.charCodeAt(a)===62&&e.charCodeAt(a+1)===62)l=49,u=a+2;else{let o=a,s=!1;for(;o<i;o++){let t=e.charCodeAt(o);if(t===10||t===13)break;if(t===62&&e.charCodeAt(o+1)===62){s=!0;break}}if(s&&e.slice(a,o).trim()!==``)t.push(50),n.push(a),r.push(o),l=49,a=o,u=o+2;else{for(;o<i&&e.charCodeAt(o)!==10&&e.charCodeAt(o)!==13;)o++;if(o===a){for(;o<i&&(e.charCodeAt(o)===10||e.charCodeAt(o)===13);)o++;throw pe(e,a,o-a)}l=51,u=o}}}else if(e.charCodeAt(u)===45&&e.charCodeAt(u+1)===45)for(l=54,u+=2;e.charCodeAt(u)===45;)u++;else l=33}else if(c===58)e.charCodeAt(u)===58&&e.charCodeAt(u+1)===58?(l=52,u+=2):l=25;else if(c===64)e.charCodeAt(u)===123?(l=60,u++):l=23;else if(c===123)l=61;else if(c===125)l=62;else if(c===91)l=63;else if(c===93)l=64;else if(c===40)l=65;else if(c===41)l=66;else if(c===44)l=24;else if(c===35){for(;T(e.charCodeAt(u));)u++;l=u>a+1?26:32}else if(c===92)e.charCodeAt(u)===44?(l=28,u++):l=33;else if(c<127&&c>32)l=(P[c]&N)===0?33:32;else for(l=34;u<i;){let t=e.charCodeAt(u);if(t>=32&&t<127||t===9||t===10||t===13)break;u++}t.push(l),n.push(a),r.push(u),a=u,o=d}for(let e=0;e<3;e++)t.push(0),n.push(i),r.push(i);return{types:t,starts:n,ends:r}}function he(){return{type:`usecase`,actors:/* @__PURE__ */ new Map,useCases:/* @__PURE__ */ new Map,systemBoundaries:/* @__PURE__ */ new Map,relationships:[],notes:/* @__PURE__ */ new Map,jsonNodes:/* @__PURE__ */ new Map,classDefs:/* @__PURE__ */ new Map,direction:`LR`,title:void 0,accTitle:``,accDescr:``,accDescription:``,source:``,headerSpan:[0,0],statements:[]}}function ge(){return{elements:[],boundaries:[],jsons:[],relationships:[],notes:[],metadata:[],classes:[],styles:[],classDefs:[],direction:void 0,accTitle:``,accDescription:``}}function _e(e,t){if(t.length===0)return;let n=new Set(e);for(let r of t)n.has(r)||(n.add(r),e.push(r))}function ve(e){let t=/* @__PURE__ */ new Set([`actor`,`usecase`,`boundary`,`edge`]);for(let{key:n,value:r}of e)if(n===`icon`)t.clear(),t.add(`actor`);else if(n===`animate`||n===`animation`)t.clear(),t.add(`edge`);else if(n===`type`)t.clear(),r===`rect`||r===`package`?t.add(`boundary`):(r===`normal`||r===`hollow`||r===`awesome`)&&t.add(`actor`);else if(n===`business`)t.delete(`boundary`),t.delete(`edge`);else return;return t.size===1?[...t][0]:void 0}function ye(e,t,n,r,i){let a=he(),{actors:o,useCases:s,systemBoundaries:c}=a,l=/* @__PURE__ */ new Map,u=/* @__PURE__ */ new Map,d=/* @__PURE__ */ new Map,f=/* @__PURE__ */ new Map,p=/* @__PURE__ */ new Map,m=t=>ue(e,t[0],t[1]),h=(t,n)=>{let[r,i]=L(e,n[0]);return new k(t,`semantic`,{type:`usecase`,line:r,column:i})},g=(e,t)=>{throw h(`${e} at ${m(t)}`,t)},_=(e,t,n,r,i)=>{let a=e=>e===void 0?``:` (label "${e}")`;throw h(`${e} at ${m(t)}${a(r)}; previous declaration at ${m(n)}${a(i)}`,t)},v=(e,t,n)=>g(`Metadata property '${n.key}' is invalid for ${t} '${e}'`,n.keySpan),y=(e,t)=>{let n=p.get(e);(n===void 0||t<n)&&p.set(e,t)},b=e=>[...e].sort((e,t)=>(p.get(e.id)??0)-(p.get(t.id)??0)),ee=(e,t)=>{l.set(e.id,{kind:t,span:e.span,generated:e.generated,label:e.label.text})},te=(e,t)=>{let n=l.get(e.id);if(!n)return;let r=e.generated?e.label.text:void 0,i=n.generated?n.label:void 0;n.kind!==t&&_(`ID '${e.id}' is declared as both ${n.kind} and ${t}`,e.span,n.span,r,i),(n.generated||e.generated)&&_(`Generated ID '${e.id}' collides with another declaration`,e.span,n.span,r,i)},ne=(e,t,n)=>{let r=l.get(e);r&&_(`ID '${e}' is declared more than once (${r.kind} and ${t})`,n,r.span,void 0,r.generated?r.label:void 0),l.set(e,{kind:t,span:n,generated:!1})},re=(e,t,n)=>{let{key:r,value:i}=t,a=a=>{!n&&a!==void 0&&a!==i&&_(`Actor '${e.id}' has conflicting ${r} metadata`,t.keySpan,e.span)};r===`type`&&(i===`normal`||i===`hollow`||i===`awesome`)?(a(e.actorType),e.actorType=i):r===`icon`&&typeof i==`string`?(a(e.icon),e.icon=i):r===`business`&&typeof i==`boolean`?(a(e.business),e.business=i):v(e.id,`actor`,t)},x=(e,t,n)=>{for(let r of t??[])e.kind===`actor`?re(e,r,n):r.key===`business`&&typeof r.value==`boolean`?(!n&&e.business!==void 0&&e.business!==r.value&&_(`Use case '${e.id}' has conflicting business metadata`,r.keySpan,e.span),e.business=r.value):v(e.id,`usecase`,r)},S=e=>{let t;if(e.kind===`actor`){s.delete(e.id);let n={id:e.id,label:e.label.text,labelType:e.label.type,business:e.business??!1,classes:[...e.classes],type:e.icon?`icon`:e.actorType??`normal`,styles:o.get(e.id)?.styles??[]};e.icon&&(n.icon=e.icon),o.set(e.id,n),t=n}else o.delete(e.id),t={id:e.id,label:e.label.text,labelType:e.label.type,business:e.business??!1,classes:[...e.classes],shape:e.shape??`ellipse`,styles:s.get(e.id)?.styles??[]},s.set(e.id,t);e.stereotype&&(t.stereotype=e.stereotype),e.parent?.id&&(t.parentId=e.parent.id)},C=e=>{te(e,e.kind);let t=e.parent?.id?e.parent:void 0,n=u.get(e.id);if(n)(n.label.text!==e.label.text||n.label.type!==e.label.type)&&_(`ID '${e.id}' has conflicting labels`,e.span,n.span),e.shape&&n.shape&&e.shape!==n.shape&&_(`Use case '${e.id}' has conflicting shapes`,e.span,n.span),t&&n.parent?.id&&t.id!==n.parent.id&&_(`Element '${e.id}' belongs to more than one system boundary`,t.span,n.parent.span),e.stereotype&&n.stereotype&&e.stereotype!==n.stereotype&&_(`Element '${e.id}' has conflicting stereotypes`,e.span,n.stereotypeSpan??n.span),n.shape??=e.shape,n.parent??=e.parent,n.stereotype??=e.stereotype,n.stereotypeSpan??=e.stereotype?e.span:void 0,_e(n.classes,e.classes),x(n,e.metadata,!1);else{let n={kind:e.kind,id:e.id,label:e.label,span:e.span,generated:e.generated,classes:[...e.classes],parent:t,shape:e.shape,stereotype:e.stereotype,stereotypeSpan:e.stereotype?e.span:void 0};x(n,e.metadata,!1),u.set(e.id,n),ee(e,e.kind)}},w=e=>{te(e,`boundary`);let t=d.get(e.id);t?((t.label.text!==e.label.text||t.label.type!==e.label.type)&&_(`Boundary '${e.id}' has conflicting titles`,e.span,t.span),_e(t.classes,e.classes)):(d.set(e.id,{...e,classes:[...e.classes],members:[]}),ee(e,`boundary`))},T=e=>{e.classed&&!e.declares&&g(`Relationship endpoint '${e.id}' uses ::: without declaring the node`,e.span);let t=l.get(e.id);return t?t.kind:(u.set(e.id,{...e,kind:`usecase`,shape:`ellipse`,classes:[]}),ee(e,`usecase`),y(e.id,e.span[0]),`usecase`)},E=(e,t)=>{let n=l.get(e)?.kind;return(n===`actor`?o.get(e):n===`usecase`?s.get(e):n===`boundary`?c.get(e):n===`json`?a.jsonNodes.get(e):f.get(e))??g(`Class/style target '${e}' is unresolved or anonymous`,t)},D=[];for(let{source:e,target:n}of t.relationships)y(e.id,e.span[0]),y(n.id,n.span[0]);for(let e of t.elements)y(e.id,e.span[0]),D.push({offset:e.span[0],run:()=>C(e)});for(let e of t.boundaries)y(e.id,e.span[0]),D.push({offset:e.span[0],run:()=>w(e)});for(let e of t.jsons)y(e.id,e.span[0]),D.push({offset:e.span[0],run:()=>ne(e.id,`json`,e.span)});for(let{id:e,idSpan:n}of t.relationships)e&&n&&D.push({offset:n[0],run:()=>ne(e,`edge`,n)});D.sort((e,t)=>e.offset-t.offset);for(let e of D)e.run();for(let e of b(u.values()))S(e);for(let e of b(d.values()))c.set(e.id,{id:e.id,label:e.label.text,labelType:e.label.type,type:`rect`,members:[],classes:[],styles:[]});for(let e of b(t.jsons))a.jsonNodes.set(e.id,{id:e.id,value:e.value,propertyOrder:e.propertyOrder,classes:[...e.classes],styles:[]});let ie=0;for(let e of t.relationships){let{source:t,target:n,type:r}=e,i=T(t),o=T(n),s=e=>e===`actor`||e===`usecase`||e===`json`;s(i)||_(`Relationship source '${t.id}' cannot be ${i}`,t.span,l.get(t.id).span),s(o)||_(`Relationship target '${n.id}' cannot be ${o}`,n.span,l.get(n.id).span),(r===`include`||r===`extend`)&&(i!==`usecase`||o!==`usecase`)&&g(`${r} relationship requires use-case endpoints`,e.span),r===`generalization`&&(i===`json`||i!==o)&&g(`Generalization requires actor-to-actor or use-case-to-use-case endpoints`,e.span),r===`association`&&(i===`json`||o===`json`)&&e.arrowType>2&&g(`JSON relationship '${t.id}' to '${n.id}' permits only point, reversed-point, or markerless solid association`,e.span);let c=e.id??`edge-${ie++}`,u={id:c,explicitId:!!e.id,source:t.id,target:n.id,type:r,arrowType:e.arrowType,minlen:e.minlen,classes:[],styles:[],animate:!1};e.label&&(u.label=e.label.text,u.labelType=e.label.type),a.relationships.push(u),f.set(c,u)}let O=new Map(o),ae=new Map(s);o.clear(),s.clear();for(let e of b(u.values())){let t=O.get(e.id),n=ae.get(e.id);t?o.set(e.id,t):n?s.set(e.id,n):S(e)}for(let{target:e,span:n,properties:r,statement:i}of t.metadata){let t=l.get(e);if(!t){let t=ve(r);return g(`Metadata target '${e}' is unresolved${t?` (metadata implies ${t})`:``}`,n)}let a=t.kind;a===`actor`||a===`usecase`?x(u.get(e),r,!0):a===`edge`&&(i.kind=`edgeMetadata`,i.edges=[{id:e,span:i.span,idSpan:n,metadata:i.metadata}],delete i.nodes);let o=d.get(e),s=f.get(e);for(let t of a===`actor`||a===`usecase`?[]:r){let{key:n,value:r}=t;a===`boundary`&&o&&n===`type`&&(r===`rect`||r===`package`)?o.type=r:a===`edge`&&s&&n===`animate`&&typeof r==`boolean`?s.animate=r:a===`edge`&&s&&n===`animation`&&(r===`fast`||r===`slow`)?(s.animation=r,s.animate=!0):v(e,a,t)}}for(let e of a.relationships)e.animation&&(e.animate=!0);for(let e of u.values())e.kind===`actor`?(e.icon&&e.actorType&&e.actorType!==`normal`&&g(`Actor '${e.id}' cannot combine icon with type '${e.actorType}'`,e.span),e.business&&(e.icon||e.actorType===`awesome`)&&g(`Business actor '${e.id}' must use normal or hollow geometry`,e.span)):e.shape===`rect`&&e.business&&g(`Rectangular use case '${e.id}' cannot be a business use case`,e.span),S(e);for(let e of[...t.elements].sort((e,t)=>e.span[0]-t.span[0])){if(!e.parent?.id)continue;let t=d.get(e.parent.id).members;t.includes(e.id)||t.push(e.id)}for(let e of d.values()){let t=c.get(e.id);t.type=e.type??`rect`,t.members=e.members,t.classes=[...e.classes]}let oe=0;for(let e of t.notes){let t=l.get(e.target);if(!t)return g(`Note target '${e.target}' is unresolved`,e.span);t.kind!==`actor`&&t.kind!==`usecase`&&_(`Note target '${e.target}' must be an actor or use case, not ${t.kind}`,e.span,t.span);let n=`note-${oe++}`;a.notes.set(n,{id:n,target:e.target,label:e.label.text,labelType:e.label.type})}for(let e of t.classDefs)for(let t of e.ids)a.classDefs.set(t,{id:t,styles:[...e.styles]});for(let e of t.classes)for(let t of e.targets)_e(E(t.id,t.span).classes,e.classes);for(let e of t.styles)E(e.target,e.span).styles.push(...e.styles);return a.direction=t.direction??a.direction,a.title=i,a.accTitle=t.accTitle,a.accDescription=t.accDescription,a.accDescr=t.accDescription.replace(/\n\s+/g,`
2
+ `),a.source=e,a.headerSpan=n,a.statements=r,a}var R=class extends Error{constructor(e){super(`Invalid JSON token`),this.offset=e}offset};function be(e){let t=/* @__PURE__ */ new Map,n=[],r=[],i=e.length,a=0,o=``,s=0,c=()=>{for(;a<i;){let t=e.charCodeAt(a);if(t!==32&&t!==9&&t!==10&&t!==13)return;a++}},l=t=>{a++;let n=``;for(;a<i;){let r=a,i=e[a++];if(i===`"`)return n;if(i.charCodeAt(0)<32)throw new R(r);if(i!==`\\`){t&&(n+=i);continue}let o=a,s=e[a++],c;if(s===`"`||s===`\\`||s===`/`)c=s;else if(s===`b`)c=`\b`;else if(s===`f`)c=`\f`;else if(s===`n`)c=`
3
+ `;else if(s===`r`)c=`\r`;else if(s===`t`)c=` `;else if(s===`u`){let t=e.slice(a,a+4);if(!/^[\dA-Fa-f]{4}$/.test(t))throw new R(a);c=String.fromCharCode(parseInt(t,16)),a+=4}else throw new R(o);t&&(n+=c)}throw new R(a)},u=t=>{for(let n=0;n<t.length;n++)if(e[a+n]!==t[n])throw new R(a+n);a+=t.length},d=()=>{if(e.charCodeAt(a)===45&&a++,e.charCodeAt(a)===48)a++;else if(w(e.charCodeAt(a)))for(;w(e.charCodeAt(a));)a++;else throw new R(a);if(e.charCodeAt(a)===46){if(a++,!w(e.charCodeAt(a)))throw new R(a);for(;w(e.charCodeAt(a));)a++}if((e.charCodeAt(a)|32)==101){if(a++,(e.charCodeAt(a)===43||e.charCodeAt(a)===45)&&a++,!w(e.charCodeAt(a)))throw new R(a);for(;w(e.charCodeAt(a));)a++}};for(c();;)if(s===0){c();let i=e.charCodeAt(a);if(s=2,i===123){a++;let i=[];t.set(o,i),n.push(o),c(),e.charCodeAt(a)===125?a++:(r.push({object:!0,pointer:o,keys:i,ranges:/* @__PURE__ */ new Map,key:``,from:0,index:0}),s=1)}else if(i===91)a++,c(),e.charCodeAt(a)===93?a++:(r.push({object:!1,pointer:o,keys:[],ranges:/* @__PURE__ */ new Map,key:``,from:0,index:0}),o+=`/0`,s=0);else if(i===34)l(!1);else if(i===116)u(`true`);else if(i===102)u(`false`);else if(i===110)u(`null`);else if(i===45||w(i))d();else throw new R(a)}else if(s===1){let i=r[r.length-1];if(e.charCodeAt(a)!==34)throw new R(a);let u=l(!0),d=i.ranges.get(u);if(d===void 0)i.keys.push(u);else for(let e=d[0];e<d[1];e++)t.delete(n[e]);if(i.key=u,i.from=n.length,c(),e.charCodeAt(a)!==58)throw new R(a);a++,o=`${i.pointer}/${u.replaceAll(`~`,`~0`).replaceAll(`/`,`~1`)}`,s=0}else{let t=r[r.length-1];if(t===void 0)break;t.object?t.ranges.set(t.key,[t.from,n.length]):t.index++,c();let i=e.charCodeAt(a);if(i===(t.object?125:93))a++,r.pop();else{if(i!==44)throw new R(a);a++,c(),o=`${t.pointer}/${t.index}`,s=+!!t.object}}if(c(),a!==i)throw new R(a);return t}function xe(e,t,n,r){let i=Math.min(Math.max(t,0),e.length);for(let t=0;t<i;t++){let i=e.charCodeAt(t);i===13?(n++,r=1):i===10?(t===0||e.charCodeAt(t-1)!==13)&&(n++,r=1):r++}return[n,r]}function Se(e,t,n,r){let i=/\bposition (\d+)\b/.exec(e);if(i)return xe(t,parseInt(i[1],10),n,r);let a=/\bline (\d+) column (\d+)\b/.exec(e);if(a){let e=parseInt(a[1],10),t=parseInt(a[2],10);return[n+e-1,e===1?r+t-1:t]}if(/unexpected end|end of json input/i.test(e))return xe(t,t.length,n,r)}function Ce(e,t,n){return new k(`${e} (line ${t}, column ${n})`,`syntax`,{type:`usecase`,line:t,column:n})}function we(e,t){let n;try{n=JSON.parse(e)}catch(n){let r=n instanceof Error?n.message:String(n),i=x(e);if(i!==e)try{JSON.parse(i)}catch(e){e instanceof Error&&(r=e.message)}let[a,o]=t(),s=Se(r,i,a,o);if(!s){let e=0;try{be(i)}catch(t){t instanceof R&&(e=t.offset)}s=xe(i,e,a,o)}throw Ce(`Invalid JSON: ${r}`,s[0],s[1])}if(typeof n!=`object`||!n||Array.isArray(n)){let[e,n]=t();throw Ce(`JSON value must have an object root`,e,n)}return{value:n,propertyOrder:be(e)}}var Te=1,Ee=2,De=4,Oe=8,ke=16,Ae=32,je=64,Me=`DEPENDENCY_ARROW|GENERALIZATION|FORWARD_SOLID|BACKWARD_SOLID|MARKERLESS_SOLID|FORWARD_CIRCLE|BACKWARD_CIRCLE|FORWARD_CROSS|BACKWARD_CROSS`,Ne=`IDENTIFIER|PLAIN_STRING|MARKDOWN_STRING`,Pe=`PLAIN_STRING|MARKDOWN_STRING|LABEL_TEXT`,Fe=`ACC_TITLE_LINE|ACC_DESCR_LINE|ACC_DESCR_BLOCK|DIRECTION|ACTOR|SYSTEM_BOUNDARY|NOTE|JSON_DECLARATION_START|CLASS_DEF|CLASS|STYLE`,Ie=`WORD|PLAIN_STRING|NUMBER|HASH_COLOR|CSS_IDENTIFIER|CSS_ESCAPED_COMMA|DASH|DOT|PERCENT|CSS_PUNCTUATION|COLON|LPAREN|RPAREN|LBRACKET|RBRACKET|LBRACE|RBRACE|AT|MARKERLESS_SOLID`,z=/* @__PURE__ */ new Uint8Array(67);function B(e,t){for(let n of e.split(`|`))if(n===`WORD`)for(let e=1;e<=21;e++)z[e]|=t;else z[j.indexOf(n)]|=t}B(`NEWLINE|COMMENT|${Fe}|${Ne}`,Te),B(`IDENTIFIER|${Me}`,Ee),B(Ie,De),B(`STEREOTYPE_START|CLASS_SEPARATOR|IDENTIFIER|${Me}|NEWLINE|EOF`,Oe),B(`NEWLINE|COMMENT|ACTOR|${Ne}`,ke),B(`FORWARD_SOLID|MARKERLESS_SOLID|FORWARD_CIRCLE|FORWARD_CROSS`,Ae),B(`NEWLINE|IDENTIFIER|PLAIN_STRING|RBRACE`,je);var Le=/* @__PURE__ */ new Set([`allowmixing`,`newpage`,`package`,`rectangle`,`skinparam`]),V=``,H=[],U=[],W=[],G=0,Re=0,K,ze,Be=[],Ve=0,He=0;function q(e){return V.slice(U[e],W[e])}function J(e){return[U[e],W[e]]}function Ue(e){let[t,n]=L(V,U[G]);throw new k(`Error parsing usecase diagram: ${e} at ${ue(V,U[G],W[G])}`,`syntax`,{type:`usecase`,line:t,column:n})}function We(e){Ue(`Expecting token of type --> ${e} <-- but found --> '${q(G)}' <--`)}function Y(e){return H[G]!==e&&We(j[e]),G++}function X(e){Ue(`Expecting: one of these possible Token sequences:
4
+ ${e.split(`|`).map((e,t)=>` ${t+1}. [${e}]`).join(`
5
+ `)}
6
+ but found: '${q(G)}'`)}function Ge(){let e=Ne.split(`|`),t=e.flatMap(e=>[`NEWLINE`,`IDENTIFIER`,`PLAIN_STRING`,`RBRACE`].map(t=>`${e}, METADATA_START, ${t}`)),n=`STEREOTYPE_START|CLASS_SEPARATOR|IDENTIFIER|${Me}|NEWLINE|EOF`.split(`|`),r=e.flatMap((e,t)=>(t===0?[`LPAREN`,`LBRACKET`,...n]:n).map(t=>`${e}, ${t}`));return[Fe,...t,...r,...t].join(`|`)}function Ke(e){return e>=1&&e<=21}function qe(e){return e>=1&&e<=34}function Z(){Re=W[G-1],H[G]===39?G++:H[G]!==0&&X(`NEWLINE|EOF`)}function Je(e){let t=H[e]===36?2:+(H[e]===35);return[U[e]+t,W[e]-t]}function Ye(e){let t=Je(e);return{text:V.slice(t[0],t[1]),type:H[e]===36?`markdown`:`text`,span:t}}function Xe(e){return e.replace(/\W/g,`_`)}function Ze(){let e=H[G];if(e===35||e===36)return Ye(G++);qe(e)||X(Pe);let t=G;for(;qe(H[G]);)G++;let n=[U[t],W[G-1]];return{text:V.slice(n[0],n[1]),type:`text`,span:n}}function Qe(e){return e===21||e===35}function $e(){let e=G;Qe(H[G])||X(`IDENTIFIER|PLAIN_STRING`),G++,Y(25);let t=G,n=H[G];!Qe(n)&&n!==19&&n!==20&&X(`IDENTIFIER|PLAIN_STRING|TRUE|FALSE`),G++;let r=Je(e),i=Je(t);return{key:V.slice(r[0],r[1]),value:n===19||n!==20&&V.slice(i[0],i[1]),span:[U[e],W[t]],keySpan:r,valueSpan:i}}function et(){let e=H[G],t=H[G+1],n=H[G+2];return e===24?Qe(t)||t===39&&(n===39||Qe(n)):e===39?t===24||Qe(t)||t===39&&(n===39||n===24||Qe(n)):!1}function tt(){Y(60);let e=[];for(;H[G]===39;)G++;if(Qe(H[G])){for(e.push($e());et();){if(H[G]===24)G++;else{for(;H[G]===39;)G++;H[G]===24&&G++}for(;H[G]===39;)G++;e.push($e())}for(H[G]===24&&G++;H[G]===39;)G++}return Y(62),e}function nt(e){return e.map(({key:e,span:t,keySpan:n,valueSpan:r})=>({key:e,span:t,keySpan:n,valueSpan:r}))}function rt(e,t){do{G++;let n=Y(21);e.push(q(n)),t.push(J(n))}while(H[G]===24)}function it(e){let t=G,n=H[G],r={id:``,label:void 0,span:Je(t),generated:n!==21,classes:[],classSpans:[],explicit:!1,nodeSpan:[0,0]};if(n===21){G++,r.id=q(t);let n=H[G];n===65||e&&n===63?(G++,r.label=Ze(),Y(n===65?66:64),r.shape=n===65?`ellipse`:`rect`):r.label=Ye(t)}else n===35||n===36?(G++,r.label=Ye(t),r.id=Xe(r.label.text)):X(Ne);return r}function at(e){let t=G,n=it(!e);if(e&&(n.shape=void 0),H[G]===60&&(n.metadata=tt()),H[G]===48){G++;let e=Y(50);Y(49),n.stereotype=q(e).trim(),n.stereotypeSpan=J(e)}return H[G]===52&&rt(n.classes,n.classSpans),n.explicit=!!(n.shape||n.metadata||n.stereotype),n.nodeSpan=[U[t],W[G-1]],n}function ot(e,t){return{id:e.id,kind:t,label:e.label,span:e.span,generated:e.generated,parent:ze,shape:e.shape,metadata:e.metadata,stereotype:e.stereotype,classes:e.classes}}function st(e,t){return{id:e.id,label:e.label,span:e.span,generated:e.generated,declares:t,classed:e.classes.length>0}}function ct(e,t){let n={id:e.id,span:e.nodeSpan,idSpan:e.span,labelSpan:e.label.span};return t&&(n.defines=!0),e.stereotypeSpan&&(n.stereotypeSpan=e.stereotypeSpan),e.metadata&&(n.metadata=nt(e.metadata)),e.classSpans.length>0&&(n.classSpans=e.classSpans),n}function lt(e){if(H[G]<1||H[G]>36)return!1;for(let t=G+1;;t++){let n=H[t];if(n===59||(z[n]&e)!==0)return!0;if(n<1||n>36)return!1}}function ut(e){let t=W[e]-U[e]-(H[e]===59?0:1);return Math.max(1,t-1)}function dt(){let e=G,t={type:`association`,arrowType:0,minlen:1,target:void 0,span:[0,0]};H[G]===21&&H[G+1]===23&&(t.explicitId=q(G),t.explicitIdSpan=J(G),G+=2);let n=G,r=H[G++];if(r===47)Y(25),H[G]!==17&&H[G]!==18&&X(`INCLUDE|EXTEND`),t.type=H[G]===17?`include`:`extend`,t.label={text:t.type,type:`text`,span:J(G)},G++;else if(r===46)t.type=`generalization`;else if(r===53)t.minlen=ut(n);else if(r===54)t.arrowType=1,W[n]-U[n]===3&&lt(0)?(t.label=Ze(),t.minlen=ut(Y(59))):t.minlen=ut(n);else if(r===59){if(t.arrowType=2,W[n]-U[n]===2&&lt(Ae)){t.label=Ze();let e=H[G];e===53?t.arrowType=0:e===55?t.arrowType=3:e===57?t.arrowType=4:e!==59&&X(`FORWARD_SOLID|MARKERLESS_SOLID|FORWARD_CIRCLE|FORWARD_CROSS`),(t.arrowType===0||t.arrowType===2)&&(t.minlen=ut(G)),G++}else t.minlen=ut(n)}else r===55?t.arrowType=3:r===57?t.arrowType=4:r===56||r===58?(t.arrowType=r===56?5:6,lt(0)&&(t.label=Ze(),Y(59))):(G--,X(Me));return t.target=at(!1),t.span=[U[e],W[G-1]],t}function Q(e){return{kind:e,span:[0,0]}}function ft(e,t,n,r){let i=n.target;i.explicit&&K.elements.push(ot(i,`usecase`)),K.relationships.push({source:st(e,t),target:st(i,i.explicit),span:n.span,id:n.explicitId,idSpan:n.explicitIdSpan,type:n.type,arrowType:n.arrowType,label:n.label,minlen:n.minlen}),r.push(ct(i,i.explicit));let a=Q(`edge`);return a.nodes=r,a.edges=[{id:n.explicitId??`edge-${Ve++}`,span:a.span}],n.explicitIdSpan&&(a.edges[0].idSpan=n.explicitIdSpan),n.label&&(a.edges[0].labelSpan=n.label.span),a}function pt(e){let t=Q(`node`);return t.nodes=e,t}function mt(e){G++;let t=[at(!0)],n;if(H[G]===24)do G++,t.push(at(!0));while(H[G]===24);else e&&(z[H[G]]&Ee)!==0&&(n=dt());Z();for(let e of t)K.elements.push(ot(e,`actor`));let r=t.map(e=>ct(e,!0));return n?ft(t[0],!0,n,r):pt(r)}function ht(e){let t=at(!1),n=e&&(z[H[G]]&Ee)!==0?dt():void 0;Z(),n||(t.explicit=!0,t.shape??=`ellipse`),t.explicit&&K.elements.push(ot(t,`usecase`));let r=[ct(t,t.explicit)];return n?ft(t,t.explicit,n,r):pt(r)}function gt(){G++;let e=it(!0),t={id:e.id,label:e.label,span:e.span,generated:e.generated,classes:e.classes},n=H[G]===60?tt():void 0;H[G]===52&&rt(e.classes,e.classSpans),Z(),K.boundaries.push(t),ze=t;let r=[];for(;(z[H[G]]&ke)!==0;)r.push(St(!1));ze=void 0;let i=Y(4);Z();let a=Q(`group`);return a.group=t.id,a.idSpan=t.span,a.titleSpan=t.label.span,a.endSpan=J(i),a.classSpans=e.classSpans,r.length>0&&(a.children=r),n&&(a.metadata=nt(n),K.metadata.push({target:t.id,span:t.span,properties:n,statement:a})),a}function _t(){let e=G,t=H[G];for(Ke(t)||t===27?G++:t===59?(G++,Ke(H[G])||We(`WORD`),G++):X(`WORD|CSS_IDENTIFIER|MARKERLESS_SOLID`),Y(25),(z[H[G]]&De)===0&&Ue(`Expecting: expecting at least one iteration which starts with one of these possible Token sequences::
7
+ <[${Ie.replaceAll(`|`,`] ,[`)}]>
8
+ but found: '${q(G)}'`);(z[H[G]]&De)!==0;)G++;return V.slice(U[e],W[G-1]).replaceAll(`\\,`,`,`)}function vt(){let e=[_t()];for(;H[G]===24;)G++,e.push(_t());return e}function yt(){let e=[Y(21)];for(;H[G]===24;)G++,e.push(Y(21));return e}function bt(e){let t=Je(e);return{id:q(e),span:t,idSpan:t}}function xt(){let e=G,t=H[G],n;if(t===41||t===42||t===40){G++;let r=q(e);t===40?K.accDescription=r.slice(r.indexOf(`{`)+1,r.lastIndexOf(`}`)).trim():t===42?K.accDescription=r.slice(r.indexOf(`:`)+1).trim():K.accTitle=r.slice(r.indexOf(`:`)+1).trim(),n=Q(t===41?`accTitle`:`accDescr`)}else if(t===5){G++;let e=H[G];(e<6||e>10)&&X(`TD|TB|BT|LR|RL`),K.direction=e===6?`TB`:q(G),G++,n=Q(`direction`)}else{if(t===2)return mt(!0);if(t===3)return gt();if(t===11){G++,Y(12);let e=Y(21),t=Ze();K.notes.push({target:q(e),span:J(e),label:t}),n=Q(`note`),n.ref=`note-${He++}`,n.refSpan=t.span,n.nodes=[bt(e)]}else if(t===43){G++;let t=Y(44),r=[],i=[];H[G]===52&&rt(r,i);let a=U[e]+4;for(;V.charCodeAt(a)===32||V.charCodeAt(a)===9;)a++;let o=a;for(;/\w/.test(V.charAt(o));)o++;let s={id:V.slice(a,o),value:{},propertyOrder:/* @__PURE__ */ new Map,span:[a,o],classes:r};K.jsons.push(s),Be.push([s,t]),n=Q(`json`),n.nodes=[{id:s.id,span:s.span,idSpan:s.span,defines:!0,classSpans:i}],n.classSpans=i}else if(t===14){G++;let e=yt();K.classDefs.push({ids:e.map(q),styles:vt()}),n=Q(`classDef`),n.ref=q(e[0]),n.refSpan=J(e[0])}else if(t===15){G++;let e=yt(),t=yt();K.classes.push({targets:e.map(e=>({id:q(e),span:J(e)})),classes:t.map(q)}),n=Q(`classAssign`),n.ref=q(t[0]),n.refSpan=J(t[0]),n.nodes=e.map(bt)}else if(t===16){G++;let e=Y(21);K.styles.push({target:q(e),span:J(e),styles:vt()}),n=Q(`style`),n.nodes=[bt(e)]}else{let r=H[G+1];if(r===60){(z[H[G+2]]&je)===0&&X(Ge()),G++;let r=bt(e);t!==21&&(r.id=Xe(V.slice(r.span[0],r.span[1])));let i=tt();n=Q(`metadata`),n.nodes=[r],n.metadata=nt(i),K.metadata.push({target:r.id,span:r.span,properties:i,statement:n})}else return((z[r]&Oe)===0&&(t!==21||r!==65&&r!==63)||t===21&&Le.has(q(e).toLowerCase()))&&X(Ge()),ht(!0)}}return Z(),n}function St(e){let t=G,n=H[G];if(n===39)return G++,{kind:`blank`,span:J(t)};if(n===38)return G++,Z(),{kind:`comment`,span:J(t)};let r=e?xt():n===2?mt(!1):ht(!1);if(r.span=[U[t],Re],r.edges)for(let e of r.edges)e.span=r.span;return r}function Ct(e,t){V=e,{types:H,starts:U,ends:W}=me(e),G=0,K=ge(),ze=void 0,Be=[],Ve=0,He=0;try{let n=Y(1);Z();let r=[];for(;(z[H[G]]&Te)!==0;)r.push(St(!0));H[G]!==0&&Ue(`Redundant input, expecting EOF but found: ${q(G)}`);for(let[t,n]of Be){let r=we(q(n),()=>L(e,U[n]));t.value=r.value,t.propertyOrder=r.propertyOrder}return ye(e,K,J(n),r,t)}finally{V=``,H=U=W=Be=[]}}var wt={normal:`usecaseActor`,hollow:`usecaseActorHollow`,awesome:`usecaseActorAwesome`,icon:`usecaseActorIcon`},Tt=[[`none`,`arrow_point`],[`arrow_point`,`none`],[`none`,`none`],[`none`,`arrow_circle`],[`none`,`arrow_cross`],[`arrow_circle`,`none`],[`arrow_cross`,`none`]];function Et(e){return typeof e==`string`?e:e===null?`null`:String(e)}function Dt(e){let t=[],n=[[e.value,``,``]],r=[];for(;n.length>0;){let[i,a,o]=n.pop();if(r.length=0,Array.isArray(i))i.length===0?t.push({key:a,accessibleKey:a,value:`[]`}):i.every(e=>typeof e!=`object`||!e)?i.forEach((e,n)=>t.push({key:n===0?a:``,accessibleKey:a,value:Et(e)})):i.forEach((e,t)=>r.push([e,`${a}[${t}]`,`${o}/${t}`]));else if(typeof i==`object`&&i){let n=i,s=e.propertyOrder.get(o)??Object.keys(n);s.length===0&&t.push({key:a,accessibleKey:a,value:`{}`});for(let e of s)r.push([Object.prototype.hasOwnProperty.call(n,e)?n[e]:void 0,a?`${a}.${e}`:e,`${o}/${e.replaceAll(`~`,`~0`).replaceAll(`/`,`~1`)}`])}else t.push({key:a,accessibleKey:a,value:Et(i)});for(let e=r.length-1;e>=0;e--)n.push(r[e])}return t}function Ot(...e){return e.filter(Boolean).join(` `)}function kt(e){return e.type===`generalization`?[`none`,`extension`]:e.type===`association`?Tt[e.arrowType]??Tt[2]:Tt[0]}function At(e){let t=[],n=[],r=t=>{let n=/* @__PURE__ */ new Map;for(let r of[`default`,...t]){let t=e.classDefs.get(r);if(t)for(let e of t.styles){let t=e.trim(),r=t.indexOf(`:`),i=(r===-1?t:t.slice(0,r)).trim();i&&n.set(i,t)}}return[...n.values()]};for(let n of e.actors.values())t.push({id:n.id,label:n.label,labelType:n.labelType,shape:wt[n.type],isGroup:!1,padding:10,cssClasses:Ot(`default`,`usecase-actor`,`usecase-actor-${n.type}`,n.business&&`usecase-business`,...n.classes),cssStyles:[...n.styles],cssCompiledStyles:r(n.classes),actorType:n.type,business:n.business,icon:n.icon||void 0,stereotype:n.stereotype||void 0,parentId:n.parentId||void 0});for(let n of e.useCases.values()){let e=n.shape===`ellipse`;t.push({id:n.id,label:n.label,labelType:n.labelType,shape:e?n.business?`usecaseBusiness`:`usecaseEllipse`:`rect`,isGroup:!1,padding:e?20:10,cssClasses:Ot(`default`,`usecase-element`,`usecase-${n.shape}`,n.business&&`usecase-business`,...n.classes),cssStyles:[...n.styles],cssCompiledStyles:r(n.classes),business:n.business,stereotype:n.stereotype||void 0,parentId:n.parentId||void 0})}for(let n of e.notes.values())t.push({id:n.id,label:n.label,labelType:n.labelType,shape:`note`,isGroup:!1,padding:10,cssClasses:`default usecase-note`,cssStyles:[],cssCompiledStyles:r([]),noteTarget:n.target});for(let n of e.jsonNodes.values())t.push({id:n.id,label:n.id,labelType:`text`,shape:`usecaseJsonTable`,isGroup:!1,padding:10,cssClasses:Ot(`default`,`usecase-json-table`,...n.classes),cssStyles:[...n.styles],cssCompiledStyles:r(n.classes),jsonRows:Dt(n)});for(let n of e.systemBoundaries.values())t.push({id:n.id,label:n.label,labelType:n.labelType,shape:`usecaseSystemBoundary`,isGroup:!0,padding:20,cssClasses:Ot(`default`,`system-boundary`,`system-boundary-${n.type}`,...n.classes),cssStyles:[...n.styles],cssCompiledStyles:r(n.classes),boundaryType:n.type});for(let t of e.relationships){let e=t.type===`include`||t.type===`extend`,[i,a]=kt(t),o=t.animate||t.animation!==void 0,s={id:t.id,start:t.source,end:t.target,relationshipType:t.type,pattern:e?`dotted`:`solid`,arrowTypeStart:i,arrowTypeEnd:a,classes:Ot(`default`,`relationship`,`relationship-${t.type}`,...t.classes,o&&`edge-animation-${t.animation??`fast`}`),style:[...t.styles],cssCompiledStyles:r(t.classes),animate:t.animate,animation:t.animation,minlen:t.minlen,explicitId:t.explicitId,internal:!1};e?(s.label=t.type,s.labelType=`text`):t.type===`association`&&(t.label&&(s.label=t.label),t.labelType&&(s.labelType=t.labelType)),n.push(s)}for(let t of e.notes.values())n.push({id:`${t.id}-edge`,start:t.id,end:t.target,relationshipType:`note`,pattern:`dotted`,arrowTypeStart:`none`,arrowTypeEnd:`none`,classes:`default relationship relationship-note`,style:[],cssCompiledStyles:r([]),animate:!1,minlen:1,explicitId:!1,internal:!0});return{nodes:t,edges:n}}var jt=32,Mt=16,Nt=72,Pt=20,Ft=26,It=40,Lt=60,Rt=6,zt=6,Bt=10,Vt=8,Ht=9,Ut=12,Wt=14,Gt=` fill="var(--_s)" stroke="var(--_b)"`;function Kt(e,t,n){let r=e.usecase?.[t];return typeof r==`number`&&r>0?Math.min(r,2e3):n}function qt(e){return e.replace(/[&<>\\]/g,e=>`&#${e.charCodeAt(0)};`)}function $(e,n,r,i,a,o=0){return t(e&&!n?qt(e):e,n,r,i,a,o)}function Jt(e,t,n,r){let i=n===1||n===2?1:-1,a=n===1||n===3,o=(a?e.w:e.h)/2,s=0;if(e.kind===0)a?(o=It/2+3,s=(Lt-e.h)/2):o+=2;else if(e.kind===1){let t=(a?e.h:e.w)/2;o*=Math.sqrt(Math.max(1-(r/t)**2,0))}return a?[t.x+i*o,t.y+s+r]:[t.x+r,t.y+i*o]}function Yt(e,t){let n=t===1||t===3;if(e.kind===0)return n?Lt*.5:It*.6;let r=n?e.h:e.w;return e.kind===1?r*.6:r-16}function Xt(e,t,n){let r=/* @__PURE__ */ new Map,i=(e,n,i,a)=>{let o=t[e];if(o.isGroup)return;let s=n[i]-o.x,c=n[i+1]-o.y,l;if(Math.abs(Math.abs(c)-o.h/2)<.5)l=c<0?0:2;else if(Math.abs(Math.abs(s)-o.w/2)<.5)l=s<0?3:1;else return;let u=e*4+l,d={route:n,at:i,toward:n[a+(l&1?1:0)]},f=r.get(u);f?f.push(d):r.set(u,[d])};for(let t of e){let e=t.route.length-3;t.src===t.dst||e<3||(i(t.src,t.route,0,3),i(t.dst,t.route,e,e-3))}for(let[e,i]of r){let r=e>>2,a=e&3,o=n[r],s=i.length>1?Math.min(Wt,Yt(o,a)/(i.length-1)):0;i.sort((e,t)=>e.toward-t.toward);for(let e=0;e<i.length;e++){let[n,c]=Jt(o,t[r],a,(e-(i.length-1)/2)*s);i[e].route[i[e].at]=n,i[e].route[i[e].at+1]=c}}}function Zt(e,t,n,r,i){let a=e-n*Ut,o=t-r*Ut,s=Ut*.5;return`<path class="pele-marker" d="M${S(e)},${S(t)}L${S(a-r*s)},${S(o+n*s)}L${S(a+r*s)},${S(o-n*s)}Z" fill="var(--_bg)" stroke="${i}" stroke-linejoin="round"/>`}function Qt(e){return e===`extension`?Ut:_(e)}function $t(e,t,n,r,i,a,o){return e===`extension`?Zt(t,n,r,i,a):v(e,t,n,r,i,a,o)}function en(e,t){let n=e.node,r=e.style.shape,i=` fill="none" stroke="var(--_b)"${e.style.line}`,o=-21,s=9,c;return n.actorType===`hollow`?(s=8,c=`<circle cy="-21" r="8" fill="var(--_bg)" stroke="var(--_b)"${r}/><path d="M-20,-9H20V0H5.5L20,15.5L12,25.5L0,12L-12,25.5L-20,15.5L-5.5,0H-20Z" fill="var(--_bg)" stroke="var(--_b)" stroke-linejoin="round"${r}/>`):n.actorType===`awesome`?c=`<path d="M0,-30A11,11 0 1 1 0,-8A11,11 0 1 1 0,-30ZM-20,25C-20,9 -12,-3 0,-3C12,-3 20,9 20,25C20,28 18,30 15,30H-15C-18,30 -20,28 -20,25Z" fill="var(--_b)"${r}/>`:n.actorType===`icon`?(o=-14,s=12,c=`<rect x="-22" y="-26" width="44" height="44"${a(Gt+r)}/><svg class="pele-icon" data-icon="${ie(n.icon??``)}" x="-14" y="-18" width="28" height="28" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round">${t?.(n.icon??``)??``}</svg>`):c=`<circle cy="-21" r="9"${Gt}${r}/><path d="M0,-12V10M-14,-3H14M0,10L-12,30M0,10L12,30"${i}/>`,n.business&&(c+=`<path class="pele-business" d="M${S(.12*s)},${S(o+.99*s)}L${S(.92*s)},${S(o-.39*s)}"${i}/>`),c}function tn(e,t,n){return c(e.direction)?l(n,r=>nn(e,t,n,r)):nn(e,t,n,!1)}function nn(t,r,s,c){let l=At(t),_=s.fontSize??16,v=Math.round(_*.875),x=Math.round(_*.8125),C=s.measurer??se(s.fontFamily,s.fontFamilyMono),w=s.padding??8,T=s.icons,E=c?`TB`:b(t.direction),k=E===`LR`||E===`RL`,A=/* @__PURE__ */ new Map,j=[],M=[];l.nodes.forEach((e,t)=>A.set(e.id,t));for(let e of l.nodes){let t=i(e.cssStyles.length>0?e.cssCompiledStyles.concat(e.cssStyles):e.cssCompiledStyles),n=+!!t.bold|(t.italic?2:0),r=t.fontSize??_,a=e.labelType===`markdown`,o=$(e.stereotype&&`«${e.stereotype}»`,!1,C,x,200,n),s={node:e,kind:2,style:t,label:o,stereotype:o,w:0,h:0,rows:[],keyW:0,headH:0,loops:0},c;if(e.isGroup){s.kind=4,s.label=$(e.label,a,C,r,4e3,n);let t=s.label.height;c=y(0,0),c.isGroup=!0,c.padX=Pt,c.padBottom=Pt,c.padTop=e.boundaryType===`package`?t+2*zt+16:t>0?t+16:Pt,c.minW=s.label.width+2*Pt}else{if(e.jsonRows){s.kind=3,s.label=$(e.label,!1,C,r,4e3,n|1);let t=0;for(let r of e.jsonRows){let e=$(r.key,!1,C,v,4e3,n),i=$(r.value,!1,C,v,260,n);s.rows.push([e,i]),s.keyW=Math.max(s.keyW,e.width),t=Math.max(t,i.width),s.h+=Math.max(e.height,i.height,Math.round(v*1.5))+Vt}s.keyW>0&&(s.keyW+=2*Bt),s.headH=Math.max(s.label.height,Math.round(r*1.5))+Vt,s.w=Math.max(s.label.width+2*Bt,s.rows.length>0?s.keyW+t+2*Bt:0,72),s.h+=s.headH}else if(e.actorType)s.kind=0,s.label=$(e.label,a,C,r,140,n),s.w=Math.max(It,s.label.width,o.width),s.h=Lt+Rt+o.height+s.label.height;else{s.label=$(e.label,a,C,e.shape===`note`?v:r,180,n);let t=Math.max(s.label.width,o.width),i=s.label.height+o.height;e.shape===`usecaseEllipse`||e.shape===`usecaseBusiness`?(s.kind=1,s.w=Math.max(t+2*e.padding+(e.business?16:4),88),s.h=Math.max(i+28,48)):e.shape===`note`?(s.w=t+2*e.padding+6,s.h=i+18):(s.w=Math.max(t+2*e.padding+12,80),s.h=Math.max(i+24,44))}c=y(s.w,s.h)}c.seq=j.length,j.push(s),M.push(c)}l.nodes.forEach((e,t)=>{M[t].parent=e.parentId===void 0?-1:A.get(e.parentId)??-1});let N=[],P=[],ce=[];for(let e of l.edges){let t=A.get(e.start),n=A.get(e.end);if(t===void 0||n===void 0)continue;let r=$(e.relationshipType===`include`||e.relationshipType===`extend`?`«${e.label}»`:e.label,e.labelType===`markdown`,C,v,200);t===n&&(j[t].loops++,k?M[t].h+=2*(Ft+(r.height>0?r.height+8:0)):M[t].w+=2*(Ft+(r.width>0?r.width+12:0))),ce.push(e),P.push(r),N.push({src:t,dst:n,minlen:e.minlen,labelW:r.width>0?r.width+12:0,labelH:r.height>0?r.height+4:0,route:[],labelX:0,labelY:0})}let F=ee(M,N,E,{nodeSep:Kt(r,`nodeSpacing`,jt),edgeSep:Mt,rankSep:Kt(r,`rankSpacing`,Nt),portSep:20}),I=ne(t.title,C,_,4e3),le=I.height>0?I.height+12:0,L=Math.max(F.width,I.width),ue=w+(L-F.width)/2,de=w+le;te(M,N,ue,de);let fe=Math.ceil(L+2*w),pe=Math.ceil(F.height+le+2*w),me=/* @__PURE__ */ new Map;for(let e of N)re(me,e.route);Xt(N,M,j);let he=``,ge=[],_e=``;for(let e=0;e<j.length;e++){let t=j[e],r=M[e],i=t.node,s=n(i.cssClasses.replace(/^default\s?/,``)),c=ie(i.id),l=t.style.text,u=t.style.shape,d=oe(t.style),f=d||` fill="var(--_m)"`,p=t.w,m=t.h;if(t.kind===4){let e=r.x-r.w/2,n=r.y-r.h/2;ae(u)&&ge.push({box:[e,n,e+r.w,n+r.h],shape:u});let d=` fill="var(--_a)"${o(u)?``:` fill-opacity="0.5"`} stroke="var(--_b)"${u}`,p=` class="pele-cluster-label"${f}${l}`,m;if(i.boundaryType===`package`){let i=Math.min(t.label.width+2*zt+8,r.w),a=t.label.height+2*zt;m=`<rect class="pele-boundary-tab" x="${S(e)}" y="${S(n)}" width="${S(i)}" height="${S(a)}"${d}/><rect x="${S(e)}" y="${S(n+a)}" width="${S(r.w)}" height="${S(r.h-a)}"${d}/>`+O(t.label,e+i/2,n+a/2,p,T)}else m=`<rect x="${S(e)}" y="${S(n)}" width="${S(r.w)}" height="${S(r.h)}"${a(d)}/>`+O(t.label,rn(r,t.label.width,me),n+8+t.label.height/2,p,T);he+=`<g class="pele-cluster pele-boundary${s}" data-id="${c}">${m}</g>`;continue}let h,g;if(t.kind===0){g=`pele-actor`;let e=-m/2,n=e+Lt+Rt+t.stereotype.height/2;h=`<g class="pele-actor-figure" transform="translate(0,${S(e+Lt/2)})">${en(t,T)}</g>`+O(t.stereotype,0,n,` class="pele-stereotype" font-size="${x}" fill="var(--_m)"`,T)+O(t.label,0,m/2-t.label.height/2,` class="pele-label"${l}`,T)}else if(t.kind===3){g=`pele-json`;let e=-p/2,n=-m/2+t.headH,r=``,i=`M${S(e)},${S(n)}H${S(e+p)}`;t.keyW>0&&(i+=`M${S(e+t.keyW)},${S(n)}V${S(m/2)}`);for(let[i,a]of t.rows){let o=Math.max(i.height,a.height,Math.round(v*1.5))+Vt;r+=O(i,e+Bt+i.width/2,n+o/2,` class="pele-json-key"${f}`,T)+an(a,e+t.keyW+Bt,n+o/2,` class="pele-json-value"${d}${l}`,T),n+=o}h=`<rect x="${S(e)}" y="${S(-m/2)}" width="${S(p)}" height="${S(m)}"${a(Gt+u)}/><path class="pele-json-lines" d="${i}" fill="none" stroke="var(--_b)"${t.style.line}/>`+O(t.label,0,-m/2+t.headH/2,` class="pele-label" font-weight="var(--_hw)"${d}${l}`,T)+`<g font-size="${v}">${r}</g>`}else{let e=t.stereotype.height/2,n;if(t.kind===1){if(g=`pele-usecase`,n=`<ellipse rx="${S(p/2)}" ry="${S(m/2)}"${Gt}${u}/>`,i.business){let e=p/2-15,r=p/2-5,i=e=>m/2*Math.sqrt(1-(e/(p/2))**2);n+=`<path class="pele-business" d="M${S(e)},${S(i(e))}L${S(r)},${S(-i(r))}" fill="none" stroke="var(--_b)"${t.style.line}/>`}}else if(i.shape===`note`){g=`pele-note`;let e=p/2,r=m/2;n=`<path d="M${S(-e)},${S(-r)}H${S(e-Ht)}L${S(e)},${S(Ht-r)}V${S(r)}H${S(-e)}Z" fill="var(--_a)" stroke="var(--_b)" stroke-linejoin="round"${u}/><path d="M${S(e-Ht)},${S(-r)}V${S(Ht-r)}H${S(e)}" fill="none" stroke="var(--_b)" stroke-linejoin="round"${t.style.line}/>`}else g=`pele-usecase`,n=`<rect x="${S(-p/2)}" y="${S(-m/2)}" width="${S(p)}" height="${S(m)}"${a(Gt+u)}/>`;h=n+O(t.stereotype,0,-t.label.height/2,` class="pele-stereotype" font-size="${x}"${f}`,T)+O(t.label,0,e,` class="pele-label"${i.shape===`note`?` font-size="${v}"`:``}${d}${l}`,T)}_e+=`<g class="pele-node ${g}${s}" data-id="${c}" transform="translate(${S(r.x)},${S(r.y)})">${h}</g>`}let ve=``,ye=``,R=``,be=/* @__PURE__ */ new Map;for(let e=0;e<N.length;e++){let t=N[e],r=ce[e],a=P[e],o=r.style.length>0||r.cssCompiledStyles.length>0?i(r.cssCompiledStyles.concat(r.style)):void 0,s=r.arrowTypeStart,c=r.arrowTypeEnd,l;if(t.src===t.dst){let e=M[t.src],n=j[t.src],r=be.get(t.src)??0;be.set(t.src,r+1);let i=k?2:1,o=Math.min(Yt(n,i)/2,8+r*6),u=Ft+r*8,[d,f]=Jt(n,e,i,-o),[p,m]=Jt(n,e,i,o),h=Math.hypot(u,o)||1,g=k?o/h:u/h,_=k?u/h:o/h,v=Qt(s),y=Qt(c),b=(e,t,n,r)=>k?`${S(e+n*o*+!!r)},${S(t+r)}`:`${S(e+r)},${S(t+n*o*+!!r)}`,ee=k?d-g*v:d+g*v,te=k?f+_*v:f-_*v,ne=p+g*y,re=m+_*y;l={d:`M${S(ee)},${S(te)}C${b(d,f,-1,u)} ${b(p,m,1,u)} ${S(ne)},${S(re)}`,sx:d,sy:f,sdx:k?g:-g,sdy:k?-_:_,ex:p,ey:m,edx:-g,edy:-_},k?(t.labelX=e.x,t.labelY=Math.max(f,m)+u*.75+6+a.height/2):(t.labelX=Math.max(d,p)+u*.75+8+a.width/2,t.labelY=e.y)}else{if(t.route.length<6)continue;l=d(t.route,void 0,Qt(s),Qt(c))}let u=m(l.d,[l.sx,l.sy,l.ex,l.ey],ge,l.tokens),_=u&&g(u,o?.line),v=_||(o?.stroke?D(o.stroke):`var(--_l)`);if(_===``){let e=`var(--_bg)`;ve+=p(l.d,$t(s,l.sx,l.sy,l.sdx,l.sdy,e,e)+$t(c,l.ex,l.ey,l.edx,l.edy,e,e),o?.line)}let y=r.internal?`2 3`:r.pattern===`dotted`?`5 4`:r.animate?`9 5`:``,b=$t(s,l.sx,l.sy,l.sdx,l.sdy,v)+$t(c,l.ex,l.ey,l.edx,l.edy,v);if(ye+=`<g class="pele-edge pele-${r.relationshipType}${n(r.classes.replace(/^default relationship relationship-\S+\s?/,``))}" data-id="${ie(r.id)}"${_?` stroke="${_}"`:``}${o?.line??``}><path d="${l.d}"${y?` stroke-dasharray="${y}"`:``}/>`+(u&&_?f(b,u):b)+`</g>`,a.width>0){let e=t.labelX,n=t.labelY,i=r.relationshipType===`include`||r.relationshipType===`extend`;R+=h(r.id,a,e,n,(i?` fill="var(--_m)"`:``)+(o?.text??``),T)}}return{svg:e(`usecase`,fe,pe,_,s,t,O(I,fe/2,w+I.height/2,` class="pele-title" font-weight="var(--_tw)"`)+(he?`<g class="pele-clusters">${he}</g>`:``)+u(ve)+(ye?`<g class="pele-edges" fill="none" stroke="var(--_l)" stroke-linecap="round">${ye}</g>`:``)+(R?`<g class="pele-edge-labels" font-size="${v}">${R}</g>`:``)+`<g class="pele-nodes">${_e}</g>`),width:fe,height:pe,links:[]}}function rn(e,t,n){let r=n.get(Math.round(e.y-e.h/2));if(t===0||r===void 0)return e.x;let i=e.x-e.w/2+6,a=e.x+e.w/2-6,o=r.filter(e=>e>i&&e<a).sort((e,t)=>e-t);o.push(a);let s=t/2+6,c=e.x,l=1/0,u=0,d=i;for(let t of o){if(t-d>=2*s){let n=Math.min(Math.max(e.x,d+s),t-s);Math.abs(n-e.x)<l&&(l=Math.abs(n-e.x),c=n)}else l===1/0&&t-d>u&&(u=t-d,c=(d+t)/2);d=t}return c}function an(e,t,n,i,a){if(e.lines.length<2)return O(e,t+e.width/2,n,i,a);let o=``;for(let c=0;c<e.lines.length;c++)o+=O(s(e,c),t+e.widths[c]/2,n-e.height/2+r(e,c),i,a);return o}var on={type:`usecase`,math:!0,parse:(e,t,n)=>Ct(e,n),render:tn};export{on as usecase};
@@ -0,0 +1,2 @@
1
+ import{i as e,n as t,r as n,t as r}from"./7XWI72E6-BMuIspEy.js";import{a as i,d as a,s as o}from"./BGW36YJW-CJMhya8S.js";import{n as s,t as c}from"./G6GPDDNC-DEz8F449.js";import{t as l}from"./DKTLEL5E-DciMwFJ1.js";import{u}from"./EFYWJBJK-CVywe_D5.js";import{C as d,E as f,F as p,f as m,h,i as ee,s as te,t as g,u as _}from"./lazy-f3CuUNJZ.js";var v=class{type=`timeline`;title;accTitle;accDescr;direction=`LR`;sections=[];periods=[];currentSection=``;getCommonDb(){return this}setDiagramTitle(e){this.title=e}setAccTitle(e){this.accTitle=e.replace(/^\s+/g,``)}setAccDescription(e){this.accDescr=e.replace(/\n\s+/g,`
2
+ `)}setDirection(e){this.direction=e}addSection(e){this.currentSection=e,this.sections.push(e)}addTask(e,t,n){this.periods.push({text:e,events:n?[n]:[],section:this.currentSection,sectionIndex:this.sections.length-1})}addEvent(e){let t=this.periods[this.periods.length-1];if(!t)throw new _(`An event needs a time period before it.`,`semantic`,{type:`timeline`});t.events.push(e)}},y=[`$end`,`EOF`,`INVALID`,`NEWLINE`,`timeline`,`timeline_lr`,`timeline_td`,`title`,`acc_title`,`acc_title_value`,`acc_descr`,`acc_descr_value`,`acc_descr_multiline_value`,`section`,`period`,`event`];function b(i){let a=i.length,o=[],s=[],c=[],l={types:o,texts:s,starts:c},u=0,d=(e,t)=>{o.push(e),s.push(i.slice(u,t)),c.push(u),u=t};for(;u=t(i,u),!(u>=a);){let t=i.charCodeAt(u),o=u+1;if(t===10){for(;i.charCodeAt(o)===10;)o++;d(3,o)}else{if(r(i,u,`timeline`)){for(o=u+8;i.charCodeAt(o)===32||i.charCodeAt(o)===9;)o++;let e=r(i,o,`lr`);if(o>u+8&&(e||r(i,o,`td`))&&!g(i.charCodeAt(o+2))){d(e?5:6,o+2);continue}if(!g(i.charCodeAt(u+8))){d(4,u+8);continue}}if(r(i,u,`title`)){for(o=u+5;i.charCodeAt(o)!==10&&p(i.charCodeAt(o));)o++;if(o===a||i.charCodeAt(o)===10){u=o;continue}let e=i.charCodeAt(u+5);if(e!==13&&p(e)){d(7,n(i,u+6));continue}}if(o=e(i,u,l,8),o!==u)u=o;else{if(r(i,u,`section`)&&p(i.charCodeAt(u+7))){for(o=u+8;o<a&&i.charCodeAt(o)!==58&&i.charCodeAt(o)!==10;)o++;if(o>u+8){d(13,o);continue}}if(t!==58){o=u+1;for(let e=i.charCodeAt(o);o<a&&e!==35&&e!==58&&e!==10;e=i.charCodeAt(++o));d(14,o)}else{if(p(i.charCodeAt(u+1))){for(o=u+2;o<a;o++){let e=i.charCodeAt(o);if(e===10||e===58&&p(i.charCodeAt(o+1)))break}if(o>u+2){d(15,o);continue}}d(2,u+1)}}}}return(c.length===0||c[c.length-1]<a)&&d(1,a),d(0,a),l}var x=`'EOF', 'SPACE', 'NEWLINE', 'title', 'acc_title', 'acc_descr', 'acc_descr_multiline_value', 'section', 'period', 'event'`;function S(e,t){let{types:n,texts:r,starts:i}=b(e),a=(t,r)=>{let a=n[t]===0?`1`:y[n[t]];throw d(`timeline`,e,i[t],`Expecting ${r}, got '${a}'`)},o=n[0];o!==4&&o!==5&&o!==6&&a(0,`'timeline', 'timeline_lr', 'timeline_td'`),o!==4&&t.setDirection(o===5?`LR`:`TD`);for(let e=1;;e++){let i=r[e];switch(n[e]){case 3:break;case 7:t.getCommonDb().setDiagramTitle(i.substring(6));break;case 8:t.getCommonDb().setAccTitle(r[++e].trim());break;case 10:t.getCommonDb().setAccDescription(r[++e].trim());break;case 12:t.getCommonDb().setAccDescription(i.trim());break;case 13:t.addSection(i.substring(8));break;case 14:t.addTask(i,0,``);break;case 15:t.addEvent(i.substring(2));break;case 1:return;default:a(e,x)}}}var C=12,ne=8,re=152,ie=216,ae=264,w=20,T=20,E=14,D=8,O=8,k=12,oe=` fill="var(--_bg)"`,se=` fill="none" stroke="var(--_b)"`;function A(e,t,n,r,i){return`<rect x="${f(e)}" y="${f(t)}" width="${f(n)}" height="${f(r)}"${o(i)}/>`}function j(e,t,n){return e.direction===`TD`?M(e,t,n,!0):l(n,r=>M(e,t,n,r))}function M(e,t,n,r){let o=n.fontSize??16,l=Math.round(o*.875),d=n.measurer??te(n.fontFamily,n.fontFamilyMono),p=n.padding??8,g=t.timeline?.disableMulticolor!==!0,_=e.periods,v=e.sections.length>0,y=e.sections.map((e,t)=>({section:t,periods:[]})),b={section:-1,periods:[]};_.forEach((e,t)=>(y[e.sectionIndex]??b).periods.push(t)),b.periods.length>0&&y.unshift(b);let x=r&&n.maxWidth!==void 0&&n.maxWidth>0?n.maxWidth-2*p:1/0,S=T+E*2+4*C,j=Math.min(re,Math.max(80,Math.round((x-S)*.38))),M=Math.min(ae,Math.max(110,x-S-j)),N=j,P=()=>r?M:N,F=_.map(e=>s(e.text,d,o,N)),I=_.map(e=>e.events.map(e=>s(e,d,l,P()))),L=0;for(let e of F)L=Math.max(L,e.width);if(!r)for(let e of I)for(let t of e)L=Math.max(L,t.width);let ce=L>N;if(r)for(let e of I)for(let t of e)ce||=t.width>M;ce&&(N=Math.min(Math.max(Math.ceil(L),j),x===1/0?ie:j),F=_.map(e=>c(e.text,d,o,N)),I=_.map(e=>e.events.map(e=>c(e,d,l,P()))));let le=Math.round(o*1.5),R=N+2*C,z=P()+2*C,B=e=>Math.max(e.height,le)+2*ne,V=e=>Math.max(e.height,Math.round(l*1.5))+2*ne,ue=(e,t)=>e.section>=0?e.section:v?void 0:g?t:0,de=(e,t)=>{let n=ue(e,t);return n===void 0?`var(--_m)`:i(n)},H=e=>(e===void 0?``:ee(e))||oe,fe=!1;for(let e of I)e.length>0&&(fe=!0);let U=0;for(let e of y)U+=Math.max(e.periods.length,1);let W=R+w,G=_.length>0,K=r?R+(fe?T+E*2+z:G?T+k:0):U>0?U*W-w+(G?k+8:0):0,q=c(e.title,d,o,Math.max(K,320),1),pe=q.height>0?q.height+16:0,me=Math.max(K,q.width),J=p+(me-K)/2,Y=p+pe,he=(t,n)=>c(e.sections[t.section],d,o,n-2*C,1),ge=(e,t,n,r,a,o)=>A(n,r,a,o,` fill="${i(e.section)}"`)+h(t,n+a/2,r+o/2,` font-weight="var(--_hw)"`+H(e.section)),_e=(e,t,n,r,i,a)=>A(r,i,R,a,` fill="${n}"`)+h(F[e],r+R/2,i+a/2,H(ue(t,e))),ve=(e,t,n,r,i)=>`<g class="pele-node pele-event">`+A(n,r,z,i,` fill="${t}" fill-opacity="0.16"`)+h(e,n+z/2,r+i/2,` font-size="${l}"`)+`</g>`,ye=(e,t,n)=>`<circle class="pele-dot" cx="${f(e)}" cy="${f(t)}" r="4" fill="${n}" stroke="var(--_bg)" stroke-width="2"/>`,X=t=>t.section>=0?`<g class="pele-cluster pele-section" data-id="${m(e.sections[t.section].trim())}">`:``,be=e=>`<g class="pele-node pele-period" data-id="${m(_[e].text.trim())}">`,Z=``,Q;if(r){let e=J+R+T,t=e+E,n=t+E,r=Y;for(let i of y){if(Z+=X(i),i.section>=0){let e=he(i,K),t=B(e);Z+=ge(i,e,J,r,K,t),r+=t+O+4}for(let a of i.periods){let o=de(i,a),s=B(F[a]),c=I[a].length>0?V(I[a][0]):s,l=r+Math.max(s,c)/2,u=`M${f(J+R)},${f(l)}H${f(e)}`,d=``,p=l-c/2,m=l;for(let e of I[a]){let r=V(e);m=p+r/2,u+=`M${f(t)},${f(m)}H${f(n)}`,d+=ve(e,o,n,p,r),p+=r+D}d&&(u+=`M${f(e)},${f(l)}H${f(t)}V${f(m)}`),Z+=be(a)+_e(a,i,o,J,l-s/2,s)+`<path class="pele-edge" d="${u}"${se}/>`+ye(e,l,o)+d+`</g>`,r=Math.max(l+s/2,p-D)+w}i.periods.length===0&&(r+=w-O-4),i.section>=0&&(Z+=`</g>`)}if(y.length>0&&(r-=w),G){let t=r+k+8;Z=`<path class="pele-axis" d="M${f(e)},${f(Y)}V${f(t-8+1)}" fill="none" stroke="var(--_l)"/>`+u(`arrow_point`,e,t,0,1,`var(--_l)`)+Z,r=t}Q=r+p}else{let e=0,t=y.map(t=>{if(t.section<0)return;let n=he(t,Math.max(t.periods.length,1)*W-w);return e=Math.max(e,B(n)),n}),n=0;for(let e of F)n=Math.max(n,B(e));let r=Y+(v?e+O:0),i=r+n+(n>0?T:0),a=i+T,o=G?i+k:Y+e,s=0;if(y.forEach((c,l)=>{let u=Math.max(c.periods.length,1),d=J+s*W;Z+=X(c);let p=t[l];p&&(Z+=ge(c,p,d,Y,u*W-w,e)),c.periods.forEach((e,t)=>{let s=de(c,e),l=d+t*W,u=l+R/2,p=`M${f(u)},${f(r+n)}V${f(I[e].length>0?a:i)}`,m=``,h=a;for(let t of I[e]){let e=V(t);h>a&&(p+=`M${f(u)},${f(h-D)}V${f(h)}`),m+=ve(t,s,l,h,e),h+=e+D}o=Math.max(o,h-D),Z+=be(e)+_e(e,c,s,l,r,n)+`<path class="pele-edge" d="${p}"${se}/>`+ye(u,i,s)+m+`</g>`}),c.section>=0&&(Z+=`</g>`),s+=u}),G){let e=J+K;Z=`<path class="pele-axis" d="M${f(J)},${f(i)}H${f(e-8+1)}" fill="none" stroke="var(--_l)"/>`+u(`arrow_point`,e,i,1,0,`var(--_l)`)+Z}Q=o+p}let $=Math.ceil(me+2*p),xe=Math.ceil(Math.max(Q,p*2)),Se=h(q,$/2,p+q.height/2,` class="pele-title" font-weight="var(--_tw)"`)+Z;return{svg:a(`timeline`,$,xe,o,n,e,Se),width:$,height:xe,links:[]}}var N={type:`timeline`,parse(e,t,n){let r=new v;return r.title=n,S(e,r),r},render:j};export{N as timeline};
@@ -0,0 +1 @@
1
+ import{s as e}from"./BGW36YJW-CJMhya8S.js";import{E as t}from"./lazy-f3CuUNJZ.js";var n=12,r=(e,t,r)=>(r?t:e)-2*n,i=e=>(t,r,i)=>i?0:t-2*e(r)-2*n;function a(e,t,n){let r=Math.min(1,Math.abs(e)/t);return n*(1-Math.sqrt(1-r*r))}var o=(e,t,n,r)=>n&1?a(r,t/2,e/2):a(r,e/2,t/2),s=(e,t,n)=>(n?t:e)*.6,c=(e,t,n,r)=>n&1?0:a(r,e/2,Math.min(12,Math.max(6,e/14))),l=(e,t)=>()=>({w:e,h:t,dy:0});function u(e,t,n){let r=Math.max(1.6*e+40,80),i=(t+10)/(1-(e+8)/r),a=i/2-10-t/2;return{w:r,h:i,dy:n?-a:a}}function d(e,t){return`<path d="${e}"${t}/>`}var f=(e,t,n)=>n&1?t/8:0,p=(e,t)=>({w:Math.max(e+36,48),h:t+24,dy:0});function m(e,n){let r=``;for(let n=0;n<e.length;n+=2)r+=(n?` `:``)+t(e[n])+`,`+t(e[n+1]);return`<polygon points="${r}"${n}/>`}function h(e,n,r,i=``){return`<rect x="${t(-e/2)}" y="${t(-n/2)}" width="${t(e)}" height="${t(n)}"${i}${r}/>`}var g={rect:{size:p,span:r,draw:(t,n,r)=>h(t,n,e(r))},rounded:{size:p,span:r,draw:(e,n,r)=>h(e,n,r,` rx="${t(Math.min(12,n/2))}"`)},stadium:{inset:(e,t,n,r)=>n&1?a(r,t/2,t/2):0,span:(e,t,n)=>n?t*.6:e-t,size:(e,t)=>{let n=t+24;return{w:e+n*.5+36-8,h:n,dy:0}},draw:(e,n,r)=>h(e,n,r,` rx="${t(n/2)}"`)},"fr-rect":{span:r,size:(e,t)=>({w:e+36+16,h:t+24,dy:0}),draw:(n,r,i,a)=>{let o=n/2-8;return h(n,r,e(i))+`<path d="M${t(-o)},${t(-r/2)}V${t(r/2)}M${t(o)},${t(-r/2)}V${t(r/2)}" fill="none"${a}/>`}},cyl:{inset:c,span:(e,t,r)=>r?t-2*n-12:e*.6,size:(e,t)=>{let n=Math.max(e+36,56),r=Math.min(12,Math.max(6,n/14));return{w:n,h:t+24+2*r,dy:r/2}},draw:(e,n,r,i)=>{let a=e/2,o=Math.min(12,Math.max(6,e/14)),s=-n/2+o,c=n/2-o;return`<path d="M${t(-a)},${t(s)}A${t(a)},${t(o)} 0 0 1 ${t(a)},${t(s)}V${t(c)}A${t(a)},${t(o)} 0 0 1 ${t(-a)},${t(c)}Z"${r}/><path d="M${t(-a)},${t(s)}A${t(a)},${t(o)} 0 0 0 ${t(a)},${t(s)}" fill="none"${i}/>`}},circle:{inset:o,span:s,size:(e,t)=>{let n=Math.max(Math.sqrt(e*e+t*t)+16,44);return{w:n,h:n,dy:0}},draw:(e,n,r)=>`<circle r="${t(e/2)}"${r}/>`},"dbl-circ":{inset:o,span:s,size:(e,t)=>{let n=Math.max(Math.sqrt(e*e+t*t)+26,54);return{w:n,h:n,dy:0}},draw:(e,n,r,i)=>`<circle r="${t(e/2)}"${r}/><circle r="${t(e/2-5)}" fill="none"${i}/>`},ellipse:{inset:o,span:s,size:(e,t)=>({w:e*1.3+36,h:t*1.2+24,dy:0}),draw:(e,n,r)=>`<ellipse rx="${t(e/2)}" ry="${t(n/2)}"${r}/>`},diam:{inset:(e,t,n,r)=>n&1?Math.abs(r)*e/t:Math.abs(r)*t/e,span:(e,t,n)=>(n?t:e)*.6,size:(e,t)=>{let n=e+16,r=t+8;return{w:n+1.6*r,h:n/1.6+r,dy:0}},draw:(e,t,n)=>m([0,-t/2,e/2,0,0,t/2,-e/2,0],n)},hex:{inset:(e,t,n,r)=>n&1?Math.abs(r)/2:0,span:(e,t,r)=>r?t*.5:e-t/2-n,size:(e,t)=>{let n=t+24;return{w:e+36+n/2,h:n,dy:0}},draw:(e,t,n)=>{let r=t/4;return m([-e/2+r,-t/2,e/2-r,-t/2,e/2,0,e/2-r,t/2,-e/2+r,t/2,-e/2,0],n)}},odd:{inset:(e,t,n)=>n===3?t/4:0,span:i(()=>0),size:(e,t)=>{let n=t+24;return{w:e+36+n/4,h:n,dy:0}},draw:(e,t,n)=>{let r=t/4;return m([-e/2,-t/2,e/2,-t/2,e/2,t/2,-e/2,t/2,-e/2+r,0],n)}},"lean-r":{inset:f,span:i(e=>e/4),size:(e,t)=>{let n=t+24;return{w:e+36+n/2,h:n,dy:0}},draw:(e,t,n)=>{let r=t/4;return m([-e/2+r,-t/2,e/2,-t/2,e/2-r,t/2,-e/2,t/2],n)}},"lean-l":{inset:f,span:i(e=>e/4),size:(e,t)=>{let n=t+24;return{w:e+36+n/2,h:n,dy:0}},draw:(e,t,n)=>{let r=t/4;return m([-e/2,-t/2,e/2-r,-t/2,e/2,t/2,-e/2+r,t/2],n)}},"trap-b":{inset:f,span:i(e=>e/4),size:(e,t)=>{let n=t+24;return{w:e+36+n/2,h:n,dy:0}},draw:(e,t,n)=>{let r=t/4;return m([-e/2+r,-t/2,e/2-r,-t/2,e/2,t/2,-e/2,t/2],n)}},"trap-t":{inset:f,span:i(e=>e/4),size:(e,t)=>{let n=t+24;return{w:e+36+n/2,h:n,dy:0}},draw:(e,t,n)=>{let r=t/4;return m([-e/2,-t/2,e/2,-t/2,e/2-r,t/2,-e/2+r,t/2],n)}},text:{bare:!0,span:r,size:(e,t)=>({w:e+8,h:t+8,dy:0}),draw:(e,t)=>h(e,t,` fill="none" stroke="none"`)},"sm-circ":{noLabel:!0,inset:o,span:s,size:l(14,14),draw:(e,n,r)=>`<circle r="${t(e/2)}"${r}/>`},"f-circ":{noLabel:!0,inset:o,span:s,size:l(14,14),draw:(e,n,r,i)=>`<circle r="${t(e/2)}" fill="var(--_l)"${i}/>`},"fr-circ":{noLabel:!0,inset:o,span:s,size:l(18,18),draw:(e,n,r,i)=>`<circle r="${t(e/2)}"${r}/><circle r="${t(e/2-4)}" fill="var(--_l)"${i}/>`},fork:{noLabel:!0,span:(e,t,n)=>(n?t:e)-8,size:l(72,8),draw:(e,t,n,r)=>h(e,t,` fill="var(--_l)"${r}`,` rx="2"`)},"notch-rect":{size:p,span:r,draw:(e,t,n)=>m([-e/2+10,-t/2,e/2,-t/2,e/2,t/2,-e/2,t/2,-e/2,-t/2+10],n)},"lin-rect":{span:r,size:(e,t)=>({w:e+36+8,h:t+24,dy:0}),draw:(n,r,i,a)=>h(n,r,e(i))+`<path d="M${t(-n/2+8)},${t(-r/2)}V${t(r/2)}" fill="none"${a}/>`},"div-rect":{span:r,size:(e,t)=>({w:e+36,h:t+24+8,dy:4}),draw:(n,r,i,a)=>h(n,r,e(i))+`<path d="M${t(-n/2)},${t(-r/2+8)}H${t(n/2)}" fill="none"${a}/>`},"win-pane":{span:r,size:(e,t)=>({w:e+36+8,h:t+24+8,dy:4}),draw:(n,r,i,a)=>h(n,r,e(i))+`<path d="M${t(-n/2+8)},${t(-r/2)}V${t(r/2)}M${t(-n/2)},${t(-r/2+8)}H${t(n/2)}" fill="none"${a}/>`},tri:{inset:(e,t,n)=>n&1?e/4:0,size:(e,t)=>u(e,t,!1),draw:(e,t,n)=>m([0,-t/2,e/2,t/2,-e/2,t/2],n)},"flip-tri":{inset:(e,t,n)=>n&1?e/4:0,size:(e,t)=>u(e,t,!0),draw:(e,t,n)=>m([-e/2,-t/2,e/2,-t/2,0,t/2],n)},"sl-rect":{inset:(e,t,n)=>n===0?5:0,size:(e,t)=>({w:e+36,h:t+24+10,dy:5}),draw:(e,t,n)=>m([-e/2,-t/2+10,e/2,-t/2,e/2,t/2,-e/2,t/2],n)},"notch-pent":{span:r,size:(e,t)=>({w:e+36,h:t+24,dy:0}),draw:(e,t,n)=>m([-e/2+10,-t/2,e/2-10,-t/2,e/2,-t/2+10,e/2,t/2,-e/2,t/2,-e/2,-t/2+10],n)},hourglass:{noLabel:!0,inset:(e,t,n)=>n&1?e/2:0,size:l(32,40),draw:(e,t,n)=>m([-e/2,-t/2,e/2,-t/2,-e/2,t/2,e/2,t/2],n)},delay:{size:(e,t)=>{let n=t+24;return{w:e+36+n/4,h:n,dy:0}},draw:(e,n,r)=>{let i=n/2;return`<path d="M${t(-e/2)},${t(-i)}H${t(e/2-i)}A${t(i)},${t(i)} 0 0 1 ${t(e/2-i)},${t(i)}H${t(-e/2)}Z"${r}/>`}},"h-cyl":{size:(e,t)=>{let n=t+24,r=Math.min(12,n/4);return{w:e+36+2*r,h:n,dy:0}},draw:(e,n,r,i)=>{let a=n/2,o=Math.min(12,n/4),s=-e/2+o,c=e/2-o;return`<path d="M${t(s)},${t(-a)}H${t(c)}A${t(o)},${t(a)} 0 0 1 ${t(c)},${t(a)}H${t(s)}A${t(o)},${t(a)} 0 0 1 ${t(s)},${t(-a)}Z"${r}/><path d="M${t(c)},${t(-a)}A${t(o)},${t(a)} 0 0 0 ${t(c)},${t(a)}" fill="none"${i}/>`}},"cross-circ":{noLabel:!0,inset:o,span:s,size:l(44,44),draw:(e,n,r,i)=>{let a=e/2,o=a*Math.SQRT1_2;return`<circle r="${t(a)}"${r}/><path d="M${t(-o)},${t(-o)}L${t(o)},${t(o)}M${t(o)},${t(-o)}L${t(-o)},${t(o)}" fill="none"${i}/>`}},"st-rect":{span:(e,t,r)=>(r?t:e)-2*n-8,size:(e,t)=>({w:e+36+8,h:t+24+8,dy:4}),draw:(n,r,i)=>{let a=n-8,o=r-8,s=``;for(let c=0;c<3;c++){let l=-n/2+(2-c)*4,u=-r/2+c*4;s+=`<rect x="${t(l)}" y="${t(u)}" width="${t(a)}" height="${t(o)}"${e(i)}/>`}return s}},doc:{inset:(e,t,n)=>n===2?10:0,size:(e,t)=>({w:e+36,h:t+24+10,dy:-5}),draw:(e,t,n)=>v(e,t,n)},flag:{inset:(e,t,n)=>n&1?0:8,size:(e,t)=>({w:e+36,h:t+24+16,dy:0}),draw:(e,n,r)=>{let i=e/2,a=n/2-8,o=e/4;return`<path d="M${t(-i)},${t(-a)}q${t(o)},-10 ${t(2*o)},0t${t(2*o)},0V${t(a)}q${t(-o)},10 ${t(-2*o)},0t${t(-2*o)},0Z"${r}/>`}},datastore:{size:p,span:r,draw:(e,n,r,i)=>h(e,n,r.replace(`stroke="var(--_b)"`,`stroke="none"`))+`<path d="M${t(-e/2)},${t(-n/2)}H${t(e/2)}M${t(-e/2)},${t(n/2)}H${t(e/2)}" fill="none"${i}/>`},folder:{size:(e,t)=>({w:Math.max(e+36,64),h:t+24+8,dy:4}),draw:(e,n,r)=>{let i=e/2,a=n/2,o=Math.min(e*.4,48);return d(`M${t(-i)},${t(-a)}H${t(-i+o)}L${t(-i+o+8)},${t(-a+8)}H${t(i)}V${t(a)}H${t(-i)}Z`,r)}},bucket:{size:(e,t)=>({w:e+36+20,h:t+24+10,dy:3}),inset:(e,t,n)=>n&1?t/12:0,draw:(e,n,r,i)=>{let a=e/2,o=n/2,s=n/6;return d(`M${t(-a)},${t(-o+5)}A${t(a)},${t(5)} 0 0 1 ${t(a)},${t(-o+5)}L${t(a-s)},${t(o-5)}A${t(a-s)},${t(5)} 0 0 1 ${t(-a+s)},${t(o-5)}Z`,r)+`<path d="M${t(-a)},${t(-o+5)}A${t(a)},${t(5)} 0 0 0 ${t(a)},${t(-o+5)}" fill="none"${i}/>`}},console:{span:r,size:(e,t)=>({w:Math.max(e+36,72),h:t+24+12,dy:6}),draw:(n,r,i,a)=>h(n,r,e(i))+`<path d="M${t(-n/2)},${t(-r/2+12)}H${t(n/2)}M${t(-n/2+7)},${t(-r/2+4)}l3,2.5l-3,2.5M${t(-n/2+13)},${t(-r/2+9)}h4" fill="none"${a}/>`},browser:{span:r,size:(e,t)=>({w:Math.max(e+36,72),h:t+24+12,dy:6}),draw:(n,r,i,a)=>{let o=``;for(let e=0;e<3;e++)o+=`<circle cx="${t(-n/2+8+e*7)}" cy="${t(-r/2+6)}" r="1.5" fill="none"${a}/>`;return h(n,r,e(i))+`<path d="M${t(-n/2)},${t(-r/2+12)}H${t(n/2)}" fill="none"${a}/>`+o}},person:{size:(e,t)=>({w:Math.max(e+36,56),h:t+24+26,dy:13}),draw:(e,n,r)=>{let i=-n/2;return`<rect x="${t(-e/2)}" y="${t(i+26)}" width="${t(e)}" height="${t(n-26)}" rx="12"${r}/><circle cy="${t(i+14)}" r="13"${r}/>`}},bang:{size:(e,t)=>({w:e+36+28,h:t+24+24,dy:0}),inset:()=>3,draw:(e,t,n)=>{let r=[];for(let n=0;n<28;n++){let i=Math.PI*n/14-Math.PI/2,a=n%2==0?1:.82;r.push(e/2*Math.cos(i)*a,t/2*Math.sin(i)*a)}return m(r,n)}},cloud:{size:(e,t)=>({w:e+36+32,h:t+24+24,dy:0}),inset:(e,t,n)=>n&1?2:1,draw:(e,n,r)=>{let i=e/2,a=n/2,o=a*.55;return d(`M${t(-i+o)},${t(a)}A${t(o)},${t(o)} 0 0 1 ${t(-i+o*.6)},${t(-a*.1)}A${t(i*.42)},${t(a*.7)} 0 0 1 ${t(-i*.1)},${t(-a*.72)}A${t(i*.4)},${t(a*.62)} 0 0 1 ${t(i*.62)},${t(-a*.42)}A${t(o*1.05)},${t(o*1.05)} 0 0 1 ${t(i-o)},${t(a)}Z`,r)}},brace:{bare:!0,size:(e,t)=>({w:e+36+12,h:t+24,dy:0}),draw:(e,t,n,r)=>h(e,t,` fill="none" stroke="none"`)+_(-e/2+12,t,-1,r)},"brace-r":{bare:!0,size:(e,t)=>({w:e+36+12,h:t+24,dy:0}),draw:(e,t,n,r)=>h(e,t,` fill="none" stroke="none"`)+_(e/2-12,t,1,r)},braces:{bare:!0,size:(e,t)=>({w:e+36+24,h:t+24,dy:0}),draw:(e,t,n,r)=>h(e,t,` fill="none" stroke="none"`)+_(-e/2+12,t,-1,r)+_(e/2-12,t,1,r)},bolt:{noLabel:!0,size:l(36,56),inset:(e,t,n)=>n&1?e/4:0,draw:(e,t,n)=>m([e*.15,-t/2,-e/2,t*.08,-e*.05,t*.08,-e*.15,t/2,e/2,-t*.08,e*.05,-t*.08],n)},"lin-cyl":{inset:c,span:(e,t,r)=>r?t-2*n-20:e*.6,size:(e,t)=>{let n=Math.max(e+36,56),r=Math.min(12,Math.max(6,n/14));return{w:n,h:t+24+2*r+8,dy:r/2+4}},draw:(e,n,r,i)=>{let a=e/2,o=Math.min(12,Math.max(6,e/14)),s=-n/2+o,c=n/2-o,l=e=>`M${t(-a)},${t(e)}A${t(a)},${t(o)} 0 0 0 ${t(a)},${t(e)}`;return d(`M${t(-a)},${t(s)}A${t(a)},${t(o)} 0 0 1 ${t(a)},${t(s)}V${t(c)}A${t(a)},${t(o)} 0 0 1 ${t(-a)},${t(c)}Z`,r)+`<path d="${l(s)}${l(s+8)}" fill="none"${i}/>`}},"curv-trap":{size:(e,t)=>{let n=t+24;return{w:e+36+n*.6,h:n,dy:0}},draw:(e,n,r)=>{let i=e/2,a=n/2,o=n*.3;return d(`M${t(-i+o)},${t(-a)}H${t(i-o)}A${t(o)},${t(a)} 0 0 1 ${t(i-o)},${t(a)}H${t(-i+o)}L${t(-i)},0Z`,r)}},docs:{size:(e,t)=>({w:e+36+8,h:t+24+18,dy:-1}),inset:(e,t,n)=>n===2?10:0,draw:(e,t,n)=>{let r=``;for(let i=0;i<3;i++)r+=`<g transform="translate(${(1-i)*4},${(i-1)*4})">${v(e-8,t-8,n)}</g>`;return r}},"bow-rect":{size:(e,t)=>{let n=t+24;return{w:e+36+n*.4,h:n,dy:0}},inset:(e,t,n)=>n===1?t*.2:0,draw:(e,n,r)=>{let i=e/2,a=n/2,o=n*.2;return d(`M${t(-i+o)},${t(-a)}H${t(i)}A${t(o)},${t(a)} 0 0 0 ${t(i)},${t(a)}H${t(-i+o)}A${t(o)},${t(a)} 0 0 1 ${t(-i+o)},${t(-a)}Z`,r)}},"tag-rect":{size:p,span:r,draw:(n,r,i,a)=>h(n,r,e(i))+`<path d="M${t(n/2-12)},${t(r/2)}L${t(n/2)},${t(r/2-12)}" fill="none"${a}/>`},"tag-doc":{size:(e,t)=>({w:e+36,h:t+24+10,dy:-5}),inset:(e,t,n)=>n===2?10:0,draw:(e,n,r,i)=>v(e,n,r)+`<path d="M${t(e/2-12)},${t(n/2-14)}L${t(e/2)},${t(n/2-26)}" fill="none"${i}/>`},"lin-doc":{size:(e,t)=>({w:e+36+8,h:t+24+10,dy:-5}),inset:(e,t,n)=>n===2?10:0,draw:(e,n,r,i)=>v(e,n,r)+`<path d="M${t(-e/2+8)},${t(-n/2)}V${t(n/2-6)}" fill="none"${i}/>`},collapsedGroup:{size:(e,t)=>({w:e+36+8,h:t+24+8,dy:-2}),draw:(n,r,i)=>`<rect x="${t(-n/2+6)}" y="${t(-r/2+8)}" width="${t(n-12)}" height="${t(r-8)}"${e(i)}/><rect x="${t(-n/2)}" y="${t(-r/2)}" width="${t(n)}" height="${t(r-4)}"${e(i)}/>`}};function _(e,n,r,i){let a=n/2,o=6*r;return`<path d="M${t(e)},${t(-a)}q${t(o)},0 ${t(o)},6V-6q0,6 ${t(o)},6q${t(-o)},0 ${t(-o)},6V${t(a-6)}q0,6 ${t(-o)},6" fill="none"${i}/>`}function v(e,n,r){let i=e/2,a=-n/2,o=n/2-10,s=e/4;return`<path d="M${t(-i)},${t(a)}H${t(i)}V${t(o)}q${t(-s)},-12 ${t(-2*s)},0t${t(-2*s)},0Z"${r}/>`}var y=g.rect,b=new Map(Object.entries(g));function x(e,t,n){return(b.get(e)??y).size(t,n)}function S(e,t,n,r,i){return(b.get(e)??y).draw(t,n,r,i)}function C(e,t,n,r,i=0){return b.get(e)?.inset?.(t,n,r,i)??0}function w(e,t,n,r){return Math.max(0,b.get(e)?.span?.(t,n,r)??0)}function T(e){return b.get(e)?.noLabel!==!0}function E(e){return(b.get(e)??y).bare!==!0}function D(e,t,n){let r=e[t]-n.x,i=e[t+1]-n.y;return Math.abs(Math.abs(i)-n.h/2)<.5?i<0?0:2:Math.abs(Math.abs(r)-n.w/2)<.5?r<0?3:1:-1}function O(e,t,n,r){if(r.isGroup)return;let i=D(e,t,r);if(i===0||i===2){let a=C(n.shape,n.w,n.h,i,e[t]-r.x)+(r.h-n.h)/2;e[t+1]+=i===0?a:-a}else if(i>=0){let a=C(n.shape,n.w,n.h,i,e[t+1]-r.y)+(r.w-n.w)/2;e[t]+=i===3?a:-a}}export{C as a,T as c,O as i,D as n,x as o,w as r,S as s,E as t};
@@ -0,0 +1,2 @@
1
+ import{m as e}from"./BGW36YJW-CJMhya8S.js";import{E as t,d as n,h as r,m as i,o as a,w as o}from"./lazy-f3CuUNJZ.js";var s=/\s/;function c(e,t,n,r,i=0){let a=[];for(let o of e.split(`
2
+ `)){let e=Array.from(o);e.length===0&&a.push(``);let c=0;for(;c<e.length;){let o=a=>t.width(e.slice(c,c+a).join(``),n,i)<=r,l=1;for(;l<e.length-c&&o(l);)l=Math.min(e.length-c,l*2);let u=1;for(;u<l;){let e=Math.ceil((u+l)/2);o(e)?u=e:l=e-1}let d=u,f=c+d<e.length;if(f&&!s.test(e[c+d])){for(let t=d-1;t>0;t--)if(s.test(e[c+t])){d=t+1;break}}let p=e.slice(c,c+d).join(``);for(a.push(f&&p.trimEnd()||p),c+=d;f&&c<e.length&&s.test(e[c]);)c++}}e===``&&(a.length=0);let o=a.map(e=>t.width(e,n,i)),c=0;for(let e of o)c=Math.max(c,e);let l=Math.round(n*1.5);return{lines:a.map((e,t)=>[{text:e,style:i,width:o[t]}]),widths:o,width:c,height:a.length*l,size:n,lineHeight:l}}function l(t,n,r){if(t.width<=r)return t;let i=[],a=[];for(let e=0;e<t.lines.length;e++){if(t.widths[e]<=r){i.push(t.lines[e]),a.push(t.widths[e]);continue}let o=[],s=0,c=()=>{i.push(o),a.push(s),o=[],s=0};for(let i of t.lines[e])if(i.icon!==void 0||i.math)o.length&&s+i.width>r&&c(),o.push(i),s+=i.width;else for(let e of Array.from(i.text)){let a=o[o.length-1],l=a&&a.icon===void 0&&a.math===void 0&&a.style===i.style,u=n.width(l?a.text+e:e,t.size,i.style)-(l?a.width:0);o.length&&s+u>r&&(c(),a=void 0,u=n.width(e,t.size,i.style)),a&&a.icon===void 0&&a.math===void 0&&a.style===i.style?(a.text+=e,a.width+=u):o.push({text:e,style:i.style,width:u}),s+=u}(o.length||!t.lines[e].length)&&c()}let o=0;for(let e of a)o=Math.max(o,e);let s={...t,lines:i,widths:a,width:o,height:i.length*t.lineHeight};return t.heights?e(s):s}function u(e,s,c,l){let u=i(e),d=`<text`+o(l,u),f=``;for(let i=0;i<e.lines.length;i++){let o=e.lines[i],p=c+(i+.5)*e.lineHeight;if(o.some(e=>e.icon!==void 0)){let t=e.widths[i];f+=r({...e,lines:[o],widths:[t],width:t,height:e.lineHeight},s+t/2,p,l);continue}let m=``;for(let e of o){let t=a(e.style&~u);m+=t?`<tspan${t}>${n(e.text)}</tspan>`:n(e.text)}m!==``&&(f+=`${d} x="${t(s)}" y="${t(p+e.size*.35)}" text-anchor="start" xml:space="preserve">${m}</text>`)}return f}export{u as n,l as r,c as t};
@@ -0,0 +1 @@
1
+ var e;function t(){let e=`4q 0 b 0 5 0 6 m 2 u 2 cp 5 b f 4 8 0 2 0 3m 4 2 1 3 3 9 0 2 2 2 0 2 j 2 2a 2 3u 9 4d a 11 3 0 8 12 21 q 6 2 1a 16 10 1 2 2q 2 0 g 1 8 1 b 2 3 0 h 0 2 t u 2g c 0 p w a 1 5 0 6 l 5 0 a 0 4 0 o o 20 0 2 a 2g 1h 4 0 j 0 8 9 g 6 2 6 6 7 3 1 3 l 2 6 2 0 4 3 4 0 h 0 e 1 2 2 f 1 k 5 5 1 3 l 2 6 2 1 2 1 2 1 w 3 2 0 k 2 h 8 2 2 2 l 2 6 2 1 2 4 4 0 j 0 g 1 10 7 3 1 3 l 2 6 2 1 2 4 4 0 v 1 2 2 g 0 i 0 2 5 4 2 2 3 4 1 2 0 2 1 4 1 4 2 4 b n 0 1h 7 2 2 2 m 2 9 2 4 4 0 r 1 7 1 10 7 2 2 2 m 2 9 2 4 4 0 x 0 2 1 g 1 j 7 2 2 2 14 3 0 h 0 i 1 p 5 6 h 4 n 2 8 2 0 3 6 1n 1b 2 1 d 6 1n 1 2 0 3 1 2 0 3 0 7 3 2 6 2 2 2 0 2 0 3 1 2 3 2 1 a 0 3 4 2 0 m 3 x 0 1s 7 2 z s 4 38 16 l 0 h 5 5 3 4 0 4 1 8 2 5 c d 0 i 11 2 0 6 0 3 16 2 98 2 3 3 6 2 0 2 3 3 14 2 3 3 w 2 3 3 6 2 0 2 3 3 e 2 1k 2 3 3 1u 12 f h 2c d h7 3 g 2 p 6 22 m c 2 3 f h f h f c 2 2 g 1f 10 0 5 0 1w 2f 9 14 2 0 6 1x b s 1g t 3 4 c 17 m 6 1l m a 1g 2b 0 2m 1a i 6 1k t e 1 b 17 r z 16 2 b z 30 3 2 3 4 1 a 5b 1t 7p 3 5 3 11 3 5 3 7 2 0 2 0 2 0 2 u 3 1g 2 6 2 0 4 2 2 6 4 3 3 5 5 c 6 2 2 6 39 0 e 0 h c 2u 0 5 0 3 9 2 0 4 4 7 0 2 0 2 0 2 3 2 a 3 3 6 4 5 0 1h 1 22k 1a 2 1a 2 3o 7 3 4 1 d 11 2 0 6 0 3 1j 8 0 h m a 6 2 6 2 6 2 6 2 6 2 6 2 6 2 6 29 0 d2 1 17 4 6 1 5 2d 7 2 2 2h 2 3 6 14 4 2l i q 1i f e9 52t 23 g5o 1g wc 1w 19 3 7g 4 f b 1 l 1a h o 9 1x 1e 8 3 2u 3 3 2 3 d a 26 9 2 2 2 3 2 m u 1f f 1d 1r 5 4 0 f r b m q s 8 1a t 0 1d 14 o 2 2 7 l m 4 0 6 1b 2 0 4 1 3 4 3 0 2 0 p 2 3 a 8 2 d 5 3 5 3 5 a 6 2 6 42 y u 8mb d m 5 1c 6it a5 3 2x 13 6 d 4 6 0 2 9 2 c 2 4 2 0 2 1 2 1 2 2z y a2 j 1r 3 1h 15 b 39 4 2 3q 11 p 7 p c 2g 4 5 3 5 3 5 3 2`.split(` `),t=new Uint16Array(e.length),n=0;for(let r=0;r<e.length;r+=2){let i=n+parseInt(e[r],36);n=i+parseInt(e[r+1],36),t[r]=i,t[r+1]=n}return t}function n(n){if(n<170||n>65500)return!1;let r=e??=t(),i=0,a=(r.length>>1)-1;for(;i<=a;){let e=i+a>>1;if(n<r[e*2])a=e-1;else if(n>r[e*2+1])i=e+1;else return!0}return!1}export{n as t};
@@ -0,0 +1,2 @@
1
+ import{F as e}from"./lazy-f3CuUNJZ.js";function t(e,t){let n=e.indexOf(`
2
+ `,t);return n===-1?e.length:n}function n(e,t,n){for(let r=0;r<n.length;r++)if((e.charCodeAt(t+r)|32)!==n.charCodeAt(r))return!1;return!0}function r(n,r){let i=n.length,a=r;for(;a<i;){let r=n.charCodeAt(a);if(r===37&&n.charCodeAt(a+1)!==123)a=t(n,a);else{if(r===10)return a;if(e(r))do a++;while(a<i&&e(n.charCodeAt(a)));else if(r===35)a=t(n,a);else return a}}return a}function i(t,n){let r=n;for(;e(t.charCodeAt(r));)r++;return r}function a(e,r,a,o){let s=n(e,r,`accdescr`);if(!s&&!n(e,r,`acctitle`))return r;let c=e.length,l=i(e,r+8),u=e.charCodeAt(l),d=(t,n,r)=>{a.types.push(t),a.texts.push(e.slice(n,r)),a.starts.push(n)};if(u===58){l=i(e,l+1);let n=t(e,l);return d(s?o+2:o,r,l),d(s?o+3:o+1,l,n),n}if(!s||u!==123)return r;for(l=i(e,l+1);e.charCodeAt(l)!==125;){let t=e.indexOf(`}`,l);if(t===-1&&(t=c),d(o+4,l,t),l===c)return c;l=t}return l+1}export{a as i,r as n,t as r,n as t};
@@ -0,0 +1,8 @@
1
+ import{d as e,i as t,n,r,s as i,t as a}from"./BGW36YJW-CJMhya8S.js";import{a as o,o as s,r as c,t as l}from"./DKTLEL5E-DciMwFJ1.js";import{_ as u,c as d,d as f,f as p,l as m,m as h,p as g,s as _,u as v}from"./EFYWJBJK-CVywe_D5.js";import{a as y,i as b,n as x,r as ee,t as S}from"./VBUCM3YD-JHGjuJC_.js";import{t as C}from"./NT5JY5WP-1lJM-aun.js";import{i as w,n as T,r as E,t as D}from"./4LWW3ZNH-CUiYeygH.js";import{a as O,i as te,n as ne,r as re,t as ie}from"./QQW2P742-BbcEkpa4.js";import{n as ae,t as k}from"./FTXIJQGB-BZVuiBn1.js";import{t as oe}from"./7WLXJQOR-D6QVYUu9.js";import{c as se,i as ce,n as le,o as ue,r as de,s as fe,t as pe}from"./6PIGVMFT-YXn9Hgnb.js";import{C as A,D as me,E as j,F as M,M as N,d as he,f as ge,h as _e,j as P,l as ve,r as ye,s as be,t as F,u as I,x as xe}from"./lazy-f3CuUNJZ.js";function L(e){return e===`markdown`||e===`string`||e===`text`?e:`markdown`}function Se(e){return e.startsWith(`"`)&&e.endsWith(`"`)?e.substring(1,e.length-1):e}function R(e,t){let n=0;for(let r=0;r<t.length;r++)t[r]===e&&n++;return n}function z(e){let t=e.trim(),n=`arrow_open`;switch(t[0]){case`<`:n=`arrow_point`,t=t.slice(1);break;case`x`:n=`arrow_cross`,t=t.slice(1);break;case`o`:n=`arrow_circle`,t=t.slice(1)}let r=`normal`;return t.includes(`=`)&&(r=`thick`),t.includes(`.`)&&(r=`dotted`),{type:n,stroke:r}}function B(e){let t=e.trim(),n=t.slice(0,-1),r=`arrow_open`;switch(t.slice(-1)){case`x`:r=`arrow_cross`,t.startsWith(`x`)&&(r=`double_`+r,n=n.slice(1));break;case`>`:r=`arrow_point`,t.startsWith(`<`)&&(r=`double_`+r,n=n.slice(1));break;case`o`:r=`arrow_circle`,t.startsWith(`o`)&&(r=`double_`+r,n=n.slice(1))}let i=`normal`,a=n.length-1;n.startsWith(`=`)&&(i=`thick`),n.startsWith(`~`)&&(i=`invisible`);let o=R(`.`,n);return o&&(i=`dotted`,a=o),{type:r,stroke:i,length:a}}var V=class{type=`flowchart`;direction;nodes=/* @__PURE__ */ new Map;edges=[];subgraphs=[];classes=/* @__PURE__ */ new Map;tooltips=/* @__PURE__ */ new Map;defaultEdgeStyle;defaultInterpolate;title;accTitle;accDescr;subgraphLookup=/* @__PURE__ */ new Map;members=/* @__PURE__ */ new Set;edgeById=/* @__PURE__ */ new Map;pairCount=/* @__PURE__ */ new Map;subCount=0;options;constructor(e={}){this.options=e}addVertex(e,t,n,r,i,a,o,s){if(!e||e.trim().length===0)return;let c;if(s!==void 0){let t=s.includes(`
2
+ `)?s+`
3
+ `:`{
4
+ `+s+`
5
+ }`,n;try{n=N(t)}catch(t){throw new I(`Metadata of "${e}" is not valid YAML. ${t.message}`,`syntax`,{type:`flowchart`})}c=typeof n==`object`&&n&&!Array.isArray(n)?n:void 0}let l=this.subgraphLookup.get(e);if(l&&c){l.metadata={...l.metadata,...c};return}let u=this.edgeById.get(e);if(u){c?.animate!==void 0&&(u.animate=c.animate),c?.animation!==void 0&&(u.animation=c.animation),c?.curve!==void 0&&(u.interpolate=c.curve);return}let d=this.nodes.get(e);if(d===void 0&&(t===void 0&&n===void 0&&r!=null&&this.options.warn?.(`Style applied to unknown node "${e}". This may indicate a typo. The node will be created automatically.`),d={id:e,labelType:`text`,styles:[],classes:[]},this.nodes.set(e,d)),t===void 0?d.text===void 0&&(d.text=e):(d.labelType=t.type,d.text=Se(t.text.trim())),n!==void 0&&(d.type=n),r!=null)for(let e of r)d.styles.push(e);if(i!=null)for(let e of i)d.classes.push(e);if(a!==void 0&&(d.dir=a),d.props===void 0?d.props=o??{}:o!==void 0&&Object.assign(d.props,o),c===void 0)return;if(c.shape){let e=String(c.shape);if(e!==e.toLowerCase()||e.includes(`_`))throw new I(`No such shape: ${e}. Shape names should be lowercase.`,`semantic`,{type:`flowchart`});if(!k(e))throw new I(`No such shape: ${e}.`,`semantic`,{type:`flowchart`});d.type=e}let f=typeof c.label==`string`?c.label:void 0;c.label&&(d.text=String(c.label),d.labelType=L(c.labelType)),c.icon&&(d.icon=String(c.icon),!f?.trim()&&d.text===e&&(d.text=``)),c.form&&(d.form=String(c.form)),c.pos&&(d.pos=String(c.pos)),c.img&&(d.img=String(c.img),!f?.trim()&&d.text===e&&(d.text=``)),c.constraint&&(d.constraint=String(c.constraint)),c.w&&(d.assetWidth=Number(c.w)),c.h&&(d.assetHeight=Number(c.h))}addSingleLink(e,t,n,r){let i={start:e,end:t,type:void 0,text:``,labelType:`text`,classes:[],isUserDefinedId:!1,interpolate:this.defaultInterpolate},a=n?.text;a!==void 0&&(i.text=Se(a.text.trim()),i.labelType=L(a.type)),n!==void 0&&(i.type=n.type,i.stroke=n.stroke,i.length=n.length>10?10:n.length);let o=e+`\0`+t,s=this.pairCount.get(o)??0;r&&!this.edgeById.has(r)?(i.id=r,i.isUserDefinedId=!0):i.id=`L_${e}_${t}_${s===0?0:s+1}`;let c=this.options.maxEdges;if(c!==void 0&&this.edges.length>=c)throw new I(`Edge limit exceeded. The limit is ${c}.`,`limit`,{type:`flowchart`});this.edges.push(i),this.pairCount.set(o,s+1),this.edgeById.has(i.id)||this.edgeById.set(i.id,i)}addLink(e,t,n){let r=typeof n?.id==`string`?n.id.replace(`@`,``):void 0,i=e[e.length-1],a=t[0];for(let o of e)for(let e of t)this.addSingleLink(o,e,n,o===i&&e===a?r:void 0)}updateLinkInterpolate(e,t){for(let n of e)n==="default"?this.defaultInterpolate=t:this.edgeAt(n).interpolate=t}updateLink(e,t){for(let n of e){if(n==="default"){this.defaultEdgeStyle=t;continue}let e=this.edgeAt(n);e.style=t,t.length>0&&!t.some(e=>e?.startsWith(`fill`))&&t.push(`fill:none`)}}edgeAt(e){let t=this.edges[Number(e)];if(t===void 0)throw new I(`The index ${e} for linkStyle is out of bounds. Valid indices for linkStyle are between 0 and ${this.edges.length-1}. (Help: Ensure that the index is within the range of existing edges.)`,`semantic`,{type:`flowchart`});return t}addClass(e,t){let n=t.join().replace(/\\,/g,`§§§`).replace(/,/g,`;`).replace(/§§§/g,`,`).split(`;`);for(let t of e.split(`,`)){let e=this.classes.get(t);e===void 0&&(e={id:t,styles:[],textStyles:[]},this.classes.set(t,e));for(let t of n)t.includes(`color`)&&e.textStyles.push(t.replace(`fill`,`bgFill`)),e.styles.push(t)}}setDirection(e){let t=e.trim();t.includes(`<`)&&(t=`RL`),t.includes(`^`)&&(t=`BT`),t.includes(`>`)&&(t=`LR`),t.includes(`v`)&&(t=`TB`),t===`TD`&&(t=`TB`),this.direction=t}setClass(e,t){for(let n of e.split(`,`))this.nodes.get(n)?.classes.push(t),this.edgeById.get(n)?.classes.push(t),this.subgraphLookup.get(n)?.classes.push(t)}setTooltip(e,t){if(t!==void 0)for(let n of e.split(`,`))this.tooltips.set(n,t)}setLink(e,t,n){let r=t.trim();for(let t of e.split(`,`)){let e=this.nodes.get(t);e!==void 0&&(e.link=r?ie(r):void 0,e.linkTarget=n)}this.setClass(e,`clickable`)}setClickEvent(e,t,n){this.setClass(e,`clickable`)}setAccTitle(e){this.accTitle=e.replace(/^\s+/g,``)}setAccDescription(e){this.accDescr=e.replace(/\n\s+/g,`
6
+ `)}addSubGraph(e,t,n){let r=e?.text.trim(),i=n?.text??``;e!==void 0&&e===n&&/\s/.test(i)&&(r=void 0);let a=/* @__PURE__ */ new Set,o=[],s;for(let e of t)if(typeof e==`string`)e.trim()!==``&&!a.has(e)&&(a.add(e),o.push(e));else if(Array.isArray(e))for(let t of e)t.trim()!==``&&!a.has(t)&&(a.add(t),o.push(t));else s=e.value;s??=this.options.inheritDir?this.direction??this.options.direction:void 0,r??=`subGraph`+this.subCount,i||=``,this.subCount++;let c={id:r,nodes:o,title:i.trim(),classes:[],dir:s,labelType:L(n?.type)},l=this.members;c.nodes=o.filter(e=>!l.has(e)&&e!==r);for(let e of c.nodes)l.add(e);let u=this.subgraphLookup.get(r);if(u)for(let e of c.nodes)u.nodes.push(e);else this.subgraphs.push(c);return this.subgraphLookup.set(r,u??c),r}exists(e,t){for(let n of e)if(n.nodes.includes(t))return!0;return!1}makeUniq(e,t){let n=/* @__PURE__ */ new Set;for(let e of t)for(let t of e.nodes)n.add(t);return{nodes:e.nodes.filter(e=>!n.has(e))}}destructLink(e,t){let n=B(e);if(!t)return n;let r=z(t);if(r.stroke!==n.stroke)return{type:`INVALID`,stroke:`INVALID`};if(r.type===`arrow_open`)r.type=n.type;else{if(r.type!==n.type)return{type:`INVALID`,stroke:`INVALID`};r.type=`double_`+r.type}return r.type===`double_arrow`&&(r.type=`double_arrow_point`),r.length=n.length,r}subgraph(e){return this.subgraphLookup.get(e)}},H=/* @__PURE__ */ `$end.INVALID.acc_title.acc_title_value.acc_descr.acc_descr_value.acc_descr_multiline_value.SHAPE_DATA.CALLBACKNAME.CALLBACKARGS.MD_STR.STR.STYLE.DEFAULT.LINKSTYLE.INTERPOLATE.CLASSDEF.CLASS.HREF.CLICK.GRAPH.subgraph.end.LINK_TARGET.NODIR.DIR.direction_tb.direction_bt.direction_rl.direction_lr.direction_td.LINK_ID.NUM.BRKT.STYLE_SEPARATOR.COLON.AMP.SEMI.COMMA.MULT.LINK.START_LINK.EDGE_TEXT.-).TEXT.(-.STADIUMEND.STADIUMSTART.SUBROUTINEEND.SUBROUTINESTART.VERTEX_WITH_PROPS_START.TAGEND.CYLINDEREND.CYLINDERSTART.DOUBLECIRCLEEND.DOUBLECIRCLESTART.TRAPEND.INVTRAPEND.TRAPSTART.INVTRAPSTART.TAGSTART.UP.SEP.DOWN.NODE_STRING.MINUS.UNICODE_TEXT.PIPE.PE.PS.SQE.SQS.DIAMOND_STOP.DIAMOND_START.NEWLINE.SPACE.EOF`.split(`.`),U=/* @__PURE__ */ new Uint8Array(128);for(let e of`ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789!"#$%&'*+.\`?\\_/`)U[e.charCodeAt(0)]=1;var Ce=/accTitle\s*:\s*/y,W=/accDescr\s*:\s*/y,we=/accDescr\s*\{\s*/y,G=/call\s+/y,Te=/click\s+/y,Ee=/(?:\r?\n)*\s*\n/y,K=/\s*(?:LR|RL|TB|BT|TD|BR)\b/y,De=/\s*[<>^]/y,Oe=/\s*v\b/y,ke=[/.*direction\s+TB[^\n]*/y,/.*direction\s+BT[^\n]*/y,/.*direction\s+RL[^\n]*/y,/.*direction\s+LR[^\n]*/y,/.*direction\s+TD[^\n]*/y],Ae=/[\n\r\u2028\u2029]/g,q=/\s*[xo<]?--+[-xo>]\s*/y,je=/\s*[xo<]?--\s*/y,J=/\s*[xo<]?==+[=xo>]\s*/y,Me=/\s*[xo<]?==\s*/y,Y=/\s*[xo<]?-?\.+-[xo>]?\s*/y,X=/\s*[xo<]?-\.\s*/y,Z=/\s*~~~+\s*/y,Ne=/(?:\r?\n)+/y,Pe=/[^\S\n\r]+/y,Fe=/\(\s*\)/y,Ie=/\n\s*/g;function Le(e){let t=e.length,n=[],r=[],i=[],a=[],o=0,s=0,c=!0,l=e.indexOf(`direction`),u=e.indexOf(`@`),d=-1,f=0,p=0,m=-1,h=-1,g=-1,_=(t,a,o)=>{n.push(t),r.push(e.slice(a,o)),i.push(a),s=o},v=e=>{a.push(o),o=e},y=()=>{a.length>0&&(o=a.pop())},b=(t,n)=>(t.lastIndex=n,t.test(e)?t.lastIndex:-1),x=t=>e.startsWith(t,s)&&!F(e.charCodeAt(s+t.length)),ee=n=>{let r=n;if(n>=h&&n<=g)r=g;else if(M(e.charCodeAt(n))){for(;r<t&&M(e.charCodeAt(r));)r++;h=n,g=r}let i=e.charCodeAt(r);return i===120||i===111||i===60?e.charCodeAt(r+1):i},S=n=>{let r=n;if(n>=h&&n<=g)r=g;else if(M(e.charCodeAt(n))){for(;r<t&&M(e.charCodeAt(r));)r++;h=n,g=r}return e.charCodeAt(r)===126},C=()=>{e.charCodeAt(s+1)===96?(v(2),s+=2):(v(1),s++)},w=()=>{if(!S(s))return!1;let e=b(Z,s);return e<0?!1:(_(40,s,e),!0)},T=t=>{let n=e.charCodeAt(s+1);return t===40?(n===45?(v(8),_(45,s,s+2)):n===91?(v(7),_(47,s,s+2)):n===40&&e.charCodeAt(s+2)===40?(v(7),_(55,s,s+3)):(v(7),_(69,s,s+1)),!0):t===91?(n===91?(v(7),_(49,s,s+2)):n===40?(v(7),_(53,s,s+2)):n===47?(v(9),_(58,s,s+2)):n===92?(v(9),_(59,s,s+2)):(v(7),_(71,s,s+1)),!0):t===124?(v(7),_(67,s,s+1),!0):t===123&&(v(7),_(73,s,s+1),!0)},E=e=>{c&&(c=!1,v(6)),_(20,s,s+e)},D=()=>{let n=s;for(;n<t;){let r=e.charCodeAt(n);if(r<128&&U[r]===1)n++;else if(r===45&&n+1<t){let t=e.charCodeAt(n+1);if(t===62||t===45||t===46)break;n++}else break}return n!==s&&(_(64,s,n),!0)},O=e=>{let t=ee(s),n;if(t===45){if((n=b(q,s))>=0)return _(40,s,n),!0;if((n=b(je,s))>=0)return v(10),_(41,s,n),!0;if((n=b(Y,s))>=0)return _(40,s,n),!0;if((n=b(X,s))>=0)return v(12),_(41,s,n),!0}else if(t===61){if((n=b(J,s))>=0)return _(40,s,n),!0;if((n=b(Me,s))>=0)return v(11),_(41,s,n),!0}else if(t===46&&(n=b(Y,s))>=0)return _(40,s,n),!0;return e!==45&&e!==61&&e!==46&&w()},te=a=>{let o;switch(a){case 97:if(e.startsWith(`acc`,s)){if((o=b(Ce,s))>=0)return v(3),_(2,s,o),!0;if((o=b(W,s))>=0)return v(4),_(4,s,o),!0;if((o=b(we,s))>=0)return v(5),s=o,!0}break;case 64:if(e.charCodeAt(s+1)===123)return v(16),n.push(7),r.push(``),i.push(s),s+=2,!0;break;case 99:if((o=b(G,s))>=0)return v(14),s=o,!0;if(x(`classDef`))return _(16,s,s+8),!0;if(x(`class`))return _(17,s,s+5),!0;if((o=b(Te,s))>=0)return v(13),s=o,!0;break;case 34:return C(),!0;case 115:if(x(`style`))return _(12,s,s+5),!0;if(x(`swimlane-beta`))return E(13),!0;if(x(`subgraph`))return _(21,s,s+8),!0;break;case 100:if(x(`default`))return _(13,s,s+7),!0;break;case 108:if(x(`linkStyle`))return _(14,s,s+9),!0;break;case 105:if(x(`interpolate`))return _(15,s,s+11),!0;break;case 104:if(e.startsWith(`href`,s)&&M(e.charCodeAt(s+4)))return _(18,s,s+5),!0;break;case 102:if(x(`flowchart-elk`))return E(13),!0;if(x(`flowchart`))return E(9),!0;break;case 103:if(x(`graph`))return E(5),!0;break;case 101:if(x(`end`)){for(o=s+3;o<t&&M(e.charCodeAt(o));)o++;return _(22,s,o),!0}break;case 95:if(x(`_self`))return _(23,s,s+5),!0;if(x(`_blank`))return _(23,s,s+6),!0;if(x(`_parent`))return _(23,s,s+7),!0;if(x(`_top`))return _(23,s,s+4),!0}if(l!==-1&&s>=f&&(l<s&&(l=e.indexOf(`direction`,s)),l!==-1&&(d<s&&(Ae.lastIndex=s,d=Ae.test(e)?Ae.lastIndex-1:t),l<d))){for(let e=0;e<5;e++)if((o=b(ke[e],s))>=0)return _(26+e,s,o),!0;f=d}if(u!==-1&&a!==34&&!M(a)){if(s>=p){u<s&&(u=e.indexOf(`@`,s));let n=s;for(;n<t;){let t=e.charCodeAt(n);if(t===34||M(t))break;n++}if(p=n,m=-1,u!==-1&&u<n)for(let r=Math.min(n,t-1)-1;r>=u;r--){if(e.charCodeAt(r)!==64)continue;let t=e.charCodeAt(r+1);if(t!==123&&t!==34){m=r;break}}}if(m>s)return _(31,s,m+1),!0}if(a>=48&&a<=57){let n=s+1;for(;n<t;){let t=e.charCodeAt(n);if(t<48||t>57)break;n++}return _(32,s,n),!0}switch(a){case 35:return _(33,s,s+1),!0;case 58:return e.charCodeAt(s+1)===58&&e.charCodeAt(s+2)===58?_(34,s,s+3):_(35,s,s+1),!0;case 38:return _(36,s,s+1),!0;case 59:return _(37,s,s+1),!0;case 44:return _(38,s,s+1),!0;case 42:return _(39,s,s+1),!0;case 120:case 111:return O(a)||D();case 60:return O(a)||_(60,s,s+1),!0;case 45:return O(a)||D()||_(65,s,s+1),!0;case 61:return O(a);case 46:return O(a)||D();case 126:return w();case 40:return T(a);case 91:return e.charCodeAt(s+1)===124?(_(50,s,s+2),!0):T(a);case 124:case 123:return T(a);case 62:return v(7),_(51,s,s+1),!0;case 94:return _(61,s,s+1),!0;case 92:return e.charCodeAt(s+1)===124?(_(62,s,s+2),!0):D();case 118:return F(e.charCodeAt(s+1))?D():(_(63,s,s+1),!0)}return M(a)?O(a)?!0:(o=b(Ne,s))>=0?(_(74,s,o),!0):(o=b(Pe,s))>=0&&(_(75,s,o),!0):a<128?D():oe(a)?(_(66,s,s+1),!0):!1},ne=(n,r,i,a)=>{if(n===34)return C(),!0;let o=ee(s);if(o===i||o===a){let e=b(r,s);if(e>=0)return y(),_(40,s,e),!0}if(n===i&&(i!==45||e.charCodeAt(s+1)===45))return!1;let c=s+1;for(;c<t;){let t=e.charCodeAt(c);if(t===34)break;if(t===i){if(i!==45||e.charCodeAt(c+1)===45)break}else if(t===120||t===111||t===60||t===a||M(t)){let e=ee(c);if((e===i||e===a)&&b(r,c)>=0)break}c++}return _(42,s,c),!0};e:for(;;){if(s>=t){let e=-1;switch(o){case 0:e=76;break;case 3:e=3;break;case 4:e=5;break;case 5:e=6;break;case 13:e=19;break;case 14:e=8;break;case 15:e=9}e!==-1&&_(e,t,t);break}let a=e.charCodeAt(s),c=!0;switch(o){case 0:c=te(a);break;case 1:if(a===34)e.charCodeAt(s+1)===96?(v(2),s+=2):(y(),s++);else{let n=e.indexOf(`"`,s);_(11,s,n===-1?t:n)}break;case 2:if(a===96)e.charCodeAt(s+1)===34?(y(),s+=2):c=!1;else if(a===34)C();else{let n=s+1;for(;n<t;){let t=e.charCodeAt(n);if(t===96||t===34)break;n++}_(10,s,n)}break;case 3:case 4:{let n=e.indexOf(`
7
+ `,s);n===-1&&(n=t);let r=o===3?3:5;y(),_(r,s,n);break}case 5:if(a===125)y(),s++;else{let n=e.indexOf(`}`,s);n===-1&&(n=t),_(6,s,n)}break;case 6:{let e;a===34?C():(e=b(Ee,s))>=0?(y(),_(24,s,e)):(e=b(K,s))>=0||(e=b(De,s))>=0||(e=b(Oe,s))>=0?(y(),_(25,s,e)):c=w()||T(a);break}case 7:{let n=e.charCodeAt(s+1);switch(a){case 34:C();break;case 40:case 91:case 123:T(a);break;case 93:y(),n===41?_(46,s,s+2):n===93?_(48,s,s+2):_(70,s,s+1);break;case 41:y(),n===93?_(52,s,s+2):n===41&&e.charCodeAt(s+2)===41?_(54,s,s+3):_(68,s,s+1);break;case 124:y(),_(67,s,s+1);break;case 125:y(),_(72,s,s+1);break;default:{if((a===126||M(a))&&w())break;let n=s+1;for(;n<t;){let t=e.charCodeAt(n);if(t===91||t===93||t===40||t===41||t===123||t===125||t===124||t===34)break;n++}_(44,s,n)}}break}case 8:{let n=e.charCodeAt(s+1);if(a===34)C();else{if((a===126||M(a))&&w())break;if((a===45||a===47||a===41)&&n===41)y(),_(43,s,s+2);else if(a===40||a===91||a===123)T(a);else if(a===41||a===93||a===125)c=!1;else{let n=s+1;for(;n<t;){let t=e.charCodeAt(n);if(t===34||t===40||t===41||t===91||t===93||t===123||t===125||(t===45||t===47)&&e.charCodeAt(n+1)===41||(t===126||M(t))&&S(n)&&b(Z,n)>=0)break;n++}_(44,s,n)}}break}case 9:{let n=e.charCodeAt(s+1);if(a===34){C();break}if((a===126||M(a))&&w())break;switch(a){case 40:n===45||n===91||n===40&&e.charCodeAt(s+2)===40?T(a):n===93?(y(),_(56,s,s+2)):T(a);break;case 91:case 123:T(a);break;case 92:n===93?(y(),_(56,s,s+2)):_(44,s,s+1);break;case 47:n===93?(y(),_(57,s,s+2)):_(44,s,s+1);break;case 93:case 41:n===93?(y(),_(56,s,s+2)):c=!1;break;case 125:c=!1;break;default:{if((a===63||a===61)&&n===93){y(),_(56,s,s+2);break}let r=s+1;for(;r<t;){let t=e.charCodeAt(r);if(t===92||t===91||t===93||t===40||t===41||t===123||t===125||t===47)break;r++}_(44,s,r)}}break}case 10:c=ne(a,q,45,-1);break;case 11:c=ne(a,J,61,-1);break;case 12:c=ne(a,Y,46,45);break;case 13:if(a===34)C();else if(M(a))y(),s++;else{let n=s+1;for(;n<t&&!M(e.charCodeAt(n));)n++;_(19,s,n)}break;case 14:if(a===40){let e=b(Fe,s);y(),e>=0?s=e:(v(15),s++)}else{let n=e.indexOf(`(`,s);n===-1&&(n=t),_(8,s,n)}break;case 15:if(a===41)y(),s++;else{let n=e.indexOf(`)`,s);n===-1&&(n=t),_(9,s,n)}break;case 16:if(a===34)v(17),_(7,s,s+1);else if(a===125)y(),s++;else if(a===94)c=!1;else{let n=s+1;for(;n<t;){let t=e.charCodeAt(n);if(t===125||t===94||t===34)break;n++}_(7,s,n)}break;case 17:if(a===34)y(),_(7,s,s+1);else{let a=e.indexOf(`"`,s);a===-1&&(a=t),n.push(7),r.push(e.slice(s,a).replace(Ie,`<br/>`)),i.push(s),s=a}}if(!c)return n.push(1),r.push(``),i.push(s),{types:n,texts:r,starts:i};continue e}return n.push(0),r.push(``),i.push(t),{types:n,texts:r,starts:i}}var Q=/* @__PURE__ */ new Uint8Array(77);for(let e of[32,64,63,65,13,38,35,36,33,39,66])Q[e]=1;var Re=/* @__PURE__ */ new Uint8Array(77);for(let e of[32,66,64,25,63,65,38,35,36,33,39])Re[e]=1;var ze=/* @__PURE__ */ new Uint8Array(77);for(let e of[32,64,75,65,36,66,35,39,33,12,14,16,17,19,20,25,21,22,63,61,41])ze[e]=1;var Be=/* @__PURE__ */ new Uint8Array(77);for(let e of[32,64,35,75,33,12])Be[e]=1;var Ve=`'UNICODE_TEXT', 'TEXT', 'TAGSTART'`,He=[],Ue=/}\s*\n/g;function We(e,t){let n=e.includes(`}`)?e.replace(Ue,`}
8
+ `):e,{types:r,texts:i,starts:a}=Le(n),o=0,s,c=t=>{let i=r[o],s=n===e?a[o]:P([xe(e,Ue,2)],a[o]);throw i===1?A(`flowchart`,e,s,``,!0):A(`flowchart`,e,s,`Expecting ${t}, got '${H[i]}'`)},l=(e,t=``)=>(r[o]!==e&&c(`'${H[e]}'${t?`, `+t:``}`),i[o++]),u=()=>{let e=r[o];e!==74&&e!==37&&e!==76&&c(`'SEMI', 'NEWLINE', 'EOF'`),o++},d=()=>{Q[r[o]]===0&&c(`'NODE_STRING'`);let e=i[o++];for(;Q[r[o]]===1;)e+=i[o++];return e},f=()=>{Re[r[o]]===0&&c(`'NODE_STRING'`);let e=i[o++];for(;Re[r[o]]===1;)e+=i[o++];return e},p=()=>{let e=r[o],t;if(e===11)t=`string`;else if(e===10)t=`markdown`;else if(e===44||e===60||e===51||e===66)t=`text`;else return c(`${Ve}, 'TAGEND', 'STR', 'MD_STR'`);let n=i[o++];for(;;){let e=r[o];if(e!==44&&e!==60&&e!==51&&e!==66)break;n+=i[o++]}return{text:n,type:t}},m=e=>{l(e,Ve)},h=()=>{let e=r[o],t;if(e===11)t=`string`;else if(e===10)t=`markdown`;else if(e===42||e===66)t=`text`;else return c(`'EDGE_TEXT', 'STR', 'MD_STR'`);let n=i[o++];for(;r[o]===42||r[o]===66;)n+=i[o++];return{text:n,type:t}},g=()=>{let e=r[o],t;if(e===11)t=`text`;else if(e===10)t=`markdown`;else if(ze[e]===1)t=`text`;else return c(`'NODE_STRING', 'STR', 'MD_STR'`);let n=i[o++];for(;ze[r[o]]===1;)n+=i[o++];return{text:n,type:t}},_=()=>{let e=i[o++];for(;r[o]===7;)e+=i[o++];return e},v=()=>{let e=d(),n;switch(r[o]){case 71:o++,n=p(),m(70),t.addVertex(e,n,`square`);break;case 55:o++,n=p(),m(54),t.addVertex(e,n,`doublecircle`);break;case 69:o++,r[o]===69?(o++,n=p(),m(68),l(68),t.addVertex(e,n,`circle`)):(n=p(),m(68),t.addVertex(e,n,`round`));break;case 45:o++,n=p(),m(43),t.addVertex(e,n,`ellipse`);break;case 47:o++,n=p(),m(46),t.addVertex(e,n,`stadium`);break;case 49:o++,n=p(),m(48),t.addVertex(e,n,`subroutine`);break;case 50:{o++;let r=l(64);l(35);let i=l(64);l(67),n=p(),m(70),t.addVertex(e,n,`rect`,void 0,void 0,void 0,{[r]:i});break}case 53:o++,n=p(),m(52),t.addVertex(e,n,`cylinder`);break;case 73:o++,r[o]===73?(o++,n=p(),m(72),l(72),t.addVertex(e,n,`hexagon`)):(n=p(),m(72),t.addVertex(e,n,`diamond`));break;case 51:o++,n=p(),m(70),t.addVertex(e,n,`odd`);break;case 58:o++,n=p(),r[o]===57?(o++,t.addVertex(e,n,`lean_right`)):(m(56),t.addVertex(e,n,`trapezoid`));break;case 59:o++,n=p(),r[o]===56?(o++,t.addVertex(e,n,`lean_left`)):(m(57),t.addVertex(e,n,`inv_trapezoid`));break;default:t.addVertex(e)}return e},y=()=>{let e=v();return r[o]===34&&(o++,t.setClass(e,d())),e},b=()=>{let e=[y()];for(s=void 0;;){let n=r[o]===7?_():void 0;if(r[o]!==75)return s=n,e;do o++;while(r[o]===75);if(r[o]!==36)return n!==void 0&&c(`'AMP'`),e;o++,r[o]!==75&&c(`'SPACE'`);do o++;while(r[o]===75);let i=y();n!==void 0&&t.addVertex(e[e.length-1],void 0,void 0,void 0,void 0,void 0,void 0,n),e.push(i)}},x=()=>{let e;if(r[o]===31&&(e=i[o++]),r[o]===40){let n=t.destructLink(i[o++]);return e!==void 0&&(n.id=e),r[o]===67&&(o++,n.text=p(),m(67),r[o]===75&&o++),n}if(r[o]===41){let n=i[o++],r=h(),a=l(40,`'EDGE_TEXT'`),s=t.destructLink(a,n);return s.text=r,e!==void 0&&(s.id=e),s}return c(`'LINK', 'START_LINK'`)},ee=e=>{let n=b();s!==void 0&&t.addVertex(n[n.length-1],void 0,void 0,void 0,void 0,void 0,void 0,s);let i=n;for(;;){let a=r[o];if(a!==40&&a!==41&&a!==31)return i;let c=x(),l=b();s!==void 0&&t.addVertex(l[l.length-1],void 0,void 0,void 0,void 0,void 0,void 0,s),t.addLink(n,l,c),e&&(i=l.concat(i)),n=l}},S=()=>{Be[r[o]]===0&&c(`'NODE_STRING', 'NUM', 'COLON', 'BRKT'`);let e=i[o++];for(;Be[r[o]]===1;)e+=i[o++];return e},C=()=>{let e=[S()];for(;r[o]===38;)o++,e.push(S());return e},w=()=>{o++,l(75);let e;if(r[o]===13)e=[i[o++]];else for(e=[l(32,`'DEFAULT'`)];r[o]===38;)o++,e.push(l(32));if(l(75),r[o]!==15){t.updateLink(e,C());return}o++,l(75);let n=f();if(r[o]===75){o++;let r=C();t.updateLinkInterpolate(e,n),t.updateLink(e,r)}else t.updateLinkInterpolate(e,n)},T=(e,n)=>{if(r[o]!==75){t.setLink(e,n);return}if(o++,r[o]===23){t.setLink(e,n,i[o++]);return}let a=l(11,`'LINK_TARGET'`);r[o]===75?(o++,t.setLink(e,n,l(23))):t.setLink(e,n),t.setTooltip(e,a)},E=()=>{let e=i[o++];switch(r[o]){case 8:{let n=i[o++],a=r[o]===9,s=a?i[o++]:void 0,c;r[o]===75&&(o++,c=l(11)),a?t.setClickEvent(e,n,s):t.setClickEvent(e,n),c!==void 0&&t.setTooltip(e,c);return}case 18:o++,T(e,l(11));return;case 11:T(e,i[o++]);return;default:{let n=f();if(r[o]===75){o++;let r=l(11);t.setClickEvent(e,n),t.setTooltip(e,r)}else t.setClickEvent(e,n)}}},D=()=>{o++;let e=r[o];if(e===74||e===37||e===76)return o++,{id:void 0,title:void 0,list:[],collect:!1};l(75,`'SEMI', 'NEWLINE', 'EOF'`);let t=g(),n=t;return r[o]===71&&(o++,n=p(),m(70)),e=r[o],e!==74&&e!==37&&e!==76&&c(`'SEMI', 'NEWLINE', 'EOF', 'SQS'`),o++,{id:t,title:n,list:[],collect:!1}},O=e=>{let n=r[o];switch(n){case 12:{o++,l(75);let e=d();return l(75),t.addVertex(e,void 0,void 0,C()),u(),He}case 14:return w(),u(),He;case 16:{o++,l(75);let e=d();return l(75),t.addClass(e,C()),u(),He}case 17:{o++,l(75);let e=d();return l(75),t.setClass(e,d()),u(),He}case 19:return E(),u(),He;case 26:case 27:case 28:case 29:case 30:return o++,{stmt:`dir`,value:Ge[n-26]};case 2:{o++;let e=l(3).trim();return t.setAccTitle(e),e}case 4:{o++;let e=l(5).trim();return t.setAccDescription(e),e}case 6:{let e=i[o++].trim();return t.setAccDescription(e),e}default:{Q[n]===0&&c(Ke);let t=ee(e);return u(),t}}},te=()=>{let e=[],n=[],a=!1;for(;;){let s=r[o];if(s===0)break;if(s===22){let r=e.pop();if(r===void 0)break;o++;let i=t.addSubGraph(r.id,n,r.title);n=r.list,a=r.collect,a&&n.push(i)}else if(s===37||s===74||s===75||s===76)a&&n.push(i[o]),o++;else if(s===21){let t=D();t.list=n,t.collect=a,e.push(t),n=[],a=!0}else{let e=O(a);a&&(!Array.isArray(e)||e.length>0)&&n.push(e)}}e.length>0&&c(`'end'`)};for(;r[o]===75||r[o]===74;)o++;if(l(20,`'SPACE', 'NEWLINE'`),r[o]===24)o++,t.setDirection(`TB`);else{let e=l(25,`'NODIR'`),n=r[o];if(n===75){do o++;while(r[o]===75);n=r[o],n!==74&&c(`'NEWLINE', 'SPACE'`)}else n!==37&&n!==74&&c(`'SEMI', 'NEWLINE', 'SPACE'`);o++,t.setDirection(e)}te(),r[o]!==0&&c(Ke)}var Ge=[`TB`,`BT`,`RL`,`LR`,`TD`],Ke=`'SEMI', 'NEWLINE', 'SPACE', 'EOF', 'subgraph', 'acc_title', 'acc_descr', 'acc_descr_multiline_value', 'STYLE', 'LINKSTYLE', 'CLASSDEF', 'CLASS', 'CLICK', 'NODE_STRING'`;function qe(e){if(e.img)return`imageSquare`;if(e.icon)return e.form===`circle`?`iconCircle`:e.form===`square`?`iconSquare`:e.form===`rounded`?`iconRounded`:`icon`;switch(e.type){case`square`:case void 0:return`squareRect`;case`round`:return`roundedRect`;default:return e.type}}function Je(e){switch(e){case`arrow_point`:case`arrow_circle`:case`arrow_cross`:return[`none`,e];case`double_arrow_point`:case`double_arrow_circle`:case`double_arrow_cross`:{let t=e.replace(`double_`,``);return[t,t]}}return[`none`,`arrow_point`]}function Ye(e,t){let n=[],r=[],i=e.subgraphs,a=t=>{let n=[];for(let r of t){let t=e.classes.get(r);if(t!==void 0){for(let e of t.styles)n.push(e.trim());for(let e of t.textStyles)n.push(e.trim())}}return n},o=/* @__PURE__ */ new Map;for(let t of i)for(let n of t.nodes)e.subgraph(n)&&o.set(n,t.id);let s=/* @__PURE__ */ new Map,c=/* @__PURE__ */ new Map;for(let e of i){let t=o.get(e.id);if(t===void 0)continue;let n=c.get(t);n?n.push(e.id):c.set(t,[e.id])}let l=0;for(let e of i){if(o.has(e.id))continue;let t=[e.id];for(;t.length>0;){let e=t.pop();if(s.has(e))continue;s.set(e,l++);let n=c.get(e);if(n)for(let e=n.length-1;e>=0;e--)t.push(n[e])}}let u=t=>e.subgraph(t)?.metadata?.view===`collapsed`,d=!1;for(let e of i)e.metadata?.view===`collapsed`&&(d=!0);let f=/* @__PURE__ */ new Map,p=e=>{let t=[],n=/* @__PURE__ */ new Set,r=e;for(;r!==void 0&&!f.has(r)&&!n.has(r);)n.add(r),t.push(r),r=o.get(r);let i=r===void 0?void 0:f.get(r);for(let e=t.length-1;e>=0;e--)i===void 0&&u(t[e])&&(i=t[e]),f.set(t[e],i);return i},m=/* @__PURE__ */ new Set,h=/* @__PURE__ */ new Map;for(let e of d?i:[]){let t=p(e.id);if(t!==void 0){e.id!==t&&(m.add(e.id),h.set(e.id,t));for(let n of e.nodes)n!==t&&(m.add(n),h.set(n,t))}}let g=/* @__PURE__ */ new Map,_=/* @__PURE__ */ new Set;for(let e=i.length-1;e>=0;e--){let t=i[e];if(!m.has(t.id)){t.nodes.length>0&&_.add(t.id);for(let e of t.nodes)g.set(e,t.id)}}let v=/* @__PURE__ */ new Map;for(let e=i.length-1;e>=0;e--){let t=i[e];if(m.has(t.id))continue;let r=t.metadata?.view===`collapsed`,o={id:t.id,label:t.title,labelType:t.labelType,parentId:g.get(t.id),cssStyles:[],cssCompiledStyles:a(t.classes),cssClasses:t.classes.join(` `),shape:r?`collapsedGroup`:`rect`,dir:t.dir,isGroup:!r,colorIndex:s.get(t.id)};r||(o.metadata=t.metadata),n.push(o),v.set(t.id,o)}for(let t of e.nodes.values()){if(m.has(t.id))continue;let r=v.get(t.id);if(r){r.cssStyles=t.styles,r.cssCompiledStyles=a(t.classes),r.cssClasses=t.classes.join(` `);continue}let i=_.has(t.id),o={id:t.id,label:t.text,labelType:t.labelType,parentId:g.get(t.id),cssStyles:t.styles,cssCompiledStyles:a([`default`,`node`,...t.classes]),cssClasses:`default `+t.classes.join(` `),dir:t.dir,link:t.link,linkTarget:t.linkTarget,tooltip:e.tooltips.get(t.id),icon:t.icon,pos:t.pos,img:t.img,assetWidth:t.assetWidth,assetHeight:t.assetHeight,constraint:t.constraint,isGroup:i,shape:i?`rect`:qe(t)};n.push(o)}return e.edges.forEach((n,i)=>{let o=h.get(n.start)??n.start,s=h.get(n.end)??n.end;if(o===s&&(h.has(n.start)||h.has(n.end)))return;let[c,l]=Je(n.type),u=[...e.defaultEdgeStyle??[]];n.style&&u.push(...n.style);let d=n.stroke===`invisible`||n.type===`arrow_open`;r.push({id:n.id||`L_${o}_${s}_${i}`,isUserDefinedId:n.isUserDefinedId,start:o,end:s,type:n.type??`normal`,label:n.text,labelType:n.labelType,thickness:n.stroke,pattern:n.stroke,minlen:n.length,classes:n.stroke===`invisible`?``:`edge-thickness-normal edge-pattern-solid flowchart-link`,arrowTypeStart:d?`none`:c,arrowTypeEnd:d?`none`:l,cssCompiledStyles:a(n.classes),style:u,animate:n.animate,animation:n.animation,curve:n.interpolate||e.defaultInterpolate||t})}),{nodes:n,edges:r}}var Xe=40,Ze=16,Qe=48,$e=20,et=26,tt=` fill="var(--_s)" stroke="var(--_b)"`,nt=` stroke="var(--_b)"`;function rt(e,t,n){let r=e[t];return typeof r==`number`&&r>0?Math.min(r,2e3):n}function $(e,t){return e!==void 0&&e>0&&e<=4e3?e:t}function it(e,t,n,r){let i=i=>s(n,a=>at(e,t,n,r,i,a));return o(e.direction)?l(n,i):i(!1)}function at(o,s,l,k,oe,A){let M=A?12:$e,N=k?s[k.type]:void 0,P=typeof N==`object`&&N&&!Array.isArray(N)?N:s.flowchart??{},F=Ye(o,typeof P.curve==`string`?P.curve:void 0);k?.prepare(F);let I=l.fontSize??16,xe=Math.round(I*.875),L=l.measurer??be(l.fontFamily,l.fontFamilyMono),Se=Math.min(rt(P,`wrappingWidth`,200),k&&A?100:1/0),R=l.padding??8,z=l.icons,B=/* @__PURE__ */ new Map,V=[],H=[];F.nodes.forEach((e,t)=>B.set(e.id,t));for(let e of F.nodes){let n=r(e.cssStyles.length>0?e.cssCompiledStyles.concat(e.cssStyles):e.cssCompiledStyles),i=+!!n.bold|(n.italic?2:0),a=e.labelType===`markdown`,o=n.fontSize??I,s,u;if(e.isGroup){let r=t(e.label,a,L,o,k&&A?Math.max(80,c(l)/2):4e3,i);s={node:e,style:n,label:r,shape:`group`,w:0,h:0,dy:0,loops:0},u=y(0,0),u.isGroup=!0,u.dir=e.dir?b(e.dir):void 0,u.padX=M,u.padTop=r.height>0?r.height+16:$e,u.padBottom=M,u.minW=r.width+2*M-12}else{let r=ae(e.shape),c=e.img||e.icon||se(r)?e.label:void 0,l=t(c,a,L,o,Se,i),d,f,p=0;if(e.img||e.icon){let t=e.img?80:48,n=$(e.assetWidth,t),r=$(e.assetHeight,t);d=Math.max(n,l.width+8),f=r+(l.height>0?l.height+6:0),p=e.pos===`t`?-r/2:r/2,l.height===0&&(p=0)}else{let e=ue(r,l.width,l.height);d=e.w,f=e.h,p=e.dy}s={node:e,style:n,label:l,shape:r,w:d,h:f,dy:p,loops:0},u=y(d,f)}u.seq=V.length,V.push(s),H.push(u)}F.nodes.forEach((e,t)=>{H[t].parent=e.parentId===void 0?-1:B.get(e.parentId)??-1}),x(H,F.edges.map(e=>[B.get(e.start)??-1,B.get(e.end)??-1]));let U=oe?`TB`:b(o.direction),Ce=e=>{let t;for(let n=H[e].parent,r=0;n>=0&&t===void 0&&r<1e4;n=H[n].parent,r++)t=H[n].dir;return t??=U,t===`LR`||t===`RL`};V.forEach((e,t)=>{e.node.isGroup?H[t].span=1/0:!e.node.img&&!e.node.icon&&(H[t].span=de(e.shape,e.w,e.h,Ce(t)))});let W=[],we=[],G=[];for(let e of F.edges){let n=B.get(e.start),r=B.get(e.end);if(n===void 0||r===void 0)continue;let i=t(e.label,e.labelType===`markdown`,L,xe,Se);n===r&&(V[n].loops++,Ce(n)?H[n].h+=2*(et+(i.height>0?i.height+8:0)):H[n].w+=2*(et+(i.width>0?i.width+12:0))),G.push(e),we.push(i),W.push({src:n,dst:r,minlen:e.minlen??1,labelW:i.width>0?i.width+12:0,labelH:i.height>0?i.height+4:0,route:[],labelX:0,labelY:0})}let Te={nodeSep:rt(P,`nodeSpacing`,Xe)*(A?.5:1),edgeSep:Ze,rankSep:rt(P,`rankSpacing`,Qe)*(A?.75:1),portSep:20,tracks:typeof P.curve==`string`&&/^step/.test(P.curve),straight:P.curve===`linear`,headRoom:_(`arrow_point`)},Ee=k?k.layout(H,W,U,Te,A):ee(H,W,U,Te),K=C(o.title,L,I,A?c(l):4e3),De=K.height>0?K.height+12:0,Oe=Math.max(Ee.width,K.width),ke=R+(Oe-Ee.width)/2,Ae=R+De;S(H,W,ke,Ae);let q=Math.ceil(Oe+2*R),je=Math.ceil(Ee.height+De+2*R),J=[],Me=/* @__PURE__ */ new Map,Y=!1;for(let e of H)e.isGroup&&(Y=!0);if(Y)for(let e of W)E(Me,e.route);let X=``,Z=``,Ne=``,Pe=[];for(let e=0;e<V.length;e++){let t=V[e],r=H[e],o=t.node,s=r.x,c=r.y,u=n(o.cssClasses.replace(/^default\s?/,``)),d=ge(o.id);if(r.isGroup&&k?.drawGroup&&r.parent<0){ve(t.style.shape)&&k.filledBox&&Pe.push({box:k.filledBox(r,U),shape:t.style.shape}),X+=k.drawGroup(r,t.label,t.style,u,d,U,z);continue}if(r.isGroup){ve(t.style.shape)&&Pe.push({box:[s-r.w/2,c-r.h/2,s+r.w/2,c+r.h/2],shape:t.style.shape});let n=T(r,t.label.width,Me,M),o=c-r.h/2+8+t.label.height/2,l=w(r,t.label.width,n,Me),f=` class="pele-cluster-label"${l?` fill="var(--_m)"`:ye(t.style,`var(--_m)`)}${t.style.text}`;l&&(Z+=D(t.label,n,o,f,d,H,e,z)),X+=`<g class="pele-cluster${u}" data-id="${d}"><rect x="${j(s-r.w/2)}" y="${j(c-r.h/2)}" width="${j(r.w)}" height="${j(r.h)}" fill="var(--_a)"${a(t.style.shape)?``:` fill-opacity="0.5"`} stroke="var(--_b)"${i(t.style.shape)}/>`+(l?``:_e(t.label,n,o,f,z))+`</g>`;continue}let f=t.w,p=t.h,m,h=``;if(o.img){let e=$(o.assetWidth,80),n=$(o.assetHeight,80),r=t.label.height>0?o.pos===`t`?p/2-n:-p/2:-n/2,i=re(ie(o.img),l);m=i===void 0?``:`<image href="${he(i)}" x="${j(-e/2)}" y="${j(r)}" width="${j(e)}" height="${j(n)}" preserveAspectRatio="${o.constraint===`on`?`xMidYMid meet`:`none`}"/>`}else if(o.icon){let e=$(o.assetHeight,48),n=t.label.height>0?o.pos===`t`?p/2-e:-p/2:-e/2,r=o.shape===`icon`?``:o.shape===`iconCircle`?`<circle cy="${j(n+e/2)}" r="${j(e/2)}"${tt}${t.style.shape}/>`:`<rect x="${j(-e/2)}" y="${j(n)}" width="${j(e)}" height="${j(e)}" rx="${o.shape===`iconRounded`?8:0}"${tt}${t.style.shape}/>`,i=e*.6;m=r+`<svg class="pele-icon" data-icon="${ge(o.icon)}" x="${j(-i/2)}" y="${j(n+(e-i)/2)}" width="${j(i)}" height="${j(i)}" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round">${z?.(o.icon)??``}</svg>`}else m=fe(t.shape,f,p,tt+t.style.shape,nt+t.style.line),pe(t.shape)&&(h=ye(t.style));let g=_e(t.label,0,t.dy,` class="pele-label"${h}${t.style.text}`,z);if(/ internal-link(?: |$)/.test(u+` `)&&o.label&&l.links!==!1){let e=me(o.label),t=ne(e,l),n=he(e);g=`<a class="internal-link"${t?` href="${n}"${te(l)}`:``} data-href="${n}">${g}</a>`,J.push({id:o.id,href:e,internal:!0})}let _=m+g;o.tooltip&&(_=`<title>${ge(o.tooltip)}</title>`+_),o.link&&(_=O(_,o.link,o.id,J,l,o.linkTarget?` target="${he(o.linkTarget)}"`:``)),Ne+=`<g class="pele-node pele-shape-${t.shape}${u}" data-id="${d}" transform="translate(${j(s)},${j(c)})">${_}</g>`}let Fe=g();for(let e=0;e<W.length;e++){let t=W[e];t.src===t.dst||G[e].thickness===`invisible`||t.route.length<6||(Fe.add(t.src,le(t.route,0,H[t.src]),G[e].arrowTypeStart),Fe.add(t.dst,le(t.route,t.route.length-3,H[t.dst]),G[e].arrowTypeEnd))}let Ie=``,Le=``,Q=``,Re=/* @__PURE__ */ new Map;for(let e=0;e<W.length;e++){let t=W[e],i=G[e],a=we[e],o=i.style.length>0||i.cssCompiledStyles.length>0?r(i.cssCompiledStyles.concat(i.style)):void 0;if(i.thickness!==`invisible`){let e=i.arrowTypeStart,r=i.arrowTypeEnd,a;if(t.src===t.dst){let e=V[t.src],n=Re.get(t.src)??0;Re.set(t.src,n+1),a=p(H[t.src],e.w,e.h,n,Ce(t.src),et,_(r),t)}else{let n=t.route.slice(),o=Fe.of(t.src,le(n,0,H[t.src])),s=Fe.of(t.dst,le(n,n.length-3,H[t.dst]));ce(n,0,V[t.src],H[t.src]),ce(n,n.length-3,V[t.dst],H[t.dst]),a=f(n,i.curve,_(e),_(r),o,s)}let s=h(a.d,[a.sx,a.sy,a.ex,a.ey],Pe,o?.line,a.tokens),c=s||(o?.stroke&&i.thickness!==`invisible`?he(o.stroke):`var(--_l)`),l=``;i.thickness===`thick`?l+=` stroke-width="2.5"`:i.thickness===`dotted`&&(l+=` stroke-dasharray="3 4"`);let d=n(i.classes.replace(/edge-thickness-normal|edge-pattern-solid|flowchart-link/g,``));s===``&&(Ie+=u(a,e,r,o?.line,i.thickness===`thick`)),Le+=`<g class="pele-edge${d}" data-id="${ge(i.id)}"${s?` stroke="${s}"`:``}${o?.line??``}><path d="${a.d}"${l}/>`+v(e,a.sx,a.sy,a.sdx,a.sdy,c)+v(r,a.ex,a.ey,a.edx,a.edy,c)+`</g>`}if(a.width>0){let e=t.labelX,n=t.labelY;Q+=m(i.id,a,e,n,o?.text??``,z)}}return{svg:e(k?.type??`flowchart`,q,je,I,l,o,_e(K,q/2,R+K.height/2,` class="pele-title" font-weight="var(--_tw)"`)+(X?`<g class="pele-clusters">${X}</g>`:``)+d(Ie)+(Le?`<g class="pele-edges" fill="none" stroke="var(--_l)" stroke-linecap="round">${Le}</g>`:``)+(Z?`<g class="pele-cluster-titles">${Z}</g>`:``)+(Q?`<g class="pele-edge-labels" font-size="${xe}">${Q}</g>`:``)+`<g class="pele-nodes">${Ne}</g>`),width:q,height:je,links:J}}var ot={type:`flowchart`,math:!0,parse(e,t,n,r,i){let a=new V({inheritDir:(t.flowchart??{}).inheritDir===!0,maxEdges:i.maxEdges});return n&&(a.title=n),We(e,a),a},render:it};export{ot as n,it as t};
@@ -0,0 +1 @@
1
+ import{B as e,I as t,S as n,i as r,k as i,r as a}from"./ui-CFB4wQfF.js";import{o}from"./artifacts-DU9uRgs1.js";import{it as s,rt as c}from"./index-D-xG9nrc.js";import{t as l}from"./ArtifactWorkbench-CuHgARMk.js";var u=i(`<div class="feature-page av-page">`),d=i(`<a class="icon-btn av-back"href=/artifacts aria-label="All artifacts"title="All artifacts">`);function f(i){return(()=>{var f=u();return n(f,e(l,{get id(){return i.id},layout:`page`,get lead(){return[e(t,{get when(){return c()},get children(){return e(r,{icon:`menu`,label:`Open sidebar`,onClick:s})}}),(()=>{var t=d();return n(t,e(a,{name:`back`})),t})()]},get actions(){return e(r,{class:`av-wide`,icon:`split`,label:`Open in pane`,onClick:()=>o(i.id)})}})),f})()}export{f as default};
@@ -0,0 +1 @@
1
+ import{B as e,G as t,S as n,T as r,k as i,r as a}from"./ui-CFB4wQfF.js";import{t as o}from"./ArtifactWorkbench-CuHgARMk.js";var s=i(`<a class=icon-btn aria-label="Full page"title="Open the artifact's full page">`);function c(i){return e(o,{get id(){return i.artifactID},layout:`pane`,onArtifact:e=>i.onTitle?.(e.title||`Untitled`),get actions(){return(()=>{var o=s();return n(o,e(a,{name:`expand`})),t(()=>r(o,`href`,`/artifacts/${encodeURIComponent(i.artifactID)}`)),o})()},get trailing(){return i.paneTools}})}export{c as ArtifactPane};
@@ -0,0 +1,6 @@
1
+ import{$ as e,A as t,B as n,C as r,E as i,F as a,G as o,I as s,J as c,N as l,O as u,P as d,Q as f,R as p,S as m,T as h,U as g,W as _,_ as v,a as y,b,et as x,g as S,i as C,k as w,r as T,tt as E,u as D,x as O,y as k}from"./ui-CFB4wQfF.js";import{B as A,H as j,L as M,U as N,V as P,j as F,k as I,z as L}from"./toast-Cuu2K0hx.js";import{n as R,o as z}from"./artifacts-DU9uRgs1.js";import{B as ee,F as B,G as te,H as V,I as ne,J as H,K as re,L as ie,M as ae,N as oe,P as se,Q as ce,R as le,U as ue,V as de,W as fe,X as pe,Y as U,Z as me,at as he,et as ge,j as _e,q as ve,st as ye,z as be}from"./index-D-xG9nrc.js";import{c as xe,i as Se,n as Ce,r as we,t as Te}from"./source-BWlvaODa.js";var Ee=`ai-actions`,De=16,Oe=[`ask`,`propose-edit`,`run-action`],ke=[`queued`,`running`,`succeeded`,`failed`,`cancelled`],Ae=[`starting`,`waiting`,`offline`,`ready`,`ended`,`failed`],je=/[\u0000-\u0008\u000b\u000c\u000e-\u001f\u007f]/,W=e=>typeof e==`object`&&!!e&&!Array.isArray(e),G=e=>typeof e==`string`&&e.length>0,Me=e=>typeof e==`number`&&Number.isFinite(e),Ne=(e,t)=>typeof t==`string`&&e.includes(t),Pe=e=>e.replace(/\/+$/,``).split(`/`).pop()||e;function Fe(e){if(W(e)&&Ne(Ae,e.status)){if(e.kind===`session`&&G(e.address))return e;if(e.kind===`launch`&&G(e.machine)&&G(e.repo))return{harness:``,mode:`checkout`,...e}}}function Ie(e){if(!W(e)||!Ne([`pending`,`applied`,`conflict`],e.state)||!Array.isArray(e.files))return;let t=e.files.filter(e=>W(e)&&G(e.mediaType)&&Me(e.bytes)&&G(e.hash));return{state:e.state,files:t,...Array.isArray(e.keep)?{keep:e.keep.filter(G)}:{},...G(e.entry)?{entry:e.entry}:{},...G(e.appliedRevisionID)?{appliedRevisionID:e.appliedRevisionID}:{}}}function Le(e){if(!W(e)||!G(e.id)||!G(e.artifactID)||!G(e.baseRevisionID)||!Me(e.revision)||!Ne(ke,e.state)||!Ne(Oe,e.kind)||typeof e.instruction!=`string`||!G(e.by)||!Me(e.createdAt)||!Me(e.updatedAt))return;let t=Fe(e.handler);if(!t)return;let n=Ie(e.proposal),{proposal:r,...i}=e;return{...i,handler:t,...n?{proposal:n}:{},...typeof e.answer==`string`?{answer:e.answer}:{},...typeof e.error==`string`?{error:e.error}:{}}}function Re(e){let t=W(e)?e:{};return{items:Array.isArray(t.items)?t.items.flatMap(e=>Le(e)??[]):[],...G(t.cursor)?{cursor:t.cursor}:{}}}function ze(e){let t=e?.[Ee];return t?t.split(`,`).map(e=>e.trim()).filter(F).slice(0,De):[]}var Be=e=>e.state===`queued`||e.state===`running`;function Ve(e,t){return e.kind===`session`?e.address.startsWith(`@`)?e.address:t?.(e.sessionID??e.address)??(e.sessionID?t?.(e.address):void 0)??e.address:`New ${e.harness||`agent`} session on ${e.machine} · ${Pe(e.repo)}`}function He(e,t){let n=(e,t)=>({tone:e,active:!1,text:t});if(e.state===`failed`)return n(`failed`,`Failed: ${e.error||`no reason given`}`);if(e.state===`cancelled`)return n(`cancelled`,`Cancelled`);if(e.state===`succeeded`){if(e.kind!==`propose-edit`)return n(`done`,`Answered`);let t=e.proposal;return t?t.state===`applied`?n(`done`,`Edit accepted`):t.state===`conflict`?n(`failed`,`Not accepted: the artifact changed after this edit was proposed. Request it again on the latest revision.`):n(`done`,`Proposed an edit: review it below`):n(`done`,`Finished without a proposal`)}let r=e.handler,i=(e,t)=>({tone:e,active:!0,text:t});switch(r.status){case`offline`:return r.kind===`session`?i(`offline`,`Waiting: ${Ve(r,t)} is offline. The request is queued and is delivered when it reconnects.`):i(`offline`,`Waiting: ${r.machine} is offline. The request is queued until it's back.`);case`starting`:return i(`waiting`,r.kind===`session`?`Sending to ${Ve(r,t)}…`:`Starting a session on ${r.machine}…`);case`waiting`:return i(`waiting`,r.kind===`launch`?`Waiting for a session on ${r.machine}${r.reason?`: ${r.reason}`:``}`:`Waiting for ${Ve(r,t)}`);case`ready`:return e.state===`running`?i(`running`,`Working: ${Ve(r,t)} has the request.`):i(`waiting`,`Request delivered to ${Ve(r,t)}; waiting for it to pick it up.`);default:return i(`waiting`,`The handler ${r.status===`ended`?`ended`:`failed`}; the job finishes shortly.`)}}function Ue(e){return e===`user`?`You`:e.startsWith(`app:`)?`App ${e.slice(4)}`:`Session ${e}`}function We(e,t){let n=t.get(e);return n===void 0?`revision ${e.slice(-6)}`:`revision ${n}`}function Ge(e){let t=[],n=[];for(let r of e.sessions){if(r.archived)continue;let e=r.name?.replace(/^@+/,``)?`@${r.name.replace(/^@+/,``)}`:void 0,i=r.title||r.id,a=[r.machineName,r.harness].filter(Boolean).join(` · `),o=`${r.online?`●`:`○`} ${e?`${e} — ${i} · ${a}`:`${i} · ${a}`}${r.online?``:` (offline: queued until it reconnects)`}`,s={key:`session:${r.id}`,kind:`session`,label:o,display:e??i,online:r.online,handler:{session:r.id},search:[e,r.title,r.id,r.machineName,r.harness].filter(Boolean).join(` `).toLowerCase()};e?t.push({...s,sortName:e.toLowerCase()}):n.push(s)}t.sort((e,t)=>e.sortName<t.sortName?-1:+(e.sortName>t.sortName));let r=[...t.map(({sortName:e,...t})=>t),...n];for(let t of e.bindings){let n=e.machines.find(e=>e.id===t.machineID),i=n?.online??!1,a=`New session in ${t.label||Pe(t.repo)} on ${n?.name??t.machineID}`;r.push({key:`launch:${t.id}`,kind:`launch`,label:`${a}${i?``:` (machine offline: waits for it)`}`,display:a,online:i,handler:{launch:{machine:t.machineID,repo:t.repo}},search:[a,t.repo,t.machineID].join(` `).toLowerCase()})}return r}function Ke(e,t,n){let r=t.trim().toLowerCase();return r?e.filter(e=>e.key===n||e.search.includes(r)):[...e]}function qe(e){let t=new Map;for(let n of e)n.kind===`session`&&`session`in n.handler&&n.handler.session&&t.set(n.handler.session,n.display);return t}function Je(e){return e.kind===`session`?{session:e.sessionID??e.address}:{launch:{machine:e.machine,repo:e.repo,...e.harness?{harness:e.harness}:{},...e.model?{model:e.model}:{},...e.agent?{agent:e.agent}:{},mode:e.mode}}}function Ye(e){let t=e=>({ok:!1,problem:e});if(!e.handler)return t(`Choose who handles this request.`);let n=e.instruction.trim();if(e.kind===`run-action`){let r=e.actions??[];if(r.length===0)return t(`This artifact declares no AI actions.`);if(!e.action||!r.includes(e.action))return t(`Choose one of the artifact's actions.`);n||=`Run the ${e.action} action.`}if(!n)return t(e.kind===`ask`?`Write a question.`:`Describe the edit.`);if(n.length>R.aiInstructionChars)return t(`Keep it under ${R.aiInstructionChars.toLocaleString(`en-US`)} characters.`);if(je.test(n))return t(`Use plain text (no control characters).`);let r={kind:e.kind,baseRevisionID:e.baseRevisionID,instruction:n,handler:e.handler};return e.kind===`run-action`?{ok:!0,request:{kind:`run-action`,action:e.action,baseRevisionID:e.baseRevisionID,instruction:n,handler:e.handler}}:{ok:!0,request:e.kind===`propose-edit`?{...r,apply:`manual`}:r}}var Xe=4e6,Ze=3,Qe=e=>{let t=e.replace(/\r\n?/g,`
2
+ `).split(`
3
+ `);return t.length>1&&t[t.length-1]===``&&t.pop(),e===``?[]:t};function $e(e,t){let n=Qe(e),r=Qe(t),i=[{type:`meta`,text:`Too large to compare line by line.`}];if(n.length+r.length>1e4)return i;let a=0;for(;a<n.length&&a<r.length&&n[a]===r[a];)a++;let o=n.length,s=r.length;for(;o>a&&s>a&&n[o-1]===r[s-1];)o--,s--;let c=o-a,l=s-a;if((c+1)*(l+1)>Xe)return i;let u=l+1,d=new Uint32Array((c+1)*u);for(let e=c-1;e>=0;e--)for(let t=l-1;t>=0;t--)d[e*u+t]=n[a+e]===r[a+t]?d[(e+1)*u+t+1]+1:Math.max(d[(e+1)*u+t],d[e*u+t+1]);let f=[];for(let e=0;e<a;e++)f.push({type:`context`,text:n[e],oldNo:e+1,newNo:e+1});let p=0,m=0,h=[],g=[],_=()=>{f.push(...h,...g),h=[],g=[]};for(;p<c||m<l;)p<c&&m<l&&n[a+p]===r[a+m]?(_(),f.push({type:`context`,text:n[a+p],oldNo:a+p+1,newNo:a+m+1}),p++,m++):m<l&&(p===c||d[p*u+m+1]>=d[(p+1)*u+m])?(g.push({type:`add`,text:r[a+m],newNo:a+m+1}),m++):(h.push({type:`del`,text:n[a+p],oldNo:a+p+1}),p++);_();for(let e=0;e<n.length-o;e++)f.push({type:`context`,text:n[o+e],oldNo:o+e+1,newNo:s+e+1});let v=new Uint8Array(f.length);f.forEach((e,t)=>{if(e.type!==`context`)for(let e=Math.max(0,t-Ze);e<=Math.min(f.length-1,t+Ze);e++)v[e]=1});let y=[],b=0;for(;b<f.length;){if(!v[b]){b++;continue}let e=b;for(;e<f.length&&v[e];)e++;let t=f.slice(b,e),n=t.find(e=>e.oldNo!==void 0)?.oldNo??0,r=t.find(e=>e.newNo!==void 0)?.newNo??0,i=t.filter(e=>e.type!==`add`).length,a=t.filter(e=>e.type!==`del`).length;y.push({type:`hunk`,text:`@@ -${n},${i} +${r},${a} @@`});for(let e of t)y.push(e);b=e}return y}function et(e,t){if(!(t.files.some(e=>e.path!==void 0)||t.keep.length>0||e.some(e=>e.path!==void 0))){let n=e[0];return t.files.map(e=>({change:n?n.hash===e.hash?`unchanged`:`changed`:`added`,mediaType:e.mediaType,bytes:e.bytes,...n?{baseBytes:n.bytes}:{}}))}let n=new Map(e.map(e=>[e.path??``,e])),r=[],i=new Set;for(let e of t.files){let t=e.path??``;i.add(t);let a=n.get(t);r.push({path:t,change:a?a.hash===e.hash?`unchanged`:`changed`:`added`,mediaType:e.mediaType,bytes:e.bytes,...a?{baseBytes:a.bytes}:{}})}for(let e of t.keep){if(i.has(e))continue;i.add(e);let t=n.get(e);r.push({path:e,change:`kept`,mediaType:t?.mediaType??``,bytes:t?.bytes??0,...t?{baseBytes:t.bytes}:{}})}for(let t of e){let e=t.path??``;i.has(e)||r.push({path:e,change:`removed`,mediaType:t.mediaType,bytes:0,baseBytes:t.bytes})}return r}function K(e){let t=W(e)||e instanceof Error?e:{},n=Me(t.status)?t.status:0,r=typeof t.code==`string`?t.code:``,i=typeof t.message==`string`?t.message:String(e),a=W(t.details)?t.details:{};if(n===422||r===`unsupported`){let e=typeof a.feature==`string`?a.feature:``;return e===`artifactActions`?{kind:`unsupported`,text:`This artifact declares no AI actions.`}:!e||e===`artifacts`?{kind:`unsupported`,text:`AI requests aren't supported on this hub.`}:{kind:`unsupported`,text:`Not supported on this hub (${e}): ${i}`}}return n===404||r===`not_found`?{kind:`unavailable`,text:`AI requests aren't available for this artifact (it doesn't exist, or you can't see it).`}:n===401||n===403||r===`forbidden`?{kind:`forbidden`,text:`Not allowed: ${i}`}:n===409||r===`conflict`?{kind:`conflict`,text:i}:n===429||r===`rate_limited`?{kind:`rate_limited`,text:`Too many AI requests are running (on this artifact or for you). Wait for one to finish.`}:n===503||r===`offline`?{kind:`offline`,text:`Offline: ${i}`}:n===400||r===`invalid`?{kind:`invalid`,text:i}:{kind:`error`,text:i}}function tt(e){return e.proposal?.state===`conflict`?`stale-base`:`job-changed`}function nt(e){return Math.min(1e4,Math.round(1500*1.5**Math.max(0,e)))}var rt={set(e,t){let n=setTimeout(e,t);return()=>clearTimeout(n)}},it=()=>globalThis.crypto?.randomUUID?.()??`${Date.now()}-${Math.random().toString(36).slice(2)}`,at=e=>!(e&&typeof e==`object`&&typeof e.status==`number`);function ot(e){let{source:t,artifactID:n,onState:r}=e,i=e.timers??rt,a=e.key??it,o={status:`loading`,actions:[],revisionNumbers:new Map,jobs:[],more:!1,loadingMore:!1,handlers:[],sending:!1,pending:{},notices:{},reviews:{}},s,c,l=0,u=!1,d,f=e=>{u||(o={...o,...e},r(o))},p=e=>o.jobs.find(t=>t.id===e),m=e=>f({jobs:o.jobs.some(t=>t.id===e.id)?o.jobs.map(t=>t.id===e.id?e:t):[e,...o.jobs]}),h=(e,t)=>{let{[e]:n,...r}=o.notices;f({notices:t?{...r,[e]:t}:r})},g=(e,t)=>{let{[e]:n,...r}=o.pending;f({pending:t?{...r,[e]:t}:r})};async function _(){let[e,r]=await Promise.all([t.artifact(n),t.revisionNumbers(n).catch(()=>o.revisionNumbers)]);f({artifact:e,actions:ze(e.metadata),revisionNumbers:r})}function v(){c?.(),c=void 0,u||!o.jobs.some(Be)?l=0:c=i.set(()=>{c=void 0,x()},nt(l))}async function y(){f({status:`loading`});try{let[,e]=await Promise.all([_(),t.jobs(n)]);s=e.cursor,f({status:`ready`,jobs:e.items,more:!!e.cursor,error:void 0})}catch(e){f({status:`error`,error:K(e)});return}v(),await b()}async function b(){if(!u&&o.artifact)try{f({handlers:await t.handlers(o.artifact),handlersError:void 0})}catch(e){f({handlersError:K(e).text})}}async function x(){if(!(u||o.status!==`ready`)){try{let e=await t.jobs(n),r=new Map(o.jobs.map(e=>[e.id,e])),i=new Set(e.items.map(e=>e.id)),a=e.items.some(e=>r.get(e.id)?.revision!==e.revision),s=e.items.some(e=>!Be(e)&&r.get(e.id)&&Be(r.get(e.id)));f({jobs:[...e.items,...o.jobs.filter(e=>!i.has(e.id))]}),l=a?0:l+1,s&&await _().catch(()=>void 0)}catch{l++}v()}}async function S(){if(s&&!o.loadingMore){f({loadingMore:!0});try{let e=await t.jobs(n,s);s=e.cursor;let r=new Set(o.jobs.map(e=>e.id));f({jobs:[...o.jobs,...e.items.filter(e=>!r.has(e.id))],more:!!e.cursor,loadingMore:!1})}catch(e){f({loadingMore:!1,sendError:K(e)})}}}async function C(e){let r=JSON.stringify(e),i=d?.body===r?d.key:a();try{let r=await t.create(n,e,i);return d=void 0,m(r),f({sending:!1,sendError:void 0}),l=0,v(),r}catch(e){d=at(e)?{body:r,key:i}:void 0;let t=K(e);f({sending:!1,sendError:t}),t.kind===`conflict`&&await _().catch(()=>void 0);return}}async function w(e){return await T(e)!==void 0}async function T(e){if(o.sending||!o.artifact)return;if(e.baseRevisionID!==void 0&&e.baseRevisionID!==o.artifact.latestRevisionID){f({sendError:{kind:`conflict`,text:`The artifact changed since that view opened: the request was not sent.`}});return}let t=o.handlers.find(t=>t.key===e.handlerKey)?.handler,n=Ye({kind:e.kind,instruction:e.instruction,baseRevisionID:o.artifact.latestRevisionID,...t?{handler:t}:{},...e.action?{action:e.action}:{},actions:o.actions});if(!n.ok)f({sendError:{kind:`invalid`,text:n.problem}});else return f({sending:!0,sendError:void 0}),C(n.request)}async function E(e){try{let r=await t.job(n,e);return m(r),r}catch{return}}async function D(e){let r=p(e);if(!r||o.pending[e]||!Be(r))return!1;g(e,`cancel`);try{return m(await t.cancel(n,e,r.revision)),h(e,void 0),!0}catch(t){let n=K(t),r=n.kind===`conflict`?await E(e):void 0;return h(e,{kind:n.kind===`conflict`?`conflict`:`error`,text:r&&!Be(r)?`Not cancelled: it already ${r.state===`succeeded`?`finished`:r.state}.`:n.text}),!1}finally{g(e,void 0),v()}}async function O(e){let r=p(e);if(!r||o.pending[e]||r.kind!==`propose-edit`||r.state!==`succeeded`||r.proposal?.state!==`pending`)return!1;g(e,`apply`);try{let i=await t.apply(n,e,r.revision);m(i.job),await _().catch(()=>void 0);let a=i.revisionNumber??o.revisionNumbers.get(i.revisionID);return h(e,{kind:`info`,text:a===void 0?`Accepted as a new revision.`:`Accepted as revision ${a}.`}),!0}catch(t){let n=K(t);if(n.kind!==`conflict`)return h(e,{kind:`error`,text:n.text}),!1;let[r]=await Promise.all([E(e),_().catch(()=>void 0)]);if(r&&tt(r)===`stale-base`){let t=o.artifact?We(o.artifact.latestRevisionID,o.revisionNumbers):`a newer revision`;h(e,{kind:`conflict`,stale:!0,text:`Not accepted: the artifact changed since this edit was proposed (it is at ${t} now). Nothing was changed. Request the edit again on the latest revision.`})}else h(e,{kind:`conflict`,stale:!1,text:`This request changed since you read it. Review it again, then Accept.`});return!1}finally{g(e,void 0)}}async function k(e){let t=p(e);if(!t||o.pending[e]||o.sending||t.kind!==`propose-edit`)return!1;g(e,`rerequest`),f({sending:!0,sendError:void 0});try{await _();let n=!!await C({kind:`propose-edit`,baseRevisionID:o.artifact.latestRevisionID,instruction:t.instruction,handler:Je(t.handler),apply:`manual`});return n&&h(e,{kind:`info`,text:`Requested again on the latest revision.`}),n}catch(e){return f({sending:!1,sendError:K(e)}),!1}finally{g(e,void 0)}}async function A(e){let r=p(e);if(r?.proposal){f({reviews:{...o.reviews,[e]:{status:`loading`}}});try{let[i,a]=await Promise.all([t.proposal(n,e),t.revisionFiles(n,r.baseRevisionID)]),s=et(a,{files:i.files,keep:i.keep}),c=a.length<=1&&i.files.every(e=>e.path===void 0),l=i.files.map(e=>{let t=c?a[0]:a.find(t=>t.path===e.path),n=e.path===void 0?{}:{path:e.path};return e.omitted===`binary`?{...n,note:`Binary file: not compared.`}:e.omitted===`budget`||e.text===void 0?{...n,note:`Too large to show here.`}:t&&t.text===void 0?{...n,note:t.omitted===`binary`?`Replaces a binary file.`:`The current file is too large to compare.`}:t&&t.hash===e.hash?{...n,note:`Unchanged.`}:{...n,lines:$e(t?.text??``,e.text)}});f({reviews:{...o.reviews,[e]:{status:`ready`,changes:s,diffs:l,truncated:i.truncated}}})}catch(t){f({reviews:{...o.reviews,[e]:{status:`error`,text:K(t).text}}})}}}return{state:()=>o,load:y,refresh:x,more:S,request:w,requestJob:T,cancel:D,accept:O,rerequest:k,review:A,reloadHandlers:b,dispose(){c?.(),c=void 0,u=!0}}}var st={markdown:`Markdown`,code:`Code`,image:`Image`,table:`Table`,chart:`Chart`,dashboard:`Dashboard`,html:`HTML`,app:`App`,file:`File`};function ct(e){let t=[[]];for(let n of e)n.text.split(`
4
+ `).forEach((e,r)=>{r>0&&t.push([]),e&&t[t.length-1].push(n.kind?{text:e,kind:n.kind}:{text:e})});return t.length>1&&t[t.length-1].length===0&&t.pop(),t}var lt={ts:`TypeScript`,tsx:`TypeScript (TSX)`,js:`JavaScript`,jsx:`JavaScript (JSX)`,python:`Python`,go:`Go`,rust:`Rust`,bash:`Shell`,json:`JSON`,css:`CSS`,html:`HTML`,markdown:`Markdown`,yaml:`YAML`,toml:`TOML`,sql:`SQL`,java:`Java`,c:`C`,cpp:`C++`,ruby:`Ruby`,swift:`Swift`,kotlin:`Kotlin`,diff:`Diff`,csv:`CSV`};function ut(e,t){return{name:e?.path?.split(`/`).pop()||`Untitled`,language:t?lt[t]??t.toUpperCase():`Plain text`}}function dt(e,t){let n=[{label:`Type`,value:st[e.kind]??e.kind},{label:`Visibility`,value:e.visibility===`workspace`?`Workspace members`:`Private (only you)`}];e.workspaceID&&n.push({label:`Workspace`,value:t.workspaceName??e.workspaceID}),n.push({label:`Created by`,value:e.createdBySessionID?ne({kind:`session`,sessionID:e.createdBySessionID}):`You`}),n.push({label:`Created`,value:t.when(e.createdAt)},{label:`Updated`,value:t.when(e.updatedAt)}),e.state===`archived`&&n.push({label:`State`,value:`Archived (read only)`}),e.tags?.length&&n.push({label:`Tags`,value:e.tags.join(`, `)});let r=ze(e.metadata);r.length&&n.push({label:`AI actions`,value:r.join(`, `)});for(let[t,r]of Object.entries(e.metadata??{}))t!==`ai-actions`&&n.push({label:t,value:r});return n}var ft={ask:`ask`,edit:`propose-edit`,action:`run-action`};function pt(e,t){let n=/^\/([a-z]+)(?:\s+([\s\S]*))?$/.exec(e),r=n?ft[n[1]]:void 0;if(!n||!r)return{text:e};let i=n[2]??``;if(r!==`run-action`)return{kind:r,text:i};let a=/^(\S+)\s*([\s\S]*)$/.exec(i);return!a||!t.includes(a[1])?{text:e}:{kind:r,action:a[1],text:a[2]}}var mt=`hub.artifactAiHandler.v1`;function ht(e,t){try{e?.setItem(mt,t)}catch{}}function gt(e,t){let n=null;try{n=e?.getItem(`hub.artifactAiHandler.v1`)??null}catch{return}return n?t.find(e=>e.key===n):void 0}function _t(e){return[...e].reverse()}var vt=`hub.artifactAiPanel.v1`,q={min:280,max:640,default:380,share:.6};function yt(e,t){if(!Number.isFinite(e))return q.default;let n=Math.max(q.min,Math.min(q.max,Math.floor(t*q.share)));return Math.min(n,Math.max(q.min,Math.round(e)))}function bt(e){try{let t=JSON.parse(e?.getItem(`hub.artifactAiPanel.v1`)??`null`);if(!t||typeof t!=`object`)return{};let{open:n,width:r}=t;return{...typeof n==`boolean`?{open:n}:{},...typeof r==`number`&&Number.isFinite(r)?{width:r}:{}}}catch{return{}}}function xt(e,t){try{e?.setItem(vt,JSON.stringify(t))}catch{}}var St=w(`<input type=search class=aai-picker-search aria-label="Search handlers"placeholder=Find… title="Find a handler by @name, title or session ID">`),Ct=w(`<optgroup label="Your sessions">`),wt=w(`<optgroup label="New session in a workspace repo">`),Tt=w(`<span><select aria-label="Handled by"title="Who handles this request"><option value>`),Et=w(`<option>`),Dt=w(`<button type=button class=aai-recent>Use `);function Ot(){try{return window.localStorage}catch{return}}function kt(e){let[t,r]=c(``),i=()=>e.value?void 0:gt(Ot(),e.handlers),a=_(()=>Ke(e.handlers,t(),e.value)),u=()=>a().filter(e=>e.kind===`session`),d=()=>a().filter(e=>e.kind===`launch`),f=()=>!!t().trim()&&!a().some(t=>t.key!==e.value);return(()=>{var a=Tt(),c=a.firstChild,p=c.firstChild;return m(a,n(s,{get when(){return e.handlers.length>1},get children(){var n=St();return n.$$input=e=>r(e.currentTarget.value),n.addEventListener(`focus`,()=>e.onPick?.()),o(()=>n.value=t()),n}}),c),c.addEventListener(`change`,t=>e.onChange(t.currentTarget.value)),c.addEventListener(`focus`,()=>e.onPick?.()),m(p,()=>f()?`No handler matches the search`:`Choose a session…`),m(c,n(s,{get when(){return u().length},get children(){var t=Ct();return m(t,n(l,{get each(){return u()},children:t=>(()=>{var n=Et();return m(n,()=>t.label),o(()=>n.selected=t.key===e.value),o(()=>n.value=t.key),n})()})),t}}),null),m(c,n(s,{get when(){return d().length},get children(){var t=wt();return m(t,n(l,{get each(){return d()},children:t=>(()=>{var n=Et();return m(n,()=>t.label),o(()=>n.selected=t.key===e.value),o(()=>n.value=t.key),n})()})),t}}),null),m(a,n(s,{get when(){return i()},children:t=>(()=>{var n=Dt();return n.firstChild,n.$$click=()=>e.onChange(t().key),m(n,()=>t().display,null),o(e=>{var r=`Last used on this device: ${t().label}`,i=`Use ${t().display} (last used)`;return r!==e.e&&h(n,`title`,e.e=r),i!==e.t&&h(n,`aria-label`,e.t=i),e},{e:void 0,t:void 0}),n})()}),null),o(()=>b(a,`aai-picker ${e.class??``}`)),o(()=>c.value=e.value),a})()}O([`input`,`click`]);var At=`/api/agent/artifacts`,jt=50,Mt=262144,Nt=e=>e.startsWith(`text/`)||e===`application/json`||e===`image/svg+xml`,J=e=>typeof e==`object`&&!!e&&!Array.isArray(e),Pt=e=>new M(502,`The hub answered an unexpected ${e}`);function Ft(e){let t=J(e)&&J(e.artifact)?e.artifact:e;if(!J(t)||typeof t.id!=`string`||typeof t.latestRevisionID!=`string`||typeof t.revision!=`number`)throw Pt(`artifact`);return{id:t.id,title:typeof t.title==`string`?t.title:``,kind:typeof t.kind==`string`?t.kind:`file`,state:typeof t.state==`string`?t.state:`active`,latestRevisionID:t.latestRevisionID,revision:t.revision,...typeof t.workspaceID==`string`?{workspaceID:t.workspaceID}:{},...J(t.metadata)?{metadata:t.metadata}:{}}}var It=e=>{let t=Le(J(e)?e.job:void 0);if(!t)throw Pt(`job`);return t},Lt=async(e,t,n={})=>(await L(e,{method:`POST`,json:t,headers:n})).json();async function Rt(){try{let e=await j(`/api/agent/who`),t=J(e)&&Array.isArray(e.sessions)?e.sessions:[];return new Map(t.flatMap(e=>J(e)&&typeof e.sessionID==`string`&&typeof e.name==`string`&&e.name?[[e.sessionID,e.name]]:[]))}catch{return new Map}}function zt(e){let t=e=>`${At}/${A(e)}/jobs`,n=(e,n,r=``)=>`${t(e)}/${A(n)}${r}`;return{artifact:async e=>Ft(await j(`${At}/${A(e)}`)),async revisionNumbers(e){let t=await j(`${At}/${A(e)}/revisions?limit=200`),n=J(t)&&Array.isArray(t.items)?t.items:[];return new Map(n.flatMap(e=>J(e)&&typeof e.id==`string`&&typeof e.number==`number`?[[e.id,e.number]]:[]))},jobs:async(e,n)=>Re(await j(`${t(e)}?limit=${jt}${n?`&cursor=${A(n)}`:``}`)),job:async(e,t)=>It(await j(n(e,t))),create:async(e,n,r)=>It(await Lt(t(e),n,{"idempotency-key":r})),cancel:async(e,t,r)=>It(await Lt(n(e,t,`/cancel`),{expectedRevision:r})),async apply(e,t,r){let i=await Lt(n(e,t,`/apply`),{expectedRevision:r}),a=J(i)&&J(i.revision)?i.revision:{};if(typeof a.id!=`string`)throw Pt(`revision`);return{job:It(i),revisionID:a.id,...typeof a.number==`number`?{revisionNumber:a.number}:{}}},proposal:async(e,t)=>{let r=await j(n(e,t,`/proposal`));if(!J(r)||!Array.isArray(r.files))throw Pt(`proposal`);return{...r,keep:Array.isArray(r.keep)?r.keep:[],truncated:r.truncated===!0}},async revisionFiles(e,t){let n=await j(`${At}/${A(e)}/revisions/${A(t)}`),r=J(n)&&J(n.revision)&&Array.isArray(n.revision.blobs)?n.revision.blobs:[],i=Mt,a=[];for(let n of r){if(!J(n)||typeof n.hash!=`string`||typeof n.mediaType!=`string`||typeof n.bytes!=`number`)continue;let r={...typeof n.path==`string`?{path:n.path}:{},hash:n.hash,mediaType:n.mediaType,bytes:n.bytes};Nt(n.mediaType)?n.bytes>i?a.push({...r,omitted:`budget`}):(i-=n.bytes,a.push({...r,text:await(await L(`${At}/${A(e)}/revisions/${A(t)}/blobs/${A(n.hash)}`)).text()})):a.push({...r,omitted:`binary`})}return a},async handlers(t){let[n,r]=await Promise.all([(async()=>{if(!t.workspaceID)return[];try{let e=await j(`/api/agent/workspaces/${A(t.workspaceID)}/bindings`);return(J(e)&&Array.isArray(e.bindings)?e.bindings:[]).flatMap(e=>J(e)&&typeof e.id==`string`&&typeof e.machineID==`string`&&typeof e.repo==`string`?[{id:e.id,machineID:e.machineID,repo:e.repo,...typeof e.label==`string`?{label:e.label}:{}}]:[])}catch{return[]}})(),Rt()]);return Ge({sessions:e.sessions().map(e=>r.get(e.id)?{...e,name:r.get(e.id)}:e),bindings:n,machines:e.machines()})}}}var Bt=w(`<span>an unknown revision`),Vt=w(`<button type=button class=aai-link>`),Ht=w(`<span>`),Ut=w(`<strong class=aai-older>You are viewing an older revision.`),Wt=w(`<p class=aai-sub>Requests use the latest revision (<!>).`),Gt=w(`<p class=aai-note role=status>Loading AI requests…`),Kt=w(`<button type=button class="btn small aai-older-btn">Load older requests`),qt=w(`<ol class=aai-jobs aria-label="AI request history">`),Jt=w(`<p class=aai-note>Could not list handlers: `),Yt=w(`<p class=aai-note role=status>`),Xt=w(`<div class=aai-confirm role=group aria-label="Confirm action"><p>Run <strong></strong> on <!>, handled by <strong></strong>? It gets a read-only copy of this revision; its answer shows here and nothing is changed.</p><div class=aai-actions><button type=button class="btn primary small">Confirm and run</button><button type=button class="btn small">Back`),Zt=w(`<select class=aai-action aria-label="Declared action"><option value>Choose an action…`),Qt=w(`<form class=aai-composer aria-label="New AI request"><div class=aai-box><div class=aai-box-top><div class=aai-seg role=radiogroup aria-label="Request type"></div></div><textarea class=aai-input rows=2></textarea><div class=aai-box-foot><span class=aai-hint>Ctrl+Enter</span><button type=submit class=aai-send><span class=aai-send-text>`),$t=w(`<section class=aai><header class=aai-head><span class=aai-mark aria-hidden=true></span><div class=aai-head-text><h2 class=aai-title>AI requests</h2></div></header><div class=aai-scroll>`),en=w(`<button type=button class="btn small">Retry`),tn=w(`<p class=aai-note> `),nn=w(`<kbd>/action `),rn=w(`<div class=aai-empty><p><strong>Ask about this artifact, or describe an edit.</strong></p><p>The session you choose gets a read-only copy. Nothing changes until you accept an edit.</p><p class=aai-tips>Tip: start with <kbd>/ask</kbd>, <kbd>/edit</kbd>.`),an=w(`<p class="aai-note err"role=alert>`),on=w(`<label class=aai-seg-item><input type=radio>`),sn=w(`<option>`),cn=w(`<span class=aai-dot aria-hidden=true>`),ln=w(`<div class=aai-answer>`),un=w(`<p class="aai-note warn"role=status>The artifact changed since this edit was proposed: accepting it will be refused. Request it again on the latest revision.`),dn=w(`<button type=button class="btn primary small">`),fn=w(`<button type=button class="btn small">Request again on the latest revision`),pn=w(`<button type=button class="btn small">`),mn=w(`<button type=button class="btn small">Continue in side chat`),hn=w(`<li class=aai-job><div class=aai-q><div class=aai-q-meta><span class=aai-badge></span><span class=aai-meta> · </span></div><p class=aai-instruction></p></div><div class=aai-a><p class="aai-meta aai-prov">On <!> · handled by </p><p role=status aria-live=polite></p><div class=aai-actions>`),gn=w(`<div class=aai-proposal>`),_n=w(`<button type=button class="btn small">Review proposed edit (<!> file<!>)`),vn=w(`<p class=aai-note role=status>Loading the proposal…`),yn=w(`<p class="aai-note err">Could not load the proposal: `),bn=w(`<ul class=aai-files aria-label="Proposed files">`),xn=w(`<p class=aai-note>Some files are too large to show here.`),Sn=w(`<li><span class=aai-file-change></span> <code>`),Cn=w(`<p class=aai-meta><code>`),wn=w(`<table class=diff><tbody>`),Tn=w(`<div class=aai-diff>`),En=w(`<p class=aai-note>`),Dn=w(`<tr><td class=ln></td><td class=ln></td><td class=code-line><span class=sign>`),On=w(`<p>`),kn={ask:`Ask`,"propose-edit":`Edit`,"run-action":`Action`},An={ask:`Ask a question (answer only)`,"propose-edit":`Propose an edit you review before it applies`,"run-action":`Run one of the artifact's declared actions`},jn=e=>e.kind===`ask`?`Question`:e.kind===`propose-edit`?`Edit`:`Action: ${e.action??`?`}`;function Mn(){return zt({sessions:()=>{let e=new Map;for(let t of he.machines??[])for(let n of t.processes)for(let t of n.sessions)e.set(t.id,n.harness||`opencode`);return ye().filter(e=>!e.hidden&&!e.archived).map(t=>({id:t.id,title:t.title,machineName:t.machineName,online:t.machineOnline,...e.get(t.id)?{harness:e.get(t.id)}:{}}))},machines:()=>(he.machines??[]).map(e=>({id:e.id,name:e.name,online:!!e.online}))})}function Nn(i){let[u,d]=c(),f=!i.controller,v=i.controller?.ai??ot({source:i.source??Mn(),artifactID:i.artifactID,onState:d});E(()=>f&&void v.load()),x(()=>f&&v.dispose());let y=()=>(f?u():i.controller.state())??v.state(),b=()=>y().revisionNumbers,S=()=>y().artifact?.latestRevisionID,[C,w]=c(`ask`),[D,O]=c(``),[k,A]=c(``),[j,M]=c(``),[N,P]=c(!1),F,I,L,R=_(()=>y().handlers.find(e=>e.key===k())),z=()=>C()===`ask`?`Ask`:C()===`propose-edit`?`Propose edit`:j()?`Run ${j()}…`:`Run action…`,ee=_(()=>_t(y().jobs));g(e(()=>[y().jobs.length,i.tailCount??0],()=>queueMicrotask(()=>L&&(L.scrollTop=L.scrollHeight))));async function B(){let e=k(),t=await v.request({kind:C(),instruction:D(),...e?{handlerKey:e}:{},...C()===`run-action`&&j()?{action:j()}:{}});P(!1),t&&(O(``),ht(Ot(),e))}function te(e){e?.preventDefault(),!y().sending&&(C()===`run-action`&&j()&&k()?(P(!0),queueMicrotask(()=>F?.focus())):B())}function V(e){let t=pt(e,y().actions);t.kind&&/\s$/.test(e)?(w(t.kind),t.action&&M(t.action),P(!1),O(t.text),I&&(I.value=t.text)):O(e)}async function ne(e){if(await v.accept(e.id)){let e=S();e&&i.onRevised?.(e)}}let H=(e,t=``)=>n(s,{when:e,get fallback(){return(()=>{var e=Bt(),n=e.firstChild;return m(e,t,n),e})()},children:e=>n(s,{get when(){return i.onShowRevision},get fallback(){return(()=>{var n=Ht();return m(n,()=>t+We(e(),b())),n})()},get children(){var n=Vt();return n.$$click=()=>i.onShowRevision?.(e()),m(n,()=>t+We(e(),b())),n}})});return(()=>{var e=$t(),c=e.firstChild,u=c.firstChild,d=u.nextSibling,f=d.firstChild,g=c.nextSibling;m(u,n(T,{name:`spark`})),m(d,n(s,{get when(){return y().status===`ready`},get children(){var e=Wt(),t=e.firstChild.nextSibling;return t.nextSibling,m(e,()=>H(S()),t),m(e,n(s,{get when(){return r(()=>!!(i.revisionID&&S()))()&&i.revisionID!==S()},get children(){return[` `,Ut()]}}),null),e}}),null),m(c,()=>i.headerActions,null);var _=L;return typeof _==`function`?t(_,g):L=g,m(g,n(p,{get children(){return[n(a,{get when(){return y().status===`loading`},get children(){return Gt()}}),n(a,{get when(){return r(()=>y().status===`error`)()&&y().error},children:e=>(()=>{var t=tn(),r=t.firstChild;return m(t,()=>e().text,r),m(t,n(s,{get when(){return e().kind===`error`||e().kind===`offline`},get children(){var e=en();return e.$$click=()=>void v.load(),e}}),null),o(n=>{var r=e().kind===`error`,i=e().kind===`error`?`alert`:`status`;return r!==n.e&&t.classList.toggle(`err`,n.e=r),i!==n.t&&h(t,`role`,n.t=i),n},{e:void 0,t:void 0}),t})()}),n(a,{get when(){return y().status===`ready`},get children(){return[n(s,{get when(){return y().more},get children(){var e=Kt();return e.$$click=()=>void v.more(),o(t=>{var n=y().loadingMore,r=y().loadingMore;return n!==t.e&&(e.disabled=t.e=n),r!==t.t&&h(e,`aria-busy`,t.t=r),t},{e:void 0,t:void 0}),e}}),n(s,{get when(){return y().jobs.length},get fallback(){return(()=>{var e=rn(),t=e.firstChild.nextSibling.nextSibling,r=t.firstChild.nextSibling.nextSibling.nextSibling.nextSibling;return m(t,n(s,{get when(){return y().actions.length},get children(){return[` `,`or `,(()=>{var e=nn();return e.firstChild,m(e,()=>y().actions[0],null),e})()]}}),r),e})()},get children(){var e=qt();return m(e,n(l,{get each(){return ee()},children:e=>n(Pn,{job:e,get state(){return y()},revisionRef:H,onCancel:()=>void v.cancel(e.id),onReview:()=>void v.review(e.id),onAccept:()=>void ne(e),onRerequest:()=>void v.rerequest(e.id),get onContinue(){return i.onContinueInSideChat}})})),e}})]}})]}}),null),m(g,()=>i.threadTail,null),m(e,n(s,{get when(){return y().status===`ready`},get children(){var e=Qt(),a=e.firstChild,c=a.firstChild,u=c.firstChild,d=c.nextSibling,f=d.nextSibling,p=f.firstChild,g=p.nextSibling,_=g.firstChild;e.addEventListener(`submit`,te),m(e,n(s,{get when(){return y().sendError},children:e=>(()=>{var t=an();return m(t,()=>e().text),t})()}),a),m(e,n(s,{get when(){return y().handlersError},get children(){var e=Jt();return e.firstChild,m(e,()=>y().handlersError,null),e}}),a),m(e,n(s,{get when(){return r(()=>!!R())()&&!R().online},get children(){var e=Yt();return m(e,()=>R().kind===`session`?`That session is offline: the request is queued and delivered when it reconnects.`:`That machine is offline: the new session starts when it's back.`),e}}),a),m(e,n(s,{get when(){return N()},get children(){var e=Xt(),n=e.firstChild,r=n.firstChild.nextSibling,i=r.nextSibling.nextSibling,a=i.nextSibling.nextSibling,s=n.nextSibling.firstChild,c=s.nextSibling;e.$$keydown=e=>{e.key===`Escape`&&(e.preventDefault(),P(!1),I?.focus())},m(r,j),m(n,()=>We(S()??``,b()),i),m(a,()=>R()?.display),s.$$click=()=>void B();var l=F;return typeof l==`function`?t(l,s):F=s,c.$$click=()=>{P(!1),I?.focus()},o(()=>s.disabled=y().sending),e}}),a),m(u,n(l,{each:[`ask`,`propose-edit`,`run-action`],children:e=>{let t=()=>e===`run-action`&&y().actions.length===0;return(()=>{var n=on(),r=n.firstChild;return r.addEventListener(`change`,()=>{w(e),P(!1)}),r.value=e,m(n,()=>kn[e],null),o(a=>{var o=C()===e,s=!!t(),c=t()?`This artifact declares no AI actions`:An[e],l=`aai-mode-${i.artifactID}`,u=t();return o!==a.e&&n.classList.toggle(`on`,a.e=o),s!==a.t&&n.classList.toggle(`disabled`,a.t=s),c!==a.a&&h(n,`title`,a.a=c),l!==a.o&&h(r,`name`,a.o=l),u!==a.i&&(r.disabled=a.i=u),a},{e:void 0,t:void 0,a:void 0,o:void 0,i:void 0}),o(()=>r.checked=C()===e),n})()}})),m(c,n(s,{get when(){return C()===`run-action`},get children(){var e=Zt();return e.firstChild,e.addEventListener(`change`,e=>(M(e.currentTarget.value),P(!1))),m(e,n(l,{get each(){return y().actions},children:e=>(()=>{var t=sn();return t.value=e,m(t,e),t})()}),null),o(()=>e.value=j()),e}}),null),d.$$keydown=e=>{e.key===`Enter`&&(e.metaKey||e.ctrlKey)&&te(e)},d.$$input=e=>V(e.currentTarget.value);var x=I;return typeof x==`function`?t(x,d):I=d,m(f,n(kt,{get handlers(){return y().handlers},get value(){return k()},onPick:()=>void v.reloadHandlers(),onChange:e=>(A(e),P(!1))}),p),m(g,n(T,{name:`send`}),_),m(_,(()=>{var e=r(()=>!!y().sending);return()=>e()?`Sending…`:z()})()),o(e=>{var t=C()===`ask`?`Question`:C()===`propose-edit`?`Describe the edit`:`Notes for the action (optional)`,n=C()===`ask`?`Ask about this artifact…`:C()===`propose-edit`?`Describe the edit, e.g. Add a rollback section`:`Notes for the action (optional)`,r=y().sending||N(),i=y().sending,a=y().sending?`Sending…`:z(),o=`${z()} (Ctrl+Enter)`;return t!==e.e&&h(d,`aria-label`,e.e=t),n!==e.t&&h(d,`placeholder`,e.t=n),r!==e.a&&(g.disabled=e.a=r),i!==e.o&&h(g,`aria-busy`,e.o=i),a!==e.i&&h(g,`aria-label`,e.i=a),o!==e.n&&h(g,`title`,e.n=o),e},{e:void 0,t:void 0,a:void 0,o:void 0,i:void 0,n:void 0}),o(()=>d.value=D()),e}}),null),o(t=>{var n=`aai-h-${i.artifactID}`,r=`aai-h-${i.artifactID}`;return n!==t.e&&h(e,`aria-labelledby`,t.e=n),r!==t.t&&h(f,`id`,t.t=r),t},{e:void 0,t:void 0}),e})()}function Pn(e){let t=()=>e.job,i=_(()=>qe(e.state.handlers)),c=e=>i().get(e)??ye().find(t=>t.id===e)?.title,u=()=>He(t(),c),d=()=>e.state.pending[t().id],f=()=>e.state.notices[t().id],g=()=>e.state.reviews[t().id],v=()=>e.state.artifact?.latestRevisionID,y=()=>t().kind===`propose-edit`&&t().state===`succeeded`&&t().proposal?.state===`pending`,x=()=>y()&&v()!==void 0&&t().baseRevisionID!==v(),S=()=>t().kind===`propose-edit`&&(t().proposal?.state===`conflict`||x()||f()?.stale);return(()=>{var i=hn(),_=i.firstChild,v=_.firstChild,C=v.firstChild,w=C.nextSibling,T=w.firstChild,E=v.nextSibling,O=_.nextSibling,A=O.firstChild,j=A.firstChild.nextSibling;j.nextSibling;var M=A.nextSibling,N=M.nextSibling;return m(C,()=>jn(t())),m(w,()=>Ue(t().by),T),m(w,()=>D(t().createdAt),null),m(E,()=>t().instruction),m(A,()=>e.revisionRef(t().baseRevisionID),j),m(A,()=>Ve(t().handler,c),null),m(A,n(s,{get when(){return t().proposal?.appliedRevisionID},children:t=>[` · became `,r(()=>e.revisionRef(t()))]}),null),m(M,n(s,{get when(){return u().active},get children(){return cn()}}),null),m(M,()=>u().text,null),m(O,n(s,{get when(){return t().answer},get children(){var n=ln();return m(n,()=>t().answer),o(()=>h(n,`aria-label`,`Answer from ${Ve(t().handler,c)} on ${We(t().baseRevisionID,e.state.revisionNumbers)}`)),n}}),N),m(O,n(s,{get when(){return r(()=>!!(t().proposal&&t().proposal.state!==`applied`))()&&t().proposal},children:t=>(()=>{var i=gn();return m(i,n(s,{get when(){return g()},get fallback(){return(()=>{var n=_n(),i=n.firstChild.nextSibling,a=i.nextSibling.nextSibling;return a.nextSibling,k(n,`click`,e.onReview,!0),m(n,()=>t().files.length,i),m(n,()=>t().files.length===1?``:`s`,a),m(n,(()=>{var e=r(()=>!!t().keep?.length);return()=>e()?`, ${t().keep.length} kept`:``})(),a),n})()},children:e=>n(p,{get children(){return[n(a,{get when(){return e().status===`loading`},get children(){return vn()}}),n(a,{get when(){return r(()=>e().status===`error`)()&&e()},children:e=>(()=>{var t=yn();return t.firstChild,m(t,()=>e().text,null),t})()}),n(a,{get when(){return r(()=>e().status===`ready`)()&&e()},children:e=>{let t=()=>e();return[n(s,{get when(){return t().changes.some(e=>e.path!==void 0)},get children(){var e=bn();return m(e,n(l,{get each(){return t().changes},children:e=>(()=>{var t=Sn(),n=t.firstChild,r=n.nextSibling.nextSibling;return m(n,()=>e.change),m(r,()=>e.path),o(()=>b(t,`aai-file ${e.change}`)),t})()})),e}}),n(l,{get each(){return t().diffs},children:e=>(()=>{var t=Tn();return m(t,n(s,{get when(){return e.path},get children(){var t=Cn(),n=t.firstChild;return m(n,()=>e.path),t}}),null),m(t,n(s,{get when(){return e.lines},get fallback(){return(()=>{var t=En();return m(t,()=>e.note),t})()},get children(){var t=wn(),i=t.firstChild;return m(i,n(l,{get each(){return e.lines},children:e=>(()=>{var t=Dn(),n=t.firstChild,i=n.nextSibling,a=i.nextSibling,s=a.firstChild;return m(n,()=>e.oldNo??``),m(i,()=>e.newNo??``),m(s,(()=>{var t=r(()=>e.type===`add`);return()=>t()?`+`:e.type===`del`?`−`:` `})()),m(a,()=>e.text,null),o(()=>b(t,e.type)),t})()})),o(()=>h(t,`aria-label`,`Changes${e.path?` to ${e.path}`:``}`)),t}}),null),t})()}),n(s,{get when(){return t().truncated},get children(){return xn()}})]}})]}})})),i})()}),N),m(O,n(s,{get when(){return r(()=>!!x())()&&!f()},get children(){return un()}}),N),m(O,n(s,{get when(){return f()},children:e=>(()=>{var t=On();return m(t,()=>e().text),o(n=>{var r=`aai-note ${e().kind===`info`?`ok`:e().kind===`conflict`?`warn`:`err`}`,i=e().kind===`info`?`status`:`alert`;return r!==n.e&&b(t,n.e=r),i!==n.t&&h(t,`role`,n.t=i),n},{e:void 0,t:void 0}),t})()}),N),m(N,n(s,{get when(){return y()},get children(){var t=dn();return k(t,`click`,e.onAccept,!0),m(t,()=>d()===`apply`?`Accepting…`:`Accept as new revision`),o(e=>{var n=!!d(),r=d()===`apply`;return n!==e.e&&(t.disabled=e.e=n),r!==e.t&&h(t,`aria-busy`,e.t=r),e},{e:void 0,t:void 0}),t}}),null),m(N,n(s,{get when(){return S()},get children(){var t=fn();return k(t,`click`,e.onRerequest,!0),o(()=>t.disabled=!!d()||e.state.sending),t}}),null),m(N,n(s,{get when(){return Be(t())},get children(){var t=pn();return k(t,`click`,e.onCancel,!0),m(t,()=>d()===`cancel`?`Cancelling…`:`Cancel`),o(e=>{var n=!!d(),r=d()===`cancel`;return n!==e.e&&(t.disabled=e.e=n),r!==e.t&&h(t,`aria-busy`,e.t=r),e},{e:void 0,t:void 0}),t}}),null),m(N,n(s,{get when(){return r(()=>!!e.onContinue)()&&t().handler.sessionID},get children(){var n=mn();return n.$$click=()=>e.onContinue?.(t()),n}}),null),o(e=>{var n=t().id,r=t().state,a=`${jn(t())}: ${t().instruction}`,o=`aai-status ${u().tone}`;return n!==e.e&&h(i,`data-job`,e.e=n),r!==e.t&&h(i,`data-state`,e.t=r),a!==e.a&&h(i,`aria-label`,e.a=a),o!==e.o&&b(M,e.o=o),e},{e:void 0,t:void 0,a:void 0,o:void 0}),i})()}O([`click`,`keydown`,`input`]);var Y={rows:1e3,columns:50,cellChars:2e3};function Fn(e){let t=e.length>Y.columns,n=e.slice(0,Y.columns).map(e=>i(e)),r=[];function i(e){return typeof e==`string`&&e.length>Y.cellChars?(t=!0,e.slice(0,Y.cellChars)):e}return{add(e,a){return r.length>=Y.rows?(t=!0,!1):(r.push(n.map((t,n)=>i(n<e.length?e[n]:a))),!0)},done:()=>({columns:n,rows:r,truncated:t})}}function In(e){let t=[],n=[],r=``,i=!1,a=0,o=()=>{n.push(r),r=``,(n.length!==1||n[0]!==``)&&t.push(n),n=[]};for(;a<e.length&&t.length<=Y.rows+1;){let t=e[a];i?t===`"`?e[a+1]===`"`?(r+=`"`,a++):i=!1:r+=t:t===`"`&&r===``?i=!0:t===`,`?(n.push(r),r=``):t===`
5
+ `||t===`\r`?(t===`\r`&&e[a+1]===`
6
+ `&&a++,o()):r+=t,a++}(r!==``||n.length)&&o();let[s,...c]=t;if(!s)return{columns:[],rows:[],truncated:!1};let l=Fn(s);for(let e of c)if(!l.add(e,``))break;return l.done()}var Ln=e=>{if(typeof e!=`object`||!e||Array.isArray(e))return!1;let t=Object.getPrototypeOf(e);return t===Object.prototype||t===null};function Rn(e){if(e==null)return null;if(typeof e==`string`||typeof e==`boolean`)return e;if(typeof e==`number`)return Number.isFinite(e)?e:null;try{return JSON.stringify(e)??null}catch{return null}}function zn(e){if(Ln(e)&&Array.isArray(e.columns)&&Array.isArray(e.rows)){let t=Fn(e.columns.map(String));for(let n of e.rows)if(!t.add(Array.isArray(n)?n.map(Rn):[],null))break;return t.done()}if(Array.isArray(e)){if(e.every(Ln)){let t=[],n=new Set;for(let r of e){for(let e of Object.keys(r))n.has(e)||(n.add(e),t.push(e));if(t.length>Y.columns)break}let r=Fn(t);for(let n of e)if(!r.add(t.slice(0,Y.columns).map(e=>Rn(Object.hasOwn(n,e)?n[e]:null)),null))break;return r.done()}if(e.length&&e.every(Array.isArray)){let[t,...n]=e,r=Fn(t.map(String));for(let e of n)if(!r.add(e.map(Rn),null))break;return r.done()}}}function Bn(e,t){if(t===``)return e;let n=e;for(let e of t.split(`.`))if(Array.isArray(n)){if(!/^\d{1,6}$/.test(e))return;let t=Number(e);if(t>=n.length)return;n=n[t]}else if(Ln(n)){if(e===`__proto__`||!Object.hasOwn(n,e))return;n=n[e]}else return;return n}function Vn(e){if(typeof e==`number`)return Number.isFinite(e)?e:void 0;if(typeof e!=`string`||e.trim()===``)return;let t=Number(e.trim());return Number.isFinite(t)?t:void 0}function Hn(e,t){switch(t){case`application/json`:try{return{ok:!0,format:`json`,value:JSON.parse(e)}}catch{return{ok:!1,error:`The JSON is not valid`}}case`text/csv`:return{ok:!0,format:`table`,value:In(e)};case`text/markdown`:case`text/plain`:return{ok:!0,format:`text`,value:e};default:return{ok:!1,error:`${t} isn't data`}}}function Un(e){if(e.ok){if(e.format===`table`)return e.value;if(e.format===`json`)return zn(e.value)}}var X={widgets:24,sources:8,refreshMinSeconds:30,refreshMaxSeconds:86400,defaultRefreshSeconds:300,staleFactor:2,concurrent:4,sourceBytes:524288,titleChars:120,markdownChars:2e4,chartSeries:4,chartPoints:500,tableRows:1e3,defaultTableRows:50},Wn=e=>typeof e==`object`&&!!e&&!Array.isArray(e),Gn=(e,t,n)=>typeof e==`number`&&Number.isSafeInteger(e)&&e>=t&&e<=n,Kn=e=>typeof e==`string`&&e.length>=1&&e.length<=120,qn=/^(?!\/)(?!.*(?:^|\/)\.\.?(?:\/|$))[A-Za-z0-9._/-]{1,200}$/,Jn=/^[A-Za-z0-9_$ -]{1,64}$/,Yn=/^[A-Za-z0-9_-]{1,40}$/,Xn={dashboard:[`v`,`title`,`refreshSeconds`,`widgets`],binding:[`artifact`,`path`,`select`],metric:[`id`,`type`,`title`,`width`,`source`,`unit`,`precision`],table:[`id`,`type`,`title`,`width`,`source`,`columns`,`limit`],chart:[`id`,`type`,`title`,`width`,`source`,`chart`,`x`,`y`],markdown:[`id`,`type`,`title`,`width`,`text`,`source`],chartSpec:[`v`,`title`,`chart`,`x`,`y`,`data`]};function Zn(e,t,n){let r=Object.keys(e).find(e=>!t.includes(e));return r===void 0?void 0:`${n} has an unknown field ${JSON.stringify(r.slice(0,40))}`}var Qn=e=>`${e.artifact}|${e.path??``}`;function $n(e,t,n,r){if(!Wn(e))return void r.push(`${t}.source must be an object`);let i=Zn(e,Xn.binding,`${t}.source`);if(i)return void r.push(i);if(!I(`artifact`,e.artifact))return void r.push(`${t}.source.artifact must be an artifact ID`);if(n!==void 0&&e.artifact===n)return void r.push(`${t}: a dashboard can't bind to itself`);if(e.path!==void 0&&(typeof e.path!=`string`||!qn.test(e.path)))return void r.push(`${t}.source.path must be a relative file path`);if(e.select!==void 0&&(typeof e.select!=`string`||e.select.length>200||!e.select.split(`.`).every(e=>Jn.test(e))))r.push(`${t}.source.select must be a dot path like "0.count"`);else return{artifact:e.artifact,...e.path===void 0?{}:{path:e.path},...e.select===void 0?{}:{select:e.select}}}function er(e,t,n,r){let i=`widget ${t+1}`;if(!Wn(e))return void r.push(`${i} must be an object`);let a=e.type;if(a!==`metric`&&a!==`table`&&a!==`chart`&&a!==`markdown`)return void r.push(`${i}: type must be metric, table, chart or markdown`);let o=Zn(e,Xn[a],i);if(o)return void r.push(o);let s=r.length;(typeof e.id!=`string`||!Yn.test(e.id))&&r.push(`${i}: id must be 1–40 letters, digits, - or _`),e.title!==void 0&&(typeof e.title!=`string`||e.title.length>X.titleChars)&&r.push(`${i}: title must be at most ${X.titleChars} characters`),e.width!==void 0&&e.width!==1&&e.width!==2&&e.width!==3&&r.push(`${i}: width must be 1, 2 or 3`);let c={id:e.id,...e.title===void 0?{}:{title:e.title},width:e.width??1};if(a===`markdown`){e.text!==void 0&&e.source!==void 0?r.push(`${i}: a markdown widget has either text or a source`):e.text===void 0&&e.source===void 0&&r.push(`${i}: a markdown widget needs text or a source`),e.text!==void 0&&(typeof e.text!=`string`||e.text.length>X.markdownChars)&&r.push(`${i}: text must be at most ${X.markdownChars} characters`);let t=e.source===void 0?void 0:$n(e.source,i,n,r);return r.length>s?void 0:{...c,type:a,...e.text===void 0?{}:{text:e.text},...t?{source:t}:{}}}let l=$n(e.source,i,n,r);if(a===`metric`)return e.unit!==void 0&&(typeof e.unit!=`string`||e.unit.length>16)&&r.push(`${i}: unit must be at most 16 characters`),e.precision!==void 0&&!Gn(e.precision,0,6)&&r.push(`${i}: precision must be 0–6`),r.length>s||!l?void 0:{...c,type:a,source:l,...e.unit===void 0?{}:{unit:e.unit},...e.precision===void 0?{}:{precision:e.precision}};if(a===`table`)return e.columns!==void 0&&(!Array.isArray(e.columns)||e.columns.length>50||!e.columns.every(Kn))&&r.push(`${i}: columns must be at most 50 column names`),e.limit!==void 0&&!Gn(e.limit,1,X.tableRows)&&r.push(`${i}: limit must be 1–${X.tableRows}`),r.length>s||!l?void 0:{...c,type:a,source:l,...e.columns===void 0?{}:{columns:e.columns},limit:e.limit??X.defaultTableRows};let u=tr(e,i,r);if(!(r.length>s||!l||!u))return{...c,type:a,source:l,...u}}function tr(e,t,n){let r=n.length;return e.chart!==`line`&&e.chart!==`bar`&&n.push(`${t}: chart must be line or bar`),Kn(e.x)||n.push(`${t}: x must be a column name`),(!Array.isArray(e.y)||e.y.length<1||e.y.length>X.chartSeries||!e.y.every(Kn))&&n.push(`${t}: y must be 1–${X.chartSeries} column names`),n.length>r?void 0:{chart:e.chart,x:e.x,y:e.y}}function nr(e,t={}){if(!Wn(e))return{ok:!1,problems:[`A dashboard must be a JSON object`]};if(e.v!==1)return{ok:!1,problems:[`v must be 1 (this console reads dashboard schema v1)`]};let n=Zn(e,Xn.dashboard,`The dashboard`);if(n)return{ok:!1,problems:[n]};let r=[];if(e.title!==void 0&&(typeof e.title!=`string`||e.title.length>X.titleChars)&&r.push(`title must be at most ${X.titleChars} characters`),e.refreshSeconds!==void 0&&!Gn(e.refreshSeconds,X.refreshMinSeconds,X.refreshMaxSeconds)&&r.push(`refreshSeconds must be ${X.refreshMinSeconds}–${X.refreshMaxSeconds}`),!Array.isArray(e.widgets))return{ok:!1,problems:[...r,`widgets must be a list`]};if(e.widgets.length>X.widgets)return{ok:!1,problems:[`A dashboard has at most ${X.widgets} widgets`,...r]};let i=e.widgets.flatMap((e,n)=>er(e,n,t.selfID,r)??[]);return new Set(i.map(e=>e.id)).size!==i.length&&r.unshift(`widget ids must be unique`),new Set(i.flatMap(e=>e.source?[Qn(e.source)]:[])).size>X.sources&&r.unshift(`A dashboard reads at most ${X.sources} data sources (artifact + file)`),r.length?{ok:!1,problems:r}:{ok:!0,spec:{v:1,...e.title===void 0?{}:{title:e.title},refreshSeconds:e.refreshSeconds??X.defaultRefreshSeconds,widgets:i}}}function rr(e,t,n){let r=e.columns.indexOf(t);if(r<0)return{ok:!1,error:`No column "${t}"`};let i=n.map(t=>e.columns.indexOf(t)),a=n.find((e,t)=>i[t]<0);if(a!==void 0)return{ok:!1,error:`No column "${a}"`};let o=e.rows.slice(0,X.chartPoints);return{ok:!0,chart:{labels:o.map(e=>String(e[r]??``)),series:n.map((e,t)=>({name:e,values:o.map(e=>Vn(e[i[t]])??null)})),truncated:e.truncated||e.rows.length>o.length}}}function ir(e){if(!Wn(e))return{ok:!1,error:`A chart must be a JSON object`};if(e.v!==1)return{ok:!1,error:`v must be 1`};let t=Zn(e,Xn.chartSpec,`The chart`);if(t)return{ok:!1,error:t};let n=[],r=tr(e,`The chart`,n);if(!r)return{ok:!1,error:n[0]};if(e.title!==void 0&&(typeof e.title!=`string`||e.title.length>X.titleChars))return{ok:!1,error:`title is too long`};let i=zn(e.data);if(!i)return{ok:!1,error:`data must be a table (a list of objects, a list of lists or {columns, rows})`};let a=rr(i,r.x,r.y);return a.ok?{ok:!0,kind:r.chart,...e.title===void 0?{}:{title:e.title},chart:a.chart}:a}function ar(e){let t=e&&typeof e==`object`?e:{},n=typeof t.status==`number`?t.status:0;return t.name===`NetworkError`||n===503||t.code===`offline`?{kind:`offline`,text:`Can't reach the hub; showing the last data loaded.`}:n===404||t.code===`not_found`?{kind:`not_found`,text:`The source artifact doesn't exist or you can't see it.`}:n===401||n===403?{kind:`forbidden`,text:`This device isn't allowed to read the source artifact.`}:n===422||t.code===`unsupported`?{kind:`unsupported`,text:`Artifacts aren't supported on this hub.`}:t.name===`TooLargeError`||t.code===`too_large`?{kind:`too_large`,text:`The source file is larger than ${X.sourceBytes/1024} KiB.`}:{kind:`error`,text:`Could not read the source: ${typeof t.message==`string`&&t.message?t.message:`HTTP ${n}`}`}}function or(e){let t=new Map;for(let n of e.widgets)n.source&&!t.has(Qn(n.source))&&t.set(Qn(n.source),{artifact:n.source.artifact,...n.source.path?{path:n.source.path}:{}});return[...t.values()]}function sr(e,t,n){let r=or(e),i=new Map(r.map(e=>[Qn(e),{status:`loading`}])),a,o=!1,s=(e,t)=>{o||(i.set(e,t),n.onChange())},c=(e,t)=>{let r=i.get(e),a=n.now();s(e,r?.status===`ready`?{...r,error:t,failedAt:a}:{status:`error`,error:t,failedAt:a})};async function l(e){let r=Qn(e);try{let{data:i,revisionNumber:a}=await t.read(e);i.ok?s(r,{status:`ready`,data:i,revisionNumber:a,loadedAt:n.now()}):c(r,{kind:`invalid`,text:i.error})}catch(e){c(r,ar(e))}}function u(){if(o)return Promise.resolve();if(a)return a;let e=[...r];return a=Promise.all(Array.from({length:Math.min(X.concurrent,e.length)},async()=>{for(let t=e.shift();t;t=e.shift())await l(t)})).then(()=>{a=void 0}),a}return{refresh:u,bindings:()=>r,state:e=>i.get(e),get refreshing(){return a!==void 0},dispose(){o=!0}}}function cr(e){if(!e.ok||e.format===`text`)return;if(e.format===`json`)return e.value;let{columns:t,rows:n}=e.value;return n.map(e=>Object.fromEntries(t.map((t,n)=>[t,e[n]??null])))}function lr(e,t){return t===void 0?Un(e):zn(Bn(cr(e),t))}function ur(e,t){let n=Vn(e);if(n!==void 0)return t===void 0?String(Math.round(n*1e6)/1e6):n.toFixed(t);if(typeof e==`string`||typeof e==`boolean`)return String(e)}function dr(e,t){switch(e.type){case`markdown`:return t.ok&&t.format===`text`?{kind:`markdown`,text:t.value.slice(0,X.markdownChars)}:`This widget needs a Markdown or text source.`;case`metric`:{if(!t.ok||t.format===`text`)return`This widget needs JSON or CSV data.`;let n=ur(Bn(cr(t),e.source.select??``),e.precision);return n===void 0?`No single value at "${e.source.select??``}".`:{kind:`metric`,text:n,...e.unit?{unit:e.unit}:{}}}case`table`:{let n=lr(t,e.source.select);if(!n)return`This widget needs table data (CSV or a JSON list).`;let r=e.columns?e.columns.map(e=>n.columns.indexOf(e)).filter(e=>e>=0):n.columns.map((e,t)=>t);if(!r.length)return`None of the widget's columns are in the data.`;let i=n.rows.slice(0,e.limit).map(e=>r.map(t=>e[t]??null));return{kind:`table`,table:{columns:r.map(e=>n.columns[e]),rows:i,truncated:n.truncated||n.rows.length>i.length}}}case`chart`:{let n=lr(t,e.source.select);if(!n)return`This widget needs table data (CSV or a JSON list).`;let r=rr(n,e.x,e.y);return r.ok?{kind:`chart`,chart:r.chart,type:e.chart}:r.error}}}function fr(e,t,n,r){if(e.type===`markdown`&&e.text!==void 0)return{status:`ready`,stale:!1,content:{kind:`markdown`,text:e.text}};if(!t||t.status===`loading`)return{status:`loading`};if(t.status===`error`)return{status:`error`,text:t.error.text};let i=dr(e,t.data);return typeof i==`string`?{status:`error`,text:i}:{status:`ready`,stale:t.error!==void 0||n-t.loadedAt>X.staleFactor*r,updatedAt:t.loadedAt,revisionNumber:t.revisionNumber,...t.error?{error:t.error.text}:{},content:i}}var pr=w(`<a class="av-download btn small"rel=noopener> <span class=faint>(<!>)`),mr=w(`<div class=cv><div class=cv-head><span class=cv-name></span><span class=cv-lang></span><span class=cv-count> line</span></div><div class=cv-scroll tabindex=0 role=region><pre class=cv-code><code>`),hr=w(`<span class=cv-line><span class=cv-ln aria-hidden=true></span><span class=cv-tx>`),gr=w(`<span>`),_r=w(`<pre class=av-text>`),vr=w(`<div class=av-image-wrap><img class=av-image decoding=async referrerpolicy=no-referrer>`),yr=w(`<p class=av-note>Only part of the data is shown (limits: rows, columns or cell length).`),br=w(`<div class=av-table-wrap><table class=av-table><thead><tr></tr></thead><tbody>`),xr=w(`<th scope=col>`),Sr=w(`<tr>`),Cr=w(`<td>`),wr=w(`<figure class=av-chart><svg viewBox="0 0 600 240"role=img preserveAspectRatio=none><line class=av-axis></line><text class=av-tick text-anchor=end></text><text class=av-tick text-anchor=end></text></svg><figcaption class=av-legend><button type=button class="btn small">`),Tr=w(`<svg><text class=av-tick y=232 text-anchor=middle></svg>`,!1,!0,!1),Er=w(`<svg><rect class=av-bar></svg>`,!1,!0,!1),Dr=w(`<svg><polyline class=av-line fill=none stroke-width=2></svg>`,!1,!0,!1),Or=w(`<span><i></i> `),kr=w(`<div class=av-isolated role=note><p>This <!> artifact opens in the isolated viewer. It isn't shown inside the console, so its scripts and styles can't reach your hub session.`);function Ar(e){return e.path??`${e.mediaType} file`}var jr=e=>e<1024?`${e} B`:`${Math.ceil(e/1024)} KiB`;function Mr(e){return(()=>{var t=pr(),n=t.firstChild,r=n.nextSibling,i=r.firstChild.nextSibling;return i.nextSibling,m(t,()=>e.label??`Download ${Ar(e.file)}`,n),m(r,()=>jr(e.file.bytes),i),o(n=>{var r=ie(e.artifactID,e.revisionID,e.file.hash),i=e.file.path?.split(`/`).pop()??``;return r!==n.e&&h(t,`href`,n.e=r),i!==n.t&&h(t,`download`,n.t=i),n},{e:void 0,t:void 0}),t})()}function Nr(e){let[t,r]=c(!1),[a,l]=c(!1),u;x(()=>clearTimeout(u));let f=_(()=>ct(oe(e.lang,e.text))),p=()=>ut(e.file,e.lang),g=async()=>{await ae(e.text)&&(l(!0),clearTimeout(u),u=setTimeout(()=>l(!1),1500))};return(()=>{var c=mr(),l=c.firstChild,u=l.firstChild,_=u.nextSibling,v=_.nextSibling,y=v.firstChild,x=l.nextSibling,S=x.firstChild,w=S.firstChild;return m(l,n(T,{name:`code`}),u),m(u,()=>p().name),m(_,()=>p().language),m(v,()=>f().length,y),m(v,()=>f().length===1?``:`s`,null),m(l,n(C,{icon:`wrap`,get label(){return t()?`Scroll long lines`:`Wrap long lines`},get"aria-pressed"(){return t()},onClick:()=>r(!t())}),null),m(l,n(C,{get icon(){return a()?`check`:`copy`},get label(){return a()?`Copied`:`Copy code`},onClick:()=>void g()}),null),m(w,n(d,{get each(){return f()},children:(e,t)=>(()=>{var r=hr(),i=r.firstChild,a=i.nextSibling;return h(i,`data-n`,t+1),m(a,n(d,{get each(){return e()},children:e=>n(s,{get when(){return e().kind},get fallback(){return e().text},get children(){return(()=>{var t=gr();return m(t,()=>e().text),o(()=>b(t,`tok-${e().kind}`)),t})()}})})),r})()})),o(n=>{var r=!!t(),a=String(String(f().length).length),o=e.file?.path,s=`${p().name} source`,l=e.lang||void 0;return r!==n.e&&c.classList.toggle(`wrap`,n.e=r),a!==n.t&&i(c,`--cv-digits`,n.t=a),o!==n.a&&h(u,`title`,n.a=o),s!==n.o&&h(x,`aria-label`,n.o=s),l!==n.i&&h(S,`data-lang`,n.i=l),n},{e:void 0,t:void 0,a:void 0,o:void 0,i:void 0}),c})()}function Pr(e){return(()=>{var t=_r();return m(t,()=>e.text),t})()}function Fr(e){let t=_(t=>(t&&URL.revokeObjectURL(t),URL.createObjectURL(new Blob([e.bytes],{type:e.mediaType}))));return x(()=>URL.revokeObjectURL(t())),(()=>{var n=vr(),r=n.firstChild;return o(n=>{var i=t(),a=e.alt;return i!==n.e&&h(r,`src`,n.e=i),a!==n.t&&h(r,`alt`,n.t=a),n},{e:void 0,t:void 0}),n})()}var Ir=e=>e==null?``:String(e);function Lr(e){return(()=>{var t=br(),r=t.firstChild,i=r.firstChild,a=i.firstChild,c=i.nextSibling;return m(a,n(l,{get each(){return e.table.columns},children:e=>(()=>{var t=xr();return m(t,e),t})()})),m(c,n(d,{get each(){return e.table.rows},children:e=>(()=>{var t=Sr();return m(t,n(d,{get each(){return e()},children:e=>(()=>{var t=Cr();return m(t,()=>Ir(e())),o(()=>b(t,typeof e()==`number`?`num`:void 0)),t})()})),t})()})),m(t,n(s,{get when(){return e.table.truncated},get children(){return yr()}}),null),o(()=>h(r,`aria-label`,e.label)),t})()}var Rr=600,zr=240,Z={l:44,r:8,t:10,b:28},Br=[`var(--accent)`,`#c26b1a`,`#6b5bd6`,`#2f8f4e`];function Vr(e){let t=_(()=>e.chart.series.flatMap(e=>e.values.filter(e=>e!==null))),r=_(()=>Math.min(0,...t())),a=_(()=>{let e=Math.max(0,...t());return e===r()?r()+1:e}),u=e=>Z.t+(zr-Z.t-Z.b)*(1-(e-r())/(a()-r())),f=()=>Math.max(1,e.chart.labels.length),p=()=>(Rr-Z.l-Z.r)/f(),g=e=>Z.l+p()*e+p()/2,v=()=>Math.max(1,Math.ceil(f()/10)),y=()=>`${e.type===`bar`?`Bar`:`Line`} chart${e.title?` of ${e.title}`:``}: ${e.chart.series.map(e=>e.name).join(`, `)} by ${e.chart.labels.length} points`,[b,x]=c(!1),S=()=>({columns:[``,...e.chart.series.map(e=>e.name)],rows:e.chart.labels.map((t,n)=>[t,...e.chart.series.map(e=>e.values[n]??null)]),truncated:e.chart.truncated});return(()=>{var t=wr(),c=t.firstChild,f=c.firstChild,_=f.nextSibling,C=_.nextSibling,w=c.nextSibling,T=w.firstChild;return m(_,()=>Hr(a())),m(C,()=>Hr(r())),m(c,n(d,{get each(){return e.chart.labels},children:(e,t)=>n(s,{get when(){return t%v()===0},get children(){var n=Tr();return m(n,()=>e().slice(0,12)),o(()=>h(n,`x`,g(t))),n}})}),null),m(c,n(d,{get each(){return e.chart.series},children:(t,r)=>e.type===`bar`?n(d,{get each(){return t().values},children:(t,i)=>{let a=()=>p()*.8/e.chart.series.length;return n(s,{get when(){return t()!==null},get children(){var e=Er();return o(n=>{var o=Z.l+p()*i+p()*.1+a()*r,s=Math.min(u(t()),u(0)),c=Math.max(1,a()-1),l=Math.max(1,Math.abs(u(0)-u(t()))),d=Br[r%Br.length];return o!==n.e&&h(e,`x`,n.e=o),s!==n.t&&h(e,`y`,n.t=s),c!==n.a&&h(e,`width`,n.a=c),l!==n.o&&h(e,`height`,n.o=l),d!==n.i&&h(e,`fill`,n.i=d),n},{e:void 0,t:void 0,a:void 0,o:void 0,i:void 0}),e}})}}):(()=>{var e=Dr();return o(n=>{var i=Br[r%Br.length],a=t().values.flatMap((e,t)=>e===null?[]:[`${g(t)},${u(e)}`]).join(` `);return i!==n.e&&h(e,`stroke`,n.e=i),a!==n.t&&h(e,`points`,n.t=a),n},{e:void 0,t:void 0}),e})()}),null),m(w,n(l,{get each(){return e.chart.series},children:(e,t)=>(()=>{var n=Or(),r=n.firstChild;return r.nextSibling,m(n,()=>e.name,null),o(e=>i(r,`background`,Br[t()%Br.length])),n})()}),T),T.$$click=()=>x(!b()),m(T,()=>b()?`Hide data`:`Show data`),m(t,n(s,{get when(){return b()},get children(){return n(Lr,{get table(){return S()}})}}),null),o(e=>{var t=y(),n=Z.l,i=Rr-Z.r,o=u(0),s=u(0),l=Z.l-6,d=u(a())+4,p=Z.l-6,m=u(r())+4,g=b();return t!==e.e&&h(c,`aria-label`,e.e=t),n!==e.t&&h(f,`x1`,e.t=n),i!==e.a&&h(f,`x2`,e.a=i),o!==e.o&&h(f,`y1`,e.o=o),s!==e.i&&h(f,`y2`,e.i=s),l!==e.n&&h(_,`x`,e.n=l),d!==e.s&&h(_,`y`,e.s=d),p!==e.h&&h(C,`x`,e.h=p),m!==e.r&&h(C,`y`,e.r=m),g!==e.d&&h(T,`aria-expanded`,e.d=g),e},{e:void 0,t:void 0,a:void 0,o:void 0,i:void 0,n:void 0,s:void 0,h:void 0,r:void 0,d:void 0}),t})()}function Hr(e){let t=Math.abs(e);return t>=1e6?`${Math.round(e/1e5)/10}M`:t>=1e3?`${Math.round(e/100)/10}k`:String(Math.round(e*100)/100)}function Ur(e){return(()=>{var t=kr(),n=t.firstChild,r=n.firstChild.nextSibling;return r.nextSibling,m(n,()=>e.kind===`app`?`app`:`HTML`,r),m(t,()=>e.children,null),t})()}O([`click`]);var Wr=w(`<div class="av-note err"role=alert><p>This dashboard can't be shown:</p><ul>`),Gr=w(`<li>`),Kr=w(`<h2 class=dash-title>`),qr=w(`<section class=dash><div class=dash-bar><span class=faint>Refreshes every <!> while open · <!> of at most <!> sources</span><button type=button class="btn small dash-refresh">Refresh</button></div><div class=dash-grid>`),Jr=w(`<article><header class=dash-head><h3>`),Yr=w(`<span class=dash-stale>Stale · updated `),Xr=w(`<span class="dash-rev faint">rev `),Zr=w(`<p class=faint role=status>Loading…`),Qr=w(`<p class=dash-error>`),$r=w(`<small> `),ei=w(`<p class=dash-metric><span>`);function ti(e){let t=_(()=>{try{return nr(JSON.parse(e.text),{selfID:e.artifactID})}catch{return{ok:!1,problems:[`The dashboard is not valid JSON.`]}}});return n(s,{get when(){return r(()=>!!t().ok)()&&t()},keyed:!0,get fallback(){return(()=>{var e=Wr(),r=e.firstChild.nextSibling;return m(r,n(l,{get each(){return t().problems.slice(0,8)},children:e=>(()=>{var t=Gr();return m(t,e),t})()})),e})()},children:t=>n(ni,{get spec(){return t.spec},get source(){return e.source}})})}function ni(e){let[t,i]=c(0),[a,u]=c(Date.now()),[d,f]=c(!1),p=sr(e.spec,e.source,{now:Date.now,onChange:()=>i(e=>e+1)}),g=e.spec.refreshSeconds*1e3,_=async()=>{f(!0),await p.refresh(),u(Date.now()),f(!1)},v=()=>typeof document>`u`||document.visibilityState===`visible`;E(()=>{_();let e=setInterval(()=>v()&&void _(),g),t=setInterval(()=>u(Date.now()),15e3),n=()=>v()&&void _();document.addEventListener(`visibilitychange`,n),x(()=>{clearInterval(e),clearInterval(t),document.removeEventListener(`visibilitychange`,n),p.dispose()})});let y=e=>(t(),fr(e,e.source?p.state(Qn(e.source)):void 0,a(),g));return(()=>{var t=qr(),i=t.firstChild,c=i.firstChild,u=c.firstChild.nextSibling,f=u.nextSibling.nextSibling,g=f.nextSibling.nextSibling;g.nextSibling;var v=c.nextSibling,x=i.nextSibling;return m(i,n(s,{get when(){return e.spec.title},get children(){var t=Kr();return m(t,()=>e.spec.title),t}}),c),m(c,(()=>{var t=r(()=>e.spec.refreshSeconds<120);return()=>t()?`${e.spec.refreshSeconds} s`:`${Math.round(e.spec.refreshSeconds/60)} min`})(),u),m(c,()=>p.bindings().length,f),m(c,()=>X.sources,g),v.$$click=()=>void _(),m(x,n(l,{get each(){return e.spec.widgets},children:e=>(()=>{var t=Jr(),r=t.firstChild,i=r.firstChild;return m(i,()=>e.title??``),m(r,n(ri,{get view(){return y(e)},get now(){return a()}}),null),m(t,n(ii,{get view(){return y(e)},get title(){return e.title}}),null),o(n=>{var r=`dash-widget span-${e.width}`,i=e.id,a=e.title??e.id;return r!==n.e&&b(t,n.e=r),i!==n.t&&h(t,`data-widget`,n.t=i),a!==n.a&&h(t,`aria-label`,n.a=a),n},{e:void 0,t:void 0,a:void 0}),t})()})),o(n=>{var r=e.spec.title??`Dashboard`,i=d(),a=d();return r!==n.e&&h(t,`aria-label`,n.e=r),i!==n.t&&h(v,`aria-busy`,n.t=i),a!==n.a&&(v.disabled=n.a=a),n},{e:void 0,t:void 0,a:void 0}),t})()}function ri(e){let t=()=>e.view.status===`ready`?e.view:void 0;return n(s,{get when(){return r(()=>t()?.updatedAt!==void 0)()&&t()},children:t=>n(s,{get when(){return t().stale},get fallback(){return(()=>{var e=Xr();return e.firstChild,m(e,()=>t().revisionNumber,null),e})()},get children(){var n=Yr();return n.firstChild,m(n,()=>D(t().updatedAt,e.now),null),o(()=>h(n,`title`,t().error??`The data is older than two refresh intervals.`)),n}})})}function ii(e){return n(p,{get children(){return[n(a,{get when(){return e.view.status===`loading`},get children(){return Zr()}}),n(a,{get when(){return r(()=>e.view.status===`error`)()&&e.view},children:e=>(()=>{var t=Qr();return m(t,()=>e().text),t})()}),n(a,{get when(){return r(()=>e.view.status===`ready`)()&&e.view},children:t=>{let i=()=>t().content;return n(p,{get children(){return[n(a,{get when(){return r(()=>i().kind===`metric`)()&&i()},children:e=>(()=>{var t=ei(),r=t.firstChild;return m(r,()=>e().text),m(t,n(s,{get when(){return e().unit},get children(){var t=$r();return t.firstChild,m(t,()=>e().unit,null),t}}),null),t})()}),n(a,{get when(){return r(()=>i().kind===`table`)()&&i()},children:t=>n(Lr,{get table(){return t().table},get label(){return e.title}})}),n(a,{get when(){return r(()=>i().kind===`chart`)()&&i()},children:t=>n(Vr,{get chart(){return t().chart},get type(){return t().type},get title(){return e.title}})}),n(a,{get when(){return r(()=>i().kind===`markdown`)()&&i()},children:e=>n(_e,{get text(){return e().text}})})]}})}})]}})}O([`click`]);var ai=()=>new M(404,`No such artifact`),oi={async artifact(e){let t=V(await j(B(e)));if(!t)throw ai();return t},async revisions(e,t){return fe(await j(ve(e,t)))},async revision(e,t){let n=ue(await j(re(e,t)));if(!n)throw ai();return n},async bytes(e,t,n,r){return te(await L(ie(e,t,n.hash)),r)},async revise(e,t,n){let r=await L(`${B(e)}/revisions`,{method:`POST`,json:t,headers:{"idempotency-key":n}}),i=ue(await r.json());if(!i)throw new M(500,`The hub answered without a revision`);return i},async archive(e,t,n){let r=await L(`${B(e)}/${n?`archive`:`unarchive`}`,{method:`POST`,json:{expectedRevision:t}}),i=V(await r.json());if(!i)throw new M(500,`The hub answered without an artifact`);return i}},si=[`application/json`,`text/csv`,`text/markdown`,`text/plain`];function ci(e,t){return t===void 0?(e.entry===void 0?void 0:e.blobs.find(t=>t.path===e.entry))??e.blobs.find(e=>si.includes(e.mediaType))??e.blobs[0]:e.blobs.find(e=>e.path===t)}function li(e=oi){return{async read(t){let n=await e.artifact(t.artifact),r=await e.revision(n.id,n.latestRevisionID),i=ci(r,t.path);if(!i)return{data:{ok:!1,error:t.path?`The source has no file "${t.path}"`:`The source has no files`},revisionNumber:r.number};if(!si.includes(i.mediaType))return{data:{ok:!1,error:`A ${i.mediaType} file isn't data`},revisionNumber:r.number};let a=await e.bytes(n.id,r.id,i,X.sourceBytes);return{data:Hn(new TextDecoder().decode(a),i.mediaType),revisionNumber:r.number}}}}var ui=w(`<p class=faint>`),di=w(`<p class=faint>Nothing else in this workspace yet.`),fi=w(`<button type=button class="btn small">Load more`),pi=w(`<aside class=av-outputs><h2>More in </h2><ul></ul><a class=av-outputs-all>All in the library`),mi=w(`<li><a></a> <button type=button class="btn small">Pane</button><span class=faint> · `);function hi(e){let[t,i]=c({status:`loading`}),a=Se(e.source??Te,i),u={workspace:e.workspaceID,type:``};E(()=>a.load(u));let d=()=>{let n=t();return n.status===`ready`?n.items.filter(t=>t.id!==e.excludeID):[]};return(()=>{var i=pi(),c=i.firstChild;c.firstChild;var u=c.nextSibling,f=u.nextSibling;return m(c,()=>e.workspaceName,null),m(i,n(s,{get when(){return t().status===`error`},get children(){var e=ui();return m(e,()=>t().error.text),e}}),u),m(i,n(s,{get when(){return r(()=>t().status===`ready`)()&&!d().length},get children(){return di()}}),u),m(u,n(l,{get each(){return d()},children:e=>(()=>{var t=mi(),n=t.firstChild,r=n.nextSibling.nextSibling,i=r.nextSibling,a=i.firstChild;return m(n,()=>e.title||`Untitled`),r.$$click=()=>z(e.id),m(i,()=>st[e.kind],a),m(i,()=>D(e.updatedAt),null),o(t=>{var i=we(e.id),a=`Open ${e.title||`Untitled`} in a pane`;return i!==t.e&&h(n,`href`,t.e=i),a!==t.t&&h(r,`aria-label`,t.t=a),t},{e:void 0,t:void 0}),t})()})),m(i,n(s,{get when(){return r(()=>t().status===`ready`)()&&t().more},get children(){var e=fi();return e.$$click=()=>a.more(),e}}),f),o(t=>{var n=`More in ${e.workspaceName}`,r=`/artifacts?workspace=${encodeURIComponent(e.workspaceID)}`;return n!==t.e&&h(i,`aria-label`,t.e=n),r!==t.t&&h(f,`href`,t.t=r),t},{e:void 0,t:void 0}),i})()}O([`click`]);var gi=w(`<header class=av-bar><span class=av-bar-gap>`),_i=w(`<div><div class=av-empty><p class=muted role=status>Loading…`),vi=w(`<button type=button class="btn small">Retry`),yi=w(`<div><div class=av-empty><p class=av-note role=alert> `),bi=w(`<span class=av-chip>Archived`),xi=w(`<a class="icon-btn av-wide"rel=noopener aria-label=Download>`),Si=w(`<div class=av-old role=status><span>You're viewing revision <!>.</span><button type=button class="btn small">Back to latest`),Ci=w(`<span class=av-draft>You have an unsaved draft of this artifact<!>.`),wi=w(`<div class=av-status>`),Ti=w(`<p class=av-desc>`),Ei=w(`<div><header class=av-bar><span class=av-kind role=img></span><span class=av-bar-gap></span><div class=av-tools></div></header><div class=av-split><div class=av-stage><div class="av-card av-body">`),Di=w(`<span>`),Oi=w(`<div class=av-conflict role=alert><p>Someone changed this artifact since you opened it<!>. Your draft is kept; the latest revision is shown below. Save over it, or discard your draft.</p><button type=button class="btn small primary">Save over latest</button> <button type=button class="btn small">Discard draft`),ki=w(`<section class=av-latest aria-label="Latest revision"><p class=av-latest-head>Latest revision`),Ai=w(`<form class=av-edit><div class=av-edit-head><span class=av-edit-name>Editing </span><span class="faint av-wide">New revision on revision </span><span class=av-bar-gap></span><button type=button class="btn small"title="Close the editor; the draft stays on this device">Close</button><button type=button class="btn small">Discard</button><button type=submit class="btn small primary">Save</button></div><textarea>`),ji=w(`<p class="av-note err av-edit-err"role=alert>`),Mi=w(`<div class=av-files><h4>Files in revision </h4><ul>`),Ni=w(`<section class=av-details role=dialog aria-label=Details><div class=av-details-head><h3>Details</h3><button type=button class=icon-btn aria-label="Close details"title="Close details"></button></div><dl class=av-facts>`),Pi=w(`<dt>`),Fi=w(`<dd>`),Ii=w(`<li>`),Li=w(`<p class="av-note av-pad">This revision has no files.`),Ri=w(`<div class=av-download-card><p class=av-note>`),zi=w(`<p class="muted av-pad"role=status>Loading…`),Bi=w(`<article class=av-prose>`),Vi=w(`<div class=av-pad>`),Hi=w(`<p class="muted av-pad">Loading…`),Ui=w(`<p class="av-note av-pad"role=alert>`),Wi=w(`<p class="av-note err av-pad"role=alert>`),Gi=w(`<p class="av-note err av-pad">This file isn't a table (CSV or a JSON list).`),Ki=w(`<p class="av-note err av-pad">This chart can't be shown: `),qi=new Set([`markdown`,`text`,`code`,`table`,`chart`,`dashboard`]),Ji={markdown:`doc`,code:`code`,image:`image`,table:`table`,chart:`chart`,dashboard:`grid`,html:`app`,app:`app`,file:`file`};function Yi(){try{return window.localStorage}catch{return}}function Xi(){return`console-${[...crypto.getRandomValues(new Uint8Array(16))].map(e=>e.toString(16).padStart(2,`0`)).join(``)}`}function Zi(e){let t=e.source??oi,i=li(t),[l,u]=c(),[d,f]=c(),[g,S]=c([]),[w,D]=c(),[O,k]=c(),[A,j]=c(),[M,N]=c({status:`loading`}),[P,F]=c(),[I,L]=c(new Map),[R,z]=c(),[B,te]=c(0),[V,ne]=c(!1),[re,oe]=c(!1),[ce,ue]=c(!1),fe;x(()=>clearTimeout(fe));let pe=0,U=_(()=>{let e=l(),t=A();return e&&t?H(e.kind,t):void 0}),me=()=>g()[0]?.number,he=()=>A()!==void 0&&A().id===l()?.latestRevisionID,ge=()=>ne(!!Yi()?.getItem(be(e.id))),_e=()=>{let e=M();return e.status===`ready`?e.text:void 0};async function ve(n,r){let i=++pe;N({status:`loading`});try{let a=await t.revision(n.id,r);if(i!==pe)return;j(a),e.onRevision?.(a);let o=H(n.kind,a);if(!o.file||!qi.has(o.mode)&&o.mode!==`image`)return void N({status:`none`});let s=await t.bytes(n.id,a.id,o.file,o.mode===`image`?se.imageBytes:se.textBytes);if(i!==pe)return;N({status:`ready`,bytes:s,...o.mode===`image`?{}:{text:new TextDecoder().decode(s)}})}catch(e){i===pe&&N({status:`error`,error:de(e)})}}async function ye(e,n){try{let r=await t.revisions(e,n);S(e=>{let t=n?[...e,...r.items]:r.items,i=new Set;return t.filter(e=>!i.has(e.id)&&i.add(e.id))}),D(r.cursor)}catch{}}async function Se(){try{let n=await t.artifact(e.id);u(n),f(void 0),e.onArtifact?.(n),await Promise.all([ye(n.id),ve(n,O()??n.latestRevisionID)])}catch(e){f(de(e))}}E(()=>{ge(),Ce().then(e=>L(new Map(e.map(e=>[e.id,e.title])))),Se(),e.control?.({view:e=>we(e===l()?.latestRevisionID?void 0:e),reload:()=>{k(void 0),Se()}})});let we=e=>{k(e),F(void 0);let t=l();t&&ve(t,e??t.latestRevisionID)};function Te(){let e=l(),n=A(),r=U(),i=M();e&&n&&r?.file&&i.status===`ready`&&i.text!==void 0&&(F(void 0),z(le({artifactID:e.id,baseRevisionID:n.id,file:r.file,original:i.text},{revise:t.revise,storage:Yi(),newKey:Xi,onChange:()=>te(e=>e+1)})))}let Ee=()=>(B(),R()?.state());async function De(e=!1){let t=R();if(!t)return;if(e){let e=l()?.latestRevisionID;e&&t.rebase(e)}let n=await t.save();n?(z(void 0),k(void 0),await Se(),F({text:`Saved revision ${n.number}.`})):t.state().status===`conflict`&&(k(void 0),await Se()),ge()}let Oe=e=>{e&&R()?.discard(),z(void 0),ge()};async function ke(){let e=_e();e!==void 0&&await ae(e)&&(ue(!0),clearTimeout(fe),fe=setTimeout(()=>ue(!1),1500))}function Ae(){let e=l(),t=A(),n=U()?.file;if(!e||!t||!n)return;let r=document.createElement(`a`);r.href=ie(e.id,t.id,n.hash),r.download=n.path?.split(`/`).pop()??``,r.rel=`noopener`,document.body.append(r),r.click(),r.remove()}async function je(n){let r=l();if(r&&t.archive)try{let i=await t.archive(r.id,r.revision,n);u(i),e.onArtifact?.(i),F({text:n?`Archived: read only until you unarchive it.`:`Unarchived.`})}catch(e){F({text:de(e).text,error:!0}),Se()}}let W=e=>e.workspaceID?I().get(e.workspaceID)??xe(e.workspaceID,I()):`Private`,G=()=>{let e=l(),t=A(),n=M();return!!e&&!!t&&he()&&!R()&&n.status===`ready`&&n.text!==void 0&&ee(e,t)},Me=()=>{let e=l(),n=[{label:`Details`,run:()=>oe(!0)}];return _e()!==void 0&&n.push({label:`Copy contents`,run:()=>void ke()}),U()?.file&&n.push({label:`Download ${Ar(U().file)}`,run:Ae}),e&&t.archive&&n.push(`sep`,e.state===`archived`?{label:`Unarchive`,run:()=>void je(!1)}:{label:`Archive`,hint:`read only, reversible`,run:()=>void je(!0)}),n},Ne=()=>(()=>{var t=gi(),r=t.firstChild;return m(t,()=>e.lead,r),m(t,n(v,{get component(){return e.variant===`pane`?`h2`:`h1`},class:`av-title`,children:`Artifact`}),r),m(t,()=>e.trailing,null),t})();return n(p,{get children(){return[n(a,{get when(){return d()},children:t=>(()=>{var r=yi(),i=r.firstChild,a=i.firstChild,c=a.firstChild;return m(r,Ne,i),m(a,()=>t().text,c),m(a,n(s,{get when(){return t().kind===`offline`||t().kind===`error`},get children(){var e=vi();return e.$$click=()=>void Se(),e}}),null),o(()=>b(r,`av ${e.variant??`page`}`)),r})()}),n(a,{get when(){return!l()},get children(){var t=_i(),n=t.firstChild;return m(t,Ne,n),o(()=>b(t,`av ${e.variant??`page`}`)),t}}),n(a,{get when(){return l()},children:t=>(()=>{var a=Ei(),c=a.firstChild,l=c.firstChild,u=l.nextSibling,d=u.nextSibling,f=c.nextSibling,p=f.firstChild,_=p.firstChild;return m(c,()=>e.lead,l),m(l,n(T,{get name(){return Ji[t().kind]}})),m(c,n(v,{get component(){return e.variant===`pane`?`h2`:`h1`},class:`av-title`,get title(){return t().title||`Untitled`},get children(){return t().title||`Untitled`}}),u),m(c,n(Qi,{get revs(){return g()},get current(){return A()},get latestID(){return t().latestRevisionID},get more(){return w()!==void 0},onMore:()=>void ye(t().id,w()),onView:e=>we(e===t().latestRevisionID?void 0:e)}),u),m(c,n(s,{get when(){return t().state===`archived`},get children(){return bi()}}),u),m(d,n(s,{get when(){return _e()!==void 0},get children(){return n(C,{class:`av-wide`,get icon(){return ce()?`check`:`copy`},get label(){return ce()?`Copied`:`Copy`},onClick:()=>void ke()})}}),null),m(d,n(s,{get when(){return r(()=>!!A())()&&U()?.file},get children(){var e=xi();return m(e,n(T,{name:`download`})),o(n=>{var r=ie(t().id,A().id,U().file.hash),i=U().file.path?.split(`/`).pop()??``,a=`Download ${Ar(U().file)}`;return r!==n.e&&h(e,`href`,n.e=r),i!==n.t&&h(e,`download`,n.t=i),a!==n.a&&h(e,`title`,n.a=a),n},{e:void 0,t:void 0,a:void 0}),e}}),null),m(d,n(s,{get when(){return G()},get children(){return n(C,{icon:`edit`,label:`Edit`,onClick:Te})}}),null),m(d,()=>e.actions,null),m(d,n(y,{label:`Artifact actions`,items:Me}),null),m(d,()=>e.trailing,null),m(a,n(s,{get when(){return re()},get children(){return n($i,{get artifact(){return t()},get revision(){return A()},get plan(){return U()},get where(){return W(t())},onClose:()=>oe(!1)})}}),f),m(p,n(s,{get when(){return r(()=>!!A())()&&!he()},get children(){var e=Si(),t=e.firstChild,i=t.firstChild.nextSibling;i.nextSibling;var a=t.nextSibling;return m(e,n(T,{name:`info`}),t),m(t,()=>A().number,i),m(t,(()=>{var e=r(()=>!!me());return()=>e()?` of ${Math.max(me(),A().number)}`:``})(),i),a.$$click=()=>we(void 0),e}}),_),m(p,n(s,{get when(){return r(()=>!!V())()&&!R()||P()},get children(){var e=wi();return m(e,n(s,{get when(){return r(()=>!!V())()&&!R()},get children(){var e=Ci(),t=e.firstChild.nextSibling;return t.nextSibling,m(e,()=>G()?`; Edit to continue it`:``,t),e}}),null),m(e,n(s,{get when(){return P()},children:e=>(()=>{var t=Di();return m(t,()=>e().text),o(n=>{var r=e().error?`av-note err`:`av-saved`,i=e().error?`alert`:`status`;return r!==n.e&&b(t,n.e=r),i!==n.t&&h(t,`role`,n.t=i),n},{e:void 0,t:void 0}),t})()}),null),e}}),_),m(p,n(s,{get when(){return t().description},get children(){var e=Ti();return m(e,()=>t().description),e}}),_),m(_,n(s,{get when(){return r(()=>!!R())()&&Ee()},get fallback(){return n(ea,{get artifact(){return t()},get revision(){return A()},get plan(){return U()},get content(){return M()},get isolated(){return e.isolated},dash:i})},children:a=>(()=>{var c=Ai(),l=c.firstChild,u=l.firstChild;u.firstChild;var d=u.nextSibling;d.firstChild;var f=d.nextSibling.nextSibling,p=f.nextSibling,_=p.nextSibling,v=l.nextSibling;return c.addEventListener(`submit`,e=>{e.preventDefault(),De()}),m(l,n(T,{name:`edit`}),u),m(u,(()=>{var e=r(()=>!!U()?.file);return()=>e()?Ar(U().file):t().title})(),null),m(d,()=>g().find(e=>e.id===a().baseRevisionID)?.number??`?`,null),f.$$click=()=>Oe(!1),p.$$click=()=>Oe(!0),m(c,n(s,{get when(){return a().status===`conflict`},get children(){var e=Oi(),t=e.firstChild,n=t.firstChild.nextSibling;n.nextSibling;var r=t.nextSibling,i=r.nextSibling.nextSibling;return m(t,()=>a().restored?` (your draft was saved on an older revision)`:``,n),r.$$click=()=>void De(!0),i.$$click=()=>Oe(!0),e}}),v),m(c,n(s,{get when(){return r(()=>a().status===`error`)()&&a().error},children:e=>(()=>{var t=ji();return m(t,()=>e().text),t})()}),v),v.$$keydown=e=>{e.key===`s`&&(e.metaKey||e.ctrlKey)&&(e.preventDefault(),De())},v.$$input=e=>R()?.setDraft(e.currentTarget.value),h(v,`spellcheck`,!1),m(c,n(s,{get when(){return a().status===`conflict`},get children(){var r=ki();return r.firstChild,m(r,n(ea,{get artifact(){return t()},get revision(){return A()},get plan(){return U()},get content(){return M()},get isolated(){return e.isolated},dash:i}),null),r}}),null),o(e=>{var n=a().status===`saving`||a().status===`conflict`,r=a().status===`saving`,i=`Edit ${t().title||`artifact`}`;return n!==e.e&&(_.disabled=e.e=n),r!==e.t&&h(_,`aria-busy`,e.t=r),i!==e.a&&h(v,`aria-label`,e.a=i),e},{e:void 0,t:void 0,a:void 0}),o(()=>v.value=a().draft),c})()})),m(f,()=>e.side,null),o(n=>{var r=`av ${e.variant??`page`}`,i=t().kind,o=st[t().kind],s=st[t().kind],c=R()?`edit`:U()?.mode;return r!==n.e&&b(a,n.e=r),i!==n.t&&h(a,`data-kind`,n.t=i),o!==n.a&&h(l,`aria-label`,n.a=o),s!==n.o&&h(l,`title`,n.o=s),c!==n.i&&h(_,`data-mode`,n.i=c),n},{e:void 0,t:void 0,a:void 0,o:void 0,i:void 0}),a})()})]}})}function Qi(e){let t=()=>[{section:`Versions`},...e.revs.map(t=>({label:`Revision ${t.number}${t.id===e.latestID?` (latest)`:``}`,hint:`${ne(t.author)} · ${D(t.createdAt)}`,checked:t.id===e.current?.id,run:()=>e.onView(t.id)})),...e.more?[`sep`,{label:`Older revisions…`,run:()=>e.onMore()}]:[]];return n(s,{get when(){return e.current},children:i=>n(y,{get label(){return`Version: revision ${i().number}${i().id===e.latestID?` (latest)`:``}. Show versions`},get class(){return`av-ver${i().id===e.latestID?``:` old`}`},align:`left`,get text(){return[`v`,r(()=>i().number),n(T,{name:`down`})]},items:t})})}function $i(e){let i,a,o=t=>{t.key===`Escape`&&!S(i)&&(t.preventDefault(),e.onClose())},c=t=>{!i.contains(t.target)&&!t.target.closest?.(`.menu`)&&e.onClose()};E(()=>{document.addEventListener(`keydown`,o),setTimeout(()=>document.addEventListener(`mousedown`,c),0),a.focus()}),x(()=>{document.removeEventListener(`keydown`,o),document.removeEventListener(`mousedown`,c)});let u=()=>dt(e.artifact,{...e.artifact.workspaceID?{workspaceName:e.where}:{},when:D});return(()=>{var o=Ni(),c=o.firstChild,d=c.firstChild.nextSibling,f=c.nextSibling,p=i;typeof p==`function`?t(p,o):i=o,d.$$click=()=>e.onClose();var h=a;return typeof h==`function`?t(h,d):a=d,m(d,n(T,{name:`close`})),m(o,n(s,{get when(){return e.artifact.description},get children(){var t=Ti();return m(t,()=>e.artifact.description),t}}),f),m(f,n(l,{get each(){return u()},children:e=>[(()=>{var t=Pi();return m(t,()=>e.label),t})(),(()=>{var t=Fi();return m(t,()=>e.value),t})()]})),m(o,n(s,{get when(){return r(()=>!!e.revision)()&&e.plan?.files.length},get children(){var t=Mi(),r=t.firstChild;r.firstChild;var i=r.nextSibling;return m(r,()=>e.revision.number,null),m(i,n(l,{get each(){return e.plan.files},children:t=>(()=>{var r=Ii();return m(r,n(Mr,{get artifactID(){return e.artifact.id},get revisionID(){return e.revision.id},file:t,get label(){return Ar(t)}})),r})()})),t}}),null),m(o,n(s,{get when(){return e.artifact.workspaceID},children:t=>n(hi,{get workspaceID(){return t()},get workspaceName(){return e.where},get excludeID(){return e.artifact.id}})}),null),o})()}function ea(e){let t=()=>e.content.status===`ready`?e.content.text??``:``,i=_(()=>e.plan?.mode===`table`&&e.plan.file?Un(Hn(t(),e.plan.file.mediaType)):void 0),o=_(()=>{if(e.plan?.mode===`chart`)try{return ir(JSON.parse(t()))}catch{return{ok:!1,error:`The chart is not valid JSON.`}}});return n(p,{get children(){return[n(a,{get when(){return!e.plan||!e.revision},get children(){return n(s,{get when(){return r(()=>e.content.status===`error`)()&&e.content},get fallback(){return Hi()},children:e=>(()=>{var t=Ui();return m(t,()=>e().error.text),t})()})}}),n(a,{get when(){return e.plan.mode===`isolated`},get children(){return n(s,{get when(){return e.isolated},get fallback(){return n(Ur,{get kind(){return e.artifact.kind}})},children:t=>n(s,{get when(){return e.revision?.id},keyed:!0,children:n=>t()(e.artifact,e.revision)})})}}),n(a,{get when(){return e.plan.mode===`empty`},get children(){return Li()}}),n(a,{get when(){return e.plan.mode===`download`},get children(){var t=Ri(),r=t.firstChild;return m(t,n(T,{name:`file`}),r),m(r,()=>e.plan.note),m(t,n(Mr,{get artifactID(){return e.artifact.id},get revisionID(){return e.revision.id},get file(){return e.plan.file}}),null),t}}),n(a,{get when(){return e.content.status===`loading`},get children(){return zi()}}),n(a,{get when(){return r(()=>e.content.status===`error`)()&&e.content},children:e=>(()=>{var t=Wi();return m(t,()=>e().error.text),t})()}),n(a,{get when(){return e.plan.mode===`markdown`},get children(){var e=Bi();return m(e,n(_e,{get text(){return t()}})),e}}),n(a,{get when(){return e.plan.mode===`text`},get children(){var e=Bi();return m(e,n(Pr,{get text(){return t()}})),e}}),n(a,{get when(){return e.plan.mode===`code`},get children(){return n(Nr,f({get lang(){return e.plan.lang??``},get text(){return t()}},()=>e.plan.file?{file:e.plan.file}:{}))}}),n(a,{get when(){return r(()=>e.plan.mode===`image`&&e.content.status===`ready`)()&&e.content},children:t=>n(Fr,{get bytes(){return t().bytes},get mediaType(){return e.plan.file.mediaType},get alt(){return e.artifact.title}})}),n(a,{get when(){return e.plan.mode===`table`},get children(){return n(s,{get when(){return i()},get fallback(){return Gi()},children:t=>n(Lr,{get table(){return t()},get label(){return e.artifact.title}})})}}),n(a,{get when(){return r(()=>e.plan.mode===`chart`)()&&o()},children:t=>n(s,{get when(){return r(()=>!!t().ok)()&&t()},get fallback(){return(()=>{var e=Ki();return e.firstChild,m(e,()=>t().error,null),e})()},children:t=>(()=>{var r=Vi();return m(r,n(Vr,{get chart(){return t().chart},get type(){return t().kind},get title(){return t().title??e.artifact.title}})),r})()})}),n(a,{get when(){return e.plan.mode===`dashboard`},get children(){var r=Vi();return m(r,n(ti,{get artifactID(){return e.artifact.id},get text(){return t()},get source(){return e.dash}})),r}})]}})}O([`click`,`input`,`keydown`]);var ta=w(`<section class=cmp-consent aria-label="Requests from this artifact">`),na=w(`<p role=status><span><span class=cmp-quote>“<!>”</span> `),ra=w(`<p class="cmp-note err"role=status>`),ia=w(`<select class=aai-action aria-label="Declared action"><option value>Choose an action…`),aa=w(`<p class=cmp-note role=status>`),oa=w(`<p class="cmp-note err"role=alert>`),sa=w(`<form class=cmp-card role=group aria-label="AI request from the artifact"><p class=cmp-card-head><span class=cmp-card-icon aria-hidden=true></span><span><strong></strong> <span class=faint>(<!>)</span> asks for AI help</span></p><blockquote class=cmp-instruction></blockquote><p class=cmp-note>Written by the artifact, not by you. Nothing is sent unless you send it. The handler you choose gets this text and a read-only copy of <!>; the artifact gets back only the answer, or that an edit awaits your review. Edits still need your Accept under AI requests.</p><div class=cmp-row><div class=aai-seg role=radiogroup aria-label="Request type"></div></div><div class=cmp-actions><button type=button class="btn small">Decline</button><button type=submit class="btn primary small">`),ca=w(`<label class=aai-seg-item><input type=radio>`),la=w(`<option>`),ua={ask:`Ask`,"propose-edit":`Edit`,"run-action":`Action`},da={ask:`Ask (answer only)`,"propose-edit":`Propose an edit (you review it)`,"run-action":`Run a declared action`},fa={sending:`Sending…`,running:`Sent: the answer goes back to the artifact when the handler finishes (see AI requests).`,answered:`Answered: the artifact received the answer.`,proposed:`Proposed: review and Accept it under AI requests; the artifact only knows an edit awaits review.`,declined:`Declined: the artifact was told no.`,revoked:`Withdrawn: this view of the artifact ended.`,conflict:`Not sent: the artifact changed since this view opened. Reload the artifact to ask again.`,failed:`Not completed: see AI requests for why.`,cancelled:`Cancelled.`};function pa(e){let t=e.handler;return t.session?ye().find(e=>e.id===t.session)?.machineOnline??!1:t.launch?.machine?(he.machines??[]).some(e=>e.id===t.launch.machine&&e.online):e.online}function ma(e){let t=()=>e.feed.requests().filter(e=>e.status===`awaiting`),i=()=>e.feed.requests().filter(e=>e.status!==`awaiting`).slice(-3);return n(s,{get when(){return t().length||i().length},get children(){var a=ta();return m(a,n(l,{get each(){return i()},children:e=>(()=>{var t=na(),i=t.firstChild,a=i.firstChild,s=a.firstChild.nextSibling;return s.nextSibling,a.nextSibling,m(t,n(T,{name:`app`}),i),m(a,(()=>{var t=r(()=>e.instruction.length>80);return()=>t()?`${e.instruction.slice(0,80)}…`:e.instruction})(),s),m(i,()=>fa[e.status],null),o(n=>{var r=`cmp-done ${e.status}`,i=e.status;return r!==n.e&&b(t,n.e=r),i!==n.t&&h(t,`data-status`,n.t=i),n},{e:void 0,t:void 0}),t})()}),null),m(a,n(l,{get each(){return t()},children:t=>n(ha,{request:t,get title(){return e.feed.title},get revName(){return e.feed.revName()},get state(){return e.state},onPick:()=>e.feed.reloadHandlers(),onApprove:n=>e.feed.approve(t.id,n),onDecline:()=>e.feed.decline(t.id)})}),null),a}})}function ha(e){let[t,i]=c(`ask`),[a,u]=c(``),[d,f]=c(``),[p,g]=c(!1),[v,y]=c(),b=()=>e.state()?.handlers??[],x=()=>e.state()?.actions??[],S=_(()=>b().find(e=>e.key===a())),C=()=>!!a()&&(t()!==`run-action`||!!d()),w=`cmp-kind-${e.request.id}`;async function E(n){if(n.preventDefault(),!C()||p())return;g(!0),y(void 0);let r=a(),i=await e.onApprove({kind:t(),handlerKey:r,...t()===`run-action`?{action:d()}:{}});g(!1),i?ht(Ot(),r):y(e.state()?.sendError?.text??`Not sent.`)}return(()=>{var c=sa(),g=c.firstChild,_=g.firstChild,y=_.nextSibling.firstChild,D=y.nextSibling.nextSibling,O=D.firstChild.nextSibling;O.nextSibling;var k=g.nextSibling,A=k.nextSibling,j=A.firstChild.nextSibling;j.nextSibling;var M=A.nextSibling,N=M.firstChild,P=M.nextSibling,F=P.firstChild,I=F.nextSibling;return c.addEventListener(`submit`,E),m(_,n(T,{name:`app`})),m(y,()=>e.title),m(D,()=>e.revName,O),m(k,()=>e.request.instruction),m(A,()=>e.revName,j),m(c,n(s,{get when(){return e.state()?.status===`error`},get children(){var t=ra();return m(t,()=>e.state()?.error?.text??`AI requests aren't available.`),t}}),M),m(N,n(l,{each:[`ask`,`propose-edit`,`run-action`],children:e=>{let n=()=>e===`run-action`&&!x().length;return(()=>{var r=ca(),a=r.firstChild;return a.addEventListener(`change`,()=>i(e)),h(a,`name`,w),a.value=e,m(r,()=>ua[e],null),o(i=>{var o=t()===e,s=!!n(),c=da[e],l=da[e],u=n();return o!==i.e&&r.classList.toggle(`on`,i.e=o),s!==i.t&&r.classList.toggle(`disabled`,i.t=s),c!==i.a&&h(r,`title`,i.a=c),l!==i.o&&h(a,`aria-label`,i.o=l),u!==i.i&&(a.disabled=i.i=u),i},{e:void 0,t:void 0,a:void 0,o:void 0,i:void 0}),o(()=>a.checked=t()===e),r})()}})),m(M,n(s,{get when(){return t()===`run-action`},get children(){var e=ia();return e.firstChild,e.addEventListener(`change`,e=>f(e.currentTarget.value)),m(e,n(l,{get each(){return x()},children:e=>(()=>{var t=la();return t.value=e,m(t,e),t})()}),null),o(()=>e.value=d()),e}}),null),m(c,n(kt,{get handlers(){return b()},get value(){return a()},get onPick(){return e.onPick},onChange:u}),P),m(c,n(s,{get when(){return r(()=>!!S())()&&!pa(S())},get children(){var e=aa();return m(e,()=>S().kind===`session`?`That session is offline: the request is queued and delivered when it reconnects.`:`That machine is offline: the new session starts when it's back.`),e}}),P),F.$$click=()=>e.onDecline(),m(I,()=>p()?`Sending…`:`Send request`),m(c,n(s,{get when(){return v()},get children(){var e=oa();return m(e,v),e}}),null),o(t=>{var n=p(),r=!C()||p()||e.state()?.status!==`ready`,i=p();return n!==t.e&&(F.disabled=t.e=n),r!==t.t&&(I.disabled=t.t=r),i!==t.a&&h(I,`aria-busy`,t.a=i),t},{e:void 0,t:void 0,a:void 0}),c})()}O([`click`]);var ga={waiting:2,answerChars:8e3},_a=class extends Error{code;constructor(e,t){super(t),this.code=e,this.name=`ConsentRefusal`}},va={denied:`The user declined this request`,revoked:`This view ended; the request was withdrawn`,conflict:`The artifact changed since this view opened; reload it to ask again`,cancelled:`The request was cancelled`,failed:`The AI request failed`,rate_limited:`At most ${ga.waiting} requests can wait for the user at once`},Q=e=>new _a(e,va[e]),ya=new Set([`succeeded`,`failed`,`cancelled`]);function ba(e){let t=e.now??Date.now,n=[],r=new Map,i=!1,a=0,o=()=>e.onChange(n),s=e=>n.find(t=>t.id===e),c=(e,t)=>{n=n.map(n=>n.id===e?{...n,...t}:n),o()},l=(e,t,n)=>{let i=r.get(e);r.delete(e),c(e,{status:t}),i&&(n instanceof _a?i.reject(n):i.resolve(n))},u=e=>e.status===`awaiting`||e.status===`sending`||e.status===`running`;function d(e){if(e.state===`cancelled`)return{status:`cancelled`,result:Q(`cancelled`)};if(e.state!==`succeeded`)return{status:`failed`,result:Q(`failed`)};if(e.kind===`propose-edit`)return{status:`proposed`,result:{status:`proposed`}};let t=e.answer??``,n=t.length>ga.answerChars;return{status:`answered`,result:{status:`answered`,answer:n?t.slice(0,ga.answerChars):t,...n?{truncated:!0}:{}}}}return{ask(s){if(i)return Promise.reject(Q(`revoked`));if(n.filter(e=>e.status===`awaiting`).length>=ga.waiting)return Promise.reject(Q(`rate_limited`));let c=`req_${++a}`;return new Promise((i,a)=>{r.set(c,{resolve:i,reject:a}),n=[...n,{id:c,instruction:s,revisionID:e.revisionID,status:`awaiting`,at:t()}],o()})},requests:()=>n,async approve(t,n){let r=s(t);if(i||!r||r.status!==`awaiting`||!n.handlerKey||n.kind===`run-action`&&(!n.action||!e.actions().includes(n.action))||n.kind!==`run-action`&&n.action!==void 0)return!1;if(e.latestRevisionID()!==e.revisionID)return l(t,`conflict`,Q(`conflict`)),!1;c(t,{status:`sending`,kind:n.kind});let a;try{a=await e.submit({kind:n.kind,instruction:r.instruction,handlerKey:n.handlerKey,...n.action?{action:n.action}:{},baseRevisionID:e.revisionID})}catch{a=void 0}if(s(t)?.status!==`sending`)return!1;if(!a)return l(t,`failed`,Q(`failed`)),!1;if(c(t,{status:`running`,jobID:a.id}),ya.has(a.state)){let e=d(a);l(t,e.status,e.result)}return!0},decline(e){s(e)?.status===`awaiting`&&l(e,`declined`,Q(`denied`))},jobs(e){if(!i)for(let t of n){if(t.status!==`running`||!t.jobID)continue;let n=e.find(e=>e.id===t.jobID);if(!n||!ya.has(n.state))continue;let r=d(n);l(t.id,r.status,r.result)}},revoke(){if(!i){i=!0;for(let e of n)u(e)&&l(e.id,`revoked`,Q(`revoked`))}}}}var xa=`hub.artifact-bridge`,Sa=[`resize`,`askAI`],$={messageChars:16384,instructionChars:2e3,idChars:64,ratePerSecond:10,burst:20,pendingAsks:2,minHeight:0,maxHeight:2e4,errorChars:200};function Ca(){let e=new Uint8Array(16);return globalThis.crypto.getRandomValues(e),Array.from(e,e=>e.toString(16).padStart(2,`0`)).join(``)}var wa=e=>typeof e==`object`&&!!e&&!Array.isArray(e)&&Object.getPrototypeOf(e)===Object.prototype,Ta=[`p`,`v`,`channel`,`type`],Ea={resize:[`height`],askAI:[`id`,`instruction`]},Da=/^[A-Za-z0-9_-]+$/,Oa=new Set([`denied`,`revoked`,`conflict`,`cancelled`,`rate_limited`,`unsupported`]);function ka(e,t){if(!wa(e))return{ok:!1,reason:`malformed`};let n;try{n=JSON.stringify(e).length}catch{return{ok:!1,reason:`malformed`}}if(n>$.messageChars)return{ok:!1,reason:`too_large`};if(e.p!==`hub.artifact-bridge`)return{ok:!1,reason:`protocol`};if(e.v!==1)return{ok:!1,reason:`version`};if(e.channel!==t)return{ok:!1,reason:`channel`};let r=e.type;if(r!==`resize`&&r!==`askAI`)return{ok:!1,reason:`type`};let i=new Set([...Ta,...Ea[r]]);if(Object.keys(e).some(e=>!i.has(e)))return{ok:!1,reason:`invalid`};if(r===`resize`){let t=e.height;return typeof t!=`number`||!Number.isFinite(t)||t<0?{ok:!1,reason:`invalid`}:{ok:!0,message:{type:r,height:t}}}let{id:a,instruction:o}=e;return typeof a!=`string`||a.length<1||a.length>$.idChars||!Da.test(a)||typeof o!=`string`||o.trim()===``||o.length>$.instructionChars?{ok:!1,reason:`invalid`}:{ok:!0,message:{type:r,id:a,instruction:o}}}function Aa(e){let t=e.now??Date.now,n=e.origins??[`null`],r=new Set,i=$.burst,a=t(),o=!0,s={p:xa,v:1,channel:e.channel},c=t=>{o&&e.post({...s,...t})},l=(e,t)=>c(t.ok?{type:`reply`,id:e,ok:!0,result:t.result}:{type:`reply`,id:e,ok:!1,error:{code:t.code,message:t.message.slice(0,$.errorChars)}}),u=t=>(e.onReject?.(t),!1),d=()=>{let e=t();return i=Math.min($.burst,i+(e-a)/1e3*$.ratePerSecond),a=e,i<1?!1:(--i,!0)},f=(t,n)=>{if(r.has(t))return l(t,{ok:!1,code:`invalid`,message:`That request ID is already in flight`});if(r.size>=$.pendingAsks)return l(t,{ok:!1,code:`rate_limited`,message:`At most ${$.pendingAsks} requests at once`});let i=e.onAskAI;if(!i)return l(t,{ok:!1,code:`unsupported`,message:`Ask AI isn't available for this artifact view`});r.add(t),Promise.resolve().then(()=>i(n)).then(e=>l(t,{ok:!0,result:e}),e=>{let n=e?.code;l(t,{ok:!1,code:typeof n==`string`&&Oa.has(n)?n:`failed`,message:e instanceof Error?e.message:`The request failed`})}).finally(()=>r.delete(t))};return{receive(t){if(!o)return!1;let r=e.source();if(r==null||t.source!==r)return u(`source`);if(!n.includes(t.origin))return u(`origin`);if(!d())return u(`rate`);let i=ka(t.data,e.channel);if(!i.ok)return u(i.reason);let a=i.message;return a.type===`resize`?e.onResize?.(Math.min($.maxHeight,Math.max($.minHeight,Math.ceil(a.height)))):f(a.id,a.instruction),!0},init(e){c({type:`init`,artifactID:e.artifactID,revisionID:e.revisionID,files:e.files.map(e=>({...e.path===void 0?{}:{path:e.path},mediaType:e.mediaType,bytes:e.bytes})),capabilities:[...Sa]})},dispose(){o=!1,r.clear()}}}var ja=`allow-scripts`,Ma=[`camera`,`microphone`,`geolocation`,`display-capture`,`clipboard-read`,`clipboard-write`,`fullscreen`,`payment`,`usb`,`serial`,`hid`,`midi`,`publickey-credentials-get`].map(e=>`${e} 'none'`).join(`; `),Na=`/artifact-host/v1/`,Pa=/^\/artifact-host\/v1\/[A-Za-z0-9._-]+\/[A-Za-z0-9._/-]*$/;function Fa(e){let t=e;if(t&&typeof t==`object`&&t.capability&&typeof t.capability.id==`string`&&typeof t.capability.expiresAt==`number`&&typeof t.base==`string`&&typeof t.url==`string`&&t.base.startsWith(Na)&&t.url.startsWith(t.base)&&Pa.test(t.url)&&Array.isArray(t.files))return{capability:t.capability,base:t.base,url:t.url,files:t.files.filter(e=>e&&typeof e.mediaType==`string`&&typeof e.bytes==`number`)}}function Ia(e,t){let n=t?.error?.message,r=typeof n==`string`?n:void 0;return e===0?{kind:`error`,message:`The hub can't be reached. Check your connection and try again.`}:e===404?{kind:`error`,message:`This artifact or revision isn't available to you.`}:e===422?{kind:`error`,message:`This hub can't run interactive artifacts.`,unsupported:!0}:e===429?{kind:`error`,message:r??`Too many artifact views are open. Close some and try again.`}:e===400?{kind:`error`,message:r??`This artifact can't run in the artifact host.`}:{kind:`error`,message:r??`The artifact view failed (${e}).`}}function La(e,t){let n=t.fetch??globalThis.fetch.bind(globalThis),r=e=>t.onState?.(e),i=encodeURIComponent,a=!1,o,s,c,l=e=>void s?.receive(e),u=()=>{let e=c;c=void 0,e&&n(`/api/agent/artifact-host/${i(e)}`,{method:`DELETE`,credentials:`same-origin`,keepalive:!0}).catch(()=>{})},d=()=>{s?.dispose(),s=void 0,window.removeEventListener(`message`,l),o?.remove(),o=void 0,u()};return r({kind:`loading`}),(async()=>{let f;try{f=await n(`/api/agent/artifacts/${i(t.artifactID)}/revisions/${i(t.revisionID)}/host`,{method:`POST`,credentials:`same-origin`,headers:{"content-type":`application/json`},body:JSON.stringify({ttlSeconds:t.ttlSeconds??1800})})}catch{a||r(Ia(0,void 0));return}let p=await f.json().catch(()=>void 0),m=f.status===201?Fa(p):void 0;if(a){m&&(c=m.capability.id,u());return}if(!m)return r(f.status===201?{kind:`error`,message:`The hub's answer wasn't an artifact view.`}:Ia(f.status,p));c=m.capability.id;let h=document.createElement(`iframe`);h.setAttribute(`sandbox`,ja),h.setAttribute(`credentialless`,``),h.setAttribute(`referrerpolicy`,`no-referrer`),h.setAttribute(`allow`,Ma),h.title=t.title,h.className=`artifact-host-frame`,o=h,s=Aa({channel:Ca(),source:()=>h.contentWindow,...t.origins?{origins:t.origins}:{},post:e=>h.contentWindow?.postMessage(e,`*`),onResize:e=>h.style.height=`${Math.max(120,Math.min($.maxHeight,e))}px`,...t.onAskAI?{onAskAI:t.onAskAI}:{},...t.onReject?{onReject:t.onReject}:{}});let g=0;h.addEventListener(`load`,()=>{g++,g===1?(s?.init({artifactID:t.artifactID,revisionID:t.revisionID,files:m.files}),r({kind:`ready`})):(d(),r({kind:`stopped`,message:`The artifact tried to navigate away, so it was stopped. Reload to run it again.`}))}),window.addEventListener(`message`,l),h.src=m.url,e.append(h)})(),{iframe:()=>o,dispose(){a=!0,d()}}}var Ra=w(`<p class=artifact-host-status role=status>Starting the artifact…`),za=w(`<section class=artifact-host><p class=artifact-host-note>Runs isolated: no access to your hub session, cookies or the network.</p><div class=artifact-host-box>`),Ba=w(`<button type=button class=artifact-host-retry>Reload`),Va=w(`<div class=artifact-host-status role=alert><p>`);function Ha(e){let[r,i]=c({kind:`loading`}),[a,l]=c(0),u,d,f=()=>{d?.dispose(),d=La(u,{artifactID:e.artifactID,revisionID:e.revisionID,title:e.title,onState:i,...e.onAskAI?{onAskAI:e.onAskAI}:{}})};E(f),x(()=>d?.dispose());let p=()=>{let e=r();return e.kind===`error`?{message:e.message,unsupported:e.unsupported===!0}:e.kind===`stopped`?{message:e.message,unsupported:!1}:void 0},g=()=>{l(a()+1),f()};return(()=>{var i=za(),c=i.firstChild.nextSibling;m(i,n(s,{get when(){return r().kind===`loading`},get children(){return Ra()}}),c),m(i,n(s,{get when(){return p()},keyed:!0,children:e=>(()=>{var t=Va(),r=t.firstChild;return m(r,()=>e.message),m(t,n(s,{get when(){return!e.unsupported},get children(){var e=Ba();return e.$$click=g,e}}),null),t})()}),c);var l=u;return typeof l==`function`?t(l,c):u=c,o(t=>{var n=`${e.title} (interactive, isolated)`,o=r().kind===`loading`,s=a();return n!==t.e&&h(i,`aria-label`,t.e=n),o!==t.t&&h(i,`aria-busy`,t.t=o),s!==t.a&&h(c,`data-attempt`,t.a=s),t},{e:void 0,t:void 0,a:void 0}),i})()}O([`click`]);var Ua=w(`<p class="cmp-disclose cmp-preview-note"><span>External resources are blocked in previews: scripts, styles, fonts and images from other sites don't load.`),Wa=w(`<div class=cmp-interactive><p class=cmp-disclose aria-label="What this artifact may do"><span><strong>Sandboxed.</strong> This artifact may: resize its frame; ask for AI help on <!> — each request waits for your consent in the AI panel, and you choose who handles it. It can't read your hub, sessions, cookies or other artifacts, or apply changes.`),Ga=w(`<li>`),Ka=w(`<details class="cmp-disclose cmp-preview-skipped"><summary></summary><ul>`),qa=()=>Object.assign(Error(`Ask AI isn't available for this artifact`),{code:`unsupported`});function Ja(e){let[t,i]=c([]),a=()=>e.state(),o=e.artifact.id,l=e.revision.id,u=ba({artifactID:o,revisionID:l,latestRevisionID:()=>a()?.artifact?.latestRevisionID,actions:()=>a()?.actions??[],submit:({kind:t,instruction:n,handlerKey:r,action:i,baseRevisionID:a})=>e.ai.requestJob({kind:t,instruction:n,handlerKey:r,...i?{action:i}:{},baseRevisionID:a}),onChange:i});g(()=>u.jobs(a()?.jobs??[]));let d=()=>We(l,a()?.revisionNumbers??new Map),f={title:e.artifact.title||`This artifact`,requests:t,revName:d,approve:(e,t)=>u.approve(e,t),decline:e=>u.decline(e),reloadHandlers:()=>void e.ai.reloadHandlers()};e.onConsent(f,!0),x(()=>{u.revoke(`closed`),e.onConsent(f,!1)});let p=e=>a()?.status===`error`?Promise.reject(qa()):u.ask(e);return(()=>{var t=Wa(),i=t.firstChild,a=i.firstChild,c=a.firstChild.nextSibling.nextSibling;return c.nextSibling,m(t,n(Ha,{artifactID:o,revisionID:l,get title(){return e.artifact.title||`Interactive artifact`},onAskAI:p}),i),m(i,n(T,{name:`lock`}),a),m(a,d,c),m(t,n(s,{get when(){return e.artifact.origin===`preview`},get children(){var e=Ua(),t=e.firstChild;return m(e,n(T,{name:`lock`}),t),e}}),null),m(t,n(s,{get when(){return r(()=>e.artifact.origin===`preview`)()&&ce(pe(o)?.skipped,pe(o)?.more)},children:e=>(()=>{var t=Ka(),r=t.firstChild,i=r.nextSibling;return m(r,()=>e().title),m(i,()=>e().items.map(e=>(()=>{var t=Ga();return m(t,e),t})()),null),m(i,n(s,{get when(){return e().more},get children(){var t=Ga();return m(t,()=>e().more),t}}),null),t})()}),null),t})()}var Ya=w(`<div class=awb-scrim aria-hidden=true>`),Xa=w(`<div class=awb-resize role=separator aria-orientation=vertical aria-label="Resize AI panel"tabindex=0>`),Za=w(`<div class=awb-grab aria-hidden=true>`),Qa=w(`<div class=awb-side>`),$a=w(`<button type=button class=icon-btn aria-label="Close AI panel"title="Close AI panel">`),eo=w(`<div>`),to=w(`<span class=awb-keep-err role=alert>`),no=w(`<button type=button class="btn small awb-refresh"title="Read the page and its files again and show the new revision">`),ro=w(`<button type=button class="btn small awb-keep"aria-label="Keep this preview as an artifact"title="Keep it as a normal artifact (previews expire a day after you last view them)">Keep`),io=w(`<span class=awb-badge aria-hidden=true>`),ao=w(`<button type=button class=awb-ai-toggle aria-label="AI panel"><span class=awb-ai-text>AI`),oo=720;function so(i){let[a,l]=c(),d=ot({source:Mn(),artifactID:i.id,onState:l});E(()=>void d.load()),x(()=>d.dispose());let[p,_]=c(),[v,y]=c(),[S,C]=c(),[w,D]=c(!1),[O,k]=c(),A=async()=>{let e=S();if(e&&!w()){D(!0),k(void 0);try{await N(`/api/agent/artifacts/${encodeURIComponent(e.id)}/keep`,{expectedRevision:e.revision});let{origin:t,...n}=e;C(n),R?.reload()}catch(e){k(`Could not keep it: ${P(e)}`)}finally{D(!1)}}},[j,M]=c(!1),[F,I]=c(),L=async()=>{let e=S()?.provenance;if(e?.path&&!j()){M(!0),I(void 0);try{await U({sessionID:e.sessionID,messageID:e.messageID,path:e.path}),R?.reload()}catch(e){I(me(e))}finally{M(!1)}}},R,z,ee=bt(Ot()),[B,te]=c(!1),[V,ne]=c(!1),[H,re]=c(ee.width??q.default),ie=()=>!B()&&xt(Ot(),{open:V(),width:H()}),ae=(e=!V())=>{ne(e),ie()};E(()=>{let e=!1,t=()=>{let t=z.clientWidth;if(!t)return;let n=B(),r=t<oo;(r!==n||!e)&&(te(r),ne(r?!1:bt(Ot()).open??!0)),e=!0,r||re(e=>yt(e,t))};t();let n=new ResizeObserver(t);n.observe(z),x(()=>n.disconnect())});let oe=()=>v()?.requests().filter(e=>e.status===`awaiting`).length??0;g(e(oe,(e,t)=>e>(t??0)&&ne(!0)));let se=()=>oe()+(a()?.jobs.filter(e=>Be(e)).length??0);function ce(e){if(e.button!==0)return;e.preventDefault();let t=e.currentTarget;t.setPointerCapture(e.pointerId);let n=z.getBoundingClientRect().right,r=z.clientWidth,i=e=>re(yt(n-e.clientX,r)),a=()=>{t.removeEventListener(`pointermove`,i),t.removeEventListener(`pointerup`,a),t.removeEventListener(`pointercancel`,a),z.classList.remove(`resizing`),ie()};z.classList.add(`resizing`),t.addEventListener(`pointermove`,i),t.addEventListener(`pointerup`,a),t.addEventListener(`pointercancel`,a)}function le(e){let t=z.clientWidth,n=e.shiftKey?64:24,r=e.key===`ArrowLeft`?H()+n:e.key===`ArrowRight`?H()-n:e.key===`Home`?q.min:e.key===`End`?q.max:void 0;r!==void 0&&(e.preventDefault(),re(yt(r,t)),ie())}let ue=[n(s,{get when(){return r(()=>!!B())()&&V()},get children(){var e=Ya();return e.$$click=()=>ae(!1),e}}),(()=>{var e=Qa();return e.$$keydown=e=>{e.key===`Escape`&&B()&&!e.defaultPrevented&&(e.preventDefault(),ae(!1))},m(e,n(s,{get when(){return!B()},get children(){var e=Xa();return e.$$keydown=le,e.$$pointerdown=ce,o(t=>{var n=q.min,r=q.max,i=H();return n!==t.e&&h(e,`aria-valuemin`,t.e=n),r!==t.t&&h(e,`aria-valuemax`,t.t=r),i!==t.a&&h(e,`aria-valuenow`,t.a=i),t},{e:void 0,t:void 0,a:void 0}),e}}),null),m(e,n(s,{get when(){return B()},get children(){return Za()}}),null),m(e,n(Nn,{get artifactID(){return i.id},controller:{ai:d,state:a},get revisionID(){return p()},onShowRevision:e=>R?.view(e),onRevised:()=>R?.reload(),onContinueInSideChat:e=>e.handler.sessionID&&ge(e.handler.sessionID),get headerActions(){return(()=>{var e=$a();return e.$$click=()=>ae(!1),m(e,n(T,{name:`close`})),e})()},get threadTail(){return n(s,{get when(){return v()},children:e=>n(ma,{get feed(){return e()},state:a})})},get tailCount(){return v()?.requests().length??0}}),null),o(t=>{var n=!!B(),r=!V(),i=B()?void 0:{width:`${H()}px`};return n!==t.e&&e.classList.toggle(`sheet`,t.e=n),r!==t.t&&(e.hidden=t.t=r),t.a=u(e,i,t.a),t},{e:void 0,t:void 0,a:void 0}),e})()];return(()=>{var e=eo(),c=z;return typeof c==`function`?t(c,e):z=e,m(e,n(Zi,f({get id(){return i.id},get variant(){return i.layout},control:e=>R=e,onRevision:e=>_(e.id),onArtifact:e=>{C(e),i.onArtifact?.(e)},isolated:(e,t)=>n(Ja,{artifact:e,revision:t,ai:d,state:a,onConsent:(e,t)=>y(n=>t?e:n===e?void 0:n)})},()=>i.lead?{lead:i.lead}:{},{get actions(){return[n(s,{get when(){return O()},get children(){var e=to();return m(e,O),e}}),n(s,{get when(){return F()},get children(){var e=to();return m(e,F),e}}),n(s,{get when(){return r(()=>S()?.origin===`preview`)()&&S()?.provenance?.path!==void 0},get children(){var e=no();return e.$$click=()=>void L(),m(e,()=>j()?`Refreshing…`:`Refresh`),o(t=>{var n=j(),r=j();return n!==t.e&&(e.disabled=t.e=n),r!==t.t&&h(e,`aria-busy`,t.t=r),t},{e:void 0,t:void 0}),e}}),n(s,{get when(){return S()?.origin===`preview`},get children(){var e=ro();return e.$$click=()=>void A(),o(()=>e.disabled=w()),e}}),r(()=>i.actions),(()=>{var e=ao(),t=e.firstChild;return e.$$click=()=>ae(),m(e,n(T,{name:`spark`}),t),m(e,n(s,{get when(){return se()},get children(){var e=io();return m(e,se),e}}),null),o(t=>{var n=V(),r=V()?`Hide the AI panel`:`Ask AI about this artifact`;return n!==t.e&&h(e,`aria-pressed`,t.e=n),r!==t.t&&h(e,`title`,t.t=r),t},{e:void 0,t:void 0}),e})()]}},()=>i.trailing?{trailing:i.trailing}:{},{side:ue}))),o(t=>{var n=`awb ${i.layout}`,r=!!B(),a=i.id;return n!==t.e&&b(e,t.e=n),r!==t.t&&e.classList.toggle(`narrow`,t.t=r),a!==t.a&&h(e,`data-artifact`,t.a=a),t},{e:void 0,t:void 0,a:void 0}),e})()}O([`click`,`keydown`,`pointerdown`]);export{so as t};