@cursor/july 0.1.93 → 0.1.94
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/AGENTS.md +8 -20
- package/README.md +4 -26
- package/dist/channels/slack/attachments.js +2 -2
- package/dist/channels/slack/dispatch.d.ts +0 -7
- package/dist/channels/slack/dispatch.d.ts.map +1 -1
- package/dist/channels/slack/dispatch.js +4 -7
- package/dist/channels/slack/eval-directive.d.ts +5 -12
- package/dist/channels/slack/eval-directive.d.ts.map +1 -1
- package/dist/channels/slack/eval-directive.js +8 -19
- package/dist/channels/slack/index.d.ts +0 -6
- package/dist/channels/slack/index.d.ts.map +1 -1
- package/dist/channels/slack/index.js +0 -6
- package/dist/channels/slack/setup.d.ts +4 -4
- package/dist/channels/slack/setup.d.ts.map +1 -1
- package/dist/channels/slack/setup.js +8 -15
- package/dist/channels/slack/slack-channel.d.ts +6 -13
- package/dist/channels/slack/slack-channel.d.ts.map +1 -1
- package/dist/channels/slack/slack-channel.js +15 -101
- package/dist/channels/slack/types.d.ts +12 -79
- package/dist/channels/slack/types.d.ts.map +1 -1
- package/dist/channels/slack/types.js +1 -15
- package/dist/client.d.ts +14 -0
- package/dist/client.d.ts.map +1 -0
- package/dist/client.js +12 -0
- package/dist/connections.d.ts +18 -9
- package/dist/connections.d.ts.map +1 -1
- package/dist/connections.js +17 -8
- package/dist/docs/404.html +2 -2
- package/dist/docs/ab.html +4 -4
- package/dist/docs/assets/{app.CjWU-x0z.js → app.CFDEas4I.js} +1 -1
- package/dist/docs/assets/chunks/@localSearchIndexroot.DU3U2Ij2.js +1 -0
- package/dist/docs/assets/chunks/{VPLocalSearchBox.Cxy8ySFQ.js → VPLocalSearchBox.B1IIYpYS.js} +1 -1
- package/dist/docs/assets/chunks/{theme.Dvq1Bktu.js → theme.Ct4NSiLm.js} +2 -2
- package/dist/docs/assets/concepts.md.lwAgBIMI.js +1 -0
- package/dist/docs/assets/{deployment.md.DoLFAzfm.js → deployment.md.D9msOFOW.js} +3 -8
- package/dist/docs/assets/{deployment.md.DoLFAzfm.lean.js → deployment.md.D9msOFOW.lean.js} +1 -1
- package/dist/docs/assets/{guides_agent-to-agent.md.B3JIaAqz.js → guides_agent-to-agent.md.BDb0t1QV.js} +1 -1
- package/dist/docs/assets/guides_cloud-runtime.md.CkYbjnAX.js +9 -0
- package/dist/docs/assets/guides_cloud-runtime.md.CkYbjnAX.lean.js +1 -0
- package/dist/docs/assets/{guides_convert-automation.md.Bboisykk.js → guides_convert-automation.md.B4sjlodG.js} +1 -1
- package/dist/docs/assets/{guides_github.md.DqJhuaN1.js → guides_github.md.Cnh2mL4a.js} +1 -1
- package/dist/docs/assets/{guides_mcp-oauth.md.CJvrXtkN.js → guides_mcp-oauth.md.DPYmBCbV.js} +7 -9
- package/dist/docs/assets/{guides_mcp-oauth.md.CJvrXtkN.lean.js → guides_mcp-oauth.md.DPYmBCbV.lean.js} +1 -1
- package/dist/docs/assets/{guides_slack.md.mqeNKs84.js → guides_slack.md.C32HsdKk.js} +5 -11
- package/dist/docs/assets/guides_slack.md.C32HsdKk.lean.js +1 -0
- package/dist/docs/assets/index.md.DRakGHFe.js +5 -0
- package/dist/docs/assets/{index.md.B-lVR4wT.lean.js → index.md.DRakGHFe.lean.js} +1 -1
- package/dist/docs/assets/{quickstart.md.BrmfrrIr.js → quickstart.md.Nj_LjW_a.js} +1 -1
- package/dist/docs/assets/{reference_cli.md.D9KESDsD.js → reference_cli.md.Cw6_ICYG.js} +1 -1
- package/dist/docs/assets/{reference_connections.md.DB6SsN6U.js → reference_connections.md.BH8Oc0D0.js} +5 -5
- package/dist/docs/assets/{reference_connections.md.DB6SsN6U.lean.js → reference_connections.md.BH8Oc0D0.lean.js} +1 -1
- package/dist/docs/assets/{reference_hooks.md.BxN87gCw.js → reference_hooks.md.a8BJxMR5.js} +1 -1
- package/dist/docs/assets/reference_http-api.md.D89k1mdm.js +11 -0
- package/dist/docs/assets/reference_http-api.md.D89k1mdm.lean.js +1 -0
- package/dist/docs/assets/reference_project-layout.md.Bv4KOtlB.js +19 -0
- package/dist/docs/assets/{reference_skills.md.BFW9retM.js → reference_skills.md.8son6Hjm.js} +3 -3
- package/dist/docs/assets/{reference_subagents.md.Xoav0AII.js → reference_subagents.md.CfsIloPm.js} +1 -1
- package/dist/docs/assets/{reference_tools.md.DuKvkYWG.js → reference_tools.md.BHeXn2id.js} +3 -3
- package/dist/docs/assets/{reference_tools.md.DuKvkYWG.lean.js → reference_tools.md.BHeXn2id.lean.js} +1 -1
- package/dist/docs/assets/{templates_pr-autofixer.md.R4K_qytS.js → templates_pr-autofixer.md.DU7dQpor.js} +2 -2
- package/dist/docs/assets/{templates_pr-autofixer.md.R4K_qytS.lean.js → templates_pr-autofixer.md.DU7dQpor.lean.js} +1 -1
- package/dist/docs/assets/{templates_security-reviewer.md.ByFyRta2.js → templates_security-reviewer.md.CTa7u_l1.js} +2 -2
- package/dist/docs/assets/{templates_security-reviewer.md.ByFyRta2.lean.js → templates_security-reviewer.md.CTa7u_l1.lean.js} +1 -1
- package/dist/docs/assets/troubleshooting.md.Ctv3T8C2.js +1 -0
- package/dist/docs/building-with-agents.html +4 -4
- package/dist/docs/concepts.html +5 -5
- package/dist/docs/concepts.md +1 -0
- package/dist/docs/deployment.html +7 -12
- package/dist/docs/deployment.md +1 -20
- package/dist/docs/design/agsh.md +406 -0
- package/dist/docs/evals.html +4 -4
- package/dist/docs/guides/agent-to-agent.html +6 -6
- package/dist/docs/guides/agent-to-agent.md +2 -2
- package/dist/docs/guides/cloud-runtime.html +6 -6
- package/dist/docs/guides/cloud-runtime.md +1 -0
- package/dist/docs/guides/convert-automation.html +6 -6
- package/dist/docs/guides/convert-automation.md +1 -1
- package/dist/docs/guides/github.html +6 -6
- package/dist/docs/guides/github.md +4 -4
- package/dist/docs/guides/human-in-the-loop.html +4 -4
- package/dist/docs/guides/mcp-oauth.html +11 -13
- package/dist/docs/guides/mcp-oauth.md +10 -18
- package/dist/docs/guides/opentelemetry.html +5 -5
- package/dist/docs/guides/slack.html +9 -15
- package/dist/docs/guides/slack.md +9 -46
- package/dist/docs/guides/webhooks.html +4 -4
- package/dist/docs/hashmap.json +1 -1
- package/dist/docs/hillclimbing.html +4 -4
- package/dist/docs/index.html +6 -6
- package/dist/docs/index.md +0 -28
- package/dist/docs/llms-full.txt +712 -2830
- package/dist/docs/llms.txt +2 -16
- package/dist/docs/quickstart.html +6 -6
- package/dist/docs/quickstart.md +2 -3
- package/dist/docs/reference/agent-config.html +4 -4
- package/dist/docs/reference/artifacts.html +4 -4
- package/dist/docs/reference/channels.html +4 -4
- package/dist/docs/reference/cli.html +6 -6
- package/dist/docs/reference/cli.md +2 -1
- package/dist/docs/reference/connections.html +9 -9
- package/dist/docs/reference/connections.md +15 -11
- package/dist/docs/reference/hooks.html +6 -6
- package/dist/docs/reference/hooks.md +2 -3
- package/dist/docs/reference/http-api.html +6 -6
- package/dist/docs/reference/http-api.md +8 -0
- package/dist/docs/reference/instructions.html +4 -4
- package/dist/docs/reference/playground.html +4 -4
- package/dist/docs/reference/project-layout.html +8 -6
- package/dist/docs/reference/project-layout.md +5 -1
- package/dist/docs/reference/prompt.html +4 -4
- package/dist/docs/reference/schedules.html +4 -4
- package/dist/docs/reference/sessions.html +4 -4
- package/dist/docs/reference/skills.html +7 -7
- package/dist/docs/reference/subagents.html +6 -6
- package/dist/docs/reference/subagents.md +2 -2
- package/dist/docs/reference/tools.html +7 -7
- package/dist/docs/reference/tools.md +19 -3
- package/dist/docs/scaffolding-agents.html +4 -4
- package/dist/docs/storage.html +4 -4
- package/dist/docs/templates/agentic-owners.html +4 -4
- package/dist/docs/templates/demo.html +4 -4
- package/dist/docs/templates/pr-autofixer.html +6 -6
- package/dist/docs/templates/pr-autofixer.md +4 -3
- package/dist/docs/templates/security-reviewer.html +5 -5
- package/dist/docs/templates/security-reviewer.md +2 -3
- package/dist/docs/templates/triage.html +4 -4
- package/dist/docs/troubleshooting.html +5 -5
- package/dist/docs/troubleshooting.md +2 -2
- package/dist/index.d.ts +1 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -1
- package/dist/internal/advertise-tools.d.ts +11 -0
- package/dist/internal/advertise-tools.d.ts.map +1 -1
- package/dist/internal/advertise-tools.js +47 -9
- package/dist/internal/cli-mcp-oauth.d.ts.map +1 -1
- package/dist/internal/cli-mcp-oauth.js +7 -4
- package/dist/internal/convert-automation/convert-workflow.d.ts.map +1 -1
- package/dist/internal/convert-automation/convert-workflow.js +26 -15
- package/dist/internal/convert-automation/slug.d.ts +0 -2
- package/dist/internal/convert-automation/slug.d.ts.map +1 -1
- package/dist/internal/convert-automation/slug.js +0 -8
- package/dist/internal/cursor/account-mcp.d.ts.map +1 -1
- package/dist/internal/cursor/account-mcp.js +5 -1
- package/dist/internal/discovery.d.ts.map +1 -1
- package/dist/internal/discovery.js +88 -13
- package/dist/internal/hosted-delivery.d.ts.map +1 -1
- package/dist/internal/hosted-delivery.js +22 -9
- package/dist/internal/mcp-endpoint.js +3 -3
- package/dist/internal/mcp-host.d.ts +8 -7
- package/dist/internal/mcp-host.d.ts.map +1 -1
- package/dist/internal/mcp-host.js +8 -7
- package/dist/internal/peer-connections.d.ts.map +1 -1
- package/dist/internal/peer-connections.js +5 -1
- package/dist/internal/playground/static.d.ts +0 -3
- package/dist/internal/playground/static.d.ts.map +1 -1
- package/dist/internal/resolved-connections.d.ts.map +1 -1
- package/dist/internal/resolved-connections.js +5 -7
- package/dist/internal/server.d.ts.map +1 -1
- package/dist/internal/server.js +113 -172
- package/dist/internal/session-engine.d.ts +45 -10
- package/dist/internal/session-engine.d.ts.map +1 -1
- package/dist/internal/session-engine.js +208 -65
- package/dist/internal/tool-catalog.d.ts +31 -0
- package/dist/internal/tool-catalog.d.ts.map +1 -0
- package/dist/internal/tool-catalog.js +67 -0
- package/dist/playground/assets/{index-D9MFzhNE.js → index-B3JCyigB.js} +1 -1
- package/dist/playground/index.html +1 -1
- package/dist/types.d.ts +72 -23
- package/dist/types.d.ts.map +1 -1
- package/dist/types.js +19 -0
- package/docs/README.md +0 -28
- package/docs/concepts.md +1 -0
- package/docs/deployment.md +1 -20
- package/docs/design/agsh.md +406 -0
- package/docs/guides/agent-to-agent.md +2 -2
- package/docs/guides/cloud-runtime.md +1 -0
- package/docs/guides/convert-automation.md +1 -1
- package/docs/guides/github.md +4 -4
- package/docs/guides/mcp-oauth.md +10 -18
- package/docs/guides/slack.md +10 -47
- package/docs/quickstart.md +2 -3
- package/docs/reference/cli.md +2 -1
- package/docs/reference/connections.md +15 -11
- package/docs/reference/hooks.md +2 -3
- package/docs/reference/http-api.md +8 -0
- package/docs/reference/project-layout.md +5 -1
- package/docs/reference/subagents.md +2 -2
- package/docs/reference/tools.md +19 -3
- package/docs/templates/pr-autofixer.md +4 -3
- package/docs/templates/security-reviewer.md +2 -3
- package/docs/troubleshooting.md +2 -2
- package/package.json +9 -2
- package/skills/create-agent/SKILL.md +6 -13
- package/skills/debug/SKILL.md +2 -4
- package/skills/evals/SKILL.md +1 -1
- package/skills/framework-map/SKILL.md +3 -2
- package/skills/mcp-auth/SKILL.md +10 -13
- package/skills/setup-slack/SKILL.md +21 -137
- package/src/channels/slack/attachments.ts +2 -2
- package/src/channels/slack/dispatch.ts +2 -16
- package/src/channels/slack/eval-directive.ts +8 -27
- package/src/channels/slack/index.ts +0 -6
- package/src/channels/slack/setup.ts +8 -15
- package/src/channels/slack/slack-channel.ts +14 -125
- package/src/channels/slack/types.ts +12 -96
- package/src/client.ts +23 -0
- package/src/connections.ts +20 -7
- package/src/index.ts +2 -0
- package/src/internal/advertise-tools.ts +45 -7
- package/src/internal/cli-mcp-oauth.ts +6 -4
- package/src/internal/convert-automation/convert-workflow.ts +29 -17
- package/src/internal/convert-automation/slug.ts +0 -9
- package/src/internal/cursor/account-mcp.ts +4 -1
- package/src/internal/discovery.ts +104 -13
- package/src/internal/fixtures/units-server.ts +52 -0
- package/src/internal/hosted-delivery.ts +60 -28
- package/src/internal/mcp-endpoint.ts +3 -3
- package/src/internal/mcp-host.ts +8 -7
- package/src/internal/peer-connections.ts +4 -1
- package/src/internal/playground/static.ts +1 -3
- package/src/internal/resolved-connections.ts +8 -10
- package/src/internal/server.ts +151 -251
- package/src/internal/session-engine.ts +254 -69
- package/src/internal/tool-catalog.ts +106 -0
- package/src/types.ts +90 -23
- package/templates/pr-autofixer/agent/channels/slack.ts +8 -2
- package/templates/triage/README.md +2 -1
- package/templates/triage/overlays/jira/agent/mcp-connections/tracker.ts +0 -1
- package/templates/triage/overlays/linear/agent/mcp-connections/tracker.ts +0 -1
- package/dist/channels/slack/cursor-account.d.ts +0 -87
- package/dist/channels/slack/cursor-account.d.ts.map +0 -1
- package/dist/channels/slack/cursor-account.js +0 -100
- package/dist/docs/assets/chunks/@localSearchIndexroot.ChpIC3Zy.js +0 -1
- package/dist/docs/assets/concepts.md.F6AiPorA.js +0 -1
- package/dist/docs/assets/example-agents_approval-buddy.md.DmezILPg.js +0 -10
- package/dist/docs/assets/example-agents_approval-buddy.md.DmezILPg.lean.js +0 -1
- package/dist/docs/assets/example-agents_benny.md.B0kwY7D_.js +0 -5
- package/dist/docs/assets/example-agents_benny.md.B0kwY7D_.lean.js +0 -1
- package/dist/docs/assets/example-agents_bugbot.md.BRGMi9O2.js +0 -11
- package/dist/docs/assets/example-agents_bugbot.md.BRGMi9O2.lean.js +0 -1
- package/dist/docs/assets/example-agents_codebase-wiki.md.BBNw9Ekr.js +0 -8
- package/dist/docs/assets/example-agents_codebase-wiki.md.BBNw9Ekr.lean.js +0 -1
- package/dist/docs/assets/example-agents_codeowners-review.md.Bfta-lBU.js +0 -8
- package/dist/docs/assets/example-agents_codeowners-review.md.Bfta-lBU.lean.js +0 -1
- package/dist/docs/assets/example-agents_concierge.md.BzB2b20R.js +0 -22
- package/dist/docs/assets/example-agents_concierge.md.BzB2b20R.lean.js +0 -1
- package/dist/docs/assets/example-agents_index.md.ChBp0AX6.js +0 -2
- package/dist/docs/assets/example-agents_index.md.ChBp0AX6.lean.js +0 -1
- package/dist/docs/assets/example-agents_knowledge-base.md.CrA85ig-.js +0 -11
- package/dist/docs/assets/example-agents_knowledge-base.md.CrA85ig-.lean.js +0 -1
- package/dist/docs/assets/example-agents_oncall.md.DK4XkYTd.js +0 -10
- package/dist/docs/assets/example-agents_oncall.md.DK4XkYTd.lean.js +0 -1
- package/dist/docs/assets/example-agents_security-reviewer.md.74pPpWYj.js +0 -19
- package/dist/docs/assets/example-agents_security-reviewer.md.74pPpWYj.lean.js +0 -1
- package/dist/docs/assets/example-agents_slack-agent.md.D7Kdj5BV.js +0 -5
- package/dist/docs/assets/example-agents_slack-agent.md.D7Kdj5BV.lean.js +0 -1
- package/dist/docs/assets/example-agents_weather-agent.md.CaGpmw3Y.js +0 -25
- package/dist/docs/assets/example-agents_weather-agent.md.CaGpmw3Y.lean.js +0 -1
- package/dist/docs/assets/guides_cloud-runtime.md.BnvjPiia.js +0 -9
- package/dist/docs/assets/guides_cloud-runtime.md.BnvjPiia.lean.js +0 -1
- package/dist/docs/assets/guides_slack.md.mqeNKs84.lean.js +0 -1
- package/dist/docs/assets/index.md.B-lVR4wT.js +0 -5
- package/dist/docs/assets/reference_http-api.md.C68BERYr.js +0 -11
- package/dist/docs/assets/reference_http-api.md.C68BERYr.lean.js +0 -1
- package/dist/docs/assets/reference_project-layout.md.WN9nwJht.js +0 -17
- package/dist/docs/assets/troubleshooting.md.vCWwvqcJ.js +0 -1
- package/dist/docs/example-agents/approval-buddy.html +0 -36
- package/dist/docs/example-agents/approval-buddy.md +0 -266
- package/dist/docs/example-agents/benny.html +0 -31
- package/dist/docs/example-agents/benny.md +0 -173
- package/dist/docs/example-agents/bugbot.html +0 -37
- package/dist/docs/example-agents/bugbot.md +0 -229
- package/dist/docs/example-agents/codebase-wiki.html +0 -34
- package/dist/docs/example-agents/codebase-wiki.md +0 -167
- package/dist/docs/example-agents/codeowners-review.html +0 -34
- package/dist/docs/example-agents/codeowners-review.md +0 -192
- package/dist/docs/example-agents/concierge.html +0 -48
- package/dist/docs/example-agents/concierge.md +0 -200
- package/dist/docs/example-agents/index.html +0 -28
- package/dist/docs/example-agents/index.md +0 -99
- package/dist/docs/example-agents/knowledge-base.html +0 -37
- package/dist/docs/example-agents/knowledge-base.md +0 -168
- package/dist/docs/example-agents/oncall.html +0 -36
- package/dist/docs/example-agents/oncall.md +0 -212
- package/dist/docs/example-agents/security-reviewer.html +0 -45
- package/dist/docs/example-agents/security-reviewer.md +0 -265
- package/dist/docs/example-agents/slack-agent.html +0 -31
- package/dist/docs/example-agents/slack-agent.md +0 -142
- package/dist/docs/example-agents/weather-agent.html +0 -51
- package/dist/docs/example-agents/weather-agent.md +0 -297
- package/dist/internal/cursor-slack-relay.d.ts +0 -96
- package/dist/internal/cursor-slack-relay.d.ts.map +0 -1
- package/dist/internal/cursor-slack-relay.js +0 -176
- package/docs/example-agents/approval-buddy.md +0 -271
- package/docs/example-agents/benny.md +0 -178
- package/docs/example-agents/bugbot.md +0 -234
- package/docs/example-agents/codebase-wiki.md +0 -172
- package/docs/example-agents/codeowners-review.md +0 -197
- package/docs/example-agents/concierge.md +0 -205
- package/docs/example-agents/index.md +0 -104
- package/docs/example-agents/knowledge-base.md +0 -173
- package/docs/example-agents/oncall.md +0 -217
- package/docs/example-agents/security-reviewer.md +0 -270
- package/docs/example-agents/slack-agent.md +0 -147
- package/docs/example-agents/weather-agent.md +0 -302
- package/src/channels/slack/cursor-account.ts +0 -202
- package/src/internal/cursor-slack-relay.ts +0 -249
- /package/dist/docs/assets/{concepts.md.F6AiPorA.lean.js → concepts.md.lwAgBIMI.lean.js} +0 -0
- /package/dist/docs/assets/{guides_agent-to-agent.md.B3JIaAqz.lean.js → guides_agent-to-agent.md.BDb0t1QV.lean.js} +0 -0
- /package/dist/docs/assets/{guides_convert-automation.md.Bboisykk.lean.js → guides_convert-automation.md.B4sjlodG.lean.js} +0 -0
- /package/dist/docs/assets/{guides_github.md.DqJhuaN1.lean.js → guides_github.md.Cnh2mL4a.lean.js} +0 -0
- /package/dist/docs/assets/{quickstart.md.BrmfrrIr.lean.js → quickstart.md.Nj_LjW_a.lean.js} +0 -0
- /package/dist/docs/assets/{reference_cli.md.D9KESDsD.lean.js → reference_cli.md.Cw6_ICYG.lean.js} +0 -0
- /package/dist/docs/assets/{reference_hooks.md.BxN87gCw.lean.js → reference_hooks.md.a8BJxMR5.lean.js} +0 -0
- /package/dist/docs/assets/{reference_project-layout.md.WN9nwJht.lean.js → reference_project-layout.md.Bv4KOtlB.lean.js} +0 -0
- /package/dist/docs/assets/{reference_skills.md.BFW9retM.lean.js → reference_skills.md.8son6Hjm.lean.js} +0 -0
- /package/dist/docs/assets/{reference_subagents.md.Xoav0AII.lean.js → reference_subagents.md.CfsIloPm.lean.js} +0 -0
- /package/dist/docs/assets/{troubleshooting.md.vCWwvqcJ.lean.js → troubleshooting.md.Ctv3T8C2.lean.js} +0 -0
|
@@ -37,7 +37,7 @@ In order to be iterable, non-array objects must have a [Symbol.iterator]() metho
|
|
|
37
37
|
`);c=f.pop()||"";for(const h of f){if(r.signal.aborted)return;if(!h||!h.trim())continue;let g=null;try{g=JSON.parse(h)}catch{continue}g!==null&&(g.index!==void 0&&(this.lastIndex=g.index),this.handleEvent(g),PY.has(g.type)&&await new Promise(b=>requestAnimationFrame(()=>b(null))))}}}).catch(()=>{r.signal.aborted||this.scheduleReconnect(t,r)})}scheduleReconnect(t,n){n.signal.aborted||this.historyOnly||this.isCurrent(t)&&setTimeout(()=>{!this.isCurrent(t)||this.streamAbort!==n||this.startStream(t,this.lastIndex+1)},1e3)}async refreshSessionCost(t){try{const n=await this.api.sessionCost(t);if(!n.ok||n.body===null||this.state.current?.sessionId!==t)return;this.set({sessionCostUsd:n.body.source==="unavailable"?null:n.body.costUsd})}catch{}}selectSession(t){this.stopStream(),this.resetTranscript(),this.lastIndex=-1,this.state.traceEvents=[];const n=this.state.view==="evals"||this.state.view==="abs";if(this.set({localTrace:!1,current:{sessionId:t.sessionId,channelId:t.channelId,mode:t.mode,continuationToken:t.continuationToken,externalUrl:t.externalUrl||null,prUrl:t.prUrl||null},running:!!t.running,turnStartedAt:null,queued:[],composerDraft:null,barTitle:t.title||"Session",barId:t.sessionId,externalUrl:t.externalUrl||null,transcript:[],traceEvents:[],sessionCostUsd:null,chatPanelOpen:!0,evalNavReturn:!1}),this.syncSessionUrl(t.sessionId),(n||this.state.view==="overview")&&(this.setView("chat"),this.set({evalNavReturn:!1})),this.refreshSessions(),this.refreshSessionCost(t.sessionId),this.historyOnly){this.loadEventsSnapshot(t.sessionId);return}t.running?this.startStream(t.sessionId,0):this.loadEventsSnapshot(t.sessionId)}syncSessionUrl(t){try{const n=new URL(window.location.href);t?n.searchParams.set("sessionId",t):n.searchParams.delete("sessionId"),history.replaceState(null,"",n.toString())}catch{}}async loadEventsSnapshot(t){this.stopStream();try{const n=await this.api.eventsText(t);if(!n.ok){this.historyOnly?this.toast(`Could not load trace (${n.status})`):(this.toast(`Could not load trace (${n.status}) — falling back to stream`),this.startStream(t,0));return}const r=await n.text();this.ingestEventsCompact(Lv(r))}catch(n){this.toast(`Trace load failed: ${qY(n)}`),this.historyOnly||this.startStream(t,0)}}ingestEventsCompact(t){this.resetTranscript();for(const n of t)typeof n.index=="number"&&n.index>this.lastIndex&&(this.lastIndex=n.index),BY.has(n.type)&&this.applyChat(n);this.setRunning(this.hasOpenTools()),this.set({traceEvents:t.slice(),transcript:this.items.slice()})}deselectSession(){this.stopStream(),this.resetTranscript(),this.lastIndex=-1,this.set({current:null,localTrace:!1,running:!1,turnStartedAt:null,queued:[],composerDraft:null,transcript:[],traceEvents:[],sessionCostUsd:null,barTitle:"No session",barId:"",externalUrl:null,chatPanelOpen:!0,evalNavReturn:!1}),this.syncSessionUrl(null),this.state.embedded||this.setView("overview"),this.refreshSessions()}loadLocalTrace(t,n){this.stopStream(),this.resetTranscript(),this.lastIndex=-1;const r=Lv(t);if(r.length===0){this.toast("No session events found in that file."),this.deselectSession();return}const s=r[0].sessionId||"local-trace";this.set({current:null,localTrace:!0,running:!1,turnStartedAt:null,queued:[],composerDraft:null,barTitle:"Trace",barId:`${n||s} · ${r.length} events`,externalUrl:null,chatPanelOpen:!0}),this.setView("trace"),this.syncSessionUrl(null),this.ingestEventsCompact(r),this.toast(`Loaded ${r.length} events — Trace timeline ready`)}slashCommands(){return km(this.state.info?.channels)}hasReviewChannel(){return(this.state.info?.channels||[]).some(t=>t.id==="review")}shouldUseReview(t){return this.state.current===null&&this.hasReviewChannel()&&zk(t)}async sendMessage(t,n={}){const r=t.trim();if(!r||this.state.localTrace||this.historyOnly)return!1;const s=this.state.current;if(TY(r))return this.invokeSlashCommand(r);if(this.shouldUseReview(r))return this.invokeSlashCommand(`/review ${r}`);if(this.queueHeld=!1,s!==null&&this.state.running&&!n.force)return this.queueMessage(r),!0;if(s===null){this.setRunning(!0);const a=await this.api.createSession(r);return!a.ok||!a.body?(this.setRunning(!1),this.toast(`Create failed: ${Xn(a.body,160)}`),!1):(this.resetTranscript(),this.lastIndex=-1,this.state.traceEvents=[],this.set({localTrace:!1,current:{sessionId:a.body.sessionId,channelId:"http",mode:"chat",continuationToken:a.body.continuationToken},barTitle:"Session",barId:a.body.sessionId,externalUrl:null,transcript:[],traceEvents:[]}),this.syncSessionUrl(a.body.sessionId),this.startStream(a.body.sessionId,0),this.refreshSessions(),!0)}return this.setRunning(!0),this.beginDiscardStaleTurnBody(),this.streamAbort===null&&this.startStream(s.sessionId,this.lastIndex+1),this.postFollowUp(s,r,!0)}async postFollowUp(t,n,r){const s=await this.api.followUp(t.sessionId,n,t.continuationToken);if(s.ok&&s.body)return this.set({current:{...t,continuationToken:s.body.continuationToken}}),!0;if(s.body?.error==="stale_continuation_token"&&r){await this.refreshSessions();const a=this.state.current??t;return this.postFollowUp(a,n,!1)}return this.setRunning(!1),this.toast(`Send failed: ${Xn(s.body,160)}`),!1}queueMessage(t){this.set({queued:[...this.state.queued,{id:this.nextId("queued"),text:t}]})}removeQueued(t){this.set({queued:this.state.queued.filter(n=>n.id!==t)})}clearQueue(){this.set({queued:[]})}editQueued(t){const n=this.state.queued.find(r=>r.id===t);n!==void 0&&(this.removeQueued(t),this.set({composerDraft:n.text}))}consumeComposerDraft(){this.set({composerDraft:null})}setComposerDraft(t){this.set({composerDraft:t})}async sendQueuedNow(t){const n=this.state.queued.find(s=>s.id===t);if(n===void 0)return;this.removeQueued(t),this.queueHeld=!1,await this.sendMessage(n.text,{force:!0})||this.requeueFront(n)}requeueFront(t){this.set({queued:[t,...this.state.queued]}),this.queueHeld=!0}maybeFlushQueue(){if(this.flushingQueue||this.queueHeld)return;const{running:t,queued:n,localTrace:r,current:s}=this.state;if(t||r||this.historyOnly||s===null||n.length===0)return;const[a,...l]=n;a!==void 0&&(this.flushingQueue=!0,this.set({queued:l}),this.setRunning(!0),this.streamAbort===null&&this.startStream(s.sessionId,this.lastIndex+1),this.postFollowUp(s,a.text,!0).then(c=>{c||this.requeueFront(a)}).finally(()=>{this.flushingQueue=!1}))}async stopTurn(){const t=this.state.current?.sessionId;if(!t||this.state.localTrace||this.historyOnly||!this.state.running)return;this.state.queued.length>0&&(this.queueHeld=!0),this.beginDiscardStaleTurnBody(),this.stopStream(),this.setRunning(!1),this.assistantId&&(this.update(this.assistantId,{streaming:!1}),this.assistantId=null),this.reasoningId&&(this.update(this.reasoningId,{open:!1}),this.reasoningId=null),this.finalizeOpenTools(Date.now(),"(no result — turn interrupted)"),this.pushDivider("turn interrupted"),this.commitTranscript();const n=await this.api.stopSession(t);if(!n.ok){this.toast(`Stop failed: ${Xn(n.body,160)}`);return}this.refreshSessions()}async submitApproval(t,n){const r=this.state.current?.sessionId;if(!r||this.historyOnly)return;const s=await this.api.resolveApproval(r,t,n);s.ok||this.toast(`Approval failed: ${Xn(s.body,160)}`)}async dispatchSchedule(t){if(this.historyOnly)return;const n=await this.api.dispatchSchedule(t);if(!n.ok||!n.body){this.toast(`Dispatch failed: ${Xn(n.body,120)}`);return}await this.refreshSessions();const r=n.body.sessionIds?.[0],s=this.state.sessions.find(a=>a.sessionId===r);s&&this.selectSession(s)}async refreshEvalCases(){const t=await this.api.evalsList();if(!t.ok||!t.body){t.status!==0&&this.toast(`Could not list evals (${t.status}): ${Xn(t.body,120)}`);return}this.set({evalCases:t.body.evals??[],evalConfig:t.body.config??null})}async refreshEvalRuns(){const t=await this.api.evalsListRuns();if(!t.ok||t.body===null)return;const n=Array.isArray(t.body.runs)?t.body.runs:null;n!==null&&this.set({evalRuns:n})}async selectEvalRun(t){const n=t.trim();if(n==="")return;this.set({chatPanelOpen:!0});const r=this.state.evalRuns.find(a=>a.runId===n);if(r!==void 0&&r.status!=="running"){this.applyRestoredEvalRun(r),this.setView("evals");return}const s=await this.api.evalsRunStatus(n);if(!s.ok||s.body===null){this.toast(`Eval run not found: ${n}`);return}this.applyRestoredEvalRun(s.body),this.setView("evals"),this.refreshEvalRuns()}async openEvalRunInOverview(t){const n=t.trim();n!==""&&(this.setOverviewSection("runs",n),await this.selectEvalRun(n))}async restoreEvalRun(){return this.evalRestoreInFlight!==null?this.evalRestoreInFlight:(this.evalRestoreInFlight=this.doRestoreEvalRun().finally(()=>{this.evalRestoreInFlight=null}),this.evalRestoreInFlight)}async doRestoreEvalRun(){const t=++this.evalRestoreGeneration,n=VY();if(n!==null){const f=await this.api.evalsRunStatus(n);if(t!==this.evalRestoreGeneration)return;if(f.ok&&f.body){this.applyRestoredEvalRun(f.body),this.refreshEvalRuns();return}}const r=await this.api.evalsListRuns();if(t!==this.evalRestoreGeneration)return;const s=r.ok?r.body:null,a=Array.isArray(s?.runs)?s.runs:null;if(a!==null&&this.set({evalRuns:a}),s?.activeRunId!==void 0&&a!==null){const f=s.activeRunId,h=a.find(g=>g.runId===f)??await this.fetchEvalRunIfCurrent(t,f);if(t!==this.evalRestoreGeneration)return;if(h!==void 0){this.state.evalRun?.runId===h.runId?(this.set({evalRun:h}),h.status==="running"&&this.evalPollTimer===null&&this.startEvalRunPoll(h.runId)):this.applyRestoredEvalRun(h);return}}const l=this.state.evalRun;if(l!==null){l.status==="running"&&this.evalPollTimer===null&&this.startEvalRunPoll(l.runId);return}const c=GY(this.state.meta.basePath);if(c!==null){const f=await this.api.evalsRunStatus(c);if(t!==this.evalRestoreGeneration||this.state.evalRun!==null)return;if(f.ok&&f.body){this.applyRestoredEvalRun(f.body);return}}if(a===null)return;const d=a[0];d!==void 0&&this.state.evalRun===null&&this.applyRestoredEvalRun(d)}async fetchEvalRunIfCurrent(t,n){const r=await this.api.evalsRunStatus(n);if(t===this.evalRestoreGeneration)return r.ok&&r.body?r.body:void 0}applyRestoredEvalRun(t){this.set({evalRun:t}),this.mergeEvalRunIntoList(t),mp(this.state.meta.basePath,t.runId),WY(t.runId),t.status==="running"&&this.startEvalRunPoll(t.runId)}mergeEvalRunIntoList(t){const n=this.state.evalRuns.filter(r=>r.runId!==t.runId);this.set({evalRuns:[t,...n]})}async startEvalRun(t){if(this.historyOnly)return;if(this.state.evalRun?.status==="running"){this.toast("An eval run is already in progress");return}this.evalRestoreGeneration+=1;const n=await this.api.evalsStartRun(t===void 0||t.length===0?{}:{filterIds:t});if(!n.ok||!n.body){this.toast(`Eval start failed: ${Xn(n.body,160)}`);return}this.set({evalRun:n.body}),mp(this.state.meta.basePath,n.body.runId),(this.state.view==="overview"||this.state.view==="chat")&&(this.set({overviewSection:"runs",overviewRunId:n.body.runId,chatPanelOpen:!0}),this.mergeEvalRunIntoList(n.body)),this.setView("evals"),this.toast(`Eval ID: ${n.body.runId}`),this.startEvalRunPoll(n.body.runId),this.refreshEvalRuns()}async cancelEvalRun(t){const n=t??this.state.evalRun?.runId;if(n===void 0||n===""){this.toast("No eval run to cancel");return}const r=await this.api.evalsCancelRun(n);if(!r.ok||!r.body){this.toast(`Eval cancel failed: ${Xn(r.body,160)}`);return}this.set({evalRun:r.body}),mp(this.state.meta.basePath,r.body.runId),this.toast(`Cancelled Eval ID ${r.body.runId}`),r.body.status==="running"?this.startEvalRunPoll(r.body.runId):this.stopEvalRunPoll(),this.refreshEvalRuns()}stopEvalRunPoll(){this.evalPollTimer!==null&&(clearInterval(this.evalPollTimer),this.evalPollTimer=null)}startEvalRunPoll(t){this.stopEvalRunPoll();const n=++this.evalPollGeneration;let r=!1,s=!1;const a=async()=>{if(!(n!==this.evalPollGeneration||r)){r=!0;try{const l=await this.api.evalsRunStatus(t);if(n!==this.evalPollGeneration||!l.ok||!l.body)return;if(this.set({evalRun:l.body}),mp(this.state.meta.basePath,l.body.runId),this.mergeEvalRunIntoList(l.body),l.body.status!=="running"){if(this.stopEvalRunPoll(),this.refreshSessions(),this.refreshEvalRuns(),s||n!==this.evalPollGeneration)return;s=!0;const{passed:c,failed:d,total:f}=l.body.summary;this.toast(l.body.status==="failed"?`Eval run failed: ${l.body.error??"unknown error"}`:`Evals done — ${c} passed, ${d} failed, ${f} total`)}}finally{r=!1}}};a(),this.evalPollTimer=setInterval(()=>{a()},1500)}async attachEvalCaseSessionForView(t){const r=(this.state.evalRun??this.state.evalRuns[0]??null)?.cases.find(a=>a.sessionId!==void 0)?.sessionId;if(r===void 0||(await this.refreshSessions(),this.state.current!==null||this.state.view!==t))return;const s=this.state.sessions.find(a=>a.sessionId===r);s!==void 0?this.selectSession({...s,running:s.running===!0}):this.selectSession({sessionId:r,channelId:"http",mode:"conversation",title:"Eval session",turnCount:0,running:!1}),this.set({evalNavReturn:!0}),this.setView(t)}async openEvalCaseSession(t){await this.refreshSessions();const n=this.state.sessions.find(r=>r.sessionId===t);n!==void 0?this.selectSession({...n,running:n.running===!0}):this.selectSession({sessionId:t,channelId:"http",mode:"conversation",title:"Eval session",turnCount:0,running:!1}),this.set({evalNavReturn:!0}),this.setView("chat")}async openEvalCaseTrace(t){await this.refreshSessions();const n=this.state.sessions.find(r=>r.sessionId===t);n!==void 0?this.selectSession({...n,running:n.running===!0}):this.selectSession({sessionId:t,channelId:"http",mode:"conversation",title:"Eval session",turnCount:0,running:!1}),this.set({evalNavReturn:!0}),this.setView("trace")}async openSessionFromChannelResponse(t,n){const r=typeof n?.sessionId=="string"&&n.sessionId.trim()!==""?n.sessionId:null;if(r===null)return!1;await this.refreshSessions();const s=this.state.sessions.find(c=>c.sessionId===r),a=typeof n.status=="string"?n.status:void 0,l=a===void 0||a==="started"||a==="running";if(s!==void 0)this.selectSession({...s,running:l?!0:!!s.running});else{const c=typeof n.continuationToken=="string"?n.continuationToken:typeof n.key=="string"?n.key:void 0,d=typeof n.pr=="string"?n.pr:typeof n.title=="string"?n.title:"Session";this.selectSession({sessionId:r,channelId:t,mode:typeof n.mode=="string"?n.mode:"task",title:d,turnCount:0,running:l,continuationToken:c,externalUrl:typeof n.agentUrl=="string"?n.agentUrl:null})}return this.setView("chat"),this.setDrawerOpen(!1),!0}async openSessionById(t){const n=t.trim();if(n==="")return;await this.refreshSessions();const r=this.state.sessions.find(s=>s.sessionId===n);r!==void 0?this.selectSession(r):this.selectSession({sessionId:n,channelId:"http",mode:"conversation",title:"Session",turnCount:0,running:!1}),this.setView("chat")}async invokeSlashCommand(t){const n=t.trim(),r=this.slashCommands();if(/^\/help(?:\s|$)/i.test(n)){this.resetTranscript(),this.pushUser(n);const l=this.ensureAssistant();return this.update(l,{text:RY(r),streaming:!1}),this.assistantId=null,this.set({localTrace:!1,current:null,barTitle:"Help",barId:"",externalUrl:null,running:!1,turnStartedAt:null}),this.syncSessionUrl(null),this.commitTranscript(),!0}const s=CY(n,r);if(!s.ok)return this.toast(s.error),!1;this.setRunning(!0),this.resetTranscript(),this.pushUser(n);const a=this.ensureAssistant();this.update(a,{text:`Running \`${s.command.name}\` (${s.command.method} ${s.command.url})…`}),this.set({localTrace:!1,current:null,barTitle:s.command.name,barId:s.command.method,externalUrl:null,transcript:this.items.slice()}),this.syncSessionUrl(null);try{const l=await this.api.channelRequest(s.command.method,s.command.url,{body:s.body,query:s.query});return l.ok?await this.openSessionFromChannelResponse(s.command.channelId,l.body)?(this.assistantId=null,!0):(this.setRunning(!1),this.update(a,{text:"```json\n"+HY(l.body)+"\n```",streaming:!1}),this.assistantId=null,this.commitTranscript(),!0):(this.setRunning(!1),this.update(a,{text:`Command failed (${l.status}): ${Xn(l.body,400)}`,streaming:!1}),this.assistantId=null,this.commitTranscript(),!0)}catch(l){return this.setRunning(!1),this.update(a,{text:`Command failed: ${l instanceof Error?l.message:String(l)}`,streaming:!1}),this.assistantId=null,this.commitTranscript(),!0}}async loadEngineMeta(){let t;try{t=await this.api.meta()}catch{return!1}return!t.ok||!t.body?!1:(this.set({meta:{name:t.body.name??"agent",dev:!!t.body.dev,basePath:this.api.basePath,indexPath:t.body.indexPath,version:t.body.version,readonly:t.body.readonly===!0}}),console.info(`[playground] engine version ${t.body.version??"pre-0.1.14"}`),!0)}refreshEngineStatus(){this.api.health().then(t=>{this.set({health:t.ok?"ok":"bad"})}),this.api.info().then(t=>{t.ok&&t.body?this.set({info:t.body}):t.status===401&&(this.noteAliasAuthLoss(t.status)||this.toast("Unauthorized: set a bearer token (⋯ menu) that matches the channel auth."))})}async pollEngineMetaUntilReady(){const t=Date.now()+18e4;let n=1e3;for(;Date.now()<t;){if(await new Promise(r=>setTimeout(r,n)),n=Math.min(n*2,1e4),this.aliasAuthPending)return;if(await this.loadEngineMeta()){this.refreshEngineStatus(),this.refreshEvalCases(),this.restoreEvalRun();const r=this.pendingSessionDeepLink;if(this.pendingSessionDeepLink=null,r!==null){await this.refreshSessions(),this.selectDeepLinkedSession(r);try{new URL(window.location.href).searchParams.get("view")==="overview"&&this.setView("overview")}catch{}}return}}this.pendingSessionDeepLink=null}selectDeepLinkedSession(t){const n=this.state.sessions.find(r=>r.sessionId===t);n?this.selectSession(n):this.state.sessions.length>0&&this.toast(`Session not found: ${t}`)}get aliasAuthPending(){return this.state.aliasHosted&&this.state.aliasToken.trim()===""}async boot(){if(this.booted||this.aliasAuthPending)return;this.booted=!0;let t=null,n=null,r=null;try{const a=gY(window.location.href);t=a.sessionId,n=a.view,r=a.section}catch{}const s=await this.loadEngineMeta();s?this.refreshEngineStatus():(this.pendingSessionDeepLink=t,this.set({health:"bad"}),this.pollEngineMetaUntilReady()),n?this.setView(n):this.setView("overview"),r!==null&&this.set({overviewSection:r}),await this.refreshSessions(),this.refreshEvalCases(),this.refreshEvalRuns(),this.restoreEvalRun(),t&&s&&(this.selectDeepLinkedSession(t),n==="overview"&&this.setView("overview")),this.historyOnly||setInterval(()=>{this.refreshSessions()},this.state.meta.dev?2e3:5e3)}modelLabel(){return KZ(this.state.info?.model)}}function qY(e){return e instanceof Error?e.message:String(e)}function HY(e){try{return JSON.stringify(e,null,2)}catch{return String(e)}}function VM(e){return`agent-serve:evalRunId:${e||"/"}`}function GY(e){try{const t=sessionStorage.getItem(VM(e));return t!==null&&t!==""?t:null}catch{return null}}function VY(){try{const e=new URL(window.location.href).searchParams.get("evalRunId");if(e===null)return null;const t=e.trim();return t===""?null:t}catch{return null}}function WY(e){try{const t=new URL(window.location.href);if(t.searchParams.get("evalRunId")===e)return;t.searchParams.set("evalRunId",e),history.replaceState(null,"",t.toString())}catch{}}function mp(e,t){try{sessionStorage.setItem(VM(e),t)}catch{}}const nt=new UY;nt.getState().aliasHosted&&nY(e=>nt.acceptAliasTokenHandoff(e));let Y_=nt.getState().overviewSection;aa.subscribe(e=>{e.overviewSection!==Y_&&(Y_=e.overviewSection,BM(e.overviewSection))});if(nt.getState().embedded){let e=nt.getState().view,t=nt.getState().current?.sessionId??null,n=nt.getState().overviewSection,r=t!==null;aa.subscribe(s=>{const a=s.current?.sessionId??null;a!==null&&(r=!0),!(s.view===e&&a===t&&s.overviewSection===n)&&(e=s.view,t=a,n=s.overviewSection,xY(s.view,r?a:void 0,void 0,s.overviewSection))})}function Ke(e){return XZ(aa,e)}function KY(e){const t=[{key:"turns",value:String(e.turns)},{key:"fail",value:String(e.turnFailures)},{key:"tools",value:String(e.toolCalls)},{key:"tool err",value:String(e.toolErrors)},{key:"tokens",value:String(e.inputTokens+e.outputTokens)},{key:"wall",value:li(e.wallTimeMs)}];e.costUsd!==void 0&&t.push({key:"cost",value:xm(e.costUsd)});for(const[n,r]of Object.entries(e.custom).sort(([s],[a])=>s.localeCompare(a)))t.push({key:n,value:String(r)});return t}function WM(e){return e.turns>0||e.turnFailures>0||e.toolCalls>0||e.toolErrors>0||e.inputTokens>0||e.outputTokens>0||(e.costUsd??0)>0||e.wallTimeMs>0||Object.keys(e.custom).length>0}function KM({metrics:e}){return m.jsx("div",{className:"ab-metrics",children:KY(e).map(t=>m.jsxs("span",{className:"ab-metric",children:[m.jsx("span",{className:"ab-metric-k",children:t.key}),m.jsx("span",{className:"ab-metric-v",children:t.value})]},t.key))})}function ZY({arm:e}){const t=e.variantLabel??e.variant,n=e.sessions>0||WM(e.metrics);return m.jsxs("div",{className:"ab-arm",children:[m.jsxs("div",{className:"ab-arm-head",children:[m.jsx("span",{className:"ab-kind",children:"Arm"}),m.jsx("span",{className:"ab-arm-name",children:t}),m.jsxs("span",{className:"ab-arm-n",children:[e.sessions," session",e.sessions===1?"":"s"]})]}),e.description!==void 0?m.jsx("div",{className:"ab-arm-desc",children:e.description}):null,n?m.jsx(KM,{metrics:e.metrics}):null]})}function YY({row:e,active:t}){return m.jsxs("button",{type:"button",className:`ab-session${t?" active":""}`,onClick:()=>{nt.selectSession({sessionId:e.sessionId,channelId:e.channelId,mode:e.mode,turnCount:e.turnCount,...e.title===void 0?{}:{title:e.title},...e.updatedAt===void 0?{}:{updatedAt:e.updatedAt}}),nt.setView("chat")},children:[m.jsxs("div",{className:"ab-session-head",children:[m.jsx("span",{className:"ab-session-id",children:e.title||e.sessionId}),m.jsxs("span",{className:"ab-session-meta",children:[e.channelId,e.updatedAt!==void 0?` · ${xh(e.updatedAt)??e.updatedAt}`:""]})]}),m.jsx("div",{className:"ab-session-arms",children:e.assignments.map(n=>{const r=n.variant===null,s=r?"Skipped":n.variantLabel??n.variant;return m.jsxs("div",{className:"ab-assignment",children:[m.jsxs("div",{className:"ab-assignment-row",children:[m.jsx("span",{className:"ab-assignment-exp",children:n.experiment}),m.jsx("span",{className:"ab-assignment-arrow","aria-hidden":!0,children:"→"}),m.jsx(Xi,{variant:r?"neutral":"accent",size:"sm",pill:!0,children:s})]}),n.metrics!==void 0&&WM(n.metrics)?m.jsx(KM,{metrics:n.metrics}):null]},`${e.sessionId}:${n.experiment}`)})})]})}function ZM(){const e=Ke(y=>y.current),[t,n]=v.useState(null),[r,s]=v.useState(null),[a,l]=v.useState(!0),c=v.useRef(!1),d=v.useCallback(async()=>{if(!c.current){c.current=!0,l(!0),s(null);try{const y=await nt.api.abs();if(!y.ok||y.body===null){s(`Failed to load A/Bs (${y.status})`),n(null);return}n(y.body)}catch(y){s(y instanceof Error?y.message:String(y)),n(null)}finally{l(!1),c.current=!1}}},[]);if(v.useEffect(()=>{d();const y=setInterval(()=>{d()},4e3);return()=>clearInterval(y)},[d]),a&&t===null)return m.jsx("div",{className:"pg-abs is-empty",children:m.jsxs("div",{className:"ab-empty",children:[m.jsx("span",{className:"spin"})," Loading A/B metrics…"]})});if(r!==null&&t===null)return m.jsxs("div",{className:"pg-abs is-empty",children:[m.jsx("div",{className:"ab-empty ab-error",children:r}),m.jsx(Sn,{variant:"secondary",size:"sm",onClick:()=>{d()},children:"Retry"})]});const f=t?.experiments??[],h=t?.sessions??[];if(f.length===0&&h.length===0)return m.jsx("div",{className:"pg-abs is-empty",children:m.jsxs("div",{className:"ab-empty",children:["No A/B experiments loaded.",m.jsxs("div",{className:"ab-hint",children:["Author ",m.jsx("code",{children:"agent/ab.ts"})," with ",m.jsx("code",{children:"defineAB"}),", then run sessions — enrollment lands as durable ",m.jsx("code",{children:"ab.assigned"})," ","events at session create. Optional"," ",m.jsx("code",{children:"agent/ab.config.ts"})," controls fold retention and sample / snapshot persistence."]})]})});const b=t?.config?.maxPlaygroundSessions??200;return m.jsxs("div",{className:"pg-abs",children:[m.jsxs("div",{className:"ab-toolbar",children:[m.jsx("span",{className:"ab-toolbar-title",children:"A/B metrics"}),m.jsxs("span",{className:"ab-toolbar-meta",children:["last ",b," sessions"]}),r!==null?m.jsx("span",{className:"ab-error",children:r}):null,m.jsx("span",{className:"grow"}),m.jsx(Sn,{variant:"secondary",size:"sm",onClick:()=>{d()},children:"Refresh"})]}),m.jsxs("section",{className:"ab-section",children:[m.jsx("h3",{children:"Experiments"}),f.length===0?m.jsx("div",{className:"ab-empty",children:"No declared experiments."}):m.jsx("div",{className:"ab-exp-list",children:f.map(y=>m.jsxs("div",{className:"ab-exp-card",children:[m.jsxs("div",{className:"ab-exp-card-head",children:[m.jsx("span",{className:"ab-kind",children:"Experiment"}),m.jsx("span",{className:"ab-exp-name",children:y.name}),y.skipped>0?m.jsxs(Xi,{variant:"neutral",size:"sm",pill:!0,children:[y.skipped," skipped"]}):null]}),m.jsx("div",{className:"ab-arm-list",children:y.arms.map(k=>m.jsx(ZY,{arm:k},k.variant))})]},y.name))})]}),m.jsxs("section",{className:"ab-section",children:[m.jsx("h3",{children:"Sessions"}),h.length===0?m.jsx("div",{className:"ab-empty",children:"No enrolled sessions yet. Start a chat to assign arms."}):m.jsx("div",{className:"ab-session-list",children:h.map(y=>m.jsx(YY,{row:y,active:e?.sessionId===y.sessionId},y.sessionId))})]})]})}function XY(){const[e,t]=v.useState(""),[n,r]=v.useState(null),[s,a]=v.useState(!1);async function l(c){c.preventDefault(),a(!0),r(null);const d=await nt.signInWithAliasToken(e);a(!1),d.ok||r(d.error)}return m.jsx("div",{className:"pg-alias-signin",children:m.jsxs("div",{className:"pg-alias-signin-box",children:[m.jsx("h1",{children:"agent-serve playground"}),m.jsx("p",{children:"This deployment requires its alias token."}),n!==null?m.jsx("div",{className:"pg-alias-signin-error",children:n}):null,m.jsxs("form",{onSubmit:c=>{l(c)},children:[m.jsx(xf,{type:"password",size:"base","aria-label":"Alias token",placeholder:"adt_…",autoComplete:"off",autoFocus:!0,value:e,onChange:c=>t(c.target.value),disabled:s}),m.jsx(Sn,{type:"submit",variant:"primary",disabled:s||e.trim()==="",children:s?"Checking…":"Open playground"})]}),m.jsxs("div",{className:"pg-alias-signin-hint",children:["The alias token was shown once when the agent was deployed. Lost it?",m.jsx("code",{children:"agent-sdk rotate-token <slug>"})," mints a replacement. The token stays in this tab only — refresh to sign in again."]})]})})}function QY(){return m.jsx("div",{className:"pg-alias-signin",children:m.jsxs("div",{className:"pg-alias-signin-box",children:[m.jsx("h1",{children:"Playground disconnected"}),m.jsx("p",{children:"This playground connects through your Cursor dashboard. Use Reconnect on the dashboard, or reload the page."})]})})}const JY=["noopener","noreferrer"];function Lk(e){return e.trim()===""}function YM(e){const t=e.trim();if(Lk(t)||t.startsWith("#"))return!1;try{const n=new URL(t,"https://playground.invalid").protocol.toLowerCase();return n!=="javascript:"&&n!=="data:"&&n!=="vbscript:"&&n!=="file:"}catch{return!0}}function eX(e){if(e.hasAttribute("download"))return;const t=e.getAttribute("href");if(t===null||!YM(t))return;e.target="_blank";const n=new Set(e.rel.split(/\s+/).map(r=>r.toLowerCase()).filter(r=>r!==""));for(const r of JY)n.add(r);e.rel=[...n].join(" ")}function X_(e){const t=e.target;if(!(t instanceof Element))return;const n=t.closest("a");if(!(n instanceof HTMLAnchorElement))return;eX(n);const r=n.getAttribute("href");r!==null&&Lk(r)&&!n.hasAttribute("download")&&e.preventDefault()}function tX(e=document){return e.addEventListener("click",X_,!0),()=>e.removeEventListener("click",X_,!0)}function ka({href:e,onClick:t,...n}){const s=e!==void 0&&Lk(e)?a=>{a.preventDefault(),t?.(a)}:t;return e===void 0||!YM(e)?m.jsx("a",{href:e,...n,onClick:s}):m.jsx("a",{href:e,...n,onClick:s,target:"_blank",rel:"noopener noreferrer"})}const XM=512*1024,nX=64*1024*1024,rX=240;async function QM(e){try{const t=await nt.api.artifactContent(e,XM);if(!t.ok)return t.status===404?{phase:"absent"}:{phase:"error",message:`HTTP ${t.status}`};let n=null;if(iY(t.contentType)){const r=new TextDecoder("utf-8",{fatal:!1}).decode(t.bytes);n=sY(r)?null:r}return{phase:"loaded",text:n,isDiff:n!==null&&oY(t.contentType,n),contentType:t.contentType,size:t.bytes.length,truncated:t.truncated}}catch(t){return{phase:"error",message:t instanceof Error?t.message:String(t)}}}async function JM(e,t){try{const n=await nt.api.artifactContent(e,nX);if(!n.ok)return;const r=new Blob([n.bytes.buffer],{type:n.contentType??"application/octet-stream"}),s=URL.createObjectURL(r),a=document.createElement("a");a.href=s,a.download=sX(t,e,n.contentType),a.click(),URL.revokeObjectURL(s)}catch{}}const iX={"text/x-diff":".diff","text/x-patch":".patch","application/json":".json","text/markdown":".md","text/plain":".txt","text/html":".html","text/csv":".csv"};function sX(e,t,n){const r=(e??t).trim().replace(/[^\w.-]+/g,"-").replace(/^-+|-+$/g,"").slice(0,80),s=n?.split(";")[0]?.trim().toLowerCase()??"",a=iX[s]??"",l=r===""?t:r;return l.includes(".")?l:`${l}${a}`}function oX({text:e,isDiff:t}){const n=v.useMemo(()=>t?e.split(`
|
|
38
38
|
`):null,[e,t]);return n===null?m.jsx("pre",{className:"pg-artifact-file-text",children:e}):m.jsx("pre",{className:"pg-artifact-file-text pg-artifact-diff",children:n.map((r,s)=>m.jsx("span",{className:`diff-line diff-${aY(r)}`,children:r},s))})}function eD({artifactId:e,title:t,state:n}){if(n.phase==="idle"||n.phase==="loading")return m.jsx("div",{className:"pg-artifact-file-note",children:"Loading contents…"});if(n.phase==="absent")return null;if(n.phase==="error")return m.jsxs("div",{className:"pg-artifact-file-note",children:["Failed to load contents: ",n.message]});const r=Pv(n.size),s=[n.contentType?.split(";")[0],r].filter(a=>a!==void 0&&a!=="").join(" · ");return m.jsxs("div",{className:"pg-artifact-file",children:[m.jsxs("div",{className:"pg-artifact-file-head",children:[m.jsx(Gt,{name:"file",size:"sm",color:"tertiary"}),m.jsx("span",{className:"pg-artifact-file-meta",children:s||"file payload"}),m.jsx(Sn,{variant:"ghost",size:"xs",onClick:()=>{JM(e,t)},children:"Download"})]}),n.text!==null?m.jsx(oX,{text:n.text,isDiff:n.isDiff}):m.jsx("div",{className:"pg-artifact-file-note",children:"Binary payload — use Download to save it."}),n.truncated?m.jsxs("div",{className:"pg-artifact-file-note",children:["Preview truncated to ",Pv(XM)," — Download has the full payload."]}):null]})}function aX({data:e}){const[t,n]=v.useState(!1),r=v.useMemo(()=>Eo(e),[e]);if(r===""||r==="null")return null;const s=r.length>rX;return m.jsxs("div",{className:"pg-artifact-data",children:[m.jsx("pre",{className:s&&!t?"pg-artifact-json clamped":"pg-artifact-json",children:r}),s?m.jsx("button",{type:"button",className:"link-btn",onClick:()=>n(a=>!a),children:t?"Collapse":"Show all"}):null]})}const lX=v.memo(function({artifactKind:t,title:n,url:r,artifactId:s,data:a}){const[l,c]=v.useState(!1),[d,f]=v.useState({phase:"idle"}),h=g=>{c(g),!(!g||s===void 0||d.phase!=="idle")&&(f({phase:"loading"}),QM(s).then(f))};return m.jsx("div",{className:"pg-artifact-card",children:m.jsx(ai,{action:"Artifact",details:m.jsxs("span",{className:"pg-artifact-head",children:[m.jsx(Xi,{variant:"accent",size:"sm",pill:!0,children:t}),n!==void 0?m.jsx("span",{className:"pg-artifact-head-title",children:n}):null]}),leadingIcon:m.jsx(Gt,{name:"bookmark",size:"sm",color:"secondary"}),open:l,onOpenChange:h,tone:"tertiary",children:m.jsxs("div",{className:"pg-artifact-body",children:[r!==void 0?m.jsx(ka,{className:"pg-artifact-link",href:r,children:r}):null,a!==void 0?m.jsx(aX,{data:a}):null,s!==void 0?m.jsx(eD,{artifactId:s,title:n,state:d}):null]})})})}),Q_=280,uX=8,Ey=1e3;function cX({record:e}){const[t,n]=v.useState(!1),r=v.useMemo(()=>{const a=LM(e.data);return a!==null?{url:a,json:"",short:""}:{url:null,json:Eo(e.data),short:Xn(e.data,Q_)}},[e.data]);if(r.url!==null)return m.jsx(ka,{className:"artifact-link",href:r.url,children:r.url});if(r.json==="")return null;const s=r.json.length>Q_||r.json.split(`
|
|
39
39
|
`).length>uX;return m.jsxs("div",{className:"artifact-data",children:[m.jsx("pre",{className:"artifact-json",children:s&&!t?r.short:r.json}),s?m.jsx("button",{type:"button",className:"link-btn",onClick:()=>n(!t),children:t?"Collapse":"Expand"}):null]})}function fX({record:e}){const[t,n]=v.useState({phase:"idle"}),r=e.content;if(r===void 0)return null;if(t.phase==="idle"){const s=[r.contentType,Pv(r.size)].filter(a=>a!==void 0&&a!=="").join(" · ");return m.jsxs("div",{className:"pg-artifact-file-head",children:[m.jsx(Gt,{name:"file",size:"sm",color:"tertiary"}),m.jsx("span",{className:"pg-artifact-file-meta",children:s||"file payload"}),m.jsx(Sn,{variant:"ghost",size:"xs",onClick:()=>{n({phase:"loading"}),QM(e.id).then(n)},children:"View"}),m.jsx(Sn,{variant:"ghost",size:"xs",onClick:()=>{JM(e.id,e.title)},children:"Download"})]})}return m.jsx(eD,{artifactId:e.id,title:e.title,state:t})}const J_=v.memo(function({record:t}){return m.jsxs("div",{className:"artifact-row",children:[m.jsxs("div",{className:"artifact-row-head",children:[m.jsx("span",{className:"artifact-title",children:lY(t)}),m.jsx(Xi,{variant:"accent",size:"sm",pill:!0,children:t.kind}),m.jsx(Xi,{variant:t.source==="model"?"success":"neutral",size:"sm",pill:!0,children:t.source}),m.jsx("span",{className:"artifact-updated",title:`updated ${t.updatedAt}`,children:xh(t.updatedAt)??t.updatedAt})]}),m.jsx(cX,{record:t}),m.jsx(fX,{record:t})]})});function dX({sessionId:e,count:t,title:n}){const r=`${t} artifact${t===1?"":"s"}`;return e===null?m.jsxs("div",{className:"artifact-group-head",children:[m.jsx("span",{className:"artifact-group-id",children:"No session"}),m.jsx("span",{className:"artifact-group-n",children:r})]}):m.jsxs("button",{type:"button",className:"artifact-group-head",onClick:()=>{nt.openSessionById(e)},title:"Open this session's replay",children:[m.jsx("span",{className:"artifact-group-id",children:n||e}),n?m.jsx("span",{className:"artifact-group-sub",children:e}):null,m.jsxs("span",{className:"artifact-group-n",children:[r," →"]})]})}function tD(){const e=Ke(A=>A.current),t=Ke(A=>A.sessions),[n,r]=v.useState(null),[s,a]=v.useState(null),[l,c]=v.useState(null),[d,f]=v.useState("all"),[h,g]=v.useState(0);e===null&&d==="session"&&f("all");const b=d==="session"&&e!==null?e.sessionId:null,y=n!==null&&n.scope===b?n.rows:null;v.useEffect(()=>{let A=!1,N=!1;a(null);const $=async()=>{if(!N){N=!0;try{const M=await nt.api.artifacts({sessionId:b??void 0,limit:Ey});if(A)return;if(!M.ok||M.body===null){a(`Failed to load artifacts (${M.status})`);return}a(null),r({scope:b,rows:M.body.artifacts??[]})}catch(M){A||a(M instanceof Error?M.message:String(M))}finally{N=!1}}};$();const L=setInterval(()=>{$()},4e3);return()=>{A=!0,clearInterval(L)}},[b,h]);const k=()=>g(A=>A+1),S=b!==null;if(y===null)return m.jsx("div",{className:"pg-artifacts is-empty",children:s!==null?m.jsx(Is,{body:s,cta:{label:"Retry",onClick:k}}):m.jsx(Is,{body:"Loading artifacts…"})});const E=$M(y);if(E.length===0)return m.jsx("div",{className:"pg-artifacts is-empty",children:m.jsx(Is,{body:S?"No artifacts tagged for this session.":"No artifacts tagged yet."})});const T=uY(E),_=l!==null&&T.includes(l)?l:null,R=cY(E,_),C=S?[]:fY(R),D=new Map(t.map(A=>[A.sessionId,A.title]));return m.jsxs("div",{className:"pg-artifacts",children:[m.jsxs("div",{className:"ab-toolbar",children:[m.jsx("span",{className:"ab-toolbar-title",children:"Artifacts"}),m.jsxs("span",{className:"ab-toolbar-meta",children:[R.length," of ",E.length,E.length>=Ey?` (newest ${Ey})`:""]}),s!==null?m.jsx("span",{className:"ab-error",children:s}):null,m.jsx("span",{className:"grow"}),e!==null?m.jsxs(Oc,{size:"sm",variant:"compact",value:d,onValueChange:A=>f(A==="session"?"session":"all"),"aria-label":"Artifact scope",children:[m.jsx(Oc.Item,{value:"all",children:"All sessions"}),m.jsx(Oc.Item,{value:"session",children:"This session"})]}):null,m.jsx(Sn,{variant:"secondary",size:"sm",onClick:k,children:"Refresh"})]}),T.length>1?m.jsxs("div",{className:"artifact-kinds",role:"group","aria-label":"Filter by kind",children:[m.jsx("button",{type:"button",className:`artifact-kind-chip${_===null?" active":""}`,onClick:()=>c(null),children:"All"}),T.map(A=>m.jsx("button",{type:"button",className:`artifact-kind-chip${_===A?" active":""}`,onClick:()=>c(_===A?null:A),children:A},A))]}):null,R.length===0?m.jsx(Is,{body:"No artifacts match this kind filter."}):S?m.jsx("div",{className:"artifact-list",children:R.map(A=>m.jsx(J_,{record:A},A.id))}):m.jsx("div",{className:"artifact-group-list",children:C.map(A=>m.jsxs("section",{className:"artifact-group",children:[m.jsx(dX,{sessionId:A.sessionId,count:A.artifacts.length,title:A.sessionId===null?void 0:D.get(A.sessionId)}),m.jsx("div",{className:"artifact-list",children:A.artifacts.map(N=>m.jsx(J_,{record:N},N.id))})]},A.sessionId??"(none)"))})]})}function pX(e){const{localTrace:t,historyOnly:n,current:r,running:s,slashNames:a,hasReview:l}=e;if(n)return{disabled:!0,hint:"This agent is stopped. Open a session from Runs to inspect its chat and trace."};if(t)return{disabled:!0,hint:"Local trace (view only). Click New or pick a live session to chat."};if(r===null){const f=a.length>0?` Slash commands: ${a.slice(0,4).join(", ")}${a.length>4?", …":""}, /help.`:"";return l?{disabled:!1,hint:`Paste a PR URL for /review, type a channel command, or send a message for a new http session.${f}`}:{disabled:!1,hint:f.trimStart()}}if(r.mode==="task"||r.channelId!=="http")return r.mode==="task"?{disabled:!0,hint:"Task sessions (schedules) are fire-and-forget; watch only."}:r.channelId==="slack"?{disabled:!0,hint:`Slack thread — watch here, reply in Slack${r.externalUrl?" (Open in Slack above).":"."}`}:{disabled:!0,hint:`Sessions owned by the “${r.channelId}” channel take follow-ups through that channel; watch only here.`};if(!r.continuationToken)return{disabled:!0,hint:"This session has no continuation token; watch only."};const d=a.length>0?` Channel commands (${a.slice(0,3).join(", ")}${a.length>3?", …":""}) also work from here.`:"";return{disabled:!1,hint:s?"Turn running — Enter queues the follow-up; ⌘Enter sends now and interrupts.":`Follow-ups reuse this session’s rotating continuation token.${d}`}}function hX(){const e=Ke(t=>t.queued);return e.length===0?null:m.jsx("div",{className:"pg-queue",role:"list","aria-label":"Queued messages",children:e.map(t=>m.jsxs("div",{className:"pg-queue-item",role:"listitem",children:[m.jsx("button",{type:"button",className:"pg-queue-label",title:"Edit queued message",onClick:()=>nt.editQueued(t.id),children:t.text}),m.jsxs("span",{className:"pg-queue-actions",children:[m.jsx(vr,{icon:"arrow-up",size:"sm",variant:"ghost","aria-label":"Send now (interrupts the running turn)",onClick:()=>{nt.sendQueuedNow(t.id)}}),m.jsx(vr,{icon:"x",size:"sm",variant:"ghost","aria-label":"Remove queued message",onClick:()=>nt.removeQueued(t.id)})]})]},t.id))})}function nD(){const[e,t]=v.useState(""),[n,r]=v.useState(0),s=v.useRef(null),a=Ke(N=>N.localTrace),l=Ke(N=>N.meta.readonly===!0),c=Ke(N=>N.current),d=Ke(N=>N.running),f=Ke(N=>N.composerDraft),h=Ke(N=>N.info),g=(h?.channels||[]).some(N=>N.id==="review");v.useEffect(()=>{f!==null&&(t(N=>N.trim()?`${N} ${f}`:f),nt.consumeComposerDraft(),s.current?.focus())},[f]);const b=v.useMemo(()=>km(h?.channels),[h]),y=v.useMemo(()=>UM(b),[b]),k=v.useMemo(()=>{if(a||l)return null;const N=e.replace(/^\s+/,"");return!N.startsWith("/")||/\s/.test(N)?null:N},[e,a,l]),S=v.useMemo(()=>k===null?[]:_Y(k,b),[k,b]),E=k!==null&&S.length>0,{disabled:T,hint:_}=pX({localTrace:a,historyOnly:l,current:c,running:d,slashNames:y,hasReview:g}),R=d&&c!==null&&!a&&!l,C=async(N=e,$=!1)=>{if(!N.trim())return;await nt.sendMessage(N,{force:$})&&(t(""),r(0))},D=N=>{t(`${N} `),r(0)},A=N=>{if(E){if(N.key==="ArrowDown"){N.preventDefault(),r($=>($+1)%S.length);return}if(N.key==="ArrowUp"){N.preventDefault(),r($=>($-1+S.length)%S.length);return}if(N.key==="Tab"||N.key==="Enter"&&!N.shiftKey){const $=S[n]??S[0];if($!==void 0&&k!==$.name){N.preventDefault(),D($.name);return}}if(N.key==="Escape"){N.preventDefault(),t(""),r(0);return}}N.key==="Enter"&&!N.shiftKey&&(N.preventDefault(),C(e,N.metaKey||N.ctrlKey))};return m.jsxs("div",{className:"pg-composer",children:[E?m.jsxs("ul",{className:"pg-slash-menu",role:"listbox","aria-label":"Slash commands",children:[S.map((N,$)=>m.jsx("li",{children:m.jsxs("button",{type:"button",role:"option","aria-selected":$===n,className:$===n?"pg-slash-item is-active":"pg-slash-item",onMouseDown:L=>{L.preventDefault(),D(N.name)},onMouseEnter:()=>r($),children:[m.jsx("code",{className:"pg-slash-name",children:N.name}),m.jsx("span",{className:"pg-slash-method",children:N.method}),N.description?m.jsx("span",{className:"pg-slash-desc",children:N.description}):null]})},`${N.name}:${N.method}`)),m.jsxs("li",{className:"pg-slash-footer",children:[m.jsx("code",{children:"/help"})," lists all channel commands"]})]}):null,m.jsxs("div",{className:"inner",children:[m.jsx(hX,{}),m.jsxs("div",{className:T&&!R?"pg-prompt disabled":"pg-prompt",children:[m.jsx("textarea",{ref:s,className:"pg-prompt-input",rows:1,placeholder:y.length>0?`Message the agent, or ${y[0]} …`:"Message the agent...","aria-label":"Message the agent","aria-autocomplete":E?"list":void 0,"aria-expanded":E,value:e,onChange:N=>{t(N.target.value),r(0)},onKeyDown:A,disabled:T,autoFocus:!0}),m.jsxs("div",{className:"pg-prompt-toolbar",children:[m.jsx("span",{className:"pg-prompt-hint",title:_,children:_}),R&&!e.trim()?m.jsx(vr,{icon:"square",iconVariant:"filled",variant:"primary",tone:"monochrome",rounded:!0,size:"lg",className:"pg-prompt-stop","aria-label":"Stop the running turn",onClick:()=>{nt.stopTurn()}}):m.jsx(vr,{icon:"arrow-up",variant:"primary",tone:"monochrome",rounded:!0,size:"lg","aria-label":d?"Queue message (⌘Enter sends now)":"Send message",disabled:T,onClick:()=>{C()}})]})]})]})]})}function mX(e){return{filename:`${e.runId}.eval-results.json`,text:`${JSON.stringify(e,null,2)}
|
|
40
|
-
`}}function gX(e,t,n="application/json"){const r=new Blob([t],{type:n}),s=URL.createObjectURL(r),a=document.createElement("a");a.href=s,a.download=e,a.target="_self",document.body.appendChild(a),a.click(),a.remove(),URL.revokeObjectURL(s)}function vi(e){const t=e.at??null,n=e.ms??null;let r=e.startAt??null;return r===null&&t!==null&&n!==null&&n>0&&(r=t-n),r===null&&(r=t),{...e,startAt:r,at:t,ms:n}}function rD(e){const t=[];let n=null,r={};const s=new Map;let a=null,l="";const c=new Map;let d=null,f=1,h=0,g=0;function b(E){return n&&n.endedAt===null||(n={turnId:E?.turnId||`turn_${t.length+1}`,startedAt:E?.at?Dl(E.at):null,endedAt:null,usage:null,rows:[],provisional:!0},t.push(n)),n}function y(E){b({turnId:E.turnId,at:null}).rows.push(E),E.ms&&E.ms>f&&(f=E.ms)}function k(E){if(a===null)return;const T=b(),_=E!==null&&a!==null?Math.max(0,E-a):null,R=l.trim()||void 0;T.rows.push(vi({kind:"think",label:R?Pr(R,80):"thinking",body:R,ms:_,at:E,startAt:a})),_&&_>f&&(f=_),a=null,l=""}for(const E of e){const T=E.data||{},_=Dl(E.at);switch(E.type){case"turn.started":n&&n.provisional&&n.endedAt===null?(n.turnId=E.turnId||n.turnId,n.startedAt=_,n.provisional=!1):(n={turnId:E.turnId||`turn_${t.length+1}`,startedAt:_,endedAt:null,usage:null,rows:[],provisional:!1},t.push(n)),a=null,l="",d=null;break;case"message.received":y(vi({kind:"user",label:Pr(T.text,140),body:typeof T.text=="string"?T.text:void 0,at:_,startAt:_,ms:0,turnId:E.turnId}));break;case"reasoning.appended":if(typeof T.parentCallId=="string"&&T.parentCallId!==""){const R=c.get(T.parentCallId)??{start:_,text:""};R.start===null&&(R.start=_),typeof T.text=="string"&&(R.text=T.text),c.set(T.parentCallId,R);break}a===null&&(a=_),typeof T.text=="string"&&(l=T.text);break;case"reasoning.completed":if(typeof T.parentCallId=="string"&&T.parentCallId!==""){const R=T.parentCallId,C=c.get(R);c.delete(R);const D=C?.text.trim()||void 0;if(D!==void 0){const A=C?.start??_,N=A!==null&&_!==null?Math.max(0,_-A):null;y(vi({kind:"think",label:Pr(D,80),body:D,ms:N,at:_,startAt:A,turnId:E.turnId,depth:1,parentCallId:R}))}break}k(_);break;case"message.appended":if(typeof T.parentCallId=="string"&&T.parentCallId!=="")break;d===null&&(d=_);break;case"message.completed":{if(typeof T.parentCallId=="string"&&T.parentCallId!==""){const D=T.parentCallId;y(vi({kind:"agent",label:Pr(T.text,160)||"(empty reply)",body:typeof T.text=="string"?T.text:void 0,at:_,startAt:_,ms:0,turnId:E.turnId,depth:1,parentCallId:D}));break}const R=d??_,C=R!==null&&_!==null?Math.max(0,_-R):null;y(vi({kind:"agent",label:Pr(T.text,160)||"(empty reply)",body:typeof T.text=="string"?T.text:void 0,at:_,startAt:R,ms:C,turnId:E.turnId})),C&&C>f&&(f=C),d=null;break}case"actions.requested":for(const R of T.calls||[]){const C=typeof R.parentCallId=="string"&&R.parentCallId!==""?R.parentCallId:typeof T.parentCallId=="string"&&T.parentCallId!==""?T.parentCallId:void 0;if(C===void 0&&R.toolName==="task")continue;const D=C===void 0?R.callId:`${C}:${R.callId}`;r[D]={name:R.toolName,args:R.args,start:_,turnId:E.turnId,parentCallId:C}}break;case"action.result":{const R=T.callId;if(R==null)break;const C=typeof T.parentCallId=="string"&&T.parentCallId!==""?T.parentCallId:void 0;if(C===void 0&&T.toolName==="task"){delete r[R];break}const D=C===void 0?R:`${C}:${R}`,A=r[D];delete r[D];const N=A&&A.start!==null&&_!==null?_-A.start:null;h+=1,T.isError&&(g+=1);{const $=T.toolName||A?.name||"tool",L=A?.args;y(vi({kind:"tool",label:$+(L?` ${Pr(Xn(L,60),60)}`:""),toolName:$,callId:typeof R=="string"?R:String(R),toolArgs:L,toolOutput:T.output,body:typeof T.output=="string"?T.output:T.output!=null?Xn(T.output,4e3):void 0,ms:N,error:!!T.isError,at:_,startAt:A?.start??null,turnId:E.turnId,depth:C===void 0?0:1,parentCallId:C}))}N&&N>f&&(f=N);break}case"subagent.called":{const R=`task:${T.name||"subagent"}`,C=typeof T.callId=="string"?T.callId:String(T.callId);r[`sub:${C}`]={name:R,args:T.description,start:_,turnId:E.turnId};const D=b(E);D.rows.push(vi({kind:"tool",label:R,toolName:R,callId:C,toolArgs:T.description,ms:null,at:_,startAt:_,turnId:E.turnId,depth:0})),s.set(C,{turn:D,index:D.rows.length-1});break}case"subagent.completed":{const R=typeof T.callId=="string"?T.callId:String(T.callId),C=`sub:${R}`,D=r[C];delete r[C];const A=D&&D.start!==null&&_!==null?_-D.start:null;h+=1;const N=s.get(R);s.delete(R);const $=N!==void 0?N.turn.rows[N.index]:void 0;$!==void 0&&$.kind==="tool"?($.ms=A,$.at=_,A&&A>f&&(f=A)):y(vi({kind:"tool",label:D?.name||"subagent",toolName:D?.name||"subagent",callId:R,toolArgs:D?.args,ms:A,at:_,startAt:D?.start??null,turnId:E.turnId}));break}case"artifact.tagged":{const R=PM(T);y(vi({kind:"artifact",label:Pr(R.title===void 0?R.kind:`${R.kind} · ${R.title}`,120),body:T.data!=null?Xn(T.data,4e3):void 0,url:R.url,at:_,startAt:_,ms:0,turnId:E.turnId}));break}case"turn.completed":case"turn.failed":case"session.waiting":{if(E.type==="session.waiting"&&(n===null||n.endedAt!==null))break;const R=b(E);if((E.type==="turn.completed"||E.type==="turn.failed")&&(R.endedAt=_,R.usage=T.usage||null,R.cost=T.cost||null,R.failed=E.type==="turn.failed",R.error=T.message,R.startedAt!==null&&R.endedAt!==null)){const C=R.endedAt-R.startedAt;C>f&&(f=C),R.wallMs=C}if(k(_),d!==null&&_!==null){const C=Math.max(0,_-d);R.rows.push(vi({kind:"agent",label:"(streaming…)",ms:C,at:_,startAt:d})),d=null}for(const C of Object.keys(r)){const D=r[C],A=D.start!==null&&_!==null?_-D.start:null;R.rows.push(vi({kind:"tool",label:`${D.name||"tool"} (no result)`,ms:A,error:!0,at:_,startAt:D.start,turnId:D.turnId})),A&&A>f&&(f=A)}r={},(E.type==="turn.completed"||E.type==="turn.failed")&&(n=null);break}}}for(const E of Object.keys(r)){const T=r[E];y(vi({kind:"tool",label:`${T.name||"tool"} (running…)`,ms:null,at:T.start,startAt:T.start,turnId:T.turnId}))}let S=null;for(const E of t){const T=E.cost?.totalUsd;typeof T=="number"&&Number.isFinite(T)&&(S=(S??0)+T)}return{turns:t,maxWallMs:f,totalTools:h,failedTools:g,eventCount:e.length,totalCostUsd:S}}function bX(e,t=6){if(!Number.isFinite(e)||e<=0)return[0];const n=e/Math.max(2,t-1),r=10**Math.floor(Math.log10(Math.max(n,1))),s=[1,2,2.5,5,10].map(c=>c*r),a=s.find(c=>n/c<=1.5)??s[s.length-1],l=[0];for(let c=a;c<e-a*.25&&(l.push(c),!(l.length>=t-1));c+=a);return l[l.length-1]!==e&&l.push(e),l}function yX({case:e}){const t=Object.entries(e.metrics??{});return t.length===0?null:m.jsx("div",{className:"eval-metrics","aria-label":"Eval metrics",children:t.map(([n,r])=>m.jsxs("span",{className:"eval-metric",title:n,children:[m.jsx("span",{className:"eval-metric-name",children:n}),m.jsx("span",{className:"eval-metric-value",children:String(r)})]},n))})}const vX="VulnScanner";function zl(e,t){const n=e?.[t];if(n===void 0)return;const r=String(n).trim();return r===""?void 0:r}function xX(e){return e.id==="overall"||e.id.endsWith("/overall")||(e.tags?.includes("summary")??!1)}function kX({case:e}){const t=zl(e.metrics,"recall");if(t===void 0){const n=Object.entries(e.metrics??{});return n.length===0?null:m.jsx("div",{className:"eval-metrics","aria-label":"Eval metrics",children:n.map(([r,s])=>m.jsxs("span",{className:"eval-metric",title:r,children:[m.jsx("span",{className:"eval-metric-name",children:r}),m.jsx("span",{className:"eval-metric-value",children:String(s)})]},r))})}return m.jsxs("div",{className:"eval-metrics","aria-label":"Eval metrics",children:[m.jsxs("span",{className:"eval-metric eval-metric-recall",title:"recall",children:[m.jsx("span",{className:"eval-metric-name",children:"recall"}),m.jsx("span",{className:"eval-metric-value",children:t})]}),Object.entries(e.metrics??{}).filter(([n])=>n!=="recall"&&n!=="matched"&&n!=="missing").map(([n,r])=>m.jsxs("span",{className:"eval-metric",title:n,children:[m.jsx("span",{className:"eval-metric-name",children:n}),m.jsx("span",{className:"eval-metric-value",children:String(r)})]},n))]})}function SX({case:e}){const t=zl(e.metrics,"matched"),n=zl(e.metrics,"missing");return t===void 0&&n===void 0?null:m.jsxs("div",{className:"eval-case-recall-detail",children:[t!==void 0?`matched=[${t}]`:null,t!==void 0&&n!==void 0?" ":null,n!==void 0?`missing=[${n}]`:null]})}function wX({run:e}){const t=[...e.cases].reverse().find(r=>xX(r)&&zl(r.metrics,"recall")!==void 0),n=zl(t?.metrics,"recall")??[...e.cases].map(r=>zl(r.metrics,"recall")).find(r=>r!==void 0);return n===void 0?null:m.jsxs("span",{className:"eval-run-recall",title:"Suite recall",children:[m.jsx("span",{className:"eval-run-recall-label",children:"recall"}),m.jsx("span",{className:"eval-run-recall-value",children:n})]})}const EX={RunSummary:wX,CaseMetrics:kX,CaseExtras:SX},TX=Object.freeze(Object.defineProperty({__proto__:null,agentName:vX,default:EX},Symbol.toStringTag,{value:"Module"})),_X=Object.assign({"../../../../../../factory/vulnerability-scanner/agent/playground/evals.tsx":TX});function RX(e){return/\/(?:examples|factory)\/([^/]+)\/agent\/playground\//.exec(e)?.[1]}const iD=new Map;for(const[e,t]of Object.entries(_X)){if(t?.default==null)continue;const n=typeof t.agentName=="string"&&t.agentName.trim()!==""?t.agentName.trim():void 0,r=RX(e),s=new Set;n!==void 0&&s.add(n),r!==void 0&&s.add(r);for(const a of s)iD.set(a,t.default)}function CX(e){if(!(e===void 0||e.trim()===""))return iD.get(e.trim())}const NX={passed:"Pass",failed:"Fail",scored:"Scored",skipped:"Skipped"},AX={passed:"success",failed:"danger",scored:"warn",skipped:"neutral"};function OX(e){return e.verdict??(e.ok===!0?"passed":"failed")}function IX(e){const t=[];return e.score!==void 0&&t.push(`score ${e.score.toFixed(3)}${e.threshold===void 0?"":` ≥ ${e.threshold}`}`),e.detail!==void 0&&t.push(e.detail),t.length===0?void 0:t.join(" · ")}function MX({a:e}){return e.passed?m.jsx(Gt,{name:"check-circle",variant:"filled",size:"sm",color:"green"}):e.severity==="soft"?m.jsx(Gt,{name:"minus-circle",variant:"filled",size:"sm",color:"yellow"}):m.jsx(Gt,{name:"x-circle",variant:"filled",size:"sm",color:"red"})}function sD(e,t=200){const[n,r]=v.useState(e);return v.useEffect(()=>{if(e){r(!0);return}if(!n)return;const s=window.setTimeout(()=>r(!1),t);return()=>window.clearTimeout(s)},[e,n,t]),e||n}const DX={user:"chat-bubble",agent:"sparkles",think:"brain-simple",tool:"wrench",artifact:"bookmark"},zX={user:"User",agent:"Assistant",think:"Thinking",tool:"Tool call",artifact:"Artifact"},jX={user:"accent",agent:"green",think:"yellow",tool:"purple",artifact:"orange"};function LX({row:e}){const[t,n]=v.useState(!1),r=e.body!==void 0&&e.body.length>0||e.toolArgs!==void 0||e.toolOutput!==void 0,s=t&&r,a=sD(s),l=e.error?"error":e.kind;return m.jsxs("div",{className:`eval-step eval-step-${e.kind}${e.error?" error":""}`,children:[m.jsxs("button",{type:"button",className:"eval-step-head",disabled:!r,onClick:()=>n(c=>!c),"aria-expanded":t,children:[m.jsxs("span",{className:`eval-step-kind kind-${l}`,children:[m.jsx(Gt,{name:DX[e.kind],size:"sm",color:e.error?"red":jX[e.kind]}),m.jsx("span",{className:"eval-step-kind-label",children:zX[e.kind]})]}),m.jsx("span",{className:"eval-step-label",title:e.label,children:e.kind==="tool"&&e.toolName!==void 0?e.toolName:e.label}),e.ms!=null&&e.ms>0?m.jsx("span",{className:"eval-step-ms",children:li(e.ms)}):null,r?m.jsx("span",{className:t?"eval-chevron open":"eval-chevron",children:m.jsx(Gt,{name:"chevron-right",size:10})}):null]}),a?m.jsx("div",{className:s?"eval-collapse-clip":"eval-collapse-clip collapsed","aria-hidden":!s,inert:s?void 0:!0,children:m.jsxs("div",{className:"eval-step-detail",children:[e.kind==="tool"&&e.toolArgs!==void 0?m.jsxs("div",{className:"eval-step-block",children:[m.jsx("div",{className:"eval-step-block-label",children:"args"}),m.jsx("pre",{children:Eo(e.toolArgs)})]}):null,e.kind==="tool"&&e.toolOutput!==void 0?m.jsxs("div",{className:"eval-step-block",children:[m.jsx("div",{className:"eval-step-block-label",children:e.error?"error":"result"}),m.jsx("pre",{children:typeof e.toolOutput=="string"?e.toolOutput:Eo(e.toolOutput)})]}):null,e.kind!=="tool"&&e.body!==void 0?m.jsx("div",{className:"eval-step-block",children:m.jsx("pre",{children:e.body})}):null,e.kind==="tool"&&e.body!==void 0&&e.toolOutput===void 0?m.jsx("div",{className:"eval-step-block",children:m.jsx("pre",{children:e.body})}):null]})}):null]})}function PX({sessionId:e,live:t}){const[n,r]=v.useState([]),[s,a]=v.useState(null),[l,c]=v.useState(!0),[d,f]=v.useState(!1),h=v.useRef(null);v.useEffect(()=>{let b=!1;const y=new AbortController;return c(!0),a(null),r([]),f(!1),(async()=>{let k=-1;try{const S=await nt.api.eventsText(e);if(b)return;if(S.ok){const E=await S.text();if(b)return;const T=Lv(E);for(const _ of T)typeof _.index=="number"&&_.index>k&&(k=_.index);r(T)}}catch(S){b||a(S instanceof Error?S.message:String(S))}finally{b||c(!1)}if(!(!t||b)){f(!0);try{const S=await nt.api.streamFetch(e,k+1,y.signal);if(!S.ok||!S.body){b||(a(`Stream failed (${S.status})`),f(!1));return}const E=S.body.getReader(),T=new TextDecoder;let _="";for(;;){const{done:R,value:C}=await E.read();if(R||b)break;_+=T.decode(C,{stream:!0});const D=_.split(`
|
|
40
|
+
`}}function gX(e,t,n="application/json"){const r=new Blob([t],{type:n}),s=URL.createObjectURL(r),a=document.createElement("a");a.href=s,a.download=e,a.target="_self",document.body.appendChild(a),a.click(),a.remove(),URL.revokeObjectURL(s)}function vi(e){const t=e.at??null,n=e.ms??null;let r=e.startAt??null;return r===null&&t!==null&&n!==null&&n>0&&(r=t-n),r===null&&(r=t),{...e,startAt:r,at:t,ms:n}}function rD(e){const t=[];let n=null,r={};const s=new Map;let a=null,l="";const c=new Map;let d=null,f=1,h=0,g=0;function b(E){return n&&n.endedAt===null||(n={turnId:E?.turnId||`turn_${t.length+1}`,startedAt:E?.at?Dl(E.at):null,endedAt:null,usage:null,rows:[],provisional:!0},t.push(n)),n}function y(E){b({turnId:E.turnId,at:null}).rows.push(E),E.ms&&E.ms>f&&(f=E.ms)}function k(E){if(a===null)return;const T=b(),_=E!==null&&a!==null?Math.max(0,E-a):null,R=l.trim()||void 0;T.rows.push(vi({kind:"think",label:R?Pr(R,80):"thinking",body:R,ms:_,at:E,startAt:a})),_&&_>f&&(f=_),a=null,l=""}for(const E of e){const T=E.data||{},_=Dl(E.at);switch(E.type){case"turn.started":n&&n.provisional&&n.endedAt===null?(n.turnId=E.turnId||n.turnId,n.startedAt=_,n.provisional=!1):(n={turnId:E.turnId||`turn_${t.length+1}`,startedAt:_,endedAt:null,usage:null,rows:[],provisional:!1},t.push(n)),a=null,l="",d=null;break;case"message.received":y(vi({kind:"user",label:Pr(T.text,140),body:typeof T.text=="string"?T.text:void 0,at:_,startAt:_,ms:0,turnId:E.turnId}));break;case"reasoning.appended":if(typeof T.parentCallId=="string"&&T.parentCallId!==""){const R=c.get(T.parentCallId)??{start:_,text:""};R.start===null&&(R.start=_),typeof T.text=="string"&&(R.text=T.text),c.set(T.parentCallId,R);break}a===null&&(a=_),typeof T.text=="string"&&(l=T.text);break;case"reasoning.completed":if(typeof T.parentCallId=="string"&&T.parentCallId!==""){const R=T.parentCallId,C=c.get(R);c.delete(R);const D=C?.text.trim()||void 0;if(D!==void 0){const A=C?.start??_,N=A!==null&&_!==null?Math.max(0,_-A):null;y(vi({kind:"think",label:Pr(D,80),body:D,ms:N,at:_,startAt:A,turnId:E.turnId,depth:1,parentCallId:R}))}break}k(_);break;case"message.appended":if(typeof T.parentCallId=="string"&&T.parentCallId!=="")break;d===null&&(d=_);break;case"message.completed":{if(typeof T.parentCallId=="string"&&T.parentCallId!==""){const D=T.parentCallId;y(vi({kind:"agent",label:Pr(T.text,160)||"(empty reply)",body:typeof T.text=="string"?T.text:void 0,at:_,startAt:_,ms:0,turnId:E.turnId,depth:1,parentCallId:D}));break}const R=d??_,C=R!==null&&_!==null?Math.max(0,_-R):null;y(vi({kind:"agent",label:Pr(T.text,160)||"(empty reply)",body:typeof T.text=="string"?T.text:void 0,at:_,startAt:R,ms:C,turnId:E.turnId})),C&&C>f&&(f=C),d=null;break}case"actions.requested":for(const R of T.calls||[]){const C=typeof R.parentCallId=="string"&&R.parentCallId!==""?R.parentCallId:typeof T.parentCallId=="string"&&T.parentCallId!==""?T.parentCallId:void 0;if(C===void 0&&R.toolName==="task")continue;const D=C===void 0?R.callId:`${C}:${R.callId}`;r[D]={name:R.toolName,args:R.args,start:_,turnId:E.turnId,parentCallId:C}}break;case"action.result":{const R=T.callId;if(R==null)break;const C=typeof T.parentCallId=="string"&&T.parentCallId!==""?T.parentCallId:void 0;if(C===void 0&&T.toolName==="task"){delete r[R];break}const D=C===void 0?R:`${C}:${R}`,A=r[D];delete r[D];const N=A&&A.start!==null&&_!==null?_-A.start:null;h+=1,T.isError&&(g+=1);{const $=T.toolName||A?.name||"tool",L=A?.args;y(vi({kind:"tool",label:$+(L?` ${Pr(Xn(L,60),60)}`:""),toolName:$,callId:typeof R=="string"?R:String(R),toolArgs:L,toolOutput:T.output,body:typeof T.output=="string"?T.output:T.output!=null?Xn(T.output,4e3):void 0,ms:N,error:!!T.isError,at:_,startAt:A?.start??null,turnId:E.turnId,depth:C===void 0?0:1,parentCallId:C}))}N&&N>f&&(f=N);break}case"subagent.called":{const R=`task:${T.name||"subagent"}`,C=typeof T.callId=="string"?T.callId:String(T.callId);r[`sub:${C}`]={name:R,args:T.description,start:_,turnId:E.turnId};const D=b(E);D.rows.push(vi({kind:"tool",label:R,toolName:R,callId:C,toolArgs:T.description,ms:null,at:_,startAt:_,turnId:E.turnId,depth:0})),s.set(C,{turn:D,index:D.rows.length-1});break}case"subagent.completed":{const R=typeof T.callId=="string"?T.callId:String(T.callId),C=`sub:${R}`,D=r[C];delete r[C];const A=D&&D.start!==null&&_!==null?_-D.start:null;h+=1;const N=s.get(R);s.delete(R);const $=N!==void 0?N.turn.rows[N.index]:void 0;$!==void 0&&$.kind==="tool"?($.ms=A,$.at=_,A&&A>f&&(f=A)):y(vi({kind:"tool",label:D?.name||"subagent",toolName:D?.name||"subagent",callId:R,toolArgs:D?.args,ms:A,at:_,startAt:D?.start??null,turnId:E.turnId}));break}case"artifact.tagged":{const R=PM(T);y(vi({kind:"artifact",label:Pr(R.title===void 0?R.kind:`${R.kind} · ${R.title}`,120),body:T.data!=null?Xn(T.data,4e3):void 0,url:R.url,at:_,startAt:_,ms:0,turnId:E.turnId}));break}case"turn.completed":case"turn.failed":case"session.waiting":{if(E.type==="session.waiting"&&(n===null||n.endedAt!==null))break;const R=b(E);if((E.type==="turn.completed"||E.type==="turn.failed")&&(R.endedAt=_,R.usage=T.usage||null,R.cost=T.cost||null,R.failed=E.type==="turn.failed",R.error=T.message,R.startedAt!==null&&R.endedAt!==null)){const C=R.endedAt-R.startedAt;C>f&&(f=C),R.wallMs=C}if(k(_),d!==null&&_!==null){const C=Math.max(0,_-d);R.rows.push(vi({kind:"agent",label:"(streaming…)",ms:C,at:_,startAt:d})),d=null}for(const C of Object.keys(r)){const D=r[C],A=D.start!==null&&_!==null?_-D.start:null;R.rows.push(vi({kind:"tool",label:`${D.name||"tool"} (no result)`,ms:A,error:!0,at:_,startAt:D.start,turnId:D.turnId})),A&&A>f&&(f=A)}r={},(E.type==="turn.completed"||E.type==="turn.failed")&&(n=null);break}}}for(const E of Object.keys(r)){const T=r[E];y(vi({kind:"tool",label:`${T.name||"tool"} (running…)`,ms:null,at:T.start,startAt:T.start,turnId:T.turnId}))}let S=null;for(const E of t){const T=E.cost?.totalUsd;typeof T=="number"&&Number.isFinite(T)&&(S=(S??0)+T)}return{turns:t,maxWallMs:f,totalTools:h,failedTools:g,eventCount:e.length,totalCostUsd:S}}function bX(e,t=6){if(!Number.isFinite(e)||e<=0)return[0];const n=e/Math.max(2,t-1),r=10**Math.floor(Math.log10(Math.max(n,1))),s=[1,2,2.5,5,10].map(c=>c*r),a=s.find(c=>n/c<=1.5)??s[s.length-1],l=[0];for(let c=a;c<e-a*.25&&(l.push(c),!(l.length>=t-1));c+=a);return l[l.length-1]!==e&&l.push(e),l}function yX({case:e}){const t=Object.entries(e.metrics??{});return t.length===0?null:m.jsx("div",{className:"eval-metrics","aria-label":"Eval metrics",children:t.map(([n,r])=>m.jsxs("span",{className:"eval-metric",title:n,children:[m.jsx("span",{className:"eval-metric-name",children:n}),m.jsx("span",{className:"eval-metric-value",children:String(r)})]},n))})}const vX="VulnScanner";function zl(e,t){const n=e?.[t];if(n===void 0)return;const r=String(n).trim();return r===""?void 0:r}function xX(e){return e.id==="overall"||e.id.endsWith("/overall")||(e.tags?.includes("summary")??!1)}function kX({case:e}){const t=zl(e.metrics,"recall");if(t===void 0){const n=Object.entries(e.metrics??{});return n.length===0?null:m.jsx("div",{className:"eval-metrics","aria-label":"Eval metrics",children:n.map(([r,s])=>m.jsxs("span",{className:"eval-metric",title:r,children:[m.jsx("span",{className:"eval-metric-name",children:r}),m.jsx("span",{className:"eval-metric-value",children:String(s)})]},r))})}return m.jsxs("div",{className:"eval-metrics","aria-label":"Eval metrics",children:[m.jsxs("span",{className:"eval-metric eval-metric-recall",title:"recall",children:[m.jsx("span",{className:"eval-metric-name",children:"recall"}),m.jsx("span",{className:"eval-metric-value",children:t})]}),Object.entries(e.metrics??{}).filter(([n])=>n!=="recall"&&n!=="matched"&&n!=="missing").map(([n,r])=>m.jsxs("span",{className:"eval-metric",title:n,children:[m.jsx("span",{className:"eval-metric-name",children:n}),m.jsx("span",{className:"eval-metric-value",children:String(r)})]},n))]})}function SX({case:e}){const t=zl(e.metrics,"matched"),n=zl(e.metrics,"missing");return t===void 0&&n===void 0?null:m.jsxs("div",{className:"eval-case-recall-detail",children:[t!==void 0?`matched=[${t}]`:null,t!==void 0&&n!==void 0?" ":null,n!==void 0?`missing=[${n}]`:null]})}function wX({run:e}){const t=[...e.cases].reverse().find(r=>xX(r)&&zl(r.metrics,"recall")!==void 0),n=zl(t?.metrics,"recall")??[...e.cases].map(r=>zl(r.metrics,"recall")).find(r=>r!==void 0);return n===void 0?null:m.jsxs("span",{className:"eval-run-recall",title:"Suite recall",children:[m.jsx("span",{className:"eval-run-recall-label",children:"recall"}),m.jsx("span",{className:"eval-run-recall-value",children:n})]})}const EX={RunSummary:wX,CaseMetrics:kX,CaseExtras:SX},TX=Object.freeze(Object.defineProperty({__proto__:null,agentName:vX,default:EX},Symbol.toStringTag,{value:"Module"})),_X=Object.assign({"../../../../../../factory/vulnerability-scanner/agent/playground/evals.tsx":TX});function RX(e){return/\/factory\/([^/]+)\/agent\/playground\//.exec(e)?.[1]}const iD=new Map;for(const[e,t]of Object.entries(_X)){if(t?.default==null)continue;const n=typeof t.agentName=="string"&&t.agentName.trim()!==""?t.agentName.trim():void 0,r=RX(e),s=new Set;n!==void 0&&s.add(n),r!==void 0&&s.add(r);for(const a of s)iD.set(a,t.default)}function CX(e){if(!(e===void 0||e.trim()===""))return iD.get(e.trim())}const NX={passed:"Pass",failed:"Fail",scored:"Scored",skipped:"Skipped"},AX={passed:"success",failed:"danger",scored:"warn",skipped:"neutral"};function OX(e){return e.verdict??(e.ok===!0?"passed":"failed")}function IX(e){const t=[];return e.score!==void 0&&t.push(`score ${e.score.toFixed(3)}${e.threshold===void 0?"":` ≥ ${e.threshold}`}`),e.detail!==void 0&&t.push(e.detail),t.length===0?void 0:t.join(" · ")}function MX({a:e}){return e.passed?m.jsx(Gt,{name:"check-circle",variant:"filled",size:"sm",color:"green"}):e.severity==="soft"?m.jsx(Gt,{name:"minus-circle",variant:"filled",size:"sm",color:"yellow"}):m.jsx(Gt,{name:"x-circle",variant:"filled",size:"sm",color:"red"})}function sD(e,t=200){const[n,r]=v.useState(e);return v.useEffect(()=>{if(e){r(!0);return}if(!n)return;const s=window.setTimeout(()=>r(!1),t);return()=>window.clearTimeout(s)},[e,n,t]),e||n}const DX={user:"chat-bubble",agent:"sparkles",think:"brain-simple",tool:"wrench",artifact:"bookmark"},zX={user:"User",agent:"Assistant",think:"Thinking",tool:"Tool call",artifact:"Artifact"},jX={user:"accent",agent:"green",think:"yellow",tool:"purple",artifact:"orange"};function LX({row:e}){const[t,n]=v.useState(!1),r=e.body!==void 0&&e.body.length>0||e.toolArgs!==void 0||e.toolOutput!==void 0,s=t&&r,a=sD(s),l=e.error?"error":e.kind;return m.jsxs("div",{className:`eval-step eval-step-${e.kind}${e.error?" error":""}`,children:[m.jsxs("button",{type:"button",className:"eval-step-head",disabled:!r,onClick:()=>n(c=>!c),"aria-expanded":t,children:[m.jsxs("span",{className:`eval-step-kind kind-${l}`,children:[m.jsx(Gt,{name:DX[e.kind],size:"sm",color:e.error?"red":jX[e.kind]}),m.jsx("span",{className:"eval-step-kind-label",children:zX[e.kind]})]}),m.jsx("span",{className:"eval-step-label",title:e.label,children:e.kind==="tool"&&e.toolName!==void 0?e.toolName:e.label}),e.ms!=null&&e.ms>0?m.jsx("span",{className:"eval-step-ms",children:li(e.ms)}):null,r?m.jsx("span",{className:t?"eval-chevron open":"eval-chevron",children:m.jsx(Gt,{name:"chevron-right",size:10})}):null]}),a?m.jsx("div",{className:s?"eval-collapse-clip":"eval-collapse-clip collapsed","aria-hidden":!s,inert:s?void 0:!0,children:m.jsxs("div",{className:"eval-step-detail",children:[e.kind==="tool"&&e.toolArgs!==void 0?m.jsxs("div",{className:"eval-step-block",children:[m.jsx("div",{className:"eval-step-block-label",children:"args"}),m.jsx("pre",{children:Eo(e.toolArgs)})]}):null,e.kind==="tool"&&e.toolOutput!==void 0?m.jsxs("div",{className:"eval-step-block",children:[m.jsx("div",{className:"eval-step-block-label",children:e.error?"error":"result"}),m.jsx("pre",{children:typeof e.toolOutput=="string"?e.toolOutput:Eo(e.toolOutput)})]}):null,e.kind!=="tool"&&e.body!==void 0?m.jsx("div",{className:"eval-step-block",children:m.jsx("pre",{children:e.body})}):null,e.kind==="tool"&&e.body!==void 0&&e.toolOutput===void 0?m.jsx("div",{className:"eval-step-block",children:m.jsx("pre",{children:e.body})}):null]})}):null]})}function PX({sessionId:e,live:t}){const[n,r]=v.useState([]),[s,a]=v.useState(null),[l,c]=v.useState(!0),[d,f]=v.useState(!1),h=v.useRef(null);v.useEffect(()=>{let b=!1;const y=new AbortController;return c(!0),a(null),r([]),f(!1),(async()=>{let k=-1;try{const S=await nt.api.eventsText(e);if(b)return;if(S.ok){const E=await S.text();if(b)return;const T=Lv(E);for(const _ of T)typeof _.index=="number"&&_.index>k&&(k=_.index);r(T)}}catch(S){b||a(S instanceof Error?S.message:String(S))}finally{b||c(!1)}if(!(!t||b)){f(!0);try{const S=await nt.api.streamFetch(e,k+1,y.signal);if(!S.ok||!S.body){b||(a(`Stream failed (${S.status})`),f(!1));return}const E=S.body.getReader(),T=new TextDecoder;let _="";for(;;){const{done:R,value:C}=await E.read();if(R||b)break;_+=T.decode(C,{stream:!0});const D=_.split(`
|
|
41
41
|
`);_=D.pop()??"";const A=[];for(const N of D){const $=N.trim();if($)try{const L=JSON.parse($);A.push(L),typeof L.index=="number"&&L.index>k&&(k=L.index)}catch{}}A.length>0&&!b&&r(N=>[...N,...A])}}catch(S){!b&&!(S instanceof DOMException&&S.name==="AbortError")&&a(S instanceof Error?S.message:String(S))}finally{b||f(!1)}}})(),()=>{b=!0,y.abort()}},[e,t]),v.useEffect(()=>{t&&h.current&&h.current.scrollIntoView({block:"nearest"})},[n.length,t]);const g=v.useMemo(()=>rD(n),[n]);return l&&n.length===0?m.jsxs("div",{className:"eval-trace",children:[m.jsx("span",{className:"spin"})," Loading session trace…"]}):s!==null&&n.length===0?m.jsx("div",{className:"eval-error",children:s}):g.turns.length===0?m.jsx("div",{className:"eval-trace",children:m.jsx("div",{className:"eval-trace-empty",children:t?m.jsxs(m.Fragment,{children:[m.jsx("span",{className:"spin"})," Waiting for first events…"]}):"No events in this session."})}):m.jsxs("div",{className:"eval-trace",children:[m.jsxs("div",{className:"eval-trace-meta",children:[g.eventCount," events · ",g.totalTools," tool",g.totalTools===1?"":"s",g.failedTools>0?` · ${g.failedTools} failed`:"",t||d?m.jsxs(m.Fragment,{children:[" · ",m.jsxs("span",{className:"eval-live",children:[m.jsx("span",{className:"spin"})," live"]})]}):null]}),s!==null?m.jsx("div",{className:"eval-error",children:s}):null,g.turns.map((b,y)=>m.jsxs("div",{className:"eval-turn",children:[m.jsxs("div",{className:"eval-turn-head",children:["Turn ",y+1,b.failed?" · failed":"",b.wallMs!=null&&b.wallMs>0?` · ${li(b.wallMs)}`:""]}),b.rows.map((k,S)=>m.jsx(LX,{row:k},`${b.turnId}-${S}-${k.kind}`))]},b.turnId)),m.jsx("div",{ref:h})]})}function $X({c:e}){const t=e.inputs??[],n=e.toolCalls??[];return t.length>0||e.finalText!==void 0||n.length>0||e.tools!==void 0&&e.tools.length>0?m.jsxs("div",{className:"eval-io",children:[m.jsxs("div",{className:"eval-io-section",children:[m.jsx("div",{className:"eval-io-heading",children:"Inputs"}),t.length===0?m.jsx("div",{className:"eval-trace-empty",children:"None yet"}):t.map((s,a)=>m.jsxs("div",{className:"eval-step-block",children:[m.jsxs("div",{className:"eval-step-block-label",children:["message ",t.length>1?a+1:""]}),m.jsx("pre",{children:s})]},`in-${a}`))]}),m.jsxs("div",{className:"eval-io-section",children:[m.jsx("div",{className:"eval-io-heading",children:"Tool calls"}),n.length===0?m.jsx("div",{className:"eval-trace-empty",children:e.tools&&e.tools.length>0?e.tools.join(", "):"None"}):n.map((s,a)=>m.jsxs("div",{className:`eval-step eval-step-tool${s.isError?" error":""}`,children:[m.jsxs("div",{className:"eval-step-head",style:{cursor:"default"},children:[m.jsxs("span",{className:`eval-step-kind kind-${s.isError?"error":"tool"}`,children:[m.jsx(Gt,{name:"wrench",size:"sm",color:s.isError?"red":"purple"}),m.jsx("span",{className:"eval-step-kind-label",children:"Tool call"})]}),m.jsx("span",{className:"eval-step-label",children:s.toolName})]}),m.jsxs("div",{className:"eval-step-detail",children:[s.args!==void 0?m.jsxs("div",{className:"eval-step-block",children:[m.jsx("div",{className:"eval-step-block-label",children:"args"}),m.jsx("pre",{children:Eo(s.args)})]}):null,s.output!==void 0?m.jsxs("div",{className:"eval-step-block",children:[m.jsx("div",{className:"eval-step-block-label",children:s.isError?"error":"result"}),m.jsx("pre",{children:typeof s.output=="string"?s.output:Eo(s.output)})]}):null]})]},`tc-${a}-${s.toolName}`))]}),m.jsxs("div",{className:"eval-io-section",children:[m.jsx("div",{className:"eval-io-heading",children:"Output"}),e.finalText!==void 0&&e.finalText!==""?m.jsxs("div",{className:"eval-step-block",children:[m.jsx("div",{className:"eval-step-block-label",children:"final reply"}),m.jsx("pre",{children:e.finalText})]}):m.jsx("div",{className:"eval-trace-empty",children:e.status==="running"?"Waiting for reply…":"No final reply"})]})]}):m.jsx("div",{className:"eval-io",children:m.jsx("div",{className:"eval-trace-empty",children:e.status==="running"?"Waiting for inputs / outputs…":"No captured inputs or outputs."})})}function BX({c:e,batchRunning:t,customization:n}){const[r,s]=v.useState(!1),[a,l]=v.useState(!1),c=r||a,d=sD(c),f=v.useRef({io:!1,expanded:!1});c&&(f.current={io:a,expanded:r});const h=c?a:f.current.io,g=c?r:f.current.expanded,b=OX(e),y=e.status==="pending"?"Queued":e.status==="running"?"Running":NX[b],k=e.status==="done"?AX[b]:e.status==="running"?"accent":"neutral",S=e.sessionId!==void 0||e.status==="done"||e.status==="running",E=e.status==="done"||e.status==="running"||e.inputs!==void 0&&e.inputs.length>0||e.finalText!==void 0,T=n?.CaseMetrics,_=n?.CaseExtras;return m.jsxs("div",{className:`eval-case${r||a?" expanded":""}`,children:[m.jsxs("div",{className:"eval-case-head",children:[m.jsxs("button",{type:"button",className:"eval-id-btn",disabled:!S,"aria-expanded":r,title:S?r?"Collapse":"Expand live trace":void 0,onClick:()=>s(R=>!R),children:[m.jsx("span",{className:r?"eval-chevron open":"eval-chevron",children:m.jsx(Gt,{name:"chevron-right",size:10})}),m.jsx(Xi,{variant:k,size:"sm",children:y}),m.jsx("span",{className:"eval-id",children:e.id})]}),m.jsxs("div",{className:"eval-case-actions",children:[e.durationMs!==void 0?m.jsxs("span",{className:"eval-dur",children:[(e.durationMs/1e3).toFixed(1),"s"]}):null,E?m.jsx(Sn,{variant:a?"secondary":"ghost",size:"sm",onClick:()=>l(R=>!R),title:"View eval inputs, tool results, and final output",children:"I/O"}):null,e.sessionId!==void 0?m.jsxs(m.Fragment,{children:[m.jsx(Sn,{variant:"ghost",size:"sm",onClick:()=>{nt.openEvalCaseTrace(e.sessionId)},children:"Full trace"}),m.jsx(Sn,{variant:"ghost",size:"sm",onClick:()=>{nt.openEvalCaseSession(e.sessionId)},children:"Chat"})]}):null]})]}),e.description!==void 0?m.jsx("div",{className:"eval-desc",children:e.description}):null,T!==void 0?m.jsx(T,{case:e,batchRunning:t}):m.jsx(yX,{case:e}),_!==void 0?m.jsx(_,{case:e,batchRunning:t}):null,e.error!==void 0?m.jsxs("div",{className:"eval-error",children:["error: ",e.error]}):null,e.skipReason!==void 0?m.jsxs("div",{className:"eval-desc",children:["skipped: ",e.skipReason]}):null,e.assertions!==void 0&&e.assertions.length>0?m.jsx("div",{className:"eval-assertions",children:e.assertions.map(R=>{const C=IX(R);return m.jsxs("div",{className:R.passed||R.severity==="soft"?"eval-assertion":"eval-assertion fail",children:[m.jsx("span",{className:"eval-assertion-icon",children:m.jsx(MX,{a:R})}),m.jsxs("span",{className:"eval-assertion-text",children:[m.jsx("span",{className:"eval-assertion-name",children:R.name}),C!==void 0?m.jsx("span",{className:"eval-assertion-detail",children:C}):null]})]},`${R.name}-${R.passed}-${R.detail??""}`)})}):null,e.logs!==void 0&&e.logs.length>0?m.jsx("div",{className:"eval-logs",children:e.logs.map((R,C)=>m.jsx("div",{className:"eval-log-line",children:R},`${C}:${R}`))}):null,d?m.jsxs("div",{className:c?"eval-collapse-clip":"eval-collapse-clip collapsed","aria-hidden":!c,inert:c?void 0:!0,children:[h?m.jsx($X,{c:e}):null,g&&e.sessionId!==void 0?m.jsx(PX,{sessionId:e.sessionId,live:e.status==="running"&&t},e.sessionId):null,g&&e.sessionId===void 0?m.jsx("div",{className:"eval-trace-empty",children:e.status==="running"?m.jsxs(m.Fragment,{children:[m.jsx("span",{className:"spin"})," ",eR(e)?"Aggregating sibling cases…":"Waiting for session…"]}):eR(e)?m.jsxs(m.Fragment,{children:["Suite summary (no agent session)",e.finalText!==void 0?m.jsx("pre",{className:"eval-final-text",children:e.finalText}):null]}):m.jsxs(m.Fragment,{children:["No session for this case",e.finalText!==void 0?m.jsx("pre",{className:"eval-final-text",children:e.finalText}):null]})}):null]}):null]})}function eR(e){return e.id==="overall"||e.id.endsWith("/overall")||(e.tags?.includes("summary")??!1)}function oD(){const e=Ke(y=>y.evalRun),t=Ke(y=>y.evalCases),n=Ke(y=>y.evalConfig),r=Ke(y=>y.meta.name),s=Ke(y=>y.meta.readonly===!0),a=v.useMemo(()=>CX(r),[r]),l=e?.status==="running",c=!s&&t.length>0,d=a?.RunSummary;if(e===null)return m.jsx("div",{className:"pg-evals",children:m.jsxs("div",{className:"eval-empty",children:[m.jsx("p",{children:"No eval run selected."}),m.jsxs("p",{className:"eval-hint",children:[t.length>0?`${t.length} case${t.length===1?"":"s"} discovered.`:"No evals/ cases found for this agent.",n?.maxConcurrency!==void 0?` Concurrency: ${n.maxConcurrency}.`:""]}),c?m.jsx("p",{className:"eval-hint",children:n?.durableRuns===!0?`Runs persist via the agent/storage.ts evals table (keeps last ${n.maxPlaygroundRuns??20}).`:`Runs stay in memory only (last ${n?.maxPlaygroundRuns??20}); lost when serve exits. Add an evals table to agent/storage.ts to keep them.`}):null,c?m.jsx(Sn,{variant:"secondary",size:"sm",disabled:l,onClick:()=>{nt.startEvalRun()},children:"Run all"}):null]})});const{summary:f,status:h}=e,g=h==="failed"||h==="cancelled"?"danger":l?"accent":"success",b=h==="failed"?"Failed":h==="cancelled"?"Cancelled":l?"Running":"Completed";return m.jsxs("div",{className:"pg-evals",children:[m.jsxs("div",{className:"eval-summary",children:[m.jsx(Xi,{variant:g,size:"sm",children:b}),m.jsx("span",{className:"eval-run-id",title:"Eval ID",children:e.runId}),m.jsxs("span",{className:"eval-summary-stats",children:[m.jsxs("span",{className:"eval-summary-muted",children:[f.done,"/",f.total," done · ",f.passed," passed"]})," · ",f.failed," failed",f.scored!==void 0&&f.scored>0?m.jsxs("span",{className:"eval-summary-muted",children:[" · ",f.scored," scored"]}):null,f.skipped!==void 0&&f.skipped>0?m.jsxs("span",{className:"eval-summary-muted",children:[" · ",f.skipped," skipped"]}):null]}),d!==void 0?m.jsx(d,{run:e}):null,l?m.jsx("span",{className:"spin"}):null,e.error!==void 0?m.jsx("span",{className:"eval-error",children:e.error}):null,m.jsxs("div",{className:"eval-actions",children:[m.jsx(Sn,{variant:"ghost",size:"sm",onClick:()=>{const y=mX(e);gX(y.filename,y.text)},title:"Download this eval run's results (assertions, metrics, I/O) as JSON",children:"Download run"}),l?m.jsx(Sn,{variant:"secondary",size:"sm",onClick:()=>{nt.cancelEvalRun(e.runId)},children:"Cancel"}):null,c?m.jsx(Sn,{variant:"secondary",size:"sm",disabled:l,onClick:()=>{nt.startEvalRun()},children:"Run all"}):null]})]}),m.jsx("div",{className:"eval-case-list",children:e.cases.map(y=>m.jsx(BX,{c:y,batchRunning:l,customization:a},y.id))})]})}const tR=typeof document<"u"?v.useLayoutEffect:v.useEffect;function FX({useFlushSync:e=!0,...t}){const n=v.useReducer(()=>({}),{})[1],r={...t,onChange:(a,l)=>{var c;e&&l?Li.flushSync(n):n(),(c=t.onChange)==null||c.call(t,a,l)}},[s]=v.useState(()=>new xB(r));return s.setOptions(r),tR(()=>s._didMount(),[]),tR(()=>s._willUpdate()),s}function aD(e){return FX({observeElementRect:gB,observeElementOffset:bB,scrollToFn:vB,...e})}const lD=48;function UX(e){return e.scrollHeight-e.scrollTop-e.clientHeight}function qX(e,t=lD){return UX(e)<=t}function Ty(e){e.scrollTop=e.scrollHeight}function uD(e){const{contentKey:t,latchKey:n,thresholdPx:r=lD}=e,s=v.useRef(null),a=v.useRef(!0);return v.useEffect(()=>{const l=s.current;if(!l)return;const c=()=>{a.current=qX(l,r)};return l.addEventListener("scroll",c,{passive:!0}),()=>l.removeEventListener("scroll",c)},[r,t,n]),v.useLayoutEffect(()=>{if(n===void 0)return;a.current=!0;const l=s.current;l&&Ty(l)},[n]),v.useLayoutEffect(()=>{if(!a.current)return;const l=s.current;l&&Ty(l)},[t]),v.useEffect(()=>{const l=s.current;if(!l)return;const c=()=>{a.current&&Ty(l)};c();const d=new Set,f=new ResizeObserver(c),h=y=>{d.has(y)||(d.add(y),f.observe(y))},g=y=>{h(y);for(const k of y.children)g(k)};g(l);const b=new MutationObserver(y=>{for(const k of y)k.addedNodes.forEach(S=>{S instanceof Element&&g(S)});c()});return b.observe(l,{childList:!0,subtree:!0}),()=>{f.disconnect(),b.disconnect()}},[t,n]),{scrollRef:s}}function cD(){const e=Ke(a=>a.traceEvents),t=Ke(a=>a.current),n=e.length,{scrollRef:r}=uD({contentKey:n,latchKey:`${t?.sessionId??"none"}:${n}`}),s=aD({count:n,getScrollElement:()=>r.current,estimateSize:()=>18,overscan:24});return n===0?m.jsx("div",{className:"pg-raw",children:m.jsx(Is,{body:"Select a session to see the raw event stream."})}):m.jsxs("div",{className:"pg-raw",children:[m.jsx("div",{className:"head",children:"Raw NDJSON stream"}),m.jsx("div",{className:"raw-lines",ref:r,children:m.jsx("div",{style:{height:s.getTotalSize(),position:"relative",width:"100%"},children:s.getVirtualItems().map(a=>{const l=e[a.index];return m.jsxs("div",{"data-index":a.index,ref:s.measureElement,style:{position:"absolute",top:0,left:0,width:"100%",transform:`translateY(${a.start}px)`},children:[m.jsx("span",{children:`[${l.index??a.index}] `}),m.jsx("span",{className:"etype",children:l.type}),m.jsx("span",{children:` ${Xn(l.data,240)}`})]},a.key)})})})]})}const HX={user:"chat-bubble",agent:"sparkles",think:"brain-simple",tool:"wrench",artifact:"bookmark"},GX={user:"User",agent:"Assistant",think:"Thinking",tool:"Tool call",artifact:"Artifact"},VX={user:"accent",agent:"green",think:"yellow",tool:"purple",artifact:"orange"};function WX(e,t){return t?"red":VX[e]}function fD({kind:e,error:t,showLabel:n=!0}){const r=WX(e,t),s=`${GX[e]}${t?" · error":""}`;return m.jsxs("span",{className:`wf-kind kind-${t?"error":e}`,title:n?void 0:s,"aria-label":n?void 0:s,children:[m.jsx(Gt,{name:HX[e],size:"sm",color:r}),n?m.jsx("span",{className:"wf-kind-label",children:s}):null]})}function KX(e){if(e.startedAt!=null)return e.startedAt;let t=Number.POSITIVE_INFINITY;for(const n of e.rows){const r=n.startAt??n.at;r!=null&&r<t&&(t=r)}return Number.isFinite(t)?t:0}function ZX(e,t){if(e.wallMs!=null&&e.wallMs>0)return e.wallMs;if(e.endedAt!=null&&e.endedAt>t)return e.endedAt-t;let n=0;for(const r of e.rows){const a=(r.startAt??r.at??t)+(r.ms!=null&&r.ms>0?r.ms:0);a-t>n&&(n=a-t)}return Math.max(n,1)}function YX(e,t,n,r,s){const a=e.startAt??e.at??r,l=Math.max(0,a-r),c=e.ms!=null&&e.ms>0?e.ms:e.ms===0?0:null,d=c===null||c===0,f=s*.012,h=d?f:Math.max(c,f),g=Math.max(0,Math.min(100,l/s*100)),b=Math.max(.9,Math.min(100-g,h/s*100));return{id:`${n}-${t}`,row:e,turnId:n,wallMs:s,startMs:l,durMs:h,trueDurMs:c,leftPct:g,widthPct:b,instant:d}}function dD(e){return e===null?"—":e===0?"instant":li(e)}function Es({label:e,value:t}){return m.jsxs("div",{children:[m.jsx("dt",{children:e}),m.jsx("dd",{title:t,children:t})]})}function XX({span:e,onClose:t}){const{row:n,turnId:r,startMs:s,trueDurMs:a,wallMs:l}=e,c=a!=null?s+a:s,d=a!=null&&a>0&&l>0?`${(a/l*100).toFixed(1)}%`:"—",f=n.body?.trim()||"",h=n.toolArgs!=null?Eo(n.toolArgs):"",g=n.toolOutput!=null?Eo(n.toolOutput):n.kind==="tool"&&f?f:"";return m.jsxs("aside",{className:"trace-detail","aria-label":"Span details",children:[m.jsxs("div",{className:"trace-detail-head",children:[m.jsx(fD,{kind:n.kind,error:n.error}),m.jsx(vr,{icon:"x",size:"sm",variant:"ghost","aria-label":"Close",onClick:t})]}),n.toolName?m.jsx("div",{className:"trace-detail-title",children:n.toolName}):null,n.url?m.jsx(ka,{className:"artifact-link",href:n.url,children:n.url}):null,n.kind!=="tool"&&f?m.jsx("pre",{className:"trace-detail-body",children:f}):null,n.kind!=="tool"&&!f&&n.label?m.jsx("div",{className:"trace-detail-label",children:n.label}):null,m.jsxs("dl",{className:"trace-detail-meta",children:[m.jsx(Es,{label:"Turn",value:r}),n.error?m.jsx(Es,{label:"Status",value:"error"}):null,m.jsx(Es,{label:"Start +",value:li(s)}),m.jsx(Es,{label:"End +",value:li(c)}),m.jsx(Es,{label:"Duration",value:dD(a)}),m.jsx(Es,{label:"% of turn",value:d}),m.jsx(Es,{label:"Started",value:W_(n.startAt)}),m.jsx(Es,{label:"Ended",value:W_(n.at)}),n.callId?m.jsx(Es,{label:"Call id",value:n.callId}):null]}),h?m.jsxs("div",{className:"trace-detail-section",children:[m.jsx("div",{className:"trace-detail-section-title",children:"Args"}),m.jsx("pre",{className:"trace-detail-body",children:h})]}):null,g?m.jsxs("div",{className:"trace-detail-section",children:[m.jsx("div",{className:"trace-detail-section-title",children:n.error?"Error":"Output"}),m.jsx("pre",{className:"trace-detail-body",children:g})]}):null]})}function QX({span:e,selected:t,detailOpen:n,onSelect:r}){const{row:s}=e,a=`${s.kind}${s.error?" error":""}`,l=dD(e.trueDurMs),c=e.widthPct>=8,d=s.depth??0;return m.jsxs("button",{type:"button",className:`wf-row ${a}${t?" selected":""}${d>0?" nested":""}`,onClick:r,"aria-pressed":t,style:d>0?{paddingLeft:`${8+d*14}px`}:void 0,children:[m.jsx(fD,{kind:s.kind,error:s.error,showLabel:!n}),m.jsx("span",{className:"wf-name",title:s.label,children:d>0?`↳ ${s.label||"—"}`:s.label||"—"}),m.jsx("span",{className:"wf-track","aria-hidden":"true",children:m.jsx("span",{className:`wf-bar ${a}${e.instant?" instant":""}`,style:{left:`${e.leftPct}%`,width:`${e.widthPct}%`},children:c?m.jsx("span",{className:"wf-bar-label",children:l}):null})}),m.jsx("span",{className:"wf-dur",children:l})]})}function JX({turn:e,index:t,selectedId:n,onSelect:r}){const s=KX(e),a=ZX(e,s),l=v.useMemo(()=>e.rows.map((h,g)=>YX(h,g,e.turnId,s,a)),[e,s,a]),c=v.useMemo(()=>bX(a),[a]),d=[];e.wallMs!==void 0&&d.push(`Worked for ${Dk(e.wallMs)}`),e.usage&&d.push(`in ${kh(e.usage.inputTokens)} · out ${kh(e.usage.outputTokens)}`);const f=e.cost?.totalUsd;return typeof f=="number"&&Number.isFinite(f)&&d.push(xm(f)),m.jsxs("div",{className:e.failed?"trace-turn trace-turn--failed":"trace-turn",children:[m.jsxs("div",{className:"thead",children:[m.jsxs("span",{className:"thead-title",children:["Turn ",t+1,m.jsx("code",{className:"thead-id",children:e.turnId}),e.failed?m.jsxs("span",{className:"thead-failed",children:[m.jsx(Gt,{name:"x-circle",size:"sm",variant:"filled",color:"red","aria-hidden":"true"}),"Failed"]}):null]}),m.jsx("span",{className:"wall",children:d.join(" · ")||"In progress"})]}),m.jsxs("div",{className:"wf",children:[m.jsxs("div",{className:"wf-ruler","aria-hidden":"true",children:[m.jsx("span",{className:"wf-kind"}),m.jsx("span",{className:"wf-name"}),m.jsx("span",{className:"wf-track wf-ruler-track",children:c.map(h=>m.jsxs("span",{className:"wf-tick",style:{left:`${h/a*100}%`},children:[m.jsx("span",{className:"wf-tick-line"}),m.jsx("span",{className:"wf-tick-label",children:li(h)})]},h))}),m.jsx("span",{className:"wf-dur"})]}),l.length===0?m.jsx("div",{className:"trace-empty-turn",children:"No timed spans in this turn."}):l.map(h=>m.jsx(QX,{span:h,selected:n===h.id,detailOpen:n!=null,onSelect:()=>r(n===h.id?null:h)},h.id))]})]})}function pD(){const e=Ke(c=>c.traceEvents),t=Ke(c=>c.sessionCostUsd),n=v.useMemo(()=>rD(e),[e]),[r,s]=v.useState(null);if(!e.length)return m.jsx("div",{className:"pg-trace",children:m.jsx(Is,{body:"Select a session to see the timeline."})});const a=t??n.totalCostUsd,l=[`${n.eventCount} events`,`${n.turns.length} turn${n.turns.length===1?"":"s"}`,`${n.totalTools} tool call${n.totalTools===1?"":"s"}`,n.failedTools?`${n.failedTools} error${n.failedTools===1?"":"s"}`:null,a!==null?`cost ${xm(a)}`:null].filter(Boolean).join(" · ");return m.jsx("div",{className:"pg-trace",children:m.jsxs("div",{className:"trace-rows",children:[m.jsx("div",{className:"trace-summary",children:l}),m.jsxs("div",{className:`trace-layout${r?" has-detail":""}`,children:[m.jsx("div",{className:"trace-main",children:n.turns.map((c,d)=>m.jsx(JX,{turn:c,index:d,selectedId:r?.id??null,onSelect:s},`${c.turnId||"turn"}-${d}`))}),r?m.jsx(XX,{span:r,onClose:()=>s(null)}):null]})]})})}function eQ(e,t){const n={};return(e[e.length-1]===""?[...e,""]:e).join((n.padRight?" ":"")+","+(n.padLeft===!1?"":" ")).trim()}const tQ=/^[$_\p{ID_Start}][$_\u{200C}\u{200D}\p{ID_Continue}]*$/u,nQ=/^[$_\p{ID_Start}][-$_\u{200C}\u{200D}\p{ID_Continue}]*$/u,rQ={};function nR(e,t){return(rQ.jsx?nQ:tQ).test(e)}const iQ=/[ \t\n\f\r]/g;function sQ(e){return typeof e=="object"?e.type==="text"?rR(e.value):!1:rR(e)}function rR(e){return e.replace(iQ,"")===""}class _f{constructor(t,n,r){this.normal=n,this.property=t,r&&(this.space=r)}}_f.prototype.normal={};_f.prototype.property={};_f.prototype.space=void 0;function hD(e,t){const n={},r={};for(const s of e)Object.assign(n,s.property),Object.assign(r,s.normal);return new _f(n,r,t)}function Bv(e){return e.toLowerCase()}class Gr{constructor(t,n){this.attribute=n,this.property=t}}Gr.prototype.attribute="";Gr.prototype.booleanish=!1;Gr.prototype.boolean=!1;Gr.prototype.commaOrSpaceSeparated=!1;Gr.prototype.commaSeparated=!1;Gr.prototype.defined=!1;Gr.prototype.mustUseProperty=!1;Gr.prototype.number=!1;Gr.prototype.overloadedBoolean=!1;Gr.prototype.property="";Gr.prototype.spaceSeparated=!1;Gr.prototype.space=void 0;let oQ=0;const Dt=Aa(),Kn=Aa(),Fv=Aa(),Fe=Aa(),kn=Aa(),jl=Aa(),ri=Aa();function Aa(){return 2**++oQ}const Uv=Object.freeze(Object.defineProperty({__proto__:null,boolean:Dt,booleanish:Kn,commaOrSpaceSeparated:ri,commaSeparated:jl,number:Fe,overloadedBoolean:Fv,spaceSeparated:kn},Symbol.toStringTag,{value:"Module"})),_y=Object.keys(Uv);class Pk extends Gr{constructor(t,n,r,s){let a=-1;if(super(t,n),iR(this,"space",s),typeof r=="number")for(;++a<_y.length;){const l=_y[a];iR(this,_y[a],(r&Uv[l])===Uv[l])}}}Pk.prototype.defined=!0;function iR(e,t,n){n&&(e[t]=n)}function nu(e){const t={},n={};for(const[r,s]of Object.entries(e.properties)){const a=new Pk(r,e.transform(e.attributes||{},r),s,e.space);e.mustUseProperty&&e.mustUseProperty.includes(r)&&(a.mustUseProperty=!0),t[r]=a,n[Bv(r)]=r,n[Bv(a.attribute)]=r}return new _f(t,n,e.space)}const mD=nu({properties:{ariaActiveDescendant:null,ariaAtomic:Kn,ariaAutoComplete:null,ariaBusy:Kn,ariaChecked:Kn,ariaColCount:Fe,ariaColIndex:Fe,ariaColSpan:Fe,ariaControls:kn,ariaCurrent:null,ariaDescribedBy:kn,ariaDetails:null,ariaDisabled:Kn,ariaDropEffect:kn,ariaErrorMessage:null,ariaExpanded:Kn,ariaFlowTo:kn,ariaGrabbed:Kn,ariaHasPopup:null,ariaHidden:Kn,ariaInvalid:null,ariaKeyShortcuts:null,ariaLabel:null,ariaLabelledBy:kn,ariaLevel:Fe,ariaLive:null,ariaModal:Kn,ariaMultiLine:Kn,ariaMultiSelectable:Kn,ariaOrientation:null,ariaOwns:kn,ariaPlaceholder:null,ariaPosInSet:Fe,ariaPressed:Kn,ariaReadOnly:Kn,ariaRelevant:null,ariaRequired:Kn,ariaRoleDescription:kn,ariaRowCount:Fe,ariaRowIndex:Fe,ariaRowSpan:Fe,ariaSelected:Kn,ariaSetSize:Fe,ariaSort:null,ariaValueMax:Fe,ariaValueMin:Fe,ariaValueNow:Fe,ariaValueText:null,role:null},transform(e,t){return t==="role"?t:"aria-"+t.slice(4).toLowerCase()}});function gD(e,t){return t in e?e[t]:t}function bD(e,t){return gD(e,t.toLowerCase())}const aQ=nu({attributes:{acceptcharset:"accept-charset",classname:"class",htmlfor:"for",httpequiv:"http-equiv"},mustUseProperty:["checked","multiple","muted","selected"],properties:{abbr:null,accept:jl,acceptCharset:kn,accessKey:kn,action:null,allow:null,allowFullScreen:Dt,allowPaymentRequest:Dt,allowUserMedia:Dt,alt:null,as:null,async:Dt,autoCapitalize:null,autoComplete:kn,autoFocus:Dt,autoPlay:Dt,blocking:kn,capture:null,charSet:null,checked:Dt,cite:null,className:kn,cols:Fe,colSpan:null,content:null,contentEditable:Kn,controls:Dt,controlsList:kn,coords:Fe|jl,crossOrigin:null,data:null,dateTime:null,decoding:null,default:Dt,defer:Dt,dir:null,dirName:null,disabled:Dt,download:Fv,draggable:Kn,encType:null,enterKeyHint:null,fetchPriority:null,form:null,formAction:null,formEncType:null,formMethod:null,formNoValidate:Dt,formTarget:null,headers:kn,height:Fe,hidden:Fv,high:Fe,href:null,hrefLang:null,htmlFor:kn,httpEquiv:kn,id:null,imageSizes:null,imageSrcSet:null,inert:Dt,inputMode:null,integrity:null,is:null,isMap:Dt,itemId:null,itemProp:kn,itemRef:kn,itemScope:Dt,itemType:kn,kind:null,label:null,lang:null,language:null,list:null,loading:null,loop:Dt,low:Fe,manifest:null,max:null,maxLength:Fe,media:null,method:null,min:null,minLength:Fe,multiple:Dt,muted:Dt,name:null,nonce:null,noModule:Dt,noValidate:Dt,onAbort:null,onAfterPrint:null,onAuxClick:null,onBeforeMatch:null,onBeforePrint:null,onBeforeToggle:null,onBeforeUnload:null,onBlur:null,onCancel:null,onCanPlay:null,onCanPlayThrough:null,onChange:null,onClick:null,onClose:null,onContextLost:null,onContextMenu:null,onContextRestored:null,onCopy:null,onCueChange:null,onCut:null,onDblClick:null,onDrag:null,onDragEnd:null,onDragEnter:null,onDragExit:null,onDragLeave:null,onDragOver:null,onDragStart:null,onDrop:null,onDurationChange:null,onEmptied:null,onEnded:null,onError:null,onFocus:null,onFormData:null,onHashChange:null,onInput:null,onInvalid:null,onKeyDown:null,onKeyPress:null,onKeyUp:null,onLanguageChange:null,onLoad:null,onLoadedData:null,onLoadedMetadata:null,onLoadEnd:null,onLoadStart:null,onMessage:null,onMessageError:null,onMouseDown:null,onMouseEnter:null,onMouseLeave:null,onMouseMove:null,onMouseOut:null,onMouseOver:null,onMouseUp:null,onOffline:null,onOnline:null,onPageHide:null,onPageShow:null,onPaste:null,onPause:null,onPlay:null,onPlaying:null,onPopState:null,onProgress:null,onRateChange:null,onRejectionHandled:null,onReset:null,onResize:null,onScroll:null,onScrollEnd:null,onSecurityPolicyViolation:null,onSeeked:null,onSeeking:null,onSelect:null,onSlotChange:null,onStalled:null,onStorage:null,onSubmit:null,onSuspend:null,onTimeUpdate:null,onToggle:null,onUnhandledRejection:null,onUnload:null,onVolumeChange:null,onWaiting:null,onWheel:null,open:Dt,optimum:Fe,pattern:null,ping:kn,placeholder:null,playsInline:Dt,popover:null,popoverTarget:null,popoverTargetAction:null,poster:null,preload:null,readOnly:Dt,referrerPolicy:null,rel:kn,required:Dt,reversed:Dt,rows:Fe,rowSpan:Fe,sandbox:kn,scope:null,scoped:Dt,seamless:Dt,selected:Dt,shadowRootClonable:Dt,shadowRootDelegatesFocus:Dt,shadowRootMode:null,shape:null,size:Fe,sizes:null,slot:null,span:Fe,spellCheck:Kn,src:null,srcDoc:null,srcLang:null,srcSet:null,start:Fe,step:null,style:null,tabIndex:Fe,target:null,title:null,translate:null,type:null,typeMustMatch:Dt,useMap:null,value:Kn,width:Fe,wrap:null,writingSuggestions:null,align:null,aLink:null,archive:kn,axis:null,background:null,bgColor:null,border:Fe,borderColor:null,bottomMargin:Fe,cellPadding:null,cellSpacing:null,char:null,charOff:null,classId:null,clear:null,code:null,codeBase:null,codeType:null,color:null,compact:Dt,declare:Dt,event:null,face:null,frame:null,frameBorder:null,hSpace:Fe,leftMargin:Fe,link:null,longDesc:null,lowSrc:null,marginHeight:Fe,marginWidth:Fe,noResize:Dt,noHref:Dt,noShade:Dt,noWrap:Dt,object:null,profile:null,prompt:null,rev:null,rightMargin:Fe,rules:null,scheme:null,scrolling:Kn,standby:null,summary:null,text:null,topMargin:Fe,valueType:null,version:null,vAlign:null,vLink:null,vSpace:Fe,allowTransparency:null,autoCorrect:null,autoSave:null,disablePictureInPicture:Dt,disableRemotePlayback:Dt,prefix:null,property:null,results:Fe,security:null,unselectable:null},space:"html",transform:bD}),lQ=nu({attributes:{accentHeight:"accent-height",alignmentBaseline:"alignment-baseline",arabicForm:"arabic-form",baselineShift:"baseline-shift",capHeight:"cap-height",className:"class",clipPath:"clip-path",clipRule:"clip-rule",colorInterpolation:"color-interpolation",colorInterpolationFilters:"color-interpolation-filters",colorProfile:"color-profile",colorRendering:"color-rendering",crossOrigin:"crossorigin",dataType:"datatype",dominantBaseline:"dominant-baseline",enableBackground:"enable-background",fillOpacity:"fill-opacity",fillRule:"fill-rule",floodColor:"flood-color",floodOpacity:"flood-opacity",fontFamily:"font-family",fontSize:"font-size",fontSizeAdjust:"font-size-adjust",fontStretch:"font-stretch",fontStyle:"font-style",fontVariant:"font-variant",fontWeight:"font-weight",glyphName:"glyph-name",glyphOrientationHorizontal:"glyph-orientation-horizontal",glyphOrientationVertical:"glyph-orientation-vertical",hrefLang:"hreflang",horizAdvX:"horiz-adv-x",horizOriginX:"horiz-origin-x",horizOriginY:"horiz-origin-y",imageRendering:"image-rendering",letterSpacing:"letter-spacing",lightingColor:"lighting-color",markerEnd:"marker-end",markerMid:"marker-mid",markerStart:"marker-start",navDown:"nav-down",navDownLeft:"nav-down-left",navDownRight:"nav-down-right",navLeft:"nav-left",navNext:"nav-next",navPrev:"nav-prev",navRight:"nav-right",navUp:"nav-up",navUpLeft:"nav-up-left",navUpRight:"nav-up-right",onAbort:"onabort",onActivate:"onactivate",onAfterPrint:"onafterprint",onBeforePrint:"onbeforeprint",onBegin:"onbegin",onCancel:"oncancel",onCanPlay:"oncanplay",onCanPlayThrough:"oncanplaythrough",onChange:"onchange",onClick:"onclick",onClose:"onclose",onCopy:"oncopy",onCueChange:"oncuechange",onCut:"oncut",onDblClick:"ondblclick",onDrag:"ondrag",onDragEnd:"ondragend",onDragEnter:"ondragenter",onDragExit:"ondragexit",onDragLeave:"ondragleave",onDragOver:"ondragover",onDragStart:"ondragstart",onDrop:"ondrop",onDurationChange:"ondurationchange",onEmptied:"onemptied",onEnd:"onend",onEnded:"onended",onError:"onerror",onFocus:"onfocus",onFocusIn:"onfocusin",onFocusOut:"onfocusout",onHashChange:"onhashchange",onInput:"oninput",onInvalid:"oninvalid",onKeyDown:"onkeydown",onKeyPress:"onkeypress",onKeyUp:"onkeyup",onLoad:"onload",onLoadedData:"onloadeddata",onLoadedMetadata:"onloadedmetadata",onLoadStart:"onloadstart",onMessage:"onmessage",onMouseDown:"onmousedown",onMouseEnter:"onmouseenter",onMouseLeave:"onmouseleave",onMouseMove:"onmousemove",onMouseOut:"onmouseout",onMouseOver:"onmouseover",onMouseUp:"onmouseup",onMouseWheel:"onmousewheel",onOffline:"onoffline",onOnline:"ononline",onPageHide:"onpagehide",onPageShow:"onpageshow",onPaste:"onpaste",onPause:"onpause",onPlay:"onplay",onPlaying:"onplaying",onPopState:"onpopstate",onProgress:"onprogress",onRateChange:"onratechange",onRepeat:"onrepeat",onReset:"onreset",onResize:"onresize",onScroll:"onscroll",onSeeked:"onseeked",onSeeking:"onseeking",onSelect:"onselect",onShow:"onshow",onStalled:"onstalled",onStorage:"onstorage",onSubmit:"onsubmit",onSuspend:"onsuspend",onTimeUpdate:"ontimeupdate",onToggle:"ontoggle",onUnload:"onunload",onVolumeChange:"onvolumechange",onWaiting:"onwaiting",onZoom:"onzoom",overlinePosition:"overline-position",overlineThickness:"overline-thickness",paintOrder:"paint-order",panose1:"panose-1",pointerEvents:"pointer-events",referrerPolicy:"referrerpolicy",renderingIntent:"rendering-intent",shapeRendering:"shape-rendering",stopColor:"stop-color",stopOpacity:"stop-opacity",strikethroughPosition:"strikethrough-position",strikethroughThickness:"strikethrough-thickness",strokeDashArray:"stroke-dasharray",strokeDashOffset:"stroke-dashoffset",strokeLineCap:"stroke-linecap",strokeLineJoin:"stroke-linejoin",strokeMiterLimit:"stroke-miterlimit",strokeOpacity:"stroke-opacity",strokeWidth:"stroke-width",tabIndex:"tabindex",textAnchor:"text-anchor",textDecoration:"text-decoration",textRendering:"text-rendering",transformOrigin:"transform-origin",typeOf:"typeof",underlinePosition:"underline-position",underlineThickness:"underline-thickness",unicodeBidi:"unicode-bidi",unicodeRange:"unicode-range",unitsPerEm:"units-per-em",vAlphabetic:"v-alphabetic",vHanging:"v-hanging",vIdeographic:"v-ideographic",vMathematical:"v-mathematical",vectorEffect:"vector-effect",vertAdvY:"vert-adv-y",vertOriginX:"vert-origin-x",vertOriginY:"vert-origin-y",wordSpacing:"word-spacing",writingMode:"writing-mode",xHeight:"x-height",playbackOrder:"playbackorder",timelineBegin:"timelinebegin"},properties:{about:ri,accentHeight:Fe,accumulate:null,additive:null,alignmentBaseline:null,alphabetic:Fe,amplitude:Fe,arabicForm:null,ascent:Fe,attributeName:null,attributeType:null,azimuth:Fe,bandwidth:null,baselineShift:null,baseFrequency:null,baseProfile:null,bbox:null,begin:null,bias:Fe,by:null,calcMode:null,capHeight:Fe,className:kn,clip:null,clipPath:null,clipPathUnits:null,clipRule:null,color:null,colorInterpolation:null,colorInterpolationFilters:null,colorProfile:null,colorRendering:null,content:null,contentScriptType:null,contentStyleType:null,crossOrigin:null,cursor:null,cx:null,cy:null,d:null,dataType:null,defaultAction:null,descent:Fe,diffuseConstant:Fe,direction:null,display:null,dur:null,divisor:Fe,dominantBaseline:null,download:Dt,dx:null,dy:null,edgeMode:null,editable:null,elevation:Fe,enableBackground:null,end:null,event:null,exponent:Fe,externalResourcesRequired:null,fill:null,fillOpacity:Fe,fillRule:null,filter:null,filterRes:null,filterUnits:null,floodColor:null,floodOpacity:null,focusable:null,focusHighlight:null,fontFamily:null,fontSize:null,fontSizeAdjust:null,fontStretch:null,fontStyle:null,fontVariant:null,fontWeight:null,format:null,fr:null,from:null,fx:null,fy:null,g1:jl,g2:jl,glyphName:jl,glyphOrientationHorizontal:null,glyphOrientationVertical:null,glyphRef:null,gradientTransform:null,gradientUnits:null,handler:null,hanging:Fe,hatchContentUnits:null,hatchUnits:null,height:null,href:null,hrefLang:null,horizAdvX:Fe,horizOriginX:Fe,horizOriginY:Fe,id:null,ideographic:Fe,imageRendering:null,initialVisibility:null,in:null,in2:null,intercept:Fe,k:Fe,k1:Fe,k2:Fe,k3:Fe,k4:Fe,kernelMatrix:ri,kernelUnitLength:null,keyPoints:null,keySplines:null,keyTimes:null,kerning:null,lang:null,lengthAdjust:null,letterSpacing:null,lightingColor:null,limitingConeAngle:Fe,local:null,markerEnd:null,markerMid:null,markerStart:null,markerHeight:null,markerUnits:null,markerWidth:null,mask:null,maskContentUnits:null,maskUnits:null,mathematical:null,max:null,media:null,mediaCharacterEncoding:null,mediaContentEncodings:null,mediaSize:Fe,mediaTime:null,method:null,min:null,mode:null,name:null,navDown:null,navDownLeft:null,navDownRight:null,navLeft:null,navNext:null,navPrev:null,navRight:null,navUp:null,navUpLeft:null,navUpRight:null,numOctaves:null,observer:null,offset:null,onAbort:null,onActivate:null,onAfterPrint:null,onBeforePrint:null,onBegin:null,onCancel:null,onCanPlay:null,onCanPlayThrough:null,onChange:null,onClick:null,onClose:null,onCopy:null,onCueChange:null,onCut:null,onDblClick:null,onDrag:null,onDragEnd:null,onDragEnter:null,onDragExit:null,onDragLeave:null,onDragOver:null,onDragStart:null,onDrop:null,onDurationChange:null,onEmptied:null,onEnd:null,onEnded:null,onError:null,onFocus:null,onFocusIn:null,onFocusOut:null,onHashChange:null,onInput:null,onInvalid:null,onKeyDown:null,onKeyPress:null,onKeyUp:null,onLoad:null,onLoadedData:null,onLoadedMetadata:null,onLoadStart:null,onMessage:null,onMouseDown:null,onMouseEnter:null,onMouseLeave:null,onMouseMove:null,onMouseOut:null,onMouseOver:null,onMouseUp:null,onMouseWheel:null,onOffline:null,onOnline:null,onPageHide:null,onPageShow:null,onPaste:null,onPause:null,onPlay:null,onPlaying:null,onPopState:null,onProgress:null,onRateChange:null,onRepeat:null,onReset:null,onResize:null,onScroll:null,onSeeked:null,onSeeking:null,onSelect:null,onShow:null,onStalled:null,onStorage:null,onSubmit:null,onSuspend:null,onTimeUpdate:null,onToggle:null,onUnload:null,onVolumeChange:null,onWaiting:null,onZoom:null,opacity:null,operator:null,order:null,orient:null,orientation:null,origin:null,overflow:null,overlay:null,overlinePosition:Fe,overlineThickness:Fe,paintOrder:null,panose1:null,path:null,pathLength:Fe,patternContentUnits:null,patternTransform:null,patternUnits:null,phase:null,ping:kn,pitch:null,playbackOrder:null,pointerEvents:null,points:null,pointsAtX:Fe,pointsAtY:Fe,pointsAtZ:Fe,preserveAlpha:null,preserveAspectRatio:null,primitiveUnits:null,propagate:null,property:ri,r:null,radius:null,referrerPolicy:null,refX:null,refY:null,rel:ri,rev:ri,renderingIntent:null,repeatCount:null,repeatDur:null,requiredExtensions:ri,requiredFeatures:ri,requiredFonts:ri,requiredFormats:ri,resource:null,restart:null,result:null,rotate:null,rx:null,ry:null,scale:null,seed:null,shapeRendering:null,side:null,slope:null,snapshotTime:null,specularConstant:Fe,specularExponent:Fe,spreadMethod:null,spacing:null,startOffset:null,stdDeviation:null,stemh:null,stemv:null,stitchTiles:null,stopColor:null,stopOpacity:null,strikethroughPosition:Fe,strikethroughThickness:Fe,string:null,stroke:null,strokeDashArray:ri,strokeDashOffset:null,strokeLineCap:null,strokeLineJoin:null,strokeMiterLimit:Fe,strokeOpacity:Fe,strokeWidth:null,style:null,surfaceScale:Fe,syncBehavior:null,syncBehaviorDefault:null,syncMaster:null,syncTolerance:null,syncToleranceDefault:null,systemLanguage:ri,tabIndex:Fe,tableValues:null,target:null,targetX:Fe,targetY:Fe,textAnchor:null,textDecoration:null,textRendering:null,textLength:null,timelineBegin:null,title:null,transformBehavior:null,type:null,typeOf:ri,to:null,transform:null,transformOrigin:null,u1:null,u2:null,underlinePosition:Fe,underlineThickness:Fe,unicode:null,unicodeBidi:null,unicodeRange:null,unitsPerEm:Fe,values:null,vAlphabetic:Fe,vMathematical:Fe,vectorEffect:null,vHanging:Fe,vIdeographic:Fe,version:null,vertAdvY:Fe,vertOriginX:Fe,vertOriginY:Fe,viewBox:null,viewTarget:null,visibility:null,width:null,widths:null,wordSpacing:null,writingMode:null,x:null,x1:null,x2:null,xChannelSelector:null,xHeight:Fe,y:null,y1:null,y2:null,yChannelSelector:null,z:null,zoomAndPan:null},space:"svg",transform:gD}),yD=nu({properties:{xLinkActuate:null,xLinkArcRole:null,xLinkHref:null,xLinkRole:null,xLinkShow:null,xLinkTitle:null,xLinkType:null},space:"xlink",transform(e,t){return"xlink:"+t.slice(5).toLowerCase()}}),vD=nu({attributes:{xmlnsxlink:"xmlns:xlink"},properties:{xmlnsXLink:null,xmlns:null},space:"xmlns",transform:bD}),xD=nu({properties:{xmlBase:null,xmlLang:null,xmlSpace:null},space:"xml",transform(e,t){return"xml:"+t.slice(3).toLowerCase()}}),uQ={classId:"classID",dataType:"datatype",itemId:"itemID",strokeDashArray:"strokeDasharray",strokeDashOffset:"strokeDashoffset",strokeLineCap:"strokeLinecap",strokeLineJoin:"strokeLinejoin",strokeMiterLimit:"strokeMiterlimit",typeOf:"typeof",xLinkActuate:"xlinkActuate",xLinkArcRole:"xlinkArcrole",xLinkHref:"xlinkHref",xLinkRole:"xlinkRole",xLinkShow:"xlinkShow",xLinkTitle:"xlinkTitle",xLinkType:"xlinkType",xmlnsXLink:"xmlnsXlink"},cQ=/[A-Z]/g,sR=/-[a-z]/g,fQ=/^data[-\w.:]+$/i;function dQ(e,t){const n=Bv(t);let r=t,s=Gr;if(n in e.normal)return e.property[e.normal[n]];if(n.length>4&&n.slice(0,4)==="data"&&fQ.test(t)){if(t.charAt(4)==="-"){const a=t.slice(5).replace(sR,hQ);r="data"+a.charAt(0).toUpperCase()+a.slice(1)}else{const a=t.slice(4);if(!sR.test(a)){let l=a.replace(cQ,pQ);l.charAt(0)!=="-"&&(l="-"+l),t="data"+l}}s=Pk}return new s(r,t)}function pQ(e){return"-"+e.toLowerCase()}function hQ(e){return e.charAt(1).toUpperCase()}const mQ=hD([mD,aQ,yD,vD,xD],"html"),$k=hD([mD,lQ,yD,vD,xD],"svg");function gQ(e){return e.join(" ").trim()}var gl={},Ry,oR;function bQ(){if(oR)return Ry;oR=1;var e=/\/\*[^*]*\*+([^/*][^*]*\*+)*\//g,t=/\n/g,n=/^\s*/,r=/^(\*?[-#/*\\\w]+(\[[0-9a-z_-]+\])?)\s*/,s=/^:\s*/,a=/^((?:'(?:\\'|.)*?'|"(?:\\"|.)*?"|\([^)]*?\)|[^};])+)/,l=/^[;\s]*/,c=/^\s+|\s+$/g,d=`
|
|
42
42
|
`,f="/",h="*",g="",b="comment",y="declaration";Ry=function(S,E){if(typeof S!="string")throw new TypeError("First argument must be a string");if(!S)return[];E=E||{};var T=1,_=1;function R(U){var z=U.match(t);z&&(T+=z.length);var F=U.lastIndexOf(d);_=~F?U.length-F:_+U.length}function C(){var U={line:T,column:_};return function(z){return z.position=new D(U),$(),z}}function D(U){this.start=U,this.end={line:T,column:_},this.source=E.source}D.prototype.content=S;function A(U){var z=new Error(E.source+":"+T+":"+_+": "+U);if(z.reason=U,z.filename=E.source,z.line=T,z.column=_,z.source=S,!E.silent)throw z}function N(U){var z=U.exec(S);if(z){var F=z[0];return R(F),S=S.slice(F.length),z}}function $(){N(n)}function L(U){var z;for(U=U||[];z=M();)z!==!1&&U.push(z);return U}function M(){var U=C();if(!(f!=S.charAt(0)||h!=S.charAt(1))){for(var z=2;g!=S.charAt(z)&&(h!=S.charAt(z)||f!=S.charAt(z+1));)++z;if(z+=2,g===S.charAt(z-1))return A("End of comment missing");var F=S.slice(2,z-2);return _+=2,R(F),S=S.slice(z),_+=2,U({type:b,comment:F})}}function Z(){var U=C(),z=N(r);if(z){if(M(),!N(s))return A("property missing ':'");var F=N(a),H=U({type:y,property:k(z[0].replace(e,g)),value:F?k(F[0].replace(e,g)):g});return N(l),H}}function q(){var U=[];L(U);for(var z;z=Z();)z!==!1&&(U.push(z),L(U));return U}return $(),q()};function k(S){return S?S.replace(c,g):g}return Ry}var aR;function yQ(){if(aR)return gl;aR=1;var e=gl&&gl.__importDefault||function(r){return r&&r.__esModule?r:{default:r}};Object.defineProperty(gl,"__esModule",{value:!0}),gl.default=n;var t=e(bQ());function n(r,s){var a=null;if(!r||typeof r!="string")return a;var l=(0,t.default)(r),c=typeof s=="function";return l.forEach(function(d){if(d.type==="declaration"){var f=d.property,h=d.value;c?s(f,h,d):h&&(a=a||{},a[f]=h)}}),a}return gl}var vQ=yQ();const lR=af(vQ),xQ=lR.default||lR,kQ=Object.freeze(Object.defineProperty({__proto__:null,default:xQ},Symbol.toStringTag,{value:"Module"})),SQ=y2(kQ);var cc={},uR;function wQ(){if(uR)return cc;uR=1,Object.defineProperty(cc,"__esModule",{value:!0}),cc.camelCase=void 0;var e=/^--[a-zA-Z0-9_-]+$/,t=/-([a-z])/g,n=/^[^-]+$/,r=/^-(webkit|moz|ms|o|khtml)-/,s=/^-(ms)-/,a=function(f){return!f||n.test(f)||e.test(f)},l=function(f,h){return h.toUpperCase()},c=function(f,h){return"".concat(h,"-")},d=function(f,h){return h===void 0&&(h={}),a(f)?f:(f=f.toLowerCase(),h.reactCompat?f=f.replace(s,c):f=f.replace(r,c),f.replace(t,l))};return cc.camelCase=d,cc}var fc,cR;function EQ(){if(cR)return fc;cR=1;var e=fc&&fc.__importDefault||function(s){return s&&s.__esModule?s:{default:s}},t=e(SQ),n=wQ();function r(s,a){var l={};return!s||typeof s!="string"||(0,t.default)(s,function(c,d){c&&d&&(l[(0,n.camelCase)(c,a)]=d)}),l}return r.default=r,fc=r,fc}var TQ=EQ();const _Q=af(TQ),kD=SD("end"),Bk=SD("start");function SD(e){return t;function t(n){const r=n&&n.position&&n.position[e]||{};if(typeof r.line=="number"&&r.line>0&&typeof r.column=="number"&&r.column>0)return{line:r.line,column:r.column,offset:typeof r.offset=="number"&&r.offset>-1?r.offset:void 0}}}function RQ(e){const t=Bk(e),n=kD(e);if(t&&n)return{start:t,end:n}}function Ic(e){return!e||typeof e!="object"?"":"position"in e||"type"in e?fR(e.position):"start"in e||"end"in e?fR(e):"line"in e||"column"in e?qv(e):""}function qv(e){return dR(e&&e.line)+":"+dR(e&&e.column)}function fR(e){return qv(e&&e.start)+"-"+qv(e&&e.end)}function dR(e){return e&&typeof e=="number"?e:1}class xr extends Error{constructor(t,n,r){super(),typeof n=="string"&&(r=n,n=void 0);let s="",a={},l=!1;if(n&&("line"in n&&"column"in n?a={place:n}:"start"in n&&"end"in n?a={place:n}:"type"in n?a={ancestors:[n],place:n.position}:a={...n}),typeof t=="string"?s=t:!a.cause&&t&&(l=!0,s=t.message,a.cause=t),!a.ruleId&&!a.source&&typeof r=="string"){const d=r.indexOf(":");d===-1?a.ruleId=r:(a.source=r.slice(0,d),a.ruleId=r.slice(d+1))}if(!a.place&&a.ancestors&&a.ancestors){const d=a.ancestors[a.ancestors.length-1];d&&(a.place=d.position)}const c=a.place&&"start"in a.place?a.place.start:a.place;this.ancestors=a.ancestors||void 0,this.cause=a.cause||void 0,this.column=c?c.column:void 0,this.fatal=void 0,this.file,this.message=s,this.line=c?c.line:void 0,this.name=Ic(a.place)||"1:1",this.place=a.place||void 0,this.reason=this.message,this.ruleId=a.ruleId||void 0,this.source=a.source||void 0,this.stack=l&&a.cause&&typeof a.cause.stack=="string"?a.cause.stack:"",this.actual,this.expected,this.note,this.url}}xr.prototype.file="";xr.prototype.name="";xr.prototype.reason="";xr.prototype.message="";xr.prototype.stack="";xr.prototype.column=void 0;xr.prototype.line=void 0;xr.prototype.ancestors=void 0;xr.prototype.cause=void 0;xr.prototype.fatal=void 0;xr.prototype.place=void 0;xr.prototype.ruleId=void 0;xr.prototype.source=void 0;const Fk={}.hasOwnProperty,CQ=new Map,NQ=/[A-Z]/g,AQ=new Set(["table","tbody","thead","tfoot","tr"]),OQ=new Set(["td","th"]),wD="https://github.com/syntax-tree/hast-util-to-jsx-runtime";function IQ(e,t){if(!t||t.Fragment===void 0)throw new TypeError("Expected `Fragment` in options");const n=t.filePath||void 0;let r;if(t.development){if(typeof t.jsxDEV!="function")throw new TypeError("Expected `jsxDEV` in options when `development: true`");r=BQ(n,t.jsxDEV)}else{if(typeof t.jsx!="function")throw new TypeError("Expected `jsx` in production options");if(typeof t.jsxs!="function")throw new TypeError("Expected `jsxs` in production options");r=$Q(n,t.jsx,t.jsxs)}const s={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"?$k:mQ,stylePropertyNameCase:t.stylePropertyNameCase||"dom",tableCellAlignToStyle:t.tableCellAlignToStyle!==!1},a=ED(s,e,void 0);return a&&typeof a!="string"?a:s.create(e,s.Fragment,{children:a||void 0},void 0)}function ED(e,t,n){if(t.type==="element")return MQ(e,t,n);if(t.type==="mdxFlowExpression"||t.type==="mdxTextExpression")return DQ(e,t);if(t.type==="mdxJsxFlowElement"||t.type==="mdxJsxTextElement")return jQ(e,t,n);if(t.type==="mdxjsEsm")return zQ(e,t);if(t.type==="root")return LQ(e,t,n);if(t.type==="text")return PQ(e,t)}function MQ(e,t,n){const r=e.schema;let s=r;t.tagName.toLowerCase()==="svg"&&r.space==="html"&&(s=$k,e.schema=s),e.ancestors.push(t);const a=_D(e,t.tagName,!1),l=FQ(e,t);let c=qk(e,t);return AQ.has(t.tagName)&&(c=c.filter(function(d){return typeof d=="string"?!sQ(d):!0})),TD(e,l,a,t),Uk(l,c),e.ancestors.pop(),e.schema=r,e.create(t,a,l,n)}function DQ(e,t){if(t.data&&t.data.estree&&e.evaluater){const r=t.data.estree.body[0];return r.type,e.evaluater.evaluateExpression(r.expression)}rf(e,t.position)}function zQ(e,t){if(t.data&&t.data.estree&&e.evaluater)return e.evaluater.evaluateProgram(t.data.estree);rf(e,t.position)}function jQ(e,t,n){const r=e.schema;let s=r;t.name==="svg"&&r.space==="html"&&(s=$k,e.schema=s),e.ancestors.push(t);const a=t.name===null?e.Fragment:_D(e,t.name,!0),l=UQ(e,t),c=qk(e,t);return TD(e,l,a,t),Uk(l,c),e.ancestors.pop(),e.schema=r,e.create(t,a,l,n)}function LQ(e,t,n){const r={};return Uk(r,qk(e,t)),e.create(t,e.Fragment,r,n)}function PQ(e,t){return t.value}function TD(e,t,n,r){typeof n!="string"&&n!==e.Fragment&&e.passNode&&(t.node=r)}function Uk(e,t){if(t.length>0){const n=t.length>1?t:t[0];n&&(e.children=n)}}function $Q(e,t,n){return r;function r(s,a,l,c){const f=Array.isArray(l.children)?n:t;return c?f(a,l,c):f(a,l)}}function BQ(e,t){return n;function n(r,s,a,l){const c=Array.isArray(a.children),d=Bk(r);return t(s,a,l,c,{columnNumber:d?d.column-1:void 0,fileName:e,lineNumber:d?d.line:void 0},void 0)}}function FQ(e,t){const n={};let r,s;for(s in t.properties)if(s!=="children"&&Fk.call(t.properties,s)){const a=qQ(e,s,t.properties[s]);if(a){const[l,c]=a;e.tableCellAlignToStyle&&l==="align"&&typeof c=="string"&&OQ.has(t.tagName)?r=c:n[l]=c}}if(r){const a=n.style||(n.style={});a[e.stylePropertyNameCase==="css"?"text-align":"textAlign"]=r}return n}function UQ(e,t){const n={};for(const r of t.attributes)if(r.type==="mdxJsxExpressionAttribute")if(r.data&&r.data.estree&&e.evaluater){const a=r.data.estree.body[0];a.type;const l=a.expression;l.type;const c=l.properties[0];c.type,Object.assign(n,e.evaluater.evaluateExpression(c.argument))}else rf(e,t.position);else{const s=r.name;let a;if(r.value&&typeof r.value=="object")if(r.value.data&&r.value.data.estree&&e.evaluater){const c=r.value.data.estree.body[0];c.type,a=e.evaluater.evaluateExpression(c.expression)}else rf(e,t.position);else a=r.value===null?!0:r.value;n[s]=a}return n}function qk(e,t){const n=[];let r=-1;const s=e.passKeys?new Map:CQ;for(;++r<t.children.length;){const a=t.children[r];let l;if(e.passKeys){const d=a.type==="element"?a.tagName:a.type==="mdxJsxFlowElement"||a.type==="mdxJsxTextElement"?a.name:void 0;if(d){const f=s.get(d)||0;l=d+"-"+f,s.set(d,f+1)}}const c=ED(e,a,l);c!==void 0&&n.push(c)}return n}function qQ(e,t,n){const r=dQ(e.schema,t);if(!(n==null||typeof n=="number"&&Number.isNaN(n))){if(Array.isArray(n)&&(n=r.commaSeparated?eQ(n):gQ(n)),r.property==="style"){let s=typeof n=="object"?n:HQ(e,String(n));return e.stylePropertyNameCase==="css"&&(s=GQ(s)),["style",s]}return[e.elementAttributeNameCase==="react"&&r.space?uQ[r.property]||r.property:r.attribute,n]}}function HQ(e,t){try{return _Q(t,{reactCompat:!0})}catch(n){if(e.ignoreInvalidStyle)return{};const r=n,s=new xr("Cannot parse `style` attribute",{ancestors:e.ancestors,cause:r,ruleId:"style",source:"hast-util-to-jsx-runtime"});throw s.file=e.filePath||void 0,s.url=wD+"#cannot-parse-style-attribute",s}}function _D(e,t,n){let r;if(!n)r={type:"Literal",value:t};else if(t.includes(".")){const s=t.split(".");let a=-1,l;for(;++a<s.length;){const c=nR(s[a])?{type:"Identifier",name:s[a]}:{type:"Literal",value:s[a]};l=l?{type:"MemberExpression",object:l,property:c,computed:!!(a&&c.type==="Literal"),optional:!1}:c}r=l}else r=nR(t)&&!/^[a-z]/.test(t)?{type:"Identifier",name:t}:{type:"Literal",value:t};if(r.type==="Literal"){const s=r.value;return Fk.call(e.components,s)?e.components[s]:s}if(e.evaluater)return e.evaluater.evaluateExpression(r);rf(e)}function rf(e,t){const n=new xr("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=wD+"#cannot-handle-mdx-estrees-without-createevaluater",n}function GQ(e){const t={};let n;for(n in e)Fk.call(e,n)&&(t[VQ(n)]=e[n]);return t}function VQ(e){let t=e.replace(NQ,WQ);return t.slice(0,3)==="ms-"&&(t="-"+t),t}function WQ(e){return"-"+e.toLowerCase()}const Cy={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"]},KQ={};function Hk(e,t){const n=KQ,r=typeof n.includeImageAlt=="boolean"?n.includeImageAlt:!0,s=typeof n.includeHtml=="boolean"?n.includeHtml:!0;return RD(e,r,s)}function RD(e,t,n){if(ZQ(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 pR(e.children,t,n)}return Array.isArray(e)?pR(e,t,n):""}function pR(e,t,n){const r=[];let s=-1;for(;++s<e.length;)r[s]=RD(e[s],t,n);return r.join("")}function ZQ(e){return!!(e&&typeof e=="object")}const hR=document.createElement("i");function Gk(e){const t="&"+e+";";hR.innerHTML=t;const n=hR.textContent;return n.charCodeAt(n.length-1)===59&&e!=="semi"||n===t?!1:n}function oi(e,t,n,r){const s=e.length;let a=0,l;if(t<0?t=-t>s?0:s+t:t=t>s?s:t,n=n>0?n:0,r.length<1e4)l=Array.from(r),l.unshift(t,n),e.splice(...l);else for(n&&e.splice(t,n);a<r.length;)l=r.slice(a,a+1e4),l.unshift(t,0),e.splice(...l),a+=1e4,t+=1e4}function ki(e,t){return e.length>0?(oi(e,e.length,0,t),e):t}const mR={}.hasOwnProperty;function CD(e){const t={};let n=-1;for(;++n<e.length;)YQ(t,e[n]);return t}function YQ(e,t){let n;for(n in t){const s=(mR.call(e,n)?e[n]:void 0)||(e[n]={}),a=t[n];let l;if(a)for(l in a){mR.call(s,l)||(s[l]=[]);const c=a[l];XQ(s[l],Array.isArray(c)?c:c?[c]:[])}}}function XQ(e,t){let n=-1;const r=[];for(;++n<t.length;)(t[n].add==="after"?e:r).push(t[n]);oi(e,0,0,r)}function ND(e,t){const 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 Di(e){return e.replace(/[\t\n\r ]+/g," ").replace(/^ | $/g,"").toLowerCase().toUpperCase()}const _r=Mo(/[A-Za-z]/),gr=Mo(/[\dA-Za-z]/),QQ=Mo(/[#-'*+\--9=?A-Z^-~]/);function wh(e){return e!==null&&(e<32||e===127)}const Hv=Mo(/\d/),JQ=Mo(/[\dA-Fa-f]/),eJ=Mo(/[!-/:-@[-`{-~]/);function gt(e){return e!==null&&e<-2}function yn(e){return e!==null&&(e<0||e===32)}function Ht(e){return e===-2||e===-1||e===32}const Em=Mo(new RegExp("\\p{P}|\\p{S}","u")),Sa=Mo(/\s/);function Mo(e){return t;function t(n){return n!==null&&n>-1&&e.test(String.fromCharCode(n))}}function ru(e){const t=[];let n=-1,r=0,s=0;for(;++n<e.length;){const a=e.charCodeAt(n);let l="";if(a===37&&gr(e.charCodeAt(n+1))&&gr(e.charCodeAt(n+2)))s=2;else if(a<128)/[!#$&-;=?-Z_a-z~]/.test(String.fromCharCode(a))||(l=String.fromCharCode(a));else if(a>55295&&a<57344){const c=e.charCodeAt(n+1);a<56320&&c>56319&&c<57344?(l=String.fromCharCode(a,c),s=1):l="�"}else l=String.fromCharCode(a);l&&(t.push(e.slice(r,n),encodeURIComponent(l)),r=n+s+1,l=""),s&&(n+=s,s=0)}return t.join("")+e.slice(r)}function Jt(e,t,n,r){const s=r?r-1:Number.POSITIVE_INFINITY;let a=0;return l;function l(d){return Ht(d)?(e.enter(n),c(d)):t(d)}function c(d){return Ht(d)&&a++<s?(e.consume(d),c):(e.exit(n),t(d))}}const tJ={tokenize:nJ};function nJ(e){const t=e.attempt(this.parser.constructs.contentInitial,r,s);let n;return t;function r(c){if(c===null){e.consume(c);return}return e.enter("lineEnding"),e.consume(c),e.exit("lineEnding"),Jt(e,t,"linePrefix")}function s(c){return e.enter("paragraph"),a(c)}function a(c){const d=e.enter("chunkText",{contentType:"text",previous:n});return n&&(n.next=d),n=d,l(c)}function l(c){if(c===null){e.exit("chunkText"),e.exit("paragraph"),e.consume(c);return}return gt(c)?(e.consume(c),e.exit("chunkText"),a):(e.consume(c),l)}}const rJ={tokenize:iJ},gR={tokenize:sJ};function iJ(e){const t=this,n=[];let r=0,s,a,l;return c;function c(R){if(r<n.length){const C=n[r];return t.containerState=C[1],e.attempt(C[0].continuation,d,f)(R)}return f(R)}function d(R){if(r++,t.containerState._closeFlow){t.containerState._closeFlow=void 0,s&&_();const C=t.events.length;let D=C,A;for(;D--;)if(t.events[D][0]==="exit"&&t.events[D][1].type==="chunkFlow"){A=t.events[D][1].end;break}T(r);let N=C;for(;N<t.events.length;)t.events[N][1].end={...A},N++;return oi(t.events,D+1,0,t.events.slice(C)),t.events.length=N,f(R)}return c(R)}function f(R){if(r===n.length){if(!s)return b(R);if(s.currentConstruct&&s.currentConstruct.concrete)return k(R);t.interrupt=!!(s.currentConstruct&&!s._gfmTableDynamicInterruptHack)}return t.containerState={},e.check(gR,h,g)(R)}function h(R){return s&&_(),T(r),b(R)}function g(R){return t.parser.lazy[t.now().line]=r!==n.length,l=t.now().offset,k(R)}function b(R){return t.containerState={},e.attempt(gR,y,k)(R)}function y(R){return r++,n.push([t.currentConstruct,t.containerState]),b(R)}function k(R){if(R===null){s&&_(),T(0),e.consume(R);return}return s=s||t.parser.flow(t.now()),e.enter("chunkFlow",{_tokenizer:s,contentType:"flow",previous:a}),S(R)}function S(R){if(R===null){E(e.exit("chunkFlow"),!0),T(0),e.consume(R);return}return gt(R)?(e.consume(R),E(e.exit("chunkFlow")),r=0,t.interrupt=void 0,c):(e.consume(R),S)}function E(R,C){const D=t.sliceStream(R);if(C&&D.push(null),R.previous=a,a&&(a.next=R),a=R,s.defineSkip(R.start),s.write(D),t.parser.lazy[R.start.line]){let A=s.events.length;for(;A--;)if(s.events[A][1].start.offset<l&&(!s.events[A][1].end||s.events[A][1].end.offset>l))return;const N=t.events.length;let $=N,L,M;for(;$--;)if(t.events[$][0]==="exit"&&t.events[$][1].type==="chunkFlow"){if(L){M=t.events[$][1].end;break}L=!0}for(T(r),A=N;A<t.events.length;)t.events[A][1].end={...M},A++;oi(t.events,$+1,0,t.events.slice(N)),t.events.length=A}}function T(R){let C=n.length;for(;C-- >R;){const D=n[C];t.containerState=D[1],D[0].exit.call(t,e)}n.length=R}function _(){s.write([null]),a=void 0,s=void 0,t.containerState._closeFlow=void 0}}function sJ(e,t,n){return Jt(e,e.attempt(this.parser.constructs.document,t,n),"linePrefix",this.parser.constructs.disable.null.includes("codeIndented")?void 0:4)}function Vl(e){if(e===null||yn(e)||Sa(e))return 1;if(Em(e))return 2}function Tm(e,t,n){const r=[];let s=-1;for(;++s<e.length;){const a=e[s].resolveAll;a&&!r.includes(a)&&(t=a(t,n),r.push(a))}return t}const Gv={name:"attention",resolveAll:oJ,tokenize:aJ};function oJ(e,t){let n=-1,r,s,a,l,c,d,f,h;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;d=e[r][1].end.offset-e[r][1].start.offset>1&&e[n][1].end.offset-e[n][1].start.offset>1?2:1;const g={...e[r][1].end},b={...e[n][1].start};bR(g,-d),bR(b,d),l={type:d>1?"strongSequence":"emphasisSequence",start:g,end:{...e[r][1].end}},c={type:d>1?"strongSequence":"emphasisSequence",start:{...e[n][1].start},end:b},a={type:d>1?"strongText":"emphasisText",start:{...e[r][1].end},end:{...e[n][1].start}},s={type:d>1?"strong":"emphasis",start:{...l.start},end:{...c.end}},e[r][1].end={...l.start},e[n][1].start={...c.end},f=[],e[r][1].end.offset-e[r][1].start.offset&&(f=ki(f,[["enter",e[r][1],t],["exit",e[r][1],t]])),f=ki(f,[["enter",s,t],["enter",l,t],["exit",l,t],["enter",a,t]]),f=ki(f,Tm(t.parser.constructs.insideSpan.null,e.slice(r+1,n),t)),f=ki(f,[["exit",a,t],["enter",c,t],["exit",c,t],["exit",s,t]]),e[n][1].end.offset-e[n][1].start.offset?(h=2,f=ki(f,[["enter",e[n][1],t],["exit",e[n][1],t]])):h=0,oi(e,r-1,n-r+3,f),n=r+f.length-h-2;break}}for(n=-1;++n<e.length;)e[n][1].type==="attentionSequence"&&(e[n][1].type="data");return e}function aJ(e,t){const n=this.parser.constructs.attentionMarkers.null,r=this.previous,s=Vl(r);let a;return l;function l(d){return a=d,e.enter("attentionSequence"),c(d)}function c(d){if(d===a)return e.consume(d),c;const f=e.exit("attentionSequence"),h=Vl(d),g=!h||h===2&&s||n.includes(d),b=!s||s===2&&h||n.includes(r);return f._open=!!(a===42?g:g&&(s||!b)),f._close=!!(a===42?b:b&&(h||!g)),t(d)}}function bR(e,t){e.column+=t,e.offset+=t,e._bufferIndex+=t}const lJ={name:"autolink",tokenize:uJ};function uJ(e,t,n){let r=0;return s;function s(y){return e.enter("autolink"),e.enter("autolinkMarker"),e.consume(y),e.exit("autolinkMarker"),e.enter("autolinkProtocol"),a}function a(y){return _r(y)?(e.consume(y),l):y===64?n(y):f(y)}function l(y){return y===43||y===45||y===46||gr(y)?(r=1,c(y)):f(y)}function c(y){return y===58?(e.consume(y),r=0,d):(y===43||y===45||y===46||gr(y))&&r++<32?(e.consume(y),c):(r=0,f(y))}function d(y){return y===62?(e.exit("autolinkProtocol"),e.enter("autolinkMarker"),e.consume(y),e.exit("autolinkMarker"),e.exit("autolink"),t):y===null||y===32||y===60||wh(y)?n(y):(e.consume(y),d)}function f(y){return y===64?(e.consume(y),h):QQ(y)?(e.consume(y),f):n(y)}function h(y){return gr(y)?g(y):n(y)}function g(y){return y===46?(e.consume(y),r=0,h):y===62?(e.exit("autolinkProtocol").type="autolinkEmail",e.enter("autolinkMarker"),e.consume(y),e.exit("autolinkMarker"),e.exit("autolink"),t):b(y)}function b(y){if((y===45||gr(y))&&r++<63){const k=y===45?b:g;return e.consume(y),k}return n(y)}}const Rf={partial:!0,tokenize:cJ};function cJ(e,t,n){return r;function r(a){return Ht(a)?Jt(e,s,"linePrefix")(a):s(a)}function s(a){return a===null||gt(a)?t(a):n(a)}}const AD={continuation:{tokenize:dJ},exit:pJ,name:"blockQuote",tokenize:fJ};function fJ(e,t,n){const r=this;return s;function s(l){if(l===62){const c=r.containerState;return c.open||(e.enter("blockQuote",{_container:!0}),c.open=!0),e.enter("blockQuotePrefix"),e.enter("blockQuoteMarker"),e.consume(l),e.exit("blockQuoteMarker"),a}return n(l)}function a(l){return Ht(l)?(e.enter("blockQuotePrefixWhitespace"),e.consume(l),e.exit("blockQuotePrefixWhitespace"),e.exit("blockQuotePrefix"),t):(e.exit("blockQuotePrefix"),t(l))}}function dJ(e,t,n){const r=this;return s;function s(l){return Ht(l)?Jt(e,a,"linePrefix",r.parser.constructs.disable.null.includes("codeIndented")?void 0:4)(l):a(l)}function a(l){return e.attempt(AD,t,n)(l)}}function pJ(e){e.exit("blockQuote")}const OD={name:"characterEscape",tokenize:hJ};function hJ(e,t,n){return r;function r(a){return e.enter("characterEscape"),e.enter("escapeMarker"),e.consume(a),e.exit("escapeMarker"),s}function s(a){return eJ(a)?(e.enter("characterEscapeValue"),e.consume(a),e.exit("characterEscapeValue"),e.exit("characterEscape"),t):n(a)}}const ID={name:"characterReference",tokenize:mJ};function mJ(e,t,n){const r=this;let s=0,a,l;return c;function c(g){return e.enter("characterReference"),e.enter("characterReferenceMarker"),e.consume(g),e.exit("characterReferenceMarker"),d}function d(g){return g===35?(e.enter("characterReferenceMarkerNumeric"),e.consume(g),e.exit("characterReferenceMarkerNumeric"),f):(e.enter("characterReferenceValue"),a=31,l=gr,h(g))}function f(g){return g===88||g===120?(e.enter("characterReferenceMarkerHexadecimal"),e.consume(g),e.exit("characterReferenceMarkerHexadecimal"),e.enter("characterReferenceValue"),a=6,l=JQ,h):(e.enter("characterReferenceValue"),a=7,l=Hv,h(g))}function h(g){if(g===59&&s){const b=e.exit("characterReferenceValue");return l===gr&&!Gk(r.sliceSerialize(b))?n(g):(e.enter("characterReferenceMarker"),e.consume(g),e.exit("characterReferenceMarker"),e.exit("characterReference"),t)}return l(g)&&s++<a?(e.consume(g),h):n(g)}}const yR={partial:!0,tokenize:bJ},vR={concrete:!0,name:"codeFenced",tokenize:gJ};function gJ(e,t,n){const r=this,s={partial:!0,tokenize:D};let a=0,l=0,c;return d;function d(A){return f(A)}function f(A){const N=r.events[r.events.length-1];return a=N&&N[1].type==="linePrefix"?N[2].sliceSerialize(N[1],!0).length:0,c=A,e.enter("codeFenced"),e.enter("codeFencedFence"),e.enter("codeFencedFenceSequence"),h(A)}function h(A){return A===c?(l++,e.consume(A),h):l<3?n(A):(e.exit("codeFencedFenceSequence"),Ht(A)?Jt(e,g,"whitespace")(A):g(A))}function g(A){return A===null||gt(A)?(e.exit("codeFencedFence"),r.interrupt?t(A):e.check(yR,S,C)(A)):(e.enter("codeFencedFenceInfo"),e.enter("chunkString",{contentType:"string"}),b(A))}function b(A){return A===null||gt(A)?(e.exit("chunkString"),e.exit("codeFencedFenceInfo"),g(A)):Ht(A)?(e.exit("chunkString"),e.exit("codeFencedFenceInfo"),Jt(e,y,"whitespace")(A)):A===96&&A===c?n(A):(e.consume(A),b)}function y(A){return A===null||gt(A)?g(A):(e.enter("codeFencedFenceMeta"),e.enter("chunkString",{contentType:"string"}),k(A))}function k(A){return A===null||gt(A)?(e.exit("chunkString"),e.exit("codeFencedFenceMeta"),g(A)):A===96&&A===c?n(A):(e.consume(A),k)}function S(A){return e.attempt(s,C,E)(A)}function E(A){return e.enter("lineEnding"),e.consume(A),e.exit("lineEnding"),T}function T(A){return a>0&&Ht(A)?Jt(e,_,"linePrefix",a+1)(A):_(A)}function _(A){return A===null||gt(A)?e.check(yR,S,C)(A):(e.enter("codeFlowValue"),R(A))}function R(A){return A===null||gt(A)?(e.exit("codeFlowValue"),_(A)):(e.consume(A),R)}function C(A){return e.exit("codeFenced"),t(A)}function D(A,N,$){let L=0;return M;function M(F){return A.enter("lineEnding"),A.consume(F),A.exit("lineEnding"),Z}function Z(F){return A.enter("codeFencedFence"),Ht(F)?Jt(A,q,"linePrefix",r.parser.constructs.disable.null.includes("codeIndented")?void 0:4)(F):q(F)}function q(F){return F===c?(A.enter("codeFencedFenceSequence"),U(F)):$(F)}function U(F){return F===c?(L++,A.consume(F),U):L>=l?(A.exit("codeFencedFenceSequence"),Ht(F)?Jt(A,z,"whitespace")(F):z(F)):$(F)}function z(F){return F===null||gt(F)?(A.exit("codeFencedFence"),N(F)):$(F)}}}function bJ(e,t,n){const r=this;return s;function s(l){return l===null?n(l):(e.enter("lineEnding"),e.consume(l),e.exit("lineEnding"),a)}function a(l){return r.parser.lazy[r.now().line]?n(l):t(l)}}const Ny={name:"codeIndented",tokenize:vJ},yJ={partial:!0,tokenize:xJ};function vJ(e,t,n){const r=this;return s;function s(f){return e.enter("codeIndented"),Jt(e,a,"linePrefix",5)(f)}function a(f){const h=r.events[r.events.length-1];return h&&h[1].type==="linePrefix"&&h[2].sliceSerialize(h[1],!0).length>=4?l(f):n(f)}function l(f){return f===null?d(f):gt(f)?e.attempt(yJ,l,d)(f):(e.enter("codeFlowValue"),c(f))}function c(f){return f===null||gt(f)?(e.exit("codeFlowValue"),l(f)):(e.consume(f),c)}function d(f){return e.exit("codeIndented"),t(f)}}function xJ(e,t,n){const r=this;return s;function s(l){return r.parser.lazy[r.now().line]?n(l):gt(l)?(e.enter("lineEnding"),e.consume(l),e.exit("lineEnding"),s):Jt(e,a,"linePrefix",5)(l)}function a(l){const c=r.events[r.events.length-1];return c&&c[1].type==="linePrefix"&&c[2].sliceSerialize(c[1],!0).length>=4?t(l):gt(l)?s(l):n(l)}}const kJ={name:"codeText",previous:wJ,resolve:SJ,tokenize:EJ};function SJ(e){let t=e.length-4,n=3,r,s;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;)s===void 0?r!==t&&e[r][1].type!=="lineEnding"&&(s=r):(r===t||e[r][1].type==="lineEnding")&&(e[s][1].type="codeTextData",r!==s+2&&(e[s][1].end=e[r-1][1].end,e.splice(s+2,r-s-2),t-=r-s-2,r=s+2),s=void 0);return e}function wJ(e){return e!==96||this.events[this.events.length-1][1].type==="characterEscape"}function EJ(e,t,n){let r=0,s,a;return l;function l(g){return e.enter("codeText"),e.enter("codeTextSequence"),c(g)}function c(g){return g===96?(e.consume(g),r++,c):(e.exit("codeTextSequence"),d(g))}function d(g){return g===null?n(g):g===32?(e.enter("space"),e.consume(g),e.exit("space"),d):g===96?(a=e.enter("codeTextSequence"),s=0,h(g)):gt(g)?(e.enter("lineEnding"),e.consume(g),e.exit("lineEnding"),d):(e.enter("codeTextData"),f(g))}function f(g){return g===null||g===32||g===96||gt(g)?(e.exit("codeTextData"),d(g)):(e.consume(g),f)}function h(g){return g===96?(e.consume(g),s++,h):s===r?(e.exit("codeTextSequence"),e.exit("codeText"),t(g)):(a.type="codeTextData",f(g))}}class TJ{constructor(t){this.left=t?[...t]:[],this.right=[]}get(t){if(t<0||t>=this.left.length+this.right.length)throw new RangeError("Cannot access index `"+t+"` in a splice buffer of size `"+(this.left.length+this.right.length)+"`");return t<this.left.length?this.left[t]:this.right[this.right.length-t+this.left.length-1]}get length(){return this.left.length+this.right.length}shift(){return this.setCursor(0),this.right.pop()}slice(t,n){const r=n??Number.POSITIVE_INFINITY;return r<this.left.length?this.left.slice(t,r):t>this.left.length?this.right.slice(this.right.length-r+this.left.length,this.right.length-t+this.left.length).reverse():this.left.slice(t).concat(this.right.slice(this.right.length-r+this.left.length).reverse())}splice(t,n,r){const s=n||0;this.setCursor(Math.trunc(t));const a=this.right.splice(this.right.length-s,Number.POSITIVE_INFINITY);return r&&dc(this.left,r),a.reverse()}pop(){return this.setCursor(Number.POSITIVE_INFINITY),this.left.pop()}push(t){this.setCursor(Number.POSITIVE_INFINITY),this.left.push(t)}pushMany(t){this.setCursor(Number.POSITIVE_INFINITY),dc(this.left,t)}unshift(t){this.setCursor(0),this.right.push(t)}unshiftMany(t){this.setCursor(0),dc(this.right,t.reverse())}setCursor(t){if(!(t===this.left.length||t>this.left.length&&this.right.length===0||t<0&&this.left.length===0))if(t<this.left.length){const n=this.left.splice(t,Number.POSITIVE_INFINITY);dc(this.right,n.reverse())}else{const n=this.right.splice(this.left.length+this.right.length-t,Number.POSITIVE_INFINITY);dc(this.left,n.reverse())}}}function dc(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 MD(e){const t={};let n=-1,r,s,a,l,c,d,f;const h=new TJ(e);for(;++n<h.length;){for(;n in t;)n=t[n];if(r=h.get(n),n&&r[1].type==="chunkFlow"&&h.get(n-1)[1].type==="listItemPrefix"&&(d=r[1]._tokenizer.events,a=0,a<d.length&&d[a][1].type==="lineEndingBlank"&&(a+=2),a<d.length&&d[a][1].type==="content"))for(;++a<d.length&&d[a][1].type!=="content";)d[a][1].type==="chunkText"&&(d[a][1]._isInFirstContentOfListItem=!0,a++);if(r[0]==="enter")r[1].contentType&&(Object.assign(t,_J(h,n)),n=t[n],f=!0);else if(r[1]._container){for(a=n,s=void 0;a--;)if(l=h.get(a),l[1].type==="lineEnding"||l[1].type==="lineEndingBlank")l[0]==="enter"&&(s&&(h.get(s)[1].type="lineEndingBlank"),l[1].type="lineEnding",s=a);else if(!(l[1].type==="linePrefix"||l[1].type==="listItemIndent"))break;s&&(r[1].end={...h.get(s)[1].start},c=h.slice(s,n),c.unshift(r),h.splice(s,n-s+1,c))}}return oi(e,0,Number.POSITIVE_INFINITY,h.slice(0)),!f}function _J(e,t){const n=e.get(t)[1],r=e.get(t)[2];let s=t-1;const a=[];let l=n._tokenizer;l||(l=r.parser[n.contentType](n.start),n._contentTypeTextTrailing&&(l._contentTypeTextTrailing=!0));const c=l.events,d=[],f={};let h,g,b=-1,y=n,k=0,S=0;const E=[S];for(;y;){for(;e.get(++s)[1]!==y;);a.push(s),y._tokenizer||(h=r.sliceStream(y),y.next||h.push(null),g&&l.defineSkip(y.start),y._isInFirstContentOfListItem&&(l._gfmTasklistFirstContentOfListItem=!0),l.write(h),y._isInFirstContentOfListItem&&(l._gfmTasklistFirstContentOfListItem=void 0)),g=y,y=y.next}for(y=n;++b<c.length;)c[b][0]==="exit"&&c[b-1][0]==="enter"&&c[b][1].type===c[b-1][1].type&&c[b][1].start.line!==c[b][1].end.line&&(S=b+1,E.push(S),y._tokenizer=void 0,y.previous=void 0,y=y.next);for(l.events=[],y?(y._tokenizer=void 0,y.previous=void 0):E.pop(),b=E.length;b--;){const T=c.slice(E[b],E[b+1]),_=a.pop();d.push([_,_+T.length-1]),e.splice(_,2,T)}for(d.reverse(),b=-1;++b<d.length;)f[k+d[b][0]]=k+d[b][1],k+=d[b][1]-d[b][0]-1;return f}const RJ={resolve:NJ,tokenize:AJ},CJ={partial:!0,tokenize:OJ};function NJ(e){return MD(e),e}function AJ(e,t){let n;return r;function r(c){return e.enter("content"),n=e.enter("chunkContent",{contentType:"content"}),s(c)}function s(c){return c===null?a(c):gt(c)?e.check(CJ,l,a)(c):(e.consume(c),s)}function a(c){return e.exit("chunkContent"),e.exit("content"),t(c)}function l(c){return e.consume(c),e.exit("chunkContent"),n.next=e.enter("chunkContent",{contentType:"content",previous:n}),n=n.next,s}}function OJ(e,t,n){const r=this;return s;function s(l){return e.exit("chunkContent"),e.enter("lineEnding"),e.consume(l),e.exit("lineEnding"),Jt(e,a,"linePrefix")}function a(l){if(l===null||gt(l))return n(l);const c=r.events[r.events.length-1];return!r.parser.constructs.disable.null.includes("codeIndented")&&c&&c[1].type==="linePrefix"&&c[2].sliceSerialize(c[1],!0).length>=4?t(l):e.interrupt(r.parser.constructs.flow,n,t)(l)}}function DD(e,t,n,r,s,a,l,c,d){const f=d||Number.POSITIVE_INFINITY;let h=0;return g;function g(T){return T===60?(e.enter(r),e.enter(s),e.enter(a),e.consume(T),e.exit(a),b):T===null||T===32||T===41||wh(T)?n(T):(e.enter(r),e.enter(l),e.enter(c),e.enter("chunkString",{contentType:"string"}),S(T))}function b(T){return T===62?(e.enter(a),e.consume(T),e.exit(a),e.exit(s),e.exit(r),t):(e.enter(c),e.enter("chunkString",{contentType:"string"}),y(T))}function y(T){return T===62?(e.exit("chunkString"),e.exit(c),b(T)):T===null||T===60||gt(T)?n(T):(e.consume(T),T===92?k:y)}function k(T){return T===60||T===62||T===92?(e.consume(T),y):y(T)}function S(T){return!h&&(T===null||T===41||yn(T))?(e.exit("chunkString"),e.exit(c),e.exit(l),e.exit(r),t(T)):h<f&&T===40?(e.consume(T),h++,S):T===41?(e.consume(T),h--,S):T===null||T===32||T===40||wh(T)?n(T):(e.consume(T),T===92?E:S)}function E(T){return T===40||T===41||T===92?(e.consume(T),S):S(T)}}function zD(e,t,n,r,s,a){const l=this;let c=0,d;return f;function f(y){return e.enter(r),e.enter(s),e.consume(y),e.exit(s),e.enter(a),h}function h(y){return c>999||y===null||y===91||y===93&&!d||y===94&&!c&&"_hiddenFootnoteSupport"in l.parser.constructs?n(y):y===93?(e.exit(a),e.enter(s),e.consume(y),e.exit(s),e.exit(r),t):gt(y)?(e.enter("lineEnding"),e.consume(y),e.exit("lineEnding"),h):(e.enter("chunkString",{contentType:"string"}),g(y))}function g(y){return y===null||y===91||y===93||gt(y)||c++>999?(e.exit("chunkString"),h(y)):(e.consume(y),d||(d=!Ht(y)),y===92?b:g)}function b(y){return y===91||y===92||y===93?(e.consume(y),c++,g):g(y)}}function jD(e,t,n,r,s,a){let l;return c;function c(b){return b===34||b===39||b===40?(e.enter(r),e.enter(s),e.consume(b),e.exit(s),l=b===40?41:b,d):n(b)}function d(b){return b===l?(e.enter(s),e.consume(b),e.exit(s),e.exit(r),t):(e.enter(a),f(b))}function f(b){return b===l?(e.exit(a),d(l)):b===null?n(b):gt(b)?(e.enter("lineEnding"),e.consume(b),e.exit("lineEnding"),Jt(e,f,"linePrefix")):(e.enter("chunkString",{contentType:"string"}),h(b))}function h(b){return b===l||b===null||gt(b)?(e.exit("chunkString"),f(b)):(e.consume(b),b===92?g:h)}function g(b){return b===l||b===92?(e.consume(b),h):h(b)}}function Mc(e,t){let n;return r;function r(s){return gt(s)?(e.enter("lineEnding"),e.consume(s),e.exit("lineEnding"),n=!0,r):Ht(s)?Jt(e,r,n?"linePrefix":"lineSuffix")(s):t(s)}}const IJ={name:"definition",tokenize:DJ},MJ={partial:!0,tokenize:zJ};function DJ(e,t,n){const r=this;let s;return a;function a(y){return e.enter("definition"),l(y)}function l(y){return zD.call(r,e,c,n,"definitionLabel","definitionLabelMarker","definitionLabelString")(y)}function c(y){return s=Di(r.sliceSerialize(r.events[r.events.length-1][1]).slice(1,-1)),y===58?(e.enter("definitionMarker"),e.consume(y),e.exit("definitionMarker"),d):n(y)}function d(y){return yn(y)?Mc(e,f)(y):f(y)}function f(y){return DD(e,h,n,"definitionDestination","definitionDestinationLiteral","definitionDestinationLiteralMarker","definitionDestinationRaw","definitionDestinationString")(y)}function h(y){return e.attempt(MJ,g,g)(y)}function g(y){return Ht(y)?Jt(e,b,"whitespace")(y):b(y)}function b(y){return y===null||gt(y)?(e.exit("definition"),r.parser.defined.push(s),t(y)):n(y)}}function zJ(e,t,n){return r;function r(c){return yn(c)?Mc(e,s)(c):n(c)}function s(c){return jD(e,a,n,"definitionTitle","definitionTitleMarker","definitionTitleString")(c)}function a(c){return Ht(c)?Jt(e,l,"whitespace")(c):l(c)}function l(c){return c===null||gt(c)?t(c):n(c)}}const jJ={name:"hardBreakEscape",tokenize:LJ};function LJ(e,t,n){return r;function r(a){return e.enter("hardBreakEscape"),e.consume(a),s}function s(a){return gt(a)?(e.exit("hardBreakEscape"),t(a)):n(a)}}const PJ={name:"headingAtx",resolve:$J,tokenize:BJ};function $J(e,t){let n=e.length-2,r=3,s,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&&(s={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"},oi(e,r,n-r+1,[["enter",s,t],["enter",a,t],["exit",a,t],["exit",s,t]])),e}function BJ(e,t,n){let r=0;return s;function s(h){return e.enter("atxHeading"),a(h)}function a(h){return e.enter("atxHeadingSequence"),l(h)}function l(h){return h===35&&r++<6?(e.consume(h),l):h===null||yn(h)?(e.exit("atxHeadingSequence"),c(h)):n(h)}function c(h){return h===35?(e.enter("atxHeadingSequence"),d(h)):h===null||gt(h)?(e.exit("atxHeading"),t(h)):Ht(h)?Jt(e,c,"whitespace")(h):(e.enter("atxHeadingText"),f(h))}function d(h){return h===35?(e.consume(h),d):(e.exit("atxHeadingSequence"),c(h))}function f(h){return h===null||h===35||yn(h)?(e.exit("atxHeadingText"),c(h)):(e.consume(h),f)}}const FJ=["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"],xR=["pre","script","style","textarea"],UJ={concrete:!0,name:"htmlFlow",resolveTo:GJ,tokenize:VJ},qJ={partial:!0,tokenize:KJ},HJ={partial:!0,tokenize:WJ};function GJ(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 VJ(e,t,n){const r=this;let s,a,l,c,d;return f;function f(j){return h(j)}function h(j){return e.enter("htmlFlow"),e.enter("htmlFlowData"),e.consume(j),g}function g(j){return j===33?(e.consume(j),b):j===47?(e.consume(j),a=!0,S):j===63?(e.consume(j),s=3,r.interrupt?t:I):_r(j)?(e.consume(j),l=String.fromCharCode(j),E):n(j)}function b(j){return j===45?(e.consume(j),s=2,y):j===91?(e.consume(j),s=5,c=0,k):_r(j)?(e.consume(j),s=4,r.interrupt?t:I):n(j)}function y(j){return j===45?(e.consume(j),r.interrupt?t:I):n(j)}function k(j){const X="CDATA[";return j===X.charCodeAt(c++)?(e.consume(j),c===X.length?r.interrupt?t:q:k):n(j)}function S(j){return _r(j)?(e.consume(j),l=String.fromCharCode(j),E):n(j)}function E(j){if(j===null||j===47||j===62||yn(j)){const X=j===47,se=l.toLowerCase();return!X&&!a&&xR.includes(se)?(s=1,r.interrupt?t(j):q(j)):FJ.includes(l.toLowerCase())?(s=6,X?(e.consume(j),T):r.interrupt?t(j):q(j)):(s=7,r.interrupt&&!r.parser.lazy[r.now().line]?n(j):a?_(j):R(j))}return j===45||gr(j)?(e.consume(j),l+=String.fromCharCode(j),E):n(j)}function T(j){return j===62?(e.consume(j),r.interrupt?t:q):n(j)}function _(j){return Ht(j)?(e.consume(j),_):M(j)}function R(j){return j===47?(e.consume(j),M):j===58||j===95||_r(j)?(e.consume(j),C):Ht(j)?(e.consume(j),R):M(j)}function C(j){return j===45||j===46||j===58||j===95||gr(j)?(e.consume(j),C):D(j)}function D(j){return j===61?(e.consume(j),A):Ht(j)?(e.consume(j),D):R(j)}function A(j){return j===null||j===60||j===61||j===62||j===96?n(j):j===34||j===39?(e.consume(j),d=j,N):Ht(j)?(e.consume(j),A):$(j)}function N(j){return j===d?(e.consume(j),d=null,L):j===null||gt(j)?n(j):(e.consume(j),N)}function $(j){return j===null||j===34||j===39||j===47||j===60||j===61||j===62||j===96||yn(j)?D(j):(e.consume(j),$)}function L(j){return j===47||j===62||Ht(j)?R(j):n(j)}function M(j){return j===62?(e.consume(j),Z):n(j)}function Z(j){return j===null||gt(j)?q(j):Ht(j)?(e.consume(j),Z):n(j)}function q(j){return j===45&&s===2?(e.consume(j),H):j===60&&s===1?(e.consume(j),W):j===62&&s===4?(e.consume(j),P):j===63&&s===3?(e.consume(j),I):j===93&&s===5?(e.consume(j),K):gt(j)&&(s===6||s===7)?(e.exit("htmlFlowData"),e.check(qJ,V,U)(j)):j===null||gt(j)?(e.exit("htmlFlowData"),U(j)):(e.consume(j),q)}function U(j){return e.check(HJ,z,V)(j)}function z(j){return e.enter("lineEnding"),e.consume(j),e.exit("lineEnding"),F}function F(j){return j===null||gt(j)?U(j):(e.enter("htmlFlowData"),q(j))}function H(j){return j===45?(e.consume(j),I):q(j)}function W(j){return j===47?(e.consume(j),l="",B):q(j)}function B(j){if(j===62){const X=l.toLowerCase();return xR.includes(X)?(e.consume(j),P):q(j)}return _r(j)&&l.length<8?(e.consume(j),l+=String.fromCharCode(j),B):q(j)}function K(j){return j===93?(e.consume(j),I):q(j)}function I(j){return j===62?(e.consume(j),P):j===45&&s===2?(e.consume(j),I):q(j)}function P(j){return j===null||gt(j)?(e.exit("htmlFlowData"),V(j)):(e.consume(j),P)}function V(j){return e.exit("htmlFlow"),t(j)}}function WJ(e,t,n){const r=this;return s;function s(l){return gt(l)?(e.enter("lineEnding"),e.consume(l),e.exit("lineEnding"),a):n(l)}function a(l){return r.parser.lazy[r.now().line]?n(l):t(l)}}function KJ(e,t,n){return r;function r(s){return e.enter("lineEnding"),e.consume(s),e.exit("lineEnding"),e.attempt(Rf,t,n)}}const ZJ={name:"htmlText",tokenize:YJ};function YJ(e,t,n){const r=this;let s,a,l;return c;function c(I){return e.enter("htmlText"),e.enter("htmlTextData"),e.consume(I),d}function d(I){return I===33?(e.consume(I),f):I===47?(e.consume(I),D):I===63?(e.consume(I),R):_r(I)?(e.consume(I),$):n(I)}function f(I){return I===45?(e.consume(I),h):I===91?(e.consume(I),a=0,k):_r(I)?(e.consume(I),_):n(I)}function h(I){return I===45?(e.consume(I),y):n(I)}function g(I){return I===null?n(I):I===45?(e.consume(I),b):gt(I)?(l=g,W(I)):(e.consume(I),g)}function b(I){return I===45?(e.consume(I),y):g(I)}function y(I){return I===62?H(I):I===45?b(I):g(I)}function k(I){const P="CDATA[";return I===P.charCodeAt(a++)?(e.consume(I),a===P.length?S:k):n(I)}function S(I){return I===null?n(I):I===93?(e.consume(I),E):gt(I)?(l=S,W(I)):(e.consume(I),S)}function E(I){return I===93?(e.consume(I),T):S(I)}function T(I){return I===62?H(I):I===93?(e.consume(I),T):S(I)}function _(I){return I===null||I===62?H(I):gt(I)?(l=_,W(I)):(e.consume(I),_)}function R(I){return I===null?n(I):I===63?(e.consume(I),C):gt(I)?(l=R,W(I)):(e.consume(I),R)}function C(I){return I===62?H(I):R(I)}function D(I){return _r(I)?(e.consume(I),A):n(I)}function A(I){return I===45||gr(I)?(e.consume(I),A):N(I)}function N(I){return gt(I)?(l=N,W(I)):Ht(I)?(e.consume(I),N):H(I)}function $(I){return I===45||gr(I)?(e.consume(I),$):I===47||I===62||yn(I)?L(I):n(I)}function L(I){return I===47?(e.consume(I),H):I===58||I===95||_r(I)?(e.consume(I),M):gt(I)?(l=L,W(I)):Ht(I)?(e.consume(I),L):H(I)}function M(I){return I===45||I===46||I===58||I===95||gr(I)?(e.consume(I),M):Z(I)}function Z(I){return I===61?(e.consume(I),q):gt(I)?(l=Z,W(I)):Ht(I)?(e.consume(I),Z):L(I)}function q(I){return I===null||I===60||I===61||I===62||I===96?n(I):I===34||I===39?(e.consume(I),s=I,U):gt(I)?(l=q,W(I)):Ht(I)?(e.consume(I),q):(e.consume(I),z)}function U(I){return I===s?(e.consume(I),s=void 0,F):I===null?n(I):gt(I)?(l=U,W(I)):(e.consume(I),U)}function z(I){return I===null||I===34||I===39||I===60||I===61||I===96?n(I):I===47||I===62||yn(I)?L(I):(e.consume(I),z)}function F(I){return I===47||I===62||yn(I)?L(I):n(I)}function H(I){return I===62?(e.consume(I),e.exit("htmlTextData"),e.exit("htmlText"),t):n(I)}function W(I){return e.exit("htmlTextData"),e.enter("lineEnding"),e.consume(I),e.exit("lineEnding"),B}function B(I){return Ht(I)?Jt(e,K,"linePrefix",r.parser.constructs.disable.null.includes("codeIndented")?void 0:4)(I):K(I)}function K(I){return e.enter("htmlTextData"),l(I)}}const Vk={name:"labelEnd",resolveAll:eee,resolveTo:tee,tokenize:nee},XJ={tokenize:ree},QJ={tokenize:iee},JJ={tokenize:see};function eee(e){let t=-1;const n=[];for(;++t<e.length;){const r=e[t][1];if(n.push(e[t]),r.type==="labelImage"||r.type==="labelLink"||r.type==="labelEnd"){const s=r.type==="labelImage"?4:2;r.type="data",t+=s}}return e.length!==n.length&&oi(e,0,e.length,n),e}function tee(e,t){let n=e.length,r=0,s,a,l,c;for(;n--;)if(s=e[n][1],a){if(s.type==="link"||s.type==="labelLink"&&s._inactive)break;e[n][0]==="enter"&&s.type==="labelLink"&&(s._inactive=!0)}else if(l){if(e[n][0]==="enter"&&(s.type==="labelImage"||s.type==="labelLink")&&!s._balanced&&(a=n,s.type!=="labelLink")){r=2;break}}else s.type==="labelEnd"&&(l=n);const d={type:e[a][1].type==="labelLink"?"link":"image",start:{...e[a][1].start},end:{...e[e.length-1][1].end}},f={type:"label",start:{...e[a][1].start},end:{...e[l][1].end}},h={type:"labelText",start:{...e[a+r+2][1].end},end:{...e[l-2][1].start}};return c=[["enter",d,t],["enter",f,t]],c=ki(c,e.slice(a+1,a+r+3)),c=ki(c,[["enter",h,t]]),c=ki(c,Tm(t.parser.constructs.insideSpan.null,e.slice(a+r+4,l-3),t)),c=ki(c,[["exit",h,t],e[l-2],e[l-1],["exit",f,t]]),c=ki(c,e.slice(l+1)),c=ki(c,[["exit",d,t]]),oi(e,a,e.length,c),e}function nee(e,t,n){const r=this;let s=r.events.length,a,l;for(;s--;)if((r.events[s][1].type==="labelImage"||r.events[s][1].type==="labelLink")&&!r.events[s][1]._balanced){a=r.events[s][1];break}return c;function c(b){return a?a._inactive?g(b):(l=r.parser.defined.includes(Di(r.sliceSerialize({start:a.end,end:r.now()}))),e.enter("labelEnd"),e.enter("labelMarker"),e.consume(b),e.exit("labelMarker"),e.exit("labelEnd"),d):n(b)}function d(b){return b===40?e.attempt(XJ,h,l?h:g)(b):b===91?e.attempt(QJ,h,l?f:g)(b):l?h(b):g(b)}function f(b){return e.attempt(JJ,h,g)(b)}function h(b){return t(b)}function g(b){return a._balanced=!0,n(b)}}function ree(e,t,n){return r;function r(g){return e.enter("resource"),e.enter("resourceMarker"),e.consume(g),e.exit("resourceMarker"),s}function s(g){return yn(g)?Mc(e,a)(g):a(g)}function a(g){return g===41?h(g):DD(e,l,c,"resourceDestination","resourceDestinationLiteral","resourceDestinationLiteralMarker","resourceDestinationRaw","resourceDestinationString",32)(g)}function l(g){return yn(g)?Mc(e,d)(g):h(g)}function c(g){return n(g)}function d(g){return g===34||g===39||g===40?jD(e,f,n,"resourceTitle","resourceTitleMarker","resourceTitleString")(g):h(g)}function f(g){return yn(g)?Mc(e,h)(g):h(g)}function h(g){return g===41?(e.enter("resourceMarker"),e.consume(g),e.exit("resourceMarker"),e.exit("resource"),t):n(g)}}function iee(e,t,n){const r=this;return s;function s(c){return zD.call(r,e,a,l,"reference","referenceMarker","referenceString")(c)}function a(c){return r.parser.defined.includes(Di(r.sliceSerialize(r.events[r.events.length-1][1]).slice(1,-1)))?t(c):n(c)}function l(c){return n(c)}}function see(e,t,n){return r;function r(a){return e.enter("reference"),e.enter("referenceMarker"),e.consume(a),e.exit("referenceMarker"),s}function s(a){return a===93?(e.enter("referenceMarker"),e.consume(a),e.exit("referenceMarker"),e.exit("reference"),t):n(a)}}const oee={name:"labelStartImage",resolveAll:Vk.resolveAll,tokenize:aee};function aee(e,t,n){const r=this;return s;function s(c){return e.enter("labelImage"),e.enter("labelImageMarker"),e.consume(c),e.exit("labelImageMarker"),a}function a(c){return c===91?(e.enter("labelMarker"),e.consume(c),e.exit("labelMarker"),e.exit("labelImage"),l):n(c)}function l(c){return c===94&&"_hiddenFootnoteSupport"in r.parser.constructs?n(c):t(c)}}const lee={name:"labelStartLink",resolveAll:Vk.resolveAll,tokenize:uee};function uee(e,t,n){const r=this;return s;function s(l){return e.enter("labelLink"),e.enter("labelMarker"),e.consume(l),e.exit("labelMarker"),e.exit("labelLink"),a}function a(l){return l===94&&"_hiddenFootnoteSupport"in r.parser.constructs?n(l):t(l)}}const Ay={name:"lineEnding",tokenize:cee};function cee(e,t){return n;function n(r){return e.enter("lineEnding"),e.consume(r),e.exit("lineEnding"),Jt(e,t,"linePrefix")}}const Pp={name:"thematicBreak",tokenize:fee};function fee(e,t,n){let r=0,s;return a;function a(f){return e.enter("thematicBreak"),l(f)}function l(f){return s=f,c(f)}function c(f){return f===s?(e.enter("thematicBreakSequence"),d(f)):r>=3&&(f===null||gt(f))?(e.exit("thematicBreak"),t(f)):n(f)}function d(f){return f===s?(e.consume(f),r++,d):(e.exit("thematicBreakSequence"),Ht(f)?Jt(e,c,"whitespace")(f):c(f))}}const Lr={continuation:{tokenize:mee},exit:bee,name:"list",tokenize:hee},dee={partial:!0,tokenize:yee},pee={partial:!0,tokenize:gee};function hee(e,t,n){const r=this,s=r.events[r.events.length-1];let a=s&&s[1].type==="linePrefix"?s[2].sliceSerialize(s[1],!0).length:0,l=0;return c;function c(y){const k=r.containerState.type||(y===42||y===43||y===45?"listUnordered":"listOrdered");if(k==="listUnordered"?!r.containerState.marker||y===r.containerState.marker:Hv(y)){if(r.containerState.type||(r.containerState.type=k,e.enter(k,{_container:!0})),k==="listUnordered")return e.enter("listItemPrefix"),y===42||y===45?e.check(Pp,n,f)(y):f(y);if(!r.interrupt||y===49)return e.enter("listItemPrefix"),e.enter("listItemValue"),d(y)}return n(y)}function d(y){return Hv(y)&&++l<10?(e.consume(y),d):(!r.interrupt||l<2)&&(r.containerState.marker?y===r.containerState.marker:y===41||y===46)?(e.exit("listItemValue"),f(y)):n(y)}function f(y){return e.enter("listItemMarker"),e.consume(y),e.exit("listItemMarker"),r.containerState.marker=r.containerState.marker||y,e.check(Rf,r.interrupt?n:h,e.attempt(dee,b,g))}function h(y){return r.containerState.initialBlankLine=!0,a++,b(y)}function g(y){return Ht(y)?(e.enter("listItemPrefixWhitespace"),e.consume(y),e.exit("listItemPrefixWhitespace"),b):n(y)}function b(y){return r.containerState.size=a+r.sliceSerialize(e.exit("listItemPrefix"),!0).length,t(y)}}function mee(e,t,n){const r=this;return r.containerState._closeFlow=void 0,e.check(Rf,s,a);function s(c){return r.containerState.furtherBlankLines=r.containerState.furtherBlankLines||r.containerState.initialBlankLine,Jt(e,t,"listItemIndent",r.containerState.size+1)(c)}function a(c){return r.containerState.furtherBlankLines||!Ht(c)?(r.containerState.furtherBlankLines=void 0,r.containerState.initialBlankLine=void 0,l(c)):(r.containerState.furtherBlankLines=void 0,r.containerState.initialBlankLine=void 0,e.attempt(pee,t,l)(c))}function l(c){return r.containerState._closeFlow=!0,r.interrupt=void 0,Jt(e,e.attempt(Lr,t,n),"linePrefix",r.parser.constructs.disable.null.includes("codeIndented")?void 0:4)(c)}}function gee(e,t,n){const r=this;return Jt(e,s,"listItemIndent",r.containerState.size+1);function s(a){const l=r.events[r.events.length-1];return l&&l[1].type==="listItemIndent"&&l[2].sliceSerialize(l[1],!0).length===r.containerState.size?t(a):n(a)}}function bee(e){e.exit(this.containerState.type)}function yee(e,t,n){const r=this;return Jt(e,s,"listItemPrefixWhitespace",r.parser.constructs.disable.null.includes("codeIndented")?void 0:5);function s(a){const l=r.events[r.events.length-1];return!Ht(a)&&l&&l[1].type==="listItemPrefixWhitespace"?t(a):n(a)}}const kR={name:"setextUnderline",resolveTo:vee,tokenize:xee};function vee(e,t){let n=e.length,r,s,a;for(;n--;)if(e[n][0]==="enter"){if(e[n][1].type==="content"){r=n;break}e[n][1].type==="paragraph"&&(s=n)}else e[n][1].type==="content"&&e.splice(n,1),!a&&e[n][1].type==="definition"&&(a=n);const l={type:"setextHeading",start:{...e[r][1].start},end:{...e[e.length-1][1].end}};return e[s][1].type="setextHeadingText",a?(e.splice(s,0,["enter",l,t]),e.splice(a+1,0,["exit",e[r][1],t]),e[r][1].end={...e[a][1].end}):e[r][1]=l,e.push(["exit",l,t]),e}function xee(e,t,n){const r=this;let s;return a;function a(f){let h=r.events.length,g;for(;h--;)if(r.events[h][1].type!=="lineEnding"&&r.events[h][1].type!=="linePrefix"&&r.events[h][1].type!=="content"){g=r.events[h][1].type==="paragraph";break}return!r.parser.lazy[r.now().line]&&(r.interrupt||g)?(e.enter("setextHeadingLine"),s=f,l(f)):n(f)}function l(f){return e.enter("setextHeadingLineSequence"),c(f)}function c(f){return f===s?(e.consume(f),c):(e.exit("setextHeadingLineSequence"),Ht(f)?Jt(e,d,"lineSuffix")(f):d(f))}function d(f){return f===null||gt(f)?(e.exit("setextHeadingLine"),t(f)):n(f)}}const kee={tokenize:See};function See(e){const t=this,n=e.attempt(Rf,r,e.attempt(this.parser.constructs.flowInitial,s,Jt(e,e.attempt(this.parser.constructs.flow,s,e.attempt(RJ,s)),"linePrefix")));return n;function r(a){if(a===null){e.consume(a);return}return e.enter("lineEndingBlank"),e.consume(a),e.exit("lineEndingBlank"),t.currentConstruct=void 0,n}function s(a){if(a===null){e.consume(a);return}return e.enter("lineEnding"),e.consume(a),e.exit("lineEnding"),t.currentConstruct=void 0,n}}const wee={resolveAll:PD()},Eee=LD("string"),Tee=LD("text");function LD(e){return{resolveAll:PD(e==="text"?_ee:void 0),tokenize:t};function t(n){const r=this,s=this.parser.constructs[e],a=n.attempt(s,l,c);return l;function l(h){return f(h)?a(h):c(h)}function c(h){if(h===null){n.consume(h);return}return n.enter("data"),n.consume(h),d}function d(h){return f(h)?(n.exit("data"),a(h)):(n.consume(h),d)}function f(h){if(h===null)return!0;const g=s[h];let b=-1;if(g)for(;++b<g.length;){const y=g[b];if(!y.previous||y.previous.call(r,r.previous))return!0}return!1}}}function PD(e){return t;function t(n,r){let s=-1,a;for(;++s<=n.length;)a===void 0?n[s]&&n[s][1].type==="data"&&(a=s,s++):(!n[s]||n[s][1].type!=="data")&&(s!==a+2&&(n[a][1].end=n[s-1][1].end,n.splice(a+2,s-a-2),s=a+2),a=void 0);return e?e(n,r):n}}function _ee(e,t){let n=0;for(;++n<=e.length;)if((n===e.length||e[n][1].type==="lineEnding")&&e[n-1][1].type==="data"){const r=e[n-1][1],s=t.sliceStream(r);let a=s.length,l=-1,c=0,d;for(;a--;){const f=s[a];if(typeof f=="string"){for(l=f.length;f.charCodeAt(l-1)===32;)c++,l--;if(l)break;l=-1}else if(f===-2)d=!0,c++;else if(f!==-1){a++;break}}if(t._contentTypeTextTrailing&&n===e.length&&(c=0),c){const f={type:n===e.length||d||c<2?"lineSuffix":"hardBreakTrailing",start:{_bufferIndex:a?l:r.start._bufferIndex+l,_index:r.start._index+a,line:r.end.line,column:r.end.column-c,offset:r.end.offset-c},end:{...r.end}};r.end={...f.start},r.start.offset===r.end.offset?Object.assign(r,f):(e.splice(n,0,["enter",f,t],["exit",f,t]),n+=2)}n++}return e}const Ree={42:Lr,43:Lr,45:Lr,48:Lr,49:Lr,50:Lr,51:Lr,52:Lr,53:Lr,54:Lr,55:Lr,56:Lr,57:Lr,62:AD},Cee={91:IJ},Nee={[-2]:Ny,[-1]:Ny,32:Ny},Aee={35:PJ,42:Pp,45:[kR,Pp],60:UJ,61:kR,95:Pp,96:vR,126:vR},Oee={38:ID,92:OD},Iee={[-5]:Ay,[-4]:Ay,[-3]:Ay,33:oee,38:ID,42:Gv,60:[lJ,ZJ],91:lee,92:[jJ,OD],93:Vk,95:Gv,96:kJ},Mee={null:[Gv,wee]},Dee={null:[42,95]},zee={null:[]},jee=Object.freeze(Object.defineProperty({__proto__:null,attentionMarkers:Dee,contentInitial:Cee,disable:zee,document:Ree,flow:Aee,flowInitial:Nee,insideSpan:Mee,string:Oee,text:Iee},Symbol.toStringTag,{value:"Module"}));function Lee(e,t,n){let r={_bufferIndex:-1,_index:0,line:n&&n.line||1,column:n&&n.column||1,offset:n&&n.offset||0};const s={},a=[];let l=[],c=[];const d={attempt:N(D),check:N(A),consume:_,enter:R,exit:C,interrupt:N(A,{interrupt:!0})},f={code:null,containerState:{},defineSkip:S,events:[],now:k,parser:e,previous:null,sliceSerialize:b,sliceStream:y,write:g};let h=t.tokenize.call(f,d);return t.resolveAll&&a.push(t),f;function g(Z){return l=ki(l,Z),E(),l[l.length-1]!==null?[]:($(t,0),f.events=Tm(a,f.events,f),f.events)}function b(Z,q){return $ee(y(Z),q)}function y(Z){return Pee(l,Z)}function k(){const{_bufferIndex:Z,_index:q,line:U,column:z,offset:F}=r;return{_bufferIndex:Z,_index:q,line:U,column:z,offset:F}}function S(Z){s[Z.line]=Z.column,M()}function E(){let Z;for(;r._index<l.length;){const q=l[r._index];if(typeof q=="string")for(Z=r._index,r._bufferIndex<0&&(r._bufferIndex=0);r._index===Z&&r._bufferIndex<q.length;)T(q.charCodeAt(r._bufferIndex));else T(q)}}function T(Z){h=h(Z)}function _(Z){gt(Z)?(r.line++,r.column=1,r.offset+=Z===-3?2:1,M()):Z!==-1&&(r.column++,r.offset++),r._bufferIndex<0?r._index++:(r._bufferIndex++,r._bufferIndex===l[r._index].length&&(r._bufferIndex=-1,r._index++)),f.previous=Z}function R(Z,q){const U=q||{};return U.type=Z,U.start=k(),f.events.push(["enter",U,f]),c.push(U),U}function C(Z){const q=c.pop();return q.end=k(),f.events.push(["exit",q,f]),q}function D(Z,q){$(Z,q.from)}function A(Z,q){q.restore()}function N(Z,q){return U;function U(z,F,H){let W,B,K,I;return Array.isArray(z)?V(z):"tokenize"in z?V([z]):P(z);function P(re){return oe;function oe(ue){const fe=ue!==null&&re[ue],he=ue!==null&&re.null,Ae=[...Array.isArray(fe)?fe:fe?[fe]:[],...Array.isArray(he)?he:he?[he]:[]];return V(Ae)(ue)}}function V(re){return W=re,B=0,re.length===0?H:j(re[B])}function j(re){return oe;function oe(ue){return I=L(),K=re,re.partial||(f.currentConstruct=re),re.name&&f.parser.constructs.disable.null.includes(re.name)?se():re.tokenize.call(q?Object.assign(Object.create(f),q):f,d,X,se)(ue)}}function X(re){return Z(K,I),F}function se(re){return I.restore(),++B<W.length?j(W[B]):H}}}function $(Z,q){Z.resolveAll&&!a.includes(Z)&&a.push(Z),Z.resolve&&oi(f.events,q,f.events.length-q,Z.resolve(f.events.slice(q),f)),Z.resolveTo&&(f.events=Z.resolveTo(f.events,f))}function L(){const Z=k(),q=f.previous,U=f.currentConstruct,z=f.events.length,F=Array.from(c);return{from:z,restore:H};function H(){r=Z,f.previous=q,f.currentConstruct=U,f.events.length=z,c=F,M()}}function M(){r.line in s&&r.column<2&&(r.column=s[r.line],r.offset+=s[r.line]-1)}}function Pee(e,t){const n=t.start._index,r=t.start._bufferIndex,s=t.end._index,a=t.end._bufferIndex;let l;if(n===s)l=[e[n].slice(r,a)];else{if(l=e.slice(n,s),r>-1){const c=l[0];typeof c=="string"?l[0]=c.slice(r):l.shift()}a>0&&l.push(e[s].slice(0,a))}return l}function $ee(e,t){let n=-1;const r=[];let s;for(;++n<e.length;){const a=e[n];let l;if(typeof a=="string")l=a;else switch(a){case-5:{l="\r";break}case-4:{l=`
|
|
43
43
|
`;break}case-3:{l=`\r
|
|
@@ -8,7 +8,7 @@
|
|
|
8
8
|
/>
|
|
9
9
|
<meta name="viewport" content="width=device-width, initial-scale=1" />
|
|
10
10
|
<title>agent-serve playground</title>
|
|
11
|
-
<script type="module" crossorigin src="./assets/index-
|
|
11
|
+
<script type="module" crossorigin src="./assets/index-B3JCyigB.js"></script>
|
|
12
12
|
<link rel="stylesheet" crossorigin href="./assets/index-D9N7-q97.css">
|
|
13
13
|
</head>
|
|
14
14
|
<body>
|