agent-relay-server 0.127.3 → 0.127.4
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.
- package/docs/openapi.json +1 -1
- package/package.json +3 -3
- package/public/assets/{MessageBubble-DnXnkt4a.js → MessageBubble-D2Wzxied.js} +2 -2
- package/public/assets/{MessageBubble-DnXnkt4a.js.map → MessageBubble-D2Wzxied.js.map} +1 -1
- package/public/assets/{PlanGraphPanel-D6CPEpQD.js → PlanGraphPanel-DH_xoWZi.js} +2 -2
- package/public/assets/{PlanGraphPanel-D6CPEpQD.js.map → PlanGraphPanel-DH_xoWZi.js.map} +1 -1
- package/public/assets/{activity-ZPwHcPLK.js → activity-B-ozOwNq.js} +2 -2
- package/public/assets/{activity-ZPwHcPLK.js.map → activity-B-ozOwNq.js.map} +1 -1
- package/public/assets/{agent-profiles-CT0E9LV1.js → agent-profiles-DZgjO25A.js} +2 -2
- package/public/assets/{agent-profiles-CT0E9LV1.js.map → agent-profiles-DZgjO25A.js.map} +1 -1
- package/public/assets/{agent-type-icon-BmBR-9CH.js → agent-type-icon-B9cLaOoz.js} +2 -2
- package/public/assets/{agent-type-icon-BmBR-9CH.js.map → agent-type-icon-B9cLaOoz.js.map} +1 -1
- package/public/assets/agents-mXBLSY6O.js +2 -0
- package/public/assets/{agents-Dt5TncjC.js.map → agents-mXBLSY6O.js.map} +1 -1
- package/public/assets/{analytics-BZtRycyL.js → analytics-5Ize_UL5.js} +3 -3
- package/public/assets/{analytics-BZtRycyL.js.map → analytics-5Ize_UL5.js.map} +1 -1
- package/public/assets/{automation-yzUJbvT2.js → automation-CidMvW2e.js} +2 -2
- package/public/assets/{automation-yzUJbvT2.js.map → automation-CidMvW2e.js.map} +1 -1
- package/public/assets/{badge-BCvp7LK3.js → badge-BkNNvFNa.js} +2 -2
- package/public/assets/{badge-BCvp7LK3.js.map → badge-BkNNvFNa.js.map} +1 -1
- package/public/assets/{branch-state-badge-Cscjqf-E.js → branch-state-badge-DnS40KCb.js} +2 -2
- package/public/assets/{branch-state-badge-Cscjqf-E.js.map → branch-state-badge-DnS40KCb.js.map} +1 -1
- package/public/assets/{button-DyHjsHY3.js → button-DUaC2wSQ.js} +2 -2
- package/public/assets/{button-DyHjsHY3.js.map → button-DUaC2wSQ.js.map} +1 -1
- package/public/assets/{card-BoqYxpVW.js → card-r-yAV4cH.js} +2 -2
- package/public/assets/{card-BoqYxpVW.js.map → card-r-yAV4cH.js.map} +1 -1
- package/public/assets/{channels-DAtOnA6o.js → channels-MPO2FOBv.js} +2 -2
- package/public/assets/{channels-DAtOnA6o.js.map → channels-MPO2FOBv.js.map} +1 -1
- package/public/assets/chat-Ca4ERso5.js +2 -0
- package/public/assets/chat-Ca4ERso5.js.map +1 -0
- package/public/assets/{connectors-B2grC-hl.js → connectors-BbYdtRkW.js} +2 -2
- package/public/assets/{connectors-B2grC-hl.js.map → connectors-BbYdtRkW.js.map} +1 -1
- package/public/assets/copy-button-u463GPZR.js +2 -0
- package/public/assets/{copy-button-C67FUG3E.js.map → copy-button-u463GPZR.js.map} +1 -1
- package/public/assets/{display-aTnwsqQh.js → display-BNI-7rdq.js} +2 -2
- package/public/assets/{display-aTnwsqQh.js.map → display-BNI-7rdq.js.map} +1 -1
- package/public/assets/{dist-D5w04z0l.js → dist-5e_is3Xr.js} +2 -2
- package/public/assets/{dist-D5w04z0l.js.map → dist-5e_is3Xr.js.map} +1 -1
- package/public/assets/{dist-BD4Xc13v.js → dist-ActI2qb5.js} +2 -2
- package/public/assets/{dist-BD4Xc13v.js.map → dist-ActI2qb5.js.map} +1 -1
- package/public/assets/dist-B-FQ0-X3.js +2 -0
- package/public/assets/{dist-G8YBD-wp.js.map → dist-B-FQ0-X3.js.map} +1 -1
- package/public/assets/{dist-f6MW74eX.js → dist-BduURKro.js} +2 -2
- package/public/assets/{dist-f6MW74eX.js.map → dist-BduURKro.js.map} +1 -1
- package/public/assets/{dist-BFDfbfNC.js → dist-Bp0-OBcd.js} +2 -2
- package/public/assets/{dist-BFDfbfNC.js.map → dist-Bp0-OBcd.js.map} +1 -1
- package/public/assets/{dist-C_VOBSaK.js → dist-CJ7e7uqU.js} +2 -2
- package/public/assets/{dist-C_VOBSaK.js.map → dist-CJ7e7uqU.js.map} +1 -1
- package/public/assets/{dist-BNB3fTO-.js → dist-CYzOsD_n.js} +2 -2
- package/public/assets/{dist-BNB3fTO-.js.map → dist-CYzOsD_n.js.map} +1 -1
- package/public/assets/{dist-CQMQ5iku.js → dist-CpcQJrKV.js} +2 -2
- package/public/assets/{dist-CQMQ5iku.js.map → dist-CpcQJrKV.js.map} +1 -1
- package/public/assets/dist-DFgmDjLv.js +2 -0
- package/public/assets/{dist-CHKra2JV.js.map → dist-DFgmDjLv.js.map} +1 -1
- package/public/assets/{dist-DG75bvPp.js → dist-DrpSpMKL.js} +2 -2
- package/public/assets/{dist-DG75bvPp.js.map → dist-DrpSpMKL.js.map} +1 -1
- package/public/assets/dist-DzWoiN2z.js +2 -0
- package/public/assets/{dist-BJKxqIQd.js.map → dist-DzWoiN2z.js.map} +1 -1
- package/public/assets/{es2015-a6fysEVz.js → es2015-DNuudVtQ.js} +2 -2
- package/public/assets/{es2015-a6fysEVz.js.map → es2015-DNuudVtQ.js.map} +1 -1
- package/public/assets/formatted-body-BEI1zP7i.js +3 -0
- package/public/assets/{formatted-body-D5-1aiyB.js.map → formatted-body-BEI1zP7i.js.map} +1 -1
- package/public/assets/{formatted-body-impl-Do5NbJUA.js → formatted-body-impl-CNQ5sqwK.js} +2 -2
- package/public/assets/{formatted-body-impl-Do5NbJUA.js.map → formatted-body-impl-CNQ5sqwK.js.map} +1 -1
- package/public/assets/index-D2Mpzpft.js +26 -0
- package/public/assets/{index-BdNafiPz.js.map → index-D2Mpzpft.js.map} +1 -1
- package/public/assets/{input-Rc4oWv4q.js → input-BvNUEkDd.js} +2 -2
- package/public/assets/{input-Rc4oWv4q.js.map → input-BvNUEkDd.js.map} +1 -1
- package/public/assets/{insights-i6AEZT_a.js → insights-5rkMFRgf.js} +2 -2
- package/public/assets/{insights-i6AEZT_a.js.map → insights-5rkMFRgf.js.map} +1 -1
- package/public/assets/{integrations-9c6IdRU4.js → integrations-BEaqjfP4.js} +2 -2
- package/public/assets/{integrations-9c6IdRU4.js.map → integrations-BEaqjfP4.js.map} +1 -1
- package/public/assets/{lib-BZ6WPg2t.js → lib-BvrbNA2I.js} +2 -2
- package/public/assets/{lib-BZ6WPg2t.js.map → lib-BvrbNA2I.js.map} +1 -1
- package/public/assets/{lucide-react-NXHPIMsX.js → lucide-react-DD_zIava.js} +2 -2
- package/public/assets/{lucide-react-NXHPIMsX.js.map → lucide-react-DD_zIava.js.map} +1 -1
- package/public/assets/maintenance-CEiURaYZ.js +2 -0
- package/public/assets/{maintenance-CJ6wikpg.js.map → maintenance-CEiURaYZ.js.map} +1 -1
- package/public/assets/{managed-agents-JZn0xNJR.js → managed-agents-CetHyuQW.js} +4 -4
- package/public/assets/{managed-agents-JZn0xNJR.js.map → managed-agents-CetHyuQW.js.map} +1 -1
- package/public/assets/{markdown-preview-impl-BsvAkpR4.js → markdown-preview-impl-ZwGYvObh.js} +2 -2
- package/public/assets/{markdown-preview-impl-BsvAkpR4.js.map → markdown-preview-impl-ZwGYvObh.js.map} +1 -1
- package/public/assets/memory-BTm8XzCg.js +2 -0
- package/public/assets/{memory-BE9IwCdC.js.map → memory-BTm8XzCg.js.map} +1 -1
- package/public/assets/{messages-vXgdc3H4.js → messages-fJd17pzv.js} +2 -2
- package/public/assets/{messages-vXgdc3H4.js.map → messages-fJd17pzv.js.map} +1 -1
- package/public/assets/{orchestrators-CribhLg-.js → orchestrators-C5XQ2UYy.js} +2 -2
- package/public/assets/{orchestrators-CribhLg-.js.map → orchestrators-C5XQ2UYy.js.map} +1 -1
- package/public/assets/overview-Bhk-tqKc.js +2 -0
- package/public/assets/{overview-q3O9K9VK.js.map → overview-Bhk-tqKc.js.map} +1 -1
- package/public/assets/{pairs-BNOnd0IE.js → pairs-CBrszSZh.js} +2 -2
- package/public/assets/{pairs-BNOnd0IE.js.map → pairs-CBrszSZh.js.map} +1 -1
- package/public/assets/{projects-iDkxAGBW.js → projects-DXy9JviE.js} +2 -2
- package/public/assets/{projects-iDkxAGBW.js.map → projects-DXy9JviE.js.map} +1 -1
- package/public/assets/prompt-settings-DEQhAt2X.js +2 -0
- package/public/assets/{prompt-settings-Bdz_xCgD.js.map → prompt-settings-DEQhAt2X.js.map} +1 -1
- package/public/assets/{react-dom-8yaD9iJG.js → react-dom-CADlISeR.js} +2 -2
- package/public/assets/{react-dom-8yaD9iJG.js.map → react-dom-CADlISeR.js.map} +1 -1
- package/public/assets/{registry-DPcyGypi.js → registry-DsZILce1.js} +4 -4
- package/public/assets/{registry-DPcyGypi.js.map → registry-DsZILce1.js.map} +1 -1
- package/public/assets/{security-Z3l3u-Pl.js → security-C-wVZm5k.js} +2 -2
- package/public/assets/{security-Z3l3u-Pl.js.map → security-C-wVZm5k.js.map} +1 -1
- package/public/assets/{select-BX_lW49D.js → select-DsEGBLJk.js} +2 -2
- package/public/assets/{select-BX_lW49D.js.map → select-DsEGBLJk.js.map} +1 -1
- package/public/assets/settings-D3_r5IGA.js +6 -0
- package/public/assets/{settings-Y381jZt7.js.map → settings-D3_r5IGA.js.map} +1 -1
- package/public/assets/{store-D-Frk_EC.js → store-DKTb9O0v.js} +5 -5
- package/public/assets/{store-D-Frk_EC.js.map → store-DKTb9O0v.js.map} +1 -1
- package/public/assets/{task-chip-CeujtXYT.js → task-chip-DwdauC08.js} +2 -2
- package/public/assets/{task-chip-CeujtXYT.js.map → task-chip-DwdauC08.js.map} +1 -1
- package/public/assets/{tasks-Di6d0_Ch.js → tasks-DnEzBku4.js} +2 -2
- package/public/assets/{tasks-Di6d0_Ch.js.map → tasks-DnEzBku4.js.map} +1 -1
- package/public/assets/{teams-DJv4l-_l.js → teams-DpAbZ3ye.js} +2 -2
- package/public/assets/{teams-DJv4l-_l.js.map → teams-DpAbZ3ye.js.map} +1 -1
- package/public/assets/{terminal-viewer-impl-3zBLpRel.js → terminal-viewer-impl-_IU5o8ya.js} +3 -3
- package/public/assets/{terminal-viewer-impl-3zBLpRel.js.map → terminal-viewer-impl-_IU5o8ya.js.map} +1 -1
- package/public/assets/types-BqeSkWrv.js.map +1 -1
- package/public/assets/{use-keyboard-viewport-cGEmrGE7.js → use-keyboard-viewport-wTh5CR4-.js} +2 -2
- package/public/assets/{use-keyboard-viewport-cGEmrGE7.js.map → use-keyboard-viewport-wTh5CR4-.js.map} +1 -1
- package/public/assets/user-avatar-CZ3XO8ml.js +2 -0
- package/public/assets/{user-avatar-qbo-B3dQ.js.map → user-avatar-CZ3XO8ml.js.map} +1 -1
- package/public/assets/{work-queue-D73-hP0c.js → work-queue-DKcLZWRl.js} +2 -2
- package/public/assets/{work-queue-D73-hP0c.js.map → work-queue-DKcLZWRl.js.map} +1 -1
- package/public/assets/workspaces-Cs2IZZOI.js +3 -0
- package/public/assets/{workspaces-CoDz-iZd.js.map → workspaces-Cs2IZZOI.js.map} +1 -1
- package/public/index.html +24 -24
- package/runner/plugins/claude/.claude-plugin/plugin.json +1 -1
- package/runner/src/adapters/claude-transcript.ts +52 -3
- package/runner/src/control-server.ts +34 -17
- package/runner/src/runner-core.ts +64 -30
- package/src/db/messages.ts +20 -8
- package/public/assets/agents-Dt5TncjC.js +0 -2
- package/public/assets/chat-DhYX9BDG.js +0 -2
- package/public/assets/chat-DhYX9BDG.js.map +0 -1
- package/public/assets/copy-button-C67FUG3E.js +0 -2
- package/public/assets/dist-BJKxqIQd.js +0 -2
- package/public/assets/dist-CHKra2JV.js +0 -2
- package/public/assets/dist-G8YBD-wp.js +0 -2
- package/public/assets/formatted-body-D5-1aiyB.js +0 -3
- package/public/assets/index-BdNafiPz.js +0 -26
- package/public/assets/maintenance-CJ6wikpg.js +0 -2
- package/public/assets/memory-BE9IwCdC.js +0 -2
- package/public/assets/overview-q3O9K9VK.js +0 -2
- package/public/assets/prompt-settings-Bdz_xCgD.js +0 -2
- package/public/assets/settings-Y381jZt7.js +0 -6
- package/public/assets/user-avatar-qbo-B3dQ.js +0 -2
- package/public/assets/workspaces-CoDz-iZd.js +0 -3
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import"./chunk-CilyBKbf.js";import{
|
|
2
|
-
//# sourceMappingURL=input-
|
|
1
|
+
import"./chunk-CilyBKbf.js";import{_r as e,ir as t,nr as n}from"./lucide-react-DD_zIava.js";e();var r=t();function i({className:e,type:t,...i}){return(0,r.jsx)(`input`,{type:t,"data-slot":`input`,className:n(`h-8 w-full min-w-0 rounded-lg border border-input bg-transparent px-2.5 py-1 text-base transition-colors outline-none file:inline-flex file:h-6 file:border-0 file:bg-transparent file:text-sm file:font-medium file:text-foreground placeholder:text-muted-foreground focus-visible:border-ring focus-visible:ring-3 focus-visible:ring-ring/50 disabled:pointer-events-none disabled:cursor-not-allowed disabled:bg-input/50 disabled:opacity-50 aria-invalid:border-destructive aria-invalid:ring-3 aria-invalid:ring-destructive/20 md:text-sm dark:bg-input/30 dark:disabled:bg-input/80 dark:aria-invalid:border-destructive/50 dark:aria-invalid:ring-destructive/40`,e),...i})}export{i as t};
|
|
2
|
+
//# sourceMappingURL=input-BvNUEkDd.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"input-
|
|
1
|
+
{"version":3,"file":"input-BvNUEkDd.js","names":[],"sources":["../../dashboard/src/components/ui/input.tsx"],"sourcesContent":["import * as React from \"react\"\n\nimport { cn } from \"@/lib/utils\"\n\nfunction Input({ className, type, ...props }: React.ComponentProps<\"input\">) {\n return (\n <input\n type={type}\n data-slot=\"input\"\n className={cn(\n \"h-8 w-full min-w-0 rounded-lg border border-input bg-transparent px-2.5 py-1 text-base transition-colors outline-none file:inline-flex file:h-6 file:border-0 file:bg-transparent file:text-sm file:font-medium file:text-foreground placeholder:text-muted-foreground focus-visible:border-ring focus-visible:ring-3 focus-visible:ring-ring/50 disabled:pointer-events-none disabled:cursor-not-allowed disabled:bg-input/50 disabled:opacity-50 aria-invalid:border-destructive aria-invalid:ring-3 aria-invalid:ring-destructive/20 md:text-sm dark:bg-input/30 dark:disabled:bg-input/80 dark:aria-invalid:border-destructive/50 dark:aria-invalid:ring-destructive/40\",\n className\n )}\n {...props}\n />\n )\n}\n\nexport { Input }\n"],"mappings":"0GAIA,SAAS,EAAM,CAAE,YAAW,OAAM,GAAG,GAAwC,CAC3E,OACE,EAAA,EAAA,KAAC,QAAD,CACQ,OACN,YAAU,QACV,UAAW,EACT,8oBACA,EACD,CACD,GAAI,EACJ,CAAA"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{r as e}from"./chunk-CilyBKbf.js";import{R as t,
|
|
2
|
-
//# sourceMappingURL=insights-
|
|
1
|
+
import{r as e}from"./chunk-CilyBKbf.js";import{R as t,_r as n,ar as r,bt as i,ir as a}from"./lucide-react-DD_zIava.js";import{f as o}from"./types-BqeSkWrv.js";import{K as s}from"./display-BNI-7rdq.js";import{t as c}from"./badge-BkNNvFNa.js";import{t as l}from"./button-DUaC2wSQ.js";import{t as u}from"./input-BvNUEkDd.js";import{yt as d}from"./index-D2Mpzpft.js";import{o as f,r as p,s as m,t as h}from"./card-r-yAV4cH.js";var g=e(n(),1),_=a(),v={enabled:!0,contextRatio:{enabled:!0},introspection:{enabled:!0,minTurns:4,minContextRemaining:.15}};function y(e){return!e||Object.keys(e).length===0?`—`:Object.entries(e).map(([e,t])=>`${e}: ${typeof t==`number`?Math.round(t*1e3)/1e3:String(t)}`).join(` `)}function b(){let[e,n]=(0,g.useState)(v),[a,b]=(0,g.useState)(0),[x,S]=(0,g.useState)([]),[C,w]=(0,g.useState)([]),[T,E]=(0,g.useState)([]),[D,O]=(0,g.useState)(``),[k,A]=(0,g.useState)(``),[j,M]=(0,g.useState)(!1),[N,P]=(0,g.useState)(null),[F,I]=(0,g.useState)(()=>Date.now());async function L(){P(null);try{let e=new URLSearchParams;D&&e.set(`project`,D),k&&e.set(`signal`,k);let t=e.toString(),[i,a]=await Promise.all([r(`GET`,`/insights/config`),r(`GET`,`/insights/observations${t?`?${t}`:``}`)]);n(i.value),b(i.version),S(a.observations),w(a.stats),E(a.projects),I(Date.now())}catch(e){P(o(e))}}(0,g.useEffect)(()=>{L()},[D,k]);async function R(t){M(!0),P(null);let i=e;n(t);try{let e=await r(`PUT`,`/insights/config`,{value:t,updatedBy:`dashboard`});n(e.value),b(e.version)}catch(e){n(i),P(o(e))}finally{M(!1)}}let z=(0,g.useMemo)(()=>[...new Set(C.map(e=>e.signal))].sort(),[C]),B=(0,g.useMemo)(()=>C.filter(e=>e.project===null),[C]),V=(0,g.useMemo)(()=>C.filter(e=>e.project!==null),[C]);return(0,_.jsxs)(`div`,{className:`space-y-4 p-4`,children:[(0,_.jsxs)(`div`,{className:`flex items-center justify-between`,children:[(0,_.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,_.jsx)(i,{className:`size-5 text-primary`}),(0,_.jsx)(`h1`,{className:`text-lg font-semibold`,children:`Insights`}),(0,_.jsx)(`span`,{className:`text-xs text-muted-foreground`,children:`continuous self-improvement · epic #183`})]}),(0,_.jsxs)(l,{variant:`outline`,size:`sm`,onClick:()=>void L(),children:[(0,_.jsx)(t,{className:`size-4`}),` Refresh`]})]}),N&&(0,_.jsx)(`div`,{className:`rounded-md border border-destructive/40 bg-destructive/10 px-3 py-2 text-sm text-destructive`,children:N}),(0,_.jsxs)(h,{children:[(0,_.jsx)(f,{children:(0,_.jsxs)(m,{className:`flex items-center justify-between`,children:[(0,_.jsx)(`span`,{children:`Features`}),(0,_.jsxs)(`span`,{className:`text-xs font-normal text-muted-foreground`,children:[`config v`,a,` · saved by `,e&&`dashboard`]})]})}),(0,_.jsxs)(p,{className:`space-y-4`,children:[(0,_.jsxs)(`div`,{className:`flex items-center justify-between`,children:[(0,_.jsxs)(`div`,{children:[(0,_.jsx)(`div`,{className:`text-sm font-medium`,children:`Insights enabled`}),(0,_.jsx)(`div`,{className:`text-xs text-muted-foreground`,children:`Master switch. When off, no signals are recorded regardless of the toggles below.`})]}),(0,_.jsx)(d,{checked:e.enabled,disabled:j,onCheckedChange:t=>void R({...e,enabled:t})})]}),(0,_.jsxs)(`div`,{className:`flex items-center justify-between border-t border-border pt-3`,children:[(0,_.jsxs)(`div`,{children:[(0,_.jsxs)(`div`,{className:`text-sm font-medium`,children:[`Context-gathering ratio `,(0,_.jsx)(`span`,{className:`text-xs text-muted-foreground`,children:`(#184)`})]}),(0,_.jsx)(`div`,{className:`text-xs text-muted-foreground`,children:`Server-side: read/search vs. action before first substantive move, per session.`})]}),(0,_.jsx)(d,{checked:e.contextRatio.enabled,disabled:j||!e.enabled,onCheckedChange:t=>void R({...e,contextRatio:{enabled:t}})})]}),(0,_.jsxs)(`div`,{className:`border-t border-border pt-3`,children:[(0,_.jsxs)(`div`,{className:`flex items-center justify-between`,children:[(0,_.jsxs)(`div`,{children:[(0,_.jsxs)(`div`,{className:`text-sm font-medium`,children:[`End-of-session introspection `,(0,_.jsx)(`span`,{className:`text-xs text-muted-foreground`,children:`(#185)`})]}),(0,_.jsx)(`div`,{className:`text-xs text-muted-foreground`,children:`Agent-authored 3-field artifact at session end. Gated below.`})]}),(0,_.jsx)(d,{checked:e.introspection.enabled,disabled:j||!e.enabled,onCheckedChange:t=>void R({...e,introspection:{...e.introspection,enabled:t}})})]}),(0,_.jsxs)(`div`,{className:`mt-3 flex flex-wrap gap-4`,children:[(0,_.jsxs)(`label`,{className:`flex items-center gap-2 text-xs text-muted-foreground`,children:[`min turns`,(0,_.jsx)(u,{type:`number`,className:`h-7 w-20`,value:e.introspection.minTurns,disabled:j||!e.enabled||!e.introspection.enabled,onChange:t=>n({...e,introspection:{...e.introspection,minTurns:Number(t.target.value)}}),onBlur:()=>void R(e)})]}),(0,_.jsxs)(`label`,{className:`flex items-center gap-2 text-xs text-muted-foreground`,children:[`min context remaining (0–1)`,(0,_.jsx)(u,{type:`number`,step:`0.05`,min:`0`,max:`1`,className:`h-7 w-24`,value:e.introspection.minContextRemaining,disabled:j||!e.enabled||!e.introspection.enabled,onChange:t=>n({...e,introspection:{...e.introspection,minContextRemaining:Number(t.target.value)}}),onBlur:()=>void R(e)})]})]})]})]})]}),(0,_.jsxs)(h,{children:[(0,_.jsx)(f,{children:(0,_.jsx)(m,{children:`Signals`})}),(0,_.jsx)(p,{children:B.length===0?(0,_.jsx)(`div`,{className:`text-sm text-muted-foreground`,children:`No observations yet — they appear after sessions end with Insights enabled.`}):(0,_.jsx)(`div`,{className:`space-y-4`,children:B.map(e=>(0,_.jsxs)(`div`,{children:[(0,_.jsxs)(`div`,{className:`mb-1 flex items-center gap-2`,children:[(0,_.jsx)(c,{variant:`secondary`,children:e.signal}),(0,_.jsxs)(`span`,{className:`text-xs text-muted-foreground`,children:[e.count,` obs · `,e.avgRatio===null?`no ratio`:`avg ratio ${e.avgRatio.toFixed(2)}`,` · `,s(F,e.lastAt)]})]}),(0,_.jsx)(`div`,{className:`flex flex-wrap gap-2 pl-2`,children:V.filter(t=>t.signal===e.signal).map(t=>(0,_.jsxs)(`span`,{className:`rounded border border-border px-2 py-0.5 text-xs text-muted-foreground`,children:[t.project,`: `,t.count,t.avgRatio===null?``:` · ${t.avgRatio.toFixed(2)}`]},`${e.signal}-${t.project}`))})]},e.signal))})})]}),(0,_.jsxs)(h,{children:[(0,_.jsx)(f,{children:(0,_.jsxs)(m,{className:`flex flex-wrap items-center gap-3`,children:[(0,_.jsx)(`span`,{children:`Observations`}),(0,_.jsxs)(`select`,{className:`h-7 rounded border border-border bg-background px-2 text-xs`,value:D,onChange:e=>O(e.target.value),children:[(0,_.jsx)(`option`,{value:``,children:`all projects`}),T.map(e=>(0,_.jsx)(`option`,{value:e,children:e},e))]}),(0,_.jsxs)(`select`,{className:`h-7 rounded border border-border bg-background px-2 text-xs`,value:k,onChange:e=>A(e.target.value),children:[(0,_.jsx)(`option`,{value:``,children:`all signals`}),z.map(e=>(0,_.jsx)(`option`,{value:e,children:e},e))]})]})}),(0,_.jsx)(p,{children:x.length===0?(0,_.jsx)(`div`,{className:`text-sm text-muted-foreground`,children:`No observations match.`}):(0,_.jsx)(`div`,{className:`overflow-x-auto`,children:(0,_.jsxs)(`table`,{className:`w-full min-w-[680px] text-left text-xs`,children:[(0,_.jsx)(`thead`,{className:`text-muted-foreground`,children:(0,_.jsxs)(`tr`,{className:`border-b border-border`,children:[(0,_.jsx)(`th`,{className:`py-1 pr-3 font-medium`,children:`when`}),(0,_.jsx)(`th`,{className:`py-1 pr-3 font-medium`,children:`project`}),(0,_.jsx)(`th`,{className:`py-1 pr-3 font-medium`,children:`signal`}),(0,_.jsx)(`th`,{className:`py-1 pr-3 font-medium`,children:`src`}),(0,_.jsx)(`th`,{className:`py-1 pr-3 font-medium`,children:`value`}),(0,_.jsx)(`th`,{className:`py-1 pr-3 font-medium`,children:`outcome`}),(0,_.jsx)(`th`,{className:`py-1 pr-3 font-medium`,children:`session`})]})}),(0,_.jsx)(`tbody`,{children:x.map(e=>(0,_.jsxs)(`tr`,{className:`border-b border-border/50`,children:[(0,_.jsx)(`td`,{className:`py-1 pr-3 whitespace-nowrap text-muted-foreground`,children:s(F,e.createdAt)}),(0,_.jsx)(`td`,{className:`py-1 pr-3 whitespace-nowrap`,children:e.project}),(0,_.jsx)(`td`,{className:`py-1 pr-3 whitespace-nowrap`,children:(0,_.jsx)(c,{variant:`outline`,children:e.signal})}),(0,_.jsx)(`td`,{className:`py-1 pr-3 whitespace-nowrap text-muted-foreground`,children:e.source}),(0,_.jsx)(`td`,{className:`py-1 pr-3 font-mono`,children:y(e.value)}),(0,_.jsx)(`td`,{className:`py-1 pr-3 font-mono text-muted-foreground`,children:y(e.outcome)}),(0,_.jsx)(`td`,{className:`py-1 pr-3 whitespace-nowrap text-muted-foreground`,children:e.agentId??e.sessionId.slice(0,12)})]},e.id))})]})})})]})]})}export{b as InsightsView};
|
|
2
|
+
//# sourceMappingURL=insights-5rkMFRgf.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"insights-i6AEZT_a.js","names":[],"sources":["../../dashboard/src/components/views/insights.tsx"],"sourcesContent":["import { useEffect, useMemo, useState } from 'react'\nimport { errMessage } from 'agent-relay-sdk/types'\nimport { api } from '@/lib/api'\nimport { Badge } from '@/components/ui/badge'\nimport { Button } from '@/components/ui/button'\nimport { Card, CardContent, CardHeader, CardTitle } from '@/components/ui/card'\nimport { Input } from '@/components/ui/input'\nimport { Switch } from '@/components/ui/switch'\nimport { timeAgo } from '@/lib/display'\nimport { Lightbulb, RefreshCw } from 'lucide-react'\n\n// Insights — continuous self-improvement module (epic #183, docs/self-improvement.md).\n// v0: feature toggles + a raw per-project/global view of the observations the relay\n// collects. No charts, no alerting — the data earns those once a week proves it's real.\n\ninterface InsightsConfig {\n enabled: boolean\n contextRatio: { enabled: boolean }\n introspection: { enabled: boolean; minTurns: number; minContextRemaining: number }\n}\n\ninterface ConfigEntry {\n value: InsightsConfig\n version: number\n updatedAt: string\n updatedBy?: string\n}\n\ninterface Observation {\n id: number\n sessionId: string\n agentId?: string\n project: string\n signal: string\n value: Record<string, unknown>\n outcome?: Record<string, unknown>\n source: 'server' | 'agent'\n createdAt: number\n}\n\ninterface Stat {\n signal: string\n project: string | null\n count: number\n avgRatio: number | null\n lastAt: number | null\n}\n\ninterface ObservationsResponse {\n observations: Observation[]\n stats: Stat[]\n projects: string[]\n}\n\nconst DEFAULT_CONFIG: InsightsConfig = {\n enabled: true,\n contextRatio: { enabled: true },\n introspection: { enabled: true, minTurns: 4, minContextRemaining: 0.15 },\n}\n\nfunction compactJson(value: Record<string, unknown> | undefined): string {\n if (!value || Object.keys(value).length === 0) return '—'\n return Object.entries(value)\n .map(([k, v]) => `${k}: ${typeof v === 'number' ? Math.round(v * 1000) / 1000 : String(v)}`)\n .join(' ')\n}\n\nexport function InsightsView() {\n const [config, setConfig] = useState<InsightsConfig>(DEFAULT_CONFIG)\n const [version, setVersion] = useState(0)\n const [observations, setObservations] = useState<Observation[]>([])\n const [stats, setStats] = useState<Stat[]>([])\n const [projects, setProjects] = useState<string[]>([])\n const [projectFilter, setProjectFilter] = useState<string>('')\n const [signalFilter, setSignalFilter] = useState<string>('')\n const [saving, setSaving] = useState(false)\n const [error, setError] = useState<string | null>(null)\n const [now, setNow] = useState(() => Date.now())\n\n async function refresh() {\n setError(null)\n try {\n const params = new URLSearchParams()\n if (projectFilter) params.set('project', projectFilter)\n if (signalFilter) params.set('signal', signalFilter)\n const query = params.toString()\n const [cfg, obs] = await Promise.all([\n api<ConfigEntry>('GET', '/insights/config'),\n api<ObservationsResponse>('GET', `/insights/observations${query ? `?${query}` : ''}`),\n ])\n setConfig(cfg.value)\n setVersion(cfg.version)\n setObservations(obs.observations)\n setStats(obs.stats)\n setProjects(obs.projects)\n setNow(Date.now())\n } catch (e) {\n setError(errMessage(e))\n }\n }\n\n // Mount + filter-change: synchronize the view with the relay's stored data.\n useEffect(() => {\n void refresh()\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [projectFilter, signalFilter])\n\n async function saveConfig(next: InsightsConfig) {\n setSaving(true)\n setError(null)\n const previous = config\n setConfig(next) // optimistic\n try {\n const entry = await api<ConfigEntry>('PUT', '/insights/config', { value: next, updatedBy: 'dashboard' })\n setConfig(entry.value)\n setVersion(entry.version)\n } catch (e) {\n setConfig(previous) // revert on failure\n setError(errMessage(e))\n } finally {\n setSaving(false)\n }\n }\n\n const signals = useMemo(() => {\n const set = new Set<string>(stats.map((s) => s.signal))\n return [...set].sort()\n }, [stats])\n\n const globalStats = useMemo(() => stats.filter((s) => s.project === null), [stats])\n const projectStats = useMemo(() => stats.filter((s) => s.project !== null), [stats])\n\n return (\n <div className=\"space-y-4 p-4\">\n <div className=\"flex items-center justify-between\">\n <div className=\"flex items-center gap-2\">\n <Lightbulb className=\"size-5 text-primary\" />\n <h1 className=\"text-lg font-semibold\">Insights</h1>\n <span className=\"text-xs text-muted-foreground\">continuous self-improvement · epic #183</span>\n </div>\n <Button variant=\"outline\" size=\"sm\" onClick={() => void refresh()}>\n <RefreshCw className=\"size-4\" /> Refresh\n </Button>\n </div>\n\n {error && (\n <div className=\"rounded-md border border-destructive/40 bg-destructive/10 px-3 py-2 text-sm text-destructive\">{error}</div>\n )}\n\n {/* Feature toggles */}\n <Card>\n <CardHeader>\n <CardTitle className=\"flex items-center justify-between\">\n <span>Features</span>\n <span className=\"text-xs font-normal text-muted-foreground\">config v{version} · saved by {config && 'dashboard'}</span>\n </CardTitle>\n </CardHeader>\n <CardContent className=\"space-y-4\">\n <div className=\"flex items-center justify-between\">\n <div>\n <div className=\"text-sm font-medium\">Insights enabled</div>\n <div className=\"text-xs text-muted-foreground\">Master switch. When off, no signals are recorded regardless of the toggles below.</div>\n </div>\n <Switch checked={config.enabled} disabled={saving} onCheckedChange={(v) => void saveConfig({ ...config, enabled: v })} />\n </div>\n\n <div className=\"flex items-center justify-between border-t border-border pt-3\">\n <div>\n <div className=\"text-sm font-medium\">Context-gathering ratio <span className=\"text-xs text-muted-foreground\">(#184)</span></div>\n <div className=\"text-xs text-muted-foreground\">Server-side: read/search vs. action before first substantive move, per session.</div>\n </div>\n <Switch checked={config.contextRatio.enabled} disabled={saving || !config.enabled}\n onCheckedChange={(v) => void saveConfig({ ...config, contextRatio: { enabled: v } })} />\n </div>\n\n <div className=\"border-t border-border pt-3\">\n <div className=\"flex items-center justify-between\">\n <div>\n <div className=\"text-sm font-medium\">End-of-session introspection <span className=\"text-xs text-muted-foreground\">(#185)</span></div>\n <div className=\"text-xs text-muted-foreground\">Agent-authored 3-field artifact at session end. Gated below.</div>\n </div>\n <Switch checked={config.introspection.enabled} disabled={saving || !config.enabled}\n onCheckedChange={(v) => void saveConfig({ ...config, introspection: { ...config.introspection, enabled: v } })} />\n </div>\n <div className=\"mt-3 flex flex-wrap gap-4\">\n <label className=\"flex items-center gap-2 text-xs text-muted-foreground\">\n min turns\n <Input type=\"number\" className=\"h-7 w-20\" value={config.introspection.minTurns}\n disabled={saving || !config.enabled || !config.introspection.enabled}\n onChange={(e) => setConfig({ ...config, introspection: { ...config.introspection, minTurns: Number(e.target.value) } })}\n onBlur={() => void saveConfig(config)} />\n </label>\n <label className=\"flex items-center gap-2 text-xs text-muted-foreground\">\n min context remaining (0–1)\n <Input type=\"number\" step=\"0.05\" min=\"0\" max=\"1\" className=\"h-7 w-24\" value={config.introspection.minContextRemaining}\n disabled={saving || !config.enabled || !config.introspection.enabled}\n onChange={(e) => setConfig({ ...config, introspection: { ...config.introspection, minContextRemaining: Number(e.target.value) } })}\n onBlur={() => void saveConfig(config)} />\n </label>\n </div>\n </div>\n </CardContent>\n </Card>\n\n {/* Stats rollup */}\n <Card>\n <CardHeader>\n <CardTitle>Signals</CardTitle>\n </CardHeader>\n <CardContent>\n {globalStats.length === 0 ? (\n <div className=\"text-sm text-muted-foreground\">No observations yet — they appear after sessions end with Insights enabled.</div>\n ) : (\n <div className=\"space-y-4\">\n {globalStats.map((g) => (\n <div key={g.signal}>\n <div className=\"mb-1 flex items-center gap-2\">\n <Badge variant=\"secondary\">{g.signal}</Badge>\n <span className=\"text-xs text-muted-foreground\">\n {g.count} obs · {g.avgRatio !== null ? `avg ratio ${g.avgRatio.toFixed(2)}` : 'no ratio'} · {timeAgo(now, g.lastAt)}\n </span>\n </div>\n <div className=\"flex flex-wrap gap-2 pl-2\">\n {projectStats.filter((p) => p.signal === g.signal).map((p) => (\n <span key={`${g.signal}-${p.project}`} className=\"rounded border border-border px-2 py-0.5 text-xs text-muted-foreground\">\n {p.project}: {p.count}{p.avgRatio !== null ? ` · ${p.avgRatio.toFixed(2)}` : ''}\n </span>\n ))}\n </div>\n </div>\n ))}\n </div>\n )}\n </CardContent>\n </Card>\n\n {/* Raw observations */}\n <Card>\n <CardHeader>\n <CardTitle className=\"flex flex-wrap items-center gap-3\">\n <span>Observations</span>\n <select className=\"h-7 rounded border border-border bg-background px-2 text-xs\"\n value={projectFilter} onChange={(e) => setProjectFilter(e.target.value)}>\n <option value=\"\">all projects</option>\n {projects.map((p) => <option key={p} value={p}>{p}</option>)}\n </select>\n <select className=\"h-7 rounded border border-border bg-background px-2 text-xs\"\n value={signalFilter} onChange={(e) => setSignalFilter(e.target.value)}>\n <option value=\"\">all signals</option>\n {signals.map((s) => <option key={s} value={s}>{s}</option>)}\n </select>\n </CardTitle>\n </CardHeader>\n <CardContent>\n {observations.length === 0 ? (\n <div className=\"text-sm text-muted-foreground\">No observations match.</div>\n ) : (\n <div className=\"overflow-x-auto\">\n <table className=\"w-full min-w-[680px] text-left text-xs\">\n <thead className=\"text-muted-foreground\">\n <tr className=\"border-b border-border\">\n <th className=\"py-1 pr-3 font-medium\">when</th>\n <th className=\"py-1 pr-3 font-medium\">project</th>\n <th className=\"py-1 pr-3 font-medium\">signal</th>\n <th className=\"py-1 pr-3 font-medium\">src</th>\n <th className=\"py-1 pr-3 font-medium\">value</th>\n <th className=\"py-1 pr-3 font-medium\">outcome</th>\n <th className=\"py-1 pr-3 font-medium\">session</th>\n </tr>\n </thead>\n <tbody>\n {observations.map((o) => (\n <tr key={o.id} className=\"border-b border-border/50\">\n <td className=\"py-1 pr-3 whitespace-nowrap text-muted-foreground\">{timeAgo(now, o.createdAt)}</td>\n <td className=\"py-1 pr-3 whitespace-nowrap\">{o.project}</td>\n <td className=\"py-1 pr-3 whitespace-nowrap\"><Badge variant=\"outline\">{o.signal}</Badge></td>\n <td className=\"py-1 pr-3 whitespace-nowrap text-muted-foreground\">{o.source}</td>\n <td className=\"py-1 pr-3 font-mono\">{compactJson(o.value)}</td>\n <td className=\"py-1 pr-3 font-mono text-muted-foreground\">{compactJson(o.outcome)}</td>\n <td className=\"py-1 pr-3 whitespace-nowrap text-muted-foreground\">{o.agentId ?? o.sessionId.slice(0, 12)}</td>\n </tr>\n ))}\n </tbody>\n </table>\n </div>\n )}\n </CardContent>\n </Card>\n </div>\n )\n}\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"insights-5rkMFRgf.js","names":[],"sources":["../../dashboard/src/components/views/insights.tsx"],"sourcesContent":["import { useEffect, useMemo, useState } from 'react'\nimport { errMessage } from 'agent-relay-sdk/types'\nimport { api } from '@/lib/api'\nimport { Badge } from '@/components/ui/badge'\nimport { Button } from '@/components/ui/button'\nimport { Card, CardContent, CardHeader, CardTitle } from '@/components/ui/card'\nimport { Input } from '@/components/ui/input'\nimport { Switch } from '@/components/ui/switch'\nimport { timeAgo } from '@/lib/display'\nimport { Lightbulb, RefreshCw } from 'lucide-react'\n\n// Insights — continuous self-improvement module (epic #183, docs/self-improvement.md).\n// v0: feature toggles + a raw per-project/global view of the observations the relay\n// collects. No charts, no alerting — the data earns those once a week proves it's real.\n\ninterface InsightsConfig {\n enabled: boolean\n contextRatio: { enabled: boolean }\n introspection: { enabled: boolean; minTurns: number; minContextRemaining: number }\n}\n\ninterface ConfigEntry {\n value: InsightsConfig\n version: number\n updatedAt: string\n updatedBy?: string\n}\n\ninterface Observation {\n id: number\n sessionId: string\n agentId?: string\n project: string\n signal: string\n value: Record<string, unknown>\n outcome?: Record<string, unknown>\n source: 'server' | 'agent'\n createdAt: number\n}\n\ninterface Stat {\n signal: string\n project: string | null\n count: number\n avgRatio: number | null\n lastAt: number | null\n}\n\ninterface ObservationsResponse {\n observations: Observation[]\n stats: Stat[]\n projects: string[]\n}\n\nconst DEFAULT_CONFIG: InsightsConfig = {\n enabled: true,\n contextRatio: { enabled: true },\n introspection: { enabled: true, minTurns: 4, minContextRemaining: 0.15 },\n}\n\nfunction compactJson(value: Record<string, unknown> | undefined): string {\n if (!value || Object.keys(value).length === 0) return '—'\n return Object.entries(value)\n .map(([k, v]) => `${k}: ${typeof v === 'number' ? Math.round(v * 1000) / 1000 : String(v)}`)\n .join(' ')\n}\n\nexport function InsightsView() {\n const [config, setConfig] = useState<InsightsConfig>(DEFAULT_CONFIG)\n const [version, setVersion] = useState(0)\n const [observations, setObservations] = useState<Observation[]>([])\n const [stats, setStats] = useState<Stat[]>([])\n const [projects, setProjects] = useState<string[]>([])\n const [projectFilter, setProjectFilter] = useState<string>('')\n const [signalFilter, setSignalFilter] = useState<string>('')\n const [saving, setSaving] = useState(false)\n const [error, setError] = useState<string | null>(null)\n const [now, setNow] = useState(() => Date.now())\n\n async function refresh() {\n setError(null)\n try {\n const params = new URLSearchParams()\n if (projectFilter) params.set('project', projectFilter)\n if (signalFilter) params.set('signal', signalFilter)\n const query = params.toString()\n const [cfg, obs] = await Promise.all([\n api<ConfigEntry>('GET', '/insights/config'),\n api<ObservationsResponse>('GET', `/insights/observations${query ? `?${query}` : ''}`),\n ])\n setConfig(cfg.value)\n setVersion(cfg.version)\n setObservations(obs.observations)\n setStats(obs.stats)\n setProjects(obs.projects)\n setNow(Date.now())\n } catch (e) {\n setError(errMessage(e))\n }\n }\n\n // Mount + filter-change: synchronize the view with the relay's stored data.\n useEffect(() => {\n void refresh()\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [projectFilter, signalFilter])\n\n async function saveConfig(next: InsightsConfig) {\n setSaving(true)\n setError(null)\n const previous = config\n setConfig(next) // optimistic\n try {\n const entry = await api<ConfigEntry>('PUT', '/insights/config', { value: next, updatedBy: 'dashboard' })\n setConfig(entry.value)\n setVersion(entry.version)\n } catch (e) {\n setConfig(previous) // revert on failure\n setError(errMessage(e))\n } finally {\n setSaving(false)\n }\n }\n\n const signals = useMemo(() => {\n const set = new Set<string>(stats.map((s) => s.signal))\n return [...set].sort()\n }, [stats])\n\n const globalStats = useMemo(() => stats.filter((s) => s.project === null), [stats])\n const projectStats = useMemo(() => stats.filter((s) => s.project !== null), [stats])\n\n return (\n <div className=\"space-y-4 p-4\">\n <div className=\"flex items-center justify-between\">\n <div className=\"flex items-center gap-2\">\n <Lightbulb className=\"size-5 text-primary\" />\n <h1 className=\"text-lg font-semibold\">Insights</h1>\n <span className=\"text-xs text-muted-foreground\">continuous self-improvement · epic #183</span>\n </div>\n <Button variant=\"outline\" size=\"sm\" onClick={() => void refresh()}>\n <RefreshCw className=\"size-4\" /> Refresh\n </Button>\n </div>\n\n {error && (\n <div className=\"rounded-md border border-destructive/40 bg-destructive/10 px-3 py-2 text-sm text-destructive\">{error}</div>\n )}\n\n {/* Feature toggles */}\n <Card>\n <CardHeader>\n <CardTitle className=\"flex items-center justify-between\">\n <span>Features</span>\n <span className=\"text-xs font-normal text-muted-foreground\">config v{version} · saved by {config && 'dashboard'}</span>\n </CardTitle>\n </CardHeader>\n <CardContent className=\"space-y-4\">\n <div className=\"flex items-center justify-between\">\n <div>\n <div className=\"text-sm font-medium\">Insights enabled</div>\n <div className=\"text-xs text-muted-foreground\">Master switch. When off, no signals are recorded regardless of the toggles below.</div>\n </div>\n <Switch checked={config.enabled} disabled={saving} onCheckedChange={(v) => void saveConfig({ ...config, enabled: v })} />\n </div>\n\n <div className=\"flex items-center justify-between border-t border-border pt-3\">\n <div>\n <div className=\"text-sm font-medium\">Context-gathering ratio <span className=\"text-xs text-muted-foreground\">(#184)</span></div>\n <div className=\"text-xs text-muted-foreground\">Server-side: read/search vs. action before first substantive move, per session.</div>\n </div>\n <Switch checked={config.contextRatio.enabled} disabled={saving || !config.enabled}\n onCheckedChange={(v) => void saveConfig({ ...config, contextRatio: { enabled: v } })} />\n </div>\n\n <div className=\"border-t border-border pt-3\">\n <div className=\"flex items-center justify-between\">\n <div>\n <div className=\"text-sm font-medium\">End-of-session introspection <span className=\"text-xs text-muted-foreground\">(#185)</span></div>\n <div className=\"text-xs text-muted-foreground\">Agent-authored 3-field artifact at session end. Gated below.</div>\n </div>\n <Switch checked={config.introspection.enabled} disabled={saving || !config.enabled}\n onCheckedChange={(v) => void saveConfig({ ...config, introspection: { ...config.introspection, enabled: v } })} />\n </div>\n <div className=\"mt-3 flex flex-wrap gap-4\">\n <label className=\"flex items-center gap-2 text-xs text-muted-foreground\">\n min turns\n <Input type=\"number\" className=\"h-7 w-20\" value={config.introspection.minTurns}\n disabled={saving || !config.enabled || !config.introspection.enabled}\n onChange={(e) => setConfig({ ...config, introspection: { ...config.introspection, minTurns: Number(e.target.value) } })}\n onBlur={() => void saveConfig(config)} />\n </label>\n <label className=\"flex items-center gap-2 text-xs text-muted-foreground\">\n min context remaining (0–1)\n <Input type=\"number\" step=\"0.05\" min=\"0\" max=\"1\" className=\"h-7 w-24\" value={config.introspection.minContextRemaining}\n disabled={saving || !config.enabled || !config.introspection.enabled}\n onChange={(e) => setConfig({ ...config, introspection: { ...config.introspection, minContextRemaining: Number(e.target.value) } })}\n onBlur={() => void saveConfig(config)} />\n </label>\n </div>\n </div>\n </CardContent>\n </Card>\n\n {/* Stats rollup */}\n <Card>\n <CardHeader>\n <CardTitle>Signals</CardTitle>\n </CardHeader>\n <CardContent>\n {globalStats.length === 0 ? (\n <div className=\"text-sm text-muted-foreground\">No observations yet — they appear after sessions end with Insights enabled.</div>\n ) : (\n <div className=\"space-y-4\">\n {globalStats.map((g) => (\n <div key={g.signal}>\n <div className=\"mb-1 flex items-center gap-2\">\n <Badge variant=\"secondary\">{g.signal}</Badge>\n <span className=\"text-xs text-muted-foreground\">\n {g.count} obs · {g.avgRatio !== null ? `avg ratio ${g.avgRatio.toFixed(2)}` : 'no ratio'} · {timeAgo(now, g.lastAt)}\n </span>\n </div>\n <div className=\"flex flex-wrap gap-2 pl-2\">\n {projectStats.filter((p) => p.signal === g.signal).map((p) => (\n <span key={`${g.signal}-${p.project}`} className=\"rounded border border-border px-2 py-0.5 text-xs text-muted-foreground\">\n {p.project}: {p.count}{p.avgRatio !== null ? ` · ${p.avgRatio.toFixed(2)}` : ''}\n </span>\n ))}\n </div>\n </div>\n ))}\n </div>\n )}\n </CardContent>\n </Card>\n\n {/* Raw observations */}\n <Card>\n <CardHeader>\n <CardTitle className=\"flex flex-wrap items-center gap-3\">\n <span>Observations</span>\n <select className=\"h-7 rounded border border-border bg-background px-2 text-xs\"\n value={projectFilter} onChange={(e) => setProjectFilter(e.target.value)}>\n <option value=\"\">all projects</option>\n {projects.map((p) => <option key={p} value={p}>{p}</option>)}\n </select>\n <select className=\"h-7 rounded border border-border bg-background px-2 text-xs\"\n value={signalFilter} onChange={(e) => setSignalFilter(e.target.value)}>\n <option value=\"\">all signals</option>\n {signals.map((s) => <option key={s} value={s}>{s}</option>)}\n </select>\n </CardTitle>\n </CardHeader>\n <CardContent>\n {observations.length === 0 ? (\n <div className=\"text-sm text-muted-foreground\">No observations match.</div>\n ) : (\n <div className=\"overflow-x-auto\">\n <table className=\"w-full min-w-[680px] text-left text-xs\">\n <thead className=\"text-muted-foreground\">\n <tr className=\"border-b border-border\">\n <th className=\"py-1 pr-3 font-medium\">when</th>\n <th className=\"py-1 pr-3 font-medium\">project</th>\n <th className=\"py-1 pr-3 font-medium\">signal</th>\n <th className=\"py-1 pr-3 font-medium\">src</th>\n <th className=\"py-1 pr-3 font-medium\">value</th>\n <th className=\"py-1 pr-3 font-medium\">outcome</th>\n <th className=\"py-1 pr-3 font-medium\">session</th>\n </tr>\n </thead>\n <tbody>\n {observations.map((o) => (\n <tr key={o.id} className=\"border-b border-border/50\">\n <td className=\"py-1 pr-3 whitespace-nowrap text-muted-foreground\">{timeAgo(now, o.createdAt)}</td>\n <td className=\"py-1 pr-3 whitespace-nowrap\">{o.project}</td>\n <td className=\"py-1 pr-3 whitespace-nowrap\"><Badge variant=\"outline\">{o.signal}</Badge></td>\n <td className=\"py-1 pr-3 whitespace-nowrap text-muted-foreground\">{o.source}</td>\n <td className=\"py-1 pr-3 font-mono\">{compactJson(o.value)}</td>\n <td className=\"py-1 pr-3 font-mono text-muted-foreground\">{compactJson(o.outcome)}</td>\n <td className=\"py-1 pr-3 whitespace-nowrap text-muted-foreground\">{o.agentId ?? o.sessionId.slice(0, 12)}</td>\n </tr>\n ))}\n </tbody>\n </table>\n </div>\n )}\n </CardContent>\n </Card>\n </div>\n )\n}\n"],"mappings":"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"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{
|
|
2
|
-
//# sourceMappingURL=integrations-
|
|
1
|
+
import{Sn as e,U as t,Xt as n,bn as r,gt as i,ir as a,nt as o,qn as s,tr as c}from"./lucide-react-DD_zIava.js";import{t as l}from"./store-DKTb9O0v.js";import{J as u,b as d}from"./display-BNI-7rdq.js";import{t as f}from"./badge-BkNNvFNa.js";import{t as p}from"./button-DUaC2wSQ.js";import{o as m,r as h,s as g,t as _}from"./card-r-yAV4cH.js";var v=a(),y={PlugZap:t,AlertCircle:e,Activity:c,Eye:n,CircleCheck:r};function b(){let e=l(e=>e.integrations),n=l(e=>e.channels),r=l(e=>e.set),a=l(e=>e.switchView),c=e.reduce((e,t)=>e+(t.taskStats?.waitingTasks||0),0),b=new Set(n.map(e=>e.type)),x=e.filter(e=>b.has(e.name)).length;function S(e){r({taskSourceFilter:e}),a(`tasks`)}return(0,v.jsxs)(`div`,{className:`space-y-6`,children:[x>0&&(0,v.jsxs)(`div`,{className:`flex items-center gap-3 px-3 py-2.5 rounded-lg border border-blue-500/20 bg-blue-500/5 text-sm`,children:[(0,v.jsx)(o,{className:`w-4 h-4 text-blue-400 shrink-0`}),(0,v.jsxs)(`span`,{className:`text-muted-foreground flex-1`,children:[(0,v.jsx)(`span`,{className:`text-foreground font-medium`,children:x}),` integration`,x===1?``:`s`,` have active channels — view them in Channels for live status and routing detail.`]}),(0,v.jsxs)(p,{variant:`ghost`,size:`sm`,className:`h-7 text-xs gap-1 text-blue-400 hover:text-blue-300 shrink-0`,onClick:()=>void a(`channels`),children:[`Channels`,(0,v.jsx)(s,{className:`w-3 h-3`})]})]}),(0,v.jsx)(`div`,{className:`flex items-center justify-between`,children:(0,v.jsxs)(`div`,{className:`flex items-center gap-3`,children:[(0,v.jsx)(`h1`,{className:`text-lg font-semibold`,children:`Integrations`}),(0,v.jsxs)(f,{variant:`outline`,className:`text-xs`,children:[e.length,` total`]}),c>0&&(0,v.jsxs)(f,{className:`bg-yellow-500/20 text-yellow-400 border-yellow-500/30 text-xs`,children:[c,` waiting`]})]})}),e.length===0?(0,v.jsxs)(`div`,{className:`flex flex-col items-center justify-center py-16 text-center`,children:[(0,v.jsx)(t,{className:`w-10 h-10 text-zinc-600 mb-3`}),(0,v.jsx)(`p`,{className:`text-muted-foreground text-sm`,children:`No integrations configured`})]}):(0,v.jsx)(`div`,{className:`grid grid-cols-1 md:grid-cols-2 xl:grid-cols-3 gap-4`,children:e.map(e=>{let n=d(e),r=y[e.icon||n.icon]||y[n.icon]||t,a=e.taskStats||{};return(0,v.jsxs)(_,{className:`flex flex-col border-l-2`,style:{borderLeftColor:e.accentColor||void 0},children:[(0,v.jsxs)(m,{children:[(0,v.jsxs)(`div`,{className:`flex items-start justify-between gap-2`,children:[(0,v.jsxs)(`div`,{className:`min-w-0`,children:[(0,v.jsx)(g,{className:`text-sm font-medium truncate`,children:e.displayName||e.name}),e.description&&(0,v.jsx)(`p`,{className:`mt-1 text-xs text-muted-foreground line-clamp-2`,children:e.description})]}),(0,v.jsxs)(`div`,{className:`flex items-center gap-1.5 shrink-0`,children:[(0,v.jsx)(r,{className:`w-3.5 h-3.5 ${u(n.tone)}`}),(0,v.jsx)(`span`,{className:`text-xs ${u(n.tone)}`,children:n.label})]})]}),(0,v.jsxs)(`div`,{className:`flex flex-wrap gap-1 mt-1`,children:[e.configured&&(0,v.jsx)(f,{variant:`outline`,className:`text-xs text-emerald-400 border-emerald-500/30`,children:`configured`}),e.observed&&(0,v.jsx)(f,{variant:`outline`,className:`text-xs text-blue-400 border-blue-500/30`,children:`observed`}),!e.enabled&&(0,v.jsx)(f,{variant:`outline`,className:`text-xs text-red-400 border-red-500/30`,children:`disabled`}),e.type&&(0,v.jsx)(f,{variant:`secondary`,className:`text-xs`,children:e.type}),e.tags?.map(e=>(0,v.jsxs)(f,{variant:`outline`,className:`text-xs text-zinc-400`,children:[`#`,e]},e))]})]}),(0,v.jsxs)(h,{className:`flex-1 space-y-3`,children:[(0,v.jsxs)(`div`,{className:`grid grid-cols-4 gap-2 text-center`,children:[(0,v.jsxs)(`div`,{className:`space-y-0.5`,children:[(0,v.jsx)(`p`,{className:`text-base font-semibold tabular-nums`,children:a.tasks??0}),(0,v.jsx)(`p`,{className:`text-xs text-muted-foreground`,children:`tasks`})]}),(0,v.jsxs)(`div`,{className:`space-y-0.5`,children:[(0,v.jsx)(`p`,{className:`text-base font-semibold tabular-nums text-blue-400`,children:a.openTasks??0}),(0,v.jsx)(`p`,{className:`text-xs text-muted-foreground`,children:`open`})]}),(0,v.jsxs)(`div`,{className:`space-y-0.5`,children:[(0,v.jsx)(`p`,{className:`text-base font-semibold tabular-nums ${(a.waitingTasks??0)>0?`text-yellow-400`:``}`,children:a.waitingTasks??0}),(0,v.jsx)(`p`,{className:`text-xs text-muted-foreground`,children:`waiting`})]}),(0,v.jsxs)(`div`,{className:`space-y-0.5`,children:[(0,v.jsx)(`p`,{className:`text-base font-semibold tabular-nums ${(a.failedTasks??0)>0?`text-red-400`:``}`,children:a.failedTasks??0}),(0,v.jsx)(`p`,{className:`text-xs text-muted-foreground`,children:`failed`})]})]}),(e.scopes?.length>0||e.targets?.length>0||e.channels?.length>0)&&(0,v.jsxs)(`div`,{className:`space-y-1.5`,children:[e.scopes?.length>0&&(0,v.jsx)(`div`,{className:`flex flex-wrap gap-1`,children:e.scopes.map(e=>(0,v.jsx)(f,{variant:`outline`,className:`text-xs text-zinc-400`,children:e},e))}),e.targets?.length>0&&(0,v.jsx)(`div`,{className:`flex flex-wrap gap-1`,children:e.targets.map(e=>(0,v.jsx)(f,{variant:`secondary`,className:`text-xs`,children:e},e))}),e.channels?.length>0&&(0,v.jsx)(`div`,{className:`flex flex-wrap gap-1`,children:e.channels.map(e=>(0,v.jsxs)(f,{className:`text-xs bg-blue-500/10 text-blue-400 border-blue-500/20`,children:[`#`,e]},e))})]})]}),(a.tasks??0)>0&&(0,v.jsx)(`div`,{className:`px-4 pb-4`,children:(0,v.jsxs)(p,{variant:`outline`,size:`sm`,className:`w-full gap-1.5`,onClick:()=>S(a.source||e.name),children:[(0,v.jsx)(i,{className:`w-3.5 h-3.5`}),`Show tasks`]})})]},e.name)})})]})}export{b as IntegrationsView};
|
|
2
|
+
//# sourceMappingURL=integrations-BEaqjfP4.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"integrations-9c6IdRU4.js","names":[],"sources":["../../dashboard/src/components/views/integrations.tsx"],"sourcesContent":["import { useRelayStore } from '@/store'\nimport { Card, CardContent, CardHeader, CardTitle } from '@/components/ui/card'\nimport { Badge } from '@/components/ui/badge'\nimport { Button } from '@/components/ui/button'\nimport { integrationPresence, toneToColor } from '@/lib/display'\nimport { PlugZap, AlertCircle, Activity, Eye, CircleCheck, ListChecks, MessagesSquare, ArrowRight } from 'lucide-react'\n\nconst PRESENCE_ICONS: Record<string, typeof PlugZap> = {\n PlugZap, AlertCircle, Activity, Eye, CircleCheck,\n}\n\nexport function IntegrationsView() {\n const integrations = useRelayStore((s) => s.integrations)\n const channels = useRelayStore((s) => s.channels)\n const set = useRelayStore((s) => s.set)\n const switchView = useRelayStore((s) => s.switchView)\n\n const waitingCount = integrations.reduce((sum, i) => sum + (i.taskStats?.waitingTasks || 0), 0)\n const activeChannelTypes = new Set(channels.map((c) => c.type))\n const channelBackedCount = integrations.filter((i) => activeChannelTypes.has(i.name)).length\n\n function showTasks(source: string) {\n set({ taskSourceFilter: source })\n switchView('tasks')\n }\n\n return (\n <div className=\"space-y-6\">\n {/* Channel integrations cross-link */}\n {channelBackedCount > 0 && (\n <div className=\"flex items-center gap-3 px-3 py-2.5 rounded-lg border border-blue-500/20 bg-blue-500/5 text-sm\">\n <MessagesSquare className=\"w-4 h-4 text-blue-400 shrink-0\" />\n <span className=\"text-muted-foreground flex-1\">\n <span className=\"text-foreground font-medium\">{channelBackedCount}</span> integration{channelBackedCount !== 1 ? 's' : ''} have active channels — view them in Channels for live status and routing detail.\n </span>\n <Button\n variant=\"ghost\"\n size=\"sm\"\n className=\"h-7 text-xs gap-1 text-blue-400 hover:text-blue-300 shrink-0\"\n onClick={() => void switchView('channels')}\n >\n Channels\n <ArrowRight className=\"w-3 h-3\" />\n </Button>\n </div>\n )}\n\n {/* Header */}\n <div className=\"flex items-center justify-between\">\n <div className=\"flex items-center gap-3\">\n <h1 className=\"text-lg font-semibold\">Integrations</h1>\n <Badge variant=\"outline\" className=\"text-xs\">\n {integrations.length} total\n </Badge>\n {waitingCount > 0 && (\n <Badge className=\"bg-yellow-500/20 text-yellow-400 border-yellow-500/30 text-xs\">\n {waitingCount} waiting\n </Badge>\n )}\n </div>\n </div>\n\n {integrations.length === 0 ? (\n <div className=\"flex flex-col items-center justify-center py-16 text-center\">\n <PlugZap className=\"w-10 h-10 text-zinc-600 mb-3\" />\n <p className=\"text-muted-foreground text-sm\">No integrations configured</p>\n </div>\n ) : (\n <div className=\"grid grid-cols-1 md:grid-cols-2 xl:grid-cols-3 gap-4\">\n {integrations.map((integration) => {\n const presence = integrationPresence(integration)\n const PresenceIcon = PRESENCE_ICONS[integration.icon || presence.icon] || PRESENCE_ICONS[presence.icon] || PlugZap\n const stats = integration.taskStats || {}\n\n return (\n <Card key={integration.name} className=\"flex flex-col border-l-2\" style={{ borderLeftColor: integration.accentColor || undefined }}>\n <CardHeader>\n <div className=\"flex items-start justify-between gap-2\">\n <div className=\"min-w-0\">\n <CardTitle className=\"text-sm font-medium truncate\">{integration.displayName || integration.name}</CardTitle>\n {integration.description && <p className=\"mt-1 text-xs text-muted-foreground line-clamp-2\">{integration.description}</p>}\n </div>\n <div className=\"flex items-center gap-1.5 shrink-0\">\n <PresenceIcon className={`w-3.5 h-3.5 ${toneToColor(presence.tone)}`} />\n <span className={`text-xs ${toneToColor(presence.tone)}`}>{presence.label}</span>\n </div>\n </div>\n\n <div className=\"flex flex-wrap gap-1 mt-1\">\n {integration.configured && (\n <Badge variant=\"outline\" className=\"text-xs text-emerald-400 border-emerald-500/30\">\n configured\n </Badge>\n )}\n {integration.observed && (\n <Badge variant=\"outline\" className=\"text-xs text-blue-400 border-blue-500/30\">\n observed\n </Badge>\n )}\n {!integration.enabled && (\n <Badge variant=\"outline\" className=\"text-xs text-red-400 border-red-500/30\">\n disabled\n </Badge>\n )}\n {integration.type && (\n <Badge variant=\"secondary\" className=\"text-xs\">\n {integration.type}\n </Badge>\n )}\n {integration.tags?.map((tag) => (\n <Badge key={tag} variant=\"outline\" className=\"text-xs text-zinc-400\">\n #{tag}\n </Badge>\n ))}\n </div>\n </CardHeader>\n\n <CardContent className=\"flex-1 space-y-3\">\n {/* Mini stats */}\n <div className=\"grid grid-cols-4 gap-2 text-center\">\n <div className=\"space-y-0.5\">\n <p className=\"text-base font-semibold tabular-nums\">{stats.tasks ?? 0}</p>\n <p className=\"text-xs text-muted-foreground\">tasks</p>\n </div>\n <div className=\"space-y-0.5\">\n <p className=\"text-base font-semibold tabular-nums text-blue-400\">{stats.openTasks ?? 0}</p>\n <p className=\"text-xs text-muted-foreground\">open</p>\n </div>\n <div className=\"space-y-0.5\">\n <p className={`text-base font-semibold tabular-nums ${(stats.waitingTasks ?? 0) > 0 ? 'text-yellow-400' : ''}`}>\n {stats.waitingTasks ?? 0}\n </p>\n <p className=\"text-xs text-muted-foreground\">waiting</p>\n </div>\n <div className=\"space-y-0.5\">\n <p className={`text-base font-semibold tabular-nums ${(stats.failedTasks ?? 0) > 0 ? 'text-red-400' : ''}`}>\n {stats.failedTasks ?? 0}\n </p>\n <p className=\"text-xs text-muted-foreground\">failed</p>\n </div>\n </div>\n\n {/* Scopes / Targets / Channels */}\n {(integration.scopes?.length > 0 || integration.targets?.length > 0 || integration.channels?.length > 0) && (\n <div className=\"space-y-1.5\">\n {integration.scopes?.length > 0 && (\n <div className=\"flex flex-wrap gap-1\">\n {integration.scopes.map((s) => (\n <Badge key={s} variant=\"outline\" className=\"text-xs text-zinc-400\">\n {s}\n </Badge>\n ))}\n </div>\n )}\n {integration.targets?.length > 0 && (\n <div className=\"flex flex-wrap gap-1\">\n {integration.targets.map((t) => (\n <Badge key={t} variant=\"secondary\" className=\"text-xs\">\n {t}\n </Badge>\n ))}\n </div>\n )}\n {integration.channels?.length > 0 && (\n <div className=\"flex flex-wrap gap-1\">\n {integration.channels.map((c) => (\n <Badge key={c} className=\"text-xs bg-blue-500/10 text-blue-400 border-blue-500/20\">\n #{c}\n </Badge>\n ))}\n </div>\n )}\n </div>\n )}\n </CardContent>\n\n {(stats.tasks ?? 0) > 0 && (\n <div className=\"px-4 pb-4\">\n <Button\n variant=\"outline\"\n size=\"sm\"\n className=\"w-full gap-1.5\"\n onClick={() => showTasks(stats.source || integration.name)}\n >\n <ListChecks className=\"w-3.5 h-3.5\" />\n Show tasks\n </Button>\n </div>\n )}\n </Card>\n )\n })}\n </div>\n )}\n </div>\n )\n}\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"integrations-BEaqjfP4.js","names":[],"sources":["../../dashboard/src/components/views/integrations.tsx"],"sourcesContent":["import { useRelayStore } from '@/store'\nimport { Card, CardContent, CardHeader, CardTitle } from '@/components/ui/card'\nimport { Badge } from '@/components/ui/badge'\nimport { Button } from '@/components/ui/button'\nimport { integrationPresence, toneToColor } from '@/lib/display'\nimport { PlugZap, AlertCircle, Activity, Eye, CircleCheck, ListChecks, MessagesSquare, ArrowRight } from 'lucide-react'\n\nconst PRESENCE_ICONS: Record<string, typeof PlugZap> = {\n PlugZap, AlertCircle, Activity, Eye, CircleCheck,\n}\n\nexport function IntegrationsView() {\n const integrations = useRelayStore((s) => s.integrations)\n const channels = useRelayStore((s) => s.channels)\n const set = useRelayStore((s) => s.set)\n const switchView = useRelayStore((s) => s.switchView)\n\n const waitingCount = integrations.reduce((sum, i) => sum + (i.taskStats?.waitingTasks || 0), 0)\n const activeChannelTypes = new Set(channels.map((c) => c.type))\n const channelBackedCount = integrations.filter((i) => activeChannelTypes.has(i.name)).length\n\n function showTasks(source: string) {\n set({ taskSourceFilter: source })\n switchView('tasks')\n }\n\n return (\n <div className=\"space-y-6\">\n {/* Channel integrations cross-link */}\n {channelBackedCount > 0 && (\n <div className=\"flex items-center gap-3 px-3 py-2.5 rounded-lg border border-blue-500/20 bg-blue-500/5 text-sm\">\n <MessagesSquare className=\"w-4 h-4 text-blue-400 shrink-0\" />\n <span className=\"text-muted-foreground flex-1\">\n <span className=\"text-foreground font-medium\">{channelBackedCount}</span> integration{channelBackedCount !== 1 ? 's' : ''} have active channels — view them in Channels for live status and routing detail.\n </span>\n <Button\n variant=\"ghost\"\n size=\"sm\"\n className=\"h-7 text-xs gap-1 text-blue-400 hover:text-blue-300 shrink-0\"\n onClick={() => void switchView('channels')}\n >\n Channels\n <ArrowRight className=\"w-3 h-3\" />\n </Button>\n </div>\n )}\n\n {/* Header */}\n <div className=\"flex items-center justify-between\">\n <div className=\"flex items-center gap-3\">\n <h1 className=\"text-lg font-semibold\">Integrations</h1>\n <Badge variant=\"outline\" className=\"text-xs\">\n {integrations.length} total\n </Badge>\n {waitingCount > 0 && (\n <Badge className=\"bg-yellow-500/20 text-yellow-400 border-yellow-500/30 text-xs\">\n {waitingCount} waiting\n </Badge>\n )}\n </div>\n </div>\n\n {integrations.length === 0 ? (\n <div className=\"flex flex-col items-center justify-center py-16 text-center\">\n <PlugZap className=\"w-10 h-10 text-zinc-600 mb-3\" />\n <p className=\"text-muted-foreground text-sm\">No integrations configured</p>\n </div>\n ) : (\n <div className=\"grid grid-cols-1 md:grid-cols-2 xl:grid-cols-3 gap-4\">\n {integrations.map((integration) => {\n const presence = integrationPresence(integration)\n const PresenceIcon = PRESENCE_ICONS[integration.icon || presence.icon] || PRESENCE_ICONS[presence.icon] || PlugZap\n const stats = integration.taskStats || {}\n\n return (\n <Card key={integration.name} className=\"flex flex-col border-l-2\" style={{ borderLeftColor: integration.accentColor || undefined }}>\n <CardHeader>\n <div className=\"flex items-start justify-between gap-2\">\n <div className=\"min-w-0\">\n <CardTitle className=\"text-sm font-medium truncate\">{integration.displayName || integration.name}</CardTitle>\n {integration.description && <p className=\"mt-1 text-xs text-muted-foreground line-clamp-2\">{integration.description}</p>}\n </div>\n <div className=\"flex items-center gap-1.5 shrink-0\">\n <PresenceIcon className={`w-3.5 h-3.5 ${toneToColor(presence.tone)}`} />\n <span className={`text-xs ${toneToColor(presence.tone)}`}>{presence.label}</span>\n </div>\n </div>\n\n <div className=\"flex flex-wrap gap-1 mt-1\">\n {integration.configured && (\n <Badge variant=\"outline\" className=\"text-xs text-emerald-400 border-emerald-500/30\">\n configured\n </Badge>\n )}\n {integration.observed && (\n <Badge variant=\"outline\" className=\"text-xs text-blue-400 border-blue-500/30\">\n observed\n </Badge>\n )}\n {!integration.enabled && (\n <Badge variant=\"outline\" className=\"text-xs text-red-400 border-red-500/30\">\n disabled\n </Badge>\n )}\n {integration.type && (\n <Badge variant=\"secondary\" className=\"text-xs\">\n {integration.type}\n </Badge>\n )}\n {integration.tags?.map((tag) => (\n <Badge key={tag} variant=\"outline\" className=\"text-xs text-zinc-400\">\n #{tag}\n </Badge>\n ))}\n </div>\n </CardHeader>\n\n <CardContent className=\"flex-1 space-y-3\">\n {/* Mini stats */}\n <div className=\"grid grid-cols-4 gap-2 text-center\">\n <div className=\"space-y-0.5\">\n <p className=\"text-base font-semibold tabular-nums\">{stats.tasks ?? 0}</p>\n <p className=\"text-xs text-muted-foreground\">tasks</p>\n </div>\n <div className=\"space-y-0.5\">\n <p className=\"text-base font-semibold tabular-nums text-blue-400\">{stats.openTasks ?? 0}</p>\n <p className=\"text-xs text-muted-foreground\">open</p>\n </div>\n <div className=\"space-y-0.5\">\n <p className={`text-base font-semibold tabular-nums ${(stats.waitingTasks ?? 0) > 0 ? 'text-yellow-400' : ''}`}>\n {stats.waitingTasks ?? 0}\n </p>\n <p className=\"text-xs text-muted-foreground\">waiting</p>\n </div>\n <div className=\"space-y-0.5\">\n <p className={`text-base font-semibold tabular-nums ${(stats.failedTasks ?? 0) > 0 ? 'text-red-400' : ''}`}>\n {stats.failedTasks ?? 0}\n </p>\n <p className=\"text-xs text-muted-foreground\">failed</p>\n </div>\n </div>\n\n {/* Scopes / Targets / Channels */}\n {(integration.scopes?.length > 0 || integration.targets?.length > 0 || integration.channels?.length > 0) && (\n <div className=\"space-y-1.5\">\n {integration.scopes?.length > 0 && (\n <div className=\"flex flex-wrap gap-1\">\n {integration.scopes.map((s) => (\n <Badge key={s} variant=\"outline\" className=\"text-xs text-zinc-400\">\n {s}\n </Badge>\n ))}\n </div>\n )}\n {integration.targets?.length > 0 && (\n <div className=\"flex flex-wrap gap-1\">\n {integration.targets.map((t) => (\n <Badge key={t} variant=\"secondary\" className=\"text-xs\">\n {t}\n </Badge>\n ))}\n </div>\n )}\n {integration.channels?.length > 0 && (\n <div className=\"flex flex-wrap gap-1\">\n {integration.channels.map((c) => (\n <Badge key={c} className=\"text-xs bg-blue-500/10 text-blue-400 border-blue-500/20\">\n #{c}\n </Badge>\n ))}\n </div>\n )}\n </div>\n )}\n </CardContent>\n\n {(stats.tasks ?? 0) > 0 && (\n <div className=\"px-4 pb-4\">\n <Button\n variant=\"outline\"\n size=\"sm\"\n className=\"w-full gap-1.5\"\n onClick={() => showTasks(stats.source || integration.name)}\n >\n <ListChecks className=\"w-3.5 h-3.5\" />\n Show tasks\n </Button>\n </div>\n )}\n </Card>\n )\n })}\n </div>\n )}\n </div>\n )\n}\n"],"mappings":"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"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import{n as e,r as t,t as n}from"./chunk-CilyBKbf.js";import{
|
|
1
|
+
import{n as e,r as t,t as n}from"./chunk-CilyBKbf.js";import{_r as r,ir as i}from"./lucide-react-DD_zIava.js";import{a,c as o,i as s,n as c,o as l,r as u,s as d,t as f}from"./lib-Cc7Il-6i.js";var p=/^[$_\p{ID_Start}][$_\u{200C}\u{200D}\p{ID_Continue}]*$/u,m=/^[$_\p{ID_Start}][-$_\u{200C}\u{200D}\p{ID_Continue}]*$/u,h={};function g(e,t){return((t||h).jsx?m:p).test(e)}var _=n(((e,t)=>{var n=/\/\*[^*]*\*+([^/*][^*]*\*+)*\//g,r=/\n/g,i=/^\s*/,a=/^(\*?[-#/*\\\w]+(\[[0-9a-z_-]+\])?)\s*/,o=/^:\s*/,s=/^((?:'(?:\\'|.)*?'|"(?:\\"|.)*?"|\([^)]*?\)|[^};])+)/,c=/^[;\s]*/,l=/^\s+|\s+$/g,u=`
|
|
2
2
|
`,d=`/`,f=`*`,p=``,m=`comment`,h=`declaration`;function g(e,t){if(typeof e!=`string`)throw TypeError(`First argument must be a string`);if(!e)return[];t||={};var l=1,g=1;function v(e){var t=e.match(r);t&&(l+=t.length);var n=e.lastIndexOf(u);g=~n?e.length-n:g+e.length}function y(){var e={line:l,column:g};return function(t){return t.position=new b(e),C(),t}}function b(e){this.start=e,this.end={line:l,column:g},this.source=t.source}b.prototype.content=e;function x(n){var r=Error(t.source+`:`+l+`:`+g+`: `+n);if(r.reason=n,r.filename=t.source,r.line=l,r.column=g,r.source=e,!t.silent)throw r}function S(t){var n=t.exec(e);if(n){var r=n[0];return v(r),e=e.slice(r.length),n}}function C(){S(i)}function w(e){var t;for(e||=[];t=T();)t!==!1&&e.push(t);return e}function T(){var t=y();if(!(d!=e.charAt(0)||f!=e.charAt(1))){for(var n=2;p!=e.charAt(n)&&(f!=e.charAt(n)||d!=e.charAt(n+1));)++n;if(n+=2,p===e.charAt(n-1))return x(`End of comment missing`);var r=e.slice(2,n-2);return g+=2,v(r),e=e.slice(n),g+=2,t({type:m,comment:r})}}function E(){var e=y(),t=S(a);if(t){if(T(),!S(o))return x(`property missing ':'`);var r=S(s),i=e({type:h,property:_(t[0].replace(n,p)),value:r?_(r[0].replace(n,p)):p});return S(c),i}}function D(){var e=[];w(e);for(var t;t=E();)t!==!1&&(e.push(t),w(e));return e}return C(),D()}function _(e){return e?e.replace(l,p):p}t.exports=g})),v=n((e=>{var t=e&&e.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(e,`__esModule`,{value:!0}),e.default=r;var n=t(_());function r(e,t){let r=null;if(!e||typeof e!=`string`)return r;let i=(0,n.default)(e),a=typeof t==`function`;return i.forEach(e=>{if(e.type!==`declaration`)return;let{property:n,value:i}=e;a?t(n,i,e):i&&(r||={},r[n]=i)}),r}})),y=n((e=>{Object.defineProperty(e,`__esModule`,{value:!0}),e.camelCase=void 0;var t=/^--[a-zA-Z0-9_-]+$/,n=/-([a-z])/g,r=/^[^-]+$/,i=/^-(webkit|moz|ms|o|khtml)-/,a=/^-(ms)-/,o=function(e){return!e||r.test(e)||t.test(e)},s=function(e,t){return t.toUpperCase()},c=function(e,t){return`${t}-`};e.camelCase=function(e,t){return t===void 0&&(t={}),o(e)?e:(e=e.toLowerCase(),e=t.reactCompat?e.replace(a,c):e.replace(i,c),e.replace(n,s))}})),b=n(((e,t)=>{var n=(e&&e.__importDefault||function(e){return e&&e.__esModule?e:{default:e}})(v()),r=y();function i(e,t){var i={};return!e||typeof e!=`string`||(0,n.default)(e,function(e,n){e&&n&&(i[(0,r.camelCase)(e,t)]=n)}),i}i.default=i,t.exports=i})),x=C(`end`),S=C(`start`);function C(e){return t;function t(t){let n=t&&t.position&&t.position[e]||{};if(typeof n.line==`number`&&n.line>0&&typeof n.column==`number`&&n.column>0)return{line:n.line,column:n.column,offset:typeof n.offset==`number`&&n.offset>-1?n.offset:void 0}}}function w(e){let t=S(e),n=x(e);if(t&&n)return{start:t,end:n}}function T(e){return!e||typeof e!=`object`?``:`position`in e||`type`in e?D(e.position):`start`in e||`end`in e?D(e):`line`in e||`column`in e?E(e):``}function E(e){return O(e&&e.line)+`:`+O(e&&e.column)}function D(e){return E(e&&e.start)+`-`+E(e&&e.end)}function O(e){return e&&typeof e==`number`?e:1}var k=class extends Error{constructor(e,t,n){super(),typeof t==`string`&&(n=t,t=void 0);let r=``,i={},a=!1;if(t&&(i=`line`in t&&`column`in t||`start`in t&&`end`in t?{place:t}:`type`in t?{ancestors:[t],place:t.position}:{...t}),typeof e==`string`?r=e:!i.cause&&e&&(a=!0,r=e.message,i.cause=e),!i.ruleId&&!i.source&&typeof n==`string`){let e=n.indexOf(`:`);e===-1?i.ruleId=n:(i.source=n.slice(0,e),i.ruleId=n.slice(e+1))}if(!i.place&&i.ancestors&&i.ancestors){let e=i.ancestors[i.ancestors.length-1];e&&(i.place=e.position)}let o=i.place&&`start`in i.place?i.place.start:i.place;this.ancestors=i.ancestors||void 0,this.cause=i.cause||void 0,this.column=o?o.column:void 0,this.fatal=void 0,this.file=``,this.message=r,this.line=o?o.line:void 0,this.name=T(i.place)||`1:1`,this.place=i.place||void 0,this.reason=this.message,this.ruleId=i.ruleId||void 0,this.source=i.source||void 0,this.stack=a&&i.cause&&typeof i.cause.stack==`string`?i.cause.stack:``,this.actual=void 0,this.expected=void 0,this.note=void 0,this.url=void 0}};k.prototype.file=``,k.prototype.name=``,k.prototype.reason=``,k.prototype.message=``,k.prototype.stack=``,k.prototype.column=void 0,k.prototype.line=void 0,k.prototype.ancestors=void 0,k.prototype.cause=void 0,k.prototype.fatal=void 0,k.prototype.place=void 0,k.prototype.ruleId=void 0,k.prototype.source=void 0;var ee=t(b(),1),te={}.hasOwnProperty,A=new Map,j=/[A-Z]/g,ne=new Set([`table`,`tbody`,`thead`,`tfoot`,`tr`]),re=new Set([`td`,`th`]),M=`https://github.com/syntax-tree/hast-util-to-jsx-runtime`;function N(e,t){if(!t||t.Fragment===void 0)throw TypeError("Expected `Fragment` in options");let n=t.filePath||void 0,r;if(t.development){if(typeof t.jsxDEV!=`function`)throw TypeError("Expected `jsxDEV` in options when `development: true`");r=me(n,t.jsxDEV)}else{if(typeof t.jsx!=`function`)throw TypeError("Expected `jsx` in production options");if(typeof t.jsxs!=`function`)throw TypeError("Expected `jsxs` in production options");r=pe(n,t.jsx,t.jsxs)}let i={Fragment:t.Fragment,ancestors:[],components:t.components||{},create:r,elementAttributeNameCase:t.elementAttributeNameCase||`react`,evaluater:t.createEvaluater?t.createEvaluater():void 0,filePath:n,ignoreInvalidStyle:t.ignoreInvalidStyle||!1,passKeys:t.passKeys!==!1,passNode:t.passNode||!1,schema:t.space===`svg`?l:a,stylePropertyNameCase:t.stylePropertyNameCase||`dom`,tableCellAlignToStyle:t.tableCellAlignToStyle!==!1},o=ie(i,e,void 0);return o&&typeof o!=`string`?o:i.create(e,i.Fragment,{children:o||void 0},void 0)}function ie(e,t,n){if(t.type===`element`)return ae(e,t,n);if(t.type===`mdxFlowExpression`||t.type===`mdxTextExpression`)return oe(e,t);if(t.type===`mdxJsxFlowElement`||t.type===`mdxJsxTextElement`)return ce(e,t,n);if(t.type===`mdxjsEsm`)return se(e,t);if(t.type===`root`)return le(e,t,n);if(t.type===`text`)return ue(e,t)}function ae(e,t,n){let r=e.schema,i=r;t.tagName.toLowerCase()===`svg`&&r.space===`html`&&(i=l,e.schema=i),e.ancestors.push(t);let a=be(e,t.tagName,!1),o=he(e,t),s=_e(e,t);return ne.has(t.tagName)&&(s=s.filter(function(e){return typeof e==`string`?!f(e):!0})),de(e,o,a,t),fe(o,s),e.ancestors.pop(),e.schema=r,e.create(t,a,o,n)}function oe(e,t){if(t.data&&t.data.estree&&e.evaluater){let n=t.data.estree.body[0];return n.type,e.evaluater.evaluateExpression(n.expression)}xe(e,t.position)}function se(e,t){if(t.data&&t.data.estree&&e.evaluater)return e.evaluater.evaluateProgram(t.data.estree);xe(e,t.position)}function ce(e,t,n){let r=e.schema,i=r;t.name===`svg`&&r.space===`html`&&(i=l,e.schema=i),e.ancestors.push(t);let a=t.name===null?e.Fragment:be(e,t.name,!0),o=ge(e,t),s=_e(e,t);return de(e,o,a,t),fe(o,s),e.ancestors.pop(),e.schema=r,e.create(t,a,o,n)}function le(e,t,n){let r={};return fe(r,_e(e,t)),e.create(t,e.Fragment,r,n)}function ue(e,t){return t.value}function de(e,t,n,r){typeof n!=`string`&&n!==e.Fragment&&e.passNode&&(t.node=r)}function fe(e,t){if(t.length>0){let n=t.length>1?t:t[0];n&&(e.children=n)}}function pe(e,t,n){return r;function r(e,r,i,a){let o=Array.isArray(i.children)?n:t;return a?o(r,i,a):o(r,i)}}function me(e,t){return n;function n(n,r,i,a){let o=Array.isArray(i.children),s=S(n);return t(r,i,a,o,{columnNumber:s?s.column-1:void 0,fileName:e,lineNumber:s?s.line:void 0},void 0)}}function he(e,t){let n={},r,i;for(i in t.properties)if(i!==`children`&&te.call(t.properties,i)){let a=ve(e,i,t.properties[i]);if(a){let[i,o]=a;e.tableCellAlignToStyle&&i===`align`&&typeof o==`string`&&re.has(t.tagName)?r=o:n[i]=o}}if(r){let t=n.style||={};t[e.stylePropertyNameCase===`css`?`text-align`:`textAlign`]=r}return n}function ge(e,t){let n={};for(let r of t.attributes)if(r.type===`mdxJsxExpressionAttribute`)if(r.data&&r.data.estree&&e.evaluater){let t=r.data.estree.body[0];t.type;let i=t.expression;i.type;let a=i.properties[0];a.type,Object.assign(n,e.evaluater.evaluateExpression(a.argument))}else xe(e,t.position);else{let i=r.name,a;if(r.value&&typeof r.value==`object`)if(r.value.data&&r.value.data.estree&&e.evaluater){let t=r.value.data.estree.body[0];t.type,a=e.evaluater.evaluateExpression(t.expression)}else xe(e,t.position);else a=r.value===null?!0:r.value;n[i]=a}return n}function _e(e,t){let n=[],r=-1,i=e.passKeys?new Map:A;for(;++r<t.children.length;){let a=t.children[r],o;if(e.passKeys){let e=a.type===`element`?a.tagName:a.type===`mdxJsxFlowElement`||a.type===`mdxJsxTextElement`?a.name:void 0;if(e){let t=i.get(e)||0;o=e+`-`+t,i.set(e,t+1)}}let s=ie(e,a,o);s!==void 0&&n.push(s)}return n}function ve(e,t,n){let r=d(e.schema,t);if(!(n==null||typeof n==`number`&&Number.isNaN(n))){if(Array.isArray(n)&&(n=r.commaSeparated?u(n):c(n)),r.property===`style`){let t=typeof n==`object`?n:ye(e,String(n));return e.stylePropertyNameCase===`css`&&(t=Se(t)),[`style`,t]}return[e.elementAttributeNameCase===`react`&&r.space?o[r.property]||r.property:r.attribute,n]}}function ye(e,t){try{return(0,ee.default)(t,{reactCompat:!0})}catch(t){if(e.ignoreInvalidStyle)return{};let n=t,r=new k("Cannot parse `style` attribute",{ancestors:e.ancestors,cause:n,ruleId:`style`,source:`hast-util-to-jsx-runtime`});throw r.file=e.filePath||void 0,r.url=M+`#cannot-parse-style-attribute`,r}}function be(e,t,n){let r;if(!n)r={type:`Literal`,value:t};else if(t.includes(`.`)){let e=t.split(`.`),n=-1,i;for(;++n<e.length;){let t=g(e[n])?{type:`Identifier`,name:e[n]}:{type:`Literal`,value:e[n]};i=i?{type:`MemberExpression`,object:i,property:t,computed:!!(n&&t.type===`Literal`),optional:!1}:t}r=i}else r=g(t)&&!/^[a-z]/.test(t)?{type:`Identifier`,name:t}:{type:`Literal`,value:t};if(r.type===`Literal`){let t=r.value;return te.call(e.components,t)?e.components[t]:t}if(e.evaluater)return e.evaluater.evaluateExpression(r);xe(e)}function xe(e,t){let n=new k("Cannot handle MDX estrees without `createEvaluater`",{ancestors:e.ancestors,place:t,ruleId:`mdx-estree`,source:`hast-util-to-jsx-runtime`});throw n.file=e.filePath||void 0,n.url=M+`#cannot-handle-mdx-estrees-without-createevaluater`,n}function Se(e){let t={},n;for(n in e)te.call(e,n)&&(t[Ce(n)]=e[n]);return t}function Ce(e){let t=e.replace(j,we);return t.slice(0,3)===`ms-`&&(t=`-`+t),t}function we(e){return`-`+e.toLowerCase()}var Te={action:[`form`],cite:[`blockquote`,`del`,`ins`,`q`],data:[`object`],formAction:[`button`,`input`],href:[`a`,`area`,`base`,`link`],icon:[`menuitem`],itemId:null,manifest:[`html`],ping:[`a`,`area`],poster:[`video`],src:[`audio`,`embed`,`iframe`,`img`,`input`,`script`,`source`,`track`,`video`]},Ee={};function De(e,t){let n=t||Ee;return Oe(e,typeof n.includeImageAlt==`boolean`?n.includeImageAlt:!0,typeof n.includeHtml==`boolean`?n.includeHtml:!0)}function Oe(e,t,n){if(Ae(e)){if(`value`in e)return e.type===`html`&&!n?``:e.value;if(t&&`alt`in e&&e.alt)return e.alt;if(`children`in e)return ke(e.children,t,n)}return Array.isArray(e)?ke(e,t,n):``}function ke(e,t,n){let r=[],i=-1;for(;++i<e.length;)r[i]=Oe(e[i],t,n);return r.join(``)}function Ae(e){return!!(e&&typeof e==`object`)}var je=document.createElement(`i`);function Me(e){let t=`&`+e+`;`;je.innerHTML=t;let n=je.textContent;return n.charCodeAt(n.length-1)===59&&e!==`semi`||n===t?!1:n}function P(e,t,n,r){let i=e.length,a=0,o;if(t=t<0?-t>i?0:i+t:t>i?i:t,n=n>0?n:0,r.length<1e4)o=Array.from(r),o.unshift(t,n),e.splice(...o);else for(n&&e.splice(t,n);a<r.length;)o=r.slice(a,a+1e4),o.unshift(t,0),e.splice(...o),a+=1e4,t+=1e4}function F(e,t){return e.length>0?(P(e,e.length,0,t),e):t}var Ne={}.hasOwnProperty;function Pe(e){let t={},n=-1;for(;++n<e.length;)Fe(t,e[n]);return t}function Fe(e,t){let n;for(n in t){let r=(Ne.call(e,n)?e[n]:void 0)||(e[n]={}),i=t[n],a;if(i)for(a in i){Ne.call(r,a)||(r[a]=[]);let e=i[a];Ie(r[a],Array.isArray(e)?e:e?[e]:[])}}}function Ie(e,t){let n=-1,r=[];for(;++n<t.length;)(t[n].add===`after`?e:r).push(t[n]);P(e,0,0,r)}function Le(e,t){let n=Number.parseInt(e,t);return n<9||n===11||n>13&&n<32||n>126&&n<160||n>55295&&n<57344||n>64975&&n<65008||(n&65535)==65535||(n&65535)==65534||n>1114111?`�`:String.fromCodePoint(n)}function I(e){return e.replace(/[\t\n\r ]+/g,` `).replace(/^ | $/g,``).toLowerCase().toUpperCase()}var L=U(/[A-Za-z]/),R=U(/[\dA-Za-z]/),Re=U(/[#-'*+\--9=?A-Z^-~]/);function ze(e){return e!==null&&(e<32||e===127)}var Be=U(/\d/),Ve=U(/[\dA-Fa-f]/),He=U(/[!-/:-@[-`{-~]/);function z(e){return e!==null&&e<-2}function B(e){return e!==null&&(e<0||e===32)}function V(e){return e===-2||e===-1||e===32}var Ue=U(/\p{P}|\p{S}/u),H=U(/\s/);function U(e){return t;function t(t){return t!==null&&t>-1&&e.test(String.fromCharCode(t))}}function We(e){let t=[],n=-1,r=0,i=0;for(;++n<e.length;){let a=e.charCodeAt(n),o=``;if(a===37&&R(e.charCodeAt(n+1))&&R(e.charCodeAt(n+2)))i=2;else if(a<128)/[!#$&-;=?-Z_a-z~]/.test(String.fromCharCode(a))||(o=String.fromCharCode(a));else if(a>55295&&a<57344){let t=e.charCodeAt(n+1);a<56320&&t>56319&&t<57344?(o=String.fromCharCode(a,t),i=1):o=`�`}else o=String.fromCharCode(a);o&&=(t.push(e.slice(r,n),encodeURIComponent(o)),r=n+i+1,``),i&&=(n+=i,0)}return t.join(``)+e.slice(r)}function W(e,t,n,r){let i=r?r-1:1/0,a=0;return o;function o(r){return V(r)?(e.enter(n),s(r)):t(r)}function s(r){return V(r)&&a++<i?(e.consume(r),s):(e.exit(n),t(r))}}var Ge={tokenize:Ke};function Ke(e){let t=e.attempt(this.parser.constructs.contentInitial,r,i),n;return t;function r(n){if(n===null){e.consume(n);return}return e.enter(`lineEnding`),e.consume(n),e.exit(`lineEnding`),W(e,t,`linePrefix`)}function i(t){return e.enter(`paragraph`),a(t)}function a(t){let r=e.enter(`chunkText`,{contentType:`text`,previous:n});return n&&(n.next=r),n=r,o(t)}function o(t){if(t===null){e.exit(`chunkText`),e.exit(`paragraph`),e.consume(t);return}return z(t)?(e.consume(t),e.exit(`chunkText`),a):(e.consume(t),o)}}var qe={tokenize:Ye},Je={tokenize:Xe};function Ye(e){let t=this,n=[],r=0,i,a,o;return s;function s(i){if(r<n.length){let a=n[r];return t.containerState=a[1],e.attempt(a[0].continuation,c,l)(i)}return l(i)}function c(e){if(r++,t.containerState._closeFlow){t.containerState._closeFlow=void 0,i&&v();let n=t.events.length,a=n,o;for(;a--;)if(t.events[a][0]===`exit`&&t.events[a][1].type===`chunkFlow`){o=t.events[a][1].end;break}_(r);let s=n;for(;s<t.events.length;)t.events[s][1].end={...o},s++;return P(t.events,a+1,0,t.events.slice(n)),t.events.length=s,l(e)}return s(e)}function l(a){if(r===n.length){if(!i)return f(a);if(i.currentConstruct&&i.currentConstruct.concrete)return m(a);t.interrupt=!!(i.currentConstruct&&!i._gfmTableDynamicInterruptHack)}return t.containerState={},e.check(Je,u,d)(a)}function u(e){return i&&v(),_(r),f(e)}function d(e){return t.parser.lazy[t.now().line]=r!==n.length,o=t.now().offset,m(e)}function f(n){return t.containerState={},e.attempt(Je,p,m)(n)}function p(e){return r++,n.push([t.currentConstruct,t.containerState]),f(e)}function m(n){if(n===null){i&&v(),_(0),e.consume(n);return}return i||=t.parser.flow(t.now()),e.enter(`chunkFlow`,{_tokenizer:i,contentType:`flow`,previous:a}),h(n)}function h(n){if(n===null){g(e.exit(`chunkFlow`),!0),_(0),e.consume(n);return}return z(n)?(e.consume(n),g(e.exit(`chunkFlow`)),r=0,t.interrupt=void 0,s):(e.consume(n),h)}function g(e,n){let s=t.sliceStream(e);if(n&&s.push(null),e.previous=a,a&&(a.next=e),a=e,i.defineSkip(e.start),i.write(s),t.parser.lazy[e.start.line]){let e=i.events.length;for(;e--;)if(i.events[e][1].start.offset<o&&(!i.events[e][1].end||i.events[e][1].end.offset>o))return;let n=t.events.length,a=n,s,c;for(;a--;)if(t.events[a][0]===`exit`&&t.events[a][1].type===`chunkFlow`){if(s){c=t.events[a][1].end;break}s=!0}for(_(r),e=n;e<t.events.length;)t.events[e][1].end={...c},e++;P(t.events,a+1,0,t.events.slice(n)),t.events.length=e}}function _(r){let i=n.length;for(;i-- >r;){let r=n[i];t.containerState=r[1],r[0].exit.call(t,e)}n.length=r}function v(){i.write([null]),a=void 0,i=void 0,t.containerState._closeFlow=void 0}}function Xe(e,t,n){return W(e,e.attempt(this.parser.constructs.document,t,n),`linePrefix`,this.parser.constructs.disable.null.includes(`codeIndented`)?void 0:4)}function Ze(e){if(e===null||B(e)||H(e))return 1;if(Ue(e))return 2}function Qe(e,t,n){let r=[],i=-1;for(;++i<e.length;){let a=e[i].resolveAll;a&&!r.includes(a)&&(t=a(t,n),r.push(a))}return t}var $e={name:`attention`,resolveAll:et,tokenize:tt};function et(e,t){let n=-1,r,i,a,o,s,c,l,u;for(;++n<e.length;)if(e[n][0]===`enter`&&e[n][1].type===`attentionSequence`&&e[n][1]._close){for(r=n;r--;)if(e[r][0]===`exit`&&e[r][1].type===`attentionSequence`&&e[r][1]._open&&t.sliceSerialize(e[r][1]).charCodeAt(0)===t.sliceSerialize(e[n][1]).charCodeAt(0)){if((e[r][1]._close||e[n][1]._open)&&(e[n][1].end.offset-e[n][1].start.offset)%3&&!((e[r][1].end.offset-e[r][1].start.offset+e[n][1].end.offset-e[n][1].start.offset)%3))continue;c=e[r][1].end.offset-e[r][1].start.offset>1&&e[n][1].end.offset-e[n][1].start.offset>1?2:1;let d={...e[r][1].end},f={...e[n][1].start};nt(d,-c),nt(f,c),o={type:c>1?`strongSequence`:`emphasisSequence`,start:d,end:{...e[r][1].end}},s={type:c>1?`strongSequence`:`emphasisSequence`,start:{...e[n][1].start},end:f},a={type:c>1?`strongText`:`emphasisText`,start:{...e[r][1].end},end:{...e[n][1].start}},i={type:c>1?`strong`:`emphasis`,start:{...o.start},end:{...s.end}},e[r][1].end={...o.start},e[n][1].start={...s.end},l=[],e[r][1].end.offset-e[r][1].start.offset&&(l=F(l,[[`enter`,e[r][1],t],[`exit`,e[r][1],t]])),l=F(l,[[`enter`,i,t],[`enter`,o,t],[`exit`,o,t],[`enter`,a,t]]),l=F(l,Qe(t.parser.constructs.insideSpan.null,e.slice(r+1,n),t)),l=F(l,[[`exit`,a,t],[`enter`,s,t],[`exit`,s,t],[`exit`,i,t]]),e[n][1].end.offset-e[n][1].start.offset?(u=2,l=F(l,[[`enter`,e[n][1],t],[`exit`,e[n][1],t]])):u=0,P(e,r-1,n-r+3,l),n=r+l.length-u-2;break}}for(n=-1;++n<e.length;)e[n][1].type===`attentionSequence`&&(e[n][1].type=`data`);return e}function tt(e,t){let n=this.parser.constructs.attentionMarkers.null,r=this.previous,i=Ze(r),a;return o;function o(t){return a=t,e.enter(`attentionSequence`),s(t)}function s(o){if(o===a)return e.consume(o),s;let c=e.exit(`attentionSequence`),l=Ze(o),u=!l||l===2&&i||n.includes(o),d=!i||i===2&&l||n.includes(r);return c._open=!!(a===42?u:u&&(i||!d)),c._close=!!(a===42?d:d&&(l||!u)),t(o)}}function nt(e,t){e.column+=t,e.offset+=t,e._bufferIndex+=t}var rt={name:`autolink`,tokenize:it};function it(e,t,n){let r=0;return i;function i(t){return e.enter(`autolink`),e.enter(`autolinkMarker`),e.consume(t),e.exit(`autolinkMarker`),e.enter(`autolinkProtocol`),a}function a(t){return L(t)?(e.consume(t),o):t===64?n(t):l(t)}function o(e){return e===43||e===45||e===46||R(e)?(r=1,s(e)):l(e)}function s(t){return t===58?(e.consume(t),r=0,c):(t===43||t===45||t===46||R(t))&&r++<32?(e.consume(t),s):(r=0,l(t))}function c(r){return r===62?(e.exit(`autolinkProtocol`),e.enter(`autolinkMarker`),e.consume(r),e.exit(`autolinkMarker`),e.exit(`autolink`),t):r===null||r===32||r===60||ze(r)?n(r):(e.consume(r),c)}function l(t){return t===64?(e.consume(t),u):Re(t)?(e.consume(t),l):n(t)}function u(e){return R(e)?d(e):n(e)}function d(n){return n===46?(e.consume(n),r=0,u):n===62?(e.exit(`autolinkProtocol`).type=`autolinkEmail`,e.enter(`autolinkMarker`),e.consume(n),e.exit(`autolinkMarker`),e.exit(`autolink`),t):f(n)}function f(t){if((t===45||R(t))&&r++<63){let n=t===45?f:d;return e.consume(t),n}return n(t)}}var at={partial:!0,tokenize:ot};function ot(e,t,n){return r;function r(t){return V(t)?W(e,i,`linePrefix`)(t):i(t)}function i(e){return e===null||z(e)?t(e):n(e)}}var st={continuation:{tokenize:lt},exit:ut,name:`blockQuote`,tokenize:ct};function ct(e,t,n){let r=this;return i;function i(t){if(t===62){let n=r.containerState;return n.open||=(e.enter(`blockQuote`,{_container:!0}),!0),e.enter(`blockQuotePrefix`),e.enter(`blockQuoteMarker`),e.consume(t),e.exit(`blockQuoteMarker`),a}return n(t)}function a(n){return V(n)?(e.enter(`blockQuotePrefixWhitespace`),e.consume(n),e.exit(`blockQuotePrefixWhitespace`),e.exit(`blockQuotePrefix`),t):(e.exit(`blockQuotePrefix`),t(n))}}function lt(e,t,n){let r=this;return i;function i(t){return V(t)?W(e,a,`linePrefix`,r.parser.constructs.disable.null.includes(`codeIndented`)?void 0:4)(t):a(t)}function a(r){return e.attempt(st,t,n)(r)}}function ut(e){e.exit(`blockQuote`)}var dt={name:`characterEscape`,tokenize:ft};function ft(e,t,n){return r;function r(t){return e.enter(`characterEscape`),e.enter(`escapeMarker`),e.consume(t),e.exit(`escapeMarker`),i}function i(r){return He(r)?(e.enter(`characterEscapeValue`),e.consume(r),e.exit(`characterEscapeValue`),e.exit(`characterEscape`),t):n(r)}}var pt={name:`characterReference`,tokenize:mt};function mt(e,t,n){let r=this,i=0,a,o;return s;function s(t){return e.enter(`characterReference`),e.enter(`characterReferenceMarker`),e.consume(t),e.exit(`characterReferenceMarker`),c}function c(t){return t===35?(e.enter(`characterReferenceMarkerNumeric`),e.consume(t),e.exit(`characterReferenceMarkerNumeric`),l):(e.enter(`characterReferenceValue`),a=31,o=R,u(t))}function l(t){return t===88||t===120?(e.enter(`characterReferenceMarkerHexadecimal`),e.consume(t),e.exit(`characterReferenceMarkerHexadecimal`),e.enter(`characterReferenceValue`),a=6,o=Ve,u):(e.enter(`characterReferenceValue`),a=7,o=Be,u(t))}function u(s){if(s===59&&i){let i=e.exit(`characterReferenceValue`);return o===R&&!Me(r.sliceSerialize(i))?n(s):(e.enter(`characterReferenceMarker`),e.consume(s),e.exit(`characterReferenceMarker`),e.exit(`characterReference`),t)}return o(s)&&i++<a?(e.consume(s),u):n(s)}}var ht={partial:!0,tokenize:vt},gt={concrete:!0,name:`codeFenced`,tokenize:_t};function _t(e,t,n){let r=this,i={partial:!0,tokenize:x},a=0,o=0,s;return c;function c(e){return l(e)}function l(t){let n=r.events[r.events.length-1];return a=n&&n[1].type===`linePrefix`?n[2].sliceSerialize(n[1],!0).length:0,s=t,e.enter(`codeFenced`),e.enter(`codeFencedFence`),e.enter(`codeFencedFenceSequence`),u(t)}function u(t){return t===s?(o++,e.consume(t),u):o<3?n(t):(e.exit(`codeFencedFenceSequence`),V(t)?W(e,d,`whitespace`)(t):d(t))}function d(n){return n===null||z(n)?(e.exit(`codeFencedFence`),r.interrupt?t(n):e.check(ht,h,b)(n)):(e.enter(`codeFencedFenceInfo`),e.enter(`chunkString`,{contentType:`string`}),f(n))}function f(t){return t===null||z(t)?(e.exit(`chunkString`),e.exit(`codeFencedFenceInfo`),d(t)):V(t)?(e.exit(`chunkString`),e.exit(`codeFencedFenceInfo`),W(e,p,`whitespace`)(t)):t===96&&t===s?n(t):(e.consume(t),f)}function p(t){return t===null||z(t)?d(t):(e.enter(`codeFencedFenceMeta`),e.enter(`chunkString`,{contentType:`string`}),m(t))}function m(t){return t===null||z(t)?(e.exit(`chunkString`),e.exit(`codeFencedFenceMeta`),d(t)):t===96&&t===s?n(t):(e.consume(t),m)}function h(t){return e.attempt(i,b,g)(t)}function g(t){return e.enter(`lineEnding`),e.consume(t),e.exit(`lineEnding`),_}function _(t){return a>0&&V(t)?W(e,v,`linePrefix`,a+1)(t):v(t)}function v(t){return t===null||z(t)?e.check(ht,h,b)(t):(e.enter(`codeFlowValue`),y(t))}function y(t){return t===null||z(t)?(e.exit(`codeFlowValue`),v(t)):(e.consume(t),y)}function b(n){return e.exit(`codeFenced`),t(n)}function x(e,t,n){let i=0;return a;function a(t){return e.enter(`lineEnding`),e.consume(t),e.exit(`lineEnding`),c}function c(t){return e.enter(`codeFencedFence`),V(t)?W(e,l,`linePrefix`,r.parser.constructs.disable.null.includes(`codeIndented`)?void 0:4)(t):l(t)}function l(t){return t===s?(e.enter(`codeFencedFenceSequence`),u(t)):n(t)}function u(t){return t===s?(i++,e.consume(t),u):i>=o?(e.exit(`codeFencedFenceSequence`),V(t)?W(e,d,`whitespace`)(t):d(t)):n(t)}function d(r){return r===null||z(r)?(e.exit(`codeFencedFence`),t(r)):n(r)}}}function vt(e,t,n){let r=this;return i;function i(t){return t===null?n(t):(e.enter(`lineEnding`),e.consume(t),e.exit(`lineEnding`),a)}function a(e){return r.parser.lazy[r.now().line]?n(e):t(e)}}var yt={name:`codeIndented`,tokenize:xt},bt={partial:!0,tokenize:St};function xt(e,t,n){let r=this;return i;function i(t){return e.enter(`codeIndented`),W(e,a,`linePrefix`,5)(t)}function a(e){let t=r.events[r.events.length-1];return t&&t[1].type===`linePrefix`&&t[2].sliceSerialize(t[1],!0).length>=4?o(e):n(e)}function o(t){return t===null?c(t):z(t)?e.attempt(bt,o,c)(t):(e.enter(`codeFlowValue`),s(t))}function s(t){return t===null||z(t)?(e.exit(`codeFlowValue`),o(t)):(e.consume(t),s)}function c(n){return e.exit(`codeIndented`),t(n)}}function St(e,t,n){let r=this;return i;function i(t){return r.parser.lazy[r.now().line]?n(t):z(t)?(e.enter(`lineEnding`),e.consume(t),e.exit(`lineEnding`),i):W(e,a,`linePrefix`,5)(t)}function a(e){let a=r.events[r.events.length-1];return a&&a[1].type===`linePrefix`&&a[2].sliceSerialize(a[1],!0).length>=4?t(e):z(e)?i(e):n(e)}}var Ct={name:`codeText`,previous:Tt,resolve:wt,tokenize:Et};function wt(e){let t=e.length-4,n=3,r,i;if((e[n][1].type===`lineEnding`||e[n][1].type===`space`)&&(e[t][1].type===`lineEnding`||e[t][1].type===`space`)){for(r=n;++r<t;)if(e[r][1].type===`codeTextData`){e[n][1].type=`codeTextPadding`,e[t][1].type=`codeTextPadding`,n+=2,t-=2;break}}for(r=n-1,t++;++r<=t;)i===void 0?r!==t&&e[r][1].type!==`lineEnding`&&(i=r):(r===t||e[r][1].type===`lineEnding`)&&(e[i][1].type=`codeTextData`,r!==i+2&&(e[i][1].end=e[r-1][1].end,e.splice(i+2,r-i-2),t-=r-i-2,r=i+2),i=void 0);return e}function Tt(e){return e!==96||this.events[this.events.length-1][1].type===`characterEscape`}function Et(e,t,n){let r=0,i,a;return o;function o(t){return e.enter(`codeText`),e.enter(`codeTextSequence`),s(t)}function s(t){return t===96?(e.consume(t),r++,s):(e.exit(`codeTextSequence`),c(t))}function c(t){return t===null?n(t):t===32?(e.enter(`space`),e.consume(t),e.exit(`space`),c):t===96?(a=e.enter(`codeTextSequence`),i=0,u(t)):z(t)?(e.enter(`lineEnding`),e.consume(t),e.exit(`lineEnding`),c):(e.enter(`codeTextData`),l(t))}function l(t){return t===null||t===32||t===96||z(t)?(e.exit(`codeTextData`),c(t)):(e.consume(t),l)}function u(n){return n===96?(e.consume(n),i++,u):i===r?(e.exit(`codeTextSequence`),e.exit(`codeText`),t(n)):(a.type=`codeTextData`,l(n))}}var Dt=class{constructor(e){this.left=e?[...e]:[],this.right=[]}get(e){if(e<0||e>=this.left.length+this.right.length)throw RangeError("Cannot access index `"+e+"` in a splice buffer of size `"+(this.left.length+this.right.length)+"`");return e<this.left.length?this.left[e]:this.right[this.right.length-e+this.left.length-1]}get length(){return this.left.length+this.right.length}shift(){return this.setCursor(0),this.right.pop()}slice(e,t){let n=t??1/0;return n<this.left.length?this.left.slice(e,n):e>this.left.length?this.right.slice(this.right.length-n+this.left.length,this.right.length-e+this.left.length).reverse():this.left.slice(e).concat(this.right.slice(this.right.length-n+this.left.length).reverse())}splice(e,t,n){let r=t||0;this.setCursor(Math.trunc(e));let i=this.right.splice(this.right.length-r,1/0);return n&&Ot(this.left,n),i.reverse()}pop(){return this.setCursor(1/0),this.left.pop()}push(e){this.setCursor(1/0),this.left.push(e)}pushMany(e){this.setCursor(1/0),Ot(this.left,e)}unshift(e){this.setCursor(0),this.right.push(e)}unshiftMany(e){this.setCursor(0),Ot(this.right,e.reverse())}setCursor(e){if(!(e===this.left.length||e>this.left.length&&this.right.length===0||e<0&&this.left.length===0))if(e<this.left.length){let t=this.left.splice(e,1/0);Ot(this.right,t.reverse())}else{let t=this.right.splice(this.left.length+this.right.length-e,1/0);Ot(this.left,t.reverse())}}};function Ot(e,t){let n=0;if(t.length<1e4)e.push(...t);else for(;n<t.length;)e.push(...t.slice(n,n+1e4)),n+=1e4}function kt(e){let t={},n=-1,r,i,a,o,s,c,l,u=new Dt(e);for(;++n<u.length;){for(;n in t;)n=t[n];if(r=u.get(n),n&&r[1].type===`chunkFlow`&&u.get(n-1)[1].type===`listItemPrefix`&&(c=r[1]._tokenizer.events,a=0,a<c.length&&c[a][1].type===`lineEndingBlank`&&(a+=2),a<c.length&&c[a][1].type===`content`))for(;++a<c.length&&c[a][1].type!==`content`;)c[a][1].type===`chunkText`&&(c[a][1]._isInFirstContentOfListItem=!0,a++);if(r[0]===`enter`)r[1].contentType&&(Object.assign(t,At(u,n)),n=t[n],l=!0);else if(r[1]._container){for(a=n,i=void 0;a--;)if(o=u.get(a),o[1].type===`lineEnding`||o[1].type===`lineEndingBlank`)o[0]===`enter`&&(i&&(u.get(i)[1].type=`lineEndingBlank`),o[1].type=`lineEnding`,i=a);else if(!(o[1].type===`linePrefix`||o[1].type===`listItemIndent`))break;i&&(r[1].end={...u.get(i)[1].start},s=u.slice(i,n),s.unshift(r),u.splice(i,n-i+1,s))}}return P(e,0,1/0,u.slice(0)),!l}function At(e,t){let n=e.get(t)[1],r=e.get(t)[2],i=t-1,a=[],o=n._tokenizer;o||(o=r.parser[n.contentType](n.start),n._contentTypeTextTrailing&&(o._contentTypeTextTrailing=!0));let s=o.events,c=[],l={},u,d,f=-1,p=n,m=0,h=0,g=[h];for(;p;){for(;e.get(++i)[1]!==p;);a.push(i),p._tokenizer||(u=r.sliceStream(p),p.next||u.push(null),d&&o.defineSkip(p.start),p._isInFirstContentOfListItem&&(o._gfmTasklistFirstContentOfListItem=!0),o.write(u),p._isInFirstContentOfListItem&&(o._gfmTasklistFirstContentOfListItem=void 0)),d=p,p=p.next}for(p=n;++f<s.length;)s[f][0]===`exit`&&s[f-1][0]===`enter`&&s[f][1].type===s[f-1][1].type&&s[f][1].start.line!==s[f][1].end.line&&(h=f+1,g.push(h),p._tokenizer=void 0,p.previous=void 0,p=p.next);for(o.events=[],p?(p._tokenizer=void 0,p.previous=void 0):g.pop(),f=g.length;f--;){let t=s.slice(g[f],g[f+1]),n=a.pop();c.push([n,n+t.length-1]),e.splice(n,2,t)}for(c.reverse(),f=-1;++f<c.length;)l[m+c[f][0]]=m+c[f][1],m+=c[f][1]-c[f][0]-1;return l}var jt={resolve:Nt,tokenize:Pt},Mt={partial:!0,tokenize:Ft};function Nt(e){return kt(e),e}function Pt(e,t){let n;return r;function r(t){return e.enter(`content`),n=e.enter(`chunkContent`,{contentType:`content`}),i(t)}function i(t){return t===null?a(t):z(t)?e.check(Mt,o,a)(t):(e.consume(t),i)}function a(n){return e.exit(`chunkContent`),e.exit(`content`),t(n)}function o(t){return e.consume(t),e.exit(`chunkContent`),n.next=e.enter(`chunkContent`,{contentType:`content`,previous:n}),n=n.next,i}}function Ft(e,t,n){let r=this;return i;function i(t){return e.exit(`chunkContent`),e.enter(`lineEnding`),e.consume(t),e.exit(`lineEnding`),W(e,a,`linePrefix`)}function a(i){if(i===null||z(i))return n(i);let a=r.events[r.events.length-1];return!r.parser.constructs.disable.null.includes(`codeIndented`)&&a&&a[1].type===`linePrefix`&&a[2].sliceSerialize(a[1],!0).length>=4?t(i):e.interrupt(r.parser.constructs.flow,n,t)(i)}}function It(e,t,n,r,i,a,o,s,c){let l=c||1/0,u=0;return d;function d(t){return t===60?(e.enter(r),e.enter(i),e.enter(a),e.consume(t),e.exit(a),f):t===null||t===32||t===41||ze(t)?n(t):(e.enter(r),e.enter(o),e.enter(s),e.enter(`chunkString`,{contentType:`string`}),h(t))}function f(n){return n===62?(e.enter(a),e.consume(n),e.exit(a),e.exit(i),e.exit(r),t):(e.enter(s),e.enter(`chunkString`,{contentType:`string`}),p(n))}function p(t){return t===62?(e.exit(`chunkString`),e.exit(s),f(t)):t===null||t===60||z(t)?n(t):(e.consume(t),t===92?m:p)}function m(t){return t===60||t===62||t===92?(e.consume(t),p):p(t)}function h(i){return!u&&(i===null||i===41||B(i))?(e.exit(`chunkString`),e.exit(s),e.exit(o),e.exit(r),t(i)):u<l&&i===40?(e.consume(i),u++,h):i===41?(e.consume(i),u--,h):i===null||i===32||i===40||ze(i)?n(i):(e.consume(i),i===92?g:h)}function g(t){return t===40||t===41||t===92?(e.consume(t),h):h(t)}}function Lt(e,t,n,r,i,a){let o=this,s=0,c;return l;function l(t){return e.enter(r),e.enter(i),e.consume(t),e.exit(i),e.enter(a),u}function u(l){return s>999||l===null||l===91||l===93&&!c||l===94&&!s&&`_hiddenFootnoteSupport`in o.parser.constructs?n(l):l===93?(e.exit(a),e.enter(i),e.consume(l),e.exit(i),e.exit(r),t):z(l)?(e.enter(`lineEnding`),e.consume(l),e.exit(`lineEnding`),u):(e.enter(`chunkString`,{contentType:`string`}),d(l))}function d(t){return t===null||t===91||t===93||z(t)||s++>999?(e.exit(`chunkString`),u(t)):(e.consume(t),c||=!V(t),t===92?f:d)}function f(t){return t===91||t===92||t===93?(e.consume(t),s++,d):d(t)}}function Rt(e,t,n,r,i,a){let o;return s;function s(t){return t===34||t===39||t===40?(e.enter(r),e.enter(i),e.consume(t),e.exit(i),o=t===40?41:t,c):n(t)}function c(n){return n===o?(e.enter(i),e.consume(n),e.exit(i),e.exit(r),t):(e.enter(a),l(n))}function l(t){return t===o?(e.exit(a),c(o)):t===null?n(t):z(t)?(e.enter(`lineEnding`),e.consume(t),e.exit(`lineEnding`),W(e,l,`linePrefix`)):(e.enter(`chunkString`,{contentType:`string`}),u(t))}function u(t){return t===o||t===null||z(t)?(e.exit(`chunkString`),l(t)):(e.consume(t),t===92?d:u)}function d(t){return t===o||t===92?(e.consume(t),u):u(t)}}function zt(e,t){let n;return r;function r(i){return z(i)?(e.enter(`lineEnding`),e.consume(i),e.exit(`lineEnding`),n=!0,r):V(i)?W(e,r,n?`linePrefix`:`lineSuffix`)(i):t(i)}}var Bt={name:`definition`,tokenize:Ht},Vt={partial:!0,tokenize:Ut};function Ht(e,t,n){let r=this,i;return a;function a(t){return e.enter(`definition`),o(t)}function o(t){return Lt.call(r,e,s,n,`definitionLabel`,`definitionLabelMarker`,`definitionLabelString`)(t)}function s(t){return i=I(r.sliceSerialize(r.events[r.events.length-1][1]).slice(1,-1)),t===58?(e.enter(`definitionMarker`),e.consume(t),e.exit(`definitionMarker`),c):n(t)}function c(t){return B(t)?zt(e,l)(t):l(t)}function l(t){return It(e,u,n,`definitionDestination`,`definitionDestinationLiteral`,`definitionDestinationLiteralMarker`,`definitionDestinationRaw`,`definitionDestinationString`)(t)}function u(t){return e.attempt(Vt,d,d)(t)}function d(t){return V(t)?W(e,f,`whitespace`)(t):f(t)}function f(a){return a===null||z(a)?(e.exit(`definition`),r.parser.defined.push(i),t(a)):n(a)}}function Ut(e,t,n){return r;function r(t){return B(t)?zt(e,i)(t):n(t)}function i(t){return Rt(e,a,n,`definitionTitle`,`definitionTitleMarker`,`definitionTitleString`)(t)}function a(t){return V(t)?W(e,o,`whitespace`)(t):o(t)}function o(e){return e===null||z(e)?t(e):n(e)}}var Wt={name:`hardBreakEscape`,tokenize:Gt};function Gt(e,t,n){return r;function r(t){return e.enter(`hardBreakEscape`),e.consume(t),i}function i(r){return z(r)?(e.exit(`hardBreakEscape`),t(r)):n(r)}}var Kt={name:`headingAtx`,resolve:qt,tokenize:Jt};function qt(e,t){let n=e.length-2,r=3,i,a;return e[r][1].type===`whitespace`&&(r+=2),n-2>r&&e[n][1].type===`whitespace`&&(n-=2),e[n][1].type===`atxHeadingSequence`&&(r===n-1||n-4>r&&e[n-2][1].type===`whitespace`)&&(n-=r+1===n?2:4),n>r&&(i={type:`atxHeadingText`,start:e[r][1].start,end:e[n][1].end},a={type:`chunkText`,start:e[r][1].start,end:e[n][1].end,contentType:`text`},P(e,r,n-r+1,[[`enter`,i,t],[`enter`,a,t],[`exit`,a,t],[`exit`,i,t]])),e}function Jt(e,t,n){let r=0;return i;function i(t){return e.enter(`atxHeading`),a(t)}function a(t){return e.enter(`atxHeadingSequence`),o(t)}function o(t){return t===35&&r++<6?(e.consume(t),o):t===null||B(t)?(e.exit(`atxHeadingSequence`),s(t)):n(t)}function s(n){return n===35?(e.enter(`atxHeadingSequence`),c(n)):n===null||z(n)?(e.exit(`atxHeading`),t(n)):V(n)?W(e,s,`whitespace`)(n):(e.enter(`atxHeadingText`),l(n))}function c(t){return t===35?(e.consume(t),c):(e.exit(`atxHeadingSequence`),s(t))}function l(t){return t===null||t===35||B(t)?(e.exit(`atxHeadingText`),s(t)):(e.consume(t),l)}}var Yt=`address.article.aside.base.basefont.blockquote.body.caption.center.col.colgroup.dd.details.dialog.dir.div.dl.dt.fieldset.figcaption.figure.footer.form.frame.frameset.h1.h2.h3.h4.h5.h6.head.header.hr.html.iframe.legend.li.link.main.menu.menuitem.nav.noframes.ol.optgroup.option.p.param.search.section.summary.table.tbody.td.tfoot.th.thead.title.tr.track.ul`.split(`.`),Xt=[`pre`,`script`,`style`,`textarea`],Zt={concrete:!0,name:`htmlFlow`,resolveTo:en,tokenize:tn},Qt={partial:!0,tokenize:rn},$t={partial:!0,tokenize:nn};function en(e){let t=e.length;for(;t--&&!(e[t][0]===`enter`&&e[t][1].type===`htmlFlow`););return t>1&&e[t-2][1].type===`linePrefix`&&(e[t][1].start=e[t-2][1].start,e[t+1][1].start=e[t-2][1].start,e.splice(t-2,2)),e}function tn(e,t,n){let r=this,i,a,o,s,c;return l;function l(e){return u(e)}function u(t){return e.enter(`htmlFlow`),e.enter(`htmlFlowData`),e.consume(t),d}function d(s){return s===33?(e.consume(s),f):s===47?(e.consume(s),a=!0,h):s===63?(e.consume(s),i=3,r.interrupt?t:M):L(s)?(e.consume(s),o=String.fromCharCode(s),g):n(s)}function f(a){return a===45?(e.consume(a),i=2,p):a===91?(e.consume(a),i=5,s=0,m):L(a)?(e.consume(a),i=4,r.interrupt?t:M):n(a)}function p(i){return i===45?(e.consume(i),r.interrupt?t:M):n(i)}function m(i){return i===`CDATA[`.charCodeAt(s++)?(e.consume(i),s===6?r.interrupt?t:O:m):n(i)}function h(t){return L(t)?(e.consume(t),o=String.fromCharCode(t),g):n(t)}function g(s){if(s===null||s===47||s===62||B(s)){let c=s===47,l=o.toLowerCase();return!c&&!a&&Xt.includes(l)?(i=1,r.interrupt?t(s):O(s)):Yt.includes(o.toLowerCase())?(i=6,c?(e.consume(s),_):r.interrupt?t(s):O(s)):(i=7,r.interrupt&&!r.parser.lazy[r.now().line]?n(s):a?v(s):y(s))}return s===45||R(s)?(e.consume(s),o+=String.fromCharCode(s),g):n(s)}function _(i){return i===62?(e.consume(i),r.interrupt?t:O):n(i)}function v(t){return V(t)?(e.consume(t),v):E(t)}function y(t){return t===47?(e.consume(t),E):t===58||t===95||L(t)?(e.consume(t),b):V(t)?(e.consume(t),y):E(t)}function b(t){return t===45||t===46||t===58||t===95||R(t)?(e.consume(t),b):x(t)}function x(t){return t===61?(e.consume(t),S):V(t)?(e.consume(t),x):y(t)}function S(t){return t===null||t===60||t===61||t===62||t===96?n(t):t===34||t===39?(e.consume(t),c=t,C):V(t)?(e.consume(t),S):w(t)}function C(t){return t===c?(e.consume(t),c=null,T):t===null||z(t)?n(t):(e.consume(t),C)}function w(t){return t===null||t===34||t===39||t===47||t===60||t===61||t===62||t===96||B(t)?x(t):(e.consume(t),w)}function T(e){return e===47||e===62||V(e)?y(e):n(e)}function E(t){return t===62?(e.consume(t),D):n(t)}function D(t){return t===null||z(t)?O(t):V(t)?(e.consume(t),D):n(t)}function O(t){return t===45&&i===2?(e.consume(t),A):t===60&&i===1?(e.consume(t),j):t===62&&i===4?(e.consume(t),N):t===63&&i===3?(e.consume(t),M):t===93&&i===5?(e.consume(t),re):z(t)&&(i===6||i===7)?(e.exit(`htmlFlowData`),e.check(Qt,ie,k)(t)):t===null||z(t)?(e.exit(`htmlFlowData`),k(t)):(e.consume(t),O)}function k(t){return e.check($t,ee,ie)(t)}function ee(t){return e.enter(`lineEnding`),e.consume(t),e.exit(`lineEnding`),te}function te(t){return t===null||z(t)?k(t):(e.enter(`htmlFlowData`),O(t))}function A(t){return t===45?(e.consume(t),M):O(t)}function j(t){return t===47?(e.consume(t),o=``,ne):O(t)}function ne(t){if(t===62){let n=o.toLowerCase();return Xt.includes(n)?(e.consume(t),N):O(t)}return L(t)&&o.length<8?(e.consume(t),o+=String.fromCharCode(t),ne):O(t)}function re(t){return t===93?(e.consume(t),M):O(t)}function M(t){return t===62?(e.consume(t),N):t===45&&i===2?(e.consume(t),M):O(t)}function N(t){return t===null||z(t)?(e.exit(`htmlFlowData`),ie(t)):(e.consume(t),N)}function ie(n){return e.exit(`htmlFlow`),t(n)}}function nn(e,t,n){let r=this;return i;function i(t){return z(t)?(e.enter(`lineEnding`),e.consume(t),e.exit(`lineEnding`),a):n(t)}function a(e){return r.parser.lazy[r.now().line]?n(e):t(e)}}function rn(e,t,n){return r;function r(r){return e.enter(`lineEnding`),e.consume(r),e.exit(`lineEnding`),e.attempt(at,t,n)}}var an={name:`htmlText`,tokenize:on};function on(e,t,n){let r=this,i,a,o;return s;function s(t){return e.enter(`htmlText`),e.enter(`htmlTextData`),e.consume(t),c}function c(t){return t===33?(e.consume(t),l):t===47?(e.consume(t),x):t===63?(e.consume(t),y):L(t)?(e.consume(t),w):n(t)}function l(t){return t===45?(e.consume(t),u):t===91?(e.consume(t),a=0,m):L(t)?(e.consume(t),v):n(t)}function u(t){return t===45?(e.consume(t),p):n(t)}function d(t){return t===null?n(t):t===45?(e.consume(t),f):z(t)?(o=d,j(t)):(e.consume(t),d)}function f(t){return t===45?(e.consume(t),p):d(t)}function p(e){return e===62?A(e):e===45?f(e):d(e)}function m(t){return t===`CDATA[`.charCodeAt(a++)?(e.consume(t),a===6?h:m):n(t)}function h(t){return t===null?n(t):t===93?(e.consume(t),g):z(t)?(o=h,j(t)):(e.consume(t),h)}function g(t){return t===93?(e.consume(t),_):h(t)}function _(t){return t===62?A(t):t===93?(e.consume(t),_):h(t)}function v(t){return t===null||t===62?A(t):z(t)?(o=v,j(t)):(e.consume(t),v)}function y(t){return t===null?n(t):t===63?(e.consume(t),b):z(t)?(o=y,j(t)):(e.consume(t),y)}function b(e){return e===62?A(e):y(e)}function x(t){return L(t)?(e.consume(t),S):n(t)}function S(t){return t===45||R(t)?(e.consume(t),S):C(t)}function C(t){return z(t)?(o=C,j(t)):V(t)?(e.consume(t),C):A(t)}function w(t){return t===45||R(t)?(e.consume(t),w):t===47||t===62||B(t)?T(t):n(t)}function T(t){return t===47?(e.consume(t),A):t===58||t===95||L(t)?(e.consume(t),E):z(t)?(o=T,j(t)):V(t)?(e.consume(t),T):A(t)}function E(t){return t===45||t===46||t===58||t===95||R(t)?(e.consume(t),E):D(t)}function D(t){return t===61?(e.consume(t),O):z(t)?(o=D,j(t)):V(t)?(e.consume(t),D):T(t)}function O(t){return t===null||t===60||t===61||t===62||t===96?n(t):t===34||t===39?(e.consume(t),i=t,k):z(t)?(o=O,j(t)):V(t)?(e.consume(t),O):(e.consume(t),ee)}function k(t){return t===i?(e.consume(t),i=void 0,te):t===null?n(t):z(t)?(o=k,j(t)):(e.consume(t),k)}function ee(t){return t===null||t===34||t===39||t===60||t===61||t===96?n(t):t===47||t===62||B(t)?T(t):(e.consume(t),ee)}function te(e){return e===47||e===62||B(e)?T(e):n(e)}function A(r){return r===62?(e.consume(r),e.exit(`htmlTextData`),e.exit(`htmlText`),t):n(r)}function j(t){return e.exit(`htmlTextData`),e.enter(`lineEnding`),e.consume(t),e.exit(`lineEnding`),ne}function ne(t){return V(t)?W(e,re,`linePrefix`,r.parser.constructs.disable.null.includes(`codeIndented`)?void 0:4)(t):re(t)}function re(t){return e.enter(`htmlTextData`),o(t)}}var sn={name:`labelEnd`,resolveAll:dn,resolveTo:fn,tokenize:pn},cn={tokenize:mn},ln={tokenize:hn},un={tokenize:gn};function dn(e){let t=-1,n=[];for(;++t<e.length;){let r=e[t][1];if(n.push(e[t]),r.type===`labelImage`||r.type===`labelLink`||r.type===`labelEnd`){let e=r.type===`labelImage`?4:2;r.type=`data`,t+=e}}return e.length!==n.length&&P(e,0,e.length,n),e}function fn(e,t){let n=e.length,r=0,i,a,o,s;for(;n--;)if(i=e[n][1],a){if(i.type===`link`||i.type===`labelLink`&&i._inactive)break;e[n][0]===`enter`&&i.type===`labelLink`&&(i._inactive=!0)}else if(o){if(e[n][0]===`enter`&&(i.type===`labelImage`||i.type===`labelLink`)&&!i._balanced&&(a=n,i.type!==`labelLink`)){r=2;break}}else i.type===`labelEnd`&&(o=n);let c={type:e[a][1].type===`labelLink`?`link`:`image`,start:{...e[a][1].start},end:{...e[e.length-1][1].end}},l={type:`label`,start:{...e[a][1].start},end:{...e[o][1].end}},u={type:`labelText`,start:{...e[a+r+2][1].end},end:{...e[o-2][1].start}};return s=[[`enter`,c,t],[`enter`,l,t]],s=F(s,e.slice(a+1,a+r+3)),s=F(s,[[`enter`,u,t]]),s=F(s,Qe(t.parser.constructs.insideSpan.null,e.slice(a+r+4,o-3),t)),s=F(s,[[`exit`,u,t],e[o-2],e[o-1],[`exit`,l,t]]),s=F(s,e.slice(o+1)),s=F(s,[[`exit`,c,t]]),P(e,a,e.length,s),e}function pn(e,t,n){let r=this,i=r.events.length,a,o;for(;i--;)if((r.events[i][1].type===`labelImage`||r.events[i][1].type===`labelLink`)&&!r.events[i][1]._balanced){a=r.events[i][1];break}return s;function s(t){return a?a._inactive?d(t):(o=r.parser.defined.includes(I(r.sliceSerialize({start:a.end,end:r.now()}))),e.enter(`labelEnd`),e.enter(`labelMarker`),e.consume(t),e.exit(`labelMarker`),e.exit(`labelEnd`),c):n(t)}function c(t){return t===40?e.attempt(cn,u,o?u:d)(t):t===91?e.attempt(ln,u,o?l:d)(t):o?u(t):d(t)}function l(t){return e.attempt(un,u,d)(t)}function u(e){return t(e)}function d(e){return a._balanced=!0,n(e)}}function mn(e,t,n){return r;function r(t){return e.enter(`resource`),e.enter(`resourceMarker`),e.consume(t),e.exit(`resourceMarker`),i}function i(t){return B(t)?zt(e,a)(t):a(t)}function a(t){return t===41?u(t):It(e,o,s,`resourceDestination`,`resourceDestinationLiteral`,`resourceDestinationLiteralMarker`,`resourceDestinationRaw`,`resourceDestinationString`,32)(t)}function o(t){return B(t)?zt(e,c)(t):u(t)}function s(e){return n(e)}function c(t){return t===34||t===39||t===40?Rt(e,l,n,`resourceTitle`,`resourceTitleMarker`,`resourceTitleString`)(t):u(t)}function l(t){return B(t)?zt(e,u)(t):u(t)}function u(r){return r===41?(e.enter(`resourceMarker`),e.consume(r),e.exit(`resourceMarker`),e.exit(`resource`),t):n(r)}}function hn(e,t,n){let r=this;return i;function i(t){return Lt.call(r,e,a,o,`reference`,`referenceMarker`,`referenceString`)(t)}function a(e){return r.parser.defined.includes(I(r.sliceSerialize(r.events[r.events.length-1][1]).slice(1,-1)))?t(e):n(e)}function o(e){return n(e)}}function gn(e,t,n){return r;function r(t){return e.enter(`reference`),e.enter(`referenceMarker`),e.consume(t),e.exit(`referenceMarker`),i}function i(r){return r===93?(e.enter(`referenceMarker`),e.consume(r),e.exit(`referenceMarker`),e.exit(`reference`),t):n(r)}}var _n={name:`labelStartImage`,resolveAll:sn.resolveAll,tokenize:vn};function vn(e,t,n){let r=this;return i;function i(t){return e.enter(`labelImage`),e.enter(`labelImageMarker`),e.consume(t),e.exit(`labelImageMarker`),a}function a(t){return t===91?(e.enter(`labelMarker`),e.consume(t),e.exit(`labelMarker`),e.exit(`labelImage`),o):n(t)}function o(e){return e===94&&`_hiddenFootnoteSupport`in r.parser.constructs?n(e):t(e)}}var yn={name:`labelStartLink`,resolveAll:sn.resolveAll,tokenize:bn};function bn(e,t,n){let r=this;return i;function i(t){return e.enter(`labelLink`),e.enter(`labelMarker`),e.consume(t),e.exit(`labelMarker`),e.exit(`labelLink`),a}function a(e){return e===94&&`_hiddenFootnoteSupport`in r.parser.constructs?n(e):t(e)}}var xn={name:`lineEnding`,tokenize:Sn};function Sn(e,t){return n;function n(n){return e.enter(`lineEnding`),e.consume(n),e.exit(`lineEnding`),W(e,t,`linePrefix`)}}var Cn={name:`thematicBreak`,tokenize:wn};function wn(e,t,n){let r=0,i;return a;function a(t){return e.enter(`thematicBreak`),o(t)}function o(e){return i=e,s(e)}function s(a){return a===i?(e.enter(`thematicBreakSequence`),c(a)):r>=3&&(a===null||z(a))?(e.exit(`thematicBreak`),t(a)):n(a)}function c(t){return t===i?(e.consume(t),r++,c):(e.exit(`thematicBreakSequence`),V(t)?W(e,s,`whitespace`)(t):s(t))}}var G={continuation:{tokenize:On},exit:An,name:`list`,tokenize:Dn},Tn={partial:!0,tokenize:jn},En={partial:!0,tokenize:kn};function Dn(e,t,n){let r=this,i=r.events[r.events.length-1],a=i&&i[1].type===`linePrefix`?i[2].sliceSerialize(i[1],!0).length:0,o=0;return s;function s(t){let i=r.containerState.type||(t===42||t===43||t===45?`listUnordered`:`listOrdered`);if(i===`listUnordered`?!r.containerState.marker||t===r.containerState.marker:Be(t)){if(r.containerState.type||(r.containerState.type=i,e.enter(i,{_container:!0})),i===`listUnordered`)return e.enter(`listItemPrefix`),t===42||t===45?e.check(Cn,n,l)(t):l(t);if(!r.interrupt||t===49)return e.enter(`listItemPrefix`),e.enter(`listItemValue`),c(t)}return n(t)}function c(t){return Be(t)&&++o<10?(e.consume(t),c):(!r.interrupt||o<2)&&(r.containerState.marker?t===r.containerState.marker:t===41||t===46)?(e.exit(`listItemValue`),l(t)):n(t)}function l(t){return e.enter(`listItemMarker`),e.consume(t),e.exit(`listItemMarker`),r.containerState.marker=r.containerState.marker||t,e.check(at,r.interrupt?n:u,e.attempt(Tn,f,d))}function u(e){return r.containerState.initialBlankLine=!0,a++,f(e)}function d(t){return V(t)?(e.enter(`listItemPrefixWhitespace`),e.consume(t),e.exit(`listItemPrefixWhitespace`),f):n(t)}function f(n){return r.containerState.size=a+r.sliceSerialize(e.exit(`listItemPrefix`),!0).length,t(n)}}function On(e,t,n){let r=this;return r.containerState._closeFlow=void 0,e.check(at,i,a);function i(n){return r.containerState.furtherBlankLines=r.containerState.furtherBlankLines||r.containerState.initialBlankLine,W(e,t,`listItemIndent`,r.containerState.size+1)(n)}function a(n){return r.containerState.furtherBlankLines||!V(n)?(r.containerState.furtherBlankLines=void 0,r.containerState.initialBlankLine=void 0,o(n)):(r.containerState.furtherBlankLines=void 0,r.containerState.initialBlankLine=void 0,e.attempt(En,t,o)(n))}function o(i){return r.containerState._closeFlow=!0,r.interrupt=void 0,W(e,e.attempt(G,t,n),`linePrefix`,r.parser.constructs.disable.null.includes(`codeIndented`)?void 0:4)(i)}}function kn(e,t,n){let r=this;return W(e,i,`listItemIndent`,r.containerState.size+1);function i(e){let i=r.events[r.events.length-1];return i&&i[1].type===`listItemIndent`&&i[2].sliceSerialize(i[1],!0).length===r.containerState.size?t(e):n(e)}}function An(e){e.exit(this.containerState.type)}function jn(e,t,n){let r=this;return W(e,i,`listItemPrefixWhitespace`,r.parser.constructs.disable.null.includes(`codeIndented`)?void 0:5);function i(e){let i=r.events[r.events.length-1];return!V(e)&&i&&i[1].type===`listItemPrefixWhitespace`?t(e):n(e)}}var Mn={name:`setextUnderline`,resolveTo:Nn,tokenize:Pn};function Nn(e,t){let n=e.length,r,i,a;for(;n--;)if(e[n][0]===`enter`){if(e[n][1].type===`content`){r=n;break}e[n][1].type===`paragraph`&&(i=n)}else e[n][1].type===`content`&&e.splice(n,1),!a&&e[n][1].type===`definition`&&(a=n);let o={type:`setextHeading`,start:{...e[r][1].start},end:{...e[e.length-1][1].end}};return e[i][1].type=`setextHeadingText`,a?(e.splice(i,0,[`enter`,o,t]),e.splice(a+1,0,[`exit`,e[r][1],t]),e[r][1].end={...e[a][1].end}):e[r][1]=o,e.push([`exit`,o,t]),e}function Pn(e,t,n){let r=this,i;return a;function a(t){let a=r.events.length,s;for(;a--;)if(r.events[a][1].type!==`lineEnding`&&r.events[a][1].type!==`linePrefix`&&r.events[a][1].type!==`content`){s=r.events[a][1].type===`paragraph`;break}return!r.parser.lazy[r.now().line]&&(r.interrupt||s)?(e.enter(`setextHeadingLine`),i=t,o(t)):n(t)}function o(t){return e.enter(`setextHeadingLineSequence`),s(t)}function s(t){return t===i?(e.consume(t),s):(e.exit(`setextHeadingLineSequence`),V(t)?W(e,c,`lineSuffix`)(t):c(t))}function c(r){return r===null||z(r)?(e.exit(`setextHeadingLine`),t(r)):n(r)}}var Fn={tokenize:In};function In(e){let t=this,n=e.attempt(at,r,e.attempt(this.parser.constructs.flowInitial,i,W(e,e.attempt(this.parser.constructs.flow,i,e.attempt(jt,i)),`linePrefix`)));return n;function r(r){if(r===null){e.consume(r);return}return e.enter(`lineEndingBlank`),e.consume(r),e.exit(`lineEndingBlank`),t.currentConstruct=void 0,n}function i(r){if(r===null){e.consume(r);return}return e.enter(`lineEnding`),e.consume(r),e.exit(`lineEnding`),t.currentConstruct=void 0,n}}var Ln={resolveAll:Vn()},Rn=Bn(`string`),zn=Bn(`text`);function Bn(e){return{resolveAll:Vn(e===`text`?Hn:void 0),tokenize:t};function t(t){let n=this,r=this.parser.constructs[e],i=t.attempt(r,a,o);return a;function a(e){return c(e)?i(e):o(e)}function o(e){if(e===null){t.consume(e);return}return t.enter(`data`),t.consume(e),s}function s(e){return c(e)?(t.exit(`data`),i(e)):(t.consume(e),s)}function c(e){if(e===null)return!0;let t=r[e],i=-1;if(t)for(;++i<t.length;){let e=t[i];if(!e.previous||e.previous.call(n,n.previous))return!0}return!1}}}function Vn(e){return t;function t(t,n){let r=-1,i;for(;++r<=t.length;)i===void 0?t[r]&&t[r][1].type===`data`&&(i=r,r++):(!t[r]||t[r][1].type!==`data`)&&(r!==i+2&&(t[i][1].end=t[r-1][1].end,t.splice(i+2,r-i-2),r=i+2),i=void 0);return e?e(t,n):t}}function Hn(e,t){let n=0;for(;++n<=e.length;)if((n===e.length||e[n][1].type===`lineEnding`)&&e[n-1][1].type===`data`){let r=e[n-1][1],i=t.sliceStream(r),a=i.length,o=-1,s=0,c;for(;a--;){let e=i[a];if(typeof e==`string`){for(o=e.length;e.charCodeAt(o-1)===32;)s++,o--;if(o)break;o=-1}else if(e===-2)c=!0,s++;else if(e!==-1){a++;break}}if(t._contentTypeTextTrailing&&n===e.length&&(s=0),s){let i={type:n===e.length||c||s<2?`lineSuffix`:`hardBreakTrailing`,start:{_bufferIndex:a?o:r.start._bufferIndex+o,_index:r.start._index+a,line:r.end.line,column:r.end.column-s,offset:r.end.offset-s},end:{...r.end}};r.end={...i.start},r.start.offset===r.end.offset?Object.assign(r,i):(e.splice(n,0,[`enter`,i,t],[`exit`,i,t]),n+=2)}n++}return e}var Un=e({attentionMarkers:()=>Zn,contentInitial:()=>Gn,disable:()=>Qn,document:()=>Wn,flow:()=>qn,flowInitial:()=>Kn,insideSpan:()=>Xn,string:()=>Jn,text:()=>Yn}),Wn={42:G,43:G,45:G,48:G,49:G,50:G,51:G,52:G,53:G,54:G,55:G,56:G,57:G,62:st},Gn={91:Bt},Kn={[-2]:yt,[-1]:yt,32:yt},qn={35:Kt,42:Cn,45:[Mn,Cn],60:Zt,61:Mn,95:Cn,96:gt,126:gt},Jn={38:pt,92:dt},Yn={[-5]:xn,[-4]:xn,[-3]:xn,33:_n,38:pt,42:$e,60:[rt,an],91:yn,92:[Wt,dt],93:sn,95:$e,96:Ct},Xn={null:[$e,Ln]},Zn={null:[42,95]},Qn={null:[]};function $n(e,t,n){let r={_bufferIndex:-1,_index:0,line:n&&n.line||1,column:n&&n.column||1,offset:n&&n.offset||0},i={},a=[],o=[],s=[],c={attempt:C(x),check:C(S),consume:v,enter:y,exit:b,interrupt:C(S,{interrupt:!0})},l={code:null,containerState:{},defineSkip:h,events:[],now:m,parser:e,previous:null,sliceSerialize:f,sliceStream:p,write:d},u=t.tokenize.call(l,c);return t.resolveAll&&a.push(t),l;function d(e){return o=F(o,e),g(),o[o.length-1]===null?(w(t,0),l.events=Qe(a,l.events,l),l.events):[]}function f(e,t){return tr(p(e),t)}function p(e){return er(o,e)}function m(){let{_bufferIndex:e,_index:t,line:n,column:i,offset:a}=r;return{_bufferIndex:e,_index:t,line:n,column:i,offset:a}}function h(e){i[e.line]=e.column,E()}function g(){let e;for(;r._index<o.length;){let t=o[r._index];if(typeof t==`string`)for(e=r._index,r._bufferIndex<0&&(r._bufferIndex=0);r._index===e&&r._bufferIndex<t.length;)_(t.charCodeAt(r._bufferIndex));else _(t)}}function _(e){u=u(e)}function v(e){z(e)?(r.line++,r.column=1,r.offset+=e===-3?2:1,E()):e!==-1&&(r.column++,r.offset++),r._bufferIndex<0?r._index++:(r._bufferIndex++,r._bufferIndex===o[r._index].length&&(r._bufferIndex=-1,r._index++)),l.previous=e}function y(e,t){let n=t||{};return n.type=e,n.start=m(),l.events.push([`enter`,n,l]),s.push(n),n}function b(e){let t=s.pop();return t.end=m(),l.events.push([`exit`,t,l]),t}function x(e,t){w(e,t.from)}function S(e,t){t.restore()}function C(e,t){return n;function n(n,r,i){let a,o,s,u;return Array.isArray(n)?f(n):`tokenize`in n?f([n]):d(n);function d(e){return t;function t(t){let n=t!==null&&e[t],r=t!==null&&e.null;return f([...Array.isArray(n)?n:n?[n]:[],...Array.isArray(r)?r:r?[r]:[]])(t)}}function f(e){return a=e,o=0,e.length===0?i:p(e[o])}function p(e){return n;function n(n){return u=T(),s=e,e.partial||(l.currentConstruct=e),e.name&&l.parser.constructs.disable.null.includes(e.name)?h(n):e.tokenize.call(t?Object.assign(Object.create(l),t):l,c,m,h)(n)}}function m(t){return e(s,u),r}function h(e){return u.restore(),++o<a.length?p(a[o]):i}}}function w(e,t){e.resolveAll&&!a.includes(e)&&a.push(e),e.resolve&&P(l.events,t,l.events.length-t,e.resolve(l.events.slice(t),l)),e.resolveTo&&(l.events=e.resolveTo(l.events,l))}function T(){let e=m(),t=l.previous,n=l.currentConstruct,i=l.events.length,a=Array.from(s);return{from:i,restore:o};function o(){r=e,l.previous=t,l.currentConstruct=n,l.events.length=i,s=a,E()}}function E(){r.line in i&&r.column<2&&(r.column=i[r.line],r.offset+=i[r.line]-1)}}function er(e,t){let n=t.start._index,r=t.start._bufferIndex,i=t.end._index,a=t.end._bufferIndex,o;if(n===i)o=[e[n].slice(r,a)];else{if(o=e.slice(n,i),r>-1){let e=o[0];typeof e==`string`?o[0]=e.slice(r):o.shift()}a>0&&o.push(e[i].slice(0,a))}return o}function tr(e,t){let n=-1,r=[],i;for(;++n<e.length;){let a=e[n],o;if(typeof a==`string`)o=a;else switch(a){case-5:o=`\r`;break;case-4:o=`
|
|
3
3
|
`;break;case-3:o=`\r
|
|
4
4
|
`;break;case-2:o=t?` `:` `;break;case-1:if(!t&&i)continue;o=` `;break;default:o=String.fromCharCode(a)}i=a===-2,r.push(o)}return r.join(``)}function nr(e){let t={constructs:Pe([Un,...(e||{}).extensions||[]]),content:n(Ge),defined:[],document:n(qe),flow:n(Fn),lazy:{},string:n(Rn),text:n(zn)};return t;function n(e){return n;function n(n){return $n(t,e,n)}}}function rr(e){for(;!kt(e););return e}var ir=/[\0\t\n\r]/g;function ar(){let e=1,t=``,n=!0,r;return i;function i(i,a,o){let s=[],c,l,u,d,f;for(i=t+(typeof i==`string`?i.toString():new TextDecoder(a||void 0).decode(i)),u=0,t=``,n&&=(i.charCodeAt(0)===65279&&u++,void 0);u<i.length;){if(ir.lastIndex=u,c=ir.exec(i),d=c&&c.index!==void 0?c.index:i.length,f=i.charCodeAt(d),!c){t=i.slice(u);break}if(f===10&&u===d&&r)s.push(-3),r=void 0;else switch(r&&=(s.push(-5),void 0),u<d&&(s.push(i.slice(u,d)),e+=d-u),f){case 0:s.push(65533),e++;break;case 9:for(l=Math.ceil(e/4)*4,s.push(-2);e++<l;)s.push(-1);break;case 10:s.push(-4),e=1;break;default:r=!0,e=1}u=d+1}return o&&(r&&s.push(-5),t&&s.push(t),s.push(null)),s}}var or=/\\([!-/:-@[-`{-~])|&(#(?:\d{1,7}|x[\da-f]{1,6})|[\da-z]{1,31});/gi;function sr(e){return e.replace(or,cr)}function cr(e,t,n){if(t)return t;if(n.charCodeAt(0)===35){let e=n.charCodeAt(1),t=e===120||e===88;return Le(n.slice(t?2:1),t?16:10)}return Me(n)||e}var lr={}.hasOwnProperty;function ur(e,t,n){return t&&typeof t==`object`&&(n=t,t=void 0),dr(n)(rr(nr(n).document().write(ar()(e,t,!0))))}function dr(e){let t={transforms:[],canContainEols:[`emphasis`,`fragment`,`heading`,`paragraph`,`strong`],enter:{autolink:a(Se),autolinkProtocol:E,autolinkEmail:E,atxHeading:a(ve),blockQuote:a(pe),characterEscape:E,characterReference:E,codeFenced:a(me),codeFencedFenceInfo:o,codeFencedFenceMeta:o,codeIndented:a(me,o),codeText:a(he,o),codeTextData:E,data:E,codeFlowValue:E,definition:a(ge),definitionDestinationString:o,definitionLabelString:o,definitionTitleString:o,emphasis:a(_e),hardBreakEscape:a(ye),hardBreakTrailing:a(ye),htmlFlow:a(be,o),htmlFlowData:E,htmlText:a(be,o),htmlTextData:E,image:a(xe),label:o,link:a(Se),listItem:a(we),listItemValue:f,listOrdered:a(Ce,d),listUnordered:a(Ce),paragraph:a(Te),reference:oe,referenceString:o,resourceDestinationString:o,resourceTitleString:o,setextHeading:a(ve),strong:a(Ee),thematicBreak:a(ke)},exit:{atxHeading:c(),atxHeadingSequence:x,autolink:c(),autolinkEmail:fe,autolinkProtocol:de,blockQuote:c(),characterEscapeValue:D,characterReferenceMarkerHexadecimal:ce,characterReferenceMarkerNumeric:ce,characterReferenceValue:le,characterReference:ue,codeFenced:c(g),codeFencedFence:h,codeFencedFenceInfo:p,codeFencedFenceMeta:m,codeFlowValue:D,codeIndented:c(_),codeText:c(A),codeTextData:D,data:D,definition:c(),definitionDestinationString:b,definitionLabelString:v,definitionTitleString:y,emphasis:c(),hardBreakEscape:c(k),hardBreakTrailing:c(k),htmlFlow:c(ee),htmlFlowData:D,htmlText:c(te),htmlTextData:D,image:c(ne),label:M,labelText:re,lineEnding:O,link:c(j),listItem:c(),listOrdered:c(),listUnordered:c(),paragraph:c(),referenceString:se,resourceDestinationString:N,resourceTitleString:ie,resource:ae,setextHeading:c(w),setextHeadingLineSequence:C,setextHeadingText:S,strong:c(),thematicBreak:c()}};fr(t,(e||{}).mdastExtensions||[]);let n={};return r;function r(e){let r={type:`root`,children:[]},a={stack:[r],tokenStack:[],config:t,enter:s,exit:l,buffer:o,resume:u,data:n},c=[],d=-1;for(;++d<e.length;)(e[d][1].type===`listOrdered`||e[d][1].type===`listUnordered`)&&(e[d][0]===`enter`?c.push(d):d=i(e,c.pop(),d));for(d=-1;++d<e.length;){let n=t[e[d][0]];lr.call(n,e[d][1].type)&&n[e[d][1].type].call(Object.assign({sliceSerialize:e[d][2].sliceSerialize},a),e[d][1])}if(a.tokenStack.length>0){let e=a.tokenStack[a.tokenStack.length-1];(e[1]||mr).call(a,void 0,e[0])}for(r.position={start:K(e.length>0?e[0][1].start:{line:1,column:1,offset:0}),end:K(e.length>0?e[e.length-2][1].end:{line:1,column:1,offset:0})},d=-1;++d<t.transforms.length;)r=t.transforms[d](r)||r;return r}function i(e,t,n){let r=t-1,i=-1,a=!1,o,s,c,l;for(;++r<=n;){let t=e[r];switch(t[1].type){case`listUnordered`:case`listOrdered`:case`blockQuote`:t[0]===`enter`?i++:i--,l=void 0;break;case`lineEndingBlank`:t[0]===`enter`&&(o&&!l&&!i&&!c&&(c=r),l=void 0);break;case`linePrefix`:case`listItemValue`:case`listItemMarker`:case`listItemPrefix`:case`listItemPrefixWhitespace`:break;default:l=void 0}if(!i&&t[0]===`enter`&&t[1].type===`listItemPrefix`||i===-1&&t[0]===`exit`&&(t[1].type===`listUnordered`||t[1].type===`listOrdered`)){if(o){let i=r;for(s=void 0;i--;){let t=e[i];if(t[1].type===`lineEnding`||t[1].type===`lineEndingBlank`){if(t[0]===`exit`)continue;s&&(e[s][1].type=`lineEndingBlank`,a=!0),t[1].type=`lineEnding`,s=i}else if(!(t[1].type===`linePrefix`||t[1].type===`blockQuotePrefix`||t[1].type===`blockQuotePrefixWhitespace`||t[1].type===`blockQuoteMarker`||t[1].type===`listItemIndent`))break}c&&(!s||c<s)&&(o._spread=!0),o.end=Object.assign({},s?e[s][1].start:t[1].end),e.splice(s||r,0,[`exit`,o,t[2]]),r++,n++}if(t[1].type===`listItemPrefix`){let i={type:`listItem`,_spread:!1,start:Object.assign({},t[1].start),end:void 0};o=i,e.splice(r,0,[`enter`,i,t[2]]),r++,n++,c=void 0,l=!0}}}return e[t][1]._spread=a,n}function a(e,t){return n;function n(n){s.call(this,e(n),n),t&&t.call(this,n)}}function o(){this.stack.push({type:`fragment`,children:[]})}function s(e,t,n){this.stack[this.stack.length-1].children.push(e),this.stack.push(e),this.tokenStack.push([t,n||void 0]),e.position={start:K(t.start),end:void 0}}function c(e){return t;function t(t){e&&e.call(this,t),l.call(this,t)}}function l(e,t){let n=this.stack.pop(),r=this.tokenStack.pop();if(r)r[0].type!==e.type&&(t?t.call(this,e,r[0]):(r[1]||mr).call(this,e,r[0]));else throw Error("Cannot close `"+e.type+"` ("+T({start:e.start,end:e.end})+`): it’s not open`);n.position.end=K(e.end)}function u(){return De(this.stack.pop())}function d(){this.data.expectingFirstListItemValue=!0}function f(e){if(this.data.expectingFirstListItemValue){let t=this.stack[this.stack.length-2];t.start=Number.parseInt(this.sliceSerialize(e),10),this.data.expectingFirstListItemValue=void 0}}function p(){let e=this.resume(),t=this.stack[this.stack.length-1];t.lang=e}function m(){let e=this.resume(),t=this.stack[this.stack.length-1];t.meta=e}function h(){this.data.flowCodeInside||(this.buffer(),this.data.flowCodeInside=!0)}function g(){let e=this.resume(),t=this.stack[this.stack.length-1];t.value=e.replace(/^(\r?\n|\r)|(\r?\n|\r)$/g,``),this.data.flowCodeInside=void 0}function _(){let e=this.resume(),t=this.stack[this.stack.length-1];t.value=e.replace(/(\r?\n|\r)$/g,``)}function v(e){let t=this.resume(),n=this.stack[this.stack.length-1];n.label=t,n.identifier=I(this.sliceSerialize(e)).toLowerCase()}function y(){let e=this.resume(),t=this.stack[this.stack.length-1];t.title=e}function b(){let e=this.resume(),t=this.stack[this.stack.length-1];t.url=e}function x(e){let t=this.stack[this.stack.length-1];t.depth||=this.sliceSerialize(e).length}function S(){this.data.setextHeadingSlurpLineEnding=!0}function C(e){let t=this.stack[this.stack.length-1];t.depth=this.sliceSerialize(e).codePointAt(0)===61?1:2}function w(){this.data.setextHeadingSlurpLineEnding=void 0}function E(e){let t=this.stack[this.stack.length-1].children,n=t[t.length-1];(!n||n.type!==`text`)&&(n=Oe(),n.position={start:K(e.start),end:void 0},t.push(n)),this.stack.push(n)}function D(e){let t=this.stack.pop();t.value+=this.sliceSerialize(e),t.position.end=K(e.end)}function O(e){let n=this.stack[this.stack.length-1];if(this.data.atHardBreak){let t=n.children[n.children.length-1];t.position.end=K(e.end),this.data.atHardBreak=void 0;return}!this.data.setextHeadingSlurpLineEnding&&t.canContainEols.includes(n.type)&&(E.call(this,e),D.call(this,e))}function k(){this.data.atHardBreak=!0}function ee(){let e=this.resume(),t=this.stack[this.stack.length-1];t.value=e}function te(){let e=this.resume(),t=this.stack[this.stack.length-1];t.value=e}function A(){let e=this.resume(),t=this.stack[this.stack.length-1];t.value=e}function j(){let e=this.stack[this.stack.length-1];if(this.data.inReference){let t=this.data.referenceType||`shortcut`;e.type+=`Reference`,e.referenceType=t,delete e.url,delete e.title}else delete e.identifier,delete e.label;this.data.referenceType=void 0}function ne(){let e=this.stack[this.stack.length-1];if(this.data.inReference){let t=this.data.referenceType||`shortcut`;e.type+=`Reference`,e.referenceType=t,delete e.url,delete e.title}else delete e.identifier,delete e.label;this.data.referenceType=void 0}function re(e){let t=this.sliceSerialize(e),n=this.stack[this.stack.length-2];n.label=sr(t),n.identifier=I(t).toLowerCase()}function M(){let e=this.stack[this.stack.length-1],t=this.resume(),n=this.stack[this.stack.length-1];this.data.inReference=!0,n.type===`link`?n.children=e.children:n.alt=t}function N(){let e=this.resume(),t=this.stack[this.stack.length-1];t.url=e}function ie(){let e=this.resume(),t=this.stack[this.stack.length-1];t.title=e}function ae(){this.data.inReference=void 0}function oe(){this.data.referenceType=`collapsed`}function se(e){let t=this.resume(),n=this.stack[this.stack.length-1];n.label=t,n.identifier=I(this.sliceSerialize(e)).toLowerCase(),this.data.referenceType=`full`}function ce(e){this.data.characterReferenceType=e.type}function le(e){let t=this.sliceSerialize(e),n=this.data.characterReferenceType,r;n?(r=Le(t,n===`characterReferenceMarkerNumeric`?10:16),this.data.characterReferenceType=void 0):r=Me(t);let i=this.stack[this.stack.length-1];i.value+=r}function ue(e){let t=this.stack.pop();t.position.end=K(e.end)}function de(e){D.call(this,e);let t=this.stack[this.stack.length-1];t.url=this.sliceSerialize(e)}function fe(e){D.call(this,e);let t=this.stack[this.stack.length-1];t.url=`mailto:`+this.sliceSerialize(e)}function pe(){return{type:`blockquote`,children:[]}}function me(){return{type:`code`,lang:null,meta:null,value:``}}function he(){return{type:`inlineCode`,value:``}}function ge(){return{type:`definition`,identifier:``,label:null,title:null,url:``}}function _e(){return{type:`emphasis`,children:[]}}function ve(){return{type:`heading`,depth:0,children:[]}}function ye(){return{type:`break`}}function be(){return{type:`html`,value:``}}function xe(){return{type:`image`,title:null,url:``,alt:null}}function Se(){return{type:`link`,title:null,url:``,children:[]}}function Ce(e){return{type:`list`,ordered:e.type===`listOrdered`,start:null,spread:e._spread,children:[]}}function we(e){return{type:`listItem`,spread:e._spread,checked:null,children:[]}}function Te(){return{type:`paragraph`,children:[]}}function Ee(){return{type:`strong`,children:[]}}function Oe(){return{type:`text`,value:``}}function ke(){return{type:`thematicBreak`}}}function K(e){return{line:e.line,column:e.column,offset:e.offset}}function fr(e,t){let n=-1;for(;++n<t.length;){let r=t[n];Array.isArray(r)?fr(e,r):pr(e,r)}}function pr(e,t){let n;for(n in t)if(lr.call(t,n))switch(n){case`canContainEols`:{let r=t[n];r&&e[n].push(...r);break}case`transforms`:{let r=t[n];r&&e[n].push(...r);break}case`enter`:case`exit`:{let r=t[n];r&&Object.assign(e[n],r);break}}}function mr(e,t){throw Error(e?"Cannot close `"+e.type+"` ("+T({start:e.start,end:e.end})+"): a different token (`"+t.type+"`, "+T({start:t.start,end:t.end})+`) is open`:"Cannot close document, a token (`"+t.type+"`, "+T({start:t.start,end:t.end})+`) is still open`)}function hr(e){let t=this;t.parser=n;function n(n){return ur(n,{...t.data(`settings`),...e,extensions:t.data(`micromarkExtensions`)||[],mdastExtensions:t.data(`fromMarkdownExtensions`)||[]})}}function gr(e,t){let n={type:`element`,tagName:`blockquote`,properties:{},children:e.wrap(e.all(t),!0)};return e.patch(t,n),e.applyData(t,n)}function _r(e,t){let n={type:`element`,tagName:`br`,properties:{},children:[]};return e.patch(t,n),[e.applyData(t,n),{type:`text`,value:`
|
|
@@ -27,4 +27,4 @@ import{n as e,r as t,t as n}from"./chunk-CilyBKbf.js";import{gr as r,rr as i}fro
|
|
|
27
27
|
`,...a.current()});return/^[\t ]/.test(l)&&(l=Go(l.charCodeAt(0))+l.slice(1)),l=l?o+` `+l:o,n.options.closeAtx&&(l+=` `+o),c(),s(),l}Zo.peek=Qo;function Zo(e){return e.value||``}function Qo(){return`<`}$o.peek=es;function $o(e,t,n,r){let i=Ho(n),a=i===`"`?`Quote`:`Apostrophe`,o=n.enter(`image`),s=n.enter(`label`),c=n.createTracker(r),l=c.move(`![`);return l+=c.move(n.safe(e.alt,{before:l,after:`]`,...c.current()})),l+=c.move(`](`),s(),!e.url&&e.title||/[\0- \u007F]/.test(e.url)?(s=n.enter(`destinationLiteral`),l+=c.move(`<`),l+=c.move(n.safe(e.url,{before:l,after:`>`,...c.current()})),l+=c.move(`>`)):(s=n.enter(`destinationRaw`),l+=c.move(n.safe(e.url,{before:l,after:e.title?` `:`)`,...c.current()}))),s(),e.title&&(s=n.enter(`title${a}`),l+=c.move(` `+i),l+=c.move(n.safe(e.title,{before:l,after:i,...c.current()})),l+=c.move(i),s()),l+=c.move(`)`),o(),l}function es(){return`!`}ts.peek=ns;function ts(e,t,n,r){let i=e.referenceType,a=n.enter(`imageReference`),o=n.enter(`label`),s=n.createTracker(r),c=s.move(`![`),l=n.safe(e.alt,{before:c,after:`]`,...s.current()});c+=s.move(l+`][`),o();let u=n.stack;n.stack=[],o=n.enter(`reference`);let d=n.safe(n.associationId(e),{before:c,after:`]`,...s.current()});return o(),n.stack=u,a(),i===`full`||!l||l!==d?c+=s.move(d+`]`):i===`shortcut`?c=c.slice(0,-1):c+=s.move(`]`),c}function ns(){return`!`}rs.peek=is;function rs(e,t,n){let r=e.value||``,i="`",a=-1;for(;RegExp("(^|[^`])"+i+"([^`]|$)").test(r);)i+="`";for(/[^ \r\n]/.test(r)&&(/^[ \r\n]/.test(r)&&/[ \r\n]$/.test(r)||/^`|`$/.test(r))&&(r=` `+r+` `);++a<n.unsafe.length;){let e=n.unsafe[a],t=n.compilePattern(e),i;if(e.atBreak)for(;i=t.exec(r);){let e=i.index;r.charCodeAt(e)===10&&r.charCodeAt(e-1)===13&&e--,r=r.slice(0,e)+` `+r.slice(i.index+1)}}return i+r+i}function is(){return"`"}function as(e,t){let n=De(e);return!!(!t.options.resourceLink&&e.url&&!e.title&&e.children&&e.children.length===1&&e.children[0].type===`text`&&(n===e.url||`mailto:`+n===e.url)&&/^[a-z][a-z+.-]+:/i.test(e.url)&&!/[\0- <>\u007F]/.test(e.url))}os.peek=ss;function os(e,t,n,r){let i=Ho(n),a=i===`"`?`Quote`:`Apostrophe`,o=n.createTracker(r),s,c;if(as(e,n)){let t=n.stack;n.stack=[],s=n.enter(`autolink`);let r=o.move(`<`);return r+=o.move(n.containerPhrasing(e,{before:r,after:`>`,...o.current()})),r+=o.move(`>`),s(),n.stack=t,r}s=n.enter(`link`),c=n.enter(`label`);let l=o.move(`[`);return l+=o.move(n.containerPhrasing(e,{before:l,after:`](`,...o.current()})),l+=o.move(`](`),c(),!e.url&&e.title||/[\0- \u007F]/.test(e.url)?(c=n.enter(`destinationLiteral`),l+=o.move(`<`),l+=o.move(n.safe(e.url,{before:l,after:`>`,...o.current()})),l+=o.move(`>`)):(c=n.enter(`destinationRaw`),l+=o.move(n.safe(e.url,{before:l,after:e.title?` `:`)`,...o.current()}))),c(),e.title&&(c=n.enter(`title${a}`),l+=o.move(` `+i),l+=o.move(n.safe(e.title,{before:l,after:i,...o.current()})),l+=o.move(i),c()),l+=o.move(`)`),s(),l}function ss(e,t,n){return as(e,n)?`<`:`[`}cs.peek=ls;function cs(e,t,n,r){let i=e.referenceType,a=n.enter(`linkReference`),o=n.enter(`label`),s=n.createTracker(r),c=s.move(`[`),l=n.containerPhrasing(e,{before:c,after:`]`,...s.current()});c+=s.move(l+`][`),o();let u=n.stack;n.stack=[],o=n.enter(`reference`);let d=n.safe(n.associationId(e),{before:c,after:`]`,...s.current()});return o(),n.stack=u,a(),i===`full`||!l||l!==d?c+=s.move(d+`]`):i===`shortcut`?c=c.slice(0,-1):c+=s.move(`]`),c}function ls(){return`[`}function us(e){let t=e.options.bullet||`*`;if(t!==`*`&&t!==`+`&&t!==`-`)throw Error("Cannot serialize items with `"+t+"` for `options.bullet`, expected `*`, `+`, or `-`");return t}function ds(e){let t=us(e),n=e.options.bulletOther;if(!n)return t===`*`?`-`:`*`;if(n!==`*`&&n!==`+`&&n!==`-`)throw Error("Cannot serialize items with `"+n+"` for `options.bulletOther`, expected `*`, `+`, or `-`");if(n===t)throw Error("Expected `bullet` (`"+t+"`) and `bulletOther` (`"+n+"`) to be different");return n}function fs(e){let t=e.options.bulletOrdered||`.`;if(t!==`.`&&t!==`)`)throw Error("Cannot serialize items with `"+t+"` for `options.bulletOrdered`, expected `.` or `)`");return t}function ps(e){let t=e.options.rule||`*`;if(t!==`*`&&t!==`-`&&t!==`_`)throw Error("Cannot serialize rules with `"+t+"` for `options.rule`, expected `*`, `-`, or `_`");return t}function ms(e,t,n,r){let i=n.enter(`list`),a=n.bulletCurrent,o=e.ordered?fs(n):us(n),s=e.ordered?o===`.`?`)`:`.`:ds(n),c=t&&n.bulletLastUsed?o===n.bulletLastUsed:!1;if(!e.ordered){let t=e.children?e.children[0]:void 0;if((o===`*`||o===`-`)&&t&&(!t.children||!t.children[0])&&n.stack[n.stack.length-1]===`list`&&n.stack[n.stack.length-2]===`listItem`&&n.stack[n.stack.length-3]===`list`&&n.stack[n.stack.length-4]===`listItem`&&n.indexStack[n.indexStack.length-1]===0&&n.indexStack[n.indexStack.length-2]===0&&n.indexStack[n.indexStack.length-3]===0&&(c=!0),ps(n)===o&&t){let t=-1;for(;++t<e.children.length;){let n=e.children[t];if(n&&n.type===`listItem`&&n.children&&n.children[0]&&n.children[0].type===`thematicBreak`){c=!0;break}}}}c&&(o=s),n.bulletCurrent=o;let l=n.containerFlow(e,r);return n.bulletLastUsed=o,n.bulletCurrent=a,i(),l}function hs(e){let t=e.options.listItemIndent||`one`;if(t!==`tab`&&t!==`one`&&t!==`mixed`)throw Error("Cannot serialize items with `"+t+"` for `options.listItemIndent`, expected `tab`, `one`, or `mixed`");return t}function gs(e,t,n,r){let i=hs(n),a=n.bulletCurrent||us(n);t&&t.type===`list`&&t.ordered&&(a=(typeof t.start==`number`&&t.start>-1?t.start:1)+(n.options.incrementListMarker===!1?0:t.children.indexOf(e))+a);let o=a.length+1;(i===`tab`||i===`mixed`&&(t&&t.type===`list`&&t.spread||e.spread))&&(o=Math.ceil(o/4)*4);let s=n.createTracker(r);s.move(a+` `.repeat(o-a.length)),s.shift(o);let c=n.enter(`listItem`),l=n.indentLines(n.containerFlow(e,s.current()),u);return c(),l;function u(e,t,n){return t?(n?``:` `.repeat(o))+e:(n?a:a+` `.repeat(o-a.length))+e}}function _s(e,t,n,r){let i=n.enter(`paragraph`),a=n.enter(`phrasing`),o=n.containerPhrasing(e,r);return a(),i(),o}var vs=li([`break`,`delete`,`emphasis`,`footnote`,`footnoteReference`,`image`,`imageReference`,`inlineCode`,`inlineMath`,`link`,`linkReference`,`mdxJsxTextElement`,`mdxTextExpression`,`strong`,`text`,`textDirective`]);function ys(e,t,n,r){return(e.children.some(function(e){return vs(e)})?n.containerPhrasing:n.containerFlow).call(n,e,r)}function bs(e){let t=e.options.strong||`*`;if(t!==`*`&&t!==`_`)throw Error("Cannot serialize strong with `"+t+"` for `options.strong`, expected `*`, or `_`");return t}xs.peek=Ss;function xs(e,t,n,r){let i=bs(n),a=n.enter(`strong`),o=n.createTracker(r),s=o.move(i+i),c=o.move(n.containerPhrasing(e,{after:i,before:s,...o.current()})),l=c.charCodeAt(0),u=Ko(r.before.charCodeAt(r.before.length-1),l,i);u.inside&&(c=Go(l)+c.slice(1));let d=c.charCodeAt(c.length-1),f=Ko(r.after.charCodeAt(0),d,i);f.inside&&(c=c.slice(0,-1)+Go(d));let p=o.move(i+i);return a(),n.attentionEncodeSurroundingInfo={after:f.outside,before:u.outside},s+c+p}function Ss(e,t,n){return n.options.strong||`*`}function Cs(e,t,n,r){return n.safe(e.value,r)}function ws(e){let t=e.options.ruleRepetition||3;if(t<3)throw Error("Cannot serialize rules with repetition `"+t+"` for `options.ruleRepetition`, expected `3` or more");return t}function Ts(e,t,n){let r=(ps(n)+(n.options.ruleSpaces?` `:``)).repeat(ws(n));return n.options.ruleSpaces?r.slice(0,-1):r}var Es={blockquote:Mo,break:Io,code:Bo,definition:Uo,emphasis:qo,hardBreak:Io,heading:Xo,html:Zo,image:$o,imageReference:ts,inlineCode:rs,link:os,linkReference:cs,list:ms,listItem:gs,paragraph:_s,root:ys,strong:xs,text:Cs,thematicBreak:Ts};function Ds(){return{enter:{table:Os,tableData:Ms,tableHeader:Ms,tableRow:As},exit:{codeText:Ns,table:ks,tableData:js,tableHeader:js,tableRow:js}}}function Os(e){let t=e._align;this.enter({type:`table`,align:t.map(function(e){return e===`none`?null:e}),children:[]},e),this.data.inTable=!0}function ks(e){this.exit(e),this.data.inTable=void 0}function As(e){this.enter({type:`tableRow`,children:[]},e)}function js(e){this.exit(e)}function Ms(e){this.enter({type:`tableCell`,children:[]},e)}function Ns(e){let t=this.resume();this.data.inTable&&(t=t.replace(/\\([\\|])/g,Ps));let n=this.stack[this.stack.length-1];n.type,n.value=t,this.exit(e)}function Ps(e,t){return t===`|`?t:e}function Fs(e){let t=e||{},n=t.tableCellPadding,r=t.tablePipeAlign,i=t.stringLength,a=n?` `:`|`;return{unsafe:[{character:`\r`,inConstruct:`tableCell`},{character:`
|
|
28
28
|
`,inConstruct:`tableCell`},{atBreak:!0,character:`|`,after:`[ :-]`},{character:`|`,inConstruct:`tableCell`},{atBreak:!0,character:`:`,after:`-`},{atBreak:!0,character:`-`,after:`[:|-]`}],handlers:{inlineCode:f,table:o,tableCell:c,tableRow:s}};function o(e,t,n,r){return l(u(e,n,r),e.align)}function s(e,t,n,r){let i=l([d(e,n,r)]);return i.slice(0,i.indexOf(`
|
|
29
29
|
`))}function c(e,t,n,r){let i=n.enter(`tableCell`),o=n.enter(`phrasing`),s=n.containerPhrasing(e,{...r,before:a,after:a});return o(),i(),s}function l(e,t){return ko(e,{align:t,alignDelimiters:r,padding:n,stringLength:i})}function u(e,t,n){let r=e.children,i=-1,a=[],o=t.enter(`table`);for(;++i<r.length;)a[i]=d(r[i],t,n);return o(),a}function d(e,t,n){let r=e.children,i=-1,a=[],o=t.enter(`tableRow`);for(;++i<r.length;)a[i]=c(r[i],e,t,n);return o(),a}function f(e,t,n){let r=Es.inlineCode(e,t,n);return n.stack.includes(`tableCell`)&&(r=r.replace(/\|/g,`\\$&`)),r}}function Is(){return{exit:{taskListCheckValueChecked:Rs,taskListCheckValueUnchecked:Rs,paragraph:zs}}}function Ls(){return{unsafe:[{atBreak:!0,character:`-`,after:`[:|-]`}],handlers:{listItem:Bs}}}function Rs(e){let t=this.stack[this.stack.length-2];t.type,t.checked=e.type===`taskListCheckValueChecked`}function zs(e){let t=this.stack[this.stack.length-2];if(t&&t.type===`listItem`&&typeof t.checked==`boolean`){let e=this.stack[this.stack.length-1];e.type;let n=e.children[0];if(n&&n.type===`text`){let r=t.children,i=-1,a;for(;++i<r.length;){let e=r[i];if(e.type===`paragraph`){a=e;break}}a===e&&(n.value=n.value.slice(1),n.value.length===0?e.children.shift():e.position&&n.position&&typeof n.position.start.offset==`number`&&(n.position.start.column++,n.position.start.offset++,e.position.start=Object.assign({},n.position.start)))}}this.exit(e)}function Bs(e,t,n,r){let i=e.children[0],a=typeof e.checked==`boolean`&&i&&i.type===`paragraph`,o=`[`+(e.checked?`x`:` `)+`] `,s=n.createTracker(r);a&&s.move(o);let c=Es.listItem(e,t,n,{...r,...s.current()});return a&&(c=c.replace(/^(?:[*+-]|\d+\.)([\r\n]| {1,3})/,l)),c;function l(e){return e+o}}function Vs(){return[Ka(),_o(),So(),Ds(),Is()]}function Hs(e){return{extensions:[qa(),vo(e),Co(),Fs(e),Ls()]}}var Us={tokenize:ec,partial:!0},Ws={tokenize:tc,partial:!0},Gs={tokenize:nc,partial:!0},Ks={tokenize:rc,partial:!0},qs={tokenize:ic,partial:!0},Js={name:`wwwAutolink`,tokenize:Qs,previous:ac},Ys={name:`protocolAutolink`,tokenize:$s,previous:oc},X={name:`emailAutolink`,tokenize:Zs,previous:sc},Z={};function Xs(){return{text:Z}}for(var Q=48;Q<123;)Z[Q]=X,Q++,Q===58?Q=65:Q===91&&(Q=97);Z[43]=X,Z[45]=X,Z[46]=X,Z[95]=X,Z[72]=[X,Ys],Z[104]=[X,Ys],Z[87]=[X,Js],Z[119]=[X,Js];function Zs(e,t,n){let r=this,i,a;return o;function o(t){return!cc(t)||!sc.call(r,r.previous)||lc(r.events)?n(t):(e.enter(`literalAutolink`),e.enter(`literalAutolinkEmail`),s(t))}function s(t){return cc(t)?(e.consume(t),s):t===64?(e.consume(t),c):n(t)}function c(t){return t===46?e.check(qs,u,l)(t):t===45||t===95||R(t)?(a=!0,e.consume(t),c):u(t)}function l(t){return e.consume(t),i=!0,c}function u(o){return a&&i&&L(r.previous)?(e.exit(`literalAutolinkEmail`),e.exit(`literalAutolink`),t(o)):n(o)}}function Qs(e,t,n){let r=this;return i;function i(t){return t!==87&&t!==119||!ac.call(r,r.previous)||lc(r.events)?n(t):(e.enter(`literalAutolink`),e.enter(`literalAutolinkWww`),e.check(Us,e.attempt(Ws,e.attempt(Gs,a),n),n)(t))}function a(n){return e.exit(`literalAutolinkWww`),e.exit(`literalAutolink`),t(n)}}function $s(e,t,n){let r=this,i=``,a=!1;return o;function o(t){return(t===72||t===104)&&oc.call(r,r.previous)&&!lc(r.events)?(e.enter(`literalAutolink`),e.enter(`literalAutolinkHttp`),i+=String.fromCodePoint(t),e.consume(t),s):n(t)}function s(t){if(L(t)&&i.length<5)return i+=String.fromCodePoint(t),e.consume(t),s;if(t===58){let n=i.toLowerCase();if(n===`http`||n===`https`)return e.consume(t),c}return n(t)}function c(t){return t===47?(e.consume(t),a?l:(a=!0,c)):n(t)}function l(t){return t===null||ze(t)||B(t)||H(t)||Ue(t)?n(t):e.attempt(Ws,e.attempt(Gs,u),n)(t)}function u(n){return e.exit(`literalAutolinkHttp`),e.exit(`literalAutolink`),t(n)}}function ec(e,t,n){let r=0;return i;function i(t){return(t===87||t===119)&&r<3?(r++,e.consume(t),i):t===46&&r===3?(e.consume(t),a):n(t)}function a(e){return e===null?n(e):t(e)}}function tc(e,t,n){let r,i,a;return o;function o(t){return t===46||t===95?e.check(Ks,c,s)(t):t===null||B(t)||H(t)||t!==45&&Ue(t)?c(t):(a=!0,e.consume(t),o)}function s(t){return t===95?r=!0:(i=r,r=void 0),e.consume(t),o}function c(e){return i||r||!a?n(e):t(e)}}function nc(e,t){let n=0,r=0;return i;function i(o){return o===40?(n++,e.consume(o),i):o===41&&r<n?a(o):o===33||o===34||o===38||o===39||o===41||o===42||o===44||o===46||o===58||o===59||o===60||o===63||o===93||o===95||o===126?e.check(Ks,t,a)(o):o===null||B(o)||H(o)?t(o):(e.consume(o),i)}function a(t){return t===41&&r++,e.consume(t),i}}function rc(e,t,n){return r;function r(o){return o===33||o===34||o===39||o===41||o===42||o===44||o===46||o===58||o===59||o===63||o===95||o===126?(e.consume(o),r):o===38?(e.consume(o),a):o===93?(e.consume(o),i):o===60||o===null||B(o)||H(o)?t(o):n(o)}function i(e){return e===null||e===40||e===91||B(e)||H(e)?t(e):r(e)}function a(e){return L(e)?o(e):n(e)}function o(t){return t===59?(e.consume(t),r):L(t)?(e.consume(t),o):n(t)}}function ic(e,t,n){return r;function r(t){return e.consume(t),i}function i(e){return R(e)?n(e):t(e)}}function ac(e){return e===null||e===40||e===42||e===95||e===91||e===93||e===126||B(e)}function oc(e){return!L(e)}function sc(e){return!(e===47||cc(e))}function cc(e){return e===43||e===45||e===46||e===95||R(e)}function lc(e){let t=e.length,n=!1;for(;t--;){let r=e[t][1];if((r.type===`labelLink`||r.type===`labelImage`)&&!r._balanced){n=!0;break}if(r._gfmAutolinkLiteralWalkedInto){n=!1;break}}return e.length>0&&!n&&(e[e.length-1][1]._gfmAutolinkLiteralWalkedInto=!0),n}var uc={tokenize:vc,partial:!0};function dc(){return{document:{91:{name:`gfmFootnoteDefinition`,tokenize:hc,continuation:{tokenize:gc},exit:_c}},text:{91:{name:`gfmFootnoteCall`,tokenize:mc},93:{name:`gfmPotentialFootnoteCall`,add:`after`,tokenize:fc,resolveTo:pc}}}}function fc(e,t,n){let r=this,i=r.events.length,a=r.parser.gfmFootnotes||(r.parser.gfmFootnotes=[]),o;for(;i--;){let e=r.events[i][1];if(e.type===`labelImage`){o=e;break}if(e.type===`gfmFootnoteCall`||e.type===`labelLink`||e.type===`label`||e.type===`image`||e.type===`link`)break}return s;function s(i){if(!o||!o._balanced)return n(i);let s=I(r.sliceSerialize({start:o.end,end:r.now()}));return s.codePointAt(0)!==94||!a.includes(s.slice(1))?n(i):(e.enter(`gfmFootnoteCallLabelMarker`),e.consume(i),e.exit(`gfmFootnoteCallLabelMarker`),t(i))}}function pc(e,t){let n=e.length;for(;n--;)if(e[n][1].type===`labelImage`&&e[n][0]===`enter`){e[n][1];break}e[n+1][1].type=`data`,e[n+3][1].type=`gfmFootnoteCallLabelMarker`;let r={type:`gfmFootnoteCall`,start:Object.assign({},e[n+3][1].start),end:Object.assign({},e[e.length-1][1].end)},i={type:`gfmFootnoteCallMarker`,start:Object.assign({},e[n+3][1].end),end:Object.assign({},e[n+3][1].end)};i.end.column++,i.end.offset++,i.end._bufferIndex++;let a={type:`gfmFootnoteCallString`,start:Object.assign({},i.end),end:Object.assign({},e[e.length-1][1].start)},o={type:`chunkString`,contentType:`string`,start:Object.assign({},a.start),end:Object.assign({},a.end)},s=[e[n+1],e[n+2],[`enter`,r,t],e[n+3],e[n+4],[`enter`,i,t],[`exit`,i,t],[`enter`,a,t],[`enter`,o,t],[`exit`,o,t],[`exit`,a,t],e[e.length-2],e[e.length-1],[`exit`,r,t]];return e.splice(n,e.length-n+1,...s),e}function mc(e,t,n){let r=this,i=r.parser.gfmFootnotes||(r.parser.gfmFootnotes=[]),a=0,o;return s;function s(t){return e.enter(`gfmFootnoteCall`),e.enter(`gfmFootnoteCallLabelMarker`),e.consume(t),e.exit(`gfmFootnoteCallLabelMarker`),c}function c(t){return t===94?(e.enter(`gfmFootnoteCallMarker`),e.consume(t),e.exit(`gfmFootnoteCallMarker`),e.enter(`gfmFootnoteCallString`),e.enter(`chunkString`).contentType=`string`,l):n(t)}function l(s){if(a>999||s===93&&!o||s===null||s===91||B(s))return n(s);if(s===93){e.exit(`chunkString`);let a=e.exit(`gfmFootnoteCallString`);return i.includes(I(r.sliceSerialize(a)))?(e.enter(`gfmFootnoteCallLabelMarker`),e.consume(s),e.exit(`gfmFootnoteCallLabelMarker`),e.exit(`gfmFootnoteCall`),t):n(s)}return B(s)||(o=!0),a++,e.consume(s),s===92?u:l}function u(t){return t===91||t===92||t===93?(e.consume(t),a++,l):l(t)}}function hc(e,t,n){let r=this,i=r.parser.gfmFootnotes||(r.parser.gfmFootnotes=[]),a,o=0,s;return c;function c(t){return e.enter(`gfmFootnoteDefinition`)._container=!0,e.enter(`gfmFootnoteDefinitionLabel`),e.enter(`gfmFootnoteDefinitionLabelMarker`),e.consume(t),e.exit(`gfmFootnoteDefinitionLabelMarker`),l}function l(t){return t===94?(e.enter(`gfmFootnoteDefinitionMarker`),e.consume(t),e.exit(`gfmFootnoteDefinitionMarker`),e.enter(`gfmFootnoteDefinitionLabelString`),e.enter(`chunkString`).contentType=`string`,u):n(t)}function u(t){if(o>999||t===93&&!s||t===null||t===91||B(t))return n(t);if(t===93){e.exit(`chunkString`);let n=e.exit(`gfmFootnoteDefinitionLabelString`);return a=I(r.sliceSerialize(n)),e.enter(`gfmFootnoteDefinitionLabelMarker`),e.consume(t),e.exit(`gfmFootnoteDefinitionLabelMarker`),e.exit(`gfmFootnoteDefinitionLabel`),f}return B(t)||(s=!0),o++,e.consume(t),t===92?d:u}function d(t){return t===91||t===92||t===93?(e.consume(t),o++,u):u(t)}function f(t){return t===58?(e.enter(`definitionMarker`),e.consume(t),e.exit(`definitionMarker`),i.includes(a)||i.push(a),W(e,p,`gfmFootnoteDefinitionWhitespace`)):n(t)}function p(e){return t(e)}}function gc(e,t,n){return e.check(at,t,e.attempt(uc,t,n))}function _c(e){e.exit(`gfmFootnoteDefinition`)}function vc(e,t,n){let r=this;return W(e,i,`gfmFootnoteDefinitionIndent`,5);function i(e){let i=r.events[r.events.length-1];return i&&i[1].type===`gfmFootnoteDefinitionIndent`&&i[2].sliceSerialize(i[1],!0).length===4?t(e):n(e)}}function yc(e){let t=(e||{}).singleTilde,n={name:`strikethrough`,tokenize:i,resolveAll:r};return t??=!0,{text:{126:n},insideSpan:{null:[n]},attentionMarkers:{null:[126]}};function r(e,t){let n=-1;for(;++n<e.length;)if(e[n][0]===`enter`&&e[n][1].type===`strikethroughSequenceTemporary`&&e[n][1]._close){let r=n;for(;r--;)if(e[r][0]===`exit`&&e[r][1].type===`strikethroughSequenceTemporary`&&e[r][1]._open&&e[n][1].end.offset-e[n][1].start.offset===e[r][1].end.offset-e[r][1].start.offset){e[n][1].type=`strikethroughSequence`,e[r][1].type=`strikethroughSequence`;let i={type:`strikethrough`,start:Object.assign({},e[r][1].start),end:Object.assign({},e[n][1].end)},a={type:`strikethroughText`,start:Object.assign({},e[r][1].end),end:Object.assign({},e[n][1].start)},o=[[`enter`,i,t],[`enter`,e[r][1],t],[`exit`,e[r][1],t],[`enter`,a,t]],s=t.parser.constructs.insideSpan.null;s&&P(o,o.length,0,Qe(s,e.slice(r+1,n),t)),P(o,o.length,0,[[`exit`,a,t],[`enter`,e[n][1],t],[`exit`,e[n][1],t],[`exit`,i,t]]),P(e,r-1,n-r+3,o),n=r+o.length-2;break}}for(n=-1;++n<e.length;)e[n][1].type===`strikethroughSequenceTemporary`&&(e[n][1].type=`data`);return e}function i(e,n,r){let i=this.previous,a=this.events,o=0;return s;function s(t){return i===126&&a[a.length-1][1].type!==`characterEscape`?r(t):(e.enter(`strikethroughSequenceTemporary`),c(t))}function c(a){let s=Ze(i);if(a===126)return o>1?r(a):(e.consume(a),o++,c);if(o<2&&!t)return r(a);let l=e.exit(`strikethroughSequenceTemporary`),u=Ze(a);return l._open=!u||u===2&&!!s,l._close=!s||s===2&&!!u,n(a)}}}var bc=class{constructor(){this.map=[]}add(e,t,n){xc(this,e,t,n)}consume(e){if(this.map.sort(function(e,t){return e[0]-t[0]}),this.map.length===0)return;let t=this.map.length,n=[];for(;t>0;)--t,n.push(e.slice(this.map[t][0]+this.map[t][1]),this.map[t][2]),e.length=this.map[t][0];n.push(e.slice()),e.length=0;let r=n.pop();for(;r;){for(let t of r)e.push(t);r=n.pop()}this.map.length=0}};function xc(e,t,n,r){let i=0;if(!(n===0&&r.length===0)){for(;i<e.map.length;){if(e.map[i][0]===t){e.map[i][1]+=n,e.map[i][2].push(...r);return}i+=1}e.map.push([t,n,r])}}function Sc(e,t){let n=!1,r=[];for(;t<e.length;){let i=e[t];if(n){if(i[0]===`enter`)i[1].type===`tableContent`&&r.push(e[t+1][1].type===`tableDelimiterMarker`?`left`:`none`);else if(i[1].type===`tableContent`){if(e[t-1][1].type===`tableDelimiterMarker`){let e=r.length-1;r[e]=r[e]===`left`?`center`:`right`}}else if(i[1].type===`tableDelimiterRow`)break}else i[0]===`enter`&&i[1].type===`tableDelimiterRow`&&(n=!0);t+=1}return r}function Cc(){return{flow:{null:{name:`table`,tokenize:wc,resolveAll:Tc}}}}function wc(e,t,n){let r=this,i=0,a=0,o;return s;function s(e){let t=r.events.length-1;for(;t>-1;){let e=r.events[t][1].type;if(e===`lineEnding`||e===`linePrefix`)t--;else break}let i=t>-1?r.events[t][1].type:null,a=i===`tableHead`||i===`tableRow`?S:c;return a===S&&r.parser.lazy[r.now().line]?n(e):a(e)}function c(t){return e.enter(`tableHead`),e.enter(`tableRow`),l(t)}function l(e){return e===124?u(e):(o=!0,a+=1,u(e))}function u(t){return t===null?n(t):z(t)?a>1?(a=0,r.interrupt=!0,e.exit(`tableRow`),e.enter(`lineEnding`),e.consume(t),e.exit(`lineEnding`),p):n(t):V(t)?W(e,u,`whitespace`)(t):(a+=1,o&&(o=!1,i+=1),t===124?(e.enter(`tableCellDivider`),e.consume(t),e.exit(`tableCellDivider`),o=!0,u):(e.enter(`data`),d(t)))}function d(t){return t===null||t===124||B(t)?(e.exit(`data`),u(t)):(e.consume(t),t===92?f:d)}function f(t){return t===92||t===124?(e.consume(t),d):d(t)}function p(t){return r.interrupt=!1,r.parser.lazy[r.now().line]?n(t):(e.enter(`tableDelimiterRow`),o=!1,V(t)?W(e,m,`linePrefix`,r.parser.constructs.disable.null.includes(`codeIndented`)?void 0:4)(t):m(t))}function m(t){return t===45||t===58?g(t):t===124?(o=!0,e.enter(`tableCellDivider`),e.consume(t),e.exit(`tableCellDivider`),h):x(t)}function h(t){return V(t)?W(e,g,`whitespace`)(t):g(t)}function g(t){return t===58?(a+=1,o=!0,e.enter(`tableDelimiterMarker`),e.consume(t),e.exit(`tableDelimiterMarker`),_):t===45?(a+=1,_(t)):t===null||z(t)?b(t):x(t)}function _(t){return t===45?(e.enter(`tableDelimiterFiller`),v(t)):x(t)}function v(t){return t===45?(e.consume(t),v):t===58?(o=!0,e.exit(`tableDelimiterFiller`),e.enter(`tableDelimiterMarker`),e.consume(t),e.exit(`tableDelimiterMarker`),y):(e.exit(`tableDelimiterFiller`),y(t))}function y(t){return V(t)?W(e,b,`whitespace`)(t):b(t)}function b(n){return n===124?m(n):n===null||z(n)?!o||i!==a?x(n):(e.exit(`tableDelimiterRow`),e.exit(`tableHead`),t(n)):x(n)}function x(e){return n(e)}function S(t){return e.enter(`tableRow`),C(t)}function C(n){return n===124?(e.enter(`tableCellDivider`),e.consume(n),e.exit(`tableCellDivider`),C):n===null||z(n)?(e.exit(`tableRow`),t(n)):V(n)?W(e,C,`whitespace`)(n):(e.enter(`data`),w(n))}function w(t){return t===null||t===124||B(t)?(e.exit(`data`),C(t)):(e.consume(t),t===92?T:w)}function T(t){return t===92||t===124?(e.consume(t),w):w(t)}}function Tc(e,t){let n=-1,r=!0,i=0,a=[0,0,0,0],o=[0,0,0,0],s=!1,c=0,l,u,d,f=new bc;for(;++n<e.length;){let p=e[n],m=p[1];p[0]===`enter`?m.type===`tableHead`?(s=!1,c!==0&&(Dc(f,t,c,l,u),u=void 0,c=0),l={type:`table`,start:Object.assign({},m.start),end:Object.assign({},m.end)},f.add(n,0,[[`enter`,l,t]])):m.type===`tableRow`||m.type===`tableDelimiterRow`?(r=!0,d=void 0,a=[0,0,0,0],o=[0,n+1,0,0],s&&(s=!1,u={type:`tableBody`,start:Object.assign({},m.start),end:Object.assign({},m.end)},f.add(n,0,[[`enter`,u,t]])),i=m.type===`tableDelimiterRow`?2:u?3:1):i&&(m.type===`data`||m.type===`tableDelimiterMarker`||m.type===`tableDelimiterFiller`)?(r=!1,o[2]===0&&(a[1]!==0&&(o[0]=o[1],d=Ec(f,t,a,i,void 0,d),a=[0,0,0,0]),o[2]=n)):m.type===`tableCellDivider`&&(r?r=!1:(a[1]!==0&&(o[0]=o[1],d=Ec(f,t,a,i,void 0,d)),a=o,o=[a[1],n,0,0])):m.type===`tableHead`?(s=!0,c=n):m.type===`tableRow`||m.type===`tableDelimiterRow`?(c=n,a[1]===0?o[1]!==0&&(d=Ec(f,t,o,i,n,d)):(o[0]=o[1],d=Ec(f,t,a,i,n,d)),i=0):i&&(m.type===`data`||m.type===`tableDelimiterMarker`||m.type===`tableDelimiterFiller`)&&(o[3]=n)}for(c!==0&&Dc(f,t,c,l,u),f.consume(t.events),n=-1;++n<t.events.length;){let e=t.events[n];e[0]===`enter`&&e[1].type===`table`&&(e[1]._align=Sc(t.events,n))}return e}function Ec(e,t,n,r,i,a){let o=r===1?`tableHeader`:r===2?`tableDelimiter`:`tableData`;n[0]!==0&&(a.end=Object.assign({},$(t.events,n[0])),e.add(n[0],0,[[`exit`,a,t]]));let s=$(t.events,n[1]);if(a={type:o,start:Object.assign({},s),end:Object.assign({},s)},e.add(n[1],0,[[`enter`,a,t]]),n[2]!==0){let i=$(t.events,n[2]),a=$(t.events,n[3]),o={type:`tableContent`,start:Object.assign({},i),end:Object.assign({},a)};if(e.add(n[2],0,[[`enter`,o,t]]),r!==2){let r=t.events[n[2]],i=t.events[n[3]];if(r[1].end=Object.assign({},i[1].end),r[1].type=`chunkText`,r[1].contentType=`text`,n[3]>n[2]+1){let t=n[2]+1,r=n[3]-n[2]-1;e.add(t,r,[])}}e.add(n[3]+1,0,[[`exit`,o,t]])}return i!==void 0&&(a.end=Object.assign({},$(t.events,i)),e.add(i,0,[[`exit`,a,t]]),a=void 0),a}function Dc(e,t,n,r,i){let a=[],o=$(t.events,n);i&&(i.end=Object.assign({},o),a.push([`exit`,i,t])),r.end=Object.assign({},o),a.push([`exit`,r,t]),e.add(n+1,0,a)}function $(e,t){let n=e[t],r=n[0]===`enter`?`start`:`end`;return n[1][r]}var Oc={name:`tasklistCheck`,tokenize:Ac};function kc(){return{text:{91:Oc}}}function Ac(e,t,n){let r=this;return i;function i(t){return r.previous!==null||!r._gfmTasklistFirstContentOfListItem?n(t):(e.enter(`taskListCheck`),e.enter(`taskListCheckMarker`),e.consume(t),e.exit(`taskListCheckMarker`),a)}function a(t){return B(t)?(e.enter(`taskListCheckValueUnchecked`),e.consume(t),e.exit(`taskListCheckValueUnchecked`),o):t===88||t===120?(e.enter(`taskListCheckValueChecked`),e.consume(t),e.exit(`taskListCheckValueChecked`),o):n(t)}function o(t){return t===93?(e.enter(`taskListCheckMarker`),e.consume(t),e.exit(`taskListCheckMarker`),e.exit(`taskListCheck`),s):n(t)}function s(r){return z(r)?t(r):V(r)?e.check({tokenize:jc},t,n)(r):n(r)}}function jc(e,t,n){return W(e,r,`whitespace`);function r(e){return e===null?n(e):t(e)}}function Mc(e){return Pe([Xs(),dc(),yc(e),Cc(),kc()])}var Nc={};function Pc(e){let t=this,n=e||Nc,r=t.data(),i=r.micromarkExtensions||=[],a=r.fromMarkdownExtensions||=[],o=r.toMarkdownExtensions||=[];i.push(Mc(n)),a.push(Vs()),o.push(Hs(n))}export{_a as i,Ra as n,Sa as r,Pc as t};
|
|
30
|
-
//# sourceMappingURL=lib-
|
|
30
|
+
//# sourceMappingURL=lib-BvrbNA2I.js.map
|