agency-orchestrator 0.7.2 → 0.7.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (31) hide show
  1. package/dist/connectors/claude-code.js +2 -1
  2. package/dist/connectors/openai-compatible.js +13 -5
  3. package/dist/output/reporter.js +7 -1
  4. package/package.json +1 -1
  5. package/website/dist/assets/Changelog-DAanbhWT.js +8 -0
  6. package/website/dist/assets/{Docs-9NP2H3s0.js → Docs-ZdDG2PwT.js} +1 -1
  7. package/website/dist/assets/{Experts-DMJdDpIe.js → Experts-CvZST1I8.js} +1 -1
  8. package/website/dist/assets/{Home-DM7EoF7S.js → Home-C7cdNWrI.js} +1 -1
  9. package/website/dist/assets/{Markdown-DCC1nLQ-.js → Markdown-DaWbDBGS.js} +1 -1
  10. package/website/dist/assets/{NotFound-CiLdwJb3.js → NotFound-CQVnENeI.js} +1 -1
  11. package/website/dist/assets/{SiteFooter-CLIQXwew.js → SiteFooter-Cc_g2meZ.js} +1 -1
  12. package/website/dist/assets/{Sponsors-DlgFN3VG.js → Sponsors-BnFu-GKz.js} +1 -1
  13. package/website/dist/assets/{Studio-B3XF__Yk.js → Studio-D_Ku-kNm.js} +1 -1
  14. package/website/dist/assets/{TutorialDetail-Dn5rhB6f.js → TutorialDetail-NWCMMur-.js} +1 -1
  15. package/website/dist/assets/{Tutorials-CeNhvIuG.js → Tutorials-vsvoOfz_.js} +1 -1
  16. package/website/dist/assets/{arrow-left-ENwUQ2i7.js → arrow-left-By5frfaF.js} +1 -1
  17. package/website/dist/assets/{arrow-up-right-Cn4ATaZ1.js → arrow-up-right-CUikZoTe.js} +1 -1
  18. package/website/dist/assets/{badge-B-L-y5fx.js → badge-yz2euTrj.js} +1 -1
  19. package/website/dist/assets/{clock-BiHXhE37.js → clock-M7oQfJso.js} +1 -1
  20. package/website/dist/assets/{copy-CQZ5TzmV.js → copy-Dg7XjSsj.js} +1 -1
  21. package/website/dist/assets/{copy-button-Dr9lRjiI.js → copy-button-CKwo9hmn.js} +1 -1
  22. package/website/dist/assets/index-CO3Yi9rl.css +1 -0
  23. package/website/dist/assets/{index-DQ2cHvK5.js → index-wcThbHRx.js} +3 -3
  24. package/website/dist/assets/{mail-M21ADvXM.js → mail-C3bj6Q4N.js} +1 -1
  25. package/website/dist/assets/{search-BRTjF9qD.js → search-DYZkqer3.js} +1 -1
  26. package/website/dist/assets/{sparkles-P5rh_tw-.js → sparkles-BsDt_wQ_.js} +1 -1
  27. package/website/dist/assets/{sponsors-B9KhG2hW.js → sponsors-BgrzMlxi.js} +1 -1
  28. package/website/dist/assets/{users-D3-N7gU0.js → users-Bt55vFuz.js} +1 -1
  29. package/website/dist/index.html +2 -2
  30. package/website/dist/assets/Changelog-DNlKP4iX.js +0 -8
  31. package/website/dist/assets/index-xWprUagq.css +0 -1
@@ -21,7 +21,8 @@ export class ClaudeCodeConnector {
21
21
  let systemPromptFile;
22
22
  if (systemPrompt) {
23
23
  systemPromptFile = join(tmpdir(), `ao-sysprompt-${Date.now()}-${Math.random().toString(36).slice(2)}.txt`);
24
- writeFileSync(systemPromptFile, systemPrompt, 'utf-8');
24
+ // 0600:系统提示词可能含专有角色定义,限制为仅当前用户可读
25
+ writeFileSync(systemPromptFile, systemPrompt, { encoding: 'utf-8', mode: 0o600 });
25
26
  }
26
27
  // 使用 json 格式:text 格式在管道中会缓冲挂起
27
28
  const args = ['-p', '-', '--output-format', 'json', '--tools', '', '--effort', 'low', '--no-session-persistence'];
@@ -67,9 +67,9 @@ export class OpenAICompatibleConnector {
67
67
  const text = await response.text();
68
68
  throw new Error(`API error ${response.status}: ${text}`);
69
69
  }
70
- let chunk;
70
+ let streamResult;
71
71
  try {
72
- chunk = await this.readStream(response);
72
+ streamResult = await this.readStream(response);
73
73
  }
74
74
  catch (err) {
75
75
  clearTimeout(timer);
@@ -88,8 +88,12 @@ export class OpenAICompatibleConnector {
88
88
  finally {
89
89
  clearTimeout(timer);
90
90
  }
91
- // 正常完成
92
- fullContent += chunk;
91
+ fullContent += streamResult.content;
92
+ // 干净结束但命中 max_tokens 上限(finish_reason=length)→ 自动续写,避免静默截断
93
+ if (streamResult.finishReason === 'length' && continuation < maxContinuations) {
94
+ process.stderr.write(` 🔄 输出达 max_tokens 上限,自动续写 (${continuation + 1}/${maxContinuations}),已累计 ${fullContent.length} 字符...\n`);
95
+ continue;
96
+ }
93
97
  break;
94
98
  }
95
99
  return {
@@ -114,6 +118,7 @@ export class OpenAICompatibleConnector {
114
118
  const decoder = new TextDecoder();
115
119
  let content = '';
116
120
  let buffer = '';
121
+ let finishReason = null;
117
122
  let lastProgressTime = 0;
118
123
  try {
119
124
  while (true) {
@@ -146,6 +151,9 @@ export class OpenAICompatibleConnector {
146
151
  const delta = chunk.choices?.[0]?.delta?.content;
147
152
  if (delta)
148
153
  content += delta;
154
+ const fr = chunk.choices?.[0]?.finish_reason;
155
+ if (fr)
156
+ finishReason = fr;
149
157
  }
150
158
  catch (e) {
151
159
  // 重新抛出 API 错误,忽略 JSON 解析失败
@@ -165,6 +173,6 @@ export class OpenAICompatibleConnector {
165
173
  throw streamErr;
166
174
  }
167
175
  reader.cancel().catch(() => { }); // 正常结束也释放 reader
168
- return content;
176
+ return { content, finishReason };
169
177
  }
170
178
  }
@@ -191,7 +191,13 @@ export function loadPreviousContext(outputDir) {
191
191
  const stepFiles = existsSync(stepsDir) ? readdirSync(stepsDir) : [];
192
192
  const stepFile = stepFiles.find(f => f.endsWith(`-${step.id}.md`));
193
193
  if (stepFile) {
194
- const content = readFileSync(join(stepsDir, stepFile), 'utf-8');
194
+ let content = readFileSync(join(stepsDir, stepFile), 'utf-8');
195
+ // 去掉文件头部(> emoji **name** | 步骤 i/n 后跟 \n---\n),只把正文回灌给下游,
196
+ // 否则 --resume 时下游专家会收到带 markdown 头的"上一版产出"(与 loadStepOutput 一致)
197
+ const headerEnd = content.indexOf('\n---\n');
198
+ if (headerEnd >= 0)
199
+ content = content.slice(headerEnd + 5);
200
+ content = content.trim();
195
201
  if (content && content !== '(无输出)') {
196
202
  context.set(step.output_var, content);
197
203
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "agency-orchestrator",
3
- "version": "0.7.2",
3
+ "version": "0.7.3",
4
4
  "description": "Multi-agent YAML workflow engine — 211 AI roles, auto DAG parallelism, zero code. One sentence → multiple AI roles collaborate → complete plan in minutes. 10 LLM providers, 7 need no API key.",
5
5
  "keywords": [
6
6
  "multi-agent",
@@ -0,0 +1,8 @@
1
+ import{u as d,r as m,j as n}from"./vendor-react-DvXH3HTt.js";import{S as p}from"./SiteFooter-Cc_g2meZ.js";import{B as c}from"./badge-yz2euTrj.js";import{M as u}from"./Markdown-DaWbDBGS.js";import{c as h,u as x,S as g}from"./index-wcThbHRx.js";import{A as f}from"./arrow-up-right-CUikZoTe.js";import"./vendor-radix-Bip5Pqfe.js";import"./vendor-charts-BiMa1Zmo.js";/**
2
+ * @license lucide-react v0.469.0 - ISC
3
+ *
4
+ * This source code is licensed under the ISC license.
5
+ * See the LICENSE file in the root directory of this source tree.
6
+ */const L=h("Tag",[["path",{d:"M12.586 2.586A2 2 0 0 0 11.172 2H4a2 2 0 0 0-2 2v7.172a2 2 0 0 0 .586 1.414l8.704 8.704a2.426 2.426 0 0 0 3.42 0l6.58-6.58a2.426 2.426 0 0 0 0-3.42z",key:"vktsd0"}],["circle",{cx:"7.5",cy:"7.5",r:".5",fill:"currentColor",key:"kqv944"}]]),k='# Changelog\n\n本项目采用 [语义化版本](https://semver.org/lang/zh-CN/)。\n\n## [Unreleased]\n\n## [0.7.3] - 2026-06-16\n\n### Fixed\n- **`--resume` 上下文污染**:恢复上游产出时未剥离 step 文件头(`> 名字 | 步骤 i/n … ---`),下游专家会收到带 markdown 头的「上一版产出」;现与 `loadStepOutput` 一致只回灌正文(含回归测试)。\n- **OpenAI 兼容流式静默截断**:命中 `max_tokens`(`finish_reason=length`)时直接返回截断内容、不续写——正是 DeepSeek 长文场景;现读取 `finish_reason`,达上限自动续写(与流断开同样处理)。\n- **安全**:`claude-code` 临时系统提示词文件改为 `0600`,避免同机其他用户读取专有角色定义。\n\n### Changed\n- 英文站专家计数按英文库实际显示 **184**(原误标 216),并移除英文文案中英文库并不包含的「中国平台角色」描述。\n- 删除演示模式改造后已无引用的死代码 `StudioGate.tsx`。\n\n## [0.7.2] - 2026-06-16\n\n### Changed\n- **角色库升级到 agency-agents-zh 1.2.2**:中文角色 **211 → 216**(新增服装厂排产工程师等;并带来 Hermes Windows 目录修复、Qoder 集成、ai-citation-strategist 中文化)。全站计数统一为 **216 中文 / 184 英文**(README / 官网 / 文档 / 教程 / About)。\n\n### Fixed\n- 官网专家库清理一个失效角色的孤儿提示词(`support-supply-chain-strategist`,1.2.x 已移除)。\n\n## [0.7.1] - 2026-06-16\n\n### Fixed\n- **嵌套角色现在可枚举 / 可用**:角色加载改为**递归**子目录,`game-development/unity/*`、`unreal-engine/*`、`roblox-studio/*`、`godot/*`、`blender/*` 等 15 个嵌套智能体此前无法被 `listAgents` / `ao roles` / compose 建议发现(loader 只扫一层)——现在补齐,中文库角色数与官方一致达到 **211**(英文库 184)。\n- **枚举只认真角色**:仅纳入带 `name:` frontmatter 的 `.md`,排除 `QUICKSTART` / `EXECUTIVE-BRIEF` 等攻略 / 模板文档(此前会被当成"角色"混入列表)。\n- **官网专家库补齐**:`gen-experts.mjs` 同步递归,专家浏览 / 复制提示词覆盖全部 211(zh)+ 184(en),不再漏掉游戏开发类嵌套专家。\n\n## [0.7.0] - 2026-06-16\n\n### Added\n- **网页 Studio + 桌面客户端**:本地 `ao web` 启动可视化 Studio(角色组队 / 工作流 / 运行历史 / 用量 / 密钥);同一套 UI 打包为 Electron 桌面客户端(macOS arm64+Intel · Windows · Linux),经 GitHub Actions 一键发布到 Releases,官网提供下载入口。key 只存本机。\n- **Studio / 官网全面双语化 + 英文资源**:UI、角色库、工作流模板按语言切换(`/en` 读英文 `agency-agents` 库与 `workflows-en/` 模板,不再混中文)。\n- **CompShare(优云智算)provider 内置**:OpenAI 兼容接入,填 key 即用(`COMPSHARE_API_KEY` / `COMPSHARE_BASE_URL`)。\n- **一键复制完整提示词**:Studio 专家详情与公开站「专家库」页都能查看 / 复制每位专家的完整系统提示词(公开站读静态 `experts.json` + `/prompts/*.md`)。\n- **公开站 `/studio` 演示模式**:无后端也能浏览全部专家、查看 / 复制提示词;填 key 与运行被引导到「安装客户端 / 本地运行」。\n- **`ao roles <关键词>` 角色搜索**:按 角色路径 / 名称 / 描述 不区分大小写过滤(也支持 `--search`);无匹配给友好提示。\n- **`ao init` 首跑向导**:角色库装好后自动探测可用 provider(优先免 key 的 claude-code CLI / Ollama),按环境给出个性化下一步,缩短「安装→价值」。\n- **评测回归门禁**:黄金任务集抽到 `eval/golden-tasks.ts`;新增 `eval/gate.ts` 与 `npm run eval:gate` / `eval:baseline`——胜率阈值 + judge 双向一致率阈值 + 基线快照回归判定,judge 太弱时判 INCONCLUSIVE(绝不当通过)。\n\n### Changed\n- **`ao compose` 幻觉角色确定性修复**:生成的工作流引用不存在的角色时,优先用最接近的**真实角色直接改写 YAML**(不再多花一次 LLM 调用、保证产物可运行),无可信匹配才回退 LLM;并在 LLM 重试后再做确定性兜底,堵住「重试后仍残留坏角色却被当成功」的缺口。\n- **打包内容**:npm 包额外纳入 `web/`、`website/dist/`、`workflows-en/`,`prepublishOnly` 自动构建引擎 + Studio。\n\n### Tests\n- 新增 `test/roles.ts`、`test/init.ts`、`test/eval-gate.ts` 并并入 `npm test`;`test/compose.ts` 覆盖确定性角色修复。\n\n## [0.6.17] - 2026-04-29\n\n### Added\n- 模板库扩充:5 个手写精调高质量 workflow,覆盖个人 / 中小团队高频场景\n - `tech-blog.yaml` — 技术博客创作(调研 → 大纲 → 正文 → 润色,4 步)\n - `meeting-notes.yaml` — 会议纪要整理(清理 → 决策/TODO/争议 三视角并行 → 整合,5 步)\n - `okr-decomposition.yaml` — OKR 拆解(现状分析 → 季度 KR → Q1 行动方案 → 完整文档,4 步)\n - `product-launch-comms.yaml` — 产品发布物料(统一定位 → 通稿 / 社交 / 邮件 三件套并行 → 物料包,5 步)\n - `pitch-deck-outline.yaml` — 创业 Pitch Deck 大纲(市场 / 方案 / 商业模式 / 财务 四角度并行 → 5 屏 deck,5 步)\n- 内置 workflow 总数从 44 个增加到 **49 个**,全部 validate 通过\n\n### Notes\n- 5 个模板都是"输入一句话 / 一段简介 → 多角度并行展开 → 整合"的纯 LLM 任务,不依赖外部数据 / 联网,零歧义\n- 每个模板的 task 描述都精确指定输出格式(markdown 模板)和约束(字数 / 结构 / 不许 AI 套话),避免 LLM 输出泛泛而谈\n- 默认 provider deepseek-chat(最便宜稳),用户可用 `--provider` 覆盖\n\n## [0.6.16] - 2026-04-29\n\n### Changed\n- **`ao demo` 重构:检测优先,去掉预录 mock**\n - 检测到可用 LLM(CLI / API key / Ollama)→ **直接真跑** story-creation 工作流,无需"先看 mock 再确认"\n - 没检测到 → 显示**真实 DAG 结构**(用 ao 自身的 `formatDAG`)+ 3 行行动指引(Claude Code / DeepSeek / Ollama 任选)\n - 删掉旧的 `MOCK_STEPS` 预录数据 + `replayMockSteps` 函数(共 ~150 行)。原 mock 内容是精修过的小说创作,让用户对真跑的输出期望被错误抬高,且占用 5 秒注意力后还要再问 y/n,链路过长\n - 体验路径从 "mock 5s → 选 provider → y/n → 真跑" 简化为 "检测 → 真跑" 或 "检测 → DAG + 配 key 指引"\n\n## [0.6.15] - 2026-04-27\n\n### Fixed\n- CLI provider(claude-code / gemini-cli / copilot-cli / codex-cli / openclaw-cli / hermes-cli)在"进程退出码 0 但 stdout 完全空"时,cli-base.ts 之前会默默返回空字符串给上层,导致 `ao compose` 报出迷惑性的"AI 生成的内容不是有效的 workflow YAML",真实根因被吞。现在直接 reject 并给出诊断 hint:可能是 CLI 命令格式过期(参考 issue #14 hermes 的 `chat -q` → `-z`)、agent / model 配置错、或需要先认证。错误消息附上"在终端直接跑一次该命令看真实输出"的具体调试建议\n\n### Tests\n- 新增 test/cli-base.ts:覆盖 4 类场景(exit 0 + 空输出 reject / 正常输出 / exit 非 0 + stderr / ENOENT 提示安装),全量从 135 项增加到 **139 项**\n\n## [0.6.14] - 2026-04-27\n\n### Fixed\n- **#16** DeepSeek 原生 connector 在某些用户环境下报 `405 Method Not Allowed`。根因:commit `f96d7b0` 让 deepseek case fallback 到 `OPENAI_BASE_URL` env,但用户先用 `ao init --provider openai --base-url https://api.openai.com/v1` 写入过 `OPENAI_BASE_URL` 后切到 deepseek,会用 OpenAI endpoint + DeepSeek key 调用,得到 405。修复:每个 provider 用自己专属的 BASE_URL env(deepseek → `DEEPSEEK_BASE_URL`,openai → `OPENAI_BASE_URL`),不再跨污染。`ao init` 也对应路由到正确 env\n\n### Tests\n- 修补一个发版 process 漏洞:`factory-custom.ts` / `step-llm.ts` / `step-llm-yaml.ts` / `stdin-limit.ts` / `compose-name.ts` 这 5 个测试文件之前**根本没在 `npm test` 里跑**(21 项 +1 项新加的测试都不被 CI 守护)。补进 test 脚本,全量从 114 项增加到 **135 项**\n- 新增 2 项 factory-custom 测试覆盖 #16:deepseek 不被 OPENAI_BASE_URL 污染 / DEEPSEEK_BASE_URL 自定义代理仍生效\n\n## [0.6.13] - 2026-04-27\n\n### Fixed\n- **回归修复**:0.6.12 新加的"output 唯一性校验"对两类合法的 ao 设计模式误报,导致 6 个内置 workflow 在 validate 时失败。现在校验放过两类例外:\n - **`any_completed` 分支收敛**:多个并行 step 产出同名 output,下游用 `depends_on_mode: any_completed` 引用,是有意的"任一分支完成即走"设计(如 incident-response.yaml 的多团队并行分析、hiring-pipeline.yaml 的多维度评估)\n - **loop 迭代覆盖**:种子 step 产生初始值 + loop step 反复覆盖同名 output,是常见的"原地修改"迭代模式(如 content-publish.yaml 的 write/revise 循环)\n- 修了 3 个内置 workflow 的拓扑反向引用:legal-consultation.yaml / investment-analysis.yaml / xiaohongshu-content.yaml 的相关 step 补 `depends_on`(不是新校验过严,是 yaml 本身设计就有缺陷,新校验把它们暴露出来)\n\n### Tests\n- 新增 2 项 parser 测试覆盖 any_completed / loop 迭代覆盖的合法重名例外\n- E2E 验证:44 个内置 workflow 现在全部通过 validate\n\n## [0.6.12] - 2026-04-27\n\n### Fixed\n- **#14** `hermes-cli` connector 用旧参数 `chat -q` 调用 hermes,新版 hermes 已废弃此用法、改为 `-z`(oneshot)。修正参数让 hermes provider 重新可用\n- `validateWorkflow` 之前只检查"变量是否在某处定义",不检查"是否在引用方的 DAG 上游"。一个 step 引用下游 step 的 output(拓扑反向)会通过校验,到 run 阶段才崩。现在校验阶段就拦下,错误提示明确指出"该变量由非上游 step 产出,需要把对应 step 加进 depends_on"。和 autoFix 的拓扑约束保持一致\n- `validateWorkflow` 加 `step.output` 唯一性检查。两个 step 不能 output 到同一个变量名(重名会让下游引用拿到的值依赖 context Map 写入顺序,不可预期)\n- `validateWorkflow` 的变量引用检查范围扩到 `step.condition` / `step.loop.exit_condition` / `step.prompt`。之前只看 `step.task`,让条件分支表达式里的未定义变量漏检\n\n### Tests\n- 新增 3 项 parser 测试覆盖:拓扑反向引用 / output 重名 / condition 字段里的未定义变量\n\n## [0.6.11] - 2026-04-27\n\n### Fixed\n- `repairWithLLM` 失败时静默吞错。LLM 调用因网络/认证/超时失败时不再悄悄返回,会在 stderr 给出失败原因,避免用户看到 "LLM 修复后仍有 X 个变量未解决" 误以为 LLM 修了但不够,实际是根本没调通\n\n### Tests\n- 新增 1 项测试覆盖跨 step 同名 bad var 的已知边界行为(全局 replace 只处理一次,靠 LLM repair 兜底)\n\n## [0.6.10] - 2026-04-27\n\n### Fixed\n- `ao compose --run` 生成的 YAML 中变量引用错误的修复链全面强化。原 `autoFixVariableRefs` 启发式有两个核心缺陷:\n - 模糊匹配在**全局 outputs** 范围内找替换目标,能把"早期 step 引用未来 step output"配上(DAG 拓扑反向),例如 `{{personal_assessment}}` 被错误地改成 `{{final_report}}`\n - 启发式覆盖不全时直接放弃,没有 LLM 兜底\n- 现在的修复链:\n - autoFix 加 **DAG 上游约束**:替换目标必须在当前 step 的 `depends_on` 递归闭包内的 step.output 集合里。指向下游或跨支的错改不再可能\n - autoFix 修不全时自动调 **LLM 二次修复**:把当前 YAML、未解决的变量列表、可用 inputs/outputs 喂给 LLM,让它选择改 task 引用 / 加 step output / 补 depends_on\n - `--run` 模式在 compose 阶段就检查"未定义变量 / 角色不存在 / 解析失败"等致命错误,不再放进 run 阶段才崩溃;abort 时给出清晰的"重新生成 / 手动修改"建议\n\n### Changed\n- compose system prompt(中英)加两条规则:(1) 每个 `{{X}}` 引用的 X 必须在 inputs 或上游 step.output 中;(2) merge / 汇总类 step 的 `depends_on` 必须列出所有产生引用变量的上游 step\n\n## [0.6.9] - 2026-04-24\n\n### Fixed\n- Windows 上 `ao run` / `ao compose` / `ao serve` 找不到包内置 / node_modules 下的 agents 目录,报 "agents 目录不存在"。根因:`new URL(import.meta.url).pathname` 在 Windows 上返回 `/C:/Users/...` 这种前导斜杠非法路径,`dirname` + `resolve` 后所有依赖 scriptDir 的候选路径全部失效。改用 `node:url` 的 `fileURLToPath` 跨平台 API 正确解析。Mac/Linux 行为不变\n\n## [0.6.8] - 2026-04-24\n\n### Changed\n- 超时重试递增的上限从 900s 提到 3600s(60 分钟)。原上限对 CLI / ollama 长任务偏紧:CLI 默认 600s 起跳第一次递增就封顶,用户 `--timeout 20m` 起点已超上限完全不递增。抬到 60min 后覆盖绝大多数真实长任务;仍然保留上限作为"防误配置放飞"的保险丝。真要超过 1 小时单步用 `timeout: 0` / `--timeout 0` 完全不限时\n\n## [0.6.7] - 2026-04-23\n\n### Added\n- `ao run` / `ao compose` 新增 `--timeout <value>` 参数。支持 `300000`(毫秒)、`300s`(秒)、`5m`(分钟)、`0`(不限时)。命令行优先级高于 YAML 里的 `llm.timeout`\n- 因超时触发重试时,下一次 timeout 自动 x1.5 递增(上限 900s,本版本后续被提到 3600s)。递增同时作用于 connector 内层 fetch/CLI timeout,避免内层 hard timeout 提前 abort\n\n### Changed\n- `ao compose` 生成的 YAML 默认 `timeout` 从 120000 抬到 300000(API 类 provider)。ollama 和 CLI 类保持 600000\n- `withTimeout` 错误消息加引导:"超时 (Xms),可用 --timeout 或 YAML llm.timeout 延长"\n\n### Fixed\n- `classifyError` 5xx / 429 状态码改用 `\\b` 单词边界匹配。原 `msg.includes(\'500\')` 等会把 "450000ms"、"1500ms"、"1429ms" 等字符串里的数字子串误判成 HTTP 错误,导致超时错误被错误归类为 server_error,递增逻辑失效\n- `classifyError` 现在识别中文"超时"字样。之前 `withTimeout` 抛出的 `超时 (120000ms)` 被归为 non_retryable,retry 根本不触发\n- `timeout: 0`(不限时)现在真正生效。原 `effectiveConfig.timeout || default` 把 0 当 falsy 用默认值覆盖了,改成 `!== undefined` 判断\n',v=/^##\s*\[([^\]]+)\]\s*(?:-\s*(.+))?$/;function y(s=k){const t=s.split(`
7
+ `),o=[];let e=null,a=[];const r=()=>{e&&(e.body=a.join(`
8
+ `).trim(),o.push(e))};for(const l of t){const i=l.match(v);i?(r(),e={version:i[1].trim(),date:(i[2]??"").trim(),body:""},a=[]):e&&a.push(l)}return r(),o}const A=y();function b(s){return`v${s.replace(/[^\w.-]/g,"-")}`}function j(){const{t:s}=x(),t=s.changelog,{hash:o}=d();return m.useEffect(()=>{if(!o)return;const e=document.getElementById(o.slice(1));e&&e.scrollIntoView({behavior:"smooth",block:"start"})},[o]),n.jsxs(n.Fragment,{children:[n.jsx("main",{className:"pt-24",children:n.jsxs("div",{className:"container-page max-w-3xl pb-20",children:[n.jsx("h1",{className:"text-3xl font-extrabold tracking-tight sm:text-4xl",children:t.title}),n.jsx("p",{className:"mt-3 text-muted-foreground",children:t.subtitle}),n.jsx("div",{className:"mt-10 space-y-5",children:A.map((e,a)=>{const r=b(e.version);return n.jsxs("section",{id:r,className:"scroll-mt-24 rounded-2xl border border-border/70 bg-card/60 p-6",children:[n.jsxs("div",{className:"flex flex-wrap items-center gap-3",children:[n.jsxs("a",{href:`#${r}`,className:"inline-flex items-center gap-1.5 text-xl font-bold hover:text-primary",children:[n.jsx(L,{className:"size-4 text-primary"}),/^\d/.test(e.version)?`v${e.version}`:e.version]}),a===0&&n.jsx(c,{className:"border-primary/30 bg-primary/10 text-primary",children:t.latest}),e.date&&n.jsx("span",{className:"text-sm text-muted-foreground",children:e.date})]}),e.body&&n.jsx(u,{className:"mt-4",children:e.body})]},e.version)})}),n.jsxs("a",{href:g.changelog,target:"_blank",rel:"noreferrer",className:"mt-12 inline-flex items-center gap-1.5 rounded-xl border border-border/70 bg-card/60 px-4 py-3 text-sm font-medium hover:border-primary/40",children:[t.repoLink,n.jsx(f,{className:"size-4 text-primary"})]})]})}),n.jsx(p,{})]})}export{j as default};
@@ -1,4 +1,4 @@
1
- import{f as b,r as u,j as e,h as k,L as w}from"./vendor-react-DvXH3HTt.js";import{C as x}from"./copy-button-Dr9lRjiI.js";import{S as v}from"./SiteFooter-CLIQXwew.js";import{M as A}from"./Markdown-DCC1nLQ-.js";import{u as z,a as O}from"./index-DQ2cHvK5.js";import{S as I}from"./search-BRTjF9qD.js";import"./copy-CQZ5TzmV.js";import"./vendor-radix-Bip5Pqfe.js";import"./vendor-charts-BiMa1Zmo.js";const i=[{icon:"🚀",label:{zh:"快速入门",en:"Getting started"},pages:[{slug:"intro",title:{zh:"软件介绍",en:"Introduction"},sections:[{heading:{zh:"什么是 Agency Orchestrator",en:"What is Agency Orchestrator"},body:{zh:`Agency Orchestrator(\`ao\`)是 **agency-agents 专家角色库的编排器**。
1
+ import{f as b,r as u,j as e,h as k,L as w}from"./vendor-react-DvXH3HTt.js";import{C as x}from"./copy-button-CKwo9hmn.js";import{S as v}from"./SiteFooter-Cc_g2meZ.js";import{M as A}from"./Markdown-DaWbDBGS.js";import{u as z,a as O}from"./index-wcThbHRx.js";import{S as I}from"./search-DYZkqer3.js";import"./copy-Dg7XjSsj.js";import"./vendor-radix-Bip5Pqfe.js";import"./vendor-charts-BiMa1Zmo.js";const i=[{icon:"🚀",label:{zh:"快速入门",en:"Getting started"},pages:[{slug:"intro",title:{zh:"软件介绍",en:"Introduction"},sections:[{heading:{zh:"什么是 Agency Orchestrator",en:"What is Agency Orchestrator"},body:{zh:`Agency Orchestrator(\`ao\`)是 **agency-agents 专家角色库的编排器**。
2
2
 
3
3
  agency-agents 里有 216 位打磨好的 AI 专家——营销、工程、设计、产品、财务、法律、销售、学术……每一位都是一段精调过的系统提示词,让模型稳定地以该领域专家的身份输出。但单独一位专家只能解决一个环节;真实任务往往要**多位专家分工协作**:研究员先调研、分析师再拆解、撰稿人成文、收口角色把关。
4
4
 
@@ -1 +1 @@
1
- import{r as l,j as e}from"./vendor-react-DvXH3HTt.js";import{S as F}from"./SiteFooter-CLIQXwew.js";import{u as R,a as p,S as D,X as K}from"./index-DQ2cHvK5.js";import{e as q}from"./experts-Bv953aOf.js";import{S as H}from"./search-BRTjF9qD.js";import{C as z,a as M}from"./copy-CQZ5TzmV.js";import{A as I}from"./arrow-up-right-Cn4ATaZ1.js";import"./vendor-radix-Bip5Pqfe.js";import"./vendor-charts-BiMa1Zmo.js";const E=q;async function Q(n){try{return await navigator.clipboard.writeText(n),!0}catch{try{const a=document.createElement("textarea");a.value=n,a.style.position="fixed",a.style.opacity="0",document.body.appendChild(a),a.select();const s=document.execCommand("copy");return document.body.removeChild(a),s}catch{return!1}}}function T({e:n,className:a}){return e.jsx("span",{className:p("grid size-10 shrink-0 place-items-center rounded-xl text-lg font-bold text-white",a),style:{background:n.color||"#888"},children:n.emoji||n.name.slice(0,1)})}function Y(){const{t:n,lang:a}=R(),s=n.experts,m=E[a]??E.zh,[u,P]=l.useState(""),[c,y]=l.useState("all"),f=l.useRef(new Map),[x,j]=l.useState(null),[d,b]=l.useState(null),[N,h]=l.useState(""),[v,w]=l.useState(!1),k=l.useCallback(async t=>{const r=`${a}/${t.category}/${t.id}`;if(f.current.has(r))return f.current.get(r);const o=await fetch(`/prompts/${a}/${t.category}/${t.id}.md`);if(!o.ok)throw new Error("fetch failed");const i=await o.text();return f.current.set(r,i),i},[a]),C=t=>{j(t),setTimeout(()=>j(r=>r===t?null:r),1800)},$=async t=>{const r=`${t.category}/${t.id}`;try{const o=await Q(await k(t));C(o?r:`fail:${r}`)}catch{C(`fail:${r}`)}},S=async t=>{b(t),h(""),w(!0);try{h(await k(t))}catch{h("")}w(!1)},L=l.useMemo(()=>{const t=new Map;return m.forEach(r=>t.set(r.category,r.categoryName)),Array.from(t,([r,o])=>({id:r,name:o}))},[m]),g=l.useMemo(()=>{const t=u.trim().toLowerCase();return m.filter(r=>c!=="all"&&r.category!==c?!1:t?(r.name+r.description+r.categoryName).toLowerCase().includes(t):!0)},[m,u,c]);return e.jsxs(e.Fragment,{children:[e.jsx("main",{className:"pt-24",children:e.jsxs("div",{className:"container-page pb-20",children:[e.jsxs("div",{className:"mx-auto max-w-2xl text-center",children:[e.jsx("h1",{className:"text-3xl font-extrabold tracking-tight sm:text-4xl md:text-5xl",children:s.title}),e.jsx("p",{className:"mx-auto mt-4 text-pretty leading-relaxed text-muted-foreground",children:s.subtitle})]}),e.jsx("div",{className:"mx-auto mt-8 max-w-xl",children:e.jsxs("div",{className:"relative",children:[e.jsx(H,{className:"pointer-events-none absolute left-3 top-1/2 size-4 -translate-y-1/2 text-muted-foreground"}),e.jsx("input",{value:u,onChange:t=>P(t.target.value),placeholder:s.searchPlaceholder,className:"w-full rounded-xl border border-border/70 bg-card/60 py-2.5 pl-10 pr-3 text-sm outline-none focus:border-primary/40"})]})}),e.jsxs("div",{className:"mt-5 flex flex-wrap items-center justify-center gap-2",children:[e.jsx(A,{active:c==="all",onClick:()=>y("all"),children:s.all}),L.map(t=>e.jsx(A,{active:c===t.id,onClick:()=>y(t.id),children:t.name},t.id))]}),e.jsxs("p",{className:"mt-4 text-center text-sm text-muted-foreground",children:[g.length," ",s.countSuffix]}),g.length===0?e.jsx("p",{className:"mt-16 text-center text-sm text-muted-foreground",children:s.empty}):e.jsx("div",{className:"mt-6 grid gap-4 sm:grid-cols-2 lg:grid-cols-3",children:g.map(t=>{const r=`${t.category}/${t.id}`,o=x===r,i=x===`fail:${r}`;return e.jsxs("div",{className:"flex flex-col rounded-2xl border border-border/70 bg-card/60 p-5 transition-colors hover:border-primary/40",children:[e.jsxs("button",{type:"button",onClick:()=>S(t),className:"flex items-center gap-3 text-left",children:[e.jsx(T,{e:t}),e.jsxs("div",{className:"min-w-0",children:[e.jsx("div",{className:"truncate text-[11px] font-medium text-primary",children:t.categoryName}),e.jsx("h3",{className:"truncate font-semibold",children:t.name})]})]}),e.jsx("p",{className:"mt-3 line-clamp-4 flex-1 text-sm leading-relaxed text-muted-foreground",children:t.description}),e.jsxs("div",{className:"mt-4 flex items-center gap-2",children:[e.jsx("button",{type:"button",onClick:()=>S(t),className:"rounded-lg border border-border/70 px-3 py-1.5 text-xs font-medium text-muted-foreground hover:border-primary/40 hover:text-foreground",children:s.viewPrompt}),e.jsxs("button",{type:"button",onClick:()=>$(t),className:p("inline-flex flex-1 items-center justify-center gap-1.5 rounded-lg border px-3 py-1.5 text-xs font-medium transition-colors",o?"border-emerald-500/40 bg-emerald-500/10 text-emerald-500":i?"border-red-500/40 bg-red-500/10 text-red-500":"border-primary/40 bg-primary/10 text-primary hover:bg-primary/15"),children:[o?e.jsx(z,{className:"size-3.5"}):e.jsx(M,{className:"size-3.5"}),o?s.copied:i?s.copyFailed:s.copyPrompt]})]})]},r)})}),e.jsx("div",{className:"mt-12 text-center",children:e.jsxs("a",{href:D.rolesRepo,target:"_blank",rel:"noreferrer",className:"inline-flex items-center gap-1.5 rounded-xl border border-border/70 bg-card/60 px-4 py-3 text-sm font-medium hover:border-primary/40",children:[s.repoCta,e.jsx(I,{className:"size-4 text-primary"})]})})]})}),e.jsx(F,{}),d&&e.jsx("div",{className:"fixed inset-0 z-50 flex items-end justify-center bg-black/60 p-0 backdrop-blur-sm sm:items-center sm:p-6",onClick:()=>b(null),children:e.jsxs("div",{className:"flex max-h-[90vh] w-full max-w-2xl flex-col overflow-hidden rounded-t-2xl border border-border/70 bg-card shadow-2xl sm:rounded-2xl",onClick:t=>t.stopPropagation(),children:[e.jsxs("div",{className:"flex items-center gap-3 border-b border-border/70 p-4",children:[e.jsx(T,{e:d}),e.jsxs("div",{className:"min-w-0 flex-1",children:[e.jsx("div",{className:"truncate text-[11px] font-medium text-primary",children:d.categoryName}),e.jsx("h3",{className:"truncate font-semibold",children:d.name})]}),e.jsx("button",{type:"button",onClick:()=>b(null),"aria-label":s.close,className:"rounded-lg p-1.5 text-muted-foreground hover:bg-muted hover:text-foreground",children:e.jsx(K,{className:"size-5"})})]}),e.jsx("p",{className:"px-4 pt-3 text-xs text-muted-foreground",children:s.promptHint}),e.jsx("div",{className:"m-4 flex-1 overflow-auto rounded-xl border border-border/60 bg-background/60 p-4",children:v?e.jsx("p",{className:"text-sm text-muted-foreground",children:s.loading}):e.jsx("pre",{className:"whitespace-pre-wrap break-words font-mono text-xs leading-relaxed text-foreground",children:N})}),e.jsx("div",{className:"flex items-center justify-end gap-2 border-t border-border/70 p-4",children:(()=>{const t=`${d.category}/${d.id}`,r=x===t,o=x===`fail:${t}`;return e.jsxs("button",{type:"button",onClick:()=>$(d),disabled:v||!N,className:p("inline-flex items-center gap-1.5 rounded-lg border px-4 py-2 text-sm font-medium transition-colors disabled:opacity-50",r?"border-emerald-500/40 bg-emerald-500/10 text-emerald-500":o?"border-red-500/40 bg-red-500/10 text-red-500":"border-primary/40 bg-primary/10 text-primary hover:bg-primary/15"),children:[r?e.jsx(z,{className:"size-4"}):e.jsx(M,{className:"size-4"}),r?s.copied:o?s.copyFailed:s.copyPrompt]})})()})]})})]})}function A({active:n,onClick:a,children:s}){return e.jsx("button",{type:"button",onClick:a,className:p("rounded-full border px-3 py-1 text-sm font-medium transition-colors",n?"border-primary/40 bg-primary/10 text-primary":"border-border/70 text-muted-foreground hover:text-foreground"),children:s})}export{Y as default};
1
+ import{r as l,j as e}from"./vendor-react-DvXH3HTt.js";import{S as F}from"./SiteFooter-Cc_g2meZ.js";import{u as R,a as p,S as D,X as K}from"./index-wcThbHRx.js";import{e as q}from"./experts-Bv953aOf.js";import{S as H}from"./search-DYZkqer3.js";import{C as z,a as M}from"./copy-Dg7XjSsj.js";import{A as I}from"./arrow-up-right-CUikZoTe.js";import"./vendor-radix-Bip5Pqfe.js";import"./vendor-charts-BiMa1Zmo.js";const E=q;async function Q(n){try{return await navigator.clipboard.writeText(n),!0}catch{try{const a=document.createElement("textarea");a.value=n,a.style.position="fixed",a.style.opacity="0",document.body.appendChild(a),a.select();const s=document.execCommand("copy");return document.body.removeChild(a),s}catch{return!1}}}function T({e:n,className:a}){return e.jsx("span",{className:p("grid size-10 shrink-0 place-items-center rounded-xl text-lg font-bold text-white",a),style:{background:n.color||"#888"},children:n.emoji||n.name.slice(0,1)})}function Y(){const{t:n,lang:a}=R(),s=n.experts,m=E[a]??E.zh,[u,P]=l.useState(""),[c,y]=l.useState("all"),f=l.useRef(new Map),[x,j]=l.useState(null),[d,b]=l.useState(null),[N,h]=l.useState(""),[v,w]=l.useState(!1),k=l.useCallback(async t=>{const r=`${a}/${t.category}/${t.id}`;if(f.current.has(r))return f.current.get(r);const o=await fetch(`/prompts/${a}/${t.category}/${t.id}.md`);if(!o.ok)throw new Error("fetch failed");const i=await o.text();return f.current.set(r,i),i},[a]),C=t=>{j(t),setTimeout(()=>j(r=>r===t?null:r),1800)},$=async t=>{const r=`${t.category}/${t.id}`;try{const o=await Q(await k(t));C(o?r:`fail:${r}`)}catch{C(`fail:${r}`)}},S=async t=>{b(t),h(""),w(!0);try{h(await k(t))}catch{h("")}w(!1)},L=l.useMemo(()=>{const t=new Map;return m.forEach(r=>t.set(r.category,r.categoryName)),Array.from(t,([r,o])=>({id:r,name:o}))},[m]),g=l.useMemo(()=>{const t=u.trim().toLowerCase();return m.filter(r=>c!=="all"&&r.category!==c?!1:t?(r.name+r.description+r.categoryName).toLowerCase().includes(t):!0)},[m,u,c]);return e.jsxs(e.Fragment,{children:[e.jsx("main",{className:"pt-24",children:e.jsxs("div",{className:"container-page pb-20",children:[e.jsxs("div",{className:"mx-auto max-w-2xl text-center",children:[e.jsx("h1",{className:"text-3xl font-extrabold tracking-tight sm:text-4xl md:text-5xl",children:s.title}),e.jsx("p",{className:"mx-auto mt-4 text-pretty leading-relaxed text-muted-foreground",children:s.subtitle})]}),e.jsx("div",{className:"mx-auto mt-8 max-w-xl",children:e.jsxs("div",{className:"relative",children:[e.jsx(H,{className:"pointer-events-none absolute left-3 top-1/2 size-4 -translate-y-1/2 text-muted-foreground"}),e.jsx("input",{value:u,onChange:t=>P(t.target.value),placeholder:s.searchPlaceholder,className:"w-full rounded-xl border border-border/70 bg-card/60 py-2.5 pl-10 pr-3 text-sm outline-none focus:border-primary/40"})]})}),e.jsxs("div",{className:"mt-5 flex flex-wrap items-center justify-center gap-2",children:[e.jsx(A,{active:c==="all",onClick:()=>y("all"),children:s.all}),L.map(t=>e.jsx(A,{active:c===t.id,onClick:()=>y(t.id),children:t.name},t.id))]}),e.jsxs("p",{className:"mt-4 text-center text-sm text-muted-foreground",children:[g.length," ",s.countSuffix]}),g.length===0?e.jsx("p",{className:"mt-16 text-center text-sm text-muted-foreground",children:s.empty}):e.jsx("div",{className:"mt-6 grid gap-4 sm:grid-cols-2 lg:grid-cols-3",children:g.map(t=>{const r=`${t.category}/${t.id}`,o=x===r,i=x===`fail:${r}`;return e.jsxs("div",{className:"flex flex-col rounded-2xl border border-border/70 bg-card/60 p-5 transition-colors hover:border-primary/40",children:[e.jsxs("button",{type:"button",onClick:()=>S(t),className:"flex items-center gap-3 text-left",children:[e.jsx(T,{e:t}),e.jsxs("div",{className:"min-w-0",children:[e.jsx("div",{className:"truncate text-[11px] font-medium text-primary",children:t.categoryName}),e.jsx("h3",{className:"truncate font-semibold",children:t.name})]})]}),e.jsx("p",{className:"mt-3 line-clamp-4 flex-1 text-sm leading-relaxed text-muted-foreground",children:t.description}),e.jsxs("div",{className:"mt-4 flex items-center gap-2",children:[e.jsx("button",{type:"button",onClick:()=>S(t),className:"rounded-lg border border-border/70 px-3 py-1.5 text-xs font-medium text-muted-foreground hover:border-primary/40 hover:text-foreground",children:s.viewPrompt}),e.jsxs("button",{type:"button",onClick:()=>$(t),className:p("inline-flex flex-1 items-center justify-center gap-1.5 rounded-lg border px-3 py-1.5 text-xs font-medium transition-colors",o?"border-emerald-500/40 bg-emerald-500/10 text-emerald-500":i?"border-red-500/40 bg-red-500/10 text-red-500":"border-primary/40 bg-primary/10 text-primary hover:bg-primary/15"),children:[o?e.jsx(z,{className:"size-3.5"}):e.jsx(M,{className:"size-3.5"}),o?s.copied:i?s.copyFailed:s.copyPrompt]})]})]},r)})}),e.jsx("div",{className:"mt-12 text-center",children:e.jsxs("a",{href:D.rolesRepo,target:"_blank",rel:"noreferrer",className:"inline-flex items-center gap-1.5 rounded-xl border border-border/70 bg-card/60 px-4 py-3 text-sm font-medium hover:border-primary/40",children:[s.repoCta,e.jsx(I,{className:"size-4 text-primary"})]})})]})}),e.jsx(F,{}),d&&e.jsx("div",{className:"fixed inset-0 z-50 flex items-end justify-center bg-black/60 p-0 backdrop-blur-sm sm:items-center sm:p-6",onClick:()=>b(null),children:e.jsxs("div",{className:"flex max-h-[90vh] w-full max-w-2xl flex-col overflow-hidden rounded-t-2xl border border-border/70 bg-card shadow-2xl sm:rounded-2xl",onClick:t=>t.stopPropagation(),children:[e.jsxs("div",{className:"flex items-center gap-3 border-b border-border/70 p-4",children:[e.jsx(T,{e:d}),e.jsxs("div",{className:"min-w-0 flex-1",children:[e.jsx("div",{className:"truncate text-[11px] font-medium text-primary",children:d.categoryName}),e.jsx("h3",{className:"truncate font-semibold",children:d.name})]}),e.jsx("button",{type:"button",onClick:()=>b(null),"aria-label":s.close,className:"rounded-lg p-1.5 text-muted-foreground hover:bg-muted hover:text-foreground",children:e.jsx(K,{className:"size-5"})})]}),e.jsx("p",{className:"px-4 pt-3 text-xs text-muted-foreground",children:s.promptHint}),e.jsx("div",{className:"m-4 flex-1 overflow-auto rounded-xl border border-border/60 bg-background/60 p-4",children:v?e.jsx("p",{className:"text-sm text-muted-foreground",children:s.loading}):e.jsx("pre",{className:"whitespace-pre-wrap break-words font-mono text-xs leading-relaxed text-foreground",children:N})}),e.jsx("div",{className:"flex items-center justify-end gap-2 border-t border-border/70 p-4",children:(()=>{const t=`${d.category}/${d.id}`,r=x===t,o=x===`fail:${t}`;return e.jsxs("button",{type:"button",onClick:()=>$(d),disabled:v||!N,className:p("inline-flex items-center gap-1.5 rounded-lg border px-4 py-2 text-sm font-medium transition-colors disabled:opacity-50",r?"border-emerald-500/40 bg-emerald-500/10 text-emerald-500":o?"border-red-500/40 bg-red-500/10 text-red-500":"border-primary/40 bg-primary/10 text-primary hover:bg-primary/15"),children:[r?e.jsx(z,{className:"size-4"}):e.jsx(M,{className:"size-4"}),r?s.copied:o?s.copyFailed:s.copyPrompt]})})()})]})})]})}function A({active:n,onClick:a,children:s}){return e.jsx("button",{type:"button",onClick:a,className:p("rounded-full border px-3 py-1 text-sm font-medium transition-colors",n?"border-primary/40 bg-primary/10 text-primary":"border-border/70 text-muted-foreground hover:text-foreground"),children:s})}export{Y as default};
@@ -1,4 +1,4 @@
1
- import{j as e,L as c}from"./vendor-react-DvXH3HTt.js";import{c as i,u as n,S as l,B as d,G as m}from"./index-DQ2cHvK5.js";import{B as u,U as b,T as j,K as f}from"./users-D3-N7gU0.js";import{m as o}from"./vendor-framer-motion-ZdeJPCY2.js";import{C as p}from"./copy-button-Dr9lRjiI.js";import{B as N}from"./badge-B-L-y5fx.js";import{C as y}from"./copy-CQZ5TzmV.js";import{H as v,s as w}from"./sponsors-B9KhG2hW.js";import{S as k}from"./SiteFooter-CLIQXwew.js";import"./vendor-radix-Bip5Pqfe.js";import"./vendor-charts-BiMa1Zmo.js";/**
1
+ import{j as e,L as c}from"./vendor-react-DvXH3HTt.js";import{c as i,u as n,S as l,B as d,G as m}from"./index-wcThbHRx.js";import{B as u,U as b,T as j,K as f}from"./users-Bt55vFuz.js";import{m as o}from"./vendor-framer-motion-ZdeJPCY2.js";import{C as p}from"./copy-button-CKwo9hmn.js";import{B as N}from"./badge-yz2euTrj.js";import{C as y}from"./copy-Dg7XjSsj.js";import{H as v,s as w}from"./sponsors-BgrzMlxi.js";import{S as k}from"./SiteFooter-Cc_g2meZ.js";import"./vendor-radix-Bip5Pqfe.js";import"./vendor-charts-BiMa1Zmo.js";/**
2
2
  * @license lucide-react v0.469.0 - ISC
3
3
  *
4
4
  * This source code is licensed under the ISC license.
@@ -1,4 +1,4 @@
1
- import{g as er,j as Y}from"./vendor-react-DvXH3HTt.js";import{a as ct}from"./index-DQ2cHvK5.js";function mi(e,t){const n={};return(e[e.length-1]===""?[...e,""]:e).join((n.padRight?" ":"")+","+(n.padLeft===!1?"":" ")).trim()}const gi=/^[$_\p{ID_Start}][$_\u{200C}\u{200D}\p{ID_Continue}]*$/u,di=/^[$_\p{ID_Start}][-$_\u{200C}\u{200D}\p{ID_Continue}]*$/u,yi={};function ft(e,t){return(yi.jsx?di:gi).test(e)}const xi=/[ \t\n\f\r]/g;function ki(e){return typeof e=="object"?e.type==="text"?ht(e.value):!1:ht(e)}function ht(e){return e.replace(xi,"")===""}class Xe{constructor(t,n,r){this.normal=n,this.property=t,r&&(this.space=r)}}Xe.prototype.normal={};Xe.prototype.property={};Xe.prototype.space=void 0;function nr(e,t){const n={},r={};for(const i of e)Object.assign(n,i.property),Object.assign(r,i.normal);return new Xe(n,r,t)}function zn(e){return e.toLowerCase()}class ne{constructor(t,n){this.attribute=n,this.property=t}}ne.prototype.attribute="";ne.prototype.booleanish=!1;ne.prototype.boolean=!1;ne.prototype.commaOrSpaceSeparated=!1;ne.prototype.commaSeparated=!1;ne.prototype.defined=!1;ne.prototype.mustUseProperty=!1;ne.prototype.number=!1;ne.prototype.overloadedBoolean=!1;ne.prototype.property="";ne.prototype.spaceSeparated=!1;ne.prototype.space=void 0;let bi=0;const L=Ae(),X=Ae(),Dn=Ae(),E=Ae(),$=Ae(),Ee=Ae(),re=Ae();function Ae(){return 2**++bi}const Ln=Object.freeze(Object.defineProperty({__proto__:null,boolean:L,booleanish:X,commaOrSpaceSeparated:re,commaSeparated:Ee,number:E,overloadedBoolean:Dn,spaceSeparated:$},Symbol.toStringTag,{value:"Module"})),pn=Object.keys(Ln);class Hn extends ne{constructor(t,n,r,i){let o=-1;if(super(t,n),pt(this,"space",i),typeof r=="number")for(;++o<pn.length;){const l=pn[o];pt(this,pn[o],(r&Ln[l])===Ln[l])}}}Hn.prototype.defined=!0;function pt(e,t,n){n&&(e[t]=n)}function Re(e){const t={},n={};for(const[r,i]of Object.entries(e.properties)){const o=new Hn(r,e.transform(e.attributes||{},r),i,e.space);e.mustUseProperty&&e.mustUseProperty.includes(r)&&(o.mustUseProperty=!0),t[r]=o,n[zn(r)]=r,n[zn(o.attribute)]=r}return new Xe(t,n,e.space)}const tr=Re({properties:{ariaActiveDescendant:null,ariaAtomic:X,ariaAutoComplete:null,ariaBusy:X,ariaChecked:X,ariaColCount:E,ariaColIndex:E,ariaColSpan:E,ariaControls:$,ariaCurrent:null,ariaDescribedBy:$,ariaDetails:null,ariaDisabled:X,ariaDropEffect:$,ariaErrorMessage:null,ariaExpanded:X,ariaFlowTo:$,ariaGrabbed:X,ariaHasPopup:null,ariaHidden:X,ariaInvalid:null,ariaKeyShortcuts:null,ariaLabel:null,ariaLabelledBy:$,ariaLevel:E,ariaLive:null,ariaModal:X,ariaMultiLine:X,ariaMultiSelectable:X,ariaOrientation:null,ariaOwns:$,ariaPlaceholder:null,ariaPosInSet:E,ariaPressed:X,ariaReadOnly:X,ariaRelevant:null,ariaRequired:X,ariaRoleDescription:$,ariaRowCount:E,ariaRowIndex:E,ariaRowSpan:E,ariaSelected:X,ariaSetSize:E,ariaSort:null,ariaValueMax:E,ariaValueMin:E,ariaValueNow:E,ariaValueText:null,role:null},transform(e,t){return t==="role"?t:"aria-"+t.slice(4).toLowerCase()}});function rr(e,t){return t in e?e[t]:t}function ir(e,t){return rr(e,t.toLowerCase())}const wi=Re({attributes:{acceptcharset:"accept-charset",classname:"class",htmlfor:"for",httpequiv:"http-equiv"},mustUseProperty:["checked","multiple","muted","selected"],properties:{abbr:null,accept:Ee,acceptCharset:$,accessKey:$,action:null,allow:null,allowFullScreen:L,allowPaymentRequest:L,allowUserMedia:L,alpha:L,alt:null,as:null,async:L,autoCapitalize:null,autoComplete:$,autoFocus:L,autoPlay:L,blocking:$,capture:null,charSet:null,checked:L,cite:null,className:$,closedBy:null,colorSpace:null,cols:E,colSpan:E,command:null,commandFor:null,content:null,contentEditable:X,controls:L,controlsList:$,coords:E|Ee,crossOrigin:null,data:null,dateTime:null,decoding:null,default:L,defer:L,dir:null,dirName:null,disabled:L,download:Dn,draggable:X,encType:null,enterKeyHint:null,fetchPriority:null,form:null,formAction:null,formEncType:null,formMethod:null,formNoValidate:L,formTarget:null,headers:$,height:E,hidden:Dn,high:E,href:null,hrefLang:null,htmlFor:$,httpEquiv:$,id:null,imageSizes:null,imageSrcSet:null,inert:L,inputMode:null,integrity:null,is:null,isMap:L,itemId:null,itemProp:$,itemRef:$,itemScope:L,itemType:$,kind:null,label:null,lang:null,language:null,list:null,loading:null,loop:L,low:E,manifest:null,max:null,maxLength:E,media:null,method:null,min:null,minLength:E,multiple:L,muted:L,name:null,nonce:null,noModule:L,noValidate:L,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:L,optimum:E,pattern:null,ping:$,placeholder:null,playsInline:L,popover:null,popoverTarget:null,popoverTargetAction:null,poster:null,preload:null,readOnly:L,referrerPolicy:null,rel:$,required:L,reversed:L,rows:E,rowSpan:E,sandbox:$,scope:null,scoped:L,seamless:L,selected:L,shadowRootClonable:L,shadowRootCustomElementRegistry:L,shadowRootDelegatesFocus:L,shadowRootMode:null,shadowRootSerializable:L,shape:null,size:E,sizes:null,slot:null,span:E,spellCheck:X,src:null,srcDoc:null,srcLang:null,srcSet:null,start:E,step:null,style:null,tabIndex:E,target:null,title:null,translate:null,type:null,typeMustMatch:L,useMap:null,value:X,width:E,wrap:null,writingSuggestions:null,align:null,aLink:null,archive:$,axis:null,background:null,bgColor:null,border:E,borderColor:null,bottomMargin:E,cellPadding:null,cellSpacing:null,char:null,charOff:null,classId:null,clear:null,code:null,codeBase:null,codeType:null,color:null,compact:L,declare:L,event:null,face:null,frame:null,frameBorder:null,hSpace:E,leftMargin:E,link:null,longDesc:null,lowSrc:null,marginHeight:E,marginWidth:E,noResize:L,noHref:L,noShade:L,noWrap:L,object:null,profile:null,prompt:null,rev:null,rightMargin:E,rules:null,scheme:null,scrolling:X,standby:null,summary:null,text:null,topMargin:E,valueType:null,version:null,vAlign:null,vLink:null,vSpace:E,allowTransparency:null,autoCorrect:null,autoSave:null,credentialless:L,disablePictureInPicture:L,disableRemotePlayback:L,exportParts:Ee,part:$,prefix:null,property:null,results:E,security:null,unselectable:null},space:"html",transform:ir}),Si=Re({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",maskType:"mask-type",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:re,accentHeight:E,accumulate:null,additive:null,alignmentBaseline:null,alphabetic:E,amplitude:E,arabicForm:null,ascent:E,attributeName:null,attributeType:null,azimuth:E,bandwidth:null,baselineShift:null,baseFrequency:null,baseProfile:null,bbox:null,begin:null,bias:E,by:null,calcMode:null,capHeight:E,className:$,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:E,diffuseConstant:E,direction:null,display:null,dur:null,divisor:E,dominantBaseline:null,download:L,dx:null,dy:null,edgeMode:null,editable:null,elevation:E,enableBackground:null,end:null,event:null,exponent:E,externalResourcesRequired:null,fill:null,fillOpacity:E,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:Ee,g2:Ee,glyphName:Ee,glyphOrientationHorizontal:null,glyphOrientationVertical:null,glyphRef:null,gradientTransform:null,gradientUnits:null,handler:null,hanging:E,hatchContentUnits:null,hatchUnits:null,height:null,href:null,hrefLang:null,horizAdvX:E,horizOriginX:E,horizOriginY:E,id:null,ideographic:E,imageRendering:null,initialVisibility:null,in:null,in2:null,intercept:E,k:E,k1:E,k2:E,k3:E,k4:E,kernelMatrix:re,kernelUnitLength:null,keyPoints:null,keySplines:null,keyTimes:null,kerning:null,lang:null,lengthAdjust:null,letterSpacing:null,lightingColor:null,limitingConeAngle:E,local:null,markerEnd:null,markerMid:null,markerStart:null,markerHeight:null,markerUnits:null,markerWidth:null,mask:null,maskContentUnits:null,maskType:null,maskUnits:null,mathematical:null,max:null,media:null,mediaCharacterEncoding:null,mediaContentEncodings:null,mediaSize:E,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:E,overlineThickness:E,paintOrder:null,panose1:null,path:null,pathLength:E,patternContentUnits:null,patternTransform:null,patternUnits:null,phase:null,ping:$,pitch:null,playbackOrder:null,pointerEvents:null,points:null,pointsAtX:E,pointsAtY:E,pointsAtZ:E,preserveAlpha:null,preserveAspectRatio:null,primitiveUnits:null,propagate:null,property:re,r:null,radius:null,referrerPolicy:null,refX:null,refY:null,rel:re,rev:re,renderingIntent:null,repeatCount:null,repeatDur:null,requiredExtensions:re,requiredFeatures:re,requiredFonts:re,requiredFormats:re,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:E,specularExponent:E,spreadMethod:null,spacing:null,startOffset:null,stdDeviation:null,stemh:null,stemv:null,stitchTiles:null,stopColor:null,stopOpacity:null,strikethroughPosition:E,strikethroughThickness:E,string:null,stroke:null,strokeDashArray:re,strokeDashOffset:null,strokeLineCap:null,strokeLineJoin:null,strokeMiterLimit:E,strokeOpacity:E,strokeWidth:null,style:null,surfaceScale:E,syncBehavior:null,syncBehaviorDefault:null,syncMaster:null,syncTolerance:null,syncToleranceDefault:null,systemLanguage:re,tabIndex:E,tableValues:null,target:null,targetX:E,targetY:E,textAnchor:null,textDecoration:null,textRendering:null,textLength:null,timelineBegin:null,title:null,transformBehavior:null,type:null,typeOf:re,to:null,transform:null,transformOrigin:null,u1:null,u2:null,underlinePosition:E,underlineThickness:E,unicode:null,unicodeBidi:null,unicodeRange:null,unitsPerEm:E,values:null,vAlphabetic:E,vMathematical:E,vectorEffect:null,vHanging:E,vIdeographic:E,version:null,vertAdvY:E,vertOriginX:E,vertOriginY:E,viewBox:null,viewTarget:null,visibility:null,width:null,widths:null,wordSpacing:null,writingMode:null,x:null,x1:null,x2:null,xChannelSelector:null,xHeight:E,y:null,y1:null,y2:null,yChannelSelector:null,z:null,zoomAndPan:null},space:"svg",transform:rr}),lr=Re({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()}}),or=Re({attributes:{xmlnsxlink:"xmlns:xlink"},properties:{xmlnsXLink:null,xmlns:null},space:"xmlns",transform:ir}),ar=Re({properties:{xmlBase:null,xmlLang:null,xmlSpace:null},space:"xml",transform(e,t){return"xml:"+t.slice(3).toLowerCase()}}),Ci={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"},Ei=/[A-Z]/g,mt=/-[a-z]/g,Ii=/^data[-\w.:]+$/i;function Ai(e,t){const n=zn(t);let r=t,i=ne;if(n in e.normal)return e.property[e.normal[n]];if(n.length>4&&n.slice(0,4)==="data"&&Ii.test(t)){if(t.charAt(4)==="-"){const o=t.slice(5).replace(mt,Pi);r="data"+o.charAt(0).toUpperCase()+o.slice(1)}else{const o=t.slice(4);if(!mt.test(o)){let l=o.replace(Ei,Ti);l.charAt(0)!=="-"&&(l="-"+l),t="data"+l}}i=Hn}return new i(r,t)}function Ti(e){return"-"+e.toLowerCase()}function Pi(e){return e.charAt(1).toUpperCase()}const vi=nr([tr,wi,lr,or,ar],"html"),Un=nr([tr,Si,lr,or,ar],"svg");function zi(e){return e.join(" ").trim()}var ze={},mn,gt;function Di(){if(gt)return mn;gt=1;var e=/\/\*[^*]*\*+([^/*][^*]*\*+)*\//g,t=/\n/g,n=/^\s*/,r=/^(\*?[-#/*\\\w]+(\[[0-9a-z_-]+\])?)\s*/,i=/^:\s*/,o=/^((?:'(?:\\'|.)*?'|"(?:\\"|.)*?"|\([^)]*?\)|[^};])+)/,l=/^[;\s]*/,a=/^\s+|\s+$/g,u=`
1
+ import{g as er,j as Y}from"./vendor-react-DvXH3HTt.js";import{a as ct}from"./index-wcThbHRx.js";function mi(e,t){const n={};return(e[e.length-1]===""?[...e,""]:e).join((n.padRight?" ":"")+","+(n.padLeft===!1?"":" ")).trim()}const gi=/^[$_\p{ID_Start}][$_\u{200C}\u{200D}\p{ID_Continue}]*$/u,di=/^[$_\p{ID_Start}][-$_\u{200C}\u{200D}\p{ID_Continue}]*$/u,yi={};function ft(e,t){return(yi.jsx?di:gi).test(e)}const xi=/[ \t\n\f\r]/g;function ki(e){return typeof e=="object"?e.type==="text"?ht(e.value):!1:ht(e)}function ht(e){return e.replace(xi,"")===""}class Xe{constructor(t,n,r){this.normal=n,this.property=t,r&&(this.space=r)}}Xe.prototype.normal={};Xe.prototype.property={};Xe.prototype.space=void 0;function nr(e,t){const n={},r={};for(const i of e)Object.assign(n,i.property),Object.assign(r,i.normal);return new Xe(n,r,t)}function zn(e){return e.toLowerCase()}class ne{constructor(t,n){this.attribute=n,this.property=t}}ne.prototype.attribute="";ne.prototype.booleanish=!1;ne.prototype.boolean=!1;ne.prototype.commaOrSpaceSeparated=!1;ne.prototype.commaSeparated=!1;ne.prototype.defined=!1;ne.prototype.mustUseProperty=!1;ne.prototype.number=!1;ne.prototype.overloadedBoolean=!1;ne.prototype.property="";ne.prototype.spaceSeparated=!1;ne.prototype.space=void 0;let bi=0;const L=Ae(),X=Ae(),Dn=Ae(),E=Ae(),$=Ae(),Ee=Ae(),re=Ae();function Ae(){return 2**++bi}const Ln=Object.freeze(Object.defineProperty({__proto__:null,boolean:L,booleanish:X,commaOrSpaceSeparated:re,commaSeparated:Ee,number:E,overloadedBoolean:Dn,spaceSeparated:$},Symbol.toStringTag,{value:"Module"})),pn=Object.keys(Ln);class Hn extends ne{constructor(t,n,r,i){let o=-1;if(super(t,n),pt(this,"space",i),typeof r=="number")for(;++o<pn.length;){const l=pn[o];pt(this,pn[o],(r&Ln[l])===Ln[l])}}}Hn.prototype.defined=!0;function pt(e,t,n){n&&(e[t]=n)}function Re(e){const t={},n={};for(const[r,i]of Object.entries(e.properties)){const o=new Hn(r,e.transform(e.attributes||{},r),i,e.space);e.mustUseProperty&&e.mustUseProperty.includes(r)&&(o.mustUseProperty=!0),t[r]=o,n[zn(r)]=r,n[zn(o.attribute)]=r}return new Xe(t,n,e.space)}const tr=Re({properties:{ariaActiveDescendant:null,ariaAtomic:X,ariaAutoComplete:null,ariaBusy:X,ariaChecked:X,ariaColCount:E,ariaColIndex:E,ariaColSpan:E,ariaControls:$,ariaCurrent:null,ariaDescribedBy:$,ariaDetails:null,ariaDisabled:X,ariaDropEffect:$,ariaErrorMessage:null,ariaExpanded:X,ariaFlowTo:$,ariaGrabbed:X,ariaHasPopup:null,ariaHidden:X,ariaInvalid:null,ariaKeyShortcuts:null,ariaLabel:null,ariaLabelledBy:$,ariaLevel:E,ariaLive:null,ariaModal:X,ariaMultiLine:X,ariaMultiSelectable:X,ariaOrientation:null,ariaOwns:$,ariaPlaceholder:null,ariaPosInSet:E,ariaPressed:X,ariaReadOnly:X,ariaRelevant:null,ariaRequired:X,ariaRoleDescription:$,ariaRowCount:E,ariaRowIndex:E,ariaRowSpan:E,ariaSelected:X,ariaSetSize:E,ariaSort:null,ariaValueMax:E,ariaValueMin:E,ariaValueNow:E,ariaValueText:null,role:null},transform(e,t){return t==="role"?t:"aria-"+t.slice(4).toLowerCase()}});function rr(e,t){return t in e?e[t]:t}function ir(e,t){return rr(e,t.toLowerCase())}const wi=Re({attributes:{acceptcharset:"accept-charset",classname:"class",htmlfor:"for",httpequiv:"http-equiv"},mustUseProperty:["checked","multiple","muted","selected"],properties:{abbr:null,accept:Ee,acceptCharset:$,accessKey:$,action:null,allow:null,allowFullScreen:L,allowPaymentRequest:L,allowUserMedia:L,alpha:L,alt:null,as:null,async:L,autoCapitalize:null,autoComplete:$,autoFocus:L,autoPlay:L,blocking:$,capture:null,charSet:null,checked:L,cite:null,className:$,closedBy:null,colorSpace:null,cols:E,colSpan:E,command:null,commandFor:null,content:null,contentEditable:X,controls:L,controlsList:$,coords:E|Ee,crossOrigin:null,data:null,dateTime:null,decoding:null,default:L,defer:L,dir:null,dirName:null,disabled:L,download:Dn,draggable:X,encType:null,enterKeyHint:null,fetchPriority:null,form:null,formAction:null,formEncType:null,formMethod:null,formNoValidate:L,formTarget:null,headers:$,height:E,hidden:Dn,high:E,href:null,hrefLang:null,htmlFor:$,httpEquiv:$,id:null,imageSizes:null,imageSrcSet:null,inert:L,inputMode:null,integrity:null,is:null,isMap:L,itemId:null,itemProp:$,itemRef:$,itemScope:L,itemType:$,kind:null,label:null,lang:null,language:null,list:null,loading:null,loop:L,low:E,manifest:null,max:null,maxLength:E,media:null,method:null,min:null,minLength:E,multiple:L,muted:L,name:null,nonce:null,noModule:L,noValidate:L,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:L,optimum:E,pattern:null,ping:$,placeholder:null,playsInline:L,popover:null,popoverTarget:null,popoverTargetAction:null,poster:null,preload:null,readOnly:L,referrerPolicy:null,rel:$,required:L,reversed:L,rows:E,rowSpan:E,sandbox:$,scope:null,scoped:L,seamless:L,selected:L,shadowRootClonable:L,shadowRootCustomElementRegistry:L,shadowRootDelegatesFocus:L,shadowRootMode:null,shadowRootSerializable:L,shape:null,size:E,sizes:null,slot:null,span:E,spellCheck:X,src:null,srcDoc:null,srcLang:null,srcSet:null,start:E,step:null,style:null,tabIndex:E,target:null,title:null,translate:null,type:null,typeMustMatch:L,useMap:null,value:X,width:E,wrap:null,writingSuggestions:null,align:null,aLink:null,archive:$,axis:null,background:null,bgColor:null,border:E,borderColor:null,bottomMargin:E,cellPadding:null,cellSpacing:null,char:null,charOff:null,classId:null,clear:null,code:null,codeBase:null,codeType:null,color:null,compact:L,declare:L,event:null,face:null,frame:null,frameBorder:null,hSpace:E,leftMargin:E,link:null,longDesc:null,lowSrc:null,marginHeight:E,marginWidth:E,noResize:L,noHref:L,noShade:L,noWrap:L,object:null,profile:null,prompt:null,rev:null,rightMargin:E,rules:null,scheme:null,scrolling:X,standby:null,summary:null,text:null,topMargin:E,valueType:null,version:null,vAlign:null,vLink:null,vSpace:E,allowTransparency:null,autoCorrect:null,autoSave:null,credentialless:L,disablePictureInPicture:L,disableRemotePlayback:L,exportParts:Ee,part:$,prefix:null,property:null,results:E,security:null,unselectable:null},space:"html",transform:ir}),Si=Re({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",maskType:"mask-type",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:re,accentHeight:E,accumulate:null,additive:null,alignmentBaseline:null,alphabetic:E,amplitude:E,arabicForm:null,ascent:E,attributeName:null,attributeType:null,azimuth:E,bandwidth:null,baselineShift:null,baseFrequency:null,baseProfile:null,bbox:null,begin:null,bias:E,by:null,calcMode:null,capHeight:E,className:$,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:E,diffuseConstant:E,direction:null,display:null,dur:null,divisor:E,dominantBaseline:null,download:L,dx:null,dy:null,edgeMode:null,editable:null,elevation:E,enableBackground:null,end:null,event:null,exponent:E,externalResourcesRequired:null,fill:null,fillOpacity:E,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:Ee,g2:Ee,glyphName:Ee,glyphOrientationHorizontal:null,glyphOrientationVertical:null,glyphRef:null,gradientTransform:null,gradientUnits:null,handler:null,hanging:E,hatchContentUnits:null,hatchUnits:null,height:null,href:null,hrefLang:null,horizAdvX:E,horizOriginX:E,horizOriginY:E,id:null,ideographic:E,imageRendering:null,initialVisibility:null,in:null,in2:null,intercept:E,k:E,k1:E,k2:E,k3:E,k4:E,kernelMatrix:re,kernelUnitLength:null,keyPoints:null,keySplines:null,keyTimes:null,kerning:null,lang:null,lengthAdjust:null,letterSpacing:null,lightingColor:null,limitingConeAngle:E,local:null,markerEnd:null,markerMid:null,markerStart:null,markerHeight:null,markerUnits:null,markerWidth:null,mask:null,maskContentUnits:null,maskType:null,maskUnits:null,mathematical:null,max:null,media:null,mediaCharacterEncoding:null,mediaContentEncodings:null,mediaSize:E,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:E,overlineThickness:E,paintOrder:null,panose1:null,path:null,pathLength:E,patternContentUnits:null,patternTransform:null,patternUnits:null,phase:null,ping:$,pitch:null,playbackOrder:null,pointerEvents:null,points:null,pointsAtX:E,pointsAtY:E,pointsAtZ:E,preserveAlpha:null,preserveAspectRatio:null,primitiveUnits:null,propagate:null,property:re,r:null,radius:null,referrerPolicy:null,refX:null,refY:null,rel:re,rev:re,renderingIntent:null,repeatCount:null,repeatDur:null,requiredExtensions:re,requiredFeatures:re,requiredFonts:re,requiredFormats:re,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:E,specularExponent:E,spreadMethod:null,spacing:null,startOffset:null,stdDeviation:null,stemh:null,stemv:null,stitchTiles:null,stopColor:null,stopOpacity:null,strikethroughPosition:E,strikethroughThickness:E,string:null,stroke:null,strokeDashArray:re,strokeDashOffset:null,strokeLineCap:null,strokeLineJoin:null,strokeMiterLimit:E,strokeOpacity:E,strokeWidth:null,style:null,surfaceScale:E,syncBehavior:null,syncBehaviorDefault:null,syncMaster:null,syncTolerance:null,syncToleranceDefault:null,systemLanguage:re,tabIndex:E,tableValues:null,target:null,targetX:E,targetY:E,textAnchor:null,textDecoration:null,textRendering:null,textLength:null,timelineBegin:null,title:null,transformBehavior:null,type:null,typeOf:re,to:null,transform:null,transformOrigin:null,u1:null,u2:null,underlinePosition:E,underlineThickness:E,unicode:null,unicodeBidi:null,unicodeRange:null,unitsPerEm:E,values:null,vAlphabetic:E,vMathematical:E,vectorEffect:null,vHanging:E,vIdeographic:E,version:null,vertAdvY:E,vertOriginX:E,vertOriginY:E,viewBox:null,viewTarget:null,visibility:null,width:null,widths:null,wordSpacing:null,writingMode:null,x:null,x1:null,x2:null,xChannelSelector:null,xHeight:E,y:null,y1:null,y2:null,yChannelSelector:null,z:null,zoomAndPan:null},space:"svg",transform:rr}),lr=Re({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()}}),or=Re({attributes:{xmlnsxlink:"xmlns:xlink"},properties:{xmlnsXLink:null,xmlns:null},space:"xmlns",transform:ir}),ar=Re({properties:{xmlBase:null,xmlLang:null,xmlSpace:null},space:"xml",transform(e,t){return"xml:"+t.slice(3).toLowerCase()}}),Ci={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"},Ei=/[A-Z]/g,mt=/-[a-z]/g,Ii=/^data[-\w.:]+$/i;function Ai(e,t){const n=zn(t);let r=t,i=ne;if(n in e.normal)return e.property[e.normal[n]];if(n.length>4&&n.slice(0,4)==="data"&&Ii.test(t)){if(t.charAt(4)==="-"){const o=t.slice(5).replace(mt,Pi);r="data"+o.charAt(0).toUpperCase()+o.slice(1)}else{const o=t.slice(4);if(!mt.test(o)){let l=o.replace(Ei,Ti);l.charAt(0)!=="-"&&(l="-"+l),t="data"+l}}i=Hn}return new i(r,t)}function Ti(e){return"-"+e.toLowerCase()}function Pi(e){return e.charAt(1).toUpperCase()}const vi=nr([tr,wi,lr,or,ar],"html"),Un=nr([tr,Si,lr,or,ar],"svg");function zi(e){return e.join(" ").trim()}var ze={},mn,gt;function Di(){if(gt)return mn;gt=1;var e=/\/\*[^*]*\*+([^/*][^*]*\*+)*\//g,t=/\n/g,n=/^\s*/,r=/^(\*?[-#/*\\\w]+(\[[0-9a-z_-]+\])?)\s*/,i=/^:\s*/,o=/^((?:'(?:\\'|.)*?'|"(?:\\"|.)*?"|\([^)]*?\)|[^};])+)/,l=/^[;\s]*/,a=/^\s+|\s+$/g,u=`
2
2
  `,s="/",f="*",c="",p="comment",h="declaration";function d(S,y){if(typeof S!="string")throw new TypeError("First argument must be a string");if(!S)return[];y=y||{};var I=1,C=1;function R(D){var T=D.match(t);T&&(I+=T.length);var q=D.lastIndexOf(u);C=~q?D.length-q:C+D.length}function _(){var D={line:I,column:C};return function(T){return T.position=new b(D),j(),T}}function b(D){this.start=D,this.end={line:I,column:C},this.source=y.source}b.prototype.content=S;function M(D){var T=new Error(y.source+":"+I+":"+C+": "+D);if(T.reason=D,T.filename=y.source,T.line=I,T.column=C,T.source=S,!y.silent)throw T}function H(D){var T=D.exec(S);if(T){var q=T[0];return R(q),S=S.slice(q.length),T}}function j(){H(n)}function x(D){var T;for(D=D||[];T=P();)T!==!1&&D.push(T);return D}function P(){var D=_();if(!(s!=S.charAt(0)||f!=S.charAt(1))){for(var T=2;c!=S.charAt(T)&&(f!=S.charAt(T)||s!=S.charAt(T+1));)++T;if(T+=2,c===S.charAt(T-1))return M("End of comment missing");var q=S.slice(2,T-2);return C+=2,R(q),S=S.slice(T),C+=2,D({type:p,comment:q})}}function v(){var D=_(),T=H(r);if(T){if(P(),!H(i))return M("property missing ':'");var q=H(o),Q=D({type:h,property:w(T[0].replace(e,c)),value:q?w(q[0].replace(e,c)):c});return H(l),Q}}function U(){var D=[];x(D);for(var T;T=v();)T!==!1&&(D.push(T),x(D));return D}return j(),U()}function w(S){return S?S.replace(a,c):c}return mn=d,mn}var dt;function Li(){if(dt)return ze;dt=1;var e=ze&&ze.__importDefault||function(r){return r&&r.__esModule?r:{default:r}};Object.defineProperty(ze,"__esModule",{value:!0}),ze.default=n;const t=e(Di());function n(r,i){let o=null;if(!r||typeof r!="string")return o;const l=(0,t.default)(r),a=typeof i=="function";return l.forEach(u=>{if(u.type!=="declaration")return;const{property:s,value:f}=u;a?i(s,f,u):f&&(o=o||{},o[s]=f)}),o}return ze}var Be={},yt;function Fi(){if(yt)return Be;yt=1,Object.defineProperty(Be,"__esModule",{value:!0}),Be.camelCase=void 0;var e=/^--[a-zA-Z0-9_-]+$/,t=/-([a-z])/g,n=/^[^-]+$/,r=/^-(webkit|moz|ms|o|khtml)-/,i=/^-(ms)-/,o=function(s){return!s||n.test(s)||e.test(s)},l=function(s,f){return f.toUpperCase()},a=function(s,f){return"".concat(f,"-")},u=function(s,f){return f===void 0&&(f={}),o(s)?s:(s=s.toLowerCase(),f.reactCompat?s=s.replace(i,a):s=s.replace(r,a),s.replace(t,l))};return Be.camelCase=u,Be}var je,xt;function Ri(){if(xt)return je;xt=1;var e=je&&je.__importDefault||function(i){return i&&i.__esModule?i:{default:i}},t=e(Li()),n=Fi();function r(i,o){var l={};return!i||typeof i!="string"||(0,t.default)(i,function(a,u){a&&u&&(l[(0,n.camelCase)(a,o)]=u)}),l}return r.default=r,je=r,je}var _i=Ri();const Oi=er(_i),ur=sr("end"),qn=sr("start");function sr(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 Mi(e){const t=qn(e),n=ur(e);if(t&&n)return{start:t,end:n}}function qe(e){return!e||typeof e!="object"?"":"position"in e||"type"in e?kt(e.position):"start"in e||"end"in e?kt(e):"line"in e||"column"in e?Fn(e):""}function Fn(e){return bt(e&&e.line)+":"+bt(e&&e.column)}function kt(e){return Fn(e&&e.start)+"-"+Fn(e&&e.end)}function bt(e){return e&&typeof e=="number"?e:1}class J extends Error{constructor(t,n,r){super(),typeof n=="string"&&(r=n,n=void 0);let i="",o={},l=!1;if(n&&("line"in n&&"column"in n?o={place:n}:"start"in n&&"end"in n?o={place:n}:"type"in n?o={ancestors:[n],place:n.position}:o={...n}),typeof t=="string"?i=t:!o.cause&&t&&(l=!0,i=t.message,o.cause=t),!o.ruleId&&!o.source&&typeof r=="string"){const u=r.indexOf(":");u===-1?o.ruleId=r:(o.source=r.slice(0,u),o.ruleId=r.slice(u+1))}if(!o.place&&o.ancestors&&o.ancestors){const u=o.ancestors[o.ancestors.length-1];u&&(o.place=u.position)}const a=o.place&&"start"in o.place?o.place.start:o.place;this.ancestors=o.ancestors||void 0,this.cause=o.cause||void 0,this.column=a?a.column:void 0,this.fatal=void 0,this.file="",this.message=i,this.line=a?a.line:void 0,this.name=qe(o.place)||"1:1",this.place=o.place||void 0,this.reason=this.message,this.ruleId=o.ruleId||void 0,this.source=o.source||void 0,this.stack=l&&o.cause&&typeof o.cause.stack=="string"?o.cause.stack:"",this.actual=void 0,this.expected=void 0,this.note=void 0,this.url=void 0}}J.prototype.file="";J.prototype.name="";J.prototype.reason="";J.prototype.message="";J.prototype.stack="";J.prototype.column=void 0;J.prototype.line=void 0;J.prototype.ancestors=void 0;J.prototype.cause=void 0;J.prototype.fatal=void 0;J.prototype.place=void 0;J.prototype.ruleId=void 0;J.prototype.source=void 0;const Vn={}.hasOwnProperty,Ni=new Map,Bi=/[A-Z]/g,ji=new Set(["table","tbody","thead","tfoot","tr"]),Hi=new Set(["td","th"]),cr="https://github.com/syntax-tree/hast-util-to-jsx-runtime";function Ui(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=Gi(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=Qi(n,t.jsx,t.jsxs)}const i={Fragment:t.Fragment,ancestors:[],components:t.components||{},create:r,elementAttributeNameCase:t.elementAttributeNameCase||"react",evaluater:t.createEvaluater?t.createEvaluater():void 0,filePath:n,ignoreInvalidStyle:t.ignoreInvalidStyle||!1,passKeys:t.passKeys!==!1,passNode:t.passNode||!1,schema:t.space==="svg"?Un:vi,stylePropertyNameCase:t.stylePropertyNameCase||"dom",tableCellAlignToStyle:t.tableCellAlignToStyle!==!1},o=fr(i,e,void 0);return o&&typeof o!="string"?o:i.create(e,i.Fragment,{children:o||void 0},void 0)}function fr(e,t,n){if(t.type==="element")return qi(e,t,n);if(t.type==="mdxFlowExpression"||t.type==="mdxTextExpression")return Vi(e,t);if(t.type==="mdxJsxFlowElement"||t.type==="mdxJsxTextElement")return Wi(e,t,n);if(t.type==="mdxjsEsm")return $i(e,t);if(t.type==="root")return Yi(e,t,n);if(t.type==="text")return Xi(e,t)}function qi(e,t,n){const r=e.schema;let i=r;t.tagName.toLowerCase()==="svg"&&r.space==="html"&&(i=Un,e.schema=i),e.ancestors.push(t);const o=pr(e,t.tagName,!1),l=Ki(e,t);let a=Wn(e,t);return ji.has(t.tagName)&&(a=a.filter(function(u){return typeof u=="string"?!ki(u):!0})),hr(e,l,o,t),$n(l,a),e.ancestors.pop(),e.schema=r,e.create(t,o,l,n)}function Vi(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)}We(e,t.position)}function $i(e,t){if(t.data&&t.data.estree&&e.evaluater)return e.evaluater.evaluateProgram(t.data.estree);We(e,t.position)}function Wi(e,t,n){const r=e.schema;let i=r;t.name==="svg"&&r.space==="html"&&(i=Un,e.schema=i),e.ancestors.push(t);const o=t.name===null?e.Fragment:pr(e,t.name,!0),l=Ji(e,t),a=Wn(e,t);return hr(e,l,o,t),$n(l,a),e.ancestors.pop(),e.schema=r,e.create(t,o,l,n)}function Yi(e,t,n){const r={};return $n(r,Wn(e,t)),e.create(t,e.Fragment,r,n)}function Xi(e,t){return t.value}function hr(e,t,n,r){typeof n!="string"&&n!==e.Fragment&&e.passNode&&(t.node=r)}function $n(e,t){if(t.length>0){const n=t.length>1?t:t[0];n&&(e.children=n)}}function Qi(e,t,n){return r;function r(i,o,l,a){const s=Array.isArray(l.children)?n:t;return a?s(o,l,a):s(o,l)}}function Gi(e,t){return n;function n(r,i,o,l){const a=Array.isArray(o.children),u=qn(r);return t(i,o,l,a,{columnNumber:u?u.column-1:void 0,fileName:e,lineNumber:u?u.line:void 0},void 0)}}function Ki(e,t){const n={};let r,i;for(i in t.properties)if(i!=="children"&&Vn.call(t.properties,i)){const o=Zi(e,i,t.properties[i]);if(o){const[l,a]=o;e.tableCellAlignToStyle&&l==="align"&&typeof a=="string"&&Hi.has(t.tagName)?r=a:n[l]=a}}if(r){const o=n.style||(n.style={});o[e.stylePropertyNameCase==="css"?"text-align":"textAlign"]=r}return n}function Ji(e,t){const n={};for(const r of t.attributes)if(r.type==="mdxJsxExpressionAttribute")if(r.data&&r.data.estree&&e.evaluater){const o=r.data.estree.body[0];o.type;const l=o.expression;l.type;const a=l.properties[0];a.type,Object.assign(n,e.evaluater.evaluateExpression(a.argument))}else We(e,t.position);else{const i=r.name;let o;if(r.value&&typeof r.value=="object")if(r.value.data&&r.value.data.estree&&e.evaluater){const a=r.value.data.estree.body[0];a.type,o=e.evaluater.evaluateExpression(a.expression)}else We(e,t.position);else o=r.value===null?!0:r.value;n[i]=o}return n}function Wn(e,t){const n=[];let r=-1;const i=e.passKeys?new Map:Ni;for(;++r<t.children.length;){const o=t.children[r];let l;if(e.passKeys){const u=o.type==="element"?o.tagName:o.type==="mdxJsxFlowElement"||o.type==="mdxJsxTextElement"?o.name:void 0;if(u){const s=i.get(u)||0;l=u+"-"+s,i.set(u,s+1)}}const a=fr(e,o,l);a!==void 0&&n.push(a)}return n}function Zi(e,t,n){const r=Ai(e.schema,t);if(!(n==null||typeof n=="number"&&Number.isNaN(n))){if(Array.isArray(n)&&(n=r.commaSeparated?mi(n):zi(n)),r.property==="style"){let i=typeof n=="object"?n:el(e,String(n));return e.stylePropertyNameCase==="css"&&(i=nl(i)),["style",i]}return[e.elementAttributeNameCase==="react"&&r.space?Ci[r.property]||r.property:r.attribute,n]}}function el(e,t){try{return Oi(t,{reactCompat:!0})}catch(n){if(e.ignoreInvalidStyle)return{};const r=n,i=new J("Cannot parse `style` attribute",{ancestors:e.ancestors,cause:r,ruleId:"style",source:"hast-util-to-jsx-runtime"});throw i.file=e.filePath||void 0,i.url=cr+"#cannot-parse-style-attribute",i}}function pr(e,t,n){let r;if(!n)r={type:"Literal",value:t};else if(t.includes(".")){const i=t.split(".");let o=-1,l;for(;++o<i.length;){const a=ft(i[o])?{type:"Identifier",name:i[o]}:{type:"Literal",value:i[o]};l=l?{type:"MemberExpression",object:l,property:a,computed:!!(o&&a.type==="Literal"),optional:!1}:a}r=l}else r=ft(t)&&!/^[a-z]/.test(t)?{type:"Identifier",name:t}:{type:"Literal",value:t};if(r.type==="Literal"){const i=r.value;return Vn.call(e.components,i)?e.components[i]:i}if(e.evaluater)return e.evaluater.evaluateExpression(r);We(e)}function We(e,t){const n=new J("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=cr+"#cannot-handle-mdx-estrees-without-createevaluater",n}function nl(e){const t={};let n;for(n in e)Vn.call(e,n)&&(t[tl(n)]=e[n]);return t}function tl(e){let t=e.replace(Bi,rl);return t.slice(0,3)==="ms-"&&(t="-"+t),t}function rl(e){return"-"+e.toLowerCase()}const gn={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"]},il={};function Yn(e,t){const n=il,r=typeof n.includeImageAlt=="boolean"?n.includeImageAlt:!0,i=typeof n.includeHtml=="boolean"?n.includeHtml:!0;return mr(e,r,i)}function mr(e,t,n){if(ll(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 wt(e.children,t,n)}return Array.isArray(e)?wt(e,t,n):""}function wt(e,t,n){const r=[];let i=-1;for(;++i<e.length;)r[i]=mr(e[i],t,n);return r.join("")}function ll(e){return!!(e&&typeof e=="object")}const St=document.createElement("i");function Xn(e){const t="&"+e+";";St.innerHTML=t;const n=St.textContent;return n.charCodeAt(n.length-1)===59&&e!=="semi"||n===t?!1:n}function ie(e,t,n,r){const i=e.length;let o=0,l;if(t<0?t=-t>i?0:i+t:t=t>i?i: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);o<r.length;)l=r.slice(o,o+1e4),l.unshift(t,0),e.splice(...l),o+=1e4,t+=1e4}function le(e,t){return e.length>0?(ie(e,e.length,0,t),e):t}const Ct={}.hasOwnProperty;function gr(e){const t={};let n=-1;for(;++n<e.length;)ol(t,e[n]);return t}function ol(e,t){let n;for(n in t){const i=(Ct.call(e,n)?e[n]:void 0)||(e[n]={}),o=t[n];let l;if(o)for(l in o){Ct.call(i,l)||(i[l]=[]);const a=o[l];al(i[l],Array.isArray(a)?a:a?[a]:[])}}}function al(e,t){let n=-1;const r=[];for(;++n<t.length;)(t[n].add==="after"?e:r).push(t[n]);ie(e,0,0,r)}function dr(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 ce(e){return e.replace(/[\t\n\r ]+/g," ").replace(/^ | $/g,"").toLowerCase().toUpperCase()}const Z=be(/[A-Za-z]/),K=be(/[\dA-Za-z]/),ul=be(/[#-'*+\--9=?A-Z^-~]/);function rn(e){return e!==null&&(e<32||e===127)}const Rn=be(/\d/),sl=be(/[\dA-Fa-f]/),cl=be(/[!-/:-@[-`{-~]/);function z(e){return e!==null&&e<-2}function W(e){return e!==null&&(e<0||e===32)}function O(e){return e===-2||e===-1||e===32}const un=be(new RegExp("\\p{P}|\\p{S}","u")),Ie=be(/\s/);function be(e){return t;function t(n){return n!==null&&n>-1&&e.test(String.fromCharCode(n))}}function _e(e){const t=[];let n=-1,r=0,i=0;for(;++n<e.length;){const o=e.charCodeAt(n);let l="";if(o===37&&K(e.charCodeAt(n+1))&&K(e.charCodeAt(n+2)))i=2;else if(o<128)/[!#$&-;=?-Z_a-z~]/.test(String.fromCharCode(o))||(l=String.fromCharCode(o));else if(o>55295&&o<57344){const a=e.charCodeAt(n+1);o<56320&&a>56319&&a<57344?(l=String.fromCharCode(o,a),i=1):l="�"}else l=String.fromCharCode(o);l&&(t.push(e.slice(r,n),encodeURIComponent(l)),r=n+i+1,l=""),i&&(n+=i,i=0)}return t.join("")+e.slice(r)}function B(e,t,n,r){const i=r?r-1:Number.POSITIVE_INFINITY;let o=0;return l;function l(u){return O(u)?(e.enter(n),a(u)):t(u)}function a(u){return O(u)&&o++<i?(e.consume(u),a):(e.exit(n),t(u))}}const fl={tokenize:hl};function hl(e){const t=e.attempt(this.parser.constructs.contentInitial,r,i);let n;return t;function r(a){if(a===null){e.consume(a);return}return e.enter("lineEnding"),e.consume(a),e.exit("lineEnding"),B(e,t,"linePrefix")}function i(a){return e.enter("paragraph"),o(a)}function o(a){const u=e.enter("chunkText",{contentType:"text",previous:n});return n&&(n.next=u),n=u,l(a)}function l(a){if(a===null){e.exit("chunkText"),e.exit("paragraph"),e.consume(a);return}return z(a)?(e.consume(a),e.exit("chunkText"),o):(e.consume(a),l)}}const pl={tokenize:ml},Et={tokenize:gl};function ml(e){const t=this,n=[];let r=0,i,o,l;return a;function a(C){if(r<n.length){const R=n[r];return t.containerState=R[1],e.attempt(R[0].continuation,u,s)(C)}return s(C)}function u(C){if(r++,t.containerState._closeFlow){t.containerState._closeFlow=void 0,i&&I();const R=t.events.length;let _=R,b;for(;_--;)if(t.events[_][0]==="exit"&&t.events[_][1].type==="chunkFlow"){b=t.events[_][1].end;break}y(r);let M=R;for(;M<t.events.length;)t.events[M][1].end={...b},M++;return ie(t.events,_+1,0,t.events.slice(R)),t.events.length=M,s(C)}return a(C)}function s(C){if(r===n.length){if(!i)return p(C);if(i.currentConstruct&&i.currentConstruct.concrete)return d(C);t.interrupt=!!(i.currentConstruct&&!i._gfmTableDynamicInterruptHack)}return t.containerState={},e.check(Et,f,c)(C)}function f(C){return i&&I(),y(r),p(C)}function c(C){return t.parser.lazy[t.now().line]=r!==n.length,l=t.now().offset,d(C)}function p(C){return t.containerState={},e.attempt(Et,h,d)(C)}function h(C){return r++,n.push([t.currentConstruct,t.containerState]),p(C)}function d(C){if(C===null){i&&I(),y(0),e.consume(C);return}return i=i||t.parser.flow(t.now()),e.enter("chunkFlow",{_tokenizer:i,contentType:"flow",previous:o}),w(C)}function w(C){if(C===null){S(e.exit("chunkFlow"),!0),y(0),e.consume(C);return}return z(C)?(e.consume(C),S(e.exit("chunkFlow")),r=0,t.interrupt=void 0,a):(e.consume(C),w)}function S(C,R){const _=t.sliceStream(C);if(R&&_.push(null),C.previous=o,o&&(o.next=C),o=C,i.defineSkip(C.start),i.write(_),t.parser.lazy[C.start.line]){let b=i.events.length;for(;b--;)if(i.events[b][1].start.offset<l&&(!i.events[b][1].end||i.events[b][1].end.offset>l))return;const M=t.events.length;let H=M,j,x;for(;H--;)if(t.events[H][0]==="exit"&&t.events[H][1].type==="chunkFlow"){if(j){x=t.events[H][1].end;break}j=!0}for(y(r),b=M;b<t.events.length;)t.events[b][1].end={...x},b++;ie(t.events,H+1,0,t.events.slice(M)),t.events.length=b}}function y(C){let R=n.length;for(;R-- >C;){const _=n[R];t.containerState=_[1],_[0].exit.call(t,e)}n.length=C}function I(){i.write([null]),o=void 0,i=void 0,t.containerState._closeFlow=void 0}}function gl(e,t,n){return B(e,e.attempt(this.parser.constructs.document,t,n),"linePrefix",this.parser.constructs.disable.null.includes("codeIndented")?void 0:4)}function Fe(e){if(e===null||W(e)||Ie(e))return 1;if(un(e))return 2}function sn(e,t,n){const r=[];let i=-1;for(;++i<e.length;){const o=e[i].resolveAll;o&&!r.includes(o)&&(t=o(t,n),r.push(o))}return t}const _n={name:"attention",resolveAll:dl,tokenize:yl};function dl(e,t){let n=-1,r,i,o,l,a,u,s,f;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;u=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 c={...e[r][1].end},p={...e[n][1].start};It(c,-u),It(p,u),l={type:u>1?"strongSequence":"emphasisSequence",start:c,end:{...e[r][1].end}},a={type:u>1?"strongSequence":"emphasisSequence",start:{...e[n][1].start},end:p},o={type:u>1?"strongText":"emphasisText",start:{...e[r][1].end},end:{...e[n][1].start}},i={type:u>1?"strong":"emphasis",start:{...l.start},end:{...a.end}},e[r][1].end={...l.start},e[n][1].start={...a.end},s=[],e[r][1].end.offset-e[r][1].start.offset&&(s=le(s,[["enter",e[r][1],t],["exit",e[r][1],t]])),s=le(s,[["enter",i,t],["enter",l,t],["exit",l,t],["enter",o,t]]),s=le(s,sn(t.parser.constructs.insideSpan.null,e.slice(r+1,n),t)),s=le(s,[["exit",o,t],["enter",a,t],["exit",a,t],["exit",i,t]]),e[n][1].end.offset-e[n][1].start.offset?(f=2,s=le(s,[["enter",e[n][1],t],["exit",e[n][1],t]])):f=0,ie(e,r-1,n-r+3,s),n=r+s.length-f-2;break}}for(n=-1;++n<e.length;)e[n][1].type==="attentionSequence"&&(e[n][1].type="data");return e}function yl(e,t){const n=this.parser.constructs.attentionMarkers.null,r=this.previous,i=Fe(r);let o;return l;function l(u){return o=u,e.enter("attentionSequence"),a(u)}function a(u){if(u===o)return e.consume(u),a;const s=e.exit("attentionSequence"),f=Fe(u),c=!f||f===2&&i||n.includes(u),p=!i||i===2&&f||n.includes(r);return s._open=!!(o===42?c:c&&(i||!p)),s._close=!!(o===42?p:p&&(f||!c)),t(u)}}function It(e,t){e.column+=t,e.offset+=t,e._bufferIndex+=t}const xl={name:"autolink",tokenize:kl};function kl(e,t,n){let r=0;return i;function i(h){return e.enter("autolink"),e.enter("autolinkMarker"),e.consume(h),e.exit("autolinkMarker"),e.enter("autolinkProtocol"),o}function o(h){return Z(h)?(e.consume(h),l):h===64?n(h):s(h)}function l(h){return h===43||h===45||h===46||K(h)?(r=1,a(h)):s(h)}function a(h){return h===58?(e.consume(h),r=0,u):(h===43||h===45||h===46||K(h))&&r++<32?(e.consume(h),a):(r=0,s(h))}function u(h){return h===62?(e.exit("autolinkProtocol"),e.enter("autolinkMarker"),e.consume(h),e.exit("autolinkMarker"),e.exit("autolink"),t):h===null||h===32||h===60||rn(h)?n(h):(e.consume(h),u)}function s(h){return h===64?(e.consume(h),f):ul(h)?(e.consume(h),s):n(h)}function f(h){return K(h)?c(h):n(h)}function c(h){return h===46?(e.consume(h),r=0,f):h===62?(e.exit("autolinkProtocol").type="autolinkEmail",e.enter("autolinkMarker"),e.consume(h),e.exit("autolinkMarker"),e.exit("autolink"),t):p(h)}function p(h){if((h===45||K(h))&&r++<63){const d=h===45?p:c;return e.consume(h),d}return n(h)}}const Qe={partial:!0,tokenize:bl};function bl(e,t,n){return r;function r(o){return O(o)?B(e,i,"linePrefix")(o):i(o)}function i(o){return o===null||z(o)?t(o):n(o)}}const yr={continuation:{tokenize:Sl},exit:Cl,name:"blockQuote",tokenize:wl};function wl(e,t,n){const r=this;return i;function i(l){if(l===62){const a=r.containerState;return a.open||(e.enter("blockQuote",{_container:!0}),a.open=!0),e.enter("blockQuotePrefix"),e.enter("blockQuoteMarker"),e.consume(l),e.exit("blockQuoteMarker"),o}return n(l)}function o(l){return O(l)?(e.enter("blockQuotePrefixWhitespace"),e.consume(l),e.exit("blockQuotePrefixWhitespace"),e.exit("blockQuotePrefix"),t):(e.exit("blockQuotePrefix"),t(l))}}function Sl(e,t,n){const r=this;return i;function i(l){return O(l)?B(e,o,"linePrefix",r.parser.constructs.disable.null.includes("codeIndented")?void 0:4)(l):o(l)}function o(l){return e.attempt(yr,t,n)(l)}}function Cl(e){e.exit("blockQuote")}const xr={name:"characterEscape",tokenize:El};function El(e,t,n){return r;function r(o){return e.enter("characterEscape"),e.enter("escapeMarker"),e.consume(o),e.exit("escapeMarker"),i}function i(o){return cl(o)?(e.enter("characterEscapeValue"),e.consume(o),e.exit("characterEscapeValue"),e.exit("characterEscape"),t):n(o)}}const kr={name:"characterReference",tokenize:Il};function Il(e,t,n){const r=this;let i=0,o,l;return a;function a(c){return e.enter("characterReference"),e.enter("characterReferenceMarker"),e.consume(c),e.exit("characterReferenceMarker"),u}function u(c){return c===35?(e.enter("characterReferenceMarkerNumeric"),e.consume(c),e.exit("characterReferenceMarkerNumeric"),s):(e.enter("characterReferenceValue"),o=31,l=K,f(c))}function s(c){return c===88||c===120?(e.enter("characterReferenceMarkerHexadecimal"),e.consume(c),e.exit("characterReferenceMarkerHexadecimal"),e.enter("characterReferenceValue"),o=6,l=sl,f):(e.enter("characterReferenceValue"),o=7,l=Rn,f(c))}function f(c){if(c===59&&i){const p=e.exit("characterReferenceValue");return l===K&&!Xn(r.sliceSerialize(p))?n(c):(e.enter("characterReferenceMarker"),e.consume(c),e.exit("characterReferenceMarker"),e.exit("characterReference"),t)}return l(c)&&i++<o?(e.consume(c),f):n(c)}}const At={partial:!0,tokenize:Tl},Tt={concrete:!0,name:"codeFenced",tokenize:Al};function Al(e,t,n){const r=this,i={partial:!0,tokenize:_};let o=0,l=0,a;return u;function u(b){return s(b)}function s(b){const M=r.events[r.events.length-1];return o=M&&M[1].type==="linePrefix"?M[2].sliceSerialize(M[1],!0).length:0,a=b,e.enter("codeFenced"),e.enter("codeFencedFence"),e.enter("codeFencedFenceSequence"),f(b)}function f(b){return b===a?(l++,e.consume(b),f):l<3?n(b):(e.exit("codeFencedFenceSequence"),O(b)?B(e,c,"whitespace")(b):c(b))}function c(b){return b===null||z(b)?(e.exit("codeFencedFence"),r.interrupt?t(b):e.check(At,w,R)(b)):(e.enter("codeFencedFenceInfo"),e.enter("chunkString",{contentType:"string"}),p(b))}function p(b){return b===null||z(b)?(e.exit("chunkString"),e.exit("codeFencedFenceInfo"),c(b)):O(b)?(e.exit("chunkString"),e.exit("codeFencedFenceInfo"),B(e,h,"whitespace")(b)):b===96&&b===a?n(b):(e.consume(b),p)}function h(b){return b===null||z(b)?c(b):(e.enter("codeFencedFenceMeta"),e.enter("chunkString",{contentType:"string"}),d(b))}function d(b){return b===null||z(b)?(e.exit("chunkString"),e.exit("codeFencedFenceMeta"),c(b)):b===96&&b===a?n(b):(e.consume(b),d)}function w(b){return e.attempt(i,R,S)(b)}function S(b){return e.enter("lineEnding"),e.consume(b),e.exit("lineEnding"),y}function y(b){return o>0&&O(b)?B(e,I,"linePrefix",o+1)(b):I(b)}function I(b){return b===null||z(b)?e.check(At,w,R)(b):(e.enter("codeFlowValue"),C(b))}function C(b){return b===null||z(b)?(e.exit("codeFlowValue"),I(b)):(e.consume(b),C)}function R(b){return e.exit("codeFenced"),t(b)}function _(b,M,H){let j=0;return x;function x(T){return b.enter("lineEnding"),b.consume(T),b.exit("lineEnding"),P}function P(T){return b.enter("codeFencedFence"),O(T)?B(b,v,"linePrefix",r.parser.constructs.disable.null.includes("codeIndented")?void 0:4)(T):v(T)}function v(T){return T===a?(b.enter("codeFencedFenceSequence"),U(T)):H(T)}function U(T){return T===a?(j++,b.consume(T),U):j>=l?(b.exit("codeFencedFenceSequence"),O(T)?B(b,D,"whitespace")(T):D(T)):H(T)}function D(T){return T===null||z(T)?(b.exit("codeFencedFence"),M(T)):H(T)}}}function Tl(e,t,n){const r=this;return i;function i(l){return l===null?n(l):(e.enter("lineEnding"),e.consume(l),e.exit("lineEnding"),o)}function o(l){return r.parser.lazy[r.now().line]?n(l):t(l)}}const dn={name:"codeIndented",tokenize:vl},Pl={partial:!0,tokenize:zl};function vl(e,t,n){const r=this;return i;function i(s){return e.enter("codeIndented"),B(e,o,"linePrefix",5)(s)}function o(s){const f=r.events[r.events.length-1];return f&&f[1].type==="linePrefix"&&f[2].sliceSerialize(f[1],!0).length>=4?l(s):n(s)}function l(s){return s===null?u(s):z(s)?e.attempt(Pl,l,u)(s):(e.enter("codeFlowValue"),a(s))}function a(s){return s===null||z(s)?(e.exit("codeFlowValue"),l(s)):(e.consume(s),a)}function u(s){return e.exit("codeIndented"),t(s)}}function zl(e,t,n){const r=this;return i;function i(l){return r.parser.lazy[r.now().line]?n(l):z(l)?(e.enter("lineEnding"),e.consume(l),e.exit("lineEnding"),i):B(e,o,"linePrefix",5)(l)}function o(l){const a=r.events[r.events.length-1];return a&&a[1].type==="linePrefix"&&a[2].sliceSerialize(a[1],!0).length>=4?t(l):z(l)?i(l):n(l)}}const Dl={name:"codeText",previous:Fl,resolve:Ll,tokenize:Rl};function Ll(e){let t=e.length-4,n=3,r,i;if((e[n][1].type==="lineEnding"||e[n][1].type==="space")&&(e[t][1].type==="lineEnding"||e[t][1].type==="space")){for(r=n;++r<t;)if(e[r][1].type==="codeTextData"){e[n][1].type="codeTextPadding",e[t][1].type="codeTextPadding",n+=2,t-=2;break}}for(r=n-1,t++;++r<=t;)i===void 0?r!==t&&e[r][1].type!=="lineEnding"&&(i=r):(r===t||e[r][1].type==="lineEnding")&&(e[i][1].type="codeTextData",r!==i+2&&(e[i][1].end=e[r-1][1].end,e.splice(i+2,r-i-2),t-=r-i-2,r=i+2),i=void 0);return e}function Fl(e){return e!==96||this.events[this.events.length-1][1].type==="characterEscape"}function Rl(e,t,n){let r=0,i,o;return l;function l(c){return e.enter("codeText"),e.enter("codeTextSequence"),a(c)}function a(c){return c===96?(e.consume(c),r++,a):(e.exit("codeTextSequence"),u(c))}function u(c){return c===null?n(c):c===32?(e.enter("space"),e.consume(c),e.exit("space"),u):c===96?(o=e.enter("codeTextSequence"),i=0,f(c)):z(c)?(e.enter("lineEnding"),e.consume(c),e.exit("lineEnding"),u):(e.enter("codeTextData"),s(c))}function s(c){return c===null||c===32||c===96||z(c)?(e.exit("codeTextData"),u(c)):(e.consume(c),s)}function f(c){return c===96?(e.consume(c),i++,f):i===r?(e.exit("codeTextSequence"),e.exit("codeText"),t(c)):(o.type="codeTextData",s(c))}}class _l{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 i=n||0;this.setCursor(Math.trunc(t));const o=this.right.splice(this.right.length-i,Number.POSITIVE_INFINITY);return r&&He(this.left,r),o.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),He(this.left,t)}unshift(t){this.setCursor(0),this.right.push(t)}unshiftMany(t){this.setCursor(0),He(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);He(this.right,n.reverse())}else{const n=this.right.splice(this.left.length+this.right.length-t,Number.POSITIVE_INFINITY);He(this.left,n.reverse())}}}function He(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 br(e){const t={};let n=-1,r,i,o,l,a,u,s;const f=new _l(e);for(;++n<f.length;){for(;n in t;)n=t[n];if(r=f.get(n),n&&r[1].type==="chunkFlow"&&f.get(n-1)[1].type==="listItemPrefix"&&(u=r[1]._tokenizer.events,o=0,o<u.length&&u[o][1].type==="lineEndingBlank"&&(o+=2),o<u.length&&u[o][1].type==="content"))for(;++o<u.length&&u[o][1].type!=="content";)u[o][1].type==="chunkText"&&(u[o][1]._isInFirstContentOfListItem=!0,o++);if(r[0]==="enter")r[1].contentType&&(Object.assign(t,Ol(f,n)),n=t[n],s=!0);else if(r[1]._container){for(o=n,i=void 0;o--;)if(l=f.get(o),l[1].type==="lineEnding"||l[1].type==="lineEndingBlank")l[0]==="enter"&&(i&&(f.get(i)[1].type="lineEndingBlank"),l[1].type="lineEnding",i=o);else if(!(l[1].type==="linePrefix"||l[1].type==="listItemIndent"))break;i&&(r[1].end={...f.get(i)[1].start},a=f.slice(i,n),a.unshift(r),f.splice(i,n-i+1,a))}}return ie(e,0,Number.POSITIVE_INFINITY,f.slice(0)),!s}function Ol(e,t){const n=e.get(t)[1],r=e.get(t)[2];let i=t-1;const o=[];let l=n._tokenizer;l||(l=r.parser[n.contentType](n.start),n._contentTypeTextTrailing&&(l._contentTypeTextTrailing=!0));const a=l.events,u=[],s={};let f,c,p=-1,h=n,d=0,w=0;const S=[w];for(;h;){for(;e.get(++i)[1]!==h;);o.push(i),h._tokenizer||(f=r.sliceStream(h),h.next||f.push(null),c&&l.defineSkip(h.start),h._isInFirstContentOfListItem&&(l._gfmTasklistFirstContentOfListItem=!0),l.write(f),h._isInFirstContentOfListItem&&(l._gfmTasklistFirstContentOfListItem=void 0)),c=h,h=h.next}for(h=n;++p<a.length;)a[p][0]==="exit"&&a[p-1][0]==="enter"&&a[p][1].type===a[p-1][1].type&&a[p][1].start.line!==a[p][1].end.line&&(w=p+1,S.push(w),h._tokenizer=void 0,h.previous=void 0,h=h.next);for(l.events=[],h?(h._tokenizer=void 0,h.previous=void 0):S.pop(),p=S.length;p--;){const y=a.slice(S[p],S[p+1]),I=o.pop();u.push([I,I+y.length-1]),e.splice(I,2,y)}for(u.reverse(),p=-1;++p<u.length;)s[d+u[p][0]]=d+u[p][1],d+=u[p][1]-u[p][0]-1;return s}const Ml={resolve:Bl,tokenize:jl},Nl={partial:!0,tokenize:Hl};function Bl(e){return br(e),e}function jl(e,t){let n;return r;function r(a){return e.enter("content"),n=e.enter("chunkContent",{contentType:"content"}),i(a)}function i(a){return a===null?o(a):z(a)?e.check(Nl,l,o)(a):(e.consume(a),i)}function o(a){return e.exit("chunkContent"),e.exit("content"),t(a)}function l(a){return e.consume(a),e.exit("chunkContent"),n.next=e.enter("chunkContent",{contentType:"content",previous:n}),n=n.next,i}}function Hl(e,t,n){const r=this;return i;function i(l){return e.exit("chunkContent"),e.enter("lineEnding"),e.consume(l),e.exit("lineEnding"),B(e,o,"linePrefix")}function o(l){if(l===null||z(l))return n(l);const a=r.events[r.events.length-1];return!r.parser.constructs.disable.null.includes("codeIndented")&&a&&a[1].type==="linePrefix"&&a[2].sliceSerialize(a[1],!0).length>=4?t(l):e.interrupt(r.parser.constructs.flow,n,t)(l)}}function wr(e,t,n,r,i,o,l,a,u){const s=u||Number.POSITIVE_INFINITY;let f=0;return c;function c(y){return y===60?(e.enter(r),e.enter(i),e.enter(o),e.consume(y),e.exit(o),p):y===null||y===32||y===41||rn(y)?n(y):(e.enter(r),e.enter(l),e.enter(a),e.enter("chunkString",{contentType:"string"}),w(y))}function p(y){return y===62?(e.enter(o),e.consume(y),e.exit(o),e.exit(i),e.exit(r),t):(e.enter(a),e.enter("chunkString",{contentType:"string"}),h(y))}function h(y){return y===62?(e.exit("chunkString"),e.exit(a),p(y)):y===null||y===60||z(y)?n(y):(e.consume(y),y===92?d:h)}function d(y){return y===60||y===62||y===92?(e.consume(y),h):h(y)}function w(y){return!f&&(y===null||y===41||W(y))?(e.exit("chunkString"),e.exit(a),e.exit(l),e.exit(r),t(y)):f<s&&y===40?(e.consume(y),f++,w):y===41?(e.consume(y),f--,w):y===null||y===32||y===40||rn(y)?n(y):(e.consume(y),y===92?S:w)}function S(y){return y===40||y===41||y===92?(e.consume(y),w):w(y)}}function Sr(e,t,n,r,i,o){const l=this;let a=0,u;return s;function s(h){return e.enter(r),e.enter(i),e.consume(h),e.exit(i),e.enter(o),f}function f(h){return a>999||h===null||h===91||h===93&&!u||h===94&&!a&&"_hiddenFootnoteSupport"in l.parser.constructs?n(h):h===93?(e.exit(o),e.enter(i),e.consume(h),e.exit(i),e.exit(r),t):z(h)?(e.enter("lineEnding"),e.consume(h),e.exit("lineEnding"),f):(e.enter("chunkString",{contentType:"string"}),c(h))}function c(h){return h===null||h===91||h===93||z(h)||a++>999?(e.exit("chunkString"),f(h)):(e.consume(h),u||(u=!O(h)),h===92?p:c)}function p(h){return h===91||h===92||h===93?(e.consume(h),a++,c):c(h)}}function Cr(e,t,n,r,i,o){let l;return a;function a(p){return p===34||p===39||p===40?(e.enter(r),e.enter(i),e.consume(p),e.exit(i),l=p===40?41:p,u):n(p)}function u(p){return p===l?(e.enter(i),e.consume(p),e.exit(i),e.exit(r),t):(e.enter(o),s(p))}function s(p){return p===l?(e.exit(o),u(l)):p===null?n(p):z(p)?(e.enter("lineEnding"),e.consume(p),e.exit("lineEnding"),B(e,s,"linePrefix")):(e.enter("chunkString",{contentType:"string"}),f(p))}function f(p){return p===l||p===null||z(p)?(e.exit("chunkString"),s(p)):(e.consume(p),p===92?c:f)}function c(p){return p===l||p===92?(e.consume(p),f):f(p)}}function Ve(e,t){let n;return r;function r(i){return z(i)?(e.enter("lineEnding"),e.consume(i),e.exit("lineEnding"),n=!0,r):O(i)?B(e,r,n?"linePrefix":"lineSuffix")(i):t(i)}}const Ul={name:"definition",tokenize:Vl},ql={partial:!0,tokenize:$l};function Vl(e,t,n){const r=this;let i;return o;function o(h){return e.enter("definition"),l(h)}function l(h){return Sr.call(r,e,a,n,"definitionLabel","definitionLabelMarker","definitionLabelString")(h)}function a(h){return i=ce(r.sliceSerialize(r.events[r.events.length-1][1]).slice(1,-1)),h===58?(e.enter("definitionMarker"),e.consume(h),e.exit("definitionMarker"),u):n(h)}function u(h){return W(h)?Ve(e,s)(h):s(h)}function s(h){return wr(e,f,n,"definitionDestination","definitionDestinationLiteral","definitionDestinationLiteralMarker","definitionDestinationRaw","definitionDestinationString")(h)}function f(h){return e.attempt(ql,c,c)(h)}function c(h){return O(h)?B(e,p,"whitespace")(h):p(h)}function p(h){return h===null||z(h)?(e.exit("definition"),r.parser.defined.push(i),t(h)):n(h)}}function $l(e,t,n){return r;function r(a){return W(a)?Ve(e,i)(a):n(a)}function i(a){return Cr(e,o,n,"definitionTitle","definitionTitleMarker","definitionTitleString")(a)}function o(a){return O(a)?B(e,l,"whitespace")(a):l(a)}function l(a){return a===null||z(a)?t(a):n(a)}}const Wl={name:"hardBreakEscape",tokenize:Yl};function Yl(e,t,n){return r;function r(o){return e.enter("hardBreakEscape"),e.consume(o),i}function i(o){return z(o)?(e.exit("hardBreakEscape"),t(o)):n(o)}}const Xl={name:"headingAtx",resolve:Ql,tokenize:Gl};function Ql(e,t){let n=e.length-2,r=3,i,o;return e[r][1].type==="whitespace"&&(r+=2),n-2>r&&e[n][1].type==="whitespace"&&(n-=2),e[n][1].type==="atxHeadingSequence"&&(r===n-1||n-4>r&&e[n-2][1].type==="whitespace")&&(n-=r+1===n?2:4),n>r&&(i={type:"atxHeadingText",start:e[r][1].start,end:e[n][1].end},o={type:"chunkText",start:e[r][1].start,end:e[n][1].end,contentType:"text"},ie(e,r,n-r+1,[["enter",i,t],["enter",o,t],["exit",o,t],["exit",i,t]])),e}function Gl(e,t,n){let r=0;return i;function i(f){return e.enter("atxHeading"),o(f)}function o(f){return e.enter("atxHeadingSequence"),l(f)}function l(f){return f===35&&r++<6?(e.consume(f),l):f===null||W(f)?(e.exit("atxHeadingSequence"),a(f)):n(f)}function a(f){return f===35?(e.enter("atxHeadingSequence"),u(f)):f===null||z(f)?(e.exit("atxHeading"),t(f)):O(f)?B(e,a,"whitespace")(f):(e.enter("atxHeadingText"),s(f))}function u(f){return f===35?(e.consume(f),u):(e.exit("atxHeadingSequence"),a(f))}function s(f){return f===null||f===35||W(f)?(e.exit("atxHeadingText"),a(f)):(e.consume(f),s)}}const Kl=["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"],Pt=["pre","script","style","textarea"],Jl={concrete:!0,name:"htmlFlow",resolveTo:no,tokenize:to},Zl={partial:!0,tokenize:io},eo={partial:!0,tokenize:ro};function no(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 to(e,t,n){const r=this;let i,o,l,a,u;return s;function s(g){return f(g)}function f(g){return e.enter("htmlFlow"),e.enter("htmlFlowData"),e.consume(g),c}function c(g){return g===33?(e.consume(g),p):g===47?(e.consume(g),o=!0,w):g===63?(e.consume(g),i=3,r.interrupt?t:m):Z(g)?(e.consume(g),l=String.fromCharCode(g),S):n(g)}function p(g){return g===45?(e.consume(g),i=2,h):g===91?(e.consume(g),i=5,a=0,d):Z(g)?(e.consume(g),i=4,r.interrupt?t:m):n(g)}function h(g){return g===45?(e.consume(g),r.interrupt?t:m):n(g)}function d(g){const ue="CDATA[";return g===ue.charCodeAt(a++)?(e.consume(g),a===ue.length?r.interrupt?t:v:d):n(g)}function w(g){return Z(g)?(e.consume(g),l=String.fromCharCode(g),S):n(g)}function S(g){if(g===null||g===47||g===62||W(g)){const ue=g===47,we=l.toLowerCase();return!ue&&!o&&Pt.includes(we)?(i=1,r.interrupt?t(g):v(g)):Kl.includes(l.toLowerCase())?(i=6,ue?(e.consume(g),y):r.interrupt?t(g):v(g)):(i=7,r.interrupt&&!r.parser.lazy[r.now().line]?n(g):o?I(g):C(g))}return g===45||K(g)?(e.consume(g),l+=String.fromCharCode(g),S):n(g)}function y(g){return g===62?(e.consume(g),r.interrupt?t:v):n(g)}function I(g){return O(g)?(e.consume(g),I):x(g)}function C(g){return g===47?(e.consume(g),x):g===58||g===95||Z(g)?(e.consume(g),R):O(g)?(e.consume(g),C):x(g)}function R(g){return g===45||g===46||g===58||g===95||K(g)?(e.consume(g),R):_(g)}function _(g){return g===61?(e.consume(g),b):O(g)?(e.consume(g),_):C(g)}function b(g){return g===null||g===60||g===61||g===62||g===96?n(g):g===34||g===39?(e.consume(g),u=g,M):O(g)?(e.consume(g),b):H(g)}function M(g){return g===u?(e.consume(g),u=null,j):g===null||z(g)?n(g):(e.consume(g),M)}function H(g){return g===null||g===34||g===39||g===47||g===60||g===61||g===62||g===96||W(g)?_(g):(e.consume(g),H)}function j(g){return g===47||g===62||O(g)?C(g):n(g)}function x(g){return g===62?(e.consume(g),P):n(g)}function P(g){return g===null||z(g)?v(g):O(g)?(e.consume(g),P):n(g)}function v(g){return g===45&&i===2?(e.consume(g),q):g===60&&i===1?(e.consume(g),Q):g===62&&i===4?(e.consume(g),ae):g===63&&i===3?(e.consume(g),m):g===93&&i===5?(e.consume(g),pe):z(g)&&(i===6||i===7)?(e.exit("htmlFlowData"),e.check(Zl,me,U)(g)):g===null||z(g)?(e.exit("htmlFlowData"),U(g)):(e.consume(g),v)}function U(g){return e.check(eo,D,me)(g)}function D(g){return e.enter("lineEnding"),e.consume(g),e.exit("lineEnding"),T}function T(g){return g===null||z(g)?U(g):(e.enter("htmlFlowData"),v(g))}function q(g){return g===45?(e.consume(g),m):v(g)}function Q(g){return g===47?(e.consume(g),l="",oe):v(g)}function oe(g){if(g===62){const ue=l.toLowerCase();return Pt.includes(ue)?(e.consume(g),ae):v(g)}return Z(g)&&l.length<8?(e.consume(g),l+=String.fromCharCode(g),oe):v(g)}function pe(g){return g===93?(e.consume(g),m):v(g)}function m(g){return g===62?(e.consume(g),ae):g===45&&i===2?(e.consume(g),m):v(g)}function ae(g){return g===null||z(g)?(e.exit("htmlFlowData"),me(g)):(e.consume(g),ae)}function me(g){return e.exit("htmlFlow"),t(g)}}function ro(e,t,n){const r=this;return i;function i(l){return z(l)?(e.enter("lineEnding"),e.consume(l),e.exit("lineEnding"),o):n(l)}function o(l){return r.parser.lazy[r.now().line]?n(l):t(l)}}function io(e,t,n){return r;function r(i){return e.enter("lineEnding"),e.consume(i),e.exit("lineEnding"),e.attempt(Qe,t,n)}}const lo={name:"htmlText",tokenize:oo};function oo(e,t,n){const r=this;let i,o,l;return a;function a(m){return e.enter("htmlText"),e.enter("htmlTextData"),e.consume(m),u}function u(m){return m===33?(e.consume(m),s):m===47?(e.consume(m),_):m===63?(e.consume(m),C):Z(m)?(e.consume(m),H):n(m)}function s(m){return m===45?(e.consume(m),f):m===91?(e.consume(m),o=0,d):Z(m)?(e.consume(m),I):n(m)}function f(m){return m===45?(e.consume(m),h):n(m)}function c(m){return m===null?n(m):m===45?(e.consume(m),p):z(m)?(l=c,Q(m)):(e.consume(m),c)}function p(m){return m===45?(e.consume(m),h):c(m)}function h(m){return m===62?q(m):m===45?p(m):c(m)}function d(m){const ae="CDATA[";return m===ae.charCodeAt(o++)?(e.consume(m),o===ae.length?w:d):n(m)}function w(m){return m===null?n(m):m===93?(e.consume(m),S):z(m)?(l=w,Q(m)):(e.consume(m),w)}function S(m){return m===93?(e.consume(m),y):w(m)}function y(m){return m===62?q(m):m===93?(e.consume(m),y):w(m)}function I(m){return m===null||m===62?q(m):z(m)?(l=I,Q(m)):(e.consume(m),I)}function C(m){return m===null?n(m):m===63?(e.consume(m),R):z(m)?(l=C,Q(m)):(e.consume(m),C)}function R(m){return m===62?q(m):C(m)}function _(m){return Z(m)?(e.consume(m),b):n(m)}function b(m){return m===45||K(m)?(e.consume(m),b):M(m)}function M(m){return z(m)?(l=M,Q(m)):O(m)?(e.consume(m),M):q(m)}function H(m){return m===45||K(m)?(e.consume(m),H):m===47||m===62||W(m)?j(m):n(m)}function j(m){return m===47?(e.consume(m),q):m===58||m===95||Z(m)?(e.consume(m),x):z(m)?(l=j,Q(m)):O(m)?(e.consume(m),j):q(m)}function x(m){return m===45||m===46||m===58||m===95||K(m)?(e.consume(m),x):P(m)}function P(m){return m===61?(e.consume(m),v):z(m)?(l=P,Q(m)):O(m)?(e.consume(m),P):j(m)}function v(m){return m===null||m===60||m===61||m===62||m===96?n(m):m===34||m===39?(e.consume(m),i=m,U):z(m)?(l=v,Q(m)):O(m)?(e.consume(m),v):(e.consume(m),D)}function U(m){return m===i?(e.consume(m),i=void 0,T):m===null?n(m):z(m)?(l=U,Q(m)):(e.consume(m),U)}function D(m){return m===null||m===34||m===39||m===60||m===61||m===96?n(m):m===47||m===62||W(m)?j(m):(e.consume(m),D)}function T(m){return m===47||m===62||W(m)?j(m):n(m)}function q(m){return m===62?(e.consume(m),e.exit("htmlTextData"),e.exit("htmlText"),t):n(m)}function Q(m){return e.exit("htmlTextData"),e.enter("lineEnding"),e.consume(m),e.exit("lineEnding"),oe}function oe(m){return O(m)?B(e,pe,"linePrefix",r.parser.constructs.disable.null.includes("codeIndented")?void 0:4)(m):pe(m)}function pe(m){return e.enter("htmlTextData"),l(m)}}const Qn={name:"labelEnd",resolveAll:co,resolveTo:fo,tokenize:ho},ao={tokenize:po},uo={tokenize:mo},so={tokenize:go};function co(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 i=r.type==="labelImage"?4:2;r.type="data",t+=i}}return e.length!==n.length&&ie(e,0,e.length,n),e}function fo(e,t){let n=e.length,r=0,i,o,l,a;for(;n--;)if(i=e[n][1],o){if(i.type==="link"||i.type==="labelLink"&&i._inactive)break;e[n][0]==="enter"&&i.type==="labelLink"&&(i._inactive=!0)}else if(l){if(e[n][0]==="enter"&&(i.type==="labelImage"||i.type==="labelLink")&&!i._balanced&&(o=n,i.type!=="labelLink")){r=2;break}}else i.type==="labelEnd"&&(l=n);const u={type:e[o][1].type==="labelLink"?"link":"image",start:{...e[o][1].start},end:{...e[e.length-1][1].end}},s={type:"label",start:{...e[o][1].start},end:{...e[l][1].end}},f={type:"labelText",start:{...e[o+r+2][1].end},end:{...e[l-2][1].start}};return a=[["enter",u,t],["enter",s,t]],a=le(a,e.slice(o+1,o+r+3)),a=le(a,[["enter",f,t]]),a=le(a,sn(t.parser.constructs.insideSpan.null,e.slice(o+r+4,l-3),t)),a=le(a,[["exit",f,t],e[l-2],e[l-1],["exit",s,t]]),a=le(a,e.slice(l+1)),a=le(a,[["exit",u,t]]),ie(e,o,e.length,a),e}function ho(e,t,n){const r=this;let i=r.events.length,o,l;for(;i--;)if((r.events[i][1].type==="labelImage"||r.events[i][1].type==="labelLink")&&!r.events[i][1]._balanced){o=r.events[i][1];break}return a;function a(p){return o?o._inactive?c(p):(l=r.parser.defined.includes(ce(r.sliceSerialize({start:o.end,end:r.now()}))),e.enter("labelEnd"),e.enter("labelMarker"),e.consume(p),e.exit("labelMarker"),e.exit("labelEnd"),u):n(p)}function u(p){return p===40?e.attempt(ao,f,l?f:c)(p):p===91?e.attempt(uo,f,l?s:c)(p):l?f(p):c(p)}function s(p){return e.attempt(so,f,c)(p)}function f(p){return t(p)}function c(p){return o._balanced=!0,n(p)}}function po(e,t,n){return r;function r(c){return e.enter("resource"),e.enter("resourceMarker"),e.consume(c),e.exit("resourceMarker"),i}function i(c){return W(c)?Ve(e,o)(c):o(c)}function o(c){return c===41?f(c):wr(e,l,a,"resourceDestination","resourceDestinationLiteral","resourceDestinationLiteralMarker","resourceDestinationRaw","resourceDestinationString",32)(c)}function l(c){return W(c)?Ve(e,u)(c):f(c)}function a(c){return n(c)}function u(c){return c===34||c===39||c===40?Cr(e,s,n,"resourceTitle","resourceTitleMarker","resourceTitleString")(c):f(c)}function s(c){return W(c)?Ve(e,f)(c):f(c)}function f(c){return c===41?(e.enter("resourceMarker"),e.consume(c),e.exit("resourceMarker"),e.exit("resource"),t):n(c)}}function mo(e,t,n){const r=this;return i;function i(a){return Sr.call(r,e,o,l,"reference","referenceMarker","referenceString")(a)}function o(a){return r.parser.defined.includes(ce(r.sliceSerialize(r.events[r.events.length-1][1]).slice(1,-1)))?t(a):n(a)}function l(a){return n(a)}}function go(e,t,n){return r;function r(o){return e.enter("reference"),e.enter("referenceMarker"),e.consume(o),e.exit("referenceMarker"),i}function i(o){return o===93?(e.enter("referenceMarker"),e.consume(o),e.exit("referenceMarker"),e.exit("reference"),t):n(o)}}const yo={name:"labelStartImage",resolveAll:Qn.resolveAll,tokenize:xo};function xo(e,t,n){const r=this;return i;function i(a){return e.enter("labelImage"),e.enter("labelImageMarker"),e.consume(a),e.exit("labelImageMarker"),o}function o(a){return a===91?(e.enter("labelMarker"),e.consume(a),e.exit("labelMarker"),e.exit("labelImage"),l):n(a)}function l(a){return a===94&&"_hiddenFootnoteSupport"in r.parser.constructs?n(a):t(a)}}const ko={name:"labelStartLink",resolveAll:Qn.resolveAll,tokenize:bo};function bo(e,t,n){const r=this;return i;function i(l){return e.enter("labelLink"),e.enter("labelMarker"),e.consume(l),e.exit("labelMarker"),e.exit("labelLink"),o}function o(l){return l===94&&"_hiddenFootnoteSupport"in r.parser.constructs?n(l):t(l)}}const yn={name:"lineEnding",tokenize:wo};function wo(e,t){return n;function n(r){return e.enter("lineEnding"),e.consume(r),e.exit("lineEnding"),B(e,t,"linePrefix")}}const tn={name:"thematicBreak",tokenize:So};function So(e,t,n){let r=0,i;return o;function o(s){return e.enter("thematicBreak"),l(s)}function l(s){return i=s,a(s)}function a(s){return s===i?(e.enter("thematicBreakSequence"),u(s)):r>=3&&(s===null||z(s))?(e.exit("thematicBreak"),t(s)):n(s)}function u(s){return s===i?(e.consume(s),r++,u):(e.exit("thematicBreakSequence"),O(s)?B(e,a,"whitespace")(s):a(s))}}const ee={continuation:{tokenize:Ao},exit:Po,name:"list",tokenize:Io},Co={partial:!0,tokenize:vo},Eo={partial:!0,tokenize:To};function Io(e,t,n){const r=this,i=r.events[r.events.length-1];let o=i&&i[1].type==="linePrefix"?i[2].sliceSerialize(i[1],!0).length:0,l=0;return a;function a(h){const d=r.containerState.type||(h===42||h===43||h===45?"listUnordered":"listOrdered");if(d==="listUnordered"?!r.containerState.marker||h===r.containerState.marker:Rn(h)){if(r.containerState.type||(r.containerState.type=d,e.enter(d,{_container:!0})),d==="listUnordered")return e.enter("listItemPrefix"),h===42||h===45?e.check(tn,n,s)(h):s(h);if(!r.interrupt||h===49)return e.enter("listItemPrefix"),e.enter("listItemValue"),u(h)}return n(h)}function u(h){return Rn(h)&&++l<10?(e.consume(h),u):(!r.interrupt||l<2)&&(r.containerState.marker?h===r.containerState.marker:h===41||h===46)?(e.exit("listItemValue"),s(h)):n(h)}function s(h){return e.enter("listItemMarker"),e.consume(h),e.exit("listItemMarker"),r.containerState.marker=r.containerState.marker||h,e.check(Qe,r.interrupt?n:f,e.attempt(Co,p,c))}function f(h){return r.containerState.initialBlankLine=!0,o++,p(h)}function c(h){return O(h)?(e.enter("listItemPrefixWhitespace"),e.consume(h),e.exit("listItemPrefixWhitespace"),p):n(h)}function p(h){return r.containerState.size=o+r.sliceSerialize(e.exit("listItemPrefix"),!0).length,t(h)}}function Ao(e,t,n){const r=this;return r.containerState._closeFlow=void 0,e.check(Qe,i,o);function i(a){return r.containerState.furtherBlankLines=r.containerState.furtherBlankLines||r.containerState.initialBlankLine,B(e,t,"listItemIndent",r.containerState.size+1)(a)}function o(a){return r.containerState.furtherBlankLines||!O(a)?(r.containerState.furtherBlankLines=void 0,r.containerState.initialBlankLine=void 0,l(a)):(r.containerState.furtherBlankLines=void 0,r.containerState.initialBlankLine=void 0,e.attempt(Eo,t,l)(a))}function l(a){return r.containerState._closeFlow=!0,r.interrupt=void 0,B(e,e.attempt(ee,t,n),"linePrefix",r.parser.constructs.disable.null.includes("codeIndented")?void 0:4)(a)}}function To(e,t,n){const r=this;return B(e,i,"listItemIndent",r.containerState.size+1);function i(o){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(o):n(o)}}function Po(e){e.exit(this.containerState.type)}function vo(e,t,n){const r=this;return B(e,i,"listItemPrefixWhitespace",r.parser.constructs.disable.null.includes("codeIndented")?void 0:5);function i(o){const l=r.events[r.events.length-1];return!O(o)&&l&&l[1].type==="listItemPrefixWhitespace"?t(o):n(o)}}const vt={name:"setextUnderline",resolveTo:zo,tokenize:Do};function zo(e,t){let n=e.length,r,i,o;for(;n--;)if(e[n][0]==="enter"){if(e[n][1].type==="content"){r=n;break}e[n][1].type==="paragraph"&&(i=n)}else e[n][1].type==="content"&&e.splice(n,1),!o&&e[n][1].type==="definition"&&(o=n);const l={type:"setextHeading",start:{...e[r][1].start},end:{...e[e.length-1][1].end}};return e[i][1].type="setextHeadingText",o?(e.splice(i,0,["enter",l,t]),e.splice(o+1,0,["exit",e[r][1],t]),e[r][1].end={...e[o][1].end}):e[r][1]=l,e.push(["exit",l,t]),e}function Do(e,t,n){const r=this;let i;return o;function o(s){let f=r.events.length,c;for(;f--;)if(r.events[f][1].type!=="lineEnding"&&r.events[f][1].type!=="linePrefix"&&r.events[f][1].type!=="content"){c=r.events[f][1].type==="paragraph";break}return!r.parser.lazy[r.now().line]&&(r.interrupt||c)?(e.enter("setextHeadingLine"),i=s,l(s)):n(s)}function l(s){return e.enter("setextHeadingLineSequence"),a(s)}function a(s){return s===i?(e.consume(s),a):(e.exit("setextHeadingLineSequence"),O(s)?B(e,u,"lineSuffix")(s):u(s))}function u(s){return s===null||z(s)?(e.exit("setextHeadingLine"),t(s)):n(s)}}const Lo={tokenize:Fo};function Fo(e){const t=this,n=e.attempt(Qe,r,e.attempt(this.parser.constructs.flowInitial,i,B(e,e.attempt(this.parser.constructs.flow,i,e.attempt(Ml,i)),"linePrefix")));return n;function r(o){if(o===null){e.consume(o);return}return e.enter("lineEndingBlank"),e.consume(o),e.exit("lineEndingBlank"),t.currentConstruct=void 0,n}function i(o){if(o===null){e.consume(o);return}return e.enter("lineEnding"),e.consume(o),e.exit("lineEnding"),t.currentConstruct=void 0,n}}const Ro={resolveAll:Ir()},_o=Er("string"),Oo=Er("text");function Er(e){return{resolveAll:Ir(e==="text"?Mo:void 0),tokenize:t};function t(n){const r=this,i=this.parser.constructs[e],o=n.attempt(i,l,a);return l;function l(f){return s(f)?o(f):a(f)}function a(f){if(f===null){n.consume(f);return}return n.enter("data"),n.consume(f),u}function u(f){return s(f)?(n.exit("data"),o(f)):(n.consume(f),u)}function s(f){if(f===null)return!0;const c=i[f];let p=-1;if(c)for(;++p<c.length;){const h=c[p];if(!h.previous||h.previous.call(r,r.previous))return!0}return!1}}}function Ir(e){return t;function t(n,r){let i=-1,o;for(;++i<=n.length;)o===void 0?n[i]&&n[i][1].type==="data"&&(o=i,i++):(!n[i]||n[i][1].type!=="data")&&(i!==o+2&&(n[o][1].end=n[i-1][1].end,n.splice(o+2,i-o-2),i=o+2),o=void 0);return e?e(n,r):n}}function Mo(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],i=t.sliceStream(r);let o=i.length,l=-1,a=0,u;for(;o--;){const s=i[o];if(typeof s=="string"){for(l=s.length;s.charCodeAt(l-1)===32;)a++,l--;if(l)break;l=-1}else if(s===-2)u=!0,a++;else if(s!==-1){o++;break}}if(t._contentTypeTextTrailing&&n===e.length&&(a=0),a){const s={type:n===e.length||u||a<2?"lineSuffix":"hardBreakTrailing",start:{_bufferIndex:o?l:r.start._bufferIndex+l,_index:r.start._index+o,line:r.end.line,column:r.end.column-a,offset:r.end.offset-a},end:{...r.end}};r.end={...s.start},r.start.offset===r.end.offset?Object.assign(r,s):(e.splice(n,0,["enter",s,t],["exit",s,t]),n+=2)}n++}return e}const No={42:ee,43:ee,45:ee,48:ee,49:ee,50:ee,51:ee,52:ee,53:ee,54:ee,55:ee,56:ee,57:ee,62:yr},Bo={91:Ul},jo={[-2]:dn,[-1]:dn,32:dn},Ho={35:Xl,42:tn,45:[vt,tn],60:Jl,61:vt,95:tn,96:Tt,126:Tt},Uo={38:kr,92:xr},qo={[-5]:yn,[-4]:yn,[-3]:yn,33:yo,38:kr,42:_n,60:[xl,lo],91:ko,92:[Wl,xr],93:Qn,95:_n,96:Dl},Vo={null:[_n,Ro]},$o={null:[42,95]},Wo={null:[]},Yo=Object.freeze(Object.defineProperty({__proto__:null,attentionMarkers:$o,contentInitial:Bo,disable:Wo,document:No,flow:Ho,flowInitial:jo,insideSpan:Vo,string:Uo,text:qo},Symbol.toStringTag,{value:"Module"}));function Xo(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 i={},o=[];let l=[],a=[];const u={attempt:M(_),check:M(b),consume:I,enter:C,exit:R,interrupt:M(b,{interrupt:!0})},s={code:null,containerState:{},defineSkip:w,events:[],now:d,parser:e,previous:null,sliceSerialize:p,sliceStream:h,write:c};let f=t.tokenize.call(s,u);return t.resolveAll&&o.push(t),s;function c(P){return l=le(l,P),S(),l[l.length-1]!==null?[]:(H(t,0),s.events=sn(o,s.events,s),s.events)}function p(P,v){return Go(h(P),v)}function h(P){return Qo(l,P)}function d(){const{_bufferIndex:P,_index:v,line:U,column:D,offset:T}=r;return{_bufferIndex:P,_index:v,line:U,column:D,offset:T}}function w(P){i[P.line]=P.column,x()}function S(){let P;for(;r._index<l.length;){const v=l[r._index];if(typeof v=="string")for(P=r._index,r._bufferIndex<0&&(r._bufferIndex=0);r._index===P&&r._bufferIndex<v.length;)y(v.charCodeAt(r._bufferIndex));else y(v)}}function y(P){f=f(P)}function I(P){z(P)?(r.line++,r.column=1,r.offset+=P===-3?2:1,x()):P!==-1&&(r.column++,r.offset++),r._bufferIndex<0?r._index++:(r._bufferIndex++,r._bufferIndex===l[r._index].length&&(r._bufferIndex=-1,r._index++)),s.previous=P}function C(P,v){const U=v||{};return U.type=P,U.start=d(),s.events.push(["enter",U,s]),a.push(U),U}function R(P){const v=a.pop();return v.end=d(),s.events.push(["exit",v,s]),v}function _(P,v){H(P,v.from)}function b(P,v){v.restore()}function M(P,v){return U;function U(D,T,q){let Q,oe,pe,m;return Array.isArray(D)?me(D):"tokenize"in D?me([D]):ae(D);function ae(G){return Oe;function Oe(xe){const Te=xe!==null&&G[xe],Pe=xe!==null&&G.null,Ke=[...Array.isArray(Te)?Te:Te?[Te]:[],...Array.isArray(Pe)?Pe:Pe?[Pe]:[]];return me(Ke)(xe)}}function me(G){return Q=G,oe=0,G.length===0?q:g(G[oe])}function g(G){return Oe;function Oe(xe){return m=j(),pe=G,G.partial||(s.currentConstruct=G),G.name&&s.parser.constructs.disable.null.includes(G.name)?we():G.tokenize.call(v?Object.assign(Object.create(s),v):s,u,ue,we)(xe)}}function ue(G){return P(pe,m),T}function we(G){return m.restore(),++oe<Q.length?g(Q[oe]):q}}}function H(P,v){P.resolveAll&&!o.includes(P)&&o.push(P),P.resolve&&ie(s.events,v,s.events.length-v,P.resolve(s.events.slice(v),s)),P.resolveTo&&(s.events=P.resolveTo(s.events,s))}function j(){const P=d(),v=s.previous,U=s.currentConstruct,D=s.events.length,T=Array.from(a);return{from:D,restore:q};function q(){r=P,s.previous=v,s.currentConstruct=U,s.events.length=D,a=T,x()}}function x(){r.line in i&&r.column<2&&(r.column=i[r.line],r.offset+=i[r.line]-1)}}function Qo(e,t){const n=t.start._index,r=t.start._bufferIndex,i=t.end._index,o=t.end._bufferIndex;let l;if(n===i)l=[e[n].slice(r,o)];else{if(l=e.slice(n,i),r>-1){const a=l[0];typeof a=="string"?l[0]=a.slice(r):l.shift()}o>0&&l.push(e[i].slice(0,o))}return l}function Go(e,t){let n=-1;const r=[];let i;for(;++n<e.length;){const o=e[n];let l;if(typeof o=="string")l=o;else switch(o){case-5:{l="\r";break}case-4:{l=`
3
3
  `;break}case-3:{l=`\r
4
4
  `;break}case-2:{l=t?" ":" ";break}case-1:{if(!t&&i)continue;l=" ";break}default:l=String.fromCharCode(o)}i=o===-2,r.push(l)}return r.join("")}function Ko(e){const r={constructs:gr([Yo,...(e||{}).extensions||[]]),content:i(fl),defined:[],document:i(pl),flow:i(Lo),lazy:{},string:i(_o),text:i(Oo)};return r;function i(o){return l;function l(a){return Xo(r,o,a)}}}function Jo(e){for(;!br(e););return e}const zt=/[\0\t\n\r]/g;function Zo(){let e=1,t="",n=!0,r;return i;function i(o,l,a){const u=[];let s,f,c,p,h;for(o=t+(typeof o=="string"?o.toString():new TextDecoder(l||void 0).decode(o)),c=0,t="",n&&(o.charCodeAt(0)===65279&&c++,n=void 0);c<o.length;){if(zt.lastIndex=c,s=zt.exec(o),p=s&&s.index!==void 0?s.index:o.length,h=o.charCodeAt(p),!s){t=o.slice(c);break}if(h===10&&c===p&&r)u.push(-3),r=void 0;else switch(r&&(u.push(-5),r=void 0),c<p&&(u.push(o.slice(c,p)),e+=p-c),h){case 0:{u.push(65533),e++;break}case 9:{for(f=Math.ceil(e/4)*4,u.push(-2);e++<f;)u.push(-1);break}case 10:{u.push(-4),e=1;break}default:r=!0,e=1}c=p+1}return a&&(r&&u.push(-5),t&&u.push(t),u.push(null)),u}}const ea=/\\([!-/:-@[-`{-~])|&(#(?:\d{1,7}|x[\da-f]{1,6})|[\da-z]{1,31});/gi;function na(e){return e.replace(ea,ta)}function ta(e,t,n){if(t)return t;if(n.charCodeAt(0)===35){const i=n.charCodeAt(1),o=i===120||i===88;return dr(n.slice(o?2:1),o?16:10)}return Xn(n)||e}const Ar={}.hasOwnProperty;function ra(e,t,n){return t&&typeof t=="object"&&(n=t,t=void 0),ia(n)(Jo(Ko(n).document().write(Zo()(e,t,!0))))}function ia(e){const t={transforms:[],canContainEols:["emphasis","fragment","heading","paragraph","strong"],enter:{autolink:o(ut),autolinkProtocol:j,autolinkEmail:j,atxHeading:o(lt),blockQuote:o(Pe),characterEscape:j,characterReference:j,codeFenced:o(Ke),codeFencedFenceInfo:l,codeFencedFenceMeta:l,codeIndented:o(Ke,l),codeText:o(li,l),codeTextData:j,data:j,codeFlowValue:j,definition:o(oi),definitionDestinationString:l,definitionLabelString:l,definitionTitleString:l,emphasis:o(ai),hardBreakEscape:o(ot),hardBreakTrailing:o(ot),htmlFlow:o(at,l),htmlFlowData:j,htmlText:o(at,l),htmlTextData:j,image:o(ui),label:l,link:o(ut),listItem:o(si),listItemValue:p,listOrdered:o(st,c),listUnordered:o(st),paragraph:o(ci),reference:g,referenceString:l,resourceDestinationString:l,resourceTitleString:l,setextHeading:o(lt),strong:o(fi),thematicBreak:o(pi)},exit:{atxHeading:u(),atxHeadingSequence:_,autolink:u(),autolinkEmail:Te,autolinkProtocol:xe,blockQuote:u(),characterEscapeValue:x,characterReferenceMarkerHexadecimal:we,characterReferenceMarkerNumeric:we,characterReferenceValue:G,characterReference:Oe,codeFenced:u(S),codeFencedFence:w,codeFencedFenceInfo:h,codeFencedFenceMeta:d,codeFlowValue:x,codeIndented:u(y),codeText:u(T),codeTextData:x,data:x,definition:u(),definitionDestinationString:R,definitionLabelString:I,definitionTitleString:C,emphasis:u(),hardBreakEscape:u(v),hardBreakTrailing:u(v),htmlFlow:u(U),htmlFlowData:x,htmlText:u(D),htmlTextData:x,image:u(Q),label:pe,labelText:oe,lineEnding:P,link:u(q),listItem:u(),listOrdered:u(),listUnordered:u(),paragraph:u(),referenceString:ue,resourceDestinationString:m,resourceTitleString:ae,resource:me,setextHeading:u(H),setextHeadingLineSequence:M,setextHeadingText:b,strong:u(),thematicBreak:u()}};Tr(t,(e||{}).mdastExtensions||[]);const n={};return r;function r(k){let A={type:"root",children:[]};const F={stack:[A],tokenStack:[],config:t,enter:a,exit:s,buffer:l,resume:f,data:n},N=[];let V=-1;for(;++V<k.length;)if(k[V][1].type==="listOrdered"||k[V][1].type==="listUnordered")if(k[V][0]==="enter")N.push(V);else{const se=N.pop();V=i(k,se,V)}for(V=-1;++V<k.length;){const se=t[k[V][0]];Ar.call(se,k[V][1].type)&&se[k[V][1].type].call(Object.assign({sliceSerialize:k[V][2].sliceSerialize},F),k[V][1])}if(F.tokenStack.length>0){const se=F.tokenStack[F.tokenStack.length-1];(se[1]||Dt).call(F,void 0,se[0])}for(A.position={start:ke(k.length>0?k[0][1].start:{line:1,column:1,offset:0}),end:ke(k.length>0?k[k.length-2][1].end:{line:1,column:1,offset:0})},V=-1;++V<t.transforms.length;)A=t.transforms[V](A)||A;return A}function i(k,A,F){let N=A-1,V=-1,se=!1,Se,ge,Me,Ne;for(;++N<=F;){const te=k[N];switch(te[1].type){case"listUnordered":case"listOrdered":case"blockQuote":{te[0]==="enter"?V++:V--,Ne=void 0;break}case"lineEndingBlank":{te[0]==="enter"&&(Se&&!Ne&&!V&&!Me&&(Me=N),Ne=void 0);break}case"linePrefix":case"listItemValue":case"listItemMarker":case"listItemPrefix":case"listItemPrefixWhitespace":break;default:Ne=void 0}if(!V&&te[0]==="enter"&&te[1].type==="listItemPrefix"||V===-1&&te[0]==="exit"&&(te[1].type==="listUnordered"||te[1].type==="listOrdered")){if(Se){let ve=N;for(ge=void 0;ve--;){const de=k[ve];if(de[1].type==="lineEnding"||de[1].type==="lineEndingBlank"){if(de[0]==="exit")continue;ge&&(k[ge][1].type="lineEndingBlank",se=!0),de[1].type="lineEnding",ge=ve}else if(!(de[1].type==="linePrefix"||de[1].type==="blockQuotePrefix"||de[1].type==="blockQuotePrefixWhitespace"||de[1].type==="blockQuoteMarker"||de[1].type==="listItemIndent"))break}Me&&(!ge||Me<ge)&&(Se._spread=!0),Se.end=Object.assign({},ge?k[ge][1].start:te[1].end),k.splice(ge||N,0,["exit",Se,te[2]]),N++,F++}if(te[1].type==="listItemPrefix"){const ve={type:"listItem",_spread:!1,start:Object.assign({},te[1].start),end:void 0};Se=ve,k.splice(N,0,["enter",ve,te[2]]),N++,F++,Me=void 0,Ne=!0}}}return k[A][1]._spread=se,F}function o(k,A){return F;function F(N){a.call(this,k(N),N),A&&A.call(this,N)}}function l(){this.stack.push({type:"fragment",children:[]})}function a(k,A,F){this.stack[this.stack.length-1].children.push(k),this.stack.push(k),this.tokenStack.push([A,F||void 0]),k.position={start:ke(A.start),end:void 0}}function u(k){return A;function A(F){k&&k.call(this,F),s.call(this,F)}}function s(k,A){const F=this.stack.pop(),N=this.tokenStack.pop();if(N)N[0].type!==k.type&&(A?A.call(this,k,N[0]):(N[1]||Dt).call(this,k,N[0]));else throw new Error("Cannot close `"+k.type+"` ("+qe({start:k.start,end:k.end})+"): it’s not open");F.position.end=ke(k.end)}function f(){return Yn(this.stack.pop())}function c(){this.data.expectingFirstListItemValue=!0}function p(k){if(this.data.expectingFirstListItemValue){const A=this.stack[this.stack.length-2];A.start=Number.parseInt(this.sliceSerialize(k),10),this.data.expectingFirstListItemValue=void 0}}function h(){const k=this.resume(),A=this.stack[this.stack.length-1];A.lang=k}function d(){const k=this.resume(),A=this.stack[this.stack.length-1];A.meta=k}function w(){this.data.flowCodeInside||(this.buffer(),this.data.flowCodeInside=!0)}function S(){const k=this.resume(),A=this.stack[this.stack.length-1];A.value=k.replace(/^(\r?\n|\r)|(\r?\n|\r)$/g,""),this.data.flowCodeInside=void 0}function y(){const k=this.resume(),A=this.stack[this.stack.length-1];A.value=k.replace(/(\r?\n|\r)$/g,"")}function I(k){const A=this.resume(),F=this.stack[this.stack.length-1];F.label=A,F.identifier=ce(this.sliceSerialize(k)).toLowerCase()}function C(){const k=this.resume(),A=this.stack[this.stack.length-1];A.title=k}function R(){const k=this.resume(),A=this.stack[this.stack.length-1];A.url=k}function _(k){const A=this.stack[this.stack.length-1];if(!A.depth){const F=this.sliceSerialize(k).length;A.depth=F}}function b(){this.data.setextHeadingSlurpLineEnding=!0}function M(k){const A=this.stack[this.stack.length-1];A.depth=this.sliceSerialize(k).codePointAt(0)===61?1:2}function H(){this.data.setextHeadingSlurpLineEnding=void 0}function j(k){const F=this.stack[this.stack.length-1].children;let N=F[F.length-1];(!N||N.type!=="text")&&(N=hi(),N.position={start:ke(k.start),end:void 0},F.push(N)),this.stack.push(N)}function x(k){const A=this.stack.pop();A.value+=this.sliceSerialize(k),A.position.end=ke(k.end)}function P(k){const A=this.stack[this.stack.length-1];if(this.data.atHardBreak){const F=A.children[A.children.length-1];F.position.end=ke(k.end),this.data.atHardBreak=void 0;return}!this.data.setextHeadingSlurpLineEnding&&t.canContainEols.includes(A.type)&&(j.call(this,k),x.call(this,k))}function v(){this.data.atHardBreak=!0}function U(){const k=this.resume(),A=this.stack[this.stack.length-1];A.value=k}function D(){const k=this.resume(),A=this.stack[this.stack.length-1];A.value=k}function T(){const k=this.resume(),A=this.stack[this.stack.length-1];A.value=k}function q(){const k=this.stack[this.stack.length-1];if(this.data.inReference){const A=this.data.referenceType||"shortcut";k.type+="Reference",k.referenceType=A,delete k.url,delete k.title}else delete k.identifier,delete k.label;this.data.referenceType=void 0}function Q(){const k=this.stack[this.stack.length-1];if(this.data.inReference){const A=this.data.referenceType||"shortcut";k.type+="Reference",k.referenceType=A,delete k.url,delete k.title}else delete k.identifier,delete k.label;this.data.referenceType=void 0}function oe(k){const A=this.sliceSerialize(k),F=this.stack[this.stack.length-2];F.label=na(A),F.identifier=ce(A).toLowerCase()}function pe(){const k=this.stack[this.stack.length-1],A=this.resume(),F=this.stack[this.stack.length-1];if(this.data.inReference=!0,F.type==="link"){const N=k.children;F.children=N}else F.alt=A}function m(){const k=this.resume(),A=this.stack[this.stack.length-1];A.url=k}function ae(){const k=this.resume(),A=this.stack[this.stack.length-1];A.title=k}function me(){this.data.inReference=void 0}function g(){this.data.referenceType="collapsed"}function ue(k){const A=this.resume(),F=this.stack[this.stack.length-1];F.label=A,F.identifier=ce(this.sliceSerialize(k)).toLowerCase(),this.data.referenceType="full"}function we(k){this.data.characterReferenceType=k.type}function G(k){const A=this.sliceSerialize(k),F=this.data.characterReferenceType;let N;F?(N=dr(A,F==="characterReferenceMarkerNumeric"?10:16),this.data.characterReferenceType=void 0):N=Xn(A);const V=this.stack[this.stack.length-1];V.value+=N}function Oe(k){const A=this.stack.pop();A.position.end=ke(k.end)}function xe(k){x.call(this,k);const A=this.stack[this.stack.length-1];A.url=this.sliceSerialize(k)}function Te(k){x.call(this,k);const A=this.stack[this.stack.length-1];A.url="mailto:"+this.sliceSerialize(k)}function Pe(){return{type:"blockquote",children:[]}}function Ke(){return{type:"code",lang:null,meta:null,value:""}}function li(){return{type:"inlineCode",value:""}}function oi(){return{type:"definition",identifier:"",label:null,title:null,url:""}}function ai(){return{type:"emphasis",children:[]}}function lt(){return{type:"heading",depth:0,children:[]}}function ot(){return{type:"break"}}function at(){return{type:"html",value:""}}function ui(){return{type:"image",title:null,url:"",alt:null}}function ut(){return{type:"link",title:null,url:"",children:[]}}function st(k){return{type:"list",ordered:k.type==="listOrdered",start:null,spread:k._spread,children:[]}}function si(k){return{type:"listItem",spread:k._spread,checked:null,children:[]}}function ci(){return{type:"paragraph",children:[]}}function fi(){return{type:"strong",children:[]}}function hi(){return{type:"text",value:""}}function pi(){return{type:"thematicBreak"}}}function ke(e){return{line:e.line,column:e.column,offset:e.offset}}function Tr(e,t){let n=-1;for(;++n<t.length;){const r=t[n];Array.isArray(r)?Tr(e,r):la(e,r)}}function la(e,t){let n;for(n in t)if(Ar.call(t,n))switch(n){case"canContainEols":{const r=t[n];r&&e[n].push(...r);break}case"transforms":{const r=t[n];r&&e[n].push(...r);break}case"enter":case"exit":{const r=t[n];r&&Object.assign(e[n],r);break}}}function Dt(e,t){throw e?new Error("Cannot close `"+e.type+"` ("+qe({start:e.start,end:e.end})+"): a different token (`"+t.type+"`, "+qe({start:t.start,end:t.end})+") is open"):new Error("Cannot close document, a token (`"+t.type+"`, "+qe({start:t.start,end:t.end})+") is still open")}function oa(e){const t=this;t.parser=n;function n(r){return ra(r,{...t.data("settings"),...e,extensions:t.data("micromarkExtensions")||[],mdastExtensions:t.data("fromMarkdownExtensions")||[]})}}function aa(e,t){const n={type:"element",tagName:"blockquote",properties:{},children:e.wrap(e.all(t),!0)};return e.patch(t,n),e.applyData(t,n)}function ua(e,t){const n={type:"element",tagName:"br",properties:{},children:[]};return e.patch(t,n),[e.applyData(t,n),{type:"text",value:`
@@ -1 +1 @@
1
- import{j as t,L as s}from"./vendor-react-DvXH3HTt.js";import{u as r,B as o}from"./index-DQ2cHvK5.js";import"./vendor-radix-Bip5Pqfe.js";import"./vendor-charts-BiMa1Zmo.js";function l(){const{t:e,prefix:n}=r();return t.jsx("main",{className:"grid min-h-screen place-items-center px-6 text-center",children:t.jsxs("div",{children:[t.jsx("div",{className:"text-7xl font-extrabold text-gradient",children:"404"}),t.jsx("h1",{className:"mt-4 text-2xl font-bold",children:e.notFound.title}),t.jsx("p",{className:"mt-2 text-muted-foreground",children:e.notFound.desc}),t.jsx(o,{asChild:!0,className:"mt-6",children:t.jsx(s,{to:n("/"),children:e.notFound.back})})]})})}export{l as default};
1
+ import{j as t,L as s}from"./vendor-react-DvXH3HTt.js";import{u as r,B as o}from"./index-wcThbHRx.js";import"./vendor-radix-Bip5Pqfe.js";import"./vendor-charts-BiMa1Zmo.js";function l(){const{t:e,prefix:n}=r();return t.jsx("main",{className:"grid min-h-screen place-items-center px-6 text-center",children:t.jsxs("div",{children:[t.jsx("div",{className:"text-7xl font-extrabold text-gradient",children:"404"}),t.jsx("h1",{className:"mt-4 text-2xl font-bold",children:e.notFound.title}),t.jsx("p",{className:"mt-2 text-muted-foreground",children:e.notFound.desc}),t.jsx(o,{asChild:!0,className:"mt-6",children:t.jsx(s,{to:n("/"),children:e.notFound.back})})]})})}export{l as default};
@@ -1 +1 @@
1
- import{j as e,L as n}from"./vendor-react-DvXH3HTt.js";import{u as d,S as t,G as x}from"./index-DQ2cHvK5.js";function m(){const{t:o,prefix:l}=d(),r=o.footer,i=[{title:r.product,links:[{label:r.links.features,href:l("/#features"),external:!1},{label:r.links.sponsors,href:l("/sponsors"),external:!1},{label:r.links.docs,href:l("/docs"),external:!1},{label:r.links.tutorials,href:l("/tutorials"),external:!1}]},{title:r.resources,links:[{label:r.links.github,href:t.repo,external:!0},{label:r.links.roles,href:t.rolesRepo,external:!0},{label:r.links.changelog,href:l("/changelog"),external:!1},{label:r.links.license,href:t.license,external:!0}]},{title:r.community,links:[{label:r.links.issues,href:t.issues,external:!0},{label:"npm",href:t.npm,external:!0}]}];return e.jsxs("footer",{className:"border-t border-border/60 bg-muted/30",children:[e.jsxs("div",{className:"container-page grid gap-10 py-14 md:grid-cols-[1.4fr_1fr_1fr_1fr]",children:[e.jsxs("div",{children:[e.jsxs(n,{to:l("/"),className:"flex items-center gap-2.5 font-bold",children:[e.jsx("span",{className:"grid h-8 w-8 place-items-center rounded-lg bg-primary text-primary-foreground",children:"ao"}),"Agency Orchestrator"]}),e.jsx("p",{className:"mt-3 max-w-xs text-sm text-muted-foreground",children:r.tagline}),e.jsxs("p",{className:"mt-2 max-w-xs text-sm text-muted-foreground",children:[r.supportLine," ",e.jsx("a",{href:t.rolesRepo,target:"_blank",rel:"noreferrer",className:"font-medium text-foreground underline-offset-2 hover:underline",children:"agency-agents ↗"})]}),e.jsxs("a",{href:t.repo,target:"_blank",rel:"noreferrer",className:"mt-4 inline-flex items-center gap-2 rounded-lg border border-border/70 px-3 py-2 text-sm text-muted-foreground hover:text-foreground",children:[e.jsx(x,{className:"size-4"}),"jnMetaCode/agency-orchestrator"]})]}),i.map(a=>e.jsxs("div",{children:[e.jsx("h4",{className:"text-sm font-semibold",children:a.title}),e.jsx("ul",{className:"mt-3 space-y-2.5 text-sm",children:a.links.map(s=>s.external?e.jsx("li",{children:e.jsx("a",{href:s.href,target:"_blank",rel:"noreferrer",className:"text-muted-foreground hover:text-foreground",children:s.label})},s.label):s.href.includes("#")?e.jsx("li",{children:e.jsx("a",{href:s.href,className:"text-muted-foreground hover:text-foreground",children:s.label})},s.label):e.jsx("li",{children:e.jsx(n,{to:s.href,className:"text-muted-foreground hover:text-foreground",children:s.label})},s.label))})]},a.title))]}),e.jsx("div",{className:"border-t border-border/60",children:e.jsxs("div",{className:"container-page flex flex-col items-center justify-between gap-2 py-5 text-xs text-muted-foreground sm:flex-row",children:[e.jsxs("span",{children:["© ",t.name]}),e.jsx("span",{children:r.copyright})]})})]})}export{m as S};
1
+ import{j as e,L as n}from"./vendor-react-DvXH3HTt.js";import{u as d,S as t,G as x}from"./index-wcThbHRx.js";function m(){const{t:o,prefix:l}=d(),r=o.footer,i=[{title:r.product,links:[{label:r.links.features,href:l("/#features"),external:!1},{label:r.links.sponsors,href:l("/sponsors"),external:!1},{label:r.links.docs,href:l("/docs"),external:!1},{label:r.links.tutorials,href:l("/tutorials"),external:!1}]},{title:r.resources,links:[{label:r.links.github,href:t.repo,external:!0},{label:r.links.roles,href:t.rolesRepo,external:!0},{label:r.links.changelog,href:l("/changelog"),external:!1},{label:r.links.license,href:t.license,external:!0}]},{title:r.community,links:[{label:r.links.issues,href:t.issues,external:!0},{label:"npm",href:t.npm,external:!0}]}];return e.jsxs("footer",{className:"border-t border-border/60 bg-muted/30",children:[e.jsxs("div",{className:"container-page grid gap-10 py-14 md:grid-cols-[1.4fr_1fr_1fr_1fr]",children:[e.jsxs("div",{children:[e.jsxs(n,{to:l("/"),className:"flex items-center gap-2.5 font-bold",children:[e.jsx("span",{className:"grid h-8 w-8 place-items-center rounded-lg bg-primary text-primary-foreground",children:"ao"}),"Agency Orchestrator"]}),e.jsx("p",{className:"mt-3 max-w-xs text-sm text-muted-foreground",children:r.tagline}),e.jsxs("p",{className:"mt-2 max-w-xs text-sm text-muted-foreground",children:[r.supportLine," ",e.jsx("a",{href:t.rolesRepo,target:"_blank",rel:"noreferrer",className:"font-medium text-foreground underline-offset-2 hover:underline",children:"agency-agents ↗"})]}),e.jsxs("a",{href:t.repo,target:"_blank",rel:"noreferrer",className:"mt-4 inline-flex items-center gap-2 rounded-lg border border-border/70 px-3 py-2 text-sm text-muted-foreground hover:text-foreground",children:[e.jsx(x,{className:"size-4"}),"jnMetaCode/agency-orchestrator"]})]}),i.map(a=>e.jsxs("div",{children:[e.jsx("h4",{className:"text-sm font-semibold",children:a.title}),e.jsx("ul",{className:"mt-3 space-y-2.5 text-sm",children:a.links.map(s=>s.external?e.jsx("li",{children:e.jsx("a",{href:s.href,target:"_blank",rel:"noreferrer",className:"text-muted-foreground hover:text-foreground",children:s.label})},s.label):s.href.includes("#")?e.jsx("li",{children:e.jsx("a",{href:s.href,className:"text-muted-foreground hover:text-foreground",children:s.label})},s.label):e.jsx("li",{children:e.jsx(n,{to:s.href,className:"text-muted-foreground hover:text-foreground",children:s.label})},s.label))})]},a.title))]}),e.jsx("div",{className:"border-t border-border/60",children:e.jsxs("div",{className:"container-page flex flex-col items-center justify-between gap-2 py-5 text-xs text-muted-foreground sm:flex-row",children:[e.jsxs("span",{children:["© ",t.name]}),e.jsx("span",{children:r.copyright})]})})]})}export{m as S};
@@ -1,4 +1,4 @@
1
- import{j as e,r as u}from"./vendor-react-DvXH3HTt.js";import{S as w}from"./SiteFooter-CLIQXwew.js";import{c as i,u as d,B as f,S as c,a as o}from"./index-DQ2cHvK5.js";import{S as m,C as z}from"./sparkles-P5rh_tw-.js";import{H as p,s as b,a as C}from"./sponsors-B9KhG2hW.js";import{M as S}from"./mail-M21ADvXM.js";import{R as M,I as T,H as A,T as q,C as B}from"./vendor-radix-Bip5Pqfe.js";import{C as E}from"./copy-button-Dr9lRjiI.js";import{A as R}from"./arrow-up-right-Cn4ATaZ1.js";import"./vendor-charts-BiMa1Zmo.js";import"./copy-CQZ5TzmV.js";/**
1
+ import{j as e,r as u}from"./vendor-react-DvXH3HTt.js";import{S as w}from"./SiteFooter-Cc_g2meZ.js";import{c as i,u as d,B as f,S as c,a as o}from"./index-wcThbHRx.js";import{S as m,C as z}from"./sparkles-BsDt_wQ_.js";import{H as p,s as b,a as C}from"./sponsors-BgrzMlxi.js";import{M as S}from"./mail-C3bj6Q4N.js";import{R as M,I as T,H as A,T as q,C as B}from"./vendor-radix-Bip5Pqfe.js";import{C as E}from"./copy-button-CKwo9hmn.js";import{A as R}from"./arrow-up-right-CUikZoTe.js";import"./vendor-charts-BiMa1Zmo.js";import"./copy-Dg7XjSsj.js";/**
2
2
  * @license lucide-react v0.469.0 - ISC
3
3
  *
4
4
  * This source code is licensed under the ISC license.
@@ -1,4 +1,4 @@
1
- import{r as d,j as e}from"./vendor-react-DvXH3HTt.js";import{c as S,u as $,a as T,B as z,X as H,S as Fe}from"./index-DQ2cHvK5.js";import{S as Ke}from"./SiteFooter-CLIQXwew.js";import{T as ye,B as ve,U as Ne,K as pe}from"./users-D3-N7gU0.js";import{C as F,a as ke}from"./copy-CQZ5TzmV.js";import{e as Ue}from"./experts-Bv953aOf.js";import{C as Z,u as Be}from"./copy-button-Dr9lRjiI.js";import{S as we,C as Ce}from"./sparkles-P5rh_tw-.js";import{M as re}from"./Markdown-DCC1nLQ-.js";import{S as ze}from"./search-BRTjF9qD.js";import{A as He}from"./arrow-left-ENwUQ2i7.js";import{C as Ve}from"./clock-BiHXhE37.js";import{R as We,A as _e,C as Ge,X as Ye,Y as qe,T as Je,a as fe}from"./vendor-charts-BiMa1Zmo.js";import"./vendor-radix-Bip5Pqfe.js";/**
1
+ import{r as d,j as e}from"./vendor-react-DvXH3HTt.js";import{c as S,u as $,a as T,B as z,X as H,S as Fe}from"./index-wcThbHRx.js";import{S as Ke}from"./SiteFooter-Cc_g2meZ.js";import{T as ye,B as ve,U as Ne,K as pe}from"./users-Bt55vFuz.js";import{C as F,a as ke}from"./copy-Dg7XjSsj.js";import{e as Ue}from"./experts-Bv953aOf.js";import{C as Z,u as Be}from"./copy-button-CKwo9hmn.js";import{S as we,C as Ce}from"./sparkles-BsDt_wQ_.js";import{M as re}from"./Markdown-DaWbDBGS.js";import{S as ze}from"./search-DYZkqer3.js";import{A as He}from"./arrow-left-By5frfaF.js";import{C as Ve}from"./clock-M7oQfJso.js";import{R as We,A as _e,C as Ge,X as Ye,Y as qe,T as Je,a as fe}from"./vendor-charts-BiMa1Zmo.js";import"./vendor-radix-Bip5Pqfe.js";/**
2
2
  * @license lucide-react v0.469.0 - ISC
3
3
  *
4
4
  * This source code is licensed under the ISC license.
@@ -1 +1 @@
1
- import{f as l,j as e,h as m,L as n}from"./vendor-react-DvXH3HTt.js";import{S as d}from"./SiteFooter-CLIQXwew.js";import{B as c}from"./badge-B-L-y5fx.js";import{C as x}from"./copy-button-Dr9lRjiI.js";import{M as u}from"./Markdown-DCC1nLQ-.js";import{u as p}from"./index-DQ2cHvK5.js";import{c as f}from"./tutorials-CqF_e3yL.js";import{A as h}from"./arrow-left-ENwUQ2i7.js";import{C as g}from"./clock-BiHXhE37.js";import"./copy-CQZ5TzmV.js";import"./vendor-radix-Bip5Pqfe.js";import"./vendor-charts-BiMa1Zmo.js";function j({code:t}){return e.jsxs("div",{className:"relative mt-4 overflow-hidden rounded-xl border border-border/70 bg-[#0b0e16]",children:[e.jsx("div",{className:"absolute right-2 top-2",children:e.jsx(x,{value:t,className:"border-white/10 bg-white/5 text-white/60"})}),e.jsx("pre",{className:"overflow-x-auto p-4 font-mono text-[13px] leading-relaxed text-white/85",children:e.jsx("code",{children:t})})]})}function F(){const{t,lang:s,prefix:o}=p(),{slug:i}=l(),r=i?f(i):void 0;return r?e.jsxs(e.Fragment,{children:[e.jsx("main",{className:"pt-24",children:e.jsxs("div",{className:"container-page max-w-3xl pb-20",children:[e.jsxs(n,{to:o("/tutorials"),className:"inline-flex items-center gap-1.5 text-sm font-medium text-muted-foreground hover:text-foreground",children:[e.jsx(h,{className:"size-4"}),t.tutorials.back]}),e.jsxs("div",{className:"mt-6 flex items-center gap-3",children:[e.jsx(c,{className:"border-primary/30 bg-primary/10 text-primary",children:t.tutorials.categories[r.category]}),e.jsxs("span",{className:"inline-flex items-center gap-1 text-xs text-muted-foreground",children:[e.jsx(g,{className:"size-3.5"}),r.min," ",t.tutorials.minRead]})]}),e.jsx("h1",{className:"mt-3 text-3xl font-extrabold tracking-tight sm:text-4xl",children:r.title[s]}),e.jsx("p",{className:"mt-3 leading-relaxed text-muted-foreground",children:r.summary[s]}),e.jsx("div",{className:"mt-10 space-y-10",children:r.sections.map(a=>e.jsxs("section",{children:[e.jsx("h2",{className:"text-xl font-bold",children:a.heading[s]}),e.jsx(u,{className:"mt-2 text-base text-muted-foreground",children:a.body[s]}),a.code&&e.jsx(j,{code:a.code})]},a.heading[s]))})]})}),e.jsx(d,{})]}):e.jsx(m,{to:o("/tutorials"),replace:!0})}export{F as default};
1
+ import{f as l,j as e,h as m,L as n}from"./vendor-react-DvXH3HTt.js";import{S as d}from"./SiteFooter-Cc_g2meZ.js";import{B as c}from"./badge-yz2euTrj.js";import{C as x}from"./copy-button-CKwo9hmn.js";import{M as u}from"./Markdown-DaWbDBGS.js";import{u as p}from"./index-wcThbHRx.js";import{c as f}from"./tutorials-CqF_e3yL.js";import{A as h}from"./arrow-left-By5frfaF.js";import{C as g}from"./clock-M7oQfJso.js";import"./copy-Dg7XjSsj.js";import"./vendor-radix-Bip5Pqfe.js";import"./vendor-charts-BiMa1Zmo.js";function j({code:t}){return e.jsxs("div",{className:"relative mt-4 overflow-hidden rounded-xl border border-border/70 bg-[#0b0e16]",children:[e.jsx("div",{className:"absolute right-2 top-2",children:e.jsx(x,{value:t,className:"border-white/10 bg-white/5 text-white/60"})}),e.jsx("pre",{className:"overflow-x-auto p-4 font-mono text-[13px] leading-relaxed text-white/85",children:e.jsx("code",{children:t})})]})}function F(){const{t,lang:s,prefix:o}=p(),{slug:i}=l(),r=i?f(i):void 0;return r?e.jsxs(e.Fragment,{children:[e.jsx("main",{className:"pt-24",children:e.jsxs("div",{className:"container-page max-w-3xl pb-20",children:[e.jsxs(n,{to:o("/tutorials"),className:"inline-flex items-center gap-1.5 text-sm font-medium text-muted-foreground hover:text-foreground",children:[e.jsx(h,{className:"size-4"}),t.tutorials.back]}),e.jsxs("div",{className:"mt-6 flex items-center gap-3",children:[e.jsx(c,{className:"border-primary/30 bg-primary/10 text-primary",children:t.tutorials.categories[r.category]}),e.jsxs("span",{className:"inline-flex items-center gap-1 text-xs text-muted-foreground",children:[e.jsx(g,{className:"size-3.5"}),r.min," ",t.tutorials.minRead]})]}),e.jsx("h1",{className:"mt-3 text-3xl font-extrabold tracking-tight sm:text-4xl",children:r.title[s]}),e.jsx("p",{className:"mt-3 leading-relaxed text-muted-foreground",children:r.summary[s]}),e.jsx("div",{className:"mt-10 space-y-10",children:r.sections.map(a=>e.jsxs("section",{children:[e.jsx("h2",{className:"text-xl font-bold",children:a.heading[s]}),e.jsx(u,{className:"mt-2 text-base text-muted-foreground",children:a.body[s]}),a.code&&e.jsx(j,{code:a.code})]},a.heading[s]))})]})}),e.jsx(d,{})]}):e.jsx(m,{to:o("/tutorials"),replace:!0})}export{F as default};
@@ -1,4 +1,4 @@
1
- import{r as n,j as e,L as j}from"./vendor-react-DvXH3HTt.js";import{S as b}from"./SiteFooter-CLIQXwew.js";import{c as N,u as y,B as v,S as k,a as p}from"./index-DQ2cHvK5.js";import{t as w,a as C,b as S}from"./tutorials-CqF_e3yL.js";import{M as z}from"./mail-M21ADvXM.js";import{A as E}from"./arrow-up-right-Cn4ATaZ1.js";import{C as L}from"./clock-BiHXhE37.js";import"./vendor-radix-Bip5Pqfe.js";import"./vendor-charts-BiMa1Zmo.js";/**
1
+ import{r as n,j as e,L as j}from"./vendor-react-DvXH3HTt.js";import{S as b}from"./SiteFooter-Cc_g2meZ.js";import{c as N,u as y,B as v,S as k,a as p}from"./index-wcThbHRx.js";import{t as w,a as C,b as S}from"./tutorials-CqF_e3yL.js";import{M as z}from"./mail-C3bj6Q4N.js";import{A as E}from"./arrow-up-right-CUikZoTe.js";import{C as L}from"./clock-M7oQfJso.js";import"./vendor-radix-Bip5Pqfe.js";import"./vendor-charts-BiMa1Zmo.js";/**
2
2
  * @license lucide-react v0.469.0 - ISC
3
3
  *
4
4
  * This source code is licensed under the ISC license.
@@ -1,4 +1,4 @@
1
- import{c as e}from"./index-DQ2cHvK5.js";/**
1
+ import{c as e}from"./index-wcThbHRx.js";/**
2
2
  * @license lucide-react v0.469.0 - ISC
3
3
  *
4
4
  * This source code is licensed under the ISC license.
@@ -1,4 +1,4 @@
1
- import{c as t}from"./index-DQ2cHvK5.js";/**
1
+ import{c as t}from"./index-wcThbHRx.js";/**
2
2
  * @license lucide-react v0.469.0 - ISC
3
3
  *
4
4
  * This source code is licensed under the ISC license.
@@ -1 +1 @@
1
- import{j as t}from"./vendor-react-DvXH3HTt.js";import{a as o}from"./index-DQ2cHvK5.js";function s({className:e,...r}){return t.jsx("span",{className:o("inline-flex items-center gap-1.5 rounded-full border border-border/70 bg-muted/60 px-3 py-1 text-xs font-medium text-muted-foreground",e),...r})}export{s as B};
1
+ import{j as t}from"./vendor-react-DvXH3HTt.js";import{a as o}from"./index-wcThbHRx.js";function s({className:e,...r}){return t.jsx("span",{className:o("inline-flex items-center gap-1.5 rounded-full border border-border/70 bg-muted/60 px-3 py-1 text-xs font-medium text-muted-foreground",e),...r})}export{s as B};
@@ -1,4 +1,4 @@
1
- import{c}from"./index-DQ2cHvK5.js";/**
1
+ import{c}from"./index-wcThbHRx.js";/**
2
2
  * @license lucide-react v0.469.0 - ISC
3
3
  *
4
4
  * This source code is licensed under the ISC license.
@@ -1,4 +1,4 @@
1
- import{c}from"./index-DQ2cHvK5.js";/**
1
+ import{c}from"./index-wcThbHRx.js";/**
2
2
  * @license lucide-react v0.469.0 - ISC
3
3
  *
4
4
  * This source code is licensed under the ISC license.
@@ -1 +1 @@
1
- import{j as n,r as i}from"./vendor-react-DvXH3HTt.js";import{a as c}from"./index-DQ2cHvK5.js";import{C as u,a as d}from"./copy-CQZ5TzmV.js";function p(o=1800){const[e,r]=i.useState(!1);i.useEffect(()=>{if(!e)return;const t=window.setTimeout(()=>r(!1),o);return()=>window.clearTimeout(t)},[e,o]);const a=i.useCallback(t=>{var s;(s=navigator.clipboard)==null||s.writeText(t).then(()=>r(!0)).catch(()=>{})},[]);return{copied:e,copy:a}}function f({value:o,label:e,copiedLabel:r,className:a}){const{copied:t,copy:s}=p();return n.jsxs("button",{type:"button",onClick:()=>s(o),className:c("inline-flex items-center gap-1.5 rounded-lg border border-border/70 bg-muted/50 px-2.5 py-1.5 text-xs font-medium text-muted-foreground transition-colors hover:text-foreground",a),children:[t?n.jsx(u,{className:"size-3.5 text-emerald-500"}):n.jsx(d,{className:"size-3.5"}),e!=null&&n.jsx("span",{children:t?r??e:e})]})}export{f as C,p as u};
1
+ import{j as n,r as i}from"./vendor-react-DvXH3HTt.js";import{a as c}from"./index-wcThbHRx.js";import{C as u,a as d}from"./copy-Dg7XjSsj.js";function p(o=1800){const[e,r]=i.useState(!1);i.useEffect(()=>{if(!e)return;const t=window.setTimeout(()=>r(!1),o);return()=>window.clearTimeout(t)},[e,o]);const a=i.useCallback(t=>{var s;(s=navigator.clipboard)==null||s.writeText(t).then(()=>r(!0)).catch(()=>{})},[]);return{copied:e,copy:a}}function f({value:o,label:e,copiedLabel:r,className:a}){const{copied:t,copy:s}=p();return n.jsxs("button",{type:"button",onClick:()=>s(o),className:c("inline-flex items-center gap-1.5 rounded-lg border border-border/70 bg-muted/50 px-2.5 py-1.5 text-xs font-medium text-muted-foreground transition-colors hover:text-foreground",a),children:[t?n.jsx(u,{className:"size-3.5 text-emerald-500"}):n.jsx(d,{className:"size-3.5"}),e!=null&&n.jsx("span",{children:t?r??e:e})]})}export{f as C,p as u};
@@ -0,0 +1 @@
1
+ *,:before,:after{--tw-border-spacing-x: 0;--tw-border-spacing-y: 0;--tw-translate-x: 0;--tw-translate-y: 0;--tw-rotate: 0;--tw-skew-x: 0;--tw-skew-y: 0;--tw-scale-x: 1;--tw-scale-y: 1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness: proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width: 0px;--tw-ring-offset-color: #fff;--tw-ring-color: rgb(59 130 246 / .5);--tw-ring-offset-shadow: 0 0 #0000;--tw-ring-shadow: 0 0 #0000;--tw-shadow: 0 0 #0000;--tw-shadow-colored: 0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: ;--tw-contain-size: ;--tw-contain-layout: ;--tw-contain-paint: ;--tw-contain-style: }::backdrop{--tw-border-spacing-x: 0;--tw-border-spacing-y: 0;--tw-translate-x: 0;--tw-translate-y: 0;--tw-rotate: 0;--tw-skew-x: 0;--tw-skew-y: 0;--tw-scale-x: 1;--tw-scale-y: 1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness: proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width: 0px;--tw-ring-offset-color: #fff;--tw-ring-color: rgb(59 130 246 / .5);--tw-ring-offset-shadow: 0 0 #0000;--tw-ring-shadow: 0 0 #0000;--tw-shadow: 0 0 #0000;--tw-shadow-colored: 0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: ;--tw-contain-size: ;--tw-contain-layout: ;--tw-contain-paint: ;--tw-contain-style: }*,:before,:after{box-sizing:border-box;border-width:0;border-style:solid;border-color:#e5e7eb}:before,:after{--tw-content: ""}html,:host{line-height:1.5;-webkit-text-size-adjust:100%;-moz-tab-size:4;-o-tab-size:4;tab-size:4;font-family:Inter,SF Pro Display,-apple-system,BlinkMacSystemFont,PingFang SC,Microsoft YaHei,sans-serif;font-feature-settings:normal;font-variation-settings:normal;-webkit-tap-highlight-color:transparent}body{margin:0;line-height:inherit}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-family:Fira Code,JetBrains Mono,SF Mono,monospace;font-feature-settings:normal;font-variation-settings:normal;font-size:1em}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}button,input,optgroup,select,textarea{font-family:inherit;font-feature-settings:inherit;font-variation-settings:inherit;font-size:100%;font-weight:inherit;line-height:inherit;letter-spacing:inherit;color:inherit;margin:0;padding:0}button,select{text-transform:none}button,input:where([type=button]),input:where([type=reset]),input:where([type=submit]){-webkit-appearance:button;background-color:transparent;background-image:none}:-moz-focusring{outline:auto}:-moz-ui-invalid{box-shadow:none}progress{vertical-align:baseline}::-webkit-inner-spin-button,::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}summary{display:list-item}blockquote,dl,dd,h1,h2,h3,h4,h5,h6,hr,figure,p,pre{margin:0}fieldset{margin:0;padding:0}legend{padding:0}ol,ul,menu{list-style:none;margin:0;padding:0}dialog{padding:0}textarea{resize:vertical}input::-moz-placeholder,textarea::-moz-placeholder{opacity:1;color:#9ca3af}input::placeholder,textarea::placeholder{opacity:1;color:#9ca3af}button,[role=button]{cursor:pointer}:disabled{cursor:default}img,svg,video,canvas,audio,iframe,embed,object{display:block;vertical-align:middle}img,video{max-width:100%;height:auto}[hidden]:where(:not([hidden=until-found])){display:none}:root{--background: 0 0% 100%;--foreground: 222 28% 12%;--card: 0 0% 100%;--card-foreground: 222 28% 12%;--primary: 256 84% 60%;--primary-foreground: 0 0% 100%;--secondary: 256 30% 96%;--secondary-foreground: 256 40% 30%;--muted: 220 16% 96%;--muted-foreground: 220 10% 44%;--accent: 256 84% 60%;--accent-foreground: 0 0% 100%;--gold: 38 92% 50%;--gold-foreground: 30 40% 14%;--border: 220 16% 90%;--input: 220 16% 90%;--ring: 256 84% 60%;--radius: .75rem}.dark{--background: 222 30% 7%;--foreground: 220 20% 92%;--card: 222 26% 10%;--card-foreground: 220 20% 92%;--primary: 256 90% 70%;--primary-foreground: 222 30% 9%;--secondary: 250 24% 16%;--secondary-foreground: 250 30% 86%;--muted: 222 20% 15%;--muted-foreground: 220 12% 62%;--accent: 256 90% 70%;--accent-foreground: 222 30% 9%;--gold: 40 96% 58%;--gold-foreground: 30 40% 12%;--border: 222 18% 20%;--input: 222 18% 20%;--ring: 256 90% 70%}*{border-color:hsl(var(--border))}html{scroll-behavior:smooth}body{background-color:hsl(var(--background));font-family:Inter,SF Pro Display,-apple-system,BlinkMacSystemFont,PingFang SC,Microsoft YaHei,sans-serif;color:hsl(var(--foreground));-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-feature-settings:"cv02","cv03","cv04","cv11"}::-moz-selection{background-color:hsl(var(--primary) / .25)}::selection{background-color:hsl(var(--primary) / .25)}.pointer-events-none{pointer-events:none}.fixed{position:fixed}.absolute{position:absolute}.relative{position:relative}.sticky{position:sticky}.inset-0{top:0;right:0;bottom:0;left:0}.inset-x-0{left:0;right:0}.-right-20{right:-5rem}.-top-20{top:-5rem}.bottom-0{bottom:0}.bottom-4{bottom:1rem}.left-1\/2{left:50%}.left-3{left:.75rem}.right-2{right:.5rem}.right-3{right:.75rem}.right-4{right:1rem}.top-0{top:0}.top-1\/2{top:50%}.top-16{top:4rem}.top-2{top:.5rem}.top-3{top:.75rem}.top-4{top:1rem}.-z-10{z-index:-10}.z-30{z-index:30}.z-40{z-index:40}.z-50{z-index:50}.z-\[55\]{z-index:55}.z-\[58\]{z-index:58}.z-\[60\]{z-index:60}.m-4{margin:1rem}.mx-auto{margin-left:auto;margin-right:auto}.my-2{margin-top:.5rem;margin-bottom:.5rem}.my-3{margin-top:.75rem;margin-bottom:.75rem}.-ml-px{margin-left:-1px}.mb-1{margin-bottom:.25rem}.mb-1\.5{margin-bottom:.375rem}.mb-2{margin-bottom:.5rem}.mb-2\.5{margin-bottom:.625rem}.mb-3{margin-bottom:.75rem}.mb-4{margin-bottom:1rem}.mb-5{margin-bottom:1.25rem}.mb-6{margin-bottom:1.5rem}.ml-0\.5{margin-left:.125rem}.ml-2{margin-left:.5rem}.ml-3{margin-left:.75rem}.ml-auto{margin-left:auto}.mr-1{margin-right:.25rem}.mt-0\.5{margin-top:.125rem}.mt-1{margin-top:.25rem}.mt-1\.5{margin-top:.375rem}.mt-10{margin-top:2.5rem}.mt-12{margin-top:3rem}.mt-16{margin-top:4rem}.mt-2{margin-top:.5rem}.mt-2\.5{margin-top:.625rem}.mt-3{margin-top:.75rem}.mt-4{margin-top:1rem}.mt-5{margin-top:1.25rem}.mt-6{margin-top:1.5rem}.mt-7{margin-top:1.75rem}.mt-8{margin-top:2rem}.line-clamp-2{overflow:hidden;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2}.line-clamp-4{overflow:hidden;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:4}.block{display:block}.inline-block{display:inline-block}.inline{display:inline}.flex{display:flex}.inline-flex{display:inline-flex}.table{display:table}.grid{display:grid}.hidden{display:none}.size-1\.5{width:.375rem;height:.375rem}.size-10{width:2.5rem;height:2.5rem}.size-11{width:2.75rem;height:2.75rem}.size-12{width:3rem;height:3rem}.size-3{width:.75rem;height:.75rem}.size-3\.5{width:.875rem;height:.875rem}.size-4{width:1rem;height:1rem}.size-5{width:1.25rem;height:1.25rem}.size-6{width:1.5rem;height:1.5rem}.size-7{width:1.75rem;height:1.75rem}.size-8{width:2rem;height:2rem}.size-9{width:2.25rem;height:2.25rem}.h-10{height:2.5rem}.h-11{height:2.75rem}.h-12{height:3rem}.h-16{height:4rem}.h-2\.5{height:.625rem}.h-28{height:7rem}.h-3{height:.75rem}.h-4{height:1rem}.h-64{height:16rem}.h-8{height:2rem}.h-80{height:20rem}.h-9{height:2.25rem}.h-\[480px\]{height:480px}.h-full{height:100%}.h-px{height:1px}.max-h-72{max-height:18rem}.max-h-\[460px\]{max-height:460px}.max-h-\[60vh\]{max-height:60vh}.max-h-\[70vh\]{max-height:70vh}.max-h-\[90vh\]{max-height:90vh}.min-h-\[180px\]{min-height:180px}.min-h-\[260px\]{min-height:260px}.min-h-\[60vh\]{min-height:60vh}.min-h-screen{min-height:100vh}.w-1\.5{width:.375rem}.w-10{width:2.5rem}.w-11{width:2.75rem}.w-12{width:3rem}.w-16{width:4rem}.w-28{width:7rem}.w-3{width:.75rem}.w-4{width:1rem}.w-5{width:1.25rem}.w-64{width:16rem}.w-72{width:18rem}.w-8{width:2rem}.w-9{width:2.25rem}.w-\[260px\]{width:260px}.w-\[640px\]{width:640px}.w-\[820px\]{width:820px}.w-full{width:100%}.min-w-0{min-width:0px}.min-w-\[300px\]{min-width:300px}.max-w-2xl{max-width:42rem}.max-w-3xl{max-width:48rem}.max-w-5xl{max-width:64rem}.max-w-\[200px\]{max-width:200px}.max-w-\[380px\]{max-width:380px}.max-w-lg{max-width:32rem}.max-w-md{max-width:28rem}.max-w-xl{max-width:36rem}.max-w-xs{max-width:20rem}.flex-1{flex:1 1 0%}.shrink-0{flex-shrink:0}.border-collapse{border-collapse:collapse}.-translate-x-1\/2{--tw-translate-x: -50%;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.-translate-y-1\/2{--tw-translate-y: -50%;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.translate-y-0\.5{--tw-translate-y: .125rem;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.rotate-180{--tw-rotate: 180deg;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}@keyframes pulse{50%{opacity:.5}}.animate-pulse{animation:pulse 2s cubic-bezier(.4,0,.6,1) infinite}@keyframes spin{to{transform:rotate(360deg)}}.animate-spin{animation:spin 1s linear infinite}.resize-none{resize:none}.scroll-mt-20{scroll-margin-top:5rem}.scroll-mt-24{scroll-margin-top:6rem}.list-decimal{list-style-type:decimal}.list-disc{list-style-type:disc}.grid-cols-1{grid-template-columns:repeat(1,minmax(0,1fr))}.grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.flex-col{flex-direction:column}.flex-wrap{flex-wrap:wrap}.place-items-center{place-items:center}.items-start{align-items:flex-start}.items-end{align-items:flex-end}.items-center{align-items:center}.items-baseline{align-items:baseline}.items-stretch{align-items:stretch}.justify-end{justify-content:flex-end}.justify-center{justify-content:center}.justify-between{justify-content:space-between}.gap-1{gap:.25rem}.gap-1\.5{gap:.375rem}.gap-10{gap:2.5rem}.gap-2{gap:.5rem}.gap-2\.5{gap:.625rem}.gap-3{gap:.75rem}.gap-3\.5{gap:.875rem}.gap-4{gap:1rem}.gap-5{gap:1.25rem}.gap-8{gap:2rem}.gap-x-3{-moz-column-gap:.75rem;column-gap:.75rem}.gap-x-4{-moz-column-gap:1rem;column-gap:1rem}.gap-y-0\.5{row-gap:.125rem}.gap-y-1{row-gap:.25rem}.gap-y-2{row-gap:.5rem}.-space-x-2>:not([hidden])~:not([hidden]){--tw-space-x-reverse: 0;margin-right:calc(-.5rem * var(--tw-space-x-reverse));margin-left:calc(-.5rem * calc(1 - var(--tw-space-x-reverse)))}.space-y-0\.5>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(.125rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.125rem * var(--tw-space-y-reverse))}.space-y-1>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(.25rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.25rem * var(--tw-space-y-reverse))}.space-y-1\.5>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(.375rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.375rem * var(--tw-space-y-reverse))}.space-y-10>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(2.5rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(2.5rem * var(--tw-space-y-reverse))}.space-y-2>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(.5rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.5rem * var(--tw-space-y-reverse))}.space-y-2\.5>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(.625rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.625rem * var(--tw-space-y-reverse))}.space-y-3>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(.75rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.75rem * var(--tw-space-y-reverse))}.space-y-5>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(1.25rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(1.25rem * var(--tw-space-y-reverse))}.space-y-6>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(1.5rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(1.5rem * var(--tw-space-y-reverse))}.overflow-auto{overflow:auto}.overflow-hidden{overflow:hidden}.overflow-x-auto{overflow-x:auto}.truncate{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.whitespace-nowrap{white-space:nowrap}.whitespace-pre-wrap{white-space:pre-wrap}.text-balance{text-wrap:balance}.text-pretty{text-wrap:pretty}.break-words{overflow-wrap:break-word}.rounded{border-radius:.25rem}.rounded-2xl{border-radius:1.5rem}.rounded-3xl{border-radius:2rem}.rounded-full{border-radius:9999px}.rounded-lg{border-radius:var(--radius)}.rounded-md{border-radius:calc(var(--radius) - 2px)}.rounded-none{border-radius:0}.rounded-sm{border-radius:calc(var(--radius) - 4px)}.rounded-xl{border-radius:1rem}.rounded-t-2xl{border-top-left-radius:1.5rem;border-top-right-radius:1.5rem}.border{border-width:1px}.border-0{border-width:0px}.border-b{border-bottom-width:1px}.border-l{border-left-width:1px}.border-l-2{border-left-width:2px}.border-t{border-top-width:1px}.border-dashed{border-style:dashed}.border-amber-500\/40{border-color:#f59e0b66}.border-border{border-color:hsl(var(--border))}.border-border\/60{border-color:hsl(var(--border) / .6)}.border-border\/70{border-color:hsl(var(--border) / .7)}.border-emerald-500\/40{border-color:#10b98166}.border-gold\/30{border-color:hsl(var(--gold) / .3)}.border-gold\/40{border-color:hsl(var(--gold) / .4)}.border-primary{border-color:hsl(var(--primary))}.border-primary\/30{border-color:hsl(var(--primary) / .3)}.border-primary\/40{border-color:hsl(var(--primary) / .4)}.border-primary\/45{border-color:hsl(var(--primary) / .45)}.border-primary\/50{border-color:hsl(var(--primary) / .5)}.border-primary\/60{border-color:hsl(var(--primary) / .6)}.border-red-500\/30{border-color:#ef44444d}.border-red-500\/40{border-color:#ef444466}.border-transparent{border-color:transparent}.border-white\/10{border-color:#ffffff1a}.bg-\[\#0b0e16\]{--tw-bg-opacity: 1;background-color:rgb(11 14 22 / var(--tw-bg-opacity, 1))}.bg-\[\#27c93f\]{--tw-bg-opacity: 1;background-color:rgb(39 201 63 / var(--tw-bg-opacity, 1))}.bg-\[\#ff5f56\]{--tw-bg-opacity: 1;background-color:rgb(255 95 86 / var(--tw-bg-opacity, 1))}.bg-\[\#ffbd2e\]{--tw-bg-opacity: 1;background-color:rgb(255 189 46 / var(--tw-bg-opacity, 1))}.bg-amber-500{--tw-bg-opacity: 1;background-color:rgb(245 158 11 / var(--tw-bg-opacity, 1))}.bg-amber-500\/15{background-color:#f59e0b26}.bg-amber-500\/\[0\.07\]{background-color:#f59e0b12}.bg-amber-500\/\[0\.08\]{background-color:#f59e0b14}.bg-background{background-color:hsl(var(--background))}.bg-background\/60{background-color:hsl(var(--background) / .6)}.bg-background\/70{background-color:hsl(var(--background) / .7)}.bg-background\/80{background-color:hsl(var(--background) / .8)}.bg-background\/85{background-color:hsl(var(--background) / .85)}.bg-background\/95{background-color:hsl(var(--background) / .95)}.bg-black\/50{background-color:#00000080}.bg-black\/55{background-color:#0000008c}.bg-black\/60{background-color:#0009}.bg-border\/70{background-color:hsl(var(--border) / .7)}.bg-card{background-color:hsl(var(--card))}.bg-card\/30{background-color:hsl(var(--card) / .3)}.bg-card\/50{background-color:hsl(var(--card) / .5)}.bg-card\/60{background-color:hsl(var(--card) / .6)}.bg-card\/70{background-color:hsl(var(--card) / .7)}.bg-card\/95{background-color:hsl(var(--card) / .95)}.bg-emerald-500{--tw-bg-opacity: 1;background-color:rgb(16 185 129 / var(--tw-bg-opacity, 1))}.bg-emerald-500\/10{background-color:#10b9811a}.bg-emerald-500\/15{background-color:#10b98126}.bg-gold{background-color:hsl(var(--gold))}.bg-gold\/10{background-color:hsl(var(--gold) / .1)}.bg-gold\/15{background-color:hsl(var(--gold) / .15)}.bg-gold\/\[0\.06\]{background-color:hsl(var(--gold) / .06)}.bg-muted{background-color:hsl(var(--muted))}.bg-muted-foreground{background-color:hsl(var(--muted-foreground))}.bg-muted\/20{background-color:hsl(var(--muted) / .2)}.bg-muted\/30{background-color:hsl(var(--muted) / .3)}.bg-muted\/40{background-color:hsl(var(--muted) / .4)}.bg-muted\/50{background-color:hsl(var(--muted) / .5)}.bg-muted\/60{background-color:hsl(var(--muted) / .6)}.bg-muted\/70{background-color:hsl(var(--muted) / .7)}.bg-primary{background-color:hsl(var(--primary))}.bg-primary\/10{background-color:hsl(var(--primary) / .1)}.bg-primary\/15{background-color:hsl(var(--primary) / .15)}.bg-primary\/20{background-color:hsl(var(--primary) / .2)}.bg-primary\/25{background-color:hsl(var(--primary) / .25)}.bg-primary\/70{background-color:hsl(var(--primary) / .7)}.bg-primary\/\[0\.05\]{background-color:hsl(var(--primary) / .05)}.bg-primary\/\[0\.06\]{background-color:hsl(var(--primary) / .06)}.bg-red-500\/10{background-color:#ef44441a}.bg-red-500\/15{background-color:#ef444426}.bg-secondary{background-color:hsl(var(--secondary))}.bg-transparent{background-color:transparent}.bg-white{--tw-bg-opacity: 1;background-color:rgb(255 255 255 / var(--tw-bg-opacity, 1))}.bg-white\/10{background-color:#ffffff1a}.bg-white\/5{background-color:#ffffff0d}.bg-white\/\[0\.03\]{background-color:#ffffff08}.bg-gradient-to-b{background-image:linear-gradient(to bottom,var(--tw-gradient-stops))}.bg-gradient-to-br{background-image:linear-gradient(to bottom right,var(--tw-gradient-stops))}.bg-gradient-to-r{background-image:linear-gradient(to right,var(--tw-gradient-stops))}.from-amber-200{--tw-gradient-from: #fde68a var(--tw-gradient-from-position);--tw-gradient-to: rgb(253 230 138 / 0) var(--tw-gradient-to-position);--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to)}.from-emerald-200{--tw-gradient-from: #a7f3d0 var(--tw-gradient-from-position);--tw-gradient-to: rgb(167 243 208 / 0) var(--tw-gradient-to-position);--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to)}.from-primary{--tw-gradient-from: hsl(var(--primary)) var(--tw-gradient-from-position);--tw-gradient-to: hsl(var(--primary) / 0) var(--tw-gradient-to-position);--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to)}.from-primary\/15{--tw-gradient-from: hsl(var(--primary) / .15) var(--tw-gradient-from-position);--tw-gradient-to: hsl(var(--primary) / 0) var(--tw-gradient-to-position);--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to)}.from-primary\/\[0\.07\]{--tw-gradient-from: hsl(var(--primary) / .07) var(--tw-gradient-from-position);--tw-gradient-to: hsl(var(--primary) / 0) var(--tw-gradient-to-position);--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to)}.from-rose-200{--tw-gradient-from: #fecdd3 var(--tw-gradient-from-position);--tw-gradient-to: rgb(254 205 211 / 0) var(--tw-gradient-to-position);--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to)}.from-sky-200{--tw-gradient-from: #bae6fd var(--tw-gradient-from-position);--tw-gradient-to: rgb(186 230 253 / 0) var(--tw-gradient-to-position);--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to)}.from-sky-500{--tw-gradient-from: #0ea5e9 var(--tw-gradient-from-position);--tw-gradient-to: rgb(14 165 233 / 0) var(--tw-gradient-to-position);--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to)}.from-transparent{--tw-gradient-from: transparent var(--tw-gradient-from-position);--tw-gradient-to: rgb(0 0 0 / 0) var(--tw-gradient-to-position);--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to)}.from-violet-200{--tw-gradient-from: #ddd6fe var(--tw-gradient-from-position);--tw-gradient-to: rgb(221 214 254 / 0) var(--tw-gradient-to-position);--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to)}.via-card{--tw-gradient-to: hsl(var(--card) / 0) var(--tw-gradient-to-position);--tw-gradient-stops: var(--tw-gradient-from), hsl(var(--card)) var(--tw-gradient-via-position), var(--tw-gradient-to)}.via-primary\/\[0\.04\]{--tw-gradient-to: hsl(var(--primary) / 0) var(--tw-gradient-to-position);--tw-gradient-stops: var(--tw-gradient-from), hsl(var(--primary) / .04) var(--tw-gradient-via-position), var(--tw-gradient-to)}.to-card{--tw-gradient-to: hsl(var(--card)) var(--tw-gradient-to-position)}.to-fuchsia-200{--tw-gradient-to: #f5d0fe var(--tw-gradient-to-position)}.to-fuchsia-500{--tw-gradient-to: #d946ef var(--tw-gradient-to-position)}.to-indigo-200{--tw-gradient-to: #c7d2fe var(--tw-gradient-to-position)}.to-indigo-500{--tw-gradient-to: #6366f1 var(--tw-gradient-to-position)}.to-orange-200{--tw-gradient-to: #fed7aa var(--tw-gradient-to-position)}.to-purple-200{--tw-gradient-to: #e9d5ff var(--tw-gradient-to-position)}.to-teal-200{--tw-gradient-to: #99f6e4 var(--tw-gradient-to-position)}.to-transparent{--tw-gradient-to: transparent var(--tw-gradient-to-position)}.fill-gold\/30{fill:hsl(var(--gold) / .3)}.fill-primary\/20{fill:hsl(var(--primary) / .2)}.object-contain{-o-object-fit:contain;object-fit:contain}.object-cover{-o-object-fit:cover;object-fit:cover}.p-0{padding:0}.p-1{padding:.25rem}.p-1\.5{padding:.375rem}.p-10{padding:2.5rem}.p-3{padding:.75rem}.p-4{padding:1rem}.p-5{padding:1.25rem}.p-6{padding:1.5rem}.px-1{padding-left:.25rem;padding-right:.25rem}.px-1\.5{padding-left:.375rem;padding-right:.375rem}.px-2{padding-left:.5rem;padding-right:.5rem}.px-2\.5{padding-left:.625rem;padding-right:.625rem}.px-3{padding-left:.75rem;padding-right:.75rem}.px-3\.5{padding-left:.875rem;padding-right:.875rem}.px-4{padding-left:1rem;padding-right:1rem}.px-5{padding-left:1.25rem;padding-right:1.25rem}.px-6{padding-left:1.5rem;padding-right:1.5rem}.px-7{padding-left:1.75rem;padding-right:1.75rem}.py-0{padding-top:0;padding-bottom:0}.py-0\.5{padding-top:.125rem;padding-bottom:.125rem}.py-1{padding-top:.25rem;padding-bottom:.25rem}.py-1\.5{padding-top:.375rem;padding-bottom:.375rem}.py-10{padding-top:2.5rem;padding-bottom:2.5rem}.py-14{padding-top:3.5rem;padding-bottom:3.5rem}.py-16{padding-top:4rem;padding-bottom:4rem}.py-2{padding-top:.5rem;padding-bottom:.5rem}.py-2\.5{padding-top:.625rem;padding-bottom:.625rem}.py-20{padding-top:5rem;padding-bottom:5rem}.py-3{padding-top:.75rem;padding-bottom:.75rem}.py-3\.5{padding-top:.875rem;padding-bottom:.875rem}.py-4{padding-top:1rem;padding-bottom:1rem}.py-5{padding-top:1.25rem;padding-bottom:1.25rem}.py-6{padding-top:1.5rem;padding-bottom:1.5rem}.py-8{padding-top:2rem;padding-bottom:2rem}.pb-2{padding-bottom:.5rem}.pb-20{padding-bottom:5rem}.pb-28{padding-bottom:7rem}.pb-40{padding-bottom:10rem}.pb-5{padding-bottom:1.25rem}.pl-1{padding-left:.25rem}.pl-10{padding-left:2.5rem}.pl-3{padding-left:.75rem}.pl-5{padding-left:1.25rem}.pl-9{padding-left:2.25rem}.pr-1{padding-right:.25rem}.pr-2\.5{padding-right:.625rem}.pr-3{padding-right:.75rem}.pr-5{padding-right:1.25rem}.pr-9{padding-right:2.25rem}.pt-0{padding-top:0}.pt-16{padding-top:4rem}.pt-2{padding-top:.5rem}.pt-20{padding-top:5rem}.pt-24{padding-top:6rem}.pt-28{padding-top:7rem}.pt-3{padding-top:.75rem}.pt-4{padding-top:1rem}.text-left{text-align:left}.text-center{text-align:center}.text-right{text-align:right}.align-middle{vertical-align:middle}.font-mono{font-family:Fira Code,JetBrains Mono,SF Mono,monospace}.text-2xl{font-size:1.5rem;line-height:2rem}.text-3xl{font-size:1.875rem;line-height:2.25rem}.text-4xl{font-size:2.25rem;line-height:2.5rem}.text-7xl{font-size:4.5rem;line-height:1}.text-\[0\.85em\]{font-size:.85em}.text-\[11px\]{font-size:11px}.text-\[13px\]{font-size:13px}.text-\[15px\]{font-size:15px}.text-base{font-size:1rem;line-height:1.5rem}.text-lg{font-size:1.125rem;line-height:1.75rem}.text-sm{font-size:.875rem;line-height:1.25rem}.text-xl{font-size:1.25rem;line-height:1.75rem}.text-xs{font-size:.75rem;line-height:1rem}.font-bold{font-weight:700}.font-extrabold{font-weight:800}.font-medium{font-weight:500}.font-normal{font-weight:400}.font-semibold{font-weight:600}.uppercase{text-transform:uppercase}.italic{font-style:italic}.leading-\[1\.1\]{line-height:1.1}.leading-relaxed{line-height:1.625}.leading-snug{line-height:1.375}.tracking-tight{letter-spacing:-.025em}.tracking-wider{letter-spacing:.05em}.text-amber-300{--tw-text-opacity: 1;color:rgb(252 211 77 / var(--tw-text-opacity, 1))}.text-amber-300\/80{color:#fcd34dcc}.text-amber-600{--tw-text-opacity: 1;color:rgb(217 119 6 / var(--tw-text-opacity, 1))}.text-emerald-400{--tw-text-opacity: 1;color:rgb(52 211 153 / var(--tw-text-opacity, 1))}.text-emerald-400\/90{color:#34d399e6}.text-emerald-500{--tw-text-opacity: 1;color:rgb(16 185 129 / var(--tw-text-opacity, 1))}.text-foreground{color:hsl(var(--foreground))}.text-foreground\/60{color:hsl(var(--foreground) / .6)}.text-foreground\/70{color:hsl(var(--foreground) / .7)}.text-foreground\/90{color:hsl(var(--foreground) / .9)}.text-gold{color:hsl(var(--gold))}.text-gold-foreground{color:hsl(var(--gold-foreground))}.text-muted-foreground{color:hsl(var(--muted-foreground))}.text-muted-foreground\/50{color:hsl(var(--muted-foreground) / .5)}.text-muted-foreground\/70{color:hsl(var(--muted-foreground) / .7)}.text-primary{color:hsl(var(--primary))}.text-primary-foreground{color:hsl(var(--primary-foreground))}.text-red-500{--tw-text-opacity: 1;color:rgb(239 68 68 / var(--tw-text-opacity, 1))}.text-secondary-foreground{color:hsl(var(--secondary-foreground))}.text-white{--tw-text-opacity: 1;color:rgb(255 255 255 / var(--tw-text-opacity, 1))}.text-white\/30{color:#ffffff4d}.text-white\/40{color:#fff6}.text-white\/55{color:#ffffff8c}.text-white\/60{color:#fff9}.text-white\/70{color:#ffffffb3}.text-white\/80{color:#fffc}.text-white\/85{color:#ffffffd9}.underline{text-decoration-line:underline}.underline-offset-2{text-underline-offset:2px}.opacity-0{opacity:0}.opacity-100{opacity:1}.opacity-30{opacity:.3}.opacity-55{opacity:.55}.opacity-60{opacity:.6}.shadow{--tw-shadow: 0 1px 3px 0 rgb(0 0 0 / .1), 0 1px 2px -1px rgb(0 0 0 / .1);--tw-shadow-colored: 0 1px 3px 0 var(--tw-shadow-color), 0 1px 2px -1px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.shadow-2xl{--tw-shadow: 0 25px 50px -12px rgb(0 0 0 / .25);--tw-shadow-colored: 0 25px 50px -12px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.shadow-lg{--tw-shadow: 0 10px 15px -3px rgb(0 0 0 / .1), 0 4px 6px -4px rgb(0 0 0 / .1);--tw-shadow-colored: 0 10px 15px -3px var(--tw-shadow-color), 0 4px 6px -4px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.shadow-sm{--tw-shadow: 0 1px 2px 0 rgb(0 0 0 / .05);--tw-shadow-colored: 0 1px 2px 0 var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.shadow-black\/40{--tw-shadow-color: rgb(0 0 0 / .4);--tw-shadow: var(--tw-shadow-colored)}.shadow-gold\/25{--tw-shadow-color: hsl(var(--gold) / .25);--tw-shadow: var(--tw-shadow-colored)}.shadow-primary\/10{--tw-shadow-color: hsl(var(--primary) / .1);--tw-shadow: var(--tw-shadow-colored)}.shadow-primary\/25{--tw-shadow-color: hsl(var(--primary) / .25);--tw-shadow: var(--tw-shadow-colored)}.shadow-primary\/30{--tw-shadow-color: hsl(var(--primary) / .3);--tw-shadow: var(--tw-shadow-colored)}.outline-none{outline:2px solid transparent;outline-offset:2px}.outline{outline-style:solid}.ring-1{--tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow, 0 0 #0000)}.ring-2{--tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow, 0 0 #0000)}.ring-card{--tw-ring-color: hsl(var(--card))}.ring-primary\/20{--tw-ring-color: hsl(var(--primary) / .2)}.ring-primary\/40{--tw-ring-color: hsl(var(--primary) / .4)}.ring-offset-2{--tw-ring-offset-width: 2px}.ring-offset-card{--tw-ring-offset-color: hsl(var(--card))}.blur-\[100px\]{--tw-blur: blur(100px);filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}.blur-\[110px\]{--tw-blur: blur(110px);filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}.blur-\[120px\]{--tw-blur: blur(120px);filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}.filter{filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}.backdrop-blur{--tw-backdrop-blur: blur(8px);-webkit-backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia);backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia)}.backdrop-blur-sm{--tw-backdrop-blur: blur(4px);-webkit-backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia);backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia)}.backdrop-blur-xl{--tw-backdrop-blur: blur(24px);-webkit-backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia);backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia)}.transition{transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.transition-all{transition-property:all;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.transition-colors{transition-property:color,background-color,border-color,text-decoration-color,fill,stroke;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.transition-opacity{transition-property:opacity;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.transition-shadow{transition-property:box-shadow;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.transition-transform{transition-property:transform;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.duration-200{transition-duration:.2s}@keyframes enter{0%{opacity:var(--tw-enter-opacity, 1);transform:translate3d(var(--tw-enter-translate-x, 0),var(--tw-enter-translate-y, 0),0) scale3d(var(--tw-enter-scale, 1),var(--tw-enter-scale, 1),var(--tw-enter-scale, 1)) rotate(var(--tw-enter-rotate, 0))}}@keyframes exit{to{opacity:var(--tw-exit-opacity, 1);transform:translate3d(var(--tw-exit-translate-x, 0),var(--tw-exit-translate-y, 0),0) scale3d(var(--tw-exit-scale, 1),var(--tw-exit-scale, 1),var(--tw-exit-scale, 1)) rotate(var(--tw-exit-rotate, 0))}}.duration-200{animation-duration:.2s}.\!running{animation-play-state:running!important}.running{animation-play-state:running}.container-page{margin-left:auto;margin-right:auto;width:100%;max-width:1180px;padding-left:1.5rem;padding-right:1.5rem}.text-gradient{background-image:linear-gradient(to right,var(--tw-gradient-stops));--tw-gradient-from: hsl(var(--primary)) var(--tw-gradient-from-position);--tw-gradient-to: hsl(var(--primary) / 0) var(--tw-gradient-to-position);--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to);--tw-gradient-to: rgb(217 70 239 / 0) var(--tw-gradient-to-position);--tw-gradient-stops: var(--tw-gradient-from), #d946ef var(--tw-gradient-via-position), var(--tw-gradient-to);--tw-gradient-to: #818cf8 var(--tw-gradient-to-position);-webkit-background-clip:text;background-clip:text;color:transparent}.glass{border-width:1px;border-color:hsl(var(--border) / .7);background-color:hsl(var(--card) / .7);--tw-backdrop-blur: blur(24px);-webkit-backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia);backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia)}.grid-bg{background-image:linear-gradient(to right,hsl(var(--border) / .4) 1px,transparent 1px),linear-gradient(to bottom,hsl(var(--border) / .4) 1px,transparent 1px);background-size:56px 56px}.\[mask-image\:radial-gradient\(ellipse_at_top\,black\,transparent_70\%\)\]{-webkit-mask-image:radial-gradient(ellipse at top,black,transparent 70%);mask-image:radial-gradient(ellipse at top,black,transparent 70%)}.first\:mt-0:first-child{margin-top:0}.last\:mb-0:last-child{margin-bottom:0}.hover\:-translate-y-0\.5:hover{--tw-translate-y: -.125rem;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.hover\:border-gold\/70:hover{border-color:hsl(var(--gold) / .7)}.hover\:border-primary:hover{border-color:hsl(var(--primary))}.hover\:border-primary\/30:hover{border-color:hsl(var(--primary) / .3)}.hover\:border-primary\/40:hover{border-color:hsl(var(--primary) / .4)}.hover\:border-primary\/50:hover{border-color:hsl(var(--primary) / .5)}.hover\:bg-muted:hover{background-color:hsl(var(--muted))}.hover\:bg-primary\/15:hover{background-color:hsl(var(--primary) / .15)}.hover\:bg-primary\/\[0\.04\]:hover{background-color:hsl(var(--primary) / .04)}.hover\:bg-primary\/\[0\.1\]:hover{background-color:hsl(var(--primary) / .1)}.hover\:text-foreground:hover{color:hsl(var(--foreground))}.hover\:text-primary:hover{color:hsl(var(--primary))}.hover\:text-red-500:hover{--tw-text-opacity: 1;color:rgb(239 68 68 / var(--tw-text-opacity, 1))}.hover\:underline:hover{text-decoration-line:underline}.hover\:opacity-90:hover{opacity:.9}.hover\:ring-2:hover{--tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow, 0 0 #0000)}.hover\:ring-primary\/50:hover{--tw-ring-color: hsl(var(--primary) / .5)}.hover\:brightness-105:hover{--tw-brightness: brightness(1.05);filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}.hover\:brightness-110:hover{--tw-brightness: brightness(1.1);filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}.focus\:border-primary\/40:focus{border-color:hsl(var(--primary) / .4)}.focus\:border-primary\/50:focus{border-color:hsl(var(--primary) / .5)}.focus\:border-primary\/60:focus{border-color:hsl(var(--primary) / .6)}.focus-visible\:outline-none:focus-visible{outline:2px solid transparent;outline-offset:2px}.focus-visible\:ring-2:focus-visible{--tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow, 0 0 #0000)}.focus-visible\:ring-ring:focus-visible{--tw-ring-color: hsl(var(--ring))}.focus-visible\:ring-offset-2:focus-visible{--tw-ring-offset-width: 2px}.focus-visible\:ring-offset-background:focus-visible{--tw-ring-offset-color: hsl(var(--background))}.disabled\:pointer-events-none:disabled{pointer-events:none}.disabled\:cursor-not-allowed:disabled{cursor:not-allowed}.disabled\:opacity-40:disabled{opacity:.4}.disabled\:opacity-50:disabled{opacity:.5}.disabled\:opacity-60:disabled{opacity:.6}.group:hover .group-hover\:bg-primary{background-color:hsl(var(--primary))}.group:hover .group-hover\:text-primary{color:hsl(var(--primary))}.group:hover .group-hover\:text-primary-foreground{color:hsl(var(--primary-foreground))}.group:hover .group-hover\:opacity-100{opacity:1}@keyframes accordion-up{0%{height:var(--radix-accordion-content-height)}to{height:0}}.data-\[state\=closed\]\:animate-accordion-up[data-state=closed]{animation:accordion-up .2s ease-out}@keyframes accordion-down{0%{height:0}to{height:var(--radix-accordion-content-height)}}.data-\[state\=open\]\:animate-accordion-down[data-state=open]{animation:accordion-down .2s ease-out}.dark\:from-amber-500\/20:is(.dark *){--tw-gradient-from: rgb(245 158 11 / .2) var(--tw-gradient-from-position);--tw-gradient-to: rgb(245 158 11 / 0) var(--tw-gradient-to-position);--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to)}.dark\:from-emerald-500\/20:is(.dark *){--tw-gradient-from: rgb(16 185 129 / .2) var(--tw-gradient-from-position);--tw-gradient-to: rgb(16 185 129 / 0) var(--tw-gradient-to-position);--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to)}.dark\:from-rose-500\/20:is(.dark *){--tw-gradient-from: rgb(244 63 94 / .2) var(--tw-gradient-from-position);--tw-gradient-to: rgb(244 63 94 / 0) var(--tw-gradient-to-position);--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to)}.dark\:from-sky-500\/20:is(.dark *){--tw-gradient-from: rgb(14 165 233 / .2) var(--tw-gradient-from-position);--tw-gradient-to: rgb(14 165 233 / 0) var(--tw-gradient-to-position);--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to)}.dark\:from-violet-500\/20:is(.dark *){--tw-gradient-from: rgb(139 92 246 / .2) var(--tw-gradient-from-position);--tw-gradient-to: rgb(139 92 246 / 0) var(--tw-gradient-to-position);--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to)}.dark\:to-fuchsia-500\/20:is(.dark *){--tw-gradient-to: rgb(217 70 239 / .2) var(--tw-gradient-to-position)}.dark\:to-indigo-500\/20:is(.dark *){--tw-gradient-to: rgb(99 102 241 / .2) var(--tw-gradient-to-position)}.dark\:to-orange-500\/20:is(.dark *){--tw-gradient-to: rgb(249 115 22 / .2) var(--tw-gradient-to-position)}.dark\:to-purple-500\/20:is(.dark *){--tw-gradient-to: rgb(168 85 247 / .2) var(--tw-gradient-to-position)}.dark\:to-teal-500\/20:is(.dark *){--tw-gradient-to: rgb(20 184 166 / .2) var(--tw-gradient-to-position)}.dark\:text-amber-400:is(.dark *){--tw-text-opacity: 1;color:rgb(251 191 36 / var(--tw-text-opacity, 1))}@media(min-width:640px){.sm\:block{display:block}.sm\:inline{display:inline}.sm\:flex{display:flex}.sm\:inline-flex{display:inline-flex}.sm\:max-h-\[84vh\]{max-height:84vh}.sm\:max-h-\[86vh\]{max-height:86vh}.sm\:w-56{width:14rem}.sm\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.sm\:grid-cols-4{grid-template-columns:repeat(4,minmax(0,1fr))}.sm\:flex-row{flex-direction:row}.sm\:items-end{align-items:flex-end}.sm\:items-center{align-items:center}.sm\:rounded-2xl{border-radius:1.5rem}.sm\:p-6{padding:1.5rem}.sm\:text-3xl{font-size:1.875rem;line-height:2.25rem}.sm\:text-4xl{font-size:2.25rem;line-height:2.5rem}.sm\:text-5xl{font-size:3rem;line-height:1}.sm\:text-lg{font-size:1.125rem;line-height:1.75rem}}@media(min-width:768px){.md\:col-span-2{grid-column:span 2 / span 2}.md\:block{display:block}.md\:flex{display:flex}.md\:hidden{display:none}.md\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.md\:grid-cols-\[1\.4fr_1fr_1fr_1fr\]{grid-template-columns:1.4fr 1fr 1fr 1fr}.md\:grid-cols-\[300px_1fr\]{grid-template-columns:300px 1fr}.md\:p-16{padding:4rem}.md\:py-20{padding-top:5rem;padding-bottom:5rem}.md\:py-24{padding-top:6rem;padding-bottom:6rem}.md\:py-28{padding-top:7rem;padding-bottom:7rem}.md\:pt-36{padding-top:9rem}.md\:text-4xl{font-size:2.25rem;line-height:2.5rem}.md\:text-5xl{font-size:3rem;line-height:1}.md\:text-6xl{font-size:3.75rem;line-height:1}.md\:text-base{font-size:1rem;line-height:1.5rem}.md\:text-lg{font-size:1.125rem;line-height:1.75rem}}@media(min-width:1024px){.lg\:sticky{position:sticky}.lg\:top-20{top:5rem}.lg\:col-span-3{grid-column:span 3 / span 3}.lg\:inline-flex{display:inline-flex}.lg\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.lg\:grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.lg\:grid-cols-4{grid-template-columns:repeat(4,minmax(0,1fr))}.lg\:grid-cols-\[220px_1fr\]{grid-template-columns:220px 1fr}.lg\:self-start{align-self:flex-start}}@media(min-width:1280px){.xl\:sticky{position:sticky}.xl\:top-20{top:5rem}.xl\:block{display:block}.xl\:grid-cols-\[220px_1fr_200px\]{grid-template-columns:220px 1fr 200px}.xl\:self-start{align-self:flex-start}}.\[\&\[data-state\=open\]\>svg\]\:rotate-180[data-state=open]>svg{--tw-rotate: 180deg;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.\[\&_svg\]\:size-4 svg{width:1rem;height:1rem}.\[\&_svg\]\:shrink-0 svg{flex-shrink:0}
@@ -1,4 +1,4 @@
1
- const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/Home-DM7EoF7S.js","assets/vendor-react-DvXH3HTt.js","assets/users-D3-N7gU0.js","assets/vendor-framer-motion-ZdeJPCY2.js","assets/copy-button-Dr9lRjiI.js","assets/copy-CQZ5TzmV.js","assets/badge-B-L-y5fx.js","assets/sponsors-B9KhG2hW.js","assets/SiteFooter-CLIQXwew.js","assets/vendor-radix-Bip5Pqfe.js","assets/vendor-charts-BiMa1Zmo.js","assets/Sponsors-DlgFN3VG.js","assets/sparkles-P5rh_tw-.js","assets/mail-M21ADvXM.js","assets/arrow-up-right-Cn4ATaZ1.js","assets/Studio-B3XF__Yk.js","assets/experts-Bv953aOf.js","assets/Markdown-DCC1nLQ-.js","assets/search-BRTjF9qD.js","assets/arrow-left-ENwUQ2i7.js","assets/clock-BiHXhE37.js","assets/Experts-DMJdDpIe.js","assets/Docs-9NP2H3s0.js","assets/Tutorials-CeNhvIuG.js","assets/tutorials-CqF_e3yL.js","assets/TutorialDetail-Dn5rhB6f.js","assets/Changelog-DNlKP4iX.js","assets/NotFound-CiLdwJb3.js"])))=>i.map(i=>d[i]);
1
+ const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/Home-C7cdNWrI.js","assets/vendor-react-DvXH3HTt.js","assets/users-Bt55vFuz.js","assets/vendor-framer-motion-ZdeJPCY2.js","assets/copy-button-CKwo9hmn.js","assets/copy-Dg7XjSsj.js","assets/badge-yz2euTrj.js","assets/sponsors-BgrzMlxi.js","assets/SiteFooter-Cc_g2meZ.js","assets/vendor-radix-Bip5Pqfe.js","assets/vendor-charts-BiMa1Zmo.js","assets/Sponsors-BnFu-GKz.js","assets/sparkles-BsDt_wQ_.js","assets/mail-C3bj6Q4N.js","assets/arrow-up-right-CUikZoTe.js","assets/Studio-D_Ku-kNm.js","assets/experts-Bv953aOf.js","assets/Markdown-DaWbDBGS.js","assets/search-DYZkqer3.js","assets/arrow-left-By5frfaF.js","assets/clock-M7oQfJso.js","assets/Experts-CvZST1I8.js","assets/Docs-ZdDG2PwT.js","assets/Tutorials-vsvoOfz_.js","assets/tutorials-CqF_e3yL.js","assets/TutorialDetail-NWCMMur-.js","assets/Changelog-DAanbhWT.js","assets/NotFound-CQVnENeI.js"])))=>i.map(i=>d[i]);
2
2
  import{r as m,j as i,u as ue,L as Ae,N as Ce,b as Se,d as C,e as Pe,B as Te}from"./vendor-react-DvXH3HTt.js";import{S as Le}from"./vendor-radix-Bip5Pqfe.js";import{c as pe}from"./vendor-charts-BiMa1Zmo.js";(function(){const t=document.createElement("link").relList;if(t&&t.supports&&t.supports("modulepreload"))return;for(const a of document.querySelectorAll('link[rel="modulepreload"]'))n(a);new MutationObserver(a=>{for(const r of a)if(r.type==="childList")for(const l of r.addedNodes)l.tagName==="LINK"&&l.rel==="modulepreload"&&n(l)}).observe(document,{childList:!0,subtree:!0});function o(a){const r={};return a.integrity&&(r.integrity=a.integrity),a.referrerPolicy&&(r.referrerPolicy=a.referrerPolicy),a.crossOrigin==="use-credentials"?r.credentials="include":a.crossOrigin==="anonymous"?r.credentials="omit":r.credentials="same-origin",r}function n(a){if(a.ep)return;a.ep=!0;const r=o(a);fetch(a.href,r)}})();const je="modulepreload",Ie=function(e){return"/"+e},re={},T=function(t,o,n){let a=Promise.resolve();if(o&&o.length>0){let l=function(d){return Promise.all(d.map(p=>Promise.resolve(p).then(y=>({status:"fulfilled",value:y}),y=>({status:"rejected",reason:y}))))};document.getElementsByTagName("link");const s=document.querySelector("meta[property=csp-nonce]"),c=(s==null?void 0:s.nonce)||(s==null?void 0:s.getAttribute("nonce"));a=l(o.map(d=>{if(d=Ie(d),d in re)return;re[d]=!0;const p=d.endsWith(".css"),y=p?'[rel="stylesheet"]':"";if(document.querySelector(`link[href="${d}"]${y}`))return;const g=document.createElement("link");if(g.rel=p?"stylesheet":je,p||(g.as="script"),g.crossOrigin="",g.href=d,c&&g.setAttribute("nonce",c),document.head.appendChild(g),p)return new Promise((v,x)=>{g.addEventListener("load",v),g.addEventListener("error",()=>x(new Error(`Unable to preload CSS for ${d}`)))})}))}function r(l){const s=new Event("vite:preloadError",{cancelable:!0});if(s.payload=l,window.dispatchEvent(s),!s.defaultPrevented)throw l}return a.then(l=>{for(const s of l||[])s.status==="rejected"&&r(s.reason);return t().catch(r)})};/**
3
3
  * @license lucide-react v0.469.0 - ISC
4
4
  *
@@ -69,7 +69,7 @@ steps:
69
69
  - id: write
70
70
  role: "marketing/marketing-content-creator"
71
71
  task: "基于 {{research}} 写方案"
72
- depends_on: [research]`}],moreInRepo:"完整文档与 216 个角色清单见 GitHub 仓库。"},tutorials:{badge:"官方 + 社区",title:"玩转 Agency Orchestrator",subtitle:"一句话生成工作流之后还能怎么玩?这里收集了官方与社区的攻略,从 5 分钟入门到进阶实战一网打尽。",submit:"投稿你的攻略",filterCategory:"分类",filterSource:"来源",all:"全部",minRead:"分钟阅读",empty:"这个分类下还没有攻略。",back:"返回攻略",categories:{start:"入门",practice:"实战",integration:"集成",troubleshoot:"排错",video:"视频"},sources:{official:"官方",community:"社区"}},changelog:{title:"更新日志",subtitle:"Agency Orchestrator 每个版本的变更记录,与仓库 CHANGELOG.md 同步。",latest:"最新",repoLink:"在 GitHub 查看完整 CHANGELOG"},experts:{title:"agency-agents 专家库",subtitle:"200+ 位打磨好的 AI 专家——每一位都是一段精调过的系统提示词。AO 一句话就能把他们组队协作。在这里直接浏览全部专家,无需安装。",searchPlaceholder:"搜索专家(名称 / 描述 / 分类)…",all:"全部",countSuffix:"位专家",empty:"没有匹配的专家,换个关键词试试。",repoCta:"在 GitHub 查看 agency-agents",copyPrompt:"复制提示词",viewPrompt:"查看提示词",copied:"已复制",copyFailed:"复制失败",loading:"加载中…",close:"关闭",promptHint:"这是该专家的完整系统提示词,可直接复制到任意 AI 工具中使用。"},footer:{tagline:"一句话,让多个 AI 角色自动协作。",supportLine:"本站为支持 agency-agents 开源项目而建。",product:"产品",resources:"资源",community:"社区",links:{features:"能力",sponsors:"赞助商",docs:"文档",tutorials:"教程",github:"GitHub 仓库",roles:"角色库",issues:"提 Issue",changelog:"更新日志",license:"License"},copyright:"Apache-2.0 License · 开源项目"},notFound:{title:"页面走丢了",desc:"这里什么都没有。",back:"回首页"},common:{loading:"加载中…"}},At={meta:{langLabel:"English",switchTo:"中文"},nav:{home:"Home",features:"Features",studio:"Studio",experts:"Experts",sponsors:"Sponsors",docs:"Docs",tutorials:"Tutorials",changelog:"Changelog",star:"Star",github:"GitHub"},hero:{badge:"Open source · Multi-agent workflow orchestrator",title:"One sentence in, agency-agents' experts",titleHighlight:"team up automatically",subtitle:"Describe what you need → AI decomposes the task → picks from 216 experts → runs them in parallel as a DAG → a full plan in minutes. The experts come from the open-source agency-agents library; AO orchestrates them into a team.",ctaPrimary:"View on GitHub",ctaSecondary:"Sponsor perks",installHint:"Start with one command:",copy:"Copy",copied:"Copied",stats:[{value:"216",label:"agency-agents experts"},{value:"10",label:"LLM providers"},{value:"DAG",label:"auto parallelism"},{value:"YAML",label:"zero-code"}]},oneLiner:{title:"One sentence → full plan",desc:"The fastest way isn't writing YAML — it's compose: one sentence and AO wires up the whole workflow and runs it.",prompt:"A developer wants an AI side business at $3k/mo — plan it end to end",meta:"Workflow: auto-orchestrated · {n} steps · deepseek-chat",done:"Done · outputs saved to ao-output/",roles:["🔭 Trend Researcher","📱 Platform Analyst","💰 Finance Planner","✍️ Content Strategist","📋 Exec Planner"],steps:[{emoji:"🔭",name:"Trend Researcher",time:"31.3s",out:"6 niches compared on competition / ceiling / AI leverage"},{emoji:"📱",name:"Platform Analyst",time:"32.0s",out:"6 platforms scored, recommends a 2-channel combo"},{emoji:"💰",name:"Finance Planner",time:"31.8s",out:"Revenue broken down: courses + community + consulting"},{emoji:"✍️",name:"Content Strategist",time:"30.5s",out:"30-day topic calendar + 3 viral script templates"},{emoji:"📋",name:"Exec Planner",time:"29.7s",out:"12-week roadmap with weekly measurable goals"}]},features:{title:"Why multi-agent, not a single prompt",subtitle:"Blind-eval tested: on a capable-but-cheap model tier, expert-divided output clearly beats a one-shot prompt.",items:[{icon:"workflow",title:"Automatic DAG parallelism",desc:"The engine derives the execution graph from dependencies; independent steps run in parallel — not naive serial."},{icon:"users",title:"216 agency-agents experts",desc:"All from the open-source agency-agents library: marketing / engineering / design / product / finance / legal… plus China-native platform roles (Xiaohongshu / Douyin / Zhihu / Bilibili)."},{icon:"file-code",title:"Zero-code YAML",desc:"A workflow is one YAML: roles, tasks, dependencies, loops, conditions — readable, editable, versionable."},{icon:"repeat",title:"Resume from any step",desc:"All step outputs are saved. Re-run from a single step (--resume), reuse upstream — iterate without wasting tokens."},{icon:"boxes",title:"10 LLM providers",desc:"DeepSeek / Claude / OpenAI / Gemini / Ollama… switch with one field. Pick whatever model fits your needs."},{icon:"shield-check",title:"Deterministic orchestration",desc:"The DAG schedule is deterministic — order and parallelism come from the dependency graph, not model improvisation."}]},evalNote:{title:"Model capability decides multi-agent value (we measured it)",body:"On a capable mid-tier model, multi-agent output clearly beats a one-shot prompt; but with weak local models (llama3 8B class), hand-offs amplify drift. For quality, use a capable model.",link:"Read the full eval findings"},providers:{title:"Bring an API key, or go key-free (7 ways)",subtitle:"A small top-up runs a long way; or start at zero cost via CLI / local models.",keyed:"API key providers",keyfree:"Key-free options"},studioDemo:{title:"Live demo (no install)",desc:"Click to watch agency-agents' experts collaborate along the DAG. Front-end only — no real model calls.",prompt:"A developer wants an AI side business at $3k/mo — plan it end to end",play:"Run the demo",replay:"Replay",running:"running",done:"Done · outputs saved to ao-output/",note:"Want a real run? Install ao locally and connect the engine to use real models."},studio:{providers:{inUse:"In use",setActive:"Set as current",testConnection:"Test connection",ok:"OK",etc:"etc.",keySet:"Key set",fromEnv:" (from env)",keyNotSet:"No key set",pasteNewKey:"Paste a new key to replace…",pasteKey:"Paste API key…",save:"Save",baseUrlPlaceholder:"Custom base_url (optional)",modelPlaceholder:"Model name (optional, blank for default)",clear:"Clear",ollamaDescBeforeServe:"Local inference, no key needed. First run ",ollamaDescBeforePull:" and pull a model (e.g. ",ollamaDescAfter:"). A 70B+ model is recommended; small models drift in multi-agent runs.",ollamaModelPlaceholder:"Model name (required, e.g. llama3)",privacyBeforeLocal:"🔒 Keys are stored only on ",privacyLocal:"this machine",privacyBeforeCode:" (",privacyAfter:", already gitignored) and never uploaded to any server. Choose “Set as current” to switch the runtime — workflows will use it.",loadFailed:"Failed to read config. Make sure the local engine is running.",loading:"Loading…",cloudApiTitle:"Cloud LLM API",cloudApiHint:"Key required, most stable quality",localModelTitle:"Local model",localModelHint:"No key, data stays on this machine",localCliTitle:"Local CLI",localCliHint:"No key, uses your logged-in tools",cliRequirement:"Must be installed and logged in",compshareName:"CompShare · Sponsor",compshareHint:"OpenAI-compatible · model e.g. deepseek-ai/DeepSeek-R1 · get key at console.compshare.cn"},run:{running:"Running",done:"Done",error:"Error",terminalOutput:"Terminal output",background:"Background",backgroundTitle:"Run in background (keeps running)",stop:"Stop",noTerminalOutput:"(no terminal output yet)",summoningTeam:"Summoning the team, planning steps…",backgroundHint:"Click “Background” to leave; the run continues",savedToHistory:"✓ Saved to run history",copy:"Copy",copied:"Copied",downloadMd:"Download .md",viewHistory:"View history",close:"Close",needApproval:"Needs your approval to continue",needInput:"Needs your input to continue",approveContinue:"Approve, continue",reject:"Reject",inputPlaceholder:"Submit your input and the workflow keeps going… (⌘/Ctrl+Enter to submit)",submitContinue:"Submit and continue",stepsUnit:"steps",runningEllipsis:"Running…",doneClickToView:"Done · click to view",remove:"Remove",runFailedExitCodePrefix:"Run failed (exit code ",runFailedExitCodeSuffix:")",runError:"Run error",reworkTitlePrefix:" (rework · ",reworkTitleSuffix:")"},runs:{loadingDetail:"Loading details…",stepsUnit:"steps",copyResult:"Copy result",copied:"Copied",downloadResult:"Download result",downloadAllTitle:"Includes all step output",downloadAll:"Download all",fullProcessSuffix:"-full-process",cannotResume:"This record has no source file path and cannot be re-run.",finalResult:"Final result",downloadStep:"Download this step (.md)",resumeFromPrefix:"Re-run from “",resumeFromSuffix:"”",resume:"Re-run",loadingHistory:"Loading history…",loadFailed:"Load failed: ",empty:"No runs yet. Try one in “Team up roles” or “Workflows”.",searchPlaceholder:"Search history…",backToList:"Back to list",selectHint:"← Select a record on the left to view results"},roles:{loading:"Loading roles…",loadFailed:"Failed to load roles: ",hintLabel:"How to use:",hintPickOneBold:"Pick 1",hintPickOneRest:"→ one-on-one chat",hintPickManyBold:"Pick 2 or more",hintPickManyRest:"→ AI builds a team and runs it",hintAvatarPre:"Tap an ",hintAvatarBold:"avatar",hintAvatarPost:" for role details",searchPlaceholder:"Search roles…",rolesCountSuffix:"roles",categoryAll:"All",viewDetail:"View role details",selectedPrefix:"Selected",clear:"Clear",teamNamePlaceholder:"Team name (leave blank to auto-name)",teamTaskPlaceholder:"What should this team accomplish? (AI designs the steps)",roleTaskPlaceholder:"What do you want to ask this role?",composeAndRun:"Build team & run",composeFailed:"Compose failed",singleChat:"One-on-one chat",loadingAbilities:"Loading role abilities…",noMoreInfo:"(No further details)",askPrefix:"Ask ",askSuffix:" anything…",chat:"Chat",copyPrompt:"Copy prompt",copied:"Copied",copyFailed:"Copy failed"},usage:{loadFailed:"Failed to load: ",loading:"Loading…",empty:"No runs yet. Usage stats will appear here after you run a few workflows.",totalTokens:"Total Tokens",inputTokens:"Input Tokens",outputTokens:"Output Tokens",estimatedCost:"Estimated Cost",estimatedByPrefix:"Based on ",estimatedBySuffix:"",runs:"runs",allRuns:"All runs",costByModel:"Estimate cost by model",dailyUsage:"Daily Token Usage",input:"Input",output:"Output",topRolesPrefix:"Top Roles by Usage — Top ",runsSuffix:" runs"},workflows:{cancel:"Cancel",run:"Run",noInputsNeeded:"This workflow needs no input and can run directly.",loading:"Loading workflows…",loadFailed:"Failed to load: ",searchPlaceholder:"Search workflow templates…",checkToCompare:"Check to compare",steps:"steps",mine:"Mine",checkedPrefix:"Selected ",checkedSuffix:" templates",clear:"Clear",compareRun:"Compare run",newTeam:"New team",composedTeam:"AI composed a team",warningSeparator:"; ",parsingPlan:"Parsing plan…",generatedExpandYaml:"Workflow generated. Expand the YAML below for details.",viewYaml:"View workflow YAML",savedToWorkflows:"Saved to Workflows, ready to reuse",goToWorkflows:"Go to Workflows",runThisTeam:"Run this team",runFailed:"Run failed",templatesSequential:"templates (run sequentially)",waiting:"Waiting",errored:"Error",generating:"Generating…",waitingToRun:"Waiting to run"},shell:{tabs:{roles:{label:"Build a Team",hint:"1 to chat · several to compose a team"},workflows:{label:"Workflows",hint:"Run templates · pick several to compare"},runs:{label:"Run History",hint:"View outputs · rerun from a step"},usage:{label:"Usage",hint:"tokens / cost / trends"},providers:{label:"Providers",hint:"API keys · test connection"}},engineOnline:"Engine online",engineOffline:"Engine offline",engineChecking:"Checking",statusOnline:"Online",statusOffline:"Demo mode",statusChecking:"Checking",providerSelectTitle:"Model provider used for runs",providerDefault:"Default (DeepSeek)",keys:"Keys",noKeyWarningPrefix:"Provider",noKeyWarningSuffix:"has no API key configured — runs will fail.",setUpNow:"Set up now",gateTitle:"Want to run for real? Start the local engine",gateExplainBefore:"Running workflows for real calls the local",gateExplainMiddle:"CLI and your model API key, so Studio must connect to a local backend. Run this command in the project root to start the engine (default",gateExplainAfter:"):",gateChecking:"Checking…",gateRecheck:"Check again",gateHint:"This is a public demo: no backend, can't run for real — never enter an API key here. Install and run locally to actually use AO (your key stays on your machine and is never uploaded).",copy:"Copy",copied:"Copied",downloadStep:"Download this step as .md",thinking:"Thinking…",feedbackOpen:"Request a revision",feedbackPlaceholderPrefix:"How should",feedbackPlaceholderSuffix:"be changed? e.g. add a twist at the end / cut the budget under 5000…",feedbackHint:"Sends this step's previous output + your notes so they revise the draft in place",cancel:"Cancel",feedbackSubmit:"Send back for revision"},demo:{bannerTitle:"Demo mode",bannerDesc:"Browse every expert, view and copy full prompts. Running workflows for real needs a local engine — install the app or run it locally.",bannerInstall:"Install / download the app",installTitle:"Running needs a local engine",installDesc:"The public site is for demo only — it calls no real models, so don't enter an API key here. To actually run, pick either option (your key stays on your machine):",optDesktopTitle:"Download the desktop app",optDesktopDesc:"Native app, no Node needed, just double-click.",optDesktopCta:"Download",optCliTitle:"CLI / local Studio",optCliDesc:"Fastest if you already have Node:",optCliCta:"Read the docs",close:"Close"}},sponsors:{nav:"Sponsors",heroBadge:"Open source · Community-driven",heroTitle:"Thank you to every supporter",heroSubtitle:"This site is built to support the agency-agents open-source project — an open project for developers, sustained by its community and sponsors. We treat every bit of support as fuel that takes the project further.",becomeCta:"Become a sponsor",becomeNote:"Want to sponsor the agency-agents open-source project? Email us:",reserved:"Reserved",reservedDesc:"Your spot could be here — become the next sponsor",flagshipLabel:"Flagship sponsors",flagshipDesc:"Deep partners providing key, long-term support. This flagship slot is open — apply to claim it.",standardLabel:"More sponsors",standardDesc:"Thanks to these sponsors for their ongoing support and exclusive user perks",visit:"Visit site",couponLabel:"Coupon",copyCoupon:"Copy coupon",copied:"Copied to clipboard",since:"Sponsor since",emptyStandard:"More sponsors wanted — be among the first.",stripTitle:"Thanks to our sponsors",stripSubtitle:"If you need a stable, cost-effective API relay / model service, take a look at AO's sponsors.",viewAll:"View all sponsors",perksBadge:"At a glance",perksTitle:"Exclusive perks summary",perksSubtitle:"Use AO's exclusive links / coupons to enjoy the perks below. Click a coupon to copy.",perksTable:{sponsor:"Sponsor",perk:"Exclusive perk",coupon:"Coupon",link:"Go"},benefitsBadge:"Grow with AO",benefitsTitle:"What you get by sponsoring AO",benefitsSubtitle:"A deep-partnership placement + in-Studio preset access + priority support — reaching developers worldwide.",benefits:[{title:"GitHub README ad slot",desc:"Bilingual (EN/CN) placement in the main AO repo README, reaching developers worldwide on GitHub."},{title:"In-Studio preset access",desc:"Your API preset in AO Studio's key panel — users copy a key from your site and one-click import it, slashing setup friction."},{title:"Sponsors-page placement",desc:"A long-term dedicated slot on the official sponsors page (flagship gets a banner + home exposure), driving precise developer traffic."},{title:"Priority support",desc:"A dedicated channel for fast help with integration, coupon / rev-share settlement, and more."}],faqTitle:"FAQ",faq:[{q:"How do I become an AO sponsor?",a:"Reach us at jnMetaCode@qq.com with your service, desired tier, and the user perk you offer (discount / coupon / rev-share). Once details are confirmed we'll arrange placement and go-live."},{q:"What partnership tiers are there?",a:"Two tiers: Flagship and Partner. Both include sponsors-page placement, in-Studio preset access with a highlighted recommendation, and release-notes acknowledgement. Flagship additionally gets a GitHub README ad slot and home-page exposure, with bilingual display. Details by email."},{q:"How soon can it go live?",a:"After confirming details and receiving assets (logo / blurb / link), typically within 1–3 business days, varying by placement and asset readiness."},{q:"What materials do I need to prepare?",a:"Typically a logo, a short product blurb (CN / EN), an exclusive offer link, and optionally a GitHub README banner image. After we confirm the partnership, we'll share exact size / format requirements and help review the assets."}]},docs:{title:"Docs",subtitle:"From install to your first workflow.",searchPlaceholder:"Search docs...",onThisPage:"On this page",sections:[{heading:"Install",body:"Requires Node.js 18+. After a global install the `ao` command is available.",code:`npm i -g agency-orchestrator
72
+ depends_on: [research]`}],moreInRepo:"完整文档与 216 个角色清单见 GitHub 仓库。"},tutorials:{badge:"官方 + 社区",title:"玩转 Agency Orchestrator",subtitle:"一句话生成工作流之后还能怎么玩?这里收集了官方与社区的攻略,从 5 分钟入门到进阶实战一网打尽。",submit:"投稿你的攻略",filterCategory:"分类",filterSource:"来源",all:"全部",minRead:"分钟阅读",empty:"这个分类下还没有攻略。",back:"返回攻略",categories:{start:"入门",practice:"实战",integration:"集成",troubleshoot:"排错",video:"视频"},sources:{official:"官方",community:"社区"}},changelog:{title:"更新日志",subtitle:"Agency Orchestrator 每个版本的变更记录,与仓库 CHANGELOG.md 同步。",latest:"最新",repoLink:"在 GitHub 查看完整 CHANGELOG"},experts:{title:"agency-agents 专家库",subtitle:"200+ 位打磨好的 AI 专家——每一位都是一段精调过的系统提示词。AO 一句话就能把他们组队协作。在这里直接浏览全部专家,无需安装。",searchPlaceholder:"搜索专家(名称 / 描述 / 分类)…",all:"全部",countSuffix:"位专家",empty:"没有匹配的专家,换个关键词试试。",repoCta:"在 GitHub 查看 agency-agents",copyPrompt:"复制提示词",viewPrompt:"查看提示词",copied:"已复制",copyFailed:"复制失败",loading:"加载中…",close:"关闭",promptHint:"这是该专家的完整系统提示词,可直接复制到任意 AI 工具中使用。"},footer:{tagline:"一句话,让多个 AI 角色自动协作。",supportLine:"本站为支持 agency-agents 开源项目而建。",product:"产品",resources:"资源",community:"社区",links:{features:"能力",sponsors:"赞助商",docs:"文档",tutorials:"教程",github:"GitHub 仓库",roles:"角色库",issues:"提 Issue",changelog:"更新日志",license:"License"},copyright:"Apache-2.0 License · 开源项目"},notFound:{title:"页面走丢了",desc:"这里什么都没有。",back:"回首页"},common:{loading:"加载中…"}},At={meta:{langLabel:"English",switchTo:"中文"},nav:{home:"Home",features:"Features",studio:"Studio",experts:"Experts",sponsors:"Sponsors",docs:"Docs",tutorials:"Tutorials",changelog:"Changelog",star:"Star",github:"GitHub"},hero:{badge:"Open source · Multi-agent workflow orchestrator",title:"One sentence in, agency-agents' experts",titleHighlight:"team up automatically",subtitle:"Describe what you need → AI decomposes the task → picks from 184 experts → runs them in parallel as a DAG → a full plan in minutes. The experts come from the open-source agency-agents library; AO orchestrates them into a team.",ctaPrimary:"View on GitHub",ctaSecondary:"Sponsor perks",installHint:"Start with one command:",copy:"Copy",copied:"Copied",stats:[{value:"184",label:"agency-agents experts"},{value:"10",label:"LLM providers"},{value:"DAG",label:"auto parallelism"},{value:"YAML",label:"zero-code"}]},oneLiner:{title:"One sentence → full plan",desc:"The fastest way isn't writing YAML — it's compose: one sentence and AO wires up the whole workflow and runs it.",prompt:"A developer wants an AI side business at $3k/mo — plan it end to end",meta:"Workflow: auto-orchestrated · {n} steps · deepseek-chat",done:"Done · outputs saved to ao-output/",roles:["🔭 Trend Researcher","📱 Platform Analyst","💰 Finance Planner","✍️ Content Strategist","📋 Exec Planner"],steps:[{emoji:"🔭",name:"Trend Researcher",time:"31.3s",out:"6 niches compared on competition / ceiling / AI leverage"},{emoji:"📱",name:"Platform Analyst",time:"32.0s",out:"6 platforms scored, recommends a 2-channel combo"},{emoji:"💰",name:"Finance Planner",time:"31.8s",out:"Revenue broken down: courses + community + consulting"},{emoji:"✍️",name:"Content Strategist",time:"30.5s",out:"30-day topic calendar + 3 viral script templates"},{emoji:"📋",name:"Exec Planner",time:"29.7s",out:"12-week roadmap with weekly measurable goals"}]},features:{title:"Why multi-agent, not a single prompt",subtitle:"Blind-eval tested: on a capable-but-cheap model tier, expert-divided output clearly beats a one-shot prompt.",items:[{icon:"workflow",title:"Automatic DAG parallelism",desc:"The engine derives the execution graph from dependencies; independent steps run in parallel — not naive serial."},{icon:"users",title:"184 agency-agents experts",desc:"All from the open-source agency-agents library: marketing / engineering / design / product / finance / legal / game-dev and more — each a finely-tuned system prompt."},{icon:"file-code",title:"Zero-code YAML",desc:"A workflow is one YAML: roles, tasks, dependencies, loops, conditions — readable, editable, versionable."},{icon:"repeat",title:"Resume from any step",desc:"All step outputs are saved. Re-run from a single step (--resume), reuse upstream — iterate without wasting tokens."},{icon:"boxes",title:"10 LLM providers",desc:"DeepSeek / Claude / OpenAI / Gemini / Ollama… switch with one field. Pick whatever model fits your needs."},{icon:"shield-check",title:"Deterministic orchestration",desc:"The DAG schedule is deterministic — order and parallelism come from the dependency graph, not model improvisation."}]},evalNote:{title:"Model capability decides multi-agent value (we measured it)",body:"On a capable mid-tier model, multi-agent output clearly beats a one-shot prompt; but with weak local models (llama3 8B class), hand-offs amplify drift. For quality, use a capable model.",link:"Read the full eval findings"},providers:{title:"Bring an API key, or go key-free (7 ways)",subtitle:"A small top-up runs a long way; or start at zero cost via CLI / local models.",keyed:"API key providers",keyfree:"Key-free options"},studioDemo:{title:"Live demo (no install)",desc:"Click to watch agency-agents' experts collaborate along the DAG. Front-end only — no real model calls.",prompt:"A developer wants an AI side business at $3k/mo — plan it end to end",play:"Run the demo",replay:"Replay",running:"running",done:"Done · outputs saved to ao-output/",note:"Want a real run? Install ao locally and connect the engine to use real models."},studio:{providers:{inUse:"In use",setActive:"Set as current",testConnection:"Test connection",ok:"OK",etc:"etc.",keySet:"Key set",fromEnv:" (from env)",keyNotSet:"No key set",pasteNewKey:"Paste a new key to replace…",pasteKey:"Paste API key…",save:"Save",baseUrlPlaceholder:"Custom base_url (optional)",modelPlaceholder:"Model name (optional, blank for default)",clear:"Clear",ollamaDescBeforeServe:"Local inference, no key needed. First run ",ollamaDescBeforePull:" and pull a model (e.g. ",ollamaDescAfter:"). A 70B+ model is recommended; small models drift in multi-agent runs.",ollamaModelPlaceholder:"Model name (required, e.g. llama3)",privacyBeforeLocal:"🔒 Keys are stored only on ",privacyLocal:"this machine",privacyBeforeCode:" (",privacyAfter:", already gitignored) and never uploaded to any server. Choose “Set as current” to switch the runtime — workflows will use it.",loadFailed:"Failed to read config. Make sure the local engine is running.",loading:"Loading…",cloudApiTitle:"Cloud LLM API",cloudApiHint:"Key required, most stable quality",localModelTitle:"Local model",localModelHint:"No key, data stays on this machine",localCliTitle:"Local CLI",localCliHint:"No key, uses your logged-in tools",cliRequirement:"Must be installed and logged in",compshareName:"CompShare · Sponsor",compshareHint:"OpenAI-compatible · model e.g. deepseek-ai/DeepSeek-R1 · get key at console.compshare.cn"},run:{running:"Running",done:"Done",error:"Error",terminalOutput:"Terminal output",background:"Background",backgroundTitle:"Run in background (keeps running)",stop:"Stop",noTerminalOutput:"(no terminal output yet)",summoningTeam:"Summoning the team, planning steps…",backgroundHint:"Click “Background” to leave; the run continues",savedToHistory:"✓ Saved to run history",copy:"Copy",copied:"Copied",downloadMd:"Download .md",viewHistory:"View history",close:"Close",needApproval:"Needs your approval to continue",needInput:"Needs your input to continue",approveContinue:"Approve, continue",reject:"Reject",inputPlaceholder:"Submit your input and the workflow keeps going… (⌘/Ctrl+Enter to submit)",submitContinue:"Submit and continue",stepsUnit:"steps",runningEllipsis:"Running…",doneClickToView:"Done · click to view",remove:"Remove",runFailedExitCodePrefix:"Run failed (exit code ",runFailedExitCodeSuffix:")",runError:"Run error",reworkTitlePrefix:" (rework · ",reworkTitleSuffix:")"},runs:{loadingDetail:"Loading details…",stepsUnit:"steps",copyResult:"Copy result",copied:"Copied",downloadResult:"Download result",downloadAllTitle:"Includes all step output",downloadAll:"Download all",fullProcessSuffix:"-full-process",cannotResume:"This record has no source file path and cannot be re-run.",finalResult:"Final result",downloadStep:"Download this step (.md)",resumeFromPrefix:"Re-run from “",resumeFromSuffix:"”",resume:"Re-run",loadingHistory:"Loading history…",loadFailed:"Load failed: ",empty:"No runs yet. Try one in “Team up roles” or “Workflows”.",searchPlaceholder:"Search history…",backToList:"Back to list",selectHint:"← Select a record on the left to view results"},roles:{loading:"Loading roles…",loadFailed:"Failed to load roles: ",hintLabel:"How to use:",hintPickOneBold:"Pick 1",hintPickOneRest:"→ one-on-one chat",hintPickManyBold:"Pick 2 or more",hintPickManyRest:"→ AI builds a team and runs it",hintAvatarPre:"Tap an ",hintAvatarBold:"avatar",hintAvatarPost:" for role details",searchPlaceholder:"Search roles…",rolesCountSuffix:"roles",categoryAll:"All",viewDetail:"View role details",selectedPrefix:"Selected",clear:"Clear",teamNamePlaceholder:"Team name (leave blank to auto-name)",teamTaskPlaceholder:"What should this team accomplish? (AI designs the steps)",roleTaskPlaceholder:"What do you want to ask this role?",composeAndRun:"Build team & run",composeFailed:"Compose failed",singleChat:"One-on-one chat",loadingAbilities:"Loading role abilities…",noMoreInfo:"(No further details)",askPrefix:"Ask ",askSuffix:" anything…",chat:"Chat",copyPrompt:"Copy prompt",copied:"Copied",copyFailed:"Copy failed"},usage:{loadFailed:"Failed to load: ",loading:"Loading…",empty:"No runs yet. Usage stats will appear here after you run a few workflows.",totalTokens:"Total Tokens",inputTokens:"Input Tokens",outputTokens:"Output Tokens",estimatedCost:"Estimated Cost",estimatedByPrefix:"Based on ",estimatedBySuffix:"",runs:"runs",allRuns:"All runs",costByModel:"Estimate cost by model",dailyUsage:"Daily Token Usage",input:"Input",output:"Output",topRolesPrefix:"Top Roles by Usage — Top ",runsSuffix:" runs"},workflows:{cancel:"Cancel",run:"Run",noInputsNeeded:"This workflow needs no input and can run directly.",loading:"Loading workflows…",loadFailed:"Failed to load: ",searchPlaceholder:"Search workflow templates…",checkToCompare:"Check to compare",steps:"steps",mine:"Mine",checkedPrefix:"Selected ",checkedSuffix:" templates",clear:"Clear",compareRun:"Compare run",newTeam:"New team",composedTeam:"AI composed a team",warningSeparator:"; ",parsingPlan:"Parsing plan…",generatedExpandYaml:"Workflow generated. Expand the YAML below for details.",viewYaml:"View workflow YAML",savedToWorkflows:"Saved to Workflows, ready to reuse",goToWorkflows:"Go to Workflows",runThisTeam:"Run this team",runFailed:"Run failed",templatesSequential:"templates (run sequentially)",waiting:"Waiting",errored:"Error",generating:"Generating…",waitingToRun:"Waiting to run"},shell:{tabs:{roles:{label:"Build a Team",hint:"1 to chat · several to compose a team"},workflows:{label:"Workflows",hint:"Run templates · pick several to compare"},runs:{label:"Run History",hint:"View outputs · rerun from a step"},usage:{label:"Usage",hint:"tokens / cost / trends"},providers:{label:"Providers",hint:"API keys · test connection"}},engineOnline:"Engine online",engineOffline:"Engine offline",engineChecking:"Checking",statusOnline:"Online",statusOffline:"Demo mode",statusChecking:"Checking",providerSelectTitle:"Model provider used for runs",providerDefault:"Default (DeepSeek)",keys:"Keys",noKeyWarningPrefix:"Provider",noKeyWarningSuffix:"has no API key configured — runs will fail.",setUpNow:"Set up now",gateTitle:"Want to run for real? Start the local engine",gateExplainBefore:"Running workflows for real calls the local",gateExplainMiddle:"CLI and your model API key, so Studio must connect to a local backend. Run this command in the project root to start the engine (default",gateExplainAfter:"):",gateChecking:"Checking…",gateRecheck:"Check again",gateHint:"This is a public demo: no backend, can't run for real — never enter an API key here. Install and run locally to actually use AO (your key stays on your machine and is never uploaded).",copy:"Copy",copied:"Copied",downloadStep:"Download this step as .md",thinking:"Thinking…",feedbackOpen:"Request a revision",feedbackPlaceholderPrefix:"How should",feedbackPlaceholderSuffix:"be changed? e.g. add a twist at the end / cut the budget under 5000…",feedbackHint:"Sends this step's previous output + your notes so they revise the draft in place",cancel:"Cancel",feedbackSubmit:"Send back for revision"},demo:{bannerTitle:"Demo mode",bannerDesc:"Browse every expert, view and copy full prompts. Running workflows for real needs a local engine — install the app or run it locally.",bannerInstall:"Install / download the app",installTitle:"Running needs a local engine",installDesc:"The public site is for demo only — it calls no real models, so don't enter an API key here. To actually run, pick either option (your key stays on your machine):",optDesktopTitle:"Download the desktop app",optDesktopDesc:"Native app, no Node needed, just double-click.",optDesktopCta:"Download",optCliTitle:"CLI / local Studio",optCliDesc:"Fastest if you already have Node:",optCliCta:"Read the docs",close:"Close"}},sponsors:{nav:"Sponsors",heroBadge:"Open source · Community-driven",heroTitle:"Thank you to every supporter",heroSubtitle:"This site is built to support the agency-agents open-source project — an open project for developers, sustained by its community and sponsors. We treat every bit of support as fuel that takes the project further.",becomeCta:"Become a sponsor",becomeNote:"Want to sponsor the agency-agents open-source project? Email us:",reserved:"Reserved",reservedDesc:"Your spot could be here — become the next sponsor",flagshipLabel:"Flagship sponsors",flagshipDesc:"Deep partners providing key, long-term support. This flagship slot is open — apply to claim it.",standardLabel:"More sponsors",standardDesc:"Thanks to these sponsors for their ongoing support and exclusive user perks",visit:"Visit site",couponLabel:"Coupon",copyCoupon:"Copy coupon",copied:"Copied to clipboard",since:"Sponsor since",emptyStandard:"More sponsors wanted — be among the first.",stripTitle:"Thanks to our sponsors",stripSubtitle:"If you need a stable, cost-effective API relay / model service, take a look at AO's sponsors.",viewAll:"View all sponsors",perksBadge:"At a glance",perksTitle:"Exclusive perks summary",perksSubtitle:"Use AO's exclusive links / coupons to enjoy the perks below. Click a coupon to copy.",perksTable:{sponsor:"Sponsor",perk:"Exclusive perk",coupon:"Coupon",link:"Go"},benefitsBadge:"Grow with AO",benefitsTitle:"What you get by sponsoring AO",benefitsSubtitle:"A deep-partnership placement + in-Studio preset access + priority support — reaching developers worldwide.",benefits:[{title:"GitHub README ad slot",desc:"Bilingual (EN/CN) placement in the main AO repo README, reaching developers worldwide on GitHub."},{title:"In-Studio preset access",desc:"Your API preset in AO Studio's key panel — users copy a key from your site and one-click import it, slashing setup friction."},{title:"Sponsors-page placement",desc:"A long-term dedicated slot on the official sponsors page (flagship gets a banner + home exposure), driving precise developer traffic."},{title:"Priority support",desc:"A dedicated channel for fast help with integration, coupon / rev-share settlement, and more."}],faqTitle:"FAQ",faq:[{q:"How do I become an AO sponsor?",a:"Reach us at jnMetaCode@qq.com with your service, desired tier, and the user perk you offer (discount / coupon / rev-share). Once details are confirmed we'll arrange placement and go-live."},{q:"What partnership tiers are there?",a:"Two tiers: Flagship and Partner. Both include sponsors-page placement, in-Studio preset access with a highlighted recommendation, and release-notes acknowledgement. Flagship additionally gets a GitHub README ad slot and home-page exposure, with bilingual display. Details by email."},{q:"How soon can it go live?",a:"After confirming details and receiving assets (logo / blurb / link), typically within 1–3 business days, varying by placement and asset readiness."},{q:"What materials do I need to prepare?",a:"Typically a logo, a short product blurb (CN / EN), an exclusive offer link, and optionally a GitHub README banner image. After we confirm the partnership, we'll share exact size / format requirements and help review the assets."}]},docs:{title:"Docs",subtitle:"From install to your first workflow.",searchPlaceholder:"Search docs...",onThisPage:"On this page",sections:[{heading:"Install",body:"Requires Node.js 18+. After a global install the `ao` command is available.",code:`npm i -g agency-orchestrator
73
73
  ao --version`},{heading:"Compose in one sentence (recommended)",body:"The fastest start: describe your need, AO picks roles, designs the DAG, generates and runs the workflow.",code:'ao compose "I am a developer, help me plan an AI side business targeting $3k/mo" --run'},{heading:"Run an existing workflow",body:"Write a YAML workflow, or run a built-in template directly.",code:`ao run workflows/story-creation.yaml
74
74
  ao validate workflow.yaml # validate only
75
75
  ao plan workflow.yaml # show the DAG plan`},{heading:"Iterate (resume)",body:"Outputs are saved to ao-output/. Unhappy with one step? Re-run just that step and downstream, reusing upstream.",code:"ao run workflow.yaml --resume last --from character_design"},{heading:"Workflow YAML shape",body:"A workflow is roles + tasks + dependencies. Minimal skeleton:",code:`name: "My workflow"
@@ -84,4 +84,4 @@ steps:
84
84
  - id: write
85
85
  role: "marketing/marketing-content-creator"
86
86
  task: "Write a plan from {{research}}"
87
- depends_on: [research]`}],moreInRepo:"Full docs and the list of 216 roles live in the GitHub repo."},tutorials:{badge:"Official + Community",title:"Master Agency Orchestrator",subtitle:"What can you do after generating a workflow in one sentence? Official and community tutorials, from a 5-minute start to advanced practice.",submit:"Submit your tutorial",filterCategory:"Category",filterSource:"Source",all:"All",minRead:"min read",empty:"No tutorials in this category yet.",back:"Back to tutorials",categories:{start:"Start",practice:"Practice",integration:"Integration",troubleshoot:"Troubleshoot",video:"Video"},sources:{official:"Official",community:"Community"}},changelog:{title:"Changelog",subtitle:"Release notes for every Agency Orchestrator version, synced with the repo's CHANGELOG.md.",latest:"Latest",repoLink:"View the full CHANGELOG on GitHub"},experts:{title:"The agency-agents library",subtitle:"200+ finely-tuned AI experts — each a carefully crafted system prompt. AO teams them up from a single sentence. Browse them all here, no install needed.",searchPlaceholder:"Search experts (name / description / category)…",all:"All",countSuffix:"experts",empty:"No matching experts — try another keyword.",repoCta:"View agency-agents on GitHub",copyPrompt:"Copy prompt",viewPrompt:"View prompt",copied:"Copied",copyFailed:"Copy failed",loading:"Loading…",close:"Close",promptHint:"This is the expert's full system prompt — copy it into any AI tool."},footer:{tagline:"One sentence in, a team of AI agents out.",supportLine:"Built to support the agency-agents open-source project.",product:"Product",resources:"Resources",community:"Community",links:{features:"Features",sponsors:"Sponsors",docs:"Docs",tutorials:"Tutorials",github:"GitHub repo",roles:"Role library",issues:"Open an issue",changelog:"Changelog",license:"License"},copyright:"Apache-2.0 License · Open source"},notFound:{title:"Page not found",desc:"Nothing here.",back:"Back home"},common:{loading:"Loading…"}},Ct={zh:vt,en:At},xe=m.createContext(null);function St(){if(typeof window>"u")return"zh";const e=window.location.pathname.split("/").filter(Boolean)[0];if(ce.includes(e))return e;const t=window.localStorage.getItem("ao-lang");return ce.includes(t)?t:navigator.language.toLowerCase().startsWith("zh")?"zh":"en"}function Pt({children:e}){const[t,o]=m.useState(St);m.useEffect(()=>{document.documentElement.lang=t==="zh"?"zh-CN":"en",window.localStorage.setItem("ao-lang",t)},[t]);const n=m.useCallback(s=>o(s),[]),a=m.useCallback(()=>o(s=>s==="zh"?"en":"zh"),[]),r=m.useCallback(s=>t==="zh"?s:`/en${s==="/"?"":s}`,[t]),l=m.useMemo(()=>({lang:t,t:Ct[t],setLang:n,toggle:a,prefix:r}),[t,n,a,r]);return i.jsx(xe.Provider,{value:l,children:e})}function ve(){const e=m.useContext(xe);if(!e)throw new Error("useLanguage must be used within LanguageProvider");return e}const U={name:"Agency Orchestrator",repo:"https://github.com/jnMetaCode/agency-orchestrator",npm:"https://www.npmjs.com/package/agency-orchestrator",rolesRepo:"https://github.com/jnMetaCode/agency-agents-zh",issues:"https://github.com/jnMetaCode/agency-orchestrator/issues",changelog:"https://github.com/jnMetaCode/agency-orchestrator/blob/main/CHANGELOG.md",license:"https://github.com/jnMetaCode/agency-orchestrator/blob/main/LICENSE",evalFindings:"https://github.com/jnMetaCode/agency-orchestrator/blob/main/EVAL_FINDINGS.md",releases:"https://github.com/jnMetaCode/agency-orchestrator/releases/latest",install:"npm i -g agency-orchestrator",sponsorEmail:"jnMetaCode@qq.com",sponsorContact:"mailto:jnMetaCode@qq.com?subject=Sponsorship%20-%20agency-agents",providersKeyed:["DeepSeek","Claude","OpenAI","Gemini","Ollama","Moonshot","硅基流动","OpenRouter"],providersKeyfree:["claude-code CLI","gemini-cli","openclaw-cli","Ollama 本地","LM Studio","免费聚合","演示模式"]};function Tt(){const{t:e,lang:t,toggle:o,prefix:n}=ve(),[a,r]=m.useState(!1),{pathname:l}=ue(),s=[{to:n("/#features"),label:e.nav.features,hash:!0},{to:n("/studio"),label:e.nav.studio},{to:n("/experts"),label:e.nav.experts},{to:n("/docs"),label:e.nav.docs},{to:n("/tutorials"),label:e.nav.tutorials},{to:n("/changelog"),label:e.nav.changelog},{to:n("/sponsors"),label:e.nav.sponsors}];return i.jsxs("header",{className:"fixed inset-x-0 top-0 z-50 border-b border-border/60 bg-background/80 backdrop-blur-xl",children:[i.jsxs("nav",{className:"container-page flex h-16 items-center justify-between",children:[i.jsxs(Ae,{to:n("/"),className:"flex items-center gap-2.5 font-bold",onClick:()=>r(!1),children:[i.jsx("span",{className:"grid h-8 w-8 place-items-center rounded-lg bg-primary text-primary-foreground shadow-lg shadow-primary/30",children:"ao"}),i.jsx("span",{className:"hidden text-[15px] sm:block",children:"Agency Orchestrator"})]}),i.jsx("div",{className:"hidden items-center gap-1 md:flex",children:s.map(c=>c.hash?i.jsx("a",{href:c.to,className:"rounded-lg px-3 py-2 text-sm font-medium text-muted-foreground transition-colors hover:text-foreground",children:c.label},c.to):i.jsx(Ce,{to:c.to,className:({isActive:d})=>ke("rounded-lg px-3 py-2 text-sm font-medium transition-colors hover:text-foreground",d&&l===c.to?"text-foreground":"text-muted-foreground"),children:c.label},c.to))}),i.jsxs("div",{className:"flex items-center gap-1.5",children:[i.jsxs("button",{type:"button",onClick:o,className:"hidden h-9 items-center gap-1.5 rounded-lg border border-border/70 px-2.5 text-xs font-medium text-muted-foreground transition-colors hover:text-foreground sm:inline-flex",children:[i.jsx(Ne,{className:"size-4"}),t==="zh"?"EN":"中"]}),i.jsx(xt,{}),i.jsx(Y,{asChild:!0,size:"sm",variant:"outline",className:"hidden lg:inline-flex",children:i.jsxs("a",{href:U.repo,target:"_blank",rel:"noreferrer",children:[i.jsx(De,{className:"size-4"}),e.nav.star]})}),i.jsx(Y,{asChild:!0,size:"sm",className:"hidden sm:inline-flex",children:i.jsxs("a",{href:U.repo,target:"_blank",rel:"noreferrer",children:[i.jsx(ne,{className:"size-4"}),"GitHub"]})}),i.jsx("button",{type:"button",className:"inline-flex h-9 w-9 items-center justify-center rounded-lg border border-border/70 md:hidden",onClick:()=>r(c=>!c),"aria-label":"Menu",children:a?i.jsx(_e,{className:"size-4"}):i.jsx(Oe,{className:"size-4"})})]})]}),a&&i.jsx("div",{className:"border-t border-border/60 bg-background/95 md:hidden",children:i.jsxs("div",{className:"container-page flex flex-col gap-1 py-3",children:[s.map(c=>i.jsx("a",{href:c.to,onClick:()=>r(!1),className:"rounded-lg px-3 py-2.5 text-sm font-medium text-muted-foreground hover:bg-muted hover:text-foreground",children:c.label},c.to)),i.jsx("button",{type:"button",onClick:()=>{o(),r(!1)},className:"rounded-lg px-3 py-2.5 text-left text-sm font-medium text-muted-foreground hover:bg-muted",children:e.meta.switchTo}),i.jsxs("a",{href:U.repo,target:"_blank",rel:"noreferrer",className:"mt-1 inline-flex items-center gap-2 rounded-lg bg-primary px-3 py-2.5 text-sm font-semibold text-primary-foreground",children:[i.jsx(ne,{className:"size-4"}),"GitHub"]})]})})]})}const Lt=m.lazy(()=>T(()=>import("./Home-DM7EoF7S.js"),__vite__mapDeps([0,1,2,3,4,5,6,7,8,9,10]))),jt=m.lazy(()=>T(()=>import("./Sponsors-DlgFN3VG.js"),__vite__mapDeps([11,1,8,12,7,13,9,4,5,14,10]))),It=m.lazy(()=>T(()=>import("./Studio-B3XF__Yk.js"),__vite__mapDeps([15,1,8,2,5,16,4,12,17,18,19,20,10,9]))),Et=m.lazy(()=>T(()=>import("./Experts-DMJdDpIe.js"),__vite__mapDeps([21,1,8,16,18,5,14,9,10]))),de=m.lazy(()=>T(()=>import("./Docs-9NP2H3s0.js"),__vite__mapDeps([22,1,4,5,8,17,18,9,10]))),Rt=m.lazy(()=>T(()=>import("./Tutorials-CeNhvIuG.js"),__vite__mapDeps([23,1,8,24,13,14,20,9,10]))),Mt=m.lazy(()=>T(()=>import("./TutorialDetail-Dn5rhB6f.js"),__vite__mapDeps([25,1,8,6,4,5,17,24,19,20,9,10]))),Nt=m.lazy(()=>T(()=>import("./Changelog-DNlKP4iX.js"),__vite__mapDeps([26,1,8,6,17,14,9,10]))),Ot=m.lazy(()=>T(()=>import("./NotFound-CiLdwJb3.js"),__vite__mapDeps([27,1,9,10])));function zt(){const{pathname:e,hash:t}=ue();return m.useEffect(()=>{t||window.scrollTo(0,0)},[e,t]),null}function Dt(){const{t:e}=ve();return i.jsx("div",{className:"grid min-h-screen place-items-center text-sm text-muted-foreground",children:e.common.loading})}function Gt(){return i.jsxs(Pt,{children:[i.jsx(zt,{}),i.jsx(Tt,{}),i.jsx(m.Suspense,{fallback:i.jsx(Dt,{}),children:i.jsxs(Se,{children:[["/","/zh","/en"].map(e=>i.jsx(C,{path:e,element:i.jsx(Lt,{})},e)),["/sponsors","/zh/sponsors","/en/sponsors"].map(e=>i.jsx(C,{path:e,element:i.jsx(jt,{})},e)),["/studio","/zh/studio","/en/studio"].map(e=>i.jsx(C,{path:e,element:i.jsx(It,{})},e)),["/experts","/zh/experts","/en/experts"].map(e=>i.jsx(C,{path:e,element:i.jsx(Et,{})},e)),["/docs","/zh/docs","/en/docs"].map(e=>i.jsx(C,{path:e,element:i.jsx(de,{})},e)),["/docs/:slug","/zh/docs/:slug","/en/docs/:slug"].map(e=>i.jsx(C,{path:e,element:i.jsx(de,{})},e)),["/tutorials","/zh/tutorials","/en/tutorials"].map(e=>i.jsx(C,{path:e,element:i.jsx(Rt,{})},e)),["/tutorials/:slug","/zh/tutorials/:slug","/en/tutorials/:slug"].map(e=>i.jsx(C,{path:e,element:i.jsx(Mt,{})},e)),["/changelog","/zh/changelog","/en/changelog"].map(e=>i.jsx(C,{path:e,element:i.jsx(Nt,{})},e)),i.jsx(C,{path:"*",element:i.jsx(Ot,{})})]})})]})}wt();Pe.createRoot(document.getElementById("root")).render(i.jsx(m.StrictMode,{children:i.jsx(Te,{children:i.jsx(Gt,{})})}));export{Y as B,ne as G,U as S,_e as X,ke as a,E as c,ve as u};
87
+ depends_on: [research]`}],moreInRepo:"Full docs and the list of 184 roles live in the GitHub repo."},tutorials:{badge:"Official + Community",title:"Master Agency Orchestrator",subtitle:"What can you do after generating a workflow in one sentence? Official and community tutorials, from a 5-minute start to advanced practice.",submit:"Submit your tutorial",filterCategory:"Category",filterSource:"Source",all:"All",minRead:"min read",empty:"No tutorials in this category yet.",back:"Back to tutorials",categories:{start:"Start",practice:"Practice",integration:"Integration",troubleshoot:"Troubleshoot",video:"Video"},sources:{official:"Official",community:"Community"}},changelog:{title:"Changelog",subtitle:"Release notes for every Agency Orchestrator version, synced with the repo's CHANGELOG.md.",latest:"Latest",repoLink:"View the full CHANGELOG on GitHub"},experts:{title:"The agency-agents library",subtitle:"200+ finely-tuned AI experts — each a carefully crafted system prompt. AO teams them up from a single sentence. Browse them all here, no install needed.",searchPlaceholder:"Search experts (name / description / category)…",all:"All",countSuffix:"experts",empty:"No matching experts — try another keyword.",repoCta:"View agency-agents on GitHub",copyPrompt:"Copy prompt",viewPrompt:"View prompt",copied:"Copied",copyFailed:"Copy failed",loading:"Loading…",close:"Close",promptHint:"This is the expert's full system prompt — copy it into any AI tool."},footer:{tagline:"One sentence in, a team of AI agents out.",supportLine:"Built to support the agency-agents open-source project.",product:"Product",resources:"Resources",community:"Community",links:{features:"Features",sponsors:"Sponsors",docs:"Docs",tutorials:"Tutorials",github:"GitHub repo",roles:"Role library",issues:"Open an issue",changelog:"Changelog",license:"License"},copyright:"Apache-2.0 License · Open source"},notFound:{title:"Page not found",desc:"Nothing here.",back:"Back home"},common:{loading:"Loading…"}},Ct={zh:vt,en:At},xe=m.createContext(null);function St(){if(typeof window>"u")return"zh";const e=window.location.pathname.split("/").filter(Boolean)[0];if(ce.includes(e))return e;const t=window.localStorage.getItem("ao-lang");return ce.includes(t)?t:navigator.language.toLowerCase().startsWith("zh")?"zh":"en"}function Pt({children:e}){const[t,o]=m.useState(St);m.useEffect(()=>{document.documentElement.lang=t==="zh"?"zh-CN":"en",window.localStorage.setItem("ao-lang",t)},[t]);const n=m.useCallback(s=>o(s),[]),a=m.useCallback(()=>o(s=>s==="zh"?"en":"zh"),[]),r=m.useCallback(s=>t==="zh"?s:`/en${s==="/"?"":s}`,[t]),l=m.useMemo(()=>({lang:t,t:Ct[t],setLang:n,toggle:a,prefix:r}),[t,n,a,r]);return i.jsx(xe.Provider,{value:l,children:e})}function ve(){const e=m.useContext(xe);if(!e)throw new Error("useLanguage must be used within LanguageProvider");return e}const U={name:"Agency Orchestrator",repo:"https://github.com/jnMetaCode/agency-orchestrator",npm:"https://www.npmjs.com/package/agency-orchestrator",rolesRepo:"https://github.com/jnMetaCode/agency-agents-zh",issues:"https://github.com/jnMetaCode/agency-orchestrator/issues",changelog:"https://github.com/jnMetaCode/agency-orchestrator/blob/main/CHANGELOG.md",license:"https://github.com/jnMetaCode/agency-orchestrator/blob/main/LICENSE",evalFindings:"https://github.com/jnMetaCode/agency-orchestrator/blob/main/EVAL_FINDINGS.md",releases:"https://github.com/jnMetaCode/agency-orchestrator/releases/latest",install:"npm i -g agency-orchestrator",sponsorEmail:"jnMetaCode@qq.com",sponsorContact:"mailto:jnMetaCode@qq.com?subject=Sponsorship%20-%20agency-agents",providersKeyed:["DeepSeek","Claude","OpenAI","Gemini","Ollama","Moonshot","硅基流动","OpenRouter"],providersKeyfree:["claude-code CLI","gemini-cli","openclaw-cli","Ollama 本地","LM Studio","免费聚合","演示模式"]};function Tt(){const{t:e,lang:t,toggle:o,prefix:n}=ve(),[a,r]=m.useState(!1),{pathname:l}=ue(),s=[{to:n("/#features"),label:e.nav.features,hash:!0},{to:n("/studio"),label:e.nav.studio},{to:n("/experts"),label:e.nav.experts},{to:n("/docs"),label:e.nav.docs},{to:n("/tutorials"),label:e.nav.tutorials},{to:n("/changelog"),label:e.nav.changelog},{to:n("/sponsors"),label:e.nav.sponsors}];return i.jsxs("header",{className:"fixed inset-x-0 top-0 z-50 border-b border-border/60 bg-background/80 backdrop-blur-xl",children:[i.jsxs("nav",{className:"container-page flex h-16 items-center justify-between",children:[i.jsxs(Ae,{to:n("/"),className:"flex items-center gap-2.5 font-bold",onClick:()=>r(!1),children:[i.jsx("span",{className:"grid h-8 w-8 place-items-center rounded-lg bg-primary text-primary-foreground shadow-lg shadow-primary/30",children:"ao"}),i.jsx("span",{className:"hidden text-[15px] sm:block",children:"Agency Orchestrator"})]}),i.jsx("div",{className:"hidden items-center gap-1 md:flex",children:s.map(c=>c.hash?i.jsx("a",{href:c.to,className:"rounded-lg px-3 py-2 text-sm font-medium text-muted-foreground transition-colors hover:text-foreground",children:c.label},c.to):i.jsx(Ce,{to:c.to,className:({isActive:d})=>ke("rounded-lg px-3 py-2 text-sm font-medium transition-colors hover:text-foreground",d&&l===c.to?"text-foreground":"text-muted-foreground"),children:c.label},c.to))}),i.jsxs("div",{className:"flex items-center gap-1.5",children:[i.jsxs("button",{type:"button",onClick:o,className:"hidden h-9 items-center gap-1.5 rounded-lg border border-border/70 px-2.5 text-xs font-medium text-muted-foreground transition-colors hover:text-foreground sm:inline-flex",children:[i.jsx(Ne,{className:"size-4"}),t==="zh"?"EN":"中"]}),i.jsx(xt,{}),i.jsx(Y,{asChild:!0,size:"sm",variant:"outline",className:"hidden lg:inline-flex",children:i.jsxs("a",{href:U.repo,target:"_blank",rel:"noreferrer",children:[i.jsx(De,{className:"size-4"}),e.nav.star]})}),i.jsx(Y,{asChild:!0,size:"sm",className:"hidden sm:inline-flex",children:i.jsxs("a",{href:U.repo,target:"_blank",rel:"noreferrer",children:[i.jsx(ne,{className:"size-4"}),"GitHub"]})}),i.jsx("button",{type:"button",className:"inline-flex h-9 w-9 items-center justify-center rounded-lg border border-border/70 md:hidden",onClick:()=>r(c=>!c),"aria-label":"Menu",children:a?i.jsx(_e,{className:"size-4"}):i.jsx(Oe,{className:"size-4"})})]})]}),a&&i.jsx("div",{className:"border-t border-border/60 bg-background/95 md:hidden",children:i.jsxs("div",{className:"container-page flex flex-col gap-1 py-3",children:[s.map(c=>i.jsx("a",{href:c.to,onClick:()=>r(!1),className:"rounded-lg px-3 py-2.5 text-sm font-medium text-muted-foreground hover:bg-muted hover:text-foreground",children:c.label},c.to)),i.jsx("button",{type:"button",onClick:()=>{o(),r(!1)},className:"rounded-lg px-3 py-2.5 text-left text-sm font-medium text-muted-foreground hover:bg-muted",children:e.meta.switchTo}),i.jsxs("a",{href:U.repo,target:"_blank",rel:"noreferrer",className:"mt-1 inline-flex items-center gap-2 rounded-lg bg-primary px-3 py-2.5 text-sm font-semibold text-primary-foreground",children:[i.jsx(ne,{className:"size-4"}),"GitHub"]})]})})]})}const Lt=m.lazy(()=>T(()=>import("./Home-C7cdNWrI.js"),__vite__mapDeps([0,1,2,3,4,5,6,7,8,9,10]))),jt=m.lazy(()=>T(()=>import("./Sponsors-BnFu-GKz.js"),__vite__mapDeps([11,1,8,12,7,13,9,4,5,14,10]))),It=m.lazy(()=>T(()=>import("./Studio-D_Ku-kNm.js"),__vite__mapDeps([15,1,8,2,5,16,4,12,17,18,19,20,10,9]))),Et=m.lazy(()=>T(()=>import("./Experts-CvZST1I8.js"),__vite__mapDeps([21,1,8,16,18,5,14,9,10]))),de=m.lazy(()=>T(()=>import("./Docs-ZdDG2PwT.js"),__vite__mapDeps([22,1,4,5,8,17,18,9,10]))),Rt=m.lazy(()=>T(()=>import("./Tutorials-vsvoOfz_.js"),__vite__mapDeps([23,1,8,24,13,14,20,9,10]))),Mt=m.lazy(()=>T(()=>import("./TutorialDetail-NWCMMur-.js"),__vite__mapDeps([25,1,8,6,4,5,17,24,19,20,9,10]))),Nt=m.lazy(()=>T(()=>import("./Changelog-DAanbhWT.js"),__vite__mapDeps([26,1,8,6,17,14,9,10]))),Ot=m.lazy(()=>T(()=>import("./NotFound-CQVnENeI.js"),__vite__mapDeps([27,1,9,10])));function zt(){const{pathname:e,hash:t}=ue();return m.useEffect(()=>{t||window.scrollTo(0,0)},[e,t]),null}function Dt(){const{t:e}=ve();return i.jsx("div",{className:"grid min-h-screen place-items-center text-sm text-muted-foreground",children:e.common.loading})}function Gt(){return i.jsxs(Pt,{children:[i.jsx(zt,{}),i.jsx(Tt,{}),i.jsx(m.Suspense,{fallback:i.jsx(Dt,{}),children:i.jsxs(Se,{children:[["/","/zh","/en"].map(e=>i.jsx(C,{path:e,element:i.jsx(Lt,{})},e)),["/sponsors","/zh/sponsors","/en/sponsors"].map(e=>i.jsx(C,{path:e,element:i.jsx(jt,{})},e)),["/studio","/zh/studio","/en/studio"].map(e=>i.jsx(C,{path:e,element:i.jsx(It,{})},e)),["/experts","/zh/experts","/en/experts"].map(e=>i.jsx(C,{path:e,element:i.jsx(Et,{})},e)),["/docs","/zh/docs","/en/docs"].map(e=>i.jsx(C,{path:e,element:i.jsx(de,{})},e)),["/docs/:slug","/zh/docs/:slug","/en/docs/:slug"].map(e=>i.jsx(C,{path:e,element:i.jsx(de,{})},e)),["/tutorials","/zh/tutorials","/en/tutorials"].map(e=>i.jsx(C,{path:e,element:i.jsx(Rt,{})},e)),["/tutorials/:slug","/zh/tutorials/:slug","/en/tutorials/:slug"].map(e=>i.jsx(C,{path:e,element:i.jsx(Mt,{})},e)),["/changelog","/zh/changelog","/en/changelog"].map(e=>i.jsx(C,{path:e,element:i.jsx(Nt,{})},e)),i.jsx(C,{path:"*",element:i.jsx(Ot,{})})]})})]})}wt();Pe.createRoot(document.getElementById("root")).render(i.jsx(m.StrictMode,{children:i.jsx(Te,{children:i.jsx(Gt,{})})}));export{Y as B,ne as G,U as S,_e as X,ke as a,E as c,ve as u};
@@ -1,4 +1,4 @@
1
- import{c as e}from"./index-DQ2cHvK5.js";/**
1
+ import{c as e}from"./index-wcThbHRx.js";/**
2
2
  * @license lucide-react v0.469.0 - ISC
3
3
  *
4
4
  * This source code is licensed under the ISC license.
@@ -1,4 +1,4 @@
1
- import{c}from"./index-DQ2cHvK5.js";/**
1
+ import{c}from"./index-wcThbHRx.js";/**
2
2
  * @license lucide-react v0.469.0 - ISC
3
3
  *
4
4
  * This source code is licensed under the ISC license.
@@ -1,4 +1,4 @@
1
- import{c as a}from"./index-DQ2cHvK5.js";/**
1
+ import{c as a}from"./index-wcThbHRx.js";/**
2
2
  * @license lucide-react v0.469.0 - ISC
3
3
  *
4
4
  * This source code is licensed under the ISC license.
@@ -1,4 +1,4 @@
1
- import{c as r}from"./index-DQ2cHvK5.js";/**
1
+ import{c as r}from"./index-wcThbHRx.js";/**
2
2
  * @license lucide-react v0.469.0 - ISC
3
3
  *
4
4
  * This source code is licensed under the ISC license.
@@ -1,4 +1,4 @@
1
- import{c as a}from"./index-DQ2cHvK5.js";/**
1
+ import{c as a}from"./index-wcThbHRx.js";/**
2
2
  * @license lucide-react v0.469.0 - ISC
3
3
  *
4
4
  * This source code is licensed under the ISC license.
@@ -28,11 +28,11 @@
28
28
  href="https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700;800&family=Fira+Code:wght@400;500&display=swap"
29
29
  rel="stylesheet"
30
30
  />
31
- <script type="module" crossorigin src="/assets/index-DQ2cHvK5.js"></script>
31
+ <script type="module" crossorigin src="/assets/index-wcThbHRx.js"></script>
32
32
  <link rel="modulepreload" crossorigin href="/assets/vendor-react-DvXH3HTt.js">
33
33
  <link rel="modulepreload" crossorigin href="/assets/vendor-radix-Bip5Pqfe.js">
34
34
  <link rel="modulepreload" crossorigin href="/assets/vendor-charts-BiMa1Zmo.js">
35
- <link rel="stylesheet" crossorigin href="/assets/index-xWprUagq.css">
35
+ <link rel="stylesheet" crossorigin href="/assets/index-CO3Yi9rl.css">
36
36
  </head>
37
37
  <body>
38
38
  <noscript>Agency Orchestrator — 一句话,让多个 AI 角色自动协作,几分钟出完整方案。</noscript>
@@ -1,8 +0,0 @@
1
- import{u as m,r as d,j as n}from"./vendor-react-DvXH3HTt.js";import{S as p}from"./SiteFooter-CLIQXwew.js";import{B as c}from"./badge-B-L-y5fx.js";import{M as u}from"./Markdown-DCC1nLQ-.js";import{c as h,u as x,S as g}from"./index-DQ2cHvK5.js";import{A as f}from"./arrow-up-right-Cn4ATaZ1.js";import"./vendor-radix-Bip5Pqfe.js";import"./vendor-charts-BiMa1Zmo.js";/**
2
- * @license lucide-react v0.469.0 - ISC
3
- *
4
- * This source code is licensed under the ISC license.
5
- * See the LICENSE file in the root directory of this source tree.
6
- */const L=h("Tag",[["path",{d:"M12.586 2.586A2 2 0 0 0 11.172 2H4a2 2 0 0 0-2 2v7.172a2 2 0 0 0 .586 1.414l8.704 8.704a2.426 2.426 0 0 0 3.42 0l6.58-6.58a2.426 2.426 0 0 0 0-3.42z",key:"vktsd0"}],["circle",{cx:"7.5",cy:"7.5",r:".5",fill:"currentColor",key:"kqv944"}]]),v='# Changelog\n\n本项目采用 [语义化版本](https://semver.org/lang/zh-CN/)。\n\n## [Unreleased]\n\n## [0.7.2] - 2026-06-16\n\n### Changed\n- **角色库升级到 agency-agents-zh 1.2.2**:中文角色 **211 → 216**(新增服装厂排产工程师等;并带来 Hermes Windows 目录修复、Qoder 集成、ai-citation-strategist 中文化)。全站计数统一为 **216 中文 / 184 英文**(README / 官网 / 文档 / 教程 / About)。\n\n### Fixed\n- 官网专家库清理一个失效角色的孤儿提示词(`support-supply-chain-strategist`,1.2.x 已移除)。\n\n## [0.7.1] - 2026-06-16\n\n### Fixed\n- **嵌套角色现在可枚举 / 可用**:角色加载改为**递归**子目录,`game-development/unity/*`、`unreal-engine/*`、`roblox-studio/*`、`godot/*`、`blender/*` 等 15 个嵌套智能体此前无法被 `listAgents` / `ao roles` / compose 建议发现(loader 只扫一层)——现在补齐,中文库角色数与官方一致达到 **211**(英文库 184)。\n- **枚举只认真角色**:仅纳入带 `name:` frontmatter 的 `.md`,排除 `QUICKSTART` / `EXECUTIVE-BRIEF` 等攻略 / 模板文档(此前会被当成"角色"混入列表)。\n- **官网专家库补齐**:`gen-experts.mjs` 同步递归,专家浏览 / 复制提示词覆盖全部 211(zh)+ 184(en),不再漏掉游戏开发类嵌套专家。\n\n## [0.7.0] - 2026-06-16\n\n### Added\n- **网页 Studio + 桌面客户端**:本地 `ao web` 启动可视化 Studio(角色组队 / 工作流 / 运行历史 / 用量 / 密钥);同一套 UI 打包为 Electron 桌面客户端(macOS arm64+Intel · Windows · Linux),经 GitHub Actions 一键发布到 Releases,官网提供下载入口。key 只存本机。\n- **Studio / 官网全面双语化 + 英文资源**:UI、角色库、工作流模板按语言切换(`/en` 读英文 `agency-agents` 库与 `workflows-en/` 模板,不再混中文)。\n- **CompShare(优云智算)provider 内置**:OpenAI 兼容接入,填 key 即用(`COMPSHARE_API_KEY` / `COMPSHARE_BASE_URL`)。\n- **一键复制完整提示词**:Studio 专家详情与公开站「专家库」页都能查看 / 复制每位专家的完整系统提示词(公开站读静态 `experts.json` + `/prompts/*.md`)。\n- **公开站 `/studio` 演示模式**:无后端也能浏览全部专家、查看 / 复制提示词;填 key 与运行被引导到「安装客户端 / 本地运行」。\n- **`ao roles <关键词>` 角色搜索**:按 角色路径 / 名称 / 描述 不区分大小写过滤(也支持 `--search`);无匹配给友好提示。\n- **`ao init` 首跑向导**:角色库装好后自动探测可用 provider(优先免 key 的 claude-code CLI / Ollama),按环境给出个性化下一步,缩短「安装→价值」。\n- **评测回归门禁**:黄金任务集抽到 `eval/golden-tasks.ts`;新增 `eval/gate.ts` 与 `npm run eval:gate` / `eval:baseline`——胜率阈值 + judge 双向一致率阈值 + 基线快照回归判定,judge 太弱时判 INCONCLUSIVE(绝不当通过)。\n\n### Changed\n- **`ao compose` 幻觉角色确定性修复**:生成的工作流引用不存在的角色时,优先用最接近的**真实角色直接改写 YAML**(不再多花一次 LLM 调用、保证产物可运行),无可信匹配才回退 LLM;并在 LLM 重试后再做确定性兜底,堵住「重试后仍残留坏角色却被当成功」的缺口。\n- **打包内容**:npm 包额外纳入 `web/`、`website/dist/`、`workflows-en/`,`prepublishOnly` 自动构建引擎 + Studio。\n\n### Tests\n- 新增 `test/roles.ts`、`test/init.ts`、`test/eval-gate.ts` 并并入 `npm test`;`test/compose.ts` 覆盖确定性角色修复。\n\n## [0.6.17] - 2026-04-29\n\n### Added\n- 模板库扩充:5 个手写精调高质量 workflow,覆盖个人 / 中小团队高频场景\n - `tech-blog.yaml` — 技术博客创作(调研 → 大纲 → 正文 → 润色,4 步)\n - `meeting-notes.yaml` — 会议纪要整理(清理 → 决策/TODO/争议 三视角并行 → 整合,5 步)\n - `okr-decomposition.yaml` — OKR 拆解(现状分析 → 季度 KR → Q1 行动方案 → 完整文档,4 步)\n - `product-launch-comms.yaml` — 产品发布物料(统一定位 → 通稿 / 社交 / 邮件 三件套并行 → 物料包,5 步)\n - `pitch-deck-outline.yaml` — 创业 Pitch Deck 大纲(市场 / 方案 / 商业模式 / 财务 四角度并行 → 5 屏 deck,5 步)\n- 内置 workflow 总数从 44 个增加到 **49 个**,全部 validate 通过\n\n### Notes\n- 5 个模板都是"输入一句话 / 一段简介 → 多角度并行展开 → 整合"的纯 LLM 任务,不依赖外部数据 / 联网,零歧义\n- 每个模板的 task 描述都精确指定输出格式(markdown 模板)和约束(字数 / 结构 / 不许 AI 套话),避免 LLM 输出泛泛而谈\n- 默认 provider deepseek-chat(最便宜稳),用户可用 `--provider` 覆盖\n\n## [0.6.16] - 2026-04-29\n\n### Changed\n- **`ao demo` 重构:检测优先,去掉预录 mock**\n - 检测到可用 LLM(CLI / API key / Ollama)→ **直接真跑** story-creation 工作流,无需"先看 mock 再确认"\n - 没检测到 → 显示**真实 DAG 结构**(用 ao 自身的 `formatDAG`)+ 3 行行动指引(Claude Code / DeepSeek / Ollama 任选)\n - 删掉旧的 `MOCK_STEPS` 预录数据 + `replayMockSteps` 函数(共 ~150 行)。原 mock 内容是精修过的小说创作,让用户对真跑的输出期望被错误抬高,且占用 5 秒注意力后还要再问 y/n,链路过长\n - 体验路径从 "mock 5s → 选 provider → y/n → 真跑" 简化为 "检测 → 真跑" 或 "检测 → DAG + 配 key 指引"\n\n## [0.6.15] - 2026-04-27\n\n### Fixed\n- CLI provider(claude-code / gemini-cli / copilot-cli / codex-cli / openclaw-cli / hermes-cli)在"进程退出码 0 但 stdout 完全空"时,cli-base.ts 之前会默默返回空字符串给上层,导致 `ao compose` 报出迷惑性的"AI 生成的内容不是有效的 workflow YAML",真实根因被吞。现在直接 reject 并给出诊断 hint:可能是 CLI 命令格式过期(参考 issue #14 hermes 的 `chat -q` → `-z`)、agent / model 配置错、或需要先认证。错误消息附上"在终端直接跑一次该命令看真实输出"的具体调试建议\n\n### Tests\n- 新增 test/cli-base.ts:覆盖 4 类场景(exit 0 + 空输出 reject / 正常输出 / exit 非 0 + stderr / ENOENT 提示安装),全量从 135 项增加到 **139 项**\n\n## [0.6.14] - 2026-04-27\n\n### Fixed\n- **#16** DeepSeek 原生 connector 在某些用户环境下报 `405 Method Not Allowed`。根因:commit `f96d7b0` 让 deepseek case fallback 到 `OPENAI_BASE_URL` env,但用户先用 `ao init --provider openai --base-url https://api.openai.com/v1` 写入过 `OPENAI_BASE_URL` 后切到 deepseek,会用 OpenAI endpoint + DeepSeek key 调用,得到 405。修复:每个 provider 用自己专属的 BASE_URL env(deepseek → `DEEPSEEK_BASE_URL`,openai → `OPENAI_BASE_URL`),不再跨污染。`ao init` 也对应路由到正确 env\n\n### Tests\n- 修补一个发版 process 漏洞:`factory-custom.ts` / `step-llm.ts` / `step-llm-yaml.ts` / `stdin-limit.ts` / `compose-name.ts` 这 5 个测试文件之前**根本没在 `npm test` 里跑**(21 项 +1 项新加的测试都不被 CI 守护)。补进 test 脚本,全量从 114 项增加到 **135 项**\n- 新增 2 项 factory-custom 测试覆盖 #16:deepseek 不被 OPENAI_BASE_URL 污染 / DEEPSEEK_BASE_URL 自定义代理仍生效\n\n## [0.6.13] - 2026-04-27\n\n### Fixed\n- **回归修复**:0.6.12 新加的"output 唯一性校验"对两类合法的 ao 设计模式误报,导致 6 个内置 workflow 在 validate 时失败。现在校验放过两类例外:\n - **`any_completed` 分支收敛**:多个并行 step 产出同名 output,下游用 `depends_on_mode: any_completed` 引用,是有意的"任一分支完成即走"设计(如 incident-response.yaml 的多团队并行分析、hiring-pipeline.yaml 的多维度评估)\n - **loop 迭代覆盖**:种子 step 产生初始值 + loop step 反复覆盖同名 output,是常见的"原地修改"迭代模式(如 content-publish.yaml 的 write/revise 循环)\n- 修了 3 个内置 workflow 的拓扑反向引用:legal-consultation.yaml / investment-analysis.yaml / xiaohongshu-content.yaml 的相关 step 补 `depends_on`(不是新校验过严,是 yaml 本身设计就有缺陷,新校验把它们暴露出来)\n\n### Tests\n- 新增 2 项 parser 测试覆盖 any_completed / loop 迭代覆盖的合法重名例外\n- E2E 验证:44 个内置 workflow 现在全部通过 validate\n\n## [0.6.12] - 2026-04-27\n\n### Fixed\n- **#14** `hermes-cli` connector 用旧参数 `chat -q` 调用 hermes,新版 hermes 已废弃此用法、改为 `-z`(oneshot)。修正参数让 hermes provider 重新可用\n- `validateWorkflow` 之前只检查"变量是否在某处定义",不检查"是否在引用方的 DAG 上游"。一个 step 引用下游 step 的 output(拓扑反向)会通过校验,到 run 阶段才崩。现在校验阶段就拦下,错误提示明确指出"该变量由非上游 step 产出,需要把对应 step 加进 depends_on"。和 autoFix 的拓扑约束保持一致\n- `validateWorkflow` 加 `step.output` 唯一性检查。两个 step 不能 output 到同一个变量名(重名会让下游引用拿到的值依赖 context Map 写入顺序,不可预期)\n- `validateWorkflow` 的变量引用检查范围扩到 `step.condition` / `step.loop.exit_condition` / `step.prompt`。之前只看 `step.task`,让条件分支表达式里的未定义变量漏检\n\n### Tests\n- 新增 3 项 parser 测试覆盖:拓扑反向引用 / output 重名 / condition 字段里的未定义变量\n\n## [0.6.11] - 2026-04-27\n\n### Fixed\n- `repairWithLLM` 失败时静默吞错。LLM 调用因网络/认证/超时失败时不再悄悄返回,会在 stderr 给出失败原因,避免用户看到 "LLM 修复后仍有 X 个变量未解决" 误以为 LLM 修了但不够,实际是根本没调通\n\n### Tests\n- 新增 1 项测试覆盖跨 step 同名 bad var 的已知边界行为(全局 replace 只处理一次,靠 LLM repair 兜底)\n\n## [0.6.10] - 2026-04-27\n\n### Fixed\n- `ao compose --run` 生成的 YAML 中变量引用错误的修复链全面强化。原 `autoFixVariableRefs` 启发式有两个核心缺陷:\n - 模糊匹配在**全局 outputs** 范围内找替换目标,能把"早期 step 引用未来 step output"配上(DAG 拓扑反向),例如 `{{personal_assessment}}` 被错误地改成 `{{final_report}}`\n - 启发式覆盖不全时直接放弃,没有 LLM 兜底\n- 现在的修复链:\n - autoFix 加 **DAG 上游约束**:替换目标必须在当前 step 的 `depends_on` 递归闭包内的 step.output 集合里。指向下游或跨支的错改不再可能\n - autoFix 修不全时自动调 **LLM 二次修复**:把当前 YAML、未解决的变量列表、可用 inputs/outputs 喂给 LLM,让它选择改 task 引用 / 加 step output / 补 depends_on\n - `--run` 模式在 compose 阶段就检查"未定义变量 / 角色不存在 / 解析失败"等致命错误,不再放进 run 阶段才崩溃;abort 时给出清晰的"重新生成 / 手动修改"建议\n\n### Changed\n- compose system prompt(中英)加两条规则:(1) 每个 `{{X}}` 引用的 X 必须在 inputs 或上游 step.output 中;(2) merge / 汇总类 step 的 `depends_on` 必须列出所有产生引用变量的上游 step\n\n## [0.6.9] - 2026-04-24\n\n### Fixed\n- Windows 上 `ao run` / `ao compose` / `ao serve` 找不到包内置 / node_modules 下的 agents 目录,报 "agents 目录不存在"。根因:`new URL(import.meta.url).pathname` 在 Windows 上返回 `/C:/Users/...` 这种前导斜杠非法路径,`dirname` + `resolve` 后所有依赖 scriptDir 的候选路径全部失效。改用 `node:url` 的 `fileURLToPath` 跨平台 API 正确解析。Mac/Linux 行为不变\n\n## [0.6.8] - 2026-04-24\n\n### Changed\n- 超时重试递增的上限从 900s 提到 3600s(60 分钟)。原上限对 CLI / ollama 长任务偏紧:CLI 默认 600s 起跳第一次递增就封顶,用户 `--timeout 20m` 起点已超上限完全不递增。抬到 60min 后覆盖绝大多数真实长任务;仍然保留上限作为"防误配置放飞"的保险丝。真要超过 1 小时单步用 `timeout: 0` / `--timeout 0` 完全不限时\n\n## [0.6.7] - 2026-04-23\n\n### Added\n- `ao run` / `ao compose` 新增 `--timeout <value>` 参数。支持 `300000`(毫秒)、`300s`(秒)、`5m`(分钟)、`0`(不限时)。命令行优先级高于 YAML 里的 `llm.timeout`\n- 因超时触发重试时,下一次 timeout 自动 x1.5 递增(上限 900s,本版本后续被提到 3600s)。递增同时作用于 connector 内层 fetch/CLI timeout,避免内层 hard timeout 提前 abort\n\n### Changed\n- `ao compose` 生成的 YAML 默认 `timeout` 从 120000 抬到 300000(API 类 provider)。ollama 和 CLI 类保持 600000\n- `withTimeout` 错误消息加引导:"超时 (Xms),可用 --timeout 或 YAML llm.timeout 延长"\n\n### Fixed\n- `classifyError` 5xx / 429 状态码改用 `\\b` 单词边界匹配。原 `msg.includes(\'500\')` 等会把 "450000ms"、"1500ms"、"1429ms" 等字符串里的数字子串误判成 HTTP 错误,导致超时错误被错误归类为 server_error,递增逻辑失效\n- `classifyError` 现在识别中文"超时"字样。之前 `withTimeout` 抛出的 `超时 (120000ms)` 被归为 non_retryable,retry 根本不触发\n- `timeout: 0`(不限时)现在真正生效。原 `effectiveConfig.timeout || default` 把 0 当 falsy 用默认值覆盖了,改成 `!== undefined` 判断\n',y=/^##\s*\[([^\]]+)\]\s*(?:-\s*(.+))?$/;function k(s=v){const t=s.split(`
7
- `),o=[];let e=null,a=[];const r=()=>{e&&(e.body=a.join(`
8
- `).trim(),o.push(e))};for(const l of t){const i=l.match(y);i?(r(),e={version:i[1].trim(),date:(i[2]??"").trim(),body:""},a=[]):e&&a.push(l)}return r(),o}const A=k();function b(s){return`v${s.replace(/[^\w.-]/g,"-")}`}function j(){const{t:s}=x(),t=s.changelog,{hash:o}=m();return d.useEffect(()=>{if(!o)return;const e=document.getElementById(o.slice(1));e&&e.scrollIntoView({behavior:"smooth",block:"start"})},[o]),n.jsxs(n.Fragment,{children:[n.jsx("main",{className:"pt-24",children:n.jsxs("div",{className:"container-page max-w-3xl pb-20",children:[n.jsx("h1",{className:"text-3xl font-extrabold tracking-tight sm:text-4xl",children:t.title}),n.jsx("p",{className:"mt-3 text-muted-foreground",children:t.subtitle}),n.jsx("div",{className:"mt-10 space-y-5",children:A.map((e,a)=>{const r=b(e.version);return n.jsxs("section",{id:r,className:"scroll-mt-24 rounded-2xl border border-border/70 bg-card/60 p-6",children:[n.jsxs("div",{className:"flex flex-wrap items-center gap-3",children:[n.jsxs("a",{href:`#${r}`,className:"inline-flex items-center gap-1.5 text-xl font-bold hover:text-primary",children:[n.jsx(L,{className:"size-4 text-primary"}),/^\d/.test(e.version)?`v${e.version}`:e.version]}),a===0&&n.jsx(c,{className:"border-primary/30 bg-primary/10 text-primary",children:t.latest}),e.date&&n.jsx("span",{className:"text-sm text-muted-foreground",children:e.date})]}),e.body&&n.jsx(u,{className:"mt-4",children:e.body})]},e.version)})}),n.jsxs("a",{href:g.changelog,target:"_blank",rel:"noreferrer",className:"mt-12 inline-flex items-center gap-1.5 rounded-xl border border-border/70 bg-card/60 px-4 py-3 text-sm font-medium hover:border-primary/40",children:[t.repoLink,n.jsx(f,{className:"size-4 text-primary"})]})]})}),n.jsx(p,{})]})}export{j as default};
@@ -1 +0,0 @@
1
- *,:before,:after{--tw-border-spacing-x: 0;--tw-border-spacing-y: 0;--tw-translate-x: 0;--tw-translate-y: 0;--tw-rotate: 0;--tw-skew-x: 0;--tw-skew-y: 0;--tw-scale-x: 1;--tw-scale-y: 1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness: proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width: 0px;--tw-ring-offset-color: #fff;--tw-ring-color: rgb(59 130 246 / .5);--tw-ring-offset-shadow: 0 0 #0000;--tw-ring-shadow: 0 0 #0000;--tw-shadow: 0 0 #0000;--tw-shadow-colored: 0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: ;--tw-contain-size: ;--tw-contain-layout: ;--tw-contain-paint: ;--tw-contain-style: }::backdrop{--tw-border-spacing-x: 0;--tw-border-spacing-y: 0;--tw-translate-x: 0;--tw-translate-y: 0;--tw-rotate: 0;--tw-skew-x: 0;--tw-skew-y: 0;--tw-scale-x: 1;--tw-scale-y: 1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness: proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width: 0px;--tw-ring-offset-color: #fff;--tw-ring-color: rgb(59 130 246 / .5);--tw-ring-offset-shadow: 0 0 #0000;--tw-ring-shadow: 0 0 #0000;--tw-shadow: 0 0 #0000;--tw-shadow-colored: 0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: ;--tw-contain-size: ;--tw-contain-layout: ;--tw-contain-paint: ;--tw-contain-style: }*,:before,:after{box-sizing:border-box;border-width:0;border-style:solid;border-color:#e5e7eb}:before,:after{--tw-content: ""}html,:host{line-height:1.5;-webkit-text-size-adjust:100%;-moz-tab-size:4;-o-tab-size:4;tab-size:4;font-family:Inter,SF Pro Display,-apple-system,BlinkMacSystemFont,PingFang SC,Microsoft YaHei,sans-serif;font-feature-settings:normal;font-variation-settings:normal;-webkit-tap-highlight-color:transparent}body{margin:0;line-height:inherit}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-family:Fira Code,JetBrains Mono,SF Mono,monospace;font-feature-settings:normal;font-variation-settings:normal;font-size:1em}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}button,input,optgroup,select,textarea{font-family:inherit;font-feature-settings:inherit;font-variation-settings:inherit;font-size:100%;font-weight:inherit;line-height:inherit;letter-spacing:inherit;color:inherit;margin:0;padding:0}button,select{text-transform:none}button,input:where([type=button]),input:where([type=reset]),input:where([type=submit]){-webkit-appearance:button;background-color:transparent;background-image:none}:-moz-focusring{outline:auto}:-moz-ui-invalid{box-shadow:none}progress{vertical-align:baseline}::-webkit-inner-spin-button,::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}summary{display:list-item}blockquote,dl,dd,h1,h2,h3,h4,h5,h6,hr,figure,p,pre{margin:0}fieldset{margin:0;padding:0}legend{padding:0}ol,ul,menu{list-style:none;margin:0;padding:0}dialog{padding:0}textarea{resize:vertical}input::-moz-placeholder,textarea::-moz-placeholder{opacity:1;color:#9ca3af}input::placeholder,textarea::placeholder{opacity:1;color:#9ca3af}button,[role=button]{cursor:pointer}:disabled{cursor:default}img,svg,video,canvas,audio,iframe,embed,object{display:block;vertical-align:middle}img,video{max-width:100%;height:auto}[hidden]:where(:not([hidden=until-found])){display:none}:root{--background: 0 0% 100%;--foreground: 222 28% 12%;--card: 0 0% 100%;--card-foreground: 222 28% 12%;--primary: 256 84% 60%;--primary-foreground: 0 0% 100%;--secondary: 256 30% 96%;--secondary-foreground: 256 40% 30%;--muted: 220 16% 96%;--muted-foreground: 220 10% 44%;--accent: 256 84% 60%;--accent-foreground: 0 0% 100%;--gold: 38 92% 50%;--gold-foreground: 30 40% 14%;--border: 220 16% 90%;--input: 220 16% 90%;--ring: 256 84% 60%;--radius: .75rem}.dark{--background: 222 30% 7%;--foreground: 220 20% 92%;--card: 222 26% 10%;--card-foreground: 220 20% 92%;--primary: 256 90% 70%;--primary-foreground: 222 30% 9%;--secondary: 250 24% 16%;--secondary-foreground: 250 30% 86%;--muted: 222 20% 15%;--muted-foreground: 220 12% 62%;--accent: 256 90% 70%;--accent-foreground: 222 30% 9%;--gold: 40 96% 58%;--gold-foreground: 30 40% 12%;--border: 222 18% 20%;--input: 222 18% 20%;--ring: 256 90% 70%}*{border-color:hsl(var(--border))}html{scroll-behavior:smooth}body{background-color:hsl(var(--background));font-family:Inter,SF Pro Display,-apple-system,BlinkMacSystemFont,PingFang SC,Microsoft YaHei,sans-serif;color:hsl(var(--foreground));-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-feature-settings:"cv02","cv03","cv04","cv11"}::-moz-selection{background-color:hsl(var(--primary) / .25)}::selection{background-color:hsl(var(--primary) / .25)}.pointer-events-none{pointer-events:none}.fixed{position:fixed}.absolute{position:absolute}.relative{position:relative}.sticky{position:sticky}.inset-0{top:0;right:0;bottom:0;left:0}.inset-x-0{left:0;right:0}.-right-20{right:-5rem}.-top-20{top:-5rem}.bottom-0{bottom:0}.bottom-4{bottom:1rem}.left-1\/2{left:50%}.left-3{left:.75rem}.right-2{right:.5rem}.right-3{right:.75rem}.right-4{right:1rem}.top-0{top:0}.top-1\/2{top:50%}.top-16{top:4rem}.top-2{top:.5rem}.top-3{top:.75rem}.top-4{top:1rem}.-z-10{z-index:-10}.z-30{z-index:30}.z-40{z-index:40}.z-50{z-index:50}.z-\[55\]{z-index:55}.z-\[58\]{z-index:58}.z-\[60\]{z-index:60}.m-4{margin:1rem}.mx-auto{margin-left:auto;margin-right:auto}.my-2{margin-top:.5rem;margin-bottom:.5rem}.my-3{margin-top:.75rem;margin-bottom:.75rem}.-ml-px{margin-left:-1px}.mb-1{margin-bottom:.25rem}.mb-1\.5{margin-bottom:.375rem}.mb-2{margin-bottom:.5rem}.mb-2\.5{margin-bottom:.625rem}.mb-3{margin-bottom:.75rem}.mb-4{margin-bottom:1rem}.mb-5{margin-bottom:1.25rem}.mb-6{margin-bottom:1.5rem}.ml-0\.5{margin-left:.125rem}.ml-2{margin-left:.5rem}.ml-3{margin-left:.75rem}.ml-auto{margin-left:auto}.mr-1{margin-right:.25rem}.mt-0\.5{margin-top:.125rem}.mt-1{margin-top:.25rem}.mt-1\.5{margin-top:.375rem}.mt-10{margin-top:2.5rem}.mt-12{margin-top:3rem}.mt-16{margin-top:4rem}.mt-2{margin-top:.5rem}.mt-2\.5{margin-top:.625rem}.mt-3{margin-top:.75rem}.mt-4{margin-top:1rem}.mt-5{margin-top:1.25rem}.mt-6{margin-top:1.5rem}.mt-7{margin-top:1.75rem}.mt-8{margin-top:2rem}.line-clamp-2{overflow:hidden;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2}.line-clamp-4{overflow:hidden;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:4}.block{display:block}.inline-block{display:inline-block}.inline{display:inline}.flex{display:flex}.inline-flex{display:inline-flex}.table{display:table}.grid{display:grid}.hidden{display:none}.size-1\.5{width:.375rem;height:.375rem}.size-10{width:2.5rem;height:2.5rem}.size-11{width:2.75rem;height:2.75rem}.size-12{width:3rem;height:3rem}.size-14{width:3.5rem;height:3.5rem}.size-3{width:.75rem;height:.75rem}.size-3\.5{width:.875rem;height:.875rem}.size-4{width:1rem;height:1rem}.size-5{width:1.25rem;height:1.25rem}.size-6{width:1.5rem;height:1.5rem}.size-7{width:1.75rem;height:1.75rem}.size-8{width:2rem;height:2rem}.size-9{width:2.25rem;height:2.25rem}.h-10{height:2.5rem}.h-11{height:2.75rem}.h-12{height:3rem}.h-16{height:4rem}.h-2\.5{height:.625rem}.h-28{height:7rem}.h-3{height:.75rem}.h-4{height:1rem}.h-64{height:16rem}.h-8{height:2rem}.h-80{height:20rem}.h-9{height:2.25rem}.h-\[480px\]{height:480px}.h-full{height:100%}.h-px{height:1px}.max-h-72{max-height:18rem}.max-h-\[460px\]{max-height:460px}.max-h-\[60vh\]{max-height:60vh}.max-h-\[70vh\]{max-height:70vh}.max-h-\[90vh\]{max-height:90vh}.min-h-\[180px\]{min-height:180px}.min-h-\[260px\]{min-height:260px}.min-h-\[60vh\]{min-height:60vh}.min-h-screen{min-height:100vh}.w-1\.5{width:.375rem}.w-10{width:2.5rem}.w-11{width:2.75rem}.w-12{width:3rem}.w-16{width:4rem}.w-28{width:7rem}.w-3{width:.75rem}.w-4{width:1rem}.w-5{width:1.25rem}.w-64{width:16rem}.w-72{width:18rem}.w-8{width:2rem}.w-9{width:2.25rem}.w-\[260px\]{width:260px}.w-\[640px\]{width:640px}.w-\[820px\]{width:820px}.w-full{width:100%}.min-w-0{min-width:0px}.min-w-\[300px\]{min-width:300px}.max-w-2xl{max-width:42rem}.max-w-3xl{max-width:48rem}.max-w-5xl{max-width:64rem}.max-w-\[200px\]{max-width:200px}.max-w-\[380px\]{max-width:380px}.max-w-lg{max-width:32rem}.max-w-md{max-width:28rem}.max-w-sm{max-width:24rem}.max-w-xl{max-width:36rem}.max-w-xs{max-width:20rem}.flex-1{flex:1 1 0%}.shrink-0{flex-shrink:0}.border-collapse{border-collapse:collapse}.-translate-x-1\/2{--tw-translate-x: -50%;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.-translate-y-1\/2{--tw-translate-y: -50%;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.translate-y-0\.5{--tw-translate-y: .125rem;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.rotate-180{--tw-rotate: 180deg;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}@keyframes pulse{50%{opacity:.5}}.animate-pulse{animation:pulse 2s cubic-bezier(.4,0,.6,1) infinite}@keyframes spin{to{transform:rotate(360deg)}}.animate-spin{animation:spin 1s linear infinite}.resize-none{resize:none}.scroll-mt-20{scroll-margin-top:5rem}.scroll-mt-24{scroll-margin-top:6rem}.list-decimal{list-style-type:decimal}.list-disc{list-style-type:disc}.grid-cols-1{grid-template-columns:repeat(1,minmax(0,1fr))}.grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.flex-col{flex-direction:column}.flex-wrap{flex-wrap:wrap}.place-items-center{place-items:center}.items-start{align-items:flex-start}.items-end{align-items:flex-end}.items-center{align-items:center}.items-baseline{align-items:baseline}.items-stretch{align-items:stretch}.justify-end{justify-content:flex-end}.justify-center{justify-content:center}.justify-between{justify-content:space-between}.gap-1{gap:.25rem}.gap-1\.5{gap:.375rem}.gap-10{gap:2.5rem}.gap-2{gap:.5rem}.gap-2\.5{gap:.625rem}.gap-3{gap:.75rem}.gap-3\.5{gap:.875rem}.gap-4{gap:1rem}.gap-5{gap:1.25rem}.gap-8{gap:2rem}.gap-x-3{-moz-column-gap:.75rem;column-gap:.75rem}.gap-x-4{-moz-column-gap:1rem;column-gap:1rem}.gap-y-0\.5{row-gap:.125rem}.gap-y-1{row-gap:.25rem}.gap-y-2{row-gap:.5rem}.-space-x-2>:not([hidden])~:not([hidden]){--tw-space-x-reverse: 0;margin-right:calc(-.5rem * var(--tw-space-x-reverse));margin-left:calc(-.5rem * calc(1 - var(--tw-space-x-reverse)))}.space-y-0\.5>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(.125rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.125rem * var(--tw-space-y-reverse))}.space-y-1>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(.25rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.25rem * var(--tw-space-y-reverse))}.space-y-1\.5>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(.375rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.375rem * var(--tw-space-y-reverse))}.space-y-10>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(2.5rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(2.5rem * var(--tw-space-y-reverse))}.space-y-2>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(.5rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.5rem * var(--tw-space-y-reverse))}.space-y-2\.5>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(.625rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.625rem * var(--tw-space-y-reverse))}.space-y-3>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(.75rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.75rem * var(--tw-space-y-reverse))}.space-y-5>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(1.25rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(1.25rem * var(--tw-space-y-reverse))}.space-y-6>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(1.5rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(1.5rem * var(--tw-space-y-reverse))}.overflow-auto{overflow:auto}.overflow-hidden{overflow:hidden}.overflow-x-auto{overflow-x:auto}.truncate{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.whitespace-nowrap{white-space:nowrap}.whitespace-pre-wrap{white-space:pre-wrap}.text-balance{text-wrap:balance}.text-pretty{text-wrap:pretty}.break-words{overflow-wrap:break-word}.rounded{border-radius:.25rem}.rounded-2xl{border-radius:1.5rem}.rounded-3xl{border-radius:2rem}.rounded-full{border-radius:9999px}.rounded-lg{border-radius:var(--radius)}.rounded-md{border-radius:calc(var(--radius) - 2px)}.rounded-none{border-radius:0}.rounded-sm{border-radius:calc(var(--radius) - 4px)}.rounded-xl{border-radius:1rem}.rounded-t-2xl{border-top-left-radius:1.5rem;border-top-right-radius:1.5rem}.border{border-width:1px}.border-0{border-width:0px}.border-b{border-bottom-width:1px}.border-l{border-left-width:1px}.border-l-2{border-left-width:2px}.border-t{border-top-width:1px}.border-dashed{border-style:dashed}.border-amber-500\/40{border-color:#f59e0b66}.border-border{border-color:hsl(var(--border))}.border-border\/60{border-color:hsl(var(--border) / .6)}.border-border\/70{border-color:hsl(var(--border) / .7)}.border-emerald-500\/40{border-color:#10b98166}.border-gold\/30{border-color:hsl(var(--gold) / .3)}.border-gold\/40{border-color:hsl(var(--gold) / .4)}.border-primary{border-color:hsl(var(--primary))}.border-primary\/30{border-color:hsl(var(--primary) / .3)}.border-primary\/40{border-color:hsl(var(--primary) / .4)}.border-primary\/45{border-color:hsl(var(--primary) / .45)}.border-primary\/50{border-color:hsl(var(--primary) / .5)}.border-primary\/60{border-color:hsl(var(--primary) / .6)}.border-red-500\/30{border-color:#ef44444d}.border-red-500\/40{border-color:#ef444466}.border-transparent{border-color:transparent}.border-white\/10{border-color:#ffffff1a}.bg-\[\#0b0e16\]{--tw-bg-opacity: 1;background-color:rgb(11 14 22 / var(--tw-bg-opacity, 1))}.bg-\[\#27c93f\]{--tw-bg-opacity: 1;background-color:rgb(39 201 63 / var(--tw-bg-opacity, 1))}.bg-\[\#ff5f56\]{--tw-bg-opacity: 1;background-color:rgb(255 95 86 / var(--tw-bg-opacity, 1))}.bg-\[\#ffbd2e\]{--tw-bg-opacity: 1;background-color:rgb(255 189 46 / var(--tw-bg-opacity, 1))}.bg-amber-500{--tw-bg-opacity: 1;background-color:rgb(245 158 11 / var(--tw-bg-opacity, 1))}.bg-amber-500\/15{background-color:#f59e0b26}.bg-amber-500\/\[0\.07\]{background-color:#f59e0b12}.bg-amber-500\/\[0\.08\]{background-color:#f59e0b14}.bg-background{background-color:hsl(var(--background))}.bg-background\/60{background-color:hsl(var(--background) / .6)}.bg-background\/70{background-color:hsl(var(--background) / .7)}.bg-background\/80{background-color:hsl(var(--background) / .8)}.bg-background\/85{background-color:hsl(var(--background) / .85)}.bg-background\/95{background-color:hsl(var(--background) / .95)}.bg-black\/50{background-color:#00000080}.bg-black\/55{background-color:#0000008c}.bg-black\/60{background-color:#0009}.bg-border\/70{background-color:hsl(var(--border) / .7)}.bg-card{background-color:hsl(var(--card))}.bg-card\/30{background-color:hsl(var(--card) / .3)}.bg-card\/50{background-color:hsl(var(--card) / .5)}.bg-card\/60{background-color:hsl(var(--card) / .6)}.bg-card\/70{background-color:hsl(var(--card) / .7)}.bg-card\/95{background-color:hsl(var(--card) / .95)}.bg-emerald-500{--tw-bg-opacity: 1;background-color:rgb(16 185 129 / var(--tw-bg-opacity, 1))}.bg-emerald-500\/10{background-color:#10b9811a}.bg-emerald-500\/15{background-color:#10b98126}.bg-gold{background-color:hsl(var(--gold))}.bg-gold\/10{background-color:hsl(var(--gold) / .1)}.bg-gold\/15{background-color:hsl(var(--gold) / .15)}.bg-gold\/\[0\.06\]{background-color:hsl(var(--gold) / .06)}.bg-muted{background-color:hsl(var(--muted))}.bg-muted-foreground{background-color:hsl(var(--muted-foreground))}.bg-muted\/20{background-color:hsl(var(--muted) / .2)}.bg-muted\/30{background-color:hsl(var(--muted) / .3)}.bg-muted\/40{background-color:hsl(var(--muted) / .4)}.bg-muted\/50{background-color:hsl(var(--muted) / .5)}.bg-muted\/60{background-color:hsl(var(--muted) / .6)}.bg-muted\/70{background-color:hsl(var(--muted) / .7)}.bg-primary{background-color:hsl(var(--primary))}.bg-primary\/10{background-color:hsl(var(--primary) / .1)}.bg-primary\/15{background-color:hsl(var(--primary) / .15)}.bg-primary\/20{background-color:hsl(var(--primary) / .2)}.bg-primary\/25{background-color:hsl(var(--primary) / .25)}.bg-primary\/70{background-color:hsl(var(--primary) / .7)}.bg-primary\/\[0\.05\]{background-color:hsl(var(--primary) / .05)}.bg-primary\/\[0\.06\]{background-color:hsl(var(--primary) / .06)}.bg-red-500\/10{background-color:#ef44441a}.bg-red-500\/15{background-color:#ef444426}.bg-secondary{background-color:hsl(var(--secondary))}.bg-transparent{background-color:transparent}.bg-white{--tw-bg-opacity: 1;background-color:rgb(255 255 255 / var(--tw-bg-opacity, 1))}.bg-white\/10{background-color:#ffffff1a}.bg-white\/5{background-color:#ffffff0d}.bg-white\/\[0\.03\]{background-color:#ffffff08}.bg-gradient-to-b{background-image:linear-gradient(to bottom,var(--tw-gradient-stops))}.bg-gradient-to-br{background-image:linear-gradient(to bottom right,var(--tw-gradient-stops))}.bg-gradient-to-r{background-image:linear-gradient(to right,var(--tw-gradient-stops))}.from-amber-200{--tw-gradient-from: #fde68a var(--tw-gradient-from-position);--tw-gradient-to: rgb(253 230 138 / 0) var(--tw-gradient-to-position);--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to)}.from-emerald-200{--tw-gradient-from: #a7f3d0 var(--tw-gradient-from-position);--tw-gradient-to: rgb(167 243 208 / 0) var(--tw-gradient-to-position);--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to)}.from-primary{--tw-gradient-from: hsl(var(--primary)) var(--tw-gradient-from-position);--tw-gradient-to: hsl(var(--primary) / 0) var(--tw-gradient-to-position);--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to)}.from-primary\/15{--tw-gradient-from: hsl(var(--primary) / .15) var(--tw-gradient-from-position);--tw-gradient-to: hsl(var(--primary) / 0) var(--tw-gradient-to-position);--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to)}.from-primary\/\[0\.07\]{--tw-gradient-from: hsl(var(--primary) / .07) var(--tw-gradient-from-position);--tw-gradient-to: hsl(var(--primary) / 0) var(--tw-gradient-to-position);--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to)}.from-rose-200{--tw-gradient-from: #fecdd3 var(--tw-gradient-from-position);--tw-gradient-to: rgb(254 205 211 / 0) var(--tw-gradient-to-position);--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to)}.from-sky-200{--tw-gradient-from: #bae6fd var(--tw-gradient-from-position);--tw-gradient-to: rgb(186 230 253 / 0) var(--tw-gradient-to-position);--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to)}.from-sky-500{--tw-gradient-from: #0ea5e9 var(--tw-gradient-from-position);--tw-gradient-to: rgb(14 165 233 / 0) var(--tw-gradient-to-position);--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to)}.from-transparent{--tw-gradient-from: transparent var(--tw-gradient-from-position);--tw-gradient-to: rgb(0 0 0 / 0) var(--tw-gradient-to-position);--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to)}.from-violet-200{--tw-gradient-from: #ddd6fe var(--tw-gradient-from-position);--tw-gradient-to: rgb(221 214 254 / 0) var(--tw-gradient-to-position);--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to)}.via-card{--tw-gradient-to: hsl(var(--card) / 0) var(--tw-gradient-to-position);--tw-gradient-stops: var(--tw-gradient-from), hsl(var(--card)) var(--tw-gradient-via-position), var(--tw-gradient-to)}.via-primary\/\[0\.04\]{--tw-gradient-to: hsl(var(--primary) / 0) var(--tw-gradient-to-position);--tw-gradient-stops: var(--tw-gradient-from), hsl(var(--primary) / .04) var(--tw-gradient-via-position), var(--tw-gradient-to)}.to-card{--tw-gradient-to: hsl(var(--card)) var(--tw-gradient-to-position)}.to-fuchsia-200{--tw-gradient-to: #f5d0fe var(--tw-gradient-to-position)}.to-fuchsia-500{--tw-gradient-to: #d946ef var(--tw-gradient-to-position)}.to-indigo-200{--tw-gradient-to: #c7d2fe var(--tw-gradient-to-position)}.to-indigo-500{--tw-gradient-to: #6366f1 var(--tw-gradient-to-position)}.to-orange-200{--tw-gradient-to: #fed7aa var(--tw-gradient-to-position)}.to-purple-200{--tw-gradient-to: #e9d5ff var(--tw-gradient-to-position)}.to-teal-200{--tw-gradient-to: #99f6e4 var(--tw-gradient-to-position)}.to-transparent{--tw-gradient-to: transparent var(--tw-gradient-to-position)}.fill-gold\/30{fill:hsl(var(--gold) / .3)}.fill-primary\/20{fill:hsl(var(--primary) / .2)}.object-contain{-o-object-fit:contain;object-fit:contain}.object-cover{-o-object-fit:cover;object-fit:cover}.p-0{padding:0}.p-1{padding:.25rem}.p-1\.5{padding:.375rem}.p-10{padding:2.5rem}.p-3{padding:.75rem}.p-4{padding:1rem}.p-5{padding:1.25rem}.p-6{padding:1.5rem}.px-1{padding-left:.25rem;padding-right:.25rem}.px-1\.5{padding-left:.375rem;padding-right:.375rem}.px-2{padding-left:.5rem;padding-right:.5rem}.px-2\.5{padding-left:.625rem;padding-right:.625rem}.px-3{padding-left:.75rem;padding-right:.75rem}.px-3\.5{padding-left:.875rem;padding-right:.875rem}.px-4{padding-left:1rem;padding-right:1rem}.px-5{padding-left:1.25rem;padding-right:1.25rem}.px-6{padding-left:1.5rem;padding-right:1.5rem}.px-7{padding-left:1.75rem;padding-right:1.75rem}.py-0{padding-top:0;padding-bottom:0}.py-0\.5{padding-top:.125rem;padding-bottom:.125rem}.py-1{padding-top:.25rem;padding-bottom:.25rem}.py-1\.5{padding-top:.375rem;padding-bottom:.375rem}.py-10{padding-top:2.5rem;padding-bottom:2.5rem}.py-12{padding-top:3rem;padding-bottom:3rem}.py-14{padding-top:3.5rem;padding-bottom:3.5rem}.py-16{padding-top:4rem;padding-bottom:4rem}.py-2{padding-top:.5rem;padding-bottom:.5rem}.py-2\.5{padding-top:.625rem;padding-bottom:.625rem}.py-20{padding-top:5rem;padding-bottom:5rem}.py-3{padding-top:.75rem;padding-bottom:.75rem}.py-3\.5{padding-top:.875rem;padding-bottom:.875rem}.py-4{padding-top:1rem;padding-bottom:1rem}.py-5{padding-top:1.25rem;padding-bottom:1.25rem}.py-6{padding-top:1.5rem;padding-bottom:1.5rem}.py-8{padding-top:2rem;padding-bottom:2rem}.pb-2{padding-bottom:.5rem}.pb-20{padding-bottom:5rem}.pb-28{padding-bottom:7rem}.pb-40{padding-bottom:10rem}.pb-5{padding-bottom:1.25rem}.pl-1{padding-left:.25rem}.pl-10{padding-left:2.5rem}.pl-3{padding-left:.75rem}.pl-5{padding-left:1.25rem}.pl-9{padding-left:2.25rem}.pr-1{padding-right:.25rem}.pr-2\.5{padding-right:.625rem}.pr-3{padding-right:.75rem}.pr-5{padding-right:1.25rem}.pr-9{padding-right:2.25rem}.pt-0{padding-top:0}.pt-16{padding-top:4rem}.pt-2{padding-top:.5rem}.pt-20{padding-top:5rem}.pt-24{padding-top:6rem}.pt-28{padding-top:7rem}.pt-3{padding-top:.75rem}.pt-4{padding-top:1rem}.text-left{text-align:left}.text-center{text-align:center}.text-right{text-align:right}.align-middle{vertical-align:middle}.font-mono{font-family:Fira Code,JetBrains Mono,SF Mono,monospace}.text-2xl{font-size:1.5rem;line-height:2rem}.text-3xl{font-size:1.875rem;line-height:2.25rem}.text-4xl{font-size:2.25rem;line-height:2.5rem}.text-7xl{font-size:4.5rem;line-height:1}.text-\[0\.85em\]{font-size:.85em}.text-\[11px\]{font-size:11px}.text-\[13px\]{font-size:13px}.text-\[15px\]{font-size:15px}.text-base{font-size:1rem;line-height:1.5rem}.text-lg{font-size:1.125rem;line-height:1.75rem}.text-sm{font-size:.875rem;line-height:1.25rem}.text-xl{font-size:1.25rem;line-height:1.75rem}.text-xs{font-size:.75rem;line-height:1rem}.font-bold{font-weight:700}.font-extrabold{font-weight:800}.font-medium{font-weight:500}.font-normal{font-weight:400}.font-semibold{font-weight:600}.uppercase{text-transform:uppercase}.italic{font-style:italic}.leading-\[1\.1\]{line-height:1.1}.leading-relaxed{line-height:1.625}.leading-snug{line-height:1.375}.tracking-tight{letter-spacing:-.025em}.tracking-wider{letter-spacing:.05em}.text-amber-300{--tw-text-opacity: 1;color:rgb(252 211 77 / var(--tw-text-opacity, 1))}.text-amber-300\/80{color:#fcd34dcc}.text-amber-600{--tw-text-opacity: 1;color:rgb(217 119 6 / var(--tw-text-opacity, 1))}.text-emerald-400{--tw-text-opacity: 1;color:rgb(52 211 153 / var(--tw-text-opacity, 1))}.text-emerald-400\/90{color:#34d399e6}.text-emerald-500{--tw-text-opacity: 1;color:rgb(16 185 129 / var(--tw-text-opacity, 1))}.text-foreground{color:hsl(var(--foreground))}.text-foreground\/60{color:hsl(var(--foreground) / .6)}.text-foreground\/70{color:hsl(var(--foreground) / .7)}.text-foreground\/90{color:hsl(var(--foreground) / .9)}.text-gold{color:hsl(var(--gold))}.text-gold-foreground{color:hsl(var(--gold-foreground))}.text-muted-foreground{color:hsl(var(--muted-foreground))}.text-muted-foreground\/50{color:hsl(var(--muted-foreground) / .5)}.text-muted-foreground\/70{color:hsl(var(--muted-foreground) / .7)}.text-primary{color:hsl(var(--primary))}.text-primary-foreground{color:hsl(var(--primary-foreground))}.text-red-500{--tw-text-opacity: 1;color:rgb(239 68 68 / var(--tw-text-opacity, 1))}.text-secondary-foreground{color:hsl(var(--secondary-foreground))}.text-white{--tw-text-opacity: 1;color:rgb(255 255 255 / var(--tw-text-opacity, 1))}.text-white\/30{color:#ffffff4d}.text-white\/40{color:#fff6}.text-white\/55{color:#ffffff8c}.text-white\/60{color:#fff9}.text-white\/70{color:#ffffffb3}.text-white\/80{color:#fffc}.text-white\/85{color:#ffffffd9}.underline{text-decoration-line:underline}.underline-offset-2{text-underline-offset:2px}.opacity-0{opacity:0}.opacity-100{opacity:1}.opacity-30{opacity:.3}.opacity-55{opacity:.55}.opacity-60{opacity:.6}.shadow{--tw-shadow: 0 1px 3px 0 rgb(0 0 0 / .1), 0 1px 2px -1px rgb(0 0 0 / .1);--tw-shadow-colored: 0 1px 3px 0 var(--tw-shadow-color), 0 1px 2px -1px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.shadow-2xl{--tw-shadow: 0 25px 50px -12px rgb(0 0 0 / .25);--tw-shadow-colored: 0 25px 50px -12px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.shadow-lg{--tw-shadow: 0 10px 15px -3px rgb(0 0 0 / .1), 0 4px 6px -4px rgb(0 0 0 / .1);--tw-shadow-colored: 0 10px 15px -3px var(--tw-shadow-color), 0 4px 6px -4px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.shadow-sm{--tw-shadow: 0 1px 2px 0 rgb(0 0 0 / .05);--tw-shadow-colored: 0 1px 2px 0 var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.shadow-black\/40{--tw-shadow-color: rgb(0 0 0 / .4);--tw-shadow: var(--tw-shadow-colored)}.shadow-gold\/25{--tw-shadow-color: hsl(var(--gold) / .25);--tw-shadow: var(--tw-shadow-colored)}.shadow-primary\/10{--tw-shadow-color: hsl(var(--primary) / .1);--tw-shadow: var(--tw-shadow-colored)}.shadow-primary\/25{--tw-shadow-color: hsl(var(--primary) / .25);--tw-shadow: var(--tw-shadow-colored)}.shadow-primary\/30{--tw-shadow-color: hsl(var(--primary) / .3);--tw-shadow: var(--tw-shadow-colored)}.outline-none{outline:2px solid transparent;outline-offset:2px}.outline{outline-style:solid}.ring-1{--tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow, 0 0 #0000)}.ring-2{--tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow, 0 0 #0000)}.ring-card{--tw-ring-color: hsl(var(--card))}.ring-primary\/20{--tw-ring-color: hsl(var(--primary) / .2)}.ring-primary\/40{--tw-ring-color: hsl(var(--primary) / .4)}.ring-offset-2{--tw-ring-offset-width: 2px}.ring-offset-card{--tw-ring-offset-color: hsl(var(--card))}.blur-\[100px\]{--tw-blur: blur(100px);filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}.blur-\[110px\]{--tw-blur: blur(110px);filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}.blur-\[120px\]{--tw-blur: blur(120px);filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}.filter{filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}.backdrop-blur{--tw-backdrop-blur: blur(8px);-webkit-backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia);backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia)}.backdrop-blur-sm{--tw-backdrop-blur: blur(4px);-webkit-backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia);backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia)}.backdrop-blur-xl{--tw-backdrop-blur: blur(24px);-webkit-backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia);backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia)}.transition{transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.transition-all{transition-property:all;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.transition-colors{transition-property:color,background-color,border-color,text-decoration-color,fill,stroke;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.transition-opacity{transition-property:opacity;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.transition-shadow{transition-property:box-shadow;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.transition-transform{transition-property:transform;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.duration-200{transition-duration:.2s}@keyframes enter{0%{opacity:var(--tw-enter-opacity, 1);transform:translate3d(var(--tw-enter-translate-x, 0),var(--tw-enter-translate-y, 0),0) scale3d(var(--tw-enter-scale, 1),var(--tw-enter-scale, 1),var(--tw-enter-scale, 1)) rotate(var(--tw-enter-rotate, 0))}}@keyframes exit{to{opacity:var(--tw-exit-opacity, 1);transform:translate3d(var(--tw-exit-translate-x, 0),var(--tw-exit-translate-y, 0),0) scale3d(var(--tw-exit-scale, 1),var(--tw-exit-scale, 1),var(--tw-exit-scale, 1)) rotate(var(--tw-exit-rotate, 0))}}.duration-200{animation-duration:.2s}.\!running{animation-play-state:running!important}.running{animation-play-state:running}.container-page{margin-left:auto;margin-right:auto;width:100%;max-width:1180px;padding-left:1.5rem;padding-right:1.5rem}.text-gradient{background-image:linear-gradient(to right,var(--tw-gradient-stops));--tw-gradient-from: hsl(var(--primary)) var(--tw-gradient-from-position);--tw-gradient-to: hsl(var(--primary) / 0) var(--tw-gradient-to-position);--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to);--tw-gradient-to: rgb(217 70 239 / 0) var(--tw-gradient-to-position);--tw-gradient-stops: var(--tw-gradient-from), #d946ef var(--tw-gradient-via-position), var(--tw-gradient-to);--tw-gradient-to: #818cf8 var(--tw-gradient-to-position);-webkit-background-clip:text;background-clip:text;color:transparent}.glass{border-width:1px;border-color:hsl(var(--border) / .7);background-color:hsl(var(--card) / .7);--tw-backdrop-blur: blur(24px);-webkit-backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia);backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia)}.grid-bg{background-image:linear-gradient(to right,hsl(var(--border) / .4) 1px,transparent 1px),linear-gradient(to bottom,hsl(var(--border) / .4) 1px,transparent 1px);background-size:56px 56px}.\[mask-image\:radial-gradient\(ellipse_at_top\,black\,transparent_70\%\)\]{-webkit-mask-image:radial-gradient(ellipse at top,black,transparent 70%);mask-image:radial-gradient(ellipse at top,black,transparent 70%)}.first\:mt-0:first-child{margin-top:0}.last\:mb-0:last-child{margin-bottom:0}.hover\:-translate-y-0\.5:hover{--tw-translate-y: -.125rem;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.hover\:border-gold\/70:hover{border-color:hsl(var(--gold) / .7)}.hover\:border-primary:hover{border-color:hsl(var(--primary))}.hover\:border-primary\/30:hover{border-color:hsl(var(--primary) / .3)}.hover\:border-primary\/40:hover{border-color:hsl(var(--primary) / .4)}.hover\:border-primary\/50:hover{border-color:hsl(var(--primary) / .5)}.hover\:bg-muted:hover{background-color:hsl(var(--muted))}.hover\:bg-primary\/15:hover{background-color:hsl(var(--primary) / .15)}.hover\:bg-primary\/\[0\.04\]:hover{background-color:hsl(var(--primary) / .04)}.hover\:bg-primary\/\[0\.1\]:hover{background-color:hsl(var(--primary) / .1)}.hover\:text-foreground:hover{color:hsl(var(--foreground))}.hover\:text-primary:hover{color:hsl(var(--primary))}.hover\:text-red-500:hover{--tw-text-opacity: 1;color:rgb(239 68 68 / var(--tw-text-opacity, 1))}.hover\:underline:hover{text-decoration-line:underline}.hover\:opacity-90:hover{opacity:.9}.hover\:ring-2:hover{--tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow, 0 0 #0000)}.hover\:ring-primary\/50:hover{--tw-ring-color: hsl(var(--primary) / .5)}.hover\:brightness-105:hover{--tw-brightness: brightness(1.05);filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}.hover\:brightness-110:hover{--tw-brightness: brightness(1.1);filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}.focus\:border-primary\/40:focus{border-color:hsl(var(--primary) / .4)}.focus\:border-primary\/50:focus{border-color:hsl(var(--primary) / .5)}.focus\:border-primary\/60:focus{border-color:hsl(var(--primary) / .6)}.focus-visible\:outline-none:focus-visible{outline:2px solid transparent;outline-offset:2px}.focus-visible\:ring-2:focus-visible{--tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow, 0 0 #0000)}.focus-visible\:ring-ring:focus-visible{--tw-ring-color: hsl(var(--ring))}.focus-visible\:ring-offset-2:focus-visible{--tw-ring-offset-width: 2px}.focus-visible\:ring-offset-background:focus-visible{--tw-ring-offset-color: hsl(var(--background))}.disabled\:pointer-events-none:disabled{pointer-events:none}.disabled\:cursor-not-allowed:disabled{cursor:not-allowed}.disabled\:opacity-40:disabled{opacity:.4}.disabled\:opacity-50:disabled{opacity:.5}.disabled\:opacity-60:disabled{opacity:.6}.group:hover .group-hover\:bg-primary{background-color:hsl(var(--primary))}.group:hover .group-hover\:text-primary{color:hsl(var(--primary))}.group:hover .group-hover\:text-primary-foreground{color:hsl(var(--primary-foreground))}.group:hover .group-hover\:opacity-100{opacity:1}@keyframes accordion-up{0%{height:var(--radix-accordion-content-height)}to{height:0}}.data-\[state\=closed\]\:animate-accordion-up[data-state=closed]{animation:accordion-up .2s ease-out}@keyframes accordion-down{0%{height:0}to{height:var(--radix-accordion-content-height)}}.data-\[state\=open\]\:animate-accordion-down[data-state=open]{animation:accordion-down .2s ease-out}.dark\:from-amber-500\/20:is(.dark *){--tw-gradient-from: rgb(245 158 11 / .2) var(--tw-gradient-from-position);--tw-gradient-to: rgb(245 158 11 / 0) var(--tw-gradient-to-position);--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to)}.dark\:from-emerald-500\/20:is(.dark *){--tw-gradient-from: rgb(16 185 129 / .2) var(--tw-gradient-from-position);--tw-gradient-to: rgb(16 185 129 / 0) var(--tw-gradient-to-position);--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to)}.dark\:from-rose-500\/20:is(.dark *){--tw-gradient-from: rgb(244 63 94 / .2) var(--tw-gradient-from-position);--tw-gradient-to: rgb(244 63 94 / 0) var(--tw-gradient-to-position);--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to)}.dark\:from-sky-500\/20:is(.dark *){--tw-gradient-from: rgb(14 165 233 / .2) var(--tw-gradient-from-position);--tw-gradient-to: rgb(14 165 233 / 0) var(--tw-gradient-to-position);--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to)}.dark\:from-violet-500\/20:is(.dark *){--tw-gradient-from: rgb(139 92 246 / .2) var(--tw-gradient-from-position);--tw-gradient-to: rgb(139 92 246 / 0) var(--tw-gradient-to-position);--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to)}.dark\:to-fuchsia-500\/20:is(.dark *){--tw-gradient-to: rgb(217 70 239 / .2) var(--tw-gradient-to-position)}.dark\:to-indigo-500\/20:is(.dark *){--tw-gradient-to: rgb(99 102 241 / .2) var(--tw-gradient-to-position)}.dark\:to-orange-500\/20:is(.dark *){--tw-gradient-to: rgb(249 115 22 / .2) var(--tw-gradient-to-position)}.dark\:to-purple-500\/20:is(.dark *){--tw-gradient-to: rgb(168 85 247 / .2) var(--tw-gradient-to-position)}.dark\:to-teal-500\/20:is(.dark *){--tw-gradient-to: rgb(20 184 166 / .2) var(--tw-gradient-to-position)}.dark\:text-amber-400:is(.dark *){--tw-text-opacity: 1;color:rgb(251 191 36 / var(--tw-text-opacity, 1))}@media(min-width:640px){.sm\:block{display:block}.sm\:inline{display:inline}.sm\:flex{display:flex}.sm\:inline-flex{display:inline-flex}.sm\:max-h-\[84vh\]{max-height:84vh}.sm\:max-h-\[86vh\]{max-height:86vh}.sm\:w-56{width:14rem}.sm\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.sm\:grid-cols-4{grid-template-columns:repeat(4,minmax(0,1fr))}.sm\:flex-row{flex-direction:row}.sm\:items-end{align-items:flex-end}.sm\:items-center{align-items:center}.sm\:rounded-2xl{border-radius:1.5rem}.sm\:p-6{padding:1.5rem}.sm\:text-3xl{font-size:1.875rem;line-height:2.25rem}.sm\:text-4xl{font-size:2.25rem;line-height:2.5rem}.sm\:text-5xl{font-size:3rem;line-height:1}.sm\:text-lg{font-size:1.125rem;line-height:1.75rem}}@media(min-width:768px){.md\:col-span-2{grid-column:span 2 / span 2}.md\:block{display:block}.md\:flex{display:flex}.md\:hidden{display:none}.md\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.md\:grid-cols-\[1\.4fr_1fr_1fr_1fr\]{grid-template-columns:1.4fr 1fr 1fr 1fr}.md\:grid-cols-\[300px_1fr\]{grid-template-columns:300px 1fr}.md\:p-16{padding:4rem}.md\:py-20{padding-top:5rem;padding-bottom:5rem}.md\:py-24{padding-top:6rem;padding-bottom:6rem}.md\:py-28{padding-top:7rem;padding-bottom:7rem}.md\:pt-36{padding-top:9rem}.md\:text-4xl{font-size:2.25rem;line-height:2.5rem}.md\:text-5xl{font-size:3rem;line-height:1}.md\:text-6xl{font-size:3.75rem;line-height:1}.md\:text-base{font-size:1rem;line-height:1.5rem}.md\:text-lg{font-size:1.125rem;line-height:1.75rem}}@media(min-width:1024px){.lg\:sticky{position:sticky}.lg\:top-20{top:5rem}.lg\:col-span-3{grid-column:span 3 / span 3}.lg\:inline-flex{display:inline-flex}.lg\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.lg\:grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.lg\:grid-cols-4{grid-template-columns:repeat(4,minmax(0,1fr))}.lg\:grid-cols-\[220px_1fr\]{grid-template-columns:220px 1fr}.lg\:self-start{align-self:flex-start}}@media(min-width:1280px){.xl\:sticky{position:sticky}.xl\:top-20{top:5rem}.xl\:block{display:block}.xl\:grid-cols-\[220px_1fr_200px\]{grid-template-columns:220px 1fr 200px}.xl\:self-start{align-self:flex-start}}.\[\&\[data-state\=open\]\>svg\]\:rotate-180[data-state=open]>svg{--tw-rotate: 180deg;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.\[\&_svg\]\:size-4 svg{width:1rem;height:1rem}.\[\&_svg\]\:shrink-0 svg{flex-shrink:0}