@lamplitisles/codex-for-love 0.1.1 → 0.1.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +8 -3
- package/bin/codex-for-love.mjs +7 -3
- package/package.json +3 -2
- package/vendor/IMPORTS.md +12 -6
- package/vendor/build/_app/immutable/chunks/{BMiSuNVz.js → Dlyr8WaG.js} +1 -1
- package/vendor/build/_app/immutable/entry/{app.DBkGh5I7.js → app.BTQVdz-J.js} +2 -2
- package/vendor/build/_app/immutable/entry/start.IbYtEdtO.js +1 -0
- package/vendor/build/_app/immutable/nodes/{1.BNCm5L6_.js → 1.DU7XW1yU.js} +1 -1
- package/vendor/build/_app/version.json +1 -1
- package/vendor/build/index.html +6 -6
- package/vendor/config.example.toml +1 -0
- package/vendor/ecosystem-mcp.example.toml +25 -0
- package/vendor/runtime/cli.mjs +38 -82
- package/vendor/build/_app/immutable/entry/start.5Dogon7_.js +0 -1
package/README.md
CHANGED
|
@@ -1,5 +1,10 @@
|
|
|
1
1
|
# Codex for Love
|
|
2
2
|
|
|
3
|
-
This is the Linux x64 standalone app-server runtime.
|
|
4
|
-
|
|
5
|
-
selects and verifies its
|
|
3
|
+
This is the Linux x64 and macOS ARM64 standalone app-server runtime. npm
|
|
4
|
+
installs the matching pinned platform package automatically; the launcher
|
|
5
|
+
selects and verifies its app-server and code-mode host before startup.
|
|
6
|
+
|
|
7
|
+
The installed `vendor/ecosystem-mcp.example.toml` is an optional, static
|
|
8
|
+
example for adding FlickNote and Guion Web after CFL has created its minimal
|
|
9
|
+
workspace configuration. The bundled Companion MCP is the only required
|
|
10
|
+
integration.
|
package/bin/codex-for-love.mjs
CHANGED
|
@@ -5,13 +5,17 @@ import { createRequire } from 'node:module';
|
|
|
5
5
|
import { dirname, join } from 'node:path';
|
|
6
6
|
import { fileURLToPath } from 'node:url';
|
|
7
7
|
|
|
8
|
-
|
|
9
|
-
|
|
8
|
+
const nativePackages = {
|
|
9
|
+
'linux-x64': '@lamplitisles/codex-for-love-linux-x64',
|
|
10
|
+
'darwin-arm64': '@lamplitisles/codex-for-love-darwin-arm64',
|
|
11
|
+
};
|
|
12
|
+
const nativePackage = nativePackages[`${process.platform}-${process.arch}`];
|
|
13
|
+
if (!nativePackage) {
|
|
14
|
+
throw new Error(`Unsupported platform ${process.platform}-${process.arch}; CFL supports Linux x64 and macOS ARM64.`);
|
|
10
15
|
}
|
|
11
16
|
|
|
12
17
|
const require = createRequire(import.meta.url);
|
|
13
18
|
const packageRoot = dirname(dirname(fileURLToPath(import.meta.url)));
|
|
14
|
-
const nativePackage = '@lamplitisles/codex-for-love-linux-x64';
|
|
15
19
|
const nativeVersion = JSON.parse(readFileSync(join(packageRoot, 'package.json'), 'utf8')).optionalDependencies?.[nativePackage];
|
|
16
20
|
if (typeof nativeVersion !== 'string') {
|
|
17
21
|
throw new Error(`Missing exact optional dependency declaration for ${nativePackage}.`);
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@lamplitisles/codex-for-love",
|
|
3
|
-
"version": "0.1.
|
|
3
|
+
"version": "0.1.2",
|
|
4
4
|
"description": "Codex for Love standalone app-server runtime",
|
|
5
5
|
"license": "Apache-2.0",
|
|
6
6
|
"type": "module",
|
|
@@ -15,7 +15,8 @@
|
|
|
15
15
|
"README.md"
|
|
16
16
|
],
|
|
17
17
|
"optionalDependencies": {
|
|
18
|
-
"@lamplitisles/codex-for-love-linux-x64": "0.1.0-beta.0"
|
|
18
|
+
"@lamplitisles/codex-for-love-linux-x64": "0.1.0-beta.0",
|
|
19
|
+
"@lamplitisles/codex-for-love-darwin-arm64": "0.1.0-beta.0"
|
|
19
20
|
},
|
|
20
21
|
"engines": {
|
|
21
22
|
"node": ">=24"
|
package/vendor/IMPORTS.md
CHANGED
|
@@ -103,12 +103,9 @@ license copies are retained in
|
|
|
103
103
|
[`licenses/jaminzhou-codex-app-server-client-MIT.txt`](../licenses/jaminzhou-codex-app-server-client-MIT.txt)
|
|
104
104
|
and [`licenses/openai-codex-generated-Apache-2.0.txt`](../licenses/openai-codex-generated-Apache-2.0.txt).
|
|
105
105
|
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
overlay disables the known unselected `og`, `skill` and
|
|
110
|
-
`openaiDeveloperDocs` entries without changing the operator's global Codex
|
|
111
|
-
configuration.
|
|
106
|
+
CFL configures only its bundled Companion MCP and SessionStart hook. FlickNote
|
|
107
|
+
and Web are optional operator-provided MCPs documented in a static template;
|
|
108
|
+
CFL does not inject, disable, or require any external MCP configuration.
|
|
112
109
|
|
|
113
110
|
## Notices
|
|
114
111
|
|
|
@@ -136,6 +133,15 @@ distribution artifact and preserves its native `provenance.json`, license and
|
|
|
136
133
|
notice. Later CFL main releases continue to pin that exact native version until
|
|
137
134
|
an explicitly reviewed binary update publishes a replacement.
|
|
138
135
|
|
|
136
|
+
The macOS ARM64 package
|
|
137
|
+
`@lamplitisles/codex-for-love-darwin-arm64@0.1.0-beta.0` contains the app-server
|
|
138
|
+
built from fork revision `c1139f7b2793e94c14243689d756b09c0186708d` and the
|
|
139
|
+
official Codex 0.154.0 ARM64 code-mode host. That revision has an identical
|
|
140
|
+
`codex-rs` tree to the Linux build source. The executable hashes and local
|
|
141
|
+
assembly identity are pinned in `release/codex-artifact-darwin-arm64.json`;
|
|
142
|
+
the identity is not a claim that a fork GitHub Release was published. The
|
|
143
|
+
package retains the same Codex Apache-2.0 license and upstream notice.
|
|
144
|
+
|
|
139
145
|
## npm publication workflow
|
|
140
146
|
|
|
141
147
|
`.github/workflows/publish.yml` and the narrow `scripts/release-*.mjs` helpers
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{H as e,U as t,V as n,ft as r,i,n as a,ot as o,st as s}from"./eSlNf1Mv.js";var c=class{constructor(e,t){this.status=e,this.body=typeof t==`string`?{message:t}:t||{message:`Error: ${e}`}}toString(){return JSON.stringify(this.body)}},l=class{constructor(e,t){try{new Headers({location:t})}catch{throw Error(`Invalid redirect location ${JSON.stringify(t)}: this string contains characters that cannot be used in HTTP headers`)}this.status=e,this.location=t}},u=class extends Error{constructor(e,t,n){super(n),this.status=e,this.text=t}};new URL(`sveltekit-internal://`);function d(e,t){return e===`/`||t===`ignore`?e:t===`never`?e.endsWith(`/`)?e.slice(0,-1):e:t===`always`&&!e.endsWith(`/`)?e+`/`:e}function f(e){return e.split(`%25`).map(decodeURI).join(`%25`)}function p(e){for(let t in e)e[t]=decodeURIComponent(e[t]);return e}function m({href:e}){return e.split(`#`)[0]}function h(){}function g(...e){let t=5381;for(let n of e)if(typeof n==`string`){let e=n.length;for(;e;)t=t*33^n.charCodeAt(--e)}else if(ArrayBuffer.isView(n)){let e=new Uint8Array(n.buffer,n.byteOffset,n.byteLength),r=e.length;for(;r;)t=t*33^e[--r]}else throw TypeError(`value must be a string or TypedArray`);return(t>>>0).toString(36)}new TextEncoder;function _(e){let t=atob(e),n=new Uint8Array(t.length);for(let e=0;e<t.length;e++)n[e]=t.charCodeAt(e);return n}var v=window.fetch;window.fetch=(e,t)=>((e instanceof Request?e.method:t?.method||`GET`)!==`GET`&&y.delete(x(e)),v(e,t));var y=new Map;function ee(e,t){let n=x(e,t),r=document.querySelector(n);if(r?.textContent){r.remove();let{body:e,...t}=JSON.parse(r.textContent);r.getAttribute(`data-b64`)!==null&&(e=_(e));let i=r.getAttribute(`data-ttl`);return i&&y.set(n,{body:e,init:t,ttl:1e3*Number(i)}),Promise.resolve(new Response(e,t))}return window.fetch(e,t)}function b(e,t,n){if(y.size>0){let t=x(e,n),r=y.get(t);if(r){if(performance.now()<r.ttl&&[`default`,`force-cache`,`only-if-cached`,void 0].includes(n?.cache))return new Response(r.body,r.init);y.delete(t)}}return window.fetch(t,n)}function x(e,t){let n=`script[data-sveltekit-fetched][data-url=${JSON.stringify(e instanceof Request?e.url:e)}]`;if(t?.headers||t?.body){let e=[];t.headers&&e.push([...new Headers(t.headers)].join(`,`)),t.body&&(typeof t.body==`string`||ArrayBuffer.isView(t.body))&&e.push(t.body),n+=`[data-hash="${g(...e)}"]`}return n}var te=/^(\[)?(\.\.\.)?(\w+)(?:=(\w+))?(\])?$/,ne=/^\/\((?:[^)]+)\)$/;function re(e){let t=[];return{pattern:e===`/`||ne.test(e)?/^\/$/:RegExp(`^${ae(e).map(e=>{let n=/^\[\.\.\.(\w+)(?:=(\w+))?\]$/.exec(e);if(n)return t.push({name:n[1],matcher:n[2],optional:!1,rest:!0,chained:!0}),`(?:/([^]*))?`;let r=/^\[\[(\w+)(?:=(\w+))?\]\]$/.exec(e);if(r)return t.push({name:r[1],matcher:r[2],optional:!0,rest:!1,chained:!0}),`(?:/([^/]+))?`;if(!e)return;let i=e.split(/\[(.+?)\](?!\])/);return`/`+i.map((e,n)=>{if(n%2){if(e.startsWith(`x+`))return se(String.fromCharCode(parseInt(e.slice(2),16)));if(e.startsWith(`u+`))return se(String.fromCharCode(...e.slice(2).split(`-`).map(e=>parseInt(e,16))));let[,r,a,o,s]=te.exec(e);return t.push({name:o,matcher:s,optional:!!r,rest:!!a,chained:a?n===1&&i[0]===``:!1}),a?`([^]*?)`:r?`([^/]*)?`:`([^/]+?)`}return se(e)}).join(``)}).join(``)}/?$`),params:t}}function ie(e){return e!==``&&!/^\([^)]+\)$/.test(e)}function ae(e){return e.slice(1).split(`/`).filter(ie)}function oe(e,t,n){let r={},i=e.slice(1),a=i.filter(e=>e!==void 0),o=0;for(let e=0;e<t.length;e+=1){let s=t[e],c=i[e-o];if(s.chained&&s.rest&&o&&(c=i.slice(e-o,e+1).filter(e=>e).join(`/`),o=0),c===void 0){if(s.rest)c=``;else continue}if(!s.matcher||n[s.matcher](c)){r[s.name]=c;let n=t[e+1],l=i[e+1];n&&!n.rest&&n.optional&&l&&s.chained&&(o=0),!n&&!l&&Object.keys(r).length===a.length&&(o=0);continue}if(s.optional&&s.chained){o++;continue}return}if(!o)return r}function se(e){return e.normalize().replace(/[[\]]/g,`\\$&`).replace(/%/g,`%25`).replace(/\//g,`%2[Ff]`).replace(/\?/g,`%3[Ff]`).replace(/#/g,`%23`).replace(/[.*+?^${}()|\\]/g,`\\$&`)}function ce({nodes:e,server_loads:t,dictionary:n,matchers:r}){let i=new Set(t);return Object.entries(n).map(([t,[n,i,s]])=>{let{pattern:c,params:l}=re(t),u={id:t,exec:e=>{let t=c.exec(e);if(t)return oe(t,l,r)},errors:[1,...s||[]].map(t=>e[t]),layouts:[0,...i||[]].map(o),leaf:a(n)};return u.errors.length=u.layouts.length=Math.max(u.errors.length,u.layouts.length),u});function a(t){let n=t<0;return n&&(t=~t),[n,e[t]]}function o(t){return t===void 0?t:[i.has(t),e[t]]}}function le(e,t=JSON.parse){try{return t(sessionStorage[e])}catch{}}function ue(e,t,n=JSON.stringify){let r=n(t);try{sessionStorage[e]=r}catch{}}var S=globalThis.__sveltekit_yry919?.base??``,de=globalThis.__sveltekit_yry919?.assets??S??``,fe=`1789466693520`,pe=`sveltekit:snapshot`,me=`sveltekit:scroll`,he=`sveltekit:states`,C=`sveltekit:history`,w=`sveltekit:navigation`,T={tap:1,hover:2,viewport:3,eager:4,off:-1,false:-1},ge=location.origin;function _e(e){if(e instanceof URL)return e;let t=document.baseURI;if(!t){let e=document.getElementsByTagName(`base`);t=e.length?e[0].href:document.URL}return new URL(e,t)}function E(){return{x:pageXOffset,y:pageYOffset}}function D(e,t){return e.getAttribute(`data-sveltekit-${t}`)}var ve={...T,"":T.hover};function ye(e){let t=e.assignedSlot??e.parentNode;return t?.nodeType===11&&(t=t.host),t}function be(e,t){for(;e&&e!==t;){if(e.nodeName.toUpperCase()===`A`&&e.hasAttribute(`href`))return e;e=ye(e)}}function xe(e,t,n){let r;try{if(r=new URL(e instanceof SVGAElement?e.href.baseVal:e.href,document.baseURI),n&&r.hash.match(/^#[^/]/)){let e=location.hash.split(`#`)[1]||`/`;r.hash=`#${e}${r.hash}`}}catch{}let i=e instanceof SVGAElement?e.target.baseVal:e.target,a=!r||!!i||k(r,t,n)||(e.getAttribute(`rel`)||``).split(/\s+/).includes(`external`),o=r?.origin===ge&&e.hasAttribute(`download`);return{url:r,external:a,target:i,download:o}}function O(e){let t=null,n=null,r=null,i=null,a=null,o=null,s=e;for(;s&&s!==document.documentElement;)r===null&&(r=D(s,`preload-code`)),i===null&&(i=D(s,`preload-data`)),t===null&&(t=D(s,`keepfocus`)),n===null&&(n=D(s,`noscroll`)),a===null&&(a=D(s,`reload`)),o===null&&(o=D(s,`replacestate`)),s=ye(s);function c(e){switch(e){case``:case`true`:return!0;case`off`:case`false`:return!1;default:return}}return{preload_code:ve[r??`off`],preload_data:ve[i??`off`],keepfocus:c(t),noscroll:c(n),reload:c(a),replace_state:c(o)}}function Se(e){let t=r(e),n=!0;function i(){n=!0,t.update(e=>e)}function a(e){n=!1,t.set(e)}function o(e){let r;return t.subscribe(t=>{(r===void 0||n&&t!==r)&&e(r=t)})}return{notify:i,set:a,subscribe:o}}var Ce={v:h};function we(){let{set:e,subscribe:t}=r(!1),n;async function i(){clearTimeout(n);try{let t=await fetch(`${de}/_app/version.json`,{headers:{pragma:`no-cache`,"cache-control":`no-cache`}});if(!t.ok)return!1;let r=(await t.json()).version!==fe;return r&&(e(!0),Ce.v(),clearTimeout(n)),r}catch{return!1}}return{subscribe:t,check:i}}function k(e,t,n){return e.origin!==ge||!e.pathname.startsWith(t)?!0:n?e.pathname!==location.pathname:!1}function Te(e){}var Ee=new Set([`load`,`prerender`,`csr`,`ssr`,`trailingSlash`,`config`]);[...Ee],[...new Set([...Ee])];function De(e){return e.filter(e=>e!=null)}function A(e,t){return e+`/`+t}function Oe(e){return e instanceof c||e instanceof u?e.status:500}function ke(e){return e instanceof u?e.text:`Internal Error`}var j,M,Ae,je=i.toString().includes(`$$`)||/function \w+\(\) \{\}/.test(i.toString()),Me=`a:`;je?(j={data:{},form:null,error:null,params:{},route:{id:null},state:{},status:-1,url:new URL(Me)},M={current:null},Ae={current:!1}):(j=new class{#e=s({});get data(){return n(this.#e)}set data(e){o(this.#e,e)}#t=s(null);get form(){return n(this.#t)}set form(e){o(this.#t,e)}#n=s(null);get error(){return n(this.#n)}set error(e){o(this.#n,e)}#r=s({});get params(){return n(this.#r)}set params(e){o(this.#r,e)}#i=s({id:null});get route(){return n(this.#i)}set route(e){o(this.#i,e)}#a=s({});get state(){return n(this.#a)}set state(e){o(this.#a,e)}#o=s(-1);get status(){return n(this.#o)}set status(e){o(this.#o,e)}#s=s(new URL(Me));get url(){return n(this.#s)}set url(e){o(this.#s,e)}},M=new class{#e=s(null);get current(){return n(this.#e)}set current(e){o(this.#e,e)}},Ae=new class{#e=s(!1);get current(){return n(this.#e)}set current(e){o(this.#e,e)}},Ce.v=()=>Ae.current=!0);function Ne(e){Object.assign(j,e)}var{onMount:Pe,tick:Fe}=a,Ie=new Set([`icon`,`shortcut icon`,`apple-touch-icon`]),N=null,P=le(`sveltekit:scroll`)??{},F=le(`sveltekit:snapshot`)??{},I={url:Se({}),page:Se({}),navigating:r(null),updated:we()};function Le(e){P[e]=E()}function Re(e,t){let n=e+1;for(;P[n];)delete P[n],n+=1;for(n=t+1;F[n];)delete F[n],n+=1}function L(e,t=!1){return t?location.replace(e.href):location.href=e.href,new Promise(h)}async function ze(){if(`serviceWorker`in navigator){let e=await navigator.serviceWorker.getRegistration(S||`/`);e&&await e.update()}}var Be,Ve,R,z,He,B,Ue={},We={},V=[],H=[],U=null;function Ge(){U?.fork?.then(e=>e?.discard()),U=null,Q={element:void 0,href:void 0}}var Ke=new Map,qe=new Set,Je=new Set,W=new Set,G={branch:[],error:null,url:null,nav:null},Ye=!1,Xe=!1,Ze=!0,K=!1,q=!1,Qe=!1,$e=!1,et,J,Y,X,tt=new Set,nt=new Map,rt=new Map;async function it(e,t,n){if(globalThis.__sveltekit_yry919.data){let{q:e={},p:t={},l:n={},f:r={}}=globalThis.__sveltekit_yry919.data;for(let t in e)Ue[t]=e[t];for(let e in n)Ue[e]=n[e];for(let e in r)Ue[e]=r[e];for(let e in t)We[e]=t[e]}document.URL!==location.href&&(location.href=location.href),B=e,await e.hooks.init?.(),Be=ce(e),z=document.documentElement,He=t,Ve=e.nodes[0],R=e.nodes[1],Ve(),R(),J=history.state?.[C],Y=history.state?.[w],J||(J=Y=Date.now(),history.replaceState({...history.state,[C]:J,[w]:Y},``));let r=P[J];function i(){r&&(history.scrollRestoration=`manual`,scrollTo(r.x,r.y))}n?(i(),await Mt(He,n)):(await Z({type:`enter`,url:_e(B.hash?Rt(new URL(location.href)):location.href),replace_state:!0}),i()),jt()}function at(){V.length=0,$e=!1}function ot(e){H.some(e=>e?.snapshot)&&(F[e]=H.map(e=>e?.snapshot?.capture()))}function st(e){F[e]?.forEach((e,t)=>{H[t]?.snapshot?.restore(e)})}function ct(){Le(J),ue(me,P),ot(Y),ue(pe,F)}async function lt(e,n,r,i){let a,o;n.invalidateAll&&Ge(),await Z({type:`goto`,url:_e(e),keepfocus:n.keepFocus,noscroll:n.noScroll,replace_state:n.replaceState,state:n.state,redirect_count:r,nav_token:i,accept:()=>{if(n.invalidateAll){$e=!0,a=new Set;for(let[e,t]of nt)for(let[n,r]of t)r.resource?.reset(),a.add(A(e,n));o=new Set;for(let[e,t]of rt)for(let n of t.keys())o.add(A(e,n))}n.invalidate&&n.invalidate.forEach(At)}}),n.invalidateAll&&t().then(t).then(()=>{for(let[e,t]of nt)for(let[n,{resource:r}]of t)a?.has(A(e,n))&&r.start();for(let[e,t]of rt)for(let[n,{resource:r}]of t)o?.has(A(e,n))&&r.reconnect()})}async function ut(e){if(e.id!==U?.id){Ge();let t={};tt.add(t),U={id:e.id,token:t,promise:bt({...e,preload:t}).then(e=>(tt.delete(t),e.type===`loaded`&&e.state.error&&Ge(),e)),fork:null}}return U.promise}async function dt(e){let t=(await wt(e,!1))?.route;t&&await Promise.all([...t.layouts,t.leaf].filter(Boolean).map(e=>e[1]()))}async function ft(e,t,n){let r={params:G.params,route:{id:G.route?.id??null},url:new URL(location.href)};if(G={...e.state,nav:r},Ne(e.props.page),et=new B.root({target:t,props:{...e.props,stores:I,components:H},hydrate:n,sync:!1,transformError:void 0}),await Promise.resolve(),n){let e={from:null,to:{...r,scroll:P[J]??E()},willUnload:!1,type:`enter`,complete:Promise.resolve()};W.forEach(t=>t(e))}st(Y),Xe=!0}async function pt({url:e,params:t,branch:n,errors:r,status:i,error:a,route:o,form:s}){let c=`never`;if(S&&(e.pathname===S||e.pathname===S+`/`))c=`always`;else for(let e of n)e?.slash!==void 0&&(c=e.slash);e.pathname=d(e.pathname,c),e.search=e.search;let l={type:`loaded`,state:{url:e,params:t,branch:n,error:a,route:o},props:{constructors:De(n).map(e=>e.node.component),page:Lt(j)}};s!==void 0&&(l.props.form=s);let u={},f=!j,p=0;for(let e=0;e<Math.max(n.length,G.branch.length);e+=1){let t=n[e],r=G.branch[e];t?.data!==r?.data&&(f=!0),t&&(u={...u,...t.data},f&&(l.props[`data_${p}`]=u),p+=1)}return(!G.url||e.href!==G.url.href||G.error!==a||s!==void 0&&s!==j.form||f)&&(l.props.page={error:a,params:t,route:{id:o?.id??null},state:{},status:i,url:new URL(e),form:s??null,data:f?u:j.data}),l}async function mt({loader:e,parent:t,url:n,params:r,route:i,server_data_node:a}){let o={dependencies:new Set,params:new Set,parent:!1,route:!1,url:!1,search_params:new Set},s=await e();return{node:s,loader:e,server:a,universal:s.universal?.load?{type:`data`,data:null,uses:o}:null,data:a?.data??null,slash:s.universal?.trailingSlash??a?.slash}}function ht(e,t,n){let r=e instanceof Request?e.url:e,i=new URL(r,n);return i.origin===n.origin&&(r=i.href.slice(n.origin.length)),{resolved:i,promise:Xe?b(r,i.href,t):ee(r,t)}}function gt(e,t,n,r,i,a){if($e)return!0;if(!i)return!1;if(i.parent&&e||i.route&&t||i.url&&n)return!0;for(let e of i.search_params)if(r.has(e))return!0;for(let e of i.params)if(a[e]!==G.params[e])return!0;for(let e of i.dependencies)if(V.some(t=>t(new URL(e))))return!0;return!1}function _t(e,t){return e?.type===`data`?e:e?.type===`skip`?t??null:null}function vt(e,t){if(!e)return new Set(t.searchParams.keys());let n=new Set([...e.searchParams.keys(),...t.searchParams.keys()]);for(let r of n){let i=e.searchParams.getAll(r),a=t.searchParams.getAll(r);i.every(e=>a.includes(e))&&a.every(e=>i.includes(e))&&n.delete(r)}return n}function yt({error:e,url:t,route:n,params:r}){return{type:`loaded`,state:{error:e,url:t,route:n,params:r,branch:[]},props:{page:Lt(j),constructors:[]}}}async function bt({id:e,invalidating:t,url:n,params:r,route:i,preload:a}){if(U?.id===e)return tt.delete(U.token),U.promise;let{errors:o,layouts:s,leaf:u}=i,d=[...s,u];o.forEach(e=>e?.().catch(h)),d.forEach(e=>e?.[1]().catch(h));let f=G.url?e!==Et(G.url):!1,p=G.route?i.id!==G.route.id:!1,m=vt(G.url,n),g=!1,_=d.map(async(e,t)=>{if(!e)return;let a=G.branch[t];return e[1]===a?.loader&&!gt(g,p,f,m,a.universal?.uses,r)?a:(g=!0,mt({loader:e[1],url:n,params:r,route:i,parent:async()=>{let e={};for(let n=0;n<t;n+=1)Object.assign(e,(await _[n])?.data);return e},server_data_node:_t(e[0]?{type:`skip`}:null,e[0]?a?.server:void 0)}))});for(let e of _)e.catch(h);let v=[];for(let e=0;e<d.length;e+=1)if(d[e])try{v.push(await _[e])}catch(t){if(t instanceof l)return{type:`redirect`,location:t.location};if(a&&tt.has(a))return yt({error:await $(t,{params:r,url:n,route:{id:i.id}}),url:n,params:r,route:i});let s=Oe(t),u;if(t instanceof c)u=t.body;else{if(await I.updated.check())return await ze(),await L(n);u=await $(t,{params:r,url:n,route:{id:i.id}})}let d=await xt(e,v,o);return d?pt({url:n,params:r,branch:v.slice(0,d.idx).concat(d.node),errors:o,status:s,error:u,route:i}):await Ot(n,{id:i.id},u,s)}else v.push(void 0);return pt({url:n,params:r,branch:v,errors:o,status:200,error:null,route:i,form:t?void 0:null})}async function xt(e,t,n){for(;e--;)if(n[e]){let r=e;for(;!t[r];)--r;try{return{idx:r+1,node:{node:await n[e](),loader:n[e],data:{},server:null,universal:null}}}catch{continue}}}async function St({status:e,error:t,url:n,route:r}){let i={};try{return pt({url:n,params:i,branch:[await mt({loader:Ve,url:n,params:i,route:r,parent:()=>Promise.resolve({}),server_data_node:_t(null)}),{node:await R(),loader:R,universal:null,server:null,data:null}],status:e,error:t,errors:[],route:null})}catch(t){if(t instanceof l){await lt(new URL(t.location,location.href),{},0);return}let a=await B.get_error_template(),o=await $(t,{url:n,params:i,route:r}),s=a({status:e,message:String(o?.message??``).replace(/&/g,`&`).replace(/</g,`<`).replace(/>/g,`>`)}),c=new DOMParser().parseFromString(s,`text/html`);throw document.documentElement.replaceChild(document.adoptNode(c.head),document.head),document.documentElement.replaceChild(document.adoptNode(c.body),document.body),t}}async function Ct(e){let t=e.href;if(Ke.has(t))return Ke.get(t);let n;try{let r=(async()=>{let t=await B.hooks.reroute({url:new URL(e),fetch:async(t,n)=>ht(t,n,e).promise})??e;if(typeof t==`string`){let n=new URL(e);B.hash?n.hash=t:n.pathname=t,t=n}return t})();Ke.set(t,r),n=await r}catch{Ke.delete(t);return}return n}async function wt(e,t){if(e&&!k(e,S,B.hash)){let n=await Ct(e);if(!n)return;let r=Tt(n);for(let n of Be){let i=n.exec(r);if(i)return{id:Et(e),invalidating:t,route:n,params:p(i),url:e}}}}function Tt(e){return f(B.hash?e.hash.replace(/^#/,``).replace(/[?#].+/,``):e.pathname.slice(S.length))||`/`}function Et(e){return(B.hash?e.hash.replace(/^#/,``):e.pathname)+e.search}function Dt({url:e,type:t,intent:n,delta:r,event:i,scroll:a}){let o=!1,s=It(G,n,e,t,a??null);r!==void 0&&(s.navigation.delta=r),i!==void 0&&(s.navigation.event=i);let c={...s.navigation,cancel:()=>{o=!0,s.reject(Error(`navigation cancelled`))}};return K||qe.forEach(e=>e(c)),o?null:s}async function Z({type:n,url:r,popped:i,keepfocus:a,noscroll:o,replace_state:s,state:c={},redirect_count:l=0,nav_token:d={},accept:f=h,block:p=h,event:m}){let g=X;X=d;let _=await wt(r,!1),v=n===`enter`?It(G,_,r,n):Dt({url:r,type:n,delta:i?.delta,intent:_,scroll:i?.scroll,event:m});if(!v){p(),X===d&&(X=g);return}let y=J,ee=Y;f(),K=!0,Xe&&v.navigation.type!==`enter`&&I.navigating.set(M.current=v.navigation);let b=_&&await bt(_);if(!b){if(k(r,S,B.hash))return await L(r,s);b=await Ot(r,{id:null},await $(new u(404,`Not Found`,`Not found: ${r.pathname}`),{url:r,params:{},route:{id:null}}),404,s)}if(r=_?.url||r,X!==d){v.reject(Error(`navigation aborted`));return}if(!b)return;if(b.type===`redirect`){if(l<20){await Z({type:n,url:new URL(b.location,r),popped:i,keepfocus:a,noscroll:o,replace_state:s,state:c,redirect_count:l+1,nav_token:d}),v.fulfil(void 0);return}if(b=await St({status:500,error:await $(Error(`Redirect loop`),{url:r,params:{},route:{id:null}}),url:r,route:{id:null}}),!b)return}else if(b.props.page.status>=400&&await I.updated.check())return await ze(),await L(r,s);if(at(),Le(y),ot(ee),b.props.page.url.pathname!==r.pathname&&(r.pathname=b.props.page.url.pathname),c=i?i.state:c,!i){let e=+!s,t={[C]:J+=e,[w]:Y+=e,[he]:c};(s?history.replaceState:history.pushState).call(history,t,``,r),s||Re(J,Y)}let x=_&&U?.id===_.id?U.fork:null;U?.fork&&!x?Ge():(U=null,Q={element:void 0,href:void 0}),b.props.page.state=c;let te;if(Xe){let t=(await Promise.all(Array.from(Je,e=>e(v.navigation)))).filter(e=>typeof e==`function`);if(t.length>0){function e(){t.forEach(e=>{W.delete(e)})}t.push(e),t.forEach(e=>{W.add(e)})}let n=v.navigation.to;G={...b.state,nav:{params:n.params,route:n.route,url:n.url}},b.props.page&&(b.props.page.url=r),!a&&document.activeElement instanceof HTMLElement&&document.activeElement!==document.body&&document.activeElement.blur();let i=x&&await x;i?te=i.commit():(N=null,et.$set(b.props),N&&Object.assign(b.props.page,N),Ne(b.props.page),te=e?.()),Qe=!0}else await ft(b,He,!1);let{activeElement:ne}=document;if(await te,await t(),await t(),X!==d){v.reject(Error(`navigation aborted`));return}b.props.page&&N&&Object.assign(b.props.page,N);let re=null;if(Ze){let e=i?i.scroll:o?E():null;e?scrollTo(e.x,e.y):(re=r.hash&&document.getElementById(zt(r)))?re.scrollIntoView():scrollTo(0,0)}let ie=document.activeElement!==ne&&document.activeElement!==document.body;!a&&!ie&&Ft(r,!re),Ze=!0,K=!1,v.fulfil(void 0),v.navigation.to&&(v.navigation.to.scroll=E()),W.forEach(e=>e(v.navigation)),n===`popstate`&&st(Y),I.navigating.set(M.current=null)}async function Ot(e,t,n,r,i){return e.origin===ge&&e.pathname===location.pathname&&!Ye?await St({status:r,error:n,url:e,route:t}):await L(e,i)}var Q={element:void 0,href:void 0};function kt(){let e,t;z.addEventListener(`mousemove`,t=>{let n=t.target;clearTimeout(e),e=setTimeout(()=>{i(n,T.hover)},20)});function n(e){e.defaultPrevented||i(e.composedPath()[0],T.tap)}z.addEventListener(`mousedown`,n),z.addEventListener(`touchstart`,n,{passive:!0});let r=new IntersectionObserver(e=>{for(let t of e)t.isIntersecting&&(dt(new URL(t.target.href)),r.unobserve(t.target))},{threshold:0});async function i(e,n){let r=be(e,z),i=r===Q.element&&r?.href===Q.href&&n>=t;if(!r||i)return;let{url:a,external:o,download:s}=xe(r,S,B.hash);if(o||s)return;let c=O(r),l=a&&Et(G.url)===Et(a);if(!(c.reload||l)){if(n<=c.preload_data){Q={element:r,href:r.href},t=T.tap;let e=await wt(a,!1);if(!e)return;ut(e)}else n<=c.preload_code&&(Q={element:r,href:r.href},t=n,dt(a))}}function a(){r.disconnect();for(let e of z.querySelectorAll(`a`)){let{url:t,external:n,download:i}=xe(e,S,B.hash);if(n||i)continue;let a=O(e);a.reload||(a.preload_code===T.viewport&&r.observe(e),a.preload_code===T.eager&&dt(t))}}W.add(a),a()}function $(e,t){if(e instanceof c)return e.body;let n=Oe(e),r=ke(e);return B.hooks.handleError({error:e,event:t,status:n,message:r})??{message:r}}function At(e){if(typeof e==`function`)V.push(e);else{let{href:t}=new URL(e,location.href);V.push(e=>e.href===t)}}function jt(){history.scrollRestoration=`manual`,addEventListener(`beforeunload`,e=>{let t=!1;if(ct(),!K){let e=It(G,void 0,null,`leave`),n={...e.navigation,cancel:()=>{t=!0,e.reject(Error(`navigation cancelled`))}};qe.forEach(e=>e(n))}t?(e.preventDefault(),e.returnValue=``):history.scrollRestoration=`auto`}),addEventListener(`visibilitychange`,()=>{document.visibilityState===`hidden`&&ct()}),navigator.connection?.saveData||kt(),z.addEventListener(`click`,async t=>{if(t.button||t.which!==1||t.metaKey||t.ctrlKey||t.shiftKey||t.altKey||t.defaultPrevented)return;let n=be(t.composedPath()[0],z);if(!n)return;let{url:r,external:i,target:a,download:o}=xe(n,S,B.hash);if(!r)return;if(a===`_parent`||a===`_top`){if(window.parent!==window)return}else if(a&&a!==`_self`)return;let s=O(n);if(!(n instanceof SVGAElement)&&r.protocol!==location.protocol&&r.protocol!==`https:`&&r.protocol!==`http:`||o)return;let[c,l]=(B.hash?r.hash.replace(/^#/,``):r.href).split(`#`),u=c===m(location);if(i||s.reload&&(!u||!l)){Dt({url:r,type:`link`,event:t})?K=!0:t.preventDefault();return}if(l!==void 0&&u){let[,i]=G.url.href.split(`#`);if(i===l){if(t.preventDefault(),l===``||l===`top`&&n.ownerDocument.getElementById(`top`)===null)scrollTo({top:0});else{let e=n.ownerDocument.getElementById(decodeURIComponent(l));e&&(e.scrollIntoView(),e.focus())}return}if(q=!0,Le(J),e(r),!s.replace_state)return;q=!1}t.preventDefault(),await new Promise(e=>{requestAnimationFrame(()=>{setTimeout(e,0)}),setTimeout(e,100)}),await Z({type:`link`,url:r,keepfocus:s.keepfocus,noscroll:s.noscroll,replace_state:s.replace_state??r.href===location.href,event:t})}),z.addEventListener(`submit`,e=>{if(e.defaultPrevented)return;let t=HTMLFormElement.prototype.cloneNode.call(e.target),n=e.submitter;if((n?.formTarget||t.target)===`_blank`||(n?.formMethod||t.method)!==`get`)return;let r=new URL(n?.hasAttribute(`formaction`)&&n?.formAction||t.action);if(k(r,S,!1))return;let i=e.target,a=O(i);if(a.reload)return;e.preventDefault(),e.stopPropagation();let o=new FormData(i,n);r.search=new URLSearchParams(o).toString(),Z({type:`form`,url:r,keepfocus:a.keepfocus,noscroll:a.noscroll,replace_state:a.replace_state??r.href===location.href,event:e})}),addEventListener(`popstate`,async t=>{if(!Pt){if(t.state?.[`sveltekit:history`]){let n=t.state[C];if(X={},n===J)return;let r=P[n],i=t.state[`sveltekit:states`]??{},a=new URL(t.state[`sveltekit:pageurl`]??location.href),o=t.state[w],s=G.url?m(location)===m(G.url):!1;if(o===Y&&(Qe||s)){i!==j.state&&(j.state=i),e(a),P[J]=E(),r&&scrollTo(r.x,r.y),J=n;return}let c=n-J;await Z({type:`popstate`,url:a,popped:{state:i,scroll:r,delta:c},accept:()=>{J=n,Y=o},block:()=>{history.go(-c)},nav_token:X,event:t})}else q||(e(new URL(location.href)),B.hash&&location.reload())}}),addEventListener(`hashchange`,()=>{q&&(q=!1,history.replaceState({...history.state,[C]:++J,[w]:Y},``,location.href))});for(let e of document.querySelectorAll(`link`))Ie.has(e.rel)&&(e.href=e.href);addEventListener(`pageshow`,e=>{e.persisted&&I.navigating.set(M.current=null)});function e(e){G.url=j.url=e,I.page.set(Lt(j)),I.page.notify()}}async function Mt(e,{status:t=200,error:n,node_ids:r,params:i,route:a,server_route:o,data:s,form:c}){Ye=!0;let u=new URL(location.href),d;({params:i={},route:a={id:null}}=await wt(u,!1)||{}),d=Be.find(({id:e})=>e===a.id);let f,p=!0;try{let e=r.map(async(t,n)=>{let r=s[n];return r?.uses&&(r.uses=Nt(r.uses)),mt({loader:B.nodes[t],url:u,params:i,route:a,parent:async()=>{let t={};for(let r=0;r<n;r+=1)Object.assign(t,(await e[r]).data);return t},server_data_node:_t(r)})}),o=await Promise.all(e);if(d){let e=d.layouts;for(let t=0;t<e.length;t++)e[t]||o.splice(t,0,void 0)}f=await pt({url:u,params:i,branch:o,status:t,error:n,errors:d?.errors,form:c,route:d??null})}catch(t){if(t instanceof l)return await L(new URL(t.location,location.href));f=await St({status:Oe(t),error:await $(t,{url:u,params:i,route:a}),url:u,route:a}),e.textContent=``,p=!1}f&&(f.props.page&&(f.props.page.state={}),await ft(f,e,p))}function Nt(e){return{dependencies:new Set(e?.dependencies??[]),params:new Set(e?.params??[]),parent:!!e?.parent,route:!!e?.route,url:!!e?.url,search_params:new Set(e?.search_params??[])}}var Pt=!1;function Ft(e,t=!0){let n=document.querySelector(`[autofocus]`);if(n)n.focus();else{let n=zt(e);if(n&&document.getElementById(n)){let{x:r,y:i}=E();setTimeout(()=>{let a=history.state;Pt=!0,location.replace(new URL(`#${n}`,location.href)),history.replaceState(a,``,e),t&&scrollTo(r,i),Pt=!1})}else{let e=document.body,t=e.getAttribute(`tabindex`);e.tabIndex=-1,e.focus({preventScroll:!0,focusVisible:!1}),t===null?e.removeAttribute(`tabindex`):e.setAttribute(`tabindex`,t)}let r=getSelection();if(r&&r.type!==`None`){let e=[];for(let t=0;t<r.rangeCount;t+=1)e.push(r.getRangeAt(t));setTimeout(()=>{if(r.rangeCount===e.length){for(let t=0;t<r.rangeCount;t+=1){let n=e[t],i=r.getRangeAt(t);if(n.commonAncestorContainer!==i.commonAncestorContainer||n.startContainer!==i.startContainer||n.endContainer!==i.endContainer||n.startOffset!==i.startOffset||n.endOffset!==i.endOffset)return}r.removeAllRanges()}})}}}function It(e,t,n,r,i=null){let a,o,s=new Promise((e,t)=>{a=e,o=t});return s.catch(h),{navigation:{from:{params:e.params,route:{id:e.route?.id??null},url:e.url,scroll:E()},to:n&&{params:t?.params??null,route:{id:t?.route?.id??null},url:n,scroll:i},willUnload:!t,type:r,complete:s},fulfil:a,reject:o}}function Lt(e){return{data:e.data,error:e.error,form:e.form,params:e.params,route:e.route,state:e.state,status:e.status,url:e.url}}function Rt(e){let t=new URL(e);return t.hash=decodeURIComponent(e.hash),t}function zt(e){let t;if(B.hash){let[,,n]=e.hash.split(`#`,3);t=n??``}else t=e.hash.slice(1);return decodeURIComponent(t)}export{Te as i,M as n,j as r,it as t};
|
|
1
|
+
import{H as e,U as t,V as n,ft as r,i,n as a,ot as o,st as s}from"./eSlNf1Mv.js";var c=class{constructor(e,t){this.status=e,this.body=typeof t==`string`?{message:t}:t||{message:`Error: ${e}`}}toString(){return JSON.stringify(this.body)}},l=class{constructor(e,t){try{new Headers({location:t})}catch{throw Error(`Invalid redirect location ${JSON.stringify(t)}: this string contains characters that cannot be used in HTTP headers`)}this.status=e,this.location=t}},u=class extends Error{constructor(e,t,n){super(n),this.status=e,this.text=t}};new URL(`sveltekit-internal://`);function d(e,t){return e===`/`||t===`ignore`?e:t===`never`?e.endsWith(`/`)?e.slice(0,-1):e:t===`always`&&!e.endsWith(`/`)?e+`/`:e}function f(e){return e.split(`%25`).map(decodeURI).join(`%25`)}function p(e){for(let t in e)e[t]=decodeURIComponent(e[t]);return e}function m({href:e}){return e.split(`#`)[0]}function h(){}function g(...e){let t=5381;for(let n of e)if(typeof n==`string`){let e=n.length;for(;e;)t=t*33^n.charCodeAt(--e)}else if(ArrayBuffer.isView(n)){let e=new Uint8Array(n.buffer,n.byteOffset,n.byteLength),r=e.length;for(;r;)t=t*33^e[--r]}else throw TypeError(`value must be a string or TypedArray`);return(t>>>0).toString(36)}new TextEncoder;function _(e){let t=atob(e),n=new Uint8Array(t.length);for(let e=0;e<t.length;e++)n[e]=t.charCodeAt(e);return n}var v=window.fetch;window.fetch=(e,t)=>((e instanceof Request?e.method:t?.method||`GET`)!==`GET`&&y.delete(x(e)),v(e,t));var y=new Map;function ee(e,t){let n=x(e,t),r=document.querySelector(n);if(r?.textContent){r.remove();let{body:e,...t}=JSON.parse(r.textContent);r.getAttribute(`data-b64`)!==null&&(e=_(e));let i=r.getAttribute(`data-ttl`);return i&&y.set(n,{body:e,init:t,ttl:1e3*Number(i)}),Promise.resolve(new Response(e,t))}return window.fetch(e,t)}function b(e,t,n){if(y.size>0){let t=x(e,n),r=y.get(t);if(r){if(performance.now()<r.ttl&&[`default`,`force-cache`,`only-if-cached`,void 0].includes(n?.cache))return new Response(r.body,r.init);y.delete(t)}}return window.fetch(t,n)}function x(e,t){let n=`script[data-sveltekit-fetched][data-url=${JSON.stringify(e instanceof Request?e.url:e)}]`;if(t?.headers||t?.body){let e=[];t.headers&&e.push([...new Headers(t.headers)].join(`,`)),t.body&&(typeof t.body==`string`||ArrayBuffer.isView(t.body))&&e.push(t.body),n+=`[data-hash="${g(...e)}"]`}return n}var te=/^(\[)?(\.\.\.)?(\w+)(?:=(\w+))?(\])?$/,ne=/^\/\((?:[^)]+)\)$/;function re(e){let t=[];return{pattern:e===`/`||ne.test(e)?/^\/$/:RegExp(`^${ae(e).map(e=>{let n=/^\[\.\.\.(\w+)(?:=(\w+))?\]$/.exec(e);if(n)return t.push({name:n[1],matcher:n[2],optional:!1,rest:!0,chained:!0}),`(?:/([^]*))?`;let r=/^\[\[(\w+)(?:=(\w+))?\]\]$/.exec(e);if(r)return t.push({name:r[1],matcher:r[2],optional:!0,rest:!1,chained:!0}),`(?:/([^/]+))?`;if(!e)return;let i=e.split(/\[(.+?)\](?!\])/);return`/`+i.map((e,n)=>{if(n%2){if(e.startsWith(`x+`))return se(String.fromCharCode(parseInt(e.slice(2),16)));if(e.startsWith(`u+`))return se(String.fromCharCode(...e.slice(2).split(`-`).map(e=>parseInt(e,16))));let[,r,a,o,s]=te.exec(e);return t.push({name:o,matcher:s,optional:!!r,rest:!!a,chained:a?n===1&&i[0]===``:!1}),a?`([^]*?)`:r?`([^/]*)?`:`([^/]+?)`}return se(e)}).join(``)}).join(``)}/?$`),params:t}}function ie(e){return e!==``&&!/^\([^)]+\)$/.test(e)}function ae(e){return e.slice(1).split(`/`).filter(ie)}function oe(e,t,n){let r={},i=e.slice(1),a=i.filter(e=>e!==void 0),o=0;for(let e=0;e<t.length;e+=1){let s=t[e],c=i[e-o];if(s.chained&&s.rest&&o&&(c=i.slice(e-o,e+1).filter(e=>e).join(`/`),o=0),c===void 0){if(s.rest)c=``;else continue}if(!s.matcher||n[s.matcher](c)){r[s.name]=c;let n=t[e+1],l=i[e+1];n&&!n.rest&&n.optional&&l&&s.chained&&(o=0),!n&&!l&&Object.keys(r).length===a.length&&(o=0);continue}if(s.optional&&s.chained){o++;continue}return}if(!o)return r}function se(e){return e.normalize().replace(/[[\]]/g,`\\$&`).replace(/%/g,`%25`).replace(/\//g,`%2[Ff]`).replace(/\?/g,`%3[Ff]`).replace(/#/g,`%23`).replace(/[.*+?^${}()|\\]/g,`\\$&`)}function ce({nodes:e,server_loads:t,dictionary:n,matchers:r}){let i=new Set(t);return Object.entries(n).map(([t,[n,i,s]])=>{let{pattern:c,params:l}=re(t),u={id:t,exec:e=>{let t=c.exec(e);if(t)return oe(t,l,r)},errors:[1,...s||[]].map(t=>e[t]),layouts:[0,...i||[]].map(o),leaf:a(n)};return u.errors.length=u.layouts.length=Math.max(u.errors.length,u.layouts.length),u});function a(t){let n=t<0;return n&&(t=~t),[n,e[t]]}function o(t){return t===void 0?t:[i.has(t),e[t]]}}function le(e,t=JSON.parse){try{return t(sessionStorage[e])}catch{}}function ue(e,t,n=JSON.stringify){let r=n(t);try{sessionStorage[e]=r}catch{}}var S=globalThis.__sveltekit_h0vvap?.base??``,de=globalThis.__sveltekit_h0vvap?.assets??S??``,fe=`1789523063561`,pe=`sveltekit:snapshot`,me=`sveltekit:scroll`,he=`sveltekit:states`,C=`sveltekit:history`,w=`sveltekit:navigation`,T={tap:1,hover:2,viewport:3,eager:4,off:-1,false:-1},ge=location.origin;function _e(e){if(e instanceof URL)return e;let t=document.baseURI;if(!t){let e=document.getElementsByTagName(`base`);t=e.length?e[0].href:document.URL}return new URL(e,t)}function E(){return{x:pageXOffset,y:pageYOffset}}function D(e,t){return e.getAttribute(`data-sveltekit-${t}`)}var ve={...T,"":T.hover};function ye(e){let t=e.assignedSlot??e.parentNode;return t?.nodeType===11&&(t=t.host),t}function be(e,t){for(;e&&e!==t;){if(e.nodeName.toUpperCase()===`A`&&e.hasAttribute(`href`))return e;e=ye(e)}}function xe(e,t,n){let r;try{if(r=new URL(e instanceof SVGAElement?e.href.baseVal:e.href,document.baseURI),n&&r.hash.match(/^#[^/]/)){let e=location.hash.split(`#`)[1]||`/`;r.hash=`#${e}${r.hash}`}}catch{}let i=e instanceof SVGAElement?e.target.baseVal:e.target,a=!r||!!i||k(r,t,n)||(e.getAttribute(`rel`)||``).split(/\s+/).includes(`external`),o=r?.origin===ge&&e.hasAttribute(`download`);return{url:r,external:a,target:i,download:o}}function O(e){let t=null,n=null,r=null,i=null,a=null,o=null,s=e;for(;s&&s!==document.documentElement;)r===null&&(r=D(s,`preload-code`)),i===null&&(i=D(s,`preload-data`)),t===null&&(t=D(s,`keepfocus`)),n===null&&(n=D(s,`noscroll`)),a===null&&(a=D(s,`reload`)),o===null&&(o=D(s,`replacestate`)),s=ye(s);function c(e){switch(e){case``:case`true`:return!0;case`off`:case`false`:return!1;default:return}}return{preload_code:ve[r??`off`],preload_data:ve[i??`off`],keepfocus:c(t),noscroll:c(n),reload:c(a),replace_state:c(o)}}function Se(e){let t=r(e),n=!0;function i(){n=!0,t.update(e=>e)}function a(e){n=!1,t.set(e)}function o(e){let r;return t.subscribe(t=>{(r===void 0||n&&t!==r)&&e(r=t)})}return{notify:i,set:a,subscribe:o}}var Ce={v:h};function we(){let{set:e,subscribe:t}=r(!1),n;async function i(){clearTimeout(n);try{let t=await fetch(`${de}/_app/version.json`,{headers:{pragma:`no-cache`,"cache-control":`no-cache`}});if(!t.ok)return!1;let r=(await t.json()).version!==fe;return r&&(e(!0),Ce.v(),clearTimeout(n)),r}catch{return!1}}return{subscribe:t,check:i}}function k(e,t,n){return e.origin!==ge||!e.pathname.startsWith(t)?!0:n?e.pathname!==location.pathname:!1}function Te(e){}var Ee=new Set([`load`,`prerender`,`csr`,`ssr`,`trailingSlash`,`config`]);[...Ee],[...new Set([...Ee])];function De(e){return e.filter(e=>e!=null)}function A(e,t){return e+`/`+t}function Oe(e){return e instanceof c||e instanceof u?e.status:500}function ke(e){return e instanceof u?e.text:`Internal Error`}var j,M,Ae,je=i.toString().includes(`$$`)||/function \w+\(\) \{\}/.test(i.toString()),Me=`a:`;je?(j={data:{},form:null,error:null,params:{},route:{id:null},state:{},status:-1,url:new URL(Me)},M={current:null},Ae={current:!1}):(j=new class{#e=s({});get data(){return n(this.#e)}set data(e){o(this.#e,e)}#t=s(null);get form(){return n(this.#t)}set form(e){o(this.#t,e)}#n=s(null);get error(){return n(this.#n)}set error(e){o(this.#n,e)}#r=s({});get params(){return n(this.#r)}set params(e){o(this.#r,e)}#i=s({id:null});get route(){return n(this.#i)}set route(e){o(this.#i,e)}#a=s({});get state(){return n(this.#a)}set state(e){o(this.#a,e)}#o=s(-1);get status(){return n(this.#o)}set status(e){o(this.#o,e)}#s=s(new URL(Me));get url(){return n(this.#s)}set url(e){o(this.#s,e)}},M=new class{#e=s(null);get current(){return n(this.#e)}set current(e){o(this.#e,e)}},Ae=new class{#e=s(!1);get current(){return n(this.#e)}set current(e){o(this.#e,e)}},Ce.v=()=>Ae.current=!0);function Ne(e){Object.assign(j,e)}var{onMount:Pe,tick:Fe}=a,Ie=new Set([`icon`,`shortcut icon`,`apple-touch-icon`]),N=null,P=le(`sveltekit:scroll`)??{},F=le(`sveltekit:snapshot`)??{},I={url:Se({}),page:Se({}),navigating:r(null),updated:we()};function Le(e){P[e]=E()}function Re(e,t){let n=e+1;for(;P[n];)delete P[n],n+=1;for(n=t+1;F[n];)delete F[n],n+=1}function L(e,t=!1){return t?location.replace(e.href):location.href=e.href,new Promise(h)}async function ze(){if(`serviceWorker`in navigator){let e=await navigator.serviceWorker.getRegistration(S||`/`);e&&await e.update()}}var Be,Ve,R,z,He,B,Ue={},We={},V=[],H=[],U=null;function Ge(){U?.fork?.then(e=>e?.discard()),U=null,Q={element:void 0,href:void 0}}var Ke=new Map,qe=new Set,Je=new Set,W=new Set,G={branch:[],error:null,url:null,nav:null},Ye=!1,Xe=!1,Ze=!0,K=!1,q=!1,Qe=!1,$e=!1,et,J,Y,X,tt=new Set,nt=new Map,rt=new Map;async function it(e,t,n){if(globalThis.__sveltekit_h0vvap.data){let{q:e={},p:t={},l:n={},f:r={}}=globalThis.__sveltekit_h0vvap.data;for(let t in e)Ue[t]=e[t];for(let e in n)Ue[e]=n[e];for(let e in r)Ue[e]=r[e];for(let e in t)We[e]=t[e]}document.URL!==location.href&&(location.href=location.href),B=e,await e.hooks.init?.(),Be=ce(e),z=document.documentElement,He=t,Ve=e.nodes[0],R=e.nodes[1],Ve(),R(),J=history.state?.[C],Y=history.state?.[w],J||(J=Y=Date.now(),history.replaceState({...history.state,[C]:J,[w]:Y},``));let r=P[J];function i(){r&&(history.scrollRestoration=`manual`,scrollTo(r.x,r.y))}n?(i(),await Mt(He,n)):(await Z({type:`enter`,url:_e(B.hash?Rt(new URL(location.href)):location.href),replace_state:!0}),i()),jt()}function at(){V.length=0,$e=!1}function ot(e){H.some(e=>e?.snapshot)&&(F[e]=H.map(e=>e?.snapshot?.capture()))}function st(e){F[e]?.forEach((e,t)=>{H[t]?.snapshot?.restore(e)})}function ct(){Le(J),ue(me,P),ot(Y),ue(pe,F)}async function lt(e,n,r,i){let a,o;n.invalidateAll&&Ge(),await Z({type:`goto`,url:_e(e),keepfocus:n.keepFocus,noscroll:n.noScroll,replace_state:n.replaceState,state:n.state,redirect_count:r,nav_token:i,accept:()=>{if(n.invalidateAll){$e=!0,a=new Set;for(let[e,t]of nt)for(let[n,r]of t)r.resource?.reset(),a.add(A(e,n));o=new Set;for(let[e,t]of rt)for(let n of t.keys())o.add(A(e,n))}n.invalidate&&n.invalidate.forEach(At)}}),n.invalidateAll&&t().then(t).then(()=>{for(let[e,t]of nt)for(let[n,{resource:r}]of t)a?.has(A(e,n))&&r.start();for(let[e,t]of rt)for(let[n,{resource:r}]of t)o?.has(A(e,n))&&r.reconnect()})}async function ut(e){if(e.id!==U?.id){Ge();let t={};tt.add(t),U={id:e.id,token:t,promise:bt({...e,preload:t}).then(e=>(tt.delete(t),e.type===`loaded`&&e.state.error&&Ge(),e)),fork:null}}return U.promise}async function dt(e){let t=(await wt(e,!1))?.route;t&&await Promise.all([...t.layouts,t.leaf].filter(Boolean).map(e=>e[1]()))}async function ft(e,t,n){let r={params:G.params,route:{id:G.route?.id??null},url:new URL(location.href)};if(G={...e.state,nav:r},Ne(e.props.page),et=new B.root({target:t,props:{...e.props,stores:I,components:H},hydrate:n,sync:!1,transformError:void 0}),await Promise.resolve(),n){let e={from:null,to:{...r,scroll:P[J]??E()},willUnload:!1,type:`enter`,complete:Promise.resolve()};W.forEach(t=>t(e))}st(Y),Xe=!0}async function pt({url:e,params:t,branch:n,errors:r,status:i,error:a,route:o,form:s}){let c=`never`;if(S&&(e.pathname===S||e.pathname===S+`/`))c=`always`;else for(let e of n)e?.slash!==void 0&&(c=e.slash);e.pathname=d(e.pathname,c),e.search=e.search;let l={type:`loaded`,state:{url:e,params:t,branch:n,error:a,route:o},props:{constructors:De(n).map(e=>e.node.component),page:Lt(j)}};s!==void 0&&(l.props.form=s);let u={},f=!j,p=0;for(let e=0;e<Math.max(n.length,G.branch.length);e+=1){let t=n[e],r=G.branch[e];t?.data!==r?.data&&(f=!0),t&&(u={...u,...t.data},f&&(l.props[`data_${p}`]=u),p+=1)}return(!G.url||e.href!==G.url.href||G.error!==a||s!==void 0&&s!==j.form||f)&&(l.props.page={error:a,params:t,route:{id:o?.id??null},state:{},status:i,url:new URL(e),form:s??null,data:f?u:j.data}),l}async function mt({loader:e,parent:t,url:n,params:r,route:i,server_data_node:a}){let o={dependencies:new Set,params:new Set,parent:!1,route:!1,url:!1,search_params:new Set},s=await e();return{node:s,loader:e,server:a,universal:s.universal?.load?{type:`data`,data:null,uses:o}:null,data:a?.data??null,slash:s.universal?.trailingSlash??a?.slash}}function ht(e,t,n){let r=e instanceof Request?e.url:e,i=new URL(r,n);return i.origin===n.origin&&(r=i.href.slice(n.origin.length)),{resolved:i,promise:Xe?b(r,i.href,t):ee(r,t)}}function gt(e,t,n,r,i,a){if($e)return!0;if(!i)return!1;if(i.parent&&e||i.route&&t||i.url&&n)return!0;for(let e of i.search_params)if(r.has(e))return!0;for(let e of i.params)if(a[e]!==G.params[e])return!0;for(let e of i.dependencies)if(V.some(t=>t(new URL(e))))return!0;return!1}function _t(e,t){return e?.type===`data`?e:e?.type===`skip`?t??null:null}function vt(e,t){if(!e)return new Set(t.searchParams.keys());let n=new Set([...e.searchParams.keys(),...t.searchParams.keys()]);for(let r of n){let i=e.searchParams.getAll(r),a=t.searchParams.getAll(r);i.every(e=>a.includes(e))&&a.every(e=>i.includes(e))&&n.delete(r)}return n}function yt({error:e,url:t,route:n,params:r}){return{type:`loaded`,state:{error:e,url:t,route:n,params:r,branch:[]},props:{page:Lt(j),constructors:[]}}}async function bt({id:e,invalidating:t,url:n,params:r,route:i,preload:a}){if(U?.id===e)return tt.delete(U.token),U.promise;let{errors:o,layouts:s,leaf:u}=i,d=[...s,u];o.forEach(e=>e?.().catch(h)),d.forEach(e=>e?.[1]().catch(h));let f=G.url?e!==Et(G.url):!1,p=G.route?i.id!==G.route.id:!1,m=vt(G.url,n),g=!1,_=d.map(async(e,t)=>{if(!e)return;let a=G.branch[t];return e[1]===a?.loader&&!gt(g,p,f,m,a.universal?.uses,r)?a:(g=!0,mt({loader:e[1],url:n,params:r,route:i,parent:async()=>{let e={};for(let n=0;n<t;n+=1)Object.assign(e,(await _[n])?.data);return e},server_data_node:_t(e[0]?{type:`skip`}:null,e[0]?a?.server:void 0)}))});for(let e of _)e.catch(h);let v=[];for(let e=0;e<d.length;e+=1)if(d[e])try{v.push(await _[e])}catch(t){if(t instanceof l)return{type:`redirect`,location:t.location};if(a&&tt.has(a))return yt({error:await $(t,{params:r,url:n,route:{id:i.id}}),url:n,params:r,route:i});let s=Oe(t),u;if(t instanceof c)u=t.body;else{if(await I.updated.check())return await ze(),await L(n);u=await $(t,{params:r,url:n,route:{id:i.id}})}let d=await xt(e,v,o);return d?pt({url:n,params:r,branch:v.slice(0,d.idx).concat(d.node),errors:o,status:s,error:u,route:i}):await Ot(n,{id:i.id},u,s)}else v.push(void 0);return pt({url:n,params:r,branch:v,errors:o,status:200,error:null,route:i,form:t?void 0:null})}async function xt(e,t,n){for(;e--;)if(n[e]){let r=e;for(;!t[r];)--r;try{return{idx:r+1,node:{node:await n[e](),loader:n[e],data:{},server:null,universal:null}}}catch{continue}}}async function St({status:e,error:t,url:n,route:r}){let i={};try{return pt({url:n,params:i,branch:[await mt({loader:Ve,url:n,params:i,route:r,parent:()=>Promise.resolve({}),server_data_node:_t(null)}),{node:await R(),loader:R,universal:null,server:null,data:null}],status:e,error:t,errors:[],route:null})}catch(t){if(t instanceof l){await lt(new URL(t.location,location.href),{},0);return}let a=await B.get_error_template(),o=await $(t,{url:n,params:i,route:r}),s=a({status:e,message:String(o?.message??``).replace(/&/g,`&`).replace(/</g,`<`).replace(/>/g,`>`)}),c=new DOMParser().parseFromString(s,`text/html`);throw document.documentElement.replaceChild(document.adoptNode(c.head),document.head),document.documentElement.replaceChild(document.adoptNode(c.body),document.body),t}}async function Ct(e){let t=e.href;if(Ke.has(t))return Ke.get(t);let n;try{let r=(async()=>{let t=await B.hooks.reroute({url:new URL(e),fetch:async(t,n)=>ht(t,n,e).promise})??e;if(typeof t==`string`){let n=new URL(e);B.hash?n.hash=t:n.pathname=t,t=n}return t})();Ke.set(t,r),n=await r}catch{Ke.delete(t);return}return n}async function wt(e,t){if(e&&!k(e,S,B.hash)){let n=await Ct(e);if(!n)return;let r=Tt(n);for(let n of Be){let i=n.exec(r);if(i)return{id:Et(e),invalidating:t,route:n,params:p(i),url:e}}}}function Tt(e){return f(B.hash?e.hash.replace(/^#/,``).replace(/[?#].+/,``):e.pathname.slice(S.length))||`/`}function Et(e){return(B.hash?e.hash.replace(/^#/,``):e.pathname)+e.search}function Dt({url:e,type:t,intent:n,delta:r,event:i,scroll:a}){let o=!1,s=It(G,n,e,t,a??null);r!==void 0&&(s.navigation.delta=r),i!==void 0&&(s.navigation.event=i);let c={...s.navigation,cancel:()=>{o=!0,s.reject(Error(`navigation cancelled`))}};return K||qe.forEach(e=>e(c)),o?null:s}async function Z({type:n,url:r,popped:i,keepfocus:a,noscroll:o,replace_state:s,state:c={},redirect_count:l=0,nav_token:d={},accept:f=h,block:p=h,event:m}){let g=X;X=d;let _=await wt(r,!1),v=n===`enter`?It(G,_,r,n):Dt({url:r,type:n,delta:i?.delta,intent:_,scroll:i?.scroll,event:m});if(!v){p(),X===d&&(X=g);return}let y=J,ee=Y;f(),K=!0,Xe&&v.navigation.type!==`enter`&&I.navigating.set(M.current=v.navigation);let b=_&&await bt(_);if(!b){if(k(r,S,B.hash))return await L(r,s);b=await Ot(r,{id:null},await $(new u(404,`Not Found`,`Not found: ${r.pathname}`),{url:r,params:{},route:{id:null}}),404,s)}if(r=_?.url||r,X!==d){v.reject(Error(`navigation aborted`));return}if(!b)return;if(b.type===`redirect`){if(l<20){await Z({type:n,url:new URL(b.location,r),popped:i,keepfocus:a,noscroll:o,replace_state:s,state:c,redirect_count:l+1,nav_token:d}),v.fulfil(void 0);return}if(b=await St({status:500,error:await $(Error(`Redirect loop`),{url:r,params:{},route:{id:null}}),url:r,route:{id:null}}),!b)return}else if(b.props.page.status>=400&&await I.updated.check())return await ze(),await L(r,s);if(at(),Le(y),ot(ee),b.props.page.url.pathname!==r.pathname&&(r.pathname=b.props.page.url.pathname),c=i?i.state:c,!i){let e=+!s,t={[C]:J+=e,[w]:Y+=e,[he]:c};(s?history.replaceState:history.pushState).call(history,t,``,r),s||Re(J,Y)}let x=_&&U?.id===_.id?U.fork:null;U?.fork&&!x?Ge():(U=null,Q={element:void 0,href:void 0}),b.props.page.state=c;let te;if(Xe){let t=(await Promise.all(Array.from(Je,e=>e(v.navigation)))).filter(e=>typeof e==`function`);if(t.length>0){function e(){t.forEach(e=>{W.delete(e)})}t.push(e),t.forEach(e=>{W.add(e)})}let n=v.navigation.to;G={...b.state,nav:{params:n.params,route:n.route,url:n.url}},b.props.page&&(b.props.page.url=r),!a&&document.activeElement instanceof HTMLElement&&document.activeElement!==document.body&&document.activeElement.blur();let i=x&&await x;i?te=i.commit():(N=null,et.$set(b.props),N&&Object.assign(b.props.page,N),Ne(b.props.page),te=e?.()),Qe=!0}else await ft(b,He,!1);let{activeElement:ne}=document;if(await te,await t(),await t(),X!==d){v.reject(Error(`navigation aborted`));return}b.props.page&&N&&Object.assign(b.props.page,N);let re=null;if(Ze){let e=i?i.scroll:o?E():null;e?scrollTo(e.x,e.y):(re=r.hash&&document.getElementById(zt(r)))?re.scrollIntoView():scrollTo(0,0)}let ie=document.activeElement!==ne&&document.activeElement!==document.body;!a&&!ie&&Ft(r,!re),Ze=!0,K=!1,v.fulfil(void 0),v.navigation.to&&(v.navigation.to.scroll=E()),W.forEach(e=>e(v.navigation)),n===`popstate`&&st(Y),I.navigating.set(M.current=null)}async function Ot(e,t,n,r,i){return e.origin===ge&&e.pathname===location.pathname&&!Ye?await St({status:r,error:n,url:e,route:t}):await L(e,i)}var Q={element:void 0,href:void 0};function kt(){let e,t;z.addEventListener(`mousemove`,t=>{let n=t.target;clearTimeout(e),e=setTimeout(()=>{i(n,T.hover)},20)});function n(e){e.defaultPrevented||i(e.composedPath()[0],T.tap)}z.addEventListener(`mousedown`,n),z.addEventListener(`touchstart`,n,{passive:!0});let r=new IntersectionObserver(e=>{for(let t of e)t.isIntersecting&&(dt(new URL(t.target.href)),r.unobserve(t.target))},{threshold:0});async function i(e,n){let r=be(e,z),i=r===Q.element&&r?.href===Q.href&&n>=t;if(!r||i)return;let{url:a,external:o,download:s}=xe(r,S,B.hash);if(o||s)return;let c=O(r),l=a&&Et(G.url)===Et(a);if(!(c.reload||l)){if(n<=c.preload_data){Q={element:r,href:r.href},t=T.tap;let e=await wt(a,!1);if(!e)return;ut(e)}else n<=c.preload_code&&(Q={element:r,href:r.href},t=n,dt(a))}}function a(){r.disconnect();for(let e of z.querySelectorAll(`a`)){let{url:t,external:n,download:i}=xe(e,S,B.hash);if(n||i)continue;let a=O(e);a.reload||(a.preload_code===T.viewport&&r.observe(e),a.preload_code===T.eager&&dt(t))}}W.add(a),a()}function $(e,t){if(e instanceof c)return e.body;let n=Oe(e),r=ke(e);return B.hooks.handleError({error:e,event:t,status:n,message:r})??{message:r}}function At(e){if(typeof e==`function`)V.push(e);else{let{href:t}=new URL(e,location.href);V.push(e=>e.href===t)}}function jt(){history.scrollRestoration=`manual`,addEventListener(`beforeunload`,e=>{let t=!1;if(ct(),!K){let e=It(G,void 0,null,`leave`),n={...e.navigation,cancel:()=>{t=!0,e.reject(Error(`navigation cancelled`))}};qe.forEach(e=>e(n))}t?(e.preventDefault(),e.returnValue=``):history.scrollRestoration=`auto`}),addEventListener(`visibilitychange`,()=>{document.visibilityState===`hidden`&&ct()}),navigator.connection?.saveData||kt(),z.addEventListener(`click`,async t=>{if(t.button||t.which!==1||t.metaKey||t.ctrlKey||t.shiftKey||t.altKey||t.defaultPrevented)return;let n=be(t.composedPath()[0],z);if(!n)return;let{url:r,external:i,target:a,download:o}=xe(n,S,B.hash);if(!r)return;if(a===`_parent`||a===`_top`){if(window.parent!==window)return}else if(a&&a!==`_self`)return;let s=O(n);if(!(n instanceof SVGAElement)&&r.protocol!==location.protocol&&r.protocol!==`https:`&&r.protocol!==`http:`||o)return;let[c,l]=(B.hash?r.hash.replace(/^#/,``):r.href).split(`#`),u=c===m(location);if(i||s.reload&&(!u||!l)){Dt({url:r,type:`link`,event:t})?K=!0:t.preventDefault();return}if(l!==void 0&&u){let[,i]=G.url.href.split(`#`);if(i===l){if(t.preventDefault(),l===``||l===`top`&&n.ownerDocument.getElementById(`top`)===null)scrollTo({top:0});else{let e=n.ownerDocument.getElementById(decodeURIComponent(l));e&&(e.scrollIntoView(),e.focus())}return}if(q=!0,Le(J),e(r),!s.replace_state)return;q=!1}t.preventDefault(),await new Promise(e=>{requestAnimationFrame(()=>{setTimeout(e,0)}),setTimeout(e,100)}),await Z({type:`link`,url:r,keepfocus:s.keepfocus,noscroll:s.noscroll,replace_state:s.replace_state??r.href===location.href,event:t})}),z.addEventListener(`submit`,e=>{if(e.defaultPrevented)return;let t=HTMLFormElement.prototype.cloneNode.call(e.target),n=e.submitter;if((n?.formTarget||t.target)===`_blank`||(n?.formMethod||t.method)!==`get`)return;let r=new URL(n?.hasAttribute(`formaction`)&&n?.formAction||t.action);if(k(r,S,!1))return;let i=e.target,a=O(i);if(a.reload)return;e.preventDefault(),e.stopPropagation();let o=new FormData(i,n);r.search=new URLSearchParams(o).toString(),Z({type:`form`,url:r,keepfocus:a.keepfocus,noscroll:a.noscroll,replace_state:a.replace_state??r.href===location.href,event:e})}),addEventListener(`popstate`,async t=>{if(!Pt){if(t.state?.[`sveltekit:history`]){let n=t.state[C];if(X={},n===J)return;let r=P[n],i=t.state[`sveltekit:states`]??{},a=new URL(t.state[`sveltekit:pageurl`]??location.href),o=t.state[w],s=G.url?m(location)===m(G.url):!1;if(o===Y&&(Qe||s)){i!==j.state&&(j.state=i),e(a),P[J]=E(),r&&scrollTo(r.x,r.y),J=n;return}let c=n-J;await Z({type:`popstate`,url:a,popped:{state:i,scroll:r,delta:c},accept:()=>{J=n,Y=o},block:()=>{history.go(-c)},nav_token:X,event:t})}else q||(e(new URL(location.href)),B.hash&&location.reload())}}),addEventListener(`hashchange`,()=>{q&&(q=!1,history.replaceState({...history.state,[C]:++J,[w]:Y},``,location.href))});for(let e of document.querySelectorAll(`link`))Ie.has(e.rel)&&(e.href=e.href);addEventListener(`pageshow`,e=>{e.persisted&&I.navigating.set(M.current=null)});function e(e){G.url=j.url=e,I.page.set(Lt(j)),I.page.notify()}}async function Mt(e,{status:t=200,error:n,node_ids:r,params:i,route:a,server_route:o,data:s,form:c}){Ye=!0;let u=new URL(location.href),d;({params:i={},route:a={id:null}}=await wt(u,!1)||{}),d=Be.find(({id:e})=>e===a.id);let f,p=!0;try{let e=r.map(async(t,n)=>{let r=s[n];return r?.uses&&(r.uses=Nt(r.uses)),mt({loader:B.nodes[t],url:u,params:i,route:a,parent:async()=>{let t={};for(let r=0;r<n;r+=1)Object.assign(t,(await e[r]).data);return t},server_data_node:_t(r)})}),o=await Promise.all(e);if(d){let e=d.layouts;for(let t=0;t<e.length;t++)e[t]||o.splice(t,0,void 0)}f=await pt({url:u,params:i,branch:o,status:t,error:n,errors:d?.errors,form:c,route:d??null})}catch(t){if(t instanceof l)return await L(new URL(t.location,location.href));f=await St({status:Oe(t),error:await $(t,{url:u,params:i,route:a}),url:u,route:a}),e.textContent=``,p=!1}f&&(f.props.page&&(f.props.page.state={}),await ft(f,e,p))}function Nt(e){return{dependencies:new Set(e?.dependencies??[]),params:new Set(e?.params??[]),parent:!!e?.parent,route:!!e?.route,url:!!e?.url,search_params:new Set(e?.search_params??[])}}var Pt=!1;function Ft(e,t=!0){let n=document.querySelector(`[autofocus]`);if(n)n.focus();else{let n=zt(e);if(n&&document.getElementById(n)){let{x:r,y:i}=E();setTimeout(()=>{let a=history.state;Pt=!0,location.replace(new URL(`#${n}`,location.href)),history.replaceState(a,``,e),t&&scrollTo(r,i),Pt=!1})}else{let e=document.body,t=e.getAttribute(`tabindex`);e.tabIndex=-1,e.focus({preventScroll:!0,focusVisible:!1}),t===null?e.removeAttribute(`tabindex`):e.setAttribute(`tabindex`,t)}let r=getSelection();if(r&&r.type!==`None`){let e=[];for(let t=0;t<r.rangeCount;t+=1)e.push(r.getRangeAt(t));setTimeout(()=>{if(r.rangeCount===e.length){for(let t=0;t<r.rangeCount;t+=1){let n=e[t],i=r.getRangeAt(t);if(n.commonAncestorContainer!==i.commonAncestorContainer||n.startContainer!==i.startContainer||n.endContainer!==i.endContainer||n.startOffset!==i.startOffset||n.endOffset!==i.endOffset)return}r.removeAllRanges()}})}}}function It(e,t,n,r,i=null){let a,o,s=new Promise((e,t)=>{a=e,o=t});return s.catch(h),{navigation:{from:{params:e.params,route:{id:e.route?.id??null},url:e.url,scroll:E()},to:n&&{params:t?.params??null,route:{id:t?.route?.id??null},url:n,scroll:i},willUnload:!t,type:r,complete:s},fulfil:a,reject:o}}function Lt(e){return{data:e.data,error:e.error,form:e.form,params:e.params,route:e.route,state:e.state,status:e.status,url:e.url}}function Rt(e){let t=new URL(e);return t.hash=decodeURIComponent(e.hash),t}function zt(e){let t;if(B.hash){let[,,n]=e.hash.split(`#`,3);t=n??``}else t=e.hash.slice(1);return decodeURIComponent(t)}export{Te as i,M as n,j as r,it as t};
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["../nodes/0.gonV4k8o.js","../chunks/eSlNf1Mv.js","../chunks/xihTtKlq.js","../assets/0.BvPOd6uh.css","../nodes/1.
|
|
2
|
-
import{$ as e,F as t,J as n,L as r,M as i,N as a,P as o,T as s,U as c,V as l,X as u,Y as d,a as f,bt as p,et as m,gt as h,ht as g,i as _,j as v,nt as y,ot as b,p as x,s as S,st as C,ut as w}from"../chunks/eSlNf1Mv.js";import"../chunks/xihTtKlq.js";var T=`modulepreload`,E=function(e,t){return new URL(e,t).href},D={},O=function(e,t,n){let r=Promise.resolve();if(t&&t.length>0){let e=document.getElementsByTagName(`link`),i=document.querySelector(`meta[property=csp-nonce]`),a=i?.nonce||i?.getAttribute(`nonce`);function o(e){return Promise.all(e.map(e=>Promise.resolve(e).then(e=>({status:`fulfilled`,value:e}),e=>({status:`rejected`,reason:e}))))}function s(e){return import.meta.resolve?import.meta.resolve(e):new URL(e,import.meta.url).href}r=o(t.map(t=>{if(t=E(t,n),t=s(t),t in D)return;D[t]=!0;let r=t.endsWith(`.css`);for(let n=e.length-1;n>=0;n--){let i=e[n];if(i.href===t&&(!r||i.rel===`stylesheet`))return}let i=document.createElement(`link`);if(i.rel=r?`stylesheet`:T,r||(i.as=`script`),i.crossOrigin=``,i.href=t,a&&i.setAttribute(`nonce`,a),document.head.appendChild(i),r)return new Promise((e,n)=>{i.addEventListener(`load`,e),i.addEventListener(`error`,()=>n(Error(`Unable to preload CSS for ${t}`)))})}).filter(e=>e!==void 0))}function i(e){let t=new Event(`vite:preloadError`,{cancelable:!0});if(t.payload=e,window.dispatchEvent(t),!t.defaultPrevented)throw e}return r.then(t=>{for(let e of t||[])e.status===`rejected`&&i(e.reason);return e().catch(i)})},k={},A=t(`<div id="svelte-announcer" aria-live="assertive" aria-atomic="true" style="position: absolute; left: 0; top: 0; clip: rect(0 0 0 0); clip-path: inset(50%); overflow: hidden; white-space: nowrap; width: 1px; height: 1px"><!></div>`),j=t(`<!> <!>`,1);function M(t,f){h(f,!0);let T=S(f,`components`,23,()=>[]),E=S(f,`data_0`,3,null),D=S(f,`data_1`,3,null);u(()=>f.stores.page.set(f.page)),d(()=>{f.stores,f.page,f.constructors,T(),f.form,E(),D(),f.stores.page.notify()});let O=C(!1),k=C(!1),M=C(null);_(()=>{let e=f.stores.page.subscribe(()=>{l(O)&&(b(k,!0),c().then(()=>{b(M,document.title||`untitled page`,!0)}))});return b(O,!0),e});let N=w(()=>f.constructors[1]);var P=j(),F=m(P),I=e=>{let t=w(()=>f.constructors[0]);var n=o(),r=m(n);s(r,()=>l(t),(e,t)=>{x(t(e,{get data(){return E()},get form(){return f.form},get params(){return f.page.params},children:(e,t)=>{var n=o(),r=m(n);s(r,()=>l(N),(e,t)=>{x(t(e,{get data(){return D()},get form(){return f.form},get params(){return f.page.params}}),e=>T()[1]=e,()=>T()?.[1])}),a(e,n)},$$slots:{default:!0}}),e=>T()[0]=e,()=>T()?.[0])}),a(e,n)},L=e=>{let t=w(()=>f.constructors[0]);var n=o(),r=m(n);s(r,()=>l(t),(e,t)=>{x(t(e,{get data(){return E()},get form(){return f.form},get params(){return f.page.params}}),e=>T()[0]=e,()=>T()?.[0])}),a(e,n)};v(F,e=>{f.constructors[1]?e(I):e(L,-1)});var R=y(F,2),z=t=>{var o=A(),s=e(o),c=e=>{var t=r();n(()=>i(t,l(M))),a(e,t)};v(s,e=>{l(k)&&e(c)}),p(o),a(t,o)};v(R,e=>{l(O)&&e(z)}),a(t,P),g()}var N=f(M),P=[()=>O(()=>import(`../nodes/0.gonV4k8o.js`),__vite__mapDeps([0,1,2,3]),import.meta.url),()=>O(()=>import(`../nodes/1.
|
|
1
|
+
const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["../nodes/0.gonV4k8o.js","../chunks/eSlNf1Mv.js","../chunks/xihTtKlq.js","../assets/0.BvPOd6uh.css","../nodes/1.DU7XW1yU.js","../chunks/Dlyr8WaG.js","../nodes/2.z56Ql74q.js","../assets/2.D_B1Of5x.css"])))=>i.map(i=>d[i]);
|
|
2
|
+
import{$ as e,F as t,J as n,L as r,M as i,N as a,P as o,T as s,U as c,V as l,X as u,Y as d,a as f,bt as p,et as m,gt as h,ht as g,i as _,j as v,nt as y,ot as b,p as x,s as S,st as C,ut as w}from"../chunks/eSlNf1Mv.js";import"../chunks/xihTtKlq.js";var T=`modulepreload`,E=function(e,t){return new URL(e,t).href},D={},O=function(e,t,n){let r=Promise.resolve();if(t&&t.length>0){let e=document.getElementsByTagName(`link`),i=document.querySelector(`meta[property=csp-nonce]`),a=i?.nonce||i?.getAttribute(`nonce`);function o(e){return Promise.all(e.map(e=>Promise.resolve(e).then(e=>({status:`fulfilled`,value:e}),e=>({status:`rejected`,reason:e}))))}function s(e){return import.meta.resolve?import.meta.resolve(e):new URL(e,import.meta.url).href}r=o(t.map(t=>{if(t=E(t,n),t=s(t),t in D)return;D[t]=!0;let r=t.endsWith(`.css`);for(let n=e.length-1;n>=0;n--){let i=e[n];if(i.href===t&&(!r||i.rel===`stylesheet`))return}let i=document.createElement(`link`);if(i.rel=r?`stylesheet`:T,r||(i.as=`script`),i.crossOrigin=``,i.href=t,a&&i.setAttribute(`nonce`,a),document.head.appendChild(i),r)return new Promise((e,n)=>{i.addEventListener(`load`,e),i.addEventListener(`error`,()=>n(Error(`Unable to preload CSS for ${t}`)))})}).filter(e=>e!==void 0))}function i(e){let t=new Event(`vite:preloadError`,{cancelable:!0});if(t.payload=e,window.dispatchEvent(t),!t.defaultPrevented)throw e}return r.then(t=>{for(let e of t||[])e.status===`rejected`&&i(e.reason);return e().catch(i)})},k={},A=t(`<div id="svelte-announcer" aria-live="assertive" aria-atomic="true" style="position: absolute; left: 0; top: 0; clip: rect(0 0 0 0); clip-path: inset(50%); overflow: hidden; white-space: nowrap; width: 1px; height: 1px"><!></div>`),j=t(`<!> <!>`,1);function M(t,f){h(f,!0);let T=S(f,`components`,23,()=>[]),E=S(f,`data_0`,3,null),D=S(f,`data_1`,3,null);u(()=>f.stores.page.set(f.page)),d(()=>{f.stores,f.page,f.constructors,T(),f.form,E(),D(),f.stores.page.notify()});let O=C(!1),k=C(!1),M=C(null);_(()=>{let e=f.stores.page.subscribe(()=>{l(O)&&(b(k,!0),c().then(()=>{b(M,document.title||`untitled page`,!0)}))});return b(O,!0),e});let N=w(()=>f.constructors[1]);var P=j(),F=m(P),I=e=>{let t=w(()=>f.constructors[0]);var n=o(),r=m(n);s(r,()=>l(t),(e,t)=>{x(t(e,{get data(){return E()},get form(){return f.form},get params(){return f.page.params},children:(e,t)=>{var n=o(),r=m(n);s(r,()=>l(N),(e,t)=>{x(t(e,{get data(){return D()},get form(){return f.form},get params(){return f.page.params}}),e=>T()[1]=e,()=>T()?.[1])}),a(e,n)},$$slots:{default:!0}}),e=>T()[0]=e,()=>T()?.[0])}),a(e,n)},L=e=>{let t=w(()=>f.constructors[0]);var n=o(),r=m(n);s(r,()=>l(t),(e,t)=>{x(t(e,{get data(){return E()},get form(){return f.form},get params(){return f.page.params}}),e=>T()[0]=e,()=>T()?.[0])}),a(e,n)};v(F,e=>{f.constructors[1]?e(I):e(L,-1)});var R=y(F,2),z=t=>{var o=A(),s=e(o),c=e=>{var t=r();n(()=>i(t,l(M))),a(e,t)};v(s,e=>{l(k)&&e(c)}),p(o),a(t,o)};v(R,e=>{l(O)&&e(z)}),a(t,P),g()}var N=f(M),P=[()=>O(()=>import(`../nodes/0.gonV4k8o.js`),__vite__mapDeps([0,1,2,3]),import.meta.url),()=>O(()=>import(`../nodes/1.DU7XW1yU.js`),__vite__mapDeps([4,1,5,2]),import.meta.url),()=>O(()=>import(`../nodes/2.z56Ql74q.js`),__vite__mapDeps([6,1,2,7]),import.meta.url)],F=[],I={"/":[2]},L={handleError:(({error:e})=>{console.error(e)}),reroute:(()=>{}),transport:{}},R=Object.fromEntries(Object.entries(L.transport).map(([e,t])=>[e,t.decode])),z=Object.fromEntries(Object.entries(L.transport).map(([e,t])=>[e,t.encode])),B=!1,V=(e,t)=>R[e](t),H=()=>O(()=>import(`../chunks/Bjy-W4x2.js`).then(e=>e.default),[],import.meta.url);export{V as decode,R as decoders,I as dictionary,z as encoders,H as get_error_template,B as hash,L as hooks,k as matchers,P as nodes,N as root,F as server_loads};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{i as e,t}from"../chunks/Dlyr8WaG.js";export{e as load_css,t as start};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{F as e,J as t,M as n,N as r,et as i,gt as a,ht as o,nt as s,tt as c}from"../chunks/eSlNf1Mv.js";import{r as l}from"../chunks/
|
|
1
|
+
import{F as e,J as t,M as n,N as r,et as i,gt as a,ht as o,nt as s,tt as c}from"../chunks/eSlNf1Mv.js";import{r as l}from"../chunks/Dlyr8WaG.js";import"../chunks/xihTtKlq.js";var u={get data(){return l.data},get error(){return l.error},get form(){return l.form},get params(){return l.params},get route(){return l.route},get state(){return l.state},get status(){return l.status},get url(){return l.url}},d=e(`<h1> </h1> <p> </p>`,1);function f(e,l){a(l,!0);var f=d(),p=i(f),m=c(p,!0),h=s(p,2),g=c(h,!0);t(()=>{n(m,u.status),n(g,u.error?.message)}),r(e,f),o()}export{f as component};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":"
|
|
1
|
+
{"version":"1789523063561"}
|
package/vendor/build/index.html
CHANGED
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
<!doctype html>
|
|
2
2
|
<html lang="zh-Hans" data-theme="coffee">
|
|
3
|
-
<head><meta charset="utf-8" /><meta name="viewport" content="width=device-width, initial-scale=1" /><link href="/_app/immutable/entry/start.
|
|
4
|
-
<link href="/_app/immutable/chunks/
|
|
3
|
+
<head><meta charset="utf-8" /><meta name="viewport" content="width=device-width, initial-scale=1" /><link href="/_app/immutable/entry/start.IbYtEdtO.js" rel="modulepreload">
|
|
4
|
+
<link href="/_app/immutable/chunks/Dlyr8WaG.js" rel="modulepreload">
|
|
5
5
|
<link href="/_app/immutable/chunks/eSlNf1Mv.js" rel="modulepreload">
|
|
6
|
-
<link href="/_app/immutable/entry/app.
|
|
6
|
+
<link href="/_app/immutable/entry/app.BTQVdz-J.js" rel="modulepreload">
|
|
7
7
|
<link href="/_app/immutable/chunks/xihTtKlq.js" rel="modulepreload">
|
|
8
8
|
<link href="/_app/immutable/nodes/0.gonV4k8o.js" rel="modulepreload">
|
|
9
9
|
|
|
@@ -11,15 +11,15 @@
|
|
|
11
11
|
<body data-sveltekit-preload-data="hover"><div style="display: contents">
|
|
12
12
|
<script>
|
|
13
13
|
{
|
|
14
|
-
|
|
14
|
+
__sveltekit_h0vvap = {
|
|
15
15
|
base: ""
|
|
16
16
|
};
|
|
17
17
|
|
|
18
18
|
const element = document.currentScript.parentElement;
|
|
19
19
|
|
|
20
20
|
Promise.all([
|
|
21
|
-
import("/_app/immutable/entry/start.
|
|
22
|
-
import("/_app/immutable/entry/app.
|
|
21
|
+
import("/_app/immutable/entry/start.IbYtEdtO.js"),
|
|
22
|
+
import("/_app/immutable/entry/app.BTQVdz-J.js")
|
|
23
23
|
]).then(([kit, app]) => {
|
|
24
24
|
kit.start(app, element);
|
|
25
25
|
});
|
|
@@ -17,6 +17,7 @@ user = "./workspace/.lamplit/profile/user-avatar.png"
|
|
|
17
17
|
[codex]
|
|
18
18
|
model = "gpt-5.6-luna"
|
|
19
19
|
# The installed launcher selects and verifies its matching standalone app-server.
|
|
20
|
+
# A checkout configuration may set command to a verified codex-app-server path.
|
|
20
21
|
# local_compaction = true
|
|
21
22
|
# home = "/path/to/a/Codex-home" # omit to use the existing Codex login
|
|
22
23
|
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
# Optional Lamplit ecosystem MCPs.
|
|
2
|
+
#
|
|
3
|
+
# CFL itself needs only its bundled `companion` MCP. Start CFL once to create
|
|
4
|
+
# <workspace>/.codex/config.toml, then copy the tables below into that file if
|
|
5
|
+
# you want these integrations. CFL preserves operator-provided MCP entries and
|
|
6
|
+
# never waits for them before starting the Partner.
|
|
7
|
+
|
|
8
|
+
# FlickNote stores and retrieves local-first notes through its user daemon.
|
|
9
|
+
# Install: brew install GuionAI/tap/flicknote
|
|
10
|
+
# Then authenticate and install/start the daemon: flicknote login
|
|
11
|
+
# Check daemon readiness before use: flicknote daemon status
|
|
12
|
+
# Docs: https://github.com/GuionAI/flicknote-cli#install
|
|
13
|
+
# https://github.com/GuionAI/flicknote-cli#mcp-server
|
|
14
|
+
[mcp_servers.flicknote]
|
|
15
|
+
command = "flicknote"
|
|
16
|
+
args = ["mcp"]
|
|
17
|
+
|
|
18
|
+
# Guion Web provides search, documentation lookup, source search, and fetching.
|
|
19
|
+
# Install (Node.js 20+): npm install --global @guionai/web
|
|
20
|
+
# This process uses the managed Kepos Bridge search provider.
|
|
21
|
+
# Docs: https://github.com/GuionAI/web#install-and-configure
|
|
22
|
+
# https://github.com/GuionAI/web#mcp
|
|
23
|
+
[mcp_servers.web]
|
|
24
|
+
command = "web"
|
|
25
|
+
args = ["mcp", "--provider", "kepos-bridge"]
|
package/vendor/runtime/cli.mjs
CHANGED
|
@@ -6181,16 +6181,14 @@ const schema = object({
|
|
|
6181
6181
|
}).strict().optional(),
|
|
6182
6182
|
port: number$1().int().min(1024).max(65535).default(3082),
|
|
6183
6183
|
codex: object({
|
|
6184
|
-
command: string().min(1).default("codex"),
|
|
6185
|
-
executable_type: _enum(["cli", "app-server"]).default("cli"),
|
|
6184
|
+
command: string().min(1).default("codex-app-server"),
|
|
6186
6185
|
model: string().min(1).default(DEFAULT_CODEX_MODEL),
|
|
6187
6186
|
version: literal(SUPPORTED_CODEX_VERSION).default(SUPPORTED_CODEX_VERSION),
|
|
6188
6187
|
home: string().min(1).optional(),
|
|
6189
6188
|
provenance: string().min(1).optional(),
|
|
6190
6189
|
local_compaction: boolean().default(false)
|
|
6191
6190
|
}).strict().default({
|
|
6192
|
-
command: "codex",
|
|
6193
|
-
executable_type: "cli",
|
|
6191
|
+
command: "codex-app-server",
|
|
6194
6192
|
model: DEFAULT_CODEX_MODEL,
|
|
6195
6193
|
version: SUPPORTED_CODEX_VERSION,
|
|
6196
6194
|
local_compaction: false
|
|
@@ -62649,68 +62647,30 @@ function hookCommand(contextPath) {
|
|
|
62649
62647
|
function isRecord$1(value) {
|
|
62650
62648
|
return typeof value === "object" && value !== null && !Array.isArray(value);
|
|
62651
62649
|
}
|
|
62652
|
-
const selectedMcpServers = {
|
|
62653
|
-
web: {
|
|
62654
|
-
command: "web",
|
|
62655
|
-
args: [
|
|
62656
|
-
"mcp",
|
|
62657
|
-
"--provider",
|
|
62658
|
-
"kepos-bridge"
|
|
62659
|
-
]
|
|
62660
|
-
},
|
|
62661
|
-
project: {
|
|
62662
|
-
command: "project",
|
|
62663
|
-
args: ["mcp"]
|
|
62664
|
-
},
|
|
62665
|
-
flicknote: {
|
|
62666
|
-
command: "flicknote",
|
|
62667
|
-
args: ["mcp"]
|
|
62668
|
-
},
|
|
62669
|
-
"guion-email": { url: "https://mail.guion.io/mcp" }
|
|
62670
|
-
};
|
|
62671
|
-
const disabledMcpServers = [
|
|
62672
|
-
"og",
|
|
62673
|
-
"skill",
|
|
62674
|
-
"openaiDeveloperDocs"
|
|
62675
|
-
];
|
|
62676
62650
|
function sameValue(left, right) {
|
|
62677
62651
|
return JSON.stringify(left) === JSON.stringify(right);
|
|
62678
62652
|
}
|
|
62679
|
-
|
|
62653
|
+
/** Keep only CFL's installation-specific Companion endpoint current. */
|
|
62654
|
+
function ensureCompanionMcp(config, workspace) {
|
|
62680
62655
|
const servers = isRecord$1(config.mcp_servers) ? config.mcp_servers : {};
|
|
62681
62656
|
let changed = !isRecord$1(config.mcp_servers);
|
|
62682
|
-
|
|
62683
|
-
|
|
62684
|
-
|
|
62685
|
-
|
|
62686
|
-
|
|
62687
|
-
|
|
62688
|
-
|
|
62689
|
-
|
|
62690
|
-
for (const [key, value] of Object.entries(required)) if (!sameValue(server[key], value)) {
|
|
62691
|
-
server[key] = value;
|
|
62692
|
-
changed = true;
|
|
62693
|
-
}
|
|
62694
|
-
if (servers[name] !== server) {
|
|
62695
|
-
servers[name] = server;
|
|
62696
|
-
changed = true;
|
|
62697
|
-
}
|
|
62657
|
+
const required = {
|
|
62658
|
+
command: process.execPath,
|
|
62659
|
+
args: [fileURLToPath(new URL(`./${companionMcpFileName}`, import.meta.url)), resolve(workspace)]
|
|
62660
|
+
};
|
|
62661
|
+
const companion = isRecord$1(servers.companion) ? servers.companion : {};
|
|
62662
|
+
for (const [key, value] of Object.entries(required)) if (!sameValue(companion[key], value)) {
|
|
62663
|
+
companion[key] = value;
|
|
62664
|
+
changed = true;
|
|
62698
62665
|
}
|
|
62699
|
-
|
|
62700
|
-
|
|
62701
|
-
|
|
62702
|
-
server.enabled = false;
|
|
62703
|
-
changed = true;
|
|
62704
|
-
}
|
|
62705
|
-
if (servers[name] !== server) {
|
|
62706
|
-
servers[name] = server;
|
|
62707
|
-
changed = true;
|
|
62708
|
-
}
|
|
62666
|
+
if (servers.companion !== companion) {
|
|
62667
|
+
servers.companion = companion;
|
|
62668
|
+
changed = true;
|
|
62709
62669
|
}
|
|
62710
62670
|
if (changed) config.mcp_servers = servers;
|
|
62711
62671
|
return changed;
|
|
62712
62672
|
}
|
|
62713
|
-
/** Add project-owned hooks and the
|
|
62673
|
+
/** Add project-owned hooks and the bundled Companion MCP while preserving config. */
|
|
62714
62674
|
async function ensureHookDeclaration(workspace, contextPath) {
|
|
62715
62675
|
const configPath = join(resolve(workspace), ".codex", "config.toml");
|
|
62716
62676
|
const command = hookCommand(contextPath);
|
|
@@ -62728,7 +62688,7 @@ async function ensureHookDeclaration(workspace, contextPath) {
|
|
|
62728
62688
|
}
|
|
62729
62689
|
const hooks = isRecord$1(config.hooks) ? config.hooks : {};
|
|
62730
62690
|
const sessionStart = Array.isArray(hooks.SessionStart) ? hooks.SessionStart : [];
|
|
62731
|
-
let changed =
|
|
62691
|
+
let changed = ensureCompanionMcp(config, workspace);
|
|
62732
62692
|
let own = false;
|
|
62733
62693
|
const normalizedGroups = sessionStart.map((group) => {
|
|
62734
62694
|
if (!isRecord$1(group) || !Array.isArray(group.hooks)) return group;
|
|
@@ -62863,18 +62823,28 @@ const compactionPrompt = [
|
|
|
62863
62823
|
].join("\n");
|
|
62864
62824
|
//#endregion
|
|
62865
62825
|
//#region apps/partner/runtime/provenance.ts
|
|
62826
|
+
const CFL_FORK_REPOSITORY = "https://github.com/lamplitisles/codex";
|
|
62827
|
+
const CFL_FORK_SOURCE_REVISION = "445477b6a83514611ac206d2ab04b79374555a4c";
|
|
62866
62828
|
const provenanceSchema = object({
|
|
62867
62829
|
schemaVersion: literal(1),
|
|
62868
|
-
forkRepository: literal(
|
|
62869
|
-
sourceRevision:
|
|
62870
|
-
releaseTag: string()
|
|
62830
|
+
forkRepository: literal(CFL_FORK_REPOSITORY),
|
|
62831
|
+
sourceRevision: string(),
|
|
62832
|
+
releaseTag: string(),
|
|
62871
62833
|
codexVersion: literal(SUPPORTED_CODEX_VERSION),
|
|
62872
|
-
target:
|
|
62834
|
+
target: _enum(["x86_64-unknown-linux-musl", "aarch64-apple-darwin"]),
|
|
62873
62835
|
executables: object({
|
|
62874
62836
|
"bin/codex-app-server": string().regex(/^[a-f0-9]{64}$/u),
|
|
62875
62837
|
"bin/codex-code-mode-host": string().regex(/^[a-f0-9]{64}$/u)
|
|
62876
62838
|
}).strict()
|
|
62877
|
-
}).strict()
|
|
62839
|
+
}).strict().superRefine((value, context) => {
|
|
62840
|
+
const mac = value.target === "aarch64-apple-darwin";
|
|
62841
|
+
const revision = mac ? "c1139f7b2793e94c14243689d756b09c0186708d" : CFL_FORK_SOURCE_REVISION;
|
|
62842
|
+
const tag = mac ? /^cfl\/v0\.154\.0-app-server-darwin\.[0-9]+$/u : /^cfl\/v0\.154\.0-app-server-musl\.[0-9]+$/u;
|
|
62843
|
+
if (value.sourceRevision !== revision || !tag.test(value.releaseTag)) context.addIssue({
|
|
62844
|
+
code: "custom",
|
|
62845
|
+
message: "Source revision/release identity does not match the selected platform"
|
|
62846
|
+
});
|
|
62847
|
+
});
|
|
62878
62848
|
async function sha256(path) {
|
|
62879
62849
|
const hash = createHash("sha256");
|
|
62880
62850
|
for await (const chunk of createReadStream(path)) hash.update(chunk);
|
|
@@ -64632,7 +64602,7 @@ async function convertDshSession(config, inputPath, companionStatePath, attachme
|
|
|
64632
64602
|
version: "0.1.0"
|
|
64633
64603
|
},
|
|
64634
64604
|
codexPath: selectedCodexPath,
|
|
64635
|
-
codexExecutableType:
|
|
64605
|
+
codexExecutableType: "app-server",
|
|
64636
64606
|
configOverrides: injected.configOverrides,
|
|
64637
64607
|
cwd: destination,
|
|
64638
64608
|
env: environment,
|
|
@@ -66237,7 +66207,7 @@ async function createPartner(config, credentials, dependencies = {}) {
|
|
|
66237
66207
|
version: "0.1.0"
|
|
66238
66208
|
},
|
|
66239
66209
|
codexPath: selectedCodexPath,
|
|
66240
|
-
codexExecutableType:
|
|
66210
|
+
codexExecutableType: "app-server",
|
|
66241
66211
|
configOverrides: injected.configOverrides,
|
|
66242
66212
|
cwd: paths.workspaceRoot,
|
|
66243
66213
|
env: environment,
|
|
@@ -66299,12 +66269,6 @@ async function createPartner(config, credentials, dependencies = {}) {
|
|
|
66299
66269
|
model: config.codex.model
|
|
66300
66270
|
}), { mode: 384 });
|
|
66301
66271
|
}
|
|
66302
|
-
const requiredMcpServers = [
|
|
66303
|
-
"companion",
|
|
66304
|
-
"flicknote",
|
|
66305
|
-
"project",
|
|
66306
|
-
"web"
|
|
66307
|
-
];
|
|
66308
66272
|
const readinessDeadline = Date.now() + 1e4;
|
|
66309
66273
|
for (;;) {
|
|
66310
66274
|
const mcpStatuses = [];
|
|
@@ -66317,17 +66281,10 @@ async function createPartner(config, credentials, dependencies = {}) {
|
|
|
66317
66281
|
mcpStatuses.push(...page.data);
|
|
66318
66282
|
cursor = page.nextCursor ?? void 0;
|
|
66319
66283
|
} while (cursor);
|
|
66320
|
-
const
|
|
66321
|
-
|
|
66322
|
-
|
|
66323
|
-
|
|
66324
|
-
if (status?.runtimeStatus === "connected" && (status.toolsError === null || status.toolsError === void 0)) continue;
|
|
66325
|
-
if (status?.runtimeStatus === "notStarted" || status?.runtimeStatus === "starting") transient.push(name);
|
|
66326
|
-
else terminal.push(name);
|
|
66327
|
-
}
|
|
66328
|
-
if (!terminal.length && !transient.length) break;
|
|
66329
|
-
if (terminal.length) throw new Error(`Required workspace MCP servers unavailable: ${terminal.join(", ")}`);
|
|
66330
|
-
if (Date.now() >= readinessDeadline) throw new Error(`Required workspace MCP servers unavailable after readiness timeout: ${transient.join(", ")}`);
|
|
66284
|
+
const companion = mcpStatuses.find((entry) => entry.name === "companion");
|
|
66285
|
+
if (companion?.runtimeStatus === "connected" && (companion.toolsError === null || companion.toolsError === void 0)) break;
|
|
66286
|
+
if (companion?.runtimeStatus !== "notStarted" && companion?.runtimeStatus !== "starting") throw new Error("Required workspace MCP servers unavailable: companion");
|
|
66287
|
+
if (Date.now() >= readinessDeadline) throw new Error("Required workspace MCP servers unavailable after readiness timeout: companion");
|
|
66331
66288
|
await new Promise((resolve) => setTimeout(resolve, 100));
|
|
66332
66289
|
}
|
|
66333
66290
|
if (response.model !== void 0 && response.model !== config.codex.model) throw new Error(`Codex selected ${String(response.model)} instead of configured ${config.codex.model}`);
|
|
@@ -67510,7 +67467,6 @@ if (nativePackageRoot) {
|
|
|
67510
67467
|
codex: {
|
|
67511
67468
|
...config.codex,
|
|
67512
67469
|
command: join(root, "bin", "codex-app-server"),
|
|
67513
|
-
executable_type: "app-server",
|
|
67514
67470
|
provenance: join(root, "provenance.json")
|
|
67515
67471
|
}
|
|
67516
67472
|
};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{i as e,t}from"../chunks/BMiSuNVz.js";export{e as load_css,t as start};
|