@gr8ful/spf 0.13.0 → 0.15.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +52 -4
- package/assets/skill/references/config.md +4 -0
- package/dist/cli/commands/doctor.js +21 -0
- package/dist/cli/commands/watch.js +64 -3
- package/dist/cli/interview.js +18 -1
- package/dist/core/data_types.d.ts +233 -3
- package/dist/core/data_types.js +86 -3
- package/dist/core/issues/github_provider.d.ts +66 -2
- package/dist/core/issues/github_provider.js +161 -2
- package/dist/core/issues/jira_provider.d.ts +50 -9
- package/dist/core/issues/jira_provider.js +62 -2
- package/dist/core/notify/notifier.d.ts +3 -2
- package/dist/core/notify/notifier.js +32 -3
- package/dist/core/refine.js +2 -2
- package/dist/core/utils.d.ts +5 -5
- package/dist/core/utils.js +14 -7
- package/package.json +1 -1
- package/web/assets/index-CRujNW-1.js +11 -0
- package/web/assets/index-Cto6nuQL.css +1 -0
- package/web/assets/overpass-latin-400-normal-BpeLJ0bs.woff2 +0 -0
- package/web/assets/overpass-latin-600-normal-25RhTNCi.woff2 +0 -0
- package/web/assets/overpass-latin-700-normal-CQX2QTgM.woff2 +0 -0
- package/web/assets/overpass-mono-latin-400-normal-VINZG6Js.woff2 +0 -0
- package/web/assets/overpass-mono-latin-700-normal-D6nRBrbd.woff2 +0 -0
- package/web/index.html +33 -2
- package/web/logo.svg +4 -4
- package/web/assets/index-C7nF068F.css +0 -1
- package/web/assets/index-mzSArcnQ.js +0 -11
- package/web/assets/play-latin-400-normal-GKW-4YV7.woff2 +0 -0
- package/web/assets/play-latin-700-normal-DyPlLDbb.woff2 +0 -0
|
@@ -25,15 +25,21 @@ export class Notifier {
|
|
|
25
25
|
timeoutMs;
|
|
26
26
|
dryRun;
|
|
27
27
|
log;
|
|
28
|
+
project;
|
|
28
29
|
pending = new Set();
|
|
29
|
-
constructor(channels, timeoutMs, dryRun, log = (m) => console.error(m)
|
|
30
|
+
constructor(channels, timeoutMs, dryRun, log = (m) => console.error(m),
|
|
31
|
+
// See `NotificationsConfigSchema.project`'s doc comment — empty disables
|
|
32
|
+
// tagging entirely, so a single-repo setup's outbound JSON is unchanged.
|
|
33
|
+
project = "") {
|
|
30
34
|
this.channels = channels;
|
|
31
35
|
this.timeoutMs = timeoutMs;
|
|
32
36
|
this.dryRun = dryRun;
|
|
33
37
|
this.log = log;
|
|
38
|
+
this.project = project;
|
|
34
39
|
}
|
|
35
40
|
/** Sync, fire-and-forget — every call site is sync and must stay that way. */
|
|
36
|
-
send(
|
|
41
|
+
send(rawEvent) {
|
|
42
|
+
const event = this.project ? tagEvent(rawEvent, this.project) : rawEvent;
|
|
37
43
|
for (const { channel, scope } of this.channels) {
|
|
38
44
|
if (!scopeAllows(scope, event.level))
|
|
39
45
|
continue;
|
|
@@ -79,6 +85,23 @@ export class Notifier {
|
|
|
79
85
|
}
|
|
80
86
|
}
|
|
81
87
|
}
|
|
88
|
+
/**
|
|
89
|
+
* Prefixes `event.title` with `[project]` and adds a `repo` field, so a
|
|
90
|
+
* webhook shared by several `spf watch` instances reads clearly even
|
|
91
|
+
* collapsed to one line (Slack's notification/thread-list view only shows
|
|
92
|
+
* `title`, never `fields`). Skips the field when one's already there
|
|
93
|
+
* (`watch_started`/`watch_stopped` already carry their own `repo` field —
|
|
94
|
+
* see `cli/commands/watch.ts`) rather than emit a duplicate key with the
|
|
95
|
+
* same value.
|
|
96
|
+
*/
|
|
97
|
+
function tagEvent(event, project) {
|
|
98
|
+
const hasRepo = event.fields.some(([key]) => key === "repo");
|
|
99
|
+
return {
|
|
100
|
+
...event,
|
|
101
|
+
title: `[${project}] ${event.title}`,
|
|
102
|
+
fields: hasRepo ? event.fields : [["repo", project], ...event.fields],
|
|
103
|
+
};
|
|
104
|
+
}
|
|
82
105
|
function makeChannel(kind, url, name) {
|
|
83
106
|
switch (kind) {
|
|
84
107
|
case "slack":
|
|
@@ -121,7 +144,13 @@ export function resolveNotifier(cfg, opts = {}) {
|
|
|
121
144
|
}
|
|
122
145
|
if (resolved.length === 0)
|
|
123
146
|
return null;
|
|
124
|
-
|
|
147
|
+
// See `NotificationsConfigSchema.project`'s doc comment: an explicit
|
|
148
|
+
// `notifications.project` wins; otherwise fall back to `watch.repo`
|
|
149
|
+
// (present whenever `spf watch` is what's sending — the common case for a
|
|
150
|
+
// shared webhook), and empty (a one-off `spf run` with no watch.repo set)
|
|
151
|
+
// disables tagging, same as today.
|
|
152
|
+
const project = nc.project.trim() || cfg.watch.repo.trim();
|
|
153
|
+
const notifier = new Notifier(resolved, nc.timeout_ms, Boolean(opts.dryRun), log, project);
|
|
125
154
|
LIVE.push(notifier);
|
|
126
155
|
return notifier;
|
|
127
156
|
}
|
package/dist/core/refine.js
CHANGED
|
@@ -41,7 +41,7 @@ export function resolveAuthoringProvider(cfg) {
|
|
|
41
41
|
if (!email || !token) {
|
|
42
42
|
throw new Error('JIRA_EMAIL and JIRA_API_TOKEN must both be set — the refine lane needs an Atlassian account email plus an API token (id.atlassian.com -> Security -> API tokens)');
|
|
43
43
|
}
|
|
44
|
-
return new JiraProvider(cfg.watch.jira.base_url, cfg.watch.jira.project_key, cfg.watch.label_prefix, email, token, cfg.watch.jira.issue_types);
|
|
44
|
+
return new JiraProvider(cfg.watch.jira.base_url, cfg.watch.jira.project_key, cfg.watch.label_prefix, email, token, cfg.watch.jira.issue_types, cfg.watch.jira.status_map);
|
|
45
45
|
}
|
|
46
46
|
if (cfg.watch.issue_provider !== "github") {
|
|
47
47
|
throw new Error(`watch.issue_provider ${JSON.stringify(cfg.watch.issue_provider)} does not support issue authoring — the refine lane needs "github" or "jira"`);
|
|
@@ -61,7 +61,7 @@ export function resolveAuthoringProvider(cfg) {
|
|
|
61
61
|
if (!token) {
|
|
62
62
|
throw new Error('GITHUB_TOKEN is not set — the refine lane needs a classic PAT with "repo" scope (or "public_repo" for a public-only repo)');
|
|
63
63
|
}
|
|
64
|
-
return new GitHubProvider(repo, cfg.watch.label_prefix, token);
|
|
64
|
+
return new GitHubProvider(repo, cfg.watch.label_prefix, token, cfg.watch.github.project_number, cfg.watch.github.status_map);
|
|
65
65
|
}
|
|
66
66
|
function typeLabel(labelPrefix, kind) {
|
|
67
67
|
return `${labelPrefix}:type:${kind}`;
|
package/dist/core/utils.d.ts
CHANGED
|
@@ -24,11 +24,11 @@ export declare function newId(length?: number): string;
|
|
|
24
24
|
* retry before it's allowed to throw. Node's global `fetch` (undici) pools
|
|
25
25
|
* keep-alive connections across calls; Atlassian's Cloud APIs (Jira,
|
|
26
26
|
* Bitbucket) close idle ones from their end, which surfaces here as
|
|
27
|
-
* `ECONNRESET` the next time a long-lived poller (`spf
|
|
28
|
-
* a stale-socket race, not a real problem with the
|
|
29
|
-
* error codes that mean "the transport failed," never
|
|
30
|
-
* (a 4xx/5xx response is not a thrown error here, and
|
|
31
|
-
* on the first attempt so callers see it immediately).
|
|
27
|
+
* `ECONNRESET`/`UND_ERR_SOCKET` the next time a long-lived poller (`spf
|
|
28
|
+
* watch`) reuses one — a stale-socket race, not a real problem with the
|
|
29
|
+
* request. Only retries error codes that mean "the transport failed," never
|
|
30
|
+
* an HTTP error status (a 4xx/5xx response is not a thrown error here, and
|
|
31
|
+
* must keep surfacing on the first attempt so callers see it immediately).
|
|
32
32
|
*/
|
|
33
33
|
export declare function fetchRetryTransient(input: string, init?: RequestInit): Promise<Response>;
|
|
34
34
|
/** `process.kill(pid, 0)` sends no signal — it throws iff `pid` isn't running (or isn't ours to signal), the standard Node liveness probe. */
|
package/dist/core/utils.js
CHANGED
|
@@ -31,18 +31,25 @@ export function operatorEnv() {
|
|
|
31
31
|
export function newId(length = 8) {
|
|
32
32
|
return randomBytes(Math.floor(length / 2)).toString("hex");
|
|
33
33
|
}
|
|
34
|
-
/**
|
|
35
|
-
|
|
34
|
+
/**
|
|
35
|
+
* Transport-level blips worth one silent retry — see `fetchRetryTransient`
|
|
36
|
+
* below. `UND_ERR_SOCKET` is undici's own code for the same stale-keep-alive
|
|
37
|
+
* race as `ECONNRESET` (the far end closes a pooled socket between calls);
|
|
38
|
+
* without it here, every `spf watch` poll tick that lands on one of those
|
|
39
|
+
* sockets surfaces as a bare, undiagnosable "fetch failed (UND_ERR_SOCKET)"
|
|
40
|
+
* notification instead of being retried away like its `ECONNRESET` sibling.
|
|
41
|
+
*/
|
|
42
|
+
const TRANSIENT_FETCH_CODES = new Set(["ECONNRESET", "ETIMEDOUT", "EPIPE", "ECONNREFUSED", "EAI_AGAIN", "UND_ERR_SOCKET"]);
|
|
36
43
|
/**
|
|
37
44
|
* `fetch`, but a transport-level blip on the FIRST attempt gets one silent
|
|
38
45
|
* retry before it's allowed to throw. Node's global `fetch` (undici) pools
|
|
39
46
|
* keep-alive connections across calls; Atlassian's Cloud APIs (Jira,
|
|
40
47
|
* Bitbucket) close idle ones from their end, which surfaces here as
|
|
41
|
-
* `ECONNRESET` the next time a long-lived poller (`spf
|
|
42
|
-
* a stale-socket race, not a real problem with the
|
|
43
|
-
* error codes that mean "the transport failed," never
|
|
44
|
-
* (a 4xx/5xx response is not a thrown error here, and
|
|
45
|
-
* on the first attempt so callers see it immediately).
|
|
48
|
+
* `ECONNRESET`/`UND_ERR_SOCKET` the next time a long-lived poller (`spf
|
|
49
|
+
* watch`) reuses one — a stale-socket race, not a real problem with the
|
|
50
|
+
* request. Only retries error codes that mean "the transport failed," never
|
|
51
|
+
* an HTTP error status (a 4xx/5xx response is not a thrown error here, and
|
|
52
|
+
* must keep surfacing on the first attempt so callers see it immediately).
|
|
46
53
|
*/
|
|
47
54
|
export async function fetchRetryTransient(input, init) {
|
|
48
55
|
try {
|
package/package.json
CHANGED
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
(function(){const t=document.createElement("link").relList;if(t&&t.supports&&t.supports("modulepreload"))return;for(const i of document.querySelectorAll('link[rel="modulepreload"]'))n(i);new MutationObserver(i=>{for(const o of i)if(o.type==="childList")for(const r of o.addedNodes)r.tagName==="LINK"&&r.rel==="modulepreload"&&n(r)}).observe(document,{childList:!0,subtree:!0});function s(i){const o={};return i.integrity&&(o.integrity=i.integrity),i.referrerPolicy&&(o.referrerPolicy=i.referrerPolicy),i.crossOrigin==="use-credentials"?o.credentials="include":i.crossOrigin==="anonymous"?o.credentials="omit":o.credentials="same-origin",o}function n(i){if(i.ep)return;i.ep=!0;const o=s(i);fetch(i.href,o)}})();function mn(e){const t=Object.create(null);for(const s of e.split(","))t[s]=1;return s=>s in t}const ue={},Nt=[],ot=()=>{},ki=()=>!1,Is=e=>e.charCodeAt(0)===111&&e.charCodeAt(1)===110&&(e.charCodeAt(2)>122||e.charCodeAt(2)<97),Ps=e=>e.startsWith("onUpdate:"),Me=Object.assign,vn=(e,t)=>{const s=e.indexOf(t);s>-1&&e.splice(s,1)},Lo=Object.prototype.hasOwnProperty,te=(e,t)=>Lo.call(e,t),K=Array.isArray,Rt=e=>ls(e)==="[object Map]",xi=e=>ls(e)==="[object Set]",Gn=e=>ls(e)==="[object Date]",Q=e=>typeof e=="function",pe=e=>typeof e=="string",Qe=e=>typeof e=="symbol",ie=e=>e!==null&&typeof e=="object",Si=e=>(ie(e)||Q(e))&&Q(e.then)&&Q(e.catch),Mi=Object.prototype.toString,ls=e=>Mi.call(e),Uo=e=>ls(e).slice(8,-1),Ei=e=>ls(e)==="[object Object]",yn=e=>pe(e)&&e!=="NaN"&&e[0]!=="-"&&""+parseInt(e,10)===e,zt=mn(",key,ref,ref_for,ref_key,onVnodeBeforeMount,onVnodeMounted,onVnodeBeforeUpdate,onVnodeUpdated,onVnodeBeforeUnmount,onVnodeUnmounted"),Os=e=>{const t=Object.create(null);return(s=>t[s]||(t[s]=e(s)))},Go=/-\w/g,Re=Os(e=>e.replace(Go,t=>t.slice(1).toUpperCase())),Vo=/\B([A-Z])/g,Pt=Os(e=>e.replace(Vo,"-$1").toLowerCase()),Fs=Os(e=>e.charAt(0).toUpperCase()+e.slice(1)),Ys=Os(e=>e?`on${Fs(e)}`:""),it=(e,t)=>!Object.is(e,t),Ws=(e,...t)=>{for(let s=0;s<e.length;s++)e[s](...t)},Ci=(e,t,s,n=!1)=>{Object.defineProperty(e,t,{configurable:!0,enumerable:!1,writable:n,value:s})},Yo=e=>{const t=parseFloat(e);return isNaN(t)?e:t};let Vn;const Ns=()=>Vn||(Vn=typeof globalThis<"u"?globalThis:typeof self<"u"?self:typeof window<"u"?window:typeof global<"u"?global:{});function Ye(e){if(K(e)){const t={};for(let s=0;s<e.length;s++){const n=e[s],i=pe(n)?zo(n):Ye(n);if(i)for(const o in i)t[o]=i[o]}return t}else if(pe(e)||ie(e))return e}const Wo=/;(?![^(]*\))/g,Ko=/:([^]+)/,Qo=/\/\*[^]*?\*\//g;function zo(e){const t={};return e.replace(Qo,"").split(Wo).forEach(s=>{if(s){const n=s.split(Ko);n.length>1&&(t[n[0].trim()]=n[1].trim())}}),t}function de(e){let t="";if(pe(e))t=e;else if(K(e))for(let s=0;s<e.length;s++){const n=de(e[s]);n&&(t+=n+" ")}else if(ie(e))for(const s in e)e[s]&&(t+=s+" ");return t.trim()}const qo="itemscope,allowfullscreen,formnovalidate,ismap,nomodule,novalidate,readonly",Xo=mn(qo);function Ti(e){return!!e||e===""}function $o(e,t){if(e.length!==t.length)return!1;let s=!0;for(let n=0;s&&n<e.length;n++)s=_n(e[n],t[n]);return s}function _n(e,t){if(e===t)return!0;let s=Gn(e),n=Gn(t);if(s||n)return s&&n?e.getTime()===t.getTime():!1;if(s=Qe(e),n=Qe(t),s||n)return e===t;if(s=K(e),n=K(t),s||n)return s&&n?$o(e,t):!1;if(s=ie(e),n=ie(t),s||n){if(!s||!n)return!1;const i=Object.keys(e).length,o=Object.keys(t).length;if(i!==o)return!1;for(const r in e){const l=e.hasOwnProperty(r),c=t.hasOwnProperty(r);if(l&&!c||!l&&c||!_n(e[r],t[r]))return!1}}return String(e)===String(t)}const Ii=e=>!!(e&&e.__v_isRef===!0),I=e=>pe(e)?e:e==null?"":K(e)||ie(e)&&(e.toString===Mi||!Q(e.toString))?Ii(e)?I(e.value):JSON.stringify(e,Pi,2):String(e),Pi=(e,t)=>Ii(t)?Pi(e,t.value):Rt(t)?{[`Map(${t.size})`]:[...t.entries()].reduce((s,[n,i],o)=>(s[Ks(n,o)+" =>"]=i,s),{})}:xi(t)?{[`Set(${t.size})`]:[...t.values()].map(s=>Ks(s))}:Qe(t)?Ks(t):ie(t)&&!K(t)&&!Ei(t)?String(t):t,Ks=(e,t="")=>{var s;return Qe(e)?`Symbol(${(s=e.description)!=null?s:t})`:e};let xe;class Jo{constructor(t=!1){this.detached=t,this._active=!0,this._on=0,this.effects=[],this.cleanups=[],this._isPaused=!1,this._warnOnRun=!0,this.__v_skip=!0,!t&&xe&&(xe.active?(this.parent=xe,this.index=(xe.scopes||(xe.scopes=[])).push(this)-1):(this._active=!1,this._warnOnRun=!1))}get active(){return this._active}pause(){if(this._active){this._isPaused=!0;let t,s;if(this.scopes){const n=this.scopes.slice();for(t=0,s=n.length;t<s;t++)n[t].pause()}for(t=0,s=this.effects.length;t<s;t++)this.effects[t].pause()}}resume(){if(this._active&&this._isPaused){this._isPaused=!1;let t,s;if(this.scopes){const i=this.scopes.slice();for(t=0,s=i.length;t<s;t++)i[t].resume()}const n=this.effects.slice();for(t=0,s=n.length;t<s;t++)n[t].resume()}}run(t){if(this._active){const s=xe;try{return xe=this,t()}finally{xe=s}}}on(){++this._on===1&&(this.prevScope=xe,xe=this)}off(){if(this._on>0&&--this._on===0){if(xe===this)xe=this.prevScope;else{let t=xe;for(;t;){if(t.prevScope===this){t.prevScope=this.prevScope;break}t=t.prevScope}}this.prevScope=void 0}}stop(t){if(this._active){this._active=!1;let s,n;for(s=0,n=this.effects.length;s<n;s++)this.effects[s].stop();for(this.effects.length=0,s=0,n=this.cleanups.length;s<n;s++)this.cleanups[s]();if(this.cleanups.length=0,this.scopes){const i=this.scopes.slice();for(s=0,n=i.length;s<n;s++)i[s].stop(!0);this.scopes.length=0}if(!this.detached&&this.parent&&!t){const i=this.parent.scopes.pop();i&&i!==this&&(this.parent.scopes[this.index]=i,i.index=this.index)}this.parent=void 0}}}function Zo(){return xe}let ce;const Qs=new WeakSet;class Oi{constructor(t){this.fn=t,this.deps=void 0,this.depsTail=void 0,this.flags=5,this.next=void 0,this.cleanup=void 0,this.scheduler=void 0,xe&&(xe.active?xe.effects.push(this):this.flags&=-2)}pause(){this.flags|=64}resume(){this.flags&64&&(this.flags&=-65,Qs.has(this)&&(Qs.delete(this),this.trigger()))}notify(){this.flags&2&&!(this.flags&32)||this.flags&8||Ni(this)}run(){if(!(this.flags&1))return this.fn();this.flags|=2,Yn(this),Ri(this);const t=ce,s=Ke;ce=this,Ke=!0;try{return this.fn()}finally{Bi(this),ce=t,Ke=s,this.flags&=-3}}stop(){if(this.flags&1){for(let t=this.deps;t;t=t.nextDep)kn(t);this.deps=this.depsTail=void 0,Yn(this),this.onStop&&this.onStop(),this.flags&=-2}}trigger(){this.flags&64?Qs.add(this):this.scheduler?this.scheduler():this.runIfDirty()}runIfDirty(){sn(this)&&this.run()}get dirty(){return sn(this)}}let Fi=0,qt,Xt;function Ni(e,t=!1){if(e.flags|=8,t){e.next=Xt,Xt=e;return}e.next=qt,qt=e}function bn(){Fi++}function wn(){if(--Fi>0)return;if(Xt){let t=Xt;for(Xt=void 0;t;){const s=t.next;t.next=void 0,t.flags&=-9,t=s}}let e;for(;qt;){let t=qt;for(qt=void 0;t;){const s=t.next;if(t.next=void 0,t.flags&=-9,t.flags&1)try{t.trigger()}catch(n){e||(e=n)}t=s}}if(e)throw e}function Ri(e){for(let t=e.deps;t;t=t.nextDep)t.version=-1,t.prevActiveLink=t.dep.activeLink,t.dep.activeLink=t}function Bi(e){let t,s=e.depsTail,n=s;for(;n;){const i=n.prevDep;n.version===-1?(n===s&&(s=i),kn(n),er(n)):t=n,n.dep.activeLink=n.prevActiveLink,n.prevActiveLink=void 0,n=i}e.deps=t,e.depsTail=s}function sn(e){for(let t=e.deps;t;t=t.nextDep)if(t.dep.version!==t.version||t.dep.computed&&(Di(t.dep.computed)||t.dep.version!==t.version))return!0;return!!e._dirty}function Di(e){if(e.flags&4&&!(e.flags&16)||(e.flags&=-17,e.globalVersion===es)||(e.globalVersion=es,!e.isSSR&&e.flags&128&&(!e.deps&&!e._dirty||!sn(e))))return;e.flags|=2;const t=e.dep,s=ce,n=Ke;ce=e,Ke=!0;try{Ri(e);const i=e.fn(e._value);(t.version===0||it(i,e._value))&&(e.flags|=128,e._value=i,t.version++)}catch(i){throw t.version++,i}finally{ce=s,Ke=n,Bi(e),e.flags&=-3}}function kn(e,t=!1){const{dep:s,prevSub:n,nextSub:i}=e;if(n&&(n.nextSub=i,e.prevSub=void 0),i&&(i.prevSub=n,e.nextSub=void 0),s.subs===e&&(s.subs=n,!n&&s.computed)){s.computed.flags&=-5;for(let o=s.computed.deps;o;o=o.nextDep)kn(o,!0)}!t&&!--s.sc&&s.map&&s.map.delete(s.key)}function er(e){const{prevDep:t,nextDep:s}=e;t&&(t.nextDep=s,e.prevDep=void 0),s&&(s.prevDep=t,e.nextDep=void 0)}let Ke=!0;const Hi=[];function At(){Hi.push(Ke),Ke=!1}function gt(){const e=Hi.pop();Ke=e===void 0?!0:e}function Yn(e){const{cleanup:t}=e;if(e.cleanup=void 0,t){const s=ce;ce=void 0;try{t()}finally{ce=s}}}let es=0;class tr{constructor(t,s){this.sub=t,this.dep=s,this.version=s.version,this.nextDep=this.prevDep=this.nextSub=this.prevSub=this.prevActiveLink=void 0}}class xn{constructor(t){this.computed=t,this.version=0,this.activeLink=void 0,this.subs=void 0,this.map=void 0,this.key=void 0,this.sc=0,this.__v_skip=!0}track(t){if(!ce||!Ke||ce===this.computed)return;let s=this.activeLink;if(s===void 0||s.sub!==ce)s=this.activeLink=new tr(ce,this),ce.deps?(s.prevDep=ce.depsTail,ce.depsTail.nextDep=s,ce.depsTail=s):ce.deps=ce.depsTail=s,ji(s);else if(s.version===-1&&(s.version=this.version,s.nextDep)){const n=s.nextDep;n.prevDep=s.prevDep,s.prevDep&&(s.prevDep.nextDep=n),s.prevDep=ce.depsTail,s.nextDep=void 0,ce.depsTail.nextDep=s,ce.depsTail=s,ce.deps===s&&(ce.deps=n)}return s}trigger(t){this.version++,es++,this.notify(t)}notify(t){bn();try{for(let s=this.subs;s;s=s.prevSub)s.sub.notify()&&s.sub.dep.notify()}finally{wn()}}}function ji(e){if(e.dep.sc++,e.sub.flags&4){const t=e.dep.computed;if(t&&!e.dep.subs){t.flags|=20;for(let n=t.deps;n;n=n.nextDep)ji(n)}const s=e.dep.subs;s!==e&&(e.prevSub=s,s&&(s.nextSub=e)),e.dep.subs=e}}const nn=new WeakMap,Tt=Symbol(""),on=Symbol(""),ts=Symbol("");function Ce(e,t,s){if(Ke&&ce){let n=nn.get(e);n||nn.set(e,n=new Map);let i=n.get(s);i||(n.set(s,i=new xn),i.map=n,i.key=s),i.track()}}function dt(e,t,s,n,i,o){const r=nn.get(e);if(!r){es++;return}const l=c=>{c&&c.trigger()};if(bn(),t==="clear")r.forEach(l);else{const c=K(e),d=c&&yn(s);if(c&&s==="length"){const u=Number(n);r.forEach((A,S)=>{(S==="length"||S===ts||!Qe(S)&&S>=u)&&l(A)})}else switch((s!==void 0||r.has(void 0))&&l(r.get(s)),d&&l(r.get(ts)),t){case"add":c?d&&l(r.get("length")):(l(r.get(Tt)),Rt(e)&&l(r.get(on)));break;case"delete":c||(l(r.get(Tt)),Rt(e)&&l(r.get(on)));break;case"set":Rt(e)&&l(r.get(Tt));break}}wn()}function Ot(e){const t=ee(e);return t===e?t:(Ce(t,"iterate",ts),Ve(e)?t:t.map(ze))}function Rs(e){return Ce(e=ee(e),"iterate",ts),e}function tt(e,t){return mt(e)?Lt(It(e)?ze(t):t):ze(t)}const sr={__proto__:null,[Symbol.iterator](){return zs(this,Symbol.iterator,e=>tt(this,e))},concat(...e){return Ot(this).concat(...e.map(t=>K(t)?Ot(t):t))},entries(){return zs(this,"entries",e=>(e[1]=tt(this,e[1]),e))},every(e,t){return ct(this,"every",e,t,void 0,arguments)},filter(e,t){return ct(this,"filter",e,t,s=>s.map(n=>tt(this,n)),arguments)},find(e,t){return ct(this,"find",e,t,s=>tt(this,s),arguments)},findIndex(e,t){return ct(this,"findIndex",e,t,void 0,arguments)},findLast(e,t){return ct(this,"findLast",e,t,s=>tt(this,s),arguments)},findLastIndex(e,t){return ct(this,"findLastIndex",e,t,void 0,arguments)},forEach(e,t){return ct(this,"forEach",e,t,void 0,arguments)},includes(...e){return qs(this,"includes",e)},indexOf(...e){return qs(this,"indexOf",e)},join(e){return Ot(this).join(e)},lastIndexOf(...e){return qs(this,"lastIndexOf",e)},map(e,t){return ct(this,"map",e,t,void 0,arguments)},pop(){return Vt(this,"pop")},push(...e){return Vt(this,"push",e)},reduce(e,...t){return Wn(this,"reduce",e,t)},reduceRight(e,...t){return Wn(this,"reduceRight",e,t)},shift(){return Vt(this,"shift")},some(e,t){return ct(this,"some",e,t,void 0,arguments)},splice(...e){return Vt(this,"splice",e)},toReversed(){return Ot(this).toReversed()},toSorted(e){return Ot(this).toSorted(e)},toSpliced(...e){return Ot(this).toSpliced(...e)},unshift(...e){return Vt(this,"unshift",e)},values(){return zs(this,"values",e=>tt(this,e))}};function zs(e,t,s){const n=Rs(e),i=n[t]();return n!==e&&!Ve(e)&&(i._next=i.next,i.next=()=>{const o=i._next();return o.done||(o.value=s(o.value)),o}),i}const nr=Array.prototype;function ct(e,t,s,n,i,o){const r=Rs(e),l=r!==e&&!Ve(e),c=r[t];if(c!==nr[t]){const A=c.apply(e,o);return l?ze(A):A}let d=s;r!==e&&(l?d=function(A,S){return s.call(this,tt(e,A),S,e)}:s.length>2&&(d=function(A,S){return s.call(this,A,S,e)}));const u=c.call(r,d,n);return l&&i?i(u):u}function Wn(e,t,s,n){const i=Rs(e),o=i!==e&&!Ve(e);let r=s,l=!1;i!==e&&(o?(l=n.length===0,r=function(d,u,A){return l&&(l=!1,d=tt(e,d)),s.call(this,d,tt(e,u),A,e)}):s.length>3&&(r=function(d,u,A){return s.call(this,d,u,A,e)}));const c=i[t](r,...n);return l?tt(e,c):c}function qs(e,t,s){const n=ee(e);Ce(n,"iterate",ts);const i=n[t](...s);return(i===-1||i===!1)&&En(s[0])?(s[0]=ee(s[0]),n[t](...s)):i}function Vt(e,t,s=[]){At(),bn();const n=ee(e)[t].apply(e,s);return wn(),gt(),n}const ir=mn("__proto__,__v_isRef,__isVue"),Li=new Set(Object.getOwnPropertyNames(Symbol).filter(e=>e!=="arguments"&&e!=="caller").map(e=>Symbol[e]).filter(Qe));function or(e){Qe(e)||(e=String(e));const t=ee(this);return Ce(t,"has",e),t.hasOwnProperty(e)}class Ui{constructor(t=!1,s=!1){this._isReadonly=t,this._isShallow=s}get(t,s,n){if(s==="__v_skip")return t.__v_skip;const i=this._isReadonly,o=this._isShallow;if(s==="__v_isReactive")return!i;if(s==="__v_isReadonly")return i;if(s==="__v_isShallow")return o;if(s==="__v_raw")return n===(i?o?Ar:Wi:o?Yi:Vi).get(t)||Object.getPrototypeOf(t)===Object.getPrototypeOf(n)?t:void 0;const r=K(t);if(!i){let c;if(r&&(c=sr[s]))return c;if(s==="hasOwnProperty")return or}const l=Reflect.get(t,s,Ie(t)?t:n);if((Qe(s)?Li.has(s):ir(s))||(i||Ce(t,"get",s),o))return l;if(Ie(l)){const c=r&&yn(s)?l:l.value;return i&&ie(c)?ln(c):c}return ie(l)?i?ln(l):kt(l):l}}class Gi extends Ui{constructor(t=!1){super(!1,t)}set(t,s,n,i){let o=t[s];const r=K(t)&&yn(s);if(!this._isShallow){const d=mt(o);if(!Ve(n)&&!mt(n)&&(o=ee(o),n=ee(n)),!r&&Ie(o)&&!Ie(n))return d||(o.value=n),!0}const l=r?Number(s)<t.length:te(t,s),c=Reflect.set(t,s,n,Ie(t)?t:i);return t===ee(i)&&c&&(l?it(n,o)&&dt(t,"set",s,n):dt(t,"add",s,n)),c}deleteProperty(t,s){const n=te(t,s);t[s];const i=Reflect.deleteProperty(t,s);return i&&n&&dt(t,"delete",s,void 0),i}has(t,s){const n=Reflect.has(t,s);return(!Qe(s)||!Li.has(s))&&Ce(t,"has",s),n}ownKeys(t){return Ce(t,"iterate",K(t)?"length":Tt),Reflect.ownKeys(t)}}class rr extends Ui{constructor(t=!1){super(!0,t)}set(t,s){return!0}deleteProperty(t,s){return!0}}const lr=new Gi,ar=new rr,cr=new Gi(!0);const rn=e=>e,hs=e=>Reflect.getPrototypeOf(e);function ur(e,t,s){return function(...n){const i=this.__v_raw,o=ee(i),r=Rt(o),l=e==="entries"||e===Symbol.iterator&&r,c=e==="keys"&&r,d=i[e](...n),u=s?rn:t?Lt:ze;return!t&&Ce(o,"iterate",c?on:Tt),Me(Object.create(d),{next(){const{value:A,done:S}=d.next();return S?{value:A,done:S}:{value:l?[u(A[0]),u(A[1])]:u(A),done:S}}})}}function ps(e){return function(...t){return e==="delete"?!1:e==="clear"?void 0:this}}function fr(e,t){const s={get(i){const o=this.__v_raw,r=ee(o),l=ee(i);e||(it(i,l)&&Ce(r,"get",i),Ce(r,"get",l));const{has:c}=hs(r),d=t?rn:e?Lt:ze;if(c.call(r,i))return d(o.get(i));if(c.call(r,l))return d(o.get(l));o!==r&&o.get(i)},get size(){const i=this.__v_raw;return!e&&Ce(ee(i),"iterate",Tt),i.size},has(i){const o=this.__v_raw,r=ee(o),l=ee(i);return e||(it(i,l)&&Ce(r,"has",i),Ce(r,"has",l)),i===l?o.has(i):o.has(i)||o.has(l)},forEach(i,o){const r=this,l=r.__v_raw,c=ee(l),d=t?rn:e?Lt:ze;return!e&&Ce(c,"iterate",Tt),l.forEach((u,A)=>i.call(o,d(u),d(A),r))}};return Me(s,e?{add:ps("add"),set:ps("set"),delete:ps("delete"),clear:ps("clear")}:{add(i){const o=ee(this),r=hs(o),l=ee(i),c=!t&&!Ve(i)&&!mt(i)?l:i;return r.has.call(o,c)||it(i,c)&&r.has.call(o,i)||it(l,c)&&r.has.call(o,l)||(o.add(c),dt(o,"add",c,c)),this},set(i,o){!t&&!Ve(o)&&!mt(o)&&(o=ee(o));const r=ee(this),{has:l,get:c}=hs(r);let d=l.call(r,i);d||(i=ee(i),d=l.call(r,i));const u=c.call(r,i);return r.set(i,o),d?it(o,u)&&dt(r,"set",i,o):dt(r,"add",i,o),this},delete(i){const o=ee(this),{has:r,get:l}=hs(o);let c=r.call(o,i);c||(i=ee(i),c=r.call(o,i)),l&&l.call(o,i);const d=o.delete(i);return c&&dt(o,"delete",i,void 0),d},clear(){const i=ee(this),o=i.size!==0,r=i.clear();return o&&dt(i,"clear",void 0,void 0),r}}),["keys","values","entries",Symbol.iterator].forEach(i=>{s[i]=ur(i,e,t)}),s}function Sn(e,t){const s=fr(e,t);return(n,i,o)=>i==="__v_isReactive"?!e:i==="__v_isReadonly"?e:i==="__v_raw"?n:Reflect.get(te(s,i)&&i in n?s:n,i,o)}const dr={get:Sn(!1,!1)},hr={get:Sn(!1,!0)},pr={get:Sn(!0,!1)};const Vi=new WeakMap,Yi=new WeakMap,Wi=new WeakMap,Ar=new WeakMap;function gr(e){switch(e){case"Object":case"Array":return 1;case"Map":case"Set":case"WeakMap":case"WeakSet":return 2;default:return 0}}function kt(e){return mt(e)?e:Mn(e,!1,lr,dr,Vi)}function mr(e){return Mn(e,!1,cr,hr,Yi)}function ln(e){return Mn(e,!0,ar,pr,Wi)}function Mn(e,t,s,n,i){if(!ie(e)||e.__v_raw&&!(t&&e.__v_isReactive)||e.__v_skip||!Object.isExtensible(e))return e;const o=i.get(e);if(o)return o;const r=gr(Uo(e));if(r===0)return e;const l=new Proxy(e,r===2?n:s);return i.set(e,l),l}function It(e){return mt(e)?It(e.__v_raw):!!(e&&e.__v_isReactive)}function mt(e){return!!(e&&e.__v_isReadonly)}function Ve(e){return!!(e&&e.__v_isShallow)}function En(e){return e?!!e.__v_raw:!1}function ee(e){const t=e&&e.__v_raw;return t?ee(t):e}function vr(e){return!te(e,"__v_skip")&&Object.isExtensible(e)&&Ci(e,"__v_skip",!0),e}const ze=e=>ie(e)?kt(e):e,Lt=e=>ie(e)?ln(e):e;function Ie(e){return e?e.__v_isRef===!0:!1}function Se(e){return Ki(e,!1)}function yr(e){return Ki(e,!0)}function Ki(e,t){return Ie(e)?e:new _r(e,t)}class _r{constructor(t,s){this.dep=new xn,this.__v_isRef=!0,this.__v_isShallow=!1,this._rawValue=s?t:ee(t),this._value=s?t:ze(t),this.__v_isShallow=s}get value(){return this.dep.track(),this._value}set value(t){const s=this._rawValue,n=this.__v_isShallow||Ve(t)||mt(t);t=n?t:ee(t),it(t,s)&&(this._rawValue=t,this._value=n?t:ze(t),this.dep.trigger())}}function G(e){return Ie(e)?e.value:e}const br={get:(e,t,s)=>t==="__v_raw"?e:G(Reflect.get(e,t,s)),set:(e,t,s,n)=>{const i=e[t];return Ie(i)&&!Ie(s)?(i.value=s,!0):Reflect.set(e,t,s,n)}};function Qi(e){return It(e)?e:new Proxy(e,br)}class wr{constructor(t,s,n){this.fn=t,this.setter=s,this._value=void 0,this.dep=new xn(this),this.__v_isRef=!0,this.deps=void 0,this.depsTail=void 0,this.flags=16,this.globalVersion=es-1,this.next=void 0,this.effect=this,this.__v_isReadonly=!s,this.isSSR=n}notify(){if(this.flags|=16,!(this.flags&8)&&ce!==this)return Ni(this,!0),!0}get value(){const t=this.dep.track();return Di(this),t&&(t.version=this.dep.version),this._value}set value(t){this.setter&&this.setter(t)}}function kr(e,t,s=!1){let n,i;return Q(e)?n=e:(n=e.get,i=e.set),new wr(n,i,s)}const As={},_s=new WeakMap;let Ct;function xr(e,t=!1,s=Ct){if(s){let n=_s.get(s);n||_s.set(s,n=[]),n.push(e)}}function Sr(e,t,s=ue){const{immediate:n,deep:i,once:o,scheduler:r,augmentJob:l,call:c}=s,d=j=>i?j:Ve(j)||i===!1||i===0?xt(j,1):xt(j);let u,A,S,N,H=!1,U=!1;if(Ie(e)?(A=()=>e.value,H=Ve(e)):It(e)?(A=()=>d(e),H=!0):K(e)?(U=!0,H=e.some(j=>It(j)||Ve(j)),A=()=>e.map(j=>{if(Ie(j))return j.value;if(It(j))return d(j);if(Q(j))return c?c(j,2):j()})):Q(e)?t?A=c?()=>c(e,2):e:A=()=>{if(S){At();try{S()}finally{gt()}}const j=Ct;Ct=u;try{return c?c(e,3,[N]):e(N)}finally{Ct=j}}:A=ot,t&&i){const j=A,he=i===!0?1/0:i;A=()=>xt(j(),he)}const ne=Zo(),J=()=>{u.stop(),ne&&ne.active&&vn(ne.effects,u)};if(o&&t){const j=t;t=(...he)=>{const fe=j(...he);return J(),fe}}let X=U?new Array(e.length).fill(As):As;const q=j=>{if(!(!(u.flags&1)||!u.dirty&&!j))if(t){const he=u.run();if(j||i||H||(U?he.some((fe,ge)=>it(fe,X[ge])):it(he,X))){S&&S();const fe=Ct;Ct=u;try{const ge=[he,X===As?void 0:U&&X[0]===As?[]:X,N];X=he,c?c(t,3,ge):t(...ge)}finally{Ct=fe}}}else u.run()};return l&&l(q),u=new Oi(A),u.scheduler=r?()=>r(q,!1):q,N=j=>xr(j,!1,u),S=u.onStop=()=>{const j=_s.get(u);if(j){if(c)c(j,4);else for(const he of j)he();_s.delete(u)}},t?n?q(!0):X=u.run():r?r(q.bind(null,!0),!0):u.run(),J.pause=u.pause.bind(u),J.resume=u.resume.bind(u),J.stop=J,J}function xt(e,t=1/0,s){if(t<=0||!ie(e)||e.__v_skip||(s=s||new Map,(s.get(e)||0)>=t))return e;if(s.set(e,t),t--,Ie(e))xt(e.value,t,s);else if(K(e))for(let n=0;n<e.length;n++)xt(e[n],t,s);else if(xi(e)||Rt(e))e.forEach(n=>{xt(n,t,s)});else if(Ei(e)){for(const n in e)xt(e[n],t,s);for(const n of Object.getOwnPropertySymbols(e))Object.prototype.propertyIsEnumerable.call(e,n)&&xt(e[n],t,s)}return e}function as(e,t,s,n){try{return n?e(...n):e()}catch(i){Bs(i,t,s)}}function qe(e,t,s,n){if(Q(e)){const i=as(e,t,s,n);return i&&Si(i)&&i.catch(o=>{Bs(o,t,s)}),i}if(K(e)){const i=[];for(let o=0;o<e.length;o++)i.push(qe(e[o],t,s,n));return i}}function Bs(e,t,s,n=!0){const i=t?t.vnode:null,{errorHandler:o,throwUnhandledErrorInProduction:r}=t&&t.appContext.config||ue;if(t){let l=t.parent;const c=t.proxy,d=`https://vuejs.org/error-reference/#runtime-${s}`;for(;l;){const u=l.ec;if(u){for(let A=0;A<u.length;A++)if(u[A](e,c,d)===!1)return}l=l.parent}if(o){At(),as(o,null,10,[e,c,d]),gt();return}}Mr(e,s,i,n,r)}function Mr(e,t,s,n=!0,i=!1){if(i)throw e;console.error(e)}const Fe=[];let et=-1;const Bt=[];let wt=null,Ft=0;const zi=Promise.resolve();let bs=null;function Er(e){const t=bs||zi;return e?t.then(this?e.bind(this):e):t}function Cr(e){let t=et+1,s=Fe.length;for(;t<s;){const n=t+s>>>1,i=Fe[n],o=ss(i);o<e||o===e&&i.flags&2?t=n+1:s=n}return t}function Cn(e){if(!(e.flags&1)){const t=ss(e),s=Fe[Fe.length-1];!s||!(e.flags&2)&&t>=ss(s)?Fe.push(e):Fe.splice(Cr(t),0,e),e.flags|=1,qi()}}function qi(){bs||(bs=zi.then($i))}function Tr(e){if(!K(e))wt&&e.id===-1?wt.splice(Ft+1,0,e):e.flags&1||(Bt.push(e),e.flags|=1);else for(let t=0;t<e.length;t++)Bt.push(e[t]);qi()}function Kn(e,t,s=et+1){for(;s<Fe.length;s++){const n=Fe[s];if(n&&n.flags&2){if(e&&n.id!==e.uid)continue;Fe.splice(s,1),s--,n.flags&4&&(n.flags&=-2),n(),n.flags&4||(n.flags&=-2)}}}function Xi(e){if(Bt.length){const t=[...new Set(Bt)].sort((s,n)=>ss(s)-ss(n));if(Bt.length=0,wt){for(let s=0;s<t.length;s++)wt.push(t[s]);return}for(wt=t,Ft=0;Ft<wt.length;Ft++){const s=wt[Ft];s.flags&4&&(s.flags&=-2),s.flags&8||s(),s.flags&=-2}wt=null,Ft=0}}const ss=e=>e.id==null?e.flags&2?-1:1/0:e.id;function $i(e){try{for(et=0;et<Fe.length;et++){const t=Fe[et];t&&!(t.flags&8)&&(t.flags&4&&(t.flags&=-2),as(t,t.i,t.i?15:14),t.flags&4||(t.flags&=-2))}}finally{for(;et<Fe.length;et++){const t=Fe[et];t&&(t.flags&=-2)}et=-1,Fe.length=0,Xi(),bs=null,(Fe.length||Bt.length)&&$i()}}let Ne=null,Ji=null;function ws(e){const t=Ne;return Ne=e,Ji=e&&e.type.__scopeId||null,t}function bt(e,t=Ne,s){if(!t||e._n)return e;const n=(...i)=>{n._d&&Ss(-1);const o=ws(t),r=pt.length;let l;try{l=e(...i)}finally{for(let c=pt.length;c>r;c--)Rn();ws(o),n._d&&Ss(1)}return l};return n._n=!0,n._c=!0,n._d=!0,n}function St(e,t,s,n){const i=e.dirs,o=t&&t.dirs;for(let r=0;r<i.length;r++){const l=i[r];o&&(l.oldValue=o[r].value);let c=l.dir[n];c&&(At(),qe(c,s,8,[e.el,l,e,t]),gt())}}function Ir(e,t){if(Te){let s=Te.provides;const n=Te.parent&&Te.parent.provides;n===s&&(s=Te.provides=Object.create(n)),s[e]=t}}function ms(e,t,s=!1){const n=Cl();if(n||Ht){let i=Ht?Ht._context.provides:n?n.parent==null||n.ce?n.vnode.appContext&&n.vnode.appContext.provides:n.parent.provides:void 0;if(i&&e in i)return i[e];if(arguments.length>1)return s&&Q(t)?t.call(n&&n.proxy):t}}const Pr=Symbol.for("v-scx"),Or=()=>ms(Pr);function Zi(e,t){return Tn(e,null,t)}function $t(e,t,s){return Tn(e,t,s)}function Tn(e,t,s=ue){const{immediate:n,deep:i,flush:o,once:r}=s,l=Me({},s),c=t&&n||!t&&o!=="post";let d;if(rs){if(o==="sync"){const N=Or();d=N.__watcherHandles||(N.__watcherHandles=[])}else if(!c){const N=()=>{};return N.stop=ot,N.resume=ot,N.pause=ot,N}}const u=Te;l.call=(N,H,U)=>qe(N,u,H,U);let A=!1;o==="post"?l.scheduler=N=>{De(N,u&&u.suspense)}:o!=="sync"&&(A=!0,l.scheduler=(N,H)=>{H?N():Cn(N)}),l.augmentJob=N=>{t&&(N.flags|=4),A&&(N.flags|=2,u&&(N.id=u.uid,N.i=u))};const S=Sr(e,t,l);return rs&&(d?d.push(S):c&&S()),S}function Fr(e,t,s){const n=this.proxy,i=pe(e)?e.includes(".")?eo(n,e):()=>n[e]:e.bind(n,n);let o;Q(t)?o=t:(o=t.handler,s=t);const r=cs(this),l=Tn(i,o.bind(n),s);return r(),l}function eo(e,t){const s=t.split(".");return()=>{let n=e;for(let i=0;i<s.length&&n;i++)n=n[s[i]];return n}}const Nr=Symbol("_vte"),Ds=e=>e.__isTeleport,Xs=Symbol("_leaveCb");function Rr(e){let t=e[0];if(e.length>1){for(const s of e)if(s.type!==rt){t=s;break}}return t}function to(e){if(!Pn(e))return Ds(e.type)&&e.children?Rr(e.children):e;if(e.component)return e.component.subTree;const{shapeFlag:t,children:s}=e;if(s){if(t&16)return s[0];if(t&32&&Q(s.default))return s.default()}}function In(e,t){if(e.shapeFlag&6&&e.component){e.transition=t;const s=e.component.subTree;In(Ds(s.type)&&to(s)||s,t)}else e.shapeFlag&128?(e.ssContent.transition=t.clone(e.ssContent),e.ssFallback.transition=t.clone(e.ssFallback)):e.transition=t}function vt(e,t){return Q(e)?Me({name:e.name},t,{setup:e}):e}function so(e){e.ids=[e.ids[0]+e.ids[2]+++"-",0,0]}function Qn(e,t){let s;return!!((s=Object.getOwnPropertyDescriptor(e,t))&&!s.configurable)}const ks=new WeakMap;function Jt(e,t,s,n,i=!1){if(K(e)){e.forEach((U,ne)=>Jt(U,t&&(K(t)?t[ne]:t),s,n,i));return}if(Dt(n)&&!i){n.shapeFlag&512&&n.type.__asyncResolved&&n.component.subTree.component&&Jt(e,t,s,n.component.subTree);return}const o=n.shapeFlag&4?Bn(n.component):n.el,r=i?null:o,{i:l,r:c}=e,d=t&&t.r,u=l.refs===ue?l.refs={}:l.refs,A=l.setupState,S=ee(A),N=A===ue?ki:U=>Qn(u,U)?!1:te(S,U),H=(U,ne)=>!(ne&&Qn(u,ne));if(d!=null&&d!==c){if(zn(t),pe(d))u[d]=null,N(d)&&(A[d]=null);else if(Ie(d)){const U=t;H(d,U.k)&&(d.value=null),U.k&&(u[U.k]=null)}}if(Q(c))as(c,l,12,[r,u]);else{const U=pe(c),ne=Ie(c);if(U||ne){const J=()=>{if(e.f){const X=U?N(c)?A[c]:u[c]:H()||!e.k?c.value:u[e.k];if(i)K(X)&&vn(X,o);else if(K(X))X.includes(o)||X.push(o);else if(U)u[c]=[o],N(c)&&(A[c]=u[c]);else{const q=[o];H(c,e.k)&&(c.value=q),e.k&&(u[e.k]=q)}}else U?(u[c]=r,N(c)&&(A[c]=r)):ne&&(H(c,e.k)&&(c.value=r),e.k&&(u[e.k]=r))};if(r){const X=()=>{J(),ks.delete(e)};X.id=-1,ks.set(e,X),De(X,s)}else zn(e),J()}}}function zn(e){const t=ks.get(e);t&&(t.flags|=8,ks.delete(e))}Ns().requestIdleCallback;Ns().cancelIdleCallback;const Dt=e=>!!e.type.__asyncLoader,Pn=e=>e.type.__isKeepAlive;function Br(e,t){no(e,"a",t)}function Dr(e,t){no(e,"da",t)}function no(e,t,s=Te){const n=e.__wdc||(e.__wdc=()=>{let i=s;for(;i;){if(i.isDeactivated)return;i=i.parent}return e()});if(Hs(t,n,s),s){let i=s.parent;for(;i&&i.parent;)Pn(i.parent.vnode)&&Hr(n,t,s,i),i=i.parent}}function Hr(e,t,s,n){const i=Hs(t,e,n,!0);js(()=>{vn(n[t],i)},s)}function Hs(e,t,s=Te,n=!1){if(s){const i=s[e]||(s[e]=[]),o=t.__weh||(t.__weh=(...r)=>{At();const l=cs(s),c=qe(t,s,e,r);return l(),gt(),c});return n?i.unshift(o):i.push(o),o}}const yt=e=>(t,s=Te)=>{(!rs||e==="sp")&&Hs(e,(...n)=>t(...n),s)},jr=yt("bm"),On=yt("m"),Lr=yt("bu"),Ur=yt("u"),Gr=yt("bum"),js=yt("um"),Vr=yt("sp"),Yr=yt("rtg"),Wr=yt("rtc");function Kr(e,t=Te){Hs("ec",e,t)}const Qr="components",io=Symbol.for("v-ndc");function Ls(e){return pe(e)?zr(Qr,e,!1)||e:e||io}function zr(e,t,s=!0,n=!1){const i=Ne||Te;if(i){const o=i.type;{const l=Fl(o,!1);if(l&&(l===t||l===Re(t)||l===Fs(Re(t))))return o}const r=qn(i[e]||o[e],t)||qn(i.appContext[e],t);return!r&&n?o:r}}function qn(e,t){return e&&(e[t]||e[Re(t)]||e[Fs(Re(t))])}function we(e,t,s,n){let i;const o=s,r=K(e);if(r||pe(e)){const l=r&&It(e);let c=!1,d=!1;l&&(c=!Ve(e),d=mt(e),e=Rs(e)),i=new Array(e.length);for(let u=0,A=e.length;u<A;u++)i[u]=t(c?d?Lt(ze(e[u])):ze(e[u]):e[u],u,void 0,o)}else if(typeof e=="number"){i=new Array(e);for(let l=0;l<e;l++)i[l]=t(l+1,l,void 0,o)}else if(ie(e))if(e[Symbol.iterator])i=Array.from(e,(l,c)=>t(l,c,void 0,o));else{const l=Object.keys(e);i=new Array(l.length);for(let c=0,d=l.length;c<d;c++){const u=l[c];i[c]=t(e[u],u,c,o)}}else i=[];return i}function qr(e,t,s,n,i,o){if(s==null&&(s={}),Ne.ce||Ne.parent&&Dt(Ne.parent)&&Ne.parent.ce){const d=s,u=Object.keys(d).length>0;return m(),me(z,null,[se("slot",d,n)],u?-2:64)}let r=e[t];r&&r._c&&(r._d=!1);const l=pt.length;m();let c;try{const d=r&&oo(r(s)),u=s.key||o||d&&d.key;c=me(z,{key:(u&&!Qe(u)?u:`_${t}`)+(!d&&n?"_fb":"")},d||(n?n():[]),d&&e._===1?64:-2)}catch(d){for(let u=pt.length;u>l;u--)Rn();throw d}finally{r&&r._c&&(r._d=!0)}return c}function oo(e){return e.some(t=>is(t)?!(t.type===rt||t.type===z&&!oo(t.children)):!0)?e:null}const an=e=>e?Eo(e)?Bn(e):an(e.parent):null,Zt=Me(Object.create(null),{$:e=>e,$el:e=>e.vnode.el,$data:e=>e.data,$props:e=>e.props,$attrs:e=>e.attrs,$slots:e=>e.slots,$refs:e=>e.refs,$parent:e=>an(e.parent),$root:e=>an(e.root),$host:e=>e.ce,$emit:e=>e.emit,$options:e=>lo(e),$forceUpdate:e=>e.f||(e.f=()=>{Cn(e.update)}),$nextTick:e=>e.n||(e.n=Er.bind(e.proxy)),$watch:e=>Fr.bind(e)}),$s=(e,t)=>e!==ue&&!e.__isScriptSetup&&te(e,t),Xr={get({_:e},t){if(t==="__v_skip")return!0;const{ctx:s,setupState:n,data:i,props:o,accessCache:r,type:l,appContext:c}=e;if(t[0]!=="$"){const S=r[t];if(S!==void 0)switch(S){case 1:return n[t];case 2:return i[t];case 4:return s[t];case 3:return o[t]}else{if($s(n,t))return r[t]=1,n[t];if(i!==ue&&te(i,t))return r[t]=2,i[t];if(te(o,t))return r[t]=3,o[t];if(s!==ue&&te(s,t))return r[t]=4,s[t];cn&&(r[t]=0)}}const d=Zt[t];let u,A;if(d)return t==="$attrs"&&Ce(e.attrs,"get",""),d(e);if((u=l.__cssModules)&&(u=u[t]))return u;if(s!==ue&&te(s,t))return r[t]=4,s[t];if(A=c.config.globalProperties,te(A,t))return A[t]},set({_:e},t,s){const{data:n,setupState:i,ctx:o}=e;return $s(i,t)?(i[t]=s,!0):n!==ue&&te(n,t)?(n[t]=s,!0):te(e.props,t)||t[0]==="$"&&t.slice(1)in e?!1:(o[t]=s,!0)},has({_:{data:e,setupState:t,accessCache:s,ctx:n,appContext:i,props:o,type:r}},l){let c;return!!(s[l]||e!==ue&&l[0]!=="$"&&te(e,l)||$s(t,l)||te(o,l)||te(n,l)||te(Zt,l)||te(i.config.globalProperties,l)||(c=r.__cssModules)&&c[l])},defineProperty(e,t,s){return s.get!=null?e._.accessCache[t]=0:te(s,"value")&&this.set(e,t,s.value,null),Reflect.defineProperty(e,t,s)}};function Xn(e){return K(e)?e.reduce((t,s)=>(t[s]=null,t),{}):e}let cn=!0;function $r(e){const t=lo(e),s=e.proxy,n=e.ctx;cn=!1,t.beforeCreate&&$n(t.beforeCreate,e,"bc");const{data:i,computed:o,methods:r,watch:l,provide:c,inject:d,created:u,beforeMount:A,mounted:S,beforeUpdate:N,updated:H,activated:U,deactivated:ne,beforeDestroy:J,beforeUnmount:X,destroyed:q,unmounted:j,render:he,renderTracked:fe,renderTriggered:ge,errorCaptured:Ue,serverPrefetch:Ge,expose:ve,inheritAttrs:He,components:ye,directives:Be,filters:lt}=t;if(d&&Jr(d,n,null),r)for(const b in r){const v=r[b];Q(v)&&(n[b]=v.bind(s))}if(i){const b=i.call(s,s);ie(b)&&(e.data=kt(b))}if(cn=!0,o)for(const b in o){const v=o[b],p=Q(v)?v.bind(s,s):Q(v.get)?v.get.bind(s,s):ot,Y=!Q(v)&&Q(v.set)?v.set.bind(s):ot,re=$({get:p,set:Y});Object.defineProperty(n,b,{enumerable:!0,configurable:!0,get:()=>re.value,set:Pe=>re.value=Pe})}if(l)for(const b in l)ro(l[b],n,s,b);if(c){const b=Q(c)?c.call(s):c;Reflect.ownKeys(b).forEach(v=>{Ir(v,b[v])})}u&&$n(u,e,"c");function be(b,v){K(v)?v.forEach(p=>b(p.bind(s))):v&&b(v.bind(s))}if(be(jr,A),be(On,S),be(Lr,N),be(Ur,H),be(Br,U),be(Dr,ne),be(Kr,Ue),be(Wr,fe),be(Yr,ge),be(Gr,X),be(js,j),be(Vr,Ge),K(ve))if(ve.length){const b=e.exposed||(e.exposed={});ve.forEach(v=>{Object.defineProperty(b,v,{get:()=>s[v],set:p=>s[v]=p,enumerable:!0})})}else e.exposed||(e.exposed={});he&&e.render===ot&&(e.render=he),He!=null&&(e.inheritAttrs=He),ye&&(e.components=ye),Be&&(e.directives=Be),Ge&&so(e)}function Jr(e,t,s=ot){K(e)&&(e=un(e));for(const n in e){const i=e[n];let o;ie(i)?"default"in i?o=ms(i.from||n,i.default,!0):o=ms(i.from||n):o=ms(i),Ie(o)?Object.defineProperty(t,n,{enumerable:!0,configurable:!0,get:()=>o.value,set:r=>o.value=r}):t[n]=o}}function $n(e,t,s){qe(K(e)?e.map(n=>n.bind(t.proxy)):e.bind(t.proxy),t,s)}function ro(e,t,s,n){let i=n.includes(".")?eo(s,n):()=>s[n];if(pe(e)){const o=t[e];Q(o)&&$t(i,o)}else if(Q(e))$t(i,e.bind(s));else if(ie(e))if(K(e))e.forEach(o=>ro(o,t,s,n));else{const o=Q(e.handler)?e.handler.bind(s):t[e.handler];Q(o)&&$t(i,o,e)}}function lo(e){const t=e.type,{mixins:s,extends:n}=t,{mixins:i,optionsCache:o,config:{optionMergeStrategies:r}}=e.appContext,l=o.get(t);let c;return l?c=l:!i.length&&!s&&!n?c=t:(c={},i.length&&i.forEach(d=>xs(c,d,r,!0)),xs(c,t,r)),ie(t)&&o.set(t,c),c}function xs(e,t,s,n=!1){const{mixins:i,extends:o}=t;o&&xs(e,o,s,!0),i&&i.forEach(r=>xs(e,r,s,!0));for(const r in t)if(!(n&&r==="expose")){const l=Zr[r]||s&&s[r];e[r]=l?l(e[r],t[r]):t[r]}return e}const Zr={data:Jn,props:Zn,emits:Zn,methods:Kt,computed:Kt,beforeCreate:Oe,created:Oe,beforeMount:Oe,mounted:Oe,beforeUpdate:Oe,updated:Oe,beforeDestroy:Oe,beforeUnmount:Oe,destroyed:Oe,unmounted:Oe,activated:Oe,deactivated:Oe,errorCaptured:Oe,serverPrefetch:Oe,components:Kt,directives:Kt,watch:tl,provide:Jn,inject:el};function Jn(e,t){return t?e?function(){return Me(Q(e)?e.call(this,this):e,Q(t)?t.call(this,this):t)}:t:e}function el(e,t){return Kt(un(e),un(t))}function un(e){if(K(e)){const t={};for(let s=0;s<e.length;s++)t[e[s]]=e[s];return t}return e}function Oe(e,t){return e?[...new Set([].concat(e,t))]:t}function Kt(e,t){return e?Me(Object.create(null),e,t):t}function Zn(e,t){return e?K(e)&&K(t)?[...new Set([...e,...t])]:Me(Object.create(null),Xn(e),Xn(t??{})):t}function tl(e,t){if(!e)return t;if(!t)return e;const s=Me(Object.create(null),e);for(const n in t)s[n]=Oe(e[n],t[n]);return s}function ao(){return{app:null,config:{isNativeTag:ki,performance:!1,globalProperties:{},optionMergeStrategies:{},errorHandler:void 0,warnHandler:void 0,compilerOptions:{}},mixins:[],components:{},directives:{},provides:Object.create(null),optionsCache:new WeakMap,propsCache:new WeakMap,emitsCache:new WeakMap}}let sl=0;function nl(e,t){return function(n,i=null){Q(n)||(n=Me({},n)),i!=null&&!ie(i)&&(i=null);const o=ao(),r=new WeakSet,l=[];let c=!1;const d=o.app={_uid:sl++,_component:n,_props:i,_container:null,_context:o,_instance:null,version:Rl,get config(){return o.config},set config(u){},use(u,...A){return r.has(u)||(u&&Q(u.install)?(r.add(u),u.install(d,...A)):Q(u)&&(r.add(u),u(d,...A))),d},mixin(u){return o.mixins.includes(u)||o.mixins.push(u),d},component(u,A){return A?(o.components[u]=A,d):o.components[u]},directive(u,A){return A?(o.directives[u]=A,d):o.directives[u]},mount(u,A,S){if(!c){const N=d._ceVNode||se(n,i);return N.appContext=o,S===!0?S="svg":S===!1&&(S=void 0),e(N,u,S),c=!0,d._container=u,u.__vue_app__=d,Bn(N.component)}},onUnmount(u){l.push(u)},unmount(){c&&(qe(l,d._instance,16),e(null,d._container),delete d._container.__vue_app__)},provide(u,A){return o.provides[u]=A,d},runWithContext(u){const A=Ht;Ht=d;try{return u()}finally{Ht=A}}};return d}}let Ht=null;const il=(e,t)=>t==="modelValue"||t==="model-value"?e.modelModifiers:e[`${t}Modifiers`]||e[`${Re(t)}Modifiers`]||e[`${Pt(t)}Modifiers`];function ol(e,t,...s){if(e.isUnmounted)return;const n=e.vnode.props||ue;let i=s;const o=t.startsWith("update:"),r=o&&il(n,t.slice(7));r&&(r.trim&&(i=s.map(u=>pe(u)?u.trim():u)),r.number&&(i=s.map(Yo)));let l,c=n[l=Ys(t)]||n[l=Ys(Re(t))];!c&&o&&(c=n[l=Ys(Pt(t))]),c&&qe(c,e,6,i);const d=n[l+"Once"];if(d){if(!e.emitted)e.emitted={};else if(e.emitted[l])return;e.emitted[l]=!0,qe(d,e,6,i)}}const rl=new WeakMap;function co(e,t,s=!1){const n=s?rl:t.emitsCache,i=n.get(e);if(i!==void 0)return i;const o=e.emits;let r={},l=!1;if(!Q(e)){const c=d=>{const u=co(d,t,!0);u&&(l=!0,Me(r,u))};!s&&t.mixins.length&&t.mixins.forEach(c),e.extends&&c(e.extends),e.mixins&&e.mixins.forEach(c)}return!o&&!l?(ie(e)&&n.set(e,null),null):(K(o)?o.forEach(c=>r[c]=null):Me(r,o),ie(e)&&n.set(e,r),r)}function Us(e,t){return!e||!Is(t)?!1:(t=t.slice(2),t=t==="Once"?t:t.replace(/Once$/,""),te(e,t[0].toLowerCase()+t.slice(1))||te(e,Pt(t))||te(e,t))}function ei(e){const{type:t,vnode:s,proxy:n,withProxy:i,propsOptions:[o],slots:r,attrs:l,emit:c,render:d,renderCache:u,props:A,data:S,setupState:N,ctx:H,inheritAttrs:U}=e,ne=ws(e);let J,X;try{if(s.shapeFlag&4){const j=i||n,he=j;J=st(d.call(he,j,u,A,N,S,H)),X=l}else{const j=t;J=st(j.length>1?j(A,{attrs:l,slots:r,emit:c}):j(A,null)),X=t.props?l:ll(l)}}catch(j){pt.length=0,Bs(j,e,1),J=se(rt)}let q=J;if(X&&U!==!1){const j=Object.keys(X),{shapeFlag:he}=q;j.length&&he&7&&(o&&j.some(Ps)&&(X=al(X,o)),q=Ut(q,X,!1,!0))}if(s.dirs&&(q=Ut(q,null,!1,!0),q.dirs=q.dirs?q.dirs.concat(s.dirs):s.dirs),s.transition){const j=Ds(q.type)&&to(q)||q;In(j,s.transition)}return J=q,ws(ne),J}const ll=e=>{let t;for(const s in e)(s==="class"||s==="style"||Is(s))&&((t||(t={}))[s]=e[s]);return t},al=(e,t)=>{const s={};for(const n in e)(!Ps(n)||!(n.slice(9)in t))&&(s[n]=e[n]);return s};function cl(e,t,s){const{props:n,children:i,component:o}=e,{props:r,children:l,patchFlag:c}=t,d=o.emitsOptions;if(t.dirs||t.transition)return!0;if(s&&c>=0){if(c&1024)return!0;if(c&16)return n?ti(n,r,d):!!r;if(c&8){const u=t.dynamicProps;for(let A=0;A<u.length;A++){const S=u[A];if(uo(r,n,S)&&!Us(d,S))return!0}}}else return(i||l)&&(!l||!l.$stable)?!0:n===r?!1:n?r?ti(n,r,d):!0:!!r;return!1}function ti(e,t,s){const n=Object.keys(t);if(n.length!==Object.keys(e).length)return!0;for(let i=0;i<n.length;i++){const o=n[i];if(uo(t,e,o)&&!Us(s,o))return!0}return!1}function uo(e,t,s){const n=e[s],i=t[s];return s==="style"&&ie(n)&&ie(i)?!_n(n,i):n!==i}function ul({vnode:e,parent:t,suspense:s},n){for(;t;){const i=t.subTree;if(i.suspense&&i.suspense.activeBranch===e&&(i.suspense.vnode.el=i.el=n,e=i),i===e)(e=t.vnode).el=n,t=t.parent;else break}s&&s.activeBranch===e&&(s.vnode.el=n)}const fo={},ho=()=>Object.create(fo),po=e=>Object.getPrototypeOf(e)===fo;function fl(e,t,s,n=!1){const i={},o=ho();e.propsDefaults=Object.create(null),Ao(e,t,i,o);for(const r in e.propsOptions[0])r in i||(i[r]=void 0);s?e.props=n?i:mr(i):e.type.props?e.props=i:e.props=o,e.attrs=o}function dl(e,t,s,n){const{props:i,attrs:o,vnode:{patchFlag:r}}=e,l=ee(i),[c]=e.propsOptions;let d=!1;if((n||r>0)&&!(r&16)){if(r&8){const u=e.vnode.dynamicProps;for(let A=0;A<u.length;A++){let S=u[A];if(Us(e.emitsOptions,S))continue;const N=t[S];if(c)if(te(o,S))N!==o[S]&&(o[S]=N,d=!0);else{const H=Re(S);i[H]=fn(c,l,H,N,e,!1)}else N!==o[S]&&(o[S]=N,d=!0)}}}else{Ao(e,t,i,o)&&(d=!0);let u;for(const A in l)(!t||!te(t,A)&&((u=Pt(A))===A||!te(t,u)))&&(c?s&&(s[A]!==void 0||s[u]!==void 0)&&(i[A]=fn(c,l,A,void 0,e,!0)):delete i[A]);if(o!==l)for(const A in o)(!t||!te(t,A))&&(delete o[A],d=!0)}d&&dt(e.attrs,"set","")}function Ao(e,t,s,n){const[i,o]=e.propsOptions;let r=!1,l;if(t)for(let c in t){if(zt(c))continue;const d=t[c];let u;i&&te(i,u=Re(c))?!o||!o.includes(u)?s[u]=d:(l||(l={}))[u]=d:Us(e.emitsOptions,c)||(!(c in n)||d!==n[c])&&(n[c]=d,r=!0)}if(o){const c=ee(s),d=l||ue;for(let u=0;u<o.length;u++){const A=o[u];s[A]=fn(i,c,A,d[A],e,!te(d,A))}}return r}function fn(e,t,s,n,i,o){const r=e[s];if(r!=null){const l=te(r,"default");if(l&&n===void 0){const c=r.default;if(r.type!==Function&&!r.skipFactory&&Q(c)){const{propsDefaults:d}=i;if(s in d)n=d[s];else{const u=cs(i);n=d[s]=c.call(null,t),u()}}else n=c;i.ce&&i.ce._setProp(s,n)}r[0]&&(o&&!l?n=!1:r[1]&&(n===""||n===Pt(s))&&(n=!0))}return n}const hl=new WeakMap;function go(e,t,s=!1){const n=s?hl:t.propsCache,i=n.get(e);if(i)return i;const o=e.props,r={},l=[];let c=!1;if(!Q(e)){const u=A=>{c=!0;const[S,N]=go(A,t,!0);Me(r,S),N&&l.push(...N)};!s&&t.mixins.length&&t.mixins.forEach(u),e.extends&&u(e.extends),e.mixins&&e.mixins.forEach(u)}if(!o&&!c)return ie(e)&&n.set(e,Nt),Nt;if(K(o))for(let u=0;u<o.length;u++){const A=Re(o[u]);si(A)&&(r[A]=ue)}else if(o)for(const u in o){const A=Re(u);if(si(A)){const S=o[u],N=r[A]=K(S)||Q(S)?{type:S}:Me({},S),H=N.type;let U=!1,ne=!0;if(K(H))for(let J=0;J<H.length;++J){const X=H[J],q=Q(X)&&X.name;if(q==="Boolean"){U=!0;break}else q==="String"&&(ne=!1)}else U=Q(H)&&H.name==="Boolean";N[0]=U,N[1]=ne,(U||te(N,"default"))&&l.push(A)}}const d=[r,l];return ie(e)&&n.set(e,d),d}function si(e){return e[0]!=="$"&&!zt(e)}const Fn=e=>e==="_"||e==="_ctx"||e==="$stable",Nn=e=>K(e)?e.map(st):[st(e)],pl=(e,t,s)=>{if(t._n)return t;const n=bt((...i)=>Nn(t(...i)),s);return n._c=!1,n},mo=(e,t,s)=>{const n=e._ctx;for(const i in e){if(Fn(i))continue;const o=e[i];if(Q(o))t[i]=pl(i,o,n);else if(o!=null){const r=Nn(o);t[i]=()=>r}}},vo=(e,t)=>{const s=Nn(t);e.slots.default=()=>s},yo=(e,t,s)=>{for(const n in t)(s||!Fn(n))&&(e[n]=t[n])},Al=(e,t,s)=>{const n=e.slots=ho();if(e.vnode.shapeFlag&32){const i=t._;i?(yo(n,t,s),s&&Ci(n,"_",i,!0)):mo(t,n)}else t&&vo(e,t)},gl=(e,t,s)=>{const{vnode:n,slots:i}=e;let o=!0,r=ue;if(n.shapeFlag&32){const l=t._;l?s&&l===1?o=!1:yo(i,t,s):(o=!t.$stable,mo(t,i)),r=t}else t&&(vo(e,t),r={default:1});if(o)for(const l in i)!Fn(l)&&r[l]==null&&delete i[l]},De=bl;function ml(e){return vl(e)}function vl(e,t){const s=Ns();s.__VUE__=!0;const{insert:n,remove:i,patchProp:o,createElement:r,createText:l,createComment:c,setText:d,setElementText:u,parentNode:A,nextSibling:S,setScopeId:N=ot,insertStaticContent:H}=e,U=(a,f,g,x=null,w=null,y=null,C=void 0,T=null,P=!!f.dynamicChildren)=>{if(a===f)return;a&&!Yt(a,f)&&(x=E(a),Pe(a,w,y,!0),a=null),f.patchFlag===-2&&(P=!1,f.dynamicChildren=null);const{type:k,ref:V,shapeFlag:F}=f;switch(k){case Gs:ne(a,f,g,x);break;case rt:J(a,f,g,x);break;case vs:a==null&&X(f,g,x,C);break;case z:ye(a,f,g,x,w,y,C,T,P);break;default:F&1?he(a,f,g,x,w,y,C,T,P):F&6?Be(a,f,g,x,w,y,C,T,P):(F&64||F&128)&&k.process(a,f,g,x,w,y,C,T,P,L)}V!=null&&w?Jt(V,a&&a.ref,y,f||a,!f):V==null&&a&&a.ref!=null&&Jt(a.ref,null,y,a,!0)},ne=(a,f,g,x)=>{if(a==null)n(f.el=l(f.children),g,x);else{const w=f.el=a.el;f.children!==a.children&&d(w,f.children)}},J=(a,f,g,x)=>{a==null?n(f.el=c(f.children||""),g,x):f.el=a.el},X=(a,f,g,x)=>{[a.el,a.anchor]=H(a.children,f,g,x,a.el,a.anchor)},q=({el:a,anchor:f},g,x)=>{let w;for(;a&&a!==f;)w=S(a),n(a,g,x),a=w;n(f,g,x)},j=({el:a,anchor:f})=>{let g;for(;a&&a!==f;)g=S(a),i(a),a=g;i(f)},he=(a,f,g,x,w,y,C,T,P)=>{if(f.type==="svg"?C="svg":f.type==="math"&&(C="mathml"),a==null)fe(f,g,x,w,y,C,T,P);else{const k=a.el&&a.el._isVueCE?a.el:null;try{k&&k._beginPatch(),Ge(a,f,w,y,C,T,P)}finally{k&&k._endPatch()}}},fe=(a,f,g,x,w,y,C,T)=>{let P,k;const{props:V,shapeFlag:F,transition:B,dirs:W}=a;if(P=a.el=r(a.type,y,V&&V.is,V),F&8?u(P,a.children):F&16&&Ue(a.children,P,null,x,w,Js(a,y),C,T),W&&St(a,null,x,"created"),ge(P,a,a.scopeId,C,x),V){for(const le in V)le!=="value"&&!zt(le)&&o(P,le,null,V[le],y,x);"value"in V&&o(P,"value",null,V.value,y),(k=V.onVnodeBeforeMount)&&Ze(k,x,a)}W&&St(a,null,x,"beforeMount");const Z=yl(w,B);Z&&B.beforeEnter(P),n(P,f,g),((k=V&&V.onVnodeMounted)||Z||W)&&De(()=>{k&&Ze(k,x,a),Z&&B.enter(P),W&&St(a,null,x,"mounted")},w)},ge=(a,f,g,x,w)=>{if(g&&N(a,g),x)for(let y=0;y<x.length;y++)N(a,x[y]);if(w){let y=w.subTree;if(f===y||ko(y.type)&&(y.ssContent===f||y.ssFallback===f)){const C=w.vnode;ge(a,C,C.scopeId,C.slotScopeIds,w.parent)}}},Ue=(a,f,g,x,w,y,C,T,P=0)=>{for(let k=P;k<a.length;k++){const V=a[k]=T?ft(a[k]):st(a[k]);U(null,V,f,g,x,w,y,C,T)}},Ge=(a,f,g,x,w,y,C)=>{const T=f.el=a.el;let{patchFlag:P,dynamicChildren:k,dirs:V}=f;P|=a.patchFlag&16;const F=a.props||ue,B=f.props||ue;let W;if(g&&Mt(g,!1),(W=B.onVnodeBeforeUpdate)&&Ze(W,g,f,a),V&&St(f,a,g,"beforeUpdate"),g&&Mt(g,!0),k&&(!a.dynamicChildren||a.dynamicChildren.length!==k.length)&&(P=0,C=!1,k=null),(F.innerHTML&&B.innerHTML==null||F.textContent&&B.textContent==null)&&u(T,""),k?ve(a.dynamicChildren,k,T,g,x,Js(f,w),y):C||v(a,f,T,null,g,x,Js(f,w),y,!1),P>0){if(P&16)He(T,F,B,g,w);else if(P&2&&F.class!==B.class&&o(T,"class",null,B.class,w),P&4&&o(T,"style",F.style,B.style,w),P&8){const Z=f.dynamicProps;for(let le=0;le<Z.length;le++){const oe=Z[le],_e=F[oe],ke=B[oe];(ke!==_e||oe==="value")&&o(T,oe,_e,ke,w,g)}}P&1&&a.children!==f.children&&u(T,f.children)}else!C&&k==null&&He(T,F,B,g,w);((W=B.onVnodeUpdated)||V)&&De(()=>{W&&Ze(W,g,f,a),V&&St(f,a,g,"updated")},x)},ve=(a,f,g,x,w,y,C)=>{for(let T=0;T<f.length;T++){const P=a[T],k=f[T],V=P.el&&(P.type===z||!Yt(P,k)||P.shapeFlag&198)?A(P.el):g;U(P,k,V,null,x,w,y,C,!0)}},He=(a,f,g,x,w)=>{if(f!==g){if(f!==ue)for(const y in f)!zt(y)&&!(y in g)&&o(a,y,f[y],null,w,x);for(const y in g){if(zt(y))continue;const C=g[y],T=f[y];C!==T&&y!=="value"&&o(a,y,T,C,w,x)}"value"in g&&o(a,"value",f.value,g.value,w)}},ye=(a,f,g,x,w,y,C,T,P)=>{const k=f.el=a?a.el:l(""),V=f.anchor=a?a.anchor:l("");let{patchFlag:F,dynamicChildren:B,slotScopeIds:W}=f;W&&(T=T?T.concat(W):W),a==null?(n(k,g,x),n(V,g,x),Ue(f.children||[],g,V,w,y,C,T,P)):F>0&&F&64&&B&&a.dynamicChildren&&a.dynamicChildren.length===B.length?(ve(a.dynamicChildren,B,g,w,y,C,T),(f.key!=null||w&&f===w.subTree)&&_o(a,f,!0)):v(a,f,g,V,w,y,C,T,P)},Be=(a,f,g,x,w,y,C,T,P)=>{f.slotScopeIds=T,a==null?f.shapeFlag&512?w.ctx.activate(f,g,x,C,P):lt(f,g,x,w,y,C,P):at(a,f,P)},lt=(a,f,g,x,w,y,C)=>{const T=a.component=El(a,x,w);if(Pn(a)&&(T.ctx.renderer=L),Tl(T,!1,C),T.asyncDep){if(w&&w.registerDep(T,be,C),!a.el){const P=T.subTree=se(rt);J(null,P,f,g),a.placeholder=P.el}}else be(T,a,f,g,w,y,C)},at=(a,f,g)=>{const x=f.component=a.component;if(cl(a,f,g))if(x.asyncDep&&!x.asyncResolved){b(x,f,g);return}else x.next=f,x.update();else f.el=a.el,x.vnode=f},be=(a,f,g,x,w,y,C)=>{const T=()=>{if(a.isMounted){let{next:F,bu:B,u:W,parent:Z,vnode:le}=a;{const $e=bo(a);if($e){F&&(F.el=le.el,b(a,F,C)),$e.asyncDep.then(()=>{De(()=>{a.isUnmounted||k()},w)});return}}let oe=F,_e;Mt(a,!1),F?(F.el=le.el,b(a,F,C)):F=le,B&&Ws(B),(_e=F.props&&F.props.onVnodeBeforeUpdate)&&Ze(_e,Z,F,le),Mt(a,!0);const ke=ei(a),Xe=a.subTree;a.subTree=ke,U(Xe,ke,A(Xe.el),E(Xe),a,w,y),F.el=ke.el,oe===null&&ul(a,ke.el),W&&De(W,w),(_e=F.props&&F.props.onVnodeUpdated)&&De(()=>Ze(_e,Z,F,le),w)}else{let F;const{el:B,props:W}=f,{bm:Z,m:le,parent:oe,root:_e,type:ke}=a,Xe=Dt(f);Mt(a,!1),Z&&Ws(Z),!Xe&&(F=W&&W.onVnodeBeforeMount)&&Ze(F,oe,f),Mt(a,!0);{_e.ce&&_e.ce._hasShadowRoot()&&_e.ce._injectChildStyle(ke,a.parent?a.parent.type:void 0);const $e=a.subTree=ei(a);U(null,$e,g,x,a,w,y),f.el=$e.el}if(le&&De(le,w),!Xe&&(F=W&&W.onVnodeMounted)){const $e=f;De(()=>Ze(F,oe,$e),w)}(f.shapeFlag&256||oe&&Dt(oe.vnode)&&oe.vnode.shapeFlag&256)&&a.a&&De(a.a,w),a.isMounted=!0,f=g=x=null}};a.scope.on();const P=a.effect=new Oi(T);a.scope.off();const k=a.update=P.run.bind(P),V=a.job=P.runIfDirty.bind(P);V.i=a,V.id=a.uid,P.scheduler=()=>Cn(V),Mt(a,!0),k()},b=(a,f,g)=>{f.component=a;const x=a.vnode.props;a.vnode=f,a.next=null,dl(a,f.props,x,g),gl(a,f.children,g),At(),Kn(a),gt()},v=(a,f,g,x,w,y,C,T,P=!1)=>{const k=a&&a.children,V=a?a.shapeFlag:0,F=f.children,{patchFlag:B,shapeFlag:W}=f;if(B>0){if(B&128){Y(k,F,g,x,w,y,C,T,P);return}else if(B&256){p(k,F,g,x,w,y,C,T,P);return}}W&8?(V&16&&M(k,w,y),F!==k&&u(g,F)):V&16?W&16?Y(k,F,g,x,w,y,C,T,P):M(k,w,y,!0):(V&8&&u(g,""),W&16&&Ue(F,g,x,w,y,C,T,P))},p=(a,f,g,x,w,y,C,T,P)=>{a=a||Nt,f=f||Nt;const k=a.length,V=f.length,F=Math.min(k,V);let B;for(B=0;B<F;B++){const W=f[B]=P?ft(f[B]):st(f[B]);U(a[B],W,g,null,w,y,C,T,P)}k>V?M(a,w,y,!0,!1,F):Ue(f,g,x,w,y,C,T,P,F)},Y=(a,f,g,x,w,y,C,T,P)=>{let k=0;const V=f.length;let F=a.length-1,B=V-1;for(;k<=F&&k<=B;){const W=a[k],Z=f[k]=P?ft(f[k]):st(f[k]);if(Yt(W,Z))U(W,Z,g,null,w,y,C,T,P);else break;k++}for(;k<=F&&k<=B;){const W=a[F],Z=f[B]=P?ft(f[B]):st(f[B]);if(Yt(W,Z))U(W,Z,g,null,w,y,C,T,P);else break;F--,B--}if(k>F){if(k<=B){const W=B+1,Z=W<V?f[W].el:x;for(;k<=B;)U(null,f[k]=P?ft(f[k]):st(f[k]),g,Z,w,y,C,T,P),k++}}else if(k>B)for(;k<=F;)Pe(a[k],w,y,!0),k++;else{const W=k,Z=k,le=new Map;for(k=Z;k<=B;k++){const je=f[k]=P?ft(f[k]):st(f[k]);je.key!=null&&le.set(je.key,k)}let oe,_e=0;const ke=B-Z+1;let Xe=!1,$e=0;const Gt=new Array(ke);for(k=0;k<ke;k++)Gt[k]=0;for(k=W;k<=F;k++){const je=a[k];if(_e>=ke){Pe(je,w,y,!0);continue}let Je;if(je.key!=null)Je=le.get(je.key);else for(oe=Z;oe<=B;oe++)if(Gt[oe-Z]===0&&Yt(je,f[oe])){Je=oe;break}Je===void 0?Pe(je,w,y,!0):(Gt[Je-Z]=k+1,Je>=$e?$e=Je:Xe=!0,U(je,f[Je],g,null,w,y,C,T,P),_e++)}const jn=Xe?_l(Gt):Nt;for(oe=jn.length-1,k=ke-1;k>=0;k--){const je=Z+k,Je=f[je],Ln=f[je+1],Un=je+1<V?Ln.el||wo(Ln):x;Gt[k]===0?U(null,Je,g,Un,w,y,C,T,P):Xe&&(oe<0||k!==jn[oe]?re(Je,g,Un,2):oe--)}}},re=(a,f,g,x,w=null)=>{const{el:y,type:C,transition:T,children:P,shapeFlag:k}=a;if(k&6){re(a.component.subTree,f,g,x);return}if(k&128){a.suspense.move(f,g,x);return}if(k&64){C.move(a,f,g,L);return}if(C===z){n(y,f,g);for(let F=0;F<P.length;F++)re(P[F],f,g,x);n(a.anchor,f,g);return}if(C===vs){q(a,f,g);return}if(x!==2&&k&1&&T)if(x===0)T.persisted&&!y[Xs]?n(y,f,g):(T.beforeEnter(y),n(y,f,g),De(()=>T.enter(y),w));else{const{leave:F,delayLeave:B,afterLeave:W}=T,Z=()=>{a.ctx.isUnmounted?i(y):n(y,f,g)},le=()=>{const oe=y._isLeaving||!!y[Xs];y._isLeaving&&y[Xs](!0),T.persisted&&!oe?Z():F(y,()=>{Z(),W&&W()})};B?B(y,Z,le):le()}else n(y,f,g)},Pe=(a,f,g,x=!1,w=!1)=>{const{type:y,props:C,ref:T,children:P,dynamicChildren:k,shapeFlag:V,patchFlag:F,dirs:B,cacheIndex:W,memo:Z}=a;if(F===-2&&(w=!1),T!=null&&(At(),Jt(T,null,g,a,!0),gt()),W!=null&&(f.renderCache[W]=void 0),V&256){f.ctx.deactivate(a);return}const le=V&1&&B,oe=!Dt(a);let _e;if(oe&&(_e=C&&C.onVnodeBeforeUnmount)&&Ze(_e,f,a),V&6)ds(a.component,g,x);else{if(V&128){a.suspense.unmount(g,x);return}le&&St(a,null,f,"beforeUnmount"),V&64?a.type.remove(a,f,g,L,x):k&&!k.hasOnce&&(y!==z||F>0&&F&64)?M(k,f,g,!1,!0):(y===z&&F&384||!w&&V&16)&&M(P,f,g),x&&fs(a)}const ke=Z!=null&&W==null;(oe&&(_e=C&&C.onVnodeUnmounted)||le||ke)&&De(()=>{_e&&Ze(_e,f,a),le&&St(a,null,f,"unmounted"),ke&&(a.el=null)},g)},fs=a=>{const{type:f,el:g,anchor:x,transition:w}=a;if(f===z){Vs(g,x);return}if(f===vs){j(a);return}const y=()=>{i(g),w&&!w.persisted&&w.afterLeave&&w.afterLeave()};if(a.shapeFlag&1&&w&&!w.persisted){const{leave:C,delayLeave:T}=w,P=()=>C(g,y);T?T(a.el,y,P):P()}else y()},Vs=(a,f)=>{let g;for(;a!==f;)g=S(a),i(a),a=g;i(f)},ds=(a,f,g)=>{const{bum:x,scope:w,job:y,subTree:C,um:T,m:P,a:k}=a;ni(P),ni(k),x&&Ws(x),w.stop(),y&&(y.flags|=8,Pe(C,a,f,g)),T&&De(T,f),De(()=>{a.isUnmounted=!0},f)},M=(a,f,g,x=!1,w=!1,y=0)=>{for(let C=y;C<a.length;C++)Pe(a[C],f,g,x,w)},E=a=>{if(a.shapeFlag&6)return E(a.component.subTree);if(a.shapeFlag&128)return a.suspense.next();const f=S(a.anchor||a.el),g=f&&f[Nr];return g?S(g):f};let O=!1;const R=(a,f,g)=>{let x;a==null?f._vnode&&(Pe(f._vnode,null,null,!0),x=f._vnode.component):U(f._vnode||null,a,f,null,null,null,g),f._vnode=a,O||(O=!0,Kn(x),Xi(),O=!1)},L={p:U,um:Pe,m:re,r:fs,mt:lt,mc:Ue,pc:v,pbc:ve,n:E,o:e};return{render:R,hydrate:void 0,createApp:nl(R)}}function Js({type:e,props:t},s){return s==="svg"&&e==="foreignObject"||s==="mathml"&&e==="annotation-xml"&&t&&t.encoding&&t.encoding.includes("html")?void 0:s}function Mt({effect:e,job:t},s){s?(e.flags|=32,t.flags|=4):(e.flags&=-33,t.flags&=-5)}function yl(e,t){return(!e||e&&!e.pendingBranch)&&t&&!t.persisted}function _o(e,t,s=!1){const n=e.children,i=t.children;if(K(n)&&K(i))for(let o=0;o<n.length;o++){const r=n[o];let l=i[o];l.shapeFlag&1&&!l.dynamicChildren&&((l.patchFlag<=0||l.patchFlag===32)&&(l=i[o]=ft(i[o]),l.el=r.el),!s&&l.patchFlag!==-2&&_o(r,l)),l.type===Gs&&(l.patchFlag===-1&&(l=i[o]=ft(l)),l.el=r.el),l.type===rt&&!l.el&&(l.el=r.el)}}function _l(e){const t=e.slice(),s=[0];let n,i,o,r,l;const c=e.length;for(n=0;n<c;n++){const d=e[n];if(d!==0){if(i=s[s.length-1],e[i]<d){t[n]=i,s.push(n);continue}for(o=0,r=s.length-1;o<r;)l=o+r>>1,e[s[l]]<d?o=l+1:r=l;d<e[s[o]]&&(o>0&&(t[n]=s[o-1]),s[o]=n)}}for(o=s.length,r=s[o-1];o-- >0;)s[o]=r,r=t[r];return s}function bo(e){const t=e.subTree.component;if(t)return t.asyncDep&&!t.asyncResolved?t:bo(t)}function ni(e){if(e)for(let t=0;t<e.length;t++)e[t].flags|=8}function wo(e){if(e.placeholder)return e.placeholder;const t=e.component;return t?wo(t.subTree):null}const ko=e=>e.__isSuspense;function bl(e,t){t&&t.pendingBranch?K(e)?t.effects.push(...e):t.effects.push(e):Tr(e)}const z=Symbol.for("v-fgt"),Gs=Symbol.for("v-txt"),rt=Symbol.for("v-cmt"),vs=Symbol.for("v-stc"),pt=[];let Le=null;function m(e=!1){pt.push(Le=e?null:[])}function Rn(){pt.pop(),Le=pt[pt.length-1]||null}let ns=1;function Ss(e,t=!1){ns+=e,e<0&&Le&&t&&(Le.hasOnce=!0)}function xo(e){return e.dynamicChildren=ns>0?Le||Nt:null,Rn(),ns>0&&Le&&Le.push(e),e}function _(e,t,s,n,i,o){return xo(h(e,t,s,n,i,o,!0))}function me(e,t,s,n,i){return xo(se(e,t,s,n,i,!0))}function is(e){return e?e.__v_isVNode===!0:!1}function Yt(e,t){return e.type===t.type&&e.key===t.key}const So=({key:e})=>e??null,ys=({ref:e,ref_key:t,ref_for:s})=>(typeof e=="number"&&(e=""+e),e!=null?pe(e)||Ie(e)||Q(e)?{i:Ne,r:e,k:t,f:!!s}:e:null);function h(e,t=null,s=null,n=0,i=null,o=e===z?0:1,r=!1,l=!1){const c={__v_isVNode:!0,__v_skip:!0,type:e,props:t,key:t&&So(t),ref:t&&ys(t),scopeId:Ji,slotScopeIds:null,children:s,component:null,suspense:null,ssContent:null,ssFallback:null,dirs:null,transition:null,el:null,anchor:null,target:null,targetStart:null,targetAnchor:null,staticCount:0,shapeFlag:o,patchFlag:n,dynamicProps:i,dynamicChildren:null,appContext:null,ctx:Ne};return l?(Ms(c,s),o&128&&e.normalize(c)):s&&(c.shapeFlag|=pe(s)?8:16),ns>0&&!r&&Le&&(c.patchFlag>0||o&6)&&c.patchFlag!==32&&Le.push(c),c}const se=wl;function wl(e,t=null,s=null,n=0,i=null,o=!1){if((!e||e===io)&&(e=rt),is(e)){const l=Ut(e,t,!0);return s&&Ms(l,s),ns>0&&!o&&Le&&(l.shapeFlag&6?Le[Le.indexOf(e)]=l:Le.push(l)),l.patchFlag=-2,l}if(Nl(e)&&(e=e.__vccOpts),t){t=kl(t);let{class:l,style:c}=t;l&&!pe(l)&&(t.class=de(l)),ie(c)&&(En(c)&&!K(c)&&(c=Me({},c)),t.style=Ye(c))}const r=pe(e)?1:ko(e)?128:Ds(e)?64:ie(e)?4:Q(e)?2:0;return h(e,t,s,n,i,r,o,!0)}function kl(e){return e?En(e)||po(e)?Me({},e):e:null}function Ut(e,t,s=!1,n=!1){const{props:i,ref:o,patchFlag:r,children:l,transition:c}=e,d=t?xl(i||{},t):i,u={__v_isVNode:!0,__v_skip:!0,type:e.type,props:d,key:d&&So(d),ref:t&&t.ref?s&&o?K(o)?o.concat(ys(t)):[o,ys(t)]:ys(t):o,scopeId:e.scopeId,slotScopeIds:e.slotScopeIds,children:l,target:e.target,targetStart:e.targetStart,targetAnchor:e.targetAnchor,staticCount:e.staticCount,shapeFlag:e.shapeFlag,patchFlag:t&&e.type!==z?r===-1?16:r|16:r,dynamicProps:e.dynamicProps,dynamicChildren:e.dynamicChildren,appContext:e.appContext,dirs:e.dirs,transition:c,component:e.component,suspense:e.suspense,ssContent:e.ssContent&&Ut(e.ssContent),ssFallback:e.ssFallback&&Ut(e.ssFallback),placeholder:e.placeholder,el:e.el,anchor:e.anchor,ctx:e.ctx,ce:e.ce};return c&&n&&In(u,c.clone(u)),u}function ht(e=" ",t=0){return se(Gs,null,e,t)}function Mo(e,t){const s=se(vs,null,e);return s.staticCount=t,s}function D(e="",t=!1){return t?(m(),me(rt,null,e)):se(rt,null,e)}function st(e){return e==null||typeof e=="boolean"?se(rt):K(e)?se(z,null,e.slice()):is(e)?ft(e):se(Gs,null,String(e))}function ft(e){return e.el===null&&e.patchFlag!==-1||e.memo?e:Ut(e)}function Ms(e,t){let s=0;const{shapeFlag:n}=e;if(t==null)t=null;else if(K(t))s=16;else if(typeof t=="object")if(n&65){const i=t.default;i&&(i._c&&(i._d=!1),Ms(e,i()),i._c&&(i._d=!0));return}else{s=32;const i=t._;!i&&!po(t)?t._ctx=Ne:i===3&&Ne&&(Ne.slots._===1?t._=1:(t._=2,e.patchFlag|=1024))}else if(Q(t)){if(n&65){Ms(e,{default:t});return}t={default:t,_ctx:Ne},s=32}else t=String(t),n&64?(s=16,t=[ht(t)]):s=8;e.children=t,e.shapeFlag|=s}function xl(...e){const t={};for(let s=0;s<e.length;s++){const n=e[s];for(const i in n)if(i==="class")t.class!==n.class&&(t.class=de([t.class,n.class]));else if(i==="style")t.style=Ye([t.style,n.style]);else if(Is(i)){const o=t[i],r=n[i];r&&o!==r&&!(K(o)&&o.includes(r))?t[i]=o?[].concat(o,r):r:r==null&&o==null&&!Ps(i)&&(t[i]=r)}else i!==""&&(t[i]=n[i])}return t}function Ze(e,t,s,n=null){qe(e,t,7,[s,n])}const Sl=ao();let Ml=0;function El(e,t,s){const n=e.type,i=(t?t.appContext:e.appContext)||Sl,o={uid:Ml++,vnode:e,type:n,parent:t,appContext:i,root:null,next:null,subTree:null,effect:null,update:null,job:null,scope:new Jo(!0),render:null,proxy:null,exposed:null,exposeProxy:null,withProxy:null,provides:t?t.provides:Object.create(i.provides),ids:t?t.ids:["",0,0],accessCache:null,renderCache:[],components:null,directives:null,propsOptions:go(n,i),emitsOptions:co(n,i),emit:null,emitted:null,propsDefaults:ue,inheritAttrs:n.inheritAttrs,ctx:ue,data:ue,props:ue,attrs:ue,slots:ue,refs:ue,setupState:ue,setupContext:null,suspense:s,suspenseId:s?s.pendingId:0,asyncDep:null,asyncResolved:!1,isMounted:!1,isUnmounted:!1,isDeactivated:!1,bc:null,c:null,bm:null,m:null,bu:null,u:null,um:null,bum:null,da:null,a:null,rtg:null,rtc:null,ec:null,sp:null};return o.ctx={_:o},o.root=t?t.root:o,o.emit=ol.bind(null,o),e.ce&&e.ce(o),o}let Te=null;const Cl=()=>Te||Ne;let Es,os;{const e=Ns(),t=(s,n)=>{let i;return(i=e[s])||(i=e[s]=[]),i.push(n),o=>{i.length>1?i.forEach(r=>r(o)):i[0](o)}};Es=t("__VUE_INSTANCE_SETTERS__",s=>Te=s),os=t("__VUE_SSR_SETTERS__",s=>rs=s)}const cs=e=>{const t=Te;return Es(e),e.scope.on(),()=>{e.scope.off(),Es(t)}},ii=()=>{Te&&Te.scope.off(),Es(null)};function Eo(e){return e.vnode.shapeFlag&4}let rs=!1;function Tl(e,t=!1,s=!1){t&&os(t);const{props:n,children:i}=e.vnode,o=Eo(e);fl(e,n,o,t),Al(e,i,s||t);const r=o?Il(e,t):void 0;return t&&os(!1),r}function Il(e,t){const s=e.type;e.accessCache=Object.create(null),e.proxy=new Proxy(e.ctx,Xr);const{setup:n}=s;if(n){At();const i=e.setupContext=n.length>1?Ol(e):null,o=cs(e),r=as(n,e,0,[e.props,i]),l=Si(r);if(gt(),o(),(l||e.sp)&&!Dt(e)&&so(e),l){if(r.then(ii,ii),t)return r.then(c=>{os(!0);try{oi(e,c,t)}finally{os(!1)}}).catch(c=>{Bs(c,e,0)});e.asyncDep=r}else oi(e,r)}else Co(e)}function oi(e,t,s){Q(t)?e.type.__ssrInlineRender?e.ssrRender=t:e.render=t:ie(t)&&(e.setupState=Qi(t)),Co(e)}function Co(e,t,s){const n=e.type;e.render||(e.render=n.render||ot);{const i=cs(e);At();try{$r(e)}finally{gt(),i()}}}const Pl={get(e,t){return Ce(e,"get",""),e[t]}};function Ol(e){const t=s=>{e.exposed=s||{}};return{attrs:new Proxy(e.attrs,Pl),slots:e.slots,emit:e.emit,expose:t}}function Bn(e){return e.exposed?e.exposeProxy||(e.exposeProxy=new Proxy(Qi(vr(e.exposed)),{get(t,s){if(s in t)return t[s];if(s in Zt)return Zt[s](e)},has(t,s){return s in t||s in Zt}})):e.proxy}function Fl(e,t=!0){return Q(e)?e.displayName||e.name:e.name||t&&e.__name}function Nl(e){return Q(e)&&"__vccOpts"in e}const $=(e,t)=>kr(e,t,rs);function dn(e,t,s){try{Ss(-1);const n=arguments.length;return n===2?ie(t)&&!K(t)?is(t)?se(e,null,[t]):se(e,t):se(e,null,t):(n>3?s=Array.prototype.slice.call(arguments,2):n===3&&is(s)&&(s=[s]),se(e,t,s))}finally{Ss(1)}}const Rl="3.5.41";let hn;const ri=typeof window<"u"&&window.trustedTypes;if(ri)try{hn=ri.createPolicy("vue",{createHTML:e=>e})}catch{}const To=hn?e=>hn.createHTML(e):e=>e,Bl="http://www.w3.org/2000/svg",Dl="http://www.w3.org/1998/Math/MathML",ut=typeof document<"u"?document:null,li=ut&&ut.createElement("template"),Hl={insert:(e,t,s)=>{t.insertBefore(e,s||null)},remove:e=>{const t=e.parentNode;t&&t.removeChild(e)},createElement:(e,t,s,n)=>{const i=t==="svg"?ut.createElementNS(Bl,e):t==="mathml"?ut.createElementNS(Dl,e):s?ut.createElement(e,{is:s}):ut.createElement(e);return e==="select"&&n&&n.multiple!=null&&i.setAttribute("multiple",n.multiple),i},createText:e=>ut.createTextNode(e),createComment:e=>ut.createComment(e),setText:(e,t)=>{e.nodeValue=t},setElementText:(e,t)=>{e.textContent=t},parentNode:e=>e.parentNode,nextSibling:e=>e.nextSibling,querySelector:e=>ut.querySelector(e),setScopeId(e,t){e.setAttribute(t,"")},insertStaticContent(e,t,s,n,i,o){const r=s?s.previousSibling:t.lastChild;if(i&&(i===o||i.nextSibling))for(;t.insertBefore(i.cloneNode(!0),s),!(i===o||!(i=i.nextSibling)););else{li.innerHTML=To(n==="svg"?`<svg>${e}</svg>`:n==="mathml"?`<math>${e}</math>`:e);const l=li.content;if(n==="svg"||n==="mathml"){const c=l.firstChild;for(;c.firstChild;)l.appendChild(c.firstChild);l.removeChild(c)}t.insertBefore(l,s)}return[r?r.nextSibling:t.firstChild,s?s.previousSibling:t.lastChild]}},jl=Symbol("_vtc");function Ll(e,t,s){const n=e[jl];n&&(t=(t?[t,...n]:[...n]).join(" ")),t==null?e.removeAttribute("class"):s?e.setAttribute("class",t):e.className=t}const ai=Symbol("_vod"),Ul=Symbol("_vsh"),Gl=Symbol(""),Vl=/(?:^|;)\s*display\s*:/;function Yl(e,t,s){const n=e.style,i=pe(s);let o=!1;if(s&&!i){if(t)if(pe(t))for(const r of t.split(";")){const l=r.slice(0,r.indexOf(":")).trim();s[l]==null&&Qt(n,l,"")}else for(const r in t)s[r]==null&&Qt(n,r,"");for(const r in s){r==="display"&&(o=!0);const l=s[r];l!=null?Kl(e,r,!pe(t)&&t?t[r]:void 0,l)||Qt(n,r,l):Qt(n,r,"")}}else if(i){if(t!==s){const r=n[Gl];r&&(s+=";"+r),n.cssText=s,o=Vl.test(s)}}else t&&e.removeAttribute("style");ai in e&&(e[ai]=o?n.display:"",e[Ul]&&(n.display="none"))}const ci=/\s*!important$/;function Qt(e,t,s){if(K(s))s.forEach(n=>Qt(e,t,n));else if(s==null&&(s=""),t.startsWith("--"))e.setProperty(t,s);else{const n=Wl(e,t);ci.test(s)?e.setProperty(Pt(n),s.replace(ci,""),"important"):e[n]=s}}const ui=["Webkit","Moz","ms"],Zs={};function Wl(e,t){const s=Zs[t];if(s)return s;let n=Re(t);if(n!=="filter"&&n in e)return Zs[t]=n;n=Fs(n);for(let i=0;i<ui.length;i++){const o=ui[i]+n;if(o in e)return Zs[t]=o}return t}function Kl(e,t,s,n){return e.tagName==="TEXTAREA"&&(t==="width"||t==="height")&&pe(n)&&s===n}const fi="http://www.w3.org/1999/xlink";function di(e,t,s,n,i,o=Xo(t)){n&&t.startsWith("xlink:")?s==null?e.removeAttributeNS(fi,t.slice(6,t.length)):e.setAttributeNS(fi,t,s):s==null||o&&!Ti(s)?e.removeAttribute(t):e.setAttribute(t,o?"":Qe(s)?String(s):s)}function hi(e,t,s,n,i){if(t==="innerHTML"||t==="textContent"){s!=null&&(e[t]=t==="innerHTML"?To(s):s);return}const o=e.tagName;if(t==="value"&&o!=="PROGRESS"&&!o.includes("-")){const l=o==="OPTION"?e.getAttribute("value")||"":e.value,c=s==null?e.type==="checkbox"?"on":"":String(s);(l!==c||!("_value"in e))&&(e.value=c),s==null&&e.removeAttribute(t),e._value=s;return}let r=!1;if(s===""||s==null){const l=typeof e[t];l==="boolean"?s=Ti(s):s==null&&l==="string"?(s="",r=!0):l==="number"&&(s=0,r=!0)}try{e[t]=s}catch{}r&&e.removeAttribute(i||t)}function Ql(e,t,s,n){e.addEventListener(t,s,n)}function zl(e,t,s,n){e.removeEventListener(t,s,n)}const pi=Symbol("_vei");function ql(e,t,s,n,i=null){const o=e[pi]||(e[pi]={}),r=o[t];if(n&&r)r.value=n;else{const[l,c]=Jl(t);if(n){const d=o[t]=ta(n,i);Ql(e,l,d,c)}else r&&(zl(e,l,r,c),o[t]=void 0)}}const Xl=/(Once|Passive|Capture)$/,$l=/^on:?(?:Once|Passive|Capture)$/;function Jl(e){let t,s;for(;(s=e.match(Xl))&&!$l.test(e);)t||(t={}),e=e.slice(0,e.length-s[1].length),t[s[1].toLowerCase()]=!0;return[e[2]===":"?e.slice(3):Pt(e.slice(2)),t]}let en=0;const Zl=Promise.resolve(),ea=()=>en||(Zl.then(()=>en=0),en=Date.now());function ta(e,t){const s=n=>{if(!n._vts)n._vts=Date.now();else if(n._vts<=s.attached)return;const i=s.value;if(K(i)){const o=n.stopImmediatePropagation;n.stopImmediatePropagation=()=>{o.call(n),n._stopped=!0};const r=i.slice(),l=[n];for(let c=0;c<r.length&&!n._stopped;c++){const d=r[c];d&&qe(d,t,5,l)}}else qe(i,t,5,[n])};return s.value=e,s.attached=ea(),s}const Ai=e=>e.charCodeAt(0)===111&&e.charCodeAt(1)===110&&e.charCodeAt(2)>96&&e.charCodeAt(2)<123,sa=(e,t,s,n,i,o)=>{const r=i==="svg";t==="class"?Ll(e,n,r):t==="style"?Yl(e,s,n):Is(t)?Ps(t)||ql(e,t,s,n,o):(t[0]==="."?(t=t.slice(1),!0):t[0]==="^"?(t=t.slice(1),!1):na(e,t,n,r))?(hi(e,t,n),!e.tagName.includes("-")&&(t==="value"||t==="checked"||t==="selected")&&di(e,t,n,r,o,t!=="value")):e._isVueCE&&(ia(e,t)||e._def.__asyncLoader&&(/[A-Z]/.test(t)||!pe(n)))?hi(e,Re(t),n,o,t):(t==="true-value"?e._trueValue=n:t==="false-value"&&(e._falseValue=n),di(e,t,n,r))};function na(e,t,s,n){if(n)return!!(t==="innerHTML"||t==="textContent"||t in e&&Ai(t)&&Q(s));if(t==="spellcheck"||t==="draggable"||t==="translate"||t==="autocorrect"||t==="sandbox"&&e.tagName==="IFRAME"||t==="form"||t==="list"&&e.tagName==="INPUT"||t==="type"&&e.tagName==="TEXTAREA")return!1;if(t==="width"||t==="height"){const i=e.tagName;if(i==="IMG"||i==="VIDEO"||i==="CANVAS"||i==="SOURCE")return!1}return Ai(t)&&pe(s)?!1:t in e}function ia(e,t){const s=e._def.props;if(!s)return!1;const n=Re(t);return Array.isArray(s)?s.some(i=>Re(i)===n):Object.keys(s).some(i=>Re(i)===n)}const oa=Me({patchProp:sa},Hl);let gi;function ra(){return gi||(gi=ml(oa))}const la=((...e)=>{const t=ra().createApp(...e),{mount:s}=t;return t.mount=n=>{const i=ca(n);if(!i)return;const o=t._component;!Q(o)&&!o.render&&!o.template&&(o.template=i.innerHTML),i.nodeType===1&&(i.textContent="");const r=s(i,!1,aa(i));return i instanceof Element&&(i.removeAttribute("v-cloak"),i.setAttribute("data-v-app","")),r},t});function aa(e){if(e instanceof SVGElement)return"svg";if(typeof MathMLElement=="function"&&e instanceof MathMLElement)return"mathml"}function ca(e){return pe(e)?document.querySelector(e):e}function Io(){const e=window.location.hash.replace(/^#\/?/,"").split("/").filter(Boolean).map(decodeURIComponent);return{adwId:e[0]??null,phaseId:e[1]??null}}const Po=Se(Io());window.addEventListener("hashchange",()=>{Po.value=Io()});function ua(){return Po}const pn=Se(null);function Cs(e,t){let s="#/";return e&&(s+=encodeURIComponent(e)),e&&t&&(s+=`/${encodeURIComponent(t)}`),s}function mi(e,t){window.location.hash=Cs(e,t)}async function us(e){const t=await fetch(e);if(!t.ok)throw new Error(`GET ${e} → ${t.status}`);return t.json()}function fa(){return us("/api/sessions")}async function da(e){const t=await us(`/api/sessions/${encodeURIComponent(e)}`);return{session:t.session,usage:t.usage??{read:0,written:0},phases:t.phases??[],agents:t.agents??[]}}async function ha(e,t,s=500){const n=await us(`/api/sessions/${encodeURIComponent(e)}/events?after=${t}&limit=${s}`);if(Array.isArray(n)){const i=n.reduce((o,r)=>Math.max(o,r.rowid),t);return{events:n,cursor:i,has_more:n.length===s}}return{events:n.events??[],cursor:n.cursor??t,has_more:n.has_more??!1}}async function pa(e,t=!0){const s=`/api/sessions/${encodeURIComponent(e)}/archive`,n=await fetch(s,{method:"POST",headers:{"content-type":"application/json"},body:JSON.stringify({archived:t})});if(!n.ok)throw new Error(`POST ${s} → ${n.status}`)}async function Aa(e,t){const s=await fetch(`/api/sessions/${encodeURIComponent(e)}/agents/${encodeURIComponent(t)}/prompts`);if(s.status===404)return{system:null,user:null};if(!s.ok)throw new Error(`GET prompts → ${s.status}`);const n=await s.json();return{system:n.system??null,user:n.user??null}}function ga(e){return us(`/api/sessions/${encodeURIComponent(e)}/envelopes`)}function ma(e){return us(`/api/sessions/${encodeURIComponent(e)}/gates`)}function ae(e){return e?new Date(e).getTime():NaN}function Oo(e){if(!Number.isFinite(e)||e<0)return"—";if(e<1e3)return`${(e/1e3).toFixed(2)}s`;const t=e/1e3;if(t<60)return`${t.toFixed(1)}s`;const s=Math.floor(t/60),n=Math.round(t%60);return s<60?`${s}m ${String(n).padStart(2,"0")}s`:`${Math.floor(s/60)}h ${String(s%60).padStart(2,"0")}m`}function jt(e){const t=ae(e);return Number.isFinite(t)?new Date(t).toLocaleTimeString([],{hour12:!1}):"—"}function va(e){const t=ae(e);return Number.isFinite(t)?`${new Date(t).toLocaleDateString([],{month:"short",day:"numeric"})} ${jt(e)}`:"—"}function Fo(e){return e==null?"—":e<1e3?String(e):e<1e6?`${(e/1e3).toFixed(1)}k`:`${(e/1e6).toFixed(2)}M`}function No(e){return e==null?"—":e>=1?`$${e.toFixed(2)}`:`$${e.toFixed(4)}`}function ya(e){const t=Math.round(e/1e3);if(t<60)return`${t}s`;const s=Math.floor(t/60);if(s<60){const o=t%60;return o?`${s}m${String(o).padStart(2,"0")}s`:`${s}m`}const n=Math.floor(s/60),i=s%60;return i?`${n}h${String(i).padStart(2,"0")}m`:`${n}h`}const _a=[1,2,5,10,15,30,60,120,300,600,1200,1800,3600,7200,21600,43200,86400].map(e=>e*1e3);function ba(e,t=8){const s=Math.max(e,1),n=_a.find(o=>s/o<=t)??s/(t-1),i=[];for(let o=0;o<=s;o+=n)i.push({pct:o/s*100,label:ya(o)});return i}function Ro(e){if(!e)return!0;try{const t=JSON.parse(e);if(t&&typeof t=="object"&&"ok"in t)return t.ok!==!1}catch{}return!0}const wa=e=>{for(const t in e)if(t.startsWith("aria-")||t==="role"||t==="title")return!0;return!1};const vi=e=>e==="";const ka=(...e)=>e.filter((t,s,n)=>!!t&&t.trim()!==""&&n.indexOf(t)===s).join(" ").trim();const yi=e=>e.replace(/([a-z0-9])([A-Z])/g,"$1-$2").toLowerCase();const xa=e=>e.replace(/^([A-Z])|[\s-_]+(\w)/g,(t,s,n)=>n?n.toUpperCase():s.toLowerCase());const Sa=e=>{const t=xa(e);return t.charAt(0).toUpperCase()+t.slice(1)};var Wt={xmlns:"http://www.w3.org/2000/svg",width:24,height:24,viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":2,"stroke-linecap":"round","stroke-linejoin":"round"};const Ma=({name:e,iconNode:t,absoluteStrokeWidth:s,"absolute-stroke-width":n,strokeWidth:i,"stroke-width":o,size:r=Wt.width,color:l=Wt.stroke,...c},{slots:d})=>dn("svg",{...Wt,...c,width:r,height:r,stroke:l,"stroke-width":vi(s)||vi(n)||s===!0||n===!0?Number(i||o||Wt["stroke-width"])*24/Number(r):i||o||Wt["stroke-width"],class:ka("lucide",c.class,...e?[`lucide-${yi(Sa(e))}-icon`,`lucide-${yi(e)}`]:["lucide-icon"]),...!d.default&&!wa(c)&&{"aria-hidden":"true"}},[...t.map(u=>dn(...u)),...d.default?[d.default()]:[]]);const Ae=(e,t)=>(s,{slots:n,attrs:i})=>dn(Ma,{...i,...s,iconNode:t,name:e},n);const Ea=Ae("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"}]]);const Ca=Ae("archive",[["rect",{width:"20",height:"5",x:"2",y:"3",rx:"1",key:"1wp1u1"}],["path",{d:"M4 8v11a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V8",key:"1s80jp"}],["path",{d:"M10 12h4",key:"a56b0p"}]]);const Ta=Ae("book-open",[["path",{d:"M12 7v14",key:"1akyts"}],["path",{d:"M3 18a1 1 0 0 1-1-1V4a1 1 0 0 1 1-1h5a4 4 0 0 1 4 4 4 4 0 0 1 4-4h5a1 1 0 0 1 1 1v13a1 1 0 0 1-1 1h-6a3 3 0 0 0-3 3 3 3 0 0 0-3-3z",key:"ruj8y"}]]);const Ia=Ae("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"}]]);const Pa=Ae("brain",[["path",{d:"M12 18V5",key:"adv99a"}],["path",{d:"M15 13a4.17 4.17 0 0 1-3-4 4.17 4.17 0 0 1-3 4",key:"1e3is1"}],["path",{d:"M17.598 6.5A3 3 0 1 0 12 5a3 3 0 1 0-5.598 1.5",key:"1gqd8o"}],["path",{d:"M17.997 5.125a4 4 0 0 1 2.526 5.77",key:"iwvgf7"}],["path",{d:"M18 18a4 4 0 0 0 2-7.464",key:"efp6ie"}],["path",{d:"M19.967 17.483A4 4 0 1 1 12 18a4 4 0 1 1-7.967-.517",key:"1gq6am"}],["path",{d:"M6 18a4 4 0 0 1-2-7.464",key:"k1g0md"}],["path",{d:"M6.003 5.125a4 4 0 0 0-2.526 5.77",key:"q97ue3"}]]);const Oa=Ae("check",[["path",{d:"M20 6 9 17l-5-5",key:"1gmf2c"}]]);const Fa=Ae("circle-dollar-sign",[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["path",{d:"M16 8h-6a2 2 0 1 0 0 4h4a2 2 0 1 1 0 4H8",key:"1h4pet"}],["path",{d:"M12 18V6",key:"zqpxq5"}]]);const _i=Ae("circle",[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}]]);const Na=Ae("coins",[["path",{d:"M13.744 17.736a6 6 0 1 1-7.48-7.48",key:"bq4yh3"}],["path",{d:"M15 6h1v4",key:"11y1tn"}],["path",{d:"m6.134 14.768.866-.5 2 3.464",key:"17snzx"}],["circle",{cx:"16",cy:"8",r:"6",key:"14bfc9"}]]);const Ra=Ae("fingerprint-pattern",[["path",{d:"M12 10a2 2 0 0 0-2 2c0 1.02-.1 2.51-.26 4",key:"1nerag"}],["path",{d:"M14 13.12c0 2.38 0 6.38-1 8.88",key:"o46ks0"}],["path",{d:"M17.29 21.02c.12-.6.43-2.3.5-3.02",key:"ptglia"}],["path",{d:"M2 12a10 10 0 0 1 18-6",key:"ydlgp0"}],["path",{d:"M2 16h.01",key:"1gqxmh"}],["path",{d:"M21.8 16c.2-2 .131-5.354 0-6",key:"drycrb"}],["path",{d:"M5 19.5C5.5 18 6 15 6 12a6 6 0 0 1 .34-2",key:"1tidbn"}],["path",{d:"M8.65 22c.21-.66.45-1.32.57-2",key:"13wd9y"}],["path",{d:"M9 6.8a6 6 0 0 1 9 5.2v2",key:"1fr1j5"}]]);const Ba=Ae("inbox",[["polyline",{points:"22 12 16 12 14 15 10 15 8 12 2 12",key:"o97t9d"}],["path",{d:"M5.45 5.11 2 12v6a2 2 0 0 0 2 2h16a2 2 0 0 0 2-2v-6l-3.45-6.89A2 2 0 0 0 16.76 4H7.24a2 2 0 0 0-1.79 1.11z",key:"oot6mr"}]]);const Da=Ae("loader-circle",[["path",{d:"M21 12a9 9 0 1 1-6.219-8.56",key:"13zald"}]]);const Ha=Ae("messages-square",[["path",{d:"M16 10a2 2 0 0 1-2 2H6.828a2 2 0 0 0-1.414.586l-2.202 2.202A.71.71 0 0 1 2 14.286V4a2 2 0 0 1 2-2h10a2 2 0 0 1 2 2z",key:"1n2ejm"}],["path",{d:"M20 9a2 2 0 0 1 2 2v10.286a.71.71 0 0 1-1.212.502l-2.202-2.202A2 2 0 0 0 17.172 19H10a2 2 0 0 1-2-2v-1",key:"1qfcsi"}]]);const ja=Ae("package",[["path",{d:"M11 21.73a2 2 0 0 0 2 0l7-4A2 2 0 0 0 21 16V8a2 2 0 0 0-1-1.73l-7-4a2 2 0 0 0-2 0l-7 4A2 2 0 0 0 3 8v8a2 2 0 0 0 1 1.73z",key:"1a0edw"}],["path",{d:"M12 22V12",key:"d0xqtd"}],["polyline",{points:"3.29 7 12 12 20.71 7",key:"ousv84"}],["path",{d:"m7.5 4.27 9 5.15",key:"1c824w"}]]);const La=Ae("pen-line",[["path",{d:"M13 21h8",key:"1jsn5i"}],["path",{d:"M21.174 6.812a1 1 0 0 0-3.986-3.987L3.842 16.174a2 2 0 0 0-.5.83l-1.321 4.352a.5.5 0 0 0 .623.622l4.353-1.32a2 2 0 0 0 .83-.497z",key:"1a8usu"}]]);const Ua=Ae("receipt",[["path",{d:"M12 17V7",key:"pyj7ub"}],["path",{d:"M16 8h-6a2 2 0 0 0 0 4h4a2 2 0 0 1 0 4H8",key:"1elt7d"}],["path",{d:"M4 3a1 1 0 0 1 1-1 1.3 1.3 0 0 1 .7.2l.933.6a1.3 1.3 0 0 0 1.4 0l.934-.6a1.3 1.3 0 0 1 1.4 0l.933.6a1.3 1.3 0 0 0 1.4 0l.933-.6a1.3 1.3 0 0 1 1.4 0l.934.6a1.3 1.3 0 0 0 1.4 0l.933-.6A1.3 1.3 0 0 1 19 2a1 1 0 0 1 1 1v18a1 1 0 0 1-1 1 1.3 1.3 0 0 1-.7-.2l-.933-.6a1.3 1.3 0 0 0-1.4 0l-.934.6a1.3 1.3 0 0 1-1.4 0l-.933-.6a1.3 1.3 0 0 0-1.4 0l-.933.6a1.3 1.3 0 0 1-1.4 0l-.934-.6a1.3 1.3 0 0 0-1.4 0l-.933.6a1.3 1.3 0 0 1-.7.2 1 1 0 0 1-1-1z",key:"ycz6yz"}]]);const Ga=Ae("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"}]]);const Va=Ae("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"}]]);const Bo=Ae("square-terminal",[["path",{d:"m7 11 2-2-2-2",key:"1lz0vl"}],["path",{d:"M11 13h4",key:"1p7l4v"}],["rect",{width:"18",height:"18",x:"3",y:"3",rx:"2",ry:"2",key:"1m3agn"}]]);const Ya=Ae("text-align-start",[["path",{d:"M21 5H3",key:"1fi0y6"}],["path",{d:"M15 12H3",key:"6jk70r"}],["path",{d:"M17 19H3",key:"z6ezky"}]]);const Wa=Ae("timer",[["line",{x1:"10",x2:"14",y1:"2",y2:"2",key:"14vaq8"}],["line",{x1:"12",x2:"15",y1:"14",y2:"11",key:"17fdiu"}],["circle",{cx:"12",cy:"14",r:"8",key:"1e1u0o"}]]);const Ka=Ae("user-round",[["circle",{cx:"12",cy:"8",r:"5",key:"1hypcn"}],["path",{d:"M20 21a8 8 0 0 0-16 0",key:"rfgkzh"}]]);const Qa=Ae("x",[["path",{d:"M18 6 6 18",key:"1bl5f8"}],["path",{d:"m6 6 12 12",key:"d8bk6v"}]]),za={class:"dots"},qa=["title"],Xa=["title"],$a={key:1,class:"faint"},Ja=vt({__name:"PhaseDots",props:{phases:{},max:{default:6}},setup(e){const t=e,s=$(()=>t.phases.toSorted((o,r)=>(o.seq??0)-(r.seq??0))),n={success:"●",running:"◐",queued:"○",fail:"✗"},i=$(()=>{const o=s.value;if(o.length<=t.max)return{visible:o,hidden:0};const r=o.filter(A=>A.status==="fail"),l=o.filter(A=>A.status!=="fail"),c=Math.max(0,t.max-r.length),d=[...r,...l.slice(0,c)].toSorted((A,S)=>(A.seq??0)-(S.seq??0)),u=new Set(d.map(A=>A.phase_id));return{visible:d,hidden:o.length-u.size}});return(o,r)=>(m(),_("span",za,[(m(!0),_(z,null,we(i.value.visible,l=>(m(),_("span",{key:l.phase_id,class:de(["d",l.status]),title:`${l.name} — ${l.status}`},I(n[l.status??""]??"○"),11,qa))),128)),i.value.hidden?(m(),_("span",{key:0,class:"d-more mono",title:`${i.value.hidden} more phase${i.value.hidden===1?"":"s"}`},"+"+I(i.value.hidden),9,Xa)):D("",!0),s.value.length?D("",!0):(m(),_("span",$a,"—"))]))}}),_t=(e,t)=>{const s=e.__vccOpts||e;for(const[n,i]of t)s[n]=i;return s},Za=_t(Ja,[["__scopeId","data-v-466cf629"]]),ec=["href"],tc=["title"],sc={class:"c run mono"},nc=["title"],ic=["title"],oc={class:"c phases"},rc={class:"mono dim"},lc={class:"c num cost mono"},ac={class:"c num runtime mono"},cc={class:"c num tokens mono"},uc={class:"meta mono dim"},fc=vt({__name:"SessionRow",props:{session:{},nowMs:{}},emits:["archived"],setup(e,{emit:t}){const s=e,n=t;async function i(H){H.preventDefault(),H.stopPropagation(),n("archived",s.session.adw_id);try{await pa(s.session.adw_id)}catch{n("archived","")}}const o=$(()=>s.session.status==="running"),r=$(()=>s.session.phases??[]),l=$(()=>r.value.length),c=$(()=>r.value.filter(H=>H.status==="success").length),d=$(()=>{const H=s.session,U=ae(H.started_at);if(!Number.isFinite(U))return NaN;const ne=o.value?s.nowMs:ae(H.ended_at);return(Number.isFinite(ne)?ne:s.nowMs)-U}),u=$(()=>No(s.session.total_cost)),A=$(()=>Oo(d.value)),S=$(()=>Fo(s.session.total_tokens)),N=$(()=>`${jt(s.session.started_at)} · ${c.value}/${l.value} phases · ${A.value} · ${u.value} · ${S.value}`);return(H,U)=>(m(),_("a",{class:de(["row",e.session.status]),href:G(Cs)(e.session.adw_id)},[h("span",{class:"c departed mono dim",title:e.session.started_at??""},I(G(jt)(e.session.started_at)),9,tc),h("span",sc,I(e.session.adw_id),1),h("span",{class:"c service",title:e.session.adw_name??""},I(e.session.adw_name??"—"),9,nc),h("span",{class:"c request",title:e.session.request??""},I(e.session.request),9,ic),h("span",oc,[h("span",rc,I(c.value)+"/"+I(l.value),1),se(Za,{phases:r.value,max:4},null,8,["phases"])]),h("span",{class:de(["c status",e.session.status??"fail"])},I(e.session.status??"fail"),3),h("span",lc,I(u.value),1),h("span",ac,I(A.value),1),h("span",cc,I(S.value),1),h("button",{class:"act",type:"button","aria-label":"Archive — remove this run from review",title:"Archive — remove this run from review",onClick:i},[se(G(Ca),{size:17,"stroke-width":2})]),h("span",uc,I(N.value),1)],10,ec))}}),dc=_t(fc,[["__scopeId","data-v-4c0606e6"]]),hc={class:"sessions"},pc={key:0,class:"error-bar"},Ac={key:1,class:"tt"},gc={class:"tt-caption"},mc={class:"dim mono"},vc={key:2,class:"empty-state"},yc={key:3,class:"empty-state"},_c=vt({__name:"SessionsList",setup(e){const t=yr([]),s=Se(null),n=Se(!1),i=Se(Date.now());let o,r=!1;async function l(){if(!r){r=!0;try{t.value=await fa(),i.value=Date.now(),s.value=null,n.value=!0}catch(u){s.value=u instanceof Error?u.message:String(u)}finally{r=!1}}}On(()=>{l(),o=setInterval(()=>{l()},500)}),js(()=>clearInterval(o));function c(u){if(!u){l();return}t.value=t.value.filter(A=>A.adw_id!==u)}const d=$(()=>t.value.toSorted((u,A)=>(ae(A.started_at)||0)-(ae(u.started_at)||0)));return(u,A)=>(m(),_("div",hc,[s.value?(m(),_("div",pc,"api unreachable — retrying "+I(s.value),1)):D("",!0),d.value.length?(m(),_("div",Ac,[h("div",gc,[A[0]||(A[0]=h("span",{class:"tt-title"},"departures",-1)),h("span",mc,I(d.value.length)+" recorded",1)]),A[1]||(A[1]=Mo('<div class="tt-head" aria-hidden="true" data-v-94516561><span class="h" data-v-94516561>departed</span><span class="h" data-v-94516561>run</span><span class="h" data-v-94516561>service</span><span class="h" data-v-94516561>request</span><span class="h" data-v-94516561>phases</span><span class="h" data-v-94516561>status</span><span class="h h-num" data-v-94516561>cost</span><span class="h h-num" data-v-94516561>runtime</span><span class="h h-num" data-v-94516561>tokens</span><span class="h" data-v-94516561></span></div>',1)),(m(!0),_(z,null,we(d.value,S=>(m(),me(dc,{key:S.adw_id,session:S,"now-ms":i.value,onArchived:c},null,8,["session","now-ms"]))),128))])):n.value?(m(),_("div",vc,"no sessions yet — run an ADW to see it here")):s.value?D("",!0):(m(),_("div",yc,"loading sessions…"))]))}}),bc=_t(_c,[["__scopeId","data-v-94516561"]]),wc="data:image/png;base64,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",kc="data:image/png;base64,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",xc="data:image/png;base64,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",Sc="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAC8AAAAwCAYAAACBpyPiAAAABGdBTUEAALGPC/xhBQAAACBjSFJNAAB6JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAAAeGVYSWZNTQAqAAAACAAEARoABQAAAAEAAAA+ARsABQAAAAEAAABGASgAAwAAAAEAAgAAh2kABAAAAAEAAABOAAAAAAAAAEgAAAABAAAASAAAAAEAA6ABAAMAAAABAAEAAKACAAQAAAABAAAAL6ADAAQAAAABAAAAMAAAAAA5a/KTAAAACXBIWXMAAAsTAAALEwEAmpwYAAALaElEQVRoBb2aa2xUxxXH7V0/MMaAwXZwiloIaalIiiCCppXaBFraNAq0QF9ITdNCiiCGSm2U0nyiSRWiEtHQhAD5AIVQEQUjiAhVAwqQVLiPJBYQngELbPOSX9heG7/Xu/39x3du7u7etdc26kjjM3PmPP7zOjN31ulpw0zRaDTQ2to6Lj09fTqmHsrNzf1VJBJJ7+npOdjZ2fkuvE/Gjh17nfbwMF3dOfWKiors7u7u2YDfDNgqcoRyfBK7llwaDofn05h15xAM0RIgRvX29r4IqPp4tMnqyIaYjT/SPmGIboevhvO7Ab47DmQPvGoAvgN9mbwRoHuh5+F1eGWZgX3Up4IkvbS0NEg5OHxUKVhgbRcBptSCodxF+T8snyeghfEmGhsbx7DuH0NuH7nF6tGpE9SPQMvp5Gk6VIaNXdRXhEKhLyJ3ZzuEwdE4esECgN7C2Su3b98ecBl0dHRMQnYrgMMefd8ico10ZiedmYFAIH5ABl3HSAbA5+K81fHYjpOXKI/oz9i5c+eyAP4wYDRbTY5uqqSODqxEOLM/HwO2tbS0jAesXec9dOLfTO+4/hS7urqmofMqsjVetNRv0Jk3WU4lDMgjdG5Oe3v7TymvR/4U7T1eeXgvUs/uz1eytnSWxV04+zlG7cg1AGxJMgUcTQTIs9BLXhCUmwGi2ZpK9l3TdXV1o7D9OL7OI+MuMfRkL7Uwi2AAI/cDejPla2SbYIU/ojI6Hjy8EYCeg+MPKXtHrxPe+9hbDD8lAMzKPfg5jLzpAPod2J5H3bfTLpaamppceroWQTvSFN3UhtEtrjAFWhTupsHXhnR1KEfJZ1i3q2gv8uqkUmYpfQ79U+j2kmWrrLm5OT+prpYIQm9LOC7ZKWxmBJ6xBiorK0cgN5/OXvbKY+MqcuvgTbGyXsrymECnHnDApHvbvGVntEPWNgOk2cvwypiyDOH0oBWEgqn3LLQE/nsOvwleiVVua2srpq51bFM7DnbA17UhYYrr6+vz4C9F5yS0G7sn6cRSykmjFvZ0qJllSPktyiOtf5fSSy+Ibhzs5FAqRLiAfICsJPCrrBL1YvT+DA0D5ALGl9+8eTPBOO0BQM6EHkauHepN0t1P+9dgJoRF9spP4LdJAd+VWh3Wv6EyjAF7jAv49vLycmMIHXXgHSmT/MBvQDeEjddijDoVdCZj73lkqmQAWkM+KqqqeE4K0flNbNYp1N3Difq91OscmXZhjfHjTIfaeykrmoyxApSHBB69AhytAKQ2nUB2YXsPvAcpZzGi0+nUNsqNZDchr/2yRmeLMFRXV+cjV4EATZEoq+FbFlsah8TnYdp7RxtGf+g2UkBpUOAVrdBZAFDtEzOb2L8M6N9Sz4mzHQDot2n/F23dZDfBOwGWhdeuXRsH+E9pMLMEXhe8lL/Lh0IeRtVY0dTUdMjrIMVyVPoY/kJhYeFWym8Eg8F5ULMRsT86EAjcT10D4UYX+JHMzMyjt27d+h5gf0O7DrYINI22mVlZWfuLi4vfRlf3p3TaOrHbrHaT6N0NmErdjNbrlm8p/FRGvpPRuURWdNL8am+8wWgvF1VdfNI51rDivu/Vgtg+ETx/Ql7fCd79IF1t2CsxF0HD7fvTgeHfWdCW0jQgeI8NRY73sPN9eLmyIaq6+GR7Yv6TgVqo64D146V0egZA/4auCZHWPjrvWrtG3jZABX6114jK8FMBD67IdWTXKbzG21BdfACtI2umNao6E7SBFSITzgTp0L4YuzoAzSxQblGn1WYSDTZ1MmXPOWyX0DggeBkFhNb6gElykrdOoQqDa3XqQt39YA3R6fuQP0ObuSZA1Rmz7HQBsxs0yMbQC4BfsnFXG9PvFSAZ38+W9LV+j5M/pqxD7fmCgoKjBA+dtjGHXF5envbJk/DrHWO6tJmDMgBzg5jQDNIshU5HyBB6TscjIUcmhw4+pKjilXHKCaPmIyOWkcNfGSCW0IFfU64kunyZyLOd+t+ZnVnCY/VHjhyps0cXwi7xiDjLiFCjA+zwj2moQln8IsLTkyrYRM9DGNyIzDFkFPqWZGdnv4/jpcya4na3lR0kzcJOBwO2Azv6StuDvkLhXAboaQbNPShlF5m/QurIUXBMQvergfHjx2v9bZcAKRvFFdpEfVUTb8N0qByFBXRiGbKfUp6Mk004fovyNxxZLZ1UUoJcTk5ONYrHyR0ygO3RDJpdqmKlMfrX8f8RxV7V8bvGCBA7twDqipjQIqZvG7yvqG4Twu0Y3dnQ0KAT8Q/wVZ9N/iZlTZs7zVYnCZWcmea4di/fHFRx7cJ2Gp4BT2e+47YzLQtptHdnrfMr8H7kCngKyAU1O+Q9lHVLjDAqN8j9hkrk1mFXITXC5twALbZm0dXat4eZLoIJIRd/OuDsBfKzGYSZyzrWIeBNPfB2oxR7k3M86pCh/QcofOAo+R5SyJhDChn7URMdCniizjPYSASvY1ej7YBwCTyV65mF9dCJdqS8FP44OvgUsuckDDXXA0DrerALlhlRymdpu0juHAp49HVGmAsceG66GHD+AA22V804/oC6QS5AJHTN1bREYcpVdAq0pyvMoredsu4m3tSI7i6FWPzoOUSfk4NaNvrIQe8kRs1hxZV5ubujMT6WTalQqJGruXjx4mIcLEL4hIOPQBS4l/Jf8vPzDzGF+pp39dGNciNtQPcsMvZc6MLuEeq/QHelE1Wk47dhYSdPPJM/io8vISH9VoLKYTdCMGLazQpBshAcNWpUlFh6gB6W4XQZUWU1bTrAMqFfJ3zupbyPkdyEoQt0dCYyT9O2CH4Gtj4hb4G3H14DvCEn7IxhEH6PAXPFpvwPMF11DQJiJkLm+5LRq2Nkp9hG+AHVAfgKbTYiwdYkRWrp+DFRh1GF8edYIpOtvpfi5zVk9dyd0rLR5yj2tBTNWke3Q1i9NtPYsHchVCkAJH1R/ThGgIoM0fYgBvRF70YOKcBTxw/zcqBBcJeTtaE1SyeXI3eB9jDg9eGeLFQeoK3AuYnupOx+ZYFxvbXpUgRkXE8LSnqP1LLwTXqvQfaXGNIG0ge7qC5VCfdzeDoTZiG/g7KZWah2/0t6OrEOqK+GbaISvo9QLoGnjxuzQaEaoIO+D0+0ZeBgsYSUEAxpU1rjflSGNIWaNb92Z6npYLraZ7XvL6Au42uBBsHqMdNraG125GJmVTxs7E/mx9hAZixCZY6BXsqnGJ27rYNUKfpFdGoV+mfIjjkDoAnQW2FMI8d8gMB/HV6bK+wU0G9iia2lGnNVTsCCQBDBeSjYeK8T8xAjeE+CsA9D7/GAWITOMWx1Ov5FtAw/xPYcyu5oWxP6BYV23W7dEad+DVub4N1HTthDVjeGIpjFtD4LtUkdOM+0Pp7smxPBICFVT9frkbVTb/UvAVr2fE9nOQfkz2hvkAL6TfJVW1vruxRjwPpVsJFNB/So70360ewUQNbrxwBC4RzKj7A8niK/iaAuXG4CRA3yrwJkmp8Py9PjErL/RdGMOh2RLfPgZGUGTTGQCaiVUH1jDiZpXZfSuYdR6vc9nvYcBkAh054vrdTn2qfGQYP2KmBUD6QzALOTUYx5lqMtITGCYeS2ck2Y5LXjV0Z5Allr2rUL8BeoJ9yb/PRT5mEwqJ8YAaavrF10pgxHp6mXA1g/SZ5AxiY9mO5jkz8GI+ZTTg45eIrgP4GMfkHRT6EmUd+rtpRBDUcQj0H9CIwNPcNNFeA+GH1/6VQH+Tz8Ujq3kfwy9YPQaiRiHpPg7YY36JA8HPwxujifAAg9ZXvvPn09Sf63Hh0FhoSTOcb4/6MCCMX5+XSglKyL2mcnlNMB+EpVVDezBGfrHzCGim3Q9+pUHAEsg6vDRK7D07kuP8r1eQF6UfbBNoAfp/00rwONXJV9P7RT8SGZ/wGwe9pF3cnGLwAAAABJRU5ErkJggg==",Mc="data:image/png;base64,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",Ec=[[["claude","opus","sonnet","haiku"],wc],[["gemini"],kc],[["kimi","moonshot"],xc],[["gpt","openai","codex","o3","o4"],Sc],[["glm","zai","z.ai"],Mc]];function Ts(e){if(!e)return null;const t=e.toLowerCase();for(const[s,n]of Ec)if(s.some(i=>t.includes(i)))return n;return null}function Do(e){return e?e.split("/").filter(Boolean).at(-1)??e:""}function Dn(e){if(!e)return null;try{const t=JSON.parse(e);if(t&&typeof t=="object"&&!Array.isArray(t))return t}catch{}return null}function An(e){const t=Dn(e.payload_json);return!t||typeof t.tool!="string"?null:t}function Ho(e){return Dn(e.payload_json)}const Cc=["command","cmd","file_path","path","pattern","query","url","prompt","description"],bi=160;function gn(e){const t=e.replaceAll(/\s+/g," ").trim();return t.length>bi?`${t.slice(0,bi)}…`:t}function Tc(e){if(!e)return"";for(const s of Cc){const n=e[s];if(typeof n=="string"&&n.trim()!=="")return gn(n)}const t=[];for(const[s,n]of Object.entries(e))n!=null&&t.push(`${s}=${typeof n=="string"?n:JSON.stringify(n)}`);return gn(t.join(" "))}function wi(e){if(e.type==="tool_call"){const t=An(e);if(t?.tool){if(e.name?.startsWith(t.tool))return gn(e.name);const n=Tc(t.args);return n?`${t.tool}: ${n}`:t.tool}const s=Dn(e.payload_json);if(s&&typeof s.pi_event=="string")return`${e.name??"tool"} ${s.pi_event}`}return e.name??e.type??""}const Ic=vt({__name:"StatusChip",props:{status:{}},setup(e){const t={success:Oa,fail:Qa,running:Da,queued:_i};return(s,n)=>(m(),_("span",{class:de(["chip",e.status])},[(m(),me(Ls(t[e.status]??G(_i)),{class:"chip-icon",size:16,"stroke-width":2.5})),(m(),_("span",{class:"chip-label",key:e.status},I(e.status),1))],2))}}),jo=_t(Ic,[["__scopeId","data-v-fb81e248"]]),Pc=["title"],Oc={class:"stat-value"},Fc=vt({__name:"StatChip",props:{kind:{},value:{},compact:{type:Boolean}},setup(e){const t=e,s={cost:Fa,tokens:Na,runtime:Wa,read:Ta,written:La},n={cost:"Cost — dollars billed for this run, all agents combined.",tokens:"Tokens exchanged (billed) — everything sent or generated, counted once per turn. Each turn re-sends the whole conversation, so this is far larger than the conversation itself: it is spend, not size. The gap between it and read + written is cached context re-read on later turns.",runtime:"Duration — wall-clock from the first phase starting to the last one ending.",read:"Read — raw tokens the models took in: prompts, file contents and tool results, counted the first time they enter the context. Excludes cached re-reads of material already counted here.",written:"Written — tokens the models actually generated. Each one produced exactly once, so this is a true count of output."},i=$(()=>t.kind==="cost"?No(t.value):t.kind==="runtime"?Oo(t.value??NaN):Fo(t.value));return(o,r)=>(m(),_("span",{class:de(["stat",{compact:e.compact}]),title:n[e.kind]},[(m(),me(Ls(s[e.kind]),{class:"stat-icon",size:e.compact?16:17,"stroke-width":2},null,8,["size"])),h("span",Oc,I(i.value),1)],10,Pc))}}),nt=_t(Fc,[["__scopeId","data-v-d11de936"]]);function We(e){return e.replaceAll("&","&").replaceAll("<","<").replaceAll(">",">").replaceAll('"',""").replaceAll("'","'")}const Nc=/("(?:\\.|[^"\\])*")(\s*:)?|\b(true|false)\b|\b(null)\b|(-?\d+(?:\.\d+)?(?:[eE][+-]?\d+)?)/g;function Hn(e){let t="",s=0;for(const n of e.matchAll(Nc)){t+=We(e.slice(s,n.index));const[i,o,r,l,c,d]=n;o!==void 0?t+=`<span class="${r!==void 0?"j-key":"j-str"}">${We(o)}</span>${We(r??"")}`:l!==void 0?t+=`<span class="j-bool">${l}</span>`:c!==void 0?t+='<span class="j-null">null</span>':t+=`<span class="j-num">${We(d??i)}</span>`,s=(n.index??0)+i.length}return t+=We(e.slice(s)),t}function tn(e){if(!e)return"";try{return Hn(JSON.stringify(JSON.parse(e),null,2))}catch{return We(e)}}function gs(e){return e.split(/(`[^`\n]+`)/g).map((s,n)=>n%2===1?`<code>${s.slice(1,-1)}</code>`:s.replaceAll(/\*\*([^*\n]+)\*\*/g,"<strong>$1</strong>").replaceAll(/\[([^\]\n]+)\]\((https?:\/\/[^)\s]+)\)/g,'<a href="$2" target="_blank" rel="noopener noreferrer">$1</a>')).join("")}function Rc(e){const t=e.replaceAll(`\r
|
|
2
|
+
`,`
|
|
3
|
+
`).split(`
|
|
4
|
+
`),s=[];let n=0;const i=[];function o(){i.length&&(s.push(`<p>${i.map(gs).join(`
|
|
5
|
+
`)}</p>`),i.length=0)}for(;n<t.length;){const r=t[n]??"",l=We(r),c=/^\s*```(\w*)/.exec(r);if(c){o();const S=[];for(n+=1;n<t.length&&!/^\s*```/.test(t[n]??"");)S.push(t[n]??""),n+=1;n+=1;const N=S.join(`
|
|
6
|
+
`),H=(c[1]??"").toLowerCase()==="json"?Hn(N):We(N);s.push(`<pre class="md-code"><code>${H}</code></pre>`);continue}const d=/^(#{1,4})\s+(.*)$/.exec(r);if(d?.[1]&&d[2]!==void 0){o();const S=d[1].length;s.push(`<h${S}>${gs(We(d[2]))}</h${S}>`),n+=1;continue}if(/^\s*(---+|\*\*\*+)\s*$/.test(r)){o(),s.push("<hr>"),n+=1;continue}if(/^\s*>\s?/.test(l)){o();const S=[];for(;n<t.length&&/^\s*>\s?/.test(t[n]??"");)S.push(gs(We((t[n]??"").replace(/^\s*>\s?/,"")))),n+=1;s.push(`<blockquote>${S.join(`
|
|
7
|
+
`)}</blockquote>`);continue}const u=/^\s*[-*]\s+/.test(r),A=/^\s*\d+\.\s+/.test(r);if(u||A){o();const S=u?"ul":"ol",N=u?/^\s*[-*]\s+/:/^\s*\d+\.\s+/,H=[];for(;n<t.length&&N.test(t[n]??"");)H.push(`<li>${gs(We((t[n]??"").replace(N,"")))}</li>`),n+=1;s.push(`<${S}>${H.join("")}</${S}>`);continue}if(r.trim()===""){o(),n+=1;continue}i.push(l),n+=1}return o(),s.join(`
|
|
8
|
+
`)}const Bc={class:"dsec"},Dc={class:"chev"},Hc={class:"dsec-title"},jc={key:1,class:"dsec-count dim"},Lc={key:0,class:"dsec-body"},Uc=vt({__name:"DetailSection",props:{title:{},icon:{},count:{},open:{type:Boolean}},emits:["toggle"],setup(e){return(t,s)=>(m(),_("section",Bc,[h("button",{class:"dsec-head",onClick:s[0]||(s[0]=n=>t.$emit("toggle"))},[h("span",Dc,I(e.open?"▾":"▸"),1),e.icon?(m(),me(Ls(e.icon),{key:0,class:"dsec-icon",size:17,"stroke-width":2})):D("",!0),h("span",Hc,I(e.title),1),e.count!=null?(m(),_("span",jc,"("+I(e.count)+")",1)):D("",!0)]),e.open?(m(),_("div",Lc,[qr(t.$slots,"default",{},void 0)])):D("",!0)]))}}),Et=_t(Uc,[["__scopeId","data-v-5b638432"]]),Gc={class:"detail"},Vc={class:"d-head"},Yc={class:"d-main"},Wc={class:"d-name"},Kc={class:"d-tags"},Qc={class:"tag"},zc={class:"tag-v"},qc={class:"tag"},Xc={class:"tag-v"},$c={class:"tag"},Jc={class:"tag-v"},Zc={key:0,class:"error-bar d-error"},eu={class:"d-grid"},tu={class:"d-col"},su={class:"d-request"},nu={class:"cfg"},iu={key:0,class:"cfg-row"},ou={class:"cfg-chip"},ru={key:1,class:"cfg-row"},lu=["title"],au=["src"],cu={key:2,class:"cfg-row"},uu={class:"cfg-chip"},fu={key:3,class:"cfg-row"},du={key:0,class:"cfg-v"},hu={key:1,class:"cfg-chips"},pu={key:4,class:"cfg-row"},Au={key:0,class:"cfg-v dim"},gu={key:1,class:"cfg-chips"},mu={key:5,class:"cfg-row"},vu={class:"cfg-v"},yu={key:6,class:"cfg-row"},_u={class:"cfg-chip"},bu={class:"d-desc"},wu={key:0,class:"faint"},ku={key:1,class:"faint"},xu={key:0,class:"faint"},Su=["onClick"],Mu={class:"chev"},Eu={class:"prompt-title"},Cu={class:"dim"},Tu={key:0,class:"prompt-body"},Iu={class:"prompt-tools"},Pu=["onClick"],Ou=["onClick"],Fu={key:0,class:"prompt-raw"},Nu=["innerHTML"],Ru={key:0,class:"faint"},Bu=["onClick"],Du={class:"chev"},Hu={class:"gate-mark"},ju={class:"gate-name"},Lu={class:"tag-v"},Uu={class:"tag"},Gu={class:"tag-v"},Vu={class:"dim gate-time"},Yu={key:0,class:"gate-checks"},Wu={key:0,class:"faint"},Ku={class:"check-mark"},Qu={class:"check-item"},zu={key:0,class:"check-note dim"},qu={key:1,class:"check-note-block"},Xu={key:1,class:"violations"},$u={class:"gate-line"},Ju={class:"gate-mark"},Zu={class:"gate-name"},ef={class:"tag"},tf={class:"tag-v"},sf={class:"dim gate-time"},nf={key:0,class:"violations"},of={class:"usage"},rf=["title"],lf={class:"u-k"},af={class:"u-n"},cf={class:"u-c"},uf={key:0,class:"faint u-note"},ff={key:0,class:"faint"},df={class:"output-line"},hf={class:"output-type"},pf={class:"tag"},Af={class:"tag-v"},gf={class:"tag"},mf={class:"tag-v"},vf=["innerHTML"],yf={class:"d-col"},_f={key:0,class:"faint"},bf=["onClick"],wf={class:"e-time dim"},kf=["title"],xf={class:"e-extra"},Sf={key:0,class:"payload-panel"},Mf={class:"p-meta"},Ef={class:"p-tool"},Cf={key:0,class:"t-red"},Tf=["innerHTML"],If={class:"p-pre"},Pf=["innerHTML"],Of=["innerHTML"],Ff={key:3,class:"faint"},Nf=vt({__name:"PhaseDetail",props:{phase:{},events:{},envelopes:{},gates:{}},emits:["close"],setup(e){const t=e,s=$(()=>t.events.filter(b=>b.phase_id===t.phase.phase_id).sort((b,v)=>b.rowid-v.rowid)),n=$(()=>t.gates.filter(b=>b.phase_id===t.phase.phase_id).sort((b,v)=>(b.attempt??0)-(v.attempt??0)||b.id-v.id)),i=$(()=>t.envelopes.filter(b=>b.phase_id===t.phase.phase_id).sort((b,v)=>(b.attempt??0)-(v.attempt??0))),o=$(()=>{if(t.phase.kind!=="agent")return null;const b=s.value.find(v=>v.type==="agent_start");return b?Ho(b):null}),r=$(()=>{if(t.phase.kind!=="agent")return null;const b=s.value.find(re=>re.type==="agent_end");if(!b)return null;let v={};try{v=JSON.parse(b.payload_json??"{}")}catch{}const p=v.usage;if(!p)return{partial:!0,rows:[{label:"total",tokens:b.tokens??0,cost:v.cost??0,kind:"total"}]};const Y=[{label:"input",tokens:p.input_tokens,cost:p.input_cost},{label:"output",tokens:p.output_tokens,cost:p.output_cost}];if(p.reasoning_tokens){const re=p.output_tokens?p.output_cost*p.reasoning_tokens/p.output_tokens:0;Y.push({label:"thinking",tokens:p.reasoning_tokens,cost:re,kind:"nested",title:"Thinking tokens — part of output above, billed at the output rate. Not added to the total."})}return Y.push({label:"cache read",tokens:p.cache_read_tokens,cost:p.cache_read_cost},{label:"cache write",tokens:p.cache_write_tokens,cost:p.cache_write_cost},{label:"total",tokens:p.total_tokens,cost:p.total_cost,kind:"total"}),{rows:Y,partial:!1}}),l=new Intl.NumberFormat("en-US");function c(b){return b?b<1e-4?"<$0.0001":`$${b.toFixed(4)}`:"$0"}const d=$(()=>{if(t.phase.kind!=="engineer")return null;for(const b of s.value)if(!(b.type!=="log"||!b.payload_json))try{const v=JSON.parse(b.payload_json);if(v&&typeof v=="object"&&"input"in v){const p=v.input;if(typeof p=="string"&&p.trim())return p}}catch{}return null}),u=$(()=>{const b=ae(t.phase.started_at);if(!Number.isFinite(b))return NaN;const v=t.phase.status==="running"?Date.now():ae(t.phase.ended_at);return Number.isFinite(v)?v-b:NaN});function A(b){try{const v=JSON.parse(b.violations_json??"[]");if(Array.isArray(v))return v.map(p=>typeof p=="string"?p:JSON.stringify(p))}catch{}return b.violations_json?[b.violations_json]:[]}function S(b){const v=b.checks_json;if(v==null)return null;try{const p=JSON.parse(v);return Array.isArray(p)?p.filter(Y=>Y!==null&&typeof Y=="object").map(Y=>({item:typeof Y.item=="string"?Y.item:"",ok:Y.ok===!0,note:typeof Y.note=="string"?Y.note:""})):null}catch{return null}}function N(b){const v=b.filter(p=>!p.ok).length;return v>0?`${v} of ${b.length} failed`:String(b.length)}const H=kt(new Set);function U(b){H.has(b)?H.delete(b):H.add(b)}function ne(b){const v=ae(b.started_at),p=ae(b.ended_at);if(Number.isFinite(v)&&Number.isFinite(p))return p-v;if(b.type==="tool_call"){const Y=An(b);if(Y?.duration_ms!=null)return Y.duration_ms}return NaN}const J=kt(new Set);function X(b){J.has(b.event_id)?J.delete(b.event_id):J.add(b.event_id)}function q(b){return b.type==="tool_call"?An(b):null}function j(b){return Hn(JSON.stringify(b?.args??{},null,2))}const he=[],fe=kt(new Set(he));$t(()=>t.phase.phase_id,()=>{fe.clear();for(const b of he)fe.add(b);H.clear()});function ge(b){fe.has(b)?fe.delete(b):fe.add(b)}const Ue={gate_fail:"t-red",error:"t-red",gate_pass:"t-green"},Ge=Se(null),ve=Se("idle"),He=new Map,ye=kt(new Set),Be=kt(new Set);let lt;$t(()=>[t.phase.adw_id,t.phase.owner,t.phase.kind],async([b,v,p])=>{const Y=p==="agent"&&v?`${b}:${v}`:null;if(Y===lt)return;if(lt=Y,ye.clear(),Be.clear(),Y===null||!v){Ge.value=null,ve.value="idle";return}const re=He.get(Y);if(re){Ge.value=re,ve.value="ready";return}ve.value="loading";try{const Pe=await Aa(b,v);He.set(Y,Pe),Ge.value=Pe,ve.value="ready"}catch{ve.value="error"}},{immediate:!0});const at=$(()=>{const b=Ge.value;if(!b)return[];const v=[];for(const[p,Y,re]of[["system","system prompt",b.system],["user","user prompt",b.user]])re!=null&&v.push({id:p,title:Y,text:re,html:Rc(re),lines:re.split(`
|
|
9
|
+
`).length});return v});function be(b){ye.has(b)?ye.delete(b):ye.add(b)}return(b,v)=>(m(),_("section",Gc,[h("header",Vc,[h("div",Yc,[h("span",Wc,I(e.phase.name),1),se(jo,{status:e.phase.status??"queued"},null,8,["status"]),Number.isFinite(u.value)?(m(),me(nt,{key:0,kind:"runtime",value:u.value},null,8,["value"])):D("",!0)]),h("div",Kc,[h("span",Qc,[v[8]||(v[8]=h("span",{class:"tag-k"},"owner",-1)),h("span",zc,I(e.phase.owner??"—"),1)]),h("span",qc,[v[9]||(v[9]=h("span",{class:"tag-k"},"kind",-1)),h("span",Xc,I(e.phase.kind??"—"),1)]),h("span",$c,[v[10]||(v[10]=h("span",{class:"tag-k"},"attempt",-1)),h("span",Jc,I(e.phase.attempt??0)+"/"+I(e.phase.retries??0),1)])]),h("button",{class:"close",title:"close",onClick:v[0]||(v[0]=p=>b.$emit("close"))},"✕")]),e.phase.error?(m(),_("div",Zc,I(e.phase.error),1)):D("",!0),h("div",eu,[h("div",tu,[d.value?(m(),me(Et,{key:0,title:"request",icon:G(Ba),open:fe.has("request"),onToggle:v[1]||(v[1]=p=>ge("request"))},{default:bt(()=>[h("p",su,I(d.value),1)]),_:1},8,["icon","open"])):D("",!0),o.value?(m(),me(Et,{key:1,title:"agent config",icon:G(Va),open:fe.has("config"),onToggle:v[2]||(v[2]=p=>ge("config"))},{default:bt(()=>[h("div",nu,[o.value.coding_agent?(m(),_("div",iu,[v[11]||(v[11]=h("span",{class:"cfg-k"},"coding agent",-1)),h("span",ou,[se(G(Bo),{class:"cfg-icon",size:18,"stroke-width":2}),ht(" "+I(o.value.coding_agent),1)])])):D("",!0),o.value.model?(m(),_("div",ru,[v[12]||(v[12]=h("span",{class:"cfg-k"},"model",-1)),h("span",{class:"cfg-chip",title:o.value.model},[G(Ts)(o.value.model)?(m(),_("img",{key:0,class:"cfg-model-icon",src:G(Ts)(o.value.model),alt:""},null,8,au)):D("",!0),ht(" "+I(G(Do)(o.value.model)),1)],8,lu)])):D("",!0),o.value.thinking?(m(),_("div",cu,[v[13]||(v[13]=h("span",{class:"cfg-k"},"thinking",-1)),h("span",uu,[se(G(Pa),{class:"cfg-icon",size:18,"stroke-width":2}),ht(" "+I(o.value.thinking),1)])])):D("",!0),o.value.tools!==void 0?(m(),_("div",fu,[v[14]||(v[14]=h("span",{class:"cfg-k"},"tools",-1)),o.value.tools===null?(m(),_("span",du,"all tools")):(m(),_("span",hu,[(m(!0),_(z,null,we(o.value.tools,p=>(m(),_("span",{key:p,class:"cfg-chip"},I(p),1))),128))]))])):D("",!0),o.value.harness_engineering!==void 0?(m(),_("div",pu,[v[15]||(v[15]=h("span",{class:"cfg-k"},"harness",-1)),o.value.harness_engineering?.length?(m(),_("span",gu,[(m(!0),_(z,null,we(o.value.harness_engineering,p=>(m(),_("span",{key:p,class:"cfg-chip"},I(p),1))),128))])):(m(),_("span",Au,"none"))])):D("",!0),o.value.purpose?(m(),_("div",mu,[v[16]||(v[16]=h("span",{class:"cfg-k"},"purpose",-1)),h("span",vu,I(o.value.purpose),1)])):D("",!0),o.value.session_id?(m(),_("div",yu,[v[17]||(v[17]=h("span",{class:"cfg-k"},"session",-1)),h("span",_u,[se(G(Ra),{class:"cfg-icon",size:18,"stroke-width":2}),ht(" "+I(o.value.session_id),1)])])):D("",!0)])]),_:1},8,["icon","open"])):D("",!0),e.phase.description?(m(),me(Et,{key:2,title:"description",icon:G(Ya),open:fe.has("description"),onToggle:v[3]||(v[3]=p=>ge("description"))},{default:bt(()=>[h("p",bu,I(e.phase.description),1)]),_:1},8,["icon","open"])):D("",!0),e.phase.kind==="agent"?(m(),me(Et,{key:3,title:"compiled prompts",icon:G(Ha),count:ve.value==="ready"?at.value.length:null,open:fe.has("prompts"),onToggle:v[4]||(v[4]=p=>ge("prompts"))},{default:bt(()=>[ve.value==="loading"?(m(),_("div",wu,"loading prompts…")):ve.value==="error"?(m(),_("div",ku,"prompts unavailable")):ve.value==="ready"?(m(),_(z,{key:2},[at.value.length?D("",!0):(m(),_("div",xu,"no compiled prompts recorded")),(m(!0),_(z,null,we(at.value,p=>(m(),_("div",{key:p.id,class:"prompt-panel"},[h("button",{class:"prompt-head",onClick:Y=>be(p.id)},[h("span",Mu,I(ye.has(p.id)?"▾":"▸"),1),h("span",Eu,I(p.title),1),h("span",Cu,I(p.lines)+" lines",1)],8,Su),ye.has(p.id)?(m(),_("div",Tu,[h("div",Iu,[h("button",{class:de({active:!Be.has(p.id)}),onClick:Y=>Be.delete(p.id)}," rendered ",10,Pu),h("button",{class:de({active:Be.has(p.id)}),onClick:Y=>Be.add(p.id)}," raw ",10,Ou)]),Be.has(p.id)?(m(),_("pre",Fu,I(p.text),1)):(m(),_("div",{key:1,class:"md",innerHTML:p.html},null,8,Nu))])):D("",!0)]))),128))],64)):D("",!0)]),_:1},8,["icon","count","open"])):D("",!0),se(Et,{title:"gates",icon:G(Ga),count:n.value.length,open:fe.has("gates"),onToggle:v[5]||(v[5]=p=>ge("gates"))},{default:bt(()=>[n.value.length?D("",!0):(m(),_("div",Ru,"no gate results")),(m(!0),_(z,null,we(n.value,p=>(m(),_("div",{key:p.id,class:de(["gate",p.passed?"pass":"fail"])},[S(p)?(m(),_(z,{key:0},[h("button",{class:"gate-line gate-toggle",onClick:Y=>U(p.id)},[h("span",Du,I(H.has(p.id)?"▾":"▸"),1),h("span",Hu,I(p.passed?"✓":"✗"),1),h("span",ju,I(p.gate),1),h("span",{class:de(["tag",{"tag-fail":!p.passed}])},[v[18]||(v[18]=h("span",{class:"tag-k"},"checks",-1)),h("span",Lu,I(N(S(p)??[])),1)],2),h("span",Uu,[v[19]||(v[19]=h("span",{class:"tag-k"},"attempt",-1)),h("span",Gu,I(p.attempt??0),1)]),h("span",Vu,I(G(jt)(p.created_at)),1)],8,Bu),H.has(p.id)?(m(),_("div",Yu,[S(p)?.length?D("",!0):(m(),_("div",Wu," nothing to check — the gate inspected no items ")),(m(!0),_(z,null,we(S(p),(Y,re)=>(m(),_("div",{key:re,class:de(["gate-check",Y.ok?"pass":"fail"])},[h("span",Ku,I(Y.ok?"✓":"✗"),1),h("span",Qu,I(Y.item),1),Y.note&&!Y.note.includes(`
|
|
10
|
+
`)?(m(),_("span",zu,I(Y.note),1)):Y.note?(m(),_("pre",qu,I(Y.note),1)):D("",!0)],2))),128)),!p.passed&&A(p).length?(m(),_("ul",Xu,[(m(!0),_(z,null,we(A(p),(Y,re)=>(m(),_("li",{key:re},I(Y),1))),128))])):D("",!0)])):D("",!0)],64)):(m(),_(z,{key:1},[h("div",$u,[h("span",Ju,I(p.passed?"✓":"✗"),1),h("span",Zu,I(p.gate),1),h("span",ef,[v[20]||(v[20]=h("span",{class:"tag-k"},"attempt",-1)),h("span",tf,I(p.attempt??0),1)]),h("span",sf,I(G(jt)(p.created_at)),1)]),A(p).length?(m(),_("ul",nf,[(m(!0),_(z,null,we(A(p),(Y,re)=>(m(),_("li",{key:re},I(Y),1))),128))])):D("",!0)],64))],2))),128))]),_:1},8,["icon","count","open"]),r.value?(m(),me(Et,{key:4,title:"cost",icon:G(Ua),open:fe.has("cost"),onToggle:v[6]||(v[6]=p=>ge("cost"))},{default:bt(()=>[h("table",of,[v[21]||(v[21]=h("thead",null,[h("tr",null,[h("th",{class:"u-k"}),h("th",{class:"u-n"},"tokens"),h("th",{class:"u-c"},"cost")])],-1)),h("tbody",null,[(m(!0),_(z,null,we(r.value.rows,p=>(m(),_("tr",{key:p.label,class:de(p.kind?`u-${p.kind}`:void 0),title:p.title},[h("td",lf,I(p.label),1),h("td",af,I(G(l).format(p.tokens)),1),h("td",cf,I(c(p.cost)),1)],10,rf))),128))])]),r.value.partial?(m(),_("p",uf," this run predates the per-component breakdown — only the total was recorded ")):D("",!0)]),_:1},8,["icon","open"])):D("",!0),se(Et,{title:"outputs",icon:G(ja),count:i.value.length,open:fe.has("outputs"),onToggle:v[7]||(v[7]=p=>ge("outputs"))},{default:bt(()=>[i.value.length?D("",!0):(m(),_("div",ff,"no outputs")),(m(!0),_(z,null,we(i.value,p=>(m(),_("div",{key:p.envelope_id,class:"output"},[h("div",df,[h("span",hf,I(p.output_type),1),h("span",pf,[v[22]||(v[22]=h("span",{class:"tag-k"},"agent",-1)),h("span",Af,I(p.agent??"—"),1)]),h("span",gf,[v[23]||(v[23]=h("span",{class:"tag-k"},"attempt",-1)),h("span",mf,I(p.attempt??0),1)]),h("span",{class:de(["output-valid",p.valid?"pass":"fail"])},I(p.valid?"valid":"invalid"),3)]),h("pre",{innerHTML:G(tn)(p.payload_json)},null,8,vf)]))),128))]),_:1},8,["icon","count","open"])]),h("div",yf,[h("h3",null,[se(G(Ea),{class:"h3-icon",size:19,"stroke-width":2}),ht(" events ("+I(s.value.length)+")",1)]),s.value.length?D("",!0):(m(),_("div",_f,"no events")),(m(!0),_(z,null,we(s.value,p=>(m(),_("div",{key:p.event_id,class:"event"},[h("button",{class:de(["event-row",{open:J.has(p.event_id)}]),onClick:Y=>X(p)},[h("span",wf,I(G(jt)(p.started_at)),1),h("span",{class:de(["e-type",Ue[p.type??""]])},I(p.type),3),h("span",{class:de(["e-name",{"t-red":p.type==="tool_call"&&!G(Ro)(p.payload_json)}]),title:G(wi)(p)},I(G(wi)(p)),11,kf),h("span",xf,[Number.isFinite(ne(p))?(m(),me(nt,{key:0,kind:"runtime",compact:"",value:ne(p)},null,8,["value"])):D("",!0),p.tokens?(m(),me(nt,{key:1,kind:"tokens",compact:"",value:p.tokens},null,8,["value"])):D("",!0)])],10,bf),J.has(p.event_id)?(m(),_("div",Sf,[q(p)?(m(),_(z,{key:0},[h("div",Mf,[h("span",Ef,I(q(p)?.tool),1),q(p)?.ok===!1?(m(),_("span",Cf,"failed")):D("",!0),q(p)?.duration_ms!=null?(m(),me(nt,{key:1,kind:"runtime",compact:"",value:q(p)?.duration_ms},null,8,["value"])):D("",!0)]),v[25]||(v[25]=h("h4",null,"args",-1)),h("pre",{class:"p-pre",innerHTML:j(q(p))},null,8,Tf),q(p)?.result_snippet?(m(),_(z,{key:0},[v[24]||(v[24]=h("h4",null,"result",-1)),h("pre",If,I(q(p)?.result_snippet),1)],64)):D("",!0)],64)):p.type==="tool_call"&&p.payload_json?(m(),_(z,{key:1},[v[26]||(v[26]=h("div",{class:"faint"},"no detail available — legacy event payload",-1)),h("pre",{class:"p-pre",innerHTML:G(tn)(p.payload_json)},null,8,Pf)],64)):p.payload_json?(m(),_(z,{key:2},[v[27]||(v[27]=h("h4",null,"payload",-1)),h("pre",{class:"p-pre",innerHTML:G(tn)(p.payload_json)},null,8,Of)],64)):(m(),_("div",Ff,"no payload"))])):D("",!0)]))),128))])])]))}}),Rf=_t(Nf,[["__scopeId","data-v-b072286b"]]),Bf={class:"trace"},Df={key:0,class:"error-bar"},Hf={key:1,class:"run-strip"},jf=["title"],Lf={class:"dim mono"},Uf={class:"run-stats"},Gf={key:2,class:"waterfall"},Vf={class:"row axis-row"},Yf={class:"track"},Wf={class:"label"},Kf={class:"lane-name"},Qf={class:"tno mono"},zf=["title"],qf=["src"],Xf=["title"],$f={class:"ctx-head"},Jf={class:"ctx-pct"},Zf={class:"ctx-bar"},ed={class:"track"},td=["title","onClick"],sd={class:"b-top"},nd={class:"b-name"},id={class:"b-desc"},od=["title","onClick"],rd={class:"b-top"},ld={class:"b-name"},ad={key:3,class:"empty-state"},cd={key:4,class:"empty-state"},ud=24,fd=3.5,dd=vt({__name:"SessionTrace",props:{adwId:{},phaseId:{}},setup(e){const t=e,s=Se(null),n=Se([]),i=Se([]),o=Se({read:0,written:0}),r=Se([]),l=Se([]),c=Se([]),d=Se(null),u=Se(!1),A=Se(Date.now());let S=0,N=!1,H;const U=new Set(["gate_pass","gate_fail","handoff","agent_end","phase_end","error"]);async function ne(){if(!N){N=!0;try{const M=await da(t.adwId);s.value=M.session,n.value=M.phases.toSorted((R,L)=>(R.seq??0)-(L.seq??0)),i.value=M.agents,o.value=M.usage;const E=[];let O;do O=await ha(t.adwId,S,1e3),S=Math.max(S,O.cursor),E.push(...O.events);while(O.has_more);if(E.length&&(r.value=[...r.value,...E]),!u.value||E.some(R=>R.type!==null&&U.has(R.type))){const[R,L]=await Promise.all([ga(t.adwId),ma(t.adwId)]);l.value=R,c.value=L}A.value=Date.now(),d.value=null,u.value=!0}catch(M){d.value=M instanceof Error?M.message:String(M)}finally{N=!1}}}On(()=>{ne(),H=setInterval(()=>{ne()},500)}),js(()=>{clearInterval(H),pn.value=null});const J=$(()=>n.value.find(M=>M.phase_id===t.phaseId)??null);Zi(()=>{pn.value=J.value?.name??null});const X={engineer:Ka,code:Bo,agent:Ia};function q(M){const E=M?.context_tokens??0,O=M?.context_window??0;return!E||!O?null:{used:E,window:O,pct:Math.min(100,E/O*100)}}function j(M){return M.pct<1?`${M.pct.toFixed(1)}%`:`${Math.round(M.pct)}%`}function he(M){return`scaleX(${Math.max(M.pct,2)/100})`}function fe(M){return M.phases.some(E=>E.status==="running")}const ge=new Intl.NumberFormat("en-US"),Ue=$(()=>{const M=new Map(n.value.map(O=>[O.phase_id,O.owner])),E={};for(const O of r.value){if(O.type!=="agent_start")continue;const R=(O.phase_id?M.get(O.phase_id):null)??O.name;if(!R||E[R])continue;const L=Ho(O);L&&(E[R]=L)}return E}),Ge=$(()=>{const M=n.value,E=[];for(const L of M)L.kind==="agent"&&L.owner&&!E.includes(L.owner)&&E.push(L.owner);const O=M.filter(L=>L.kind==="code"),R=[{id:"engineer",track:"",label:s.value?.engineer??"engineer",model:null,context:null,metaLines:["engineer"],kind:"engineer",phases:M.filter(L=>L.kind==="engineer")}];O.length&&R.push({id:"code",track:"",label:"code",model:null,context:null,metaLines:["workspace"],kind:"code",phases:O});for(const L of E){const Ee=i.value.find(f=>f.agent===L),a=Ue.value[L];R.push({id:`agent:${L}`,track:"",label:L,model:Ee?.model??a?.model??null,context:q(Ee),metaLines:[],kind:"agent",phases:M.filter(f=>f.kind==="agent"&&f.owner===L)})}return R.forEach((L,Ee)=>{L.track=String(Ee+1).padStart(2,"0")}),R}),ve=$(()=>{let M=1/0,E=-1/0;const O=s.value,R=ae(O?.started_at),L=ae(O?.ended_at);Number.isFinite(R)&&(M=Math.min(M,R)),Number.isFinite(L)&&(E=Math.max(E,L));for(const Ee of n.value){const a=ae(Ee.started_at),f=ae(Ee.ended_at);Number.isFinite(a)&&(M=Math.min(M,a),E=Math.max(E,a)),Number.isFinite(f)&&(E=Math.max(E,f))}return O?.status==="running"&&(E=Math.max(E,A.value)),Number.isFinite(M)||(M=A.value,E=M+1e3),E-M<1e3&&(E=M+1e3),{t0:M,t1:E,span:E-M}}),He=$(()=>n.value.find(M=>M.kind==="engineer"&&M.started_at)??null),ye=$(()=>He.value?ud:0),Be=$(()=>{const{t0:M}=ve.value,E=He.value;if(!E)return M;let O=1/0;for(const L of n.value){if(L.kind==="engineer")continue;const Ee=ae(L.started_at);Number.isFinite(Ee)&&(O=Math.min(O,Ee))}if(Number.isFinite(O))return Math.max(O,M);const R=ae(E.ended_at??E.started_at);return Number.isFinite(R)?Math.max(R,M):M}),lt=$(()=>Math.max(ve.value.t1-Be.value,1e3)),at=$(()=>{const M=ye.value;return ba(lt.value,7).map(E=>({pct:M+E.pct*(100-M)/100,label:E.label}))}),be=$(()=>{const M=ye.value,E=100-M-.4,O=Be.value,R=lt.value,L=He.value?.phase_id,Ee=n.value.filter(y=>y.phase_id!==L&&Number.isFinite(ae(y.started_at))).map(y=>{const C=ae(y.started_at);let T=ae(y.ended_at);return Number.isFinite(T)||(T=y.status==="running"?A.value:C),{id:y.phase_id,start:C,left:(C-O)/R*E,width:(Math.max(T,C)-C)/R*E}}).toSorted((y,C)=>y.start-C.start);let a=0,f=0;const g=[];for(const y of Ee){let C=y.left+a;C<f&&(a+=f-C,C=f);const T=Math.max(y.width,fd);a+=T-y.width,f=C+T,g.push({id:y.id,left:C,width:T})}const x=E/Math.max(f,E),w={};for(const y of g)w[y.id]={left:M+y.left*x,width:y.width*x};return w});function b(M){if(M.phase_id===He.value?.phase_id&&ye.value>0)return{left:"0.4%",width:`${ye.value-.8}%`};const E=be.value[M.phase_id];return E?{left:`${E.left}%`,width:`${E.width}%`}:null}function v(M){const E=b(M);if(E)return{left:E.left,width:E.width}}function p(M){const E=ae(M.started_at);if(!Number.isFinite(E))return NaN;const O=M.status==="running"?A.value:ae(M.ended_at);return Number.isFinite(O)?O-E:NaN}const Y={success:"✓",fail:"✗",running:"●",queued:"○"},re=$(()=>{const M={};for(const E of r.value)E.type!=="tool_call"||!E.phase_id||(M[E.phase_id]??=[],M[E.phase_id]?.push({t:ae(E.started_at),ok:Ro(E.payload_json)}));return M});function Pe(M){const E=ae(M.started_at);if(!Number.isFinite(E))return[];let O=ae(M.ended_at);Number.isFinite(O)||(O=M.status==="running"?A.value:E);const R=Math.max(O-E,1);return(re.value[M.phase_id]??[]).filter(L=>Number.isFinite(L.t)).map(L=>({x:Math.min(Math.max((L.t-E)/R*100,1),99),ok:L.ok}))}const fs=$(()=>{const M={};for(const E of Ge.value)M[E.id]=E.phases.filter(O=>!O.started_at);return M}),Vs=$(()=>{const M=s.value;if(!M)return NaN;const E=ae(M.started_at);if(!Number.isFinite(E))return NaN;const O=M.status==="running"?A.value:ae(M.ended_at);return(Number.isFinite(O)?O:A.value)-E});function ds(M){mi(t.adwId,M.phase_id===t.phaseId?null:M.phase_id)}return(M,E)=>(m(),_("div",Bf,[d.value?(m(),_("div",Df,"api unreachable — retrying "+I(d.value),1)):D("",!0),s.value?(m(),_("div",Hf,[h("span",{class:"request",title:s.value.request??""},I(s.value.request),9,jf),se(jo,{status:s.value.status??"fail"},null,8,["status"]),h("span",Lf,"departed "+I(G(va)(s.value.started_at)),1),h("span",Uf,[se(nt,{kind:"cost",value:s.value.total_cost},null,8,["value"]),se(nt,{kind:"runtime",value:Vs.value},null,8,["value"]),se(nt,{kind:"tokens",value:s.value.total_tokens},null,8,["value"]),se(nt,{kind:"read",value:o.value.read},null,8,["value"]),se(nt,{kind:"written",value:o.value.written},null,8,["value"])])])):D("",!0),n.value.length?(m(),_("div",Gf,[h("div",Vf,[E[1]||(E[1]=h("div",{class:"label"},null,-1)),h("div",Yf,[ye.value?(m(),_("span",{key:0,class:"zone-head",style:Ye({width:`${ye.value}%`})},"request",4)):D("",!0),(m(!0),_(z,null,we(at.value,(O,R)=>(m(),_("span",{key:R,class:"axis-label",style:Ye({left:`${O.pct}%`})},I(O.label),5))),128))])]),(m(!0),_(z,null,we(Ge.value,O=>(m(),_("div",{key:O.id,class:de(["row lane",`kind-${O.kind}`])},[h("div",Wf,[h("span",Kf,[h("span",Qf,I(O.track),1),(m(),me(Ls(X[O.kind]),{class:"lane-icon",size:19,"stroke-width":2})),ht(" "+I(O.label),1)]),O.model?(m(),_("span",{key:0,class:"lane-meta lane-model",title:O.model},[G(Ts)(O.model)?(m(),_("img",{key:0,class:"model-icon",src:G(Ts)(O.model),alt:""},null,8,qf)):D("",!0),ht(" "+I(G(Do)(O.model)),1)],8,zf)):D("",!0),O.context?(m(),_("span",{key:1,class:"lane-ctx",title:`${G(ge).format(O.context.used)} / ${G(ge).format(O.context.window)} tokens used · ${G(ge).format(O.context.window-O.context.used)} remaining`},[h("span",$f,[E[2]||(E[2]=h("span",{class:"ctx-label"},"Context",-1)),h("span",Jf,I(j(O.context)),1)]),h("span",Zf,[h("span",{class:de(["ctx-fill",{live:fe(O)}]),style:Ye({width:he(O.context)})},null,6)])],8,Xf)):D("",!0),(m(!0),_(z,null,we(O.metaLines,(R,L)=>(m(),_("span",{key:L,class:"lane-meta"},I(R),1))),128))]),h("div",ed,[ye.value?(m(),_("span",{key:0,class:"zone-divider",style:Ye({left:`${ye.value}%`})},null,4)):D("",!0),(m(!0),_(z,null,we(at.value,(R,L)=>(m(),_("span",{key:L,class:"gridline",style:Ye({left:`${R.pct}%`})},null,4))),128)),(m(!0),_(z,null,we(O.phases,R=>(m(),_(z,{key:R.phase_id},[b(R)?(m(),_("button",{key:0,class:de(["block",[R.status,{selected:R.phase_id===e.phaseId}]]),style:Ye(v(R)),title:`${R.name} — ${R.status}${R.description?`
|
|
11
|
+
${R.description}`:""}`,onClick:L=>ds(R)},[h("span",sd,[(m(),_("span",{class:de(["flap b-status",R.status]),key:R.status??""},I(Y[R.status??""]??"○"),3)),h("span",nd,I(R.name),1),Number.isFinite(p(R))?(m(),me(nt,{key:0,class:"b-dur",kind:"runtime",compact:"",value:p(R)},null,8,["value"])):D("",!0)]),h("span",id,I(R.description),1),(m(!0),_(z,null,we(Pe(R),(L,Ee)=>(m(),_("span",{key:Ee,class:de(["tool-tick",{err:!L.ok}]),style:Ye({left:`${L.x}%`})},null,6))),128))],14,td)):D("",!0)],64))),128)),(m(!0),_(z,null,we(fs.value[O.id],(R,L)=>(m(),_("button",{key:R.phase_id,class:de(["block queued",{selected:R.phase_id===e.phaseId}]),style:Ye({right:`${10+L*5}px`,width:"170px"}),title:`${R.name} — queued`,onClick:Ee=>ds(R)},[h("span",rd,[E[3]||(E[3]=h("span",{class:"flap b-status queued"},"○",-1)),h("span",ld,I(R.name),1)]),E[4]||(E[4]=h("span",{class:"b-desc"},"queued",-1))],14,od))),128))])],2))),128))])):u.value?(m(),_("div",ad,"no phases recorded for this session")):d.value?D("",!0):(m(),_("div",cd,"loading trace…")),J.value?(m(),me(Rf,{key:5,phase:J.value,events:r.value,envelopes:l.value,gates:c.value,onClose:E[0]||(E[0]=O=>G(mi)(t.adwId))},null,8,["phase","events","envelopes","gates"])):D("",!0)]))}}),hd=_t(dd,[["__scopeId","data-v-a0cf682e"]]),pd={class:"app"},Ad={class:"masthead"},gd={class:"crumbs"},md=["href"],vd=["href"],yd={class:"current"},_d=vt({__name:"App",setup(e){const t=ua();return Zi(()=>{document.body.classList.toggle("board",!!t.value.adwId)}),(s,n)=>(m(),_("div",pd,[h("header",Ad,[h("nav",gd,[n[2]||(n[2]=Mo('<svg class="logo" viewBox="0 0 32 32" aria-hidden="true" data-v-e578c1b8><rect class="logo-plate" x="2.5" y="2.5" width="27" height="27" rx="2" data-v-e578c1b8></rect><rect class="logo-strip" x="7" y="8" width="18" height="4" data-v-e578c1b8></rect><rect class="logo-strip logo-accent" x="7" y="14" width="18" height="4" data-v-e578c1b8></rect><rect class="logo-strip" x="7" y="20" width="18" height="4" data-v-e578c1b8></rect></svg>',1)),h("a",{class:"brand",href:G(Cs)()},"Super Portable Software Factory",8,md),G(t).adwId?(m(),_(z,{key:0},[n[0]||(n[0]=h("span",{class:"sep"},"›",-1)),h("a",{class:de(["crumb-id",{current:!G(t).phaseId}]),href:G(Cs)(G(t).adwId)},I(G(t).adwId),11,vd)],64)):D("",!0),G(t).adwId&&G(t).phaseId?(m(),_(z,{key:1},[n[1]||(n[1]=h("span",{class:"sep"},"›",-1)),h("span",yd,I(G(pn)??G(t).phaseId),1)],64)):D("",!0)]),n[3]||(n[3]=h("span",{class:"live-hint"},[h("span",{class:"live-marker"}),ht(" live")],-1))]),h("main",null,[G(t).adwId?(m(),me(hd,{key:G(t).adwId,"adw-id":G(t).adwId,"phase-id":G(t).phaseId},null,8,["adw-id","phase-id"])):(m(),me(bc,{key:0}))])]))}}),bd=_t(_d,[["__scopeId","data-v-e578c1b8"]]);la(bd).mount("#app");
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
@font-face{font-family:Overpass;font-style:normal;font-weight:400;font-display:swap;src:url(./overpass-latin-400-normal-BpeLJ0bs.woff2) format("woff2")}@font-face{font-family:Overpass;font-style:normal;font-weight:600;font-display:swap;src:url(./overpass-latin-600-normal-25RhTNCi.woff2) format("woff2")}@font-face{font-family:Overpass;font-style:normal;font-weight:700;font-display:swap;src:url(./overpass-latin-700-normal-CQX2QTgM.woff2) format("woff2")}@font-face{font-family:Overpass Mono;font-style:normal;font-weight:400;font-display:swap;src:url(./overpass-mono-latin-400-normal-VINZG6Js.woff2) format("woff2")}@font-face{font-family:Overpass Mono;font-style:normal;font-weight:700;font-display:swap;src:url(./overpass-mono-latin-700-normal-D6nRBrbd.woff2) format("woff2")}.dots[data-v-466cf629]{display:inline-flex;align-items:center;gap:5px;font-size:16px;letter-spacing:0}.d-more[data-v-466cf629]{color:var(--faint);font-size:16px}.d.success[data-v-466cf629]{color:var(--pass)}.d.fail[data-v-466cf629]{color:var(--fail)}.d.running[data-v-466cf629]{color:var(--live)}body.board .d.running[data-v-466cf629]{animation:pulse 1.2s ease-in-out infinite}.d.queued[data-v-466cf629]{color:var(--faint)}.row[data-v-4c0606e6]{display:grid;grid-template-columns:var(--tt-columns);align-items:baseline;column-gap:18px;padding:9px 0;border-bottom:1px solid var(--rule-soft);color:var(--fg);text-decoration:none;font-size:16px}.row[data-v-4c0606e6]:hover{background:var(--face)}.run[data-v-4c0606e6]{font-weight:700}.service[data-v-4c0606e6],.request[data-v-4c0606e6]{color:var(--dim);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.phases[data-v-4c0606e6]{display:inline-flex;align-items:center;gap:10px;overflow:hidden;white-space:nowrap}.status[data-v-4c0606e6]{font-weight:600;white-space:nowrap}.num[data-v-4c0606e6]{text-align:right;white-space:nowrap}.mono[data-v-4c0606e6]{font-family:var(--mono);font-variant-numeric:tabular-nums}.status.success[data-v-4c0606e6]{color:var(--pass)}.status.fail[data-v-4c0606e6]{color:var(--fail)}.status.running[data-v-4c0606e6]{color:var(--live);font-style:italic}.status.queued[data-v-4c0606e6]{color:var(--faint);font-style:italic}.row.running[data-v-4c0606e6]{background:var(--face)}.act[data-v-4c0606e6]{justify-self:end;display:inline-flex;align-items:center;justify-content:center;padding:4px;border:1px solid transparent;border-radius:var(--radius);background:none;color:var(--faint);cursor:pointer}.act[data-v-4c0606e6]:hover,.act[data-v-4c0606e6]:focus-visible{border-color:var(--rule);color:var(--accent)}.meta[data-v-4c0606e6]{display:none}@media(max-width:980px){.row[data-v-4c0606e6]{grid-template-columns:1fr auto auto;row-gap:3px;padding:12px 0}.departed[data-v-4c0606e6],.service[data-v-4c0606e6],.phases[data-v-4c0606e6],.num[data-v-4c0606e6]{display:none}.request[data-v-4c0606e6]{grid-column:1 / -1}.meta[data-v-4c0606e6]{display:block;grid-column:1 / -1;font-size:16px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}}.sessions[data-v-94516561]{display:flex;flex-direction:column}.tt[data-v-94516561]{--tt-columns: 84px 160px minmax(90px, 140px) minmax(0, 1fr) 168px 100px 90px 90px 90px 70px;margin:8px 28px 40px}.tt-caption[data-v-94516561]{display:flex;align-items:baseline;justify-content:space-between;padding:18px 0 8px}.tt-title[data-v-94516561]{font-size:20px;font-weight:700;letter-spacing:.02em}.tt-head[data-v-94516561]{display:grid;grid-template-columns:var(--tt-columns);column-gap:18px;padding:0 0 6px;border-bottom:1px solid var(--rule)}.h[data-v-94516561]{font-size:16px;font-weight:600;letter-spacing:.06em;text-transform:lowercase;color:var(--faint);white-space:nowrap}.h-num[data-v-94516561]{text-align:right}@media(max-width:980px){.tt[data-v-94516561]{margin:8px 16px 40px}.tt-head[data-v-94516561]{display:none}}.chip[data-v-fb81e248]{display:inline-flex;align-items:center;gap:7px;padding:2px 10px;border:1px solid var(--rule);border-radius:var(--radius);background:transparent;font-size:16px;font-weight:600;color:var(--dim);white-space:nowrap}.chip-icon[data-v-fb81e248]{flex:none}.chip-label[data-v-fb81e248]{display:inline-block;transform-origin:50% 65%}body.board .chip-label[data-v-fb81e248]{animation:flap-in .26s cubic-bezier(.2,.7,.3,1)}.chip.success[data-v-fb81e248]{color:var(--pass);border-color:var(--pass)}.chip.fail[data-v-fb81e248]{color:var(--fail);border-color:var(--fail)}.chip.running[data-v-fb81e248]{color:var(--live);border-color:var(--live)}body.board .chip.running .chip-icon[data-v-fb81e248]{animation:spin-fb81e248 1.1s linear infinite}@keyframes spin-fb81e248{to{transform:rotate(360deg)}}.chip.queued[data-v-fb81e248]{color:var(--faint);border-style:dashed}.stat[data-v-d11de936]{display:inline-flex;align-items:center;gap:7px;padding:2px 10px;border:1px solid var(--rule-soft);border-radius:var(--radius);font-size:16px;white-space:nowrap}.stat-icon[data-v-d11de936]{color:var(--faint);flex:none}.stat-value[data-v-d11de936]{color:var(--fg);font-family:var(--mono);font-variant-numeric:tabular-nums}.stat.compact[data-v-d11de936]{padding:0;border:none}.stat.compact .stat-value[data-v-d11de936]{color:var(--dim)}.dsec[data-v-5b638432]{margin-bottom:16px}.dsec-head[data-v-5b638432]{display:flex;align-items:center;gap:9px;width:100%;padding:7px 6px;background:none;border:none;border-bottom:1px solid var(--rule);border-radius:0;color:var(--dim);font-size:16px;font-weight:600;letter-spacing:.07em;text-transform:uppercase;cursor:pointer;text-align:left}.dsec-icon[data-v-5b638432]{flex:none;color:var(--faint)}.dsec-head[data-v-5b638432]:hover{background:var(--face);color:var(--fg)}.chev[data-v-5b638432]{color:var(--faint);flex:none;font-family:var(--mono)}.dsec-count[data-v-5b638432]{font-weight:400;text-transform:none;letter-spacing:0}.dsec-body[data-v-5b638432]{padding-top:12px}.detail[data-v-b072286b]{margin:0 28px 28px;border:1px solid var(--rule);border-radius:var(--radius);background:var(--face)}.d-head[data-v-b072286b]{display:flex;align-items:center;gap:20px;flex-wrap:wrap;padding:14px 18px;border-bottom:1px solid var(--rule);background:var(--inset)}.d-main[data-v-b072286b]{display:flex;align-items:center;gap:14px;flex-wrap:wrap}.d-name[data-v-b072286b]{font-size:20px;font-weight:700}.d-tags[data-v-b072286b]{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin-left:auto}.tag[data-v-b072286b]{display:inline-flex;align-items:baseline;gap:7px;padding:2px 10px;border:1px solid var(--rule-soft);border-radius:var(--radius);background:var(--inset);font-size:16px;white-space:nowrap}.tag-k[data-v-b072286b]{color:var(--faint)}.tag-v[data-v-b072286b]{color:var(--fg)}.close[data-v-b072286b]{background:none;border:1px solid var(--rule);border-radius:var(--radius);color:var(--dim);font-family:var(--mono);font-size:16px;cursor:pointer;padding:3px 10px}.close[data-v-b072286b]:hover{color:var(--fg);border-color:var(--dim)}.d-desc[data-v-b072286b]{margin:0;color:var(--dim)}.d-request[data-v-b072286b]{margin:0;color:var(--fg);white-space:pre-wrap;overflow-wrap:anywhere}.cfg[data-v-b072286b]{display:flex;flex-direction:column;gap:7px}.cfg-row[data-v-b072286b]{display:flex;align-items:baseline;gap:12px}.cfg-k[data-v-b072286b]{flex:none;width:118px;color:var(--faint)}.cfg-v[data-v-b072286b]{color:var(--fg);min-width:0;overflow-wrap:anywhere}.cfg-model-icon[data-v-b072286b]{width:17px;height:17px;flex:none;object-fit:contain}.cfg-chips[data-v-b072286b]{display:inline-flex;flex-wrap:wrap;gap:6px}.cfg-chip[data-v-b072286b]{display:inline-flex;align-items:center;gap:8px;padding:2px 10px;border:1px solid var(--rule-soft);border-radius:var(--radius);background:var(--inset);font-family:var(--mono);font-size:16px;overflow-wrap:anywhere}.cfg-icon[data-v-b072286b]{flex:none;color:var(--faint)}.d-error[data-v-b072286b]{margin:14px 18px 0}.d-grid[data-v-b072286b]{display:grid;grid-template-columns:minmax(0,2fr) minmax(0,3fr);gap:28px;padding:16px 18px 20px}@media(max-width:1100px){.d-grid[data-v-b072286b]{grid-template-columns:1fr}}h3[data-v-b072286b]{display:flex;align-items:center;gap:9px;margin:18px 0 10px;padding-bottom:6px;border-bottom:1px solid var(--rule-soft);font-size:16px;font-weight:700;color:var(--dim);text-transform:lowercase;letter-spacing:.05em}.h3-icon[data-v-b072286b]{flex:none;color:var(--faint)}h3[data-v-b072286b]:first-child{margin-top:0}.prompt-panel[data-v-b072286b]{margin-bottom:10px;border:1px solid var(--rule-soft);border-radius:var(--radius);background:var(--inset);overflow:hidden}.prompt-head[data-v-b072286b]{display:flex;align-items:baseline;gap:12px;width:100%;padding:9px 14px;background:none;border:none;color:var(--fg);font-size:16px;cursor:pointer;text-align:left}.prompt-head[data-v-b072286b]:hover{background:var(--face)}.chev[data-v-b072286b]{color:var(--faint);flex:none;font-family:var(--mono)}.prompt-title[data-v-b072286b]{font-weight:700}.prompt-head .dim[data-v-b072286b]{margin-left:auto}.prompt-body[data-v-b072286b]{padding:12px 14px 14px;border-top:1px solid var(--rule-soft);max-height:60vh;overflow:auto}.prompt-tools[data-v-b072286b]{display:flex;gap:8px;margin-bottom:12px}.prompt-tools button[data-v-b072286b]{padding:2px 12px;border:1px solid var(--rule-soft);border-radius:var(--radius);background:none;color:var(--dim);font-family:var(--mono);font-size:16px;cursor:pointer}.prompt-tools button.active[data-v-b072286b]{color:var(--fg);border-color:var(--rule);background:var(--face)}.prompt-raw[data-v-b072286b]{border:none;padding:0;background:transparent;max-height:none}.gate[data-v-b072286b]{margin-bottom:10px;padding:10px 14px;border:1px solid var(--rule-soft);border-radius:var(--radius);background:var(--inset)}.gate.pass[data-v-b072286b]{border-color:var(--rule)}.gate.fail[data-v-b072286b]{border-color:var(--fail)}.gate-line[data-v-b072286b]{display:flex;gap:12px;align-items:baseline;flex-wrap:wrap}.gate-toggle[data-v-b072286b]{width:100%;padding:0;background:none;border:none;color:var(--fg);font-size:16px;cursor:pointer;text-align:left}.gate-checks .check-item[data-v-b072286b]{font-family:var(--mono)}.gate-toggle .chev[data-v-b072286b]{color:var(--faint);flex:none}.gate-checks[data-v-b072286b]{margin-top:10px;padding-top:8px;border-top:1px solid var(--rule-soft)}.gate-check[data-v-b072286b]{display:flex;gap:10px;align-items:baseline;flex-wrap:wrap;padding:3px 0}.gate-check.pass .check-mark[data-v-b072286b]{color:var(--pass)}.gate-check.fail .check-mark[data-v-b072286b]{color:var(--fail)}.check-item[data-v-b072286b]{overflow-wrap:anywhere;min-width:0}.check-note[data-v-b072286b]{white-space:pre-wrap;overflow-wrap:anywhere}.check-note-block[data-v-b072286b]{flex-basis:100%;margin:4px 0 6px 26px;max-height:30vh;overflow:auto}.tag-fail[data-v-b072286b]{border-color:var(--fail)}.tag-fail .tag-v[data-v-b072286b]{color:var(--fail)}.gate.pass .gate-mark[data-v-b072286b]{color:var(--pass)}.gate.fail .gate-mark[data-v-b072286b]{color:var(--fail)}.gate-name[data-v-b072286b]{color:var(--fg);font-weight:700}.gate-time[data-v-b072286b]{margin-left:auto}.violations[data-v-b072286b]{margin:8px 0 2px;padding-left:24px;color:var(--fail)}.usage[data-v-b072286b]{width:100%;max-width:420px;border-collapse:collapse;font-size:16px}.usage th[data-v-b072286b]{padding:0 0 6px;font-size:16px;font-weight:400;letter-spacing:.06em;text-transform:uppercase;color:var(--faint);border-bottom:1px solid var(--rule-soft)}.usage td[data-v-b072286b]{padding:5px 0}.usage .u-k[data-v-b072286b]{text-align:left;color:var(--dim)}.usage .u-n[data-v-b072286b],.usage .u-c[data-v-b072286b]{text-align:right;font-family:var(--mono);color:var(--fg)}.u-nested .u-k[data-v-b072286b]{padding-left:18px;color:var(--faint)}.u-nested .u-n[data-v-b072286b],.u-nested .u-c[data-v-b072286b]{color:var(--faint)}.u-total td[data-v-b072286b]{padding-top:8px;border-top:1px solid var(--rule-soft);font-weight:700}.u-total .u-k[data-v-b072286b]{color:var(--fg)}.u-note[data-v-b072286b]{margin:10px 0 0;font-size:16px}.output[data-v-b072286b]{margin-bottom:14px}.output-line[data-v-b072286b]{display:flex;gap:12px;align-items:baseline;flex-wrap:wrap;margin-bottom:8px}.output-type[data-v-b072286b]{color:var(--fg);font-weight:700}.output-valid.pass[data-v-b072286b]{color:var(--pass)}.output-valid.fail[data-v-b072286b]{color:var(--fail)}.output pre[data-v-b072286b]{max-height:40vh;overflow:auto}.event[data-v-b072286b]{border-bottom:1px solid var(--rule-soft)}.event-row[data-v-b072286b]{display:flex;gap:14px;align-items:baseline;width:100%;padding:7px 6px;background:none;border:none;border-radius:0;color:var(--fg);font-family:var(--mono);font-size:16px;cursor:pointer;text-align:left}.event-row[data-v-b072286b]:hover,.event-row.open[data-v-b072286b]{background:var(--inset)}.e-time[data-v-b072286b]{flex:none;font-variant-numeric:tabular-nums}.e-type[data-v-b072286b]{flex:none;width:130px;color:var(--dim)}.e-name[data-v-b072286b]{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.e-extra[data-v-b072286b]{margin-left:auto;flex:none;display:inline-flex;gap:14px}.payload-panel[data-v-b072286b]{margin:6px 0 14px;padding:14px 16px;border:1px solid var(--rule);border-radius:var(--radius);background:var(--inset)}.p-meta[data-v-b072286b]{display:flex;gap:16px;align-items:baseline;margin-bottom:10px}.p-tool[data-v-b072286b]{color:var(--fg);font-weight:700;font-size:17px}.payload-panel h4[data-v-b072286b]{margin:14px 0 6px;font-size:16px;font-weight:700;color:var(--dim);text-transform:lowercase;letter-spacing:.06em}.payload-panel h4[data-v-b072286b]:first-of-type{margin-top:0}.p-pre[data-v-b072286b]{border:1px solid var(--rule-soft);border-radius:var(--radius);padding:10px 12px;background:var(--board);max-height:42vh;overflow:auto}.t-red[data-v-b072286b]{color:var(--fail)}.t-green[data-v-b072286b]{color:var(--pass)}@media(max-width:980px){.detail[data-v-b072286b]{margin:0 16px 24px}}.trace[data-v-a0cf682e]{padding:0 0 40px}.run-strip[data-v-a0cf682e]{display:flex;align-items:center;gap:18px;padding:12px 24px;border-bottom:1px solid var(--rule);flex-wrap:wrap}.run-strip .request[data-v-a0cf682e]{font-size:17px;font-weight:600;color:var(--fg);max-width:52ch;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.run-stats[data-v-a0cf682e]{display:inline-flex;gap:10px;flex-wrap:wrap}.waterfall[data-v-a0cf682e]{margin:20px 28px;border:1px solid var(--rule);border-radius:var(--radius);background:var(--face);overflow:hidden}.row[data-v-a0cf682e]{display:grid;grid-template-columns:250px 1fr}.axis-row[data-v-a0cf682e]{border-bottom:1px solid var(--rule);background:var(--inset)}.axis-row .track[data-v-a0cf682e]{height:38px;overflow:hidden}.zone-head[data-v-a0cf682e]{position:absolute;top:0;bottom:0;left:0;display:inline-flex;align-items:center;justify-content:center;font-size:16px;font-weight:600;letter-spacing:.08em;text-transform:uppercase;color:var(--amber);border-right:1px solid var(--rule)}.axis-label[data-v-a0cf682e]{position:absolute;bottom:6px;transform:translate(-50%);font-family:var(--mono);font-size:16px;font-variant-numeric:tabular-nums;color:var(--dim);white-space:nowrap}.label[data-v-a0cf682e]{padding:12px 16px;display:flex;flex-direction:column;justify-content:center;gap:3px;border-right:1px solid var(--rule);overflow:hidden;white-space:nowrap}.lane-name[data-v-a0cf682e]{display:inline-flex;align-items:center;gap:8px;font-size:17px;font-weight:700;color:var(--fg);overflow:hidden;text-overflow:ellipsis}.tno[data-v-a0cf682e]{flex:none;width:26px;color:var(--faint);font-size:16px}.lane-icon[data-v-a0cf682e]{flex:none;color:var(--dim)}.lane-meta[data-v-a0cf682e]{font-family:var(--mono);font-size:16px;color:var(--dim);overflow:hidden;text-overflow:ellipsis}.lane-model[data-v-a0cf682e]{display:inline-flex;align-items:center;gap:7px}.model-icon[data-v-a0cf682e]{width:16px;height:16px;flex:none;object-fit:contain}.lane-ctx[data-v-a0cf682e]{display:flex;flex-direction:column;gap:4px;margin-top:2px;max-width:190px}.ctx-head[data-v-a0cf682e]{display:flex;align-items:baseline;justify-content:space-between;gap:8px}.ctx-label[data-v-a0cf682e]{font-size:16px;letter-spacing:.07em;text-transform:uppercase;color:var(--faint)}.ctx-pct[data-v-a0cf682e]{font-family:var(--mono);font-size:16px;font-variant-numeric:tabular-nums;color:var(--dim)}.ctx-bar[data-v-a0cf682e]{height:6px;background:var(--inset);border:1px solid var(--rule-soft);overflow:hidden}.ctx-fill[data-v-a0cf682e]{display:block;width:100%;height:100%;background:var(--faint);transform-origin:left center;transition:transform .3s ease}.ctx-fill.live[data-v-a0cf682e]{background:var(--amber)}.lane[data-v-a0cf682e]{border-bottom:1px solid var(--rule-soft)}.lane[data-v-a0cf682e]:last-child{border-bottom:none}.track[data-v-a0cf682e]{position:relative;height:118px;overflow:hidden}.zone-divider[data-v-a0cf682e]{position:absolute;top:0;bottom:0;border-left:1px solid var(--rule)}.gridline[data-v-a0cf682e]{position:absolute;top:0;bottom:0;border-left:1px dashed rgba(239,232,212,.08)}.block[data-v-a0cf682e]{position:absolute;top:13px;height:92px;display:flex;flex-direction:column;justify-content:flex-start;gap:4px;padding:10px 12px 16px;border-radius:var(--radius);border:1px solid var(--rule);background:var(--face);font-size:16px;color:var(--fg);cursor:pointer;overflow:hidden;white-space:nowrap;text-align:left;transition:border-color .12s ease,background .12s ease}.block[data-v-a0cf682e]:hover{border-color:var(--dim);background:#242119}.b-top[data-v-a0cf682e]{display:flex;align-items:baseline;gap:10px;min-width:0}.flap[data-v-a0cf682e]{display:inline-block;transform-origin:50% 65%;animation:flap-in .28s cubic-bezier(.2,.7,.3,1),}.b-status[data-v-a0cf682e]{flex:none;font-size:16px;padding-right:8px}.b-status.success[data-v-a0cf682e]{color:var(--pass)}.b-status.fail[data-v-a0cf682e]{color:var(--fail)}.b-status.running[data-v-a0cf682e]{color:var(--amber);animation:flap-in .28s cubic-bezier(.2,.7,.3,1),pulse 1.6s ease-in-out .34s infinite}.b-status.queued[data-v-a0cf682e]{color:var(--faint)}.block .b-name[data-v-a0cf682e]{font-size:17px;font-weight:700;overflow:hidden;text-overflow:ellipsis}.block .b-dur[data-v-a0cf682e]{margin-left:auto;flex:none}.block .b-desc[data-v-a0cf682e]{color:var(--dim);font-size:16px;overflow:hidden;text-overflow:ellipsis;min-width:0}.block.running[data-v-a0cf682e]{border-color:var(--amber)}.block.running .b-name[data-v-a0cf682e]{color:var(--amber)}.block.fail[data-v-a0cf682e]{border-color:var(--fail)}.block.queued[data-v-a0cf682e]{background:transparent;border-style:dashed;color:var(--dim)}.block.selected[data-v-a0cf682e]{outline:2px solid var(--accent);outline-offset:1px}.tool-tick[data-v-a0cf682e]{position:absolute;bottom:4px;width:3px;height:9px;background:var(--faint);border-radius:0}.tool-tick.err[data-v-a0cf682e]{background:var(--fail)}@media(max-width:980px){.run-strip[data-v-a0cf682e]{padding:12px 16px}.waterfall[data-v-a0cf682e]{margin:16px;overflow-x:auto}.waterfall .row[data-v-a0cf682e]{min-width:700px}}.masthead[data-v-e578c1b8]{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:16px 28px 14px;position:sticky;top:0;z-index:10;background:var(--ground)}.masthead[data-v-e578c1b8]:after{content:"";position:absolute;left:0;right:0;bottom:0;border-bottom:4px double var(--ink)}body.board .masthead[data-v-e578c1b8]:after{border-bottom:1px solid var(--rule)}.crumbs[data-v-e578c1b8]{display:flex;align-items:center;gap:10px;font-size:17px;flex:1 1 0;min-width:0}.logo[data-v-e578c1b8]{width:26px;height:26px;flex:none}.logo-plate[data-v-e578c1b8]{fill:var(--face);stroke:var(--fg);stroke-width:1.5}.logo-strip[data-v-e578c1b8]{fill:var(--fg)}.logo-accent[data-v-e578c1b8]{fill:var(--accent)}.brand[data-v-e578c1b8]{color:var(--fg);font-weight:700;letter-spacing:.02em;white-space:nowrap;text-decoration:none;min-width:0;overflow:hidden;text-overflow:ellipsis}.sep[data-v-e578c1b8]{color:var(--faint);flex:none}.crumbs a[data-v-e578c1b8]{color:var(--dim)}.crumbs a[data-v-e578c1b8]:hover{color:var(--fg)}.crumb-id[data-v-e578c1b8]{font-family:var(--mono);font-size:16px;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.crumbs .current[data-v-e578c1b8]{color:var(--fg)}.live-hint[data-v-e578c1b8]{flex:none;display:inline-flex;align-items:center;gap:8px;font-family:var(--mono);font-size:16px;color:var(--live);white-space:nowrap}.live-marker[data-v-e578c1b8]{width:9px;height:9px;background:var(--live)}body.board .live-marker[data-v-e578c1b8]{border-radius:50%;animation:pulse 1.8s ease-in-out infinite}@media(max-width:980px){.masthead[data-v-e578c1b8]{padding:14px 16px 12px}}:root{--sans: "Overpass", system-ui, "Helvetica Neue", Arial, sans-serif;--mono: "Overpass Mono", ui-monospace, "SF Mono", SFMono-Regular, Menlo, Monaco, "Cascadia Mono", "Roboto Mono", monospace;--paper: #f6f3ec;--paper-raised: #fcfaf4;--paper-sunk: #ede8db;--ink: #211e14;--ink-dim: #5f5948;--ink-faint: #76705e;--paper-rule: #d8d2c0;--paper-rule-soft: #e6e1d0;--board: #141311;--board-raised: #1e1c17;--board-sunk: #0c0b09;--bone: #efe8d4;--bone-dim: #96907c;--bone-faint: #857f6a;--board-rule: #37342b;--board-rule-soft: #2a2820;--rail-red: #da291c;--ballpoint: #2545a8;--amber: #e8b64a;--pass-paper: #1e7a3c;--fail-paper: #b3261e;--pass-board: #4ade80;--fail-board: #ff6f67;--radius: 2px}body{--ground: var(--paper);--face: var(--paper-raised);--inset: var(--paper-sunk);--fg: var(--ink);--dim: var(--ink-dim);--faint: var(--ink-faint);--rule: var(--paper-rule);--rule-soft: var(--paper-rule-soft);--accent: var(--rail-red);--live: var(--ballpoint);--pass: var(--pass-paper);--fail: var(--fail-paper)}body.board{--ground: var(--board);--face: var(--board-raised);--inset: var(--board-sunk);--fg: var(--bone);--dim: var(--bone-dim);--faint: var(--bone-faint);--rule: var(--board-rule);--rule-soft: var(--board-rule-soft);--accent: var(--amber);--live: var(--amber);--pass: var(--pass-board);--fail: var(--fail-board)}*{box-sizing:border-box}html,body{margin:0;padding:0}body{background:var(--paper);color:var(--ink);font-family:var(--sans);font-size:16px;line-height:1.5;scrollbar-width:thin;scrollbar-color:var(--rule) transparent}body.board{background:var(--board);color:var(--bone)}#app{min-height:100vh}::selection{background:#f3d8d4;color:var(--ink)}body.board ::selection{background:var(--amber);color:var(--board)}:focus-visible{outline:2px solid var(--accent);outline-offset:2px}::-webkit-scrollbar{width:10px;height:10px}::-webkit-scrollbar-thumb{background:var(--rule);border:3px solid var(--ground);border-radius:6px}::-webkit-scrollbar-track{background:transparent}a{color:var(--ballpoint);text-decoration:none}body.board a{color:var(--amber)}pre{margin:0;padding:12px 14px;background:var(--inset);border:1px solid var(--rule-soft);border-radius:var(--radius);overflow-x:auto;font-family:var(--mono);font-size:16px;line-height:1.55;color:var(--fg);white-space:pre-wrap;word-break:break-word}body.board .j-key{color:var(--bone-dim)}body.board .j-str{color:var(--bone)}body.board .j-bool{color:#d6cdae;font-style:italic}body.board .j-null{color:var(--fail)}.j-key,.j-str{color:var(--ink-dim)}.j-num{color:var(--ballpoint)}body.board .j-num{color:var(--amber)}.j-bool{color:var(--ink-dim);font-style:italic}.j-null{color:var(--fail)}.dim{color:var(--dim)}.faint{color:var(--faint)}.error-bar{margin:12px 24px;padding:10px 14px;border:1px solid var(--fail);background:var(--face);color:var(--fail);border-radius:var(--radius);font-size:16px}.empty-state{padding:72px 24px;text-align:center;color:var(--dim);font-size:16px}.md{font-size:16px;line-height:1.6;color:var(--fg)}.md h1{font-size:20px;margin:14px 0 8px}.md h2{font-size:18px;margin:14px 0 8px}.md h3,.md h4{font-size:17px;margin:12px 0 6px}.md h1:first-child,.md h2:first-child,.md h3:first-child{margin-top:0}.md p{margin:8px 0;white-space:pre-wrap}.md code{background:var(--inset);border:1px solid var(--rule-soft);border-radius:var(--radius);padding:1px 7px;font-family:var(--mono);font-size:16px}.md pre.md-code{margin:10px 0;white-space:pre}.md pre.md-code code{background:transparent;border:none;padding:0;font-size:16px}.md ul,.md ol{margin:8px 0;padding-left:28px}.md li{margin:3px 0}.md blockquote{margin:10px 0;padding:2px 0 2px 14px;border-left:1px solid var(--rule);color:var(--dim);white-space:pre-wrap}.md hr{border:none;border-top:1px solid var(--rule);margin:14px 0}@keyframes flap-in{0%{transform:rotateX(86deg)}to{transform:rotateX(0)}}@keyframes pulse{0%,to{opacity:1}50%{opacity:.35}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|