@coreframe/vite 0.3.0-next.4 → 0.3.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/client.d.ts +1 -0
- package/dist/managed-dev-B_34FAHU.js +1 -0
- package/dist/overlay/managed-dev-overlay.d.ts +58 -1
- package/dist/overlay/managed-dev-overlay.js +30 -11
- package/dist/plugins/dashboard.js +4 -4
- package/dist/plugins/dev-jobs.d.ts +1 -2
- package/dist/plugins/dev-jobs.js +1 -1
- package/dist/plugins/development-controls.d.ts +1 -2
- package/dist/plugins/development-controls.js +1 -1
- package/dist/plugins/index.d.ts +2 -2
- package/dist/plugins/index.js +1 -1
- package/dist/plugins/managed-dev.js +1 -1
- package/dist/plugins/preset.js +1 -1
- package/dist/plugins/routes.d.ts +2 -79
- package/dist/plugins/routes.js +1 -1
- package/dist/plugins/shell.js +1 -1
- package/dist/style.css +1 -1
- package/package.json +17 -19
- package/dist/browser/flutter-devtools.d.ts +0 -17
- package/dist/browser/flutter-devtools.js +0 -1
- package/dist/plugins/flutter-devtools.d.ts +0 -13
- package/dist/plugins/flutter-devtools.js +0 -1
- package/dist/plugins/native.d.ts +0 -1
- package/dist/plugins/native.js +0 -1
package/client.d.ts
CHANGED
|
@@ -3,6 +3,7 @@
|
|
|
3
3
|
interface ImportMetaEnv {
|
|
4
4
|
readonly COREFRAME_ENV: "development" | "preview" | "production"
|
|
5
5
|
readonly COREFRAME_MANAGED_DEV?: boolean
|
|
6
|
+
readonly COREFRAME_VERSION?: string
|
|
6
7
|
readonly DEBUG: boolean
|
|
7
8
|
readonly MOBILE_PLATFORM: "ios" | "android" | undefined
|
|
8
9
|
readonly PLATFORM: import("@coreframe/lib/shell").ShellPlatform
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{readFile as e}from"node:fs/promises";import t from"node:path";import{readProjectConfig as n}from"@coreframe/config";import{randomUUID as r}from"node:crypto";import{managedDevEnv as i,managedDevEvents as a,managedDevOperationPhases as o,managedDevSupervisorRecoveryErrorPrefix as s}from"@coreframe/dev-contracts/managed-dev";import{startManagedDevSession as c}from"@coreframe/dev/managed-dev";import{DevDiagnostics as l,connectDevSupervisor as u,connectExistingDevSupervisor as d,devDiagnosticError as f,devDiagnosticPhase as ee}from"@coreframe/dev/supervisor";function p(e){let t,n,r=new Map,i=e=>e<1e3?`${Math.max(0,Math.round(e))}ms`:`${Math.round(e/1e3)}s`;return a=>{let s=a.operation;if(!s)return;let c=`[managed-dev ${s.id.slice(0,8)}]`;t!==s.id&&(t=s.id,n=void 0,r.clear(),e(`${c} ${s.kind===`merge`?`Merge`:s.kind===`fast-forward`?`Sync`:`Rebase`}: ${s.source} ${s.target.slice(0,12)}`));let l=`${s.state}:${s.phase}:${s.cancellationDeferred}`;l!==n&&(n=l,e(`${c} ${s.state===`cancelled`?s.published?`Changes applied; remaining work cancelled`:`Update cancelled; prepared changes were not applied`:s.state===`failed`?`Update failed; review recovery actions in the overlay`:s.state===`interrupted`?`Update interrupted; review recovered state before retrying`:s.state===`succeeded`?`Update ready`:s.state===`cancelling`?s.cancellationDeferred?`Cancellation requested; finishing publication before stopping`:`Cancellation requested; waiting for processes and cleanup`:o[s.phase]}${s.finishedAt?` · ${i(s.finishedAt-s.startedAt)}`:``}`));let u=(t,n,i)=>{r.get(t)!==n&&(r.set(t,n),e(`${c} ${i}`))},d=s.progress;if(d){let e=d.current?.shortCommit,t=s.kind===`merge`?`${d.files?.length??0} conflicted files`:`${d.applied}/${d.total??`?`} commits applied · ${d.skipped} skipped${d.remaining===void 0?``:` · ${d.remaining} remaining`}${e?` · current ${e}`:``}${d.files?.length?` · ${d.files.length} conflicted files`:``}`;u(`progress`,t,t)}let f=new Set([`progress`,...s.steps.map(e=>e.id),...s.turns.map(e=>e.id),...s.activities.map(e=>e.id)]);for(let e of r.keys())f.has(e)||r.delete(e);for(let e of s.steps){let t=`${e.status}:${e.pulse??0}`,n=i((e.finishedAt??s.updatedAt)-e.startedAt);u(e.id,t,`${e.pulse&&e.status===`running`?`Still running: `:``}${e.label} ${e.status===`running`?`started`:e.status} · ${n}`)}for(let[e,t]of s.turns.entries())u(t.id,t.status,`AI ${t.stage===`verify`?`verification`:`resolution`} turn ${e+1} ${t.status}`);for(let e of s.activities){let t=e.command?.match(/^(?:\S*\/)?(?:bash|zsh|sh)\s+-(?:lc|c|cl)\s+(['"])([\s\S]*)\1$/)?.[2]??e.command,n=t&&/^(?:pnpm|npm|yarn|bun) (?:run )?(?:test|typecheck|build|lint|format|codegen|install(?: --frozen-lockfile)?|db (?:ensure|migrate-local|setup))$/.test(t)?t:void 0;u(e.id,e.status,`${n??e.label} ${e.status}${e.finishedAt?` · ${i(e.finishedAt-e.startedAt)}`:``}`)}}}const m=Symbol.for(`@coreframe/vite/managed-dev-session-states`),h=(()=>{let e=globalThis;return e[m]??=new Map})(),te=[100,500,2e3];function g({connectSupervisor:o,env:m=process.env,recoverSupervisor:h,startSession:g=c}={}){let v=m[i]===`1`,re=o??d,x=h??o??u,S,C,w,T,E,D,O,k,A,j=!1,M=!1,N=!1,P=!1,F=!1,I,L=new Map,R=new WeakMap,z=new Set,B=new Map,V=(e,t)=>{let n=R.get(e);return n||(n=r(),R.set(e,n)),`${n}:${t}`},H=(e,t)=>{let n=t?.clientId;typeof n==`string`&&/^[a-zA-Z0-9_-]{1,128}$/.test(n)&&R.set(e,n)},U=(e,t,n)=>{try{e.send(t,n)}catch(e){I?.event(`transport.delivery-failed`,{event:t,...f(e)},`warn`)}},W=(e,t)=>{B.set(V(e,t.requestId),t),B.size>100&&B.delete(B.keys().next().value),I?.event(`action.result-sent`,{operationId:t.requestId,failed:!!t.error,sessionId:t.status?.trace?.sessionId,revision:t.status?.trace?.revision,busy:!!t.status?.busy}),U(e,a.actionResult,t)},G={mode:`waiting`,warnings:[]},K=()=>{let e=C;return T?.(),T=void 0,E?.(),E=void 0,C=void 0,w=void 0,e},q=()=>A??=(async()=>{F=!0,await O,await k,P=!1;let e=S,t=C,n=w;S=void 0,K(),e&&D&&await _(D,e),t&&(n&&await t.release(n).catch(()=>void 0),t.close()),I?.event(`vite.detached`),I?.close()})();return{name:`coreframe:managed-dev`,apply:`serve`,async config(n={}){let r;if(v){let i=await e(t.resolve(n.root??process.cwd(),`package.json`),`utf8`).catch(e=>{if(e.code!==`ENOENT`)throw e});i&&(r=JSON.parse(i).engines?.coreframe)}return{define:{"import.meta.env.COREFRAME_MANAGED_DEV":JSON.stringify(v),"import.meta.env.COREFRAME_VERSION":JSON.stringify(r)??`undefined`}}},configureServer(e){if(!v)return;let t=e.config.root;I=new l(t,`vite`),I.event(`vite.attached`),D=t;let i=!1,o=!1,c=()=>S?.getStatus()??G,u,d=p(t=>e.config.logger.info?.(t)),h=(e,t)=>{d(e);let n=JSON.stringify([e.trace,e.mode,e.busy]);n!==u&&(u=n,I?.event(`status.sent`,{sessionId:e.trace?.sessionId,revision:e.trace?.revision,operationId:e.trace?.operationId,mode:e.mode,busy:!!e.busy,delivery:t},`debug`))},A=()=>{if(!F){let t=c();h(t,`broadcast`),U(e.ws,a.status,{status:t})}},R=()=>{if(o||F)return;o=!0,I?.event(`vite.restart-queued`);let t=c().operation;e.config.logger.info?.(`[managed-dev ${t?.id.slice(0,8)??`restart`}] Restarting Vite`),queueMicrotask(()=>{o=!1,Promise.resolve(e.restart()).catch(t=>{I?.event(`vite.restart-failed`,f(t),`error`);let n=t instanceof Error?t.message:String(t);e.config.logger.error(`Coreframe managed development restart failed: ${n}`,{error:t instanceof Error?t:void 0})})})},ie=(e,t)=>{if(F||C!==e||!P||t.event!==`managed-dev`)return;if(t.kind===`status`){G=t.status,A();return}if(t.kind===`restart`){i=!0,L.size===0&&(i=!1,R());return}let n=L.get(t.requestId);!n||!t.codex||typeof t.codex!=`object`||U(n.client,a.codex,{...t.codex,requestId:n.requestId})},J=async e=>{I?.event(`supervisor.connecting`,{supervisorId:e.state?.supervisorId,supervisorPid:e.state?.pid});let t,n=!1,r=e.onEvent(t=>ie(e,t)),i=e.onClose(t=>{n=!0,!F&&C===e&&M&&!N&&!k&&(P=!1,Y(t))});C=e,T=r,E=i;try{await e.subscribe([`managed-dev`]);let r=await e.acquireManagedDev({env:m});if(I?.event(`supervisor.connected`,{supervisorId:e.state?.supervisorId,leaseId:r.leaseId}),t=r.leaseId,n||F||C!==e)throw Error(`The development supervisor disconnected while managed development was attaching.`);w=r.leaseId,G=r.status,P=!0,M=!0,A()}catch(n){throw C===e?K():(r(),i()),t&&await e.release(t).catch(()=>void 0),e.close(),n}};function Y(n,r=!1){if(F||!M)return Promise.resolve();if(k)return k;P=!1,I?.event(`supervisor.recovery-started`,{explicit:r,...f(n)},`warn`),j=!1,K()?.close(),G={message:r?`Managed development supervisor retrying connection.`:`Managed development supervisor disconnected. Reconnecting…`,mode:`waiting`,warnings:[]},A();let i=(async()=>{let r=n;for(let n=0;n<4;n+=1){if(F||(n>0&&await new Promise(e=>setTimeout(e,te[n-1]??2e3)),F))return;try{let e=await x({cwd:t,env:m,requiredResources:[`managed-dev`]});if(!e)throw Error(`No managed development supervisor is available.`);if(F){e.close();return}await J(e),j=!1;return}catch(t){I?.event(`supervisor.recovery-failed`,{attempt:n+1,...f(t)},`warn`),r=t;let i=y(t);e.config.logger.error(`Coreframe managed development supervisor recovery attempt ${n+1} failed: ${i}`,{error:t instanceof Error?t:void 0}),n+1<4&&(G={message:`Managed development supervisor recovery is retrying (${n+2}/4).`,mode:`waiting`,warnings:[]},A())}}if(F)return;let i=y(r),a=`${s}4 attempts: ${i} Retry to reconnect managed development.`;j=!0,G={message:a,mode:`error`,warnings:[a]},e.config.logger.error(`Coreframe managed development supervisor recovery failed: ${i}`,{error:r instanceof Error?r:void 0}),A()})();return k=i,i.then(()=>{k===i&&(k=void 0)},()=>{k===i&&(k=void 0)}),i}let X=(e,t)=>{M&&C===e&&b(t)&&(P=!1,Y(t))},Z=async(t,n)=>{H(n,t);let r=t?.requestIds;if(Array.isArray(r))for(let e of r.slice(0,100)){let t=typeof e==`string`?B.get(V(n,e)):void 0;t?(I?.event(`action.result-replayed`,{operationId:t.requestId},`debug`),U(n,a.actionResult,t)):typeof e==`string`&&!z.has(V(n,e))&&W(n,{requestId:e,errorCode:`UNKNOWN_REQUEST`,error:`The server has no result for this request. Check the current status before trying again.`})}let i=C;if(i&&P)try{G=(await i.managedDevStatus()).status}catch(t){let n=t instanceof Error?t.message:String(t);e.config.logger.error(`Coreframe managed development status failed: ${n}`,{error:t instanceof Error?t:void 0}),X(i,t)}let o=c();h(o,`response`),U(n,a.status,{status:o})},Q=e=>{if(!e||typeof e!=`object`)return;let t=e;if(![`status-received`,`action-result-received`,`connected`,`disconnected`].includes(t.type))return;let n=e=>typeof e==`string`&&/^[a-zA-Z0-9-]{1,160}$/.test(e)?e:void 0;I?.event(`overlay.${t.type}`,{operationId:n(t.requestId),sessionId:n(t.sessionId),revision:Number.isSafeInteger(t.revision)&&t.revision>=0?t.revision:void 0,busy:typeof t.busy==`boolean`?t.busy:void 0,pending:typeof t.pending==`boolean`?t.pending:void 0},`debug`)},ae=async(t,n)=>{if(t.action.type===`retry-supervisor`){try{if(!M||!j)throw Error(`Managed development supervisor recovery is not available.`);await Y(void 0,!0);let e=c();if(j)throw Error(e.message??`Managed development supervisor recovery failed.`);W(n,{requestId:t.requestId,status:e})}catch(r){let i=y(r);e.config.logger.error(`Coreframe managed development action failed: ${i}`,{error:r instanceof Error?r:void 0}),W(n,{error:i,requestId:t.requestId,status:c()})}return}let o;try{if(!P)throw Error(`Managed development is still initializing.`);let o=C;if(o){let a=r();L.set(a,{client:n,requestId:t.requestId});try{let r=await o.managedDevAction({action:t.action,requestId:a,operationId:t.requestId,requestKey:V(n,t.requestId)});r.status&&(G=r.status),r.error&&e.config.logger.error(`Coreframe managed development action failed: ${r.error}`),W(n,{...r,requestId:t.requestId}),!r.error&&i&&(i=!1,R())}catch(e){throw X(o,e),e}finally{L.delete(a)}return}let s=S;if(!s)throw Error(`Managed development is still initializing.`);let c=await s.action(t.action,{operationId:t.requestId,requestKey:V(n,t.requestId),onCodexEvent:e=>U(n,a.codex,{...e,requestId:t.requestId})});W(n,{requestId:t.requestId,...c}),i&&(i=!1,queueMicrotask(()=>{q().then(()=>e.restart()).catch(t=>{let n=t instanceof Error?t.message:String(t);e.config.logger.error(`Coreframe managed development restart failed: ${n}`,{error:t instanceof Error?t:void 0})})}));return}catch(e){o=e}let s=o instanceof Error?o.message:String(o);e.config.logger.error(`Coreframe managed development action failed: ${s}`,{error:o instanceof Error?o:void 0}),W(n,{error:s,requestId:t.requestId,status:c()})},$=async(e,t)=>{H(t,e);let n=V(t,e.requestId);if(z.has(n))return;let r=B.get(n);if(r){U(t,a.actionResult,r);return}z.add(n);try{await I.run({operationId:e.requestId,actionType:e.action.type},()=>ee(`vite.action`,()=>ae(e,t)))}finally{z.delete(n)}};e.ws.on(a.statusRequest,Z),e.ws.on(a.action,$),e.ws.on(a.diagnostic,Q),O=(async()=>{let r,a;try{if(N=!0,r=await re({cwd:t,env:m,requiredResources:[`managed-dev`]}),r){if(F){r.close();return}await J(r);return}let e=await n({cwd:t});if(F)return;if(a=await g({config:e,cwd:t,env:m,onRestart:()=>{i=!0},onStatusChange:e=>{G=e,A()}}),S=a,G=a.getStatus(),F){S=void 0,await a.close();return}if(await ne(t,a),F){S=void 0,await _(t,a);return}P=!0}catch(t){if(I?.event(`vite.initialization-failed`,f(t),`error`),r&&C===r&&(K(),r.close()),S===a&&(S=void 0),!F){let n=t instanceof Error?t.message:String(t);G={message:n,mode:`error`,warnings:[n]},e.config.logger.error(`Coreframe managed development initialization failed: ${n}`,{error:t instanceof Error?t:void 0}),A()}}finally{N=!1}})(),e.httpServer?.once(`close`,()=>{e.ws.off(a.statusRequest,Z),e.ws.off(a.action,$),e.ws.off(a.diagnostic,Q),q()})},async closeBundle(){await q()}}}async function ne(e,t){await v(e,async e=>{let n=e.session;e.session=void 0,await n?.close();try{await t.activate(),e.session=t}catch(e){throw await t.close(),e}})}async function _(e,t){await v(e,async e=>{e.session===t&&(e.session=void 0),await t.close()})}async function v(e,t){let n=h.get(e);n||(n={transition:Promise.resolve()},h.set(e,n));let r=n.transition,i;n.transition=new Promise(e=>{i=()=>e()}),await r;try{await t(n)}finally{i()}}function y(e){return e instanceof Error?e.message:String(e)}function b(e){if(!e||typeof e!=`object`)return!1;let t=e;return t.retryable===!0||t.code===`LEASE_EXPIRED`||t.code===`SUPERVISOR_STOPPING`}export{g as t};
|
|
@@ -1,6 +1,38 @@
|
|
|
1
|
+
import { ManagedDevAction, ManagedDevCodexMessage, ManagedDevCodexOptions, ManagedDevRebasedCommit, ManagedDevRecoveryAction, ManagedDevStatus } from "@coreframe/dev-contracts/managed-dev";
|
|
1
2
|
import { ReactNode } from "react";
|
|
2
3
|
|
|
3
4
|
//#region overlay/managed-dev-overlay.d.ts
|
|
5
|
+
type ActionSuccess = {
|
|
6
|
+
heading: string;
|
|
7
|
+
message: string;
|
|
8
|
+
preserveDuringStatus?: boolean;
|
|
9
|
+
};
|
|
10
|
+
type ManagedDevOverlayAction = ManagedDevAction | ManagedDevRecoveryAction;
|
|
11
|
+
type CodexState = {
|
|
12
|
+
commits: ManagedDevRebasedCommit[];
|
|
13
|
+
messages: ManagedDevCodexMessage[];
|
|
14
|
+
phase: "running" | "complete" | "error";
|
|
15
|
+
requestId: string;
|
|
16
|
+
stage: "resolve" | "verify";
|
|
17
|
+
startedAt?: number;
|
|
18
|
+
totalCommits?: number;
|
|
19
|
+
};
|
|
20
|
+
type ManagedDevOverlayDebugScenario = {
|
|
21
|
+
pendingAction?: ManagedDevOverlayAction;
|
|
22
|
+
connected?: boolean;
|
|
23
|
+
controls?: {
|
|
24
|
+
pending?: boolean;
|
|
25
|
+
error?: string;
|
|
26
|
+
success?: string;
|
|
27
|
+
};
|
|
28
|
+
codex?: CodexState;
|
|
29
|
+
description: string;
|
|
30
|
+
error?: string;
|
|
31
|
+
id: string;
|
|
32
|
+
label: string;
|
|
33
|
+
status: ManagedDevStatus;
|
|
34
|
+
success?: ActionSuccess;
|
|
35
|
+
};
|
|
4
36
|
type ManagedDevOverlayIndicatorProps = {
|
|
5
37
|
color?: string;
|
|
6
38
|
paused?: boolean;
|
|
@@ -20,6 +52,31 @@ declare function ManagedDevOverlay({
|
|
|
20
52
|
indicator,
|
|
21
53
|
rightOffset
|
|
22
54
|
}: ManagedDevOverlayProps): import("react").JSX.Element;
|
|
55
|
+
type ManagedDevOverlayDebugSnapshot = {
|
|
56
|
+
available: boolean;
|
|
57
|
+
scenarioId?: string;
|
|
58
|
+
status?: ManagedDevStatus;
|
|
59
|
+
codex?: CodexState;
|
|
60
|
+
error?: string;
|
|
61
|
+
success?: ActionSuccess;
|
|
62
|
+
errorsDismissed: boolean;
|
|
63
|
+
codexOptions: ManagedDevCodexOptions;
|
|
64
|
+
controlSuccess?: string;
|
|
65
|
+
pendingAction?: ManagedDevOverlayAction;
|
|
66
|
+
controls?: ManagedDevOverlayDebugScenario["controls"];
|
|
67
|
+
};
|
|
68
|
+
declare function ManagedDevOverlayDebug({
|
|
69
|
+
scenario: suppliedScenario,
|
|
70
|
+
onSnapshot,
|
|
71
|
+
onAction,
|
|
72
|
+
bottomOffset,
|
|
73
|
+
indicator,
|
|
74
|
+
rightOffset
|
|
75
|
+
}: Pick<ManagedDevOverlayProps, "bottomOffset" | "indicator" | "rightOffset"> & {
|
|
76
|
+
scenario?: ManagedDevOverlayDebugScenario;
|
|
77
|
+
onSnapshot?(snapshot: ManagedDevOverlayDebugSnapshot): void;
|
|
78
|
+
onAction?(action: ManagedDevOverlayAction): void;
|
|
79
|
+
}): import("react").JSX.Element;
|
|
23
80
|
declare function ManagedDevOverlayIndicator({
|
|
24
81
|
color,
|
|
25
82
|
paused,
|
|
@@ -27,4 +84,4 @@ declare function ManagedDevOverlayIndicator({
|
|
|
27
84
|
warningColor
|
|
28
85
|
}: ManagedDevOverlayIndicatorProps): import("react").JSX.Element;
|
|
29
86
|
//#endregion
|
|
30
|
-
export { ManagedDevOverlay, ManagedDevOverlayIndicator, ManagedDevOverlayIndicatorProps, ManagedDevOverlayProps, toggleManagedDevOverlay };
|
|
87
|
+
export { ManagedDevOverlay, ManagedDevOverlayDebug, ManagedDevOverlayDebugScenario, ManagedDevOverlayDebugSnapshot, ManagedDevOverlayIndicator, ManagedDevOverlayIndicatorProps, ManagedDevOverlayProps, toggleManagedDevOverlay };
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import{
|
|
1
|
+
import{developmentControlsEvents as e}from"@coreframe/dev-contracts/development-controls";import{canResetManagedDevBranches as t,isManagedDevOperationActive as n,managedDevCodexEfforts as r,managedDevCodexModels as i,managedDevEvents as a,managedDevOperationPhases as o,managedDevSupervisorRecoveryErrorPrefix as s,managedDevSupervisorRecoveryPrefix as c}from"@coreframe/dev-contracts/managed-dev";import{cloneElement as l,createContext as u,createElement as d,forwardRef as f,isValidElement as p,useCallback as m,useContext as h,useEffect as g,useId as _,useLayoutEffect as v,useRef as y,useState as b,useSyncExternalStore as x}from"react";import{createPortal as S}from"react-dom";import{Fragment as C,jsx as w,jsxs as T}from"react/jsx-runtime";const E=()=>{if(typeof document>`u`)return;let e=document.querySelector(`meta[name="csp-nonce"]`);if(e?.content)return e.content;let t=document.querySelector(`script[nonce]`),n=t?.nonce||t?.getAttribute(`nonce`);if(n)return n},D=(e,t,n)=>{if(typeof document>`u`)return null;let r=`isolet-style-${e}`,i=typeof CSS<`u`&&CSS.escape?CSS.escape(r):r,a=`getElementById`in n?n.getElementById(r):n.querySelector(`#${i}`);if(a)return a.textContent=t,a;let o=document.createElement(`style`);o.id=r;let s=E();return s&&o.setAttribute(`nonce`,s),o.textContent=t,n.appendChild(o),o},O=`data-isolet`,k=(e,t,n={})=>{if(typeof document>`u`)return{host:null,shadowRoot:null,container:t,target:t};let r=n.isolation??`shadow-dom`;if(r===`none`){let r=`[${O}="${e}"]`,i=t.querySelector(r);if(i)return{host:i,shadowRoot:null,container:i,target:t};let a=document.createElement(`div`);if(a.setAttribute(O,e),n.hostAttributes)for(let[e,t]of Object.entries(n.hostAttributes))a.setAttribute(e,t);return A(a,n),n.css&&D(e,n.css,t),t.appendChild(a),{host:a,shadowRoot:null,container:a,target:t}}let i=`[${O}="${e}"]`,a=t.querySelector(i);if(a){if(r===`shadow-dom`&&a.shadowRoot){let e=a.shadowRoot.querySelector(`[${O}-root]`);if(e)return{host:a,shadowRoot:a.shadowRoot,container:e,target:t}}else if(r===`scoped`)return{host:a,shadowRoot:null,container:a,target:t}}let o=document.createElement(`div`);if(o.setAttribute(O,e),n.hostAttributes)for(let[e,t]of Object.entries(n.hostAttributes))o.setAttribute(e,t);if(r===`shadow-dom`){o.style.all=`initial`;let r=o.attachShadow({mode:n.shadowMode??`open`});n.css&&D(e,n.css,r);let i=document.createElement(`div`);return i.setAttribute(`${O}-root`,``),r.appendChild(i),A(o,n),t.appendChild(o),{host:o,shadowRoot:r,container:i,target:t}}return A(o,n),n.css&&D(e,n.css,t),t.appendChild(o),{host:o,shadowRoot:null,container:o,target:t}},A=(e,t)=>{if(t.hostStyles)for(let[n,r]of Object.entries(t.hostStyles))r==null||typeof r==`function`||e.style.setProperty(n.replace(/[A-Z]/g,e=>`-${e.toLowerCase()}`),String(r));t.zIndex!=null&&(e.style.zIndex=String(t.zIndex))},j=(...e)=>e.filter((e,t,n)=>!!e&&e.trim()!==``&&n.indexOf(e)===t).join(` `).trim(),M=e=>e.replace(/([a-z0-9])([A-Z])/g,`$1-$2`).toLowerCase(),N=e=>e.replace(/^([A-Z])|[\s-_]+(\w)/g,(e,t,n)=>n?n.toUpperCase():t.toLowerCase()),P=e=>{
|
|
2
2
|
/**
|
|
3
3
|
* @license lucide-react v1.24.0 - ISC
|
|
4
4
|
*
|
|
@@ -23,21 +23,21 @@ import{SpinnerInline as e}from"@agilek/cli-loaders";import{developmentControlsEv
|
|
|
23
23
|
* This source code is licensed under the ISC license.
|
|
24
24
|
* See the LICENSE file in the root directory of this source tree.
|
|
25
25
|
*/
|
|
26
|
-
let t=
|
|
26
|
+
let t=N(e);return t.charAt(0).toUpperCase()+t.slice(1)};
|
|
27
27
|
/**
|
|
28
28
|
* @license lucide-react v1.24.0 - ISC
|
|
29
29
|
*
|
|
30
30
|
* This source code is licensed under the ISC license.
|
|
31
31
|
* See the LICENSE file in the root directory of this source tree.
|
|
32
32
|
*/
|
|
33
|
-
var
|
|
33
|
+
var F={xmlns:`http://www.w3.org/2000/svg`,width:24,height:24,viewBox:`0 0 24 24`,fill:`none`,stroke:`currentColor`,strokeWidth:2,strokeLinecap:`round`,strokeLinejoin:`round`};
|
|
34
34
|
/**
|
|
35
35
|
* @license lucide-react v1.24.0 - ISC
|
|
36
36
|
*
|
|
37
37
|
* This source code is licensed under the ISC license.
|
|
38
38
|
* See the LICENSE file in the root directory of this source tree.
|
|
39
39
|
*/
|
|
40
|
-
const ee=e=>{for(let t in e)if(t.startsWith(`aria-`)||t===`role`||t===`title`)return!0;return!1},
|
|
40
|
+
const ee=e=>{for(let t in e)if(t.startsWith(`aria-`)||t===`role`||t===`title`)return!0;return!1},I=u({}),te=()=>h(I),L=f(({color:e,size:t,strokeWidth:n,absoluteStrokeWidth:r,className:i=``,children:a,iconNode:o,...s},c)=>{
|
|
41
41
|
/**
|
|
42
42
|
* @license lucide-react v1.24.0 - ISC
|
|
43
43
|
*
|
|
@@ -50,14 +50,14 @@ const ee=e=>{for(let t in e)if(t.startsWith(`aria-`)||t===`role`||t===`title`)re
|
|
|
50
50
|
* This source code is licensed under the ISC license.
|
|
51
51
|
* See the LICENSE file in the root directory of this source tree.
|
|
52
52
|
*/
|
|
53
|
-
let{size:
|
|
53
|
+
let{size:l=24,strokeWidth:u=2,absoluteStrokeWidth:f=!1,color:p=`currentColor`,className:m=``}=te()??{},h=r??f?Number(n??u)*24/Number(t??l):n??u;return d(`svg`,{ref:c,...F,width:t??l??F.width,height:t??l??F.height,stroke:e??p,strokeWidth:h,className:j(`lucide`,m,i),...!a&&!ee(s)&&{"aria-hidden":`true`},...s},[...o.map(([e,t])=>d(e,t)),...Array.isArray(a)?a:[a]])}),R=(e,t)=>{
|
|
54
54
|
/**
|
|
55
55
|
* @license lucide-react v1.24.0 - ISC
|
|
56
56
|
*
|
|
57
57
|
* This source code is licensed under the ISC license.
|
|
58
58
|
* See the LICENSE file in the root directory of this source tree.
|
|
59
59
|
*/
|
|
60
|
-
let n=
|
|
60
|
+
let n=f(({className:n,...r},i)=>d(L,{ref:i,iconNode:t,className:j(`lucide-${M(P(e))}`,`lucide-${e}`,n),...r}));return n.displayName=P(e),n},ne=R(`arrow-left`,[[`path`,{d:`m12 19-7-7 7-7`,key:`1l729n`}],[`path`,{d:`M19 12H5`,key:`x3x0zl`}]]),re=R(`bug`,[[`path`,{d:`M12 20v-9`,key:`1qisl0`}],[`path`,{d:`M14 7a4 4 0 0 1 4 4v3a6 6 0 0 1-12 0v-3a4 4 0 0 1 4-4z`,key:`uouzyp`}],[`path`,{d:`M14.12 3.88 16 2`,key:`qol33r`}],[`path`,{d:`M21 21a4 4 0 0 0-3.81-4`,key:`1b0z45`}],[`path`,{d:`M21 5a4 4 0 0 1-3.55 3.97`,key:`5cxbf6`}],[`path`,{d:`M22 13h-4`,key:`1jl80f`}],[`path`,{d:`M3 21a4 4 0 0 1 3.81-4`,key:`1fjd4g`}],[`path`,{d:`M3 5a4 4 0 0 0 3.55 3.97`,key:`1d7oge`}],[`path`,{d:`M6 13H2`,key:`82j7cp`}],[`path`,{d:`m8 2 1.88 1.88`,key:`fmnt4t`}],[`path`,{d:`M9 7.13V6a3 3 0 1 1 6 0v1.13`,key:`1vgav8`}]]),z=R(`check`,[[`path`,{d:`M20 6 9 17l-5-5`,key:`1gmf2c`}]]),ie=R(`chevron-down`,[[`path`,{d:`m6 9 6 6 6-6`,key:`qrunsl`}]]),ae=R(`chevron-right`,[[`path`,{d:`m9 18 6-6-6-6`,key:`mthhwq`}]]),oe=R(`circle-check`,[[`circle`,{cx:`12`,cy:`12`,r:`10`,key:`1mglay`}],[`path`,{d:`m9 12 2 2 4-4`,key:`dzmm74`}]]),se=R(`circle-off`,[[`path`,{d:`m2 2 20 20`,key:`1ooewy`}],[`path`,{d:`M8.35 2.69A10 10 0 0 1 21.3 15.65`,key:`1pfsoa`}],[`path`,{d:`M19.08 19.08A10 10 0 1 1 4.92 4.92`,key:`1ablyi`}]]),ce=R(`circle-pause`,[[`circle`,{cx:`12`,cy:`12`,r:`10`,key:`1mglay`}],[`line`,{x1:`10`,x2:`10`,y1:`15`,y2:`9`,key:`c1nkhi`}],[`line`,{x1:`14`,x2:`14`,y1:`15`,y2:`9`,key:`h65svq`}]]),le=R(`cloud-download`,[[`path`,{d:`M12 13v8l-4-4`,key:`1f5nwf`}],[`path`,{d:`m12 21 4-4`,key:`1lfcce`}],[`path`,{d:`M4.393 15.269A7 7 0 1 1 15.71 8h1.79a4.5 4.5 0 0 1 2.436 8.284`,key:`ui1hmy`}]]),ue=R(`copy`,[[`rect`,{width:`14`,height:`14`,x:`8`,y:`8`,rx:`2`,ry:`2`,key:`17jyea`}],[`path`,{d:`M4 16c-1.1 0-2-.9-2-2V4c0-1.1.9-2 2-2h10c1.1 0 2 .9 2 2`,key:`zix9uf`}]]),de=R(`database`,[[`ellipse`,{cx:`12`,cy:`5`,rx:`9`,ry:`3`,key:`msslwz`}],[`path`,{d:`M3 5V19A9 3 0 0 0 21 19V5`,key:`1wlel7`}],[`path`,{d:`M3 12A9 3 0 0 0 21 12`,key:`mv7ke4`}]]),fe=R(`ellipsis-vertical`,[[`circle`,{cx:`12`,cy:`12`,r:`1`,key:`41hilf`}],[`circle`,{cx:`12`,cy:`5`,r:`1`,key:`gxeob9`}],[`circle`,{cx:`12`,cy:`19`,r:`1`,key:`lyex9k`}]]),pe=R(`git-commit-horizontal`,[[`circle`,{cx:`12`,cy:`12`,r:`3`,key:`1v7zrd`}],[`line`,{x1:`3`,x2:`9`,y1:`12`,y2:`12`,key:`1dyftd`}],[`line`,{x1:`15`,x2:`21`,y1:`12`,y2:`12`,key:`oup4p8`}]]),me=R(`list-checks`,[[`path`,{d:`M13 5h8`,key:`a7qcls`}],[`path`,{d:`M13 12h8`,key:`h98zly`}],[`path`,{d:`M13 19h8`,key:`c3s6r1`}],[`path`,{d:`m3 17 2 2 4-4`,key:`1jhpwq`}],[`path`,{d:`m3 7 2 2 4-4`,key:`1obspn`}]]),B=R(`loader-circle`,[[`path`,{d:`M21 12a9 9 0 1 1-6.219-8.56`,key:`13zald`}]]),he=R(`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`}]]),V=R(`refresh-cw`,[[`path`,{d:`M3 12a9 9 0 0 1 9-9 9.75 9.75 0 0 1 6.74 2.74L21 8`,key:`v9h5vc`}],[`path`,{d:`M21 3v5h-5`,key:`1q7to0`}],[`path`,{d:`M21 12a9 9 0 0 1-9 9 9.75 9.75 0 0 1-6.74-2.74L3 16`,key:`3uifl3`}],[`path`,{d:`M8 16H3v5`,key:`1cv678`}]]),ge=R(`rotate-ccw`,[[`path`,{d:`M3 12a9 9 0 1 0 9-9 9.75 9.75 0 0 0-6.74 2.74L3 8`,key:`1357e3`}],[`path`,{d:`M3 3v5h5`,key:`1xhq8a`}]]),_e=R(`sparkles`,[[`path`,{d:`M11.017 2.814a1 1 0 0 1 1.966 0l1.051 5.558a2 2 0 0 0 1.594 1.594l5.558 1.051a1 1 0 0 1 0 1.966l-5.558 1.051a2 2 0 0 0-1.594 1.594l-1.051 5.558a1 1 0 0 1-1.966 0l-1.051-5.558a2 2 0 0 0-1.594-1.594l-5.558-1.051a1 1 0 0 1 0-1.966l5.558-1.051a2 2 0 0 0 1.594-1.594z`,key:`1s2grr`}],[`path`,{d:`M20 2v4`,key:`1rf3ol`}],[`path`,{d:`M22 4h-4`,key:`gwowj6`}],[`circle`,{cx:`4`,cy:`20`,r:`2`,key:`6kqj1y`}]]),ve=R(`triangle-alert`,[[`path`,{d:`m21.73 18-8-14a2 2 0 0 0-3.48 0l-8 14A2 2 0 0 0 4 21h16a2 2 0 0 0 1.73-3`,key:`wmoenq`}],[`path`,{d:`M12 9v4`,key:`juzpu7`}],[`path`,{d:`M12 17h.01`,key:`p32p05`}]]),ye=R(`x`,[[`path`,{d:`M18 6 6 18`,key:`1bl5f8`}],[`path`,{d:`m6 6 12 12`,key:`d8bk6v`}]])
|
|
61
61
|
/**
|
|
62
62
|
* @license lucide-react v1.24.0 - ISC
|
|
63
63
|
*
|
|
@@ -166,11 +166,30 @@ let n=c(({className:n,...r},i)=>s(re,{ref:i,iconNode:t,className:T(`lucide-${E(O
|
|
|
166
166
|
* This source code is licensed under the ISC license.
|
|
167
167
|
* See the LICENSE file in the root directory of this source tree.
|
|
168
168
|
*/
|
|
169
|
-
;function he(){return import.meta.hot}const R={connect:`vite:ws:connect`,disconnect:`vite:ws:disconnect`};function ge(){return import.meta.hot}var z={actionError:`actionError`,actions:`actions`,actionSuccess:`actionSuccess`,button:`button`,"button-spin":`button-spin`,buttonSpinner:`buttonSpinner`,checkbox:`checkbox`,checkCommand:`checkCommand`,checkFailure:`checkFailure`,checkGuidance:`checkGuidance`,codexHistoryList:`codexHistoryList`,codexHistorySummary:`codexHistorySummary`,codexMessage:`codexMessage`,codexMessageAge:`codexMessageAge`,codexMessageAgent:`codexMessageAgent`,codexMessageHeader:`codexMessageHeader`,codexMessageLabel:`codexMessageLabel`,codexMessageText:`codexMessageText`,codexMessageThought:`codexMessageThought`,codexMessageUser:`codexMessageUser`,codexOutput:`codexOutput`,codexTranscript:`codexTranscript`,codexWaiting:`codexWaiting`,codexWorking:`codexWorking`,codexWorkingSpinner:`codexWorkingSpinner`,content:`content`,debugFooter:`debugFooter`,developmentControls:`developmentControls`,developmentControlsDropdown:`developmentControlsDropdown`,dialog:`dialog`,drawerBody:`drawerBody`,errorIcon:`errorIcon`,errorMessage:`errorMessage`,filePath:`filePath`,files:`files`,header:`header`,headerActions:`headerActions`,iconButton:`iconButton`,iconOnly:`iconOnly`,indicatorButton:`indicatorButton`,indicatorDot:`indicatorDot`,message:`message`,paragraph:`paragraph`,pendingCommits:`pendingCommits`,primary:`primary`,radiate:`radiate`,rebaseProgress:`rebaseProgress`,rebaseProgressFill:`rebaseProgressFill`,rebaseProgressLabel:`rebaseProgressLabel`,rebaseProgressTrack:`rebaseProgressTrack`,scenarioButton:`scenarioButton`,scenarioDescription:`scenarioDescription`,scenarioLabel:`scenarioLabel`,scenarioList:`scenarioList`,section:`section`,sectionDescription:`sectionDescription`,sectionHeading:`sectionHeading`,sectionLink:`sectionLink`,sectionTitle:`sectionTitle`,setupFailure:`setupFailure`,successIcon:`successIcon`,surface:`surface`,title:`title`,titleIcon:`titleIcon`,warning:`warning`};const B=`GPT-5.6 Luna (Max)`;let V=!1,_e=0,ve=0;const H=new Set,U=[{description:`A clean managed checkout with no available updates.`,id:`idle`,label:`No updates`,status:{mode:`managed`,warnings:[]}},{description:`Tracked and untracked files awaiting review.`,id:`local-changes`,label:`Review local changes`,status:{draft:{fingerprint:`debug-local-changes`,tracked:!0,untracked:[`src/web/new-feature.tsx`,`src/web/new-feature.style.ts`]},mode:`managed`,warnings:[]}},{description:`Local changes with a proposed Conventional Commit message.`,id:`confirm-commit`,label:`Confirm commit`,status:{draft:{fingerprint:`debug-confirm-commit`,tracked:!0,untracked:[`src/web/new-feature.tsx`]},mode:`managed`,proposal:`feat: add the new feature`,warnings:[]}},{description:`A newer commit is available from the local dev branch.`,id:`dev-update`,label:`Local dev update`,status:{mode:`managed`,target:{commit:`1234567890abcdef`,commits:[{commit:`fedcba0987654321`,shortCommit:`fedcba098765`,subject:`feat: add managed preview foundations`},{commit:`1234567890abcdef`,shortCommit:`1234567890ab`,subject:`feat: update the managed preview`}],shortCommit:`1234567890ab`,source:`dev`,subject:`feat: update the managed preview`},warnings:[]}},{description:`A newer upstream main commit is ready to refresh.`,id:`upstream-update`,label:`Upstream update`,status:{mode:`managed`,target:{commit:`abcdef1234567890`,commits:[{commit:`0123456789abcdef`,shortCommit:`0123456789ab`,subject:`chore: refresh shared dependencies`},{commit:`abcdef1234567890`,shortCommit:`abcdef123456`,subject:`fix: update shared project defaults`}],shortCommit:`abcdef123456`,source:`upstream`,subject:`fix: update shared project defaults`},warnings:[]}},{description:`The accepted update is currently being integrated.`,id:`busy`,label:`Busy integration`,status:{busy:`Integrating accepted update`,mode:`managed`,warnings:[]}},{description:`Managed development is paused until the checkout returns to main.`,id:`paused`,label:`Paused checkout`,status:{message:`Managed synchronization is paused until the primary checkout is back on local main.`,mode:`waiting`,warnings:[]}},{description:`Managed development cannot run from the current checkout.`,id:`unavailable`,label:`Unavailable checkout`,status:{message:`Managed development only runs from the primary checkout.`,mode:`unmanaged`,warnings:[]}},{description:`A managed-development warning requiring attention.`,id:`warning`,label:`Warning`,status:{mode:`managed`,warnings:[`The remote update could not be checked. The last known project state is shown.`]}},{description:`Typechecking failed after synchronization.`,id:`failed-check`,label:`Failed check`,status:{checks:{commit:`1234567890abcdef`,commands:[{command:`pnpm typecheck`,failureId:`debug-typecheck-failure`,output:`src/web/feature.tsx(12,4): error TS2322: Type mismatch.`,status:`failed`},{command:`pnpm test`,status:`passed`}],trigger:`synchronization`},mode:`managed`,warnings:[]}},{description:`Dependency installation failed after synchronization.`,id:`dependency-failure`,label:`Dependency failure`,status:{mode:`managed`,setupFailure:{command:`pnpm install --frozen-lockfile`,commit:`1234567890abcdef`,message:`The project was synchronized, but dependency installation failed. Fix the package or lockfile issue, then retry the install.`,output:`ERR_PNPM_OUTDATED_LOCKFILE Cannot install with a frozen lockfile.`,restartRequired:!0,stage:`dependencies`},warnings:[]}},{description:`Database migration failed and can be reset.`,id:`migration-failure`,label:`Database failure`,status:{mode:`managed`,setupFailure:{command:`pnpm db migrate-local`,commit:`1234567890abcdef`,message:`The project was synchronized, but its database migration failed. The previous database was restored.`,output:`Migration 0012_add_project_state failed: duplicate column name.`,restartRequired:!1,stage:`migration`},warnings:[]}},{codex:{commits:[{commit:`1234567890abcdef`,shortCommit:`1234567890ab`,subject:`feat: add managed development`}],messages:[{kind:`user`,text:`Resolve the current Git rebase conflicts in src/web/root.tsx.`},{kind:`thought`,text:`Inspecting the conflicting layout changes.`},{kind:`thought`,text:`Preserving the behavior introduced on both branches.`}],phase:`running`,requestId:`debug-codex-running`,totalCommits:4},description:`Codex is resolving conflicts with previous thoughts collapsed.`,id:`codex-running`,label:`Codex reasoning`,status:{busy:`Integrating accepted update`,mode:`managed`,warnings:[]}},{codex:{commits:[{commit:`1234567890abcdef`,shortCommit:`1234567890ab`,subject:`feat: add managed development`}],messages:[{kind:`user`,text:`Resolve the current Git rebase conflicts in src/web/root.tsx.`},{kind:`thought`,text:`Preserving the behavior introduced on both branches.`},{author:B,kind:`agent`,text:`Resolved root.tsx while preserving both the command layer and overlay mounting.`}],phase:`complete`,requestId:`debug-codex-message`,totalCommits:1},description:`Codex has produced its final message while synchronization finishes.`,id:`codex-message`,label:`Codex response`,status:{busy:`Integrating accepted update`,mode:`managed`,warnings:[]}},{codex:{commits:[],messages:[{kind:`user`,text:`Resolve the current Git merge conflicts in src/web/root.tsx.`},{kind:`thought`,text:`The conflict could not be resolved safely.`}],phase:`error`,requestId:`debug-codex-error`},description:`The Codex-assisted conflict resolution failed.`,error:`Codex could not resolve the merge conflicts.`,id:`codex-error`,label:`Codex failure`,status:{mode:`managed`,warnings:[]}},{description:`A durable Codex completion waiting for acknowledgment.`,id:`codex-finished`,label:`Codex finished`,status:{codexCompletion:{commits:[{commit:`1234567890abcdef`,shortCommit:`1234567890ab`,subject:`feat: add managed development`}],finalMessage:`Resolved root.tsx while preserving both the command layer and overlay mounting.`,id:`debug-completion`,messages:[{kind:`user`,text:`Resolve the current Git rebase conflicts in src/web/root.tsx.`},{kind:`thought`,text:`Inspecting the conflicting layout changes.`},{author:B,kind:`agent`,text:`Resolved root.tsx while preserving both the command layer and overlay mounting.`}],totalCommits:1},mode:`managed`,warnings:[]}},{description:`A successful synchronization result before it auto-dismisses.`,id:`success`,label:`Refresh success`,status:{mode:`managed`,warnings:[]},success:{heading:`Refresh complete`,message:`Your project is up to date.`}}],ye=[`codex-running`,`codex-finished`,`codex-message`,`codex-error`,`migration-failure`,`dependency-failure`,`failed-check`,`confirm-commit`,`local-changes`,`upstream-update`,`dev-update`,`busy`,`warning`,`paused`,`unavailable`,`success`,`idle`].map(e=>{let t=U.find(t=>t.id===e);if(!t)throw Error(`Missing managed dev debug scenario: ${e}`);return t});function be(){W(!V)}function W(e){if(V!==e){V=e;for(let e of H)e()}}function xe({bottomOffset:e,debug:t=!1,indicator:n,rightOffset:r}){return v(t?we:Se,{bottomOffset:e,indicator:n,rightOffset:r})}function Se({bottomOffset:e,indicator:t,rightOffset:n}){let{act:r,checkFailure:i,codex:o,dismissCheckFailure:s,dismissError:c,dismissSuccess:u,error:d,hmrReady:p,pendingAction:m,status:h,success:g}=Ge(),_=Ue();f(()=>{if(!g)return;let e=setTimeout(()=>{u(),W(!1)},1600);return()=>clearTimeout(e)},[u,g]);let y=t??v(q,{}),b=l(y)&&y.type===q?a(y,{paused:!h?.target}):y;return v(Ce,{bottomOffset:e,ready:p,indicator:p&&h&&$(h,i)?b:null,rightOffset:n,children:v(Ee,{act:r,checkFailure:i,codex:o,developmentControls:_,dismissCheckFailure:s,dismissError:c,error:d,onClose:()=>{h?.codexCompletion&&r({id:h.codexCompletion.id,type:`acknowledge-codex`}),W(!1)},pendingAction:m,status:h,success:g})})}function Ce({bottomOffset:e,children:t,indicator:n,openOnMount:r=!1,ready:i=!0,rightOffset:a}){let[o,s]=m(null),c=h(Ke,qe,Je);f(()=>{r&&W(!0);let e=!0,t=C(`coreframe-managed-dev`,document.body,{css:`@font-face{font-family:SN Pro Variable;font-style:normal;font-display:swap;font-weight:200 900;src:url(./files/sn-pro-cyrillic-ext-wght-normal.woff2)format("woff2-variations");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:SN Pro Variable;font-style:normal;font-display:swap;font-weight:200 900;src:url(./files/sn-pro-cyrillic-wght-normal.woff2)format("woff2-variations");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:SN Pro Variable;font-style:normal;font-display:swap;font-weight:200 900;src:url(./files/sn-pro-vietnamese-wght-normal.woff2)format("woff2-variations");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:SN Pro Variable;font-style:normal;font-display:swap;font-weight:200 900;src:url(./files/sn-pro-latin-ext-wght-normal.woff2)format("woff2-variations");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:SN Pro Variable;font-style:normal;font-display:swap;font-weight:200 900;src:url(./files/sn-pro-latin-wght-normal.woff2)format("woff2-variations");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
|
|
169
|
+
/**
|
|
170
|
+
* @license lucide-react v1.24.0 - ISC
|
|
171
|
+
*
|
|
172
|
+
* This source code is licensed under the ISC license.
|
|
173
|
+
* See the LICENSE file in the root directory of this source tree.
|
|
174
|
+
*/
|
|
175
|
+
/**
|
|
176
|
+
* @license lucide-react v1.24.0 - ISC
|
|
177
|
+
*
|
|
178
|
+
* This source code is licensed under the ISC license.
|
|
179
|
+
* See the LICENSE file in the root directory of this source tree.
|
|
180
|
+
*/
|
|
181
|
+
/**
|
|
182
|
+
* @license lucide-react v1.24.0 - ISC
|
|
183
|
+
*
|
|
184
|
+
* This source code is licensed under the ISC license.
|
|
185
|
+
* See the LICENSE file in the root directory of this source tree.
|
|
186
|
+
*/
|
|
187
|
+
;function be(){return import.meta.hot}const xe={connect:`vite:ws:connect`,disconnect:`vite:ws:disconnect`};function Se(){return import.meta.hot}function Ce(e){let t=e.ownerDocument;if(typeof e.showPopover!=`function`){let n=new MutationObserver(()=>{e.parentNode===t.body&&e.nextSibling&&t.body.appendChild(e)});return n.observe(t.body,{childList:!0}),()=>n.disconnect()}e.popover=`manual`;let n=[...t.querySelectorAll(`dialog:modal`)],r=t.activeElement?.closest(`dialog:modal`);r&&(n=n.filter(e=>e!==r).concat(r));let i=[],a=!1,o=!1,s=!0;function c(){if(o=!1,a)return;for(let e of t.querySelectorAll(`dialog:modal`))n.includes(e)||n.push(e);for(let e of i.splice(0))n=n.filter(t=>t!==e).concat(e);n=n.filter(e=>e.isConnected&&e.matches(`:modal`));let r=n.at(-1)??t.fullscreenElement??t.body,c=e.shadowRoot?.activeElement,l=e.parentElement!==r;!l&&!s&&e.matches(`:popover-open`)||((l||s)&&e.matches(`:popover-open`)&&e.hidePopover(),l&&r.appendChild(e),e.matches(`:popover-open`)||e.showPopover(),c instanceof HTMLElement&&c.focus({preventScroll:!0}),s=!1)}function l(e=!1){s||=e,!(o||a)&&(o=!0,queueMicrotask(c))}function u(t){if(!(t.target instanceof HTMLElement)||t.target===e||!t.target.matches(`[popover], dialog`))return;let n=t.newState===`open`;n&&t.target instanceof HTMLDialogElement&&i.push(t.target),l(n)}function d(t){t.target instanceof HTMLElement&&t.target!==e&&t.target.matches(`[popover], dialog`)&&l(t.newState===`open`)}function f(){l(!0)}let p=new MutationObserver(e=>{for(let t of e)t.type===`attributes`&&t.target instanceof HTMLDialogElement&&t.target.matches(`:modal`)&&i.push(t.target);l()});return p.observe(t.body,{attributes:!0,attributeFilter:[`open`],childList:!0,subtree:!0}),t.addEventListener(`beforetoggle`,u,!0),t.addEventListener(`toggle`,d,!0),t.addEventListener(`fullscreenchange`,f),c(),()=>{a=!0,p.disconnect(),t.removeEventListener(`beforetoggle`,u,!0),t.removeEventListener(`toggle`,d,!0),t.removeEventListener(`fullscreenchange`,f),e.matches(`:popover-open`)&&e.hidePopover()}}const we=`GPT-6 Luna (High)`,H=[{description:`Nothing actionable: neither the drawer nor its indicator renders.`,id:`idle`,label:`Settled — overlay hidden`,status:{mode:`managed`,warnings:[]}},{description:`A scrollable mix of tracked and untracked files, including renamed and long paths.`,id:`local-changes`,label:`Review local changes`,status:{draft:{fingerprint:`debug-local-changes`,tracked:!0,trackedFiles:[{path:`src/web/app.tsx`,status:` M`},{path:`src/web/old-feature.tsx`,status:` D`},{path:`src/web/components/navigation.tsx`,status:`M `},{path:`src/web/components/search.tsx`,status:`A `},{path:`src/web/features/settings/preferences.tsx`,status:`R `,originalPath:`src/web/settings.tsx`},{path:`src/web/features/projects/components/project-activity-history-panel.tsx`,status:` M`},{path:`src/server/routes/projects.ts`,status:` M`},{path:`src/server/services/notifications.ts`,status:`A `},{path:`src/shared/project-types.ts`,status:` M`},{path:`src/web/components/legacy-sidebar.tsx`,status:` D`}],artifactFiles:[`dist/bundle.js`,`tsconfig.tsbuildinfo`],untracked:[`dist/bundle.js`,`tsconfig.tsbuildinfo`,`src/web/new-feature.tsx`,`src/web/new-feature.style.ts`,`src/web/features/projects/components/project-activity-filter.tsx`,`src/web/features/projects/components/project-activity-empty-state.tsx`,`src/server/services/project-activity.ts`,`src/shared/activity-types.ts`]},mode:`managed`,warnings:[]}},{description:`Local changes with a proposed Conventional Commit message.`,id:`confirm-commit`,label:`Confirm commit`,status:{draft:{fingerprint:`debug-confirm-commit`,tracked:!0,trackedFiles:[{path:`src/web/app.tsx`,status:` M`},{path:`src/web/old-feature.tsx`,status:` D`}],untracked:[`src/web/new-feature.tsx`]},mode:`managed`,proposal:`feat: add the new feature`,warnings:[]}},{description:`A newer commit is available from the local dev branch.`,id:`dev-update`,label:`Local dev update`,status:{mode:`managed`,target:{commit:`1234567890abcdef`,commits:[{commit:`fedcba0987654321`,shortCommit:`fedcba098765`,subject:`feat: add managed preview foundations`},{commit:`1234567890abcdef`,shortCommit:`1234567890ab`,subject:`feat: update the managed preview`}],shortCommit:`1234567890ab`,source:`dev`,subject:`feat: update the managed preview`},warnings:[]}},{description:`A newer upstream main commit is ready to refresh.`,id:`upstream-update`,label:`Upstream update`,status:{mode:`managed`,target:{commit:`abcdef1234567890`,commits:[{commit:`0123456789abcdef`,shortCommit:`0123456789ab`,subject:`chore: refresh shared dependencies`},{commit:`abcdef1234567890`,shortCommit:`abcdef123456`,subject:`fix: update shared project defaults`}],shortCommit:`abcdef123456`,source:`upstream`,subject:`fix: update shared project defaults`},warnings:[]}},{description:`The accepted update is currently being integrated.`,id:`busy`,label:`Busy integration`,status:{busy:`Integrating accepted update`,mode:`managed`,warnings:[]}},{description:`Managed development is paused until the checkout returns to main.`,id:`paused`,label:`Paused checkout`,status:{message:`Managed synchronization is paused until the primary checkout is back on local main.`,mode:`waiting`,warnings:[]}},{description:`Managed development cannot run from the current checkout.`,id:`unavailable`,label:`Unavailable checkout`,status:{message:`Managed development only runs from the primary checkout.`,mode:`unmanaged`,warnings:[]}},{description:`A managed-development warning requiring attention.`,id:`warning`,label:`Warning`,status:{mode:`managed`,warnings:[`The remote update could not be checked. The last known project state is shown.`]}},{description:`Typechecking failed after synchronization.`,id:`failed-check`,label:`Failed check`,status:{checks:{commit:`1234567890abcdef`,commands:[{command:`pnpm typecheck`,failureId:`debug-typecheck-failure`,output:`src/web/feature.tsx(12,4): error TS2322: Type mismatch.`,status:`failed`},{command:`pnpm test`,status:`passed`}],trigger:`synchronization`},mode:`managed`,warnings:[]}},{description:`Dependency installation failed after synchronization.`,id:`dependency-failure`,label:`Dependency failure`,status:{mode:`managed`,setupFailure:{command:`pnpm install --frozen-lockfile`,commit:`1234567890abcdef`,message:`The project was synchronized, but dependency installation failed. Fix the package or lockfile issue, then retry the install.`,output:`ERR_PNPM_OUTDATED_LOCKFILE Cannot install with a frozen lockfile.`,restartRequired:!0,stage:`dependencies`},warnings:[]}},{description:`Database migration failed and can be reset.`,id:`migration-failure`,label:`Database failure`,status:{mode:`managed`,setupFailure:{command:`pnpm db migrate-local`,commit:`1234567890abcdef`,message:`The project was synchronized, but its database migration failed. The previous database was restored.`,output:`Migration 0012_add_project_state failed: duplicate column name.`,restartRequired:!1,stage:`migration`},warnings:[]}},{codex:{commits:[{commit:`1234567890abcdef`,shortCommit:`1234567890ab`,subject:`feat: add managed development`}],messages:[{kind:`user`,text:`Resolve the current Git rebase conflicts in src/web/root.tsx.`},{kind:`thought`,text:`Inspecting the conflicting layout changes.`},{kind:`thought`,text:`Preserving the behavior introduced on both branches.`}],phase:`running`,requestId:`debug-codex-running`,stage:`resolve`,totalCommits:4},description:`Codex is resolving conflicts with previous thoughts collapsed.`,id:`codex-running`,label:`Codex reasoning`,status:{busy:`Integrating accepted update`,mode:`managed`,warnings:[]}},{codex:{commits:[{commit:`1234567890abcdef`,shortCommit:`1234567890ab`,subject:`feat: add managed development`}],messages:[{kind:`user`,text:`Resolve the current Git rebase conflicts in src/web/root.tsx.`},{kind:`thought`,text:`Preserving the behavior introduced on both branches.`},{author:we,kind:`agent`,text:`Resolved root.tsx while preserving both the command layer and overlay mounting.`}],phase:`complete`,requestId:`debug-codex-message`,stage:`verify`,totalCommits:1},description:`Codex has produced its final message while synchronization finishes.`,id:`codex-message`,label:`Codex response`,status:{busy:`Integrating accepted update`,mode:`managed`,warnings:[]}},{codex:{commits:[],messages:[{kind:`user`,text:`Resolve the current Git merge conflicts in src/web/root.tsx.`},{kind:`thought`,text:`The conflict could not be resolved safely.`}],phase:`error`,requestId:`debug-codex-error`,stage:`resolve`},description:`The Codex-assisted conflict resolution failed.`,error:`Codex could not resolve the merge conflicts.`,id:`codex-error`,label:`Codex failure`,status:{mode:`managed`,warnings:[]}},{description:`A durable Codex completion waiting for acknowledgment.`,id:`codex-finished`,label:`Codex finished`,status:{codexCompletion:{commits:[{commit:`1234567890abcdef`,shortCommit:`1234567890ab`,subject:`feat: add managed development`}],finalMessage:`Resolved root.tsx while preserving both the command layer and overlay mounting.`,id:`debug-completion`,messages:[{kind:`user`,text:`Resolve the current Git rebase conflicts in src/web/root.tsx.`},{kind:`thought`,text:`Inspecting the conflicting layout changes.`},{author:we,kind:`agent`,text:`Resolved root.tsx while preserving both the command layer and overlay mounting.`}],totalCommits:1},mode:`managed`,warnings:[]}},{description:`A successful synchronization result before it auto-dismisses.`,id:`success`,label:`Refresh success`,status:{mode:`managed`,warnings:[]},success:{heading:`Refresh complete`,message:`Your project is up to date.`}}],U=H.find(e=>e.id===`codex-running`),Te=H.find(e=>e.id===`upstream-update`).status.target,W={mode:`managed`,warnings:[]},G=Date.now()-12e3;H.push({id:`starting`,label:`Starting supervisor`,description:`Waiting for the first managed status.`,status:{mode:`waiting`,warnings:[]}},{id:`error`,label:`Session failure`,description:`Managed development stopped with an actionable error.`,status:{mode:`error`,message:`Managed development could not acquire its checkout lock.`,warnings:[]}},{id:`pending-rebase`,label:`Rebase awaiting approval`,description:`A partial replay stopped at a conflict; original commits remain pinned.`,status:{...W,pendingRebase:{applied:2,commits:[{commit:`cafebabe12345678`,shortCommit:`cafebabe1234`,subject:`feat: retain local navigation`}],files:[`src/web/root.tsx`],target:Te}}},{...U,id:`merge-running`,label:`Merge resolution`,description:`AI resolving a merge conflict without a rebase commit count.`,codex:{...U.codex,commits:[],totalCommits:void 0,messages:[{kind:`user`,text:`Resolve the current Git merge conflicts in src/web/root.tsx.`},{kind:`agent`,text:`Preserving navigation changes from both branches.`}]}},{...U,id:`verification`,label:`Verification tools`,description:`Verification with concurrent tools and expandable output.`,codex:{...U.codex,stage:`verify`,messages:[{kind:`user`,text:`Verify the prepared rebase result.`},{kind:`agent`,text:`The conflicts are resolved. Running typecheck and tests.`}]},status:{...W,busy:`Verifying prepared update`,activities:[{id:`typecheck`,label:`Typecheck`,command:`pnpm typecheck`,source:`codex`,stage:`verify`,status:`running`,startedAt:G},{id:`tests`,label:`Tests`,command:`pnpm test`,source:`codex`,stage:`verify`,status:`running`,startedAt:G},{id:`install`,label:`Dependencies`,command:`pnpm install --frozen-lockfile`,source:`supervisor`,stage:`verify`,status:`succeeded`,startedAt:G-4e3,finishedAt:G,output:`Lockfile is up to date`}]}},{id:`activity-failure`,label:`Failed and interrupted tools`,description:`Failed output alongside interrupted and cancelled activities.`,status:{...W,activities:[{id:`check`,label:`Typecheck`,command:`pnpm typecheck`,source:`codex`,status:`failed`,startedAt:G,finishedAt:G+1e3,exitCode:1,output:`src/web/root.tsx: Type mismatch`},{id:`build`,label:`Build`,command:`pnpm build`,source:`codex`,status:`interrupted`,startedAt:G,finishedAt:G+2e3},{id:`test`,label:`Tests`,command:`pnpm test`,source:`supervisor`,status:`cancelled`,startedAt:G,finishedAt:G+2e3}]}},{id:`codegen-failure`,label:`Codegen failure`,description:`Synchronized changes require a codegen retry.`,status:{...W,setupFailure:{command:`pnpm codegen`,commit:Te.commit,message:`Code generation failed. Fix the configuration and retry.`,output:`Invalid Panda configuration`,restartRequired:!1,stage:`codegen`}}},{id:`checks-running`,label:`Checks in progress`,description:`Post-synchronization checks running and pending.`,status:{...W,checks:{commit:Te.commit,trigger:`synchronization`,commands:[{command:`pnpm typecheck`,status:`running`},{command:`pnpm test`,status:`pending`}]}}},{id:`checks-passed`,label:`Checks passed`,description:`Both post-synchronization checks passed.`,status:{...W,checks:{commit:Te.commit,trigger:`synchronization`,commands:[{command:`pnpm typecheck`,status:`passed`},{command:`pnpm test`,status:`passed`}]}}},{id:`supervisor-recovering`,label:`Supervisor reconnecting`,description:`Automatic supervisor recovery is in progress.`,status:{mode:`waiting`,message:`Managed development supervisor is reconnecting.`,warnings:[]}},{id:`supervisor-failed`,label:`Supervisor recovery exhausted`,description:`Automatic recovery failed; manual retry remains available.`,status:{mode:`error`,message:`Managed development supervisor recovery failed after 4 attempts.`,warnings:[]}},{id:`cancelled`,label:`Update cancelled`,description:`Simulated cancellation has settled; no work is running.`,status:{...W,message:`The update integration was cancelled.`}}),H.push({...U,id:`cancelling`,label:`Cancellation requested`,description:`Cancel request pending while the operation is still active.`,pendingAction:{type:`cancel-codex`}},{id:`verification-setup`,label:`Verification setup`,description:`Supervisor preparing isolated verification dependencies before AI starts.`,status:{...W,busy:`Preparing verification`,activities:[{id:`install`,label:`Installing verification dependencies`,command:`pnpm install --frozen-lockfile`,source:`supervisor`,stage:`verify`,status:`running`,startedAt:G}]}},{id:`request-error`,label:`Action request failed`,description:`An action failed while the managed checkout remains available.`,status:W,error:`The working tree changed. Review the current changes before retrying.`},{id:`controls-running`,label:`Vite restart pending`,description:`Development controls waiting for a restart acknowledgment.`,status:W,controls:{pending:!0}},{id:`controls-failure`,label:`Vite restart failed`,description:`Development controls have a recoverable error.`,status:W,controls:{error:`Vite restart failed. Try again.`}},{id:`controls-success`,label:`Vite restart acknowledged`,description:`Development controls report a successful restart request.`,status:W,controls:{success:`Vite restart requested.`}});const Ee={id:`debug-operation-52e3`,requestIds:[`debug-resolve`],revision:8,sessionId:`debug-session`,source:`upstream`,target:Te.commit,kind:`rebase`,state:`running`,phase:`resolving`,startedAt:G,updatedAt:Date.now(),cancellation:`available`,published:!1,progress:{applied:1,total:4,skipped:0,remaining:3,current:U.codex.commits[0],files:[`src/web/root.tsx`,`src/web/navigation.tsx`]},turns:[{id:`first-stop`,stage:`resolve`,startedAt:G,finishedAt:G+1e3,status:`complete`,messages:[{kind:`agent`,author:we,text:`Resolved the first conflict while retaining local navigation.`}]},{id:`second-stop`,stage:`resolve`,startedAt:G+1e3,status:`running`,messages:U.codex.messages}],steps:[{id:`prepare`,label:`Prepare integration`,phase:`preparing`,status:`succeeded`,startedAt:G,finishedAt:G+1e3},{id:`replay`,label:`Replay commits`,phase:`replaying`,status:`failed`,startedAt:G+1e3,finishedAt:G+2e3},{id:`resolve`,label:`AI conflict resolution`,phase:`resolving`,status:`running`,startedAt:G+2e3}],activities:[]},De=H.find(({id:e})=>e===`verification`),K={...Ee,phase:`verifying`,progress:{applied:4,skipped:0,total:4,remaining:0},turns:[...Ee.turns.map(e=>({...e,status:`complete`,finishedAt:G+3e3})),{id:`verify-turn`,stage:`verify`,startedAt:G+3e3,status:`running`,messages:De.codex.messages}],activities:De.status.activities};for(let e of[{id:`operation-resolving`,label:`Recoverable rebase`,description:`Server-owned progress, grouped AI turns and cancellation.`,operation:Ee},{id:`operation-verifying`,label:`Recoverable verification`,description:`Concurrent tools and a Cancel control recover from status alone.`,operation:K},{id:`operation-cancelling`,label:`Waiting for cancellation`,description:`Cancellation requested; cleanup and subprocess exit have not settled.`,operation:{...K,state:`cancelling`,cancellation:`requested`}},{id:`operation-publication-cancel`,label:`Finishing publication before stopping`,description:`A cancellation request waits for coherent Git publication.`,operation:{...Ee,phase:`publishing`,state:`cancelling`,cancellation:`requested`,cancellationDeferred:!0}},{id:`operation-offline`,label:`Disconnected operation`,description:`The last snapshot stays visible; network actions are disabled.`,connected:!1,operation:K},{id:`operation-interrupted`,label:`Interrupted supervisor`,description:`An interrupted owner leaves a persistent, truthful recovery outcome.`,operation:{...K,phase:`finished`,state:`interrupted`,cancellation:`unavailable`,published:!0,finishedAt:Date.now(),message:`Changes were applied before the supervisor stopped. Review setup and checks before continuing.`,activities:[]}},{id:`operation-ready`,label:`Update complete`,description:`Full operation completion, including setup and checks.`,operation:{...K,phase:`finished`,state:`succeeded`,cancellation:`unavailable`,published:!0,startedAt:Date.now()-12e4,finishedAt:Date.now(),message:`Update complete.`,steps:[...K.steps.map((e,t)=>({...e,startedAt:Date.now()-12e4+t*1e3,status:e.status===`running`?`succeeded`:e.status,finishedAt:e.status===`running`?Date.now()-36e3:Date.now()-119e3+t*1e3})),{id:`setup-complete`,label:`Project setup`,phase:`setup`,status:`succeeded`,startedAt:Date.now()-36e3,finishedAt:Date.now()-24e3},{id:`checks-complete`,label:`Typecheck and tests`,phase:`checks`,status:`succeeded`,startedAt:Date.now()-24e3,finishedAt:Date.now()}],turns:K.turns.map(e=>({...e,status:`complete`,finishedAt:Date.now(),...e.stage===`verify`?{messages:[{kind:`agent`,text:`Update applied. Typecheck and tests passed.`}],finalMessage:`Update applied. Typecheck and tests passed.`}:{}})),activities:[]}}])H.push({id:e.id,label:e.label,description:e.description,connected:`connected`in e?e.connected:!0,status:{...W,operation:e.operation,...e.id===`operation-ready`?{currentCommit:`fedcba9876543210`,checks:{commit:`fedcba9876543210`,trigger:`synchronization`,commands:[{command:`pnpm typecheck`,status:`passed`},{command:`pnpm test`,status:`passed`}]}}:{},activities:e.operation.activities}});var q={actionError:`actionError`,actions:`actions`,actionSuccess:`actionSuccess`,activityCommand:`activityCommand`,activityDisclosure:`activityDisclosure`,activityList:`activityList`,activityMeta:`activityMeta`,activityOutput:`activityOutput`,activityRow:`activityRow`,activityState:`activityState`,activityStatus:`activityStatus`,activitySummary:`activitySummary`,button:`button`,"button-spin":`button-spin`,buttonContainer:`buttonContainer`,buttonSpinner:`buttonSpinner`,changeList:`changeList`,checkbox:`checkbox`,checkCommand:`checkCommand`,checkFailure:`checkFailure`,checkGuidance:`checkGuidance`,checkMessage:`checkMessage`,codexHistoryList:`codexHistoryList`,codexHistorySummary:`codexHistorySummary`,codexMessage:`codexMessage`,codexMessageAge:`codexMessageAge`,codexMessageHeader:`codexMessageHeader`,codexMessageLabel:`codexMessageLabel`,codexMessageText:`codexMessageText`,codexOptionSelect:`codexOptionSelect`,codexOutput:`codexOutput`,codexSettings:`codexSettings`,codexSettingsPopover:`codexSettingsPopover`,codexTranscript:`codexTranscript`,codexWaiting:`codexWaiting`,codexWorking:`codexWorking`,completionDetailBody:`completionDetailBody`,completionDetails:`completionDetails`,completionDialog:`completionDialog`,completionMetadata:`completionMetadata`,completionNote:`completionNote`,completionReceipt:`completionReceipt`,completionSteps:`completionSteps`,content:`content`,copyButton:`copyButton`,copyFooter:`copyFooter`,debugFooter:`debugFooter`,developmentControls:`developmentControls`,developmentControlsDropdown:`developmentControlsDropdown`,dialog:`dialog`,disabledTooltip:`disabledTooltip`,drawerBody:`drawerBody`,effortControl:`effortControl`,effortEndpoints:`effortEndpoints`,errorIcon:`errorIcon`,errorMessage:`errorMessage`,fileGroup:`fileGroup`,filePath:`filePath`,files:`files`,fileStatus:`fileStatus`,header:`header`,headerActions:`headerActions`,iconButton:`iconButton`,iconOnly:`iconOnly`,indicatorButton:`indicatorButton`,indicatorDot:`indicatorDot`,message:`message`,modelToggle:`modelToggle`,notificationActions:`notificationActions`,paragraph:`paragraph`,pendingCommits:`pendingCommits`,primary:`primary`,rebaseProgress:`rebaseProgress`,rebaseProgressFill:`rebaseProgressFill`,rebaseProgressLabel:`rebaseProgressLabel`,rebaseProgressTrack:`rebaseProgressTrack`,recoveryBack:`recoveryBack`,recoveryTitle:`recoveryTitle`,scenarioButton:`scenarioButton`,scenarioDescription:`scenarioDescription`,scenarioLabel:`scenarioLabel`,scenarioList:`scenarioList`,section:`section`,sectionDescription:`sectionDescription`,sectionHeading:`sectionHeading`,sectionLink:`sectionLink`,sectionTitle:`sectionTitle`,setupFailure:`setupFailure`,srOnly:`srOnly`,successIcon:`successIcon`,surface:`surface`,title:`title`,titleIcon:`titleIcon`,trackedFile:`trackedFile`,warning:`warning`};const J={userSelect:`text`,WebkitUserSelect:`text`},Oe={effort:`high`,model:`gpt-6-luna`},ke=u(!0);let Y;function Ae(){if(Y)return Y;try{Y=sessionStorage.getItem(`coreframe:managed-dev:client`)??void 0}catch{}if(!Y){Y=globalThis.crypto.getRandomValues(new Uint32Array(4)).join(`-`);try{sessionStorage.setItem(`coreframe:managed-dev:client`,Y)}catch{}}return Y}let je=!1;const Me=new Set,Ne=1600,Pe=[`codex-running`,`codex-finished`,`codex-message`,`codex-error`,`migration-failure`,`dependency-failure`,`failed-check`,`confirm-commit`,`local-changes`,`upstream-update`,`dev-update`,`busy`,`warning`,`paused`,`unavailable`,`success`,`idle`],Fe=[...Pe.slice(0,-2),...H.map(({id:e})=>e).filter(e=>!Pe.includes(e)),...Pe.slice(-2)].map(e=>{let t=H.find(t=>t.id===e);if(!t)throw Error(`Missing managed dev debug scenario: ${e}`);return t}).filter(e=>Ct(e));function Ie(){X(!je)}function X(e){if(je!==e){je=e;for(let e of Me)e()}}function Le({bottomOffset:e,debug:t=!1,indicator:n,rightOffset:r}){return w(t?Be:Re,{bottomOffset:e,indicator:n,rightOffset:r})}function Re({bottomOffset:e,indicator:r,rightOffset:i}){let{act:a,checkFailure:o,codex:s,codexOptions:c,dismissCheckFailure:u,dismissError:d,dismissSuccess:f,error:m,errorsDismissed:h,hmrReady:_,pendingAction:v,setCodexOptions:y,status:x,success:S}=kt(),[C,E]=b(),[D,O]=b(),k=JSON.stringify([x?.mode,x?.message,x?.busy,x?.target?.commit,x?.draft?.fingerprint,x?.pendingRebase,x?.setupFailure,x?.warnings,x?.codexCompletion?.id,x?.operation&&[x.operation.id,x.operation.phase,x.operation.state],o,m,s?.phase,S?.heading]),A=Et(),j={...A,recovery:x?.recovery?.length?T(`div`,{className:q.content,children:[w(`h2`,{className:q.recoveryTitle,id:`coreframe-recovery-title`,children:`Recover previous state`}),w(`p`,{className:q.paragraph,children:`Recover a checkpoint as two local branches. Your current branches and files stay in place.`}),x.recovery.map(e=>T(`section`,{className:q.section,children:[T(`div`,{className:q.sectionHeading,children:[w(`h3`,{className:q.sectionTitle,children:e.completed?`Latest completed sync`:`Unresolved sync`}),w(`code`,{children:e.id.slice(0,8)})]}),T(`p`,{className:q.paragraph,children:[`Main: `,e.main.slice(0,12),` · Dev: `,e.dev.slice(0,12)]}),w(Z,{children:w(Q,{busy:v?.type===`recover-history`,disabledReason:x.busy,primary:!0,onClick:()=>void a({type:`recover-history`,id:e.id}),children:`Recover as branches`})}),w(`p`,{className:q.sectionDescription,children:`Recover changes with agent`}),w(Z,{children:[`main`,`dev`,...e.prepared?[`prepared`]:[]].map(t=>T(Q,{disabledReason:x.busy,onClick:()=>void a({type:`apply-recovery`,id:e.id,side:t,codex:c}),children:[t===`main`?`Main`:t===`dev`?`Dev`:`Prepared`,` changes`]},t))}),w(Z,{children:w(Q,{disabledReason:x.busy,onClick:()=>void a({type:`discard-history`,id:e.id}),children:`Discard checkpoint`})})]},e.id)),m?w(`div`,{className:q.actionError,role:`alert`,children:w(ft,{children:m})}):null,S?T(`div`,{className:q.actionSuccess,role:`status`,children:[S.heading,`: `,S.message]}):null]}):void 0,resetBranches:()=>{x?.operation&&a({type:`reset-branches`,operationId:x.operation.id})},resetDisabledReason:t(x)?A.pending?`Wait for Vite to restart`:void 0:`No active merge or rebase to reset`,resetPending:v?.type===`reset-branches`},M=Ct({status:x,codex:h&&s?.phase===`error`?void 0:s,error:h?void 0:m,success:S,pendingAction:v,controls:j});g(()=>{if(!S)return;let e=setTimeout(()=>{f(),X(!1)},Ne);return()=>clearTimeout(e)},[f,S]),g(()=>{let e=x?.operation;if(e?.state!==`succeeded`||C===e.id||x?.codexCompletion||m||o||$(x))return;let t=Math.max(0,Ne-(Date.now()-(e.finishedAt??e.updatedAt))),n=setTimeout(()=>{X(!1),_&&a({type:`acknowledge-operation`,id:e.id})},t);return()=>clearTimeout(n)},[a,x,m,o,_,C]);let N=r??w(Ke,{}),P=p(N)&&N.type===Ke?l(N,{paused:!x?.target}):N;return w(ze,{bottomOffset:e,ready:(_||!!x)&&M,indicator:x&&$(x,o)&&D!==k?P:null,rightOffset:i,children:w(ke.Provider,{value:_,children:w(qe,{connectionNotice:!_&&x?`Connection lost; progress may be stale. Reconnecting…`:void 0,act:a,checkFailure:o,codex:s,codexOptions:c,developmentControls:j,dismissCheckFailure:u,dismissError:()=>{O(k),d()},error:m,errorsDismissed:h,onClose:()=>{O(k),x?.operation&&!n(x.operation)&&x.operation.state!==`awaiting-resolution`&&!x.codexCompletion&&_&&a({type:`acknowledge-operation`,id:x.operation.id}),x?.codexCompletion&&_&&a({id:x.codexCompletion.id,type:`acknowledge-codex`}),X(!1)},onInspectOperation:()=>E(x?.operation?.id),pendingAction:v,setCodexOptions:y,status:x,success:S})})})}function ze({bottomOffset:e,children:t,indicator:n,openOnMount:r=!1,ready:i=!0,rightOffset:a}){let[o,s]=b(null),c=x(At,jt,Mt);g(()=>{!i&&c&&X(!1)},[i,c]),g(()=>{r&&X(!0);let e=!0,t=k(`coreframe-managed-dev`,document.body,{css:`@font-face{font-family:SN Pro Variable;font-style:normal;font-display:swap;font-weight:200 900;src:url(./files/sn-pro-cyrillic-ext-wght-normal.woff2)format("woff2-variations");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:SN Pro Variable;font-style:normal;font-display:swap;font-weight:200 900;src:url(./files/sn-pro-cyrillic-wght-normal.woff2)format("woff2-variations");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:SN Pro Variable;font-style:normal;font-display:swap;font-weight:200 900;src:url(./files/sn-pro-vietnamese-wght-normal.woff2)format("woff2-variations");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:SN Pro Variable;font-style:normal;font-display:swap;font-weight:200 900;src:url(./files/sn-pro-latin-ext-wght-normal.woff2)format("woff2-variations");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:SN Pro Variable;font-style:normal;font-display:swap;font-weight:200 900;src:url(./files/sn-pro-latin-wght-normal.woff2)format("woff2-variations");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
|
|
170
188
|
|
|
171
189
|
@font-face{font-family:Google Sans Code Variable;font-style:normal;font-display:swap;font-weight:300 800;src:url(./files/google-sans-code-adlam-wght-normal.woff2)format("woff2-variations");unicode-range:U+61F,U+640,U+2015,U+201B,U+2020-2021,U+2030,U+204F,U+25CC,U+2E28-2E29,U+2E41,U+1E900-1E95F}@font-face{font-family:Google Sans Code Variable;font-style:normal;font-display:swap;font-weight:300 800;src:url(./files/google-sans-code-canadian-aboriginal-wght-normal.woff2)format("woff2-variations");unicode-range:U+2C7,U+2D8-2D9,U+2DB,U+307,U+1400-167F,U+18B0-18F5,U+25CC,U+11AB?}@font-face{font-family:Google Sans Code Variable;font-style:normal;font-display:swap;font-weight:300 800;src:url(./files/google-sans-code-cherokee-wght-normal.woff2)format("woff2-variations");unicode-range:U+300-302,U+304,U+30B-30C,U+323-324,U+330-331,U+13A0-13FF,U+AB70-ABBF}@font-face{font-family:Google Sans Code Variable;font-style:normal;font-display:swap;font-weight:300 800;src:url(./files/google-sans-code-math-wght-normal.woff2)format("woff2-variations");unicode-range:U+302-303,U+305,U+307-308,U+310,U+312,U+315,U+31A,U+326-327,U+32C,U+32F-330,U+332-333,U+338,U+33A,U+346,U+34D,U+391-3A1,U+3A3-3A9,U+3B1-3C9,U+3D1,U+3D5-3D6,U+3F0-3F1,U+3F4-3F5,U+2016-2017,U+2034-2038,U+203C,U+2040,U+2043,U+2047,U+2050,U+2057,U+205F,U+2070-2071,U+2074-208E,U+2090-209C,U+20D0-20DC,U+20E1,U+20E5-20EF,U+2100-2112,U+2114-2115,U+2117-2121,U+2123-214F,U+2190,U+2192,U+2194-21AE,U+21B0-21E5,U+21F1-21F2,U+21F4-2211,U+2213-2214,U+2216-22FF,U+2308-230B,U+2310,U+2319,U+231C-2321,U+2336-237A,U+237C,U+2395,U+239B-23B7,U+23D0,U+23DC-23E1,U+2474-2475,U+25AF,U+25B3,U+25B7,U+25BD,U+25C1,U+25CA,U+25CC,U+25FB,U+266D-266F,U+27C0-27FF,U+2900-2AFF,U+2B0E-2B11,U+2B30-2B4C,U+2BFE,U+3030,U+FF5B,U+FF5D,U+1D400-1D7FF,U+1EE??}@font-face{font-family:Google Sans Code Variable;font-style:normal;font-display:swap;font-weight:300 800;src:url(./files/google-sans-code-old-permic-wght-normal.woff2)format("woff2-variations");unicode-range:U+300,U+306-308,U+313,U+483,U+20DB,U+25CC,U+10350-1037A}@font-face{font-family:Google Sans Code Variable;font-style:normal;font-display:swap;font-weight:300 800;src:url(./files/google-sans-code-symbols-wght-normal.woff2)format("woff2-variations");unicode-range:U+1-C,U+E-1F,U+7F-9F,U+20DD-20E0,U+20E2-20E4,U+2150-218F,U+2190,U+2192,U+2194-2199,U+21AF,U+21E6-21F0,U+21F3,U+2218-2219,U+2299,U+22C4-22C6,U+2300-243F,U+2440-244A,U+2460-24FF,U+25A0-27BF,U+28??,U+2921-2922,U+2981,U+29BF,U+29EB,U+2B??,U+4DC0-4DFF,U+FFF9-FFFB,U+10140-1018E,U+10190-1019C,U+101A0,U+101D0-101FD,U+102E0-102FB,U+10E60-10E7E,U+1D2C0-1D2D3,U+1D2E0-1D37F,U+1F0??,U+1F100-1F1AD,U+1F1E6-1F1FF,U+1F30D-1F30F,U+1F315,U+1F31C,U+1F31E,U+1F320-1F32C,U+1F336,U+1F378,U+1F37D,U+1F382,U+1F393-1F39F,U+1F3A7-1F3A8,U+1F3AC-1F3AF,U+1F3C2,U+1F3C4-1F3C6,U+1F3CA-1F3CE,U+1F3D4-1F3E0,U+1F3ED,U+1F3F1-1F3F3,U+1F3F5-1F3F7,U+1F408,U+1F415,U+1F41F,U+1F426,U+1F43F,U+1F441-1F442,U+1F444,U+1F446-1F449,U+1F44C-1F44E,U+1F453,U+1F46A,U+1F47D,U+1F4A3,U+1F4B0,U+1F4B3,U+1F4B9,U+1F4BB,U+1F4BF,U+1F4C8-1F4CB,U+1F4D6,U+1F4DA,U+1F4DF,U+1F4E3-1F4E6,U+1F4EA-1F4ED,U+1F4F7,U+1F4F9-1F4FB,U+1F4FD-1F4FE,U+1F503,U+1F507-1F50B,U+1F50D,U+1F512-1F513,U+1F53E-1F54A,U+1F54F-1F5FA,U+1F610,U+1F650-1F67F,U+1F687,U+1F68D,U+1F691,U+1F694,U+1F698,U+1F6AD,U+1F6B2,U+1F6B9-1F6BA,U+1F6BC,U+1F6C6-1F6CF,U+1F6D3-1F6D7,U+1F6E0-1F6EA,U+1F6F0-1F6F3,U+1F6F7-1F6FC,U+1F7??,U+1F800-1F80B,U+1F810-1F847,U+1F850-1F859,U+1F860-1F887,U+1F890-1F8AD,U+1F8B0-1F8BB,U+1F8C0-1F8C1,U+1F900-1F90B,U+1F93B,U+1F946,U+1F984,U+1F996,U+1F9E9,U+1FA00-1FA6F,U+1FA70-1FA7C,U+1FA80-1FA89,U+1FA8F-1FAC6,U+1FACE-1FADC,U+1FADF-1FAE9,U+1FAF0-1FAF8,U+1FB??}@font-face{font-family:Google Sans Code Variable;font-style:normal;font-display:swap;font-weight:300 800;src:url(./files/google-sans-code-symbols2-wght-normal.woff2)format("woff2-variations");unicode-range:U+2000-2001,U+2004-2008,U+200A,U+23B8-23BD,U+2500-259F}@font-face{font-family:Google Sans Code Variable;font-style:normal;font-display:swap;font-weight:300 800;src:url(./files/google-sans-code-syriac-wght-normal.woff2)format("woff2-variations");unicode-range:U+303-304,U+307-308,U+30A,U+320,U+323-325,U+32D-32E,U+330-331,U+60C,U+61B-61C,U+61F,U+621,U+640,U+64B-655,U+660-66C,U+670,U+700-74F,U+860-86A,U+1DF8,U+1DFA,U+200C-200F,U+25CC,U+2670-2671}@font-face{font-family:Google Sans Code Variable;font-style:normal;font-display:swap;font-weight:300 800;src:url(./files/google-sans-code-vietnamese-wght-normal.woff2)format("woff2-variations");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Google Sans Code Variable;font-style:normal;font-display:swap;font-weight:300 800;src:url(./files/google-sans-code-latin-ext-wght-normal.woff2)format("woff2-variations");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Google Sans Code Variable;font-style:normal;font-display:swap;font-weight:300 800;src:url(./files/google-sans-code-latin-wght-normal.woff2)format("woff2-variations");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
|
|
172
190
|
|
|
173
|
-
[data-isolet-root]{--overlay-font-body:"SN Pro Variable", system-ui, sans-serif;--overlay-font-monospace:"Google Sans Code Variable", ui-monospace, monospace;color-scheme:light dark;--oc-white:#fff;--oc-gray-0:#f8f9fa;--oc-gray-1:#f1f3f5;--oc-gray-2:#e9ecef;--oc-gray-3:#dee2e6;--oc-gray-4:#ced4da;--oc-gray-5:#adb5bd;--oc-gray-6:#868e96;--oc-gray-7:#495057;--oc-gray-8:#343a40;--oc-gray-9:#212529;--oc-red-0:#fff5f5;--oc-red-2:#ffc9c9;--oc-red-7:#f03e3e;--oc-red-9:#c92a2a;--oc-grape-0:#f8f0fc;--oc-grape-2:#eebefa;--oc-grape-7:#ae3ec9;--oc-grape-9:#862e9c;--oc-blue-0:#e7f5ff;--oc-blue-2:#a5d8ff;--oc-blue-4:#4dabf7;--oc-blue-6:#228be6;--oc-blue-7:#1c7ed6;--oc-blue-9:#1864ab;--oc-green-0:#ebfbee;--oc-green-2:#b2f2bb;--oc-green-7:#37b24d;--oc-green-9:#2b8a3e;--oc-yellow-0:#fff9db;--oc-yellow-2:#ffec99;--oc-yellow-7:#f59f00;--oc-yellow-9:#e67700;--overlay-background:var(--oc-white);--overlay-surface-subtle:var(--oc-gray-0);--overlay-surface-muted:var(--oc-gray-1);--overlay-border:var(--oc-gray-3);--overlay-border-strong:var(--oc-gray-4);--overlay-text:var(--oc-gray-9);--overlay-text-muted:var(--oc-gray-7);--overlay-text-subtle:var(--oc-gray-6);--overlay-accent:var(--oc-blue-6);--overlay-accent-hover:var(--oc-blue-7);--overlay-accent-soft:var(--oc-blue-0);--overlay-accent-border:var(--oc-blue-2);--overlay-accent-text:var(--oc-blue-9);--overlay-thought-soft:var(--oc-grape-0);--overlay-thought-border:var(--oc-grape-2);--overlay-thought-text:var(--oc-grape-9);--overlay-success-soft:var(--oc-green-0);--overlay-success-border:var(--oc-green-2);--overlay-success-text:var(--oc-green-9);--overlay-warning-soft:var(--oc-yellow-0);--overlay-warning-border:var(--oc-yellow-2);--overlay-warning-text:var(--oc-yellow-9);--overlay-danger-soft:var(--oc-red-0);--overlay-danger-border:var(--oc-red-2);--overlay-danger-text:var(--oc-red-9);color:var(--overlay-text);font:14px/1.45 var(--overlay-font-body)}.surface{--managed-dev-bottom-offset:0px;--managed-dev-right-offset:0px}.indicatorButton{appearance:none;bottom:calc(10px + env(safe-area-inset-bottom,0px) + var(--managed-dev-bottom-offset));cursor:pointer;pointer-events:auto;height:44px;right:calc(10px + env(safe-area-inset-right,0px) + var(--managed-dev-right-offset));background:0 0;border:0;justify-content:center;align-items:center;width:44px;padding:0;display:flex;position:fixed}.indicatorButton:focus-visible{outline:3px solid var(--overlay-accent-border);outline-offset:-3px}.indicatorDot{background:var(--managed-dev-indicator-color);box-shadow:inset 0 0 0 .5px color-mix(in srgb, var(--overlay-border) 30%, transparent);height:var(--managed-dev-indicator-size);width:var(--managed-dev-indicator-size);border-radius:50%;display:block;position:relative}.indicatorDot:before{border:max(1px, calc(var(--managed-dev-indicator-size) / 9)) solid var(--managed-dev-indicator-color);border-radius:inherit;content:"";animation:1.8s ease-out infinite radiate;position:absolute;inset:0}.dialog{background:var(--overlay-background);border:1px solid var(--overlay-border);box-shadow:0 18px 60px color-mix(in srgb, var(--oc-gray-9) 28%, transparent), 0 2px 8px color-mix(in srgb, var(--oc-gray-9) 12%, transparent);color:var(--overlay-text);box-sizing:border-box;height:auto;bottom:20px;left:unset;overscroll-behavior:contain;pointer-events:auto;border-radius:12px;width:min(520px,100vw - 18px);max-width:min(520px,100vw - 18px);max-height:none;margin:0;padding:12px 18px;position:fixed;right:20px;overflow:hidden}.dialog[open]{flex-direction:column;gap:12px;display:flex}.drawerBody{align-content:start;gap:16px;min-height:80px;display:grid;overflow:auto}.header{justify-content:space-between;align-items:center;gap:12px;display:flex}.headerActions{align-items:center;display:flex}.developmentControlsDropdown{display:flex;position:relative}.title{align-items:center;gap:8px;margin:0;font-size:16px;display:flex}.titleIcon{color:var(--overlay-accent);flex:none}.iconButton{color:inherit;cursor:pointer;background:0 0;border:0;flex:none;justify-content:center;align-items:center;min-width:32px;min-height:32px;padding:4px;display:inline-flex}.iconButton:hover{background:var(--overlay-surface-muted);border-radius:8px}.iconButton:focus-visible,.scenarioButton:focus-visible,.sectionLink:focus-visible,.button:focus-visible,.message:focus-visible{outline:3px solid var(--overlay-accent-border);outline-offset:2px}.content{gap:12px;display:grid}.section{background:var(--overlay-surface-subtle);border:1px solid var(--overlay-border);border-radius:12px;gap:12px;padding:14px;display:grid}.sectionHeading{justify-content:space-between;align-items:start;gap:12px;display:flex}.sectionTitle{margin:0;font-size:13px}.sectionDescription{color:var(--overlay-text-muted);margin:3px 0 0;font-size:12px}.sectionLink{color:var(--overlay-accent-text);cursor:pointer;font:inherit;background:0 0;border:0;padding:2px;font-size:12px}.debugFooter{background:var(--overlay-thought-soft);border-top:.5px solid var(--overlay-thought-border);color:var(--overlay-thought-text);flex:none;margin:0 -18px -12px;padding:4px 18px;font-size:11px;line-height:1.3}.scenarioList{gap:7px;max-height:min(480px,100dvh - 210px);display:grid;overflow:auto}.scenarioButton{background:var(--overlay-surface-subtle);color:inherit;cursor:pointer;font:inherit;text-align:start;border:1px solid #0000;border-radius:10px;gap:3px;padding:10px;display:grid}.scenarioButton:hover{background:var(--overlay-accent-soft);border-color:var(--overlay-accent-border)}.scenarioLabel{font-weight:650}.scenarioDescription{color:var(--overlay-text-muted);font-size:12px}.paragraph{margin:0}.pendingCommits{background:var(--overlay-surface-subtle);border:1px solid var(--overlay-border);box-sizing:border-box;font:12px/1.5 var(--overlay-font-monospace);white-space:pre-wrap;border-radius:10px;max-height:190px;margin:0;padding:10px;overflow:auto}.codexOutput{background:var(--overlay-surface-subtle);border:1px solid var(--overlay-border);box-sizing:border-box;font:12px/1.5 var(--overlay-font-monospace);white-space:pre-wrap;word-break:break-word;border-radius:10px;max-height:280px;margin:0;padding:10px;overflow:auto}.codexWorking{color:var(--overlay-text-muted);font:12px/1.5 var(--overlay-font-monospace)}.codexWorkingSpinner{color:var(--overlay-accent)}.codexTranscript{gap:10px;max-height:360px;display:grid;overflow:auto}.codexMessage{border:1px solid #0000;border-radius:10px;gap:5px;padding:10px;display:grid}.codexMessageUser{background:var(--overlay-accent-soft);border-color:var(--overlay-accent-border)}.codexMessageThought{background:var(--overlay-thought-soft);border-color:var(--overlay-thought-border)}.codexMessageAgent{background:var(--overlay-success-soft);border-color:var(--overlay-success-border)}.codexMessageHeader{justify-content:space-between;align-items:baseline;gap:8px;display:flex}.codexMessageLabel{color:var(--overlay-text-muted);letter-spacing:.04em;text-transform:uppercase;margin:0;font-size:11px;font-weight:650}.codexMessageAge{color:var(--overlay-text-subtle);white-space:nowrap;font-size:11px}.codexMessageText,.codexWaiting{font:12px/1.5 var(--overlay-font-monospace);white-space:pre-wrap;word-break:break-word;margin:0}.codexWaiting{color:var(--overlay-text-subtle)}.rebaseProgress{gap:8px;display:grid}.rebaseProgressLabel{color:var(--overlay-text-muted);justify-content:space-between;align-items:baseline;font-size:12px;display:flex}.rebaseProgressLabel strong{color:var(--overlay-success-text)}.rebaseProgressTrack{background:var(--overlay-surface-muted);border-radius:999px;height:6px;overflow:hidden}.rebaseProgressFill{background:var(--overlay-success-text);border-radius:inherit;height:100%;transition:width .18s;display:block}.codexHistorySummary{cursor:pointer;font-size:12px;font-weight:600}.codexHistoryList{gap:8px;padding-top:8px;display:grid}.files{gap:7px;max-height:190px;display:grid;overflow:auto}.checkbox{overflow-wrap:anywhere;align-items:start;gap:8px;display:flex}.checkbox input{accent-color:var(--overlay-accent)}.filePath{font-family:var(--overlay-font-monospace)}.message{background:var(--overlay-surface-subtle);border:1px solid var(--overlay-border-strong);box-sizing:border-box;color:var(--overlay-text);font-family:var(--overlay-font-monospace);resize:vertical;border-radius:10px;width:100%;min-height:92px;padding:10px}.actions{flex-wrap:wrap;justify-content:end;gap:8px;display:flex}.developmentControls{background:var(--overlay-background);border:1px solid var(--overlay-border);box-shadow:0 10px 30px color-mix(in srgb, var(--oc-gray-9) 18%, transparent);box-sizing:border-box;z-index:1;border-radius:10px;gap:4px;min-width:170px;max-width:calc(100vw - 32px);margin:0;padding:4px;display:grid;position:absolute;top:calc(100% + 6px);right:0}.developmentControls .actions{justify-content:stretch;align-items:stretch;gap:0;width:100%;display:grid}.developmentControls .button{text-align:start;white-space:nowrap;justify-content:start;justify-self:stretch;width:100%;min-height:32px}.button{border:1px solid var(--overlay-border-strong);cursor:pointer;font:inherit;background:0 0;border-radius:999px;justify-content:center;align-items:center;gap:6px;padding:7px 11px;transition:opacity .14s;display:inline-flex}.button:hover:not(:disabled){background:var(--overlay-surface-muted)}.primary{background:var(--overlay-accent);border-color:var(--overlay-accent);color:var(--oc-white)}.primary:hover:not(:disabled){background:var(--overlay-accent-hover);border-color:var(--overlay-accent-hover)}.developmentControls .button{color:inherit;background:0 0;border:0}.developmentControls .button:hover:not(:disabled){background:var(--overlay-surface-muted)}.button:disabled{cursor:wait;opacity:.55}.buttonSpinner{animation:.7s linear infinite button-spin}.iconOnly{box-sizing:border-box;flex:0 0 32px;width:32px;min-width:32px;height:32px;padding:7px}.warning{color:var(--overlay-warning-text);white-space:pre-wrap}.checkFailure{background:var(--overlay-danger-soft);border:1px solid var(--overlay-danger-border);color:var(--overlay-danger-text);border-radius:10px;gap:10px;padding:10px;display:grid}.checkCommand{font-family:var(--overlay-font-monospace);margin:0;font-weight:600}.checkGuidance{margin:3px 0 0;font-size:12px}.setupFailure{background:var(--overlay-danger-soft);border:1px solid var(--overlay-danger-border);color:var(--overlay-danger-text);border-radius:10px;gap:10px;padding:10px;display:grid}.actionError{background:var(--overlay-warning-soft);border:1px solid var(--overlay-warning-border);color:var(--overlay-warning-text);white-space:pre-wrap;border-radius:10px;gap:10px;padding:10px;display:grid}.errorMessage{grid-template-columns:auto 1fr;align-items:start;gap:8px;display:grid}.actionSuccess{background:var(--overlay-success-soft);border:1px solid var(--overlay-success-border);color:var(--overlay-success-text);border-radius:10px;grid-template-columns:auto 1fr;align-items:start;gap:8px;padding:10px;display:grid}.errorIcon,.successIcon{margin-top:1px}@media (prefers-color-scheme:dark){[data-isolet-root]{--overlay-background:var(--oc-gray-9);--overlay-surface-subtle:var(--oc-gray-8);--overlay-surface-muted:var(--oc-gray-7);--overlay-border:var(--oc-gray-7);--overlay-border-strong:var(--oc-gray-6);--overlay-text:var(--oc-gray-0);--overlay-text-muted:var(--oc-gray-4);--overlay-text-subtle:var(--oc-gray-5);--overlay-accent:var(--oc-blue-6);--overlay-accent-hover:var(--oc-blue-7);--overlay-accent-soft:color-mix(in srgb, var(--oc-blue-9) 32%, var(--overlay-background));--overlay-accent-border:var(--oc-blue-7);--overlay-accent-text:var(--oc-blue-2);--overlay-thought-soft:color-mix(in srgb, var(--oc-grape-9) 30%, var(--overlay-background));--overlay-thought-border:var(--oc-grape-7);--overlay-thought-text:var(--oc-grape-2);--overlay-success-soft:color-mix(in srgb, var(--oc-green-9) 30%, var(--overlay-background));--overlay-success-border:var(--oc-green-7);--overlay-success-text:var(--oc-green-2);--overlay-warning-soft:color-mix(in srgb, var(--oc-yellow-9) 24%, var(--overlay-background));--overlay-warning-border:var(--oc-yellow-7);--overlay-warning-text:var(--oc-yellow-2);--overlay-danger-soft:color-mix(in srgb, var(--oc-red-9) 30%, var(--overlay-background));--overlay-danger-border:var(--oc-red-7);--overlay-danger-text:var(--oc-red-2)}}@keyframes radiate{0%{opacity:.75;transform:scale(1)}to{opacity:0;transform:scale(2.4)}}@keyframes button-spin{to{transform:rotate(1turn)}}@media (prefers-reduced-motion:reduce){.buttonSpinner{animation:none}}@media (width<=600px){.dialog{max-width:none;padding:calc(16px + env(safe-area-inset-top,0px)) calc(16px + env(safe-area-inset-right,0px)) calc(16px + env(safe-area-inset-bottom,0px)) calc(16px + env(safe-area-inset-left,0px));border-radius:0;width:auto;inset:0}.debugFooter{margin:0 calc(-16px - env(safe-area-inset-right,0px)) calc(-16px - env(safe-area-inset-bottom,0px)) calc(-16px - env(safe-area-inset-left,0px));padding:4px calc(16px + env(safe-area-inset-right,0px)) calc(4px + env(safe-area-inset-bottom,0px)) calc(16px + env(safe-area-inset-left,0px))}.button{min-height:44px}.checkbox{align-items:center;min-height:44px}.iconButton{min-width:44px;min-height:44px}.iconOnly{flex-basis:44px;width:44px;min-width:44px;height:44px}}@media (prefers-reduced-motion:reduce){.indicatorDot:before{opacity:.45;animation:none;transform:scale(1.65)}}
|
|
174
|
-
`,hostAttributes:{"aria-live":`polite`,id:`coreframe-managed-dev`},hostStyles:{pointerEvents:`none`,position:`fixed`},zIndex:2147483647});return queueMicrotask(()=>{e&&s(t.container)}),()=>{e=!1,t.host?.remove()}},[r]);let l={"--managed-dev-bottom-offset":G(e),"--managed-dev-right-offset":G(a)};return o?g(y(`div`,{className:z.surface,style:l,children:[i?n:null,i&&c?t:null]}),o):null}function we({bottomOffset:e,indicator:t,rightOffset:n}){let[r,i]=m(),[o,s]=m(),[c,u]=m(),d=U.find(({id:e})=>e===r),f=e=>{i(e),s(void 0),u(void 0)},p=async e=>{if(e.type===`acknowledge-codex`){f(void 0);return}u(We(e))},h=t??v(q,{}),g={pending:!1,reloadPage:()=>s(`Page reload simulated.`),restartVite:()=>s(`Vite restart simulated.`),success:o};return v(Ce,{bottomOffset:e,indicator:l(h)&&h.type===q?a(h,{paused:d?.status.mode===`waiting`}):h,openOnMount:!0,rightOffset:n,children:d?v(Ee,{act:p,checkFailure:Q(d.status),codex:d.codex,developmentControls:g,dismissCheckFailure:()=>void 0,dismissError:()=>void 0,error:d.error,onBack:()=>f(void 0),onClose:()=>W(!1),status:d.status,success:c??d.success},d.id):v(Te,{developmentControls:g,onClose:()=>W(!1),onSelect:e=>f(e)})})}function G(e){return typeof e==`number`?`${e}px`:e??`0px`}function Te({developmentControls:e,onClose:t,onSelect:n}){return v(K,{debug:!0,developmentControls:e,icon:ae,onClose:t,title:`Managed dev overlay scenarios`,children:v(`div`,{className:z.scenarioList,children:ye.map(e=>y(`button`,{className:z.scenarioButton,onClick:()=>n(e.id),type:`button`,children:[v(`span`,{className:z.scenarioLabel,children:e.label}),v(`span`,{className:z.scenarioDescription,children:e.description})]},e.id))})})}function K({children:e,debug:t=!1,developmentControls:n,icon:r,onBack:i,onClose:a,title:o}){let s=p(null),c=p(null),[l,u]=m(!1);return f(()=>{let e=e=>{let t=e.composedPath(),n=c.current;n&&!t.includes(n)&&u(!1);let r=s.current;r&&!t.includes(r)&&a()},t=e=>{e.key===`Escape`&&(e.preventDefault(),a())};return document.addEventListener(`pointerdown`,e),document.addEventListener(`keydown`,t),()=>{document.removeEventListener(`pointerdown`,e),document.removeEventListener(`keydown`,t)}},[a]),y(`dialog`,{"aria-labelledby":`coreframe-managed-title`,"aria-modal":`true`,className:z.dialog,id:`coreframe-managed-dev-dialog`,open:!0,ref:s,children:[y(`div`,{className:z.header,children:[y(`h2`,{className:z.title,id:`coreframe-managed-title`,children:[v(r,{"aria-hidden":`true`,className:z.titleIcon,size:18}),o]}),y(`div`,{className:z.headerActions,children:[i?v(`button`,{"aria-label":`Back to scenarios`,className:z.iconButton,onClick:i,type:`button`,children:v(ie,{"aria-hidden":`true`,size:18})}):null,n?y(`div`,{className:z.developmentControlsDropdown,ref:c,children:[v(`button`,{"aria-expanded":l,"aria-haspopup":`menu`,"aria-label":`Development controls`,className:z.iconButton,onClick:()=>u(e=>!e),type:`button`,children:v(ue,{"aria-hidden":`true`,size:18})}),l?v(De,{controls:n}):null]}):null,v(`button`,{"aria-label":`Close managed development`,className:z.iconButton,onClick:a,type:`button`,children:v(L,{"aria-hidden":`true`,size:18})})]})]}),v(`div`,{className:z.drawerBody,children:e}),t?v(`footer`,{className:z.debugFooter,children:`Debug preview · project actions are simulated locally`}):null]})}function q({color:e=`#228be6`,paused:t=!1,size:n=14,warningColor:r=`#fd7e14`}){let i=h(Ke,qe,Je),a={"--managed-dev-indicator-color":t?r:e,"--managed-dev-indicator-size":typeof n==`number`?`${n}px`:n};return v(`button`,{"aria-controls":`coreframe-managed-dev-dialog`,"aria-expanded":i,"aria-label":`${i?`Hide`:`Show`} Coreframe managed development`,className:z.indicatorButton,onClick:be,style:a,type:`button`,children:v(`span`,{className:z.indicatorDot})})}function Ee({act:e,checkFailure:t,codex:n,developmentControls:r,dismissCheckFailure:i,dismissError:a,error:o,onBack:s,onClose:c,pendingAction:l,status:u,success:d}){let[h,g]=m({value:``}),[b,x]=m(()=>({paths:new Set})),S=p(null),C=u?.codexCompletion,w=u?.draft,T=u?.target,E=!C&&!d&&!n,D=b.fingerprint===w?.fingerprint?b.paths:new Set(w?.untracked??[]),O=h.fingerprint===w?.fingerprint&&h.proposal===u?.proposal?h.value:u?.proposal??``,k=!!(w?.untracked.length&&w.untracked.every(e=>D.has(e)));return f(()=>{let e=S.current;e&&n?.phase===`running`&&(e.scrollTop=e.scrollHeight)},[n]),t?v(K,{debug:!!s,developmentControls:r,icon:I,onBack:s,onClose:c,title:`Managed development check failed`,children:y(`div`,{className:z.content,children:[v(`div`,{className:z.checkFailure,role:`alert`,children:y(`div`,{className:z.checkMessage,children:[y(`p`,{className:z.checkCommand,children:[t.check.command,` failed`]}),v(`p`,{className:z.checkGuidance,children:Be(t)}),v(`p`,{className:z.checkGuidance,children:`Copy the output and paste it into your agent orchestration tool.`})]})}),y(Y,{children:[v(Z,{ariaLabel:`Dismiss error`,icon:L,iconOnly:!0,onClick:()=>i(t),children:`Dismiss`}),v(Z,{ariaLabel:`Copy output for ${t.check.command}`,icon:M,iconOnly:!0,onClick:()=>void navigator.clipboard.writeText(t.check.output??``),children:`Copy output`})]})]})}):v(K,{debug:!!s,developmentControls:r,icon:Fe({codex:n,completion:C,status:u,success:d}),onBack:s,onClose:c,title:C?`Codex conflict resolution finished`:d?.heading??(n?.phase===`complete`?`Finishing synchronization…`:n?.phase===`error`?`Conflict resolution failed.`:n?`Resolving conflicts with Codex…`:Pe(u)),children:y(`div`,{className:z.content,children:[d&&!C?y(`div`,{className:z.actionSuccess,role:`status`,children:[v(j,{"aria-hidden":`true`,className:z.successIcon,size:18}),v(`p`,{className:z.paragraph,children:d.message})]}):null,o?y(_,{children:[v(`div`,{className:z.actionError,role:`alert`,children:v(X,{children:o})}),v(Y,{children:v(Z,{ariaLabel:`Dismiss error`,icon:L,iconOnly:!0,onClick:a,children:`Dismiss`})})]}):null,C||!d&&n?v(Oe,{commits:C?.commits??n?.commits??[],completion:C,messages:C?.messages??n?.messages??[],outputRef:S,totalCommits:C?.totalCommits??n?.totalCommits,working:n?.phase===`running`}):E&&u?.setupFailure?y(_,{children:[y(`div`,{className:z.setupFailure,role:`alert`,children:[v(X,{children:u.setupFailure.message}),v(`pre`,{className:z.codexOutput,children:u.setupFailure.output})]}),y(Y,{children:[v(Z,{ariaLabel:`Dismiss error`,icon:L,iconOnly:!0,onClick:c,children:`Dismiss`}),v(Z,{ariaLabel:`Copy diagnostics`,disabled:!!u.busy,icon:M,iconOnly:!0,onClick:()=>void navigator.clipboard.writeText(He(u.setupFailure)),children:`Copy diagnostics`}),u.setupFailure.stage===`dependencies`?v(Z,{ariaLabel:`Retry install`,busy:l?.type===`retry-install`,disabled:!!u.busy,icon:P,iconOnly:!0,onClick:()=>void e({type:`retry-install`}),primary:!0,children:`Retry install`}):u.setupFailure.stage===`codegen`?v(Z,{ariaLabel:`Retry codegen`,busy:l?.type===`retry-codegen`,disabled:!!u.busy,icon:P,iconOnly:!0,onClick:()=>void e({type:`retry-codegen`}),primary:!0,children:`Retry codegen`}):v(Z,{busy:l?.type===`reset-database`,disabled:!!u.busy,icon:F,onClick:()=>{globalThis.confirm(`Reset the local database? This permanently deletes its current data, then reapplies migrations and seed scripts.`)&&e({type:`reset-database`})},primary:!0,children:`Reset database`})]})]}):E&&Le(u)?y(_,{children:[v(`p`,{className:z.paragraph,children:u?.message}),v(Y,{children:v(Z,{ariaLabel:`Retry managed development`,busy:l?.type===`retry-supervisor`,disabled:!!u?.busy,icon:P,immediatelyEnabled:!0,onClick:()=>void e({type:`retry-supervisor`}),primary:!0,children:`Retry managed development`})})]}):E?v(`p`,{className:z.paragraph,children:u?u.busy||u.message||Ie(u):`Checking managed development status…`}):null,C&&!o?v(Y,{children:v(Z,{busy:l?.type===`acknowledge-codex`,disabled:!!u?.busy,icon:j,onClick:()=>void e({id:C.id,type:`acknowledge-codex`}),primary:!0,children:`Continue`})}):null,E&&u?.mode===`waiting`&&u.message&&!Re(u)?y(`p`,{className:z.paragraph,children:[`To re-enable managed development, run `,v(`code`,{children:`git switch main`}),` in the primary checkout. Synchronization will resume automatically.`]}):null,E&&T&&!w?v(`pre`,{className:z.pendingCommits,children:(T.commits??[T]).map(e=>`${e.shortCommit} ${e.subject}`).join(`
|
|
175
|
-
`)}):null,
|
|
176
|
-
`)}function Ue(){let[e,n]=m(),[r,i]=m(!1),[a,o]=m(),s=he(),c=p(void 0);return f(()=>{if(!s)return;let e=e=>{if(e.requestId===c.current){if(e.state===`busy`){i(!0);return}if(c.current=void 0,i(!1),e.state===`error`){o(void 0),n(e.error??`The Vite restart failed.`);return}n(void 0),o(`Vite restarted.`)}};return s.on(t.actionResult,e),()=>s.off(t.actionResult,e)},[s]),{error:e,pending:r,reloadPage:()=>globalThis.location.reload(),restartVite:()=>{if(r)return;if(n(void 0),o(void 0),!s){n(`The Vite HMR connection is unavailable.`);return}let e=String(++ve);c.current=e,i(!0),s.send(t.action,{action:{type:`restart-vite`},requestId:e})},success:a}}function We(e){return e.type===`apply`?{heading:`Refresh complete`,message:`Your changes were committed and the project is up to date.`}:e.type===`prepare`?{heading:`Refresh complete`,message:`Your project is up to date.`}:e.type===`commit`?{heading:`Changes committed`,message:`Your local changes are committed. Checking for managed development updates…`,preserveDuringStatus:!0}:e.type===`reject`?{heading:`Update dismissed`,message:`No further action is required.`}:e.type===`retry-install`?{heading:`Setup complete`,message:`Dependencies installed and the project is ready.`}:e.type===`retry-codegen`?{heading:`Codegen complete`,message:`Panda generated code is ready.`}:e.type===`reset-database`?{heading:`Database reset complete`,message:`The database was recreated, migrated, and seeded.`}:e.type===`retry-supervisor`?{heading:`Managed development reconnected`,message:`The managed development supervisor is connected again.`}:{heading:`Action complete`,message:`No further action is required.`}}function Ge(){let[e,t]=m(),[r,i]=m(),[a,o]=m(!1),[s,c]=m(),[l,d]=m(),[h,g]=m(),_=p(void 0),v=p(void 0),y=p(new Map),b=ge();f(()=>{if(!b)return;let e=y.current,r=!1,a=()=>{o(!0),r&&(r=!1,b.send(n.statusRequest))},s=()=>{r=!0,o(!1),t(void 0),i(void 0),c(void 0),g(void 0),_.current=void 0,d(void 0),W(!1)},l=({status:n})=>{let r=$(n);if(Re(n)){for(let[t,n]of e)n.type!==`retry-supervisor`&&e.delete(t);[...e.values()].some(e=>e.type===`retry-supervisor`)||g(void 0),_.current=void 0,d(void 0),i(void 0),c(void 0)}o(!0),t(n),n.codexCompletion&&v.current!==n.codexCompletion.id&&(v.current=n.codexCompletion.id,W(!0));let a=!n.busy&&!n.codexCompletion?[...e.entries()].filter(([,e])=>e.type===`acknowledge-codex`).map(([e])=>e):[];if(a.length>0){for(let t of a)e.delete(t);c(void 0),r||W(!1)}r&&c(e=>e?.preserveDuringStatus?e:void 0)},u=n=>{let r=e.get(n.requestId);r&&(e.delete(n.requestId),g(void 0),n.status&&t(n.status),n.error?(_.current?.requestId===n.requestId&&(_.current=void 0,d(void 0)),i(n.error),r.type===`acknowledge-codex`&&W(!0)):n.status?.codexCompletion?(v.current=n.status.codexCompletion.id,_.current=void 0,d(void 0),c(void 0),W(!0)):r.type===`acknowledge-codex`||r.type===`dismiss-check`?(c(void 0),n.status&&!$(n.status)&&W(!1)):n.status&&(r.type===`commit`||!$(n.status))&&c(We(r)))},f=t=>{if(!e.has(t.requestId))return;if(t.phase===`start`){let e={commits:t.commits,messages:[t.message],phase:`running`,requestId:t.requestId,totalCommits:t.totalCommits};_.current=e,d(e),W(!0);return}let n=_.current;if(!n||n.requestId!==t.requestId)return;let r=t.phase===`message`?{...n,messages:Ve([...n.messages,t.message])}:t.phase===`complete`?{commits:n.commits,messages:n.messages,phase:`complete`,requestId:t.requestId,totalCommits:n.totalCommits}:t.phase===`progress`?{...n,commits:t.commits,totalCommits:t.totalCommits??n.totalCommits}:{...n,phase:`error`};_.current=r,d(r)};b.on(R.connect,a),b.on(R.disconnect,s),b.on(n.status,l),b.on(n.actionResult,u),b.on(n.codex,f),b.send(n.statusRequest);let p=globalThis.setInterval(()=>{[...e.values()].some(e=>e.type===`acknowledge-codex`)&&b.send(n.statusRequest)},1e3);return()=>{globalThis.clearInterval(p),e.clear(),_.current=void 0,b.off(R.connect,a),b.off(R.disconnect,s),b.off(n.status,l),b.off(n.actionResult,u),b.off(n.codex,f)}},[b]);let x=async e=>{if(e.type===`acknowledge-codex`&&(v.current=e.id),i(void 0),c(void 0),_.current=void 0,d(void 0),!b){i(`The Vite HMR connection is unavailable.`);return}let t=String(++_e);y.current.set(t,e),g(e),b.send(n.action,{action:e,requestId:t})},S=u(()=>c(void 0),[]);return{act:x,checkFailure:!r&&!s&&!l&&!e?.codexCompletion?Q(e):void 0,codex:l,dismissCheckFailure:e=>{if(!e.check.failureId){W(!1);return}x({failureId:e.check.failureId,type:`dismiss-check`})},dismissError:()=>i(void 0),dismissSuccess:S,error:r,hmrReady:a,pendingAction:h,status:e,success:s}}function Ke(e){return H.add(e),()=>H.delete(e)}function qe(){return V}function Je(){return!1}export{xe as ManagedDevOverlay,q as ManagedDevOverlayIndicator,be as toggleManagedDevOverlay};
|
|
191
|
+
:host::backdrop{pointer-events:none!important;background:0 0!important}[data-isolet-root]{--overlay-font-body:"SN Pro Variable", system-ui, sans-serif;--overlay-font-monospace:"Google Sans Code Variable", ui-monospace, monospace;color-scheme:light dark;--oc-white:#fff;--oc-gray-0:#f8f9fa;--oc-gray-1:#f1f3f5;--oc-gray-2:#e9ecef;--oc-gray-3:#dee2e6;--oc-gray-4:#ced4da;--oc-gray-5:#adb5bd;--oc-gray-6:#868e96;--oc-gray-7:#495057;--oc-gray-8:#343a40;--oc-gray-9:#212529;--oc-red-0:#fff5f5;--oc-red-2:#ffc9c9;--oc-red-7:#f03e3e;--oc-red-9:#c92a2a;--oc-grape-0:#f8f0fc;--oc-grape-2:#eebefa;--oc-grape-7:#ae3ec9;--oc-grape-9:#862e9c;--oc-blue-0:#e7f5ff;--oc-blue-2:#a5d8ff;--oc-blue-4:#4dabf7;--oc-blue-6:#228be6;--oc-blue-7:#1c7ed6;--oc-blue-9:#1864ab;--oc-green-0:#ebfbee;--oc-green-2:#b2f2bb;--oc-green-7:#37b24d;--oc-green-9:#2b8a3e;--oc-yellow-0:#fff9db;--oc-yellow-2:#ffec99;--oc-yellow-7:#f59f00;--oc-yellow-9:#e67700;--overlay-background:var(--oc-white);--overlay-surface-subtle:var(--oc-gray-0);--overlay-surface-muted:var(--oc-gray-1);--overlay-border:var(--oc-gray-3);--overlay-border-strong:var(--oc-gray-4);--overlay-text:var(--oc-gray-9);--overlay-text-muted:var(--oc-gray-7);--overlay-text-subtle:var(--oc-gray-6);--overlay-accent:var(--oc-blue-6);--overlay-accent-hover:var(--oc-blue-7);--overlay-accent-soft:var(--oc-blue-0);--overlay-accent-border:var(--oc-blue-2);--overlay-accent-text:var(--oc-blue-9);--overlay-thought-soft:var(--oc-grape-0);--overlay-thought-border:var(--oc-grape-2);--overlay-thought-text:var(--oc-grape-9);--overlay-success-soft:var(--oc-green-0);--overlay-success-border:var(--oc-green-2);--overlay-success-text:var(--oc-green-9);--overlay-warning-soft:var(--oc-yellow-0);--overlay-warning-border:var(--oc-yellow-2);--overlay-warning-text:var(--oc-yellow-9);--overlay-danger-soft:var(--oc-red-0);--overlay-danger-border:var(--oc-red-2);--overlay-danger-text:var(--oc-red-9);--overlay-button-highlight:#ffffffb3;--overlay-button-shadow:#00000017;--overlay-button-hover:var(--overlay-background);--overlay-button-primary:#286fb4;--overlay-button-primary-hover:#307bbf;color:var(--overlay-text);font:14px/1.45 var(--overlay-font-body);-webkit-user-select:text;user-select:text}.surface{--managed-dev-bottom-offset:0px;--managed-dev-right-offset:0px}.indicatorButton{appearance:none;bottom:calc(10px + env(safe-area-inset-bottom,0px) + var(--managed-dev-bottom-offset));cursor:pointer;pointer-events:auto;height:44px;right:calc(10px + env(safe-area-inset-right,0px) + var(--managed-dev-right-offset));background:0 0;border:0;justify-content:center;align-items:center;width:44px;padding:0;display:flex;position:fixed}.indicatorButton:focus-visible{outline:3px solid var(--overlay-accent-border);outline-offset:-3px}.indicatorDot{background:var(--managed-dev-indicator-color);box-shadow:inset 0 0 0 .5px color-mix(in srgb, var(--overlay-border) 30%, transparent);height:var(--managed-dev-indicator-size);width:var(--managed-dev-indicator-size);border-radius:50%;display:block;position:relative}.dialog{background:var(--overlay-background);border:1px solid var(--overlay-border);box-shadow:0 8px 28px color-mix(in srgb, var(--oc-gray-9) 18%, transparent);color:var(--overlay-text);box-sizing:border-box;height:auto;bottom:20px;left:unset;overscroll-behavior:contain;pointer-events:auto;border-radius:12px;width:min(520px,100vw - 40px);max-width:min(520px,100vw - 40px);max-height:calc(100dvh - 40px);margin:0;padding:16px 18px;position:fixed;right:20px;overflow:hidden}.dialog[open]{flex-direction:column;gap:12px;display:flex}.drawerBody{align-content:start;gap:16px;min-width:0;min-height:0;display:grid;overflow:auto}.header{justify-content:space-between;align-items:center;gap:12px;display:flex}.copyFooter{flex:none;align-items:center;gap:8px;display:flex}.copyButton,.copyButton:hover{border-radius:50%}.headerActions{align-items:center;display:flex}.developmentControlsDropdown{display:flex;position:relative}.title{align-items:center;gap:8px;margin:0;font-size:16px;font-weight:600;display:flex}.titleIcon{color:var(--overlay-text-muted);flex:none}.iconButton{color:inherit;cursor:pointer;background:0 0;border:0;flex:none;justify-content:center;align-items:center;min-width:32px;min-height:32px;padding:4px;display:inline-flex}.iconButton:hover{background:var(--overlay-surface-muted);border-radius:8px}.iconButton:focus-visible,.scenarioButton:focus-visible,.sectionLink:focus-visible,.button:focus-visible,.message:focus-visible{outline:3px solid var(--overlay-accent-border);outline-offset:2px}.content{gap:12px;display:grid}.section{background:var(--overlay-surface-subtle);border:1px solid var(--overlay-border);border-radius:12px;gap:12px;padding:14px;display:grid}.sectionHeading{justify-content:space-between;align-items:start;gap:12px;display:flex}.sectionTitle{margin:0;font-size:13px}.sectionDescription{color:var(--overlay-text-muted);margin:3px 0 0;font-size:12px}.sectionLink{color:var(--overlay-accent-text);cursor:pointer;font:inherit;background:0 0;border:0;padding:2px;font-size:12px}.debugFooter{background:var(--overlay-surface-subtle);border-top:1px solid var(--overlay-border);color:var(--overlay-text-muted);flex:none;margin:0 -18px -12px;padding:4px 18px;font-size:11px;line-height:1.3}.scenarioList{gap:7px;max-height:min(480px,100dvh - 210px);display:grid;overflow:auto}.scenarioButton{background:var(--overlay-surface-subtle);color:inherit;cursor:pointer;font:inherit;text-align:start;border:1px solid #0000;border-radius:6px;gap:3px;padding:10px;display:grid}.scenarioButton:hover{background:var(--overlay-accent-soft);border-color:var(--overlay-accent-border)}.scenarioLabel{font-weight:650}.scenarioDescription{color:var(--overlay-text-muted);font-size:12px}.paragraph{margin:0}.pendingCommits{background:var(--overlay-surface-subtle);border:1px solid var(--overlay-border);box-sizing:border-box;font:12px/1.5 var(--overlay-font-monospace);white-space:pre-wrap;border-radius:6px;max-height:190px;margin:0;padding:10px;overflow:auto}.codexOutput{background:var(--overlay-surface-subtle);border:1px solid var(--overlay-border);box-sizing:border-box;font:12px/1.5 var(--overlay-font-monospace);white-space:pre-wrap;word-break:break-word;border-radius:6px;max-height:280px;margin:0;padding:10px;overflow:auto}.codexWorking{color:var(--overlay-text-muted);align-items:center;gap:6px;font-size:12px;display:flex}.codexTranscript{gap:10px;max-height:360px;display:grid;overflow:auto}.codexMessage{border-bottom:1px solid var(--overlay-border);gap:5px;padding:8px 0;display:grid}.codexMessage:last-child{border-bottom:0}.codexMessageHeader{justify-content:space-between;align-items:baseline;gap:8px;display:flex}.codexMessageLabel{color:var(--overlay-text-muted);margin:0;font-size:11px;font-weight:650}.codexMessageAge{color:var(--overlay-text-subtle);white-space:nowrap;font-size:11px}.codexMessageText,.codexWaiting{font:13px/1.5 var(--overlay-font-body);white-space:pre-wrap;word-break:break-word;margin:0}.codexWaiting{color:var(--overlay-text-subtle)}.rebaseProgress{gap:8px;display:grid}.rebaseProgressLabel{color:var(--overlay-text-muted);justify-content:space-between;align-items:baseline;font-size:12px;display:flex}.rebaseProgressLabel strong{color:var(--overlay-text)}.rebaseProgressTrack{background:var(--overlay-surface-muted);border-radius:999px;height:6px;overflow:hidden}.rebaseProgressFill{background:var(--overlay-success-text);border-radius:inherit;height:100%;transition:width .18s;display:block}.codexHistorySummary{cursor:pointer;font-size:12px;font-weight:600}.codexHistoryList{gap:8px;padding-top:8px;display:grid}.files{gap:7px;max-height:190px;display:grid;overflow:auto}.checkbox{overflow-wrap:anywhere;align-items:start;gap:8px;display:flex}.checkbox input{accent-color:var(--overlay-accent)}.filePath{font-family:var(--overlay-font-monospace)}.message{background:var(--overlay-surface-subtle);border:1px solid var(--overlay-border-strong);box-sizing:border-box;color:var(--overlay-text);font-family:var(--overlay-font-monospace);resize:vertical;border-radius:6px;width:100%;min-height:92px;padding:10px}.codexSettings{justify-self:start}.codexSettingsPopover{z-index:2;box-sizing:border-box;background:var(--overlay-background);border:1px solid var(--overlay-border);border-radius:8px;gap:12px;width:220px;padding:12px;display:grid;position:fixed;box-shadow:0 4px 16px #0000002e}.codexSettingsPopover:before{content:"";z-index:-1;position:absolute;inset:-8px 0}.codexSettingsPopover>.sectionTitle{color:var(--overlay-text-muted);font-size:12px;font-weight:500}.modelToggle{background:var(--overlay-surface-subtle);border-radius:6px;gap:2px;padding:3px;display:flex}.modelToggle button{color:var(--overlay-text-muted);font:inherit;cursor:pointer;background:0 0;border:0;border-radius:4px;flex:1;padding:5px 8px;font-size:13px}.modelToggle button[aria-pressed=true]{background:var(--overlay-surface-muted);color:var(--overlay-text)}.modelToggle button:focus-visible,.effortControl input:focus-visible{outline:2px solid var(--overlay-accent);outline-offset:2px}.modelToggle button:disabled{cursor:default;opacity:.55}.effortControl{gap:4px;font-size:12px;display:grid}.effortControl>span{justify-content:space-between;display:flex}.effortControl input{appearance:none;cursor:pointer;background:0 0;width:100%;height:20px;margin:0}.effortControl input::-webkit-slider-runnable-track{background:linear-gradient(to right, var(--overlay-accent) var(--effort-progress), var(--overlay-border-strong) var(--effort-progress));border-radius:2px;height:4px}.effortControl input::-webkit-slider-thumb{appearance:none;background:var(--overlay-accent);border-radius:50%;width:12px;height:12px;margin-top:-4px}.effortControl input::-moz-range-track{background:var(--overlay-border-strong);border-radius:2px;height:4px}.effortControl input::-moz-range-progress{background:var(--overlay-accent);height:4px}.effortControl input::-moz-range-thumb{background:var(--overlay-accent);border:0;border-radius:50%;width:12px;height:12px}.effortControl input:disabled{cursor:default;opacity:.55}.effortEndpoints{color:var(--overlay-text-muted)}.actions{flex-wrap:wrap;justify-content:end;gap:8px;display:flex}.developmentControls{background:var(--overlay-background);border:1px solid var(--overlay-border);box-shadow:0 10px 30px color-mix(in srgb, var(--oc-gray-9) 18%, transparent);box-sizing:border-box;z-index:1;border-radius:6px;gap:4px;min-width:170px;max-width:calc(100vw - 32px);margin:0;padding:4px;display:grid;position:absolute;top:calc(100% + 6px);right:0}.recoveryBack{color:var(--overlay-text);cursor:pointer;font:inherit;background:0 0;border:0;border-radius:6px;align-items:center;gap:8px;padding:6px 0;display:flex}.recoveryBack:focus-visible{outline:2px solid var(--overlay-accent);outline-offset:2px}.recoveryTitle{margin:0;font-size:18px}.developmentControls .actions{justify-content:stretch;align-items:stretch;gap:0;width:100%;display:grid}.developmentControls .button{text-align:start;white-space:nowrap;justify-content:start;justify-self:stretch;width:100%;min-height:32px}.button{--button-fill:var(--overlay-surface-subtle);appearance:none;background:linear-gradient(#ffffff0a, #00000008), var(--button-fill);border:1px solid var(--overlay-border);box-shadow:inset 0 1px 0 var(--overlay-button-highlight), 0 1px 2px var(--overlay-button-shadow);box-sizing:border-box;color:inherit;cursor:pointer;font:inherit;border-radius:8px;justify-content:center;align-items:center;gap:6px;min-height:34px;padding:7px 14px;font-weight:600;transition:background-color .14s,border-color .14s,box-shadow .14s,transform .1s,opacity .14s;display:inline-flex}.button:hover:not(:disabled){--button-fill:var(--overlay-button-hover);border-color:var(--overlay-border-strong)}.button:active:not(:disabled){box-shadow:inset 0 1px 2px var(--overlay-button-shadow);transform:translateY(1px)}.button>svg:not(.buttonSpinner){opacity:.8}.primary{--button-fill:var(--overlay-button-primary);background-color:var(--button-fill);border-color:color-mix(in srgb, var(--button-fill), black 15%);box-shadow:inset 0 1px 0 #fff3, 0 1px 2px var(--overlay-button-shadow);color:var(--oc-white)}.primary:hover:not(:disabled){--button-fill:var(--overlay-button-primary-hover);border-color:color-mix(in srgb, var(--button-fill), black 15%)}.developmentControls .button{box-shadow:none;color:inherit;font-weight:inherit;background:0 0;border:0;transform:none}.developmentControls .button:hover:not(:disabled){background:var(--overlay-surface-muted)}.developmentControls .button:active:not(:disabled){box-shadow:none;transform:none}.button:disabled{cursor:default;opacity:.55}.buttonSpinner{animation:1.4s linear infinite button-spin}.iconOnly{box-sizing:border-box;flex:0 0 34px;width:34px;min-width:34px;height:34px;padding:7px}.warning{color:var(--overlay-warning-text);white-space:pre-wrap}.checkFailure{background:var(--overlay-danger-soft);border:1px solid var(--overlay-danger-border);color:var(--overlay-danger-text);border-radius:6px;gap:10px;padding:10px;display:grid}.checkCommand{font-family:var(--overlay-font-monospace);margin:0;font-weight:600}.checkGuidance{margin:3px 0 0;font-size:12px}.setupFailure{background:var(--overlay-danger-soft);border:1px solid var(--overlay-danger-border);color:var(--overlay-danger-text);border-radius:6px;gap:10px;padding:10px;display:grid}.actionError{background:var(--overlay-warning-soft);border:1px solid var(--overlay-warning-border);color:var(--overlay-warning-text);white-space:pre-wrap;border-radius:6px;gap:10px;padding:10px;display:grid}.errorMessage{grid-template-columns:auto 1fr;align-items:start;gap:8px;display:grid}.actionSuccess{background:var(--overlay-surface-subtle);border:1px solid var(--overlay-border);color:var(--overlay-success-text);border-radius:6px;grid-template-columns:auto 1fr;align-items:start;gap:8px;padding:10px;display:grid}.errorIcon,.successIcon{margin-top:1px}@media (prefers-color-scheme:dark){[data-isolet-root]{--overlay-background:var(--oc-gray-9);--overlay-button-highlight:#ffffff1a;--overlay-button-shadow:#00000040;--overlay-button-hover:color-mix(in srgb, var(--overlay-surface-subtle), white 5%);--overlay-button-primary:#306fae;--overlay-button-primary-hover:#397dbb;--overlay-surface-subtle:var(--oc-gray-8);--overlay-surface-muted:var(--oc-gray-7);--overlay-border:var(--oc-gray-7);--overlay-border-strong:var(--oc-gray-6);--overlay-text:var(--oc-gray-0);--overlay-text-muted:var(--oc-gray-4);--overlay-text-subtle:var(--oc-gray-5);--overlay-accent:var(--oc-blue-6);--overlay-accent-hover:var(--oc-blue-7);--overlay-accent-soft:color-mix(in srgb, var(--oc-blue-9) 32%, var(--overlay-background));--overlay-accent-border:var(--oc-blue-7);--overlay-accent-text:var(--oc-blue-2);--overlay-thought-soft:color-mix(in srgb, var(--oc-grape-9) 30%, var(--overlay-background));--overlay-thought-border:var(--oc-grape-7);--overlay-thought-text:var(--oc-grape-2);--overlay-success-soft:color-mix(in srgb, var(--oc-green-9) 30%, var(--overlay-background));--overlay-success-border:var(--oc-green-7);--overlay-success-text:var(--oc-green-2);--overlay-warning-soft:color-mix(in srgb, var(--oc-yellow-9) 24%, var(--overlay-background));--overlay-warning-border:var(--oc-yellow-7);--overlay-warning-text:var(--oc-yellow-2);--overlay-danger-soft:color-mix(in srgb, var(--oc-red-9) 30%, var(--overlay-background));--overlay-danger-border:var(--oc-red-7);--overlay-danger-text:var(--oc-red-2)}}@keyframes button-spin{to{transform:rotate(1turn)}}@media (prefers-reduced-motion:reduce){.button{transition:none}.button:active:not(:disabled){transform:none}.buttonSpinner{animation:none}}@media (width<=600px){.dialog{max-width:none;max-height:100dvh;padding:calc(16px + env(safe-area-inset-top,0px)) calc(16px + env(safe-area-inset-right,0px)) calc(16px + env(safe-area-inset-bottom,0px)) calc(16px + env(safe-area-inset-left,0px));border-radius:0;width:auto;inset:0}.debugFooter{margin:0 calc(-16px - env(safe-area-inset-right,0px)) calc(-16px - env(safe-area-inset-bottom,0px)) calc(-16px - env(safe-area-inset-left,0px));padding:4px calc(16px + env(safe-area-inset-right,0px)) calc(4px + env(safe-area-inset-bottom,0px)) calc(16px + env(safe-area-inset-left,0px))}.button{min-height:44px}.checkbox{align-items:center;min-height:44px}.iconButton{min-width:44px;min-height:44px}.iconOnly{flex-basis:44px;width:44px;min-width:44px;height:44px}}.buttonContainer{min-width:0;display:inline-flex}.buttonContainer:focus-visible{outline:2px solid var(--overlay-accent);outline-offset:2px;border-radius:8px}.button:disabled{pointer-events:none}.developmentControls .buttonContainer{width:100%;display:flex}.disabledTooltip{z-index:2147483647;border:1px solid var(--overlay-border);background:var(--overlay-surface-subtle);max-width:min(280px,100vw - 24px);color:var(--overlay-text-muted);pointer-events:none;border-radius:6px;padding:6px 8px;font-size:11px;font-weight:400;line-height:1.4;position:fixed;transform:translateY(-100%)}.srOnly{clip-path:inset(50%);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.activityList{gap:8px;min-width:0;display:grid}.activityRow{border-bottom:1px solid var(--overlay-border);min-width:0;margin:0;padding:10px 0}.activitySummary{cursor:pointer;overflow-wrap:anywhere;grid-template-columns:14px minmax(0,1fr) auto;align-items:center;gap:8px;font-size:13px;list-style:none;display:grid}.activitySummary::-webkit-details-marker{display:none}.activityDisclosure{color:var(--overlay-text-subtle)}.activityRow[open]>summary .activityDisclosure{transform:rotate(90deg)}.activityState{vertical-align:middle;color:var(--overlay-text-muted);display:inline-flex}.activityState[data-status=succeeded]{color:var(--overlay-success-text)}.activityState[data-status=failed]{color:var(--overlay-danger-text)}.activityStatus{color:var(--overlay-text-muted);font-variant-numeric:tabular-nums;white-space:nowrap;align-items:center;gap:6px;font-size:12px;display:inline-flex}.activityCommand{font-family:var(--overlay-font-monospace);white-space:pre-wrap;overflow-wrap:anywhere;margin-top:8px;font-size:12px;display:block}.activityMeta{color:var(--overlay-text-muted);margin-block:8px;font-size:12px}.activityOutput{white-space:pre-wrap;overflow-wrap:anywhere;max-height:200px;font-size:12px;overflow:auto}.content,.codexTranscript,.codexMessage,.checkMessage,.setupFailure,.actionError{overflow-wrap:anywhere;min-width:0}.pendingCommits,.codexOutput,.activityOutput{overflow-wrap:anywhere;tab-size:2}.codexOptionSelect:focus-visible,.checkbox input:focus-visible,.codexHistorySummary:focus-visible,.activitySummary:focus-visible{outline:2px solid var(--overlay-accent);outline-offset:2px}.activityRow:last-child{border-bottom:0}@media (prefers-reduced-motion:reduce){.rebaseProgressFill,.button{transition:none}}.notificationActions{flex-wrap:nowrap;justify-content:flex-start;align-items:center;gap:8px;padding:3px;display:flex;overflow-x:auto}.notificationActions:empty{display:none}.notificationActions>*{flex-shrink:0}.notificationActions>:first-child{margin-inline-start:auto}.notificationActions>.codexSettings{order:-1;margin-inline:0}.notificationActions>.copyFooter{order:-2;margin-inline:0 auto}.notificationActions .button{white-space:nowrap}.changeList{box-sizing:border-box;border-block:1px solid var(--overlay-border);gap:14px;min-height:0;max-height:min(240px,35dvh);padding-block:10px;display:grid;overflow:auto}.fileGroup{gap:8px;min-width:0;display:grid}.trackedFile{overflow-wrap:anywhere;align-items:baseline;gap:8px;display:flex}.fileStatus{font:600 12px/1.5 var(--overlay-font-monospace);text-align:center;flex:0 0 1.5em}.fileStatus[data-tone=added]{color:var(--overlay-success-text)}.fileStatus[data-tone=modified]{color:var(--overlay-warning-text)}.fileStatus[data-tone=deleted]{color:var(--overlay-danger-text)}.fileStatus[data-tone=renamed]{color:var(--overlay-accent-text)}.changeList .filePath{overflow-wrap:anywhere;min-width:0}.changeList:focus-visible{outline:2px solid var(--overlay-accent);outline-offset:2px}.completionReceipt{gap:16px;display:grid}.completionNote{color:var(--overlay-text-muted);margin:3px 0 0;font-size:13px}.completionDetails{font-size:13px}.completionDetailBody{border-top:1px solid var(--overlay-border);gap:14px;max-height:min(360px,50dvh);margin-top:12px;padding-top:12px;display:grid;overflow:auto}.completionMetadata{color:var(--overlay-text-muted);justify-content:space-between;gap:16px;font-size:12px;display:flex}.completionMetadata>:last-child{white-space:nowrap}.completionSteps{border-collapse:collapse;width:100%;font-size:13px}.completionSteps td{vertical-align:baseline;padding:5px 0}.completionSteps td:first-child{width:22px;color:var(--overlay-text-muted)}.completionSteps td:last-child{text-align:right;color:var(--overlay-text-muted);white-space:nowrap;font-size:12px}@media (width<=600px){.dialog.completionDialog{top:auto;left:8px;right:8px;bottom:calc(8px + env(safe-area-inset-bottom,0px));border-radius:12px;max-height:calc(100dvh - 16px)}}
|
|
192
|
+
`,hostAttributes:{"aria-live":`polite`,id:`coreframe-managed-dev`},hostStyles:{display:`block`,inset:`0`,overflow:`visible`,pointerEvents:`none`,position:`fixed`},zIndex:2147483647}),n=t.host,i=n?Ce(n):void 0;return queueMicrotask(()=>{e&&s(t.container)}),()=>{e=!1,i?.(),t.host?.remove()}},[r]);let l={"--managed-dev-bottom-offset":Ve(e),"--managed-dev-right-offset":Ve(a)};return o?S(T(`div`,{className:q.surface,style:l,children:[i?n:null,i&&c?t:null]}),o):null}function Be({scenario:e,onSnapshot:n,onAction:r,bottomOffset:i,indicator:a,rightOffset:o}){let[s,c]=b(),[u,d]=b(),[f,m]=b(Oe),[h,_]=b(),[v,y]=b(),[x,S]=b(!1),C=e??H.find(({id:e})=>e===s),T=e=>{c(e),_(void 0),y(void 0),S(!1)},E=C?.status.checks&&x?{...C.status,checks:{...C.status.checks,commands:C.status.checks.commands.map(e=>({...e,dismissed:!0}))}}:C?.status,D=C?.codex??(E?.operation?Ot(E.operation):void 0),O=!C||Ct({...C,status:E,error:x?void 0:C.error,codex:x&&C.codex?.phase===`error`?void 0:C.codex,success:v??C.success,controls:{...C.controls,success:h??C.controls?.success}});g(()=>{n?.({available:O,scenarioId:C?.id,status:C?.status,codex:C?.codex??(C?.status.operation?Ot(C.status.operation):void 0),error:C?.error,success:v??C?.success,errorsDismissed:x,codexOptions:f,controlSuccess:h,pendingAction:C?.pendingAction,controls:C?.controls})},[O,C,n,v,x,f,h]);let k=async e=>{if(r){r(e);return}if(e.type!==`configure-codex`){if(e.type===`decline-rebase`){X(!1);return}if(e.type===`acknowledge-codex`){T(void 0);return}y(Dt(e))}},A=a??w(Ke,{}),j={dismissError:()=>void 0,pending:C?.controls?.pending??!1,error:C?.controls?.error,reloadPage:()=>_(`Page reload simulated.`),restartVite:()=>_(`Vite restart simulated.`),resetBranches:()=>_(`Branch reset simulated.`),resetDisabledReason:t(C?.status)?void 0:`No active merge or rebase to reset`,success:h??C?.controls?.success},M=p(A)&&A.type===Ke?l(A,{paused:C?.status.mode===`waiting`}):A;return w(ze,{bottomOffset:i,indicator:u&&u===C?.id?null:M,ready:O,openOnMount:!0,rightOffset:o,children:C?w(ke.Provider,{value:C.connected??!0,children:w(qe,{connectionNotice:C.connected===!1?`Connection lost; progress may be stale. Reconnecting…`:void 0,act:k,checkFailure:xt(E),codex:D,codexOptions:f,developmentControls:j,dismissCheckFailure:()=>S(!0),dismissError:()=>S(!0),error:C.error,errorsDismissed:x,pendingAction:C.pendingAction,onBack:e?void 0:()=>T(void 0),onClose:()=>{d(C?.id),X(!1)},setCodexOptions:m,status:E,success:v??C.success},C.id)}):w(He,{developmentControls:j,onClose:()=>{d(void 0),X(!1)},onSelect:e=>T(e)})})}function Ve(e){return typeof e==`number`?`${e}px`:e??`0px`}function He({developmentControls:e,onClose:t,onSelect:n}){return w(Ue,{debug:!0,developmentControls:e,icon:re,onClose:t,title:`Overlay scenarios`,children:w(`div`,{className:q.scenarioList,children:Fe.map(e=>T(`button`,{className:q.scenarioButton,onClick:()=>n(e.id),type:`button`,children:[w(`span`,{className:q.scenarioLabel,children:e.label}),w(`span`,{className:q.scenarioDescription,children:e.description})]},e.id))})})}function Ue({children:e,compact:t=!1,debug:n=!1,developmentControls:r,diagnostics:i,icon:a,onBack:o,onClose:s,title:c}){let l=y(null),u=y(null),[d,f]=b(!1),[p,m]=b(!1),h=p&&!!r?.recovery,_=y(null),x=y(null),S=y(0),[C,E]=b(null);return v(()=>{!h&&x.current&&(x.current.scrollTop=S.current)},[h]),g(()=>{h&&_.current?.focus()},[h]),g(()=>{let e=e=>{let t=e.composedPath(),n=u.current;n&&!t.includes(n)&&f(!1);let r=l.current;r&&!t.includes(r)&&s()},t=e=>{e.key===`Escape`&&(e.preventDefault(),s())};return document.addEventListener(`pointerdown`,e),document.addEventListener(`keydown`,t),()=>{document.removeEventListener(`pointerdown`,e),document.removeEventListener(`keydown`,t)}},[s]),T(`dialog`,{"aria-labelledby":h?`coreframe-recovery-title`:`coreframe-managed-title`,"aria-modal":`true`,className:`${q.dialog} ${t&&!h?q.completionDialog:``}`,id:`coreframe-managed-dev-dialog`,open:!0,ref:l,children:[T(`div`,{className:q.header,children:[h?T(`button`,{className:q.recoveryBack,ref:_,type:`button`,onClick:()=>{m(!1),u.current?.querySelector(`button`)?.focus()},children:[w(ne,{"aria-hidden":`true`,size:18}),`Back`]}):null,T(`h2`,{className:q.title,id:`coreframe-managed-title`,style:h?{display:`none`}:void 0,children:[w(a,{"aria-hidden":`true`,className:`${q.titleIcon} ${a===B?q.buttonSpinner:``}`,size:18}),c]}),T(`div`,{className:q.headerActions,children:[o&&!h?w(`button`,{"aria-label":`Back to scenarios`,className:q.iconButton,onClick:o,type:`button`,children:w(ne,{"aria-hidden":`true`,size:18})}):null,r?T(`div`,{className:q.developmentControlsDropdown,ref:u,children:[w(We,{"aria-expanded":d,"aria-haspopup":`menu`,label:`Development controls`,onClick:()=>f(e=>!e),children:w(fe,{"aria-hidden":`true`,size:18})}),d?w(Ye,{controls:r,onRecover:()=>{h||(S.current=x.current?.scrollTop??0),f(!1),m(!0)}}):null]}):null,w(We,{label:`Hide`,onClick:s,children:w(ie,{"aria-hidden":`true`,size:18})})]})]}),T(ut.Provider,{value:C,children:[w(`div`,{className:q.drawerBody,ref:x,style:h?{display:`none`}:void 0,children:e}),h?w(`div`,{className:q.drawerBody,children:r?.recovery}):null,w(`div`,{className:q.notificationActions,ref:E,style:h?{display:`none`}:void 0,children:i?w(Ge,{diagnostics:{...i,title:c}}):null})]}),n?w(`footer`,{className:q.debugFooter,children:`Debug preview · actions are simulated`}):null]})}function We({label:e,className:t=``,children:n,...r}){let[i,a]=b(),o=y(null),s=_();v(()=>{let e=o.current;if(!i||!e)return;let t=e.getBoundingClientRect().width;e.style.left=`${Math.max(12,Math.min(i.left-t/2,window.innerWidth-t-12))}px`},[i]);let c=e=>{let t=e.closest(`[data-isolet-root]`),n=e.getBoundingClientRect();t&&a({left:n.left+n.width/2,top:n.top-8,root:t})};return T(C,{children:[w(`button`,{...r,"aria-label":e,"aria-describedby":i?s:void 0,className:`${q.iconButton} ${t}`,onBlur:()=>a(void 0),onFocus:e=>c(e.currentTarget),onMouseEnter:e=>c(e.currentTarget),onMouseLeave:()=>a(void 0),onKeyDown:e=>{e.key===`Escape`&&i&&(e.stopPropagation(),a(void 0))},type:`button`,children:n}),i?S(w(`span`,{className:q.disabledTooltip,id:s,ref:o,role:`tooltip`,style:{left:i.left,top:i.top,width:`max-content`},children:e}),i.root):null]})}function Ge({diagnostics:e}){let[t,n]=b();return g(()=>{if(!t)return;let e=globalThis.setTimeout(()=>n(void 0),3e3);return()=>globalThis.clearTimeout(e)},[t]),T(`div`,{className:q.copyFooter,children:[w(We,{label:`Copy this as JSON`,className:q.copyButton,onClick:async()=>{try{await navigator.clipboard.writeText(JSON.stringify({source:`coreframe-managed-dev`,schemaVersion:1,capturedAt:new Date().toISOString(),...e},null,2)),n(`copied`)}catch{n(`failed`)}},children:w(t===`copied`?z:ue,{"aria-hidden":`true`,size:16})}),w(`span`,{className:t===`failed`?q.paragraph:q.srOnly,role:`status`,children:t===`copied`?`Copied as JSON`:t===`failed`?`Could not copy JSON. Check clipboard permissions and try again.`:``})]})}function Ke({color:e=`#228be6`,paused:t=!1,size:n=14,warningColor:r=`#fd7e14`}){let i=x(At,jt,Mt),a={"--managed-dev-indicator-color":t?r:e,"--managed-dev-indicator-size":typeof n==`number`?`${n}px`:n};return w(`button`,{"aria-controls":`coreframe-managed-dev-dialog`,"aria-expanded":i,"aria-label":`${i?`Hide`:`Show`} Coreframe managed development`,className:q.indicatorButton,onClick:Ie,style:a,type:`button`,children:w(`span`,{className:q.indicatorDot})})}function qe({connectionNotice:e,act:t,checkFailure:r,codex:i,codexOptions:a,developmentControls:o,dismissCheckFailure:s,dismissError:c,error:l,errorsDismissed:u,onBack:d,onClose:f,onInspectOperation:p,pendingAction:m,setCodexOptions:h,status:_,success:v}){let[x,S]=b({value:``}),[E,D]=b(()=>({paths:new Set})),O=y(null),k=_?.operation,A=!k||k.state===`succeeded`?_?.codexCompletion:void 0,j=_?.draft,M=_?.codexRetry?.prepared?void 0:_?.pendingRebase,N=_?.codexRetry||_?.history?void 0:_?.target,P=yt(_)||u&&i?.phase===`error`?void 0:i,F=!A&&!v&&(k?!n(k):!P),ee=!!gt(_,l,i),I=E.fingerprint===j?.fingerprint?E.paths:new Set((j?.untracked??[]).filter(e=>!j?.artifactFiles?.includes(e))),te=!!(j?.tracked||I.size),L=_?.proposalUntracked&&(_.proposalUntracked.length!==I.size||_.proposalUntracked.some(e=>!I.has(e)))?void 0:_?.proposal,R=x.fingerprint===j?.fingerprint&&x.proposal===L?x.value:L??``,ne={status:_??null,connectionNotice:e,checkFailure:r,codex:i,codexOptions:a,error:l,errorsDismissed:u,pendingAction:m,success:v,developmentControls:o?{error:o.error,pending:o.pending,success:o.success,resetDisabledReason:o.resetDisabledReason,resetPending:o.resetPending}:void 0,draft:j?{message:R,selectedUntracked:[...I]}:void 0},re=e=>{h(e),t({codex:e,type:`configure-codex`})};return g(()=>{let e=O.current;e&&i?.phase===`running`&&!e.querySelector(`details[open]`)&&(e.scrollTop=0)},[i]),k?.state===`succeeded`&&!$(_)&&!l?w(Ue,{compact:!0,debug:!!d,developmentControls:o,diagnostics:ne,icon:z,onBack:d,onClose:f,title:`Update complete`,children:w(Ze,{status:_,operation:k,codex:P,onInspect:p})}):r&&!n(k)?w(Ue,{debug:!!d,developmentControls:o,diagnostics:ne,icon:ve,onBack:d,onClose:f,title:`Check failed`,children:T(dt,{children:[e?w(`p`,{className:q.paragraph,role:`status`,children:e}):null,k?w(Qe,{operation:k}):null,w(`div`,{className:q.checkFailure,role:`alert`,children:T(`div`,{className:q.checkMessage,children:[T(`p`,{className:q.checkCommand,children:[r.check.command,` failed`]}),w(`p`,{className:q.checkGuidance,children:St(r)}),w(`p`,{className:q.checkGuidance,children:`Copy the output and share it with your coding agent.`})]})}),T(Z,{children:[w(Q,{ariaLabel:`Retry failed checks`,busy:m?.type===`retry-checks`,disabledReason:_?.busy,icon:V,onClick:()=>void t({type:`retry-checks`}),primary:!0,children:`Retry checks`}),w(Q,{ariaLabel:`Dismiss error`,icon:z,immediatelyEnabled:!0,onClick:()=>s(r),children:`Dismiss`}),w(Q,{ariaLabel:`Copy output for ${r.check.command}`,icon:ue,iconOnly:!0,onClick:()=>void navigator.clipboard.writeText(r.check.output??``),children:`Copy output`})]})]})}):w(Ue,{debug:!!d,developmentControls:o,diagnostics:ne,icon:mt({codex:P,completion:A,status:_,success:v}),onBack:d,onClose:f,title:k&&_?.mode===`managed`?Xe(k):A?`Conflict resolution finished`:v?.heading??(P?.phase===`complete`?P.stage===`verify`?`Finishing sync…`:`Finishing conflict resolution…`:P?.phase===`error`?P.stage===`verify`?`Verification failed`:`Conflict resolution failed`:P?P.stage===`verify`?`Verifying update`:`Resolving conflicts`:u&&!j&&!N&&!M?`Managed development`:pt(_)),children:T(dt,{children:[e?w(`p`,{className:q.paragraph,role:`status`,children:e}):null,k?w(Qe,{operation:k}):null,_?.history&&!n(k)?T(C,{children:[w(`p`,{className:q.paragraph,children:_.history.reason}),w(Z,{children:w(Q,{primary:!0,busy:m?.type===`sync-dev`,disabledReason:_.busy||(j&&_.history.kind!==`align`?`Commit or save main's working-tree changes first`:void 0),onClick:()=>void t({type:`sync-dev`,main:_.history.main,dev:_.history.dev,codex:a}),children:_.history.kind===`align`?`Update dev`:_.history.kind===`review`?`Review and repair with agent`:`Apply dev changes and align`})})]}):null,!n(k)&&(_?.codexRetry||_?.devAlignment||_?.fetchFailure||!_?.setupFailure&&_?.checks?.commands.some(e=>e.status===`failed`||e.status===`cancelled`))?T(C,{children:[_.fetchFailure?w(ft,{children:`Could not fetch updates: ${_.fetchFailure}`}):null,_.devAlignment?w(`p`,{className:q.paragraph,children:`Dev alignment is pending. Release its worktree or resolve the reported problem, then retry.`}):null,T(Z,{children:[_.codexRetry?w(Q,{ariaLabel:_.codexRetry.prepared?`Retry verification`:`Retry Codex`,busy:m?.type===`retry-codex`,disabledReason:_.busy,icon:V,onClick:()=>void t({type:`retry-codex`,codex:a}),primary:!0,children:_.codexRetry.prepared?`Retry verification`:`Retry Codex`}):null,_.devAlignment?w(Q,{ariaLabel:`Retry dev alignment`,busy:m?.type===`retry-dev-alignment`,disabledReason:_.busy,icon:V,onClick:()=>void t({type:`retry-dev-alignment`}),children:`Retry dev alignment`}):null,_.fetchFailure?w(Q,{ariaLabel:`Retry fetch`,busy:m?.type===`retry-fetch`,disabledReason:_.busy,icon:V,onClick:()=>void t({type:`retry-fetch`}),children:`Retry fetch`}):null,!_.setupFailure&&_.checks?.commands.some(e=>e.status===`failed`||e.status===`cancelled`)?w(Q,{ariaLabel:`Retry failed checks`,busy:m?.type===`retry-checks`,disabledReason:_.busy,icon:V,onClick:()=>void t({type:`retry-checks`}),children:`Retry checks`}):null]})]}):null,v&&!A?T(`div`,{className:q.actionSuccess,role:`status`,children:[w(oe,{"aria-hidden":`true`,className:q.successIcon,size:18}),w(`p`,{className:q.paragraph,children:v.message})]}):null,l&&!u?T(C,{children:[w(`div`,{className:q.actionError,role:`alert`,children:w(ft,{children:l})}),w(Z,{children:w(Q,{ariaLabel:`Dismiss error`,icon:z,immediatelyEnabled:!0,requiresConnection:!1,onClick:c,children:`Dismiss`})})]}):null,!k&&(A?.totalCommits??P?.totalCommits)?w(it,{rebased:(A?.commits??P?.commits??[]).length,total:A?.totalCommits??P?.totalCommits}):null,w(et,{activities:_?.activities??[]}),A||!v&&P&&!_?.setupFailure?T(C,{children:[w($e,{completion:A,messages:k?P?.messages??[]:A?.messages??P?.messages??[],outputRef:O,stage:P?.stage??`resolve`,working:P?.phase===`running`,startedAt:P?.startedAt,turns:k?.turns,historyTruncated:k?.historyTruncated}),!k&&!A&&P?.phase===`running`?w(Z,{children:w(Q,{ariaLabel:P.stage===`verify`?`Cancel verification`:`Cancel conflict resolution`,busy:m?.type===`cancel-codex`,immediatelyEnabled:!0,icon:ye,onClick:()=>void t({type:`cancel-codex`}),children:`Cancel`})}):null]}):null,F&&_?.setupFailure?T(C,{children:[u?w(`p`,{className:q.paragraph,children:`Error dismissed. Retry setup when ready.`}):T(`div`,{className:q.setupFailure,role:`alert`,children:[w(ft,{children:_.setupFailure.message}),w(`pre`,{className:q.codexOutput,children:_.setupFailure.output})]}),T(Z,{children:[u?null:w(Q,{ariaLabel:`Dismiss error`,icon:z,immediatelyEnabled:!0,requiresConnection:!1,onClick:c,children:`Dismiss`}),w(Q,{ariaLabel:`Copy diagnostics`,requiresConnection:!1,disabledReason:_.busy,icon:ue,iconOnly:!0,onClick:()=>void navigator.clipboard.writeText(Tt(_.setupFailure)),children:`Copy diagnostics`}),_.setupFailure.stage===`dependencies`?w(Q,{ariaLabel:`Retry install`,busy:m?.type===`retry-install`,disabledReason:_.busy,icon:V,iconOnly:!0,onClick:()=>void t({type:`retry-install`}),primary:!0,children:`Retry install`}):_.setupFailure.stage===`codegen`?w(Q,{ariaLabel:`Retry codegen`,busy:m?.type===`retry-codegen`,disabledReason:_.busy,icon:V,iconOnly:!0,onClick:()=>void t({type:`retry-codegen`}),primary:!0,children:`Retry codegen`}):T(C,{children:[w(Q,{ariaLabel:`Retry migration`,busy:m?.type===`retry-migration`,disabledReason:_.busy,icon:V,onClick:()=>void t({type:`retry-migration`}),primary:!0,children:`Retry migration`}),w(Q,{busy:m?.type===`reset-database`,disabledReason:_.busy,icon:ge,onClick:()=>{globalThis.confirm(`Reset the local database? This permanently deletes all current data, then reapplies migrations and seed scripts.`)&&t({type:`reset-database`})},children:`Reset database`})]})]})]}):F&&vt(_)?T(C,{children:[w(`p`,{className:q.paragraph,children:u?`Error dismissed. Reconnect when ready.`:_?.message}),w(Z,{children:w(Q,{ariaLabel:`Retry managed development`,busy:m?.type===`retry-supervisor`,disabledReason:_?.busy,icon:V,immediatelyEnabled:!0,onClick:()=>void t({type:`retry-supervisor`}),primary:!0,children:`Retry`})})]}):F?w(`p`,{className:q.paragraph,children:_?_.busy||(u?`Dismissed.`:_.message||ht(_)):`Checking status…`}):null,A&&(!l||u)?w(Z,{children:w(Q,{busy:m?.type===`acknowledge-codex`,disabledReason:_?.busy,icon:z,onClick:()=>void t({id:A.id,type:`acknowledge-codex`}),primary:!0,children:`Continue`})}):null,F&&!u&&_?.mode===`waiting`&&_.message&&!yt(_)?T(`p`,{className:q.paragraph,children:[`Run `,w(`code`,{children:`git switch main`}),` in the primary checkout to resume synchronization.`]}):null,F&&N&&!j?w(`pre`,{className:q.pendingCommits,children:(N.commits??[N]).map(e=>`${e.shortCommit} ${e.subject}`).join(`
|
|
193
|
+
`)}):null,F&&!u?_?.warnings.map((e,t)=>w(`p`,{className:`${q.paragraph} ${q.warning}`,children:e},`${t}-${e}`)):null,F&&j?T(C,{children:[T(`div`,{className:q.changeList,"aria-label":`Changed files`,tabIndex:0,children:[j.tracked?T(`section`,{className:q.fileGroup,children:[w(`h3`,{className:q.sectionTitle,children:`Tracked changes · included automatically`}),j.trackedFiles?.map(e=>T(`div`,{className:q.trackedFile,children:[w(ct,{status:e.status}),T(`span`,{className:q.filePath,children:[e.originalPath?`${e.originalPath} → `:``,e.path]})]},e.path))]}):null,[{label:`Untracked files`,files:j.untracked.filter(e=>!j.artifactFiles?.includes(e)),toggle:`Include all untracked files`},{label:`Build artifacts · excluded by default`,files:j.artifactFiles??[],toggle:`Include build artifacts`}].filter(e=>e.files.length>0).map(e=>T(`section`,{className:q.fileGroup,children:[w(`h3`,{className:q.sectionTitle,children:e.label}),e.files.length>0?w(lt,{checked:e.files.every(e=>I.has(e)),indeterminate:!e.files.every(e=>I.has(e))&&e.files.some(e=>I.has(e)),label:e.toggle,onChange:t=>D({fingerprint:j.fingerprint,paths:new Set(t?[...I,...e.files]:[...I].filter(t=>!e.files.includes(t)))})}):null,e.files.map(e=>w(lt,{checked:I.has(e),label:T(C,{children:[w(ct,{status:`??`}),w(`span`,{className:q.filePath,children:e})]}),onChange:t=>D(()=>{let n=new Set(I);return t?n.add(e):n.delete(e),{fingerprint:j.fingerprint,paths:n}})},e))]},e.label))]}),te?L===void 0?T(Z,{children:[N?w(Q,{busy:m?.type===`reject`,disabledReason:_.busy,icon:ge,onClick:()=>void t({type:`reject`}),children:`Reject`}):null,w(Q,{busy:m?.type===`message`,disabledReason:_.busy,icon:_e,onClick:()=>void t({type:`message`,fingerprint:j.fingerprint,untracked:[...I]}),primary:!0,children:`Generate commit message`})]}):T(C,{children:[w(`textarea`,{"aria-label":`Commit message`,className:q.message,onChange:e=>S({fingerprint:j.fingerprint,proposal:L,value:e.target.value}),value:R}),N?w(Je,{disabled:!!_.busy,onChange:re,value:a}):null,T(Z,{children:[N?w(Q,{busy:m?.type===`reject`,disabledReason:_.busy,icon:ge,onClick:()=>void t({type:`reject`}),children:`Reject`}):null,w(Q,{busy:m?.type===(N?`apply`:`commit`),disabledReason:_.busy,icon:pe,onClick:()=>{t(N?{type:`apply`,target:N.commit,fingerprint:j.fingerprint,untracked:[...I],message:R,codex:a}:{type:`commit`,fingerprint:j.fingerprint,untracked:[...I],message:R})},primary:!0,children:N?`Commit and refresh`:`Commit changes`}),L===``?w(Q,{busy:m?.type===`message`,disabledReason:_.busy,icon:_e,onClick:()=>void t({type:`message`,fingerprint:j.fingerprint,untracked:[...I]}),children:`Retry generation`}):null]})]}):T(C,{children:[w(`p`,{className:q.paragraph,children:`Unchecked files stay on disk and will not be committed.`}),N?T(C,{children:[w(Je,{disabled:!!_.busy,onChange:re,value:a}),w(Z,{children:w(Q,{icon:V,primary:!0,disabledReason:_.busy,busy:m?.type===`apply`,onClick:()=>void t({type:`apply`,target:N.commit,fingerprint:j.fingerprint,untracked:[],codex:a}),children:`Refresh`})})]}):w(`p`,{className:q.paragraph,children:`Select files to commit.`})]})]}):F&&_&&M?T(C,{children:[w(`p`,{className:q.paragraph,children:M.applied>0?`The update replayed ${M.applied} of ${M.applied+M.commits.length} commits before stopping on a conflict. The cleanly applied commits are already on your branch; Codex can resolve the rest.`:`The update stopped on a conflict before any commit could be replayed. Codex can resolve your commits.`}),w(`div`,{className:q.files,children:M.files.map(e=>w(`span`,{className:q.filePath,children:e},e))}),M.commits.length>0?w(`pre`,{className:q.pendingCommits,children:M.commits.map(e=>`${e.shortCommit} ${e.subject}`).join(`
|
|
194
|
+
`)}):null,w(Je,{disabled:!!_.busy,onChange:re,value:a}),T(Z,{children:[w(Q,{busy:m?.type===`decline-rebase`,disabledReason:_.busy,icon:ye,onClick:()=>void t({type:`decline-rebase`}),children:`Decline`}),w(Q,{busy:m?.type===`resolve-rebase`,disabledReason:_.busy,icon:_e,onClick:()=>void t({codex:a,type:`resolve-rebase`}),primary:!0,children:`Resolve with Codex`})]})]}):F&&_&&N?T(C,{children:[w(Je,{disabled:!!_.busy,onChange:re,value:a}),w(Z,{children:w(Q,{busy:m?.type===`prepare`,disabledReason:_.busy,icon:V,onClick:()=>void t({type:`prepare`,target:N.commit,codex:a}),primary:!0,children:N.source===`upstream`?`Refresh`:String(N.source)===`dev`?`Sync with dev`:`Sync with main`})})]}):null,ee&&!u&&!l&&!(F&&_?.setupFailure)?w(Z,{children:w(Q,{ariaLabel:`Dismiss error`,icon:z,immediatelyEnabled:!0,requiresConnection:!1,onClick:c,children:`Dismiss`})}):null,k&&n(k)?w(Z,{children:w(Q,{ariaLabel:`Cancel update`,busy:m?.type===`cancel-codex`||k.cancellation===`requested`,disabledReason:_?.mode===`managed`?k.cancellation===`unavailable`?`Finishing the current step`:void 0:`Reconnecting`,immediatelyEnabled:!0,icon:ye,onClick:()=>void t({type:`cancel-codex`,operationId:k.id}),children:k.cancellation===`requested`?k.cancellationDeferred?`Finishing publication…`:`Cancelling…`:m?.type===`cancel-codex`?`Requesting cancellation…`:`Cancel update`})}):null,!A&&!v&&!j&&!N&&!M&&!n(k)&&!_?.busy&&!(!k&&P&&P.phase!==`error`)&&!(ee&&!u)&&!(F&&_?.setupFailure&&!u)&&(k||_?.message||_?.warnings.length||_&&_.mode!==`managed`)?w(Z,{children:w(Q,{icon:z,immediatelyEnabled:!0,requiresConnection:!1,onClick:f,children:`Dismiss`})}):null]})})}function Je({disabled:e=!1,onChange:t,value:n}){let[a,o]=b(!1),[s,c]=b({top:0,left:0}),l=y(null),u=y(null),d=_(),f=y(null);v(()=>{let e=u.current?.getBoundingClientRect();if(a&&e&&f.current){let t=f.current.getBoundingClientRect().height;c({top:e.bottom+8+t<=window.innerHeight-8?e.bottom+8:Math.max(8,e.top-t-8),left:Math.max(8,Math.min(e.left,window.innerWidth-228))})}},[a]);let p=()=>{if(a)return;let e=u.current?.getBoundingClientRect();e&&c({top:Math.max(8,e.top-190),left:Math.max(8,Math.min(e.left,window.innerWidth-228))}),o(!0)};return g(()=>{if(!a)return;let e=e=>{l.current&&!e.composedPath().includes(l.current)&&o(!1)};return document.addEventListener(`pointerdown`,e),()=>document.removeEventListener(`pointerdown`,e)},[a]),w(Z,{children:T(`div`,{className:q.codexSettings,ref:l,onMouseEnter:p,onMouseLeave:e=>{e.currentTarget.matches(`:focus-within`)||o(!1)},onBlur:e=>{e.currentTarget.contains(e.relatedTarget)||o(!1)},onKeyDown:e=>{e.key===`Escape`&&a&&(e.stopPropagation(),o(!1),u.current?.focus())},children:[w(`button`,{type:`button`,ref:u,className:q.iconButton,"aria-label":`Codex settings: ${n.model===`gpt-6.1-sol`?`Sol`:`Luna`}, ${n.effort} effort`,"aria-expanded":a,"aria-controls":d,"aria-haspopup":`dialog`,onClick:p,children:w(`svg`,{"aria-hidden":`true`,viewBox:`0 0 24 24`,width:`18`,height:`18`,fill:`currentColor`,fillRule:`evenodd`,children:w(`path`,{d:`M9.205 8.658v-2.26c0-.19.072-.333.238-.428l4.543-2.616c.619-.357 1.356-.523 2.117-.523 2.854 0 4.662 2.212 4.662 4.566 0 .167 0 .357-.024.547l-4.71-2.759a.797.797 0 00-.856 0l-5.97 3.473zm10.609 8.8V12.06c0-.333-.143-.57-.429-.737l-5.97-3.473 1.95-1.118a.433.433 0 01.476 0l4.543 2.617c1.309.76 2.189 2.378 2.189 3.948 0 1.808-1.07 3.473-2.76 4.163zM7.802 12.703l-1.95-1.142c-.167-.095-.239-.238-.239-.428V5.899c0-2.545 1.95-4.472 4.591-4.472 1 0 1.927.333 2.712.928L8.23 5.067c-.285.166-.428.404-.428.737v6.898zM12 15.128l-2.795-1.57v-3.33L12 8.658l2.795 1.57v3.33L12 15.128zm1.796 7.23c-1 0-1.927-.332-2.712-.927l4.686-2.712c.285-.166.428-.404.428-.737v-6.898l1.974 1.142c.167.095.238.238.238.428v5.233c0 2.545-1.974 4.472-4.614 4.472zm-5.637-5.303l-4.544-2.617c-1.308-.761-2.188-2.378-2.188-3.948A4.482 4.482 0 014.21 6.327v5.423c0 .333.143.571.428.738l5.947 3.449-1.95 1.118a.432.432 0 01-.476 0zm-.262 3.9c-2.688 0-4.662-2.021-4.662-4.519 0-.19.024-.38.047-.57l4.686 2.71c.286.167.571.167.856 0l5.97-3.448v2.26c0 .19-.07.333-.237.428l-4.543 2.616c-.619.357-1.356.523-2.117.523zm5.899 2.83a5.947 5.947 0 005.827-4.756C22.287 18.339 24 15.84 24 13.296c0-1.665-.713-3.282-1.998-4.448.119-.5.19-.999.19-1.498 0-3.401-2.759-5.947-5.946-5.947-.642 0-1.26.095-1.88.31A5.962 5.962 0 0010.205 0a5.947 5.947 0 00-5.827 4.757C1.713 5.447 0 7.945 0 10.49c0 1.666.713 3.283 1.998 4.448-.119.5-.19 1-.19 1.499 0 3.401 2.759 5.946 5.946 5.946.642 0 1.26-.095 1.88-.309a5.96 5.96 0 004.162 1.713z`})})}),a?T(`div`,{role:`dialog`,ref:f,"aria-label":`Codex settings`,id:d,className:q.codexSettingsPopover,style:s,children:[w(`span`,{className:q.sectionTitle,children:`Conflict resolution`}),w(`div`,{role:`group`,"aria-label":`Codex model`,className:q.modelToggle,children:i.map(r=>w(`button`,{type:`button`,"aria-pressed":n.model===r,disabled:e,onClick:()=>t({...n,model:r}),children:r===`gpt-6.1-sol`?`Sol`:`Luna`},r))}),T(`label`,{className:q.effortControl,children:[T(`span`,{children:[`Effort`,` `,w(`strong`,{children:{low:`Low`,medium:`Medium`,high:`High`,xhigh:`Extra high`,max:`Max`}[n.effort]})]}),w(`input`,{"aria-label":`Reasoning effort`,type:`range`,min:0,max:r.length-1,step:1,disabled:e,value:r.indexOf(n.effort),"aria-valuetext":n.effort,style:{"--effort-progress":`${r.indexOf(n.effort)/(r.length-1)*100}%`},onInput:e=>t({...n,effort:r[Number(e.currentTarget.value)]})}),T(`span`,{className:q.effortEndpoints,children:[w(`span`,{children:`Low`}),w(`span`,{children:`Max`})]})]})]}):null]})})}function Ye({controls:e,onRecover:t}){return T(`div`,{"aria-label":`Development controls`,className:q.developmentControls,role:`menu`,children:[T(Z,{children:[w(Q,{immediatelyEnabled:!0,icon:V,requiresConnection:!1,onClick:e.reloadPage,role:`menuitem`,children:`Reload page`}),w(Q,{busy:e.pending,immediatelyEnabled:!0,icon:ge,onClick:e.restartVite,primary:!0,role:`menuitem`,children:e.pending?`Restarting Vite…`:`Restart Vite`}),w(Q,{busy:e.resetPending,disabledReason:e.resetDisabledReason??(e.resetBranches?void 0:`No active merge or rebase to reset`),immediatelyEnabled:!0,icon:ge,onClick:()=>e.resetBranches?.(),role:`menuitem`,children:e.resetPending?`Resetting branches…`:`Reset branches`}),e.recovery?w(Q,{immediatelyEnabled:!0,icon:ge,requiresConnection:!1,onClick:t,role:`menuitem`,children:`Recover previous state…`}):null]}),e.error?T(C,{children:[w(`div`,{className:q.actionError,role:`alert`,children:w(ft,{children:`Vite restart failed: ${e.error}`})}),w(Z,{children:w(Q,{ariaLabel:`Dismiss restart error`,icon:ye,iconOnly:!0,immediatelyEnabled:!0,onClick:e.dismissError,role:`menuitem`,children:`Dismiss`})})]}):null,e.success?T(`div`,{className:q.actionSuccess,role:`status`,children:[w(oe,{"aria-hidden":`true`,className:q.successIcon,size:18}),w(`p`,{className:q.paragraph,children:e.success})]}):null]})}function Xe(e){return e.state===`cancelled`?`Update cancelled`:e.state===`failed`?`Update failed`:e.state===`interrupted`?`Update interrupted`:e.state===`succeeded`?`Update complete`:e.state===`cancelling`?e.cancellationDeferred?`Finishing publication before stopping…`:`Cancelling update…`:o[e.phase]}function Ze({status:e,operation:t,codex:n,onInspect:r}){let i=y(null),a=t.source===`dev`?`local dev`:`upstream`,o=t.progress?.applied,s=t.steps.filter(e=>e.status===`succeeded`),c=t.steps.filter(e=>e.status!==`succeeded`),l=!!(e.checks?.commands.length&&e.checks.commit===e.currentCommit&&e.checks.commands.every(e=>e.status===`passed`)),u=s.some(e=>e.phase===`setup`);return T(`div`,{className:q.completionReceipt,children:[T(`div`,{role:`status`,children:[T(`p`,{className:q.paragraph,children:[t.kind===`rebase`?`Rebased onto ${a}.`:`Changes applied from ${a}.`,o===void 0?``:` ${o} commit${o===1?``:`s`} ${t.kind===`rebase`?`replayed`:`applied`}.`,t.progress?.skipped?` ${t.progress.skipped} skipped.`:``]}),l?w(`p`,{className:q.completionNote,children:u?`Setup and checks passed.`:`Project checks passed.`}):null]}),T(`details`,{className:q.completionDetails,onToggle:e=>{e.currentTarget.open&&r?.()},children:[w(`summary`,{className:q.codexHistorySummary,style:J,children:`Details`}),T(`div`,{className:q.completionDetailBody,children:[T(`div`,{className:q.completionMetadata,children:[T(`span`,{children:[t.kind===`rebase`?`Rebase`:t.kind===`merge`?`Merge`:`Sync`,` `,`· `,a,` `,w(`code`,{children:t.target.slice(0,12)})]}),w(`span`,{children:st(Math.floor(((t.finishedAt??t.updatedAt)-t.startedAt)/1e3))})]}),s.length?w(`table`,{className:q.completionSteps,"aria-label":`Completed update steps`,children:w(`tbody`,{children:s.map(e=>T(`tr`,{children:[w(`td`,{children:w(z,{"aria-label":`Succeeded`,size:14})}),w(`td`,{children:e.label}),w(`td`,{children:e.finishedAt===void 0?``:st(Math.floor((e.finishedAt-e.startedAt)/1e3))})]},e.id))})}):null,c.length?T(`details`,{children:[T(`summary`,{className:q.codexHistorySummary,style:J,children:[`Earlier attempts (`,c.length,`)`]}),c.map(e=>T(`p`,{className:q.completionNote,children:[e.label,` ·`,` `,e.status===`running`?`No final status recorded`:e.status===`failed`?`Failed attempt`:`Interrupted attempt`]},e.id))]}):null,t.turns.length?T(`details`,{children:[T(`summary`,{className:q.codexHistorySummary,style:J,children:[`Conflict resolution history · `,t.turns.length,` turns`]}),w($e,{outputRef:i,turns:t.turns,messages:n?.messages??[],stage:n?.stage??`resolve`,working:!1,historyTruncated:t.historyTruncated})]}):null,T(`details`,{children:[w(`summary`,{className:q.codexHistorySummary,style:J,children:`Logs and operation ID`}),w(`p`,{className:q.completionNote,children:w(`code`,{children:t.id})}),w(et,{activities:t.activities})]})]})]})]})}function Qe({operation:e}){let t=e.progress;return T(`section`,{"aria-label":`Update progress`,className:q.activityList,children:[e.kind===`rebase`&&t?.total?w(it,{rebased:t.applied,total:t.total}):null,t?.skipped?T(`p`,{className:q.activityMeta,children:[t.skipped,` skipped`,t.remaining===void 0?``:` · ${t.remaining} remaining`]}):null,t?.current?T(`p`,{className:q.paragraph,children:[w(`code`,{children:t.current.shortCommit}),` `,t.current.subject]}):null,t?.files?.length?T(`details`,{children:[T(`summary`,{className:q.codexHistorySummary,style:J,children:[`Conflicted files (`,t.files.length,`)`]}),w(`div`,{className:q.files,children:t.files.map(e=>w(`span`,{className:q.filePath,children:e},e))})]}):null,e.message?w(`p`,{className:q.paragraph,role:`status`,children:e.state===`succeeded`?`Update complete.`:e.message}):null,e.steps.length?T(`details`,{children:[T(`summary`,{className:q.codexHistorySummary,style:J,children:[`Steps (`,e.steps.length,`)`]}),T(`p`,{className:q.activityMeta,children:[e.kind,` · `,e.source,` `,w(`code`,{children:e.target.slice(0,12)}),` · #`,e.id.slice(0,8)]}),[...e.steps].sort((e,t)=>e.startedAt-t.startedAt).map(e=>T(`p`,{className:q.paragraph,children:[e.label,` `,T(`span`,{className:q.activityStatus,children:[w(rt,{status:e.status}),e.finishedAt===void 0?null:st(Math.floor((e.finishedAt-e.startedAt)/1e3))]})]},e.id))]}):null]})}function $e({turns:e,historyTruncated:t,completion:n,messages:r,outputRef:i,stage:a,startedAt:o,working:s}){let c=n?[...r].reverse().find(e=>e.kind===`agent`&&e.text===n.finalMessage):[...r].reverse().find(e=>e.kind!==`user`),l=r.filter(e=>e!==c),u=e?.slice(0,-1)??[],d=n?c??{author:[...r].reverse().find(e=>e.kind===`agent`)?.author,kind:`agent`,text:n.finalMessage}:c,f=c?`message-${r.lastIndexOf(c)}`:`completion`;return T(`div`,{"aria-live":n?void 0:`polite`,className:q.codexTranscript,ref:i,role:`log`,children:[d?w(at,{message:d,showAge:!0},f):null,s?T(`div`,{className:q.codexWorking,role:`status`,"aria-label":a===`verify`?`Codex is verifying the update`:`Codex is resolving conflicts`,children:[w(B,{"aria-hidden":`true`,className:q.buttonSpinner,size:14}),w(nt,{startedAt:o})]}):null,l.length||u.length||t?T(`details`,{children:[T(`summary`,{className:q.codexHistorySummary,style:J,children:[`History (`,l.length+u.length,`)`]}),T(`div`,{className:q.codexHistoryList,children:[t?w(`p`,{className:q.codexWaiting,children:`Earlier output truncated to limit transcript size.`}):null,u.map((e,t)=>T(`details`,{children:[T(`summary`,{className:q.codexHistorySummary,style:J,children:[e.stage===`verify`?`Verification`:`Resolution`,` `,t+1,` ·`,` `,w(rt,{status:e.status===`complete`?`succeeded`:e.status})]}),e.messages.map((e,t)=>w(at,{message:e},t))]},e.id)),l.map((e,t)=>w(at,{message:e},t))]})]}):null]})}function et({activities:e}){let t=e.filter(e=>e.status===`running`),n=e.filter(e=>[`failed`,`cancelled`,`interrupted`].includes(e.status)),r=e.filter(e=>e.status===`succeeded`);return e.length?T(`section`,{className:q.activityList,"aria-label":`Activity`,children:[[...t,...n].map(e=>w(tt,{activity:e},e.id)),r.length?T(`details`,{children:[T(`summary`,{className:q.codexHistorySummary,style:J,children:[`Recent activity (`,r.length,`)`]}),r.slice().reverse().map(e=>w(tt,{activity:e},e.id))]}):null]}):null}function tt({activity:e}){let[t,n]=b(Date.now);g(()=>{if(e.status!==`running`)return;let t=globalThis.setInterval(()=>n(Date.now()),1e3);return()=>globalThis.clearInterval(t)},[e.status]);let r=Math.max(0,Math.floor(((e.finishedAt??t)-e.startedAt)/1e3));return T(`details`,{className:q.activityRow,open:e.status===`failed`,children:[T(`summary`,{className:q.activitySummary,style:J,children:[w(ae,{"aria-hidden":`true`,className:q.activityDisclosure,size:14}),w(`span`,{children:e.label}),T(`span`,{className:q.activityStatus,children:[w(rt,{status:e.status}),st(r)]})]}),e.command?w(`code`,{className:q.activityCommand,children:e.command}):null,T(`p`,{className:q.activityMeta,children:[e.source===`codex`?`Codex`:`Supervisor`,e.stage?` · ${e.stage}`:``,e.exitCode===void 0?``:` · Exit code ${e.exitCode}`]}),e.output?w(`pre`,{className:q.activityOutput,children:e.output}):null]})}function nt({startedAt:e}){let[t]=b(Date.now),[n,r]=b(Date.now);return g(()=>{let e=globalThis.setInterval(()=>r(Date.now()),1e3);return()=>globalThis.clearInterval(e)},[]),T(C,{children:[`Working for `,st(Math.max(0,Math.floor((n-(e??t))/1e3))),`...`]})}function rt({status:e}){let t=e===`running`?B:e===`succeeded`?oe:e===`failed`?ve:se;return w(`span`,{className:q.activityState,"data-status":e,role:`img`,"aria-label":e,title:e,children:w(t,{"aria-hidden":`true`,className:e===`running`?q.buttonSpinner:void 0,size:15})})}function it({rebased:e,total:t}){let n=Math.min(e,t),r=Math.round(n/t*100);return T(`section`,{"aria-label":`Rebase progress`,className:q.rebaseProgress,children:[T(`div`,{className:q.rebaseProgressLabel,children:[T(`strong`,{children:[n,` of `,t,` commits rebased`]}),T(`span`,{children:[r,`%`]})]}),w(`div`,{"aria-valuemax":t,"aria-valuemin":0,"aria-valuenow":n,className:q.rebaseProgressTrack,role:`progressbar`,children:w(`span`,{className:q.rebaseProgressFill,style:{width:`${r}%`}})})]})}function at({message:e,showAge:t=!1}){let n=e.kind===`user`?`Request`:e.kind===`thought`?`Thought`:e.author??`Codex`;return T(`section`,{className:q.codexMessage,children:[T(`div`,{className:q.codexMessageHeader,children:[w(`h3`,{className:q.codexMessageLabel,children:n}),t?w(ot,{}):null]}),w(`p`,{className:q.codexMessageText,children:e.text})]})}function ot(){let e=y(0),[t,n]=b(0);return g(()=>{e.current=Date.now();let t=globalThis.setInterval(()=>{n(Math.floor((Date.now()-e.current)/1e3))},1e3);return()=>globalThis.clearInterval(t)},[]),T(`span`,{"aria-hidden":`true`,className:q.codexMessageAge,children:[st(t),` ago`]})}function st(e){let t=Math.floor(e/60),n=e%60;return t>0?`${t}m ${n}s`:`${n}s`}function ct({status:e}){let[t,n,r]=e===`??`?[`U`,`Untracked`,`added`]:e.includes(`U`)||e===`AA`||e===`DD`?[`!`,`Conflict`,`deleted`]:e.includes(`R`)?[`R`,`Renamed`,`renamed`]:e.includes(`C`)?[`C`,`Copied`,`renamed`]:e.includes(`D`)?[`D`,`Deleted`,`deleted`]:e.includes(`A`)?[`A`,`Added`,`added`]:e.includes(`T`)?[`T`,`Type changed`,`modified`]:[`M`,`Modified`,`modified`];return w(`span`,{className:q.fileStatus,"data-tone":r,title:n,"aria-label":n,children:t})}function lt({checked:e,indeterminate:t=!1,label:n,onChange:r}){let i=y(null);return g(()=>{i.current&&(i.current.indeterminate=t)},[t]),T(`label`,{className:q.checkbox,children:[w(`input`,{ref:i,checked:e,onChange:e=>r(e.target.checked),type:`checkbox`}),n]})}const ut=u(void 0);function dt({children:e}){return w(`div`,{className:q.content,children:e})}function Z({children:e}){let t=h(ut);return t===void 0?w(`div`,{className:q.actions,children:e}):t?S(e,t):null}function ft({children:e}){return T(`div`,{className:q.errorMessage,children:[w(ve,{"aria-hidden":`true`,className:q.errorIcon,size:18}),w(`p`,{className:q.paragraph,children:e})]})}function Q({requiresConnection:e=!0,ariaLabel:t,busy:n,children:r,disabledReason:i,icon:a,iconOnly:o=!1,immediatelyEnabled:s=!1,onClick:c,primary:l=!1,role:u}){let d=h(ke),f=i??(!d&&e?`Connection lost; wait for reconnection`:void 0),[p,m]=b(!0),[v,y]=b(),x=_(),C=f?`Please wait: ${f.replace(/[.\u2026]+$/,``)}.`:n?`Waiting for ${t??(typeof r==`string`?`“${r}”`:`this action`)} to finish.`:p&&!s?`Enabled in a moment to prevent accidental clicks.`:void 0;g(()=>{let e=globalThis.setTimeout(()=>m(!1),1e3);return()=>globalThis.clearTimeout(e)},[]);let E=e=>{let t=e.getBoundingClientRect(),n=e.closest(`[data-isolet-root]`);n&&y({left:Math.max(12,Math.min(t.left,window.innerWidth-292)),top:t.top-8,root:n})};return T(`span`,{"aria-describedby":C?x:void 0,"aria-label":C?t??(typeof r==`string`?r:void 0):void 0,className:q.buttonContainer,onBlur:()=>y(void 0),onFocus:e=>E(e.currentTarget),onKeyDown:e=>{e.key===`Escape`&&C&&v&&(e.stopPropagation(),y(void 0))},onMouseEnter:e=>E(e.currentTarget),onMouseLeave:()=>y(void 0),onPointerDown:e=>{C&&e.currentTarget.focus()},tabIndex:C?0:void 0,children:[T(`button`,{"aria-label":t,"aria-busy":!!n,"aria-describedby":C?x:void 0,className:`${q.button} ${o?q.iconOnly:``} ${l?q.primary:``}`,disabled:!!C,onClick:c,role:u,title:!C&&o?t:void 0,type:`button`,children:[n?w(B,{"aria-hidden":`true`,className:q.buttonSpinner,size:16}):a?w(a,{"aria-hidden":`true`,size:16}):null,o?null:r]}),C?w(`span`,{className:q.srOnly,id:x,children:C}):null,C&&v?S(w(`span`,{className:q.disabledTooltip,role:`tooltip`,style:{left:v.left,top:v.top},children:C}),v.root):null]})}function pt(e){return e?e.mode===`waiting`&&e.message?`Sync paused`:e.mode===`unmanaged`?`Sync unavailable`:e.mode===`error`?`Sync stopped`:e.setupFailure?.stage===`dependencies`?`Dependency installation failed`:e.setupFailure?.stage===`codegen`?`Panda codegen failed`:e.setupFailure?.stage===`migration`?`Database setup failed`:e.draft?e.proposal===void 0?`Review local changes`:`Confirm your commit`:e.pendingRebase?`Resolve update conflicts`:e.target?.source===`upstream`?`Refresh from upstream`:String(e.target?.source)===`dev`?`Sync with dev`:e.target?`Sync with main`:e.checks?.commands.some(e=>e.status===`failed`&&!e.dismissed)?`Checks failed`:e.warnings.length>0?`Warning`:`Managed development`:`Managed development`}function mt({codex:e,completion:t,status:r,success:i}){return e?.phase===`running`||r?.operation&&n(r.operation)?B:e?.phase===`error`?ve:t?oe:e?B:r?.setupFailure?.stage===`migration`?de:r?.setupFailure?.stage===`dependencies`?he:r?.setupFailure?.stage===`codegen`?V:r?.draft?pe:r?.pendingRebase?_e:r?.target?.source===`upstream`?le:r?.target?V:r?.checks?.commands.some(e=>e.status===`failed`&&!e.dismissed)?me:i?oe:r?r.mode===`waiting`?ce:r.mode===`unmanaged`?se:r.mode===`error`||r.warnings.length>0?ve:oe:V}function ht(e){return e.mode===`waiting`?`Waiting for the supervisor to start.`:e.mode===`unmanaged`?`Managed development is unavailable for this session.`:e.mode===`error`?`The managed development supervisor stopped.`:e.draft&&!e.target?`Review which local changes to include.`:e.pendingRebase?`The update stopped on a conflict.`:e.target&&e.target.source!==`upstream`?String(e.target?.source)===`dev`?`New commits are available on dev.`:`New commits are available on main.`:e.target?`A newer upstream commit is ready.`:``}function gt(e,t,n){let r=[t,n?.phase===`error`?n.requestId:void 0,e?.mode===`error`||e?.mode===`unmanaged`?e.mode:void 0,e?.message,e?.setupFailure,e?.warnings.length?e.warnings:void 0];return r.some(Boolean)?JSON.stringify(r):void 0}function _t(e,t){return JSON.stringify([e,t.command,t.output])}function vt(e){return e?.mode===`error`&&e.message?.startsWith(s)===!0}function yt(e){return e?.message?.startsWith(c)===!0}function bt(e){return e.mode!==`managed`||!!(e.busy||e.codexCompletion||e.draft||e.message||e.pendingRebase||e.setupFailure||e.codexRetry||e.history||e.devAlignment||e.fetchFailure||e.target||e.warnings.length>0)}function xt(e){if(!e?.checks||bt(e))return;let t=e.checks.commands.find(e=>e.status===`failed`&&!e.dismissed);return t?{check:t,commit:e.checks.commit,trigger:e.checks.trigger}:void 0}function St({commit:e,trigger:t}){let n=e.slice(0,12);return t===`check-recovery`?`Reran against the current working tree at commit ${n}.`:t===`codegen-recovery`?`Ran after Panda codegen recovered at commit ${n}.`:t===`dependency-recovery`?`Ran after dependency installation recovered at commit ${n}.`:t===`database-recovery`?`Ran after database setup recovered at commit ${n}.`:`Ran after the update was applied at commit ${n}.`}function Ct({status:e,codex:t,error:n,success:r,pendingAction:i,controls:a}){return!!($(e)||e?.operation?.state===`succeeded`||t||n||r||i||a?.pending||a?.error||a?.success||e?.history||e?.recovery?.length||e?.activities?.some(e=>e.status!==`succeeded`))}function $(e,t=xt(e)){return e?e.mode===`waiting`?!!e.message:e.operation?.state===`succeeded`?!!(t||e.codexCompletion||e.codexRetry||e.history||e.devAlignment||e.fetchFailure||e.setupFailure||e.pendingRebase||e.draft||e.target||e.busy||e.warnings.length||e.mode!==`managed`):!!(e.operation||t||bt(e)):!1}function wt(e){let t=new Set(e.filter(e=>e.kind===`user`)),n=[...t].reduce((e,t)=>e+t.text.length,0),r=!1;for(let i of[...e].reverse())if(i.kind!==`user`){if(n+i.text.length>1e5&&r)break;t.add(i),r=!0,n+=i.text.length}return e.filter(e=>t.has(e))}function Tt(e){return[e.message,`Commit: ${e.commit}`,`Command: ${e.command}`,``,e.output].join(`
|
|
195
|
+
`)}function Et(){let[t,n]=b(),[r,i]=b(!1),[a,o]=b(),s=be(),c=y(void 0);return g(()=>{if(!s)return;let t=e=>{if(e.requestId===c.current){if(e.state===`busy`){i(!0);return}if(c.current=void 0,i(!1),e.state===`error`){o(void 0),n(e.error??`The Vite restart failed.`);return}n(void 0),o(`Vite restarted.`)}},r=()=>{c.current&&(c.current=void 0,i(!1),o(void 0),n(`The connection was interrupted during the restart. Reconnect before trying again.`))};return s.on(e.actionResult,t),s.on(xe.disconnect,r),()=>{s.off(e.actionResult,t),s.off(xe.disconnect,r)}},[s]),{dismissError:()=>n(void 0),error:t,pending:r,reloadPage:()=>globalThis.location.reload(),restartVite:()=>{if(r)return;if(n(void 0),o(void 0),!s){n(`The Vite HMR connection is unavailable.`);return}let t=globalThis.crypto.getRandomValues(new Uint32Array(4)).join(`-`);c.current=t,i(!0),s.send(e.action,{action:{type:`restart-vite`},requestId:t})},success:a}}function Dt(e){return e.type===`apply-recovery`?{heading:`Changes recovered`,message:`The agent reviewed and applied recovered changes while preserving current work.`}:e.type===`sync-dev`?{heading:`Local sync complete`,message:`Applied pending dev changes and updated branch alignment where safe.`}:e.type===`recover-history`?{heading:`Recovery branches created`,message:`The checkpoint is available as recovered-main and recovered-dev branches. Current work was preserved.`}:e.type===`discard-history`?{heading:`Checkpoint discarded`,message:`The selected recovery refs were removed.`}:e.type===`reset-branches`?{heading:`Branches reset`,message:`Restored main and dev to their pre-integration commits.`}:e.type===`retry-codex`?{heading:`Refresh complete`,message:`The failed Codex stage completed and synchronization continued.`}:e.type===`retry-migration`?{heading:`Migration complete`,message:`Database migration completed and project checks resumed.`}:e.type===`retry-checks`?{heading:`Checks complete`,message:`The requested checks passed.`}:e.type===`retry-dev-alignment`?{heading:`Dev aligned`,message:`Dev now uses the synchronized main history.`}:e.type===`retry-fetch`?{heading:`Fetch complete`,message:`Checked for upstream updates.`}:e.type===`apply`?{heading:`Refresh complete`,message:`Your changes were committed and the project is up to date.`}:e.type===`prepare`?{heading:`Refresh complete`,message:`Your project is up to date.`}:e.type===`commit`?{heading:`Changes committed`,message:`Your local changes are committed. Checking for updates…`,preserveDuringStatus:!0}:e.type===`reject`?{heading:`Update dismissed`,message:`No further action needed.`}:e.type===`configure-codex`?{heading:`Codex preferences saved`,message:`Future Codex runs will use this model and effort.`}:e.type===`decline-rebase`?{heading:`Conflict resolution deferred`,message:`Applied changes stay on your branch. The remaining commits can be resolved later.`}:e.type===`resolve-rebase`?{heading:`Refresh complete`,message:`Codex resolved the remaining conflicts and the project is up to date.`}:e.type===`retry-install`?{heading:`Setup complete`,message:`Dependencies installed and the project is ready.`}:e.type===`retry-codegen`?{heading:`Codegen complete`,message:`Panda codegen finished.`}:e.type===`reset-database`?{heading:`Database reset complete`,message:`The database was recreated, migrated, and seeded.`}:e.type===`retry-supervisor`?{heading:`Reconnected`,message:`The supervisor is connected again.`}:e.type===`cancel-codex`?{heading:`Update cancelled`,message:`Codex conflict resolution cancelled.`}:{heading:`Action complete`,message:`No further action needed.`}}function Ot(e){let t=e.turns.at(-1);if(t)return{commits:[],messages:t.finalMessage&&!t.messages.some(e=>e.kind===`agent`&&e.text===t.finalMessage)?[...t.messages,{kind:`agent`,text:t.finalMessage}]:t.messages,phase:e.state===`failed`||e.state===`interrupted`?`error`:t.status===`running`&&n(e)?`running`:`complete`,requestId:e.requestIds.at(-1)??e.id,startedAt:Math.min(...e.turns.map(e=>e.startedAt)),stage:t.stage,totalCommits:e.progress?.total}}function kt(){let[e,t]=b(),[r,i]=b(),[o,s]=b(!1),[c,l]=b(),[u,d]=b(),[f,p]=b(Oe),[h,_]=b(),[v,x]=b({dismissed:!1}),[S,C]=b(()=>new Set),w=y(void 0),T=y(void 0),E=y(new Map),D=Se(),[O]=b(Ae),k=y(void 0),A=y(new Set),j=y(void 0),M=gt(e,r,u),N=!!(M&&M===v.key&&v.dismissed);M!==v.key&&x({key:M,dismissed:!1});let P=e?.checks&&S.size>0?{...e,checks:{...e.checks,commands:e.checks.commands.map(t=>!t.failureId&&S.has(_t(e.checks.commit,t))?{...t,dismissed:!0}:t)}}:e;g(()=>{if(!D)return;let e=E.current,r=e=>{try{D.send(a.diagnostic,e)}catch{}},o,c=Date.now(),u=()=>{try{e.size?D.send(a.statusRequest,{clientId:O,requestIds:[...e.keys()]}):D.send(a.statusRequest)}catch{s(!1)}},f=()=>{r({type:`connected`}),s(!1),u()},m=()=>{r({type:`disconnected`}),s(!1),o=void 0},h=({status:a})=>{let u=k.current,f=a;if(f.trace&&u?.trace){if(f.trace.sessionId===u.trace.sessionId&&f.trace.revision<u.trace.revision||A.current.has(f.trace.sessionId))return!1;f.trace.sessionId!==u.trace.sessionId&&(A.current.add(u.trace.sessionId),A.current.size>8&&A.current.delete(A.current.values().next().value))}yt(f)&&!f.operation&&u?.operation&&(f={...f,operation:u.operation,activities:u.activities,trace:u.trace}),k.current=f,c=Date.now();let m=JSON.stringify([f.trace,f.mode,f.busy]);m!==o&&(o=m,r({type:`status-received`,sessionId:f.trace?.sessionId,revision:f.trace?.revision,requestId:f.trace?.operationId,busy:!!f.busy}));let h=$(f),g=yt(f);if((f.mode===`unmanaged`&&u?.mode!==`unmanaged`||f.mode===`waiting`&&f.message&&!g&&(u?.mode!==`waiting`||!u.message||yt(u)))&&X(!0),g&&(i(void 0),l(void 0)),f.operation){n(f.operation)&&j.current!==f.operation.id&&(j.current=f.operation.id,X(!0));let t=g?void 0:Ot(f.operation);w.current=t,d(t);for(let[t,r]of e){let i=!n(f.operation);(f.operation.requestIds.includes(t)&&i||r.type===`cancel-codex`&&(f.operation.cancellation===`requested`||i))&&e.delete(t)}_([...e.values()].at(-1))}else u?.operation&&(w.current=void 0,d(void 0));s(!0),t(f),f.codexOptions&&p(e=>({...e,...f.codexOptions})),f.codexCompletion&&T.current!==f.codexCompletion.id&&(T.current=f.codexCompletion.id,X(!0));let v=!f.busy&&!f.codexCompletion?[...e.entries()].filter(([,e])=>e.type===`acknowledge-codex`||e.type===`acknowledge-operation`).map(([e])=>e):[];if(v.length>0){for(let t of v)e.delete(t);_([...e.values()].at(-1)),l(void 0),h||X(!1)}return h&&l(e=>e?.preserveDuringStatus?e:void 0),!0},g=t=>{if(r({type:`action-result-received`,requestId:t.requestId,sessionId:t.status?.trace?.sessionId,revision:t.status?.trace?.revision,busy:!!t.status?.busy,pending:e.has(t.requestId)}),t.errorCode===`UNKNOWN_REQUEST`&&k.current?.operation?.requestIds.includes(t.requestId))return;let n=t.status?h({status:t.status}):!0,a=e.get(t.requestId);if(a&&(e.delete(t.requestId),_([...e.values()].at(-1)),n)){if(a.type===`decline-rebase`&&!t.error&&t.status?.pendingRebase){X(!1),l(void 0);return}if(t.status?.operation){l(void 0),t.error&&!t.status.operation.requestIds.includes(t.requestId)&&i(t.error);return}t.error?(w.current?.requestId===t.requestId&&(w.current=void 0,d(void 0)),i(t.error),a.type===`acknowledge-codex`&&X(!0)):t.status?.codexCompletion?(T.current=t.status.codexCompletion.id,w.current=void 0,d(void 0),l(void 0),X(!0)):a.type===`acknowledge-codex`?(l(void 0),t.status&&!$(t.status)&&X(!1)):a.type===`dismiss-check`||a.type===`configure-codex`||a.type===`cancel-codex`?l(void 0):t.status&&(a.type===`commit`||!$(t.status))&&l(Dt(a))}},v=t=>{if(k.current?.operation||t.phase===`activity`||!e.has(t.requestId))return;if(t.phase===`start`){let e={commits:t.commits,messages:[t.message],phase:`running`,requestId:t.requestId,stage:t.stage??`resolve`,startedAt:w.current?.requestId===t.requestId?w.current.startedAt??Date.now():Date.now(),totalCommits:t.totalCommits};w.current=e,d(e),X(!0);return}let n=w.current;if(!n||n.requestId!==t.requestId)return;let r=t.phase===`message`?{...n,messages:wt([...n.messages,t.message]),phase:t.stage!==void 0&&t.stage!==n.stage?`running`:n.phase,stage:t.stage??n.stage}:t.phase===`complete`?{commits:n.commits,messages:n.messages,phase:`complete`,requestId:t.requestId,stage:t.stage??n.stage,startedAt:n.startedAt,totalCommits:n.totalCommits}:t.phase===`progress`?{...n,commits:t.commits,stage:t.stage??n.stage,totalCommits:t.totalCommits??n.totalCommits}:{...n,phase:`error`};w.current=r,d(r)};D.on(xe.connect,f),D.on(xe.disconnect,m),D.on(a.status,h),D.on(a.actionResult,g),D.on(a.codex,v),u();let y=globalThis.setInterval(()=>{(n(k.current?.operation)||e.size>0)&&(Date.now()-c>1e4&&s(!1),u())},1e3),b=()=>{document.visibilityState!==`hidden`&&(Date.now()-c>1e4&&s(!1),u())},x=At(()=>{jt()&&u()});return globalThis.addEventListener(`online`,b),globalThis.addEventListener(`focus`,b),globalThis.addEventListener(`pageshow`,b),document.addEventListener(`visibilitychange`,b),()=>{globalThis.clearInterval(y),x(),globalThis.removeEventListener(`online`,b),globalThis.removeEventListener(`focus`,b),globalThis.removeEventListener(`pageshow`,b),document.removeEventListener(`visibilitychange`,b),D.off(xe.connect,f),D.off(xe.disconnect,m),D.off(a.status,h),D.off(a.actionResult,g),D.off(a.codex,v)}},[D,O]);let F=async e=>{if(e.type===`acknowledge-codex`&&(T.current=e.id),i(void 0),x({key:M,dismissed:!1}),l(void 0),e.type!==`cancel-codex`&&(w.current=void 0,d(void 0)),!D||!o){i(`The Vite HMR connection is unavailable. Wait for reconnection before trying again.`);return}let t=globalThis.crypto.getRandomValues(new Uint32Array(4)).join(`-`);E.current.set(t,e),_(e),D.send(a.action,{clientId:O,action:e,requestId:t})},ee=m(()=>l(void 0),[]);return{act:F,checkFailure:(!r||N)&&!c&&(!u||N&&u.phase===`error`||e?.operation?.state===`failed`)&&(!e?.codexCompletion||e?.operation?.state===`failed`)?xt(P):void 0,codex:u,codexOptions:f,dismissCheckFailure:e=>{if(!e.check.failureId){C(t=>new Set(t).add(_t(e.commit,e.check)));return}F({failureId:e.check.failureId,type:`dismiss-check`})},dismissError:()=>x({key:M,dismissed:!0}),dismissSuccess:ee,error:r,errorsDismissed:N,hmrReady:o,pendingAction:h,setCodexOptions:p,status:P,success:c}}function At(e){return Me.add(e),()=>Me.delete(e)}function jt(){return je}function Mt(){return!1}export{Le as ManagedDevOverlay,Be as ManagedDevOverlayDebug,Ke as ManagedDevOverlayIndicator,Ie as toggleManagedDevOverlay};
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import{existsSync as e}from"node:fs";import{readFile as t}from"node:fs/promises";import{dirname as n,isAbsolute as r,resolve as i}from"node:path";import{readProjectConfig as a}from"@coreframe/config";import{composeDashboardManifest as
|
|
2
|
-
`);let r=
|
|
3
|
-
`)}function
|
|
4
|
-
`)}\n`}function
|
|
1
|
+
import{existsSync as e}from"node:fs";import{readFile as t}from"node:fs/promises";import{dirname as n,isAbsolute as r,resolve as i}from"node:path";import{readProjectConfig as a}from"@coreframe/config";import{dashboardAppDirectory as o}from"@coreframe/dashboard/app";import{composeDashboardManifest as s,composeDashboardPluginTarget as c,discoverDashboardPages as l,renderDashboardPluginTargetModule as u,resolveDashboardModuleReference as d,resolveDashboardRouteModules as f}from"@coreframe/dashboard/build";import{createNodeHandler as p}from"@coreframe/dashboard/server";import{createServer as m,loadConfigFromFile as h,normalizePath as g,searchForWorkspaceRoot as _}from"vite";const v=`/__dashboard`,y=`virtual:coreframe-internal/dashboard/worker-plugins`,b=`\0${y}`,x=`virtual:coreframe-internal/dashboard/manifest`,S=`\0${x}`,C=`virtual:coreframe-internal/dashboard/routes`,w=`\0${C}`,T=`virtual:coreframe-internal/dashboard/document`,E=`\0${T}`,D=`virtual:coreframe-internal/dashboard/styles`,O=`\0${D}`;function k({dashboardConfig:e=`dashboard/dashboard.config.ts`,dashboardOrigin:t=process.env.COREFRAME_DASHBOARD_ORIGIN??`http://127.0.0.1:5174`,env:r=process.env,projectRoot:a=process.cwd()}={}){let o,s,l=()=>s??=P(a,e,o);return{name:`coreframe:dashboard`,async config(e,n){return o=n,{define:{__COREFRAME_DASHBOARD_BUILD__:JSON.stringify(await z(a,r))},server:{proxy:{[v]:{target:t}}}}},resolveId(e){if(e===y)return b},async load(e){if(e===b)return u(c(await l(),`deployed`))},configureServer(e){return()=>{let t=e.printUrls.bind(e);e.printUrls=()=>{t();let n=e.resolvedUrls?.local[0];n&&e.config.logger.info(` ➜ Dashboard: ${new URL(`${v}/`,n)}`)}}},configurePreviewServer:{order:`pre`,async handler(t){let r=await m({appType:`custom`,configFile:!1,envFile:!1,logLevel:`silent`,mode:t.config.mode,resolve:{alias:t.config.resolve.alias,dedupe:t.config.resolve.dedupe,tsconfigPaths:t.config.resolve.tsconfigPaths},root:a,server:{hmr:!1,middlewareMode:!0,watch:null}}),o;try{let s=await L(r.ssrLoadModule.bind(r),await l(),n(F(a,e))),c=t.config.environments.client.build.outDir;o=p({clientDist:i(t.config.root,c,v.slice(1)),plugins:s,projectRoot:a})}catch(e){throw await r.close(),e}t.middlewares.use(async(e,t,n)=>{if(!e.url||!I(e.url)){n();return}await o.handle(e,t)});let s,c=()=>s??=Promise.all([o.dispose(),r.close()]).then(()=>void 0),u=t.close.bind(t);return t.close=async()=>{await Promise.all([c(),u()])},t.httpServer.once(`close`,()=>{c()}),()=>{let e=t.printUrls.bind(t);t.printUrls=()=>{e();let n=t.resolvedUrls?.local[0];n&&t.config.logger.info(` ➜ Dashboard: ${new URL(`${v}/`,n)}`)}}}}}}function A({dashboardDirectory:e=process.cwd(),environment:n=process.env.DEPLOY_ENV?`deployed`:`local`,projectRoot:r=i(e,`..`)}={}){let a,c,u,d=i(e,`dashboard.config.ts`),m=()=>c??=P(r,d,a);return{name:`coreframe:dashboard-app`,config(e,t){return a=t,{cacheDir:e.cacheDir??i(r,`node_modules/.vite-dashboard`),optimizeDeps:{include:[`@coreframe/dashboard > @tanstack/react-query`]},server:{fs:{allow:[...e.server?.fs?.allow?[]:[_(r)],i(o,`..`)]}},ssr:{noExternal:[`@coreframe/dashboard`]}}},resolveId(e){if(e===x)return S;if(e===C)return w;if(e===T)return E;if(e===D)return O},async load(a){if(a===O)return M(e);if(a===E)return j((await m()).document,e,r);if(a!==S&&a!==w)return;let[o,c]=await Promise.all([m(),l({dashboardDirectory:e})]),u=s(o,c,{environment:n});if(a===w){let t=f(u,{dashboardDirectory:e,projectRoot:r});return`export const dashboardRoutePages = ${JSON.stringify(t)}\n`}let d=JSON.parse(await t(i(r,`package.json`),`utf8`));return`import favicon from ${JSON.stringify(g(i(r,`src/assets/favicon.svg`))+`?url`)};\nexport const dashboardApplication = { name: ${JSON.stringify(d.name)}, favicon };\nexport const dashboardManifest = ${JSON.stringify(u)}\n`},async configureServer(t){u=p({plugins:await L(t.ssrLoadModule.bind(t),await m(),e),projectRoot:r}),t.middlewares.use(async(e,t,n)=>{if(!e.url||!e.url.startsWith(`${v}/api/plugins/`)){n();return}await u.handle(e,t)}),t.httpServer?.once(`close`,()=>{u?.dispose()})}}}function j(e,t,n){if(!e)return[`export const Layout = undefined`,`export const links = undefined`,`export const meta = undefined`,`export default undefined`,``].join(`
|
|
2
|
+
`);let r=N(d(e,{dashboardDirectory:t,projectRoot:n}));return[`import * as document from ${JSON.stringify(r)}`,`export const Layout = document.Layout`,`export const links = document.links`,`export const meta = document.meta`,`export default document.default`,``].join(`
|
|
3
|
+
`)}function M(t){let n=[`import ${JSON.stringify(`@coreframe/dashboard/shell.css`)}`];for(let r of[`styled-system/styles.css`,`styles.css`]){let a=i(t,r);e(a)&&n.push(`import ${JSON.stringify(N(a))}`)}return`${n.join(`
|
|
4
|
+
`)}\n`}function N(e){return`/@fs/${g(e)}`}async function P(e,t,n){let r=F(e,t),i=await h(n,r,e,void 0,void 0,`runner`);if(!i)throw Error(`Could not load dashboard configuration at ${r}.`);return i.config}function F(e,t){return r(t)?t:i(e,t)}function I(e){let[t]=e.split(`?`,1);return t===v||t.startsWith(`${v}/`)}async function L(e,t,n){let r=c(t,`local`);return Promise.all(r.map(async t=>{let[r,i]=await Promise.all([e(R(t.apiModule,n)),e(R(t.implementationModule,n))]);return{api:r.api,createImplementation:i.createImplementation}}))}function R(e,t){return e.startsWith(`.`)?`/@fs/${g(i(n(i(t,`dashboard.config.ts`)),e))}`:e}async function z(e,n){let[r,o]=await Promise.all([t(i(e,`package.json`),`utf8`),a({cwd:e})]),s=JSON.parse(r),c=Object.entries(o.worker?.environment??{}).flatMap(([e,t])=>t.kind===`generated`?[]:[{description:t.description,kind:t.kind,name:e,requiredIn:t.requiredIn??[]}]);return{applicationName:s.name??`Coreframe application`,applicationVersion:s.version,commit:n.GITHUB_SHA,configuration:c,coreframeVersion:s.engines?.coreframe,deployUrls:{production:o.deploy?.environments?.production?.url,staging:o.deploy?.environments?.staging?.url}}}export{A as coreframeDashboardAppPlugin,k as coreframeDashboardPlugin};
|
|
@@ -10,10 +10,9 @@ type CoreframeDevJobsPluginOptions = {
|
|
|
10
10
|
post?: (input: {
|
|
11
11
|
port: number;
|
|
12
12
|
secure: boolean;
|
|
13
|
-
signal: AbortSignal;
|
|
14
13
|
token: string;
|
|
15
14
|
}) => Promise<DevJobsResponse>;
|
|
16
|
-
wait?: (milliseconds: number
|
|
15
|
+
wait?: (milliseconds: number) => Promise<void>;
|
|
17
16
|
};
|
|
18
17
|
declare function coreframeDevJobsPlugin({
|
|
19
18
|
env,
|
package/dist/plugins/dev-jobs.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
import{request as e}from"node:http";import{request as t}from"node:https";import{devJobsEnv as n,devJobsPath as r,devJobsTokenHeader as i}from"@coreframe/dev-contracts/dev-jobs";function a({env:e=process.env,post:t=
|
|
1
|
+
import{request as e}from"node:http";import{request as t}from"node:https";import{devJobsEnv as n,devJobsPath as r,devJobsTokenHeader as i}from"@coreframe/dev-contracts/dev-jobs";function a({env:e=process.env,post:t=s,wait:r=c}={}){let i=e[n];return{apply:`serve`,name:`coreframe:dev-jobs`,configureServer(e){if(!i)return;let n=!1;e.httpServer?.once(`listening`,()=>{let a=e.httpServer?.address();if(!a||typeof a==`string`){e.config.logger.warn(`Coreframe dev jobs could not determine the Vite server port.`);return}o({logger:e.config.logger,port:a.port,post:t,secure:!!e.config.server.https,token:i,wait:r,isClosed:()=>n})}),e.httpServer?.once(`close`,()=>{n=!0})}}}async function o({isClosed:e,logger:t,port:n,post:r,secure:i,token:a,wait:o}){for(let s=1;s<=20;s+=1){if(e())return;try{let e=await r({port:n,secure:i,token:a});if(e.statusCode>=200&&e.statusCode<300){t.info(`Coreframe development jobs checked.`);return}if(e.statusCode!==404&&e.statusCode!==502&&e.statusCode!==503){t.warn(`Coreframe development jobs failed with HTTP ${e.statusCode}.`);return}}catch(e){if(s===20){let n=e instanceof Error?e.message:String(e);t.warn(`Coreframe development jobs could not start: ${n}`);return}}await o(250)}t.warn(`Coreframe development jobs did not become available.`)}function s({port:n,secure:a,token:o}){return new Promise((s,c)=>{let l=(a?t:e)({hostname:`127.0.0.1`,method:`POST`,path:r,port:n,...a?{rejectUnauthorized:!1}:void 0,headers:{[i]:o,"content-length":`0`}},e=>{let t=``;e.setEncoding(`utf8`),e.on(`data`,e=>{t+=e}),e.on(`end`,()=>{s({body:t,statusCode:e.statusCode??500})})});l.on(`error`,c),l.end()})}function c(e){return new Promise(t=>setTimeout(t,e))}export{a as coreframeDevJobsPlugin};
|
|
@@ -6,8 +6,7 @@ type CoreframeDevelopmentControlsPluginOptions = {
|
|
|
6
6
|
env?: NodeJS.ProcessEnv;
|
|
7
7
|
};
|
|
8
8
|
declare function coreframeDevelopmentControlsPlugin({
|
|
9
|
-
enabled
|
|
10
|
-
env
|
|
9
|
+
enabled
|
|
11
10
|
}?: CoreframeDevelopmentControlsPluginOptions): Plugin;
|
|
12
11
|
//#endregion
|
|
13
12
|
export { CoreframeDevelopmentControlsPluginOptions, coreframeDevelopmentControlsPlugin };
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{
|
|
1
|
+
import{developmentControlsEvents as e}from"@coreframe/dev-contracts/development-controls";function t({enabled:t=!0}={}){return{name:`coreframe:development-controls`,apply:`serve`,configureServer(n){if(!t)return;let r=!1,i=async(t,i)=>{if(r){i.send(e.actionResult,{error:`A Vite restart is already in progress.`,requestId:t.requestId,state:`error`});return}r=!0,i.send(e.actionResult,{requestId:t.requestId,state:`busy`});try{await n.restart(),r=!1,i.send(e.actionResult,{requestId:t.requestId,state:`complete`})}catch(a){r=!1;let o=a instanceof Error?a.message:String(a);n.config.logger.error(`Coreframe Vite restart failed: ${o}`,{error:a instanceof Error?a:void 0}),i.send(e.actionResult,{error:o,requestId:t.requestId,state:`error`})}};n.ws.on(e.action,i),n.httpServer?.once(`close`,()=>{n.ws.off(e.action,i)})}}}export{t as coreframeDevelopmentControlsPlugin};
|
package/dist/plugins/index.d.ts
CHANGED
|
@@ -2,7 +2,7 @@ import { ConfigEnv, PluginOption } from "vite";
|
|
|
2
2
|
import { ShellPlatform } from "@coreframe/lib/shell";
|
|
3
3
|
|
|
4
4
|
//#region plugins/index.d.ts
|
|
5
|
-
type CoreframeHost = "browser"
|
|
5
|
+
type CoreframeHost = "browser";
|
|
6
6
|
type CoreframePlatform = ShellPlatform;
|
|
7
7
|
type CoreframeRunner = "vite" | "vitest" | "react-router-prerender";
|
|
8
8
|
type CoreframeConfigEnv = ConfigEnv & {
|
|
@@ -14,7 +14,7 @@ type PluginFilter = (env: CoreframeConfigEnv) => boolean;
|
|
|
14
14
|
type PluginSelector = (env: CoreframeConfigEnv) => PluginOption;
|
|
15
15
|
type SelectablePlugin = PluginOption | PluginSelector;
|
|
16
16
|
declare function extendConfigEnv(env: ConfigEnv, processEnv?: NodeJS.ProcessEnv): CoreframeConfigEnv;
|
|
17
|
-
declare function resolveCoreframeHost(processEnv?: NodeJS.ProcessEnv
|
|
17
|
+
declare function resolveCoreframeHost(processEnv?: NodeJS.ProcessEnv): CoreframeHost;
|
|
18
18
|
declare function resolveCoreframeRunner(processEnv?: NodeJS.ProcessEnv): CoreframeRunner;
|
|
19
19
|
declare function resolveCoreframePlatform(processEnv?: NodeJS.ProcessEnv): CoreframePlatform;
|
|
20
20
|
declare function selectPlugins(env: CoreframeConfigEnv, plugins: readonly SelectablePlugin[]): PluginOption[];
|
package/dist/plugins/index.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
function e(e,i=process.env){let a=r(i);return{...e,host:t(i
|
|
1
|
+
function e(e,i=process.env){let a=r(i);return{...e,host:t(i),platform:a,runner:n(i)}}function t(e=process.env){return r(e),`browser`}function n(e=process.env){return e.VITEST===`true`?`vitest`:e.IS_RR_BUILD_REQUEST===`yes`?`react-router-prerender`:`vite`}function r(e=process.env){let t=e.COREFRAME_PLATFORM??`web`,n=t;if(n!==`web`)throw Error(`Unsupported Coreframe platform: ${JSON.stringify(t)}.`);return n}function i(e,t){return t.map(t=>u(e,t))}function a(e,t){return n=>e(n)?u(n,t):null}function o(e){return a(e=>e.command===`build`,e)}function s(e){return a(e=>e.command===`serve`,e)}function c(e,t){return a(t=>d(e,t.runner),t)}function l(e,t){return a(t=>!d(e,t.runner),t)}function u(e,t){return typeof t==`function`?t(e):t}function d(e,t){return(typeof e==`string`?[e]:e).includes(t)}export{a as apply,o as buildOnly,s as devOnly,l as exceptRunner,e as extendConfigEnv,t as resolveCoreframeHost,r as resolveCoreframePlatform,n as resolveCoreframeRunner,c as runnerOnly,i as selectPlugins};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{
|
|
1
|
+
import{t as e}from"../managed-dev-B_34FAHU.js";export{e as coreframeManagedDevPlugin};
|
package/dist/plugins/preset.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
import{coreframeAssetsPlugin as e}from"./assets.js";import{coreframeDashboardPlugin as t}from"./dashboard.js";import{coreframeDevJobsPlugin as n}from"./dev-jobs.js";import{coreframeDevelopmentControlsPlugin as r}from"./development-controls.js";import{coreframeEnvironmentPlugin as i}from"./environment.js";import{coreframeFaviconPlugin as a}from"./favicon.js";import{
|
|
1
|
+
import{coreframeAssetsPlugin as e}from"./assets.js";import{coreframeDashboardPlugin as t}from"./dashboard.js";import{coreframeDevJobsPlugin as n}from"./dev-jobs.js";import{coreframeDevelopmentControlsPlugin as r}from"./development-controls.js";import{coreframeEnvironmentPlugin as i}from"./environment.js";import{coreframeFaviconPlugin as a}from"./favicon.js";import{t as o}from"../icons-vb_lG-av.js";import{t as s}from"../managed-dev-B_34FAHU.js";import{coreframePreviewPlugin as c}from"./preview.js";import{coreframeStartupTimingPlugin as l}from"./startup-timing.js";import{t as u}from"../worktree-head-BZrhW1-Q.js";function d(d={}){return[l(),i(),c(d.config??{}),e(),...o(),r(),n(),s(),u(),t(),...a(d.webManifest===void 0?void 0:{webManifest:d.webManifest})]}export{d as coreframeVitePreset};
|
package/dist/plugins/routes.d.ts
CHANGED
|
@@ -1,79 +1,2 @@
|
|
|
1
|
-
import { RouteConfigEntry, getAppDirectory } from "@react-router/dev/routes";
|
|
2
|
-
|
|
3
|
-
//#region plugins/routes.d.ts
|
|
4
|
-
type MobileRouteStack = string | {
|
|
5
|
-
/** Stable finite stack identifier. */id: string; /** Marks this Flutter-wrapped DOM route as the stack root. */
|
|
6
|
-
root?: boolean;
|
|
7
|
-
};
|
|
8
|
-
type MobileRouteLayerMetadata = {
|
|
9
|
-
/** Absolute route compositor plane. Defaults to zero. */z?: number; /** Optional one-level named stack membership. */
|
|
10
|
-
stack?: MobileRouteStack;
|
|
11
|
-
};
|
|
12
|
-
type NativeRouteRegistration = {
|
|
13
|
-
/** `.native.tsx` module containing the route's non-DOM controller. */path: string; /** Symbolic Flutter shell transition selected when this route is presented. */
|
|
14
|
-
transitionKey?: string; /** Status-bar foreground policy while this route is active. */
|
|
15
|
-
statusBarForeground?: "automatic" | "light" | "dark";
|
|
16
|
-
} & MobileRouteLayerMetadata;
|
|
17
|
-
type MobileRouteRegistration = {
|
|
18
|
-
/** Opts the ordinary DOM implementation into Flutter-owned physical presentation on mobile. */surface: "flutter-dom"; /** Symbolic Flutter shell transition selected when this route is presented. */
|
|
19
|
-
transitionKey?: string; /** Optional opaque route backdrop used while platform transitions fade route content. */
|
|
20
|
-
underlayColor?: string; /** Status-bar foreground policy while this route is active. */
|
|
21
|
-
statusBarForeground?: "automatic" | "light" | "dark";
|
|
22
|
-
} & MobileRouteLayerMetadata;
|
|
23
|
-
declare const DEFAULT_MOBILE_TRANSITION_KEY: "platform";
|
|
24
|
-
type CoreframeRouteConfigEntry = Omit<RouteConfigEntry, "children"> & {
|
|
25
|
-
children?: CoreframeRouteConfigEntry[]; /** Selects native handling for this route on native hosts. */
|
|
26
|
-
native?: NativeRouteRegistration; /** Selects an explicit mobile presentation policy without changing the DOM route projection. */
|
|
27
|
-
mobile?: MobileRouteRegistration;
|
|
28
|
-
};
|
|
29
|
-
type RouteConfig = CoreframeRouteConfigEntry[] | Promise<CoreframeRouteConfigEntry[]>;
|
|
30
|
-
type NativeRouteManifestEntry = {
|
|
31
|
-
routeId: string;
|
|
32
|
-
canonicalPath: string;
|
|
33
|
-
caseSensitive: boolean;
|
|
34
|
-
routeModulePath: string;
|
|
35
|
-
controllerModulePath: string;
|
|
36
|
-
transitionKey: string;
|
|
37
|
-
};
|
|
38
|
-
type MobileRouteManifestEntry = {
|
|
39
|
-
routeId: string;
|
|
40
|
-
canonicalPath: string;
|
|
41
|
-
caseSensitive: boolean;
|
|
42
|
-
routeModulePath: string;
|
|
43
|
-
surface: "flutter-dom" | "native";
|
|
44
|
-
transitionKey: string;
|
|
45
|
-
z: number;
|
|
46
|
-
stackId: string | null;
|
|
47
|
-
stackRoot: boolean;
|
|
48
|
-
underlayColor: string | null;
|
|
49
|
-
statusBarForeground: "automatic" | "light" | "dark" | null;
|
|
50
|
-
};
|
|
51
|
-
type MobileStackManifestEntry = {
|
|
52
|
-
id: string;
|
|
53
|
-
rootRouteId: string;
|
|
54
|
-
routeIds: readonly string[];
|
|
55
|
-
};
|
|
56
|
-
type CompiledRouteRegistrations = {
|
|
57
|
-
routes: RouteConfigEntry[];
|
|
58
|
-
nativeManifest: NativeRouteManifestEntry[];
|
|
59
|
-
mobileManifest: MobileRouteManifestEntry[];
|
|
60
|
-
stacks: MobileStackManifestEntry[];
|
|
61
|
-
};
|
|
62
|
-
type RouteOptions = Pick<CoreframeRouteConfigEntry, "id" | "index" | "caseSensitive" | "mobile" | "native">;
|
|
63
|
-
type IndexOptions = Pick<CoreframeRouteConfigEntry, "id">;
|
|
64
|
-
type LayoutOptions = Pick<CoreframeRouteConfigEntry, "id">;
|
|
65
|
-
declare function route(path: string | null | undefined, file: string, children?: CoreframeRouteConfigEntry[]): CoreframeRouteConfigEntry;
|
|
66
|
-
declare function route(path: string | null | undefined, file: string, options: RouteOptions, children?: CoreframeRouteConfigEntry[]): CoreframeRouteConfigEntry;
|
|
67
|
-
declare function index(file: string, options?: IndexOptions): CoreframeRouteConfigEntry;
|
|
68
|
-
declare function layout(file: string, children?: CoreframeRouteConfigEntry[]): CoreframeRouteConfigEntry;
|
|
69
|
-
declare function layout(file: string, options: LayoutOptions, children?: CoreframeRouteConfigEntry[]): CoreframeRouteConfigEntry;
|
|
70
|
-
declare function prefix(prefixPath: string, routes: CoreframeRouteConfigEntry[]): CoreframeRouteConfigEntry[];
|
|
71
|
-
declare function relative(directory: string): {
|
|
72
|
-
route(path: string | null | undefined, file: string, optionsOrChildren?: RouteOptions | CoreframeRouteConfigEntry[], children?: CoreframeRouteConfigEntry[]): CoreframeRouteConfigEntry;
|
|
73
|
-
index(file: string, options?: IndexOptions): CoreframeRouteConfigEntry;
|
|
74
|
-
layout(file: string, optionsOrChildren?: LayoutOptions | CoreframeRouteConfigEntry[], children?: CoreframeRouteConfigEntry[]): CoreframeRouteConfigEntry;
|
|
75
|
-
prefix: typeof prefix;
|
|
76
|
-
};
|
|
77
|
-
declare function compileRouteRegistrations(config: readonly CoreframeRouteConfigEntry[]): CompiledRouteRegistrations;
|
|
78
|
-
//#endregion
|
|
79
|
-
export { CompiledRouteRegistrations, CoreframeRouteConfigEntry, DEFAULT_MOBILE_TRANSITION_KEY, MobileRouteManifestEntry, MobileRouteRegistration, MobileRouteStack, MobileStackManifestEntry, NativeRouteManifestEntry, NativeRouteRegistration, RouteConfig, compileRouteRegistrations, getAppDirectory, index, layout, prefix, relative, route };
|
|
1
|
+
import { RouteConfig, RouteConfigEntry, getAppDirectory, index, layout, prefix, relative, route } from "@react-router/dev/routes";
|
|
2
|
+
export { type RouteConfig, type RouteConfigEntry, getAppDirectory, index, layout, prefix, relative, route };
|
package/dist/plugins/routes.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
import{getAppDirectory as e,index as t,layout as n,prefix as r,relative as i,route as a}from"@react-router/dev/routes";
|
|
1
|
+
import{getAppDirectory as e,index as t,layout as n,prefix as r,relative as i,route as a}from"@react-router/dev/routes";export{e as getAppDirectory,t as index,n as layout,r as prefix,i as relative,a as route};
|
package/dist/plugins/shell.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
import{
|
|
1
|
+
import{resolveCoreframePlatform as e}from"./index.js";import{realpathSync as t}from"node:fs";import{extname as n,isAbsolute as r,relative as i,resolve as a,sep as o}from"node:path";import{parseSync as s}from"vite";function c(){let t=e(),n={router:`@coreframe/lib/router`,shell:`@coreframe/lib/shell/dom`},r=process.cwd();return{name:`coreframe:shell`,enforce:`pre`,config(){return{define:{"import.meta.env.PLATFORM":JSON.stringify(t)},resolve:{dedupe:[`react`,`react-dom`,`react-router`]},ssr:{noExternal:[`@coreframe/app`,`@coreframe/lib`]}}},configResolved(e){r=e.root},transform(e,t){let n=l(t);if(!f(t,r)||n===void 0)return;let{module:i}=s(t,e,{lang:n});(i.staticImports.some(({moduleRequest:e})=>u(e.value))||i.staticExports.some(({entries:e})=>e.some(({moduleRequest:e})=>u(e?.value)))||i.dynamicImports.some(({moduleRequest:t})=>u(e.slice(t.start,t.end))))&&d()},resolveId(e){if(e===`virtual:coreframe-internal/shell`)return this.resolve(n.shell,a(r,`vite.config.ts`),{skipSelf:!0});if(e===`virtual:coreframe-internal/router`)return this.resolve(n.router,a(r,`vite.config.ts`),{skipSelf:!0})}}}function l(e){let t=n(e.split(`?`,1)[0]);if(t===`.jsx`)return`jsx`;if(t===`.ts`||t===`.mts`||t===`.cts`)return`ts`;if(t===`.tsx`)return`tsx`;if(t===`.js`||t===`.mjs`||t===`.cjs`)return`js`}function u(e){return e!==void 0&&/^["'`]?virtual:coreframe/u.test(e)}function d(){throw Error(`Application modules must import Coreframe runtime APIs from "@coreframe/app" package entry points; "virtual:coreframe*" modules are framework-internal.`)}function f(e,n){let a=e.split(`?`,1)[0];if(!r(a))return!1;let s=i(t(n),t(a)),c=s.split(o);return s!==``&&s!==`..`&&!s.startsWith(`..${o}`)&&!r(s)&&!c.includes(`node_modules`)&&c[0]!==`.react-router`}export{c as coreframeShellPlugin};
|
package/dist/style.css
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
[data-isolet-root]{--overlay-font-body:"SN Pro Variable", system-ui, sans-serif;--overlay-font-monospace:"Google Sans Code Variable", ui-monospace, monospace;color-scheme:light dark;--oc-white:#fff;--oc-gray-0:#f8f9fa;--oc-gray-1:#f1f3f5;--oc-gray-2:#e9ecef;--oc-gray-3:#dee2e6;--oc-gray-4:#ced4da;--oc-gray-5:#adb5bd;--oc-gray-6:#868e96;--oc-gray-7:#495057;--oc-gray-8:#343a40;--oc-gray-9:#212529;--oc-red-0:#fff5f5;--oc-red-2:#ffc9c9;--oc-red-7:#f03e3e;--oc-red-9:#c92a2a;--oc-grape-0:#f8f0fc;--oc-grape-2:#eebefa;--oc-grape-7:#ae3ec9;--oc-grape-9:#862e9c;--oc-blue-0:#e7f5ff;--oc-blue-2:#a5d8ff;--oc-blue-4:#4dabf7;--oc-blue-6:#228be6;--oc-blue-7:#1c7ed6;--oc-blue-9:#1864ab;--oc-green-0:#ebfbee;--oc-green-2:#b2f2bb;--oc-green-7:#37b24d;--oc-green-9:#2b8a3e;--oc-yellow-0:#fff9db;--oc-yellow-2:#ffec99;--oc-yellow-7:#f59f00;--oc-yellow-9:#e67700;--overlay-background:var(--oc-white);--overlay-surface-subtle:var(--oc-gray-0);--overlay-surface-muted:var(--oc-gray-1);--overlay-border:var(--oc-gray-3);--overlay-border-strong:var(--oc-gray-4);--overlay-text:var(--oc-gray-9);--overlay-text-muted:var(--oc-gray-7);--overlay-text-subtle:var(--oc-gray-6);--overlay-accent:var(--oc-blue-6);--overlay-accent-hover:var(--oc-blue-7);--overlay-accent-soft:var(--oc-blue-0);--overlay-accent-border:var(--oc-blue-2);--overlay-accent-text:var(--oc-blue-9);--overlay-thought-soft:var(--oc-grape-0);--overlay-thought-border:var(--oc-grape-2);--overlay-thought-text:var(--oc-grape-9);--overlay-success-soft:var(--oc-green-0);--overlay-success-border:var(--oc-green-2);--overlay-success-text:var(--oc-green-9);--overlay-warning-soft:var(--oc-yellow-0);--overlay-warning-border:var(--oc-yellow-2);--overlay-warning-text:var(--oc-yellow-9);--overlay-danger-soft:var(--oc-red-0);--overlay-danger-border:var(--oc-red-2);--overlay-danger-text:var(--oc-red-9);color:var(--overlay-text);font:14px/1.45 var(--overlay-font-body)}.surface{--managed-dev-bottom-offset:0px;--managed-dev-right-offset:0px}.indicatorButton{appearance:none;bottom:calc(10px + env(safe-area-inset-bottom,0px) + var(--managed-dev-bottom-offset));cursor:pointer;pointer-events:auto;height:44px;right:calc(10px + env(safe-area-inset-right,0px) + var(--managed-dev-right-offset));background:0 0;border:0;justify-content:center;align-items:center;width:44px;padding:0;display:flex;position:fixed}.indicatorButton:focus-visible{outline:3px solid var(--overlay-accent-border);outline-offset:-3px}.indicatorDot{background:var(--managed-dev-indicator-color);box-shadow:inset 0 0 0 .5px color-mix(in srgb, var(--overlay-border) 30%, transparent);height:var(--managed-dev-indicator-size);width:var(--managed-dev-indicator-size);border-radius:50%;display:block;position:relative}.indicatorDot:before{border:max(1px, calc(var(--managed-dev-indicator-size) / 9)) solid var(--managed-dev-indicator-color);border-radius:inherit;content:"";animation:1.8s ease-out infinite radiate;position:absolute;inset:0}.dialog{background:var(--overlay-background);border:1px solid var(--overlay-border);box-shadow:0 18px 60px color-mix(in srgb, var(--oc-gray-9) 28%, transparent), 0 2px 8px color-mix(in srgb, var(--oc-gray-9) 12%, transparent);color:var(--overlay-text);box-sizing:border-box;height:auto;bottom:20px;left:unset;overscroll-behavior:contain;pointer-events:auto;border-radius:12px;width:min(520px,100vw - 18px);max-width:min(520px,100vw - 18px);max-height:none;margin:0;padding:12px 18px;position:fixed;right:20px;overflow:hidden}.dialog[open]{flex-direction:column;gap:12px;display:flex}.drawerBody{align-content:start;gap:16px;min-height:80px;display:grid;overflow:auto}.header{justify-content:space-between;align-items:center;gap:12px;display:flex}.headerActions{align-items:center;display:flex}.developmentControlsDropdown{display:flex;position:relative}.title{align-items:center;gap:8px;margin:0;font-size:16px;display:flex}.titleIcon{color:var(--overlay-accent);flex:none}.iconButton{color:inherit;cursor:pointer;background:0 0;border:0;flex:none;justify-content:center;align-items:center;min-width:32px;min-height:32px;padding:4px;display:inline-flex}.iconButton:hover{background:var(--overlay-surface-muted);border-radius:8px}.iconButton:focus-visible,.scenarioButton:focus-visible,.sectionLink:focus-visible,.button:focus-visible,.message:focus-visible{outline:3px solid var(--overlay-accent-border);outline-offset:2px}.content{gap:12px;display:grid}.section{background:var(--overlay-surface-subtle);border:1px solid var(--overlay-border);border-radius:12px;gap:12px;padding:14px;display:grid}.sectionHeading{justify-content:space-between;align-items:start;gap:12px;display:flex}.sectionTitle{margin:0;font-size:13px}.sectionDescription{color:var(--overlay-text-muted);margin:3px 0 0;font-size:12px}.sectionLink{color:var(--overlay-accent-text);cursor:pointer;font:inherit;background:0 0;border:0;padding:2px;font-size:12px}.debugFooter{background:var(--overlay-thought-soft);border-top:.5px solid var(--overlay-thought-border);color:var(--overlay-thought-text);flex:none;margin:0 -18px -12px;padding:4px 18px;font-size:11px;line-height:1.3}.scenarioList{gap:7px;max-height:min(480px,100dvh - 210px);display:grid;overflow:auto}.scenarioButton{background:var(--overlay-surface-subtle);color:inherit;cursor:pointer;font:inherit;text-align:start;border:1px solid #0000;border-radius:10px;gap:3px;padding:10px;display:grid}.scenarioButton:hover{background:var(--overlay-accent-soft);border-color:var(--overlay-accent-border)}.scenarioLabel{font-weight:650}.scenarioDescription{color:var(--overlay-text-muted);font-size:12px}.paragraph{margin:0}.pendingCommits{background:var(--overlay-surface-subtle);border:1px solid var(--overlay-border);box-sizing:border-box;font:12px/1.5 var(--overlay-font-monospace);white-space:pre-wrap;border-radius:10px;max-height:190px;margin:0;padding:10px;overflow:auto}.codexOutput{background:var(--overlay-surface-subtle);border:1px solid var(--overlay-border);box-sizing:border-box;font:12px/1.5 var(--overlay-font-monospace);white-space:pre-wrap;word-break:break-word;border-radius:10px;max-height:280px;margin:0;padding:10px;overflow:auto}.codexWorking{color:var(--overlay-text-muted);font:12px/1.5 var(--overlay-font-monospace)}.codexWorkingSpinner{color:var(--overlay-accent)}.codexTranscript{gap:10px;max-height:360px;display:grid;overflow:auto}.codexMessage{border:1px solid #0000;border-radius:10px;gap:5px;padding:10px;display:grid}.codexMessageUser{background:var(--overlay-accent-soft);border-color:var(--overlay-accent-border)}.codexMessageThought{background:var(--overlay-thought-soft);border-color:var(--overlay-thought-border)}.codexMessageAgent{background:var(--overlay-success-soft);border-color:var(--overlay-success-border)}.codexMessageHeader{justify-content:space-between;align-items:baseline;gap:8px;display:flex}.codexMessageLabel{color:var(--overlay-text-muted);letter-spacing:.04em;text-transform:uppercase;margin:0;font-size:11px;font-weight:650}.codexMessageAge{color:var(--overlay-text-subtle);white-space:nowrap;font-size:11px}.codexMessageText,.codexWaiting{font:12px/1.5 var(--overlay-font-monospace);white-space:pre-wrap;word-break:break-word;margin:0}.codexWaiting{color:var(--overlay-text-subtle)}.rebaseProgress{gap:8px;display:grid}.rebaseProgressLabel{color:var(--overlay-text-muted);justify-content:space-between;align-items:baseline;font-size:12px;display:flex}.rebaseProgressLabel strong{color:var(--overlay-success-text)}.rebaseProgressTrack{background:var(--overlay-surface-muted);border-radius:999px;height:6px;overflow:hidden}.rebaseProgressFill{background:var(--overlay-success-text);border-radius:inherit;height:100%;transition:width .18s;display:block}.codexHistorySummary{cursor:pointer;font-size:12px;font-weight:600}.codexHistoryList{gap:8px;padding-top:8px;display:grid}.files{gap:7px;max-height:190px;display:grid;overflow:auto}.checkbox{overflow-wrap:anywhere;align-items:start;gap:8px;display:flex}.checkbox input{accent-color:var(--overlay-accent)}.filePath{font-family:var(--overlay-font-monospace)}.message{background:var(--overlay-surface-subtle);border:1px solid var(--overlay-border-strong);box-sizing:border-box;color:var(--overlay-text);font-family:var(--overlay-font-monospace);resize:vertical;border-radius:10px;width:100%;min-height:92px;padding:10px}.actions{flex-wrap:wrap;justify-content:end;gap:8px;display:flex}.developmentControls{background:var(--overlay-background);border:1px solid var(--overlay-border);box-shadow:0 10px 30px color-mix(in srgb, var(--oc-gray-9) 18%, transparent);box-sizing:border-box;z-index:1;border-radius:10px;gap:4px;min-width:170px;max-width:calc(100vw - 32px);margin:0;padding:4px;display:grid;position:absolute;top:calc(100% + 6px);right:0}.developmentControls .actions{justify-content:stretch;align-items:stretch;gap:0;width:100%;display:grid}.developmentControls .button{text-align:start;white-space:nowrap;justify-content:start;justify-self:stretch;width:100%;min-height:32px}.button{border:1px solid var(--overlay-border-strong);cursor:pointer;font:inherit;background:0 0;border-radius:999px;justify-content:center;align-items:center;gap:6px;padding:7px 11px;transition:opacity .14s;display:inline-flex}.button:hover:not(:disabled){background:var(--overlay-surface-muted)}.primary{background:var(--overlay-accent);border-color:var(--overlay-accent);color:var(--oc-white)}.primary:hover:not(:disabled){background:var(--overlay-accent-hover);border-color:var(--overlay-accent-hover)}.developmentControls .button{color:inherit;background:0 0;border:0}.developmentControls .button:hover:not(:disabled){background:var(--overlay-surface-muted)}.button:disabled{cursor:wait;opacity:.55}.buttonSpinner{animation:.7s linear infinite button-spin}.iconOnly{box-sizing:border-box;flex:0 0 32px;width:32px;min-width:32px;height:32px;padding:7px}.warning{color:var(--overlay-warning-text);white-space:pre-wrap}.checkFailure{background:var(--overlay-danger-soft);border:1px solid var(--overlay-danger-border);color:var(--overlay-danger-text);border-radius:10px;gap:10px;padding:10px;display:grid}.checkCommand{font-family:var(--overlay-font-monospace);margin:0;font-weight:600}.checkGuidance{margin:3px 0 0;font-size:12px}.setupFailure{background:var(--overlay-danger-soft);border:1px solid var(--overlay-danger-border);color:var(--overlay-danger-text);border-radius:10px;gap:10px;padding:10px;display:grid}.actionError{background:var(--overlay-warning-soft);border:1px solid var(--overlay-warning-border);color:var(--overlay-warning-text);white-space:pre-wrap;border-radius:10px;gap:10px;padding:10px;display:grid}.errorMessage{grid-template-columns:auto 1fr;align-items:start;gap:8px;display:grid}.actionSuccess{background:var(--overlay-success-soft);border:1px solid var(--overlay-success-border);color:var(--overlay-success-text);border-radius:10px;grid-template-columns:auto 1fr;align-items:start;gap:8px;padding:10px;display:grid}.errorIcon,.successIcon{margin-top:1px}@media (prefers-color-scheme:dark){[data-isolet-root]{--overlay-background:var(--oc-gray-9);--overlay-surface-subtle:var(--oc-gray-8);--overlay-surface-muted:var(--oc-gray-7);--overlay-border:var(--oc-gray-7);--overlay-border-strong:var(--oc-gray-6);--overlay-text:var(--oc-gray-0);--overlay-text-muted:var(--oc-gray-4);--overlay-text-subtle:var(--oc-gray-5);--overlay-accent:var(--oc-blue-6);--overlay-accent-hover:var(--oc-blue-7);--overlay-accent-soft:color-mix(in srgb, var(--oc-blue-9) 32%, var(--overlay-background));--overlay-accent-border:var(--oc-blue-7);--overlay-accent-text:var(--oc-blue-2);--overlay-thought-soft:color-mix(in srgb, var(--oc-grape-9) 30%, var(--overlay-background));--overlay-thought-border:var(--oc-grape-7);--overlay-thought-text:var(--oc-grape-2);--overlay-success-soft:color-mix(in srgb, var(--oc-green-9) 30%, var(--overlay-background));--overlay-success-border:var(--oc-green-7);--overlay-success-text:var(--oc-green-2);--overlay-warning-soft:color-mix(in srgb, var(--oc-yellow-9) 24%, var(--overlay-background));--overlay-warning-border:var(--oc-yellow-7);--overlay-warning-text:var(--oc-yellow-2);--overlay-danger-soft:color-mix(in srgb, var(--oc-red-9) 30%, var(--overlay-background));--overlay-danger-border:var(--oc-red-7);--overlay-danger-text:var(--oc-red-2)}}@keyframes radiate{0%{opacity:.75;transform:scale(1)}to{opacity:0;transform:scale(2.4)}}@keyframes button-spin{to{transform:rotate(1turn)}}@media (prefers-reduced-motion:reduce){.buttonSpinner{animation:none}}@media (width<=600px){.dialog{max-width:none;padding:calc(16px + env(safe-area-inset-top,0px)) calc(16px + env(safe-area-inset-right,0px)) calc(16px + env(safe-area-inset-bottom,0px)) calc(16px + env(safe-area-inset-left,0px));border-radius:0;width:auto;inset:0}.debugFooter{margin:0 calc(-16px - env(safe-area-inset-right,0px)) calc(-16px - env(safe-area-inset-bottom,0px)) calc(-16px - env(safe-area-inset-left,0px));padding:4px calc(16px + env(safe-area-inset-right,0px)) calc(4px + env(safe-area-inset-bottom,0px)) calc(16px + env(safe-area-inset-left,0px))}.button{min-height:44px}.checkbox{align-items:center;min-height:44px}.iconButton{min-width:44px;min-height:44px}.iconOnly{flex-basis:44px;width:44px;min-width:44px;height:44px}}@media (prefers-reduced-motion:reduce){.indicatorDot:before{opacity:.45;animation:none;transform:scale(1.65)}}
|
|
1
|
+
:host::backdrop{pointer-events:none!important;background:0 0!important}[data-isolet-root]{--overlay-font-body:"SN Pro Variable", system-ui, sans-serif;--overlay-font-monospace:"Google Sans Code Variable", ui-monospace, monospace;color-scheme:light dark;--oc-white:#fff;--oc-gray-0:#f8f9fa;--oc-gray-1:#f1f3f5;--oc-gray-2:#e9ecef;--oc-gray-3:#dee2e6;--oc-gray-4:#ced4da;--oc-gray-5:#adb5bd;--oc-gray-6:#868e96;--oc-gray-7:#495057;--oc-gray-8:#343a40;--oc-gray-9:#212529;--oc-red-0:#fff5f5;--oc-red-2:#ffc9c9;--oc-red-7:#f03e3e;--oc-red-9:#c92a2a;--oc-grape-0:#f8f0fc;--oc-grape-2:#eebefa;--oc-grape-7:#ae3ec9;--oc-grape-9:#862e9c;--oc-blue-0:#e7f5ff;--oc-blue-2:#a5d8ff;--oc-blue-4:#4dabf7;--oc-blue-6:#228be6;--oc-blue-7:#1c7ed6;--oc-blue-9:#1864ab;--oc-green-0:#ebfbee;--oc-green-2:#b2f2bb;--oc-green-7:#37b24d;--oc-green-9:#2b8a3e;--oc-yellow-0:#fff9db;--oc-yellow-2:#ffec99;--oc-yellow-7:#f59f00;--oc-yellow-9:#e67700;--overlay-background:var(--oc-white);--overlay-surface-subtle:var(--oc-gray-0);--overlay-surface-muted:var(--oc-gray-1);--overlay-border:var(--oc-gray-3);--overlay-border-strong:var(--oc-gray-4);--overlay-text:var(--oc-gray-9);--overlay-text-muted:var(--oc-gray-7);--overlay-text-subtle:var(--oc-gray-6);--overlay-accent:var(--oc-blue-6);--overlay-accent-hover:var(--oc-blue-7);--overlay-accent-soft:var(--oc-blue-0);--overlay-accent-border:var(--oc-blue-2);--overlay-accent-text:var(--oc-blue-9);--overlay-thought-soft:var(--oc-grape-0);--overlay-thought-border:var(--oc-grape-2);--overlay-thought-text:var(--oc-grape-9);--overlay-success-soft:var(--oc-green-0);--overlay-success-border:var(--oc-green-2);--overlay-success-text:var(--oc-green-9);--overlay-warning-soft:var(--oc-yellow-0);--overlay-warning-border:var(--oc-yellow-2);--overlay-warning-text:var(--oc-yellow-9);--overlay-danger-soft:var(--oc-red-0);--overlay-danger-border:var(--oc-red-2);--overlay-danger-text:var(--oc-red-9);--overlay-button-highlight:#ffffffb3;--overlay-button-shadow:#00000017;--overlay-button-hover:var(--overlay-background);--overlay-button-primary:#286fb4;--overlay-button-primary-hover:#307bbf;color:var(--overlay-text);font:14px/1.45 var(--overlay-font-body);-webkit-user-select:text;user-select:text}.surface{--managed-dev-bottom-offset:0px;--managed-dev-right-offset:0px}.indicatorButton{appearance:none;bottom:calc(10px + env(safe-area-inset-bottom,0px) + var(--managed-dev-bottom-offset));cursor:pointer;pointer-events:auto;height:44px;right:calc(10px + env(safe-area-inset-right,0px) + var(--managed-dev-right-offset));background:0 0;border:0;justify-content:center;align-items:center;width:44px;padding:0;display:flex;position:fixed}.indicatorButton:focus-visible{outline:3px solid var(--overlay-accent-border);outline-offset:-3px}.indicatorDot{background:var(--managed-dev-indicator-color);box-shadow:inset 0 0 0 .5px color-mix(in srgb, var(--overlay-border) 30%, transparent);height:var(--managed-dev-indicator-size);width:var(--managed-dev-indicator-size);border-radius:50%;display:block;position:relative}.dialog{background:var(--overlay-background);border:1px solid var(--overlay-border);box-shadow:0 8px 28px color-mix(in srgb, var(--oc-gray-9) 18%, transparent);color:var(--overlay-text);box-sizing:border-box;height:auto;bottom:20px;left:unset;overscroll-behavior:contain;pointer-events:auto;border-radius:12px;width:min(520px,100vw - 40px);max-width:min(520px,100vw - 40px);max-height:calc(100dvh - 40px);margin:0;padding:16px 18px;position:fixed;right:20px;overflow:hidden}.dialog[open]{flex-direction:column;gap:12px;display:flex}.drawerBody{align-content:start;gap:16px;min-width:0;min-height:0;display:grid;overflow:auto}.header{justify-content:space-between;align-items:center;gap:12px;display:flex}.copyFooter{flex:none;align-items:center;gap:8px;display:flex}.copyButton,.copyButton:hover{border-radius:50%}.headerActions{align-items:center;display:flex}.developmentControlsDropdown{display:flex;position:relative}.title{align-items:center;gap:8px;margin:0;font-size:16px;font-weight:600;display:flex}.titleIcon{color:var(--overlay-text-muted);flex:none}.iconButton{color:inherit;cursor:pointer;background:0 0;border:0;flex:none;justify-content:center;align-items:center;min-width:32px;min-height:32px;padding:4px;display:inline-flex}.iconButton:hover{background:var(--overlay-surface-muted);border-radius:8px}.iconButton:focus-visible,.scenarioButton:focus-visible,.sectionLink:focus-visible,.button:focus-visible,.message:focus-visible{outline:3px solid var(--overlay-accent-border);outline-offset:2px}.content{gap:12px;display:grid}.section{background:var(--overlay-surface-subtle);border:1px solid var(--overlay-border);border-radius:12px;gap:12px;padding:14px;display:grid}.sectionHeading{justify-content:space-between;align-items:start;gap:12px;display:flex}.sectionTitle{margin:0;font-size:13px}.sectionDescription{color:var(--overlay-text-muted);margin:3px 0 0;font-size:12px}.sectionLink{color:var(--overlay-accent-text);cursor:pointer;font:inherit;background:0 0;border:0;padding:2px;font-size:12px}.debugFooter{background:var(--overlay-surface-subtle);border-top:1px solid var(--overlay-border);color:var(--overlay-text-muted);flex:none;margin:0 -18px -12px;padding:4px 18px;font-size:11px;line-height:1.3}.scenarioList{gap:7px;max-height:min(480px,100dvh - 210px);display:grid;overflow:auto}.scenarioButton{background:var(--overlay-surface-subtle);color:inherit;cursor:pointer;font:inherit;text-align:start;border:1px solid #0000;border-radius:6px;gap:3px;padding:10px;display:grid}.scenarioButton:hover{background:var(--overlay-accent-soft);border-color:var(--overlay-accent-border)}.scenarioLabel{font-weight:650}.scenarioDescription{color:var(--overlay-text-muted);font-size:12px}.paragraph{margin:0}.pendingCommits{background:var(--overlay-surface-subtle);border:1px solid var(--overlay-border);box-sizing:border-box;font:12px/1.5 var(--overlay-font-monospace);white-space:pre-wrap;border-radius:6px;max-height:190px;margin:0;padding:10px;overflow:auto}.codexOutput{background:var(--overlay-surface-subtle);border:1px solid var(--overlay-border);box-sizing:border-box;font:12px/1.5 var(--overlay-font-monospace);white-space:pre-wrap;word-break:break-word;border-radius:6px;max-height:280px;margin:0;padding:10px;overflow:auto}.codexWorking{color:var(--overlay-text-muted);align-items:center;gap:6px;font-size:12px;display:flex}.codexTranscript{gap:10px;max-height:360px;display:grid;overflow:auto}.codexMessage{border-bottom:1px solid var(--overlay-border);gap:5px;padding:8px 0;display:grid}.codexMessage:last-child{border-bottom:0}.codexMessageHeader{justify-content:space-between;align-items:baseline;gap:8px;display:flex}.codexMessageLabel{color:var(--overlay-text-muted);margin:0;font-size:11px;font-weight:650}.codexMessageAge{color:var(--overlay-text-subtle);white-space:nowrap;font-size:11px}.codexMessageText,.codexWaiting{font:13px/1.5 var(--overlay-font-body);white-space:pre-wrap;word-break:break-word;margin:0}.codexWaiting{color:var(--overlay-text-subtle)}.rebaseProgress{gap:8px;display:grid}.rebaseProgressLabel{color:var(--overlay-text-muted);justify-content:space-between;align-items:baseline;font-size:12px;display:flex}.rebaseProgressLabel strong{color:var(--overlay-text)}.rebaseProgressTrack{background:var(--overlay-surface-muted);border-radius:999px;height:6px;overflow:hidden}.rebaseProgressFill{background:var(--overlay-success-text);border-radius:inherit;height:100%;transition:width .18s;display:block}.codexHistorySummary{cursor:pointer;font-size:12px;font-weight:600}.codexHistoryList{gap:8px;padding-top:8px;display:grid}.files{gap:7px;max-height:190px;display:grid;overflow:auto}.checkbox{overflow-wrap:anywhere;align-items:start;gap:8px;display:flex}.checkbox input{accent-color:var(--overlay-accent)}.filePath{font-family:var(--overlay-font-monospace)}.message{background:var(--overlay-surface-subtle);border:1px solid var(--overlay-border-strong);box-sizing:border-box;color:var(--overlay-text);font-family:var(--overlay-font-monospace);resize:vertical;border-radius:6px;width:100%;min-height:92px;padding:10px}.codexSettings{justify-self:start}.codexSettingsPopover{z-index:2;box-sizing:border-box;background:var(--overlay-background);border:1px solid var(--overlay-border);border-radius:8px;gap:12px;width:220px;padding:12px;display:grid;position:fixed;box-shadow:0 4px 16px #0000002e}.codexSettingsPopover:before{content:"";z-index:-1;position:absolute;inset:-8px 0}.codexSettingsPopover>.sectionTitle{color:var(--overlay-text-muted);font-size:12px;font-weight:500}.modelToggle{background:var(--overlay-surface-subtle);border-radius:6px;gap:2px;padding:3px;display:flex}.modelToggle button{color:var(--overlay-text-muted);font:inherit;cursor:pointer;background:0 0;border:0;border-radius:4px;flex:1;padding:5px 8px;font-size:13px}.modelToggle button[aria-pressed=true]{background:var(--overlay-surface-muted);color:var(--overlay-text)}.modelToggle button:focus-visible,.effortControl input:focus-visible{outline:2px solid var(--overlay-accent);outline-offset:2px}.modelToggle button:disabled{cursor:default;opacity:.55}.effortControl{gap:4px;font-size:12px;display:grid}.effortControl>span{justify-content:space-between;display:flex}.effortControl input{appearance:none;cursor:pointer;background:0 0;width:100%;height:20px;margin:0}.effortControl input::-webkit-slider-runnable-track{background:linear-gradient(to right, var(--overlay-accent) var(--effort-progress), var(--overlay-border-strong) var(--effort-progress));border-radius:2px;height:4px}.effortControl input::-webkit-slider-thumb{appearance:none;background:var(--overlay-accent);border-radius:50%;width:12px;height:12px;margin-top:-4px}.effortControl input::-moz-range-track{background:var(--overlay-border-strong);border-radius:2px;height:4px}.effortControl input::-moz-range-progress{background:var(--overlay-accent);height:4px}.effortControl input::-moz-range-thumb{background:var(--overlay-accent);border:0;border-radius:50%;width:12px;height:12px}.effortControl input:disabled{cursor:default;opacity:.55}.effortEndpoints{color:var(--overlay-text-muted)}.actions{flex-wrap:wrap;justify-content:end;gap:8px;display:flex}.developmentControls{background:var(--overlay-background);border:1px solid var(--overlay-border);box-shadow:0 10px 30px color-mix(in srgb, var(--oc-gray-9) 18%, transparent);box-sizing:border-box;z-index:1;border-radius:6px;gap:4px;min-width:170px;max-width:calc(100vw - 32px);margin:0;padding:4px;display:grid;position:absolute;top:calc(100% + 6px);right:0}.recoveryBack{color:var(--overlay-text);cursor:pointer;font:inherit;background:0 0;border:0;border-radius:6px;align-items:center;gap:8px;padding:6px 0;display:flex}.recoveryBack:focus-visible{outline:2px solid var(--overlay-accent);outline-offset:2px}.recoveryTitle{margin:0;font-size:18px}.developmentControls .actions{justify-content:stretch;align-items:stretch;gap:0;width:100%;display:grid}.developmentControls .button{text-align:start;white-space:nowrap;justify-content:start;justify-self:stretch;width:100%;min-height:32px}.button{--button-fill:var(--overlay-surface-subtle);appearance:none;background:linear-gradient(#ffffff0a, #00000008), var(--button-fill);border:1px solid var(--overlay-border);box-shadow:inset 0 1px 0 var(--overlay-button-highlight), 0 1px 2px var(--overlay-button-shadow);box-sizing:border-box;color:inherit;cursor:pointer;font:inherit;border-radius:8px;justify-content:center;align-items:center;gap:6px;min-height:34px;padding:7px 14px;font-weight:600;transition:background-color .14s,border-color .14s,box-shadow .14s,transform .1s,opacity .14s;display:inline-flex}.button:hover:not(:disabled){--button-fill:var(--overlay-button-hover);border-color:var(--overlay-border-strong)}.button:active:not(:disabled){box-shadow:inset 0 1px 2px var(--overlay-button-shadow);transform:translateY(1px)}.button>svg:not(.buttonSpinner){opacity:.8}.primary{--button-fill:var(--overlay-button-primary);background-color:var(--button-fill);border-color:color-mix(in srgb, var(--button-fill), black 15%);box-shadow:inset 0 1px 0 #fff3, 0 1px 2px var(--overlay-button-shadow);color:var(--oc-white)}.primary:hover:not(:disabled){--button-fill:var(--overlay-button-primary-hover);border-color:color-mix(in srgb, var(--button-fill), black 15%)}.developmentControls .button{box-shadow:none;color:inherit;font-weight:inherit;background:0 0;border:0;transform:none}.developmentControls .button:hover:not(:disabled){background:var(--overlay-surface-muted)}.developmentControls .button:active:not(:disabled){box-shadow:none;transform:none}.button:disabled{cursor:default;opacity:.55}.buttonSpinner{animation:1.4s linear infinite button-spin}.iconOnly{box-sizing:border-box;flex:0 0 34px;width:34px;min-width:34px;height:34px;padding:7px}.warning{color:var(--overlay-warning-text);white-space:pre-wrap}.checkFailure{background:var(--overlay-danger-soft);border:1px solid var(--overlay-danger-border);color:var(--overlay-danger-text);border-radius:6px;gap:10px;padding:10px;display:grid}.checkCommand{font-family:var(--overlay-font-monospace);margin:0;font-weight:600}.checkGuidance{margin:3px 0 0;font-size:12px}.setupFailure{background:var(--overlay-danger-soft);border:1px solid var(--overlay-danger-border);color:var(--overlay-danger-text);border-radius:6px;gap:10px;padding:10px;display:grid}.actionError{background:var(--overlay-warning-soft);border:1px solid var(--overlay-warning-border);color:var(--overlay-warning-text);white-space:pre-wrap;border-radius:6px;gap:10px;padding:10px;display:grid}.errorMessage{grid-template-columns:auto 1fr;align-items:start;gap:8px;display:grid}.actionSuccess{background:var(--overlay-surface-subtle);border:1px solid var(--overlay-border);color:var(--overlay-success-text);border-radius:6px;grid-template-columns:auto 1fr;align-items:start;gap:8px;padding:10px;display:grid}.errorIcon,.successIcon{margin-top:1px}@media (prefers-color-scheme:dark){[data-isolet-root]{--overlay-background:var(--oc-gray-9);--overlay-button-highlight:#ffffff1a;--overlay-button-shadow:#00000040;--overlay-button-hover:color-mix(in srgb, var(--overlay-surface-subtle), white 5%);--overlay-button-primary:#306fae;--overlay-button-primary-hover:#397dbb;--overlay-surface-subtle:var(--oc-gray-8);--overlay-surface-muted:var(--oc-gray-7);--overlay-border:var(--oc-gray-7);--overlay-border-strong:var(--oc-gray-6);--overlay-text:var(--oc-gray-0);--overlay-text-muted:var(--oc-gray-4);--overlay-text-subtle:var(--oc-gray-5);--overlay-accent:var(--oc-blue-6);--overlay-accent-hover:var(--oc-blue-7);--overlay-accent-soft:color-mix(in srgb, var(--oc-blue-9) 32%, var(--overlay-background));--overlay-accent-border:var(--oc-blue-7);--overlay-accent-text:var(--oc-blue-2);--overlay-thought-soft:color-mix(in srgb, var(--oc-grape-9) 30%, var(--overlay-background));--overlay-thought-border:var(--oc-grape-7);--overlay-thought-text:var(--oc-grape-2);--overlay-success-soft:color-mix(in srgb, var(--oc-green-9) 30%, var(--overlay-background));--overlay-success-border:var(--oc-green-7);--overlay-success-text:var(--oc-green-2);--overlay-warning-soft:color-mix(in srgb, var(--oc-yellow-9) 24%, var(--overlay-background));--overlay-warning-border:var(--oc-yellow-7);--overlay-warning-text:var(--oc-yellow-2);--overlay-danger-soft:color-mix(in srgb, var(--oc-red-9) 30%, var(--overlay-background));--overlay-danger-border:var(--oc-red-7);--overlay-danger-text:var(--oc-red-2)}}@keyframes button-spin{to{transform:rotate(1turn)}}@media (prefers-reduced-motion:reduce){.button{transition:none}.button:active:not(:disabled){transform:none}.buttonSpinner{animation:none}}@media (width<=600px){.dialog{max-width:none;max-height:100dvh;padding:calc(16px + env(safe-area-inset-top,0px)) calc(16px + env(safe-area-inset-right,0px)) calc(16px + env(safe-area-inset-bottom,0px)) calc(16px + env(safe-area-inset-left,0px));border-radius:0;width:auto;inset:0}.debugFooter{margin:0 calc(-16px - env(safe-area-inset-right,0px)) calc(-16px - env(safe-area-inset-bottom,0px)) calc(-16px - env(safe-area-inset-left,0px));padding:4px calc(16px + env(safe-area-inset-right,0px)) calc(4px + env(safe-area-inset-bottom,0px)) calc(16px + env(safe-area-inset-left,0px))}.button{min-height:44px}.checkbox{align-items:center;min-height:44px}.iconButton{min-width:44px;min-height:44px}.iconOnly{flex-basis:44px;width:44px;min-width:44px;height:44px}}.buttonContainer{min-width:0;display:inline-flex}.buttonContainer:focus-visible{outline:2px solid var(--overlay-accent);outline-offset:2px;border-radius:8px}.button:disabled{pointer-events:none}.developmentControls .buttonContainer{width:100%;display:flex}.disabledTooltip{z-index:2147483647;border:1px solid var(--overlay-border);background:var(--overlay-surface-subtle);max-width:min(280px,100vw - 24px);color:var(--overlay-text-muted);pointer-events:none;border-radius:6px;padding:6px 8px;font-size:11px;font-weight:400;line-height:1.4;position:fixed;transform:translateY(-100%)}.srOnly{clip-path:inset(50%);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.activityList{gap:8px;min-width:0;display:grid}.activityRow{border-bottom:1px solid var(--overlay-border);min-width:0;margin:0;padding:10px 0}.activitySummary{cursor:pointer;overflow-wrap:anywhere;grid-template-columns:14px minmax(0,1fr) auto;align-items:center;gap:8px;font-size:13px;list-style:none;display:grid}.activitySummary::-webkit-details-marker{display:none}.activityDisclosure{color:var(--overlay-text-subtle)}.activityRow[open]>summary .activityDisclosure{transform:rotate(90deg)}.activityState{vertical-align:middle;color:var(--overlay-text-muted);display:inline-flex}.activityState[data-status=succeeded]{color:var(--overlay-success-text)}.activityState[data-status=failed]{color:var(--overlay-danger-text)}.activityStatus{color:var(--overlay-text-muted);font-variant-numeric:tabular-nums;white-space:nowrap;align-items:center;gap:6px;font-size:12px;display:inline-flex}.activityCommand{font-family:var(--overlay-font-monospace);white-space:pre-wrap;overflow-wrap:anywhere;margin-top:8px;font-size:12px;display:block}.activityMeta{color:var(--overlay-text-muted);margin-block:8px;font-size:12px}.activityOutput{white-space:pre-wrap;overflow-wrap:anywhere;max-height:200px;font-size:12px;overflow:auto}.content,.codexTranscript,.codexMessage,.checkMessage,.setupFailure,.actionError{overflow-wrap:anywhere;min-width:0}.pendingCommits,.codexOutput,.activityOutput{overflow-wrap:anywhere;tab-size:2}.codexOptionSelect:focus-visible,.checkbox input:focus-visible,.codexHistorySummary:focus-visible,.activitySummary:focus-visible{outline:2px solid var(--overlay-accent);outline-offset:2px}.activityRow:last-child{border-bottom:0}@media (prefers-reduced-motion:reduce){.rebaseProgressFill,.button{transition:none}}.notificationActions{flex-wrap:nowrap;justify-content:flex-start;align-items:center;gap:8px;padding:3px;display:flex;overflow-x:auto}.notificationActions:empty{display:none}.notificationActions>*{flex-shrink:0}.notificationActions>:first-child{margin-inline-start:auto}.notificationActions>.codexSettings{order:-1;margin-inline:0}.notificationActions>.copyFooter{order:-2;margin-inline:0 auto}.notificationActions .button{white-space:nowrap}.changeList{box-sizing:border-box;border-block:1px solid var(--overlay-border);gap:14px;min-height:0;max-height:min(240px,35dvh);padding-block:10px;display:grid;overflow:auto}.fileGroup{gap:8px;min-width:0;display:grid}.trackedFile{overflow-wrap:anywhere;align-items:baseline;gap:8px;display:flex}.fileStatus{font:600 12px/1.5 var(--overlay-font-monospace);text-align:center;flex:0 0 1.5em}.fileStatus[data-tone=added]{color:var(--overlay-success-text)}.fileStatus[data-tone=modified]{color:var(--overlay-warning-text)}.fileStatus[data-tone=deleted]{color:var(--overlay-danger-text)}.fileStatus[data-tone=renamed]{color:var(--overlay-accent-text)}.changeList .filePath{overflow-wrap:anywhere;min-width:0}.changeList:focus-visible{outline:2px solid var(--overlay-accent);outline-offset:2px}.completionReceipt{gap:16px;display:grid}.completionNote{color:var(--overlay-text-muted);margin:3px 0 0;font-size:13px}.completionDetails{font-size:13px}.completionDetailBody{border-top:1px solid var(--overlay-border);gap:14px;max-height:min(360px,50dvh);margin-top:12px;padding-top:12px;display:grid;overflow:auto}.completionMetadata{color:var(--overlay-text-muted);justify-content:space-between;gap:16px;font-size:12px;display:flex}.completionMetadata>:last-child{white-space:nowrap}.completionSteps{border-collapse:collapse;width:100%;font-size:13px}.completionSteps td{vertical-align:baseline;padding:5px 0}.completionSteps td:first-child{width:22px;color:var(--overlay-text-muted)}.completionSteps td:last-child{text-align:right;color:var(--overlay-text-muted);white-space:nowrap;font-size:12px}@media (width<=600px){.dialog.completionDialog{top:auto;left:8px;right:8px;bottom:calc(8px + env(safe-area-inset-bottom,0px));border-radius:12px;max-height:calc(100dvh - 16px)}}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@coreframe/vite",
|
|
3
|
-
"version": "0.3.0
|
|
3
|
+
"version": "0.3.0",
|
|
4
4
|
"description": "Vite plugins and build integrations for Coreframe apps",
|
|
5
5
|
"repository": {
|
|
6
6
|
"type": "git",
|
|
@@ -32,14 +32,6 @@
|
|
|
32
32
|
"types": "./dist/plugins/routes.d.ts",
|
|
33
33
|
"default": "./dist/plugins/routes.js"
|
|
34
34
|
},
|
|
35
|
-
"./native": {
|
|
36
|
-
"types": "./dist/plugins/native.d.ts",
|
|
37
|
-
"default": "./dist/plugins/native.js"
|
|
38
|
-
},
|
|
39
|
-
"./flutter-devtools": {
|
|
40
|
-
"types": "./dist/browser/flutter-devtools.d.ts",
|
|
41
|
-
"default": "./dist/browser/flutter-devtools.js"
|
|
42
|
-
},
|
|
43
35
|
"./*": {
|
|
44
36
|
"types": "./dist/plugins/*.d.ts",
|
|
45
37
|
"default": "./dist/plugins/*.js"
|
|
@@ -57,28 +49,33 @@
|
|
|
57
49
|
"obug": "^2.1.3",
|
|
58
50
|
"unplugin": "^2.3.11",
|
|
59
51
|
"vite-plugin-hashed-favicons": "^2.1.1",
|
|
60
|
-
"@coreframe/assets": "^0.1.
|
|
61
|
-
"@coreframe/config": "^0.
|
|
62
|
-
"@coreframe/
|
|
63
|
-
"@coreframe/dev": "^0.
|
|
64
|
-
"@coreframe/
|
|
65
|
-
"@coreframe/
|
|
66
|
-
"@coreframe/flutter-tools": "^0.1.25-next.4",
|
|
67
|
-
"@coreframe/lib": "^0.2.16-next.3"
|
|
52
|
+
"@coreframe/assets": "^0.1.23",
|
|
53
|
+
"@coreframe/config": "^0.2.0",
|
|
54
|
+
"@coreframe/dev": "^0.2.0",
|
|
55
|
+
"@coreframe/dev-contracts": "^0.2.0",
|
|
56
|
+
"@coreframe/lib": "^0.3.0",
|
|
57
|
+
"@coreframe/dashboard": "^0.3.33"
|
|
68
58
|
},
|
|
69
59
|
"devDependencies": {
|
|
60
|
+
"@pandacss/dev": "2.4.0",
|
|
61
|
+
"@pandacss/preset-base": "2.4.0",
|
|
62
|
+
"@pandacss/preset-panda": "2.4.0",
|
|
63
|
+
"@playwright/test": "^1.64.1",
|
|
64
|
+
"@tabler/icons-react": "^3.50.0",
|
|
70
65
|
"@tsdown/css": "0.22.3",
|
|
71
66
|
"@types/node": "^26.1.0",
|
|
72
67
|
"@types/react": "19.2.18",
|
|
73
68
|
"@types/react-dom": "19.2.4",
|
|
74
69
|
"isolet-js": "0.0.7",
|
|
75
70
|
"react": "19.2.8",
|
|
71
|
+
"react-aria-components": "^1.22.1",
|
|
76
72
|
"react-dom": "19.2.8",
|
|
73
|
+
"react-json-view-lite": "^2.5.0",
|
|
77
74
|
"state-launcher": "^0.3.0",
|
|
78
75
|
"tsdown": "0.22.3",
|
|
79
76
|
"typescript": "6.0.3",
|
|
80
77
|
"unplugin-icons": "^23.0.1",
|
|
81
|
-
"vite": "^8.
|
|
78
|
+
"vite": "^8.3.5",
|
|
82
79
|
"vitest": "^4.1.9"
|
|
83
80
|
},
|
|
84
81
|
"peerDependencies": {
|
|
@@ -97,6 +94,7 @@
|
|
|
97
94
|
"test": "vitest run --reporter=minimal",
|
|
98
95
|
"typecheck": "tsc --noEmit -p tsconfig.json",
|
|
99
96
|
"format": "oxlint --fix && oxfmt",
|
|
100
|
-
"lint": "oxlint"
|
|
97
|
+
"lint": "oxlint",
|
|
98
|
+
"test:browser": "playwright test --config browser-tests/playwright.config.ts"
|
|
101
99
|
}
|
|
102
100
|
}
|
|
@@ -1,17 +0,0 @@
|
|
|
1
|
-
//#region browser/flutter-devtools.d.ts
|
|
2
|
-
type FlutterDevToolsHotContext = {
|
|
3
|
-
off(event: string, listener: (data: unknown) => void): void;
|
|
4
|
-
on<T>(event: string, listener: (data: T) => void): void;
|
|
5
|
-
send(event: string, data?: unknown): void;
|
|
6
|
-
};
|
|
7
|
-
type FlutterDevToolsAuth = Readonly<{
|
|
8
|
-
getIsSignedIn(): boolean;
|
|
9
|
-
onSignIn(): void | Promise<void>;
|
|
10
|
-
onSignOut(): void | Promise<void>;
|
|
11
|
-
}>;
|
|
12
|
-
/** Registers the app-owned authentication callbacks used by the native launcher. */
|
|
13
|
-
declare function registerFlutterDevToolsAuth(auth: FlutterDevToolsAuth): () => void;
|
|
14
|
-
/** Publishes the page-owned state-launcher registry through Vite to its Flutter host. */
|
|
15
|
-
declare function installFlutterDevTools(hot?: FlutterDevToolsHotContext | undefined): () => void;
|
|
16
|
-
//#endregion
|
|
17
|
-
export { FlutterDevToolsAuth, installFlutterDevTools, registerFlutterDevToolsAuth };
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{flutterDevToolsEvents as e,flutterDevToolsProtocolVersion as t}from"@coreframe/dev-contracts/flutter-devtools";import{createDevToolsClient as n}from"@coreframe/flutter-js/devtools";import{clearActiveState as r,getStateLauncherSnapshot as i,launchStateLauncherCommand as a,subscribeStateLauncher as o}from"state-launcher/headless";let s,c,l,u;function d(e){let t={auth:e,token:{}};return c=t,h(),()=>{c?.token===t.token&&(c=void 0,h())}}function f(t=y()){let r,i=()=>h();r=n({features:[`state-launcher`],onReady:(e,n)=>{u=n,m(t,n),i()}}),s=r,l=t,t&&t.on(e.stateLauncherRequest,c);let a=o(i);return()=>{let n=s===r?u:void 0;n&&t&&t.send(e.pageDisconnect,n),a(),t&&t.off(e.stateLauncherRequest,c),s===r&&(s=void 0,l=void 0,u=void 0),r.dispose()};function c(e){let n=u;!n||!_(n,e)||Promise.resolve().then(()=>p(e.request)).then(()=>g(t,n,e.request.requestId,`completed`),()=>g(t,n,e.request.requestId,`error`))}}async function p(e){if(e.action===`clear`){await r();return}if(e.action===`auth`){let t=c?.auth;if(!t)throw Error(`State launcher authentication is not configured.`);e.authAction===`signIn`?t.getIsSignedIn()||await t.onSignIn():t.getIsSignedIn()&&await t.onSignOut(),h();return}await a(e.id)}function m(n,r){n?.send(e.pageConnect,{...r,protocolVersion:t})}function h(){let t=l,n=u;if(!t||!n)return;let r=c?.auth,a=r?{isSignedIn:r.getIsSignedIn()}:null;t.send(e.stateLauncherState,{...v(n),state:{auth:a,snapshot:i()}})}function g(t,n,r,i){t?.send(e.stateLauncherResult,{...v(n),result:i===`completed`?{requestId:r,status:i}:{error:{code:`command-failed`,message:`The state launcher command failed.`},requestId:r,status:i}})}function _(e,t){return e.rootWebRuntimeId===t.rootWebRuntimeId&&e.shellSessionId===t.shellSessionId}function v(e){return{rootWebRuntimeId:e.rootWebRuntimeId,shellSessionId:e.shellSessionId}}function y(){return import.meta.hot}export{f as installFlutterDevTools,d as registerFlutterDevToolsAuth};
|
|
@@ -1,13 +0,0 @@
|
|
|
1
|
-
import { Plugin } from "vite";
|
|
2
|
-
|
|
3
|
-
//#region plugins/flutter-devtools.d.ts
|
|
4
|
-
/** Inputs that control the Flutter development-tools broker. */
|
|
5
|
-
type CoreframeFlutterDevToolsPluginOptions = {
|
|
6
|
-
env?: NodeJS.ProcessEnv;
|
|
7
|
-
};
|
|
8
|
-
/** Pairs a Flutter shell and its page while keeping the native Vite connection independent. */
|
|
9
|
-
declare function coreframeFlutterDevToolsPlugin({
|
|
10
|
-
env
|
|
11
|
-
}?: CoreframeFlutterDevToolsPluginOptions): Plugin;
|
|
12
|
-
//#endregion
|
|
13
|
-
export { CoreframeFlutterDevToolsPluginOptions, coreframeFlutterDevToolsPlugin };
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{managedDevEnv as e}from"@coreframe/dev-contracts/managed-dev";import{flutterDevToolsEvents as t,flutterDevToolsProtocolVersion as n}from"@coreframe/dev-contracts/flutter-devtools";function r({env:r=process.env}={}){return{name:`coreframe:flutter-devtools`,apply:`serve`,configureServer(d){let p=new Map,m=new WeakMap,h=new Map,g=new WeakMap,_={managedDev:r[e]===`1`,protocolVersion:n},v=(e,n)=>{if(!i(e))return;D(n);let r=p.get(e.shellSessionId)??new Set;r.add(n),p.set(e.shellSessionId,r),m.set(n,e.shellSessionId),n.send(t.ready,_),T(e.shellSessionId,n)},y=(e,t)=>{let n=a(e);if(!n)return;O(t);let r=h.get(n.shellSessionId);r&&r.client!==t&&g.delete(r.client),h.set(n.shellSessionId,{client:t,identity:n}),g.set(t,n.shellSessionId),T(n.shellSessionId)},b=(e,t)=>{let n=o(e);!n||!k(t,n)||O(t)},x=(e,n)=>{let r=s(e);if(!r||!f(e)||!(`state`in e)||!A(n,r))return;let i=h.get(r.shellSessionId);i.state=e.state,E(r.shellSessionId,t.stateLauncherState,{...r,state:e.state})},S=(e,n)=>{let r=s(e);if(!r||!f(e)||!(`request`in e)||m.get(n)!==r.shellSessionId)return;let i=h.get(r.shellSessionId);if(!i||!u(i.identity,r)){n.send(t.stateLauncherConnection,{connected:!1});return}i.client.send(t.stateLauncherRequest,{...r,request:e.request})},C=(e,n)=>{let r=s(e);!r||!f(e)||!(`result`in e)||!A(n,r)||E(r.shellSessionId,t.stateLauncherResult,{...r,result:e.result})},w=(e,t)=>{D(t),O(t)};function T(e,n){let r=h.get(e),i=r?{connected:!0,identity:c(r.identity)}:{connected:!1};if(n){n.send(t.stateLauncherConnection,i),r?.state!==void 0&&n.send(t.stateLauncherState,{...c(r.identity),state:r.state});return}E(e,t.stateLauncherConnection,i),r?.state!==void 0&&E(e,t.stateLauncherState,{...c(r.identity),state:r.state})}function E(e,t,n){for(let r of p.get(e)??[])r.send(t,n)}function D(e){let t=m.get(e);if(!t)return;m.delete(e);let n=p.get(t);n?.delete(e),n?.size===0&&p.delete(t)}function O(e){let t=g.get(e);t&&(g.delete(e),h.get(t)?.client===e&&(h.delete(t),T(t)))}function k(e,t){let n=h.get(t.shellSessionId);return n?.client===e&&l(n.identity,t)}function A(e,t){let n=h.get(t.shellSessionId);return n?.client===e&&u(n.identity,t)}d.ws.on(t.nativeConnect,v),d.ws.on(t.pageConnect,y),d.ws.on(t.pageDisconnect,b),d.ws.on(t.stateLauncherRequest,S),d.ws.on(t.stateLauncherResult,C),d.ws.on(t.stateLauncherState,x),d.ws.on(`vite:client:disconnect`,w),d.httpServer?.once(`close`,()=>{d.ws.off(t.nativeConnect,v),d.ws.off(t.pageConnect,y),d.ws.off(t.pageDisconnect,b),d.ws.off(t.stateLauncherRequest,S),d.ws.off(t.stateLauncherResult,C),d.ws.off(t.stateLauncherState,x),d.ws.off(`vite:client:disconnect`,w)})}}}function i(e){return f(e)&&d(e,[`protocolVersion`,`shellSessionId`])&&e.protocolVersion===n&&p(e.shellSessionId)}function a(e){if(!(!f(e)||!d(e,[`applicationScopeId`,`protocolVersion`,`rootWebRuntimeId`,`shellSessionId`])||e.protocolVersion!==n))return o(e)}function o(e){if(!f(e))return;let t=e.applicationScopeId,n=s(e);if(!(!p(t)||n===void 0))return{applicationScopeId:t,...n}}function s(e){if(!f(e)||`applicationScopeId`in e&&!p(e.applicationScopeId))return;let t=e.rootWebRuntimeId,n=e.shellSessionId;if(!(!p(t)||!p(n)))return{rootWebRuntimeId:t,shellSessionId:n}}function c(e){return{rootWebRuntimeId:e.rootWebRuntimeId,shellSessionId:e.shellSessionId}}function l(e,t){return e.applicationScopeId===t.applicationScopeId&&e.rootWebRuntimeId===t.rootWebRuntimeId&&e.shellSessionId===t.shellSessionId}function u(e,t){return e.rootWebRuntimeId===t.rootWebRuntimeId&&e.shellSessionId===t.shellSessionId}function d(e,t){return Object.keys(e).length===t.length&&t.every(t=>t in e)}function f(e){return typeof e==`object`&&!!e&&!Array.isArray(e)}function p(e){return typeof e==`string`&&e.length>0&&e.length<=256}export{r as coreframeFlutterDevToolsPlugin};
|
package/dist/plugins/native.d.ts
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export * from "@coreframe/flutter-tools";
|
package/dist/plugins/native.js
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export*from"@coreframe/flutter-tools";export{};
|