From 1d08c9fe6848c834a37859aad7b5f6c78d4b109b Mon Sep 17 00:00:00 2001 From: huangruiteng <14976749+huangruiteng@users.noreply.github.com> Date: Wed, 16 Sep 2026 23:58:32 +0800 Subject: [PATCH 1/2] fix(manager): state where a team plan is confirmed in the answer that offered it PR #4569 made an admitted steward team preview reach the owner's own channel as a typed `team.plan` card. Live readback showed the card is reachable, but only under the Goal the plan staffs: the manager conversation renders no typed-action cards, and a Lark manager audience has no card at all. So the owner who asked the sentence could read a correct plan and still not know how to confirm it -- the steward's prose says "you confirm and it applies", not where. Every manager answer that admitted a preview now carries one channel-authored pointer line naming the Goal whose workspace holds the card, and stating that no lane exists before that confirmation. It is an operational receipt, in the same way the delegation path states its own receipt, so the steward's prose is preserved verbatim and a Goal channel is never annotated. A remote manager audience receives the same line, which is what makes one manager answer actionable for an audience that cannot itself confirm; no card is written on its behalf, and that remaining gap stays named in the RFC. The dashboard no longer composes its own version of that sentence: the channel is the one owner of it, so the transcript shows the answer it was given. Validation: 86 manager/steward/team-plan unit tests pass, including the new pointer cases (manager channel annotated, remote audience annotated without a card, Goal channel untouched, a plan-free answer never annotated); workspace browser smoke, dashboard typecheck and the team-plan smoke pass; the rebuilt chat bundle ships the frontend change; docs governance, the maintainability ratchet and `loopx canary premerge --from-git-diff` pass. Signed-off-by: huangruiteng <14976749+huangruiteng@users.noreply.github.com> --- .../dashboard/src/views/dashboard-page.tsx | 20 +--- .../rfcs/harness-selection-dsh-pi-v0.md | 27 ++++-- .../rfcs/harness-selection-dsh-pi-v0.zh-CN.md | 24 +++-- .../capabilities/manager_context/team_plan.py | 92 +++++++++++++++++-- loopx/chat_runtime.py | 4 +- tests/test_steward_team_plan_preview.py | 90 +++++++++++++----- 6 files changed, 187 insertions(+), 70 deletions(-) diff --git a/apps/presentation/dashboard/src/views/dashboard-page.tsx b/apps/presentation/dashboard/src/views/dashboard-page.tsx index f8f8094b28..a2c07ae45a 100644 --- a/apps/presentation/dashboard/src/views/dashboard-page.tsx +++ b/apps/presentation/dashboard/src/views/dashboard-page.tsx @@ -53,7 +53,6 @@ import { sessionInvalidatedByPayload, todoNoWriteReceiptFromPayload, todoReceiptLabel, - isTeamPlanPreviewProposal, isTodoProposal, type ChatSessionSnapshot, type ChatSessionSummary, @@ -2229,22 +2228,11 @@ function PersonalGoalHome({ text: visibleAgentMessage(response.message || streamedText.trim()) || `${answerIdentityLabel(targetContextId, selectedRoute.label)} 已完成分析。`, }); - const teamPlanPreviews = response.proposals.filter(isTeamPlanPreviewProposal); - if (teamPlanPreviews.length > 0) { - // The steward's team plan is offered as the typed card the manager - // channel stored for the Goal it staffs, so the owner confirms the plan - // there instead of typing the request again. - const goals = [...new Set(teamPlanPreviews - .map((preview) => String(preview.preview.goal_id ?? "")) - .filter(Boolean))]; - updateManagerAssistantMessage(targetContextId, streamingMessageId, { - lines: [goals.length > 0 - ? `团队计划已生成可确认卡片(${goals.join("、")}),确认后才会创建 lane。` - : "团队计划已生成可确认卡片,确认后才会创建 lane。"], - }); - } const todoProposals = response.proposals.filter(isTodoProposal); - if (todoProposals.length > 0 && !targetGoal && teamPlanPreviews.length === 0) { + // The channel already states where a team plan is confirmed: its answer + // names the Goal whose workspace holds the card, so a manager-channel + // proposal here is only ever a Todo the owner has to be sent to. + if (todoProposals.length > 0 && !targetGoal) { updateManagerAssistantMessage(targetContextId, streamingMessageId, { lines: ["请进入要修改的 Goal,预览并确认具体变更。"], }); diff --git a/docs/architecture/rfcs/harness-selection-dsh-pi-v0.md b/docs/architecture/rfcs/harness-selection-dsh-pi-v0.md index 8b12b1680c..4ab60498e3 100644 --- a/docs/architecture/rfcs/harness-selection-dsh-pi-v0.md +++ b/docs/architecture/rfcs/harness-selection-dsh-pi-v0.md @@ -615,14 +615,25 @@ Shipped enforcement, in delivery order: would not grant. A Turn response now carries the preview beside its Todo proposals, so the surfaces read one response shape instead of deciding which kinds of answer may arrive. - -The confirmation surface the owner's own channel needs is shipped: the admitted -preview reaches the typed action store, and the card it produces renders the -same click path a single-lane `team.plan` card already had. What is still -missing is the per-audience coverage behind it: a remote manager audience (the -Lark manager channel) keeps the preview in its answer text and has no card on -its own surface yet, so no card is written on its behalf. Traceability is -recorded rather than implied: the settlement reads +7. **The answer says where the confirmation is.** Every manager answer that + admitted a preview carries one channel-authored pointer line naming the Goal + whose workspace holds the card and the fact that no lane exists before that + confirmation. It is a receipt, not a rewrite: the steward's prose is + preserved, and a Goal channel is never annotated. A remote manager audience + receives the pointer as well, which is what makes one manager answer + actionable even where the audience that asked cannot itself confirm. + +The owner's own channel ships both the card and the sentence that explains it: +the admitted preview reaches the typed action store, the card renders the same +click path a single-lane `team.plan` card already had, and the answer the owner +reads names the Goal whose workspace holds that card. That sentence is the +channel's, not the model's, and a remote manager audience receives it too -- +one manager answer is therefore actionable for every audience that can read it, +because the audience that asked may not be the audience that can confirm. +What is still missing is the remote audience's *own* confirmation surface: a +Lark manager channel has no card of its own, so nothing is written on its +behalf, and its owner confirms in the LoopX workspace the answer named. +Traceability is recorded rather than implied: the settlement reads the Goal's canonical source basis before it writes, and the receipt carries it as a bounded `intent_basis`, so each lane Todo can be tied to the revision it was meant to advance even though the Todo row itself does not carry the field. The diff --git a/docs/architecture/rfcs/harness-selection-dsh-pi-v0.zh-CN.md b/docs/architecture/rfcs/harness-selection-dsh-pi-v0.zh-CN.md index 2a9cf5d8c9..4af3cfb10d 100644 --- a/docs/architecture/rfcs/harness-selection-dsh-pi-v0.zh-CN.md +++ b/docs/architecture/rfcs/harness-selection-dsh-pi-v0.zh-CN.md @@ -472,15 +472,21 @@ Agent 注册、Todo 创建、quota 或 goal policy——复用预览点名的身 计划点名的那个 Goal。投影按计划幂等:重放的 Turn 或重复的请求复用同一张卡片,而不会叠出 第二张;它不创建工作,也不授予任何"确认卡片"之外的东西。Turn 响应现在把预览与 Todo 提案 放在同一形状里,因此产品面读一种响应形状,而不是自己判断"哪种答案可能出现"。 - -业主自己那条通道所需的确认面已经落地:准入预览会到达类型化 action store,它产出的卡片走的 -正是单 lane `team.plan` 卡片本就有的点击路径。仍然缺的是它背后的**按受众覆盖**:远端管家 -受众(Lark 管家通道)仍只在回答正文里带着预览,在它自己的面上还没有卡片,因此不会替它写下 -卡片。可追溯性已经被记录而不是被暗示:结算在写入**之前**读取该 Goal 的规范 source basis, -回执以有界字段 `intent_basis` 携带它,因此每条 lane Todo 都能被追溯回它本应推进的那个修订 -——尽管 Todo 行本身还不携带该字段。回读也不再是缺口:落地会把这次确保的每一条 lane Todo 以 -有界字段 `lane_todo_ids` 发布出去;这两个字段都是那个封闭且持久化的回执字段集的加性例外, -因此早前写下的回执仍然通过校验,而团队计划回执不带 monitor key——计划不是 monitor。 +7. **回答本身说明去哪确认。** 每一份准入过团队预览的管家回答,都会带上**一句由通道写入**的 + 指引:点名那张卡片所在的 Goal,并说明确认之前不存在任何 lane。它是回执,不是改写:管家的 + 正文原样保留,Goal 通道永远不会被加上这句。远端管家受众同样会收到这句指引——这正是让 + "同一份管家回答"在"提问的受众自己无法确认"时仍然可行动的原因。 + +业主自己那条通道已经把卡片和解释卡片的那句话一起落地:准入预览到达类型化 action store, +卡片走的正是单 lane `team.plan` 卡片本就有的点击路径,而业主读到的回答会点名那张卡片所在的 +Goal。这句话属于**通道**而不是模型,远端管家受众同样收得到——因为提问的受众未必是能确认的 +受众,一句管家回答要对每个能读到它的受众都可行动。仍然缺的是远端受众**自己的确认面**: +Lark 管家通道在它自己的面上还没有卡片,因此不会替它写下卡片,它的业主按回答点名的 Goal 到 +LoopX 工作区确认。可追溯性已经被记录而不是被暗示:结算在写入**之前**读取该 Goal 的规范 +source basis,回执以有界字段 `intent_basis` 携带它,因此每条 lane Todo 都能被追溯回它本应 +推进的那个修订——尽管 Todo 行本身还不携带该字段。回读也不再是缺口:落地会把这次确保的每一条 +lane Todo 以有界字段 `lane_todo_ids` 发布出去;这两个字段都是那个封闭且持久化的回执字段集的 +加性例外,因此早前写下的回执仍然通过校验,而团队计划回执不带 monitor key——计划不是 monitor。 ### 与 multi-agent / shared authority 契约的关系 diff --git a/loopx/capabilities/manager_context/team_plan.py b/loopx/capabilities/manager_context/team_plan.py index c46347171a..e2f9005514 100644 --- a/loopx/capabilities/manager_context/team_plan.py +++ b/loopx/capabilities/manager_context/team_plan.py @@ -23,7 +23,7 @@ from __future__ import annotations -from collections.abc import Callable, Mapping +from collections.abc import Callable, Mapping, Sequence from pathlib import Path from typing import Any, Protocol @@ -122,15 +122,7 @@ def project_team_plan_preview( if projector is None or str(session.get("channel_id") or "") != "manager": return - for proposal in response.get("proposals") or []: - if ( - not isinstance(proposal, Mapping) - or str(proposal.get("kind") or "") != STEWARD_TEAM_PLAN_PREVIEW_KIND - ): - continue - preview = proposal.get("preview") - if not isinstance(preview, Mapping): - continue + for preview in team_plan_previews(response): try: projected = projector(preview) except (OSError, ValueError, TypeError, KeyError) as exc: @@ -155,9 +147,89 @@ def project_team_plan_preview( ) +def team_plan_previews(response: Mapping[str, Any]) -> list[Mapping[str, Any]]: + """The admitted team previews an answer carries, in the order it carried them.""" + + previews: list[Mapping[str, Any]] = [] + for proposal in response.get("proposals") or []: + if ( + not isinstance(proposal, Mapping) + or str(proposal.get("kind") or "") != STEWARD_TEAM_PLAN_PREVIEW_KIND + ): + continue + preview = proposal.get("preview") + if isinstance(preview, Mapping): + previews.append(preview) + return previews + + +def confirmation_pointer(goals: Sequence[str]) -> str: + """The one line that makes a preview actionable from the surface that asked. + + A manager audience may be a Lark group with no confirmation card of its own, + and even on the owner's own channel the card lives under the Goal the plan + staffs rather than in the manager conversation. The answer therefore names + that Goal and states what confirming there does, so a plan the owner cannot + click is at least a plan they know how to confirm. + """ + + named = "、".join(goals) + return ( + f"已为 {named} 准备好可确认的团队计划卡片:在 LoopX 工作区的该 Goal 下确认后," + "才会为每条就绪 lane 创建它的首个有界 Todo;确认前不会创建任何 lane。" + ) + + +def offer_team_plan_confirmation( + *, + store: TurnEventSink, + session: Mapping[str, Any], + session_id: str, + turn_id: str, + response: Mapping[str, Any], + projector: TeamPlanProjector | None, +) -> dict[str, Any]: + """Make each admitted team preview actionable for the audience that asked. + + Admission decides whether a preview may be *shown*; this is what turns it into + something the owner can act on, and it does exactly two things for a manager + channel: it appends one typed pointer line naming the Goal whose workspace + holds the card, and -- for the owner's own local channel only -- it stores + that card. A remote audience's confirmation surface is not this store, so it + receives the pointer and no card is written on its behalf. + + The steward's prose is preserved: the added line is an operational receipt + from the channel, in the same way the delegation path states its own receipt, + not a rewrite of what the model answered. Nothing here creates work. + """ + + previews = team_plan_previews(response) + if not previews or not is_manager_channel(str(session.get("channel_id") or "")): + return dict(response) + project_team_plan_preview( + store=store, + session=session, + session_id=session_id, + turn_id=turn_id, + response=response, + projector=projector, + ) + goals = sorted({str(preview.get("goal_id") or "") for preview in previews} - {""}) + if not goals: + return dict(response) + message = str(response.get("message") or "").strip() + return { + **response, + "message": f"{message}\n\n{confirmation_pointer(goals)}".strip(), + } + + __all__ = [ "TeamPlanProjector", "TurnEventSink", + "confirmation_pointer", + "offer_team_plan_confirmation", "project_team_plan_preview", + "team_plan_previews", "team_plan_admission_context", ] diff --git a/loopx/chat_runtime.py b/loopx/chat_runtime.py index 9b9cd07aeb..60fc00a983 100644 --- a/loopx/chat_runtime.py +++ b/loopx/chat_runtime.py @@ -20,7 +20,7 @@ ) from .capabilities.manager_context.team_plan import ( TeamPlanProjector, - project_team_plan_preview, + offer_team_plan_confirmation, team_plan_admission_context, ) from .capabilities.steward_executor import load_effective_steward_executor_defaults @@ -1229,7 +1229,7 @@ def scope_valid() -> bool: except (OSError, ValueError): response = {**response, "proposals": [], "gate": None, "message": "材料尚未转交:目标绑定、来源授权或持久收件回读未通过。管家需要修复交接链路;没有改动任务或优先级。"} - project_team_plan_preview( + response = offer_team_plan_confirmation( store=self.store, session=session, session_id=session_id, diff --git a/tests/test_steward_team_plan_preview.py b/tests/test_steward_team_plan_preview.py index 8a761df407..24369c9907 100644 --- a/tests/test_steward_team_plan_preview.py +++ b/tests/test_steward_team_plan_preview.py @@ -468,60 +468,100 @@ def test_the_owner_channel_projects_an_admitted_preview_onto_the_action_surface( """ from loopx.capabilities.manager_context.team_plan import ( - project_team_plan_preview, + offer_team_plan_confirmation, ) from loopx.chat_store import ChatSessionStore store = ChatSessionStore(tmp_path / "runtime") preview = {"goal_id": "authorized-goal", "lanes": [{"lane_id": "lane-alpha"}]} + answer = "Here is the plan" response = { - "message": "Here is the plan", + "message": answer, "proposals": [{"kind": "steward_team_plan_preview", "preview": preview}], "gate": None, } projected: list[dict] = [] + projector = lambda value: ( # noqa: E731 - one inline surface owner + projected.append(dict(value)) or {"proposal_id": "proposal-team-plan"} + ) - def project(session: dict, *, projector=None) -> None: - project_team_plan_preview( + def offer(session: dict, *, projector=None, turn_id: str = "turn-1") -> dict: + return offer_team_plan_confirmation( store=store, session=session, session_id="session-1", - turn_id="turn-1", + turn_id=turn_id, response=response, projector=projector, ) - # Without a surface owner the answer is unchanged: the Controller does not - # invent a second place where cards live. - project({"channel_id": "manager"}) + # A Goal channel has no team plan to offer, so its answer is untouched even + # when a surface owner is available. + untouched = offer({"channel_id": "goal.authorized-goal"}, projector=projector) + assert untouched == response assert projected == [] - projector = lambda value: ( # noqa: E731 - one inline surface owner - projected.append(dict(value)) or {"proposal_id": "proposal-team-plan"} - ) - project({"channel_id": "manager"}, projector=projector) + # The owner's own channel stores exactly one card and says where it lives. + owner = offer({"channel_id": "manager"}, projector=projector) assert projected == [preview] - - # A remote manager channel and a Goal channel both keep the answer only. - for channel_id in ("manager.external." + "a" * 24, "goal.authorized-goal"): - project({"channel_id": channel_id}, projector=projector) + assert owner["message"].startswith(answer) + assert "authorized-goal" in owner["message"] + assert "确认前不会创建任何 lane" in owner["message"] + assert owner["proposals"] == response["proposals"] + + # A remote manager audience has no card of its own, so none is written on its + # behalf -- but it still learns the exact Goal whose workspace holds one, + # instead of reading a plan it has no way to confirm. + remote = offer( + {"channel_id": "manager.external." + "a" * 24}, + projector=projector, + turn_id="turn-2", + ) assert projected == [preview] + assert remote["message"].startswith(answer) + assert "authorized-goal" in remote["message"] # A surface that cannot store the card does not fail the answer: the gap is - # typed on the Turn instead. + # typed on the Turn instead, and the pointer still names the Goal. def refuse(_value: object) -> dict: raise ValueError("the typed action store is unavailable") - project({"channel_id": "manager"}, projector=refuse) - kinds = [ - event["kind"] - for event in store.events_after("session-1", "turn-1", None) - ] - # The successful projection named the card it stored and the Goal it staffs; - # the refused one reported a typed code instead of failing the answer. - assert kinds == ["team_plan.projected", "team_plan.projection_failed"] + refused = offer({"channel_id": "manager"}, projector=refuse, turn_id="turn-3") + assert "authorized-goal" in refused["message"] + assert [ + event["kind"] for event in store.events_after("session-1", "turn-1", None) + ] == ["team_plan.projected"] + assert [ + event["kind"] for event in store.events_after("session-1", "turn-3", None) + ] == ["team_plan.projection_failed"] projected_event = store.events_after("session-1", "turn-1", None)[0] assert projected_event["payload"] == { "goal_id": "authorized-goal", "proposal_id": "proposal-team-plan", } + + +def test_an_answer_without_a_team_plan_is_never_annotated() -> None: + """The pointer belongs to a team plan, not to every manager answer.""" + + from loopx.capabilities.manager_context.team_plan import ( + offer_team_plan_confirmation, + ) + + class _Store: + def append_event(self, *_args, **_kwargs): # pragma: no cover - not reached + raise AssertionError("no event is written without a team plan") + + response = { + "message": "只回答问题的普通回复。", + "proposals": [{"kind": "todo", "text": "Do one thing"}], + "gate": None, + } + assert offer_team_plan_confirmation( + store=_Store(), + session={"channel_id": "manager"}, + session_id="session-1", + turn_id="turn-1", + response=response, + projector=lambda _preview: {"proposal_id": "unused"}, + ) == response From cee409cc7d0fdf9bc07ef1f76ea5a17b170631fc Mon Sep 17 00:00:00 2001 From: huangruiteng <14976749+huangruiteng@users.noreply.github.com> Date: Wed, 16 Sep 2026 23:58:35 +0800 Subject: [PATCH 2/2] chore(dashboard): ship the rebuilt chat bundle for the manager dialogue line The channel now states where a team plan is confirmed, and the dashboard stopped composing its own version of that sentence, so the packaged chat surface needs the rebuilt bundle. Rebuilt with npm run build:chat: new entry assets/index-Cb7S1yHW.js retires assets/index-D8O4R6-3.js as the previous generation. Signed-off-by: huangruiteng <14976749+huangruiteng@users.noreply.github.com> --- loopx/web/chat/asset-retention.json | 4 +-- .../{index-DWWKKUgg.js => index-Cb7S1yHW.js} | 32 +++++++++---------- loopx/web/chat/index.html | 2 +- 3 files changed, 19 insertions(+), 19 deletions(-) rename loopx/web/chat/assets/{index-DWWKKUgg.js => index-Cb7S1yHW.js} (55%) diff --git a/loopx/web/chat/asset-retention.json b/loopx/web/chat/asset-retention.json index 599290f268..6a3e641ed6 100644 --- a/loopx/web/chat/asset-retention.json +++ b/loopx/web/chat/asset-retention.json @@ -13,7 +13,7 @@ "assets/geist-mono-symbols2-wght-normal-CO5SzqOn.woff2", "assets/geist-mono-vietnamese-wght-normal-DadHysG0.woff2", "assets/geist-vietnamese-wght-normal-6IgcOCM7.woff2", - "assets/index-D8O4R6-3.js", + "assets/index-Cb7S1yHW.js", "assets/index-DWmuPX72.css" ], [ @@ -28,7 +28,7 @@ "assets/geist-mono-symbols2-wght-normal-CO5SzqOn.woff2", "assets/geist-mono-vietnamese-wght-normal-DadHysG0.woff2", "assets/geist-vietnamese-wght-normal-6IgcOCM7.woff2", - "assets/index-DWWKKUgg.js", + "assets/index-D8O4R6-3.js", "assets/index-DWmuPX72.css" ] ] diff --git a/loopx/web/chat/assets/index-DWWKKUgg.js b/loopx/web/chat/assets/index-Cb7S1yHW.js similarity index 55% rename from loopx/web/chat/assets/index-DWWKKUgg.js rename to loopx/web/chat/assets/index-Cb7S1yHW.js index 14f6337158..e54cc5ed95 100644 --- a/loopx/web/chat/assets/index-DWWKKUgg.js +++ b/loopx/web/chat/assets/index-Cb7S1yHW.js @@ -5,8 +5,8 @@ var e=Object.create,t=Object.defineProperty,n=Object.getOwnPropertyDescriptor,r= `);for(i=r=0;ri||c[r]!==l[i]){var u=` `+c[r].replace(` at new `,` at `);return e.displayName&&u.includes(``)&&(u=u.replace(``,e.displayName)),u}while(1<=r&&0<=i);break}}}finally{ge=!1,Error.prepareStackTrace=n}return(n=e?e.displayName||e.name:``)?he(n):``}function ve(e,t){switch(e.tag){case 26:case 27:case 5:return he(e.type);case 16:return he(`Lazy`);case 13:return e.child!==t&&t!==null?he(`Suspense Fallback`):he(`Suspense`);case 19:return he(`SuspenseList`);case 0:case 15:return _e(e.type,!1);case 11:return _e(e.type.render,!1);case 1:return _e(e.type,!0);case 31:return he(`Activity`);default:return``}}function ye(e){try{var t=``,n=null;do t+=ve(e,n),n=e,e=e.return;while(e);return t}catch(e){return` Error generating stack: `+e.message+` -`+e.stack}}var be=Object.prototype.hasOwnProperty,xe=t.unstable_scheduleCallback,Se=t.unstable_cancelCallback,Ce=t.unstable_shouldYield,we=t.unstable_requestPaint,Te=t.unstable_now,Ee=t.unstable_getCurrentPriorityLevel,De=t.unstable_ImmediatePriority,z=t.unstable_UserBlockingPriority,Oe=t.unstable_NormalPriority,ke=t.unstable_LowPriority,Ae=t.unstable_IdlePriority,je=t.log,B=t.unstable_setDisableYieldValue,V=null,Me=null;function Ne(e){if(typeof je==`function`&&B(e),Me&&typeof Me.setStrictMode==`function`)try{Me.setStrictMode(V,e)}catch{}}var Pe=Math.clz32?Math.clz32:Le,Fe=Math.log,Ie=Math.LN2;function Le(e){return e>>>=0,e===0?32:31-(Fe(e)/Ie|0)|0}var Re=256,ze=262144,Be=4194304;function Ve(e){var t=e&42;if(t!==0)return t;switch(e&-e){case 1:return 1;case 2:return 2;case 4:return 4;case 8:return 8;case 16:return 16;case 32:return 32;case 64:return 64;case 128:return 128;case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:return e&261888;case 262144:case 524288:case 1048576:case 2097152:return e&3932160;case 4194304:case 8388608:case 16777216:case 33554432:return e&62914560;case 67108864:return 67108864;case 134217728:return 134217728;case 268435456:return 268435456;case 536870912:return 536870912;case 1073741824:return 0;default:return e}}function He(e,t,n){var r=e.pendingLanes;if(r===0)return 0;var i=0,a=e.suspendedLanes,o=e.pingedLanes;e=e.warmLanes;var s=r&134217727;return s===0?(s=r&~a,s===0?o===0?n||(n=r&~e,n!==0&&(i=Ve(n))):i=Ve(o):i=Ve(s)):(r=s&~a,r===0?(o&=s,o===0?n||(n=s&~e,n!==0&&(i=Ve(n))):i=Ve(o)):i=Ve(r)),i===0?0:t!==0&&t!==i&&(t&a)===0&&(a=i&-i,n=t&-t,a>=n||a===32&&n&4194048)?t:i}function Ue(e,t){return(e.pendingLanes&~(e.suspendedLanes&~e.pingedLanes)&t)===0}function We(e,t){switch(e){case 1:case 2:case 4:case 8:case 64:return t+250;case 16:case 32:case 128:case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:case 262144:case 524288:case 1048576:case 2097152:return t+5e3;case 4194304:case 8388608:case 16777216:case 33554432:return-1;case 67108864:case 134217728:case 268435456:case 536870912:case 1073741824:return-1;default:return-1}}function Ge(){var e=Be;return Be<<=1,!(Be&62914560)&&(Be=4194304),e}function Ke(e){for(var t=[],n=0;31>n;n++)t.push(e);return t}function qe(e,t){e.pendingLanes|=t,t!==268435456&&(e.suspendedLanes=0,e.pingedLanes=0,e.warmLanes=0)}function Je(e,t,n,r,i,a){var o=e.pendingLanes;e.pendingLanes=n,e.suspendedLanes=0,e.pingedLanes=0,e.warmLanes=0,e.expiredLanes&=n,e.entangledLanes&=n,e.errorRecoveryDisabledLanes&=n,e.shellSuspendCounter=0;var s=e.entanglements,c=e.expirationTimes,l=e.hiddenUpdates;for(n=o&~n;0`u`||window.document===void 0||window.document.createElement===void 0),sn=!1;if(on)try{var cn={};Object.defineProperty(cn,"passive",{get:function(){sn=!0}}),window.addEventListener(`test`,cn,cn),window.removeEventListener(`test`,cn,cn)}catch{sn=!1}var ln=null,un=null,dn=null;function fn(){if(dn)return dn;var e,t=un,n=t.length,r,i=`value`in ln?ln.value:ln.textContent,a=i.length;for(e=0;e=Wn),qn=` `,Jn=!1;function Yn(e,t){switch(e){case`keyup`:return Hn.indexOf(t.keyCode)!==-1;case`keydown`:return t.keyCode!==229;case`keypress`:case`mousedown`:case`focusout`:return!0;default:return!1}}function Xn(e){return e=e.detail,typeof e==`object`&&`data`in e?e.data:null}var Zn=!1;function Qn(e,t){switch(e){case`compositionend`:return Xn(t);case`keypress`:return t.which===32?(Jn=!0,qn):null;case`textInput`:return e=t.data,e===qn&&Jn?null:e;default:return null}}function $n(e,t){if(Zn)return e===`compositionend`||!Un&&Yn(e,t)?(e=fn(),dn=un=ln=null,Zn=!1,e):null;switch(e){case`paste`:return null;case`keypress`:if(!(t.ctrlKey||t.altKey||t.metaKey)||t.ctrlKey&&t.altKey){if(t.char&&1=t)return{node:n,offset:t-e};e=r}a:{for(;n;){if(n.nextSibling){n=n.nextSibling;break a}n=n.parentNode}n=void 0}n=xr(n)}}function Cr(e,t){return e&&t?e===t?!0:e&&e.nodeType===3?!1:t&&t.nodeType===3?Cr(e,t.parentNode):`contains`in e?e.contains(t):e.compareDocumentPosition?!!(e.compareDocumentPosition(t)&16):!1:!1}function wr(e){e=e!=null&&e.ownerDocument!=null&&e.ownerDocument.defaultView!=null?e.ownerDocument.defaultView:window;for(var t=Nt(e.document);t instanceof e.HTMLIFrameElement;){try{var n=typeof t.contentWindow.location.href==`string`}catch{n=!1}if(n)e=t.contentWindow;else break;t=Nt(e.document)}return t}function Tr(e){var t=e&&e.nodeName&&e.nodeName.toLowerCase();return t&&(t===`input`&&(e.type===`text`||e.type===`search`||e.type===`tel`||e.type===`url`||e.type===`password`)||t===`textarea`||e.contentEditable===`true`)}var Er=on&&`documentMode`in document&&11>=document.documentMode,Dr=null,Or=null,kr=null,Ar=!1;function jr(e,t,n){var r=n.window===n?n.document:n.nodeType===9?n:n.ownerDocument;Ar||Dr==null||Dr!==Nt(r)||(r=Dr,`selectionStart`in r&&Tr(r)?r={start:r.selectionStart,end:r.selectionEnd}:(r=(r.ownerDocument&&r.ownerDocument.defaultView||window).getSelection(),r={anchorNode:r.anchorNode,anchorOffset:r.anchorOffset,focusNode:r.focusNode,focusOffset:r.focusOffset}),kr&&br(kr,r)||(kr=r,r=Od(Or,`onSelect`),0>=o,i-=o,Ci=1<<32-Pe(t)+i|n<h?(g=d,d=null):g=d.sibling;var _=p(i,d,s[h],c);if(_===null){d===null&&(d=g);break}e&&d&&_.alternate===null&&t(i,d),a=o(_,a,h),u===null?l=_:u.sibling=_,u=_,d=g}if(h===s.length)return n(i,d),Mi&&Ti(i,h),l;if(d===null){for(;hg?(_=h,h=null):_=h.sibling;var y=p(a,h,v.value,l);if(y===null){h===null&&(h=_);break}e&&h&&y.alternate===null&&t(a,h),s=o(y,s,g),d===null?u=y:d.sibling=y,d=y,h=_}if(v.done)return n(a,h),Mi&&Ti(a,g),u;if(h===null){for(;!v.done;g++,v=c.next())v=f(a,v.value,l),v!==null&&(s=o(v,s,g),d===null?u=v:d.sibling=v,d=v);return Mi&&Ti(a,g),u}for(h=r(h);!v.done;g++,v=c.next())v=m(h,a,g,v.value,l),v!==null&&(e&&v.alternate!==null&&h.delete(v.key===null?g:v.key),s=o(v,s,g),d===null?u=v:d.sibling=v,d=v);return e&&h.forEach(function(e){return t(a,e)}),Mi&&Ti(a,g),u}function b(e,r,o,c){if(typeof o==`object`&&o&&o.type===y&&o.key===null&&(o=o.props.children),typeof o==`object`&&o){switch(o.$$typeof){case _:a:{for(var l=o.key;r!==null;){if(r.key===l){if(l=o.type,l===y){if(r.tag===7){n(e,r.sibling),c=a(r,o.props.children),c.return=e,e=c;break a}}else if(r.elementType===l||typeof l==`object`&&l&&l.$$typeof===O&&wa(l)===r.type){n(e,r.sibling),c=a(r,o.props),ja(c,o),c.return=e,e=c;break a}n(e,r);break}t(e,r),r=r.sibling}o.type===y?(c=ui(o.props.children,e.mode,c,o.key),c.return=e,e=c):(c=li(o.type,o.key,o.props,null,e.mode,c),ja(c,o),c.return=e,e=c)}return s(e);case v:a:{for(l=o.key;r!==null;){if(r.key===l){if(r.tag===4&&r.stateNode.containerInfo===o.containerInfo&&r.stateNode.implementation===o.implementation){n(e,r.sibling),c=a(r,o.children||[]),c.return=e,e=c;break a}n(e,r);break}t(e,r),r=r.sibling}c=pi(o,e.mode,c),c.return=e,e=c}return s(e);case O:return o=wa(o),b(e,r,o,c)}if(ne(o))return h(e,r,o,c);if(A(o)){if(l=A(o),typeof l!=`function`)throw Error(i(150));return o=l.call(o),g(e,r,o,c)}if(typeof o.then==`function`)return b(e,r,Aa(o),c);if(o.$$typeof===C)return b(e,r,$i(e,o),c);Ma(e,o)}return typeof o==`string`&&o!==``||typeof o==`number`||typeof o==`bigint`?(o=``+o,r!==null&&r.tag===6?(n(e,r.sibling),c=a(r,o),c.return=e,e=c):(n(e,r),c=di(o,e.mode,c),c.return=e,e=c),s(e)):n(e,r)}return function(e,t,n,r){try{ka=0;var i=b(e,t,n,r);return Oa=null,i}catch(t){if(t===ya||t===xa)throw t;var a=ai(29,t,null,e.mode);return a.lanes=r,a.return=e,a}}}var Pa=Na(!0),Fa=Na(!1),Ia=!1;function La(e){e.updateQueue={baseState:e.memoizedState,firstBaseUpdate:null,lastBaseUpdate:null,shared:{pending:null,lanes:0,hiddenCallbacks:null},callbacks:null}}function Ra(e,t){e=e.updateQueue,t.updateQueue===e&&(t.updateQueue={baseState:e.baseState,firstBaseUpdate:e.firstBaseUpdate,lastBaseUpdate:e.lastBaseUpdate,shared:e.shared,callbacks:null})}function za(e){return{lane:e,tag:0,payload:null,callback:null,next:null}}function Ba(e,t,n){var r=e.updateQueue;if(r===null)return null;if(r=r.shared,Vl&2){var i=r.pending;return i===null?t.next=t:(t.next=i.next,i.next=t),r.pending=t,t=ni(e),ti(e,null,n),t}return Qr(e,r,t,n),ni(e)}function Va(e,t,n){if(t=t.updateQueue,t!==null&&(t=t.shared,n&4194048)){var r=t.lanes;r&=e.pendingLanes,n|=r,t.lanes=n,Xe(e,n)}}function Ha(e,t){var n=e.updateQueue,r=e.alternate;if(r!==null&&(r=r.updateQueue,n===r)){var i=null,a=null;if(n=n.firstBaseUpdate,n!==null){do{var o={lane:n.lane,tag:n.tag,payload:n.payload,callback:null,next:null};a===null?i=a=o:a=a.next=o,n=n.next}while(n!==null);a===null?i=a=t:a=a.next=t}else i=a=t;n={baseState:r.baseState,firstBaseUpdate:i,lastBaseUpdate:a,shared:r.shared,callbacks:r.callbacks},e.updateQueue=n;return}e=n.lastBaseUpdate,e===null?n.firstBaseUpdate=t:e.next=t,n.lastBaseUpdate=t}var Ua=!1;function Wa(){if(Ua){var e=ua;if(e!==null)throw e}}function Ga(e,t,n,r){Ua=!1;var i=e.updateQueue;Ia=!1;var a=i.firstBaseUpdate,o=i.lastBaseUpdate,s=i.shared.pending;if(s!==null){i.shared.pending=null;var c=s,l=c.next;c.next=null,o===null?a=l:o.next=l,o=c;var u=e.alternate;u!==null&&(u=u.updateQueue,s=u.lastBaseUpdate,s!==o&&(s===null?u.firstBaseUpdate=l:s.next=l,u.lastBaseUpdate=c))}if(a!==null){var d=i.baseState;o=0,u=l=c=null,s=a;do{var f=s.lane&-536870913,p=f!==s.lane;if(p?(Wl&f)===f:(r&f)===f){f!==0&&f===la&&(Ua=!0),u!==null&&(u=u.next={lane:0,tag:s.tag,payload:s.payload,callback:null,next:null});a:{var m=e,g=s;f=t;var _=n;switch(g.tag){case 1:if(m=g.payload,typeof m==`function`){d=m.call(_,d,f);break a}d=m;break a;case 3:m.flags=m.flags&-65537|128;case 0:if(m=g.payload,f=typeof m==`function`?m.call(_,d,f):m,f==null)break a;d=h({},d,f);break a;case 2:Ia=!0}}f=s.callback,f!==null&&(e.flags|=64,p&&(e.flags|=8192),p=i.callbacks,p===null?i.callbacks=[f]:p.push(f))}else p={lane:f,tag:s.tag,payload:s.payload,callback:s.callback,next:null},u===null?(l=u=p,c=d):u=u.next=p,o|=f;if(s=s.next,s===null){if(s=i.shared.pending,s===null)break;p=s,s=p.next,p.next=null,i.lastBaseUpdate=p,i.shared.pending=null}}while(1);u===null&&(c=d),i.baseState=c,i.firstBaseUpdate=l,i.lastBaseUpdate=u,a===null&&(i.shared.lanes=0),Ql|=o,e.lanes=o,e.memoizedState=d}}function Ka(e,t){if(typeof e!=`function`)throw Error(i(191,e));e.call(t)}function qa(e,t){var n=e.callbacks;if(n!==null)for(e.callbacks=null,e=0;ea?a:8;var o=N.T,s={};N.T=s,Ps(e,!1,t,n);try{var c=i(),l=N.S;l!==null&&l(s,c),typeof c==`object`&&c&&typeof c.then==`function`?Ns(e,t,pa(c,r),bu(e)):Ns(e,t,r,bu(e))}catch(n){Ns(e,t,{then:function(){},status:`rejected`,reason:n},bu())}finally{P.p=a,o!==null&&s.types!==null&&(o.types=s.types),N.T=o}}function Cs(){}function ws(e,t,n,r){if(e.tag!==5)throw Error(i(476));var a=Ts(e).queue;Ss(e,a,t,re,n===null?Cs:function(){return Es(e),n(r)})}function Ts(e){var t=e.memoizedState;if(t!==null)return t;t={memoizedState:re,baseState:re,baseQueue:null,queue:{pending:null,lanes:0,dispatch:null,lastRenderedReducer:Fo,lastRenderedState:re},next:null};var n={};return t.next={memoizedState:n,baseState:n,baseQueue:null,queue:{pending:null,lanes:0,dispatch:null,lastRenderedReducer:Fo,lastRenderedState:n},next:null},e.memoizedState=t,e=e.alternate,e!==null&&(e.memoizedState=t),t}function Es(e){var t=Ts(e);t.next===null&&(t=e.alternate.memoizedState),Ns(e,t.next.queue,{},bu())}function Ds(){return H(tp)}function Os(){return Ao().memoizedState}function ks(){return Ao().memoizedState}function As(e){for(var t=e.return;t!==null;){switch(t.tag){case 24:case 3:var n=bu();e=za(n);var r=Ba(t,e,n);r!==null&&(Su(r,t,n),Va(r,t,n)),t={cache:aa()},e.payload=t;return}t=t.return}}function js(e,t,n){var r=bu();n={lane:r,revertLane:0,gesture:null,action:n,hasEagerState:!1,eagerState:null,next:null},Fs(e)?Is(t,n):(n=$r(e,t,n,r),n!==null&&(Su(n,e,r),Ls(n,t,r)))}function Ms(e,t,n){Ns(e,t,n,bu())}function Ns(e,t,n,r){var i={lane:r,revertLane:0,gesture:null,action:n,hasEagerState:!1,eagerState:null,next:null};if(Fs(e))Is(t,i);else{var a=e.alternate;if(e.lanes===0&&(a===null||a.lanes===0)&&(a=t.lastRenderedReducer,a!==null))try{var o=t.lastRenderedState,s=a(o,n);if(i.hasEagerState=!0,i.eagerState=s,yr(s,o))return Qr(e,t,i,0),Hl===null&&Zr(),!1}catch{}if(n=$r(e,t,i,r),n!==null)return Su(n,e,r),Ls(n,t,r),!0}return!1}function Ps(e,t,n,r){if(r={lane:2,revertLane:md(),gesture:null,action:r,hasEagerState:!1,eagerState:null,next:null},Fs(e)){if(t)throw Error(i(479))}else t=$r(e,n,r,2),t!==null&&Su(t,e,2)}function Fs(e){var t=e.alternate;return e===lo||t!==null&&t===lo}function Is(e,t){mo=po=!0;var n=e.pending;n===null?t.next=t:(t.next=n.next,n.next=t),e.pending=t}function Ls(e,t,n){if(n&4194048){var r=t.lanes;r&=e.pendingLanes,n|=r,t.lanes=n,Xe(e,n)}}var Rs={readContext:H,use:No,useCallback:bo,useContext:bo,useEffect:bo,useImperativeHandle:bo,useLayoutEffect:bo,useInsertionEffect:bo,useMemo:bo,useReducer:bo,useRef:bo,useState:bo,useDebugValue:bo,useDeferredValue:bo,useTransition:bo,useSyncExternalStore:bo,useId:bo,useHostTransitionStatus:bo,useFormState:bo,useActionState:bo,useOptimistic:bo,useMemoCache:bo,useCacheRefresh:bo};Rs.useEffectEvent=bo;var zs={readContext:H,use:No,useCallback:function(e,t){return ko().memoizedState=[e,t===void 0?null:t],e},useContext:H,useEffect:ls,useImperativeHandle:function(e,t,n){n=n==null?null:n.concat([e]),ss(4194308,4,hs.bind(null,t,e),n)},useLayoutEffect:function(e,t){return ss(4194308,4,e,t)},useInsertionEffect:function(e,t){ss(4,2,e,t)},useMemo:function(e,t){var n=ko();t=t===void 0?null:t;var r=e();if(ho){Ne(!0);try{e()}finally{Ne(!1)}}return n.memoizedState=[r,t],r},useReducer:function(e,t,n){var r=ko();if(n!==void 0){var i=n(t);if(ho){Ne(!0);try{n(t)}finally{Ne(!1)}}}else i=t;return r.memoizedState=r.baseState=i,e={pending:null,lanes:0,dispatch:null,lastRenderedReducer:e,lastRenderedState:i},r.queue=e,e=e.dispatch=js.bind(null,lo,e),[r.memoizedState,e]},useRef:function(e){var t=ko();return e={current:e},t.memoizedState=e},useState:function(e){e=Go(e);var t=e.queue,n=Ms.bind(null,lo,t);return t.dispatch=n,[e.memoizedState,n]},useDebugValue:_s,useDeferredValue:function(e,t){return bs(ko(),e,t)},useTransition:function(){var e=Go(!1);return e=Ss.bind(null,lo,e.queue,!0,!1),ko().memoizedState=e,[!1,e]},useSyncExternalStore:function(e,t,n){var r=lo,a=ko();if(Mi){if(n===void 0)throw Error(i(407));n=n()}else{if(n=t(),Hl===null)throw Error(i(349));Wl&127||Bo(r,t,n)}a.memoizedState=n;var o={value:n,getSnapshot:t};return a.queue=o,ls(Ho.bind(null,r,o,e),[e]),r.flags|=2048,as(9,{destroy:void 0},Vo.bind(null,r,o,n,t),null),n},useId:function(){var e=ko(),t=Hl.identifierPrefix;if(Mi){var n=wi,r=Ci;n=(r&~(1<<32-Pe(r)-1)).toString(32)+n,t=`_`+t+`R_`+n,n=go++,0<\/script>`,o=o.removeChild(o.firstChild);break;case`select`:o=typeof r.is==`string`?s.createElement(`select`,{is:r.is}):s.createElement(`select`),r.multiple?o.multiple=!0:r.size&&(o.size=r.size);break;default:o=typeof r.is==`string`?s.createElement(a,{is:r.is}):s.createElement(a)}}o[rt]=t,o[it]=r;a:for(s=t.child;s!==null;){if(s.tag===5||s.tag===6)o.appendChild(s.stateNode);else if(s.tag!==4&&s.tag!==27&&s.child!==null){s.child.return=s,s=s.child;continue}if(s===t)break a;for(;s.sibling===null;){if(s.return===null||s.return===t)break a;s=s.return}s.sibling.return=s.return,s=s.sibling}t.stateNode=o;a:switch(Ld(o,a,r),a){case`button`:case`input`:case`select`:case`textarea`:r=!!r.autoFocus;break a;case`img`:r=!0;break a;default:r=!1}r&&Nc(t)}}return Rc(t),Pc(t,t.type,e===null?null:e.memoizedProps,t.pendingProps,n),null;case 6:if(e&&t.stateNode!=null)e.memoizedProps!==r&&Nc(t);else{if(typeof r!=`string`&&t.stateNode===null)throw Error(i(166));if(e=ce.current,zi(t)){if(e=t.stateNode,n=t.memoizedProps,r=null,a=Ai,a!==null)switch(a.tag){case 27:case 5:r=a.memoizedProps}e[rt]=t,e=!!(e.nodeValue===n||r!==null&&!0===r.suppressHydrationWarning||Pd(e.nodeValue,n)),e||Ii(t,!0)}else e=Ud(e).createTextNode(r),e[rt]=t,t.stateNode=e}return Rc(t),null;case 31:if(n=t.memoizedState,e===null||e.memoizedState!==null){if(r=zi(t),n!==null){if(e===null){if(!r)throw Error(i(318));if(e=t.memoizedState,e=e===null?null:e.dehydrated,!e)throw Error(i(557));e[rt]=t}else Bi(),!(t.flags&128)&&(t.memoizedState=null),t.flags|=4;Rc(t),e=!1}else n=Vi(),e!==null&&e.memoizedState!==null&&(e.memoizedState.hydrationErrors=n),e=!0;if(!e)return t.flags&256?(ao(t),t):(ao(t),null);if(t.flags&128)throw Error(i(558))}return Rc(t),null;case 13:if(r=t.memoizedState,e===null||e.memoizedState!==null&&e.memoizedState.dehydrated!==null){if(a=zi(t),r!==null&&r.dehydrated!==null){if(e===null){if(!a)throw Error(i(318));if(a=t.memoizedState,a=a===null?null:a.dehydrated,!a)throw Error(i(317));a[rt]=t}else Bi(),!(t.flags&128)&&(t.memoizedState=null),t.flags|=4;Rc(t),a=!1}else a=Vi(),e!==null&&e.memoizedState!==null&&(e.memoizedState.hydrationErrors=a),a=!0;if(!a)return t.flags&256?(ao(t),t):(ao(t),null)}return ao(t),t.flags&128?(t.lanes=n,t):(n=r!==null,e=e!==null&&e.memoizedState!==null,n&&(r=t.child,a=null,r.alternate!==null&&r.alternate.memoizedState!==null&&r.alternate.memoizedState.cachePool!==null&&(a=r.alternate.memoizedState.cachePool.pool),o=null,r.memoizedState!==null&&r.memoizedState.cachePool!==null&&(o=r.memoizedState.cachePool.pool),o!==a&&(r.flags|=2048)),n!==e&&n&&(t.child.flags|=8192),Ic(t,t.updateQueue),Rc(t),null);case 4:return de(),e===null&&wd(t.stateNode.containerInfo),Rc(t),null;case 10:return qi(t.type),Rc(t),null;case 19:if(oe(oo),r=t.memoizedState,r===null)return Rc(t),null;if(a=!!(t.flags&128),o=r.rendering,o===null){if(a)Lc(r,!1);else{if(Zl!==0||e!==null&&e.flags&128)for(e=t.child;e!==null;){if(o=so(e),o!==null){for(t.flags|=128,Lc(r,!1),e=o.updateQueue,t.updateQueue=e,Ic(t,e),t.subtreeFlags=0,e=n,n=t.child;n!==null;)ci(n,e),n=n.sibling;return I(oo,oo.current&1|2),Mi&&Ti(t,r.treeForkCount),t.child}e=e.sibling}r.tail!==null&&Te()>cu&&(t.flags|=128,a=!0,Lc(r,!1),t.lanes=4194304)}}else{if(!a){if(e=so(o),e!==null){if(t.flags|=128,a=!0,e=e.updateQueue,t.updateQueue=e,Ic(t,e),Lc(r,!0),r.tail===null&&r.tailMode===`hidden`&&!o.alternate&&!Mi)return Rc(t),null}else 2*Te()-r.renderingStartTime>cu&&n!==536870912&&(t.flags|=128,a=!0,Lc(r,!1),t.lanes=4194304)}r.isBackwards?(o.sibling=t.child,t.child=o):(e=r.last,e===null?t.child=o:e.sibling=o,r.last=o)}return r.tail===null?(Rc(t),null):(e=r.tail,r.rendering=e,r.tail=e.sibling,r.renderingStartTime=Te(),e.sibling=null,n=oo.current,I(oo,a?n&1|2:n&1),Mi&&Ti(t,r.treeForkCount),e);case 22:case 23:return ao(t),Qa(),r=t.memoizedState!==null,e===null?r&&(t.flags|=8192):e.memoizedState!==null!==r&&(t.flags|=8192),r?n&536870912&&!(t.flags&128)&&(Rc(t),t.subtreeFlags&6&&(t.flags|=8192)):Rc(t),n=t.updateQueue,n!==null&&Ic(t,n.retryQueue),n=null,e!==null&&e.memoizedState!==null&&e.memoizedState.cachePool!==null&&(n=e.memoizedState.cachePool.pool),r=null,t.memoizedState!==null&&t.memoizedState.cachePool!==null&&(r=t.memoizedState.cachePool.pool),r!==n&&(t.flags|=2048),e!==null&&oe(ha),null;case 24:return n=null,e!==null&&(n=e.memoizedState.cache),t.memoizedState.cache!==n&&(t.flags|=2048),qi(ia),Rc(t),null;case 25:return null;case 30:return null}throw Error(i(156,t.tag))}function Bc(e,t){switch(Oi(t),t.tag){case 1:return e=t.flags,e&65536?(t.flags=e&-65537|128,t):null;case 3:return qi(ia),de(),e=t.flags,e&65536&&!(e&128)?(t.flags=e&-65537|128,t):null;case 26:case 27:case 5:return fe(t),null;case 31:if(t.memoizedState!==null){if(ao(t),t.alternate===null)throw Error(i(340));Bi()}return e=t.flags,e&65536?(t.flags=e&-65537|128,t):null;case 13:if(ao(t),e=t.memoizedState,e!==null&&e.dehydrated!==null){if(t.alternate===null)throw Error(i(340));Bi()}return e=t.flags,e&65536?(t.flags=e&-65537|128,t):null;case 19:return oe(oo),null;case 4:return de(),null;case 10:return qi(t.type),null;case 22:case 23:return ao(t),Qa(),e!==null&&oe(ha),e=t.flags,e&65536?(t.flags=e&-65537|128,t):null;case 24:return qi(ia),null;case 25:return null;default:return null}}function Vc(e,t){switch(Oi(t),t.tag){case 3:qi(ia),de();break;case 26:case 27:case 5:fe(t);break;case 4:de();break;case 31:t.memoizedState!==null&&ao(t);break;case 13:ao(t);break;case 19:oe(oo);break;case 10:qi(t.type);break;case 22:case 23:ao(t),Qa(),e!==null&&oe(ha);break;case 24:qi(ia)}}function Hc(e,t){try{var n=t.updateQueue,r=n===null?null:n.lastEffect;if(r!==null){var i=r.next;n=i;do{if((n.tag&e)===e){r=void 0;var a=n.create,o=n.inst;r=a(),o.destroy=r}n=n.next}while(n!==i)}}catch(e){Zu(t,t.return,e)}}function Uc(e,t,n){try{var r=t.updateQueue,i=r===null?null:r.lastEffect;if(i!==null){var a=i.next;r=a;do{if((r.tag&e)===e){var o=r.inst,s=o.destroy;if(s!==void 0){o.destroy=void 0,i=t;var c=n,l=s;try{l()}catch(e){Zu(i,c,e)}}}r=r.next}while(r!==a)}}catch(e){Zu(t,t.return,e)}}function Wc(e){var t=e.updateQueue;if(t!==null){var n=e.stateNode;try{qa(t,n)}catch(t){Zu(e,e.return,t)}}}function Gc(e,t,n){n.props=Ks(e.type,e.memoizedProps),n.state=e.memoizedState;try{n.componentWillUnmount()}catch(n){Zu(e,t,n)}}function Kc(e,t){try{var n=e.ref;if(n!==null){switch(e.tag){case 26:case 27:case 5:var r=e.stateNode;break;case 30:r=e.stateNode;break;default:r=e.stateNode}typeof n==`function`?e.refCleanup=n(r):n.current=r}}catch(n){Zu(e,t,n)}}function qc(e,t){var n=e.ref,r=e.refCleanup;if(n!==null){if(typeof r==`function`)try{r()}catch(n){Zu(e,t,n)}finally{e.refCleanup=null,e=e.alternate,e!=null&&(e.refCleanup=null)}else if(typeof n==`function`)try{n(null)}catch(n){Zu(e,t,n)}else n.current=null}}function Jc(e){var t=e.type,n=e.memoizedProps,r=e.stateNode;try{a:switch(t){case`button`:case`input`:case`select`:case`textarea`:n.autoFocus&&r.focus();break a;case`img`:n.src?r.src=n.src:n.srcSet&&(r.srcset=n.srcSet)}}catch(t){Zu(e,e.return,t)}}function Yc(e,t,n){try{var r=e.stateNode;Rd(r,e.type,n,t),r[it]=t}catch(t){Zu(e,e.return,t)}}function Xc(e){return e.tag===5||e.tag===3||e.tag===26||e.tag===27&&ef(e.type)||e.tag===4}function Zc(e){a:for(;;){for(;e.sibling===null;){if(e.return===null||Xc(e.return))return null;e=e.return}for(e.sibling.return=e.return,e=e.sibling;e.tag!==5&&e.tag!==6&&e.tag!==18;){if(e.tag===27&&ef(e.type)||e.flags&2||e.child===null||e.tag===4)continue a;e.child.return=e,e=e.child}if(!(e.flags&2))return e.stateNode}}function Qc(e,t,n){var r=e.tag;if(r===5||r===6)e=e.stateNode,t?(n.nodeType===9?n.body:n.nodeName===`HTML`?n.ownerDocument.body:n).insertBefore(e,t):(t=n.nodeType===9?n.body:n.nodeName===`HTML`?n.ownerDocument.body:n,t.appendChild(e),n=n._reactRootContainer,n!=null||t.onclick!==null||(t.onclick=Xt));else if(r!==4&&(r===27&&ef(e.type)&&(n=e.stateNode,t=null),e=e.child,e!==null))for(Qc(e,t,n),e=e.sibling;e!==null;)Qc(e,t,n),e=e.sibling}function $c(e,t,n){var r=e.tag;if(r===5||r===6)e=e.stateNode,t?n.insertBefore(e,t):n.appendChild(e);else if(r!==4&&(r===27&&ef(e.type)&&(n=e.stateNode),e=e.child,e!==null))for($c(e,t,n),e=e.sibling;e!==null;)$c(e,t,n),e=e.sibling}function el(e){var t=e.stateNode,n=e.memoizedProps;try{for(var r=e.type,i=t.attributes;i.length;)t.removeAttributeNode(i[0]);Ld(t,r,n),t[rt]=e,t[it]=n}catch(t){Zu(e,e.return,t)}}var tl=!1,nl=!1,rl=!1,il=typeof WeakSet==`function`?WeakSet:Set,al=null;function ol(e,t){if(e=e.containerInfo,Vd=up,e=wr(e),Tr(e)){if(`selectionStart`in e)var n={start:e.selectionStart,end:e.selectionEnd};else a:{n=(n=e.ownerDocument)&&n.defaultView||window;var r=n.getSelection&&n.getSelection();if(r&&r.rangeCount!==0){n=r.anchorNode;var a=r.anchorOffset,o=r.focusNode;r=r.focusOffset;try{n.nodeType,o.nodeType}catch{n=null;break a}var s=0,c=-1,l=-1,u=0,d=0,f=e,p=null;b:for(;;){for(var m;f!==n||a!==0&&f.nodeType!==3||(c=s+a),f!==o||r!==0&&f.nodeType!==3||(l=s+r),f.nodeType===3&&(s+=f.nodeValue.length),(m=f.firstChild)!==null;)p=f,f=m;for(;;){if(f===e)break b;if(p===n&&++u===a&&(c=s),p===o&&++d===r&&(l=s),(m=f.nextSibling)!==null)break;f=p,p=f.parentNode}f=m}n=c===-1||l===-1?null:{start:c,end:l}}else n=null}n||={start:0,end:0}}else n=null;for(Hd={focusedElem:e,selectionRange:n},up=!1,al=t;al!==null;)if(t=al,e=t.child,t.subtreeFlags&1028&&e!==null)e.return=t,al=e;else for(;al!==null;){switch(t=al,o=t.alternate,e=t.flags,t.tag){case 0:if(e&4&&(e=t.updateQueue,e=e===null?null:e.events,e!==null))for(n=0;n title`))),Ld(o,r,n),o[rt]=e,gt(o),r=o;break a;case`link`:var s=Wf(`link`,`href`,a).get(r+(n.href||``));if(s){for(var c=0;cg&&(o=g,g=h,h=o);var _=Sr(s,h),v=Sr(s,g);if(_&&v&&(p.rangeCount!==1||p.anchorNode!==_.node||p.anchorOffset!==_.offset||p.focusNode!==v.node||p.focusOffset!==v.offset)){var y=d.createRange();y.setStart(_.node,_.offset),p.removeAllRanges(),h>g?(p.addRange(y),p.extend(v.node,v.offset)):(y.setEnd(v.node,v.offset),p.addRange(y))}}}}for(d=[],p=s;p=p.parentNode;)p.nodeType===1&&d.push({element:p,left:p.scrollLeft,top:p.scrollTop});for(typeof s.focus==`function`&&s.focus(),s=0;sn?32:n,N.T=null,n=gu,gu=null;var o=fu,s=mu;if(du=0,pu=fu=null,mu=0,Vl&6)throw Error(i(331));var c=Vl;if(Vl|=4,Il(o.current),Ol(o,o.current,s,n),Vl=c,cd(0,!1),Me&&typeof Me.onPostCommitFiberRoot==`function`)try{Me.onPostCommitFiberRoot(V,o)}catch{}return!0}finally{P.p=a,N.T=r,qu(e,t)}}function Xu(e,t,n){t=hi(n,t),t=Qs(e.stateNode,t,2),e=Ba(e,t,2),e!==null&&(qe(e,2),q(e))}function Zu(e,t,n){if(e.tag===3)Xu(e,e,n);else for(;t!==null;){if(t.tag===3){Xu(t,e,n);break}if(t.tag===1){var r=t.stateNode;if(typeof t.type.getDerivedStateFromError==`function`||typeof r.componentDidCatch==`function`&&(uu===null||!uu.has(r))){e=hi(n,e),n=$s(2),r=Ba(t,n,2),r!==null&&(ec(n,r,t,e),qe(r,2),q(r));break}}t=t.return}}function G(e,t,n){var r=e.pingCache;if(r===null){r=e.pingCache=new Bl;var i=new Set;r.set(t,i)}else i=r.get(t),i===void 0&&(i=new Set,r.set(t,i));i.has(n)||(Yl=!0,i.add(n),e=Qu.bind(null,e,t,n),t.then(e,e))}function Qu(e,t,n){var r=e.pingCache;r!==null&&r.delete(t),e.pingedLanes|=e.suspendedLanes&n,e.warmLanes&=~n,Hl===e&&(Wl&n)===n&&(Zl===4||Zl===3&&(Wl&62914560)===Wl&&300>Te()-ou?!(Vl&2)&&ku(e,0):eu|=n,nu===Wl&&(nu=0)),q(e)}function $u(e,t){t===0&&(t=Ge()),e=ei(e,t),e!==null&&(qe(e,t),q(e))}function ed(e){var t=e.memoizedState,n=0;t!==null&&(n=t.retryLane),$u(e,n)}function K(e,t){var n=0;switch(e.tag){case 31:case 13:var r=e.stateNode,a=e.memoizedState;a!==null&&(n=a.retryLane);break;case 19:r=e.stateNode;break;case 22:r=e.stateNode._retryCache;break;default:throw Error(i(314))}r!==null&&r.delete(t),$u(e,n)}function td(e,t){return xe(e,t)}var nd=null,rd=null,id=!1,ad=!1,od=!1,sd=0;function q(e){e!==rd&&e.next===null&&(rd===null?nd=rd=e:rd=rd.next=e),ad=!0,id||(id=!0,pd())}function cd(e,t){if(!od&&ad){od=!0;do for(var n=!1,r=nd;r!==null;){if(!t){if(e!==0){var i=r.pendingLanes;if(i===0)var a=0;else{var o=r.suspendedLanes,s=r.pingedLanes;a=(1<<31-Pe(42|e)+1)-1,a&=i&~(o&~s),a=a&201326741?a&201326741|1:a?a|2:0}a!==0&&(n=!0,fd(r,a))}else a=Wl,a=He(r,r===Hl?a:0,r.cancelPendingCommit!==null||r.timeoutHandle!==-1),!(a&3)||Ue(r,a)||(n=!0,fd(r,a))}r=r.next}while(n);od=!1}}function J(){ld()}function ld(){ad=id=!1;var e=0;sd!==0&&Jd()&&(e=sd);for(var t=Te(),n=null,r=nd;r!==null;){var i=r.next,a=ud(r,t);a===0?(r.next=null,n===null?nd=i:n.next=i,i===null&&(rd=n)):(n=r,(e!==0||a&3)&&(ad=!0)),r=i}du!==0&&du!==5||cd(e,!1),sd!==0&&(sd=0)}function ud(e,t){for(var n=e.suspendedLanes,r=e.pingedLanes,i=e.expirationTimes,a=e.pendingLanes&-62914561;0s)break;var u=c.transferSize,d=c.initiatorType;u&&zd(d)&&(c=c.responseEnd,o+=u*(c`u`?null:document;function wf(e,t,n){var r=Cf;if(r&&typeof t==`string`&&t){var i=Ft(t);i=`link[rel="`+e+`"][href="`+i+`"]`,typeof n==`string`&&(i+=`[crossorigin="`+n+`"]`),vf.has(i)||(vf.add(i),e={rel:e,crossOrigin:n,href:t},r.querySelector(i)===null&&(t=r.createElement(`link`),Ld(t,`link`,e),gt(t),r.head.appendChild(t)))}}function Tf(e){bf.D(e),wf(`dns-prefetch`,e,null)}function Ef(e,t){bf.C(e,t),wf(`preconnect`,e,t)}function Df(e,t,n){bf.L(e,t,n);var r=Cf;if(r&&e&&t){var i=`link[rel="preload"][as="`+Ft(t)+`"]`;t===`image`&&n&&n.imageSrcSet?(i+=`[imagesrcset="`+Ft(n.imageSrcSet)+`"]`,typeof n.imageSizes==`string`&&(i+=`[imagesizes="`+Ft(n.imageSizes)+`"]`)):i+=`[href="`+Ft(e)+`"]`;var a=i;switch(t){case`style`:a=Nf(e);break;case`script`:a=Lf(e)}_f.has(a)||(e=h({rel:`preload`,href:t===`image`&&n&&n.imageSrcSet?void 0:e,as:t},n),_f.set(a,e),r.querySelector(i)!==null||t===`style`&&r.querySelector(Pf(a))||t===`script`&&r.querySelector(Rf(a))||(t=r.createElement(`link`),Ld(t,`link`,e),gt(t),r.head.appendChild(t)))}}function Of(e,t){bf.m(e,t);var n=Cf;if(n&&e){var r=t&&typeof t.as==`string`?t.as:`script`,i=`link[rel="modulepreload"][as="`+Ft(r)+`"][href="`+Ft(e)+`"]`,a=i;switch(r){case`audioworklet`:case`paintworklet`:case`serviceworker`:case`sharedworker`:case`worker`:case`script`:a=Lf(e)}if(!_f.has(a)&&(e=h({rel:`modulepreload`,href:e},t),_f.set(a,e),n.querySelector(i)===null)){switch(r){case`audioworklet`:case`paintworklet`:case`serviceworker`:case`sharedworker`:case`worker`:case`script`:if(n.querySelector(Rf(a)))return}r=n.createElement(`link`),Ld(r,`link`,e),gt(r),n.head.appendChild(r)}}}function kf(e,t,n){bf.S(e,t,n);var r=Cf;if(r&&e){var i=ht(r).hoistableStyles,a=Nf(e);t||=`default`;var o=i.get(a);if(!o){var s={loading:0,preload:null};if(o=r.querySelector(Pf(a)))s.loading=5;else{e=h({rel:`stylesheet`,href:e,"data-precedence":t},n),(n=_f.get(a))&&Vf(e,n);var c=o=r.createElement(`link`);gt(c),Ld(c,`link`,e),c._p=new Promise(function(e,t){c.onload=e,c.onerror=t}),c.addEventListener(`load`,function(){s.loading|=1}),c.addEventListener(`error`,function(){s.loading|=2}),s.loading|=4,Bf(o,t,r)}o={type:`stylesheet`,instance:o,count:1,state:s},i.set(a,o)}}}function Af(e,t){bf.X(e,t);var n=Cf;if(n&&e){var r=ht(n).hoistableScripts,i=Lf(e),a=r.get(i);a||(a=n.querySelector(Rf(i)),a||(e=h({src:e,async:!0},t),(t=_f.get(i))&&Hf(e,t),a=n.createElement(`script`),gt(a),Ld(a,`link`,e),n.head.appendChild(a)),a={type:`script`,instance:a,count:1,state:null},r.set(i,a))}}function jf(e,t){bf.M(e,t);var n=Cf;if(n&&e){var r=ht(n).hoistableScripts,i=Lf(e),a=r.get(i);a||(a=n.querySelector(Rf(i)),a||(e=h({src:e,async:!0,type:`module`},t),(t=_f.get(i))&&Hf(e,t),a=n.createElement(`script`),gt(a),Ld(a,`link`,e),n.head.appendChild(a)),a={type:`script`,instance:a,count:1,state:null},r.set(i,a))}}function Mf(e,t,n,r){var a=(a=ce.current)?yf(a):null;if(!a)throw Error(i(446));switch(e){case`meta`:case`title`:return null;case`style`:return typeof n.precedence==`string`&&typeof n.href==`string`?(t=Nf(n.href),n=ht(a).hoistableStyles,r=n.get(t),r||(r={type:`style`,instance:null,count:0,state:null},n.set(t,r)),r):{type:`void`,instance:null,count:0,state:null};case`link`:if(n.rel===`stylesheet`&&typeof n.href==`string`&&typeof n.precedence==`string`){e=Nf(n.href);var o=ht(a).hoistableStyles,s=o.get(e);if(s||(a=a.ownerDocument||a,s={type:`stylesheet`,instance:null,count:0,state:{loading:0,preload:null}},o.set(e,s),(o=a.querySelector(Pf(e)))&&!o._p&&(s.instance=o,s.state.loading=5),_f.has(e)||(n={rel:`preload`,as:`style`,href:n.href,crossOrigin:n.crossOrigin,integrity:n.integrity,media:n.media,hrefLang:n.hrefLang,referrerPolicy:n.referrerPolicy},_f.set(e,n),o||If(a,e,n,s.state))),t&&r===null)throw Error(i(528,``));return s}if(t&&r!==null)throw Error(i(529,``));return null;case`script`:return t=n.async,n=n.src,typeof n==`string`&&t&&typeof t!=`function`&&typeof t!=`symbol`?(t=Lf(n),n=ht(a).hoistableScripts,r=n.get(t),r||(r={type:`script`,instance:null,count:0,state:null},n.set(t,r)),r):{type:`void`,instance:null,count:0,state:null};default:throw Error(i(444,e))}}function Nf(e){return`href="`+Ft(e)+`"`}function Pf(e){return`link[rel="stylesheet"][`+e+`]`}function Ff(e){return h({},e,{"data-precedence":e.precedence,precedence:null})}function If(e,t,n,r){e.querySelector(`link[rel="preload"][as="style"][`+t+`]`)?r.loading=1:(t=e.createElement(`link`),r.preload=t,t.addEventListener(`load`,function(){return r.loading|=1}),t.addEventListener(`error`,function(){return r.loading|=2}),Ld(t,`link`,n),gt(t),e.head.appendChild(t))}function Lf(e){return`[src="`+Ft(e)+`"]`}function Rf(e){return`script[async]`+e}function zf(e,t,n){if(t.count++,t.instance===null)switch(t.type){case`style`:var r=e.querySelector(`style[data-href~="`+Ft(n.href)+`"]`);if(r)return t.instance=r,gt(r),r;var a=h({},n,{"data-href":n.href,"data-precedence":n.precedence,href:null,precedence:null});return r=(e.ownerDocument||e).createElement(`style`),gt(r),Ld(r,`style`,a),Bf(r,n.precedence,e),t.instance=r;case`stylesheet`:a=Nf(n.href);var o=e.querySelector(Pf(a));if(o)return t.state.loading|=4,t.instance=o,gt(o),o;r=Ff(n),(a=_f.get(a))&&Vf(r,a),o=(e.ownerDocument||e).createElement(`link`),gt(o);var s=o;return s._p=new Promise(function(e,t){s.onload=e,s.onerror=t}),Ld(o,`link`,r),t.state.loading|=4,Bf(o,n.precedence,e),t.instance=o;case`script`:return o=Lf(n.src),(a=e.querySelector(Rf(o)))?(t.instance=a,gt(a),a):(r=n,(a=_f.get(o))&&(r=h({},n),Hf(r,a)),e=e.ownerDocument||e,a=e.createElement(`script`),gt(a),Ld(a,`link`,r),e.head.appendChild(a),t.instance=a);case`void`:return null;default:throw Error(i(443,t.type))}else t.type===`stylesheet`&&!(t.state.loading&4)&&(r=t.instance,t.state.loading|=4,Bf(r,n.precedence,e));return t.instance}function Bf(e,t,n){for(var r=n.querySelectorAll(`link[rel="stylesheet"][data-precedence],style[data-precedence]`),i=r.length?r[r.length-1]:null,a=i,o=0;o title`):null)}function Kf(e,t,n){if(n===1||t.itemProp!=null)return!1;switch(e){case`meta`:case`title`:return!0;case`style`:if(typeof t.precedence!=`string`||typeof t.href!=`string`||t.href===``)break;return!0;case`link`:if(typeof t.rel!=`string`||typeof t.href!=`string`||t.href===``||t.onLoad||t.onError)break;switch(t.rel){case`stylesheet`:return e=t.disabled,typeof t.precedence==`string`&&e==null;default:return!0}case`script`:if(t.async&&typeof t.async!=`function`&&typeof t.async!=`symbol`&&!t.onLoad&&!t.onError&&t.src&&typeof t.src==`string`)return!0}return!1}function qf(e){return!(e.type===`stylesheet`&&!(e.state.loading&3))}function Jf(e,t,n,r){if(n.type===`stylesheet`&&(typeof r.media!=`string`||!1!==matchMedia(r.media).matches)&&!(n.state.loading&4)){if(n.instance===null){var i=Nf(r.href),a=t.querySelector(Pf(i));if(a){t=a._p,typeof t==`object`&&t&&typeof t.then==`function`&&(e.count++,e=Zf.bind(e),t.then(e,e)),n.state.loading|=4,n.instance=a,gt(a);return}a=t.ownerDocument||t,r=Ff(r),(i=_f.get(i))&&Vf(r,i),a=a.createElement(`link`),gt(a);var o=a;o._p=new Promise(function(e,t){o.onload=e,o.onerror=t}),Ld(a,`link`,r),n.instance=a}e.stylesheets===null&&(e.stylesheets=new Map),e.stylesheets.set(n,t),(t=n.state.preload)&&!(n.state.loading&3)&&(e.count++,n=Zf.bind(e),t.addEventListener(`load`,n),t.addEventListener(`error`,n))}}var Yf=0;function Xf(e,t){return e.stylesheets&&e.count===0&&$f(e,e.stylesheets),0Yf?50:800)+t);return e.unsuspend=n,function(){e.unsuspend=null,clearTimeout(r),clearTimeout(i)}}:null}function Zf(){if(this.count--,this.count===0&&(this.imgCount===0||!this.waitingForImages)){if(this.stylesheets)$f(this,this.stylesheets);else if(this.unsuspend){var e=this.unsuspend;this.unsuspend=null,e()}}}var Qf=null;function $f(e,t){e.stylesheets=null,e.unsuspend!==null&&(e.count++,Qf=new Map,t.forEach(ep,e),Qf=null,Zf.call(e))}function ep(e,t){if(!(t.state.loading&4)){var n=Qf.get(e);if(n)var r=n.get(null);else{n=new Map,Qf.set(e,n);for(var i=e.querySelectorAll(`link[data-precedence],style[data-precedence]`),a=0;a{function n(){if(!(typeof __REACT_DEVTOOLS_GLOBAL_HOOK__>`u`||typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE!=`function`))try{__REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE(n)}catch(e){console.error(e)}}n(),t.exports=h()})),_=class{constructor(){this.listeners=new Set,this.subscribe=this.subscribe.bind(this)}subscribe(e){return this.listeners.add(e),this.onSubscribe(),()=>{this.listeners.delete(e),this.onUnsubscribe()}}hasListeners(){return this.listeners.size>0}onSubscribe(){}onUnsubscribe(){}},v=new class extends _{#e;#t;#n;constructor(){super(),this.#n=e=>{if(typeof window<`u`&&window.addEventListener){let t=()=>e();return window.addEventListener(`visibilitychange`,t,!1),()=>{window.removeEventListener(`visibilitychange`,t)}}}}onSubscribe(){this.#t||this.setEventListener(this.#n)}onUnsubscribe(){this.hasListeners()||(this.#t?.(),this.#t=void 0)}setEventListener(e){this.#n=e,this.#t?.(),this.#t=e(e=>{typeof e==`boolean`?this.setFocused(e):this.onFocus()})}setFocused(e){this.#e!==e&&(this.#e=e,this.onFocus())}onFocus(){let e=this.isFocused();this.listeners.forEach(t=>{t(e)})}isFocused(){return typeof this.#e==`boolean`?this.#e:globalThis.document?.visibilityState!==`hidden`}},y={setTimeout:(e,t)=>setTimeout(e,t),clearTimeout:e=>clearTimeout(e),setInterval:(e,t)=>setInterval(e,t),clearInterval:e=>clearInterval(e)},b=new class{#e=y;setTimeoutProvider(e){this.#e=e}setTimeout(e,t){return this.#e.setTimeout(e,t)}clearTimeout(e){this.#e.clearTimeout(e)}setInterval(e,t){return this.#e.setInterval(e,t)}clearInterval(e){this.#e.clearInterval(e)}};function x(e){setTimeout(e,0)}var S=typeof window>`u`||`Deno`in globalThis;function C(){}function w(e,t){return typeof e==`function`?e(t):e}function T(e){return typeof e==`number`&&e>=0&&e!==1/0}function E(e,t){return Math.max(e+(t||0)-Date.now(),0)}function D(e,t){return typeof e==`function`?e(t):e}function O(e,t){return typeof e==`function`?e(t):e}function k(e,t){let{type:n=`all`,exact:r,fetchStatus:i,predicate:a,queryKey:o,stale:s}=e;if(o){if(r){if(t.queryHash!==te(o,t.options))return!1}else if(!j(t.queryKey,o))return!1}if(n!==`all`){let e=t.isActive();if(n===`active`&&!e||n===`inactive`&&e)return!1}return!(typeof s==`boolean`&&t.isStale()!==s||i&&i!==t.state.fetchStatus||a&&!a(t))}function ee(e,t){let{exact:n,status:r,predicate:i,mutationKey:a}=e;if(a){if(!t.options.mutationKey)return!1;if(n){if(A(t.options.mutationKey)!==A(a))return!1}else if(!j(t.options.mutationKey,a))return!1}return!(r&&t.state.status!==r||i&&!i(t))}function te(e,t){return(t?.queryKeyHashFn||A)(e)}function A(e){return JSON.stringify(e,(e,t)=>P(t)?Object.keys(t).sort().reduce((e,n)=>(e[n]=t[n],e),{}):t)}function j(e,t){return e===t?!0:typeof e==typeof t&&e&&t&&typeof e==`object`&&typeof t==`object`?Object.keys(t).every(n=>j(e[n],t[n])):!1}var M=Object.prototype.hasOwnProperty;function ne(e,t,n=0){if(e===t)return e;if(n>500)return t;let r=N(e)&&N(t);if(!r&&!(P(e)&&P(t)))return t;let i=(r?e:Object.keys(e)).length,a=r?t:Object.keys(t),o=a.length,s=r?Array(o):{},c=0;for(let l=0;l{b.setTimeout(t,e)})}function ae(e,t,n){return typeof n.structuralSharing==`function`?n.structuralSharing(e,t):n.structuralSharing===!1?t:ne(e,t)}function F(e,t,n=0){let r=[...e,t];return n&&r.length>n?r.slice(1):r}function oe(e,t,n=0){let r=[t,...e];return n&&r.length>n?r.slice(0,-1):r}var I=Symbol();function se(e,t){return!e.queryFn&&t?.initialPromise?()=>t.initialPromise:!e.queryFn||e.queryFn===I?()=>Promise.reject(Error(`Missing queryFn: '${e.queryHash}'`)):e.queryFn}function L(e,t,n){let r=!1,i;return Object.defineProperty(e,"signal",{enumerable:!0,get:()=>(i??=t(),r?i:(r=!0,i.aborted?n():i.addEventListener(`abort`,n,{once:!0}),i))}),e}var ce=(()=>{let e=()=>S;return{isServer(){return e()},setIsServer(t){e=t}}})();function le(){let e,t,n=new Promise((n,r)=>{e=n,t=r});n.status=`pending`,n.catch(()=>{});function r(e){Object.assign(n,e),delete n.resolve,delete n.reject}return n.resolve=t=>{r({status:`fulfilled`,value:t}),e(t)},n.reject=e=>{r({status:`rejected`,reason:e}),t(e)},n}var ue=x;function de(){let e=[],t=0,n=e=>{e()},r=e=>{e()},i=ue,a=r=>{t?e.push(r):i(()=>{n(r)})},o=()=>{let t=e;e=[],t.length&&i(()=>{r(()=>{t.forEach(e=>{n(e)})})})};return{batch:e=>{let n;t++;try{n=e()}finally{t--,t||o()}return n},batchCalls:e=>(...t)=>{a(()=>{e(...t)})},schedule:a,setNotifyFunction:e=>{n=e},setBatchNotifyFunction:e=>{r=e},setScheduler:e=>{i=e}}}var R=de(),fe=new class extends _{#e=!0;#t;#n;constructor(){super(),this.#n=e=>{if(typeof window<`u`&&window.addEventListener){let t=()=>e(!0),n=()=>e(!1);return window.addEventListener(`online`,t,!1),window.addEventListener(`offline`,n,!1),()=>{window.removeEventListener(`online`,t),window.removeEventListener(`offline`,n)}}}}onSubscribe(){this.#t||this.setEventListener(this.#n)}onUnsubscribe(){this.hasListeners()||(this.#t?.(),this.#t=void 0)}setEventListener(e){this.#n=e,this.#t?.(),this.#t=e(this.setOnline.bind(this))}setOnline(e){this.#e!==e&&(this.#e=e,this.listeners.forEach(t=>{t(e)}))}isOnline(){return this.#e}};function pe(e){return Math.min(1e3*2**e,3e4)}function me(e){return(e??`online`)!==`online`||fe.isOnline()}var he=class extends Error{constructor(e){super(`CancelledError`),this.revert=e?.revert,this.silent=e?.silent}};function ge(e){let t=!1,n=0,r,i=le(),a=()=>i.status!==`pending`,o=t=>{if(!a()){let n=new he(t);f(n),e.onCancel?.(n)}},s=()=>{t=!0},c=()=>{t=!1},l=()=>v.isFocused()&&(e.networkMode===`always`||fe.isOnline())&&e.canRun(),u=()=>me(e.networkMode)&&e.canRun(),d=e=>{a()||(r?.(),i.resolve(e))},f=e=>{a()||(r?.(),i.reject(e))},p=()=>new Promise(t=>{r=e=>{(a()||l())&&t(e)},e.onPause?.()}).then(()=>{r=void 0,a()||e.onContinue?.()}),m=()=>{if(a())return;let r,i=n===0?e.initialPromise:void 0;try{r=i??e.fn()}catch(e){r=Promise.reject(e)}Promise.resolve(r).then(d).catch(r=>{if(a())return;let i=e.retry??(ce.isServer()?0:3),o=e.retryDelay??pe,s=typeof o==`function`?o(n,r):o,c=i===!0||typeof i==`number`&&nl()?void 0:p()).then(()=>{t?f(r):m()})})};return{promise:i,status:()=>i.status,cancel:o,continue:()=>(r?.(),i),cancelRetry:s,continueRetry:c,canStart:u,start:()=>(u()?m():p().then(m),i)}}var _e=class{#e;destroy(){this.clearGcTimeout()}scheduleGc(){this.clearGcTimeout(),T(this.gcTime)&&(this.#e=b.setTimeout(()=>{this.optionalRemove()},this.gcTime))}updateGcTime(e){this.gcTime=Math.max(this.gcTime||0,e??(ce.isServer()?1/0:3e5))}clearGcTimeout(){this.#e!==void 0&&(b.clearTimeout(this.#e),this.#e=void 0)}};function ve(e){return{onFetch:(t,n)=>{let r=t.options,i=t.fetchOptions?.meta?.fetchMore?.direction,a=t.state.data?.pages||[],o=t.state.data?.pageParams||[],s={pages:[],pageParams:[]},c=0,l=async()=>{let n=!1,l=e=>{L(e,()=>t.signal,()=>n=!0)},u=se(t.options,t.fetchOptions),d=async(e,r,i)=>{if(n)return Promise.reject(t.signal.reason);if(r==null&&e.pages.length)return Promise.resolve(e);let a=(()=>{let e={client:t.client,queryKey:t.queryKey,pageParam:r,direction:i?`backward`:`forward`,meta:t.options.meta};return l(e),e})(),o=await u(a),{maxPages:s}=t.options,c=i?oe:F;return{pages:c(e.pages,o,s),pageParams:c(e.pageParams,r,s)}};if(i&&a.length){let e=i===`backward`,t=e?be:ye,n={pages:a,pageParams:o};s=await d(n,t(r,n),e)}else{let t=e??a.length;do{let e=c===0?o[0]??r.initialPageParam:ye(r,s);if(c>0&&e==null)break;s=await d(s,e),c++}while(ct.options.persister?.(l,{client:t.client,queryKey:t.queryKey,meta:t.options.meta,signal:t.signal},n):l}}}function ye(e,{pages:t,pageParams:n}){let r=t.length-1;return t.length>0?e.getNextPageParam(t[r],t,n[r],n):void 0}function be(e,{pages:t,pageParams:n}){return t.length>0?e.getPreviousPageParam?.(t[0],t,n[0],n):void 0}var xe=class extends _e{#e;#t;#n;#r;#i;#a;#o;#s;constructor(e){super(),this.#s=!1,this.#o=e.defaultOptions,this.setOptions(e.options),this.observers=[],this.#i=e.client,this.#r=this.#i.getQueryCache(),this.queryKey=e.queryKey,this.queryHash=e.queryHash,this.#t=we(this.options),this.state=e.state??this.#t,this.scheduleGc()}get meta(){return this.options.meta}get queryType(){return this.#e}get promise(){return this.#a?.promise}setOptions(e){if(this.options={...this.#o,...e},e?._type&&(this.#e=e._type),this.updateGcTime(this.options.gcTime),this.state&&this.state.data===void 0){let e=we(this.options);e.data!==void 0&&(this.setState(Ce(e.data,e.dataUpdatedAt)),this.#t=e)}}optionalRemove(){!this.observers.length&&this.state.fetchStatus===`idle`&&this.#r.remove(this)}setData(e,t){let n=ae(this.state.data,e,this.options);return this.#l({data:n,type:`success`,dataUpdatedAt:t?.updatedAt,manual:t?.manual}),n}setState(e){this.#l({type:`setState`,state:e})}cancel(e){let t=this.#a?.promise;return this.#a?.cancel(e),t?t.then(C).catch(C):Promise.resolve()}destroy(){super.destroy(),this.cancel({silent:!0})}get resetState(){return this.#t}reset(){this.destroy(),this.setState(this.resetState)}isActive(){return this.observers.some(e=>O(e.options.enabled,this)!==!1)}isDisabled(){return this.getObserversCount()>0?!this.isActive():this.options.queryFn===I||!this.isFetched()}isFetched(){return this.state.dataUpdateCount+this.state.errorUpdateCount>0}isStatic(){return this.getObserversCount()>0&&this.observers.some(e=>D(e.options.staleTime,this)===`static`)}isStale(){return this.getObserversCount()>0?this.observers.some(e=>e.getCurrentResult().isStale):this.state.data===void 0||this.state.isInvalidated}isStaleByTime(e=0){return this.state.data===void 0?!0:e===`static`?!1:this.state.isInvalidated?!0:!E(this.state.dataUpdatedAt,e)}onFocus(){this.observers.find(e=>e.shouldFetchOnWindowFocus())?.refetch({cancelRefetch:!1}),this.#a?.continue()}onOnline(){this.observers.find(e=>e.shouldFetchOnReconnect())?.refetch({cancelRefetch:!1}),this.#a?.continue()}addObserver(e){this.observers.includes(e)||(this.observers.push(e),this.clearGcTimeout(),this.#r.notify({type:`observerAdded`,query:this,observer:e}))}removeObserver(e){this.observers.includes(e)&&(this.observers=this.observers.filter(t=>t!==e),this.observers.length||(this.#a&&(this.#s||this.#c()?this.#a.cancel({revert:!0}):this.#a.cancelRetry()),this.scheduleGc()),this.#r.notify({type:`observerRemoved`,query:this,observer:e}))}getObserversCount(){return this.observers.length}#c(){return this.state.fetchStatus===`paused`&&this.state.status===`pending`}invalidate(){this.state.isInvalidated||this.#l({type:`invalidate`})}async fetch(e,t){if(this.state.fetchStatus!==`idle`&&this.#a?.status()!==`rejected`){if(this.state.data!==void 0&&t?.cancelRefetch)this.cancel({silent:!0});else if(this.#a)return this.#a.continueRetry(),this.#a.promise}if(e&&this.setOptions(e),!this.options.queryFn){let e=this.observers.find(e=>e.options.queryFn);e&&this.setOptions(e.options)}let n=new AbortController,r=e=>{Object.defineProperty(e,"signal",{enumerable:!0,get:()=>(this.#s=!0,n.signal)})},i=()=>{let e=se(this.options,t),n=(()=>{let e={client:this.#i,queryKey:this.queryKey,meta:this.meta};return r(e),e})();return this.#s=!1,this.options.persister?this.options.persister(e,n,this):e(n)},a=(()=>{let e={fetchOptions:t,options:this.options,queryKey:this.queryKey,client:this.#i,state:this.state,fetchFn:i};return r(e),e})();(this.#e===`infinite`?ve(this.options.pages):this.options.behavior)?.onFetch(a,this),this.#n=this.state,(this.state.fetchStatus===`idle`||this.state.fetchMeta!==a.fetchOptions?.meta)&&this.#l({type:`fetch`,meta:a.fetchOptions?.meta}),this.#a=ge({initialPromise:t?.initialPromise,fn:a.fetchFn,onCancel:e=>{e instanceof he&&e.revert&&this.setState({...this.#n,fetchStatus:`idle`}),n.abort()},onFail:(e,t)=>{this.#l({type:`failed`,failureCount:e,error:t})},onPause:()=>{this.#l({type:`pause`})},onContinue:()=>{this.#l({type:`continue`})},retry:a.options.retry,retryDelay:a.options.retryDelay,networkMode:a.options.networkMode,canRun:()=>!0});try{let e=await this.#a.start();if(e===void 0)throw Error(`${this.queryHash} data is undefined`);return this.setData(e),this.#r.config.onSuccess?.(e,this),this.#r.config.onSettled?.(e,this.state.error,this),e}catch(e){if(e instanceof he){if(e.silent)return this.#a.promise;if(e.revert){if(this.state.data===void 0)throw e;return this.state.data}}throw this.#l({type:`error`,error:e}),this.#r.config.onError?.(e,this),this.#r.config.onSettled?.(this.state.data,e,this),e}finally{this.scheduleGc()}}#l(e){let t=t=>{switch(e.type){case`failed`:return{...t,fetchFailureCount:e.failureCount,fetchFailureReason:e.error};case`pause`:return{...t,fetchStatus:`paused`};case`continue`:return{...t,fetchStatus:`fetching`};case`fetch`:return{...t,...Se(t.data,this.options),fetchMeta:e.meta??null};case`success`:let n={...t,...Ce(e.data,e.dataUpdatedAt),dataUpdateCount:t.dataUpdateCount+1,...!e.manual&&{fetchStatus:`idle`,fetchFailureCount:0,fetchFailureReason:null}};return this.#n=e.manual?n:void 0,n;case`error`:let r=e.error;return{...t,error:r,errorUpdateCount:t.errorUpdateCount+1,errorUpdatedAt:Date.now(),fetchFailureCount:t.fetchFailureCount+1,fetchFailureReason:r,fetchStatus:`idle`,status:`error`,isInvalidated:!0};case`invalidate`:return{...t,isInvalidated:!0};case`setState`:return{...t,...e.state}}};this.state=t(this.state),R.batch(()=>{this.observers.forEach(e=>{e.onQueryUpdate()}),this.#r.notify({query:this,type:`updated`,action:e})})}};function Se(e,t){return{fetchFailureCount:0,fetchFailureReason:null,fetchStatus:me(t.networkMode)?`fetching`:`paused`,...e===void 0&&{error:null,status:`pending`}}}function Ce(e,t){return{data:e,dataUpdatedAt:t??Date.now(),error:null,isInvalidated:!1,status:`success`}}function we(e){let t=typeof e.initialData==`function`?e.initialData():e.initialData,n=t!==void 0,r=n?typeof e.initialDataUpdatedAt==`function`?e.initialDataUpdatedAt():e.initialDataUpdatedAt:0;return{data:t,dataUpdateCount:0,dataUpdatedAt:n?r??Date.now():0,error:null,errorUpdateCount:0,errorUpdatedAt:0,fetchFailureCount:0,fetchFailureReason:null,fetchMeta:null,isInvalidated:!1,status:n?`success`:`pending`,fetchStatus:`idle`}}var Te=class extends _e{#e;#t;#n;#r;constructor(e){super(),this.#e=e.client,this.mutationId=e.mutationId,this.#n=e.mutationCache,this.#t=[],this.state=e.state||Ee(),this.setOptions(e.options),this.scheduleGc()}setOptions(e){this.options=e,this.updateGcTime(this.options.gcTime)}get meta(){return this.options.meta}addObserver(e){this.#t.includes(e)||(this.#t.push(e),this.clearGcTimeout(),this.#n.notify({type:`observerAdded`,mutation:this,observer:e}))}removeObserver(e){this.#t=this.#t.filter(t=>t!==e),this.scheduleGc(),this.#n.notify({type:`observerRemoved`,mutation:this,observer:e})}optionalRemove(){this.#t.length||(this.state.status===`pending`?this.scheduleGc():this.#n.remove(this))}continue(){return this.#r?.continue()??this.execute(this.state.variables)}async execute(e){let t=()=>{this.#i({type:`continue`})},n={client:this.#e,meta:this.options.meta,mutationKey:this.options.mutationKey};this.#r=ge({fn:()=>this.options.mutationFn?this.options.mutationFn(e,n):Promise.reject(Error(`No mutationFn found`)),onFail:(e,t)=>{this.#i({type:`failed`,failureCount:e,error:t})},onPause:()=>{this.#i({type:`pause`})},onContinue:t,retry:this.options.retry??0,retryDelay:this.options.retryDelay,networkMode:this.options.networkMode,canRun:()=>this.#n.canRun(this)});let r=this.state.status===`pending`,i=!this.#r.canStart();try{if(r)t();else{this.#i({type:`pending`,variables:e,isPaused:i}),this.#n.config.onMutate&&await this.#n.config.onMutate(e,this,n);let t=await this.options.onMutate?.(e,n);t!==this.state.context&&this.#i({type:`pending`,context:t,variables:e,isPaused:i})}let a=await this.#r.start();return await this.#n.config.onSuccess?.(a,e,this.state.context,this,n),await this.options.onSuccess?.(a,e,this.state.context,n),await this.#n.config.onSettled?.(a,null,this.state.variables,this.state.context,this,n),await this.options.onSettled?.(a,null,e,this.state.context,n),this.#i({type:`success`,data:a}),a}catch(t){try{await this.#n.config.onError?.(t,e,this.state.context,this,n)}catch(e){Promise.reject(e)}try{await this.options.onError?.(t,e,this.state.context,n)}catch(e){Promise.reject(e)}try{await this.#n.config.onSettled?.(void 0,t,this.state.variables,this.state.context,this,n)}catch(e){Promise.reject(e)}try{await this.options.onSettled?.(void 0,t,e,this.state.context,n)}catch(e){Promise.reject(e)}throw this.#i({type:`error`,error:t}),t}finally{this.#n.runNext(this)}}#i(e){let t=t=>{switch(e.type){case`failed`:return{...t,failureCount:e.failureCount,failureReason:e.error};case`pause`:return{...t,isPaused:!0};case`continue`:return{...t,isPaused:!1};case`pending`:return{...t,context:e.context,data:void 0,failureCount:0,failureReason:null,error:null,isPaused:e.isPaused,status:`pending`,variables:e.variables,submittedAt:Date.now()};case`success`:return{...t,data:e.data,failureCount:0,failureReason:null,error:null,status:`success`,isPaused:!1};case`error`:return{...t,data:void 0,error:e.error,failureCount:t.failureCount+1,failureReason:e.error,isPaused:!1,status:`error`}}};this.state=t(this.state),R.batch(()=>{this.#t.forEach(t=>{t.onMutationUpdate(e)}),this.#n.notify({mutation:this,type:`updated`,action:e})})}};function Ee(){return{context:void 0,data:void 0,error:null,failureCount:0,failureReason:null,isPaused:!1,status:`idle`,variables:void 0,submittedAt:0}}var De=class extends _{constructor(e={}){super(),this.config=e,this.#e=new Set,this.#t=new Map,this.#n=0}#e;#t;#n;build(e,t,n){let r=new Te({client:e,mutationCache:this,mutationId:++this.#n,options:e.defaultMutationOptions(t),state:n});return this.add(r),r}add(e){this.#e.add(e);let t=z(e);if(typeof t==`string`){let n=this.#t.get(t);n?n.push(e):this.#t.set(t,[e])}this.notify({type:`added`,mutation:e})}remove(e){if(this.#e.delete(e)){let t=z(e);if(typeof t==`string`){let n=this.#t.get(t);if(n){if(n.length>1){let t=n.indexOf(e);t!==-1&&n.splice(t,1)}else n[0]===e&&this.#t.delete(t)}}}this.notify({type:`removed`,mutation:e})}canRun(e){let t=z(e);if(typeof t==`string`){let n=this.#t.get(t)?.find(e=>e.state.status===`pending`);return!n||n===e}return!0}runNext(e){let t=z(e);return typeof t==`string`?(this.#t.get(t)?.find(t=>t!==e&&t.state.isPaused))?.continue()??Promise.resolve():Promise.resolve()}clear(){R.batch(()=>{this.#e.forEach(e=>{this.notify({type:`removed`,mutation:e})}),this.#e.clear(),this.#t.clear()})}getAll(){return Array.from(this.#e)}find(e){let t={exact:!0,...e};return this.getAll().find(e=>ee(t,e))}findAll(e={}){return this.getAll().filter(t=>ee(e,t))}notify(e){R.batch(()=>{this.listeners.forEach(t=>{t(e)})})}resumePausedMutations(){let e=this.getAll().filter(e=>e.state.isPaused);return R.batch(()=>Promise.all(e.map(e=>e.continue().catch(C))))}};function z(e){return e.options.scope?.id}var Oe=class extends _{constructor(e={}){super(),this.config=e,this.#e=new Map}#e;build(e,t,n){let r=t.queryKey,i=t.queryHash??te(r,t),a=this.get(i);return a||(a=new xe({client:e,queryKey:r,queryHash:i,options:e.defaultQueryOptions(t),state:n,defaultOptions:e.getQueryDefaults(r)}),this.add(a)),a}add(e){this.#e.has(e.queryHash)||(this.#e.set(e.queryHash,e),this.notify({type:`added`,query:e}))}remove(e){let t=this.#e.get(e.queryHash);t&&(e.destroy(),t===e&&this.#e.delete(e.queryHash),this.notify({type:`removed`,query:e}))}clear(){R.batch(()=>{this.getAll().forEach(e=>{this.remove(e)})})}get(e){return this.#e.get(e)}getAll(){return[...this.#e.values()]}find(e){let t={exact:!0,...e};return this.getAll().find(e=>k(t,e))}findAll(e={}){let t=this.getAll();return Object.keys(e).length>0?t.filter(t=>k(e,t)):t}notify(e){R.batch(()=>{this.listeners.forEach(t=>{t(e)})})}onFocus(){R.batch(()=>{this.getAll().forEach(e=>{e.onFocus()})})}onOnline(){R.batch(()=>{this.getAll().forEach(e=>{e.onOnline()})})}},ke=class{#e;#t;#n;#r;#i;#a;#o;#s;constructor(e={}){this.#e=e.queryCache||new Oe,this.#t=e.mutationCache||new De,this.#n=e.defaultOptions||{},this.#r=new Map,this.#i=new Map,this.#a=0}mount(){this.#a++,this.#a===1&&(this.#o=v.subscribe(async e=>{e&&(await this.resumePausedMutations(),this.#e.onFocus())}),this.#s=fe.subscribe(async e=>{e&&(await this.resumePausedMutations(),this.#e.onOnline())}))}unmount(){this.#a--,this.#a===0&&(this.#o?.(),this.#o=void 0,this.#s?.(),this.#s=void 0)}isFetching(e){return this.#e.findAll({...e,fetchStatus:`fetching`}).length}isMutating(e){return this.#t.findAll({...e,status:`pending`}).length}getQueryData(e){let t=this.defaultQueryOptions({queryKey:e});return this.#e.get(t.queryHash)?.state.data}ensureQueryData(e){let t=this.defaultQueryOptions(e),n=this.#e.build(this,t),r=n.state.data;return r===void 0?this.fetchQuery(e):(e.revalidateIfStale&&n.isStaleByTime(D(t.staleTime,n))&&this.prefetchQuery(t),Promise.resolve(r))}getQueriesData(e){return this.#e.findAll(e).map(({queryKey:e,state:t})=>[e,t.data])}setQueryData(e,t,n){let r=this.defaultQueryOptions({queryKey:e}),i=this.#e.get(r.queryHash)?.state.data,a=w(t,i);if(a!==void 0)return this.#e.build(this,r).setData(a,{...n,manual:!0})}setQueriesData(e,t,n){return R.batch(()=>this.#e.findAll(e).map(({queryKey:e})=>[e,this.setQueryData(e,t,n)]))}getQueryState(e){let t=this.defaultQueryOptions({queryKey:e});return this.#e.get(t.queryHash)?.state}removeQueries(e){let t=this.#e;R.batch(()=>{t.findAll(e).forEach(e=>{t.remove(e)})})}resetQueries(e,t){let n=this.#e;return R.batch(()=>(n.findAll(e).forEach(e=>{e.reset()}),this.refetchQueries({type:`active`,...e},t)))}cancelQueries(e,t={}){let n={revert:!0,...t},r=R.batch(()=>this.#e.findAll(e).map(e=>e.cancel(n)));return Promise.all(r).then(C).catch(C)}invalidateQueries(e,t={}){return R.batch(()=>(this.#e.findAll(e).forEach(e=>{e.invalidate()}),e?.refetchType===`none`?Promise.resolve():this.refetchQueries({...e,type:e?.refetchType??e?.type??`active`},t)))}refetchQueries(e,t={}){let n={...t,cancelRefetch:t.cancelRefetch??!0},r=R.batch(()=>this.#e.findAll(e).filter(e=>!e.isDisabled()&&!e.isStatic()).map(e=>{let t=e.fetch(void 0,n);return n.throwOnError||(t=t.catch(C)),e.state.fetchStatus===`paused`?Promise.resolve():t}));return Promise.all(r).then(C)}fetchQuery(e){let t=this.defaultQueryOptions(e);t.retry===void 0&&(t.retry=!1);let n=this.#e.build(this,t);return n.isStaleByTime(D(t.staleTime,n))?n.fetch(t):Promise.resolve(n.state.data)}prefetchQuery(e){return this.fetchQuery(e).then(C).catch(C)}fetchInfiniteQuery(e){return e._type=`infinite`,this.fetchQuery(e)}prefetchInfiniteQuery(e){return this.fetchInfiniteQuery(e).then(C).catch(C)}ensureInfiniteQueryData(e){return e._type=`infinite`,this.ensureQueryData(e)}resumePausedMutations(){return fe.isOnline()?this.#t.resumePausedMutations():Promise.resolve()}getQueryCache(){return this.#e}getMutationCache(){return this.#t}getDefaultOptions(){return this.#n}setDefaultOptions(e){this.#n=e}setQueryDefaults(e,t){this.#r.set(A(e),{queryKey:e,defaultOptions:t})}getQueryDefaults(e){let t=[...this.#r.values()],n={};return t.forEach(t=>{j(e,t.queryKey)&&Object.assign(n,t.defaultOptions)}),n}setMutationDefaults(e,t){this.#i.set(A(e),{mutationKey:e,defaultOptions:t})}getMutationDefaults(e){let t=[...this.#i.values()],n={};return t.forEach(t=>{j(e,t.mutationKey)&&Object.assign(n,t.defaultOptions)}),n}defaultQueryOptions(e){if(e._defaulted)return e;let t={...this.#n.queries,...this.getQueryDefaults(e.queryKey),...e,_defaulted:!0};return t.queryHash||=te(t.queryKey,t),t.refetchOnReconnect===void 0&&(t.refetchOnReconnect=t.networkMode!==`always`),t.throwOnError===void 0&&(t.throwOnError=!!t.suspense),!t.networkMode&&t.persister&&(t.networkMode=`offlineFirst`),t.queryFn===I&&(t.enabled=!1),t}defaultMutationOptions(e){return e?._defaulted?e:{...this.#n.mutations,...e?.mutationKey&&this.getMutationDefaults(e.mutationKey),...e,_defaulted:!0}}clear(){this.#e.clear(),this.#t.clear()}},Ae=o((e=>{var t=Symbol.for(`react.transitional.element`),n=Symbol.for(`react.fragment`);function r(e,n,r){var i=null;if(r!==void 0&&(i=``+r),n.key!==void 0&&(i=``+n.key),`key`in n)for(var a in r={},n)a!==`key`&&(r[a]=n[a]);else r=n;return n=r.ref,{$$typeof:t,type:e,key:i,ref:n===void 0?null:n,props:r}}e.Fragment=n,e.jsx=r,e.jsxs=r})),je=o(((e,t)=>{t.exports=Ae()})),B=c(f(),1),V=je(),Me=B.createContext(void 0),Ne=({client:e,children:t})=>(B.useEffect(()=>(e.mount(),()=>{e.unmount()}),[e]),(0,V.jsx)(Me.Provider,{value:e,children:t})),Pe=typeof window<`u`?B.useLayoutEffect:B.useEffect;function Fe(e){let t=B.useRef({value:e,prev:null}),n=t.current.value;return e!==n&&(t.current={value:e,prev:n}),t.current.prev}function Ie(e,t,n={},r={}){B.useEffect(()=>{if(!e.current||r.disabled||typeof IntersectionObserver!=`function`)return;let i=new IntersectionObserver(([e])=>{t(e)},n);return i.observe(e.current),()=>{i.disconnect()}},[t,n,r.disabled,e])}function Le(e){let t=B.useRef(null);return B.useImperativeHandle(e,()=>t.current,[]),t}function Re(e){return e[e.length-1]}function ze(e){return typeof e==`function`}function Be(e,t){return ze(e)?e(t):e}var Ve=Object.prototype.hasOwnProperty,He=Object.prototype.propertyIsEnumerable;function Ue(e){for(let t in e)if(Ve.call(e,t))return!0;return!1}var We=()=>Object.create(null),Ge=(e,t)=>Ke(e,t,We);function Ke(e,t,n=()=>({}),r=0){if(e===t)return e;if(r>500)return t;let i=t,a=Xe(e)&&Xe(i);if(!a&&!(Je(e)&&Je(i)))return i;let o=a?e:qe(e);if(!o)return i;let s=a?i:qe(i);if(!s)return i;let c=o.length,l=s.length,u=a?Array(l):n(),d=0;for(let t=0;ti||!Ze(e[o],t[o],n)))return!1;return i===a}return!1}function Qe(e){let t,n,r=new Promise((e,r)=>{t=e,n=r});return r.status=`pending`,r.resolve=n=>{r.status=`resolved`,r.value=n,t(n),e?.(n)},r.reject=e=>{r.status=`rejected`,n(e)},r}function $e(e){return!!(e&&typeof e==`object`&&typeof e.then==`function`)}function et(e){return e.replace(/[\x00-\x1f\x7f]/g,``)}function tt(e){let t;try{t=decodeURI(e)}catch{t=e.replaceAll(/%[0-9A-F]{2}/gi,e=>{try{return decodeURI(e)}catch{return e}})}return et(t)}var nt=[`http:`,`https:`,`mailto:`,`tel:`];function rt(e,t){if(!e)return!1;try{let n=new URL(e);return!t.has(n.protocol)}catch{return!1}}function it(e){if(!e||!/[%\\\x00-\x1f\x7f]/.test(e)&&!e.startsWith(`//`))return{path:e,handledProtocolRelativeURL:!1};let t=/%25|%5C/gi,n=0,r=``,i;for(;(i=t.exec(e))!==null;)r+=tt(e.slice(n,i.index))+i[0],n=t.lastIndex;r+=tt(n?e.slice(n):e);let a=!1;return r.startsWith(`//`)&&(a=!0,r=`/`+r.replace(/^\/+/,``)),{path:r,handledProtocolRelativeURL:a}}function at(e){return/\s|[^\u0000-\u007F]/.test(e)?e.replace(/\s|[^\u0000-\u007F]/gu,encodeURIComponent):e}function ot(e,t){if(e===t)return!0;if(e.length!==t.length)return!1;for(let n=0;n{e.next&&(e.prev?(e.prev.next=e.next,e.next.prev=e.prev,e.next=void 0,r&&(r.next=e,e.prev=r)):(e.next.prev=void 0,n=e.next,e.next=void 0,r&&(e.prev=r,r.next=e)),r=e)};return{get(e){let n=t.get(e);if(n)return i(n),n.value},set(a,o){if(t.size>=e&&n){let e=n;t.delete(e.key),e.next&&(n=e.next,e.next.prev=void 0),e===r&&(r=void 0)}let s=t.get(a);if(s)s.value=o,i(s);else{let e={key:a,value:o,prev:r};r&&(r.next=e),r=e,n||=e,t.set(a,e)}},clear(){t.clear(),n=void 0,r=void 0}}}var lt=4,ut=5;function dt(e){let t=e.indexOf(`{`);if(t===-1)return null;let n=e.indexOf(`}`,t);return n===-1||t+1>=e.length?null:[t,n]}function ft(e,t,n=new Uint16Array(6)){let r=e.indexOf(`/`,t),i=r===-1?e.length:r,a=e.substring(t,i);if(!a||!a.includes(`$`))return n[0]=0,n[1]=t,n[2]=t,n[3]=i,n[4]=i,n[5]=i,n;if(a===`$`){let r=e.length;return n[0]=2,n[1]=t,n[2]=t,n[3]=r,n[4]=r,n[5]=r,n}if(a.charCodeAt(0)===36)return n[0]=1,n[1]=t,n[2]=t+1,n[3]=i,n[4]=i,n[5]=i,n;let o=dt(a);if(o){let[r,s]=o,c=a.charCodeAt(r+1);if(c===45){if(r+2!e.parse&&e.caseSensitive===f&&e.prefix===p&&e.suffix===m);if(h)o=h;else{let e=_t(1,n.fullPath??n.from,f,p,m);o=e,e.depth=a,e.parent=i,i.dynamic??=[],i.dynamic.push(e)}break}case 3:{let t=r.substring(u,e[1]),s=r.substring(e[4],d),f=c&&!!(t||s),p=t?f?t:t.toLowerCase():void 0,m=s?f?s:s.toLowerCase():void 0,h=!l&&i.optional?.find(e=>!e.parse&&e.caseSensitive===f&&e.prefix===p&&e.suffix===m);if(h)o=h;else{let e=_t(3,n.fullPath??n.from,f,p,m);o=e,e.parent=i,e.depth=a,i.optional??=[],i.optional.push(e)}break}case 2:{let t=r.substring(u,e[1]),s=r.substring(e[4],d),l=c&&!!(t||s),f=t?l?t:t.toLowerCase():void 0,p=s?l?s:s.toLowerCase():void 0,m=_t(2,n.fullPath??n.from,l,f,p);o=m,m.parent=i,m.depth=a,i.wildcard??=[],i.wildcard.push(m)}}i=o}if(l&&n.children&&!n.isRoot&&n.id&&n.id.charCodeAt(n.id.lastIndexOf(`/`)+1)===95){let e=gt(n.fullPath??n.from);e.kind=ut,e.parent=i,a++,e.depth=a,i.pathless??=[],i.pathless.push(e),i=e}let u=(n.path||!n.children)&&!n.isRoot;if(u&&r.endsWith(`/`)){let e=gt(n.fullPath??n.from);e.kind=lt,e.parent=i,a++,e.depth=a,i.index=e,i=e}i.parse=l??null,i.priority=n.options?.params?.priority??0,u&&!i.route&&(i.route=n,i.fullPath=n.fullPath??n.from)}if(n.children)for(let r of n.children)pt(e,t,r,s,i,a,o)}function mt(e,t){if(e.parse&&!t.parse)return-1;if(!e.parse&&t.parse)return 1;if(e.parse&&t.parse&&(e.priority||t.priority))return t.priority-e.priority;if(e.prefix&&t.prefix&&e.prefix!==t.prefix){if(e.prefix.startsWith(t.prefix))return-1;if(t.prefix.startsWith(e.prefix))return 1}if(e.suffix&&t.suffix&&e.suffix!==t.suffix){if(e.suffix.endsWith(t.suffix))return-1;if(t.suffix.endsWith(e.suffix))return 1}return e.prefix&&!t.prefix?-1:!e.prefix&&t.prefix?1:e.suffix&&!t.suffix?-1:!e.suffix&&t.suffix?1:e.caseSensitive&&!t.caseSensitive?-1:!e.caseSensitive&&t.caseSensitive?1:0}function ht(e){if(e.pathless)for(let t of e.pathless)ht(t);if(e.static)for(let t of e.static.values())ht(t);if(e.staticInsensitive)for(let t of e.staticInsensitive.values())ht(t);if(e.dynamic?.length){e.dynamic.sort(mt);for(let t of e.dynamic)ht(t)}if(e.optional?.length){e.optional.sort(mt);for(let t of e.optional)ht(t)}if(e.wildcard?.length){e.wildcard.sort(mt);for(let t of e.wildcard)ht(t)}}function gt(e){return{kind:0,depth:0,pathless:null,index:null,static:null,staticInsensitive:null,dynamic:null,optional:null,wildcard:null,route:null,fullPath:e,parent:null,parse:null,priority:0}}function _t(e,t,n,r,i){return{kind:e,depth:0,pathless:null,index:null,static:null,staticInsensitive:null,dynamic:null,optional:null,wildcard:null,route:null,fullPath:t,parent:null,parse:null,priority:0,caseSensitive:n,prefix:r,suffix:i}}function vt(e,t){let n=gt(`/`),r=new Uint16Array(6);for(let t of e)pt(!1,r,t,1,n,0);ht(n),t.masksTree=n,t.flatCache=ct(1e3)}function yt(e,t){e||=`/`;let n=t.flatCache.get(e);if(n)return n;let r=wt(e,t.masksTree);return t.flatCache.set(e,r),r}function bt(e,t,n,r,i){e||=`/`,r||=`/`;let a=t?`case\0${e}`:e,o=i.singleCache.get(a);return o||(o=gt(`/`),pt(t,new Uint16Array(6),{from:e},1,o,0),i.singleCache.set(a,o)),wt(r,o,n)}function xt(e,t,n=!1){let r=n?e:`nofuzz\0${e}`,i=t.matchCache.get(r);if(i!==void 0)return i;e||=`/`;let a;try{a=wt(e,t.segmentTree,n)}catch(e){if(e instanceof URIError)a=null;else throw e}return a&&(a.branch=Et(a.route)),t.matchCache.set(r,a),a}function St(e){return e===`/`?e:e.replace(/\/{1,}$/,``)}function Ct(e,t=!1,n){let r=gt(e.fullPath),i=new Uint16Array(6),a={},o={},s=0;return pt(t,i,e,1,r,0,e=>{if(n?.(e,s),e.id in a&&st(),a[e.id]=e,s!==0&&e.path){let t=St(e.fullPath);(!o[t]||e.fullPath.endsWith(`/`))&&(o[t]=e)}s++}),ht(r),{processedTree:{segmentTree:r,singleCache:ct(1e3),matchCache:ct(1e3),flatCache:null,masksTree:null},routesById:a,routesByPath:o}}function wt(e,t,n=!1){let r=e.split(`/`),i=Ot(e,r,t,n);if(!i)return null;let[a]=Tt(e,r,i);return{route:i.node.route,rawParams:a}}function Tt(e,t,n){let r=Dt(n.node),i=null,a=Object.create(null),o=n.extract?.part??0,s=n.extract?.node??0,c=n.extract?.path??0,l=n.extract?.segment??0;for(;s=0;e--){let n=i.wildcard[e],{prefix:r,suffix:a}=n;if(!(r&&(v||!(n.caseSensitive?y:b??=y.toLowerCase()).startsWith(r)))){if(a){if(v)continue;let e=t.slice(u).join(`/`).slice(-a.length);if((n.caseSensitive?e:e.toLowerCase())!==a)continue}s.push({node:n,index:o,skipped:d,depth:f+1,statics:p,dynamics:m,optionals:h,extract:g,rawParams:_})}}if(i.optional){let e=d|1<=0;n--){let r=i.optional[n];s.push({node:r,index:u,skipped:e,depth:t,statics:p,dynamics:m,optionals:h,extract:g,rawParams:_})}if(!v)for(let e=i.optional.length-1;e>=0;e--){let n=i.optional[e],{prefix:r,suffix:a}=n;if(r||a){let e=n.caseSensitive?y:b??=y.toLowerCase();if(r&&!e.startsWith(r)||a&&!e.endsWith(a))continue}s.push({node:n,index:u+1,skipped:d,depth:t,statics:p,dynamics:m,optionals:h+kt(o,u),extract:g,rawParams:_})}}if(!v&&i.dynamic&&y)for(let e=i.dynamic.length-1;e>=0;e--){let t=i.dynamic[e],{prefix:n,suffix:r}=t;if(n||r){let e=t.caseSensitive?y:b??=y.toLowerCase();if(n&&!e.startsWith(n)||r&&!e.endsWith(r))continue}s.push({node:t,index:u+1,skipped:d,depth:f+1,statics:p,dynamics:m+kt(o,u),optionals:h,extract:g,rawParams:_})}if(!v&&i.staticInsensitive){let e=i.staticInsensitive.get(b??=y.toLowerCase());e&&s.push({node:e,index:u+1,skipped:d,depth:f+1,statics:p+kt(o,u),dynamics:m,optionals:h,extract:g,rawParams:_})}if(!v&&i.static){let e=i.static.get(y);e&&s.push({node:e,index:u+1,skipped:d,depth:f+1,statics:p+kt(o,u),dynamics:m,optionals:h,extract:g,rawParams:_})}if(i.pathless){let e=f+1;for(let t=i.pathless.length-1;t>=0;t--){let n=i.pathless[t];s.push({node:n,index:u,skipped:d,depth:e,statics:p,dynamics:m,optionals:h,extract:g,rawParams:_})}}}if(l)return l;if(r&&c){let n=c.index;for(let e=0;ee.statics||t.statics===e.statics&&(t.dynamics>e.dynamics||t.dynamics===e.dynamics&&(t.optionals>e.optionals||t.optionals===e.optionals&&((t.node.kind===lt)>(e.node.kind===lt)||t.node.kind===lt==(e.node.kind===lt)&&t.depth>e.depth)))}function Nt(e){return Pt(e.filter(e=>e!==void 0).join(`/`))}function Pt(e){return e.replace(/\/{2,}/g,`/`)}function Ft(e){return e===`/`?e:e.replace(/^\/{1,}/,``)}function It(e){let t=e.length;return t>1&&e[t-1]===`/`?e.replace(/\/{1,}$/,``):e}function Lt(e){return It(Ft(e))}function Rt(e,t){return e?.endsWith(`/`)&&e!==`/`&&e!==`${t}/`?e.slice(0,-1):e}function zt(e,t,n){return Rt(e,n)===Rt(t,n)}function Bt({base:e,to:t,trailingSlash:n=`never`,cache:r}){let i=t.startsWith(`/`),a=!i&&t===`.`,o;if(r){o=i?t:a?e:e+`\0`+t;let n=r.get(o);if(n)return n}let s;if(a)s=e.split(`/`);else if(i)s=t.split(`/`);else{for(s=e.split(`/`);s.length>1&&Re(s)===``;)s.pop();let n=t.split(`/`);for(let e=0,t=n.length;e1&&(Re(s)===``?n===`never`&&s.pop():n===`always`&&s.push(``));let c=Pt(s.join(`/`))||`/`;return o&&r&&r.set(o,c),c}function Vt(e){let t=new Map(e.map(e=>[encodeURIComponent(e),e])),n=Array.from(t.keys()).map(e=>e.replace(/[.*+?^${}()|[\]\\]/g,`\\$&`)).join(`|`),r=new RegExp(n,`g`);return e=>e.replace(r,e=>t.get(e)??e)}function Ht(e,t,n){let r=t[e];return typeof r==`string`?e===`_splat`?/^[a-zA-Z0-9\-._~!/]*$/.test(r)?r:r.split(`/`).map(e=>Wt(e,n)).join(`/`):Wt(r,n):r}function Ut({path:e,params:t,decoder:n,...r}){let i=!1,a=Object.create(null);if(!e||e===`/`)return{interpolatedPath:`/`,usedParams:a,isMissingParams:i};if(!e.includes(`$`))return{interpolatedPath:e,usedParams:a,isMissingParams:i};let o=e.length,s=0,c,l=``;for(;s{t[0]===`?`&&(t=t.substring(1));let n=Jt(t);for(let t in n){let r=n[t];if(typeof r==`string`)try{n[t]=e(r)}catch{}}return n}}function Qt(e,t){let n=typeof t==`function`;function r(r){if(typeof r==`object`&&r)try{return e(r)}catch{}else if(n&&typeof r==`string`)try{return t(r),e(r)}catch{}return r}return e=>{let t=Kt(e,r);return t?`?${t}`:``}}var $t=`__root__`;function en(e){if(e.statusCode=e.statusCode||e.code||307,!e._builtLocation&&!e.reloadDocument&&typeof e.href==`string`)try{new URL(e.href),e.reloadDocument=!0}catch{}let t=new Headers(e.headers);e.href&&t.get(`Location`)===null&&t.set(`Location`,e.href);let n=new Response(null,{status:e.statusCode,headers:t});if(n.options=e,e.throw)throw n;return n}function tn(e){return e instanceof Response&&!!e.options}var nn=e=>{if(!e.rendered)return e.rendered=!0,e.onReady?.()},rn=e=>e.stores.matchesId.get().some(t=>e.stores.matchStores.get(t)?.get()._forcePending),an=(e,t)=>!!(e.preload&&!e.router.stores.matchStores.has(t)),on=(e,t,n=!0)=>{let r={...e.router.options.context??{}},i=n?t:t-1;for(let t=0;t<=i;t++){let n=e.matches[t];if(!n)continue;let i=e.router.getMatch(n.id);i&&Object.assign(r,i.__routeContext,i.__beforeLoadContext)}return r},sn=(e,t)=>{if(!e.matches.length)return;let n=t.routeId,r=e.matches.findIndex(t=>t.routeId===e.router.routeTree.id),i=r>=0?r:0,a=n?e.matches.findIndex(e=>e.routeId===n):e.firstBadMatchIndex??e.matches.length-1;a<0&&(a=i);for(let t=a;t>=0;t--){let n=e.matches[t];if(e.router.looseRoutesById[n.routeId].options.notFoundComponent)return t}return n?a:i},cn=(e,t,n)=>{if(!(!tn(n)&&!Gt(n)))throw tn(n)&&n.redirectHandled&&!n.options.reloadDocument?n:(t&&(t._nonReactive.beforeLoadPromise?.resolve(),t._nonReactive.loaderPromise?.resolve(),t._nonReactive.beforeLoadPromise=void 0,t._nonReactive.loaderPromise=void 0,t._nonReactive.error=n,e.updateMatch(t.id,r=>({...r,status:tn(n)?`redirected`:Gt(n)?`notFound`:r.status===`pending`?`success`:r.status,context:on(e,t.index),isFetching:!1,error:n})),Gt(n)&&!n.routeId&&(n.routeId=t.routeId),t._nonReactive.loadPromise?.resolve()),tn(n)&&(e.rendered=!0,n.options._fromLocation=e.location,n.redirectHandled=!0,n=e.router.resolveRedirect(n)),n)},ln=(e,t)=>{let n=e.router.getMatch(t);return!!(!n||n._nonReactive.dehydrated)},un=(e,t,n)=>{let r=on(e,n);e.updateMatch(t,e=>({...e,context:r}))},dn=(e,t,n)=>{let{id:r,routeId:i}=e.matches[t],a=e.router.looseRoutesById[i];if(n instanceof Promise)throw n;e.firstBadMatchIndex??=t,cn(e,e.router.getMatch(r),n);try{a.options.onError?.(n)}catch(t){n=t,cn(e,e.router.getMatch(r),n)}e.updateMatch(r,e=>(e._nonReactive.beforeLoadPromise?.resolve(),e._nonReactive.beforeLoadPromise=void 0,e._nonReactive.loadPromise?.resolve(),{...e,error:n,status:`error`,isFetching:!1,updatedAt:Date.now(),abortController:new AbortController})),!e.preload&&!tn(n)&&!Gt(n)&&(e.serialError??=n)},fn=(e,t,n,r)=>{if(r._nonReactive.pendingTimeout!==void 0)return;let i=n.options.pendingMs??e.router.options.defaultPendingMs;if(e.onReady&&!an(e,t)&&(n.options.loader||n.options.beforeLoad||Cn(n))&&typeof i==`number`&&i!==1/0&&(n.options.pendingComponent??e.router.options?.defaultPendingComponent)){let t=setTimeout(()=>{nn(e)},i);r._nonReactive.pendingTimeout=t}},pn=(e,t,n)=>{let r=e.router.getMatch(t);if(!r._nonReactive.beforeLoadPromise&&!r._nonReactive.loaderPromise)return;fn(e,t,n,r);let i=()=>{let n=e.router.getMatch(t);n.preload&&(n.status===`redirected`||n.status===`notFound`)&&cn(e,n,n.error)};return r._nonReactive.beforeLoadPromise?r._nonReactive.beforeLoadPromise.then(i):i()},mn=(e,t,n,r)=>{let i=e.router.getMatch(t),a=i._nonReactive.loadPromise;i._nonReactive.loadPromise=Qe(()=>{a?.resolve(),a=void 0});let{paramsError:o,searchError:s}=i;o&&dn(e,n,o),s&&dn(e,n,s),fn(e,t,r,i);let c=new AbortController,l=!1,u=()=>{l||(l=!0,e.updateMatch(t,e=>({...e,isFetching:`beforeLoad`,fetchCount:e.fetchCount+1,abortController:c})))},d=()=>{i._nonReactive.beforeLoadPromise?.resolve(),i._nonReactive.beforeLoadPromise=void 0,e.updateMatch(t,e=>({...e,isFetching:!1}))};if(!r.options.beforeLoad){e.router.batch(()=>{u(),d()});return}i._nonReactive.beforeLoadPromise=Qe();let f={...on(e,n,!1),...i.__routeContext},{search:p,params:m,cause:h}=i,g=an(e,t),_={search:p,abortController:c,params:m,preload:g,context:f,location:e.location,navigate:t=>e.router.navigate({...t,_fromLocation:e.location}),buildLocation:e.router.buildLocation,cause:g?`preload`:h,matches:e.matches,routeId:r.id,...e.router.options.additionalContext},v=r=>{if(r===void 0){e.router.batch(()=>{u(),d()});return}(tn(r)||Gt(r))&&(u(),dn(e,n,r)),e.router.batch(()=>{u(),e.updateMatch(t,e=>({...e,__beforeLoadContext:r})),d()})},y;try{if(y=r.options.beforeLoad(_),$e(y))return u(),y.catch(t=>{dn(e,n,t)}).then(v)}catch(t){u(),dn(e,n,t)}v(y)},hn=(e,t)=>{let{id:n,routeId:r}=e.matches[t],i=e.router.looseRoutesById[r],a=()=>s(),o=()=>mn(e,n,t,i),s=()=>{if(ln(e,n))return;let t=pn(e,n,i);return $e(t)?t.then(o):o()};return a()},gn=(e,t,n)=>{let r=e.router.getMatch(t);if(!r||!n.options.head&&!n.options.scripts&&!n.options.headers)return;let i={ssr:e.router.options.ssr,matches:e.matches,match:r,params:r.params,loaderData:r.loaderData};return Promise.all([n.options.head?.(i),n.options.scripts?.(i),n.options.headers?.(i)]).then(([e,t,n])=>({meta:e?.meta,links:e?.links,headScripts:e?.scripts,headers:n,scripts:t,styles:e?.styles}))},_n=(e,t,n,r,i)=>{let a=t[r-1],{params:o,loaderDeps:s,abortController:c,cause:l}=e.router.getMatch(n),u=on(e,r),d=an(e,n);return{params:o,deps:s,preload:!!d,parentMatchPromise:a,abortController:c,context:u,location:e.location,navigate:t=>e.router.navigate({...t,_fromLocation:e.location}),cause:d?`preload`:l,route:i,...e.router.options.additionalContext}},vn=async(e,t,n,r,i)=>{try{let a=e.router.getMatch(n);try{Sn(i);let o=i.options.loader,s=typeof o==`function`?o:o?.handler,c=s?.(_n(e,t,n,r,i)),l=!!s&&$e(c);if((l||i._lazyPromise||i._componentsPromise||i.options.head||i.options.scripts||i.options.headers||a._nonReactive.minPendingPromise)&&e.updateMatch(n,e=>({...e,isFetching:`loader`})),s){let t=l?await c:c;cn(e,e.router.getMatch(n),t),t!==void 0&&e.updateMatch(n,e=>({...e,loaderData:t}))}i._lazyPromise&&await i._lazyPromise;let u=a._nonReactive.minPendingPromise;u&&await u,i._componentsPromise&&await i._componentsPromise,e.updateMatch(n,t=>({...t,error:void 0,context:on(e,r),status:`success`,isFetching:!1,updatedAt:Date.now()}))}catch(t){let o=t;if(o?.name===`AbortError`){if(a.abortController.signal.aborted){a._nonReactive.loaderPromise?.resolve(),a._nonReactive.loaderPromise=void 0;return}e.updateMatch(n,t=>({...t,status:t.status===`pending`?`success`:t.status,isFetching:!1,context:on(e,r)}));return}let s=a._nonReactive.minPendingPromise;s&&await s,Gt(t)&&await i.options.notFoundComponent?.preload?.(),cn(e,e.router.getMatch(n),t);try{i.options.onError?.(t)}catch(t){o=t,cn(e,e.router.getMatch(n),t)}!tn(o)&&!Gt(o)&&await Sn(i,[`errorComponent`]),e.updateMatch(n,t=>({...t,error:o,context:on(e,r),status:`error`,isFetching:!1}))}}catch(t){let r=e.router.getMatch(n);r&&(r._nonReactive.loaderPromise=void 0),cn(e,r,t)}},yn=async(e,t,n)=>{async function r(r,a,c,l,d){let f=Date.now()-a.updatedAt,p=r?d.options.preloadStaleTime??e.router.options.defaultPreloadStaleTime??3e4:d.options.staleTime??e.router.options.defaultStaleTime??0,m=d.options.shouldReload,h=typeof m==`function`?m(_n(e,t,i,n,d)):m,{status:g,invalid:_}=l,v=f>=p&&(!!e.forceStaleReload||l.cause===`enter`||c!==void 0&&c!==l.id);o=g===`success`&&(_||(h??v)),r&&d.options.preload===!1||(o&&!e.sync&&u?(s=!0,(async()=>{try{await vn(e,t,i,n,d);let r=e.router.getMatch(i);r._nonReactive.loaderPromise?.resolve(),r._nonReactive.loadPromise?.resolve(),r._nonReactive.loaderPromise=void 0,r._nonReactive.loadPromise=void 0}catch(t){tn(t)&&await e.router.navigate(t.options)}})()):g!==`success`||o?await vn(e,t,i,n,d):un(e,i,n))}let{id:i,routeId:a}=e.matches[n],o=!1,s=!1,c=e.router.looseRoutesById[a],l=c.options.loader,u=((typeof l==`function`?void 0:l?.staleReloadMode)??e.router.options.defaultStaleReloadMode)!==`blocking`;if(ln(e,i)){if(!e.router.getMatch(i))return e.matches[n];un(e,i,n)}else{let t=e.router.getMatch(i),o=e.router.stores.matchesId.get()[n],s=(o&&e.router.stores.matchStores.get(o)||null)?.routeId===a?o:e.router.stores.matches.get().find(e=>e.routeId===a)?.id,l=an(e,i);if(t._nonReactive.loaderPromise){if(t.status===`success`&&!e.sync&&!t.preload&&u)return t;await t._nonReactive.loaderPromise;let n=e.router.getMatch(i),a=n._nonReactive.error||n.error;a&&cn(e,n,a),n.status===`pending`&&await r(l,t,s,n,c)}else{let n=l&&!e.router.stores.matchStores.has(i),a=e.router.getMatch(i);a._nonReactive.loaderPromise=Qe(),n!==a.preload&&e.updateMatch(i,e=>({...e,preload:n})),await r(l,t,s,a,c)}}let d=e.router.getMatch(i);s||(d._nonReactive.loaderPromise?.resolve(),d._nonReactive.loadPromise?.resolve(),d._nonReactive.loadPromise=void 0),clearTimeout(d._nonReactive.pendingTimeout),d._nonReactive.pendingTimeout=void 0,s||(d._nonReactive.loaderPromise=void 0),d._nonReactive.dehydrated=void 0;let f=s?d.isFetching:!1;return f!==d.isFetching||d.invalid!==!1?(e.updateMatch(i,e=>({...e,isFetching:f,invalid:!1})),e.router.getMatch(i)):d};async function bn(e){let t=e,n=[];rn(t.router)&&nn(t);let r;for(let e=0;e({...e,...a?{status:`success`,globalNotFound:!0,error:void 0}:{status:`notFound`,error:l},isFetching:!1})),u=e,await Sn(r,[`notFoundComponent`])}else if(!t.preload){let e=t.matches[0];e.globalNotFound||t.router.getMatch(e.id)?.globalNotFound&&t.updateMatch(e.id,e=>({...e,globalNotFound:!1,error:void 0}))}if(t.serialError&&t.firstBadMatchIndex!==void 0){let e=t.router.looseRoutesById[t.matches[t.firstBadMatchIndex].routeId];await Sn(e,[`errorComponent`])}for(let e=0;e<=u;e++){let{id:n,routeId:r}=t.matches[e],i=t.router.looseRoutesById[r];try{let e=gn(t,n,i);if(e){let r=await e;t.updateMatch(n,e=>({...e,...r}))}}catch(e){console.error(`Error executing head for route ${r}:`,e)}}let d=nn(t);if($e(d)&&await d,l)throw l;if(t.serialError&&!t.preload&&!t.onReady)throw t.serialError;return t.matches}function xn(e,t){let n=t.map(t=>e.options[t]?.preload?.()).filter(Boolean);if(n.length!==0)return Promise.all(n)}function Sn(e,t=wn){!e._lazyLoaded&&e._lazyPromise===void 0&&(e.lazyFn?e._lazyPromise=e.lazyFn().then(t=>{let{id:n,...r}=t.options;Object.assign(e.options,r),e._lazyLoaded=!0,e._lazyPromise=void 0}):e._lazyLoaded=!0);let n=()=>e._componentsLoaded?void 0:t===wn?(()=>{if(e._componentsPromise===void 0){let t=xn(e,wn);t?e._componentsPromise=t.then(()=>{e._componentsLoaded=!0,e._componentsPromise=void 0}):e._componentsLoaded=!0}return e._componentsPromise})():xn(e,t);return e._lazyPromise?e._lazyPromise.then(n):n()}function Cn(e){for(let t of wn)if(e.options[t]?.preload)return!0;return!1}var wn=[`component`,`errorComponent`,`pendingComponent`,`notFoundComponent`];function Tn(e){return{input:({url:t})=>{for(let n of e)t=Dn(n,t);return t},output:({url:t})=>{for(let n=e.length-1;n>=0;n--)t=On(e[n],t);return t}}}function En(e){let t=Lt(e.basepath),n=`/${t}`,r=e.caseSensitive?n:n.toLowerCase(),i=`${r}/`;return{input:({url:t})=>{let a=e.caseSensitive?t.pathname:t.pathname.toLowerCase();return a===r?t.pathname=`/`:a.startsWith(i)&&(t.pathname=t.pathname.slice(n.length)),t},output:({url:e})=>(e.pathname=Nt([`/`,t,e.pathname]),e)}}function Dn(e,t){let n=e?.input?.({url:t});if(n){if(typeof n==`string`)return new URL(n);if(n instanceof URL)return n}return t}function On(e,t){let n=e?.output?.({url:t});if(n){if(typeof n==`string`)return new URL(n);if(n instanceof URL)return n}return t}function kn(e,t){let{createMutableStore:n,createReadonlyStore:r,batch:i,init:a}=t,o=new Map,s=new Map,c=new Map,l=n(e.status),u=n(e.loadedAt),d=n(e.isLoading),f=n(e.isTransitioning),p=n(e.location),m=n(e.resolvedLocation),h=n(e.statusCode),g=n(e.redirect),_=n([]),v=n([]),y=n([]),b=r(()=>An(o,_.get())),x=r(()=>An(s,v.get())),S=r(()=>An(c,y.get())),C=r(()=>_.get()[0]),w=r(()=>_.get().some(e=>o.get(e)?.get().status===`pending`)),T=r(()=>({locationHref:p.get().href,resolvedLocationHref:m.get()?.href,status:l.get()})),E=r(()=>({status:l.get(),loadedAt:u.get(),isLoading:d.get(),isTransitioning:f.get(),matches:b.get(),location:p.get(),resolvedLocation:m.get(),statusCode:h.get(),redirect:g.get()})),D=ct(64);function O(e){let t=D.get(e);return t||(t=r(()=>{let t=_.get();for(let n of t){let t=o.get(n);if(t&&t.routeId===e)return t.get()}}),D.set(e,t)),t}let k={status:l,loadedAt:u,isLoading:d,isTransitioning:f,location:p,resolvedLocation:m,statusCode:h,redirect:g,matchesId:_,pendingIds:v,cachedIds:y,matches:b,pendingMatches:x,cachedMatches:S,firstId:C,hasPending:w,matchRouteDeps:T,matchStores:o,pendingMatchStores:s,cachedMatchStores:c,__store:E,getRouteMatchStore:O,setMatches:ee,setPending:te,setCached:A};ee(e.matches),a?.(k);function ee(e){jn(e,o,_,n,i)}function te(e){jn(e,s,v,n,i)}function A(e){jn(e,c,y,n,i)}return k}function An(e,t){let n=[];for(let r of t){let t=e.get(r);t&&n.push(t.get())}return n}function jn(e,t,n,r,i){let a=e.map(e=>e.id),o=new Set(a);i(()=>{for(let e of t.keys())o.has(e)||t.delete(e);for(let n of e){let e=t.get(n.id);if(!e){let e=r(n);e.routeId=n.routeId,t.set(n.id,e);continue}e.routeId=n.routeId,e.get()!==n&&e.set(n)}ot(n.get(),a)||n.set(a)})}var Mn=`__TSR_index`,Nn=`popstate`,Pn=`beforeunload`;function Fn(e){let t=e.getLocation(),n=new Set,r=r=>{t=e.getLocation(),n.forEach(e=>e({location:t,action:r}))},i=n=>{e.notifyOnIndexChange??!0?r(n):t=e.getLocation()},a=async({task:n,navigateOpts:r,...i})=>{if(r?.ignoreBlocker??!1){n();return}let a=e.getBlockers?.()??[],o=i.type===`PUSH`||i.type===`REPLACE`;if(typeof document<`u`&&a.length&&o)for(let n of a){let r=zn(i.path,i.state);if(await n.blockerFn({currentLocation:t,nextLocation:r,action:i.type})){e.onBlocked?.();return}}n()};return{get location(){return t},get length(){return e.getLength()},subscribers:n,subscribe:e=>(n.add(e),()=>{n.delete(e)}),push:(n,i,o)=>{let s=t.state[Mn];i=In(s+1,i),a({task:()=>{e.pushState(n,i),r({type:`PUSH`})},navigateOpts:o,type:`PUSH`,path:n,state:i})},replace:(n,i,o)=>{let s=t.state[Mn];i=In(s,i),a({task:()=>{e.replaceState(n,i),r({type:`REPLACE`})},navigateOpts:o,type:`REPLACE`,path:n,state:i})},go:(t,n)=>{a({task:()=>{e.go(t),i({type:`GO`,index:t})},navigateOpts:n,type:`GO`})},back:t=>{a({task:()=>{e.back(t?.ignoreBlocker??!1),i({type:`BACK`})},navigateOpts:t,type:`BACK`})},forward:t=>{a({task:()=>{e.forward(t?.ignoreBlocker??!1),i({type:`FORWARD`})},navigateOpts:t,type:`FORWARD`})},canGoBack:()=>t.state[Mn]!==0,createHref:t=>e.createHref(t),block:t=>{if(!e.setBlockers)return()=>{};let n=e.getBlockers?.()??[];return e.setBlockers([...n,t]),()=>{let n=e.getBlockers?.()??[];e.setBlockers?.(n.filter(e=>e!==t))}},flush:()=>e.flush?.(),destroy:()=>e.destroy?.(),notify:r}}function In(e,t){t||={};let n=Bn();return{...t,key:n,__TSR_key:n,[Mn]:e}}function Ln(e){let t=e?.window??(typeof document<`u`?window:void 0),n=t.history.pushState,r=t.history.replaceState,i=[],a=()=>i,o=e=>i=e,s=e?.createHref??(e=>e),c=e?.parseLocation??(()=>zn(`${t.location.pathname}${t.location.search}${t.location.hash}`,t.history.state));if(!t.history.state?.__TSR_key&&!t.history.state?.key){let e=Bn();t.history.replaceState({[Mn]:0,key:e,__TSR_key:e},``)}let l=c(),u,d=!1,f=!1,p=!1,m=!1,h=()=>l,g,_,v=()=>{g&&(C._ignoreSubscribers=!0,(g.isPush?t.history.pushState:t.history.replaceState)(g.state,``,g.href),C._ignoreSubscribers=!1,g=void 0,_=void 0,u=void 0)},y=(e,t,n)=>{let r=s(t);_||(u=l),l=zn(t,n),g={href:r,state:n,isPush:g?.isPush||e===`push`},_||=Promise.resolve().then(()=>v())},b=e=>{l=c(),C.notify({type:e})},x=async()=>{if(f){f=!1;return}let e=c(),n=e.state[Mn]-l.state[Mn],r=n===1,i=n===-1,o=!r&&!i||d;d=!1;let s=o?`GO`:i?`BACK`:`FORWARD`,u=o?{type:`GO`,index:n}:{type:i?`BACK`:`FORWARD`};if(p)p=!1;else{let n=a();if(typeof document<`u`&&n.length){for(let r of n)if(await r.blockerFn({currentLocation:l,nextLocation:e,action:s})){f=!0,t.history.go(1),C.notify(u);return}}}l=c(),C.notify(u)},S=e=>{if(m){m=!1;return}let t=!1,n=a();if(typeof document<`u`&&n.length)for(let e of n){let n=e.enableBeforeUnload??!0;if(n===!0){t=!0;break}if(typeof n==`function`&&n()===!0){t=!0;break}}if(t)return e.preventDefault(),e.returnValue=``},C=Fn({getLocation:h,getLength:()=>t.history.length,pushState:(e,t)=>y(`push`,e,t),replaceState:(e,t)=>y(`replace`,e,t),back:e=>(e&&(p=!0),m=!0,t.history.back()),forward:e=>{e&&(p=!0),m=!0,t.history.forward()},go:e=>{d=!0,t.history.go(e)},createHref:e=>s(e),flush:v,destroy:()=>{t.history.pushState=n,t.history.replaceState=r,t.removeEventListener(Pn,S,{capture:!0}),t.removeEventListener(Nn,x)},onBlocked:()=>{u&&l!==u&&(l=u)},getBlockers:a,setBlockers:o,notifyOnIndexChange:!1});return t.addEventListener(Pn,S,{capture:!0}),t.addEventListener(Nn,x),t.history.pushState=function(...e){let r=n.apply(t.history,e);return C._ignoreSubscribers||b(`PUSH`),r},t.history.replaceState=function(...e){let n=r.apply(t.history,e);return C._ignoreSubscribers||b(`REPLACE`),n},C}function Rn(e){let t=e.replace(/[\x00-\x1f\x7f]/g,``);return t.startsWith(`//`)&&(t=`/`+t.replace(/^\/+/,``)),t}function zn(e,t){let n=Rn(e),r=n.indexOf(`#`),i=n.indexOf(`?`),a=Bn();return{href:n,pathname:n.substring(0,r>0?i>0?Math.min(r,i):r:i>0?i:n.length),hash:r>-1?n.substring(r):``,search:i>-1?n.slice(i,r===-1?void 0:r):``,state:t||{[Mn]:0,key:a,__TSR_key:a}}}function Bn(){return(Math.random()+1).toString(36).substring(7)}function Vn(e,t){let n=t,r=e;return{fromLocation:n,toLocation:r,pathChanged:n?.pathname!==r.pathname,hrefChanged:n?.href!==r.href,hashChanged:n?.hash!==r.hash}}var Hn=new WeakMap,Un=class{constructor(e,t){this.tempLocationKey=`${Math.round(Math.random()*1e7)}`,this.resetNextScroll=!0,this.shouldViewTransition=void 0,this.isViewTransitionTypesSupported=void 0,this.subscribers=new Set,this.isScrollRestoring=!1,this.isScrollRestorationSetup=!1,this.routeBranchCache=new WeakMap,this.startTransition=e=>e(),this.update=e=>{let t=this.options,n=this.basepath??t?.basepath??`/`,r=this.basepath===void 0,i=t?.rewrite;if(this.options={...t,...e},this.isServer=this.options.isServer??typeof document>`u`,this.protocolAllowlist=new Set(this.options.protocolAllowlist),this.options.pathParamsAllowedCharacters&&(this.pathParamsDecoder=Vt(this.options.pathParamsAllowedCharacters)),(!this.history||this.options.history&&this.options.history!==this.history)&&(this.history=this.options.history?this.options.history:Ln()),this.origin=this.options.origin,this.origin||=window?.origin&&window.origin!==`null`?window.origin:`http://localhost`,this.history&&this.updateLatestLocation(),this.options.routeTree!==this.routeTree){this.routeTree=this.options.routeTree;let e;this.resolvePathCache=ct(1e3),e=this.buildRouteTree(),this.setRoutes(e)}if(!this.stores&&this.latestLocation){let e=this.getStoreConfig(this);this.batch=e.batch,this.stores=kn(Kn(this.latestLocation),e),fr(this)}let a=!1,o=this.options.basepath??`/`,s=this.options.rewrite;if(r||n!==o||i!==s){this.basepath=o;let e=[],t=Lt(o);t&&t!==`/`&&e.push(En({basepath:o})),s&&e.push(s),this.rewrite=e.length===0?void 0:e.length===1?e[0]:Tn(e),this.history&&this.updateLatestLocation(),a=!0}a&&this.stores&&this.stores.location.set(this.latestLocation),typeof window<`u`&&`CSS`in window&&typeof window.CSS?.supports==`function`&&(this.isViewTransitionTypesSupported=window.CSS.supports(`selector(:active-view-transition-type(a))`))},this.updateLatestLocation=()=>{this.latestLocation=this.parseLocation(this.history.location,this.latestLocation)},this.buildRouteTree=()=>{let e=Ct(this.routeTree,this.options.caseSensitive,(e,t)=>{e.init({originalIndex:t})});return this.options.routeMasks&&vt(this.options.routeMasks,e.processedTree),e},this.subscribe=(e,t)=>{let n={eventType:e,fn:t};return this.subscribers.add(n),()=>{this.subscribers.delete(n)}},this.emit=e=>{this.subscribers.forEach(t=>{t.eventType===e.type&&t.fn(e)})},this.parseLocation=(e,t)=>{let n=({pathname:e,search:n,hash:r,href:i,state:a})=>{if(!this.rewrite&&!/[ \x00-\x1f\x7f\u0080-\uffff]/.test(e)){let i=this.options.parseSearch(n),o=this.options.stringifySearch(i);return{href:e+o+r,publicHref:e+o+r,pathname:it(e).path,external:!1,searchStr:o,search:Ge(t?.search,i),hash:it(r.slice(1)).path,state:Ke(t?.state,a)}}let o=new URL(i,this.origin),s=Dn(this.rewrite,o),c=this.options.parseSearch(s.search),l=this.options.stringifySearch(c);return s.search=l,{href:s.href.replace(s.origin,``),publicHref:i,pathname:it(s.pathname).path,external:!!this.rewrite&&s.origin!==this.origin,searchStr:l,search:Ge(t?.search,c),hash:it(s.hash.slice(1)).path,state:Ke(t?.state,a)}},r=n(e),{__tempLocation:i,__tempKey:a}=r.state;if(i&&(!a||a===this.tempLocationKey)){let e=n(i);return e.state.key=r.state.key,e.state.__TSR_key=r.state.__TSR_key,delete e.state.__tempLocation,{...e,maskedLocation:r}}return r},this.resolvePathWithBase=(e,t)=>Bt({base:e,to:t.includes(`//`)?Pt(t):t,trailingSlash:this.options.trailingSlash,cache:this.resolvePathCache}),this.matchRoutes=(e,t,n)=>typeof e==`string`?this.matchRoutesInternal({pathname:e,search:t},n):this.matchRoutesInternal(e,t),this.getMatchedRoutes=e=>Jn({pathname:e,routesById:this.routesById,processedTree:this.processedTree}),this.cancelMatch=e=>{let t=this.getMatch(e);t&&(t.abortController.abort(),clearTimeout(t._nonReactive.pendingTimeout),t._nonReactive.pendingTimeout=void 0)},this.cancelMatches=()=>{this.stores.pendingIds.get().forEach(e=>{this.cancelMatch(e)}),this.stores.matchesId.get().forEach(e=>{if(this.stores.pendingMatchStores.has(e))return;let t=this.stores.matchStores.get(e)?.get();t&&(t.status===`pending`||t.isFetching===`loader`)&&this.cancelMatch(e)})},this.buildLocation=e=>{let t=(t={})=>{let n=t._fromLocation||this.pendingBuiltLocation||this.latestLocation,r=this.matchRoutesLightweight(n);t.from;let i=t.unsafeRelative===`path`?n.pathname:t.from??r.fullPath,a=t.to?`${t.to}`:void 0,o=r.search,s=Object.assign(Object.create(null),r.params),c=a?.charCodeAt(0)===47?`/`:this.resolvePathWithBase(i,`.`),l=a?this.resolvePathWithBase(c,a):c,u=t.params===!1||t.params===null?Object.create(null):(t.params??!0)===!0?s:Object.assign(s,Be(t.params,s)),d=this.routesByPath[It(l)],f;if(d)f=this.getRouteBranch(d);else if(l.includes(`$`))f=[];else{let e=this.getMatchedRoutes(l);f=e.matchedRoutes,this.options.notFoundRoute&&(!e.foundRoute||e.foundRoute.path!==`/`&&e.routeParams[`**`])&&(f=[...f,this.options.notFoundRoute])}if(f.length&&Ue(u))for(let e of f){let t=e.options.params?.stringify??e.options.stringifyParams;if(t)try{Object.assign(u,t(u))}catch{}}let p=e.leaveParams?l:it(Ut({path:l,params:u,decoder:this.pathParamsDecoder,server:this.isServer}).interpolatedPath).path,m=o;if(e._includeValidateSearch&&this.options.search?.strict){let e={};f.forEach(t=>{if(t.options.validateSearch)try{Object.assign(e,qn(t.options.validateSearch,{...e,...m}))}catch{}}),m=e}m=Yn({search:m,dest:t,destRoutes:f,_includeValidateSearch:e._includeValidateSearch}),m=Ge(o,m);let h=this.options.stringifySearch(m),g=t.hash===!0?n.hash:t.hash?Be(t.hash,n.hash):void 0,_=g?`#${g}`:``,v=t.state===!0?n.state:t.state?Be(t.state,n.state):{};v=Ke(n.state,v);let y=`${p}${h}${_}`,b,x,S=!1;if(this.rewrite){let e=new URL(y,this.origin),t=On(this.rewrite,e);b=e.href.replace(e.origin,``),t.origin===this.origin?x=t.pathname+t.search+t.hash:(x=t.href,S=!0)}else b=at(y),x=b;return{publicHref:x,href:b,pathname:p,search:m,searchStr:h,state:v,hash:g??``,external:S,unmaskOnReload:t.unmaskOnReload}},n=(n={},r)=>{let i=t(n),a=r?t(r):void 0;if(!a){let n=Object.create(null);if(this.options.routeMasks){let o=yt(i.pathname,this.processedTree);if(o){Object.assign(n,o.rawParams);let{from:i,params:s,...c}=o.route,l=s===!1||s===null?Object.create(null):(s??!0)===!0?n:Object.assign(n,Be(s,n));r={from:e.from,...c,params:l},a=t(r)}}}return a&&(i.maskedLocation=a),i};return e.mask?n(e,{from:e.from,...e.mask}):n(e)},this.commitLocation=async({viewTransition:e,ignoreBlocker:t,...n})=>{let r,i=()=>{let e=[`key`,`__TSR_key`,`__TSR_index`,`__hashScrollIntoViewOptions`];e.forEach(e=>{n.state[e]=this.latestLocation.state[e]});let t=Ze(n.state,this.latestLocation.state);return e.forEach(e=>{delete n.state[e]}),t},a=It(this.latestLocation.href)===It(n.href),o=this.commitLocationPromise;if(this.commitLocationPromise=Qe(()=>{o?.resolve(),o=void 0}),a&&i())this.load();else{let{maskedLocation:i,hashScrollIntoView:a,...o}=n;i&&(o={...i,state:{...i.state,__tempKey:void 0,__tempLocation:{...o,search:o.searchStr,state:{...o.state,__tempKey:void 0,__tempLocation:void 0,__TSR_key:void 0,key:void 0}}}},(o.unmaskOnReload??this.options.unmaskOnReload??!1)&&(o.state.__tempKey=this.tempLocationKey)),o.state.__hashScrollIntoViewOptions=a??this.options.defaultHashScrollIntoView??!0,this.shouldViewTransition=e,r=n.replace?`REPLACE`:`PUSH`,this.history[r===`REPLACE`?`replace`:`push`](o.publicHref,o.state,{ignoreBlocker:t})}return this.resetNextScroll=n.resetScroll??!0,this.history.subscribers.size||this.load(r?{action:{type:r}}:void 0),this.commitLocationPromise},this.buildAndCommitLocation=({replace:e,resetScroll:t,hashScrollIntoView:n,viewTransition:r,ignoreBlocker:i,href:a,...o}={})=>{if(a){let t=this.history.location.state.__TSR_index,n=zn(a,{__TSR_index:e?t:t+1}),r=new URL(n.pathname,this.origin);o.to=Dn(this.rewrite,r).pathname,o.search=this.options.parseSearch(n.search),o.hash=n.hash.slice(1)}let s=this.buildLocation({...o,_includeValidateSearch:!0});this.pendingBuiltLocation=s;let c=this.commitLocation({...s,viewTransition:r,replace:e,resetScroll:t,hashScrollIntoView:n,ignoreBlocker:i});return Promise.resolve().then(()=>{this.pendingBuiltLocation===s&&(this.pendingBuiltLocation=void 0)}),c},this.navigate=async({to:e,reloadDocument:t,href:n,publicHref:r,...i})=>{let a=!1;if(n)try{new URL(`${n}`),a=!0}catch{}if(a&&!t&&(t=!0),t){if(e!==void 0||!n){let t=this.buildLocation({to:e,...i});n??=t.publicHref,r??=t.publicHref}let t=!a&&r?r:n;if(rt(t,this.protocolAllowlist))return Promise.resolve();if(!i.ignoreBlocker){let e=this.history.getBlockers?.()??[];for(let t of e)if(t?.blockerFn&&await t.blockerFn({currentLocation:this.latestLocation,nextLocation:this.latestLocation,action:`PUSH`}))return Promise.resolve()}return i.replace?window.location.replace(t):window.location.href=t,Promise.resolve()}return this.buildAndCommitLocation({...i,href:n,to:e,_isNavigate:!0})},this.beforeLoad=()=>{this.cancelMatches(),this.updateLatestLocation();let e=this.matchRoutes(this.latestLocation),t=this.stores.cachedMatches.get().filter(t=>!e.some(e=>e.id===t.id));this.batch(()=>{this.stores.status.set(`pending`),this.stores.statusCode.set(200),this.stores.isLoading.set(!0),this.stores.location.set(this.latestLocation),this.stores.setPending(e),this.stores.setCached(t)})},this.load=async e=>{let t=e?.action?.type,n,r,i,a=this.stores.resolvedLocation.get()??this.stores.location.get();for(i=new Promise(o=>{this.startTransition(async()=>{try{this.beforeLoad(),t?Hn.set(this.latestLocation,t):Hn.delete(this.latestLocation);let n=this.latestLocation,r=Vn(n,this.stores.resolvedLocation.get());this.stores.redirect.get()||this.emit({type:`onBeforeNavigate`,...r}),this.emit({type:`onBeforeLoad`,...r}),await bn({router:this,sync:e?.sync,forceStaleReload:a.href===n.href,matches:this.stores.pendingMatches.get(),location:n,updateMatch:this.updateMatch,onReady:async()=>{this.startTransition(()=>{this.startViewTransition(async()=>{let e=null,t=null,n=null,r=null;this.batch(()=>{let i=this.stores.pendingMatches.get(),a=i.length,o=this.stores.matches.get();e=a?o.filter(e=>!this.stores.pendingMatchStores.has(e.id)):null;let s=new Set;for(let e of this.stores.pendingMatchStores.values())e.routeId&&s.add(e.routeId);let c=new Set;for(let e of this.stores.matchStores.values())e.routeId&&c.add(e.routeId);t=a?o.filter(e=>!s.has(e.routeId)):null,n=a?i.filter(e=>!c.has(e.routeId)):null,r=a?i.filter(e=>c.has(e.routeId)):o,this.stores.isLoading.set(!1),this.stores.loadedAt.set(Date.now()),a&&(this.stores.setMatches(i),this.stores.setPending([]),this.stores.setCached([...this.stores.cachedMatches.get(),...e.filter(e=>e.status!==`error`&&e.status!==`notFound`&&e.status!==`redirected`)]),this.clearExpiredCache())});for(let[e,i]of[[t,`onLeave`],[n,`onEnter`],[r,`onStay`]])if(e)for(let t of e)this.looseRoutesById[t.routeId].options[i]?.(t)})})}})}catch(e){tn(e)?(n=e,this.navigate({...n.options,replace:!0,ignoreBlocker:!0})):Gt(e)&&(r=e);let t=n?n.status:r?404:this.stores.matches.get().some(e=>e.status===`error`)?500:200;this.batch(()=>{this.stores.statusCode.set(t),this.stores.redirect.set(n)})}this.latestLoadPromise===i&&(this.commitLocationPromise?.resolve(),this.latestLoadPromise=void 0,this.commitLocationPromise=void 0),o()})}),this.latestLoadPromise=i,await i;this.latestLoadPromise&&i!==this.latestLoadPromise;)await this.latestLoadPromise;let o;this.hasNotFoundMatch()?o=404:this.stores.matches.get().some(e=>e.status===`error`)&&(o=500),o!==void 0&&this.stores.statusCode.set(o)},this.startViewTransition=e=>{let t=this.shouldViewTransition??this.options.defaultViewTransition;if(this.shouldViewTransition=void 0,t&&typeof document<`u`&&`startViewTransition`in document&&typeof document.startViewTransition==`function`){let n;if(typeof t==`object`&&this.isViewTransitionTypesSupported){let r=this.latestLocation,i=this.stores.resolvedLocation.get(),a=typeof t.types==`function`?t.types(Vn(r,i)):t.types;if(a===!1){e();return}n={update:e,types:a}}else n=e;document.startViewTransition(n)}else e()},this.updateMatch=(e,t)=>{this.startTransition(()=>{let n=this.stores.pendingMatchStores.get(e);if(n){n.set(t);return}let r=this.stores.matchStores.get(e);if(r){r.set(t);return}let i=this.stores.cachedMatchStores.get(e);if(i){let n=t(i.get());n.status===`redirected`?this.stores.cachedMatchStores.delete(e)&&this.stores.cachedIds.set(t=>t.filter(t=>t!==e)):i.set(n)}})},this.getMatch=e=>this.stores.cachedMatchStores.get(e)?.get()??this.stores.pendingMatchStores.get(e)?.get()??this.stores.matchStores.get(e)?.get(),this.invalidate=e=>{let t=t=>e?.filter?.(t)??!0?{...t,invalid:!0,...e?.forcePending||t.status===`error`||t.status===`notFound`?{status:`pending`,error:void 0}:void 0}:t;return this.batch(()=>{this.stores.setMatches(this.stores.matches.get().map(t)),this.stores.setCached(this.stores.cachedMatches.get().map(t)),this.stores.setPending(this.stores.pendingMatches.get().map(t))}),this.shouldViewTransition=!1,this.load({sync:e?.sync})},this.getParsedLocationHref=e=>e.publicHref||`/`,this.resolveRedirect=e=>{let t=e.headers.get(`Location`);if(!e.options.href||e.options._builtLocation){let t=e.options._builtLocation??this.buildLocation(e.options),n=this.getParsedLocationHref(t);e.options.href=n,e.headers.set(`Location`,n)}else if(t)try{let n=new URL(t);if(this.origin&&n.origin===this.origin){let t=n.pathname+n.search+n.hash;e.options.href=t,e.headers.set(`Location`,t)}}catch{}if(e.options.href&&!e.options._builtLocation&&rt(e.options.href,this.protocolAllowlist))throw Error(`Redirect blocked: unsafe protocol`);return e.headers.get(`Location`)||e.headers.set(`Location`,e.options.href),e},this.clearCache=e=>{let t=e?.filter;t===void 0?this.stores.setCached([]):this.stores.setCached(this.stores.cachedMatches.get().filter(e=>!t(e)))},this.clearExpiredCache=()=>{let e=Date.now();this.clearCache({filter:t=>{let n=this.looseRoutesById[t.routeId];if(!n.options.loader)return!0;let r=(t.preload?n.options.preloadGcTime??this.options.defaultPreloadGcTime:n.options.gcTime??this.options.defaultGcTime)??3e5;return t.status===`error`||e-t.updatedAt>=r}})},this.loadRouteChunk=Sn,this.preloadRoute=async e=>{let t=e._builtLocation??this.buildLocation(e),n=this.matchRoutes(t,{throwOnError:!0,preload:!0,dest:e}),r=new Set([...this.stores.matchesId.get(),...this.stores.pendingIds.get()]),i=new Set([...r,...this.stores.cachedIds.get()]),a=n.filter(e=>!i.has(e.id));if(a.length){let e=this.stores.cachedMatches.get();this.stores.setCached([...e,...a])}try{return n=await bn({router:this,matches:n,location:t,preload:!0,updateMatch:(e,t)=>{r.has(e)?n=n.map(n=>n.id===e?t(n):n):this.updateMatch(e,t)}}),n}catch(e){if(tn(e))return e.options.reloadDocument?void 0:await this.preloadRoute({...e.options,_fromLocation:t});Gt(e)||console.error(e);return}},this.matchRoute=(e,t)=>{let n={...e,to:e.to?this.resolvePathWithBase(e.from||``,e.to):void 0,params:e.params||{},leaveParams:!0},r=this.buildLocation(n);if(t?.pending&&this.stores.status.get()!==`pending`)return!1;let i=(t?.pending===void 0?!this.stores.isLoading.get():t.pending)?this.latestLocation:this.stores.resolvedLocation.get()||this.stores.location.get(),a=bt(r.pathname,t?.caseSensitive??!1,t?.fuzzy??!1,i.pathname,this.processedTree);return!a||e.params&&!Ze(a.rawParams,e.params,{partial:!0})?!1:t?.includeSearch??!0?Ze(i.search,r.search,{partial:!0})?a.rawParams:!1:a.rawParams},this.hasNotFoundMatch=()=>this.stores.matches.get().some(e=>e.status===`notFound`||e.globalNotFound),this.getStoreConfig=t,this.update({defaultPreloadDelay:50,defaultPendingMs:1e3,defaultPendingMinMs:500,context:void 0,...e,caseSensitive:e.caseSensitive??!1,notFoundMode:e.notFoundMode??`fuzzy`,stringifySearch:e.stringifySearch??Xt,parseSearch:e.parseSearch??Yt,protocolAllowlist:e.protocolAllowlist??nt}),typeof document<`u`&&(self.__TSR_ROUTER__=this)}isShell(){return!!this.options.isShell}isPrerendering(){return!!this.options.isPrerendering}get state(){return this.stores.__store.get()}setRoutes({routesById:e,routesByPath:t,processedTree:n}){this.routesById=e,this.routesByPath=t,this.processedTree=n;let r=this.options.notFoundRoute;r&&(r.init({originalIndex:99999999999}),this.routesById[r.id]=r)}getRouteBranch(e){let t=this.routeBranchCache.get(e);return t||(t=Et(e),this.routeBranchCache.set(e,t)),t}get looseRoutesById(){return this.routesById}getParentContext(e){return e?.id?e.context??this.options.context??void 0:this.options.context??void 0}matchRoutesInternal(e,t){let n=this.getMatchedRoutes(e.pathname),{foundRoute:r,routeParams:i}=n,{matchedRoutes:a}=n,o=!1;(r?r.path!==`/`&&i[`**`]:It(e.pathname))&&(this.options.notFoundRoute?a=[...a,this.options.notFoundRoute]:o=!0);let s=o?Zn(this.options.notFoundMode,a):void 0,c=Array(a.length),l=new Map;for(let e of this.stores.matchStores.values())e.routeId&&l.set(e.routeId,e.get());for(let n=0;nthis.navigate({...t,_fromLocation:e}),buildLocation:this.buildLocation,cause:n.cause,abortController:n.abortController,preload:!!n.preload,matches:c,routeId:r.id};n.__routeContext=r.options.context(t)??void 0}n.context={...a,...n.__routeContext,...n.__beforeLoadContext}}}return c}matchRoutesLightweight(e){let{matchedRoutes:t,routeParams:n}=this.getMatchedRoutes(e.pathname),r=Re(t),i={...e.search};for(let e of t)try{Object.assign(i,qn(e.options.validateSearch,i))}catch{}let a=Re(this.stores.matchesId.get()),o=a&&this.stores.matchStores.get(a)?.get(),s=o&&o.routeId===r.id&&o.pathname===e.pathname,c;if(s)c=o.params;else{let e=Object.assign(Object.create(null),n);for(let n of t)try{Qn(n,e)}catch{}c=e}return{matchedRoutes:t,fullPath:r.fullPath,search:i,params:c}}},Wn=class extends Error{},Gn=class extends Error{};function Kn(e){return{loadedAt:0,isLoading:!1,isTransitioning:!1,status:`idle`,resolvedLocation:void 0,location:e,matches:[],statusCode:200}}function qn(e,t){if(e==null)return{};if(`~standard`in e){let n=e[`~standard`].validate(t);if(n instanceof Promise)throw new Wn(`Async validation not supported`);if(n.issues)throw new Wn(JSON.stringify(n.issues,void 0,2),{cause:n});return n.value}return`parse`in e?e.parse(t):typeof e==`function`?e(t):{}}function Jn({pathname:e,routesById:t,processedTree:n}){let r=Object.create(null),i=It(e),a,o=xt(i,n,!0);return o&&(a=o.route,Object.assign(r,o.rawParams)),{matchedRoutes:o?.branch||[t.__root__],routeParams:r,foundRoute:a}}function Yn({search:e,dest:t,destRoutes:n,_includeValidateSearch:r}){return Xn(n)(e,t,r??!1)}function Xn(e){let t={dest:null,_includeValidateSearch:!1,middlewares:[]};for(let n of e)`search`in n.options?n.options.search?.middlewares&&t.middlewares.push(...n.options.search.middlewares):(n.options.preSearchFilters||n.options.postSearchFilters)&&t.middlewares.push(({search:e,next:t})=>{let r=e;`preSearchFilters`in n.options&&n.options.preSearchFilters&&(r=n.options.preSearchFilters.reduce((e,t)=>t(e),e));let i=t(r);return`postSearchFilters`in n.options&&n.options.postSearchFilters?n.options.postSearchFilters.reduce((e,t)=>t(e),i):i}),n.options.validateSearch&&t.middlewares.push(({search:e,next:r})=>{let i=r(e);if(!t._includeValidateSearch)return i;try{return{...i,...qn(n.options.validateSearch,i)??void 0}}catch{return i}});t.middlewares.push(({search:e})=>{let n=t.dest;return n.search?n.search===!0?e:Be(n.search,e):{}});let n=(e,t,r)=>{if(e>=r.length)return t;let i=r[e];return i({search:t,next:t=>n(e+1,t,r)})};return function(e,r,i){return t.dest=r,t._includeValidateSearch=i,n(0,e,t.middlewares)}}function Zn(e,t){if(e!==`root`)for(let e=t.length-1;e>=0;e--){let n=t[e];if(n.children)return n.id}return $t}function Qn(e,t){let n=e.options.params?.parse??e.options.parseParams;if(n){let e=n(t);if(e===!1)throw Error(`Route params.parse returned false for a matched route`);Object.assign(t,e)}}function $n(){try{return sessionStorage}catch{return}}var er=`tsr-scroll-restoration-v1_3`,tr=$n();function nr(){try{return JSON.parse(tr?.getItem(`tsr-scroll-restoration-v1_3`)||`{}`)}catch{return{}}}function rr(){try{tr?.setItem(er,JSON.stringify(ir))}catch{}}var ir=nr(),ar=`data-scroll-restoration-id`,or=e=>e.state.__TSR_key||e.href;function sr(e){let t=e.getAttribute(ar);if(t)return`[${ar}="${t}"]`;let n=``,r=e,i;for(;i=r.parentNode;){let e=1,t=r;for(;t=t.previousElementSibling;)e++;let a=`${r.localName}:nth-child(${e})`;n=n?`${a} > ${n}`:a,r=i}return n}var cr=!1,lr=`window`;function ur(e){try{return typeof e==`function`?e():document.querySelector(e)}catch{}}function dr(e){let t=[];for(let n of e){if(n===lr)continue;let e=ur(n);e&&t.push(e)}return t}function fr(e,t){if((t??e.options.scrollRestoration)&&(e.isScrollRestoring=!0),e.isScrollRestorationSetup)return;e.isScrollRestorationSetup=!0,cr=!1;let n=e.options.getScrollRestorationKey||or,r=new Map,i=(e,t,n)=>{let i=r.get(e)||{};i.scrollX=t,i.scrollY=n,r.set(e,i)};history.scrollRestoration=`manual`;let a=t=>{if(!(cr||!e.isScrollRestoring)){if(t.target===document)i(lr,scrollX,scrollY);else{let e=t.target;i(e,e.scrollLeft,e.scrollTop)}}},o=t=>{if(!e.isScrollRestoring)return;let n=ir[t]||={};for(let[e,t]of r)e===lr?n[lr]=t:e.isConnected&&(n[sr(e)]=t)};document.addEventListener(`scroll`,a,!0),e.subscribe(`onBeforeLoad`,e=>{e.fromLocation&&o(n(e.fromLocation)),r.clear()}),addEventListener(`pagehide`,()=>{o(n(e.stores.resolvedLocation.get()??e.stores.location.get())),rr()}),e.subscribe(`onRendered`,t=>{let i=e.options.scrollRestorationBehavior,a=e.options.scrollToTopSelectors,o=e.resetNextScroll,s;if(r.clear(),o||(e.resetNextScroll=!0),typeof e.options.scrollRestoration==`function`&&!e.options.scrollRestoration({location:e.latestLocation}))return;let c=n(t.toLocation),l=t.fromLocation&&n(t.fromLocation);if(e.isScrollRestoring&&l&&l!==c){let e=ir[l];if(e){let t=ir[c];for(let n in e){if(n===lr){if(o)continue}else{let e=ur(n);if(!e||o&&a&&(s??=dr(a),s.includes(e)))continue}t||=ir[c]={},t[n]??=e[n]}}}cr=!0;try{let n=t.toLocation.hash,r=t.toLocation.state.__hashScrollIntoViewOptions??!0,l=!1;if(o){let o=Hn.get(t.toLocation),u=n&&r&&(o===`PUSH`||o===`REPLACE`),d=e.isScrollRestoring?ir[c]:void 0;if(d)for(let e in d){let{scrollX:t,scrollY:n}=d[e];if(e===lr){if(u)continue;scrollTo({top:n,left:t,behavior:i}),l=!0}else{let r=ur(e);r&&(r.scrollLeft=t,r.scrollTop=n)}}if(!l&&!n){let e={top:0,left:0,behavior:i};if(scrollTo(e),a){s??=dr(a);for(let t of s)t.scrollTo(e)}}}!l&&n&&r&&document.getElementById(n)?.scrollIntoView(r)}finally{cr=!1}})}var pr=`Error preloading route! ☝️`,mr=class{get to(){return this._to}get id(){return this._id}get path(){return this._path}get fullPath(){return this._fullPath}constructor(e){if(this.init=e=>{this.originalIndex=e.originalIndex;let t=this.options,n=!t?.path&&!t?.id;this.parentRoute=this.options.getParentRoute?.(),n?this._path=$t:this.parentRoute||st();let r=n?$t:t?.path;r&&r!==`/`&&(r=Ft(r));let i=t?.id||r,a=n?$t:Nt([this.parentRoute.id===`__root__`?``:this.parentRoute.id,i]);r===`__root__`&&(r=`/`),a!==`__root__`&&(a=Nt([`/`,a]));let o=a===`__root__`?`/`:Nt([this.parentRoute.fullPath,r]);this._path=r,this._id=a,this._fullPath=o,this._to=It(o)},this.addChildren=e=>this._addFileChildren(e),this._addFileChildren=e=>(Array.isArray(e)&&(this.children=e),typeof e==`object`&&e&&(this.children=Object.values(e)),this),this._addFileTypes=()=>this,this.updateLoader=e=>(Object.assign(this.options,e),this),this.update=e=>(Object.assign(this.options,e),this),this.lazy=e=>(this.lazyFn=e,this),this.redirect=e=>en({from:this.fullPath,...e}),this.options=e||{},this.isRoot=!e?.getParentRoute,e?.id&&e?.path)throw Error(`Route cannot have both an 'id' and a 'path' option.`)}},hr=class extends mr{constructor(e){super(e)}};function gr(e){let t=e.errorComponent??vr;return(0,V.jsx)(_r,{getResetKey:e.getResetKey,onCatch:e.onCatch,children:({error:n,reset:r})=>n?B.createElement(t,{error:n,reset:r}):e.children})}var _r=class extends B.Component{constructor(...e){super(...e),this.state={error:null}}static getDerivedStateFromProps(e,t){let n=e.getResetKey();return t.error&&t.resetKey!==n?{resetKey:n,error:null}:{resetKey:n}}static getDerivedStateFromError(e){return{error:e}}reset(){this.setState({error:null})}componentDidCatch(e,t){this.props.onCatch&&this.props.onCatch(e,t)}render(){return this.props.children({error:this.state.error,reset:()=>{this.reset()}})}};function vr({error:e}){let[t,n]=B.useState(!1);return(0,V.jsxs)(`div`,{style:{padding:`.5rem`,maxWidth:`100%`},children:[(0,V.jsxs)(`div`,{style:{display:`flex`,alignItems:`center`,gap:`.5rem`},children:[(0,V.jsx)(`strong`,{style:{fontSize:`1rem`},children:`Something went wrong!`}),(0,V.jsx)(`button`,{style:{appearance:`none`,fontSize:`.6em`,border:`1px solid currentColor`,padding:`.1rem .2rem`,fontWeight:`bold`,borderRadius:`.25rem`},onClick:()=>n(e=>!e),children:t?`Hide Error`:`Show Error`})]}),(0,V.jsx)(`div`,{style:{height:`.25rem`}}),t?(0,V.jsx)(`div`,{children:(0,V.jsx)(`pre`,{style:{fontSize:`.7em`,border:`1px solid red`,borderRadius:`.25rem`,padding:`.3rem`,color:`red`,overflow:`auto`},children:e.message?(0,V.jsx)(`code`,{children:e.message}):null})}):null]})}function yr({children:e,fallback:t=null}){return br()?(0,V.jsx)(B.Fragment,{children:e}):(0,V.jsx)(B.Fragment,{children:t})}function br(){return B.useSyncExternalStore(xr,()=>!0,()=>!1)}function xr(){return()=>{}}var Sr=B.createContext(null);function Cr(e){return B.useContext(Sr)}var wr=B.createContext(void 0),Tr=B.createContext(void 0),Er=(e=>(e[e.None=0]=`None`,e[e.Mutable=1]=`Mutable`,e[e.Watching=2]=`Watching`,e[e.RecursedCheck=4]=`RecursedCheck`,e[e.Recursed=8]=`Recursed`,e[e.Dirty=16]=`Dirty`,e[e.Pending=32]=`Pending`,e))(Er||{});function Dr({update:e,notify:t,unwatched:n}){return{link:r,unlink:i,propagate:a,checkDirty:o,shallowPropagate:s};function r(e,t,n){let r=t.depsTail;if(r!==void 0&&r.dep===e)return;let i=r===void 0?t.deps:r.nextDep;if(i!==void 0&&i.dep===e){i.version=n,t.depsTail=i;return}let a=e.subsTail;if(a!==void 0&&a.version===n&&a.sub===t)return;let o=t.depsTail=e.subsTail={version:n,dep:e,sub:t,prevDep:r,nextDep:i,prevSub:a,nextSub:void 0};i!==void 0&&(i.prevDep=o),r===void 0?t.deps=o:r.nextDep=o,a===void 0?e.subs=o:a.nextSub=o}function i(e,t=e.sub){let r=e.dep,i=e.prevDep,a=e.nextDep,o=e.nextSub,s=e.prevSub;return a===void 0?t.depsTail=i:a.prevDep=i,i===void 0?t.deps=a:i.nextDep=a,o===void 0?r.subsTail=s:o.prevSub=s,s===void 0?(r.subs=o)===void 0&&n(r):s.nextSub=o,a}function a(e){let n=e.nextSub,r;top:do{let i=e.sub,a=i.flags;if(a&60?a&12?a&4?!(a&48)&&c(e,i)?(i.flags=a|40,a&=1):a=0:i.flags=a&-9|32:a=0:i.flags=a|32,a&2&&t(i),a&1){let t=i.subs;if(t!==void 0){let i=(e=t).nextSub;i!==void 0&&(r={value:n,prev:r},n=i);continue}}if((e=n)!==void 0){n=e.nextSub;continue}for(;r!==void 0;)if(e=r.value,r=r.prev,e!==void 0){n=e.nextSub;continue top}break}while(!0)}function o(t,n){let r,i=0,a=!1;top:do{let o=t.dep,c=o.flags;if(n.flags&16)a=!0;else if((c&17)==17){if(e(o)){let e=o.subs;e.nextSub!==void 0&&s(e),a=!0}}else if((c&33)==33){(t.nextSub!==void 0||t.prevSub!==void 0)&&(r={value:t,prev:r}),t=o.deps,n=o,++i;continue}if(!a){let e=t.nextDep;if(e!==void 0){t=e;continue}}for(;i--;){let i=n.subs,o=i.nextSub!==void 0;if(o?(t=r.value,r=r.prev):t=i,a){if(e(n)){o&&s(i),n=t.sub;continue}a=!1}else n.flags&=-33;n=t.sub;let c=t.nextDep;if(c!==void 0){t=c;continue top}}return a}while(!0)}function s(e){do{let n=e.sub,r=n.flags;(r&48)==32&&(n.flags=r|16,(r&6)==2&&t(n))}while((e=e.nextSub)!==void 0)}function c(e,t){let n=t.depsTail;for(;n!==void 0;){if(n===e)return!0;n=n.prevDep}return!1}}function Or(e,t,n){let r=typeof e==`object`,i=r?e:void 0;return{next:(r?e.next:e)?.bind(i),error:(r?e.error:t)?.bind(i),complete:(r?e.complete:n)?.bind(i)}}var kr=[],Ar=0,{link:jr,unlink:Mr,propagate:Nr,checkDirty:Pr,shallowPropagate:Fr}=Dr({update(e){return e._update()},notify(e){kr[Lr++]=e,e.flags&=~Er.Watching},unwatched(e){e.depsTail!==void 0&&(e.depsTail=void 0,e.flags=Er.Mutable|Er.Dirty,Vr(e))}}),Ir=0,Lr=0,Rr,zr=0;function Br(e){try{++zr,e()}finally{--zr||Hr()}}function Vr(e){let t=e.depsTail,n=t===void 0?e.deps:t.nextDep;for(;n!==void 0;)n=Mr(n,e)}function Hr(){if(!(zr>0)){for(;Ir{i.get(),n.current?t.next?.(i._snapshot):n.current=!0});return{unsubscribe:()=>{r.stop()}}},_update(e){let a=Rr,o=t?.compare??Object.is;if(n)Rr=i,++Ar,i.depsTail=void 0;else if(e===void 0)return!1;n&&(i.flags=Er.Mutable|Er.RecursedCheck);try{let t=i._snapshot,a=typeof e==`function`?e(t):e===void 0&&n?r(t):e;return t===void 0||!o(t,a)?(i._snapshot=a,!0):!1}finally{Rr=a,n&&(i.flags&=~Er.RecursedCheck),Vr(i)}}};return n?(i.flags=Er.Mutable|Er.Dirty,i.get=function(){let e=i.flags;if(e&Er.Dirty||e&Er.Pending&&Pr(i.deps,i)){if(i._update()){let e=i.subs;e!==void 0&&Fr(e)}}else e&Er.Pending&&(i.flags=e&~Er.Pending);return Rr!==void 0&&jr(i,Rr,Ar),i._snapshot}):i.set=function(e){if(i._update(e)){let e=i.subs;e!==void 0&&(Nr(e),Fr(e),Hr())}},i}function Wr(e){let t=()=>{let t=Rr;Rr=n,++Ar,n.depsTail=void 0,n.flags=Er.Watching|Er.RecursedCheck;try{return e()}finally{Rr=t,n.flags&=~Er.RecursedCheck,Vr(n)}},n={deps:void 0,depsTail:void 0,subs:void 0,subsTail:void 0,flags:Er.Watching|Er.RecursedCheck,notify(){let e=this.flags;e&Er.Dirty||e&Er.Pending&&Pr(this.deps,this)?t():this.flags=Er.Watching},stop(){this.flags=Er.None,this.depsTail=void 0,Vr(this)}};return t(),n}var Gr=o((e=>{var t=f();function n(e,t){return e===t&&(e!==0||1/e==1/t)||e!==e&&t!==t}var r=typeof Object.is==`function`?Object.is:n,i=t.useState,a=t.useEffect,o=t.useLayoutEffect,s=t.useDebugValue;function c(e,t){var n=t(),r=i({inst:{value:n,getSnapshot:t}}),c=r[0].inst,u=r[1];return o(function(){c.value=n,c.getSnapshot=t,l(c)&&u({inst:c})},[e,n,t]),a(function(){return l(c)&&u({inst:c}),e(function(){l(c)&&u({inst:c})})},[e]),s(n),n}function l(e){var t=e.getSnapshot;e=e.value;try{var n=t();return!r(e,n)}catch{return!0}}function u(e,t){return t()}var d=typeof window>`u`||window.document===void 0||window.document.createElement===void 0?u:c;e.useSyncExternalStore=t.useSyncExternalStore===void 0?d:t.useSyncExternalStore})),Kr=o(((e,t)=>{t.exports=Gr()})),qr=o((e=>{var t=f(),n=Kr();function r(e,t){return e===t&&(e!==0||1/e==1/t)||e!==e&&t!==t}var i=typeof Object.is==`function`?Object.is:r,a=n.useSyncExternalStore,o=t.useRef,s=t.useEffect,c=t.useMemo,l=t.useDebugValue;e.useSyncExternalStoreWithSelector=function(e,t,n,r,u){var d=o(null);if(d.current===null){var f={hasValue:!1,value:null};d.current=f}else f=d.current;d=c(function(){function e(e){if(!a){if(a=!0,o=e,e=r(e),u!==void 0&&f.hasValue){var t=f.value;if(u(t,e))return s=t}return s=e}if(t=s,i(o,e))return t;var n=r(e);return u!==void 0&&u(t,n)?(o=e,t):(o=e,s=n)}var a=!1,o,s,c=n===void 0?null:n;return[function(){return e(t())},c===null?void 0:function(){return e(c())}]},[t,n,r,u]);var p=a(e,d[0],d[1]);return s(function(){f.hasValue=!0,f.value=p},[p]),l(p),p}})),Jr=o(((e,t)=>{t.exports=qr()}))();function Yr(e,t){return e===t}function Xr(e,t,n=Yr){let r=(0,B.useCallback)(t=>{if(!e)return()=>{};let{unsubscribe:n}=e.subscribe(t);return n},[e]),i=(0,B.useCallback)(()=>e?.get(),[e]);return(0,Jr.useSyncExternalStoreWithSelector)(r,i,i,t,n)}var Zr={get:()=>void 0,subscribe:()=>({unsubscribe:()=>{}})};function Qr(e){let t=Cr(),n=B.useContext(e.from?Tr:wr),r=e.from??n,i=r?e.from?t.stores.getRouteMatchStore(r):t.stores.matchStores.get(r):void 0,a=B.useRef(void 0);return Xr(i??Zr,n=>{if((e.shouldThrow??!0)&&!n&&st(),n===void 0)return;let r=e.select?e.select(n):n;if(e.structuralSharing??t.options.defaultStructuralSharing){let e=Ke(a.current,r);return a.current=e,e}return r})}function $r(e){return Qr({from:e.from,strict:e.strict,structuralSharing:e.structuralSharing,select:t=>e.select?e.select(t.loaderData):t.loaderData})}function ei(e){let{select:t,...n}=e;return Qr({...n,select:e=>t?t(e.loaderDeps):e.loaderDeps})}function ti(e){return Qr({from:e.from,shouldThrow:e.shouldThrow,structuralSharing:e.structuralSharing,strict:e.strict,select:t=>{let n=e.strict===!1?t.params:t._strictParams;return e.select?e.select(n):n}})}function ni(e){return Qr({from:e.from,strict:e.strict,shouldThrow:e.shouldThrow,structuralSharing:e.structuralSharing,select:t=>e.select?e.select(t.search):t.search})}function ri(e){let t=Cr();return B.useCallback(n=>t.navigate({...n,from:n.from??e?.from}),[e?.from,t])}function ii(e){let t=Cr(),n=ri(),r=B.useRef(null);return Pe(()=>{r.current!==e&&(n(e),r.current=e)},[t,e,n]),null}function ai(e){return Qr({...e,select:t=>e.select?e.select(t.context):t.context})}var oi=m();function si(e,t){let n=Cr(),r=Le(t),{activeProps:i,inactiveProps:a,activeOptions:o,to:s,preload:c,preloadDelay:l,preloadIntentProximity:u,hashScrollIntoView:d,replace:f,startTransition:p,resetScroll:m,viewTransition:h,children:g,target:_,disabled:v,style:y,className:b,onClick:x,onBlur:S,onFocus:C,onMouseEnter:w,onMouseLeave:T,onTouchStart:E,ignoreBlocker:D,params:O,search:k,hash:ee,state:te,mask:A,reloadDocument:j,unsafeRelative:M,from:ne,_fromLocation:N,...P}=e,re=br(),ie=B.useMemo(()=>e,[n,e.from,e._fromLocation,e.hash,e.to,e.search,e.params,e.state,e.mask,e.unsafeRelative]),ae=Xr(n.stores.location,e=>e,(e,t)=>e.href===t.href),F=B.useMemo(()=>{let e={_fromLocation:ae,...ie};return n.buildLocation(e)},[n,ae,ie]),oe=F.maskedLocation?F.maskedLocation.publicHref:F.publicHref,I=F.maskedLocation?F.maskedLocation.external:F.external,se=B.useMemo(()=>gi(oe,I,n.history,v),[v,I,oe,n.history]),L=B.useMemo(()=>{if(se?.external)return rt(se.href,n.protocolAllowlist)?void 0:se.href;if(!_i(s)&&typeof s==`string`&&s.indexOf(`:`)!==-1)try{return new URL(s),rt(s,n.protocolAllowlist)?void 0:s}catch{}},[s,se,n.protocolAllowlist]),ce=B.useMemo(()=>{if(L)return!1;if(o?.exact){if(!zt(ae.pathname,F.pathname,n.basepath))return!1}else{let e=Rt(ae.pathname,n.basepath),t=Rt(F.pathname,n.basepath);if(!(e.startsWith(t)&&(e.length===t.length||e[t.length]===`/`)))return!1}return(o?.includeSearch??!0)&&!Ze(ae.search,F.search,{partial:!o?.exact,ignoreUndefined:!o?.explicitUndefined})?!1:!o?.includeHash||re&&ae.hash===F.hash},[o?.exact,o?.explicitUndefined,o?.includeHash,o?.includeSearch,ae,L,re,F.hash,F.pathname,F.search,n.basepath]),le=ce?Be(i,{})??li:ci,ue=ce?ci:Be(a,{})??ci,de=[b,le.className,ue.className].filter(Boolean).join(` `),R=(y||le.style||ue.style)&&{...y,...le.style,...ue.style},[fe,pe]=B.useState(!1),me=B.useRef(!1),he=e.reloadDocument||L?!1:c??n.options.defaultPreload,ge=l??n.options.defaultPreloadDelay??0,_e=B.useCallback(()=>{n.preloadRoute({...ie,_builtLocation:F}).catch(e=>{console.warn(e),console.warn(pr)})},[n,ie,F]);Ie(r,B.useCallback(e=>{e?.isIntersecting&&_e()},[_e]),mi,{disabled:!!v||he!==`viewport`}),B.useEffect(()=>{me.current||!v&&he===`render`&&(_e(),me.current=!0)},[v,_e,he]);let ve=e=>{let t=e.currentTarget.getAttribute(`target`),r=_===void 0?t:_;if(!v&&!yi(e)&&!e.defaultPrevented&&(!r||r===`_self`)&&e.button===0){e.preventDefault(),(0,oi.flushSync)(()=>{pe(!0)});let t=n.subscribe(`onResolved`,()=>{t(),pe(!1)});n.navigate({...ie,replace:f,resetScroll:m,hashScrollIntoView:d,startTransition:p,viewTransition:h,ignoreBlocker:D})}};if(L)return{...P,ref:r,href:L,...g&&{children:g},..._&&{target:_},...v&&{disabled:v},...y&&{style:y},...b&&{className:b},...x&&{onClick:x},...S&&{onBlur:S},...C&&{onFocus:C},...w&&{onMouseEnter:w},...T&&{onMouseLeave:T},...E&&{onTouchStart:E}};let ye=e=>{if(v||he!==`intent`)return;if(!ge){_e();return}let t=e.currentTarget;if(pi.has(t))return;let n=setTimeout(()=>{pi.delete(t),_e()},ge);pi.set(t,n)},be=e=>{v||he!==`intent`||_e()},xe=e=>{if(v||!he||!ge)return;let t=e.currentTarget,n=pi.get(t);n&&(clearTimeout(n),pi.delete(t))};return{...P,...le,...ue,href:se?.href,ref:r,onClick:hi([x,ve]),onBlur:hi([S,xe]),onFocus:hi([C,ye]),onMouseEnter:hi([w,ye]),onMouseLeave:hi([T,xe]),onTouchStart:hi([E,be]),disabled:!!v,target:_,...R&&{style:R},...de&&{className:de},...v&&ui,...ce&&di,...re&&fe&&fi}}var ci={},li={className:`active`},ui={role:`link`,"aria-disabled":!0},di={"data-status":`active`,"aria-current":`page`},fi={"data-transitioning":`transitioning`},pi=new WeakMap,mi={rootMargin:`100px`},hi=e=>t=>{for(let n of e)if(n){if(t.defaultPrevented)return;n(t)}};function gi(e,t,n,r){if(!r)return t?{href:e,external:!0}:{href:n.createHref(e)||`/`,external:!1}}function _i(e){if(typeof e!=`string`)return!1;let t=e.charCodeAt(0);return t===47?e.charCodeAt(1)!==47:t===46}var vi=B.forwardRef((e,t)=>{let{_asChild:n,...r}=e,{type:i,...a}=si(r,t),o=typeof r.children==`function`?r.children({isActive:a[`data-status`]===`active`}):r.children;if(!n){let{disabled:e,...t}=a;return B.createElement(`a`,t,o)}return B.createElement(n,a,o)});function yi(e){return!!(e.metaKey||e.altKey||e.ctrlKey||e.shiftKey)}var bi=class extends mr{constructor(e){super(e),this.useMatch=e=>Qr({select:e?.select,from:this.id,structuralSharing:e?.structuralSharing}),this.useRouteContext=e=>ai({...e,from:this.id}),this.useSearch=e=>ni({select:e?.select,structuralSharing:e?.structuralSharing,from:this.id}),this.useParams=e=>ti({select:e?.select,structuralSharing:e?.structuralSharing,from:this.id}),this.useLoaderDeps=e=>ei({...e,from:this.id}),this.useLoaderData=e=>$r({...e,from:this.id}),this.useNavigate=()=>ri({from:this.fullPath}),this.Link=B.forwardRef((e,t)=>(0,V.jsx)(vi,{ref:t,from:this.fullPath,...e}))}};function xi(e){return new bi(e)}var Si=class extends hr{constructor(e){super(e),this.useMatch=e=>Qr({select:e?.select,from:this.id,structuralSharing:e?.structuralSharing}),this.useRouteContext=e=>ai({...e,from:this.id}),this.useSearch=e=>ni({select:e?.select,structuralSharing:e?.structuralSharing,from:this.id}),this.useParams=e=>ti({select:e?.select,structuralSharing:e?.structuralSharing,from:this.id}),this.useLoaderDeps=e=>ei({...e,from:this.id}),this.useLoaderData=e=>$r({...e,from:this.id}),this.useNavigate=()=>ri({from:this.fullPath}),this.Link=B.forwardRef((e,t)=>(0,V.jsx)(vi,{ref:t,from:this.fullPath,...e}))}};function Ci(e){return new Si(e)}function wi(e){let t=Cr(),n=`not-found-${Xr(t.stores.location,e=>e.pathname)}-${Xr(t.stores.status,e=>e)}`;return(0,V.jsx)(gr,{getResetKey:()=>n,onCatch:(t,n)=>{if(Gt(t))e.onCatch?.(t,n);else throw t},errorComponent:({error:t})=>{if(Gt(t))return e.fallback?.(t);throw t},children:e.children})}function Ti(){return(0,V.jsx)(`p`,{children:`Not Found`})}function Ei(e){return(0,V.jsx)(V.Fragment,{children:e.children})}function Di(e,t,n){return t.options.notFoundComponent?(0,V.jsx)(t.options.notFoundComponent,{...n}):e.options.defaultNotFoundComponent?(0,V.jsx)(e.options.defaultNotFoundComponent,{...n}):(0,V.jsx)(Ti,{})}var Oi=B.memo(function({matchId:e}){let t=Cr(),n=t.stores.matchStores.get(e);n||st();let r=Xr(t.stores.loadedAt,e=>e),i=Xr(n,e=>e);return(0,V.jsx)(ki,{router:t,matchId:e,resetKey:r,matchState:B.useMemo(()=>{let e=i.routeId,n=t.routesById[e].parentRoute?.id;return{routeId:e,ssr:i.ssr,_displayPending:i._displayPending,parentRouteId:n}},[i._displayPending,i.routeId,i.ssr,t.routesById])})});function ki({router:e,matchId:t,resetKey:n,matchState:r}){let i=e.routesById[r.routeId],a=i.options.pendingComponent??e.options.defaultPendingComponent,o=a?(0,V.jsx)(a,{}):null,s=i.options.errorComponent??e.options.defaultErrorComponent,c=i.options.onCatch??e.options.defaultOnCatch,l=i.isRoot?i.options.notFoundComponent??e.options.notFoundRoute?.options.component:i.options.notFoundComponent,u=r.ssr===!1||r.ssr===`data-only`,d=(!i.isRoot||i.options.wrapInSuspense||u)&&(i.options.wrapInSuspense??a??(i.options.errorComponent?.preload||u))?B.Suspense:Ei,f=s?gr:Ei,p=l?wi:Ei;return(0,V.jsxs)(i.isRoot?i.options.shellComponent??Ei:Ei,{children:[(0,V.jsx)(wr.Provider,{value:t,children:(0,V.jsx)(d,{fallback:o,children:(0,V.jsx)(f,{getResetKey:()=>n,errorComponent:s||vr,onCatch:(e,t)=>{if(Gt(e))throw e.routeId??=r.routeId,e;c?.(e,t)},children:(0,V.jsx)(p,{fallback:e=>{if(e.routeId??=r.routeId,!l||e.routeId&&e.routeId!==r.routeId||!e.routeId&&!i.isRoot)throw e;return B.createElement(l,e)},children:u||r._displayPending?(0,V.jsx)(yr,{fallback:o,children:(0,V.jsx)(ji,{matchId:t})}):(0,V.jsx)(ji,{matchId:t})})})})}),r.parentRouteId===`__root__`?(0,V.jsxs)(V.Fragment,{children:[(0,V.jsx)(Ai,{resetKey:n}),(e.options.scrollRestoration,null)]}):null]})}function Ai({resetKey:e}){let t=Cr(),n=B.useRef(void 0);return Pe(()=>{let e=t.latestLocation.href;(n.current===void 0||n.current!==e)&&(t.emit({type:`onRendered`,...Vn(t.stores.location.get(),t.stores.resolvedLocation.get())}),n.current=e)},[t.latestLocation.state.__TSR_key,e,t]),null}var ji=B.memo(function({matchId:e}){let t=Cr(),n=(e,n)=>t.getMatch(e.id)?._nonReactive[n]??e._nonReactive[n],r=t.stores.matchStores.get(e);r||st();let i=Xr(r,e=>e),a=i.routeId,o=t.routesById[a],s=B.useMemo(()=>{let e=(t.routesById[a].options.remountDeps??t.options.defaultRemountDeps)?.({routeId:a,loaderDeps:i.loaderDeps,params:i._strictParams,search:i._strictSearch});return e?JSON.stringify(e):void 0},[a,i.loaderDeps,i._strictParams,i._strictSearch,t.options.defaultRemountDeps,t.routesById]),c=B.useMemo(()=>{let e=o.options.component??t.options.defaultComponent;return e?(0,V.jsx)(e,{},s):(0,V.jsx)(Mi,{})},[s,o.options.component,t.options.defaultComponent]);if(i._displayPending)throw n(i,`displayPendingPromise`);if(i._forcePending)throw n(i,`minPendingPromise`);if(i.status===`pending`){let e=o.options.pendingMinMs??t.options.defaultPendingMinMs;if(e){let n=t.getMatch(i.id);if(n&&!n._nonReactive.minPendingPromise){let t=Qe();n._nonReactive.minPendingPromise=t,setTimeout(()=>{t.resolve(),n._nonReactive.minPendingPromise=void 0},e)}}throw n(i,`loadPromise`)}if(i.status===`notFound`)return Gt(i.error)||st(),Di(t,o,i.error);if(i.status===`redirected`)throw tn(i.error)||st(),n(i,`loadPromise`);if(i.status===`error`)throw i.error;return c}),Mi=B.memo(function(){let e=Cr(),t=B.useContext(wr),n,r=!1,i;{let a=t?e.stores.matchStores.get(t):void 0;[n,r]=Xr(a,e=>[e?.routeId,e?.globalNotFound??!1]),i=Xr(e.stores.matchesId,e=>e[e.findIndex(e=>e===t)+1])}let a=n?e.routesById[n]:void 0,o=e.options.defaultPendingComponent?(0,V.jsx)(e.options.defaultPendingComponent,{}):null;if(r)return a||st(),Di(e,a,void 0);if(!i)return null;let s=(0,V.jsx)(Oi,{matchId:i});return n===`__root__`?(0,V.jsx)(B.Suspense,{fallback:o,children:s}):s});function Ni(){let e=Cr(),t=B.useRef({router:e,mounted:!1}),[n,r]=B.useState(!1),i=Xr(e.stores.isLoading,e=>e),a=Xr(e.stores.hasPending,e=>e),o=Fe(i),s=i||n||a,c=Fe(s),l=i||a,u=Fe(l);return e.startTransition=e=>{r(!0),B.startTransition(()=>{e(),r(!1)})},B.useEffect(()=>{let t=e.history.subscribe(e.load),n=e.buildLocation({to:e.latestLocation.pathname,search:!0,params:!0,hash:!0,state:!0,_includeValidateSearch:!0});return It(e.latestLocation.publicHref)!==It(n.publicHref)&&e.commitLocation({...n,replace:!0}),()=>{t()}},[e,e.history]),Pe(()=>{typeof window<`u`&&e.ssr||t.current.router===e&&t.current.mounted||(t.current={router:e,mounted:!0},(async()=>{try{await e.load()}catch(e){console.error(e)}})())},[e]),Pe(()=>{o&&!i&&e.emit({type:`onLoad`,...Vn(e.stores.location.get(),e.stores.resolvedLocation.get())})},[o,e,i]),Pe(()=>{u&&!l&&e.emit({type:`onBeforeRouteMount`,...Vn(e.stores.location.get(),e.stores.resolvedLocation.get())})},[l,u,e]),Pe(()=>{if(c&&!s){let t=Vn(e.stores.location.get(),e.stores.resolvedLocation.get());e.emit({type:`onResolved`,...t}),Br(()=>{e.stores.status.set(`idle`),e.stores.resolvedLocation.set(e.stores.location.get())})}},[s,c,e]),null}function Pi(){let e=Cr(),t=e.routesById.__root__.options.pendingComponent??e.options.defaultPendingComponent,n=t?(0,V.jsx)(t,{}):null,r=(0,V.jsxs)(typeof document<`u`&&e.ssr?Ei:B.Suspense,{fallback:n,children:[(0,V.jsx)(Ni,{}),(0,V.jsx)(Fi,{})]});return e.options.InnerWrap?(0,V.jsx)(e.options.InnerWrap,{children:r}):r}function Fi(){let e=Cr(),t=Xr(e.stores.firstId,e=>e),n=Xr(e.stores.loadedAt,e=>e),r=t?(0,V.jsx)(Oi,{matchId:t}):null;return(0,V.jsx)(wr.Provider,{value:t,children:e.options.disableGlobalCatchBoundary?r:(0,V.jsx)(gr,{getResetKey:()=>n,errorComponent:vr,onCatch:void 0,children:r})})}var Ii=e=>({createMutableStore:Ur,createReadonlyStore:Ur,batch:Br}),Li=e=>new Ri(e),Ri=class extends Un{constructor(e){super(e,Ii)}};function zi({router:e,children:t,...n}){Ue(n)&&e.update({...e.options,...n,context:{...e.options.context,...n.context}});let r=(0,V.jsx)(Sr.Provider,{value:e,children:t});return e.options.Wrap?(0,V.jsx)(e.options.Wrap,{children:r}):r}function Bi({router:e,...t}){return(0,V.jsx)(zi,{router:e,...t,children:(0,V.jsx)(Pi,{})})}var Vi=g(),Hi=(0,B.createContext)(null),Ui=`loopx-pw-locale`,Wi={en:{"acceptance.connected":`Connected`,"acceptance.mapped":`Project mapped`,"acceptance.refreshed":`State refreshed`,"acceptance.inspected":`Adapter inspected`,"acceptance.recorded":`Run recorded`,"acceptance.judged":`Feedback recorded`,"acceptance.approved":`Approval recorded`,"acceptance.ready":`Controller readiness recorded`,"acceptance.attentionSource":`Current status`,"acceptance.visionSource":`Agent acceptance criteria`,"acceptance.todoSource":`Task state`,"acceptance.runSource":`Fresh run evidence`,"acceptance.title":`Acceptance observations`,"acceptance.unavailable":`Acceptance observations are unavailable. Goal completion is unknown.`,"acceptance.partial":`Partial observations only. Completed tasks and an empty gap list do not prove Goal acceptance.`,"acceptance.gaps":`Evidence still required`,"acceptance.reasonUnknown":`Reason not provided by the source`,"acceptance.unknown":`Unknown`,"acceptance.required":`Required evidence or condition`,"acceptance.observed":`Observed at`,"acceptance.noGaps":`No gaps in the available observations. Full acceptance has not been assessed.`,"acceptance.guards":`Pending gates`,"acceptance.noGuards":`No pending gates in the available observations.`,"acceptance.scope":`Decision scope`,"acceptance.next":`Next action from current status`,"acceptance.historical_progress":`Recorded progress`,"acceptance.historical":`Historical lifecycle observations do not grant permission or certify acceptance.`,"acceptance.missing":`Sources not available:`,"acceptance.truncated":`Only the first 12 observations are shown.`,"common.actions":`Actions`,"common.agent":`Agent`,"common.allMessages":`All messages`,"common.cancel":`Cancel`,"common.close":`Close`,"common.closeActionReceipt":`Close action receipt`,"common.confirm":`Confirm`,"common.export":`Export`,"common.failed":`Failed`,"common.goal":`Goal`,"common.loading":`Loading…`,"common.none":`None`,"common.off":`Off`,"common.on":`On`,"common.open":`Open`,"common.owner":`Owner`,"common.readOnly":`Read only`,"common.recently":`Just now`,"common.status":`Status`,"common.task":`Task`,"common.you":`You`,"common.waiting":`Waiting`,"composer.addImage":`Add image`,"composer.agentProgress":`Ask Agent for a progress report`,"composer.agentProgressPrompt":`Give me a progress report for this Goal: completed, running, blocked, and next steps.`,"composer.attachImageHint":`Choose, paste, or drag an image`,"composer.clarifyDefer":`Deferring a Todo requires a deterministic resume condition. Add todo_done:, pr_merged:[owner/repo]#, capacity_available:, or resume_at:.`,"composer.clarifySingleAction":`This message contains multiple operations that may change state. Describe one operation at a time so each confirmation preview can be reviewed separately.`,"composer.createGoal":`Create Goal`,"composer.createGoalDraft":`Goal draft`,"composer.createGoalDraftDescription":`Complete the draft and send it. LoopX will show a confirmation preview first.`,"composer.createGoalDraftLead":`Create a long-term Goal:`,"composer.createGoalTemplate":`Create a long-term Goal: +`+e.stack}}var be=Object.prototype.hasOwnProperty,xe=t.unstable_scheduleCallback,Se=t.unstable_cancelCallback,Ce=t.unstable_shouldYield,we=t.unstable_requestPaint,Te=t.unstable_now,Ee=t.unstable_getCurrentPriorityLevel,De=t.unstable_ImmediatePriority,z=t.unstable_UserBlockingPriority,Oe=t.unstable_NormalPriority,ke=t.unstable_LowPriority,Ae=t.unstable_IdlePriority,je=t.log,B=t.unstable_setDisableYieldValue,V=null,Me=null;function Ne(e){if(typeof je==`function`&&B(e),Me&&typeof Me.setStrictMode==`function`)try{Me.setStrictMode(V,e)}catch{}}var Pe=Math.clz32?Math.clz32:Le,Fe=Math.log,Ie=Math.LN2;function Le(e){return e>>>=0,e===0?32:31-(Fe(e)/Ie|0)|0}var Re=256,ze=262144,Be=4194304;function Ve(e){var t=e&42;if(t!==0)return t;switch(e&-e){case 1:return 1;case 2:return 2;case 4:return 4;case 8:return 8;case 16:return 16;case 32:return 32;case 64:return 64;case 128:return 128;case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:return e&261888;case 262144:case 524288:case 1048576:case 2097152:return e&3932160;case 4194304:case 8388608:case 16777216:case 33554432:return e&62914560;case 67108864:return 67108864;case 134217728:return 134217728;case 268435456:return 268435456;case 536870912:return 536870912;case 1073741824:return 0;default:return e}}function He(e,t,n){var r=e.pendingLanes;if(r===0)return 0;var i=0,a=e.suspendedLanes,o=e.pingedLanes;e=e.warmLanes;var s=r&134217727;return s===0?(s=r&~a,s===0?o===0?n||(n=r&~e,n!==0&&(i=Ve(n))):i=Ve(o):i=Ve(s)):(r=s&~a,r===0?(o&=s,o===0?n||(n=s&~e,n!==0&&(i=Ve(n))):i=Ve(o)):i=Ve(r)),i===0?0:t!==0&&t!==i&&(t&a)===0&&(a=i&-i,n=t&-t,a>=n||a===32&&n&4194048)?t:i}function Ue(e,t){return(e.pendingLanes&~(e.suspendedLanes&~e.pingedLanes)&t)===0}function We(e,t){switch(e){case 1:case 2:case 4:case 8:case 64:return t+250;case 16:case 32:case 128:case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:case 262144:case 524288:case 1048576:case 2097152:return t+5e3;case 4194304:case 8388608:case 16777216:case 33554432:return-1;case 67108864:case 134217728:case 268435456:case 536870912:case 1073741824:return-1;default:return-1}}function Ge(){var e=Be;return Be<<=1,!(Be&62914560)&&(Be=4194304),e}function Ke(e){for(var t=[],n=0;31>n;n++)t.push(e);return t}function qe(e,t){e.pendingLanes|=t,t!==268435456&&(e.suspendedLanes=0,e.pingedLanes=0,e.warmLanes=0)}function Je(e,t,n,r,i,a){var o=e.pendingLanes;e.pendingLanes=n,e.suspendedLanes=0,e.pingedLanes=0,e.warmLanes=0,e.expiredLanes&=n,e.entangledLanes&=n,e.errorRecoveryDisabledLanes&=n,e.shellSuspendCounter=0;var s=e.entanglements,c=e.expirationTimes,l=e.hiddenUpdates;for(n=o&~n;0`u`||window.document===void 0||window.document.createElement===void 0),sn=!1;if(on)try{var cn={};Object.defineProperty(cn,"passive",{get:function(){sn=!0}}),window.addEventListener(`test`,cn,cn),window.removeEventListener(`test`,cn,cn)}catch{sn=!1}var ln=null,un=null,dn=null;function fn(){if(dn)return dn;var e,t=un,n=t.length,r,i=`value`in ln?ln.value:ln.textContent,a=i.length;for(e=0;e=Wn),qn=` `,Jn=!1;function Yn(e,t){switch(e){case`keyup`:return Hn.indexOf(t.keyCode)!==-1;case`keydown`:return t.keyCode!==229;case`keypress`:case`mousedown`:case`focusout`:return!0;default:return!1}}function Xn(e){return e=e.detail,typeof e==`object`&&`data`in e?e.data:null}var Zn=!1;function Qn(e,t){switch(e){case`compositionend`:return Xn(t);case`keypress`:return t.which===32?(Jn=!0,qn):null;case`textInput`:return e=t.data,e===qn&&Jn?null:e;default:return null}}function $n(e,t){if(Zn)return e===`compositionend`||!Un&&Yn(e,t)?(e=fn(),dn=un=ln=null,Zn=!1,e):null;switch(e){case`paste`:return null;case`keypress`:if(!(t.ctrlKey||t.altKey||t.metaKey)||t.ctrlKey&&t.altKey){if(t.char&&1=t)return{node:n,offset:t-e};e=r}a:{for(;n;){if(n.nextSibling){n=n.nextSibling;break a}n=n.parentNode}n=void 0}n=xr(n)}}function Cr(e,t){return e&&t?e===t?!0:e&&e.nodeType===3?!1:t&&t.nodeType===3?Cr(e,t.parentNode):`contains`in e?e.contains(t):e.compareDocumentPosition?!!(e.compareDocumentPosition(t)&16):!1:!1}function wr(e){e=e!=null&&e.ownerDocument!=null&&e.ownerDocument.defaultView!=null?e.ownerDocument.defaultView:window;for(var t=Nt(e.document);t instanceof e.HTMLIFrameElement;){try{var n=typeof t.contentWindow.location.href==`string`}catch{n=!1}if(n)e=t.contentWindow;else break;t=Nt(e.document)}return t}function Tr(e){var t=e&&e.nodeName&&e.nodeName.toLowerCase();return t&&(t===`input`&&(e.type===`text`||e.type===`search`||e.type===`tel`||e.type===`url`||e.type===`password`)||t===`textarea`||e.contentEditable===`true`)}var Er=on&&`documentMode`in document&&11>=document.documentMode,Dr=null,Or=null,kr=null,Ar=!1;function jr(e,t,n){var r=n.window===n?n.document:n.nodeType===9?n:n.ownerDocument;Ar||Dr==null||Dr!==Nt(r)||(r=Dr,`selectionStart`in r&&Tr(r)?r={start:r.selectionStart,end:r.selectionEnd}:(r=(r.ownerDocument&&r.ownerDocument.defaultView||window).getSelection(),r={anchorNode:r.anchorNode,anchorOffset:r.anchorOffset,focusNode:r.focusNode,focusOffset:r.focusOffset}),kr&&br(kr,r)||(kr=r,r=Od(Or,`onSelect`),0>=o,i-=o,Ci=1<<32-Pe(t)+i|n<h?(g=d,d=null):g=d.sibling;var _=p(i,d,s[h],c);if(_===null){d===null&&(d=g);break}e&&d&&_.alternate===null&&t(i,d),a=o(_,a,h),u===null?l=_:u.sibling=_,u=_,d=g}if(h===s.length)return n(i,d),Mi&&Ti(i,h),l;if(d===null){for(;hg?(_=h,h=null):_=h.sibling;var y=p(a,h,v.value,l);if(y===null){h===null&&(h=_);break}e&&h&&y.alternate===null&&t(a,h),s=o(y,s,g),d===null?u=y:d.sibling=y,d=y,h=_}if(v.done)return n(a,h),Mi&&Ti(a,g),u;if(h===null){for(;!v.done;g++,v=c.next())v=f(a,v.value,l),v!==null&&(s=o(v,s,g),d===null?u=v:d.sibling=v,d=v);return Mi&&Ti(a,g),u}for(h=r(h);!v.done;g++,v=c.next())v=m(h,a,g,v.value,l),v!==null&&(e&&v.alternate!==null&&h.delete(v.key===null?g:v.key),s=o(v,s,g),d===null?u=v:d.sibling=v,d=v);return e&&h.forEach(function(e){return t(a,e)}),Mi&&Ti(a,g),u}function b(e,r,o,c){if(typeof o==`object`&&o&&o.type===y&&o.key===null&&(o=o.props.children),typeof o==`object`&&o){switch(o.$$typeof){case _:a:{for(var l=o.key;r!==null;){if(r.key===l){if(l=o.type,l===y){if(r.tag===7){n(e,r.sibling),c=a(r,o.props.children),c.return=e,e=c;break a}}else if(r.elementType===l||typeof l==`object`&&l&&l.$$typeof===O&&wa(l)===r.type){n(e,r.sibling),c=a(r,o.props),ja(c,o),c.return=e,e=c;break a}n(e,r);break}t(e,r),r=r.sibling}o.type===y?(c=ui(o.props.children,e.mode,c,o.key),c.return=e,e=c):(c=li(o.type,o.key,o.props,null,e.mode,c),ja(c,o),c.return=e,e=c)}return s(e);case v:a:{for(l=o.key;r!==null;){if(r.key===l){if(r.tag===4&&r.stateNode.containerInfo===o.containerInfo&&r.stateNode.implementation===o.implementation){n(e,r.sibling),c=a(r,o.children||[]),c.return=e,e=c;break a}n(e,r);break}t(e,r),r=r.sibling}c=pi(o,e.mode,c),c.return=e,e=c}return s(e);case O:return o=wa(o),b(e,r,o,c)}if(ne(o))return h(e,r,o,c);if(A(o)){if(l=A(o),typeof l!=`function`)throw Error(i(150));return o=l.call(o),g(e,r,o,c)}if(typeof o.then==`function`)return b(e,r,Aa(o),c);if(o.$$typeof===C)return b(e,r,$i(e,o),c);Ma(e,o)}return typeof o==`string`&&o!==``||typeof o==`number`||typeof o==`bigint`?(o=``+o,r!==null&&r.tag===6?(n(e,r.sibling),c=a(r,o),c.return=e,e=c):(n(e,r),c=di(o,e.mode,c),c.return=e,e=c),s(e)):n(e,r)}return function(e,t,n,r){try{ka=0;var i=b(e,t,n,r);return Oa=null,i}catch(t){if(t===ya||t===xa)throw t;var a=ai(29,t,null,e.mode);return a.lanes=r,a.return=e,a}}}var Pa=Na(!0),Fa=Na(!1),Ia=!1;function La(e){e.updateQueue={baseState:e.memoizedState,firstBaseUpdate:null,lastBaseUpdate:null,shared:{pending:null,lanes:0,hiddenCallbacks:null},callbacks:null}}function Ra(e,t){e=e.updateQueue,t.updateQueue===e&&(t.updateQueue={baseState:e.baseState,firstBaseUpdate:e.firstBaseUpdate,lastBaseUpdate:e.lastBaseUpdate,shared:e.shared,callbacks:null})}function za(e){return{lane:e,tag:0,payload:null,callback:null,next:null}}function Ba(e,t,n){var r=e.updateQueue;if(r===null)return null;if(r=r.shared,Vl&2){var i=r.pending;return i===null?t.next=t:(t.next=i.next,i.next=t),r.pending=t,t=ni(e),ti(e,null,n),t}return Qr(e,r,t,n),ni(e)}function Va(e,t,n){if(t=t.updateQueue,t!==null&&(t=t.shared,n&4194048)){var r=t.lanes;r&=e.pendingLanes,n|=r,t.lanes=n,Xe(e,n)}}function Ha(e,t){var n=e.updateQueue,r=e.alternate;if(r!==null&&(r=r.updateQueue,n===r)){var i=null,a=null;if(n=n.firstBaseUpdate,n!==null){do{var o={lane:n.lane,tag:n.tag,payload:n.payload,callback:null,next:null};a===null?i=a=o:a=a.next=o,n=n.next}while(n!==null);a===null?i=a=t:a=a.next=t}else i=a=t;n={baseState:r.baseState,firstBaseUpdate:i,lastBaseUpdate:a,shared:r.shared,callbacks:r.callbacks},e.updateQueue=n;return}e=n.lastBaseUpdate,e===null?n.firstBaseUpdate=t:e.next=t,n.lastBaseUpdate=t}var Ua=!1;function Wa(){if(Ua){var e=ua;if(e!==null)throw e}}function Ga(e,t,n,r){Ua=!1;var i=e.updateQueue;Ia=!1;var a=i.firstBaseUpdate,o=i.lastBaseUpdate,s=i.shared.pending;if(s!==null){i.shared.pending=null;var c=s,l=c.next;c.next=null,o===null?a=l:o.next=l,o=c;var u=e.alternate;u!==null&&(u=u.updateQueue,s=u.lastBaseUpdate,s!==o&&(s===null?u.firstBaseUpdate=l:s.next=l,u.lastBaseUpdate=c))}if(a!==null){var d=i.baseState;o=0,u=l=c=null,s=a;do{var f=s.lane&-536870913,p=f!==s.lane;if(p?(Wl&f)===f:(r&f)===f){f!==0&&f===la&&(Ua=!0),u!==null&&(u=u.next={lane:0,tag:s.tag,payload:s.payload,callback:null,next:null});a:{var m=e,g=s;f=t;var _=n;switch(g.tag){case 1:if(m=g.payload,typeof m==`function`){d=m.call(_,d,f);break a}d=m;break a;case 3:m.flags=m.flags&-65537|128;case 0:if(m=g.payload,f=typeof m==`function`?m.call(_,d,f):m,f==null)break a;d=h({},d,f);break a;case 2:Ia=!0}}f=s.callback,f!==null&&(e.flags|=64,p&&(e.flags|=8192),p=i.callbacks,p===null?i.callbacks=[f]:p.push(f))}else p={lane:f,tag:s.tag,payload:s.payload,callback:s.callback,next:null},u===null?(l=u=p,c=d):u=u.next=p,o|=f;if(s=s.next,s===null){if(s=i.shared.pending,s===null)break;p=s,s=p.next,p.next=null,i.lastBaseUpdate=p,i.shared.pending=null}}while(1);u===null&&(c=d),i.baseState=c,i.firstBaseUpdate=l,i.lastBaseUpdate=u,a===null&&(i.shared.lanes=0),Ql|=o,e.lanes=o,e.memoizedState=d}}function Ka(e,t){if(typeof e!=`function`)throw Error(i(191,e));e.call(t)}function qa(e,t){var n=e.callbacks;if(n!==null)for(e.callbacks=null,e=0;ea?a:8;var o=N.T,s={};N.T=s,Ps(e,!1,t,n);try{var c=i(),l=N.S;l!==null&&l(s,c),typeof c==`object`&&c&&typeof c.then==`function`?Ns(e,t,pa(c,r),bu(e)):Ns(e,t,r,bu(e))}catch(n){Ns(e,t,{then:function(){},status:`rejected`,reason:n},bu())}finally{P.p=a,o!==null&&s.types!==null&&(o.types=s.types),N.T=o}}function Cs(){}function ws(e,t,n,r){if(e.tag!==5)throw Error(i(476));var a=Ts(e).queue;Ss(e,a,t,re,n===null?Cs:function(){return Es(e),n(r)})}function Ts(e){var t=e.memoizedState;if(t!==null)return t;t={memoizedState:re,baseState:re,baseQueue:null,queue:{pending:null,lanes:0,dispatch:null,lastRenderedReducer:Fo,lastRenderedState:re},next:null};var n={};return t.next={memoizedState:n,baseState:n,baseQueue:null,queue:{pending:null,lanes:0,dispatch:null,lastRenderedReducer:Fo,lastRenderedState:n},next:null},e.memoizedState=t,e=e.alternate,e!==null&&(e.memoizedState=t),t}function Es(e){var t=Ts(e);t.next===null&&(t=e.alternate.memoizedState),Ns(e,t.next.queue,{},bu())}function Ds(){return H(tp)}function Os(){return Ao().memoizedState}function ks(){return Ao().memoizedState}function As(e){for(var t=e.return;t!==null;){switch(t.tag){case 24:case 3:var n=bu();e=za(n);var r=Ba(t,e,n);r!==null&&(Su(r,t,n),Va(r,t,n)),t={cache:aa()},e.payload=t;return}t=t.return}}function js(e,t,n){var r=bu();n={lane:r,revertLane:0,gesture:null,action:n,hasEagerState:!1,eagerState:null,next:null},Fs(e)?Is(t,n):(n=$r(e,t,n,r),n!==null&&(Su(n,e,r),Ls(n,t,r)))}function Ms(e,t,n){Ns(e,t,n,bu())}function Ns(e,t,n,r){var i={lane:r,revertLane:0,gesture:null,action:n,hasEagerState:!1,eagerState:null,next:null};if(Fs(e))Is(t,i);else{var a=e.alternate;if(e.lanes===0&&(a===null||a.lanes===0)&&(a=t.lastRenderedReducer,a!==null))try{var o=t.lastRenderedState,s=a(o,n);if(i.hasEagerState=!0,i.eagerState=s,yr(s,o))return Qr(e,t,i,0),Hl===null&&Zr(),!1}catch{}if(n=$r(e,t,i,r),n!==null)return Su(n,e,r),Ls(n,t,r),!0}return!1}function Ps(e,t,n,r){if(r={lane:2,revertLane:md(),gesture:null,action:r,hasEagerState:!1,eagerState:null,next:null},Fs(e)){if(t)throw Error(i(479))}else t=$r(e,n,r,2),t!==null&&Su(t,e,2)}function Fs(e){var t=e.alternate;return e===lo||t!==null&&t===lo}function Is(e,t){mo=po=!0;var n=e.pending;n===null?t.next=t:(t.next=n.next,n.next=t),e.pending=t}function Ls(e,t,n){if(n&4194048){var r=t.lanes;r&=e.pendingLanes,n|=r,t.lanes=n,Xe(e,n)}}var Rs={readContext:H,use:No,useCallback:bo,useContext:bo,useEffect:bo,useImperativeHandle:bo,useLayoutEffect:bo,useInsertionEffect:bo,useMemo:bo,useReducer:bo,useRef:bo,useState:bo,useDebugValue:bo,useDeferredValue:bo,useTransition:bo,useSyncExternalStore:bo,useId:bo,useHostTransitionStatus:bo,useFormState:bo,useActionState:bo,useOptimistic:bo,useMemoCache:bo,useCacheRefresh:bo};Rs.useEffectEvent=bo;var zs={readContext:H,use:No,useCallback:function(e,t){return ko().memoizedState=[e,t===void 0?null:t],e},useContext:H,useEffect:ls,useImperativeHandle:function(e,t,n){n=n==null?null:n.concat([e]),ss(4194308,4,hs.bind(null,t,e),n)},useLayoutEffect:function(e,t){return ss(4194308,4,e,t)},useInsertionEffect:function(e,t){ss(4,2,e,t)},useMemo:function(e,t){var n=ko();t=t===void 0?null:t;var r=e();if(ho){Ne(!0);try{e()}finally{Ne(!1)}}return n.memoizedState=[r,t],r},useReducer:function(e,t,n){var r=ko();if(n!==void 0){var i=n(t);if(ho){Ne(!0);try{n(t)}finally{Ne(!1)}}}else i=t;return r.memoizedState=r.baseState=i,e={pending:null,lanes:0,dispatch:null,lastRenderedReducer:e,lastRenderedState:i},r.queue=e,e=e.dispatch=js.bind(null,lo,e),[r.memoizedState,e]},useRef:function(e){var t=ko();return e={current:e},t.memoizedState=e},useState:function(e){e=Go(e);var t=e.queue,n=Ms.bind(null,lo,t);return t.dispatch=n,[e.memoizedState,n]},useDebugValue:_s,useDeferredValue:function(e,t){return bs(ko(),e,t)},useTransition:function(){var e=Go(!1);return e=Ss.bind(null,lo,e.queue,!0,!1),ko().memoizedState=e,[!1,e]},useSyncExternalStore:function(e,t,n){var r=lo,a=ko();if(Mi){if(n===void 0)throw Error(i(407));n=n()}else{if(n=t(),Hl===null)throw Error(i(349));Wl&127||Bo(r,t,n)}a.memoizedState=n;var o={value:n,getSnapshot:t};return a.queue=o,ls(Ho.bind(null,r,o,e),[e]),r.flags|=2048,as(9,{destroy:void 0},Vo.bind(null,r,o,n,t),null),n},useId:function(){var e=ko(),t=Hl.identifierPrefix;if(Mi){var n=wi,r=Ci;n=(r&~(1<<32-Pe(r)-1)).toString(32)+n,t=`_`+t+`R_`+n,n=go++,0<\/script>`,o=o.removeChild(o.firstChild);break;case`select`:o=typeof r.is==`string`?s.createElement(`select`,{is:r.is}):s.createElement(`select`),r.multiple?o.multiple=!0:r.size&&(o.size=r.size);break;default:o=typeof r.is==`string`?s.createElement(a,{is:r.is}):s.createElement(a)}}o[rt]=t,o[it]=r;a:for(s=t.child;s!==null;){if(s.tag===5||s.tag===6)o.appendChild(s.stateNode);else if(s.tag!==4&&s.tag!==27&&s.child!==null){s.child.return=s,s=s.child;continue}if(s===t)break a;for(;s.sibling===null;){if(s.return===null||s.return===t)break a;s=s.return}s.sibling.return=s.return,s=s.sibling}t.stateNode=o;a:switch(Ld(o,a,r),a){case`button`:case`input`:case`select`:case`textarea`:r=!!r.autoFocus;break a;case`img`:r=!0;break a;default:r=!1}r&&Nc(t)}}return Rc(t),Pc(t,t.type,e===null?null:e.memoizedProps,t.pendingProps,n),null;case 6:if(e&&t.stateNode!=null)e.memoizedProps!==r&&Nc(t);else{if(typeof r!=`string`&&t.stateNode===null)throw Error(i(166));if(e=ce.current,zi(t)){if(e=t.stateNode,n=t.memoizedProps,r=null,a=Ai,a!==null)switch(a.tag){case 27:case 5:r=a.memoizedProps}e[rt]=t,e=!!(e.nodeValue===n||r!==null&&!0===r.suppressHydrationWarning||Pd(e.nodeValue,n)),e||Ii(t,!0)}else e=Ud(e).createTextNode(r),e[rt]=t,t.stateNode=e}return Rc(t),null;case 31:if(n=t.memoizedState,e===null||e.memoizedState!==null){if(r=zi(t),n!==null){if(e===null){if(!r)throw Error(i(318));if(e=t.memoizedState,e=e===null?null:e.dehydrated,!e)throw Error(i(557));e[rt]=t}else Bi(),!(t.flags&128)&&(t.memoizedState=null),t.flags|=4;Rc(t),e=!1}else n=Vi(),e!==null&&e.memoizedState!==null&&(e.memoizedState.hydrationErrors=n),e=!0;if(!e)return t.flags&256?(ao(t),t):(ao(t),null);if(t.flags&128)throw Error(i(558))}return Rc(t),null;case 13:if(r=t.memoizedState,e===null||e.memoizedState!==null&&e.memoizedState.dehydrated!==null){if(a=zi(t),r!==null&&r.dehydrated!==null){if(e===null){if(!a)throw Error(i(318));if(a=t.memoizedState,a=a===null?null:a.dehydrated,!a)throw Error(i(317));a[rt]=t}else Bi(),!(t.flags&128)&&(t.memoizedState=null),t.flags|=4;Rc(t),a=!1}else a=Vi(),e!==null&&e.memoizedState!==null&&(e.memoizedState.hydrationErrors=a),a=!0;if(!a)return t.flags&256?(ao(t),t):(ao(t),null)}return ao(t),t.flags&128?(t.lanes=n,t):(n=r!==null,e=e!==null&&e.memoizedState!==null,n&&(r=t.child,a=null,r.alternate!==null&&r.alternate.memoizedState!==null&&r.alternate.memoizedState.cachePool!==null&&(a=r.alternate.memoizedState.cachePool.pool),o=null,r.memoizedState!==null&&r.memoizedState.cachePool!==null&&(o=r.memoizedState.cachePool.pool),o!==a&&(r.flags|=2048)),n!==e&&n&&(t.child.flags|=8192),Ic(t,t.updateQueue),Rc(t),null);case 4:return de(),e===null&&wd(t.stateNode.containerInfo),Rc(t),null;case 10:return qi(t.type),Rc(t),null;case 19:if(oe(oo),r=t.memoizedState,r===null)return Rc(t),null;if(a=!!(t.flags&128),o=r.rendering,o===null){if(a)Lc(r,!1);else{if(Zl!==0||e!==null&&e.flags&128)for(e=t.child;e!==null;){if(o=so(e),o!==null){for(t.flags|=128,Lc(r,!1),e=o.updateQueue,t.updateQueue=e,Ic(t,e),t.subtreeFlags=0,e=n,n=t.child;n!==null;)ci(n,e),n=n.sibling;return I(oo,oo.current&1|2),Mi&&Ti(t,r.treeForkCount),t.child}e=e.sibling}r.tail!==null&&Te()>cu&&(t.flags|=128,a=!0,Lc(r,!1),t.lanes=4194304)}}else{if(!a){if(e=so(o),e!==null){if(t.flags|=128,a=!0,e=e.updateQueue,t.updateQueue=e,Ic(t,e),Lc(r,!0),r.tail===null&&r.tailMode===`hidden`&&!o.alternate&&!Mi)return Rc(t),null}else 2*Te()-r.renderingStartTime>cu&&n!==536870912&&(t.flags|=128,a=!0,Lc(r,!1),t.lanes=4194304)}r.isBackwards?(o.sibling=t.child,t.child=o):(e=r.last,e===null?t.child=o:e.sibling=o,r.last=o)}return r.tail===null?(Rc(t),null):(e=r.tail,r.rendering=e,r.tail=e.sibling,r.renderingStartTime=Te(),e.sibling=null,n=oo.current,I(oo,a?n&1|2:n&1),Mi&&Ti(t,r.treeForkCount),e);case 22:case 23:return ao(t),Qa(),r=t.memoizedState!==null,e===null?r&&(t.flags|=8192):e.memoizedState!==null!==r&&(t.flags|=8192),r?n&536870912&&!(t.flags&128)&&(Rc(t),t.subtreeFlags&6&&(t.flags|=8192)):Rc(t),n=t.updateQueue,n!==null&&Ic(t,n.retryQueue),n=null,e!==null&&e.memoizedState!==null&&e.memoizedState.cachePool!==null&&(n=e.memoizedState.cachePool.pool),r=null,t.memoizedState!==null&&t.memoizedState.cachePool!==null&&(r=t.memoizedState.cachePool.pool),r!==n&&(t.flags|=2048),e!==null&&oe(ha),null;case 24:return n=null,e!==null&&(n=e.memoizedState.cache),t.memoizedState.cache!==n&&(t.flags|=2048),qi(ia),Rc(t),null;case 25:return null;case 30:return null}throw Error(i(156,t.tag))}function Bc(e,t){switch(Oi(t),t.tag){case 1:return e=t.flags,e&65536?(t.flags=e&-65537|128,t):null;case 3:return qi(ia),de(),e=t.flags,e&65536&&!(e&128)?(t.flags=e&-65537|128,t):null;case 26:case 27:case 5:return fe(t),null;case 31:if(t.memoizedState!==null){if(ao(t),t.alternate===null)throw Error(i(340));Bi()}return e=t.flags,e&65536?(t.flags=e&-65537|128,t):null;case 13:if(ao(t),e=t.memoizedState,e!==null&&e.dehydrated!==null){if(t.alternate===null)throw Error(i(340));Bi()}return e=t.flags,e&65536?(t.flags=e&-65537|128,t):null;case 19:return oe(oo),null;case 4:return de(),null;case 10:return qi(t.type),null;case 22:case 23:return ao(t),Qa(),e!==null&&oe(ha),e=t.flags,e&65536?(t.flags=e&-65537|128,t):null;case 24:return qi(ia),null;case 25:return null;default:return null}}function Vc(e,t){switch(Oi(t),t.tag){case 3:qi(ia),de();break;case 26:case 27:case 5:fe(t);break;case 4:de();break;case 31:t.memoizedState!==null&&ao(t);break;case 13:ao(t);break;case 19:oe(oo);break;case 10:qi(t.type);break;case 22:case 23:ao(t),Qa(),e!==null&&oe(ha);break;case 24:qi(ia)}}function Hc(e,t){try{var n=t.updateQueue,r=n===null?null:n.lastEffect;if(r!==null){var i=r.next;n=i;do{if((n.tag&e)===e){r=void 0;var a=n.create,o=n.inst;r=a(),o.destroy=r}n=n.next}while(n!==i)}}catch(e){Zu(t,t.return,e)}}function Uc(e,t,n){try{var r=t.updateQueue,i=r===null?null:r.lastEffect;if(i!==null){var a=i.next;r=a;do{if((r.tag&e)===e){var o=r.inst,s=o.destroy;if(s!==void 0){o.destroy=void 0,i=t;var c=n,l=s;try{l()}catch(e){Zu(i,c,e)}}}r=r.next}while(r!==a)}}catch(e){Zu(t,t.return,e)}}function Wc(e){var t=e.updateQueue;if(t!==null){var n=e.stateNode;try{qa(t,n)}catch(t){Zu(e,e.return,t)}}}function Gc(e,t,n){n.props=Ks(e.type,e.memoizedProps),n.state=e.memoizedState;try{n.componentWillUnmount()}catch(n){Zu(e,t,n)}}function Kc(e,t){try{var n=e.ref;if(n!==null){switch(e.tag){case 26:case 27:case 5:var r=e.stateNode;break;case 30:r=e.stateNode;break;default:r=e.stateNode}typeof n==`function`?e.refCleanup=n(r):n.current=r}}catch(n){Zu(e,t,n)}}function qc(e,t){var n=e.ref,r=e.refCleanup;if(n!==null){if(typeof r==`function`)try{r()}catch(n){Zu(e,t,n)}finally{e.refCleanup=null,e=e.alternate,e!=null&&(e.refCleanup=null)}else if(typeof n==`function`)try{n(null)}catch(n){Zu(e,t,n)}else n.current=null}}function Jc(e){var t=e.type,n=e.memoizedProps,r=e.stateNode;try{a:switch(t){case`button`:case`input`:case`select`:case`textarea`:n.autoFocus&&r.focus();break a;case`img`:n.src?r.src=n.src:n.srcSet&&(r.srcset=n.srcSet)}}catch(t){Zu(e,e.return,t)}}function Yc(e,t,n){try{var r=e.stateNode;Rd(r,e.type,n,t),r[it]=t}catch(t){Zu(e,e.return,t)}}function Xc(e){return e.tag===5||e.tag===3||e.tag===26||e.tag===27&&ef(e.type)||e.tag===4}function Zc(e){a:for(;;){for(;e.sibling===null;){if(e.return===null||Xc(e.return))return null;e=e.return}for(e.sibling.return=e.return,e=e.sibling;e.tag!==5&&e.tag!==6&&e.tag!==18;){if(e.tag===27&&ef(e.type)||e.flags&2||e.child===null||e.tag===4)continue a;e.child.return=e,e=e.child}if(!(e.flags&2))return e.stateNode}}function Qc(e,t,n){var r=e.tag;if(r===5||r===6)e=e.stateNode,t?(n.nodeType===9?n.body:n.nodeName===`HTML`?n.ownerDocument.body:n).insertBefore(e,t):(t=n.nodeType===9?n.body:n.nodeName===`HTML`?n.ownerDocument.body:n,t.appendChild(e),n=n._reactRootContainer,n!=null||t.onclick!==null||(t.onclick=Xt));else if(r!==4&&(r===27&&ef(e.type)&&(n=e.stateNode,t=null),e=e.child,e!==null))for(Qc(e,t,n),e=e.sibling;e!==null;)Qc(e,t,n),e=e.sibling}function $c(e,t,n){var r=e.tag;if(r===5||r===6)e=e.stateNode,t?n.insertBefore(e,t):n.appendChild(e);else if(r!==4&&(r===27&&ef(e.type)&&(n=e.stateNode),e=e.child,e!==null))for($c(e,t,n),e=e.sibling;e!==null;)$c(e,t,n),e=e.sibling}function el(e){var t=e.stateNode,n=e.memoizedProps;try{for(var r=e.type,i=t.attributes;i.length;)t.removeAttributeNode(i[0]);Ld(t,r,n),t[rt]=e,t[it]=n}catch(t){Zu(e,e.return,t)}}var tl=!1,nl=!1,rl=!1,il=typeof WeakSet==`function`?WeakSet:Set,al=null;function ol(e,t){if(e=e.containerInfo,Vd=up,e=wr(e),Tr(e)){if(`selectionStart`in e)var n={start:e.selectionStart,end:e.selectionEnd};else a:{n=(n=e.ownerDocument)&&n.defaultView||window;var r=n.getSelection&&n.getSelection();if(r&&r.rangeCount!==0){n=r.anchorNode;var a=r.anchorOffset,o=r.focusNode;r=r.focusOffset;try{n.nodeType,o.nodeType}catch{n=null;break a}var s=0,c=-1,l=-1,u=0,d=0,f=e,p=null;b:for(;;){for(var m;f!==n||a!==0&&f.nodeType!==3||(c=s+a),f!==o||r!==0&&f.nodeType!==3||(l=s+r),f.nodeType===3&&(s+=f.nodeValue.length),(m=f.firstChild)!==null;)p=f,f=m;for(;;){if(f===e)break b;if(p===n&&++u===a&&(c=s),p===o&&++d===r&&(l=s),(m=f.nextSibling)!==null)break;f=p,p=f.parentNode}f=m}n=c===-1||l===-1?null:{start:c,end:l}}else n=null}n||={start:0,end:0}}else n=null;for(Hd={focusedElem:e,selectionRange:n},up=!1,al=t;al!==null;)if(t=al,e=t.child,t.subtreeFlags&1028&&e!==null)e.return=t,al=e;else for(;al!==null;){switch(t=al,o=t.alternate,e=t.flags,t.tag){case 0:if(e&4&&(e=t.updateQueue,e=e===null?null:e.events,e!==null))for(n=0;n title`))),Ld(o,r,n),o[rt]=e,gt(o),r=o;break a;case`link`:var s=Wf(`link`,`href`,a).get(r+(n.href||``));if(s){for(var c=0;cg&&(o=g,g=h,h=o);var _=Sr(s,h),v=Sr(s,g);if(_&&v&&(p.rangeCount!==1||p.anchorNode!==_.node||p.anchorOffset!==_.offset||p.focusNode!==v.node||p.focusOffset!==v.offset)){var y=d.createRange();y.setStart(_.node,_.offset),p.removeAllRanges(),h>g?(p.addRange(y),p.extend(v.node,v.offset)):(y.setEnd(v.node,v.offset),p.addRange(y))}}}}for(d=[],p=s;p=p.parentNode;)p.nodeType===1&&d.push({element:p,left:p.scrollLeft,top:p.scrollTop});for(typeof s.focus==`function`&&s.focus(),s=0;sn?32:n,N.T=null,n=gu,gu=null;var o=fu,s=mu;if(du=0,pu=fu=null,mu=0,Vl&6)throw Error(i(331));var c=Vl;if(Vl|=4,Il(o.current),Ol(o,o.current,s,n),Vl=c,q(0,!1),Me&&typeof Me.onPostCommitFiberRoot==`function`)try{Me.onPostCommitFiberRoot(V,o)}catch{}return!0}finally{P.p=a,N.T=r,qu(e,t)}}function Xu(e,t,n){t=hi(n,t),t=Qs(e.stateNode,t,2),e=Ba(e,t,2),e!==null&&(qe(e,2),cd(e))}function Zu(e,t,n){if(e.tag===3)Xu(e,e,n);else for(;t!==null;){if(t.tag===3){Xu(t,e,n);break}if(t.tag===1){var r=t.stateNode;if(typeof t.type.getDerivedStateFromError==`function`||typeof r.componentDidCatch==`function`&&(uu===null||!uu.has(r))){e=hi(n,e),n=$s(2),r=Ba(t,n,2),r!==null&&(ec(n,r,t,e),qe(r,2),cd(r));break}}t=t.return}}function Qu(e,t,n){var r=e.pingCache;if(r===null){r=e.pingCache=new Bl;var i=new Set;r.set(t,i)}else i=r.get(t),i===void 0&&(i=new Set,r.set(t,i));i.has(n)||(Yl=!0,i.add(n),e=G.bind(null,e,t,n),t.then(e,e))}function G(e,t,n){var r=e.pingCache;r!==null&&r.delete(t),e.pingedLanes|=e.suspendedLanes&n,e.warmLanes&=~n,Hl===e&&(Wl&n)===n&&(Zl===4||Zl===3&&(Wl&62914560)===Wl&&300>Te()-ou?!(Vl&2)&&ku(e,0):eu|=n,nu===Wl&&(nu=0)),cd(e)}function $u(e,t){t===0&&(t=Ge()),e=ei(e,t),e!==null&&(qe(e,t),cd(e))}function ed(e){var t=e.memoizedState,n=0;t!==null&&(n=t.retryLane),$u(e,n)}function td(e,t){var n=0;switch(e.tag){case 31:case 13:var r=e.stateNode,a=e.memoizedState;a!==null&&(n=a.retryLane);break;case 19:r=e.stateNode;break;case 22:r=e.stateNode._retryCache;break;default:throw Error(i(314))}r!==null&&r.delete(t),$u(e,n)}function K(e,t){return xe(e,t)}var nd=null,rd=null,id=!1,ad=!1,od=!1,sd=0;function cd(e){e!==rd&&e.next===null&&(rd===null?nd=rd=e:rd=rd.next=e),ad=!0,id||(id=!0,pd())}function q(e,t){if(!od&&ad){od=!0;do for(var n=!1,r=nd;r!==null;){if(!t){if(e!==0){var i=r.pendingLanes;if(i===0)var a=0;else{var o=r.suspendedLanes,s=r.pingedLanes;a=(1<<31-Pe(42|e)+1)-1,a&=i&~(o&~s),a=a&201326741?a&201326741|1:a?a|2:0}a!==0&&(n=!0,fd(r,a))}else a=Wl,a=He(r,r===Hl?a:0,r.cancelPendingCommit!==null||r.timeoutHandle!==-1),!(a&3)||Ue(r,a)||(n=!0,fd(r,a))}r=r.next}while(n);od=!1}}function ld(){J()}function J(){ad=id=!1;var e=0;sd!==0&&Jd()&&(e=sd);for(var t=Te(),n=null,r=nd;r!==null;){var i=r.next,a=ud(r,t);a===0?(r.next=null,n===null?nd=i:n.next=i,i===null&&(rd=n)):(n=r,(e!==0||a&3)&&(ad=!0)),r=i}du!==0&&du!==5||q(e,!1),sd!==0&&(sd=0)}function ud(e,t){for(var n=e.suspendedLanes,r=e.pingedLanes,i=e.expirationTimes,a=e.pendingLanes&-62914561;0s)break;var u=c.transferSize,d=c.initiatorType;u&&zd(d)&&(c=c.responseEnd,o+=u*(c`u`?null:document;function wf(e,t,n){var r=Cf;if(r&&typeof t==`string`&&t){var i=Ft(t);i=`link[rel="`+e+`"][href="`+i+`"]`,typeof n==`string`&&(i+=`[crossorigin="`+n+`"]`),vf.has(i)||(vf.add(i),e={rel:e,crossOrigin:n,href:t},r.querySelector(i)===null&&(t=r.createElement(`link`),Ld(t,`link`,e),gt(t),r.head.appendChild(t)))}}function Tf(e){bf.D(e),wf(`dns-prefetch`,e,null)}function Ef(e,t){bf.C(e,t),wf(`preconnect`,e,t)}function Df(e,t,n){bf.L(e,t,n);var r=Cf;if(r&&e&&t){var i=`link[rel="preload"][as="`+Ft(t)+`"]`;t===`image`&&n&&n.imageSrcSet?(i+=`[imagesrcset="`+Ft(n.imageSrcSet)+`"]`,typeof n.imageSizes==`string`&&(i+=`[imagesizes="`+Ft(n.imageSizes)+`"]`)):i+=`[href="`+Ft(e)+`"]`;var a=i;switch(t){case`style`:a=Nf(e);break;case`script`:a=Lf(e)}_f.has(a)||(e=h({rel:`preload`,href:t===`image`&&n&&n.imageSrcSet?void 0:e,as:t},n),_f.set(a,e),r.querySelector(i)!==null||t===`style`&&r.querySelector(Pf(a))||t===`script`&&r.querySelector(Rf(a))||(t=r.createElement(`link`),Ld(t,`link`,e),gt(t),r.head.appendChild(t)))}}function Of(e,t){bf.m(e,t);var n=Cf;if(n&&e){var r=t&&typeof t.as==`string`?t.as:`script`,i=`link[rel="modulepreload"][as="`+Ft(r)+`"][href="`+Ft(e)+`"]`,a=i;switch(r){case`audioworklet`:case`paintworklet`:case`serviceworker`:case`sharedworker`:case`worker`:case`script`:a=Lf(e)}if(!_f.has(a)&&(e=h({rel:`modulepreload`,href:e},t),_f.set(a,e),n.querySelector(i)===null)){switch(r){case`audioworklet`:case`paintworklet`:case`serviceworker`:case`sharedworker`:case`worker`:case`script`:if(n.querySelector(Rf(a)))return}r=n.createElement(`link`),Ld(r,`link`,e),gt(r),n.head.appendChild(r)}}}function kf(e,t,n){bf.S(e,t,n);var r=Cf;if(r&&e){var i=ht(r).hoistableStyles,a=Nf(e);t||=`default`;var o=i.get(a);if(!o){var s={loading:0,preload:null};if(o=r.querySelector(Pf(a)))s.loading=5;else{e=h({rel:`stylesheet`,href:e,"data-precedence":t},n),(n=_f.get(a))&&Vf(e,n);var c=o=r.createElement(`link`);gt(c),Ld(c,`link`,e),c._p=new Promise(function(e,t){c.onload=e,c.onerror=t}),c.addEventListener(`load`,function(){s.loading|=1}),c.addEventListener(`error`,function(){s.loading|=2}),s.loading|=4,Bf(o,t,r)}o={type:`stylesheet`,instance:o,count:1,state:s},i.set(a,o)}}}function Af(e,t){bf.X(e,t);var n=Cf;if(n&&e){var r=ht(n).hoistableScripts,i=Lf(e),a=r.get(i);a||(a=n.querySelector(Rf(i)),a||(e=h({src:e,async:!0},t),(t=_f.get(i))&&Hf(e,t),a=n.createElement(`script`),gt(a),Ld(a,`link`,e),n.head.appendChild(a)),a={type:`script`,instance:a,count:1,state:null},r.set(i,a))}}function jf(e,t){bf.M(e,t);var n=Cf;if(n&&e){var r=ht(n).hoistableScripts,i=Lf(e),a=r.get(i);a||(a=n.querySelector(Rf(i)),a||(e=h({src:e,async:!0,type:`module`},t),(t=_f.get(i))&&Hf(e,t),a=n.createElement(`script`),gt(a),Ld(a,`link`,e),n.head.appendChild(a)),a={type:`script`,instance:a,count:1,state:null},r.set(i,a))}}function Mf(e,t,n,r){var a=(a=ce.current)?yf(a):null;if(!a)throw Error(i(446));switch(e){case`meta`:case`title`:return null;case`style`:return typeof n.precedence==`string`&&typeof n.href==`string`?(t=Nf(n.href),n=ht(a).hoistableStyles,r=n.get(t),r||(r={type:`style`,instance:null,count:0,state:null},n.set(t,r)),r):{type:`void`,instance:null,count:0,state:null};case`link`:if(n.rel===`stylesheet`&&typeof n.href==`string`&&typeof n.precedence==`string`){e=Nf(n.href);var o=ht(a).hoistableStyles,s=o.get(e);if(s||(a=a.ownerDocument||a,s={type:`stylesheet`,instance:null,count:0,state:{loading:0,preload:null}},o.set(e,s),(o=a.querySelector(Pf(e)))&&!o._p&&(s.instance=o,s.state.loading=5),_f.has(e)||(n={rel:`preload`,as:`style`,href:n.href,crossOrigin:n.crossOrigin,integrity:n.integrity,media:n.media,hrefLang:n.hrefLang,referrerPolicy:n.referrerPolicy},_f.set(e,n),o||If(a,e,n,s.state))),t&&r===null)throw Error(i(528,``));return s}if(t&&r!==null)throw Error(i(529,``));return null;case`script`:return t=n.async,n=n.src,typeof n==`string`&&t&&typeof t!=`function`&&typeof t!=`symbol`?(t=Lf(n),n=ht(a).hoistableScripts,r=n.get(t),r||(r={type:`script`,instance:null,count:0,state:null},n.set(t,r)),r):{type:`void`,instance:null,count:0,state:null};default:throw Error(i(444,e))}}function Nf(e){return`href="`+Ft(e)+`"`}function Pf(e){return`link[rel="stylesheet"][`+e+`]`}function Ff(e){return h({},e,{"data-precedence":e.precedence,precedence:null})}function If(e,t,n,r){e.querySelector(`link[rel="preload"][as="style"][`+t+`]`)?r.loading=1:(t=e.createElement(`link`),r.preload=t,t.addEventListener(`load`,function(){return r.loading|=1}),t.addEventListener(`error`,function(){return r.loading|=2}),Ld(t,`link`,n),gt(t),e.head.appendChild(t))}function Lf(e){return`[src="`+Ft(e)+`"]`}function Rf(e){return`script[async]`+e}function zf(e,t,n){if(t.count++,t.instance===null)switch(t.type){case`style`:var r=e.querySelector(`style[data-href~="`+Ft(n.href)+`"]`);if(r)return t.instance=r,gt(r),r;var a=h({},n,{"data-href":n.href,"data-precedence":n.precedence,href:null,precedence:null});return r=(e.ownerDocument||e).createElement(`style`),gt(r),Ld(r,`style`,a),Bf(r,n.precedence,e),t.instance=r;case`stylesheet`:a=Nf(n.href);var o=e.querySelector(Pf(a));if(o)return t.state.loading|=4,t.instance=o,gt(o),o;r=Ff(n),(a=_f.get(a))&&Vf(r,a),o=(e.ownerDocument||e).createElement(`link`),gt(o);var s=o;return s._p=new Promise(function(e,t){s.onload=e,s.onerror=t}),Ld(o,`link`,r),t.state.loading|=4,Bf(o,n.precedence,e),t.instance=o;case`script`:return o=Lf(n.src),(a=e.querySelector(Rf(o)))?(t.instance=a,gt(a),a):(r=n,(a=_f.get(o))&&(r=h({},n),Hf(r,a)),e=e.ownerDocument||e,a=e.createElement(`script`),gt(a),Ld(a,`link`,r),e.head.appendChild(a),t.instance=a);case`void`:return null;default:throw Error(i(443,t.type))}else t.type===`stylesheet`&&!(t.state.loading&4)&&(r=t.instance,t.state.loading|=4,Bf(r,n.precedence,e));return t.instance}function Bf(e,t,n){for(var r=n.querySelectorAll(`link[rel="stylesheet"][data-precedence],style[data-precedence]`),i=r.length?r[r.length-1]:null,a=i,o=0;o title`):null)}function Kf(e,t,n){if(n===1||t.itemProp!=null)return!1;switch(e){case`meta`:case`title`:return!0;case`style`:if(typeof t.precedence!=`string`||typeof t.href!=`string`||t.href===``)break;return!0;case`link`:if(typeof t.rel!=`string`||typeof t.href!=`string`||t.href===``||t.onLoad||t.onError)break;switch(t.rel){case`stylesheet`:return e=t.disabled,typeof t.precedence==`string`&&e==null;default:return!0}case`script`:if(t.async&&typeof t.async!=`function`&&typeof t.async!=`symbol`&&!t.onLoad&&!t.onError&&t.src&&typeof t.src==`string`)return!0}return!1}function qf(e){return!(e.type===`stylesheet`&&!(e.state.loading&3))}function Jf(e,t,n,r){if(n.type===`stylesheet`&&(typeof r.media!=`string`||!1!==matchMedia(r.media).matches)&&!(n.state.loading&4)){if(n.instance===null){var i=Nf(r.href),a=t.querySelector(Pf(i));if(a){t=a._p,typeof t==`object`&&t&&typeof t.then==`function`&&(e.count++,e=Zf.bind(e),t.then(e,e)),n.state.loading|=4,n.instance=a,gt(a);return}a=t.ownerDocument||t,r=Ff(r),(i=_f.get(i))&&Vf(r,i),a=a.createElement(`link`),gt(a);var o=a;o._p=new Promise(function(e,t){o.onload=e,o.onerror=t}),Ld(a,`link`,r),n.instance=a}e.stylesheets===null&&(e.stylesheets=new Map),e.stylesheets.set(n,t),(t=n.state.preload)&&!(n.state.loading&3)&&(e.count++,n=Zf.bind(e),t.addEventListener(`load`,n),t.addEventListener(`error`,n))}}var Yf=0;function Xf(e,t){return e.stylesheets&&e.count===0&&$f(e,e.stylesheets),0Yf?50:800)+t);return e.unsuspend=n,function(){e.unsuspend=null,clearTimeout(r),clearTimeout(i)}}:null}function Zf(){if(this.count--,this.count===0&&(this.imgCount===0||!this.waitingForImages)){if(this.stylesheets)$f(this,this.stylesheets);else if(this.unsuspend){var e=this.unsuspend;this.unsuspend=null,e()}}}var Qf=null;function $f(e,t){e.stylesheets=null,e.unsuspend!==null&&(e.count++,Qf=new Map,t.forEach(ep,e),Qf=null,Zf.call(e))}function ep(e,t){if(!(t.state.loading&4)){var n=Qf.get(e);if(n)var r=n.get(null);else{n=new Map,Qf.set(e,n);for(var i=e.querySelectorAll(`link[data-precedence],style[data-precedence]`),a=0;a{function n(){if(!(typeof __REACT_DEVTOOLS_GLOBAL_HOOK__>`u`||typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE!=`function`))try{__REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE(n)}catch(e){console.error(e)}}n(),t.exports=h()})),_=class{constructor(){this.listeners=new Set,this.subscribe=this.subscribe.bind(this)}subscribe(e){return this.listeners.add(e),this.onSubscribe(),()=>{this.listeners.delete(e),this.onUnsubscribe()}}hasListeners(){return this.listeners.size>0}onSubscribe(){}onUnsubscribe(){}},v=new class extends _{#e;#t;#n;constructor(){super(),this.#n=e=>{if(typeof window<`u`&&window.addEventListener){let t=()=>e();return window.addEventListener(`visibilitychange`,t,!1),()=>{window.removeEventListener(`visibilitychange`,t)}}}}onSubscribe(){this.#t||this.setEventListener(this.#n)}onUnsubscribe(){this.hasListeners()||(this.#t?.(),this.#t=void 0)}setEventListener(e){this.#n=e,this.#t?.(),this.#t=e(e=>{typeof e==`boolean`?this.setFocused(e):this.onFocus()})}setFocused(e){this.#e!==e&&(this.#e=e,this.onFocus())}onFocus(){let e=this.isFocused();this.listeners.forEach(t=>{t(e)})}isFocused(){return typeof this.#e==`boolean`?this.#e:globalThis.document?.visibilityState!==`hidden`}},y={setTimeout:(e,t)=>setTimeout(e,t),clearTimeout:e=>clearTimeout(e),setInterval:(e,t)=>setInterval(e,t),clearInterval:e=>clearInterval(e)},b=new class{#e=y;setTimeoutProvider(e){this.#e=e}setTimeout(e,t){return this.#e.setTimeout(e,t)}clearTimeout(e){this.#e.clearTimeout(e)}setInterval(e,t){return this.#e.setInterval(e,t)}clearInterval(e){this.#e.clearInterval(e)}};function x(e){setTimeout(e,0)}var S=typeof window>`u`||`Deno`in globalThis;function C(){}function w(e,t){return typeof e==`function`?e(t):e}function T(e){return typeof e==`number`&&e>=0&&e!==1/0}function E(e,t){return Math.max(e+(t||0)-Date.now(),0)}function D(e,t){return typeof e==`function`?e(t):e}function O(e,t){return typeof e==`function`?e(t):e}function k(e,t){let{type:n=`all`,exact:r,fetchStatus:i,predicate:a,queryKey:o,stale:s}=e;if(o){if(r){if(t.queryHash!==te(o,t.options))return!1}else if(!j(t.queryKey,o))return!1}if(n!==`all`){let e=t.isActive();if(n===`active`&&!e||n===`inactive`&&e)return!1}return!(typeof s==`boolean`&&t.isStale()!==s||i&&i!==t.state.fetchStatus||a&&!a(t))}function ee(e,t){let{exact:n,status:r,predicate:i,mutationKey:a}=e;if(a){if(!t.options.mutationKey)return!1;if(n){if(A(t.options.mutationKey)!==A(a))return!1}else if(!j(t.options.mutationKey,a))return!1}return!(r&&t.state.status!==r||i&&!i(t))}function te(e,t){return(t?.queryKeyHashFn||A)(e)}function A(e){return JSON.stringify(e,(e,t)=>P(t)?Object.keys(t).sort().reduce((e,n)=>(e[n]=t[n],e),{}):t)}function j(e,t){return e===t?!0:typeof e==typeof t&&e&&t&&typeof e==`object`&&typeof t==`object`?Object.keys(t).every(n=>j(e[n],t[n])):!1}var M=Object.prototype.hasOwnProperty;function ne(e,t,n=0){if(e===t)return e;if(n>500)return t;let r=N(e)&&N(t);if(!r&&!(P(e)&&P(t)))return t;let i=(r?e:Object.keys(e)).length,a=r?t:Object.keys(t),o=a.length,s=r?Array(o):{},c=0;for(let l=0;l{b.setTimeout(t,e)})}function ae(e,t,n){return typeof n.structuralSharing==`function`?n.structuralSharing(e,t):n.structuralSharing===!1?t:ne(e,t)}function F(e,t,n=0){let r=[...e,t];return n&&r.length>n?r.slice(1):r}function oe(e,t,n=0){let r=[t,...e];return n&&r.length>n?r.slice(0,-1):r}var I=Symbol();function se(e,t){return!e.queryFn&&t?.initialPromise?()=>t.initialPromise:!e.queryFn||e.queryFn===I?()=>Promise.reject(Error(`Missing queryFn: '${e.queryHash}'`)):e.queryFn}function L(e,t,n){let r=!1,i;return Object.defineProperty(e,"signal",{enumerable:!0,get:()=>(i??=t(),r?i:(r=!0,i.aborted?n():i.addEventListener(`abort`,n,{once:!0}),i))}),e}var ce=(()=>{let e=()=>S;return{isServer(){return e()},setIsServer(t){e=t}}})();function le(){let e,t,n=new Promise((n,r)=>{e=n,t=r});n.status=`pending`,n.catch(()=>{});function r(e){Object.assign(n,e),delete n.resolve,delete n.reject}return n.resolve=t=>{r({status:`fulfilled`,value:t}),e(t)},n.reject=e=>{r({status:`rejected`,reason:e}),t(e)},n}var ue=x;function de(){let e=[],t=0,n=e=>{e()},r=e=>{e()},i=ue,a=r=>{t?e.push(r):i(()=>{n(r)})},o=()=>{let t=e;e=[],t.length&&i(()=>{r(()=>{t.forEach(e=>{n(e)})})})};return{batch:e=>{let n;t++;try{n=e()}finally{t--,t||o()}return n},batchCalls:e=>(...t)=>{a(()=>{e(...t)})},schedule:a,setNotifyFunction:e=>{n=e},setBatchNotifyFunction:e=>{r=e},setScheduler:e=>{i=e}}}var R=de(),fe=new class extends _{#e=!0;#t;#n;constructor(){super(),this.#n=e=>{if(typeof window<`u`&&window.addEventListener){let t=()=>e(!0),n=()=>e(!1);return window.addEventListener(`online`,t,!1),window.addEventListener(`offline`,n,!1),()=>{window.removeEventListener(`online`,t),window.removeEventListener(`offline`,n)}}}}onSubscribe(){this.#t||this.setEventListener(this.#n)}onUnsubscribe(){this.hasListeners()||(this.#t?.(),this.#t=void 0)}setEventListener(e){this.#n=e,this.#t?.(),this.#t=e(this.setOnline.bind(this))}setOnline(e){this.#e!==e&&(this.#e=e,this.listeners.forEach(t=>{t(e)}))}isOnline(){return this.#e}};function pe(e){return Math.min(1e3*2**e,3e4)}function me(e){return(e??`online`)!==`online`||fe.isOnline()}var he=class extends Error{constructor(e){super(`CancelledError`),this.revert=e?.revert,this.silent=e?.silent}};function ge(e){let t=!1,n=0,r,i=le(),a=()=>i.status!==`pending`,o=t=>{if(!a()){let n=new he(t);f(n),e.onCancel?.(n)}},s=()=>{t=!0},c=()=>{t=!1},l=()=>v.isFocused()&&(e.networkMode===`always`||fe.isOnline())&&e.canRun(),u=()=>me(e.networkMode)&&e.canRun(),d=e=>{a()||(r?.(),i.resolve(e))},f=e=>{a()||(r?.(),i.reject(e))},p=()=>new Promise(t=>{r=e=>{(a()||l())&&t(e)},e.onPause?.()}).then(()=>{r=void 0,a()||e.onContinue?.()}),m=()=>{if(a())return;let r,i=n===0?e.initialPromise:void 0;try{r=i??e.fn()}catch(e){r=Promise.reject(e)}Promise.resolve(r).then(d).catch(r=>{if(a())return;let i=e.retry??(ce.isServer()?0:3),o=e.retryDelay??pe,s=typeof o==`function`?o(n,r):o,c=i===!0||typeof i==`number`&&nl()?void 0:p()).then(()=>{t?f(r):m()})})};return{promise:i,status:()=>i.status,cancel:o,continue:()=>(r?.(),i),cancelRetry:s,continueRetry:c,canStart:u,start:()=>(u()?m():p().then(m),i)}}var _e=class{#e;destroy(){this.clearGcTimeout()}scheduleGc(){this.clearGcTimeout(),T(this.gcTime)&&(this.#e=b.setTimeout(()=>{this.optionalRemove()},this.gcTime))}updateGcTime(e){this.gcTime=Math.max(this.gcTime||0,e??(ce.isServer()?1/0:3e5))}clearGcTimeout(){this.#e!==void 0&&(b.clearTimeout(this.#e),this.#e=void 0)}};function ve(e){return{onFetch:(t,n)=>{let r=t.options,i=t.fetchOptions?.meta?.fetchMore?.direction,a=t.state.data?.pages||[],o=t.state.data?.pageParams||[],s={pages:[],pageParams:[]},c=0,l=async()=>{let n=!1,l=e=>{L(e,()=>t.signal,()=>n=!0)},u=se(t.options,t.fetchOptions),d=async(e,r,i)=>{if(n)return Promise.reject(t.signal.reason);if(r==null&&e.pages.length)return Promise.resolve(e);let a=(()=>{let e={client:t.client,queryKey:t.queryKey,pageParam:r,direction:i?`backward`:`forward`,meta:t.options.meta};return l(e),e})(),o=await u(a),{maxPages:s}=t.options,c=i?oe:F;return{pages:c(e.pages,o,s),pageParams:c(e.pageParams,r,s)}};if(i&&a.length){let e=i===`backward`,t=e?be:ye,n={pages:a,pageParams:o};s=await d(n,t(r,n),e)}else{let t=e??a.length;do{let e=c===0?o[0]??r.initialPageParam:ye(r,s);if(c>0&&e==null)break;s=await d(s,e),c++}while(ct.options.persister?.(l,{client:t.client,queryKey:t.queryKey,meta:t.options.meta,signal:t.signal},n):l}}}function ye(e,{pages:t,pageParams:n}){let r=t.length-1;return t.length>0?e.getNextPageParam(t[r],t,n[r],n):void 0}function be(e,{pages:t,pageParams:n}){return t.length>0?e.getPreviousPageParam?.(t[0],t,n[0],n):void 0}var xe=class extends _e{#e;#t;#n;#r;#i;#a;#o;#s;constructor(e){super(),this.#s=!1,this.#o=e.defaultOptions,this.setOptions(e.options),this.observers=[],this.#i=e.client,this.#r=this.#i.getQueryCache(),this.queryKey=e.queryKey,this.queryHash=e.queryHash,this.#t=we(this.options),this.state=e.state??this.#t,this.scheduleGc()}get meta(){return this.options.meta}get queryType(){return this.#e}get promise(){return this.#a?.promise}setOptions(e){if(this.options={...this.#o,...e},e?._type&&(this.#e=e._type),this.updateGcTime(this.options.gcTime),this.state&&this.state.data===void 0){let e=we(this.options);e.data!==void 0&&(this.setState(Ce(e.data,e.dataUpdatedAt)),this.#t=e)}}optionalRemove(){!this.observers.length&&this.state.fetchStatus===`idle`&&this.#r.remove(this)}setData(e,t){let n=ae(this.state.data,e,this.options);return this.#l({data:n,type:`success`,dataUpdatedAt:t?.updatedAt,manual:t?.manual}),n}setState(e){this.#l({type:`setState`,state:e})}cancel(e){let t=this.#a?.promise;return this.#a?.cancel(e),t?t.then(C).catch(C):Promise.resolve()}destroy(){super.destroy(),this.cancel({silent:!0})}get resetState(){return this.#t}reset(){this.destroy(),this.setState(this.resetState)}isActive(){return this.observers.some(e=>O(e.options.enabled,this)!==!1)}isDisabled(){return this.getObserversCount()>0?!this.isActive():this.options.queryFn===I||!this.isFetched()}isFetched(){return this.state.dataUpdateCount+this.state.errorUpdateCount>0}isStatic(){return this.getObserversCount()>0&&this.observers.some(e=>D(e.options.staleTime,this)===`static`)}isStale(){return this.getObserversCount()>0?this.observers.some(e=>e.getCurrentResult().isStale):this.state.data===void 0||this.state.isInvalidated}isStaleByTime(e=0){return this.state.data===void 0?!0:e===`static`?!1:this.state.isInvalidated?!0:!E(this.state.dataUpdatedAt,e)}onFocus(){this.observers.find(e=>e.shouldFetchOnWindowFocus())?.refetch({cancelRefetch:!1}),this.#a?.continue()}onOnline(){this.observers.find(e=>e.shouldFetchOnReconnect())?.refetch({cancelRefetch:!1}),this.#a?.continue()}addObserver(e){this.observers.includes(e)||(this.observers.push(e),this.clearGcTimeout(),this.#r.notify({type:`observerAdded`,query:this,observer:e}))}removeObserver(e){this.observers.includes(e)&&(this.observers=this.observers.filter(t=>t!==e),this.observers.length||(this.#a&&(this.#s||this.#c()?this.#a.cancel({revert:!0}):this.#a.cancelRetry()),this.scheduleGc()),this.#r.notify({type:`observerRemoved`,query:this,observer:e}))}getObserversCount(){return this.observers.length}#c(){return this.state.fetchStatus===`paused`&&this.state.status===`pending`}invalidate(){this.state.isInvalidated||this.#l({type:`invalidate`})}async fetch(e,t){if(this.state.fetchStatus!==`idle`&&this.#a?.status()!==`rejected`){if(this.state.data!==void 0&&t?.cancelRefetch)this.cancel({silent:!0});else if(this.#a)return this.#a.continueRetry(),this.#a.promise}if(e&&this.setOptions(e),!this.options.queryFn){let e=this.observers.find(e=>e.options.queryFn);e&&this.setOptions(e.options)}let n=new AbortController,r=e=>{Object.defineProperty(e,"signal",{enumerable:!0,get:()=>(this.#s=!0,n.signal)})},i=()=>{let e=se(this.options,t),n=(()=>{let e={client:this.#i,queryKey:this.queryKey,meta:this.meta};return r(e),e})();return this.#s=!1,this.options.persister?this.options.persister(e,n,this):e(n)},a=(()=>{let e={fetchOptions:t,options:this.options,queryKey:this.queryKey,client:this.#i,state:this.state,fetchFn:i};return r(e),e})();(this.#e===`infinite`?ve(this.options.pages):this.options.behavior)?.onFetch(a,this),this.#n=this.state,(this.state.fetchStatus===`idle`||this.state.fetchMeta!==a.fetchOptions?.meta)&&this.#l({type:`fetch`,meta:a.fetchOptions?.meta}),this.#a=ge({initialPromise:t?.initialPromise,fn:a.fetchFn,onCancel:e=>{e instanceof he&&e.revert&&this.setState({...this.#n,fetchStatus:`idle`}),n.abort()},onFail:(e,t)=>{this.#l({type:`failed`,failureCount:e,error:t})},onPause:()=>{this.#l({type:`pause`})},onContinue:()=>{this.#l({type:`continue`})},retry:a.options.retry,retryDelay:a.options.retryDelay,networkMode:a.options.networkMode,canRun:()=>!0});try{let e=await this.#a.start();if(e===void 0)throw Error(`${this.queryHash} data is undefined`);return this.setData(e),this.#r.config.onSuccess?.(e,this),this.#r.config.onSettled?.(e,this.state.error,this),e}catch(e){if(e instanceof he){if(e.silent)return this.#a.promise;if(e.revert){if(this.state.data===void 0)throw e;return this.state.data}}throw this.#l({type:`error`,error:e}),this.#r.config.onError?.(e,this),this.#r.config.onSettled?.(this.state.data,e,this),e}finally{this.scheduleGc()}}#l(e){let t=t=>{switch(e.type){case`failed`:return{...t,fetchFailureCount:e.failureCount,fetchFailureReason:e.error};case`pause`:return{...t,fetchStatus:`paused`};case`continue`:return{...t,fetchStatus:`fetching`};case`fetch`:return{...t,...Se(t.data,this.options),fetchMeta:e.meta??null};case`success`:let n={...t,...Ce(e.data,e.dataUpdatedAt),dataUpdateCount:t.dataUpdateCount+1,...!e.manual&&{fetchStatus:`idle`,fetchFailureCount:0,fetchFailureReason:null}};return this.#n=e.manual?n:void 0,n;case`error`:let r=e.error;return{...t,error:r,errorUpdateCount:t.errorUpdateCount+1,errorUpdatedAt:Date.now(),fetchFailureCount:t.fetchFailureCount+1,fetchFailureReason:r,fetchStatus:`idle`,status:`error`,isInvalidated:!0};case`invalidate`:return{...t,isInvalidated:!0};case`setState`:return{...t,...e.state}}};this.state=t(this.state),R.batch(()=>{this.observers.forEach(e=>{e.onQueryUpdate()}),this.#r.notify({query:this,type:`updated`,action:e})})}};function Se(e,t){return{fetchFailureCount:0,fetchFailureReason:null,fetchStatus:me(t.networkMode)?`fetching`:`paused`,...e===void 0&&{error:null,status:`pending`}}}function Ce(e,t){return{data:e,dataUpdatedAt:t??Date.now(),error:null,isInvalidated:!1,status:`success`}}function we(e){let t=typeof e.initialData==`function`?e.initialData():e.initialData,n=t!==void 0,r=n?typeof e.initialDataUpdatedAt==`function`?e.initialDataUpdatedAt():e.initialDataUpdatedAt:0;return{data:t,dataUpdateCount:0,dataUpdatedAt:n?r??Date.now():0,error:null,errorUpdateCount:0,errorUpdatedAt:0,fetchFailureCount:0,fetchFailureReason:null,fetchMeta:null,isInvalidated:!1,status:n?`success`:`pending`,fetchStatus:`idle`}}var Te=class extends _e{#e;#t;#n;#r;constructor(e){super(),this.#e=e.client,this.mutationId=e.mutationId,this.#n=e.mutationCache,this.#t=[],this.state=e.state||Ee(),this.setOptions(e.options),this.scheduleGc()}setOptions(e){this.options=e,this.updateGcTime(this.options.gcTime)}get meta(){return this.options.meta}addObserver(e){this.#t.includes(e)||(this.#t.push(e),this.clearGcTimeout(),this.#n.notify({type:`observerAdded`,mutation:this,observer:e}))}removeObserver(e){this.#t=this.#t.filter(t=>t!==e),this.scheduleGc(),this.#n.notify({type:`observerRemoved`,mutation:this,observer:e})}optionalRemove(){this.#t.length||(this.state.status===`pending`?this.scheduleGc():this.#n.remove(this))}continue(){return this.#r?.continue()??this.execute(this.state.variables)}async execute(e){let t=()=>{this.#i({type:`continue`})},n={client:this.#e,meta:this.options.meta,mutationKey:this.options.mutationKey};this.#r=ge({fn:()=>this.options.mutationFn?this.options.mutationFn(e,n):Promise.reject(Error(`No mutationFn found`)),onFail:(e,t)=>{this.#i({type:`failed`,failureCount:e,error:t})},onPause:()=>{this.#i({type:`pause`})},onContinue:t,retry:this.options.retry??0,retryDelay:this.options.retryDelay,networkMode:this.options.networkMode,canRun:()=>this.#n.canRun(this)});let r=this.state.status===`pending`,i=!this.#r.canStart();try{if(r)t();else{this.#i({type:`pending`,variables:e,isPaused:i}),this.#n.config.onMutate&&await this.#n.config.onMutate(e,this,n);let t=await this.options.onMutate?.(e,n);t!==this.state.context&&this.#i({type:`pending`,context:t,variables:e,isPaused:i})}let a=await this.#r.start();return await this.#n.config.onSuccess?.(a,e,this.state.context,this,n),await this.options.onSuccess?.(a,e,this.state.context,n),await this.#n.config.onSettled?.(a,null,this.state.variables,this.state.context,this,n),await this.options.onSettled?.(a,null,e,this.state.context,n),this.#i({type:`success`,data:a}),a}catch(t){try{await this.#n.config.onError?.(t,e,this.state.context,this,n)}catch(e){Promise.reject(e)}try{await this.options.onError?.(t,e,this.state.context,n)}catch(e){Promise.reject(e)}try{await this.#n.config.onSettled?.(void 0,t,this.state.variables,this.state.context,this,n)}catch(e){Promise.reject(e)}try{await this.options.onSettled?.(void 0,t,e,this.state.context,n)}catch(e){Promise.reject(e)}throw this.#i({type:`error`,error:t}),t}finally{this.#n.runNext(this)}}#i(e){let t=t=>{switch(e.type){case`failed`:return{...t,failureCount:e.failureCount,failureReason:e.error};case`pause`:return{...t,isPaused:!0};case`continue`:return{...t,isPaused:!1};case`pending`:return{...t,context:e.context,data:void 0,failureCount:0,failureReason:null,error:null,isPaused:e.isPaused,status:`pending`,variables:e.variables,submittedAt:Date.now()};case`success`:return{...t,data:e.data,failureCount:0,failureReason:null,error:null,status:`success`,isPaused:!1};case`error`:return{...t,data:void 0,error:e.error,failureCount:t.failureCount+1,failureReason:e.error,isPaused:!1,status:`error`}}};this.state=t(this.state),R.batch(()=>{this.#t.forEach(t=>{t.onMutationUpdate(e)}),this.#n.notify({mutation:this,type:`updated`,action:e})})}};function Ee(){return{context:void 0,data:void 0,error:null,failureCount:0,failureReason:null,isPaused:!1,status:`idle`,variables:void 0,submittedAt:0}}var De=class extends _{constructor(e={}){super(),this.config=e,this.#e=new Set,this.#t=new Map,this.#n=0}#e;#t;#n;build(e,t,n){let r=new Te({client:e,mutationCache:this,mutationId:++this.#n,options:e.defaultMutationOptions(t),state:n});return this.add(r),r}add(e){this.#e.add(e);let t=z(e);if(typeof t==`string`){let n=this.#t.get(t);n?n.push(e):this.#t.set(t,[e])}this.notify({type:`added`,mutation:e})}remove(e){if(this.#e.delete(e)){let t=z(e);if(typeof t==`string`){let n=this.#t.get(t);if(n){if(n.length>1){let t=n.indexOf(e);t!==-1&&n.splice(t,1)}else n[0]===e&&this.#t.delete(t)}}}this.notify({type:`removed`,mutation:e})}canRun(e){let t=z(e);if(typeof t==`string`){let n=this.#t.get(t)?.find(e=>e.state.status===`pending`);return!n||n===e}return!0}runNext(e){let t=z(e);return typeof t==`string`?(this.#t.get(t)?.find(t=>t!==e&&t.state.isPaused))?.continue()??Promise.resolve():Promise.resolve()}clear(){R.batch(()=>{this.#e.forEach(e=>{this.notify({type:`removed`,mutation:e})}),this.#e.clear(),this.#t.clear()})}getAll(){return Array.from(this.#e)}find(e){let t={exact:!0,...e};return this.getAll().find(e=>ee(t,e))}findAll(e={}){return this.getAll().filter(t=>ee(e,t))}notify(e){R.batch(()=>{this.listeners.forEach(t=>{t(e)})})}resumePausedMutations(){let e=this.getAll().filter(e=>e.state.isPaused);return R.batch(()=>Promise.all(e.map(e=>e.continue().catch(C))))}};function z(e){return e.options.scope?.id}var Oe=class extends _{constructor(e={}){super(),this.config=e,this.#e=new Map}#e;build(e,t,n){let r=t.queryKey,i=t.queryHash??te(r,t),a=this.get(i);return a||(a=new xe({client:e,queryKey:r,queryHash:i,options:e.defaultQueryOptions(t),state:n,defaultOptions:e.getQueryDefaults(r)}),this.add(a)),a}add(e){this.#e.has(e.queryHash)||(this.#e.set(e.queryHash,e),this.notify({type:`added`,query:e}))}remove(e){let t=this.#e.get(e.queryHash);t&&(e.destroy(),t===e&&this.#e.delete(e.queryHash),this.notify({type:`removed`,query:e}))}clear(){R.batch(()=>{this.getAll().forEach(e=>{this.remove(e)})})}get(e){return this.#e.get(e)}getAll(){return[...this.#e.values()]}find(e){let t={exact:!0,...e};return this.getAll().find(e=>k(t,e))}findAll(e={}){let t=this.getAll();return Object.keys(e).length>0?t.filter(t=>k(e,t)):t}notify(e){R.batch(()=>{this.listeners.forEach(t=>{t(e)})})}onFocus(){R.batch(()=>{this.getAll().forEach(e=>{e.onFocus()})})}onOnline(){R.batch(()=>{this.getAll().forEach(e=>{e.onOnline()})})}},ke=class{#e;#t;#n;#r;#i;#a;#o;#s;constructor(e={}){this.#e=e.queryCache||new Oe,this.#t=e.mutationCache||new De,this.#n=e.defaultOptions||{},this.#r=new Map,this.#i=new Map,this.#a=0}mount(){this.#a++,this.#a===1&&(this.#o=v.subscribe(async e=>{e&&(await this.resumePausedMutations(),this.#e.onFocus())}),this.#s=fe.subscribe(async e=>{e&&(await this.resumePausedMutations(),this.#e.onOnline())}))}unmount(){this.#a--,this.#a===0&&(this.#o?.(),this.#o=void 0,this.#s?.(),this.#s=void 0)}isFetching(e){return this.#e.findAll({...e,fetchStatus:`fetching`}).length}isMutating(e){return this.#t.findAll({...e,status:`pending`}).length}getQueryData(e){let t=this.defaultQueryOptions({queryKey:e});return this.#e.get(t.queryHash)?.state.data}ensureQueryData(e){let t=this.defaultQueryOptions(e),n=this.#e.build(this,t),r=n.state.data;return r===void 0?this.fetchQuery(e):(e.revalidateIfStale&&n.isStaleByTime(D(t.staleTime,n))&&this.prefetchQuery(t),Promise.resolve(r))}getQueriesData(e){return this.#e.findAll(e).map(({queryKey:e,state:t})=>[e,t.data])}setQueryData(e,t,n){let r=this.defaultQueryOptions({queryKey:e}),i=this.#e.get(r.queryHash)?.state.data,a=w(t,i);if(a!==void 0)return this.#e.build(this,r).setData(a,{...n,manual:!0})}setQueriesData(e,t,n){return R.batch(()=>this.#e.findAll(e).map(({queryKey:e})=>[e,this.setQueryData(e,t,n)]))}getQueryState(e){let t=this.defaultQueryOptions({queryKey:e});return this.#e.get(t.queryHash)?.state}removeQueries(e){let t=this.#e;R.batch(()=>{t.findAll(e).forEach(e=>{t.remove(e)})})}resetQueries(e,t){let n=this.#e;return R.batch(()=>(n.findAll(e).forEach(e=>{e.reset()}),this.refetchQueries({type:`active`,...e},t)))}cancelQueries(e,t={}){let n={revert:!0,...t},r=R.batch(()=>this.#e.findAll(e).map(e=>e.cancel(n)));return Promise.all(r).then(C).catch(C)}invalidateQueries(e,t={}){return R.batch(()=>(this.#e.findAll(e).forEach(e=>{e.invalidate()}),e?.refetchType===`none`?Promise.resolve():this.refetchQueries({...e,type:e?.refetchType??e?.type??`active`},t)))}refetchQueries(e,t={}){let n={...t,cancelRefetch:t.cancelRefetch??!0},r=R.batch(()=>this.#e.findAll(e).filter(e=>!e.isDisabled()&&!e.isStatic()).map(e=>{let t=e.fetch(void 0,n);return n.throwOnError||(t=t.catch(C)),e.state.fetchStatus===`paused`?Promise.resolve():t}));return Promise.all(r).then(C)}fetchQuery(e){let t=this.defaultQueryOptions(e);t.retry===void 0&&(t.retry=!1);let n=this.#e.build(this,t);return n.isStaleByTime(D(t.staleTime,n))?n.fetch(t):Promise.resolve(n.state.data)}prefetchQuery(e){return this.fetchQuery(e).then(C).catch(C)}fetchInfiniteQuery(e){return e._type=`infinite`,this.fetchQuery(e)}prefetchInfiniteQuery(e){return this.fetchInfiniteQuery(e).then(C).catch(C)}ensureInfiniteQueryData(e){return e._type=`infinite`,this.ensureQueryData(e)}resumePausedMutations(){return fe.isOnline()?this.#t.resumePausedMutations():Promise.resolve()}getQueryCache(){return this.#e}getMutationCache(){return this.#t}getDefaultOptions(){return this.#n}setDefaultOptions(e){this.#n=e}setQueryDefaults(e,t){this.#r.set(A(e),{queryKey:e,defaultOptions:t})}getQueryDefaults(e){let t=[...this.#r.values()],n={};return t.forEach(t=>{j(e,t.queryKey)&&Object.assign(n,t.defaultOptions)}),n}setMutationDefaults(e,t){this.#i.set(A(e),{mutationKey:e,defaultOptions:t})}getMutationDefaults(e){let t=[...this.#i.values()],n={};return t.forEach(t=>{j(e,t.mutationKey)&&Object.assign(n,t.defaultOptions)}),n}defaultQueryOptions(e){if(e._defaulted)return e;let t={...this.#n.queries,...this.getQueryDefaults(e.queryKey),...e,_defaulted:!0};return t.queryHash||=te(t.queryKey,t),t.refetchOnReconnect===void 0&&(t.refetchOnReconnect=t.networkMode!==`always`),t.throwOnError===void 0&&(t.throwOnError=!!t.suspense),!t.networkMode&&t.persister&&(t.networkMode=`offlineFirst`),t.queryFn===I&&(t.enabled=!1),t}defaultMutationOptions(e){return e?._defaulted?e:{...this.#n.mutations,...e?.mutationKey&&this.getMutationDefaults(e.mutationKey),...e,_defaulted:!0}}clear(){this.#e.clear(),this.#t.clear()}},Ae=o((e=>{var t=Symbol.for(`react.transitional.element`),n=Symbol.for(`react.fragment`);function r(e,n,r){var i=null;if(r!==void 0&&(i=``+r),n.key!==void 0&&(i=``+n.key),`key`in n)for(var a in r={},n)a!==`key`&&(r[a]=n[a]);else r=n;return n=r.ref,{$$typeof:t,type:e,key:i,ref:n===void 0?null:n,props:r}}e.Fragment=n,e.jsx=r,e.jsxs=r})),je=o(((e,t)=>{t.exports=Ae()})),B=c(f(),1),V=je(),Me=B.createContext(void 0),Ne=({client:e,children:t})=>(B.useEffect(()=>(e.mount(),()=>{e.unmount()}),[e]),(0,V.jsx)(Me.Provider,{value:e,children:t})),Pe=typeof window<`u`?B.useLayoutEffect:B.useEffect;function Fe(e){let t=B.useRef({value:e,prev:null}),n=t.current.value;return e!==n&&(t.current={value:e,prev:n}),t.current.prev}function Ie(e,t,n={},r={}){B.useEffect(()=>{if(!e.current||r.disabled||typeof IntersectionObserver!=`function`)return;let i=new IntersectionObserver(([e])=>{t(e)},n);return i.observe(e.current),()=>{i.disconnect()}},[t,n,r.disabled,e])}function Le(e){let t=B.useRef(null);return B.useImperativeHandle(e,()=>t.current,[]),t}function Re(e){return e[e.length-1]}function ze(e){return typeof e==`function`}function Be(e,t){return ze(e)?e(t):e}var Ve=Object.prototype.hasOwnProperty,He=Object.prototype.propertyIsEnumerable;function Ue(e){for(let t in e)if(Ve.call(e,t))return!0;return!1}var We=()=>Object.create(null),Ge=(e,t)=>Ke(e,t,We);function Ke(e,t,n=()=>({}),r=0){if(e===t)return e;if(r>500)return t;let i=t,a=Xe(e)&&Xe(i);if(!a&&!(Je(e)&&Je(i)))return i;let o=a?e:qe(e);if(!o)return i;let s=a?i:qe(i);if(!s)return i;let c=o.length,l=s.length,u=a?Array(l):n(),d=0;for(let t=0;ti||!Ze(e[o],t[o],n)))return!1;return i===a}return!1}function Qe(e){let t,n,r=new Promise((e,r)=>{t=e,n=r});return r.status=`pending`,r.resolve=n=>{r.status=`resolved`,r.value=n,t(n),e?.(n)},r.reject=e=>{r.status=`rejected`,n(e)},r}function $e(e){return!!(e&&typeof e==`object`&&typeof e.then==`function`)}function et(e){return e.replace(/[\x00-\x1f\x7f]/g,``)}function tt(e){let t;try{t=decodeURI(e)}catch{t=e.replaceAll(/%[0-9A-F]{2}/gi,e=>{try{return decodeURI(e)}catch{return e}})}return et(t)}var nt=[`http:`,`https:`,`mailto:`,`tel:`];function rt(e,t){if(!e)return!1;try{let n=new URL(e);return!t.has(n.protocol)}catch{return!1}}function it(e){if(!e||!/[%\\\x00-\x1f\x7f]/.test(e)&&!e.startsWith(`//`))return{path:e,handledProtocolRelativeURL:!1};let t=/%25|%5C/gi,n=0,r=``,i;for(;(i=t.exec(e))!==null;)r+=tt(e.slice(n,i.index))+i[0],n=t.lastIndex;r+=tt(n?e.slice(n):e);let a=!1;return r.startsWith(`//`)&&(a=!0,r=`/`+r.replace(/^\/+/,``)),{path:r,handledProtocolRelativeURL:a}}function at(e){return/\s|[^\u0000-\u007F]/.test(e)?e.replace(/\s|[^\u0000-\u007F]/gu,encodeURIComponent):e}function ot(e,t){if(e===t)return!0;if(e.length!==t.length)return!1;for(let n=0;n{e.next&&(e.prev?(e.prev.next=e.next,e.next.prev=e.prev,e.next=void 0,r&&(r.next=e,e.prev=r)):(e.next.prev=void 0,n=e.next,e.next=void 0,r&&(e.prev=r,r.next=e)),r=e)};return{get(e){let n=t.get(e);if(n)return i(n),n.value},set(a,o){if(t.size>=e&&n){let e=n;t.delete(e.key),e.next&&(n=e.next,e.next.prev=void 0),e===r&&(r=void 0)}let s=t.get(a);if(s)s.value=o,i(s);else{let e={key:a,value:o,prev:r};r&&(r.next=e),r=e,n||=e,t.set(a,e)}},clear(){t.clear(),n=void 0,r=void 0}}}var lt=4,ut=5;function dt(e){let t=e.indexOf(`{`);if(t===-1)return null;let n=e.indexOf(`}`,t);return n===-1||t+1>=e.length?null:[t,n]}function ft(e,t,n=new Uint16Array(6)){let r=e.indexOf(`/`,t),i=r===-1?e.length:r,a=e.substring(t,i);if(!a||!a.includes(`$`))return n[0]=0,n[1]=t,n[2]=t,n[3]=i,n[4]=i,n[5]=i,n;if(a===`$`){let r=e.length;return n[0]=2,n[1]=t,n[2]=t,n[3]=r,n[4]=r,n[5]=r,n}if(a.charCodeAt(0)===36)return n[0]=1,n[1]=t,n[2]=t+1,n[3]=i,n[4]=i,n[5]=i,n;let o=dt(a);if(o){let[r,s]=o,c=a.charCodeAt(r+1);if(c===45){if(r+2!e.parse&&e.caseSensitive===f&&e.prefix===p&&e.suffix===m);if(h)o=h;else{let e=_t(1,n.fullPath??n.from,f,p,m);o=e,e.depth=a,e.parent=i,i.dynamic??=[],i.dynamic.push(e)}break}case 3:{let t=r.substring(u,e[1]),s=r.substring(e[4],d),f=c&&!!(t||s),p=t?f?t:t.toLowerCase():void 0,m=s?f?s:s.toLowerCase():void 0,h=!l&&i.optional?.find(e=>!e.parse&&e.caseSensitive===f&&e.prefix===p&&e.suffix===m);if(h)o=h;else{let e=_t(3,n.fullPath??n.from,f,p,m);o=e,e.parent=i,e.depth=a,i.optional??=[],i.optional.push(e)}break}case 2:{let t=r.substring(u,e[1]),s=r.substring(e[4],d),l=c&&!!(t||s),f=t?l?t:t.toLowerCase():void 0,p=s?l?s:s.toLowerCase():void 0,m=_t(2,n.fullPath??n.from,l,f,p);o=m,m.parent=i,m.depth=a,i.wildcard??=[],i.wildcard.push(m)}}i=o}if(l&&n.children&&!n.isRoot&&n.id&&n.id.charCodeAt(n.id.lastIndexOf(`/`)+1)===95){let e=gt(n.fullPath??n.from);e.kind=ut,e.parent=i,a++,e.depth=a,i.pathless??=[],i.pathless.push(e),i=e}let u=(n.path||!n.children)&&!n.isRoot;if(u&&r.endsWith(`/`)){let e=gt(n.fullPath??n.from);e.kind=lt,e.parent=i,a++,e.depth=a,i.index=e,i=e}i.parse=l??null,i.priority=n.options?.params?.priority??0,u&&!i.route&&(i.route=n,i.fullPath=n.fullPath??n.from)}if(n.children)for(let r of n.children)pt(e,t,r,s,i,a,o)}function mt(e,t){if(e.parse&&!t.parse)return-1;if(!e.parse&&t.parse)return 1;if(e.parse&&t.parse&&(e.priority||t.priority))return t.priority-e.priority;if(e.prefix&&t.prefix&&e.prefix!==t.prefix){if(e.prefix.startsWith(t.prefix))return-1;if(t.prefix.startsWith(e.prefix))return 1}if(e.suffix&&t.suffix&&e.suffix!==t.suffix){if(e.suffix.endsWith(t.suffix))return-1;if(t.suffix.endsWith(e.suffix))return 1}return e.prefix&&!t.prefix?-1:!e.prefix&&t.prefix?1:e.suffix&&!t.suffix?-1:!e.suffix&&t.suffix?1:e.caseSensitive&&!t.caseSensitive?-1:!e.caseSensitive&&t.caseSensitive?1:0}function ht(e){if(e.pathless)for(let t of e.pathless)ht(t);if(e.static)for(let t of e.static.values())ht(t);if(e.staticInsensitive)for(let t of e.staticInsensitive.values())ht(t);if(e.dynamic?.length){e.dynamic.sort(mt);for(let t of e.dynamic)ht(t)}if(e.optional?.length){e.optional.sort(mt);for(let t of e.optional)ht(t)}if(e.wildcard?.length){e.wildcard.sort(mt);for(let t of e.wildcard)ht(t)}}function gt(e){return{kind:0,depth:0,pathless:null,index:null,static:null,staticInsensitive:null,dynamic:null,optional:null,wildcard:null,route:null,fullPath:e,parent:null,parse:null,priority:0}}function _t(e,t,n,r,i){return{kind:e,depth:0,pathless:null,index:null,static:null,staticInsensitive:null,dynamic:null,optional:null,wildcard:null,route:null,fullPath:t,parent:null,parse:null,priority:0,caseSensitive:n,prefix:r,suffix:i}}function vt(e,t){let n=gt(`/`),r=new Uint16Array(6);for(let t of e)pt(!1,r,t,1,n,0);ht(n),t.masksTree=n,t.flatCache=ct(1e3)}function yt(e,t){e||=`/`;let n=t.flatCache.get(e);if(n)return n;let r=wt(e,t.masksTree);return t.flatCache.set(e,r),r}function bt(e,t,n,r,i){e||=`/`,r||=`/`;let a=t?`case\0${e}`:e,o=i.singleCache.get(a);return o||(o=gt(`/`),pt(t,new Uint16Array(6),{from:e},1,o,0),i.singleCache.set(a,o)),wt(r,o,n)}function xt(e,t,n=!1){let r=n?e:`nofuzz\0${e}`,i=t.matchCache.get(r);if(i!==void 0)return i;e||=`/`;let a;try{a=wt(e,t.segmentTree,n)}catch(e){if(e instanceof URIError)a=null;else throw e}return a&&(a.branch=Et(a.route)),t.matchCache.set(r,a),a}function St(e){return e===`/`?e:e.replace(/\/{1,}$/,``)}function Ct(e,t=!1,n){let r=gt(e.fullPath),i=new Uint16Array(6),a={},o={},s=0;return pt(t,i,e,1,r,0,e=>{if(n?.(e,s),e.id in a&&st(),a[e.id]=e,s!==0&&e.path){let t=St(e.fullPath);(!o[t]||e.fullPath.endsWith(`/`))&&(o[t]=e)}s++}),ht(r),{processedTree:{segmentTree:r,singleCache:ct(1e3),matchCache:ct(1e3),flatCache:null,masksTree:null},routesById:a,routesByPath:o}}function wt(e,t,n=!1){let r=e.split(`/`),i=Ot(e,r,t,n);if(!i)return null;let[a]=Tt(e,r,i);return{route:i.node.route,rawParams:a}}function Tt(e,t,n){let r=Dt(n.node),i=null,a=Object.create(null),o=n.extract?.part??0,s=n.extract?.node??0,c=n.extract?.path??0,l=n.extract?.segment??0;for(;s=0;e--){let n=i.wildcard[e],{prefix:r,suffix:a}=n;if(!(r&&(v||!(n.caseSensitive?y:b??=y.toLowerCase()).startsWith(r)))){if(a){if(v)continue;let e=t.slice(u).join(`/`).slice(-a.length);if((n.caseSensitive?e:e.toLowerCase())!==a)continue}s.push({node:n,index:o,skipped:d,depth:f+1,statics:p,dynamics:m,optionals:h,extract:g,rawParams:_})}}if(i.optional){let e=d|1<=0;n--){let r=i.optional[n];s.push({node:r,index:u,skipped:e,depth:t,statics:p,dynamics:m,optionals:h,extract:g,rawParams:_})}if(!v)for(let e=i.optional.length-1;e>=0;e--){let n=i.optional[e],{prefix:r,suffix:a}=n;if(r||a){let e=n.caseSensitive?y:b??=y.toLowerCase();if(r&&!e.startsWith(r)||a&&!e.endsWith(a))continue}s.push({node:n,index:u+1,skipped:d,depth:t,statics:p,dynamics:m,optionals:h+kt(o,u),extract:g,rawParams:_})}}if(!v&&i.dynamic&&y)for(let e=i.dynamic.length-1;e>=0;e--){let t=i.dynamic[e],{prefix:n,suffix:r}=t;if(n||r){let e=t.caseSensitive?y:b??=y.toLowerCase();if(n&&!e.startsWith(n)||r&&!e.endsWith(r))continue}s.push({node:t,index:u+1,skipped:d,depth:f+1,statics:p,dynamics:m+kt(o,u),optionals:h,extract:g,rawParams:_})}if(!v&&i.staticInsensitive){let e=i.staticInsensitive.get(b??=y.toLowerCase());e&&s.push({node:e,index:u+1,skipped:d,depth:f+1,statics:p+kt(o,u),dynamics:m,optionals:h,extract:g,rawParams:_})}if(!v&&i.static){let e=i.static.get(y);e&&s.push({node:e,index:u+1,skipped:d,depth:f+1,statics:p+kt(o,u),dynamics:m,optionals:h,extract:g,rawParams:_})}if(i.pathless){let e=f+1;for(let t=i.pathless.length-1;t>=0;t--){let n=i.pathless[t];s.push({node:n,index:u,skipped:d,depth:e,statics:p,dynamics:m,optionals:h,extract:g,rawParams:_})}}}if(l)return l;if(r&&c){let n=c.index;for(let e=0;ee.statics||t.statics===e.statics&&(t.dynamics>e.dynamics||t.dynamics===e.dynamics&&(t.optionals>e.optionals||t.optionals===e.optionals&&((t.node.kind===lt)>(e.node.kind===lt)||t.node.kind===lt==(e.node.kind===lt)&&t.depth>e.depth)))}function Nt(e){return Pt(e.filter(e=>e!==void 0).join(`/`))}function Pt(e){return e.replace(/\/{2,}/g,`/`)}function Ft(e){return e===`/`?e:e.replace(/^\/{1,}/,``)}function It(e){let t=e.length;return t>1&&e[t-1]===`/`?e.replace(/\/{1,}$/,``):e}function Lt(e){return It(Ft(e))}function Rt(e,t){return e?.endsWith(`/`)&&e!==`/`&&e!==`${t}/`?e.slice(0,-1):e}function zt(e,t,n){return Rt(e,n)===Rt(t,n)}function Bt({base:e,to:t,trailingSlash:n=`never`,cache:r}){let i=t.startsWith(`/`),a=!i&&t===`.`,o;if(r){o=i?t:a?e:e+`\0`+t;let n=r.get(o);if(n)return n}let s;if(a)s=e.split(`/`);else if(i)s=t.split(`/`);else{for(s=e.split(`/`);s.length>1&&Re(s)===``;)s.pop();let n=t.split(`/`);for(let e=0,t=n.length;e1&&(Re(s)===``?n===`never`&&s.pop():n===`always`&&s.push(``));let c=Pt(s.join(`/`))||`/`;return o&&r&&r.set(o,c),c}function Vt(e){let t=new Map(e.map(e=>[encodeURIComponent(e),e])),n=Array.from(t.keys()).map(e=>e.replace(/[.*+?^${}()|[\]\\]/g,`\\$&`)).join(`|`),r=new RegExp(n,`g`);return e=>e.replace(r,e=>t.get(e)??e)}function Ht(e,t,n){let r=t[e];return typeof r==`string`?e===`_splat`?/^[a-zA-Z0-9\-._~!/]*$/.test(r)?r:r.split(`/`).map(e=>Wt(e,n)).join(`/`):Wt(r,n):r}function Ut({path:e,params:t,decoder:n,...r}){let i=!1,a=Object.create(null);if(!e||e===`/`)return{interpolatedPath:`/`,usedParams:a,isMissingParams:i};if(!e.includes(`$`))return{interpolatedPath:e,usedParams:a,isMissingParams:i};let o=e.length,s=0,c,l=``;for(;s{t[0]===`?`&&(t=t.substring(1));let n=Jt(t);for(let t in n){let r=n[t];if(typeof r==`string`)try{n[t]=e(r)}catch{}}return n}}function Qt(e,t){let n=typeof t==`function`;function r(r){if(typeof r==`object`&&r)try{return e(r)}catch{}else if(n&&typeof r==`string`)try{return t(r),e(r)}catch{}return r}return e=>{let t=Kt(e,r);return t?`?${t}`:``}}var $t=`__root__`;function en(e){if(e.statusCode=e.statusCode||e.code||307,!e._builtLocation&&!e.reloadDocument&&typeof e.href==`string`)try{new URL(e.href),e.reloadDocument=!0}catch{}let t=new Headers(e.headers);e.href&&t.get(`Location`)===null&&t.set(`Location`,e.href);let n=new Response(null,{status:e.statusCode,headers:t});if(n.options=e,e.throw)throw n;return n}function tn(e){return e instanceof Response&&!!e.options}var nn=e=>{if(!e.rendered)return e.rendered=!0,e.onReady?.()},rn=e=>e.stores.matchesId.get().some(t=>e.stores.matchStores.get(t)?.get()._forcePending),an=(e,t)=>!!(e.preload&&!e.router.stores.matchStores.has(t)),on=(e,t,n=!0)=>{let r={...e.router.options.context??{}},i=n?t:t-1;for(let t=0;t<=i;t++){let n=e.matches[t];if(!n)continue;let i=e.router.getMatch(n.id);i&&Object.assign(r,i.__routeContext,i.__beforeLoadContext)}return r},sn=(e,t)=>{if(!e.matches.length)return;let n=t.routeId,r=e.matches.findIndex(t=>t.routeId===e.router.routeTree.id),i=r>=0?r:0,a=n?e.matches.findIndex(e=>e.routeId===n):e.firstBadMatchIndex??e.matches.length-1;a<0&&(a=i);for(let t=a;t>=0;t--){let n=e.matches[t];if(e.router.looseRoutesById[n.routeId].options.notFoundComponent)return t}return n?a:i},cn=(e,t,n)=>{if(!(!tn(n)&&!Gt(n)))throw tn(n)&&n.redirectHandled&&!n.options.reloadDocument?n:(t&&(t._nonReactive.beforeLoadPromise?.resolve(),t._nonReactive.loaderPromise?.resolve(),t._nonReactive.beforeLoadPromise=void 0,t._nonReactive.loaderPromise=void 0,t._nonReactive.error=n,e.updateMatch(t.id,r=>({...r,status:tn(n)?`redirected`:Gt(n)?`notFound`:r.status===`pending`?`success`:r.status,context:on(e,t.index),isFetching:!1,error:n})),Gt(n)&&!n.routeId&&(n.routeId=t.routeId),t._nonReactive.loadPromise?.resolve()),tn(n)&&(e.rendered=!0,n.options._fromLocation=e.location,n.redirectHandled=!0,n=e.router.resolveRedirect(n)),n)},ln=(e,t)=>{let n=e.router.getMatch(t);return!!(!n||n._nonReactive.dehydrated)},un=(e,t,n)=>{let r=on(e,n);e.updateMatch(t,e=>({...e,context:r}))},dn=(e,t,n)=>{let{id:r,routeId:i}=e.matches[t],a=e.router.looseRoutesById[i];if(n instanceof Promise)throw n;e.firstBadMatchIndex??=t,cn(e,e.router.getMatch(r),n);try{a.options.onError?.(n)}catch(t){n=t,cn(e,e.router.getMatch(r),n)}e.updateMatch(r,e=>(e._nonReactive.beforeLoadPromise?.resolve(),e._nonReactive.beforeLoadPromise=void 0,e._nonReactive.loadPromise?.resolve(),{...e,error:n,status:`error`,isFetching:!1,updatedAt:Date.now(),abortController:new AbortController})),!e.preload&&!tn(n)&&!Gt(n)&&(e.serialError??=n)},fn=(e,t,n,r)=>{if(r._nonReactive.pendingTimeout!==void 0)return;let i=n.options.pendingMs??e.router.options.defaultPendingMs;if(e.onReady&&!an(e,t)&&(n.options.loader||n.options.beforeLoad||Cn(n))&&typeof i==`number`&&i!==1/0&&(n.options.pendingComponent??e.router.options?.defaultPendingComponent)){let t=setTimeout(()=>{nn(e)},i);r._nonReactive.pendingTimeout=t}},pn=(e,t,n)=>{let r=e.router.getMatch(t);if(!r._nonReactive.beforeLoadPromise&&!r._nonReactive.loaderPromise)return;fn(e,t,n,r);let i=()=>{let n=e.router.getMatch(t);n.preload&&(n.status===`redirected`||n.status===`notFound`)&&cn(e,n,n.error)};return r._nonReactive.beforeLoadPromise?r._nonReactive.beforeLoadPromise.then(i):i()},mn=(e,t,n,r)=>{let i=e.router.getMatch(t),a=i._nonReactive.loadPromise;i._nonReactive.loadPromise=Qe(()=>{a?.resolve(),a=void 0});let{paramsError:o,searchError:s}=i;o&&dn(e,n,o),s&&dn(e,n,s),fn(e,t,r,i);let c=new AbortController,l=!1,u=()=>{l||(l=!0,e.updateMatch(t,e=>({...e,isFetching:`beforeLoad`,fetchCount:e.fetchCount+1,abortController:c})))},d=()=>{i._nonReactive.beforeLoadPromise?.resolve(),i._nonReactive.beforeLoadPromise=void 0,e.updateMatch(t,e=>({...e,isFetching:!1}))};if(!r.options.beforeLoad){e.router.batch(()=>{u(),d()});return}i._nonReactive.beforeLoadPromise=Qe();let f={...on(e,n,!1),...i.__routeContext},{search:p,params:m,cause:h}=i,g=an(e,t),_={search:p,abortController:c,params:m,preload:g,context:f,location:e.location,navigate:t=>e.router.navigate({...t,_fromLocation:e.location}),buildLocation:e.router.buildLocation,cause:g?`preload`:h,matches:e.matches,routeId:r.id,...e.router.options.additionalContext},v=r=>{if(r===void 0){e.router.batch(()=>{u(),d()});return}(tn(r)||Gt(r))&&(u(),dn(e,n,r)),e.router.batch(()=>{u(),e.updateMatch(t,e=>({...e,__beforeLoadContext:r})),d()})},y;try{if(y=r.options.beforeLoad(_),$e(y))return u(),y.catch(t=>{dn(e,n,t)}).then(v)}catch(t){u(),dn(e,n,t)}v(y)},hn=(e,t)=>{let{id:n,routeId:r}=e.matches[t],i=e.router.looseRoutesById[r],a=()=>s(),o=()=>mn(e,n,t,i),s=()=>{if(ln(e,n))return;let t=pn(e,n,i);return $e(t)?t.then(o):o()};return a()},gn=(e,t,n)=>{let r=e.router.getMatch(t);if(!r||!n.options.head&&!n.options.scripts&&!n.options.headers)return;let i={ssr:e.router.options.ssr,matches:e.matches,match:r,params:r.params,loaderData:r.loaderData};return Promise.all([n.options.head?.(i),n.options.scripts?.(i),n.options.headers?.(i)]).then(([e,t,n])=>({meta:e?.meta,links:e?.links,headScripts:e?.scripts,headers:n,scripts:t,styles:e?.styles}))},_n=(e,t,n,r,i)=>{let a=t[r-1],{params:o,loaderDeps:s,abortController:c,cause:l}=e.router.getMatch(n),u=on(e,r),d=an(e,n);return{params:o,deps:s,preload:!!d,parentMatchPromise:a,abortController:c,context:u,location:e.location,navigate:t=>e.router.navigate({...t,_fromLocation:e.location}),cause:d?`preload`:l,route:i,...e.router.options.additionalContext}},vn=async(e,t,n,r,i)=>{try{let a=e.router.getMatch(n);try{Sn(i);let o=i.options.loader,s=typeof o==`function`?o:o?.handler,c=s?.(_n(e,t,n,r,i)),l=!!s&&$e(c);if((l||i._lazyPromise||i._componentsPromise||i.options.head||i.options.scripts||i.options.headers||a._nonReactive.minPendingPromise)&&e.updateMatch(n,e=>({...e,isFetching:`loader`})),s){let t=l?await c:c;cn(e,e.router.getMatch(n),t),t!==void 0&&e.updateMatch(n,e=>({...e,loaderData:t}))}i._lazyPromise&&await i._lazyPromise;let u=a._nonReactive.minPendingPromise;u&&await u,i._componentsPromise&&await i._componentsPromise,e.updateMatch(n,t=>({...t,error:void 0,context:on(e,r),status:`success`,isFetching:!1,updatedAt:Date.now()}))}catch(t){let o=t;if(o?.name===`AbortError`){if(a.abortController.signal.aborted){a._nonReactive.loaderPromise?.resolve(),a._nonReactive.loaderPromise=void 0;return}e.updateMatch(n,t=>({...t,status:t.status===`pending`?`success`:t.status,isFetching:!1,context:on(e,r)}));return}let s=a._nonReactive.minPendingPromise;s&&await s,Gt(t)&&await i.options.notFoundComponent?.preload?.(),cn(e,e.router.getMatch(n),t);try{i.options.onError?.(t)}catch(t){o=t,cn(e,e.router.getMatch(n),t)}!tn(o)&&!Gt(o)&&await Sn(i,[`errorComponent`]),e.updateMatch(n,t=>({...t,error:o,context:on(e,r),status:`error`,isFetching:!1}))}}catch(t){let r=e.router.getMatch(n);r&&(r._nonReactive.loaderPromise=void 0),cn(e,r,t)}},yn=async(e,t,n)=>{async function r(r,a,c,l,d){let f=Date.now()-a.updatedAt,p=r?d.options.preloadStaleTime??e.router.options.defaultPreloadStaleTime??3e4:d.options.staleTime??e.router.options.defaultStaleTime??0,m=d.options.shouldReload,h=typeof m==`function`?m(_n(e,t,i,n,d)):m,{status:g,invalid:_}=l,v=f>=p&&(!!e.forceStaleReload||l.cause===`enter`||c!==void 0&&c!==l.id);o=g===`success`&&(_||(h??v)),r&&d.options.preload===!1||(o&&!e.sync&&u?(s=!0,(async()=>{try{await vn(e,t,i,n,d);let r=e.router.getMatch(i);r._nonReactive.loaderPromise?.resolve(),r._nonReactive.loadPromise?.resolve(),r._nonReactive.loaderPromise=void 0,r._nonReactive.loadPromise=void 0}catch(t){tn(t)&&await e.router.navigate(t.options)}})()):g!==`success`||o?await vn(e,t,i,n,d):un(e,i,n))}let{id:i,routeId:a}=e.matches[n],o=!1,s=!1,c=e.router.looseRoutesById[a],l=c.options.loader,u=((typeof l==`function`?void 0:l?.staleReloadMode)??e.router.options.defaultStaleReloadMode)!==`blocking`;if(ln(e,i)){if(!e.router.getMatch(i))return e.matches[n];un(e,i,n)}else{let t=e.router.getMatch(i),o=e.router.stores.matchesId.get()[n],s=(o&&e.router.stores.matchStores.get(o)||null)?.routeId===a?o:e.router.stores.matches.get().find(e=>e.routeId===a)?.id,l=an(e,i);if(t._nonReactive.loaderPromise){if(t.status===`success`&&!e.sync&&!t.preload&&u)return t;await t._nonReactive.loaderPromise;let n=e.router.getMatch(i),a=n._nonReactive.error||n.error;a&&cn(e,n,a),n.status===`pending`&&await r(l,t,s,n,c)}else{let n=l&&!e.router.stores.matchStores.has(i),a=e.router.getMatch(i);a._nonReactive.loaderPromise=Qe(),n!==a.preload&&e.updateMatch(i,e=>({...e,preload:n})),await r(l,t,s,a,c)}}let d=e.router.getMatch(i);s||(d._nonReactive.loaderPromise?.resolve(),d._nonReactive.loadPromise?.resolve(),d._nonReactive.loadPromise=void 0),clearTimeout(d._nonReactive.pendingTimeout),d._nonReactive.pendingTimeout=void 0,s||(d._nonReactive.loaderPromise=void 0),d._nonReactive.dehydrated=void 0;let f=s?d.isFetching:!1;return f!==d.isFetching||d.invalid!==!1?(e.updateMatch(i,e=>({...e,isFetching:f,invalid:!1})),e.router.getMatch(i)):d};async function bn(e){let t=e,n=[];rn(t.router)&&nn(t);let r;for(let e=0;e({...e,...a?{status:`success`,globalNotFound:!0,error:void 0}:{status:`notFound`,error:l},isFetching:!1})),u=e,await Sn(r,[`notFoundComponent`])}else if(!t.preload){let e=t.matches[0];e.globalNotFound||t.router.getMatch(e.id)?.globalNotFound&&t.updateMatch(e.id,e=>({...e,globalNotFound:!1,error:void 0}))}if(t.serialError&&t.firstBadMatchIndex!==void 0){let e=t.router.looseRoutesById[t.matches[t.firstBadMatchIndex].routeId];await Sn(e,[`errorComponent`])}for(let e=0;e<=u;e++){let{id:n,routeId:r}=t.matches[e],i=t.router.looseRoutesById[r];try{let e=gn(t,n,i);if(e){let r=await e;t.updateMatch(n,e=>({...e,...r}))}}catch(e){console.error(`Error executing head for route ${r}:`,e)}}let d=nn(t);if($e(d)&&await d,l)throw l;if(t.serialError&&!t.preload&&!t.onReady)throw t.serialError;return t.matches}function xn(e,t){let n=t.map(t=>e.options[t]?.preload?.()).filter(Boolean);if(n.length!==0)return Promise.all(n)}function Sn(e,t=wn){!e._lazyLoaded&&e._lazyPromise===void 0&&(e.lazyFn?e._lazyPromise=e.lazyFn().then(t=>{let{id:n,...r}=t.options;Object.assign(e.options,r),e._lazyLoaded=!0,e._lazyPromise=void 0}):e._lazyLoaded=!0);let n=()=>e._componentsLoaded?void 0:t===wn?(()=>{if(e._componentsPromise===void 0){let t=xn(e,wn);t?e._componentsPromise=t.then(()=>{e._componentsLoaded=!0,e._componentsPromise=void 0}):e._componentsLoaded=!0}return e._componentsPromise})():xn(e,t);return e._lazyPromise?e._lazyPromise.then(n):n()}function Cn(e){for(let t of wn)if(e.options[t]?.preload)return!0;return!1}var wn=[`component`,`errorComponent`,`pendingComponent`,`notFoundComponent`];function Tn(e){return{input:({url:t})=>{for(let n of e)t=Dn(n,t);return t},output:({url:t})=>{for(let n=e.length-1;n>=0;n--)t=On(e[n],t);return t}}}function En(e){let t=Lt(e.basepath),n=`/${t}`,r=e.caseSensitive?n:n.toLowerCase(),i=`${r}/`;return{input:({url:t})=>{let a=e.caseSensitive?t.pathname:t.pathname.toLowerCase();return a===r?t.pathname=`/`:a.startsWith(i)&&(t.pathname=t.pathname.slice(n.length)),t},output:({url:e})=>(e.pathname=Nt([`/`,t,e.pathname]),e)}}function Dn(e,t){let n=e?.input?.({url:t});if(n){if(typeof n==`string`)return new URL(n);if(n instanceof URL)return n}return t}function On(e,t){let n=e?.output?.({url:t});if(n){if(typeof n==`string`)return new URL(n);if(n instanceof URL)return n}return t}function kn(e,t){let{createMutableStore:n,createReadonlyStore:r,batch:i,init:a}=t,o=new Map,s=new Map,c=new Map,l=n(e.status),u=n(e.loadedAt),d=n(e.isLoading),f=n(e.isTransitioning),p=n(e.location),m=n(e.resolvedLocation),h=n(e.statusCode),g=n(e.redirect),_=n([]),v=n([]),y=n([]),b=r(()=>An(o,_.get())),x=r(()=>An(s,v.get())),S=r(()=>An(c,y.get())),C=r(()=>_.get()[0]),w=r(()=>_.get().some(e=>o.get(e)?.get().status===`pending`)),T=r(()=>({locationHref:p.get().href,resolvedLocationHref:m.get()?.href,status:l.get()})),E=r(()=>({status:l.get(),loadedAt:u.get(),isLoading:d.get(),isTransitioning:f.get(),matches:b.get(),location:p.get(),resolvedLocation:m.get(),statusCode:h.get(),redirect:g.get()})),D=ct(64);function O(e){let t=D.get(e);return t||(t=r(()=>{let t=_.get();for(let n of t){let t=o.get(n);if(t&&t.routeId===e)return t.get()}}),D.set(e,t)),t}let k={status:l,loadedAt:u,isLoading:d,isTransitioning:f,location:p,resolvedLocation:m,statusCode:h,redirect:g,matchesId:_,pendingIds:v,cachedIds:y,matches:b,pendingMatches:x,cachedMatches:S,firstId:C,hasPending:w,matchRouteDeps:T,matchStores:o,pendingMatchStores:s,cachedMatchStores:c,__store:E,getRouteMatchStore:O,setMatches:ee,setPending:te,setCached:A};ee(e.matches),a?.(k);function ee(e){jn(e,o,_,n,i)}function te(e){jn(e,s,v,n,i)}function A(e){jn(e,c,y,n,i)}return k}function An(e,t){let n=[];for(let r of t){let t=e.get(r);t&&n.push(t.get())}return n}function jn(e,t,n,r,i){let a=e.map(e=>e.id),o=new Set(a);i(()=>{for(let e of t.keys())o.has(e)||t.delete(e);for(let n of e){let e=t.get(n.id);if(!e){let e=r(n);e.routeId=n.routeId,t.set(n.id,e);continue}e.routeId=n.routeId,e.get()!==n&&e.set(n)}ot(n.get(),a)||n.set(a)})}var Mn=`__TSR_index`,Nn=`popstate`,Pn=`beforeunload`;function Fn(e){let t=e.getLocation(),n=new Set,r=r=>{t=e.getLocation(),n.forEach(e=>e({location:t,action:r}))},i=n=>{e.notifyOnIndexChange??!0?r(n):t=e.getLocation()},a=async({task:n,navigateOpts:r,...i})=>{if(r?.ignoreBlocker??!1){n();return}let a=e.getBlockers?.()??[],o=i.type===`PUSH`||i.type===`REPLACE`;if(typeof document<`u`&&a.length&&o)for(let n of a){let r=zn(i.path,i.state);if(await n.blockerFn({currentLocation:t,nextLocation:r,action:i.type})){e.onBlocked?.();return}}n()};return{get location(){return t},get length(){return e.getLength()},subscribers:n,subscribe:e=>(n.add(e),()=>{n.delete(e)}),push:(n,i,o)=>{let s=t.state[Mn];i=In(s+1,i),a({task:()=>{e.pushState(n,i),r({type:`PUSH`})},navigateOpts:o,type:`PUSH`,path:n,state:i})},replace:(n,i,o)=>{let s=t.state[Mn];i=In(s,i),a({task:()=>{e.replaceState(n,i),r({type:`REPLACE`})},navigateOpts:o,type:`REPLACE`,path:n,state:i})},go:(t,n)=>{a({task:()=>{e.go(t),i({type:`GO`,index:t})},navigateOpts:n,type:`GO`})},back:t=>{a({task:()=>{e.back(t?.ignoreBlocker??!1),i({type:`BACK`})},navigateOpts:t,type:`BACK`})},forward:t=>{a({task:()=>{e.forward(t?.ignoreBlocker??!1),i({type:`FORWARD`})},navigateOpts:t,type:`FORWARD`})},canGoBack:()=>t.state[Mn]!==0,createHref:t=>e.createHref(t),block:t=>{if(!e.setBlockers)return()=>{};let n=e.getBlockers?.()??[];return e.setBlockers([...n,t]),()=>{let n=e.getBlockers?.()??[];e.setBlockers?.(n.filter(e=>e!==t))}},flush:()=>e.flush?.(),destroy:()=>e.destroy?.(),notify:r}}function In(e,t){t||={};let n=Bn();return{...t,key:n,__TSR_key:n,[Mn]:e}}function Ln(e){let t=e?.window??(typeof document<`u`?window:void 0),n=t.history.pushState,r=t.history.replaceState,i=[],a=()=>i,o=e=>i=e,s=e?.createHref??(e=>e),c=e?.parseLocation??(()=>zn(`${t.location.pathname}${t.location.search}${t.location.hash}`,t.history.state));if(!t.history.state?.__TSR_key&&!t.history.state?.key){let e=Bn();t.history.replaceState({[Mn]:0,key:e,__TSR_key:e},``)}let l=c(),u,d=!1,f=!1,p=!1,m=!1,h=()=>l,g,_,v=()=>{g&&(C._ignoreSubscribers=!0,(g.isPush?t.history.pushState:t.history.replaceState)(g.state,``,g.href),C._ignoreSubscribers=!1,g=void 0,_=void 0,u=void 0)},y=(e,t,n)=>{let r=s(t);_||(u=l),l=zn(t,n),g={href:r,state:n,isPush:g?.isPush||e===`push`},_||=Promise.resolve().then(()=>v())},b=e=>{l=c(),C.notify({type:e})},x=async()=>{if(f){f=!1;return}let e=c(),n=e.state[Mn]-l.state[Mn],r=n===1,i=n===-1,o=!r&&!i||d;d=!1;let s=o?`GO`:i?`BACK`:`FORWARD`,u=o?{type:`GO`,index:n}:{type:i?`BACK`:`FORWARD`};if(p)p=!1;else{let n=a();if(typeof document<`u`&&n.length){for(let r of n)if(await r.blockerFn({currentLocation:l,nextLocation:e,action:s})){f=!0,t.history.go(1),C.notify(u);return}}}l=c(),C.notify(u)},S=e=>{if(m){m=!1;return}let t=!1,n=a();if(typeof document<`u`&&n.length)for(let e of n){let n=e.enableBeforeUnload??!0;if(n===!0){t=!0;break}if(typeof n==`function`&&n()===!0){t=!0;break}}if(t)return e.preventDefault(),e.returnValue=``},C=Fn({getLocation:h,getLength:()=>t.history.length,pushState:(e,t)=>y(`push`,e,t),replaceState:(e,t)=>y(`replace`,e,t),back:e=>(e&&(p=!0),m=!0,t.history.back()),forward:e=>{e&&(p=!0),m=!0,t.history.forward()},go:e=>{d=!0,t.history.go(e)},createHref:e=>s(e),flush:v,destroy:()=>{t.history.pushState=n,t.history.replaceState=r,t.removeEventListener(Pn,S,{capture:!0}),t.removeEventListener(Nn,x)},onBlocked:()=>{u&&l!==u&&(l=u)},getBlockers:a,setBlockers:o,notifyOnIndexChange:!1});return t.addEventListener(Pn,S,{capture:!0}),t.addEventListener(Nn,x),t.history.pushState=function(...e){let r=n.apply(t.history,e);return C._ignoreSubscribers||b(`PUSH`),r},t.history.replaceState=function(...e){let n=r.apply(t.history,e);return C._ignoreSubscribers||b(`REPLACE`),n},C}function Rn(e){let t=e.replace(/[\x00-\x1f\x7f]/g,``);return t.startsWith(`//`)&&(t=`/`+t.replace(/^\/+/,``)),t}function zn(e,t){let n=Rn(e),r=n.indexOf(`#`),i=n.indexOf(`?`),a=Bn();return{href:n,pathname:n.substring(0,r>0?i>0?Math.min(r,i):r:i>0?i:n.length),hash:r>-1?n.substring(r):``,search:i>-1?n.slice(i,r===-1?void 0:r):``,state:t||{[Mn]:0,key:a,__TSR_key:a}}}function Bn(){return(Math.random()+1).toString(36).substring(7)}function Vn(e,t){let n=t,r=e;return{fromLocation:n,toLocation:r,pathChanged:n?.pathname!==r.pathname,hrefChanged:n?.href!==r.href,hashChanged:n?.hash!==r.hash}}var Hn=new WeakMap,Un=class{constructor(e,t){this.tempLocationKey=`${Math.round(Math.random()*1e7)}`,this.resetNextScroll=!0,this.shouldViewTransition=void 0,this.isViewTransitionTypesSupported=void 0,this.subscribers=new Set,this.isScrollRestoring=!1,this.isScrollRestorationSetup=!1,this.routeBranchCache=new WeakMap,this.startTransition=e=>e(),this.update=e=>{let t=this.options,n=this.basepath??t?.basepath??`/`,r=this.basepath===void 0,i=t?.rewrite;if(this.options={...t,...e},this.isServer=this.options.isServer??typeof document>`u`,this.protocolAllowlist=new Set(this.options.protocolAllowlist),this.options.pathParamsAllowedCharacters&&(this.pathParamsDecoder=Vt(this.options.pathParamsAllowedCharacters)),(!this.history||this.options.history&&this.options.history!==this.history)&&(this.history=this.options.history?this.options.history:Ln()),this.origin=this.options.origin,this.origin||=window?.origin&&window.origin!==`null`?window.origin:`http://localhost`,this.history&&this.updateLatestLocation(),this.options.routeTree!==this.routeTree){this.routeTree=this.options.routeTree;let e;this.resolvePathCache=ct(1e3),e=this.buildRouteTree(),this.setRoutes(e)}if(!this.stores&&this.latestLocation){let e=this.getStoreConfig(this);this.batch=e.batch,this.stores=kn(Kn(this.latestLocation),e),fr(this)}let a=!1,o=this.options.basepath??`/`,s=this.options.rewrite;if(r||n!==o||i!==s){this.basepath=o;let e=[],t=Lt(o);t&&t!==`/`&&e.push(En({basepath:o})),s&&e.push(s),this.rewrite=e.length===0?void 0:e.length===1?e[0]:Tn(e),this.history&&this.updateLatestLocation(),a=!0}a&&this.stores&&this.stores.location.set(this.latestLocation),typeof window<`u`&&`CSS`in window&&typeof window.CSS?.supports==`function`&&(this.isViewTransitionTypesSupported=window.CSS.supports(`selector(:active-view-transition-type(a))`))},this.updateLatestLocation=()=>{this.latestLocation=this.parseLocation(this.history.location,this.latestLocation)},this.buildRouteTree=()=>{let e=Ct(this.routeTree,this.options.caseSensitive,(e,t)=>{e.init({originalIndex:t})});return this.options.routeMasks&&vt(this.options.routeMasks,e.processedTree),e},this.subscribe=(e,t)=>{let n={eventType:e,fn:t};return this.subscribers.add(n),()=>{this.subscribers.delete(n)}},this.emit=e=>{this.subscribers.forEach(t=>{t.eventType===e.type&&t.fn(e)})},this.parseLocation=(e,t)=>{let n=({pathname:e,search:n,hash:r,href:i,state:a})=>{if(!this.rewrite&&!/[ \x00-\x1f\x7f\u0080-\uffff]/.test(e)){let i=this.options.parseSearch(n),o=this.options.stringifySearch(i);return{href:e+o+r,publicHref:e+o+r,pathname:it(e).path,external:!1,searchStr:o,search:Ge(t?.search,i),hash:it(r.slice(1)).path,state:Ke(t?.state,a)}}let o=new URL(i,this.origin),s=Dn(this.rewrite,o),c=this.options.parseSearch(s.search),l=this.options.stringifySearch(c);return s.search=l,{href:s.href.replace(s.origin,``),publicHref:i,pathname:it(s.pathname).path,external:!!this.rewrite&&s.origin!==this.origin,searchStr:l,search:Ge(t?.search,c),hash:it(s.hash.slice(1)).path,state:Ke(t?.state,a)}},r=n(e),{__tempLocation:i,__tempKey:a}=r.state;if(i&&(!a||a===this.tempLocationKey)){let e=n(i);return e.state.key=r.state.key,e.state.__TSR_key=r.state.__TSR_key,delete e.state.__tempLocation,{...e,maskedLocation:r}}return r},this.resolvePathWithBase=(e,t)=>Bt({base:e,to:t.includes(`//`)?Pt(t):t,trailingSlash:this.options.trailingSlash,cache:this.resolvePathCache}),this.matchRoutes=(e,t,n)=>typeof e==`string`?this.matchRoutesInternal({pathname:e,search:t},n):this.matchRoutesInternal(e,t),this.getMatchedRoutes=e=>Jn({pathname:e,routesById:this.routesById,processedTree:this.processedTree}),this.cancelMatch=e=>{let t=this.getMatch(e);t&&(t.abortController.abort(),clearTimeout(t._nonReactive.pendingTimeout),t._nonReactive.pendingTimeout=void 0)},this.cancelMatches=()=>{this.stores.pendingIds.get().forEach(e=>{this.cancelMatch(e)}),this.stores.matchesId.get().forEach(e=>{if(this.stores.pendingMatchStores.has(e))return;let t=this.stores.matchStores.get(e)?.get();t&&(t.status===`pending`||t.isFetching===`loader`)&&this.cancelMatch(e)})},this.buildLocation=e=>{let t=(t={})=>{let n=t._fromLocation||this.pendingBuiltLocation||this.latestLocation,r=this.matchRoutesLightweight(n);t.from;let i=t.unsafeRelative===`path`?n.pathname:t.from??r.fullPath,a=t.to?`${t.to}`:void 0,o=r.search,s=Object.assign(Object.create(null),r.params),c=a?.charCodeAt(0)===47?`/`:this.resolvePathWithBase(i,`.`),l=a?this.resolvePathWithBase(c,a):c,u=t.params===!1||t.params===null?Object.create(null):(t.params??!0)===!0?s:Object.assign(s,Be(t.params,s)),d=this.routesByPath[It(l)],f;if(d)f=this.getRouteBranch(d);else if(l.includes(`$`))f=[];else{let e=this.getMatchedRoutes(l);f=e.matchedRoutes,this.options.notFoundRoute&&(!e.foundRoute||e.foundRoute.path!==`/`&&e.routeParams[`**`])&&(f=[...f,this.options.notFoundRoute])}if(f.length&&Ue(u))for(let e of f){let t=e.options.params?.stringify??e.options.stringifyParams;if(t)try{Object.assign(u,t(u))}catch{}}let p=e.leaveParams?l:it(Ut({path:l,params:u,decoder:this.pathParamsDecoder,server:this.isServer}).interpolatedPath).path,m=o;if(e._includeValidateSearch&&this.options.search?.strict){let e={};f.forEach(t=>{if(t.options.validateSearch)try{Object.assign(e,qn(t.options.validateSearch,{...e,...m}))}catch{}}),m=e}m=Yn({search:m,dest:t,destRoutes:f,_includeValidateSearch:e._includeValidateSearch}),m=Ge(o,m);let h=this.options.stringifySearch(m),g=t.hash===!0?n.hash:t.hash?Be(t.hash,n.hash):void 0,_=g?`#${g}`:``,v=t.state===!0?n.state:t.state?Be(t.state,n.state):{};v=Ke(n.state,v);let y=`${p}${h}${_}`,b,x,S=!1;if(this.rewrite){let e=new URL(y,this.origin),t=On(this.rewrite,e);b=e.href.replace(e.origin,``),t.origin===this.origin?x=t.pathname+t.search+t.hash:(x=t.href,S=!0)}else b=at(y),x=b;return{publicHref:x,href:b,pathname:p,search:m,searchStr:h,state:v,hash:g??``,external:S,unmaskOnReload:t.unmaskOnReload}},n=(n={},r)=>{let i=t(n),a=r?t(r):void 0;if(!a){let n=Object.create(null);if(this.options.routeMasks){let o=yt(i.pathname,this.processedTree);if(o){Object.assign(n,o.rawParams);let{from:i,params:s,...c}=o.route,l=s===!1||s===null?Object.create(null):(s??!0)===!0?n:Object.assign(n,Be(s,n));r={from:e.from,...c,params:l},a=t(r)}}}return a&&(i.maskedLocation=a),i};return e.mask?n(e,{from:e.from,...e.mask}):n(e)},this.commitLocation=async({viewTransition:e,ignoreBlocker:t,...n})=>{let r,i=()=>{let e=[`key`,`__TSR_key`,`__TSR_index`,`__hashScrollIntoViewOptions`];e.forEach(e=>{n.state[e]=this.latestLocation.state[e]});let t=Ze(n.state,this.latestLocation.state);return e.forEach(e=>{delete n.state[e]}),t},a=It(this.latestLocation.href)===It(n.href),o=this.commitLocationPromise;if(this.commitLocationPromise=Qe(()=>{o?.resolve(),o=void 0}),a&&i())this.load();else{let{maskedLocation:i,hashScrollIntoView:a,...o}=n;i&&(o={...i,state:{...i.state,__tempKey:void 0,__tempLocation:{...o,search:o.searchStr,state:{...o.state,__tempKey:void 0,__tempLocation:void 0,__TSR_key:void 0,key:void 0}}}},(o.unmaskOnReload??this.options.unmaskOnReload??!1)&&(o.state.__tempKey=this.tempLocationKey)),o.state.__hashScrollIntoViewOptions=a??this.options.defaultHashScrollIntoView??!0,this.shouldViewTransition=e,r=n.replace?`REPLACE`:`PUSH`,this.history[r===`REPLACE`?`replace`:`push`](o.publicHref,o.state,{ignoreBlocker:t})}return this.resetNextScroll=n.resetScroll??!0,this.history.subscribers.size||this.load(r?{action:{type:r}}:void 0),this.commitLocationPromise},this.buildAndCommitLocation=({replace:e,resetScroll:t,hashScrollIntoView:n,viewTransition:r,ignoreBlocker:i,href:a,...o}={})=>{if(a){let t=this.history.location.state.__TSR_index,n=zn(a,{__TSR_index:e?t:t+1}),r=new URL(n.pathname,this.origin);o.to=Dn(this.rewrite,r).pathname,o.search=this.options.parseSearch(n.search),o.hash=n.hash.slice(1)}let s=this.buildLocation({...o,_includeValidateSearch:!0});this.pendingBuiltLocation=s;let c=this.commitLocation({...s,viewTransition:r,replace:e,resetScroll:t,hashScrollIntoView:n,ignoreBlocker:i});return Promise.resolve().then(()=>{this.pendingBuiltLocation===s&&(this.pendingBuiltLocation=void 0)}),c},this.navigate=async({to:e,reloadDocument:t,href:n,publicHref:r,...i})=>{let a=!1;if(n)try{new URL(`${n}`),a=!0}catch{}if(a&&!t&&(t=!0),t){if(e!==void 0||!n){let t=this.buildLocation({to:e,...i});n??=t.publicHref,r??=t.publicHref}let t=!a&&r?r:n;if(rt(t,this.protocolAllowlist))return Promise.resolve();if(!i.ignoreBlocker){let e=this.history.getBlockers?.()??[];for(let t of e)if(t?.blockerFn&&await t.blockerFn({currentLocation:this.latestLocation,nextLocation:this.latestLocation,action:`PUSH`}))return Promise.resolve()}return i.replace?window.location.replace(t):window.location.href=t,Promise.resolve()}return this.buildAndCommitLocation({...i,href:n,to:e,_isNavigate:!0})},this.beforeLoad=()=>{this.cancelMatches(),this.updateLatestLocation();let e=this.matchRoutes(this.latestLocation),t=this.stores.cachedMatches.get().filter(t=>!e.some(e=>e.id===t.id));this.batch(()=>{this.stores.status.set(`pending`),this.stores.statusCode.set(200),this.stores.isLoading.set(!0),this.stores.location.set(this.latestLocation),this.stores.setPending(e),this.stores.setCached(t)})},this.load=async e=>{let t=e?.action?.type,n,r,i,a=this.stores.resolvedLocation.get()??this.stores.location.get();for(i=new Promise(o=>{this.startTransition(async()=>{try{this.beforeLoad(),t?Hn.set(this.latestLocation,t):Hn.delete(this.latestLocation);let n=this.latestLocation,r=Vn(n,this.stores.resolvedLocation.get());this.stores.redirect.get()||this.emit({type:`onBeforeNavigate`,...r}),this.emit({type:`onBeforeLoad`,...r}),await bn({router:this,sync:e?.sync,forceStaleReload:a.href===n.href,matches:this.stores.pendingMatches.get(),location:n,updateMatch:this.updateMatch,onReady:async()=>{this.startTransition(()=>{this.startViewTransition(async()=>{let e=null,t=null,n=null,r=null;this.batch(()=>{let i=this.stores.pendingMatches.get(),a=i.length,o=this.stores.matches.get();e=a?o.filter(e=>!this.stores.pendingMatchStores.has(e.id)):null;let s=new Set;for(let e of this.stores.pendingMatchStores.values())e.routeId&&s.add(e.routeId);let c=new Set;for(let e of this.stores.matchStores.values())e.routeId&&c.add(e.routeId);t=a?o.filter(e=>!s.has(e.routeId)):null,n=a?i.filter(e=>!c.has(e.routeId)):null,r=a?i.filter(e=>c.has(e.routeId)):o,this.stores.isLoading.set(!1),this.stores.loadedAt.set(Date.now()),a&&(this.stores.setMatches(i),this.stores.setPending([]),this.stores.setCached([...this.stores.cachedMatches.get(),...e.filter(e=>e.status!==`error`&&e.status!==`notFound`&&e.status!==`redirected`)]),this.clearExpiredCache())});for(let[e,i]of[[t,`onLeave`],[n,`onEnter`],[r,`onStay`]])if(e)for(let t of e)this.looseRoutesById[t.routeId].options[i]?.(t)})})}})}catch(e){tn(e)?(n=e,this.navigate({...n.options,replace:!0,ignoreBlocker:!0})):Gt(e)&&(r=e);let t=n?n.status:r?404:this.stores.matches.get().some(e=>e.status===`error`)?500:200;this.batch(()=>{this.stores.statusCode.set(t),this.stores.redirect.set(n)})}this.latestLoadPromise===i&&(this.commitLocationPromise?.resolve(),this.latestLoadPromise=void 0,this.commitLocationPromise=void 0),o()})}),this.latestLoadPromise=i,await i;this.latestLoadPromise&&i!==this.latestLoadPromise;)await this.latestLoadPromise;let o;this.hasNotFoundMatch()?o=404:this.stores.matches.get().some(e=>e.status===`error`)&&(o=500),o!==void 0&&this.stores.statusCode.set(o)},this.startViewTransition=e=>{let t=this.shouldViewTransition??this.options.defaultViewTransition;if(this.shouldViewTransition=void 0,t&&typeof document<`u`&&`startViewTransition`in document&&typeof document.startViewTransition==`function`){let n;if(typeof t==`object`&&this.isViewTransitionTypesSupported){let r=this.latestLocation,i=this.stores.resolvedLocation.get(),a=typeof t.types==`function`?t.types(Vn(r,i)):t.types;if(a===!1){e();return}n={update:e,types:a}}else n=e;document.startViewTransition(n)}else e()},this.updateMatch=(e,t)=>{this.startTransition(()=>{let n=this.stores.pendingMatchStores.get(e);if(n){n.set(t);return}let r=this.stores.matchStores.get(e);if(r){r.set(t);return}let i=this.stores.cachedMatchStores.get(e);if(i){let n=t(i.get());n.status===`redirected`?this.stores.cachedMatchStores.delete(e)&&this.stores.cachedIds.set(t=>t.filter(t=>t!==e)):i.set(n)}})},this.getMatch=e=>this.stores.cachedMatchStores.get(e)?.get()??this.stores.pendingMatchStores.get(e)?.get()??this.stores.matchStores.get(e)?.get(),this.invalidate=e=>{let t=t=>e?.filter?.(t)??!0?{...t,invalid:!0,...e?.forcePending||t.status===`error`||t.status===`notFound`?{status:`pending`,error:void 0}:void 0}:t;return this.batch(()=>{this.stores.setMatches(this.stores.matches.get().map(t)),this.stores.setCached(this.stores.cachedMatches.get().map(t)),this.stores.setPending(this.stores.pendingMatches.get().map(t))}),this.shouldViewTransition=!1,this.load({sync:e?.sync})},this.getParsedLocationHref=e=>e.publicHref||`/`,this.resolveRedirect=e=>{let t=e.headers.get(`Location`);if(!e.options.href||e.options._builtLocation){let t=e.options._builtLocation??this.buildLocation(e.options),n=this.getParsedLocationHref(t);e.options.href=n,e.headers.set(`Location`,n)}else if(t)try{let n=new URL(t);if(this.origin&&n.origin===this.origin){let t=n.pathname+n.search+n.hash;e.options.href=t,e.headers.set(`Location`,t)}}catch{}if(e.options.href&&!e.options._builtLocation&&rt(e.options.href,this.protocolAllowlist))throw Error(`Redirect blocked: unsafe protocol`);return e.headers.get(`Location`)||e.headers.set(`Location`,e.options.href),e},this.clearCache=e=>{let t=e?.filter;t===void 0?this.stores.setCached([]):this.stores.setCached(this.stores.cachedMatches.get().filter(e=>!t(e)))},this.clearExpiredCache=()=>{let e=Date.now();this.clearCache({filter:t=>{let n=this.looseRoutesById[t.routeId];if(!n.options.loader)return!0;let r=(t.preload?n.options.preloadGcTime??this.options.defaultPreloadGcTime:n.options.gcTime??this.options.defaultGcTime)??3e5;return t.status===`error`||e-t.updatedAt>=r}})},this.loadRouteChunk=Sn,this.preloadRoute=async e=>{let t=e._builtLocation??this.buildLocation(e),n=this.matchRoutes(t,{throwOnError:!0,preload:!0,dest:e}),r=new Set([...this.stores.matchesId.get(),...this.stores.pendingIds.get()]),i=new Set([...r,...this.stores.cachedIds.get()]),a=n.filter(e=>!i.has(e.id));if(a.length){let e=this.stores.cachedMatches.get();this.stores.setCached([...e,...a])}try{return n=await bn({router:this,matches:n,location:t,preload:!0,updateMatch:(e,t)=>{r.has(e)?n=n.map(n=>n.id===e?t(n):n):this.updateMatch(e,t)}}),n}catch(e){if(tn(e))return e.options.reloadDocument?void 0:await this.preloadRoute({...e.options,_fromLocation:t});Gt(e)||console.error(e);return}},this.matchRoute=(e,t)=>{let n={...e,to:e.to?this.resolvePathWithBase(e.from||``,e.to):void 0,params:e.params||{},leaveParams:!0},r=this.buildLocation(n);if(t?.pending&&this.stores.status.get()!==`pending`)return!1;let i=(t?.pending===void 0?!this.stores.isLoading.get():t.pending)?this.latestLocation:this.stores.resolvedLocation.get()||this.stores.location.get(),a=bt(r.pathname,t?.caseSensitive??!1,t?.fuzzy??!1,i.pathname,this.processedTree);return!a||e.params&&!Ze(a.rawParams,e.params,{partial:!0})?!1:t?.includeSearch??!0?Ze(i.search,r.search,{partial:!0})?a.rawParams:!1:a.rawParams},this.hasNotFoundMatch=()=>this.stores.matches.get().some(e=>e.status===`notFound`||e.globalNotFound),this.getStoreConfig=t,this.update({defaultPreloadDelay:50,defaultPendingMs:1e3,defaultPendingMinMs:500,context:void 0,...e,caseSensitive:e.caseSensitive??!1,notFoundMode:e.notFoundMode??`fuzzy`,stringifySearch:e.stringifySearch??Xt,parseSearch:e.parseSearch??Yt,protocolAllowlist:e.protocolAllowlist??nt}),typeof document<`u`&&(self.__TSR_ROUTER__=this)}isShell(){return!!this.options.isShell}isPrerendering(){return!!this.options.isPrerendering}get state(){return this.stores.__store.get()}setRoutes({routesById:e,routesByPath:t,processedTree:n}){this.routesById=e,this.routesByPath=t,this.processedTree=n;let r=this.options.notFoundRoute;r&&(r.init({originalIndex:99999999999}),this.routesById[r.id]=r)}getRouteBranch(e){let t=this.routeBranchCache.get(e);return t||(t=Et(e),this.routeBranchCache.set(e,t)),t}get looseRoutesById(){return this.routesById}getParentContext(e){return e?.id?e.context??this.options.context??void 0:this.options.context??void 0}matchRoutesInternal(e,t){let n=this.getMatchedRoutes(e.pathname),{foundRoute:r,routeParams:i}=n,{matchedRoutes:a}=n,o=!1;(r?r.path!==`/`&&i[`**`]:It(e.pathname))&&(this.options.notFoundRoute?a=[...a,this.options.notFoundRoute]:o=!0);let s=o?Zn(this.options.notFoundMode,a):void 0,c=Array(a.length),l=new Map;for(let e of this.stores.matchStores.values())e.routeId&&l.set(e.routeId,e.get());for(let n=0;nthis.navigate({...t,_fromLocation:e}),buildLocation:this.buildLocation,cause:n.cause,abortController:n.abortController,preload:!!n.preload,matches:c,routeId:r.id};n.__routeContext=r.options.context(t)??void 0}n.context={...a,...n.__routeContext,...n.__beforeLoadContext}}}return c}matchRoutesLightweight(e){let{matchedRoutes:t,routeParams:n}=this.getMatchedRoutes(e.pathname),r=Re(t),i={...e.search};for(let e of t)try{Object.assign(i,qn(e.options.validateSearch,i))}catch{}let a=Re(this.stores.matchesId.get()),o=a&&this.stores.matchStores.get(a)?.get(),s=o&&o.routeId===r.id&&o.pathname===e.pathname,c;if(s)c=o.params;else{let e=Object.assign(Object.create(null),n);for(let n of t)try{Qn(n,e)}catch{}c=e}return{matchedRoutes:t,fullPath:r.fullPath,search:i,params:c}}},Wn=class extends Error{},Gn=class extends Error{};function Kn(e){return{loadedAt:0,isLoading:!1,isTransitioning:!1,status:`idle`,resolvedLocation:void 0,location:e,matches:[],statusCode:200}}function qn(e,t){if(e==null)return{};if(`~standard`in e){let n=e[`~standard`].validate(t);if(n instanceof Promise)throw new Wn(`Async validation not supported`);if(n.issues)throw new Wn(JSON.stringify(n.issues,void 0,2),{cause:n});return n.value}return`parse`in e?e.parse(t):typeof e==`function`?e(t):{}}function Jn({pathname:e,routesById:t,processedTree:n}){let r=Object.create(null),i=It(e),a,o=xt(i,n,!0);return o&&(a=o.route,Object.assign(r,o.rawParams)),{matchedRoutes:o?.branch||[t.__root__],routeParams:r,foundRoute:a}}function Yn({search:e,dest:t,destRoutes:n,_includeValidateSearch:r}){return Xn(n)(e,t,r??!1)}function Xn(e){let t={dest:null,_includeValidateSearch:!1,middlewares:[]};for(let n of e)`search`in n.options?n.options.search?.middlewares&&t.middlewares.push(...n.options.search.middlewares):(n.options.preSearchFilters||n.options.postSearchFilters)&&t.middlewares.push(({search:e,next:t})=>{let r=e;`preSearchFilters`in n.options&&n.options.preSearchFilters&&(r=n.options.preSearchFilters.reduce((e,t)=>t(e),e));let i=t(r);return`postSearchFilters`in n.options&&n.options.postSearchFilters?n.options.postSearchFilters.reduce((e,t)=>t(e),i):i}),n.options.validateSearch&&t.middlewares.push(({search:e,next:r})=>{let i=r(e);if(!t._includeValidateSearch)return i;try{return{...i,...qn(n.options.validateSearch,i)??void 0}}catch{return i}});t.middlewares.push(({search:e})=>{let n=t.dest;return n.search?n.search===!0?e:Be(n.search,e):{}});let n=(e,t,r)=>{if(e>=r.length)return t;let i=r[e];return i({search:t,next:t=>n(e+1,t,r)})};return function(e,r,i){return t.dest=r,t._includeValidateSearch=i,n(0,e,t.middlewares)}}function Zn(e,t){if(e!==`root`)for(let e=t.length-1;e>=0;e--){let n=t[e];if(n.children)return n.id}return $t}function Qn(e,t){let n=e.options.params?.parse??e.options.parseParams;if(n){let e=n(t);if(e===!1)throw Error(`Route params.parse returned false for a matched route`);Object.assign(t,e)}}function $n(){try{return sessionStorage}catch{return}}var er=`tsr-scroll-restoration-v1_3`,tr=$n();function nr(){try{return JSON.parse(tr?.getItem(`tsr-scroll-restoration-v1_3`)||`{}`)}catch{return{}}}function rr(){try{tr?.setItem(er,JSON.stringify(ir))}catch{}}var ir=nr(),ar=`data-scroll-restoration-id`,or=e=>e.state.__TSR_key||e.href;function sr(e){let t=e.getAttribute(ar);if(t)return`[${ar}="${t}"]`;let n=``,r=e,i;for(;i=r.parentNode;){let e=1,t=r;for(;t=t.previousElementSibling;)e++;let a=`${r.localName}:nth-child(${e})`;n=n?`${a} > ${n}`:a,r=i}return n}var cr=!1,lr=`window`;function ur(e){try{return typeof e==`function`?e():document.querySelector(e)}catch{}}function dr(e){let t=[];for(let n of e){if(n===lr)continue;let e=ur(n);e&&t.push(e)}return t}function fr(e,t){if((t??e.options.scrollRestoration)&&(e.isScrollRestoring=!0),e.isScrollRestorationSetup)return;e.isScrollRestorationSetup=!0,cr=!1;let n=e.options.getScrollRestorationKey||or,r=new Map,i=(e,t,n)=>{let i=r.get(e)||{};i.scrollX=t,i.scrollY=n,r.set(e,i)};history.scrollRestoration=`manual`;let a=t=>{if(!(cr||!e.isScrollRestoring)){if(t.target===document)i(lr,scrollX,scrollY);else{let e=t.target;i(e,e.scrollLeft,e.scrollTop)}}},o=t=>{if(!e.isScrollRestoring)return;let n=ir[t]||={};for(let[e,t]of r)e===lr?n[lr]=t:e.isConnected&&(n[sr(e)]=t)};document.addEventListener(`scroll`,a,!0),e.subscribe(`onBeforeLoad`,e=>{e.fromLocation&&o(n(e.fromLocation)),r.clear()}),addEventListener(`pagehide`,()=>{o(n(e.stores.resolvedLocation.get()??e.stores.location.get())),rr()}),e.subscribe(`onRendered`,t=>{let i=e.options.scrollRestorationBehavior,a=e.options.scrollToTopSelectors,o=e.resetNextScroll,s;if(r.clear(),o||(e.resetNextScroll=!0),typeof e.options.scrollRestoration==`function`&&!e.options.scrollRestoration({location:e.latestLocation}))return;let c=n(t.toLocation),l=t.fromLocation&&n(t.fromLocation);if(e.isScrollRestoring&&l&&l!==c){let e=ir[l];if(e){let t=ir[c];for(let n in e){if(n===lr){if(o)continue}else{let e=ur(n);if(!e||o&&a&&(s??=dr(a),s.includes(e)))continue}t||=ir[c]={},t[n]??=e[n]}}}cr=!0;try{let n=t.toLocation.hash,r=t.toLocation.state.__hashScrollIntoViewOptions??!0,l=!1;if(o){let o=Hn.get(t.toLocation),u=n&&r&&(o===`PUSH`||o===`REPLACE`),d=e.isScrollRestoring?ir[c]:void 0;if(d)for(let e in d){let{scrollX:t,scrollY:n}=d[e];if(e===lr){if(u)continue;scrollTo({top:n,left:t,behavior:i}),l=!0}else{let r=ur(e);r&&(r.scrollLeft=t,r.scrollTop=n)}}if(!l&&!n){let e={top:0,left:0,behavior:i};if(scrollTo(e),a){s??=dr(a);for(let t of s)t.scrollTo(e)}}}!l&&n&&r&&document.getElementById(n)?.scrollIntoView(r)}finally{cr=!1}})}var pr=`Error preloading route! ☝️`,mr=class{get to(){return this._to}get id(){return this._id}get path(){return this._path}get fullPath(){return this._fullPath}constructor(e){if(this.init=e=>{this.originalIndex=e.originalIndex;let t=this.options,n=!t?.path&&!t?.id;this.parentRoute=this.options.getParentRoute?.(),n?this._path=$t:this.parentRoute||st();let r=n?$t:t?.path;r&&r!==`/`&&(r=Ft(r));let i=t?.id||r,a=n?$t:Nt([this.parentRoute.id===`__root__`?``:this.parentRoute.id,i]);r===`__root__`&&(r=`/`),a!==`__root__`&&(a=Nt([`/`,a]));let o=a===`__root__`?`/`:Nt([this.parentRoute.fullPath,r]);this._path=r,this._id=a,this._fullPath=o,this._to=It(o)},this.addChildren=e=>this._addFileChildren(e),this._addFileChildren=e=>(Array.isArray(e)&&(this.children=e),typeof e==`object`&&e&&(this.children=Object.values(e)),this),this._addFileTypes=()=>this,this.updateLoader=e=>(Object.assign(this.options,e),this),this.update=e=>(Object.assign(this.options,e),this),this.lazy=e=>(this.lazyFn=e,this),this.redirect=e=>en({from:this.fullPath,...e}),this.options=e||{},this.isRoot=!e?.getParentRoute,e?.id&&e?.path)throw Error(`Route cannot have both an 'id' and a 'path' option.`)}},hr=class extends mr{constructor(e){super(e)}};function gr(e){let t=e.errorComponent??vr;return(0,V.jsx)(_r,{getResetKey:e.getResetKey,onCatch:e.onCatch,children:({error:n,reset:r})=>n?B.createElement(t,{error:n,reset:r}):e.children})}var _r=class extends B.Component{constructor(...e){super(...e),this.state={error:null}}static getDerivedStateFromProps(e,t){let n=e.getResetKey();return t.error&&t.resetKey!==n?{resetKey:n,error:null}:{resetKey:n}}static getDerivedStateFromError(e){return{error:e}}reset(){this.setState({error:null})}componentDidCatch(e,t){this.props.onCatch&&this.props.onCatch(e,t)}render(){return this.props.children({error:this.state.error,reset:()=>{this.reset()}})}};function vr({error:e}){let[t,n]=B.useState(!1);return(0,V.jsxs)(`div`,{style:{padding:`.5rem`,maxWidth:`100%`},children:[(0,V.jsxs)(`div`,{style:{display:`flex`,alignItems:`center`,gap:`.5rem`},children:[(0,V.jsx)(`strong`,{style:{fontSize:`1rem`},children:`Something went wrong!`}),(0,V.jsx)(`button`,{style:{appearance:`none`,fontSize:`.6em`,border:`1px solid currentColor`,padding:`.1rem .2rem`,fontWeight:`bold`,borderRadius:`.25rem`},onClick:()=>n(e=>!e),children:t?`Hide Error`:`Show Error`})]}),(0,V.jsx)(`div`,{style:{height:`.25rem`}}),t?(0,V.jsx)(`div`,{children:(0,V.jsx)(`pre`,{style:{fontSize:`.7em`,border:`1px solid red`,borderRadius:`.25rem`,padding:`.3rem`,color:`red`,overflow:`auto`},children:e.message?(0,V.jsx)(`code`,{children:e.message}):null})}):null]})}function yr({children:e,fallback:t=null}){return br()?(0,V.jsx)(B.Fragment,{children:e}):(0,V.jsx)(B.Fragment,{children:t})}function br(){return B.useSyncExternalStore(xr,()=>!0,()=>!1)}function xr(){return()=>{}}var Sr=B.createContext(null);function Cr(e){return B.useContext(Sr)}var wr=B.createContext(void 0),Tr=B.createContext(void 0),Er=(e=>(e[e.None=0]=`None`,e[e.Mutable=1]=`Mutable`,e[e.Watching=2]=`Watching`,e[e.RecursedCheck=4]=`RecursedCheck`,e[e.Recursed=8]=`Recursed`,e[e.Dirty=16]=`Dirty`,e[e.Pending=32]=`Pending`,e))(Er||{});function Dr({update:e,notify:t,unwatched:n}){return{link:r,unlink:i,propagate:a,checkDirty:o,shallowPropagate:s};function r(e,t,n){let r=t.depsTail;if(r!==void 0&&r.dep===e)return;let i=r===void 0?t.deps:r.nextDep;if(i!==void 0&&i.dep===e){i.version=n,t.depsTail=i;return}let a=e.subsTail;if(a!==void 0&&a.version===n&&a.sub===t)return;let o=t.depsTail=e.subsTail={version:n,dep:e,sub:t,prevDep:r,nextDep:i,prevSub:a,nextSub:void 0};i!==void 0&&(i.prevDep=o),r===void 0?t.deps=o:r.nextDep=o,a===void 0?e.subs=o:a.nextSub=o}function i(e,t=e.sub){let r=e.dep,i=e.prevDep,a=e.nextDep,o=e.nextSub,s=e.prevSub;return a===void 0?t.depsTail=i:a.prevDep=i,i===void 0?t.deps=a:i.nextDep=a,o===void 0?r.subsTail=s:o.prevSub=s,s===void 0?(r.subs=o)===void 0&&n(r):s.nextSub=o,a}function a(e){let n=e.nextSub,r;top:do{let i=e.sub,a=i.flags;if(a&60?a&12?a&4?!(a&48)&&c(e,i)?(i.flags=a|40,a&=1):a=0:i.flags=a&-9|32:a=0:i.flags=a|32,a&2&&t(i),a&1){let t=i.subs;if(t!==void 0){let i=(e=t).nextSub;i!==void 0&&(r={value:n,prev:r},n=i);continue}}if((e=n)!==void 0){n=e.nextSub;continue}for(;r!==void 0;)if(e=r.value,r=r.prev,e!==void 0){n=e.nextSub;continue top}break}while(!0)}function o(t,n){let r,i=0,a=!1;top:do{let o=t.dep,c=o.flags;if(n.flags&16)a=!0;else if((c&17)==17){if(e(o)){let e=o.subs;e.nextSub!==void 0&&s(e),a=!0}}else if((c&33)==33){(t.nextSub!==void 0||t.prevSub!==void 0)&&(r={value:t,prev:r}),t=o.deps,n=o,++i;continue}if(!a){let e=t.nextDep;if(e!==void 0){t=e;continue}}for(;i--;){let i=n.subs,o=i.nextSub!==void 0;if(o?(t=r.value,r=r.prev):t=i,a){if(e(n)){o&&s(i),n=t.sub;continue}a=!1}else n.flags&=-33;n=t.sub;let c=t.nextDep;if(c!==void 0){t=c;continue top}}return a}while(!0)}function s(e){do{let n=e.sub,r=n.flags;(r&48)==32&&(n.flags=r|16,(r&6)==2&&t(n))}while((e=e.nextSub)!==void 0)}function c(e,t){let n=t.depsTail;for(;n!==void 0;){if(n===e)return!0;n=n.prevDep}return!1}}function Or(e,t,n){let r=typeof e==`object`,i=r?e:void 0;return{next:(r?e.next:e)?.bind(i),error:(r?e.error:t)?.bind(i),complete:(r?e.complete:n)?.bind(i)}}var kr=[],Ar=0,{link:jr,unlink:Mr,propagate:Nr,checkDirty:Pr,shallowPropagate:Fr}=Dr({update(e){return e._update()},notify(e){kr[Lr++]=e,e.flags&=~Er.Watching},unwatched(e){e.depsTail!==void 0&&(e.depsTail=void 0,e.flags=Er.Mutable|Er.Dirty,Vr(e))}}),Ir=0,Lr=0,Rr,zr=0;function Br(e){try{++zr,e()}finally{--zr||Hr()}}function Vr(e){let t=e.depsTail,n=t===void 0?e.deps:t.nextDep;for(;n!==void 0;)n=Mr(n,e)}function Hr(){if(!(zr>0)){for(;Ir{i.get(),n.current?t.next?.(i._snapshot):n.current=!0});return{unsubscribe:()=>{r.stop()}}},_update(e){let a=Rr,o=t?.compare??Object.is;if(n)Rr=i,++Ar,i.depsTail=void 0;else if(e===void 0)return!1;n&&(i.flags=Er.Mutable|Er.RecursedCheck);try{let t=i._snapshot,a=typeof e==`function`?e(t):e===void 0&&n?r(t):e;return t===void 0||!o(t,a)?(i._snapshot=a,!0):!1}finally{Rr=a,n&&(i.flags&=~Er.RecursedCheck),Vr(i)}}};return n?(i.flags=Er.Mutable|Er.Dirty,i.get=function(){let e=i.flags;if(e&Er.Dirty||e&Er.Pending&&Pr(i.deps,i)){if(i._update()){let e=i.subs;e!==void 0&&Fr(e)}}else e&Er.Pending&&(i.flags=e&~Er.Pending);return Rr!==void 0&&jr(i,Rr,Ar),i._snapshot}):i.set=function(e){if(i._update(e)){let e=i.subs;e!==void 0&&(Nr(e),Fr(e),Hr())}},i}function Wr(e){let t=()=>{let t=Rr;Rr=n,++Ar,n.depsTail=void 0,n.flags=Er.Watching|Er.RecursedCheck;try{return e()}finally{Rr=t,n.flags&=~Er.RecursedCheck,Vr(n)}},n={deps:void 0,depsTail:void 0,subs:void 0,subsTail:void 0,flags:Er.Watching|Er.RecursedCheck,notify(){let e=this.flags;e&Er.Dirty||e&Er.Pending&&Pr(this.deps,this)?t():this.flags=Er.Watching},stop(){this.flags=Er.None,this.depsTail=void 0,Vr(this)}};return t(),n}var Gr=o((e=>{var t=f();function n(e,t){return e===t&&(e!==0||1/e==1/t)||e!==e&&t!==t}var r=typeof Object.is==`function`?Object.is:n,i=t.useState,a=t.useEffect,o=t.useLayoutEffect,s=t.useDebugValue;function c(e,t){var n=t(),r=i({inst:{value:n,getSnapshot:t}}),c=r[0].inst,u=r[1];return o(function(){c.value=n,c.getSnapshot=t,l(c)&&u({inst:c})},[e,n,t]),a(function(){return l(c)&&u({inst:c}),e(function(){l(c)&&u({inst:c})})},[e]),s(n),n}function l(e){var t=e.getSnapshot;e=e.value;try{var n=t();return!r(e,n)}catch{return!0}}function u(e,t){return t()}var d=typeof window>`u`||window.document===void 0||window.document.createElement===void 0?u:c;e.useSyncExternalStore=t.useSyncExternalStore===void 0?d:t.useSyncExternalStore})),Kr=o(((e,t)=>{t.exports=Gr()})),qr=o((e=>{var t=f(),n=Kr();function r(e,t){return e===t&&(e!==0||1/e==1/t)||e!==e&&t!==t}var i=typeof Object.is==`function`?Object.is:r,a=n.useSyncExternalStore,o=t.useRef,s=t.useEffect,c=t.useMemo,l=t.useDebugValue;e.useSyncExternalStoreWithSelector=function(e,t,n,r,u){var d=o(null);if(d.current===null){var f={hasValue:!1,value:null};d.current=f}else f=d.current;d=c(function(){function e(e){if(!a){if(a=!0,o=e,e=r(e),u!==void 0&&f.hasValue){var t=f.value;if(u(t,e))return s=t}return s=e}if(t=s,i(o,e))return t;var n=r(e);return u!==void 0&&u(t,n)?(o=e,t):(o=e,s=n)}var a=!1,o,s,c=n===void 0?null:n;return[function(){return e(t())},c===null?void 0:function(){return e(c())}]},[t,n,r,u]);var p=a(e,d[0],d[1]);return s(function(){f.hasValue=!0,f.value=p},[p]),l(p),p}})),Jr=o(((e,t)=>{t.exports=qr()}))();function Yr(e,t){return e===t}function Xr(e,t,n=Yr){let r=(0,B.useCallback)(t=>{if(!e)return()=>{};let{unsubscribe:n}=e.subscribe(t);return n},[e]),i=(0,B.useCallback)(()=>e?.get(),[e]);return(0,Jr.useSyncExternalStoreWithSelector)(r,i,i,t,n)}var Zr={get:()=>void 0,subscribe:()=>({unsubscribe:()=>{}})};function Qr(e){let t=Cr(),n=B.useContext(e.from?Tr:wr),r=e.from??n,i=r?e.from?t.stores.getRouteMatchStore(r):t.stores.matchStores.get(r):void 0,a=B.useRef(void 0);return Xr(i??Zr,n=>{if((e.shouldThrow??!0)&&!n&&st(),n===void 0)return;let r=e.select?e.select(n):n;if(e.structuralSharing??t.options.defaultStructuralSharing){let e=Ke(a.current,r);return a.current=e,e}return r})}function $r(e){return Qr({from:e.from,strict:e.strict,structuralSharing:e.structuralSharing,select:t=>e.select?e.select(t.loaderData):t.loaderData})}function ei(e){let{select:t,...n}=e;return Qr({...n,select:e=>t?t(e.loaderDeps):e.loaderDeps})}function ti(e){return Qr({from:e.from,shouldThrow:e.shouldThrow,structuralSharing:e.structuralSharing,strict:e.strict,select:t=>{let n=e.strict===!1?t.params:t._strictParams;return e.select?e.select(n):n}})}function ni(e){return Qr({from:e.from,strict:e.strict,shouldThrow:e.shouldThrow,structuralSharing:e.structuralSharing,select:t=>e.select?e.select(t.search):t.search})}function ri(e){let t=Cr();return B.useCallback(n=>t.navigate({...n,from:n.from??e?.from}),[e?.from,t])}function ii(e){let t=Cr(),n=ri(),r=B.useRef(null);return Pe(()=>{r.current!==e&&(n(e),r.current=e)},[t,e,n]),null}function ai(e){return Qr({...e,select:t=>e.select?e.select(t.context):t.context})}var oi=m();function si(e,t){let n=Cr(),r=Le(t),{activeProps:i,inactiveProps:a,activeOptions:o,to:s,preload:c,preloadDelay:l,preloadIntentProximity:u,hashScrollIntoView:d,replace:f,startTransition:p,resetScroll:m,viewTransition:h,children:g,target:_,disabled:v,style:y,className:b,onClick:x,onBlur:S,onFocus:C,onMouseEnter:w,onMouseLeave:T,onTouchStart:E,ignoreBlocker:D,params:O,search:k,hash:ee,state:te,mask:A,reloadDocument:j,unsafeRelative:M,from:ne,_fromLocation:N,...P}=e,re=br(),ie=B.useMemo(()=>e,[n,e.from,e._fromLocation,e.hash,e.to,e.search,e.params,e.state,e.mask,e.unsafeRelative]),ae=Xr(n.stores.location,e=>e,(e,t)=>e.href===t.href),F=B.useMemo(()=>{let e={_fromLocation:ae,...ie};return n.buildLocation(e)},[n,ae,ie]),oe=F.maskedLocation?F.maskedLocation.publicHref:F.publicHref,I=F.maskedLocation?F.maskedLocation.external:F.external,se=B.useMemo(()=>gi(oe,I,n.history,v),[v,I,oe,n.history]),L=B.useMemo(()=>{if(se?.external)return rt(se.href,n.protocolAllowlist)?void 0:se.href;if(!_i(s)&&typeof s==`string`&&s.indexOf(`:`)!==-1)try{return new URL(s),rt(s,n.protocolAllowlist)?void 0:s}catch{}},[s,se,n.protocolAllowlist]),ce=B.useMemo(()=>{if(L)return!1;if(o?.exact){if(!zt(ae.pathname,F.pathname,n.basepath))return!1}else{let e=Rt(ae.pathname,n.basepath),t=Rt(F.pathname,n.basepath);if(!(e.startsWith(t)&&(e.length===t.length||e[t.length]===`/`)))return!1}return(o?.includeSearch??!0)&&!Ze(ae.search,F.search,{partial:!o?.exact,ignoreUndefined:!o?.explicitUndefined})?!1:!o?.includeHash||re&&ae.hash===F.hash},[o?.exact,o?.explicitUndefined,o?.includeHash,o?.includeSearch,ae,L,re,F.hash,F.pathname,F.search,n.basepath]),le=ce?Be(i,{})??li:ci,ue=ce?ci:Be(a,{})??ci,de=[b,le.className,ue.className].filter(Boolean).join(` `),R=(y||le.style||ue.style)&&{...y,...le.style,...ue.style},[fe,pe]=B.useState(!1),me=B.useRef(!1),he=e.reloadDocument||L?!1:c??n.options.defaultPreload,ge=l??n.options.defaultPreloadDelay??0,_e=B.useCallback(()=>{n.preloadRoute({...ie,_builtLocation:F}).catch(e=>{console.warn(e),console.warn(pr)})},[n,ie,F]);Ie(r,B.useCallback(e=>{e?.isIntersecting&&_e()},[_e]),mi,{disabled:!!v||he!==`viewport`}),B.useEffect(()=>{me.current||!v&&he===`render`&&(_e(),me.current=!0)},[v,_e,he]);let ve=e=>{let t=e.currentTarget.getAttribute(`target`),r=_===void 0?t:_;if(!v&&!yi(e)&&!e.defaultPrevented&&(!r||r===`_self`)&&e.button===0){e.preventDefault(),(0,oi.flushSync)(()=>{pe(!0)});let t=n.subscribe(`onResolved`,()=>{t(),pe(!1)});n.navigate({...ie,replace:f,resetScroll:m,hashScrollIntoView:d,startTransition:p,viewTransition:h,ignoreBlocker:D})}};if(L)return{...P,ref:r,href:L,...g&&{children:g},..._&&{target:_},...v&&{disabled:v},...y&&{style:y},...b&&{className:b},...x&&{onClick:x},...S&&{onBlur:S},...C&&{onFocus:C},...w&&{onMouseEnter:w},...T&&{onMouseLeave:T},...E&&{onTouchStart:E}};let ye=e=>{if(v||he!==`intent`)return;if(!ge){_e();return}let t=e.currentTarget;if(pi.has(t))return;let n=setTimeout(()=>{pi.delete(t),_e()},ge);pi.set(t,n)},be=e=>{v||he!==`intent`||_e()},xe=e=>{if(v||!he||!ge)return;let t=e.currentTarget,n=pi.get(t);n&&(clearTimeout(n),pi.delete(t))};return{...P,...le,...ue,href:se?.href,ref:r,onClick:hi([x,ve]),onBlur:hi([S,xe]),onFocus:hi([C,ye]),onMouseEnter:hi([w,ye]),onMouseLeave:hi([T,xe]),onTouchStart:hi([E,be]),disabled:!!v,target:_,...R&&{style:R},...de&&{className:de},...v&&ui,...ce&&di,...re&&fe&&fi}}var ci={},li={className:`active`},ui={role:`link`,"aria-disabled":!0},di={"data-status":`active`,"aria-current":`page`},fi={"data-transitioning":`transitioning`},pi=new WeakMap,mi={rootMargin:`100px`},hi=e=>t=>{for(let n of e)if(n){if(t.defaultPrevented)return;n(t)}};function gi(e,t,n,r){if(!r)return t?{href:e,external:!0}:{href:n.createHref(e)||`/`,external:!1}}function _i(e){if(typeof e!=`string`)return!1;let t=e.charCodeAt(0);return t===47?e.charCodeAt(1)!==47:t===46}var vi=B.forwardRef((e,t)=>{let{_asChild:n,...r}=e,{type:i,...a}=si(r,t),o=typeof r.children==`function`?r.children({isActive:a[`data-status`]===`active`}):r.children;if(!n){let{disabled:e,...t}=a;return B.createElement(`a`,t,o)}return B.createElement(n,a,o)});function yi(e){return!!(e.metaKey||e.altKey||e.ctrlKey||e.shiftKey)}var bi=class extends mr{constructor(e){super(e),this.useMatch=e=>Qr({select:e?.select,from:this.id,structuralSharing:e?.structuralSharing}),this.useRouteContext=e=>ai({...e,from:this.id}),this.useSearch=e=>ni({select:e?.select,structuralSharing:e?.structuralSharing,from:this.id}),this.useParams=e=>ti({select:e?.select,structuralSharing:e?.structuralSharing,from:this.id}),this.useLoaderDeps=e=>ei({...e,from:this.id}),this.useLoaderData=e=>$r({...e,from:this.id}),this.useNavigate=()=>ri({from:this.fullPath}),this.Link=B.forwardRef((e,t)=>(0,V.jsx)(vi,{ref:t,from:this.fullPath,...e}))}};function xi(e){return new bi(e)}var Si=class extends hr{constructor(e){super(e),this.useMatch=e=>Qr({select:e?.select,from:this.id,structuralSharing:e?.structuralSharing}),this.useRouteContext=e=>ai({...e,from:this.id}),this.useSearch=e=>ni({select:e?.select,structuralSharing:e?.structuralSharing,from:this.id}),this.useParams=e=>ti({select:e?.select,structuralSharing:e?.structuralSharing,from:this.id}),this.useLoaderDeps=e=>ei({...e,from:this.id}),this.useLoaderData=e=>$r({...e,from:this.id}),this.useNavigate=()=>ri({from:this.fullPath}),this.Link=B.forwardRef((e,t)=>(0,V.jsx)(vi,{ref:t,from:this.fullPath,...e}))}};function Ci(e){return new Si(e)}function wi(e){let t=Cr(),n=`not-found-${Xr(t.stores.location,e=>e.pathname)}-${Xr(t.stores.status,e=>e)}`;return(0,V.jsx)(gr,{getResetKey:()=>n,onCatch:(t,n)=>{if(Gt(t))e.onCatch?.(t,n);else throw t},errorComponent:({error:t})=>{if(Gt(t))return e.fallback?.(t);throw t},children:e.children})}function Ti(){return(0,V.jsx)(`p`,{children:`Not Found`})}function Ei(e){return(0,V.jsx)(V.Fragment,{children:e.children})}function Di(e,t,n){return t.options.notFoundComponent?(0,V.jsx)(t.options.notFoundComponent,{...n}):e.options.defaultNotFoundComponent?(0,V.jsx)(e.options.defaultNotFoundComponent,{...n}):(0,V.jsx)(Ti,{})}var Oi=B.memo(function({matchId:e}){let t=Cr(),n=t.stores.matchStores.get(e);n||st();let r=Xr(t.stores.loadedAt,e=>e),i=Xr(n,e=>e);return(0,V.jsx)(ki,{router:t,matchId:e,resetKey:r,matchState:B.useMemo(()=>{let e=i.routeId,n=t.routesById[e].parentRoute?.id;return{routeId:e,ssr:i.ssr,_displayPending:i._displayPending,parentRouteId:n}},[i._displayPending,i.routeId,i.ssr,t.routesById])})});function ki({router:e,matchId:t,resetKey:n,matchState:r}){let i=e.routesById[r.routeId],a=i.options.pendingComponent??e.options.defaultPendingComponent,o=a?(0,V.jsx)(a,{}):null,s=i.options.errorComponent??e.options.defaultErrorComponent,c=i.options.onCatch??e.options.defaultOnCatch,l=i.isRoot?i.options.notFoundComponent??e.options.notFoundRoute?.options.component:i.options.notFoundComponent,u=r.ssr===!1||r.ssr===`data-only`,d=(!i.isRoot||i.options.wrapInSuspense||u)&&(i.options.wrapInSuspense??a??(i.options.errorComponent?.preload||u))?B.Suspense:Ei,f=s?gr:Ei,p=l?wi:Ei;return(0,V.jsxs)(i.isRoot?i.options.shellComponent??Ei:Ei,{children:[(0,V.jsx)(wr.Provider,{value:t,children:(0,V.jsx)(d,{fallback:o,children:(0,V.jsx)(f,{getResetKey:()=>n,errorComponent:s||vr,onCatch:(e,t)=>{if(Gt(e))throw e.routeId??=r.routeId,e;c?.(e,t)},children:(0,V.jsx)(p,{fallback:e=>{if(e.routeId??=r.routeId,!l||e.routeId&&e.routeId!==r.routeId||!e.routeId&&!i.isRoot)throw e;return B.createElement(l,e)},children:u||r._displayPending?(0,V.jsx)(yr,{fallback:o,children:(0,V.jsx)(ji,{matchId:t})}):(0,V.jsx)(ji,{matchId:t})})})})}),r.parentRouteId===`__root__`?(0,V.jsxs)(V.Fragment,{children:[(0,V.jsx)(Ai,{resetKey:n}),(e.options.scrollRestoration,null)]}):null]})}function Ai({resetKey:e}){let t=Cr(),n=B.useRef(void 0);return Pe(()=>{let e=t.latestLocation.href;(n.current===void 0||n.current!==e)&&(t.emit({type:`onRendered`,...Vn(t.stores.location.get(),t.stores.resolvedLocation.get())}),n.current=e)},[t.latestLocation.state.__TSR_key,e,t]),null}var ji=B.memo(function({matchId:e}){let t=Cr(),n=(e,n)=>t.getMatch(e.id)?._nonReactive[n]??e._nonReactive[n],r=t.stores.matchStores.get(e);r||st();let i=Xr(r,e=>e),a=i.routeId,o=t.routesById[a],s=B.useMemo(()=>{let e=(t.routesById[a].options.remountDeps??t.options.defaultRemountDeps)?.({routeId:a,loaderDeps:i.loaderDeps,params:i._strictParams,search:i._strictSearch});return e?JSON.stringify(e):void 0},[a,i.loaderDeps,i._strictParams,i._strictSearch,t.options.defaultRemountDeps,t.routesById]),c=B.useMemo(()=>{let e=o.options.component??t.options.defaultComponent;return e?(0,V.jsx)(e,{},s):(0,V.jsx)(Mi,{})},[s,o.options.component,t.options.defaultComponent]);if(i._displayPending)throw n(i,`displayPendingPromise`);if(i._forcePending)throw n(i,`minPendingPromise`);if(i.status===`pending`){let e=o.options.pendingMinMs??t.options.defaultPendingMinMs;if(e){let n=t.getMatch(i.id);if(n&&!n._nonReactive.minPendingPromise){let t=Qe();n._nonReactive.minPendingPromise=t,setTimeout(()=>{t.resolve(),n._nonReactive.minPendingPromise=void 0},e)}}throw n(i,`loadPromise`)}if(i.status===`notFound`)return Gt(i.error)||st(),Di(t,o,i.error);if(i.status===`redirected`)throw tn(i.error)||st(),n(i,`loadPromise`);if(i.status===`error`)throw i.error;return c}),Mi=B.memo(function(){let e=Cr(),t=B.useContext(wr),n,r=!1,i;{let a=t?e.stores.matchStores.get(t):void 0;[n,r]=Xr(a,e=>[e?.routeId,e?.globalNotFound??!1]),i=Xr(e.stores.matchesId,e=>e[e.findIndex(e=>e===t)+1])}let a=n?e.routesById[n]:void 0,o=e.options.defaultPendingComponent?(0,V.jsx)(e.options.defaultPendingComponent,{}):null;if(r)return a||st(),Di(e,a,void 0);if(!i)return null;let s=(0,V.jsx)(Oi,{matchId:i});return n===`__root__`?(0,V.jsx)(B.Suspense,{fallback:o,children:s}):s});function Ni(){let e=Cr(),t=B.useRef({router:e,mounted:!1}),[n,r]=B.useState(!1),i=Xr(e.stores.isLoading,e=>e),a=Xr(e.stores.hasPending,e=>e),o=Fe(i),s=i||n||a,c=Fe(s),l=i||a,u=Fe(l);return e.startTransition=e=>{r(!0),B.startTransition(()=>{e(),r(!1)})},B.useEffect(()=>{let t=e.history.subscribe(e.load),n=e.buildLocation({to:e.latestLocation.pathname,search:!0,params:!0,hash:!0,state:!0,_includeValidateSearch:!0});return It(e.latestLocation.publicHref)!==It(n.publicHref)&&e.commitLocation({...n,replace:!0}),()=>{t()}},[e,e.history]),Pe(()=>{typeof window<`u`&&e.ssr||t.current.router===e&&t.current.mounted||(t.current={router:e,mounted:!0},(async()=>{try{await e.load()}catch(e){console.error(e)}})())},[e]),Pe(()=>{o&&!i&&e.emit({type:`onLoad`,...Vn(e.stores.location.get(),e.stores.resolvedLocation.get())})},[o,e,i]),Pe(()=>{u&&!l&&e.emit({type:`onBeforeRouteMount`,...Vn(e.stores.location.get(),e.stores.resolvedLocation.get())})},[l,u,e]),Pe(()=>{if(c&&!s){let t=Vn(e.stores.location.get(),e.stores.resolvedLocation.get());e.emit({type:`onResolved`,...t}),Br(()=>{e.stores.status.set(`idle`),e.stores.resolvedLocation.set(e.stores.location.get())})}},[s,c,e]),null}function Pi(){let e=Cr(),t=e.routesById.__root__.options.pendingComponent??e.options.defaultPendingComponent,n=t?(0,V.jsx)(t,{}):null,r=(0,V.jsxs)(typeof document<`u`&&e.ssr?Ei:B.Suspense,{fallback:n,children:[(0,V.jsx)(Ni,{}),(0,V.jsx)(Fi,{})]});return e.options.InnerWrap?(0,V.jsx)(e.options.InnerWrap,{children:r}):r}function Fi(){let e=Cr(),t=Xr(e.stores.firstId,e=>e),n=Xr(e.stores.loadedAt,e=>e),r=t?(0,V.jsx)(Oi,{matchId:t}):null;return(0,V.jsx)(wr.Provider,{value:t,children:e.options.disableGlobalCatchBoundary?r:(0,V.jsx)(gr,{getResetKey:()=>n,errorComponent:vr,onCatch:void 0,children:r})})}var Ii=e=>({createMutableStore:Ur,createReadonlyStore:Ur,batch:Br}),Li=e=>new Ri(e),Ri=class extends Un{constructor(e){super(e,Ii)}};function zi({router:e,children:t,...n}){Ue(n)&&e.update({...e.options,...n,context:{...e.options.context,...n.context}});let r=(0,V.jsx)(Sr.Provider,{value:e,children:t});return e.options.Wrap?(0,V.jsx)(e.options.Wrap,{children:r}):r}function Bi({router:e,...t}){return(0,V.jsx)(zi,{router:e,...t,children:(0,V.jsx)(Pi,{})})}var Vi=g(),Hi=(0,B.createContext)(null),Ui=`loopx-pw-locale`,Wi={en:{"acceptance.connected":`Connected`,"acceptance.mapped":`Project mapped`,"acceptance.refreshed":`State refreshed`,"acceptance.inspected":`Adapter inspected`,"acceptance.recorded":`Run recorded`,"acceptance.judged":`Feedback recorded`,"acceptance.approved":`Approval recorded`,"acceptance.ready":`Controller readiness recorded`,"acceptance.attentionSource":`Current status`,"acceptance.visionSource":`Agent acceptance criteria`,"acceptance.todoSource":`Task state`,"acceptance.runSource":`Fresh run evidence`,"acceptance.title":`Acceptance observations`,"acceptance.unavailable":`Acceptance observations are unavailable. Goal completion is unknown.`,"acceptance.partial":`Partial observations only. Completed tasks and an empty gap list do not prove Goal acceptance.`,"acceptance.gaps":`Evidence still required`,"acceptance.reasonUnknown":`Reason not provided by the source`,"acceptance.unknown":`Unknown`,"acceptance.required":`Required evidence or condition`,"acceptance.observed":`Observed at`,"acceptance.noGaps":`No gaps in the available observations. Full acceptance has not been assessed.`,"acceptance.guards":`Pending gates`,"acceptance.noGuards":`No pending gates in the available observations.`,"acceptance.scope":`Decision scope`,"acceptance.next":`Next action from current status`,"acceptance.historical_progress":`Recorded progress`,"acceptance.historical":`Historical lifecycle observations do not grant permission or certify acceptance.`,"acceptance.missing":`Sources not available:`,"acceptance.truncated":`Only the first 12 observations are shown.`,"common.actions":`Actions`,"common.agent":`Agent`,"common.allMessages":`All messages`,"common.cancel":`Cancel`,"common.close":`Close`,"common.closeActionReceipt":`Close action receipt`,"common.confirm":`Confirm`,"common.export":`Export`,"common.failed":`Failed`,"common.goal":`Goal`,"common.loading":`Loading…`,"common.none":`None`,"common.off":`Off`,"common.on":`On`,"common.open":`Open`,"common.owner":`Owner`,"common.readOnly":`Read only`,"common.recently":`Just now`,"common.status":`Status`,"common.task":`Task`,"common.you":`You`,"common.waiting":`Waiting`,"composer.addImage":`Add image`,"composer.agentProgress":`Ask Agent for a progress report`,"composer.agentProgressPrompt":`Give me a progress report for this Goal: completed, running, blocked, and next steps.`,"composer.attachImageHint":`Choose, paste, or drag an image`,"composer.clarifyDefer":`Deferring a Todo requires a deterministic resume condition. Add todo_done:, pr_merged:[owner/repo]#, capacity_available:, or resume_at:.`,"composer.clarifySingleAction":`This message contains multiple operations that may change state. Describe one operation at a time so each confirmation preview can be reviewed separately.`,"composer.createGoal":`Create Goal`,"composer.createGoalDraft":`Goal draft`,"composer.createGoalDraftDescription":`Complete the draft and send it. LoopX will show a confirmation preview first.`,"composer.createGoalDraftLead":`Create a long-term Goal:`,"composer.createGoalTemplate":`Create a long-term Goal: Objective: Completion criteria: Execution boundary (optional): @@ -105,25 +105,25 @@ Goal: } } - `)}t.write(`payload.value = newResult;`),t.write(`return payload;`);let s=t.compile();return(t,n)=>s(e,t,n)},a,o=ga,s=!ta.jitless,c=s&&_a.value,l=t.catchall,u;e._zod.parse=(d,f)=>{u??=r.value;let p=d.value;return o(p)?s&&c&&f?.async===!1&&f.jitless!==!0?(a||=i(t.shape),d=a(d,f),l?Vs([],p,d,f,u,e):d):n(d,f):(d.issues.push({expected:`object`,code:`invalid_type`,input:p,inst:e}),d)}});function Ws(e,t,n,r){for(let n of e)if(n.issues.length===0)return t.value=n.value,t;let i=e.filter(e=>!Ma(e));return i.length===1?(t.value=i[0].value,i[0]):(t.issues.push({code:`invalid_union`,input:t.value,inst:n,errors:e.map(e=>e.issues.map(e=>Ia(e,r,na())))}),t)}var Gs=H(`$ZodUnion`,(e,t)=>{ns.init(e,t),ua(e._zod,`optin`,()=>t.options.some(e=>e._zod.optin===`optional`)?`optional`:void 0),ua(e._zod,`optout`,()=>t.options.some(e=>e._zod.optout===`optional`)?`optional`:void 0),ua(e._zod,`values`,()=>{if(t.options.every(e=>e._zod.values))return new Set(t.options.flatMap(e=>Array.from(e._zod.values)))}),ua(e._zod,`pattern`,()=>{if(t.options.every(e=>e._zod.pattern)){let e=t.options.map(e=>e._zod.pattern);return RegExp(`^(${e.map(e=>sa(e.source)).join(`|`)})$`)}});let n=t.options.length===1?t.options[0]._zod.run:null;e._zod.parse=(r,i)=>{if(n)return n(r,i);let a=!1,o=[];for(let e of t.options){let t=e._zod.run({value:r.value,issues:[]},i);if(t instanceof Promise)o.push(t),a=!0;else{if(t.issues.length===0)return t;o.push(t)}}return a?Promise.all(o).then(t=>Ws(t,r,e,i)):Ws(o,r,e,i)}}),Ks=H(`$ZodIntersection`,(e,t)=>{ns.init(e,t),e._zod.parse=(e,n)=>{let r=e.value,i=t.left._zod.run({value:r,issues:[]},n),a=t.right._zod.run({value:r,issues:[]},n);return i instanceof Promise||a instanceof Promise?Promise.all([i,a]).then(([t,n])=>Js(e,t,n)):Js(e,i,a)}});function qs(e,t){if(e===t||e instanceof Date&&t instanceof Date&&+e==+t)return{valid:!0,data:e};if(va(e)&&va(t)){let n=Object.keys(t),r=Object.keys(e).filter(e=>n.indexOf(e)!==-1),i={...e,...t};for(let n of r){let r=qs(e[n],t[n]);if(!r.valid)return{valid:!1,mergeErrorPath:[n,...r.mergeErrorPath]};i[n]=r.data}return{valid:!0,data:i}}if(Array.isArray(e)&&Array.isArray(t)){if(e.length!==t.length)return{valid:!1,mergeErrorPath:[]};let n=[];for(let r=0;re.l&&e.r).map(([e])=>e);if(a.length&&i&&e.issues.push({...i,keys:a}),Ma(e))return e;let o=qs(t.value,n.value);if(!o.valid)throw Error(`Unmergable intersection. Error path: ${JSON.stringify(o.mergeErrorPath)}`);return e.value=o.data,e}var Ys=H(`$ZodTuple`,(e,t)=>{ns.init(e,t);let n=t.items;e._zod.parse=(r,i)=>{let a=r.value;if(!Array.isArray(a))return r.issues.push({input:a,inst:e,expected:`tuple`,code:`invalid_type`}),r;r.value=[];let o=[],s=Xs(n,`optin`),c=Xs(n,`optout`);if(!t.rest){if(a.lengthn.length&&r.issues.push({code:`too_big`,maximum:n.length,inclusive:!0,input:a,inst:e,origin:`array`})}let l=Array(n.length);for(let e=0;e{l[e]=t})):l[e]=t}if(t.rest){let e=n.length-1,s=a.slice(n.length);for(let n of s){e++;let a=t.rest._zod.run({value:n,issues:[]},i);a instanceof Promise?o.push(a.then(t=>Zs(t,r,e))):Zs(a,r,e)}}return o.length?Promise.all(o).then(()=>Qs(l,r,n,a,c)):Qs(l,r,n,a,c)}});function Xs(e,t){for(let n=e.length-1;n>=0;n--)if(e[n]._zod[t]!==`optional`)return n+1;return 0}function Zs(e,t,n){e.issues.length&&t.issues.push(...Pa(n,e.issues)),t.value[n]=e.value}function Qs(e,t,n,r,i){for(let a=0;a=i){t.value.length=a;break}t.issues.push(...Pa(a,n.issues))}t.value[a]=n.value}for(let e=t.value.length-1;e>=r.length&&n[e]._zod.optout===`optional`&&t.value[e]===void 0;e--)t.value.length=e;return t}var $s=H(`$ZodRecord`,(e,t)=>{ns.init(e,t),e._zod.parse=(n,r)=>{let i=n.value;if(!va(i))return n.issues.push({expected:`record`,code:`invalid_type`,input:i,inst:e}),n;let a=[],o=t.keyType._zod.values;if(o){n.value={};let s=new Set;for(let c of o)if(typeof c==`string`||typeof c==`number`||typeof c==`symbol`){s.add(typeof c==`number`?c.toString():c);let o=t.keyType._zod.run({value:c,issues:[]},r);if(o instanceof Promise)throw Error(`Async schemas not supported in object keys currently`);if(o.issues.length){n.issues.push({code:`invalid_key`,origin:`record`,issues:o.issues.map(e=>Ia(e,r,na())),input:c,path:[c],inst:e});continue}let l=o.value,u=t.valueType._zod.run({value:i[c],issues:[]},r);u instanceof Promise?a.push(u.then(e=>{e.issues.length&&n.issues.push(...Pa(c,e.issues)),n.value[l]=e.value})):(u.issues.length&&n.issues.push(...Pa(c,u.issues)),n.value[l]=u.value)}let c;for(let e in i)s.has(e)||(c??=[],c.push(e));c&&c.length>0&&n.issues.push({code:`unrecognized_keys`,input:i,inst:e,keys:c})}else{n.value={};for(let o of Reflect.ownKeys(i)){if(o===`__proto__`||!Object.prototype.propertyIsEnumerable.call(i,o))continue;let s=t.keyType._zod.run({value:o,issues:[]},r);if(s instanceof Promise)throw Error(`Async schemas not supported in object keys currently`);if(typeof o==`string`&&Mo.test(o)&&s.issues.length){let e=t.keyType._zod.run({value:Number(o),issues:[]},r);if(e instanceof Promise)throw Error(`Async schemas not supported in object keys currently`);e.issues.length===0&&(s=e)}if(s.issues.length){t.mode===`loose`?n.value[o]=i[o]:n.issues.push({code:`invalid_key`,origin:`record`,issues:s.issues.map(e=>Ia(e,r,na())),input:o,path:[o],inst:e});continue}let c=t.valueType._zod.run({value:i[o],issues:[]},r);c instanceof Promise?a.push(c.then(e=>{e.issues.length&&n.issues.push(...Pa(o,e.issues)),n.value[s.value]=e.value})):(c.issues.length&&n.issues.push(...Pa(o,c.issues)),n.value[s.value]=c.value)}}return a.length?Promise.all(a).then(()=>n):n}}),ec=H(`$ZodEnum`,(e,t)=>{ns.init(e,t);let n=ra(t.entries),r=new Set(n);e._zod.values=r,e._zod.pattern=RegExp(`^(${n.filter(e=>ba.has(typeof e)).map(e=>typeof e==`string`?xa(e):e.toString()).join(`|`)})$`),e._zod.parse=(t,i)=>{let a=t.value;return r.has(a)||t.issues.push({code:`invalid_value`,values:n,input:a,inst:e}),t}}),tc=H(`$ZodLiteral`,(e,t)=>{if(ns.init(e,t),t.values.length===0)throw Error(`Cannot create literal schema with no valid values`);let n=new Set(t.values);e._zod.values=n,e._zod.pattern=RegExp(`^(${t.values.map(e=>typeof e==`string`?xa(e):e?xa(e.toString()):String(e)).join(`|`)})$`),e._zod.parse=(r,i)=>{let a=r.value;return n.has(a)||r.issues.push({code:`invalid_value`,values:t.values,input:a,inst:e}),r}}),nc=H(`$ZodTransform`,(e,t)=>{ns.init(e,t),e._zod.optin=`optional`,e._zod.parse=(n,r)=>{if(r.direction===`backward`)throw new ea(e.constructor.name);let i=t.transform(n.value,n);if(r.async)return(i instanceof Promise?i:Promise.resolve(i)).then(e=>(n.value=e,n.fallback=!0,n));if(i instanceof Promise)throw new $i;return n.value=i,n.fallback=!0,n}});function rc(e,t){return t===void 0&&(e.issues.length||e.fallback)?{issues:[],value:void 0}:e}var ic=H(`$ZodOptional`,(e,t)=>{ns.init(e,t),e._zod.optin=`optional`,e._zod.optout=`optional`,ua(e._zod,`values`,()=>t.innerType._zod.values?new Set([...t.innerType._zod.values,void 0]):void 0),ua(e._zod,`pattern`,()=>{let e=t.innerType._zod.pattern;return e?RegExp(`^(${sa(e.source)})?$`):void 0}),e._zod.parse=(e,n)=>{if(t.innerType._zod.optin===`optional`){let r=e.value,i=t.innerType._zod.run(e,n);return i instanceof Promise?i.then(e=>rc(e,r)):rc(i,r)}return e.value===void 0?e:t.innerType._zod.run(e,n)}}),ac=H(`$ZodExactOptional`,(e,t)=>{ic.init(e,t),ua(e._zod,`values`,()=>t.innerType._zod.values),ua(e._zod,`pattern`,()=>t.innerType._zod.pattern),e._zod.parse=(e,n)=>t.innerType._zod.run(e,n)}),oc=H(`$ZodNullable`,(e,t)=>{ns.init(e,t),ua(e._zod,`optin`,()=>t.innerType._zod.optin),ua(e._zod,`optout`,()=>t.innerType._zod.optout),ua(e._zod,`pattern`,()=>{let e=t.innerType._zod.pattern;return e?RegExp(`^(${sa(e.source)}|null)$`):void 0}),ua(e._zod,`values`,()=>t.innerType._zod.values?new Set([...t.innerType._zod.values,null]):void 0),e._zod.parse=(e,n)=>e.value===null?e:t.innerType._zod.run(e,n)}),sc=H(`$ZodDefault`,(e,t)=>{ns.init(e,t),e._zod.optin=`optional`,ua(e._zod,`values`,()=>t.innerType._zod.values),e._zod.parse=(e,n)=>{if(n.direction===`backward`)return t.innerType._zod.run(e,n);if(e.value===void 0)return e.value=t.defaultValue,e;let r=t.innerType._zod.run(e,n);return r instanceof Promise?r.then(e=>cc(e,t)):cc(r,t)}});function cc(e,t){return e.value===void 0&&(e.value=t.defaultValue),e}var lc=H(`$ZodPrefault`,(e,t)=>{ns.init(e,t),e._zod.optin=`optional`,ua(e._zod,`values`,()=>t.innerType._zod.values),e._zod.parse=(e,n)=>(n.direction===`backward`||e.value===void 0&&(e.value=t.defaultValue),t.innerType._zod.run(e,n))}),uc=H(`$ZodNonOptional`,(e,t)=>{ns.init(e,t),ua(e._zod,`values`,()=>{let e=t.innerType._zod.values;return e?new Set([...e].filter(e=>e!==void 0)):void 0}),e._zod.parse=(n,r)=>{let i=t.innerType._zod.run(n,r);return i instanceof Promise?i.then(t=>dc(t,e)):dc(i,e)}});function dc(e,t){return!e.issues.length&&e.value===void 0&&e.issues.push({code:`invalid_type`,expected:`nonoptional`,input:e.value,inst:t}),e}var fc=H(`$ZodCatch`,(e,t)=>{ns.init(e,t),e._zod.optin=`optional`,ua(e._zod,`optout`,()=>t.innerType._zod.optout),ua(e._zod,`values`,()=>t.innerType._zod.values),e._zod.parse=(e,n)=>{if(n.direction===`backward`)return t.innerType._zod.run(e,n);let r=t.innerType._zod.run(e,n);return r instanceof Promise?r.then(r=>(e.value=r.value,r.issues.length&&(e.value=t.catchValue({...e,error:{issues:r.issues.map(e=>Ia(e,n,na()))},input:e.value}),e.issues=[],e.fallback=!0),e)):(e.value=r.value,r.issues.length&&(e.value=t.catchValue({...e,error:{issues:r.issues.map(e=>Ia(e,n,na()))},input:e.value}),e.issues=[],e.fallback=!0),e)}}),pc=H(`$ZodPipe`,(e,t)=>{ns.init(e,t),ua(e._zod,`values`,()=>t.in._zod.values),ua(e._zod,`optin`,()=>t.in._zod.optin),ua(e._zod,`optout`,()=>t.out._zod.optout),ua(e._zod,`propValues`,()=>t.in._zod.propValues),e._zod.parse=(e,n)=>{if(n.direction===`backward`){let r=t.out._zod.run(e,n);return r instanceof Promise?r.then(e=>mc(e,t.in,n)):mc(r,t.in,n)}let r=t.in._zod.run(e,n);return r instanceof Promise?r.then(e=>mc(e,t.out,n)):mc(r,t.out,n)}});function mc(e,t,n){return e.issues.length?(e.aborted=!0,e):t._zod.run({value:e.value,issues:e.issues,fallback:e.fallback},n)}var hc=H(`$ZodReadonly`,(e,t)=>{ns.init(e,t),ua(e._zod,`propValues`,()=>t.innerType._zod.propValues),ua(e._zod,`values`,()=>t.innerType._zod.values),ua(e._zod,`optin`,()=>t.innerType?._zod?.optin),ua(e._zod,`optout`,()=>t.innerType?._zod?.optout),e._zod.parse=(e,n)=>{if(n.direction===`backward`)return t.innerType._zod.run(e,n);let r=t.innerType._zod.run(e,n);return r instanceof Promise?r.then(gc):gc(r)}});function gc(e){return e.value=Object.freeze(e.value),e}var _c=H(`$ZodCustom`,(e,t)=>{Lo.init(e,t),ns.init(e,t),e._zod.parse=(e,t)=>e,e._zod.check=n=>{let r=n.value,i=t.fn(r);if(i instanceof Promise)return i.then(t=>vc(t,n,r,e));vc(i,n,r,e)}});function vc(e,t,n,r){if(!e){let e={code:`custom`,input:n,inst:r,path:[...r._zod.def.path??[]],continue:!r._zod.def.abort};r._zod.def.params&&(e.params=r._zod.def.params),t.issues.push(Ra(e))}}var yc,bc=class{constructor(){this._map=new WeakMap,this._idmap=new Map}add(e,...t){let n=t[0];return this._map.set(e,n),n&&typeof n==`object`&&`id`in n&&this._idmap.set(n.id,e),this}clear(){return this._map=new WeakMap,this._idmap=new Map,this}remove(e){let t=this._map.get(e);return t&&typeof t==`object`&&`id`in t&&this._idmap.delete(t.id),this._map.delete(e),this}get(e){let t=e._zod.parent;if(t){let n={...this.get(t)??{}};delete n.id;let r={...n,...this._map.get(e)};return Object.keys(r).length?r:void 0}return this._map.get(e)}has(e){return this._map.has(e)}};function xc(){return new bc}(yc=globalThis).__zod_globalRegistry??(yc.__zod_globalRegistry=xc());var Sc=globalThis.__zod_globalRegistry;function Cc(e,t){return new e({type:`string`,...U(t)})}function wc(e,t){return new e({type:`string`,format:`email`,check:`string_format`,abort:!1,...U(t)})}function Tc(e,t){return new e({type:`string`,format:`guid`,check:`string_format`,abort:!1,...U(t)})}function Ec(e,t){return new e({type:`string`,format:`uuid`,check:`string_format`,abort:!1,...U(t)})}function Dc(e,t){return new e({type:`string`,format:`uuid`,check:`string_format`,abort:!1,version:`v4`,...U(t)})}function Oc(e,t){return new e({type:`string`,format:`uuid`,check:`string_format`,abort:!1,version:`v6`,...U(t)})}function kc(e,t){return new e({type:`string`,format:`uuid`,check:`string_format`,abort:!1,version:`v7`,...U(t)})}function Ac(e,t){return new e({type:`string`,format:`url`,check:`string_format`,abort:!1,...U(t)})}function jc(e,t){return new e({type:`string`,format:`emoji`,check:`string_format`,abort:!1,...U(t)})}function Mc(e,t){return new e({type:`string`,format:`nanoid`,check:`string_format`,abort:!1,...U(t)})}function Nc(e,t){return new e({type:`string`,format:`cuid`,check:`string_format`,abort:!1,...U(t)})}function Pc(e,t){return new e({type:`string`,format:`cuid2`,check:`string_format`,abort:!1,...U(t)})}function Fc(e,t){return new e({type:`string`,format:`ulid`,check:`string_format`,abort:!1,...U(t)})}function Ic(e,t){return new e({type:`string`,format:`xid`,check:`string_format`,abort:!1,...U(t)})}function Lc(e,t){return new e({type:`string`,format:`ksuid`,check:`string_format`,abort:!1,...U(t)})}function Rc(e,t){return new e({type:`string`,format:`ipv4`,check:`string_format`,abort:!1,...U(t)})}function zc(e,t){return new e({type:`string`,format:`ipv6`,check:`string_format`,abort:!1,...U(t)})}function Bc(e,t){return new e({type:`string`,format:`cidrv4`,check:`string_format`,abort:!1,...U(t)})}function Vc(e,t){return new e({type:`string`,format:`cidrv6`,check:`string_format`,abort:!1,...U(t)})}function Hc(e,t){return new e({type:`string`,format:`base64`,check:`string_format`,abort:!1,...U(t)})}function Uc(e,t){return new e({type:`string`,format:`base64url`,check:`string_format`,abort:!1,...U(t)})}function Wc(e,t){return new e({type:`string`,format:`e164`,check:`string_format`,abort:!1,...U(t)})}function Gc(e,t){return new e({type:`string`,format:`jwt`,check:`string_format`,abort:!1,...U(t)})}function Kc(e,t){return new e({type:`string`,format:`datetime`,check:`string_format`,offset:!1,local:!1,precision:null,...U(t)})}function qc(e,t){return new e({type:`string`,format:`date`,check:`string_format`,...U(t)})}function Jc(e,t){return new e({type:`string`,format:`time`,check:`string_format`,precision:null,...U(t)})}function Yc(e,t){return new e({type:`string`,format:`duration`,check:`string_format`,...U(t)})}function Xc(e,t){return new e({type:`number`,checks:[],...U(t)})}function Zc(e,t){return new e({type:`number`,check:`number_format`,abort:!1,format:`safeint`,...U(t)})}function Qc(e,t){return new e({type:`boolean`,...U(t)})}function $c(e,t){return new e({type:`null`,...U(t)})}function el(e){return new e({type:`unknown`})}function tl(e,t){return new e({type:`never`,...U(t)})}function nl(e,t){return new zo({check:`less_than`,...U(t),value:e,inclusive:!1})}function rl(e,t){return new zo({check:`less_than`,...U(t),value:e,inclusive:!0})}function il(e,t){return new Bo({check:`greater_than`,...U(t),value:e,inclusive:!1})}function al(e,t){return new Bo({check:`greater_than`,...U(t),value:e,inclusive:!0})}function ol(e,t){return new Vo({check:`multiple_of`,...U(t),value:e})}function sl(e,t){return new Uo({check:`max_length`,...U(t),maximum:e})}function cl(e,t){return new Wo({check:`min_length`,...U(t),minimum:e})}function ll(e,t){return new Go({check:`length_equals`,...U(t),length:e})}function ul(e,t){return new qo({check:`string_format`,format:`regex`,...U(t),pattern:e})}function dl(e){return new Jo({check:`string_format`,format:`lowercase`,...U(e)})}function fl(e){return new Yo({check:`string_format`,format:`uppercase`,...U(e)})}function pl(e,t){return new Xo({check:`string_format`,format:`includes`,...U(t),includes:e})}function ml(e,t){return new Zo({check:`string_format`,format:`starts_with`,...U(t),prefix:e})}function hl(e,t){return new Qo({check:`string_format`,format:`ends_with`,...U(t),suffix:e})}function gl(e){return new $o({check:`overwrite`,tx:e})}function _l(e){return gl(t=>t.normalize(e))}function vl(){return gl(e=>e.trim())}function yl(){return gl(e=>e.toLowerCase())}function bl(){return gl(e=>e.toUpperCase())}function xl(){return gl(e=>ma(e))}function Sl(e,t,n){return new e({type:`array`,element:t,...U(n)})}function Cl(e,t,n){return new e({type:`custom`,check:`custom`,fn:t,...U(n)})}function wl(e,t){let n=Tl(t=>(t.addIssue=e=>{if(typeof e==`string`)t.issues.push(Ra(e,t.value,n._zod.def));else{let r=e;r.fatal&&(r.continue=!1),r.code??=`custom`,r.input??=t.value,r.inst??=n,r.continue??=!n._zod.def.abort,t.issues.push(Ra(r))}},e(t.value,t)),t);return n}function Tl(e,t){let n=new Lo({check:`custom`,...U(t)});return n._zod.check=e,n}function El(e){let t=e?.target??`draft-2020-12`;return t===`draft-4`&&(t=`draft-04`),t===`draft-7`&&(t=`draft-07`),{processors:e.processors??{},metadataRegistry:e?.metadata??Sc,target:t,unrepresentable:e?.unrepresentable??`throw`,override:e?.override??(()=>{}),io:e?.io??`output`,counter:0,seen:new Map,cycles:e?.cycles??`ref`,reused:e?.reused??`inline`,external:e?.external??void 0}}function Dl(e,t,n={path:[],schemaPath:[]}){var r;let i=e._zod.def,a=t.seen.get(e);if(a)return a.count++,n.schemaPath.includes(e)&&(a.cycle=n.path),a.schema;let o={schema:{},count:1,cycle:void 0,path:n.path};t.seen.set(e,o);let s=e._zod.toJSONSchema?.();if(s)o.schema=s;else{let r={...n,schemaPath:[...n.schemaPath,e],path:n.path};if(e._zod.processJSONSchema)e._zod.processJSONSchema(t,o.schema,r);else{let n=o.schema,a=t.processors[i.type];if(!a)throw Error(`[toJSONSchema]: Non-representable type encountered: ${i.type}`);a(e,t,n,r)}let a=e._zod.parent;a&&(o.ref||=a,Dl(a,t,r),t.seen.get(a).isParent=!0)}let c=t.metadataRegistry.get(e);return c&&Object.assign(o.schema,c),t.io===`input`&&Al(e)&&(delete o.schema.examples,delete o.schema.default),t.io===`input`&&`_prefault`in o.schema&&((r=o.schema).default??(r.default=o.schema._prefault)),delete o.schema._prefault,t.seen.get(e).schema}function Ol(e,t){let n=e.seen.get(t);if(!n)throw Error(`Unprocessed schema. This is a bug in Zod.`);let r=new Map;for(let t of e.seen.entries()){let n=e.metadataRegistry.get(t[0])?.id;if(n){let e=r.get(n);if(e&&e!==t[0])throw Error(`Duplicate schema id "${n}" detected during JSON Schema conversion. Two different schemas cannot share the same id when converted together.`);r.set(n,t[0])}}let i=t=>{let r=e.target===`draft-2020-12`?`$defs`:`definitions`;if(e.external){let n=e.external.registry.get(t[0])?.id,i=e.external.uri??(e=>e);if(n)return{ref:i(n)};let a=t[1].defId??t[1].schema.id??`schema${e.counter++}`;return t[1].defId=a,{defId:a,ref:`${i(`__shared`)}#/${r}/${a}`}}if(t[1]===n)return{ref:`#`};let i=`#/${r}/`,a=t[1].schema.id??`__schema${e.counter++}`;return{defId:a,ref:i+a}},a=e=>{if(e[1].schema.$ref)return;let t=e[1],{ref:n,defId:r}=i(e);t.def={...t.schema},r&&(t.defId=r);let a=t.schema;for(let e in a)delete a[e];a.$ref=n};if(e.cycles===`throw`)for(let t of e.seen.entries()){let e=t[1];if(e.cycle)throw Error(`Cycle detected: #/${e.cycle?.join(`/`)}/ + `)}t.write(`payload.value = newResult;`),t.write(`return payload;`);let s=t.compile();return(t,n)=>s(e,t,n)},a,o=ga,s=!ta.jitless,c=s&&_a.value,l=t.catchall,u;e._zod.parse=(d,f)=>{u??=r.value;let p=d.value;return o(p)?s&&c&&f?.async===!1&&f.jitless!==!0?(a||=i(t.shape),d=a(d,f),l?Vs([],p,d,f,u,e):d):n(d,f):(d.issues.push({expected:`object`,code:`invalid_type`,input:p,inst:e}),d)}});function Ws(e,t,n,r){for(let n of e)if(n.issues.length===0)return t.value=n.value,t;let i=e.filter(e=>!Ma(e));return i.length===1?(t.value=i[0].value,i[0]):(t.issues.push({code:`invalid_union`,input:t.value,inst:n,errors:e.map(e=>e.issues.map(e=>Ia(e,r,na())))}),t)}var Gs=H(`$ZodUnion`,(e,t)=>{ns.init(e,t),ua(e._zod,`optin`,()=>t.options.some(e=>e._zod.optin===`optional`)?`optional`:void 0),ua(e._zod,`optout`,()=>t.options.some(e=>e._zod.optout===`optional`)?`optional`:void 0),ua(e._zod,`values`,()=>{if(t.options.every(e=>e._zod.values))return new Set(t.options.flatMap(e=>Array.from(e._zod.values)))}),ua(e._zod,`pattern`,()=>{if(t.options.every(e=>e._zod.pattern)){let e=t.options.map(e=>e._zod.pattern);return RegExp(`^(${e.map(e=>sa(e.source)).join(`|`)})$`)}});let n=t.options.length===1?t.options[0]._zod.run:null;e._zod.parse=(r,i)=>{if(n)return n(r,i);let a=!1,o=[];for(let e of t.options){let t=e._zod.run({value:r.value,issues:[]},i);if(t instanceof Promise)o.push(t),a=!0;else{if(t.issues.length===0)return t;o.push(t)}}return a?Promise.all(o).then(t=>Ws(t,r,e,i)):Ws(o,r,e,i)}}),Ks=H(`$ZodDiscriminatedUnion`,(e,t)=>{t.inclusive=!1,Gs.init(e,t);let n=e._zod.parse;ua(e._zod,`propValues`,()=>{let e={};for(let n of t.options){let r=n._zod.propValues;if(!r||Object.keys(r).length===0)throw Error(`Invalid discriminated union option at index "${t.options.indexOf(n)}"`);for(let[t,n]of Object.entries(r)){e[t]||(e[t]=new Set);for(let r of n)e[t].add(r)}}return e});let r=aa(()=>{let e=t.options,n=new Map;for(let r of e){let e=r._zod.propValues?.[t.discriminator];if(!e||e.size===0)throw Error(`Invalid discriminated union option at index "${t.options.indexOf(r)}"`);for(let t of e){if(n.has(t))throw Error(`Duplicate discriminator value "${String(t)}"`);n.set(t,r)}}return n});e._zod.parse=(i,a)=>{let o=i.value;if(!ga(o))return i.issues.push({code:`invalid_type`,expected:`object`,input:o,inst:e}),i;let s=r.value.get(o?.[t.discriminator]);return s?s._zod.run(i,a):t.unionFallback||a.direction===`backward`?n(i,a):(i.issues.push({code:`invalid_union`,errors:[],note:`No matching discriminator`,discriminator:t.discriminator,options:Array.from(r.value.keys()),input:o,path:[t.discriminator],inst:e}),i)}}),qs=H(`$ZodIntersection`,(e,t)=>{ns.init(e,t),e._zod.parse=(e,n)=>{let r=e.value,i=t.left._zod.run({value:r,issues:[]},n),a=t.right._zod.run({value:r,issues:[]},n);return i instanceof Promise||a instanceof Promise?Promise.all([i,a]).then(([t,n])=>Ys(e,t,n)):Ys(e,i,a)}});function Js(e,t){if(e===t||e instanceof Date&&t instanceof Date&&+e==+t)return{valid:!0,data:e};if(va(e)&&va(t)){let n=Object.keys(t),r=Object.keys(e).filter(e=>n.indexOf(e)!==-1),i={...e,...t};for(let n of r){let r=Js(e[n],t[n]);if(!r.valid)return{valid:!1,mergeErrorPath:[n,...r.mergeErrorPath]};i[n]=r.data}return{valid:!0,data:i}}if(Array.isArray(e)&&Array.isArray(t)){if(e.length!==t.length)return{valid:!1,mergeErrorPath:[]};let n=[];for(let r=0;re.l&&e.r).map(([e])=>e);if(a.length&&i&&e.issues.push({...i,keys:a}),Ma(e))return e;let o=Js(t.value,n.value);if(!o.valid)throw Error(`Unmergable intersection. Error path: ${JSON.stringify(o.mergeErrorPath)}`);return e.value=o.data,e}var Xs=H(`$ZodTuple`,(e,t)=>{ns.init(e,t);let n=t.items;e._zod.parse=(r,i)=>{let a=r.value;if(!Array.isArray(a))return r.issues.push({input:a,inst:e,expected:`tuple`,code:`invalid_type`}),r;r.value=[];let o=[],s=Zs(n,`optin`),c=Zs(n,`optout`);if(!t.rest){if(a.lengthn.length&&r.issues.push({code:`too_big`,maximum:n.length,inclusive:!0,input:a,inst:e,origin:`array`})}let l=Array(n.length);for(let e=0;e{l[e]=t})):l[e]=t}if(t.rest){let e=n.length-1,s=a.slice(n.length);for(let n of s){e++;let a=t.rest._zod.run({value:n,issues:[]},i);a instanceof Promise?o.push(a.then(t=>Qs(t,r,e))):Qs(a,r,e)}}return o.length?Promise.all(o).then(()=>$s(l,r,n,a,c)):$s(l,r,n,a,c)}});function Zs(e,t){for(let n=e.length-1;n>=0;n--)if(e[n]._zod[t]!==`optional`)return n+1;return 0}function Qs(e,t,n){e.issues.length&&t.issues.push(...Pa(n,e.issues)),t.value[n]=e.value}function $s(e,t,n,r,i){for(let a=0;a=i){t.value.length=a;break}t.issues.push(...Pa(a,n.issues))}t.value[a]=n.value}for(let e=t.value.length-1;e>=r.length&&n[e]._zod.optout===`optional`&&t.value[e]===void 0;e--)t.value.length=e;return t}var ec=H(`$ZodRecord`,(e,t)=>{ns.init(e,t),e._zod.parse=(n,r)=>{let i=n.value;if(!va(i))return n.issues.push({expected:`record`,code:`invalid_type`,input:i,inst:e}),n;let a=[],o=t.keyType._zod.values;if(o){n.value={};let s=new Set;for(let c of o)if(typeof c==`string`||typeof c==`number`||typeof c==`symbol`){s.add(typeof c==`number`?c.toString():c);let o=t.keyType._zod.run({value:c,issues:[]},r);if(o instanceof Promise)throw Error(`Async schemas not supported in object keys currently`);if(o.issues.length){n.issues.push({code:`invalid_key`,origin:`record`,issues:o.issues.map(e=>Ia(e,r,na())),input:c,path:[c],inst:e});continue}let l=o.value,u=t.valueType._zod.run({value:i[c],issues:[]},r);u instanceof Promise?a.push(u.then(e=>{e.issues.length&&n.issues.push(...Pa(c,e.issues)),n.value[l]=e.value})):(u.issues.length&&n.issues.push(...Pa(c,u.issues)),n.value[l]=u.value)}let c;for(let e in i)s.has(e)||(c??=[],c.push(e));c&&c.length>0&&n.issues.push({code:`unrecognized_keys`,input:i,inst:e,keys:c})}else{n.value={};for(let o of Reflect.ownKeys(i)){if(o===`__proto__`||!Object.prototype.propertyIsEnumerable.call(i,o))continue;let s=t.keyType._zod.run({value:o,issues:[]},r);if(s instanceof Promise)throw Error(`Async schemas not supported in object keys currently`);if(typeof o==`string`&&Mo.test(o)&&s.issues.length){let e=t.keyType._zod.run({value:Number(o),issues:[]},r);if(e instanceof Promise)throw Error(`Async schemas not supported in object keys currently`);e.issues.length===0&&(s=e)}if(s.issues.length){t.mode===`loose`?n.value[o]=i[o]:n.issues.push({code:`invalid_key`,origin:`record`,issues:s.issues.map(e=>Ia(e,r,na())),input:o,path:[o],inst:e});continue}let c=t.valueType._zod.run({value:i[o],issues:[]},r);c instanceof Promise?a.push(c.then(e=>{e.issues.length&&n.issues.push(...Pa(o,e.issues)),n.value[s.value]=e.value})):(c.issues.length&&n.issues.push(...Pa(o,c.issues)),n.value[s.value]=c.value)}}return a.length?Promise.all(a).then(()=>n):n}}),tc=H(`$ZodEnum`,(e,t)=>{ns.init(e,t);let n=ra(t.entries),r=new Set(n);e._zod.values=r,e._zod.pattern=RegExp(`^(${n.filter(e=>ba.has(typeof e)).map(e=>typeof e==`string`?xa(e):e.toString()).join(`|`)})$`),e._zod.parse=(t,i)=>{let a=t.value;return r.has(a)||t.issues.push({code:`invalid_value`,values:n,input:a,inst:e}),t}}),nc=H(`$ZodLiteral`,(e,t)=>{if(ns.init(e,t),t.values.length===0)throw Error(`Cannot create literal schema with no valid values`);let n=new Set(t.values);e._zod.values=n,e._zod.pattern=RegExp(`^(${t.values.map(e=>typeof e==`string`?xa(e):e?xa(e.toString()):String(e)).join(`|`)})$`),e._zod.parse=(r,i)=>{let a=r.value;return n.has(a)||r.issues.push({code:`invalid_value`,values:t.values,input:a,inst:e}),r}}),rc=H(`$ZodTransform`,(e,t)=>{ns.init(e,t),e._zod.optin=`optional`,e._zod.parse=(n,r)=>{if(r.direction===`backward`)throw new ea(e.constructor.name);let i=t.transform(n.value,n);if(r.async)return(i instanceof Promise?i:Promise.resolve(i)).then(e=>(n.value=e,n.fallback=!0,n));if(i instanceof Promise)throw new $i;return n.value=i,n.fallback=!0,n}});function ic(e,t){return t===void 0&&(e.issues.length||e.fallback)?{issues:[],value:void 0}:e}var ac=H(`$ZodOptional`,(e,t)=>{ns.init(e,t),e._zod.optin=`optional`,e._zod.optout=`optional`,ua(e._zod,`values`,()=>t.innerType._zod.values?new Set([...t.innerType._zod.values,void 0]):void 0),ua(e._zod,`pattern`,()=>{let e=t.innerType._zod.pattern;return e?RegExp(`^(${sa(e.source)})?$`):void 0}),e._zod.parse=(e,n)=>{if(t.innerType._zod.optin===`optional`){let r=e.value,i=t.innerType._zod.run(e,n);return i instanceof Promise?i.then(e=>ic(e,r)):ic(i,r)}return e.value===void 0?e:t.innerType._zod.run(e,n)}}),oc=H(`$ZodExactOptional`,(e,t)=>{ac.init(e,t),ua(e._zod,`values`,()=>t.innerType._zod.values),ua(e._zod,`pattern`,()=>t.innerType._zod.pattern),e._zod.parse=(e,n)=>t.innerType._zod.run(e,n)}),sc=H(`$ZodNullable`,(e,t)=>{ns.init(e,t),ua(e._zod,`optin`,()=>t.innerType._zod.optin),ua(e._zod,`optout`,()=>t.innerType._zod.optout),ua(e._zod,`pattern`,()=>{let e=t.innerType._zod.pattern;return e?RegExp(`^(${sa(e.source)}|null)$`):void 0}),ua(e._zod,`values`,()=>t.innerType._zod.values?new Set([...t.innerType._zod.values,null]):void 0),e._zod.parse=(e,n)=>e.value===null?e:t.innerType._zod.run(e,n)}),cc=H(`$ZodDefault`,(e,t)=>{ns.init(e,t),e._zod.optin=`optional`,ua(e._zod,`values`,()=>t.innerType._zod.values),e._zod.parse=(e,n)=>{if(n.direction===`backward`)return t.innerType._zod.run(e,n);if(e.value===void 0)return e.value=t.defaultValue,e;let r=t.innerType._zod.run(e,n);return r instanceof Promise?r.then(e=>lc(e,t)):lc(r,t)}});function lc(e,t){return e.value===void 0&&(e.value=t.defaultValue),e}var uc=H(`$ZodPrefault`,(e,t)=>{ns.init(e,t),e._zod.optin=`optional`,ua(e._zod,`values`,()=>t.innerType._zod.values),e._zod.parse=(e,n)=>(n.direction===`backward`||e.value===void 0&&(e.value=t.defaultValue),t.innerType._zod.run(e,n))}),dc=H(`$ZodNonOptional`,(e,t)=>{ns.init(e,t),ua(e._zod,`values`,()=>{let e=t.innerType._zod.values;return e?new Set([...e].filter(e=>e!==void 0)):void 0}),e._zod.parse=(n,r)=>{let i=t.innerType._zod.run(n,r);return i instanceof Promise?i.then(t=>fc(t,e)):fc(i,e)}});function fc(e,t){return!e.issues.length&&e.value===void 0&&e.issues.push({code:`invalid_type`,expected:`nonoptional`,input:e.value,inst:t}),e}var pc=H(`$ZodCatch`,(e,t)=>{ns.init(e,t),e._zod.optin=`optional`,ua(e._zod,`optout`,()=>t.innerType._zod.optout),ua(e._zod,`values`,()=>t.innerType._zod.values),e._zod.parse=(e,n)=>{if(n.direction===`backward`)return t.innerType._zod.run(e,n);let r=t.innerType._zod.run(e,n);return r instanceof Promise?r.then(r=>(e.value=r.value,r.issues.length&&(e.value=t.catchValue({...e,error:{issues:r.issues.map(e=>Ia(e,n,na()))},input:e.value}),e.issues=[],e.fallback=!0),e)):(e.value=r.value,r.issues.length&&(e.value=t.catchValue({...e,error:{issues:r.issues.map(e=>Ia(e,n,na()))},input:e.value}),e.issues=[],e.fallback=!0),e)}}),mc=H(`$ZodPipe`,(e,t)=>{ns.init(e,t),ua(e._zod,`values`,()=>t.in._zod.values),ua(e._zod,`optin`,()=>t.in._zod.optin),ua(e._zod,`optout`,()=>t.out._zod.optout),ua(e._zod,`propValues`,()=>t.in._zod.propValues),e._zod.parse=(e,n)=>{if(n.direction===`backward`){let r=t.out._zod.run(e,n);return r instanceof Promise?r.then(e=>hc(e,t.in,n)):hc(r,t.in,n)}let r=t.in._zod.run(e,n);return r instanceof Promise?r.then(e=>hc(e,t.out,n)):hc(r,t.out,n)}});function hc(e,t,n){return e.issues.length?(e.aborted=!0,e):t._zod.run({value:e.value,issues:e.issues,fallback:e.fallback},n)}var gc=H(`$ZodReadonly`,(e,t)=>{ns.init(e,t),ua(e._zod,`propValues`,()=>t.innerType._zod.propValues),ua(e._zod,`values`,()=>t.innerType._zod.values),ua(e._zod,`optin`,()=>t.innerType?._zod?.optin),ua(e._zod,`optout`,()=>t.innerType?._zod?.optout),e._zod.parse=(e,n)=>{if(n.direction===`backward`)return t.innerType._zod.run(e,n);let r=t.innerType._zod.run(e,n);return r instanceof Promise?r.then(_c):_c(r)}});function _c(e){return e.value=Object.freeze(e.value),e}var vc=H(`$ZodCustom`,(e,t)=>{Lo.init(e,t),ns.init(e,t),e._zod.parse=(e,t)=>e,e._zod.check=n=>{let r=n.value,i=t.fn(r);if(i instanceof Promise)return i.then(t=>yc(t,n,r,e));yc(i,n,r,e)}});function yc(e,t,n,r){if(!e){let e={code:`custom`,input:n,inst:r,path:[...r._zod.def.path??[]],continue:!r._zod.def.abort};r._zod.def.params&&(e.params=r._zod.def.params),t.issues.push(Ra(e))}}var bc,xc=class{constructor(){this._map=new WeakMap,this._idmap=new Map}add(e,...t){let n=t[0];return this._map.set(e,n),n&&typeof n==`object`&&`id`in n&&this._idmap.set(n.id,e),this}clear(){return this._map=new WeakMap,this._idmap=new Map,this}remove(e){let t=this._map.get(e);return t&&typeof t==`object`&&`id`in t&&this._idmap.delete(t.id),this._map.delete(e),this}get(e){let t=e._zod.parent;if(t){let n={...this.get(t)??{}};delete n.id;let r={...n,...this._map.get(e)};return Object.keys(r).length?r:void 0}return this._map.get(e)}has(e){return this._map.has(e)}};function Sc(){return new xc}(bc=globalThis).__zod_globalRegistry??(bc.__zod_globalRegistry=Sc());var Cc=globalThis.__zod_globalRegistry;function wc(e,t){return new e({type:`string`,...U(t)})}function Tc(e,t){return new e({type:`string`,format:`email`,check:`string_format`,abort:!1,...U(t)})}function Ec(e,t){return new e({type:`string`,format:`guid`,check:`string_format`,abort:!1,...U(t)})}function Dc(e,t){return new e({type:`string`,format:`uuid`,check:`string_format`,abort:!1,...U(t)})}function Oc(e,t){return new e({type:`string`,format:`uuid`,check:`string_format`,abort:!1,version:`v4`,...U(t)})}function kc(e,t){return new e({type:`string`,format:`uuid`,check:`string_format`,abort:!1,version:`v6`,...U(t)})}function Ac(e,t){return new e({type:`string`,format:`uuid`,check:`string_format`,abort:!1,version:`v7`,...U(t)})}function jc(e,t){return new e({type:`string`,format:`url`,check:`string_format`,abort:!1,...U(t)})}function Mc(e,t){return new e({type:`string`,format:`emoji`,check:`string_format`,abort:!1,...U(t)})}function Nc(e,t){return new e({type:`string`,format:`nanoid`,check:`string_format`,abort:!1,...U(t)})}function Pc(e,t){return new e({type:`string`,format:`cuid`,check:`string_format`,abort:!1,...U(t)})}function Fc(e,t){return new e({type:`string`,format:`cuid2`,check:`string_format`,abort:!1,...U(t)})}function Ic(e,t){return new e({type:`string`,format:`ulid`,check:`string_format`,abort:!1,...U(t)})}function Lc(e,t){return new e({type:`string`,format:`xid`,check:`string_format`,abort:!1,...U(t)})}function Rc(e,t){return new e({type:`string`,format:`ksuid`,check:`string_format`,abort:!1,...U(t)})}function zc(e,t){return new e({type:`string`,format:`ipv4`,check:`string_format`,abort:!1,...U(t)})}function Bc(e,t){return new e({type:`string`,format:`ipv6`,check:`string_format`,abort:!1,...U(t)})}function Vc(e,t){return new e({type:`string`,format:`cidrv4`,check:`string_format`,abort:!1,...U(t)})}function Hc(e,t){return new e({type:`string`,format:`cidrv6`,check:`string_format`,abort:!1,...U(t)})}function Uc(e,t){return new e({type:`string`,format:`base64`,check:`string_format`,abort:!1,...U(t)})}function Wc(e,t){return new e({type:`string`,format:`base64url`,check:`string_format`,abort:!1,...U(t)})}function Gc(e,t){return new e({type:`string`,format:`e164`,check:`string_format`,abort:!1,...U(t)})}function Kc(e,t){return new e({type:`string`,format:`jwt`,check:`string_format`,abort:!1,...U(t)})}function qc(e,t){return new e({type:`string`,format:`datetime`,check:`string_format`,offset:!1,local:!1,precision:null,...U(t)})}function Jc(e,t){return new e({type:`string`,format:`date`,check:`string_format`,...U(t)})}function Yc(e,t){return new e({type:`string`,format:`time`,check:`string_format`,precision:null,...U(t)})}function Xc(e,t){return new e({type:`string`,format:`duration`,check:`string_format`,...U(t)})}function Zc(e,t){return new e({type:`number`,checks:[],...U(t)})}function Qc(e,t){return new e({type:`number`,check:`number_format`,abort:!1,format:`safeint`,...U(t)})}function $c(e,t){return new e({type:`boolean`,...U(t)})}function el(e,t){return new e({type:`null`,...U(t)})}function tl(e){return new e({type:`unknown`})}function nl(e,t){return new e({type:`never`,...U(t)})}function rl(e,t){return new zo({check:`less_than`,...U(t),value:e,inclusive:!1})}function il(e,t){return new zo({check:`less_than`,...U(t),value:e,inclusive:!0})}function al(e,t){return new Bo({check:`greater_than`,...U(t),value:e,inclusive:!1})}function ol(e,t){return new Bo({check:`greater_than`,...U(t),value:e,inclusive:!0})}function sl(e,t){return new Vo({check:`multiple_of`,...U(t),value:e})}function cl(e,t){return new Uo({check:`max_length`,...U(t),maximum:e})}function ll(e,t){return new Wo({check:`min_length`,...U(t),minimum:e})}function ul(e,t){return new Go({check:`length_equals`,...U(t),length:e})}function dl(e,t){return new qo({check:`string_format`,format:`regex`,...U(t),pattern:e})}function fl(e){return new Jo({check:`string_format`,format:`lowercase`,...U(e)})}function pl(e){return new Yo({check:`string_format`,format:`uppercase`,...U(e)})}function ml(e,t){return new Xo({check:`string_format`,format:`includes`,...U(t),includes:e})}function hl(e,t){return new Zo({check:`string_format`,format:`starts_with`,...U(t),prefix:e})}function gl(e,t){return new Qo({check:`string_format`,format:`ends_with`,...U(t),suffix:e})}function _l(e){return new $o({check:`overwrite`,tx:e})}function vl(e){return _l(t=>t.normalize(e))}function yl(){return _l(e=>e.trim())}function bl(){return _l(e=>e.toLowerCase())}function xl(){return _l(e=>e.toUpperCase())}function Sl(){return _l(e=>ma(e))}function Cl(e,t,n){return new e({type:`array`,element:t,...U(n)})}function wl(e,t,n){return new e({type:`custom`,check:`custom`,fn:t,...U(n)})}function Tl(e,t){let n=El(t=>(t.addIssue=e=>{if(typeof e==`string`)t.issues.push(Ra(e,t.value,n._zod.def));else{let r=e;r.fatal&&(r.continue=!1),r.code??=`custom`,r.input??=t.value,r.inst??=n,r.continue??=!n._zod.def.abort,t.issues.push(Ra(r))}},e(t.value,t)),t);return n}function El(e,t){let n=new Lo({check:`custom`,...U(t)});return n._zod.check=e,n}function Dl(e){let t=e?.target??`draft-2020-12`;return t===`draft-4`&&(t=`draft-04`),t===`draft-7`&&(t=`draft-07`),{processors:e.processors??{},metadataRegistry:e?.metadata??Cc,target:t,unrepresentable:e?.unrepresentable??`throw`,override:e?.override??(()=>{}),io:e?.io??`output`,counter:0,seen:new Map,cycles:e?.cycles??`ref`,reused:e?.reused??`inline`,external:e?.external??void 0}}function Ol(e,t,n={path:[],schemaPath:[]}){var r;let i=e._zod.def,a=t.seen.get(e);if(a)return a.count++,n.schemaPath.includes(e)&&(a.cycle=n.path),a.schema;let o={schema:{},count:1,cycle:void 0,path:n.path};t.seen.set(e,o);let s=e._zod.toJSONSchema?.();if(s)o.schema=s;else{let r={...n,schemaPath:[...n.schemaPath,e],path:n.path};if(e._zod.processJSONSchema)e._zod.processJSONSchema(t,o.schema,r);else{let n=o.schema,a=t.processors[i.type];if(!a)throw Error(`[toJSONSchema]: Non-representable type encountered: ${i.type}`);a(e,t,n,r)}let a=e._zod.parent;a&&(o.ref||=a,Ol(a,t,r),t.seen.get(a).isParent=!0)}let c=t.metadataRegistry.get(e);return c&&Object.assign(o.schema,c),t.io===`input`&&jl(e)&&(delete o.schema.examples,delete o.schema.default),t.io===`input`&&`_prefault`in o.schema&&((r=o.schema).default??(r.default=o.schema._prefault)),delete o.schema._prefault,t.seen.get(e).schema}function kl(e,t){let n=e.seen.get(t);if(!n)throw Error(`Unprocessed schema. This is a bug in Zod.`);let r=new Map;for(let t of e.seen.entries()){let n=e.metadataRegistry.get(t[0])?.id;if(n){let e=r.get(n);if(e&&e!==t[0])throw Error(`Duplicate schema id "${n}" detected during JSON Schema conversion. Two different schemas cannot share the same id when converted together.`);r.set(n,t[0])}}let i=t=>{let r=e.target===`draft-2020-12`?`$defs`:`definitions`;if(e.external){let n=e.external.registry.get(t[0])?.id,i=e.external.uri??(e=>e);if(n)return{ref:i(n)};let a=t[1].defId??t[1].schema.id??`schema${e.counter++}`;return t[1].defId=a,{defId:a,ref:`${i(`__shared`)}#/${r}/${a}`}}if(t[1]===n)return{ref:`#`};let i=`#/${r}/`,a=t[1].schema.id??`__schema${e.counter++}`;return{defId:a,ref:i+a}},a=e=>{if(e[1].schema.$ref)return;let t=e[1],{ref:n,defId:r}=i(e);t.def={...t.schema},r&&(t.defId=r);let a=t.schema;for(let e in a)delete a[e];a.$ref=n};if(e.cycles===`throw`)for(let t of e.seen.entries()){let e=t[1];if(e.cycle)throw Error(`Cycle detected: #/${e.cycle?.join(`/`)}/ -Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.`)}for(let n of e.seen.entries()){let r=n[1];if(t===n[0]){a(n);continue}if(e.external){let r=e.external.registry.get(n[0])?.id;if(t!==n[0]&&r){a(n);continue}}if(e.metadataRegistry.get(n[0])?.id){a(n);continue}if(r.cycle){a(n);continue}if(r.count>1&&e.reused===`ref`){a(n);continue}}}function kl(e,t){let n=e.seen.get(t);if(!n)throw Error(`Unprocessed schema. This is a bug in Zod.`);let r=t=>{let n=e.seen.get(t);if(n.ref===null)return;let i=n.def??n.schema,a={...i},o=n.ref;if(n.ref=null,o){r(o);let n=e.seen.get(o),s=n.schema;if(s.$ref&&(e.target===`draft-07`||e.target===`draft-04`||e.target===`openapi-3.0`)?(i.allOf=i.allOf??[],i.allOf.push(s)):Object.assign(i,s),Object.assign(i,a),t._zod.parent===o)for(let e in i)e!==`$ref`&&e!==`allOf`&&(e in a||delete i[e]);if(s.$ref&&n.def)for(let e in i)e!==`$ref`&&e!==`allOf`&&e in n.def&&JSON.stringify(i[e])===JSON.stringify(n.def[e])&&delete i[e]}let s=t._zod.parent;if(s&&s!==o){r(s);let t=e.seen.get(s);if(t?.schema.$ref&&(i.$ref=t.schema.$ref,t.def))for(let e in i)e!==`$ref`&&e!==`allOf`&&e in t.def&&JSON.stringify(i[e])===JSON.stringify(t.def[e])&&delete i[e]}e.override({zodSchema:t,jsonSchema:i,path:n.path??[]})};for(let t of[...e.seen.entries()].reverse())r(t[0]);let i={};if(e.target===`draft-2020-12`?i.$schema=`https://json-schema.org/draft/2020-12/schema`:e.target===`draft-07`?i.$schema=`http://json-schema.org/draft-07/schema#`:e.target===`draft-04`?i.$schema=`http://json-schema.org/draft-04/schema#`:e.target,e.external?.uri){let n=e.external.registry.get(t)?.id;if(!n)throw Error("Schema is missing an `id` property");i.$id=e.external.uri(n)}Object.assign(i,n.def??n.schema);let a=e.metadataRegistry.get(t)?.id;a!==void 0&&i.id===a&&delete i.id;let o=e.external?.defs??{};for(let t of e.seen.entries()){let e=t[1];e.def&&e.defId&&(e.def.id===e.defId&&delete e.def.id,o[e.defId]=e.def)}e.external||Object.keys(o).length>0&&(e.target===`draft-2020-12`?i.$defs=o:i.definitions=o);try{let n=JSON.parse(JSON.stringify(i));return Object.defineProperty(n,"~standard",{value:{...t[`~standard`],jsonSchema:{input:Ml(t,`input`,e.processors),output:Ml(t,`output`,e.processors)}},enumerable:!1,writable:!1}),n}catch{throw Error(`Error converting schema to JSON.`)}}function Al(e,t){let n=t??{seen:new Set};if(n.seen.has(e))return!1;n.seen.add(e);let r=e._zod.def;if(r.type===`transform`)return!0;if(r.type===`array`)return Al(r.element,n);if(r.type===`set`)return Al(r.valueType,n);if(r.type===`lazy`)return Al(r.getter(),n);if(r.type===`promise`||r.type===`optional`||r.type===`nonoptional`||r.type===`nullable`||r.type===`readonly`||r.type==="default"||r.type===`prefault`)return Al(r.innerType,n);if(r.type===`intersection`)return Al(r.left,n)||Al(r.right,n);if(r.type===`record`||r.type===`map`)return Al(r.keyType,n)||Al(r.valueType,n);if(r.type===`pipe`)return e._zod.traits.has(`$ZodCodec`)?!0:Al(r.in,n)||Al(r.out,n);if(r.type===`object`){for(let e in r.shape)if(Al(r.shape[e],n))return!0;return!1}if(r.type===`union`){for(let e of r.options)if(Al(e,n))return!0;return!1}if(r.type===`tuple`){for(let e of r.items)if(Al(e,n))return!0;return!!(r.rest&&Al(r.rest,n))}return!1}var jl=(e,t={})=>n=>{let r=El({...n,processors:t});return Dl(e,r),Ol(r,e),kl(r,e)},Ml=(e,t,n={})=>r=>{let{libraryOptions:i,target:a}=r??{},o=El({...i??{},target:a,io:t,processors:n});return Dl(e,o),Ol(o,e),kl(o,e)},Nl={guid:`uuid`,url:`uri`,datetime:`date-time`,json_string:`json-string`,regex:``},Pl=(e,t,n,r)=>{let i=n;i.type=`string`;let{minimum:a,maximum:o,format:s,patterns:c,contentEncoding:l}=e._zod.bag;if(typeof a==`number`&&(i.minLength=a),typeof o==`number`&&(i.maxLength=o),s&&(i.format=Nl[s]??s,i.format===``&&delete i.format,s===`time`&&delete i.format),l&&(i.contentEncoding=l),c&&c.size>0){let e=[...c];e.length===1?i.pattern=e[0].source:e.length>1&&(i.allOf=[...e.map(e=>({...t.target===`draft-07`||t.target===`draft-04`||t.target===`openapi-3.0`?{type:`string`}:{},pattern:e.source}))])}},Fl=(e,t,n,r)=>{let i=n,{minimum:a,maximum:o,format:s,multipleOf:c,exclusiveMaximum:l,exclusiveMinimum:u}=e._zod.bag;i.type=typeof s==`string`&&s.includes(`int`)?`integer`:`number`;let d=typeof u==`number`&&u>=(a??-1/0),f=typeof l==`number`&&l<=(o??1/0),p=t.target===`draft-04`||t.target===`openapi-3.0`;d?p?(i.minimum=u,i.exclusiveMinimum=!0):i.exclusiveMinimum=u:typeof a==`number`&&(i.minimum=a),f?p?(i.maximum=l,i.exclusiveMaximum=!0):i.exclusiveMaximum=l:typeof o==`number`&&(i.maximum=o),typeof c==`number`&&(i.multipleOf=c)},Il=(e,t,n,r)=>{n.type=`boolean`},Ll=(e,t,n,r)=>{t.target===`openapi-3.0`?(n.type=`string`,n.nullable=!0,n.enum=[null]):n.type=`null`},Rl=(e,t,n,r)=>{n.not={}},zl=(e,t,n,r)=>{let i=e._zod.def,a=ra(i.entries);a.every(e=>typeof e==`number`)&&(n.type=`number`),a.every(e=>typeof e==`string`)&&(n.type=`string`),n.enum=a},Bl=(e,t,n,r)=>{let i=e._zod.def,a=[];for(let e of i.values)if(e===void 0){if(t.unrepresentable===`throw`)throw Error("Literal `undefined` cannot be represented in JSON Schema")}else if(typeof e==`bigint`){if(t.unrepresentable===`throw`)throw Error(`BigInt literals cannot be represented in JSON Schema`);a.push(Number(e))}else a.push(e);if(a.length!==0){if(a.length===1){let e=a[0];n.type=e===null?`null`:typeof e,t.target===`draft-04`||t.target===`openapi-3.0`?n.enum=[e]:n.const=e}else a.every(e=>typeof e==`number`)&&(n.type=`number`),a.every(e=>typeof e==`string`)&&(n.type=`string`),a.every(e=>typeof e==`boolean`)&&(n.type=`boolean`),a.every(e=>e===null)&&(n.type=`null`),n.enum=a}},Vl=(e,t,n,r)=>{if(t.unrepresentable===`throw`)throw Error(`Custom types cannot be represented in JSON Schema`)},Hl=(e,t,n,r)=>{if(t.unrepresentable===`throw`)throw Error(`Transforms cannot be represented in JSON Schema`)},Ul=(e,t,n,r)=>{let i=n,a=e._zod.def,{minimum:o,maximum:s}=e._zod.bag;typeof o==`number`&&(i.minItems=o),typeof s==`number`&&(i.maxItems=s),i.type=`array`,i.items=Dl(a.element,t,{...r,path:[...r.path,`items`]})},Wl=(e,t,n,r)=>{let i=n,a=e._zod.def;i.type=`object`,i.properties={};let o=a.shape;for(let e in o)i.properties[e]=Dl(o[e],t,{...r,path:[...r.path,`properties`,e]});let s=new Set(Object.keys(o)),c=new Set([...s].filter(e=>{let n=a.shape[e]._zod;return t.io===`input`?n.optin===void 0:n.optout===void 0}));c.size>0&&(i.required=Array.from(c)),a.catchall?._zod.def.type===`never`?i.additionalProperties=!1:a.catchall?a.catchall&&(i.additionalProperties=Dl(a.catchall,t,{...r,path:[...r.path,`additionalProperties`]})):t.io===`output`&&(i.additionalProperties=!1)},Gl=(e,t,n,r)=>{let i=e._zod.def,a=i.inclusive===!1,o=i.options.map((e,n)=>Dl(e,t,{...r,path:[...r.path,a?`oneOf`:`anyOf`,n]}));a?n.oneOf=o:n.anyOf=o},Kl=(e,t,n,r)=>{let i=e._zod.def,a=Dl(i.left,t,{...r,path:[...r.path,`allOf`,0]}),o=Dl(i.right,t,{...r,path:[...r.path,`allOf`,1]}),s=e=>`allOf`in e&&Object.keys(e).length===1;n.allOf=[...s(a)?a.allOf:[a],...s(o)?o.allOf:[o]]},ql=(e,t,n,r)=>{let i=n,a=e._zod.def;i.type=`array`;let o=t.target===`draft-2020-12`?`prefixItems`:`items`,s=t.target===`draft-2020-12`||t.target===`openapi-3.0`?`items`:`additionalItems`,c=a.items.map((e,n)=>Dl(e,t,{...r,path:[...r.path,o,n]})),l=a.rest?Dl(a.rest,t,{...r,path:[...r.path,s,...t.target===`openapi-3.0`?[a.items.length]:[]]}):null;t.target===`draft-2020-12`?(i.prefixItems=c,l&&(i.items=l)):t.target===`openapi-3.0`?(i.items={anyOf:c},l&&i.items.anyOf.push(l),i.minItems=c.length,l||(i.maxItems=c.length)):(i.items=c,l&&(i.additionalItems=l));let{minimum:u,maximum:d}=e._zod.bag;typeof u==`number`&&(i.minItems=u),typeof d==`number`&&(i.maxItems=d)},Jl=(e,t,n,r)=>{let i=n,a=e._zod.def;i.type=`object`;let o=a.keyType,s=o._zod.bag?.patterns;if(a.mode===`loose`&&s&&s.size>0){let e=Dl(a.valueType,t,{...r,path:[...r.path,`patternProperties`,`*`]});i.patternProperties={};for(let t of s)i.patternProperties[t.source]=e}else(t.target===`draft-07`||t.target===`draft-2020-12`)&&(i.propertyNames=Dl(a.keyType,t,{...r,path:[...r.path,`propertyNames`]})),i.additionalProperties=Dl(a.valueType,t,{...r,path:[...r.path,`additionalProperties`]});let c=o._zod.values;if(c){let e=[...c].filter(e=>typeof e==`string`||typeof e==`number`);e.length>0&&(i.required=e)}},Yl=(e,t,n,r)=>{let i=e._zod.def,a=Dl(i.innerType,t,r),o=t.seen.get(e);t.target===`openapi-3.0`?(o.ref=i.innerType,n.nullable=!0):n.anyOf=[a,{type:`null`}]},Xl=(e,t,n,r)=>{let i=e._zod.def;Dl(i.innerType,t,r);let a=t.seen.get(e);a.ref=i.innerType},Zl=(e,t,n,r)=>{let i=e._zod.def;Dl(i.innerType,t,r);let a=t.seen.get(e);a.ref=i.innerType,n.default=JSON.parse(JSON.stringify(i.defaultValue))},Ql=(e,t,n,r)=>{let i=e._zod.def;Dl(i.innerType,t,r);let a=t.seen.get(e);a.ref=i.innerType,t.io===`input`&&(n._prefault=JSON.parse(JSON.stringify(i.defaultValue)))},$l=(e,t,n,r)=>{let i=e._zod.def;Dl(i.innerType,t,r);let a=t.seen.get(e);a.ref=i.innerType;let o;try{o=i.catchValue(void 0)}catch{throw Error(`Dynamic catch values are not supported in JSON Schema`)}n.default=o},eu=(e,t,n,r)=>{let i=e._zod.def,a=i.in._zod.traits.has(`$ZodTransform`),o=t.io===`input`?a?i.out:i.in:i.out;Dl(o,t,r);let s=t.seen.get(e);s.ref=o},tu=(e,t,n,r)=>{let i=e._zod.def;Dl(i.innerType,t,r);let a=t.seen.get(e);a.ref=i.innerType,n.readOnly=!0},nu=(e,t,n,r)=>{let i=e._zod.def;Dl(i.innerType,t,r);let a=t.seen.get(e);a.ref=i.innerType},ru=H(`ZodISODateTime`,(e,t)=>{gs.init(e,t),ju.init(e,t)});function iu(e){return Kc(ru,e)}var au=H(`ZodISODate`,(e,t)=>{_s.init(e,t),ju.init(e,t)});function ou(e){return qc(au,e)}var su=H(`ZodISOTime`,(e,t)=>{vs.init(e,t),ju.init(e,t)});function cu(e){return Jc(su,e)}var lu=H(`ZodISODuration`,(e,t)=>{ys.init(e,t),ju.init(e,t)});function uu(e){return Yc(lu,e)}var du=(e,t)=>{Ba.init(e,t),e.name=`ZodError`,Object.defineProperties(e,{format:{value:t=>Ua(e,t)},flatten:{value:t=>Ha(e,t)},addIssue:{value:t=>{e.issues.push(t),e.message=JSON.stringify(e.issues,ia,2)}},addIssues:{value:t=>{e.issues.push(...t),e.message=JSON.stringify(e.issues,ia,2)}},isEmpty:{get(){return e.issues.length===0}}})},fu=H(`ZodError`,du),pu=H(`ZodError`,du,{Parent:Error}),mu=Wa(pu),hu=Ga(pu),gu=Ka(pu),_u=Ja(pu),vu=Xa(pu),yu=Za(pu),bu=Qa(pu),xu=$a(pu),Su=eo(pu),Cu=to(pu),wu=no(pu),Tu=ro(pu),Eu=new WeakMap;function Du(e,t,n){let r=Object.getPrototypeOf(e),i=Eu.get(r);if(i||(i=new Set,Eu.set(r,i)),!i.has(t)){i.add(t);for(let e in n){let t=n[e];Object.defineProperty(r,e,{configurable:!0,enumerable:!1,get(){let n=t.bind(this);return Object.defineProperty(this,e,{configurable:!0,writable:!0,enumerable:!0,value:n}),n},set(t){Object.defineProperty(this,e,{configurable:!0,writable:!0,enumerable:!0,value:t})}})}}}var Ou=H(`ZodType`,(e,t)=>(ns.init(e,t),Object.assign(e[`~standard`],{jsonSchema:{input:Ml(e,`input`),output:Ml(e,`output`)}}),e.toJSONSchema=jl(e,{}),e.def=t,e.type=t.type,Object.defineProperty(e,"_def",{value:t}),e.parse=(t,n)=>mu(e,t,n,{callee:e.parse}),e.safeParse=(t,n)=>gu(e,t,n),e.parseAsync=async(t,n)=>hu(e,t,n,{callee:e.parseAsync}),e.safeParseAsync=async(t,n)=>_u(e,t,n),e.spa=e.safeParseAsync,e.encode=(t,n)=>vu(e,t,n),e.decode=(t,n)=>yu(e,t,n),e.encodeAsync=async(t,n)=>bu(e,t,n),e.decodeAsync=async(t,n)=>xu(e,t,n),e.safeEncode=(t,n)=>Su(e,t,n),e.safeDecode=(t,n)=>Cu(e,t,n),e.safeEncodeAsync=async(t,n)=>wu(e,t,n),e.safeDecodeAsync=async(t,n)=>Tu(e,t,n),Du(e,`ZodType`,{check(...e){let t=this.def;return this.clone(fa(t,{checks:[...t.checks??[],...e.map(e=>typeof e==`function`?{_zod:{check:e,def:{check:`custom`},onattach:[]}}:e)]}),{parent:!0})},with(...e){return this.check(...e)},clone(e,t){return Sa(this,e,t)},brand(){return this},register(e,t){return e.add(this,t),this},refine(e,t){return this.check(Bd(e,t))},superRefine(e,t){return this.check(Vd(e,t))},overwrite(e){return this.check(gl(e))},optional(){return Sd(this)},exactOptional(){return wd(this)},nullable(){return Ed(this)},nullish(){return Sd(Ed(this))},nonoptional(e){return Md(this,e)},array(){return q(this)},or(e){return ud([this,e])},and(e){return fd(this,e)},transform(e){return Id(this,bd(e))},default(e){return Od(this,e)},prefault(e){return Ad(this,e)},catch(e){return Pd(this,e)},pipe(e){return Id(this,e)},readonly(){return Rd(this)},describe(e){let t=this.clone();return Sc.add(t,{description:e}),t},meta(...e){if(e.length===0)return Sc.get(this);let t=this.clone();return Sc.add(t,e[0]),t},isOptional(){return this.safeParse(void 0).success},isNullable(){return this.safeParse(null).success},apply(e){return e(this)}}),Object.defineProperty(e,"description",{get(){return Sc.get(e)?.description},configurable:!0}),e)),ku=H(`_ZodString`,(e,t)=>{rs.init(e,t),Ou.init(e,t),e._zod.processJSONSchema=(t,n,r)=>Pl(e,t,n,r);let n=e._zod.bag;e.format=n.format??null,e.minLength=n.minimum??null,e.maxLength=n.maximum??null,Du(e,`_ZodString`,{regex(...e){return this.check(ul(...e))},includes(...e){return this.check(pl(...e))},startsWith(...e){return this.check(ml(...e))},endsWith(...e){return this.check(hl(...e))},min(...e){return this.check(cl(...e))},max(...e){return this.check(sl(...e))},length(...e){return this.check(ll(...e))},nonempty(...e){return this.check(cl(1,...e))},lowercase(e){return this.check(dl(e))},uppercase(e){return this.check(fl(e))},trim(){return this.check(vl())},normalize(...e){return this.check(_l(...e))},toLowerCase(){return this.check(yl())},toUpperCase(){return this.check(bl())},slugify(){return this.check(xl())}})}),Au=H(`ZodString`,(e,t)=>{rs.init(e,t),ku.init(e,t),e.email=t=>e.check(wc(Mu,t)),e.url=t=>e.check(Ac(Fu,t)),e.jwt=t=>e.check(Gc(Xu,t)),e.emoji=t=>e.check(jc(Iu,t)),e.guid=t=>e.check(Tc(Nu,t)),e.uuid=t=>e.check(Ec(Pu,t)),e.uuidv4=t=>e.check(Dc(Pu,t)),e.uuidv6=t=>e.check(Oc(Pu,t)),e.uuidv7=t=>e.check(kc(Pu,t)),e.nanoid=t=>e.check(Mc(Lu,t)),e.guid=t=>e.check(Tc(Nu,t)),e.cuid=t=>e.check(Nc(Ru,t)),e.cuid2=t=>e.check(Pc(zu,t)),e.ulid=t=>e.check(Fc(Bu,t)),e.base64=t=>e.check(Hc(qu,t)),e.base64url=t=>e.check(Uc(Ju,t)),e.xid=t=>e.check(Ic(Vu,t)),e.ksuid=t=>e.check(Lc(Hu,t)),e.ipv4=t=>e.check(Rc(Uu,t)),e.ipv6=t=>e.check(zc(Wu,t)),e.cidrv4=t=>e.check(Bc(Gu,t)),e.cidrv6=t=>e.check(Vc(Ku,t)),e.e164=t=>e.check(Wc(Yu,t)),e.datetime=t=>e.check(iu(t)),e.date=t=>e.check(ou(t)),e.time=t=>e.check(cu(t)),e.duration=t=>e.check(uu(t))});function W(e){return Cc(Au,e)}var ju=H(`ZodStringFormat`,(e,t)=>{is.init(e,t),ku.init(e,t)}),Mu=H(`ZodEmail`,(e,t)=>{ss.init(e,t),ju.init(e,t)}),Nu=H(`ZodGUID`,(e,t)=>{as.init(e,t),ju.init(e,t)}),Pu=H(`ZodUUID`,(e,t)=>{os.init(e,t),ju.init(e,t)}),Fu=H(`ZodURL`,(e,t)=>{cs.init(e,t),ju.init(e,t)}),Iu=H(`ZodEmoji`,(e,t)=>{ls.init(e,t),ju.init(e,t)}),Lu=H(`ZodNanoID`,(e,t)=>{us.init(e,t),ju.init(e,t)}),Ru=H(`ZodCUID`,(e,t)=>{ds.init(e,t),ju.init(e,t)}),zu=H(`ZodCUID2`,(e,t)=>{fs.init(e,t),ju.init(e,t)}),Bu=H(`ZodULID`,(e,t)=>{ps.init(e,t),ju.init(e,t)}),Vu=H(`ZodXID`,(e,t)=>{ms.init(e,t),ju.init(e,t)}),Hu=H(`ZodKSUID`,(e,t)=>{hs.init(e,t),ju.init(e,t)}),Uu=H(`ZodIPv4`,(e,t)=>{bs.init(e,t),ju.init(e,t)}),Wu=H(`ZodIPv6`,(e,t)=>{xs.init(e,t),ju.init(e,t)}),Gu=H(`ZodCIDRv4`,(e,t)=>{Ss.init(e,t),ju.init(e,t)}),Ku=H(`ZodCIDRv6`,(e,t)=>{Cs.init(e,t),ju.init(e,t)}),qu=H(`ZodBase64`,(e,t)=>{Ts.init(e,t),ju.init(e,t)}),Ju=H(`ZodBase64URL`,(e,t)=>{Ds.init(e,t),ju.init(e,t)}),Yu=H(`ZodE164`,(e,t)=>{Os.init(e,t),ju.init(e,t)}),Xu=H(`ZodJWT`,(e,t)=>{As.init(e,t),ju.init(e,t)}),Zu=H(`ZodNumber`,(e,t)=>{js.init(e,t),Ou.init(e,t),e._zod.processJSONSchema=(t,n,r)=>Fl(e,t,n,r),Du(e,`ZodNumber`,{gt(e,t){return this.check(il(e,t))},gte(e,t){return this.check(al(e,t))},min(e,t){return this.check(al(e,t))},lt(e,t){return this.check(nl(e,t))},lte(e,t){return this.check(rl(e,t))},max(e,t){return this.check(rl(e,t))},int(e){return this.check($u(e))},safe(e){return this.check($u(e))},positive(e){return this.check(il(0,e))},nonnegative(e){return this.check(al(0,e))},negative(e){return this.check(nl(0,e))},nonpositive(e){return this.check(rl(0,e))},multipleOf(e,t){return this.check(ol(e,t))},step(e,t){return this.check(ol(e,t))},finite(){return this}});let n=e._zod.bag;e.minValue=Math.max(n.minimum??-1/0,n.exclusiveMinimum??-1/0)??null,e.maxValue=Math.min(n.maximum??1/0,n.exclusiveMaximum??1/0)??null,e.isInt=(n.format??``).includes(`int`)||Number.isSafeInteger(n.multipleOf??.5),e.isFinite=!0,e.format=n.format??null});function G(e){return Xc(Zu,e)}var Qu=H(`ZodNumberFormat`,(e,t)=>{Ms.init(e,t),Zu.init(e,t)});function $u(e){return Zc(Qu,e)}var ed=H(`ZodBoolean`,(e,t)=>{Ns.init(e,t),Ou.init(e,t),e._zod.processJSONSchema=(t,n,r)=>Il(e,t,n,r)});function K(e){return Qc(ed,e)}var td=H(`ZodNull`,(e,t)=>{Ps.init(e,t),Ou.init(e,t),e._zod.processJSONSchema=(t,n,r)=>Ll(e,t,n,r)});function nd(e){return $c(td,e)}var rd=H(`ZodUnknown`,(e,t)=>{Fs.init(e,t),Ou.init(e,t),e._zod.processJSONSchema=(e,t,n)=>void 0});function id(){return el(rd)}var ad=H(`ZodNever`,(e,t)=>{Is.init(e,t),Ou.init(e,t),e._zod.processJSONSchema=(t,n,r)=>Rl(e,t,n,r)});function od(e){return tl(ad,e)}var sd=H(`ZodArray`,(e,t)=>{Rs.init(e,t),Ou.init(e,t),e._zod.processJSONSchema=(t,n,r)=>Ul(e,t,n,r),e.element=t.element,Du(e,`ZodArray`,{min(e,t){return this.check(cl(e,t))},nonempty(e){return this.check(cl(1,e))},max(e,t){return this.check(sl(e,t))},length(e,t){return this.check(ll(e,t))},unwrap(){return this.element}})});function q(e,t){return Sl(sd,e,t)}var cd=H(`ZodObject`,(e,t)=>{Us.init(e,t),Ou.init(e,t),e._zod.processJSONSchema=(t,n,r)=>Wl(e,t,n,r),ua(e,`shape`,()=>t.shape),Du(e,`ZodObject`,{keyof(){return Y(Object.keys(this._zod.def.shape))},catchall(e){return this.clone({...this._zod.def,catchall:e})},passthrough(){return this.clone({...this._zod.def,catchall:id()})},loose(){return this.clone({...this._zod.def,catchall:id()})},strict(){return this.clone({...this._zod.def,catchall:od()})},strip(){return this.clone({...this._zod.def,catchall:void 0})},extend(e){return Da(this,e)},safeExtend(e){return Oa(this,e)},merge(e){return ka(this,e)},pick(e){return Ta(this,e)},omit(e){return Ea(this,e)},partial(...e){return Aa(xd,this,e[0])},required(...e){return ja(jd,this,e[0])}})});function J(e,t){return new cd({type:`object`,shape:e??{},...U(t)})}var ld=H(`ZodUnion`,(e,t)=>{Gs.init(e,t),Ou.init(e,t),e._zod.processJSONSchema=(t,n,r)=>Gl(e,t,n,r),e.options=t.options});function ud(e,t){return new ld({type:`union`,options:e,...U(t)})}var dd=H(`ZodIntersection`,(e,t)=>{Ks.init(e,t),Ou.init(e,t),e._zod.processJSONSchema=(t,n,r)=>Kl(e,t,n,r)});function fd(e,t){return new dd({type:`intersection`,left:e,right:t})}var pd=H(`ZodTuple`,(e,t)=>{Ys.init(e,t),Ou.init(e,t),e._zod.processJSONSchema=(t,n,r)=>ql(e,t,n,r),e.rest=t=>e.clone({...e._zod.def,rest:t})});function md(e,t,n){let r=t instanceof ns;return new pd({type:`tuple`,items:e,rest:r?t:null,...U(r?n:t)})}var hd=H(`ZodRecord`,(e,t)=>{$s.init(e,t),Ou.init(e,t),e._zod.processJSONSchema=(t,n,r)=>Jl(e,t,n,r),e.keyType=t.keyType,e.valueType=t.valueType});function gd(e,t,n){return!t||!t._zod?new hd({type:`record`,keyType:W(),valueType:e,...U(t)}):new hd({type:`record`,keyType:e,valueType:t,...U(n)})}var _d=H(`ZodEnum`,(e,t)=>{ec.init(e,t),Ou.init(e,t),e._zod.processJSONSchema=(t,n,r)=>zl(e,t,n,r),e.enum=t.entries,e.options=Object.values(t.entries);let n=new Set(Object.keys(t.entries));e.extract=(e,r)=>{let i={};for(let r of e)if(n.has(r))i[r]=t.entries[r];else throw Error(`Key ${r} not found in enum`);return new _d({...t,checks:[],...U(r),entries:i})},e.exclude=(e,r)=>{let i={...t.entries};for(let t of e)if(n.has(t))delete i[t];else throw Error(`Key ${t} not found in enum`);return new _d({...t,checks:[],...U(r),entries:i})}});function Y(e,t){return new _d({type:`enum`,entries:Array.isArray(e)?Object.fromEntries(e.map(e=>[e,e])):e,...U(t)})}var vd=H(`ZodLiteral`,(e,t)=>{tc.init(e,t),Ou.init(e,t),e._zod.processJSONSchema=(t,n,r)=>Bl(e,t,n,r),e.values=new Set(t.values),Object.defineProperty(e,"value",{get(){if(t.values.length>1)throw Error("This schema contains multiple valid literal values. Use `.values` instead.");return t.values[0]}})});function X(e,t){return new vd({type:`literal`,values:Array.isArray(e)?e:[e],...U(t)})}var yd=H(`ZodTransform`,(e,t)=>{nc.init(e,t),Ou.init(e,t),e._zod.processJSONSchema=(t,n,r)=>Hl(e,t,n,r),e._zod.parse=(n,r)=>{if(r.direction===`backward`)throw new ea(e.constructor.name);n.addIssue=r=>{if(typeof r==`string`)n.issues.push(Ra(r,n.value,t));else{let t=r;t.fatal&&(t.continue=!1),t.code??=`custom`,t.input??=n.value,t.inst??=e,n.issues.push(Ra(t))}};let i=t.transform(n.value,n);return i instanceof Promise?i.then(e=>(n.value=e,n.fallback=!0,n)):(n.value=i,n.fallback=!0,n)}});function bd(e){return new yd({type:`transform`,transform:e})}var xd=H(`ZodOptional`,(e,t)=>{ic.init(e,t),Ou.init(e,t),e._zod.processJSONSchema=(t,n,r)=>nu(e,t,n,r),e.unwrap=()=>e._zod.def.innerType});function Sd(e){return new xd({type:`optional`,innerType:e})}var Cd=H(`ZodExactOptional`,(e,t)=>{ac.init(e,t),Ou.init(e,t),e._zod.processJSONSchema=(t,n,r)=>nu(e,t,n,r),e.unwrap=()=>e._zod.def.innerType});function wd(e){return new Cd({type:`optional`,innerType:e})}var Td=H(`ZodNullable`,(e,t)=>{oc.init(e,t),Ou.init(e,t),e._zod.processJSONSchema=(t,n,r)=>Yl(e,t,n,r),e.unwrap=()=>e._zod.def.innerType});function Ed(e){return new Td({type:`nullable`,innerType:e})}var Dd=H(`ZodDefault`,(e,t)=>{sc.init(e,t),Ou.init(e,t),e._zod.processJSONSchema=(t,n,r)=>Zl(e,t,n,r),e.unwrap=()=>e._zod.def.innerType,e.removeDefault=e.unwrap});function Od(e,t){return new Dd({type:`default`,innerType:e,get defaultValue(){return typeof t==`function`?t():ya(t)}})}var kd=H(`ZodPrefault`,(e,t)=>{lc.init(e,t),Ou.init(e,t),e._zod.processJSONSchema=(t,n,r)=>Ql(e,t,n,r),e.unwrap=()=>e._zod.def.innerType});function Ad(e,t){return new kd({type:`prefault`,innerType:e,get defaultValue(){return typeof t==`function`?t():ya(t)}})}var jd=H(`ZodNonOptional`,(e,t)=>{uc.init(e,t),Ou.init(e,t),e._zod.processJSONSchema=(t,n,r)=>Xl(e,t,n,r),e.unwrap=()=>e._zod.def.innerType});function Md(e,t){return new jd({type:`nonoptional`,innerType:e,...U(t)})}var Nd=H(`ZodCatch`,(e,t)=>{fc.init(e,t),Ou.init(e,t),e._zod.processJSONSchema=(t,n,r)=>$l(e,t,n,r),e.unwrap=()=>e._zod.def.innerType,e.removeCatch=e.unwrap});function Pd(e,t){return new Nd({type:`catch`,innerType:e,catchValue:typeof t==`function`?t:()=>t})}var Fd=H(`ZodPipe`,(e,t)=>{pc.init(e,t),Ou.init(e,t),e._zod.processJSONSchema=(t,n,r)=>eu(e,t,n,r),e.in=t.in,e.out=t.out});function Id(e,t){return new Fd({type:`pipe`,in:e,out:t})}var Ld=H(`ZodReadonly`,(e,t)=>{hc.init(e,t),Ou.init(e,t),e._zod.processJSONSchema=(t,n,r)=>tu(e,t,n,r),e.unwrap=()=>e._zod.def.innerType});function Rd(e){return new Ld({type:`readonly`,innerType:e})}var zd=H(`ZodCustom`,(e,t)=>{_c.init(e,t),Ou.init(e,t),e._zod.processJSONSchema=(t,n,r)=>Vl(e,t,n,r)});function Bd(e,t={}){return Cl(zd,e,t)}function Vd(e,t){return wl(e,t)}var Hd=e=>typeof e==`string`&&e.trim()?e.trim():null;function Ud(e){let t=e.decision_scope&&typeof e.decision_scope==`object`&&!Array.isArray(e.decision_scope)?e.decision_scope:{},n=Hd(t.kind),r=Hd(t.granularity),i=Hd(t.scope_key),a=Hd(e.superseded_by);return{interaction:e.task_class===`user_gate`?`decision`:`unknown`,lifecycle:a?`superseded`:e.status===`deferred`?`deferred`:e.done===!0||[`done`,`completed`,`closed`,`archived`].includes(String(e.status))?`closed`:e.status===`open`||e.status===`blocked`?`open`:`unknown`,reason:Hd(e.note),evidence:Hd(e.evidence),blocksAgent:Hd(e.blocks_agent),unblocksTodoId:Hd(e.unblocks_todo_id),decisionScope:n&&r&&i?{kind:n,granularity:r,scopeKey:i}:null,supersededBy:a}}function Wd(e,t,n,r){return{...e,sourceId:t,goalTitle:r??e.goalTitle,details:n?e.details:{...e.details??Ud({}),lifecycle:`unavailable`}}}function Gd(e,t){return t.find(t=>t.sourceId===e.sourceId&&t.goalId===e.goalId&&t.todoId===e.todoId)||{...e,details:{...e.details??Ud({}),lifecycle:`unavailable`}}}function Kd(e,t){let n=e.details?.supersededBy;if(!(!n||n===e.todoId||e.details?.lifecycle===`unavailable`))return t.find(t=>t.sourceId===e.sourceId&&t.goalId===e.goalId&&t.todoId===n)}function qd(e){return![`closed`,`deferred`,`superseded`,`unavailable`].includes(e.details?.lifecycle??`unknown`)}var Jd={ok:!0,registry:`$HOME/.codex/loopx/registry.global.json`,runtime_root:`$HOME/.codex/loopx`,goal_count:1,run_count:8440,status_contract:{schema_version:2,minimum_dashboard_schema_version:2,producer:`loopx status`,reload_hint:`scripts/macos-dashboard-launchagent.sh restart`},usage_summary:{available:!0,source:`run_history`,generated_at:`2026-07-06T06:49:06.471166+00:00`,sample_run_count:20,proxy_note:`run-history proxy; excludes token counts and raw thread logs`,totals:{runs_24h:20,runs_7d:20,quota_spend_slots_24h:11,quota_spend_slots_7d:11,automation_run_count_24h:11,automation_run_count_7d:11,progress_signal_run_count_24h:9,progress_signal_run_count_7d:9},goals:[{goal_id:`loopx-meta`,runs_24h:20,runs_7d:20,quota_spend_slots_24h:11,quota_spend_slots_7d:11,automation_run_count_24h:11,automation_run_count_7d:11,progress_signal_run_count_24h:9,progress_signal_run_count_7d:9,project_share_24h:1}]},event_ledger_summary:{available:!0,source:`run_history`,generated_at:`2026-07-06T06:49:06.360662+00:00`,sample_run_count:20,proxy_note:`append-only run-history projection; compact event-class counts only`,event_classes:[`accounting`,`decision`,`evidence`,`state`,`work`],totals:{events_24h:20,events_7d:20,by_class_24h:{accounting:11,decision:0,evidence:0,state:0,work:9},by_class_7d:{accounting:11,decision:0,evidence:0,state:0,work:9}},goals:[{goal_id:`loopx-meta`,events_24h:20,events_7d:20,by_class_24h:{accounting:11,decision:0,evidence:0,state:0,work:9},by_class_7d:{accounting:11,decision:0,evidence:0,state:0,work:9},latest_event_class:`accounting`,latest_event_at:`2026-07-06T14:37:32+08:00`}]},promotion_readiness_summary:{available:!0,source:`run_history_full_scan`,goal_id:`loopx-meta`,generated_at:`2026-07-05T20:02:02+08:00`,classification:`canary_promotion_readiness_smoke_group`,delivery_batch_scale:`multi_surface`,delivery_outcome:`primary_goal_outcome`,recommended_action:`Canary promotion-readiness smoke passed; promotion may proceed after doctor/status reports fresh evidence.`,json_exists:!0,markdown_exists:!0,freshness_window_hours:24,freshness_status:`fresh`,is_fresh:!0,requires_readiness_run:!1,age_seconds:67624,age_hours:18.78,freshness_reference_time:`2026-07-06T06:49:06.408527+00:00`,sample_run_count:0,proxy_note:`canary promotion-readiness projection from append-only run history; exact evidence stays in run artifacts`},promotion_gate:{ok:!0,registry:`$HOME/.codex/loopx/registry.global.json`,runtime_root:`$HOME/.codex/loopx`,gate:`promotion_readiness`,gate_state:`ready`,can_promote:!0,should_warn:!1,non_blocking:!0,recommended_action:`promotion readiness is fresh`,readiness:{available:!0,goal_id:`loopx-meta`,generated_at:`2026-07-05T20:02:02+08:00`,classification:`canary_promotion_readiness_smoke_group`,delivery_batch_scale:`multi_surface`,delivery_outcome:`primary_goal_outcome`,recommended_action:`Canary promotion-readiness smoke passed; promotion may proceed after doctor/status reports fresh evidence.`,json_exists:!0,markdown_exists:!0,runtime_root:`$HOME/.codex/loopx`,freshness_window_hours:24,freshness_status:`fresh`,is_fresh:!0,requires_readiness_run:!1,age_seconds:67624,age_hours:18.78,freshness_reference_time:`2026-07-06T06:49:06.471087+00:00`}},decision_freshness_summary:{available:!0,source:`run_history`,generated_at:`2026-07-06T06:49:06.471133+00:00`,sample_run_count:20,window_days:7,proxy_note:`checkpointed decision freshness projection; rebase old decisions at the decision point before reuse`,summary:{decision_count:0,stale_count:0,rebase_required_count:0,fresh_count:0},items:[]},todo_index:JSON.parse(`{"schema_version":"todo_index_v0","source":"live_loopx_status_public_slice","total_count":12,"current_projected_count":12,"rollout_event_count":94,"item_limit":12,"items":[{"goal_id":"loopx-meta","index":0,"done":false,"text":"todo update recorded for todo_1596c3a678bb","schema_version":"todo_index_item_v0","todo_id":"todo_1596c3a678bb","role":"agent","status":"open","title":"todo update recorded for todo_1596c3a678bb","source":"rollout_event_log","agent_id":"codex-main-control","latest_event_kind":"todo_update","latest_event_at":"2026-07-06T06:33:32Z","latest_event_status":"open","event_count":7,"event_kinds":["todo_update"]},{"goal_id":"loopx-meta","index":24,"done":false,"text":"Monitor ArcticDB #3179 LoopX comment https://github.com/man-group/ArcticDB/issues/3179#issuecomment-4797835630 for metadata-only maintainer reply signal; do not read private material or reply again without owner approva…","schema_version":"todo_index_item_v0","todo_id":"todo_15bc0926a494","role":"agent","status":"open","priority":"P0-REVENUE MONITOR","title":"Monitor ArcticDB #3179 LoopX comment https://github.com/man-group/ArcticDB/issues/3179#issuecomment-4797835630 for metadata-only maintainer reply signal; do not read private material or reply again without owner approva…","archive_state":"active","source_section":"Agent Todo","source":"attention_queue","task_class":"continuous_monitor","action_kind":"github_public_reply_metadata_monitor","claimed_by":"codex-value-explorer","evidence":"autonomous replan: bounded current value-explorer monitor lane with explicit expires_at.","note":"Set bounded watch expiry for metadata-only public reply monitor; no catch-up after expiry.","updated_at":"2026-07-05T06:27:15+08:00"},{"goal_id":"loopx-meta","index":17,"done":false,"text":"Block direct merge of legacy PR #199 until it is rebased/rewritten onto LoopX: rename goal_harness paths/imports and goal-harness CLI strings to loopx, rerun launch-artifact-handle smoke, and verify it does not reintrod…","schema_version":"todo_index_item_v0","todo_id":"todo_2bf560b48a0c","role":"agent","status":"open","priority":"P0","title":"Block direct merge of legacy PR #199 until it is rebased/rewritten onto LoopX: rename goal_harness paths/imports and goal-harness CLI strings to loopx, rerun launch-artifact-handle smoke, and verify it does not reintrod…","archive_state":"active","source_section":"Agent Todo","source":"attention_queue","task_class":"blocker","action_kind":"legacy_open_pr_rename_blocker","claimed_by":"codex-main-control"},{"goal_id":"loopx-meta","index":23,"done":false,"text":"Fix or bypass local SkillsBench Docker verifier reward collection before using local fallback for canonical base/test comparison; organize-messy-files base on merged #668 reached final verifier but produced empty verifi…","schema_version":"todo_index_item_v0","todo_id":"todo_3ed1c4a69164","role":"agent","status":"open","priority":"P0","title":"Fix or bypass local SkillsBench Docker verifier reward collection before using local fallback for canonical base/test comparison; organize-messy-files base on merged #668 reached final verifier but produced empty verifi…","archive_state":"active","source_section":"Agent Todo","source":"attention_queue","task_class":"blocker","action_kind":"skillsbench_local_verifier_reward_collection","claimed_by":"codex-main-control","required_capabilities":["benchmark_runner"]},{"goal_id":"loopx-meta","index":32,"done":false,"text":"Rerun SkillsBench raw vs loopx-goal-start-product-mode on citation-check and powerlifting with PR #779 merged; inspect compact public counters for soft_verify_exception_continued, probe_operation_count, task-facing solv…","schema_version":"todo_index_item_v0","todo_id":"todo_44907a5f355d","role":"agent","status":"blocked","priority":"P0","title":"Rerun SkillsBench raw vs loopx-goal-start-product-mode on citation-check and powerlifting with PR #779 merged; inspect compact public counters for soft_verify_exception_continued, probe_operation_count, task-facing solv…","archive_state":"active","source_section":"Agent Todo","source":"attention_queue","task_class":"advancement_task","action_kind":"skillsbench_goal_start_raw_new_rerun","claimed_by":"codex-main-control","evidence":"Public-safe redacted live LoopX text; inspect local status for the full row.","note":"Do not spend a full citation-check loopx rerun yet: #865 fixed scored output paths and #874 added bootstrap preflight attribution, but citation-check itself still preflights as apt+verifier bootstrap risk on ECS.","updated_at":"2026-06-29T00:49:36+08:00"},{"goal_id":"loopx-meta","index":39,"done":false,"text":"Run the next SkillsBench loopx-goal-start-product-mode reverse-channel case on latest main (no local Docker), prioritizing a currently bad or uncertain case, then update the public case ledger and true LoopX issue analy…","schema_version":"todo_index_item_v0","todo_id":"todo_4762c790e583","role":"agent","status":"blocked","priority":"P0","title":"Run the next SkillsBench loopx-goal-start-product-mode reverse-channel case on latest main (no local Docker), prioritizing a currently bad or uncertain case, then update the public case ledger and true LoopX issue analy…","archive_state":"active","source_section":"Agent Todo","source":"attention_queue","task_class":"advancement_task","action_kind":"skillsbench_goal_start_remote_rerun","claimed_by":"codex-main-control","evidence":"A prior benchmark adapter change was validated before the legacy surface was archived. Current research uses the RFC-linked benchmark workspace and toolkit boundary smokes.","note":"2026-06-29: fixed host-local ACP idle/no-output root cause in PR #894. ACP protocol tool_call_count=0 is now distinguished from reverse-channel task-facing bridge activity; repeated codex_exec_bridge_idle_timeout withou…","updated_at":"2026-06-29T19:40:32+08:00"},{"goal_id":"loopx-meta","index":0,"done":false,"text":"todo add recorded for todo_584f55f8f3b4","schema_version":"todo_index_item_v0","todo_id":"todo_584f55f8f3b4","role":"agent","status":"open","title":"todo add recorded for todo_584f55f8f3b4","source":"rollout_event_log","agent_id":"codex-value-explorer","latest_event_kind":"todo_update","latest_event_at":"2026-07-06T06:48:49Z","latest_event_status":"open","event_count":3,"event_kinds":["todo_add","todo_update"]},{"goal_id":"loopx-meta","index":40,"done":false,"text":"Monitor r10 SkillsBench 30-case codex-app-server-goal-baseline batch, summarize completed compact results into the common case ledger, and stop/repair if setup/bootstrap creates new non-solver blockers.","schema_version":"todo_index_item_v0","todo_id":"todo_62debf065fec","role":"agent","status":"blocked","priority":"P0 MONITOR","title":"Monitor r10 SkillsBench 30-case codex-app-server-goal-baseline batch, summarize completed compact results into the common case ledger, and stop/repair if setup/bootstrap creates new non-solver blockers.","archive_state":"active","source_section":"Agent Todo","source":"attention_queue","task_class":"continuous_monitor","action_kind":"monitor_skillsbench_batch","claimed_by":"codex-main-control","evidence":"Observed 2026-06-30T02:52+08: active-state target_key=skillsbench-goal-baseline-30case-20260629T1826Z-r10; local ps/tmux/recent artifact search found no r10 batch process or compact artifact; no raw task/log/trajectory …","updated_at":"2026-06-30T02:54:54+08:00"},{"goal_id":"loopx-meta","index":0,"done":false,"text":"todo add recorded for todo_93bc6439c521","schema_version":"todo_index_item_v0","todo_id":"todo_93bc6439c521","role":"agent","status":"open","title":"todo add recorded for todo_93bc6439c521","source":"rollout_event_log","agent_id":"codex-main-control","latest_event_kind":"todo_claim","latest_event_at":"2026-07-06T06:32:52Z","latest_event_status":"open","event_count":2,"event_kinds":["todo_add","todo_claim"]},{"goal_id":"loopx-meta","index":27,"done":false,"text":"Run the SkillsBench two-arm comparison after the goal-start route is countable: raw Codex vs new loopx-goal-start-product-mode, reporting task_score/control_score/time and compact public-safe LoopX todo rollout evidence.","schema_version":"todo_index_item_v0","todo_id":"todo_aad7e9716927","role":"agent","status":"blocked","priority":"P0","title":"Run the SkillsBench two-arm comparison after the goal-start route is countable: raw Codex vs new loopx-goal-start-product-mode, reporting task_score/control_score/time and compact public-safe LoopX todo rollout evidence.","archive_state":"active","source_section":"Agent Todo","source":"attention_queue","task_class":"advancement_task","action_kind":"run_goal_start_product_mode_matrix","claimed_by":"codex-main-control","evidence":"driver.status shows DONE raw then RUN loopx-goal-start with no running driver; raw benchmark_run.compact first_blocker=skillsbench_codex_acp_provider_zero_activity; source guard requires --host-local-acp-launch for Loop…","note":"Remote run group skillsbench-raw-new-goal-start-20260627T0420Z produced a material closeout for citation-check raw only; raw compact attribution is skillsbench_codex_acp_provider_zero_activity with official score missin…","updated_at":"2026-06-27T13:05:47+08:00"},{"goal_id":"loopx-meta","index":21,"done":false,"text":"Observe remote official SkillsBench powerlifting-coef-calc base/test runtime-layer mountfix pair skillsbench-powerlifting-coef-calc-remote-canonical-runtime-mountfix-pair-20260623T022028Z: use compact/public artifacts o…","schema_version":"todo_index_item_v0","todo_id":"todo_aec1873c7f28","role":"agent","status":"open","priority":"P0 MONITOR","title":"Observe remote official SkillsBench powerlifting-coef-calc base/test runtime-layer mountfix pair skillsbench-powerlifting-coef-calc-remote-canonical-runtime-mountfix-pair-20260623T022028Z: use compact/public artifacts o…","archive_state":"active","source_section":"Agent Todo","source":"attention_queue","task_class":"continuous_monitor","claimed_by":"codex-main-control","note":"2026-06-23 projection fix: this is monitor context for the powerlifting run, not an advancement next action; current executable path is SkillsBench build cache/prewarm repair.","updated_at":"2026-06-23T10:37:43+08:00"},{"goal_id":"loopx-meta","index":0,"done":false,"text":"todo add recorded for todo_c02cb7d19607","schema_version":"todo_index_item_v0","todo_id":"todo_c02cb7d19607","role":"agent","status":"open","title":"todo add recorded for todo_c02cb7d19607","source":"rollout_event_log","agent_id":"codex-value-explorer","latest_event_kind":"todo_add","latest_event_at":"2026-07-06T03:47:54Z","latest_event_status":"open","event_count":1,"event_kinds":["todo_add"]}]}`),agent_management_projection:{schema_version:`agent_management_projection_v0`,mode:`read_only`,goal_id:`loopx-meta`,generated_at:`2026-07-06T06:49:06Z`,style_hint:null,truth_contract:{todo_is_runtime_work_item:!0,projection_is_writable:!1,introduces_task_runtime:!1,write_api:!1},source_summary:{registered_agent_count:4,projected_agent_count:4,todo_source:`live_loopx_status_public_slice`,public_safe_export:!0},agents:[{agent_id:`codex-main-control`,agent_model:`peer_v1`,profile_role:`release-validation`,state:`blocked`,next_action:`Continue projected todo todo_2bf560b48a0c.`,last_activity_at:`2026-06-29T00:49:36+08:00`,evidence_refs:[`todo:todo_e72afc24f04a:evidence`],goal_ids:[`loopx-meta`],stale_claim_hint:{state:`activity_missing`,claimed_by:`codex-main-control`,reason:`claimed open todo has no projected activity timestamp`,recommended_operator_action:`inspect evidence before considering reassignment`},current_todo:{schema_version:`todo_row_v0`,todo_id:`todo_2bf560b48a0c`,goal_id:`loopx-meta`,role:`agent`,status:`open`,priority:`P0`,title:`Block direct merge of legacy PR #199 until it is rebased/rewritten onto LoopX: rename goal_harn…`,task_class:`blocker`,action_kind:`legacy_open_pr_rename_blocker`,claimed_by:`codex-main-control`}},{agent_id:`codex-product-capability`,agent_model:`peer_v1`,profile_role:`product-validation`,state:`monitoring`,next_action:`Continue projected todo todo_ded745761822.`,last_activity_at:`2026-07-06T06:29:53Z`,evidence_refs:[`todo:todo_ded745761822:evidence`],goal_ids:[`loopx-meta`],current_todo:{schema_version:`todo_row_v0`,todo_id:`todo_ded745761822`,goal_id:`loopx-meta`,role:`agent`,status:`open`,priority:`P0-LOCAL`,title:`Public-safe redacted live LoopX text; inspect local status for the full row.`,task_class:`continuous_monitor`,action_kind:`Public-safe redacted live LoopX text; inspect local status for the full row.`,claimed_by:`codex-product-capability`,updated_at:`2026-07-04T20:22:45+08:00`}},{agent_id:`codex-side-bypass`,agent_model:`peer_v1`,profile_role:`implementation-validation`,state:`waiting`,next_action:`Inspect status projection before taking work.`,last_activity_at:`2026-07-06T06:32:16Z`,evidence_refs:[`rollout_event:todo_complete:todo_22c946938115`],goal_ids:[`loopx-meta`]},{agent_id:`codex-value-explorer`,agent_model:`peer_v1`,profile_role:`value-exploration`,state:`monitoring`,next_action:`Continue projected todo todo_584f55f8f3b4.`,last_activity_at:`2026-07-06T09:39:59+08:00`,evidence_refs:[`rollout_event:todo_update:todo_584f55f8f3b4`],goal_ids:[`loopx-meta`],current_todo:{schema_version:`todo_row_v0`,todo_id:`todo_584f55f8f3b4`,goal_id:`loopx-meta`,role:`agent`,status:`open`,title:`todo add recorded for todo_584f55f8f3b4`}}]},contract:{ok:!0,summary:{errors:0,warnings:1,checks:6},errors:[],warnings:["loopx-meta: duplicate index rows raw=8444 unique=8440 unexpected=3 artifact_identity_collisions=2 artifact_collision_rows=3 reward_overlays=1; inspect with `loopx history --goal-id loopx-meta inspect-index-duplicates`; artifact identity collisions need review…"],checks:[`registry goals checked: 12`,`registry boundary: shared_local_registry push_allowed=False tracked=False ignored=False`,`user-gate scopes checked: 6 open multi-agent gates`,`runtime root resolved: $HOME/.codex/loopx`,`run-history goals=28 runs=10210`,`public boundary scan clean: 1218 files`]},global_registry:{available:!0,ok:!0,registry:`$HOME/.codex/loopx/registry.global.json`,current_registry:`$HOME/.codex/loopx/registry.global.json`,current_registry_is_global:!0,global_goal_count:12,current_goal_count:12,source_registry_count:7,summary:{high:0,action:8,info:0,checks:2,findings:8},findings:[{kind:`source_registry_missing`,severity:`action`,message:"`cc-test` source registry is missing",recommended_action:"reconnect `cc-test` from its project or archive it if the project is obsolete",goal_id:`cc-test`,path:`Public-safe redacted live LoopX text; inspect local status for the full row.`},{kind:`state_file_missing`,severity:`action`,message:"`cc-test` active state file is missing",recommended_action:"repair `cc-test` state_file or reconnect the project",goal_id:`cc-test`,path:`Public-safe redacted live LoopX text; inspect local status for the full row.`},{kind:`source_registry_missing`,severity:`action`,message:"`cc-tmp` source registry is missing",recommended_action:"reconnect `cc-tmp` from its project or archive it if the project is obsolete",goal_id:`cc-tmp`,path:`Public-safe redacted live LoopX text; inspect local status for the full row.`},{kind:`state_file_missing`,severity:`action`,message:"`cc-tmp` active state file is missing",recommended_action:"repair `cc-tmp` state_file or reconnect the project",goal_id:`cc-tmp`,path:`Public-safe redacted live LoopX text; inspect local status for the full row.`},{kind:`source_registry_missing`,severity:`action`,message:"`cc-tmp-xdrchpuaul` source registry is missing",recommended_action:"reconnect `cc-tmp-xdrchpuaul` from its project or archive it if the project is obsolete",goal_id:`cc-tmp-xdrchpuaul`,path:`Public-safe redacted live LoopX text; inspect local status for the full row.`},{kind:`state_file_missing`,severity:`action`,message:"`cc-tmp-xdrchpuaul` active state file is missing",recommended_action:"repair `cc-tmp-xdrchpuaul` state_file or reconnect the project",goal_id:`cc-tmp-xdrchpuaul`,path:`Public-safe redacted live LoopX text; inspect local status for the full row.`},{kind:`source_registry_missing`,severity:`action`,message:"`loopx-auto-research-e2e-probe-20260628-2225-goal` source registry is missing",recommended_action:"reconnect `loopx-auto-research-e2e-probe-20260628-2225-goal` from its project or archive it if the project is obsolete",goal_id:`loopx-auto-research-e2e-probe-20260628-2225-goal`,path:`Public-safe redacted live LoopX text; inspect local status for the full row.`},{kind:`state_file_missing`,severity:`action`,message:"`loopx-auto-research-e2e-probe-20260628-2225-goal` active state file is missing",recommended_action:"repair `loopx-auto-research-e2e-probe-20260628-2225-goal` state_file or reconnect the project",goal_id:`loopx-auto-research-e2e-probe-20260628-2225-goal`,path:`Public-safe redacted live LoopX text; inspect local status for the full row.`}],checks:[`global registry goals checked: 12`,`global source registries checked: 7`]},attention_queue:JSON.parse(`{"available":true,"item_count":1,"needs_user_or_controller":0,"needs_controller":0,"needs_codex":1,"watching_external_evidence":0,"items":[{"goal_id":"loopx-meta","status":"skillsbench_codex_cli_goal_tail4_keepalive_relaunched","lifecycle_phase":"adapter_inspected","lifecycle_flags":["adapter_inspected"],"waiting_on":"codex","severity":"action","recommended_action":"Monitor run_group skillsbench-codex-cli-goal-xhigh-tail4-keepalive-20260706T143132CST using public compact/public artifacts only; once benchmark_run.compact.json lands for each case, classify launcher/case/solver/verifi…","source":"latest_run","quota":{"compute":1.0,"window_hours":24,"slot_minutes":1,"allowed_slots":1440,"spent_slots":97,"state":"eligible","reason":"1 compute quota; eligible for the next automatic agent turn"},"agent_todos":{"source_section":"Agent Todo","total_count":12,"open_count":12,"done_count":0,"items":[{"goal_id":"loopx-meta","index":0,"done":false,"text":"todo update recorded for todo_1596c3a678bb","schema_version":"todo_index_item_v0","todo_id":"todo_1596c3a678bb","role":"agent","status":"open","title":"todo update recorded for todo_1596c3a678bb","source":"rollout_event_log","agent_id":"codex-main-control","latest_event_kind":"todo_update","latest_event_at":"2026-07-06T06:33:32Z","latest_event_status":"open","event_count":7,"event_kinds":["todo_update"]},{"goal_id":"loopx-meta","index":24,"done":false,"text":"Monitor ArcticDB #3179 LoopX comment https://github.com/man-group/ArcticDB/issues/3179#issuecomment-4797835630 for metadata-only maintainer reply signal; do not read private material or reply again without owner approva…","schema_version":"todo_index_item_v0","todo_id":"todo_15bc0926a494","role":"agent","status":"open","priority":"P0-REVENUE MONITOR","title":"Monitor ArcticDB #3179 LoopX comment https://github.com/man-group/ArcticDB/issues/3179#issuecomment-4797835630 for metadata-only maintainer reply signal; do not read private material or reply again without owner approva…","archive_state":"active","source_section":"Agent Todo","source":"attention_queue","task_class":"continuous_monitor","action_kind":"github_public_reply_metadata_monitor","claimed_by":"codex-value-explorer","evidence":"autonomous replan: bounded current value-explorer monitor lane with explicit expires_at.","note":"Set bounded watch expiry for metadata-only public reply monitor; no catch-up after expiry.","updated_at":"2026-07-05T06:27:15+08:00"},{"goal_id":"loopx-meta","index":17,"done":false,"text":"Block direct merge of legacy PR #199 until it is rebased/rewritten onto LoopX: rename goal_harness paths/imports and goal-harness CLI strings to loopx, rerun launch-artifact-handle smoke, and verify it does not reintrod…","schema_version":"todo_index_item_v0","todo_id":"todo_2bf560b48a0c","role":"agent","status":"open","priority":"P0","title":"Block direct merge of legacy PR #199 until it is rebased/rewritten onto LoopX: rename goal_harness paths/imports and goal-harness CLI strings to loopx, rerun launch-artifact-handle smoke, and verify it does not reintrod…","archive_state":"active","source_section":"Agent Todo","source":"attention_queue","task_class":"blocker","action_kind":"legacy_open_pr_rename_blocker","claimed_by":"codex-main-control"},{"goal_id":"loopx-meta","index":23,"done":false,"text":"Fix or bypass local SkillsBench Docker verifier reward collection before using local fallback for canonical base/test comparison; organize-messy-files base on merged #668 reached final verifier but produced empty verifi…","schema_version":"todo_index_item_v0","todo_id":"todo_3ed1c4a69164","role":"agent","status":"open","priority":"P0","title":"Fix or bypass local SkillsBench Docker verifier reward collection before using local fallback for canonical base/test comparison; organize-messy-files base on merged #668 reached final verifier but produced empty verifi…","archive_state":"active","source_section":"Agent Todo","source":"attention_queue","task_class":"blocker","action_kind":"skillsbench_local_verifier_reward_collection","claimed_by":"codex-main-control","required_capabilities":["benchmark_runner"]},{"goal_id":"loopx-meta","index":32,"done":false,"text":"Rerun SkillsBench raw vs loopx-goal-start-product-mode on citation-check and powerlifting with PR #779 merged; inspect compact public counters for soft_verify_exception_continued, probe_operation_count, task-facing solv…","schema_version":"todo_index_item_v0","todo_id":"todo_44907a5f355d","role":"agent","status":"blocked","priority":"P0","title":"Rerun SkillsBench raw vs loopx-goal-start-product-mode on citation-check and powerlifting with PR #779 merged; inspect compact public counters for soft_verify_exception_continued, probe_operation_count, task-facing solv…","archive_state":"active","source_section":"Agent Todo","source":"attention_queue","task_class":"advancement_task","action_kind":"skillsbench_goal_start_raw_new_rerun","claimed_by":"codex-main-control","evidence":"Public-safe redacted live LoopX text; inspect local status for the full row.","note":"Do not spend a full citation-check loopx rerun yet: #865 fixed scored output paths and #874 added bootstrap preflight attribution, but citation-check itself still preflights as apt+verifier bootstrap risk on ECS.","updated_at":"2026-06-29T00:49:36+08:00"},{"goal_id":"loopx-meta","index":39,"done":false,"text":"Run the next SkillsBench loopx-goal-start-product-mode reverse-channel case on latest main (no local Docker), prioritizing a currently bad or uncertain case, then update the public case ledger and true LoopX issue analy…","schema_version":"todo_index_item_v0","todo_id":"todo_4762c790e583","role":"agent","status":"blocked","priority":"P0","title":"Run the next SkillsBench loopx-goal-start-product-mode reverse-channel case on latest main (no local Docker), prioritizing a currently bad or uncertain case, then update the public case ledger and true LoopX issue analy…","archive_state":"active","source_section":"Agent Todo","source":"attention_queue","task_class":"advancement_task","action_kind":"skillsbench_goal_start_remote_rerun","claimed_by":"codex-main-control","evidence":"A prior benchmark adapter change was validated before the legacy surface was archived. Current research uses the RFC-linked benchmark workspace and toolkit boundary smokes.","note":"2026-06-29: fixed host-local ACP idle/no-output root cause in PR #894. ACP protocol tool_call_count=0 is now distinguished from reverse-channel task-facing bridge activity; repeated codex_exec_bridge_idle_timeout withou…","updated_at":"2026-06-29T19:40:32+08:00"},{"goal_id":"loopx-meta","index":0,"done":false,"text":"todo add recorded for todo_584f55f8f3b4","schema_version":"todo_index_item_v0","todo_id":"todo_584f55f8f3b4","role":"agent","status":"open","title":"todo add recorded for todo_584f55f8f3b4","source":"rollout_event_log","agent_id":"codex-value-explorer","latest_event_kind":"todo_update","latest_event_at":"2026-07-06T06:48:49Z","latest_event_status":"open","event_count":3,"event_kinds":["todo_add","todo_update"]},{"goal_id":"loopx-meta","index":40,"done":false,"text":"Monitor r10 SkillsBench 30-case codex-app-server-goal-baseline batch, summarize completed compact results into the common case ledger, and stop/repair if setup/bootstrap creates new non-solver blockers.","schema_version":"todo_index_item_v0","todo_id":"todo_62debf065fec","role":"agent","status":"blocked","priority":"P0 MONITOR","title":"Monitor r10 SkillsBench 30-case codex-app-server-goal-baseline batch, summarize completed compact results into the common case ledger, and stop/repair if setup/bootstrap creates new non-solver blockers.","archive_state":"active","source_section":"Agent Todo","source":"attention_queue","task_class":"continuous_monitor","action_kind":"monitor_skillsbench_batch","claimed_by":"codex-main-control","evidence":"Observed 2026-06-30T02:52+08: active-state target_key=skillsbench-goal-baseline-30case-20260629T1826Z-r10; local ps/tmux/recent artifact search found no r10 batch process or compact artifact; no raw task/log/trajectory …","updated_at":"2026-06-30T02:54:54+08:00"},{"goal_id":"loopx-meta","index":0,"done":false,"text":"todo add recorded for todo_93bc6439c521","schema_version":"todo_index_item_v0","todo_id":"todo_93bc6439c521","role":"agent","status":"open","title":"todo add recorded for todo_93bc6439c521","source":"rollout_event_log","agent_id":"codex-main-control","latest_event_kind":"todo_claim","latest_event_at":"2026-07-06T06:32:52Z","latest_event_status":"open","event_count":2,"event_kinds":["todo_add","todo_claim"]},{"goal_id":"loopx-meta","index":27,"done":false,"text":"Run the SkillsBench two-arm comparison after the goal-start route is countable: raw Codex vs new loopx-goal-start-product-mode, reporting task_score/control_score/time and compact public-safe LoopX todo rollout evidence.","schema_version":"todo_index_item_v0","todo_id":"todo_aad7e9716927","role":"agent","status":"blocked","priority":"P0","title":"Run the SkillsBench two-arm comparison after the goal-start route is countable: raw Codex vs new loopx-goal-start-product-mode, reporting task_score/control_score/time and compact public-safe LoopX todo rollout evidence.","archive_state":"active","source_section":"Agent Todo","source":"attention_queue","task_class":"advancement_task","action_kind":"run_goal_start_product_mode_matrix","claimed_by":"codex-main-control","evidence":"driver.status shows DONE raw then RUN loopx-goal-start with no running driver; raw benchmark_run.compact first_blocker=skillsbench_codex_acp_provider_zero_activity; source guard requires --host-local-acp-launch for Loop…","note":"Remote run group skillsbench-raw-new-goal-start-20260627T0420Z produced a material closeout for citation-check raw only; raw compact attribution is skillsbench_codex_acp_provider_zero_activity with official score missin…","updated_at":"2026-06-27T13:05:47+08:00"},{"goal_id":"loopx-meta","index":21,"done":false,"text":"Observe remote official SkillsBench powerlifting-coef-calc base/test runtime-layer mountfix pair skillsbench-powerlifting-coef-calc-remote-canonical-runtime-mountfix-pair-20260623T022028Z: use compact/public artifacts o…","schema_version":"todo_index_item_v0","todo_id":"todo_aec1873c7f28","role":"agent","status":"open","priority":"P0 MONITOR","title":"Observe remote official SkillsBench powerlifting-coef-calc base/test runtime-layer mountfix pair skillsbench-powerlifting-coef-calc-remote-canonical-runtime-mountfix-pair-20260623T022028Z: use compact/public artifacts o…","archive_state":"active","source_section":"Agent Todo","source":"attention_queue","task_class":"continuous_monitor","claimed_by":"codex-main-control","note":"2026-06-23 projection fix: this is monitor context for the powerlifting run, not an advancement next action; current executable path is SkillsBench build cache/prewarm repair.","updated_at":"2026-06-23T10:37:43+08:00"},{"goal_id":"loopx-meta","index":0,"done":false,"text":"todo add recorded for todo_c02cb7d19607","schema_version":"todo_index_item_v0","todo_id":"todo_c02cb7d19607","role":"agent","status":"open","title":"todo add recorded for todo_c02cb7d19607","source":"rollout_event_log","agent_id":"codex-value-explorer","latest_event_kind":"todo_add","latest_event_at":"2026-07-06T03:47:54Z","latest_event_status":"open","event_count":1,"event_kinds":["todo_add"]}]}}]}`),run_history:{available:!0,goal_count:1,run_count:5,goals:[{id:`loopx-meta`,domain:`loopx-platform`,status:`active-read-only`,lifecycle_phase:`adapter_inspected`,lifecycle_flags:[`adapter_inspected`],registry_member:!0,legacy_runtime_goal:!1,adapter_kind:`harness_self_improvement`,adapter_status:`connected-read-only`,index_exists:!0,raw_index_records:8444,unique_runs:8440,quota:{compute:1,window_hours:24,slot_minutes:1,allowed_slots:1440,spent_slots:97,state:`waiting`,reason:`no active Codex-ready work is currently selected`},latest_runs:[{generated_at:`2026-07-06T14:37:32+08:00`,goal_id:`loopx-meta`,classification:`quota_slot_spent`,agent_id:`codex-value-explorer`,recommended_action:`审阅 PR #1524 的 Agent Management 面板视觉方向:workspace hint 与 stale claim hint 是否符合预期;确认后允许 codex-value-explorer 自合并。`,health_check:`quota safe-bypass operator gate; quota slot spend event public-safe`,json_exists:!0,markdown_exists:!0,lifecycle_phase:`adapter_inspected`,lifecycle_flags:[`adapter_inspected`]},{generated_at:`2026-07-06T14:33:55+08:00`,goal_id:`loopx-meta`,classification:`quota_slot_spent`,agent_id:`codex-main-control`,recommended_action:`[P1] Repair SkillsBench post-run debug gate consistency for countable codex-cli-goal official-zero runs: when attempt_accounting is countable and case_closeout_complete=true, do not project first_blocker=loopx_closeout_…`,health_check:`quota should-run eligible; quota slot spend event public-safe`,json_exists:!0,markdown_exists:!0,lifecycle_phase:`adapter_inspected`,lifecycle_flags:[`adapter_inspected`]},{generated_at:`2026-07-06T14:33:54+08:00`,goal_id:`loopx-meta`,classification:`skillsbench_codex_cli_goal_tail4_keepalive_relaunched`,agent_id:`codex-main-control`,progress_scope:`goal`,delivery_batch_scale:`single_surface`,delivery_outcome:`outcome_progress`,recommended_action:`Monitor run_group skillsbench-codex-cli-goal-xhigh-tail4-keepalive-20260706T143132CST using public compact/public artifacts only; once benchmark_run.compact.json lands for each case, classify launcher/case/solver/verifi…`,health_check:`state_file 1/1; registry_goal 1/1; authority_sources 10`,json_exists:!0,markdown_exists:!0,lifecycle_phase:`adapter_inspected`,lifecycle_flags:[`adapter_inspected`]},{generated_at:`2026-07-06T14:33:34+08:00`,goal_id:`loopx-meta`,classification:`quota_slot_spent`,agent_id:`codex-side-bypass`,recommended_action:`[P0] Rerun real KNN visible auto-research after the successor-link fix and verify evaluator completion projects a second-round hypothesis/frontier or explicit completion gate without manual intervention; keep evidence p…`,health_check:`quota should-run eligible; quota slot spend event public-safe`,json_exists:!0,markdown_exists:!0,lifecycle_phase:`adapter_inspected`,lifecycle_flags:[`adapter_inspected`]},{generated_at:`2026-07-06T14:32:57+08:00`,goal_id:`loopx-meta`,classification:`auto_research_successor_link_fix_merged`,agent_id:`codex-side-bypass`,progress_scope:`agent_lane`,delivery_batch_scale:`implementation`,delivery_outcome:`outcome_progress`,recommended_action:`[P0] Rerun real KNN visible auto-research after the successor-link fix and verify evaluator completion projects a second-round hypothesis/frontier or explicit completion gate without manual intervention; keep evidence p…`,health_check:`state_file 1/1; registry_goal 1/1; authority_sources 0`,json_exists:!0,markdown_exists:!0,lifecycle_phase:`adapter_inspected`,lifecycle_flags:[`adapter_inspected`]}]}]}},Yd=W().nullable(),Xd=J({schema_version:X(`goal_acceptance_observation_projection_v0`),goal_id:W(),read_only:X(!0),acceptance_assessed:X(!1),coverage:Y([`partial`,`unavailable`]),missing_sources:q(W()),truncated:K(),historical_progress:q(J({kind:W(),observed_at:Yd,source:W(),evidence_refs:q(W())})),acceptance_gaps:q(J({kind:W(),owner:Yd,reason:Yd,evidence_required:Yd,observed_at:Yd,source:W(),reason_code:W().optional(),resolution_hint:W().optional(),component_checks:J({checkpoint_satisfied:K(),checkpoint_fresh:K(),path_outcome_valid:K(),evidence_refs_present:K(),final_outcome_claim_present:K(),no_reported_outcome_gap:K()}).optional()})),guards:q(J({kind:W(),todo_id:Yd,blocks_agent:Yd,owner:Yd,reason:Yd,evidence_required:Yd,decision_scope:Yd})),next_action:Yd,next_action_source:Yd}),Zd=ud([W(),G(),K(),nd()]),Qd=gd(W(),Zd),$d=J({todo_id:W().optional(),priority:W().optional(),status:W(),title:W(),claimed_by:W().optional(),task_class:W().optional(),action_kind:W().optional()}),ef=J({gate_id:W(),kind:W(),status:W(),blocks:q(W()).optional()}),tf=J({todo_id:W().optional(),owner_agent:W().optional(),status:W().optional(),lease_until:W().optional(),write_scope:q(W()).optional()}),nf=J({generated_at:W().optional(),classification:W().optional(),summary:W().optional()}),rf=J({kind:W().optional().default(`warning`),message:ud([W(),q(W())]).optional().default(`compact source warning`)}).passthrough(),af=J({schema_version:X(`goal_channel_projection_v0`),mode:X(`read_only`),goal_id:W(),display_name:W(),generated_at:W().optional().nullable(),latest_status:W(),waiting_on:W(),next_action:W(),source_refs:gd(W(),Zd),decision_frame:J({user_action_required:K(),agent_action_required:K(),quiet_noop_allowed:K()}),quota:Qd,user_todos:q($d).default([]),agent_todos:q($d).default([]),open_gates:q(ef).default([]),active_leases:q(tf).default([]),artifacts:q(Qd).default([]),recent_events:q(nf).default([]),source_warnings:q(rf).default([]),truth_contract:J({event_ledger_is_source_of_truth:K(),projection_is_writable:K(),recompute_rule:W(),write_authority:W()})}),of=J({compute:G().optional().default(1),window_hours:G().optional().default(24),slot_minutes:G().optional().default(1),allowed_slots:G().optional().nullable(),spent_slots:G().optional().default(0),state:W().optional().nullable(),next_eligible_at:W().optional().nullable(),reason:W().optional().nullable(),blocked_action_scope:W().optional().nullable(),focus_wait:K().optional().nullable(),handoff_outcome_floor_block:K().optional().nullable(),safe_bypass_allowed:K().optional().default(!1),safe_bypass_kind:W().optional().nullable(),safe_bypass_policy:W().optional().nullable(),post_handoff_outcome_gap_streak:G().optional().nullable(),outcome_gap_threshold:G().optional().nullable(),must_advance:q(W()).optional().default([]),avoid:q(W()).optional().default([])}).transform(e=>{let t=Math.max(1,e.slot_minutes),n=Math.round(e.window_hours*60*e.compute/t);return{...e,slot_minutes:t,allowed_slots:e.allowed_slots??n}}),sf=J({self_repair:J({enabled:K().optional().default(!1),allow_health_blocker_repair:K().optional().default(!1),allow_waiting_projection_repair:K().optional().default(!1)}).optional().nullable()}).passthrough(),cf=J({model_config:J({model:W(),reasoning_effort:W().optional()}).optional(),mode:W().optional().default(`default`),orchestration_mode:W().optional().nullable(),spawn_allowed:K().optional().default(!1),allowed:K().optional().nullable(),max_children:G().optional().default(0),allowed_domains:q(W()).optional().default([])}).passthrough(),lf=J({label:W().optional().nullable(),path:W(),anchor:W().optional().nullable(),exists:K().optional().default(!1),resolved_path:W().optional().nullable()}),uf=J({index:G(),done:K(),text:W(),schema_version:W().optional().nullable(),todo_id:W().optional().nullable(),role:W().optional().nullable(),status:W().optional().nullable(),resume_when:W().optional().nullable(),resume_ready:K().optional().nullable(),resume_condition:gd(W(),id()).optional().nullable(),priority:W().optional().nullable(),title:W().optional().nullable(),archive_state:W().optional().nullable(),source_section:W().optional().nullable(),task_class:W().optional().nullable(),task_domain:W().optional().nullable(),action_kind:W().optional().nullable(),claimed_by:W().optional().nullable(),required_capabilities:q(W()).optional(),note:W().optional().nullable(),evidence:W().optional().nullable(),updated_at:W().optional().nullable(),review_materials:q(lf).optional().default([])}).passthrough(),df=J({source_section:W().optional().nullable(),total_count:G().optional().default(0),open_count:G().optional().default(0),done_count:G().optional().default(0),advancement_done_count:G().optional(),items:q(uf).optional().default([]),deferred_items:q(uf).optional()}),ff=uf.extend({goal_id:W(),source:W().optional().nullable(),event_count:G().optional().default(0),event_kinds:q(W()).optional().default([]),latest_event_kind:W().optional().nullable(),latest_event_at:W().optional().nullable(),latest_event_status:W().optional().nullable(),agent_id:W().optional().nullable()}).passthrough(),pf=J({schema_version:W().optional().nullable(),source:W().optional().nullable(),total_count:G().optional().default(0),current_projected_count:G().optional().default(0),rollout_event_count:G().optional().default(0),item_limit:G().optional().nullable(),items:q(ff).optional().default([])}),mf=J({kind:W().optional().nullable(),label:W().optional().nullable(),path_safe:K().optional().default(!1),branch:W().optional().nullable(),write_scope:q(W()).optional().default([])}).passthrough(),hf=J({state:W().optional().nullable(),claimed_by:W().optional().nullable(),last_activity_at:W().optional().nullable(),threshold_hours:G().optional().nullable(),reason:W().optional().nullable(),recommended_operator_action:W().optional().nullable()}).passthrough(),gf=J({schema_version:W().optional().nullable(),todo_id:W().optional().nullable(),goal_id:W().optional().nullable(),role:W().optional().nullable(),status:W().optional().nullable(),priority:W().optional().nullable(),title:W().optional().nullable(),task_class:W().optional().nullable(),action_kind:W().optional().nullable(),claimed_by:W().optional().nullable(),required_write_scopes:q(W()).optional().default([]),workspace_ref:mf.optional().nullable()}).passthrough(),_f=J({schema_version:W().optional().nullable(),from_agent:W().optional().nullable(),to_agent:W().optional().nullable(),intent:W().optional().nullable(),summary:W().optional().nullable(),blocker:W().optional().nullable(),suggested_next_action:W().optional().nullable(),evidence_refs:q(W()).optional().default([]),updated_at:W().optional().nullable()}).passthrough(),vf=J({agent_id:W(),role:W().optional().nullable(),state:W().optional().nullable(),current_todo:gf.optional().nullable(),next_action:W().optional().nullable(),last_activity_at:W().optional().nullable(),evidence_refs:q(W()).optional().default([]),handoff_refs:q(W()).optional().default([]),handoff_note:_f.optional().nullable(),workspace_ref:mf.optional().nullable(),stale_claim_hint:hf.optional().nullable(),blocked_on:gf.optional().nullable(),goal_ids:q(W()).optional().default([])}).passthrough(),yf=J({schema_version:W().optional().nullable(),mode:W().optional().nullable(),goal_id:W().optional().nullable(),generated_at:W().optional().nullable(),style_hint:J({preferred:W().optional().nullable(),license_boundary:W().optional().nullable()}).optional().nullable(),truth_contract:J({todo_is_runtime_work_item:K().optional().default(!0),projection_is_writable:K().optional().default(!1),introduces_task_runtime:K().optional().default(!1),write_api:K().optional().default(!1)}).optional().nullable(),source_summary:J({registered_agent_count:G().optional().default(0),projected_agent_count:G().optional().default(0),todo_source:W().optional().nullable()}).optional().nullable(),agents:q(vf).optional().default([])}).passthrough(),bf=J({goal_id:W(),configured:K().optional().default(!1),enabled:K().optional().default(!1),human_gate_auto_notify_enabled:K().optional().default(!1),target_ref:W().optional().nullable(),receipt_count:G().optional().default(0),last_notified_at:W().optional().nullable()}).passthrough(),xf=J({schema_version:W().optional().nullable(),generated_at:W().optional().nullable(),goals:q(bf).optional().default([])}).passthrough(),Sf=J({source_section:W().optional().nullable(),open:G().optional().default(0),done:G().optional().default(0),total:G().optional().default(0),advancement_done_count:G().optional(),next:W().optional().nullable(),next_index:G().optional().nullable(),items:q(uf).optional().default([]),recent_completed_advancement_items:q(uf).optional().default([])}),Cf=J({goal_id:W(),status:W().optional().nullable(),waiting_on:W().optional().nullable(),severity:W().optional().nullable(),index:G().optional().nullable(),text:W(),source:W().optional().nullable()}),wf=J({source:W().optional().nullable(),open_count:G().optional().default(0),items:q(Cf).optional().default([])}),Tf=J({goal_id:W(),status:W().optional().nullable(),waiting_on:W().optional().nullable(),quota_state:W().optional().nullable(),priority:W().optional().nullable(),todo_index:G().optional().nullable(),text:W(),source:W().optional().nullable()}),Ef=J({source:W().optional().nullable(),open_count:G().optional().default(0),items:q(Tf).optional().default([])}),Df=J({generated_at:W().optional().nullable(),classification:W().optional().nullable(),summary:W().optional().nullable()}),Of=J({kind:W().optional().nullable(),source:W().optional().nullable(),severity:W().optional().nullable(),requires_refresh_state:K().optional().default(!1),reason:W().optional().nullable(),active_state_updated_at:W().optional().nullable(),latest_run_generated_at:W().optional().nullable(),latest_run_state_updated_at:W().optional().nullable(),latest_run_classification:W().optional().nullable(),recommended_action:W().optional().nullable()}),kf=J({generated_at:W().optional().nullable(),classification:W().optional().nullable(),delivery_batch_scale:W().optional().nullable(),delivery_outcome:W().optional().nullable(),health_check:W().optional().nullable(),json_exists:K().optional().nullable(),markdown_exists:K().optional().nullable()}),Af=J({project_asset_backed:K().optional(),same_source_should_run:K().optional(),codex_ready:K().optional(),handoff_has_next_action:K().optional(),handoff_has_stop_condition:K().optional(),handoff_sanitized_surface:K().optional()}).catchall(K()),jf=J({ready:K().optional().default(!1),codex_ready:K().optional().default(!1),source:W().optional().nullable(),quota_state:W().optional().nullable(),checks:Af.optional().default({}),handoff_status:W().optional().nullable(),handoff_ready_at:W().optional().nullable(),handoff_ready_classification:W().optional().nullable(),post_handoff_run_seen:K().optional().default(!1),post_handoff_latest_run:kf.optional().nullable(),post_handoff_recent_runs:q(kf).optional().default([]),post_handoff_small_scale_streak:G().int().nonnegative().optional().default(0),post_handoff_outcome_gap_streak:G().int().nonnegative().optional().default(0),next_probe:W().optional().nullable()}),Mf=J({schema_version:W().optional().nullable(),kind:W().optional().nullable(),missing_roles:q(W()).optional().default([]),source:W().optional().nullable(),recommended_action:W().optional().nullable()}),Nf=J({owner:W(),gate:W(),next_action:W(),stop_condition:W(),user_todos:Sf.optional().nullable(),agent_todos:Sf.optional().nullable(),quota:of.optional().nullable(),control_plane:sf.optional().nullable(),orchestration:cf.optional().nullable(),latest_validation:Df.optional().nullable(),stale_latest_run_warning:Of.optional().nullable(),todo_projection_gap:Mf.optional().nullable()}),Pf=J({goal_id:W(),activation_state:Y([`active`,`stopped`]).optional().default(`active`),status:W(),waiting_on:W(),severity:W(),recommended_action:W(),project_asset:Nf.optional().nullable(),handoff_readiness:jf.optional().nullable(),source:W().optional(),operator_question:W().optional().nullable(),agent_command:W().optional().nullable(),lifecycle_phase:W().optional().nullable(),lifecycle_flags:q(W()).optional().default([]),controller_stage:W().optional().nullable(),missing_gates:q(W()).optional().default([]),next_handoff_condition:W().optional().nullable(),quota:of.optional().nullable(),control_plane:sf.optional().nullable(),user_todos:df.optional().nullable(),agent_todos:df.optional().nullable(),stale_latest_run_warning:Of.optional().nullable(),dependency_blockers:wf.optional().nullable(),todo_state_file:W().optional().nullable(),goal_channel_projection:af.optional().nullable()}),Ff=J({recorded_at:W().optional().nullable(),decision:W().optional().nullable(),reward:W().optional().nullable(),reason_summary:W().optional().nullable(),follow_up:W().optional().nullable()}),If=J({recorded_at:W().optional().nullable(),gate:W().optional().nullable(),decision:W().optional().nullable(),operator_question:W().optional().nullable(),reason_summary:W().optional().nullable(),follow_up:W().optional().nullable(),agent_command:W().optional().nullable()}),Lf=J({version:W().optional().nullable(),goal_id:W().optional().nullable(),run_id:W().optional().nullable(),gate_id:W().optional().nullable(),created_state_ref:W().optional().nullable(),created_policy_version:W().optional().nullable(),interrupt_payload:J({question:W().optional().nullable(),choices:q(W()).optional().default([])}).optional().nullable(),allowed_decisions:q(W()).optional().default([]),operator_decision:W().optional().nullable(),latest_state_ref:W().optional().nullable(),freshness_check:W().optional().nullable(),precondition_check:W().optional().nullable(),migration_or_rebase_result:W().optional().nullable(),resulting_action:W().optional().nullable(),validation_after_resume:W().optional().nullable()}),Rf=J({id:W().optional().nullable(),ok:K().optional().nullable(),review:W().optional().nullable()}),zf=J({classification:W().optional().nullable(),read_only_observer_ready:K().optional().nullable(),decision_advisor_ready:K().optional().nullable(),write_controller_ready:K().optional().nullable(),missing_gates:q(W()).optional().default([]),review_judgment:W().optional().nullable(),next_handoff_condition:W().optional().nullable(),gates:q(Rf).optional().default([])}),Bf=J({declared:K().optional().default(!1),required:K().optional().default(!1),path:W().optional().nullable(),path_exists:K().optional().nullable(),read_status:W().optional().nullable(),default_entry_count:G().optional().default(0),default_entries_checked:G().optional().default(0),default_entries_present:G().optional().default(0),topic_authority_count:G().optional().default(0),project_material_count:G().optional().default(0),project_material_repository_count:G().optional().default(0),project_material_owner_review_required_count:G().optional().default(0),project_material_stale_count:G().optional().default(0),project_material_current_authority_count:G().optional().default(0),deprecated_source_count:G().optional().default(0),conflict_risk:W().optional().nullable()}),Vf=J({adapter_kind:W().optional().nullable(),adapter_status:W().optional().nullable(),authority_source_count:G().optional().nullable(),authority_registry_declared:K().optional().nullable(),authority_registry_path_exists:K().optional().nullable(),authority_registry_default_entry_count:G().optional().nullable(),authority_registry_default_entries_present:G().optional().nullable(),topic_authority_count:G().optional().nullable(),project_material_count:G().optional().nullable(),project_material_repository_count:G().optional().nullable(),project_material_owner_review_required_count:G().optional().nullable(),project_material_stale_count:G().optional().nullable(),project_material_current_authority_count:G().optional().nullable(),authority_registry_conflict_risk:W().optional().nullable(),guard_count:G().optional().nullable(),sections_found:G().optional().nullable(),sections_checked:G().optional().nullable(),files_present:G().optional().nullable(),files_checked:G().optional().nullable()}),Hf=J({generated_at:W(),goal_id:W(),classification:W().optional().nullable(),lifecycle_phase:W().optional().nullable(),lifecycle_flags:q(W()).optional().default([]),recommended_action:W().optional().nullable(),health_check:W().optional().nullable(),active_task_count:G().optional().nullable(),active_priorities:gd(W(),id()).optional().nullable(),cache_check:W().optional().nullable(),json_exists:K().optional().default(!1),markdown_exists:K().optional().default(!1),human_reward:Ff.optional().nullable(),operator_gate:If.optional().nullable(),operator_gate_resume_contract:Lf.optional().nullable(),controller_readiness:zf.optional().nullable(),project_map:Vf.optional().nullable()}),Uf=J({acceptance_observation:Xd.optional().nullable().catch(null),id:W(),activation_state:Y([`active`,`stopped`]).optional().default(`active`),display_name:W().optional().nullable(),domain:W().optional().nullable(),status:W().optional().nullable(),lifecycle_phase:W().optional().nullable(),lifecycle_flags:q(W()).optional().default([]),registry_member:K().optional().default(!1),legacy_runtime_goal:K().optional().default(!1),adapter_kind:W().optional().nullable(),adapter_status:W().optional().nullable(),authority_registry:Bf.optional().nullable(),quota:of.optional().nullable(),control_plane:sf.optional().nullable(),spawn_policy:cf.optional().nullable(),orchestration:cf.optional().nullable(),coordination:J({agent_model:W().optional().nullable(),registered_agents:q(W()).optional().default([])}).optional().nullable(),index_exists:K().optional().default(!1),raw_index_records:G().optional().default(0),unique_runs:G().optional().default(0),latest_runs:q(Hf).optional().default([])}),Wf=J({available:K(),goal_count:G().optional().default(0),run_count:G().optional().default(0),goals:q(Uf).optional().default([]),recent_runs:q(Hf).optional().default([])}),Gf=J({kind:W(),severity:W(),message:W(),recommended_action:W(),goal_id:W().optional().nullable(),path:W().optional().nullable(),goal_ids:q(W()).optional().default([])}),Kf=J({available:K(),ok:K(),registry:W(),current_registry:W().optional().nullable(),current_registry_is_global:K().optional().default(!1),global_goal_count:G().optional().default(0),current_goal_count:G().optional().default(0),source_registry_count:G().optional().default(0),summary:J({high:G().optional().default(0),action:G().optional().default(0),info:G().optional().default(0),checks:G().optional().default(0),findings:G().optional().default(0)}),findings:q(Gf).optional().default([]),checks:q(W()).optional().default([])}),qf=J({runs_24h:G().optional().default(0),runs_7d:G().optional().default(0),quota_spend_slots_24h:G().optional().default(0),quota_spend_slots_7d:G().optional().default(0),automation_run_count_24h:G().optional().default(0),automation_run_count_7d:G().optional().default(0),progress_signal_run_count_24h:G().optional().default(0),progress_signal_run_count_7d:G().optional().default(0),input_tokens_24h:G().optional(),input_tokens_7d:G().optional(),output_tokens_24h:G().optional(),output_tokens_7d:G().optional(),cache_tokens_24h:G().optional(),cache_tokens_7d:G().optional(),cost_usd_24h:G().optional(),cost_usd_7d:G().optional(),duration_ms_24h:G().optional(),duration_ms_7d:G().optional()}),Jf=qf.extend({goal_id:W(),project_share_24h:G().optional().default(0)}),Yf=J({available:K().optional().default(!0),source:W().optional().default(`run_history`),generated_at:W().optional().nullable(),sample_run_count:G().optional().default(0),proxy_note:W().optional().nullable(),totals:qf.optional().default({runs_24h:0,runs_7d:0,quota_spend_slots_24h:0,quota_spend_slots_7d:0,automation_run_count_24h:0,automation_run_count_7d:0,progress_signal_run_count_24h:0,progress_signal_run_count_7d:0}),goals:q(Jf).optional().default([])}).optional().nullable(),Xf=J({accounting:G().optional().default(0),decision:G().optional().default(0),evidence:G().optional().default(0),state:G().optional().default(0),work:G().optional().default(0)}),Zf={accounting:0,decision:0,evidence:0,state:0,work:0},Qf=J({events_24h:G().optional().default(0),events_7d:G().optional().default(0),by_class_24h:Xf.optional().default(Zf),by_class_7d:Xf.optional().default(Zf)}),$f=Qf.extend({goal_id:W(),latest_event_class:W().optional().nullable(),latest_event_at:W().optional().nullable()}),ep={events_24h:0,events_7d:0,by_class_24h:Zf,by_class_7d:Zf},tp=J({available:K().optional().default(!0),source:W().optional().default(`run_history`),generated_at:W().optional().nullable(),sample_run_count:G().optional().default(0),proxy_note:W().optional().nullable(),event_classes:q(W()).optional().default([`accounting`,`decision`,`evidence`,`state`,`work`]),totals:Qf.optional().default(ep),goals:q($f).optional().default([])}).optional().nullable(),np=J({available:K().optional().default(!1),source:W().optional().default(`run_history`),goal_id:W().optional().nullable(),generated_at:W().optional().nullable(),classification:W().optional().nullable(),delivery_batch_scale:W().optional().nullable(),delivery_outcome:W().optional().nullable(),recommended_action:W().optional().nullable(),json_exists:K().optional().default(!1),markdown_exists:K().optional().default(!1),freshness_window_hours:G().optional().default(24),freshness_status:W().optional().nullable(),is_fresh:K().optional().default(!1),requires_readiness_run:K().optional().default(!0),age_seconds:G().optional().nullable(),age_hours:G().optional().nullable(),freshness_reference_time:W().optional().nullable(),sample_run_count:G().optional().default(0),proxy_note:W().optional().nullable(),reason:W().optional().nullable()}).optional().nullable(),rp=J({ok:K().optional().default(!0),registry:W().optional().nullable(),runtime_root:W().optional().nullable(),gate:W().optional().default(`promotion_readiness`),gate_state:W().optional().default(`warning`),can_promote:K().optional().default(!1),should_warn:K().optional().default(!0),non_blocking:K().optional().default(!0),recommended_action:W().optional().nullable(),warning_message:W().optional().nullable(),readiness:np.default(null)}).optional().nullable(),ip=J({decision_count:G().optional().default(0),stale_count:G().optional().default(0),rebase_required_count:G().optional().default(0),fresh_count:G().optional().default(0)}),ap=J({goal_id:W(),decision_kind:W().optional().nullable(),decision_at:W().optional().nullable(),classification:W().optional().nullable(),age_days:G().optional().nullable(),stale_by_age:K().optional().default(!1),newer_event_count_7d:G().optional().default(0),newer_event_classes_7d:Xf.optional().default(Zf),freshness_state:W().optional().nullable(),requires_decision_point_rebase:K().optional().default(!1),reason:W().optional().nullable()}),op=J({available:K().optional().default(!0),source:W().optional().default(`run_history`),generated_at:W().optional().nullable(),sample_run_count:G().optional().default(0),window_days:G().optional().default(7),proxy_note:W().optional().nullable(),summary:ip.optional().default({decision_count:0,stale_count:0,rebase_required_count:0,fresh_count:0}),items:q(ap).optional().default([])}).optional().nullable(),sp=J({schema_version:G().optional().default(0),minimum_dashboard_schema_version:G().optional().default(2),producer:W().optional().nullable(),reload_hint:W().optional().nullable()}).optional().default({schema_version:0,minimum_dashboard_schema_version:2,producer:null,reload_hint:`scripts/macos-dashboard-launchagent.sh restart`}),cp=J({schema_version:X(`loopx_goal_projection_scope_v0`),scope:Y([`all`,`active`,`stopped`]),complete:K(),projected_goal_count:G().int().nonnegative(),registry_goal_count:G().int().nonnegative(),registry_revision:W().optional().nullable()}),lp=J({source:W().optional().default(`serve-status`),status_url:W().optional().nullable(),health_url:W().optional().nullable(),review_material_url:W().optional().nullable(),presentation_surfaces_url:W().optional().nullable(),presentation_detail_url:W().optional().nullable(),periodic_report_index_url:W().optional().nullable(),periodic_report_detail_url:W().optional().nullable(),ssh_hosts_url:W().optional().nullable(),reward_dry_run_url:W().optional().nullable(),reward_append_url:W().optional().nullable(),reward_write_enabled:K().optional().default(!1),configure_goal_dry_run_url:W().optional().nullable(),configure_goal_apply_url:W().optional().nullable(),control_plane_write_enabled:K().optional().default(!1)}).optional().nullable(),up=J({extension_id:W().min(1),surface_id:W().regex(/^[a-z][a-z0-9]*(?:-[a-z0-9]+)*$/),extension_revision:W().min(1),payload_sha256:W().regex(/^[0-9a-f]{64}$/)}).strict(),dp=J({extension_id:W().min(1),extension_revision:W().min(1),surface_id:W().regex(/^[a-z][a-z0-9]*(?:-[a-z0-9]+)*$/),surface_kind:W().regex(/^[a-z][a-z0-9]*(?:_[a-z0-9]+)*$/),title:W().min(1),view_schema:W().regex(/^[a-z][a-z0-9_]*_v\d+$/),visibility:Y([`public-safe`,`owner-only`]),goal_id:W().min(1).nullable(),generated_at:W().min(1).nullable(),review_due_at:W().min(1).nullable(),diagnostic:W().min(1).nullable(),empty_state_title:W().min(1),empty_state_detail:W().min(1)}),fp=ud([dp.extend({state:Y([`ready`,`review_due`]),goal_id:W().min(1),generated_at:W().min(1),detail_ref:up}).strict(),dp.extend({state:X(`empty`),detail_ref:od().optional()}).strict(),dp.extend({state:X(`invalid`),diagnostic:W().min(1),detail_ref:od().optional()}).strict()]),pp=J({schema_version:X(`extension_presentation_surfaces_v0`),count:G().int().nonnegative(),ready_count:G().int().nonnegative(),review_due_count:G().int().nonnegative(),empty_count:G().int().nonnegative(),invalid_count:G().int().nonnegative(),items:q(fp)}).strict(),mp={schema_version:`extension_presentation_surfaces_v0`,count:0,ready_count:0,review_due_count:0,empty_count:0,invalid_count:0,items:[]};J({ok:X(!0),presentation_surfaces:pp}).strict();var hp=J({goal_id:W().min(1),agent_id:W().min(1),generation_id:W().min(1),content_sha256:W().regex(/^sha256:[0-9a-f]{64}$/)}).strict(),gp=J({goal_id:W().min(1),agent_id:W().min(1),generation_id:W().min(1),publication_id:W().min(1),delivered_at:W().min(1),predecessor_publication_id:W().min(1).nullable().optional(),detail_ref:hp}).strict(),_p=J({schema_version:X(`periodic_report_workspace_index_v0`),count:G().int().nonnegative(),items:q(gp)}),vp=_p.extend({returned_count:G().int().nonnegative(),total_count:G().int().nonnegative(),limit:G().int().nonnegative(),offset:G().int().nonnegative(),truncated:K()}).strict(),yp=_p.strict().transform(e=>({...e,returned_count:e.count,total_count:e.count,limit:e.count,offset:0,truncated:!1})),bp=J({ok:X(!0),periodic_reports:ud([vp,yp])}).strict(),xp=J({schema_version:X(`periodic_report_workspace_projection_v0`),goal_id:W().min(1),agent_id:W().min(1),generation_id:W().min(1),generated_at:W().min(1),title:W().min(1),summary:W().min(1),content_sha256:W().regex(/^sha256:[0-9a-f]{64}$/),period_window:J({start_at:W().min(1),end_at:W().min(1)}).strict(),interaction:J({attention_kind:X(`progress`),interaction:X(`inform`),delivery:X(`surface`),form:X(`milestone_report`),writable:X(!1)}).strict(),delta:J({added_count:G().int().nonnegative(),changed_count:G().int().nonnegative(),item_count:G().int().positive(),items:q(J({fact_id:W().min(1),source_ref:W().min(1),title:W().min(1),summary:W().min(1),status:W().min(1),content_kind:W().min(1),change_kind:Y([`added`,`changed`]),previous_status:W().min(1).optional()}).strict())}).strict(),publication:J({publication_id:W().min(1),delivered_at:W().min(1),predecessor_publication_id:W().min(1).nullable().optional(),cursor_id:W().min(1)}).strict(),truth_contract:J({published_cursor_is_source_of_truth:X(!0),generation_receipt_is_delivery_receipt:X(!1),projection_is_writable:X(!1),browser_write_api:X(!1)}).strict()}).strict(),Sp=J({ok:X(!0),projection:xp}).strict(),Cp=J({ok:K(),registry:W(),runtime_root:W(),goal_count:G(),run_count:G(),status_contract:sp,goal_projection:cp.optional().nullable().default(null),local_dashboard_api:lp,contract:J({ok:K(),summary:J({errors:G(),warnings:G(),checks:G()}),errors:q(W()),warnings:q(W()),checks:q(W()).optional().default([])}),global_registry:Kf.optional().default({available:!1,ok:!0,registry:``,current_registry:null,current_registry_is_global:!1,global_goal_count:0,current_goal_count:0,source_registry_count:0,summary:{high:0,action:0,info:0,checks:0,findings:0},findings:[],checks:[]}),attention_queue:J({available:K(),item_count:G(),needs_user_or_controller:G(),needs_controller:G().optional().default(0),needs_codex:G(),watching_external_evidence:G(),autonomous_backlog_candidates:Ef.optional().nullable(),items:q(Pf)}),run_history:Wf.optional().default({available:!1,goal_count:0,run_count:0,goals:[],recent_runs:[]}),event_ledger_summary:tp.default(null),promotion_readiness_summary:np.default(null),promotion_gate:rp.default(null),decision_freshness_summary:op.default(null),usage_summary:Yf.default(null),todo_index:pf.optional().nullable().default(null),agent_management_projection:yf.optional().nullable().default(null),goal_channel_notification_projection:xf.optional().nullable().default(null),presentation_surfaces:pp.optional().default(mp)});J({ok:K(),dry_run:K().optional().default(!0),appended:K().optional().default(!1),goal_id:W().optional().nullable(),raw_index_records_before:G().optional().nullable(),preview_id:W().optional().nullable(),selected_run:J({generated_at:W().optional().nullable(),classification:W().optional().nullable(),recommended_action:W().optional().nullable(),json_exists:K().optional().nullable(),markdown_exists:K().optional().nullable()}).optional().nullable(),human_reward:Ff.optional().nullable(),active_state_summary:W().optional().nullable(),project_agent_visibility:J({source_of_truth:W().optional().nullable(),history_command:W().optional().nullable(),active_state_role:W().optional().nullable(),review_packet_role:W().optional().nullable()}).optional().nullable(),error:W().optional().nullable()});function wp(e,t,n){let r=e.run_history.goals.map(e=>e.id===t&&e.activation_state!==n?{...e,activation_state:n}:e),i=e.attention_queue.items.map(e=>e.goal_id===t&&e.activation_state!==n?{...e,activation_state:n}:e),a=r.some((t,n)=>t!==e.run_history.goals[n]),o=i.some((t,n)=>t!==e.attention_queue.items[n]);return!a&&!o?e:{...e,attention_queue:o?{...e.attention_queue,items:i}:e.attention_queue,run_history:a?{...e.run_history,goals:r}:e.run_history}}function Tp(e,t){let n=e.run_history.goals.filter(e=>e.id!==t),r=e.attention_queue.items.filter(e=>e.goal_id!==t);return n.length===e.run_history.goals.length&&r.length===e.attention_queue.items.length?e:{...e,attention_queue:{...e.attention_queue,items:r},run_history:{...e.run_history,goals:n}}}function Ep(e){return Cp.parse(e)}function Dp(e){return e instanceof fu?e.issues.map(e=>`${e.path.join(`.`)||`root`}: ${e.message}`).join(`; `):e instanceof Error?e.message:String(e)}var Op=Ep(Jd),kp=J({ok:X(!0),schema_version:X(`loopx_workspace_directory_v1`),registry_revision:W(),goals:q(J({id:W(),display_name:W(),activation_state:Y([`active`,`stopped`]),registry_member:X(!0)}))});function Ap(e,t,n={}){if(!e)return{};let r=new Set(n.invalidateGoalIds??[]),i=new Map(e.directory.goals.map(e=>[e.id,e]));return Object.fromEntries(t.goals.flatMap(t=>{let n=i.get(t.id),a=e.snapshots[t.id];return!n||!a||r.has(t.id)||n.display_name!==t.display_name||n.activation_state!==t.activation_state?[]:[[t.id,a]]}))}function jp(e,t,n){let r=new URL(e,n);r.searchParams.delete(`goal_activation`),r.searchParams.delete(`goal_id`),r.searchParams.delete(`view`);for(let[e,n]of Object.entries(t))r.searchParams.set(e,n);return r.toString()}async function Mp(e,t){let n=await fetch(jp(e,{view:`workspace-directory`},t),{cache:`no-store`,signal:AbortSignal.timeout(5e3)});if(!n.ok)return null;let r=kp.safeParse(await n.json());return r.success?r.data:null}function Np(e){return Ep({ok:!0,registry:``,runtime_root:``,goal_count:e.goals.length,run_count:0,local_dashboard_api:{},contract:{ok:!0,summary:{errors:0,warnings:0,checks:0},errors:[],warnings:[]},attention_queue:{available:!1,item_count:0,needs_user_or_controller:0,needs_codex:0,watching_external_evidence:0,items:[]},run_history:{available:!1,goal_count:e.goals.length,run_count:0,goals:e.goals,recent_runs:[]}})}async function Pp(e,t){if(!e.body)return`service`;let n=e.body.getReader(),r=()=>{n.cancel().catch(()=>{})};t.addEventListener(`abort`,r,{once:!0});let i=new Uint8Array(16384),a=0;try{for(t.throwIfAborted();;){let{done:e,value:r}=await n.read();if(t.throwIfAborted(),e)break;if(a+r.byteLength>i.byteLength)return`service`;i.set(r,a),a+=r.byteLength}let e=JSON.parse(new TextDecoder().decode(i.subarray(0,a)));return typeof e==`object`&&e&&!Array.isArray(e)&&`error_code`in e&&e.error_code===`workspace_status_access_denied`?`access`:`service`}catch{return t.throwIfAborted(),`service`}finally{t.removeEventListener(`abort`,r),r(),n.releaseLock()}}async function Fp(e,t,n,r,i,a,o){let s=[...n.goals],c=new Map;async function l(){for(;s.length&&i()&&!o?.aborted;){let l=s.findIndex(e=>e.id===a()),u=l>=0?l:s.findIndex(e=>e.activation_state===`active`);if(u<0)return;let d=s.splice(u,1)[0],f=(c.get(d.id)??0)+1;c.set(d.id,f);let p=new AbortController,m=!1,h=()=>p.abort();o?.addEventListener(`abort`,h,{once:!0});let g=setTimeout(()=>{m=!0,p.abort()},3e4),_=null;try{let a=await fetch(jp(e,{goal_id:d.id},t),{cache:`no-store`,signal:p.signal});if(!a.ok)_=a.status===409?`revision`:a.status>=500?await Pp(a,p.signal):`scope`,p.signal.throwIfAborted();else{let e=await a.json();if(e.workspace_registry_revision!==n.registry_revision)_=`revision`;else{let t=Ep(e);!t.run_history.goals.some(e=>e.id===d.id)||t.run_history.goals.some(e=>e.id!==d.id)?_=`scope`:i()&&!o?.aborted&&r(d.id,t,null)}}}catch(e){_=m?`timeout`:e instanceof TypeError?`network`:`invalid`}finally{clearTimeout(g),o?.removeEventListener(`abort`,h)}if(!i()||o?.aborted)return;_&&[`timeout`,`network`,`service`].includes(_)&&f<3?(await new Promise(e=>setTimeout(e,f*1e3)),s.push(d)):_&&r(d.id,null,_)}}await Promise.all([l(),l()])}var Ip=(...e)=>e.filter((e,t,n)=>!!e&&e.trim()!==``&&n.indexOf(e)===t).join(` `).trim(),Lp=e=>e.replace(/([a-z0-9])([A-Z])/g,`$1-$2`).toLowerCase(),Rp=e=>e.replace(/^([A-Z])|[\s-_]+(\w)/g,(e,t,n)=>n?n.toUpperCase():t.toLowerCase()),zp=e=>{let t=Rp(e);return t.charAt(0).toUpperCase()+t.slice(1)},Bp={xmlns:`http://www.w3.org/2000/svg`,width:24,height:24,viewBox:`0 0 24 24`,fill:`none`,stroke:`currentColor`,strokeWidth:2,strokeLinecap:`round`,strokeLinejoin:`round`},Vp=e=>{for(let t in e)if(t.startsWith(`aria-`)||t===`role`||t===`title`)return!0;return!1},Hp=(0,B.createContext)({}),Up=()=>(0,B.useContext)(Hp),Wp=(0,B.forwardRef)(({color:e,size:t,strokeWidth:n,absoluteStrokeWidth:r,className:i=``,children:a,iconNode:o,...s},c)=>{let{size:l=24,strokeWidth:u=2,absoluteStrokeWidth:d=!1,color:f=`currentColor`,className:p=``}=Up()??{},m=r??d?Number(n??u)*24/Number(t??l):n??u;return(0,B.createElement)(`svg`,{ref:c,...Bp,width:t??l??Bp.width,height:t??l??Bp.height,stroke:e??f,strokeWidth:m,className:Ip(`lucide`,p,i),...!a&&!Vp(s)&&{"aria-hidden":`true`},...s},[...o.map(([e,t])=>(0,B.createElement)(e,t)),...Array.isArray(a)?a:[a]])}),Z=(e,t)=>{let n=(0,B.forwardRef)(({className:n,...r},i)=>(0,B.createElement)(Wp,{ref:i,iconNode:t,className:Ip(`lucide-${Lp(zp(e))}`,`lucide-${e}`,n),...r}));return n.displayName=zp(e),n},Gp=Z(`activity`,[[`path`,{d:`M22 12h-2.48a2 2 0 0 0-1.93 1.46l-2.35 8.36a.25.25 0 0 1-.48 0L9.24 2.18a.25.25 0 0 0-.48 0l-2.35 8.36A2 2 0 0 1 4.49 12H2`,key:`169zse`}]]),Kp=Z(`arrow-down`,[[`path`,{d:`M12 5v14`,key:`s699le`}],[`path`,{d:`m19 12-7 7-7-7`,key:`1idqje`}]]),qp=Z(`arrow-left`,[[`path`,{d:`m12 19-7-7 7-7`,key:`1l729n`}],[`path`,{d:`M19 12H5`,key:`x3x0zl`}]]),Jp=Z(`arrow-right`,[[`path`,{d:`M5 12h14`,key:`1ays0h`}],[`path`,{d:`m12 5 7 7-7 7`,key:`xquz4c`}]]),Yp=Z(`arrow-up-down`,[[`path`,{d:`m21 16-4 4-4-4`,key:`f6ql7i`}],[`path`,{d:`M17 20V4`,key:`1ejh1v`}],[`path`,{d:`m3 8 4-4 4 4`,key:`11wl7u`}],[`path`,{d:`M7 4v16`,key:`1glfcx`}]]),Xp=Z(`arrow-up`,[[`path`,{d:`m5 12 7-7 7 7`,key:`hav0vg`}],[`path`,{d:`M12 19V5`,key:`x0mq9r`}]]),Zp=Z(`badge-check`,[[`path`,{d:`M3.85 8.62a4 4 0 0 1 4.78-4.77 4 4 0 0 1 6.74 0 4 4 0 0 1 4.78 4.78 4 4 0 0 1 0 6.74 4 4 0 0 1-4.77 4.78 4 4 0 0 1-6.75 0 4 4 0 0 1-4.78-4.77 4 4 0 0 1 0-6.76Z`,key:`3c2336`}],[`path`,{d:`m9 12 2 2 4-4`,key:`dzmm74`}]]),Qp=Z(`bell`,[[`path`,{d:`M10.268 21a2 2 0 0 0 3.464 0`,key:`vwvbt9`}],[`path`,{d:`M3.262 15.326A1 1 0 0 0 4 17h16a1 1 0 0 0 .74-1.673C19.41 13.956 18 12.499 18 8A6 6 0 0 0 6 8c0 4.499-1.411 5.956-2.738 7.326`,key:`11g9vi`}]]),$p=Z(`bot`,[[`path`,{d:`M12 8V4H8`,key:`hb8ula`}],[`rect`,{width:`16`,height:`12`,x:`4`,y:`8`,rx:`2`,key:`enze0r`}],[`path`,{d:`M2 14h2`,key:`vft8re`}],[`path`,{d:`M20 14h2`,key:`4cs60a`}],[`path`,{d:`M15 13v2`,key:`1xurst`}],[`path`,{d:`M9 13v2`,key:`rq6x2g`}]]),em=Z(`braces`,[[`path`,{d:`M8 3H7a2 2 0 0 0-2 2v5a2 2 0 0 1-2 2 2 2 0 0 1 2 2v5c0 1.1.9 2 2 2h1`,key:`ezmyqa`}],[`path`,{d:`M16 21h1a2 2 0 0 0 2-2v-5c0-1.1.9-2 2-2a2 2 0 0 1-2-2V5a2 2 0 0 0-2-2h-1`,key:`e1hn23`}]]),tm=Z(`calendar-clock`,[[`path`,{d:`M16 14v2.2l1.6 1`,key:`fo4ql5`}],[`path`,{d:`M16 2v4`,key:`4m81vk`}],[`path`,{d:`M21 7.5V6a2 2 0 0 0-2-2H5a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h3.5`,key:`1osxxc`}],[`path`,{d:`M3 10h5`,key:`r794hk`}],[`path`,{d:`M8 2v4`,key:`1cmpym`}],[`circle`,{cx:`16`,cy:`16`,r:`6`,key:`qoo3c4`}]]),nm=Z(`check`,[[`path`,{d:`M20 6 9 17l-5-5`,key:`1gmf2c`}]]),rm=Z(`chevron-down`,[[`path`,{d:`m6 9 6 6 6-6`,key:`qrunsl`}]]),im=Z(`chevron-right`,[[`path`,{d:`m9 18 6-6-6-6`,key:`mthhwq`}]]),am=Z(`chevron-up`,[[`path`,{d:`m18 15-6-6-6 6`,key:`153udz`}]]),om=Z(`circle-alert`,[[`circle`,{cx:`12`,cy:`12`,r:`10`,key:`1mglay`}],[`line`,{x1:`12`,x2:`12`,y1:`8`,y2:`12`,key:`1pkeuh`}],[`line`,{x1:`12`,x2:`12.01`,y1:`16`,y2:`16`,key:`4dfq90`}]]),sm=Z(`circle-check`,[[`circle`,{cx:`12`,cy:`12`,r:`10`,key:`1mglay`}],[`path`,{d:`m9 12 2 2 4-4`,key:`dzmm74`}]]),cm=Z(`clipboard-check`,[[`rect`,{width:`8`,height:`4`,x:`8`,y:`2`,rx:`1`,ry:`1`,key:`tgr4d6`}],[`path`,{d:`M16 4h2a2 2 0 0 1 2 2v14a2 2 0 0 1-2 2H6a2 2 0 0 1-2-2V6a2 2 0 0 1 2-2h2`,key:`116196`}],[`path`,{d:`m9 14 2 2 4-4`,key:`df797q`}]]),lm=Z(`code-xml`,[[`path`,{d:`m18 16 4-4-4-4`,key:`1inbqp`}],[`path`,{d:`m6 8-4 4 4 4`,key:`15zrgr`}],[`path`,{d:`m14.5 4-5 16`,key:`e7oirm`}]]),um=Z(`copy`,[[`rect`,{width:`14`,height:`14`,x:`8`,y:`8`,rx:`2`,ry:`2`,key:`17jyea`}],[`path`,{d:`M4 16c-1.1 0-2-.9-2-2V4c0-1.1.9-2 2-2h10c1.1 0 2 .9 2 2`,key:`zix9uf`}]]),dm=Z(`database`,[[`ellipse`,{cx:`12`,cy:`5`,rx:`9`,ry:`3`,key:`msslwz`}],[`path`,{d:`M3 5V19A9 3 0 0 0 21 19V5`,key:`1wlel7`}],[`path`,{d:`M3 12A9 3 0 0 0 21 12`,key:`mv7ke4`}]]),fm=Z(`download`,[[`path`,{d:`M12 15V3`,key:`m9g1x1`}],[`path`,{d:`M21 15v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-4`,key:`ih7n3h`}],[`path`,{d:`m7 10 5 5 5-5`,key:`brsn70`}]]),pm=Z(`ellipsis`,[[`circle`,{cx:`12`,cy:`12`,r:`1`,key:`41hilf`}],[`circle`,{cx:`19`,cy:`12`,r:`1`,key:`1wjl8i`}],[`circle`,{cx:`5`,cy:`12`,r:`1`,key:`1pcz8c`}]]),mm=Z(`external-link`,[[`path`,{d:`M15 3h6v6`,key:`1q9fwt`}],[`path`,{d:`M10 14 21 3`,key:`gplh6r`}],[`path`,{d:`M18 13v6a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V8a2 2 0 0 1 2-2h6`,key:`a6xqqp`}]]),hm=Z(`eye`,[[`path`,{d:`M2.062 12.348a1 1 0 0 1 0-.696 10.75 10.75 0 0 1 19.876 0 1 1 0 0 1 0 .696 10.75 10.75 0 0 1-19.876 0`,key:`1nclc0`}],[`circle`,{cx:`12`,cy:`12`,r:`3`,key:`1v7zrd`}]]),gm=Z(`file-braces`,[[`path`,{d:`M6 22a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h8a2.4 2.4 0 0 1 1.704.706l3.588 3.588A2.4 2.4 0 0 1 20 8v12a2 2 0 0 1-2 2z`,key:`1oefj6`}],[`path`,{d:`M14 2v5a1 1 0 0 0 1 1h5`,key:`wfsgrz`}],[`path`,{d:`M10 12a1 1 0 0 0-1 1v1a1 1 0 0 1-1 1 1 1 0 0 1 1 1v1a1 1 0 0 0 1 1`,key:`1oajmo`}],[`path`,{d:`M14 18a1 1 0 0 0 1-1v-1a1 1 0 0 1 1-1 1 1 0 0 1-1-1v-1a1 1 0 0 0-1-1`,key:`mpwhp6`}]]),_m=Z(`file-check-corner`,[[`path`,{d:`M10.5 22H6a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h8a2.4 2.4 0 0 1 1.706.706l3.588 3.588A2.4 2.4 0 0 1 20 8v6`,key:`g5mvt7`}],[`path`,{d:`M14 2v5a1 1 0 0 0 1 1h5`,key:`wfsgrz`}],[`path`,{d:`m14 20 2 2 4-4`,key:`15kota`}]]),vm=Z(`file-text`,[[`path`,{d:`M6 22a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h8a2.4 2.4 0 0 1 1.704.706l3.588 3.588A2.4 2.4 0 0 1 20 8v12a2 2 0 0 1-2 2z`,key:`1oefj6`}],[`path`,{d:`M14 2v5a1 1 0 0 0 1 1h5`,key:`wfsgrz`}],[`path`,{d:`M10 9H8`,key:`b1mrlr`}],[`path`,{d:`M16 13H8`,key:`t4e002`}],[`path`,{d:`M16 17H8`,key:`z1uh3a`}]]),ym=Z(`git-branch`,[[`path`,{d:`M15 6a9 9 0 0 0-9 9V3`,key:`1cii5b`}],[`circle`,{cx:`18`,cy:`6`,r:`3`,key:`1h7g24`}],[`circle`,{cx:`6`,cy:`18`,r:`3`,key:`fqmcym`}]]),bm=Z(`git-compare-arrows`,[[`circle`,{cx:`5`,cy:`6`,r:`3`,key:`1qnov2`}],[`path`,{d:`M12 6h5a2 2 0 0 1 2 2v7`,key:`1yj91y`}],[`path`,{d:`m15 9-3-3 3-3`,key:`1lwv8l`}],[`circle`,{cx:`19`,cy:`18`,r:`3`,key:`1qljk2`}],[`path`,{d:`M12 18H7a2 2 0 0 1-2-2V9`,key:`16sdep`}],[`path`,{d:`m9 15 3 3-3 3`,key:`1m3kbl`}]]),xm=Z(`info`,[[`circle`,{cx:`12`,cy:`12`,r:`10`,key:`1mglay`}],[`path`,{d:`M12 16v-4`,key:`1dtifu`}],[`path`,{d:`M12 8h.01`,key:`e9boi3`}]]),Sm=Z(`key-round`,[[`path`,{d:`M2.586 17.414A2 2 0 0 0 2 18.828V21a1 1 0 0 0 1 1h3a1 1 0 0 0 1-1v-1a1 1 0 0 1 1-1h1a1 1 0 0 0 1-1v-1a1 1 0 0 1 1-1h.172a2 2 0 0 0 1.414-.586l.814-.814a6.5 6.5 0 1 0-4-4z`,key:`1s6t7t`}],[`circle`,{cx:`16.5`,cy:`7.5`,r:`.5`,fill:`currentColor`,key:`w0ekpg`}]]),Cm=Z(`languages`,[[`path`,{d:`m5 8 6 6`,key:`1wu5hv`}],[`path`,{d:`m4 14 6-6 2-3`,key:`1k1g8d`}],[`path`,{d:`M2 5h12`,key:`or177f`}],[`path`,{d:`M7 2h1`,key:`1t2jsx`}],[`path`,{d:`m22 22-5-10-5 10`,key:`don7ne`}],[`path`,{d:`M14 18h6`,key:`1m8k6r`}]]),wm=Z(`layout-dashboard`,[[`rect`,{width:`7`,height:`9`,x:`3`,y:`3`,rx:`1`,key:`10lvy0`}],[`rect`,{width:`7`,height:`5`,x:`14`,y:`3`,rx:`1`,key:`16une8`}],[`rect`,{width:`7`,height:`9`,x:`14`,y:`12`,rx:`1`,key:`1hutg5`}],[`rect`,{width:`7`,height:`5`,x:`3`,y:`16`,rx:`1`,key:`ldoo1y`}]]),Tm=Z(`list-plus`,[[`path`,{d:`M16 5H3`,key:`m91uny`}],[`path`,{d:`M11 12H3`,key:`51ecnj`}],[`path`,{d:`M16 19H3`,key:`zzsher`}],[`path`,{d:`M18 9v6`,key:`1twb98`}],[`path`,{d:`M21 12h-6`,key:`bt1uis`}]]),Em=Z(`loader-circle`,[[`path`,{d:`M21 12a9 9 0 1 1-6.219-8.56`,key:`13zald`}]]),Dm=Z(`maximize-2`,[[`path`,{d:`M15 3h6v6`,key:`1q9fwt`}],[`path`,{d:`m21 3-7 7`,key:`1l2asr`}],[`path`,{d:`m3 21 7-7`,key:`tjx5ai`}],[`path`,{d:`M9 21H3v-6`,key:`wtvkvv`}]]),Om=Z(`menu`,[[`path`,{d:`M4 5h16`,key:`1tepv9`}],[`path`,{d:`M4 12h16`,key:`1lakjw`}],[`path`,{d:`M4 19h16`,key:`1djgab`}]]),km=Z(`message-circle-question-mark`,[[`path`,{d:`M2.992 16.342a2 2 0 0 1 .094 1.167l-1.065 3.29a1 1 0 0 0 1.236 1.168l3.413-.998a2 2 0 0 1 1.099.092 10 10 0 1 0-4.777-4.719`,key:`1sd12s`}],[`path`,{d:`M9.09 9a3 3 0 0 1 5.83 1c0 2-3 3-3 3`,key:`1u773s`}],[`path`,{d:`M12 17h.01`,key:`p32p05`}]]),Am=Z(`message-square-text`,[[`path`,{d:`M22 17a2 2 0 0 1-2 2H6.828a2 2 0 0 0-1.414.586l-2.202 2.202A.71.71 0 0 1 2 21.286V5a2 2 0 0 1 2-2h16a2 2 0 0 1 2 2z`,key:`18887p`}],[`path`,{d:`M7 11h10`,key:`1twpyw`}],[`path`,{d:`M7 15h6`,key:`d9of3u`}],[`path`,{d:`M7 7h8`,key:`af5zfr`}]]),jm=Z(`minimize-2`,[[`path`,{d:`m14 10 7-7`,key:`oa77jy`}],[`path`,{d:`M20 10h-6V4`,key:`mjg0md`}],[`path`,{d:`m3 21 7-7`,key:`tjx5ai`}],[`path`,{d:`M4 14h6v6`,key:`rmj7iw`}]]),Mm=Z(`moon`,[[`path`,{d:`M20.985 12.486a9 9 0 1 1-9.473-9.472c.405-.022.617.46.402.803a6 6 0 0 0 8.268 8.268c.344-.215.825-.004.803.401`,key:`kfwtm`}]]),Nm=Z(`palette`,[[`path`,{d:`M12 22a1 1 0 0 1 0-20 10 9 0 0 1 10 9 5 5 0 0 1-5 5h-2.25a1.75 1.75 0 0 0-1.4 2.8l.3.4a1.75 1.75 0 0 1-1.4 2.8z`,key:`e79jfc`}],[`circle`,{cx:`13.5`,cy:`6.5`,r:`.5`,fill:`currentColor`,key:`1okk4w`}],[`circle`,{cx:`17.5`,cy:`10.5`,r:`.5`,fill:`currentColor`,key:`f64h9f`}],[`circle`,{cx:`6.5`,cy:`12.5`,r:`.5`,fill:`currentColor`,key:`qy21gx`}],[`circle`,{cx:`8.5`,cy:`7.5`,r:`.5`,fill:`currentColor`,key:`fotxhn`}]]),Pm=Z(`paperclip`,[[`path`,{d:`m16 6-8.414 8.586a2 2 0 0 0 2.829 2.829l8.414-8.586a4 4 0 1 0-5.657-5.657l-8.379 8.551a6 6 0 1 0 8.485 8.485l8.379-8.551`,key:`1miecu`}]]),Fm=Z(`pause`,[[`rect`,{x:`14`,y:`3`,width:`5`,height:`18`,rx:`1`,key:`kaeet6`}],[`rect`,{x:`5`,y:`3`,width:`5`,height:`18`,rx:`1`,key:`1wsw3u`}]]),Im=Z(`play`,[[`path`,{d:`M5 5a2 2 0 0 1 3.008-1.728l11.997 6.998a2 2 0 0 1 .003 3.458l-12 7A2 2 0 0 1 5 19z`,key:`10ikf1`}]]),Lm=Z(`plus`,[[`path`,{d:`M5 12h14`,key:`1ays0h`}],[`path`,{d:`M12 5v14`,key:`s699le`}]]),Rm=Z(`radio`,[[`path`,{d:`M16.247 7.761a6 6 0 0 1 0 8.478`,key:`1fwjs5`}],[`path`,{d:`M19.075 4.933a10 10 0 0 1 0 14.134`,key:`ehdyv1`}],[`path`,{d:`M4.925 19.067a10 10 0 0 1 0-14.134`,key:`1q22gi`}],[`path`,{d:`M7.753 16.239a6 6 0 0 1 0-8.478`,key:`r2q7qm`}],[`circle`,{cx:`12`,cy:`12`,r:`2`,key:`1c9p78`}]]),zm=Z(`refresh-cw`,[[`path`,{d:`M3 12a9 9 0 0 1 9-9 9.75 9.75 0 0 1 6.74 2.74L21 8`,key:`v9h5vc`}],[`path`,{d:`M21 3v5h-5`,key:`1q7to0`}],[`path`,{d:`M21 12a9 9 0 0 1-9 9 9.75 9.75 0 0 1-6.74-2.74L3 16`,key:`3uifl3`}],[`path`,{d:`M8 16H3v5`,key:`1cv678`}]]),Bm=Z(`rotate-ccw`,[[`path`,{d:`M3 12a9 9 0 1 0 9-9 9.75 9.75 0 0 0-6.74 2.74L3 8`,key:`1357e3`}],[`path`,{d:`M3 3v5h5`,key:`1xhq8a`}]]),Vm=Z(`rotate-cw`,[[`path`,{d:`M21 12a9 9 0 1 1-9-9c2.52 0 4.93 1 6.74 2.74L21 8`,key:`1p45f6`}],[`path`,{d:`M21 3v5h-5`,key:`1q7to0`}]]),Hm=Z(`search`,[[`path`,{d:`m21 21-4.34-4.34`,key:`14j7rj`}],[`circle`,{cx:`11`,cy:`11`,r:`8`,key:`4ej97u`}]]),Um=Z(`send`,[[`path`,{d:`M14.536 21.686a.5.5 0 0 0 .937-.024l6.5-19a.496.496 0 0 0-.635-.635l-19 6.5a.5.5 0 0 0-.024.937l7.93 3.18a2 2 0 0 1 1.112 1.11z`,key:`1ffxy3`}],[`path`,{d:`m21.854 2.147-10.94 10.939`,key:`12cjpa`}]]),Wm=Z(`server-cog`,[[`path`,{d:`m10.852 14.772-.383.923`,key:`11vil6`}],[`path`,{d:`M13.148 14.772a3 3 0 1 0-2.296-5.544l-.383-.923`,key:`1v3clb`}],[`path`,{d:`m13.148 9.228.383-.923`,key:`t2zzyc`}],[`path`,{d:`m13.53 15.696-.382-.924a3 3 0 1 1-2.296-5.544`,key:`1bxfiv`}],[`path`,{d:`m14.772 10.852.923-.383`,key:`k9m8cz`}],[`path`,{d:`m14.772 13.148.923.383`,key:`1xvhww`}],[`path`,{d:`M4.5 10H4a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h16a2 2 0 0 1 2 2v4a2 2 0 0 1-2 2h-.5`,key:`tn8das`}],[`path`,{d:`M4.5 14H4a2 2 0 0 0-2 2v4a2 2 0 0 0 2 2h16a2 2 0 0 0 2-2v-4a2 2 0 0 0-2-2h-.5`,key:`1g2pve`}],[`path`,{d:`M6 18h.01`,key:`uhywen`}],[`path`,{d:`M6 6h.01`,key:`1utrut`}],[`path`,{d:`m9.228 10.852-.923-.383`,key:`1wtb30`}],[`path`,{d:`m9.228 13.148-.923.383`,key:`1a830x`}]]),Gm=Z(`server`,[[`rect`,{width:`20`,height:`8`,x:`2`,y:`2`,rx:`2`,ry:`2`,key:`ngkwjq`}],[`rect`,{width:`20`,height:`8`,x:`2`,y:`14`,rx:`2`,ry:`2`,key:`iecqi9`}],[`line`,{x1:`6`,x2:`6.01`,y1:`6`,y2:`6`,key:`16zg32`}],[`line`,{x1:`6`,x2:`6.01`,y1:`18`,y2:`18`,key:`nzw8ys`}]]),Km=Z(`settings-2`,[[`path`,{d:`M14 17H5`,key:`gfn3mx`}],[`path`,{d:`M19 7h-9`,key:`6i9tg`}],[`circle`,{cx:`17`,cy:`17`,r:`3`,key:`18b49y`}],[`circle`,{cx:`7`,cy:`7`,r:`3`,key:`dfmy0x`}]]),qm=Z(`shield-check`,[[`path`,{d:`M20 13c0 5-3.5 7.5-7.66 8.95a1 1 0 0 1-.67-.01C7.5 20.5 4 18 4 13V6a1 1 0 0 1 1-1c2 0 4.5-1.2 6.24-2.72a1.17 1.17 0 0 1 1.52 0C14.51 3.81 17 5 19 5a1 1 0 0 1 1 1z`,key:`oel41y`}],[`path`,{d:`m9 12 2 2 4-4`,key:`dzmm74`}]]),Jm=Z(`sliders-horizontal`,[[`path`,{d:`M10 5H3`,key:`1qgfaw`}],[`path`,{d:`M12 19H3`,key:`yhmn1j`}],[`path`,{d:`M14 3v4`,key:`1sua03`}],[`path`,{d:`M16 17v4`,key:`1q0r14`}],[`path`,{d:`M21 12h-9`,key:`1o4lsq`}],[`path`,{d:`M21 19h-5`,key:`1rlt1p`}],[`path`,{d:`M21 5h-7`,key:`1oszz2`}],[`path`,{d:`M8 10v4`,key:`tgpxqk`}],[`path`,{d:`M8 12H3`,key:`a7s4jb`}]]),Ym=Z(`sparkles`,[[`path`,{d:`M11.017 2.814a1 1 0 0 1 1.966 0l1.051 5.558a2 2 0 0 0 1.594 1.594l5.558 1.051a1 1 0 0 1 0 1.966l-5.558 1.051a2 2 0 0 0-1.594 1.594l-1.051 5.558a1 1 0 0 1-1.966 0l-1.051-5.558a2 2 0 0 0-1.594-1.594l-5.558-1.051a1 1 0 0 1 0-1.966l5.558-1.051a2 2 0 0 0 1.594-1.594z`,key:`1s2grr`}],[`path`,{d:`M20 2v4`,key:`1rf3ol`}],[`path`,{d:`M22 4h-4`,key:`gwowj6`}],[`circle`,{cx:`4`,cy:`20`,r:`2`,key:`6kqj1y`}]]),Xm=Z(`square`,[[`rect`,{width:`18`,height:`18`,x:`3`,y:`3`,rx:`2`,key:`afitv7`}]]),Zm=Z(`sun`,[[`circle`,{cx:`12`,cy:`12`,r:`4`,key:`4exip2`}],[`path`,{d:`M12 2v2`,key:`tus03m`}],[`path`,{d:`M12 20v2`,key:`1lh1kg`}],[`path`,{d:`m4.93 4.93 1.41 1.41`,key:`149t6j`}],[`path`,{d:`m17.66 17.66 1.41 1.41`,key:`ptbguv`}],[`path`,{d:`M2 12h2`,key:`1t8f8n`}],[`path`,{d:`M20 12h2`,key:`1q8mjw`}],[`path`,{d:`m6.34 17.66-1.41 1.41`,key:`1m8zz5`}],[`path`,{d:`m19.07 4.93-1.41 1.41`,key:`1shlcs`}]]),Qm=Z(`test-tube-diagonal`,[[`path`,{d:`M21 7 6.82 21.18a2.83 2.83 0 0 1-3.99-.01a2.83 2.83 0 0 1 0-4L17 3`,key:`1ub6xw`}],[`path`,{d:`m16 2 6 6`,key:`1gw87d`}],[`path`,{d:`M12 16H4`,key:`1cjfip`}]]),$m=Z(`trash-2`,[[`path`,{d:`M10 11v6`,key:`nco0om`}],[`path`,{d:`M14 11v6`,key:`outv1u`}],[`path`,{d:`M19 6v14a2 2 0 0 1-2 2H7a2 2 0 0 1-2-2V6`,key:`miytrc`}],[`path`,{d:`M3 6h18`,key:`d0wm0j`}],[`path`,{d:`M8 6V4a2 2 0 0 1 2-2h4a2 2 0 0 1 2 2v2`,key:`e791ji`}]]),eh=Z(`triangle-alert`,[[`path`,{d:`m21.73 18-8-14a2 2 0 0 0-3.48 0l-8 14A2 2 0 0 0 4 21h16a2 2 0 0 0 1.73-3`,key:`wmoenq`}],[`path`,{d:`M12 9v4`,key:`juzpu7`}],[`path`,{d:`M12 17h.01`,key:`p32p05`}]]),th=Z(`unlink`,[[`path`,{d:`m18.84 12.25 1.72-1.71h-.02a5.004 5.004 0 0 0-.12-7.07 5.006 5.006 0 0 0-6.95 0l-1.72 1.71`,key:`yqzxt4`}],[`path`,{d:`m5.17 11.75-1.71 1.71a5.004 5.004 0 0 0 .12 7.07 5.006 5.006 0 0 0 6.95 0l1.71-1.71`,key:`4qinb0`}],[`line`,{x1:`8`,x2:`8`,y1:`2`,y2:`5`,key:`1041cp`}],[`line`,{x1:`2`,x2:`5`,y1:`8`,y2:`8`,key:`14m1p5`}],[`line`,{x1:`16`,x2:`16`,y1:`19`,y2:`22`,key:`rzdirn`}],[`line`,{x1:`19`,x2:`22`,y1:`16`,y2:`16`,key:`ox905f`}]]),nh=Z(`x`,[[`path`,{d:`M18 6 6 18`,key:`1bl5f8`}],[`path`,{d:`m6 6 12 12`,key:`d8bk6v`}]]);function rh(e){return/^[a-zA-Z][a-zA-Z\d+\-.]*:/.test(e)||e.startsWith(`//`)}function ih(e){return[`localhost`,`127.0.0.1`,`::1`,`[::1]`].includes(e)}function ah(e,t,n){let r=e.trim();if(!r)return{error:`status URL is empty`};let i;try{i=new URL(r,t)}catch{return{error:`status URL is invalid`}}let a=!rh(r),o=ih(i.hostname);return!a&&!o?{error:`${n} must be relative or loopback`}:{source:{isLoopback:o,isRelative:a,url:r}}}function oh(e,t){return ah(e,t,`statusUrl`)}function sh(e,t){let n=ah(e,t,`Ops statusUrl`);return n.error?{error:`${n.error}; use showcase mode for public links.`}:n}function ch(e,t,n){let r=new URL(e,n);return r.searchParams.set(`goal_activation`,t),r.toString()}function lh(e,t){if(!t||!e.isLoopback)return null;try{let n=new URL(e.url,window.location.href),r=new URL(t,n.origin);return ih(r.hostname)?r.toString():null}catch{return null}}function uh(e,t){return{detailUrl:lh(t,e.local_dashboard_api?.periodic_report_detail_url),indexUrl:lh(t,e.local_dashboard_api?.periodic_report_index_url)}}async function dh(e,t){let n=new URL(e);n.searchParams.set(`goal_id`,t),n.searchParams.set(`limit`,`100`),n.searchParams.set(`offset`,`0`);let r=await fetch(n,{cache:`no-store`});if(!r.ok)throw Error(`HTTP ${r.status} while loading published reports`);return bp.parse(await r.json()).periodic_reports}async function fh(e,t){let n=new URL(e);Object.entries(t).forEach(([e,t])=>n.searchParams.set(e,t));let r=await fetch(n,{cache:`no-store`});if(!r.ok)throw Error(`HTTP ${r.status} while loading published report detail`);return Sp.parse(await r.json()).projection}function ph(e,t,n){let r=e.find(e=>e.agentId===t&&e.available)??e.find(e=>e.agentId===n&&e.available)??e.find(e=>e.available);if(!r)throw Error(`Chat requires at least one available route`);return r}function mh(e){return!!(e&&typeof e==`object`&&e.session_invalidated===!0)}var hh=``.replace(/\/+$/,``);function gh(e){return!hh||/^https?:\/\//.test(e)?e:new URL(e,`${hh}/`).toString()}var _h=J({todo_id:W().nullable(),role:W().nullable(),status:W(),priority:W().nullable(),text:W(),action_kind:W().nullable(),task_class:W().nullable(),claimed_by:W().nullable(),evidence:W().nullable()}),vh=J({goal_id:W(),title:W(),objective:W(),status:W(),waiting_on:W().nullable(),severity:W().nullable(),gate:W(),next_action:W(),top_todo:_h.nullable(),todos:q(_h),evidence:q(W()),quota:J({state:W().nullable(),spent_slots:G().nullable(),allowed_slots:G().nullable(),reason:W().nullable()})});J({ok:K(),schema_version:X(`loopx_chat_status_v0`),selected_goal_id:W().nullable(),goal_count:G(),goals:q(vh)});var yh=J({schema_version:W(),executor_endpoint:W(),executor_endpoint_source:W(),executor_endpoint_default_reason:W().optional(),executor_kind:W(),model:W(),model_source:W(),credential_env_var:W(),operator_credential_configured:K(),available:K().nullable(),unavailable_reason:W().nullable()}),bh=J({ok:X(!0),schema_version:Y([`loopx_chat_capabilities_v0`,`loopx_chat_capabilities_v1`]),agent_backend:W(),sandbox:W(),approval_policy:W(),todo_write:W(),goal_subagent_configuration:W().optional(),goal_id:W().nullable(),manager:J({scope:X(`owner_global`),model:W(),reasoning_effort:W(),channel_binding:yh.optional(),runtime:J({schema_version:X(`manager_runtime_effective_profile_v0`),runtime_profile:Y([`restricted`,`trusted_owner`]),source:W(),configuration_revision:W(),standing_grant:W(),sandbox:W(),approval_policy:W(),tool_classes:q(W()),status:W(),repair:W().optional()})}).optional(),streaming:K().optional(),resume:K().optional(),interrupt:K().optional(),typed_actions:K().optional(),action_kinds:q(W()).optional(),adapters:q(J({agent_id:W(),display_name:W(),adapter_kind:W(),available:K(),streaming:K(),resume:K(),interrupt:K(),location:W().optional(),source:W().optional(),tool_calls:K().optional(),trust_scope:W().optional()})).optional(),lark_cli:J({available:K(),source:W(),version:W().nullable(),error_code:W().nullable()}).optional()}),xh=J({kind:X(`todo`),text:W(),priority:Y([`P0`,`P1`,`P2`]),rationale:W()}),Sh=J({operation:Y([`merge`,`release`,`deploy`,`delete`,`payment`]),target:W().min(1).max(160),summary:W().max(300)}),Ch=J({schema_version:X(`loopx_chat_agent_response_v0`),message:W(),proposals:q(xh),protected_action:Sh.nullable().optional().default(null),gate:J({kind:W(),summary:W(),next_action:W()}).nullable()}),wh=J({closed:X(!0),ok:X(!0),session_id:W().min(1)});J({dry_run:X(!0),ok:X(!0),preview_id:W().min(1),todo:J({goal_id:W().min(1),text:W(),todo_id:W().optional()})});var Th=J({schema_version:X(`loopx_chat_todo_receipt_v0`),receipt_id:W().min(1),preview_id:W().min(1),goal_id:W().min(1),todo_id:W().min(1),status:X(`applied`),outcome:Y([`todo_added`,`todo_already_exists`]),already_exists:K(),preview_revision:W().nullable()});J({applied:X(!0),ok:X(!0),receipt:Th,todo:J({text:W(),todo_id:W()})});var Eh=J({model_config:J({model:W(),reasoning_effort:W().optional()}).optional(),mode:W(),spawn_allowed:K(),max_children:G().int().nonnegative(),allowed_domains:q(W()).optional().default([])}).passthrough(),Dh=J({ok:X(!0),dry_run:K(),execute:K(),written:K(),changed:K(),goal_id:W().min(1),changed_fields:q(W()),before:J({orchestration:Eh}).passthrough(),after:J({orchestration:Eh}).passthrough(),preview_id:W().min(1),feature_summary:J({multi_subagent:Y([`off`,`enabled`])}).passthrough(),global_sync:J({required:K(),executed:K(),readback:J({status:W(),verified:K()}).passthrough()}).passthrough()}),Oh=J({id:W().min(1),outcome:Y([`approved`,`rejected`,`cancelled`]),projectionVerified:K().nullable(),proposal:xh,receipt:Th.nullable()}).superRefine((e,t)=>{e.outcome===`approved`&&!e.receipt&&t.addIssue({code:`custom`,message:`approved decision history requires a Todo receipt`,path:[`receipt`]}),e.outcome!==`approved`&&e.receipt&&t.addIssue({code:`custom`,message:`zero-write decision history must not include a Todo receipt`,path:[`receipt`]})});J({schema_version:X(`loopx_chat_decision_history_v0`),goal_id:W().min(1),decisions:q(Oh).max(24)});var kh=class extends Error{payload;constructor(e,t){super(e),this.payload=t}},Ah=Y([`goal.create`,`goal.update`,`goal.lifecycle`,`todo.create`,`todo.update`,`agent.bind`,`heartbeat.bind`,`monitor.create`,`monitor.update`,`gate.resolve`,`run.correct`,`operation.execute`,`team.plan`]),jh=J({schema_version:X(`loopx_operation_envelope_v0`),lifecycle_state:Y([`prepared`,`awaiting_confirmation`,`claimed`,`outcome_observed`]),operation_id:W().min(1),confirmation_digest:W().min(1),payload_digest:W().min(1),projection_digest:W().min(1),expires_at:W().min(1),delivery:gd(W(),id()).nullable(),confirmation:gd(W(),id()).nullable(),claim:gd(W(),id()).nullable(),outcome:gd(W(),id()).nullable(),result_delivery:gd(W(),id()).nullable().optional()}).passthrough(),Mh=J({schema_version:X(`loopx_chat_action_proposal_v1`),proposal_id:W().min(1),action_kind:Ah,summary:W().min(1),normalized_parameters:gd(W(),id()),context:gd(W(),id()),expected_state_fingerprint:W().min(1),permission_classification:W().min(1),validation_evidence:q(W().refine(e=>e.trim().length>0,`Validation evidence must be non-blank text`)),available_transitions:q(Y([`apply`,`cancel`,`regenerate`,`reject`,`defer`])),status:Y([`preview_ready`,`applying`,`gated`,`failed`,`rejected`,`deferred`,`cancelled`,`stale`,`applied`]),receipt:gd(W(),id()).nullable(),stale:gd(W(),id()).nullable(),gate:gd(W(),id()).nullable().optional(),error:gd(W(),id()).nullable().optional(),checkpoint:gd(W(),id()).nullable().optional(),regenerated_from:W().nullable().optional(),operation:jh.nullable().optional(),created_at:W(),updated_at:W()}),Nh=J({ok:X(!0),proposal:Mh});async function Ph(e){let t=await Bh(`/api/actions/preview`,{method:`POST`,body:JSON.stringify({action_kind:e.actionKind,context:e.context,idempotency_key:e.idempotencyKey,normalized_parameters:e.normalizedParameters,summary:e.summary})});return Nh.parse(t).proposal}var Fh=J({ok:X(!0),schema_version:X(`loopx_chat_action_list_v1`),proposals:q(Mh)});async function Ih(e={}){let t=new URLSearchParams;e.contextKind&&t.set(`context_kind`,e.contextKind),e.goalId&&t.set(`goal_id`,e.goalId);let n=t.size>0?`?${t.toString()}`:``;return Fh.parse(await Bh(`/api/actions${n}`)).proposals}async function Lh(e){let t=await Bh(`/api/actions/${encodeURIComponent(e)}/apply`,{method:`POST`,body:`{}`});return J({ok:X(!0),proposal:Mh,turn:gd(W(),id()).nullable().optional()}).parse(t)}async function Rh(e){return Nh.parse(await Bh(`/api/actions/${encodeURIComponent(e)}/cancel`,{method:`POST`,body:`{}`})).proposal}async function zh(e,t){return Nh.parse(await Bh(`/api/actions/${encodeURIComponent(e)}/${t}`,{method:`POST`,body:`{}`})).proposal}async function Bh(e,t){let n;try{n=await fetch(gh(e),{cache:`no-store`,...t,headers:{"Content-Type":`application/json`,...t?.headers}})}catch{throw new kh(`无法连接 LoopX Chat 服务。请确认 Dashboard 与 Chat 服务已启动且来自同一版本。`,{error_code:`chat_api_unavailable`})}let r=await n.text(),i=null;if(r.trim())try{i=JSON.parse(r)}catch{i=null}let a=i&&typeof i==`object`&&!Array.isArray(i)?i:{};if(!n.ok){let e=(a.proposal&&typeof a.proposal==`object`?a.proposal:null)?.status===`stale`?`来源状态已变化,请重新生成预览。`:null,t=n.status>=500?`LoopX Chat 服务暂时不可用(HTTP ${n.status})。请确认 Dashboard 与 Chat 服务已启动且来自同一版本。`:`LoopX Chat 请求失败(HTTP ${n.status})。`;throw new kh(e??String(a.error||t),Object.keys(a).length?a:{error_code:`chat_api_unavailable`,http_status:n.status})}if(i===null)throw new kh(`LoopX Chat 服务返回了无法识别的响应(HTTP ${n.status})。请确认 Dashboard 与 Chat 服务来自同一版本。`,{error_code:`invalid_chat_api_response`,http_status:n.status});return i}async function Vh(){return bh.parse(await Bh(`/api/chat/capabilities`))}async function Hh(e){return Bh(`/api/chat/projection-messages`,{method:`POST`,body:JSON.stringify({answer:e.answer,context_kind:e.contextKind,goal_id:e.goalId,question:e.question})})}async function Uh(e,t,n=`resume_latest`,r=`goal`){return Bh(`/api/chat/sessions`,{method:`POST`,body:JSON.stringify({goal_id:e,agent_id:t,mode:n,context_kind:r})})}async function Wh(e){return Bh(`/api/chat/sessions/${e}`)}async function Gh(e){let t=new URLSearchParams;return e.agentId&&t.set(`agent_id`,e.agentId),e.channelId&&t.set(`channel_id`,e.channelId),e.goalId&&t.set(`goal_id`,e.goalId),Bh(`/api/chat/sessions?${t.toString()}`)}function Kh(e){let t=new Map;for(let n of e)for(let e of n.messages)t.set(e.message_id,e);return[...t.values()].sort((e,t)=>e.created_at.localeCompare(t.created_at)||e.message_id.localeCompare(t.message_id))}async function qh(e){let t=await Gh(e),n=await Promise.all(t.sessions.map(e=>Wh(e.session_id)));return{messages:Kh(n),sessions:t.sessions,snapshots:n}}async function Jh(e,t,n,r=[]){return Bh(`/api/chat/sessions/${e}/turns`,{method:`POST`,body:JSON.stringify({message:t,client_turn_id:n,...r.length?{attachments:r.map(e=>({data_url:e.dataUrl,id:e.id,mime_type:e.mimeType,name:e.name,size:e.size}))}:{}})})}function Yh(e){let t=e.split(` +Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.`)}for(let n of e.seen.entries()){let r=n[1];if(t===n[0]){a(n);continue}if(e.external){let r=e.external.registry.get(n[0])?.id;if(t!==n[0]&&r){a(n);continue}}if(e.metadataRegistry.get(n[0])?.id){a(n);continue}if(r.cycle){a(n);continue}if(r.count>1&&e.reused===`ref`){a(n);continue}}}function Al(e,t){let n=e.seen.get(t);if(!n)throw Error(`Unprocessed schema. This is a bug in Zod.`);let r=t=>{let n=e.seen.get(t);if(n.ref===null)return;let i=n.def??n.schema,a={...i},o=n.ref;if(n.ref=null,o){r(o);let n=e.seen.get(o),s=n.schema;if(s.$ref&&(e.target===`draft-07`||e.target===`draft-04`||e.target===`openapi-3.0`)?(i.allOf=i.allOf??[],i.allOf.push(s)):Object.assign(i,s),Object.assign(i,a),t._zod.parent===o)for(let e in i)e!==`$ref`&&e!==`allOf`&&(e in a||delete i[e]);if(s.$ref&&n.def)for(let e in i)e!==`$ref`&&e!==`allOf`&&e in n.def&&JSON.stringify(i[e])===JSON.stringify(n.def[e])&&delete i[e]}let s=t._zod.parent;if(s&&s!==o){r(s);let t=e.seen.get(s);if(t?.schema.$ref&&(i.$ref=t.schema.$ref,t.def))for(let e in i)e!==`$ref`&&e!==`allOf`&&e in t.def&&JSON.stringify(i[e])===JSON.stringify(t.def[e])&&delete i[e]}e.override({zodSchema:t,jsonSchema:i,path:n.path??[]})};for(let t of[...e.seen.entries()].reverse())r(t[0]);let i={};if(e.target===`draft-2020-12`?i.$schema=`https://json-schema.org/draft/2020-12/schema`:e.target===`draft-07`?i.$schema=`http://json-schema.org/draft-07/schema#`:e.target===`draft-04`?i.$schema=`http://json-schema.org/draft-04/schema#`:e.target,e.external?.uri){let n=e.external.registry.get(t)?.id;if(!n)throw Error("Schema is missing an `id` property");i.$id=e.external.uri(n)}Object.assign(i,n.def??n.schema);let a=e.metadataRegistry.get(t)?.id;a!==void 0&&i.id===a&&delete i.id;let o=e.external?.defs??{};for(let t of e.seen.entries()){let e=t[1];e.def&&e.defId&&(e.def.id===e.defId&&delete e.def.id,o[e.defId]=e.def)}e.external||Object.keys(o).length>0&&(e.target===`draft-2020-12`?i.$defs=o:i.definitions=o);try{let n=JSON.parse(JSON.stringify(i));return Object.defineProperty(n,"~standard",{value:{...t[`~standard`],jsonSchema:{input:Nl(t,`input`,e.processors),output:Nl(t,`output`,e.processors)}},enumerable:!1,writable:!1}),n}catch{throw Error(`Error converting schema to JSON.`)}}function jl(e,t){let n=t??{seen:new Set};if(n.seen.has(e))return!1;n.seen.add(e);let r=e._zod.def;if(r.type===`transform`)return!0;if(r.type===`array`)return jl(r.element,n);if(r.type===`set`)return jl(r.valueType,n);if(r.type===`lazy`)return jl(r.getter(),n);if(r.type===`promise`||r.type===`optional`||r.type===`nonoptional`||r.type===`nullable`||r.type===`readonly`||r.type==="default"||r.type===`prefault`)return jl(r.innerType,n);if(r.type===`intersection`)return jl(r.left,n)||jl(r.right,n);if(r.type===`record`||r.type===`map`)return jl(r.keyType,n)||jl(r.valueType,n);if(r.type===`pipe`)return e._zod.traits.has(`$ZodCodec`)?!0:jl(r.in,n)||jl(r.out,n);if(r.type===`object`){for(let e in r.shape)if(jl(r.shape[e],n))return!0;return!1}if(r.type===`union`){for(let e of r.options)if(jl(e,n))return!0;return!1}if(r.type===`tuple`){for(let e of r.items)if(jl(e,n))return!0;return!!(r.rest&&jl(r.rest,n))}return!1}var Ml=(e,t={})=>n=>{let r=Dl({...n,processors:t});return Ol(e,r),kl(r,e),Al(r,e)},Nl=(e,t,n={})=>r=>{let{libraryOptions:i,target:a}=r??{},o=Dl({...i??{},target:a,io:t,processors:n});return Ol(e,o),kl(o,e),Al(o,e)},Pl={guid:`uuid`,url:`uri`,datetime:`date-time`,json_string:`json-string`,regex:``},Fl=(e,t,n,r)=>{let i=n;i.type=`string`;let{minimum:a,maximum:o,format:s,patterns:c,contentEncoding:l}=e._zod.bag;if(typeof a==`number`&&(i.minLength=a),typeof o==`number`&&(i.maxLength=o),s&&(i.format=Pl[s]??s,i.format===``&&delete i.format,s===`time`&&delete i.format),l&&(i.contentEncoding=l),c&&c.size>0){let e=[...c];e.length===1?i.pattern=e[0].source:e.length>1&&(i.allOf=[...e.map(e=>({...t.target===`draft-07`||t.target===`draft-04`||t.target===`openapi-3.0`?{type:`string`}:{},pattern:e.source}))])}},Il=(e,t,n,r)=>{let i=n,{minimum:a,maximum:o,format:s,multipleOf:c,exclusiveMaximum:l,exclusiveMinimum:u}=e._zod.bag;i.type=typeof s==`string`&&s.includes(`int`)?`integer`:`number`;let d=typeof u==`number`&&u>=(a??-1/0),f=typeof l==`number`&&l<=(o??1/0),p=t.target===`draft-04`||t.target===`openapi-3.0`;d?p?(i.minimum=u,i.exclusiveMinimum=!0):i.exclusiveMinimum=u:typeof a==`number`&&(i.minimum=a),f?p?(i.maximum=l,i.exclusiveMaximum=!0):i.exclusiveMaximum=l:typeof o==`number`&&(i.maximum=o),typeof c==`number`&&(i.multipleOf=c)},Ll=(e,t,n,r)=>{n.type=`boolean`},Rl=(e,t,n,r)=>{t.target===`openapi-3.0`?(n.type=`string`,n.nullable=!0,n.enum=[null]):n.type=`null`},zl=(e,t,n,r)=>{n.not={}},Bl=(e,t,n,r)=>{let i=e._zod.def,a=ra(i.entries);a.every(e=>typeof e==`number`)&&(n.type=`number`),a.every(e=>typeof e==`string`)&&(n.type=`string`),n.enum=a},Vl=(e,t,n,r)=>{let i=e._zod.def,a=[];for(let e of i.values)if(e===void 0){if(t.unrepresentable===`throw`)throw Error("Literal `undefined` cannot be represented in JSON Schema")}else if(typeof e==`bigint`){if(t.unrepresentable===`throw`)throw Error(`BigInt literals cannot be represented in JSON Schema`);a.push(Number(e))}else a.push(e);if(a.length!==0){if(a.length===1){let e=a[0];n.type=e===null?`null`:typeof e,t.target===`draft-04`||t.target===`openapi-3.0`?n.enum=[e]:n.const=e}else a.every(e=>typeof e==`number`)&&(n.type=`number`),a.every(e=>typeof e==`string`)&&(n.type=`string`),a.every(e=>typeof e==`boolean`)&&(n.type=`boolean`),a.every(e=>e===null)&&(n.type=`null`),n.enum=a}},Hl=(e,t,n,r)=>{if(t.unrepresentable===`throw`)throw Error(`Custom types cannot be represented in JSON Schema`)},Ul=(e,t,n,r)=>{if(t.unrepresentable===`throw`)throw Error(`Transforms cannot be represented in JSON Schema`)},Wl=(e,t,n,r)=>{let i=n,a=e._zod.def,{minimum:o,maximum:s}=e._zod.bag;typeof o==`number`&&(i.minItems=o),typeof s==`number`&&(i.maxItems=s),i.type=`array`,i.items=Ol(a.element,t,{...r,path:[...r.path,`items`]})},Gl=(e,t,n,r)=>{let i=n,a=e._zod.def;i.type=`object`,i.properties={};let o=a.shape;for(let e in o)i.properties[e]=Ol(o[e],t,{...r,path:[...r.path,`properties`,e]});let s=new Set(Object.keys(o)),c=new Set([...s].filter(e=>{let n=a.shape[e]._zod;return t.io===`input`?n.optin===void 0:n.optout===void 0}));c.size>0&&(i.required=Array.from(c)),a.catchall?._zod.def.type===`never`?i.additionalProperties=!1:a.catchall?a.catchall&&(i.additionalProperties=Ol(a.catchall,t,{...r,path:[...r.path,`additionalProperties`]})):t.io===`output`&&(i.additionalProperties=!1)},Kl=(e,t,n,r)=>{let i=e._zod.def,a=i.inclusive===!1,o=i.options.map((e,n)=>Ol(e,t,{...r,path:[...r.path,a?`oneOf`:`anyOf`,n]}));a?n.oneOf=o:n.anyOf=o},ql=(e,t,n,r)=>{let i=e._zod.def,a=Ol(i.left,t,{...r,path:[...r.path,`allOf`,0]}),o=Ol(i.right,t,{...r,path:[...r.path,`allOf`,1]}),s=e=>`allOf`in e&&Object.keys(e).length===1;n.allOf=[...s(a)?a.allOf:[a],...s(o)?o.allOf:[o]]},Jl=(e,t,n,r)=>{let i=n,a=e._zod.def;i.type=`array`;let o=t.target===`draft-2020-12`?`prefixItems`:`items`,s=t.target===`draft-2020-12`||t.target===`openapi-3.0`?`items`:`additionalItems`,c=a.items.map((e,n)=>Ol(e,t,{...r,path:[...r.path,o,n]})),l=a.rest?Ol(a.rest,t,{...r,path:[...r.path,s,...t.target===`openapi-3.0`?[a.items.length]:[]]}):null;t.target===`draft-2020-12`?(i.prefixItems=c,l&&(i.items=l)):t.target===`openapi-3.0`?(i.items={anyOf:c},l&&i.items.anyOf.push(l),i.minItems=c.length,l||(i.maxItems=c.length)):(i.items=c,l&&(i.additionalItems=l));let{minimum:u,maximum:d}=e._zod.bag;typeof u==`number`&&(i.minItems=u),typeof d==`number`&&(i.maxItems=d)},Yl=(e,t,n,r)=>{let i=n,a=e._zod.def;i.type=`object`;let o=a.keyType,s=o._zod.bag?.patterns;if(a.mode===`loose`&&s&&s.size>0){let e=Ol(a.valueType,t,{...r,path:[...r.path,`patternProperties`,`*`]});i.patternProperties={};for(let t of s)i.patternProperties[t.source]=e}else(t.target===`draft-07`||t.target===`draft-2020-12`)&&(i.propertyNames=Ol(a.keyType,t,{...r,path:[...r.path,`propertyNames`]})),i.additionalProperties=Ol(a.valueType,t,{...r,path:[...r.path,`additionalProperties`]});let c=o._zod.values;if(c){let e=[...c].filter(e=>typeof e==`string`||typeof e==`number`);e.length>0&&(i.required=e)}},Xl=(e,t,n,r)=>{let i=e._zod.def,a=Ol(i.innerType,t,r),o=t.seen.get(e);t.target===`openapi-3.0`?(o.ref=i.innerType,n.nullable=!0):n.anyOf=[a,{type:`null`}]},Zl=(e,t,n,r)=>{let i=e._zod.def;Ol(i.innerType,t,r);let a=t.seen.get(e);a.ref=i.innerType},Ql=(e,t,n,r)=>{let i=e._zod.def;Ol(i.innerType,t,r);let a=t.seen.get(e);a.ref=i.innerType,n.default=JSON.parse(JSON.stringify(i.defaultValue))},$l=(e,t,n,r)=>{let i=e._zod.def;Ol(i.innerType,t,r);let a=t.seen.get(e);a.ref=i.innerType,t.io===`input`&&(n._prefault=JSON.parse(JSON.stringify(i.defaultValue)))},eu=(e,t,n,r)=>{let i=e._zod.def;Ol(i.innerType,t,r);let a=t.seen.get(e);a.ref=i.innerType;let o;try{o=i.catchValue(void 0)}catch{throw Error(`Dynamic catch values are not supported in JSON Schema`)}n.default=o},tu=(e,t,n,r)=>{let i=e._zod.def,a=i.in._zod.traits.has(`$ZodTransform`),o=t.io===`input`?a?i.out:i.in:i.out;Ol(o,t,r);let s=t.seen.get(e);s.ref=o},nu=(e,t,n,r)=>{let i=e._zod.def;Ol(i.innerType,t,r);let a=t.seen.get(e);a.ref=i.innerType,n.readOnly=!0},ru=(e,t,n,r)=>{let i=e._zod.def;Ol(i.innerType,t,r);let a=t.seen.get(e);a.ref=i.innerType},iu=H(`ZodISODateTime`,(e,t)=>{gs.init(e,t),Mu.init(e,t)});function au(e){return qc(iu,e)}var ou=H(`ZodISODate`,(e,t)=>{_s.init(e,t),Mu.init(e,t)});function su(e){return Jc(ou,e)}var cu=H(`ZodISOTime`,(e,t)=>{vs.init(e,t),Mu.init(e,t)});function lu(e){return Yc(cu,e)}var uu=H(`ZodISODuration`,(e,t)=>{ys.init(e,t),Mu.init(e,t)});function du(e){return Xc(uu,e)}var fu=(e,t)=>{Ba.init(e,t),e.name=`ZodError`,Object.defineProperties(e,{format:{value:t=>Ua(e,t)},flatten:{value:t=>Ha(e,t)},addIssue:{value:t=>{e.issues.push(t),e.message=JSON.stringify(e.issues,ia,2)}},addIssues:{value:t=>{e.issues.push(...t),e.message=JSON.stringify(e.issues,ia,2)}},isEmpty:{get(){return e.issues.length===0}}})},pu=H(`ZodError`,fu),mu=H(`ZodError`,fu,{Parent:Error}),hu=Wa(mu),gu=Ga(mu),_u=Ka(mu),vu=Ja(mu),yu=Xa(mu),bu=Za(mu),xu=Qa(mu),Su=$a(mu),Cu=eo(mu),wu=to(mu),Tu=no(mu),Eu=ro(mu),Du=new WeakMap;function Ou(e,t,n){let r=Object.getPrototypeOf(e),i=Du.get(r);if(i||(i=new Set,Du.set(r,i)),!i.has(t)){i.add(t);for(let e in n){let t=n[e];Object.defineProperty(r,e,{configurable:!0,enumerable:!1,get(){let n=t.bind(this);return Object.defineProperty(this,e,{configurable:!0,writable:!0,enumerable:!0,value:n}),n},set(t){Object.defineProperty(this,e,{configurable:!0,writable:!0,enumerable:!0,value:t})}})}}}var ku=H(`ZodType`,(e,t)=>(ns.init(e,t),Object.assign(e[`~standard`],{jsonSchema:{input:Nl(e,`input`),output:Nl(e,`output`)}}),e.toJSONSchema=Ml(e,{}),e.def=t,e.type=t.type,Object.defineProperty(e,"_def",{value:t}),e.parse=(t,n)=>hu(e,t,n,{callee:e.parse}),e.safeParse=(t,n)=>_u(e,t,n),e.parseAsync=async(t,n)=>gu(e,t,n,{callee:e.parseAsync}),e.safeParseAsync=async(t,n)=>vu(e,t,n),e.spa=e.safeParseAsync,e.encode=(t,n)=>yu(e,t,n),e.decode=(t,n)=>bu(e,t,n),e.encodeAsync=async(t,n)=>xu(e,t,n),e.decodeAsync=async(t,n)=>Su(e,t,n),e.safeEncode=(t,n)=>Cu(e,t,n),e.safeDecode=(t,n)=>wu(e,t,n),e.safeEncodeAsync=async(t,n)=>Tu(e,t,n),e.safeDecodeAsync=async(t,n)=>Eu(e,t,n),Ou(e,`ZodType`,{check(...e){let t=this.def;return this.clone(fa(t,{checks:[...t.checks??[],...e.map(e=>typeof e==`function`?{_zod:{check:e,def:{check:`custom`},onattach:[]}}:e)]}),{parent:!0})},with(...e){return this.check(...e)},clone(e,t){return Sa(this,e,t)},brand(){return this},register(e,t){return e.add(this,t),this},refine(e,t){return this.check(Ud(e,t))},superRefine(e,t){return this.check(Wd(e,t))},overwrite(e){return this.check(_l(e))},optional(){return Td(this)},exactOptional(){return Dd(this)},nullable(){return kd(this)},nullish(){return Td(kd(this))},nonoptional(e){return Fd(this,e)},array(){return q(this)},or(e){return dd([this,e])},and(e){return hd(this,e)},transform(e){return zd(this,Cd(e))},default(e){return jd(this,e)},prefault(e){return Nd(this,e)},catch(e){return Ld(this,e)},pipe(e){return zd(this,e)},readonly(){return Vd(this)},describe(e){let t=this.clone();return Cc.add(t,{description:e}),t},meta(...e){if(e.length===0)return Cc.get(this);let t=this.clone();return Cc.add(t,e[0]),t},isOptional(){return this.safeParse(void 0).success},isNullable(){return this.safeParse(null).success},apply(e){return e(this)}}),Object.defineProperty(e,"description",{get(){return Cc.get(e)?.description},configurable:!0}),e)),Au=H(`_ZodString`,(e,t)=>{rs.init(e,t),ku.init(e,t),e._zod.processJSONSchema=(t,n,r)=>Fl(e,t,n,r);let n=e._zod.bag;e.format=n.format??null,e.minLength=n.minimum??null,e.maxLength=n.maximum??null,Ou(e,`_ZodString`,{regex(...e){return this.check(dl(...e))},includes(...e){return this.check(ml(...e))},startsWith(...e){return this.check(hl(...e))},endsWith(...e){return this.check(gl(...e))},min(...e){return this.check(ll(...e))},max(...e){return this.check(cl(...e))},length(...e){return this.check(ul(...e))},nonempty(...e){return this.check(ll(1,...e))},lowercase(e){return this.check(fl(e))},uppercase(e){return this.check(pl(e))},trim(){return this.check(yl())},normalize(...e){return this.check(vl(...e))},toLowerCase(){return this.check(bl())},toUpperCase(){return this.check(xl())},slugify(){return this.check(Sl())}})}),ju=H(`ZodString`,(e,t)=>{rs.init(e,t),Au.init(e,t),e.email=t=>e.check(Tc(Nu,t)),e.url=t=>e.check(jc(Iu,t)),e.jwt=t=>e.check(Kc(Zu,t)),e.emoji=t=>e.check(Mc(Lu,t)),e.guid=t=>e.check(Ec(Pu,t)),e.uuid=t=>e.check(Dc(Fu,t)),e.uuidv4=t=>e.check(Oc(Fu,t)),e.uuidv6=t=>e.check(kc(Fu,t)),e.uuidv7=t=>e.check(Ac(Fu,t)),e.nanoid=t=>e.check(Nc(Ru,t)),e.guid=t=>e.check(Ec(Pu,t)),e.cuid=t=>e.check(Pc(zu,t)),e.cuid2=t=>e.check(Fc(Bu,t)),e.ulid=t=>e.check(Ic(Vu,t)),e.base64=t=>e.check(Uc(Ju,t)),e.base64url=t=>e.check(Wc(Yu,t)),e.xid=t=>e.check(Lc(Hu,t)),e.ksuid=t=>e.check(Rc(Uu,t)),e.ipv4=t=>e.check(zc(Wu,t)),e.ipv6=t=>e.check(Bc(Gu,t)),e.cidrv4=t=>e.check(Vc(Ku,t)),e.cidrv6=t=>e.check(Hc(qu,t)),e.e164=t=>e.check(Gc(Xu,t)),e.datetime=t=>e.check(au(t)),e.date=t=>e.check(su(t)),e.time=t=>e.check(lu(t)),e.duration=t=>e.check(du(t))});function W(e){return wc(ju,e)}var Mu=H(`ZodStringFormat`,(e,t)=>{is.init(e,t),Au.init(e,t)}),Nu=H(`ZodEmail`,(e,t)=>{ss.init(e,t),Mu.init(e,t)}),Pu=H(`ZodGUID`,(e,t)=>{as.init(e,t),Mu.init(e,t)}),Fu=H(`ZodUUID`,(e,t)=>{os.init(e,t),Mu.init(e,t)}),Iu=H(`ZodURL`,(e,t)=>{cs.init(e,t),Mu.init(e,t)}),Lu=H(`ZodEmoji`,(e,t)=>{ls.init(e,t),Mu.init(e,t)}),Ru=H(`ZodNanoID`,(e,t)=>{us.init(e,t),Mu.init(e,t)}),zu=H(`ZodCUID`,(e,t)=>{ds.init(e,t),Mu.init(e,t)}),Bu=H(`ZodCUID2`,(e,t)=>{fs.init(e,t),Mu.init(e,t)}),Vu=H(`ZodULID`,(e,t)=>{ps.init(e,t),Mu.init(e,t)}),Hu=H(`ZodXID`,(e,t)=>{ms.init(e,t),Mu.init(e,t)}),Uu=H(`ZodKSUID`,(e,t)=>{hs.init(e,t),Mu.init(e,t)}),Wu=H(`ZodIPv4`,(e,t)=>{bs.init(e,t),Mu.init(e,t)}),Gu=H(`ZodIPv6`,(e,t)=>{xs.init(e,t),Mu.init(e,t)}),Ku=H(`ZodCIDRv4`,(e,t)=>{Ss.init(e,t),Mu.init(e,t)}),qu=H(`ZodCIDRv6`,(e,t)=>{Cs.init(e,t),Mu.init(e,t)}),Ju=H(`ZodBase64`,(e,t)=>{Ts.init(e,t),Mu.init(e,t)}),Yu=H(`ZodBase64URL`,(e,t)=>{Ds.init(e,t),Mu.init(e,t)}),Xu=H(`ZodE164`,(e,t)=>{Os.init(e,t),Mu.init(e,t)}),Zu=H(`ZodJWT`,(e,t)=>{As.init(e,t),Mu.init(e,t)}),Qu=H(`ZodNumber`,(e,t)=>{js.init(e,t),ku.init(e,t),e._zod.processJSONSchema=(t,n,r)=>Il(e,t,n,r),Ou(e,`ZodNumber`,{gt(e,t){return this.check(al(e,t))},gte(e,t){return this.check(ol(e,t))},min(e,t){return this.check(ol(e,t))},lt(e,t){return this.check(rl(e,t))},lte(e,t){return this.check(il(e,t))},max(e,t){return this.check(il(e,t))},int(e){return this.check(ed(e))},safe(e){return this.check(ed(e))},positive(e){return this.check(al(0,e))},nonnegative(e){return this.check(ol(0,e))},negative(e){return this.check(rl(0,e))},nonpositive(e){return this.check(il(0,e))},multipleOf(e,t){return this.check(sl(e,t))},step(e,t){return this.check(sl(e,t))},finite(){return this}});let n=e._zod.bag;e.minValue=Math.max(n.minimum??-1/0,n.exclusiveMinimum??-1/0)??null,e.maxValue=Math.min(n.maximum??1/0,n.exclusiveMaximum??1/0)??null,e.isInt=(n.format??``).includes(`int`)||Number.isSafeInteger(n.multipleOf??.5),e.isFinite=!0,e.format=n.format??null});function G(e){return Zc(Qu,e)}var $u=H(`ZodNumberFormat`,(e,t)=>{Ms.init(e,t),Qu.init(e,t)});function ed(e){return Qc($u,e)}var td=H(`ZodBoolean`,(e,t)=>{Ns.init(e,t),ku.init(e,t),e._zod.processJSONSchema=(t,n,r)=>Ll(e,t,n,r)});function K(e){return $c(td,e)}var nd=H(`ZodNull`,(e,t)=>{Ps.init(e,t),ku.init(e,t),e._zod.processJSONSchema=(t,n,r)=>Rl(e,t,n,r)});function rd(e){return el(nd,e)}var id=H(`ZodUnknown`,(e,t)=>{Fs.init(e,t),ku.init(e,t),e._zod.processJSONSchema=(e,t,n)=>void 0});function ad(){return tl(id)}var od=H(`ZodNever`,(e,t)=>{Is.init(e,t),ku.init(e,t),e._zod.processJSONSchema=(t,n,r)=>zl(e,t,n,r)});function sd(e){return nl(od,e)}var cd=H(`ZodArray`,(e,t)=>{Rs.init(e,t),ku.init(e,t),e._zod.processJSONSchema=(t,n,r)=>Wl(e,t,n,r),e.element=t.element,Ou(e,`ZodArray`,{min(e,t){return this.check(ll(e,t))},nonempty(e){return this.check(ll(1,e))},max(e,t){return this.check(cl(e,t))},length(e,t){return this.check(ul(e,t))},unwrap(){return this.element}})});function q(e,t){return Cl(cd,e,t)}var ld=H(`ZodObject`,(e,t)=>{Us.init(e,t),ku.init(e,t),e._zod.processJSONSchema=(t,n,r)=>Gl(e,t,n,r),ua(e,`shape`,()=>t.shape),Ou(e,`ZodObject`,{keyof(){return Y(Object.keys(this._zod.def.shape))},catchall(e){return this.clone({...this._zod.def,catchall:e})},passthrough(){return this.clone({...this._zod.def,catchall:ad()})},loose(){return this.clone({...this._zod.def,catchall:ad()})},strict(){return this.clone({...this._zod.def,catchall:sd()})},strip(){return this.clone({...this._zod.def,catchall:void 0})},extend(e){return Da(this,e)},safeExtend(e){return Oa(this,e)},merge(e){return ka(this,e)},pick(e){return Ta(this,e)},omit(e){return Ea(this,e)},partial(...e){return Aa(wd,this,e[0])},required(...e){return ja(Pd,this,e[0])}})});function J(e,t){return new ld({type:`object`,shape:e??{},...U(t)})}var ud=H(`ZodUnion`,(e,t)=>{Gs.init(e,t),ku.init(e,t),e._zod.processJSONSchema=(t,n,r)=>Kl(e,t,n,r),e.options=t.options});function dd(e,t){return new ud({type:`union`,options:e,...U(t)})}var fd=H(`ZodDiscriminatedUnion`,(e,t)=>{ud.init(e,t),Ks.init(e,t)});function pd(e,t,n){return new fd({type:`union`,options:t,discriminator:e,...U(n)})}var md=H(`ZodIntersection`,(e,t)=>{qs.init(e,t),ku.init(e,t),e._zod.processJSONSchema=(t,n,r)=>ql(e,t,n,r)});function hd(e,t){return new md({type:`intersection`,left:e,right:t})}var gd=H(`ZodTuple`,(e,t)=>{Xs.init(e,t),ku.init(e,t),e._zod.processJSONSchema=(t,n,r)=>Jl(e,t,n,r),e.rest=t=>e.clone({...e._zod.def,rest:t})});function _d(e,t,n){let r=t instanceof ns;return new gd({type:`tuple`,items:e,rest:r?t:null,...U(r?n:t)})}var vd=H(`ZodRecord`,(e,t)=>{ec.init(e,t),ku.init(e,t),e._zod.processJSONSchema=(t,n,r)=>Yl(e,t,n,r),e.keyType=t.keyType,e.valueType=t.valueType});function yd(e,t,n){return!t||!t._zod?new vd({type:`record`,keyType:W(),valueType:e,...U(t)}):new vd({type:`record`,keyType:e,valueType:t,...U(n)})}var bd=H(`ZodEnum`,(e,t)=>{tc.init(e,t),ku.init(e,t),e._zod.processJSONSchema=(t,n,r)=>Bl(e,t,n,r),e.enum=t.entries,e.options=Object.values(t.entries);let n=new Set(Object.keys(t.entries));e.extract=(e,r)=>{let i={};for(let r of e)if(n.has(r))i[r]=t.entries[r];else throw Error(`Key ${r} not found in enum`);return new bd({...t,checks:[],...U(r),entries:i})},e.exclude=(e,r)=>{let i={...t.entries};for(let t of e)if(n.has(t))delete i[t];else throw Error(`Key ${t} not found in enum`);return new bd({...t,checks:[],...U(r),entries:i})}});function Y(e,t){return new bd({type:`enum`,entries:Array.isArray(e)?Object.fromEntries(e.map(e=>[e,e])):e,...U(t)})}var xd=H(`ZodLiteral`,(e,t)=>{nc.init(e,t),ku.init(e,t),e._zod.processJSONSchema=(t,n,r)=>Vl(e,t,n,r),e.values=new Set(t.values),Object.defineProperty(e,"value",{get(){if(t.values.length>1)throw Error("This schema contains multiple valid literal values. Use `.values` instead.");return t.values[0]}})});function X(e,t){return new xd({type:`literal`,values:Array.isArray(e)?e:[e],...U(t)})}var Sd=H(`ZodTransform`,(e,t)=>{rc.init(e,t),ku.init(e,t),e._zod.processJSONSchema=(t,n,r)=>Ul(e,t,n,r),e._zod.parse=(n,r)=>{if(r.direction===`backward`)throw new ea(e.constructor.name);n.addIssue=r=>{if(typeof r==`string`)n.issues.push(Ra(r,n.value,t));else{let t=r;t.fatal&&(t.continue=!1),t.code??=`custom`,t.input??=n.value,t.inst??=e,n.issues.push(Ra(t))}};let i=t.transform(n.value,n);return i instanceof Promise?i.then(e=>(n.value=e,n.fallback=!0,n)):(n.value=i,n.fallback=!0,n)}});function Cd(e){return new Sd({type:`transform`,transform:e})}var wd=H(`ZodOptional`,(e,t)=>{ac.init(e,t),ku.init(e,t),e._zod.processJSONSchema=(t,n,r)=>ru(e,t,n,r),e.unwrap=()=>e._zod.def.innerType});function Td(e){return new wd({type:`optional`,innerType:e})}var Ed=H(`ZodExactOptional`,(e,t)=>{oc.init(e,t),ku.init(e,t),e._zod.processJSONSchema=(t,n,r)=>ru(e,t,n,r),e.unwrap=()=>e._zod.def.innerType});function Dd(e){return new Ed({type:`optional`,innerType:e})}var Od=H(`ZodNullable`,(e,t)=>{sc.init(e,t),ku.init(e,t),e._zod.processJSONSchema=(t,n,r)=>Xl(e,t,n,r),e.unwrap=()=>e._zod.def.innerType});function kd(e){return new Od({type:`nullable`,innerType:e})}var Ad=H(`ZodDefault`,(e,t)=>{cc.init(e,t),ku.init(e,t),e._zod.processJSONSchema=(t,n,r)=>Ql(e,t,n,r),e.unwrap=()=>e._zod.def.innerType,e.removeDefault=e.unwrap});function jd(e,t){return new Ad({type:`default`,innerType:e,get defaultValue(){return typeof t==`function`?t():ya(t)}})}var Md=H(`ZodPrefault`,(e,t)=>{uc.init(e,t),ku.init(e,t),e._zod.processJSONSchema=(t,n,r)=>$l(e,t,n,r),e.unwrap=()=>e._zod.def.innerType});function Nd(e,t){return new Md({type:`prefault`,innerType:e,get defaultValue(){return typeof t==`function`?t():ya(t)}})}var Pd=H(`ZodNonOptional`,(e,t)=>{dc.init(e,t),ku.init(e,t),e._zod.processJSONSchema=(t,n,r)=>Zl(e,t,n,r),e.unwrap=()=>e._zod.def.innerType});function Fd(e,t){return new Pd({type:`nonoptional`,innerType:e,...U(t)})}var Id=H(`ZodCatch`,(e,t)=>{pc.init(e,t),ku.init(e,t),e._zod.processJSONSchema=(t,n,r)=>eu(e,t,n,r),e.unwrap=()=>e._zod.def.innerType,e.removeCatch=e.unwrap});function Ld(e,t){return new Id({type:`catch`,innerType:e,catchValue:typeof t==`function`?t:()=>t})}var Rd=H(`ZodPipe`,(e,t)=>{mc.init(e,t),ku.init(e,t),e._zod.processJSONSchema=(t,n,r)=>tu(e,t,n,r),e.in=t.in,e.out=t.out});function zd(e,t){return new Rd({type:`pipe`,in:e,out:t})}var Bd=H(`ZodReadonly`,(e,t)=>{gc.init(e,t),ku.init(e,t),e._zod.processJSONSchema=(t,n,r)=>nu(e,t,n,r),e.unwrap=()=>e._zod.def.innerType});function Vd(e){return new Bd({type:`readonly`,innerType:e})}var Hd=H(`ZodCustom`,(e,t)=>{vc.init(e,t),ku.init(e,t),e._zod.processJSONSchema=(t,n,r)=>Hl(e,t,n,r)});function Ud(e,t={}){return wl(Hd,e,t)}function Wd(e,t){return Tl(e,t)}var Gd=e=>typeof e==`string`&&e.trim()?e.trim():null;function Kd(e){let t=e.decision_scope&&typeof e.decision_scope==`object`&&!Array.isArray(e.decision_scope)?e.decision_scope:{},n=Gd(t.kind),r=Gd(t.granularity),i=Gd(t.scope_key),a=Gd(e.superseded_by);return{interaction:e.task_class===`user_gate`?`decision`:`unknown`,lifecycle:a?`superseded`:e.status===`deferred`?`deferred`:e.done===!0||[`done`,`completed`,`closed`,`archived`].includes(String(e.status))?`closed`:e.status===`open`||e.status===`blocked`?`open`:`unknown`,reason:Gd(e.note),evidence:Gd(e.evidence),blocksAgent:Gd(e.blocks_agent),unblocksTodoId:Gd(e.unblocks_todo_id),decisionScope:n&&r&&i?{kind:n,granularity:r,scopeKey:i}:null,supersededBy:a}}function qd(e,t,n,r){return{...e,sourceId:t,goalTitle:r??e.goalTitle,details:n?e.details:{...e.details??Kd({}),lifecycle:`unavailable`}}}function Jd(e,t){return t.find(t=>t.sourceId===e.sourceId&&t.goalId===e.goalId&&t.todoId===e.todoId)||{...e,details:{...e.details??Kd({}),lifecycle:`unavailable`}}}function Yd(e,t){let n=e.details?.supersededBy;if(!(!n||n===e.todoId||e.details?.lifecycle===`unavailable`))return t.find(t=>t.sourceId===e.sourceId&&t.goalId===e.goalId&&t.todoId===n)}function Xd(e){return![`closed`,`deferred`,`superseded`,`unavailable`].includes(e.details?.lifecycle??`unknown`)}var Zd={ok:!0,registry:`$HOME/.codex/loopx/registry.global.json`,runtime_root:`$HOME/.codex/loopx`,goal_count:1,run_count:8440,status_contract:{schema_version:2,minimum_dashboard_schema_version:2,producer:`loopx status`,reload_hint:`scripts/macos-dashboard-launchagent.sh restart`},usage_summary:{available:!0,source:`run_history`,generated_at:`2026-07-06T06:49:06.471166+00:00`,sample_run_count:20,proxy_note:`run-history proxy; excludes token counts and raw thread logs`,totals:{runs_24h:20,runs_7d:20,quota_spend_slots_24h:11,quota_spend_slots_7d:11,automation_run_count_24h:11,automation_run_count_7d:11,progress_signal_run_count_24h:9,progress_signal_run_count_7d:9},goals:[{goal_id:`loopx-meta`,runs_24h:20,runs_7d:20,quota_spend_slots_24h:11,quota_spend_slots_7d:11,automation_run_count_24h:11,automation_run_count_7d:11,progress_signal_run_count_24h:9,progress_signal_run_count_7d:9,project_share_24h:1}]},event_ledger_summary:{available:!0,source:`run_history`,generated_at:`2026-07-06T06:49:06.360662+00:00`,sample_run_count:20,proxy_note:`append-only run-history projection; compact event-class counts only`,event_classes:[`accounting`,`decision`,`evidence`,`state`,`work`],totals:{events_24h:20,events_7d:20,by_class_24h:{accounting:11,decision:0,evidence:0,state:0,work:9},by_class_7d:{accounting:11,decision:0,evidence:0,state:0,work:9}},goals:[{goal_id:`loopx-meta`,events_24h:20,events_7d:20,by_class_24h:{accounting:11,decision:0,evidence:0,state:0,work:9},by_class_7d:{accounting:11,decision:0,evidence:0,state:0,work:9},latest_event_class:`accounting`,latest_event_at:`2026-07-06T14:37:32+08:00`}]},promotion_readiness_summary:{available:!0,source:`run_history_full_scan`,goal_id:`loopx-meta`,generated_at:`2026-07-05T20:02:02+08:00`,classification:`canary_promotion_readiness_smoke_group`,delivery_batch_scale:`multi_surface`,delivery_outcome:`primary_goal_outcome`,recommended_action:`Canary promotion-readiness smoke passed; promotion may proceed after doctor/status reports fresh evidence.`,json_exists:!0,markdown_exists:!0,freshness_window_hours:24,freshness_status:`fresh`,is_fresh:!0,requires_readiness_run:!1,age_seconds:67624,age_hours:18.78,freshness_reference_time:`2026-07-06T06:49:06.408527+00:00`,sample_run_count:0,proxy_note:`canary promotion-readiness projection from append-only run history; exact evidence stays in run artifacts`},promotion_gate:{ok:!0,registry:`$HOME/.codex/loopx/registry.global.json`,runtime_root:`$HOME/.codex/loopx`,gate:`promotion_readiness`,gate_state:`ready`,can_promote:!0,should_warn:!1,non_blocking:!0,recommended_action:`promotion readiness is fresh`,readiness:{available:!0,goal_id:`loopx-meta`,generated_at:`2026-07-05T20:02:02+08:00`,classification:`canary_promotion_readiness_smoke_group`,delivery_batch_scale:`multi_surface`,delivery_outcome:`primary_goal_outcome`,recommended_action:`Canary promotion-readiness smoke passed; promotion may proceed after doctor/status reports fresh evidence.`,json_exists:!0,markdown_exists:!0,runtime_root:`$HOME/.codex/loopx`,freshness_window_hours:24,freshness_status:`fresh`,is_fresh:!0,requires_readiness_run:!1,age_seconds:67624,age_hours:18.78,freshness_reference_time:`2026-07-06T06:49:06.471087+00:00`}},decision_freshness_summary:{available:!0,source:`run_history`,generated_at:`2026-07-06T06:49:06.471133+00:00`,sample_run_count:20,window_days:7,proxy_note:`checkpointed decision freshness projection; rebase old decisions at the decision point before reuse`,summary:{decision_count:0,stale_count:0,rebase_required_count:0,fresh_count:0},items:[]},todo_index:JSON.parse(`{"schema_version":"todo_index_v0","source":"live_loopx_status_public_slice","total_count":12,"current_projected_count":12,"rollout_event_count":94,"item_limit":12,"items":[{"goal_id":"loopx-meta","index":0,"done":false,"text":"todo update recorded for todo_1596c3a678bb","schema_version":"todo_index_item_v0","todo_id":"todo_1596c3a678bb","role":"agent","status":"open","title":"todo update recorded for todo_1596c3a678bb","source":"rollout_event_log","agent_id":"codex-main-control","latest_event_kind":"todo_update","latest_event_at":"2026-07-06T06:33:32Z","latest_event_status":"open","event_count":7,"event_kinds":["todo_update"]},{"goal_id":"loopx-meta","index":24,"done":false,"text":"Monitor ArcticDB #3179 LoopX comment https://github.com/man-group/ArcticDB/issues/3179#issuecomment-4797835630 for metadata-only maintainer reply signal; do not read private material or reply again without owner approva…","schema_version":"todo_index_item_v0","todo_id":"todo_15bc0926a494","role":"agent","status":"open","priority":"P0-REVENUE MONITOR","title":"Monitor ArcticDB #3179 LoopX comment https://github.com/man-group/ArcticDB/issues/3179#issuecomment-4797835630 for metadata-only maintainer reply signal; do not read private material or reply again without owner approva…","archive_state":"active","source_section":"Agent Todo","source":"attention_queue","task_class":"continuous_monitor","action_kind":"github_public_reply_metadata_monitor","claimed_by":"codex-value-explorer","evidence":"autonomous replan: bounded current value-explorer monitor lane with explicit expires_at.","note":"Set bounded watch expiry for metadata-only public reply monitor; no catch-up after expiry.","updated_at":"2026-07-05T06:27:15+08:00"},{"goal_id":"loopx-meta","index":17,"done":false,"text":"Block direct merge of legacy PR #199 until it is rebased/rewritten onto LoopX: rename goal_harness paths/imports and goal-harness CLI strings to loopx, rerun launch-artifact-handle smoke, and verify it does not reintrod…","schema_version":"todo_index_item_v0","todo_id":"todo_2bf560b48a0c","role":"agent","status":"open","priority":"P0","title":"Block direct merge of legacy PR #199 until it is rebased/rewritten onto LoopX: rename goal_harness paths/imports and goal-harness CLI strings to loopx, rerun launch-artifact-handle smoke, and verify it does not reintrod…","archive_state":"active","source_section":"Agent Todo","source":"attention_queue","task_class":"blocker","action_kind":"legacy_open_pr_rename_blocker","claimed_by":"codex-main-control"},{"goal_id":"loopx-meta","index":23,"done":false,"text":"Fix or bypass local SkillsBench Docker verifier reward collection before using local fallback for canonical base/test comparison; organize-messy-files base on merged #668 reached final verifier but produced empty verifi…","schema_version":"todo_index_item_v0","todo_id":"todo_3ed1c4a69164","role":"agent","status":"open","priority":"P0","title":"Fix or bypass local SkillsBench Docker verifier reward collection before using local fallback for canonical base/test comparison; organize-messy-files base on merged #668 reached final verifier but produced empty verifi…","archive_state":"active","source_section":"Agent Todo","source":"attention_queue","task_class":"blocker","action_kind":"skillsbench_local_verifier_reward_collection","claimed_by":"codex-main-control","required_capabilities":["benchmark_runner"]},{"goal_id":"loopx-meta","index":32,"done":false,"text":"Rerun SkillsBench raw vs loopx-goal-start-product-mode on citation-check and powerlifting with PR #779 merged; inspect compact public counters for soft_verify_exception_continued, probe_operation_count, task-facing solv…","schema_version":"todo_index_item_v0","todo_id":"todo_44907a5f355d","role":"agent","status":"blocked","priority":"P0","title":"Rerun SkillsBench raw vs loopx-goal-start-product-mode on citation-check and powerlifting with PR #779 merged; inspect compact public counters for soft_verify_exception_continued, probe_operation_count, task-facing solv…","archive_state":"active","source_section":"Agent Todo","source":"attention_queue","task_class":"advancement_task","action_kind":"skillsbench_goal_start_raw_new_rerun","claimed_by":"codex-main-control","evidence":"Public-safe redacted live LoopX text; inspect local status for the full row.","note":"Do not spend a full citation-check loopx rerun yet: #865 fixed scored output paths and #874 added bootstrap preflight attribution, but citation-check itself still preflights as apt+verifier bootstrap risk on ECS.","updated_at":"2026-06-29T00:49:36+08:00"},{"goal_id":"loopx-meta","index":39,"done":false,"text":"Run the next SkillsBench loopx-goal-start-product-mode reverse-channel case on latest main (no local Docker), prioritizing a currently bad or uncertain case, then update the public case ledger and true LoopX issue analy…","schema_version":"todo_index_item_v0","todo_id":"todo_4762c790e583","role":"agent","status":"blocked","priority":"P0","title":"Run the next SkillsBench loopx-goal-start-product-mode reverse-channel case on latest main (no local Docker), prioritizing a currently bad or uncertain case, then update the public case ledger and true LoopX issue analy…","archive_state":"active","source_section":"Agent Todo","source":"attention_queue","task_class":"advancement_task","action_kind":"skillsbench_goal_start_remote_rerun","claimed_by":"codex-main-control","evidence":"A prior benchmark adapter change was validated before the legacy surface was archived. Current research uses the RFC-linked benchmark workspace and toolkit boundary smokes.","note":"2026-06-29: fixed host-local ACP idle/no-output root cause in PR #894. ACP protocol tool_call_count=0 is now distinguished from reverse-channel task-facing bridge activity; repeated codex_exec_bridge_idle_timeout withou…","updated_at":"2026-06-29T19:40:32+08:00"},{"goal_id":"loopx-meta","index":0,"done":false,"text":"todo add recorded for todo_584f55f8f3b4","schema_version":"todo_index_item_v0","todo_id":"todo_584f55f8f3b4","role":"agent","status":"open","title":"todo add recorded for todo_584f55f8f3b4","source":"rollout_event_log","agent_id":"codex-value-explorer","latest_event_kind":"todo_update","latest_event_at":"2026-07-06T06:48:49Z","latest_event_status":"open","event_count":3,"event_kinds":["todo_add","todo_update"]},{"goal_id":"loopx-meta","index":40,"done":false,"text":"Monitor r10 SkillsBench 30-case codex-app-server-goal-baseline batch, summarize completed compact results into the common case ledger, and stop/repair if setup/bootstrap creates new non-solver blockers.","schema_version":"todo_index_item_v0","todo_id":"todo_62debf065fec","role":"agent","status":"blocked","priority":"P0 MONITOR","title":"Monitor r10 SkillsBench 30-case codex-app-server-goal-baseline batch, summarize completed compact results into the common case ledger, and stop/repair if setup/bootstrap creates new non-solver blockers.","archive_state":"active","source_section":"Agent Todo","source":"attention_queue","task_class":"continuous_monitor","action_kind":"monitor_skillsbench_batch","claimed_by":"codex-main-control","evidence":"Observed 2026-06-30T02:52+08: active-state target_key=skillsbench-goal-baseline-30case-20260629T1826Z-r10; local ps/tmux/recent artifact search found no r10 batch process or compact artifact; no raw task/log/trajectory …","updated_at":"2026-06-30T02:54:54+08:00"},{"goal_id":"loopx-meta","index":0,"done":false,"text":"todo add recorded for todo_93bc6439c521","schema_version":"todo_index_item_v0","todo_id":"todo_93bc6439c521","role":"agent","status":"open","title":"todo add recorded for todo_93bc6439c521","source":"rollout_event_log","agent_id":"codex-main-control","latest_event_kind":"todo_claim","latest_event_at":"2026-07-06T06:32:52Z","latest_event_status":"open","event_count":2,"event_kinds":["todo_add","todo_claim"]},{"goal_id":"loopx-meta","index":27,"done":false,"text":"Run the SkillsBench two-arm comparison after the goal-start route is countable: raw Codex vs new loopx-goal-start-product-mode, reporting task_score/control_score/time and compact public-safe LoopX todo rollout evidence.","schema_version":"todo_index_item_v0","todo_id":"todo_aad7e9716927","role":"agent","status":"blocked","priority":"P0","title":"Run the SkillsBench two-arm comparison after the goal-start route is countable: raw Codex vs new loopx-goal-start-product-mode, reporting task_score/control_score/time and compact public-safe LoopX todo rollout evidence.","archive_state":"active","source_section":"Agent Todo","source":"attention_queue","task_class":"advancement_task","action_kind":"run_goal_start_product_mode_matrix","claimed_by":"codex-main-control","evidence":"driver.status shows DONE raw then RUN loopx-goal-start with no running driver; raw benchmark_run.compact first_blocker=skillsbench_codex_acp_provider_zero_activity; source guard requires --host-local-acp-launch for Loop…","note":"Remote run group skillsbench-raw-new-goal-start-20260627T0420Z produced a material closeout for citation-check raw only; raw compact attribution is skillsbench_codex_acp_provider_zero_activity with official score missin…","updated_at":"2026-06-27T13:05:47+08:00"},{"goal_id":"loopx-meta","index":21,"done":false,"text":"Observe remote official SkillsBench powerlifting-coef-calc base/test runtime-layer mountfix pair skillsbench-powerlifting-coef-calc-remote-canonical-runtime-mountfix-pair-20260623T022028Z: use compact/public artifacts o…","schema_version":"todo_index_item_v0","todo_id":"todo_aec1873c7f28","role":"agent","status":"open","priority":"P0 MONITOR","title":"Observe remote official SkillsBench powerlifting-coef-calc base/test runtime-layer mountfix pair skillsbench-powerlifting-coef-calc-remote-canonical-runtime-mountfix-pair-20260623T022028Z: use compact/public artifacts o…","archive_state":"active","source_section":"Agent Todo","source":"attention_queue","task_class":"continuous_monitor","claimed_by":"codex-main-control","note":"2026-06-23 projection fix: this is monitor context for the powerlifting run, not an advancement next action; current executable path is SkillsBench build cache/prewarm repair.","updated_at":"2026-06-23T10:37:43+08:00"},{"goal_id":"loopx-meta","index":0,"done":false,"text":"todo add recorded for todo_c02cb7d19607","schema_version":"todo_index_item_v0","todo_id":"todo_c02cb7d19607","role":"agent","status":"open","title":"todo add recorded for todo_c02cb7d19607","source":"rollout_event_log","agent_id":"codex-value-explorer","latest_event_kind":"todo_add","latest_event_at":"2026-07-06T03:47:54Z","latest_event_status":"open","event_count":1,"event_kinds":["todo_add"]}]}`),agent_management_projection:{schema_version:`agent_management_projection_v0`,mode:`read_only`,goal_id:`loopx-meta`,generated_at:`2026-07-06T06:49:06Z`,style_hint:null,truth_contract:{todo_is_runtime_work_item:!0,projection_is_writable:!1,introduces_task_runtime:!1,write_api:!1},source_summary:{registered_agent_count:4,projected_agent_count:4,todo_source:`live_loopx_status_public_slice`,public_safe_export:!0},agents:[{agent_id:`codex-main-control`,agent_model:`peer_v1`,profile_role:`release-validation`,state:`blocked`,next_action:`Continue projected todo todo_2bf560b48a0c.`,last_activity_at:`2026-06-29T00:49:36+08:00`,evidence_refs:[`todo:todo_e72afc24f04a:evidence`],goal_ids:[`loopx-meta`],stale_claim_hint:{state:`activity_missing`,claimed_by:`codex-main-control`,reason:`claimed open todo has no projected activity timestamp`,recommended_operator_action:`inspect evidence before considering reassignment`},current_todo:{schema_version:`todo_row_v0`,todo_id:`todo_2bf560b48a0c`,goal_id:`loopx-meta`,role:`agent`,status:`open`,priority:`P0`,title:`Block direct merge of legacy PR #199 until it is rebased/rewritten onto LoopX: rename goal_harn…`,task_class:`blocker`,action_kind:`legacy_open_pr_rename_blocker`,claimed_by:`codex-main-control`}},{agent_id:`codex-product-capability`,agent_model:`peer_v1`,profile_role:`product-validation`,state:`monitoring`,next_action:`Continue projected todo todo_ded745761822.`,last_activity_at:`2026-07-06T06:29:53Z`,evidence_refs:[`todo:todo_ded745761822:evidence`],goal_ids:[`loopx-meta`],current_todo:{schema_version:`todo_row_v0`,todo_id:`todo_ded745761822`,goal_id:`loopx-meta`,role:`agent`,status:`open`,priority:`P0-LOCAL`,title:`Public-safe redacted live LoopX text; inspect local status for the full row.`,task_class:`continuous_monitor`,action_kind:`Public-safe redacted live LoopX text; inspect local status for the full row.`,claimed_by:`codex-product-capability`,updated_at:`2026-07-04T20:22:45+08:00`}},{agent_id:`codex-side-bypass`,agent_model:`peer_v1`,profile_role:`implementation-validation`,state:`waiting`,next_action:`Inspect status projection before taking work.`,last_activity_at:`2026-07-06T06:32:16Z`,evidence_refs:[`rollout_event:todo_complete:todo_22c946938115`],goal_ids:[`loopx-meta`]},{agent_id:`codex-value-explorer`,agent_model:`peer_v1`,profile_role:`value-exploration`,state:`monitoring`,next_action:`Continue projected todo todo_584f55f8f3b4.`,last_activity_at:`2026-07-06T09:39:59+08:00`,evidence_refs:[`rollout_event:todo_update:todo_584f55f8f3b4`],goal_ids:[`loopx-meta`],current_todo:{schema_version:`todo_row_v0`,todo_id:`todo_584f55f8f3b4`,goal_id:`loopx-meta`,role:`agent`,status:`open`,title:`todo add recorded for todo_584f55f8f3b4`}}]},contract:{ok:!0,summary:{errors:0,warnings:1,checks:6},errors:[],warnings:["loopx-meta: duplicate index rows raw=8444 unique=8440 unexpected=3 artifact_identity_collisions=2 artifact_collision_rows=3 reward_overlays=1; inspect with `loopx history --goal-id loopx-meta inspect-index-duplicates`; artifact identity collisions need review…"],checks:[`registry goals checked: 12`,`registry boundary: shared_local_registry push_allowed=False tracked=False ignored=False`,`user-gate scopes checked: 6 open multi-agent gates`,`runtime root resolved: $HOME/.codex/loopx`,`run-history goals=28 runs=10210`,`public boundary scan clean: 1218 files`]},global_registry:{available:!0,ok:!0,registry:`$HOME/.codex/loopx/registry.global.json`,current_registry:`$HOME/.codex/loopx/registry.global.json`,current_registry_is_global:!0,global_goal_count:12,current_goal_count:12,source_registry_count:7,summary:{high:0,action:8,info:0,checks:2,findings:8},findings:[{kind:`source_registry_missing`,severity:`action`,message:"`cc-test` source registry is missing",recommended_action:"reconnect `cc-test` from its project or archive it if the project is obsolete",goal_id:`cc-test`,path:`Public-safe redacted live LoopX text; inspect local status for the full row.`},{kind:`state_file_missing`,severity:`action`,message:"`cc-test` active state file is missing",recommended_action:"repair `cc-test` state_file or reconnect the project",goal_id:`cc-test`,path:`Public-safe redacted live LoopX text; inspect local status for the full row.`},{kind:`source_registry_missing`,severity:`action`,message:"`cc-tmp` source registry is missing",recommended_action:"reconnect `cc-tmp` from its project or archive it if the project is obsolete",goal_id:`cc-tmp`,path:`Public-safe redacted live LoopX text; inspect local status for the full row.`},{kind:`state_file_missing`,severity:`action`,message:"`cc-tmp` active state file is missing",recommended_action:"repair `cc-tmp` state_file or reconnect the project",goal_id:`cc-tmp`,path:`Public-safe redacted live LoopX text; inspect local status for the full row.`},{kind:`source_registry_missing`,severity:`action`,message:"`cc-tmp-xdrchpuaul` source registry is missing",recommended_action:"reconnect `cc-tmp-xdrchpuaul` from its project or archive it if the project is obsolete",goal_id:`cc-tmp-xdrchpuaul`,path:`Public-safe redacted live LoopX text; inspect local status for the full row.`},{kind:`state_file_missing`,severity:`action`,message:"`cc-tmp-xdrchpuaul` active state file is missing",recommended_action:"repair `cc-tmp-xdrchpuaul` state_file or reconnect the project",goal_id:`cc-tmp-xdrchpuaul`,path:`Public-safe redacted live LoopX text; inspect local status for the full row.`},{kind:`source_registry_missing`,severity:`action`,message:"`loopx-auto-research-e2e-probe-20260628-2225-goal` source registry is missing",recommended_action:"reconnect `loopx-auto-research-e2e-probe-20260628-2225-goal` from its project or archive it if the project is obsolete",goal_id:`loopx-auto-research-e2e-probe-20260628-2225-goal`,path:`Public-safe redacted live LoopX text; inspect local status for the full row.`},{kind:`state_file_missing`,severity:`action`,message:"`loopx-auto-research-e2e-probe-20260628-2225-goal` active state file is missing",recommended_action:"repair `loopx-auto-research-e2e-probe-20260628-2225-goal` state_file or reconnect the project",goal_id:`loopx-auto-research-e2e-probe-20260628-2225-goal`,path:`Public-safe redacted live LoopX text; inspect local status for the full row.`}],checks:[`global registry goals checked: 12`,`global source registries checked: 7`]},attention_queue:JSON.parse(`{"available":true,"item_count":1,"needs_user_or_controller":0,"needs_controller":0,"needs_codex":1,"watching_external_evidence":0,"items":[{"goal_id":"loopx-meta","status":"skillsbench_codex_cli_goal_tail4_keepalive_relaunched","lifecycle_phase":"adapter_inspected","lifecycle_flags":["adapter_inspected"],"waiting_on":"codex","severity":"action","recommended_action":"Monitor run_group skillsbench-codex-cli-goal-xhigh-tail4-keepalive-20260706T143132CST using public compact/public artifacts only; once benchmark_run.compact.json lands for each case, classify launcher/case/solver/verifi…","source":"latest_run","quota":{"compute":1.0,"window_hours":24,"slot_minutes":1,"allowed_slots":1440,"spent_slots":97,"state":"eligible","reason":"1 compute quota; eligible for the next automatic agent turn"},"agent_todos":{"source_section":"Agent Todo","total_count":12,"open_count":12,"done_count":0,"items":[{"goal_id":"loopx-meta","index":0,"done":false,"text":"todo update recorded for todo_1596c3a678bb","schema_version":"todo_index_item_v0","todo_id":"todo_1596c3a678bb","role":"agent","status":"open","title":"todo update recorded for todo_1596c3a678bb","source":"rollout_event_log","agent_id":"codex-main-control","latest_event_kind":"todo_update","latest_event_at":"2026-07-06T06:33:32Z","latest_event_status":"open","event_count":7,"event_kinds":["todo_update"]},{"goal_id":"loopx-meta","index":24,"done":false,"text":"Monitor ArcticDB #3179 LoopX comment https://github.com/man-group/ArcticDB/issues/3179#issuecomment-4797835630 for metadata-only maintainer reply signal; do not read private material or reply again without owner approva…","schema_version":"todo_index_item_v0","todo_id":"todo_15bc0926a494","role":"agent","status":"open","priority":"P0-REVENUE MONITOR","title":"Monitor ArcticDB #3179 LoopX comment https://github.com/man-group/ArcticDB/issues/3179#issuecomment-4797835630 for metadata-only maintainer reply signal; do not read private material or reply again without owner approva…","archive_state":"active","source_section":"Agent Todo","source":"attention_queue","task_class":"continuous_monitor","action_kind":"github_public_reply_metadata_monitor","claimed_by":"codex-value-explorer","evidence":"autonomous replan: bounded current value-explorer monitor lane with explicit expires_at.","note":"Set bounded watch expiry for metadata-only public reply monitor; no catch-up after expiry.","updated_at":"2026-07-05T06:27:15+08:00"},{"goal_id":"loopx-meta","index":17,"done":false,"text":"Block direct merge of legacy PR #199 until it is rebased/rewritten onto LoopX: rename goal_harness paths/imports and goal-harness CLI strings to loopx, rerun launch-artifact-handle smoke, and verify it does not reintrod…","schema_version":"todo_index_item_v0","todo_id":"todo_2bf560b48a0c","role":"agent","status":"open","priority":"P0","title":"Block direct merge of legacy PR #199 until it is rebased/rewritten onto LoopX: rename goal_harness paths/imports and goal-harness CLI strings to loopx, rerun launch-artifact-handle smoke, and verify it does not reintrod…","archive_state":"active","source_section":"Agent Todo","source":"attention_queue","task_class":"blocker","action_kind":"legacy_open_pr_rename_blocker","claimed_by":"codex-main-control"},{"goal_id":"loopx-meta","index":23,"done":false,"text":"Fix or bypass local SkillsBench Docker verifier reward collection before using local fallback for canonical base/test comparison; organize-messy-files base on merged #668 reached final verifier but produced empty verifi…","schema_version":"todo_index_item_v0","todo_id":"todo_3ed1c4a69164","role":"agent","status":"open","priority":"P0","title":"Fix or bypass local SkillsBench Docker verifier reward collection before using local fallback for canonical base/test comparison; organize-messy-files base on merged #668 reached final verifier but produced empty verifi…","archive_state":"active","source_section":"Agent Todo","source":"attention_queue","task_class":"blocker","action_kind":"skillsbench_local_verifier_reward_collection","claimed_by":"codex-main-control","required_capabilities":["benchmark_runner"]},{"goal_id":"loopx-meta","index":32,"done":false,"text":"Rerun SkillsBench raw vs loopx-goal-start-product-mode on citation-check and powerlifting with PR #779 merged; inspect compact public counters for soft_verify_exception_continued, probe_operation_count, task-facing solv…","schema_version":"todo_index_item_v0","todo_id":"todo_44907a5f355d","role":"agent","status":"blocked","priority":"P0","title":"Rerun SkillsBench raw vs loopx-goal-start-product-mode on citation-check and powerlifting with PR #779 merged; inspect compact public counters for soft_verify_exception_continued, probe_operation_count, task-facing solv…","archive_state":"active","source_section":"Agent Todo","source":"attention_queue","task_class":"advancement_task","action_kind":"skillsbench_goal_start_raw_new_rerun","claimed_by":"codex-main-control","evidence":"Public-safe redacted live LoopX text; inspect local status for the full row.","note":"Do not spend a full citation-check loopx rerun yet: #865 fixed scored output paths and #874 added bootstrap preflight attribution, but citation-check itself still preflights as apt+verifier bootstrap risk on ECS.","updated_at":"2026-06-29T00:49:36+08:00"},{"goal_id":"loopx-meta","index":39,"done":false,"text":"Run the next SkillsBench loopx-goal-start-product-mode reverse-channel case on latest main (no local Docker), prioritizing a currently bad or uncertain case, then update the public case ledger and true LoopX issue analy…","schema_version":"todo_index_item_v0","todo_id":"todo_4762c790e583","role":"agent","status":"blocked","priority":"P0","title":"Run the next SkillsBench loopx-goal-start-product-mode reverse-channel case on latest main (no local Docker), prioritizing a currently bad or uncertain case, then update the public case ledger and true LoopX issue analy…","archive_state":"active","source_section":"Agent Todo","source":"attention_queue","task_class":"advancement_task","action_kind":"skillsbench_goal_start_remote_rerun","claimed_by":"codex-main-control","evidence":"A prior benchmark adapter change was validated before the legacy surface was archived. Current research uses the RFC-linked benchmark workspace and toolkit boundary smokes.","note":"2026-06-29: fixed host-local ACP idle/no-output root cause in PR #894. ACP protocol tool_call_count=0 is now distinguished from reverse-channel task-facing bridge activity; repeated codex_exec_bridge_idle_timeout withou…","updated_at":"2026-06-29T19:40:32+08:00"},{"goal_id":"loopx-meta","index":0,"done":false,"text":"todo add recorded for todo_584f55f8f3b4","schema_version":"todo_index_item_v0","todo_id":"todo_584f55f8f3b4","role":"agent","status":"open","title":"todo add recorded for todo_584f55f8f3b4","source":"rollout_event_log","agent_id":"codex-value-explorer","latest_event_kind":"todo_update","latest_event_at":"2026-07-06T06:48:49Z","latest_event_status":"open","event_count":3,"event_kinds":["todo_add","todo_update"]},{"goal_id":"loopx-meta","index":40,"done":false,"text":"Monitor r10 SkillsBench 30-case codex-app-server-goal-baseline batch, summarize completed compact results into the common case ledger, and stop/repair if setup/bootstrap creates new non-solver blockers.","schema_version":"todo_index_item_v0","todo_id":"todo_62debf065fec","role":"agent","status":"blocked","priority":"P0 MONITOR","title":"Monitor r10 SkillsBench 30-case codex-app-server-goal-baseline batch, summarize completed compact results into the common case ledger, and stop/repair if setup/bootstrap creates new non-solver blockers.","archive_state":"active","source_section":"Agent Todo","source":"attention_queue","task_class":"continuous_monitor","action_kind":"monitor_skillsbench_batch","claimed_by":"codex-main-control","evidence":"Observed 2026-06-30T02:52+08: active-state target_key=skillsbench-goal-baseline-30case-20260629T1826Z-r10; local ps/tmux/recent artifact search found no r10 batch process or compact artifact; no raw task/log/trajectory …","updated_at":"2026-06-30T02:54:54+08:00"},{"goal_id":"loopx-meta","index":0,"done":false,"text":"todo add recorded for todo_93bc6439c521","schema_version":"todo_index_item_v0","todo_id":"todo_93bc6439c521","role":"agent","status":"open","title":"todo add recorded for todo_93bc6439c521","source":"rollout_event_log","agent_id":"codex-main-control","latest_event_kind":"todo_claim","latest_event_at":"2026-07-06T06:32:52Z","latest_event_status":"open","event_count":2,"event_kinds":["todo_add","todo_claim"]},{"goal_id":"loopx-meta","index":27,"done":false,"text":"Run the SkillsBench two-arm comparison after the goal-start route is countable: raw Codex vs new loopx-goal-start-product-mode, reporting task_score/control_score/time and compact public-safe LoopX todo rollout evidence.","schema_version":"todo_index_item_v0","todo_id":"todo_aad7e9716927","role":"agent","status":"blocked","priority":"P0","title":"Run the SkillsBench two-arm comparison after the goal-start route is countable: raw Codex vs new loopx-goal-start-product-mode, reporting task_score/control_score/time and compact public-safe LoopX todo rollout evidence.","archive_state":"active","source_section":"Agent Todo","source":"attention_queue","task_class":"advancement_task","action_kind":"run_goal_start_product_mode_matrix","claimed_by":"codex-main-control","evidence":"driver.status shows DONE raw then RUN loopx-goal-start with no running driver; raw benchmark_run.compact first_blocker=skillsbench_codex_acp_provider_zero_activity; source guard requires --host-local-acp-launch for Loop…","note":"Remote run group skillsbench-raw-new-goal-start-20260627T0420Z produced a material closeout for citation-check raw only; raw compact attribution is skillsbench_codex_acp_provider_zero_activity with official score missin…","updated_at":"2026-06-27T13:05:47+08:00"},{"goal_id":"loopx-meta","index":21,"done":false,"text":"Observe remote official SkillsBench powerlifting-coef-calc base/test runtime-layer mountfix pair skillsbench-powerlifting-coef-calc-remote-canonical-runtime-mountfix-pair-20260623T022028Z: use compact/public artifacts o…","schema_version":"todo_index_item_v0","todo_id":"todo_aec1873c7f28","role":"agent","status":"open","priority":"P0 MONITOR","title":"Observe remote official SkillsBench powerlifting-coef-calc base/test runtime-layer mountfix pair skillsbench-powerlifting-coef-calc-remote-canonical-runtime-mountfix-pair-20260623T022028Z: use compact/public artifacts o…","archive_state":"active","source_section":"Agent Todo","source":"attention_queue","task_class":"continuous_monitor","claimed_by":"codex-main-control","note":"2026-06-23 projection fix: this is monitor context for the powerlifting run, not an advancement next action; current executable path is SkillsBench build cache/prewarm repair.","updated_at":"2026-06-23T10:37:43+08:00"},{"goal_id":"loopx-meta","index":0,"done":false,"text":"todo add recorded for todo_c02cb7d19607","schema_version":"todo_index_item_v0","todo_id":"todo_c02cb7d19607","role":"agent","status":"open","title":"todo add recorded for todo_c02cb7d19607","source":"rollout_event_log","agent_id":"codex-value-explorer","latest_event_kind":"todo_add","latest_event_at":"2026-07-06T03:47:54Z","latest_event_status":"open","event_count":1,"event_kinds":["todo_add"]}]}}]}`),run_history:{available:!0,goal_count:1,run_count:5,goals:[{id:`loopx-meta`,domain:`loopx-platform`,status:`active-read-only`,lifecycle_phase:`adapter_inspected`,lifecycle_flags:[`adapter_inspected`],registry_member:!0,legacy_runtime_goal:!1,adapter_kind:`harness_self_improvement`,adapter_status:`connected-read-only`,index_exists:!0,raw_index_records:8444,unique_runs:8440,quota:{compute:1,window_hours:24,slot_minutes:1,allowed_slots:1440,spent_slots:97,state:`waiting`,reason:`no active Codex-ready work is currently selected`},latest_runs:[{generated_at:`2026-07-06T14:37:32+08:00`,goal_id:`loopx-meta`,classification:`quota_slot_spent`,agent_id:`codex-value-explorer`,recommended_action:`审阅 PR #1524 的 Agent Management 面板视觉方向:workspace hint 与 stale claim hint 是否符合预期;确认后允许 codex-value-explorer 自合并。`,health_check:`quota safe-bypass operator gate; quota slot spend event public-safe`,json_exists:!0,markdown_exists:!0,lifecycle_phase:`adapter_inspected`,lifecycle_flags:[`adapter_inspected`]},{generated_at:`2026-07-06T14:33:55+08:00`,goal_id:`loopx-meta`,classification:`quota_slot_spent`,agent_id:`codex-main-control`,recommended_action:`[P1] Repair SkillsBench post-run debug gate consistency for countable codex-cli-goal official-zero runs: when attempt_accounting is countable and case_closeout_complete=true, do not project first_blocker=loopx_closeout_…`,health_check:`quota should-run eligible; quota slot spend event public-safe`,json_exists:!0,markdown_exists:!0,lifecycle_phase:`adapter_inspected`,lifecycle_flags:[`adapter_inspected`]},{generated_at:`2026-07-06T14:33:54+08:00`,goal_id:`loopx-meta`,classification:`skillsbench_codex_cli_goal_tail4_keepalive_relaunched`,agent_id:`codex-main-control`,progress_scope:`goal`,delivery_batch_scale:`single_surface`,delivery_outcome:`outcome_progress`,recommended_action:`Monitor run_group skillsbench-codex-cli-goal-xhigh-tail4-keepalive-20260706T143132CST using public compact/public artifacts only; once benchmark_run.compact.json lands for each case, classify launcher/case/solver/verifi…`,health_check:`state_file 1/1; registry_goal 1/1; authority_sources 10`,json_exists:!0,markdown_exists:!0,lifecycle_phase:`adapter_inspected`,lifecycle_flags:[`adapter_inspected`]},{generated_at:`2026-07-06T14:33:34+08:00`,goal_id:`loopx-meta`,classification:`quota_slot_spent`,agent_id:`codex-side-bypass`,recommended_action:`[P0] Rerun real KNN visible auto-research after the successor-link fix and verify evaluator completion projects a second-round hypothesis/frontier or explicit completion gate without manual intervention; keep evidence p…`,health_check:`quota should-run eligible; quota slot spend event public-safe`,json_exists:!0,markdown_exists:!0,lifecycle_phase:`adapter_inspected`,lifecycle_flags:[`adapter_inspected`]},{generated_at:`2026-07-06T14:32:57+08:00`,goal_id:`loopx-meta`,classification:`auto_research_successor_link_fix_merged`,agent_id:`codex-side-bypass`,progress_scope:`agent_lane`,delivery_batch_scale:`implementation`,delivery_outcome:`outcome_progress`,recommended_action:`[P0] Rerun real KNN visible auto-research after the successor-link fix and verify evaluator completion projects a second-round hypothesis/frontier or explicit completion gate without manual intervention; keep evidence p…`,health_check:`state_file 1/1; registry_goal 1/1; authority_sources 0`,json_exists:!0,markdown_exists:!0,lifecycle_phase:`adapter_inspected`,lifecycle_flags:[`adapter_inspected`]}]}]}},Qd=W().nullable(),$d=J({schema_version:X(`goal_acceptance_observation_projection_v0`),goal_id:W(),read_only:X(!0),acceptance_assessed:X(!1),coverage:Y([`partial`,`unavailable`]),missing_sources:q(W()),truncated:K(),historical_progress:q(J({kind:W(),observed_at:Qd,source:W(),evidence_refs:q(W())})),acceptance_gaps:q(J({kind:W(),owner:Qd,reason:Qd,evidence_required:Qd,observed_at:Qd,source:W(),reason_code:W().optional(),resolution_hint:W().optional(),component_checks:J({checkpoint_satisfied:K(),checkpoint_fresh:K(),path_outcome_valid:K(),evidence_refs_present:K(),final_outcome_claim_present:K(),no_reported_outcome_gap:K()}).optional()})),guards:q(J({kind:W(),todo_id:Qd,blocks_agent:Qd,owner:Qd,reason:Qd,evidence_required:Qd,decision_scope:Qd})),next_action:Qd,next_action_source:Qd}),ef=dd([W(),G(),K(),rd()]),tf=yd(W(),ef),nf=J({todo_id:W().optional(),priority:W().optional(),status:W(),title:W(),claimed_by:W().optional(),task_class:W().optional(),action_kind:W().optional()}),rf=J({gate_id:W(),kind:W(),status:W(),blocks:q(W()).optional()}),af=J({todo_id:W().optional(),owner_agent:W().optional(),status:W().optional(),lease_until:W().optional(),write_scope:q(W()).optional()}),of=J({generated_at:W().optional(),classification:W().optional(),summary:W().optional()}),sf=J({kind:W().optional().default(`warning`),message:dd([W(),q(W())]).optional().default(`compact source warning`)}).passthrough(),cf=J({schema_version:X(`goal_channel_projection_v0`),mode:X(`read_only`),goal_id:W(),display_name:W(),generated_at:W().optional().nullable(),latest_status:W(),waiting_on:W(),next_action:W(),source_refs:yd(W(),ef),decision_frame:J({user_action_required:K(),agent_action_required:K(),quiet_noop_allowed:K()}),quota:tf,user_todos:q(nf).default([]),agent_todos:q(nf).default([]),open_gates:q(rf).default([]),active_leases:q(af).default([]),artifacts:q(tf).default([]),recent_events:q(of).default([]),source_warnings:q(sf).default([]),truth_contract:J({event_ledger_is_source_of_truth:K(),projection_is_writable:K(),recompute_rule:W(),write_authority:W()})}),lf=J({compute:G().optional().default(1),window_hours:G().optional().default(24),slot_minutes:G().optional().default(1),allowed_slots:G().optional().nullable(),spent_slots:G().optional().default(0),state:W().optional().nullable(),next_eligible_at:W().optional().nullable(),reason:W().optional().nullable(),blocked_action_scope:W().optional().nullable(),focus_wait:K().optional().nullable(),handoff_outcome_floor_block:K().optional().nullable(),safe_bypass_allowed:K().optional().default(!1),safe_bypass_kind:W().optional().nullable(),safe_bypass_policy:W().optional().nullable(),post_handoff_outcome_gap_streak:G().optional().nullable(),outcome_gap_threshold:G().optional().nullable(),must_advance:q(W()).optional().default([]),avoid:q(W()).optional().default([])}).transform(e=>{let t=Math.max(1,e.slot_minutes),n=Math.round(e.window_hours*60*e.compute/t);return{...e,slot_minutes:t,allowed_slots:e.allowed_slots??n}}),uf=J({self_repair:J({enabled:K().optional().default(!1),allow_health_blocker_repair:K().optional().default(!1),allow_waiting_projection_repair:K().optional().default(!1)}).optional().nullable()}).passthrough(),df=J({model_config:J({model:W(),reasoning_effort:W().optional()}).optional(),mode:W().optional().default(`default`),orchestration_mode:W().optional().nullable(),spawn_allowed:K().optional().default(!1),allowed:K().optional().nullable(),max_children:G().optional().default(0),allowed_domains:q(W()).optional().default([])}).passthrough(),ff=J({label:W().optional().nullable(),path:W(),anchor:W().optional().nullable(),exists:K().optional().default(!1),resolved_path:W().optional().nullable()}),pf=J({index:G(),done:K(),text:W(),schema_version:W().optional().nullable(),todo_id:W().optional().nullable(),role:W().optional().nullable(),status:W().optional().nullable(),resume_when:W().optional().nullable(),resume_ready:K().optional().nullable(),resume_condition:yd(W(),ad()).optional().nullable(),priority:W().optional().nullable(),title:W().optional().nullable(),archive_state:W().optional().nullable(),source_section:W().optional().nullable(),task_class:W().optional().nullable(),task_domain:W().optional().nullable(),action_kind:W().optional().nullable(),claimed_by:W().optional().nullable(),required_capabilities:q(W()).optional(),note:W().optional().nullable(),evidence:W().optional().nullable(),updated_at:W().optional().nullable(),review_materials:q(ff).optional().default([])}).passthrough(),mf=J({source_section:W().optional().nullable(),total_count:G().optional().default(0),open_count:G().optional().default(0),done_count:G().optional().default(0),advancement_done_count:G().optional(),items:q(pf).optional().default([]),deferred_items:q(pf).optional()}),hf=pf.extend({goal_id:W(),source:W().optional().nullable(),event_count:G().optional().default(0),event_kinds:q(W()).optional().default([]),latest_event_kind:W().optional().nullable(),latest_event_at:W().optional().nullable(),latest_event_status:W().optional().nullable(),agent_id:W().optional().nullable()}).passthrough(),gf=J({schema_version:W().optional().nullable(),source:W().optional().nullable(),total_count:G().optional().default(0),current_projected_count:G().optional().default(0),rollout_event_count:G().optional().default(0),item_limit:G().optional().nullable(),items:q(hf).optional().default([])}),_f=J({kind:W().optional().nullable(),label:W().optional().nullable(),path_safe:K().optional().default(!1),branch:W().optional().nullable(),write_scope:q(W()).optional().default([])}).passthrough(),vf=J({state:W().optional().nullable(),claimed_by:W().optional().nullable(),last_activity_at:W().optional().nullable(),threshold_hours:G().optional().nullable(),reason:W().optional().nullable(),recommended_operator_action:W().optional().nullable()}).passthrough(),yf=J({schema_version:W().optional().nullable(),todo_id:W().optional().nullable(),goal_id:W().optional().nullable(),role:W().optional().nullable(),status:W().optional().nullable(),priority:W().optional().nullable(),title:W().optional().nullable(),task_class:W().optional().nullable(),action_kind:W().optional().nullable(),claimed_by:W().optional().nullable(),required_write_scopes:q(W()).optional().default([]),workspace_ref:_f.optional().nullable()}).passthrough(),bf=J({schema_version:W().optional().nullable(),from_agent:W().optional().nullable(),to_agent:W().optional().nullable(),intent:W().optional().nullable(),summary:W().optional().nullable(),blocker:W().optional().nullable(),suggested_next_action:W().optional().nullable(),evidence_refs:q(W()).optional().default([]),updated_at:W().optional().nullable()}).passthrough(),xf=J({agent_id:W(),role:W().optional().nullable(),state:W().optional().nullable(),current_todo:yf.optional().nullable(),next_action:W().optional().nullable(),last_activity_at:W().optional().nullable(),evidence_refs:q(W()).optional().default([]),handoff_refs:q(W()).optional().default([]),handoff_note:bf.optional().nullable(),workspace_ref:_f.optional().nullable(),stale_claim_hint:vf.optional().nullable(),blocked_on:yf.optional().nullable(),goal_ids:q(W()).optional().default([])}).passthrough(),Sf=J({schema_version:W().optional().nullable(),mode:W().optional().nullable(),goal_id:W().optional().nullable(),generated_at:W().optional().nullable(),style_hint:J({preferred:W().optional().nullable(),license_boundary:W().optional().nullable()}).optional().nullable(),truth_contract:J({todo_is_runtime_work_item:K().optional().default(!0),projection_is_writable:K().optional().default(!1),introduces_task_runtime:K().optional().default(!1),write_api:K().optional().default(!1)}).optional().nullable(),source_summary:J({registered_agent_count:G().optional().default(0),projected_agent_count:G().optional().default(0),todo_source:W().optional().nullable()}).optional().nullable(),agents:q(xf).optional().default([])}).passthrough(),Cf=J({goal_id:W(),configured:K().optional().default(!1),enabled:K().optional().default(!1),human_gate_auto_notify_enabled:K().optional().default(!1),target_ref:W().optional().nullable(),receipt_count:G().optional().default(0),last_notified_at:W().optional().nullable()}).passthrough(),wf=J({schema_version:W().optional().nullable(),generated_at:W().optional().nullable(),goals:q(Cf).optional().default([])}).passthrough(),Tf=J({source_section:W().optional().nullable(),open:G().optional().default(0),done:G().optional().default(0),total:G().optional().default(0),advancement_done_count:G().optional(),next:W().optional().nullable(),next_index:G().optional().nullable(),items:q(pf).optional().default([]),recent_completed_advancement_items:q(pf).optional().default([])}),Ef=J({goal_id:W(),status:W().optional().nullable(),waiting_on:W().optional().nullable(),severity:W().optional().nullable(),index:G().optional().nullable(),text:W(),source:W().optional().nullable()}),Df=J({source:W().optional().nullable(),open_count:G().optional().default(0),items:q(Ef).optional().default([])}),Of=J({goal_id:W(),status:W().optional().nullable(),waiting_on:W().optional().nullable(),quota_state:W().optional().nullable(),priority:W().optional().nullable(),todo_index:G().optional().nullable(),text:W(),source:W().optional().nullable()}),kf=J({source:W().optional().nullable(),open_count:G().optional().default(0),items:q(Of).optional().default([])}),Af=J({generated_at:W().optional().nullable(),classification:W().optional().nullable(),summary:W().optional().nullable()}),jf=J({kind:W().optional().nullable(),source:W().optional().nullable(),severity:W().optional().nullable(),requires_refresh_state:K().optional().default(!1),reason:W().optional().nullable(),active_state_updated_at:W().optional().nullable(),latest_run_generated_at:W().optional().nullable(),latest_run_state_updated_at:W().optional().nullable(),latest_run_classification:W().optional().nullable(),recommended_action:W().optional().nullable()}),Mf=J({generated_at:W().optional().nullable(),classification:W().optional().nullable(),delivery_batch_scale:W().optional().nullable(),delivery_outcome:W().optional().nullable(),health_check:W().optional().nullable(),json_exists:K().optional().nullable(),markdown_exists:K().optional().nullable()}),Nf=J({project_asset_backed:K().optional(),same_source_should_run:K().optional(),codex_ready:K().optional(),handoff_has_next_action:K().optional(),handoff_has_stop_condition:K().optional(),handoff_sanitized_surface:K().optional()}).catchall(K()),Pf=J({ready:K().optional().default(!1),codex_ready:K().optional().default(!1),source:W().optional().nullable(),quota_state:W().optional().nullable(),checks:Nf.optional().default({}),handoff_status:W().optional().nullable(),handoff_ready_at:W().optional().nullable(),handoff_ready_classification:W().optional().nullable(),post_handoff_run_seen:K().optional().default(!1),post_handoff_latest_run:Mf.optional().nullable(),post_handoff_recent_runs:q(Mf).optional().default([]),post_handoff_small_scale_streak:G().int().nonnegative().optional().default(0),post_handoff_outcome_gap_streak:G().int().nonnegative().optional().default(0),next_probe:W().optional().nullable()}),Ff=J({schema_version:W().optional().nullable(),kind:W().optional().nullable(),missing_roles:q(W()).optional().default([]),source:W().optional().nullable(),recommended_action:W().optional().nullable()}),If=J({owner:W(),gate:W(),next_action:W(),stop_condition:W(),user_todos:Tf.optional().nullable(),agent_todos:Tf.optional().nullable(),quota:lf.optional().nullable(),control_plane:uf.optional().nullable(),orchestration:df.optional().nullable(),latest_validation:Af.optional().nullable(),stale_latest_run_warning:jf.optional().nullable(),todo_projection_gap:Ff.optional().nullable()}),Lf=J({goal_id:W(),activation_state:Y([`active`,`stopped`]).optional().default(`active`),status:W(),waiting_on:W(),severity:W(),recommended_action:W(),project_asset:If.optional().nullable(),handoff_readiness:Pf.optional().nullable(),source:W().optional(),operator_question:W().optional().nullable(),agent_command:W().optional().nullable(),lifecycle_phase:W().optional().nullable(),lifecycle_flags:q(W()).optional().default([]),controller_stage:W().optional().nullable(),missing_gates:q(W()).optional().default([]),next_handoff_condition:W().optional().nullable(),quota:lf.optional().nullable(),control_plane:uf.optional().nullable(),user_todos:mf.optional().nullable(),agent_todos:mf.optional().nullable(),stale_latest_run_warning:jf.optional().nullable(),dependency_blockers:Df.optional().nullable(),todo_state_file:W().optional().nullable(),goal_channel_projection:cf.optional().nullable()}),Rf=J({recorded_at:W().optional().nullable(),decision:W().optional().nullable(),reward:W().optional().nullable(),reason_summary:W().optional().nullable(),follow_up:W().optional().nullable()}),zf=J({recorded_at:W().optional().nullable(),gate:W().optional().nullable(),decision:W().optional().nullable(),operator_question:W().optional().nullable(),reason_summary:W().optional().nullable(),follow_up:W().optional().nullable(),agent_command:W().optional().nullable()}),Bf=J({version:W().optional().nullable(),goal_id:W().optional().nullable(),run_id:W().optional().nullable(),gate_id:W().optional().nullable(),created_state_ref:W().optional().nullable(),created_policy_version:W().optional().nullable(),interrupt_payload:J({question:W().optional().nullable(),choices:q(W()).optional().default([])}).optional().nullable(),allowed_decisions:q(W()).optional().default([]),operator_decision:W().optional().nullable(),latest_state_ref:W().optional().nullable(),freshness_check:W().optional().nullable(),precondition_check:W().optional().nullable(),migration_or_rebase_result:W().optional().nullable(),resulting_action:W().optional().nullable(),validation_after_resume:W().optional().nullable()}),Vf=J({id:W().optional().nullable(),ok:K().optional().nullable(),review:W().optional().nullable()}),Hf=J({classification:W().optional().nullable(),read_only_observer_ready:K().optional().nullable(),decision_advisor_ready:K().optional().nullable(),write_controller_ready:K().optional().nullable(),missing_gates:q(W()).optional().default([]),review_judgment:W().optional().nullable(),next_handoff_condition:W().optional().nullable(),gates:q(Vf).optional().default([])}),Uf=J({declared:K().optional().default(!1),required:K().optional().default(!1),path:W().optional().nullable(),path_exists:K().optional().nullable(),read_status:W().optional().nullable(),default_entry_count:G().optional().default(0),default_entries_checked:G().optional().default(0),default_entries_present:G().optional().default(0),topic_authority_count:G().optional().default(0),project_material_count:G().optional().default(0),project_material_repository_count:G().optional().default(0),project_material_owner_review_required_count:G().optional().default(0),project_material_stale_count:G().optional().default(0),project_material_current_authority_count:G().optional().default(0),deprecated_source_count:G().optional().default(0),conflict_risk:W().optional().nullable()}),Wf=J({adapter_kind:W().optional().nullable(),adapter_status:W().optional().nullable(),authority_source_count:G().optional().nullable(),authority_registry_declared:K().optional().nullable(),authority_registry_path_exists:K().optional().nullable(),authority_registry_default_entry_count:G().optional().nullable(),authority_registry_default_entries_present:G().optional().nullable(),topic_authority_count:G().optional().nullable(),project_material_count:G().optional().nullable(),project_material_repository_count:G().optional().nullable(),project_material_owner_review_required_count:G().optional().nullable(),project_material_stale_count:G().optional().nullable(),project_material_current_authority_count:G().optional().nullable(),authority_registry_conflict_risk:W().optional().nullable(),guard_count:G().optional().nullable(),sections_found:G().optional().nullable(),sections_checked:G().optional().nullable(),files_present:G().optional().nullable(),files_checked:G().optional().nullable()}),Gf=J({generated_at:W(),goal_id:W(),classification:W().optional().nullable(),lifecycle_phase:W().optional().nullable(),lifecycle_flags:q(W()).optional().default([]),recommended_action:W().optional().nullable(),health_check:W().optional().nullable(),active_task_count:G().optional().nullable(),active_priorities:yd(W(),ad()).optional().nullable(),cache_check:W().optional().nullable(),json_exists:K().optional().default(!1),markdown_exists:K().optional().default(!1),human_reward:Rf.optional().nullable(),operator_gate:zf.optional().nullable(),operator_gate_resume_contract:Bf.optional().nullable(),controller_readiness:Hf.optional().nullable(),project_map:Wf.optional().nullable()}),Kf=J({acceptance_observation:$d.optional().nullable().catch(null),id:W(),activation_state:Y([`active`,`stopped`]).optional().default(`active`),display_name:W().optional().nullable(),domain:W().optional().nullable(),status:W().optional().nullable(),lifecycle_phase:W().optional().nullable(),lifecycle_flags:q(W()).optional().default([]),registry_member:K().optional().default(!1),legacy_runtime_goal:K().optional().default(!1),adapter_kind:W().optional().nullable(),adapter_status:W().optional().nullable(),authority_registry:Uf.optional().nullable(),quota:lf.optional().nullable(),control_plane:uf.optional().nullable(),spawn_policy:df.optional().nullable(),orchestration:df.optional().nullable(),coordination:J({agent_model:W().optional().nullable(),registered_agents:q(W()).optional().default([])}).optional().nullable(),index_exists:K().optional().default(!1),raw_index_records:G().optional().default(0),unique_runs:G().optional().default(0),latest_runs:q(Gf).optional().default([])}),qf=J({available:K(),goal_count:G().optional().default(0),run_count:G().optional().default(0),goals:q(Kf).optional().default([]),recent_runs:q(Gf).optional().default([])}),Jf=J({kind:W(),severity:W(),message:W(),recommended_action:W(),goal_id:W().optional().nullable(),path:W().optional().nullable(),goal_ids:q(W()).optional().default([])}),Yf=J({available:K(),ok:K(),registry:W(),current_registry:W().optional().nullable(),current_registry_is_global:K().optional().default(!1),global_goal_count:G().optional().default(0),current_goal_count:G().optional().default(0),source_registry_count:G().optional().default(0),summary:J({high:G().optional().default(0),action:G().optional().default(0),info:G().optional().default(0),checks:G().optional().default(0),findings:G().optional().default(0)}),findings:q(Jf).optional().default([]),checks:q(W()).optional().default([])}),Xf=J({runs_24h:G().optional().default(0),runs_7d:G().optional().default(0),quota_spend_slots_24h:G().optional().default(0),quota_spend_slots_7d:G().optional().default(0),automation_run_count_24h:G().optional().default(0),automation_run_count_7d:G().optional().default(0),progress_signal_run_count_24h:G().optional().default(0),progress_signal_run_count_7d:G().optional().default(0),input_tokens_24h:G().optional(),input_tokens_7d:G().optional(),output_tokens_24h:G().optional(),output_tokens_7d:G().optional(),cache_tokens_24h:G().optional(),cache_tokens_7d:G().optional(),cost_usd_24h:G().optional(),cost_usd_7d:G().optional(),duration_ms_24h:G().optional(),duration_ms_7d:G().optional()}),Zf=Xf.extend({goal_id:W(),project_share_24h:G().optional().default(0)}),Qf=J({available:K().optional().default(!0),source:W().optional().default(`run_history`),generated_at:W().optional().nullable(),sample_run_count:G().optional().default(0),proxy_note:W().optional().nullable(),totals:Xf.optional().default({runs_24h:0,runs_7d:0,quota_spend_slots_24h:0,quota_spend_slots_7d:0,automation_run_count_24h:0,automation_run_count_7d:0,progress_signal_run_count_24h:0,progress_signal_run_count_7d:0}),goals:q(Zf).optional().default([])}).optional().nullable(),$f=J({accounting:G().optional().default(0),decision:G().optional().default(0),evidence:G().optional().default(0),state:G().optional().default(0),work:G().optional().default(0)}),ep={accounting:0,decision:0,evidence:0,state:0,work:0},tp=J({events_24h:G().optional().default(0),events_7d:G().optional().default(0),by_class_24h:$f.optional().default(ep),by_class_7d:$f.optional().default(ep)}),np=tp.extend({goal_id:W(),latest_event_class:W().optional().nullable(),latest_event_at:W().optional().nullable()}),rp={events_24h:0,events_7d:0,by_class_24h:ep,by_class_7d:ep},ip=J({available:K().optional().default(!0),source:W().optional().default(`run_history`),generated_at:W().optional().nullable(),sample_run_count:G().optional().default(0),proxy_note:W().optional().nullable(),event_classes:q(W()).optional().default([`accounting`,`decision`,`evidence`,`state`,`work`]),totals:tp.optional().default(rp),goals:q(np).optional().default([])}).optional().nullable(),ap=J({available:K().optional().default(!1),source:W().optional().default(`run_history`),goal_id:W().optional().nullable(),generated_at:W().optional().nullable(),classification:W().optional().nullable(),delivery_batch_scale:W().optional().nullable(),delivery_outcome:W().optional().nullable(),recommended_action:W().optional().nullable(),json_exists:K().optional().default(!1),markdown_exists:K().optional().default(!1),freshness_window_hours:G().optional().default(24),freshness_status:W().optional().nullable(),is_fresh:K().optional().default(!1),requires_readiness_run:K().optional().default(!0),age_seconds:G().optional().nullable(),age_hours:G().optional().nullable(),freshness_reference_time:W().optional().nullable(),sample_run_count:G().optional().default(0),proxy_note:W().optional().nullable(),reason:W().optional().nullable()}).optional().nullable(),op=J({ok:K().optional().default(!0),registry:W().optional().nullable(),runtime_root:W().optional().nullable(),gate:W().optional().default(`promotion_readiness`),gate_state:W().optional().default(`warning`),can_promote:K().optional().default(!1),should_warn:K().optional().default(!0),non_blocking:K().optional().default(!0),recommended_action:W().optional().nullable(),warning_message:W().optional().nullable(),readiness:ap.default(null)}).optional().nullable(),sp=J({decision_count:G().optional().default(0),stale_count:G().optional().default(0),rebase_required_count:G().optional().default(0),fresh_count:G().optional().default(0)}),cp=J({goal_id:W(),decision_kind:W().optional().nullable(),decision_at:W().optional().nullable(),classification:W().optional().nullable(),age_days:G().optional().nullable(),stale_by_age:K().optional().default(!1),newer_event_count_7d:G().optional().default(0),newer_event_classes_7d:$f.optional().default(ep),freshness_state:W().optional().nullable(),requires_decision_point_rebase:K().optional().default(!1),reason:W().optional().nullable()}),lp=J({available:K().optional().default(!0),source:W().optional().default(`run_history`),generated_at:W().optional().nullable(),sample_run_count:G().optional().default(0),window_days:G().optional().default(7),proxy_note:W().optional().nullable(),summary:sp.optional().default({decision_count:0,stale_count:0,rebase_required_count:0,fresh_count:0}),items:q(cp).optional().default([])}).optional().nullable(),up=J({schema_version:G().optional().default(0),minimum_dashboard_schema_version:G().optional().default(2),producer:W().optional().nullable(),reload_hint:W().optional().nullable()}).optional().default({schema_version:0,minimum_dashboard_schema_version:2,producer:null,reload_hint:`scripts/macos-dashboard-launchagent.sh restart`}),dp=J({schema_version:X(`loopx_goal_projection_scope_v0`),scope:Y([`all`,`active`,`stopped`]),complete:K(),projected_goal_count:G().int().nonnegative(),registry_goal_count:G().int().nonnegative(),registry_revision:W().optional().nullable()}),fp=J({source:W().optional().default(`serve-status`),status_url:W().optional().nullable(),health_url:W().optional().nullable(),review_material_url:W().optional().nullable(),presentation_surfaces_url:W().optional().nullable(),presentation_detail_url:W().optional().nullable(),periodic_report_index_url:W().optional().nullable(),periodic_report_detail_url:W().optional().nullable(),ssh_hosts_url:W().optional().nullable(),reward_dry_run_url:W().optional().nullable(),reward_append_url:W().optional().nullable(),reward_write_enabled:K().optional().default(!1),configure_goal_dry_run_url:W().optional().nullable(),configure_goal_apply_url:W().optional().nullable(),control_plane_write_enabled:K().optional().default(!1)}).optional().nullable(),pp=J({extension_id:W().min(1),surface_id:W().regex(/^[a-z][a-z0-9]*(?:-[a-z0-9]+)*$/),extension_revision:W().min(1),payload_sha256:W().regex(/^[0-9a-f]{64}$/)}).strict(),mp=J({extension_id:W().min(1),extension_revision:W().min(1),surface_id:W().regex(/^[a-z][a-z0-9]*(?:-[a-z0-9]+)*$/),surface_kind:W().regex(/^[a-z][a-z0-9]*(?:_[a-z0-9]+)*$/),title:W().min(1),view_schema:W().regex(/^[a-z][a-z0-9_]*_v\d+$/),visibility:Y([`public-safe`,`owner-only`]),goal_id:W().min(1).nullable(),generated_at:W().min(1).nullable(),review_due_at:W().min(1).nullable(),diagnostic:W().min(1).nullable(),empty_state_title:W().min(1),empty_state_detail:W().min(1)}),hp=dd([mp.extend({state:Y([`ready`,`review_due`]),goal_id:W().min(1),generated_at:W().min(1),detail_ref:pp}).strict(),mp.extend({state:X(`empty`),detail_ref:sd().optional()}).strict(),mp.extend({state:X(`invalid`),diagnostic:W().min(1),detail_ref:sd().optional()}).strict()]),gp=J({schema_version:X(`extension_presentation_surfaces_v0`),count:G().int().nonnegative(),ready_count:G().int().nonnegative(),review_due_count:G().int().nonnegative(),empty_count:G().int().nonnegative(),invalid_count:G().int().nonnegative(),items:q(hp)}).strict(),_p={schema_version:`extension_presentation_surfaces_v0`,count:0,ready_count:0,review_due_count:0,empty_count:0,invalid_count:0,items:[]};J({ok:X(!0),presentation_surfaces:gp}).strict();var vp=J({goal_id:W().min(1),agent_id:W().min(1),generation_id:W().min(1),content_sha256:W().regex(/^sha256:[0-9a-f]{64}$/)}).strict(),yp=J({goal_id:W().min(1),agent_id:W().min(1),generation_id:W().min(1),publication_id:W().min(1),delivered_at:W().min(1),predecessor_publication_id:W().min(1).nullable().optional(),detail_ref:vp}).strict(),bp=J({schema_version:X(`periodic_report_workspace_index_v0`),count:G().int().nonnegative(),items:q(yp)}),xp=bp.extend({returned_count:G().int().nonnegative(),total_count:G().int().nonnegative(),limit:G().int().nonnegative(),offset:G().int().nonnegative(),truncated:K()}).strict(),Sp=bp.strict().transform(e=>({...e,returned_count:e.count,total_count:e.count,limit:e.count,offset:0,truncated:!1})),Cp=J({ok:X(!0),periodic_reports:dd([xp,Sp])}).strict(),wp=J({schema_version:X(`periodic_report_workspace_projection_v0`),goal_id:W().min(1),agent_id:W().min(1),generation_id:W().min(1),generated_at:W().min(1),title:W().min(1),summary:W().min(1),content_sha256:W().regex(/^sha256:[0-9a-f]{64}$/),period_window:J({start_at:W().min(1),end_at:W().min(1)}).strict(),interaction:J({attention_kind:X(`progress`),interaction:X(`inform`),delivery:X(`surface`),form:X(`milestone_report`),writable:X(!1)}).strict(),delta:J({added_count:G().int().nonnegative(),changed_count:G().int().nonnegative(),item_count:G().int().positive(),items:q(J({fact_id:W().min(1),source_ref:W().min(1),title:W().min(1),summary:W().min(1),status:W().min(1),content_kind:W().min(1),change_kind:Y([`added`,`changed`]),previous_status:W().min(1).optional()}).strict())}).strict(),publication:J({publication_id:W().min(1),delivered_at:W().min(1),predecessor_publication_id:W().min(1).nullable().optional(),cursor_id:W().min(1)}).strict(),truth_contract:J({published_cursor_is_source_of_truth:X(!0),generation_receipt_is_delivery_receipt:X(!1),projection_is_writable:X(!1),browser_write_api:X(!1)}).strict()}).strict(),Tp=J({ok:X(!0),projection:wp}).strict(),Ep=J({ok:K(),registry:W(),runtime_root:W(),goal_count:G(),run_count:G(),status_contract:up,goal_projection:dp.optional().nullable().default(null),local_dashboard_api:fp,contract:J({ok:K(),summary:J({errors:G(),warnings:G(),checks:G()}),errors:q(W()),warnings:q(W()),checks:q(W()).optional().default([])}),global_registry:Yf.optional().default({available:!1,ok:!0,registry:``,current_registry:null,current_registry_is_global:!1,global_goal_count:0,current_goal_count:0,source_registry_count:0,summary:{high:0,action:0,info:0,checks:0,findings:0},findings:[],checks:[]}),attention_queue:J({available:K(),item_count:G(),needs_user_or_controller:G(),needs_controller:G().optional().default(0),needs_codex:G(),watching_external_evidence:G(),autonomous_backlog_candidates:kf.optional().nullable(),items:q(Lf)}),run_history:qf.optional().default({available:!1,goal_count:0,run_count:0,goals:[],recent_runs:[]}),event_ledger_summary:ip.default(null),promotion_readiness_summary:ap.default(null),promotion_gate:op.default(null),decision_freshness_summary:lp.default(null),usage_summary:Qf.default(null),todo_index:gf.optional().nullable().default(null),agent_management_projection:Sf.optional().nullable().default(null),goal_channel_notification_projection:wf.optional().nullable().default(null),presentation_surfaces:gp.optional().default(_p)});J({ok:K(),dry_run:K().optional().default(!0),appended:K().optional().default(!1),goal_id:W().optional().nullable(),raw_index_records_before:G().optional().nullable(),preview_id:W().optional().nullable(),selected_run:J({generated_at:W().optional().nullable(),classification:W().optional().nullable(),recommended_action:W().optional().nullable(),json_exists:K().optional().nullable(),markdown_exists:K().optional().nullable()}).optional().nullable(),human_reward:Rf.optional().nullable(),active_state_summary:W().optional().nullable(),project_agent_visibility:J({source_of_truth:W().optional().nullable(),history_command:W().optional().nullable(),active_state_role:W().optional().nullable(),review_packet_role:W().optional().nullable()}).optional().nullable(),error:W().optional().nullable()});function Dp(e,t,n){let r=e.run_history.goals.map(e=>e.id===t&&e.activation_state!==n?{...e,activation_state:n}:e),i=e.attention_queue.items.map(e=>e.goal_id===t&&e.activation_state!==n?{...e,activation_state:n}:e),a=r.some((t,n)=>t!==e.run_history.goals[n]),o=i.some((t,n)=>t!==e.attention_queue.items[n]);return!a&&!o?e:{...e,attention_queue:o?{...e.attention_queue,items:i}:e.attention_queue,run_history:a?{...e.run_history,goals:r}:e.run_history}}function Op(e,t){let n=e.run_history.goals.filter(e=>e.id!==t),r=e.attention_queue.items.filter(e=>e.goal_id!==t);return n.length===e.run_history.goals.length&&r.length===e.attention_queue.items.length?e:{...e,attention_queue:{...e.attention_queue,items:r},run_history:{...e.run_history,goals:n}}}function kp(e){return Ep.parse(e)}function Ap(e){return e instanceof pu?e.issues.map(e=>`${e.path.join(`.`)||`root`}: ${e.message}`).join(`; `):e instanceof Error?e.message:String(e)}var jp=kp(Zd),Mp=J({ok:X(!0),schema_version:X(`loopx_workspace_directory_v1`),registry_revision:W(),goals:q(J({id:W(),display_name:W(),activation_state:Y([`active`,`stopped`]),registry_member:X(!0)}))});function Np(e,t,n={}){if(!e)return{};let r=new Set(n.invalidateGoalIds??[]),i=new Map(e.directory.goals.map(e=>[e.id,e]));return Object.fromEntries(t.goals.flatMap(t=>{let n=i.get(t.id),a=e.snapshots[t.id];return!n||!a||r.has(t.id)||n.display_name!==t.display_name||n.activation_state!==t.activation_state?[]:[[t.id,a]]}))}function Pp(e,t,n){let r=new URL(e,n);r.searchParams.delete(`goal_activation`),r.searchParams.delete(`goal_id`),r.searchParams.delete(`view`);for(let[e,n]of Object.entries(t))r.searchParams.set(e,n);return r.toString()}async function Fp(e,t){let n=await fetch(Pp(e,{view:`workspace-directory`},t),{cache:`no-store`,signal:AbortSignal.timeout(5e3)});if(!n.ok)return null;let r=Mp.safeParse(await n.json());return r.success?r.data:null}function Ip(e){return kp({ok:!0,registry:``,runtime_root:``,goal_count:e.goals.length,run_count:0,local_dashboard_api:{},contract:{ok:!0,summary:{errors:0,warnings:0,checks:0},errors:[],warnings:[]},attention_queue:{available:!1,item_count:0,needs_user_or_controller:0,needs_codex:0,watching_external_evidence:0,items:[]},run_history:{available:!1,goal_count:e.goals.length,run_count:0,goals:e.goals,recent_runs:[]}})}async function Lp(e,t){if(!e.body)return`service`;let n=e.body.getReader(),r=()=>{n.cancel().catch(()=>{})};t.addEventListener(`abort`,r,{once:!0});let i=new Uint8Array(16384),a=0;try{for(t.throwIfAborted();;){let{done:e,value:r}=await n.read();if(t.throwIfAborted(),e)break;if(a+r.byteLength>i.byteLength)return`service`;i.set(r,a),a+=r.byteLength}let e=JSON.parse(new TextDecoder().decode(i.subarray(0,a)));return typeof e==`object`&&e&&!Array.isArray(e)&&`error_code`in e&&e.error_code===`workspace_status_access_denied`?`access`:`service`}catch{return t.throwIfAborted(),`service`}finally{t.removeEventListener(`abort`,r),r(),n.releaseLock()}}async function Rp(e,t,n,r,i,a,o){let s=[...n.goals],c=new Map;async function l(){for(;s.length&&i()&&!o?.aborted;){let l=s.findIndex(e=>e.id===a()),u=l>=0?l:s.findIndex(e=>e.activation_state===`active`);if(u<0)return;let d=s.splice(u,1)[0],f=(c.get(d.id)??0)+1;c.set(d.id,f);let p=new AbortController,m=!1,h=()=>p.abort();o?.addEventListener(`abort`,h,{once:!0});let g=setTimeout(()=>{m=!0,p.abort()},3e4),_=null;try{let a=await fetch(Pp(e,{goal_id:d.id},t),{cache:`no-store`,signal:p.signal});if(!a.ok)_=a.status===409?`revision`:a.status>=500?await Lp(a,p.signal):`scope`,p.signal.throwIfAborted();else{let e=await a.json();if(e.workspace_registry_revision!==n.registry_revision)_=`revision`;else{let t=kp(e);!t.run_history.goals.some(e=>e.id===d.id)||t.run_history.goals.some(e=>e.id!==d.id)?_=`scope`:i()&&!o?.aborted&&r(d.id,t,null)}}}catch(e){_=m?`timeout`:e instanceof TypeError?`network`:`invalid`}finally{clearTimeout(g),o?.removeEventListener(`abort`,h)}if(!i()||o?.aborted)return;_&&[`timeout`,`network`,`service`].includes(_)&&f<3?(await new Promise(e=>setTimeout(e,f*1e3)),s.push(d)):_&&r(d.id,null,_)}}await Promise.all([l(),l()])}var zp=(...e)=>e.filter((e,t,n)=>!!e&&e.trim()!==``&&n.indexOf(e)===t).join(` `).trim(),Bp=e=>e.replace(/([a-z0-9])([A-Z])/g,`$1-$2`).toLowerCase(),Vp=e=>e.replace(/^([A-Z])|[\s-_]+(\w)/g,(e,t,n)=>n?n.toUpperCase():t.toLowerCase()),Hp=e=>{let t=Vp(e);return t.charAt(0).toUpperCase()+t.slice(1)},Up={xmlns:`http://www.w3.org/2000/svg`,width:24,height:24,viewBox:`0 0 24 24`,fill:`none`,stroke:`currentColor`,strokeWidth:2,strokeLinecap:`round`,strokeLinejoin:`round`},Wp=e=>{for(let t in e)if(t.startsWith(`aria-`)||t===`role`||t===`title`)return!0;return!1},Gp=(0,B.createContext)({}),Kp=()=>(0,B.useContext)(Gp),qp=(0,B.forwardRef)(({color:e,size:t,strokeWidth:n,absoluteStrokeWidth:r,className:i=``,children:a,iconNode:o,...s},c)=>{let{size:l=24,strokeWidth:u=2,absoluteStrokeWidth:d=!1,color:f=`currentColor`,className:p=``}=Kp()??{},m=r??d?Number(n??u)*24/Number(t??l):n??u;return(0,B.createElement)(`svg`,{ref:c,...Up,width:t??l??Up.width,height:t??l??Up.height,stroke:e??f,strokeWidth:m,className:zp(`lucide`,p,i),...!a&&!Wp(s)&&{"aria-hidden":`true`},...s},[...o.map(([e,t])=>(0,B.createElement)(e,t)),...Array.isArray(a)?a:[a]])}),Z=(e,t)=>{let n=(0,B.forwardRef)(({className:n,...r},i)=>(0,B.createElement)(qp,{ref:i,iconNode:t,className:zp(`lucide-${Bp(Hp(e))}`,`lucide-${e}`,n),...r}));return n.displayName=Hp(e),n},Jp=Z(`activity`,[[`path`,{d:`M22 12h-2.48a2 2 0 0 0-1.93 1.46l-2.35 8.36a.25.25 0 0 1-.48 0L9.24 2.18a.25.25 0 0 0-.48 0l-2.35 8.36A2 2 0 0 1 4.49 12H2`,key:`169zse`}]]),Yp=Z(`arrow-down`,[[`path`,{d:`M12 5v14`,key:`s699le`}],[`path`,{d:`m19 12-7 7-7-7`,key:`1idqje`}]]),Xp=Z(`arrow-left`,[[`path`,{d:`m12 19-7-7 7-7`,key:`1l729n`}],[`path`,{d:`M19 12H5`,key:`x3x0zl`}]]),Zp=Z(`arrow-right`,[[`path`,{d:`M5 12h14`,key:`1ays0h`}],[`path`,{d:`m12 5 7 7-7 7`,key:`xquz4c`}]]),Qp=Z(`arrow-up-down`,[[`path`,{d:`m21 16-4 4-4-4`,key:`f6ql7i`}],[`path`,{d:`M17 20V4`,key:`1ejh1v`}],[`path`,{d:`m3 8 4-4 4 4`,key:`11wl7u`}],[`path`,{d:`M7 4v16`,key:`1glfcx`}]]),$p=Z(`arrow-up`,[[`path`,{d:`m5 12 7-7 7 7`,key:`hav0vg`}],[`path`,{d:`M12 19V5`,key:`x0mq9r`}]]),em=Z(`badge-check`,[[`path`,{d:`M3.85 8.62a4 4 0 0 1 4.78-4.77 4 4 0 0 1 6.74 0 4 4 0 0 1 4.78 4.78 4 4 0 0 1 0 6.74 4 4 0 0 1-4.77 4.78 4 4 0 0 1-6.75 0 4 4 0 0 1-4.78-4.77 4 4 0 0 1 0-6.76Z`,key:`3c2336`}],[`path`,{d:`m9 12 2 2 4-4`,key:`dzmm74`}]]),tm=Z(`bell`,[[`path`,{d:`M10.268 21a2 2 0 0 0 3.464 0`,key:`vwvbt9`}],[`path`,{d:`M3.262 15.326A1 1 0 0 0 4 17h16a1 1 0 0 0 .74-1.673C19.41 13.956 18 12.499 18 8A6 6 0 0 0 6 8c0 4.499-1.411 5.956-2.738 7.326`,key:`11g9vi`}]]),nm=Z(`bot`,[[`path`,{d:`M12 8V4H8`,key:`hb8ula`}],[`rect`,{width:`16`,height:`12`,x:`4`,y:`8`,rx:`2`,key:`enze0r`}],[`path`,{d:`M2 14h2`,key:`vft8re`}],[`path`,{d:`M20 14h2`,key:`4cs60a`}],[`path`,{d:`M15 13v2`,key:`1xurst`}],[`path`,{d:`M9 13v2`,key:`rq6x2g`}]]),rm=Z(`braces`,[[`path`,{d:`M8 3H7a2 2 0 0 0-2 2v5a2 2 0 0 1-2 2 2 2 0 0 1 2 2v5c0 1.1.9 2 2 2h1`,key:`ezmyqa`}],[`path`,{d:`M16 21h1a2 2 0 0 0 2-2v-5c0-1.1.9-2 2-2a2 2 0 0 1-2-2V5a2 2 0 0 0-2-2h-1`,key:`e1hn23`}]]),im=Z(`calendar-clock`,[[`path`,{d:`M16 14v2.2l1.6 1`,key:`fo4ql5`}],[`path`,{d:`M16 2v4`,key:`4m81vk`}],[`path`,{d:`M21 7.5V6a2 2 0 0 0-2-2H5a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h3.5`,key:`1osxxc`}],[`path`,{d:`M3 10h5`,key:`r794hk`}],[`path`,{d:`M8 2v4`,key:`1cmpym`}],[`circle`,{cx:`16`,cy:`16`,r:`6`,key:`qoo3c4`}]]),am=Z(`check`,[[`path`,{d:`M20 6 9 17l-5-5`,key:`1gmf2c`}]]),om=Z(`chevron-down`,[[`path`,{d:`m6 9 6 6 6-6`,key:`qrunsl`}]]),sm=Z(`chevron-right`,[[`path`,{d:`m9 18 6-6-6-6`,key:`mthhwq`}]]),cm=Z(`chevron-up`,[[`path`,{d:`m18 15-6-6-6 6`,key:`153udz`}]]),lm=Z(`circle-alert`,[[`circle`,{cx:`12`,cy:`12`,r:`10`,key:`1mglay`}],[`line`,{x1:`12`,x2:`12`,y1:`8`,y2:`12`,key:`1pkeuh`}],[`line`,{x1:`12`,x2:`12.01`,y1:`16`,y2:`16`,key:`4dfq90`}]]),um=Z(`circle-check`,[[`circle`,{cx:`12`,cy:`12`,r:`10`,key:`1mglay`}],[`path`,{d:`m9 12 2 2 4-4`,key:`dzmm74`}]]),dm=Z(`clipboard-check`,[[`rect`,{width:`8`,height:`4`,x:`8`,y:`2`,rx:`1`,ry:`1`,key:`tgr4d6`}],[`path`,{d:`M16 4h2a2 2 0 0 1 2 2v14a2 2 0 0 1-2 2H6a2 2 0 0 1-2-2V6a2 2 0 0 1 2-2h2`,key:`116196`}],[`path`,{d:`m9 14 2 2 4-4`,key:`df797q`}]]),fm=Z(`code-xml`,[[`path`,{d:`m18 16 4-4-4-4`,key:`1inbqp`}],[`path`,{d:`m6 8-4 4 4 4`,key:`15zrgr`}],[`path`,{d:`m14.5 4-5 16`,key:`e7oirm`}]]),pm=Z(`copy`,[[`rect`,{width:`14`,height:`14`,x:`8`,y:`8`,rx:`2`,ry:`2`,key:`17jyea`}],[`path`,{d:`M4 16c-1.1 0-2-.9-2-2V4c0-1.1.9-2 2-2h10c1.1 0 2 .9 2 2`,key:`zix9uf`}]]),mm=Z(`database`,[[`ellipse`,{cx:`12`,cy:`5`,rx:`9`,ry:`3`,key:`msslwz`}],[`path`,{d:`M3 5V19A9 3 0 0 0 21 19V5`,key:`1wlel7`}],[`path`,{d:`M3 12A9 3 0 0 0 21 12`,key:`mv7ke4`}]]),hm=Z(`download`,[[`path`,{d:`M12 15V3`,key:`m9g1x1`}],[`path`,{d:`M21 15v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-4`,key:`ih7n3h`}],[`path`,{d:`m7 10 5 5 5-5`,key:`brsn70`}]]),gm=Z(`ellipsis`,[[`circle`,{cx:`12`,cy:`12`,r:`1`,key:`41hilf`}],[`circle`,{cx:`19`,cy:`12`,r:`1`,key:`1wjl8i`}],[`circle`,{cx:`5`,cy:`12`,r:`1`,key:`1pcz8c`}]]),_m=Z(`external-link`,[[`path`,{d:`M15 3h6v6`,key:`1q9fwt`}],[`path`,{d:`M10 14 21 3`,key:`gplh6r`}],[`path`,{d:`M18 13v6a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V8a2 2 0 0 1 2-2h6`,key:`a6xqqp`}]]),vm=Z(`eye`,[[`path`,{d:`M2.062 12.348a1 1 0 0 1 0-.696 10.75 10.75 0 0 1 19.876 0 1 1 0 0 1 0 .696 10.75 10.75 0 0 1-19.876 0`,key:`1nclc0`}],[`circle`,{cx:`12`,cy:`12`,r:`3`,key:`1v7zrd`}]]),ym=Z(`file-braces`,[[`path`,{d:`M6 22a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h8a2.4 2.4 0 0 1 1.704.706l3.588 3.588A2.4 2.4 0 0 1 20 8v12a2 2 0 0 1-2 2z`,key:`1oefj6`}],[`path`,{d:`M14 2v5a1 1 0 0 0 1 1h5`,key:`wfsgrz`}],[`path`,{d:`M10 12a1 1 0 0 0-1 1v1a1 1 0 0 1-1 1 1 1 0 0 1 1 1v1a1 1 0 0 0 1 1`,key:`1oajmo`}],[`path`,{d:`M14 18a1 1 0 0 0 1-1v-1a1 1 0 0 1 1-1 1 1 0 0 1-1-1v-1a1 1 0 0 0-1-1`,key:`mpwhp6`}]]),bm=Z(`file-check-corner`,[[`path`,{d:`M10.5 22H6a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h8a2.4 2.4 0 0 1 1.706.706l3.588 3.588A2.4 2.4 0 0 1 20 8v6`,key:`g5mvt7`}],[`path`,{d:`M14 2v5a1 1 0 0 0 1 1h5`,key:`wfsgrz`}],[`path`,{d:`m14 20 2 2 4-4`,key:`15kota`}]]),xm=Z(`file-text`,[[`path`,{d:`M6 22a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h8a2.4 2.4 0 0 1 1.704.706l3.588 3.588A2.4 2.4 0 0 1 20 8v12a2 2 0 0 1-2 2z`,key:`1oefj6`}],[`path`,{d:`M14 2v5a1 1 0 0 0 1 1h5`,key:`wfsgrz`}],[`path`,{d:`M10 9H8`,key:`b1mrlr`}],[`path`,{d:`M16 13H8`,key:`t4e002`}],[`path`,{d:`M16 17H8`,key:`z1uh3a`}]]),Sm=Z(`git-branch`,[[`path`,{d:`M15 6a9 9 0 0 0-9 9V3`,key:`1cii5b`}],[`circle`,{cx:`18`,cy:`6`,r:`3`,key:`1h7g24`}],[`circle`,{cx:`6`,cy:`18`,r:`3`,key:`fqmcym`}]]),Cm=Z(`git-compare-arrows`,[[`circle`,{cx:`5`,cy:`6`,r:`3`,key:`1qnov2`}],[`path`,{d:`M12 6h5a2 2 0 0 1 2 2v7`,key:`1yj91y`}],[`path`,{d:`m15 9-3-3 3-3`,key:`1lwv8l`}],[`circle`,{cx:`19`,cy:`18`,r:`3`,key:`1qljk2`}],[`path`,{d:`M12 18H7a2 2 0 0 1-2-2V9`,key:`16sdep`}],[`path`,{d:`m9 15 3 3-3 3`,key:`1m3kbl`}]]),wm=Z(`info`,[[`circle`,{cx:`12`,cy:`12`,r:`10`,key:`1mglay`}],[`path`,{d:`M12 16v-4`,key:`1dtifu`}],[`path`,{d:`M12 8h.01`,key:`e9boi3`}]]),Tm=Z(`key-round`,[[`path`,{d:`M2.586 17.414A2 2 0 0 0 2 18.828V21a1 1 0 0 0 1 1h3a1 1 0 0 0 1-1v-1a1 1 0 0 1 1-1h1a1 1 0 0 0 1-1v-1a1 1 0 0 1 1-1h.172a2 2 0 0 0 1.414-.586l.814-.814a6.5 6.5 0 1 0-4-4z`,key:`1s6t7t`}],[`circle`,{cx:`16.5`,cy:`7.5`,r:`.5`,fill:`currentColor`,key:`w0ekpg`}]]),Em=Z(`languages`,[[`path`,{d:`m5 8 6 6`,key:`1wu5hv`}],[`path`,{d:`m4 14 6-6 2-3`,key:`1k1g8d`}],[`path`,{d:`M2 5h12`,key:`or177f`}],[`path`,{d:`M7 2h1`,key:`1t2jsx`}],[`path`,{d:`m22 22-5-10-5 10`,key:`don7ne`}],[`path`,{d:`M14 18h6`,key:`1m8k6r`}]]),Dm=Z(`layout-dashboard`,[[`rect`,{width:`7`,height:`9`,x:`3`,y:`3`,rx:`1`,key:`10lvy0`}],[`rect`,{width:`7`,height:`5`,x:`14`,y:`3`,rx:`1`,key:`16une8`}],[`rect`,{width:`7`,height:`9`,x:`14`,y:`12`,rx:`1`,key:`1hutg5`}],[`rect`,{width:`7`,height:`5`,x:`3`,y:`16`,rx:`1`,key:`ldoo1y`}]]),Om=Z(`list-plus`,[[`path`,{d:`M16 5H3`,key:`m91uny`}],[`path`,{d:`M11 12H3`,key:`51ecnj`}],[`path`,{d:`M16 19H3`,key:`zzsher`}],[`path`,{d:`M18 9v6`,key:`1twb98`}],[`path`,{d:`M21 12h-6`,key:`bt1uis`}]]),km=Z(`loader-circle`,[[`path`,{d:`M21 12a9 9 0 1 1-6.219-8.56`,key:`13zald`}]]),Am=Z(`maximize-2`,[[`path`,{d:`M15 3h6v6`,key:`1q9fwt`}],[`path`,{d:`m21 3-7 7`,key:`1l2asr`}],[`path`,{d:`m3 21 7-7`,key:`tjx5ai`}],[`path`,{d:`M9 21H3v-6`,key:`wtvkvv`}]]),jm=Z(`menu`,[[`path`,{d:`M4 5h16`,key:`1tepv9`}],[`path`,{d:`M4 12h16`,key:`1lakjw`}],[`path`,{d:`M4 19h16`,key:`1djgab`}]]),Mm=Z(`message-circle-question-mark`,[[`path`,{d:`M2.992 16.342a2 2 0 0 1 .094 1.167l-1.065 3.29a1 1 0 0 0 1.236 1.168l3.413-.998a2 2 0 0 1 1.099.092 10 10 0 1 0-4.777-4.719`,key:`1sd12s`}],[`path`,{d:`M9.09 9a3 3 0 0 1 5.83 1c0 2-3 3-3 3`,key:`1u773s`}],[`path`,{d:`M12 17h.01`,key:`p32p05`}]]),Nm=Z(`message-square-text`,[[`path`,{d:`M22 17a2 2 0 0 1-2 2H6.828a2 2 0 0 0-1.414.586l-2.202 2.202A.71.71 0 0 1 2 21.286V5a2 2 0 0 1 2-2h16a2 2 0 0 1 2 2z`,key:`18887p`}],[`path`,{d:`M7 11h10`,key:`1twpyw`}],[`path`,{d:`M7 15h6`,key:`d9of3u`}],[`path`,{d:`M7 7h8`,key:`af5zfr`}]]),Pm=Z(`minimize-2`,[[`path`,{d:`m14 10 7-7`,key:`oa77jy`}],[`path`,{d:`M20 10h-6V4`,key:`mjg0md`}],[`path`,{d:`m3 21 7-7`,key:`tjx5ai`}],[`path`,{d:`M4 14h6v6`,key:`rmj7iw`}]]),Fm=Z(`moon`,[[`path`,{d:`M20.985 12.486a9 9 0 1 1-9.473-9.472c.405-.022.617.46.402.803a6 6 0 0 0 8.268 8.268c.344-.215.825-.004.803.401`,key:`kfwtm`}]]),Im=Z(`palette`,[[`path`,{d:`M12 22a1 1 0 0 1 0-20 10 9 0 0 1 10 9 5 5 0 0 1-5 5h-2.25a1.75 1.75 0 0 0-1.4 2.8l.3.4a1.75 1.75 0 0 1-1.4 2.8z`,key:`e79jfc`}],[`circle`,{cx:`13.5`,cy:`6.5`,r:`.5`,fill:`currentColor`,key:`1okk4w`}],[`circle`,{cx:`17.5`,cy:`10.5`,r:`.5`,fill:`currentColor`,key:`f64h9f`}],[`circle`,{cx:`6.5`,cy:`12.5`,r:`.5`,fill:`currentColor`,key:`qy21gx`}],[`circle`,{cx:`8.5`,cy:`7.5`,r:`.5`,fill:`currentColor`,key:`fotxhn`}]]),Lm=Z(`paperclip`,[[`path`,{d:`m16 6-8.414 8.586a2 2 0 0 0 2.829 2.829l8.414-8.586a4 4 0 1 0-5.657-5.657l-8.379 8.551a6 6 0 1 0 8.485 8.485l8.379-8.551`,key:`1miecu`}]]),Rm=Z(`pause`,[[`rect`,{x:`14`,y:`3`,width:`5`,height:`18`,rx:`1`,key:`kaeet6`}],[`rect`,{x:`5`,y:`3`,width:`5`,height:`18`,rx:`1`,key:`1wsw3u`}]]),zm=Z(`play`,[[`path`,{d:`M5 5a2 2 0 0 1 3.008-1.728l11.997 6.998a2 2 0 0 1 .003 3.458l-12 7A2 2 0 0 1 5 19z`,key:`10ikf1`}]]),Bm=Z(`plus`,[[`path`,{d:`M5 12h14`,key:`1ays0h`}],[`path`,{d:`M12 5v14`,key:`s699le`}]]),Vm=Z(`radio`,[[`path`,{d:`M16.247 7.761a6 6 0 0 1 0 8.478`,key:`1fwjs5`}],[`path`,{d:`M19.075 4.933a10 10 0 0 1 0 14.134`,key:`ehdyv1`}],[`path`,{d:`M4.925 19.067a10 10 0 0 1 0-14.134`,key:`1q22gi`}],[`path`,{d:`M7.753 16.239a6 6 0 0 1 0-8.478`,key:`r2q7qm`}],[`circle`,{cx:`12`,cy:`12`,r:`2`,key:`1c9p78`}]]),Hm=Z(`refresh-cw`,[[`path`,{d:`M3 12a9 9 0 0 1 9-9 9.75 9.75 0 0 1 6.74 2.74L21 8`,key:`v9h5vc`}],[`path`,{d:`M21 3v5h-5`,key:`1q7to0`}],[`path`,{d:`M21 12a9 9 0 0 1-9 9 9.75 9.75 0 0 1-6.74-2.74L3 16`,key:`3uifl3`}],[`path`,{d:`M8 16H3v5`,key:`1cv678`}]]),Um=Z(`rotate-ccw`,[[`path`,{d:`M3 12a9 9 0 1 0 9-9 9.75 9.75 0 0 0-6.74 2.74L3 8`,key:`1357e3`}],[`path`,{d:`M3 3v5h5`,key:`1xhq8a`}]]),Wm=Z(`rotate-cw`,[[`path`,{d:`M21 12a9 9 0 1 1-9-9c2.52 0 4.93 1 6.74 2.74L21 8`,key:`1p45f6`}],[`path`,{d:`M21 3v5h-5`,key:`1q7to0`}]]),Gm=Z(`search`,[[`path`,{d:`m21 21-4.34-4.34`,key:`14j7rj`}],[`circle`,{cx:`11`,cy:`11`,r:`8`,key:`4ej97u`}]]),Km=Z(`send`,[[`path`,{d:`M14.536 21.686a.5.5 0 0 0 .937-.024l6.5-19a.496.496 0 0 0-.635-.635l-19 6.5a.5.5 0 0 0-.024.937l7.93 3.18a2 2 0 0 1 1.112 1.11z`,key:`1ffxy3`}],[`path`,{d:`m21.854 2.147-10.94 10.939`,key:`12cjpa`}]]),qm=Z(`server-cog`,[[`path`,{d:`m10.852 14.772-.383.923`,key:`11vil6`}],[`path`,{d:`M13.148 14.772a3 3 0 1 0-2.296-5.544l-.383-.923`,key:`1v3clb`}],[`path`,{d:`m13.148 9.228.383-.923`,key:`t2zzyc`}],[`path`,{d:`m13.53 15.696-.382-.924a3 3 0 1 1-2.296-5.544`,key:`1bxfiv`}],[`path`,{d:`m14.772 10.852.923-.383`,key:`k9m8cz`}],[`path`,{d:`m14.772 13.148.923.383`,key:`1xvhww`}],[`path`,{d:`M4.5 10H4a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h16a2 2 0 0 1 2 2v4a2 2 0 0 1-2 2h-.5`,key:`tn8das`}],[`path`,{d:`M4.5 14H4a2 2 0 0 0-2 2v4a2 2 0 0 0 2 2h16a2 2 0 0 0 2-2v-4a2 2 0 0 0-2-2h-.5`,key:`1g2pve`}],[`path`,{d:`M6 18h.01`,key:`uhywen`}],[`path`,{d:`M6 6h.01`,key:`1utrut`}],[`path`,{d:`m9.228 10.852-.923-.383`,key:`1wtb30`}],[`path`,{d:`m9.228 13.148-.923.383`,key:`1a830x`}]]),Jm=Z(`server`,[[`rect`,{width:`20`,height:`8`,x:`2`,y:`2`,rx:`2`,ry:`2`,key:`ngkwjq`}],[`rect`,{width:`20`,height:`8`,x:`2`,y:`14`,rx:`2`,ry:`2`,key:`iecqi9`}],[`line`,{x1:`6`,x2:`6.01`,y1:`6`,y2:`6`,key:`16zg32`}],[`line`,{x1:`6`,x2:`6.01`,y1:`18`,y2:`18`,key:`nzw8ys`}]]),Ym=Z(`settings-2`,[[`path`,{d:`M14 17H5`,key:`gfn3mx`}],[`path`,{d:`M19 7h-9`,key:`6i9tg`}],[`circle`,{cx:`17`,cy:`17`,r:`3`,key:`18b49y`}],[`circle`,{cx:`7`,cy:`7`,r:`3`,key:`dfmy0x`}]]),Xm=Z(`shield-check`,[[`path`,{d:`M20 13c0 5-3.5 7.5-7.66 8.95a1 1 0 0 1-.67-.01C7.5 20.5 4 18 4 13V6a1 1 0 0 1 1-1c2 0 4.5-1.2 6.24-2.72a1.17 1.17 0 0 1 1.52 0C14.51 3.81 17 5 19 5a1 1 0 0 1 1 1z`,key:`oel41y`}],[`path`,{d:`m9 12 2 2 4-4`,key:`dzmm74`}]]),Zm=Z(`sliders-horizontal`,[[`path`,{d:`M10 5H3`,key:`1qgfaw`}],[`path`,{d:`M12 19H3`,key:`yhmn1j`}],[`path`,{d:`M14 3v4`,key:`1sua03`}],[`path`,{d:`M16 17v4`,key:`1q0r14`}],[`path`,{d:`M21 12h-9`,key:`1o4lsq`}],[`path`,{d:`M21 19h-5`,key:`1rlt1p`}],[`path`,{d:`M21 5h-7`,key:`1oszz2`}],[`path`,{d:`M8 10v4`,key:`tgpxqk`}],[`path`,{d:`M8 12H3`,key:`a7s4jb`}]]),Qm=Z(`sparkles`,[[`path`,{d:`M11.017 2.814a1 1 0 0 1 1.966 0l1.051 5.558a2 2 0 0 0 1.594 1.594l5.558 1.051a1 1 0 0 1 0 1.966l-5.558 1.051a2 2 0 0 0-1.594 1.594l-1.051 5.558a1 1 0 0 1-1.966 0l-1.051-5.558a2 2 0 0 0-1.594-1.594l-5.558-1.051a1 1 0 0 1 0-1.966l5.558-1.051a2 2 0 0 0 1.594-1.594z`,key:`1s2grr`}],[`path`,{d:`M20 2v4`,key:`1rf3ol`}],[`path`,{d:`M22 4h-4`,key:`gwowj6`}],[`circle`,{cx:`4`,cy:`20`,r:`2`,key:`6kqj1y`}]]),$m=Z(`square`,[[`rect`,{width:`18`,height:`18`,x:`3`,y:`3`,rx:`2`,key:`afitv7`}]]),eh=Z(`sun`,[[`circle`,{cx:`12`,cy:`12`,r:`4`,key:`4exip2`}],[`path`,{d:`M12 2v2`,key:`tus03m`}],[`path`,{d:`M12 20v2`,key:`1lh1kg`}],[`path`,{d:`m4.93 4.93 1.41 1.41`,key:`149t6j`}],[`path`,{d:`m17.66 17.66 1.41 1.41`,key:`ptbguv`}],[`path`,{d:`M2 12h2`,key:`1t8f8n`}],[`path`,{d:`M20 12h2`,key:`1q8mjw`}],[`path`,{d:`m6.34 17.66-1.41 1.41`,key:`1m8zz5`}],[`path`,{d:`m19.07 4.93-1.41 1.41`,key:`1shlcs`}]]),th=Z(`test-tube-diagonal`,[[`path`,{d:`M21 7 6.82 21.18a2.83 2.83 0 0 1-3.99-.01a2.83 2.83 0 0 1 0-4L17 3`,key:`1ub6xw`}],[`path`,{d:`m16 2 6 6`,key:`1gw87d`}],[`path`,{d:`M12 16H4`,key:`1cjfip`}]]),nh=Z(`trash-2`,[[`path`,{d:`M10 11v6`,key:`nco0om`}],[`path`,{d:`M14 11v6`,key:`outv1u`}],[`path`,{d:`M19 6v14a2 2 0 0 1-2 2H7a2 2 0 0 1-2-2V6`,key:`miytrc`}],[`path`,{d:`M3 6h18`,key:`d0wm0j`}],[`path`,{d:`M8 6V4a2 2 0 0 1 2-2h4a2 2 0 0 1 2 2v2`,key:`e791ji`}]]),rh=Z(`triangle-alert`,[[`path`,{d:`m21.73 18-8-14a2 2 0 0 0-3.48 0l-8 14A2 2 0 0 0 4 21h16a2 2 0 0 0 1.73-3`,key:`wmoenq`}],[`path`,{d:`M12 9v4`,key:`juzpu7`}],[`path`,{d:`M12 17h.01`,key:`p32p05`}]]),ih=Z(`unlink`,[[`path`,{d:`m18.84 12.25 1.72-1.71h-.02a5.004 5.004 0 0 0-.12-7.07 5.006 5.006 0 0 0-6.95 0l-1.72 1.71`,key:`yqzxt4`}],[`path`,{d:`m5.17 11.75-1.71 1.71a5.004 5.004 0 0 0 .12 7.07 5.006 5.006 0 0 0 6.95 0l1.71-1.71`,key:`4qinb0`}],[`line`,{x1:`8`,x2:`8`,y1:`2`,y2:`5`,key:`1041cp`}],[`line`,{x1:`2`,x2:`5`,y1:`8`,y2:`8`,key:`14m1p5`}],[`line`,{x1:`16`,x2:`16`,y1:`19`,y2:`22`,key:`rzdirn`}],[`line`,{x1:`19`,x2:`22`,y1:`16`,y2:`16`,key:`ox905f`}]]),ah=Z(`x`,[[`path`,{d:`M18 6 6 18`,key:`1bl5f8`}],[`path`,{d:`m6 6 12 12`,key:`d8bk6v`}]]);function oh(e){return/^[a-zA-Z][a-zA-Z\d+\-.]*:/.test(e)||e.startsWith(`//`)}function sh(e){return[`localhost`,`127.0.0.1`,`::1`,`[::1]`].includes(e)}function ch(e,t,n){let r=e.trim();if(!r)return{error:`status URL is empty`};let i;try{i=new URL(r,t)}catch{return{error:`status URL is invalid`}}let a=!oh(r),o=sh(i.hostname);return!a&&!o?{error:`${n} must be relative or loopback`}:{source:{isLoopback:o,isRelative:a,url:r}}}function lh(e,t){return ch(e,t,`statusUrl`)}function uh(e,t){let n=ch(e,t,`Ops statusUrl`);return n.error?{error:`${n.error}; use showcase mode for public links.`}:n}function dh(e,t,n){let r=new URL(e,n);return r.searchParams.set(`goal_activation`,t),r.toString()}function fh(e,t){if(!t||!e.isLoopback)return null;try{let n=new URL(e.url,window.location.href),r=new URL(t,n.origin);return sh(r.hostname)?r.toString():null}catch{return null}}function ph(e,t){return{detailUrl:fh(t,e.local_dashboard_api?.periodic_report_detail_url),indexUrl:fh(t,e.local_dashboard_api?.periodic_report_index_url)}}async function mh(e,t){let n=new URL(e);n.searchParams.set(`goal_id`,t),n.searchParams.set(`limit`,`100`),n.searchParams.set(`offset`,`0`);let r=await fetch(n,{cache:`no-store`});if(!r.ok)throw Error(`HTTP ${r.status} while loading published reports`);return Cp.parse(await r.json()).periodic_reports}async function hh(e,t){let n=new URL(e);Object.entries(t).forEach(([e,t])=>n.searchParams.set(e,t));let r=await fetch(n,{cache:`no-store`});if(!r.ok)throw Error(`HTTP ${r.status} while loading published report detail`);return Tp.parse(await r.json()).projection}function gh(e,t,n){let r=e.find(e=>e.agentId===t&&e.available)??e.find(e=>e.agentId===n&&e.available)??e.find(e=>e.available);if(!r)throw Error(`Chat requires at least one available route`);return r}function _h(e){return e.kind===`todo`}function vh(e){return!!(e&&typeof e==`object`&&e.session_invalidated===!0)}var yh=``.replace(/\/+$/,``);function bh(e){return!yh||/^https?:\/\//.test(e)?e:new URL(e,`${yh}/`).toString()}var xh=J({todo_id:W().nullable(),role:W().nullable(),status:W(),priority:W().nullable(),text:W(),action_kind:W().nullable(),task_class:W().nullable(),claimed_by:W().nullable(),evidence:W().nullable()}),Sh=J({goal_id:W(),title:W(),objective:W(),status:W(),waiting_on:W().nullable(),severity:W().nullable(),gate:W(),next_action:W(),top_todo:xh.nullable(),todos:q(xh),evidence:q(W()),quota:J({state:W().nullable(),spent_slots:G().nullable(),allowed_slots:G().nullable(),reason:W().nullable()})});J({ok:K(),schema_version:X(`loopx_chat_status_v0`),selected_goal_id:W().nullable(),goal_count:G(),goals:q(Sh)});var Ch=J({schema_version:W(),executor_endpoint:W(),executor_endpoint_source:W(),executor_endpoint_default_reason:W().optional(),executor_kind:W(),model:W(),model_source:W(),credential_env_var:W(),operator_credential_configured:K(),available:K().nullable(),unavailable_reason:W().nullable()}),wh=J({ok:X(!0),schema_version:Y([`loopx_chat_capabilities_v0`,`loopx_chat_capabilities_v1`]),agent_backend:W(),sandbox:W(),approval_policy:W(),todo_write:W(),goal_subagent_configuration:W().optional(),goal_id:W().nullable(),manager:J({scope:X(`owner_global`),model:W(),reasoning_effort:W(),channel_binding:Ch.optional(),runtime:J({schema_version:X(`manager_runtime_effective_profile_v0`),runtime_profile:Y([`restricted`,`trusted_owner`]),source:W(),configuration_revision:W(),standing_grant:W(),sandbox:W(),approval_policy:W(),tool_classes:q(W()),status:W(),repair:W().optional()})}).optional(),streaming:K().optional(),resume:K().optional(),interrupt:K().optional(),typed_actions:K().optional(),action_kinds:q(W()).optional(),adapters:q(J({agent_id:W(),display_name:W(),adapter_kind:W(),available:K(),streaming:K(),resume:K(),interrupt:K(),location:W().optional(),source:W().optional(),tool_calls:K().optional(),trust_scope:W().optional()})).optional(),lark_cli:J({available:K(),source:W(),version:W().nullable(),error_code:W().nullable()}).optional()}),Th=J({kind:X(`todo`),text:W(),priority:Y([`P0`,`P1`,`P2`]),rationale:W()}),Eh=pd(`kind`,[Th,J({kind:X(`steward_team_plan_preview`),preview:yd(W(),ad())})]),Dh=J({operation:Y([`merge`,`release`,`deploy`,`delete`,`payment`]),target:W().min(1).max(160),summary:W().max(300)}),Oh=J({schema_version:X(`loopx_chat_agent_response_v0`),message:W(),proposals:q(Eh),protected_action:Dh.nullable().optional().default(null),gate:J({kind:W(),summary:W(),next_action:W()}).nullable()}),kh=J({closed:X(!0),ok:X(!0),session_id:W().min(1)});J({dry_run:X(!0),ok:X(!0),preview_id:W().min(1),todo:J({goal_id:W().min(1),text:W(),todo_id:W().optional()})});var Ah=J({schema_version:X(`loopx_chat_todo_receipt_v0`),receipt_id:W().min(1),preview_id:W().min(1),goal_id:W().min(1),todo_id:W().min(1),status:X(`applied`),outcome:Y([`todo_added`,`todo_already_exists`]),already_exists:K(),preview_revision:W().nullable()});J({applied:X(!0),ok:X(!0),receipt:Ah,todo:J({text:W(),todo_id:W()})});var jh=J({model_config:J({model:W(),reasoning_effort:W().optional()}).optional(),mode:W(),spawn_allowed:K(),max_children:G().int().nonnegative(),allowed_domains:q(W()).optional().default([])}).passthrough(),Mh=J({ok:X(!0),dry_run:K(),execute:K(),written:K(),changed:K(),goal_id:W().min(1),changed_fields:q(W()),before:J({orchestration:jh}).passthrough(),after:J({orchestration:jh}).passthrough(),preview_id:W().min(1),feature_summary:J({multi_subagent:Y([`off`,`enabled`])}).passthrough(),global_sync:J({required:K(),executed:K(),readback:J({status:W(),verified:K()}).passthrough()}).passthrough()}),Nh=J({id:W().min(1),outcome:Y([`approved`,`rejected`,`cancelled`]),projectionVerified:K().nullable(),proposal:Th,receipt:Ah.nullable()}).superRefine((e,t)=>{e.outcome===`approved`&&!e.receipt&&t.addIssue({code:`custom`,message:`approved decision history requires a Todo receipt`,path:[`receipt`]}),e.outcome!==`approved`&&e.receipt&&t.addIssue({code:`custom`,message:`zero-write decision history must not include a Todo receipt`,path:[`receipt`]})});J({schema_version:X(`loopx_chat_decision_history_v0`),goal_id:W().min(1),decisions:q(Nh).max(24)});var Ph=class extends Error{payload;constructor(e,t){super(e),this.payload=t}},Fh=Y([`goal.create`,`goal.update`,`goal.lifecycle`,`todo.create`,`todo.update`,`agent.bind`,`heartbeat.bind`,`monitor.create`,`monitor.update`,`gate.resolve`,`run.correct`,`operation.execute`,`team.plan`]),Ih=J({schema_version:X(`loopx_operation_envelope_v0`),lifecycle_state:Y([`prepared`,`awaiting_confirmation`,`claimed`,`outcome_observed`]),operation_id:W().min(1),confirmation_digest:W().min(1),payload_digest:W().min(1),projection_digest:W().min(1),expires_at:W().min(1),delivery:yd(W(),ad()).nullable(),confirmation:yd(W(),ad()).nullable(),claim:yd(W(),ad()).nullable(),outcome:yd(W(),ad()).nullable(),result_delivery:yd(W(),ad()).nullable().optional()}).passthrough(),Lh=J({schema_version:X(`loopx_chat_action_proposal_v1`),proposal_id:W().min(1),action_kind:Fh,summary:W().min(1),normalized_parameters:yd(W(),ad()),context:yd(W(),ad()),expected_state_fingerprint:W().min(1),permission_classification:W().min(1),validation_evidence:q(W().refine(e=>e.trim().length>0,`Validation evidence must be non-blank text`)),available_transitions:q(Y([`apply`,`cancel`,`regenerate`,`reject`,`defer`])),status:Y([`preview_ready`,`applying`,`gated`,`failed`,`rejected`,`deferred`,`cancelled`,`stale`,`applied`]),receipt:yd(W(),ad()).nullable(),stale:yd(W(),ad()).nullable(),gate:yd(W(),ad()).nullable().optional(),error:yd(W(),ad()).nullable().optional(),checkpoint:yd(W(),ad()).nullable().optional(),regenerated_from:W().nullable().optional(),operation:Ih.nullable().optional(),created_at:W(),updated_at:W()}),Rh=J({ok:X(!0),proposal:Lh});async function zh(e){let t=await Gh(`/api/actions/preview`,{method:`POST`,body:JSON.stringify({action_kind:e.actionKind,context:e.context,idempotency_key:e.idempotencyKey,normalized_parameters:e.normalizedParameters,summary:e.summary})});return Rh.parse(t).proposal}var Bh=J({ok:X(!0),schema_version:X(`loopx_chat_action_list_v1`),proposals:q(Lh)});async function Vh(e={}){let t=new URLSearchParams;e.contextKind&&t.set(`context_kind`,e.contextKind),e.goalId&&t.set(`goal_id`,e.goalId);let n=t.size>0?`?${t.toString()}`:``;return Bh.parse(await Gh(`/api/actions${n}`)).proposals}async function Hh(e){let t=await Gh(`/api/actions/${encodeURIComponent(e)}/apply`,{method:`POST`,body:`{}`});return J({ok:X(!0),proposal:Lh,turn:yd(W(),ad()).nullable().optional()}).parse(t)}async function Uh(e){return Rh.parse(await Gh(`/api/actions/${encodeURIComponent(e)}/cancel`,{method:`POST`,body:`{}`})).proposal}async function Wh(e,t){return Rh.parse(await Gh(`/api/actions/${encodeURIComponent(e)}/${t}`,{method:`POST`,body:`{}`})).proposal}async function Gh(e,t){let n;try{n=await fetch(bh(e),{cache:`no-store`,...t,headers:{"Content-Type":`application/json`,...t?.headers}})}catch{throw new Ph(`无法连接 LoopX Chat 服务。请确认 Dashboard 与 Chat 服务已启动且来自同一版本。`,{error_code:`chat_api_unavailable`})}let r=await n.text(),i=null;if(r.trim())try{i=JSON.parse(r)}catch{i=null}let a=i&&typeof i==`object`&&!Array.isArray(i)?i:{};if(!n.ok){let e=(a.proposal&&typeof a.proposal==`object`?a.proposal:null)?.status===`stale`?`来源状态已变化,请重新生成预览。`:null,t=n.status>=500?`LoopX Chat 服务暂时不可用(HTTP ${n.status})。请确认 Dashboard 与 Chat 服务已启动且来自同一版本。`:`LoopX Chat 请求失败(HTTP ${n.status})。`;throw new Ph(e??String(a.error||t),Object.keys(a).length?a:{error_code:`chat_api_unavailable`,http_status:n.status})}if(i===null)throw new Ph(`LoopX Chat 服务返回了无法识别的响应(HTTP ${n.status})。请确认 Dashboard 与 Chat 服务来自同一版本。`,{error_code:`invalid_chat_api_response`,http_status:n.status});return i}async function Kh(){return wh.parse(await Gh(`/api/chat/capabilities`))}async function qh(e){return Gh(`/api/chat/projection-messages`,{method:`POST`,body:JSON.stringify({answer:e.answer,context_kind:e.contextKind,goal_id:e.goalId,question:e.question})})}async function Jh(e,t,n=`resume_latest`,r=`goal`){return Gh(`/api/chat/sessions`,{method:`POST`,body:JSON.stringify({goal_id:e,agent_id:t,mode:n,context_kind:r})})}async function Yh(e){return Gh(`/api/chat/sessions/${e}`)}async function Xh(e){let t=new URLSearchParams;return e.agentId&&t.set(`agent_id`,e.agentId),e.channelId&&t.set(`channel_id`,e.channelId),e.goalId&&t.set(`goal_id`,e.goalId),Gh(`/api/chat/sessions?${t.toString()}`)}function Zh(e){let t=new Map;for(let n of e)for(let e of n.messages)t.set(e.message_id,e);return[...t.values()].sort((e,t)=>e.created_at.localeCompare(t.created_at)||e.message_id.localeCompare(t.message_id))}async function Qh(e){let t=await Xh(e),n=await Promise.all(t.sessions.map(e=>Yh(e.session_id)));return{messages:Zh(n),sessions:t.sessions,snapshots:n}}async function $h(e,t,n,r=[]){return Gh(`/api/chat/sessions/${e}/turns`,{method:`POST`,body:JSON.stringify({message:t,client_turn_id:n,...r.length?{attachments:r.map(e=>({data_url:e.dataUrl,id:e.id,mime_type:e.mimeType,name:e.name,size:e.size}))}:{}})})}function eg(e){let t=e.split(` `).filter(e=>e.startsWith(`data:`)).map(e=>e.slice(5).trimStart()).join(` -`);if(!t)return null;try{let e=JSON.parse(t);return!e.kind||!e.payload||typeof e.payload!=`object`?null:{event_id:String(e.event_id??``),sequence:Number(e.sequence??0),kind:String(e.kind),created_at:String(e.created_at??``),payload:e.payload}}catch{return null}}async function Xh(e,t,n){let r=``,i=0,a=!1;for(;!a&&i<4;){let o=typeof window>`u`?`http://127.0.0.1`:window.location.origin,s=new URL(gh(e),o);r&&s.searchParams.set(`after`,r);try{let e=await fetch(s,{cache:`no-store`,headers:{Accept:`text/event-stream`},signal:n});if(!e.ok||!e.body)throw new kh(`SSE HTTP ${e.status}`,{status:e.status});let o=e.body.getReader(),c=new TextDecoder,l=``;for(;;){let{done:e,value:n}=await o.read();l+=c.decode(n,{stream:!e}).replaceAll(`\r +`);if(!t)return null;try{let e=JSON.parse(t);return!e.kind||!e.payload||typeof e.payload!=`object`?null:{event_id:String(e.event_id??``),sequence:Number(e.sequence??0),kind:String(e.kind),created_at:String(e.created_at??``),payload:e.payload}}catch{return null}}async function tg(e,t,n){let r=``,i=0,a=!1;for(;!a&&i<4;){let o=typeof window>`u`?`http://127.0.0.1`:window.location.origin,s=new URL(bh(e),o);r&&s.searchParams.set(`after`,r);try{let e=await fetch(s,{cache:`no-store`,headers:{Accept:`text/event-stream`},signal:n});if(!e.ok||!e.body)throw new Ph(`SSE HTTP ${e.status}`,{status:e.status});let o=e.body.getReader(),c=new TextDecoder,l=``;for(;;){let{done:e,value:n}=await o.read();l+=c.decode(n,{stream:!e}).replaceAll(`\r `,` `);let i=l.indexOf(` -`);for(;i>=0;){let e=l.slice(0,i);l=l.slice(i+2);let n=Yh(e);n&&(n.event_id&&(r=n.event_id),t(n),a=[`turn.completed`,`turn.interrupted`,`turn.failed`].includes(n.kind)),i=l.indexOf(` +`);for(;i>=0;){let e=l.slice(0,i);l=l.slice(i+2);let n=eg(e);n&&(n.event_id&&(r=n.event_id),t(n),a=[`turn.completed`,`turn.interrupted`,`turn.failed`].includes(n.kind)),i=l.indexOf(` -`)}if(e||a)break}i=a?i:i+1}catch(e){if(n?.aborted||(i+=1,i>=4))throw e;await new Promise(e=>globalThis.setTimeout(e,250*2**(i-1)))}}if(!a)throw new kh(`Agent 事件流连接已断开。`,{reconnect_attempts:i})}async function Zh(e,t){return Bh(`/api/chat/sessions/${e}/turns/${t}/interrupt`,{method:`POST`,body:`{}`})}async function Qh(e,t,n={}){let r=await Jh(e,t,n.clientTurnId??crypto.randomUUID(),n.attachments);return n.onPhase?.(`turn.accepted`,r.turn_id),$h(e,r.turn_id,r.events_url,n)}async function $h(e,t,n,r={}){let i=null,a={failure:null,interrupted:null};try{await Xh(n,e=>{r.onPhase?.(e.kind,t),(e.kind===`answer.delta`||e.kind===`assistant.delta`)&&r.onDelta?.(String(e.payload.text??``)),e.kind===`agent.phase`&&r.onActivity?.(String(e.payload.label??`Agent 正在处理`)),e.kind===`turn.completed`&&(i=e.payload.response),e.kind===`turn.failed`&&(a.failure=e.payload),e.kind===`turn.interrupted`&&(a.interrupted=e.payload)},r.signal)}catch(i){throw i instanceof kh&&!r.signal?.aborted?new kh(i.message,{...i.payload,events_url:n,reconnectable:!0,session_id:e,turn_id:t}):i}if(a.failure)throw new kh(String(a.failure.message||`Agent 回合失败。`),a.failure);if(a.interrupted)throw new kh(`Agent 回合已中断。`,{...a.interrupted,error_code:`turn_interrupted`,session_id:e,turn_id:t});return{response:Ch.parse(i),sessionId:e,turnId:t}}async function eg(e,t,n={}){return $h(e,t,`/api/chat/sessions/${e}/turns/${t}/events`,n)}async function tg(e){let t=wh.parse(await Bh(`/api/chat/sessions/${e}`,{keepalive:!0,method:`DELETE`}));if(t.session_id!==e)throw new kh(`Agent 会话关闭回执与本次请求不一致。`,{session_id:t.session_id});return t}async function ng(e){return Bh(`/api/chat/sessions/${e}/resume`,{method:`POST`,body:`{}`})}function rg(e){return{goal_id:e.goalId,enabled:e.enabled,...e.modelConfig===void 0?{}:{model_config:e.modelConfig},...e.enabled?{max_children:e.maxChildren,allowed_domains:e.allowedDomains}:{}}}function ig(e,t){let n=e.after.orchestration,r=[...new Set(t.allowedDomains)],i=e.feature_summary.multi_subagent===`enabled`;if(!(e.goal_id===t.goalId&&i===t.enabled&&(t.modelConfig===void 0||JSON.stringify(n.model_config??null)===JSON.stringify(t.modelConfig))&&(t.enabled?n.max_children===t.maxChildren&&JSON.stringify(n.allowed_domains)===JSON.stringify(r):n.spawn_allowed===!1&&n.max_children===0)))throw new kh(`Goal 子代理配置回执与本次请求不一致,界面已停止更新。`,{after:e.after,goal_id:e.goal_id});return e}async function ag(e){let t=Dh.parse(await Bh(`/api/chat/goal-subagents/dry-run`,{method:`POST`,body:JSON.stringify(rg(e))}));if(!t.dry_run||t.execute||t.written)throw new kh(`Goal 子代理预览返回了非预览回执,已停止进入确认状态。`,{result:t});return ig(t,e)}async function og(e,t){let n=Dh.parse(await Bh(`/api/chat/goal-subagents/apply`,{method:`POST`,body:JSON.stringify({...rg(e),preview_id:t})}));if(n.preview_id!==t||n.dry_run||!n.execute)throw new kh(`Goal 子代理写入回执与本次确认不一致,界面已停止更新。`,{result:n});if(n.changed&&(!n.written||!n.global_sync.executed||!n.global_sync.readback.verified))throw new kh(`Goal 子代理设置未通过共享状态读回验证。`,{result:n});return ig(n,e)}var sg=J({ok:X(!0),targets:q(J({enabled:K(),provider:W(),target_name:W()}))});async function cg(){return sg.parse(await Bh(`/api/chat/goal-channel/targets`)).targets}var lg=J({ok:K(),blocker:W().optional(),public_summary:W().optional(),status:W().optional()});async function ug(e){return lg.parse(await Bh(`/api/chat/goal-channel/setup`,{method:`POST`,body:JSON.stringify({execute:e.execute,goal_id:e.goalId,target:e.target})}))}async function dg(e){return lg.parse(await Bh(`/api/chat/goal-channel/configure`,{method:`POST`,body:JSON.stringify({auto_notify_human_gates:e.autoNotify,goal_id:e.goalId})}))}var fg=J({schema_version:X(`periodic_report_schedule_v0`),schedule_id:W(),rrule:W(),timezone:W()});J({schema_version:X(`periodic_report_machine_defaults_v0`),enabled:K(),inheritance:X(`live_machine_default`),profile_preset:W().optional(),route_ref:W().optional(),timezone:W(),schedule:fg.nullable().optional()});var pg=J({schema_version:X(`loopx_machine_configuration_v0`),namespaces:gd(W(),gd(W(),id()))}),mg=J({namespace:W(),title:W(),description:W(),schema_versions:q(W()).min(1),configuration_template:gd(W(),id()),template_status:Y([`ready`,`schema_only`])}),hg=J({schema_version:X(`machine_configuration_catalog_v0`),namespaces:q(mg)}),gg=J({key:W(),label:W(),description:W(),input_kind:Y([`boolean`,`number`,`select`,`string_list`,`text`,`periodic_report_schedule`]),nullable:K().optional(),required:K(),minimum:G().int().optional(),maximum:G().int().optional(),options:q(W()).optional()}),_g=J({schema_version:X(`capability_configuration_editor_v0`),editable:K(),supported_scopes:q(Y([`goal`,`machine`])),writable_scopes:q(Y([`goal`,`machine`])),fields:q(gg),read_only_reason:W().optional()}),vg=J({schema_version:X(`capability_configuration_catalog_v0`),capabilities:q(J({capability_id:W(),display_name:W(),description:W(),available_scopes:q(Y([`goal`,`machine`])),machine_namespace:W().optional(),goal_feature_id:W().optional(),effective_value_policy:X(`goal_override_over_live_machine_default`).optional(),availability:W().optional(),default:gd(W(),id()).optional(),current:gd(W(),id()).optional(),machine_current:gd(W(),id()).optional(),effective_configuration:J({schema_version:X(`capability_configuration_resolution_v0`),capability_id:W(),source:Y([`goal_override`,`machine_default`,`capability_default`,`not_configured`]),configuration:gd(W(),id()).nullable(),inherited:K(),goal_override_present:K(),machine_default_present:K(),effective_revision:W()}).optional(),documentation:gd(W(),id()).optional(),context_contribution:J({supported_phases:q(Y([`before_plan`,`before_delegate`,`after_delegate_result`])),target:X(`coordinator`),activation:X(`with_capability`),receipt_required:X(!0)}).optional(),configuration_editor:_g}))}),yg=J({ok:X(!0),schema_version:X(`goal_configuration_inspection_v0`),status:X(`configured`),goal_id:W(),revision:W(),available_capabilities:q(W()),capability_catalog:vg}),bg=J({ok:X(!0),goal_id:W(),capability_id:W(),changed_fields:q(W()),goal_configuration:gd(W(),id()).nullable(),capability_catalog:vg}),xg=bg.extend({schema_version:X(`goal_configuration_update_plan_v0`),status:X(`preview`),action:Y([`create`,`update`,`delete`,`unchanged`]),current_revision:W(),desired_revision:W(),base_revision:W(),plan_revision:W(),writes_required:G().int().nonnegative()}),Sg=ud([bg.extend({schema_version:X(`goal_configuration_transaction_v0`),status:Y([`applied`,`unchanged`]),plan_revision:W(),applied_revision:W(),readback_verified:X(!0)}),J({ok:X(!1),schema_version:X(`goal_configuration_transaction_v0`),status:X(`partial_write`),goal_id:W(),capability_id:W(),plan_revision:W(),applied_revision:W().nullable(),source_written:X(!0),shared_sync_pending:X(!0),readback_verified:K(),changed_fields:q(W()),goal_configuration:gd(W(),id()).nullable(),capability_catalog:vg,error:W(),recommended_action:W()})]),Cg=J({ok:X(!0),available_namespaces:q(W()),namespace_catalog:hg.optional().default({schema_version:`machine_configuration_catalog_v0`,namespaces:[]}),capability_catalog:vg,changed_namespaces:q(W()).optional().default([]),invalid_namespaces:q(W()).optional().default([]),machine_configuration:pg.nullable().optional()}),wg=Cg.extend({schema_version:X(`machine_configuration_inspection_v0`),status:Y([`configured`,`absent`,`invalid`]),revision:W()}),Tg=Cg.extend({schema_version:X(`machine_configuration_update_plan_v0`),status:X(`preview`),action:Y([`create`,`update`,`delete`,`unchanged`]),current_revision:W(),desired_revision:W(),plan_revision:W(),writes_required:G().int().nonnegative(),machine_configuration:pg.nullable()}),Eg=Cg.extend({schema_version:X(`machine_configuration_transaction_v0`),status:Y([`applied`,`unchanged`]),plan_revision:W(),transaction_id:W().nullable(),readback_verified:X(!0),rollback_available:K(),applied_revision:W().optional(),prior_revision:W().optional()}),Dg=Cg.extend({schema_version:X(`machine_configuration_rollback_plan_v0`),status:X(`preview`),action:Y([`delete`,`restore`,`unchanged`,`blocked`]),reason:W(),transaction_id:W(),plan_revision:W(),rollback_allowed:K(),writes_required:G().int().nonnegative()}),Og=Cg.extend({schema_version:X(`machine_configuration_rollback_receipt_v0`),status:Y([`rolled_back`,`unchanged`]),transaction_id:W(),plan_revision:W(),rollback_id:W().nullable(),readback_verified:X(!0)}),kg=J({configured:K(),source:Y([`machine_store`,`service_environment`,`unset`]),env_var:W().optional(),fingerprint:W().nullable().optional(),value:W().nullable().optional(),blocked_by:W().optional()}),Ag=J({ok:X(!0),schema_version:X(`operator_provider_credential_projection_v0`),action:W().optional(),store_ref:W(),store_revision:W(),record_present:K(),status:Y([`configured`,`absent`,`invalid`]),repair:W(),provider_key:kg,base_url:kg});async function jg(){return Ag.parse(await Bh(`/api/chat/operator-credential`))}async function Mg(e){return Ag.parse(await Bh(`/api/chat/operator-credential`,{method:`POST`,body:JSON.stringify(e)}))}async function Ng(){return wg.parse(await Bh(`/api/chat/machine-configuration`))}async function Pg(e){let t=new URLSearchParams({goal_id:e});return yg.parse(await Bh(`/api/chat/goal-configuration?${t.toString()}`))}async function Fg(e,t,n){return xg.parse(await Bh(`/api/chat/goal-configuration/preview`,{method:`POST`,body:JSON.stringify({goal_id:e,capability_id:t,configuration:n})}))}async function Ig(e,t,n,r){return Sg.parse(await Bh(`/api/chat/goal-configuration/apply`,{method:`POST`,body:JSON.stringify({goal_id:e,capability_id:t,configuration:n,expected_plan_revision:r})}))}async function Lg(e,t){return Tg.parse(await Bh(`/api/chat/machine-configuration/preview`,{method:`POST`,body:JSON.stringify({namespace:e,namespace_configuration:t})}))}async function Rg(e,t,n){return Eg.parse(await Bh(`/api/chat/machine-configuration/apply`,{method:`POST`,body:JSON.stringify({expected_plan_revision:n,namespace:e,namespace_configuration:t})}))}async function zg(e){return Tg.parse(await Bh(`/api/chat/machine-configuration/preview`,{method:`POST`,body:JSON.stringify({namespace:e,operation:`remove`})}))}async function Bg(e,t){return Eg.parse(await Bh(`/api/chat/machine-configuration/apply`,{method:`POST`,body:JSON.stringify({expected_plan_revision:t,namespace:e,operation:`remove`})}))}async function Vg(e){return Dg.parse(await Bh(`/api/chat/machine-configuration/rollback`,{method:`POST`,body:JSON.stringify({execute:!1,transaction_id:e})}))}async function Hg(e,t){return Og.parse(await Bh(`/api/chat/machine-configuration/rollback`,{method:`POST`,body:JSON.stringify({execute:!0,expected_plan_revision:t,transaction_id:e})}))}var Ug=J({ok:X(!0),goals:q(J({goal_id:W(),repository:J({branch:W(),identity:W(),label:W(),read_only:X(!0)})}))});async function Wg(){return Ug.parse(await Bh(`/api/chat/goals/contexts`)).goals}var Gg=J({ok:X(!0),apps:q(J({active:K(),app_ref:W(),brand:W(),health_error_code:W().nullable().default(null),label:W(),ready:K(),reply_ready:K().default(!1)}))});async function Kg(){return Gg.parse(await Bh(`/api/chat/lark/apps`)).apps}var qg=J({ok:X(!0),app_ref:W(),error:W().nullable(),setup_id:W(),status:Y([`starting`,`waiting_for_feishu`,`ready`,`failed`,`cancelled`]),verification_url:W().url().nullable()});async function Jg(e){return qg.parse(await Bh(`/api/chat/lark/app-setups`,{method:`POST`,body:JSON.stringify({app_ref:e.appRef,brand:e.brand})}))}async function Yg(e){return qg.parse(await Bh(`/api/chat/lark/app-setups/${encodeURIComponent(e)}`))}async function Xg(e){return qg.parse(await Bh(`/api/chat/lark/app-setups/${encodeURIComponent(e)}`,{method:`DELETE`}))}var Zg=[`invalid_event`,`binding_unavailable`,`chat_mismatch`,`topic_mismatch`,`route_ambiguous`,`self_message`,`invalid_routing_state`,`not_addressed`],Qg=J({ok:X(!0),chats:q(J({chat_id:W(),chat_name:W()}))});async function $g(e,t){let n=new URLSearchParams({app_ref:e});return t&&n.set(`query`,t),Qg.parse(await Bh(`/api/chat/lark/chats?${n.toString()}`)).chats}var e_=J({ok:X(!0),connections:q(J({conversation_kind:Y([`goal`,`manager`]).default(`goal`),agent_id:W().nullable().default(null),connection_id:W(),app_label:W(),app_ref:W(),capture_scope:Y([`addressed_only`,`configured_chat_all`]).default(`addressed_only`),chat_name:W(),enabled:K(),goal_id:W(),goal_title:W(),health_error_code:W().nullable().default(null),history_permission_guidance:J({action:X(`enable_application_scopes_and_publish`),api_document_url:W().url(),capability:X(`group_history_pagination`),identity:X(`bot`),required_scopes:md([X(`im:message.group_msg`),X(`im:message.group_msg.include_bot:read`)]),schema_version:X(`lark_bot_group_history_permission_guidance_v0`)}).nullable().default(null),incoming_mode:Y([`mentions`,`all`]),ingress_mode:Y([`live_steering`,`session_queue`,`async_inbox`,`direct_session`]).default(`async_inbox`),event_count:G().int().nonnegative().default(0),last_event_reason:Y(Zg).nullable().default(null).catch(null),last_event_status:W().nullable().default(null),listener_error_code:W().nullable().default(null),listener_status:Y([`starting`,`listening`,`retrying`,`stopped`]).nullable().default(null),replied_count:G().int().nonnegative().default(0),reply_ready:K().default(!1),reply_mode:X(`topic_reply`),session_bound:K().default(!1),target_ref:W(),topic_name:W(),topic_setup_required:K()}))});async function t_(){return e_.parse(await Bh(`/api/chat/lark/connections`)).connections}async function n_(e){return lg.parse(await Bh(`/api/chat/lark/connections`,{method:`POST`,body:JSON.stringify({...e.agentBindings?{agent_bindings:e.agentBindings.map(e=>({agent_id:e.agentId,app_ref:e.appRef}))}:{},...e.agentId?{agent_id:e.agentId}:{},...e.appRef?{app_ref:e.appRef}:{},...e.connectionId?{connection_id:e.connectionId}:{},conversation_kind:e.conversationKind??`goal`,capture_scope:e.captureScope,chat_id:e.chatId,chat_name:e.chatName,execute:e.execute,goal_id:e.goalId,incoming_mode:e.incomingMode,ingress_mode:e.ingressMode,reply_mode:e.replyMode})}))}async function r_(e,t){let n=new URLSearchParams({goal_id:e,connection_id:t});return lg.parse(await Bh(`/api/chat/lark/connections?${n.toString()}`,{method:`DELETE`}))}function i_(e){return{loadedUrl:null,projectionRevision:0,requestedUrl:e,selectionRevision:0,requestGeneration:0}}function a_(e,t){return e.selectionRevision+=1,e.requestedUrl=t,e.selectionRevision}function o_(e,t,n){if(n.background)return e.requestedUrl!==null||e.loadedUrl!==t?null:(e.requestGeneration+=1,{background:!0,projectionRevision:e.projectionRevision,selectionRevision:e.selectionRevision,url:t,generation:e.requestGeneration});let r=n.selectionRevision??e.selectionRevision+1;return n.selectionRevision!==void 0&&e.selectionRevision!==r?null:(e.selectionRevision=r,e.projectionRevision+=1,e.requestedUrl=t,e.requestGeneration+=1,{background:!1,projectionRevision:e.projectionRevision,selectionRevision:r,url:t,generation:e.requestGeneration})}function s_(e,t){return t.generation===e.requestGeneration&&e.projectionRevision===t.projectionRevision&&e.selectionRevision===t.selectionRevision}function c_(e,t){return s_(e,t)&&(!t.background||e.requestedUrl===null&&e.loadedUrl===t.url)}function l_(e,t,n){return t.get(e)===n}function u_(e,t,n,r){return e.filter(e=>l_(r(e),n,t))}function d_(e,t,n){let r=new Set,i=[];for(let a of[...e,...t]){let e=n(a);e==null||r.has(e)||(r.add(e),i.push(a))}return i}var f_=[`runs_24h`,`runs_7d`,`quota_spend_slots_24h`,`quota_spend_slots_7d`,`automation_run_count_24h`,`automation_run_count_7d`,`progress_signal_run_count_24h`,`progress_signal_run_count_7d`],p_=[`input_tokens_24h`,`input_tokens_7d`,`output_tokens_24h`,`output_tokens_7d`,`cache_tokens_24h`,`cache_tokens_7d`,`cost_usd_24h`,`cost_usd_7d`,`duration_ms_24h`,`duration_ms_7d`],m_=[`accounting`,`decision`,`evidence`,`state`,`work`],h_={accounting:0,decision:0,evidence:0,state:0,work:0},g_={runs_24h:0,runs_7d:0,quota_spend_slots_24h:0,quota_spend_slots_7d:0,automation_run_count_24h:0,automation_run_count_7d:0,progress_signal_run_count_24h:0,progress_signal_run_count_7d:0};function __(e,t){let n={...e};for(let r of f_)n[r]=(Number(e[r])||0)+(Number(t[r])||0);for(let r of p_)(e[r]!==void 0||t[r]!==void 0)&&(n[r]=(e[r]??0)+(t[r]??0));return n}function v_(e,t){return!e.length||t<=0?e:e.map(e=>({...e,project_share_24h:Math.round((Number(e.runs_24h)||0)/t*1e3)/1e3}))}function y_(e,t){let n={...e};for(let r of m_)n[r]=(e[r]??0)+(t[r]??0);return n}function b_(e){let t={events_24h:0,events_7d:0,by_class_24h:{...h_},by_class_7d:{...h_}};for(let n of e)t.events_24h+=n.events_24h,t.events_7d+=n.events_7d,t.by_class_24h=y_(t.by_class_24h,n.by_class_24h),t.by_class_7d=y_(t.by_class_7d,n.by_class_7d);return t}function x_(e,t,n){if(!e&&!t)return null;let r=u_(e?.goals??[],`active`,n,e=>e.goal_id),i=u_(t?.goals??[],`stopped`,n,e=>e.goal_id),a=d_(r,i,e=>e.goal_id),o=b_(r),s=b_(i),c={events_24h:o.events_24h+s.events_24h,events_7d:o.events_7d+s.events_7d,by_class_24h:y_(o.by_class_24h,s.by_class_24h),by_class_7d:y_(o.by_class_7d,s.by_class_7d)};return{...e??t,goals:a,sample_run_count:(e?.sample_run_count??0)+(t?.sample_run_count??0),totals:c}}function S_(e,t,n){if(!e&&!t)return null;let r=d_([...u_(e?.items??[],`active`,n,e=>e.goal_id),...u_(t?.items??[],`stopped`,n,e=>e.goal_id)],[],e=>`${e.goal_id}:${e.decision_kind??``}:${e.decision_at??``}`),i={decision_count:(e?.summary.decision_count??0)+(t?.summary.decision_count??0),stale_count:r.filter(e=>e.stale_by_age).length,rebase_required_count:(e?.summary.rebase_required_count??0)+(t?.summary.rebase_required_count??0),fresh_count:(e?.summary.fresh_count??0)+(t?.summary.fresh_count??0)};return{...e??t,items:r,sample_run_count:(e?.sample_run_count??0)+(t?.sample_run_count??0),summary:i}}function C_(e,t){return d_([...e,...t].sort((e,t)=>t.generated_at.localeCompare(e.generated_at)),[],e=>`${e.goal_id}:${e.generated_at}:${e.classification??``}`)}function w_(e,t,n){let r=d_(u_(e.items,`active`,n,e=>e.goal_id),u_(t.items,`stopped`,n,e=>e.goal_id),e=>e.goal_id);return{...e,item_count:r.length,items:r,needs_controller:r.filter(e=>e.waiting_on===`controller`).length,needs_codex:r.filter(e=>e.waiting_on===`codex`).length,needs_user_or_controller:r.filter(e=>[`user_or_controller`,`controller`].includes(e.waiting_on)).length,watching_external_evidence:r.filter(e=>e.waiting_on===`external_evidence`).length}}function T_(e){let t=e.todo_id?.trim()||``;return t?`${e.goal_id}:${t}`:`${e.goal_id}:synthetic:${e.role??``}:${e.index??``}:${e.text??``}`}function E_(e){let t={...g_};for(let n of e){for(let e of f_)t[e]+=Number(n[e])||0;for(let e of p_)n[e]!==void 0&&(t[e]=(t[e]??0)+n[e])}return t}function D_(e,t,n){if(!e&&!t)return null;let r=u_(e?.items??[],`active`,n,e=>e.goal_id),i=u_(t?.items??[],`stopped`,n,e=>e.goal_id),a=d_(r,i,T_);return{...e??t,current_projected_count:r.length+i.length,items:a,rollout_event_count:a.reduce((e,t)=>e+(t.event_count??0),0),total_count:a.length}}function O_(e,t,n){if(!e&&!t)return null;let r=u_(e?.goals??[],`active`,n,e=>e.goal_id),i=u_(t?.goals??[],`stopped`,n,e=>e.goal_id),a=d_(r,i,e=>e.goal_id),o=__(E_(r),E_(i));return{...e??t,goals:v_(a,Number(o.runs_24h)||0),sample_run_count:(e?.sample_run_count??0)+(t?.sample_run_count??0),totals:o}}function k_(e,t,n){if(!e&&!t)return null;let r=(e?.agents??[]).filter(e=>e.goal_ids.some(e=>l_(e,n,`active`))||(e.current_todo?.goal_id?l_(e.current_todo.goal_id,n,`active`):!1)),i=(t?.agents??[]).filter(e=>e.goal_ids.some(e=>l_(e,n,`stopped`))||(e.current_todo?.goal_id?l_(e.current_todo.goal_id,n,`stopped`):!1)),a=d_(r,i,e=>e.agent_id).map(e=>{let t=i.find(t=>t.agent_id===e.agent_id);return t?{...e,goal_ids:Array.from(new Set([...e.goal_ids??[],...t.goal_ids]))}:e});return{...e??t,agents:a,source_summary:(e??t)?.source_summary?{...(e??t).source_summary,projected_agent_count:a.length,registered_agent_count:new Set(a.map(e=>e.agent_id)).size}:(e??t)?.source_summary}}function A_(e,t,n){if(!e&&!t)return null;let r=d_(u_(e?.goals??[],`active`,n,e=>e.goal_id),u_(t?.goals??[],`stopped`,n,e=>e.goal_id),e=>e.goal_id);return{...e??t,goals:r}}function j_(e,t){let n=t.goal_projection?.scope;if(n!==`active`&&n!==`stopped`)return t;let r=n,i=t.run_history.goals,a=e.run_history.goals,o=d_(r===`active`?i:a.filter(e=>e.activation_state!==`stopped`),r===`stopped`?i:a.filter(e=>e.activation_state===`stopped`),e=>e.id),s=new Map(o.map(e=>[e.id,e.activation_state])),c=r===`active`?t:e,l=r===`stopped`?t:e,u=e.goal_projection?.registry_revision??null,d=t.goal_projection?.registry_revision??null,f=u===null||d===null||u===d;return{...e,agent_management_projection:k_(c.agent_management_projection,l.agent_management_projection,s),attention_queue:w_(c.attention_queue,l.attention_queue,s),decision_freshness_summary:S_(c.decision_freshness_summary,l.decision_freshness_summary,s),event_ledger_summary:x_(c.event_ledger_summary,l.event_ledger_summary,s),goal_channel_notification_projection:A_(c.goal_channel_notification_projection,l.goal_channel_notification_projection,s),goal_projection:{schema_version:`loopx_goal_projection_scope_v0`,...t.goal_projection,complete:f,projected_goal_count:o.length,registry_goal_count:t.goal_projection?.registry_goal_count??0,scope:`all`},run_history:{...e.run_history,goal_count:o.length,goals:o,recent_runs:C_(c.run_history.recent_runs,l.run_history.recent_runs),run_count:c.run_history.run_count+l.run_history.run_count},todo_index:D_(c.todo_index,l.todo_index,s),usage_summary:O_(c.usage_summary,l.usage_summary,s)}}function M_(e){var t,n,r=``;if(typeof e==`string`||typeof e==`number`)r+=e;else if(typeof e==`object`){if(Array.isArray(e)){var i=e.length;for(t=0;ttypeof e==`boolean`?`${e}`:e===0?`0`:e,F_=N_,I_=(e,t)=>n=>{if(t?.variants==null)return F_(e,n?.class,n?.className);let{variants:r,defaultVariants:i}=t,a=Object.keys(r).map(e=>{let t=n?.[e],a=i?.[e];if(t===null)return null;let o=P_(t)||P_(a);return r[e][o]}),o=n&&Object.entries(n).reduce((e,t)=>{let[n,r]=t;return r===void 0||(e[n]=r),e},{});return F_(e,a,t?.compoundVariants?.reduce((e,t)=>{let{class:n,className:r,...a}=t;return Object.entries(a).every(e=>{let[t,n]=e;return Array.isArray(n)?n.includes({...i,...o}[t]):{...i,...o}[t]===n})?[...e,n,r]:e},[]),n?.class,n?.className)},L_=(e,t)=>{let n=Array(e.length+t.length);for(let t=0;t({classGroupId:e,validator:t}),z_=(e=new Map,t=null,n)=>({nextPart:e,validators:t,classGroupId:n}),B_=`-`,V_=[],H_=`arbitrary..`,U_=e=>{let t=K_(e),{conflictingClassGroups:n,conflictingClassGroupModifiers:r}=e;return{getClassGroupId:e=>{if(e.startsWith(`[`)&&e.endsWith(`]`))return G_(e);let n=e.split(B_);return W_(n,+(n[0]===``&&n.length>1),t)},getConflictingClassGroupIds:(e,t)=>{if(t){let t=r[e],i=n[e];return t?i?L_(i,t):t:i||V_}return n[e]||V_}}},W_=(e,t,n)=>{if(e.length-t===0)return n.classGroupId;let r=e[t],i=n.nextPart.get(r);if(i){let n=W_(e,t+1,i);if(n)return n}let a=n.validators;if(a===null)return;let o=t===0?e.join(B_):e.slice(t).join(B_),s=a.length;for(let e=0;ee.slice(1,-1).indexOf(`:`)===-1?void 0:(()=>{let t=e.slice(1,-1),n=t.indexOf(`:`),r=t.slice(0,n);return r?H_+r:void 0})(),K_=e=>{let{theme:t,classGroups:n}=e;return q_(n,t)},q_=(e,t)=>{let n=z_();for(let r in e){let i=e[r];J_(i,n,r,t)}return n},J_=(e,t,n,r)=>{let i=e.length;for(let a=0;a{if(typeof e==`string`){X_(e,t,n);return}if(typeof e==`function`){Z_(e,t,n,r);return}Q_(e,t,n,r)},X_=(e,t,n)=>{let r=e===``?t:$_(t,e);r.classGroupId=n},Z_=(e,t,n,r)=>{if(ev(e)){J_(e(r),t,n,r);return}t.validators===null&&(t.validators=[]),t.validators.push(R_(n,e))},Q_=(e,t,n,r)=>{let i=Object.entries(e),a=i.length;for(let e=0;e{let n=e,r=t.split(B_),i=r.length;for(let e=0;e`isThemeGetter`in e&&e.isThemeGetter===!0,tv=e=>{if(e<1)return{get:()=>void 0,set:()=>{}};let t=0,n=Object.create(null),r=Object.create(null),i=(i,a)=>{n[i]=a,t++,t>e&&(t=0,r=n,n=Object.create(null))};return{get(e){let t=n[e];if(t!==void 0)return t;if((t=r[e])!==void 0)return i(e,t),t},set(e,t){e in n?n[e]=t:i(e,t)}}},nv=`!`,rv=`:`,iv=[],av=(e,t,n,r,i)=>({modifiers:e,hasImportantModifier:t,baseClassName:n,maybePostfixModifierPosition:r,isExternal:i}),ov=e=>{let{prefix:t,experimentalParseClassName:n}=e,r=e=>{let t=[],n=0,r=0,i=0,a,o=e.length;for(let s=0;si?a-i:void 0;return av(t,l,c,u)};if(t){let e=t+rv,n=r;r=t=>t.startsWith(e)?n(t.slice(e.length)):av(iv,!1,t,void 0,!0)}if(n){let e=r;r=t=>n({className:t,parseClassName:e})}return r},sv=e=>{let t=new Map;return e.orderSensitiveModifiers.forEach((e,n)=>{t.set(e,1e6+n)}),e=>{let n=[],r=[];for(let i=0;i0&&(r.sort(),n.push(...r),r=[]),n.push(a)):r.push(a)}return r.length>0&&(r.sort(),n.push(...r)),n}},cv=e=>({cache:tv(e.cacheSize),parseClassName:ov(e),sortModifiers:sv(e),postfixLookupClassGroupIds:lv(e),...U_(e)}),lv=e=>{let t=Object.create(null),n=e.postfixLookupClassGroups;if(n)for(let e=0;e{let{parseClassName:n,getClassGroupId:r,getConflictingClassGroupIds:i,sortModifiers:a,postfixLookupClassGroupIds:o}=t,s=[],c=e.trim().split(uv),l=``;for(let e=c.length-1;e>=0;--e){let t=c[e],{isExternal:u,modifiers:d,hasImportantModifier:f,baseClassName:p,maybePostfixModifierPosition:m}=n(t);if(u){l=t+(l.length>0?` `+l:l);continue}let h=!!m,g;if(h){g=r(p.substring(0,m));let e=g&&o[g]?r(p):void 0;e&&e!==g&&(g=e,h=!1)}else g=r(p);if(!g){if(!h){l=t+(l.length>0?` `+l:l);continue}if(g=r(p),!g){l=t+(l.length>0?` `+l:l);continue}h=!1}let _=d.length===0?``:d.length===1?d[0]:a(d).join(`:`),v=f?_+nv:_,y=v+g;if(s.indexOf(y)>-1)continue;s.push(y);let b=i(g,h);for(let e=0;e0?` `+l:l)}return l},fv=(...e)=>{let t=0,n,r,i=``;for(;t{if(typeof e==`string`)return e;let t,n=``;for(let r=0;r{let n,r,i,a,o=o=>(n=cv(t.reduce((e,t)=>t(e),e())),r=n.cache.get,i=n.cache.set,a=s,s(o)),s=e=>{let t=r(e);if(t)return t;let a=dv(e,n);return i(e,a),a};return a=o,(...e)=>a(fv(...e))},hv=[],gv=e=>{let t=t=>t[e]||hv;return t.isThemeGetter=!0,t},_v=/^\[(?:(\w[\w-]*):)?(.+)\]$/i,vv=/^\((?:(\w[\w-]*):)?(.+)\)$/i,yv=/^\d+(?:\.\d+)?\/\d+(?:\.\d+)?$/,bv=/^(\d+(\.\d+)?)?(xs|sm|md|lg|xl)$/,xv=/\d+(%|px|r?em|[sdl]?v([hwib]|min|max)|pt|pc|in|cm|mm|cap|ch|ex|r?lh|cq(w|h|i|b|min|max))|\b(calc|min|max|clamp)\(.+\)|^0$/,Sv=/^(rgba?|hsla?|hwb|(ok)?(lab|lch)|color-mix)\(.+\)$/,Cv=/^(inset_)?-?((\d+)?\.?(\d+)[a-z]+|0)_-?((\d+)?\.?(\d+)[a-z]+|0)/,wv=/^(url|image|image-set|cross-fade|element|(repeating-)?(linear|radial|conic)-gradient)\(.+\)$/,Tv=e=>yv.test(e),Ev=e=>!!e&&!Number.isNaN(Number(e)),Dv=e=>!!e&&Number.isInteger(Number(e)),Ov=e=>e.endsWith(`%`)&&Ev(e.slice(0,-1)),kv=e=>bv.test(e),Av=()=>!0,jv=e=>xv.test(e)&&!Sv.test(e),Mv=()=>!1,Nv=e=>Cv.test(e),Pv=e=>wv.test(e),Fv=e=>!Q(e)&&!$(e),Iv=e=>e.startsWith(`@container`)&&(e[10]===`/`&&e[11]!==void 0||e[11]===`s`&&e[16]!==void 0&&e.startsWith(`-size/`,10)||e[11]===`n`&&e[18]!==void 0&&e.startsWith(`-normal/`,10)),Lv=e=>Qv(e,ny,Mv),Q=e=>_v.test(e),Rv=e=>Qv(e,ry,jv),zv=e=>Qv(e,iy,Ev),Bv=e=>Qv(e,oy,Av),Vv=e=>Qv(e,ay,Mv),Hv=e=>Qv(e,ey,Mv),Uv=e=>Qv(e,ty,Pv),Wv=e=>Qv(e,sy,Nv),$=e=>vv.test(e),Gv=e=>$v(e,ry),Kv=e=>$v(e,ay),qv=e=>$v(e,ey),Jv=e=>$v(e,ny),Yv=e=>$v(e,ty),Xv=e=>$v(e,sy,!0),Zv=e=>$v(e,oy,!0),Qv=(e,t,n)=>{let r=_v.exec(e);return r?r[1]?t(r[1]):n(r[2]):!1},$v=(e,t,n=!1)=>{let r=vv.exec(e);return r?r[1]?t(r[1]):n:!1},ey=e=>e===`position`||e===`percentage`,ty=e=>e===`image`||e===`url`,ny=e=>e===`length`||e===`size`||e===`bg-size`,ry=e=>e===`length`,iy=e=>e===`number`,ay=e=>e===`family-name`,oy=e=>e===`number`||e===`weight`,sy=e=>e===`shadow`,cy=mv(()=>{let e=gv(`color`),t=gv(`font`),n=gv(`text`),r=gv(`font-weight`),i=gv(`tracking`),a=gv(`leading`),o=gv(`breakpoint`),s=gv(`container`),c=gv(`spacing`),l=gv(`radius`),u=gv(`shadow`),d=gv(`inset-shadow`),f=gv(`text-shadow`),p=gv(`drop-shadow`),m=gv(`blur`),h=gv(`perspective`),g=gv(`aspect`),_=gv(`ease`),v=gv(`animate`),y=()=>[`auto`,`avoid`,`all`,`avoid-page`,`page`,`left`,`right`,`column`],b=()=>[`center`,`top`,`bottom`,`left`,`right`,`top-left`,`left-top`,`top-right`,`right-top`,`bottom-right`,`right-bottom`,`bottom-left`,`left-bottom`],x=()=>[...b(),$,Q],S=()=>[`auto`,`hidden`,`clip`,`visible`,`scroll`],C=()=>[`auto`,`contain`,`none`],w=()=>[$,Q,c],T=()=>[Tv,`full`,`auto`,...w()],E=()=>[Dv,`none`,`subgrid`,$,Q],D=()=>[`auto`,{span:[`full`,Dv,$,Q]},Dv,$,Q],O=()=>[Dv,`auto`,$,Q],k=()=>[`auto`,`min`,`max`,`fr`,$,Q],ee=()=>[`start`,`end`,`center`,`between`,`around`,`evenly`,`stretch`,`baseline`,`center-safe`,`end-safe`],te=()=>[`start`,`end`,`center`,`stretch`,`center-safe`,`end-safe`],A=()=>[`auto`,...w()],j=()=>[Tv,`auto`,`full`,`dvw`,`dvh`,`lvw`,`lvh`,`svw`,`svh`,`min`,`max`,`fit`,...w()],M=()=>[Tv,`screen`,`full`,`dvw`,`lvw`,`svw`,`min`,`max`,`fit`,...w()],ne=()=>[Tv,`screen`,`full`,`lh`,`dvh`,`lvh`,`svh`,`min`,`max`,`fit`,...w()],N=()=>[e,$,Q],P=()=>[...b(),qv,Hv,{position:[$,Q]}],re=()=>[`no-repeat`,{repeat:[``,`x`,`y`,`space`,`round`]}],ie=()=>[`auto`,`cover`,`contain`,Jv,Lv,{size:[$,Q]}],ae=()=>[Ov,Gv,Rv],F=()=>[``,`none`,`full`,l,$,Q],oe=()=>[``,Ev,Gv,Rv],I=()=>[`solid`,`dashed`,`dotted`,`double`],se=()=>[`normal`,`multiply`,`screen`,`overlay`,`darken`,`lighten`,`color-dodge`,`color-burn`,`hard-light`,`soft-light`,`difference`,`exclusion`,`hue`,`saturation`,`color`,`luminosity`],L=()=>[Ev,Ov,qv,Hv],ce=()=>[``,`none`,m,$,Q],le=()=>[`none`,Ev,$,Q],ue=()=>[`none`,Ev,$,Q],de=()=>[Ev,$,Q],R=()=>[Tv,`full`,...w()];return{cacheSize:500,theme:{animate:[`spin`,`ping`,`pulse`,`bounce`],aspect:[`video`],blur:[kv],breakpoint:[kv],color:[Av],container:[kv],"drop-shadow":[kv],ease:[`in`,`out`,`in-out`],font:[Fv],"font-weight":[`thin`,`extralight`,`light`,`normal`,`medium`,`semibold`,`bold`,`extrabold`,`black`],"inset-shadow":[kv],leading:[`none`,`tight`,`snug`,`normal`,`relaxed`,`loose`],perspective:[`dramatic`,`near`,`normal`,`midrange`,`distant`,`none`],radius:[kv],shadow:[kv],spacing:[`px`,Ev],text:[kv],"text-shadow":[kv],tracking:[`tighter`,`tight`,`normal`,`wide`,`wider`,`widest`]},classGroups:{aspect:[{aspect:[`auto`,`square`,Tv,Q,$,g]}],container:[`container`],"container-type":[{"@container":[``,`normal`,`size`,$,Q]}],"container-named":[Iv],columns:[{columns:[Ev,Q,$,s]}],"break-after":[{"break-after":y()}],"break-before":[{"break-before":y()}],"break-inside":[{"break-inside":[`auto`,`avoid`,`avoid-page`,`avoid-column`]}],"box-decoration":[{"box-decoration":[`slice`,`clone`]}],box:[{box:[`border`,`content`]}],display:[`block`,`inline-block`,`inline`,`flex`,`inline-flex`,`table`,`inline-table`,`table-caption`,`table-cell`,`table-column`,`table-column-group`,`table-footer-group`,`table-header-group`,`table-row-group`,`table-row`,`flow-root`,`grid`,`inline-grid`,`contents`,`list-item`,`hidden`],sr:[`sr-only`,`not-sr-only`],float:[{float:[`right`,`left`,`none`,`start`,`end`]}],clear:[{clear:[`left`,`right`,`both`,`none`,`start`,`end`]}],isolation:[`isolate`,`isolation-auto`],"object-fit":[{object:[`contain`,`cover`,`fill`,`none`,`scale-down`]}],"object-position":[{object:x()}],overflow:[{overflow:S()}],"overflow-x":[{"overflow-x":S()}],"overflow-y":[{"overflow-y":S()}],overscroll:[{overscroll:C()}],"overscroll-x":[{"overscroll-x":C()}],"overscroll-y":[{"overscroll-y":C()}],position:[`static`,`fixed`,`absolute`,`relative`,`sticky`],inset:[{inset:T()}],"inset-x":[{"inset-x":T()}],"inset-y":[{"inset-y":T()}],start:[{"inset-s":T(),start:T()}],end:[{"inset-e":T(),end:T()}],"inset-bs":[{"inset-bs":T()}],"inset-be":[{"inset-be":T()}],top:[{top:T()}],right:[{right:T()}],bottom:[{bottom:T()}],left:[{left:T()}],visibility:[`visible`,`invisible`,`collapse`],z:[{z:[Dv,`auto`,$,Q]}],basis:[{basis:[Tv,`full`,`auto`,s,...w()]}],"flex-direction":[{flex:[`row`,`row-reverse`,`col`,`col-reverse`]}],"flex-wrap":[{flex:[`nowrap`,`wrap`,`wrap-reverse`]}],flex:[{flex:[Ev,Tv,`auto`,`initial`,`none`,Q]}],grow:[{grow:[``,Ev,$,Q]}],shrink:[{shrink:[``,Ev,$,Q]}],order:[{order:[Dv,`first`,`last`,`none`,$,Q]}],"grid-cols":[{"grid-cols":E()}],"col-start-end":[{col:D()}],"col-start":[{"col-start":O()}],"col-end":[{"col-end":O()}],"grid-rows":[{"grid-rows":E()}],"row-start-end":[{row:D()}],"row-start":[{"row-start":O()}],"row-end":[{"row-end":O()}],"grid-flow":[{"grid-flow":[`row`,`col`,`dense`,`row-dense`,`col-dense`]}],"auto-cols":[{"auto-cols":k()}],"auto-rows":[{"auto-rows":k()}],gap:[{gap:w()}],"gap-x":[{"gap-x":w()}],"gap-y":[{"gap-y":w()}],"justify-content":[{justify:[...ee(),`normal`]}],"justify-items":[{"justify-items":[...te(),`normal`]}],"justify-self":[{"justify-self":[`auto`,...te()]}],"align-content":[{content:[`normal`,...ee()]}],"align-items":[{items:[...te(),{baseline:[``,`last`]}]}],"align-self":[{self:[`auto`,...te(),{baseline:[``,`last`]}]}],"place-content":[{"place-content":ee()}],"place-items":[{"place-items":[...te(),`baseline`]}],"place-self":[{"place-self":[`auto`,...te()]}],p:[{p:w()}],px:[{px:w()}],py:[{py:w()}],ps:[{ps:w()}],pe:[{pe:w()}],pbs:[{pbs:w()}],pbe:[{pbe:w()}],pt:[{pt:w()}],pr:[{pr:w()}],pb:[{pb:w()}],pl:[{pl:w()}],m:[{m:A()}],mx:[{mx:A()}],my:[{my:A()}],ms:[{ms:A()}],me:[{me:A()}],mbs:[{mbs:A()}],mbe:[{mbe:A()}],mt:[{mt:A()}],mr:[{mr:A()}],mb:[{mb:A()}],ml:[{ml:A()}],"space-x":[{"space-x":w()}],"space-x-reverse":[`space-x-reverse`],"space-y":[{"space-y":w()}],"space-y-reverse":[`space-y-reverse`],size:[{size:j()}],"inline-size":[{inline:[`auto`,...M()]}],"min-inline-size":[{"min-inline":[`auto`,...M()]}],"max-inline-size":[{"max-inline":[`none`,...M()]}],"block-size":[{block:[`auto`,...ne()]}],"min-block-size":[{"min-block":[`auto`,...ne()]}],"max-block-size":[{"max-block":[`none`,...ne()]}],w:[{w:[s,`screen`,...j()]}],"min-w":[{"min-w":[s,`screen`,`none`,...j()]}],"max-w":[{"max-w":[s,`screen`,`none`,`prose`,{screen:[o]},...j()]}],h:[{h:[`screen`,`lh`,...j()]}],"min-h":[{"min-h":[`screen`,`lh`,`none`,...j()]}],"max-h":[{"max-h":[`screen`,`lh`,...j()]}],"font-size":[{text:[`base`,n,Gv,Rv]}],"font-smoothing":[`antialiased`,`subpixel-antialiased`],"font-style":[`italic`,`not-italic`],"font-weight":[{font:[r,Zv,Bv]}],"font-stretch":[{"font-stretch":[`ultra-condensed`,`extra-condensed`,`condensed`,`semi-condensed`,`normal`,`semi-expanded`,`expanded`,`extra-expanded`,`ultra-expanded`,Ov,Q]}],"font-family":[{font:[Kv,Vv,t]}],"font-features":[{"font-features":[Q]}],"fvn-normal":[`normal-nums`],"fvn-ordinal":[`ordinal`],"fvn-slashed-zero":[`slashed-zero`],"fvn-figure":[`lining-nums`,`oldstyle-nums`],"fvn-spacing":[`proportional-nums`,`tabular-nums`],"fvn-fraction":[`diagonal-fractions`,`stacked-fractions`],tracking:[{tracking:[i,$,Q]}],"line-clamp":[{"line-clamp":[Ev,`none`,$,zv]}],leading:[{leading:[a,...w()]}],"list-image":[{"list-image":[`none`,$,Q]}],"list-style-position":[{list:[`inside`,`outside`]}],"list-style-type":[{list:[`disc`,`decimal`,`none`,$,Q]}],"text-alignment":[{text:[`left`,`center`,`right`,`justify`,`start`,`end`]}],"placeholder-color":[{placeholder:N()}],"text-color":[{text:N()}],"text-decoration":[`underline`,`overline`,`line-through`,`no-underline`],"text-decoration-style":[{decoration:[...I(),`wavy`]}],"text-decoration-thickness":[{decoration:[Ev,`from-font`,`auto`,$,Rv]}],"text-decoration-color":[{decoration:N()}],"underline-offset":[{"underline-offset":[Ev,`auto`,$,Q]}],"text-transform":[`uppercase`,`lowercase`,`capitalize`,`normal-case`],"text-overflow":[`truncate`,`text-ellipsis`,`text-clip`],"text-wrap":[{text:[`wrap`,`nowrap`,`balance`,`pretty`]}],indent:[{indent:w()}],"tab-size":[{tab:[Dv,$,Q]}],"vertical-align":[{align:[`baseline`,`top`,`middle`,`bottom`,`text-top`,`text-bottom`,`sub`,`super`,$,Q]}],whitespace:[{whitespace:[`normal`,`nowrap`,`pre`,`pre-line`,`pre-wrap`,`break-spaces`]}],break:[{break:[`normal`,`words`,`all`,`keep`]}],wrap:[{wrap:[`break-word`,`anywhere`,`normal`]}],hyphens:[{hyphens:[`none`,`manual`,`auto`]}],content:[{content:[`none`,$,Q]}],"bg-attachment":[{bg:[`fixed`,`local`,`scroll`]}],"bg-clip":[{"bg-clip":[`border`,`padding`,`content`,`text`]}],"bg-origin":[{"bg-origin":[`border`,`padding`,`content`]}],"bg-position":[{bg:P()}],"bg-repeat":[{bg:re()}],"bg-size":[{bg:ie()}],"bg-image":[{bg:[`none`,{linear:[{to:[`t`,`tr`,`r`,`br`,`b`,`bl`,`l`,`tl`]},Dv,$,Q],radial:[``,$,Q],conic:[Dv,$,Q]},Yv,Uv]}],"bg-color":[{bg:N()}],"gradient-from-pos":[{from:ae()}],"gradient-via-pos":[{via:ae()}],"gradient-to-pos":[{to:ae()}],"gradient-from":[{from:N()}],"gradient-via":[{via:N()}],"gradient-to":[{to:N()}],rounded:[{rounded:F()}],"rounded-s":[{"rounded-s":F()}],"rounded-e":[{"rounded-e":F()}],"rounded-t":[{"rounded-t":F()}],"rounded-r":[{"rounded-r":F()}],"rounded-b":[{"rounded-b":F()}],"rounded-l":[{"rounded-l":F()}],"rounded-ss":[{"rounded-ss":F()}],"rounded-se":[{"rounded-se":F()}],"rounded-ee":[{"rounded-ee":F()}],"rounded-es":[{"rounded-es":F()}],"rounded-tl":[{"rounded-tl":F()}],"rounded-tr":[{"rounded-tr":F()}],"rounded-br":[{"rounded-br":F()}],"rounded-bl":[{"rounded-bl":F()}],"border-w":[{border:oe()}],"border-w-x":[{"border-x":oe()}],"border-w-y":[{"border-y":oe()}],"border-w-s":[{"border-s":oe()}],"border-w-e":[{"border-e":oe()}],"border-w-bs":[{"border-bs":oe()}],"border-w-be":[{"border-be":oe()}],"border-w-t":[{"border-t":oe()}],"border-w-r":[{"border-r":oe()}],"border-w-b":[{"border-b":oe()}],"border-w-l":[{"border-l":oe()}],"divide-x":[{"divide-x":oe()}],"divide-x-reverse":[`divide-x-reverse`],"divide-y":[{"divide-y":oe()}],"divide-y-reverse":[`divide-y-reverse`],"border-style":[{border:[...I(),`hidden`,`none`]}],"divide-style":[{divide:[...I(),`hidden`,`none`]}],"border-color":[{border:N()}],"border-color-x":[{"border-x":N()}],"border-color-y":[{"border-y":N()}],"border-color-s":[{"border-s":N()}],"border-color-e":[{"border-e":N()}],"border-color-bs":[{"border-bs":N()}],"border-color-be":[{"border-be":N()}],"border-color-t":[{"border-t":N()}],"border-color-r":[{"border-r":N()}],"border-color-b":[{"border-b":N()}],"border-color-l":[{"border-l":N()}],"divide-color":[{divide:N()}],"outline-style":[{outline:[...I(),`none`,`hidden`]}],"outline-offset":[{"outline-offset":[Ev,$,Q]}],"outline-w":[{outline:[``,Ev,Gv,Rv]}],"outline-color":[{outline:N()}],shadow:[{shadow:[``,`none`,u,Xv,Wv]}],"shadow-color":[{shadow:N()}],"inset-shadow":[{"inset-shadow":[`none`,d,Xv,Wv]}],"inset-shadow-color":[{"inset-shadow":N()}],"ring-w":[{ring:oe()}],"ring-w-inset":[`ring-inset`],"ring-color":[{ring:N()}],"ring-offset-w":[{"ring-offset":[Ev,Rv]}],"ring-offset-color":[{"ring-offset":N()}],"inset-ring-w":[{"inset-ring":oe()}],"inset-ring-color":[{"inset-ring":N()}],"text-shadow":[{"text-shadow":[`none`,f,Xv,Wv]}],"text-shadow-color":[{"text-shadow":N()}],opacity:[{opacity:[Ev,$,Q]}],"mix-blend":[{"mix-blend":[...se(),`plus-darker`,`plus-lighter`]}],"bg-blend":[{"bg-blend":se()}],"mask-clip":[{"mask-clip":[`border`,`padding`,`content`,`fill`,`stroke`,`view`]},`mask-no-clip`],"mask-composite":[{mask:[`add`,`subtract`,`intersect`,`exclude`]}],"mask-image-linear-pos":[{"mask-linear":[Ev]}],"mask-image-linear-from-pos":[{"mask-linear-from":L()}],"mask-image-linear-to-pos":[{"mask-linear-to":L()}],"mask-image-linear-from-color":[{"mask-linear-from":N()}],"mask-image-linear-to-color":[{"mask-linear-to":N()}],"mask-image-t-from-pos":[{"mask-t-from":L()}],"mask-image-t-to-pos":[{"mask-t-to":L()}],"mask-image-t-from-color":[{"mask-t-from":N()}],"mask-image-t-to-color":[{"mask-t-to":N()}],"mask-image-r-from-pos":[{"mask-r-from":L()}],"mask-image-r-to-pos":[{"mask-r-to":L()}],"mask-image-r-from-color":[{"mask-r-from":N()}],"mask-image-r-to-color":[{"mask-r-to":N()}],"mask-image-b-from-pos":[{"mask-b-from":L()}],"mask-image-b-to-pos":[{"mask-b-to":L()}],"mask-image-b-from-color":[{"mask-b-from":N()}],"mask-image-b-to-color":[{"mask-b-to":N()}],"mask-image-l-from-pos":[{"mask-l-from":L()}],"mask-image-l-to-pos":[{"mask-l-to":L()}],"mask-image-l-from-color":[{"mask-l-from":N()}],"mask-image-l-to-color":[{"mask-l-to":N()}],"mask-image-x-from-pos":[{"mask-x-from":L()}],"mask-image-x-to-pos":[{"mask-x-to":L()}],"mask-image-x-from-color":[{"mask-x-from":N()}],"mask-image-x-to-color":[{"mask-x-to":N()}],"mask-image-y-from-pos":[{"mask-y-from":L()}],"mask-image-y-to-pos":[{"mask-y-to":L()}],"mask-image-y-from-color":[{"mask-y-from":N()}],"mask-image-y-to-color":[{"mask-y-to":N()}],"mask-image-radial":[{"mask-radial":[$,Q]}],"mask-image-radial-from-pos":[{"mask-radial-from":L()}],"mask-image-radial-to-pos":[{"mask-radial-to":L()}],"mask-image-radial-from-color":[{"mask-radial-from":N()}],"mask-image-radial-to-color":[{"mask-radial-to":N()}],"mask-image-radial-shape":[{"mask-radial":[`circle`,`ellipse`]}],"mask-image-radial-size":[{"mask-radial":[{closest:[`side`,`corner`],farthest:[`side`,`corner`]}]}],"mask-image-radial-pos":[{"mask-radial-at":b()}],"mask-image-conic-pos":[{"mask-conic":[Ev]}],"mask-image-conic-from-pos":[{"mask-conic-from":L()}],"mask-image-conic-to-pos":[{"mask-conic-to":L()}],"mask-image-conic-from-color":[{"mask-conic-from":N()}],"mask-image-conic-to-color":[{"mask-conic-to":N()}],"mask-mode":[{mask:[`alpha`,`luminance`,`match`]}],"mask-origin":[{"mask-origin":[`border`,`padding`,`content`,`fill`,`stroke`,`view`]}],"mask-position":[{mask:P()}],"mask-repeat":[{mask:re()}],"mask-size":[{mask:ie()}],"mask-type":[{"mask-type":[`alpha`,`luminance`]}],"mask-image":[{mask:[`none`,$,Q]}],filter:[{filter:[``,`none`,$,Q]}],blur:[{blur:ce()}],brightness:[{brightness:[Ev,$,Q]}],contrast:[{contrast:[Ev,$,Q]}],"drop-shadow":[{"drop-shadow":[``,`none`,p,Xv,Wv]}],"drop-shadow-color":[{"drop-shadow":N()}],grayscale:[{grayscale:[``,Ev,$,Q]}],"hue-rotate":[{"hue-rotate":[Ev,$,Q]}],invert:[{invert:[``,Ev,$,Q]}],saturate:[{saturate:[Ev,$,Q]}],sepia:[{sepia:[``,Ev,$,Q]}],"backdrop-filter":[{"backdrop-filter":[``,`none`,$,Q]}],"backdrop-blur":[{"backdrop-blur":ce()}],"backdrop-brightness":[{"backdrop-brightness":[Ev,$,Q]}],"backdrop-contrast":[{"backdrop-contrast":[Ev,$,Q]}],"backdrop-grayscale":[{"backdrop-grayscale":[``,Ev,$,Q]}],"backdrop-hue-rotate":[{"backdrop-hue-rotate":[Ev,$,Q]}],"backdrop-invert":[{"backdrop-invert":[``,Ev,$,Q]}],"backdrop-opacity":[{"backdrop-opacity":[Ev,$,Q]}],"backdrop-saturate":[{"backdrop-saturate":[Ev,$,Q]}],"backdrop-sepia":[{"backdrop-sepia":[``,Ev,$,Q]}],"border-collapse":[{border:[`collapse`,`separate`]}],"border-spacing":[{"border-spacing":w()}],"border-spacing-x":[{"border-spacing-x":w()}],"border-spacing-y":[{"border-spacing-y":w()}],"table-layout":[{table:[`auto`,`fixed`]}],caption:[{caption:[`top`,`bottom`]}],transition:[{transition:[``,`all`,`colors`,`opacity`,`shadow`,`transform`,`none`,$,Q]}],"transition-behavior":[{transition:[`normal`,`discrete`]}],duration:[{duration:[Ev,`initial`,$,Q]}],ease:[{ease:[`linear`,`initial`,_,$,Q]}],delay:[{delay:[Ev,$,Q]}],animate:[{animate:[`none`,v,$,Q]}],backface:[{backface:[`hidden`,`visible`]}],perspective:[{perspective:[h,$,Q]}],"perspective-origin":[{"perspective-origin":x()}],rotate:[{rotate:le()}],"rotate-x":[{"rotate-x":le()}],"rotate-y":[{"rotate-y":le()}],"rotate-z":[{"rotate-z":le()}],scale:[{scale:ue()}],"scale-x":[{"scale-x":ue()}],"scale-y":[{"scale-y":ue()}],"scale-z":[{"scale-z":ue()}],"scale-3d":[`scale-3d`],skew:[{skew:de()}],"skew-x":[{"skew-x":de()}],"skew-y":[{"skew-y":de()}],transform:[{transform:[$,Q,``,`none`,`gpu`,`cpu`]}],"transform-origin":[{origin:x()}],"transform-style":[{transform:[`3d`,`flat`]}],translate:[{translate:R()}],"translate-x":[{"translate-x":R()}],"translate-y":[{"translate-y":R()}],"translate-z":[{"translate-z":R()}],"translate-none":[`translate-none`],zoom:[{zoom:[Dv,$,Q]}],accent:[{accent:N()}],appearance:[{appearance:[`none`,`auto`]}],"caret-color":[{caret:N()}],"color-scheme":[{scheme:[`normal`,`dark`,`light`,`light-dark`,`only-dark`,`only-light`]}],cursor:[{cursor:[`auto`,`default`,`pointer`,`wait`,`text`,`move`,`help`,`not-allowed`,`none`,`context-menu`,`progress`,`cell`,`crosshair`,`vertical-text`,`alias`,`copy`,`no-drop`,`grab`,`grabbing`,`all-scroll`,`col-resize`,`row-resize`,`n-resize`,`e-resize`,`s-resize`,`w-resize`,`ne-resize`,`nw-resize`,`se-resize`,`sw-resize`,`ew-resize`,`ns-resize`,`nesw-resize`,`nwse-resize`,`zoom-in`,`zoom-out`,$,Q]}],"field-sizing":[{"field-sizing":[`fixed`,`content`]}],"pointer-events":[{"pointer-events":[`auto`,`none`]}],resize:[{resize:[`none`,``,`y`,`x`]}],"scroll-behavior":[{scroll:[`auto`,`smooth`]}],"scrollbar-thumb-color":[{"scrollbar-thumb":N()}],"scrollbar-track-color":[{"scrollbar-track":N()}],"scrollbar-gutter":[{"scrollbar-gutter":[`auto`,`stable`,`both`]}],"scrollbar-w":[{scrollbar:[`auto`,`thin`,`none`]}],"scroll-m":[{"scroll-m":w()}],"scroll-mx":[{"scroll-mx":w()}],"scroll-my":[{"scroll-my":w()}],"scroll-ms":[{"scroll-ms":w()}],"scroll-me":[{"scroll-me":w()}],"scroll-mbs":[{"scroll-mbs":w()}],"scroll-mbe":[{"scroll-mbe":w()}],"scroll-mt":[{"scroll-mt":w()}],"scroll-mr":[{"scroll-mr":w()}],"scroll-mb":[{"scroll-mb":w()}],"scroll-ml":[{"scroll-ml":w()}],"scroll-p":[{"scroll-p":w()}],"scroll-px":[{"scroll-px":w()}],"scroll-py":[{"scroll-py":w()}],"scroll-ps":[{"scroll-ps":w()}],"scroll-pe":[{"scroll-pe":w()}],"scroll-pbs":[{"scroll-pbs":w()}],"scroll-pbe":[{"scroll-pbe":w()}],"scroll-pt":[{"scroll-pt":w()}],"scroll-pr":[{"scroll-pr":w()}],"scroll-pb":[{"scroll-pb":w()}],"scroll-pl":[{"scroll-pl":w()}],"snap-align":[{snap:[`start`,`end`,`center`,`align-none`]}],"snap-stop":[{snap:[`normal`,`always`]}],"snap-type":[{snap:[`none`,`x`,`y`,`both`]}],"snap-strictness":[{snap:[`mandatory`,`proximity`]}],touch:[{touch:[`auto`,`none`,`manipulation`]}],"touch-x":[{"touch-pan":[`x`,`left`,`right`]}],"touch-y":[{"touch-pan":[`y`,`up`,`down`]}],"touch-pz":[`touch-pinch-zoom`],select:[{select:[`none`,`text`,`all`,`auto`]}],"will-change":[{"will-change":[`auto`,`scroll`,`contents`,`transform`,$,Q]}],fill:[{fill:[`none`,...N()]}],"stroke-w":[{stroke:[Ev,Gv,Rv,zv]}],stroke:[{stroke:[`none`,...N()]}],"forced-color-adjust":[{"forced-color-adjust":[`auto`,`none`]}]},conflictingClassGroups:{"container-named":[`container-type`],overflow:[`overflow-x`,`overflow-y`],overscroll:[`overscroll-x`,`overscroll-y`],inset:[`inset-x`,`inset-y`,`inset-bs`,`inset-be`,`start`,`end`,`top`,`right`,`bottom`,`left`],"inset-x":[`right`,`left`],"inset-y":[`top`,`bottom`],flex:[`basis`,`grow`,`shrink`],gap:[`gap-x`,`gap-y`],p:[`px`,`py`,`ps`,`pe`,`pbs`,`pbe`,`pt`,`pr`,`pb`,`pl`],px:[`pr`,`pl`],py:[`pt`,`pb`],m:[`mx`,`my`,`ms`,`me`,`mbs`,`mbe`,`mt`,`mr`,`mb`,`ml`],mx:[`mr`,`ml`],my:[`mt`,`mb`],size:[`w`,`h`],"font-size":[`leading`],"fvn-normal":[`fvn-ordinal`,`fvn-slashed-zero`,`fvn-figure`,`fvn-spacing`,`fvn-fraction`],"fvn-ordinal":[`fvn-normal`],"fvn-slashed-zero":[`fvn-normal`],"fvn-figure":[`fvn-normal`],"fvn-spacing":[`fvn-normal`],"fvn-fraction":[`fvn-normal`],"line-clamp":[`display`,`overflow`],rounded:[`rounded-s`,`rounded-e`,`rounded-t`,`rounded-r`,`rounded-b`,`rounded-l`,`rounded-ss`,`rounded-se`,`rounded-ee`,`rounded-es`,`rounded-tl`,`rounded-tr`,`rounded-br`,`rounded-bl`],"rounded-s":[`rounded-ss`,`rounded-es`],"rounded-e":[`rounded-se`,`rounded-ee`],"rounded-t":[`rounded-tl`,`rounded-tr`],"rounded-r":[`rounded-tr`,`rounded-br`],"rounded-b":[`rounded-br`,`rounded-bl`],"rounded-l":[`rounded-tl`,`rounded-bl`],"border-spacing":[`border-spacing-x`,`border-spacing-y`],"border-w":[`border-w-x`,`border-w-y`,`border-w-s`,`border-w-e`,`border-w-bs`,`border-w-be`,`border-w-t`,`border-w-r`,`border-w-b`,`border-w-l`],"border-w-x":[`border-w-r`,`border-w-l`],"border-w-y":[`border-w-t`,`border-w-b`],"border-color":[`border-color-x`,`border-color-y`,`border-color-s`,`border-color-e`,`border-color-bs`,`border-color-be`,`border-color-t`,`border-color-r`,`border-color-b`,`border-color-l`],"border-color-x":[`border-color-r`,`border-color-l`],"border-color-y":[`border-color-t`,`border-color-b`],translate:[`translate-x`,`translate-y`,`translate-none`],"translate-none":[`translate`,`translate-x`,`translate-y`,`translate-z`],"scroll-m":[`scroll-mx`,`scroll-my`,`scroll-ms`,`scroll-me`,`scroll-mbs`,`scroll-mbe`,`scroll-mt`,`scroll-mr`,`scroll-mb`,`scroll-ml`],"scroll-mx":[`scroll-mr`,`scroll-ml`],"scroll-my":[`scroll-mt`,`scroll-mb`],"scroll-p":[`scroll-px`,`scroll-py`,`scroll-ps`,`scroll-pe`,`scroll-pbs`,`scroll-pbe`,`scroll-pt`,`scroll-pr`,`scroll-pb`,`scroll-pl`],"scroll-px":[`scroll-pr`,`scroll-pl`],"scroll-py":[`scroll-pt`,`scroll-pb`],touch:[`touch-x`,`touch-y`,`touch-pz`],"touch-x":[`touch`],"touch-y":[`touch`],"touch-pz":[`touch`]},conflictingClassGroupModifiers:{"font-size":[`leading`]},postfixLookupClassGroups:[`container-type`],orderSensitiveModifiers:[`*`,`**`,`after`,`backdrop`,`before`,`details-content`,`file`,`first-letter`,`first-line`,`marker`,`placeholder`,`selection`]}});function ly(...e){return cy(N_(e))}var uy=I_(`inline-flex h-9 shrink-0 items-center justify-center gap-2 whitespace-nowrap rounded-md border px-3 text-sm font-medium transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-slate-400 disabled:pointer-events-none disabled:opacity-50 dark:focus-visible:ring-zinc-500`,{variants:{variant:{primary:`border-slate-900 bg-slate-950 text-white hover:bg-slate-800 dark:border-zinc-100 dark:bg-zinc-50 dark:text-zinc-950 dark:hover:bg-zinc-200`,secondary:`border-slate-200 bg-white text-slate-900 hover:bg-slate-50 dark:border-zinc-800 dark:bg-zinc-950 dark:text-zinc-100 dark:hover:bg-zinc-900`,ghost:`border-transparent bg-transparent text-slate-700 hover:bg-slate-100 dark:text-zinc-300 dark:hover:bg-zinc-900`},size:{sm:`h-8 px-2 text-xs`,md:`h-9 px-3 text-sm`,icon:`h-9 w-9 px-0`}},defaultVariants:{variant:`secondary`,size:`md`}});function dy({className:e,variant:t,size:n,...r}){return(0,V.jsx)(`button`,{className:ly(uy({variant:t,size:n}),e),type:`button`,...r})}function fy({className:e,...t}){return(0,V.jsx)(`section`,{className:ly(`rounded-lg border border-slate-200/80 bg-white/95 text-slate-950 shadow-[0_1px_2px_rgba(15,23,42,0.04)] dark:border-zinc-800 dark:bg-zinc-950 dark:text-zinc-50`,e),...t})}function py({className:e,...t}){return(0,V.jsx)(`div`,{className:ly(`p-4 pt-0`,e),...t})}var my=[`codex`,`claude`,`kiro`,`trae`,`coco`,`openai`,`anthropic`],hy=new Set([`acp`,`status_projection`]);function gy(e){let t=e.trim().toLowerCase().replace(/_/gu,`-`);for(let e of my)if(t===e||t.startsWith(`${e}-`))return e;return t}function _y(e,t){let n=t?.trim().toLowerCase()??``;return n.length>0&&!hy.has(n)?gy(n):gy(e)}var vy={stop:`ready_stop`,resume:`resume_review`,delete:`delete_review`};function yy(e){return typeof e==`object`&&e&&!Array.isArray(e)?e:null}function by(e){return typeof e==`string`&&e.trim().length>0?e:null}function xy(e){let t=yy(e.projection);if(t?.schema_version!==`loopx_operation_projection_v0`)return null;let n=by(t.title),r=by(t.subtitle),i=by(t.focus),a=by(t.warning);if(!n||!r||!i||!a||!Array.isArray(t.fields))return null;let o=[];for(let e of t.fields){let t=yy(e),n=by(t?.label),r=by(t?.value);if(!n||!r)return null;o.push({label:n,value:r})}return{title:n,subtitle:r,focus:i,fields:o,warning:a}}function Sy(e){let t=yy(e);if(t?.action_kind!==`operation.execute`)return;let n=yy(t.normalized_parameters),r=yy(t.operation);if(!n||r?.schema_version!==`loopx_operation_envelope_v0`)return;let i=by(r.operation_id),a=by(r.confirmation_digest),o=by(r.expires_at),s=xy(n);if(!i||!a||!o||!s||i!==t.proposal_id)return;let c=r.lifecycle_state;if(c!==`awaiting_confirmation`&&c!==`claimed`&&c!==`outcome_observed`)return;let l={schemaVersion:`operation_review_frame_v0`,operationId:i,confirmationDigest:a,lifecycleState:c,simulated:yy(n.projection).simulated===!0,expiresAt:o,content:s};if(c===`awaiting_confirmation`)return{...l,kind:`confirmation`,attentionKind:`authority`,interactionMode:`confirm_reject`,decisions:[`confirm`,`reject`]};if(c===`claimed`)return{...l,kind:`pending`,attentionKind:`progress`,interactionMode:`inform`};let u=yy(r.outcome);if(!u)return;let d=u.outcome===`rejected_by_operator`,f=u.simulation===!0||l.simulated;return{...l,kind:`result`,attentionKind:`progress`,interactionMode:`inform`,resultKind:d?`rejected`:f?`simulation_completed`:`completed`,resultDeliveryVerified:yy(r.result_delivery)!==null,summary:by(u.summary)??``}}function Cy(e){let t=yy(e)??{},n={schemaVersion:`action_review_plan_v0`,proposalId:typeof t.proposal_id==`string`?t.proposal_id:``,sourceFingerprint:typeof t.expected_state_fingerprint==`string`?t.expected_state_fingerprint:``},r=Sy(t),i=e=>({...n,...e,...r?{operationFrame:r}:{}}),a=(e,t)=>i({interaction:e,reason:t,canApply:!1}),o=t.action_kind===`goal.lifecycle`;if(o&&t.gate!=null||t.status===`gated`)return a(`gated`,`authority_gate`);if(o&&t.stale!=null||t.status===`stale`)return a(`refresh`,`stale_proposal`);if(t.status===`applied`)return yy(t.receipt)?.projection_verified===!0&&(t.action_kind!==`operation.execute`||yy(yy(t.operation)?.result_delivery)!==null)?a(`completed`,`readback_verified`):a(`repair`,`readback_unverified`);if(t.status===`applying`)return a(`pending`,`apply_pending`);if(t.status===`failed`||t.error!=null)return a(`repair`,`apply_failed`);if(t.status!==`preview_ready`&&t.status!==`deferred`)return a(`inactive`,`inactive_proposal`);let s=(e,t=!0)=>i({interaction:`review`,reason:e,canApply:t});if(t.action_kind!==`goal.lifecycle`)return s(t.permission_classification===`protected`?`protected_action`:`action_review`);let c=t.validation_evidence,l=t.available_transitions;if(!(by(t.proposal_id)!==null&&by(t.expected_state_fingerprint)!==null&&Array.isArray(c)&&c.length>0&&c.every(e=>by(e)!==null)&&Array.isArray(l)&&l.includes(`apply`)))return a(`refresh`,`incomplete_proposal`);let u=yy(t.normalized_parameters),d=yy(t.context),f=u?.operation,p=by(u?.goal_id);if(!p||d?.goal_id!=null&&d.goal_id!==p)return a(`refresh`,`incomplete_proposal`);if(f!==`stop`&&f!==`resume`&&f!==`delete`)return s(`unknown_action`,!1);if(t.permission_classification===`protected`)return s(`protected_action`);if(t.permission_classification!==`durable_write`)return s(`unknown_permission`,!1);let m=vy[f];return m===`ready_stop`&&t.status===`preview_ready`?i({interaction:`direct`,reason:m,canApply:!0}):s(m===`ready_stop`?`action_review`:m)}function wy(e){return e.error_code===`action_stale`||e.error_code===`action_conflict`||yy(e.proposal)?.status===`stale`}function Ty(e){return typeof e==`object`&&e?e:{}}function Ey(e){return typeof e==`string`?e:``}function Dy(e,t){let n=Ty(e.plan),r=[],i=Ey(e.goal_id)||Ey(n.goal_id);i&&r.push({key:`goal_id`,label:t(`proposal.field.goalId`),value:i});let a=Ey(n.objective);a&&r.push({key:`objective`,label:t(`proposal.field.objective`),value:a}),(Array.isArray(n.lanes)?n.lanes:[]).forEach((e,n)=>{let i=Ty(e),a=Ey(i.lane_id)||`lane-${n+1}`,o=Ey(i.agent_id),s=Ey(i.acceptance);if(Ey(i.staffing)===`gap`){let e=Ty(i.declined_first_todo);r.push({key:`lane_${a}`,label:o||a,value:[t(`proposal.teamPlan.gapLane`),Ey(i.gap_reason_code),Ey(e.text)].filter(Boolean).join(` · `)});return}let c=Ty(i.first_todo),l=[Ey(c.priority),Ey(c.action_kind),Ey(c.text)].filter(Boolean).join(` · `);r.push({key:`lane_${a}`,label:o||a,value:[l||t(`proposal.teamPlan.laneUnstaffed`),s?`${t(`proposal.teamPlan.acceptanceShort`)}: ${s}`:``].filter(Boolean).join(` · `)})});let o=Array.isArray(n.gaps)?n.gaps:[];o.length>0&&r.push({key:`lane_gaps`,label:t(`proposal.field.laneGaps`),value:o.map(e=>{let t=Ty(e);return[Ey(t.lane_id),Ey(t.reason_code)].filter(Boolean).join(`: `)}).filter(Boolean).join(` · `)});let s=Ty(n.quota_envelope),c=Object.entries(s);c.length>0&&r.push({key:`quota_envelope`,label:t(`proposal.field.quotaEnvelope`),value:c.map(([e,t])=>`${e}: ${String(t??``)}`).join(` · `)});let l=Ey(n.stop_condition);return l&&r.push({key:`stop_condition`,label:t(`proposal.field.stopCondition`),value:l}),r}function Oy(e){let t=Ty(e.plan);return Array.isArray(t.lanes)?t.lanes.length:0}function ky(e){let t=Ty(e.plan);return Ey(e.goal_id)||Ey(t.goal_id)}function Ay(e){return{blockingTodoCount:e.blockingTodoCount,goalNotifications:e.goalNotifications,goals:e.goals,openUserTodoCount:e.openUserTodoCount,systemHealth:e.systemHealth,attentionHistory:e.attentionHistory,userTodos:e.userTodos,workers:e.workers}}function jy(e,t){return e.goals.find(e=>e.goalId===t)?.title??t}function My(e){return e.activationState===`stopped`||e.state===`已停止`?`stopped`:e.state===`已完成`?`history`:e.needsYou||e.state===`等你`?`needs_you`:e.state===`推进中`||e.state===`需修复`?`running`:e.state===`安静运行`?`observing`:`scheduled`}function Ny(e){let t=e;return t>=1e6?`${(t/1e6).toFixed(1)}M`:t>=1e3?`${(t/1e3).toFixed(1)}k`:String(t)}function Py(e){return`$${e.toFixed(2)}`}function Fy(e){let t=e;return t>=36e5?`${(t/36e5).toFixed(1)}h`:t>=6e4?`${(t/6e4).toFixed(1)}m`:t>=1e3?`${Math.round(t/1e3)}s`:`${t}ms`}function Iy(e,t,n){return e==null?t:n(e)}function Ly(e){return!!(e&&[e.tokens24h,e.tokens7d,e.costUsd24h,e.costUsd7d,e.durationMs24h,e.durationMs7d].some(e=>e!=null))}function Ry(e,t){if(!Ly(e))return null;let n=(e,n,r,i)=>{let a=[n==null?null:`${Ny(n)} ${t.tokens}`,r==null?null:`${t.cost}: ${Py(r)}`,i==null?null:`${t.duration}: ${Fy(i)}`].filter(e=>e!==null);return a.length?`${e} ${a.join(` · `)}`:null};return n(t.period7d,e.tokens7d,e.costUsd7d,e.durationMs7d)??n(t.period24h,e.tokens24h,e.costUsd24h,e.durationMs24h)}function zy({ariaLabel:e,className:t,icon:n,onChange:r,options:i,prefixLabel:a,value:o}){let s=(0,B.useId)(),c=(0,B.useRef)(null),l=(0,B.useRef)(null),u=(0,B.useRef)(new Map),[d,f]=(0,B.useState)(!1),[p,m]=(0,B.useState)(o),h=i.find(e=>e.value===o)??i[0],g=i.filter(e=>!e.disabled);(0,B.useEffect)(()=>{if(!d)return;let e=e=>{c.current?.contains(e.target)||f(!1)};return document.addEventListener(`pointerdown`,e),()=>document.removeEventListener(`pointerdown`,e)},[d]),(0,B.useEffect)(()=>{d&&u.current.get(p)?.focus()},[p,d]);function _(e){m(e)}function v(e=`selected`){let t=e===`last`?g.at(-1):g[0],n=e===`selected`&&h&&!h.disabled?h:t;n&&(f(!0),_(n.value))}function y({restoreFocus:e=!1}={}){f(!1),e&&l.current?.focus()}function b(e){e.disabled||(r(e.value),y({restoreFocus:!0}))}function x(e){if(!g.length)return;let t=g.findIndex(e=>e.value===p),n=t<0?0:(t+e+g.length)%g.length;_(g[n].value)}function S(e){e.key===`ArrowDown`||e.key===`Enter`||e.key===` `?(e.preventDefault(),v(`selected`)):e.key===`ArrowUp`&&(e.preventDefault(),v(`last`))}function C(e,t){if(e.key===`ArrowDown`)e.preventDefault(),x(1);else if(e.key===`ArrowUp`)e.preventDefault(),x(-1);else if(e.key===`Home`)e.preventDefault(),g[0]&&_(g[0].value);else if(e.key===`End`){e.preventDefault();let t=g.at(-1);t&&_(t.value)}else e.key===`Enter`||e.key===` `?(e.preventDefault(),b(t)):e.key===`Escape`?(e.preventDefault(),y({restoreFocus:!0})):e.key===`Tab`&&y()}let w;return(0,V.jsxs)(`div`,{className:`personal-select${t?` ${t}`:``}`,ref:c,children:[(0,V.jsxs)(`button`,{"aria-controls":s,"aria-expanded":d,"aria-haspopup":`listbox`,"aria-label":e,className:`personal-select-trigger`,"data-value":o,onClick:()=>d?y():v(),onKeyDown:S,ref:l,role:`combobox`,type:`button`,children:[n?(0,V.jsx)(`span`,{className:`personal-select-icon`,children:n}):null,(0,V.jsxs)(`span`,{className:`personal-select-value`,children:[a?(0,V.jsx)(`small`,{children:a}):null,(0,V.jsx)(`span`,{children:h?.label??o})]}),(0,V.jsx)(rm,{"aria-hidden":!0,className:d?`is-open`:void 0,size:14})]}),d?(0,V.jsx)(`div`,{"aria-label":e,className:`personal-select-listbox`,id:s,role:`listbox`,children:i.map(e=>{let t=e.group&&e.group!==w;return w=e.group,(0,V.jsxs)(`div`,{className:`personal-select-option-wrap`,children:[t?(0,V.jsx)(`div`,{className:`personal-select-group-label`,children:e.group}):null,(0,V.jsxs)(`button`,{"aria-disabled":e.disabled||void 0,"aria-selected":e.value===o,className:`personal-select-option`,disabled:e.disabled,id:`${s}-${e.value.replace(/[^a-z0-9_-]/gi,`-`)}`,onClick:()=>b(e),onFocus:()=>m(e.value),onKeyDown:t=>C(t,e),ref:t=>{t?u.current.set(e.value,t):u.current.delete(e.value)},role:`option`,tabIndex:e.value===p?0:-1,type:`button`,children:[(0,V.jsx)(`span`,{children:e.label}),e.value===o?(0,V.jsx)(nm,{"aria-hidden":!0,size:15}):null]})]},e.value)})}):null]})}function By({agents:e,managerChannelBinding:t,managerChatOpen:n,managerRuntime:r,mobileNavigationOpen:i,onOpenGoalCapabilities:a,onOpenGoalDetail:o,onOpenManagerChat:s,onRefresh:c,onOpenNavigation:l,onSelectGoalTab:u,onSelectAgent:d,onReturnManagerHome:f,refreshState:p,readOnlySourceLabel:m,selectedAgentId:h,selectedGoal:g,selectedGoalTab:_}){let{locale:v,t:y}=Ji(),[b,x]=(0,B.useState)(!1),S=(0,B.useRef)(null),C=(0,B.useRef)(null);(0,B.useEffect)(()=>{if(!b)return;function e(e){C.current?.contains(e.target)||x(!1)}function t(e){e.key===`Escape`&&(x(!1),S.current?.focus())}return document.addEventListener(`pointerdown`,e),document.addEventListener(`keydown`,t),()=>{document.removeEventListener(`pointerdown`,e),document.removeEventListener(`keydown`,t)}},[b]),(0,B.useEffect)(()=>x(!1),[g?.goalId]);function w(e){x(!1),e?.()}let T=g?Ry(g.usage,{cost:y(`drawer.costShort`),duration:y(`drawer.durationShort`),period24h:y(`drawer.period24h`),period7d:y(`drawer.period7d`),tokens:y(`drawer.tokensShort`)}):null,E=t?t.executor_kind===`individual`?y(`header.managerExecutorKindIndividual`):t.executor_kind===`managed`?y(`header.managerExecutorKindManaged`):y(`header.managerExecutorKindRegistered`):null,D=t?.available===!1,O=t?.available===!1?t.unavailable_reason:null,k=O===`operator_credential_unconfigured`?`header.managerExecutionUnavailableCredential`:O===`dsh_runtime_unavailable`?`header.managerExecutionUnavailableRuntime`:O===`invalid_reasoning_effort`?`header.managerExecutionUnavailableEffort`:`header.managerExecutionUnavailable`,ee=t&&t.executor_endpoint_source===`product_default`&&t.executor_endpoint_default_reason===`steward_channel_default`?`header.managerEndpointStewardDefault`:null;return(0,V.jsxs)(`header`,{className:`personal-channel-header`,children:[(0,V.jsx)(`button`,{"aria-expanded":i??!1,"aria-label":y(`header.openGoalNavigation`),className:`personal-icon-button personal-mobile-menu`,onClick:l,type:`button`,children:(0,V.jsx)(Om,{size:18})}),(0,V.jsxs)(`div`,{className:`personal-channel-title`,children:[(0,V.jsx)(`h1`,{children:g?.title??y(`header.manager`)}),!g&&r?(0,V.jsx)(`p`,{children:r.status===`ready`?y(`header.managerRuntime`,{profile:r.runtime_profile,sandbox:r.sandbox}):y(`header.managerRuntimeFallback`,{profile:r.runtime_profile,sandbox:r.sandbox})}):null,!g&&t?(0,V.jsxs)(`p`,{className:`personal-manager-execution`,children:[(0,V.jsxs)(`span`,{className:D?`personal-execution-chip is-unavailable`:`personal-execution-chip`,children:[(0,V.jsx)(`span`,{className:`personal-execution-chip-endpoint`,children:t.executor_endpoint}),E?(0,V.jsx)(`span`,{className:`personal-execution-chip-kind`,children:E}):null,(0,V.jsx)(`span`,{className:`personal-execution-chip-model`,children:t.model})]}),D?(0,V.jsx)(`span`,{className:`personal-execution-note`,children:y(k,{executor:t.executor_endpoint,credential:t.credential_env_var})}):null,ee?(0,V.jsx)(`span`,{className:`personal-execution-rule-note`,children:y(ee,{executor:t.executor_endpoint})}):null]}):null,g?(0,V.jsx)(`p`,{children:g.loadState?y(g.loadState===`error`?`startup.goalError`:`startup.goalLoading`):`${g.agentLaneCount&&g.agentLaneCount>1?y(`header.workAgentCount`,{count:g.agentLaneCount}):g.agentLabel??g.agentId} · ${g.loadState?y(g.loadState===`error`?`startup.goalError`:`startup.goalLoading`):Yi(g.state,v)}${T?` · ${T}`:``} · ${g.nextSentence}`}):null]}),g?(0,V.jsxs)(`nav`,{"aria-label":y(`header.goalView`),className:`personal-goal-tabs`,children:[(0,V.jsx)(`button`,{"aria-current":_===`chat`?`page`:void 0,onClick:()=>u(`chat`),type:`button`,children:y(`header.chat`)}),(0,V.jsx)(`button`,{"aria-current":_===`tasks`?`page`:void 0,onClick:()=>u(`tasks`),type:`button`,children:y(`header.tasks`)}),(0,V.jsx)(`button`,{"aria-current":_===`files`?`page`:void 0,onClick:()=>u(`files`),type:`button`,children:y(`header.files`)})]}):(0,V.jsxs)(`nav`,{"aria-label":y(`header.managerView`),className:`personal-goal-tabs`,children:[(0,V.jsx)(`button`,{"aria-current":n?void 0:`page`,onClick:f,type:`button`,children:y(`header.managerOverview`)}),(0,V.jsx)(`button`,{"aria-current":n?`page`:void 0,onClick:s,type:`button`,children:y(`header.chat`)})]}),(0,V.jsxs)(`div`,{className:`personal-channel-actions`,children:[g&&o&&a?(0,V.jsxs)(`div`,{className:`personal-goal-tools`,ref:C,children:[(0,V.jsxs)(`button`,{"aria-expanded":b,"aria-haspopup":`menu`,"aria-label":y(`header.goalSettingsDescription`),className:`personal-goal-tools-trigger`,onClick:()=>x(e=>!e),ref:S,title:y(`header.goalSettingsDescription`),type:`button`,children:[(0,V.jsx)(Jm,{"aria-hidden":!0,size:16}),(0,V.jsx)(`span`,{children:y(`header.goalSettings`)}),(0,V.jsx)(rm,{"aria-hidden":!0,size:13})]}),b?(0,V.jsxs)(`fieldset`,{"aria-label":y(`header.goalSettings`),className:`personal-goal-tools-menu`,children:[(0,V.jsxs)(`button`,{onClick:()=>w(o),type:`button`,children:[(0,V.jsx)(xm,{"aria-hidden":!0,size:17}),(0,V.jsx)(`span`,{children:(0,V.jsx)(`strong`,{children:y(`header.goalDetails`)})})]}),(0,V.jsxs)(`button`,{onClick:()=>w(a),type:`button`,children:[(0,V.jsx)(Jm,{"aria-hidden":!0,size:17}),(0,V.jsx)(`span`,{children:(0,V.jsx)(`strong`,{children:y(`header.goalCapabilities`)})})]})]}):null]}):null,m?(0,V.jsxs)(`span`,{className:`personal-read-only-source`,title:y(`header.readOnlySourceDescription`,{source:m}),children:[(0,V.jsx)(hm,{size:15}),m,(0,V.jsx)(`small`,{children:y(`common.readOnly`)})]}):(0,V.jsx)(zy,{ariaLabel:y(`header.selectChatRuntime`),className:`personal-agent-select`,icon:(0,V.jsx)($p,{size:16}),onChange:d,options:e.map(e=>({disabled:!e.available,label:`${e.label}${e.available?``:` · ${y(`header.agentUnavailable`)}`}`,value:e.agentId})),prefixLabel:y(`header.chatRuntime`),value:h}),(0,V.jsxs)(`span`,{className:`personal-live-indicator`,children:[(0,V.jsx)(`i`,{}),y(`header.live`)]}),c?(0,V.jsxs)(`span`,{className:`personal-refresh-control is-${p??`idle`}`,children:[p===`loading`?(0,V.jsx)(`small`,{children:y(`header.refreshing`)}):p===`done`?(0,V.jsx)(`small`,{children:y(`header.refreshDone`)}):p===`error`?(0,V.jsx)(`small`,{children:y(`header.refreshFailed`)}):null,(0,V.jsx)(`button`,{"aria-label":y(p===`loading`?`header.refreshing`:`header.refresh`),className:`personal-icon-button`,disabled:p===`loading`,onClick:c,type:`button`,children:(0,V.jsx)(zm,{className:p===`loading`?`is-spinning`:void 0,size:17})})]}):null]})]})}function Vy({attention:e,onSelect:t}){let{t:n}=Ji(),r=Zi(e.updatedAt,n);return(0,V.jsxs)(`button`,{className:`personal-timeline-row personal-attention-row`,"data-testid":`personal-browse-row`,onClick:t,type:`button`,children:[(0,V.jsx)(`span`,{className:`personal-row-icon is-attention`,children:(0,V.jsx)(om,{size:18})}),(0,V.jsxs)(`span`,{className:`personal-row-copy`,children:[(0,V.jsxs)(`small`,{children:[e.goalTitle??e.goalId,` · `,n(`home.lane.needsYou`),r?` · ${n(`tasks.waitingAge`,{age:r})}`:``]}),(0,V.jsx)(`strong`,{children:e.text})]}),(0,V.jsx)(`span`,{className:`personal-priority-dot is-${e.priority??(e.blocking?`high`:`medium`)}`}),(0,V.jsx)(`span`,{className:`personal-row-status ${e.blocking?`is-blocking`:`is-pending`}`,children:e.blocking?n(`tasks.blocked`):n(`tasks.pending`)}),(0,V.jsx)(im,{size:17})]})}var Hy=/(`[^`\n]+`)|(\*\*[^*\n]+(\*[^*\n]*)?\*\*)|(\[[^\]\n]{1,120}\]\(https?:\/\/[^)\s]+\))/g;function Uy(e,t){let n=[],r=0,i=0;for(let a of e.matchAll(Hy)){let o=a.index??0;o>r&&n.push(e.slice(r,o));let s=a[0],c=`${t}-i${i++}`;if(s.startsWith("`"))n.push((0,V.jsx)(`code`,{className:`personal-md-code`,children:s.slice(1,-1)},c));else if(s.startsWith(`**`))n.push((0,V.jsx)(`strong`,{children:s.slice(2,-2)},c));else{let e=s.indexOf(`](`),t=s.slice(1,e),r=s.slice(e+2,-1);n.push((0,V.jsx)(`a`,{className:`personal-md-link`,href:r,rel:`noreferrer`,target:`_blank`,children:t},c))}r=o+s.length}return r=4))throw e;await new Promise(e=>globalThis.setTimeout(e,250*2**(i-1)))}}if(!a)throw new Ph(`Agent 事件流连接已断开。`,{reconnect_attempts:i})}async function ng(e,t){return Gh(`/api/chat/sessions/${e}/turns/${t}/interrupt`,{method:`POST`,body:`{}`})}async function rg(e,t,n={}){let r=await $h(e,t,n.clientTurnId??crypto.randomUUID(),n.attachments);return n.onPhase?.(`turn.accepted`,r.turn_id),ig(e,r.turn_id,r.events_url,n)}async function ig(e,t,n,r={}){let i=null,a={failure:null,interrupted:null};try{await tg(n,e=>{r.onPhase?.(e.kind,t),(e.kind===`answer.delta`||e.kind===`assistant.delta`)&&r.onDelta?.(String(e.payload.text??``)),e.kind===`agent.phase`&&r.onActivity?.(String(e.payload.label??`Agent 正在处理`)),e.kind===`turn.completed`&&(i=e.payload.response),e.kind===`turn.failed`&&(a.failure=e.payload),e.kind===`turn.interrupted`&&(a.interrupted=e.payload)},r.signal)}catch(i){throw i instanceof Ph&&!r.signal?.aborted?new Ph(i.message,{...i.payload,events_url:n,reconnectable:!0,session_id:e,turn_id:t}):i}if(a.failure)throw new Ph(String(a.failure.message||`Agent 回合失败。`),a.failure);if(a.interrupted)throw new Ph(`Agent 回合已中断。`,{...a.interrupted,error_code:`turn_interrupted`,session_id:e,turn_id:t});return{response:Oh.parse(i),sessionId:e,turnId:t}}async function ag(e,t,n={}){return ig(e,t,`/api/chat/sessions/${e}/turns/${t}/events`,n)}async function og(e){let t=kh.parse(await Gh(`/api/chat/sessions/${e}`,{keepalive:!0,method:`DELETE`}));if(t.session_id!==e)throw new Ph(`Agent 会话关闭回执与本次请求不一致。`,{session_id:t.session_id});return t}async function sg(e){return Gh(`/api/chat/sessions/${e}/resume`,{method:`POST`,body:`{}`})}function cg(e){return{goal_id:e.goalId,enabled:e.enabled,...e.modelConfig===void 0?{}:{model_config:e.modelConfig},...e.enabled?{max_children:e.maxChildren,allowed_domains:e.allowedDomains}:{}}}function lg(e,t){let n=e.after.orchestration,r=[...new Set(t.allowedDomains)],i=e.feature_summary.multi_subagent===`enabled`;if(!(e.goal_id===t.goalId&&i===t.enabled&&(t.modelConfig===void 0||JSON.stringify(n.model_config??null)===JSON.stringify(t.modelConfig))&&(t.enabled?n.max_children===t.maxChildren&&JSON.stringify(n.allowed_domains)===JSON.stringify(r):n.spawn_allowed===!1&&n.max_children===0)))throw new Ph(`Goal 子代理配置回执与本次请求不一致,界面已停止更新。`,{after:e.after,goal_id:e.goal_id});return e}async function ug(e){let t=Mh.parse(await Gh(`/api/chat/goal-subagents/dry-run`,{method:`POST`,body:JSON.stringify(cg(e))}));if(!t.dry_run||t.execute||t.written)throw new Ph(`Goal 子代理预览返回了非预览回执,已停止进入确认状态。`,{result:t});return lg(t,e)}async function dg(e,t){let n=Mh.parse(await Gh(`/api/chat/goal-subagents/apply`,{method:`POST`,body:JSON.stringify({...cg(e),preview_id:t})}));if(n.preview_id!==t||n.dry_run||!n.execute)throw new Ph(`Goal 子代理写入回执与本次确认不一致,界面已停止更新。`,{result:n});if(n.changed&&(!n.written||!n.global_sync.executed||!n.global_sync.readback.verified))throw new Ph(`Goal 子代理设置未通过共享状态读回验证。`,{result:n});return lg(n,e)}var fg=J({ok:X(!0),targets:q(J({enabled:K(),provider:W(),target_name:W()}))});async function pg(){return fg.parse(await Gh(`/api/chat/goal-channel/targets`)).targets}var mg=J({ok:K(),blocker:W().optional(),public_summary:W().optional(),status:W().optional()});async function hg(e){return mg.parse(await Gh(`/api/chat/goal-channel/setup`,{method:`POST`,body:JSON.stringify({execute:e.execute,goal_id:e.goalId,target:e.target})}))}async function gg(e){return mg.parse(await Gh(`/api/chat/goal-channel/configure`,{method:`POST`,body:JSON.stringify({auto_notify_human_gates:e.autoNotify,goal_id:e.goalId})}))}var _g=J({schema_version:X(`periodic_report_schedule_v0`),schedule_id:W(),rrule:W(),timezone:W()});J({schema_version:X(`periodic_report_machine_defaults_v0`),enabled:K(),inheritance:X(`live_machine_default`),profile_preset:W().optional(),route_ref:W().optional(),timezone:W(),schedule:_g.nullable().optional()});var vg=J({schema_version:X(`loopx_machine_configuration_v0`),namespaces:yd(W(),yd(W(),ad()))}),yg=J({namespace:W(),title:W(),description:W(),schema_versions:q(W()).min(1),configuration_template:yd(W(),ad()),template_status:Y([`ready`,`schema_only`])}),bg=J({schema_version:X(`machine_configuration_catalog_v0`),namespaces:q(yg)}),xg=J({key:W(),label:W(),description:W(),input_kind:Y([`boolean`,`number`,`select`,`string_list`,`text`,`periodic_report_schedule`]),nullable:K().optional(),required:K(),minimum:G().int().optional(),maximum:G().int().optional(),options:q(W()).optional()}),Sg=J({schema_version:X(`capability_configuration_editor_v0`),editable:K(),supported_scopes:q(Y([`goal`,`machine`])),writable_scopes:q(Y([`goal`,`machine`])),fields:q(xg),read_only_reason:W().optional()}),Cg=J({schema_version:X(`capability_configuration_catalog_v0`),capabilities:q(J({capability_id:W(),display_name:W(),description:W(),available_scopes:q(Y([`goal`,`machine`])),machine_namespace:W().optional(),goal_feature_id:W().optional(),effective_value_policy:X(`goal_override_over_live_machine_default`).optional(),availability:W().optional(),default:yd(W(),ad()).optional(),current:yd(W(),ad()).optional(),machine_current:yd(W(),ad()).optional(),effective_configuration:J({schema_version:X(`capability_configuration_resolution_v0`),capability_id:W(),source:Y([`goal_override`,`machine_default`,`capability_default`,`not_configured`]),configuration:yd(W(),ad()).nullable(),inherited:K(),goal_override_present:K(),machine_default_present:K(),effective_revision:W()}).optional(),documentation:yd(W(),ad()).optional(),context_contribution:J({supported_phases:q(Y([`before_plan`,`before_delegate`,`after_delegate_result`])),target:X(`coordinator`),activation:X(`with_capability`),receipt_required:X(!0)}).optional(),configuration_editor:Sg}))}),wg=J({ok:X(!0),schema_version:X(`goal_configuration_inspection_v0`),status:X(`configured`),goal_id:W(),revision:W(),available_capabilities:q(W()),capability_catalog:Cg}),Tg=J({ok:X(!0),goal_id:W(),capability_id:W(),changed_fields:q(W()),goal_configuration:yd(W(),ad()).nullable(),capability_catalog:Cg}),Eg=Tg.extend({schema_version:X(`goal_configuration_update_plan_v0`),status:X(`preview`),action:Y([`create`,`update`,`delete`,`unchanged`]),current_revision:W(),desired_revision:W(),base_revision:W(),plan_revision:W(),writes_required:G().int().nonnegative()}),Dg=dd([Tg.extend({schema_version:X(`goal_configuration_transaction_v0`),status:Y([`applied`,`unchanged`]),plan_revision:W(),applied_revision:W(),readback_verified:X(!0)}),J({ok:X(!1),schema_version:X(`goal_configuration_transaction_v0`),status:X(`partial_write`),goal_id:W(),capability_id:W(),plan_revision:W(),applied_revision:W().nullable(),source_written:X(!0),shared_sync_pending:X(!0),readback_verified:K(),changed_fields:q(W()),goal_configuration:yd(W(),ad()).nullable(),capability_catalog:Cg,error:W(),recommended_action:W()})]),Og=J({ok:X(!0),available_namespaces:q(W()),namespace_catalog:bg.optional().default({schema_version:`machine_configuration_catalog_v0`,namespaces:[]}),capability_catalog:Cg,changed_namespaces:q(W()).optional().default([]),invalid_namespaces:q(W()).optional().default([]),machine_configuration:vg.nullable().optional()}),kg=Og.extend({schema_version:X(`machine_configuration_inspection_v0`),status:Y([`configured`,`absent`,`invalid`]),revision:W()}),Ag=Og.extend({schema_version:X(`machine_configuration_update_plan_v0`),status:X(`preview`),action:Y([`create`,`update`,`delete`,`unchanged`]),current_revision:W(),desired_revision:W(),plan_revision:W(),writes_required:G().int().nonnegative(),machine_configuration:vg.nullable()}),jg=Og.extend({schema_version:X(`machine_configuration_transaction_v0`),status:Y([`applied`,`unchanged`]),plan_revision:W(),transaction_id:W().nullable(),readback_verified:X(!0),rollback_available:K(),applied_revision:W().optional(),prior_revision:W().optional()}),Mg=Og.extend({schema_version:X(`machine_configuration_rollback_plan_v0`),status:X(`preview`),action:Y([`delete`,`restore`,`unchanged`,`blocked`]),reason:W(),transaction_id:W(),plan_revision:W(),rollback_allowed:K(),writes_required:G().int().nonnegative()}),Ng=Og.extend({schema_version:X(`machine_configuration_rollback_receipt_v0`),status:Y([`rolled_back`,`unchanged`]),transaction_id:W(),plan_revision:W(),rollback_id:W().nullable(),readback_verified:X(!0)}),Pg=J({configured:K(),source:Y([`machine_store`,`service_environment`,`unset`]),env_var:W().optional(),fingerprint:W().nullable().optional(),value:W().nullable().optional(),blocked_by:W().optional()}),Fg=J({ok:X(!0),schema_version:X(`operator_provider_credential_projection_v0`),action:W().optional(),store_ref:W(),store_revision:W(),record_present:K(),status:Y([`configured`,`absent`,`invalid`]),repair:W(),provider_key:Pg,base_url:Pg});async function Ig(){return Fg.parse(await Gh(`/api/chat/operator-credential`))}async function Lg(e){return Fg.parse(await Gh(`/api/chat/operator-credential`,{method:`POST`,body:JSON.stringify(e)}))}async function Rg(){return kg.parse(await Gh(`/api/chat/machine-configuration`))}async function zg(e){let t=new URLSearchParams({goal_id:e});return wg.parse(await Gh(`/api/chat/goal-configuration?${t.toString()}`))}async function Bg(e,t,n){return Eg.parse(await Gh(`/api/chat/goal-configuration/preview`,{method:`POST`,body:JSON.stringify({goal_id:e,capability_id:t,configuration:n})}))}async function Vg(e,t,n,r){return Dg.parse(await Gh(`/api/chat/goal-configuration/apply`,{method:`POST`,body:JSON.stringify({goal_id:e,capability_id:t,configuration:n,expected_plan_revision:r})}))}async function Hg(e,t){return Ag.parse(await Gh(`/api/chat/machine-configuration/preview`,{method:`POST`,body:JSON.stringify({namespace:e,namespace_configuration:t})}))}async function Ug(e,t,n){return jg.parse(await Gh(`/api/chat/machine-configuration/apply`,{method:`POST`,body:JSON.stringify({expected_plan_revision:n,namespace:e,namespace_configuration:t})}))}async function Wg(e){return Ag.parse(await Gh(`/api/chat/machine-configuration/preview`,{method:`POST`,body:JSON.stringify({namespace:e,operation:`remove`})}))}async function Gg(e,t){return jg.parse(await Gh(`/api/chat/machine-configuration/apply`,{method:`POST`,body:JSON.stringify({expected_plan_revision:t,namespace:e,operation:`remove`})}))}async function Kg(e){return Mg.parse(await Gh(`/api/chat/machine-configuration/rollback`,{method:`POST`,body:JSON.stringify({execute:!1,transaction_id:e})}))}async function qg(e,t){return Ng.parse(await Gh(`/api/chat/machine-configuration/rollback`,{method:`POST`,body:JSON.stringify({execute:!0,expected_plan_revision:t,transaction_id:e})}))}var Jg=J({ok:X(!0),goals:q(J({goal_id:W(),repository:J({branch:W(),identity:W(),label:W(),read_only:X(!0)})}))});async function Yg(){return Jg.parse(await Gh(`/api/chat/goals/contexts`)).goals}var Xg=J({ok:X(!0),apps:q(J({active:K(),app_ref:W(),brand:W(),health_error_code:W().nullable().default(null),label:W(),ready:K(),reply_ready:K().default(!1)}))});async function Zg(){return Xg.parse(await Gh(`/api/chat/lark/apps`)).apps}var Qg=J({ok:X(!0),app_ref:W(),error:W().nullable(),setup_id:W(),status:Y([`starting`,`waiting_for_feishu`,`ready`,`failed`,`cancelled`]),verification_url:W().url().nullable()});async function $g(e){return Qg.parse(await Gh(`/api/chat/lark/app-setups`,{method:`POST`,body:JSON.stringify({app_ref:e.appRef,brand:e.brand})}))}async function e_(e){return Qg.parse(await Gh(`/api/chat/lark/app-setups/${encodeURIComponent(e)}`))}async function t_(e){return Qg.parse(await Gh(`/api/chat/lark/app-setups/${encodeURIComponent(e)}`,{method:`DELETE`}))}var n_=[`invalid_event`,`binding_unavailable`,`chat_mismatch`,`topic_mismatch`,`route_ambiguous`,`self_message`,`invalid_routing_state`,`not_addressed`],r_=J({ok:X(!0),chats:q(J({chat_id:W(),chat_name:W()}))});async function i_(e,t){let n=new URLSearchParams({app_ref:e});return t&&n.set(`query`,t),r_.parse(await Gh(`/api/chat/lark/chats?${n.toString()}`)).chats}var a_=J({ok:X(!0),connections:q(J({conversation_kind:Y([`goal`,`manager`]).default(`goal`),agent_id:W().nullable().default(null),connection_id:W(),app_label:W(),app_ref:W(),capture_scope:Y([`addressed_only`,`configured_chat_all`]).default(`addressed_only`),chat_name:W(),enabled:K(),goal_id:W(),goal_title:W(),health_error_code:W().nullable().default(null),history_permission_guidance:J({action:X(`enable_application_scopes_and_publish`),api_document_url:W().url(),capability:X(`group_history_pagination`),identity:X(`bot`),required_scopes:_d([X(`im:message.group_msg`),X(`im:message.group_msg.include_bot:read`)]),schema_version:X(`lark_bot_group_history_permission_guidance_v0`)}).nullable().default(null),incoming_mode:Y([`mentions`,`all`]),ingress_mode:Y([`live_steering`,`session_queue`,`async_inbox`,`direct_session`]).default(`async_inbox`),event_count:G().int().nonnegative().default(0),last_event_reason:Y(n_).nullable().default(null).catch(null),last_event_status:W().nullable().default(null),listener_error_code:W().nullable().default(null),listener_status:Y([`starting`,`listening`,`retrying`,`stopped`]).nullable().default(null),replied_count:G().int().nonnegative().default(0),reply_ready:K().default(!1),reply_mode:X(`topic_reply`),session_bound:K().default(!1),target_ref:W(),topic_name:W(),topic_setup_required:K()}))});async function o_(){return a_.parse(await Gh(`/api/chat/lark/connections`)).connections}async function s_(e){return mg.parse(await Gh(`/api/chat/lark/connections`,{method:`POST`,body:JSON.stringify({...e.agentBindings?{agent_bindings:e.agentBindings.map(e=>({agent_id:e.agentId,app_ref:e.appRef}))}:{},...e.agentId?{agent_id:e.agentId}:{},...e.appRef?{app_ref:e.appRef}:{},...e.connectionId?{connection_id:e.connectionId}:{},conversation_kind:e.conversationKind??`goal`,capture_scope:e.captureScope,chat_id:e.chatId,chat_name:e.chatName,execute:e.execute,goal_id:e.goalId,incoming_mode:e.incomingMode,ingress_mode:e.ingressMode,reply_mode:e.replyMode})}))}async function c_(e,t){let n=new URLSearchParams({goal_id:e,connection_id:t});return mg.parse(await Gh(`/api/chat/lark/connections?${n.toString()}`,{method:`DELETE`}))}function l_(e){return{loadedUrl:null,projectionRevision:0,requestedUrl:e,selectionRevision:0,requestGeneration:0}}function u_(e,t){return e.selectionRevision+=1,e.requestedUrl=t,e.selectionRevision}function d_(e,t,n){if(n.background)return e.requestedUrl!==null||e.loadedUrl!==t?null:(e.requestGeneration+=1,{background:!0,projectionRevision:e.projectionRevision,selectionRevision:e.selectionRevision,url:t,generation:e.requestGeneration});let r=n.selectionRevision??e.selectionRevision+1;return n.selectionRevision!==void 0&&e.selectionRevision!==r?null:(e.selectionRevision=r,e.projectionRevision+=1,e.requestedUrl=t,e.requestGeneration+=1,{background:!1,projectionRevision:e.projectionRevision,selectionRevision:r,url:t,generation:e.requestGeneration})}function f_(e,t){return t.generation===e.requestGeneration&&e.projectionRevision===t.projectionRevision&&e.selectionRevision===t.selectionRevision}function p_(e,t){return f_(e,t)&&(!t.background||e.requestedUrl===null&&e.loadedUrl===t.url)}function m_(e,t,n){return t.get(e)===n}function h_(e,t,n,r){return e.filter(e=>m_(r(e),n,t))}function g_(e,t,n){let r=new Set,i=[];for(let a of[...e,...t]){let e=n(a);e==null||r.has(e)||(r.add(e),i.push(a))}return i}var __=[`runs_24h`,`runs_7d`,`quota_spend_slots_24h`,`quota_spend_slots_7d`,`automation_run_count_24h`,`automation_run_count_7d`,`progress_signal_run_count_24h`,`progress_signal_run_count_7d`],v_=[`input_tokens_24h`,`input_tokens_7d`,`output_tokens_24h`,`output_tokens_7d`,`cache_tokens_24h`,`cache_tokens_7d`,`cost_usd_24h`,`cost_usd_7d`,`duration_ms_24h`,`duration_ms_7d`],y_=[`accounting`,`decision`,`evidence`,`state`,`work`],b_={accounting:0,decision:0,evidence:0,state:0,work:0},x_={runs_24h:0,runs_7d:0,quota_spend_slots_24h:0,quota_spend_slots_7d:0,automation_run_count_24h:0,automation_run_count_7d:0,progress_signal_run_count_24h:0,progress_signal_run_count_7d:0};function S_(e,t){let n={...e};for(let r of __)n[r]=(Number(e[r])||0)+(Number(t[r])||0);for(let r of v_)(e[r]!==void 0||t[r]!==void 0)&&(n[r]=(e[r]??0)+(t[r]??0));return n}function C_(e,t){return!e.length||t<=0?e:e.map(e=>({...e,project_share_24h:Math.round((Number(e.runs_24h)||0)/t*1e3)/1e3}))}function w_(e,t){let n={...e};for(let r of y_)n[r]=(e[r]??0)+(t[r]??0);return n}function T_(e){let t={events_24h:0,events_7d:0,by_class_24h:{...b_},by_class_7d:{...b_}};for(let n of e)t.events_24h+=n.events_24h,t.events_7d+=n.events_7d,t.by_class_24h=w_(t.by_class_24h,n.by_class_24h),t.by_class_7d=w_(t.by_class_7d,n.by_class_7d);return t}function E_(e,t,n){if(!e&&!t)return null;let r=h_(e?.goals??[],`active`,n,e=>e.goal_id),i=h_(t?.goals??[],`stopped`,n,e=>e.goal_id),a=g_(r,i,e=>e.goal_id),o=T_(r),s=T_(i),c={events_24h:o.events_24h+s.events_24h,events_7d:o.events_7d+s.events_7d,by_class_24h:w_(o.by_class_24h,s.by_class_24h),by_class_7d:w_(o.by_class_7d,s.by_class_7d)};return{...e??t,goals:a,sample_run_count:(e?.sample_run_count??0)+(t?.sample_run_count??0),totals:c}}function D_(e,t,n){if(!e&&!t)return null;let r=g_([...h_(e?.items??[],`active`,n,e=>e.goal_id),...h_(t?.items??[],`stopped`,n,e=>e.goal_id)],[],e=>`${e.goal_id}:${e.decision_kind??``}:${e.decision_at??``}`),i={decision_count:(e?.summary.decision_count??0)+(t?.summary.decision_count??0),stale_count:r.filter(e=>e.stale_by_age).length,rebase_required_count:(e?.summary.rebase_required_count??0)+(t?.summary.rebase_required_count??0),fresh_count:(e?.summary.fresh_count??0)+(t?.summary.fresh_count??0)};return{...e??t,items:r,sample_run_count:(e?.sample_run_count??0)+(t?.sample_run_count??0),summary:i}}function O_(e,t){return g_([...e,...t].sort((e,t)=>t.generated_at.localeCompare(e.generated_at)),[],e=>`${e.goal_id}:${e.generated_at}:${e.classification??``}`)}function k_(e,t,n){let r=g_(h_(e.items,`active`,n,e=>e.goal_id),h_(t.items,`stopped`,n,e=>e.goal_id),e=>e.goal_id);return{...e,item_count:r.length,items:r,needs_controller:r.filter(e=>e.waiting_on===`controller`).length,needs_codex:r.filter(e=>e.waiting_on===`codex`).length,needs_user_or_controller:r.filter(e=>[`user_or_controller`,`controller`].includes(e.waiting_on)).length,watching_external_evidence:r.filter(e=>e.waiting_on===`external_evidence`).length}}function A_(e){let t=e.todo_id?.trim()||``;return t?`${e.goal_id}:${t}`:`${e.goal_id}:synthetic:${e.role??``}:${e.index??``}:${e.text??``}`}function j_(e){let t={...x_};for(let n of e){for(let e of __)t[e]+=Number(n[e])||0;for(let e of v_)n[e]!==void 0&&(t[e]=(t[e]??0)+n[e])}return t}function M_(e,t,n){if(!e&&!t)return null;let r=h_(e?.items??[],`active`,n,e=>e.goal_id),i=h_(t?.items??[],`stopped`,n,e=>e.goal_id),a=g_(r,i,A_);return{...e??t,current_projected_count:r.length+i.length,items:a,rollout_event_count:a.reduce((e,t)=>e+(t.event_count??0),0),total_count:a.length}}function N_(e,t,n){if(!e&&!t)return null;let r=h_(e?.goals??[],`active`,n,e=>e.goal_id),i=h_(t?.goals??[],`stopped`,n,e=>e.goal_id),a=g_(r,i,e=>e.goal_id),o=S_(j_(r),j_(i));return{...e??t,goals:C_(a,Number(o.runs_24h)||0),sample_run_count:(e?.sample_run_count??0)+(t?.sample_run_count??0),totals:o}}function P_(e,t,n){if(!e&&!t)return null;let r=(e?.agents??[]).filter(e=>e.goal_ids.some(e=>m_(e,n,`active`))||(e.current_todo?.goal_id?m_(e.current_todo.goal_id,n,`active`):!1)),i=(t?.agents??[]).filter(e=>e.goal_ids.some(e=>m_(e,n,`stopped`))||(e.current_todo?.goal_id?m_(e.current_todo.goal_id,n,`stopped`):!1)),a=g_(r,i,e=>e.agent_id).map(e=>{let t=i.find(t=>t.agent_id===e.agent_id);return t?{...e,goal_ids:Array.from(new Set([...e.goal_ids??[],...t.goal_ids]))}:e});return{...e??t,agents:a,source_summary:(e??t)?.source_summary?{...(e??t).source_summary,projected_agent_count:a.length,registered_agent_count:new Set(a.map(e=>e.agent_id)).size}:(e??t)?.source_summary}}function F_(e,t,n){if(!e&&!t)return null;let r=g_(h_(e?.goals??[],`active`,n,e=>e.goal_id),h_(t?.goals??[],`stopped`,n,e=>e.goal_id),e=>e.goal_id);return{...e??t,goals:r}}function I_(e,t){let n=t.goal_projection?.scope;if(n!==`active`&&n!==`stopped`)return t;let r=n,i=t.run_history.goals,a=e.run_history.goals,o=g_(r===`active`?i:a.filter(e=>e.activation_state!==`stopped`),r===`stopped`?i:a.filter(e=>e.activation_state===`stopped`),e=>e.id),s=new Map(o.map(e=>[e.id,e.activation_state])),c=r===`active`?t:e,l=r===`stopped`?t:e,u=e.goal_projection?.registry_revision??null,d=t.goal_projection?.registry_revision??null,f=u===null||d===null||u===d;return{...e,agent_management_projection:P_(c.agent_management_projection,l.agent_management_projection,s),attention_queue:k_(c.attention_queue,l.attention_queue,s),decision_freshness_summary:D_(c.decision_freshness_summary,l.decision_freshness_summary,s),event_ledger_summary:E_(c.event_ledger_summary,l.event_ledger_summary,s),goal_channel_notification_projection:F_(c.goal_channel_notification_projection,l.goal_channel_notification_projection,s),goal_projection:{schema_version:`loopx_goal_projection_scope_v0`,...t.goal_projection,complete:f,projected_goal_count:o.length,registry_goal_count:t.goal_projection?.registry_goal_count??0,scope:`all`},run_history:{...e.run_history,goal_count:o.length,goals:o,recent_runs:O_(c.run_history.recent_runs,l.run_history.recent_runs),run_count:c.run_history.run_count+l.run_history.run_count},todo_index:M_(c.todo_index,l.todo_index,s),usage_summary:N_(c.usage_summary,l.usage_summary,s)}}function L_(e){var t,n,r=``;if(typeof e==`string`||typeof e==`number`)r+=e;else if(typeof e==`object`){if(Array.isArray(e)){var i=e.length;for(t=0;ttypeof e==`boolean`?`${e}`:e===0?`0`:e,B_=R_,V_=(e,t)=>n=>{if(t?.variants==null)return B_(e,n?.class,n?.className);let{variants:r,defaultVariants:i}=t,a=Object.keys(r).map(e=>{let t=n?.[e],a=i?.[e];if(t===null)return null;let o=z_(t)||z_(a);return r[e][o]}),o=n&&Object.entries(n).reduce((e,t)=>{let[n,r]=t;return r===void 0||(e[n]=r),e},{});return B_(e,a,t?.compoundVariants?.reduce((e,t)=>{let{class:n,className:r,...a}=t;return Object.entries(a).every(e=>{let[t,n]=e;return Array.isArray(n)?n.includes({...i,...o}[t]):{...i,...o}[t]===n})?[...e,n,r]:e},[]),n?.class,n?.className)},H_=(e,t)=>{let n=Array(e.length+t.length);for(let t=0;t({classGroupId:e,validator:t}),W_=(e=new Map,t=null,n)=>({nextPart:e,validators:t,classGroupId:n}),G_=`-`,K_=[],q_=`arbitrary..`,J_=e=>{let t=Z_(e),{conflictingClassGroups:n,conflictingClassGroupModifiers:r}=e;return{getClassGroupId:e=>{if(e.startsWith(`[`)&&e.endsWith(`]`))return X_(e);let n=e.split(G_);return Y_(n,+(n[0]===``&&n.length>1),t)},getConflictingClassGroupIds:(e,t)=>{if(t){let t=r[e],i=n[e];return t?i?H_(i,t):t:i||K_}return n[e]||K_}}},Y_=(e,t,n)=>{if(e.length-t===0)return n.classGroupId;let r=e[t],i=n.nextPart.get(r);if(i){let n=Y_(e,t+1,i);if(n)return n}let a=n.validators;if(a===null)return;let o=t===0?e.join(G_):e.slice(t).join(G_),s=a.length;for(let e=0;ee.slice(1,-1).indexOf(`:`)===-1?void 0:(()=>{let t=e.slice(1,-1),n=t.indexOf(`:`),r=t.slice(0,n);return r?q_+r:void 0})(),Z_=e=>{let{theme:t,classGroups:n}=e;return Q_(n,t)},Q_=(e,t)=>{let n=W_();for(let r in e){let i=e[r];$_(i,n,r,t)}return n},$_=(e,t,n,r)=>{let i=e.length;for(let a=0;a{if(typeof e==`string`){tv(e,t,n);return}if(typeof e==`function`){nv(e,t,n,r);return}rv(e,t,n,r)},tv=(e,t,n)=>{let r=e===``?t:iv(t,e);r.classGroupId=n},nv=(e,t,n,r)=>{if(av(e)){$_(e(r),t,n,r);return}t.validators===null&&(t.validators=[]),t.validators.push(U_(n,e))},rv=(e,t,n,r)=>{let i=Object.entries(e),a=i.length;for(let e=0;e{let n=e,r=t.split(G_),i=r.length;for(let e=0;e`isThemeGetter`in e&&e.isThemeGetter===!0,ov=e=>{if(e<1)return{get:()=>void 0,set:()=>{}};let t=0,n=Object.create(null),r=Object.create(null),i=(i,a)=>{n[i]=a,t++,t>e&&(t=0,r=n,n=Object.create(null))};return{get(e){let t=n[e];if(t!==void 0)return t;if((t=r[e])!==void 0)return i(e,t),t},set(e,t){e in n?n[e]=t:i(e,t)}}},sv=`!`,cv=`:`,lv=[],uv=(e,t,n,r,i)=>({modifiers:e,hasImportantModifier:t,baseClassName:n,maybePostfixModifierPosition:r,isExternal:i}),dv=e=>{let{prefix:t,experimentalParseClassName:n}=e,r=e=>{let t=[],n=0,r=0,i=0,a,o=e.length;for(let s=0;si?a-i:void 0;return uv(t,l,c,u)};if(t){let e=t+cv,n=r;r=t=>t.startsWith(e)?n(t.slice(e.length)):uv(lv,!1,t,void 0,!0)}if(n){let e=r;r=t=>n({className:t,parseClassName:e})}return r},fv=e=>{let t=new Map;return e.orderSensitiveModifiers.forEach((e,n)=>{t.set(e,1e6+n)}),e=>{let n=[],r=[];for(let i=0;i0&&(r.sort(),n.push(...r),r=[]),n.push(a)):r.push(a)}return r.length>0&&(r.sort(),n.push(...r)),n}},pv=e=>({cache:ov(e.cacheSize),parseClassName:dv(e),sortModifiers:fv(e),postfixLookupClassGroupIds:mv(e),...J_(e)}),mv=e=>{let t=Object.create(null),n=e.postfixLookupClassGroups;if(n)for(let e=0;e{let{parseClassName:n,getClassGroupId:r,getConflictingClassGroupIds:i,sortModifiers:a,postfixLookupClassGroupIds:o}=t,s=[],c=e.trim().split(hv),l=``;for(let e=c.length-1;e>=0;--e){let t=c[e],{isExternal:u,modifiers:d,hasImportantModifier:f,baseClassName:p,maybePostfixModifierPosition:m}=n(t);if(u){l=t+(l.length>0?` `+l:l);continue}let h=!!m,g;if(h){g=r(p.substring(0,m));let e=g&&o[g]?r(p):void 0;e&&e!==g&&(g=e,h=!1)}else g=r(p);if(!g){if(!h){l=t+(l.length>0?` `+l:l);continue}if(g=r(p),!g){l=t+(l.length>0?` `+l:l);continue}h=!1}let _=d.length===0?``:d.length===1?d[0]:a(d).join(`:`),v=f?_+sv:_,y=v+g;if(s.indexOf(y)>-1)continue;s.push(y);let b=i(g,h);for(let e=0;e0?` `+l:l)}return l},_v=(...e)=>{let t=0,n,r,i=``;for(;t{if(typeof e==`string`)return e;let t,n=``;for(let r=0;r{let n,r,i,a,o=o=>(n=pv(t.reduce((e,t)=>t(e),e())),r=n.cache.get,i=n.cache.set,a=s,s(o)),s=e=>{let t=r(e);if(t)return t;let a=gv(e,n);return i(e,a),a};return a=o,(...e)=>a(_v(...e))},bv=[],xv=e=>{let t=t=>t[e]||bv;return t.isThemeGetter=!0,t},Sv=/^\[(?:(\w[\w-]*):)?(.+)\]$/i,Cv=/^\((?:(\w[\w-]*):)?(.+)\)$/i,wv=/^\d+(?:\.\d+)?\/\d+(?:\.\d+)?$/,Tv=/^(\d+(\.\d+)?)?(xs|sm|md|lg|xl)$/,Ev=/\d+(%|px|r?em|[sdl]?v([hwib]|min|max)|pt|pc|in|cm|mm|cap|ch|ex|r?lh|cq(w|h|i|b|min|max))|\b(calc|min|max|clamp)\(.+\)|^0$/,Dv=/^(rgba?|hsla?|hwb|(ok)?(lab|lch)|color-mix)\(.+\)$/,Ov=/^(inset_)?-?((\d+)?\.?(\d+)[a-z]+|0)_-?((\d+)?\.?(\d+)[a-z]+|0)/,kv=/^(url|image|image-set|cross-fade|element|(repeating-)?(linear|radial|conic)-gradient)\(.+\)$/,Av=e=>wv.test(e),jv=e=>!!e&&!Number.isNaN(Number(e)),Mv=e=>!!e&&Number.isInteger(Number(e)),Nv=e=>e.endsWith(`%`)&&jv(e.slice(0,-1)),Pv=e=>Tv.test(e),Fv=()=>!0,Iv=e=>Ev.test(e)&&!Dv.test(e),Lv=()=>!1,Rv=e=>Ov.test(e),zv=e=>kv.test(e),Bv=e=>!Q(e)&&!$(e),Vv=e=>e.startsWith(`@container`)&&(e[10]===`/`&&e[11]!==void 0||e[11]===`s`&&e[16]!==void 0&&e.startsWith(`-size/`,10)||e[11]===`n`&&e[18]!==void 0&&e.startsWith(`-normal/`,10)),Hv=e=>ry(e,sy,Lv),Q=e=>Sv.test(e),Uv=e=>ry(e,cy,Iv),Wv=e=>ry(e,ly,jv),Gv=e=>ry(e,dy,Fv),Kv=e=>ry(e,uy,Lv),qv=e=>ry(e,ay,Lv),Jv=e=>ry(e,oy,zv),Yv=e=>ry(e,fy,Rv),$=e=>Cv.test(e),Xv=e=>iy(e,cy),Zv=e=>iy(e,uy),Qv=e=>iy(e,ay),$v=e=>iy(e,sy),ey=e=>iy(e,oy),ty=e=>iy(e,fy,!0),ny=e=>iy(e,dy,!0),ry=(e,t,n)=>{let r=Sv.exec(e);return r?r[1]?t(r[1]):n(r[2]):!1},iy=(e,t,n=!1)=>{let r=Cv.exec(e);return r?r[1]?t(r[1]):n:!1},ay=e=>e===`position`||e===`percentage`,oy=e=>e===`image`||e===`url`,sy=e=>e===`length`||e===`size`||e===`bg-size`,cy=e=>e===`length`,ly=e=>e===`number`,uy=e=>e===`family-name`,dy=e=>e===`number`||e===`weight`,fy=e=>e===`shadow`,py=yv(()=>{let e=xv(`color`),t=xv(`font`),n=xv(`text`),r=xv(`font-weight`),i=xv(`tracking`),a=xv(`leading`),o=xv(`breakpoint`),s=xv(`container`),c=xv(`spacing`),l=xv(`radius`),u=xv(`shadow`),d=xv(`inset-shadow`),f=xv(`text-shadow`),p=xv(`drop-shadow`),m=xv(`blur`),h=xv(`perspective`),g=xv(`aspect`),_=xv(`ease`),v=xv(`animate`),y=()=>[`auto`,`avoid`,`all`,`avoid-page`,`page`,`left`,`right`,`column`],b=()=>[`center`,`top`,`bottom`,`left`,`right`,`top-left`,`left-top`,`top-right`,`right-top`,`bottom-right`,`right-bottom`,`bottom-left`,`left-bottom`],x=()=>[...b(),$,Q],S=()=>[`auto`,`hidden`,`clip`,`visible`,`scroll`],C=()=>[`auto`,`contain`,`none`],w=()=>[$,Q,c],T=()=>[Av,`full`,`auto`,...w()],E=()=>[Mv,`none`,`subgrid`,$,Q],D=()=>[`auto`,{span:[`full`,Mv,$,Q]},Mv,$,Q],O=()=>[Mv,`auto`,$,Q],k=()=>[`auto`,`min`,`max`,`fr`,$,Q],ee=()=>[`start`,`end`,`center`,`between`,`around`,`evenly`,`stretch`,`baseline`,`center-safe`,`end-safe`],te=()=>[`start`,`end`,`center`,`stretch`,`center-safe`,`end-safe`],A=()=>[`auto`,...w()],j=()=>[Av,`auto`,`full`,`dvw`,`dvh`,`lvw`,`lvh`,`svw`,`svh`,`min`,`max`,`fit`,...w()],M=()=>[Av,`screen`,`full`,`dvw`,`lvw`,`svw`,`min`,`max`,`fit`,...w()],ne=()=>[Av,`screen`,`full`,`lh`,`dvh`,`lvh`,`svh`,`min`,`max`,`fit`,...w()],N=()=>[e,$,Q],P=()=>[...b(),Qv,qv,{position:[$,Q]}],re=()=>[`no-repeat`,{repeat:[``,`x`,`y`,`space`,`round`]}],ie=()=>[`auto`,`cover`,`contain`,$v,Hv,{size:[$,Q]}],ae=()=>[Nv,Xv,Uv],F=()=>[``,`none`,`full`,l,$,Q],oe=()=>[``,jv,Xv,Uv],I=()=>[`solid`,`dashed`,`dotted`,`double`],se=()=>[`normal`,`multiply`,`screen`,`overlay`,`darken`,`lighten`,`color-dodge`,`color-burn`,`hard-light`,`soft-light`,`difference`,`exclusion`,`hue`,`saturation`,`color`,`luminosity`],L=()=>[jv,Nv,Qv,qv],ce=()=>[``,`none`,m,$,Q],le=()=>[`none`,jv,$,Q],ue=()=>[`none`,jv,$,Q],de=()=>[jv,$,Q],R=()=>[Av,`full`,...w()];return{cacheSize:500,theme:{animate:[`spin`,`ping`,`pulse`,`bounce`],aspect:[`video`],blur:[Pv],breakpoint:[Pv],color:[Fv],container:[Pv],"drop-shadow":[Pv],ease:[`in`,`out`,`in-out`],font:[Bv],"font-weight":[`thin`,`extralight`,`light`,`normal`,`medium`,`semibold`,`bold`,`extrabold`,`black`],"inset-shadow":[Pv],leading:[`none`,`tight`,`snug`,`normal`,`relaxed`,`loose`],perspective:[`dramatic`,`near`,`normal`,`midrange`,`distant`,`none`],radius:[Pv],shadow:[Pv],spacing:[`px`,jv],text:[Pv],"text-shadow":[Pv],tracking:[`tighter`,`tight`,`normal`,`wide`,`wider`,`widest`]},classGroups:{aspect:[{aspect:[`auto`,`square`,Av,Q,$,g]}],container:[`container`],"container-type":[{"@container":[``,`normal`,`size`,$,Q]}],"container-named":[Vv],columns:[{columns:[jv,Q,$,s]}],"break-after":[{"break-after":y()}],"break-before":[{"break-before":y()}],"break-inside":[{"break-inside":[`auto`,`avoid`,`avoid-page`,`avoid-column`]}],"box-decoration":[{"box-decoration":[`slice`,`clone`]}],box:[{box:[`border`,`content`]}],display:[`block`,`inline-block`,`inline`,`flex`,`inline-flex`,`table`,`inline-table`,`table-caption`,`table-cell`,`table-column`,`table-column-group`,`table-footer-group`,`table-header-group`,`table-row-group`,`table-row`,`flow-root`,`grid`,`inline-grid`,`contents`,`list-item`,`hidden`],sr:[`sr-only`,`not-sr-only`],float:[{float:[`right`,`left`,`none`,`start`,`end`]}],clear:[{clear:[`left`,`right`,`both`,`none`,`start`,`end`]}],isolation:[`isolate`,`isolation-auto`],"object-fit":[{object:[`contain`,`cover`,`fill`,`none`,`scale-down`]}],"object-position":[{object:x()}],overflow:[{overflow:S()}],"overflow-x":[{"overflow-x":S()}],"overflow-y":[{"overflow-y":S()}],overscroll:[{overscroll:C()}],"overscroll-x":[{"overscroll-x":C()}],"overscroll-y":[{"overscroll-y":C()}],position:[`static`,`fixed`,`absolute`,`relative`,`sticky`],inset:[{inset:T()}],"inset-x":[{"inset-x":T()}],"inset-y":[{"inset-y":T()}],start:[{"inset-s":T(),start:T()}],end:[{"inset-e":T(),end:T()}],"inset-bs":[{"inset-bs":T()}],"inset-be":[{"inset-be":T()}],top:[{top:T()}],right:[{right:T()}],bottom:[{bottom:T()}],left:[{left:T()}],visibility:[`visible`,`invisible`,`collapse`],z:[{z:[Mv,`auto`,$,Q]}],basis:[{basis:[Av,`full`,`auto`,s,...w()]}],"flex-direction":[{flex:[`row`,`row-reverse`,`col`,`col-reverse`]}],"flex-wrap":[{flex:[`nowrap`,`wrap`,`wrap-reverse`]}],flex:[{flex:[jv,Av,`auto`,`initial`,`none`,Q]}],grow:[{grow:[``,jv,$,Q]}],shrink:[{shrink:[``,jv,$,Q]}],order:[{order:[Mv,`first`,`last`,`none`,$,Q]}],"grid-cols":[{"grid-cols":E()}],"col-start-end":[{col:D()}],"col-start":[{"col-start":O()}],"col-end":[{"col-end":O()}],"grid-rows":[{"grid-rows":E()}],"row-start-end":[{row:D()}],"row-start":[{"row-start":O()}],"row-end":[{"row-end":O()}],"grid-flow":[{"grid-flow":[`row`,`col`,`dense`,`row-dense`,`col-dense`]}],"auto-cols":[{"auto-cols":k()}],"auto-rows":[{"auto-rows":k()}],gap:[{gap:w()}],"gap-x":[{"gap-x":w()}],"gap-y":[{"gap-y":w()}],"justify-content":[{justify:[...ee(),`normal`]}],"justify-items":[{"justify-items":[...te(),`normal`]}],"justify-self":[{"justify-self":[`auto`,...te()]}],"align-content":[{content:[`normal`,...ee()]}],"align-items":[{items:[...te(),{baseline:[``,`last`]}]}],"align-self":[{self:[`auto`,...te(),{baseline:[``,`last`]}]}],"place-content":[{"place-content":ee()}],"place-items":[{"place-items":[...te(),`baseline`]}],"place-self":[{"place-self":[`auto`,...te()]}],p:[{p:w()}],px:[{px:w()}],py:[{py:w()}],ps:[{ps:w()}],pe:[{pe:w()}],pbs:[{pbs:w()}],pbe:[{pbe:w()}],pt:[{pt:w()}],pr:[{pr:w()}],pb:[{pb:w()}],pl:[{pl:w()}],m:[{m:A()}],mx:[{mx:A()}],my:[{my:A()}],ms:[{ms:A()}],me:[{me:A()}],mbs:[{mbs:A()}],mbe:[{mbe:A()}],mt:[{mt:A()}],mr:[{mr:A()}],mb:[{mb:A()}],ml:[{ml:A()}],"space-x":[{"space-x":w()}],"space-x-reverse":[`space-x-reverse`],"space-y":[{"space-y":w()}],"space-y-reverse":[`space-y-reverse`],size:[{size:j()}],"inline-size":[{inline:[`auto`,...M()]}],"min-inline-size":[{"min-inline":[`auto`,...M()]}],"max-inline-size":[{"max-inline":[`none`,...M()]}],"block-size":[{block:[`auto`,...ne()]}],"min-block-size":[{"min-block":[`auto`,...ne()]}],"max-block-size":[{"max-block":[`none`,...ne()]}],w:[{w:[s,`screen`,...j()]}],"min-w":[{"min-w":[s,`screen`,`none`,...j()]}],"max-w":[{"max-w":[s,`screen`,`none`,`prose`,{screen:[o]},...j()]}],h:[{h:[`screen`,`lh`,...j()]}],"min-h":[{"min-h":[`screen`,`lh`,`none`,...j()]}],"max-h":[{"max-h":[`screen`,`lh`,...j()]}],"font-size":[{text:[`base`,n,Xv,Uv]}],"font-smoothing":[`antialiased`,`subpixel-antialiased`],"font-style":[`italic`,`not-italic`],"font-weight":[{font:[r,ny,Gv]}],"font-stretch":[{"font-stretch":[`ultra-condensed`,`extra-condensed`,`condensed`,`semi-condensed`,`normal`,`semi-expanded`,`expanded`,`extra-expanded`,`ultra-expanded`,Nv,Q]}],"font-family":[{font:[Zv,Kv,t]}],"font-features":[{"font-features":[Q]}],"fvn-normal":[`normal-nums`],"fvn-ordinal":[`ordinal`],"fvn-slashed-zero":[`slashed-zero`],"fvn-figure":[`lining-nums`,`oldstyle-nums`],"fvn-spacing":[`proportional-nums`,`tabular-nums`],"fvn-fraction":[`diagonal-fractions`,`stacked-fractions`],tracking:[{tracking:[i,$,Q]}],"line-clamp":[{"line-clamp":[jv,`none`,$,Wv]}],leading:[{leading:[a,...w()]}],"list-image":[{"list-image":[`none`,$,Q]}],"list-style-position":[{list:[`inside`,`outside`]}],"list-style-type":[{list:[`disc`,`decimal`,`none`,$,Q]}],"text-alignment":[{text:[`left`,`center`,`right`,`justify`,`start`,`end`]}],"placeholder-color":[{placeholder:N()}],"text-color":[{text:N()}],"text-decoration":[`underline`,`overline`,`line-through`,`no-underline`],"text-decoration-style":[{decoration:[...I(),`wavy`]}],"text-decoration-thickness":[{decoration:[jv,`from-font`,`auto`,$,Uv]}],"text-decoration-color":[{decoration:N()}],"underline-offset":[{"underline-offset":[jv,`auto`,$,Q]}],"text-transform":[`uppercase`,`lowercase`,`capitalize`,`normal-case`],"text-overflow":[`truncate`,`text-ellipsis`,`text-clip`],"text-wrap":[{text:[`wrap`,`nowrap`,`balance`,`pretty`]}],indent:[{indent:w()}],"tab-size":[{tab:[Mv,$,Q]}],"vertical-align":[{align:[`baseline`,`top`,`middle`,`bottom`,`text-top`,`text-bottom`,`sub`,`super`,$,Q]}],whitespace:[{whitespace:[`normal`,`nowrap`,`pre`,`pre-line`,`pre-wrap`,`break-spaces`]}],break:[{break:[`normal`,`words`,`all`,`keep`]}],wrap:[{wrap:[`break-word`,`anywhere`,`normal`]}],hyphens:[{hyphens:[`none`,`manual`,`auto`]}],content:[{content:[`none`,$,Q]}],"bg-attachment":[{bg:[`fixed`,`local`,`scroll`]}],"bg-clip":[{"bg-clip":[`border`,`padding`,`content`,`text`]}],"bg-origin":[{"bg-origin":[`border`,`padding`,`content`]}],"bg-position":[{bg:P()}],"bg-repeat":[{bg:re()}],"bg-size":[{bg:ie()}],"bg-image":[{bg:[`none`,{linear:[{to:[`t`,`tr`,`r`,`br`,`b`,`bl`,`l`,`tl`]},Mv,$,Q],radial:[``,$,Q],conic:[Mv,$,Q]},ey,Jv]}],"bg-color":[{bg:N()}],"gradient-from-pos":[{from:ae()}],"gradient-via-pos":[{via:ae()}],"gradient-to-pos":[{to:ae()}],"gradient-from":[{from:N()}],"gradient-via":[{via:N()}],"gradient-to":[{to:N()}],rounded:[{rounded:F()}],"rounded-s":[{"rounded-s":F()}],"rounded-e":[{"rounded-e":F()}],"rounded-t":[{"rounded-t":F()}],"rounded-r":[{"rounded-r":F()}],"rounded-b":[{"rounded-b":F()}],"rounded-l":[{"rounded-l":F()}],"rounded-ss":[{"rounded-ss":F()}],"rounded-se":[{"rounded-se":F()}],"rounded-ee":[{"rounded-ee":F()}],"rounded-es":[{"rounded-es":F()}],"rounded-tl":[{"rounded-tl":F()}],"rounded-tr":[{"rounded-tr":F()}],"rounded-br":[{"rounded-br":F()}],"rounded-bl":[{"rounded-bl":F()}],"border-w":[{border:oe()}],"border-w-x":[{"border-x":oe()}],"border-w-y":[{"border-y":oe()}],"border-w-s":[{"border-s":oe()}],"border-w-e":[{"border-e":oe()}],"border-w-bs":[{"border-bs":oe()}],"border-w-be":[{"border-be":oe()}],"border-w-t":[{"border-t":oe()}],"border-w-r":[{"border-r":oe()}],"border-w-b":[{"border-b":oe()}],"border-w-l":[{"border-l":oe()}],"divide-x":[{"divide-x":oe()}],"divide-x-reverse":[`divide-x-reverse`],"divide-y":[{"divide-y":oe()}],"divide-y-reverse":[`divide-y-reverse`],"border-style":[{border:[...I(),`hidden`,`none`]}],"divide-style":[{divide:[...I(),`hidden`,`none`]}],"border-color":[{border:N()}],"border-color-x":[{"border-x":N()}],"border-color-y":[{"border-y":N()}],"border-color-s":[{"border-s":N()}],"border-color-e":[{"border-e":N()}],"border-color-bs":[{"border-bs":N()}],"border-color-be":[{"border-be":N()}],"border-color-t":[{"border-t":N()}],"border-color-r":[{"border-r":N()}],"border-color-b":[{"border-b":N()}],"border-color-l":[{"border-l":N()}],"divide-color":[{divide:N()}],"outline-style":[{outline:[...I(),`none`,`hidden`]}],"outline-offset":[{"outline-offset":[jv,$,Q]}],"outline-w":[{outline:[``,jv,Xv,Uv]}],"outline-color":[{outline:N()}],shadow:[{shadow:[``,`none`,u,ty,Yv]}],"shadow-color":[{shadow:N()}],"inset-shadow":[{"inset-shadow":[`none`,d,ty,Yv]}],"inset-shadow-color":[{"inset-shadow":N()}],"ring-w":[{ring:oe()}],"ring-w-inset":[`ring-inset`],"ring-color":[{ring:N()}],"ring-offset-w":[{"ring-offset":[jv,Uv]}],"ring-offset-color":[{"ring-offset":N()}],"inset-ring-w":[{"inset-ring":oe()}],"inset-ring-color":[{"inset-ring":N()}],"text-shadow":[{"text-shadow":[`none`,f,ty,Yv]}],"text-shadow-color":[{"text-shadow":N()}],opacity:[{opacity:[jv,$,Q]}],"mix-blend":[{"mix-blend":[...se(),`plus-darker`,`plus-lighter`]}],"bg-blend":[{"bg-blend":se()}],"mask-clip":[{"mask-clip":[`border`,`padding`,`content`,`fill`,`stroke`,`view`]},`mask-no-clip`],"mask-composite":[{mask:[`add`,`subtract`,`intersect`,`exclude`]}],"mask-image-linear-pos":[{"mask-linear":[jv]}],"mask-image-linear-from-pos":[{"mask-linear-from":L()}],"mask-image-linear-to-pos":[{"mask-linear-to":L()}],"mask-image-linear-from-color":[{"mask-linear-from":N()}],"mask-image-linear-to-color":[{"mask-linear-to":N()}],"mask-image-t-from-pos":[{"mask-t-from":L()}],"mask-image-t-to-pos":[{"mask-t-to":L()}],"mask-image-t-from-color":[{"mask-t-from":N()}],"mask-image-t-to-color":[{"mask-t-to":N()}],"mask-image-r-from-pos":[{"mask-r-from":L()}],"mask-image-r-to-pos":[{"mask-r-to":L()}],"mask-image-r-from-color":[{"mask-r-from":N()}],"mask-image-r-to-color":[{"mask-r-to":N()}],"mask-image-b-from-pos":[{"mask-b-from":L()}],"mask-image-b-to-pos":[{"mask-b-to":L()}],"mask-image-b-from-color":[{"mask-b-from":N()}],"mask-image-b-to-color":[{"mask-b-to":N()}],"mask-image-l-from-pos":[{"mask-l-from":L()}],"mask-image-l-to-pos":[{"mask-l-to":L()}],"mask-image-l-from-color":[{"mask-l-from":N()}],"mask-image-l-to-color":[{"mask-l-to":N()}],"mask-image-x-from-pos":[{"mask-x-from":L()}],"mask-image-x-to-pos":[{"mask-x-to":L()}],"mask-image-x-from-color":[{"mask-x-from":N()}],"mask-image-x-to-color":[{"mask-x-to":N()}],"mask-image-y-from-pos":[{"mask-y-from":L()}],"mask-image-y-to-pos":[{"mask-y-to":L()}],"mask-image-y-from-color":[{"mask-y-from":N()}],"mask-image-y-to-color":[{"mask-y-to":N()}],"mask-image-radial":[{"mask-radial":[$,Q]}],"mask-image-radial-from-pos":[{"mask-radial-from":L()}],"mask-image-radial-to-pos":[{"mask-radial-to":L()}],"mask-image-radial-from-color":[{"mask-radial-from":N()}],"mask-image-radial-to-color":[{"mask-radial-to":N()}],"mask-image-radial-shape":[{"mask-radial":[`circle`,`ellipse`]}],"mask-image-radial-size":[{"mask-radial":[{closest:[`side`,`corner`],farthest:[`side`,`corner`]}]}],"mask-image-radial-pos":[{"mask-radial-at":b()}],"mask-image-conic-pos":[{"mask-conic":[jv]}],"mask-image-conic-from-pos":[{"mask-conic-from":L()}],"mask-image-conic-to-pos":[{"mask-conic-to":L()}],"mask-image-conic-from-color":[{"mask-conic-from":N()}],"mask-image-conic-to-color":[{"mask-conic-to":N()}],"mask-mode":[{mask:[`alpha`,`luminance`,`match`]}],"mask-origin":[{"mask-origin":[`border`,`padding`,`content`,`fill`,`stroke`,`view`]}],"mask-position":[{mask:P()}],"mask-repeat":[{mask:re()}],"mask-size":[{mask:ie()}],"mask-type":[{"mask-type":[`alpha`,`luminance`]}],"mask-image":[{mask:[`none`,$,Q]}],filter:[{filter:[``,`none`,$,Q]}],blur:[{blur:ce()}],brightness:[{brightness:[jv,$,Q]}],contrast:[{contrast:[jv,$,Q]}],"drop-shadow":[{"drop-shadow":[``,`none`,p,ty,Yv]}],"drop-shadow-color":[{"drop-shadow":N()}],grayscale:[{grayscale:[``,jv,$,Q]}],"hue-rotate":[{"hue-rotate":[jv,$,Q]}],invert:[{invert:[``,jv,$,Q]}],saturate:[{saturate:[jv,$,Q]}],sepia:[{sepia:[``,jv,$,Q]}],"backdrop-filter":[{"backdrop-filter":[``,`none`,$,Q]}],"backdrop-blur":[{"backdrop-blur":ce()}],"backdrop-brightness":[{"backdrop-brightness":[jv,$,Q]}],"backdrop-contrast":[{"backdrop-contrast":[jv,$,Q]}],"backdrop-grayscale":[{"backdrop-grayscale":[``,jv,$,Q]}],"backdrop-hue-rotate":[{"backdrop-hue-rotate":[jv,$,Q]}],"backdrop-invert":[{"backdrop-invert":[``,jv,$,Q]}],"backdrop-opacity":[{"backdrop-opacity":[jv,$,Q]}],"backdrop-saturate":[{"backdrop-saturate":[jv,$,Q]}],"backdrop-sepia":[{"backdrop-sepia":[``,jv,$,Q]}],"border-collapse":[{border:[`collapse`,`separate`]}],"border-spacing":[{"border-spacing":w()}],"border-spacing-x":[{"border-spacing-x":w()}],"border-spacing-y":[{"border-spacing-y":w()}],"table-layout":[{table:[`auto`,`fixed`]}],caption:[{caption:[`top`,`bottom`]}],transition:[{transition:[``,`all`,`colors`,`opacity`,`shadow`,`transform`,`none`,$,Q]}],"transition-behavior":[{transition:[`normal`,`discrete`]}],duration:[{duration:[jv,`initial`,$,Q]}],ease:[{ease:[`linear`,`initial`,_,$,Q]}],delay:[{delay:[jv,$,Q]}],animate:[{animate:[`none`,v,$,Q]}],backface:[{backface:[`hidden`,`visible`]}],perspective:[{perspective:[h,$,Q]}],"perspective-origin":[{"perspective-origin":x()}],rotate:[{rotate:le()}],"rotate-x":[{"rotate-x":le()}],"rotate-y":[{"rotate-y":le()}],"rotate-z":[{"rotate-z":le()}],scale:[{scale:ue()}],"scale-x":[{"scale-x":ue()}],"scale-y":[{"scale-y":ue()}],"scale-z":[{"scale-z":ue()}],"scale-3d":[`scale-3d`],skew:[{skew:de()}],"skew-x":[{"skew-x":de()}],"skew-y":[{"skew-y":de()}],transform:[{transform:[$,Q,``,`none`,`gpu`,`cpu`]}],"transform-origin":[{origin:x()}],"transform-style":[{transform:[`3d`,`flat`]}],translate:[{translate:R()}],"translate-x":[{"translate-x":R()}],"translate-y":[{"translate-y":R()}],"translate-z":[{"translate-z":R()}],"translate-none":[`translate-none`],zoom:[{zoom:[Mv,$,Q]}],accent:[{accent:N()}],appearance:[{appearance:[`none`,`auto`]}],"caret-color":[{caret:N()}],"color-scheme":[{scheme:[`normal`,`dark`,`light`,`light-dark`,`only-dark`,`only-light`]}],cursor:[{cursor:[`auto`,`default`,`pointer`,`wait`,`text`,`move`,`help`,`not-allowed`,`none`,`context-menu`,`progress`,`cell`,`crosshair`,`vertical-text`,`alias`,`copy`,`no-drop`,`grab`,`grabbing`,`all-scroll`,`col-resize`,`row-resize`,`n-resize`,`e-resize`,`s-resize`,`w-resize`,`ne-resize`,`nw-resize`,`se-resize`,`sw-resize`,`ew-resize`,`ns-resize`,`nesw-resize`,`nwse-resize`,`zoom-in`,`zoom-out`,$,Q]}],"field-sizing":[{"field-sizing":[`fixed`,`content`]}],"pointer-events":[{"pointer-events":[`auto`,`none`]}],resize:[{resize:[`none`,``,`y`,`x`]}],"scroll-behavior":[{scroll:[`auto`,`smooth`]}],"scrollbar-thumb-color":[{"scrollbar-thumb":N()}],"scrollbar-track-color":[{"scrollbar-track":N()}],"scrollbar-gutter":[{"scrollbar-gutter":[`auto`,`stable`,`both`]}],"scrollbar-w":[{scrollbar:[`auto`,`thin`,`none`]}],"scroll-m":[{"scroll-m":w()}],"scroll-mx":[{"scroll-mx":w()}],"scroll-my":[{"scroll-my":w()}],"scroll-ms":[{"scroll-ms":w()}],"scroll-me":[{"scroll-me":w()}],"scroll-mbs":[{"scroll-mbs":w()}],"scroll-mbe":[{"scroll-mbe":w()}],"scroll-mt":[{"scroll-mt":w()}],"scroll-mr":[{"scroll-mr":w()}],"scroll-mb":[{"scroll-mb":w()}],"scroll-ml":[{"scroll-ml":w()}],"scroll-p":[{"scroll-p":w()}],"scroll-px":[{"scroll-px":w()}],"scroll-py":[{"scroll-py":w()}],"scroll-ps":[{"scroll-ps":w()}],"scroll-pe":[{"scroll-pe":w()}],"scroll-pbs":[{"scroll-pbs":w()}],"scroll-pbe":[{"scroll-pbe":w()}],"scroll-pt":[{"scroll-pt":w()}],"scroll-pr":[{"scroll-pr":w()}],"scroll-pb":[{"scroll-pb":w()}],"scroll-pl":[{"scroll-pl":w()}],"snap-align":[{snap:[`start`,`end`,`center`,`align-none`]}],"snap-stop":[{snap:[`normal`,`always`]}],"snap-type":[{snap:[`none`,`x`,`y`,`both`]}],"snap-strictness":[{snap:[`mandatory`,`proximity`]}],touch:[{touch:[`auto`,`none`,`manipulation`]}],"touch-x":[{"touch-pan":[`x`,`left`,`right`]}],"touch-y":[{"touch-pan":[`y`,`up`,`down`]}],"touch-pz":[`touch-pinch-zoom`],select:[{select:[`none`,`text`,`all`,`auto`]}],"will-change":[{"will-change":[`auto`,`scroll`,`contents`,`transform`,$,Q]}],fill:[{fill:[`none`,...N()]}],"stroke-w":[{stroke:[jv,Xv,Uv,Wv]}],stroke:[{stroke:[`none`,...N()]}],"forced-color-adjust":[{"forced-color-adjust":[`auto`,`none`]}]},conflictingClassGroups:{"container-named":[`container-type`],overflow:[`overflow-x`,`overflow-y`],overscroll:[`overscroll-x`,`overscroll-y`],inset:[`inset-x`,`inset-y`,`inset-bs`,`inset-be`,`start`,`end`,`top`,`right`,`bottom`,`left`],"inset-x":[`right`,`left`],"inset-y":[`top`,`bottom`],flex:[`basis`,`grow`,`shrink`],gap:[`gap-x`,`gap-y`],p:[`px`,`py`,`ps`,`pe`,`pbs`,`pbe`,`pt`,`pr`,`pb`,`pl`],px:[`pr`,`pl`],py:[`pt`,`pb`],m:[`mx`,`my`,`ms`,`me`,`mbs`,`mbe`,`mt`,`mr`,`mb`,`ml`],mx:[`mr`,`ml`],my:[`mt`,`mb`],size:[`w`,`h`],"font-size":[`leading`],"fvn-normal":[`fvn-ordinal`,`fvn-slashed-zero`,`fvn-figure`,`fvn-spacing`,`fvn-fraction`],"fvn-ordinal":[`fvn-normal`],"fvn-slashed-zero":[`fvn-normal`],"fvn-figure":[`fvn-normal`],"fvn-spacing":[`fvn-normal`],"fvn-fraction":[`fvn-normal`],"line-clamp":[`display`,`overflow`],rounded:[`rounded-s`,`rounded-e`,`rounded-t`,`rounded-r`,`rounded-b`,`rounded-l`,`rounded-ss`,`rounded-se`,`rounded-ee`,`rounded-es`,`rounded-tl`,`rounded-tr`,`rounded-br`,`rounded-bl`],"rounded-s":[`rounded-ss`,`rounded-es`],"rounded-e":[`rounded-se`,`rounded-ee`],"rounded-t":[`rounded-tl`,`rounded-tr`],"rounded-r":[`rounded-tr`,`rounded-br`],"rounded-b":[`rounded-br`,`rounded-bl`],"rounded-l":[`rounded-tl`,`rounded-bl`],"border-spacing":[`border-spacing-x`,`border-spacing-y`],"border-w":[`border-w-x`,`border-w-y`,`border-w-s`,`border-w-e`,`border-w-bs`,`border-w-be`,`border-w-t`,`border-w-r`,`border-w-b`,`border-w-l`],"border-w-x":[`border-w-r`,`border-w-l`],"border-w-y":[`border-w-t`,`border-w-b`],"border-color":[`border-color-x`,`border-color-y`,`border-color-s`,`border-color-e`,`border-color-bs`,`border-color-be`,`border-color-t`,`border-color-r`,`border-color-b`,`border-color-l`],"border-color-x":[`border-color-r`,`border-color-l`],"border-color-y":[`border-color-t`,`border-color-b`],translate:[`translate-x`,`translate-y`,`translate-none`],"translate-none":[`translate`,`translate-x`,`translate-y`,`translate-z`],"scroll-m":[`scroll-mx`,`scroll-my`,`scroll-ms`,`scroll-me`,`scroll-mbs`,`scroll-mbe`,`scroll-mt`,`scroll-mr`,`scroll-mb`,`scroll-ml`],"scroll-mx":[`scroll-mr`,`scroll-ml`],"scroll-my":[`scroll-mt`,`scroll-mb`],"scroll-p":[`scroll-px`,`scroll-py`,`scroll-ps`,`scroll-pe`,`scroll-pbs`,`scroll-pbe`,`scroll-pt`,`scroll-pr`,`scroll-pb`,`scroll-pl`],"scroll-px":[`scroll-pr`,`scroll-pl`],"scroll-py":[`scroll-pt`,`scroll-pb`],touch:[`touch-x`,`touch-y`,`touch-pz`],"touch-x":[`touch`],"touch-y":[`touch`],"touch-pz":[`touch`]},conflictingClassGroupModifiers:{"font-size":[`leading`]},postfixLookupClassGroups:[`container-type`],orderSensitiveModifiers:[`*`,`**`,`after`,`backdrop`,`before`,`details-content`,`file`,`first-letter`,`first-line`,`marker`,`placeholder`,`selection`]}});function my(...e){return py(R_(e))}var hy=V_(`inline-flex h-9 shrink-0 items-center justify-center gap-2 whitespace-nowrap rounded-md border px-3 text-sm font-medium transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-slate-400 disabled:pointer-events-none disabled:opacity-50 dark:focus-visible:ring-zinc-500`,{variants:{variant:{primary:`border-slate-900 bg-slate-950 text-white hover:bg-slate-800 dark:border-zinc-100 dark:bg-zinc-50 dark:text-zinc-950 dark:hover:bg-zinc-200`,secondary:`border-slate-200 bg-white text-slate-900 hover:bg-slate-50 dark:border-zinc-800 dark:bg-zinc-950 dark:text-zinc-100 dark:hover:bg-zinc-900`,ghost:`border-transparent bg-transparent text-slate-700 hover:bg-slate-100 dark:text-zinc-300 dark:hover:bg-zinc-900`},size:{sm:`h-8 px-2 text-xs`,md:`h-9 px-3 text-sm`,icon:`h-9 w-9 px-0`}},defaultVariants:{variant:`secondary`,size:`md`}});function gy({className:e,variant:t,size:n,...r}){return(0,V.jsx)(`button`,{className:my(hy({variant:t,size:n}),e),type:`button`,...r})}function _y({className:e,...t}){return(0,V.jsx)(`section`,{className:my(`rounded-lg border border-slate-200/80 bg-white/95 text-slate-950 shadow-[0_1px_2px_rgba(15,23,42,0.04)] dark:border-zinc-800 dark:bg-zinc-950 dark:text-zinc-50`,e),...t})}function vy({className:e,...t}){return(0,V.jsx)(`div`,{className:my(`p-4 pt-0`,e),...t})}var yy=[`codex`,`claude`,`kiro`,`trae`,`coco`,`openai`,`anthropic`],by=new Set([`acp`,`status_projection`]);function xy(e){let t=e.trim().toLowerCase().replace(/_/gu,`-`);for(let e of yy)if(t===e||t.startsWith(`${e}-`))return e;return t}function Sy(e,t){let n=t?.trim().toLowerCase()??``;return n.length>0&&!by.has(n)?xy(n):xy(e)}var Cy={stop:`ready_stop`,resume:`resume_review`,delete:`delete_review`};function wy(e){return typeof e==`object`&&e&&!Array.isArray(e)?e:null}function Ty(e){return typeof e==`string`&&e.trim().length>0?e:null}function Ey(e){let t=wy(e.projection);if(t?.schema_version!==`loopx_operation_projection_v0`)return null;let n=Ty(t.title),r=Ty(t.subtitle),i=Ty(t.focus),a=Ty(t.warning);if(!n||!r||!i||!a||!Array.isArray(t.fields))return null;let o=[];for(let e of t.fields){let t=wy(e),n=Ty(t?.label),r=Ty(t?.value);if(!n||!r)return null;o.push({label:n,value:r})}return{title:n,subtitle:r,focus:i,fields:o,warning:a}}function Dy(e){let t=wy(e);if(t?.action_kind!==`operation.execute`)return;let n=wy(t.normalized_parameters),r=wy(t.operation);if(!n||r?.schema_version!==`loopx_operation_envelope_v0`)return;let i=Ty(r.operation_id),a=Ty(r.confirmation_digest),o=Ty(r.expires_at),s=Ey(n);if(!i||!a||!o||!s||i!==t.proposal_id)return;let c=r.lifecycle_state;if(c!==`awaiting_confirmation`&&c!==`claimed`&&c!==`outcome_observed`)return;let l={schemaVersion:`operation_review_frame_v0`,operationId:i,confirmationDigest:a,lifecycleState:c,simulated:wy(n.projection).simulated===!0,expiresAt:o,content:s};if(c===`awaiting_confirmation`)return{...l,kind:`confirmation`,attentionKind:`authority`,interactionMode:`confirm_reject`,decisions:[`confirm`,`reject`]};if(c===`claimed`)return{...l,kind:`pending`,attentionKind:`progress`,interactionMode:`inform`};let u=wy(r.outcome);if(!u)return;let d=u.outcome===`rejected_by_operator`,f=u.simulation===!0||l.simulated;return{...l,kind:`result`,attentionKind:`progress`,interactionMode:`inform`,resultKind:d?`rejected`:f?`simulation_completed`:`completed`,resultDeliveryVerified:wy(r.result_delivery)!==null,summary:Ty(u.summary)??``}}function Oy(e){let t=wy(e)??{},n={schemaVersion:`action_review_plan_v0`,proposalId:typeof t.proposal_id==`string`?t.proposal_id:``,sourceFingerprint:typeof t.expected_state_fingerprint==`string`?t.expected_state_fingerprint:``},r=Dy(t),i=e=>({...n,...e,...r?{operationFrame:r}:{}}),a=(e,t)=>i({interaction:e,reason:t,canApply:!1}),o=t.action_kind===`goal.lifecycle`;if(o&&t.gate!=null||t.status===`gated`)return a(`gated`,`authority_gate`);if(o&&t.stale!=null||t.status===`stale`)return a(`refresh`,`stale_proposal`);if(t.status===`applied`)return wy(t.receipt)?.projection_verified===!0&&(t.action_kind!==`operation.execute`||wy(wy(t.operation)?.result_delivery)!==null)?a(`completed`,`readback_verified`):a(`repair`,`readback_unverified`);if(t.status===`applying`)return a(`pending`,`apply_pending`);if(t.status===`failed`||t.error!=null)return a(`repair`,`apply_failed`);if(t.status!==`preview_ready`&&t.status!==`deferred`)return a(`inactive`,`inactive_proposal`);let s=(e,t=!0)=>i({interaction:`review`,reason:e,canApply:t});if(t.action_kind!==`goal.lifecycle`)return s(t.permission_classification===`protected`?`protected_action`:`action_review`);let c=t.validation_evidence,l=t.available_transitions;if(!(Ty(t.proposal_id)!==null&&Ty(t.expected_state_fingerprint)!==null&&Array.isArray(c)&&c.length>0&&c.every(e=>Ty(e)!==null)&&Array.isArray(l)&&l.includes(`apply`)))return a(`refresh`,`incomplete_proposal`);let u=wy(t.normalized_parameters),d=wy(t.context),f=u?.operation,p=Ty(u?.goal_id);if(!p||d?.goal_id!=null&&d.goal_id!==p)return a(`refresh`,`incomplete_proposal`);if(f!==`stop`&&f!==`resume`&&f!==`delete`)return s(`unknown_action`,!1);if(t.permission_classification===`protected`)return s(`protected_action`);if(t.permission_classification!==`durable_write`)return s(`unknown_permission`,!1);let m=Cy[f];return m===`ready_stop`&&t.status===`preview_ready`?i({interaction:`direct`,reason:m,canApply:!0}):s(m===`ready_stop`?`action_review`:m)}function ky(e){return e.error_code===`action_stale`||e.error_code===`action_conflict`||wy(e.proposal)?.status===`stale`}function Ay(e){return typeof e==`object`&&e?e:{}}function jy(e){return typeof e==`string`?e:``}function My(e,t){let n=Ay(e.plan),r=[],i=jy(e.goal_id)||jy(n.goal_id);i&&r.push({key:`goal_id`,label:t(`proposal.field.goalId`),value:i});let a=jy(n.objective);a&&r.push({key:`objective`,label:t(`proposal.field.objective`),value:a}),(Array.isArray(n.lanes)?n.lanes:[]).forEach((e,n)=>{let i=Ay(e),a=jy(i.lane_id)||`lane-${n+1}`,o=jy(i.agent_id),s=jy(i.acceptance);if(jy(i.staffing)===`gap`){let e=Ay(i.declined_first_todo);r.push({key:`lane_${a}`,label:o||a,value:[t(`proposal.teamPlan.gapLane`),jy(i.gap_reason_code),jy(e.text)].filter(Boolean).join(` · `)});return}let c=Ay(i.first_todo),l=[jy(c.priority),jy(c.action_kind),jy(c.text)].filter(Boolean).join(` · `);r.push({key:`lane_${a}`,label:o||a,value:[l||t(`proposal.teamPlan.laneUnstaffed`),s?`${t(`proposal.teamPlan.acceptanceShort`)}: ${s}`:``].filter(Boolean).join(` · `)})});let o=Array.isArray(n.gaps)?n.gaps:[];o.length>0&&r.push({key:`lane_gaps`,label:t(`proposal.field.laneGaps`),value:o.map(e=>{let t=Ay(e);return[jy(t.lane_id),jy(t.reason_code)].filter(Boolean).join(`: `)}).filter(Boolean).join(` · `)});let s=Ay(n.quota_envelope),c=Object.entries(s);c.length>0&&r.push({key:`quota_envelope`,label:t(`proposal.field.quotaEnvelope`),value:c.map(([e,t])=>`${e}: ${String(t??``)}`).join(` · `)});let l=jy(n.stop_condition);return l&&r.push({key:`stop_condition`,label:t(`proposal.field.stopCondition`),value:l}),r}function Ny(e){let t=Ay(e.plan);return Array.isArray(t.lanes)?t.lanes.length:0}function Py(e){let t=Ay(e.plan);return jy(e.goal_id)||jy(t.goal_id)}function Fy(e){return{blockingTodoCount:e.blockingTodoCount,goalNotifications:e.goalNotifications,goals:e.goals,openUserTodoCount:e.openUserTodoCount,systemHealth:e.systemHealth,attentionHistory:e.attentionHistory,userTodos:e.userTodos,workers:e.workers}}function Iy(e,t){return e.goals.find(e=>e.goalId===t)?.title??t}function Ly(e){return e.activationState===`stopped`||e.state===`已停止`?`stopped`:e.state===`已完成`?`history`:e.needsYou||e.state===`等你`?`needs_you`:e.state===`推进中`||e.state===`需修复`?`running`:e.state===`安静运行`?`observing`:`scheduled`}function Ry(e){let t=e;return t>=1e6?`${(t/1e6).toFixed(1)}M`:t>=1e3?`${(t/1e3).toFixed(1)}k`:String(t)}function zy(e){return`$${e.toFixed(2)}`}function By(e){let t=e;return t>=36e5?`${(t/36e5).toFixed(1)}h`:t>=6e4?`${(t/6e4).toFixed(1)}m`:t>=1e3?`${Math.round(t/1e3)}s`:`${t}ms`}function Vy(e,t,n){return e==null?t:n(e)}function Hy(e){return!!(e&&[e.tokens24h,e.tokens7d,e.costUsd24h,e.costUsd7d,e.durationMs24h,e.durationMs7d].some(e=>e!=null))}function Uy(e,t){if(!Hy(e))return null;let n=(e,n,r,i)=>{let a=[n==null?null:`${Ry(n)} ${t.tokens}`,r==null?null:`${t.cost}: ${zy(r)}`,i==null?null:`${t.duration}: ${By(i)}`].filter(e=>e!==null);return a.length?`${e} ${a.join(` · `)}`:null};return n(t.period7d,e.tokens7d,e.costUsd7d,e.durationMs7d)??n(t.period24h,e.tokens24h,e.costUsd24h,e.durationMs24h)}function Wy({ariaLabel:e,className:t,icon:n,onChange:r,options:i,prefixLabel:a,value:o}){let s=(0,B.useId)(),c=(0,B.useRef)(null),l=(0,B.useRef)(null),u=(0,B.useRef)(new Map),[d,f]=(0,B.useState)(!1),[p,m]=(0,B.useState)(o),h=i.find(e=>e.value===o)??i[0],g=i.filter(e=>!e.disabled);(0,B.useEffect)(()=>{if(!d)return;let e=e=>{c.current?.contains(e.target)||f(!1)};return document.addEventListener(`pointerdown`,e),()=>document.removeEventListener(`pointerdown`,e)},[d]),(0,B.useEffect)(()=>{d&&u.current.get(p)?.focus()},[p,d]);function _(e){m(e)}function v(e=`selected`){let t=e===`last`?g.at(-1):g[0],n=e===`selected`&&h&&!h.disabled?h:t;n&&(f(!0),_(n.value))}function y({restoreFocus:e=!1}={}){f(!1),e&&l.current?.focus()}function b(e){e.disabled||(r(e.value),y({restoreFocus:!0}))}function x(e){if(!g.length)return;let t=g.findIndex(e=>e.value===p),n=t<0?0:(t+e+g.length)%g.length;_(g[n].value)}function S(e){e.key===`ArrowDown`||e.key===`Enter`||e.key===` `?(e.preventDefault(),v(`selected`)):e.key===`ArrowUp`&&(e.preventDefault(),v(`last`))}function C(e,t){if(e.key===`ArrowDown`)e.preventDefault(),x(1);else if(e.key===`ArrowUp`)e.preventDefault(),x(-1);else if(e.key===`Home`)e.preventDefault(),g[0]&&_(g[0].value);else if(e.key===`End`){e.preventDefault();let t=g.at(-1);t&&_(t.value)}else e.key===`Enter`||e.key===` `?(e.preventDefault(),b(t)):e.key===`Escape`?(e.preventDefault(),y({restoreFocus:!0})):e.key===`Tab`&&y()}let w;return(0,V.jsxs)(`div`,{className:`personal-select${t?` ${t}`:``}`,ref:c,children:[(0,V.jsxs)(`button`,{"aria-controls":s,"aria-expanded":d,"aria-haspopup":`listbox`,"aria-label":e,className:`personal-select-trigger`,"data-value":o,onClick:()=>d?y():v(),onKeyDown:S,ref:l,role:`combobox`,type:`button`,children:[n?(0,V.jsx)(`span`,{className:`personal-select-icon`,children:n}):null,(0,V.jsxs)(`span`,{className:`personal-select-value`,children:[a?(0,V.jsx)(`small`,{children:a}):null,(0,V.jsx)(`span`,{children:h?.label??o})]}),(0,V.jsx)(om,{"aria-hidden":!0,className:d?`is-open`:void 0,size:14})]}),d?(0,V.jsx)(`div`,{"aria-label":e,className:`personal-select-listbox`,id:s,role:`listbox`,children:i.map(e=>{let t=e.group&&e.group!==w;return w=e.group,(0,V.jsxs)(`div`,{className:`personal-select-option-wrap`,children:[t?(0,V.jsx)(`div`,{className:`personal-select-group-label`,children:e.group}):null,(0,V.jsxs)(`button`,{"aria-disabled":e.disabled||void 0,"aria-selected":e.value===o,className:`personal-select-option`,disabled:e.disabled,id:`${s}-${e.value.replace(/[^a-z0-9_-]/gi,`-`)}`,onClick:()=>b(e),onFocus:()=>m(e.value),onKeyDown:t=>C(t,e),ref:t=>{t?u.current.set(e.value,t):u.current.delete(e.value)},role:`option`,tabIndex:e.value===p?0:-1,type:`button`,children:[(0,V.jsx)(`span`,{children:e.label}),e.value===o?(0,V.jsx)(am,{"aria-hidden":!0,size:15}):null]})]},e.value)})}):null]})}function Gy({agents:e,managerChannelBinding:t,managerChatOpen:n,managerRuntime:r,mobileNavigationOpen:i,onOpenGoalCapabilities:a,onOpenGoalDetail:o,onOpenManagerChat:s,onRefresh:c,onOpenNavigation:l,onSelectGoalTab:u,onSelectAgent:d,onReturnManagerHome:f,refreshState:p,readOnlySourceLabel:m,selectedAgentId:h,selectedGoal:g,selectedGoalTab:_}){let{locale:v,t:y}=Ji(),[b,x]=(0,B.useState)(!1),S=(0,B.useRef)(null),C=(0,B.useRef)(null);(0,B.useEffect)(()=>{if(!b)return;function e(e){C.current?.contains(e.target)||x(!1)}function t(e){e.key===`Escape`&&(x(!1),S.current?.focus())}return document.addEventListener(`pointerdown`,e),document.addEventListener(`keydown`,t),()=>{document.removeEventListener(`pointerdown`,e),document.removeEventListener(`keydown`,t)}},[b]),(0,B.useEffect)(()=>x(!1),[g?.goalId]);function w(e){x(!1),e?.()}let T=g?Uy(g.usage,{cost:y(`drawer.costShort`),duration:y(`drawer.durationShort`),period24h:y(`drawer.period24h`),period7d:y(`drawer.period7d`),tokens:y(`drawer.tokensShort`)}):null,E=t?t.executor_kind===`individual`?y(`header.managerExecutorKindIndividual`):t.executor_kind===`managed`?y(`header.managerExecutorKindManaged`):y(`header.managerExecutorKindRegistered`):null,D=t?.available===!1,O=t?.available===!1?t.unavailable_reason:null,k=O===`operator_credential_unconfigured`?`header.managerExecutionUnavailableCredential`:O===`dsh_runtime_unavailable`?`header.managerExecutionUnavailableRuntime`:O===`invalid_reasoning_effort`?`header.managerExecutionUnavailableEffort`:`header.managerExecutionUnavailable`,ee=t&&t.executor_endpoint_source===`product_default`&&t.executor_endpoint_default_reason===`steward_channel_default`?`header.managerEndpointStewardDefault`:null;return(0,V.jsxs)(`header`,{className:`personal-channel-header`,children:[(0,V.jsx)(`button`,{"aria-expanded":i??!1,"aria-label":y(`header.openGoalNavigation`),className:`personal-icon-button personal-mobile-menu`,onClick:l,type:`button`,children:(0,V.jsx)(jm,{size:18})}),(0,V.jsxs)(`div`,{className:`personal-channel-title`,children:[(0,V.jsx)(`h1`,{children:g?.title??y(`header.manager`)}),!g&&r?(0,V.jsx)(`p`,{children:r.status===`ready`?y(`header.managerRuntime`,{profile:r.runtime_profile,sandbox:r.sandbox}):y(`header.managerRuntimeFallback`,{profile:r.runtime_profile,sandbox:r.sandbox})}):null,!g&&t?(0,V.jsxs)(`p`,{className:`personal-manager-execution`,children:[(0,V.jsxs)(`span`,{className:D?`personal-execution-chip is-unavailable`:`personal-execution-chip`,children:[(0,V.jsx)(`span`,{className:`personal-execution-chip-endpoint`,children:t.executor_endpoint}),E?(0,V.jsx)(`span`,{className:`personal-execution-chip-kind`,children:E}):null,(0,V.jsx)(`span`,{className:`personal-execution-chip-model`,children:t.model})]}),D?(0,V.jsx)(`span`,{className:`personal-execution-note`,children:y(k,{executor:t.executor_endpoint,credential:t.credential_env_var})}):null,ee?(0,V.jsx)(`span`,{className:`personal-execution-rule-note`,children:y(ee,{executor:t.executor_endpoint})}):null]}):null,g?(0,V.jsx)(`p`,{children:g.loadState?y(g.loadState===`error`?`startup.goalError`:`startup.goalLoading`):`${g.agentLaneCount&&g.agentLaneCount>1?y(`header.workAgentCount`,{count:g.agentLaneCount}):g.agentLabel??g.agentId} · ${g.loadState?y(g.loadState===`error`?`startup.goalError`:`startup.goalLoading`):Yi(g.state,v)}${T?` · ${T}`:``} · ${g.nextSentence}`}):null]}),g?(0,V.jsxs)(`nav`,{"aria-label":y(`header.goalView`),className:`personal-goal-tabs`,children:[(0,V.jsx)(`button`,{"aria-current":_===`chat`?`page`:void 0,onClick:()=>u(`chat`),type:`button`,children:y(`header.chat`)}),(0,V.jsx)(`button`,{"aria-current":_===`tasks`?`page`:void 0,onClick:()=>u(`tasks`),type:`button`,children:y(`header.tasks`)}),(0,V.jsx)(`button`,{"aria-current":_===`files`?`page`:void 0,onClick:()=>u(`files`),type:`button`,children:y(`header.files`)})]}):(0,V.jsxs)(`nav`,{"aria-label":y(`header.managerView`),className:`personal-goal-tabs`,children:[(0,V.jsx)(`button`,{"aria-current":n?void 0:`page`,onClick:f,type:`button`,children:y(`header.managerOverview`)}),(0,V.jsx)(`button`,{"aria-current":n?`page`:void 0,onClick:s,type:`button`,children:y(`header.chat`)})]}),(0,V.jsxs)(`div`,{className:`personal-channel-actions`,children:[g&&o&&a?(0,V.jsxs)(`div`,{className:`personal-goal-tools`,ref:C,children:[(0,V.jsxs)(`button`,{"aria-expanded":b,"aria-haspopup":`menu`,"aria-label":y(`header.goalSettingsDescription`),className:`personal-goal-tools-trigger`,onClick:()=>x(e=>!e),ref:S,title:y(`header.goalSettingsDescription`),type:`button`,children:[(0,V.jsx)(Zm,{"aria-hidden":!0,size:16}),(0,V.jsx)(`span`,{children:y(`header.goalSettings`)}),(0,V.jsx)(om,{"aria-hidden":!0,size:13})]}),b?(0,V.jsxs)(`fieldset`,{"aria-label":y(`header.goalSettings`),className:`personal-goal-tools-menu`,children:[(0,V.jsxs)(`button`,{onClick:()=>w(o),type:`button`,children:[(0,V.jsx)(wm,{"aria-hidden":!0,size:17}),(0,V.jsx)(`span`,{children:(0,V.jsx)(`strong`,{children:y(`header.goalDetails`)})})]}),(0,V.jsxs)(`button`,{onClick:()=>w(a),type:`button`,children:[(0,V.jsx)(Zm,{"aria-hidden":!0,size:17}),(0,V.jsx)(`span`,{children:(0,V.jsx)(`strong`,{children:y(`header.goalCapabilities`)})})]})]}):null]}):null,m?(0,V.jsxs)(`span`,{className:`personal-read-only-source`,title:y(`header.readOnlySourceDescription`,{source:m}),children:[(0,V.jsx)(vm,{size:15}),m,(0,V.jsx)(`small`,{children:y(`common.readOnly`)})]}):(0,V.jsx)(Wy,{ariaLabel:y(`header.selectChatRuntime`),className:`personal-agent-select`,icon:(0,V.jsx)(nm,{size:16}),onChange:d,options:e.map(e=>({disabled:!e.available,label:`${e.label}${e.available?``:` · ${y(`header.agentUnavailable`)}`}`,value:e.agentId})),prefixLabel:y(`header.chatRuntime`),value:h}),(0,V.jsxs)(`span`,{className:`personal-live-indicator`,children:[(0,V.jsx)(`i`,{}),y(`header.live`)]}),c?(0,V.jsxs)(`span`,{className:`personal-refresh-control is-${p??`idle`}`,children:[p===`loading`?(0,V.jsx)(`small`,{children:y(`header.refreshing`)}):p===`done`?(0,V.jsx)(`small`,{children:y(`header.refreshDone`)}):p===`error`?(0,V.jsx)(`small`,{children:y(`header.refreshFailed`)}):null,(0,V.jsx)(`button`,{"aria-label":y(p===`loading`?`header.refreshing`:`header.refresh`),className:`personal-icon-button`,disabled:p===`loading`,onClick:c,type:`button`,children:(0,V.jsx)(Hm,{className:p===`loading`?`is-spinning`:void 0,size:17})})]}):null]})]})}function Ky({attention:e,onSelect:t}){let{t:n}=Ji(),r=Zi(e.updatedAt,n);return(0,V.jsxs)(`button`,{className:`personal-timeline-row personal-attention-row`,"data-testid":`personal-browse-row`,onClick:t,type:`button`,children:[(0,V.jsx)(`span`,{className:`personal-row-icon is-attention`,children:(0,V.jsx)(lm,{size:18})}),(0,V.jsxs)(`span`,{className:`personal-row-copy`,children:[(0,V.jsxs)(`small`,{children:[e.goalTitle??e.goalId,` · `,n(`home.lane.needsYou`),r?` · ${n(`tasks.waitingAge`,{age:r})}`:``]}),(0,V.jsx)(`strong`,{children:e.text})]}),(0,V.jsx)(`span`,{className:`personal-priority-dot is-${e.priority??(e.blocking?`high`:`medium`)}`}),(0,V.jsx)(`span`,{className:`personal-row-status ${e.blocking?`is-blocking`:`is-pending`}`,children:e.blocking?n(`tasks.blocked`):n(`tasks.pending`)}),(0,V.jsx)(sm,{size:17})]})}var qy=/(`[^`\n]+`)|(\*\*[^*\n]+(\*[^*\n]*)?\*\*)|(\[[^\]\n]{1,120}\]\(https?:\/\/[^)\s]+\))/g;function Jy(e,t){let n=[],r=0,i=0;for(let a of e.matchAll(qy)){let o=a.index??0;o>r&&n.push(e.slice(r,o));let s=a[0],c=`${t}-i${i++}`;if(s.startsWith("`"))n.push((0,V.jsx)(`code`,{className:`personal-md-code`,children:s.slice(1,-1)},c));else if(s.startsWith(`**`))n.push((0,V.jsx)(`strong`,{children:s.slice(2,-2)},c));else{let e=s.indexOf(`](`),t=s.slice(1,e),r=s.slice(e+2,-1);n.push((0,V.jsx)(`a`,{className:`personal-md-link`,href:r,rel:`noreferrer`,target:`_blank`,children:t},c))}r=o+s.length}return r{r.length>0&&(n.push({type:`paragraph`,lines:r}),r=[])},a=0;for(;a{let n=`b${t}`;if(e.type===`code`)return(0,V.jsx)(`pre`,{className:`personal-md-pre`,children:(0,V.jsx)(`code`,{children:e.text})},n);if(e.type===`heading`)return(0,V.jsx)(`p`,{className:`personal-md-heading is-h${e.level}`,children:Uy(e.text,n)},n);if(e.type===`list`){let t=e.items.map((e,t)=>(0,V.jsx)(`li`,{children:Uy(e,`${n}-${t}`)},`${n}-${t}`));return e.ordered?(0,V.jsx)(`ol`,{className:`personal-md-list`,children:t},n):(0,V.jsx)(`ul`,{className:`personal-md-list`,children:t},n)}return(0,V.jsx)(`p`,{children:e.lines.map((e,t)=>(0,V.jsxs)(B.Fragment,{children:[t>0?(0,V.jsx)(`br`,{}):null,Uy(e,`${n}-${t}`)]},`${n}-${t}`))},n)})})}function Jy({onSelect:e,output:t}){let{t:n}=Ji(),r=t.kind===`report`?vm:_m;return(0,V.jsxs)(`button`,{className:`personal-timeline-row personal-output-row`,"data-output-kind":t.kind,"data-testid":`personal-browse-row`,onClick:e,type:`button`,children:[(0,V.jsx)(`span`,{className:`personal-row-icon is-output`,children:(0,V.jsx)(r,{size:18})}),(0,V.jsxs)(`span`,{className:`personal-row-copy`,children:[(0,V.jsxs)(`small`,{children:[t.goalTitle??t.goalId,` · `,t.agentLabel??`LoopX`]}),(0,V.jsx)(`strong`,{children:t.title}),t.summary?(0,V.jsx)(`span`,{children:t.summary}):null,t.report?(0,V.jsxs)(`small`,{children:[n(`files.reportDelta`,{added:t.report.addedCount,changed:t.report.changedCount}),` · `,n(`files.verifiedReport`)]}):null]}),t.createdAt?(0,V.jsx)(`time`,{children:t.createdAt}):null,(0,V.jsx)(im,{size:17})]})}var Yy={completed:`runs.completed`,failed:`runs.failed`,interrupted:`runs.interrupted`,queued:`runs.queued`,running:`runs.running`,waiting:`runs.waiting`};function Xy({onSelect:e,run:t}){let{t:n}=Ji(),r=t.totalSteps>0?Math.min(100,t.completedSteps/t.totalSteps*100):0;return(0,V.jsxs)(`button`,{"aria-label":`${n(`tasks.viewExecution`)}:${t.title}`,className:`personal-timeline-row personal-run-row`,"data-testid":`personal-browse-row`,onClick:e,type:`button`,children:[(0,V.jsx)(`span`,{className:`personal-row-icon is-run`,children:(0,V.jsx)($p,{size:18})}),(0,V.jsxs)(`span`,{className:`personal-run-identity`,children:[(0,V.jsx)(`small`,{children:t.goalTitle}),(0,V.jsx)(`strong`,{children:t.agentLabel})]}),(0,V.jsxs)(`span`,{className:`personal-row-copy`,children:[(0,V.jsx)(`strong`,{children:t.title}),(0,V.jsx)(`small`,{children:t.latestActivity})]}),(0,V.jsxs)(`span`,{className:`personal-run-progress`,"aria-label":`${t.completedSteps}/${t.totalSteps}`,children:[(0,V.jsxs)(`small`,{children:[t.completedSteps,`/`,t.totalSteps]}),(0,V.jsx)(`i`,{children:(0,V.jsx)(`b`,{style:{width:`${r}%`}})})]}),(0,V.jsxs)(`span`,{className:`personal-row-status is-${t.status}`,children:[t.status===`running`?(0,V.jsx)(Em,{className:`personal-spin`,size:14}):null,n(Yy[t.status])]}),t.sessionId?(0,V.jsx)(`span`,{className:`personal-run-open-label`,children:n(`tasks.viewExecution`)}):null,(0,V.jsx)(im,{size:17})]})}function Zy({onSelect:e,schedule:t}){let{t:n}=Ji(),r=t.scheduleKind===`heartbeat`;return(0,V.jsxs)(`button`,{"aria-label":`${r?`Heartbeat`:n(`tasks.scheduled`)}:${t.label};${t.status??`active`}`,className:`personal-schedule-row`,onClick:e,type:`button`,children:[(0,V.jsx)(`span`,{className:`personal-schedule-icon`,children:r?(0,V.jsx)(Rm,{size:17}):(0,V.jsx)(tm,{size:17})}),(0,V.jsxs)(`span`,{className:`personal-schedule-copy`,children:[(0,V.jsx)(`small`,{children:n(r?`schedule.heartbeat`:`schedule.monitor`)}),(0,V.jsx)(`strong`,{children:t.label}),(0,V.jsx)(`p`,{children:t.schedule??n(`schedule.summary`)})]}),(0,V.jsx)(`span`,{className:`personal-schedule-status is-${t.status??`active`}`,children:t.status===`paused`?n(`schedule.paused`):n(`schedule.active`)}),(0,V.jsx)(im,{size:16})]})}function Qy({delivery:e}){let{t}=Ji();if(!e)return null;let n=e.status===`delivered`?e.verification===`reconciled_after_restart`?t(`returnDelivery.reconciled`):t(`returnDelivery.delivered`):e.status===`verification_required`?t(`returnDelivery.verifying`):e.status===`explicit_unverified`?t(`returnDelivery.unverified`):t(`returnDelivery.queued`),r=e.status===`delivered`?`delivered`:e.status===`verification_required`?`verification_required`:e.status===`explicit_unverified`?`explicit_unverified`:`queued`;return(0,V.jsx)(`small`,{className:`personal-return-delivery is-${r}`,role:`status`,children:n})}function $y({items:e,onSelect:t,selectedGoal:n}){let{t:r}=Ji();if(e.length===0)return(0,V.jsxs)(`div`,{className:`personal-timeline-empty`,children:[(0,V.jsx)(`span`,{children:(0,V.jsx)(Ym,{size:20})}),(0,V.jsx)(`strong`,{children:r(n?`timeline.emptyGoal`:`timeline.emptyWorkspace`)}),(0,V.jsx)(`p`,{children:r(n?`timeline.emptyGoalDescription`:`timeline.emptyWorkspaceDescription`)})]});let i=[...e].reverse().find(e=>e.kind===`message`&&e.message.role!==`user`||e.kind===`proposal`&&[`applied`,`stale`,`error`,`gated`].includes(e.proposal.status)||e.kind===`run`&&e.run.status===`completed`),a=i?.kind===`message`?`${i.message.agentLabel??r(`header.manager`)}:${i.message.pending?r(`timeline.pending`):i.message.text}`:i?.kind===`proposal`?`${i.proposal.title}:${i.proposal.status}`:i?.kind===`run`?r(`timeline.runCompleted`,{run:i.run.title}):``,o=e.filter(e=>e.kind===`proposal`&&e.proposal.status===`gated`),s=e.filter(e=>e.kind!==`proposal`),c=e.filter(e=>e.kind===`proposal`&&e.proposal.status!==`gated`);function l(e){return e.kind===`attention`?(0,V.jsx)(Vy,{attention:e.attention,onSelect:()=>t({item:e.attention,kind:`attention`})},e.id):e.kind===`run`?(0,V.jsx)(Xy,{onSelect:()=>t({item:e.run,kind:`run`}),run:e.run},e.id):e.kind===`output`?(0,V.jsx)(Jy,{onSelect:()=>t({item:e.output,kind:`output`}),output:e.output},e.id):e.kind===`schedule`?(0,V.jsx)(Zy,{onSelect:()=>t({item:e.schedule,kind:`schedule`}),schedule:e.schedule},e.id):e.kind===`proposal`?(0,V.jsxs)(`button`,{className:`personal-proposal-row is-${e.proposal.status}`,onClick:()=>t({item:e.proposal,kind:`proposal`}),type:`button`,children:[(0,V.jsx)(`span`,{children:(0,V.jsx)(Ym,{size:17})}),(0,V.jsxs)(`span`,{children:[(0,V.jsxs)(`small`,{children:[e.proposal.actionKind,` · `,e.proposal.status]}),(0,V.jsx)(`strong`,{children:e.proposal.title}),(0,V.jsx)(`p`,{children:e.proposal.impact})]}),(0,V.jsx)(`b`,{children:e.proposal.status===`gated`&&e.proposal.actionKind!==`operation.execute`?r(`timeline.review`):e.proposal.primaryLabel??r(`timeline.reviewAndConfirm`)})]},e.id):(0,V.jsxs)(`article`,{className:`personal-message is-${e.message.role}`,children:[e.message.role===`user`?null:(0,V.jsx)(`span`,{className:`personal-message-avatar`,children:(0,V.jsx)($p,{size:17})}),(0,V.jsxs)(`div`,{children:[(0,V.jsxs)(`header`,{children:[(0,V.jsx)(`strong`,{children:e.message.role===`user`?r(`common.you`):e.message.agentLabel??r(`header.manager`)}),e.message.time?(0,V.jsx)(`time`,{children:e.message.time}):null]}),e.message.attachments?.length?(0,V.jsx)(`div`,{className:`personal-message-images`,children:e.message.attachments.map(e=>(0,V.jsx)(`img`,{alt:e.name,src:e.dataUrl},e.id))}):null,e.message.role===`user`?(0,V.jsx)(`p`,{children:e.message.text}):(0,V.jsx)(qy,{text:e.message.text}),e.message.pending?(0,V.jsx)(`span`,{className:`personal-message-pending`,children:r(`timeline.pending`)}):null,(0,V.jsx)(Qy,{delivery:e.message.returnDelivery})]})]},e.id)}return(0,V.jsxs)(V.Fragment,{children:[(0,V.jsx)(`p`,{"aria-atomic":`true`,"aria-live":`polite`,className:`personal-live-region`,role:`status`,children:a}),(0,V.jsxs)(`div`,{className:`personal-channel-timeline`,children:[s.map(l),o.length?(0,V.jsxs)(`details`,{className:`personal-gated-summary`,children:[(0,V.jsxs)(`summary`,{children:[(0,V.jsx)(`span`,{children:(0,V.jsx)(Ym,{size:16})}),(0,V.jsx)(`strong`,{children:r(`timeline.waitingConfirmation`)}),(0,V.jsx)(`small`,{children:r(`timeline.gateHistory`,{count:o.length})})]}),(0,V.jsx)(`div`,{children:o.map(l)})]}):null,c.map(l)]})]})}function eb({goal:e}){let{t,locale:n}=Ji(),r=n===`zh-CN`?{checkpoint_satisfied:`检查点满足`,checkpoint_fresh:`检查点有效`,path_outcome_valid:`路径决策有效`,evidence_refs_present:`证据引用齐全`,final_outcome_claim_present:`最终成果声明齐全`,no_reported_outcome_gap:`无已报告成果缺口`}:{checkpoint_satisfied:`Checkpoint satisfied`,checkpoint_fresh:`Checkpoint current`,path_outcome_valid:`Valid path decision`,evidence_refs_present:`Evidence refs present`,final_outcome_claim_present:`Final outcome claim present`,no_reported_outcome_gap:`No reported outcome gap`},i={connected:t(`acceptance.connected`),mapped:t(`acceptance.mapped`),refreshed:t(`acceptance.refreshed`),adapter_inspected:t(`acceptance.inspected`),run_recorded:t(`acceptance.recorded`),reward_judged:t(`acceptance.judged`),operator_approved:t(`acceptance.approved`),controller_ready:t(`acceptance.ready`),attention_queue:t(`acceptance.attentionSource`),agent_vision:t(`acceptance.visionSource`),todo_projection:t(`acceptance.todoSource`),current_run:t(`acceptance.runSource`)},a=e=>i[e]??t(`acceptance.unknown`),o=e.acceptanceObservation,s=e.loadState||!o||o.goal_id!==e.goalId||o.coverage===`unavailable`;return(0,V.jsxs)(`section`,{className:`personal-detail-card personal-goal-acceptance`,"aria-label":t(`acceptance.title`),children:[(0,V.jsxs)(`div`,{className:`personal-detail-card-title`,children:[(0,V.jsx)(`h3`,{children:t(`acceptance.title`)}),(0,V.jsx)(`em`,{children:t(`common.readOnly`)})]}),(0,V.jsx)(`p`,{role:`status`,children:t(s?`acceptance.unavailable`:`acceptance.partial`)}),!s&&o?(0,V.jsxs)(V.Fragment,{children:[(0,V.jsx)(`h4`,{children:t(`acceptance.gaps`)}),o.acceptance_gaps.length?o.acceptance_gaps.map((e,i)=>(0,V.jsxs)(`div`,{className:`personal-acceptance-observation`,children:[(0,V.jsx)(`p`,{children:e.reason??t(`acceptance.reasonUnknown`)}),e.resolution_hint?(0,V.jsx)(`p`,{children:e.resolution_hint}):null,e.component_checks?(0,V.jsx)(`div`,{children:Object.entries(e.component_checks).map(([e,t])=>(0,V.jsxs)(`p`,{children:[r[e],`: `,n===`zh-CN`?t?`通过`:`未通过`:t?`Passed`:`Failed`]},e))}):null,(0,V.jsxs)(`dl`,{children:[(0,V.jsxs)(`div`,{children:[(0,V.jsx)(`dt`,{children:t(`common.owner`)}),(0,V.jsx)(`dd`,{children:e.owner??t(`acceptance.unknown`)})]}),(0,V.jsxs)(`div`,{children:[(0,V.jsx)(`dt`,{children:t(`acceptance.required`)}),(0,V.jsx)(`dd`,{children:e.evidence_required??t(`acceptance.unknown`)})]}),(0,V.jsxs)(`div`,{children:[(0,V.jsx)(`dt`,{children:t(`acceptance.observed`)}),(0,V.jsx)(`dd`,{children:e.observed_at??t(`acceptance.unknown`)})]})]})]},`${e.kind}:${e.owner}:${i}`)):(0,V.jsx)(`p`,{children:t(`acceptance.noGaps`)}),(0,V.jsx)(`h4`,{children:t(`acceptance.guards`)}),o.guards.length?o.guards.map((e,n)=>(0,V.jsxs)(`div`,{className:`personal-acceptance-observation`,children:[(0,V.jsx)(`p`,{children:e.reason??t(`acceptance.reasonUnknown`)}),(0,V.jsxs)(`dl`,{children:[(0,V.jsxs)(`div`,{children:[(0,V.jsx)(`dt`,{children:t(`common.owner`)}),(0,V.jsx)(`dd`,{children:e.owner??t(`acceptance.unknown`)})]}),e.blocks_agent?(0,V.jsxs)(`div`,{children:[(0,V.jsx)(`dt`,{children:t(`common.agent`)}),(0,V.jsx)(`dd`,{children:e.blocks_agent})]}):null,e.todo_id?(0,V.jsxs)(`div`,{children:[(0,V.jsx)(`dt`,{children:t(`common.task`)}),(0,V.jsx)(`dd`,{children:e.todo_id})]}):null,(0,V.jsxs)(`div`,{children:[(0,V.jsx)(`dt`,{children:t(`acceptance.required`)}),(0,V.jsx)(`dd`,{children:e.evidence_required??t(`acceptance.unknown`)})]}),(0,V.jsxs)(`div`,{children:[(0,V.jsx)(`dt`,{children:t(`acceptance.scope`)}),(0,V.jsx)(`dd`,{children:e.decision_scope??t(`acceptance.unknown`)})]})]})]},`${e.todo_id}:${n}`)):(0,V.jsx)(`p`,{children:t(`acceptance.noGuards`)}),(0,V.jsx)(`h4`,{children:t(`acceptance.next`)}),(0,V.jsx)(`p`,{children:o.next_action??t(`acceptance.unknown`)}),(0,V.jsxs)(`details`,{children:[(0,V.jsxs)(`summary`,{children:[t(`acceptance.historical_progress`),` · `,o.historical_progress.length]}),(0,V.jsx)(`p`,{children:t(`acceptance.historical`)}),o.historical_progress.map(e=>(0,V.jsxs)(`p`,{children:[(0,V.jsx)(`strong`,{children:a(e.kind)}),` · `,e.observed_at??t(`acceptance.unknown`),` `,e.evidence_refs.join(`, `)]},e.kind))]}),o.missing_sources.length?(0,V.jsxs)(`p`,{children:[t(`acceptance.missing`),` `,o.missing_sources.map(a).join(`, `)]}):null,o.truncated?(0,V.jsx)(`p`,{children:t(`acceptance.truncated`)}):null]}):null]})}function tb({item:e,successor:t,onSelect:n}){let{t:r}=Ji(),i=e.details;return(0,V.jsxs)(`section`,{className:`personal-detail-card`,"aria-label":r(`attentionDetail.title`),children:[(0,V.jsx)(`h3`,{children:r(`attentionDetail.title`)}),(0,V.jsxs)(`dl`,{children:[(0,V.jsxs)(`div`,{children:[(0,V.jsx)(`dt`,{children:r(`attentionDetail.request`)}),(0,V.jsx)(`dd`,{children:r(i?.interaction===`decision`?`attentionDetail.decision`:`attentionDetail.unknownRequest`)})]}),(0,V.jsxs)(`div`,{children:[(0,V.jsx)(`dt`,{children:r(`common.status`)}),(0,V.jsx)(`dd`,{children:r(`attentionDetail.${i?.lifecycle??`unknown`}`)})]}),(0,V.jsxs)(`div`,{children:[(0,V.jsx)(`dt`,{children:r(`drawer.reason`)}),(0,V.jsx)(`dd`,{children:i?.reason??e.explanation??r(`attentionDetail.unknownReason`)})]}),(0,V.jsxs)(`div`,{children:[(0,V.jsx)(`dt`,{children:`Todo`}),(0,V.jsx)(`dd`,{children:e.todoId})]}),(0,V.jsxs)(`div`,{children:[(0,V.jsx)(`dt`,{children:r(`attentionDetail.targetTodo`)}),(0,V.jsx)(`dd`,{children:i?.unblocksTodoId??r(`attentionDetail.notProvided`)})]}),(0,V.jsxs)(`div`,{children:[(0,V.jsx)(`dt`,{children:r(`attentionDetail.targetAgent`)}),(0,V.jsx)(`dd`,{children:i?.blocksAgent??r(`attentionDetail.notProvided`)})]}),(0,V.jsxs)(`div`,{children:[(0,V.jsx)(`dt`,{children:r(`attentionDetail.scope`)}),(0,V.jsx)(`dd`,{children:i?.decisionScope?`${i.decisionScope.kind} · ${i.decisionScope.granularity} · ${i.decisionScope.scopeKey}`:r(`attentionDetail.notProvided`)})]}),(0,V.jsxs)(`div`,{children:[(0,V.jsx)(`dt`,{children:r(`drawer.evidence`)}),(0,V.jsx)(`dd`,{children:i?.evidence??e.evidence??r(`drawer.decisionDefaultEvidence`)})]})]}),i?.supersededBy?(0,V.jsxs)(`p`,{children:[r(`attentionDetail.replacement`),`: `,i.supersededBy]}):null,t&&n?(0,V.jsx)(`button`,{className:`personal-secondary-action`,onClick:()=>n(t),type:`button`,children:r(`attentionDetail.openReplacement`)}):null,(0,V.jsx)(`p`,{children:r(`attentionDetail.boundary`)})]})}function nb(e){return e.replace(/\s+/gu,` `).trim()}function rb(e,t){let n=RegExp(`(?:不要|不需要|无需|禁止|别|暂不|do not\\b|don't\\b|without\\b).{0,10}(?:${t.source})`,`iu`),r=RegExp(`(?:${t.source}).{0,10}(?:不要|不需要|无需|禁止|关闭)`,`iu`),i=RegExp(`disable\\b.{0,10}(?:${t.source})|(?:turn|switch|set)\\b.{0,10}(?:${t.source}).{0,10}\\boff\\b|(?:${t.source})\\s+(?:is\\s+)?disabled\\b`,`iu`);return n.test(e)||r.test(e)||i.test(e)}function ib(e){return/(我现在该做什么|下一步|哪些\s*Goal\s*在等我|需要我|谁在等我|Agent\s*在做什么|当前进度|总结(?:今天)?进展)/iu.test(e)}function ab(e){let t=/(怎么|如何|为什么|给.*建议|分析一下|解释|只读)/u.test(e),n=/(解决一下|修复一下|处理一下|执行一下|改一下|跑(?:一下)?测试|rebase|push|提交|推送)/iu.test(e);return!t&&n&&/(帮我|请|给我|直接|现在|开始|bytedcli|codebase|git|rebase|push|提交|推送)/iu.test(e)}function ob(e){return nb(e).toLowerCase().match(/(?:^|[\s,,;;:((:]|到|至)(?todo_done:todo_[a-z0-9_-]{3,64}|pr_merged:(?:(?:[a-z0-9_.-]{1,80})\/(?:[a-z0-9_.-]{1,100}))?#[1-9][0-9]{0,8}|capacity_available:[a-z][a-z0-9_:-]{0,63}|resume_at:[1-9][0-9]{3}-[0-9]{2}-[0-9]{2}t[0-9]{2}:[0-9]{2}:[0-9]{2}(?:\.[0-9]{1,3})?(?:z|[+-][0-9]{2}:[0-9]{2}))(?=$|[\s,,。;;))])/iu)?.groups?.condition??null}function sb(e,t){let n=nb(e),r=[],i=t.agents.find(e=>{let t=n.toLowerCase();return t.includes(e.agentId.toLowerCase())||t.includes(e.label.toLowerCase())}),a=t.todos.find(e=>n.includes(e.todoId)||n.includes(e.text)),o=/(刚刚|已经|已)(?:经)?\s*(新增|创建|添加)(?:的)?\s*(todo|待办|任务)/iu.test(n),s=!!t.goalId&&!rb(n,/heartbeat|心跳/iu)&&/(heartbeat|心跳|每天推进|持续推进|daily progress)/iu.test(n);if(!t.goalId&&!rb(n,/goal|目标/iu)&&/(创建|新建|设置|create|start|set up).{0,24}(goal|目标)/iu.test(n)&&r.push({actionKind:`goal.create`,confidence:.97,normalizedParameters:{heartbeat_enabled:!rb(n,/heartbeat|心跳/iu)&&/(heartbeat|心跳|每天推进|持续推进|daily progress)/iu.test(n)}}),t.goalId&&s&&r.push({actionKind:`heartbeat.bind`,confidence:.96,normalizedParameters:{goal_id:t.goalId}}),t.goalId&&!s&&!rb(n,/定时|监控|监测|持续观察|scheduled check|monitor/iu)&&/(定时|监控|监测|每.{0,8}(分钟|小时|天)|持续观察|scheduled check|monitor|every.{0,12}(minute|hour|day)|daily)/iu.test(n)&&r.push({actionKind:`monitor.create`,confidence:.94,normalizedParameters:{goal_id:t.goalId}}),t.goalId&&i&&!rb(n,/绑定|负责|接管|管理/iu)&&/((让|交给).{0,20}(管理|负责|接管).{0,8}(goal|目标)|(绑定).{0,12}(goal|目标)|(goal|目标).{0,12}(交给|绑定|负责|接管))/iu.test(n)&&r.push({actionKind:`agent.bind`,confidence:.96,normalizedParameters:{agent_id:i.agentId,goal_id:t.goalId}}),t.goalId&&!o&&!rb(n,RegExp(`todo|待办|任务`,`iu`))&&/(创建|新建|新增|添加|加一个|记一个).{0,16}(todo|待办|任务)|(todo|待办|任务).{0,12}(创建|新建|新增|添加)|(?:create|add)(?:\s+(?:a|an|new))?\s+(?:todo|task)|(?:todo|task).{0,12}(?:create|add)/iu.test(n)&&r.push({actionKind:`todo.create`,confidence:.94,normalizedParameters:{goal_id:t.goalId}}),t.goalId&&ab(n)&&r.push({actionKind:`todo.create`,confidence:.9,normalizedParameters:{goal_id:t.goalId,start_execution:!0}}),t.goalId&&a){let e=!rb(n,/完成|做完|关闭/u)&&/完成|做完|关闭/u.test(n)?`complete`:!rb(n,/阻塞|卡住/u)&&/阻塞|卡住/u.test(n)?`block`:!rb(n,/暂缓|稍后|推迟/u)&&/暂缓|稍后|推迟/u.test(n)?`defer`:i&&!rb(n,/交给|分配给|改派/u)&&/交给|分配给|改派/u.test(n)?`reassign`:null;if(e){let i=e===`defer`?ob(n):null;if(e===`defer`&&!i)return{actionKind:`todo.update`,confidence:.97,missingFields:[`resume_when`],normalizedParameters:{goal_id:t.goalId,operation:e,todo_id:a.todoId},route:`clarify`};r.push({actionKind:`todo.update`,confidence:.97,normalizedParameters:{goal_id:t.goalId,operation:e,...i?{resume_when:i}:{},todo_id:a.todoId}})}}let c=[...new Map(r.map(e=>[e.actionKind,e])).values()];return c.length>1?{actionKind:null,confidence:.4,missingFields:[`single_intent`],normalizedParameters:{},route:`clarify`}:c.length===1?{...c[0],missingFields:[],route:`typed_action`}:!t.goalId&&ib(n)?{actionKind:null,confidence:.98,missingFields:[],normalizedParameters:{},route:`projection`}:{actionKind:null,confidence:.75,missingFields:[],normalizedParameters:{},route:`agent_chat`}}function cb(e,t,n){if(!e)return{};if(!t.trim())return{modelConfig:null};let r={model:t.trim()};return n&&(r.reasoning_effort=n),{modelConfig:r}}var lb=[`a[href]`,`button:not([disabled])`,`textarea:not([disabled])`,`select:not([disabled])`,`input:not([disabled])`,`[tabindex]:not([tabindex='-1'])`].join(`,`),ub=[{key:`drawer.taskBlock`,operation:`block`},{key:`drawer.taskSuccessor`,operation:`successor_create`}],db=[{key:`drawer.decisionReject`,resolution:`reject`},{key:`drawer.decisionDefer`,resolution:`defer`}],fb=Array.from({length:32},(e,t)=>t+1),pb=/^[a-z][a-z0-9_.-]{0,63}$/u;function mb(e){let t=String(e??``).trim().toLowerCase();return pb.test(t)?t:null}function hb(e,t){return e.enabled===t.enabled&&e.maxChildren===t.maxChildren&&JSON.stringify(e.modelConfig??null)===JSON.stringify(t.modelConfig??null)&&[...e.allowedDomains].sort((e,t)=>e.localeCompare(t)).join(`\0`)===[...t.allowedDomains].sort((e,t)=>e.localeCompare(t)).join(`\0`)}function gb({agents:e,attentionHistory:t=[],onSelectAttention:n,callbacks:r,goalNotifications:i=[],goals:a=[],inspectorExpanded:o=!1,larkConnections:s=[],onClose:c,onToggleInspectorSize:l,readOnly:u=!1,runs:d=[],selection:f}){let{locale:p,t:m}=Ji(),[h,g]=(0,B.useState)(``),[_,v]=(0,B.useState)(!1),[y,b]=(0,B.useState)(`idle`),[x,S]=(0,B.useState)(`record`),[C,w]=(0,B.useState)([]),[T,E]=(0,B.useState)(null),[D,O]=(0,B.useState)(2),[k,ee]=(0,B.useState)(``),[te,A]=(0,B.useState)(``),[j,M]=(0,B.useState)(`idle`),[ne,N]=(0,B.useState)(null),[P,re]=(0,B.useState)(null),ie=(0,B.useRef)(null),ae=(0,B.useRef)(null),[F,oe]=(0,B.useState)(e.find(e=>e.available)?.agentId??`codex`),[I,se]=(0,B.useState)(``),L=(0,B.useRef)(null),ce=(0,B.useRef)(null),le=(0,B.useRef)(null),ue=(0,B.useRef)(null),de=f.kind===`run`?`run:${f.item.runId}`:f.kind===`proposal`?`proposal:${f.item.previewId}`:f.kind===`todo`?`todo:${f.item.todoId}`:f.kind===`attention`?`attention:${f.item.todoId}`:f.kind===`output`?`output:${f.item.outputId}`:f.kind===`schedule`?`schedule:${f.item.scheduleId}`:`goal:${f.item.goalId}`;(0,B.useEffect)(()=>{b(`idle`),v(!1),S(`record`),se(``);let e=f.kind===`goal`?f.item.subagentExecution:void 0;w(e?.allowedDomains??[]),ee(e?.modelConfig?.model??``),A(e?.modelConfig?.reasoning_effort??``),O(e?.maxChildren?Math.min(e.maxChildren,32):2),E(null),M(`idle`),N(null),re(null),ie.current=e??null,ae.current=null},[de]);let R=f.kind===`goal`?f.item.subagentExecution:void 0;(0,B.useEffect)(()=>{let e=ie.current,t=R?!e||!hb(e,R):e!==null;if(ie.current=R??null,!P){t&&R&&(w(R.allowedDomains),ee(R.modelConfig?.model??``),A(R.modelConfig?.reasoning_effort??``),O(R.maxChildren||2),E(null),M(`idle`),N(null));return}let n=ae.current;(!R||hb(P,R)||n&&!hb(n,R))&&(R&&(w(R.allowedDomains),ee(R.modelConfig?.model??``),A(R.modelConfig?.reasoning_effort??``),O(R.maxChildren||2)),ae.current=null,re(null))},[R,P]),(0,B.useEffect)(()=>{let e=document.activeElement;e instanceof HTMLElement&&!ce.current?.contains(e)&&(le.current=e);let t=window.requestAnimationFrame(()=>ue.current?.focus());return()=>window.cancelAnimationFrame(t)},[de]);let fe=(0,B.useCallback)(()=>{let e=le.current;c(),window.requestAnimationFrame(()=>e?.focus())},[c]);(0,B.useEffect)(()=>{function e(e){if(e.key===`Escape`){e.preventDefault(),fe();return}if(e.key===`Tab`&&f.kind!==`todo`){let t=Array.from(ce.current?.querySelectorAll(lb)??[]).filter(e=>!e.hasAttribute(`disabled`)&&e.getAttribute(`aria-hidden`)!==`true`);if(t.length===0)return;let n=t[0],r=t[t.length-1];e.shiftKey&&document.activeElement===n?(e.preventDefault(),r.focus()):!e.shiftKey&&document.activeElement===r&&(e.preventDefault(),n.focus())}}return document.addEventListener(`keydown`,e),()=>{document.removeEventListener(`keydown`,e)}},[fe,f.kind]);let pe=f.kind===`attention`?m(`drawer.titleAttention`):f.kind===`todo`?m(`drawer.taskDetails`):f.kind===`run`?m(`drawer.runDetails`):f.kind===`output`?m(`drawer.titleOutput`):f.kind===`proposal`?m(f.item.status===`applied`?`drawer.titleProposalApplied`:`drawer.titleProposalConfirm`):f.kind===`schedule`?f.item.scheduleKind===`heartbeat`?`Heartbeat`:m(`drawer.titleSchedule`):m(`drawer.goalDetails`),me=f.kind===`proposal`?f.item.goalId??`manager`:f.item.goalId,he=f.kind===`attention`?f.item.goalTitle??m(`drawer.currentGoal`):f.kind===`todo`||f.kind===`run`?f.item.goalTitle:f.kind===`output`?f.item.goalTitle??m(`drawer.currentGoal`):f.kind===`goal`?f.item.title:f.kind===`schedule`?m(`drawer.goalAutoRun`):f.item.goalId?m(`drawer.goalChanges`):m(`drawer.managerChanges`),ge=f.kind===`goal`?d.find(e=>e.goalId===f.item.goalId&&!!e.sessionId)??d.find(e=>e.goalId===f.item.goalId):null,_e=f.kind===`run`&&(f.item.completedSteps>0||!!f.item.latestActivity||!!f.item.outputs?.length),ve=f.kind===`attention`?Zi(f.item.updatedAt,m):null,ye=ob(I);async function be(){f.kind!==`run`||!h.trim()||(await r.onCorrectRun?.(f.item,h.trim()),g(``))}async function xe(e,t,n,i){if(t===`successor_create`){await r.onPreviewAction?.({actionKind:`todo.create`,context:{goal_id:e.goalId,kind:`todo`,todo_id:e.todoId},idempotencyKey:`workspace-todo-successor-${e.todoId}-${Date.now().toString(36)}`,normalizedParameters:{goal_id:e.goalId,text:m(`drawer.taskSuccessorText`,{task:e.text})},summary:m(`drawer.taskSuccessorSummary`,{task:e.text})});return}await r.onPreviewAction?.({actionKind:`todo.update`,context:{goal_id:e.goalId,kind:`todo`,todo_id:e.todoId},idempotencyKey:`workspace-todo-${e.todoId}-${t}-${Date.now().toString(36)}`,normalizedParameters:{agent_id:e.claimedBy??F,goal_id:e.goalId,operation:t,...t===`block`?{note:m(`drawer.taskSuccessorNote`)}:{},...t===`defer`&&i?{resume_when:i}:{},todo_id:e.todoId},summary:`${n}:${e.text}`})}async function Se(e,t,n){u||!qd(e)||await r.onPreviewAction?.({actionKind:`gate.resolve`,context:{goal_id:e.goalId,kind:`todo`,todo_id:e.todoId},idempotencyKey:`workspace-decision-${e.todoId}-${t}-${Date.now().toString(36)}`,normalizedParameters:{goal_id:e.goalId,decision:t,todo_id:e.todoId},summary:`${n}:${e.text}`})}let Ce=f.kind===`goal`?P??f.item.subagentExecution??{allowedDomains:[],domainCandidates:[],enabled:!1,maxChildren:0}:{allowedDomains:[],domainCandidates:[],enabled:!1,maxChildren:0},we=j===`previewing`||j===`applying`,Te=(()=>{if(f.kind!==`goal`)return[];let e=new Map;for(let t of Ce.allowedDomains){let n=mb(t);n&&e.set(n,{matchingTodoCount:0,value:n})}if(Ce.domainCandidates)for(let t of Ce.domainCandidates){let n=mb(t.domain);if(!n)continue;let r=e.get(n);e.set(n,{matchingTodoCount:(r?.matchingTodoCount??0)+t.matchingTodoCount,value:n})}else for(let t of f.item.agentTodos){if(t.done||t.taskClass!==`advancement_task`)continue;let n=mb(t.taskDomain);if(!n)continue;let r=e.get(n);e.set(n,{matchingTodoCount:(r?.matchingTodoCount??0)+1,value:n})}return[...e.values()]})();function Ee(){w(Ce.allowedDomains),ee(Ce.modelConfig?.model??``),A(Ce.modelConfig?.reasoning_effort??``),O(Ce.maxChildren||2),E(null),M(`idle`),N(null)}function De(){let e=[...new Set(C.map(e=>mb(e)))];return e.every(e=>!!e)?e:null}function z(e,t){w(n=>t?[...n,e].filter((e,t,n)=>n.indexOf(e)===t):n.filter(t=>t!==e)),N(null),M(`idle`),E(null)}async function Oe(e,t=e){if(f.kind!==`goal`||!r.onPreviewGoalSubagentConfiguration)return;let n=e?De():[];if(t&&!k.trim()&&te){M(`error`),E(m(`drawer.subagentModelRequired`));return}if(e&&!n){M(`error`),E(m(`drawer.subagentDomainInvalid`)),N(null);return}let i={allowedDomains:n??[],enabled:e,goalId:f.item.goalId,maxChildren:e?D:0,...cb(t,k,te)};M(`previewing`),E(m(`drawer.subagentPreviewing`)),N(null);try{let e=await r.onPreviewGoalSubagentConfiguration(i);if(!e.changed){ae.current=R??null,re({...e.configuration,domainCandidates:Ce.domainCandidates}),w(e.configuration.allowedDomains),ee(e.configuration.modelConfig?.model??``),A(e.configuration.modelConfig?.reasoning_effort??``),O(e.configuration.maxChildren||2),M(`success`),E(m(`drawer.subagentNoChange`));return}N({...i,changed:e.changed,previewId:e.previewId}),M(`ready`),E(m(`drawer.subagentPreviewReady`))}catch(e){M(`error`),E(e instanceof Error?e.message:m(`drawer.subagentPreviewFailed`))}}async function ke(){if(!(!ne||!r.onApplyGoalSubagentConfiguration)){M(`applying`),E(m(`drawer.subagentApplying`));try{let e=await r.onApplyGoalSubagentConfiguration({allowedDomains:ne.allowedDomains,enabled:ne.enabled,goalId:ne.goalId,maxChildren:ne.maxChildren,modelConfig:ne.modelConfig,previewId:ne.previewId});ae.current=R??null,re({...e,domainCandidates:Ce.domainCandidates}),w(e.allowedDomains),ee(e.modelConfig?.model??``),A(e.modelConfig?.reasoning_effort??``),O(e.maxChildren||2),M(`success`),E(m(`drawer.subagentApplied`)),N(null);try{await r.onRefresh?.()}catch{M(`warning`),E(m(`drawer.subagentAppliedRefreshFailed`))}}catch(e){M(`error`),E(e instanceof Error?e.message:m(`drawer.subagentApplyFailed`))}}}return(0,V.jsxs)(`div`,{"aria-labelledby":`personal-drawer-title`,"aria-modal":f.kind===`todo`?void 0:`true`,className:`personal-context-drawer`,"data-context-kind":f.kind,ref:ce,role:`dialog`,children:[(0,V.jsxs)(`header`,{className:`personal-drawer-header${f.kind===`todo`?` is-task-inspector`:``}`,children:[(0,V.jsxs)(`div`,{children:[(0,V.jsx)(`h2`,{id:`personal-drawer-title`,ref:ue,tabIndex:-1,children:pe}),(0,V.jsx)(`p`,{children:he})]}),(0,V.jsxs)(`div`,{className:`personal-drawer-header-actions`,children:[f.kind===`todo`&&l?(0,V.jsx)(`button`,{"aria-label":m(o?`drawer.inspectorHalf`:`drawer.inspectorFull`),className:`personal-icon-button personal-inspector-size`,onClick:l,title:m(o?`drawer.inspectorHalfView`:`drawer.inspectorFullView`),type:`button`,children:o?(0,V.jsx)(jm,{size:17}):(0,V.jsx)(Dm,{size:17})}):null,(0,V.jsxs)(`button`,{"aria-label":m(`drawer.closeDetail`,{context:he}),className:`personal-icon-button personal-drawer-close`,onClick:fe,ref:L,type:`button`,children:[(0,V.jsx)(qp,{className:`personal-mobile-back`,size:18}),(0,V.jsx)(nh,{className:`personal-desktop-close`,size:18})]})]})]}),(0,V.jsxs)(`div`,{className:`personal-drawer-body`,children:[f.kind===`attention`?(0,V.jsxs)(V.Fragment,{children:[(0,V.jsxs)(`section`,{className:`personal-detail-card is-attention`,children:[(0,V.jsx)(`small`,{children:f.item.blocking?m(`drawer.attentionBlocking`):m(`drawer.attentionWaiting`)}),(0,V.jsx)(`h3`,{children:f.item.text}),(0,V.jsxs)(`dl`,{children:[(0,V.jsxs)(`div`,{children:[(0,V.jsx)(`dt`,{children:`Goal`}),(0,V.jsx)(`dd`,{children:f.item.goalTitle??f.item.goalId})]}),(0,V.jsxs)(`div`,{children:[(0,V.jsx)(`dt`,{children:m(`drawer.priority`)}),(0,V.jsx)(`dd`,{children:f.item.priority??`medium`})]}),ve?(0,V.jsxs)(`div`,{children:[(0,V.jsx)(`dt`,{children:m(`common.waiting`)}),(0,V.jsx)(`dd`,{children:m(`tasks.waitingAge`,{age:ve})})]}):null]})]}),(0,V.jsx)(tb,{item:f.item,onSelect:n,successor:Kd(f.item,t)}),!u&&qd(f.item)?(0,V.jsxs)(V.Fragment,{children:[(0,V.jsxs)(`button`,{className:`personal-primary-action`,onClick:()=>void Se(f.item,`approve`,m(`common.confirm`)),type:`button`,children:[(0,V.jsx)(nm,{size:17}),m(`drawer.decisionReview`)]}),(0,V.jsxs)(`details`,{className:`personal-compact-menu`,children:[(0,V.jsxs)(`summary`,{children:[(0,V.jsx)(pm,{size:17}),m(`drawer.decisionMore`)]}),(0,V.jsxs)(`div`,{children:[(0,V.jsxs)(`button`,{onClick:()=>void r.onExplainDecision?.(f.item),type:`button`,children:[(0,V.jsx)(km,{size:16}),m(`drawer.explainDecision`)]}),db.map(e=>(0,V.jsx)(`button`,{onClick:()=>void Se(f.item,e.resolution,m(e.key)),type:`button`,children:m(e.key)},e.resolution))]})]})]}):null]}):null,f.kind===`todo`?(0,V.jsxs)(V.Fragment,{children:[(0,V.jsxs)(`section`,{className:`personal-task-inspector-summary`,children:[(0,V.jsxs)(`div`,{className:`personal-task-inspector-status`,children:[(0,V.jsxs)(`span`,{className:f.item.done?`is-done`:f.item.status===`blocked`?`is-blocked`:`is-open`,children:[(0,V.jsx)(`i`,{}),f.item.done?m(`drawer.taskStatusCompleted`):f.item.status===`deferred`?m(`drawer.taskStatusDeferred`):f.item.status===`blocked`?m(`drawer.taskStatusBlocked`):m(`drawer.taskStatusOpen`)]}),f.item.priority?(0,V.jsx)(`span`,{children:f.item.priority}):null,(0,V.jsx)(`span`,{children:f.item.taskClass===`advancement_task`?m(`drawer.taskAdvancement`):f.item.taskClass??m(`drawer.taskOrdinary`)})]}),(0,V.jsx)(`h3`,{children:f.item.text})]}),(0,V.jsxs)(`section`,{"aria-label":m(`drawer.taskInfo`),className:`personal-task-inspector-fields`,children:[(0,V.jsx)(`h4`,{children:m(`drawer.taskInfo`)}),(0,V.jsxs)(`dl`,{children:[(0,V.jsxs)(`div`,{children:[(0,V.jsx)(`dt`,{children:`Goal`}),(0,V.jsx)(`dd`,{children:f.item.goalTitle})]}),(0,V.jsxs)(`div`,{children:[(0,V.jsx)(`dt`,{children:m(`common.owner`)}),(0,V.jsx)(`dd`,{children:f.item.ownerLabel??f.item.claimedBy??m(`drawer.notAssigned`)})]}),(0,V.jsxs)(`div`,{children:[(0,V.jsx)(`dt`,{children:m(`common.status`)}),(0,V.jsx)(`dd`,{children:f.item.done?m(`drawer.taskStatusCompleted`):f.item.status===`deferred`?m(`drawer.taskStatusDeferred`):f.item.status===`blocked`?m(`drawer.taskStatusBlocked`):m(`drawer.taskStatusOpen`)})]}),(0,V.jsxs)(`div`,{children:[(0,V.jsx)(`dt`,{children:m(`drawer.priority`)}),(0,V.jsx)(`dd`,{children:f.item.priority??m(`drawer.notSet`)})]}),(0,V.jsxs)(`div`,{children:[(0,V.jsx)(`dt`,{children:m(`drawer.dependencies`)}),(0,V.jsx)(`dd`,{children:f.item.dependencies?.join(` · `)||m(`common.none`)})]}),f.item.status===`deferred`||f.item.resumeWhen?(0,V.jsxs)(`div`,{children:[(0,V.jsx)(`dt`,{children:m(`drawer.resumeWhen`)}),(0,V.jsx)(`dd`,{children:f.item.resumeWhen||m(`drawer.notSet`)})]}):null,f.item.resumeWhen?(0,V.jsxs)(`div`,{children:[(0,V.jsx)(`dt`,{children:m(`drawer.resumeState`)}),(0,V.jsx)(`dd`,{children:f.item.resumeReady?m(`drawer.resumeReady`):m(`drawer.resumePending`)})]}):null,f.item.resumeReceiptId?(0,V.jsxs)(`div`,{children:[(0,V.jsx)(`dt`,{children:m(`drawer.resumeReceipt`)}),(0,V.jsx)(`dd`,{children:f.item.resumeReceiptId})]}):null,(0,V.jsxs)(`div`,{children:[(0,V.jsx)(`dt`,{children:m(`drawer.nextTransition`)}),(0,V.jsx)(`dd`,{children:f.item.nextTransition??(f.item.done?m(`drawer.taskNextCompleted`):f.item.resumeReady?m(`drawer.taskNextResumeReady`):f.item.status===`deferred`?m(`drawer.taskNextDeferred`):m(`drawer.taskNextOpen`))})]})]})]}),!u&&!f.item.done?(0,V.jsxs)(`div`,{className:`personal-task-inspector-actions`,"aria-label":m(`drawer.taskActions`),children:[(0,V.jsxs)(`details`,{className:`personal-task-management`,children:[(0,V.jsxs)(`summary`,{children:[(0,V.jsx)(pm,{size:16}),m(`drawer.taskManage`)]}),(0,V.jsxs)(`div`,{children:[(0,V.jsx)(`strong`,{children:m(`drawer.reassign`)}),(0,V.jsxs)(`label`,{className:`personal-inline-agent-select`,children:[m(`drawer.reassign`),(0,V.jsx)(`select`,{"aria-label":m(`drawer.reassign`),onChange:e=>oe(e.target.value),value:F,children:e.filter(e=>e.available).map(e=>(0,V.jsx)(`option`,{value:e.agentId,children:e.label},e.agentId))}),(0,V.jsx)(`button`,{className:`personal-secondary-action`,onClick:()=>void r.onPreviewAction?.({actionKind:`todo.update`,context:{goal_id:f.item.goalId,kind:`todo`,todo_id:f.item.todoId},idempotencyKey:`workspace-todo-${f.item.todoId}-reassign-${F}-${Date.now().toString(36)}`,normalizedParameters:{agent_id:F,goal_id:f.item.goalId,operation:`reassign`,todo_id:f.item.todoId},summary:m(`drawer.reassignSummary`,{task:f.item.text})}),type:`button`,children:m(`timeline.review`)})]}),(0,V.jsx)(`strong`,{children:m(`drawer.taskDeferUntil`)}),(0,V.jsxs)(`label`,{className:`personal-inline-agent-select personal-inline-resume-when`,children:[m(`drawer.taskDeferUntil`),(0,V.jsx)(`input`,{"aria-label":m(`drawer.taskDeferCondition`),"aria-invalid":!!I.trim()&&!ye,onChange:e=>se(e.target.value),placeholder:m(`drawer.taskDeferPlaceholder`),value:I}),(0,V.jsx)(`button`,{className:`personal-secondary-action`,disabled:!ye,onClick:()=>void xe(f.item,`defer`,m(`drawer.taskDefer`),ye??void 0),type:`button`,children:m(`drawer.taskDeferReview`)}),(0,V.jsx)(`small`,{children:I.trim()&&!ye?m(`drawer.taskDeferInvalid`):m(`drawer.taskDeferSupported`)})]}),(0,V.jsx)(`div`,{className:`personal-task-management-secondary`,children:ub.map(e=>(0,V.jsx)(`button`,{onClick:()=>void xe(f.item,e.operation,m(e.key)),type:`button`,children:m(e.key)},e.operation))})]})]}),(0,V.jsxs)(`button`,{className:`personal-primary-action`,onClick:()=>void xe(f.item,`complete`,m(`drawer.taskComplete`)),type:`button`,children:[(0,V.jsx)(nm,{size:17}),m(`drawer.taskComplete`)]})]}):null,f.item.done?(0,V.jsxs)(`div`,{className:`personal-task-completed-note`,children:[(0,V.jsx)(nm,{size:16}),(0,V.jsxs)(`span`,{children:[(0,V.jsx)(`strong`,{children:m(`drawer.taskCompletedTitle`)}),(0,V.jsx)(`small`,{children:m(`drawer.taskCompletedNote`)})]})]}):null]}):null,f.kind===`goal`?(0,V.jsxs)(V.Fragment,{children:[(0,V.jsxs)(`section`,{className:`personal-detail-card`,children:[(0,V.jsx)(`small`,{children:Yi(f.item.state,p)}),(0,V.jsx)(`h3`,{children:f.item.title}),(0,V.jsx)(`p`,{children:f.item.agentSentence}),(0,V.jsxs)(`dl`,{children:[(0,V.jsxs)(`div`,{children:[(0,V.jsx)(`dt`,{children:m(`drawer.tokens`)}),(0,V.jsxs)(`dd`,{children:[Iy(f.item.usage?.tokens24h,m(`drawer.usageNotMeasured`),Ny),` / `,Iy(f.item.usage?.tokens7d,m(`drawer.usageNotMeasured`),Ny)]})]}),(0,V.jsxs)(`div`,{children:[(0,V.jsx)(`dt`,{children:m(`drawer.cost`)}),(0,V.jsxs)(`dd`,{children:[Iy(f.item.usage?.costUsd24h,m(`drawer.usageNotMeasured`),Py),` / `,Iy(f.item.usage?.costUsd7d,m(`drawer.usageNotMeasured`),Py)]})]}),(0,V.jsxs)(`div`,{children:[(0,V.jsx)(`dt`,{children:m(`drawer.duration`)}),(0,V.jsxs)(`dd`,{children:[Iy(f.item.usage?.durationMs24h,m(`drawer.usageNotMeasured`),Fy),` / `,Iy(f.item.usage?.durationMs7d,m(`drawer.usageNotMeasured`),Fy)]})]})]})]}),(0,V.jsx)(eb,{goal:f.item}),(()=>{let e=i.find(e=>e.goalId===f.item.goalId),t=s.find(e=>e.goal_id===f.item.goalId);return(0,V.jsxs)(V.Fragment,{children:[f.item.repository?(0,V.jsxs)(`section`,{className:`personal-detail-card personal-goal-repository`,children:[(0,V.jsxs)(`div`,{className:`personal-detail-card-title`,children:[(0,V.jsx)(`small`,{children:m(`drawer.repository`)}),(0,V.jsx)(`em`,{children:m(`common.readOnly`)})]}),(0,V.jsxs)(`h3`,{children:[(0,V.jsx)(ym,{size:16}),f.item.repository.label]}),(0,V.jsxs)(`dl`,{children:[(0,V.jsxs)(`div`,{children:[(0,V.jsx)(`dt`,{children:m(`drawer.branch`)}),(0,V.jsx)(`dd`,{children:f.item.repository.branch||`detached`})]}),(0,V.jsxs)(`div`,{children:[(0,V.jsx)(`dt`,{children:`Role`}),(0,V.jsx)(`dd`,{children:m(`drawer.repositoryRole`)})]})]}),(0,V.jsxs)(`button`,{className:`personal-secondary-action`,onClick:()=>{let e=navigator.clipboard?.writeText(f.item.repository?.identity??``);if(!e){b(`error`);return}e.then(()=>b(`copied`)).catch(()=>b(`error`))},type:`button`,children:[(0,V.jsx)(um,{size:15}),m(y===`copied`?`drawer.copyRepositoryDone`:`drawer.copyRepository`)]}),y===`error`?(0,V.jsx)(`p`,{className:`personal-copy-feedback is-error`,role:`status`,children:m(`drawer.copyRepositoryError`)}):y===`copied`?(0,V.jsx)(`p`,{className:`personal-copy-feedback`,role:`status`,children:m(`drawer.copyRepositorySuccess`)}):null]}):null,u?(0,V.jsxs)(`section`,{className:`personal-detail-card personal-goal-notification`,children:[(0,V.jsx)(`small`,{children:m(`drawer.larkConnection`)}),(0,V.jsx)(`h3`,{children:m(`drawer.remoteDetailsUnavailable`)}),(0,V.jsx)(`p`,{children:m(`drawer.remoteDetailsDescription`)})]}):(0,V.jsxs)(`section`,{className:`personal-detail-card personal-goal-notification`,children:[(0,V.jsx)(`small`,{children:m(`drawer.larkConnection`)}),t?(0,V.jsxs)(V.Fragment,{children:[(0,V.jsxs)(`h3`,{children:[t.app_label,(0,V.jsx)(`span`,{className:`personal-connection-status`,children:m(`drawer.connected`)})]}),(0,V.jsxs)(`dl`,{children:[(0,V.jsxs)(`div`,{children:[(0,V.jsx)(`dt`,{children:m(`drawer.group`)}),(0,V.jsx)(`dd`,{children:t.chat_name})]}),(0,V.jsxs)(`div`,{children:[(0,V.jsx)(`dt`,{children:m(`drawer.topic`)}),(0,V.jsxs)(`dd`,{children:[`# `,t.topic_name]})]}),(0,V.jsxs)(`div`,{children:[(0,V.jsx)(`dt`,{children:m(`drawer.trigger`)}),(0,V.jsx)(`dd`,{children:t.incoming_mode===`mentions`?m(`lark.someoneMentions`):m(`lark.allMessages`)})]}),(0,V.jsxs)(`div`,{children:[(0,V.jsx)(`dt`,{children:m(`drawer.replyMode`)}),(0,V.jsx)(`dd`,{children:m(`lark.topicReply`)})]}),(0,V.jsxs)(`div`,{children:[(0,V.jsx)(`dt`,{children:m(`drawer.autoNotify`)}),(0,V.jsx)(`dd`,{children:e?.humanGateAutoNotifyEnabled?m(`common.on`):m(`common.off`)})]}),e?.lastNotifiedAt?(0,V.jsxs)(`div`,{children:[(0,V.jsx)(`dt`,{children:m(`drawer.lastNotification`)}),(0,V.jsx)(`dd`,{children:e.lastNotifiedAt})]}):null]})]}):(0,V.jsxs)(V.Fragment,{children:[(0,V.jsx)(`h3`,{children:m(`drawer.larkNotConfigured`)}),(0,V.jsx)(`p`,{children:m(`drawer.larkNotConfiguredDescription`)})]}),(0,V.jsxs)(`button`,{className:`personal-secondary-action`,onClick:()=>r.onOpenNotificationSettings?.(f.item.goalId),type:`button`,children:[(0,V.jsx)(Qp,{size:16}),m(t?`drawer.larkConfigure`:`drawer.larkConnect`)]})]})]})})(),(0,V.jsxs)(`section`,{className:`personal-detail-card personal-goal-session`,children:[(0,V.jsx)(`small`,{children:m(`drawer.runDetails`)}),ge?.sessionId?(0,V.jsxs)(V.Fragment,{children:[(0,V.jsx)(`h3`,{children:Xi(ge.sessionStatus??ge.status,m)}),(0,V.jsx)(`p`,{children:ge.title}),r.onOpenRunSession?(0,V.jsxs)(`button`,{className:`personal-primary-action`,onClick:()=>void r.onOpenRunSession?.(ge),type:`button`,children:[(0,V.jsx)(Im,{size:16}),m(`drawer.runLatest`)]}):null]}):(0,V.jsxs)(V.Fragment,{children:[(0,V.jsx)(`h3`,{children:m(`drawer.noRun`)}),(0,V.jsx)(`p`,{children:m(`drawer.noRunDescription`)})]})]}),u?null:(0,V.jsxs)(`div`,{className:`personal-drawer-action-grid`,children:[(0,V.jsxs)(`button`,{className:`personal-secondary-action`,onClick:()=>r.onRequestScheduleConfig?.(`heartbeat`,f.item.goalId),type:`button`,children:[(0,V.jsx)(Rm,{size:16}),m(`drawer.setupHeartbeat`)]}),(0,V.jsxs)(`button`,{className:`personal-secondary-action`,onClick:()=>r.onRequestScheduleConfig?.(`monitor`,f.item.goalId),type:`button`,children:[(0,V.jsx)(tm,{size:16}),m(`drawer.scheduleAdd`)]})]}),f.item.subagentExecution?(0,V.jsxs)(`section`,{className:`personal-detail-card personal-goal-subagents`,children:[(0,V.jsxs)(`div`,{className:`personal-subagent-heading`,children:[(0,V.jsxs)(`div`,{children:[(0,V.jsx)(`small`,{children:m(`drawer.subagentLabel`)}),(0,V.jsxs)(`h3`,{children:[(0,V.jsx)($p,{size:16}),m(`drawer.subagentTitle`)]})]}),(0,V.jsxs)(`button`,{"aria-checked":Ce.enabled,"aria-label":m(ne&&j===`ready`?`drawer.subagentPending`:Ce.enabled?`drawer.subagentDisable`:`drawer.subagentEnable`),className:`personal-subagent-switch`,"data-pending":ne&&j===`ready`?`true`:void 0,disabled:u||we||!!ne||!r.onPreviewGoalSubagentConfiguration,onClick:()=>void Oe(!Ce.enabled),role:`switch`,type:`button`,children:[(0,V.jsx)(`span`,{}),m(ne&&j===`ready`?`drawer.subagentPending`:Ce.enabled?`common.on`:`common.off`)]})]}),(0,V.jsx)(`p`,{children:m(`drawer.subagentDescription`)}),ne&&j===`ready`?(0,V.jsxs)(`div`,{className:`personal-subagent-preview`,children:[(0,V.jsx)(`strong`,{children:m(ne.enabled?`drawer.subagentConfirmEnable`:`drawer.subagentConfirmDisable`)}),(0,V.jsx)(`p`,{children:ne.enabled?m(`drawer.subagentPreviewSummary`,{count:ne.maxChildren,domains:ne.allowedDomains.join(` · `)||m(`drawer.subagentDomainsUnrestricted`)}):m(`drawer.subagentDisableSummary`)}),ne.modelConfig===void 0?null:(0,V.jsxs)(`p`,{children:[m(`drawer.subagentModel`),`: `,ne.modelConfig?.model||m(`drawer.subagentModelDefault`),` · `,ne.modelConfig?.reasoning_effort||m(`drawer.subagentModelDefault`)]}),(0,V.jsxs)(`div`,{children:[(0,V.jsx)(`button`,{className:`personal-primary-action`,onClick:()=>void ke(),type:`button`,children:m(`common.confirm`)}),(0,V.jsx)(`button`,{className:`personal-secondary-action`,onClick:Ee,type:`button`,children:m(`common.cancel`)})]})]}):null,T?(0,V.jsxs)(`p`,{className:`personal-subagent-feedback is-${j}`,role:`status`,children:[j===`previewing`||j===`applying`?(0,V.jsx)(Bm,{className:`personal-spin`,size:13}):null,T]}):null,(0,V.jsxs)(`dl`,{children:[(0,V.jsxs)(`div`,{children:[(0,V.jsx)(`dt`,{children:m(`drawer.subagentModel`)}),(0,V.jsx)(`dd`,{children:Ce.modelConfig?.model||m(`drawer.subagentModelDefault`)})]}),(0,V.jsxs)(`div`,{children:[(0,V.jsx)(`dt`,{children:m(`drawer.subagentEffort`)}),(0,V.jsx)(`dd`,{children:Ce.modelConfig?.reasoning_effort||m(`drawer.subagentModelDefault`)})]}),(0,V.jsxs)(`div`,{children:[(0,V.jsx)(`dt`,{children:m(`drawer.subagentCurrentBoundary`)}),(0,V.jsx)(`dd`,{children:Ce.allowedDomains.join(` · `)||m(`drawer.subagentDomainsUnrestricted`)})]}),(0,V.jsxs)(`div`,{children:[(0,V.jsx)(`dt`,{children:m(`drawer.subagentChildLimit`)}),(0,V.jsx)(`dd`,{children:Ce.maxChildren||0})]})]}),u?(0,V.jsx)(`p`,{className:`personal-subagent-read-only`,children:m(`drawer.subagentRemoteReadOnly`)}):(0,V.jsxs)(`div`,{className:`personal-subagent-fields`,children:[(0,V.jsxs)(`fieldset`,{className:`personal-subagent-domain-picker`,disabled:we,children:[(0,V.jsx)(`legend`,{children:m(`drawer.subagentDomains`)}),Te.length>0?(0,V.jsx)(`div`,{className:`personal-subagent-domain-options`,children:Te.map(e=>{let t=C.includes(e.value);return(0,V.jsxs)(`label`,{className:`personal-subagent-domain-option${t?` is-selected`:``}`,children:[(0,V.jsx)(`input`,{"aria-label":e.value,checked:t,onChange:t=>z(e.value,t.target.checked),type:`checkbox`}),(0,V.jsxs)(`span`,{children:[(0,V.jsx)(`strong`,{children:e.value}),(0,V.jsx)(`small`,{children:m(`drawer.subagentDomainTodoCount`,{count:e.matchingTodoCount})})]})]},e.value)})}):(0,V.jsx)(`p`,{className:`personal-subagent-domain-empty`,children:m(`drawer.subagentDomainsEmpty`)}),(0,V.jsx)(`small`,{children:m(`drawer.subagentDomainsHint`)})]}),(0,V.jsxs)(`label`,{children:[(0,V.jsx)(`span`,{children:m(`drawer.subagentModel`)}),(0,V.jsx)(`input`,{"aria-label":m(`drawer.subagentModel`),disabled:we,value:k,placeholder:`gpt-5.6-luna`,onChange:e=>{ee(e.target.value),N(null),M(`idle`),E(null)}})]}),(0,V.jsxs)(`label`,{children:[(0,V.jsx)(`span`,{children:m(`drawer.subagentEffort`)}),(0,V.jsxs)(`select`,{"aria-label":m(`drawer.subagentEffort`),disabled:we,value:te,onChange:e=>{A(e.target.value),N(null),M(`idle`),E(null)},children:[(0,V.jsx)(`option`,{value:``,children:m(`drawer.subagentModelDefault`)}),[`none`,`minimal`,`low`,`medium`,`high`,`xhigh`,`max`,`ultra`].map(e=>(0,V.jsx)(`option`,{value:e,children:e},e))]})]}),(0,V.jsx)(`button`,{className:`personal-secondary-action`,disabled:we,type:`button`,onClick:()=>{ee(`gpt-5.6-luna`),A(`max`),N(null),M(`idle`),E(null)},children:m(`drawer.subagentLunaPreset`)}),(0,V.jsx)(`button`,{className:`personal-secondary-action`,disabled:we,type:`button`,onClick:()=>{ee(``),A(``),N(null),M(`idle`),E(null)},children:m(`drawer.subagentClearModel`)}),(0,V.jsx)(`p`,{children:m(`drawer.subagentModelHint`)}),(0,V.jsxs)(`label`,{className:`personal-subagent-limit-field`,children:[(0,V.jsx)(`span`,{children:m(`drawer.subagentMaxChildren`)}),(0,V.jsx)(`select`,{"aria-label":m(`drawer.subagentMaxChildren`),disabled:we,onChange:e=>{O(Number(e.target.value)),N(null),M(`idle`),E(null)},value:D,children:fb.map(e=>(0,V.jsx)(`option`,{value:e,children:e},e))})]}),(0,V.jsx)(`button`,{className:`personal-secondary-action`,disabled:we,onClick:()=>void Oe(Ce.enabled,!0),type:`button`,children:m(`drawer.subagentPreviewBoundary`)})]})]}):null]}):null,f.kind===`run`?(0,V.jsxs)(V.Fragment,{children:[(0,V.jsxs)(`div`,{"aria-label":m(`drawer.runView`),className:`personal-run-drawer-tabs`,role:`tablist`,children:[(0,V.jsx)(`button`,{"aria-selected":x===`record`,onClick:()=>S(`record`),role:`tab`,type:`button`,children:m(`drawer.executionRecordAndResult`)}),(0,V.jsx)(`button`,{"aria-selected":x===`details`,onClick:()=>S(`details`),role:`tab`,type:`button`,children:m(`drawer.detailsAndActions`)})]}),x===`record`?(0,V.jsxs)(V.Fragment,{children:[(0,V.jsxs)(`section`,{className:`personal-detail-card personal-session-summary`,children:[(0,V.jsxs)(`small`,{children:[f.item.agentLabel,` · `,Xi(f.item.sessionStatus??f.item.status,m)]}),(0,V.jsx)(`h3`,{children:f.item.title}),(0,V.jsx)(`p`,{children:f.item.latestActivity}),(0,V.jsxs)(`dl`,{children:[(0,V.jsxs)(`div`,{children:[(0,V.jsx)(`dt`,{children:`Goal`}),(0,V.jsx)(`dd`,{children:f.item.goalTitle})]}),(0,V.jsxs)(`div`,{children:[(0,V.jsx)(`dt`,{children:m(`drawer.progress`)}),(0,V.jsxs)(`dd`,{children:[f.item.completedSteps,`/`,f.item.totalSteps]})]})]})]}),(0,V.jsxs)(`section`,{"aria-label":m(`drawer.executionRecord`),className:`personal-session-message-record`,children:[(0,V.jsx)(`h3`,{children:m(`drawer.executionRecord`)}),f.item.sessionMessages?.length?(0,V.jsx)(`ol`,{children:f.item.sessionMessages.map(e=>(0,V.jsxs)(`li`,{className:`is-${e.role}`,children:[(0,V.jsx)(`i`,{}),(0,V.jsxs)(`div`,{children:[(0,V.jsxs)(`header`,{children:[(0,V.jsx)(`strong`,{children:e.role===`user`?m(`drawer.runRoleUser`):e.role===`assistant`?m(`drawer.runRoleAssistant`):m(`drawer.runRoleSystem`)}),e.createdAt?(0,V.jsx)(`time`,{children:new Date(e.createdAt).toLocaleTimeString(p,{hour:`2-digit`,minute:`2-digit`,hour12:!1})}):null]}),(0,V.jsx)(`p`,{children:e.text})]})]},e.messageId))}):(0,V.jsx)(`p`,{className:`personal-session-empty`,children:_e?m(`drawer.runRecordProjected`,{completed:f.item.completedSteps,outputs:f.item.outputs?.length?m(`drawer.runRecordProjectedOutputs`,{count:f.item.outputs.length}):``,total:f.item.totalSteps}):m(`drawer.runRecordEmpty`)}),f.item.status===`running`?(0,V.jsxs)(`div`,{className:`personal-session-active-step`,children:[(0,V.jsx)(`i`,{}),(0,V.jsxs)(`span`,{children:[(0,V.jsx)(`strong`,{children:m(`drawer.analysis`)}),(0,V.jsx)(`small`,{children:m(`drawer.agentWorking`)})]})]}):null]}),f.item.outputs?.length?(0,V.jsxs)(`section`,{className:`personal-execution-history`,"aria-labelledby":`personal-run-outputs-title`,children:[(0,V.jsx)(`h3`,{id:`personal-run-outputs-title`,children:m(`drawer.outputs`)}),(0,V.jsx)(`ol`,{children:f.item.outputs.map(e=>(0,V.jsx)(`li`,{children:(0,V.jsxs)(`span`,{children:[(0,V.jsx)(`strong`,{children:e.title}),(0,V.jsx)(`small`,{children:e.createdAt??e.kind??m(`files.emptySummary`)})]})},e.outputId))})]}):null]}):(0,V.jsxs)(V.Fragment,{children:[(0,V.jsxs)(`section`,{className:`personal-detail-card`,children:[(0,V.jsxs)(`small`,{children:[f.item.agentLabel,` · `,Xi(f.item.status,m)]}),(0,V.jsx)(`h3`,{children:f.item.title}),(0,V.jsx)(`p`,{children:f.item.latestActivity}),(0,V.jsxs)(`dl`,{children:[(0,V.jsxs)(`div`,{children:[(0,V.jsx)(`dt`,{children:`Goal`}),(0,V.jsx)(`dd`,{children:f.item.goalTitle})]}),(0,V.jsxs)(`div`,{children:[(0,V.jsx)(`dt`,{children:m(`drawer.progress`)}),(0,V.jsxs)(`dd`,{children:[f.item.completedSteps,`/`,f.item.totalSteps]})]}),(0,V.jsxs)(`div`,{children:[(0,V.jsx)(`dt`,{children:m(`drawer.sessionStatus`)}),(0,V.jsx)(`dd`,{children:Xi(f.item.sessionStatus??f.item.status,m)})]}),(0,V.jsxs)(`div`,{children:[(0,V.jsx)(`dt`,{children:m(`drawer.sessionRecoverable`)}),(0,V.jsx)(`dd`,{children:f.item.resumable===!1?m(`drawer.resumeNo`):m(`drawer.resumeYes`)})]})]})]}),f.item.sessionStatus===`resume_failed`&&!u?(0,V.jsxs)(`section`,{className:`personal-recovery-panel`,"aria-label":m(`drawer.recoveryFailed`),children:[(0,V.jsx)(`strong`,{children:m(`drawer.recoveryFailed`)}),(0,V.jsx)(`p`,{children:m(`drawer.recoveryDescription`)}),(0,V.jsxs)(`button`,{className:`personal-primary-action`,onClick:()=>void r.onRetryResumeRun?.(f.item),type:`button`,children:[(0,V.jsx)(Bm,{size:16}),m(`drawer.recoveryRetry`)]}),(0,V.jsxs)(`button`,{className:`personal-secondary-action`,onClick:()=>void r.onStartNewRunSession?.(f.item),type:`button`,children:[(0,V.jsx)(Im,{size:16}),m(`drawer.recoveryNewSession`)]})]}):null,u?null:(0,V.jsxs)(`section`,{className:`personal-correction-panel`,children:[(0,V.jsx)(`header`,{children:(0,V.jsxs)(`span`,{children:[(0,V.jsx)($p,{size:16}),m(`drawer.correctionLabel`,{agent:f.item.agentLabel})]})}),(0,V.jsx)(`p`,{children:m(`drawer.correctionDescription`)}),(0,V.jsxs)(`div`,{className:`personal-correction-composer`,children:[(0,V.jsx)(`textarea`,{"aria-label":m(`drawer.correctionTextarea`,{agent:f.item.agentLabel,goal:f.item.goalTitle,run:f.item.title}),onChange:e=>g(e.target.value),placeholder:m(`drawer.correctionPlaceholder`),rows:3,value:h}),(0,V.jsx)(`button`,{"aria-label":m(`drawer.correctionSend`),disabled:!h.trim(),onClick:()=>void be(),type:`button`,children:(0,V.jsx)(Um,{size:16})})]})]}),u?null:(0,V.jsxs)(`details`,{className:`personal-compact-menu personal-run-more`,children:[(0,V.jsxs)(`summary`,{children:[(0,V.jsx)(pm,{size:17}),m(`drawer.moreRunActions`)]}),(0,V.jsxs)(`div`,{children:[(0,V.jsxs)(`button`,{disabled:!f.item.canInterrupt,onClick:()=>void r.onInterruptRun?.(f.item),type:`button`,children:[(0,V.jsx)(Fm,{size:16}),m(`drawer.runInterrupt`)]}),(0,V.jsxs)(`button`,{disabled:f.item.resumable===!1,onClick:()=>void r.onRetryResumeRun?.(f.item),type:`button`,children:[(0,V.jsx)(Bm,{size:16}),m(`drawer.recoveryRetry`)]}),(0,V.jsxs)(`button`,{onClick:()=>void r.onStartNewRunSession?.(f.item),type:`button`,children:[(0,V.jsx)(Im,{size:16}),m(`drawer.runNewSession`)]}),(0,V.jsxs)(`button`,{onClick:()=>void r.onCloseRunSession?.(f.item),type:`button`,children:[(0,V.jsx)(Xm,{size:16}),m(`drawer.runCloseSession`)]})]})]})]})]}):null,f.kind===`output`?(0,V.jsxs)(V.Fragment,{children:[(0,V.jsxs)(`section`,{className:`personal-detail-card`,children:[(0,V.jsx)(`small`,{children:f.item.kind??`output`}),(0,V.jsx)(`h3`,{children:f.item.title}),(0,V.jsx)(`p`,{children:f.item.summary??m(`drawer.outputRecorded`)}),(0,V.jsxs)(`dl`,{children:[(0,V.jsxs)(`div`,{children:[(0,V.jsx)(`dt`,{children:`Goal`}),(0,V.jsx)(`dd`,{children:f.item.goalTitle??f.item.goalId})]}),(0,V.jsxs)(`div`,{children:[(0,V.jsx)(`dt`,{children:m(`drawer.outputTodo`)}),(0,V.jsx)(`dd`,{children:f.item.todoId??m(`drawer.notLinked`)})]}),(0,V.jsxs)(`div`,{children:[(0,V.jsx)(`dt`,{children:m(`drawer.outputRun`)}),(0,V.jsx)(`dd`,{children:f.item.runId??m(`drawer.notLinked`)})]}),(0,V.jsxs)(`div`,{children:[(0,V.jsx)(`dt`,{children:`Agent`}),(0,V.jsx)(`dd`,{children:f.item.agentLabel??f.item.agentId??`LoopX`})]})]})]}),f.item.report?(0,V.jsxs)(`section`,{className:`personal-report-detail`,"data-testid":`personal-periodic-report-detail`,children:[(0,V.jsxs)(`header`,{children:[(0,V.jsxs)(`span`,{children:[(0,V.jsxs)(`strong`,{children:[`+`,f.item.report.addedCount]}),m(`files.reportAdded`)]}),(0,V.jsxs)(`span`,{children:[(0,V.jsx)(`strong`,{children:f.item.report.changedCount}),m(`files.reportChanged`)]})]}),(0,V.jsxs)(`p`,{children:[f.item.report.periodStartAt,` → `,f.item.report.periodEndAt]}),(0,V.jsx)(`ol`,{children:f.item.report.items.map(e=>(0,V.jsxs)(`li`,{"data-change-kind":e.changeKind,children:[(0,V.jsxs)(`small`,{children:[e.changeKind,` · `,e.status]}),(0,V.jsx)(`strong`,{children:e.title}),(0,V.jsx)(`p`,{children:e.summary})]},e.sourceRef))}),(0,V.jsxs)(`footer`,{children:[(0,V.jsxs)(`span`,{children:[m(`files.reportPublication`),`: `,f.item.report.publicationId]}),(0,V.jsxs)(`span`,{children:[m(`files.reportGeneration`),`: `,f.item.report.generationId]})]})]}):null,f.item.safePreview?(0,V.jsx)(`pre`,{"aria-label":m(`drawer.outputSafePreview`),className:`personal-safe-preview`,children:f.item.safePreview}):(0,V.jsx)(`p`,{className:`personal-preview-unavailable`,children:m(`drawer.previewUnavailable`)}),(0,V.jsxs)(`div`,{className:`personal-drawer-action-grid`,children:[(0,V.jsxs)(`button`,{className:`personal-primary-action`,disabled:!r.onOpenOutput,onClick:()=>{r.onOpenOutput?.(f.item),c()},type:`button`,children:[(0,V.jsx)(mm,{size:16}),m(`files.openConversation`)]}),(0,V.jsxs)(`button`,{className:`personal-secondary-action`,disabled:!r.onExportOutput,onClick:()=>void r.onExportOutput?.(f.item),type:`button`,children:[(0,V.jsx)(fm,{size:16}),m(`files.exportSummary`)]})]})]}):null,f.kind===`proposal`?(0,V.jsxs)(V.Fragment,{children:[(0,V.jsxs)(`section`,{className:`personal-proposal-card`,children:[(0,V.jsxs)(`small`,{children:[f.item.actionKind,` · `,f.item.status]}),(0,V.jsx)(`h3`,{children:f.item.title}),(0,V.jsx)(`p`,{children:f.item.impact}),f.item.reviewPlan?(0,V.jsx)(`p`,{className:`personal-proposal-explainer`,"data-action-review":f.item.reviewPlan.interaction,children:f.item.actionKind===`operation.execute`&&f.item.status===`gated`?m(`actionReview.operation_group_confirmation`):f.item.actionKind===`operation.execute`&&f.item.reviewPlan.reason===`readback_unverified`?m(`actionReview.operation_result_delivery_pending`):m(`actionReview.${f.item.reviewPlan.reason}`)}):null,f.item.status===`ready`?(0,V.jsx)(`p`,{className:`personal-proposal-explainer`,children:m(`drawer.proposalExplainer`)}):null,(0,V.jsx)(`dl`,{children:f.item.fields.map(e=>(0,V.jsxs)(`div`,{children:[(0,V.jsx)(`dt`,{children:e.label}),(0,V.jsx)(`dd`,{children:e.value})]},e.key))})]}),f.item.status===`applied`?(0,V.jsxs)(`p`,{className:`personal-proposal-state ${f.item.actionKind===`operation.execute`&&f.item.reviewPlan?.reason===`readback_unverified`?`is-gated`:`is-applied`}`,children:[(0,V.jsx)(nm,{size:16}),f.item.actionKind===`operation.execute`?f.item.primaryLabel:m(`drawer.proposalApplied`)]}):null,f.item.status===`applied`&&f.item.actionKind!==`operation.execute`&&f.item.goalId?(0,V.jsxs)(`button`,{className:`personal-primary-action`,onClick:()=>{let e=f.item.goalId;c(),r.onOpenGoal?.(e)},type:`button`,children:[(0,V.jsx)(mm,{size:16}),f.item.actionKind===`goal.create`?m(`drawer.proposalEnterGoal`):m(`drawer.proposalViewGoal`)]}):null,f.item.status===`stale`?(0,V.jsx)(`p`,{className:`personal-proposal-state is-stale`,children:m(`drawer.proposalStale`)}):null,f.item.status===`error`?(0,V.jsxs)(`div`,{className:`personal-proposal-state is-error`,children:[(0,V.jsx)(`span`,{children:f.item.reviewPlan?.reason===`readback_unverified`?m(`actionReview.readback_unverified`):m(`drawer.proposalApplyFailed`)}),f.item.errorMessage?(0,V.jsx)(`small`,{children:f.item.errorMessage}):null,(0,V.jsx)(`small`,{children:m(`drawer.proposalApplyFailedHint`)})]}):null,f.item.status===`rejected`?(0,V.jsx)(`p`,{className:`personal-proposal-state is-error`,children:m(`drawer.proposalRejected`)}):null,f.item.status===`deferred`?(0,V.jsx)(`p`,{className:`personal-proposal-state is-gated`,children:m(`drawer.proposalDeferred`)}):null,f.item.status===`gated`?(0,V.jsxs)(`div`,{className:`personal-proposal-state is-gated`,children:[(0,V.jsxs)(`span`,{children:[(0,V.jsx)(`strong`,{children:f.item.actionKind===`operation.execute`?f.item.primaryLabel:m(`drawer.gateRequiresHost`)}),f.item.actionKind===`operation.execute`?f.item.impact:m(`drawer.gateRequiresHostDescription`)]}),f.item.gate?.nextAction?(0,V.jsx)(`small`,{children:f.item.gate.nextAction}):null]}):null,f.item.status===`gated`&&f.item.actionKind===`gate.resolve`?(()=>{let e=e=>f.item.fields.find(t=>t.key===e)?.value,t=e(`goal_id`),n=e(`todo_id`);return!t||!n?null:(0,V.jsxs)(`section`,{className:`personal-detail-card personal-gate-cli-hint`,children:[(0,V.jsx)(`small`,{children:m(`drawer.gateApproveHint`)}),(0,V.jsxs)(`code`,{children:[`loopx todo complete --goal-id `,t,` --todo-id `,n,` --decision-outcome approve`]}),(0,V.jsx)(`small`,{children:m(`drawer.gateRejectHint`)})]})})():null,!u&&f.item.workspaceCandidates?.length?(0,V.jsx)(`div`,{className:`personal-workspace-candidates`,"aria-label":m(`drawer.workspaceCandidates`),children:f.item.workspaceCandidates.map(e=>(0,V.jsxs)(`button`,{onClick:()=>void r.onSelectWorkspaceCandidate?.(f.item,e.workspaceRef),type:`button`,children:[(0,V.jsx)(`strong`,{children:e.label}),(0,V.jsx)(`small`,{children:e.workspaceRef})]},e.workspaceRef))}):null,!u&&f.item.actionKind!==`operation.execute`&&f.item.status===`error`?(0,V.jsxs)(`button`,{className:`personal-primary-action`,onClick:()=>void r.onTransitionProposal?.(f.item,`regenerate`),type:`button`,children:[(0,V.jsx)(Bm,{size:17}),m(`drawer.proposalRegenerate`)]}):!u&&f.item.actionKind!==`operation.execute`&&f.item.status!==`gated`?(0,V.jsxs)(`button`,{className:`personal-primary-action`,disabled:![`ready`,`deferred`].includes(f.item.status)||f.item.reviewPlan?.canApply===!1,onClick:()=>void r.onApplyProposal?.(f.item),type:`button`,children:[(0,V.jsx)(nm,{size:17}),f.item.status===`applying`?m(`drawer.applying`):f.item.primaryLabel??m(`drawer.apply`)]}):null,!u&&f.item.actionKind!==`operation.execute`&&([`stale`,`gated`,`rejected`].includes(f.item.status)||f.item.status===`ready`&&f.item.reviewPlan?.canApply===!1)?(0,V.jsxs)(`button`,{className:`personal-secondary-action`,onClick:()=>void r.onTransitionProposal?.(f.item,`regenerate`),type:`button`,children:[(0,V.jsx)(Bm,{size:16}),m(`drawer.proposalRecheck`)]}):null,!u&&f.item.actionKind!==`operation.execute`&&[`ready`,`gated`].includes(f.item.status)?(0,V.jsxs)(`div`,{className:`personal-drawer-action-grid`,children:[(0,V.jsx)(`button`,{className:`personal-secondary-action`,onClick:()=>void r.onTransitionProposal?.(f.item,`defer`),type:`button`,children:m(`drawer.proposalDefer`)}),(0,V.jsx)(`button`,{className:`personal-secondary-action`,onClick:()=>void r.onTransitionProposal?.(f.item,`reject`),type:`button`,children:m(`drawer.decisionReject`)})]}):null,[`applied`,`applying`].includes(f.item.status)?null:(0,V.jsx)(`button`,{className:`personal-secondary-action`,onClick:c,type:`button`,children:m(`drawer.proposalClose`)})]}):null,f.kind===`schedule`?(0,V.jsxs)(V.Fragment,{children:[(0,V.jsxs)(`section`,{className:`personal-detail-card`,children:[(0,V.jsxs)(`small`,{children:[f.item.scheduleKind===`heartbeat`?`Goal Heartbeat`:`continuous_monitor`,` · `,f.item.status??`active`]}),(0,V.jsx)(`h3`,{children:f.item.label}),(0,V.jsx)(`p`,{children:f.item.target??f.item.schedule??m(`drawer.scheduleDefaultTarget`)}),(0,V.jsxs)(`dl`,{children:[(0,V.jsxs)(`div`,{children:[(0,V.jsx)(`dt`,{children:m(`drawer.scheduleTimezone`)}),(0,V.jsx)(`dd`,{children:f.item.timezone??m(`drawer.scheduleLocalTimezone`)})]}),(0,V.jsxs)(`div`,{children:[(0,V.jsx)(`dt`,{children:m(`drawer.scheduleNext`)}),(0,V.jsx)(`dd`,{children:f.item.nextRunAt??m(`drawer.schedulePending`)})]}),(0,V.jsxs)(`div`,{children:[(0,V.jsx)(`dt`,{children:m(`drawer.scheduleLast`)}),(0,V.jsx)(`dd`,{children:f.item.previousRunAt??m(`drawer.scheduleNeverRun`)})]}),(0,V.jsxs)(`div`,{children:[(0,V.jsx)(`dt`,{children:m(`drawer.scheduleNotification`)}),(0,V.jsx)(`dd`,{children:f.item.notificationRule??m(`drawer.scheduleDefaultNotification`)})]}),(0,V.jsxs)(`div`,{children:[(0,V.jsx)(`dt`,{children:m(`drawer.scheduleStopCondition`)}),(0,V.jsx)(`dd`,{children:f.item.stopCondition??m(`drawer.scheduleDefaultStop`)})]})]})]}),!u&&f.item.scheduleKind===`monitor`?(0,V.jsxs)(`button`,{className:`personal-primary-action`,onClick:()=>void r.onUpdateSchedule?.(f.item,`run_now`),type:`button`,children:[(0,V.jsx)(Im,{size:16}),m(`drawer.scheduleRunNow`)]}):null,u?null:(0,V.jsxs)(`div`,{className:`personal-drawer-action-grid`,children:[(0,V.jsxs)(`button`,{className:`personal-secondary-action`,onClick:()=>void r.onUpdateSchedule?.(f.item,f.item.status===`paused`?`resume`:`pause`),type:`button`,children:[f.item.status===`paused`?(0,V.jsx)(Im,{size:16}):(0,V.jsx)(Fm,{size:16}),f.item.status===`paused`?m(`drawer.scheduleResume`):m(`drawer.schedulePause`)]}),(0,V.jsxs)(`button`,{className:`personal-secondary-action`,onClick:()=>void r.onUpdateSchedule?.(f.item,`edit`),type:`button`,children:[(0,V.jsx)(tm,{size:16}),m(`drawer.scheduleEdit`)]})]}),u?null:(0,V.jsxs)(`button`,{className:`personal-danger-action`,onClick:()=>void r.onUpdateSchedule?.(f.item,`stop`),type:`button`,children:[(0,V.jsx)(Xm,{size:16}),m(`drawer.scheduleStop`,{kind:f.item.scheduleKind===`heartbeat`?` Heartbeat`:m(`drawer.titleSchedule`)})]}),(0,V.jsxs)(`section`,{className:`personal-execution-history`,"aria-labelledby":`personal-execution-history-title`,children:[(0,V.jsx)(`h3`,{id:`personal-execution-history-title`,children:m(`drawer.executionHistory`)}),f.item.executionHistory?.length?(0,V.jsx)(`ol`,{children:f.item.executionHistory.map((e,t)=>(0,V.jsxs)(`li`,{children:[(0,V.jsxs)(`span`,{children:[(0,V.jsx)(`strong`,{children:e.label}),(0,V.jsx)(`small`,{children:e.timestamp})]}),(0,V.jsx)(`em`,{className:`is-${e.status}`,children:e.status})]},`${e.timestamp}:${e.runId??t}`))}):(0,V.jsx)(`p`,{children:m(`drawer.noExecutionHistory`)})]})]}):null,f.kind===`run`||f.kind===`proposal`||f.kind===`schedule`?(0,V.jsxs)(V.Fragment,{children:[(0,V.jsxs)(`button`,{"aria-expanded":_,className:`personal-diagnostics-trigger`,onClick:()=>v(e=>!e),type:`button`,children:[(0,V.jsx)(`span`,{children:m(`drawer.advancedDiagnostics`)}),(0,V.jsx)(rm,{className:_?`is-open`:``,size:16})]}),_?(0,V.jsxs)(`div`,{className:`personal-diagnostics`,children:[(0,V.jsxs)(`code`,{children:[`goal_id: `,me]}),(0,V.jsxs)(`code`,{children:[`kind: `,f.kind]}),f.kind===`run`?(0,V.jsxs)(V.Fragment,{children:[(0,V.jsxs)(`code`,{children:[`session_id: `,f.item.sessionId??m(`drawer.notLinked`)]}),(0,V.jsxs)(`code`,{children:[`turn_id: `,f.item.turnId??m(`common.none`)]}),(0,V.jsxs)(`code`,{children:[`adapter: `,f.item.agentId]}),(0,V.jsxs)(`code`,{children:[`status: `,f.item.sessionStatus??f.item.status]})]}):f.kind===`proposal`?(0,V.jsxs)(V.Fragment,{children:[(0,V.jsxs)(`code`,{children:[`action: `,f.item.actionKind]}),(0,V.jsxs)(`code`,{children:[`status: `,f.item.status]})]}):(0,V.jsxs)(V.Fragment,{children:[(0,V.jsxs)(`code`,{children:[`schedule_id: `,f.item.scheduleId]}),(0,V.jsxs)(`code`,{children:[`status: `,f.item.status??`active`]})]})]}):null]}):null]})]})}var _b=[`checking`,`connecting`,`downloading`,`installing_app`,`installing_runtime`],vb={desktop_status_unavailable:[`无法读取 App 更新状态。请重启 App 后再试;若仍失败,请重新安装最新 App。`,`Cannot read the App update status. Restart the App; if this persists, reinstall the latest App.`],update_feed_unavailable:[`此通道的更新源尚未就绪或暂时不可用。可稍后重新检查,当前版本仍可继续使用。`,`This channel's update feed is not ready or temporarily unavailable. Check again later; you can keep using this version.`],update_feed_invalid:[`更新源格式异常。请稍后重新检查。`,`The update feed is invalid. Check again later.`],update_platform_unavailable:[`此通道尚无适用于本机的更新包。`,`This channel has no update package for this platform.`],update_check_timeout:[`检查更新超时。请稍后重试。`,`The update check timed out. Try again later.`],update_network_failed:[`无法连接更新服务器。请检查网络后重试。`,`Cannot reach the update server. Check your connection and retry.`],update_download_or_signature_failed:[`更新包下载或签名校验失败,尚未安装。请重新检查更新。`,`Download or signature verification failed; the update was not installed. Check for updates again.`]};function yb(e,t=`update_failed`){return{phase:`error`,details:{code:typeof e==`string`&&Object.hasOwn(vb,e)?e:t}}}function bb(){let{locale:e}=Ji(),t=e===`zh-CN`,[n,r]=(0,B.useState)(!1),i=(0,B.useRef)(null),[a,o]=(0,B.useState)(`stable`),[s,c]=(0,B.useState)({phase:`idle`}),[l,u]=(0,B.useState)(``),[d,f]=(0,B.useState)(!1),p=(0,B.useRef)(!1),m=window.__TAURI__?.core.invoke,h=_b.includes(s.phase);(0,B.useEffect)(()=>{let e=i.current;if(!e)return;let t=()=>r(e.matches(`:popover-open`));return e.addEventListener(`toggle`,t),()=>e.removeEventListener(`toggle`,t)},[]),(0,B.useEffect)(()=>{if(!m)return;let e=!0;return m(`desktop_update_status`).then(t=>{if(!e)return;u(t.app_version),f(t.rollback_available===!0),t.state?.phase&&c(t.state);let n=t.state?.details?.channel??(t.app_version.includes(`-main.`)?`main`:`stable`);o(n),t.state?.phase||m(`desktop_update`,{action:`check`,channel:n}).then(t=>{e&&c(t)}).catch(t=>{e&&c(yb(t))})}).catch(()=>{e&&c(yb(null,`desktop_status_unavailable`))}),()=>{e=!1}},[m]),(0,B.useEffect)(()=>{if(!m||!h)return;let e=window.setInterval(()=>{m(`desktop_update_status`).then(e=>{e.state?.phase&&c(e.state)}).catch(()=>{})},1e3);return()=>window.clearInterval(e)},[m,h]);async function g(e){if(!(!m||p.current)){p.current=!0,c({phase:e===`check`?`checking`:e===`repair`?`installing_runtime`:`downloading`});try{if(!l){let e=await m(`desktop_update_status`);u(e.app_version),f(e.rollback_available===!0)}c(await m(`desktop_update`,{action:e,channel:a}))}catch(e){c(yb(e,l?`update_failed`:`desktop_status_unavailable`))}finally{p.current=!1}}}let _={service_error:t?`运行时已安装,但服务尚未连接。可重试更新、修复或恢复上版。`:`Runtime installed, but services are unavailable. Retry updates, repair, or restore the previous version.`,runtime_pairing_required:t?`本机 CLI 运行时与 App 自带运行时不一致。回到 App 启动界面可「更新 App 与运行时」或「回退 CLI」。`:`This host's CLI runtime and the App's bundled runtime differ. On the App boot screen, update both or use the App's runtime.`,idle:t?`App 会检查可用更新,不会自动安装。`:`Updates are checked automatically, never installed without confirmation.`,runtime_required:t?`请完成匹配组件安装,或检查 App 更新。`:`Install matching components or check for an App update.`,connecting:t?`正在连接更新后的服务…`:`Connecting to updated services…`,checking:t?`正在检查更新…`:`Checking for updates…`,available:t?`新版本已就绪,一次更新 App 与匹配的运行时。`:`Update the App and its matching runtime together.`,up_to_date:t?`当前通道暂无更新。`:`No newer update on this channel.`,downloading:t?`正在下载并校验签名…`:`Downloading and verifying signature…`,installing_app:t?`正在安装 App,请保持窗口打开。`:`Installing the App. Keep this window open.`,installing_runtime:t?`正在安装匹配的运行时,请稍候…`:`Installing the matching runtime…`,restart_required:t?`重启后将自动完成运行时安装与服务连接。`:`Restart to finish runtime installation and reconnect services.`,ready:t?`更新完成,服务已就绪。`:`Update completed; services are ready.`,error:vb[s.details?.code??``]?.[+!t]??(t?`更新未完成。请重试;启动失败可尝试修复当前版本。`:`Update incomplete. Retry; repair this version if startup fails.`)},v=h?t?`正在更新…`:`Updating…`:s.phase===`available`?t?`有可用更新`:`Update available`:s.phase===`restart_required`?t?`重启完成更新`:`Restart to finish`:s.phase===`error`?t?`更新需重试`:`Retry update`:t?`更新 LoopX`:`Update LoopX`;return(0,V.jsxs)(`div`,{className:`personal-desktop-update`,children:[(0,V.jsxs)(`button`,{className:`personal-update-trigger`,type:`button`,"aria-expanded":n,"aria-controls":`desktop-update-panel`,onClick:e=>{i.current?.style.setProperty(`bottom`,`${window.innerHeight-e.currentTarget.getBoundingClientRect().top+8}px`),i.current?.togglePopover()},children:[(0,V.jsx)(fm,{size:16,"aria-hidden":`true`}),(0,V.jsx)(`span`,{children:v}),(0,V.jsx)(am,{size:14,"aria-hidden":`true`})]}),(0,V.jsxs)(`section`,{ref:i,popover:`auto`,id:`desktop-update-panel`,className:`personal-update-panel`,"aria-label":t?`LoopX 更新`:`LoopX updates`,children:[(0,V.jsxs)(`header`,{children:[(0,V.jsx)(`strong`,{children:t?`LoopX 更新`:`LoopX updates`}),(0,V.jsx)(`button`,{type:`button`,"aria-label":t?`关闭更新面板`:`Close updates`,onClick:()=>i.current?.hidePopover(),children:(0,V.jsx)(nh,{size:16,"aria-hidden":`true`})})]}),(0,V.jsxs)(`small`,{children:[l,` · `,a===`main`?t?`main 预览版`:`main preview`:t?`稳定版`:`Stable`]}),s.details?.version?(0,V.jsxs)(`p`,{children:[t?`目标版本:`:`Target: `,s.details.version]}):null,(0,V.jsxs)(`p`,{role:`status`,"aria-live":`polite`,children:[h?(0,V.jsx)(zm,{className:`is-spinning`,size:14,"aria-hidden":`true`}):null,_[s.phase]]}),s.phase===`downloading`&&s.details?.total?(0,V.jsx)(`progress`,{"aria-label":t?`下载进度`:`Download progress`,max:s.details.total,value:s.details.received??0}):null,m?(0,V.jsx)(`div`,{className:`personal-update-actions`,children:s.phase===`restart_required`?(0,V.jsx)(`button`,{type:`button`,onClick:()=>void g(`restart`),children:t?`重启完成更新`:`Restart to finish`}):(0,V.jsxs)(V.Fragment,{children:[(0,V.jsx)(`button`,{type:`button`,disabled:h,onClick:()=>void g(`check`),children:t?`检查更新`:`Check for updates`}),s.phase===`available`?(0,V.jsx)(`button`,{type:`button`,onClick:()=>void g(`apply`),children:t?`更新并准备重启`:`Install update`}):null]})}):(0,V.jsx)(`p`,{children:t?`请在 LoopX App 中更新;浏览器自身无需安装包。`:`Update from the LoopX App; the browser needs no installer.`}),(0,V.jsxs)(`details`,{children:[(0,V.jsx)(`summary`,{children:t?`高级选项`:`Advanced options`}),(0,V.jsxs)(`label`,{children:[t?`更新通道`:`Update channel`,(0,V.jsxs)(`select`,{disabled:h||s.phase===`restart_required`,value:a,onChange:e=>{o(e.target.value),c({phase:`idle`})},children:[(0,V.jsx)(`option`,{value:`stable`,children:t?`稳定版(推荐)`:`Stable (recommended)`}),(0,V.jsx)(`option`,{value:`main`,children:t?`main 预览版`:`main preview`})]})]}),(0,V.jsx)(`p`,{children:t?`App 与匹配的 CLI 一起更新,服务可能短暂断开。不删除 Goal 数据。`:`Updates the App and matching CLI. Services may briefly disconnect. Goal data is not deleted.`}),m?(0,V.jsxs)(V.Fragment,{children:[(0,V.jsx)(`p`,{children:t?`启动失败时,可重装当前 App 随附的运行时。`:`If startup fails, reinstall this App's bundled runtime.`}),(0,V.jsx)(`button`,{disabled:h||s.phase===`restart_required`,type:`button`,onClick:()=>void g(`repair`),children:t?`修复当前版本`:`Repair this version`})]}):null,m&&d?(0,V.jsxs)(`details`,{children:[(0,V.jsx)(`summary`,{children:t?`恢复上个版本`:`Restore previous version`}),(0,V.jsx)(`p`,{children:t?`将恢复已保留的 App 和它的运行时,需要重启。`:`Restore the retained App and its runtime, then restart.`}),(0,V.jsx)(`button`,{disabled:h,type:`button`,onClick:()=>void g(`rollback`),children:t?`确认恢复上版`:`Restore previous version`})]}):null]})]})]})}var xb=e=>`loopx-sidebar-goal-order-v1:${encodeURIComponent(e)}`;function Sb(e){try{let t=JSON.parse(e??`null`);return Array.isArray(t)&&t.every(e=>typeof e==`string`)?[...new Set(t)]:[]}catch{return[]}}function Cb(e,t){let n=new Map(t.map((e,t)=>[e,t]));return[...e].sort((e,t)=>(n.get(e.goalId)??1/0)-(n.get(t.goalId)??1/0))}function wb(e,t,n,r,i){if(n===r||!t.includes(n)||!t.includes(r))return e;let a=[...new Set([...e,...t])].filter(e=>e!==n);return a.splice(a.indexOf(r)+Number(i),0,n),a}function Tb(e,t){let n=xb(t),[r,i]=(0,B.useState)(()=>{try{return Sb(localStorage.getItem(n))}catch{return[]}}),[a,o]=(0,B.useState)(!1),[s,c]=(0,B.useState)(null),[l,u]=(0,B.useState)(null),d=(0,B.useRef)(null),f=(0,B.useRef)(!1),p=Cb(e,r),m=p.map(e=>e.goalId);function h(t,a,s){let l=wb(r,m,t,a,s);if(l===r)return;i(l);let u=Cb(e,l),d=u.findIndex(e=>e.goalId===t),f=u[d];f&&c({title:f.title,position:d+1});try{localStorage.setItem(n,JSON.stringify(l)),o(!1)}catch{o(!0)}}function g(){d.current=null,u(null)}return{sorted:p,target:l,saveFailed:a,lastMoved:s,move:h,moveBy(e,t){let n=p[m.indexOf(e)+t];n&&h(e,n.goalId,t===1)},pointerProps:e=>({onPointerDown(t){f.current=!1,t.pointerType===`mouse`&&t.button===0&&(d.current={id:e,x:t.clientX,y:t.clientY,dragging:!1},t.currentTarget.setPointerCapture(t.pointerId))},onPointerMove(e){let t=d.current;if(!t||!t.dragging&&Math.hypot(e.clientX-t.x,e.clientY-t.y)<6)return;t.dragging=!0,f.current=!0;let n=document.elementFromPoint(e.clientX,e.clientY)?.closest(`[data-reorder-goal]`),r=e.currentTarget.closest(`.personal-goal-list`),i=n?.dataset.reorderGoal;if(!n||!i||!r?.contains(n)||i===t.id){u(null);return}let a=n.getBoundingClientRect();u({id:i,after:e.clientY>a.top+a.height/2})},onPointerUp(){d.current?.dragging&&l&&h(d.current.id,l.id,l.after),g()},onPointerCancel:g,onLostPointerCapture:g,onKeyDown(e){e.key===`Escape`&&g()},onClickCapture(e){f.current&&=(e.preventDefault(),e.stopPropagation(),!1)}})}}var Eb=`/ssh-hosts`,Db=/^[A-Za-z0-9][A-Za-z0-9._-]{0,254}$/;function Ob(e){return typeof e==`string`&&Db.test(e.trim())}function kb(e){if(!e||typeof e!=`object`||Array.isArray(e))throw Error(`SSH Host 列表响应无效。`);let t=e;if(t.ok!==!0||t.schema_version!==`ssh_host_catalog_v0`||!Array.isArray(t.hosts))throw Error(`SSH Host 列表协议不兼容,请更新本机 LoopX 服务。`);let n=new Set;return{hosts:t.hosts.flatMap(e=>{if(!e||typeof e!=`object`||Array.isArray(e))return[];let t=String(e.alias??``).trim();return!Ob(t)||n.has(t)?[]:(n.add(t),[{alias:t}])}),schemaVersion:`ssh_host_catalog_v0`}}async function Ab(e=fetch,t=Eb){let n=await e(t,{cache:`no-store`});if(!n.ok)throw Error(`无法读取本机 SSH Host(HTTP ${n.status})。`);return kb(await n.json())}function jb(e,t){let n=e.trim();if(!Ob(n))return{error:`请选择有效的 SSH Host。`};let r=Number(t);return!Number.isInteger(r)||r<1024||r>65535?{error:`本地端口必须是 1024–65535 之间的整数。`}:{command:`ssh -N -L ${r}:127.0.0.1:8766 ${n}`,hostAlias:n,label:n,statusUrl:`http://127.0.0.1:${r}/status.json`}}var Mb=`/api/ssh-source/ensure`,Nb=`/api/ssh-source/goal-lifecycle`;async function Pb(e,t){let n=await fetch(Mb,{method:`POST`,headers:{"content-type":`application/json`},body:JSON.stringify({host_alias:e,local_port:Number(t)})}),r=await n.json().catch(()=>null);if(!n.ok)throw Error(r?.error??`无法建立 SSH 隧道来源。`);if(!r?.ok)throw Error(`无法建立 SSH 隧道来源。`);return r}async function Fb(e,t,n,r,i=fetch){let a=await i(Nb,{method:`POST`,headers:{"content-type":`application/json`},body:JSON.stringify({goal_id:t,host_alias:e,operation:n,reason:r})}),o=await a.json().catch(()=>null);if(!a.ok)throw Error(o?.error??`无法更新远端 Goal 生命周期。`);if(!o?.ok||o.schema_version!==`loopx_remote_goal_lifecycle_v1`||o.goal_id!==t||o.host_alias!==e||o.operation!==n||o.activation_state!==(n===`stop`?`stopped`:`active`)||o.projection_verified!==!0)throw Error(`远端 Goal 生命周期回读未验证。`);return o}function Ib({activeSource:e,connectionState:t,errorMessage:n,onAdd:r,onConfiguredHostsLoaded:i,onRemove:a,onSelect:o,sources:s}){let{t:c}=Ji(),[l,u]=(0,B.useState)(!1),[d,f]=(0,B.useState)(null),[p,m]=(0,B.useState)(`configured`),[h,g]=(0,B.useState)([]),[_,v]=(0,B.useState)(null),[y,b]=(0,B.useState)(!1),[x,S]=(0,B.useState)(!1),[C,w]=(0,B.useState)(``),[T,E]=(0,B.useState)(``),[D,O]=(0,B.useState)(`8876`),[k,ee]=(0,B.useState)(``),te=`configured:`,A=[...s.map(e=>({label:e.label,value:e.id})),...h.filter(e=>!s.some(t=>t.label===e.alias)).map(e=>({group:c(`source.configuredGroup`,{count:h.length}),label:e.alias,value:`${te}${e.alias}`}))],j=(0,B.useMemo)(()=>h.some(e=>e.alias===C)?jb(C,D):{error:c(`source.selectHost`)},[h,C,D,c]);(0,B.useEffect)(()=>{M()},[]);async function M(){b(!0),v(null);try{let e=await Ab();g(e.hosts),i?.(e.hosts.map(e=>e.alias)),w(t=>t||e.hosts[0]?.alias||``),e.hosts.length||v(c(`source.hostEmpty`))}catch(e){v(e instanceof Error?e.message:c(`source.hostLoadError`))}finally{b(!1)}}function ne(){u(!0),m(`configured`),f(null),M()}function N(){u(!1),m(`configured`),v(null),S(!1),w(``),f(null),E(``),O(`8876`),ee(``)}function P(){let e=r({label:T,statusUrl:k});if(e.error){f(e.error);return}N()}function re(){if(`error`in j){f(j.error??c(`source.invalid`));return}let e=r({ensureTunnel:!0,hostAlias:j.hostAlias,label:j.label,statusUrl:j.statusUrl});if(e.error){f(e.error);return}N()}function ie(e){let t=new Set;for(let e of s)try{t.add(new URL(e.statusUrl).port)}catch{}let n=`8877`;for(let e=8877;e<9077;e+=1)if(!t.has(String(e))){n=String(e);break}let i=jb(e,n);if(`error`in i){f(i.error??c(`source.invalid`));return}let a=r({ensureTunnel:!0,hostAlias:i.hostAlias,label:i.label,statusUrl:i.statusUrl});a.error?f(a.error):f(null),O(n)}async function ae(){if(`error`in j){f(j.error??c(`source.invalid`));return}try{await navigator.clipboard.writeText(j.command),S(!0),f(null)}catch{f(c(`source.copyError`))}}return(0,V.jsxs)(`section`,{"aria-label":c(`source.controlPlane`),className:`personal-status-source`,children:[(0,V.jsxs)(`header`,{children:[(0,V.jsx)(`span`,{children:`Control plane`}),(0,V.jsx)(`button`,{"aria-label":c(`source.addSsh`),onClick:ne,title:c(`source.add`),type:`button`,children:(0,V.jsx)(Lm,{size:14})})]}),(0,V.jsx)(zy,{ariaLabel:c(`source.select`),className:`personal-status-source-select`,icon:(0,V.jsx)(Gm,{size:15}),onChange:e=>{if(e.startsWith(te)){ie(e.slice(11));return}o(e)},options:A,value:e.id}),(0,V.jsxs)(`div`,{className:`personal-status-source-meta`,children:[(0,V.jsxs)(`span`,{className:`is-${t}`,children:[(0,V.jsx)(`i`,{}),c(t===`loading`?`source.connecting`:t===`error`?`source.notAvailable`:`source.connected`)]}),(0,V.jsx)(`small`,{children:e.readOnly?c(`source.readOnly`):c(`source.localInteractive`)}),e.kind===`ssh_tunnel`?(0,V.jsx)(`button`,{"aria-label":c(`source.remove`,{source:e.label}),onClick:()=>a(e.id),title:c(`source.removeCurrent`),type:`button`,children:(0,V.jsx)($m,{size:12})}):null]}),n?(0,V.jsx)(`p`,{className:`personal-status-source-error`,role:`alert`,children:n}):null,l?(0,V.jsxs)(`div`,{className:`personal-status-source-form`,children:[(0,V.jsxs)(`header`,{children:[(0,V.jsx)(`strong`,{children:c(`source.addSsh`)}),(0,V.jsx)(`button`,{"aria-label":c(`source.closeForm`),onClick:N,type:`button`,children:(0,V.jsx)(nh,{size:13})})]}),(0,V.jsxs)(`div`,{"aria-label":c(`source.addMethod`),className:`personal-status-source-modes`,role:`tablist`,children:[(0,V.jsx)(`button`,{"aria-selected":p===`configured`,onClick:()=>{m(`configured`),f(null)},role:`tab`,type:`button`,children:c(`source.configured`)}),(0,V.jsx)(`button`,{"aria-selected":p===`manual`,onClick:()=>{m(`manual`),f(null)},role:`tab`,type:`button`,children:c(`source.manual`)})]}),p===`configured`?(0,V.jsxs)(V.Fragment,{children:[(0,V.jsxs)(`label`,{children:[(0,V.jsx)(`span`,{children:c(`source.configuredCount`,{count:h.length})}),(0,V.jsxs)(`span`,{className:`personal-status-source-field-row`,children:[(0,V.jsx)(`input`,{"aria-label":c(`source.host`),disabled:y||!h.length,list:`loopx-configured-ssh-hosts`,onChange:e=>{w(e.target.value),S(!1)},placeholder:c(y?`source.loadingHosts`:`source.hostPlaceholder`),value:C}),(0,V.jsx)(`datalist`,{id:`loopx-configured-ssh-hosts`,children:h.map(e=>(0,V.jsx)(`option`,{value:e.alias},e.alias))}),(0,V.jsx)(`button`,{"aria-label":c(`source.refreshHosts`),disabled:y,onClick:()=>void M(),title:c(`source.refreshHosts`),type:`button`,children:(0,V.jsx)(Vm,{size:13})})]})]}),(0,V.jsxs)(`label`,{children:[(0,V.jsx)(`span`,{children:c(`source.localPort`)}),(0,V.jsx)(`input`,{"aria-label":c(`source.localPort`),inputMode:`numeric`,onChange:e=>{O(e.target.value),S(!1)},value:D})]}),(0,V.jsxs)(`div`,{className:`personal-status-source-command`,children:[(0,V.jsx)(`code`,{children:`error`in j?c(`source.tunnelCommandPending`):j.command}),(0,V.jsxs)(`button`,{"aria-label":c(`source.copyCommand`),disabled:`error`in j,onClick:()=>void ae(),type:`button`,children:[(0,V.jsx)(um,{size:12}),c(x?`source.copied`:`source.copy`)]})]}),_?(0,V.jsx)(`p`,{className:`is-error`,children:_}):null,(0,V.jsx)(`p`,{children:c(`source.description`)}),(0,V.jsx)(`button`,{className:`personal-status-source-add`,disabled:`error`in j,onClick:re,type:`button`,children:c(`source.addConfigured`)})]}):(0,V.jsxs)(V.Fragment,{children:[(0,V.jsxs)(`label`,{children:[(0,V.jsx)(`span`,{children:c(`source.name`)}),(0,V.jsx)(`input`,{autoFocus:!0,maxLength:48,onChange:e=>E(e.target.value),placeholder:c(`source.namePlaceholder`),value:T})]}),(0,V.jsxs)(`label`,{children:[(0,V.jsx)(`span`,{children:c(`source.statusUrl`)}),(0,V.jsx)(`input`,{onChange:e=>ee(e.target.value),placeholder:`http://127.0.0.1:8876/status.json`,value:k})]}),(0,V.jsx)(`p`,{children:(0,V.jsx)(`code`,{children:`ssh -N -L 8876:127.0.0.1:8766 `})}),(0,V.jsx)(`p`,{children:c(`source.manualDescription`)}),(0,V.jsx)(`button`,{className:`personal-status-source-add`,onClick:P,type:`button`,children:c(`source.addConfigured`)})]}),d?(0,V.jsx)(`p`,{className:`is-error`,role:`alert`,children:d}):null]}):null]})}var Lb={需修复:`is-danger`,等你:`is-warning`,等待条件:`is-info`,推进中:`is-success`,安静运行:`is-quiet`,已完成:`is-quiet`,已停止:`is-stopped`};function Rb({attentionCount:e,goals:t,goalArchiveLoadState:n={error:null,phase:`ready`},lifecycleBusyGoalIds:r,goalLifecycleOperations:i,onRequestGoalCreate:a,onOpenSettings:o,onRetryGoalArchive:s,onRequestGoalLifecycle:c,onSelectGoal:l,selectedGoalId:u,statusSourceControl:d}){let{locale:f,t:p}=Ji(),[m,h]=(0,B.useState)(!1),g=Tb(t.filter(e=>e.activationState!==`stopped`),d?.activeSource.statusUrl??`/status.json`),_=g.sorted,v=t.filter(e=>e.activationState===`stopped`),y=e=>!!c&&(!i||i.includes(e)),b=(e,t)=>(0,V.jsxs)(`div`,{className:`personal-goal-row${g.target?.id===e.goalId?g.target.after?` is-drop-after`:` is-drop-before`:``}`,"data-reorder-goal":t?void 0:e.goalId,"data-load-error":e.loadError,children:[(0,V.jsxs)(`button`,{...t?{}:g.pointerProps(e.goalId),title:t?void 0:p(`sidebar.dragGoal`),"aria-current":u===e.goalId?`page`:void 0,className:`personal-goal-link`,onClick:()=>l(e.goalId),type:`button`,children:[(0,V.jsx)(`span`,{className:`personal-goal-state-dot ${e.loadState?``:Lb[e.state]}`}),(0,V.jsxs)(`span`,{className:`personal-goal-link-copy`,children:[(0,V.jsx)(`strong`,{children:e.title}),(0,V.jsxs)(`small`,{children:[e.loadState&&(!t||u===e.goalId)?p(e.loadState===`error`?`startup.goalError`:`startup.goalLoading`):Yi(e.state,f),e.needsYou&&!t?` · ${p(`home.lane.needsYou`)}`:``]})]}),(0,V.jsx)(im,{size:15})]}),!t&&m?(0,V.jsxs)(`div`,{className:`personal-goal-move-actions`,children:[(0,V.jsx)(`button`,{type:`button`,"aria-label":p(`sidebar.moveUp`,{goal:e.title}),disabled:_[0]?.goalId===e.goalId,onClick:()=>g.moveBy(e.goalId,-1),children:(0,V.jsx)(Xp,{"aria-hidden":`true`,size:13})}),(0,V.jsx)(`button`,{type:`button`,"aria-label":p(`sidebar.moveDown`,{goal:e.title}),disabled:_.at(-1)?.goalId===e.goalId,onClick:()=>g.moveBy(e.goalId,1),children:(0,V.jsx)(Kp,{"aria-hidden":`true`,size:13})})]}):null,c&&y(t?`resume`:`stop`)?(0,V.jsxs)(V.Fragment,{children:[(0,V.jsx)(`button`,{"aria-label":`${p(t?`sidebar.resume`:`sidebar.stop`)} ${e.title}`,"aria-busy":r?.has(e.goalId)||void 0,className:`personal-goal-lifecycle${r?.has(e.goalId)?` is-pending`:``}`,disabled:r?.has(e.goalId),onClick:()=>c(e,t?`resume`:`stop`),title:p(t?`sidebar.resumeGoal`:`sidebar.stopGoal`),type:`button`,children:r?.has(e.goalId)?(0,V.jsx)(Em,{size:13}):t?(0,V.jsx)(Bm,{size:13}):(0,V.jsx)(Fm,{size:13})}),t&&y(`delete`)?(0,V.jsx)(`button`,{"aria-label":`${p(`sidebar.delete`)} ${e.title}`,className:`personal-goal-lifecycle personal-goal-delete`,onClick:()=>c(e,`delete`),title:p(`sidebar.deleteGoal`),type:`button`,children:(0,V.jsx)($m,{size:13})}):null]}):null]},e.goalId);return(0,V.jsxs)(`div`,{className:`personal-goal-directory`,children:[(0,V.jsxs)(`div`,{className:`personal-sidebar-brand`,children:[(0,V.jsx)(`span`,{className:`personal-brand-mark`,children:(0,V.jsx)($p,{size:18})}),(0,V.jsx)(`span`,{children:(0,V.jsx)(`strong`,{children:`LoopX`})})]}),d?(0,V.jsx)(Ib,{...d}):null,(0,V.jsxs)(`nav`,{"aria-label":p(`home.workspace`),className:`personal-sidebar-nav`,children:[(0,V.jsxs)(`button`,{"aria-current":u===null?`page`:void 0,className:`personal-manager-link`,onClick:()=>l(null),type:`button`,children:[(0,V.jsx)(`span`,{className:`personal-manager-icon`,children:(0,V.jsx)($p,{size:17})}),(0,V.jsx)(`span`,{children:p(`sidebar.manager`)}),e>0?(0,V.jsx)(`span`,{className:`personal-sidebar-count`,children:e}):null,(0,V.jsx)(im,{size:15})]}),(0,V.jsxs)(`div`,{className:`personal-sidebar-section-title`,children:[(0,V.jsx)(`span`,{children:`Goals`}),(0,V.jsxs)(`span`,{className:`personal-sidebar-title-actions`,children:[(0,V.jsx)(`small`,{children:_.length}),(0,V.jsx)(`button`,{"aria-label":p(`sidebar.sortGoals`),title:p(`sidebar.sortGoals`),"aria-pressed":m,onClick:()=>h(!m),type:`button`,children:(0,V.jsx)(Yp,{"aria-hidden":`true`,size:15})}),a?(0,V.jsx)(`button`,{"aria-label":p(`sidebar.createGoal`),onClick:a,type:`button`,children:(0,V.jsx)(Lm,{size:15})}):null]})]}),g.saveFailed?(0,V.jsx)(`p`,{role:`status`,children:p(`sidebar.orderNotSaved`)}):null,(0,V.jsx)(`span`,{className:`personal-sr-only`,role:`status`,children:g.lastMoved?p(`sidebar.goalMoved`,{goal:g.lastMoved.title,position:g.lastMoved.position}):``}),(0,V.jsx)(`div`,{className:`personal-goal-list`,children:_.map(e=>b(e,!1))}),v.length||n.phase===`loading`||n.phase===`error`?(0,V.jsxs)(`details`,{className:`personal-stopped-goals`,open:n.phase===`error`||void 0,children:[(0,V.jsxs)(`summary`,{children:[(0,V.jsx)(rm,{size:13}),(0,V.jsx)(`span`,{children:p(`sidebar.stopped`)}),n.phase===`loading`?(0,V.jsx)(Em,{"aria-label":p(`sidebar.stoppedLoading`),className:`is-spinning`,size:13}):(0,V.jsx)(`small`,{children:v.length})]}),(0,V.jsxs)(`div`,{className:`personal-goal-list is-stopped`,children:[n.phase===`error`?(0,V.jsxs)(`div`,{className:`personal-stopped-goal-error`,role:`alert`,children:[(0,V.jsx)(`span`,{children:p(`sidebar.stoppedLoadFailed`)}),s?(0,V.jsx)(`button`,{onClick:s,type:`button`,children:p(`sidebar.retryStopped`)}):null]}):null,v.map(e=>b(e,!0))]})]}):null]}),(0,V.jsxs)(`div`,{className:`personal-sidebar-footer`,children:[(0,V.jsx)(bb,{}),o?(0,V.jsxs)(`button`,{"aria-label":p(`settings.open`),className:`personal-sidebar-utility`,onClick:o,type:`button`,children:[(0,V.jsx)(`span`,{className:`personal-sidebar-utility-icon`,children:(0,V.jsx)(Km,{size:17})}),(0,V.jsx)(`span`,{className:`personal-sidebar-utility-copy`,children:(0,V.jsx)(`strong`,{children:p(`settings.open`)})}),(0,V.jsx)(im,{"aria-hidden":`true`,size:15})]}):null]})]})}var zb=J({ok:X(!0),total:G().int().nonnegative(),next_cursor:W().nullable(),items:q(J({todo_id:W(),text:W(),claimed_by:W().nullable(),evidence:W().nullable(),priority:W().nullable(),task_class:W().nullable()})).max(40)});function Bb({goal:e,agentId:t,seed:n,enabled:r,listView:i=!1,onSelect:a}){let{t:o}=Ji(),s=(0,B.useId)(),[c,l]=(0,B.useState)(!1),u=!i||c,d=i?96:148,[f,p]=(0,B.useState)(n),[m,h]=(0,B.useState)(t===`all`?e.doneTodoCount??n.length:n.length),[g,_]=(0,B.useState)(void 0),[v,y]=(0,B.useState)(!1),[b,x]=(0,B.useState)(!1),[S,C]=(0,B.useState)(!1),[w,T]=(0,B.useState)({top:0,height:600}),[E,D]=(0,B.useState)(null),O=(0,B.useRef)(null),k=(0,B.useRef)(null),[ee,te]=(0,B.useState)(0);(0,B.useEffect)(()=>{let e=O.current;if(!e)return;let t=new ResizeObserver(()=>T({top:e.scrollTop,height:e.clientHeight}));return t.observe(e),()=>{t.disconnect(),k.current?.abort()}},[]);let A=g===void 0||w.top+w.height>=f.length*d-d*2;(0,B.useEffect)(()=>{if(!r||!u||!A||g===null||b||k.current)return;let n=new AbortController;k.current=n,y(!0);let i=new URLSearchParams({goal_id:e.goalId});t!==`all`&&i.set(`agent_id`,t),g&&i.set(`cursor`,g),fetch(`/api/chat/completed-todos?${i}`,{signal:n.signal}).then(async e=>{if(e.status===409&&C(!0),!e.ok)throw Error(`history unavailable`);let t=zb.parse(await e.json());if(n.signal.aborted)return;let r=t.items.map(e=>({todoId:e.todo_id,text:e.text,claimedBy:e.claimed_by,evidence:e.evidence,priority:e.priority,taskClass:e.task_class,done:!0,status:`done`}));p(e=>g===void 0?r:[...e,...r.filter(t=>!e.some(e=>e.todoId===t.todoId))]),h(t.total),_(t.next_cursor)}).catch(()=>{n.signal.aborted||x(!0)}).finally(()=>{n.signal.aborted||(k.current=null,y(!1))})},[r,u,A,g,b,ee,e.goalId,t,v]),(0,B.useEffect)(()=>{O.current&&(O.current.scrollTop=0),T({top:0,height:O.current?.clientHeight??600}),D(null)},[i]);let j=Math.max(0,Math.floor(w.top/d)-3),M=Math.min(f.length,Math.ceil((w.top+w.height)/d)+3),ne=Array.from({length:Math.max(0,M-j)},(e,t)=>j+t);return E!==null&&El(e=>!e),children:[(0,V.jsx)(`span`,{"aria-hidden":`true`,children:c?`▾`:`▸`}),` `,o(`tasks.completed`)]}):(0,V.jsxs)(`strong`,{children:[(0,V.jsx)(`i`,{"aria-hidden":`true`,className:`personal-kanban-dot tone-done`}),o(`tasks.completed`)]}),(0,V.jsx)(`span`,{children:m})]}),(0,V.jsxs)(`div`,{id:s,hidden:!u,"aria-label":o(`tasks.completed`),className:`personal-task-lane-scroll`,ref:O,role:`region`,tabIndex:0,onScroll:e=>T({top:e.currentTarget.scrollTop,height:e.currentTarget.clientHeight}),children:[(0,V.jsx)(`div`,{className:`personal-completed-window`,style:{height:f.length*d},children:ne.map(t=>{let n=f[t];return(0,V.jsx)(`div`,{className:`personal-task-card personal-completed-row`,style:{top:t*d,height:d},children:(0,V.jsxs)(`button`,{type:`button`,onFocus:()=>D(t),onBlur:()=>D(null),onClick:()=>a({kind:`todo`,item:{...n,goalId:e.goalId,goalTitle:e.title,ownerLabel:n.claimedBy??e.agentLabel??e.agentId}}),children:[(0,V.jsx)(`span`,{className:`is-done`,children:`✓`}),(0,V.jsx)(`strong`,{children:n.text}),(0,V.jsx)(`small`,{children:n.claimedBy??e.agentLabel??e.agentId})]})},n.todoId)})}),(0,V.jsx)(`div`,{className:`personal-completed-footer`,role:`status`,children:v?o(`tasks.historyLoading`):b?(0,V.jsxs)(V.Fragment,{children:[(0,V.jsx)(`span`,{children:o(S?`tasks.historyExpired`:`tasks.historyError`)}),(0,V.jsx)(`button`,{type:`button`,onClick:()=>{S&&(_(void 0),O.current&&(O.current.scrollTop=0)),C(!1),x(!1),te(e=>e+1)},children:o(`tasks.historyRetry`)})]}):r?g===null?o(`tasks.historyEnd`):(0,V.jsx)(`button`,{type:`button`,onClick:()=>{O.current&&(O.current.scrollTop=f.length*d)},children:o(`tasks.historyMore`)}):o(`tasks.historyLocalOnly`)})]})]})}function Vb({children:e,count:t,label:n,tone:r,listView:i=!1}){let a=(0,B.useId)(),o=(0,B.useRef)(null),s=(0,B.useRef)([]),c=(0,B.useRef)(null),[l,u]=(0,B.useState)({after:!1,before:!1}),d=(0,B.useCallback)(()=>{let e=o.current;if(!e)return;let t={after:Math.max(0,e.scrollHeight-e.clientHeight)-e.scrollTop>1,before:e.scrollTop>1};u(e=>e.after===t.after&&e.before===t.before?e:t)},[]);return(0,B.useEffect)(()=>{let e=o.current;if(!e)return;let t=new ResizeObserver(d);return c.current=t,t.observe(e),e.addEventListener(`scroll`,d,{passive:!0}),d(),()=>{t.disconnect(),c.current=null,s.current=[],e.removeEventListener(`scroll`,d)}},[i,d]),(0,B.useEffect)(()=>{let e=o.current,t=c.current;if(!e||!t)return;for(let e of s.current)t.unobserve(e);let n=Array.from(e.children).filter(e=>e instanceof HTMLElement);for(let e of n)t.observe(e);s.current=n,d()},[e,t,i,d]),i?!t&&r!==`done`?null:(0,V.jsxs)(`details`,{className:`personal-task-group tone-${r}`,open:!0,children:[(0,V.jsxs)(`summary`,{children:[(0,V.jsx)(rm,{size:16}),(0,V.jsx)(`strong`,{children:n}),(0,V.jsx)(`span`,{children:t})]}),(0,V.jsx)(`div`,{className:`personal-task-list-rows`,children:e})]}):(0,V.jsxs)(`section`,{className:`personal-object-list personal-task-lane`,children:[(0,V.jsxs)(`header`,{id:a,children:[(0,V.jsxs)(`strong`,{children:[(0,V.jsx)(`i`,{"aria-hidden":`true`,className:`personal-kanban-dot tone-${r}`}),n]}),(0,V.jsx)(`span`,{children:t})]}),(0,V.jsx)(`div`,{"aria-labelledby":a,className:`personal-task-lane-scroll${l.before?` has-overflow-before`:``}${l.after?` has-overflow-after`:``}`,ref:o,role:`region`,tabIndex:t>0?0:-1,children:e})]})}function Hb({historyEnabled:e=!1,goal:t,items:n,onDraftTaskFromMessage:r,onOpenChat:i,onQuickComplete:a,quickCompletingTodoIds:o,onSelect:s,selectedTodoId:c=null,userTodos:l}){let{t:u}=Ji(),[d,f]=(0,B.useState)(!1),[p,m]=(0,B.useState)({goalId:``,laneId:`all`}),h=(0,B.useRef)(null);(0,B.useEffect)(()=>{if(!c)return;let e=window.requestAnimationFrame(()=>h.current?.scrollIntoView({block:`nearest`,inline:`nearest`}));return()=>window.cancelAnimationFrame(e)},[c]);let g=l.filter(e=>e.goalId===t.goalId).map(e=>({...e,goalTitle:t.title})),_=e=>e.priority===`P0`?0:e.priority===`P1`?1:e.priority===`P2`?2:3,v=(0,B.useMemo)(()=>{let e=new Map((t.agentLanes??[]).map(e=>[e.agentId,e]));for(let n of t.agentTodos)n.claimedBy&&!e.has(n.claimedBy)&&e.set(n.claimedBy,{agentId:n.claimedBy,label:n.claimedBy});return[...e.values()]},[t.agentLanes,t.agentTodos]),y=p.goalId===t.goalId&&v.some(e=>e.agentId===p.laneId)?p.laneId:`all`,b=e=>y===`all`||e===y,x=t.agentTodos.filter(e=>e.taskClass!==`continuous_monitor`&&!e.done).filter(e=>b(e.claimedBy)).sort((e,t)=>_(e)-_(t)),S=t.agentTodos.filter(e=>e.taskClass!==`continuous_monitor`&&e.done).filter(e=>b(e.claimedBy)),C=n.filter(e=>e.kind===`schedule`&&b(e.schedule.agentId)),w=n.filter(e=>e.kind===`run`&&!!e.run.todoId&&b(e.run.agentId)),T=!g.length&&!x.length&&!S.length&&!C.length,E=n.filter(e=>e.kind===`message`&&(e.message.role===`user`||e.message.role===`assistant`)),D=E.reduce((e,t,n)=>t.message.role===`user`?n:e,-1),O=D>=0?E[D]?.message:null,k=D>=0?E.slice(D+1).reverse().find(e=>e.message.role===`assistant`)?.message:null,ee=D>=0&&E.slice(D+1).some(e=>e.message.role===`assistant`&&e.message.pending);return(0,V.jsxs)(`section`,{"aria-label":u(`header.tasks`),className:`personal-task-board${d?` is-list-view`:``}`,children:[(0,V.jsxs)(`header`,{className:`personal-task-view-toolbar`,children:[(0,V.jsx)(`div`,{children:(0,V.jsx)(`strong`,{children:u(`header.tasks`)})}),(0,V.jsxs)(`div`,{className:`personal-task-view-switch`,role:`group`,"aria-label":u(`tasks.viewLabel`),children:[(0,V.jsx)(`button`,{type:`button`,"aria-pressed":d,onClick:()=>f(!0),children:u(`tasks.listView`)}),(0,V.jsx)(`button`,{type:`button`,"aria-pressed":!d,onClick:()=>f(!1),children:u(`tasks.boardView`)})]})]}),v.length>1?(0,V.jsxs)(`section`,{"aria-label":u(`tasks.agentLaneFilter`),className:`personal-task-lane-filter`,children:[(0,V.jsxs)(`div`,{children:[(0,V.jsx)($p,{size:15}),(0,V.jsx)(`span`,{children:(0,V.jsx)(`strong`,{children:u(`tasks.agentLane`)})})]}),(0,V.jsxs)(`label`,{children:[(0,V.jsx)(`span`,{className:`sr-only`,children:u(`tasks.agentLaneFilter`)}),(0,V.jsxs)(`select`,{"aria-label":u(`tasks.agentLaneFilter`),onChange:e=>m({goalId:t.goalId,laneId:e.target.value}),value:y,children:[(0,V.jsx)(`option`,{value:`all`,children:u(`tasks.allAgentLanes`,{count:v.length})}),v.map(e=>(0,V.jsx)(`option`,{value:e.agentId,children:e.label},e.agentId))]}),(0,V.jsx)(rm,{"aria-hidden":!0,size:14})]})]}):null,O?(0,V.jsxs)(`section`,{"aria-label":u(`tasks.chatRecent`),className:`personal-task-chat-receipt`,children:[(0,V.jsx)(`span`,{className:`personal-task-chat-icon`,children:(0,V.jsx)(Am,{size:18})}),(0,V.jsxs)(`div`,{children:[(0,V.jsxs)(`header`,{children:[(0,V.jsx)(`strong`,{children:u(ee?`tasks.chatPending`:k?`tasks.chatAgentReplied`:`tasks.chatRecent`)}),(0,V.jsx)(`small`,{children:t.agentLabel??t.agentId})]}),(0,V.jsxs)(`p`,{className:`is-user`,children:[(0,V.jsx)(`b`,{children:u(`common.you`)}),O.text]}),k&&!k.pending?(0,V.jsxs)(`p`,{className:`is-assistant`,children:[(0,V.jsx)(`b`,{children:u(`common.agent`)}),k.text]}):null,(0,V.jsx)(`small`,{children:u(ee?`tasks.chatPendingDescription`:`tasks.chatUnchangedDescription`)})]}),(0,V.jsxs)(`footer`,{children:[(0,V.jsxs)(`button`,{onClick:i,type:`button`,children:[(0,V.jsx)(Am,{size:14}),u(`tasks.chatViewReply`)]}),k&&!ee&&r?(0,V.jsxs)(`button`,{onClick:()=>r(k.text),type:`button`,children:[(0,V.jsx)(Tm,{size:14}),u(`tasks.convertToTask`)]}):null]})]}):null,(0,V.jsxs)(`div`,{className:d?`personal-task-grouped-list`:`personal-task-kanban`,children:[(0,V.jsxs)(Vb,{listView:d,count:g.length,label:u(`timeline.waitingConfirmation`),tone:`attention`,children:[g.map(e=>{let t=Zi(e.updatedAt,u);return(0,V.jsxs)(`button`,{onClick:()=>s({item:e,kind:`attention`}),type:`button`,children:[(0,V.jsx)(`span`,{"aria-hidden":`true`,className:`is-attention`,children:`!`}),(0,V.jsx)(`strong`,{children:e.text}),(0,V.jsxs)(`small`,{children:[(0,V.jsx)(`span`,{className:`personal-row-status ${e.blocking?`is-blocking`:`is-pending`}`,children:e.blocking?u(`tasks.blocked`):u(`tasks.pending`)}),t?(0,V.jsx)(`span`,{className:`personal-task-age`,children:u(`tasks.waitingAge`,{age:t})}):null]})]},e.todoId)}),g.length?null:(0,V.jsx)(`p`,{className:`personal-task-empty`,children:u(`tasks.emptyConfirm`)})]}),(0,V.jsxs)(Vb,{listView:d,count:x.length,label:u(`tasks.pendingAndRunning`),tone:`progress`,children:[x.map(e=>{let n={...e,goalId:t.goalId,goalTitle:t.title,ownerLabel:e.claimedBy??t.agentLabel??t.agentId},r=w.find(t=>t.run.todoId===e.todoId)?.run;return(0,V.jsxs)(`div`,{className:`personal-task-card${r?` has-session`:``}${c===e.todoId?` is-selected`:``}`,ref:c===e.todoId?e=>{h.current=e}:void 0,children:[(0,V.jsxs)(`button`,{"aria-pressed":c===e.todoId,onClick:()=>s({item:n,kind:`todo`}),type:`button`,children:[(0,V.jsx)(`span`,{children:`○`}),(0,V.jsx)(`strong`,{children:e.text}),(0,V.jsxs)(`small`,{children:[e.priority?(0,V.jsx)(`span`,{className:`personal-priority-badge is-${e.priority.toLowerCase()}`,children:e.priority}):null,e.status===`blocked`?(0,V.jsx)(`span`,{className:`personal-priority-badge is-blocked`,children:u(`tasks.blocked`)}):null,r?(0,V.jsx)(`span`,{className:`personal-task-session-status`,children:r.status===`running`||r.status===`queued`?u(`runs.running`):r.status===`failed`?u(`tasks.sessionError`):u(`common.waiting`)}):null,e.status===`deferred`?(0,V.jsx)(`span`,{className:`personal-task-session-status`,children:u(`drawer.taskStatusDeferred`)}):r?null:(0,V.jsx)(`span`,{className:`personal-task-session-status`,children:u(`tasks.waiting`)}),e.claimedBy??t.agentLabel??t.agentId]})]}),(0,V.jsxs)(`div`,{className:`personal-task-card-actions`,children:[r?(0,V.jsxs)(`button`,{className:`personal-task-session-link`,"aria-label":u(`tasks.openExecution`,{name:e.text}),onClick:()=>s({item:r,kind:`run`}),title:r.status===`completed`?u(`tasks.viewResult`):u(`tasks.viewExecution`),type:`button`,children:[(0,V.jsx)(mm,{size:14}),(0,V.jsx)(`span`,{children:r.status===`completed`?u(`tasks.viewResult`):u(`tasks.viewExecution`)})]}):null,a?(0,V.jsx)(`button`,{"aria-busy":o?.has(e.todoId)||void 0,"aria-label":u(`tasks.markComplete`,{name:e.text}),disabled:o?.has(e.todoId),onClick:()=>void a(n),title:u(`tasks.completed`),type:`button`,children:o?.has(e.todoId)?(0,V.jsx)(Em,{className:`personal-spin`,size:14}):(0,V.jsx)(nm,{size:14})}):null,(0,V.jsx)(`button`,{"aria-label":u(`tasks.moreActions`,{name:e.text}),onClick:()=>s({item:n,kind:`todo`}),title:u(`common.actions`),type:`button`,children:(0,V.jsx)(pm,{size:14})})]})]},e.todoId)}),x.length?null:(0,V.jsx)(`p`,{className:`personal-task-empty`,children:u(`tasks.emptyRunning`)})]}),(0,V.jsxs)(Vb,{listView:d,count:C.length,label:u(`tasks.scheduled`),tone:`schedule`,children:[C.map(e=>(0,V.jsxs)(`button`,{onClick:()=>s({item:e.schedule,kind:`schedule`}),type:`button`,children:[(0,V.jsx)(`span`,{children:`◷`}),(0,V.jsx)(`strong`,{children:e.schedule.label}),(0,V.jsx)(`small`,{children:e.schedule.status===`paused`?u(`schedule.paused`):u(`schedule.active`)})]},e.id)),C.length?null:(0,V.jsx)(`p`,{className:`personal-task-empty`,children:u(`tasks.emptySchedules`)})]}),(0,V.jsx)(Bb,{goal:t,agentId:y,seed:S,enabled:e,listView:d,onSelect:s},`${t.goalId}:${y}:${e}`)]}),T?(0,V.jsx)(`p`,{className:`personal-task-empty`,children:u(`tasks.emptyGoal`)}):null]})}function Ub(e,t){return{live_steering:{label:t(`lark.ingressSteering`),detail:t(`lark.ingressSteeringDescription`)},session_queue:{label:t(`lark.ingressQueue`),detail:t(`lark.ingressQueueDescription`)},async_inbox:{label:t(`lark.ingressAsync`),detail:t(`lark.ingressAsyncDescription`)},direct_session:{label:t(`lark.ingressLegacy`),detail:t(`lark.ingressLegacyDescription`)}}[e]}function Wb(e,t){return e.listener_status===`starting`?{label:t(`lark.health.starting`),detail:t(`lark.health.startingDetail`),state:`not_ready`}:e.listener_status===`retrying`&&e.listener_error_code===`lark_event_source_disconnected`?{label:t(`lark.health.sourceDisconnected`),detail:t(`lark.health.sourceDisconnectedDetail`),state:`not_ready`}:e.listener_status===`retrying`?{label:t(`lark.health.retrying`),detail:t(`lark.health.retryingDetail`),state:`not_ready`}:e.listener_status===`stopped`||e.listener_status===null?{label:t(`lark.health.notStarted`),detail:t(`lark.health.notStartedDetail`),state:`not_ready`}:e.last_event_status===`message_context_permission_required`?{label:t(`lark.health.messageContextPermission`),detail:t(`lark.health.messageContextPermissionDetail`),state:`not_ready`}:e.last_event_status===`processing_failed`?{label:t(`lark.health.processingFailed`),detail:t(`lark.health.processingFailedDetail`),state:`not_ready`}:e.health_error_code===`invalid_routing_state`?{label:t(`lark.health.invalidRouting`),detail:t(`lark.health.invalidRoutingDetail`),state:`not_ready`}:e.last_event_status===`queued_for_agent`?{label:t(`lark.health.queued`),detail:t(`lark.health.queuedDetail`,{agent:e.agent_id??t(`lark.targetAgent`)}),state:`ready`}:e.last_event_status===`context_only_captured`||e.last_event_status===`context_only_already_captured`?{label:t(`lark.health.contextCaptured`),detail:t(`lark.health.contextCapturedDetail`),state:`ready`}:e.last_event_status===`ignored`&&e.last_event_reason===`not_addressed`?{label:t(`lark.health.notAddressed`),detail:t(`lark.health.notAddressedDetail`),state:`ready`}:e.last_event_status===`ignored`&&e.last_event_reason===`self_message`?{label:t(`lark.health.listening`),detail:t(`lark.health.ignoredSelf`),state:`ready`}:e.health_error_code===`lark_event_route_mismatch`||[`chat_mismatch`,`topic_mismatch`,`route_ambiguous`].includes(e.last_event_reason??``)?{label:e.last_event_reason===`route_ambiguous`?t(`lark.health.routeAmbiguous`):t(`lark.health.routeMismatch`),detail:e.last_event_reason===`route_ambiguous`?t(`lark.health.routeAmbiguousDetail`):t(`lark.health.routeMismatchDetail`),state:`not_ready`}:[`invalid_event`,`binding_unavailable`].includes(e.last_event_reason??``)?{label:t(`lark.health.routeUnavailable`),detail:t(`lark.health.routeUnavailableDetail`),state:`not_ready`}:e.last_event_status===`replied_and_acknowledged`?{label:t(`lark.health.listening`),detail:t(`lark.health.eventProcessed`,{events:e.event_count,replies:e.replied_count}),state:`ready`}:e.health_error_code===`lark_event_delivery_unverified`||e.event_count===0?{label:t(`lark.health.eventUnverified`),detail:t(`lark.health.eventUnverifiedDetail`),state:`unverified`}:{label:e.reply_ready?t(`lark.health.listening`):t(`lark.health.unavailable`),detail:t(`lark.health.lastStatus`,{status:e.last_event_status??t(`lark.health.waiting`)}),state:e.reply_ready?`ready`:`not_ready`}}function Gb(e){return e.history_permission_guidance?.api_document_url??null}function Kb(e,t,n){if(e instanceof kh){let t=String(e.payload.error_code??``);return{lark_cli_not_installed:n(`lark.error.cliMissing`),lark_cli_not_executable:n(`lark.error.cliExecutable`),lark_cli_start_failed:n(`lark.error.cliStart`),lark_message_permissions_required:n(`lark.error.messagePermissions`),lark_app_required:n(`lark.error.appRequired`),invalid_lark_app:n(`lark.error.invalidApp`),lark_group_lookup_failed:n(`lark.error.groupLookup`),provider_api_failed:n(`lark.error.provider`)}[t]??e.message}return e instanceof Error?e.message:t}function qb({embedded:e=!1,focusGoalConnection:t=!1,goals:n,initialGoalId:r,onChanged:i,onClose:a}){let{t:o}=Ji(),[s,c]=(0,B.useState)(`connections`),[l,u]=(0,B.useState)([]),[d,f]=(0,B.useState)([]),[p,m]=(0,B.useState)(!0),[h,g]=(0,B.useState)(null),[_,v]=(0,B.useState)(``),[y,b]=(0,B.useState)(t),[x,S]=(0,B.useState)(``),[C,w]=(0,B.useState)(r??n[0]?.goalId??``),[T,E]=(0,B.useState)(``),[D,O]=(0,B.useState)([]),[k,ee]=(0,B.useState)(``),[te,A]=(0,B.useState)(!1),[j,M]=(0,B.useState)(null),[ne,N]=(0,B.useState)(`addressed_only`),[P,re]=(0,B.useState)(t&&r?`goal`:`manager`),[ie,ae]=(0,B.useState)(`async_inbox`),[F,oe]=(0,B.useState)(`topic_reply`),[I,se]=(0,B.useState)(``),[L,ce]=(0,B.useState)(!1),[le,ue]=(0,B.useState)({}),[de,R]=(0,B.useState)(!1),[fe,pe]=(0,B.useState)(null),[me,he]=(0,B.useState)(null),[ge,_e]=(0,B.useState)(null),[ve,ye]=(0,B.useState)(null),[be,xe]=(0,B.useState)(!1),[Se,Ce]=(0,B.useState)(`loopx-workspace-bot`),[we,Te]=(0,B.useState)(`feishu`),[Ee,De]=(0,B.useState)(null),[z,Oe]=(0,B.useState)(!1),[ke,Ae]=(0,B.useState)(null),je=(0,B.useRef)(null),Me=(0,B.useRef)(null),Ne=(0,B.useRef)(!1);async function Pe(){m(!0),g(null);try{let[e,t]=await Promise.all([Kg(),t_()]);u(e),f(t),S(t=>t||e.find(e=>e.reply_ready)?.app_ref||e.find(e=>e.ready)?.app_ref||e[0]?.app_ref||``)}catch(e){g(Kb(e,o(`lark.error.configuration`),o))}finally{m(!1)}}(0,B.useEffect)(()=>{Pe()},[]),(0,B.useEffect)(()=>{if(!t||p||Ne.current||!r)return;Ne.current=!0;let e=d.find(e=>e.goal_id===r);e?Je(e):qe(n.find(e=>e.goalId===r))},[d,t,n,r,p]),(0,B.useEffect)(()=>{if(!y||!x||ge){O([]),ee(``),A(!1),M(null);return}let e=!1;A(!0),M(null);let t=window.setTimeout(()=>{$g(x,T).then(t=>{e||(O(t),ee(e=>t.some(t=>t.chat_id===e)?e:t[0]?.chat_id??``))}).catch(t=>{e||(O([]),ee(``),M(Kb(t,o(`lark.error.groupLoad`),o)))}).finally(()=>{e||A(!1)})},180);return()=>{e=!0,window.clearTimeout(t)}},[x,T,y,ge]),(0,B.useEffect)(()=>{if(!be||!Ee||[`ready`,`failed`,`cancelled`].includes(Ee.status))return;let e=!1,t=window.setTimeout(()=>{Yg(Ee.setup_id).then(async t=>{e||(De(t),t.verification_url&&Me.current!==t.verification_url&&(Me.current=t.verification_url,je.current&&!je.current.closed&&(je.current.location.href=t.verification_url)),t.status===`ready`&&(await Pe(),S(t.app_ref),ue({}),xe(!1)),t.status===`failed`&&Ae(t.error??o(`lark.error.appCreate`)))}).catch(t=>{e||Ae(Kb(t,o(`lark.error.setupPoll`),o))})},650);return()=>{e=!0,window.clearTimeout(t)}},[be,Ee]);let Fe=n.find(e=>e.goalId===C),Ie=Fe?.agentId?[{agentId:Fe.agentId,label:Fe.agentLabel??Fe.agentId}]:[],Le=Fe?.agentLanes?.length?Fe.agentLanes:Ie,Re=Le.some(e=>e.agentId===I),ze=[];L?ze=Le.map(e=>({agentId:e.agentId,appRef:le[e.agentId]??x})):Re&&(ze=[{agentId:I,appRef:x}]);let Be=ze.map(e=>e.agentId),Ve=!!ge||ze.length>0&&ze.every(e=>l.some(t=>t.app_ref===e.appRef&&t.reply_ready)),He=o(`lark.connect`);me?He=o(`lark.saveConnection`):L&&(He=o(`lark.connectAllAgentsAction`,{count:Be.length}));let Ue=l.find(e=>e.app_ref===x),We=D.find(e=>e.chat_id===k),Ge=(0,B.useMemo)(()=>{let e=_.trim().toLocaleLowerCase();return e?d.filter(t=>[t.app_label,t.chat_name,t.goal_title,t.topic_name].some(t=>t.toLocaleLowerCase().includes(e))):d},[d,_]),Ke=(0,B.useMemo)(()=>d.filter(e=>Wb(e,o).state===`unverified`).length,[d,o]);function qe(e){let i=e??n.find(e=>e.goalId===r)??n[0];he(null),_e(null),re(e||t?`goal`:`manager`),S(l.some(e=>e.app_ref===x)?x:l.find(e=>e.reply_ready)?.app_ref??l[0]?.app_ref??``),ee(``),w(i?.goalId??``),se(i?.agentId??``),ce(!1),ue({}),N(`addressed_only`),ae(`async_inbox`),oe(`topic_reply`),E(``),pe(null),b(!0)}function Je(e){he(e.goal_id),_e(e),re(e.conversation_kind??`goal`),S(e.app_ref),w(e.goal_id);let t=n.find(t=>t.goalId===e.goal_id),r=t?.agentLanes?.length?t.agentLanes:t?.agentId?[{agentId:t.agentId}]:[];se(e.agent_id??(r.length===1?r[0].agentId:``)),ce(!1),ue({}),N(e.capture_scope),ae(e.ingress_mode===`direct_session`?`async_inbox`:e.ingress_mode),oe(e.reply_mode),E(e.chat_name),pe(null),b(!0)}function Ye(){De(null),Ae(null),Me.current=null,xe(!0)}async function Xe(){if(!(z||!/^[A-Za-z0-9][A-Za-z0-9._-]{0,99}$/.test(Se))){Oe(!0),Ae(null),Me.current=null,je.current=window.open(window.location.href,`_blank`);try{let e=await Jg({appRef:Se,brand:we});De(e)}catch(e){je.current?.close(),Ae(Kb(e,o(`lark.error.setupStart`),o))}finally{Oe(!1)}}}async function Ze(){let e=Ee;if(xe(!1),je.current?.close(),e&&![`ready`,`failed`,`cancelled`].includes(e.status))try{await Xg(e.setup_id)}catch{}}async function Qe(){if(!(!x||!C||!ge&&!We||P===`goal`&&Be.length===0||de)){R(!0),pe(null);try{let e={...P===`manager`?{...ge?{connectionId:ge.connection_id}:{appRef:x,chatId:We.chat_id,chatName:We.chat_name}}:ge?{connectionId:ge.connection_id,agentId:I}:{agentBindings:ze,chatId:We.chat_id,chatName:We.chat_name},conversationKind:P,captureScope:P===`manager`?`addressed_only`:ne,goalId:C,incomingMode:ne===`configured_chat_all`?`all`:`mentions`,ingressMode:P===`manager`?`session_queue`:ie,replyMode:F},t=await n_({...e,execute:!1});if(!t.ok)throw new kh(t.public_summary??t.blocker??o(`lark.error.bindPreview`),{error_code:t.blocker??`provider_api_failed`});let n=await n_({...e,execute:!0});if(!n.ok)throw new kh(n.public_summary??n.blocker??o(`lark.error.bind`),{error_code:n.blocker??`provider_api_failed`});b(!1),await Pe(),i?.()}catch(e){pe(Kb(e,o(`lark.error.bind`),o))}finally{R(!1)}}}async function $e(e,t){if(ve!==t){ye(t);return}try{await r_(e,t),ye(null),await Pe(),i?.()}catch(e){g(Kb(e,o(`lark.error.disconnect`),o))}}return(0,V.jsxs)(`section`,{className:`personal-lark-settings${e?` is-embedded`:``}`,"aria-label":o(`lark.configuration`),children:[e?null:(0,V.jsxs)(`header`,{className:`personal-lark-header`,children:[(0,V.jsxs)(`div`,{children:[(0,V.jsx)(`small`,{children:o(`settings.goalConnections`)}),(0,V.jsx)(`h1`,{children:`Lark`})]}),(0,V.jsx)(`button`,{"aria-label":o(`lark.closeSettings`),className:`personal-icon-button`,onClick:a,type:`button`,children:(0,V.jsx)(nh,{size:18})})]}),(0,V.jsxs)(`nav`,{className:`personal-lark-tabs`,"aria-label":o(`lark.management`),children:[(0,V.jsxs)(`button`,{"aria-current":s===`apps`?`page`:void 0,onClick:()=>c(`apps`),type:`button`,children:[o(`lark.apps`),` `,(0,V.jsx)(`span`,{children:p?`…`:l.length})]}),(0,V.jsxs)(`button`,{"aria-current":s===`connections`?`page`:void 0,onClick:()=>c(`connections`),type:`button`,children:[o(`lark.connections`),` `,(0,V.jsx)(`span`,{children:p?`…`:d.length})]})]}),h?(0,V.jsx)(`p`,{className:`personal-notification-error`,children:h}):null,p?(0,V.jsxs)(`div`,{className:`personal-lark-loading`,children:[(0,V.jsx)(Em,{className:`is-spinning`,size:18}),o(`lark.loading`)]}):null,!p&&s===`apps`?(0,V.jsxs)(`div`,{className:`personal-lark-apps`,children:[(0,V.jsxs)(`div`,{className:`personal-lark-app-toolbar`,children:[(0,V.jsx)(`span`,{children:o(`lark.reusableApps`,{count:l.length})}),(0,V.jsxs)(`button`,{className:`personal-primary-action`,onClick:Ye,type:`button`,children:[(0,V.jsx)(Lm,{size:16}),o(`lark.newApp`)]})]}),(0,V.jsxs)(`div`,{className:`personal-lark-app-grid`,children:[l.map(e=>(0,V.jsxs)(`article`,{className:`personal-lark-app-card`,children:[(0,V.jsx)(`span`,{className:`personal-lark-app-avatar`,children:(0,V.jsx)($p,{size:19})}),(0,V.jsxs)(`div`,{children:[(0,V.jsx)(`strong`,{children:e.label}),(0,V.jsxs)(`small`,{children:[e.brand,` · lark-cli profile`]})]}),(0,V.jsx)(`em`,{className:e.reply_ready?`is-ready`:`is-off`,children:e.reply_ready?o(`lark.autoReplyReady`):e.ready?o(`lark.needsMessagePermissions`):o(`lark.needsSetup`)}),(0,V.jsxs)(`p`,{children:[o(`lark.goalConnections`,{count:d.filter(t=>t.app_ref===e.app_ref).length}),e.ready&&!e.reply_ready?` · ${o(`lark.autoReplyUnavailable`)}`:``]})]},e.app_ref)),l.length===0?(0,V.jsx)(`p`,{className:`personal-lark-empty`,children:o(`lark.noProfiles`)}):null]})]}):null,!p&&s===`connections`?(0,V.jsxs)(`div`,{className:`personal-lark-connections`,children:[Ke>0?(0,V.jsxs)(`p`,{className:`personal-lark-route-readiness`,role:`status`,children:[(0,V.jsx)(Am,{size:15}),o(`lark.routesUnverified`,{count:Ke})]}):null,(0,V.jsxs)(`div`,{className:`personal-lark-toolbar`,children:[(0,V.jsxs)(`label`,{children:[(0,V.jsx)(Hm,{size:16}),(0,V.jsx)(`input`,{"aria-label":o(`lark.searchConnections`),onChange:e=>v(e.target.value),placeholder:o(`lark.searchPlaceholder`),type:`search`,value:_})]}),(0,V.jsxs)(`button`,{className:`personal-primary-action`,disabled:l.length===0||n.length===0,onClick:()=>qe(),type:`button`,children:[(0,V.jsx)(Lm,{size:16}),o(`lark.connectApp`)]})]}),(0,V.jsxs)(`div`,{className:`personal-lark-table`,role:`table`,"aria-label":o(`lark.goalTopicConnections`),children:[(0,V.jsxs)(`div`,{className:`personal-lark-table-head`,role:`row`,children:[(0,V.jsx)(`span`,{children:o(`lark.connection`)}),(0,V.jsx)(`span`,{children:o(`common.goal`)}),(0,V.jsx)(`span`,{children:o(`lark.capture`)}),(0,V.jsx)(`span`,{children:o(`lark.processing`)}),(0,V.jsx)(`span`,{children:o(`common.actions`)})]}),Ge.map(e=>{let t=Wb(e,o);return(0,V.jsxs)(`div`,{className:`personal-lark-table-row`,role:`row`,children:[(0,V.jsxs)(`span`,{children:[(0,V.jsx)(`strong`,{children:e.chat_name}),(0,V.jsxs)(`small`,{children:[e.app_label,` · `,t.label]}),(0,V.jsx)(`small`,{children:t.detail}),t.state===`unverified`?(0,V.jsxs)(`a`,{href:`https://open.feishu.cn/document/server-docs/im-v1/message/events/receive?lang=zh-CN`,rel:`noreferrer`,target:`_blank`,children:[(0,V.jsx)(mm,{size:12}),o(`lark.openEventSettings`)]}):null,Gb(e)?(0,V.jsxs)(`a`,{href:Gb(e)??void 0,rel:`noreferrer`,target:`_blank`,children:[(0,V.jsx)(mm,{size:12}),o(`lark.historyPermission`)]}):null]}),(0,V.jsxs)(`span`,{children:[(0,V.jsx)(`strong`,{children:e.goal_title}),(0,V.jsxs)(`small`,{children:[`# `,e.topic_name]})]}),(0,V.jsx)(`span`,{children:e.capture_scope===`addressed_only`?o(`lark.mentionsOnly`):o(`lark.allTopicMessages`)}),(0,V.jsxs)(`span`,{children:[(0,V.jsx)(`strong`,{children:e.conversation_kind===`manager`?o(`lark.managerConversation`):Ub(e.ingress_mode,o).label}),(0,V.jsx)(`small`,{children:e.conversation_kind===`manager`?o(`lark.managerConversationDescription`):e.agent_id??Ub(e.ingress_mode,o).detail})]}),(0,V.jsxs)(`span`,{className:`personal-lark-row-actions`,children:[(0,V.jsx)(`button`,{"aria-label":o(`lark.settingsConfigure`,{goal:e.goal_title}),onClick:()=>Je(e),type:`button`,children:(0,V.jsx)(Km,{size:15})}),(0,V.jsxs)(`button`,{"aria-label":o(`lark.settingsDisconnect`,{goal:e.goal_title}),className:ve===e.connection_id?`is-confirm`:``,onClick:()=>void $e(e.goal_id,e.connection_id),type:`button`,children:[(0,V.jsx)(th,{size:15}),ve===e.connection_id?o(`common.confirm`):null]})]})]},e.connection_id)}),Ge.length===0?(0,V.jsx)(`p`,{className:`personal-lark-empty`,children:o(`lark.noConnections`)}):null]})]}):null,y?(0,V.jsx)(`div`,{className:`personal-lark-modal-backdrop`,role:`presentation`,children:(0,V.jsxs)(`section`,{"aria-labelledby":`connect-lark-title`,"aria-modal":`true`,className:`personal-lark-modal`,role:`dialog`,children:[(0,V.jsxs)(`header`,{children:[(0,V.jsxs)(`div`,{children:[(0,V.jsx)(`small`,{children:`Goal Topic connection`}),(0,V.jsx)(`h2`,{id:`connect-lark-title`,children:o(me?`lark.editConnection`:`lark.connectApp`)})]}),(0,V.jsx)(`button`,{"aria-label":o(`lark.closeConnection`),onClick:()=>b(!1),type:`button`,children:(0,V.jsx)(nh,{size:18})})]}),(0,V.jsxs)(`label`,{children:[(0,V.jsx)(`span`,{children:o(`lark.conversationKind`)}),(0,V.jsxs)(`select`,{"aria-label":o(`lark.conversationKind`),disabled:!!ge,value:P,onChange:e=>re(e.target.value),children:[(0,V.jsx)(`option`,{value:`manager`,children:o(`lark.managerConversation`)}),(0,V.jsx)(`option`,{value:`goal`,children:o(`lark.workerConversation`)})]})]}),P===`manager`?(0,V.jsx)(`p`,{children:o(`lark.managerConversationDescription`)}):null,ge?(0,V.jsxs)(V.Fragment,{children:[(0,V.jsxs)(`label`,{children:[(0,V.jsx)(`span`,{children:o(`lark.appProfile`)}),(0,V.jsx)(`div`,{children:ge.app_label})]}),(0,V.jsxs)(`label`,{children:[(0,V.jsx)(`span`,{children:o(`lark.groupChat`)}),(0,V.jsx)(`div`,{children:ge.chat_name})]}),(0,V.jsxs)(`label`,{children:[(0,V.jsx)(`span`,{children:o(`lark.bindGoal`)}),(0,V.jsx)(`div`,{children:ge.goal_title})]}),(0,V.jsx)(`small`,{children:o(`lark.editPreservesIdentity`)})]}):(0,V.jsxs)(V.Fragment,{children:[(0,V.jsxs)(`label`,{children:[(0,V.jsx)(`span`,{children:o(`lark.appProfile`)}),(0,V.jsx)(`select`,{"aria-label":o(`lark.appProfile`),disabled:p,onChange:e=>{e.target.value===`__register__`?Ye():(S(e.target.value),ue({}))},value:x,children:p?(0,V.jsx)(`option`,{value:``,children:o(`lark.appLoading`)}):(0,V.jsxs)(V.Fragment,{children:[l.map(e=>(0,V.jsxs)(`option`,{disabled:!e.ready,value:e.app_ref,children:[e.label,e.reply_ready?``:e.ready?` · ${o(`lark.needsMessagePermissions`)}`:` · ${o(`lark.needsSetup`)}`]},e.app_ref)),(0,V.jsx)(`option`,{value:`__register__`,children:o(`lark.registerAnother`)})]})}),(0,V.jsx)(`small`,{children:o(`lark.defaultAgentAppDescription`)})]}),Ue?.ready&&!Ue.reply_ready?(0,V.jsx)(`div`,{className:`personal-lark-group-state is-error`,role:`alert`,children:o(`lark.appPermissions`)}):null,(0,V.jsxs)(`label`,{children:[(0,V.jsx)(`span`,{children:o(`lark.groupChat`)}),(0,V.jsx)(`input`,{"aria-label":o(`lark.groupSearch`),onChange:e=>E(e.target.value),placeholder:o(`lark.groupSearch`),type:`search`,value:T}),te?(0,V.jsxs)(`div`,{className:`personal-lark-group-state`,role:`status`,children:[(0,V.jsx)(Em,{className:`is-spinning`,size:15}),o(`lark.groupLoading`)]}):null,!te&&j?(0,V.jsx)(`div`,{className:`personal-lark-group-state is-error`,role:`alert`,children:j}):null,!te&&!j&&D.length===0?(0,V.jsx)(`div`,{className:`personal-lark-group-state`,role:`status`,children:o(`lark.groupEmpty`)}):null,!te&&!j&&D.length>0?(0,V.jsx)(`select`,{"aria-label":o(`lark.groupChat`),onChange:e=>ee(e.target.value),value:k,children:D.map(e=>(0,V.jsx)(`option`,{value:e.chat_id,children:e.chat_name},e.chat_id))}):null]}),(0,V.jsxs)(`label`,{children:[(0,V.jsx)(`span`,{children:o(`lark.bindGoal`)}),(0,V.jsx)(`select`,{"aria-label":o(`lark.bindGoal`),onChange:e=>{let t=e.target.value;w(t),se(n.find(e=>e.goalId===t)?.agentId??``),ue({})},value:C,children:n.map(e=>(0,V.jsx)(`option`,{value:e.goalId,children:e.title},e.goalId))})]})]}),(0,V.jsxs)(`label`,{className:`personal-lark-check`,children:[(0,V.jsx)(`input`,{checked:!0,readOnly:!0,type:`checkbox`}),(0,V.jsxs)(`span`,{children:[(0,V.jsx)(`strong`,{children:o(`lark.createAutomatically`)}),(0,V.jsx)(`small`,{children:o(`lark.createAutomaticallyDescription`)})]})]}),(0,V.jsxs)(`label`,{children:[(0,V.jsx)(`span`,{children:o(`lark.topicPreview`)}),(0,V.jsxs)(`div`,{className:`personal-lark-topic-preview`,children:[(0,V.jsx)(Am,{size:15}),`# `,Fe?.title??Fe?.goalId??`Goal`]})]}),P===`goal`?(0,V.jsxs)(V.Fragment,{children:[(0,V.jsxs)(`label`,{children:[(0,V.jsx)(`span`,{children:o(`lark.captureScope`)}),(0,V.jsxs)(`select`,{"aria-label":o(`lark.captureScope`),disabled:ge?.ingress_mode===`direct_session`,onChange:e=>N(e.target.value),value:ne,children:[(0,V.jsx)(`option`,{value:`addressed_only`,children:o(`lark.captureAddressed`)}),(0,V.jsx)(`option`,{value:`configured_chat_all`,children:o(`lark.captureAll`)})]}),(0,V.jsx)(`small`,{children:o(`lark.captureScopeDescription`)})]}),(0,V.jsxs)(`fieldset`,{"aria-label":o(`lark.agentIngress`),className:`personal-lark-ingress`,children:[(0,V.jsx)(`legend`,{children:o(`lark.agentIngress`)}),(0,V.jsx)(`div`,{children:[`live_steering`,`session_queue`,`async_inbox`].map(e=>{let t=Ub(e,o);return(0,V.jsxs)(`label`,{className:ie===e?`is-active`:``,children:[(0,V.jsx)(`input`,{"aria-label":t.label,checked:ie===e,name:`lark-agent-ingress`,onChange:()=>ae(e),type:`radio`,value:e}),(0,V.jsxs)(`span`,{children:[(0,V.jsx)(`strong`,{children:t.label}),(0,V.jsx)(`small`,{children:t.detail})]})]},e)})})]}),(0,V.jsxs)(`label`,{children:[(0,V.jsx)(`span`,{children:o(`lark.targetAgent`)}),(0,V.jsxs)(`select`,{"aria-label":o(`lark.targetAgent`),disabled:!!ge?.agent_id,onChange:e=>se(e.target.value),value:I,children:[Re?null:(0,V.jsx)(`option`,{disabled:!0,value:I,children:I?o(`lark.agentUnavailable`,{agent:I}):o(`lark.noAgentConfigured`)}),Le.map(e=>(0,V.jsx)(`option`,{value:e.agentId,children:e.label===e.agentId?e.agentId:`${e.label} · ${e.agentId}`},e.agentId))]}),(0,V.jsx)(`small`,{children:o(`lark.targetAgentDescription`)})]}),!me&&Le.length>1?(0,V.jsxs)(`label`,{"aria-label":o(`lark.connectAllAgents`),className:`personal-lark-check`,children:[(0,V.jsx)(`input`,{checked:L,onChange:e=>ce(e.target.checked),type:`checkbox`}),(0,V.jsxs)(`span`,{children:[(0,V.jsx)(`strong`,{children:o(`lark.connectAllAgents`)}),(0,V.jsx)(`small`,{children:o(`lark.connectAllAgentsDescription`,{count:Le.length})})]})]}):null,!me&&L&&Le.length>1?(0,V.jsxs)(`fieldset`,{"aria-label":o(`lark.agentApps`),className:`personal-lark-agent-apps`,children:[(0,V.jsx)(`legend`,{children:o(`lark.agentApps`)}),(0,V.jsx)(`small`,{children:o(`lark.agentAppsDescription`)}),(0,V.jsx)(`div`,{children:Le.map(e=>(0,V.jsxs)(`label`,{children:[(0,V.jsxs)(`span`,{children:[(0,V.jsx)(`strong`,{children:e.label}),(0,V.jsx)(`small`,{children:e.agentId})]}),(0,V.jsx)(`select`,{"aria-label":o(`lark.agentAppSelection`,{agent:e.label}),onChange:t=>ue(n=>({...n,[e.agentId]:t.target.value})),value:le[e.agentId]??x,children:l.map(e=>(0,V.jsxs)(`option`,{disabled:!e.ready,value:e.app_ref,children:[e.label,e.reply_ready?``:e.ready?` · ${o(`lark.needsMessagePermissions`)}`:` · ${o(`lark.needsSetup`)}`]},e.app_ref))})]},e.agentId))})]}):null,L&&ze.length>0&&!Ve?(0,V.jsx)(`div`,{className:`personal-lark-group-state is-error`,role:`alert`,children:o(`lark.agentAppPermissions`)}):null,Be.length===0?(0,V.jsx)(`p`,{className:`personal-notification-error`,role:`alert`,children:o(`lark.selectRegisteredAgent`)}):null]}):null,(0,V.jsxs)(`label`,{children:[(0,V.jsx)(`span`,{children:o(`lark.replyMode`)}),(0,V.jsx)(`select`,{"aria-label":o(`lark.replyMode`),onChange:e=>oe(e.target.value),value:F,children:(0,V.jsx)(`option`,{value:`topic_reply`,children:o(`lark.topicReply`)})}),(0,V.jsx)(`small`,{children:o(`lark.replyModeDescription`)})]}),(0,V.jsxs)(`p`,{className:`personal-lark-cardinality`,children:[(0,V.jsx)(nm,{size:15}),o(`lark.cardinality`)]}),fe?(0,V.jsx)(`p`,{className:`personal-notification-error`,role:`alert`,children:fe}):null,(0,V.jsxs)(`footer`,{children:[(0,V.jsx)(`button`,{className:`personal-secondary-action`,onClick:()=>b(!1),type:`button`,children:o(`lark.cancel`)}),(0,V.jsxs)(`button`,{className:`personal-primary-action`,disabled:p||!x||!ge&&(!Ue?.reply_ready||!k)||P===`goal`&&(!Ve||Be.length===0)||!C||de,onClick:()=>void Qe(),type:`button`,children:[de?(0,V.jsx)(Em,{className:`is-spinning`,size:15}):null,He]})]})]})}):null,be?(0,V.jsx)(`div`,{className:`personal-lark-modal-backdrop is-setup`,role:`presentation`,children:(0,V.jsxs)(`section`,{"aria-labelledby":`new-lark-app-title`,"aria-modal":`true`,className:`personal-lark-modal personal-lark-setup-modal`,role:`dialog`,children:[(0,V.jsxs)(`header`,{children:[(0,V.jsxs)(`div`,{children:[(0,V.jsx)(`small`,{children:o(`lark.reusableWorkspaceApp`)}),(0,V.jsx)(`h2`,{id:`new-lark-app-title`,children:o(`lark.newApp`)})]}),(0,V.jsx)(`button`,{"aria-label":o(`lark.closeCreate`),onClick:()=>void Ze(),type:`button`,children:(0,V.jsx)(nh,{size:18})})]}),Ee?(0,V.jsxs)(`div`,{className:`personal-lark-setup-progress`,children:[(0,V.jsx)(`span`,{className:`personal-lark-setup-icon is-${Ee.status}`,children:Ee.status===`ready`?(0,V.jsx)(nm,{size:22}):(0,V.jsx)(Em,{className:Ee.status===`failed`?``:`is-spinning`,size:22})}),(0,V.jsxs)(`div`,{children:[(0,V.jsx)(`strong`,{children:Ee.status===`ready`?o(`lark.appCreated`):Ee.status===`failed`?o(`lark.appCreateFailed`):o(`lark.waitingFeishu`)}),(0,V.jsx)(`p`,{children:Ee.status===`waiting_for_feishu`?o(`lark.waitingFeishuDescription`):Ee.status===`starting`?o(`lark.waitingLink`):Ee.error})]}),Ee.verification_url?(0,V.jsxs)(`a`,{href:Ee.verification_url,rel:`noreferrer`,target:`_blank`,children:[(0,V.jsx)(mm,{size:15}),o(`lark.reopenFeishu`)]}):null]}):(0,V.jsxs)(V.Fragment,{children:[(0,V.jsx)(`p`,{className:`personal-lark-setup-copy`,children:o(`lark.setupCopy`)}),(0,V.jsxs)(`label`,{children:[(0,V.jsx)(`span`,{children:o(`lark.profileName`)}),(0,V.jsx)(`input`,{"aria-label":o(`lark.profileName`),autoComplete:`off`,onChange:e=>Ce(e.target.value),placeholder:`loopx-workspace-bot`,value:Se})]}),(0,V.jsxs)(`label`,{children:[(0,V.jsx)(`span`,{children:o(`lark.region`)}),(0,V.jsxs)(`select`,{"aria-label":o(`lark.region`),onChange:e=>Te(e.target.value),value:we,children:[(0,V.jsx)(`option`,{value:`feishu`,children:`Feishu`}),(0,V.jsx)(`option`,{value:`lark`,children:`Lark`})]})]}),Se&&!/^[A-Za-z0-9][A-Za-z0-9._-]{0,99}$/.test(Se)?(0,V.jsx)(`p`,{className:`personal-notification-error`,children:o(`lark.profileValidation`)}):null]}),ke?(0,V.jsx)(`p`,{className:`personal-notification-error`,children:ke}):null,(0,V.jsxs)(`footer`,{children:[(0,V.jsx)(`button`,{className:`personal-secondary-action`,onClick:()=>void Ze(),type:`button`,children:o(`lark.cancel`)}),Ee?null:(0,V.jsxs)(`button`,{className:`personal-primary-action`,disabled:z||!/^[A-Za-z0-9][A-Za-z0-9._-]{0,99}$/.test(Se),onClick:()=>void Xe(),type:`button`,children:[z?(0,V.jsx)(Em,{className:`is-spinning`,size:15}):(0,V.jsx)(mm,{size:15}),o(`lark.continueFeishu`)]})]})]})}):null]})}function Jb(e){return e&&typeof e==`object`&&!Array.isArray(e)?e:{}}function Yb(e,t,n){let r=Jb(t),i=Jb(n);return Object.fromEntries(e.fields.flatMap(({key:e,nullable:t})=>{let n=r[e],a=i[e];return Object.hasOwn(r,e)&&(n!=null||t&&n===null)?[[e,n]]:Object.hasOwn(i,e)&&a!=null?[[e,a]]:[]}))}function Xb(e,t){let n;try{n=JSON.parse(t)}catch{return null}if(!n||typeof n!=`object`||Array.isArray(n))return null;let r=new Set(e.fields.map(e=>e.key));return Object.keys(n).some(e=>!r.has(e))?null:n}function Zb(e,t,n){let r={...e,[t]:n},i=e.schedule;return t===`timezone`&&i&&typeof i==`object`&&`schema_version`in i&&i.schema_version===`periodic_report_schedule_v0`&&(r.schedule={...i,timezone:n}),r}function Qb({id:e,value:t,timezone:n,onChange:r}){let{locale:i}=Ji(),a=i===`zh-CN`,o=t&&typeof t==`object`&&!Array.isArray(t)?t:null,s=String(o?.rrule??``).split(`;`).map(e=>e.split(`=`)),c=Object.fromEntries(s.filter(e=>e.length===2)),l=[`MO`,`TU`,`WE`,`TH`,`FR`,`SA`,`SU`],u=(e,t)=>e!==void 0&&/^\d+$/.test(e)&&Number(e)<=t,d=!o||o.schema_version===`periodic_report_schedule_v0`&&[`DAILY`,`WEEKLY`].includes(c.FREQ)&&o.timezone===n&&s.every(e=>e.length===2&&[`FREQ`,`BYDAY`,`BYHOUR`,`BYMINUTE`,`INTERVAL`].includes(e[0]))&&new Set(s.map(([e])=>e)).size===s.length&&u(c.BYHOUR,23)&&u(c.BYMINUTE??`0`,59)&&(c.FREQ===`WEEKLY`?l.includes(c.BYDAY):!c.BYDAY)&&(!c.INTERVAL||c.INTERVAL===`1`),f=a?[`星期一`,`星期二`,`星期三`,`星期四`,`星期五`,`星期六`,`星期日`]:[`Monday`,`Tuesday`,`Wednesday`,`Thursday`,`Friday`,`Saturday`,`Sunday`];function p(e){let t={FREQ:`WEEKLY`,BYDAY:`MO`,BYHOUR:`9`,BYMINUTE:`0`,...c,...e};r?.({schema_version:`periodic_report_schedule_v0`,schedule_id:o?.schedule_id??`report-schedule`,timezone:n,rrule:[`FREQ=${t.FREQ}`,...t.FREQ===`WEEKLY`?[`BYDAY=${t.BYDAY}`]:[],`BYHOUR=${t.BYHOUR}`,`BYMINUTE=${t.BYMINUTE}`].join(`;`)})}return(0,V.jsxs)(`div`,{className:`personal-report-schedule`,children:[(0,V.jsxs)(`label`,{className:`is-boolean`,htmlFor:e,children:[(0,V.jsx)(`span`,{children:a?`按日历汇报`:`Calendar reports`}),(0,V.jsx)(`input`,{id:e,type:`checkbox`,role:`switch`,checked:!!o,disabled:!r,onChange:e=>e.target.checked?p({}):r?.(null)})]}),o?(0,V.jsxs)(V.Fragment,{children:[d?(0,V.jsxs)(V.Fragment,{children:[(0,V.jsxs)(`label`,{htmlFor:`${e}-frequency`,children:[(0,V.jsx)(`span`,{children:a?`频率`:`Frequency`}),(0,V.jsxs)(`select`,{id:`${e}-frequency`,value:c.FREQ,disabled:!r,onChange:e=>p({FREQ:e.target.value}),children:[(0,V.jsx)(`option`,{value:`DAILY`,children:a?`每天`:`Daily`}),(0,V.jsx)(`option`,{value:`WEEKLY`,children:a?`每周`:`Weekly`})]})]}),c.FREQ===`WEEKLY`&&(0,V.jsxs)(`label`,{htmlFor:`${e}-day`,children:[(0,V.jsx)(`span`,{children:a?`星期`:`Weekday`}),(0,V.jsx)(`select`,{id:`${e}-day`,value:c.BYDAY,disabled:!r,onChange:e=>p({BYDAY:e.target.value}),children:l.map((e,t)=>(0,V.jsx)(`option`,{value:e,children:f[t]},e))})]}),(0,V.jsxs)(`label`,{htmlFor:`${e}-time`,children:[(0,V.jsxs)(`span`,{children:[a?`当地时间`:`Local time`,` (`,n,`)`]}),(0,V.jsx)(`input`,{id:`${e}-time`,type:`time`,required:!0,disabled:!r,value:`${(c.BYHOUR??`9`).padStart(2,`0`)}:${(c.BYMINUTE??`0`).padStart(2,`0`)}`,onChange:e=>{if(!/^\d{2}:\d{2}$/.test(e.target.value))return;let[t,n]=e.target.value.split(`:`);p({BYHOUR:t,BYMINUTE:n})}})]})]}):(0,V.jsx)(`p`,{role:`alert`,children:a?`此计划需在 JSON 模式中编辑;当前内容已保留。`:`Edit this schedule in JSON mode; its current value is preserved.`}),(0,V.jsx)(`p`,{children:a?`由现有唤醒检查到期计划;实际送达以回执为准。`:`Existing wakes check the schedule; delivery is confirmed by its receipt.`})]}):(0,V.jsx)(`p`,{children:a?`未设置日历计划;保持阶段结束时汇报。`:`No calendar schedule; report at validated stage boundaries.`})]})}function $b({copy:e,field:t,id:n,onChange:r,value:i,timezone:a}){let o=e[t.key]?.label??t.label,s=!r;if(t.input_kind===`periodic_report_schedule`)return(0,V.jsx)(Qb,{id:n,value:i,timezone:a,onChange:r?e=>r(t.key,e):void 0});if(t.input_kind===`boolean`)return(0,V.jsxs)(`label`,{className:`is-boolean`,htmlFor:n,children:[(0,V.jsx)(`span`,{children:o}),(0,V.jsx)(`input`,{checked:i===!0,id:n,onChange:r?e=>r(t.key,e.target.checked):void 0,readOnly:s,role:`switch`,type:`checkbox`})]});if(t.input_kind===`select`)return(0,V.jsxs)(`label`,{htmlFor:n,children:[(0,V.jsx)(`span`,{children:o}),(0,V.jsxs)(`select`,{id:n,onChange:r?e=>r(t.key,e.target.value):void 0,value:typeof i==`string`?i:``,children:[(0,V.jsx)(`option`,{value:``}),(t.options??[]).map(e=>(0,V.jsx)(`option`,{value:e,children:e},e))]})]});if(t.input_kind===`string_list`)return(0,V.jsxs)(`label`,{htmlFor:n,children:[(0,V.jsx)(`span`,{children:o}),(0,V.jsx)(`textarea`,{id:n,onChange:r?e=>r(t.key,e.target.value.split(/\r?\n/u).filter(Boolean)):void 0,readOnly:s,rows:4,value:Array.isArray(i)?i.join(` -`):``})]});let c=t.input_kind===`number`;return(0,V.jsxs)(`label`,{htmlFor:n,children:[(0,V.jsx)(`span`,{children:o}),(0,V.jsx)(`input`,{id:n,max:t.maximum,min:t.minimum,onChange:r?e=>r(t.key,c?Number(e.target.value):e.target.value):void 0,readOnly:s,required:t.required,type:c?`number`:`text`,value:typeof i==`number`||typeof i==`string`?i:``})]})}function ex({copy:e={},disabled:t=!1,editor:n,enabledAction:r,omitKeys:i=[],onChange:a,value:o}){let s=(0,B.useId)(),c=new Set(i);return(0,V.jsx)(`fieldset`,{className:`personal-capability-fields`,disabled:t,children:n.fields.filter(e=>!c.has(e.key)).map(t=>{let n=(0,V.jsx)($b,{copy:e,field:t,id:`${s}-${t.key.replace(/[^a-z0-9_-]/gi,`-`)}`,onChange:a,value:o[t.key],timezone:String(o.timezone??`UTC`)},t.key);return t.key===`enabled`&&t.input_kind===`boolean`?(0,V.jsxs)(`div`,{className:`personal-capability-enabled-row`,children:[n,r]},t.key):n})})}var tx={en:{manager_runtime:{displayName:`Manager runtime`,description:`Selects the persistent host-tool profile used by owner manager conversations.`},steward_executor:{displayName:`Steward executor`,description:`Selects the executor, model, and reasoning effort the steward channel answers on for this machine, ahead of the Chat service environment.`},todo_replan_cadence:{displayName:`Goal review cadence`,description:`Configures the Goal review cadence.`},change_quality_qualification:{displayName:`Change quality qualification`,description:`Prepares a provider-neutral review packet, allows at most one policy-authorized safe-fix pass, and can require an exact-diff receipt.`},explore_graph:{displayName:`Explore Graph`,description:`Organizes bounded exploration as a typed evidence graph so branches, findings, and synthesis remain inspectable.`},explore_harness:{displayName:`Explore Harness`,description:`Selects a capability-owned planning and research harness profile for bounded multi-step exploration.`},lark_event_inbox:{displayName:`Lark event inbox`,description:`Receives provider events through a local-private inbox binding before LoopX projects them into governed work.`,readOnlyReason:`This capability requires a local-private inbox binding. Manage it in Lark settings or through the capability CLI.`},lark_kanban_heartbeat_sync:{displayName:`Lark Kanban heartbeat sync`,description:`Synchronizes accepted LoopX work state to the configured Lark Kanban heartbeat surface.`},local_authority_shadow:{displayName:`Local authority shadow`,description:`Observes post-commit Todo and task-lease state through the shared authority contract without taking write authority.`},multi_subagent:{displayName:`Adaptive child capacity`,description:`Sets bounded child-agent capacity and the public-safe responsibility domains in which parallel work may be delegated.`},peer_task_coordination:{displayName:`Registered-peer task coordination`,description:`Routes explicitly scoped peer-owned work to one registered coordinator without granting cross-owner mutation authority.`},periodic_report:{displayName:`Periodic reports`,description:`Turns validated Goal stage progress into a frozen report and automatically delivers it through the configured Goal Channel with exact readback.`},pull_request_review:{displayName:`Pull-request review`,description:`Ranks the public GitHub PR review queue with a machine-level default; it never grants GitHub, Todo, push, or merge authority.`},reward_memory:{displayName:`Reward Memory experiment`,description:`Configures a reviewed local-private provider binding for Goal-scoped Agent recall and evidence-backed outcome learning.`}},"zh-CN":{manager_runtime:{displayName:`管家 Runtime`,description:`选择管家会话持续生效的宿主工具模式。`},steward_executor:{displayName:`管家执行器`,description:`选择本机管家通道使用的执行器、模型与推理档位,优先级高于服务环境变量。`},todo_replan_cadence:{displayName:`Goal 复核周期`,description:`配置 Goal 的复核周期。`},change_quality_qualification:{displayName:`变更质量验证`,description:`生成与 Provider 无关的审阅包,最多允许一次策略授权的安全修复,并可要求精确 diff 回执。`},explore_graph:{displayName:`探索图谱`,description:`把有界探索组织为 typed 证据图,让探索分支、发现与综合结论都可检查、可追溯。`},explore_harness:{displayName:`探索 Harness`,description:`为有界的多步探索选择由能力负责的规划与研究 Harness profile。`},lark_event_inbox:{displayName:`飞书事件收件箱`,description:`通过本机私有收件箱接收 Provider 事件,再由 LoopX 将其投影为受治理的工作。`,readOnlyReason:`此能力依赖本机私有的收件箱绑定,请在飞书设置或 capability CLI 中管理。`},lark_kanban_heartbeat_sync:{displayName:`飞书看板心跳同步`,description:`把 LoopX 已接受的工作状态同步到配置好的飞书看板心跳界面。`},local_authority_shadow:{displayName:`本地 Authority 影子观测`,description:`通过共享 Authority contract 观测提交后的 Todo 与 task lease 状态,但不取得写入权。`},multi_subagent:{displayName:`自适应子 Agent 容量`,description:`限定子 Agent 容量与可公开的职责域,只有落在这些边界内的工作才能并行委派。`},peer_task_coordination:{displayName:`已注册 Peer 任务协调`,description:`把明确限定的 Peer 工作路由给一个已注册协调者,不授予跨 Owner 修改权限。`},periodic_report:{displayName:`周期报告`,description:`把经过验证的 Goal 阶段进展整理为冻结报告,并通过配置的 Goal Channel 自动发送和精确回读。`},pull_request_review:{displayName:`Pull-request Review`,description:`配置公开 GitHub PR 审阅队列的本机默认排序;不会授予 GitHub、Todo、push 或 merge 权限。`},reward_memory:{displayName:`Reward Memory 实验`,description:`为 Goal 内 Agent 的召回与证据化结果学习配置经过审阅的本机私有 Provider 绑定。`}}},nx={en:{runtime_profile:{label:`Runtime profile`,description:`Restricted keeps scoped LoopX reads only. Trusted owner enables normal host tools while protected operations retain separate checks.`},executor_endpoint:{label:`Steward executor`,description:`The executor this machine's steward channel answers on. The choice outranks the Chat service environment and the shipped default.`},executor_model:{label:`Model`,description:`Optional model for the selected executor. Leave blank to keep the executor's own default.`},executor_reasoning_effort:{label:`Reasoning effort`,description:`Optional reasoning effort for the selected executor. Leave blank to keep the executor's own default.`},completed_todos:{label:`Completed Todos between Goal reviews`,description:`Machine default or explicit Goal override, from 1 to 5.`},allowed_domains:{label:`Allowed responsibility domains`,description:`Enter one bounded, public-safe domain per line.`},coordinator_agent_id:{label:`Coordinator Agent`,description:`Use an already registered Agent id; leave blank to disable coordination.`},enabled:{label:`Enabled`},model:{label:`Child model`,description:`For example gpt-5.6-luna. Blank clears the child model preference.`},reasoning_effort:{label:`Child reasoning effort`,description:`For example max; the host must support this model and effort.`},max_children:{label:`Maximum children`,description:`Hard upper bound for concurrently delegated child work.`},profile:{label:`Planner profile`,description:`Select one registered Explore Harness profile.`},profile_preset:{label:`Report profile`,description:`Capability-owned report profile, such as weekly-progress.`},wait_for_ci:{label:`Wait for CI`,description:`Disable to use local validation without querying or waiting for CI. Merge authority is unchanged.`},review_priority:{label:`Review priority`,description:`Choose whether other developers' PRs or the authenticated reviewer's own PRs are ranked first.`},route_ref:{label:`Goal Channel route`,description:`Public route alias only; credentials and provider identifiers stay outside this form.`},safe_fix:{label:`Allow one bounded safe-fix pass`},strict_receipt:{label:`Require an exact-diff receipt`},timezone:{label:`Timezone`,description:`Use an IANA timezone, for example Asia/Shanghai.`},schedule:{label:`Calendar reports`,description:`Optional daily or weekly reports; no schedule preserves stage-only delivery.`},config_path:{label:`Local-private configuration path`,description:`Repo-relative ignored JSON under .loopx/config/. Leave blank to retain the current binding; the path is never returned.`},enabled_agents:{label:`Enabled Goal Agents`,description:`Enter one registered Goal-local Agent id per line. A private binding currently accepts exactly one Agent.`}},"zh-CN":{runtime_profile:{label:`运行模式`,description:`restricted 仅使用受限 LoopX 读取;trusted_owner 开放常规宿主工具,但受保护操作仍单独校验。`},executor_endpoint:{label:`管家执行器`,description:`本机管家通道使用的执行器;优先级高于 Chat 服务环境变量与出货默认值。`},executor_model:{label:`模型`,description:`所选执行器使用的模型,可留空;留空表示沿用执行器自身的默认模型。`},executor_reasoning_effort:{label:`推理档位`,description:`所选执行器使用的推理档位,可留空;留空表示沿用执行器自身的默认档位。`},completed_todos:{label:`两次 Goal 复核间的已完成 Todo 数`,description:`可设置 1–5;机器默认值可被 Goal 显式覆盖。`},allowed_domains:{label:`允许的职责域`,description:`每行填写一个有边界、可公开的职责域。`},coordinator_agent_id:{label:`协调 Agent`,description:`填写一个已经注册的 Agent ID;留空表示关闭协调。`},enabled:{label:`启用`},model:{label:`子 Agent 模型`,description:`例如 gpt-5.6-luna;留空清除模型偏好。`},reasoning_effort:{label:`子 Agent 推理档位`,description:`例如 max;宿主须支持所选模型与档位。`},max_children:{label:`最大子 Agent 数`,description:`可同时委派的子任务硬上限。`},profile:{label:`规划 Profile`,description:`选择一个已注册的 Explore Harness profile。`},profile_preset:{label:`报告 Profile`,description:`由该能力管理的报告 profile,例如 weekly-progress。`},wait_for_ci:{label:`等待 CI`,description:`关闭后使用本地验证,不查询或等待 CI;不改变合并权限。`},review_priority:{label:`审阅优先级`,description:`选择先排其他开发者的 PR,还是先排当前已认证审阅者自己的 PR。`},route_ref:{label:`Goal Channel 路由`,description:`只填写公开 route alias;凭据与 Provider 标识不会进入此表单。`},safe_fix:{label:`允许一次有界安全修复`},strict_receipt:{label:`要求精确 diff 回执`},timezone:{label:`时区`,description:`使用 IANA 时区,例如 Asia/Shanghai。`},schedule:{label:`日历汇报`,description:`可选每日或每周计划;未设置时保持阶段结束汇报。`},config_path:{label:`本机私有配置路径`,description:`填写 .loopx/config/ 下、相对仓库且被忽略的 JSON;留空保留当前绑定,路径不会被回传。`},enabled_agents:{label:`已启用的 Goal Agent`,description:`每行填写一个已注册的 Goal 内 Agent ID;私有绑定当前只接受一个 Agent。`}}};function rx(e,t){let n=tx[t][e.capability_id];return n?{...e,display_name:n.displayName,description:n.description,configuration_editor:{...e.configuration_editor,...n.readOnlyReason?{read_only_reason:n.readOnlyReason}:{}}}:e}function ix(e){return nx[e]}Object.freeze(Object.keys(tx.en).sort());function ax(e,t){return e.available_scopes.includes(t)&&(t!==`machine`||!!e.machine_namespace)&&e.configuration_editor.editable&&e.configuration_editor.writable_scopes.includes(t)}function ox({values:e,t}){return(0,V.jsxs)(`details`,{className:`personal-capability-raw-values`,children:[(0,V.jsx)(`summary`,{children:t(`capabilities.rawJson`)}),(0,V.jsx)(`div`,{className:`personal-capability-value-grid`,children:e.map(({label:e,value:t})=>(0,V.jsxs)(`section`,{children:[(0,V.jsx)(`strong`,{children:e}),(0,V.jsx)(`pre`,{children:t?JSON.stringify(t,null,2):`—`})]},e))})]})}function sx({source:e,t}){return e?(0,V.jsxs)(`p`,{className:`personal-capability-effective-source`,children:[(0,V.jsx)(qm,{"aria-hidden":!0,size:15}),(0,V.jsxs)(`span`,{children:[(0,V.jsx)(`strong`,{children:t(`capabilities.effectiveSource`)}),t(`capabilities.source.${e}`)]})]}):null}function cx({available:e,description:t,t:n}){return e?null:(0,V.jsxs)(`section`,{className:`personal-capability-editor-status is-read-only`,children:[(0,V.jsx)(eh,{"aria-hidden":!0,size:18}),(0,V.jsxs)(`div`,{children:[(0,V.jsx)(`strong`,{children:n(`capabilities.readOnly`)}),(0,V.jsx)(`p`,{children:t})]})]})}function lx(e){return e.availability?.includes(`experimental`)?4:e.capability_id===`multi_subagent`?3:e.configuration_editor.writable_scopes.length===0||e.availability===`supported_explicit_opt_in`?2:e.availability===`supported_explicit_override`?0:1}function ux(e,t){return[...e].sort((e,n)=>{let r=lx(e)-lx(n);if(r!==0)return r;let i=rx(e,t),a=rx(n,t);return i.display_name.localeCompare(a.display_name,t)||e.capability_id.localeCompare(n.capability_id)})}function dx({capabilities:e,locale:t,onSelect:n,scope:r,selectedCapabilityId:i,t:a}){return(0,V.jsx)(`nav`,{"aria-label":a(r===`goal`?`capabilities.catalog`:`machine.capabilityCatalog`),className:`personal-capability-list`,tabIndex:0,children:ux(e,t).map(e=>{let o=rx(e,t);return(0,V.jsxs)(`button`,{"aria-current":i===o.capability_id?`page`:void 0,onClick:()=>n(o.capability_id),type:`button`,children:[(0,V.jsx)(`span`,{children:(0,V.jsx)(`strong`,{children:o.display_name})}),(0,V.jsx)(`em`,{children:a(o.available_scopes.includes(r)?r===`goal`?`capabilities.goalScope`:`capabilities.machineScope`:r===`machine`?`capabilities.goalScope`:`capabilities.machineScope`)})]},o.capability_id)})})}function fx({capability:e,locale:t,source:n}){let{t:r}=Ji(),i=rx(e,t);return(0,V.jsxs)(`header`,{children:[(0,V.jsx)(`span`,{className:`personal-settings-icon`,children:(0,V.jsx)(Jm,{"aria-hidden":!0,size:18})}),(0,V.jsxs)(`div`,{children:[(0,V.jsxs)(`div`,{className:`personal-capability-heading-row`,children:[(0,V.jsx)(`h2`,{children:i.display_name}),(0,V.jsx)(sx,{source:n,t:r})]}),e.context_contribution&&(0,V.jsxs)(`details`,{className:`personal-capability-help`,"data-testid":`capability-context-phases`,children:[(0,V.jsx)(`summary`,{children:t===`zh-CN`?`主 Agent 协作指导`:`Coordinator workflow guidance`}),(0,V.jsx)(`p`,{children:t===`zh-CN`?`随能力开启。支持以下阶段;此处展示能力范围,不能证明某次运行已读取或采纳。`:`Enabled with this capability. These are supported phases, not proof that a run read or adopted the guidance.`}),(0,V.jsx)(`dl`,{children:e.context_contribution.supported_phases.map(e=>(0,V.jsxs)(`div`,{children:[(0,V.jsx)(`dt`,{children:(0,V.jsx)(`code`,{children:e})}),(0,V.jsx)(`dd`,{children:px[e][t===`zh-CN`?`zh`:`en`]})]},e))}),(0,V.jsx)(`p`,{children:t===`zh-CN`?`LoopX Turn 在请求与结果中提供上下文;原生工具入口由 LoopX skill 调用同一只读接口。执行与采纳需另看运行证据。`:`LoopX Turn includes context in requests and results. For native tools, the LoopX skill reads the same interface. Execution and adoption require run evidence.`})]}),(0,V.jsxs)(`details`,{className:`personal-capability-help`,children:[(0,V.jsx)(`summary`,{children:t===`zh-CN`?`配置说明`:`Configuration help`}),(0,V.jsx)(`p`,{children:i.description}),(0,V.jsx)(`dl`,{children:e.configuration_editor.fields.map(e=>{let n=ix(t)[e.key],r=n?.description??e.description;return r?(0,V.jsxs)(`div`,{children:[(0,V.jsx)(`dt`,{children:n?.label??e.label}),(0,V.jsx)(`dd`,{children:r})]},e.key):null})})]},e.capability_id)]})]})}var px={before_plan:{zh:`规划前:识别独立问题并保留主 Agent 的核验与整合职责。`,en:`Before planning: identify independent questions and retain coordinator validation and integration.`},before_delegate:{zh:`委派前:明确子任务边界、模型偏好及预期证据。`,en:`Before delegation: specify task boundaries, model preferences and expected evidence.`},after_delegate_result:{zh:`回收后:核验结果,说明采纳决定并关联计划与成果。`,en:`After results: validate evidence, explain acceptance and link plans and deliverables.`}};function mx({callbacks:e,goalId:t,notification:n,onChanged:r}){let{t:i}=Ji(),[a,o]=(0,B.useState)(!1),[s,c]=(0,B.useState)(null);async function l(n){if(e.onToggleGoalAutoNotify){o(!0),c(null);try{let a=await e.onToggleGoalAutoNotify({autoNotify:n,goalId:t});if(!a.ok){c(a.public_summary??a.blocker??i(`notifications.setupFailed`));return}r()}catch(e){c(e instanceof Error?e.message:i(`notifications.setupFailed`))}finally{o(!1)}}}return(0,V.jsxs)(V.Fragment,{children:[(0,V.jsxs)(`label`,{className:`personal-notification-toggle`,children:[(0,V.jsx)(`input`,{checked:n?.humanGateAutoNotifyEnabled??!1,disabled:a||n?.configured!==!0||!e.onToggleGoalAutoNotify,onChange:e=>void l(e.target.checked),type:`checkbox`}),(0,V.jsx)(`span`,{children:i(`notifications.autoNotify`)}),a?(0,V.jsx)(Em,{"aria-hidden":!0,className:`is-spinning`,size:14}):null]}),s?(0,V.jsx)(`p`,{className:`personal-notification-error`,role:`alert`,children:s}):null]})}function hx({goalId:e,onApplied:t,selected:n,t:r}){let[i,a]=(0,B.useState)({busy:null,draft:{},partialWrite:null,preview:null}),[o,s]=(0,B.useState)(null),[c,l]=(0,B.useState)(`guided`),[u,d]=(0,B.useState)(``),f=(0,B.useMemo)(()=>n?Xb(n.configuration_editor,u):null,[n,u]),p=c===`guided`||f!==null;(0,B.useEffect)(()=>{l(`guided`),d(``),a({busy:null,draft:Yb(n?.configuration_editor??{fields:[]},n?.current??n?.effective_configuration?.configuration??n?.default,n?.default),partialWrite:null,preview:null}),s(null)},[n]);async function m(t){if(!(!n||i.busy||!p)){a(e=>({...e,busy:`preview`,partialWrite:null})),s(null);try{let r=await Fg(e,n.capability_id,t);a(e=>({...e,preview:r}))}catch(e){s(e instanceof Error?e.message:r(`capabilities.previewFailed`))}finally{a(e=>({...e,busy:null}))}}}async function h(){if(!(!n||!i.preview||i.busy||!p)){a(e=>({...e,busy:`apply`})),s(null);try{let r=Yb(n.configuration_editor,i.draft,n.default),o=await Ig(e,n.capability_id,i.preview.action===`delete`?null:r,i.preview.plan_revision);a(e=>({...e,partialWrite:o.status===`partial_write`?o:null,preview:null})),o.status!==`partial_write`&&t()}catch(e){a(e=>({...e,preview:null})),s(e instanceof Error?e.message:r(`capabilities.applyFailed`))}finally{a(e=>({...e,busy:null}))}}}function g(e,t){a(r=>({...r,draft:n?.capability_id===`periodic_report`?Zb(r.draft,e,t):{...r.draft,[e]:t},preview:null})),s(null)}function _(e){if(!n||i.busy)return;d(e);let t=Xb(n.configuration_editor,e);a(e=>({...e,preview:null,draft:t?Yb(n.configuration_editor,t,n.default):e.draft})),s(null)}function v(){i.busy||!p||(c===`guided`&&d(JSON.stringify(i.draft,null,2)),l(c===`guided`?`json`:`guided`),a(e=>({...e,preview:null})))}return{apply:h,changeDraft:g,changeJson:_,changeMode:v,editorMode:c,jsonDraft:u,jsonValid:p,error:o,mutation:i,preview:m}}function gx({mutationError:e,onApplied:t,partialWrite:n,preview:r}){let{t:i}=Ji();return(0,V.jsxs)(V.Fragment,{children:[e?(0,V.jsx)(`p`,{className:`personal-machine-error`,role:`alert`,children:e}):null,n?(0,V.jsxs)(`section`,{"aria-live":`polite`,className:`personal-capability-recovery`,children:[(0,V.jsx)(eh,{"aria-hidden":!0,size:18}),(0,V.jsxs)(`div`,{children:[(0,V.jsx)(`strong`,{children:i(`capabilities.partialWrite`)}),(0,V.jsx)(`p`,{children:i(`capabilities.partialWriteDescription`)}),(0,V.jsx)(`small`,{children:n.recommended_action})]}),(0,V.jsxs)(`button`,{onClick:t,type:`button`,children:[(0,V.jsx)(zm,{"aria-hidden":!0,size:15}),i(`capabilities.refreshSource`)]})]}):null,r?(0,V.jsxs)(`section`,{className:`personal-capability-preview`,"aria-label":i(`capabilities.preview`),children:[(0,V.jsx)(`strong`,{children:i(`capabilities.preview`)}),(0,V.jsx)(`span`,{children:i(`machine.action.${r.action}`)}),(0,V.jsx)(`small`,{children:i(`capabilities.previewLocked`)})]}):null]})}function _x({callbacks:e,catalog:t,goalId:n,notification:r,onApplied:i,onNotificationChanged:a}){let{locale:o,t:s}=Ji(),c=(0,B.useMemo)(()=>ux(t.capabilities,o),[t.capabilities,o]),[l,u]=(0,B.useState)(()=>c[0]?.capability_id??``),d=(0,B.useMemo)(()=>c.find(e=>e.capability_id===l)??c[0],[c,l]),f=(0,B.useMemo)(()=>d?rx(d,o):void 0,[o,d]),{apply:p,changeDraft:m,changeJson:h,changeMode:g,editorMode:_,jsonDraft:v,jsonValid:y,error:b,mutation:x,preview:S}=hx({goalId:n,onApplied:i,selected:f,t:s}),{busy:C,draft:w,partialWrite:T,preview:E}=x;if(!d||!f)return(0,V.jsx)(`p`,{className:`personal-capability-empty`,children:s(`capabilities.empty`)});let D=f.available_scopes.includes(`goal`),O=ax(f,`goal`),k=f.configuration_editor.read_only_reason??s(D?`capabilities.previewOnly`:`capabilities.machineOnly`);async function ee(){if(!f||!O||C||!y)return;let e=Yb(f.configuration_editor,w,f.default);await S(e)}async function te(){!O||C||await S(null)}return(0,V.jsxs)(`div`,{className:`personal-capability-layout`,children:[(0,V.jsx)(dx,{capabilities:t.capabilities,locale:o,onSelect:u,scope:`goal`,selectedCapabilityId:f.capability_id,t:s}),(0,V.jsxs)(`article`,{"aria-label":f.display_name,className:`personal-capability-detail`,tabIndex:0,children:[(0,V.jsx)(fx,{capability:d,locale:o,source:f.effective_configuration?.source}),(0,V.jsx)(cx,{available:O,t:s,description:k}),f.capability_id===`lark_event_inbox`?(0,V.jsxs)(`section`,{className:`personal-capability-linked-setting`,children:[(0,V.jsxs)(`div`,{children:[(0,V.jsx)(`strong`,{children:s(`capabilities.larkInboxNotificationSetting`)}),(0,V.jsx)(`p`,{children:s(`capabilities.larkInboxNotificationDescription`)})]}),(0,V.jsx)(mx,{callbacks:e,goalId:n,notification:r,onChanged:a})]}):null,O?(0,V.jsxs)(V.Fragment,{children:[_===`json`||!f.configuration_editor.fields.some(e=>e.key===`enabled`&&e.input_kind===`boolean`)?(0,V.jsx)(`div`,{className:`personal-capability-editor-mode`,children:(0,V.jsxs)(`button`,{disabled:!!C||!y,onClick:g,type:`button`,children:[(0,V.jsx)(lm,{"aria-hidden":!0,size:14}),s(_===`guided`?`machine.editJson`:`machine.backToForm`)]})}):null,_===`guided`?(0,V.jsx)(`section`,{className:`personal-capability-field-summary`,children:(0,V.jsx)(ex,{disabled:!!C,copy:ix(o),editor:f.configuration_editor,onChange:m,value:w,enabledAction:(0,V.jsxs)(`button`,{className:`personal-capability-edit-json`,onClick:g,type:`button`,children:[(0,V.jsx)(lm,{"aria-hidden":!0,size:14}),s(`machine.editJson`)]})})}):(0,V.jsxs)(`label`,{className:`personal-capability-json-editor`,htmlFor:`goal-configuration-json`,children:[(0,V.jsx)(`span`,{children:s(`capabilities.jsonConfiguration`)}),(0,V.jsx)(`textarea`,{id:`goal-configuration-json`,"aria-describedby":`goal-configuration-json-help`,disabled:!!C,onChange:e=>h(e.target.value),rows:12,spellCheck:!1,value:v}),(0,V.jsx)(`small`,{id:`goal-configuration-json-help`,children:s(`capabilities.jsonHelp`)}),y?null:(0,V.jsx)(`span`,{className:`personal-machine-validation`,role:`alert`,children:s(`capabilities.jsonInvalid`)})]})]}):null,(0,V.jsx)(gx,{mutationError:b,onApplied:i,partialWrite:T,preview:E}),O?(0,V.jsxs)(`footer`,{className:`personal-capability-actions`,children:[f.current&&f.available_scopes.includes(`machine`)?(0,V.jsx)(`button`,{disabled:!!C||!y,onClick:()=>void te(),type:`button`,children:s(`capabilities.restoreInheritance`)}):null,(0,V.jsx)(`button`,{disabled:!!C||!y,onClick:()=>void ee(),type:`button`,children:s(C===`preview`?`common.loading`:`capabilities.previewChanges`)}),(0,V.jsx)(`button`,{className:`is-primary`,disabled:!!C||!E||!y,onClick:()=>void p(),type:`button`,children:s(C===`apply`?`common.loading`:`capabilities.applyPreview`)})]}):null,(0,V.jsx)(ox,{values:[{label:s(`capabilities.goalValue`),value:f.current},{label:s(f.machine_current?`capabilities.machineValue`:`capabilities.defaultValue`),value:f.machine_current??f.default}],t:s},d.capability_id)]})]})}function vx({callbacks:e,goalId:t,notification:n,onChanged:r}){let{t:i}=Ji(),[a,o]=(0,B.useState)(null),[s,c]=(0,B.useState)(null),[l,u]=(0,B.useState)(!1);function d(){t&&(u(!0),c(null),Pg(t).then(o).catch(e=>c(e instanceof Error?e.message:i(`capabilities.loadFailed`))).finally(()=>u(!1)))}return(0,B.useEffect)(d,[t]),t?l&&!a?(0,V.jsxs)(`p`,{"aria-live":`polite`,className:`personal-capability-empty`,children:[(0,V.jsx)(Em,{className:`personal-spin`,size:18}),i(`capabilities.loading`)]}):s?(0,V.jsxs)(`section`,{className:`personal-capability-error`,role:`alert`,children:[(0,V.jsx)(eh,{"aria-hidden":!0,size:18}),(0,V.jsxs)(`span`,{children:[(0,V.jsx)(`strong`,{children:i(`capabilities.loadFailed`)}),(0,V.jsx)(`small`,{children:s})]}),(0,V.jsxs)(`button`,{onClick:d,type:`button`,children:[(0,V.jsx)(zm,{"aria-hidden":!0,size:15}),i(`capabilities.retry`)]})]}):a?(0,V.jsxs)(`section`,{className:`personal-capability-settings`,"data-revision":a.revision,children:[(0,V.jsxs)(`details`,{className:`personal-capability-scope-note`,children:[(0,V.jsxs)(`summary`,{children:[(0,V.jsx)(qm,{"aria-hidden":!0,size:17}),i(`capabilities.atomicOverride`)]}),(0,V.jsx)(`p`,{children:i(`capabilities.atomicOverrideDescription`)})]}),(0,V.jsx)(_x,{callbacks:e,catalog:a.capability_catalog,goalId:t,notification:n,onApplied:d,onNotificationChanged:r})]}):null:(0,V.jsx)(`p`,{className:`personal-capability-empty`,children:i(`capabilities.chooseGoal`)})}function yx(e){return e&&typeof e==`object`&&!Array.isArray(e)?e:{}}function bx(e,t){let n=t?.machine_namespace;return n?e?.machine_configuration?.namespaces[n]:void 0}function xx(e,t,n){return{...yx(e.default),...yx(t),...n}}function Sx(e,t){for(let n of e.configuration_editor.fields){let e=t[n.key];if(n.required&&(e==null||e===``))return!1}return e.capability_id===`periodic_report`&&t.enabled===!0?!!(String(t.profile_preset??``).trim()&&String(t.route_ref??``).trim()&&String(t.timezone??``).trim()):!0}function Cx(e){try{let t=JSON.parse(e);return t&&typeof t==`object`&&!Array.isArray(t)?t:null}catch{return null}}function wx(e){return e?e===`absent`?e:e.replace(/^sha256:/,``).slice(0,12):`—`}function Tx(){let{locale:e,t}=Ji(),[n,r]=(0,B.useState)(null),[i,a]=(0,B.useState)(``),[o,s]=(0,B.useState)({}),[c,l]=(0,B.useState)(`{}`),[u,d]=(0,B.useState)(`guided`),[f,p]=(0,B.useState)(null),[m,h]=(0,B.useState)(`upsert`),[g,_]=(0,B.useState)(null),[v,y]=(0,B.useState)(null),[b,x]=(0,B.useState)(`load`),[S,C]=(0,B.useState)(null),[w,T]=(0,B.useState)(null),E=(0,B.useMemo)(()=>ux(n?.capability_catalog.capabilities??[],e),[n,e]),D=n?.invalid_namespaces[0],O=E.find(e=>e.capability_id===i)??(D?E.find(e=>e.machine_namespace===D):void 0)??E.find(e=>ax(e,`machine`))??E[0],k=O?rx(O,e):void 0,ee=bx(n,k),te=!!(k?.machine_namespace&&ee),A=!!(k&&ax(k,`machine`)),j=(0,B.useMemo)(()=>Cx(c),[c]),M=k?u===`json`?j:xx(k,ee,o):null,ne=!!(k&&(u===`json`?j:Sx(k,M??{})));async function N(){r(await Ng())}(0,B.useEffect)(()=>{let e=!0;return Ng().then(t=>{e&&r(t)}).catch(n=>{e&&C(n instanceof Error?n.message:t(`machine.loadError`))}).finally(()=>{e&&x(null)}),()=>{e=!1}},[t]),(0,B.useEffect)(()=>{if(!k)return;let e=bx(n,k),t=Yb(k.configuration_editor,e??k.default,k.default),r=xx(k,e,t);s(t),l(JSON.stringify(r,null,2)),d(A?`guided`:`json`),p(null),h(`upsert`),y(null)},[n,i,e]);function P(e,t){s(n=>k?.capability_id===`periodic_report`?Zb(n,e,t):{...n,[e]:t}),p(null),h(`upsert`),C(null),T(null)}function re(e){if(k){if(e===`json`)l(JSON.stringify(xx(k,ee,o),null,2));else if(j)s(Yb(k.configuration_editor,j,k.default));else{C(t(`machine.jsonInvalid`));return}d(e),p(null),h(`upsert`),C(null)}}async function ie(){if(!(!A||!k?.machine_namespace||!M||!ne||b)){x(`preview`),C(null),T(null);try{h(`upsert`),p(await Lg(k.machine_namespace,M))}catch(e){C(e instanceof Error?e.message:t(`machine.previewError`))}finally{x(null)}}}async function ae(){if(!(!A||!k?.machine_namespace||!te||b)){x(`preview`),C(null),T(null);try{h(`remove`),p(await zg(k.machine_namespace))}catch(e){C(e instanceof Error?e.message:t(`machine.previewError`))}finally{x(null)}}}async function F(){if(!A||!k?.machine_namespace||!f||b||m===`upsert`&&!M)return;x(`apply`),C(null);let e=m;try{let n=e===`remove`?await Bg(k.machine_namespace,f.plan_revision):await Rg(k.machine_namespace,M,f.plan_revision);_(n),p(null),h(`upsert`),y(null),await N(),T(n.status===`applied`?t(e===`remove`?`machine.removed`:`machine.applied`):t(`machine.unchanged`))}catch(e){p(null),h(`upsert`),C(e instanceof Error?e.message:t(`machine.applyError`))}finally{x(null)}}async function oe(){if(!(!g?.transaction_id||b)){x(`rollback-preview`),C(null);try{y(await Vg(g.transaction_id))}catch(e){C(e instanceof Error?e.message:t(`machine.rollbackError`))}finally{x(null)}}}async function I(){if(!(!g?.transaction_id||!v||b)){x(`rollback`),C(null);try{await Hg(g.transaction_id,v.plan_revision),_(null),y(null),p(null),await N(),T(t(`machine.rolledBack`))}catch(e){y(null),C(e instanceof Error?e.message:t(`machine.rollbackError`))}finally{x(null)}}}return b===`load`?(0,V.jsx)(`div`,{className:`personal-machine-loading`,role:`status`,children:t(`common.loading`)}):k?(0,V.jsxs)(`section`,{className:`personal-capability-settings`,"data-revision":n?.revision,children:[(0,V.jsxs)(`details`,{className:`personal-capability-scope-note`,children:[(0,V.jsxs)(`summary`,{children:[(0,V.jsx)(qm,{"aria-hidden":!0,size:17}),t(`machine.liveDefault`)]}),(0,V.jsx)(`p`,{children:t(`machine.liveDefaultDescription`)})]}),(0,V.jsxs)(`div`,{className:`personal-capability-body`,children:[n?.status===`invalid`?(0,V.jsxs)(`section`,{className:`personal-machine-error`,"data-testid":`machine-invalid-repair`,role:`alert`,children:[(0,V.jsx)(`strong`,{children:t(`machine.invalidStoredConfiguration`)}),(0,V.jsx)(`p`,{children:t(`machine.invalidStoredConfigurationDescription`)})]}):null,(0,V.jsxs)(`div`,{className:`personal-capability-layout`,children:[(0,V.jsx)(dx,{capabilities:E,locale:e,onSelect:a,scope:`machine`,selectedCapabilityId:k.capability_id,t}),(0,V.jsxs)(`article`,{"aria-label":k.display_name,className:`personal-capability-detail`,tabIndex:0,children:[(0,V.jsx)(fx,{capability:O,locale:e,source:k.available_scopes.includes(`machine`)?te?`machine_default`:`capability_default`:void 0}),(0,V.jsx)(cx,{available:A,t,description:k.available_scopes.includes(`machine`)?t(`machine.editorUnavailableDescription`):t(`machine.goalOnly`)}),k.capability_id===`periodic_report`?(0,V.jsxs)(`section`,{className:`personal-capability-behavior-note`,children:[(0,V.jsx)(qm,{"aria-hidden":!0,size:18}),(0,V.jsxs)(`div`,{children:[(0,V.jsx)(`strong`,{children:ee?.schedule?e===`zh-CN`?`日历与阶段汇报`:`Calendar and stage reports`:t(`machine.periodicReportActivation`)}),(0,V.jsx)(`p`,{children:ee?.schedule?ee.enabled===!0?e===`zh-CN`?`已配置日历计划,由现有唤醒检查;是否送达请核对报告回执。`:`A calendar schedule is configured and checked by existing wakes. Verify delivery in the report receipt.`:e===`zh-CN`?`日历计划已保存;启用此能力后才会检查和投递。`:`The schedule is saved; enable this capability to check and deliver reports.`:t(`machine.periodicReportActivationDescription`)})]})]}):null,k.capability_id===`change_quality_qualification`?(0,V.jsxs)(`section`,{className:`personal-capability-behavior-note`,children:[(0,V.jsx)(qm,{"aria-hidden":!0,size:18}),(0,V.jsxs)(`div`,{children:[(0,V.jsx)(`strong`,{children:t(`machine.changeQualityActivation`)}),(0,V.jsx)(`p`,{children:t(`machine.changeQualityActivationDescription`)})]})]}):null,k.capability_id===`todo_replan_cadence`?(0,V.jsxs)(`section`,{className:`personal-capability-behavior-note`,children:[(0,V.jsx)(qm,{"aria-hidden":!0,size:18}),(0,V.jsxs)(`div`,{children:[(0,V.jsx)(`strong`,{children:t(`machine.replanCadenceActivation`)}),(0,V.jsx)(`p`,{children:t(`machine.replanCadenceActivationDescription`)})]})]}):null,k.capability_id===`pull_request_review`?(0,V.jsxs)(`section`,{className:`personal-capability-behavior-note`,children:[(0,V.jsx)(qm,{"aria-hidden":!0,size:18}),(0,V.jsxs)(`div`,{children:[(0,V.jsx)(`strong`,{children:e===`zh-CN`?`只改变队列排序`:`Queue ordering only`}),(0,V.jsx)(`p`,{children:e===`zh-CN`?`默认先审阅其他开发者的 PR;选择 owner-first 才会优先当前已认证审阅者自己的 PR。此配置不会发布 review、写 Todo、push 或 merge。`:`The default reviews other developers' PRs first; choose owner-first only when the authenticated reviewer's own PRs should lead. This setting never posts a review, writes Todos, pushes, or merges.`})]})]}):null,A?(0,V.jsxs)(V.Fragment,{children:[u===`json`||!k.configuration_editor.fields.some(e=>e.key===`enabled`&&e.input_kind===`boolean`)?(0,V.jsx)(`div`,{className:`personal-capability-editor-mode`,children:(0,V.jsxs)(`button`,{onClick:()=>re(u===`guided`?`json`:`guided`),type:`button`,children:[(0,V.jsx)(lm,{"aria-hidden":!0,size:14}),t(u===`guided`?`machine.editJson`:`machine.backToForm`)]})}):null,u===`guided`?(0,V.jsxs)(`section`,{className:`personal-capability-field-summary`,children:[(0,V.jsx)(ex,{copy:ix(e),disabled:!!b,editor:k.configuration_editor,onChange:P,value:o,enabledAction:(0,V.jsxs)(`button`,{className:`personal-capability-edit-json`,onClick:()=>re(`json`),type:`button`,children:[(0,V.jsx)(lm,{"aria-hidden":!0,size:14}),t(`machine.editJson`)]})}),ne?null:(0,V.jsx)(`p`,{className:`personal-machine-validation`,role:`alert`,children:t(`machine.requiredFields`)})]}):(0,V.jsxs)(`label`,{className:`personal-capability-json-editor`,htmlFor:`machine-configuration-json`,children:[(0,V.jsx)(`span`,{children:t(`machine.jsonConfiguration`)}),(0,V.jsx)(`textarea`,{"aria-describedby":`machine-configuration-json-help`,disabled:!!b,id:`machine-configuration-json`,onChange:e=>{l(e.target.value),p(null),C(null)},rows:12,spellCheck:!1,value:c}),(0,V.jsx)(`small`,{id:`machine-configuration-json-help`,children:t(`machine.jsonConfigurationHelp`)}),j?null:(0,V.jsx)(`span`,{className:`personal-machine-validation`,role:`alert`,children:t(`machine.jsonInvalid`)})]})]}):null,S?(0,V.jsx)(`p`,{className:`personal-machine-error`,role:`alert`,children:S}):null,w?(0,V.jsxs)(`p`,{className:`personal-machine-notice`,role:`status`,"aria-live":`polite`,children:[(0,V.jsx)(nm,{"aria-hidden":!0,size:16}),w]}):null,f?(0,V.jsxs)(`section`,{"aria-label":t(`machine.preview`),className:`personal-machine-preview`,children:[(0,V.jsxs)(`header`,{children:[(0,V.jsx)(`strong`,{children:t(`machine.preview`)}),(0,V.jsx)(`span`,{children:t(`machine.action.${f.action}`)})]}),(0,V.jsxs)(`dl`,{children:[(0,V.jsxs)(`div`,{children:[(0,V.jsx)(`dt`,{children:t(`machine.currentRevision`)}),(0,V.jsx)(`dd`,{title:f.current_revision,children:wx(f.current_revision)})]}),(0,V.jsxs)(`div`,{children:[(0,V.jsx)(`dt`,{children:t(`machine.desiredRevision`)}),(0,V.jsx)(`dd`,{title:f.desired_revision,children:wx(f.desired_revision)})]}),(0,V.jsxs)(`div`,{children:[(0,V.jsx)(`dt`,{children:t(`machine.changedNamespaces`)}),(0,V.jsx)(`dd`,{children:f.changed_namespaces.join(`, `)||t(`common.none`)})]})]}),(0,V.jsx)(`p`,{children:t(`machine.previewLocked`)})]}):null,g?.rollback_available&&g.transaction_id?(0,V.jsxs)(`section`,{className:`personal-machine-rollback`,children:[(0,V.jsxs)(`div`,{children:[(0,V.jsx)(`strong`,{children:t(`machine.rollbackAvailable`)}),(0,V.jsx)(`p`,{children:t(v?`machine.rollbackPreviewDescription`:`machine.rollbackDescription`)})]}),(0,V.jsxs)(`button`,{className:`personal-secondary-action`,disabled:!!b||!!(v&&!v.rollback_allowed),onClick:()=>void(v?I():oe()),type:`button`,children:[(0,V.jsx)(Bm,{"aria-hidden":!0,size:15}),t(b===`rollback`||b===`rollback-preview`?`common.loading`:v?`machine.confirmRollback`:`machine.previewRollback`)]})]}):null,A?(0,V.jsxs)(`footer`,{className:`personal-capability-actions`,children:[te?(0,V.jsxs)(`button`,{className:`is-danger`,disabled:!!b,onClick:()=>void ae(),type:`button`,children:[(0,V.jsx)($m,{"aria-hidden":!0,size:15}),t(`machine.previewRemoval`)]}):null,(0,V.jsx)(`button`,{disabled:!!b||!ne,onClick:()=>void ie(),type:`button`,children:t(b===`preview`?`common.loading`:`machine.previewChanges`)}),(0,V.jsx)(`button`,{className:`is-primary`,disabled:!!b||!f,onClick:()=>void F(),type:`button`,children:t(b===`apply`?`common.loading`:`machine.applyPreview`)})]}):null,k.available_scopes.includes(`machine`)?(0,V.jsx)(ox,{values:[{label:t(`machine.currentValue`),value:ee},{label:t(`capabilities.defaultValue`),value:k.default}],t},k.capability_id):null]})]})]})]}):(0,V.jsx)(`p`,{className:`personal-capability-empty`,children:t(`machine.capabilityEmpty`)})}function Ex(e,t){return t(e===`invalid`?`machine.credentialInvalid`:e===`configured`?`machine.credentialConfigured`:`machine.credentialAbsent`)}function Dx(e,t){return t(e===`machine_store`?`machine.credentialSourceMachine`:e===`service_environment`?`machine.credentialSourceEnvironment`:`machine.credentialSourceUnset`)}function Ox(){let{t:e}=Ji(),[t,n]=(0,B.useState)(null),[r,i]=(0,B.useState)(``),[a,o]=(0,B.useState)(``),[s,c]=(0,B.useState)(``),[l,u]=(0,B.useState)(null),[d,f]=(0,B.useState)(null),p=(0,B.useCallback)(async()=>{c(`load`);try{let e=await jg();n(e),o(String(e.base_url.value??``))}catch(t){u(t instanceof Error?t.message:e(`machine.credentialError`))}finally{c(``)}},[e]);(0,B.useEffect)(()=>{p()},[p]);async function m(t,r){c(`store`),u(null),f(null);try{let e=await Mg(t);n(e),o(String(e.base_url.value??``)),i(``),f(r)}catch(t){u(t instanceof Error?t.message:e(`machine.credentialError`))}finally{c(``)}}if(!t&&s===`load`)return(0,V.jsx)(`div`,{className:`personal-machine-loading`,role:`status`,children:e(`common.loading`)});let h=t?`${Ex(t.provider_key.configured?`configured`:`absent`,e)} · ${Dx(t.provider_key.source,e)}`:``,g=t?`${t.base_url.value??e(`machine.credentialAbsent`)} · ${Dx(t.base_url.source,e)}`:``;return(0,V.jsxs)(`section`,{className:`personal-operator-credential`,"data-testid":`operator-credential-settings`,children:[(0,V.jsxs)(`header`,{children:[(0,V.jsx)(Sm,{"aria-hidden":!0,size:17}),(0,V.jsxs)(`div`,{children:[(0,V.jsx)(`strong`,{children:e(`machine.credentialTitle`)}),(0,V.jsx)(`p`,{children:e(`machine.credentialDescription`)})]}),(0,V.jsx)(`span`,{className:`personal-operator-credential-status`,children:t?Ex(t.status,e):e(`common.loading`)})]}),t?(0,V.jsxs)(`dl`,{className:`personal-operator-credential-readback`,children:[(0,V.jsxs)(`div`,{children:[(0,V.jsx)(`dt`,{children:e(`machine.credentialApiKey`)}),(0,V.jsx)(`dd`,{children:h})]}),(0,V.jsxs)(`div`,{children:[(0,V.jsx)(`dt`,{children:e(`machine.credentialFingerprint`)}),(0,V.jsx)(`dd`,{children:(0,V.jsx)(`code`,{children:t.provider_key.fingerprint??e(`common.none`)})})]}),(0,V.jsxs)(`div`,{children:[(0,V.jsx)(`dt`,{children:e(`machine.credentialBaseUrl`)}),(0,V.jsx)(`dd`,{children:g})]})]}):null,t?.status===`invalid`&&t.repair?(0,V.jsx)(`p`,{className:`personal-machine-error`,role:`alert`,children:t.repair}):null,(0,V.jsxs)(`label`,{htmlFor:`operator-credential-api-key`,children:[(0,V.jsx)(`span`,{children:e(`machine.credentialApiKey`)}),(0,V.jsx)(`input`,{autoComplete:`off`,disabled:!!s,id:`operator-credential-api-key`,onChange:e=>i(e.target.value),placeholder:e(`machine.credentialApiKeyPlaceholder`),type:`password`,value:r})]}),(0,V.jsxs)(`label`,{htmlFor:`operator-credential-base-url`,children:[(0,V.jsx)(`span`,{children:e(`machine.credentialBaseUrl`)}),(0,V.jsx)(`input`,{autoComplete:`off`,disabled:!!s,id:`operator-credential-base-url`,onChange:e=>o(e.target.value),placeholder:e(`machine.credentialBaseUrlPlaceholder`),type:`text`,value:a})]}),l?(0,V.jsx)(`p`,{className:`personal-machine-error`,role:`alert`,children:l}):null,d?(0,V.jsxs)(`p`,{className:`personal-machine-notice`,role:`status`,"aria-live":`polite`,children:[(0,V.jsx)(nm,{"aria-hidden":!0,size:16}),d]}):null,(0,V.jsxs)(`footer`,{className:`personal-operator-credential-actions`,children:[(0,V.jsx)(`button`,{className:`is-primary`,disabled:!!s||!r.trim()&&!a.trim(),onClick:()=>void m({...r.trim()?{provider_key:r}:{},...a.trim()?{base_url:a}:{}},e(`machine.credentialStored`)),type:`button`,children:e(s===`store`?`common.loading`:`machine.credentialStore`)}),(0,V.jsxs)(`button`,{disabled:!!s||t?.provider_key.configured!==!0,onClick:()=>void m({clear_provider_key:!0},e(`machine.credentialCleared`)),type:`button`,children:[(0,V.jsx)($m,{"aria-hidden":!0,size:15}),e(`machine.credentialClearKey`)]}),(0,V.jsxs)(`button`,{disabled:!!s||t?.base_url.configured!==!0,onClick:()=>void m({clear_base_url:!0},e(`machine.credentialCleared`)),type:`button`,children:[(0,V.jsx)($m,{"aria-hidden":!0,size:15}),e(`machine.credentialClearUrl`)]})]}),(0,V.jsxs)(`details`,{className:`personal-capability-scope-note`,children:[(0,V.jsxs)(`summary`,{children:[(0,V.jsx)(qm,{"aria-hidden":!0,size:17}),e(`machine.credentialTitle`)]}),(0,V.jsx)(`p`,{children:e(`machine.credentialBoundary`)})]})]})}var kx={appearance:Nm,capabilities:Jm,language:Cm,lark:Km,machine:Wm,provider:Sm};function Ax({callbacks:e,focusGoalConnection:t=!1,goals:n,initialGoalId:r,initialTab:i=`lark`,goalNotifications:a,onChanged:o,onClose:s,onThemeChange:c,theme:l}){let{locale:u,setLocale:d,t:f}=Ji(),[p,m]=(0,B.useState)(i),h=[...r?[{key:`capabilities`,label:f(`capabilities.title`)}]:[],{key:`provider`,label:f(`settings.modelProvider`)},{key:`machine`,label:f(`settings.globalCapabilities`)},{key:`lark`,label:`Lark`},{key:`appearance`,label:f(`settings.appearance`)},{key:`language`,label:f(`settings.language`)}],g=[{label:f(`settings.languageEnglish`),value:`en`},{label:f(`settings.languageSimplifiedChinese`),value:`zh-CN`}],_={appearance:{title:f(`settings.appearance`)},capabilities:{title:f(`capabilities.title`)},language:{title:f(`settings.language`)},lark:{title:`Lark`},machine:{title:f(`settings.globalCapabilities`)},provider:{title:f(`settings.modelProvider`)}}[p];return(0,V.jsxs)(`section`,{"aria-label":f(`settings.title`),className:`personal-settings-page`,"data-pw-theme":l,children:[(0,V.jsxs)(`aside`,{className:`personal-settings-sidebar`,children:[(0,V.jsxs)(`button`,{className:`personal-settings-back`,onClick:s,type:`button`,children:[(0,V.jsx)(qp,{size:17}),(0,V.jsx)(`span`,{children:f(`settings.back`)})]}),(0,V.jsxs)(`div`,{className:`personal-settings-title`,children:[(0,V.jsx)(`small`,{children:f(`settings.eyebrow`)}),(0,V.jsx)(`strong`,{children:f(`settings.title`)})]}),(0,V.jsx)(`nav`,{"aria-label":f(`settings.categories`),className:`personal-settings-tabs`,children:h.map(e=>{let t=kx[e.key];return(0,V.jsxs)(`button`,{"aria-current":p===e.key?`page`:void 0,onClick:()=>m(e.key),type:`button`,children:[(0,V.jsx)(t,{size:17}),(0,V.jsx)(`span`,{children:(0,V.jsx)(`strong`,{children:e.label})})]},e.key)})})]}),(0,V.jsxs)(`main`,{className:`personal-settings-body`,children:[(0,V.jsx)(`header`,{className:`personal-settings-header`,children:(0,V.jsx)(`div`,{children:(0,V.jsx)(`h1`,{children:_.title})})}),p===`lark`?(0,V.jsx)(qb,{embedded:!0,focusGoalConnection:t,goals:n,initialGoalId:r,onChanged:o,onClose:s}):null,p===`provider`?(0,V.jsx)(`div`,{className:`personal-provider-settings`,children:(0,V.jsx)(Ox,{})}):null,p===`machine`?(0,V.jsx)(Tx,{}):null,p===`capabilities`?(0,V.jsx)(vx,{callbacks:e,goalId:r,notification:a.find(e=>e.goalId===r),onChanged:o}):null,p===`appearance`?(0,V.jsxs)(`section`,{className:`personal-detail-card personal-appearance-settings`,children:[(0,V.jsx)(`small`,{children:f(`settings.workspaceDisplay`)}),(0,V.jsx)(`h3`,{children:f(`settings.appearance`)}),(0,V.jsxs)(`div`,{className:`personal-settings-choice-group`,role:`radiogroup`,"aria-label":f(`settings.workspaceTheme`),children:[(0,V.jsxs)(`button`,{"aria-checked":l===`loopx`,onClick:()=>c(`loopx`),role:`radio`,type:`button`,children:[(0,V.jsx)(`span`,{className:`personal-settings-theme-swatch is-loopx`}),(0,V.jsx)(`strong`,{children:f(`settings.themeLoopx`)})]}),(0,V.jsxs)(`button`,{"aria-checked":l===`paper`,onClick:()=>c(`paper`),role:`radio`,type:`button`,children:[(0,V.jsx)(`span`,{className:`personal-settings-theme-swatch is-paper`}),(0,V.jsx)(`strong`,{children:f(`settings.themeDefault`)})]}),(0,V.jsxs)(`button`,{"aria-checked":l===`brutal`,onClick:()=>c(`brutal`),role:`radio`,type:`button`,children:[(0,V.jsx)(`span`,{className:`personal-settings-theme-swatch is-brutal`}),(0,V.jsx)(`strong`,{children:f(`settings.themeHighContrast`)})]})]})]}):null,p===`language`?(0,V.jsxs)(`section`,{className:`personal-settings-card`,children:[(0,V.jsxs)(`header`,{children:[(0,V.jsx)(`span`,{className:`personal-settings-icon`,children:(0,V.jsx)(Cm,{size:18})}),(0,V.jsx)(`div`,{children:(0,V.jsx)(`h2`,{children:f(`settings.language`)})})]}),(0,V.jsx)(`div`,{"aria-label":f(`settings.language`),className:`personal-language-options`,role:`radiogroup`,children:g.map(e=>(0,V.jsxs)(`button`,{"aria-checked":u===e.value,className:u===e.value?`is-selected`:``,onClick:()=>d(e.value),role:`radio`,type:`button`,children:[(0,V.jsx)(`span`,{children:(0,V.jsx)(`strong`,{children:e.label})}),u===e.value?(0,V.jsx)(nm,{"aria-hidden":!0,size:17}):null]},e.value))})]}):null]})]})}var jx=`loopx-pw-theme`,Mx=`loopx`;function Nx(){try{let e=window.localStorage.getItem(jx);return e===`loopx`||e===`paper`||e===`brutal`?e:Mx}catch{return Mx}}function Px(e){try{window.localStorage.setItem(jx,e)}catch{}}function Fx({drawer:e,drawerMode:t=`panel`,drawerOpen:n,main:r,mobileSidebarOpen:i=!1,onCloseMobileSidebar:a,sidebar:o,theme:s=`loopx`}){let{t:c}=Ji(),l=(0,B.useRef)(null),u=(0,B.useRef)(null);return(0,B.useEffect)(()=>{if(!i)return;u.current=document.activeElement instanceof HTMLElement?document.activeElement:null;let e=l.current?.querySelectorAll(`button:not([disabled]), a[href], select:not([disabled]), textarea:not([disabled]), input:not([disabled]), [tabindex]:not([tabindex="-1"])`);e?.[0]?.focus();function t(t){if(t.key!==`Tab`||!e?.length)return;let n=e[0],r=e[e.length-1];t.shiftKey&&document.activeElement===n?(t.preventDefault(),r.focus()):!t.shiftKey&&document.activeElement===r&&(t.preventDefault(),n.focus())}return document.addEventListener(`keydown`,t),()=>{document.removeEventListener(`keydown`,t),u.current?.focus(),u.current=null}},[i]),(0,V.jsxs)(`section`,{className:`personal-workspace-shell${n?` has-drawer`:``}${n&&t.startsWith(`inspector`)?` has-task-inspector`:``}${t===`inspector-full`?` is-task-inspector-full`:``}${i?` mobile-sidebar-open`:``}`,"data-pw-theme":s,children:[i?(0,V.jsx)(`button`,{"aria-hidden":!0,className:`personal-sidebar-backdrop`,onClick:a,tabIndex:-1,type:`button`}):null,(0,V.jsx)(`aside`,{"aria-label":i?c(`header.goalNavigation`):void 0,"aria-modal":i?!0:void 0,className:`personal-workspace-sidebar`,"data-workspace-sidebar":!0,ref:l,role:i?`dialog`:void 0,children:(0,V.jsxs)(`div`,{className:`personal-workspace-sidebar-inner`,children:[i?(0,V.jsxs)(`button`,{className:`personal-sr-only`,onClick:a,type:`button`,children:[c(`common.close`),` `,c(`header.goalNavigation`)]}):null,o]})}),(0,V.jsx)(`main`,{"aria-hidden":i||void 0,className:`personal-workspace-main`,inert:i||void 0,children:r}),n?(0,V.jsx)(`aside`,{className:`personal-workspace-drawer`,"data-context-drawer":!0,"data-drawer-mode":t,children:e}):null]})}function Ix(e){let t=e.match(/(?:下一步|建议|行动项|待办)[::\s]*([^\n]+)/u),n=t?t[1]:e;n=n.replace(/```[\s\S]*?```/g,``).replace(/`([^`]+)`/g,`$1`).replace(/\[([^\]]+)\]\([^)]+\)/g,`$1`).replace(/[#*~_>]/g,``).replace(/^[-*•\d+.\s]+/u,``).replace(/^(好的|没问题|收到|建议如下|任务如下|分析如下|结论[::])[\s,,::]*/u,``);let r=(n.split(/\r?\n/).map(e=>e.trim()).filter(Boolean)[0]||n).replace(/\s+/gu,` `).trim();return Array.from(r).slice(0,120).join(``)}function Lx(e){let t=new Map;return e.forEach(e=>{let n=e.fields.find(e=>e.key===`todo_id`)?.value??``,r=[e.actionKind,e.goalId??``,n,e.title].join(`:`);t.set(r,e)}),[...t.values()]}function Rx(e,t,n){if(!e)return n(`home.noFirstActivity`);let r=new Date(e);if(Number.isNaN(r.getTime()))return e;let i=new Date,a=new Intl.DateTimeFormat(t,{hour:`2-digit`,minute:`2-digit`,hour12:!1}).format(r);return r.toDateString()===i.toDateString()?n(`home.todayAt`,{time:a}):new Intl.DateTimeFormat(t,{month:`numeric`,day:`numeric`,hour:`2-digit`,minute:`2-digit`,hour12:!1}).format(r)}function zx({goals:e,onSelectGoal:t,onRetry:n,systemHealth:r}){let{locale:i,t:a}=Ji(),o=e.filter(e=>e.activationState===`active`),s=o.filter(e=>e.loadState===`error`).length,c=[{key:`needs_you`,label:a(`home.lane.needsYou`)},{key:`running`,label:a(`home.lane.running`)},{key:`observing`,label:a(`home.lane.observing`)},{key:`scheduled`,label:a(`home.lane.scheduled`)}],l=Object.fromEntries(c.map(e=>[e.key,[]])),u=[],d=[];e.filter(e=>!e.loadState).forEach(e=>{let t=My(e);t===`history`?u.push(e):t===`stopped`?d.push(e):l[t].push(e)});let f=e=>(0,V.jsxs)(`button`,{className:`personal-home-goal-card`,"data-goal-state":e.loadState??e.state,"data-load-error":e.loadError,onClick:()=>t(e.goalId),type:`button`,children:[(0,V.jsxs)(`span`,{className:`personal-home-goal-meta`,children:[(0,V.jsx)(`i`,{}),e.agentLaneCount&&e.agentLaneCount>1?a(`header.workAgentCount`,{count:e.agentLaneCount}):e.agentLabel??e.agentId]}),(0,V.jsx)(`strong`,{children:e.title}),(0,V.jsx)(`p`,{children:e.loadError?a(`startup.error.${e.loadError}`):e.needsYou??e.nextSentence}),(0,V.jsxs)(`footer`,{children:[(0,V.jsx)(`span`,{children:e.loadState?a(e.loadState===`error`?`startup.goalError`:`startup.goalLoading`):Yi(e.state,i)}),(0,V.jsx)(`small`,{title:e.latestActivity,children:e.loadState?``:e.latestActivity?Rx(e.latestActivity,i,a):e.agentTodos.length?a(`home.taskCount`,{count:e.agentTodos.length}):a(`home.noActivity`)})]})]},e.goalId);return(0,V.jsxs)(`section`,{"aria-label":a(`home.workspace`),className:`personal-home-board`,children:[r&&(!r.ok||r.issues.length>0||r.freshnessWarning)?(0,V.jsxs)(`div`,{className:`personal-system-health-banner`,role:`alert`,children:[(0,V.jsxs)(`div`,{className:`personal-system-health-header`,children:[(0,V.jsx)(om,{size:15}),(0,V.jsx)(`strong`,{children:a(`home.systemHealth`,{summary:r.summary})}),r.freshnessWarning?(0,V.jsxs)(`small`,{children:[`(`,r.freshnessWarning,`)`]}):null]}),r.issues.length>0?(0,V.jsx)(`ul`,{className:`personal-system-health-issues`,children:r.issues.map((e,t)=>(0,V.jsx)(`li`,{children:e},t))}):null]}):null,o.some(e=>e.loadState)?(0,V.jsxs)(`section`,{className:`personal-home-lane`,"aria-live":`polite`,children:[(0,V.jsx)(`header`,{children:a(`startup.progress`,{loaded:o.filter(e=>!e.loadState).length,total:o.length})}),s?(0,V.jsxs)(`div`,{className:`personal-stopped-goal-error`,role:`status`,children:[(0,V.jsx)(`span`,{children:a(`startup.failedCount`,{count:s})}),(0,V.jsx)(`button`,{className:`min-h-11 rounded-md border px-3 py-2 text-sm`,onClick:n,type:`button`,children:a(`startup.retryFailed`)})]}):null,o.filter(e=>e.loadState).map(f)]}):null,(0,V.jsx)(`div`,{className:`personal-home-lanes`,children:c.map(e=>(0,V.jsxs)(`section`,{className:`personal-home-lane is-${e.key}`,"data-testid":`personal-home-lane-${e.key}`,children:[(0,V.jsxs)(`header`,{children:[(0,V.jsxs)(`span`,{children:[(0,V.jsx)(`i`,{}),e.label]}),(0,V.jsx)(`b`,{children:l[e.key].length})]}),(0,V.jsx)(`div`,{className:`personal-home-lane-list`,children:l[e.key].length?l[e.key].map(f):(0,V.jsx)(`span`,{className:`personal-home-empty`,children:a(`home.empty`)})})]},e.key))}),(0,V.jsxs)(`details`,{className:`personal-home-history`,children:[(0,V.jsxs)(`summary`,{children:[(0,V.jsx)(`span`,{children:a(`home.history`)}),(0,V.jsx)(`b`,{children:u.length}),(0,V.jsx)(`small`,{children:a(`home.completedGoals`)})]}),(0,V.jsx)(`div`,{children:u.length?u.map(f):(0,V.jsx)(`span`,{className:`personal-home-empty`,children:a(`home.noCompletedGoals`)})})]}),d.length?(0,V.jsxs)(`details`,{className:`personal-home-history is-stopped`,children:[(0,V.jsxs)(`summary`,{children:[(0,V.jsx)(`span`,{children:a(`home.stopped`)}),(0,V.jsx)(`b`,{children:d.length}),(0,V.jsx)(`small`,{children:a(`home.preservedState`)})]}),(0,V.jsx)(`div`,{children:d.map(f)})]}):null]})}function Bx({items:e,onSelect:t,reportState:n}){let{locale:r,t:i}=Ji();return(0,V.jsxs)(`section`,{className:`personal-object-list personal-files-list`,"data-testid":`personal-goal-outputs`,children:[(0,V.jsxs)(`header`,{children:[(0,V.jsx)(`strong`,{children:i(`files.title`)}),(0,V.jsx)(`span`,{children:e.length})]}),n?.loading?(0,V.jsxs)(`p`,{className:`personal-object-list-state`,role:`status`,children:[(0,V.jsx)(zm,{className:`is-spinning`,size:14}),i(`files.loadingReports`)]}):null,n?.error?(0,V.jsxs)(`p`,{className:`personal-object-list-state is-error`,role:`alert`,children:[(0,V.jsx)(om,{size:14}),i(`files.reportLoadFailed`),`: `,n.error]}):null,!n?.loading&&!n?.error&&e.length===0?(0,V.jsxs)(`p`,{className:`personal-object-list-state`,children:[(0,V.jsx)(vm,{size:14}),i(`files.empty`)]}):null,e.map(e=>(0,V.jsxs)(`button`,{"data-output-kind":e.output.kind,onClick:()=>t({item:e.output,kind:`output`}),type:`button`,children:[(0,V.jsx)(`span`,{className:`personal-file-icon`,children:(0,V.jsx)(vm,{size:16})}),(0,V.jsx)(`strong`,{children:e.output.title}),e.output.report?(0,V.jsx)(`em`,{children:i(`files.reportDelta`,{added:e.output.report.addedCount,changed:e.output.report.changedCount})}):null,(0,V.jsx)(`p`,{children:e.output.summary??e.output.safePreview??e.output.kind??i(`files.emptySummary`)}),(0,V.jsx)(`small`,{title:e.output.createdAt,children:[e.output.goalTitle,e.output.kind===`report`?i(`files.verifiedReport`):null,e.output.todoId?`${i(`common.task`)} ${e.output.todoId}`:null,Rx(e.output.createdAt,r,i)].filter(Boolean).join(` · `)})]},e.id))]})}function Vx({agentLabel:e,messages:t,onClose:n,onDraftTask:r,onOpenConversation:i,title:a}){let{t:o}=Ji(),s=t.reduce((e,t,n)=>t.role===`user`?n:e,0),c=t.slice(Math.max(0,s)).slice(-3),l=c.filter(e=>e.role===`assistant`&&!e.pending).at(-1);return(0,B.useEffect)(()=>{if(!n)return;let e=e=>{e.key===`Escape`&&n()};return window.addEventListener(`keydown`,e),()=>window.removeEventListener(`keydown`,e)},[n]),(0,V.jsxs)(`aside`,{"aria-label":o(`conversation.receipt`),className:`personal-manager-conversation-tray`,children:[(0,V.jsxs)(`header`,{children:[(0,V.jsxs)(`span`,{children:[(0,V.jsx)($p,{size:16}),(0,V.jsx)(`strong`,{children:a??o(`conversation.title`)}),(0,V.jsx)(`small`,{children:t.at(-1)?.pending?o(`conversation.replying`):o(`common.recently`)})]}),(0,V.jsxs)(`div`,{className:`personal-manager-conversation-actions`,children:[r&&l?(0,V.jsxs)(`button`,{className:`personal-manager-conversation-btn`,onClick:()=>r(l.text),title:o(`conversation.convertHint`),type:`button`,children:[(0,V.jsx)(Tm,{size:13}),(0,V.jsx)(`span`,{children:o(`conversation.toTask`)})]}):null,(0,V.jsx)(`button`,{className:`personal-manager-conversation-link`,onClick:i,type:`button`,children:o(`conversation.full`)}),n?(0,V.jsx)(`button`,{"aria-label":o(`conversation.close`),className:`personal-manager-conversation-close`,onClick:n,title:o(`conversation.close`),type:`button`,children:(0,V.jsx)(nh,{size:14})}):null]})]}),(0,V.jsx)(`div`,{"aria-live":`polite`,className:`personal-manager-conversation-messages`,children:c.map(t=>(0,V.jsxs)(`article`,{className:`is-${t.role}`,children:[(0,V.jsx)(`strong`,{children:t.role===`user`?o(`common.you`):t.agentLabel??e??o(`header.manager`)}),(0,V.jsxs)(`div`,{className:`personal-manager-conversation-bubble`,children:[t.role===`user`?(0,V.jsx)(`p`,{children:t.text}):(0,V.jsx)(qy,{text:t.text}),t.pending?(0,V.jsx)(`small`,{children:o(`conversation.agentPending`)}):null,(0,V.jsx)(Qy,{delivery:t.returnDelivery})]})]},t.id))})]})}function Hx({onClose:e,onOpenDetails:t,run:n}){let{t:r}=Ji();return(0,V.jsxs)(`section`,{"aria-label":r(`session.record`),className:`personal-session-record`,children:[(0,V.jsxs)(`header`,{children:[(0,V.jsxs)(`span`,{children:[(0,V.jsx)($p,{size:17}),r(`session.record`)]}),(0,V.jsx)(`button`,{"aria-label":r(`session.closeRecord`),onClick:e,type:`button`,children:(0,V.jsx)(nh,{size:15})})]}),(0,V.jsx)(`div`,{children:(0,V.jsx)(`strong`,{children:n.title})}),(0,V.jsxs)(`dl`,{children:[(0,V.jsxs)(`div`,{children:[(0,V.jsx)(`dt`,{children:`Agent`}),(0,V.jsx)(`dd`,{children:n.agentLabel})]}),(0,V.jsxs)(`div`,{children:[(0,V.jsx)(`dt`,{children:r(`common.status`)}),(0,V.jsx)(`dd`,{children:Xi(n.sessionStatus??n.status,r)})]}),(0,V.jsxs)(`div`,{children:[(0,V.jsx)(`dt`,{children:`Session`}),(0,V.jsx)(`dd`,{title:n.sessionId,children:n.sessionId})]})]}),(0,V.jsx)(`button`,{className:`personal-secondary-action`,onClick:t,type:`button`,children:r(`session.details`)})]})}function Ux(e,t,n){let r=[];if(t===null)return e.userTodos.slice(0,4).forEach(t=>r.push({attention:{...t,goalTitle:t.goalTitle??jy(e,t.goalId)},id:`attention:${t.todoId}`,kind:`attention`})),e.goals.filter(e=>My(e)===`running`).slice(0,4).forEach(e=>r.push({id:`run:${e.goalId}`,kind:`run`,run:{agentId:e.agentId,agentLabel:e.agentLabel??e.agentId,completedSteps:e.doneTodoCount??e.agentTodos.filter(e=>e.done).length,goalId:e.goalId,goalTitle:e.title,latestActivity:e.agentSentence,runId:`goal:${e.goalId}`,status:`running`,title:e.nextSentence,totalSteps:Math.max((e.doneTodoCount??0)+e.agentTodos.filter(e=>!e.done).length,1)}})),r;let i=e.goals.find(e=>e.goalId===t);if(!i)return r;if(i.needsYou){let t=e.userTodos.find(e=>e.goalId===i.goalId);r.push({attention:t?{...t,goalTitle:i.title}:{blocking:i.needsYouBlocking??!1,goalId:i.goalId,goalTitle:i.title,text:i.needsYou,todoId:`${i.goalId}:attention`},id:`attention:${i.goalId}`,kind:`attention`})}r.push({id:`run:${i.goalId}`,kind:`run`,run:{agentId:i.agentId,agentLabel:i.agentLabel??i.agentId,completedSteps:i.doneTodoCount??i.agentTodos.filter(e=>e.done).length,goalId:i.goalId,goalTitle:i.title,latestActivity:i.agentSentence,runId:`goal:${i.goalId}`,status:i.state===`推进中`?`running`:i.state===`需修复`?`failed`:`waiting`,title:i.nextSentence,totalSteps:Math.max((i.doneTodoCount??0)+i.agentTodos.filter(e=>!e.done).length,1)}}),i.agentTodos.filter(e=>e.taskClass===`continuous_monitor`).forEach(t=>{let a=e.timeline?.find(e=>e.kind===`run`&&e.run.goalId===i.goalId&&e.run.todoId===t.todoId&&!!e.run.sessionId);r.push({id:`schedule:${i.goalId}:${t.todoId}`,kind:`schedule`,schedule:{agentId:i.agentId,executionHistory:a?[{label:a.run.latestActivity||a.run.title,runId:a.run.runId,status:a.run.status===`waiting`||a.run.status===`queued`?`running`:a.run.status,timestamp:i.latestActivity||n(`common.recently`)}]:[],goalId:i.goalId,label:t.text,schedule:t.evidence??n(`schedule.summary`),scheduleId:t.todoId,scheduleKind:`monitor`,sessionId:a?.run.sessionId,status:t.done||t.status===`paused`?`paused`:`active`,stopCondition:n(`drawer.scheduleDefaultStop`),target:t.text,timezone:`Asia/Shanghai`}})});let a=e.timeline?.find(e=>e.kind===`proposal`&&e.proposal.actionKind===`heartbeat.bind`&&e.proposal.goalId===i.goalId);if(a){let e=e=>a.proposal.fields.find(t=>t.key===e)?.value;r.push({id:`schedule:${i.goalId}:heartbeat`,kind:`schedule`,schedule:{agentId:i.agentId,executionHistory:[],goalId:i.goalId,label:`${n(`schedule.heartbeat`)} · ${i.title}`,nextRunAt:n(`drawer.schedulePending`),notificationRule:n(`drawer.scheduleDefaultNotification`),schedule:e(`cadence`)??n(`schedule.summary`),scheduleId:`${i.goalId}:heartbeat`,scheduleKind:`heartbeat`,status:a.proposal.status===`applied`?`active`:`draft`,stopCondition:e(`stop_condition`)??n(`drawer.scheduleDefaultStop`),timezone:e(`timezone`)??`Asia/Shanghai`}})}return r}function Wx(e){return e===`preview_ready`?`ready`:e===`cancelled`?`draft`:e===`failed`?`error`:e}function Gx(e,t){let n={agent_id:t(`proposal.field.agentId`),cadence:t(`proposal.field.cadence`),completion_criteria:t(`proposal.field.completionCriteria`),execution_boundary:t(`proposal.field.executionBoundary`),goal_id:t(`proposal.field.goalId`),heartbeat:t(`proposal.field.heartbeat`),initial_todos:t(`proposal.field.initialTodos`),objective:t(`proposal.field.objective`),operation:t(`proposal.field.operation`),permission:t(`proposal.field.permission`),reason:t(`proposal.field.reason`),stop_condition:t(`proposal.field.stopCondition`),target:t(`proposal.field.target`),timezone:t(`proposal.field.timezone`),title:t(`proposal.field.title`),workspace_ref:t(`proposal.field.workspace`)},r=[`title`,`objective`,`completion_criteria`,`execution_boundary`,`permission`,`agent_id`,`workspace_ref`,`initial_todos`,`heartbeat`,`stop_condition`,`goal_id`];return Object.entries(e).sort(([e],[t])=>{let n=r.indexOf(e),i=r.indexOf(t);return(n<0?r.length:n)-(i<0?r.length:i)}).slice(0,10).map(([e,r])=>({key:e,label:n[e]??e.replaceAll(`_`,` `),value:e===`workspace_ref`?r===`current`?t(`proposal.workspace.current`):t(`proposal.workspace.named`,{workspace:String(r??`current`)}):Array.isArray(r)?r.join(` · `):typeof r==`object`&&r?JSON.stringify(r):String(r??`—`)}))}function Kx(e,t,n){let r=t.operationFrame,i=r?.content.fields.map((e,t)=>({key:`projection:${t}`,label:e.label,value:e.value})).slice(0,8)??[];return[{key:`operation_state`,label:n(`proposal.field.operationState`),value:r?.lifecycleState??e.status},...r?.kind===`result`?[{key:`result_delivery`,label:n(`proposal.field.resultDelivery`),value:r.resultDeliveryVerified?n(`proposal.resultDelivery.verified`):n(`proposal.resultDelivery.pending`)}]:[],...i,...r?[{key:`warning`,label:n(`proposal.field.confirmationBoundary`),value:r.content.warning}]:[],...r?[{key:`expires_at`,label:n(`proposal.field.expiresAt`),value:r.expiresAt}]:[]].slice(0,10)}function qx(e){if(e.action_kind!==`goal.lifecycle`)return;let t=e.normalized_parameters.operation;return t===`stop`||t===`resume`||t===`delete`?t:void 0}function Jx(e,t){let n=qx(e),r=Cy(e),i=typeof e.normalized_parameters.title==`string`?e.normalized_parameters.title:typeof e.normalized_parameters.goal_id==`string`?e.normalized_parameters.goal_id:``,a=typeof e.normalized_parameters.target==`string`?e.normalized_parameters.target:``,o=r.operationFrame,s=o?.content.title??e.summary,c=e.action_kind===`operation.execute`?s:e.action_kind===`team.plan`?t(`proposal.summary.teamPlan`,{goal:ky(e.normalized_parameters),count:Oy(e.normalized_parameters)}):e.action_kind===`goal.create`?t(`proposal.summary.goalCreate`,{title:i}):e.action_kind===`heartbeat.bind`?t(`proposal.summary.heartbeat`):e.action_kind===`monitor.create`?t(`proposal.summary.monitor`,{target:a}):e.action_kind===`goal.lifecycle`&&n===`stop`?t(`proposal.summary.lifecycleStop`,{title:i}):e.action_kind===`goal.lifecycle`&&n===`delete`?t(`proposal.summary.lifecycleDelete`,{title:i}):e.action_kind===`goal.lifecycle`?t(`proposal.summary.lifecycleResume`,{title:i}):e.summary;return{actionKind:e.action_kind,reviewPlan:r,fields:e.action_kind===`operation.execute`?Kx(e,r,t):e.action_kind===`team.plan`?Dy(e.normalized_parameters,t):Gx(e.normalized_parameters,t),goalId:typeof e.normalized_parameters.goal_id==`string`?e.normalized_parameters.goal_id:void 0,impact:e.action_kind===`operation.execute`?t(`proposal.impact.operation`):e.action_kind===`team.plan`?t(`proposal.impact.teamPlan`):e.action_kind===`goal.create`?t(`proposal.impact.goalCreate`):e.action_kind===`goal.lifecycle`&&n===`stop`?t(`proposal.impact.lifecycleStop`):e.action_kind===`goal.lifecycle`&&n===`delete`?t(`proposal.impact.lifecycleDelete`):e.action_kind===`goal.lifecycle`?t(`proposal.impact.lifecycleResume`):e.permission_classification===`protected`?t(`proposal.impact.protected`):t(`proposal.impact.default`),previewId:e.proposal_id,lifecycleOperation:n,gate:e.gate?{kind:String(e.gate.kind??`protected_action`),nextAction:typeof e.gate.next_action==`string`?e.gate.next_action:void 0,summary:String(e.gate.summary??t(`proposal.gate.default`))}:void 0,primaryLabel:e.action_kind===`operation.execute`?o?.kind===`result`?o.resultDeliveryVerified?t(`proposal.primary.operationResultVerified`):t(`proposal.primary.operationResultPending`):t(`proposal.primary.operationGroup`):e.action_kind===`team.plan`?t(`proposal.primary.teamPlan`):e.action_kind===`goal.create`?t(`proposal.primary.goalCreate`):e.action_kind===`goal.lifecycle`&&n===`stop`?t(`proposal.primary.lifecycleStop`):e.action_kind===`goal.lifecycle`&&n===`delete`?t(`proposal.primary.lifecycleDelete`):e.action_kind===`goal.lifecycle`?t(`proposal.primary.lifecycleResume`):e.action_kind===`todo.create`&&e.normalized_parameters.start_execution===!0?t(`proposal.primary.todoStart`):t(`proposal.primary.apply`),status:e.status===`applied`&&e.action_kind!==`operation.execute`&&r.interaction!==`completed`?`error`:Wx(e.status),title:c}}function Yx(e){let t=e.toLowerCase().replace(/[^a-z0-9]+/g,`-`).replace(/^-+|-+$/g,``).slice(0,42);if(t)return t;let n=2166136261;for(let t of e)n^=t.codePointAt(0)??0,n=Math.imul(n,16777619);return`goal-${(n>>>0).toString(36)}`}function Xx(e,t){let n=e.match(/[「“"]([^」”"]{2,80})[」”"]/u)?.[1];return n?n.trim():e.replace(/^(请|帮我|我想|给我|创建|新建|设置|please|i want to|create|set up)+/iu,``).replace(/(一个|新的)?\s*(goal|目标)/giu,``).replace(/[,。!?].*$/u,``).trim().slice(0,80)||t(`goal.defaultTitle`)}function Zx(e,t){for(let n of e.split(/\r?\n/u)){let e=n.trim();for(let n of t){let t=e.match(RegExp(`^${n.replace(/[.*+?^${}()|[\]\\]/gu,`\\$&`)}\\s*[::]\\s*(.*)$`,`iu`));if(t?.[1]?.trim())return t[1].trim()}}return``}function Qx(e,t){let n=Zx(e,[`目标`,`Objective`]),r=Zx(e,[`完成标准`,`Completion criteria`]),i=Zx(e,[`执行边界(可选)`,`执行边界`,`边界`,`Execution boundary (optional)`,`Execution boundary`,`Boundary`]),a=(n||Xx(e,t)).split(/[。;;\n]/u)[0].trim().slice(0,80)||t(`goal.defaultTitle`),o=[n||a,r?t(`goal.objectiveCompletion`,{criteria:r}):``,i?t(`goal.objectiveBoundary`,{boundary:i}):``].filter(Boolean).join(` -`),s=/(只读|不调用外部工具|不修改(?:仓库|代码|状态)|read.?only|do not (?:call|use) external tools|do not modify (?:repositories|repository|code|state))/iu.test(i||e);return{completionCriteria:r,executionBoundary:i,initialTodos:r?[t(`goal.initialTodo`,{criteria:r})]:[],objective:o,permission:s?`read_only`:`workspace_write_on_confirmation`,title:a}}function $x(e){let t=e.match(/(?:每|every)\s*(\d{1,3})\s*(?:分钟|minutes?)/iu)?.[1];if(t)return`${t}m`;let n=e.match(/(?:每|every)\s*(\d{1,2})\s*(?:小时|hours?)/iu)?.[1];return n?`${n}h`:/每小时|every hour|hourly/iu.test(e)?`1h`:(/每天|每日|早上|上午|daily|every day/iu.test(e),`1d`)}function eS(e,t){return/(每周|星期|周[一二三四五六日天]|weekly|every\s+(?:mon|tues|wednes|thurs|fri|satur|sun)day|\d{1,2}\s*[::]\s*\d{2})/iu.test(e)?t(`schedule.unsupportedCalendar`):null}function tS(e,t){return Zx(e,[`检查内容`,`监控内容`,`目标`,`Check target`,`Monitor target`,`Target`])||e.replace(/^(?:为当前 Goal |for the current Goal )?(?:添加|配置|创建|add|configure|create)?\s*(?:定时检查|监控|scheduled check|monitor)[::]?/iu,``).split(/\r?\n/u)[0].trim()||t(`schedule.defaultTarget`)}function nS(e){return/(mr|pr).{0,8}(合并|merge)/iu.test(e)?`pr_merged`:/发布完成|上线完成|release (?:is )?complete|deployment (?:is )?complete/iu.test(e)?`release_complete`:`goal_complete`}function rS(e,t){let n=e.toLowerCase();return t.find(e=>n.includes(e.agentId.toLowerCase())||n.includes(e.label.toLowerCase()))}function iS(e){let t=Zx(e,[`标题`,`任务标题`,`Todo 标题`]),n=Zx(e,[`内容`,`任务内容`,`Todo 内容`]);if(t)return[t,n].filter(Boolean).join(`:`).slice(0,400);let r=e.match(/[「“"]([^」”"]{2,200})[」”"]/u)?.[1];return r?r.trim():e.replace(/^(请|帮我|给我|为当前 Goal |新增|新建|创建|添加|加上|加一个|记一个)+/u,``).replace(/^(一个\s*)?(普通\s*)?(todo|待办|任务)(?:\s*到\s*Tasks?)?[::\s]*/iu,``).replace(/[。;;,,]\s*(?:不要|不需要|无需|禁止|别|暂不).{0,80}(?:heartbeat|心跳|定时|监控|执行).*$/iu,``).replace(/[,,]\s*(并且|然后|再)?\s*(交给|分配给|让).+$/u,``).replace(/\s*(交给|分配给|让)\s+.+$/u,``).trim().slice(0,400)||`推进当前 Goal 的下一项工作`}var aS=new Set([`image/png`,`image/jpeg`,`image/webp`,`image/gif`]),oS=5242880,sS=4;function cS(e,t){return new Promise((n,r)=>{let i=new FileReader;i.onerror=()=>r(Error(t(`composer.imageReadError`,{name:e.name}))),i.onload=()=>n({dataUrl:String(i.result??``),id:crypto.randomUUID(),mimeType:e.type,name:e.name,size:e.size}),i.readAsDataURL(e)})}function lS({agents:e=[{agentId:`codex`,available:!0,capability:`代码与项目执行`,label:`Codex`}],callbacks:t={},goalArchiveLoadState:n={error:null,phase:`ready`},managerChannelBinding:r,managerRuntime:i,model:a,readOnly:o=!1,selectedAgentId:s,selectedGoalId:c,statusSourceControl:l}){let{locale:u,t:d}=Ji(),[f,p]=(0,B.useState)(c??null),[m,h]=(0,B.useState)(s??e.find(e=>e.available)?.agentId??`codex`),[g,_]=(0,B.useState)(null),[v,y]=(0,B.useState)(!1),[b,x]=(0,B.useState)(null),[S,C]=(0,B.useState)({}),[w,T]=(0,B.useState)(`chat`),[E,D]=(0,B.useState)(!1),[O,k]=(0,B.useState)(!1),[ee,te]=(0,B.useState)(!1),[A,j]=(0,B.useState)(()=>{try{let e=window.sessionStorage.getItem(`loopx-pw-composer-drafts`),t=e?JSON.parse(e):{};return t&&typeof t==`object`&&!Array.isArray(t)?t:{}}catch{return{}}}),[M,ne]=(0,B.useState)(!1),[N,P]=(0,B.useState)([]),[re,ie]=(0,B.useState)(null),[ae,F]=(0,B.useState)(null),[oe,I]=(0,B.useState)(()=>new Set),[se,L]=(0,B.useState)(()=>new Set),[ce,le]=(0,B.useState)(`idle`),[ue,de]=(0,B.useState)([]),[R,fe]=(0,B.useState)(!1),[pe,me]=(0,B.useState)(Nx),[he,ge]=(0,B.useState)({}),[_e,ve]=(0,B.useState)([]),ye=(0,B.useRef)(!1),be=(0,B.useRef)(NaN),xe=(0,B.useRef)(null),Se=(0,B.useRef)(null),Ce=(0,B.useRef)(null),we=(0,B.useRef)(new Set),Te=(0,B.useRef)(new Set),[Ee,De]=(0,B.useState)(null),z=c===void 0?f:c,Oe=s??m,ke=`${z??`manager`}:${Oe}`,Ae=A[ke]??``;(0,B.useEffect)(()=>{P([]),ie(null)},[ke]);function je(e,t){j(n=>{let r={...n};t?r[e]=t:delete r[e];try{window.sessionStorage.setItem(`loopx-pw-composer-drafts`,JSON.stringify(r))}catch{}return r})}function Me(e){je(ke,e)}function Ne(e){let t=A[ke]?.trimEnd();Me(t?`${t}\n${e}`:e),window.requestAnimationFrame(()=>xe.current?.focus())}(0,B.useEffect)(()=>{let e=xe.current;e&&(e.style.height=`auto`,e.style.height=`${Math.min(e.scrollHeight,120)}px`)},[Ae]);let Pe=(0,B.useMemo)(()=>a.goals.map(e=>{let t=he[e.goalId];return t?{...e,repository:{branch:t.branch,identity:t.identity,label:t.label,readOnly:!0}}:e}),[he,a.goals]),Fe=(0,B.useMemo)(()=>Pe.filter(e=>My(e)===`needs_you`).length,[Pe]),Ie=(0,B.useMemo)(()=>Pe.filter(e=>My(e)===`needs_you`&&(e.needsYouBlocking||e.state===`等你`)).length,[Pe]),Le=Pe.find(e=>e.goalId===z)??null,Re=g?.kind===`settings`,ze=z,Be=(0,B.useMemo)(()=>{let e=Object.values(S).filter(e=>e.actionKind===`heartbeat.bind`&&e.goalId&&e.status===`applied`).map(e=>({id:`schedule:${e.goalId}:heartbeat`,kind:`schedule`,schedule:{agentId:Oe,executionHistory:[],goalId:e.goalId,label:e.title,nextRunAt:d(`drawer.schedulePending`),notificationRule:d(`drawer.scheduleDefaultNotification`),schedule:e.fields.find(e=>e.key===`cadence`)?.value??d(`schedule.summary`),scheduleId:`${e.goalId}:heartbeat`,scheduleKind:`heartbeat`,status:e.status===`applied`?`active`:`draft`,stopCondition:e.fields.find(e=>e.key===`stop_condition`)?.value??d(`drawer.scheduleDefaultStop`),timezone:e.fields.find(e=>e.key===`timezone`)?.value??`Asia/Shanghai`}})),t=[...Ux(a,ze,d),...a.timeline??[],...e,...Lx(Object.values(S)).filter(e=>e.actionKind!==`heartbeat.bind`||e.status!==`applied`).map(e=>({id:`proposal:${e.previewId}`,kind:`proposal`,proposal:e}))];return[...new Map(t.map(e=>[e.id,e])).values()].filter(e=>e.kind!==`proposal`||![`stale`,`error`].includes(e.proposal.status)||ue.includes(e.proposal.previewId)).filter(e=>!z||e.kind===`message`?!0:e.kind===`proposal`?!e.proposal.goalId||e.proposal.goalId===z:e.kind===`attention`?e.attention.goalId===z:e.kind===`run`?e.run.goalId===z:e.kind===`schedule`?e.schedule.goalId===z:e.output.goalId===z)},[ze,a,S,Oe,z,ue,d]),Ve=(0,B.useMemo)(()=>b?Be.filter(e=>e.kind===`message`?!0:e.kind===`run`?e.run.runId===b.runId:e.kind===`output`&&e.output.runId===b.runId):Be,[b,Be]);(0,B.useEffect)(()=>{if(!b)return;let e=Be.find(e=>e.kind===`run`&&e.run.runId===b.runId);!e||e.kind!==`run`||JSON.stringify({completedSteps:b.completedSteps,latestActivity:b.latestActivity,messages:b.sessionMessages,sessionStatus:b.sessionStatus,status:b.status,totalSteps:b.totalSteps})!==JSON.stringify({completedSteps:e.run.completedSteps,latestActivity:e.run.latestActivity,messages:e.run.sessionMessages,sessionStatus:e.run.sessionStatus,status:e.run.status,totalSteps:e.run.totalSteps})&&x(e.run)},[b,Be]);let He=(0,B.useMemo)(()=>Be.flatMap(e=>e.kind===`message`?[e.message]:[]),[Be]),Ue=(0,B.useMemo)(()=>Le?Be.flatMap(e=>e.kind===`message`?[e.message]:[]):[],[Be,Le]);(0,B.useEffect)(()=>{Le||E||He.some(e=>e.pending)&&k(!0)},[E,He,Le]),(0,B.useEffect)(()=>{!Le||w===`chat`||Ue.some(e=>e.pending)&&te(!0)},[Ue,Le,w]);let We=(0,B.useMemo)(()=>Be.filter(e=>e.kind===`message`||e.kind===`proposal`&&ue.includes(e.proposal.previewId)),[Be,ue]),Ge=We[We.length-1],Ke=Ge?.kind===`message`?Ge.message.text.length:0;(0,B.useEffect)(()=>{if(!E||!Se.current)return;let e=window.requestAnimationFrame(()=>{Se.current&&(Se.current.scrollTop=Se.current.scrollHeight)});return()=>window.cancelAnimationFrame(e)},[We.length,E,Ke]);let qe=(0,B.useMemo)(()=>{if(g?.kind===`settings`)return null;if(g?.kind===`attention`)return{kind:`attention`,item:Gd(g.item,a.attentionHistory??a.userTodos)};if(g?.kind===`goal`){let e=Pe.find(e=>e.goalId===g.item.goalId);return e?{item:e,kind:`goal`}:g}if(g?.kind!==`run`)return g;let e=Be.find(e=>e.kind===`run`&&e.run.runId===g.item.runId);return e?{item:e.run,kind:`run`}:g},[Be,g,Pe,a.attentionHistory,a.userTodos]);(0,B.useEffect)(()=>{if(o){ge({}),ve([]);return}let e=!1;return Promise.all([Wg(),t_()]).then(([t,n])=>{e||(ge(Object.fromEntries(t.map(e=>[e.goal_id,e.repository]))),ve(n))}).catch(()=>{}),()=>{e=!0}},[o]),(0,B.useEffect)(()=>{if(!R)return;function e(e){e.key===`Escape`&&fe(!1)}return document.addEventListener(`keydown`,e),()=>document.removeEventListener(`keydown`,e)},[R]),(0,B.useEffect)(()=>{if(z||!Be.length)return;if(!ye.current){ye.current=!0;try{be.current=Date.parse(window.localStorage.getItem(`loopx-pw-last-visit`)??``),window.localStorage.setItem(`loopx-pw-last-visit`,new Date().toISOString())}catch{be.current=NaN}}let e=be.current,t=Be.filter(e=>e.kind===`run`).map(e=>e.run),n=t=>{let n=Date.parse(t??``);return!Number.isNaN(e)&&!Number.isNaN(n)&&n>e},r={attention:Fe,done:t.filter(e=>e.status===`completed`&&n(e.latestActivity)).length,failed:t.filter(e=>(e.status===`failed`||e.status===`interrupted`)&&n(e.latestActivity)).length};De(e=>e?.attention===r.attention&&e.done===r.done&&e.failed===r.failed?e:r)},[Be,Fe,z]),(0,B.useEffect)(()=>{if(o){C({});return}let e=!1;return Ih(z?{goalId:z}:{contextKind:`manager`}).then(t=>{if(e)return;let n=Object.fromEntries(t.filter(e=>[`preview_ready`,`gated`,`deferred`,`applying`].includes(e.status)||e.action_kind===`operation.execute`&&e.status===`applied`).map(e=>{let t=Jx(e,d);return[t.previewId,t]}));C(e=>({...e,...n}))}).catch(()=>{}),()=>{e=!0}},[o,z,d]);async function Je(e,n={}){if(o)throw Error(d(`source.readOnlyWriteError`));let r;try{r=t.onPreviewAction?await t.onPreviewAction(e):Jx(await Ph(e),d)}catch(t){if(!(t instanceof kh)||t.payload.error_code!==`action_preview_gate`)throw t;let n=t.payload.gate&&typeof t.payload.gate==`object`?t.payload.gate:{},i=(Array.isArray(n.candidates)?n.candidates:[]).flatMap(e=>{if(!e||typeof e!=`object`)return[];let t=e;return typeof t.workspace_ref==`string`&&typeof t.label==`string`?[{label:t.label,workspaceRef:t.workspace_ref}]:[]}),a=String(n.kind??`workspace_selection_required`),o=a===`agent_binding_required`||a===`agent_identity_selection_required`;r={actionKind:e.actionKind,fields:i.map(e=>({key:`workspace_ref:${e.workspaceRef}`,label:e.label,value:e.workspaceRef})),gate:{kind:a,nextAction:typeof n.next_action==`string`?n.next_action:void 0,summary:String(n.summary??d(`proposal.workspaceGate.defaultSummary`))},impact:d(o?`proposal.workspaceGate.agentImpact`:`proposal.workspaceGate.selectionImpact`),previewId:`workspace-choice-${Date.now().toString(36)}`,sourceRequest:e,status:`gated`,title:d(o?`proposal.workspaceGate.agentTitle`:`proposal.workspaceGate.selectionTitle`),workspaceCandidates:i}}return de(e=>e.includes(r.previewId)?e:[...e,r.previewId]),C(e=>({...e,[r.previewId]:r})),n.select!==!1&&_({item:r,kind:`proposal`}),r}function Ye(){it(null),je(`manager:${Oe}`,d(`composer.createGoalTemplate`)),window.requestAnimationFrame(()=>xe.current?.focus())}async function Xe(e,n){fe(!1);let r={delete:`Deleted from the owner workspace`,resume:`Resumed from the owner workspace`,stop:`Stopped from the owner workspace`},i={delete:d(`proposal.summary.lifecycleDelete`,{title:e.title}),resume:d(`proposal.summary.lifecycleResume`,{title:e.title}),stop:d(`proposal.summary.lifecycleStop`,{title:e.title})},a=null,o=!1;try{if(n===`stop`){if(we.current.has(e.goalId))return;we.current.add(e.goalId),I(new Set(we.current)),_(null),a={goalId:e.goalId,next:`stopped`,optimisticApplied:!0,previous:e.activationState},F(d(`feedback.applying`,{title:i.stop})),t.onGoalActivationStateChange?.(e.goalId,`stopped`)}if(t.onExecuteGoalLifecycle){if(n===`delete`)throw Error(`The selected status source does not authorize Goal deletion.`);let a=await t.onExecuteGoalLifecycle({goalId:e.goalId,operation:n,reason:r[n]});if(!a.projectionVerified)throw Error(`Goal lifecycle projection did not verify.`);o=!0,t.onGoalActivationStateChange?.(e.goalId,a.activationState),F(d(`feedback.completed`,{title:i[n]})),n===`stop`&&it(null),await et([e.goalId]);return}let s=await Je({actionKind:`goal.lifecycle`,context:{kind:`goal_directory`,goal_id:e.goalId},idempotencyKey:`workspace-goal-${n}-${e.goalId}-${Date.now().toString(36)}`,normalizedParameters:{goal_id:e.goalId,operation:n,reason:r[n]},summary:i[n]},{select:n!==`stop`});if(s.goalId!==e.goalId||s.lifecycleOperation!==n)throw _(null),Error(d(`actionReview.targetChanged`));n===`stop`&&(s.reviewPlan?.interaction===`direct`?(o=!0,await tt(s,{lifecycleProjection:a??void 0,presentation:`feedback`})):(a&&t.onGoalActivationStateChange?.(a.goalId,a.previous),F(s.gate?d(`feedback.gateRequired`,{summary:s.gate.summary}):d(`feedback.notCompleted`,{status:s.status})),_({item:s,kind:`proposal`})))}catch(e){a&&!o&&t.onGoalActivationStateChange?.(a.goalId,a.previous),F(d(`feedback.executionFailed`,{error:e instanceof Error?e.message:String(e)}))}finally{n===`stop`&&(we.current.delete(e.goalId),I(new Set(we.current)))}}function Ze(e,t){Me(d(t?e===`heartbeat`?`composer.heartbeatTemplate`:`composer.monitorTemplate`:e===`heartbeat`?`composer.heartbeatTemplateWithoutGoal`:`composer.monitorTemplateWithoutGoal`)),_(null),window.requestAnimationFrame(()=>xe.current?.focus())}async function Qe(e,n,r=``){let i=await t.onRequestScheduleConfig?.(e,n);if(i){de(e=>e.includes(i.previewId)?e:[...e,i.previewId]),C(e=>({...e,[i.previewId]:i})),_({item:i,kind:`proposal`});return}if(!n){Me(d(e===`heartbeat`?`composer.heartbeatGoalQuestion`:`composer.monitorGoalQuestion`));return}let a=Date.now().toString(36);await Je({actionKind:e===`heartbeat`?`heartbeat.bind`:`monitor.create`,context:{kind:`schedule`,goal_id:n},idempotencyKey:`workspace-${e}-${n}-${a}`,normalizedParameters:e===`heartbeat`?{agent_id:Oe,cadence:$x(r),goal_id:n,stop_condition:nS(r),timezone:`Asia/Shanghai`}:{agent_id:Oe,cadence:$x(r),goal_id:n,stop_condition:nS(r),target:tS(r,d),target_key:`goal-${n}`,timezone:`Asia/Shanghai`},summary:e===`heartbeat`?d(`proposal.summary.heartbeat`):d(`proposal.summary.monitor`,{target:tS(r,d)})})}async function $e(e){if(!Te.current.has(e.todoId)){Te.current.add(e.todoId),L(new Set(Te.current)),F(d(`feedback.preparingPreview`,{title:e.text}));try{await Je({actionKind:`todo.update`,context:{goal_id:e.goalId,kind:`todo`,todo_id:e.todoId},idempotencyKey:`workspace-todo-${e.todoId}-complete-${Date.now().toString(36)}`,normalizedParameters:{goal_id:e.goalId,operation:`complete`,todo_id:e.todoId},summary:d(`tasks.markComplete`,{name:e.text})}),F(null)}catch(e){F(d(`feedback.previewFailed`,{error:e instanceof Error?e.message:String(e)}))}finally{Te.current.delete(e.todoId),L(new Set(Te.current))}}}function et(e){let n=t.onReconcileStatus,r=n?n({invalidateGoalIds:e}):t.onRefresh?.();return Promise.resolve(r).catch(()=>{F(d(`feedback.goalRefreshFailed`))})}async function tt(e,n={}){if(e.reviewPlan&&!e.reviewPlan.canApply)return;let r=n.presentation!==`feedback`,i=e.actionKind===`goal.lifecycle`&&e.goalId&&(e.lifecycleOperation===`stop`||e.lifecycleOperation===`resume`)?{goalId:e.goalId,next:e.lifecycleOperation===`stop`?`stopped`:`active`,optimisticApplied:!1,previous:a.goals.find(t=>t.goalId===e.goalId)?.activationState??(e.lifecycleOperation===`stop`?`active`:`stopped`)}:null,o=n.lifecycleProjection??i;F(d(`feedback.applying`,{title:e.title}));let s={...e,reviewPlan:e.reviewPlan?{...e.reviewPlan,interaction:`pending`,reason:`apply_pending`,canApply:!1}:void 0,status:`applying`};C(t=>({...t,[e.previewId]:s})),r&&_({item:s,kind:`proposal`}),o&&!o.optimisticApplied&&t.onGoalActivationStateChange?.(o.goalId,o.next);try{if(t.onApplyProposal){await t.onApplyProposal(e);let n={...e,status:`applied`};C(t=>({...t,[e.previewId]:n})),r&&_({item:n,kind:`proposal`}),F(d(`feedback.completed`,{title:e.title})),e.actionKind===`goal.lifecycle`&&((e.lifecycleOperation===`stop`||e.lifecycleOperation===`delete`)&&it(null),e.lifecycleOperation===`delete`&&e.goalId&&t.onGoalDeleted?.(e.goalId),et(e.goalId?[e.goalId]:void 0));return}let n=await Lh(e.previewId);if(n.proposal.proposal_id!==e.previewId||n.proposal.action_kind!==e.actionKind||e.actionKind===`goal.lifecycle`&&(n.proposal.normalized_parameters.goal_id!==e.goalId||qx(n.proposal)!==e.lifecycleOperation))throw new kh(d(`actionReview.targetChanged`),{error_code:`action_response_mismatch`});let i=Jx(n.proposal,d);if(C(t=>({...t,[e.previewId]:i})),r&&_({item:i,kind:`proposal`}),i.reviewPlan?.interaction!==`completed`){o&&t.onGoalActivationStateChange?.(o.goalId,o.previous),_({item:i,kind:`proposal`}),F(n.proposal.status===`stale`?d(`feedback.stale`):d(`actionReview.${i.reviewPlan.reason}`));return}F(d(`feedback.completed`,{title:i.title})),i.actionKind===`todo.create`&&await t.onRefresh?.(),i.actionKind===`goal.lifecycle`&&(i.lifecycleOperation===`stop`||i.lifecycleOperation===`delete`)&&it(null),i.actionKind===`goal.lifecycle`&&i.lifecycleOperation===`delete`&&i.goalId&&t.onGoalDeleted?.(i.goalId),i.actionKind===`goal.lifecycle`&&et(i.goalId?[i.goalId]:void 0)}catch(n){if(o&&t.onGoalActivationStateChange?.(o.goalId,o.previous),n instanceof kh&&n.payload.error_code===`protected_action`){let r=n.payload.gate,i=r&&typeof r==`object`?r:{},a={...e,reviewPlan:e.reviewPlan?{...e.reviewPlan,interaction:`gated`,reason:`authority_gate`,canApply:!1}:void 0,gate:{kind:String(i.kind??`protected_action`),nextAction:typeof i.next_action==`string`?i.next_action:void 0,summary:String(i.summary??n.message)},status:`gated`};C(t=>({...t,[e.previewId]:a})),_({item:a,kind:`proposal`}),F(d(`feedback.gateRequired`,{summary:a.gate.summary})),e.actionKind===`goal.create`&&e.goalId&&(t.onRefresh?.(),it(e.goalId));return}let r=n instanceof kh&&wy(n.payload),i=n instanceof kh&&n.payload.error_code===`action_response_mismatch`,a={...e,reviewPlan:e.reviewPlan?{...e.reviewPlan,interaction:r?`refresh`:`repair`,reason:i?`readback_unverified`:r?`stale_proposal`:`apply_failed`,canApply:!1}:void 0,errorMessage:n instanceof Error?n.message:String(n),status:r?`stale`:`error`};C(t=>({...t,[e.previewId]:a})),_({item:a,kind:`proposal`}),F(d(`feedback.executionFailed`,{error:a.errorMessage}))}}let nt={...t,onOpenRunSession:async e=>{e.goalId!==z&&it(e.goalId),T(`chat`),await t.onOpenRunSession?.(e),x(e),_(null)},onOpenGoal:e=>{it(e),et([e])},onOpenGoalView:e=>{T(e),e===`chat`&&x(null),_(null)},onOpenOutput:e=>{e.goalId!==z&&it(e.goalId),T(`files`),t.onOpenOutput?.(e)},onApplyProposal:tt,onCancelProposal:async e=>{_(null),C(t=>{let n={...t};return delete n[e.previewId],n});try{t.onCancelProposal?.(e),t.onCancelProposal||await Rh(e.previewId)}catch(t){C(t=>({...t,[e.previewId]:e})),F(d(`feedback.cancelFailed`,{error:t instanceof Error?t.message:String(t)}))}},onTransitionProposal:async(e,t)=>{let n=Jx(await zh(e.previewId,t),d);de(e=>e.includes(n.previewId)?e:[...e,n.previewId]),C(r=>{let i={...r};return t===`regenerate`&&delete i[e.previewId],i[n.previewId]=n,i}),_({item:n,kind:`proposal`})},onSelectWorkspaceCandidate:async(e,t)=>{e.sourceRequest&&(C(t=>{let n={...t};return delete n[e.previewId],n}),await Je({...e.sourceRequest,idempotencyKey:`${e.sourceRequest.idempotencyKey}-${t}`,normalizedParameters:{...e.sourceRequest.normalizedParameters,workspace_ref:t}}))},onPreviewAction:Je,onRequestScheduleConfig:(e,t)=>Ze(e,t),onOpenNotificationSettings:e=>_({goalId:e,kind:`settings`,tab:`lark`}),onFetchNotificationTargets:()=>cg(),onSetupGoalChannel:e=>ug(e),onToggleGoalAutoNotify:e=>dg(e),onUpdateSchedule:async(e,t)=>{let n=Date.now().toString(36),r=e.scheduleKind===`heartbeat`;await Je({actionKind:r?`heartbeat.bind`:`monitor.update`,context:{kind:`schedule`,goal_id:e.goalId},idempotencyKey:`workspace-monitor-${e.scheduleId}-${t}-${n}`,normalizedParameters:{agent_id:e.agentId??Oe,...!r&&t===`run_now`?{endpoint_id:Oe}:{},...t===`edit`?{cadence:`2h`,...r?{timezone:e.timezone??`Asia/Shanghai`}:{}}:{},goal_id:e.goalId,operation:t,...!r&&t===`run_now`&&e.sessionId?{session_id:e.sessionId}:{},...r?{}:{todo_id:e.scheduleId}},summary:t===`pause`?`暂停自动运行:${e.label}`:t===`resume`?`恢复自动运行:${e.label}`:t===`run_now`?`立即运行:${e.label}`:t===`stop`?`停止自动运行:${e.label}`:`编辑自动运行生命周期:${e.label}`})}},rt=o?{onOpenGoal:nt.onOpenGoal,onOpenGoalView:nt.onOpenGoalView,onOpenOutput:nt.onOpenOutput}:nt;function it(e){p(e),D(!1),k(!1),te(!1),x(null),_(null),T(`tasks`),fe(!1),t.onSelectGoal?.(e)}function at(e){h(e),t.onSelectAgent?.(e)}function ot(e){me(e),Px(e)}async function st(n){let r=n?[]:N,i=(n??Ae).trim()||(r.length?d(`composer.imageAnalysisPrompt`):``);if(!(!i||M)){n||(Me(``),P([])),ie(null),ne(!0);try{if(r.length){z?w!==`chat`&&te(!0):k(!0);let e=await t.onSendMessage?.(i,Oe,z,r);e&&await Je(e);return}let n=sb(i,{agents:e.map(e=>({agentId:e.agentId,label:e.label})),goalId:z,todos:(Le?.agentTodos??[]).map(e=>({text:e.text,todoId:e.todoId}))});if(n.route===`clarify`){Me(i);let e=d(`composer.clarifySingleAction`);n.missingFields.includes(`resume_when`)&&(e=d(`composer.clarifyDefer`)),F(e);return}if(n.actionKind===`goal.create`){let e=Qx(i,d),t=Yx(e.title);await Je({actionKind:`goal.create`,context:{kind:`manager`,goal_id:null,natural_language:i},idempotencyKey:`workspace-goal-intent-${t}-${Date.now().toString(36)}`,normalizedParameters:{agent_id:Oe,completion_criteria:e.completionCriteria,execution_boundary:e.executionBoundary,goal_id:t,heartbeat:{cadence:$x(i),enabled:n.normalizedParameters.heartbeat_enabled===!0,timezone:`Asia/Shanghai`},initial_todos:e.initialTodos,objective:e.objective,permission:e.permission,stop_condition:nS(i),title:e.title,workspace_ref:`current`},summary:d(`proposal.summary.goalCreate`,{title:e.title})});return}if(z&&n.actionKind===`heartbeat.bind`){await Qe(`heartbeat`,z,i);return}if(z&&n.actionKind===`monitor.create`){let e=eS(i,d);if(e){Me(i),F(e);return}await Qe(`monitor`,z,i);return}let a=rS(i,e);if(z&&a&&n.actionKind===`agent.bind`){await Je({actionKind:`agent.bind`,context:{kind:`goal`,goal_id:z,natural_language:i},idempotencyKey:`workspace-agent-bind-${z}-${a.agentId}-${Date.now().toString(36)}`,normalizedParameters:{agent_id:a.agentId,goal_id:z},summary:`将 ${a.label} 绑定到 ${Le?.title??z}`});return}if(z&&n.actionKind===`todo.create`){if(n.normalizedParameters.start_execution===!0){await Je({actionKind:`todo.create`,context:{kind:`goal`,goal_id:z,natural_language:i},idempotencyKey:`workspace-task-start-${z}-${Date.now().toString(36)}`,normalizedParameters:{endpoint_id:a?.agentId??Oe,goal_id:z,start_execution:!0,text:i},summary:`交给 Agent 执行:${i.slice(0,120)}`});return}let e=a?.agentId??(/(交给|分配给|让).{0,24}(agent|codex|claude|kiro|kimi)/iu.test(i)?Oe:null);await Je({actionKind:`todo.create`,context:{kind:`goal`,goal_id:z,natural_language:i},idempotencyKey:`workspace-todo-create-${z}-${Date.now().toString(36)}`,normalizedParameters:{...e?{endpoint_id:e}:{},goal_id:z,text:iS(i)},summary:`创建 Todo:${iS(i)}`});return}let o=Le?.agentTodos.find(e=>i.includes(e.todoId)||i.includes(e.text)),s=typeof n.normalizedParameters.operation==`string`?n.normalizedParameters.operation:null;if(z&&o&&n.actionKind===`todo.update`&&s){await Je({actionKind:`todo.update`,context:{kind:`todo`,goal_id:z,todo_id:o.todoId,natural_language:i},idempotencyKey:`workspace-todo-update-${o.todoId}-${s}-${Date.now().toString(36)}`,normalizedParameters:{agent_id:Oe,...s===`reassign`&&a?{endpoint_id:a.agentId}:{},...s===`block`?{note:i}:{},...s===`defer`&&typeof n.normalizedParameters.resume_when==`string`?{resume_when:n.normalizedParameters.resume_when}:{},goal_id:z,operation:s,todo_id:o.todoId},summary:`更新 Todo:${o.text}`});return}z?w!==`chat`&&te(!0):k(!0);let c=await t.onSendMessage?.(i,Oe,z);c&&await Je(c)}catch(e){n||(Me(i),P(r));let t=e instanceof Error?e.message:d(`feedback.sendGenericError`);F(d(`feedback.sendFailed`,{error:t}))}finally{ne(!1)}}}let ct=e.find(e=>e.agentId===Oe)?.label??Oe,lt=!Le&&Ae.startsWith(d(`composer.createGoalDraftLead`)),ut=Be.filter(e=>e.kind===`run`&&!!e.run.sessionId&&!!e.run.canInterrupt&&(e.run.status===`running`||e.run.status===`queued`)).length;async function dt(e){if(!e?.length)return;let t=sS-N.length,n=Array.from(e).slice(0,Math.max(0,t)),r=n.find(e=>!aS.has(e.type)),i=n.find(e=>e.size>oS);if(t<=0){ie(d(`composer.imageCountError`,{count:sS}));return}if(r){ie(d(`composer.imageTypeError`));return}if(i){ie(d(`composer.imageSizeError`,{size:oS/1024/1024}));return}try{let t=await Promise.all(n.map(e=>cS(e,d)));P(e=>[...e,...t].slice(0,sS)),ie(e.length>n.length?d(`composer.imageCountError`,{count:sS}):null)}catch(e){ie(e instanceof Error?e.message:d(`composer.imageReadGenericError`))}finally{Ce.current&&(Ce.current.value=``)}}function ft(e){let t=Array.from(e.clipboardData.items).filter(e=>e.kind===`file`&&e.type.startsWith(`image/`)).flatMap(e=>{let t=e.getAsFile();return t?[t]:[]});t.length&&(e.preventDefault(),dt(t))}async function pt(){let e=await t_();ve(e)}async function mt(){await Promise.all([pt(),t.onRefresh?.()])}async function ht(){if(!(!t.onRefresh||ce===`loading`)){le(`loading`);try{await t.onRefresh(),le(`done`)}catch{le(`error`)}window.setTimeout(()=>le(`idle`),1800)}}return Re?(0,V.jsx)(Ax,{callbacks:rt,focusGoalConnection:!!(g?.kind===`settings`&&g.goalId),goalNotifications:a.goalNotifications??[],goals:Pe,initialGoalId:g?.kind===`settings`?g.goalId??z:z,initialTab:g?.kind===`settings`?g.tab??`lark`:`lark`,onChanged:()=>void mt(),onClose:()=>_(null),onThemeChange:ot,theme:pe}):(0,V.jsx)(Fx,{drawer:qe?(0,V.jsx)(gb,{agents:e,attentionHistory:a.attentionHistory??a.userTodos,onSelectAttention:e=>_({kind:`attention`,item:e}),callbacks:rt,goalNotifications:a.goalNotifications??[],goals:Pe,inspectorExpanded:v,larkConnections:o?[]:_e,onClose:()=>{qe.kind===`proposal`&&[`applied`,`rejected`].includes(qe.item.status)&&(qe.item.actionKind!==`heartbeat.bind`||qe.item.status!==`applied`)&&C(e=>{let t={...e};return delete t[qe.item.previewId],t}),y(!1),_(null)},onToggleInspectorSize:()=>y(e=>!e),readOnly:o,runs:Be.flatMap(e=>e.kind===`run`?[e.run]:[]),selection:qe}):null,drawerMode:qe?.kind===`todo`?v?`inspector-full`:`inspector`:`panel`,drawerOpen:qe!==null,mobileSidebarOpen:R,onCloseMobileSidebar:()=>fe(!1),theme:pe,main:(0,V.jsxs)(`div`,{className:`personal-channel`,children:[(0,V.jsx)(By,{agents:e,managerChatOpen:E,managerChannelBinding:r,managerRuntime:i,mobileNavigationOpen:R,onOpenGoalCapabilities:Le?()=>_({goalId:Le.goalId,kind:`settings`,tab:`capabilities`}):void 0,onOpenGoalDetail:Le&&!Le.loadState?()=>_({item:Le,kind:`goal`}):void 0,onRefresh:t.onRefresh?()=>void ht():void 0,onOpenNavigation:()=>fe(!0),onOpenManagerChat:()=>{k(!1),D(!0)},onSelectGoalTab:e=>{T(e),e===`chat`&&(x(null),te(!1))},onSelectAgent:at,onReturnManagerHome:()=>{D(!1),k(!1),window.requestAnimationFrame(()=>Se.current?.scrollTo({behavior:`smooth`,top:0}))},selectedAgentId:Oe,refreshState:ce,readOnlySourceLabel:o?l?.activeSource.label:void 0,selectedGoal:Le,selectedGoalTab:w}),(0,V.jsxs)(`div`,{className:`personal-channel-scroll`,ref:Se,children:[!Le&&!E&&Ee&&Ee.done+Ee.failed+Ee.attention>0?(0,V.jsxs)(`section`,{className:`personal-digest-card`,"aria-label":d(`digest.away`),children:[(0,V.jsx)(`strong`,{children:d(`digest.away`)}),(0,V.jsxs)(`div`,{className:`personal-digest-stats`,children:[(0,V.jsxs)(`span`,{children:[(0,V.jsx)(`b`,{children:Ee.done}),d(`digest.completed`)]}),(0,V.jsxs)(`span`,{children:[(0,V.jsx)(`b`,{children:Ee.failed}),d(`digest.failed`)]}),(0,V.jsxs)(`span`,{children:[(0,V.jsx)(`b`,{children:Ee.attention}),d(`digest.needsYou`)]})]})]}):null,!Le&&!E?(0,V.jsxs)(`section`,{className:`personal-manager-greeting`,children:[(0,V.jsx)(`span`,{children:(0,V.jsx)($p,{size:20})}),(0,V.jsxs)(`div`,{children:[(0,V.jsx)(`strong`,{children:d(`home.greeting`)}),(0,V.jsx)(`p`,{children:a.goals.some(e=>e.activationState===`active`&&e.loadState)?d(`startup.partial`):(0,V.jsxs)(V.Fragment,{children:[d(`home.waitingCount`,{count:Fe}),` `,d(`home.blockingSummary`,{count:Ie})]})})]})]}):null,Le?.loadState?(0,V.jsx)(`section`,{className:`personal-manager-greeting`,role:`status`,"data-testid":`goal-status-loading`,children:(0,V.jsxs)(`div`,{children:[(0,V.jsx)(`strong`,{children:d(Le.loadState===`error`?`startup.goalError`:`startup.goalLoading`)}),(0,V.jsx)(`p`,{children:d(Le.loadError?`startup.error.${Le.loadError}`:`startup.independent`)}),Le.loadState===`error`?(0,V.jsx)(`button`,{className:`min-h-11 rounded-md border px-3 py-2 text-sm`,type:`button`,onClick:()=>void t.onRefresh?.(),children:d(`startup.retry`)}):null]})}):Le&&w===`tasks`?(0,V.jsx)(Hb,{historyEnabled:!o,goal:Le,items:Be,onDraftTaskFromMessage:o?void 0:e=>{Me(`创建一个 Task:${Ix(e)}`),F(d(`feedback.taskDraftCreated`)),window.requestAnimationFrame(()=>xe.current?.focus())},onOpenChat:()=>T(`chat`),onQuickComplete:o?void 0:$e,onSelect:_,quickCompletingTodoIds:se,selectedTodoId:qe?.kind===`todo`?qe.item.todoId:null,userTodos:a.userTodos}):Le&&w===`files`?(0,V.jsx)(Bx,{items:Be.filter(e=>e.kind===`output`),onSelect:_,reportState:a.periodicReports}):!Le&&!E?(0,V.jsx)(zx,{goals:Pe,onRetry:()=>void t.onRefresh?.(),onSelectGoal:it,systemHealth:a.systemHealth}):Le?(0,V.jsxs)(V.Fragment,{children:[Le&&b?.goalId===Le.goalId?(0,V.jsx)(Hx,{onClose:()=>x(null),onOpenDetails:()=>_({item:b,kind:`run`}),run:b}):null,(0,V.jsx)($y,{items:Ve,onSelect:_,selectedGoal:Le})]}):(0,V.jsx)($y,{items:We,onSelect:_,selectedGoal:null})]}),(0,V.jsx)(`div`,{className:`personal-composer-wrap`,children:o?(0,V.jsxs)(`div`,{className:`personal-read-only-notice`,children:[(0,V.jsx)(`strong`,{children:d(`source.readOnlyNoticeTitle`)}),(0,V.jsx)(`span`,{children:d(`source.readOnlyNoticeDescription`)})]}):(0,V.jsxs)(V.Fragment,{children:[!Le&&!E&&O&&He.length?(0,V.jsx)(Vx,{messages:He,onClose:()=>k(!1),onOpenConversation:()=>{k(!1),D(!0)}}):null,Le&&w!==`chat`&&ee&&Ue.length?(0,V.jsx)(Vx,{agentLabel:ct,messages:Ue,onClose:()=>te(!1),onDraftTask:w===`tasks`?e=>{Me(`创建一个 Task:${Ix(e)}`),F(d(`feedback.taskDraftCreated`)),window.requestAnimationFrame(()=>xe.current?.focus())}:void 0,onOpenConversation:()=>{te(!1),T(`chat`)},title:`${Le.title} · ${ct}`}):null,ae?(0,V.jsxs)(`div`,{className:`personal-action-feedback`,role:`status`,children:[(0,V.jsx)(`span`,{children:ae}),(0,V.jsx)(`button`,{"aria-label":d(`common.closeActionReceipt`),onClick:()=>F(null),type:`button`,children:(0,V.jsx)(nh,{size:14})})]}):null,(0,V.jsx)(`p`,{className:`personal-composer-hint`,children:Le?ut>0?d(`composer.goalRunningHint`,{agent:ct,count:ut}):d(`composer.goalMessageHint`,{agent:ct}):d(`composer.managerMessageHint`)}),Le?(0,V.jsxs)(`div`,{className:`personal-quick-prompts`,children:[(0,V.jsxs)(`button`,{"aria-label":d(`composer.nextAction`),className:`is-draft`,onClick:()=>Ne(d(`composer.nextActionPrompt`)),title:d(`composer.prepareDraft`),type:`button`,children:[(0,V.jsx)(km,{size:13}),(0,V.jsx)(`span`,{children:d(`composer.nextAction`)}),(0,V.jsx)(`small`,{className:`personal-prompt-subtle`,children:d(`composer.draft`)})]}),(0,V.jsxs)(`button`,{className:`is-immediate`,disabled:M,onClick:()=>void st(d(`composer.agentProgressPrompt`)),title:d(`composer.immediate`),type:`button`,children:[(0,V.jsx)(Um,{size:13}),(0,V.jsx)(`span`,{children:d(`composer.agentProgress`)}),(0,V.jsx)(`em`,{className:`personal-prompt-badge`,children:d(`composer.immediate`)})]}),(0,V.jsxs)(`button`,{"aria-label":d(`composer.monitor`),className:`is-draft`,onClick:()=>Ze(`monitor`,z),title:d(`composer.monitorHint`),type:`button`,children:[(0,V.jsx)(tm,{size:13}),(0,V.jsx)(`span`,{children:d(`composer.monitor`)}),(0,V.jsx)(`small`,{className:`personal-prompt-subtle`,children:d(`composer.draft`)})]})]}):(0,V.jsxs)(`div`,{className:`personal-quick-prompts`,children:[(0,V.jsxs)(`button`,{"aria-label":d(`composer.globalTasks`),className:`is-draft`,onClick:()=>Ne(d(`composer.globalTasksPrompt`)),title:d(`composer.prepareDraft`),type:`button`,children:[(0,V.jsx)(km,{size:13}),(0,V.jsx)(`span`,{children:d(`composer.globalTasks`)}),(0,V.jsx)(`small`,{className:`personal-prompt-subtle`,children:d(`composer.draft`)})]}),(0,V.jsxs)(`button`,{className:`is-immediate`,disabled:M,onClick:()=>void st(d(`composer.globalProgressPrompt`)),title:d(`composer.immediate`),type:`button`,children:[(0,V.jsx)(Um,{size:13}),(0,V.jsx)(`span`,{children:d(`composer.globalProgress`)}),(0,V.jsx)(`em`,{className:`personal-prompt-badge`,children:d(`composer.immediate`)})]}),(0,V.jsxs)(`button`,{"aria-label":d(`composer.createGoal`),className:`is-draft`,onClick:Ye,title:d(`composer.createGoalHint`),type:`button`,children:[(0,V.jsx)(Lm,{size:13}),(0,V.jsx)(`span`,{children:d(`composer.createGoal`)}),(0,V.jsx)(`small`,{className:`personal-prompt-subtle`,children:d(`composer.draft`)})]})]}),lt?(0,V.jsxs)(`div`,{className:`personal-goal-draft-status`,role:`status`,children:[(0,V.jsx)(`strong`,{children:d(`composer.createGoalDraft`)}),(0,V.jsx)(`span`,{children:d(`composer.createGoalDraftDescription`)})]}):null,N.length?(0,V.jsx)(`div`,{className:`personal-composer-images`,"aria-label":d(`composer.imagesPending`),children:N.map(e=>(0,V.jsxs)(`figure`,{children:[(0,V.jsx)(`img`,{alt:e.name,src:e.dataUrl}),(0,V.jsx)(`button`,{"aria-label":d(`composer.sentImageAlt`,{name:e.name}),onClick:()=>P(t=>t.filter(t=>t.id!==e.id)),type:`button`,children:(0,V.jsx)(nh,{size:13})})]},e.id))}):null,re?(0,V.jsx)(`p`,{className:`personal-composer-error`,role:`alert`,children:re}):null,(0,V.jsxs)(`div`,{className:`personal-channel-composer`,onDragOver:e=>{[...e.dataTransfer.items].some(e=>e.kind===`file`&&e.type.startsWith(`image/`))&&e.preventDefault()},onDrop:e=>{let t=[...e.dataTransfer.files].filter(e=>e.type.startsWith(`image/`));t.length&&(e.preventDefault(),dt(t))},children:[(0,V.jsxs)(`span`,{children:[(0,V.jsx)($p,{size:17}),e.find(e=>e.agentId===Oe)?.label??Oe]}),(0,V.jsx)(`button`,{"aria-label":d(`composer.addImage`),className:`personal-composer-attach`,disabled:M||N.length>=sS,onClick:()=>Ce.current?.click(),title:d(`composer.attachImageHint`),type:`button`,children:(0,V.jsx)(Pm,{size:17})}),(0,V.jsx)(`input`,{accept:`image/png,image/jpeg,image/webp,image/gif`,"aria-label":d(`composer.imagePicker`),className:`personal-composer-file-input`,disabled:M||N.length>=sS,multiple:!0,onChange:e=>void dt(e.target.files),ref:Ce,type:`file`}),(0,V.jsx)(`textarea`,{"aria-label":d(`composer.sendMessage`),onChange:e=>Me(e.target.value),onKeyDown:e=>{e.key===`Enter`&&!e.shiftKey&&!e.nativeEvent.isComposing&&(e.preventDefault(),st())},onPaste:ft,placeholder:Le?d(`composer.goalPlaceholder`,{goal:Le.title}):d(`composer.managerPlaceholder`),ref:xe,rows:1,value:Ae}),(0,V.jsx)(`button`,{"aria-label":d(lt?`composer.createGoal`:`composer.send`),disabled:!Ae.trim()&&N.length===0||M,onClick:()=>void st(),title:d(lt?`composer.createGoalHint`:`composer.sendMessageHint`),type:`button`,children:(0,V.jsx)(Um,{size:18})})]})]})})]}),sidebar:(0,V.jsx)(Rb,{attentionCount:Fe,goals:Pe,goalArchiveLoadState:n,goalLifecycleOperations:t.onExecuteGoalLifecycle?[`stop`,`resume`]:void 0,lifecycleBusyGoalIds:oe,onRequestGoalCreate:o?void 0:Ye,onRequestGoalLifecycle:o&&!t.onExecuteGoalLifecycle?void 0:(e,t)=>void Xe(e,t),onRetryGoalArchive:t.onRetryGoalArchive||t.onRefresh?()=>void(t.onRetryGoalArchive??t.onRefresh)?.():void 0,onOpenSettings:o?void 0:()=>_({kind:`settings`}),onSelectGoal:it,selectedGoalId:z,statusSourceControl:l},l?.activeSource.statusUrl??`/status.json`)})}function uS(e){return(e??``).replace(/\s+/gu,` `).trim()}function dS(e,t=120){let n=Array.from(e);return n.length<=t?e:`${n.slice(0,t-1).join(``)}…`}function fS(e,t,n){let r=uS(e);return!r||r===`暂无`?n?t(n):``:/refresh-state|latest_run|latest run-derived/iu.test(r)?t(`projection.refreshState`):/first read-only adapter tick|read-only adapter/iu.test(r)?t(`projection.firstReadOnlyAdapterCheck`):/todo update recorded for/iu.test(r)?t(`projection.todoStatusUpdated`):/^(loopx|python3|npm|git|run)\s|\s--[a-z0-9-]+|\b[a-z]+_[a-z_]+\b/iu.test(r)?t(n??`projection.agentPreparingNextStep`):dS(r)}function pS(e,t){return t({advancing:`projection.agentAdvancingGoal`,idle:`projection.agentIdle`,needs_you:`projection.agentNeedsDecision`,stopped:`projection.agentStopped`,waiting_external:`projection.agentWaitingExternal`}[e])}function mS({eventCount:e,hasArtifact:t,hasLatestValidation:n},r){return{label:r(n?`projection.latestValidation`:`projection.latestRun`),metadata:e>0?r(`projection.events24h`,{count:e}):r(t?`projection.runEvidenceAvailable`:`projection.publicSafeProjection`)}}var hS=`/status.json`,gS=`loopx-status-source-catalog-v1`,_S={id:`local`,kind:`local`,label:`本机`,readOnly:!1,statusUrl:hS};function vS(e,t){let n=sh(e,t).source;if(!n||!n.isLoopback||n.isRelative)return{error:`SSH 隧道来源必须使用显式的 localhost、127.0.0.1 或 ::1 URL。`};let r=new URL(n.url,t);return[`http:`,`https:`].includes(r.protocol)?{url:r.toString()}:{error:`状态来源只支持 HTTP 或 HTTPS。`}}function yS(e){let t=2166136261;for(let n of e)t^=n.codePointAt(0)??0,t=Math.imul(t,16777619);return`ssh-${(t>>>0).toString(36)}`}function bS(e,t){if(!e||typeof e!=`object`||Array.isArray(e))return null;let n=e;if(n.kind!==`ssh_tunnel`||typeof n.label!=`string`||typeof n.statusUrl!=`string`)return null;let r=n.label.trim(),i=vS(n.statusUrl,t);if(!r||r.length>48||!(`url`in i))return null;let a=Ob(n.hostAlias)?n.hostAlias.trim():void 0;return{...a?{hostAlias:a}:{},id:yS(i.url),kind:`ssh_tunnel`,label:r,readOnly:!0,statusUrl:i.url}}function xS(){return{schemaVersion:1,sources:[_S]}}function SS(e,t){try{let n=e.getItem(gS);if(!n)return xS();let r=JSON.parse(n);if(r.schemaVersion!==1||!Array.isArray(r.sources))return xS();let i=new Set([_S.statusUrl]);return{schemaVersion:1,sources:[_S,...r.sources.flatMap(e=>{let n=bS(e,t);return!n||i.has(n.statusUrl)?[]:(i.add(n.statusUrl),[n])})]}}catch{return xS()}}function CS(e,t){e.setItem(gS,JSON.stringify({schemaVersion:1,sources:t.sources.filter(e=>e.kind===`ssh_tunnel`)}))}function wS(e,t){let n=new Set(t.filter(Ob).map(e=>e.trim())),r=!1,i=e.sources.map(e=>e.kind!==`ssh_tunnel`||e.hostAlias||!n.has(e.label)?e:(r=!0,{...e,hostAlias:e.label}));return r?{...e,sources:i}:e}function TS(e,t,n){let r=t.label.trim();if(!r)return{error:`请填写来源名称。`};if(r.length>48)return{error:`来源名称不能超过 48 个字符。`};let i=vS(t.statusUrl,n);if(!(`url`in i))return i;if(e.sources.some(e=>e.statusUrl===i.url))return{error:`这个状态 URL 已经在来源目录中。`};if(t.hostAlias!==void 0&&!Ob(t.hostAlias))return{error:`请选择有效的 SSH Host。`};let a=t.hostAlias?.trim(),o={...a?{hostAlias:a}:{},id:yS(i.url),kind:`ssh_tunnel`,label:r,readOnly:!0,statusUrl:i.url};return{catalog:{...e,sources:[...e.sources,o]},source:o}}function ES(e,t){return{...e,sources:e.sources.filter(e=>e.kind===`local`||e.id!==t)}}function DS(e,t,n){if(!t.trim()||sh(t,n).source?.isRelative)return _S;let r=t.trim();try{r=new URL(r,n).toString()}catch{return null}return e.sources.find(e=>e.statusUrl===r)??null}function OS(e,t,n){return DS(e,t,n)||(sh(t,n).source?.isRelative?_S:{id:`temporary`,kind:`ssh_tunnel`,label:`临时来源`,readOnly:!0,statusUrl:t.trim()})}function kS(e,t,n,r){return OS(e,t??n,r)}var AS={delete:`删除`,deploy:`部署`,merge:`合并`,payment:`付款`,release:`发布`};function jS(e,t,n){let r=t.replace(/\s+/gu,` `).trim().toLowerCase(),i=n.target.replace(/\s+/gu,` `).trim().toLowerCase();return!i||!r.includes(i)?null:{actionKind:`goal.update`,context:{goal_id:e,kind:`goal`,natural_language:t,semantic_proposal:{operation:n.operation,target:n.target}},idempotencyKey:`workspace-semantic-protected-${e}-${Date.now().toString(36)}`,normalizedParameters:{goal_id:e,status:`operator_gate_requested`},summary:`请求受保护操作:${AS[n.operation]} · ${n.target}`}}var MS=hS;async function NS(e){let t=await fetch(e,{cache:`no-store`,signal:AbortSignal.timeout(3e4)});if(!t.ok)throw Error(`HTTP ${t.status} while loading ${e}`);return Ep(await t.json())}function PS(e,t){if(t?.controller_readiness?.decision_advisor_ready||t?.controller_readiness?.write_controller_ready)return`controller_ready`;if(t?.controller_readiness)return`controller_gated`;if(t?.human_reward)return`reward_judged`;if(t?.operator_gate?.decision===`approve`)return`operator_approved`;if(t?.operator_gate)return`operator_gated`;let n=e||t?.classification||``;return n===`connected_without_run`?`connected`:n===`read_only_project_map`||t?.project_map?`mapped`:n===`state_refreshed`?`refreshed`:n&&n!==`no_status`?`adapter_inspected`:`registered`}function FS(e,t){let n=new Map(t.map(e=>[e.goal_id,e])),r=new Set,i=e.map(e=>{r.add(e.id);let t=n.get(e.id),i=e.latest_runs[0],a=t?.lifecycle_phase??e.lifecycle_phase??i?.lifecycle_phase??PS(t?.status??i?.classification??e.status,i),o=t?.lifecycle_flags?.length?t.lifecycle_flags:e.lifecycle_flags?.length?e.lifecycle_flags:i?.lifecycle_flags?.length?i.lifecycle_flags:[a];return{goal:e,queueItem:t,latestRun:i,status:t?.status??i?.classification??e.status??`no_status`,waitingOn:t?.waiting_on??`clear`,severity:t?.severity??`clear`,lifecyclePhase:a,lifecycleFlags:o}});for(let e of t)r.has(e.goal_id)||i.push({goal:{activation_state:e.activation_state,id:e.goal_id,status:e.status,display_name:e.goal_id,latest_runs:[],lifecycle_flags:[e.lifecycle_phase??`registered`],registry_member:!0,legacy_runtime_goal:!1,index_exists:!1,raw_index_records:0,unique_runs:0},queueItem:e,status:e.status,waitingOn:e.waiting_on,severity:e.severity,lifecyclePhase:e.lifecycle_phase??`registered`,lifecycleFlags:e.lifecycle_flags??[`registered`]});return i}function IS(e){return(e??``).replace(/\s+/g,` `).trim()}function LS(e,t=132){let n=IS(e);return n.length<=t?n:`${n.slice(0,Math.max(0,t-1))}…`}function RS(e){let t=new Map;for(let n of e?.goals??[])t.set(n.goal_id,n);return t}function zS(e,t){return e===void 0||t===void 0?void 0:e+t}function BS(e,t){if(!e)return null;let n=t===`user`?e.queueItem?.project_asset?.user_todos:e.queueItem?.project_asset?.agent_todos;if(n?.items?.length)return{done_count:n.done??n.items.filter(e=>e.done).length,items:n.items,open_count:n.open??n.items.filter(e=>!e.done).length,total_count:n.total??n.items.length};let r=t===`user`?e.queueItem?.user_todos:e.queueItem?.agent_todos;return r?.items?.length?r:null}function VS(e){return e?.items.find(e=>!e.done)}function HS(e,t,n=`todos`){return e?.items?.length?{advancement_done_count:e.advancement_done_count??t?.advancement_done_count,done_count:e.done??e.items.filter(e=>e.done).length,items:e.items,open_count:e.open??e.items.filter(e=>!e.done).length,total_count:e.total??e.items.length}:t??null}function US(e){return e?.queueItem?.project_asset?.quota?.state??e?.queueItem?.quota?.state??e?.goal.quota?.state??`waiting`}function WS(e,t,n){let r=[];for(let t of e){let e=BS(t,`agent`);for(let n of e?.items??[])r.push({goalId:t.goal.id,role:`agent`,todo:n})}let i=new Map;for(let e of r){let t=e.todo.claimed_by||`codex`,n=i.get(t)??[];n.push(e),i.set(t,n)}let a=new Map((n?.agents??[]).map(e=>[e.agent_id,e]));return Array.from(new Set([...i.keys(),...a.keys()])).map(e=>{let t=i.get(e)??[],n=a.get(e),r=Array.from(new Set([...t.map(e=>e.goalId),n?.current_todo?.goal_id,...n?.goal_ids??[]].filter(Boolean))),o=(t.filter(e=>!e.todo.done)[0]??t[0])?.goalId??n?.current_todo?.goal_id??r[0]??``,s=n?.last_activity_at??null;return{agentId:e,claimedTodos:t,currentTodo:n?.current_todo??null,evidenceRefs:[],goalIds:r,handoffNote:null,lastActivity:s,nextSafeAction:n?.next_action?.trim()||`Inspect status projection before taking work`,primaryGoalId:o,quotaHints:[],staleClaimHint:null,status:{label:`可用`,summary:`正常运行`,variant:`success`},workspaceRef:null}})}function GS(e){return e?.map(e=>({dataUrl:e.data_url,id:e.id,mimeType:e.mime_type,name:e.name,size:e.size}))}var KS=`loopx.personal-agent-selection.v1`;function qS(){if(typeof window>`u`)return{};try{let e=JSON.parse(window.localStorage.getItem(KS)??`{}`);return!e||typeof e!=`object`||Array.isArray(e)?{}:Object.fromEntries(Object.entries(e).filter(e=>typeof e[0]==`string`&&typeof e[1]==`string`))}catch{return{}}}var JS={需修复:`danger`,等你:`warning`,等待条件:`info`,推进中:`success`,安静运行:`neutral`,已停止:`neutral`,已完成:`neutral`};function YS(e,t){return IS(t)||e.replace(/^loopx[-_]/i,`LoopX `).split(/[-_]+/).filter(Boolean).map((e,t)=>t===0?`${e.slice(0,1).toUpperCase()}${e.slice(1)}`:e).join(` `)}function XS(e){return e.split(/\r?\n/u).filter(e=>!/^\s*GOAL_(STATUS|PROGRESS)\s*:/u.test(e)).map(e=>/^\s*GOAL_EVIDENCE\s*:/u.test(e)?e.replace(/^\s*GOAL_EVIDENCE\s*:/u,`验证依据:`):/^\s*NEXT_ACTION\s*:/u.test(e)?e.replace(/^\s*NEXT_ACTION\s*:/u,`下一步:`):e).join(` -`).trim()}function ZS(e,t){return[`agent`,`assistant`].includes(e.trim().toLowerCase())&&t.trim().length>0}var QS=`已发现的项目 Agent`;function $S(e){switch(gy(e)){case`codex`:return`Codex`;case`claude`:return`Claude Code`;case`kiro`:return`Kiro CLI`;case`trae`:return`Trae CLI Agent`;case`coco`:return`Coco Agent`;default:return YS(e)}}function eC(e,t){switch(_y(e,t)){case`codex`:return`代码与项目执行`;case`claude`:return`复杂分析与长任务`;case`openai`:case`anthropic`:return`管家问答 · 无工具`;case`kiro`:return`终端编码 · 原生 /goal 循环`;case`trae`:return`前端与交互实现`;case`coco`:return`通用任务`;default:return QS}}function tC(e,t){let n=e.project_asset;return t===`user`?HS(n?.user_todos,e.user_todos,`project_asset.user_todos`):HS(n?.agent_todos,e.agent_todos,`project_asset.agent_todos`)}function nC(e){return LS(e.title??e.text,112)}function rC(e){let t=e.resume_condition?.resume_receipt;if(!t||typeof t!=`object`||Array.isArray(t))return null;let n=t.receipt_id;return typeof n==`string`&&n.trim()?n.trim():null}function iC(e,t){return{resumeWhen:e.resume_when??null,resumeReady:e.resume_ready??null,resumeReceiptId:rC(e),claimedBy:e.claimed_by??null,done:e.status!==`deferred`&&e.done,evidence:e.evidence?LS(e.evidence,96):null,index:e.index,priority:e.priority??null,status:e.status??null,taskClass:e.task_class??null,taskDomain:e.task_domain??null,text:nC(e),todoId:e.todo_id?.trim()||`${t.goal.id}:agent:${e.index}`}}function aC(e){let t=e.queueItem?.agent_todos,n=t?.items??e.queueItem?.project_asset?.agent_todos?.items??[],r=new Map(n.map(t=>[t.todo_id?.trim()||`${e.goal.id}:agent:${t.index}`,t]));for(let n of t?.deferred_items??[]){let t=n.todo_id?.trim()||`${e.goal.id}:agent:${n.index}`;r.has(t)||r.set(t,n)}return[...r.values()]}function oC(e){return aC(e).map(t=>iC(t,e))}function sC(e,t,n){let r=new Map;for(let n of e.todo_index?.items??[]){if(n.goal_id!==t.goal.id||n.role!==`agent`)continue;let e=iC(n,t);r.set(e.todoId,e)}for(let e of n)r.has(e.todoId)||r.set(e.todoId,e);let i=new Map;for(let e of r.values()){if(e.done||e.taskClass!==`advancement_task`)continue;let t=e.taskDomain?.trim();t&&i.set(t,(i.get(t)??0)+1)}return[...i].map(([e,t])=>({domain:e,matchingTodoCount:t}))}function cC(e,t){return{claimedBy:e.claimed_by??null,done:e.status===`done`||e.status===`completed`,index:-1,priority:e.priority??null,status:e.status??null,taskClass:e.task_class??null,text:LS(e.title,112),todoId:e.todo_id?.trim()||`${t.goal.id}:agent:${e.claimed_by??`unknown`}:current`}}function lC(e,t,n){let r=new Map(e.map(e=>[e.todoId,e]));for(let e of t){let t=e.currentTodo;if(!t||t.goal_id!==n.goal.id)continue;let i=cC(t,n);r.has(i.todoId)||r.set(i.todoId,i)}return[...r.values()]}function uC(e){let t=e.queueItem?.project_asset?.agent_todos,n=e.queueItem?.agent_todos,r=aC(e),i=t?.advancement_done_count??n?.advancement_done_count??t?.done??n?.done_count??null,a=r.filter(e=>e.done&&e.status!==`deferred`).length,o=Math.max(i??0,a),s=new Set(r.map(e=>e.todo_id?.trim()).filter(e=>!!e)),c=(t?.recent_completed_advancement_items??[]).filter(e=>!e.todo_id?.trim()||!s.has(e.todo_id.trim())).map(t=>iC(t,e)),l=r.find(e=>!e.done);return{doneTodoCount:o,nextTodoText:IS(t?.next??``)||(l?IS(l.title??``)||IS(l.text??``):``)||null,recentCompleted:c}}function dC(e,t){let n=IS(e);return n?/\b(state_file|registry_goal|authority_sources|source_registry)\b|\b[a-z_]+\s+\d+\/\d+/i.test(n)?t(`projection.goalVerified`):fS(n,t,`projection.validationRecorded`):``}function fC(e,t=4){if(e.length<=t)return e;let n=e.findIndex(e=>!e.done);if(n<0)return e.slice(-t);let r=Math.max(0,Math.min(n-2,e.length-t));return e.slice(r,r+t)}function pC(e,t,n){let r=t.queueItem?.project_asset?.latest_validation,i=t.latestRun,a=e.event_ledger_summary?.goals.find(e=>e.goal_id===t.goal.id);if(!r&&!i&&!a)return null;let o=[dC(r?.summary,n),fS(i?.health_check,n),fS(i?.recommended_action,n)].find(e=>e!==``&&e!==`暂无`)??n(`projection.runRecorded`),s=mS({eventCount:a?.events_24h??0,hasArtifact:!!(i?.json_exists||i?.markdown_exists),hasLatestValidation:!!r},n);return{generatedAt:r?.generated_at??i?.generated_at??a?.latest_event_at??``,label:s.label,metadata:s.metadata,runId:i?`${t.goal.id}:${i.generated_at}`:null,safePreview:[o,s.metadata].filter(Boolean).join(` -`),summary:o,todoId:t.queueItem?.project_asset?.agent_todos?.items.find(e=>!e.done)?.todo_id??null}}function mC(e){return[e.status,e.goal.status,e.latestRun?.classification,e.lifecyclePhase].filter(Boolean).some(e=>/(^|[_\s-])(done|complete|completed|finished|terminal|closed|success)([_\s-]|$)/i.test(e??``))}function hC(e,t){return e.global_registry?.findings?.find(e=>e.severity===`high`&&(e.goal_id===t.goal.id||e.goal_ids.includes(t.goal.id)))}function gC(e){return[e.status,e.goal.status,e.latestRun?.classification,e.lifecyclePhase].filter(Boolean).some(e=>/(^|[_\s-])(failure|failed|error|broken|unhealthy|blocked[_\s-]?health|health[_\s-]?blocked)([_\s-]|$)/i.test(e??``))}function _C(e,t){let n=t.queueItem?.stale_latest_run_warning;return t.severity===`high`||!!hC(e,t)||!!(n?.requires_refresh_state||n?.severity===`high`)||gC(t)}function vC(e,t){let n=hC(e,t);return t.queueItem?.stale_latest_run_warning?.recommended_action??t.queueItem?.stale_latest_run_warning?.reason??n?.recommended_action??n?.message??t.queueItem?.recommended_action??t.latestRun?.recommended_action??null}function yC(e){let t=e.latestRun?.operator_gate,n=t?.decision?.trim().toLowerCase()??``,r=new Set([`approve`,`approved`,`reject`,`rejected`,`defer`,`deferred`,`cancel`,`cancelled`]),i=[e.queueItem?.recommended_action,e.latestRun?.recommended_action].filter(Boolean).join(` `),a=/(?:等待|需要)(?:用户|你|owner).{0,24}(?:批准|确认|授权|补充|选择|决定)|(?:批准|确认|授权).{0,16}(?:后|才能|方可)/i.test(i);return!!(t&&!r.has(n))||e.lifecyclePhase===`operator_gated`&&!r.has(n)||a}function bC(e,t){let n=e.latestRun?.operator_gate;return fS(n?.operator_question??n?.reason_summary??n?.follow_up??e.queueItem?.recommended_action??e.latestRun?.recommended_action,t,`projection.confirmAgentDecision`)}function xC(e,t){if(t.goal.activation_state===`stopped`)return`已停止`;let n=BS(t,`user`),r=BS(t,`agent`),i=!!VS(n),a=!!VS(r);return[`user_or_controller`,`controller`].includes(t.waitingOn)||i||yC(t)?`等你`:_C(e,t)?`需修复`:t.waitingOn===`external_evidence`?`等待条件`:US(t)===`eligible`||a?`推进中`:mC(t)?`已完成`:`安静运行`}function SC(e,t,n,r){if(n===`已停止`)return pS(`stopped`,r);if(n===`需修复`)return fS(vC(e,t),r,`projection.statusRefreshNeeded`);if(n===`等你`)return pS(`needs_you`,r);if(n===`推进中`){let e=[(BS(t,`agent`)?.items??[]).filter(e=>!e.done).flatMap(e=>[e.title,e.text]).map(e=>IS(e)).find(e=>e!==``&&e!==`暂无`),t.queueItem?.recommended_action,t.latestRun?.recommended_action].map(e=>IS(e)).find(e=>e!==``&&e!==`暂无`);return e?fS(e,r,`projection.agentAdvancingGoal`):pS(`advancing`,r)}return pS(n===`等待条件`?`waiting_external`:`idle`,r)}function CC(e,t){return t.some(t=>e.includes(t))}function wC(e,t,n){if(t.goals.some(e=>e.activationState===`active`&&e.loadState))return{text:`Goal 状态尚未全部加载,暂不能给出完整统计。可先打开已加载的 Goal,失败项可重试。`,lines:[]};if(CC(n,[`Agent`,`agent`,`推进`,`在做`])){let e=t.goals.filter(e=>![`安静运行`,`已完成`,`已停止`].includes(e.state)),n=(e.length>0?e:t.goals).slice(0,3);return n.length===0?{text:`当前状态里还没有 Goal 可供汇总。`,lines:[]}:{text:e.length>0?`Agent 当前关注这些 Goal:`:`当前 Goal 都比较安静:`,lines:n.map(e=>`${e.title} · ${e.state} · ${e.agentSentence}`)}}if(CC(n,[`现在`,`下一步`,`我该`,`该做什么`,`优先处理`])){let e=t.userTodos[0];if(e)return{text:e.blocking?`先处理「${YS(e.goalId)}」:${e.text}`:`当前最先处理「${YS(e.goalId)}」:${e.text}`,lines:[]};let n=t.goals.find(e=>e.state===`需修复`);if(n)return{text:`没有待办,但这个 Goal 需要先修复。`,lines:[`${n.title} · ${n.agentSentence}`]};let r=t.goals.find(e=>e.state===`推进中`);return r?{text:`目前不需要你介入,Agent 正在推进。`,lines:[`${r.title} · ${r.agentSentence}`]}:{text:`当前系统很安静,没有需要你立即处理的事项。`,lines:[]}}if(CC(n,[`等我`,`阻塞`,`需要我`,`全局待办`]))return t.userTodos.length===0?{text:`目前没有 Goal 在等你,开放用户待办为 0。`,lines:[]}:{text:`有 ${t.userTodos.length} 项开放用户待办,阻塞项优先:`,lines:t.userTodos.slice(0,3).map(e=>`${YS(e.goalId)} · ${e.blocking?`阻塞`:`待处理`} · ${e.text}`)};if(CC(n,[`状态`,`异常`,`修复`,`健康`])){let n=t.systemHealth?!t.systemHealth.ok:!e.ok||!e.contract?.ok||!e.global_registry?.ok||(e.global_registry?.summary?.high??0)>0,r=t.goals.filter(e=>e.state===`需修复`),i=r.slice(0,n?2:3).map(e=>`${e.title} · ${e.agentSentence}`);return n&&i.push(`全局状态、契约或注册表健康检查未通过,请进入管理页检查。`),i.length===0?{text:`当前没有发现 Goal 级或全局健康异常。`,lines:[]}:{text:r.length>0?`当前需要关注这些健康问题:`:`Goal 状态正常,但全局健康需要检查:`,lines:i}}return{text:`当前管家支持三类问题:下一步、等待你的事项、Agent 与健康状态。`,lines:[`问“我现在该做什么?”`,`问“哪些 Goal 在等我?”`,`问“Agent 在做什么?”或当前健康状态`]}}function TC(e,t,n,r=!1){let i=new Map(t.map(e=>[e.goal.id,e])),a=new Set(e.run_history.goals.filter(e=>e.activation_state===`stopped`).map(e=>e.id)),o=RS(e.usage_summary),s=WS(t,e.todo_index,e.agent_management_projection),c=e.attention_queue.items.flatMap((e,t)=>{if(a.has(e.goal_id))return[];let n=[`user_or_controller`,`controller`].includes(e.waiting_on);return(tC(e,`user`)?.items??[]).map((r,i)=>({projectedDone:r.done,details:Ud(r),actionKind:r.action_kind??null,blocking:n,goalId:e.goal_id,sourceOrder:t,taskClass:r.task_class??null,text:nC(r),todoId:r.todo_id?.trim()||`${e.goal_id}:user:${r.index}`,todoOrder:i,updatedAt:r.updated_at??null}))}),l=c.filter(e=>!e.projectedDone),u=new Set(l.map(e=>e.goalId)),d=t.flatMap((t,r)=>a.has(t.goal.id)||u.has(t.goal.id)||!yC(t)?[]:[{details:Ud({task_class:`user_gate`,status:`open`,note:t.latestRun?.operator_gate?.reason_summary}),actionKind:`gate.resolve`,blocking:!0,goalId:t.goal.id,sourceOrder:e.attention_queue.items.length+r,taskClass:`user_gate`,text:bC(t,n),todoId:`${t.goal.id}:operator-gate`,todoOrder:0,updatedAt:t.latestRun?.operator_gate?.recorded_at??t.latestRun?.generated_at??null}]),f=[...l,...d].sort((e,t)=>Number(t.blocking)-Number(e.blocking)||e.sourceOrder-t.sourceOrder||e.todoOrder-t.todoOrder),p=e.run_history.goals.flatMap(t=>{if(t.registry_member===!1)return[];let a=i.get(t.id);if(!a)return[];let c=xC(e,a),l=f.find(e=>e.goalId===t.id),u=l?.text??null,d=uC(a),p=t.coordination?.registered_agents??[],m=new Set(p),h=[...s.filter(e=>e.goalIds.includes(t.id)&&!/unassigned|unknown/i.test(e.agentId)&&(m.size===0||m.has(e.agentId))&&(e.currentTodo?.goal_id===t.id||e.claimedTodos.some(e=>e.goalId===t.id)))].sort((e,t)=>(t.lastActivity??``).localeCompare(e.lastActivity??``)),g=new Set(h.map(e=>e.agentId)),_=[...h.map(e=>({agentId:e.agentId,label:e.agentId,lastActivityAt:e.lastActivity,state:e.status.label})),...p.filter(e=>!g.has(e)).map(e=>({agentId:e,label:e,lastActivityAt:null,state:`registered`}))],v=h[0],y=lC(oC(a),h,a),b=[d.nextTodoText,a.queueItem?.recommended_action,a.latestRun?.recommended_action,SC(e,a,c,n)].map(e=>fS(e,n)).find(e=>e!==``&&e!==`暂无`)??n(`projection.nextUpdatePending`);return[{activationState:t.activation_state,agentId:v?.agentId??p[0]??`codex`,agentLaneCount:_.length,agentLanes:_,agentLabel:v?.agentId,agentSentence:SC(e,a,c,n),agentTodos:[...y,...d.recentCompleted],doneTodoCount:d.doneTodoCount,acceptanceObservation:t.acceptance_observation,goalId:t.id,latestActivity:a.latestRun?.generated_at??``,needsYou:u,needsYouActionKind:l?.actionKind??null,needsYouBlocking:l?.blocking??!1,needsYouTaskClass:l?.taskClass??null,needsYouTodoId:l?.todoId??null,nextSentence:b,runEvidence:pC(e,a,n),state:c,...r?{subagentExecution:{allowedDomains:t.spawn_policy?.allowed_domains??[],domainCandidates:sC(e,a,y),enabled:t.spawn_policy?.mode===`multi_subagent`&&t.spawn_policy.spawn_allowed===!0&&t.spawn_policy.max_children>0,maxChildren:t.spawn_policy?.max_children??0,modelConfig:t.spawn_policy?.model_config}}:{},title:YS(t.id,t.display_name),usage:(()=>{let e=o.get(t.id);return e?{costUsd24h:e.cost_usd_24h,costUsd7d:e.cost_usd_7d,durationMs24h:e.duration_ms_24h,durationMs7d:e.duration_ms_7d,tokens24h:zS(e.input_tokens_24h,e.output_tokens_24h),tokens7d:zS(e.input_tokens_7d,e.output_tokens_7d)}:null})()}]}),m=[];if(e.ok||m.push(`状态载荷未标记为正常 (payload.ok === false)`),e.contract&&!e.contract.ok){let t=e.contract.summary,n=t?`${t.errors} 项错误 / ${t.warnings} 项警告`:e.contract.errors?.[0]||`请检查控制面契约`;m.push(`契约检查未通过: ${n}`)}if(e.global_registry){e.global_registry.ok||m.push(`注册表状态异常: ${e.global_registry.summary.high} 项高危`);for(let t of e.global_registry.findings||[])t.severity===`high`&&m.push(`[${t.kind}] ${t.message}`)}let h=e.decision_freshness_summary?.summary?.stale_count?`${e.decision_freshness_summary.summary.stale_count} 项决策状态已过期`:null,g=m.length===0&&!h,_={ok:g,summary:g?`所有控制面契约与注册表检查均正常`:`发现 ${m.length+ +!!h} 项系统健康关注点`,issues:m,freshnessWarning:h};return{blockingTodoCount:f.filter(e=>e.blocking).length,goalNotifications:(e.goal_channel_notification_projection?.goals??[]).map(e=>({goalId:e.goal_id,configured:e.configured,enabled:e.enabled,humanGateAutoNotifyEnabled:e.human_gate_auto_notify_enabled,lastNotifiedAt:e.last_notified_at??null,receiptCount:e.receipt_count,targetRef:e.target_ref??null})),goals:p,openUserTodoCount:f.length,systemHealth:_,attentionHistory:[...c,...d],userTodos:f,visibleUserTodos:f.slice(0,5),workers:(e.agent_management_projection?.agents??[]).map(e=>({agentId:e.agent_id,currentTodoGoalId:e.current_todo?.goal_id??null,currentTodoText:e.current_todo?.title?LS(e.current_todo.title,96):null,lastActivityAt:e.last_activity_at??null,state:e.state??null}))}}function EC({goalArchiveLoadState:e,isLoading:t,onGoalActivationStateChange:n,onGoalDeleted:r,onSelectGoal:i,onReconcileStatus:a,onRefresh:o,onRetryGoalArchive:s,payload:c,progress:l,rows:u,selectedGoalId:d,statusSourceControl:f,theme:p,toggleTheme:m}){let h=f.activeSource.readOnly,g=f.activeSource.kind===`ssh_tunnel`?f.activeSource.hostAlias:void 0,{t:_}=Ji(),[v,y]=(0,B.useState)([]),[b,x]=(0,B.useState)(!1),[S,C]=(0,B.useState)(null),[w,T]=(0,B.useState)(null),E=(0,B.useMemo)(()=>{let e=TC(c,u,_,b);if(!l)return e;let t=Object.values(l.snapshots).map(e=>TC(e,FS(e.run_history.goals,e.attention_queue.items),_,b)),n=new Map(t.flatMap(e=>e.goals).map(e=>[e.goalId,e])),r=e.goals.map(e=>n.get(e.goalId)??{...e,loadError:l.errors[e.goalId],loadState:l.errors[e.goalId]?`error`:`loading`,agentId:``,agentSentence:``,nextSentence:``,subagentExecution:void 0}),i=t.flatMap(e=>e.userTodos),a=r.some(e=>e.activationState===`active`&&e.loadState),o=[...new Set(t.flatMap(e=>e.systemHealth?.issues??[]))];return{...e,goals:r,userTodos:i,attentionHistory:t.flatMap(e=>e.attentionHistory??e.userTodos),visibleUserTodos:i.slice(0,5),openUserTodoCount:i.length,blockingTodoCount:i.filter(e=>e.blocking).length,workers:[...new Map(t.flatMap(e=>e.workers??[]).map(e=>[e.agentId,e])).values()],goalNotifications:t.flatMap(e=>e.goalNotifications??[]),systemHealth:a||t.length===0?void 0:{ok:t.every(e=>e.systemHealth?.ok),issues:o,summary:o.length?`发现 ${o.length} 项系统健康关注点`:`状态检查已完成`,freshnessWarning:t.map(e=>e.systemHealth?.freshnessWarning).filter(Boolean).join(`;`)||null}}},[c,u,l,b,_]),D=E.goals.find(e=>e.goalId===d)??null,O=l?.snapshots[d]??c,[k,ee]=(0,B.useState)(null),[te,A]=(0,B.useState)(null),[j,M]=(0,B.useState)(!1),ne=E.goals.some(e=>e.activationState===`active`&&e.loadState===`loading`)?`loading`:E.goals.map(e=>`${e.goalId}:${e.agentId}`).join(`|`),N=D?.goalId??`manager`;E.goals.some(e=>e.activationState===`active`&&e.loadState)||(E.systemHealth?!E.systemHealth.ok:!c.ok)||E.openUserTodoCount>0&&`${E.openUserTodoCount}${E.blockingTodoCount}`;let P=v.length>0?v.map(e=>({agentId:e.agent_id,adapterKind:e.adapter_kind,available:e.available,capability:eC(e.agent_id,e.adapter_kind),interrupt:e.interrupt,label:e.display_name,location:e.location,resume:e.resume,source:e.source,statusLabel:e.available?`可用`:`需要配置`,streaming:e.streaming,toolCalls:e.tool_calls,trustScope:e.trust_scope})):[{agentId:`codex`,available:!0,capability:eC(`codex`),label:`Codex`,statusLabel:`正在检测`}],re=[...P,{agentId:`status-only`,available:!0,capability:`不调用模型`,adapterKind:`status_projection`,interrupt:!1,label:`仅查状态`,resume:!0,statusLabel:`只读`,streaming:!1,toolCalls:!1,trustScope:`read_only`}],ie=P.find(e=>e.label===`Codex`&&e.available)?.agentId??P.find(e=>e.available)?.agentId??`status-only`,ae=w?.executor_endpoint?.trim()??``,F=ae?P.find(e=>e.agentId===ae)?.agentId:void 0,oe=e=>e===`manager`?F??ie:ie,[I,se]=(0,B.useState)(qS),L=ph(re,I[N]??oe(N),ie),[ce,le]=(0,B.useState)(!1),[ue,de]=(0,B.useState)(!1),[R,fe]=(0,B.useState)(`chat`),[pe,me]=(0,B.useState)(``),[he,ge]=(0,B.useState)({}),[_e,ve]=(0,B.useState)({}),[ye,be]=(0,B.useState)(null),[xe,Se]=(0,B.useState)({}),[Ce,we]=(0,B.useState)([]),[Te,Ee]=(0,B.useState)(null),[De,z]=(0,B.useState)({}),Oe=(0,B.useRef)(1),ke=(0,B.useRef)(1),Ae=(0,B.useRef)(new Map),je=(0,B.useRef)(new Set),Me=(0,B.useRef)(new Map),Ne=(0,B.useRef)(new Map),Pe=(0,B.useRef)(new Set),Fe=(0,B.useRef)(new Set),Ie=(0,B.useRef)(null),Le=(0,B.useRef)(null),Re=(0,B.useRef)(null),ze=(0,B.useRef)(null);(0,B.useRef)(null);let Be=he[N]??[];_e[N];let Ve=(e,t)=>e===`manager`?_(`header.manager`):t,He=D?E.userTodos.filter(e=>e.goalId===D.goalId):E.userTodos,Ue=D?.agentTodos??[];fC(Ue,D?.needsYou?3:4);let We=Ue.filter(e=>e.done).length,Ge=Ue.length>0?`${We}/${Ue.length}`:`暂无计划`;D&&({...E},He.filter(e=>e.blocking).length,He.length),(0,B.useEffect)(()=>{let e=oh(f.activeSource.statusUrl,window.location.href),t=e.source?uh(O,e.source):null;if(!D||!t?.indexUrl||!t.detailUrl){ee(null),A(null),M(!1);return}let{detailUrl:n,indexUrl:r}=t,i=!1;return ee(null),A(null),M(!0),dh(r,D.goalId).then(async e=>{let t=e.items[0]?.detail_ref;return t?fh(n,t):null}).then(e=>{i||ee(e)}).catch(e=>{i||A(Dp(e))}).finally(()=>{i||M(!1)}),()=>{i=!0}},[O,D?.goalId,f.activeSource.statusUrl]);let Ke=D?void 0:xe[N]?.sessionId;(0,B.useEffect)(()=>{if(h||!Ke)return;let e=!1,t,n=async()=>{try{let t=await Wh(Ke);if(e)return;let n=t.messages.filter(e=>e.origin===`manager_followup`);ge(e=>{let t=e[N]??[],r=new Set(t.map(e=>e.sourceMessageId)),i=n.filter(e=>!r.has(e.message_id)),a=new Map(n.map(e=>[e.message_id,e.return_delivery])),o=!1,s=t.map(e=>{let t=e.sourceMessageId?a.get(e.sourceMessageId):void 0;return JSON.stringify(t)===JSON.stringify(e.returnDelivery)?e:(o=!0,{...e,returnDelivery:t})});return!i.length&&!o?e:{...e,[N]:[...s,...i.map(e=>({id:Oe.current++,sourceMessageId:e.message_id,role:`assistant`,agentLabel:Ve(N,L.label),sourceLabel:`管家交接回执`,text:XS(e.text),lines:[],returnDelivery:e.return_delivery}))]}})}catch{}finally{e||(t=setTimeout(n,3e3))}};return n(),()=>{e=!0,t&&clearTimeout(t)}},[h,Ke,N,L.label]);function qe(e,t){Se(n=>{if(t===null){let t={...n};return delete t[e],t}return{...n,[e]:t}})}(0,B.useEffect)(()=>{if(h){y([]),x(!1),C(null),T(null);return}let e=!1;return Vh().then(t=>{if(!e){y(t.adapters??[]);let e=t.manager?.runtime;T(t.manager?.channel_binding??null),C(e?{schema_version:`manager_runtime_session_readback_v0`,runtime_profile:e.runtime_profile,configuration_revision:e.configuration_revision,status:e.status,sandbox:e.sandbox,standing_grant:e.standing_grant,tool_classes:e.tool_classes}:null),x(t.goal_subagent_configuration===`preview_locked`)}}).catch(()=>{e||x(!1)}),()=>{e=!0}},[h]),(0,B.useEffect)(()=>{try{window.localStorage.setItem(KS,JSON.stringify(I))}catch{}},[I]),(0,B.useEffect)(()=>{if(h||!L.available)return;let e=N,t=`${e}:${L.agentId}`,n=D?`goal`:`manager`,r=D?`goal.${D.goalId}`:`manager`,i=!1,a=null,o=null;return(async()=>{try{let s=await qh({agentId:n===`manager`?void 0:L.agentId,channelId:r,goalId:D?.goalId});if(i||(ge(t=>(t[e]?.length??0)>0?t:{...t,[e]:s.messages.map(t=>({sourceMessageId:t.message_id,agentLabel:t.role===`user`?void 0:Ve(e,L.label),attachments:GS(t.attachments),id:Oe.current++,lines:[],role:t.role===`user`?`user`:`assistant`,returnDelivery:t.return_delivery,sourceLabel:t.role===`user`?void 0:t.role===`error`?`本地会话记录`:e===`manager`?`恢复的${_(`header.manager`)}会话`:`恢复的 ${L.label} 会话`,text:t.role===`user`?t.text:XS(t.text)}))}),L.agentId===`status-only`))return;let c=s.sessions[0];if(o=c?.session_id??null,c&&!c.resumable){je.current.add(t),qe(e,{agentId:L.agentId,resumable:!1,sessionId:c.session_id,status:`resume_failed`});return}let l=n===`manager`?``:D?.goalId??``;if(n===`goal`&&!l)return;let u=await Uh(l,n===`manager`?I[e]:L.agentId,`resume_latest`,n);if(i)return;n===`manager`&&u.session.manager_runtime&&C(u.session.manager_runtime),Ae.current.set(t,u.session_id);let d=s.snapshots.find(e=>e.session.session_id===u.session_id),f=d?.session.active_turn_id??``;if(qe(e,{agentId:u.agent_id||L.agentId,resumable:!0,sessionId:u.session_id,status:f?`running`:`ready`,turnId:f||void 0}),je.current.delete(t),!f)return;let p=`${u.session_id}:${f}`;if(Fe.current.has(p))return;Fe.current.add(p),Me.current.set(e,f),qe(e,{agentId:L.agentId,resumable:!0,sessionId:u.session_id,status:`running`,turnId:f}),be(e),a=new AbortController,Ne.current.set(e,a);let m=``,h=Je(e,{activity:[`正在恢复进行中的 Agent 回合`],agentLabel:Ve(e,L.label),lines:[],pending:!0,sourceLabel:e===`manager`?`恢复的${_(`header.manager`)}会话`:`恢复的 ${L.label} 会话`,text:``});try{let t=await eg(u.session_id,f,{signal:a.signal,onDelta:t=>{m+=t,Ye(e,h,{text:m})},onActivity:t=>{ge(n=>({...n,[e]:(n[e]??[]).map(e=>e.id===h?{...e,activity:[...new Set([...e.activity??[],t])].slice(-6)}:e)}))}});if(i)return;Ye(e,h,{lines:t.response.gate?[t.response.gate.summary,t.response.gate.next_action].filter(Boolean).slice(0,2):[],pending:!1,text:t.response.message||m.trim()||`${Ve(e,L.label)} 已完成分析。`});let n=E.goals.find(e=>e.goalId===d?.session.goal_id)??D??E.goals[0]??null;if(n&&t.response.proposals.length>0){let r=t.response.proposals.map(e=>({goalId:n.goalId,id:ke.current++,previewId:null,proposal:e,receiptLabel:null,state:`candidate`,statusMessage:null}));ve(t=>({...t,[e]:[...t[e]??[],...r]}))}}catch(t){if(i)return;Ye(e,h,{activity:[],lines:[],pending:!1,reconnect:t instanceof kh&&t.payload.reconnectable===!0,sourceLabel:`LoopX Chat 本地后端`,text:t instanceof Error?t.message:`无法恢复进行中的 Agent 回合。`})}finally{Fe.current.delete(p),Me.current.get(e)===f&&Me.current.delete(e),qe(e,{agentId:L.agentId,resumable:!0,sessionId:u.session_id,status:`ready`}),Ne.current.get(e)===a&&Ne.current.delete(e),i||be(t=>t===e?null:t)}}catch(n){if(i)return;n instanceof kh&&n.payload.error_code===`resume_failed`&&(je.current.add(t),o&&qe(e,{agentId:L.agentId,resumable:!1,sessionId:o,status:`resume_failed`}))}})(),()=>{i=!0,a?.abort()}},[N,E.goals[0]?.goalId,h,D?.goalId,L.agentId,L.available,L.label,I]),(0,B.useEffect)(()=>{if(h||D||E.goals.length===0||ne===`loading`)return;let e=!1;return Promise.all(E.goals.filter(e=>!e.loadState).map(async e=>{let t=await Gh({agentId:e.agentId,channelId:`goal.${e.goalId}`,goalId:e.goalId});return{goalId:e.goalId,session:t.sessions[0]??null}})).then(t=>{e||Se(e=>{let n={...e};for(let e of t)e.session&&(n[e.goalId]={agentId:e.session.agent_id,resumable:e.session.resumable,sessionId:e.session.session_id,status:e.session.active_turn_id?`running`:e.session.status,turnId:e.session.active_turn_id??void 0});return n})}).catch(()=>{}),()=>{e=!0}},[h,ne,D?.goalId]),(0,B.useEffect)(()=>{if(Ee(null),h){we([]),z({});return}if(!D){we([]),z({});return}let e=!1,t=0,n=0;we([]),z({});let r=async()=>{if(!e){if(document.hidden){t=window.setTimeout(()=>void r(),1e4);return}try{let t=await Gh({goalId:D.goalId});if(!e){let r=t.sessions.filter(e=>e.channel_id?.startsWith(`task.`));we(r);let i=await Promise.allSettled(r.map(e=>Wh(e.session_id)));if(!e){let e=i.some(e=>e.status===`rejected`);n=e?n+1:0,Ee(e?`partial`:null),z(Object.fromEntries(i.flatMap((e,t)=>e.status===`fulfilled`?[[r[t].session_id,e.value]]:[])))}}}catch{n+=1,e||Ee(`offline`)}e||(t=window.setTimeout(()=>void r(),Math.min(3e4,2e3*2**Math.min(n,4))))}};return r(),()=>{e=!0,window.clearTimeout(t)}},[h,D?.goalId]),(0,B.useEffect)(()=>{if(!ce)return;let e=window.requestAnimationFrame(()=>{Ie.current?.querySelector(`[role="menuitem"]:not(:disabled)`)?.focus()});return()=>{window.cancelAnimationFrame(e),Le.current?.focus()}},[ce]),(0,B.useEffect)(()=>{if(!ue)return;let e=window.requestAnimationFrame(()=>Re.current?.focus());return()=>{window.cancelAnimationFrame(e),ze.current?.focus()}},[ue]),(0,B.useEffect)(()=>{if(!ce&&!ue)return;let e=e=>{e.key===`Escape`&&(le(!1),de(!1))};return window.addEventListener(`keydown`,e),()=>window.removeEventListener(`keydown`,e)},[ce,ue]);function Je(e,t){let n=Oe.current++;return ge(r=>({...r,[e]:[...r[e]??[],{...t,id:n,role:`assistant`}]})),n}function Ye(e,t,n){ge(r=>({...r,[e]:(r[e]??[]).map(e=>e.id===t?{...e,...n}:e)}))}async function Xe(e,t){let n=e.trim();if(!n)return;let r=t&&`goalId`in t?t.goalId??`manager`:N,i=r===`manager`?null:E.goals.find(e=>e.goalId===r)??null,a=t?.agentId?ph(re,t.agentId,ie):L,o=r===`manager`?E:i?{...E,blockingTodoCount:E.userTodos.filter(e=>e.goalId===i.goalId&&e.blocking).length,goals:[i],openUserTodoCount:E.userTodos.filter(e=>e.goalId===i.goalId).length,userTodos:E.userTodos.filter(e=>e.goalId===i.goalId),visibleUserTodos:E.userTodos.filter(e=>e.goalId===i.goalId)}:E,s=Oe.current++;if(ge(e=>({...e,[r]:[...e[r]??[],{attachments:t?.attachments,id:s,lines:[],role:`user`,text:n}]})),me(``),be(r),a.agentId===`status-only`||!i&&r!==`manager`){let e=wC(O,o,n),t=a.agentId===`status-only`;Je(r,{agentLabel:t?`仅查状态`:`LoopX 管家`,lines:e.lines.slice(0,3),sourceLabel:t?`LoopX 状态投影 · 仅查状态`:`LoopX 状态投影`,text:e.text}),Hh({answer:[e.text,...e.lines.slice(0,3)].filter(Boolean).join(` -`),contextKind:r===`manager`?`manager`:`goal`,goalId:r===`manager`?void 0:r,question:n}).catch(()=>{}),be(null);return}let c=`${r}:${a.agentId}`,l=null;try{let e=Ae.current.get(c);if(!e){let t=je.current.has(c)?`new`:`resume_latest`,n=r===`manager`?I[r]:a.agentId,o=await Uh(r===`manager`?``:i.goalId,n,t,r===`manager`?`manager`:`goal`);r===`manager`&&o.session.manager_runtime&&C(o.session.manager_runtime),e=o.session_id,Ae.current.set(c,e),qe(r,{agentId:o.agent_id||a.agentId,resumable:!0,sessionId:e,status:`ready`}),je.current.delete(c)}let o=``;l=Je(r,{activity:[r===`manager`?`正在连接管家`:`正在连接 Agent`],agentLabel:Ve(r,a.label),lines:[],pending:!0,sourceLabel:r===`manager`?`${_(`header.manager`)} · 跨 Goal`:`${a.label} Agent · ${YS(i.goalId)}`,text:``});let s=(await Qh(e,n,{attachments:t?.attachments,signal:(()=>{let e=new AbortController;return Ne.current.set(r,e),e.signal})(),onDelta:e=>{o+=e,l!==null&&Ye(r,l,{text:o})},onActivity:e=>{l!==null&&ge(t=>({...t,[r]:(t[r]??[]).map(t=>t.id===l?{...t,activity:[...new Set([...t.activity??[],e])].slice(-6)}:t)}))},onPhase:(t,n)=>{Me.current.set(r,n),qe(r,{agentId:a.agentId,resumable:!0,sessionId:e,status:`running`,turnId:n})}})).response;if(Ye(r,l,{lines:s.gate?[s.gate.summary,s.gate.next_action].filter(Boolean).slice(0,2):[],pending:!1,text:XS(s.message||o.trim())||`${Ve(r,a.label)} 已完成分析。`}),s.proposals.length>0&&!i&&Ye(r,l,{lines:[`请进入要修改的 Goal,预览并确认具体变更。`]}),s.proposals.length>0&&i){let e=s.proposals.map(e=>({goalId:i.goalId,id:ke.current++,previewId:null,proposal:e,receiptLabel:null,state:`candidate`,statusMessage:null}));ve(t=>({...t,[r]:[...t[r]??[],...e]}))}if(r!==`manager`&&s.protected_action){let e=jS(r,n,s.protected_action);if(e)return e}}catch(e){if(Pe.current.delete(r)){let e={agentLabel:Ve(r,a.label),lines:[],pending:!1,sourceLabel:r===`manager`?`${_(`header.manager`)}会话`:`${a.label} 会话`,text:`已中断。你可以在当前会话继续发送消息。`};l===null?Je(r,e):Ye(r,l,e);return}let t=e instanceof kh?e.payload:null;t&&mh(t)&&Ae.current.delete(c),t?.error_code===`resume_failed`&&(Ae.current.delete(c),je.current.add(c),qe(r,{agentId:a.agentId,resumable:!1,sessionId:xe[r]?.sessionId??`resume-failed`,status:`resume_failed`}));let n=t?.gate,i=n&&typeof n==`object`?String(n.summary??``):``,o={agentLabel:Ve(r,a.label),lines:i?[i]:[],pending:!1,reconnect:t?.reconnectable===!0,sourceLabel:`LoopX Chat 本地后端`,text:t?.error_code===`resume_failed`?`原 ${Ve(r,a.label)} 会话无法恢复。本地历史已经保留,请在运行详情里选择“重试恢复”或“开始新 Session”。`:e instanceof Error?e.message:`${Ve(r,a.label)} 会话暂时不可用。`};l===null?Je(r,o):Ye(r,l,o)}finally{Me.current.delete(r),Ne.current.delete(r);let e=Ae.current.get(c);e&&qe(r,{agentId:a.agentId,resumable:!0,sessionId:e,status:`ready`}),be(e=>e===r?null:e)}}async function Ze(e){let t=e?.goalId??N,n=xe[t],r=e?.agentId??n?.agentId??L.agentId,i=`${t}:${r}`,a=e?.sessionId??n?.sessionId??Ae.current.get(i),o=e?.turnId??n?.turnId??Me.current.get(t);if(!(!a||!o))try{Pe.current.add(t),await Zh(a,o),Ne.current.get(t)?.abort()}catch(e){throw Pe.current.delete(t),e}finally{Me.current.delete(t),qe(t,{agentId:r,resumable:!0,sessionId:a,status:`ready`}),Ne.current.delete(t),be(e=>e===t?null:e)}}async function Qe(e){let t=e.goalId,n=`${t}:${e.agentId}`,r=e.sessionId??xe[t]?.sessionId??Ae.current.get(n);if(r)try{let i=await ng(r);Ae.current.set(n,r),je.current.delete(n),qe(t,{agentId:e.agentId,resumable:i.session.resumable,sessionId:r,status:i.session.status})}catch{qe(t,{agentId:e.agentId,resumable:!1,sessionId:r,status:`resume_failed`})}}function $e(e){let t=`${e.goalId}:${e.agentId}`;Ae.current.delete(t),je.current.add(t),qe(e.goalId,{agentId:e.agentId,resumable:!0,sessionId:`new-session-pending`,status:`ready`})}async function et(e){let t=`${e.goalId}:${e.agentId}`,n=e.sessionId??xe[e.goalId]?.sessionId??Ae.current.get(t);n&&n!==`new-session-pending`&&await tg(n),Ae.current.delete(t),je.current.add(t),qe(e.goalId,null)}function tt(e){re.some(t=>t.agentId===e&&t.available)&&(se(t=>({...t,[N]:e})),le(!1))}function nt(){i(``),fe(`chat`)}function rt(e){i(e),fe(`chat`)}D&&JS[D.state],D&&(`${L.label}${D.state}`,Ue.length>0&&`${Ge}`,He.length>0&&`${He.length}`),D?.state===`需修复`||!D&&!c.ok?(D&&$S(D.agentId),D?.nextSentence,D?.agentSentence):D?.state===`等你`?(D.needsYouBlocking,D.needsYouBlocking,D.needsYou??D.nextSentence,D.needsYou):(D&&$S(D.agentId),D?.nextSentence);let it=[...!D&&xe.manager?.status===`resume_failed`?[{id:`run:manager:resume-failed`,kind:`run`,run:{agentId:xe.manager.agentId,agentLabel:$S(xe.manager.agentId),canInterrupt:!1,completedSteps:0,goalId:`manager`,goalTitle:`LoopX 管家`,latestActivity:`本地聊天记录已保留,点我查看恢复方式。`,resumable:!1,runId:`manager:resume-failed`,sessionId:xe.manager.sessionId,sessionStatus:`resume_failed`,status:`failed`,title:`上次会话需要恢复`,totalSteps:1,outputs:[]}}]:[],...D?Ce.map(e=>{let t=e.channel_id?.startsWith(`task.`)?e.channel_id.slice(5):void 0,n=D.agentTodos.find(e=>e.todoId===t),r=!!e.active_turn_id,i=De[e.session_id],a=i?.messages.some(e=>ZS(e.role,e.text))===!0;return{id:`run:task:${e.session_id}`,kind:`run`,run:{agentId:e.agent_id,agentLabel:$S(e.agent_id),canInterrupt:r,completedSteps:n?.done||a?1:0,goalId:D.goalId,goalTitle:D.title,latestActivity:r?`Agent 正在执行,可进入 Session 查看过程或发送纠偏。`:a?`Agent 已返回结果,点击查看结果与完整运行记录。`:`执行 Session 已保留,可继续纠偏或恢复。`,resumable:e.resumable,runId:e.session_id,sessionId:e.session_id,sessionMessages:i?.messages.map(e=>({createdAt:e.created_at,messageId:e.message_id,role:e.role===`user`?`user`:ZS(e.role,e.text)?`assistant`:`error`,text:e.role===`user`?e.text:XS(e.text)})),sessionStatus:a?`completed`:e.status,status:n?.done||a?`completed`:r?`running`:e.status===`resume_failed`?`failed`:`waiting`,title:n?.text??`Agent 执行任务`,todoId:t,totalSteps:1,turnId:e.active_turn_id??void 0}}}):[],...D?[{id:`run:${D.goalId}`,kind:`run`,run:{agentId:xe[D.goalId]?.agentId??D.agentId,agentLabel:$S(xe[D.goalId]?.agentId??D.agentId),canInterrupt:!!xe[D.goalId]?.turnId,completedSteps:D.agentTodos.filter(e=>e.done).length,goalId:D.goalId,goalTitle:D.title,latestActivity:D.agentSentence,resumable:xe[D.goalId]?.resumable??!0,runId:`goal:${D.goalId}`,sessionId:xe[D.goalId]?.sessionId,sessionStatus:xe[D.goalId]?.status,status:xe[D.goalId]?.turnId?`running`:D.state===`需修复`?`failed`:`waiting`,title:D.nextSentence,totalSteps:D.agentTodos.length||1,turnId:xe[D.goalId]?.turnId,outputs:D.runEvidence?[{createdAt:D.runEvidence.generatedAt,kind:`evidence`,outputId:`${D.goalId}:latest-evidence`,title:D.runEvidence.label}]:[]}}]:[],...Be.map(e=>({id:`message:${e.id}`,kind:`message`,message:{agentLabel:e.agentLabel,attachments:e.attachments,id:String(e.id),pending:e.pending,returnDelivery:e.returnDelivery,role:e.role,text:e.text||(e.pending?`Agent 正在处理…`:e.lines.join(` -`))}})),...(D?[D]:E.goals).flatMap(e=>e.runEvidence?[{id:`output:${e.goalId}:${e.runEvidence.generatedAt||`latest`}`,kind:`output`,output:{agentLabel:$S(e.agentId),createdAt:e.runEvidence.generatedAt,goalId:e.goalId,goalTitle:e.title,kind:`evidence`,outputId:`${e.goalId}:latest-evidence`,runId:e.runEvidence.runId??void 0,safePreview:e.runEvidence.safePreview,summary:e.runEvidence.summary,title:e.runEvidence.label,todoId:e.runEvidence.todoId??void 0}}]:[]),...D&&k?[{id:`output:${D.goalId}:report:${k.publication.publication_id}`,kind:`output`,output:{agentId:k.agent_id,agentLabel:$S(k.agent_id),createdAt:k.publication.delivered_at,goalId:D.goalId,goalTitle:D.title,kind:`report`,outputId:k.publication.publication_id,report:{addedCount:k.delta.added_count,changedCount:k.delta.changed_count,deliveredAt:k.publication.delivered_at,generationId:k.generation_id,items:k.delta.items.map(e=>({changeKind:e.change_kind,previousStatus:e.previous_status,sourceRef:e.source_ref,status:e.status,summary:e.summary,title:e.title})),periodEndAt:k.period_window.end_at,periodStartAt:k.period_window.start_at,predecessorPublicationId:k.publication.predecessor_publication_id,publicationId:k.publication.publication_id},safePreview:k.delta.items.map(e=>`${e.change_kind===`added`?`+`:`~`} ${e.title}\n${e.summary}`).join(` +`)});continue}let o=e.match(/^\s{0,3}#{1,4}\s+(.*)$/);if(o){i();let t=e.trimStart().match(/^#+/)?.[0].length??1;n.push({type:`heading`,level:t,text:o[1].trim()}),a+=1;continue}if(Yy.test(e)||Xy.test(e)){i();let r=Xy.test(e),o=r?Xy:Yy,s=[];for(;a{let n=`b${t}`;if(e.type===`code`)return(0,V.jsx)(`pre`,{className:`personal-md-pre`,children:(0,V.jsx)(`code`,{children:e.text})},n);if(e.type===`heading`)return(0,V.jsx)(`p`,{className:`personal-md-heading is-h${e.level}`,children:Jy(e.text,n)},n);if(e.type===`list`){let t=e.items.map((e,t)=>(0,V.jsx)(`li`,{children:Jy(e,`${n}-${t}`)},`${n}-${t}`));return e.ordered?(0,V.jsx)(`ol`,{className:`personal-md-list`,children:t},n):(0,V.jsx)(`ul`,{className:`personal-md-list`,children:t},n)}return(0,V.jsx)(`p`,{children:e.lines.map((e,t)=>(0,V.jsxs)(B.Fragment,{children:[t>0?(0,V.jsx)(`br`,{}):null,Jy(e,`${n}-${t}`)]},`${n}-${t}`))},n)})})}function $y({onSelect:e,output:t}){let{t:n}=Ji(),r=t.kind===`report`?xm:bm;return(0,V.jsxs)(`button`,{className:`personal-timeline-row personal-output-row`,"data-output-kind":t.kind,"data-testid":`personal-browse-row`,onClick:e,type:`button`,children:[(0,V.jsx)(`span`,{className:`personal-row-icon is-output`,children:(0,V.jsx)(r,{size:18})}),(0,V.jsxs)(`span`,{className:`personal-row-copy`,children:[(0,V.jsxs)(`small`,{children:[t.goalTitle??t.goalId,` · `,t.agentLabel??`LoopX`]}),(0,V.jsx)(`strong`,{children:t.title}),t.summary?(0,V.jsx)(`span`,{children:t.summary}):null,t.report?(0,V.jsxs)(`small`,{children:[n(`files.reportDelta`,{added:t.report.addedCount,changed:t.report.changedCount}),` · `,n(`files.verifiedReport`)]}):null]}),t.createdAt?(0,V.jsx)(`time`,{children:t.createdAt}):null,(0,V.jsx)(sm,{size:17})]})}var eb={completed:`runs.completed`,failed:`runs.failed`,interrupted:`runs.interrupted`,queued:`runs.queued`,running:`runs.running`,waiting:`runs.waiting`};function tb({onSelect:e,run:t}){let{t:n}=Ji(),r=t.totalSteps>0?Math.min(100,t.completedSteps/t.totalSteps*100):0;return(0,V.jsxs)(`button`,{"aria-label":`${n(`tasks.viewExecution`)}:${t.title}`,className:`personal-timeline-row personal-run-row`,"data-testid":`personal-browse-row`,onClick:e,type:`button`,children:[(0,V.jsx)(`span`,{className:`personal-row-icon is-run`,children:(0,V.jsx)(nm,{size:18})}),(0,V.jsxs)(`span`,{className:`personal-run-identity`,children:[(0,V.jsx)(`small`,{children:t.goalTitle}),(0,V.jsx)(`strong`,{children:t.agentLabel})]}),(0,V.jsxs)(`span`,{className:`personal-row-copy`,children:[(0,V.jsx)(`strong`,{children:t.title}),(0,V.jsx)(`small`,{children:t.latestActivity})]}),(0,V.jsxs)(`span`,{className:`personal-run-progress`,"aria-label":`${t.completedSteps}/${t.totalSteps}`,children:[(0,V.jsxs)(`small`,{children:[t.completedSteps,`/`,t.totalSteps]}),(0,V.jsx)(`i`,{children:(0,V.jsx)(`b`,{style:{width:`${r}%`}})})]}),(0,V.jsxs)(`span`,{className:`personal-row-status is-${t.status}`,children:[t.status===`running`?(0,V.jsx)(km,{className:`personal-spin`,size:14}):null,n(eb[t.status])]}),t.sessionId?(0,V.jsx)(`span`,{className:`personal-run-open-label`,children:n(`tasks.viewExecution`)}):null,(0,V.jsx)(sm,{size:17})]})}function nb({onSelect:e,schedule:t}){let{t:n}=Ji(),r=t.scheduleKind===`heartbeat`;return(0,V.jsxs)(`button`,{"aria-label":`${r?`Heartbeat`:n(`tasks.scheduled`)}:${t.label};${t.status??`active`}`,className:`personal-schedule-row`,onClick:e,type:`button`,children:[(0,V.jsx)(`span`,{className:`personal-schedule-icon`,children:r?(0,V.jsx)(Vm,{size:17}):(0,V.jsx)(im,{size:17})}),(0,V.jsxs)(`span`,{className:`personal-schedule-copy`,children:[(0,V.jsx)(`small`,{children:n(r?`schedule.heartbeat`:`schedule.monitor`)}),(0,V.jsx)(`strong`,{children:t.label}),(0,V.jsx)(`p`,{children:t.schedule??n(`schedule.summary`)})]}),(0,V.jsx)(`span`,{className:`personal-schedule-status is-${t.status??`active`}`,children:t.status===`paused`?n(`schedule.paused`):n(`schedule.active`)}),(0,V.jsx)(sm,{size:16})]})}function rb({delivery:e}){let{t}=Ji();if(!e)return null;let n=e.status===`delivered`?e.verification===`reconciled_after_restart`?t(`returnDelivery.reconciled`):t(`returnDelivery.delivered`):e.status===`verification_required`?t(`returnDelivery.verifying`):e.status===`explicit_unverified`?t(`returnDelivery.unverified`):t(`returnDelivery.queued`),r=e.status===`delivered`?`delivered`:e.status===`verification_required`?`verification_required`:e.status===`explicit_unverified`?`explicit_unverified`:`queued`;return(0,V.jsx)(`small`,{className:`personal-return-delivery is-${r}`,role:`status`,children:n})}function ib({items:e,onSelect:t,selectedGoal:n}){let{t:r}=Ji();if(e.length===0)return(0,V.jsxs)(`div`,{className:`personal-timeline-empty`,children:[(0,V.jsx)(`span`,{children:(0,V.jsx)(Qm,{size:20})}),(0,V.jsx)(`strong`,{children:r(n?`timeline.emptyGoal`:`timeline.emptyWorkspace`)}),(0,V.jsx)(`p`,{children:r(n?`timeline.emptyGoalDescription`:`timeline.emptyWorkspaceDescription`)})]});let i=[...e].reverse().find(e=>e.kind===`message`&&e.message.role!==`user`||e.kind===`proposal`&&[`applied`,`stale`,`error`,`gated`].includes(e.proposal.status)||e.kind===`run`&&e.run.status===`completed`),a=i?.kind===`message`?`${i.message.agentLabel??r(`header.manager`)}:${i.message.pending?r(`timeline.pending`):i.message.text}`:i?.kind===`proposal`?`${i.proposal.title}:${i.proposal.status}`:i?.kind===`run`?r(`timeline.runCompleted`,{run:i.run.title}):``,o=e.filter(e=>e.kind===`proposal`&&e.proposal.status===`gated`),s=e.filter(e=>e.kind!==`proposal`),c=e.filter(e=>e.kind===`proposal`&&e.proposal.status!==`gated`);function l(e){return e.kind===`attention`?(0,V.jsx)(Ky,{attention:e.attention,onSelect:()=>t({item:e.attention,kind:`attention`})},e.id):e.kind===`run`?(0,V.jsx)(tb,{onSelect:()=>t({item:e.run,kind:`run`}),run:e.run},e.id):e.kind===`output`?(0,V.jsx)($y,{onSelect:()=>t({item:e.output,kind:`output`}),output:e.output},e.id):e.kind===`schedule`?(0,V.jsx)(nb,{onSelect:()=>t({item:e.schedule,kind:`schedule`}),schedule:e.schedule},e.id):e.kind===`proposal`?(0,V.jsxs)(`button`,{className:`personal-proposal-row is-${e.proposal.status}`,onClick:()=>t({item:e.proposal,kind:`proposal`}),type:`button`,children:[(0,V.jsx)(`span`,{children:(0,V.jsx)(Qm,{size:17})}),(0,V.jsxs)(`span`,{children:[(0,V.jsxs)(`small`,{children:[e.proposal.actionKind,` · `,e.proposal.status]}),(0,V.jsx)(`strong`,{children:e.proposal.title}),(0,V.jsx)(`p`,{children:e.proposal.impact})]}),(0,V.jsx)(`b`,{children:e.proposal.status===`gated`&&e.proposal.actionKind!==`operation.execute`?r(`timeline.review`):e.proposal.primaryLabel??r(`timeline.reviewAndConfirm`)})]},e.id):(0,V.jsxs)(`article`,{className:`personal-message is-${e.message.role}`,children:[e.message.role===`user`?null:(0,V.jsx)(`span`,{className:`personal-message-avatar`,children:(0,V.jsx)(nm,{size:17})}),(0,V.jsxs)(`div`,{children:[(0,V.jsxs)(`header`,{children:[(0,V.jsx)(`strong`,{children:e.message.role===`user`?r(`common.you`):e.message.agentLabel??r(`header.manager`)}),e.message.time?(0,V.jsx)(`time`,{children:e.message.time}):null]}),e.message.attachments?.length?(0,V.jsx)(`div`,{className:`personal-message-images`,children:e.message.attachments.map(e=>(0,V.jsx)(`img`,{alt:e.name,src:e.dataUrl},e.id))}):null,e.message.role===`user`?(0,V.jsx)(`p`,{children:e.message.text}):(0,V.jsx)(Qy,{text:e.message.text}),e.message.pending?(0,V.jsx)(`span`,{className:`personal-message-pending`,children:r(`timeline.pending`)}):null,(0,V.jsx)(rb,{delivery:e.message.returnDelivery})]})]},e.id)}return(0,V.jsxs)(V.Fragment,{children:[(0,V.jsx)(`p`,{"aria-atomic":`true`,"aria-live":`polite`,className:`personal-live-region`,role:`status`,children:a}),(0,V.jsxs)(`div`,{className:`personal-channel-timeline`,children:[s.map(l),o.length?(0,V.jsxs)(`details`,{className:`personal-gated-summary`,children:[(0,V.jsxs)(`summary`,{children:[(0,V.jsx)(`span`,{children:(0,V.jsx)(Qm,{size:16})}),(0,V.jsx)(`strong`,{children:r(`timeline.waitingConfirmation`)}),(0,V.jsx)(`small`,{children:r(`timeline.gateHistory`,{count:o.length})})]}),(0,V.jsx)(`div`,{children:o.map(l)})]}):null,c.map(l)]})]})}function ab({goal:e}){let{t,locale:n}=Ji(),r=n===`zh-CN`?{checkpoint_satisfied:`检查点满足`,checkpoint_fresh:`检查点有效`,path_outcome_valid:`路径决策有效`,evidence_refs_present:`证据引用齐全`,final_outcome_claim_present:`最终成果声明齐全`,no_reported_outcome_gap:`无已报告成果缺口`}:{checkpoint_satisfied:`Checkpoint satisfied`,checkpoint_fresh:`Checkpoint current`,path_outcome_valid:`Valid path decision`,evidence_refs_present:`Evidence refs present`,final_outcome_claim_present:`Final outcome claim present`,no_reported_outcome_gap:`No reported outcome gap`},i={connected:t(`acceptance.connected`),mapped:t(`acceptance.mapped`),refreshed:t(`acceptance.refreshed`),adapter_inspected:t(`acceptance.inspected`),run_recorded:t(`acceptance.recorded`),reward_judged:t(`acceptance.judged`),operator_approved:t(`acceptance.approved`),controller_ready:t(`acceptance.ready`),attention_queue:t(`acceptance.attentionSource`),agent_vision:t(`acceptance.visionSource`),todo_projection:t(`acceptance.todoSource`),current_run:t(`acceptance.runSource`)},a=e=>i[e]??t(`acceptance.unknown`),o=e.acceptanceObservation,s=e.loadState||!o||o.goal_id!==e.goalId||o.coverage===`unavailable`;return(0,V.jsxs)(`section`,{className:`personal-detail-card personal-goal-acceptance`,"aria-label":t(`acceptance.title`),children:[(0,V.jsxs)(`div`,{className:`personal-detail-card-title`,children:[(0,V.jsx)(`h3`,{children:t(`acceptance.title`)}),(0,V.jsx)(`em`,{children:t(`common.readOnly`)})]}),(0,V.jsx)(`p`,{role:`status`,children:t(s?`acceptance.unavailable`:`acceptance.partial`)}),!s&&o?(0,V.jsxs)(V.Fragment,{children:[(0,V.jsx)(`h4`,{children:t(`acceptance.gaps`)}),o.acceptance_gaps.length?o.acceptance_gaps.map((e,i)=>(0,V.jsxs)(`div`,{className:`personal-acceptance-observation`,children:[(0,V.jsx)(`p`,{children:e.reason??t(`acceptance.reasonUnknown`)}),e.resolution_hint?(0,V.jsx)(`p`,{children:e.resolution_hint}):null,e.component_checks?(0,V.jsx)(`div`,{children:Object.entries(e.component_checks).map(([e,t])=>(0,V.jsxs)(`p`,{children:[r[e],`: `,n===`zh-CN`?t?`通过`:`未通过`:t?`Passed`:`Failed`]},e))}):null,(0,V.jsxs)(`dl`,{children:[(0,V.jsxs)(`div`,{children:[(0,V.jsx)(`dt`,{children:t(`common.owner`)}),(0,V.jsx)(`dd`,{children:e.owner??t(`acceptance.unknown`)})]}),(0,V.jsxs)(`div`,{children:[(0,V.jsx)(`dt`,{children:t(`acceptance.required`)}),(0,V.jsx)(`dd`,{children:e.evidence_required??t(`acceptance.unknown`)})]}),(0,V.jsxs)(`div`,{children:[(0,V.jsx)(`dt`,{children:t(`acceptance.observed`)}),(0,V.jsx)(`dd`,{children:e.observed_at??t(`acceptance.unknown`)})]})]})]},`${e.kind}:${e.owner}:${i}`)):(0,V.jsx)(`p`,{children:t(`acceptance.noGaps`)}),(0,V.jsx)(`h4`,{children:t(`acceptance.guards`)}),o.guards.length?o.guards.map((e,n)=>(0,V.jsxs)(`div`,{className:`personal-acceptance-observation`,children:[(0,V.jsx)(`p`,{children:e.reason??t(`acceptance.reasonUnknown`)}),(0,V.jsxs)(`dl`,{children:[(0,V.jsxs)(`div`,{children:[(0,V.jsx)(`dt`,{children:t(`common.owner`)}),(0,V.jsx)(`dd`,{children:e.owner??t(`acceptance.unknown`)})]}),e.blocks_agent?(0,V.jsxs)(`div`,{children:[(0,V.jsx)(`dt`,{children:t(`common.agent`)}),(0,V.jsx)(`dd`,{children:e.blocks_agent})]}):null,e.todo_id?(0,V.jsxs)(`div`,{children:[(0,V.jsx)(`dt`,{children:t(`common.task`)}),(0,V.jsx)(`dd`,{children:e.todo_id})]}):null,(0,V.jsxs)(`div`,{children:[(0,V.jsx)(`dt`,{children:t(`acceptance.required`)}),(0,V.jsx)(`dd`,{children:e.evidence_required??t(`acceptance.unknown`)})]}),(0,V.jsxs)(`div`,{children:[(0,V.jsx)(`dt`,{children:t(`acceptance.scope`)}),(0,V.jsx)(`dd`,{children:e.decision_scope??t(`acceptance.unknown`)})]})]})]},`${e.todo_id}:${n}`)):(0,V.jsx)(`p`,{children:t(`acceptance.noGuards`)}),(0,V.jsx)(`h4`,{children:t(`acceptance.next`)}),(0,V.jsx)(`p`,{children:o.next_action??t(`acceptance.unknown`)}),(0,V.jsxs)(`details`,{children:[(0,V.jsxs)(`summary`,{children:[t(`acceptance.historical_progress`),` · `,o.historical_progress.length]}),(0,V.jsx)(`p`,{children:t(`acceptance.historical`)}),o.historical_progress.map(e=>(0,V.jsxs)(`p`,{children:[(0,V.jsx)(`strong`,{children:a(e.kind)}),` · `,e.observed_at??t(`acceptance.unknown`),` `,e.evidence_refs.join(`, `)]},e.kind))]}),o.missing_sources.length?(0,V.jsxs)(`p`,{children:[t(`acceptance.missing`),` `,o.missing_sources.map(a).join(`, `)]}):null,o.truncated?(0,V.jsx)(`p`,{children:t(`acceptance.truncated`)}):null]}):null]})}function ob({item:e,successor:t,onSelect:n}){let{t:r}=Ji(),i=e.details;return(0,V.jsxs)(`section`,{className:`personal-detail-card`,"aria-label":r(`attentionDetail.title`),children:[(0,V.jsx)(`h3`,{children:r(`attentionDetail.title`)}),(0,V.jsxs)(`dl`,{children:[(0,V.jsxs)(`div`,{children:[(0,V.jsx)(`dt`,{children:r(`attentionDetail.request`)}),(0,V.jsx)(`dd`,{children:r(i?.interaction===`decision`?`attentionDetail.decision`:`attentionDetail.unknownRequest`)})]}),(0,V.jsxs)(`div`,{children:[(0,V.jsx)(`dt`,{children:r(`common.status`)}),(0,V.jsx)(`dd`,{children:r(`attentionDetail.${i?.lifecycle??`unknown`}`)})]}),(0,V.jsxs)(`div`,{children:[(0,V.jsx)(`dt`,{children:r(`drawer.reason`)}),(0,V.jsx)(`dd`,{children:i?.reason??e.explanation??r(`attentionDetail.unknownReason`)})]}),(0,V.jsxs)(`div`,{children:[(0,V.jsx)(`dt`,{children:`Todo`}),(0,V.jsx)(`dd`,{children:e.todoId})]}),(0,V.jsxs)(`div`,{children:[(0,V.jsx)(`dt`,{children:r(`attentionDetail.targetTodo`)}),(0,V.jsx)(`dd`,{children:i?.unblocksTodoId??r(`attentionDetail.notProvided`)})]}),(0,V.jsxs)(`div`,{children:[(0,V.jsx)(`dt`,{children:r(`attentionDetail.targetAgent`)}),(0,V.jsx)(`dd`,{children:i?.blocksAgent??r(`attentionDetail.notProvided`)})]}),(0,V.jsxs)(`div`,{children:[(0,V.jsx)(`dt`,{children:r(`attentionDetail.scope`)}),(0,V.jsx)(`dd`,{children:i?.decisionScope?`${i.decisionScope.kind} · ${i.decisionScope.granularity} · ${i.decisionScope.scopeKey}`:r(`attentionDetail.notProvided`)})]}),(0,V.jsxs)(`div`,{children:[(0,V.jsx)(`dt`,{children:r(`drawer.evidence`)}),(0,V.jsx)(`dd`,{children:i?.evidence??e.evidence??r(`drawer.decisionDefaultEvidence`)})]})]}),i?.supersededBy?(0,V.jsxs)(`p`,{children:[r(`attentionDetail.replacement`),`: `,i.supersededBy]}):null,t&&n?(0,V.jsx)(`button`,{className:`personal-secondary-action`,onClick:()=>n(t),type:`button`,children:r(`attentionDetail.openReplacement`)}):null,(0,V.jsx)(`p`,{children:r(`attentionDetail.boundary`)})]})}function sb(e){return e.replace(/\s+/gu,` `).trim()}function cb(e,t){let n=RegExp(`(?:不要|不需要|无需|禁止|别|暂不|do not\\b|don't\\b|without\\b).{0,10}(?:${t.source})`,`iu`),r=RegExp(`(?:${t.source}).{0,10}(?:不要|不需要|无需|禁止|关闭)`,`iu`),i=RegExp(`disable\\b.{0,10}(?:${t.source})|(?:turn|switch|set)\\b.{0,10}(?:${t.source}).{0,10}\\boff\\b|(?:${t.source})\\s+(?:is\\s+)?disabled\\b`,`iu`);return n.test(e)||r.test(e)||i.test(e)}function lb(e){return/(我现在该做什么|下一步|哪些\s*Goal\s*在等我|需要我|谁在等我|Agent\s*在做什么|当前进度|总结(?:今天)?进展)/iu.test(e)}function ub(e){let t=/(怎么|如何|为什么|给.*建议|分析一下|解释|只读)/u.test(e),n=/(解决一下|修复一下|处理一下|执行一下|改一下|跑(?:一下)?测试|rebase|push|提交|推送)/iu.test(e);return!t&&n&&/(帮我|请|给我|直接|现在|开始|bytedcli|codebase|git|rebase|push|提交|推送)/iu.test(e)}function db(e){return sb(e).toLowerCase().match(/(?:^|[\s,,;;:((:]|到|至)(?todo_done:todo_[a-z0-9_-]{3,64}|pr_merged:(?:(?:[a-z0-9_.-]{1,80})\/(?:[a-z0-9_.-]{1,100}))?#[1-9][0-9]{0,8}|capacity_available:[a-z][a-z0-9_:-]{0,63}|resume_at:[1-9][0-9]{3}-[0-9]{2}-[0-9]{2}t[0-9]{2}:[0-9]{2}:[0-9]{2}(?:\.[0-9]{1,3})?(?:z|[+-][0-9]{2}:[0-9]{2}))(?=$|[\s,,。;;))])/iu)?.groups?.condition??null}function fb(e,t){let n=sb(e),r=[],i=t.agents.find(e=>{let t=n.toLowerCase();return t.includes(e.agentId.toLowerCase())||t.includes(e.label.toLowerCase())}),a=t.todos.find(e=>n.includes(e.todoId)||n.includes(e.text)),o=/(刚刚|已经|已)(?:经)?\s*(新增|创建|添加)(?:的)?\s*(todo|待办|任务)/iu.test(n),s=!!t.goalId&&!cb(n,/heartbeat|心跳/iu)&&/(heartbeat|心跳|每天推进|持续推进|daily progress)/iu.test(n);if(!t.goalId&&!cb(n,/goal|目标/iu)&&/(创建|新建|设置|create|start|set up).{0,24}(goal|目标)/iu.test(n)&&r.push({actionKind:`goal.create`,confidence:.97,normalizedParameters:{heartbeat_enabled:!cb(n,/heartbeat|心跳/iu)&&/(heartbeat|心跳|每天推进|持续推进|daily progress)/iu.test(n)}}),t.goalId&&s&&r.push({actionKind:`heartbeat.bind`,confidence:.96,normalizedParameters:{goal_id:t.goalId}}),t.goalId&&!s&&!cb(n,/定时|监控|监测|持续观察|scheduled check|monitor/iu)&&/(定时|监控|监测|每.{0,8}(分钟|小时|天)|持续观察|scheduled check|monitor|every.{0,12}(minute|hour|day)|daily)/iu.test(n)&&r.push({actionKind:`monitor.create`,confidence:.94,normalizedParameters:{goal_id:t.goalId}}),t.goalId&&i&&!cb(n,/绑定|负责|接管|管理/iu)&&/((让|交给).{0,20}(管理|负责|接管).{0,8}(goal|目标)|(绑定).{0,12}(goal|目标)|(goal|目标).{0,12}(交给|绑定|负责|接管))/iu.test(n)&&r.push({actionKind:`agent.bind`,confidence:.96,normalizedParameters:{agent_id:i.agentId,goal_id:t.goalId}}),t.goalId&&!o&&!cb(n,RegExp(`todo|待办|任务`,`iu`))&&/(创建|新建|新增|添加|加一个|记一个).{0,16}(todo|待办|任务)|(todo|待办|任务).{0,12}(创建|新建|新增|添加)|(?:create|add)(?:\s+(?:a|an|new))?\s+(?:todo|task)|(?:todo|task).{0,12}(?:create|add)/iu.test(n)&&r.push({actionKind:`todo.create`,confidence:.94,normalizedParameters:{goal_id:t.goalId}}),t.goalId&&ub(n)&&r.push({actionKind:`todo.create`,confidence:.9,normalizedParameters:{goal_id:t.goalId,start_execution:!0}}),t.goalId&&a){let e=!cb(n,/完成|做完|关闭/u)&&/完成|做完|关闭/u.test(n)?`complete`:!cb(n,/阻塞|卡住/u)&&/阻塞|卡住/u.test(n)?`block`:!cb(n,/暂缓|稍后|推迟/u)&&/暂缓|稍后|推迟/u.test(n)?`defer`:i&&!cb(n,/交给|分配给|改派/u)&&/交给|分配给|改派/u.test(n)?`reassign`:null;if(e){let i=e===`defer`?db(n):null;if(e===`defer`&&!i)return{actionKind:`todo.update`,confidence:.97,missingFields:[`resume_when`],normalizedParameters:{goal_id:t.goalId,operation:e,todo_id:a.todoId},route:`clarify`};r.push({actionKind:`todo.update`,confidence:.97,normalizedParameters:{goal_id:t.goalId,operation:e,...i?{resume_when:i}:{},todo_id:a.todoId}})}}let c=[...new Map(r.map(e=>[e.actionKind,e])).values()];return c.length>1?{actionKind:null,confidence:.4,missingFields:[`single_intent`],normalizedParameters:{},route:`clarify`}:c.length===1?{...c[0],missingFields:[],route:`typed_action`}:!t.goalId&&lb(n)?{actionKind:null,confidence:.98,missingFields:[],normalizedParameters:{},route:`projection`}:{actionKind:null,confidence:.75,missingFields:[],normalizedParameters:{},route:`agent_chat`}}function pb(e,t,n){if(!e)return{};if(!t.trim())return{modelConfig:null};let r={model:t.trim()};return n&&(r.reasoning_effort=n),{modelConfig:r}}var mb=[`a[href]`,`button:not([disabled])`,`textarea:not([disabled])`,`select:not([disabled])`,`input:not([disabled])`,`[tabindex]:not([tabindex='-1'])`].join(`,`),hb=[{key:`drawer.taskBlock`,operation:`block`},{key:`drawer.taskSuccessor`,operation:`successor_create`}],gb=[{key:`drawer.decisionReject`,resolution:`reject`},{key:`drawer.decisionDefer`,resolution:`defer`}],_b=Array.from({length:32},(e,t)=>t+1),vb=/^[a-z][a-z0-9_.-]{0,63}$/u;function yb(e){let t=String(e??``).trim().toLowerCase();return vb.test(t)?t:null}function bb(e,t){return e.enabled===t.enabled&&e.maxChildren===t.maxChildren&&JSON.stringify(e.modelConfig??null)===JSON.stringify(t.modelConfig??null)&&[...e.allowedDomains].sort((e,t)=>e.localeCompare(t)).join(`\0`)===[...t.allowedDomains].sort((e,t)=>e.localeCompare(t)).join(`\0`)}function xb({agents:e,attentionHistory:t=[],onSelectAttention:n,callbacks:r,goalNotifications:i=[],goals:a=[],inspectorExpanded:o=!1,larkConnections:s=[],onClose:c,onToggleInspectorSize:l,readOnly:u=!1,runs:d=[],selection:f}){let{locale:p,t:m}=Ji(),[h,g]=(0,B.useState)(``),[_,v]=(0,B.useState)(!1),[y,b]=(0,B.useState)(`idle`),[x,S]=(0,B.useState)(`record`),[C,w]=(0,B.useState)([]),[T,E]=(0,B.useState)(null),[D,O]=(0,B.useState)(2),[k,ee]=(0,B.useState)(``),[te,A]=(0,B.useState)(``),[j,M]=(0,B.useState)(`idle`),[ne,N]=(0,B.useState)(null),[P,re]=(0,B.useState)(null),ie=(0,B.useRef)(null),ae=(0,B.useRef)(null),[F,oe]=(0,B.useState)(e.find(e=>e.available)?.agentId??`codex`),[I,se]=(0,B.useState)(``),L=(0,B.useRef)(null),ce=(0,B.useRef)(null),le=(0,B.useRef)(null),ue=(0,B.useRef)(null),de=f.kind===`run`?`run:${f.item.runId}`:f.kind===`proposal`?`proposal:${f.item.previewId}`:f.kind===`todo`?`todo:${f.item.todoId}`:f.kind===`attention`?`attention:${f.item.todoId}`:f.kind===`output`?`output:${f.item.outputId}`:f.kind===`schedule`?`schedule:${f.item.scheduleId}`:`goal:${f.item.goalId}`;(0,B.useEffect)(()=>{b(`idle`),v(!1),S(`record`),se(``);let e=f.kind===`goal`?f.item.subagentExecution:void 0;w(e?.allowedDomains??[]),ee(e?.modelConfig?.model??``),A(e?.modelConfig?.reasoning_effort??``),O(e?.maxChildren?Math.min(e.maxChildren,32):2),E(null),M(`idle`),N(null),re(null),ie.current=e??null,ae.current=null},[de]);let R=f.kind===`goal`?f.item.subagentExecution:void 0;(0,B.useEffect)(()=>{let e=ie.current,t=R?!e||!bb(e,R):e!==null;if(ie.current=R??null,!P){t&&R&&(w(R.allowedDomains),ee(R.modelConfig?.model??``),A(R.modelConfig?.reasoning_effort??``),O(R.maxChildren||2),E(null),M(`idle`),N(null));return}let n=ae.current;(!R||bb(P,R)||n&&!bb(n,R))&&(R&&(w(R.allowedDomains),ee(R.modelConfig?.model??``),A(R.modelConfig?.reasoning_effort??``),O(R.maxChildren||2)),ae.current=null,re(null))},[R,P]),(0,B.useEffect)(()=>{let e=document.activeElement;e instanceof HTMLElement&&!ce.current?.contains(e)&&(le.current=e);let t=window.requestAnimationFrame(()=>ue.current?.focus());return()=>window.cancelAnimationFrame(t)},[de]);let fe=(0,B.useCallback)(()=>{let e=le.current;c(),window.requestAnimationFrame(()=>e?.focus())},[c]);(0,B.useEffect)(()=>{function e(e){if(e.key===`Escape`){e.preventDefault(),fe();return}if(e.key===`Tab`&&f.kind!==`todo`){let t=Array.from(ce.current?.querySelectorAll(mb)??[]).filter(e=>!e.hasAttribute(`disabled`)&&e.getAttribute(`aria-hidden`)!==`true`);if(t.length===0)return;let n=t[0],r=t[t.length-1];e.shiftKey&&document.activeElement===n?(e.preventDefault(),r.focus()):!e.shiftKey&&document.activeElement===r&&(e.preventDefault(),n.focus())}}return document.addEventListener(`keydown`,e),()=>{document.removeEventListener(`keydown`,e)}},[fe,f.kind]);let pe=f.kind===`attention`?m(`drawer.titleAttention`):f.kind===`todo`?m(`drawer.taskDetails`):f.kind===`run`?m(`drawer.runDetails`):f.kind===`output`?m(`drawer.titleOutput`):f.kind===`proposal`?m(f.item.status===`applied`?`drawer.titleProposalApplied`:`drawer.titleProposalConfirm`):f.kind===`schedule`?f.item.scheduleKind===`heartbeat`?`Heartbeat`:m(`drawer.titleSchedule`):m(`drawer.goalDetails`),me=f.kind===`proposal`?f.item.goalId??`manager`:f.item.goalId,he=f.kind===`attention`?f.item.goalTitle??m(`drawer.currentGoal`):f.kind===`todo`||f.kind===`run`?f.item.goalTitle:f.kind===`output`?f.item.goalTitle??m(`drawer.currentGoal`):f.kind===`goal`?f.item.title:f.kind===`schedule`?m(`drawer.goalAutoRun`):f.item.goalId?m(`drawer.goalChanges`):m(`drawer.managerChanges`),ge=f.kind===`goal`?d.find(e=>e.goalId===f.item.goalId&&!!e.sessionId)??d.find(e=>e.goalId===f.item.goalId):null,_e=f.kind===`run`&&(f.item.completedSteps>0||!!f.item.latestActivity||!!f.item.outputs?.length),ve=f.kind===`attention`?Zi(f.item.updatedAt,m):null,ye=db(I);async function be(){f.kind!==`run`||!h.trim()||(await r.onCorrectRun?.(f.item,h.trim()),g(``))}async function xe(e,t,n,i){if(t===`successor_create`){await r.onPreviewAction?.({actionKind:`todo.create`,context:{goal_id:e.goalId,kind:`todo`,todo_id:e.todoId},idempotencyKey:`workspace-todo-successor-${e.todoId}-${Date.now().toString(36)}`,normalizedParameters:{goal_id:e.goalId,text:m(`drawer.taskSuccessorText`,{task:e.text})},summary:m(`drawer.taskSuccessorSummary`,{task:e.text})});return}await r.onPreviewAction?.({actionKind:`todo.update`,context:{goal_id:e.goalId,kind:`todo`,todo_id:e.todoId},idempotencyKey:`workspace-todo-${e.todoId}-${t}-${Date.now().toString(36)}`,normalizedParameters:{agent_id:e.claimedBy??F,goal_id:e.goalId,operation:t,...t===`block`?{note:m(`drawer.taskSuccessorNote`)}:{},...t===`defer`&&i?{resume_when:i}:{},todo_id:e.todoId},summary:`${n}:${e.text}`})}async function Se(e,t,n){u||!Xd(e)||await r.onPreviewAction?.({actionKind:`gate.resolve`,context:{goal_id:e.goalId,kind:`todo`,todo_id:e.todoId},idempotencyKey:`workspace-decision-${e.todoId}-${t}-${Date.now().toString(36)}`,normalizedParameters:{goal_id:e.goalId,decision:t,todo_id:e.todoId},summary:`${n}:${e.text}`})}let Ce=f.kind===`goal`?P??f.item.subagentExecution??{allowedDomains:[],domainCandidates:[],enabled:!1,maxChildren:0}:{allowedDomains:[],domainCandidates:[],enabled:!1,maxChildren:0},we=j===`previewing`||j===`applying`,Te=(()=>{if(f.kind!==`goal`)return[];let e=new Map;for(let t of Ce.allowedDomains){let n=yb(t);n&&e.set(n,{matchingTodoCount:0,value:n})}if(Ce.domainCandidates)for(let t of Ce.domainCandidates){let n=yb(t.domain);if(!n)continue;let r=e.get(n);e.set(n,{matchingTodoCount:(r?.matchingTodoCount??0)+t.matchingTodoCount,value:n})}else for(let t of f.item.agentTodos){if(t.done||t.taskClass!==`advancement_task`)continue;let n=yb(t.taskDomain);if(!n)continue;let r=e.get(n);e.set(n,{matchingTodoCount:(r?.matchingTodoCount??0)+1,value:n})}return[...e.values()]})();function Ee(){w(Ce.allowedDomains),ee(Ce.modelConfig?.model??``),A(Ce.modelConfig?.reasoning_effort??``),O(Ce.maxChildren||2),E(null),M(`idle`),N(null)}function De(){let e=[...new Set(C.map(e=>yb(e)))];return e.every(e=>!!e)?e:null}function z(e,t){w(n=>t?[...n,e].filter((e,t,n)=>n.indexOf(e)===t):n.filter(t=>t!==e)),N(null),M(`idle`),E(null)}async function Oe(e,t=e){if(f.kind!==`goal`||!r.onPreviewGoalSubagentConfiguration)return;let n=e?De():[];if(t&&!k.trim()&&te){M(`error`),E(m(`drawer.subagentModelRequired`));return}if(e&&!n){M(`error`),E(m(`drawer.subagentDomainInvalid`)),N(null);return}let i={allowedDomains:n??[],enabled:e,goalId:f.item.goalId,maxChildren:e?D:0,...pb(t,k,te)};M(`previewing`),E(m(`drawer.subagentPreviewing`)),N(null);try{let e=await r.onPreviewGoalSubagentConfiguration(i);if(!e.changed){ae.current=R??null,re({...e.configuration,domainCandidates:Ce.domainCandidates}),w(e.configuration.allowedDomains),ee(e.configuration.modelConfig?.model??``),A(e.configuration.modelConfig?.reasoning_effort??``),O(e.configuration.maxChildren||2),M(`success`),E(m(`drawer.subagentNoChange`));return}N({...i,changed:e.changed,previewId:e.previewId}),M(`ready`),E(m(`drawer.subagentPreviewReady`))}catch(e){M(`error`),E(e instanceof Error?e.message:m(`drawer.subagentPreviewFailed`))}}async function ke(){if(!(!ne||!r.onApplyGoalSubagentConfiguration)){M(`applying`),E(m(`drawer.subagentApplying`));try{let e=await r.onApplyGoalSubagentConfiguration({allowedDomains:ne.allowedDomains,enabled:ne.enabled,goalId:ne.goalId,maxChildren:ne.maxChildren,modelConfig:ne.modelConfig,previewId:ne.previewId});ae.current=R??null,re({...e,domainCandidates:Ce.domainCandidates}),w(e.allowedDomains),ee(e.modelConfig?.model??``),A(e.modelConfig?.reasoning_effort??``),O(e.maxChildren||2),M(`success`),E(m(`drawer.subagentApplied`)),N(null);try{await r.onRefresh?.()}catch{M(`warning`),E(m(`drawer.subagentAppliedRefreshFailed`))}}catch(e){M(`error`),E(e instanceof Error?e.message:m(`drawer.subagentApplyFailed`))}}}return(0,V.jsxs)(`div`,{"aria-labelledby":`personal-drawer-title`,"aria-modal":f.kind===`todo`?void 0:`true`,className:`personal-context-drawer`,"data-context-kind":f.kind,ref:ce,role:`dialog`,children:[(0,V.jsxs)(`header`,{className:`personal-drawer-header${f.kind===`todo`?` is-task-inspector`:``}`,children:[(0,V.jsxs)(`div`,{children:[(0,V.jsx)(`h2`,{id:`personal-drawer-title`,ref:ue,tabIndex:-1,children:pe}),(0,V.jsx)(`p`,{children:he})]}),(0,V.jsxs)(`div`,{className:`personal-drawer-header-actions`,children:[f.kind===`todo`&&l?(0,V.jsx)(`button`,{"aria-label":m(o?`drawer.inspectorHalf`:`drawer.inspectorFull`),className:`personal-icon-button personal-inspector-size`,onClick:l,title:m(o?`drawer.inspectorHalfView`:`drawer.inspectorFullView`),type:`button`,children:o?(0,V.jsx)(Pm,{size:17}):(0,V.jsx)(Am,{size:17})}):null,(0,V.jsxs)(`button`,{"aria-label":m(`drawer.closeDetail`,{context:he}),className:`personal-icon-button personal-drawer-close`,onClick:fe,ref:L,type:`button`,children:[(0,V.jsx)(Xp,{className:`personal-mobile-back`,size:18}),(0,V.jsx)(ah,{className:`personal-desktop-close`,size:18})]})]})]}),(0,V.jsxs)(`div`,{className:`personal-drawer-body`,children:[f.kind===`attention`?(0,V.jsxs)(V.Fragment,{children:[(0,V.jsxs)(`section`,{className:`personal-detail-card is-attention`,children:[(0,V.jsx)(`small`,{children:f.item.blocking?m(`drawer.attentionBlocking`):m(`drawer.attentionWaiting`)}),(0,V.jsx)(`h3`,{children:f.item.text}),(0,V.jsxs)(`dl`,{children:[(0,V.jsxs)(`div`,{children:[(0,V.jsx)(`dt`,{children:`Goal`}),(0,V.jsx)(`dd`,{children:f.item.goalTitle??f.item.goalId})]}),(0,V.jsxs)(`div`,{children:[(0,V.jsx)(`dt`,{children:m(`drawer.priority`)}),(0,V.jsx)(`dd`,{children:f.item.priority??`medium`})]}),ve?(0,V.jsxs)(`div`,{children:[(0,V.jsx)(`dt`,{children:m(`common.waiting`)}),(0,V.jsx)(`dd`,{children:m(`tasks.waitingAge`,{age:ve})})]}):null]})]}),(0,V.jsx)(ob,{item:f.item,onSelect:n,successor:Yd(f.item,t)}),!u&&Xd(f.item)?(0,V.jsxs)(V.Fragment,{children:[(0,V.jsxs)(`button`,{className:`personal-primary-action`,onClick:()=>void Se(f.item,`approve`,m(`common.confirm`)),type:`button`,children:[(0,V.jsx)(am,{size:17}),m(`drawer.decisionReview`)]}),(0,V.jsxs)(`details`,{className:`personal-compact-menu`,children:[(0,V.jsxs)(`summary`,{children:[(0,V.jsx)(gm,{size:17}),m(`drawer.decisionMore`)]}),(0,V.jsxs)(`div`,{children:[(0,V.jsxs)(`button`,{onClick:()=>void r.onExplainDecision?.(f.item),type:`button`,children:[(0,V.jsx)(Mm,{size:16}),m(`drawer.explainDecision`)]}),gb.map(e=>(0,V.jsx)(`button`,{onClick:()=>void Se(f.item,e.resolution,m(e.key)),type:`button`,children:m(e.key)},e.resolution))]})]})]}):null]}):null,f.kind===`todo`?(0,V.jsxs)(V.Fragment,{children:[(0,V.jsxs)(`section`,{className:`personal-task-inspector-summary`,children:[(0,V.jsxs)(`div`,{className:`personal-task-inspector-status`,children:[(0,V.jsxs)(`span`,{className:f.item.done?`is-done`:f.item.status===`blocked`?`is-blocked`:`is-open`,children:[(0,V.jsx)(`i`,{}),f.item.done?m(`drawer.taskStatusCompleted`):f.item.status===`deferred`?m(`drawer.taskStatusDeferred`):f.item.status===`blocked`?m(`drawer.taskStatusBlocked`):m(`drawer.taskStatusOpen`)]}),f.item.priority?(0,V.jsx)(`span`,{children:f.item.priority}):null,(0,V.jsx)(`span`,{children:f.item.taskClass===`advancement_task`?m(`drawer.taskAdvancement`):f.item.taskClass??m(`drawer.taskOrdinary`)})]}),(0,V.jsx)(`h3`,{children:f.item.text})]}),(0,V.jsxs)(`section`,{"aria-label":m(`drawer.taskInfo`),className:`personal-task-inspector-fields`,children:[(0,V.jsx)(`h4`,{children:m(`drawer.taskInfo`)}),(0,V.jsxs)(`dl`,{children:[(0,V.jsxs)(`div`,{children:[(0,V.jsx)(`dt`,{children:`Goal`}),(0,V.jsx)(`dd`,{children:f.item.goalTitle})]}),(0,V.jsxs)(`div`,{children:[(0,V.jsx)(`dt`,{children:m(`common.owner`)}),(0,V.jsx)(`dd`,{children:f.item.ownerLabel??f.item.claimedBy??m(`drawer.notAssigned`)})]}),(0,V.jsxs)(`div`,{children:[(0,V.jsx)(`dt`,{children:m(`common.status`)}),(0,V.jsx)(`dd`,{children:f.item.done?m(`drawer.taskStatusCompleted`):f.item.status===`deferred`?m(`drawer.taskStatusDeferred`):f.item.status===`blocked`?m(`drawer.taskStatusBlocked`):m(`drawer.taskStatusOpen`)})]}),(0,V.jsxs)(`div`,{children:[(0,V.jsx)(`dt`,{children:m(`drawer.priority`)}),(0,V.jsx)(`dd`,{children:f.item.priority??m(`drawer.notSet`)})]}),(0,V.jsxs)(`div`,{children:[(0,V.jsx)(`dt`,{children:m(`drawer.dependencies`)}),(0,V.jsx)(`dd`,{children:f.item.dependencies?.join(` · `)||m(`common.none`)})]}),f.item.status===`deferred`||f.item.resumeWhen?(0,V.jsxs)(`div`,{children:[(0,V.jsx)(`dt`,{children:m(`drawer.resumeWhen`)}),(0,V.jsx)(`dd`,{children:f.item.resumeWhen||m(`drawer.notSet`)})]}):null,f.item.resumeWhen?(0,V.jsxs)(`div`,{children:[(0,V.jsx)(`dt`,{children:m(`drawer.resumeState`)}),(0,V.jsx)(`dd`,{children:f.item.resumeReady?m(`drawer.resumeReady`):m(`drawer.resumePending`)})]}):null,f.item.resumeReceiptId?(0,V.jsxs)(`div`,{children:[(0,V.jsx)(`dt`,{children:m(`drawer.resumeReceipt`)}),(0,V.jsx)(`dd`,{children:f.item.resumeReceiptId})]}):null,(0,V.jsxs)(`div`,{children:[(0,V.jsx)(`dt`,{children:m(`drawer.nextTransition`)}),(0,V.jsx)(`dd`,{children:f.item.nextTransition??(f.item.done?m(`drawer.taskNextCompleted`):f.item.resumeReady?m(`drawer.taskNextResumeReady`):f.item.status===`deferred`?m(`drawer.taskNextDeferred`):m(`drawer.taskNextOpen`))})]})]})]}),!u&&!f.item.done?(0,V.jsxs)(`div`,{className:`personal-task-inspector-actions`,"aria-label":m(`drawer.taskActions`),children:[(0,V.jsxs)(`details`,{className:`personal-task-management`,children:[(0,V.jsxs)(`summary`,{children:[(0,V.jsx)(gm,{size:16}),m(`drawer.taskManage`)]}),(0,V.jsxs)(`div`,{children:[(0,V.jsx)(`strong`,{children:m(`drawer.reassign`)}),(0,V.jsxs)(`label`,{className:`personal-inline-agent-select`,children:[m(`drawer.reassign`),(0,V.jsx)(`select`,{"aria-label":m(`drawer.reassign`),onChange:e=>oe(e.target.value),value:F,children:e.filter(e=>e.available).map(e=>(0,V.jsx)(`option`,{value:e.agentId,children:e.label},e.agentId))}),(0,V.jsx)(`button`,{className:`personal-secondary-action`,onClick:()=>void r.onPreviewAction?.({actionKind:`todo.update`,context:{goal_id:f.item.goalId,kind:`todo`,todo_id:f.item.todoId},idempotencyKey:`workspace-todo-${f.item.todoId}-reassign-${F}-${Date.now().toString(36)}`,normalizedParameters:{agent_id:F,goal_id:f.item.goalId,operation:`reassign`,todo_id:f.item.todoId},summary:m(`drawer.reassignSummary`,{task:f.item.text})}),type:`button`,children:m(`timeline.review`)})]}),(0,V.jsx)(`strong`,{children:m(`drawer.taskDeferUntil`)}),(0,V.jsxs)(`label`,{className:`personal-inline-agent-select personal-inline-resume-when`,children:[m(`drawer.taskDeferUntil`),(0,V.jsx)(`input`,{"aria-label":m(`drawer.taskDeferCondition`),"aria-invalid":!!I.trim()&&!ye,onChange:e=>se(e.target.value),placeholder:m(`drawer.taskDeferPlaceholder`),value:I}),(0,V.jsx)(`button`,{className:`personal-secondary-action`,disabled:!ye,onClick:()=>void xe(f.item,`defer`,m(`drawer.taskDefer`),ye??void 0),type:`button`,children:m(`drawer.taskDeferReview`)}),(0,V.jsx)(`small`,{children:I.trim()&&!ye?m(`drawer.taskDeferInvalid`):m(`drawer.taskDeferSupported`)})]}),(0,V.jsx)(`div`,{className:`personal-task-management-secondary`,children:hb.map(e=>(0,V.jsx)(`button`,{onClick:()=>void xe(f.item,e.operation,m(e.key)),type:`button`,children:m(e.key)},e.operation))})]})]}),(0,V.jsxs)(`button`,{className:`personal-primary-action`,onClick:()=>void xe(f.item,`complete`,m(`drawer.taskComplete`)),type:`button`,children:[(0,V.jsx)(am,{size:17}),m(`drawer.taskComplete`)]})]}):null,f.item.done?(0,V.jsxs)(`div`,{className:`personal-task-completed-note`,children:[(0,V.jsx)(am,{size:16}),(0,V.jsxs)(`span`,{children:[(0,V.jsx)(`strong`,{children:m(`drawer.taskCompletedTitle`)}),(0,V.jsx)(`small`,{children:m(`drawer.taskCompletedNote`)})]})]}):null]}):null,f.kind===`goal`?(0,V.jsxs)(V.Fragment,{children:[(0,V.jsxs)(`section`,{className:`personal-detail-card`,children:[(0,V.jsx)(`small`,{children:Yi(f.item.state,p)}),(0,V.jsx)(`h3`,{children:f.item.title}),(0,V.jsx)(`p`,{children:f.item.agentSentence}),(0,V.jsxs)(`dl`,{children:[(0,V.jsxs)(`div`,{children:[(0,V.jsx)(`dt`,{children:m(`drawer.tokens`)}),(0,V.jsxs)(`dd`,{children:[Vy(f.item.usage?.tokens24h,m(`drawer.usageNotMeasured`),Ry),` / `,Vy(f.item.usage?.tokens7d,m(`drawer.usageNotMeasured`),Ry)]})]}),(0,V.jsxs)(`div`,{children:[(0,V.jsx)(`dt`,{children:m(`drawer.cost`)}),(0,V.jsxs)(`dd`,{children:[Vy(f.item.usage?.costUsd24h,m(`drawer.usageNotMeasured`),zy),` / `,Vy(f.item.usage?.costUsd7d,m(`drawer.usageNotMeasured`),zy)]})]}),(0,V.jsxs)(`div`,{children:[(0,V.jsx)(`dt`,{children:m(`drawer.duration`)}),(0,V.jsxs)(`dd`,{children:[Vy(f.item.usage?.durationMs24h,m(`drawer.usageNotMeasured`),By),` / `,Vy(f.item.usage?.durationMs7d,m(`drawer.usageNotMeasured`),By)]})]})]})]}),(0,V.jsx)(ab,{goal:f.item}),(()=>{let e=i.find(e=>e.goalId===f.item.goalId),t=s.find(e=>e.goal_id===f.item.goalId);return(0,V.jsxs)(V.Fragment,{children:[f.item.repository?(0,V.jsxs)(`section`,{className:`personal-detail-card personal-goal-repository`,children:[(0,V.jsxs)(`div`,{className:`personal-detail-card-title`,children:[(0,V.jsx)(`small`,{children:m(`drawer.repository`)}),(0,V.jsx)(`em`,{children:m(`common.readOnly`)})]}),(0,V.jsxs)(`h3`,{children:[(0,V.jsx)(Sm,{size:16}),f.item.repository.label]}),(0,V.jsxs)(`dl`,{children:[(0,V.jsxs)(`div`,{children:[(0,V.jsx)(`dt`,{children:m(`drawer.branch`)}),(0,V.jsx)(`dd`,{children:f.item.repository.branch||`detached`})]}),(0,V.jsxs)(`div`,{children:[(0,V.jsx)(`dt`,{children:`Role`}),(0,V.jsx)(`dd`,{children:m(`drawer.repositoryRole`)})]})]}),(0,V.jsxs)(`button`,{className:`personal-secondary-action`,onClick:()=>{let e=navigator.clipboard?.writeText(f.item.repository?.identity??``);if(!e){b(`error`);return}e.then(()=>b(`copied`)).catch(()=>b(`error`))},type:`button`,children:[(0,V.jsx)(pm,{size:15}),m(y===`copied`?`drawer.copyRepositoryDone`:`drawer.copyRepository`)]}),y===`error`?(0,V.jsx)(`p`,{className:`personal-copy-feedback is-error`,role:`status`,children:m(`drawer.copyRepositoryError`)}):y===`copied`?(0,V.jsx)(`p`,{className:`personal-copy-feedback`,role:`status`,children:m(`drawer.copyRepositorySuccess`)}):null]}):null,u?(0,V.jsxs)(`section`,{className:`personal-detail-card personal-goal-notification`,children:[(0,V.jsx)(`small`,{children:m(`drawer.larkConnection`)}),(0,V.jsx)(`h3`,{children:m(`drawer.remoteDetailsUnavailable`)}),(0,V.jsx)(`p`,{children:m(`drawer.remoteDetailsDescription`)})]}):(0,V.jsxs)(`section`,{className:`personal-detail-card personal-goal-notification`,children:[(0,V.jsx)(`small`,{children:m(`drawer.larkConnection`)}),t?(0,V.jsxs)(V.Fragment,{children:[(0,V.jsxs)(`h3`,{children:[t.app_label,(0,V.jsx)(`span`,{className:`personal-connection-status`,children:m(`drawer.connected`)})]}),(0,V.jsxs)(`dl`,{children:[(0,V.jsxs)(`div`,{children:[(0,V.jsx)(`dt`,{children:m(`drawer.group`)}),(0,V.jsx)(`dd`,{children:t.chat_name})]}),(0,V.jsxs)(`div`,{children:[(0,V.jsx)(`dt`,{children:m(`drawer.topic`)}),(0,V.jsxs)(`dd`,{children:[`# `,t.topic_name]})]}),(0,V.jsxs)(`div`,{children:[(0,V.jsx)(`dt`,{children:m(`drawer.trigger`)}),(0,V.jsx)(`dd`,{children:t.incoming_mode===`mentions`?m(`lark.someoneMentions`):m(`lark.allMessages`)})]}),(0,V.jsxs)(`div`,{children:[(0,V.jsx)(`dt`,{children:m(`drawer.replyMode`)}),(0,V.jsx)(`dd`,{children:m(`lark.topicReply`)})]}),(0,V.jsxs)(`div`,{children:[(0,V.jsx)(`dt`,{children:m(`drawer.autoNotify`)}),(0,V.jsx)(`dd`,{children:e?.humanGateAutoNotifyEnabled?m(`common.on`):m(`common.off`)})]}),e?.lastNotifiedAt?(0,V.jsxs)(`div`,{children:[(0,V.jsx)(`dt`,{children:m(`drawer.lastNotification`)}),(0,V.jsx)(`dd`,{children:e.lastNotifiedAt})]}):null]})]}):(0,V.jsxs)(V.Fragment,{children:[(0,V.jsx)(`h3`,{children:m(`drawer.larkNotConfigured`)}),(0,V.jsx)(`p`,{children:m(`drawer.larkNotConfiguredDescription`)})]}),(0,V.jsxs)(`button`,{className:`personal-secondary-action`,onClick:()=>r.onOpenNotificationSettings?.(f.item.goalId),type:`button`,children:[(0,V.jsx)(tm,{size:16}),m(t?`drawer.larkConfigure`:`drawer.larkConnect`)]})]})]})})(),(0,V.jsxs)(`section`,{className:`personal-detail-card personal-goal-session`,children:[(0,V.jsx)(`small`,{children:m(`drawer.runDetails`)}),ge?.sessionId?(0,V.jsxs)(V.Fragment,{children:[(0,V.jsx)(`h3`,{children:Xi(ge.sessionStatus??ge.status,m)}),(0,V.jsx)(`p`,{children:ge.title}),r.onOpenRunSession?(0,V.jsxs)(`button`,{className:`personal-primary-action`,onClick:()=>void r.onOpenRunSession?.(ge),type:`button`,children:[(0,V.jsx)(zm,{size:16}),m(`drawer.runLatest`)]}):null]}):(0,V.jsxs)(V.Fragment,{children:[(0,V.jsx)(`h3`,{children:m(`drawer.noRun`)}),(0,V.jsx)(`p`,{children:m(`drawer.noRunDescription`)})]})]}),u?null:(0,V.jsxs)(`div`,{className:`personal-drawer-action-grid`,children:[(0,V.jsxs)(`button`,{className:`personal-secondary-action`,onClick:()=>r.onRequestScheduleConfig?.(`heartbeat`,f.item.goalId),type:`button`,children:[(0,V.jsx)(Vm,{size:16}),m(`drawer.setupHeartbeat`)]}),(0,V.jsxs)(`button`,{className:`personal-secondary-action`,onClick:()=>r.onRequestScheduleConfig?.(`monitor`,f.item.goalId),type:`button`,children:[(0,V.jsx)(im,{size:16}),m(`drawer.scheduleAdd`)]})]}),f.item.subagentExecution?(0,V.jsxs)(`section`,{className:`personal-detail-card personal-goal-subagents`,children:[(0,V.jsxs)(`div`,{className:`personal-subagent-heading`,children:[(0,V.jsxs)(`div`,{children:[(0,V.jsx)(`small`,{children:m(`drawer.subagentLabel`)}),(0,V.jsxs)(`h3`,{children:[(0,V.jsx)(nm,{size:16}),m(`drawer.subagentTitle`)]})]}),(0,V.jsxs)(`button`,{"aria-checked":Ce.enabled,"aria-label":m(ne&&j===`ready`?`drawer.subagentPending`:Ce.enabled?`drawer.subagentDisable`:`drawer.subagentEnable`),className:`personal-subagent-switch`,"data-pending":ne&&j===`ready`?`true`:void 0,disabled:u||we||!!ne||!r.onPreviewGoalSubagentConfiguration,onClick:()=>void Oe(!Ce.enabled),role:`switch`,type:`button`,children:[(0,V.jsx)(`span`,{}),m(ne&&j===`ready`?`drawer.subagentPending`:Ce.enabled?`common.on`:`common.off`)]})]}),(0,V.jsx)(`p`,{children:m(`drawer.subagentDescription`)}),ne&&j===`ready`?(0,V.jsxs)(`div`,{className:`personal-subagent-preview`,children:[(0,V.jsx)(`strong`,{children:m(ne.enabled?`drawer.subagentConfirmEnable`:`drawer.subagentConfirmDisable`)}),(0,V.jsx)(`p`,{children:ne.enabled?m(`drawer.subagentPreviewSummary`,{count:ne.maxChildren,domains:ne.allowedDomains.join(` · `)||m(`drawer.subagentDomainsUnrestricted`)}):m(`drawer.subagentDisableSummary`)}),ne.modelConfig===void 0?null:(0,V.jsxs)(`p`,{children:[m(`drawer.subagentModel`),`: `,ne.modelConfig?.model||m(`drawer.subagentModelDefault`),` · `,ne.modelConfig?.reasoning_effort||m(`drawer.subagentModelDefault`)]}),(0,V.jsxs)(`div`,{children:[(0,V.jsx)(`button`,{className:`personal-primary-action`,onClick:()=>void ke(),type:`button`,children:m(`common.confirm`)}),(0,V.jsx)(`button`,{className:`personal-secondary-action`,onClick:Ee,type:`button`,children:m(`common.cancel`)})]})]}):null,T?(0,V.jsxs)(`p`,{className:`personal-subagent-feedback is-${j}`,role:`status`,children:[j===`previewing`||j===`applying`?(0,V.jsx)(Um,{className:`personal-spin`,size:13}):null,T]}):null,(0,V.jsxs)(`dl`,{children:[(0,V.jsxs)(`div`,{children:[(0,V.jsx)(`dt`,{children:m(`drawer.subagentModel`)}),(0,V.jsx)(`dd`,{children:Ce.modelConfig?.model||m(`drawer.subagentModelDefault`)})]}),(0,V.jsxs)(`div`,{children:[(0,V.jsx)(`dt`,{children:m(`drawer.subagentEffort`)}),(0,V.jsx)(`dd`,{children:Ce.modelConfig?.reasoning_effort||m(`drawer.subagentModelDefault`)})]}),(0,V.jsxs)(`div`,{children:[(0,V.jsx)(`dt`,{children:m(`drawer.subagentCurrentBoundary`)}),(0,V.jsx)(`dd`,{children:Ce.allowedDomains.join(` · `)||m(`drawer.subagentDomainsUnrestricted`)})]}),(0,V.jsxs)(`div`,{children:[(0,V.jsx)(`dt`,{children:m(`drawer.subagentChildLimit`)}),(0,V.jsx)(`dd`,{children:Ce.maxChildren||0})]})]}),u?(0,V.jsx)(`p`,{className:`personal-subagent-read-only`,children:m(`drawer.subagentRemoteReadOnly`)}):(0,V.jsxs)(`div`,{className:`personal-subagent-fields`,children:[(0,V.jsxs)(`fieldset`,{className:`personal-subagent-domain-picker`,disabled:we,children:[(0,V.jsx)(`legend`,{children:m(`drawer.subagentDomains`)}),Te.length>0?(0,V.jsx)(`div`,{className:`personal-subagent-domain-options`,children:Te.map(e=>{let t=C.includes(e.value);return(0,V.jsxs)(`label`,{className:`personal-subagent-domain-option${t?` is-selected`:``}`,children:[(0,V.jsx)(`input`,{"aria-label":e.value,checked:t,onChange:t=>z(e.value,t.target.checked),type:`checkbox`}),(0,V.jsxs)(`span`,{children:[(0,V.jsx)(`strong`,{children:e.value}),(0,V.jsx)(`small`,{children:m(`drawer.subagentDomainTodoCount`,{count:e.matchingTodoCount})})]})]},e.value)})}):(0,V.jsx)(`p`,{className:`personal-subagent-domain-empty`,children:m(`drawer.subagentDomainsEmpty`)}),(0,V.jsx)(`small`,{children:m(`drawer.subagentDomainsHint`)})]}),(0,V.jsxs)(`label`,{children:[(0,V.jsx)(`span`,{children:m(`drawer.subagentModel`)}),(0,V.jsx)(`input`,{"aria-label":m(`drawer.subagentModel`),disabled:we,value:k,placeholder:`gpt-5.6-luna`,onChange:e=>{ee(e.target.value),N(null),M(`idle`),E(null)}})]}),(0,V.jsxs)(`label`,{children:[(0,V.jsx)(`span`,{children:m(`drawer.subagentEffort`)}),(0,V.jsxs)(`select`,{"aria-label":m(`drawer.subagentEffort`),disabled:we,value:te,onChange:e=>{A(e.target.value),N(null),M(`idle`),E(null)},children:[(0,V.jsx)(`option`,{value:``,children:m(`drawer.subagentModelDefault`)}),[`none`,`minimal`,`low`,`medium`,`high`,`xhigh`,`max`,`ultra`].map(e=>(0,V.jsx)(`option`,{value:e,children:e},e))]})]}),(0,V.jsx)(`button`,{className:`personal-secondary-action`,disabled:we,type:`button`,onClick:()=>{ee(`gpt-5.6-luna`),A(`max`),N(null),M(`idle`),E(null)},children:m(`drawer.subagentLunaPreset`)}),(0,V.jsx)(`button`,{className:`personal-secondary-action`,disabled:we,type:`button`,onClick:()=>{ee(``),A(``),N(null),M(`idle`),E(null)},children:m(`drawer.subagentClearModel`)}),(0,V.jsx)(`p`,{children:m(`drawer.subagentModelHint`)}),(0,V.jsxs)(`label`,{className:`personal-subagent-limit-field`,children:[(0,V.jsx)(`span`,{children:m(`drawer.subagentMaxChildren`)}),(0,V.jsx)(`select`,{"aria-label":m(`drawer.subagentMaxChildren`),disabled:we,onChange:e=>{O(Number(e.target.value)),N(null),M(`idle`),E(null)},value:D,children:_b.map(e=>(0,V.jsx)(`option`,{value:e,children:e},e))})]}),(0,V.jsx)(`button`,{className:`personal-secondary-action`,disabled:we,onClick:()=>void Oe(Ce.enabled,!0),type:`button`,children:m(`drawer.subagentPreviewBoundary`)})]})]}):null]}):null,f.kind===`run`?(0,V.jsxs)(V.Fragment,{children:[(0,V.jsxs)(`div`,{"aria-label":m(`drawer.runView`),className:`personal-run-drawer-tabs`,role:`tablist`,children:[(0,V.jsx)(`button`,{"aria-selected":x===`record`,onClick:()=>S(`record`),role:`tab`,type:`button`,children:m(`drawer.executionRecordAndResult`)}),(0,V.jsx)(`button`,{"aria-selected":x===`details`,onClick:()=>S(`details`),role:`tab`,type:`button`,children:m(`drawer.detailsAndActions`)})]}),x===`record`?(0,V.jsxs)(V.Fragment,{children:[(0,V.jsxs)(`section`,{className:`personal-detail-card personal-session-summary`,children:[(0,V.jsxs)(`small`,{children:[f.item.agentLabel,` · `,Xi(f.item.sessionStatus??f.item.status,m)]}),(0,V.jsx)(`h3`,{children:f.item.title}),(0,V.jsx)(`p`,{children:f.item.latestActivity}),(0,V.jsxs)(`dl`,{children:[(0,V.jsxs)(`div`,{children:[(0,V.jsx)(`dt`,{children:`Goal`}),(0,V.jsx)(`dd`,{children:f.item.goalTitle})]}),(0,V.jsxs)(`div`,{children:[(0,V.jsx)(`dt`,{children:m(`drawer.progress`)}),(0,V.jsxs)(`dd`,{children:[f.item.completedSteps,`/`,f.item.totalSteps]})]})]})]}),(0,V.jsxs)(`section`,{"aria-label":m(`drawer.executionRecord`),className:`personal-session-message-record`,children:[(0,V.jsx)(`h3`,{children:m(`drawer.executionRecord`)}),f.item.sessionMessages?.length?(0,V.jsx)(`ol`,{children:f.item.sessionMessages.map(e=>(0,V.jsxs)(`li`,{className:`is-${e.role}`,children:[(0,V.jsx)(`i`,{}),(0,V.jsxs)(`div`,{children:[(0,V.jsxs)(`header`,{children:[(0,V.jsx)(`strong`,{children:e.role===`user`?m(`drawer.runRoleUser`):e.role===`assistant`?m(`drawer.runRoleAssistant`):m(`drawer.runRoleSystem`)}),e.createdAt?(0,V.jsx)(`time`,{children:new Date(e.createdAt).toLocaleTimeString(p,{hour:`2-digit`,minute:`2-digit`,hour12:!1})}):null]}),(0,V.jsx)(`p`,{children:e.text})]})]},e.messageId))}):(0,V.jsx)(`p`,{className:`personal-session-empty`,children:_e?m(`drawer.runRecordProjected`,{completed:f.item.completedSteps,outputs:f.item.outputs?.length?m(`drawer.runRecordProjectedOutputs`,{count:f.item.outputs.length}):``,total:f.item.totalSteps}):m(`drawer.runRecordEmpty`)}),f.item.status===`running`?(0,V.jsxs)(`div`,{className:`personal-session-active-step`,children:[(0,V.jsx)(`i`,{}),(0,V.jsxs)(`span`,{children:[(0,V.jsx)(`strong`,{children:m(`drawer.analysis`)}),(0,V.jsx)(`small`,{children:m(`drawer.agentWorking`)})]})]}):null]}),f.item.outputs?.length?(0,V.jsxs)(`section`,{className:`personal-execution-history`,"aria-labelledby":`personal-run-outputs-title`,children:[(0,V.jsx)(`h3`,{id:`personal-run-outputs-title`,children:m(`drawer.outputs`)}),(0,V.jsx)(`ol`,{children:f.item.outputs.map(e=>(0,V.jsx)(`li`,{children:(0,V.jsxs)(`span`,{children:[(0,V.jsx)(`strong`,{children:e.title}),(0,V.jsx)(`small`,{children:e.createdAt??e.kind??m(`files.emptySummary`)})]})},e.outputId))})]}):null]}):(0,V.jsxs)(V.Fragment,{children:[(0,V.jsxs)(`section`,{className:`personal-detail-card`,children:[(0,V.jsxs)(`small`,{children:[f.item.agentLabel,` · `,Xi(f.item.status,m)]}),(0,V.jsx)(`h3`,{children:f.item.title}),(0,V.jsx)(`p`,{children:f.item.latestActivity}),(0,V.jsxs)(`dl`,{children:[(0,V.jsxs)(`div`,{children:[(0,V.jsx)(`dt`,{children:`Goal`}),(0,V.jsx)(`dd`,{children:f.item.goalTitle})]}),(0,V.jsxs)(`div`,{children:[(0,V.jsx)(`dt`,{children:m(`drawer.progress`)}),(0,V.jsxs)(`dd`,{children:[f.item.completedSteps,`/`,f.item.totalSteps]})]}),(0,V.jsxs)(`div`,{children:[(0,V.jsx)(`dt`,{children:m(`drawer.sessionStatus`)}),(0,V.jsx)(`dd`,{children:Xi(f.item.sessionStatus??f.item.status,m)})]}),(0,V.jsxs)(`div`,{children:[(0,V.jsx)(`dt`,{children:m(`drawer.sessionRecoverable`)}),(0,V.jsx)(`dd`,{children:f.item.resumable===!1?m(`drawer.resumeNo`):m(`drawer.resumeYes`)})]})]})]}),f.item.sessionStatus===`resume_failed`&&!u?(0,V.jsxs)(`section`,{className:`personal-recovery-panel`,"aria-label":m(`drawer.recoveryFailed`),children:[(0,V.jsx)(`strong`,{children:m(`drawer.recoveryFailed`)}),(0,V.jsx)(`p`,{children:m(`drawer.recoveryDescription`)}),(0,V.jsxs)(`button`,{className:`personal-primary-action`,onClick:()=>void r.onRetryResumeRun?.(f.item),type:`button`,children:[(0,V.jsx)(Um,{size:16}),m(`drawer.recoveryRetry`)]}),(0,V.jsxs)(`button`,{className:`personal-secondary-action`,onClick:()=>void r.onStartNewRunSession?.(f.item),type:`button`,children:[(0,V.jsx)(zm,{size:16}),m(`drawer.recoveryNewSession`)]})]}):null,u?null:(0,V.jsxs)(`section`,{className:`personal-correction-panel`,children:[(0,V.jsx)(`header`,{children:(0,V.jsxs)(`span`,{children:[(0,V.jsx)(nm,{size:16}),m(`drawer.correctionLabel`,{agent:f.item.agentLabel})]})}),(0,V.jsx)(`p`,{children:m(`drawer.correctionDescription`)}),(0,V.jsxs)(`div`,{className:`personal-correction-composer`,children:[(0,V.jsx)(`textarea`,{"aria-label":m(`drawer.correctionTextarea`,{agent:f.item.agentLabel,goal:f.item.goalTitle,run:f.item.title}),onChange:e=>g(e.target.value),placeholder:m(`drawer.correctionPlaceholder`),rows:3,value:h}),(0,V.jsx)(`button`,{"aria-label":m(`drawer.correctionSend`),disabled:!h.trim(),onClick:()=>void be(),type:`button`,children:(0,V.jsx)(Km,{size:16})})]})]}),u?null:(0,V.jsxs)(`details`,{className:`personal-compact-menu personal-run-more`,children:[(0,V.jsxs)(`summary`,{children:[(0,V.jsx)(gm,{size:17}),m(`drawer.moreRunActions`)]}),(0,V.jsxs)(`div`,{children:[(0,V.jsxs)(`button`,{disabled:!f.item.canInterrupt,onClick:()=>void r.onInterruptRun?.(f.item),type:`button`,children:[(0,V.jsx)(Rm,{size:16}),m(`drawer.runInterrupt`)]}),(0,V.jsxs)(`button`,{disabled:f.item.resumable===!1,onClick:()=>void r.onRetryResumeRun?.(f.item),type:`button`,children:[(0,V.jsx)(Um,{size:16}),m(`drawer.recoveryRetry`)]}),(0,V.jsxs)(`button`,{onClick:()=>void r.onStartNewRunSession?.(f.item),type:`button`,children:[(0,V.jsx)(zm,{size:16}),m(`drawer.runNewSession`)]}),(0,V.jsxs)(`button`,{onClick:()=>void r.onCloseRunSession?.(f.item),type:`button`,children:[(0,V.jsx)($m,{size:16}),m(`drawer.runCloseSession`)]})]})]})]})]}):null,f.kind===`output`?(0,V.jsxs)(V.Fragment,{children:[(0,V.jsxs)(`section`,{className:`personal-detail-card`,children:[(0,V.jsx)(`small`,{children:f.item.kind??`output`}),(0,V.jsx)(`h3`,{children:f.item.title}),(0,V.jsx)(`p`,{children:f.item.summary??m(`drawer.outputRecorded`)}),(0,V.jsxs)(`dl`,{children:[(0,V.jsxs)(`div`,{children:[(0,V.jsx)(`dt`,{children:`Goal`}),(0,V.jsx)(`dd`,{children:f.item.goalTitle??f.item.goalId})]}),(0,V.jsxs)(`div`,{children:[(0,V.jsx)(`dt`,{children:m(`drawer.outputTodo`)}),(0,V.jsx)(`dd`,{children:f.item.todoId??m(`drawer.notLinked`)})]}),(0,V.jsxs)(`div`,{children:[(0,V.jsx)(`dt`,{children:m(`drawer.outputRun`)}),(0,V.jsx)(`dd`,{children:f.item.runId??m(`drawer.notLinked`)})]}),(0,V.jsxs)(`div`,{children:[(0,V.jsx)(`dt`,{children:`Agent`}),(0,V.jsx)(`dd`,{children:f.item.agentLabel??f.item.agentId??`LoopX`})]})]})]}),f.item.report?(0,V.jsxs)(`section`,{className:`personal-report-detail`,"data-testid":`personal-periodic-report-detail`,children:[(0,V.jsxs)(`header`,{children:[(0,V.jsxs)(`span`,{children:[(0,V.jsxs)(`strong`,{children:[`+`,f.item.report.addedCount]}),m(`files.reportAdded`)]}),(0,V.jsxs)(`span`,{children:[(0,V.jsx)(`strong`,{children:f.item.report.changedCount}),m(`files.reportChanged`)]})]}),(0,V.jsxs)(`p`,{children:[f.item.report.periodStartAt,` → `,f.item.report.periodEndAt]}),(0,V.jsx)(`ol`,{children:f.item.report.items.map(e=>(0,V.jsxs)(`li`,{"data-change-kind":e.changeKind,children:[(0,V.jsxs)(`small`,{children:[e.changeKind,` · `,e.status]}),(0,V.jsx)(`strong`,{children:e.title}),(0,V.jsx)(`p`,{children:e.summary})]},e.sourceRef))}),(0,V.jsxs)(`footer`,{children:[(0,V.jsxs)(`span`,{children:[m(`files.reportPublication`),`: `,f.item.report.publicationId]}),(0,V.jsxs)(`span`,{children:[m(`files.reportGeneration`),`: `,f.item.report.generationId]})]})]}):null,f.item.safePreview?(0,V.jsx)(`pre`,{"aria-label":m(`drawer.outputSafePreview`),className:`personal-safe-preview`,children:f.item.safePreview}):(0,V.jsx)(`p`,{className:`personal-preview-unavailable`,children:m(`drawer.previewUnavailable`)}),(0,V.jsxs)(`div`,{className:`personal-drawer-action-grid`,children:[(0,V.jsxs)(`button`,{className:`personal-primary-action`,disabled:!r.onOpenOutput,onClick:()=>{r.onOpenOutput?.(f.item),c()},type:`button`,children:[(0,V.jsx)(_m,{size:16}),m(`files.openConversation`)]}),(0,V.jsxs)(`button`,{className:`personal-secondary-action`,disabled:!r.onExportOutput,onClick:()=>void r.onExportOutput?.(f.item),type:`button`,children:[(0,V.jsx)(hm,{size:16}),m(`files.exportSummary`)]})]})]}):null,f.kind===`proposal`?(0,V.jsxs)(V.Fragment,{children:[(0,V.jsxs)(`section`,{className:`personal-proposal-card`,children:[(0,V.jsxs)(`small`,{children:[f.item.actionKind,` · `,f.item.status]}),(0,V.jsx)(`h3`,{children:f.item.title}),(0,V.jsx)(`p`,{children:f.item.impact}),f.item.reviewPlan?(0,V.jsx)(`p`,{className:`personal-proposal-explainer`,"data-action-review":f.item.reviewPlan.interaction,children:f.item.actionKind===`operation.execute`&&f.item.status===`gated`?m(`actionReview.operation_group_confirmation`):f.item.actionKind===`operation.execute`&&f.item.reviewPlan.reason===`readback_unverified`?m(`actionReview.operation_result_delivery_pending`):m(`actionReview.${f.item.reviewPlan.reason}`)}):null,f.item.status===`ready`?(0,V.jsx)(`p`,{className:`personal-proposal-explainer`,children:m(`drawer.proposalExplainer`)}):null,(0,V.jsx)(`dl`,{children:f.item.fields.map(e=>(0,V.jsxs)(`div`,{children:[(0,V.jsx)(`dt`,{children:e.label}),(0,V.jsx)(`dd`,{children:e.value})]},e.key))})]}),f.item.status===`applied`?(0,V.jsxs)(`p`,{className:`personal-proposal-state ${f.item.actionKind===`operation.execute`&&f.item.reviewPlan?.reason===`readback_unverified`?`is-gated`:`is-applied`}`,children:[(0,V.jsx)(am,{size:16}),f.item.actionKind===`operation.execute`?f.item.primaryLabel:m(`drawer.proposalApplied`)]}):null,f.item.status===`applied`&&f.item.actionKind!==`operation.execute`&&f.item.goalId?(0,V.jsxs)(`button`,{className:`personal-primary-action`,onClick:()=>{let e=f.item.goalId;c(),r.onOpenGoal?.(e)},type:`button`,children:[(0,V.jsx)(_m,{size:16}),f.item.actionKind===`goal.create`?m(`drawer.proposalEnterGoal`):m(`drawer.proposalViewGoal`)]}):null,f.item.status===`stale`?(0,V.jsx)(`p`,{className:`personal-proposal-state is-stale`,children:m(`drawer.proposalStale`)}):null,f.item.status===`error`?(0,V.jsxs)(`div`,{className:`personal-proposal-state is-error`,children:[(0,V.jsx)(`span`,{children:f.item.reviewPlan?.reason===`readback_unverified`?m(`actionReview.readback_unverified`):m(`drawer.proposalApplyFailed`)}),f.item.errorMessage?(0,V.jsx)(`small`,{children:f.item.errorMessage}):null,(0,V.jsx)(`small`,{children:m(`drawer.proposalApplyFailedHint`)})]}):null,f.item.status===`rejected`?(0,V.jsx)(`p`,{className:`personal-proposal-state is-error`,children:m(`drawer.proposalRejected`)}):null,f.item.status===`deferred`?(0,V.jsx)(`p`,{className:`personal-proposal-state is-gated`,children:m(`drawer.proposalDeferred`)}):null,f.item.status===`gated`?(0,V.jsxs)(`div`,{className:`personal-proposal-state is-gated`,children:[(0,V.jsxs)(`span`,{children:[(0,V.jsx)(`strong`,{children:f.item.actionKind===`operation.execute`?f.item.primaryLabel:m(`drawer.gateRequiresHost`)}),f.item.actionKind===`operation.execute`?f.item.impact:m(`drawer.gateRequiresHostDescription`)]}),f.item.gate?.nextAction?(0,V.jsx)(`small`,{children:f.item.gate.nextAction}):null]}):null,f.item.status===`gated`&&f.item.actionKind===`gate.resolve`?(()=>{let e=e=>f.item.fields.find(t=>t.key===e)?.value,t=e(`goal_id`),n=e(`todo_id`);return!t||!n?null:(0,V.jsxs)(`section`,{className:`personal-detail-card personal-gate-cli-hint`,children:[(0,V.jsx)(`small`,{children:m(`drawer.gateApproveHint`)}),(0,V.jsxs)(`code`,{children:[`loopx todo complete --goal-id `,t,` --todo-id `,n,` --decision-outcome approve`]}),(0,V.jsx)(`small`,{children:m(`drawer.gateRejectHint`)})]})})():null,!u&&f.item.workspaceCandidates?.length?(0,V.jsx)(`div`,{className:`personal-workspace-candidates`,"aria-label":m(`drawer.workspaceCandidates`),children:f.item.workspaceCandidates.map(e=>(0,V.jsxs)(`button`,{onClick:()=>void r.onSelectWorkspaceCandidate?.(f.item,e.workspaceRef),type:`button`,children:[(0,V.jsx)(`strong`,{children:e.label}),(0,V.jsx)(`small`,{children:e.workspaceRef})]},e.workspaceRef))}):null,!u&&f.item.actionKind!==`operation.execute`&&f.item.status===`error`?(0,V.jsxs)(`button`,{className:`personal-primary-action`,onClick:()=>void r.onTransitionProposal?.(f.item,`regenerate`),type:`button`,children:[(0,V.jsx)(Um,{size:17}),m(`drawer.proposalRegenerate`)]}):!u&&f.item.actionKind!==`operation.execute`&&f.item.status!==`gated`?(0,V.jsxs)(`button`,{className:`personal-primary-action`,disabled:![`ready`,`deferred`].includes(f.item.status)||f.item.reviewPlan?.canApply===!1,onClick:()=>void r.onApplyProposal?.(f.item),type:`button`,children:[(0,V.jsx)(am,{size:17}),f.item.status===`applying`?m(`drawer.applying`):f.item.primaryLabel??m(`drawer.apply`)]}):null,!u&&f.item.actionKind!==`operation.execute`&&([`stale`,`gated`,`rejected`].includes(f.item.status)||f.item.status===`ready`&&f.item.reviewPlan?.canApply===!1)?(0,V.jsxs)(`button`,{className:`personal-secondary-action`,onClick:()=>void r.onTransitionProposal?.(f.item,`regenerate`),type:`button`,children:[(0,V.jsx)(Um,{size:16}),m(`drawer.proposalRecheck`)]}):null,!u&&f.item.actionKind!==`operation.execute`&&[`ready`,`gated`].includes(f.item.status)?(0,V.jsxs)(`div`,{className:`personal-drawer-action-grid`,children:[(0,V.jsx)(`button`,{className:`personal-secondary-action`,onClick:()=>void r.onTransitionProposal?.(f.item,`defer`),type:`button`,children:m(`drawer.proposalDefer`)}),(0,V.jsx)(`button`,{className:`personal-secondary-action`,onClick:()=>void r.onTransitionProposal?.(f.item,`reject`),type:`button`,children:m(`drawer.decisionReject`)})]}):null,[`applied`,`applying`].includes(f.item.status)?null:(0,V.jsx)(`button`,{className:`personal-secondary-action`,onClick:c,type:`button`,children:m(`drawer.proposalClose`)})]}):null,f.kind===`schedule`?(0,V.jsxs)(V.Fragment,{children:[(0,V.jsxs)(`section`,{className:`personal-detail-card`,children:[(0,V.jsxs)(`small`,{children:[f.item.scheduleKind===`heartbeat`?`Goal Heartbeat`:`continuous_monitor`,` · `,f.item.status??`active`]}),(0,V.jsx)(`h3`,{children:f.item.label}),(0,V.jsx)(`p`,{children:f.item.target??f.item.schedule??m(`drawer.scheduleDefaultTarget`)}),(0,V.jsxs)(`dl`,{children:[(0,V.jsxs)(`div`,{children:[(0,V.jsx)(`dt`,{children:m(`drawer.scheduleTimezone`)}),(0,V.jsx)(`dd`,{children:f.item.timezone??m(`drawer.scheduleLocalTimezone`)})]}),(0,V.jsxs)(`div`,{children:[(0,V.jsx)(`dt`,{children:m(`drawer.scheduleNext`)}),(0,V.jsx)(`dd`,{children:f.item.nextRunAt??m(`drawer.schedulePending`)})]}),(0,V.jsxs)(`div`,{children:[(0,V.jsx)(`dt`,{children:m(`drawer.scheduleLast`)}),(0,V.jsx)(`dd`,{children:f.item.previousRunAt??m(`drawer.scheduleNeverRun`)})]}),(0,V.jsxs)(`div`,{children:[(0,V.jsx)(`dt`,{children:m(`drawer.scheduleNotification`)}),(0,V.jsx)(`dd`,{children:f.item.notificationRule??m(`drawer.scheduleDefaultNotification`)})]}),(0,V.jsxs)(`div`,{children:[(0,V.jsx)(`dt`,{children:m(`drawer.scheduleStopCondition`)}),(0,V.jsx)(`dd`,{children:f.item.stopCondition??m(`drawer.scheduleDefaultStop`)})]})]})]}),!u&&f.item.scheduleKind===`monitor`?(0,V.jsxs)(`button`,{className:`personal-primary-action`,onClick:()=>void r.onUpdateSchedule?.(f.item,`run_now`),type:`button`,children:[(0,V.jsx)(zm,{size:16}),m(`drawer.scheduleRunNow`)]}):null,u?null:(0,V.jsxs)(`div`,{className:`personal-drawer-action-grid`,children:[(0,V.jsxs)(`button`,{className:`personal-secondary-action`,onClick:()=>void r.onUpdateSchedule?.(f.item,f.item.status===`paused`?`resume`:`pause`),type:`button`,children:[f.item.status===`paused`?(0,V.jsx)(zm,{size:16}):(0,V.jsx)(Rm,{size:16}),f.item.status===`paused`?m(`drawer.scheduleResume`):m(`drawer.schedulePause`)]}),(0,V.jsxs)(`button`,{className:`personal-secondary-action`,onClick:()=>void r.onUpdateSchedule?.(f.item,`edit`),type:`button`,children:[(0,V.jsx)(im,{size:16}),m(`drawer.scheduleEdit`)]})]}),u?null:(0,V.jsxs)(`button`,{className:`personal-danger-action`,onClick:()=>void r.onUpdateSchedule?.(f.item,`stop`),type:`button`,children:[(0,V.jsx)($m,{size:16}),m(`drawer.scheduleStop`,{kind:f.item.scheduleKind===`heartbeat`?` Heartbeat`:m(`drawer.titleSchedule`)})]}),(0,V.jsxs)(`section`,{className:`personal-execution-history`,"aria-labelledby":`personal-execution-history-title`,children:[(0,V.jsx)(`h3`,{id:`personal-execution-history-title`,children:m(`drawer.executionHistory`)}),f.item.executionHistory?.length?(0,V.jsx)(`ol`,{children:f.item.executionHistory.map((e,t)=>(0,V.jsxs)(`li`,{children:[(0,V.jsxs)(`span`,{children:[(0,V.jsx)(`strong`,{children:e.label}),(0,V.jsx)(`small`,{children:e.timestamp})]}),(0,V.jsx)(`em`,{className:`is-${e.status}`,children:e.status})]},`${e.timestamp}:${e.runId??t}`))}):(0,V.jsx)(`p`,{children:m(`drawer.noExecutionHistory`)})]})]}):null,f.kind===`run`||f.kind===`proposal`||f.kind===`schedule`?(0,V.jsxs)(V.Fragment,{children:[(0,V.jsxs)(`button`,{"aria-expanded":_,className:`personal-diagnostics-trigger`,onClick:()=>v(e=>!e),type:`button`,children:[(0,V.jsx)(`span`,{children:m(`drawer.advancedDiagnostics`)}),(0,V.jsx)(om,{className:_?`is-open`:``,size:16})]}),_?(0,V.jsxs)(`div`,{className:`personal-diagnostics`,children:[(0,V.jsxs)(`code`,{children:[`goal_id: `,me]}),(0,V.jsxs)(`code`,{children:[`kind: `,f.kind]}),f.kind===`run`?(0,V.jsxs)(V.Fragment,{children:[(0,V.jsxs)(`code`,{children:[`session_id: `,f.item.sessionId??m(`drawer.notLinked`)]}),(0,V.jsxs)(`code`,{children:[`turn_id: `,f.item.turnId??m(`common.none`)]}),(0,V.jsxs)(`code`,{children:[`adapter: `,f.item.agentId]}),(0,V.jsxs)(`code`,{children:[`status: `,f.item.sessionStatus??f.item.status]})]}):f.kind===`proposal`?(0,V.jsxs)(V.Fragment,{children:[(0,V.jsxs)(`code`,{children:[`action: `,f.item.actionKind]}),(0,V.jsxs)(`code`,{children:[`status: `,f.item.status]})]}):(0,V.jsxs)(V.Fragment,{children:[(0,V.jsxs)(`code`,{children:[`schedule_id: `,f.item.scheduleId]}),(0,V.jsxs)(`code`,{children:[`status: `,f.item.status??`active`]})]})]}):null]}):null]})]})}var Sb=[`checking`,`connecting`,`downloading`,`installing_app`,`installing_runtime`],Cb={desktop_status_unavailable:[`无法读取 App 更新状态。请重启 App 后再试;若仍失败,请重新安装最新 App。`,`Cannot read the App update status. Restart the App; if this persists, reinstall the latest App.`],update_feed_unavailable:[`此通道的更新源尚未就绪或暂时不可用。可稍后重新检查,当前版本仍可继续使用。`,`This channel's update feed is not ready or temporarily unavailable. Check again later; you can keep using this version.`],update_feed_invalid:[`更新源格式异常。请稍后重新检查。`,`The update feed is invalid. Check again later.`],update_platform_unavailable:[`此通道尚无适用于本机的更新包。`,`This channel has no update package for this platform.`],update_check_timeout:[`检查更新超时。请稍后重试。`,`The update check timed out. Try again later.`],update_network_failed:[`无法连接更新服务器。请检查网络后重试。`,`Cannot reach the update server. Check your connection and retry.`],update_download_or_signature_failed:[`更新包下载或签名校验失败,尚未安装。请重新检查更新。`,`Download or signature verification failed; the update was not installed. Check for updates again.`]};function wb(e,t=`update_failed`){return{phase:`error`,details:{code:typeof e==`string`&&Object.hasOwn(Cb,e)?e:t}}}function Tb(){let{locale:e}=Ji(),t=e===`zh-CN`,[n,r]=(0,B.useState)(!1),i=(0,B.useRef)(null),[a,o]=(0,B.useState)(`stable`),[s,c]=(0,B.useState)({phase:`idle`}),[l,u]=(0,B.useState)(``),[d,f]=(0,B.useState)(!1),p=(0,B.useRef)(!1),m=window.__TAURI__?.core.invoke,h=Sb.includes(s.phase);(0,B.useEffect)(()=>{let e=i.current;if(!e)return;let t=()=>r(e.matches(`:popover-open`));return e.addEventListener(`toggle`,t),()=>e.removeEventListener(`toggle`,t)},[]),(0,B.useEffect)(()=>{if(!m)return;let e=!0;return m(`desktop_update_status`).then(t=>{if(!e)return;u(t.app_version),f(t.rollback_available===!0),t.state?.phase&&c(t.state);let n=t.state?.details?.channel??(t.app_version.includes(`-main.`)?`main`:`stable`);o(n),t.state?.phase||m(`desktop_update`,{action:`check`,channel:n}).then(t=>{e&&c(t)}).catch(t=>{e&&c(wb(t))})}).catch(()=>{e&&c(wb(null,`desktop_status_unavailable`))}),()=>{e=!1}},[m]),(0,B.useEffect)(()=>{if(!m||!h)return;let e=window.setInterval(()=>{m(`desktop_update_status`).then(e=>{e.state?.phase&&c(e.state)}).catch(()=>{})},1e3);return()=>window.clearInterval(e)},[m,h]);async function g(e){if(!(!m||p.current)){p.current=!0,c({phase:e===`check`?`checking`:e===`repair`?`installing_runtime`:`downloading`});try{if(!l){let e=await m(`desktop_update_status`);u(e.app_version),f(e.rollback_available===!0)}c(await m(`desktop_update`,{action:e,channel:a}))}catch(e){c(wb(e,l?`update_failed`:`desktop_status_unavailable`))}finally{p.current=!1}}}let _={service_error:t?`运行时已安装,但服务尚未连接。可重试更新、修复或恢复上版。`:`Runtime installed, but services are unavailable. Retry updates, repair, or restore the previous version.`,runtime_pairing_required:t?`本机 CLI 运行时与 App 自带运行时不一致。回到 App 启动界面可「更新 App 与运行时」或「回退 CLI」。`:`This host's CLI runtime and the App's bundled runtime differ. On the App boot screen, update both or use the App's runtime.`,idle:t?`App 会检查可用更新,不会自动安装。`:`Updates are checked automatically, never installed without confirmation.`,runtime_required:t?`请完成匹配组件安装,或检查 App 更新。`:`Install matching components or check for an App update.`,connecting:t?`正在连接更新后的服务…`:`Connecting to updated services…`,checking:t?`正在检查更新…`:`Checking for updates…`,available:t?`新版本已就绪,一次更新 App 与匹配的运行时。`:`Update the App and its matching runtime together.`,up_to_date:t?`当前通道暂无更新。`:`No newer update on this channel.`,downloading:t?`正在下载并校验签名…`:`Downloading and verifying signature…`,installing_app:t?`正在安装 App,请保持窗口打开。`:`Installing the App. Keep this window open.`,installing_runtime:t?`正在安装匹配的运行时,请稍候…`:`Installing the matching runtime…`,restart_required:t?`重启后将自动完成运行时安装与服务连接。`:`Restart to finish runtime installation and reconnect services.`,ready:t?`更新完成,服务已就绪。`:`Update completed; services are ready.`,error:Cb[s.details?.code??``]?.[+!t]??(t?`更新未完成。请重试;启动失败可尝试修复当前版本。`:`Update incomplete. Retry; repair this version if startup fails.`)},v=h?t?`正在更新…`:`Updating…`:s.phase===`available`?t?`有可用更新`:`Update available`:s.phase===`restart_required`?t?`重启完成更新`:`Restart to finish`:s.phase===`error`?t?`更新需重试`:`Retry update`:t?`更新 LoopX`:`Update LoopX`;return(0,V.jsxs)(`div`,{className:`personal-desktop-update`,children:[(0,V.jsxs)(`button`,{className:`personal-update-trigger`,type:`button`,"aria-expanded":n,"aria-controls":`desktop-update-panel`,onClick:e=>{i.current?.style.setProperty(`bottom`,`${window.innerHeight-e.currentTarget.getBoundingClientRect().top+8}px`),i.current?.togglePopover()},children:[(0,V.jsx)(hm,{size:16,"aria-hidden":`true`}),(0,V.jsx)(`span`,{children:v}),(0,V.jsx)(cm,{size:14,"aria-hidden":`true`})]}),(0,V.jsxs)(`section`,{ref:i,popover:`auto`,id:`desktop-update-panel`,className:`personal-update-panel`,"aria-label":t?`LoopX 更新`:`LoopX updates`,children:[(0,V.jsxs)(`header`,{children:[(0,V.jsx)(`strong`,{children:t?`LoopX 更新`:`LoopX updates`}),(0,V.jsx)(`button`,{type:`button`,"aria-label":t?`关闭更新面板`:`Close updates`,onClick:()=>i.current?.hidePopover(),children:(0,V.jsx)(ah,{size:16,"aria-hidden":`true`})})]}),(0,V.jsxs)(`small`,{children:[l,` · `,a===`main`?t?`main 预览版`:`main preview`:t?`稳定版`:`Stable`]}),s.details?.version?(0,V.jsxs)(`p`,{children:[t?`目标版本:`:`Target: `,s.details.version]}):null,(0,V.jsxs)(`p`,{role:`status`,"aria-live":`polite`,children:[h?(0,V.jsx)(Hm,{className:`is-spinning`,size:14,"aria-hidden":`true`}):null,_[s.phase]]}),s.phase===`downloading`&&s.details?.total?(0,V.jsx)(`progress`,{"aria-label":t?`下载进度`:`Download progress`,max:s.details.total,value:s.details.received??0}):null,m?(0,V.jsx)(`div`,{className:`personal-update-actions`,children:s.phase===`restart_required`?(0,V.jsx)(`button`,{type:`button`,onClick:()=>void g(`restart`),children:t?`重启完成更新`:`Restart to finish`}):(0,V.jsxs)(V.Fragment,{children:[(0,V.jsx)(`button`,{type:`button`,disabled:h,onClick:()=>void g(`check`),children:t?`检查更新`:`Check for updates`}),s.phase===`available`?(0,V.jsx)(`button`,{type:`button`,onClick:()=>void g(`apply`),children:t?`更新并准备重启`:`Install update`}):null]})}):(0,V.jsx)(`p`,{children:t?`请在 LoopX App 中更新;浏览器自身无需安装包。`:`Update from the LoopX App; the browser needs no installer.`}),(0,V.jsxs)(`details`,{children:[(0,V.jsx)(`summary`,{children:t?`高级选项`:`Advanced options`}),(0,V.jsxs)(`label`,{children:[t?`更新通道`:`Update channel`,(0,V.jsxs)(`select`,{disabled:h||s.phase===`restart_required`,value:a,onChange:e=>{o(e.target.value),c({phase:`idle`})},children:[(0,V.jsx)(`option`,{value:`stable`,children:t?`稳定版(推荐)`:`Stable (recommended)`}),(0,V.jsx)(`option`,{value:`main`,children:t?`main 预览版`:`main preview`})]})]}),(0,V.jsx)(`p`,{children:t?`App 与匹配的 CLI 一起更新,服务可能短暂断开。不删除 Goal 数据。`:`Updates the App and matching CLI. Services may briefly disconnect. Goal data is not deleted.`}),m?(0,V.jsxs)(V.Fragment,{children:[(0,V.jsx)(`p`,{children:t?`启动失败时,可重装当前 App 随附的运行时。`:`If startup fails, reinstall this App's bundled runtime.`}),(0,V.jsx)(`button`,{disabled:h||s.phase===`restart_required`,type:`button`,onClick:()=>void g(`repair`),children:t?`修复当前版本`:`Repair this version`})]}):null,m&&d?(0,V.jsxs)(`details`,{children:[(0,V.jsx)(`summary`,{children:t?`恢复上个版本`:`Restore previous version`}),(0,V.jsx)(`p`,{children:t?`将恢复已保留的 App 和它的运行时,需要重启。`:`Restore the retained App and its runtime, then restart.`}),(0,V.jsx)(`button`,{disabled:h,type:`button`,onClick:()=>void g(`rollback`),children:t?`确认恢复上版`:`Restore previous version`})]}):null]})]})]})}var Eb=e=>`loopx-sidebar-goal-order-v1:${encodeURIComponent(e)}`;function Db(e){try{let t=JSON.parse(e??`null`);return Array.isArray(t)&&t.every(e=>typeof e==`string`)?[...new Set(t)]:[]}catch{return[]}}function Ob(e,t){let n=new Map(t.map((e,t)=>[e,t]));return[...e].sort((e,t)=>(n.get(e.goalId)??1/0)-(n.get(t.goalId)??1/0))}function kb(e,t,n,r,i){if(n===r||!t.includes(n)||!t.includes(r))return e;let a=[...new Set([...e,...t])].filter(e=>e!==n);return a.splice(a.indexOf(r)+Number(i),0,n),a}function Ab(e,t){let n=Eb(t),[r,i]=(0,B.useState)(()=>{try{return Db(localStorage.getItem(n))}catch{return[]}}),[a,o]=(0,B.useState)(!1),[s,c]=(0,B.useState)(null),[l,u]=(0,B.useState)(null),d=(0,B.useRef)(null),f=(0,B.useRef)(!1),p=Ob(e,r),m=p.map(e=>e.goalId);function h(t,a,s){let l=kb(r,m,t,a,s);if(l===r)return;i(l);let u=Ob(e,l),d=u.findIndex(e=>e.goalId===t),f=u[d];f&&c({title:f.title,position:d+1});try{localStorage.setItem(n,JSON.stringify(l)),o(!1)}catch{o(!0)}}function g(){d.current=null,u(null)}return{sorted:p,target:l,saveFailed:a,lastMoved:s,move:h,moveBy(e,t){let n=p[m.indexOf(e)+t];n&&h(e,n.goalId,t===1)},pointerProps:e=>({onPointerDown(t){f.current=!1,t.pointerType===`mouse`&&t.button===0&&(d.current={id:e,x:t.clientX,y:t.clientY,dragging:!1},t.currentTarget.setPointerCapture(t.pointerId))},onPointerMove(e){let t=d.current;if(!t||!t.dragging&&Math.hypot(e.clientX-t.x,e.clientY-t.y)<6)return;t.dragging=!0,f.current=!0;let n=document.elementFromPoint(e.clientX,e.clientY)?.closest(`[data-reorder-goal]`),r=e.currentTarget.closest(`.personal-goal-list`),i=n?.dataset.reorderGoal;if(!n||!i||!r?.contains(n)||i===t.id){u(null);return}let a=n.getBoundingClientRect();u({id:i,after:e.clientY>a.top+a.height/2})},onPointerUp(){d.current?.dragging&&l&&h(d.current.id,l.id,l.after),g()},onPointerCancel:g,onLostPointerCapture:g,onKeyDown(e){e.key===`Escape`&&g()},onClickCapture(e){f.current&&=(e.preventDefault(),e.stopPropagation(),!1)}})}}var jb=`/ssh-hosts`,Mb=/^[A-Za-z0-9][A-Za-z0-9._-]{0,254}$/;function Nb(e){return typeof e==`string`&&Mb.test(e.trim())}function Pb(e){if(!e||typeof e!=`object`||Array.isArray(e))throw Error(`SSH Host 列表响应无效。`);let t=e;if(t.ok!==!0||t.schema_version!==`ssh_host_catalog_v0`||!Array.isArray(t.hosts))throw Error(`SSH Host 列表协议不兼容,请更新本机 LoopX 服务。`);let n=new Set;return{hosts:t.hosts.flatMap(e=>{if(!e||typeof e!=`object`||Array.isArray(e))return[];let t=String(e.alias??``).trim();return!Nb(t)||n.has(t)?[]:(n.add(t),[{alias:t}])}),schemaVersion:`ssh_host_catalog_v0`}}async function Fb(e=fetch,t=jb){let n=await e(t,{cache:`no-store`});if(!n.ok)throw Error(`无法读取本机 SSH Host(HTTP ${n.status})。`);return Pb(await n.json())}function Ib(e,t){let n=e.trim();if(!Nb(n))return{error:`请选择有效的 SSH Host。`};let r=Number(t);return!Number.isInteger(r)||r<1024||r>65535?{error:`本地端口必须是 1024–65535 之间的整数。`}:{command:`ssh -N -L ${r}:127.0.0.1:8766 ${n}`,hostAlias:n,label:n,statusUrl:`http://127.0.0.1:${r}/status.json`}}var Lb=`/api/ssh-source/ensure`,Rb=`/api/ssh-source/goal-lifecycle`;async function zb(e,t){let n=await fetch(Lb,{method:`POST`,headers:{"content-type":`application/json`},body:JSON.stringify({host_alias:e,local_port:Number(t)})}),r=await n.json().catch(()=>null);if(!n.ok)throw Error(r?.error??`无法建立 SSH 隧道来源。`);if(!r?.ok)throw Error(`无法建立 SSH 隧道来源。`);return r}async function Bb(e,t,n,r,i=fetch){let a=await i(Rb,{method:`POST`,headers:{"content-type":`application/json`},body:JSON.stringify({goal_id:t,host_alias:e,operation:n,reason:r})}),o=await a.json().catch(()=>null);if(!a.ok)throw Error(o?.error??`无法更新远端 Goal 生命周期。`);if(!o?.ok||o.schema_version!==`loopx_remote_goal_lifecycle_v1`||o.goal_id!==t||o.host_alias!==e||o.operation!==n||o.activation_state!==(n===`stop`?`stopped`:`active`)||o.projection_verified!==!0)throw Error(`远端 Goal 生命周期回读未验证。`);return o}function Vb({activeSource:e,connectionState:t,errorMessage:n,onAdd:r,onConfiguredHostsLoaded:i,onRemove:a,onSelect:o,sources:s}){let{t:c}=Ji(),[l,u]=(0,B.useState)(!1),[d,f]=(0,B.useState)(null),[p,m]=(0,B.useState)(`configured`),[h,g]=(0,B.useState)([]),[_,v]=(0,B.useState)(null),[y,b]=(0,B.useState)(!1),[x,S]=(0,B.useState)(!1),[C,w]=(0,B.useState)(``),[T,E]=(0,B.useState)(``),[D,O]=(0,B.useState)(`8876`),[k,ee]=(0,B.useState)(``),te=`configured:`,A=[...s.map(e=>({label:e.label,value:e.id})),...h.filter(e=>!s.some(t=>t.label===e.alias)).map(e=>({group:c(`source.configuredGroup`,{count:h.length}),label:e.alias,value:`${te}${e.alias}`}))],j=(0,B.useMemo)(()=>h.some(e=>e.alias===C)?Ib(C,D):{error:c(`source.selectHost`)},[h,C,D,c]);(0,B.useEffect)(()=>{M()},[]);async function M(){b(!0),v(null);try{let e=await Fb();g(e.hosts),i?.(e.hosts.map(e=>e.alias)),w(t=>t||e.hosts[0]?.alias||``),e.hosts.length||v(c(`source.hostEmpty`))}catch(e){v(e instanceof Error?e.message:c(`source.hostLoadError`))}finally{b(!1)}}function ne(){u(!0),m(`configured`),f(null),M()}function N(){u(!1),m(`configured`),v(null),S(!1),w(``),f(null),E(``),O(`8876`),ee(``)}function P(){let e=r({label:T,statusUrl:k});if(e.error){f(e.error);return}N()}function re(){if(`error`in j){f(j.error??c(`source.invalid`));return}let e=r({ensureTunnel:!0,hostAlias:j.hostAlias,label:j.label,statusUrl:j.statusUrl});if(e.error){f(e.error);return}N()}function ie(e){let t=new Set;for(let e of s)try{t.add(new URL(e.statusUrl).port)}catch{}let n=`8877`;for(let e=8877;e<9077;e+=1)if(!t.has(String(e))){n=String(e);break}let i=Ib(e,n);if(`error`in i){f(i.error??c(`source.invalid`));return}let a=r({ensureTunnel:!0,hostAlias:i.hostAlias,label:i.label,statusUrl:i.statusUrl});a.error?f(a.error):f(null),O(n)}async function ae(){if(`error`in j){f(j.error??c(`source.invalid`));return}try{await navigator.clipboard.writeText(j.command),S(!0),f(null)}catch{f(c(`source.copyError`))}}return(0,V.jsxs)(`section`,{"aria-label":c(`source.controlPlane`),className:`personal-status-source`,children:[(0,V.jsxs)(`header`,{children:[(0,V.jsx)(`span`,{children:`Control plane`}),(0,V.jsx)(`button`,{"aria-label":c(`source.addSsh`),onClick:ne,title:c(`source.add`),type:`button`,children:(0,V.jsx)(Bm,{size:14})})]}),(0,V.jsx)(Wy,{ariaLabel:c(`source.select`),className:`personal-status-source-select`,icon:(0,V.jsx)(Jm,{size:15}),onChange:e=>{if(e.startsWith(te)){ie(e.slice(11));return}o(e)},options:A,value:e.id}),(0,V.jsxs)(`div`,{className:`personal-status-source-meta`,children:[(0,V.jsxs)(`span`,{className:`is-${t}`,children:[(0,V.jsx)(`i`,{}),c(t===`loading`?`source.connecting`:t===`error`?`source.notAvailable`:`source.connected`)]}),(0,V.jsx)(`small`,{children:e.readOnly?c(`source.readOnly`):c(`source.localInteractive`)}),e.kind===`ssh_tunnel`?(0,V.jsx)(`button`,{"aria-label":c(`source.remove`,{source:e.label}),onClick:()=>a(e.id),title:c(`source.removeCurrent`),type:`button`,children:(0,V.jsx)(nh,{size:12})}):null]}),n?(0,V.jsx)(`p`,{className:`personal-status-source-error`,role:`alert`,children:n}):null,l?(0,V.jsxs)(`div`,{className:`personal-status-source-form`,children:[(0,V.jsxs)(`header`,{children:[(0,V.jsx)(`strong`,{children:c(`source.addSsh`)}),(0,V.jsx)(`button`,{"aria-label":c(`source.closeForm`),onClick:N,type:`button`,children:(0,V.jsx)(ah,{size:13})})]}),(0,V.jsxs)(`div`,{"aria-label":c(`source.addMethod`),className:`personal-status-source-modes`,role:`tablist`,children:[(0,V.jsx)(`button`,{"aria-selected":p===`configured`,onClick:()=>{m(`configured`),f(null)},role:`tab`,type:`button`,children:c(`source.configured`)}),(0,V.jsx)(`button`,{"aria-selected":p===`manual`,onClick:()=>{m(`manual`),f(null)},role:`tab`,type:`button`,children:c(`source.manual`)})]}),p===`configured`?(0,V.jsxs)(V.Fragment,{children:[(0,V.jsxs)(`label`,{children:[(0,V.jsx)(`span`,{children:c(`source.configuredCount`,{count:h.length})}),(0,V.jsxs)(`span`,{className:`personal-status-source-field-row`,children:[(0,V.jsx)(`input`,{"aria-label":c(`source.host`),disabled:y||!h.length,list:`loopx-configured-ssh-hosts`,onChange:e=>{w(e.target.value),S(!1)},placeholder:c(y?`source.loadingHosts`:`source.hostPlaceholder`),value:C}),(0,V.jsx)(`datalist`,{id:`loopx-configured-ssh-hosts`,children:h.map(e=>(0,V.jsx)(`option`,{value:e.alias},e.alias))}),(0,V.jsx)(`button`,{"aria-label":c(`source.refreshHosts`),disabled:y,onClick:()=>void M(),title:c(`source.refreshHosts`),type:`button`,children:(0,V.jsx)(Wm,{size:13})})]})]}),(0,V.jsxs)(`label`,{children:[(0,V.jsx)(`span`,{children:c(`source.localPort`)}),(0,V.jsx)(`input`,{"aria-label":c(`source.localPort`),inputMode:`numeric`,onChange:e=>{O(e.target.value),S(!1)},value:D})]}),(0,V.jsxs)(`div`,{className:`personal-status-source-command`,children:[(0,V.jsx)(`code`,{children:`error`in j?c(`source.tunnelCommandPending`):j.command}),(0,V.jsxs)(`button`,{"aria-label":c(`source.copyCommand`),disabled:`error`in j,onClick:()=>void ae(),type:`button`,children:[(0,V.jsx)(pm,{size:12}),c(x?`source.copied`:`source.copy`)]})]}),_?(0,V.jsx)(`p`,{className:`is-error`,children:_}):null,(0,V.jsx)(`p`,{children:c(`source.description`)}),(0,V.jsx)(`button`,{className:`personal-status-source-add`,disabled:`error`in j,onClick:re,type:`button`,children:c(`source.addConfigured`)})]}):(0,V.jsxs)(V.Fragment,{children:[(0,V.jsxs)(`label`,{children:[(0,V.jsx)(`span`,{children:c(`source.name`)}),(0,V.jsx)(`input`,{autoFocus:!0,maxLength:48,onChange:e=>E(e.target.value),placeholder:c(`source.namePlaceholder`),value:T})]}),(0,V.jsxs)(`label`,{children:[(0,V.jsx)(`span`,{children:c(`source.statusUrl`)}),(0,V.jsx)(`input`,{onChange:e=>ee(e.target.value),placeholder:`http://127.0.0.1:8876/status.json`,value:k})]}),(0,V.jsx)(`p`,{children:(0,V.jsx)(`code`,{children:`ssh -N -L 8876:127.0.0.1:8766 `})}),(0,V.jsx)(`p`,{children:c(`source.manualDescription`)}),(0,V.jsx)(`button`,{className:`personal-status-source-add`,onClick:P,type:`button`,children:c(`source.addConfigured`)})]}),d?(0,V.jsx)(`p`,{className:`is-error`,role:`alert`,children:d}):null]}):null]})}var Hb={需修复:`is-danger`,等你:`is-warning`,等待条件:`is-info`,推进中:`is-success`,安静运行:`is-quiet`,已完成:`is-quiet`,已停止:`is-stopped`};function Ub({attentionCount:e,goals:t,goalArchiveLoadState:n={error:null,phase:`ready`},lifecycleBusyGoalIds:r,goalLifecycleOperations:i,onRequestGoalCreate:a,onOpenSettings:o,onRetryGoalArchive:s,onRequestGoalLifecycle:c,onSelectGoal:l,selectedGoalId:u,statusSourceControl:d}){let{locale:f,t:p}=Ji(),[m,h]=(0,B.useState)(!1),g=Ab(t.filter(e=>e.activationState!==`stopped`),d?.activeSource.statusUrl??`/status.json`),_=g.sorted,v=t.filter(e=>e.activationState===`stopped`),y=e=>!!c&&(!i||i.includes(e)),b=(e,t)=>(0,V.jsxs)(`div`,{className:`personal-goal-row${g.target?.id===e.goalId?g.target.after?` is-drop-after`:` is-drop-before`:``}`,"data-reorder-goal":t?void 0:e.goalId,"data-load-error":e.loadError,children:[(0,V.jsxs)(`button`,{...t?{}:g.pointerProps(e.goalId),title:t?void 0:p(`sidebar.dragGoal`),"aria-current":u===e.goalId?`page`:void 0,className:`personal-goal-link`,onClick:()=>l(e.goalId),type:`button`,children:[(0,V.jsx)(`span`,{className:`personal-goal-state-dot ${e.loadState?``:Hb[e.state]}`}),(0,V.jsxs)(`span`,{className:`personal-goal-link-copy`,children:[(0,V.jsx)(`strong`,{children:e.title}),(0,V.jsxs)(`small`,{children:[e.loadState&&(!t||u===e.goalId)?p(e.loadState===`error`?`startup.goalError`:`startup.goalLoading`):Yi(e.state,f),e.needsYou&&!t?` · ${p(`home.lane.needsYou`)}`:``]})]}),(0,V.jsx)(sm,{size:15})]}),!t&&m?(0,V.jsxs)(`div`,{className:`personal-goal-move-actions`,children:[(0,V.jsx)(`button`,{type:`button`,"aria-label":p(`sidebar.moveUp`,{goal:e.title}),disabled:_[0]?.goalId===e.goalId,onClick:()=>g.moveBy(e.goalId,-1),children:(0,V.jsx)($p,{"aria-hidden":`true`,size:13})}),(0,V.jsx)(`button`,{type:`button`,"aria-label":p(`sidebar.moveDown`,{goal:e.title}),disabled:_.at(-1)?.goalId===e.goalId,onClick:()=>g.moveBy(e.goalId,1),children:(0,V.jsx)(Yp,{"aria-hidden":`true`,size:13})})]}):null,c&&y(t?`resume`:`stop`)?(0,V.jsxs)(V.Fragment,{children:[(0,V.jsx)(`button`,{"aria-label":`${p(t?`sidebar.resume`:`sidebar.stop`)} ${e.title}`,"aria-busy":r?.has(e.goalId)||void 0,className:`personal-goal-lifecycle${r?.has(e.goalId)?` is-pending`:``}`,disabled:r?.has(e.goalId),onClick:()=>c(e,t?`resume`:`stop`),title:p(t?`sidebar.resumeGoal`:`sidebar.stopGoal`),type:`button`,children:r?.has(e.goalId)?(0,V.jsx)(km,{size:13}):t?(0,V.jsx)(Um,{size:13}):(0,V.jsx)(Rm,{size:13})}),t&&y(`delete`)?(0,V.jsx)(`button`,{"aria-label":`${p(`sidebar.delete`)} ${e.title}`,className:`personal-goal-lifecycle personal-goal-delete`,onClick:()=>c(e,`delete`),title:p(`sidebar.deleteGoal`),type:`button`,children:(0,V.jsx)(nh,{size:13})}):null]}):null]},e.goalId);return(0,V.jsxs)(`div`,{className:`personal-goal-directory`,children:[(0,V.jsxs)(`div`,{className:`personal-sidebar-brand`,children:[(0,V.jsx)(`span`,{className:`personal-brand-mark`,children:(0,V.jsx)(nm,{size:18})}),(0,V.jsx)(`span`,{children:(0,V.jsx)(`strong`,{children:`LoopX`})})]}),d?(0,V.jsx)(Vb,{...d}):null,(0,V.jsxs)(`nav`,{"aria-label":p(`home.workspace`),className:`personal-sidebar-nav`,children:[(0,V.jsxs)(`button`,{"aria-current":u===null?`page`:void 0,className:`personal-manager-link`,onClick:()=>l(null),type:`button`,children:[(0,V.jsx)(`span`,{className:`personal-manager-icon`,children:(0,V.jsx)(nm,{size:17})}),(0,V.jsx)(`span`,{children:p(`sidebar.manager`)}),e>0?(0,V.jsx)(`span`,{className:`personal-sidebar-count`,children:e}):null,(0,V.jsx)(sm,{size:15})]}),(0,V.jsxs)(`div`,{className:`personal-sidebar-section-title`,children:[(0,V.jsx)(`span`,{children:`Goals`}),(0,V.jsxs)(`span`,{className:`personal-sidebar-title-actions`,children:[(0,V.jsx)(`small`,{children:_.length}),(0,V.jsx)(`button`,{"aria-label":p(`sidebar.sortGoals`),title:p(`sidebar.sortGoals`),"aria-pressed":m,onClick:()=>h(!m),type:`button`,children:(0,V.jsx)(Qp,{"aria-hidden":`true`,size:15})}),a?(0,V.jsx)(`button`,{"aria-label":p(`sidebar.createGoal`),onClick:a,type:`button`,children:(0,V.jsx)(Bm,{size:15})}):null]})]}),g.saveFailed?(0,V.jsx)(`p`,{role:`status`,children:p(`sidebar.orderNotSaved`)}):null,(0,V.jsx)(`span`,{className:`personal-sr-only`,role:`status`,children:g.lastMoved?p(`sidebar.goalMoved`,{goal:g.lastMoved.title,position:g.lastMoved.position}):``}),(0,V.jsx)(`div`,{className:`personal-goal-list`,children:_.map(e=>b(e,!1))}),v.length||n.phase===`loading`||n.phase===`error`?(0,V.jsxs)(`details`,{className:`personal-stopped-goals`,open:n.phase===`error`||void 0,children:[(0,V.jsxs)(`summary`,{children:[(0,V.jsx)(om,{size:13}),(0,V.jsx)(`span`,{children:p(`sidebar.stopped`)}),n.phase===`loading`?(0,V.jsx)(km,{"aria-label":p(`sidebar.stoppedLoading`),className:`is-spinning`,size:13}):(0,V.jsx)(`small`,{children:v.length})]}),(0,V.jsxs)(`div`,{className:`personal-goal-list is-stopped`,children:[n.phase===`error`?(0,V.jsxs)(`div`,{className:`personal-stopped-goal-error`,role:`alert`,children:[(0,V.jsx)(`span`,{children:p(`sidebar.stoppedLoadFailed`)}),s?(0,V.jsx)(`button`,{onClick:s,type:`button`,children:p(`sidebar.retryStopped`)}):null]}):null,v.map(e=>b(e,!0))]})]}):null]}),(0,V.jsxs)(`div`,{className:`personal-sidebar-footer`,children:[(0,V.jsx)(Tb,{}),o?(0,V.jsxs)(`button`,{"aria-label":p(`settings.open`),className:`personal-sidebar-utility`,onClick:o,type:`button`,children:[(0,V.jsx)(`span`,{className:`personal-sidebar-utility-icon`,children:(0,V.jsx)(Ym,{size:17})}),(0,V.jsx)(`span`,{className:`personal-sidebar-utility-copy`,children:(0,V.jsx)(`strong`,{children:p(`settings.open`)})}),(0,V.jsx)(sm,{"aria-hidden":`true`,size:15})]}):null]})]})}var Wb=J({ok:X(!0),total:G().int().nonnegative(),next_cursor:W().nullable(),items:q(J({todo_id:W(),text:W(),claimed_by:W().nullable(),evidence:W().nullable(),priority:W().nullable(),task_class:W().nullable()})).max(40)});function Gb({goal:e,agentId:t,seed:n,enabled:r,listView:i=!1,onSelect:a}){let{t:o}=Ji(),s=(0,B.useId)(),[c,l]=(0,B.useState)(!1),u=!i||c,d=i?96:148,[f,p]=(0,B.useState)(n),[m,h]=(0,B.useState)(t===`all`?e.doneTodoCount??n.length:n.length),[g,_]=(0,B.useState)(void 0),[v,y]=(0,B.useState)(!1),[b,x]=(0,B.useState)(!1),[S,C]=(0,B.useState)(!1),[w,T]=(0,B.useState)({top:0,height:600}),[E,D]=(0,B.useState)(null),O=(0,B.useRef)(null),k=(0,B.useRef)(null),[ee,te]=(0,B.useState)(0);(0,B.useEffect)(()=>{let e=O.current;if(!e)return;let t=new ResizeObserver(()=>T({top:e.scrollTop,height:e.clientHeight}));return t.observe(e),()=>{t.disconnect(),k.current?.abort()}},[]);let A=g===void 0||w.top+w.height>=f.length*d-d*2;(0,B.useEffect)(()=>{if(!r||!u||!A||g===null||b||k.current)return;let n=new AbortController;k.current=n,y(!0);let i=new URLSearchParams({goal_id:e.goalId});t!==`all`&&i.set(`agent_id`,t),g&&i.set(`cursor`,g),fetch(`/api/chat/completed-todos?${i}`,{signal:n.signal}).then(async e=>{if(e.status===409&&C(!0),!e.ok)throw Error(`history unavailable`);let t=Wb.parse(await e.json());if(n.signal.aborted)return;let r=t.items.map(e=>({todoId:e.todo_id,text:e.text,claimedBy:e.claimed_by,evidence:e.evidence,priority:e.priority,taskClass:e.task_class,done:!0,status:`done`}));p(e=>g===void 0?r:[...e,...r.filter(t=>!e.some(e=>e.todoId===t.todoId))]),h(t.total),_(t.next_cursor)}).catch(()=>{n.signal.aborted||x(!0)}).finally(()=>{n.signal.aborted||(k.current=null,y(!1))})},[r,u,A,g,b,ee,e.goalId,t,v]),(0,B.useEffect)(()=>{O.current&&(O.current.scrollTop=0),T({top:0,height:O.current?.clientHeight??600}),D(null)},[i]);let j=Math.max(0,Math.floor(w.top/d)-3),M=Math.min(f.length,Math.ceil((w.top+w.height)/d)+3),ne=Array.from({length:Math.max(0,M-j)},(e,t)=>j+t);return E!==null&&El(e=>!e),children:[(0,V.jsx)(`span`,{"aria-hidden":`true`,children:c?`▾`:`▸`}),` `,o(`tasks.completed`)]}):(0,V.jsxs)(`strong`,{children:[(0,V.jsx)(`i`,{"aria-hidden":`true`,className:`personal-kanban-dot tone-done`}),o(`tasks.completed`)]}),(0,V.jsx)(`span`,{children:m})]}),(0,V.jsxs)(`div`,{id:s,hidden:!u,"aria-label":o(`tasks.completed`),className:`personal-task-lane-scroll`,ref:O,role:`region`,tabIndex:0,onScroll:e=>T({top:e.currentTarget.scrollTop,height:e.currentTarget.clientHeight}),children:[(0,V.jsx)(`div`,{className:`personal-completed-window`,style:{height:f.length*d},children:ne.map(t=>{let n=f[t];return(0,V.jsx)(`div`,{className:`personal-task-card personal-completed-row`,style:{top:t*d,height:d},children:(0,V.jsxs)(`button`,{type:`button`,onFocus:()=>D(t),onBlur:()=>D(null),onClick:()=>a({kind:`todo`,item:{...n,goalId:e.goalId,goalTitle:e.title,ownerLabel:n.claimedBy??e.agentLabel??e.agentId}}),children:[(0,V.jsx)(`span`,{className:`is-done`,children:`✓`}),(0,V.jsx)(`strong`,{children:n.text}),(0,V.jsx)(`small`,{children:n.claimedBy??e.agentLabel??e.agentId})]})},n.todoId)})}),(0,V.jsx)(`div`,{className:`personal-completed-footer`,role:`status`,children:v?o(`tasks.historyLoading`):b?(0,V.jsxs)(V.Fragment,{children:[(0,V.jsx)(`span`,{children:o(S?`tasks.historyExpired`:`tasks.historyError`)}),(0,V.jsx)(`button`,{type:`button`,onClick:()=>{S&&(_(void 0),O.current&&(O.current.scrollTop=0)),C(!1),x(!1),te(e=>e+1)},children:o(`tasks.historyRetry`)})]}):r?g===null?o(`tasks.historyEnd`):(0,V.jsx)(`button`,{type:`button`,onClick:()=>{O.current&&(O.current.scrollTop=f.length*d)},children:o(`tasks.historyMore`)}):o(`tasks.historyLocalOnly`)})]})]})}function Kb({children:e,count:t,label:n,tone:r,listView:i=!1}){let a=(0,B.useId)(),o=(0,B.useRef)(null),s=(0,B.useRef)([]),c=(0,B.useRef)(null),[l,u]=(0,B.useState)({after:!1,before:!1}),d=(0,B.useCallback)(()=>{let e=o.current;if(!e)return;let t={after:Math.max(0,e.scrollHeight-e.clientHeight)-e.scrollTop>1,before:e.scrollTop>1};u(e=>e.after===t.after&&e.before===t.before?e:t)},[]);return(0,B.useEffect)(()=>{let e=o.current;if(!e)return;let t=new ResizeObserver(d);return c.current=t,t.observe(e),e.addEventListener(`scroll`,d,{passive:!0}),d(),()=>{t.disconnect(),c.current=null,s.current=[],e.removeEventListener(`scroll`,d)}},[i,d]),(0,B.useEffect)(()=>{let e=o.current,t=c.current;if(!e||!t)return;for(let e of s.current)t.unobserve(e);let n=Array.from(e.children).filter(e=>e instanceof HTMLElement);for(let e of n)t.observe(e);s.current=n,d()},[e,t,i,d]),i?!t&&r!==`done`?null:(0,V.jsxs)(`details`,{className:`personal-task-group tone-${r}`,open:!0,children:[(0,V.jsxs)(`summary`,{children:[(0,V.jsx)(om,{size:16}),(0,V.jsx)(`strong`,{children:n}),(0,V.jsx)(`span`,{children:t})]}),(0,V.jsx)(`div`,{className:`personal-task-list-rows`,children:e})]}):(0,V.jsxs)(`section`,{className:`personal-object-list personal-task-lane`,children:[(0,V.jsxs)(`header`,{id:a,children:[(0,V.jsxs)(`strong`,{children:[(0,V.jsx)(`i`,{"aria-hidden":`true`,className:`personal-kanban-dot tone-${r}`}),n]}),(0,V.jsx)(`span`,{children:t})]}),(0,V.jsx)(`div`,{"aria-labelledby":a,className:`personal-task-lane-scroll${l.before?` has-overflow-before`:``}${l.after?` has-overflow-after`:``}`,ref:o,role:`region`,tabIndex:t>0?0:-1,children:e})]})}function qb({historyEnabled:e=!1,goal:t,items:n,onDraftTaskFromMessage:r,onOpenChat:i,onQuickComplete:a,quickCompletingTodoIds:o,onSelect:s,selectedTodoId:c=null,userTodos:l}){let{t:u}=Ji(),[d,f]=(0,B.useState)(!1),[p,m]=(0,B.useState)({goalId:``,laneId:`all`}),h=(0,B.useRef)(null);(0,B.useEffect)(()=>{if(!c)return;let e=window.requestAnimationFrame(()=>h.current?.scrollIntoView({block:`nearest`,inline:`nearest`}));return()=>window.cancelAnimationFrame(e)},[c]);let g=l.filter(e=>e.goalId===t.goalId).map(e=>({...e,goalTitle:t.title})),_=e=>e.priority===`P0`?0:e.priority===`P1`?1:e.priority===`P2`?2:3,v=(0,B.useMemo)(()=>{let e=new Map((t.agentLanes??[]).map(e=>[e.agentId,e]));for(let n of t.agentTodos)n.claimedBy&&!e.has(n.claimedBy)&&e.set(n.claimedBy,{agentId:n.claimedBy,label:n.claimedBy});return[...e.values()]},[t.agentLanes,t.agentTodos]),y=p.goalId===t.goalId&&v.some(e=>e.agentId===p.laneId)?p.laneId:`all`,b=e=>y===`all`||e===y,x=t.agentTodos.filter(e=>e.taskClass!==`continuous_monitor`&&!e.done).filter(e=>b(e.claimedBy)).sort((e,t)=>_(e)-_(t)),S=t.agentTodos.filter(e=>e.taskClass!==`continuous_monitor`&&e.done).filter(e=>b(e.claimedBy)),C=n.filter(e=>e.kind===`schedule`&&b(e.schedule.agentId)),w=n.filter(e=>e.kind===`run`&&!!e.run.todoId&&b(e.run.agentId)),T=!g.length&&!x.length&&!S.length&&!C.length,E=n.filter(e=>e.kind===`message`&&(e.message.role===`user`||e.message.role===`assistant`)),D=E.reduce((e,t,n)=>t.message.role===`user`?n:e,-1),O=D>=0?E[D]?.message:null,k=D>=0?E.slice(D+1).reverse().find(e=>e.message.role===`assistant`)?.message:null,ee=D>=0&&E.slice(D+1).some(e=>e.message.role===`assistant`&&e.message.pending);return(0,V.jsxs)(`section`,{"aria-label":u(`header.tasks`),className:`personal-task-board${d?` is-list-view`:``}`,children:[(0,V.jsxs)(`header`,{className:`personal-task-view-toolbar`,children:[(0,V.jsx)(`div`,{children:(0,V.jsx)(`strong`,{children:u(`header.tasks`)})}),(0,V.jsxs)(`div`,{className:`personal-task-view-switch`,role:`group`,"aria-label":u(`tasks.viewLabel`),children:[(0,V.jsx)(`button`,{type:`button`,"aria-pressed":d,onClick:()=>f(!0),children:u(`tasks.listView`)}),(0,V.jsx)(`button`,{type:`button`,"aria-pressed":!d,onClick:()=>f(!1),children:u(`tasks.boardView`)})]})]}),v.length>1?(0,V.jsxs)(`section`,{"aria-label":u(`tasks.agentLaneFilter`),className:`personal-task-lane-filter`,children:[(0,V.jsxs)(`div`,{children:[(0,V.jsx)(nm,{size:15}),(0,V.jsx)(`span`,{children:(0,V.jsx)(`strong`,{children:u(`tasks.agentLane`)})})]}),(0,V.jsxs)(`label`,{children:[(0,V.jsx)(`span`,{className:`sr-only`,children:u(`tasks.agentLaneFilter`)}),(0,V.jsxs)(`select`,{"aria-label":u(`tasks.agentLaneFilter`),onChange:e=>m({goalId:t.goalId,laneId:e.target.value}),value:y,children:[(0,V.jsx)(`option`,{value:`all`,children:u(`tasks.allAgentLanes`,{count:v.length})}),v.map(e=>(0,V.jsx)(`option`,{value:e.agentId,children:e.label},e.agentId))]}),(0,V.jsx)(om,{"aria-hidden":!0,size:14})]})]}):null,O?(0,V.jsxs)(`section`,{"aria-label":u(`tasks.chatRecent`),className:`personal-task-chat-receipt`,children:[(0,V.jsx)(`span`,{className:`personal-task-chat-icon`,children:(0,V.jsx)(Nm,{size:18})}),(0,V.jsxs)(`div`,{children:[(0,V.jsxs)(`header`,{children:[(0,V.jsx)(`strong`,{children:u(ee?`tasks.chatPending`:k?`tasks.chatAgentReplied`:`tasks.chatRecent`)}),(0,V.jsx)(`small`,{children:t.agentLabel??t.agentId})]}),(0,V.jsxs)(`p`,{className:`is-user`,children:[(0,V.jsx)(`b`,{children:u(`common.you`)}),O.text]}),k&&!k.pending?(0,V.jsxs)(`p`,{className:`is-assistant`,children:[(0,V.jsx)(`b`,{children:u(`common.agent`)}),k.text]}):null,(0,V.jsx)(`small`,{children:u(ee?`tasks.chatPendingDescription`:`tasks.chatUnchangedDescription`)})]}),(0,V.jsxs)(`footer`,{children:[(0,V.jsxs)(`button`,{onClick:i,type:`button`,children:[(0,V.jsx)(Nm,{size:14}),u(`tasks.chatViewReply`)]}),k&&!ee&&r?(0,V.jsxs)(`button`,{onClick:()=>r(k.text),type:`button`,children:[(0,V.jsx)(Om,{size:14}),u(`tasks.convertToTask`)]}):null]})]}):null,(0,V.jsxs)(`div`,{className:d?`personal-task-grouped-list`:`personal-task-kanban`,children:[(0,V.jsxs)(Kb,{listView:d,count:g.length,label:u(`timeline.waitingConfirmation`),tone:`attention`,children:[g.map(e=>{let t=Zi(e.updatedAt,u);return(0,V.jsxs)(`button`,{onClick:()=>s({item:e,kind:`attention`}),type:`button`,children:[(0,V.jsx)(`span`,{"aria-hidden":`true`,className:`is-attention`,children:`!`}),(0,V.jsx)(`strong`,{children:e.text}),(0,V.jsxs)(`small`,{children:[(0,V.jsx)(`span`,{className:`personal-row-status ${e.blocking?`is-blocking`:`is-pending`}`,children:e.blocking?u(`tasks.blocked`):u(`tasks.pending`)}),t?(0,V.jsx)(`span`,{className:`personal-task-age`,children:u(`tasks.waitingAge`,{age:t})}):null]})]},e.todoId)}),g.length?null:(0,V.jsx)(`p`,{className:`personal-task-empty`,children:u(`tasks.emptyConfirm`)})]}),(0,V.jsxs)(Kb,{listView:d,count:x.length,label:u(`tasks.pendingAndRunning`),tone:`progress`,children:[x.map(e=>{let n={...e,goalId:t.goalId,goalTitle:t.title,ownerLabel:e.claimedBy??t.agentLabel??t.agentId},r=w.find(t=>t.run.todoId===e.todoId)?.run;return(0,V.jsxs)(`div`,{className:`personal-task-card${r?` has-session`:``}${c===e.todoId?` is-selected`:``}`,ref:c===e.todoId?e=>{h.current=e}:void 0,children:[(0,V.jsxs)(`button`,{"aria-pressed":c===e.todoId,onClick:()=>s({item:n,kind:`todo`}),type:`button`,children:[(0,V.jsx)(`span`,{children:`○`}),(0,V.jsx)(`strong`,{children:e.text}),(0,V.jsxs)(`small`,{children:[e.priority?(0,V.jsx)(`span`,{className:`personal-priority-badge is-${e.priority.toLowerCase()}`,children:e.priority}):null,e.status===`blocked`?(0,V.jsx)(`span`,{className:`personal-priority-badge is-blocked`,children:u(`tasks.blocked`)}):null,r?(0,V.jsx)(`span`,{className:`personal-task-session-status`,children:r.status===`running`||r.status===`queued`?u(`runs.running`):r.status===`failed`?u(`tasks.sessionError`):u(`common.waiting`)}):null,e.status===`deferred`?(0,V.jsx)(`span`,{className:`personal-task-session-status`,children:u(`drawer.taskStatusDeferred`)}):r?null:(0,V.jsx)(`span`,{className:`personal-task-session-status`,children:u(`tasks.waiting`)}),e.claimedBy??t.agentLabel??t.agentId]})]}),(0,V.jsxs)(`div`,{className:`personal-task-card-actions`,children:[r?(0,V.jsxs)(`button`,{className:`personal-task-session-link`,"aria-label":u(`tasks.openExecution`,{name:e.text}),onClick:()=>s({item:r,kind:`run`}),title:r.status===`completed`?u(`tasks.viewResult`):u(`tasks.viewExecution`),type:`button`,children:[(0,V.jsx)(_m,{size:14}),(0,V.jsx)(`span`,{children:r.status===`completed`?u(`tasks.viewResult`):u(`tasks.viewExecution`)})]}):null,a?(0,V.jsx)(`button`,{"aria-busy":o?.has(e.todoId)||void 0,"aria-label":u(`tasks.markComplete`,{name:e.text}),disabled:o?.has(e.todoId),onClick:()=>void a(n),title:u(`tasks.completed`),type:`button`,children:o?.has(e.todoId)?(0,V.jsx)(km,{className:`personal-spin`,size:14}):(0,V.jsx)(am,{size:14})}):null,(0,V.jsx)(`button`,{"aria-label":u(`tasks.moreActions`,{name:e.text}),onClick:()=>s({item:n,kind:`todo`}),title:u(`common.actions`),type:`button`,children:(0,V.jsx)(gm,{size:14})})]})]},e.todoId)}),x.length?null:(0,V.jsx)(`p`,{className:`personal-task-empty`,children:u(`tasks.emptyRunning`)})]}),(0,V.jsxs)(Kb,{listView:d,count:C.length,label:u(`tasks.scheduled`),tone:`schedule`,children:[C.map(e=>(0,V.jsxs)(`button`,{onClick:()=>s({item:e.schedule,kind:`schedule`}),type:`button`,children:[(0,V.jsx)(`span`,{children:`◷`}),(0,V.jsx)(`strong`,{children:e.schedule.label}),(0,V.jsx)(`small`,{children:e.schedule.status===`paused`?u(`schedule.paused`):u(`schedule.active`)})]},e.id)),C.length?null:(0,V.jsx)(`p`,{className:`personal-task-empty`,children:u(`tasks.emptySchedules`)})]}),(0,V.jsx)(Gb,{goal:t,agentId:y,seed:S,enabled:e,listView:d,onSelect:s},`${t.goalId}:${y}:${e}`)]}),T?(0,V.jsx)(`p`,{className:`personal-task-empty`,children:u(`tasks.emptyGoal`)}):null]})}function Jb(e,t){return{live_steering:{label:t(`lark.ingressSteering`),detail:t(`lark.ingressSteeringDescription`)},session_queue:{label:t(`lark.ingressQueue`),detail:t(`lark.ingressQueueDescription`)},async_inbox:{label:t(`lark.ingressAsync`),detail:t(`lark.ingressAsyncDescription`)},direct_session:{label:t(`lark.ingressLegacy`),detail:t(`lark.ingressLegacyDescription`)}}[e]}function Yb(e,t){return e.listener_status===`starting`?{label:t(`lark.health.starting`),detail:t(`lark.health.startingDetail`),state:`not_ready`}:e.listener_status===`retrying`&&e.listener_error_code===`lark_event_source_disconnected`?{label:t(`lark.health.sourceDisconnected`),detail:t(`lark.health.sourceDisconnectedDetail`),state:`not_ready`}:e.listener_status===`retrying`?{label:t(`lark.health.retrying`),detail:t(`lark.health.retryingDetail`),state:`not_ready`}:e.listener_status===`stopped`||e.listener_status===null?{label:t(`lark.health.notStarted`),detail:t(`lark.health.notStartedDetail`),state:`not_ready`}:e.last_event_status===`message_context_permission_required`?{label:t(`lark.health.messageContextPermission`),detail:t(`lark.health.messageContextPermissionDetail`),state:`not_ready`}:e.last_event_status===`processing_failed`?{label:t(`lark.health.processingFailed`),detail:t(`lark.health.processingFailedDetail`),state:`not_ready`}:e.health_error_code===`invalid_routing_state`?{label:t(`lark.health.invalidRouting`),detail:t(`lark.health.invalidRoutingDetail`),state:`not_ready`}:e.last_event_status===`queued_for_agent`?{label:t(`lark.health.queued`),detail:t(`lark.health.queuedDetail`,{agent:e.agent_id??t(`lark.targetAgent`)}),state:`ready`}:e.last_event_status===`context_only_captured`||e.last_event_status===`context_only_already_captured`?{label:t(`lark.health.contextCaptured`),detail:t(`lark.health.contextCapturedDetail`),state:`ready`}:e.last_event_status===`ignored`&&e.last_event_reason===`not_addressed`?{label:t(`lark.health.notAddressed`),detail:t(`lark.health.notAddressedDetail`),state:`ready`}:e.last_event_status===`ignored`&&e.last_event_reason===`self_message`?{label:t(`lark.health.listening`),detail:t(`lark.health.ignoredSelf`),state:`ready`}:e.health_error_code===`lark_event_route_mismatch`||[`chat_mismatch`,`topic_mismatch`,`route_ambiguous`].includes(e.last_event_reason??``)?{label:e.last_event_reason===`route_ambiguous`?t(`lark.health.routeAmbiguous`):t(`lark.health.routeMismatch`),detail:e.last_event_reason===`route_ambiguous`?t(`lark.health.routeAmbiguousDetail`):t(`lark.health.routeMismatchDetail`),state:`not_ready`}:[`invalid_event`,`binding_unavailable`].includes(e.last_event_reason??``)?{label:t(`lark.health.routeUnavailable`),detail:t(`lark.health.routeUnavailableDetail`),state:`not_ready`}:e.last_event_status===`replied_and_acknowledged`?{label:t(`lark.health.listening`),detail:t(`lark.health.eventProcessed`,{events:e.event_count,replies:e.replied_count}),state:`ready`}:e.health_error_code===`lark_event_delivery_unverified`||e.event_count===0?{label:t(`lark.health.eventUnverified`),detail:t(`lark.health.eventUnverifiedDetail`),state:`unverified`}:{label:e.reply_ready?t(`lark.health.listening`):t(`lark.health.unavailable`),detail:t(`lark.health.lastStatus`,{status:e.last_event_status??t(`lark.health.waiting`)}),state:e.reply_ready?`ready`:`not_ready`}}function Xb(e){return e.history_permission_guidance?.api_document_url??null}function Zb(e,t,n){if(e instanceof Ph){let t=String(e.payload.error_code??``);return{lark_cli_not_installed:n(`lark.error.cliMissing`),lark_cli_not_executable:n(`lark.error.cliExecutable`),lark_cli_start_failed:n(`lark.error.cliStart`),lark_message_permissions_required:n(`lark.error.messagePermissions`),lark_app_required:n(`lark.error.appRequired`),invalid_lark_app:n(`lark.error.invalidApp`),lark_group_lookup_failed:n(`lark.error.groupLookup`),provider_api_failed:n(`lark.error.provider`)}[t]??e.message}return e instanceof Error?e.message:t}function Qb({embedded:e=!1,focusGoalConnection:t=!1,goals:n,initialGoalId:r,onChanged:i,onClose:a}){let{t:o}=Ji(),[s,c]=(0,B.useState)(`connections`),[l,u]=(0,B.useState)([]),[d,f]=(0,B.useState)([]),[p,m]=(0,B.useState)(!0),[h,g]=(0,B.useState)(null),[_,v]=(0,B.useState)(``),[y,b]=(0,B.useState)(t),[x,S]=(0,B.useState)(``),[C,w]=(0,B.useState)(r??n[0]?.goalId??``),[T,E]=(0,B.useState)(``),[D,O]=(0,B.useState)([]),[k,ee]=(0,B.useState)(``),[te,A]=(0,B.useState)(!1),[j,M]=(0,B.useState)(null),[ne,N]=(0,B.useState)(`addressed_only`),[P,re]=(0,B.useState)(t&&r?`goal`:`manager`),[ie,ae]=(0,B.useState)(`async_inbox`),[F,oe]=(0,B.useState)(`topic_reply`),[I,se]=(0,B.useState)(``),[L,ce]=(0,B.useState)(!1),[le,ue]=(0,B.useState)({}),[de,R]=(0,B.useState)(!1),[fe,pe]=(0,B.useState)(null),[me,he]=(0,B.useState)(null),[ge,_e]=(0,B.useState)(null),[ve,ye]=(0,B.useState)(null),[be,xe]=(0,B.useState)(!1),[Se,Ce]=(0,B.useState)(`loopx-workspace-bot`),[we,Te]=(0,B.useState)(`feishu`),[Ee,De]=(0,B.useState)(null),[z,Oe]=(0,B.useState)(!1),[ke,Ae]=(0,B.useState)(null),je=(0,B.useRef)(null),Me=(0,B.useRef)(null),Ne=(0,B.useRef)(!1);async function Pe(){m(!0),g(null);try{let[e,t]=await Promise.all([Zg(),o_()]);u(e),f(t),S(t=>t||e.find(e=>e.reply_ready)?.app_ref||e.find(e=>e.ready)?.app_ref||e[0]?.app_ref||``)}catch(e){g(Zb(e,o(`lark.error.configuration`),o))}finally{m(!1)}}(0,B.useEffect)(()=>{Pe()},[]),(0,B.useEffect)(()=>{if(!t||p||Ne.current||!r)return;Ne.current=!0;let e=d.find(e=>e.goal_id===r);e?Je(e):qe(n.find(e=>e.goalId===r))},[d,t,n,r,p]),(0,B.useEffect)(()=>{if(!y||!x||ge){O([]),ee(``),A(!1),M(null);return}let e=!1;A(!0),M(null);let t=window.setTimeout(()=>{i_(x,T).then(t=>{e||(O(t),ee(e=>t.some(t=>t.chat_id===e)?e:t[0]?.chat_id??``))}).catch(t=>{e||(O([]),ee(``),M(Zb(t,o(`lark.error.groupLoad`),o)))}).finally(()=>{e||A(!1)})},180);return()=>{e=!0,window.clearTimeout(t)}},[x,T,y,ge]),(0,B.useEffect)(()=>{if(!be||!Ee||[`ready`,`failed`,`cancelled`].includes(Ee.status))return;let e=!1,t=window.setTimeout(()=>{e_(Ee.setup_id).then(async t=>{e||(De(t),t.verification_url&&Me.current!==t.verification_url&&(Me.current=t.verification_url,je.current&&!je.current.closed&&(je.current.location.href=t.verification_url)),t.status===`ready`&&(await Pe(),S(t.app_ref),ue({}),xe(!1)),t.status===`failed`&&Ae(t.error??o(`lark.error.appCreate`)))}).catch(t=>{e||Ae(Zb(t,o(`lark.error.setupPoll`),o))})},650);return()=>{e=!0,window.clearTimeout(t)}},[be,Ee]);let Fe=n.find(e=>e.goalId===C),Ie=Fe?.agentId?[{agentId:Fe.agentId,label:Fe.agentLabel??Fe.agentId}]:[],Le=Fe?.agentLanes?.length?Fe.agentLanes:Ie,Re=Le.some(e=>e.agentId===I),ze=[];L?ze=Le.map(e=>({agentId:e.agentId,appRef:le[e.agentId]??x})):Re&&(ze=[{agentId:I,appRef:x}]);let Be=ze.map(e=>e.agentId),Ve=!!ge||ze.length>0&&ze.every(e=>l.some(t=>t.app_ref===e.appRef&&t.reply_ready)),He=o(`lark.connect`);me?He=o(`lark.saveConnection`):L&&(He=o(`lark.connectAllAgentsAction`,{count:Be.length}));let Ue=l.find(e=>e.app_ref===x),We=D.find(e=>e.chat_id===k),Ge=(0,B.useMemo)(()=>{let e=_.trim().toLocaleLowerCase();return e?d.filter(t=>[t.app_label,t.chat_name,t.goal_title,t.topic_name].some(t=>t.toLocaleLowerCase().includes(e))):d},[d,_]),Ke=(0,B.useMemo)(()=>d.filter(e=>Yb(e,o).state===`unverified`).length,[d,o]);function qe(e){let i=e??n.find(e=>e.goalId===r)??n[0];he(null),_e(null),re(e||t?`goal`:`manager`),S(l.some(e=>e.app_ref===x)?x:l.find(e=>e.reply_ready)?.app_ref??l[0]?.app_ref??``),ee(``),w(i?.goalId??``),se(i?.agentId??``),ce(!1),ue({}),N(`addressed_only`),ae(`async_inbox`),oe(`topic_reply`),E(``),pe(null),b(!0)}function Je(e){he(e.goal_id),_e(e),re(e.conversation_kind??`goal`),S(e.app_ref),w(e.goal_id);let t=n.find(t=>t.goalId===e.goal_id),r=t?.agentLanes?.length?t.agentLanes:t?.agentId?[{agentId:t.agentId}]:[];se(e.agent_id??(r.length===1?r[0].agentId:``)),ce(!1),ue({}),N(e.capture_scope),ae(e.ingress_mode===`direct_session`?`async_inbox`:e.ingress_mode),oe(e.reply_mode),E(e.chat_name),pe(null),b(!0)}function Ye(){De(null),Ae(null),Me.current=null,xe(!0)}async function Xe(){if(!(z||!/^[A-Za-z0-9][A-Za-z0-9._-]{0,99}$/.test(Se))){Oe(!0),Ae(null),Me.current=null,je.current=window.open(window.location.href,`_blank`);try{let e=await $g({appRef:Se,brand:we});De(e)}catch(e){je.current?.close(),Ae(Zb(e,o(`lark.error.setupStart`),o))}finally{Oe(!1)}}}async function Ze(){let e=Ee;if(xe(!1),je.current?.close(),e&&![`ready`,`failed`,`cancelled`].includes(e.status))try{await t_(e.setup_id)}catch{}}async function Qe(){if(!(!x||!C||!ge&&!We||P===`goal`&&Be.length===0||de)){R(!0),pe(null);try{let e={...P===`manager`?{...ge?{connectionId:ge.connection_id}:{appRef:x,chatId:We.chat_id,chatName:We.chat_name}}:ge?{connectionId:ge.connection_id,agentId:I}:{agentBindings:ze,chatId:We.chat_id,chatName:We.chat_name},conversationKind:P,captureScope:P===`manager`?`addressed_only`:ne,goalId:C,incomingMode:ne===`configured_chat_all`?`all`:`mentions`,ingressMode:P===`manager`?`session_queue`:ie,replyMode:F},t=await s_({...e,execute:!1});if(!t.ok)throw new Ph(t.public_summary??t.blocker??o(`lark.error.bindPreview`),{error_code:t.blocker??`provider_api_failed`});let n=await s_({...e,execute:!0});if(!n.ok)throw new Ph(n.public_summary??n.blocker??o(`lark.error.bind`),{error_code:n.blocker??`provider_api_failed`});b(!1),await Pe(),i?.()}catch(e){pe(Zb(e,o(`lark.error.bind`),o))}finally{R(!1)}}}async function $e(e,t){if(ve!==t){ye(t);return}try{await c_(e,t),ye(null),await Pe(),i?.()}catch(e){g(Zb(e,o(`lark.error.disconnect`),o))}}return(0,V.jsxs)(`section`,{className:`personal-lark-settings${e?` is-embedded`:``}`,"aria-label":o(`lark.configuration`),children:[e?null:(0,V.jsxs)(`header`,{className:`personal-lark-header`,children:[(0,V.jsxs)(`div`,{children:[(0,V.jsx)(`small`,{children:o(`settings.goalConnections`)}),(0,V.jsx)(`h1`,{children:`Lark`})]}),(0,V.jsx)(`button`,{"aria-label":o(`lark.closeSettings`),className:`personal-icon-button`,onClick:a,type:`button`,children:(0,V.jsx)(ah,{size:18})})]}),(0,V.jsxs)(`nav`,{className:`personal-lark-tabs`,"aria-label":o(`lark.management`),children:[(0,V.jsxs)(`button`,{"aria-current":s===`apps`?`page`:void 0,onClick:()=>c(`apps`),type:`button`,children:[o(`lark.apps`),` `,(0,V.jsx)(`span`,{children:p?`…`:l.length})]}),(0,V.jsxs)(`button`,{"aria-current":s===`connections`?`page`:void 0,onClick:()=>c(`connections`),type:`button`,children:[o(`lark.connections`),` `,(0,V.jsx)(`span`,{children:p?`…`:d.length})]})]}),h?(0,V.jsx)(`p`,{className:`personal-notification-error`,children:h}):null,p?(0,V.jsxs)(`div`,{className:`personal-lark-loading`,children:[(0,V.jsx)(km,{className:`is-spinning`,size:18}),o(`lark.loading`)]}):null,!p&&s===`apps`?(0,V.jsxs)(`div`,{className:`personal-lark-apps`,children:[(0,V.jsxs)(`div`,{className:`personal-lark-app-toolbar`,children:[(0,V.jsx)(`span`,{children:o(`lark.reusableApps`,{count:l.length})}),(0,V.jsxs)(`button`,{className:`personal-primary-action`,onClick:Ye,type:`button`,children:[(0,V.jsx)(Bm,{size:16}),o(`lark.newApp`)]})]}),(0,V.jsxs)(`div`,{className:`personal-lark-app-grid`,children:[l.map(e=>(0,V.jsxs)(`article`,{className:`personal-lark-app-card`,children:[(0,V.jsx)(`span`,{className:`personal-lark-app-avatar`,children:(0,V.jsx)(nm,{size:19})}),(0,V.jsxs)(`div`,{children:[(0,V.jsx)(`strong`,{children:e.label}),(0,V.jsxs)(`small`,{children:[e.brand,` · lark-cli profile`]})]}),(0,V.jsx)(`em`,{className:e.reply_ready?`is-ready`:`is-off`,children:e.reply_ready?o(`lark.autoReplyReady`):e.ready?o(`lark.needsMessagePermissions`):o(`lark.needsSetup`)}),(0,V.jsxs)(`p`,{children:[o(`lark.goalConnections`,{count:d.filter(t=>t.app_ref===e.app_ref).length}),e.ready&&!e.reply_ready?` · ${o(`lark.autoReplyUnavailable`)}`:``]})]},e.app_ref)),l.length===0?(0,V.jsx)(`p`,{className:`personal-lark-empty`,children:o(`lark.noProfiles`)}):null]})]}):null,!p&&s===`connections`?(0,V.jsxs)(`div`,{className:`personal-lark-connections`,children:[Ke>0?(0,V.jsxs)(`p`,{className:`personal-lark-route-readiness`,role:`status`,children:[(0,V.jsx)(Nm,{size:15}),o(`lark.routesUnverified`,{count:Ke})]}):null,(0,V.jsxs)(`div`,{className:`personal-lark-toolbar`,children:[(0,V.jsxs)(`label`,{children:[(0,V.jsx)(Gm,{size:16}),(0,V.jsx)(`input`,{"aria-label":o(`lark.searchConnections`),onChange:e=>v(e.target.value),placeholder:o(`lark.searchPlaceholder`),type:`search`,value:_})]}),(0,V.jsxs)(`button`,{className:`personal-primary-action`,disabled:l.length===0||n.length===0,onClick:()=>qe(),type:`button`,children:[(0,V.jsx)(Bm,{size:16}),o(`lark.connectApp`)]})]}),(0,V.jsxs)(`div`,{className:`personal-lark-table`,role:`table`,"aria-label":o(`lark.goalTopicConnections`),children:[(0,V.jsxs)(`div`,{className:`personal-lark-table-head`,role:`row`,children:[(0,V.jsx)(`span`,{children:o(`lark.connection`)}),(0,V.jsx)(`span`,{children:o(`common.goal`)}),(0,V.jsx)(`span`,{children:o(`lark.capture`)}),(0,V.jsx)(`span`,{children:o(`lark.processing`)}),(0,V.jsx)(`span`,{children:o(`common.actions`)})]}),Ge.map(e=>{let t=Yb(e,o);return(0,V.jsxs)(`div`,{className:`personal-lark-table-row`,role:`row`,children:[(0,V.jsxs)(`span`,{children:[(0,V.jsx)(`strong`,{children:e.chat_name}),(0,V.jsxs)(`small`,{children:[e.app_label,` · `,t.label]}),(0,V.jsx)(`small`,{children:t.detail}),t.state===`unverified`?(0,V.jsxs)(`a`,{href:`https://open.feishu.cn/document/server-docs/im-v1/message/events/receive?lang=zh-CN`,rel:`noreferrer`,target:`_blank`,children:[(0,V.jsx)(_m,{size:12}),o(`lark.openEventSettings`)]}):null,Xb(e)?(0,V.jsxs)(`a`,{href:Xb(e)??void 0,rel:`noreferrer`,target:`_blank`,children:[(0,V.jsx)(_m,{size:12}),o(`lark.historyPermission`)]}):null]}),(0,V.jsxs)(`span`,{children:[(0,V.jsx)(`strong`,{children:e.goal_title}),(0,V.jsxs)(`small`,{children:[`# `,e.topic_name]})]}),(0,V.jsx)(`span`,{children:e.capture_scope===`addressed_only`?o(`lark.mentionsOnly`):o(`lark.allTopicMessages`)}),(0,V.jsxs)(`span`,{children:[(0,V.jsx)(`strong`,{children:e.conversation_kind===`manager`?o(`lark.managerConversation`):Jb(e.ingress_mode,o).label}),(0,V.jsx)(`small`,{children:e.conversation_kind===`manager`?o(`lark.managerConversationDescription`):e.agent_id??Jb(e.ingress_mode,o).detail})]}),(0,V.jsxs)(`span`,{className:`personal-lark-row-actions`,children:[(0,V.jsx)(`button`,{"aria-label":o(`lark.settingsConfigure`,{goal:e.goal_title}),onClick:()=>Je(e),type:`button`,children:(0,V.jsx)(Ym,{size:15})}),(0,V.jsxs)(`button`,{"aria-label":o(`lark.settingsDisconnect`,{goal:e.goal_title}),className:ve===e.connection_id?`is-confirm`:``,onClick:()=>void $e(e.goal_id,e.connection_id),type:`button`,children:[(0,V.jsx)(ih,{size:15}),ve===e.connection_id?o(`common.confirm`):null]})]})]},e.connection_id)}),Ge.length===0?(0,V.jsx)(`p`,{className:`personal-lark-empty`,children:o(`lark.noConnections`)}):null]})]}):null,y?(0,V.jsx)(`div`,{className:`personal-lark-modal-backdrop`,role:`presentation`,children:(0,V.jsxs)(`section`,{"aria-labelledby":`connect-lark-title`,"aria-modal":`true`,className:`personal-lark-modal`,role:`dialog`,children:[(0,V.jsxs)(`header`,{children:[(0,V.jsxs)(`div`,{children:[(0,V.jsx)(`small`,{children:`Goal Topic connection`}),(0,V.jsx)(`h2`,{id:`connect-lark-title`,children:o(me?`lark.editConnection`:`lark.connectApp`)})]}),(0,V.jsx)(`button`,{"aria-label":o(`lark.closeConnection`),onClick:()=>b(!1),type:`button`,children:(0,V.jsx)(ah,{size:18})})]}),(0,V.jsxs)(`label`,{children:[(0,V.jsx)(`span`,{children:o(`lark.conversationKind`)}),(0,V.jsxs)(`select`,{"aria-label":o(`lark.conversationKind`),disabled:!!ge,value:P,onChange:e=>re(e.target.value),children:[(0,V.jsx)(`option`,{value:`manager`,children:o(`lark.managerConversation`)}),(0,V.jsx)(`option`,{value:`goal`,children:o(`lark.workerConversation`)})]})]}),P===`manager`?(0,V.jsx)(`p`,{children:o(`lark.managerConversationDescription`)}):null,ge?(0,V.jsxs)(V.Fragment,{children:[(0,V.jsxs)(`label`,{children:[(0,V.jsx)(`span`,{children:o(`lark.appProfile`)}),(0,V.jsx)(`div`,{children:ge.app_label})]}),(0,V.jsxs)(`label`,{children:[(0,V.jsx)(`span`,{children:o(`lark.groupChat`)}),(0,V.jsx)(`div`,{children:ge.chat_name})]}),(0,V.jsxs)(`label`,{children:[(0,V.jsx)(`span`,{children:o(`lark.bindGoal`)}),(0,V.jsx)(`div`,{children:ge.goal_title})]}),(0,V.jsx)(`small`,{children:o(`lark.editPreservesIdentity`)})]}):(0,V.jsxs)(V.Fragment,{children:[(0,V.jsxs)(`label`,{children:[(0,V.jsx)(`span`,{children:o(`lark.appProfile`)}),(0,V.jsx)(`select`,{"aria-label":o(`lark.appProfile`),disabled:p,onChange:e=>{e.target.value===`__register__`?Ye():(S(e.target.value),ue({}))},value:x,children:p?(0,V.jsx)(`option`,{value:``,children:o(`lark.appLoading`)}):(0,V.jsxs)(V.Fragment,{children:[l.map(e=>(0,V.jsxs)(`option`,{disabled:!e.ready,value:e.app_ref,children:[e.label,e.reply_ready?``:e.ready?` · ${o(`lark.needsMessagePermissions`)}`:` · ${o(`lark.needsSetup`)}`]},e.app_ref)),(0,V.jsx)(`option`,{value:`__register__`,children:o(`lark.registerAnother`)})]})}),(0,V.jsx)(`small`,{children:o(`lark.defaultAgentAppDescription`)})]}),Ue?.ready&&!Ue.reply_ready?(0,V.jsx)(`div`,{className:`personal-lark-group-state is-error`,role:`alert`,children:o(`lark.appPermissions`)}):null,(0,V.jsxs)(`label`,{children:[(0,V.jsx)(`span`,{children:o(`lark.groupChat`)}),(0,V.jsx)(`input`,{"aria-label":o(`lark.groupSearch`),onChange:e=>E(e.target.value),placeholder:o(`lark.groupSearch`),type:`search`,value:T}),te?(0,V.jsxs)(`div`,{className:`personal-lark-group-state`,role:`status`,children:[(0,V.jsx)(km,{className:`is-spinning`,size:15}),o(`lark.groupLoading`)]}):null,!te&&j?(0,V.jsx)(`div`,{className:`personal-lark-group-state is-error`,role:`alert`,children:j}):null,!te&&!j&&D.length===0?(0,V.jsx)(`div`,{className:`personal-lark-group-state`,role:`status`,children:o(`lark.groupEmpty`)}):null,!te&&!j&&D.length>0?(0,V.jsx)(`select`,{"aria-label":o(`lark.groupChat`),onChange:e=>ee(e.target.value),value:k,children:D.map(e=>(0,V.jsx)(`option`,{value:e.chat_id,children:e.chat_name},e.chat_id))}):null]}),(0,V.jsxs)(`label`,{children:[(0,V.jsx)(`span`,{children:o(`lark.bindGoal`)}),(0,V.jsx)(`select`,{"aria-label":o(`lark.bindGoal`),onChange:e=>{let t=e.target.value;w(t),se(n.find(e=>e.goalId===t)?.agentId??``),ue({})},value:C,children:n.map(e=>(0,V.jsx)(`option`,{value:e.goalId,children:e.title},e.goalId))})]})]}),(0,V.jsxs)(`label`,{className:`personal-lark-check`,children:[(0,V.jsx)(`input`,{checked:!0,readOnly:!0,type:`checkbox`}),(0,V.jsxs)(`span`,{children:[(0,V.jsx)(`strong`,{children:o(`lark.createAutomatically`)}),(0,V.jsx)(`small`,{children:o(`lark.createAutomaticallyDescription`)})]})]}),(0,V.jsxs)(`label`,{children:[(0,V.jsx)(`span`,{children:o(`lark.topicPreview`)}),(0,V.jsxs)(`div`,{className:`personal-lark-topic-preview`,children:[(0,V.jsx)(Nm,{size:15}),`# `,Fe?.title??Fe?.goalId??`Goal`]})]}),P===`goal`?(0,V.jsxs)(V.Fragment,{children:[(0,V.jsxs)(`label`,{children:[(0,V.jsx)(`span`,{children:o(`lark.captureScope`)}),(0,V.jsxs)(`select`,{"aria-label":o(`lark.captureScope`),disabled:ge?.ingress_mode===`direct_session`,onChange:e=>N(e.target.value),value:ne,children:[(0,V.jsx)(`option`,{value:`addressed_only`,children:o(`lark.captureAddressed`)}),(0,V.jsx)(`option`,{value:`configured_chat_all`,children:o(`lark.captureAll`)})]}),(0,V.jsx)(`small`,{children:o(`lark.captureScopeDescription`)})]}),(0,V.jsxs)(`fieldset`,{"aria-label":o(`lark.agentIngress`),className:`personal-lark-ingress`,children:[(0,V.jsx)(`legend`,{children:o(`lark.agentIngress`)}),(0,V.jsx)(`div`,{children:[`live_steering`,`session_queue`,`async_inbox`].map(e=>{let t=Jb(e,o);return(0,V.jsxs)(`label`,{className:ie===e?`is-active`:``,children:[(0,V.jsx)(`input`,{"aria-label":t.label,checked:ie===e,name:`lark-agent-ingress`,onChange:()=>ae(e),type:`radio`,value:e}),(0,V.jsxs)(`span`,{children:[(0,V.jsx)(`strong`,{children:t.label}),(0,V.jsx)(`small`,{children:t.detail})]})]},e)})})]}),(0,V.jsxs)(`label`,{children:[(0,V.jsx)(`span`,{children:o(`lark.targetAgent`)}),(0,V.jsxs)(`select`,{"aria-label":o(`lark.targetAgent`),disabled:!!ge?.agent_id,onChange:e=>se(e.target.value),value:I,children:[Re?null:(0,V.jsx)(`option`,{disabled:!0,value:I,children:I?o(`lark.agentUnavailable`,{agent:I}):o(`lark.noAgentConfigured`)}),Le.map(e=>(0,V.jsx)(`option`,{value:e.agentId,children:e.label===e.agentId?e.agentId:`${e.label} · ${e.agentId}`},e.agentId))]}),(0,V.jsx)(`small`,{children:o(`lark.targetAgentDescription`)})]}),!me&&Le.length>1?(0,V.jsxs)(`label`,{"aria-label":o(`lark.connectAllAgents`),className:`personal-lark-check`,children:[(0,V.jsx)(`input`,{checked:L,onChange:e=>ce(e.target.checked),type:`checkbox`}),(0,V.jsxs)(`span`,{children:[(0,V.jsx)(`strong`,{children:o(`lark.connectAllAgents`)}),(0,V.jsx)(`small`,{children:o(`lark.connectAllAgentsDescription`,{count:Le.length})})]})]}):null,!me&&L&&Le.length>1?(0,V.jsxs)(`fieldset`,{"aria-label":o(`lark.agentApps`),className:`personal-lark-agent-apps`,children:[(0,V.jsx)(`legend`,{children:o(`lark.agentApps`)}),(0,V.jsx)(`small`,{children:o(`lark.agentAppsDescription`)}),(0,V.jsx)(`div`,{children:Le.map(e=>(0,V.jsxs)(`label`,{children:[(0,V.jsxs)(`span`,{children:[(0,V.jsx)(`strong`,{children:e.label}),(0,V.jsx)(`small`,{children:e.agentId})]}),(0,V.jsx)(`select`,{"aria-label":o(`lark.agentAppSelection`,{agent:e.label}),onChange:t=>ue(n=>({...n,[e.agentId]:t.target.value})),value:le[e.agentId]??x,children:l.map(e=>(0,V.jsxs)(`option`,{disabled:!e.ready,value:e.app_ref,children:[e.label,e.reply_ready?``:e.ready?` · ${o(`lark.needsMessagePermissions`)}`:` · ${o(`lark.needsSetup`)}`]},e.app_ref))})]},e.agentId))})]}):null,L&&ze.length>0&&!Ve?(0,V.jsx)(`div`,{className:`personal-lark-group-state is-error`,role:`alert`,children:o(`lark.agentAppPermissions`)}):null,Be.length===0?(0,V.jsx)(`p`,{className:`personal-notification-error`,role:`alert`,children:o(`lark.selectRegisteredAgent`)}):null]}):null,(0,V.jsxs)(`label`,{children:[(0,V.jsx)(`span`,{children:o(`lark.replyMode`)}),(0,V.jsx)(`select`,{"aria-label":o(`lark.replyMode`),onChange:e=>oe(e.target.value),value:F,children:(0,V.jsx)(`option`,{value:`topic_reply`,children:o(`lark.topicReply`)})}),(0,V.jsx)(`small`,{children:o(`lark.replyModeDescription`)})]}),(0,V.jsxs)(`p`,{className:`personal-lark-cardinality`,children:[(0,V.jsx)(am,{size:15}),o(`lark.cardinality`)]}),fe?(0,V.jsx)(`p`,{className:`personal-notification-error`,role:`alert`,children:fe}):null,(0,V.jsxs)(`footer`,{children:[(0,V.jsx)(`button`,{className:`personal-secondary-action`,onClick:()=>b(!1),type:`button`,children:o(`lark.cancel`)}),(0,V.jsxs)(`button`,{className:`personal-primary-action`,disabled:p||!x||!ge&&(!Ue?.reply_ready||!k)||P===`goal`&&(!Ve||Be.length===0)||!C||de,onClick:()=>void Qe(),type:`button`,children:[de?(0,V.jsx)(km,{className:`is-spinning`,size:15}):null,He]})]})]})}):null,be?(0,V.jsx)(`div`,{className:`personal-lark-modal-backdrop is-setup`,role:`presentation`,children:(0,V.jsxs)(`section`,{"aria-labelledby":`new-lark-app-title`,"aria-modal":`true`,className:`personal-lark-modal personal-lark-setup-modal`,role:`dialog`,children:[(0,V.jsxs)(`header`,{children:[(0,V.jsxs)(`div`,{children:[(0,V.jsx)(`small`,{children:o(`lark.reusableWorkspaceApp`)}),(0,V.jsx)(`h2`,{id:`new-lark-app-title`,children:o(`lark.newApp`)})]}),(0,V.jsx)(`button`,{"aria-label":o(`lark.closeCreate`),onClick:()=>void Ze(),type:`button`,children:(0,V.jsx)(ah,{size:18})})]}),Ee?(0,V.jsxs)(`div`,{className:`personal-lark-setup-progress`,children:[(0,V.jsx)(`span`,{className:`personal-lark-setup-icon is-${Ee.status}`,children:Ee.status===`ready`?(0,V.jsx)(am,{size:22}):(0,V.jsx)(km,{className:Ee.status===`failed`?``:`is-spinning`,size:22})}),(0,V.jsxs)(`div`,{children:[(0,V.jsx)(`strong`,{children:Ee.status===`ready`?o(`lark.appCreated`):Ee.status===`failed`?o(`lark.appCreateFailed`):o(`lark.waitingFeishu`)}),(0,V.jsx)(`p`,{children:Ee.status===`waiting_for_feishu`?o(`lark.waitingFeishuDescription`):Ee.status===`starting`?o(`lark.waitingLink`):Ee.error})]}),Ee.verification_url?(0,V.jsxs)(`a`,{href:Ee.verification_url,rel:`noreferrer`,target:`_blank`,children:[(0,V.jsx)(_m,{size:15}),o(`lark.reopenFeishu`)]}):null]}):(0,V.jsxs)(V.Fragment,{children:[(0,V.jsx)(`p`,{className:`personal-lark-setup-copy`,children:o(`lark.setupCopy`)}),(0,V.jsxs)(`label`,{children:[(0,V.jsx)(`span`,{children:o(`lark.profileName`)}),(0,V.jsx)(`input`,{"aria-label":o(`lark.profileName`),autoComplete:`off`,onChange:e=>Ce(e.target.value),placeholder:`loopx-workspace-bot`,value:Se})]}),(0,V.jsxs)(`label`,{children:[(0,V.jsx)(`span`,{children:o(`lark.region`)}),(0,V.jsxs)(`select`,{"aria-label":o(`lark.region`),onChange:e=>Te(e.target.value),value:we,children:[(0,V.jsx)(`option`,{value:`feishu`,children:`Feishu`}),(0,V.jsx)(`option`,{value:`lark`,children:`Lark`})]})]}),Se&&!/^[A-Za-z0-9][A-Za-z0-9._-]{0,99}$/.test(Se)?(0,V.jsx)(`p`,{className:`personal-notification-error`,children:o(`lark.profileValidation`)}):null]}),ke?(0,V.jsx)(`p`,{className:`personal-notification-error`,children:ke}):null,(0,V.jsxs)(`footer`,{children:[(0,V.jsx)(`button`,{className:`personal-secondary-action`,onClick:()=>void Ze(),type:`button`,children:o(`lark.cancel`)}),Ee?null:(0,V.jsxs)(`button`,{className:`personal-primary-action`,disabled:z||!/^[A-Za-z0-9][A-Za-z0-9._-]{0,99}$/.test(Se),onClick:()=>void Xe(),type:`button`,children:[z?(0,V.jsx)(km,{className:`is-spinning`,size:15}):(0,V.jsx)(_m,{size:15}),o(`lark.continueFeishu`)]})]})]})}):null]})}function $b(e){return e&&typeof e==`object`&&!Array.isArray(e)?e:{}}function ex(e,t,n){let r=$b(t),i=$b(n);return Object.fromEntries(e.fields.flatMap(({key:e,nullable:t})=>{let n=r[e],a=i[e];return Object.hasOwn(r,e)&&(n!=null||t&&n===null)?[[e,n]]:Object.hasOwn(i,e)&&a!=null?[[e,a]]:[]}))}function tx(e,t){let n;try{n=JSON.parse(t)}catch{return null}if(!n||typeof n!=`object`||Array.isArray(n))return null;let r=new Set(e.fields.map(e=>e.key));return Object.keys(n).some(e=>!r.has(e))?null:n}function nx(e,t,n){let r={...e,[t]:n},i=e.schedule;return t===`timezone`&&i&&typeof i==`object`&&`schema_version`in i&&i.schema_version===`periodic_report_schedule_v0`&&(r.schedule={...i,timezone:n}),r}function rx({id:e,value:t,timezone:n,onChange:r}){let{locale:i}=Ji(),a=i===`zh-CN`,o=t&&typeof t==`object`&&!Array.isArray(t)?t:null,s=String(o?.rrule??``).split(`;`).map(e=>e.split(`=`)),c=Object.fromEntries(s.filter(e=>e.length===2)),l=[`MO`,`TU`,`WE`,`TH`,`FR`,`SA`,`SU`],u=(e,t)=>e!==void 0&&/^\d+$/.test(e)&&Number(e)<=t,d=!o||o.schema_version===`periodic_report_schedule_v0`&&[`DAILY`,`WEEKLY`].includes(c.FREQ)&&o.timezone===n&&s.every(e=>e.length===2&&[`FREQ`,`BYDAY`,`BYHOUR`,`BYMINUTE`,`INTERVAL`].includes(e[0]))&&new Set(s.map(([e])=>e)).size===s.length&&u(c.BYHOUR,23)&&u(c.BYMINUTE??`0`,59)&&(c.FREQ===`WEEKLY`?l.includes(c.BYDAY):!c.BYDAY)&&(!c.INTERVAL||c.INTERVAL===`1`),f=a?[`星期一`,`星期二`,`星期三`,`星期四`,`星期五`,`星期六`,`星期日`]:[`Monday`,`Tuesday`,`Wednesday`,`Thursday`,`Friday`,`Saturday`,`Sunday`];function p(e){let t={FREQ:`WEEKLY`,BYDAY:`MO`,BYHOUR:`9`,BYMINUTE:`0`,...c,...e};r?.({schema_version:`periodic_report_schedule_v0`,schedule_id:o?.schedule_id??`report-schedule`,timezone:n,rrule:[`FREQ=${t.FREQ}`,...t.FREQ===`WEEKLY`?[`BYDAY=${t.BYDAY}`]:[],`BYHOUR=${t.BYHOUR}`,`BYMINUTE=${t.BYMINUTE}`].join(`;`)})}return(0,V.jsxs)(`div`,{className:`personal-report-schedule`,children:[(0,V.jsxs)(`label`,{className:`is-boolean`,htmlFor:e,children:[(0,V.jsx)(`span`,{children:a?`按日历汇报`:`Calendar reports`}),(0,V.jsx)(`input`,{id:e,type:`checkbox`,role:`switch`,checked:!!o,disabled:!r,onChange:e=>e.target.checked?p({}):r?.(null)})]}),o?(0,V.jsxs)(V.Fragment,{children:[d?(0,V.jsxs)(V.Fragment,{children:[(0,V.jsxs)(`label`,{htmlFor:`${e}-frequency`,children:[(0,V.jsx)(`span`,{children:a?`频率`:`Frequency`}),(0,V.jsxs)(`select`,{id:`${e}-frequency`,value:c.FREQ,disabled:!r,onChange:e=>p({FREQ:e.target.value}),children:[(0,V.jsx)(`option`,{value:`DAILY`,children:a?`每天`:`Daily`}),(0,V.jsx)(`option`,{value:`WEEKLY`,children:a?`每周`:`Weekly`})]})]}),c.FREQ===`WEEKLY`&&(0,V.jsxs)(`label`,{htmlFor:`${e}-day`,children:[(0,V.jsx)(`span`,{children:a?`星期`:`Weekday`}),(0,V.jsx)(`select`,{id:`${e}-day`,value:c.BYDAY,disabled:!r,onChange:e=>p({BYDAY:e.target.value}),children:l.map((e,t)=>(0,V.jsx)(`option`,{value:e,children:f[t]},e))})]}),(0,V.jsxs)(`label`,{htmlFor:`${e}-time`,children:[(0,V.jsxs)(`span`,{children:[a?`当地时间`:`Local time`,` (`,n,`)`]}),(0,V.jsx)(`input`,{id:`${e}-time`,type:`time`,required:!0,disabled:!r,value:`${(c.BYHOUR??`9`).padStart(2,`0`)}:${(c.BYMINUTE??`0`).padStart(2,`0`)}`,onChange:e=>{if(!/^\d{2}:\d{2}$/.test(e.target.value))return;let[t,n]=e.target.value.split(`:`);p({BYHOUR:t,BYMINUTE:n})}})]})]}):(0,V.jsx)(`p`,{role:`alert`,children:a?`此计划需在 JSON 模式中编辑;当前内容已保留。`:`Edit this schedule in JSON mode; its current value is preserved.`}),(0,V.jsx)(`p`,{children:a?`由现有唤醒检查到期计划;实际送达以回执为准。`:`Existing wakes check the schedule; delivery is confirmed by its receipt.`})]}):(0,V.jsx)(`p`,{children:a?`未设置日历计划;保持阶段结束时汇报。`:`No calendar schedule; report at validated stage boundaries.`})]})}function ix({copy:e,field:t,id:n,onChange:r,value:i,timezone:a}){let o=e[t.key]?.label??t.label,s=!r;if(t.input_kind===`periodic_report_schedule`)return(0,V.jsx)(rx,{id:n,value:i,timezone:a,onChange:r?e=>r(t.key,e):void 0});if(t.input_kind===`boolean`)return(0,V.jsxs)(`label`,{className:`is-boolean`,htmlFor:n,children:[(0,V.jsx)(`span`,{children:o}),(0,V.jsx)(`input`,{checked:i===!0,id:n,onChange:r?e=>r(t.key,e.target.checked):void 0,readOnly:s,role:`switch`,type:`checkbox`})]});if(t.input_kind===`select`)return(0,V.jsxs)(`label`,{htmlFor:n,children:[(0,V.jsx)(`span`,{children:o}),(0,V.jsxs)(`select`,{id:n,onChange:r?e=>r(t.key,e.target.value):void 0,value:typeof i==`string`?i:``,children:[(0,V.jsx)(`option`,{value:``}),(t.options??[]).map(e=>(0,V.jsx)(`option`,{value:e,children:e},e))]})]});if(t.input_kind===`string_list`)return(0,V.jsxs)(`label`,{htmlFor:n,children:[(0,V.jsx)(`span`,{children:o}),(0,V.jsx)(`textarea`,{id:n,onChange:r?e=>r(t.key,e.target.value.split(/\r?\n/u).filter(Boolean)):void 0,readOnly:s,rows:4,value:Array.isArray(i)?i.join(` +`):``})]});let c=t.input_kind===`number`;return(0,V.jsxs)(`label`,{htmlFor:n,children:[(0,V.jsx)(`span`,{children:o}),(0,V.jsx)(`input`,{id:n,max:t.maximum,min:t.minimum,onChange:r?e=>r(t.key,c?Number(e.target.value):e.target.value):void 0,readOnly:s,required:t.required,type:c?`number`:`text`,value:typeof i==`number`||typeof i==`string`?i:``})]})}function ax({copy:e={},disabled:t=!1,editor:n,enabledAction:r,omitKeys:i=[],onChange:a,value:o}){let s=(0,B.useId)(),c=new Set(i);return(0,V.jsx)(`fieldset`,{className:`personal-capability-fields`,disabled:t,children:n.fields.filter(e=>!c.has(e.key)).map(t=>{let n=(0,V.jsx)(ix,{copy:e,field:t,id:`${s}-${t.key.replace(/[^a-z0-9_-]/gi,`-`)}`,onChange:a,value:o[t.key],timezone:String(o.timezone??`UTC`)},t.key);return t.key===`enabled`&&t.input_kind===`boolean`?(0,V.jsxs)(`div`,{className:`personal-capability-enabled-row`,children:[n,r]},t.key):n})})}var ox={en:{manager_runtime:{displayName:`Manager runtime`,description:`Selects the persistent host-tool profile used by owner manager conversations.`},steward_executor:{displayName:`Steward executor`,description:`Selects the executor, model, and reasoning effort the steward channel answers on for this machine, ahead of the Chat service environment.`},todo_replan_cadence:{displayName:`Goal review cadence`,description:`Configures the Goal review cadence.`},change_quality_qualification:{displayName:`Change quality qualification`,description:`Prepares a provider-neutral review packet, allows at most one policy-authorized safe-fix pass, and can require an exact-diff receipt.`},explore_graph:{displayName:`Explore Graph`,description:`Organizes bounded exploration as a typed evidence graph so branches, findings, and synthesis remain inspectable.`},explore_harness:{displayName:`Explore Harness`,description:`Selects a capability-owned planning and research harness profile for bounded multi-step exploration.`},lark_event_inbox:{displayName:`Lark event inbox`,description:`Receives provider events through a local-private inbox binding before LoopX projects them into governed work.`,readOnlyReason:`This capability requires a local-private inbox binding. Manage it in Lark settings or through the capability CLI.`},lark_kanban_heartbeat_sync:{displayName:`Lark Kanban heartbeat sync`,description:`Synchronizes accepted LoopX work state to the configured Lark Kanban heartbeat surface.`},local_authority_shadow:{displayName:`Local authority shadow`,description:`Observes post-commit Todo and task-lease state through the shared authority contract without taking write authority.`},multi_subagent:{displayName:`Adaptive child capacity`,description:`Sets bounded child-agent capacity and the public-safe responsibility domains in which parallel work may be delegated.`},peer_task_coordination:{displayName:`Registered-peer task coordination`,description:`Routes explicitly scoped peer-owned work to one registered coordinator without granting cross-owner mutation authority.`},periodic_report:{displayName:`Periodic reports`,description:`Turns validated Goal stage progress into a frozen report and automatically delivers it through the configured Goal Channel with exact readback.`},pull_request_review:{displayName:`Pull-request review`,description:`Ranks the public GitHub PR review queue with a machine-level default; it never grants GitHub, Todo, push, or merge authority.`},reward_memory:{displayName:`Reward Memory experiment`,description:`Configures a reviewed local-private provider binding for Goal-scoped Agent recall and evidence-backed outcome learning.`}},"zh-CN":{manager_runtime:{displayName:`管家 Runtime`,description:`选择管家会话持续生效的宿主工具模式。`},steward_executor:{displayName:`管家执行器`,description:`选择本机管家通道使用的执行器、模型与推理档位,优先级高于服务环境变量。`},todo_replan_cadence:{displayName:`Goal 复核周期`,description:`配置 Goal 的复核周期。`},change_quality_qualification:{displayName:`变更质量验证`,description:`生成与 Provider 无关的审阅包,最多允许一次策略授权的安全修复,并可要求精确 diff 回执。`},explore_graph:{displayName:`探索图谱`,description:`把有界探索组织为 typed 证据图,让探索分支、发现与综合结论都可检查、可追溯。`},explore_harness:{displayName:`探索 Harness`,description:`为有界的多步探索选择由能力负责的规划与研究 Harness profile。`},lark_event_inbox:{displayName:`飞书事件收件箱`,description:`通过本机私有收件箱接收 Provider 事件,再由 LoopX 将其投影为受治理的工作。`,readOnlyReason:`此能力依赖本机私有的收件箱绑定,请在飞书设置或 capability CLI 中管理。`},lark_kanban_heartbeat_sync:{displayName:`飞书看板心跳同步`,description:`把 LoopX 已接受的工作状态同步到配置好的飞书看板心跳界面。`},local_authority_shadow:{displayName:`本地 Authority 影子观测`,description:`通过共享 Authority contract 观测提交后的 Todo 与 task lease 状态,但不取得写入权。`},multi_subagent:{displayName:`自适应子 Agent 容量`,description:`限定子 Agent 容量与可公开的职责域,只有落在这些边界内的工作才能并行委派。`},peer_task_coordination:{displayName:`已注册 Peer 任务协调`,description:`把明确限定的 Peer 工作路由给一个已注册协调者,不授予跨 Owner 修改权限。`},periodic_report:{displayName:`周期报告`,description:`把经过验证的 Goal 阶段进展整理为冻结报告,并通过配置的 Goal Channel 自动发送和精确回读。`},pull_request_review:{displayName:`Pull-request Review`,description:`配置公开 GitHub PR 审阅队列的本机默认排序;不会授予 GitHub、Todo、push 或 merge 权限。`},reward_memory:{displayName:`Reward Memory 实验`,description:`为 Goal 内 Agent 的召回与证据化结果学习配置经过审阅的本机私有 Provider 绑定。`}}},sx={en:{runtime_profile:{label:`Runtime profile`,description:`Restricted keeps scoped LoopX reads only. Trusted owner enables normal host tools while protected operations retain separate checks.`},executor_endpoint:{label:`Steward executor`,description:`The executor this machine's steward channel answers on. The choice outranks the Chat service environment and the shipped default.`},executor_model:{label:`Model`,description:`Optional model for the selected executor. Leave blank to keep the executor's own default.`},executor_reasoning_effort:{label:`Reasoning effort`,description:`Optional reasoning effort for the selected executor. Leave blank to keep the executor's own default.`},completed_todos:{label:`Completed Todos between Goal reviews`,description:`Machine default or explicit Goal override, from 1 to 5.`},allowed_domains:{label:`Allowed responsibility domains`,description:`Enter one bounded, public-safe domain per line.`},coordinator_agent_id:{label:`Coordinator Agent`,description:`Use an already registered Agent id; leave blank to disable coordination.`},enabled:{label:`Enabled`},model:{label:`Child model`,description:`For example gpt-5.6-luna. Blank clears the child model preference.`},reasoning_effort:{label:`Child reasoning effort`,description:`For example max; the host must support this model and effort.`},max_children:{label:`Maximum children`,description:`Hard upper bound for concurrently delegated child work.`},profile:{label:`Planner profile`,description:`Select one registered Explore Harness profile.`},profile_preset:{label:`Report profile`,description:`Capability-owned report profile, such as weekly-progress.`},wait_for_ci:{label:`Wait for CI`,description:`Disable to use local validation without querying or waiting for CI. Merge authority is unchanged.`},review_priority:{label:`Review priority`,description:`Choose whether other developers' PRs or the authenticated reviewer's own PRs are ranked first.`},route_ref:{label:`Goal Channel route`,description:`Public route alias only; credentials and provider identifiers stay outside this form.`},safe_fix:{label:`Allow one bounded safe-fix pass`},strict_receipt:{label:`Require an exact-diff receipt`},timezone:{label:`Timezone`,description:`Use an IANA timezone, for example Asia/Shanghai.`},schedule:{label:`Calendar reports`,description:`Optional daily or weekly reports; no schedule preserves stage-only delivery.`},config_path:{label:`Local-private configuration path`,description:`Repo-relative ignored JSON under .loopx/config/. Leave blank to retain the current binding; the path is never returned.`},enabled_agents:{label:`Enabled Goal Agents`,description:`Enter one registered Goal-local Agent id per line. A private binding currently accepts exactly one Agent.`}},"zh-CN":{runtime_profile:{label:`运行模式`,description:`restricted 仅使用受限 LoopX 读取;trusted_owner 开放常规宿主工具,但受保护操作仍单独校验。`},executor_endpoint:{label:`管家执行器`,description:`本机管家通道使用的执行器;优先级高于 Chat 服务环境变量与出货默认值。`},executor_model:{label:`模型`,description:`所选执行器使用的模型,可留空;留空表示沿用执行器自身的默认模型。`},executor_reasoning_effort:{label:`推理档位`,description:`所选执行器使用的推理档位,可留空;留空表示沿用执行器自身的默认档位。`},completed_todos:{label:`两次 Goal 复核间的已完成 Todo 数`,description:`可设置 1–5;机器默认值可被 Goal 显式覆盖。`},allowed_domains:{label:`允许的职责域`,description:`每行填写一个有边界、可公开的职责域。`},coordinator_agent_id:{label:`协调 Agent`,description:`填写一个已经注册的 Agent ID;留空表示关闭协调。`},enabled:{label:`启用`},model:{label:`子 Agent 模型`,description:`例如 gpt-5.6-luna;留空清除模型偏好。`},reasoning_effort:{label:`子 Agent 推理档位`,description:`例如 max;宿主须支持所选模型与档位。`},max_children:{label:`最大子 Agent 数`,description:`可同时委派的子任务硬上限。`},profile:{label:`规划 Profile`,description:`选择一个已注册的 Explore Harness profile。`},profile_preset:{label:`报告 Profile`,description:`由该能力管理的报告 profile,例如 weekly-progress。`},wait_for_ci:{label:`等待 CI`,description:`关闭后使用本地验证,不查询或等待 CI;不改变合并权限。`},review_priority:{label:`审阅优先级`,description:`选择先排其他开发者的 PR,还是先排当前已认证审阅者自己的 PR。`},route_ref:{label:`Goal Channel 路由`,description:`只填写公开 route alias;凭据与 Provider 标识不会进入此表单。`},safe_fix:{label:`允许一次有界安全修复`},strict_receipt:{label:`要求精确 diff 回执`},timezone:{label:`时区`,description:`使用 IANA 时区,例如 Asia/Shanghai。`},schedule:{label:`日历汇报`,description:`可选每日或每周计划;未设置时保持阶段结束汇报。`},config_path:{label:`本机私有配置路径`,description:`填写 .loopx/config/ 下、相对仓库且被忽略的 JSON;留空保留当前绑定,路径不会被回传。`},enabled_agents:{label:`已启用的 Goal Agent`,description:`每行填写一个已注册的 Goal 内 Agent ID;私有绑定当前只接受一个 Agent。`}}};function cx(e,t){let n=ox[t][e.capability_id];return n?{...e,display_name:n.displayName,description:n.description,configuration_editor:{...e.configuration_editor,...n.readOnlyReason?{read_only_reason:n.readOnlyReason}:{}}}:e}function lx(e){return sx[e]}Object.freeze(Object.keys(ox.en).sort());function ux(e,t){return e.available_scopes.includes(t)&&(t!==`machine`||!!e.machine_namespace)&&e.configuration_editor.editable&&e.configuration_editor.writable_scopes.includes(t)}function dx({values:e,t}){return(0,V.jsxs)(`details`,{className:`personal-capability-raw-values`,children:[(0,V.jsx)(`summary`,{children:t(`capabilities.rawJson`)}),(0,V.jsx)(`div`,{className:`personal-capability-value-grid`,children:e.map(({label:e,value:t})=>(0,V.jsxs)(`section`,{children:[(0,V.jsx)(`strong`,{children:e}),(0,V.jsx)(`pre`,{children:t?JSON.stringify(t,null,2):`—`})]},e))})]})}function fx({source:e,t}){return e?(0,V.jsxs)(`p`,{className:`personal-capability-effective-source`,children:[(0,V.jsx)(Xm,{"aria-hidden":!0,size:15}),(0,V.jsxs)(`span`,{children:[(0,V.jsx)(`strong`,{children:t(`capabilities.effectiveSource`)}),t(`capabilities.source.${e}`)]})]}):null}function px({available:e,description:t,t:n}){return e?null:(0,V.jsxs)(`section`,{className:`personal-capability-editor-status is-read-only`,children:[(0,V.jsx)(rh,{"aria-hidden":!0,size:18}),(0,V.jsxs)(`div`,{children:[(0,V.jsx)(`strong`,{children:n(`capabilities.readOnly`)}),(0,V.jsx)(`p`,{children:t})]})]})}function mx(e){return e.availability?.includes(`experimental`)?4:e.capability_id===`multi_subagent`?3:e.configuration_editor.writable_scopes.length===0||e.availability===`supported_explicit_opt_in`?2:e.availability===`supported_explicit_override`?0:1}function hx(e,t){return[...e].sort((e,n)=>{let r=mx(e)-mx(n);if(r!==0)return r;let i=cx(e,t),a=cx(n,t);return i.display_name.localeCompare(a.display_name,t)||e.capability_id.localeCompare(n.capability_id)})}function gx({capabilities:e,locale:t,onSelect:n,scope:r,selectedCapabilityId:i,t:a}){return(0,V.jsx)(`nav`,{"aria-label":a(r===`goal`?`capabilities.catalog`:`machine.capabilityCatalog`),className:`personal-capability-list`,tabIndex:0,children:hx(e,t).map(e=>{let o=cx(e,t);return(0,V.jsxs)(`button`,{"aria-current":i===o.capability_id?`page`:void 0,onClick:()=>n(o.capability_id),type:`button`,children:[(0,V.jsx)(`span`,{children:(0,V.jsx)(`strong`,{children:o.display_name})}),(0,V.jsx)(`em`,{children:a(o.available_scopes.includes(r)?r===`goal`?`capabilities.goalScope`:`capabilities.machineScope`:r===`machine`?`capabilities.goalScope`:`capabilities.machineScope`)})]},o.capability_id)})})}function _x({capability:e,locale:t,source:n}){let{t:r}=Ji(),i=cx(e,t);return(0,V.jsxs)(`header`,{children:[(0,V.jsx)(`span`,{className:`personal-settings-icon`,children:(0,V.jsx)(Zm,{"aria-hidden":!0,size:18})}),(0,V.jsxs)(`div`,{children:[(0,V.jsxs)(`div`,{className:`personal-capability-heading-row`,children:[(0,V.jsx)(`h2`,{children:i.display_name}),(0,V.jsx)(fx,{source:n,t:r})]}),e.context_contribution&&(0,V.jsxs)(`details`,{className:`personal-capability-help`,"data-testid":`capability-context-phases`,children:[(0,V.jsx)(`summary`,{children:t===`zh-CN`?`主 Agent 协作指导`:`Coordinator workflow guidance`}),(0,V.jsx)(`p`,{children:t===`zh-CN`?`随能力开启。支持以下阶段;此处展示能力范围,不能证明某次运行已读取或采纳。`:`Enabled with this capability. These are supported phases, not proof that a run read or adopted the guidance.`}),(0,V.jsx)(`dl`,{children:e.context_contribution.supported_phases.map(e=>(0,V.jsxs)(`div`,{children:[(0,V.jsx)(`dt`,{children:(0,V.jsx)(`code`,{children:e})}),(0,V.jsx)(`dd`,{children:vx[e][t===`zh-CN`?`zh`:`en`]})]},e))}),(0,V.jsx)(`p`,{children:t===`zh-CN`?`LoopX Turn 在请求与结果中提供上下文;原生工具入口由 LoopX skill 调用同一只读接口。执行与采纳需另看运行证据。`:`LoopX Turn includes context in requests and results. For native tools, the LoopX skill reads the same interface. Execution and adoption require run evidence.`})]}),(0,V.jsxs)(`details`,{className:`personal-capability-help`,children:[(0,V.jsx)(`summary`,{children:t===`zh-CN`?`配置说明`:`Configuration help`}),(0,V.jsx)(`p`,{children:i.description}),(0,V.jsx)(`dl`,{children:e.configuration_editor.fields.map(e=>{let n=lx(t)[e.key],r=n?.description??e.description;return r?(0,V.jsxs)(`div`,{children:[(0,V.jsx)(`dt`,{children:n?.label??e.label}),(0,V.jsx)(`dd`,{children:r})]},e.key):null})})]},e.capability_id)]})]})}var vx={before_plan:{zh:`规划前:识别独立问题并保留主 Agent 的核验与整合职责。`,en:`Before planning: identify independent questions and retain coordinator validation and integration.`},before_delegate:{zh:`委派前:明确子任务边界、模型偏好及预期证据。`,en:`Before delegation: specify task boundaries, model preferences and expected evidence.`},after_delegate_result:{zh:`回收后:核验结果,说明采纳决定并关联计划与成果。`,en:`After results: validate evidence, explain acceptance and link plans and deliverables.`}};function yx({callbacks:e,goalId:t,notification:n,onChanged:r}){let{t:i}=Ji(),[a,o]=(0,B.useState)(!1),[s,c]=(0,B.useState)(null);async function l(n){if(e.onToggleGoalAutoNotify){o(!0),c(null);try{let a=await e.onToggleGoalAutoNotify({autoNotify:n,goalId:t});if(!a.ok){c(a.public_summary??a.blocker??i(`notifications.setupFailed`));return}r()}catch(e){c(e instanceof Error?e.message:i(`notifications.setupFailed`))}finally{o(!1)}}}return(0,V.jsxs)(V.Fragment,{children:[(0,V.jsxs)(`label`,{className:`personal-notification-toggle`,children:[(0,V.jsx)(`input`,{checked:n?.humanGateAutoNotifyEnabled??!1,disabled:a||n?.configured!==!0||!e.onToggleGoalAutoNotify,onChange:e=>void l(e.target.checked),type:`checkbox`}),(0,V.jsx)(`span`,{children:i(`notifications.autoNotify`)}),a?(0,V.jsx)(km,{"aria-hidden":!0,className:`is-spinning`,size:14}):null]}),s?(0,V.jsx)(`p`,{className:`personal-notification-error`,role:`alert`,children:s}):null]})}function bx({goalId:e,onApplied:t,selected:n,t:r}){let[i,a]=(0,B.useState)({busy:null,draft:{},partialWrite:null,preview:null}),[o,s]=(0,B.useState)(null),[c,l]=(0,B.useState)(`guided`),[u,d]=(0,B.useState)(``),f=(0,B.useMemo)(()=>n?tx(n.configuration_editor,u):null,[n,u]),p=c===`guided`||f!==null;(0,B.useEffect)(()=>{l(`guided`),d(``),a({busy:null,draft:ex(n?.configuration_editor??{fields:[]},n?.current??n?.effective_configuration?.configuration??n?.default,n?.default),partialWrite:null,preview:null}),s(null)},[n]);async function m(t){if(!(!n||i.busy||!p)){a(e=>({...e,busy:`preview`,partialWrite:null})),s(null);try{let r=await Bg(e,n.capability_id,t);a(e=>({...e,preview:r}))}catch(e){s(e instanceof Error?e.message:r(`capabilities.previewFailed`))}finally{a(e=>({...e,busy:null}))}}}async function h(){if(!(!n||!i.preview||i.busy||!p)){a(e=>({...e,busy:`apply`})),s(null);try{let r=ex(n.configuration_editor,i.draft,n.default),o=await Vg(e,n.capability_id,i.preview.action===`delete`?null:r,i.preview.plan_revision);a(e=>({...e,partialWrite:o.status===`partial_write`?o:null,preview:null})),o.status!==`partial_write`&&t()}catch(e){a(e=>({...e,preview:null})),s(e instanceof Error?e.message:r(`capabilities.applyFailed`))}finally{a(e=>({...e,busy:null}))}}}function g(e,t){a(r=>({...r,draft:n?.capability_id===`periodic_report`?nx(r.draft,e,t):{...r.draft,[e]:t},preview:null})),s(null)}function _(e){if(!n||i.busy)return;d(e);let t=tx(n.configuration_editor,e);a(e=>({...e,preview:null,draft:t?ex(n.configuration_editor,t,n.default):e.draft})),s(null)}function v(){i.busy||!p||(c===`guided`&&d(JSON.stringify(i.draft,null,2)),l(c===`guided`?`json`:`guided`),a(e=>({...e,preview:null})))}return{apply:h,changeDraft:g,changeJson:_,changeMode:v,editorMode:c,jsonDraft:u,jsonValid:p,error:o,mutation:i,preview:m}}function xx({mutationError:e,onApplied:t,partialWrite:n,preview:r}){let{t:i}=Ji();return(0,V.jsxs)(V.Fragment,{children:[e?(0,V.jsx)(`p`,{className:`personal-machine-error`,role:`alert`,children:e}):null,n?(0,V.jsxs)(`section`,{"aria-live":`polite`,className:`personal-capability-recovery`,children:[(0,V.jsx)(rh,{"aria-hidden":!0,size:18}),(0,V.jsxs)(`div`,{children:[(0,V.jsx)(`strong`,{children:i(`capabilities.partialWrite`)}),(0,V.jsx)(`p`,{children:i(`capabilities.partialWriteDescription`)}),(0,V.jsx)(`small`,{children:n.recommended_action})]}),(0,V.jsxs)(`button`,{onClick:t,type:`button`,children:[(0,V.jsx)(Hm,{"aria-hidden":!0,size:15}),i(`capabilities.refreshSource`)]})]}):null,r?(0,V.jsxs)(`section`,{className:`personal-capability-preview`,"aria-label":i(`capabilities.preview`),children:[(0,V.jsx)(`strong`,{children:i(`capabilities.preview`)}),(0,V.jsx)(`span`,{children:i(`machine.action.${r.action}`)}),(0,V.jsx)(`small`,{children:i(`capabilities.previewLocked`)})]}):null]})}function Sx({callbacks:e,catalog:t,goalId:n,notification:r,onApplied:i,onNotificationChanged:a}){let{locale:o,t:s}=Ji(),c=(0,B.useMemo)(()=>hx(t.capabilities,o),[t.capabilities,o]),[l,u]=(0,B.useState)(()=>c[0]?.capability_id??``),d=(0,B.useMemo)(()=>c.find(e=>e.capability_id===l)??c[0],[c,l]),f=(0,B.useMemo)(()=>d?cx(d,o):void 0,[o,d]),{apply:p,changeDraft:m,changeJson:h,changeMode:g,editorMode:_,jsonDraft:v,jsonValid:y,error:b,mutation:x,preview:S}=bx({goalId:n,onApplied:i,selected:f,t:s}),{busy:C,draft:w,partialWrite:T,preview:E}=x;if(!d||!f)return(0,V.jsx)(`p`,{className:`personal-capability-empty`,children:s(`capabilities.empty`)});let D=f.available_scopes.includes(`goal`),O=ux(f,`goal`),k=f.configuration_editor.read_only_reason??s(D?`capabilities.previewOnly`:`capabilities.machineOnly`);async function ee(){if(!f||!O||C||!y)return;let e=ex(f.configuration_editor,w,f.default);await S(e)}async function te(){!O||C||await S(null)}return(0,V.jsxs)(`div`,{className:`personal-capability-layout`,children:[(0,V.jsx)(gx,{capabilities:t.capabilities,locale:o,onSelect:u,scope:`goal`,selectedCapabilityId:f.capability_id,t:s}),(0,V.jsxs)(`article`,{"aria-label":f.display_name,className:`personal-capability-detail`,tabIndex:0,children:[(0,V.jsx)(_x,{capability:d,locale:o,source:f.effective_configuration?.source}),(0,V.jsx)(px,{available:O,t:s,description:k}),f.capability_id===`lark_event_inbox`?(0,V.jsxs)(`section`,{className:`personal-capability-linked-setting`,children:[(0,V.jsxs)(`div`,{children:[(0,V.jsx)(`strong`,{children:s(`capabilities.larkInboxNotificationSetting`)}),(0,V.jsx)(`p`,{children:s(`capabilities.larkInboxNotificationDescription`)})]}),(0,V.jsx)(yx,{callbacks:e,goalId:n,notification:r,onChanged:a})]}):null,O?(0,V.jsxs)(V.Fragment,{children:[_===`json`||!f.configuration_editor.fields.some(e=>e.key===`enabled`&&e.input_kind===`boolean`)?(0,V.jsx)(`div`,{className:`personal-capability-editor-mode`,children:(0,V.jsxs)(`button`,{disabled:!!C||!y,onClick:g,type:`button`,children:[(0,V.jsx)(fm,{"aria-hidden":!0,size:14}),s(_===`guided`?`machine.editJson`:`machine.backToForm`)]})}):null,_===`guided`?(0,V.jsx)(`section`,{className:`personal-capability-field-summary`,children:(0,V.jsx)(ax,{disabled:!!C,copy:lx(o),editor:f.configuration_editor,onChange:m,value:w,enabledAction:(0,V.jsxs)(`button`,{className:`personal-capability-edit-json`,onClick:g,type:`button`,children:[(0,V.jsx)(fm,{"aria-hidden":!0,size:14}),s(`machine.editJson`)]})})}):(0,V.jsxs)(`label`,{className:`personal-capability-json-editor`,htmlFor:`goal-configuration-json`,children:[(0,V.jsx)(`span`,{children:s(`capabilities.jsonConfiguration`)}),(0,V.jsx)(`textarea`,{id:`goal-configuration-json`,"aria-describedby":`goal-configuration-json-help`,disabled:!!C,onChange:e=>h(e.target.value),rows:12,spellCheck:!1,value:v}),(0,V.jsx)(`small`,{id:`goal-configuration-json-help`,children:s(`capabilities.jsonHelp`)}),y?null:(0,V.jsx)(`span`,{className:`personal-machine-validation`,role:`alert`,children:s(`capabilities.jsonInvalid`)})]})]}):null,(0,V.jsx)(xx,{mutationError:b,onApplied:i,partialWrite:T,preview:E}),O?(0,V.jsxs)(`footer`,{className:`personal-capability-actions`,children:[f.current&&f.available_scopes.includes(`machine`)?(0,V.jsx)(`button`,{disabled:!!C||!y,onClick:()=>void te(),type:`button`,children:s(`capabilities.restoreInheritance`)}):null,(0,V.jsx)(`button`,{disabled:!!C||!y,onClick:()=>void ee(),type:`button`,children:s(C===`preview`?`common.loading`:`capabilities.previewChanges`)}),(0,V.jsx)(`button`,{className:`is-primary`,disabled:!!C||!E||!y,onClick:()=>void p(),type:`button`,children:s(C===`apply`?`common.loading`:`capabilities.applyPreview`)})]}):null,(0,V.jsx)(dx,{values:[{label:s(`capabilities.goalValue`),value:f.current},{label:s(f.machine_current?`capabilities.machineValue`:`capabilities.defaultValue`),value:f.machine_current??f.default}],t:s},d.capability_id)]})]})}function Cx({callbacks:e,goalId:t,notification:n,onChanged:r}){let{t:i}=Ji(),[a,o]=(0,B.useState)(null),[s,c]=(0,B.useState)(null),[l,u]=(0,B.useState)(!1);function d(){t&&(u(!0),c(null),zg(t).then(o).catch(e=>c(e instanceof Error?e.message:i(`capabilities.loadFailed`))).finally(()=>u(!1)))}return(0,B.useEffect)(d,[t]),t?l&&!a?(0,V.jsxs)(`p`,{"aria-live":`polite`,className:`personal-capability-empty`,children:[(0,V.jsx)(km,{className:`personal-spin`,size:18}),i(`capabilities.loading`)]}):s?(0,V.jsxs)(`section`,{className:`personal-capability-error`,role:`alert`,children:[(0,V.jsx)(rh,{"aria-hidden":!0,size:18}),(0,V.jsxs)(`span`,{children:[(0,V.jsx)(`strong`,{children:i(`capabilities.loadFailed`)}),(0,V.jsx)(`small`,{children:s})]}),(0,V.jsxs)(`button`,{onClick:d,type:`button`,children:[(0,V.jsx)(Hm,{"aria-hidden":!0,size:15}),i(`capabilities.retry`)]})]}):a?(0,V.jsxs)(`section`,{className:`personal-capability-settings`,"data-revision":a.revision,children:[(0,V.jsxs)(`details`,{className:`personal-capability-scope-note`,children:[(0,V.jsxs)(`summary`,{children:[(0,V.jsx)(Xm,{"aria-hidden":!0,size:17}),i(`capabilities.atomicOverride`)]}),(0,V.jsx)(`p`,{children:i(`capabilities.atomicOverrideDescription`)})]}),(0,V.jsx)(Sx,{callbacks:e,catalog:a.capability_catalog,goalId:t,notification:n,onApplied:d,onNotificationChanged:r})]}):null:(0,V.jsx)(`p`,{className:`personal-capability-empty`,children:i(`capabilities.chooseGoal`)})}function wx(e){return e&&typeof e==`object`&&!Array.isArray(e)?e:{}}function Tx(e,t){let n=t?.machine_namespace;return n?e?.machine_configuration?.namespaces[n]:void 0}function Ex(e,t,n){return{...wx(e.default),...wx(t),...n}}function Dx(e,t){for(let n of e.configuration_editor.fields){let e=t[n.key];if(n.required&&(e==null||e===``))return!1}return e.capability_id===`periodic_report`&&t.enabled===!0?!!(String(t.profile_preset??``).trim()&&String(t.route_ref??``).trim()&&String(t.timezone??``).trim()):!0}function Ox(e){try{let t=JSON.parse(e);return t&&typeof t==`object`&&!Array.isArray(t)?t:null}catch{return null}}function kx(e){return e?e===`absent`?e:e.replace(/^sha256:/,``).slice(0,12):`—`}function Ax(){let{locale:e,t}=Ji(),[n,r]=(0,B.useState)(null),[i,a]=(0,B.useState)(``),[o,s]=(0,B.useState)({}),[c,l]=(0,B.useState)(`{}`),[u,d]=(0,B.useState)(`guided`),[f,p]=(0,B.useState)(null),[m,h]=(0,B.useState)(`upsert`),[g,_]=(0,B.useState)(null),[v,y]=(0,B.useState)(null),[b,x]=(0,B.useState)(`load`),[S,C]=(0,B.useState)(null),[w,T]=(0,B.useState)(null),E=(0,B.useMemo)(()=>hx(n?.capability_catalog.capabilities??[],e),[n,e]),D=n?.invalid_namespaces[0],O=E.find(e=>e.capability_id===i)??(D?E.find(e=>e.machine_namespace===D):void 0)??E.find(e=>ux(e,`machine`))??E[0],k=O?cx(O,e):void 0,ee=Tx(n,k),te=!!(k?.machine_namespace&&ee),A=!!(k&&ux(k,`machine`)),j=(0,B.useMemo)(()=>Ox(c),[c]),M=k?u===`json`?j:Ex(k,ee,o):null,ne=!!(k&&(u===`json`?j:Dx(k,M??{})));async function N(){r(await Rg())}(0,B.useEffect)(()=>{let e=!0;return Rg().then(t=>{e&&r(t)}).catch(n=>{e&&C(n instanceof Error?n.message:t(`machine.loadError`))}).finally(()=>{e&&x(null)}),()=>{e=!1}},[t]),(0,B.useEffect)(()=>{if(!k)return;let e=Tx(n,k),t=ex(k.configuration_editor,e??k.default,k.default),r=Ex(k,e,t);s(t),l(JSON.stringify(r,null,2)),d(A?`guided`:`json`),p(null),h(`upsert`),y(null)},[n,i,e]);function P(e,t){s(n=>k?.capability_id===`periodic_report`?nx(n,e,t):{...n,[e]:t}),p(null),h(`upsert`),C(null),T(null)}function re(e){if(k){if(e===`json`)l(JSON.stringify(Ex(k,ee,o),null,2));else if(j)s(ex(k.configuration_editor,j,k.default));else{C(t(`machine.jsonInvalid`));return}d(e),p(null),h(`upsert`),C(null)}}async function ie(){if(!(!A||!k?.machine_namespace||!M||!ne||b)){x(`preview`),C(null),T(null);try{h(`upsert`),p(await Hg(k.machine_namespace,M))}catch(e){C(e instanceof Error?e.message:t(`machine.previewError`))}finally{x(null)}}}async function ae(){if(!(!A||!k?.machine_namespace||!te||b)){x(`preview`),C(null),T(null);try{h(`remove`),p(await Wg(k.machine_namespace))}catch(e){C(e instanceof Error?e.message:t(`machine.previewError`))}finally{x(null)}}}async function F(){if(!A||!k?.machine_namespace||!f||b||m===`upsert`&&!M)return;x(`apply`),C(null);let e=m;try{let n=e===`remove`?await Gg(k.machine_namespace,f.plan_revision):await Ug(k.machine_namespace,M,f.plan_revision);_(n),p(null),h(`upsert`),y(null),await N(),T(n.status===`applied`?t(e===`remove`?`machine.removed`:`machine.applied`):t(`machine.unchanged`))}catch(e){p(null),h(`upsert`),C(e instanceof Error?e.message:t(`machine.applyError`))}finally{x(null)}}async function oe(){if(!(!g?.transaction_id||b)){x(`rollback-preview`),C(null);try{y(await Kg(g.transaction_id))}catch(e){C(e instanceof Error?e.message:t(`machine.rollbackError`))}finally{x(null)}}}async function I(){if(!(!g?.transaction_id||!v||b)){x(`rollback`),C(null);try{await qg(g.transaction_id,v.plan_revision),_(null),y(null),p(null),await N(),T(t(`machine.rolledBack`))}catch(e){y(null),C(e instanceof Error?e.message:t(`machine.rollbackError`))}finally{x(null)}}}return b===`load`?(0,V.jsx)(`div`,{className:`personal-machine-loading`,role:`status`,children:t(`common.loading`)}):k?(0,V.jsxs)(`section`,{className:`personal-capability-settings`,"data-revision":n?.revision,children:[(0,V.jsxs)(`details`,{className:`personal-capability-scope-note`,children:[(0,V.jsxs)(`summary`,{children:[(0,V.jsx)(Xm,{"aria-hidden":!0,size:17}),t(`machine.liveDefault`)]}),(0,V.jsx)(`p`,{children:t(`machine.liveDefaultDescription`)})]}),(0,V.jsxs)(`div`,{className:`personal-capability-body`,children:[n?.status===`invalid`?(0,V.jsxs)(`section`,{className:`personal-machine-error`,"data-testid":`machine-invalid-repair`,role:`alert`,children:[(0,V.jsx)(`strong`,{children:t(`machine.invalidStoredConfiguration`)}),(0,V.jsx)(`p`,{children:t(`machine.invalidStoredConfigurationDescription`)})]}):null,(0,V.jsxs)(`div`,{className:`personal-capability-layout`,children:[(0,V.jsx)(gx,{capabilities:E,locale:e,onSelect:a,scope:`machine`,selectedCapabilityId:k.capability_id,t}),(0,V.jsxs)(`article`,{"aria-label":k.display_name,className:`personal-capability-detail`,tabIndex:0,children:[(0,V.jsx)(_x,{capability:O,locale:e,source:k.available_scopes.includes(`machine`)?te?`machine_default`:`capability_default`:void 0}),(0,V.jsx)(px,{available:A,t,description:k.available_scopes.includes(`machine`)?t(`machine.editorUnavailableDescription`):t(`machine.goalOnly`)}),k.capability_id===`periodic_report`?(0,V.jsxs)(`section`,{className:`personal-capability-behavior-note`,children:[(0,V.jsx)(Xm,{"aria-hidden":!0,size:18}),(0,V.jsxs)(`div`,{children:[(0,V.jsx)(`strong`,{children:ee?.schedule?e===`zh-CN`?`日历与阶段汇报`:`Calendar and stage reports`:t(`machine.periodicReportActivation`)}),(0,V.jsx)(`p`,{children:ee?.schedule?ee.enabled===!0?e===`zh-CN`?`已配置日历计划,由现有唤醒检查;是否送达请核对报告回执。`:`A calendar schedule is configured and checked by existing wakes. Verify delivery in the report receipt.`:e===`zh-CN`?`日历计划已保存;启用此能力后才会检查和投递。`:`The schedule is saved; enable this capability to check and deliver reports.`:t(`machine.periodicReportActivationDescription`)})]})]}):null,k.capability_id===`change_quality_qualification`?(0,V.jsxs)(`section`,{className:`personal-capability-behavior-note`,children:[(0,V.jsx)(Xm,{"aria-hidden":!0,size:18}),(0,V.jsxs)(`div`,{children:[(0,V.jsx)(`strong`,{children:t(`machine.changeQualityActivation`)}),(0,V.jsx)(`p`,{children:t(`machine.changeQualityActivationDescription`)})]})]}):null,k.capability_id===`todo_replan_cadence`?(0,V.jsxs)(`section`,{className:`personal-capability-behavior-note`,children:[(0,V.jsx)(Xm,{"aria-hidden":!0,size:18}),(0,V.jsxs)(`div`,{children:[(0,V.jsx)(`strong`,{children:t(`machine.replanCadenceActivation`)}),(0,V.jsx)(`p`,{children:t(`machine.replanCadenceActivationDescription`)})]})]}):null,k.capability_id===`pull_request_review`?(0,V.jsxs)(`section`,{className:`personal-capability-behavior-note`,children:[(0,V.jsx)(Xm,{"aria-hidden":!0,size:18}),(0,V.jsxs)(`div`,{children:[(0,V.jsx)(`strong`,{children:e===`zh-CN`?`只改变队列排序`:`Queue ordering only`}),(0,V.jsx)(`p`,{children:e===`zh-CN`?`默认先审阅其他开发者的 PR;选择 owner-first 才会优先当前已认证审阅者自己的 PR。此配置不会发布 review、写 Todo、push 或 merge。`:`The default reviews other developers' PRs first; choose owner-first only when the authenticated reviewer's own PRs should lead. This setting never posts a review, writes Todos, pushes, or merges.`})]})]}):null,A?(0,V.jsxs)(V.Fragment,{children:[u===`json`||!k.configuration_editor.fields.some(e=>e.key===`enabled`&&e.input_kind===`boolean`)?(0,V.jsx)(`div`,{className:`personal-capability-editor-mode`,children:(0,V.jsxs)(`button`,{onClick:()=>re(u===`guided`?`json`:`guided`),type:`button`,children:[(0,V.jsx)(fm,{"aria-hidden":!0,size:14}),t(u===`guided`?`machine.editJson`:`machine.backToForm`)]})}):null,u===`guided`?(0,V.jsxs)(`section`,{className:`personal-capability-field-summary`,children:[(0,V.jsx)(ax,{copy:lx(e),disabled:!!b,editor:k.configuration_editor,onChange:P,value:o,enabledAction:(0,V.jsxs)(`button`,{className:`personal-capability-edit-json`,onClick:()=>re(`json`),type:`button`,children:[(0,V.jsx)(fm,{"aria-hidden":!0,size:14}),t(`machine.editJson`)]})}),ne?null:(0,V.jsx)(`p`,{className:`personal-machine-validation`,role:`alert`,children:t(`machine.requiredFields`)})]}):(0,V.jsxs)(`label`,{className:`personal-capability-json-editor`,htmlFor:`machine-configuration-json`,children:[(0,V.jsx)(`span`,{children:t(`machine.jsonConfiguration`)}),(0,V.jsx)(`textarea`,{"aria-describedby":`machine-configuration-json-help`,disabled:!!b,id:`machine-configuration-json`,onChange:e=>{l(e.target.value),p(null),C(null)},rows:12,spellCheck:!1,value:c}),(0,V.jsx)(`small`,{id:`machine-configuration-json-help`,children:t(`machine.jsonConfigurationHelp`)}),j?null:(0,V.jsx)(`span`,{className:`personal-machine-validation`,role:`alert`,children:t(`machine.jsonInvalid`)})]})]}):null,S?(0,V.jsx)(`p`,{className:`personal-machine-error`,role:`alert`,children:S}):null,w?(0,V.jsxs)(`p`,{className:`personal-machine-notice`,role:`status`,"aria-live":`polite`,children:[(0,V.jsx)(am,{"aria-hidden":!0,size:16}),w]}):null,f?(0,V.jsxs)(`section`,{"aria-label":t(`machine.preview`),className:`personal-machine-preview`,children:[(0,V.jsxs)(`header`,{children:[(0,V.jsx)(`strong`,{children:t(`machine.preview`)}),(0,V.jsx)(`span`,{children:t(`machine.action.${f.action}`)})]}),(0,V.jsxs)(`dl`,{children:[(0,V.jsxs)(`div`,{children:[(0,V.jsx)(`dt`,{children:t(`machine.currentRevision`)}),(0,V.jsx)(`dd`,{title:f.current_revision,children:kx(f.current_revision)})]}),(0,V.jsxs)(`div`,{children:[(0,V.jsx)(`dt`,{children:t(`machine.desiredRevision`)}),(0,V.jsx)(`dd`,{title:f.desired_revision,children:kx(f.desired_revision)})]}),(0,V.jsxs)(`div`,{children:[(0,V.jsx)(`dt`,{children:t(`machine.changedNamespaces`)}),(0,V.jsx)(`dd`,{children:f.changed_namespaces.join(`, `)||t(`common.none`)})]})]}),(0,V.jsx)(`p`,{children:t(`machine.previewLocked`)})]}):null,g?.rollback_available&&g.transaction_id?(0,V.jsxs)(`section`,{className:`personal-machine-rollback`,children:[(0,V.jsxs)(`div`,{children:[(0,V.jsx)(`strong`,{children:t(`machine.rollbackAvailable`)}),(0,V.jsx)(`p`,{children:t(v?`machine.rollbackPreviewDescription`:`machine.rollbackDescription`)})]}),(0,V.jsxs)(`button`,{className:`personal-secondary-action`,disabled:!!b||!!(v&&!v.rollback_allowed),onClick:()=>void(v?I():oe()),type:`button`,children:[(0,V.jsx)(Um,{"aria-hidden":!0,size:15}),t(b===`rollback`||b===`rollback-preview`?`common.loading`:v?`machine.confirmRollback`:`machine.previewRollback`)]})]}):null,A?(0,V.jsxs)(`footer`,{className:`personal-capability-actions`,children:[te?(0,V.jsxs)(`button`,{className:`is-danger`,disabled:!!b,onClick:()=>void ae(),type:`button`,children:[(0,V.jsx)(nh,{"aria-hidden":!0,size:15}),t(`machine.previewRemoval`)]}):null,(0,V.jsx)(`button`,{disabled:!!b||!ne,onClick:()=>void ie(),type:`button`,children:t(b===`preview`?`common.loading`:`machine.previewChanges`)}),(0,V.jsx)(`button`,{className:`is-primary`,disabled:!!b||!f,onClick:()=>void F(),type:`button`,children:t(b===`apply`?`common.loading`:`machine.applyPreview`)})]}):null,k.available_scopes.includes(`machine`)?(0,V.jsx)(dx,{values:[{label:t(`machine.currentValue`),value:ee},{label:t(`capabilities.defaultValue`),value:k.default}],t},k.capability_id):null]})]})]})]}):(0,V.jsx)(`p`,{className:`personal-capability-empty`,children:t(`machine.capabilityEmpty`)})}function jx(e,t){return t(e===`invalid`?`machine.credentialInvalid`:e===`configured`?`machine.credentialConfigured`:`machine.credentialAbsent`)}function Mx(e,t){return t(e===`machine_store`?`machine.credentialSourceMachine`:e===`service_environment`?`machine.credentialSourceEnvironment`:`machine.credentialSourceUnset`)}function Nx(){let{t:e}=Ji(),[t,n]=(0,B.useState)(null),[r,i]=(0,B.useState)(``),[a,o]=(0,B.useState)(``),[s,c]=(0,B.useState)(``),[l,u]=(0,B.useState)(null),[d,f]=(0,B.useState)(null),p=(0,B.useCallback)(async()=>{c(`load`);try{let e=await Ig();n(e),o(String(e.base_url.value??``))}catch(t){u(t instanceof Error?t.message:e(`machine.credentialError`))}finally{c(``)}},[e]);(0,B.useEffect)(()=>{p()},[p]);async function m(t,r){c(`store`),u(null),f(null);try{let e=await Lg(t);n(e),o(String(e.base_url.value??``)),i(``),f(r)}catch(t){u(t instanceof Error?t.message:e(`machine.credentialError`))}finally{c(``)}}if(!t&&s===`load`)return(0,V.jsx)(`div`,{className:`personal-machine-loading`,role:`status`,children:e(`common.loading`)});let h=t?`${jx(t.provider_key.configured?`configured`:`absent`,e)} · ${Mx(t.provider_key.source,e)}`:``,g=t?`${t.base_url.value??e(`machine.credentialAbsent`)} · ${Mx(t.base_url.source,e)}`:``;return(0,V.jsxs)(`section`,{className:`personal-operator-credential`,"data-testid":`operator-credential-settings`,children:[(0,V.jsxs)(`header`,{children:[(0,V.jsx)(Tm,{"aria-hidden":!0,size:17}),(0,V.jsxs)(`div`,{children:[(0,V.jsx)(`strong`,{children:e(`machine.credentialTitle`)}),(0,V.jsx)(`p`,{children:e(`machine.credentialDescription`)})]}),(0,V.jsx)(`span`,{className:`personal-operator-credential-status`,children:t?jx(t.status,e):e(`common.loading`)})]}),t?(0,V.jsxs)(`dl`,{className:`personal-operator-credential-readback`,children:[(0,V.jsxs)(`div`,{children:[(0,V.jsx)(`dt`,{children:e(`machine.credentialApiKey`)}),(0,V.jsx)(`dd`,{children:h})]}),(0,V.jsxs)(`div`,{children:[(0,V.jsx)(`dt`,{children:e(`machine.credentialFingerprint`)}),(0,V.jsx)(`dd`,{children:(0,V.jsx)(`code`,{children:t.provider_key.fingerprint??e(`common.none`)})})]}),(0,V.jsxs)(`div`,{children:[(0,V.jsx)(`dt`,{children:e(`machine.credentialBaseUrl`)}),(0,V.jsx)(`dd`,{children:g})]})]}):null,t?.status===`invalid`&&t.repair?(0,V.jsx)(`p`,{className:`personal-machine-error`,role:`alert`,children:t.repair}):null,(0,V.jsxs)(`label`,{htmlFor:`operator-credential-api-key`,children:[(0,V.jsx)(`span`,{children:e(`machine.credentialApiKey`)}),(0,V.jsx)(`input`,{autoComplete:`off`,disabled:!!s,id:`operator-credential-api-key`,onChange:e=>i(e.target.value),placeholder:e(`machine.credentialApiKeyPlaceholder`),type:`password`,value:r})]}),(0,V.jsxs)(`label`,{htmlFor:`operator-credential-base-url`,children:[(0,V.jsx)(`span`,{children:e(`machine.credentialBaseUrl`)}),(0,V.jsx)(`input`,{autoComplete:`off`,disabled:!!s,id:`operator-credential-base-url`,onChange:e=>o(e.target.value),placeholder:e(`machine.credentialBaseUrlPlaceholder`),type:`text`,value:a})]}),l?(0,V.jsx)(`p`,{className:`personal-machine-error`,role:`alert`,children:l}):null,d?(0,V.jsxs)(`p`,{className:`personal-machine-notice`,role:`status`,"aria-live":`polite`,children:[(0,V.jsx)(am,{"aria-hidden":!0,size:16}),d]}):null,(0,V.jsxs)(`footer`,{className:`personal-operator-credential-actions`,children:[(0,V.jsx)(`button`,{className:`is-primary`,disabled:!!s||!r.trim()&&!a.trim(),onClick:()=>void m({...r.trim()?{provider_key:r}:{},...a.trim()?{base_url:a}:{}},e(`machine.credentialStored`)),type:`button`,children:e(s===`store`?`common.loading`:`machine.credentialStore`)}),(0,V.jsxs)(`button`,{disabled:!!s||t?.provider_key.configured!==!0,onClick:()=>void m({clear_provider_key:!0},e(`machine.credentialCleared`)),type:`button`,children:[(0,V.jsx)(nh,{"aria-hidden":!0,size:15}),e(`machine.credentialClearKey`)]}),(0,V.jsxs)(`button`,{disabled:!!s||t?.base_url.configured!==!0,onClick:()=>void m({clear_base_url:!0},e(`machine.credentialCleared`)),type:`button`,children:[(0,V.jsx)(nh,{"aria-hidden":!0,size:15}),e(`machine.credentialClearUrl`)]})]}),(0,V.jsxs)(`details`,{className:`personal-capability-scope-note`,children:[(0,V.jsxs)(`summary`,{children:[(0,V.jsx)(Xm,{"aria-hidden":!0,size:17}),e(`machine.credentialTitle`)]}),(0,V.jsx)(`p`,{children:e(`machine.credentialBoundary`)})]})]})}var Px={appearance:Im,capabilities:Zm,language:Em,lark:Ym,machine:qm,provider:Tm};function Fx({callbacks:e,focusGoalConnection:t=!1,goals:n,initialGoalId:r,initialTab:i=`lark`,goalNotifications:a,onChanged:o,onClose:s,onThemeChange:c,theme:l}){let{locale:u,setLocale:d,t:f}=Ji(),[p,m]=(0,B.useState)(i),h=[...r?[{key:`capabilities`,label:f(`capabilities.title`)}]:[],{key:`provider`,label:f(`settings.modelProvider`)},{key:`machine`,label:f(`settings.globalCapabilities`)},{key:`lark`,label:`Lark`},{key:`appearance`,label:f(`settings.appearance`)},{key:`language`,label:f(`settings.language`)}],g=[{label:f(`settings.languageEnglish`),value:`en`},{label:f(`settings.languageSimplifiedChinese`),value:`zh-CN`}],_={appearance:{title:f(`settings.appearance`)},capabilities:{title:f(`capabilities.title`)},language:{title:f(`settings.language`)},lark:{title:`Lark`},machine:{title:f(`settings.globalCapabilities`)},provider:{title:f(`settings.modelProvider`)}}[p];return(0,V.jsxs)(`section`,{"aria-label":f(`settings.title`),className:`personal-settings-page`,"data-pw-theme":l,children:[(0,V.jsxs)(`aside`,{className:`personal-settings-sidebar`,children:[(0,V.jsxs)(`button`,{className:`personal-settings-back`,onClick:s,type:`button`,children:[(0,V.jsx)(Xp,{size:17}),(0,V.jsx)(`span`,{children:f(`settings.back`)})]}),(0,V.jsxs)(`div`,{className:`personal-settings-title`,children:[(0,V.jsx)(`small`,{children:f(`settings.eyebrow`)}),(0,V.jsx)(`strong`,{children:f(`settings.title`)})]}),(0,V.jsx)(`nav`,{"aria-label":f(`settings.categories`),className:`personal-settings-tabs`,children:h.map(e=>{let t=Px[e.key];return(0,V.jsxs)(`button`,{"aria-current":p===e.key?`page`:void 0,onClick:()=>m(e.key),type:`button`,children:[(0,V.jsx)(t,{size:17}),(0,V.jsx)(`span`,{children:(0,V.jsx)(`strong`,{children:e.label})})]},e.key)})})]}),(0,V.jsxs)(`main`,{className:`personal-settings-body`,children:[(0,V.jsx)(`header`,{className:`personal-settings-header`,children:(0,V.jsx)(`div`,{children:(0,V.jsx)(`h1`,{children:_.title})})}),p===`lark`?(0,V.jsx)(Qb,{embedded:!0,focusGoalConnection:t,goals:n,initialGoalId:r,onChanged:o,onClose:s}):null,p===`provider`?(0,V.jsx)(`div`,{className:`personal-provider-settings`,children:(0,V.jsx)(Nx,{})}):null,p===`machine`?(0,V.jsx)(Ax,{}):null,p===`capabilities`?(0,V.jsx)(Cx,{callbacks:e,goalId:r,notification:a.find(e=>e.goalId===r),onChanged:o}):null,p===`appearance`?(0,V.jsxs)(`section`,{className:`personal-detail-card personal-appearance-settings`,children:[(0,V.jsx)(`small`,{children:f(`settings.workspaceDisplay`)}),(0,V.jsx)(`h3`,{children:f(`settings.appearance`)}),(0,V.jsxs)(`div`,{className:`personal-settings-choice-group`,role:`radiogroup`,"aria-label":f(`settings.workspaceTheme`),children:[(0,V.jsxs)(`button`,{"aria-checked":l===`loopx`,onClick:()=>c(`loopx`),role:`radio`,type:`button`,children:[(0,V.jsx)(`span`,{className:`personal-settings-theme-swatch is-loopx`}),(0,V.jsx)(`strong`,{children:f(`settings.themeLoopx`)})]}),(0,V.jsxs)(`button`,{"aria-checked":l===`paper`,onClick:()=>c(`paper`),role:`radio`,type:`button`,children:[(0,V.jsx)(`span`,{className:`personal-settings-theme-swatch is-paper`}),(0,V.jsx)(`strong`,{children:f(`settings.themeDefault`)})]}),(0,V.jsxs)(`button`,{"aria-checked":l===`brutal`,onClick:()=>c(`brutal`),role:`radio`,type:`button`,children:[(0,V.jsx)(`span`,{className:`personal-settings-theme-swatch is-brutal`}),(0,V.jsx)(`strong`,{children:f(`settings.themeHighContrast`)})]})]})]}):null,p===`language`?(0,V.jsxs)(`section`,{className:`personal-settings-card`,children:[(0,V.jsxs)(`header`,{children:[(0,V.jsx)(`span`,{className:`personal-settings-icon`,children:(0,V.jsx)(Em,{size:18})}),(0,V.jsx)(`div`,{children:(0,V.jsx)(`h2`,{children:f(`settings.language`)})})]}),(0,V.jsx)(`div`,{"aria-label":f(`settings.language`),className:`personal-language-options`,role:`radiogroup`,children:g.map(e=>(0,V.jsxs)(`button`,{"aria-checked":u===e.value,className:u===e.value?`is-selected`:``,onClick:()=>d(e.value),role:`radio`,type:`button`,children:[(0,V.jsx)(`span`,{children:(0,V.jsx)(`strong`,{children:e.label})}),u===e.value?(0,V.jsx)(am,{"aria-hidden":!0,size:17}):null]},e.value))})]}):null]})]})}var Ix=`loopx-pw-theme`,Lx=`loopx`;function Rx(){try{let e=window.localStorage.getItem(Ix);return e===`loopx`||e===`paper`||e===`brutal`?e:Lx}catch{return Lx}}function zx(e){try{window.localStorage.setItem(Ix,e)}catch{}}function Bx({drawer:e,drawerMode:t=`panel`,drawerOpen:n,main:r,mobileSidebarOpen:i=!1,onCloseMobileSidebar:a,sidebar:o,theme:s=`loopx`}){let{t:c}=Ji(),l=(0,B.useRef)(null),u=(0,B.useRef)(null);return(0,B.useEffect)(()=>{if(!i)return;u.current=document.activeElement instanceof HTMLElement?document.activeElement:null;let e=l.current?.querySelectorAll(`button:not([disabled]), a[href], select:not([disabled]), textarea:not([disabled]), input:not([disabled]), [tabindex]:not([tabindex="-1"])`);e?.[0]?.focus();function t(t){if(t.key!==`Tab`||!e?.length)return;let n=e[0],r=e[e.length-1];t.shiftKey&&document.activeElement===n?(t.preventDefault(),r.focus()):!t.shiftKey&&document.activeElement===r&&(t.preventDefault(),n.focus())}return document.addEventListener(`keydown`,t),()=>{document.removeEventListener(`keydown`,t),u.current?.focus(),u.current=null}},[i]),(0,V.jsxs)(`section`,{className:`personal-workspace-shell${n?` has-drawer`:``}${n&&t.startsWith(`inspector`)?` has-task-inspector`:``}${t===`inspector-full`?` is-task-inspector-full`:``}${i?` mobile-sidebar-open`:``}`,"data-pw-theme":s,children:[i?(0,V.jsx)(`button`,{"aria-hidden":!0,className:`personal-sidebar-backdrop`,onClick:a,tabIndex:-1,type:`button`}):null,(0,V.jsx)(`aside`,{"aria-label":i?c(`header.goalNavigation`):void 0,"aria-modal":i?!0:void 0,className:`personal-workspace-sidebar`,"data-workspace-sidebar":!0,ref:l,role:i?`dialog`:void 0,children:(0,V.jsxs)(`div`,{className:`personal-workspace-sidebar-inner`,children:[i?(0,V.jsxs)(`button`,{className:`personal-sr-only`,onClick:a,type:`button`,children:[c(`common.close`),` `,c(`header.goalNavigation`)]}):null,o]})}),(0,V.jsx)(`main`,{"aria-hidden":i||void 0,className:`personal-workspace-main`,inert:i||void 0,children:r}),n?(0,V.jsx)(`aside`,{className:`personal-workspace-drawer`,"data-context-drawer":!0,"data-drawer-mode":t,children:e}):null]})}function Vx(e){let t=e.match(/(?:下一步|建议|行动项|待办)[::\s]*([^\n]+)/u),n=t?t[1]:e;n=n.replace(/```[\s\S]*?```/g,``).replace(/`([^`]+)`/g,`$1`).replace(/\[([^\]]+)\]\([^)]+\)/g,`$1`).replace(/[#*~_>]/g,``).replace(/^[-*•\d+.\s]+/u,``).replace(/^(好的|没问题|收到|建议如下|任务如下|分析如下|结论[::])[\s,,::]*/u,``);let r=(n.split(/\r?\n/).map(e=>e.trim()).filter(Boolean)[0]||n).replace(/\s+/gu,` `).trim();return Array.from(r).slice(0,120).join(``)}function Hx(e){let t=new Map;return e.forEach(e=>{let n=e.fields.find(e=>e.key===`todo_id`)?.value??``,r=[e.actionKind,e.goalId??``,n,e.title].join(`:`);t.set(r,e)}),[...t.values()]}function Ux(e,t,n){if(!e)return n(`home.noFirstActivity`);let r=new Date(e);if(Number.isNaN(r.getTime()))return e;let i=new Date,a=new Intl.DateTimeFormat(t,{hour:`2-digit`,minute:`2-digit`,hour12:!1}).format(r);return r.toDateString()===i.toDateString()?n(`home.todayAt`,{time:a}):new Intl.DateTimeFormat(t,{month:`numeric`,day:`numeric`,hour:`2-digit`,minute:`2-digit`,hour12:!1}).format(r)}function Wx({goals:e,onSelectGoal:t,onRetry:n,systemHealth:r}){let{locale:i,t:a}=Ji(),o=e.filter(e=>e.activationState===`active`),s=o.filter(e=>e.loadState===`error`).length,c=[{key:`needs_you`,label:a(`home.lane.needsYou`)},{key:`running`,label:a(`home.lane.running`)},{key:`observing`,label:a(`home.lane.observing`)},{key:`scheduled`,label:a(`home.lane.scheduled`)}],l=Object.fromEntries(c.map(e=>[e.key,[]])),u=[],d=[];e.filter(e=>!e.loadState).forEach(e=>{let t=Ly(e);t===`history`?u.push(e):t===`stopped`?d.push(e):l[t].push(e)});let f=e=>(0,V.jsxs)(`button`,{className:`personal-home-goal-card`,"data-goal-state":e.loadState??e.state,"data-load-error":e.loadError,onClick:()=>t(e.goalId),type:`button`,children:[(0,V.jsxs)(`span`,{className:`personal-home-goal-meta`,children:[(0,V.jsx)(`i`,{}),e.agentLaneCount&&e.agentLaneCount>1?a(`header.workAgentCount`,{count:e.agentLaneCount}):e.agentLabel??e.agentId]}),(0,V.jsx)(`strong`,{children:e.title}),(0,V.jsx)(`p`,{children:e.loadError?a(`startup.error.${e.loadError}`):e.needsYou??e.nextSentence}),(0,V.jsxs)(`footer`,{children:[(0,V.jsx)(`span`,{children:e.loadState?a(e.loadState===`error`?`startup.goalError`:`startup.goalLoading`):Yi(e.state,i)}),(0,V.jsx)(`small`,{title:e.latestActivity,children:e.loadState?``:e.latestActivity?Ux(e.latestActivity,i,a):e.agentTodos.length?a(`home.taskCount`,{count:e.agentTodos.length}):a(`home.noActivity`)})]})]},e.goalId);return(0,V.jsxs)(`section`,{"aria-label":a(`home.workspace`),className:`personal-home-board`,children:[r&&(!r.ok||r.issues.length>0||r.freshnessWarning)?(0,V.jsxs)(`div`,{className:`personal-system-health-banner`,role:`alert`,children:[(0,V.jsxs)(`div`,{className:`personal-system-health-header`,children:[(0,V.jsx)(lm,{size:15}),(0,V.jsx)(`strong`,{children:a(`home.systemHealth`,{summary:r.summary})}),r.freshnessWarning?(0,V.jsxs)(`small`,{children:[`(`,r.freshnessWarning,`)`]}):null]}),r.issues.length>0?(0,V.jsx)(`ul`,{className:`personal-system-health-issues`,children:r.issues.map((e,t)=>(0,V.jsx)(`li`,{children:e},t))}):null]}):null,o.some(e=>e.loadState)?(0,V.jsxs)(`section`,{className:`personal-home-lane`,"aria-live":`polite`,children:[(0,V.jsx)(`header`,{children:a(`startup.progress`,{loaded:o.filter(e=>!e.loadState).length,total:o.length})}),s?(0,V.jsxs)(`div`,{className:`personal-stopped-goal-error`,role:`status`,children:[(0,V.jsx)(`span`,{children:a(`startup.failedCount`,{count:s})}),(0,V.jsx)(`button`,{className:`min-h-11 rounded-md border px-3 py-2 text-sm`,onClick:n,type:`button`,children:a(`startup.retryFailed`)})]}):null,o.filter(e=>e.loadState).map(f)]}):null,(0,V.jsx)(`div`,{className:`personal-home-lanes`,children:c.map(e=>(0,V.jsxs)(`section`,{className:`personal-home-lane is-${e.key}`,"data-testid":`personal-home-lane-${e.key}`,children:[(0,V.jsxs)(`header`,{children:[(0,V.jsxs)(`span`,{children:[(0,V.jsx)(`i`,{}),e.label]}),(0,V.jsx)(`b`,{children:l[e.key].length})]}),(0,V.jsx)(`div`,{className:`personal-home-lane-list`,children:l[e.key].length?l[e.key].map(f):(0,V.jsx)(`span`,{className:`personal-home-empty`,children:a(`home.empty`)})})]},e.key))}),(0,V.jsxs)(`details`,{className:`personal-home-history`,children:[(0,V.jsxs)(`summary`,{children:[(0,V.jsx)(`span`,{children:a(`home.history`)}),(0,V.jsx)(`b`,{children:u.length}),(0,V.jsx)(`small`,{children:a(`home.completedGoals`)})]}),(0,V.jsx)(`div`,{children:u.length?u.map(f):(0,V.jsx)(`span`,{className:`personal-home-empty`,children:a(`home.noCompletedGoals`)})})]}),d.length?(0,V.jsxs)(`details`,{className:`personal-home-history is-stopped`,children:[(0,V.jsxs)(`summary`,{children:[(0,V.jsx)(`span`,{children:a(`home.stopped`)}),(0,V.jsx)(`b`,{children:d.length}),(0,V.jsx)(`small`,{children:a(`home.preservedState`)})]}),(0,V.jsx)(`div`,{children:d.map(f)})]}):null]})}function Gx({items:e,onSelect:t,reportState:n}){let{locale:r,t:i}=Ji();return(0,V.jsxs)(`section`,{className:`personal-object-list personal-files-list`,"data-testid":`personal-goal-outputs`,children:[(0,V.jsxs)(`header`,{children:[(0,V.jsx)(`strong`,{children:i(`files.title`)}),(0,V.jsx)(`span`,{children:e.length})]}),n?.loading?(0,V.jsxs)(`p`,{className:`personal-object-list-state`,role:`status`,children:[(0,V.jsx)(Hm,{className:`is-spinning`,size:14}),i(`files.loadingReports`)]}):null,n?.error?(0,V.jsxs)(`p`,{className:`personal-object-list-state is-error`,role:`alert`,children:[(0,V.jsx)(lm,{size:14}),i(`files.reportLoadFailed`),`: `,n.error]}):null,!n?.loading&&!n?.error&&e.length===0?(0,V.jsxs)(`p`,{className:`personal-object-list-state`,children:[(0,V.jsx)(xm,{size:14}),i(`files.empty`)]}):null,e.map(e=>(0,V.jsxs)(`button`,{"data-output-kind":e.output.kind,onClick:()=>t({item:e.output,kind:`output`}),type:`button`,children:[(0,V.jsx)(`span`,{className:`personal-file-icon`,children:(0,V.jsx)(xm,{size:16})}),(0,V.jsx)(`strong`,{children:e.output.title}),e.output.report?(0,V.jsx)(`em`,{children:i(`files.reportDelta`,{added:e.output.report.addedCount,changed:e.output.report.changedCount})}):null,(0,V.jsx)(`p`,{children:e.output.summary??e.output.safePreview??e.output.kind??i(`files.emptySummary`)}),(0,V.jsx)(`small`,{title:e.output.createdAt,children:[e.output.goalTitle,e.output.kind===`report`?i(`files.verifiedReport`):null,e.output.todoId?`${i(`common.task`)} ${e.output.todoId}`:null,Ux(e.output.createdAt,r,i)].filter(Boolean).join(` · `)})]},e.id))]})}function Kx({agentLabel:e,messages:t,onClose:n,onDraftTask:r,onOpenConversation:i,title:a}){let{t:o}=Ji(),s=t.reduce((e,t,n)=>t.role===`user`?n:e,0),c=t.slice(Math.max(0,s)).slice(-3),l=c.filter(e=>e.role===`assistant`&&!e.pending).at(-1);return(0,B.useEffect)(()=>{if(!n)return;let e=e=>{e.key===`Escape`&&n()};return window.addEventListener(`keydown`,e),()=>window.removeEventListener(`keydown`,e)},[n]),(0,V.jsxs)(`aside`,{"aria-label":o(`conversation.receipt`),className:`personal-manager-conversation-tray`,children:[(0,V.jsxs)(`header`,{children:[(0,V.jsxs)(`span`,{children:[(0,V.jsx)(nm,{size:16}),(0,V.jsx)(`strong`,{children:a??o(`conversation.title`)}),(0,V.jsx)(`small`,{children:t.at(-1)?.pending?o(`conversation.replying`):o(`common.recently`)})]}),(0,V.jsxs)(`div`,{className:`personal-manager-conversation-actions`,children:[r&&l?(0,V.jsxs)(`button`,{className:`personal-manager-conversation-btn`,onClick:()=>r(l.text),title:o(`conversation.convertHint`),type:`button`,children:[(0,V.jsx)(Om,{size:13}),(0,V.jsx)(`span`,{children:o(`conversation.toTask`)})]}):null,(0,V.jsx)(`button`,{className:`personal-manager-conversation-link`,onClick:i,type:`button`,children:o(`conversation.full`)}),n?(0,V.jsx)(`button`,{"aria-label":o(`conversation.close`),className:`personal-manager-conversation-close`,onClick:n,title:o(`conversation.close`),type:`button`,children:(0,V.jsx)(ah,{size:14})}):null]})]}),(0,V.jsx)(`div`,{"aria-live":`polite`,className:`personal-manager-conversation-messages`,children:c.map(t=>(0,V.jsxs)(`article`,{className:`is-${t.role}`,children:[(0,V.jsx)(`strong`,{children:t.role===`user`?o(`common.you`):t.agentLabel??e??o(`header.manager`)}),(0,V.jsxs)(`div`,{className:`personal-manager-conversation-bubble`,children:[t.role===`user`?(0,V.jsx)(`p`,{children:t.text}):(0,V.jsx)(Qy,{text:t.text}),t.pending?(0,V.jsx)(`small`,{children:o(`conversation.agentPending`)}):null,(0,V.jsx)(rb,{delivery:t.returnDelivery})]})]},t.id))})]})}function qx({onClose:e,onOpenDetails:t,run:n}){let{t:r}=Ji();return(0,V.jsxs)(`section`,{"aria-label":r(`session.record`),className:`personal-session-record`,children:[(0,V.jsxs)(`header`,{children:[(0,V.jsxs)(`span`,{children:[(0,V.jsx)(nm,{size:17}),r(`session.record`)]}),(0,V.jsx)(`button`,{"aria-label":r(`session.closeRecord`),onClick:e,type:`button`,children:(0,V.jsx)(ah,{size:15})})]}),(0,V.jsx)(`div`,{children:(0,V.jsx)(`strong`,{children:n.title})}),(0,V.jsxs)(`dl`,{children:[(0,V.jsxs)(`div`,{children:[(0,V.jsx)(`dt`,{children:`Agent`}),(0,V.jsx)(`dd`,{children:n.agentLabel})]}),(0,V.jsxs)(`div`,{children:[(0,V.jsx)(`dt`,{children:r(`common.status`)}),(0,V.jsx)(`dd`,{children:Xi(n.sessionStatus??n.status,r)})]}),(0,V.jsxs)(`div`,{children:[(0,V.jsx)(`dt`,{children:`Session`}),(0,V.jsx)(`dd`,{title:n.sessionId,children:n.sessionId})]})]}),(0,V.jsx)(`button`,{className:`personal-secondary-action`,onClick:t,type:`button`,children:r(`session.details`)})]})}function Jx(e,t,n){let r=[];if(t===null)return e.userTodos.slice(0,4).forEach(t=>r.push({attention:{...t,goalTitle:t.goalTitle??Iy(e,t.goalId)},id:`attention:${t.todoId}`,kind:`attention`})),e.goals.filter(e=>Ly(e)===`running`).slice(0,4).forEach(e=>r.push({id:`run:${e.goalId}`,kind:`run`,run:{agentId:e.agentId,agentLabel:e.agentLabel??e.agentId,completedSteps:e.doneTodoCount??e.agentTodos.filter(e=>e.done).length,goalId:e.goalId,goalTitle:e.title,latestActivity:e.agentSentence,runId:`goal:${e.goalId}`,status:`running`,title:e.nextSentence,totalSteps:Math.max((e.doneTodoCount??0)+e.agentTodos.filter(e=>!e.done).length,1)}})),r;let i=e.goals.find(e=>e.goalId===t);if(!i)return r;if(i.needsYou){let t=e.userTodos.find(e=>e.goalId===i.goalId);r.push({attention:t?{...t,goalTitle:i.title}:{blocking:i.needsYouBlocking??!1,goalId:i.goalId,goalTitle:i.title,text:i.needsYou,todoId:`${i.goalId}:attention`},id:`attention:${i.goalId}`,kind:`attention`})}r.push({id:`run:${i.goalId}`,kind:`run`,run:{agentId:i.agentId,agentLabel:i.agentLabel??i.agentId,completedSteps:i.doneTodoCount??i.agentTodos.filter(e=>e.done).length,goalId:i.goalId,goalTitle:i.title,latestActivity:i.agentSentence,runId:`goal:${i.goalId}`,status:i.state===`推进中`?`running`:i.state===`需修复`?`failed`:`waiting`,title:i.nextSentence,totalSteps:Math.max((i.doneTodoCount??0)+i.agentTodos.filter(e=>!e.done).length,1)}}),i.agentTodos.filter(e=>e.taskClass===`continuous_monitor`).forEach(t=>{let a=e.timeline?.find(e=>e.kind===`run`&&e.run.goalId===i.goalId&&e.run.todoId===t.todoId&&!!e.run.sessionId);r.push({id:`schedule:${i.goalId}:${t.todoId}`,kind:`schedule`,schedule:{agentId:i.agentId,executionHistory:a?[{label:a.run.latestActivity||a.run.title,runId:a.run.runId,status:a.run.status===`waiting`||a.run.status===`queued`?`running`:a.run.status,timestamp:i.latestActivity||n(`common.recently`)}]:[],goalId:i.goalId,label:t.text,schedule:t.evidence??n(`schedule.summary`),scheduleId:t.todoId,scheduleKind:`monitor`,sessionId:a?.run.sessionId,status:t.done||t.status===`paused`?`paused`:`active`,stopCondition:n(`drawer.scheduleDefaultStop`),target:t.text,timezone:`Asia/Shanghai`}})});let a=e.timeline?.find(e=>e.kind===`proposal`&&e.proposal.actionKind===`heartbeat.bind`&&e.proposal.goalId===i.goalId);if(a){let e=e=>a.proposal.fields.find(t=>t.key===e)?.value;r.push({id:`schedule:${i.goalId}:heartbeat`,kind:`schedule`,schedule:{agentId:i.agentId,executionHistory:[],goalId:i.goalId,label:`${n(`schedule.heartbeat`)} · ${i.title}`,nextRunAt:n(`drawer.schedulePending`),notificationRule:n(`drawer.scheduleDefaultNotification`),schedule:e(`cadence`)??n(`schedule.summary`),scheduleId:`${i.goalId}:heartbeat`,scheduleKind:`heartbeat`,status:a.proposal.status===`applied`?`active`:`draft`,stopCondition:e(`stop_condition`)??n(`drawer.scheduleDefaultStop`),timezone:e(`timezone`)??`Asia/Shanghai`}})}return r}function Yx(e){return e===`preview_ready`?`ready`:e===`cancelled`?`draft`:e===`failed`?`error`:e}function Xx(e,t){let n={agent_id:t(`proposal.field.agentId`),cadence:t(`proposal.field.cadence`),completion_criteria:t(`proposal.field.completionCriteria`),execution_boundary:t(`proposal.field.executionBoundary`),goal_id:t(`proposal.field.goalId`),heartbeat:t(`proposal.field.heartbeat`),initial_todos:t(`proposal.field.initialTodos`),objective:t(`proposal.field.objective`),operation:t(`proposal.field.operation`),permission:t(`proposal.field.permission`),reason:t(`proposal.field.reason`),stop_condition:t(`proposal.field.stopCondition`),target:t(`proposal.field.target`),timezone:t(`proposal.field.timezone`),title:t(`proposal.field.title`),workspace_ref:t(`proposal.field.workspace`)},r=[`title`,`objective`,`completion_criteria`,`execution_boundary`,`permission`,`agent_id`,`workspace_ref`,`initial_todos`,`heartbeat`,`stop_condition`,`goal_id`];return Object.entries(e).sort(([e],[t])=>{let n=r.indexOf(e),i=r.indexOf(t);return(n<0?r.length:n)-(i<0?r.length:i)}).slice(0,10).map(([e,r])=>({key:e,label:n[e]??e.replaceAll(`_`,` `),value:e===`workspace_ref`?r===`current`?t(`proposal.workspace.current`):t(`proposal.workspace.named`,{workspace:String(r??`current`)}):Array.isArray(r)?r.join(` · `):typeof r==`object`&&r?JSON.stringify(r):String(r??`—`)}))}function Zx(e,t,n){let r=t.operationFrame,i=r?.content.fields.map((e,t)=>({key:`projection:${t}`,label:e.label,value:e.value})).slice(0,8)??[];return[{key:`operation_state`,label:n(`proposal.field.operationState`),value:r?.lifecycleState??e.status},...r?.kind===`result`?[{key:`result_delivery`,label:n(`proposal.field.resultDelivery`),value:r.resultDeliveryVerified?n(`proposal.resultDelivery.verified`):n(`proposal.resultDelivery.pending`)}]:[],...i,...r?[{key:`warning`,label:n(`proposal.field.confirmationBoundary`),value:r.content.warning}]:[],...r?[{key:`expires_at`,label:n(`proposal.field.expiresAt`),value:r.expiresAt}]:[]].slice(0,10)}function Qx(e){if(e.action_kind!==`goal.lifecycle`)return;let t=e.normalized_parameters.operation;return t===`stop`||t===`resume`||t===`delete`?t:void 0}function $x(e,t){let n=Qx(e),r=Oy(e),i=typeof e.normalized_parameters.title==`string`?e.normalized_parameters.title:typeof e.normalized_parameters.goal_id==`string`?e.normalized_parameters.goal_id:``,a=typeof e.normalized_parameters.target==`string`?e.normalized_parameters.target:``,o=r.operationFrame,s=o?.content.title??e.summary,c=e.action_kind===`operation.execute`?s:e.action_kind===`team.plan`?t(`proposal.summary.teamPlan`,{goal:Py(e.normalized_parameters),count:Ny(e.normalized_parameters)}):e.action_kind===`goal.create`?t(`proposal.summary.goalCreate`,{title:i}):e.action_kind===`heartbeat.bind`?t(`proposal.summary.heartbeat`):e.action_kind===`monitor.create`?t(`proposal.summary.monitor`,{target:a}):e.action_kind===`goal.lifecycle`&&n===`stop`?t(`proposal.summary.lifecycleStop`,{title:i}):e.action_kind===`goal.lifecycle`&&n===`delete`?t(`proposal.summary.lifecycleDelete`,{title:i}):e.action_kind===`goal.lifecycle`?t(`proposal.summary.lifecycleResume`,{title:i}):e.summary;return{actionKind:e.action_kind,reviewPlan:r,fields:e.action_kind===`operation.execute`?Zx(e,r,t):e.action_kind===`team.plan`?My(e.normalized_parameters,t):Xx(e.normalized_parameters,t),goalId:typeof e.normalized_parameters.goal_id==`string`?e.normalized_parameters.goal_id:void 0,impact:e.action_kind===`operation.execute`?t(`proposal.impact.operation`):e.action_kind===`team.plan`?t(`proposal.impact.teamPlan`):e.action_kind===`goal.create`?t(`proposal.impact.goalCreate`):e.action_kind===`goal.lifecycle`&&n===`stop`?t(`proposal.impact.lifecycleStop`):e.action_kind===`goal.lifecycle`&&n===`delete`?t(`proposal.impact.lifecycleDelete`):e.action_kind===`goal.lifecycle`?t(`proposal.impact.lifecycleResume`):e.permission_classification===`protected`?t(`proposal.impact.protected`):t(`proposal.impact.default`),previewId:e.proposal_id,lifecycleOperation:n,gate:e.gate?{kind:String(e.gate.kind??`protected_action`),nextAction:typeof e.gate.next_action==`string`?e.gate.next_action:void 0,summary:String(e.gate.summary??t(`proposal.gate.default`))}:void 0,primaryLabel:e.action_kind===`operation.execute`?o?.kind===`result`?o.resultDeliveryVerified?t(`proposal.primary.operationResultVerified`):t(`proposal.primary.operationResultPending`):t(`proposal.primary.operationGroup`):e.action_kind===`team.plan`?t(`proposal.primary.teamPlan`):e.action_kind===`goal.create`?t(`proposal.primary.goalCreate`):e.action_kind===`goal.lifecycle`&&n===`stop`?t(`proposal.primary.lifecycleStop`):e.action_kind===`goal.lifecycle`&&n===`delete`?t(`proposal.primary.lifecycleDelete`):e.action_kind===`goal.lifecycle`?t(`proposal.primary.lifecycleResume`):e.action_kind===`todo.create`&&e.normalized_parameters.start_execution===!0?t(`proposal.primary.todoStart`):t(`proposal.primary.apply`),status:e.status===`applied`&&e.action_kind!==`operation.execute`&&r.interaction!==`completed`?`error`:Yx(e.status),title:c}}function eS(e){let t=e.toLowerCase().replace(/[^a-z0-9]+/g,`-`).replace(/^-+|-+$/g,``).slice(0,42);if(t)return t;let n=2166136261;for(let t of e)n^=t.codePointAt(0)??0,n=Math.imul(n,16777619);return`goal-${(n>>>0).toString(36)}`}function tS(e,t){let n=e.match(/[「“"]([^」”"]{2,80})[」”"]/u)?.[1];return n?n.trim():e.replace(/^(请|帮我|我想|给我|创建|新建|设置|please|i want to|create|set up)+/iu,``).replace(/(一个|新的)?\s*(goal|目标)/giu,``).replace(/[,。!?].*$/u,``).trim().slice(0,80)||t(`goal.defaultTitle`)}function nS(e,t){for(let n of e.split(/\r?\n/u)){let e=n.trim();for(let n of t){let t=e.match(RegExp(`^${n.replace(/[.*+?^${}()|[\]\\]/gu,`\\$&`)}\\s*[::]\\s*(.*)$`,`iu`));if(t?.[1]?.trim())return t[1].trim()}}return``}function rS(e,t){let n=nS(e,[`目标`,`Objective`]),r=nS(e,[`完成标准`,`Completion criteria`]),i=nS(e,[`执行边界(可选)`,`执行边界`,`边界`,`Execution boundary (optional)`,`Execution boundary`,`Boundary`]),a=(n||tS(e,t)).split(/[。;;\n]/u)[0].trim().slice(0,80)||t(`goal.defaultTitle`),o=[n||a,r?t(`goal.objectiveCompletion`,{criteria:r}):``,i?t(`goal.objectiveBoundary`,{boundary:i}):``].filter(Boolean).join(` +`),s=/(只读|不调用外部工具|不修改(?:仓库|代码|状态)|read.?only|do not (?:call|use) external tools|do not modify (?:repositories|repository|code|state))/iu.test(i||e);return{completionCriteria:r,executionBoundary:i,initialTodos:r?[t(`goal.initialTodo`,{criteria:r})]:[],objective:o,permission:s?`read_only`:`workspace_write_on_confirmation`,title:a}}function iS(e){let t=e.match(/(?:每|every)\s*(\d{1,3})\s*(?:分钟|minutes?)/iu)?.[1];if(t)return`${t}m`;let n=e.match(/(?:每|every)\s*(\d{1,2})\s*(?:小时|hours?)/iu)?.[1];return n?`${n}h`:/每小时|every hour|hourly/iu.test(e)?`1h`:(/每天|每日|早上|上午|daily|every day/iu.test(e),`1d`)}function aS(e,t){return/(每周|星期|周[一二三四五六日天]|weekly|every\s+(?:mon|tues|wednes|thurs|fri|satur|sun)day|\d{1,2}\s*[::]\s*\d{2})/iu.test(e)?t(`schedule.unsupportedCalendar`):null}function oS(e,t){return nS(e,[`检查内容`,`监控内容`,`目标`,`Check target`,`Monitor target`,`Target`])||e.replace(/^(?:为当前 Goal |for the current Goal )?(?:添加|配置|创建|add|configure|create)?\s*(?:定时检查|监控|scheduled check|monitor)[::]?/iu,``).split(/\r?\n/u)[0].trim()||t(`schedule.defaultTarget`)}function sS(e){return/(mr|pr).{0,8}(合并|merge)/iu.test(e)?`pr_merged`:/发布完成|上线完成|release (?:is )?complete|deployment (?:is )?complete/iu.test(e)?`release_complete`:`goal_complete`}function cS(e,t){let n=e.toLowerCase();return t.find(e=>n.includes(e.agentId.toLowerCase())||n.includes(e.label.toLowerCase()))}function lS(e){let t=nS(e,[`标题`,`任务标题`,`Todo 标题`]),n=nS(e,[`内容`,`任务内容`,`Todo 内容`]);if(t)return[t,n].filter(Boolean).join(`:`).slice(0,400);let r=e.match(/[「“"]([^」”"]{2,200})[」”"]/u)?.[1];return r?r.trim():e.replace(/^(请|帮我|给我|为当前 Goal |新增|新建|创建|添加|加上|加一个|记一个)+/u,``).replace(/^(一个\s*)?(普通\s*)?(todo|待办|任务)(?:\s*到\s*Tasks?)?[::\s]*/iu,``).replace(/[。;;,,]\s*(?:不要|不需要|无需|禁止|别|暂不).{0,80}(?:heartbeat|心跳|定时|监控|执行).*$/iu,``).replace(/[,,]\s*(并且|然后|再)?\s*(交给|分配给|让).+$/u,``).replace(/\s*(交给|分配给|让)\s+.+$/u,``).trim().slice(0,400)||`推进当前 Goal 的下一项工作`}var uS=new Set([`image/png`,`image/jpeg`,`image/webp`,`image/gif`]),dS=5242880,fS=4;function pS(e,t){return new Promise((n,r)=>{let i=new FileReader;i.onerror=()=>r(Error(t(`composer.imageReadError`,{name:e.name}))),i.onload=()=>n({dataUrl:String(i.result??``),id:crypto.randomUUID(),mimeType:e.type,name:e.name,size:e.size}),i.readAsDataURL(e)})}function mS({agents:e=[{agentId:`codex`,available:!0,capability:`代码与项目执行`,label:`Codex`}],callbacks:t={},goalArchiveLoadState:n={error:null,phase:`ready`},managerChannelBinding:r,managerRuntime:i,model:a,readOnly:o=!1,selectedAgentId:s,selectedGoalId:c,statusSourceControl:l}){let{locale:u,t:d}=Ji(),[f,p]=(0,B.useState)(c??null),[m,h]=(0,B.useState)(s??e.find(e=>e.available)?.agentId??`codex`),[g,_]=(0,B.useState)(null),[v,y]=(0,B.useState)(!1),[b,x]=(0,B.useState)(null),[S,C]=(0,B.useState)({}),[w,T]=(0,B.useState)(`chat`),[E,D]=(0,B.useState)(!1),[O,k]=(0,B.useState)(!1),[ee,te]=(0,B.useState)(!1),[A,j]=(0,B.useState)(()=>{try{let e=window.sessionStorage.getItem(`loopx-pw-composer-drafts`),t=e?JSON.parse(e):{};return t&&typeof t==`object`&&!Array.isArray(t)?t:{}}catch{return{}}}),[M,ne]=(0,B.useState)(!1),[N,P]=(0,B.useState)([]),[re,ie]=(0,B.useState)(null),[ae,F]=(0,B.useState)(null),[oe,I]=(0,B.useState)(()=>new Set),[se,L]=(0,B.useState)(()=>new Set),[ce,le]=(0,B.useState)(`idle`),[ue,de]=(0,B.useState)([]),[R,fe]=(0,B.useState)(!1),[pe,me]=(0,B.useState)(Rx),[he,ge]=(0,B.useState)({}),[_e,ve]=(0,B.useState)([]),ye=(0,B.useRef)(!1),be=(0,B.useRef)(NaN),xe=(0,B.useRef)(null),Se=(0,B.useRef)(null),Ce=(0,B.useRef)(null),we=(0,B.useRef)(new Set),Te=(0,B.useRef)(new Set),[Ee,De]=(0,B.useState)(null),z=c===void 0?f:c,Oe=s??m,ke=`${z??`manager`}:${Oe}`,Ae=A[ke]??``;(0,B.useEffect)(()=>{P([]),ie(null)},[ke]);function je(e,t){j(n=>{let r={...n};t?r[e]=t:delete r[e];try{window.sessionStorage.setItem(`loopx-pw-composer-drafts`,JSON.stringify(r))}catch{}return r})}function Me(e){je(ke,e)}function Ne(e){let t=A[ke]?.trimEnd();Me(t?`${t}\n${e}`:e),window.requestAnimationFrame(()=>xe.current?.focus())}(0,B.useEffect)(()=>{let e=xe.current;e&&(e.style.height=`auto`,e.style.height=`${Math.min(e.scrollHeight,120)}px`)},[Ae]);let Pe=(0,B.useMemo)(()=>a.goals.map(e=>{let t=he[e.goalId];return t?{...e,repository:{branch:t.branch,identity:t.identity,label:t.label,readOnly:!0}}:e}),[he,a.goals]),Fe=(0,B.useMemo)(()=>Pe.filter(e=>Ly(e)===`needs_you`).length,[Pe]),Ie=(0,B.useMemo)(()=>Pe.filter(e=>Ly(e)===`needs_you`&&(e.needsYouBlocking||e.state===`等你`)).length,[Pe]),Le=Pe.find(e=>e.goalId===z)??null,Re=g?.kind===`settings`,ze=z,Be=(0,B.useMemo)(()=>{let e=Object.values(S).filter(e=>e.actionKind===`heartbeat.bind`&&e.goalId&&e.status===`applied`).map(e=>({id:`schedule:${e.goalId}:heartbeat`,kind:`schedule`,schedule:{agentId:Oe,executionHistory:[],goalId:e.goalId,label:e.title,nextRunAt:d(`drawer.schedulePending`),notificationRule:d(`drawer.scheduleDefaultNotification`),schedule:e.fields.find(e=>e.key===`cadence`)?.value??d(`schedule.summary`),scheduleId:`${e.goalId}:heartbeat`,scheduleKind:`heartbeat`,status:e.status===`applied`?`active`:`draft`,stopCondition:e.fields.find(e=>e.key===`stop_condition`)?.value??d(`drawer.scheduleDefaultStop`),timezone:e.fields.find(e=>e.key===`timezone`)?.value??`Asia/Shanghai`}})),t=[...Jx(a,ze,d),...a.timeline??[],...e,...Hx(Object.values(S)).filter(e=>e.actionKind!==`heartbeat.bind`||e.status!==`applied`).map(e=>({id:`proposal:${e.previewId}`,kind:`proposal`,proposal:e}))];return[...new Map(t.map(e=>[e.id,e])).values()].filter(e=>e.kind!==`proposal`||![`stale`,`error`].includes(e.proposal.status)||ue.includes(e.proposal.previewId)).filter(e=>!z||e.kind===`message`?!0:e.kind===`proposal`?!e.proposal.goalId||e.proposal.goalId===z:e.kind===`attention`?e.attention.goalId===z:e.kind===`run`?e.run.goalId===z:e.kind===`schedule`?e.schedule.goalId===z:e.output.goalId===z)},[ze,a,S,Oe,z,ue,d]),Ve=(0,B.useMemo)(()=>b?Be.filter(e=>e.kind===`message`?!0:e.kind===`run`?e.run.runId===b.runId:e.kind===`output`&&e.output.runId===b.runId):Be,[b,Be]);(0,B.useEffect)(()=>{if(!b)return;let e=Be.find(e=>e.kind===`run`&&e.run.runId===b.runId);!e||e.kind!==`run`||JSON.stringify({completedSteps:b.completedSteps,latestActivity:b.latestActivity,messages:b.sessionMessages,sessionStatus:b.sessionStatus,status:b.status,totalSteps:b.totalSteps})!==JSON.stringify({completedSteps:e.run.completedSteps,latestActivity:e.run.latestActivity,messages:e.run.sessionMessages,sessionStatus:e.run.sessionStatus,status:e.run.status,totalSteps:e.run.totalSteps})&&x(e.run)},[b,Be]);let He=(0,B.useMemo)(()=>Be.flatMap(e=>e.kind===`message`?[e.message]:[]),[Be]),Ue=(0,B.useMemo)(()=>Le?Be.flatMap(e=>e.kind===`message`?[e.message]:[]):[],[Be,Le]);(0,B.useEffect)(()=>{Le||E||He.some(e=>e.pending)&&k(!0)},[E,He,Le]),(0,B.useEffect)(()=>{!Le||w===`chat`||Ue.some(e=>e.pending)&&te(!0)},[Ue,Le,w]);let We=(0,B.useMemo)(()=>Be.filter(e=>e.kind===`message`||e.kind===`proposal`&&ue.includes(e.proposal.previewId)),[Be,ue]),Ge=We[We.length-1],Ke=Ge?.kind===`message`?Ge.message.text.length:0;(0,B.useEffect)(()=>{if(!E||!Se.current)return;let e=window.requestAnimationFrame(()=>{Se.current&&(Se.current.scrollTop=Se.current.scrollHeight)});return()=>window.cancelAnimationFrame(e)},[We.length,E,Ke]);let qe=(0,B.useMemo)(()=>{if(g?.kind===`settings`)return null;if(g?.kind===`attention`)return{kind:`attention`,item:Jd(g.item,a.attentionHistory??a.userTodos)};if(g?.kind===`goal`){let e=Pe.find(e=>e.goalId===g.item.goalId);return e?{item:e,kind:`goal`}:g}if(g?.kind!==`run`)return g;let e=Be.find(e=>e.kind===`run`&&e.run.runId===g.item.runId);return e?{item:e.run,kind:`run`}:g},[Be,g,Pe,a.attentionHistory,a.userTodos]);(0,B.useEffect)(()=>{if(o){ge({}),ve([]);return}let e=!1;return Promise.all([Yg(),o_()]).then(([t,n])=>{e||(ge(Object.fromEntries(t.map(e=>[e.goal_id,e.repository]))),ve(n))}).catch(()=>{}),()=>{e=!0}},[o]),(0,B.useEffect)(()=>{if(!R)return;function e(e){e.key===`Escape`&&fe(!1)}return document.addEventListener(`keydown`,e),()=>document.removeEventListener(`keydown`,e)},[R]),(0,B.useEffect)(()=>{if(z||!Be.length)return;if(!ye.current){ye.current=!0;try{be.current=Date.parse(window.localStorage.getItem(`loopx-pw-last-visit`)??``),window.localStorage.setItem(`loopx-pw-last-visit`,new Date().toISOString())}catch{be.current=NaN}}let e=be.current,t=Be.filter(e=>e.kind===`run`).map(e=>e.run),n=t=>{let n=Date.parse(t??``);return!Number.isNaN(e)&&!Number.isNaN(n)&&n>e},r={attention:Fe,done:t.filter(e=>e.status===`completed`&&n(e.latestActivity)).length,failed:t.filter(e=>(e.status===`failed`||e.status===`interrupted`)&&n(e.latestActivity)).length};De(e=>e?.attention===r.attention&&e.done===r.done&&e.failed===r.failed?e:r)},[Be,Fe,z]),(0,B.useEffect)(()=>{if(o){C({});return}let e=!1;return Vh(z?{goalId:z}:{contextKind:`manager`}).then(t=>{if(e)return;let n=Object.fromEntries(t.filter(e=>[`preview_ready`,`gated`,`deferred`,`applying`].includes(e.status)||e.action_kind===`operation.execute`&&e.status===`applied`).map(e=>{let t=$x(e,d);return[t.previewId,t]}));C(e=>({...e,...n}))}).catch(()=>{}),()=>{e=!0}},[o,z,d]);async function Je(e,n={}){if(o)throw Error(d(`source.readOnlyWriteError`));let r;try{r=t.onPreviewAction?await t.onPreviewAction(e):$x(await zh(e),d)}catch(t){if(!(t instanceof Ph)||t.payload.error_code!==`action_preview_gate`)throw t;let n=t.payload.gate&&typeof t.payload.gate==`object`?t.payload.gate:{},i=(Array.isArray(n.candidates)?n.candidates:[]).flatMap(e=>{if(!e||typeof e!=`object`)return[];let t=e;return typeof t.workspace_ref==`string`&&typeof t.label==`string`?[{label:t.label,workspaceRef:t.workspace_ref}]:[]}),a=String(n.kind??`workspace_selection_required`),o=a===`agent_binding_required`||a===`agent_identity_selection_required`;r={actionKind:e.actionKind,fields:i.map(e=>({key:`workspace_ref:${e.workspaceRef}`,label:e.label,value:e.workspaceRef})),gate:{kind:a,nextAction:typeof n.next_action==`string`?n.next_action:void 0,summary:String(n.summary??d(`proposal.workspaceGate.defaultSummary`))},impact:d(o?`proposal.workspaceGate.agentImpact`:`proposal.workspaceGate.selectionImpact`),previewId:`workspace-choice-${Date.now().toString(36)}`,sourceRequest:e,status:`gated`,title:d(o?`proposal.workspaceGate.agentTitle`:`proposal.workspaceGate.selectionTitle`),workspaceCandidates:i}}return de(e=>e.includes(r.previewId)?e:[...e,r.previewId]),C(e=>({...e,[r.previewId]:r})),n.select!==!1&&_({item:r,kind:`proposal`}),r}function Ye(){it(null),je(`manager:${Oe}`,d(`composer.createGoalTemplate`)),window.requestAnimationFrame(()=>xe.current?.focus())}async function Xe(e,n){fe(!1);let r={delete:`Deleted from the owner workspace`,resume:`Resumed from the owner workspace`,stop:`Stopped from the owner workspace`},i={delete:d(`proposal.summary.lifecycleDelete`,{title:e.title}),resume:d(`proposal.summary.lifecycleResume`,{title:e.title}),stop:d(`proposal.summary.lifecycleStop`,{title:e.title})},a=null,o=!1;try{if(n===`stop`){if(we.current.has(e.goalId))return;we.current.add(e.goalId),I(new Set(we.current)),_(null),a={goalId:e.goalId,next:`stopped`,optimisticApplied:!0,previous:e.activationState},F(d(`feedback.applying`,{title:i.stop})),t.onGoalActivationStateChange?.(e.goalId,`stopped`)}if(t.onExecuteGoalLifecycle){if(n===`delete`)throw Error(`The selected status source does not authorize Goal deletion.`);let a=await t.onExecuteGoalLifecycle({goalId:e.goalId,operation:n,reason:r[n]});if(!a.projectionVerified)throw Error(`Goal lifecycle projection did not verify.`);o=!0,t.onGoalActivationStateChange?.(e.goalId,a.activationState),F(d(`feedback.completed`,{title:i[n]})),n===`stop`&&it(null),await et([e.goalId]);return}let s=await Je({actionKind:`goal.lifecycle`,context:{kind:`goal_directory`,goal_id:e.goalId},idempotencyKey:`workspace-goal-${n}-${e.goalId}-${Date.now().toString(36)}`,normalizedParameters:{goal_id:e.goalId,operation:n,reason:r[n]},summary:i[n]},{select:n!==`stop`});if(s.goalId!==e.goalId||s.lifecycleOperation!==n)throw _(null),Error(d(`actionReview.targetChanged`));n===`stop`&&(s.reviewPlan?.interaction===`direct`?(o=!0,await tt(s,{lifecycleProjection:a??void 0,presentation:`feedback`})):(a&&t.onGoalActivationStateChange?.(a.goalId,a.previous),F(s.gate?d(`feedback.gateRequired`,{summary:s.gate.summary}):d(`feedback.notCompleted`,{status:s.status})),_({item:s,kind:`proposal`})))}catch(e){a&&!o&&t.onGoalActivationStateChange?.(a.goalId,a.previous),F(d(`feedback.executionFailed`,{error:e instanceof Error?e.message:String(e)}))}finally{n===`stop`&&(we.current.delete(e.goalId),I(new Set(we.current)))}}function Ze(e,t){Me(d(t?e===`heartbeat`?`composer.heartbeatTemplate`:`composer.monitorTemplate`:e===`heartbeat`?`composer.heartbeatTemplateWithoutGoal`:`composer.monitorTemplateWithoutGoal`)),_(null),window.requestAnimationFrame(()=>xe.current?.focus())}async function Qe(e,n,r=``){let i=await t.onRequestScheduleConfig?.(e,n);if(i){de(e=>e.includes(i.previewId)?e:[...e,i.previewId]),C(e=>({...e,[i.previewId]:i})),_({item:i,kind:`proposal`});return}if(!n){Me(d(e===`heartbeat`?`composer.heartbeatGoalQuestion`:`composer.monitorGoalQuestion`));return}let a=Date.now().toString(36);await Je({actionKind:e===`heartbeat`?`heartbeat.bind`:`monitor.create`,context:{kind:`schedule`,goal_id:n},idempotencyKey:`workspace-${e}-${n}-${a}`,normalizedParameters:e===`heartbeat`?{agent_id:Oe,cadence:iS(r),goal_id:n,stop_condition:sS(r),timezone:`Asia/Shanghai`}:{agent_id:Oe,cadence:iS(r),goal_id:n,stop_condition:sS(r),target:oS(r,d),target_key:`goal-${n}`,timezone:`Asia/Shanghai`},summary:e===`heartbeat`?d(`proposal.summary.heartbeat`):d(`proposal.summary.monitor`,{target:oS(r,d)})})}async function $e(e){if(!Te.current.has(e.todoId)){Te.current.add(e.todoId),L(new Set(Te.current)),F(d(`feedback.preparingPreview`,{title:e.text}));try{await Je({actionKind:`todo.update`,context:{goal_id:e.goalId,kind:`todo`,todo_id:e.todoId},idempotencyKey:`workspace-todo-${e.todoId}-complete-${Date.now().toString(36)}`,normalizedParameters:{goal_id:e.goalId,operation:`complete`,todo_id:e.todoId},summary:d(`tasks.markComplete`,{name:e.text})}),F(null)}catch(e){F(d(`feedback.previewFailed`,{error:e instanceof Error?e.message:String(e)}))}finally{Te.current.delete(e.todoId),L(new Set(Te.current))}}}function et(e){let n=t.onReconcileStatus,r=n?n({invalidateGoalIds:e}):t.onRefresh?.();return Promise.resolve(r).catch(()=>{F(d(`feedback.goalRefreshFailed`))})}async function tt(e,n={}){if(e.reviewPlan&&!e.reviewPlan.canApply)return;let r=n.presentation!==`feedback`,i=e.actionKind===`goal.lifecycle`&&e.goalId&&(e.lifecycleOperation===`stop`||e.lifecycleOperation===`resume`)?{goalId:e.goalId,next:e.lifecycleOperation===`stop`?`stopped`:`active`,optimisticApplied:!1,previous:a.goals.find(t=>t.goalId===e.goalId)?.activationState??(e.lifecycleOperation===`stop`?`active`:`stopped`)}:null,o=n.lifecycleProjection??i;F(d(`feedback.applying`,{title:e.title}));let s={...e,reviewPlan:e.reviewPlan?{...e.reviewPlan,interaction:`pending`,reason:`apply_pending`,canApply:!1}:void 0,status:`applying`};C(t=>({...t,[e.previewId]:s})),r&&_({item:s,kind:`proposal`}),o&&!o.optimisticApplied&&t.onGoalActivationStateChange?.(o.goalId,o.next);try{if(t.onApplyProposal){await t.onApplyProposal(e);let n={...e,status:`applied`};C(t=>({...t,[e.previewId]:n})),r&&_({item:n,kind:`proposal`}),F(d(`feedback.completed`,{title:e.title})),e.actionKind===`goal.lifecycle`&&((e.lifecycleOperation===`stop`||e.lifecycleOperation===`delete`)&&it(null),e.lifecycleOperation===`delete`&&e.goalId&&t.onGoalDeleted?.(e.goalId),et(e.goalId?[e.goalId]:void 0));return}let n=await Hh(e.previewId);if(n.proposal.proposal_id!==e.previewId||n.proposal.action_kind!==e.actionKind||e.actionKind===`goal.lifecycle`&&(n.proposal.normalized_parameters.goal_id!==e.goalId||Qx(n.proposal)!==e.lifecycleOperation))throw new Ph(d(`actionReview.targetChanged`),{error_code:`action_response_mismatch`});let i=$x(n.proposal,d);if(C(t=>({...t,[e.previewId]:i})),r&&_({item:i,kind:`proposal`}),i.reviewPlan?.interaction!==`completed`){o&&t.onGoalActivationStateChange?.(o.goalId,o.previous),_({item:i,kind:`proposal`}),F(n.proposal.status===`stale`?d(`feedback.stale`):d(`actionReview.${i.reviewPlan.reason}`));return}F(d(`feedback.completed`,{title:i.title})),i.actionKind===`todo.create`&&await t.onRefresh?.(),i.actionKind===`goal.lifecycle`&&(i.lifecycleOperation===`stop`||i.lifecycleOperation===`delete`)&&it(null),i.actionKind===`goal.lifecycle`&&i.lifecycleOperation===`delete`&&i.goalId&&t.onGoalDeleted?.(i.goalId),i.actionKind===`goal.lifecycle`&&et(i.goalId?[i.goalId]:void 0)}catch(n){if(o&&t.onGoalActivationStateChange?.(o.goalId,o.previous),n instanceof Ph&&n.payload.error_code===`protected_action`){let r=n.payload.gate,i=r&&typeof r==`object`?r:{},a={...e,reviewPlan:e.reviewPlan?{...e.reviewPlan,interaction:`gated`,reason:`authority_gate`,canApply:!1}:void 0,gate:{kind:String(i.kind??`protected_action`),nextAction:typeof i.next_action==`string`?i.next_action:void 0,summary:String(i.summary??n.message)},status:`gated`};C(t=>({...t,[e.previewId]:a})),_({item:a,kind:`proposal`}),F(d(`feedback.gateRequired`,{summary:a.gate.summary})),e.actionKind===`goal.create`&&e.goalId&&(t.onRefresh?.(),it(e.goalId));return}let r=n instanceof Ph&&ky(n.payload),i=n instanceof Ph&&n.payload.error_code===`action_response_mismatch`,a={...e,reviewPlan:e.reviewPlan?{...e.reviewPlan,interaction:r?`refresh`:`repair`,reason:i?`readback_unverified`:r?`stale_proposal`:`apply_failed`,canApply:!1}:void 0,errorMessage:n instanceof Error?n.message:String(n),status:r?`stale`:`error`};C(t=>({...t,[e.previewId]:a})),_({item:a,kind:`proposal`}),F(d(`feedback.executionFailed`,{error:a.errorMessage}))}}let nt={...t,onOpenRunSession:async e=>{e.goalId!==z&&it(e.goalId),T(`chat`),await t.onOpenRunSession?.(e),x(e),_(null)},onOpenGoal:e=>{it(e),et([e])},onOpenGoalView:e=>{T(e),e===`chat`&&x(null),_(null)},onOpenOutput:e=>{e.goalId!==z&&it(e.goalId),T(`files`),t.onOpenOutput?.(e)},onApplyProposal:tt,onCancelProposal:async e=>{_(null),C(t=>{let n={...t};return delete n[e.previewId],n});try{t.onCancelProposal?.(e),t.onCancelProposal||await Uh(e.previewId)}catch(t){C(t=>({...t,[e.previewId]:e})),F(d(`feedback.cancelFailed`,{error:t instanceof Error?t.message:String(t)}))}},onTransitionProposal:async(e,t)=>{let n=$x(await Wh(e.previewId,t),d);de(e=>e.includes(n.previewId)?e:[...e,n.previewId]),C(r=>{let i={...r};return t===`regenerate`&&delete i[e.previewId],i[n.previewId]=n,i}),_({item:n,kind:`proposal`})},onSelectWorkspaceCandidate:async(e,t)=>{e.sourceRequest&&(C(t=>{let n={...t};return delete n[e.previewId],n}),await Je({...e.sourceRequest,idempotencyKey:`${e.sourceRequest.idempotencyKey}-${t}`,normalizedParameters:{...e.sourceRequest.normalizedParameters,workspace_ref:t}}))},onPreviewAction:Je,onRequestScheduleConfig:(e,t)=>Ze(e,t),onOpenNotificationSettings:e=>_({goalId:e,kind:`settings`,tab:`lark`}),onFetchNotificationTargets:()=>pg(),onSetupGoalChannel:e=>hg(e),onToggleGoalAutoNotify:e=>gg(e),onUpdateSchedule:async(e,t)=>{let n=Date.now().toString(36),r=e.scheduleKind===`heartbeat`;await Je({actionKind:r?`heartbeat.bind`:`monitor.update`,context:{kind:`schedule`,goal_id:e.goalId},idempotencyKey:`workspace-monitor-${e.scheduleId}-${t}-${n}`,normalizedParameters:{agent_id:e.agentId??Oe,...!r&&t===`run_now`?{endpoint_id:Oe}:{},...t===`edit`?{cadence:`2h`,...r?{timezone:e.timezone??`Asia/Shanghai`}:{}}:{},goal_id:e.goalId,operation:t,...!r&&t===`run_now`&&e.sessionId?{session_id:e.sessionId}:{},...r?{}:{todo_id:e.scheduleId}},summary:t===`pause`?`暂停自动运行:${e.label}`:t===`resume`?`恢复自动运行:${e.label}`:t===`run_now`?`立即运行:${e.label}`:t===`stop`?`停止自动运行:${e.label}`:`编辑自动运行生命周期:${e.label}`})}},rt=o?{onOpenGoal:nt.onOpenGoal,onOpenGoalView:nt.onOpenGoalView,onOpenOutput:nt.onOpenOutput}:nt;function it(e){p(e),D(!1),k(!1),te(!1),x(null),_(null),T(`tasks`),fe(!1),t.onSelectGoal?.(e)}function at(e){h(e),t.onSelectAgent?.(e)}function ot(e){me(e),zx(e)}async function st(n){let r=n?[]:N,i=(n??Ae).trim()||(r.length?d(`composer.imageAnalysisPrompt`):``);if(!(!i||M)){n||(Me(``),P([])),ie(null),ne(!0);try{if(r.length){z?w!==`chat`&&te(!0):k(!0);let e=await t.onSendMessage?.(i,Oe,z,r);e&&await Je(e);return}let n=fb(i,{agents:e.map(e=>({agentId:e.agentId,label:e.label})),goalId:z,todos:(Le?.agentTodos??[]).map(e=>({text:e.text,todoId:e.todoId}))});if(n.route===`clarify`){Me(i);let e=d(`composer.clarifySingleAction`);n.missingFields.includes(`resume_when`)&&(e=d(`composer.clarifyDefer`)),F(e);return}if(n.actionKind===`goal.create`){let e=rS(i,d),t=eS(e.title);await Je({actionKind:`goal.create`,context:{kind:`manager`,goal_id:null,natural_language:i},idempotencyKey:`workspace-goal-intent-${t}-${Date.now().toString(36)}`,normalizedParameters:{agent_id:Oe,completion_criteria:e.completionCriteria,execution_boundary:e.executionBoundary,goal_id:t,heartbeat:{cadence:iS(i),enabled:n.normalizedParameters.heartbeat_enabled===!0,timezone:`Asia/Shanghai`},initial_todos:e.initialTodos,objective:e.objective,permission:e.permission,stop_condition:sS(i),title:e.title,workspace_ref:`current`},summary:d(`proposal.summary.goalCreate`,{title:e.title})});return}if(z&&n.actionKind===`heartbeat.bind`){await Qe(`heartbeat`,z,i);return}if(z&&n.actionKind===`monitor.create`){let e=aS(i,d);if(e){Me(i),F(e);return}await Qe(`monitor`,z,i);return}let a=cS(i,e);if(z&&a&&n.actionKind===`agent.bind`){await Je({actionKind:`agent.bind`,context:{kind:`goal`,goal_id:z,natural_language:i},idempotencyKey:`workspace-agent-bind-${z}-${a.agentId}-${Date.now().toString(36)}`,normalizedParameters:{agent_id:a.agentId,goal_id:z},summary:`将 ${a.label} 绑定到 ${Le?.title??z}`});return}if(z&&n.actionKind===`todo.create`){if(n.normalizedParameters.start_execution===!0){await Je({actionKind:`todo.create`,context:{kind:`goal`,goal_id:z,natural_language:i},idempotencyKey:`workspace-task-start-${z}-${Date.now().toString(36)}`,normalizedParameters:{endpoint_id:a?.agentId??Oe,goal_id:z,start_execution:!0,text:i},summary:`交给 Agent 执行:${i.slice(0,120)}`});return}let e=a?.agentId??(/(交给|分配给|让).{0,24}(agent|codex|claude|kiro|kimi)/iu.test(i)?Oe:null);await Je({actionKind:`todo.create`,context:{kind:`goal`,goal_id:z,natural_language:i},idempotencyKey:`workspace-todo-create-${z}-${Date.now().toString(36)}`,normalizedParameters:{...e?{endpoint_id:e}:{},goal_id:z,text:lS(i)},summary:`创建 Todo:${lS(i)}`});return}let o=Le?.agentTodos.find(e=>i.includes(e.todoId)||i.includes(e.text)),s=typeof n.normalizedParameters.operation==`string`?n.normalizedParameters.operation:null;if(z&&o&&n.actionKind===`todo.update`&&s){await Je({actionKind:`todo.update`,context:{kind:`todo`,goal_id:z,todo_id:o.todoId,natural_language:i},idempotencyKey:`workspace-todo-update-${o.todoId}-${s}-${Date.now().toString(36)}`,normalizedParameters:{agent_id:Oe,...s===`reassign`&&a?{endpoint_id:a.agentId}:{},...s===`block`?{note:i}:{},...s===`defer`&&typeof n.normalizedParameters.resume_when==`string`?{resume_when:n.normalizedParameters.resume_when}:{},goal_id:z,operation:s,todo_id:o.todoId},summary:`更新 Todo:${o.text}`});return}z?w!==`chat`&&te(!0):k(!0);let c=await t.onSendMessage?.(i,Oe,z);c&&await Je(c)}catch(e){n||(Me(i),P(r));let t=e instanceof Error?e.message:d(`feedback.sendGenericError`);F(d(`feedback.sendFailed`,{error:t}))}finally{ne(!1)}}}let ct=e.find(e=>e.agentId===Oe)?.label??Oe,lt=!Le&&Ae.startsWith(d(`composer.createGoalDraftLead`)),ut=Be.filter(e=>e.kind===`run`&&!!e.run.sessionId&&!!e.run.canInterrupt&&(e.run.status===`running`||e.run.status===`queued`)).length;async function dt(e){if(!e?.length)return;let t=fS-N.length,n=Array.from(e).slice(0,Math.max(0,t)),r=n.find(e=>!uS.has(e.type)),i=n.find(e=>e.size>dS);if(t<=0){ie(d(`composer.imageCountError`,{count:fS}));return}if(r){ie(d(`composer.imageTypeError`));return}if(i){ie(d(`composer.imageSizeError`,{size:dS/1024/1024}));return}try{let t=await Promise.all(n.map(e=>pS(e,d)));P(e=>[...e,...t].slice(0,fS)),ie(e.length>n.length?d(`composer.imageCountError`,{count:fS}):null)}catch(e){ie(e instanceof Error?e.message:d(`composer.imageReadGenericError`))}finally{Ce.current&&(Ce.current.value=``)}}function ft(e){let t=Array.from(e.clipboardData.items).filter(e=>e.kind===`file`&&e.type.startsWith(`image/`)).flatMap(e=>{let t=e.getAsFile();return t?[t]:[]});t.length&&(e.preventDefault(),dt(t))}async function pt(){let e=await o_();ve(e)}async function mt(){await Promise.all([pt(),t.onRefresh?.()])}async function ht(){if(!(!t.onRefresh||ce===`loading`)){le(`loading`);try{await t.onRefresh(),le(`done`)}catch{le(`error`)}window.setTimeout(()=>le(`idle`),1800)}}return Re?(0,V.jsx)(Fx,{callbacks:rt,focusGoalConnection:!!(g?.kind===`settings`&&g.goalId),goalNotifications:a.goalNotifications??[],goals:Pe,initialGoalId:g?.kind===`settings`?g.goalId??z:z,initialTab:g?.kind===`settings`?g.tab??`lark`:`lark`,onChanged:()=>void mt(),onClose:()=>_(null),onThemeChange:ot,theme:pe}):(0,V.jsx)(Bx,{drawer:qe?(0,V.jsx)(xb,{agents:e,attentionHistory:a.attentionHistory??a.userTodos,onSelectAttention:e=>_({kind:`attention`,item:e}),callbacks:rt,goalNotifications:a.goalNotifications??[],goals:Pe,inspectorExpanded:v,larkConnections:o?[]:_e,onClose:()=>{qe.kind===`proposal`&&[`applied`,`rejected`].includes(qe.item.status)&&(qe.item.actionKind!==`heartbeat.bind`||qe.item.status!==`applied`)&&C(e=>{let t={...e};return delete t[qe.item.previewId],t}),y(!1),_(null)},onToggleInspectorSize:()=>y(e=>!e),readOnly:o,runs:Be.flatMap(e=>e.kind===`run`?[e.run]:[]),selection:qe}):null,drawerMode:qe?.kind===`todo`?v?`inspector-full`:`inspector`:`panel`,drawerOpen:qe!==null,mobileSidebarOpen:R,onCloseMobileSidebar:()=>fe(!1),theme:pe,main:(0,V.jsxs)(`div`,{className:`personal-channel`,children:[(0,V.jsx)(Gy,{agents:e,managerChatOpen:E,managerChannelBinding:r,managerRuntime:i,mobileNavigationOpen:R,onOpenGoalCapabilities:Le?()=>_({goalId:Le.goalId,kind:`settings`,tab:`capabilities`}):void 0,onOpenGoalDetail:Le&&!Le.loadState?()=>_({item:Le,kind:`goal`}):void 0,onRefresh:t.onRefresh?()=>void ht():void 0,onOpenNavigation:()=>fe(!0),onOpenManagerChat:()=>{k(!1),D(!0)},onSelectGoalTab:e=>{T(e),e===`chat`&&(x(null),te(!1))},onSelectAgent:at,onReturnManagerHome:()=>{D(!1),k(!1),window.requestAnimationFrame(()=>Se.current?.scrollTo({behavior:`smooth`,top:0}))},selectedAgentId:Oe,refreshState:ce,readOnlySourceLabel:o?l?.activeSource.label:void 0,selectedGoal:Le,selectedGoalTab:w}),(0,V.jsxs)(`div`,{className:`personal-channel-scroll`,ref:Se,children:[!Le&&!E&&Ee&&Ee.done+Ee.failed+Ee.attention>0?(0,V.jsxs)(`section`,{className:`personal-digest-card`,"aria-label":d(`digest.away`),children:[(0,V.jsx)(`strong`,{children:d(`digest.away`)}),(0,V.jsxs)(`div`,{className:`personal-digest-stats`,children:[(0,V.jsxs)(`span`,{children:[(0,V.jsx)(`b`,{children:Ee.done}),d(`digest.completed`)]}),(0,V.jsxs)(`span`,{children:[(0,V.jsx)(`b`,{children:Ee.failed}),d(`digest.failed`)]}),(0,V.jsxs)(`span`,{children:[(0,V.jsx)(`b`,{children:Ee.attention}),d(`digest.needsYou`)]})]})]}):null,!Le&&!E?(0,V.jsxs)(`section`,{className:`personal-manager-greeting`,children:[(0,V.jsx)(`span`,{children:(0,V.jsx)(nm,{size:20})}),(0,V.jsxs)(`div`,{children:[(0,V.jsx)(`strong`,{children:d(`home.greeting`)}),(0,V.jsx)(`p`,{children:a.goals.some(e=>e.activationState===`active`&&e.loadState)?d(`startup.partial`):(0,V.jsxs)(V.Fragment,{children:[d(`home.waitingCount`,{count:Fe}),` `,d(`home.blockingSummary`,{count:Ie})]})})]})]}):null,Le?.loadState?(0,V.jsx)(`section`,{className:`personal-manager-greeting`,role:`status`,"data-testid":`goal-status-loading`,children:(0,V.jsxs)(`div`,{children:[(0,V.jsx)(`strong`,{children:d(Le.loadState===`error`?`startup.goalError`:`startup.goalLoading`)}),(0,V.jsx)(`p`,{children:d(Le.loadError?`startup.error.${Le.loadError}`:`startup.independent`)}),Le.loadState===`error`?(0,V.jsx)(`button`,{className:`min-h-11 rounded-md border px-3 py-2 text-sm`,type:`button`,onClick:()=>void t.onRefresh?.(),children:d(`startup.retry`)}):null]})}):Le&&w===`tasks`?(0,V.jsx)(qb,{historyEnabled:!o,goal:Le,items:Be,onDraftTaskFromMessage:o?void 0:e=>{Me(`创建一个 Task:${Vx(e)}`),F(d(`feedback.taskDraftCreated`)),window.requestAnimationFrame(()=>xe.current?.focus())},onOpenChat:()=>T(`chat`),onQuickComplete:o?void 0:$e,onSelect:_,quickCompletingTodoIds:se,selectedTodoId:qe?.kind===`todo`?qe.item.todoId:null,userTodos:a.userTodos}):Le&&w===`files`?(0,V.jsx)(Gx,{items:Be.filter(e=>e.kind===`output`),onSelect:_,reportState:a.periodicReports}):!Le&&!E?(0,V.jsx)(Wx,{goals:Pe,onRetry:()=>void t.onRefresh?.(),onSelectGoal:it,systemHealth:a.systemHealth}):Le?(0,V.jsxs)(V.Fragment,{children:[Le&&b?.goalId===Le.goalId?(0,V.jsx)(qx,{onClose:()=>x(null),onOpenDetails:()=>_({item:b,kind:`run`}),run:b}):null,(0,V.jsx)(ib,{items:Ve,onSelect:_,selectedGoal:Le})]}):(0,V.jsx)(ib,{items:We,onSelect:_,selectedGoal:null})]}),(0,V.jsx)(`div`,{className:`personal-composer-wrap`,children:o?(0,V.jsxs)(`div`,{className:`personal-read-only-notice`,children:[(0,V.jsx)(`strong`,{children:d(`source.readOnlyNoticeTitle`)}),(0,V.jsx)(`span`,{children:d(`source.readOnlyNoticeDescription`)})]}):(0,V.jsxs)(V.Fragment,{children:[!Le&&!E&&O&&He.length?(0,V.jsx)(Kx,{messages:He,onClose:()=>k(!1),onOpenConversation:()=>{k(!1),D(!0)}}):null,Le&&w!==`chat`&&ee&&Ue.length?(0,V.jsx)(Kx,{agentLabel:ct,messages:Ue,onClose:()=>te(!1),onDraftTask:w===`tasks`?e=>{Me(`创建一个 Task:${Vx(e)}`),F(d(`feedback.taskDraftCreated`)),window.requestAnimationFrame(()=>xe.current?.focus())}:void 0,onOpenConversation:()=>{te(!1),T(`chat`)},title:`${Le.title} · ${ct}`}):null,ae?(0,V.jsxs)(`div`,{className:`personal-action-feedback`,role:`status`,children:[(0,V.jsx)(`span`,{children:ae}),(0,V.jsx)(`button`,{"aria-label":d(`common.closeActionReceipt`),onClick:()=>F(null),type:`button`,children:(0,V.jsx)(ah,{size:14})})]}):null,(0,V.jsx)(`p`,{className:`personal-composer-hint`,children:Le?ut>0?d(`composer.goalRunningHint`,{agent:ct,count:ut}):d(`composer.goalMessageHint`,{agent:ct}):d(`composer.managerMessageHint`)}),Le?(0,V.jsxs)(`div`,{className:`personal-quick-prompts`,children:[(0,V.jsxs)(`button`,{"aria-label":d(`composer.nextAction`),className:`is-draft`,onClick:()=>Ne(d(`composer.nextActionPrompt`)),title:d(`composer.prepareDraft`),type:`button`,children:[(0,V.jsx)(Mm,{size:13}),(0,V.jsx)(`span`,{children:d(`composer.nextAction`)}),(0,V.jsx)(`small`,{className:`personal-prompt-subtle`,children:d(`composer.draft`)})]}),(0,V.jsxs)(`button`,{className:`is-immediate`,disabled:M,onClick:()=>void st(d(`composer.agentProgressPrompt`)),title:d(`composer.immediate`),type:`button`,children:[(0,V.jsx)(Km,{size:13}),(0,V.jsx)(`span`,{children:d(`composer.agentProgress`)}),(0,V.jsx)(`em`,{className:`personal-prompt-badge`,children:d(`composer.immediate`)})]}),(0,V.jsxs)(`button`,{"aria-label":d(`composer.monitor`),className:`is-draft`,onClick:()=>Ze(`monitor`,z),title:d(`composer.monitorHint`),type:`button`,children:[(0,V.jsx)(im,{size:13}),(0,V.jsx)(`span`,{children:d(`composer.monitor`)}),(0,V.jsx)(`small`,{className:`personal-prompt-subtle`,children:d(`composer.draft`)})]})]}):(0,V.jsxs)(`div`,{className:`personal-quick-prompts`,children:[(0,V.jsxs)(`button`,{"aria-label":d(`composer.globalTasks`),className:`is-draft`,onClick:()=>Ne(d(`composer.globalTasksPrompt`)),title:d(`composer.prepareDraft`),type:`button`,children:[(0,V.jsx)(Mm,{size:13}),(0,V.jsx)(`span`,{children:d(`composer.globalTasks`)}),(0,V.jsx)(`small`,{className:`personal-prompt-subtle`,children:d(`composer.draft`)})]}),(0,V.jsxs)(`button`,{className:`is-immediate`,disabled:M,onClick:()=>void st(d(`composer.globalProgressPrompt`)),title:d(`composer.immediate`),type:`button`,children:[(0,V.jsx)(Km,{size:13}),(0,V.jsx)(`span`,{children:d(`composer.globalProgress`)}),(0,V.jsx)(`em`,{className:`personal-prompt-badge`,children:d(`composer.immediate`)})]}),(0,V.jsxs)(`button`,{"aria-label":d(`composer.createGoal`),className:`is-draft`,onClick:Ye,title:d(`composer.createGoalHint`),type:`button`,children:[(0,V.jsx)(Bm,{size:13}),(0,V.jsx)(`span`,{children:d(`composer.createGoal`)}),(0,V.jsx)(`small`,{className:`personal-prompt-subtle`,children:d(`composer.draft`)})]})]}),lt?(0,V.jsxs)(`div`,{className:`personal-goal-draft-status`,role:`status`,children:[(0,V.jsx)(`strong`,{children:d(`composer.createGoalDraft`)}),(0,V.jsx)(`span`,{children:d(`composer.createGoalDraftDescription`)})]}):null,N.length?(0,V.jsx)(`div`,{className:`personal-composer-images`,"aria-label":d(`composer.imagesPending`),children:N.map(e=>(0,V.jsxs)(`figure`,{children:[(0,V.jsx)(`img`,{alt:e.name,src:e.dataUrl}),(0,V.jsx)(`button`,{"aria-label":d(`composer.sentImageAlt`,{name:e.name}),onClick:()=>P(t=>t.filter(t=>t.id!==e.id)),type:`button`,children:(0,V.jsx)(ah,{size:13})})]},e.id))}):null,re?(0,V.jsx)(`p`,{className:`personal-composer-error`,role:`alert`,children:re}):null,(0,V.jsxs)(`div`,{className:`personal-channel-composer`,onDragOver:e=>{[...e.dataTransfer.items].some(e=>e.kind===`file`&&e.type.startsWith(`image/`))&&e.preventDefault()},onDrop:e=>{let t=[...e.dataTransfer.files].filter(e=>e.type.startsWith(`image/`));t.length&&(e.preventDefault(),dt(t))},children:[(0,V.jsxs)(`span`,{children:[(0,V.jsx)(nm,{size:17}),e.find(e=>e.agentId===Oe)?.label??Oe]}),(0,V.jsx)(`button`,{"aria-label":d(`composer.addImage`),className:`personal-composer-attach`,disabled:M||N.length>=fS,onClick:()=>Ce.current?.click(),title:d(`composer.attachImageHint`),type:`button`,children:(0,V.jsx)(Lm,{size:17})}),(0,V.jsx)(`input`,{accept:`image/png,image/jpeg,image/webp,image/gif`,"aria-label":d(`composer.imagePicker`),className:`personal-composer-file-input`,disabled:M||N.length>=fS,multiple:!0,onChange:e=>void dt(e.target.files),ref:Ce,type:`file`}),(0,V.jsx)(`textarea`,{"aria-label":d(`composer.sendMessage`),onChange:e=>Me(e.target.value),onKeyDown:e=>{e.key===`Enter`&&!e.shiftKey&&!e.nativeEvent.isComposing&&(e.preventDefault(),st())},onPaste:ft,placeholder:Le?d(`composer.goalPlaceholder`,{goal:Le.title}):d(`composer.managerPlaceholder`),ref:xe,rows:1,value:Ae}),(0,V.jsx)(`button`,{"aria-label":d(lt?`composer.createGoal`:`composer.send`),disabled:!Ae.trim()&&N.length===0||M,onClick:()=>void st(),title:d(lt?`composer.createGoalHint`:`composer.sendMessageHint`),type:`button`,children:(0,V.jsx)(Km,{size:18})})]})]})})]}),sidebar:(0,V.jsx)(Ub,{attentionCount:Fe,goals:Pe,goalArchiveLoadState:n,goalLifecycleOperations:t.onExecuteGoalLifecycle?[`stop`,`resume`]:void 0,lifecycleBusyGoalIds:oe,onRequestGoalCreate:o?void 0:Ye,onRequestGoalLifecycle:o&&!t.onExecuteGoalLifecycle?void 0:(e,t)=>void Xe(e,t),onRetryGoalArchive:t.onRetryGoalArchive||t.onRefresh?()=>void(t.onRetryGoalArchive??t.onRefresh)?.():void 0,onOpenSettings:o?void 0:()=>_({kind:`settings`}),onSelectGoal:it,selectedGoalId:z,statusSourceControl:l},l?.activeSource.statusUrl??`/status.json`)})}function hS(e){return(e??``).replace(/\s+/gu,` `).trim()}function gS(e,t=120){let n=Array.from(e);return n.length<=t?e:`${n.slice(0,t-1).join(``)}…`}function _S(e,t,n){let r=hS(e);return!r||r===`暂无`?n?t(n):``:/refresh-state|latest_run|latest run-derived/iu.test(r)?t(`projection.refreshState`):/first read-only adapter tick|read-only adapter/iu.test(r)?t(`projection.firstReadOnlyAdapterCheck`):/todo update recorded for/iu.test(r)?t(`projection.todoStatusUpdated`):/^(loopx|python3|npm|git|run)\s|\s--[a-z0-9-]+|\b[a-z]+_[a-z_]+\b/iu.test(r)?t(n??`projection.agentPreparingNextStep`):gS(r)}function vS(e,t){return t({advancing:`projection.agentAdvancingGoal`,idle:`projection.agentIdle`,needs_you:`projection.agentNeedsDecision`,stopped:`projection.agentStopped`,waiting_external:`projection.agentWaitingExternal`}[e])}function yS({eventCount:e,hasArtifact:t,hasLatestValidation:n},r){return{label:r(n?`projection.latestValidation`:`projection.latestRun`),metadata:e>0?r(`projection.events24h`,{count:e}):r(t?`projection.runEvidenceAvailable`:`projection.publicSafeProjection`)}}var bS=`/status.json`,xS=`loopx-status-source-catalog-v1`,SS={id:`local`,kind:`local`,label:`本机`,readOnly:!1,statusUrl:bS};function CS(e,t){let n=uh(e,t).source;if(!n||!n.isLoopback||n.isRelative)return{error:`SSH 隧道来源必须使用显式的 localhost、127.0.0.1 或 ::1 URL。`};let r=new URL(n.url,t);return[`http:`,`https:`].includes(r.protocol)?{url:r.toString()}:{error:`状态来源只支持 HTTP 或 HTTPS。`}}function wS(e){let t=2166136261;for(let n of e)t^=n.codePointAt(0)??0,t=Math.imul(t,16777619);return`ssh-${(t>>>0).toString(36)}`}function TS(e,t){if(!e||typeof e!=`object`||Array.isArray(e))return null;let n=e;if(n.kind!==`ssh_tunnel`||typeof n.label!=`string`||typeof n.statusUrl!=`string`)return null;let r=n.label.trim(),i=CS(n.statusUrl,t);if(!r||r.length>48||!(`url`in i))return null;let a=Nb(n.hostAlias)?n.hostAlias.trim():void 0;return{...a?{hostAlias:a}:{},id:wS(i.url),kind:`ssh_tunnel`,label:r,readOnly:!0,statusUrl:i.url}}function ES(){return{schemaVersion:1,sources:[SS]}}function DS(e,t){try{let n=e.getItem(xS);if(!n)return ES();let r=JSON.parse(n);if(r.schemaVersion!==1||!Array.isArray(r.sources))return ES();let i=new Set([SS.statusUrl]);return{schemaVersion:1,sources:[SS,...r.sources.flatMap(e=>{let n=TS(e,t);return!n||i.has(n.statusUrl)?[]:(i.add(n.statusUrl),[n])})]}}catch{return ES()}}function OS(e,t){e.setItem(xS,JSON.stringify({schemaVersion:1,sources:t.sources.filter(e=>e.kind===`ssh_tunnel`)}))}function kS(e,t){let n=new Set(t.filter(Nb).map(e=>e.trim())),r=!1,i=e.sources.map(e=>e.kind!==`ssh_tunnel`||e.hostAlias||!n.has(e.label)?e:(r=!0,{...e,hostAlias:e.label}));return r?{...e,sources:i}:e}function AS(e,t,n){let r=t.label.trim();if(!r)return{error:`请填写来源名称。`};if(r.length>48)return{error:`来源名称不能超过 48 个字符。`};let i=CS(t.statusUrl,n);if(!(`url`in i))return i;if(e.sources.some(e=>e.statusUrl===i.url))return{error:`这个状态 URL 已经在来源目录中。`};if(t.hostAlias!==void 0&&!Nb(t.hostAlias))return{error:`请选择有效的 SSH Host。`};let a=t.hostAlias?.trim(),o={...a?{hostAlias:a}:{},id:wS(i.url),kind:`ssh_tunnel`,label:r,readOnly:!0,statusUrl:i.url};return{catalog:{...e,sources:[...e.sources,o]},source:o}}function jS(e,t){return{...e,sources:e.sources.filter(e=>e.kind===`local`||e.id!==t)}}function MS(e,t,n){if(!t.trim()||uh(t,n).source?.isRelative)return SS;let r=t.trim();try{r=new URL(r,n).toString()}catch{return null}return e.sources.find(e=>e.statusUrl===r)??null}function NS(e,t,n){return MS(e,t,n)||(uh(t,n).source?.isRelative?SS:{id:`temporary`,kind:`ssh_tunnel`,label:`临时来源`,readOnly:!0,statusUrl:t.trim()})}function PS(e,t,n,r){return NS(e,t??n,r)}var FS={delete:`删除`,deploy:`部署`,merge:`合并`,payment:`付款`,release:`发布`};function IS(e,t,n){let r=t.replace(/\s+/gu,` `).trim().toLowerCase(),i=n.target.replace(/\s+/gu,` `).trim().toLowerCase();return!i||!r.includes(i)?null:{actionKind:`goal.update`,context:{goal_id:e,kind:`goal`,natural_language:t,semantic_proposal:{operation:n.operation,target:n.target}},idempotencyKey:`workspace-semantic-protected-${e}-${Date.now().toString(36)}`,normalizedParameters:{goal_id:e,status:`operator_gate_requested`},summary:`请求受保护操作:${FS[n.operation]} · ${n.target}`}}var LS=bS;async function RS(e){let t=await fetch(e,{cache:`no-store`,signal:AbortSignal.timeout(3e4)});if(!t.ok)throw Error(`HTTP ${t.status} while loading ${e}`);return kp(await t.json())}function zS(e,t){if(t?.controller_readiness?.decision_advisor_ready||t?.controller_readiness?.write_controller_ready)return`controller_ready`;if(t?.controller_readiness)return`controller_gated`;if(t?.human_reward)return`reward_judged`;if(t?.operator_gate?.decision===`approve`)return`operator_approved`;if(t?.operator_gate)return`operator_gated`;let n=e||t?.classification||``;return n===`connected_without_run`?`connected`:n===`read_only_project_map`||t?.project_map?`mapped`:n===`state_refreshed`?`refreshed`:n&&n!==`no_status`?`adapter_inspected`:`registered`}function BS(e,t){let n=new Map(t.map(e=>[e.goal_id,e])),r=new Set,i=e.map(e=>{r.add(e.id);let t=n.get(e.id),i=e.latest_runs[0],a=t?.lifecycle_phase??e.lifecycle_phase??i?.lifecycle_phase??zS(t?.status??i?.classification??e.status,i),o=t?.lifecycle_flags?.length?t.lifecycle_flags:e.lifecycle_flags?.length?e.lifecycle_flags:i?.lifecycle_flags?.length?i.lifecycle_flags:[a];return{goal:e,queueItem:t,latestRun:i,status:t?.status??i?.classification??e.status??`no_status`,waitingOn:t?.waiting_on??`clear`,severity:t?.severity??`clear`,lifecyclePhase:a,lifecycleFlags:o}});for(let e of t)r.has(e.goal_id)||i.push({goal:{activation_state:e.activation_state,id:e.goal_id,status:e.status,display_name:e.goal_id,latest_runs:[],lifecycle_flags:[e.lifecycle_phase??`registered`],registry_member:!0,legacy_runtime_goal:!1,index_exists:!1,raw_index_records:0,unique_runs:0},queueItem:e,status:e.status,waitingOn:e.waiting_on,severity:e.severity,lifecyclePhase:e.lifecycle_phase??`registered`,lifecycleFlags:e.lifecycle_flags??[`registered`]});return i}function VS(e){return(e??``).replace(/\s+/g,` `).trim()}function HS(e,t=132){let n=VS(e);return n.length<=t?n:`${n.slice(0,Math.max(0,t-1))}…`}function US(e){let t=new Map;for(let n of e?.goals??[])t.set(n.goal_id,n);return t}function WS(e,t){return e===void 0||t===void 0?void 0:e+t}function GS(e,t){if(!e)return null;let n=t===`user`?e.queueItem?.project_asset?.user_todos:e.queueItem?.project_asset?.agent_todos;if(n?.items?.length)return{done_count:n.done??n.items.filter(e=>e.done).length,items:n.items,open_count:n.open??n.items.filter(e=>!e.done).length,total_count:n.total??n.items.length};let r=t===`user`?e.queueItem?.user_todos:e.queueItem?.agent_todos;return r?.items?.length?r:null}function KS(e){return e?.items.find(e=>!e.done)}function qS(e,t,n=`todos`){return e?.items?.length?{advancement_done_count:e.advancement_done_count??t?.advancement_done_count,done_count:e.done??e.items.filter(e=>e.done).length,items:e.items,open_count:e.open??e.items.filter(e=>!e.done).length,total_count:e.total??e.items.length}:t??null}function JS(e){return e?.queueItem?.project_asset?.quota?.state??e?.queueItem?.quota?.state??e?.goal.quota?.state??`waiting`}function YS(e,t,n){let r=[];for(let t of e){let e=GS(t,`agent`);for(let n of e?.items??[])r.push({goalId:t.goal.id,role:`agent`,todo:n})}let i=new Map;for(let e of r){let t=e.todo.claimed_by||`codex`,n=i.get(t)??[];n.push(e),i.set(t,n)}let a=new Map((n?.agents??[]).map(e=>[e.agent_id,e]));return Array.from(new Set([...i.keys(),...a.keys()])).map(e=>{let t=i.get(e)??[],n=a.get(e),r=Array.from(new Set([...t.map(e=>e.goalId),n?.current_todo?.goal_id,...n?.goal_ids??[]].filter(Boolean))),o=(t.filter(e=>!e.todo.done)[0]??t[0])?.goalId??n?.current_todo?.goal_id??r[0]??``,s=n?.last_activity_at??null;return{agentId:e,claimedTodos:t,currentTodo:n?.current_todo??null,evidenceRefs:[],goalIds:r,handoffNote:null,lastActivity:s,nextSafeAction:n?.next_action?.trim()||`Inspect status projection before taking work`,primaryGoalId:o,quotaHints:[],staleClaimHint:null,status:{label:`可用`,summary:`正常运行`,variant:`success`},workspaceRef:null}})}function XS(e){return e?.map(e=>({dataUrl:e.data_url,id:e.id,mimeType:e.mime_type,name:e.name,size:e.size}))}var ZS=`loopx.personal-agent-selection.v1`;function QS(){if(typeof window>`u`)return{};try{let e=JSON.parse(window.localStorage.getItem(ZS)??`{}`);return!e||typeof e!=`object`||Array.isArray(e)?{}:Object.fromEntries(Object.entries(e).filter(e=>typeof e[0]==`string`&&typeof e[1]==`string`))}catch{return{}}}var $S={需修复:`danger`,等你:`warning`,等待条件:`info`,推进中:`success`,安静运行:`neutral`,已停止:`neutral`,已完成:`neutral`};function eC(e,t){return VS(t)||e.replace(/^loopx[-_]/i,`LoopX `).split(/[-_]+/).filter(Boolean).map((e,t)=>t===0?`${e.slice(0,1).toUpperCase()}${e.slice(1)}`:e).join(` `)}function tC(e){return e.split(/\r?\n/u).filter(e=>!/^\s*GOAL_(STATUS|PROGRESS)\s*:/u.test(e)).map(e=>/^\s*GOAL_EVIDENCE\s*:/u.test(e)?e.replace(/^\s*GOAL_EVIDENCE\s*:/u,`验证依据:`):/^\s*NEXT_ACTION\s*:/u.test(e)?e.replace(/^\s*NEXT_ACTION\s*:/u,`下一步:`):e).join(` +`).trim()}function nC(e,t){return[`agent`,`assistant`].includes(e.trim().toLowerCase())&&t.trim().length>0}var rC=`已发现的项目 Agent`;function iC(e){switch(xy(e)){case`codex`:return`Codex`;case`claude`:return`Claude Code`;case`kiro`:return`Kiro CLI`;case`trae`:return`Trae CLI Agent`;case`coco`:return`Coco Agent`;default:return eC(e)}}function aC(e,t){switch(Sy(e,t)){case`codex`:return`代码与项目执行`;case`claude`:return`复杂分析与长任务`;case`openai`:case`anthropic`:return`管家问答 · 无工具`;case`kiro`:return`终端编码 · 原生 /goal 循环`;case`trae`:return`前端与交互实现`;case`coco`:return`通用任务`;default:return rC}}function oC(e,t){let n=e.project_asset;return t===`user`?qS(n?.user_todos,e.user_todos,`project_asset.user_todos`):qS(n?.agent_todos,e.agent_todos,`project_asset.agent_todos`)}function sC(e){return HS(e.title??e.text,112)}function cC(e){let t=e.resume_condition?.resume_receipt;if(!t||typeof t!=`object`||Array.isArray(t))return null;let n=t.receipt_id;return typeof n==`string`&&n.trim()?n.trim():null}function lC(e,t){return{resumeWhen:e.resume_when??null,resumeReady:e.resume_ready??null,resumeReceiptId:cC(e),claimedBy:e.claimed_by??null,done:e.status!==`deferred`&&e.done,evidence:e.evidence?HS(e.evidence,96):null,index:e.index,priority:e.priority??null,status:e.status??null,taskClass:e.task_class??null,taskDomain:e.task_domain??null,text:sC(e),todoId:e.todo_id?.trim()||`${t.goal.id}:agent:${e.index}`}}function uC(e){let t=e.queueItem?.agent_todos,n=t?.items??e.queueItem?.project_asset?.agent_todos?.items??[],r=new Map(n.map(t=>[t.todo_id?.trim()||`${e.goal.id}:agent:${t.index}`,t]));for(let n of t?.deferred_items??[]){let t=n.todo_id?.trim()||`${e.goal.id}:agent:${n.index}`;r.has(t)||r.set(t,n)}return[...r.values()]}function dC(e){return uC(e).map(t=>lC(t,e))}function fC(e,t,n){let r=new Map;for(let n of e.todo_index?.items??[]){if(n.goal_id!==t.goal.id||n.role!==`agent`)continue;let e=lC(n,t);r.set(e.todoId,e)}for(let e of n)r.has(e.todoId)||r.set(e.todoId,e);let i=new Map;for(let e of r.values()){if(e.done||e.taskClass!==`advancement_task`)continue;let t=e.taskDomain?.trim();t&&i.set(t,(i.get(t)??0)+1)}return[...i].map(([e,t])=>({domain:e,matchingTodoCount:t}))}function pC(e,t){return{claimedBy:e.claimed_by??null,done:e.status===`done`||e.status===`completed`,index:-1,priority:e.priority??null,status:e.status??null,taskClass:e.task_class??null,text:HS(e.title,112),todoId:e.todo_id?.trim()||`${t.goal.id}:agent:${e.claimed_by??`unknown`}:current`}}function mC(e,t,n){let r=new Map(e.map(e=>[e.todoId,e]));for(let e of t){let t=e.currentTodo;if(!t||t.goal_id!==n.goal.id)continue;let i=pC(t,n);r.has(i.todoId)||r.set(i.todoId,i)}return[...r.values()]}function hC(e){let t=e.queueItem?.project_asset?.agent_todos,n=e.queueItem?.agent_todos,r=uC(e),i=t?.advancement_done_count??n?.advancement_done_count??t?.done??n?.done_count??null,a=r.filter(e=>e.done&&e.status!==`deferred`).length,o=Math.max(i??0,a),s=new Set(r.map(e=>e.todo_id?.trim()).filter(e=>!!e)),c=(t?.recent_completed_advancement_items??[]).filter(e=>!e.todo_id?.trim()||!s.has(e.todo_id.trim())).map(t=>lC(t,e)),l=r.find(e=>!e.done);return{doneTodoCount:o,nextTodoText:VS(t?.next??``)||(l?VS(l.title??``)||VS(l.text??``):``)||null,recentCompleted:c}}function gC(e,t){let n=VS(e);return n?/\b(state_file|registry_goal|authority_sources|source_registry)\b|\b[a-z_]+\s+\d+\/\d+/i.test(n)?t(`projection.goalVerified`):_S(n,t,`projection.validationRecorded`):``}function _C(e,t=4){if(e.length<=t)return e;let n=e.findIndex(e=>!e.done);if(n<0)return e.slice(-t);let r=Math.max(0,Math.min(n-2,e.length-t));return e.slice(r,r+t)}function vC(e,t,n){let r=t.queueItem?.project_asset?.latest_validation,i=t.latestRun,a=e.event_ledger_summary?.goals.find(e=>e.goal_id===t.goal.id);if(!r&&!i&&!a)return null;let o=[gC(r?.summary,n),_S(i?.health_check,n),_S(i?.recommended_action,n)].find(e=>e!==``&&e!==`暂无`)??n(`projection.runRecorded`),s=yS({eventCount:a?.events_24h??0,hasArtifact:!!(i?.json_exists||i?.markdown_exists),hasLatestValidation:!!r},n);return{generatedAt:r?.generated_at??i?.generated_at??a?.latest_event_at??``,label:s.label,metadata:s.metadata,runId:i?`${t.goal.id}:${i.generated_at}`:null,safePreview:[o,s.metadata].filter(Boolean).join(` +`),summary:o,todoId:t.queueItem?.project_asset?.agent_todos?.items.find(e=>!e.done)?.todo_id??null}}function yC(e){return[e.status,e.goal.status,e.latestRun?.classification,e.lifecyclePhase].filter(Boolean).some(e=>/(^|[_\s-])(done|complete|completed|finished|terminal|closed|success)([_\s-]|$)/i.test(e??``))}function bC(e,t){return e.global_registry?.findings?.find(e=>e.severity===`high`&&(e.goal_id===t.goal.id||e.goal_ids.includes(t.goal.id)))}function xC(e){return[e.status,e.goal.status,e.latestRun?.classification,e.lifecyclePhase].filter(Boolean).some(e=>/(^|[_\s-])(failure|failed|error|broken|unhealthy|blocked[_\s-]?health|health[_\s-]?blocked)([_\s-]|$)/i.test(e??``))}function SC(e,t){let n=t.queueItem?.stale_latest_run_warning;return t.severity===`high`||!!bC(e,t)||!!(n?.requires_refresh_state||n?.severity===`high`)||xC(t)}function CC(e,t){let n=bC(e,t);return t.queueItem?.stale_latest_run_warning?.recommended_action??t.queueItem?.stale_latest_run_warning?.reason??n?.recommended_action??n?.message??t.queueItem?.recommended_action??t.latestRun?.recommended_action??null}function wC(e){let t=e.latestRun?.operator_gate,n=t?.decision?.trim().toLowerCase()??``,r=new Set([`approve`,`approved`,`reject`,`rejected`,`defer`,`deferred`,`cancel`,`cancelled`]),i=[e.queueItem?.recommended_action,e.latestRun?.recommended_action].filter(Boolean).join(` `),a=/(?:等待|需要)(?:用户|你|owner).{0,24}(?:批准|确认|授权|补充|选择|决定)|(?:批准|确认|授权).{0,16}(?:后|才能|方可)/i.test(i);return!!(t&&!r.has(n))||e.lifecyclePhase===`operator_gated`&&!r.has(n)||a}function TC(e,t){let n=e.latestRun?.operator_gate;return _S(n?.operator_question??n?.reason_summary??n?.follow_up??e.queueItem?.recommended_action??e.latestRun?.recommended_action,t,`projection.confirmAgentDecision`)}function EC(e,t){if(t.goal.activation_state===`stopped`)return`已停止`;let n=GS(t,`user`),r=GS(t,`agent`),i=!!KS(n),a=!!KS(r);return[`user_or_controller`,`controller`].includes(t.waitingOn)||i||wC(t)?`等你`:SC(e,t)?`需修复`:t.waitingOn===`external_evidence`?`等待条件`:JS(t)===`eligible`||a?`推进中`:yC(t)?`已完成`:`安静运行`}function DC(e,t,n,r){if(n===`已停止`)return vS(`stopped`,r);if(n===`需修复`)return _S(CC(e,t),r,`projection.statusRefreshNeeded`);if(n===`等你`)return vS(`needs_you`,r);if(n===`推进中`){let e=[(GS(t,`agent`)?.items??[]).filter(e=>!e.done).flatMap(e=>[e.title,e.text]).map(e=>VS(e)).find(e=>e!==``&&e!==`暂无`),t.queueItem?.recommended_action,t.latestRun?.recommended_action].map(e=>VS(e)).find(e=>e!==``&&e!==`暂无`);return e?_S(e,r,`projection.agentAdvancingGoal`):vS(`advancing`,r)}return vS(n===`等待条件`?`waiting_external`:`idle`,r)}function OC(e,t){return t.some(t=>e.includes(t))}function kC(e,t,n){if(t.goals.some(e=>e.activationState===`active`&&e.loadState))return{text:`Goal 状态尚未全部加载,暂不能给出完整统计。可先打开已加载的 Goal,失败项可重试。`,lines:[]};if(OC(n,[`Agent`,`agent`,`推进`,`在做`])){let e=t.goals.filter(e=>![`安静运行`,`已完成`,`已停止`].includes(e.state)),n=(e.length>0?e:t.goals).slice(0,3);return n.length===0?{text:`当前状态里还没有 Goal 可供汇总。`,lines:[]}:{text:e.length>0?`Agent 当前关注这些 Goal:`:`当前 Goal 都比较安静:`,lines:n.map(e=>`${e.title} · ${e.state} · ${e.agentSentence}`)}}if(OC(n,[`现在`,`下一步`,`我该`,`该做什么`,`优先处理`])){let e=t.userTodos[0];if(e)return{text:e.blocking?`先处理「${eC(e.goalId)}」:${e.text}`:`当前最先处理「${eC(e.goalId)}」:${e.text}`,lines:[]};let n=t.goals.find(e=>e.state===`需修复`);if(n)return{text:`没有待办,但这个 Goal 需要先修复。`,lines:[`${n.title} · ${n.agentSentence}`]};let r=t.goals.find(e=>e.state===`推进中`);return r?{text:`目前不需要你介入,Agent 正在推进。`,lines:[`${r.title} · ${r.agentSentence}`]}:{text:`当前系统很安静,没有需要你立即处理的事项。`,lines:[]}}if(OC(n,[`等我`,`阻塞`,`需要我`,`全局待办`]))return t.userTodos.length===0?{text:`目前没有 Goal 在等你,开放用户待办为 0。`,lines:[]}:{text:`有 ${t.userTodos.length} 项开放用户待办,阻塞项优先:`,lines:t.userTodos.slice(0,3).map(e=>`${eC(e.goalId)} · ${e.blocking?`阻塞`:`待处理`} · ${e.text}`)};if(OC(n,[`状态`,`异常`,`修复`,`健康`])){let n=t.systemHealth?!t.systemHealth.ok:!e.ok||!e.contract?.ok||!e.global_registry?.ok||(e.global_registry?.summary?.high??0)>0,r=t.goals.filter(e=>e.state===`需修复`),i=r.slice(0,n?2:3).map(e=>`${e.title} · ${e.agentSentence}`);return n&&i.push(`全局状态、契约或注册表健康检查未通过,请进入管理页检查。`),i.length===0?{text:`当前没有发现 Goal 级或全局健康异常。`,lines:[]}:{text:r.length>0?`当前需要关注这些健康问题:`:`Goal 状态正常,但全局健康需要检查:`,lines:i}}return{text:`当前管家支持三类问题:下一步、等待你的事项、Agent 与健康状态。`,lines:[`问“我现在该做什么?”`,`问“哪些 Goal 在等我?”`,`问“Agent 在做什么?”或当前健康状态`]}}function AC(e,t,n,r=!1){let i=new Map(t.map(e=>[e.goal.id,e])),a=new Set(e.run_history.goals.filter(e=>e.activation_state===`stopped`).map(e=>e.id)),o=US(e.usage_summary),s=YS(t,e.todo_index,e.agent_management_projection),c=e.attention_queue.items.flatMap((e,t)=>{if(a.has(e.goal_id))return[];let n=[`user_or_controller`,`controller`].includes(e.waiting_on);return(oC(e,`user`)?.items??[]).map((r,i)=>({projectedDone:r.done,details:Kd(r),actionKind:r.action_kind??null,blocking:n,goalId:e.goal_id,sourceOrder:t,taskClass:r.task_class??null,text:sC(r),todoId:r.todo_id?.trim()||`${e.goal_id}:user:${r.index}`,todoOrder:i,updatedAt:r.updated_at??null}))}),l=c.filter(e=>!e.projectedDone),u=new Set(l.map(e=>e.goalId)),d=t.flatMap((t,r)=>a.has(t.goal.id)||u.has(t.goal.id)||!wC(t)?[]:[{details:Kd({task_class:`user_gate`,status:`open`,note:t.latestRun?.operator_gate?.reason_summary}),actionKind:`gate.resolve`,blocking:!0,goalId:t.goal.id,sourceOrder:e.attention_queue.items.length+r,taskClass:`user_gate`,text:TC(t,n),todoId:`${t.goal.id}:operator-gate`,todoOrder:0,updatedAt:t.latestRun?.operator_gate?.recorded_at??t.latestRun?.generated_at??null}]),f=[...l,...d].sort((e,t)=>Number(t.blocking)-Number(e.blocking)||e.sourceOrder-t.sourceOrder||e.todoOrder-t.todoOrder),p=e.run_history.goals.flatMap(t=>{if(t.registry_member===!1)return[];let a=i.get(t.id);if(!a)return[];let c=EC(e,a),l=f.find(e=>e.goalId===t.id),u=l?.text??null,d=hC(a),p=t.coordination?.registered_agents??[],m=new Set(p),h=[...s.filter(e=>e.goalIds.includes(t.id)&&!/unassigned|unknown/i.test(e.agentId)&&(m.size===0||m.has(e.agentId))&&(e.currentTodo?.goal_id===t.id||e.claimedTodos.some(e=>e.goalId===t.id)))].sort((e,t)=>(t.lastActivity??``).localeCompare(e.lastActivity??``)),g=new Set(h.map(e=>e.agentId)),_=[...h.map(e=>({agentId:e.agentId,label:e.agentId,lastActivityAt:e.lastActivity,state:e.status.label})),...p.filter(e=>!g.has(e)).map(e=>({agentId:e,label:e,lastActivityAt:null,state:`registered`}))],v=h[0],y=mC(dC(a),h,a),b=[d.nextTodoText,a.queueItem?.recommended_action,a.latestRun?.recommended_action,DC(e,a,c,n)].map(e=>_S(e,n)).find(e=>e!==``&&e!==`暂无`)??n(`projection.nextUpdatePending`);return[{activationState:t.activation_state,agentId:v?.agentId??p[0]??`codex`,agentLaneCount:_.length,agentLanes:_,agentLabel:v?.agentId,agentSentence:DC(e,a,c,n),agentTodos:[...y,...d.recentCompleted],doneTodoCount:d.doneTodoCount,acceptanceObservation:t.acceptance_observation,goalId:t.id,latestActivity:a.latestRun?.generated_at??``,needsYou:u,needsYouActionKind:l?.actionKind??null,needsYouBlocking:l?.blocking??!1,needsYouTaskClass:l?.taskClass??null,needsYouTodoId:l?.todoId??null,nextSentence:b,runEvidence:vC(e,a,n),state:c,...r?{subagentExecution:{allowedDomains:t.spawn_policy?.allowed_domains??[],domainCandidates:fC(e,a,y),enabled:t.spawn_policy?.mode===`multi_subagent`&&t.spawn_policy.spawn_allowed===!0&&t.spawn_policy.max_children>0,maxChildren:t.spawn_policy?.max_children??0,modelConfig:t.spawn_policy?.model_config}}:{},title:eC(t.id,t.display_name),usage:(()=>{let e=o.get(t.id);return e?{costUsd24h:e.cost_usd_24h,costUsd7d:e.cost_usd_7d,durationMs24h:e.duration_ms_24h,durationMs7d:e.duration_ms_7d,tokens24h:WS(e.input_tokens_24h,e.output_tokens_24h),tokens7d:WS(e.input_tokens_7d,e.output_tokens_7d)}:null})()}]}),m=[];if(e.ok||m.push(`状态载荷未标记为正常 (payload.ok === false)`),e.contract&&!e.contract.ok){let t=e.contract.summary,n=t?`${t.errors} 项错误 / ${t.warnings} 项警告`:e.contract.errors?.[0]||`请检查控制面契约`;m.push(`契约检查未通过: ${n}`)}if(e.global_registry){e.global_registry.ok||m.push(`注册表状态异常: ${e.global_registry.summary.high} 项高危`);for(let t of e.global_registry.findings||[])t.severity===`high`&&m.push(`[${t.kind}] ${t.message}`)}let h=e.decision_freshness_summary?.summary?.stale_count?`${e.decision_freshness_summary.summary.stale_count} 项决策状态已过期`:null,g=m.length===0&&!h,_={ok:g,summary:g?`所有控制面契约与注册表检查均正常`:`发现 ${m.length+ +!!h} 项系统健康关注点`,issues:m,freshnessWarning:h};return{blockingTodoCount:f.filter(e=>e.blocking).length,goalNotifications:(e.goal_channel_notification_projection?.goals??[]).map(e=>({goalId:e.goal_id,configured:e.configured,enabled:e.enabled,humanGateAutoNotifyEnabled:e.human_gate_auto_notify_enabled,lastNotifiedAt:e.last_notified_at??null,receiptCount:e.receipt_count,targetRef:e.target_ref??null})),goals:p,openUserTodoCount:f.length,systemHealth:_,attentionHistory:[...c,...d],userTodos:f,visibleUserTodos:f.slice(0,5),workers:(e.agent_management_projection?.agents??[]).map(e=>({agentId:e.agent_id,currentTodoGoalId:e.current_todo?.goal_id??null,currentTodoText:e.current_todo?.title?HS(e.current_todo.title,96):null,lastActivityAt:e.last_activity_at??null,state:e.state??null}))}}function jC({goalArchiveLoadState:e,isLoading:t,onGoalActivationStateChange:n,onGoalDeleted:r,onSelectGoal:i,onReconcileStatus:a,onRefresh:o,onRetryGoalArchive:s,payload:c,progress:l,rows:u,selectedGoalId:d,statusSourceControl:f,theme:p,toggleTheme:m}){let h=f.activeSource.readOnly,g=f.activeSource.kind===`ssh_tunnel`?f.activeSource.hostAlias:void 0,{t:_}=Ji(),[v,y]=(0,B.useState)([]),[b,x]=(0,B.useState)(!1),[S,C]=(0,B.useState)(null),[w,T]=(0,B.useState)(null),E=(0,B.useMemo)(()=>{let e=AC(c,u,_,b);if(!l)return e;let t=Object.values(l.snapshots).map(e=>AC(e,BS(e.run_history.goals,e.attention_queue.items),_,b)),n=new Map(t.flatMap(e=>e.goals).map(e=>[e.goalId,e])),r=e.goals.map(e=>n.get(e.goalId)??{...e,loadError:l.errors[e.goalId],loadState:l.errors[e.goalId]?`error`:`loading`,agentId:``,agentSentence:``,nextSentence:``,subagentExecution:void 0}),i=t.flatMap(e=>e.userTodos),a=r.some(e=>e.activationState===`active`&&e.loadState),o=[...new Set(t.flatMap(e=>e.systemHealth?.issues??[]))];return{...e,goals:r,userTodos:i,attentionHistory:t.flatMap(e=>e.attentionHistory??e.userTodos),visibleUserTodos:i.slice(0,5),openUserTodoCount:i.length,blockingTodoCount:i.filter(e=>e.blocking).length,workers:[...new Map(t.flatMap(e=>e.workers??[]).map(e=>[e.agentId,e])).values()],goalNotifications:t.flatMap(e=>e.goalNotifications??[]),systemHealth:a||t.length===0?void 0:{ok:t.every(e=>e.systemHealth?.ok),issues:o,summary:o.length?`发现 ${o.length} 项系统健康关注点`:`状态检查已完成`,freshnessWarning:t.map(e=>e.systemHealth?.freshnessWarning).filter(Boolean).join(`;`)||null}}},[c,u,l,b,_]),D=E.goals.find(e=>e.goalId===d)??null,O=l?.snapshots[d]??c,[k,ee]=(0,B.useState)(null),[te,A]=(0,B.useState)(null),[j,M]=(0,B.useState)(!1),ne=E.goals.some(e=>e.activationState===`active`&&e.loadState===`loading`)?`loading`:E.goals.map(e=>`${e.goalId}:${e.agentId}`).join(`|`),N=D?.goalId??`manager`;E.goals.some(e=>e.activationState===`active`&&e.loadState)||(E.systemHealth?!E.systemHealth.ok:!c.ok)||E.openUserTodoCount>0&&`${E.openUserTodoCount}${E.blockingTodoCount}`;let P=v.length>0?v.map(e=>({agentId:e.agent_id,adapterKind:e.adapter_kind,available:e.available,capability:aC(e.agent_id,e.adapter_kind),interrupt:e.interrupt,label:e.display_name,location:e.location,resume:e.resume,source:e.source,statusLabel:e.available?`可用`:`需要配置`,streaming:e.streaming,toolCalls:e.tool_calls,trustScope:e.trust_scope})):[{agentId:`codex`,available:!0,capability:aC(`codex`),label:`Codex`,statusLabel:`正在检测`}],re=[...P,{agentId:`status-only`,available:!0,capability:`不调用模型`,adapterKind:`status_projection`,interrupt:!1,label:`仅查状态`,resume:!0,statusLabel:`只读`,streaming:!1,toolCalls:!1,trustScope:`read_only`}],ie=P.find(e=>e.label===`Codex`&&e.available)?.agentId??P.find(e=>e.available)?.agentId??`status-only`,ae=w?.executor_endpoint?.trim()??``,F=ae?P.find(e=>e.agentId===ae)?.agentId:void 0,oe=e=>e===`manager`?F??ie:ie,[I,se]=(0,B.useState)(QS),L=gh(re,I[N]??oe(N),ie),[ce,le]=(0,B.useState)(!1),[ue,de]=(0,B.useState)(!1),[R,fe]=(0,B.useState)(`chat`),[pe,me]=(0,B.useState)(``),[he,ge]=(0,B.useState)({}),[_e,ve]=(0,B.useState)({}),[ye,be]=(0,B.useState)(null),[xe,Se]=(0,B.useState)({}),[Ce,we]=(0,B.useState)([]),[Te,Ee]=(0,B.useState)(null),[De,z]=(0,B.useState)({}),Oe=(0,B.useRef)(1),ke=(0,B.useRef)(1),Ae=(0,B.useRef)(new Map),je=(0,B.useRef)(new Set),Me=(0,B.useRef)(new Map),Ne=(0,B.useRef)(new Map),Pe=(0,B.useRef)(new Set),Fe=(0,B.useRef)(new Set),Ie=(0,B.useRef)(null),Le=(0,B.useRef)(null),Re=(0,B.useRef)(null),ze=(0,B.useRef)(null);(0,B.useRef)(null);let Be=he[N]??[];_e[N];let Ve=(e,t)=>e===`manager`?_(`header.manager`):t,He=D?E.userTodos.filter(e=>e.goalId===D.goalId):E.userTodos,Ue=D?.agentTodos??[];_C(Ue,D?.needsYou?3:4);let We=Ue.filter(e=>e.done).length,Ge=Ue.length>0?`${We}/${Ue.length}`:`暂无计划`;D&&({...E},He.filter(e=>e.blocking).length,He.length),(0,B.useEffect)(()=>{let e=lh(f.activeSource.statusUrl,window.location.href),t=e.source?ph(O,e.source):null;if(!D||!t?.indexUrl||!t.detailUrl){ee(null),A(null),M(!1);return}let{detailUrl:n,indexUrl:r}=t,i=!1;return ee(null),A(null),M(!0),mh(r,D.goalId).then(async e=>{let t=e.items[0]?.detail_ref;return t?hh(n,t):null}).then(e=>{i||ee(e)}).catch(e=>{i||A(Ap(e))}).finally(()=>{i||M(!1)}),()=>{i=!0}},[O,D?.goalId,f.activeSource.statusUrl]);let Ke=D?void 0:xe[N]?.sessionId;(0,B.useEffect)(()=>{if(h||!Ke)return;let e=!1,t,n=async()=>{try{let t=await Yh(Ke);if(e)return;let n=t.messages.filter(e=>e.origin===`manager_followup`);ge(e=>{let t=e[N]??[],r=new Set(t.map(e=>e.sourceMessageId)),i=n.filter(e=>!r.has(e.message_id)),a=new Map(n.map(e=>[e.message_id,e.return_delivery])),o=!1,s=t.map(e=>{let t=e.sourceMessageId?a.get(e.sourceMessageId):void 0;return JSON.stringify(t)===JSON.stringify(e.returnDelivery)?e:(o=!0,{...e,returnDelivery:t})});return!i.length&&!o?e:{...e,[N]:[...s,...i.map(e=>({id:Oe.current++,sourceMessageId:e.message_id,role:`assistant`,agentLabel:Ve(N,L.label),sourceLabel:`管家交接回执`,text:tC(e.text),lines:[],returnDelivery:e.return_delivery}))]}})}catch{}finally{e||(t=setTimeout(n,3e3))}};return n(),()=>{e=!0,t&&clearTimeout(t)}},[h,Ke,N,L.label]);function qe(e,t){Se(n=>{if(t===null){let t={...n};return delete t[e],t}return{...n,[e]:t}})}(0,B.useEffect)(()=>{if(h){y([]),x(!1),C(null),T(null);return}let e=!1;return Kh().then(t=>{if(!e){y(t.adapters??[]);let e=t.manager?.runtime;T(t.manager?.channel_binding??null),C(e?{schema_version:`manager_runtime_session_readback_v0`,runtime_profile:e.runtime_profile,configuration_revision:e.configuration_revision,status:e.status,sandbox:e.sandbox,standing_grant:e.standing_grant,tool_classes:e.tool_classes}:null),x(t.goal_subagent_configuration===`preview_locked`)}}).catch(()=>{e||x(!1)}),()=>{e=!0}},[h]),(0,B.useEffect)(()=>{try{window.localStorage.setItem(ZS,JSON.stringify(I))}catch{}},[I]),(0,B.useEffect)(()=>{if(h||!L.available)return;let e=N,t=`${e}:${L.agentId}`,n=D?`goal`:`manager`,r=D?`goal.${D.goalId}`:`manager`,i=!1,a=null,o=null;return(async()=>{try{let s=await Qh({agentId:n===`manager`?void 0:L.agentId,channelId:r,goalId:D?.goalId});if(i||(ge(t=>(t[e]?.length??0)>0?t:{...t,[e]:s.messages.map(t=>({sourceMessageId:t.message_id,agentLabel:t.role===`user`?void 0:Ve(e,L.label),attachments:XS(t.attachments),id:Oe.current++,lines:[],role:t.role===`user`?`user`:`assistant`,returnDelivery:t.return_delivery,sourceLabel:t.role===`user`?void 0:t.role===`error`?`本地会话记录`:e===`manager`?`恢复的${_(`header.manager`)}会话`:`恢复的 ${L.label} 会话`,text:t.role===`user`?t.text:tC(t.text)}))}),L.agentId===`status-only`))return;let c=s.sessions[0];if(o=c?.session_id??null,c&&!c.resumable){je.current.add(t),qe(e,{agentId:L.agentId,resumable:!1,sessionId:c.session_id,status:`resume_failed`});return}let l=n===`manager`?``:D?.goalId??``;if(n===`goal`&&!l)return;let u=await Jh(l,n===`manager`?I[e]:L.agentId,`resume_latest`,n);if(i)return;n===`manager`&&u.session.manager_runtime&&C(u.session.manager_runtime),Ae.current.set(t,u.session_id);let d=s.snapshots.find(e=>e.session.session_id===u.session_id),f=d?.session.active_turn_id??``;if(qe(e,{agentId:u.agent_id||L.agentId,resumable:!0,sessionId:u.session_id,status:f?`running`:`ready`,turnId:f||void 0}),je.current.delete(t),!f)return;let p=`${u.session_id}:${f}`;if(Fe.current.has(p))return;Fe.current.add(p),Me.current.set(e,f),qe(e,{agentId:L.agentId,resumable:!0,sessionId:u.session_id,status:`running`,turnId:f}),be(e),a=new AbortController,Ne.current.set(e,a);let m=``,h=Je(e,{activity:[`正在恢复进行中的 Agent 回合`],agentLabel:Ve(e,L.label),lines:[],pending:!0,sourceLabel:e===`manager`?`恢复的${_(`header.manager`)}会话`:`恢复的 ${L.label} 会话`,text:``});try{let t=await ag(u.session_id,f,{signal:a.signal,onDelta:t=>{m+=t,Ye(e,h,{text:m})},onActivity:t=>{ge(n=>({...n,[e]:(n[e]??[]).map(e=>e.id===h?{...e,activity:[...new Set([...e.activity??[],t])].slice(-6)}:e)}))}});if(i)return;Ye(e,h,{lines:t.response.gate?[t.response.gate.summary,t.response.gate.next_action].filter(Boolean).slice(0,2):[],pending:!1,text:t.response.message||m.trim()||`${Ve(e,L.label)} 已完成分析。`});let n=E.goals.find(e=>e.goalId===d?.session.goal_id)??D??E.goals[0]??null;if(n&&t.response.proposals.length>0){let r=t.response.proposals.filter(_h).map(e=>({goalId:n.goalId,id:ke.current++,previewId:null,proposal:e,receiptLabel:null,state:`candidate`,statusMessage:null}));r.length>0&&ve(t=>({...t,[e]:[...t[e]??[],...r]}))}}catch(t){if(i)return;Ye(e,h,{activity:[],lines:[],pending:!1,reconnect:t instanceof Ph&&t.payload.reconnectable===!0,sourceLabel:`LoopX Chat 本地后端`,text:t instanceof Error?t.message:`无法恢复进行中的 Agent 回合。`})}finally{Fe.current.delete(p),Me.current.get(e)===f&&Me.current.delete(e),qe(e,{agentId:L.agentId,resumable:!0,sessionId:u.session_id,status:`ready`}),Ne.current.get(e)===a&&Ne.current.delete(e),i||be(t=>t===e?null:t)}}catch(n){if(i)return;n instanceof Ph&&n.payload.error_code===`resume_failed`&&(je.current.add(t),o&&qe(e,{agentId:L.agentId,resumable:!1,sessionId:o,status:`resume_failed`}))}})(),()=>{i=!0,a?.abort()}},[N,E.goals[0]?.goalId,h,D?.goalId,L.agentId,L.available,L.label,I]),(0,B.useEffect)(()=>{if(h||D||E.goals.length===0||ne===`loading`)return;let e=!1;return Promise.all(E.goals.filter(e=>!e.loadState).map(async e=>{let t=await Xh({agentId:e.agentId,channelId:`goal.${e.goalId}`,goalId:e.goalId});return{goalId:e.goalId,session:t.sessions[0]??null}})).then(t=>{e||Se(e=>{let n={...e};for(let e of t)e.session&&(n[e.goalId]={agentId:e.session.agent_id,resumable:e.session.resumable,sessionId:e.session.session_id,status:e.session.active_turn_id?`running`:e.session.status,turnId:e.session.active_turn_id??void 0});return n})}).catch(()=>{}),()=>{e=!0}},[h,ne,D?.goalId]),(0,B.useEffect)(()=>{if(Ee(null),h){we([]),z({});return}if(!D){we([]),z({});return}let e=!1,t=0,n=0;we([]),z({});let r=async()=>{if(!e){if(document.hidden){t=window.setTimeout(()=>void r(),1e4);return}try{let t=await Xh({goalId:D.goalId});if(!e){let r=t.sessions.filter(e=>e.channel_id?.startsWith(`task.`));we(r);let i=await Promise.allSettled(r.map(e=>Yh(e.session_id)));if(!e){let e=i.some(e=>e.status===`rejected`);n=e?n+1:0,Ee(e?`partial`:null),z(Object.fromEntries(i.flatMap((e,t)=>e.status===`fulfilled`?[[r[t].session_id,e.value]]:[])))}}}catch{n+=1,e||Ee(`offline`)}e||(t=window.setTimeout(()=>void r(),Math.min(3e4,2e3*2**Math.min(n,4))))}};return r(),()=>{e=!0,window.clearTimeout(t)}},[h,D?.goalId]),(0,B.useEffect)(()=>{if(!ce)return;let e=window.requestAnimationFrame(()=>{Ie.current?.querySelector(`[role="menuitem"]:not(:disabled)`)?.focus()});return()=>{window.cancelAnimationFrame(e),Le.current?.focus()}},[ce]),(0,B.useEffect)(()=>{if(!ue)return;let e=window.requestAnimationFrame(()=>Re.current?.focus());return()=>{window.cancelAnimationFrame(e),ze.current?.focus()}},[ue]),(0,B.useEffect)(()=>{if(!ce&&!ue)return;let e=e=>{e.key===`Escape`&&(le(!1),de(!1))};return window.addEventListener(`keydown`,e),()=>window.removeEventListener(`keydown`,e)},[ce,ue]);function Je(e,t){let n=Oe.current++;return ge(r=>({...r,[e]:[...r[e]??[],{...t,id:n,role:`assistant`}]})),n}function Ye(e,t,n){ge(r=>({...r,[e]:(r[e]??[]).map(e=>e.id===t?{...e,...n}:e)}))}async function Xe(e,t){let n=e.trim();if(!n)return;let r=t&&`goalId`in t?t.goalId??`manager`:N,i=r===`manager`?null:E.goals.find(e=>e.goalId===r)??null,a=t?.agentId?gh(re,t.agentId,ie):L,o=r===`manager`?E:i?{...E,blockingTodoCount:E.userTodos.filter(e=>e.goalId===i.goalId&&e.blocking).length,goals:[i],openUserTodoCount:E.userTodos.filter(e=>e.goalId===i.goalId).length,userTodos:E.userTodos.filter(e=>e.goalId===i.goalId),visibleUserTodos:E.userTodos.filter(e=>e.goalId===i.goalId)}:E,s=Oe.current++;if(ge(e=>({...e,[r]:[...e[r]??[],{attachments:t?.attachments,id:s,lines:[],role:`user`,text:n}]})),me(``),be(r),a.agentId===`status-only`||!i&&r!==`manager`){let e=kC(O,o,n),t=a.agentId===`status-only`;Je(r,{agentLabel:t?`仅查状态`:`LoopX 管家`,lines:e.lines.slice(0,3),sourceLabel:t?`LoopX 状态投影 · 仅查状态`:`LoopX 状态投影`,text:e.text}),qh({answer:[e.text,...e.lines.slice(0,3)].filter(Boolean).join(` +`),contextKind:r===`manager`?`manager`:`goal`,goalId:r===`manager`?void 0:r,question:n}).catch(()=>{}),be(null);return}let c=`${r}:${a.agentId}`,l=null;try{let e=Ae.current.get(c);if(!e){let t=je.current.has(c)?`new`:`resume_latest`,n=r===`manager`?I[r]:a.agentId,o=await Jh(r===`manager`?``:i.goalId,n,t,r===`manager`?`manager`:`goal`);r===`manager`&&o.session.manager_runtime&&C(o.session.manager_runtime),e=o.session_id,Ae.current.set(c,e),qe(r,{agentId:o.agent_id||a.agentId,resumable:!0,sessionId:e,status:`ready`}),je.current.delete(c)}let o=``;l=Je(r,{activity:[r===`manager`?`正在连接管家`:`正在连接 Agent`],agentLabel:Ve(r,a.label),lines:[],pending:!0,sourceLabel:r===`manager`?`${_(`header.manager`)} · 跨 Goal`:`${a.label} Agent · ${eC(i.goalId)}`,text:``});let s=(await rg(e,n,{attachments:t?.attachments,signal:(()=>{let e=new AbortController;return Ne.current.set(r,e),e.signal})(),onDelta:e=>{o+=e,l!==null&&Ye(r,l,{text:o})},onActivity:e=>{l!==null&&ge(t=>({...t,[r]:(t[r]??[]).map(t=>t.id===l?{...t,activity:[...new Set([...t.activity??[],e])].slice(-6)}:t)}))},onPhase:(t,n)=>{Me.current.set(r,n),qe(r,{agentId:a.agentId,resumable:!0,sessionId:e,status:`running`,turnId:n})}})).response;Ye(r,l,{lines:s.gate?[s.gate.summary,s.gate.next_action].filter(Boolean).slice(0,2):[],pending:!1,text:tC(s.message||o.trim())||`${Ve(r,a.label)} 已完成分析。`});let u=s.proposals.filter(_h);if(u.length>0&&!i&&Ye(r,l,{lines:[`请进入要修改的 Goal,预览并确认具体变更。`]}),u.length>0&&i){let e=u.map(e=>({goalId:i.goalId,id:ke.current++,previewId:null,proposal:e,receiptLabel:null,state:`candidate`,statusMessage:null}));ve(t=>({...t,[r]:[...t[r]??[],...e]}))}if(r!==`manager`&&s.protected_action){let e=IS(r,n,s.protected_action);if(e)return e}}catch(e){if(Pe.current.delete(r)){let e={agentLabel:Ve(r,a.label),lines:[],pending:!1,sourceLabel:r===`manager`?`${_(`header.manager`)}会话`:`${a.label} 会话`,text:`已中断。你可以在当前会话继续发送消息。`};l===null?Je(r,e):Ye(r,l,e);return}let t=e instanceof Ph?e.payload:null;t&&vh(t)&&Ae.current.delete(c),t?.error_code===`resume_failed`&&(Ae.current.delete(c),je.current.add(c),qe(r,{agentId:a.agentId,resumable:!1,sessionId:xe[r]?.sessionId??`resume-failed`,status:`resume_failed`}));let n=t?.gate,i=n&&typeof n==`object`?String(n.summary??``):``,o={agentLabel:Ve(r,a.label),lines:i?[i]:[],pending:!1,reconnect:t?.reconnectable===!0,sourceLabel:`LoopX Chat 本地后端`,text:t?.error_code===`resume_failed`?`原 ${Ve(r,a.label)} 会话无法恢复。本地历史已经保留,请在运行详情里选择“重试恢复”或“开始新 Session”。`:e instanceof Error?e.message:`${Ve(r,a.label)} 会话暂时不可用。`};l===null?Je(r,o):Ye(r,l,o)}finally{Me.current.delete(r),Ne.current.delete(r);let e=Ae.current.get(c);e&&qe(r,{agentId:a.agentId,resumable:!0,sessionId:e,status:`ready`}),be(e=>e===r?null:e)}}async function Ze(e){let t=e?.goalId??N,n=xe[t],r=e?.agentId??n?.agentId??L.agentId,i=`${t}:${r}`,a=e?.sessionId??n?.sessionId??Ae.current.get(i),o=e?.turnId??n?.turnId??Me.current.get(t);if(!(!a||!o))try{Pe.current.add(t),await ng(a,o),Ne.current.get(t)?.abort()}catch(e){throw Pe.current.delete(t),e}finally{Me.current.delete(t),qe(t,{agentId:r,resumable:!0,sessionId:a,status:`ready`}),Ne.current.delete(t),be(e=>e===t?null:e)}}async function Qe(e){let t=e.goalId,n=`${t}:${e.agentId}`,r=e.sessionId??xe[t]?.sessionId??Ae.current.get(n);if(r)try{let i=await sg(r);Ae.current.set(n,r),je.current.delete(n),qe(t,{agentId:e.agentId,resumable:i.session.resumable,sessionId:r,status:i.session.status})}catch{qe(t,{agentId:e.agentId,resumable:!1,sessionId:r,status:`resume_failed`})}}function $e(e){let t=`${e.goalId}:${e.agentId}`;Ae.current.delete(t),je.current.add(t),qe(e.goalId,{agentId:e.agentId,resumable:!0,sessionId:`new-session-pending`,status:`ready`})}async function et(e){let t=`${e.goalId}:${e.agentId}`,n=e.sessionId??xe[e.goalId]?.sessionId??Ae.current.get(t);n&&n!==`new-session-pending`&&await og(n),Ae.current.delete(t),je.current.add(t),qe(e.goalId,null)}function tt(e){re.some(t=>t.agentId===e&&t.available)&&(se(t=>({...t,[N]:e})),le(!1))}function nt(){i(``),fe(`chat`)}function rt(e){i(e),fe(`chat`)}D&&$S[D.state],D&&(`${L.label}${D.state}`,Ue.length>0&&`${Ge}`,He.length>0&&`${He.length}`),D?.state===`需修复`||!D&&!c.ok?(D&&iC(D.agentId),D?.nextSentence,D?.agentSentence):D?.state===`等你`?(D.needsYouBlocking,D.needsYouBlocking,D.needsYou??D.nextSentence,D.needsYou):(D&&iC(D.agentId),D?.nextSentence);let it=[...!D&&xe.manager?.status===`resume_failed`?[{id:`run:manager:resume-failed`,kind:`run`,run:{agentId:xe.manager.agentId,agentLabel:iC(xe.manager.agentId),canInterrupt:!1,completedSteps:0,goalId:`manager`,goalTitle:`LoopX 管家`,latestActivity:`本地聊天记录已保留,点我查看恢复方式。`,resumable:!1,runId:`manager:resume-failed`,sessionId:xe.manager.sessionId,sessionStatus:`resume_failed`,status:`failed`,title:`上次会话需要恢复`,totalSteps:1,outputs:[]}}]:[],...D?Ce.map(e=>{let t=e.channel_id?.startsWith(`task.`)?e.channel_id.slice(5):void 0,n=D.agentTodos.find(e=>e.todoId===t),r=!!e.active_turn_id,i=De[e.session_id],a=i?.messages.some(e=>nC(e.role,e.text))===!0;return{id:`run:task:${e.session_id}`,kind:`run`,run:{agentId:e.agent_id,agentLabel:iC(e.agent_id),canInterrupt:r,completedSteps:n?.done||a?1:0,goalId:D.goalId,goalTitle:D.title,latestActivity:r?`Agent 正在执行,可进入 Session 查看过程或发送纠偏。`:a?`Agent 已返回结果,点击查看结果与完整运行记录。`:`执行 Session 已保留,可继续纠偏或恢复。`,resumable:e.resumable,runId:e.session_id,sessionId:e.session_id,sessionMessages:i?.messages.map(e=>({createdAt:e.created_at,messageId:e.message_id,role:e.role===`user`?`user`:nC(e.role,e.text)?`assistant`:`error`,text:e.role===`user`?e.text:tC(e.text)})),sessionStatus:a?`completed`:e.status,status:n?.done||a?`completed`:r?`running`:e.status===`resume_failed`?`failed`:`waiting`,title:n?.text??`Agent 执行任务`,todoId:t,totalSteps:1,turnId:e.active_turn_id??void 0}}}):[],...D?[{id:`run:${D.goalId}`,kind:`run`,run:{agentId:xe[D.goalId]?.agentId??D.agentId,agentLabel:iC(xe[D.goalId]?.agentId??D.agentId),canInterrupt:!!xe[D.goalId]?.turnId,completedSteps:D.agentTodos.filter(e=>e.done).length,goalId:D.goalId,goalTitle:D.title,latestActivity:D.agentSentence,resumable:xe[D.goalId]?.resumable??!0,runId:`goal:${D.goalId}`,sessionId:xe[D.goalId]?.sessionId,sessionStatus:xe[D.goalId]?.status,status:xe[D.goalId]?.turnId?`running`:D.state===`需修复`?`failed`:`waiting`,title:D.nextSentence,totalSteps:D.agentTodos.length||1,turnId:xe[D.goalId]?.turnId,outputs:D.runEvidence?[{createdAt:D.runEvidence.generatedAt,kind:`evidence`,outputId:`${D.goalId}:latest-evidence`,title:D.runEvidence.label}]:[]}}]:[],...Be.map(e=>({id:`message:${e.id}`,kind:`message`,message:{agentLabel:e.agentLabel,attachments:e.attachments,id:String(e.id),pending:e.pending,returnDelivery:e.returnDelivery,role:e.role,text:e.text||(e.pending?`Agent 正在处理…`:e.lines.join(` +`))}})),...(D?[D]:E.goals).flatMap(e=>e.runEvidence?[{id:`output:${e.goalId}:${e.runEvidence.generatedAt||`latest`}`,kind:`output`,output:{agentLabel:iC(e.agentId),createdAt:e.runEvidence.generatedAt,goalId:e.goalId,goalTitle:e.title,kind:`evidence`,outputId:`${e.goalId}:latest-evidence`,runId:e.runEvidence.runId??void 0,safePreview:e.runEvidence.safePreview,summary:e.runEvidence.summary,title:e.runEvidence.label,todoId:e.runEvidence.todoId??void 0}}]:[]),...D&&k?[{id:`output:${D.goalId}:report:${k.publication.publication_id}`,kind:`output`,output:{agentId:k.agent_id,agentLabel:iC(k.agent_id),createdAt:k.publication.delivered_at,goalId:D.goalId,goalTitle:D.title,kind:`report`,outputId:k.publication.publication_id,report:{addedCount:k.delta.added_count,changedCount:k.delta.changed_count,deliveredAt:k.publication.delivered_at,generationId:k.generation_id,items:k.delta.items.map(e=>({changeKind:e.change_kind,previousStatus:e.previous_status,sourceRef:e.source_ref,status:e.status,summary:e.summary,title:e.title})),periodEndAt:k.period_window.end_at,periodStartAt:k.period_window.start_at,predecessorPublicationId:k.publication.predecessor_publication_id,publicationId:k.publication.publication_id},safePreview:k.delta.items.map(e=>`${e.change_kind===`added`?`+`:`~`} ${e.title}\n${e.summary}`).join(` -`),summary:k.summary,title:k.title}}]:[]],at=f.connectionState===`connected`,ot=new Map(E.goals.map(e=>[e.goalId,e.title])),st=e=>Wd(e,f.activeSource.statusUrl,at&&!l?.errors[e.goalId],ot.get(e.goalId)),ct={...Ay(E),userTodos:E.userTodos.map(st),attentionHistory:(E.attentionHistory??E.userTodos).map(st),periodicReports:{error:te,loading:j},timeline:it};return(0,V.jsxs)(`div`,{className:p===`dark`?`dark`:``,"data-testid":`personal-goal-home`,children:[Te?(0,V.jsx)(`p`,{role:`status`,className:`m-0 bg-amber-50 px-4 py-2 text-sm text-amber-900`,children:_(Te===`partial`?`runs.discoveryPartial`:`runs.discoveryOffline`)}):null,(0,V.jsx)(lS,{agents:re.map(e=>({adapterKind:e.adapterKind,agentId:e.agentId,available:e.available,capability:e.capability,interrupt:e.interrupt,label:e.label,location:e.location,resume:e.resume,source:e.source,streaming:e.streaming,toolCalls:e.toolCalls,trustScope:e.trustScope,workspaceCompatibility:e.available?`当前 Goal 写入前验证`:`不可用,需先修复 Endpoint`})),callbacks:{onApplyAttention:e=>rt(e.goalId),onCorrectRun:async(e,t)=>{if(!e.sessionId)throw Error(`这个 Run 还没有可纠偏的执行 Session。`);let n=await Lh((await Ph({actionKind:`run.correct`,context:{kind:`run`,goal_id:e.goalId,todo_id:e.todoId},idempotencyKey:`workspace-run-correct-${e.sessionId}-${Date.now().toString(36)}`,normalizedParameters:{goal_id:e.goalId,message:t,session_id:e.sessionId},summary:`纠偏执行任务:${e.title}`})).proposal_id),r=typeof n.turn?.turn_id==`string`?n.turn.turn_id:void 0;if(qe(e.goalId,{agentId:e.agentId,resumable:!0,sessionId:e.sessionId,status:r?`running`:`ready`,turnId:r}),r){Me.current.set(e.goalId,r);let t=new AbortController;Ne.current.set(e.goalId,t);let n=``,i=Je(e.goalId,{activity:[`正在把纠偏送入原执行 Session`],agentLabel:e.agentLabel,lines:[],pending:!0,sourceLabel:`${e.agentLabel} · 执行 Session`,text:``});try{let a=await eg(e.sessionId,r,{signal:t.signal,onDelta:t=>{n+=t,Ye(e.goalId,i,{text:n})}});Ye(e.goalId,i,{activity:[],pending:!1,text:XS(a.response.message||n.trim())||`${e.agentLabel} 已完成纠偏。`})}catch(t){let n=Pe.current.delete(e.goalId);Ye(e.goalId,i,{activity:[],pending:!1,text:n?`已中断。你可以在当前会话继续发送消息。`:t instanceof Error?t.message:`纠偏回合失败。`})}finally{Me.current.delete(e.goalId),Ne.current.delete(e.goalId),qe(e.goalId,{agentId:e.agentId,resumable:!0,sessionId:e.sessionId,status:`ready`})}}},onCloseRunSession:et,onInterruptRun:async e=>Ze(e),onOpenGoal:rt,onOpenRunSession:async e=>{if(!e.sessionId)return;let t=e.sessionId,n=await Wh(t);z(e=>({...e,[t]:n})),rt(e.goalId),ge(t=>({...t,[e.goalId]:n.messages.map(t=>({agentLabel:t.role===`user`?void 0:e.agentLabel,attachments:GS(t.attachments),id:Oe.current++,lines:[],role:t.role===`user`?`user`:`assistant`,sourceLabel:t.role===`user`?void 0:`${e.agentLabel} · 执行 Session`,text:t.role===`user`?t.text:XS(t.text)}))})),qe(e.goalId,{agentId:e.agentId,resumable:n.session.resumable,sessionId:t,status:n.session.active_turn_id?`running`:n.session.status,turnId:n.session.active_turn_id??void 0})},onOpenOutput:e=>rt(e.goalId),...b?{onPreviewGoalSubagentConfiguration:async e=>{let t=await ag(e);return{changed:t.changed,configuration:{allowedDomains:t.after.orchestration.allowed_domains,enabled:t.feature_summary.multi_subagent===`enabled`,maxChildren:t.after.orchestration.max_children,modelConfig:t.after.orchestration.model_config},previewId:t.preview_id}},onApplyGoalSubagentConfiguration:async({previewId:e,...t})=>{let n=await og(t,e);return{allowedDomains:n.after.orchestration.allowed_domains,enabled:n.feature_summary.multi_subagent===`enabled`,maxChildren:n.after.orchestration.max_children,modelConfig:n.after.orchestration.model_config}}}:{},...g?{onExecuteGoalLifecycle:async({goalId:e,operation:t,reason:n})=>{let r=await Fb(g,e,t,n);return{activationState:r.activation_state,projectionVerified:r.projection_verified}}}:{},onGoalActivationStateChange:n,onGoalDeleted:r,onReconcileStatus:a,onRetryGoalArchive:s,onExportOutput:async e=>{let t=[`# ${e.title}`,``,e.summary??``,``,e.safePreview??`此产出没有可用的公开安全预览。`,``,`Goal: ${e.goalId}`,`Todo: ${e.todoId??`unlinked`}`,`Run: ${e.runId??`unlinked`}`].join(` -`),n=URL.createObjectURL(new Blob([t],{type:`text/markdown;charset=utf-8`})),r=document.createElement(`a`);r.href=n,r.download=`${e.outputId.replace(/[^a-z0-9._-]+/gi,`-`)}.md`,r.click(),URL.revokeObjectURL(n)},onRefresh:o,onRetryResumeRun:Qe,onSelectAgent:tt,onSelectGoal:e=>e?rt(e):nt(),onSendMessage:async(e,t,n,r)=>Xe(e,{agentId:t,goalId:n,attachments:r}),onStartNewRunSession:$e},goalArchiveLoadState:e,managerChannelBinding:w,managerRuntime:S,model:ct,readOnly:h,selectedAgentId:L.agentId,selectedGoalId:D?.goalId??null,statusSourceControl:f})]})}function DC({error:e,isLoading:t,onRetry:n,requestedUrl:r,theme:i,toggleTheme:a}){let o=!!(e&&/failed to fetch|networkerror|load failed/i.test(e)&&r.includes(`status.json`));return(0,V.jsx)(`div`,{className:i===`dark`?`dark`:``,children:(0,V.jsxs)(`main`,{className:`min-h-screen bg-[#f6f7f9] text-slate-950 dark:bg-[#09090b] dark:text-zinc-50`,children:[(0,V.jsxs)(`header`,{className:`flex min-h-16 flex-wrap items-center justify-between gap-3 border-b border-slate-200 bg-white px-4 py-3 dark:border-zinc-800 dark:bg-zinc-950 sm:px-6`,children:[(0,V.jsxs)(`div`,{children:[(0,V.jsx)(`h1`,{className:`text-xl font-semibold`,children:`LoopX Workspace`}),(0,V.jsx)(`p`,{className:`mt-1 break-all text-sm text-slate-500 dark:text-zinc-400`,children:`Personal Workspace`})]}),(0,V.jsx)(dy,{"aria-label":`切换主题`,onClick:a,size:`icon`,variant:`secondary`,children:i===`dark`?(0,V.jsx)(Zm,{className:`h-4 w-4`}):(0,V.jsx)(Mm,{className:`h-4 w-4`})})]}),(0,V.jsxs)(`div`,{className:`grid min-h-[calc(100vh-80px)] sm:grid-cols-[240px_1fr]`,children:[(0,V.jsxs)(`aside`,{className:`hidden border-r border-slate-200 p-6 dark:border-zinc-800 sm:block`,"aria-label":`Workspace`,children:[(0,V.jsx)(`strong`,{children:`LoopX`}),(0,V.jsx)(`p`,{className:`mt-6 text-sm`,children:`Workspace`}),(0,V.jsx)(`p`,{className:`mt-8 text-xs text-slate-500`,children:`Goals`}),[1,2,3].map(e=>(0,V.jsx)(`div`,{className:`mt-4 h-8 rounded bg-slate-100 dark:bg-zinc-900`},e))]}),(0,V.jsx)(`div`,{className:`p-4 sm:p-8`,children:(0,V.jsx)(fy,{"data-testid":`initial-status-state`,children:(0,V.jsx)(py,{className:`flex min-h-64 items-center justify-center p-6`,children:(0,V.jsxs)(`div`,{className:`max-w-xl text-center`,children:[e?(0,V.jsx)(om,{className:`mx-auto h-6 w-6 text-rose-600 dark:text-rose-300`}):(0,V.jsx)(zm,{className:`mx-auto h-6 w-6 animate-spin text-slate-500 dark:text-zinc-400`}),(0,V.jsx)(`p`,{className:`mt-3 text-sm font-medium`,children:e?`无法加载实时状态`:`正在加载实时状态`}),e?(0,V.jsxs)(V.Fragment,{children:[(0,V.jsx)(`p`,{className:`mt-2 break-words text-sm leading-6 text-slate-500 dark:text-zinc-400`,children:o?`本地状态服务暂时未连接。升级或启动期间可能短暂断开,请重试;仍失败时重新打开 LoopX App,或运行 loopx doctor。`:e}),o?(0,V.jsx)(`p`,{className:`mt-2 text-xs leading-5 text-slate-400 dark:text-zinc-500`,children:`重新加载不会执行任务,也不会改变 Goal 配置。`}):null,(0,V.jsx)(`div`,{className:`mt-4 flex flex-wrap justify-center gap-2`,children:(0,V.jsxs)(dy,{disabled:t,onClick:n,children:[(0,V.jsx)(zm,{className:`h-4 w-4`}),`重试`]})})]}):(0,V.jsx)(`p`,{className:`mt-2 text-sm leading-6 text-slate-500 dark:text-zinc-400`,role:`status`,children:`正在连接 Workspace,Goal 列表将先出现,详细状态会逐个补齐。 / Connecting to your Workspace. Goals load independently.`})]})})})})]})]})})}function OC(){let e=Tw.useSearch(),t=Tw.useNavigate(),[n,r]=(0,B.useState)(`light`),[i,a]=(0,B.useState)(null),o=(0,B.useRef)(null),s=(0,B.useRef)(e.goalId);s.current=e.goalId;let[c,l]=(0,B.useState)(Op),[u,d]=(0,B.useState)({kind:`example`,label:`bundled example`}),[f,p]=(0,B.useState)(()=>SS(window.localStorage,window.location.href)),m=(0,B.useRef)(f);m.current=f;let[h,g]=(0,B.useState)(e.statusUrl),[_,v]=(0,B.useState)(null),[y,b]=(0,B.useState)(!1),[x,S]=(0,B.useState)({error:null,phase:`idle`}),[C,w]=(0,B.useState)(e.statusUrl.trim()||null),[T,E]=(0,B.useState)(!1),D=(0,B.useRef)(null),O=(0,B.useRef)(i_(e.statusUrl.trim()||null)),k=!T&&u.kind===`example`?e.statusUrl.trim():``,ee=C??k,te=u.kind===`url`?u.label:MS,A=!!(_&&C),j=kS(f,C,te,window.location.href),M=u.kind===`example`&&!T,ne=c.attention_queue,N=c.run_history,P=(0,B.useMemo)(()=>FS(N.goals,ne.items),[N.goals,ne.items]);function re(e,t,n=0){S({error:null,phase:`loading`}),NS(ch(e,`stopped`,window.location.href)).then(r=>{if(!c_(O.current,t))return;let i=r.goal_projection?.registry_revision??null,a=t.registryRevision!==null&&t.registryRevision!==void 0&&i!==null&&t.registryRevision!==i;if(l(e=>j_(e,r)),a&&n<1){F(e,{background:!0,resyncAttempt:n+1});return}S(a?{error:`Goal 状态在加载历史时发生变化,请重试。`,phase:`error`}:{error:null,phase:`ready`})}).catch(e=>{c_(O.current,t)&&S({error:Dp(e),phase:`error`})})}function ie(){let e=u.kind===`url`?u.label:h||MS,t=o_(O.current,e,{background:!0});if(i){F(e);return}t&&re(e,t)}async function ae(e,n,r){if(r.background)return l(e=>j_(e,n)),!0;let i={kind:`url`,label:e};return O.current.loadedUrl=e,l(n),d(i),g(e),await t({search:t=>({...t,statusUrl:e})}),s_(O.current,r)?(O.current.requestedUrl=null,w(null),!0):!1}async function F(e,t={}){let n=e.trim(),r=t.background===!0;if(!n){r||v(`状态地址不能为空`);return}let c=o_(O.current,n,{background:r,selectionRevision:t.selectionRevision});if(!c)return;o.current?.abort();let d=new AbortController;o.current=d,r||(D.current=null,E(!1),w(n),b(!0),v(null),S({error:null,phase:`idle`}));try{let e=await Mp(n,window.location.href).catch(()=>null);if(!c_(O.current,c))return;if(e){let o=(t.retryOnly||t.reuseSnapshots)&&u.kind===`url`&&u.label===n?Ap(i,e,{invalidateGoalIds:t.invalidateGoalIds}):{};a({directory:e,snapshots:o,errors:{}});let f={...e,goals:e.goals.filter(e=>!o[e.id])},p=!1,m=Np(e);if(r)l(m);else if(!await ae(n,m,c))return;if(S({error:null,phase:`loading`}),await Fp(n,window.location.href,f,(e,t,n)=>{n===`revision`&&(p=!0),a(r=>r&&{...r,snapshots:t?{...r.snapshots,[e]:t}:r.snapshots,errors:n?{...r.errors,[e]:n}:r.errors})},()=>c_(O.current,c),()=>s.current,d.signal),p&&(t.resyncAttempt??0)<1&&c_(O.current,c)){await F(n,{resyncAttempt:1});return}c_(O.current,c)&&S({error:null,phase:`ready`});return}let o=await NS(ch(n,`active`,window.location.href));if(!c_(O.current,c)||(a(null),c.registryRevision=o.goal_projection?.registry_revision??null,!await ae(n,o,c)))return;if(o.goal_projection?.scope!==`active`||o.goal_projection.complete){S({error:null,phase:`ready`});return}re(n,c,t.resyncAttempt??0)}catch(e){if(!s_(O.current,c))return;r||v(Dp(e))}finally{!r&&s_(O.current,c)&&b(!1)}}function oe(e,t={}){o.current?.abort();let n=a_(O.current,e.statusUrl);D.current=null,E(!1),w(e.statusUrl),b(!0),v(null),(async()=>{if(t.ensureTunnel&&e.kind===`ssh_tunnel`){let t=new URL(e.statusUrl,window.location.href).port;if(t)try{await Pb(e.label,t)}catch{}}O.current.selectionRevision===n&&await F(e.statusUrl,{selectionRevision:n})})()}function I(e){m.current=e,p(e);try{CS(window.localStorage,e)}catch{}}let se={activeSource:j,connectionState:y?`loading`:A?`error`:`connected`,errorMessage:A?`未切换到 ${C??`所选来源`}:${_}`:null,onAdd:e=>{let t=TS(f,e,window.location.href);return`error`in t?{error:t.error}:(I(t.catalog),oe(t.source,{ensureTunnel:e.ensureTunnel}),{})},onConfiguredHostsLoaded:e=>{let t=m.current,n=wS(t,e);n!==t&&I(n)},onRemove:e=>{I(ES(f,e)),j.id===e&&oe(_S)},onSelect:e=>{let t=f.sources.find(t=>t.id===e);t&&oe(t,{ensureTunnel:t.kind===`ssh_tunnel`})},sources:j.id===`temporary`?[...f.sources,j]:f.sources};(0,B.useEffect)(()=>{let t=e.statusUrl.trim();if(t){if(D.current===t||C&&C!==t)return;(u.kind!==`url`||u.label!==t)&&F(t);return}D.current=null,!T&&(C||u.kind===`example`&&F(MS))},[T,C,e.statusUrl,u.kind,u.label]),(0,B.useEffect)(()=>{if(e.statusUrl&&u.kind===`example`)return;let n=new Set(P.map(e=>e.goal.id));if(P.length===0){e.goalId&&t({search:e=>({...e,goalId:``})});return}e.goalId&&!n.has(e.goalId)&&x.phase!==`loading`&&t({search:e=>({...e,goalId:``})})},[x.phase,P,t,e.goalId,e.statusUrl,u.kind]),(0,B.useEffect)(()=>{if(!i||y||!e.goalId||u.kind!==`url`)return;let t=i.directory.goals.find(t=>t.id===e.goalId);t?.activation_state===`stopped`&&!i.snapshots[t.id]&&!i.errors[t.id]&&F(u.label,{retryOnly:!0})},[e.goalId,y,i,u]);function L(e){t({search:t=>({...t,goalId:e})})}return M?(0,V.jsx)(DC,{error:_,isLoading:y,onRetry:()=>void F(ee||MS),requestedUrl:ee||MS,theme:n,toggleTheme:()=>r(n===`dark`?`light`:`dark`)}):(0,V.jsx)(EC,{goalArchiveLoadState:x,isLoading:y,onGoalActivationStateChange:(e,t)=>{O.current.projectionRevision+=1,l(n=>wp(n,e,t)),a(n=>n&&{...n,snapshots:Object.fromEntries(Object.entries(n.snapshots).map(([n,r])=>[n,wp(r,e,t)]))})},onGoalDeleted:e=>{O.current.projectionRevision+=1,l(t=>Tp(t,e)),a(t=>t&&{...t,snapshots:Object.fromEntries(Object.entries(t.snapshots).filter(([t])=>t!==e))})},onSelectGoal:L,onReconcileStatus:e=>F(u.kind===`url`?u.label:h||MS,{background:!0,invalidateGoalIds:e?.invalidateGoalIds,reuseSnapshots:!0}),onRetryGoalArchive:ie,onRefresh:()=>F(u.kind===`url`?u.label:h||MS,{retryOnly:!!(i&&Object.keys(i.errors).length)}),payload:c,progress:i,rows:P,selectedGoalId:e.goalId,statusSourceControl:se,theme:n,toggleTheme:()=>r(n===`dark`?`light`:`dark`)})}var kC=I_(`inline-flex items-center gap-1 rounded-md border px-2 py-0.5 text-xs font-medium`,{variants:{variant:{neutral:`border-slate-200 bg-white text-slate-700 dark:border-zinc-800 dark:bg-zinc-950 dark:text-zinc-300`,success:`border-emerald-200 bg-emerald-50 text-emerald-800 dark:border-emerald-900 dark:bg-emerald-950 dark:text-emerald-200`,warning:`border-amber-200 bg-amber-50 text-amber-800 dark:border-amber-900 dark:bg-amber-950 dark:text-amber-200`,info:`border-sky-200 bg-sky-50 text-sky-800 dark:border-sky-900 dark:bg-sky-950 dark:text-sky-200`,danger:`border-rose-200 bg-rose-50 text-rose-800 dark:border-rose-900 dark:bg-rose-950 dark:text-rose-200`}},defaultVariants:{variant:`neutral`}});function AC({className:e,variant:t,...n}){return(0,V.jsx)(`span`,{className:ly(kC({variant:t}),e),...n})}var jC=[{label:`status payload`,source:`apps/presentation/dashboard/src/data/status.ts`,detail:`status_contract, attention_queue, local_dashboard_api, run_history`},{label:`channel projection`,source:`apps/presentation/dashboard/src/data/goal-channel-frontstage.ts`,detail:`decision_frame, todos, gates, leases, artifacts, truth_contract`},{label:`public showcase catalog`,source:`docs/showcases/showcase-catalog.json`,detail:`case metadata, visual hints, evidence boundaries, story beats`},{label:`route smoke`,source:`apps/presentation/dashboard/smoke/frontstage-route-smoke.ts`,detail:`static route contract, source guards, component expectations`}],MC=[{axis:`schema`,current:`goal_channel_projection_v0`,proposed:`new optional projection field`,gate:`parser default plus route smoke assertion`},{axis:`truth`,current:`event ledger and active state remain source of truth`,proposed:`derived UI state only`,gate:`truth_contract must stay read-only`},{axis:`privacy`,current:`compact source refs and warnings`,proposed:`public-safe fixture field`,gate:`loopx check and browser fake-private fixture`},{axis:`interaction`,current:`render, filter, select, inspect`,proposed:`no browser write by default`,gate:`write affordance requires explicit loopback capability`}],NC=[{title:`Fixture sources`,body:`Use examples/status.example.json, browser-smoke fixtures, and docs/showcases/showcase-catalog.json.`},{title:`Required proof`,body:`Every projection addition needs parser coverage, route smoke assertions, and one browser or bundle check when UI output changes.`},{title:`Never include`,body:`Raw task text, trajectories, transcripts, local paths, private registry state, credentials, or internal document links.`}],PC=[`npm --prefix apps/presentation/dashboard run smoke:frontstage-route`,`npm --prefix apps/presentation/dashboard run smoke:frontstage-browser`,`npm --prefix apps/presentation/dashboard run smoke:frontstage-share-bundle`,`npm --prefix apps/presentation/dashboard run build`,`loopx check --scan-path apps/presentation/dashboard --scan-path docs/status-data-contract.md`],FC=[{name:`Projection lane`,badges:[`read-only`,`schema v0`],body:`Summarizes one compact projection lane without mutating the underlying LoopX state.`},{name:`Capability badge`,badges:[`loopback`,`dry-run`],body:`Shows an advertised local capability only after the status feed declares it.`},{name:`Boundary warning`,badges:[`public-safe`,`omitted`],body:`Names omitted private material and points contributors back to compact source references.`}];function IC({children:e,icon:t,title:n}){return(0,V.jsxs)(`section`,{className:`rounded-lg border border-slate-200 bg-white shadow-sm`,children:[(0,V.jsx)(`div`,{className:`flex items-center justify-between gap-3 border-b border-slate-200 px-4 py-3`,children:(0,V.jsxs)(`h2`,{className:`flex items-center gap-2 text-sm font-semibold text-slate-950`,children:[(0,V.jsx)(t,{className:`h-4 w-4 text-slate-500`}),n]})}),e]})}function LC(){return(0,V.jsx)(IC,{icon:em,title:`Status Contract Explorer`,children:(0,V.jsx)(`div`,{className:`grid gap-3 p-4 lg:grid-cols-2`,"data-testid":`developer-contract-explorer`,children:jC.map(e=>(0,V.jsxs)(`div`,{className:`rounded-md border border-slate-200 bg-slate-50 px-3 py-3`,children:[(0,V.jsxs)(`div`,{className:`flex flex-wrap items-center gap-2`,children:[(0,V.jsx)(AC,{variant:`info`,children:e.label}),(0,V.jsx)(AC,{variant:`neutral`,children:`public contract`})]}),(0,V.jsx)(`div`,{className:`mt-2 break-words font-mono text-xs text-slate-700`,children:e.source}),(0,V.jsx)(`p`,{className:`mt-2 text-sm leading-6 text-slate-600`,children:e.detail})]},e.label))})})}function RC(){return(0,V.jsx)(IC,{icon:bm,title:`Projection Diffing`,children:(0,V.jsx)(`div`,{className:`overflow-x-auto`,"data-testid":`developer-projection-diffing`,children:(0,V.jsxs)(`table`,{className:`min-w-full border-separate border-spacing-0 text-left text-sm`,children:[(0,V.jsx)(`thead`,{children:(0,V.jsxs)(`tr`,{className:`bg-slate-50 text-xs uppercase tracking-normal text-slate-500`,children:[(0,V.jsx)(`th`,{className:`border-b border-slate-200 px-4 py-3 font-semibold`,children:`Axis`}),(0,V.jsx)(`th`,{className:`border-b border-slate-200 px-4 py-3 font-semibold`,children:`Current`}),(0,V.jsx)(`th`,{className:`border-b border-slate-200 px-4 py-3 font-semibold`,children:`Proposed`}),(0,V.jsx)(`th`,{className:`border-b border-slate-200 px-4 py-3 font-semibold`,children:`Gate`})]})}),(0,V.jsx)(`tbody`,{children:MC.map(e=>(0,V.jsxs)(`tr`,{className:`align-top`,children:[(0,V.jsx)(`td`,{className:`border-b border-slate-100 px-4 py-3 font-semibold text-slate-950`,children:e.axis}),(0,V.jsx)(`td`,{className:`border-b border-slate-100 px-4 py-3 text-slate-600`,children:e.current}),(0,V.jsx)(`td`,{className:`border-b border-slate-100 px-4 py-3 text-slate-600`,children:e.proposed}),(0,V.jsx)(`td`,{className:`border-b border-slate-100 px-4 py-3 text-slate-600`,children:e.gate})]},e.axis))})]})})})}function zC(){return(0,V.jsx)(IC,{icon:gm,title:`Fixture Generation`,children:(0,V.jsx)(`div`,{className:`grid gap-3 p-4 md:grid-cols-3`,"data-testid":`developer-fixture-generation`,children:NC.map(e=>(0,V.jsxs)(`div`,{className:`rounded-md border border-slate-200 bg-slate-50 px-3 py-3`,children:[(0,V.jsx)(`div`,{className:`text-sm font-semibold text-slate-950`,children:e.title}),(0,V.jsx)(`p`,{className:`mt-2 text-sm leading-6 text-slate-600`,children:e.body})]},e.title))})})}function BC(){return(0,V.jsx)(IC,{icon:cm,title:`Smoke Checklist`,children:(0,V.jsx)(`div`,{className:`space-y-2 p-4`,"data-testid":`developer-smoke-checklist`,children:PC.map(e=>(0,V.jsxs)(`div`,{className:`flex items-start gap-3 rounded-md border border-slate-200 bg-slate-50 px-3 py-2`,children:[(0,V.jsx)(Zp,{className:`mt-0.5 h-4 w-4 shrink-0 text-emerald-600`}),(0,V.jsx)(`code`,{className:`break-all text-xs font-semibold leading-5 text-slate-700`,children:e})]},e))})})}function VC(){return(0,V.jsx)(IC,{icon:lm,title:`Component Examples`,children:(0,V.jsx)(`div`,{className:`grid gap-3 p-4 lg:grid-cols-3`,"data-testid":`developer-component-examples`,children:FC.map(e=>(0,V.jsxs)(`article`,{className:`rounded-md border border-slate-200 bg-slate-50 p-3`,children:[(0,V.jsx)(`div`,{className:`flex flex-wrap gap-2`,children:e.badges.map(e=>(0,V.jsx)(AC,{variant:e===`read-only`||e===`public-safe`?`success`:`neutral`,children:e},e))}),(0,V.jsx)(`h3`,{className:`mt-3 text-sm font-semibold leading-6 text-slate-950`,children:e.name}),(0,V.jsx)(`p`,{className:`mt-2 text-sm leading-6 text-slate-600`,children:e.body})]},e.name))})})}function HC(){return(0,V.jsx)(`main`,{className:`min-h-screen bg-[#f7f7f4] px-4 py-4 text-slate-950 sm:px-5`,"data-testid":`frontstage-developer-cockpit`,children:(0,V.jsxs)(`div`,{className:`mx-auto grid max-w-[1500px] gap-4 xl:grid-cols-[260px_minmax(0,1fr)]`,children:[(0,V.jsxs)(`aside`,{className:`rounded-lg border border-slate-200 bg-white p-4 shadow-sm xl:sticky xl:top-4 xl:self-start`,children:[(0,V.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,V.jsx)(`div`,{className:`flex h-9 w-9 items-center justify-center rounded-md border border-slate-200 bg-slate-950 text-white`,children:(0,V.jsx)(Qm,{className:`h-4 w-4`})}),(0,V.jsxs)(`div`,{children:[(0,V.jsx)(`div`,{className:`text-sm font-semibold`,children:`Developer Cockpit`}),(0,V.jsx)(`div`,{className:`text-xs text-slate-500`,children:`Projection extension`})]})]}),(0,V.jsxs)(`div`,{className:`mt-4 grid gap-2`,children:[(0,V.jsxs)(`a`,{className:`flex items-center gap-2 rounded-md border border-slate-200 px-3 py-2 text-sm font-medium`,href:`https://huangruiteng.github.io/loopx/`,children:[(0,V.jsx)(wm,{className:`h-4 w-4`}),`LoopX home`]}),(0,V.jsxs)(`a`,{className:`flex items-center gap-2 rounded-md border border-slate-200 px-3 py-2 text-sm font-medium`,href:`https://huangruiteng.github.io/loopx/docs/showcases/index.en.html`,children:[(0,V.jsx)(mm,{className:`h-4 w-4`}),`Public cases`]}),(0,V.jsxs)(`a`,{className:`flex items-center gap-2 rounded-md bg-slate-950 px-3 py-2 text-sm font-medium text-white`,href:`/chat/developers/projections/`,children:[(0,V.jsx)(lm,{className:`h-4 w-4`}),`Developer cockpit`]})]}),(0,V.jsxs)(`div`,{className:`mt-5 space-y-2 rounded-md border border-emerald-200 bg-emerald-50 p-3 text-xs leading-5 text-emerald-950`,children:[(0,V.jsxs)(`div`,{className:`flex flex-wrap gap-2`,children:[(0,V.jsx)(AC,{variant:`success`,children:`read-only`}),(0,V.jsx)(AC,{variant:`neutral`,children:`public fixtures`})]}),(0,V.jsx)(`p`,{children:`This route uses static public contracts only; live status feeds, registry files, and browser write APIs stay outside the cockpit.`})]})]}),(0,V.jsxs)(`section`,{className:`space-y-4`,children:[(0,V.jsx)(`div`,{className:`rounded-lg border border-slate-200 bg-white px-5 py-5 shadow-sm`,children:(0,V.jsxs)(`div`,{className:`flex flex-wrap items-start justify-between gap-4`,children:[(0,V.jsxs)(`div`,{children:[(0,V.jsxs)(`div`,{className:`flex flex-wrap gap-2`,children:[(0,V.jsx)(AC,{variant:`info`,children:`developers/projections`}),(0,V.jsx)(AC,{variant:`success`,children:`public-safe`}),(0,V.jsx)(AC,{variant:`neutral`,children:`no browser writes`})]}),(0,V.jsx)(`h1`,{className:`mt-3 text-3xl font-semibold tracking-normal text-slate-950`,children:`LoopX Projection Developer Cockpit`}),(0,V.jsx)(`p`,{className:`mt-2 max-w-3xl text-sm leading-6 text-slate-600`,children:`A read-only contributor workbench for adding dashboard/frontstage projections without reverse-engineering the large operator page.`})]}),(0,V.jsxs)(`div`,{className:`grid min-w-[260px] gap-2 text-sm`,children:[(0,V.jsxs)(`div`,{className:`rounded-md border border-slate-200 bg-slate-50 px-3 py-2`,children:[(0,V.jsx)(`div`,{className:`text-[11px] font-semibold uppercase tracking-normal text-slate-500`,children:`Source of truth`}),(0,V.jsx)(`div`,{className:`mt-1 font-semibold text-slate-950`,children:`status contract + compact fixtures`})]}),(0,V.jsxs)(`div`,{className:`rounded-md border border-slate-200 bg-slate-50 px-3 py-2`,children:[(0,V.jsx)(`div`,{className:`text-[11px] font-semibold uppercase tracking-normal text-slate-500`,children:`Boundary`}),(0,V.jsx)(`div`,{className:`mt-1 font-semibold text-slate-950`,children:`read-only extension surface`})]})]})]})}),(0,V.jsxs)(`div`,{className:`grid gap-4 xl:grid-cols-2`,children:[(0,V.jsx)(LC,{}),(0,V.jsx)(RC,{})]}),(0,V.jsxs)(`div`,{className:`grid gap-4 xl:grid-cols-[minmax(0,1fr)_420px]`,children:[(0,V.jsx)(zC,{}),(0,V.jsx)(BC,{})]}),(0,V.jsx)(VC,{}),(0,V.jsx)(IC,{icon:qm,title:`Extension Boundary`,children:(0,V.jsxs)(`div`,{className:`grid gap-3 p-4 md:grid-cols-3`,"data-testid":`developer-extension-boundary`,children:[(0,V.jsxs)(`div`,{className:`rounded-md border border-emerald-200 bg-emerald-50 px-3 py-3`,children:[(0,V.jsx)(`div`,{className:`text-sm font-semibold text-slate-950`,children:`Allowed`}),(0,V.jsx)(`p`,{className:`mt-2 text-sm leading-6 text-slate-600`,children:`Versioned parser defaults, public fixtures, read-only route panels, and focused smoke assertions.`})]}),(0,V.jsxs)(`div`,{className:`rounded-md border border-amber-200 bg-amber-50 px-3 py-3`,children:[(0,V.jsx)(`div`,{className:`text-sm font-semibold text-slate-950`,children:`Review`}),(0,V.jsx)(`p`,{className:`mt-2 text-sm leading-6 text-slate-600`,children:`New dashboard dependencies, status contract fields, loopback capability display, and browser-visible workflows.`})]}),(0,V.jsxs)(`div`,{className:`rounded-md border border-rose-200 bg-rose-50 px-3 py-3`,children:[(0,V.jsx)(`div`,{className:`text-sm font-semibold text-slate-950`,children:`Stop`}),(0,V.jsx)(`p`,{className:`mt-2 text-sm leading-6 text-slate-600`,children:`Credentials, private registry material, raw logs, transcripts, production actions, or default browser write authority.`})]})]})})]})]})})}var UC=J({value:G().finite(),total:G().finite().positive().optional(),unit:W().optional(),higher_is_better:K()}).passthrough(),WC=gd(W(),G().finite()).default({}),GC=J({outcome_status:W().optional(),failure_class:W(),causal_summary:W(),expectedness:W(),implication:W(),next_probe:W(),confidence:W(),evidence_refs:q(W()).optional()}).passthrough(),KC=J({arm_id:W(),selected_run_id:W().nullable(),score_countable:K(),metrics:gd(W(),UC),effort:WC,insight:GC.nullable().optional()}),qC=J({run_id:W(),case_id:W(),arm_id:W(),arm_role:W(),status:W(),protocol_id:W(),runner_revision:W().optional(),observed_at:W(),metrics:gd(W(),UC),countability:J({integrity_qualified:K(),official_result_present:K(),score_countable:K()}).passthrough(),treatment_fidelity:W(),effort:WC,redacted_insight:GC.nullable().optional(),upload_provenance:J({producer_id:W(),producer_version:W(),observed_at:W(),source_revision:W()}).passthrough()}).passthrough(),JC=J({case_denominator:G().int().nonnegative(),value_sum:G().finite(),value_mean:G().finite().nullable(),value_median:G().finite().nullable(),value_min:G().finite().nullable(),value_max:G().finite().nullable(),case_macro_rate:G().finite().optional(),suite_micro_rate:G().finite().optional(),suite_micro_numerator:G().finite().optional(),suite_micro_denominator:G().finite().positive().optional()}).passthrough(),YC=J({arm_id:W(),arm_role:W(),factor_assignments:gd(W(),W()),protocol_counts:gd(W(),G().int().nonnegative()).default({}),runner_revision_counts:gd(W(),G().int().nonnegative()).default({}),orchestrator_runtime_counts:gd(W(),G().int().nonnegative()).default({}),intended_case_count:G().int().positive(),run_count:G().int().nonnegative(),terminal_run_count:G().int().nonnegative(),selected_score_countable_case_count:G().int().nonnegative(),coverage_rate:G().finite().min(0).max(1),metrics:gd(W(),JC),binary_outcomes:gd(W(),J({success_count:G().int().nonnegative(),case_denominator:G().int().nonnegative(),success_rate:G().finite().min(0).max(1).nullable()})),effort:gd(W(),J({denominator:G().int().nonnegative(),mean:G().finite().nullable(),median:G().finite().nullable()})),failure_class_counts:gd(W(),G().int().nonnegative())}).passthrough(),XC=J({baseline_value:G().finite(),candidate_value:G().finite(),delta:G().finite(),direction:Y([`improved`,`flat`,`regressed`]).optional()}).passthrough(),ZC=J({comparison_id:W(),comparison_anchor_run_id:W(),candidate_run_id:W(),candidate_arm_id:W(),primary_metric:W(),matched_pair_countable:X(!0),metric_deltas:gd(W(),XC)}).passthrough(),QC=J({ok:X(!0),schema_version:X(`benchmark_study_dashboard_v0`),benchmark_id:W(),study_id:W(),status:Y([`complete`,`provisional`]),design:J({protocol_id:W(),comparison_protocol_id:W(),baseline_arm_id:W(),case_set:J({case_set_id:W(),case_ids:q(W())}),metric_catalog:q(J({metric_name:W(),role:Y([`primary`,`guardrail`,`supporting`]),unit:W().optional(),higher_is_better:K(),binary:K()})),labels:gd(W(),W())}).passthrough(),campaign:J({intended_case_count:G().int().positive(),intended_arm_count:G().int().positive(),intended_cell_denominator:G().int().positive(),selected_score_countable_cell_count:G().int().nonnegative(),selected_score_countable_coverage_rate:G().finite().min(0).max(1),complete_declared_design_case_count:G().int().nonnegative(),ambiguous_score_countable_cell_count:G().int().nonnegative(),in_flight_run_count:G().int().nonnegative(),matched_pair_countable_count:G().int().nonnegative(),factorial_contrast_count:G().int().nonnegative(),factorial_contrast_countable_count:G().int().nonnegative(),runtime_observation_count:G().int().nonnegative(),runtime_classification_counts:gd(W(),G().int().nonnegative())}),arms:q(YC),contrasts:gd(W(),J({matched_pair_denominator:G().int().nonnegative(),primary_metric_directions:J({improved:G().int().nonnegative(),flat:G().int().nonnegative(),regressed:G().int().nonnegative()}),binary_metric_transitions:gd(W(),J({"0_to_1":G().int().nonnegative(),"1_to_0":G().int().nonnegative(),same:G().int().nonnegative()}))})),cases:q(J({case_id:W(),complete_declared_design:K(),arms:q(KC),eligible_comparisons:q(ZC),largest_eligible_primary_contrast:ZC.nullable()})),runs:q(qC),authority:J({score_source:W(),matched_comparison_source:W(),factorial_comparison_source:W().nullable(),manifest_changes_scores:X(!1),dashboard_is_execution_authority:X(!1)}),public_boundary:J({raw_task_recorded:X(!1),raw_trajectory_recorded:X(!1),hidden_evaluation_recorded:X(!1),raw_verifier_output_recorded:X(!1),credentials_recorded:X(!1),local_paths_recorded:X(!1)}),write_performed:X(!1),network_access_performed:X(!1)});function $C(e){return QC.parse(e)}function ew(e,t){let n=new URL(t),r=new URL(e||`/benchmark-study.example.json`,n);if(!new Set([`http:`,`https:`]).has(r.protocol))throw Error(`Benchmark dashboard source must use HTTP or HTTPS`);if(r.origin!==n.origin)throw Error(`Benchmark dashboard source must use same-origin local readback`);return r.toString()}var tw=[{id:`campaign`,label:`Campaign`},{id:`arms`,label:`Arms`},{id:`cases`,label:`Cases`},{id:`runs`,label:`Runs`}];function nw(e){return e==null?`—`:`${(e*100).toFixed(e>=.995?0:1)}%`}function rw(e){return e==null?`—`:new Intl.NumberFormat(`en`,{maximumFractionDigits:2,notation:`compact`}).format(e)}function iw(e){if(e==null)return`—`;let t=e/6e4;return t>=120?`${(t/60).toFixed(1)} h`:`${rw(t)} min`}function aw(e){let t=Object.entries(e);return t.length?t.map(([e,t])=>`${e} (${t})`).join(`, `):`—`}function ow(e){if(!e)return`—`;let t=e.total==null?rw(e.value):`${rw(e.value)}/${rw(e.total)}`;return e.unit?`${t} ${e.unit}`:t}function sw(e,t){let n=e.metrics[t];return!n||n.case_denominator===0?`—`:n.suite_micro_rate==null?`${rw(n.value_mean)} mean`:`${nw(n.suite_micro_rate)} · ${rw(n.suite_micro_numerator)}/${rw(n.suite_micro_denominator)}`}function cw(e,t){let n=e.largest_eligible_primary_contrast,r=n?.metric_deltas[t];if(!n||!r)return null;let i=r.delta>0?`+`:``;return{direction:r.direction,text:`${n.candidate_arm_id}: ${i}${rw(r.delta)}`}}function lw({children:e,tone:t=`neutral`}){return(0,V.jsx)(`span`,{className:`benchmark-state benchmark-state-${t}`,children:e})}function uw({packet:e,primaryMetric:t}){return(0,V.jsxs)(`div`,{className:`benchmark-view-stack`,children:[(0,V.jsxs)(`section`,{"aria-labelledby":`arm-summary-title`,children:[(0,V.jsxs)(`div`,{className:`benchmark-section-heading`,children:[(0,V.jsxs)(`div`,{children:[(0,V.jsx)(`p`,{className:`benchmark-kicker`,children:`ARM SUMMARY`}),(0,V.jsx)(`h2`,{id:`arm-summary-title`,children:`Comparable outcomes, denominator first`})]}),(0,V.jsx)(`p`,{children:`Only one score-countable run per declared case × arm cell is selected.`})]}),(0,V.jsx)(`div`,{className:`benchmark-arm-grid`,children:e.arms.map(e=>{let n=Object.values(e.binary_outcomes)[0];return(0,V.jsxs)(`article`,{className:`benchmark-arm-card`,children:[(0,V.jsxs)(`div`,{className:`benchmark-card-heading`,children:[(0,V.jsxs)(`div`,{children:[(0,V.jsx)(`span`,{className:`benchmark-mono`,children:e.arm_role}),(0,V.jsx)(`h3`,{children:e.arm_id})]}),(0,V.jsx)(lw,{tone:e.coverage_rate===1?`success`:`warning`,children:e.coverage_rate===1?`Complete`:`Provisional`})]}),(0,V.jsxs)(`dl`,{className:`benchmark-stat-list`,children:[(0,V.jsxs)(`div`,{children:[(0,V.jsxs)(`dt`,{children:[`Primary · `,t]}),(0,V.jsx)(`dd`,{children:sw(e,t)})]}),(0,V.jsxs)(`div`,{children:[(0,V.jsx)(`dt`,{children:`Score-countable coverage`}),(0,V.jsxs)(`dd`,{children:[e.selected_score_countable_case_count,`/`,e.intended_case_count]})]}),(0,V.jsxs)(`div`,{children:[(0,V.jsx)(`dt`,{children:`Binary success`}),(0,V.jsx)(`dd`,{children:n?`${n.success_count}/${n.case_denominator}`:`Not declared`})]})]})]},e.arm_id)})})]}),(0,V.jsxs)(`section`,{"aria-labelledby":`contrast-title`,children:[(0,V.jsxs)(`div`,{className:`benchmark-section-heading`,children:[(0,V.jsxs)(`div`,{children:[(0,V.jsx)(`p`,{className:`benchmark-kicker`,children:`MATCHED CONTRASTS`}),(0,V.jsx)(`h2`,{id:`contrast-title`,children:`Direction counts on eligible pairs`})]}),(0,V.jsx)(`p`,{children:`Raw run volume is never used as a comparison denominator.`})]}),(0,V.jsx)(`div`,{className:`benchmark-table-shell`,children:(0,V.jsxs)(`table`,{children:[(0,V.jsx)(`thead`,{children:(0,V.jsxs)(`tr`,{children:[(0,V.jsx)(`th`,{children:`Candidate arm`}),(0,V.jsx)(`th`,{children:`Matched denominator`}),(0,V.jsx)(`th`,{children:`Improved`}),(0,V.jsx)(`th`,{children:`Flat`}),(0,V.jsx)(`th`,{children:`Regressed`}),(0,V.jsx)(`th`,{children:`Binary transitions`})]})}),(0,V.jsxs)(`tbody`,{children:[Object.entries(e.contrasts).map(([e,t])=>(0,V.jsxs)(`tr`,{children:[(0,V.jsx)(`td`,{children:(0,V.jsx)(`strong`,{children:e})}),(0,V.jsx)(`td`,{children:t.matched_pair_denominator}),(0,V.jsx)(`td`,{className:`benchmark-positive`,children:t.primary_metric_directions.improved}),(0,V.jsx)(`td`,{children:t.primary_metric_directions.flat}),(0,V.jsx)(`td`,{className:`benchmark-negative`,children:t.primary_metric_directions.regressed}),(0,V.jsx)(`td`,{children:Object.entries(t.binary_metric_transitions).map(([e,t])=>`${e}: 0→1 ${t[`0_to_1`]}, 1→0 ${t[`1_to_0`]}, same ${t.same}`).join(` · `)||`—`})]},e)),Object.keys(e.contrasts).length===0&&(0,V.jsx)(`tr`,{children:(0,V.jsx)(`td`,{colSpan:6,children:`No matched comparisons are countable yet.`})})]})]})})]}),(0,V.jsxs)(`section`,{"aria-labelledby":`runtime-health-title`,children:[(0,V.jsxs)(`div`,{className:`benchmark-section-heading`,children:[(0,V.jsxs)(`div`,{children:[(0,V.jsx)(`p`,{className:`benchmark-kicker`,children:`RUNTIME HEALTH`}),(0,V.jsx)(`h2`,{id:`runtime-health-title`,children:`Qualified observations, without execution authority`})]}),(0,V.jsxs)(`p`,{children:[e.campaign.runtime_observation_count,` public-safe runtime observations.`]})]}),(0,V.jsxs)(`div`,{className:`benchmark-runtime-list`,children:[Object.entries(e.campaign.runtime_classification_counts).map(([e,t])=>(0,V.jsxs)(`div`,{children:[(0,V.jsx)(`span`,{children:e}),(0,V.jsx)(`strong`,{children:t})]},e)),e.campaign.runtime_observation_count===0&&(0,V.jsx)(`p`,{className:`benchmark-muted`,children:`No runtime observations uploaded.`})]})]})]})}function dw({packet:e}){return(0,V.jsx)(`div`,{className:`benchmark-detail-grid`,children:e.arms.map(t=>(0,V.jsxs)(`article`,{className:`benchmark-detail-card`,children:[(0,V.jsxs)(`div`,{className:`benchmark-card-heading`,children:[(0,V.jsxs)(`div`,{children:[(0,V.jsx)(`span`,{className:`benchmark-mono`,children:t.arm_role}),(0,V.jsx)(`h2`,{children:t.arm_id})]}),(0,V.jsxs)(lw,{tone:t.coverage_rate===1?`success`:`warning`,children:[t.selected_score_countable_case_count,`/`,t.intended_case_count,` countable`]})]}),(0,V.jsx)(`div`,{className:`benchmark-factor-row`,children:Object.entries(t.factor_assignments).map(([e,t])=>(0,V.jsxs)(`span`,{children:[e,`: `,(0,V.jsx)(`strong`,{children:t})]},e))}),(0,V.jsxs)(`dl`,{className:`benchmark-stat-list`,children:[e.design.metric_catalog.map(e=>(0,V.jsxs)(`div`,{children:[(0,V.jsxs)(`dt`,{children:[e.role,` · `,e.metric_name]}),(0,V.jsx)(`dd`,{children:sw(t,e.metric_name)})]},e.metric_name)),(0,V.jsxs)(`div`,{children:[(0,V.jsx)(`dt`,{children:`Runs terminal / observed`}),(0,V.jsxs)(`dd`,{children:[t.terminal_run_count,`/`,t.run_count]})]}),(0,V.jsxs)(`div`,{children:[(0,V.jsx)(`dt`,{children:`Median duration`}),(0,V.jsx)(`dd`,{children:iw(t.effort.duration_ms?.median)})]}),(0,V.jsxs)(`div`,{children:[(0,V.jsx)(`dt`,{children:`Protocols`}),(0,V.jsx)(`dd`,{children:aw(t.protocol_counts)})]}),(0,V.jsxs)(`div`,{children:[(0,V.jsx)(`dt`,{children:`Runner revisions`}),(0,V.jsx)(`dd`,{children:aw(t.runner_revision_counts)})]}),(0,V.jsxs)(`div`,{children:[(0,V.jsx)(`dt`,{children:`Orchestrator runtimes`}),(0,V.jsxs)(`dd`,{children:[Object.keys(t.orchestrator_runtime_counts).length||0,` distinct`]})]}),(0,V.jsxs)(`div`,{children:[(0,V.jsx)(`dt`,{children:`Failure classes`}),(0,V.jsx)(`dd`,{children:aw(t.failure_class_counts)})]})]})]},t.arm_id))})}function fw({packet:e,primaryMetric:t,onOpenRun:n}){return(0,V.jsx)(`div`,{className:`benchmark-table-shell benchmark-wide-table`,children:(0,V.jsxs)(`table`,{children:[(0,V.jsx)(`thead`,{children:(0,V.jsxs)(`tr`,{children:[(0,V.jsx)(`th`,{children:`Case`}),(0,V.jsx)(`th`,{children:`Design status`}),(0,V.jsx)(`th`,{children:`Largest eligible delta`}),e.arms.map(e=>(0,V.jsx)(`th`,{children:e.arm_id},e.arm_id))]})}),(0,V.jsx)(`tbody`,{children:e.cases.map(r=>{let i=cw(r,t);return(0,V.jsxs)(`tr`,{children:[(0,V.jsx)(`td`,{children:(0,V.jsx)(`strong`,{children:r.case_id})}),(0,V.jsx)(`td`,{children:(0,V.jsx)(lw,{tone:r.complete_declared_design?`success`:`warning`,children:r.complete_declared_design?`Complete`:`Provisional`})}),(0,V.jsx)(`td`,{className:i?.direction===`improved`?`benchmark-positive`:i?.direction===`regressed`?`benchmark-negative`:void 0,children:i?.text??`—`}),r.arms.map(r=>(0,V.jsx)(`td`,{children:r.selected_run_id&&r.score_countable?(0,V.jsxs)(`button`,{className:`benchmark-cell-link`,onClick:()=>n(r.selected_run_id),type:`button`,children:[(0,V.jsxs)(`span`,{children:[t,`: `,ow(r.metrics[t])]}),e.design.metric_catalog.filter(e=>e.metric_name!==t).map(e=>(0,V.jsxs)(`small`,{className:`benchmark-cell-metric`,children:[e.metric_name,`: `,ow(r.metrics[e.metric_name])]},e.metric_name)),(0,V.jsxs)(`small`,{children:[`Countable · `,iw(r.effort.duration_ms),` `,(0,V.jsx)(Jp,{"aria-hidden":`true`,size:12})]}),r.insight&&(0,V.jsxs)(`small`,{children:[r.insight.failure_class,` · `,r.insight.confidence]})]}):(0,V.jsx)(`span`,{className:`benchmark-muted`,children:`Not countable`})},r.arm_id))]},r.case_id)})})]})})}function pw({run:e,packet:t}){return(0,V.jsxs)(`aside`,{"aria-label":`Run detail for ${e.run_id}`,className:`benchmark-run-detail`,children:[(0,V.jsxs)(`div`,{className:`benchmark-card-heading`,children:[(0,V.jsxs)(`div`,{children:[(0,V.jsx)(`span`,{className:`benchmark-mono`,children:`RUN DETAIL`}),(0,V.jsx)(`h2`,{children:e.run_id})]}),(0,V.jsx)(lw,{tone:e.countability.score_countable?`success`:`warning`,children:e.countability.score_countable?`Score-countable`:`Diagnostic only`})]}),(0,V.jsxs)(`dl`,{className:`benchmark-stat-list benchmark-run-facts`,children:[(0,V.jsxs)(`div`,{children:[(0,V.jsx)(`dt`,{children:`Case / arm`}),(0,V.jsxs)(`dd`,{children:[e.case_id,` · `,e.arm_id]})]}),(0,V.jsxs)(`div`,{children:[(0,V.jsx)(`dt`,{children:`Lifecycle`}),(0,V.jsxs)(`dd`,{children:[e.status,` · `,e.observed_at]})]}),(0,V.jsxs)(`div`,{children:[(0,V.jsx)(`dt`,{children:`Protocol`}),(0,V.jsx)(`dd`,{children:e.protocol_id})]}),(0,V.jsxs)(`div`,{children:[(0,V.jsx)(`dt`,{children:`Qualification`}),(0,V.jsxs)(`dd`,{children:[`Integrity `,e.countability.integrity_qualified?`qualified`:`not qualified`,` · result `,e.countability.official_result_present?`present`:`missing`]})]}),(0,V.jsxs)(`div`,{children:[(0,V.jsx)(`dt`,{children:`Treatment fidelity`}),(0,V.jsx)(`dd`,{children:e.treatment_fidelity})]}),(0,V.jsxs)(`div`,{children:[(0,V.jsx)(`dt`,{children:`Effort`}),(0,V.jsxs)(`dd`,{children:[iw(e.effort.duration_ms),` · `,rw(e.effort.agent_steps),` steps · `,rw(e.effort.token_count),` tokens`]})]}),(0,V.jsxs)(`div`,{children:[(0,V.jsx)(`dt`,{children:`Runner revision`}),(0,V.jsx)(`dd`,{children:e.runner_revision??`—`})]}),(0,V.jsxs)(`div`,{children:[(0,V.jsx)(`dt`,{children:`Upload provenance`}),(0,V.jsxs)(`dd`,{children:[e.upload_provenance.producer_id,` · `,e.upload_provenance.source_revision]})]})]}),(0,V.jsx)(`div`,{className:`benchmark-run-metrics`,children:t.design.metric_catalog.map(t=>(0,V.jsxs)(`div`,{children:[(0,V.jsx)(`span`,{children:t.metric_name}),(0,V.jsx)(`strong`,{children:ow(e.metrics[t.metric_name])})]},t.metric_name))}),e.redacted_insight&&(0,V.jsxs)(`div`,{className:`benchmark-insight`,children:[(0,V.jsxs)(`span`,{className:`benchmark-mono`,children:[`REDACTED CASE INSIGHT · `,e.redacted_insight.confidence]}),(0,V.jsx)(`p`,{children:e.redacted_insight.causal_summary}),(0,V.jsxs)(`small`,{children:[`Implication: `,e.redacted_insight.implication]}),(0,V.jsx)(`br`,{}),(0,V.jsxs)(`small`,{children:[`Next probe: `,e.redacted_insight.next_probe]}),!!e.redacted_insight.evidence_refs?.length&&(0,V.jsxs)(V.Fragment,{children:[(0,V.jsx)(`br`,{}),(0,V.jsxs)(`small`,{children:[`Evidence: `,e.redacted_insight.evidence_refs.join(`, `)]})]})]})]})}function mw({packet:e,selectedRunId:t,onSelectRun:n}){let r=e.runs.find(e=>e.run_id===t)??e.runs[0];return(0,V.jsxs)(`div`,{className:`benchmark-runs-layout`,children:[(0,V.jsx)(`div`,{className:`benchmark-table-shell`,children:(0,V.jsxs)(`table`,{children:[(0,V.jsx)(`thead`,{children:(0,V.jsxs)(`tr`,{children:[(0,V.jsx)(`th`,{children:`Run`}),(0,V.jsx)(`th`,{children:`Case`}),(0,V.jsx)(`th`,{children:`Arm`}),(0,V.jsx)(`th`,{children:`Status`}),(0,V.jsx)(`th`,{children:`Countability`})]})}),(0,V.jsx)(`tbody`,{children:e.runs.map(e=>(0,V.jsxs)(`tr`,{"aria-selected":e.run_id===r?.run_id,children:[(0,V.jsx)(`td`,{children:(0,V.jsx)(`button`,{className:`benchmark-run-link`,onClick:()=>n(e.run_id),type:`button`,children:e.run_id})}),(0,V.jsx)(`td`,{children:e.case_id}),(0,V.jsx)(`td`,{children:e.arm_id}),(0,V.jsx)(`td`,{children:e.status}),(0,V.jsx)(`td`,{children:e.countability.score_countable?`Score-countable`:`Diagnostic only`})]},e.run_id))})]})}),r&&(0,V.jsx)(pw,{packet:e,run:r})]})}function hw(){let e=Aw.useSearch(),t=Aw.useNavigate(),[n,r]=(0,B.useState)(null),[i,a]=(0,B.useState)(null),[o,s]=(0,B.useState)(0),c=(0,B.useMemo)(()=>{let t=e.dashboardUrl||`/chat/benchmark-study.example.json`;try{return{url:ew(t,window.location.href),error:null}}catch(e){return{url:``,error:e instanceof Error?e.message:`Invalid dashboard source`}}},[e.dashboardUrl]);if((0,B.useEffect)(()=>{let e=!0;return r(null),a(null),c.error?(a(c.error),()=>{e=!1}):(fetch(c.url,{cache:`no-store`}).then(async e=>{if(!e.ok)throw Error(`HTTP ${e.status} while loading the dashboard packet`);return $C(await e.json())}).then(t=>{e&&r(t)}).catch(t=>{e&&a(t instanceof Error?t.message:`Unable to load dashboard packet`)}),()=>{e=!1})},[o,c]),(0,B.useEffect)(()=>{n&&(document.title=`${n.design.labels.title??n.study_id} · LoopX Benchmark`)},[n]),i)return(0,V.jsxs)(`main`,{className:`benchmark-page benchmark-loading`,children:[(0,V.jsx)(om,{"aria-hidden":`true`}),(0,V.jsx)(`h1`,{children:`Dashboard packet unavailable`}),(0,V.jsx)(`p`,{children:i}),(0,V.jsxs)(`button`,{onClick:()=>s(e=>e+1),type:`button`,children:[(0,V.jsx)(zm,{"aria-hidden":`true`,size:16}),` Retry readback`]})]});if(!n)return(0,V.jsxs)(`main`,{"aria-busy":`true`,className:`benchmark-page benchmark-loading`,children:[(0,V.jsx)(Gp,{"aria-hidden":`true`}),(0,V.jsx)(`h1`,{children:`Reading benchmark study`}),(0,V.jsx)(`p`,{children:`Validating the public-safe dashboard packet…`})]});let l=n.design.metric_catalog.find(e=>e.role===`primary`)?.metric_name??`primary`,u=(n,r=e.runId)=>t({search:e=>({...e,view:n,runId:r})}),d=new URL(c.url).pathname;return(0,V.jsxs)(`main`,{className:`benchmark-page`,children:[(0,V.jsxs)(`header`,{className:`benchmark-hero`,children:[(0,V.jsxs)(`div`,{className:`benchmark-hero-topline`,children:[(0,V.jsx)(`a`,{className:`benchmark-wordmark`,href:`/chat/`,children:`LoopX`}),(0,V.jsxs)(`div`,{className:`benchmark-readonly`,children:[(0,V.jsx)(qm,{"aria-hidden":`true`,size:15}),` Derived read-only projection`]})]}),(0,V.jsxs)(`div`,{className:`benchmark-hero-grid`,children:[(0,V.jsxs)(`div`,{children:[(0,V.jsxs)(`p`,{className:`benchmark-kicker`,children:[`BENCHMARK STUDY / `,n.benchmark_id]}),(0,V.jsxs)(`div`,{className:`benchmark-title-row`,children:[(0,V.jsx)(`h1`,{children:n.design.labels.title??n.study_id}),(0,V.jsx)(lw,{tone:n.status===`complete`?`success`:`warning`,children:n.status})]}),(0,V.jsx)(`p`,{className:`benchmark-lead`,children:`One declared study, explicit denominators, and the same countability rules from campaign summary to exact run.`})]}),(0,V.jsxs)(`dl`,{className:`benchmark-identity`,children:[(0,V.jsxs)(`div`,{children:[(0,V.jsx)(`dt`,{children:`Study`}),(0,V.jsx)(`dd`,{children:n.study_id})]}),(0,V.jsxs)(`div`,{children:[(0,V.jsx)(`dt`,{children:`Protocol`}),(0,V.jsx)(`dd`,{children:n.design.protocol_id})]}),(0,V.jsxs)(`div`,{children:[(0,V.jsx)(`dt`,{children:`Case set`}),(0,V.jsx)(`dd`,{children:n.design.case_set.case_set_id})]})]})]}),(0,V.jsxs)(`div`,{className:`benchmark-kpi-grid`,children:[(0,V.jsxs)(`article`,{children:[(0,V.jsx)(dm,{"aria-hidden":`true`}),(0,V.jsx)(`span`,{children:`Score-countable cells`}),(0,V.jsxs)(`strong`,{children:[n.campaign.selected_score_countable_cell_count,(0,V.jsxs)(`small`,{children:[` / `,n.campaign.intended_cell_denominator]})]}),(0,V.jsxs)(`p`,{children:[nw(n.campaign.selected_score_countable_coverage_rate),` declared coverage`]})]}),(0,V.jsxs)(`article`,{children:[(0,V.jsx)(sm,{"aria-hidden":`true`}),(0,V.jsx)(`span`,{children:`Complete designs`}),(0,V.jsxs)(`strong`,{children:[n.campaign.complete_declared_design_case_count,(0,V.jsxs)(`small`,{children:[` / `,n.campaign.intended_case_count]})]}),(0,V.jsx)(`p`,{children:`Cases with every declared arm`})]}),(0,V.jsxs)(`article`,{children:[(0,V.jsx)(Jp,{"aria-hidden":`true`}),(0,V.jsx)(`span`,{children:`Matched comparisons`}),(0,V.jsx)(`strong`,{children:n.campaign.matched_pair_countable_count}),(0,V.jsx)(`p`,{children:`Eligible pairs only`})]}),(0,V.jsxs)(`article`,{children:[(0,V.jsx)(Gp,{"aria-hidden":`true`}),(0,V.jsx)(`span`,{children:`In flight`}),(0,V.jsx)(`strong`,{children:n.campaign.in_flight_run_count}),(0,V.jsx)(`p`,{children:n.status===`provisional`?`Coverage remains provisional`:`Declared coverage complete`})]})]})]}),(0,V.jsxs)(`nav`,{"aria-label":`Benchmark dashboard views`,className:`benchmark-tabs`,children:[tw.map(t=>(0,V.jsx)(`button`,{"aria-current":e.view===t.id?`page`:void 0,onClick:()=>u(t.id),type:`button`,children:t.label},t.id)),(0,V.jsxs)(`button`,{className:`benchmark-refresh`,onClick:()=>s(e=>e+1),type:`button`,children:[(0,V.jsx)(zm,{"aria-hidden":`true`,size:14}),` Refresh local readback`]})]}),(0,V.jsxs)(`div`,{className:`benchmark-content`,children:[e.view===`campaign`&&(0,V.jsx)(uw,{packet:n,primaryMetric:l}),e.view===`arms`&&(0,V.jsx)(dw,{packet:n}),e.view===`cases`&&(0,V.jsx)(fw,{onOpenRun:e=>u(`runs`,e),packet:n,primaryMetric:l}),e.view===`runs`&&(0,V.jsx)(mw,{onSelectRun:e=>u(`runs`,e),packet:n,selectedRunId:e.runId})]}),(0,V.jsxs)(`footer`,{className:`benchmark-footer`,children:[(0,V.jsxs)(`div`,{children:[(0,V.jsx)(qm,{"aria-hidden":`true`,size:16}),(0,V.jsxs)(`span`,{children:[`Scores: `,n.authority.score_source]}),(0,V.jsx)(`span`,{children:`Dashboard cannot launch, grade, or mutate runs.`})]}),(0,V.jsxs)(`code`,{title:d,children:[`local`,d]})]})]})}var gw=J({goalId:W().optional().default(``),statusUrl:W().optional().default(``)}),_w=J({goalId:W().optional().default(``),mode:Y([`showcase`,`developer`,`ops`]).optional().default(`showcase`),statusUrl:W().optional().default(``),todoLane:Y([`all`,`user`,`agent`]).optional().default(`all`),todoQuery:W().optional().default(``)}),vw=_w.omit({mode:!0}),yw=J({dashboardUrl:W().optional().default(``),view:Y([`campaign`,`arms`,`cases`,`runs`]).optional().default(`campaign`),runId:W().optional().default(``)});function bw(){let e=`https://huangruiteng.github.io/loopx/docs/showcases/index.en.html`;return(0,B.useEffect)(()=>{window.location.replace(e)},[]),(0,V.jsx)(`a`,{href:e,children:`Open LoopX cases / 浏览案例`})}function xw({goalId:e,statusUrl:t}){let n=t?oh(t,window.location.href):null;return n?.error?(0,V.jsx)(`main`,{role:`alert`,children:n.error}):(0,V.jsx)(ii,{replace:!0,to:`/`,search:{goalId:e,statusUrl:t}})}function Sw(){let e=Ew.useSearch();return e.mode===`ops`?(0,V.jsx)(xw,{...e}):e.mode===`developer`?(0,V.jsx)(ii,{replace:!0,to:`/developers/projections`}):(0,V.jsx)(bw,{})}function Cw(){return(0,V.jsx)(xw,{...Dw.useSearch()})}var ww=Ci({component:()=>(0,V.jsx)(Mi,{}),errorComponent:()=>(0,V.jsxs)(`main`,{role:`alert`,className:`p-8`,children:[(0,V.jsx)(`h1`,{children:`页面暂时无法显示 / Page unavailable`}),(0,V.jsx)(`p`,{children:`请重新加载页面;这不会执行任务。 / Reloading does not execute tasks.`}),(0,V.jsx)(`button`,{type:`button`,onClick:()=>window.location.reload(),children:`重新加载 / Reload`})]})}),Tw=xi({getParentRoute:()=>ww,path:`/`,validateSearch:e=>gw.parse(e),component:OC}),Ew=xi({getParentRoute:()=>ww,path:`/frontstage`,validateSearch:e=>_w.parse(e),component:Sw}),Dw=xi({getParentRoute:()=>ww,path:`/deprecated/frontstage/ops`,validateSearch:e=>vw.parse(e),component:Cw}),Ow=xi({getParentRoute:()=>ww,path:`/frontstage/developer`,component:()=>(0,V.jsx)(ii,{replace:!0,to:`/developers/projections`})}),kw=xi({getParentRoute:()=>ww,path:`/developers/projections`,component:HC}),Aw=xi({getParentRoute:()=>ww,path:`/benchmarks/study`,validateSearch:e=>yw.parse(e),component:hw}),jw=ww.addChildren([Tw,Ew,Dw,Ow,kw,Aw]);function Mw(e){return!e||e===`/`||e===`./`?`/`:(e.startsWith(`/`)?e:`/${e}`).replace(/\/+$/,``)||`/`}var Nw=Li({routeTree:jw,basepath:Mw(`/chat/`),trailingSlash:`preserve`}),Pw=document.getElementById(`root`);if(!Pw)throw Error(`Root element not found`);var Fw=new ke({defaultOptions:{queries:{refetchOnWindowFocus:!1,retry:1,staleTime:1e4}}});(0,Vi.createRoot)(Pw).render((0,V.jsx)(Ne,{client:Fw,children:(0,V.jsx)(qi,{children:(0,V.jsx)(Bi,{router:Nw})})})); \ No newline at end of file +`),summary:k.summary,title:k.title}}]:[]],at=f.connectionState===`connected`,ot=new Map(E.goals.map(e=>[e.goalId,e.title])),st=e=>qd(e,f.activeSource.statusUrl,at&&!l?.errors[e.goalId],ot.get(e.goalId)),ct={...Fy(E),userTodos:E.userTodos.map(st),attentionHistory:(E.attentionHistory??E.userTodos).map(st),periodicReports:{error:te,loading:j},timeline:it};return(0,V.jsxs)(`div`,{className:p===`dark`?`dark`:``,"data-testid":`personal-goal-home`,children:[Te?(0,V.jsx)(`p`,{role:`status`,className:`m-0 bg-amber-50 px-4 py-2 text-sm text-amber-900`,children:_(Te===`partial`?`runs.discoveryPartial`:`runs.discoveryOffline`)}):null,(0,V.jsx)(mS,{agents:re.map(e=>({adapterKind:e.adapterKind,agentId:e.agentId,available:e.available,capability:e.capability,interrupt:e.interrupt,label:e.label,location:e.location,resume:e.resume,source:e.source,streaming:e.streaming,toolCalls:e.toolCalls,trustScope:e.trustScope,workspaceCompatibility:e.available?`当前 Goal 写入前验证`:`不可用,需先修复 Endpoint`})),callbacks:{onApplyAttention:e=>rt(e.goalId),onCorrectRun:async(e,t)=>{if(!e.sessionId)throw Error(`这个 Run 还没有可纠偏的执行 Session。`);let n=await Hh((await zh({actionKind:`run.correct`,context:{kind:`run`,goal_id:e.goalId,todo_id:e.todoId},idempotencyKey:`workspace-run-correct-${e.sessionId}-${Date.now().toString(36)}`,normalizedParameters:{goal_id:e.goalId,message:t,session_id:e.sessionId},summary:`纠偏执行任务:${e.title}`})).proposal_id),r=typeof n.turn?.turn_id==`string`?n.turn.turn_id:void 0;if(qe(e.goalId,{agentId:e.agentId,resumable:!0,sessionId:e.sessionId,status:r?`running`:`ready`,turnId:r}),r){Me.current.set(e.goalId,r);let t=new AbortController;Ne.current.set(e.goalId,t);let n=``,i=Je(e.goalId,{activity:[`正在把纠偏送入原执行 Session`],agentLabel:e.agentLabel,lines:[],pending:!0,sourceLabel:`${e.agentLabel} · 执行 Session`,text:``});try{let a=await ag(e.sessionId,r,{signal:t.signal,onDelta:t=>{n+=t,Ye(e.goalId,i,{text:n})}});Ye(e.goalId,i,{activity:[],pending:!1,text:tC(a.response.message||n.trim())||`${e.agentLabel} 已完成纠偏。`})}catch(t){let n=Pe.current.delete(e.goalId);Ye(e.goalId,i,{activity:[],pending:!1,text:n?`已中断。你可以在当前会话继续发送消息。`:t instanceof Error?t.message:`纠偏回合失败。`})}finally{Me.current.delete(e.goalId),Ne.current.delete(e.goalId),qe(e.goalId,{agentId:e.agentId,resumable:!0,sessionId:e.sessionId,status:`ready`})}}},onCloseRunSession:et,onInterruptRun:async e=>Ze(e),onOpenGoal:rt,onOpenRunSession:async e=>{if(!e.sessionId)return;let t=e.sessionId,n=await Yh(t);z(e=>({...e,[t]:n})),rt(e.goalId),ge(t=>({...t,[e.goalId]:n.messages.map(t=>({agentLabel:t.role===`user`?void 0:e.agentLabel,attachments:XS(t.attachments),id:Oe.current++,lines:[],role:t.role===`user`?`user`:`assistant`,sourceLabel:t.role===`user`?void 0:`${e.agentLabel} · 执行 Session`,text:t.role===`user`?t.text:tC(t.text)}))})),qe(e.goalId,{agentId:e.agentId,resumable:n.session.resumable,sessionId:t,status:n.session.active_turn_id?`running`:n.session.status,turnId:n.session.active_turn_id??void 0})},onOpenOutput:e=>rt(e.goalId),...b?{onPreviewGoalSubagentConfiguration:async e=>{let t=await ug(e);return{changed:t.changed,configuration:{allowedDomains:t.after.orchestration.allowed_domains,enabled:t.feature_summary.multi_subagent===`enabled`,maxChildren:t.after.orchestration.max_children,modelConfig:t.after.orchestration.model_config},previewId:t.preview_id}},onApplyGoalSubagentConfiguration:async({previewId:e,...t})=>{let n=await dg(t,e);return{allowedDomains:n.after.orchestration.allowed_domains,enabled:n.feature_summary.multi_subagent===`enabled`,maxChildren:n.after.orchestration.max_children,modelConfig:n.after.orchestration.model_config}}}:{},...g?{onExecuteGoalLifecycle:async({goalId:e,operation:t,reason:n})=>{let r=await Bb(g,e,t,n);return{activationState:r.activation_state,projectionVerified:r.projection_verified}}}:{},onGoalActivationStateChange:n,onGoalDeleted:r,onReconcileStatus:a,onRetryGoalArchive:s,onExportOutput:async e=>{let t=[`# ${e.title}`,``,e.summary??``,``,e.safePreview??`此产出没有可用的公开安全预览。`,``,`Goal: ${e.goalId}`,`Todo: ${e.todoId??`unlinked`}`,`Run: ${e.runId??`unlinked`}`].join(` +`),n=URL.createObjectURL(new Blob([t],{type:`text/markdown;charset=utf-8`})),r=document.createElement(`a`);r.href=n,r.download=`${e.outputId.replace(/[^a-z0-9._-]+/gi,`-`)}.md`,r.click(),URL.revokeObjectURL(n)},onRefresh:o,onRetryResumeRun:Qe,onSelectAgent:tt,onSelectGoal:e=>e?rt(e):nt(),onSendMessage:async(e,t,n,r)=>Xe(e,{agentId:t,goalId:n,attachments:r}),onStartNewRunSession:$e},goalArchiveLoadState:e,managerChannelBinding:w,managerRuntime:S,model:ct,readOnly:h,selectedAgentId:L.agentId,selectedGoalId:D?.goalId??null,statusSourceControl:f})]})}function MC({error:e,isLoading:t,onRetry:n,requestedUrl:r,theme:i,toggleTheme:a}){let o=!!(e&&/failed to fetch|networkerror|load failed/i.test(e)&&r.includes(`status.json`));return(0,V.jsx)(`div`,{className:i===`dark`?`dark`:``,children:(0,V.jsxs)(`main`,{className:`min-h-screen bg-[#f6f7f9] text-slate-950 dark:bg-[#09090b] dark:text-zinc-50`,children:[(0,V.jsxs)(`header`,{className:`flex min-h-16 flex-wrap items-center justify-between gap-3 border-b border-slate-200 bg-white px-4 py-3 dark:border-zinc-800 dark:bg-zinc-950 sm:px-6`,children:[(0,V.jsxs)(`div`,{children:[(0,V.jsx)(`h1`,{className:`text-xl font-semibold`,children:`LoopX Workspace`}),(0,V.jsx)(`p`,{className:`mt-1 break-all text-sm text-slate-500 dark:text-zinc-400`,children:`Personal Workspace`})]}),(0,V.jsx)(gy,{"aria-label":`切换主题`,onClick:a,size:`icon`,variant:`secondary`,children:i===`dark`?(0,V.jsx)(eh,{className:`h-4 w-4`}):(0,V.jsx)(Fm,{className:`h-4 w-4`})})]}),(0,V.jsxs)(`div`,{className:`grid min-h-[calc(100vh-80px)] sm:grid-cols-[240px_1fr]`,children:[(0,V.jsxs)(`aside`,{className:`hidden border-r border-slate-200 p-6 dark:border-zinc-800 sm:block`,"aria-label":`Workspace`,children:[(0,V.jsx)(`strong`,{children:`LoopX`}),(0,V.jsx)(`p`,{className:`mt-6 text-sm`,children:`Workspace`}),(0,V.jsx)(`p`,{className:`mt-8 text-xs text-slate-500`,children:`Goals`}),[1,2,3].map(e=>(0,V.jsx)(`div`,{className:`mt-4 h-8 rounded bg-slate-100 dark:bg-zinc-900`},e))]}),(0,V.jsx)(`div`,{className:`p-4 sm:p-8`,children:(0,V.jsx)(_y,{"data-testid":`initial-status-state`,children:(0,V.jsx)(vy,{className:`flex min-h-64 items-center justify-center p-6`,children:(0,V.jsxs)(`div`,{className:`max-w-xl text-center`,children:[e?(0,V.jsx)(lm,{className:`mx-auto h-6 w-6 text-rose-600 dark:text-rose-300`}):(0,V.jsx)(Hm,{className:`mx-auto h-6 w-6 animate-spin text-slate-500 dark:text-zinc-400`}),(0,V.jsx)(`p`,{className:`mt-3 text-sm font-medium`,children:e?`无法加载实时状态`:`正在加载实时状态`}),e?(0,V.jsxs)(V.Fragment,{children:[(0,V.jsx)(`p`,{className:`mt-2 break-words text-sm leading-6 text-slate-500 dark:text-zinc-400`,children:o?`本地状态服务暂时未连接。升级或启动期间可能短暂断开,请重试;仍失败时重新打开 LoopX App,或运行 loopx doctor。`:e}),o?(0,V.jsx)(`p`,{className:`mt-2 text-xs leading-5 text-slate-400 dark:text-zinc-500`,children:`重新加载不会执行任务,也不会改变 Goal 配置。`}):null,(0,V.jsx)(`div`,{className:`mt-4 flex flex-wrap justify-center gap-2`,children:(0,V.jsxs)(gy,{disabled:t,onClick:n,children:[(0,V.jsx)(Hm,{className:`h-4 w-4`}),`重试`]})})]}):(0,V.jsx)(`p`,{className:`mt-2 text-sm leading-6 text-slate-500 dark:text-zinc-400`,role:`status`,children:`正在连接 Workspace,Goal 列表将先出现,详细状态会逐个补齐。 / Connecting to your Workspace. Goals load independently.`})]})})})})]})]})})}function NC(){let e=Aw.useSearch(),t=Aw.useNavigate(),[n,r]=(0,B.useState)(`light`),[i,a]=(0,B.useState)(null),o=(0,B.useRef)(null),s=(0,B.useRef)(e.goalId);s.current=e.goalId;let[c,l]=(0,B.useState)(jp),[u,d]=(0,B.useState)({kind:`example`,label:`bundled example`}),[f,p]=(0,B.useState)(()=>DS(window.localStorage,window.location.href)),m=(0,B.useRef)(f);m.current=f;let[h,g]=(0,B.useState)(e.statusUrl),[_,v]=(0,B.useState)(null),[y,b]=(0,B.useState)(!1),[x,S]=(0,B.useState)({error:null,phase:`idle`}),[C,w]=(0,B.useState)(e.statusUrl.trim()||null),[T,E]=(0,B.useState)(!1),D=(0,B.useRef)(null),O=(0,B.useRef)(l_(e.statusUrl.trim()||null)),k=!T&&u.kind===`example`?e.statusUrl.trim():``,ee=C??k,te=u.kind===`url`?u.label:LS,A=!!(_&&C),j=PS(f,C,te,window.location.href),M=u.kind===`example`&&!T,ne=c.attention_queue,N=c.run_history,P=(0,B.useMemo)(()=>BS(N.goals,ne.items),[N.goals,ne.items]);function re(e,t,n=0){S({error:null,phase:`loading`}),RS(dh(e,`stopped`,window.location.href)).then(r=>{if(!p_(O.current,t))return;let i=r.goal_projection?.registry_revision??null,a=t.registryRevision!==null&&t.registryRevision!==void 0&&i!==null&&t.registryRevision!==i;if(l(e=>I_(e,r)),a&&n<1){F(e,{background:!0,resyncAttempt:n+1});return}S(a?{error:`Goal 状态在加载历史时发生变化,请重试。`,phase:`error`}:{error:null,phase:`ready`})}).catch(e=>{p_(O.current,t)&&S({error:Ap(e),phase:`error`})})}function ie(){let e=u.kind===`url`?u.label:h||LS,t=d_(O.current,e,{background:!0});if(i){F(e);return}t&&re(e,t)}async function ae(e,n,r){if(r.background)return l(e=>I_(e,n)),!0;let i={kind:`url`,label:e};return O.current.loadedUrl=e,l(n),d(i),g(e),await t({search:t=>({...t,statusUrl:e})}),f_(O.current,r)?(O.current.requestedUrl=null,w(null),!0):!1}async function F(e,t={}){let n=e.trim(),r=t.background===!0;if(!n){r||v(`状态地址不能为空`);return}let c=d_(O.current,n,{background:r,selectionRevision:t.selectionRevision});if(!c)return;o.current?.abort();let d=new AbortController;o.current=d,r||(D.current=null,E(!1),w(n),b(!0),v(null),S({error:null,phase:`idle`}));try{let e=await Fp(n,window.location.href).catch(()=>null);if(!p_(O.current,c))return;if(e){let o=(t.retryOnly||t.reuseSnapshots)&&u.kind===`url`&&u.label===n?Np(i,e,{invalidateGoalIds:t.invalidateGoalIds}):{};a({directory:e,snapshots:o,errors:{}});let f={...e,goals:e.goals.filter(e=>!o[e.id])},p=!1,m=Ip(e);if(r)l(m);else if(!await ae(n,m,c))return;if(S({error:null,phase:`loading`}),await Rp(n,window.location.href,f,(e,t,n)=>{n===`revision`&&(p=!0),a(r=>r&&{...r,snapshots:t?{...r.snapshots,[e]:t}:r.snapshots,errors:n?{...r.errors,[e]:n}:r.errors})},()=>p_(O.current,c),()=>s.current,d.signal),p&&(t.resyncAttempt??0)<1&&p_(O.current,c)){await F(n,{resyncAttempt:1});return}p_(O.current,c)&&S({error:null,phase:`ready`});return}let o=await RS(dh(n,`active`,window.location.href));if(!p_(O.current,c)||(a(null),c.registryRevision=o.goal_projection?.registry_revision??null,!await ae(n,o,c)))return;if(o.goal_projection?.scope!==`active`||o.goal_projection.complete){S({error:null,phase:`ready`});return}re(n,c,t.resyncAttempt??0)}catch(e){if(!f_(O.current,c))return;r||v(Ap(e))}finally{!r&&f_(O.current,c)&&b(!1)}}function oe(e,t={}){o.current?.abort();let n=u_(O.current,e.statusUrl);D.current=null,E(!1),w(e.statusUrl),b(!0),v(null),(async()=>{if(t.ensureTunnel&&e.kind===`ssh_tunnel`){let t=new URL(e.statusUrl,window.location.href).port;if(t)try{await zb(e.label,t)}catch{}}O.current.selectionRevision===n&&await F(e.statusUrl,{selectionRevision:n})})()}function I(e){m.current=e,p(e);try{OS(window.localStorage,e)}catch{}}let se={activeSource:j,connectionState:y?`loading`:A?`error`:`connected`,errorMessage:A?`未切换到 ${C??`所选来源`}:${_}`:null,onAdd:e=>{let t=AS(f,e,window.location.href);return`error`in t?{error:t.error}:(I(t.catalog),oe(t.source,{ensureTunnel:e.ensureTunnel}),{})},onConfiguredHostsLoaded:e=>{let t=m.current,n=kS(t,e);n!==t&&I(n)},onRemove:e=>{I(jS(f,e)),j.id===e&&oe(SS)},onSelect:e=>{let t=f.sources.find(t=>t.id===e);t&&oe(t,{ensureTunnel:t.kind===`ssh_tunnel`})},sources:j.id===`temporary`?[...f.sources,j]:f.sources};(0,B.useEffect)(()=>{let t=e.statusUrl.trim();if(t){if(D.current===t||C&&C!==t)return;(u.kind!==`url`||u.label!==t)&&F(t);return}D.current=null,!T&&(C||u.kind===`example`&&F(LS))},[T,C,e.statusUrl,u.kind,u.label]),(0,B.useEffect)(()=>{if(e.statusUrl&&u.kind===`example`)return;let n=new Set(P.map(e=>e.goal.id));if(P.length===0){e.goalId&&t({search:e=>({...e,goalId:``})});return}e.goalId&&!n.has(e.goalId)&&x.phase!==`loading`&&t({search:e=>({...e,goalId:``})})},[x.phase,P,t,e.goalId,e.statusUrl,u.kind]),(0,B.useEffect)(()=>{if(!i||y||!e.goalId||u.kind!==`url`)return;let t=i.directory.goals.find(t=>t.id===e.goalId);t?.activation_state===`stopped`&&!i.snapshots[t.id]&&!i.errors[t.id]&&F(u.label,{retryOnly:!0})},[e.goalId,y,i,u]);function L(e){t({search:t=>({...t,goalId:e})})}return M?(0,V.jsx)(MC,{error:_,isLoading:y,onRetry:()=>void F(ee||LS),requestedUrl:ee||LS,theme:n,toggleTheme:()=>r(n===`dark`?`light`:`dark`)}):(0,V.jsx)(jC,{goalArchiveLoadState:x,isLoading:y,onGoalActivationStateChange:(e,t)=>{O.current.projectionRevision+=1,l(n=>Dp(n,e,t)),a(n=>n&&{...n,snapshots:Object.fromEntries(Object.entries(n.snapshots).map(([n,r])=>[n,Dp(r,e,t)]))})},onGoalDeleted:e=>{O.current.projectionRevision+=1,l(t=>Op(t,e)),a(t=>t&&{...t,snapshots:Object.fromEntries(Object.entries(t.snapshots).filter(([t])=>t!==e))})},onSelectGoal:L,onReconcileStatus:e=>F(u.kind===`url`?u.label:h||LS,{background:!0,invalidateGoalIds:e?.invalidateGoalIds,reuseSnapshots:!0}),onRetryGoalArchive:ie,onRefresh:()=>F(u.kind===`url`?u.label:h||LS,{retryOnly:!!(i&&Object.keys(i.errors).length)}),payload:c,progress:i,rows:P,selectedGoalId:e.goalId,statusSourceControl:se,theme:n,toggleTheme:()=>r(n===`dark`?`light`:`dark`)})}var PC=V_(`inline-flex items-center gap-1 rounded-md border px-2 py-0.5 text-xs font-medium`,{variants:{variant:{neutral:`border-slate-200 bg-white text-slate-700 dark:border-zinc-800 dark:bg-zinc-950 dark:text-zinc-300`,success:`border-emerald-200 bg-emerald-50 text-emerald-800 dark:border-emerald-900 dark:bg-emerald-950 dark:text-emerald-200`,warning:`border-amber-200 bg-amber-50 text-amber-800 dark:border-amber-900 dark:bg-amber-950 dark:text-amber-200`,info:`border-sky-200 bg-sky-50 text-sky-800 dark:border-sky-900 dark:bg-sky-950 dark:text-sky-200`,danger:`border-rose-200 bg-rose-50 text-rose-800 dark:border-rose-900 dark:bg-rose-950 dark:text-rose-200`}},defaultVariants:{variant:`neutral`}});function FC({className:e,variant:t,...n}){return(0,V.jsx)(`span`,{className:my(PC({variant:t}),e),...n})}var IC=[{label:`status payload`,source:`apps/presentation/dashboard/src/data/status.ts`,detail:`status_contract, attention_queue, local_dashboard_api, run_history`},{label:`channel projection`,source:`apps/presentation/dashboard/src/data/goal-channel-frontstage.ts`,detail:`decision_frame, todos, gates, leases, artifacts, truth_contract`},{label:`public showcase catalog`,source:`docs/showcases/showcase-catalog.json`,detail:`case metadata, visual hints, evidence boundaries, story beats`},{label:`route smoke`,source:`apps/presentation/dashboard/smoke/frontstage-route-smoke.ts`,detail:`static route contract, source guards, component expectations`}],LC=[{axis:`schema`,current:`goal_channel_projection_v0`,proposed:`new optional projection field`,gate:`parser default plus route smoke assertion`},{axis:`truth`,current:`event ledger and active state remain source of truth`,proposed:`derived UI state only`,gate:`truth_contract must stay read-only`},{axis:`privacy`,current:`compact source refs and warnings`,proposed:`public-safe fixture field`,gate:`loopx check and browser fake-private fixture`},{axis:`interaction`,current:`render, filter, select, inspect`,proposed:`no browser write by default`,gate:`write affordance requires explicit loopback capability`}],RC=[{title:`Fixture sources`,body:`Use examples/status.example.json, browser-smoke fixtures, and docs/showcases/showcase-catalog.json.`},{title:`Required proof`,body:`Every projection addition needs parser coverage, route smoke assertions, and one browser or bundle check when UI output changes.`},{title:`Never include`,body:`Raw task text, trajectories, transcripts, local paths, private registry state, credentials, or internal document links.`}],zC=[`npm --prefix apps/presentation/dashboard run smoke:frontstage-route`,`npm --prefix apps/presentation/dashboard run smoke:frontstage-browser`,`npm --prefix apps/presentation/dashboard run smoke:frontstage-share-bundle`,`npm --prefix apps/presentation/dashboard run build`,`loopx check --scan-path apps/presentation/dashboard --scan-path docs/status-data-contract.md`],BC=[{name:`Projection lane`,badges:[`read-only`,`schema v0`],body:`Summarizes one compact projection lane without mutating the underlying LoopX state.`},{name:`Capability badge`,badges:[`loopback`,`dry-run`],body:`Shows an advertised local capability only after the status feed declares it.`},{name:`Boundary warning`,badges:[`public-safe`,`omitted`],body:`Names omitted private material and points contributors back to compact source references.`}];function VC({children:e,icon:t,title:n}){return(0,V.jsxs)(`section`,{className:`rounded-lg border border-slate-200 bg-white shadow-sm`,children:[(0,V.jsx)(`div`,{className:`flex items-center justify-between gap-3 border-b border-slate-200 px-4 py-3`,children:(0,V.jsxs)(`h2`,{className:`flex items-center gap-2 text-sm font-semibold text-slate-950`,children:[(0,V.jsx)(t,{className:`h-4 w-4 text-slate-500`}),n]})}),e]})}function HC(){return(0,V.jsx)(VC,{icon:rm,title:`Status Contract Explorer`,children:(0,V.jsx)(`div`,{className:`grid gap-3 p-4 lg:grid-cols-2`,"data-testid":`developer-contract-explorer`,children:IC.map(e=>(0,V.jsxs)(`div`,{className:`rounded-md border border-slate-200 bg-slate-50 px-3 py-3`,children:[(0,V.jsxs)(`div`,{className:`flex flex-wrap items-center gap-2`,children:[(0,V.jsx)(FC,{variant:`info`,children:e.label}),(0,V.jsx)(FC,{variant:`neutral`,children:`public contract`})]}),(0,V.jsx)(`div`,{className:`mt-2 break-words font-mono text-xs text-slate-700`,children:e.source}),(0,V.jsx)(`p`,{className:`mt-2 text-sm leading-6 text-slate-600`,children:e.detail})]},e.label))})})}function UC(){return(0,V.jsx)(VC,{icon:Cm,title:`Projection Diffing`,children:(0,V.jsx)(`div`,{className:`overflow-x-auto`,"data-testid":`developer-projection-diffing`,children:(0,V.jsxs)(`table`,{className:`min-w-full border-separate border-spacing-0 text-left text-sm`,children:[(0,V.jsx)(`thead`,{children:(0,V.jsxs)(`tr`,{className:`bg-slate-50 text-xs uppercase tracking-normal text-slate-500`,children:[(0,V.jsx)(`th`,{className:`border-b border-slate-200 px-4 py-3 font-semibold`,children:`Axis`}),(0,V.jsx)(`th`,{className:`border-b border-slate-200 px-4 py-3 font-semibold`,children:`Current`}),(0,V.jsx)(`th`,{className:`border-b border-slate-200 px-4 py-3 font-semibold`,children:`Proposed`}),(0,V.jsx)(`th`,{className:`border-b border-slate-200 px-4 py-3 font-semibold`,children:`Gate`})]})}),(0,V.jsx)(`tbody`,{children:LC.map(e=>(0,V.jsxs)(`tr`,{className:`align-top`,children:[(0,V.jsx)(`td`,{className:`border-b border-slate-100 px-4 py-3 font-semibold text-slate-950`,children:e.axis}),(0,V.jsx)(`td`,{className:`border-b border-slate-100 px-4 py-3 text-slate-600`,children:e.current}),(0,V.jsx)(`td`,{className:`border-b border-slate-100 px-4 py-3 text-slate-600`,children:e.proposed}),(0,V.jsx)(`td`,{className:`border-b border-slate-100 px-4 py-3 text-slate-600`,children:e.gate})]},e.axis))})]})})})}function WC(){return(0,V.jsx)(VC,{icon:ym,title:`Fixture Generation`,children:(0,V.jsx)(`div`,{className:`grid gap-3 p-4 md:grid-cols-3`,"data-testid":`developer-fixture-generation`,children:RC.map(e=>(0,V.jsxs)(`div`,{className:`rounded-md border border-slate-200 bg-slate-50 px-3 py-3`,children:[(0,V.jsx)(`div`,{className:`text-sm font-semibold text-slate-950`,children:e.title}),(0,V.jsx)(`p`,{className:`mt-2 text-sm leading-6 text-slate-600`,children:e.body})]},e.title))})})}function GC(){return(0,V.jsx)(VC,{icon:dm,title:`Smoke Checklist`,children:(0,V.jsx)(`div`,{className:`space-y-2 p-4`,"data-testid":`developer-smoke-checklist`,children:zC.map(e=>(0,V.jsxs)(`div`,{className:`flex items-start gap-3 rounded-md border border-slate-200 bg-slate-50 px-3 py-2`,children:[(0,V.jsx)(em,{className:`mt-0.5 h-4 w-4 shrink-0 text-emerald-600`}),(0,V.jsx)(`code`,{className:`break-all text-xs font-semibold leading-5 text-slate-700`,children:e})]},e))})})}function KC(){return(0,V.jsx)(VC,{icon:fm,title:`Component Examples`,children:(0,V.jsx)(`div`,{className:`grid gap-3 p-4 lg:grid-cols-3`,"data-testid":`developer-component-examples`,children:BC.map(e=>(0,V.jsxs)(`article`,{className:`rounded-md border border-slate-200 bg-slate-50 p-3`,children:[(0,V.jsx)(`div`,{className:`flex flex-wrap gap-2`,children:e.badges.map(e=>(0,V.jsx)(FC,{variant:e===`read-only`||e===`public-safe`?`success`:`neutral`,children:e},e))}),(0,V.jsx)(`h3`,{className:`mt-3 text-sm font-semibold leading-6 text-slate-950`,children:e.name}),(0,V.jsx)(`p`,{className:`mt-2 text-sm leading-6 text-slate-600`,children:e.body})]},e.name))})})}function qC(){return(0,V.jsx)(`main`,{className:`min-h-screen bg-[#f7f7f4] px-4 py-4 text-slate-950 sm:px-5`,"data-testid":`frontstage-developer-cockpit`,children:(0,V.jsxs)(`div`,{className:`mx-auto grid max-w-[1500px] gap-4 xl:grid-cols-[260px_minmax(0,1fr)]`,children:[(0,V.jsxs)(`aside`,{className:`rounded-lg border border-slate-200 bg-white p-4 shadow-sm xl:sticky xl:top-4 xl:self-start`,children:[(0,V.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,V.jsx)(`div`,{className:`flex h-9 w-9 items-center justify-center rounded-md border border-slate-200 bg-slate-950 text-white`,children:(0,V.jsx)(th,{className:`h-4 w-4`})}),(0,V.jsxs)(`div`,{children:[(0,V.jsx)(`div`,{className:`text-sm font-semibold`,children:`Developer Cockpit`}),(0,V.jsx)(`div`,{className:`text-xs text-slate-500`,children:`Projection extension`})]})]}),(0,V.jsxs)(`div`,{className:`mt-4 grid gap-2`,children:[(0,V.jsxs)(`a`,{className:`flex items-center gap-2 rounded-md border border-slate-200 px-3 py-2 text-sm font-medium`,href:`https://huangruiteng.github.io/loopx/`,children:[(0,V.jsx)(Dm,{className:`h-4 w-4`}),`LoopX home`]}),(0,V.jsxs)(`a`,{className:`flex items-center gap-2 rounded-md border border-slate-200 px-3 py-2 text-sm font-medium`,href:`https://huangruiteng.github.io/loopx/docs/showcases/index.en.html`,children:[(0,V.jsx)(_m,{className:`h-4 w-4`}),`Public cases`]}),(0,V.jsxs)(`a`,{className:`flex items-center gap-2 rounded-md bg-slate-950 px-3 py-2 text-sm font-medium text-white`,href:`/chat/developers/projections/`,children:[(0,V.jsx)(fm,{className:`h-4 w-4`}),`Developer cockpit`]})]}),(0,V.jsxs)(`div`,{className:`mt-5 space-y-2 rounded-md border border-emerald-200 bg-emerald-50 p-3 text-xs leading-5 text-emerald-950`,children:[(0,V.jsxs)(`div`,{className:`flex flex-wrap gap-2`,children:[(0,V.jsx)(FC,{variant:`success`,children:`read-only`}),(0,V.jsx)(FC,{variant:`neutral`,children:`public fixtures`})]}),(0,V.jsx)(`p`,{children:`This route uses static public contracts only; live status feeds, registry files, and browser write APIs stay outside the cockpit.`})]})]}),(0,V.jsxs)(`section`,{className:`space-y-4`,children:[(0,V.jsx)(`div`,{className:`rounded-lg border border-slate-200 bg-white px-5 py-5 shadow-sm`,children:(0,V.jsxs)(`div`,{className:`flex flex-wrap items-start justify-between gap-4`,children:[(0,V.jsxs)(`div`,{children:[(0,V.jsxs)(`div`,{className:`flex flex-wrap gap-2`,children:[(0,V.jsx)(FC,{variant:`info`,children:`developers/projections`}),(0,V.jsx)(FC,{variant:`success`,children:`public-safe`}),(0,V.jsx)(FC,{variant:`neutral`,children:`no browser writes`})]}),(0,V.jsx)(`h1`,{className:`mt-3 text-3xl font-semibold tracking-normal text-slate-950`,children:`LoopX Projection Developer Cockpit`}),(0,V.jsx)(`p`,{className:`mt-2 max-w-3xl text-sm leading-6 text-slate-600`,children:`A read-only contributor workbench for adding dashboard/frontstage projections without reverse-engineering the large operator page.`})]}),(0,V.jsxs)(`div`,{className:`grid min-w-[260px] gap-2 text-sm`,children:[(0,V.jsxs)(`div`,{className:`rounded-md border border-slate-200 bg-slate-50 px-3 py-2`,children:[(0,V.jsx)(`div`,{className:`text-[11px] font-semibold uppercase tracking-normal text-slate-500`,children:`Source of truth`}),(0,V.jsx)(`div`,{className:`mt-1 font-semibold text-slate-950`,children:`status contract + compact fixtures`})]}),(0,V.jsxs)(`div`,{className:`rounded-md border border-slate-200 bg-slate-50 px-3 py-2`,children:[(0,V.jsx)(`div`,{className:`text-[11px] font-semibold uppercase tracking-normal text-slate-500`,children:`Boundary`}),(0,V.jsx)(`div`,{className:`mt-1 font-semibold text-slate-950`,children:`read-only extension surface`})]})]})]})}),(0,V.jsxs)(`div`,{className:`grid gap-4 xl:grid-cols-2`,children:[(0,V.jsx)(HC,{}),(0,V.jsx)(UC,{})]}),(0,V.jsxs)(`div`,{className:`grid gap-4 xl:grid-cols-[minmax(0,1fr)_420px]`,children:[(0,V.jsx)(WC,{}),(0,V.jsx)(GC,{})]}),(0,V.jsx)(KC,{}),(0,V.jsx)(VC,{icon:Xm,title:`Extension Boundary`,children:(0,V.jsxs)(`div`,{className:`grid gap-3 p-4 md:grid-cols-3`,"data-testid":`developer-extension-boundary`,children:[(0,V.jsxs)(`div`,{className:`rounded-md border border-emerald-200 bg-emerald-50 px-3 py-3`,children:[(0,V.jsx)(`div`,{className:`text-sm font-semibold text-slate-950`,children:`Allowed`}),(0,V.jsx)(`p`,{className:`mt-2 text-sm leading-6 text-slate-600`,children:`Versioned parser defaults, public fixtures, read-only route panels, and focused smoke assertions.`})]}),(0,V.jsxs)(`div`,{className:`rounded-md border border-amber-200 bg-amber-50 px-3 py-3`,children:[(0,V.jsx)(`div`,{className:`text-sm font-semibold text-slate-950`,children:`Review`}),(0,V.jsx)(`p`,{className:`mt-2 text-sm leading-6 text-slate-600`,children:`New dashboard dependencies, status contract fields, loopback capability display, and browser-visible workflows.`})]}),(0,V.jsxs)(`div`,{className:`rounded-md border border-rose-200 bg-rose-50 px-3 py-3`,children:[(0,V.jsx)(`div`,{className:`text-sm font-semibold text-slate-950`,children:`Stop`}),(0,V.jsx)(`p`,{className:`mt-2 text-sm leading-6 text-slate-600`,children:`Credentials, private registry material, raw logs, transcripts, production actions, or default browser write authority.`})]})]})})]})]})})}var JC=J({value:G().finite(),total:G().finite().positive().optional(),unit:W().optional(),higher_is_better:K()}).passthrough(),YC=yd(W(),G().finite()).default({}),XC=J({outcome_status:W().optional(),failure_class:W(),causal_summary:W(),expectedness:W(),implication:W(),next_probe:W(),confidence:W(),evidence_refs:q(W()).optional()}).passthrough(),ZC=J({arm_id:W(),selected_run_id:W().nullable(),score_countable:K(),metrics:yd(W(),JC),effort:YC,insight:XC.nullable().optional()}),QC=J({run_id:W(),case_id:W(),arm_id:W(),arm_role:W(),status:W(),protocol_id:W(),runner_revision:W().optional(),observed_at:W(),metrics:yd(W(),JC),countability:J({integrity_qualified:K(),official_result_present:K(),score_countable:K()}).passthrough(),treatment_fidelity:W(),effort:YC,redacted_insight:XC.nullable().optional(),upload_provenance:J({producer_id:W(),producer_version:W(),observed_at:W(),source_revision:W()}).passthrough()}).passthrough(),$C=J({case_denominator:G().int().nonnegative(),value_sum:G().finite(),value_mean:G().finite().nullable(),value_median:G().finite().nullable(),value_min:G().finite().nullable(),value_max:G().finite().nullable(),case_macro_rate:G().finite().optional(),suite_micro_rate:G().finite().optional(),suite_micro_numerator:G().finite().optional(),suite_micro_denominator:G().finite().positive().optional()}).passthrough(),ew=J({arm_id:W(),arm_role:W(),factor_assignments:yd(W(),W()),protocol_counts:yd(W(),G().int().nonnegative()).default({}),runner_revision_counts:yd(W(),G().int().nonnegative()).default({}),orchestrator_runtime_counts:yd(W(),G().int().nonnegative()).default({}),intended_case_count:G().int().positive(),run_count:G().int().nonnegative(),terminal_run_count:G().int().nonnegative(),selected_score_countable_case_count:G().int().nonnegative(),coverage_rate:G().finite().min(0).max(1),metrics:yd(W(),$C),binary_outcomes:yd(W(),J({success_count:G().int().nonnegative(),case_denominator:G().int().nonnegative(),success_rate:G().finite().min(0).max(1).nullable()})),effort:yd(W(),J({denominator:G().int().nonnegative(),mean:G().finite().nullable(),median:G().finite().nullable()})),failure_class_counts:yd(W(),G().int().nonnegative())}).passthrough(),tw=J({baseline_value:G().finite(),candidate_value:G().finite(),delta:G().finite(),direction:Y([`improved`,`flat`,`regressed`]).optional()}).passthrough(),nw=J({comparison_id:W(),comparison_anchor_run_id:W(),candidate_run_id:W(),candidate_arm_id:W(),primary_metric:W(),matched_pair_countable:X(!0),metric_deltas:yd(W(),tw)}).passthrough(),rw=J({ok:X(!0),schema_version:X(`benchmark_study_dashboard_v0`),benchmark_id:W(),study_id:W(),status:Y([`complete`,`provisional`]),design:J({protocol_id:W(),comparison_protocol_id:W(),baseline_arm_id:W(),case_set:J({case_set_id:W(),case_ids:q(W())}),metric_catalog:q(J({metric_name:W(),role:Y([`primary`,`guardrail`,`supporting`]),unit:W().optional(),higher_is_better:K(),binary:K()})),labels:yd(W(),W())}).passthrough(),campaign:J({intended_case_count:G().int().positive(),intended_arm_count:G().int().positive(),intended_cell_denominator:G().int().positive(),selected_score_countable_cell_count:G().int().nonnegative(),selected_score_countable_coverage_rate:G().finite().min(0).max(1),complete_declared_design_case_count:G().int().nonnegative(),ambiguous_score_countable_cell_count:G().int().nonnegative(),in_flight_run_count:G().int().nonnegative(),matched_pair_countable_count:G().int().nonnegative(),factorial_contrast_count:G().int().nonnegative(),factorial_contrast_countable_count:G().int().nonnegative(),runtime_observation_count:G().int().nonnegative(),runtime_classification_counts:yd(W(),G().int().nonnegative())}),arms:q(ew),contrasts:yd(W(),J({matched_pair_denominator:G().int().nonnegative(),primary_metric_directions:J({improved:G().int().nonnegative(),flat:G().int().nonnegative(),regressed:G().int().nonnegative()}),binary_metric_transitions:yd(W(),J({"0_to_1":G().int().nonnegative(),"1_to_0":G().int().nonnegative(),same:G().int().nonnegative()}))})),cases:q(J({case_id:W(),complete_declared_design:K(),arms:q(ZC),eligible_comparisons:q(nw),largest_eligible_primary_contrast:nw.nullable()})),runs:q(QC),authority:J({score_source:W(),matched_comparison_source:W(),factorial_comparison_source:W().nullable(),manifest_changes_scores:X(!1),dashboard_is_execution_authority:X(!1)}),public_boundary:J({raw_task_recorded:X(!1),raw_trajectory_recorded:X(!1),hidden_evaluation_recorded:X(!1),raw_verifier_output_recorded:X(!1),credentials_recorded:X(!1),local_paths_recorded:X(!1)}),write_performed:X(!1),network_access_performed:X(!1)});function iw(e){return rw.parse(e)}function aw(e,t){let n=new URL(t),r=new URL(e||`/benchmark-study.example.json`,n);if(!new Set([`http:`,`https:`]).has(r.protocol))throw Error(`Benchmark dashboard source must use HTTP or HTTPS`);if(r.origin!==n.origin)throw Error(`Benchmark dashboard source must use same-origin local readback`);return r.toString()}var ow=[{id:`campaign`,label:`Campaign`},{id:`arms`,label:`Arms`},{id:`cases`,label:`Cases`},{id:`runs`,label:`Runs`}];function sw(e){return e==null?`—`:`${(e*100).toFixed(e>=.995?0:1)}%`}function cw(e){return e==null?`—`:new Intl.NumberFormat(`en`,{maximumFractionDigits:2,notation:`compact`}).format(e)}function lw(e){if(e==null)return`—`;let t=e/6e4;return t>=120?`${(t/60).toFixed(1)} h`:`${cw(t)} min`}function uw(e){let t=Object.entries(e);return t.length?t.map(([e,t])=>`${e} (${t})`).join(`, `):`—`}function dw(e){if(!e)return`—`;let t=e.total==null?cw(e.value):`${cw(e.value)}/${cw(e.total)}`;return e.unit?`${t} ${e.unit}`:t}function fw(e,t){let n=e.metrics[t];return!n||n.case_denominator===0?`—`:n.suite_micro_rate==null?`${cw(n.value_mean)} mean`:`${sw(n.suite_micro_rate)} · ${cw(n.suite_micro_numerator)}/${cw(n.suite_micro_denominator)}`}function pw(e,t){let n=e.largest_eligible_primary_contrast,r=n?.metric_deltas[t];if(!n||!r)return null;let i=r.delta>0?`+`:``;return{direction:r.direction,text:`${n.candidate_arm_id}: ${i}${cw(r.delta)}`}}function mw({children:e,tone:t=`neutral`}){return(0,V.jsx)(`span`,{className:`benchmark-state benchmark-state-${t}`,children:e})}function hw({packet:e,primaryMetric:t}){return(0,V.jsxs)(`div`,{className:`benchmark-view-stack`,children:[(0,V.jsxs)(`section`,{"aria-labelledby":`arm-summary-title`,children:[(0,V.jsxs)(`div`,{className:`benchmark-section-heading`,children:[(0,V.jsxs)(`div`,{children:[(0,V.jsx)(`p`,{className:`benchmark-kicker`,children:`ARM SUMMARY`}),(0,V.jsx)(`h2`,{id:`arm-summary-title`,children:`Comparable outcomes, denominator first`})]}),(0,V.jsx)(`p`,{children:`Only one score-countable run per declared case × arm cell is selected.`})]}),(0,V.jsx)(`div`,{className:`benchmark-arm-grid`,children:e.arms.map(e=>{let n=Object.values(e.binary_outcomes)[0];return(0,V.jsxs)(`article`,{className:`benchmark-arm-card`,children:[(0,V.jsxs)(`div`,{className:`benchmark-card-heading`,children:[(0,V.jsxs)(`div`,{children:[(0,V.jsx)(`span`,{className:`benchmark-mono`,children:e.arm_role}),(0,V.jsx)(`h3`,{children:e.arm_id})]}),(0,V.jsx)(mw,{tone:e.coverage_rate===1?`success`:`warning`,children:e.coverage_rate===1?`Complete`:`Provisional`})]}),(0,V.jsxs)(`dl`,{className:`benchmark-stat-list`,children:[(0,V.jsxs)(`div`,{children:[(0,V.jsxs)(`dt`,{children:[`Primary · `,t]}),(0,V.jsx)(`dd`,{children:fw(e,t)})]}),(0,V.jsxs)(`div`,{children:[(0,V.jsx)(`dt`,{children:`Score-countable coverage`}),(0,V.jsxs)(`dd`,{children:[e.selected_score_countable_case_count,`/`,e.intended_case_count]})]}),(0,V.jsxs)(`div`,{children:[(0,V.jsx)(`dt`,{children:`Binary success`}),(0,V.jsx)(`dd`,{children:n?`${n.success_count}/${n.case_denominator}`:`Not declared`})]})]})]},e.arm_id)})})]}),(0,V.jsxs)(`section`,{"aria-labelledby":`contrast-title`,children:[(0,V.jsxs)(`div`,{className:`benchmark-section-heading`,children:[(0,V.jsxs)(`div`,{children:[(0,V.jsx)(`p`,{className:`benchmark-kicker`,children:`MATCHED CONTRASTS`}),(0,V.jsx)(`h2`,{id:`contrast-title`,children:`Direction counts on eligible pairs`})]}),(0,V.jsx)(`p`,{children:`Raw run volume is never used as a comparison denominator.`})]}),(0,V.jsx)(`div`,{className:`benchmark-table-shell`,children:(0,V.jsxs)(`table`,{children:[(0,V.jsx)(`thead`,{children:(0,V.jsxs)(`tr`,{children:[(0,V.jsx)(`th`,{children:`Candidate arm`}),(0,V.jsx)(`th`,{children:`Matched denominator`}),(0,V.jsx)(`th`,{children:`Improved`}),(0,V.jsx)(`th`,{children:`Flat`}),(0,V.jsx)(`th`,{children:`Regressed`}),(0,V.jsx)(`th`,{children:`Binary transitions`})]})}),(0,V.jsxs)(`tbody`,{children:[Object.entries(e.contrasts).map(([e,t])=>(0,V.jsxs)(`tr`,{children:[(0,V.jsx)(`td`,{children:(0,V.jsx)(`strong`,{children:e})}),(0,V.jsx)(`td`,{children:t.matched_pair_denominator}),(0,V.jsx)(`td`,{className:`benchmark-positive`,children:t.primary_metric_directions.improved}),(0,V.jsx)(`td`,{children:t.primary_metric_directions.flat}),(0,V.jsx)(`td`,{className:`benchmark-negative`,children:t.primary_metric_directions.regressed}),(0,V.jsx)(`td`,{children:Object.entries(t.binary_metric_transitions).map(([e,t])=>`${e}: 0→1 ${t[`0_to_1`]}, 1→0 ${t[`1_to_0`]}, same ${t.same}`).join(` · `)||`—`})]},e)),Object.keys(e.contrasts).length===0&&(0,V.jsx)(`tr`,{children:(0,V.jsx)(`td`,{colSpan:6,children:`No matched comparisons are countable yet.`})})]})]})})]}),(0,V.jsxs)(`section`,{"aria-labelledby":`runtime-health-title`,children:[(0,V.jsxs)(`div`,{className:`benchmark-section-heading`,children:[(0,V.jsxs)(`div`,{children:[(0,V.jsx)(`p`,{className:`benchmark-kicker`,children:`RUNTIME HEALTH`}),(0,V.jsx)(`h2`,{id:`runtime-health-title`,children:`Qualified observations, without execution authority`})]}),(0,V.jsxs)(`p`,{children:[e.campaign.runtime_observation_count,` public-safe runtime observations.`]})]}),(0,V.jsxs)(`div`,{className:`benchmark-runtime-list`,children:[Object.entries(e.campaign.runtime_classification_counts).map(([e,t])=>(0,V.jsxs)(`div`,{children:[(0,V.jsx)(`span`,{children:e}),(0,V.jsx)(`strong`,{children:t})]},e)),e.campaign.runtime_observation_count===0&&(0,V.jsx)(`p`,{className:`benchmark-muted`,children:`No runtime observations uploaded.`})]})]})]})}function gw({packet:e}){return(0,V.jsx)(`div`,{className:`benchmark-detail-grid`,children:e.arms.map(t=>(0,V.jsxs)(`article`,{className:`benchmark-detail-card`,children:[(0,V.jsxs)(`div`,{className:`benchmark-card-heading`,children:[(0,V.jsxs)(`div`,{children:[(0,V.jsx)(`span`,{className:`benchmark-mono`,children:t.arm_role}),(0,V.jsx)(`h2`,{children:t.arm_id})]}),(0,V.jsxs)(mw,{tone:t.coverage_rate===1?`success`:`warning`,children:[t.selected_score_countable_case_count,`/`,t.intended_case_count,` countable`]})]}),(0,V.jsx)(`div`,{className:`benchmark-factor-row`,children:Object.entries(t.factor_assignments).map(([e,t])=>(0,V.jsxs)(`span`,{children:[e,`: `,(0,V.jsx)(`strong`,{children:t})]},e))}),(0,V.jsxs)(`dl`,{className:`benchmark-stat-list`,children:[e.design.metric_catalog.map(e=>(0,V.jsxs)(`div`,{children:[(0,V.jsxs)(`dt`,{children:[e.role,` · `,e.metric_name]}),(0,V.jsx)(`dd`,{children:fw(t,e.metric_name)})]},e.metric_name)),(0,V.jsxs)(`div`,{children:[(0,V.jsx)(`dt`,{children:`Runs terminal / observed`}),(0,V.jsxs)(`dd`,{children:[t.terminal_run_count,`/`,t.run_count]})]}),(0,V.jsxs)(`div`,{children:[(0,V.jsx)(`dt`,{children:`Median duration`}),(0,V.jsx)(`dd`,{children:lw(t.effort.duration_ms?.median)})]}),(0,V.jsxs)(`div`,{children:[(0,V.jsx)(`dt`,{children:`Protocols`}),(0,V.jsx)(`dd`,{children:uw(t.protocol_counts)})]}),(0,V.jsxs)(`div`,{children:[(0,V.jsx)(`dt`,{children:`Runner revisions`}),(0,V.jsx)(`dd`,{children:uw(t.runner_revision_counts)})]}),(0,V.jsxs)(`div`,{children:[(0,V.jsx)(`dt`,{children:`Orchestrator runtimes`}),(0,V.jsxs)(`dd`,{children:[Object.keys(t.orchestrator_runtime_counts).length||0,` distinct`]})]}),(0,V.jsxs)(`div`,{children:[(0,V.jsx)(`dt`,{children:`Failure classes`}),(0,V.jsx)(`dd`,{children:uw(t.failure_class_counts)})]})]})]},t.arm_id))})}function _w({packet:e,primaryMetric:t,onOpenRun:n}){return(0,V.jsx)(`div`,{className:`benchmark-table-shell benchmark-wide-table`,children:(0,V.jsxs)(`table`,{children:[(0,V.jsx)(`thead`,{children:(0,V.jsxs)(`tr`,{children:[(0,V.jsx)(`th`,{children:`Case`}),(0,V.jsx)(`th`,{children:`Design status`}),(0,V.jsx)(`th`,{children:`Largest eligible delta`}),e.arms.map(e=>(0,V.jsx)(`th`,{children:e.arm_id},e.arm_id))]})}),(0,V.jsx)(`tbody`,{children:e.cases.map(r=>{let i=pw(r,t);return(0,V.jsxs)(`tr`,{children:[(0,V.jsx)(`td`,{children:(0,V.jsx)(`strong`,{children:r.case_id})}),(0,V.jsx)(`td`,{children:(0,V.jsx)(mw,{tone:r.complete_declared_design?`success`:`warning`,children:r.complete_declared_design?`Complete`:`Provisional`})}),(0,V.jsx)(`td`,{className:i?.direction===`improved`?`benchmark-positive`:i?.direction===`regressed`?`benchmark-negative`:void 0,children:i?.text??`—`}),r.arms.map(r=>(0,V.jsx)(`td`,{children:r.selected_run_id&&r.score_countable?(0,V.jsxs)(`button`,{className:`benchmark-cell-link`,onClick:()=>n(r.selected_run_id),type:`button`,children:[(0,V.jsxs)(`span`,{children:[t,`: `,dw(r.metrics[t])]}),e.design.metric_catalog.filter(e=>e.metric_name!==t).map(e=>(0,V.jsxs)(`small`,{className:`benchmark-cell-metric`,children:[e.metric_name,`: `,dw(r.metrics[e.metric_name])]},e.metric_name)),(0,V.jsxs)(`small`,{children:[`Countable · `,lw(r.effort.duration_ms),` `,(0,V.jsx)(Zp,{"aria-hidden":`true`,size:12})]}),r.insight&&(0,V.jsxs)(`small`,{children:[r.insight.failure_class,` · `,r.insight.confidence]})]}):(0,V.jsx)(`span`,{className:`benchmark-muted`,children:`Not countable`})},r.arm_id))]},r.case_id)})})]})})}function vw({run:e,packet:t}){return(0,V.jsxs)(`aside`,{"aria-label":`Run detail for ${e.run_id}`,className:`benchmark-run-detail`,children:[(0,V.jsxs)(`div`,{className:`benchmark-card-heading`,children:[(0,V.jsxs)(`div`,{children:[(0,V.jsx)(`span`,{className:`benchmark-mono`,children:`RUN DETAIL`}),(0,V.jsx)(`h2`,{children:e.run_id})]}),(0,V.jsx)(mw,{tone:e.countability.score_countable?`success`:`warning`,children:e.countability.score_countable?`Score-countable`:`Diagnostic only`})]}),(0,V.jsxs)(`dl`,{className:`benchmark-stat-list benchmark-run-facts`,children:[(0,V.jsxs)(`div`,{children:[(0,V.jsx)(`dt`,{children:`Case / arm`}),(0,V.jsxs)(`dd`,{children:[e.case_id,` · `,e.arm_id]})]}),(0,V.jsxs)(`div`,{children:[(0,V.jsx)(`dt`,{children:`Lifecycle`}),(0,V.jsxs)(`dd`,{children:[e.status,` · `,e.observed_at]})]}),(0,V.jsxs)(`div`,{children:[(0,V.jsx)(`dt`,{children:`Protocol`}),(0,V.jsx)(`dd`,{children:e.protocol_id})]}),(0,V.jsxs)(`div`,{children:[(0,V.jsx)(`dt`,{children:`Qualification`}),(0,V.jsxs)(`dd`,{children:[`Integrity `,e.countability.integrity_qualified?`qualified`:`not qualified`,` · result `,e.countability.official_result_present?`present`:`missing`]})]}),(0,V.jsxs)(`div`,{children:[(0,V.jsx)(`dt`,{children:`Treatment fidelity`}),(0,V.jsx)(`dd`,{children:e.treatment_fidelity})]}),(0,V.jsxs)(`div`,{children:[(0,V.jsx)(`dt`,{children:`Effort`}),(0,V.jsxs)(`dd`,{children:[lw(e.effort.duration_ms),` · `,cw(e.effort.agent_steps),` steps · `,cw(e.effort.token_count),` tokens`]})]}),(0,V.jsxs)(`div`,{children:[(0,V.jsx)(`dt`,{children:`Runner revision`}),(0,V.jsx)(`dd`,{children:e.runner_revision??`—`})]}),(0,V.jsxs)(`div`,{children:[(0,V.jsx)(`dt`,{children:`Upload provenance`}),(0,V.jsxs)(`dd`,{children:[e.upload_provenance.producer_id,` · `,e.upload_provenance.source_revision]})]})]}),(0,V.jsx)(`div`,{className:`benchmark-run-metrics`,children:t.design.metric_catalog.map(t=>(0,V.jsxs)(`div`,{children:[(0,V.jsx)(`span`,{children:t.metric_name}),(0,V.jsx)(`strong`,{children:dw(e.metrics[t.metric_name])})]},t.metric_name))}),e.redacted_insight&&(0,V.jsxs)(`div`,{className:`benchmark-insight`,children:[(0,V.jsxs)(`span`,{className:`benchmark-mono`,children:[`REDACTED CASE INSIGHT · `,e.redacted_insight.confidence]}),(0,V.jsx)(`p`,{children:e.redacted_insight.causal_summary}),(0,V.jsxs)(`small`,{children:[`Implication: `,e.redacted_insight.implication]}),(0,V.jsx)(`br`,{}),(0,V.jsxs)(`small`,{children:[`Next probe: `,e.redacted_insight.next_probe]}),!!e.redacted_insight.evidence_refs?.length&&(0,V.jsxs)(V.Fragment,{children:[(0,V.jsx)(`br`,{}),(0,V.jsxs)(`small`,{children:[`Evidence: `,e.redacted_insight.evidence_refs.join(`, `)]})]})]})]})}function yw({packet:e,selectedRunId:t,onSelectRun:n}){let r=e.runs.find(e=>e.run_id===t)??e.runs[0];return(0,V.jsxs)(`div`,{className:`benchmark-runs-layout`,children:[(0,V.jsx)(`div`,{className:`benchmark-table-shell`,children:(0,V.jsxs)(`table`,{children:[(0,V.jsx)(`thead`,{children:(0,V.jsxs)(`tr`,{children:[(0,V.jsx)(`th`,{children:`Run`}),(0,V.jsx)(`th`,{children:`Case`}),(0,V.jsx)(`th`,{children:`Arm`}),(0,V.jsx)(`th`,{children:`Status`}),(0,V.jsx)(`th`,{children:`Countability`})]})}),(0,V.jsx)(`tbody`,{children:e.runs.map(e=>(0,V.jsxs)(`tr`,{"aria-selected":e.run_id===r?.run_id,children:[(0,V.jsx)(`td`,{children:(0,V.jsx)(`button`,{className:`benchmark-run-link`,onClick:()=>n(e.run_id),type:`button`,children:e.run_id})}),(0,V.jsx)(`td`,{children:e.case_id}),(0,V.jsx)(`td`,{children:e.arm_id}),(0,V.jsx)(`td`,{children:e.status}),(0,V.jsx)(`td`,{children:e.countability.score_countable?`Score-countable`:`Diagnostic only`})]},e.run_id))})]})}),r&&(0,V.jsx)(vw,{packet:e,run:r})]})}function bw(){let e=Fw.useSearch(),t=Fw.useNavigate(),[n,r]=(0,B.useState)(null),[i,a]=(0,B.useState)(null),[o,s]=(0,B.useState)(0),c=(0,B.useMemo)(()=>{let t=e.dashboardUrl||`/chat/benchmark-study.example.json`;try{return{url:aw(t,window.location.href),error:null}}catch(e){return{url:``,error:e instanceof Error?e.message:`Invalid dashboard source`}}},[e.dashboardUrl]);if((0,B.useEffect)(()=>{let e=!0;return r(null),a(null),c.error?(a(c.error),()=>{e=!1}):(fetch(c.url,{cache:`no-store`}).then(async e=>{if(!e.ok)throw Error(`HTTP ${e.status} while loading the dashboard packet`);return iw(await e.json())}).then(t=>{e&&r(t)}).catch(t=>{e&&a(t instanceof Error?t.message:`Unable to load dashboard packet`)}),()=>{e=!1})},[o,c]),(0,B.useEffect)(()=>{n&&(document.title=`${n.design.labels.title??n.study_id} · LoopX Benchmark`)},[n]),i)return(0,V.jsxs)(`main`,{className:`benchmark-page benchmark-loading`,children:[(0,V.jsx)(lm,{"aria-hidden":`true`}),(0,V.jsx)(`h1`,{children:`Dashboard packet unavailable`}),(0,V.jsx)(`p`,{children:i}),(0,V.jsxs)(`button`,{onClick:()=>s(e=>e+1),type:`button`,children:[(0,V.jsx)(Hm,{"aria-hidden":`true`,size:16}),` Retry readback`]})]});if(!n)return(0,V.jsxs)(`main`,{"aria-busy":`true`,className:`benchmark-page benchmark-loading`,children:[(0,V.jsx)(Jp,{"aria-hidden":`true`}),(0,V.jsx)(`h1`,{children:`Reading benchmark study`}),(0,V.jsx)(`p`,{children:`Validating the public-safe dashboard packet…`})]});let l=n.design.metric_catalog.find(e=>e.role===`primary`)?.metric_name??`primary`,u=(n,r=e.runId)=>t({search:e=>({...e,view:n,runId:r})}),d=new URL(c.url).pathname;return(0,V.jsxs)(`main`,{className:`benchmark-page`,children:[(0,V.jsxs)(`header`,{className:`benchmark-hero`,children:[(0,V.jsxs)(`div`,{className:`benchmark-hero-topline`,children:[(0,V.jsx)(`a`,{className:`benchmark-wordmark`,href:`/chat/`,children:`LoopX`}),(0,V.jsxs)(`div`,{className:`benchmark-readonly`,children:[(0,V.jsx)(Xm,{"aria-hidden":`true`,size:15}),` Derived read-only projection`]})]}),(0,V.jsxs)(`div`,{className:`benchmark-hero-grid`,children:[(0,V.jsxs)(`div`,{children:[(0,V.jsxs)(`p`,{className:`benchmark-kicker`,children:[`BENCHMARK STUDY / `,n.benchmark_id]}),(0,V.jsxs)(`div`,{className:`benchmark-title-row`,children:[(0,V.jsx)(`h1`,{children:n.design.labels.title??n.study_id}),(0,V.jsx)(mw,{tone:n.status===`complete`?`success`:`warning`,children:n.status})]}),(0,V.jsx)(`p`,{className:`benchmark-lead`,children:`One declared study, explicit denominators, and the same countability rules from campaign summary to exact run.`})]}),(0,V.jsxs)(`dl`,{className:`benchmark-identity`,children:[(0,V.jsxs)(`div`,{children:[(0,V.jsx)(`dt`,{children:`Study`}),(0,V.jsx)(`dd`,{children:n.study_id})]}),(0,V.jsxs)(`div`,{children:[(0,V.jsx)(`dt`,{children:`Protocol`}),(0,V.jsx)(`dd`,{children:n.design.protocol_id})]}),(0,V.jsxs)(`div`,{children:[(0,V.jsx)(`dt`,{children:`Case set`}),(0,V.jsx)(`dd`,{children:n.design.case_set.case_set_id})]})]})]}),(0,V.jsxs)(`div`,{className:`benchmark-kpi-grid`,children:[(0,V.jsxs)(`article`,{children:[(0,V.jsx)(mm,{"aria-hidden":`true`}),(0,V.jsx)(`span`,{children:`Score-countable cells`}),(0,V.jsxs)(`strong`,{children:[n.campaign.selected_score_countable_cell_count,(0,V.jsxs)(`small`,{children:[` / `,n.campaign.intended_cell_denominator]})]}),(0,V.jsxs)(`p`,{children:[sw(n.campaign.selected_score_countable_coverage_rate),` declared coverage`]})]}),(0,V.jsxs)(`article`,{children:[(0,V.jsx)(um,{"aria-hidden":`true`}),(0,V.jsx)(`span`,{children:`Complete designs`}),(0,V.jsxs)(`strong`,{children:[n.campaign.complete_declared_design_case_count,(0,V.jsxs)(`small`,{children:[` / `,n.campaign.intended_case_count]})]}),(0,V.jsx)(`p`,{children:`Cases with every declared arm`})]}),(0,V.jsxs)(`article`,{children:[(0,V.jsx)(Zp,{"aria-hidden":`true`}),(0,V.jsx)(`span`,{children:`Matched comparisons`}),(0,V.jsx)(`strong`,{children:n.campaign.matched_pair_countable_count}),(0,V.jsx)(`p`,{children:`Eligible pairs only`})]}),(0,V.jsxs)(`article`,{children:[(0,V.jsx)(Jp,{"aria-hidden":`true`}),(0,V.jsx)(`span`,{children:`In flight`}),(0,V.jsx)(`strong`,{children:n.campaign.in_flight_run_count}),(0,V.jsx)(`p`,{children:n.status===`provisional`?`Coverage remains provisional`:`Declared coverage complete`})]})]})]}),(0,V.jsxs)(`nav`,{"aria-label":`Benchmark dashboard views`,className:`benchmark-tabs`,children:[ow.map(t=>(0,V.jsx)(`button`,{"aria-current":e.view===t.id?`page`:void 0,onClick:()=>u(t.id),type:`button`,children:t.label},t.id)),(0,V.jsxs)(`button`,{className:`benchmark-refresh`,onClick:()=>s(e=>e+1),type:`button`,children:[(0,V.jsx)(Hm,{"aria-hidden":`true`,size:14}),` Refresh local readback`]})]}),(0,V.jsxs)(`div`,{className:`benchmark-content`,children:[e.view===`campaign`&&(0,V.jsx)(hw,{packet:n,primaryMetric:l}),e.view===`arms`&&(0,V.jsx)(gw,{packet:n}),e.view===`cases`&&(0,V.jsx)(_w,{onOpenRun:e=>u(`runs`,e),packet:n,primaryMetric:l}),e.view===`runs`&&(0,V.jsx)(yw,{onSelectRun:e=>u(`runs`,e),packet:n,selectedRunId:e.runId})]}),(0,V.jsxs)(`footer`,{className:`benchmark-footer`,children:[(0,V.jsxs)(`div`,{children:[(0,V.jsx)(Xm,{"aria-hidden":`true`,size:16}),(0,V.jsxs)(`span`,{children:[`Scores: `,n.authority.score_source]}),(0,V.jsx)(`span`,{children:`Dashboard cannot launch, grade, or mutate runs.`})]}),(0,V.jsxs)(`code`,{title:d,children:[`local`,d]})]})]})}var xw=J({goalId:W().optional().default(``),statusUrl:W().optional().default(``)}),Sw=J({goalId:W().optional().default(``),mode:Y([`showcase`,`developer`,`ops`]).optional().default(`showcase`),statusUrl:W().optional().default(``),todoLane:Y([`all`,`user`,`agent`]).optional().default(`all`),todoQuery:W().optional().default(``)}),Cw=Sw.omit({mode:!0}),ww=J({dashboardUrl:W().optional().default(``),view:Y([`campaign`,`arms`,`cases`,`runs`]).optional().default(`campaign`),runId:W().optional().default(``)});function Tw(){let e=`https://huangruiteng.github.io/loopx/docs/showcases/index.en.html`;return(0,B.useEffect)(()=>{window.location.replace(e)},[]),(0,V.jsx)(`a`,{href:e,children:`Open LoopX cases / 浏览案例`})}function Ew({goalId:e,statusUrl:t}){let n=t?lh(t,window.location.href):null;return n?.error?(0,V.jsx)(`main`,{role:`alert`,children:n.error}):(0,V.jsx)(ii,{replace:!0,to:`/`,search:{goalId:e,statusUrl:t}})}function Dw(){let e=jw.useSearch();return e.mode===`ops`?(0,V.jsx)(Ew,{...e}):e.mode===`developer`?(0,V.jsx)(ii,{replace:!0,to:`/developers/projections`}):(0,V.jsx)(Tw,{})}function Ow(){return(0,V.jsx)(Ew,{...Mw.useSearch()})}var kw=Ci({component:()=>(0,V.jsx)(Mi,{}),errorComponent:()=>(0,V.jsxs)(`main`,{role:`alert`,className:`p-8`,children:[(0,V.jsx)(`h1`,{children:`页面暂时无法显示 / Page unavailable`}),(0,V.jsx)(`p`,{children:`请重新加载页面;这不会执行任务。 / Reloading does not execute tasks.`}),(0,V.jsx)(`button`,{type:`button`,onClick:()=>window.location.reload(),children:`重新加载 / Reload`})]})}),Aw=xi({getParentRoute:()=>kw,path:`/`,validateSearch:e=>xw.parse(e),component:NC}),jw=xi({getParentRoute:()=>kw,path:`/frontstage`,validateSearch:e=>Sw.parse(e),component:Dw}),Mw=xi({getParentRoute:()=>kw,path:`/deprecated/frontstage/ops`,validateSearch:e=>Cw.parse(e),component:Ow}),Nw=xi({getParentRoute:()=>kw,path:`/frontstage/developer`,component:()=>(0,V.jsx)(ii,{replace:!0,to:`/developers/projections`})}),Pw=xi({getParentRoute:()=>kw,path:`/developers/projections`,component:qC}),Fw=xi({getParentRoute:()=>kw,path:`/benchmarks/study`,validateSearch:e=>ww.parse(e),component:bw}),Iw=kw.addChildren([Aw,jw,Mw,Nw,Pw,Fw]);function Lw(e){return!e||e===`/`||e===`./`?`/`:(e.startsWith(`/`)?e:`/${e}`).replace(/\/+$/,``)||`/`}var Rw=Li({routeTree:Iw,basepath:Lw(`/chat/`),trailingSlash:`preserve`}),zw=document.getElementById(`root`);if(!zw)throw Error(`Root element not found`);var Bw=new ke({defaultOptions:{queries:{refetchOnWindowFocus:!1,retry:1,staleTime:1e4}}});(0,Vi.createRoot)(zw).render((0,V.jsx)(Ne,{client:Bw,children:(0,V.jsx)(qi,{children:(0,V.jsx)(Bi,{router:Rw})})})); \ No newline at end of file diff --git a/loopx/web/chat/index.html b/loopx/web/chat/index.html index fffb7d4920..dc65ca78d9 100644 --- a/loopx/web/chat/index.html +++ b/loopx/web/chat/index.html @@ -18,7 +18,7 @@ content="LoopX 个人 Agent 工作区:在同一个频道里查看、纠偏并推进 Goal。" /> LoopX 个人 Agent 工作区 - +