@alook/app 0.0.100 → 0.0.102
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/bundled/email-worker/index.js +5 -1
- package/bundled/web/.open-next/.build/durable-objects/queue.js +5 -5
- package/bundled/web/.open-next/assets/BUILD_ID +1 -1
- package/bundled/web/.open-next/assets/_next/static/chunks/{0tvembqw.e82g.js → 01yvpio9kzobl.js} +1 -1
- package/bundled/web/.open-next/assets/_next/static/chunks/{0.9oyh86wn1fd.js → 06-36_p6krl~i.js} +1 -1
- package/bundled/web/.open-next/assets/_next/static/chunks/06lpxhe_9sltg.js +1 -0
- package/bundled/web/.open-next/assets/_next/static/chunks/{0uayv05d6mntr.js → 0byowbhmg_3u~.js} +1 -1
- package/bundled/web/.open-next/assets/_next/static/chunks/{0wx~9mjjiq42o.js → 0h1de3c3ehomh.js} +3 -3
- package/bundled/web/.open-next/assets/_next/static/chunks/0huy7.sigtt~2.css +1 -0
- package/bundled/web/.open-next/assets/_next/static/chunks/0hyshwdxcbwbq.js +1 -0
- package/bundled/web/.open-next/assets/_next/static/chunks/0k2238cv1yqp0.js +62 -0
- package/bundled/web/.open-next/assets/_next/static/chunks/{0dhez0ocwb1sn.js → 0r775oyts5ozc.js} +1 -1
- package/bundled/web/.open-next/assets/_next/static/chunks/{0u.pao5ubynoe.js → 0v4hr9uuvoz8q.js} +1 -1
- package/bundled/web/.open-next/assets/_next/static/chunks/{01uwb4d6kz814.js → 0y8rj~id6sl.y.js} +1 -1
- package/bundled/web/.open-next/assets/_next/static/chunks/10rvnbe-gw6a7.js +3 -0
- package/bundled/web/.open-next/assets/_next/static/chunks/10ux4o4nkn.sj.js +1 -0
- package/bundled/web/.open-next/assets/_next/static/chunks/{0xbk75wddja-u.js → 135zhgfi292f8.js} +2 -2
- package/bundled/web/.open-next/cache/{stPDLxY2tICyNcpCDMCz4 → vYwH57AQyFDz3H5YJt_2h}/_global-error.cache +1 -1
- package/bundled/web/.open-next/cache/{stPDLxY2tICyNcpCDMCz4 → vYwH57AQyFDz3H5YJt_2h}/_not-found.cache +1 -1
- package/bundled/web/.open-next/cache/{stPDLxY2tICyNcpCDMCz4 → vYwH57AQyFDz3H5YJt_2h}/privacy.cache +1 -1
- package/bundled/web/.open-next/cache/{stPDLxY2tICyNcpCDMCz4 → vYwH57AQyFDz3H5YJt_2h}/sitemap.xml.cache +1 -1
- package/bundled/web/.open-next/cloudflare/cache-assets-manifest.sql +1 -1
- package/bundled/web/.open-next/cloudflare/init.js +1 -1
- package/bundled/web/.open-next/dynamodb-provider/dynamodb-cache.json +1 -1
- package/bundled/web/.open-next/middleware/handler.mjs +4 -4
- package/bundled/web/.open-next/server-functions/default/src/web/.next/BUILD_ID +1 -1
- package/bundled/web/.open-next/server-functions/default/src/web/.next/build-manifest.json +3 -3
- package/bundled/web/.open-next/server-functions/default/src/web/.next/prerender-manifest.json +3 -3
- package/bundled/web/.open-next/server-functions/default/src/web/.next/server/app/(app)/invite/[token]/page_client-reference-manifest.js +1 -1
- package/bundled/web/.open-next/server-functions/default/src/web/.next/server/app/(app)/studio/new/page_client-reference-manifest.js +1 -1
- package/bundled/web/.open-next/server-functions/default/src/web/.next/server/app/(app)/w/[slug]/agents/[id]/activity/page_client-reference-manifest.js +1 -1
- package/bundled/web/.open-next/server-functions/default/src/web/.next/server/app/(app)/w/[slug]/agents/[id]/chat/[convId]/page_client-reference-manifest.js +1 -1
- package/bundled/web/.open-next/server-functions/default/src/web/.next/server/app/(app)/w/[slug]/agents/[id]/chat/page_client-reference-manifest.js +1 -1
- package/bundled/web/.open-next/server-functions/default/src/web/.next/server/app/(app)/w/[slug]/agents/[id]/email/page_client-reference-manifest.js +1 -1
- package/bundled/web/.open-next/server-functions/default/src/web/.next/server/app/(app)/w/[slug]/agents/[id]/files/page_client-reference-manifest.js +1 -1
- package/bundled/web/.open-next/server-functions/default/src/web/.next/server/app/(app)/w/[slug]/agents/[id]/meetings/page_client-reference-manifest.js +1 -1
- package/bundled/web/.open-next/server-functions/default/src/web/.next/server/app/(app)/w/[slug]/agents/[id]/page_client-reference-manifest.js +1 -1
- package/bundled/web/.open-next/server-functions/default/src/web/.next/server/app/(app)/w/[slug]/agents/new/page_client-reference-manifest.js +1 -1
- package/bundled/web/.open-next/server-functions/default/src/web/.next/server/app/(app)/w/[slug]/agents/page_client-reference-manifest.js +1 -1
- package/bundled/web/.open-next/server-functions/default/src/web/.next/server/app/(app)/w/[slug]/calendar/page_client-reference-manifest.js +1 -1
- package/bundled/web/.open-next/server-functions/default/src/web/.next/server/app/(app)/w/[slug]/flags/page_client-reference-manifest.js +1 -1
- package/bundled/web/.open-next/server-functions/default/src/web/.next/server/app/(app)/w/[slug]/help/email-setup/page_client-reference-manifest.js +1 -1
- package/bundled/web/.open-next/server-functions/default/src/web/.next/server/app/(app)/w/[slug]/home/page_client-reference-manifest.js +1 -1
- package/bundled/web/.open-next/server-functions/default/src/web/.next/server/app/(app)/w/[slug]/issues/page_client-reference-manifest.js +1 -1
- package/bundled/web/.open-next/server-functions/default/src/web/.next/server/app/(app)/w/[slug]/runtimes/page_client-reference-manifest.js +1 -1
- package/bundled/web/.open-next/server-functions/default/src/web/.next/server/app/(app)/w/[slug]/settings/page_client-reference-manifest.js +1 -1
- package/bundled/web/.open-next/server-functions/default/src/web/.next/server/app/(app)/w/[slug]/threads/[traceId]/page_client-reference-manifest.js +1 -1
- package/bundled/web/.open-next/server-functions/default/src/web/.next/server/app/(app)/w/[slug]/threads/page_client-reference-manifest.js +1 -1
- package/bundled/web/.open-next/server-functions/default/src/web/.next/server/app/(app)/w/[slug]/unread/page_client-reference-manifest.js +1 -1
- package/bundled/web/.open-next/server-functions/default/src/web/.next/server/app/(app)/workspaces/page_client-reference-manifest.js +1 -1
- package/bundled/web/.open-next/server-functions/default/src/web/.next/server/app/(auth)/sign-in/page_client-reference-manifest.js +1 -1
- package/bundled/web/.open-next/server-functions/default/src/web/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
- package/bundled/web/.open-next/server-functions/default/src/web/.next/server/app/page_client-reference-manifest.js +1 -1
- package/bundled/web/.open-next/server-functions/default/src/web/.next/server/app/privacy/page_client-reference-manifest.js +1 -1
- package/bundled/web/.open-next/server-functions/default/src/web/.next/server/app/templates/[id]/page_client-reference-manifest.js +1 -1
- package/bundled/web/.open-next/server-functions/default/src/web/.next/server/app/templates/page_client-reference-manifest.js +1 -1
- package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/0b5f_next_dist_esm_build_templates_app-route_08rz-qa.js +172 -572
- package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/[turbopack]_runtime.js +8 -7
- package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/_0i4u2y-._.js +1 -1
- package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/_0iw.~u_._.js +1 -1
- package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/_0j3ag~p._.js +1 -1
- package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/_0j_~vur._.js +1 -1
- package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/_0mk4o2l._.js +1 -1
- package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/_0r0h9so._.js +5 -4
- package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/ssr/01k0_lucide-react_dist_esm_icons_0q8k8yb._.js +3 -0
- package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/ssr/{[root-of-the-server]__0r7fdlr._.js → [root-of-the-server]__05g0phj._.js} +1 -1
- package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/ssr/{[root-of-the-server]__07of89~._.js → [root-of-the-server]__06c6dak._.js} +2 -2
- package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/ssr/{[root-of-the-server]__0cdpfp7._.js → [root-of-the-server]__0uv4dv6._.js} +2 -2
- package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/ssr/[turbopack]_runtime.js +8 -7
- package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/ssr/_02.xen~._.js +1 -1
- package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/ssr/{_0.q_x36._.js → _06a692f._.js} +1 -1
- package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/ssr/_09n89mu._.js +1 -1
- package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/ssr/_0_.06ux._.js +1 -1
- package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/ssr/{_0a8f3fa._.js → _0c-ma68._.js} +1 -1
- package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/ssr/_0sby7nn._.js +64 -0
- package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/ssr/_0u~xh2v._.js +1 -1
- package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/ssr/_0xhx.5_._.js +1 -1
- package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/ssr/{_0wtsjmd._.js → _0~twhbc._.js} +1 -1
- package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/ssr/_12yhe5_._.js +1 -1
- package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/ssr/src_web_src_0stugv_._.js +1 -1
- package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/ssr/src_web_src_0~23g-y._.js +2 -2
- package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/ssr/src_web_src_app_(app)_w_[slug]_calendar_page_tsx_01geiyd._.js +1 -1
- package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/ssr/src_web_src_app_(app)_w_[slug]_home_page_tsx_0lkx78f._.js +1 -1
- package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/ssr/src_web_src_components_home_home-page_tsx_0to84tv._.js +1 -37
- package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/ssr/src_web_src_lib_templates_index_ts_13n9_2e._.js +172 -572
- package/bundled/web/.open-next/server-functions/default/src/web/.next/server/middleware-build-manifest.js +3 -3
- package/bundled/web/.open-next/server-functions/default/src/web/.next/server/middleware-manifest.json +5 -5
- package/bundled/web/.open-next/server-functions/default/src/web/.next/server/server-reference-manifest.js +1 -1
- package/bundled/web/.open-next/server-functions/default/src/web/.next/server/server-reference-manifest.json +1 -1
- package/bundled/web/.open-next/server-functions/default/src/web/handler.mjs +444 -1542
- package/bundled/web/.open-next/server-functions/default/src/web/handler.mjs.meta.json +171 -153
- package/bundled/web/.open-next/server-functions/default/src/web/index.mjs +3 -3
- package/bundled/web/wrangler.toml +1 -1
- package/bundled/ws-do/index.js +5 -1
- package/dist/cli/index.js +8 -4
- package/dist/cli/session-runner.js +6 -2
- package/dist/index.js +5 -1
- package/package.json +1 -1
- package/bundled/web/.open-next/assets/_next/static/chunks/01mduafj8.t03.js +0 -37
- package/bundled/web/.open-next/assets/_next/static/chunks/051._099hez6h.js +0 -1
- package/bundled/web/.open-next/assets/_next/static/chunks/07ju9-jia-17m.js +0 -325
- package/bundled/web/.open-next/assets/_next/static/chunks/09m73_4eia.5a.css +0 -1
- package/bundled/web/.open-next/assets/_next/static/chunks/09tp3dnnhv6a0.js +0 -3
- package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/ssr/_13__3im._.js +0 -327
- /package/bundled/web/.open-next/assets/_next/static/{stPDLxY2tICyNcpCDMCz4 → vYwH57AQyFDz3H5YJt_2h}/_buildManifest.js +0 -0
- /package/bundled/web/.open-next/assets/_next/static/{stPDLxY2tICyNcpCDMCz4 → vYwH57AQyFDz3H5YJt_2h}/_clientMiddlewareManifest.js +0 -0
- /package/bundled/web/.open-next/assets/_next/static/{stPDLxY2tICyNcpCDMCz4 → vYwH57AQyFDz3H5YJt_2h}/_ssgManifest.js +0 -0
- /package/bundled/web/.open-next/cache/{stPDLxY2tICyNcpCDMCz4 → vYwH57AQyFDz3H5YJt_2h}/robots.txt.cache +0 -0
package/bundled/web/.open-next/assets/_next/static/chunks/{0dhez0ocwb1sn.js → 0r775oyts5ozc.js}
RENAMED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
(globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,275351,e=>{"use strict";let t,a,r,n,s=(e,t)=>t.some(t=>e instanceof t),i=new WeakMap,l=new WeakMap,o=new WeakMap,c={get(e,t,a){if(e instanceof IDBTransaction){if("done"===t)return i.get(e);if("store"===t)return a.objectStoreNames[1]?void 0:a.objectStore(a.objectStoreNames[0])}return d(e[t])},set:(e,t,a)=>(e[t]=a,!0),has:(e,t)=>e instanceof IDBTransaction&&("done"===t||"store"===t)||t in e};function d(e){if(e instanceof IDBRequest){let t;return t=new Promise((t,a)=>{let r=()=>{e.removeEventListener("success",n),e.removeEventListener("error",s)},n=()=>{t(d(e.result)),r()},s=()=>{a(e.error),r()};e.addEventListener("success",n),e.addEventListener("error",s)}),o.set(t,e),t}if(l.has(e))return l.get(e);let t=function(e){if("function"==typeof e)return(n||(n=[IDBCursor.prototype.advance,IDBCursor.prototype.continue,IDBCursor.prototype.continuePrimaryKey])).includes(e)?function(...t){return e.apply(u(this),t),d(this.request)}:function(...t){return d(e.apply(u(this),t))};return(e instanceof IDBTransaction&&function(e){if(i.has(e))return;let t=new Promise((t,a)=>{let r=()=>{e.removeEventListener("complete",n),e.removeEventListener("error",s),e.removeEventListener("abort",s)},n=()=>{t(),r()},s=()=>{a(e.error||new DOMException("AbortError","AbortError")),r()};e.addEventListener("complete",n),e.addEventListener("error",s),e.addEventListener("abort",s)});i.set(e,t)}(e),s(e,r||(r=[IDBDatabase,IDBObjectStore,IDBIndex,IDBCursor,IDBTransaction])))?new Proxy(e,c):e}(e);return t!==e&&(l.set(e,t),o.set(t,e)),t}let u=e=>o.get(e),h=["get","getKey","getAll","getAllKeys","count"],g=["put","add","delete","clear"],f=new Map;function m(e,t){if(!(e instanceof IDBDatabase&&!(t in e)&&"string"==typeof t))return;if(f.get(t))return f.get(t);let a=t.replace(/FromIndex$/,""),r=t!==a,n=g.includes(a);if(!(a in(r?IDBIndex:IDBObjectStore).prototype)||!(n||h.includes(a)))return;let s=async function(e,...t){let s=this.transaction(e,n?"readwrite":"readonly"),i=s.store;return r&&(i=i.index(t.shift())),(await Promise.all([i[a](...t),n&&s.done]))[0]};return f.set(t,s),s}c={...t=c,get:(e,a,r)=>m(e,a)||t.get(e,a,r),has:(e,a)=>!!m(e,a)||t.has(e,a)};let p=["continue","continuePrimaryKey","advance"],x={},v=new WeakMap,b=new WeakMap,y={get(e,t){if(!p.includes(t))return e[t];let a=x[t];return a||(a=x[t]=function(...e){v.set(this,b.get(this)[t](...e))}),a}};async function*k(...e){let t=this;if(t instanceof IDBCursor||(t=await t.openCursor(...e)),!t)return;let a=new Proxy(t,y);for(b.set(a,t),o.set(a,u(t));t;)yield a,t=await (v.get(a)||t.continue()),v.delete(a)}function w(e,t){return t===Symbol.asyncIterator&&s(e,[IDBIndex,IDBObjectStore,IDBCursor])||"iterate"===t&&s(e,[IDBIndex,IDBObjectStore])}c={...a=c,get:(e,t,r)=>w(e,t)?k:a.get(e,t,r),has:(e,t)=>w(e,t)||a.has(e,t)};let j=null,_=null;function C(e){return"u"<typeof indexedDB?null:j&&_===e?j:(_=e,j=function(e,{blocked:t,upgrade:a,blocking:r,terminated:n}={}){let s=indexedDB.open(e,1),i=d(s);return a&&s.addEventListener("upgradeneeded",e=>{a(d(s.result),e.oldVersion,e.newVersion,d(s.transaction),e)}),t&&s.addEventListener("blocked",e=>t(e.oldVersion,e.newVersion,e)),i.then(e=>{n&&e.addEventListener("close",()=>n()),r&&e.addEventListener("versionchange",e=>r(e.oldVersion,e.newVersion,e))}).catch(()=>{}),i}(`alook-chat-cache-${e}`,{upgrade(e){let t=e.createObjectStore("messages",{keyPath:["conversation_id","id"]});t.createIndex("by-conversation","conversation_id",{unique:!1}),t.createIndex("by-created",["conversation_id","created_at"],{unique:!1}),e.createObjectStore("cache_meta",{keyPath:"conversation_id"})}}))}function N(e){return e?C(e):j}async function D(e,t){let a=N(t);if(!a)return null;try{let t=await a,r=await t.getAllFromIndex("messages","by-conversation",e);if(0===r.length)return null;let n=r.filter(e=>"buffered"!==e.status&&!e.id.startsWith("temp-"));n.sort((e,t)=>{let a=e.created_at.localeCompare(t.created_at);return 0!==a?a:e.id.localeCompare(t.id)});let s=await t.get("cache_meta",e);return s&&await t.put("cache_meta",{...s,lastAccessedAt:Date.now()}),n}catch{return null}}async function S(e,t,a,r,n){let s=N(n);if(!s)return null;try{let n=await s,i=await n.get("cache_meta",e);if(!i)return null;let l=IDBKeyRange.bound([e,""],[e,t],!1,!1),o=(await n.getAllFromIndex("messages","by-created",l)).filter(e=>!("buffered"===e.status||e.id.startsWith("temp-"))&&(e.created_at!==t||!(e.id>=a)));o.sort((e,t)=>{let a=t.created_at.localeCompare(e.created_at);return 0!==a?a:t.id.localeCompare(e.id)});let c=o.slice(0,r);if(c.length<r&&i.hasMore)return null;return await n.put("cache_meta",{...i,lastAccessedAt:Date.now()}),{messages:c.reverse(),hasMore:o.length>r||i.hasMore}}catch{return null}}async function M(e,t,a,r){let n=N(r);if(n)try{let r=await n,s=t.filter(e=>"buffered"!==e.status&&!e.id.startsWith("temp-"));if(0===s.length)return;let i=r.transaction(["messages","cache_meta"],"readwrite"),l=i.objectStore("messages"),o=i.objectStore("cache_meta");for(let e of s)await l.put(e);let c=await l.index("by-conversation").getAllKeys(e),d=Date.now(),u=s.reduce((e,t)=>e.created_at>t.created_at?e:t),h=await o.get(e),g=a??h?.hasMore??!0,f=h?.newestMessageId&&h.newestMessageId!==u.id?await (async()=>{let t=await l.get([e,h.newestMessageId]);return t&&t.created_at>u.created_at?t.id:u.id})():u.id,m={conversation_id:e,lastFetchedAt:d,lastAccessedAt:d,messageCount:c.length,newestMessageId:f,hasMore:g};await o.put(m),await i.done,T().catch(()=>{})}catch{}}async function E(e,t,a){let r=N(a);if(r&&!("buffered"===t.status||t.id.startsWith("temp-")))try{let a=await r,n=await a.get("cache_meta",e);if(!n)return;let s=await a.get("messages",[e,t.id]);await a.put("messages",t),await a.put("cache_meta",{...n,lastAccessedAt:Date.now(),messageCount:s?n.messageCount:n.messageCount+1,newestMessageId:t.id})}catch{}}async function I(e,t){let a=N(t);if(!a)return null;try{let t=await a;return await t.get("cache_meta",e)??null}catch{return null}}async function T(e=50){let t=N();if(t)try{let a=await t,r=await a.getAll("cache_meta");if(r.length<=e)return;r.sort((e,t)=>e.lastAccessedAt-t.lastAccessedAt);let n=r.slice(0,r.length-e),s=a.transaction(["messages","cache_meta"],"readwrite"),i=s.objectStore("messages"),l=s.objectStore("cache_meta");for(let e of n){for(let t of(await i.index("by-conversation").getAllKeys(e.conversation_id)))await i.delete(t);await l.delete(e.conversation_id)}await s.done}catch{}}async function A(){if("u">typeof indexedDB)try{j&&((await j).close(),j=null),_&&(await P(`alook-chat-cache-${_}`),_=null)}catch{}}async function P(e){return new Promise((t,a)=>{let r=indexedDB.deleteDatabase(e);r.onsuccess=()=>t(),r.onerror=()=>a(r.error),r.onblocked=()=>t()})}e.s(["appendCachedMessage",0,E,"clearAllCache",0,A,"getCacheMeta",0,I,"getCachedMessages",0,D,"getCachedMessagesBefore",0,S,"mergeCachedMessages",0,M,"openCacheDB",0,C],275351)},430744,e=>{"use strict";let t=(0,e.i(406963).default)("user",[["path",{d:"M19 21v-2a4 4 0 0 0-4-4H9a4 4 0 0 0-4 4v2",key:"975kel"}],["circle",{cx:"12",cy:"7",r:"4",key:"17ys0d"}]]);e.s(["User",0,t],430744)},986765,e=>{"use strict";let t=(0,e.i(406963).default)("calendar-off",[["path",{d:"M4.2 4.2A2 2 0 0 0 3 6v14a2 2 0 0 0 2 2h14a2 2 0 0 0 1.82-1.18",key:"16swn3"}],["path",{d:"M21 15.5V6a2 2 0 0 0-2-2H9.5",key:"yhw86o"}],["path",{d:"M16 2v4",key:"4m81vk"}],["path",{d:"M3 10h7",key:"1wap6i"}],["path",{d:"M21 10h-5.5",key:"quycpq"}],["path",{d:"m2 2 20 20",key:"1ooewy"}]]);e.s(["CalendarOff",0,t],986765)},835258,e=>{"use strict";let t=(0,e.i(406963).default)("repeat",[["path",{d:"m17 2 4 4-4 4",key:"nntrym"}],["path",{d:"M3 11v-1a4 4 0 0 1 4-4h14",key:"84bu3i"}],["path",{d:"m7 22-4-4 4-4",key:"1wqhfi"}],["path",{d:"M21 13v1a4 4 0 0 1-4 4H3",key:"1rx37r"}]]);e.s(["Repeat",0,t],835258)},681306,e=>{"use strict";let t=(0,e.i(406963).default)("chevron-left",[["path",{d:"m15 18-6-6 6-6",key:"1wnfg3"}]]);e.s(["ChevronLeft",0,t],681306)},136489,307214,e=>{"use strict";e.s(["CalendarDayPopover",()=>l],136489);var t=e.i(368075),a=e.i(224950),r=e.i(613349),n=e.i(835258);function s(e){let t=["bg-[oklch(0.62_0.13_60)] dark:bg-[oklch(0.72_0.11_60)]","bg-[oklch(0.62_0.12_120)] dark:bg-[oklch(0.72_0.10_120)]","bg-[oklch(0.62_0.12_220)] dark:bg-[oklch(0.72_0.10_220)]","bg-[oklch(0.62_0.13_30)] dark:bg-[oklch(0.72_0.11_30)]","bg-[oklch(0.62_0.12_280)] dark:bg-[oklch(0.72_0.10_280)]","bg-[oklch(0.62_0.12_160)] dark:bg-[oklch(0.72_0.10_160)]"],a=0;for(let t=0;t<e.length;t++)a=31*a+e.charCodeAt(t)|0;return t[Math.abs(a)%t.length]}function i(e){let t=["text-[oklch(0.52_0.14_60)] dark:text-[oklch(0.78_0.11_60)]","text-[oklch(0.52_0.13_120)] dark:text-[oklch(0.78_0.10_120)]","text-[oklch(0.52_0.13_220)] dark:text-[oklch(0.78_0.10_220)]","text-[oklch(0.52_0.14_30)] dark:text-[oklch(0.78_0.11_30)]","text-[oklch(0.52_0.13_280)] dark:text-[oklch(0.78_0.10_280)]","text-[oklch(0.52_0.13_160)] dark:text-[oklch(0.78_0.10_160)]"],a=0;for(let t=0;t<e.length;t++)a=31*a+e.charCodeAt(t)|0;return t[Math.abs(a)%t.length]}function l({events:e,agents:o,date:c,hiddenCount:d,open:u,onOpenChange:h,onSelectEvent:g}){let f=new Map;for(let e of o)f.set(e.id,e.name);let m=[...e].sort((e,t)=>new Date(e.scheduled_at).getTime()-new Date(t.scheduled_at).getTime()),p=c.toLocaleDateString(void 0,{weekday:"short",month:"short",day:"numeric"});return(0,t.jsxs)(a.Popover,{open:u,onOpenChange:h,children:[(0,t.jsxs)(a.PopoverTrigger,{"aria-label":`${d} more event${1===d?"":"s"}`,onClick:e=>e.stopPropagation(),className:"w-full truncate rounded-sm px-1.5 py-0.5 text-left text-[10px] text-muted-foreground hover:bg-accent hover:text-foreground transition-colors",children:["+",d," more"]}),(0,t.jsx)(a.PopoverContent,{className:"w-64",align:"start",children:(0,t.jsxs)("div",{className:"flex flex-col gap-1.5",children:[(0,t.jsx)("p",{className:"px-1 pb-1 text-[11px] font-medium text-muted-foreground",children:p}),(0,t.jsx)("div",{className:"flex flex-col gap-1",children:m.map(e=>{let a=!!e.repeat_interval;return(0,t.jsxs)("button",{type:"button",onClick:()=>{h(!1),g(e)},className:"flex items-center gap-2 rounded-sm px-1.5 py-1 text-left text-[11px] font-medium text-foreground/85 hover:bg-accent/60 transition-colors",title:`${a?"Recurring · ":""}${e.title}${f.get(e.agent_id)?` — ${f.get(e.agent_id)}`:""}`,children:[a?(0,t.jsx)(n.Repeat,{"aria-hidden":!0,className:(0,r.cn)("size-3 shrink-0",i(e.agent_id))}):(0,t.jsx)("span",{"aria-hidden":!0,className:(0,r.cn)("size-1.5 shrink-0 rounded-full",s(e.agent_id))}),(0,t.jsx)("span",{className:"shrink-0 text-[10px] text-muted-foreground tabular-nums",children:new Date(e.scheduled_at).toLocaleTimeString(void 0,{hour:"2-digit",minute:"2-digit",hour12:!1})}),(0,t.jsx)("span",{className:"truncate",children:e.title})]},`${e.id}@${e.occurrence_at}`)})})]})})]})}e.i(412532),e.s(["agentColor",0,function(e){let t=["bg-[oklch(0.78_0.08_60)] text-[oklch(0.25_0.05_60)]","bg-[oklch(0.80_0.07_120)] text-[oklch(0.25_0.05_120)]","bg-[oklch(0.80_0.06_220)] text-[oklch(0.25_0.05_220)]","bg-[oklch(0.80_0.07_30)] text-[oklch(0.25_0.05_30)]","bg-[oklch(0.80_0.06_280)] text-[oklch(0.25_0.05_280)]","bg-[oklch(0.80_0.07_160)] text-[oklch(0.25_0.05_160)]"],a=0;for(let t=0;t<e.length;t++)a=31*a+e.charCodeAt(t)|0;return t[Math.abs(a)%t.length]},"agentDot",0,s,"agentInk",0,i],307214)},412532,e=>{"use strict";e.s(["CalendarMonthGrid",()=>f,"buildMonthCells",()=>d,"dateKey",()=>u,"sameDay",()=>h,"stepDate",()=>g]);var t=e.i(368075),a=e.i(613349),r=e.i(681306),n=e.i(64873),s=e.i(835258),i=e.i(186339),l=e.i(136489),o=e.i(99475),c=e.i(307214);function d(e,t){let a=new Date(e,t,1).getDay(),r=[];for(let n=0;n<42;n++){let s=new Date(e,t,1-a+n);r.push({date:s,inMonth:s.getMonth()===t})}return r}function u(e){let t=e.getFullYear(),a=String(e.getMonth()+1).padStart(2,"0"),r=String(e.getDate()).padStart(2,"0");return`${t}-${a}-${r}`}function h(e,t){return e.getFullYear()===t.getFullYear()&&e.getMonth()===t.getMonth()&&e.getDate()===t.getDate()}function g(e,t){let a=new Date(e.getFullYear(),e.getMonth(),e.getDate());switch(t){case"ArrowLeft":return a.setDate(a.getDate()-1),a;case"ArrowRight":return a.setDate(a.getDate()+1),a;case"ArrowUp":return a.setDate(a.getDate()-7),a;case"ArrowDown":return a.setDate(a.getDate()+7),a;case"Home":return a.setDate(a.getDate()-a.getDay()),a;case"End":return a.setDate(a.getDate()+(6-a.getDay())),a;case"PageUp":{let e=0===a.getMonth()?a.getFullYear()-1:a.getFullYear(),t=(a.getMonth()-1+12)%12,r=new Date(e,t+1,0).getDate();return a.setFullYear(e,t,Math.min(a.getDate(),r)),a}case"PageDown":{let e=11===a.getMonth()?a.getFullYear()+1:a.getFullYear(),t=(a.getMonth()+1)%12,r=new Date(e,t+1,0).getDate();return a.setFullYear(e,t,Math.min(a.getDate(),r)),a}default:return null}}function f({year:e,month:g,events:m,agents:p,loading:x,focusedDate:v,openPopoverKey:b,onPopoverChange:y,onPrev:k,onNext:w,onJumpToToday:j,onJumpToDate:_,onSelectDay:C,onSelectEvent:N,headerExtras:D}){let S=d(e,g),M=new Date(e,g,1).toLocaleDateString(void 0,{month:"long",year:"numeric"}),E=new Map;for(let e of m){let t=u(new Date(e.scheduled_at));E.has(t)||E.set(t,[]),E.get(t).push(e)}let I=new Map;for(let e of p)I.set(e.id,e.name);let T=new Date,A=function(e,t,a=new Date){return a.getFullYear()===e&&a.getMonth()===t}(e,g,T);return(0,t.jsxs)("div",{className:"flex flex-col gap-3",children:[(0,t.jsxs)("div",{className:"flex items-center justify-between flex-wrap gap-2",children:[(0,t.jsx)("div",{className:"flex items-center gap-2",children:(0,t.jsx)("h2",{className:"text-sm font-medium tabular-nums",children:M})}),(0,t.jsxs)("div",{className:"flex items-center gap-2",children:[D,(0,t.jsxs)("div",{className:"flex items-center gap-1",children:[(0,t.jsx)("button",{type:"button","aria-label":"Previous month",onClick:k,className:"flex size-9 sm:size-7 items-center justify-center rounded-md text-muted-foreground hover:bg-accent hover:text-foreground transition-colors",children:(0,t.jsx)(r.ChevronLeft,{className:"size-4"})}),(0,t.jsx)(i.Button,{variant:"outline",size:"sm",onClick:j,disabled:A,className:"h-7 px-2.5 text-xs",children:"Today"}),(0,t.jsx)("button",{type:"button","aria-label":"Next month",onClick:w,className:"flex size-9 sm:size-7 items-center justify-center rounded-md text-muted-foreground hover:bg-accent hover:text-foreground transition-colors",children:(0,t.jsx)(n.ChevronRight,{className:"size-4"})})]}),(0,t.jsx)(o.CalendarDatePicker,{value:v,onChange:_,ariaLabel:"Jump to date"})]})]}),(0,t.jsx)("div",{className:"grid grid-cols-7 text-[11px] text-muted-foreground",children:["Sun","Mon","Tue","Wed","Thu","Fri","Sat"].map(e=>(0,t.jsxs)("div",{className:"px-1 sm:px-2 py-1 font-medium",children:[(0,t.jsx)("span",{className:"sm:hidden",children:e[0]}),(0,t.jsx)("span",{className:"hidden sm:inline",children:e})]},e))}),(0,t.jsxs)("div",{className:"relative",children:[x&&(0,t.jsx)("div",{"aria-hidden":!0,className:"pointer-events-none absolute inset-x-0 top-0 z-20 h-0.5 overflow-hidden rounded-t-lg",children:(0,t.jsx)("div",{className:"h-full w-1/3 animate-[calendar-progress_1.2s_ease-in-out_infinite] bg-foreground/40"})}),(0,t.jsx)("div",{role:"grid","aria-label":`Calendar ${M}`,"aria-busy":x||void 0,className:(0,a.cn)("grid grid-cols-7 gap-px rounded-lg border border-border/50 bg-border/40 overflow-hidden transition-opacity",x&&"opacity-70"),"data-testid":"calendar-month-grid",children:S.map((e,r)=>{let n=u(e.date),i=E.get(n)??[],o=h(T,e.date),d=h(v,e.date),g=Math.max(0,i.length-3);return(0,t.jsxs)("div",{role:"gridcell","data-date":n,"data-focused":d?"true":void 0,"aria-current":o?"date":void 0,tabIndex:d?0:-1,onClick:()=>C(e.date),onKeyDown:t=>{("Enter"===t.key||" "===t.key)&&t.target===t.currentTarget&&(t.preventDefault(),C(e.date))},className:(0,a.cn)("group flex min-h-16 sm:min-h-24 flex-col gap-1 p-1 sm:p-2 text-left transition-colors bg-background outline-none cursor-pointer",!e.inMonth&&"bg-muted/40 text-muted-foreground",d&&"ring-2 ring-inset ring-ring/60 relative z-10"),children:[(0,t.jsx)("div",{className:"flex items-center justify-between",children:(0,t.jsx)("span",{className:(0,a.cn)("text-[11px] tabular-nums",o&&"flex size-5 items-center justify-center rounded-full bg-foreground text-background font-medium"),children:e.date.getDate()})}),(0,t.jsxs)("div",{className:"flex flex-col gap-1 [&>:nth-child(3)]:hidden [&>:nth-child(3)]:sm:flex",children:[i.slice(0,3).map(e=>{let r=!!e.repeat_interval;return(0,t.jsxs)("span",{role:"button",tabIndex:-1,onClick:t=>{t.stopPropagation(),N(e)},onKeyDown:t=>{("Enter"===t.key||" "===t.key)&&(t.stopPropagation(),N(e))},className:"flex items-center gap-1.5 rounded-sm px-1 py-0.5 text-[9px] sm:text-[10px] font-medium text-foreground/85 hover:bg-accent/60 transition-colors cursor-pointer",title:`${r?"Recurring · ":""}${e.title}${I.get(e.agent_id)?` — ${I.get(e.agent_id)}`:""}`,children:[r?(0,t.jsx)(s.Repeat,{"aria-hidden":!0,className:(0,a.cn)("size-2.5 shrink-0",(0,c.agentInk)(e.agent_id))}):(0,t.jsx)("span",{"aria-hidden":!0,className:(0,a.cn)("size-1.5 shrink-0 rounded-full",(0,c.agentDot)(e.agent_id))}),(0,t.jsx)("span",{className:"truncate",children:e.title}),null!=e.collapsed_count&&e.collapsed_count>1&&(0,t.jsxs)("span",{className:"shrink-0 text-[9px] text-muted-foreground",children:["×",e.collapsed_count]})]},`${e.id}@${e.occurrence_at}`)}),g>0&&(0,t.jsx)(l.CalendarDayPopover,{date:e.date,hiddenCount:g,events:i,agents:p,open:b===n,onOpenChange:e=>y(e?n:null),onSelectEvent:N})]})]},r)})})]})]})}},99475,e=>{"use strict";e.s(["CalendarDatePicker",()=>c]);var t=e.i(368075),a=e.i(298699),r=e.i(224950),n=e.i(613349),s=e.i(265481),i=e.i(681306),l=e.i(64873),o=e.i(412532);function c({value:e,onChange:u,placeholder:h="Jump to date",min:g,className:f,ariaLabel:m="Pick a date",hideIcon:p=!1,onClear:x}){let[v,b]=(0,a.useState)(!1),y=e??new Date,[k,w]=(0,a.useState)(y.getFullYear()),[j,_]=(0,a.useState)(y.getMonth()),C=(0,o.buildMonthCells)(k,j),N=new Date,D=e=>{g&&e<d(g)||(u(e),b(!1))},S=e?e.toLocaleDateString(void 0,{month:"short",day:"numeric",year:"numeric"}):h;return(0,t.jsxs)(r.Popover,{open:v,onOpenChange:t=>{if(b(t),t){let t=e??new Date;w(t.getFullYear()),_(t.getMonth())}},children:[(0,t.jsxs)(r.PopoverTrigger,{"aria-label":m,className:(0,n.cn)("flex h-7 items-center gap-1.5 rounded-md border border-input bg-transparent px-2 text-xs outline-none transition-colors","hover:bg-accent hover:text-foreground","focus-visible:border-ring focus-visible:ring-3 focus-visible:ring-ring/50",e?"text-foreground":"text-muted-foreground",f),children:[!p&&(0,t.jsx)(s.CalendarDays,{className:"size-3.5 opacity-70"}),(0,t.jsx)("span",{className:"hidden sm:inline tabular-nums",children:S})]}),(0,t.jsxs)(r.PopoverContent,{align:"end",className:"w-64 p-3",children:[(0,t.jsxs)("div",{className:"flex items-center justify-between pb-2",children:[(0,t.jsx)("button",{type:"button","aria-label":"Previous month",onClick:()=>{_(e=>0===e?11:e-1),0===j&&w(e=>e-1)},className:"flex size-6 items-center justify-center rounded text-muted-foreground hover:bg-accent hover:text-foreground",children:(0,t.jsx)(i.ChevronLeft,{className:"size-3.5"})}),(0,t.jsx)("span",{className:"text-xs font-medium tabular-nums",children:new Date(k,j,1).toLocaleDateString(void 0,{month:"long",year:"numeric"})}),(0,t.jsx)("button",{type:"button","aria-label":"Next month",onClick:()=>{_(e=>11===e?0:e+1),11===j&&w(e=>e+1)},className:"flex size-6 items-center justify-center rounded text-muted-foreground hover:bg-accent hover:text-foreground",children:(0,t.jsx)(l.ChevronRight,{className:"size-3.5"})})]}),(0,t.jsx)("div",{className:"grid grid-cols-7 pb-1 text-[10px] text-muted-foreground",children:["S","M","T","W","T","F","S"].map((e,a)=>(0,t.jsx)("div",{className:"flex h-6 items-center justify-center font-medium",children:e},a))}),(0,t.jsx)("div",{className:"grid grid-cols-7 gap-0.5",children:C.map((a,r)=>{let s=(0,o.sameDay)(N,a.date),i=!!e&&(0,o.sameDay)(e,a.date),l=!!g&&a.date<d(g);return(0,t.jsx)("button",{type:"button",disabled:l,onClick:()=>D(a.date),"aria-pressed":i,className:(0,n.cn)("flex h-7 w-full items-center justify-center rounded text-[11px] tabular-nums transition-colors outline-none","focus-visible:ring-2 focus-visible:ring-ring/60",!a.inMonth&&"text-muted-foreground/50",a.inMonth&&!i&&"hover:bg-accent",s&&!i&&"text-foreground font-medium ring-1 ring-inset ring-border",i&&"bg-foreground text-background font-medium",l&&"opacity-30 cursor-not-allowed hover:bg-transparent"),children:a.date.getDate()},r)})}),(0,t.jsxs)("div",{className:"flex items-center justify-between gap-3 pt-2 mt-1 border-t border-border/50",children:[x&&e?(0,t.jsx)("button",{type:"button",onClick:()=>{x(),b(!1)},className:"text-[11px] text-muted-foreground hover:text-foreground transition-colors",children:"Clear"}):(0,t.jsx)("span",{"aria-hidden":!0}),(0,t.jsx)("button",{type:"button",onClick:()=>D(new Date),className:"text-[11px] text-muted-foreground hover:text-foreground transition-colors",children:"Today"})]})]})]})}function d(e){return new Date(e.getFullYear(),e.getMonth(),e.getDate())}},539163,e=>{"use strict";var t=e.i(368075),a=e.i(298699),r=e.i(313101),n=e.i(224950),s=e.i(613349);function i(e){return String(e).padStart(2,"0")}function l(e){let t=/^(\d{2}):(\d{2})$/.exec(e);return t?`${t[1]}:${t[2]}`:e}e.s(["CalendarTimePicker",0,function({value:e,onChange:o,className:c,ariaLabel:d="Pick a time",step:u=30,iconOnly:h=!1}){let[g,f]=(0,a.useState)(!1),m=(0,a.useRef)(null),p=function(e){let t=[];for(let a=0;a<1440;a+=e)t.push(`${i(Math.floor(a/60))}:${i(a%60)}`);return t}(u);return(0,a.useEffect)(()=>{if(!g)return;let e=setTimeout(()=>{let e=m.current?.querySelector('[data-selected="true"]');e?.scrollIntoView({block:"center"})},0);return()=>clearTimeout(e)},[g]),(0,t.jsxs)(n.Popover,{open:g,onOpenChange:f,children:[(0,t.jsxs)(n.PopoverTrigger,{"aria-label":d,className:(0,s.cn)(h?"inline-flex size-8 shrink-0 items-center justify-center rounded-lg border border-input bg-transparent text-muted-foreground outline-none transition-colors hover:bg-accent hover:text-foreground focus-visible:border-ring focus-visible:ring-3 focus-visible:ring-ring/50":"flex h-7 items-center gap-1.5 rounded-md border border-input bg-transparent px-2 text-xs text-foreground outline-none transition-colors hover:bg-accent hover:text-foreground focus-visible:border-ring focus-visible:ring-3 focus-visible:ring-ring/50",c),children:[(0,t.jsx)(r.Clock,{className:h?"size-3.5":"size-3.5 opacity-70"}),!h&&(0,t.jsx)("span",{className:"tabular-nums",children:l(e)})]}),(0,t.jsx)(n.PopoverContent,{align:"start",className:"w-36 p-1",children:(0,t.jsx)("div",{ref:m,className:"flex max-h-60 flex-col overflow-y-auto scrollbar-none",role:"listbox",children:p.map(a=>{let r=a===e;return(0,t.jsx)("button",{type:"button",role:"option","aria-selected":r,"data-selected":r,onClick:()=>{o(a),f(!1)},className:(0,s.cn)("flex h-7 shrink-0 items-center rounded px-2 text-[11px] tabular-nums transition-colors outline-none","focus-visible:bg-accent",r?"bg-foreground text-background font-medium":"text-foreground hover:bg-accent"),children:l(a)},a)})})})]})}])},779338,e=>{"use strict";let t=/^(\d+)(min|hour|day|week|month)$/;function a(e){let a=t.exec(e);if(!a)return null;let r=parseInt(a[1],10);return r<1?null:{count:r,unit:a[2]}}let r={min:["minute","minutes"],hour:["hour","hours"],day:["day","days"],week:["week","weeks"],month:["month","months"]},n=new Set(["min","hour","day","week","month"]);e.s(["PRESET_INTERVALS",0,[{value:"1hour",label:"Every hour"},{value:"1day",label:"Every day"},{value:"1week",label:"Every week"},{value:"1month",label:"Every month"}],"REPEAT_UNITS",0,["min","hour","day","week","month"],"formatRepeatDisplay",0,function(e){let t=a(e);if(!t)return e;let{count:n,unit:s}=t;return 1===n?`Every ${r[s][0]}`:`Every ${n} ${r[s][1]}`},"formatRepeatInterval",0,function(e,t){return`${e}${t}`},"isValidUnit",0,function(e){return n.has(e)},"parseRepeatInterval",0,a,"unitLabel",0,function(e,t){return 1===t?r[e][0]:r[e][1]}])},781360,e=>{"use strict";var t=e.i(368075),a=e.i(298699),r=e.i(880932),n=e.i(222862),s=e.i(332680),i=e.i(779646),l=e.i(186339),o=e.i(740513),c=e.i(265481),d=e.i(986765),u=e.i(371522),h=e.i(835258),g=e.i(430744),f=e.i(937091),m=e.i(613349),p=e.i(99475),x=e.i(539163),v=e.i(779338);function b(e){return String(e).padStart(2,"0")}function y(e,t){let a=/^(\d{2}):(\d{2})$/.exec(t),r=a?Number(a[1]):e.getHours(),n=a?Number(a[2]):e.getMinutes(),s=new Date(e);return s.setHours(r,n,0,0),s}function k(e){return`${e.getFullYear()}-${b(e.getMonth()+1)}-${b(e.getDate())}`}function w(e){return`${b(e.getHours())}:${b(e.getMinutes())}`}function j(e){return e?.trim()||""}let _="h-7 border-0 bg-transparent px-1.5 text-sm text-foreground hover:bg-accent transition-colors -ml-1.5",C=(0,m.cn)(_,"rounded-md outline-none focus-visible:bg-accent focus-visible:ring-0 appearance-none pr-6");function N({icon:e,children:a}){return(0,t.jsxs)("div",{className:"group flex items-center gap-2",children:[(0,t.jsx)("span",{className:"inline-flex size-6 shrink-0 items-center justify-center text-muted-foreground",children:e}),(0,t.jsx)("div",{className:"flex min-w-0 flex-wrap items-center gap-1",children:a})]})}function D({open:e,onOpenChange:r,onConfirm:n,loading:s,title:o,description:c,confirmLabel:d,loadingLabel:u,confirmVariant:h="default"}){let[g,f]=(0,a.useState)("this");return(0,a.useEffect)(()=>{e&&f("this")},[e]),(0,t.jsx)(i.Dialog,{open:e,onOpenChange:r,children:(0,t.jsxs)(i.DialogContent,{showCloseButton:!1,children:[(0,t.jsxs)(i.DialogHeader,{children:[(0,t.jsx)(i.DialogTitle,{children:o}),(0,t.jsx)(i.DialogDescription,{children:c})]}),(0,t.jsx)("div",{className:"flex flex-col gap-1.5 py-1",children:[{value:"this",label:"This event only"},{value:"following",label:"This and following events"}].map(e=>{let a=g===e.value;return(0,t.jsxs)("button",{type:"button",onClick:()=>f(e.value),className:(0,m.cn)("flex items-center gap-2 rounded-md border px-3 py-2 text-left text-sm transition-colors",a?"border-ring bg-accent/40":"border-border/60 hover:bg-accent/30"),children:[(0,t.jsx)("span",{className:(0,m.cn)("inline-flex size-4 items-center justify-center rounded-full border",a?"border-foreground":"border-border"),"aria-hidden":!0,children:a&&(0,t.jsx)("span",{className:"size-2 rounded-full bg-foreground"})}),(0,t.jsx)("span",{children:e.label})]},e.value)})}),(0,t.jsxs)(i.DialogFooter,{children:[(0,t.jsx)(l.Button,{variant:"outline",size:"sm",onClick:()=>r(!1),disabled:s,children:"Cancel"}),(0,t.jsx)(l.Button,{size:"sm",variant:h,onClick:()=>n(g),disabled:s,children:s?u:d})]})]})})}e.s(["CalendarEventSheet",0,function({open:e,onOpenChange:i,agents:S=[],event:M,calendarEventId:E,workspaceId:I,readonly:T,defaultDate:A,defaultAgentId:P,submitting:R,saving:$,deleting:B,onCreate:L,onUpdate:z,onDelete:F}){let[O,q]=(0,a.useState)(null),[H,W]=(0,a.useState)(!1),U=(0,a.useRef)(i);(0,a.useEffect)(()=>{U.current=i}),(0,a.useEffect)(()=>{if(!e||!E||M)return;let t=!1;return W(!0),q(null),(0,n.getCalendarEvent)(E,I??"").then(e=>{t||q(e)}).catch(()=>{t||(r.toast.error("Calendar event not found"),U.current(!1))}).finally(()=>{t||W(!1)}),()=>{t=!0}},[e,E,I,M]);let V=M??O,Y=e=>{i(e),e||setTimeout(()=>q(null),300)},[K,X]=(0,a.useState)(500),J=(0,a.useRef)(!1),G=(0,a.useCallback)(e=>{e.preventDefault(),J.current=!0,e.target.setPointerCapture(e.pointerId)},[]),Q=(0,a.useCallback)(e=>{J.current&&X(Math.min(.8*window.innerWidth,Math.max(320,window.innerWidth-e.clientX)))},[]),Z=(0,a.useCallback)(()=>{J.current=!1},[]),ee=V?"edit":"create",[et,ea]=(0,a.useState)(""),[er,en]=(0,a.useState)(""),[es,ei]=(0,a.useState)(""),[el,eo]=(0,a.useState)(new Date),[ec,ed]=(0,a.useState)("09:00"),[eu,eh]=(0,a.useState)(!1),[eg,ef]=(0,a.useState)("1"),[em,ep]=(0,a.useState)("day"),ex=(0,a.useMemo)(()=>{if(!eu)return"";let e=parseInt(eg,10);return!e||e<1?"":(0,v.formatRepeatInterval)(e,em)},[eu,eg,em]),[ev,eb]=(0,a.useState)(null),[ey,ek]=(0,a.useState)(!1),[ew,ej]=(0,a.useState)(!1),e_=(0,a.useRef)(null),eC=(0,a.useRef)(null);(0,a.useEffect)(()=>{if(e)if(V){let e=new Date(V.scheduled_at);ea(V.agent_id),en(V.title),ei(V.description??""),eo(e),ed(w(e));let t=(0,v.parseRepeatInterval)(V.repeat_interval??"");t?(eh(!0),ef(String(t.count)),ep(t.unit)):(eh(!1),ef("1"),ep("day")),eb(V.repeat_stop_at?new Date(V.repeat_stop_at):null)}else ea(P||S[0]?.id||""),en(""),ei(""),eo(A??new Date),ed(function(e,t=30){let a=Math.ceil((60*e.getHours()+e.getMinutes()+1)/t)*t,r=Math.floor(a/60)%24;return`${b(r)}:${b(a%60)}`}(new Date)),eh(!1),ef("1"),ep("day"),eb(null)},[e,V?.id]);let eN=(0,a.useMemo)(()=>{if(!V)return!0;let e=new Date(V.scheduled_at);return er.trim()!==V.title||j(es)!==j(V.description)||et!==V.agent_id||el.getFullYear()!==e.getFullYear()||el.getMonth()!==e.getMonth()||el.getDate()!==e.getDate()||ec!==w(e)||ex!==(V.repeat_interval??"")||(ev?k(ev):null)!==(V.repeat_stop_at?k(new Date(V.repeat_stop_at)):null)},[et,er,es,el,ec,ex,ev,V]);function eD(){if(!et)return"Select an agent";if(!er.trim())return"Title is required";if(!/^([01]\d|2[0-3]):[0-5]\d$/.test(ec))return"Time must be HH:MM in 24-hour format";if(eu){let e=parseInt(eg,10);if(!e||e<1)return"Repeat count must be a positive number"}if(ev&&!ex)return"Stop date requires a repeat interval";let e=y(el,ec);if(ev){let t=new Date(ev);if(t.setHours(23,59,59,999),t<e)return"Stop date must be on or after the first occurrence"}return null}let eS=async e=>{e.preventDefault();let t=eD();if(t)return r.toast.error(t);let a=y(el,ec),n=es?.trim()||void 0;await L?.({agent_id:et,title:er.trim(),description:n,scheduled_at:a.toISOString(),repeat_interval:ex||void 0,repeat_stop_date:ev?k(ev):void 0})};function eM(){if(!V)return null;let e={},t=y(el,ec).toISOString(),a=er.trim();a!==V.title&&(e.title=a);let r=j(es);r!==j(V.description)&&(e.description=""===r?null:r),et!==V.agent_id&&(e.agent_id=et),t!==new Date(V.scheduled_at).toISOString()&&(e.scheduled_at=t),ex!==(V.repeat_interval??"")&&(e.repeat_interval=""===ex?null:ex);let n=ev?k(ev):null;return(n!==(V.repeat_stop_at?k(new Date(V.repeat_stop_at)):null)&&(e.repeat_stop_date=n),void 0===e.title&&void 0===e.description&&void 0===e.agent_id&&void 0===e.scheduled_at&&void 0===e.repeat_interval&&void 0===e.repeat_stop_date)?null:e}let eE=async e=>{V&&await z?.(V,e)},eI=async()=>{if(!V)return;let e=eD();if(e)return r.toast.error(e);let t=eM();if(t){if(V.repeat_interval)return void ek(!0);await eE(t)}},eT=async e=>{let t=eM();t&&(t.scope=e,"this"===e&&V?.occurrence_at&&(t.occurrence_at=V.occurrence_at),await eE(t)),ek(!1)},eA=e=>{"Enter"===e.key&&e.shiftKey&&(e.preventDefault(),e.stopPropagation(),"create"===ee?eC.current?.requestSubmit():eI())},eP=(0,t.jsxs)("kbd",{"aria-hidden":!0,className:"mr-1 hidden sm:inline-flex items-center gap-0.5 font-sans font-medium leading-none opacity-60",children:[(0,t.jsx)("span",{children:"⇧"}),(0,t.jsx)("span",{children:"+"}),(0,t.jsx)("span",{children:"⏎"})]}),eR="edit"===ee?er.trim()||"Untitled event":er.trim()||"New calendar event",e$=(0,a.useRef)(null),eB=e=>{e&&(e.style.height="auto",e.style.height=`${e.scrollHeight}px`)};(0,a.useEffect)(()=>{eB(e$.current)},[er]);let eL=T?(0,t.jsx)("p",{className:"w-full px-0 py-1 font-news text-xl sm:text-2xl md:text-3xl font-medium leading-[1.2] tracking-tight",children:er||"Untitled event"}):(0,t.jsx)("textarea",{ref:e=>{e$.current=e,eB(e)},"aria-label":"Event title",value:er,onChange:e=>{en(e.target.value),eB(e.target)},onKeyDown:e=>{if("Enter"===e.key&&!e.shiftKey){let t;e.preventDefault(),t=e_.current?.querySelector('[contenteditable="true"]'),t?.focus()}},placeholder:"edit"===ee?"Untitled event":"New event",autoFocus:"create"===ee,rows:1,className:(0,m.cn)("w-full resize-none overflow-hidden rounded-none border-0 bg-transparent px-0 py-1 font-news text-xl sm:text-2xl md:text-3xl font-medium leading-[1.2] tracking-tight","shadow-none outline-none focus-visible:border-0 focus-visible:ring-0 focus-visible:ring-offset-0","placeholder:text-muted-foreground/40 placeholder:font-normal")}),ez=T?(0,t.jsxs)("div",{className:"flex flex-col gap-1.5",children:[(0,t.jsx)(N,{icon:(0,t.jsx)(c.CalendarDays,{className:"size-3.5"}),children:(0,t.jsx)("span",{className:"text-sm text-foreground",children:el.toLocaleDateString(void 0,{weekday:"short",year:"numeric",month:"short",day:"numeric"})})}),(0,t.jsx)(N,{icon:(0,t.jsx)(c.CalendarDays,{className:"size-3.5"}),children:(0,t.jsx)("span",{className:"text-sm text-foreground",children:ec})}),(0,t.jsx)(N,{icon:(0,t.jsx)(h.Repeat,{className:"size-3.5"}),children:(0,t.jsx)("span",{className:"text-sm text-foreground",children:eu?`Every ${eg} ${(0,v.unitLabel)(em,parseInt(eg,10)||1)}`:"Does not repeat"})}),eu&&ev&&(0,t.jsx)(N,{icon:(0,t.jsx)(d.CalendarOff,{className:"size-3.5"}),children:(0,t.jsxs)("span",{className:"text-sm text-foreground",children:["Until ",ev.toLocaleDateString()]})})]}):(0,t.jsxs)("div",{className:"flex flex-col gap-1.5",children:[(0,t.jsx)(N,{icon:(0,t.jsx)(g.User,{className:"size-3.5"}),children:(0,t.jsxs)("select",{"aria-label":"Agent",value:et,onChange:e=>ea(e.target.value),className:C,children:[0===S.length&&(0,t.jsx)("option",{value:"",children:"No agents"}),S.map(e=>(0,t.jsx)("option",{value:e.id,children:e.name},e.id))]})}),(0,t.jsx)(N,{icon:(0,t.jsx)(c.CalendarDays,{className:"size-3.5"}),children:(0,t.jsx)(p.CalendarDatePicker,{value:el,onChange:e=>eo(e),ariaLabel:"Event date",hideIcon:!0,className:_})}),(0,t.jsx)(N,{icon:(0,t.jsx)(x.CalendarTimePicker,{value:ec,onChange:ed,iconOnly:!0,ariaLabel:"Pick time slot",className:"inline-flex size-6 items-center justify-center rounded-md border-0 bg-transparent p-0 text-muted-foreground transition-colors hover:bg-accent hover:text-foreground group-hover:bg-accent group-hover:text-foreground"}),children:(0,t.jsx)("input",{type:"text",inputMode:"numeric",pattern:"([01]\\d|2[0-3]):[0-5]\\d",maxLength:5,value:ec,onChange:e=>ed(e.target.value),placeholder:"HH:MM","aria-label":"Event time (24-hour)",className:"h-7 w-12 border-0 bg-transparent px-0.5 text-sm tabular-nums text-foreground rounded-md outline-none focus-visible:ring-0"})}),(0,t.jsx)(N,{icon:(0,t.jsx)(h.Repeat,{className:"size-3.5"}),children:eu?(0,t.jsxs)("div",{className:"-ml-1.5 flex items-center gap-0.5",children:[(0,t.jsx)("span",{className:"px-1 text-sm text-foreground",children:"Every"}),(0,t.jsx)("input",{type:"text",inputMode:"numeric","aria-label":"Repeat count",value:eg,onChange:e=>{ef(e.target.value.replace(/[^\d]/g,""))},onBlur:()=>{let e=parseInt(eg,10);(!e||e<1)&&ef("1")},maxLength:4,style:{width:`${Math.max(1,eg.length)+1.5}ch`},className:"h-7 shrink-0 border-0 bg-transparent px-0 text-center text-sm tabular-nums text-foreground rounded-md outline-none hover:bg-accent focus-visible:bg-accent focus-visible:ring-0 transition-colors"}),(0,t.jsx)("select",{"aria-label":"Repeat unit",value:em,onChange:e=>{(0,v.isValidUnit)(e.target.value)&&ep(e.target.value)},className:"h-7 border-0 bg-transparent px-1 text-center text-sm text-foreground rounded-md outline-none appearance-none hover:bg-accent focus-visible:bg-accent focus-visible:ring-0 transition-colors",children:v.REPEAT_UNITS.map(e=>(0,t.jsx)("option",{value:e,children:(0,v.unitLabel)(e,parseInt(eg,10)||1)},e))}),(0,t.jsx)("button",{type:"button","aria-label":"Remove repeat",onClick:()=>{eh(!1),ef("1"),ep("day"),eb(null)},className:"inline-flex size-5 shrink-0 items-center justify-center rounded text-muted-foreground transition-colors hover:bg-accent hover:text-foreground",children:(0,t.jsx)(f.X,{className:"size-3"})})]}):(0,t.jsxs)("select",{"aria-label":"Repeat",value:"",onChange:e=>{let t=e.target.value;if(t)if("__custom__"===t)eh(!0),ef("1"),ep("day");else{let e=(0,v.parseRepeatInterval)(t);e&&(eh(!0),ef(String(e.count)),ep(e.unit))}},className:C,children:[(0,t.jsx)("option",{value:"",children:"Does not repeat"}),v.PRESET_INTERVALS.map(e=>(0,t.jsx)("option",{value:e.value,children:e.label},e.value)),(0,t.jsx)("option",{value:"__custom__",children:"Custom…"})]})}),ex&&(0,t.jsx)(N,{icon:(0,t.jsx)(d.CalendarOff,{className:"size-3.5"}),children:(0,t.jsx)(p.CalendarDatePicker,{value:ev,onChange:e=>eb(e),onClear:()=>eb(null),placeholder:"No end date",min:el,ariaLabel:"Stop date",hideIcon:!0,className:_})})]}),eF=T?es?(0,t.jsx)("pre",{className:"whitespace-pre-wrap font-sans text-sm",children:es}):null:(0,t.jsx)("div",{ref:e_,children:(0,t.jsx)(o.MarkdownEditor,{contentType:"markdown",value:es,onChange:ei,placeholder:"Add a description…",className:"markdown",minHeight:"edit"===ee?"10rem":"8rem",variant:"seamless",agents:S},V?.id??"new")}),eO=(0,t.jsx)("div",{onPointerDown:G,onPointerMove:Q,onPointerUp:Z,className:"hidden sm:block absolute left-0 top-0 bottom-0 w-1.5 cursor-col-resize z-10 hover:bg-primary/20 active:bg-primary/30 transition-colors rounded-l-xl"}),eq=H?(0,t.jsx)(s.SheetBody,{className:"flex items-center justify-center py-12",children:(0,t.jsx)(u.Loader2,{className:"h-6 w-6 animate-spin text-muted-foreground"})}):(0,t.jsxs)(s.SheetBody,{className:"flex flex-col gap-6 px-4 pt-6 pb-4 sm:px-8 sm:pt-10 sm:pb-6",children:[eL,ez,eF]});return(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)(s.Sheet,{open:e,onOpenChange:Y,children:(0,t.jsxs)(s.SheetContent,{style:{width:`min(${K}px, 100vw)`,maxWidth:"none"},className:"data-[side=right]:sm:inset-y-2 data-[side=right]:sm:right-2 data-[side=right]:sm:h-auto data-[side=right]:sm:rounded-xl data-[side=right]:sm:border",children:[eO,(0,t.jsx)(s.SheetTitle,{className:"sr-only",children:eR}),T?(0,t.jsx)("div",{className:"flex flex-1 flex-col min-h-0",children:eq}):"create"===ee?(0,t.jsxs)("form",{ref:eC,onSubmit:eS,onKeyDownCapture:eA,className:"flex flex-1 flex-col min-h-0",children:[eq,(0,t.jsxs)(s.SheetFooter,{children:[(0,t.jsx)(l.Button,{type:"button",variant:"outline",onClick:()=>Y(!1),children:"Cancel"}),(0,t.jsx)(l.Button,{type:"submit",disabled:R||!S.length,children:R?"Creating...":(0,t.jsxs)(t.Fragment,{children:[eP,"Create event"]})})]})]}):(0,t.jsxs)("div",{onKeyDownCapture:eA,className:"flex flex-1 flex-col min-h-0",children:[eq,(0,t.jsxs)(s.SheetFooter,{className:"sm:justify-between",children:[(0,t.jsx)(l.Button,{variant:"destructive",onClick:()=>{if(V){if(V.repeat_interval)return void ej(!0);F?.(V)}},disabled:B||$,children:B?"Deleting...":"Delete"}),(0,t.jsxs)("div",{className:"flex items-center gap-2 sm:justify-end",children:[(0,t.jsx)(l.Button,{variant:"outline",onClick:()=>Y(!1),disabled:$,children:"Cancel"}),(0,t.jsx)(l.Button,{onClick:eI,disabled:$||!eN,children:$?"Saving...":(0,t.jsxs)(t.Fragment,{children:[eP,"Save"]})})]})]})]})]})}),(0,t.jsx)(D,{open:ey,onOpenChange:ek,onConfirm:eT,loading:$,title:"Update recurring event",description:"How should this change apply?",confirmLabel:"Update",loadingLabel:"Saving..."}),(0,t.jsx)(D,{open:ew,onOpenChange:ej,onConfirm:e=>{V&&(F?.(V,{scope:e,occurrence_at:V.occurrence_at??void 0}),ej(!1))},loading:B,title:"Delete recurring event",description:"How much of the series should be removed?",confirmLabel:"Delete",loadingLabel:"Deleting...",confirmVariant:"destructive"})]})}])},937091,e=>{"use strict";var t=e.i(852665);e.s(["X",()=>t.default])},642342,e=>{"use strict";var t=e.i(459119),a=e.i(298699);let r=(0,e.i(613349).isLocalMode)(),n=Number(t.default.env.NEXT_PUBLIC_WS_DO_PORT)||8789,s=Number(t.default.env.NEXT_PUBLIC_WS_RECONNECT_DELAY_MS)||1e3,i=Number(t.default.env.NEXT_PUBLIC_WS_RECONNECT_MAX_DELAY_MS)||3e4;e.s(["useUserWs",0,function(e,t){let l=(0,a.useRef)(null),o=(0,a.useRef)(s),c=(0,a.useRef)(e),d=(0,a.useRef)(t?.onReconnect),u=(0,a.useRef)(null),h=(0,a.useRef)(!1),g=(0,a.useRef)(0),f=(0,a.useRef)(null),m=(0,a.useRef)(null);(0,a.useEffect)(()=>{c.current=e},[e]),(0,a.useEffect)(()=>{d.current=t?.onReconnect},[t?.onReconnect]);let p=(0,a.useRef)(null),x=(0,a.useCallback)(()=>{let e=Math.min(o.current,i);o.current=Math.min(2*e,i),u.current=setTimeout(()=>{p.current?.()},e+500*Math.random())},[]),v=(0,a.useCallback)(async()=>{let e,t,a,i=n;try{let a=await fetch("/api/ws/token");if(!a.ok){console.warn("[ws] token fetch failed:",a.status),x();return}let r=await a.json();e=r.userId,t=r.token,r.wsPort&&(i=r.wsPort)}catch(e){console.warn("[ws] token fetch error:",e),x();return}let u=r?`ws://localhost:${i}/?userId=${e}`:`${location.origin.replace("http","ws")}/api/ws/user?userId=${e}`;try{a=new WebSocket(u)}catch(e){console.warn("[ws] WebSocket creation failed:",e),x();return}l.current=a,a.onopen=()=>{o.current=s,a.send(JSON.stringify({type:"auth",token:t})),h.current&&d.current?.(),h.current=!0,g.current=Date.now(),f.current=setInterval(()=>{a.readyState===WebSocket.OPEN&&a.send("ping")},25e3),m.current=setInterval(()=>{Date.now()-g.current>3e4&&a.close()},5e3)},a.onmessage=e=>{g.current=Date.now();try{let t=JSON.parse(e.data);if("auth.ok"===t.type)return;c.current(t)}catch{}},a.onerror=()=>{},a.onclose=()=>{a===l.current&&(f.current&&(clearInterval(f.current),f.current=null),m.current&&(clearInterval(m.current),m.current=null),x())}},[x]);(0,a.useEffect)(()=>{p.current=v},[v]),(0,a.useEffect)(()=>(v(),()=>{null!==u.current&&(clearTimeout(u.current),u.current=null),f.current&&(clearInterval(f.current),f.current=null),m.current&&(clearInterval(m.current),m.current=null);let e=l.current;l.current=null,e?.close()}),[v])}])},355578,e=>{"use strict";var t=e.i(368075),a=e.i(298699),r=e.i(222862),n=e.i(880932),s=e.i(642342);let i=(0,a.createContext)(null);e.s(["AgentProvider",0,function({workspaceId:e,children:l}){let[o,c]=(0,a.useState)([]),[d,u]=(0,a.useState)([]),[h,g]=(0,a.useState)(!0),[f,m]=(0,a.useState)({}),[p,x]=(0,a.useState)([]),v=(0,a.useRef)(!1),[b,y]=(0,a.useState)([]),[k,w]=(0,a.useState)(new Map),[j,_]=(0,a.useState)(new Map),C=(0,a.useRef)(!1),N=(0,a.useRef)(new Set),D=(0,a.useRef)(!0),S=(0,a.useRef)(!1),M=(0,a.useCallback)(e=>(N.current.add(e),()=>{N.current.delete(e)}),[]),E=(0,a.useRef)(!1),I=(0,a.useCallback)(async()=>{if(!E.current){E.current=!0;try{if(v.current){let t=await (0,r.listWorkspaceActiveTasks)(e);if(!D.current)return;x(t.tasks);let a={};for(let e of t.tasks)a[e.agent_id]=(a[e.agent_id]??0)+1;m(a),v.current=t.tasks.length>0}else{let t=await (0,r.listAgentActiveTaskCounts)(e);if(!D.current)return;if(m(t.counts),Object.values(t.counts).some(e=>e>0)){v.current=!0;let t=await (0,r.listWorkspaceActiveTasks)(e);D.current&&x(t.tasks)}else x([])}}catch{}finally{E.current=!1}}},[e]);(0,a.useEffect)(()=>{D.current=!0,I();let e=setInterval(I,15e3);return()=>{D.current=!1,clearInterval(e)}},[I]);let T=(0,a.useCallback)(async()=>{try{let[t,a,n,s]=await Promise.all([(0,r.listAgents)(e),(0,r.listRuntimes)(e),(0,r.listAgentPins)(e),(0,r.listAgentLinks)(e)]);c(t),u(a),y(s),w(new Map(n.pins.map(e=>[e.agent_id,{created_at:e.created_at,position:e.position}]))),_(new Map(n.sidebar_order.map(e=>[e.agent_id,e.position])))}catch(e){n.toast.error(e instanceof Error?e.message:"Failed to load data")}finally{g(!1),C.current=!0}},[e]),A=(0,a.useCallback)(async()=>{if(!S.current){S.current=!0;try{let t=await (0,r.listRuntimes)(e);u(t)}catch{}finally{S.current=!1}}},[e]);(0,a.useEffect)(()=>{T()},[T]),(0,a.useEffect)(()=>{let e=null,t=setInterval(()=>{"visible"===document.visibilityState&&A()},3e4),a=()=>{"visible"===document.visibilityState&&(e=setTimeout(()=>A(),2e3*Math.random()))};return document.addEventListener("visibilitychange",a),()=>{clearInterval(t),e&&clearTimeout(e),document.removeEventListener("visibilitychange",a)}},[A]);let P=(0,a.useCallback)(t=>{for(let e of N.current)e(t);switch(t.type){case"runtime.registered":if(t.workspaceId!==e)break;T();break;case"runtime.deleted":T();break;case"runtime.status":if(t.workspaceId!==e)break;A();break;case"task.updated":I()}},[T,A,I,e]);(0,s.useUserWs)(P,{onReconnect:A});let R=(0,a.useCallback)(async t=>{try{let a=await (0,r.createAgent)(t,e);return await T(),a}catch(e){return n.toast.error(e instanceof Error?e.message:"Failed to create agent"),null}},[T,e]),$=(0,a.useCallback)(async(t,a)=>{try{return await (0,r.updateAgent)(t,a,e),await T(),!0}catch(e){return n.toast.error(e instanceof Error?e.message:"Failed to update agent"),!1}},[T,e]),B=(0,a.useCallback)(async t=>{try{return await (0,r.deleteAgent)(t,e),await T(),!0}catch(e){return n.toast.error(e instanceof Error?e.message:"Failed to remove agent"),!1}},[T,e]),L=(0,a.useCallback)(async t=>{w(e=>{let a=Math.max(-1,...[...e.values()].map(e=>e.position));return new Map(e).set(t,{created_at:new Date().toISOString(),position:a+1})});try{await (0,r.pinAgent)(e,t)}catch{w(e=>{let a=new Map(e);return a.delete(t),a}),n.toast.error("Failed to pin agent")}},[e]),z=(0,a.useCallback)(async t=>{let a;w(e=>{a=e.get(t);let r=new Map(e);return r.delete(t),r});try{await (0,r.unpinAgent)(e,t)}catch{void 0!==a&&w(e=>new Map(e).set(t,a)),n.toast.error("Failed to unpin agent")}},[e]),F=(0,a.useCallback)(async t=>{let a=new Map(k);w(e=>{let a=new Map(e);return t.forEach((e,t)=>{let r=a.get(e);r&&a.set(e,{...r,position:t})}),a});try{await (0,r.reorderAgentPins)(e,t)}catch{w(a),n.toast.error("Failed to reorder pins")}},[e,k]),O=(0,a.useCallback)(async t=>{let a=new Map(j);_(new Map(t.map((e,t)=>[e,t])));try{await (0,r.reorderUnpinnedAgents)(e,t)}catch{_(a),n.toast.error("Failed to reorder agents")}},[e,j]),q=(0,a.useCallback)(()=>{let e=d.find(e=>"online"===e.status);return e?.id??""},[d]),H=(0,a.useCallback)(async()=>{try{return(await (0,r.createMachineToken)("cli",e)).token}catch(e){return n.toast.error(e instanceof Error?e.message:"Failed to generate token"),null}},[e]),W=(0,a.useCallback)(async t=>{try{return await (0,r.deleteMachine)(t,e),await T(),!0}catch(e){return n.toast.error(e instanceof Error?e.message:"Failed to remove machine"),!1}},[T,e]);return(0,t.jsx)(i.Provider,{value:{workspaceId:e,agents:o,agentLinks:b,runtimes:d,loading:h,activeTaskCounts:f,activeTaskDetails:p,pins:k,reload:T,subscribeWs:M,handleCreateAgent:R,handleUpdateAgent:$,handleDeleteAgent:B,handlePinAgent:L,handleUnpinAgent:z,handleReorderPins:F,unpinnedOrder:j,handleReorderUnpinned:O,getFirstOnlineRuntimeId:q,handleGenerateToken:H,handleDeleteMachine:W},children:l})},"useAgentContext",0,function(){let e=(0,a.useContext)(i);if(!e)throw Error("useAgentContext must be used within AgentProvider");return e},"useAgentContextSafe",0,function(){return(0,a.useContext)(i)}])},332680,e=>{"use strict";var t=e.i(368075),a=e.i(55916),r=e.i(613349),n=e.i(186339),s=e.i(49695);function i({...e}){return(0,t.jsx)(a.Dialog.Portal,{"data-slot":"sheet-portal",...e})}function l({className:e,...n}){return(0,t.jsx)(a.Dialog.Backdrop,{"data-slot":"sheet-overlay",className:(0,r.cn)("fixed inset-0 z-50 bg-black/20 backdrop-blur-[2px] transition-[opacity,backdrop-filter] duration-200 ease-out data-ending-style:opacity-0 data-ending-style:backdrop-blur-none data-starting-style:opacity-0 data-starting-style:backdrop-blur-none",e),...n})}e.s(["Sheet",0,function({...e}){return(0,t.jsx)(a.Dialog.Root,{"data-slot":"sheet",...e})},"SheetBody",0,function({className:e,...a}){return(0,t.jsx)("div",{"data-slot":"sheet-body",className:(0,r.cn)("flex-1 overflow-y-auto thin-scrollbar px-4 sm:px-6 py-5",e),...a})},"SheetClose",0,function({...e}){return(0,t.jsx)(a.Dialog.Close,{"data-slot":"sheet-close",...e})},"SheetContent",0,function({className:e,children:o,side:c="right",showCloseButton:d=!0,...u}){return(0,t.jsxs)(i,{children:[(0,t.jsx)(l,{forceRender:!0}),(0,t.jsxs)(a.Dialog.Popup,{"data-slot":"sheet-content","data-side":c,className:(0,r.cn)("fixed z-50 flex flex-col bg-background shadow-xl outline-none transition duration-300 ease-in-out data-ending-style:opacity-0 data-starting-style:opacity-0","data-[side=right]:inset-y-0 data-[side=right]:right-0 data-[side=right]:h-full data-[side=right]:w-full data-[side=right]:max-w-md data-[side=right]:border-l data-[side=right]:data-ending-style:translate-x-10 data-[side=right]:data-starting-style:translate-x-10","data-[side=left]:inset-y-0 data-[side=left]:left-0 data-[side=left]:h-full data-[side=left]:w-full data-[side=left]:max-w-md data-[side=left]:border-r data-[side=left]:data-ending-style:-translate-x-10 data-[side=left]:data-starting-style:-translate-x-10","data-[side=top]:inset-x-0 data-[side=top]:top-0 data-[side=top]:h-auto data-[side=top]:border-b data-[side=top]:data-ending-style:-translate-y-10 data-[side=top]:data-starting-style:-translate-y-10","data-[side=bottom]:inset-x-0 data-[side=bottom]:bottom-0 data-[side=bottom]:h-auto data-[side=bottom]:border-t data-[side=bottom]:data-ending-style:translate-y-10 data-[side=bottom]:data-starting-style:translate-y-10",e),...u,children:[o,d&&(0,t.jsxs)(a.Dialog.Close,{"data-slot":"sheet-close",render:(0,t.jsx)(n.Button,{variant:"ghost",className:"absolute top-3 right-3 z-10",size:"icon-sm"}),children:[(0,t.jsx)(s.XIcon,{}),(0,t.jsx)("span",{className:"sr-only",children:"Close"})]})]})]})},"SheetDescription",0,function({className:e,...n}){return(0,t.jsx)(a.Dialog.Description,{"data-slot":"sheet-description",className:(0,r.cn)("text-sm text-muted-foreground",e),...n})},"SheetFooter",0,function({className:e,...a}){return(0,t.jsx)("div",{"data-slot":"sheet-footer",className:(0,r.cn)("flex flex-col-reverse gap-2 border-t bg-muted/50 px-4 sm:px-6 py-4 sm:flex-row sm:justify-end",e),...a})},"SheetHeader",0,function({className:e,...a}){return(0,t.jsx)("div",{"data-slot":"sheet-header",className:(0,r.cn)("flex flex-col gap-1 border-b px-4 sm:px-6 py-5",e),...a})},"SheetTitle",0,function({className:e,...n}){return(0,t.jsx)(a.Dialog.Title,{"data-slot":"sheet-title",className:(0,r.cn)("font-heading text-lg leading-tight font-semibold",e),...n})},"SheetTrigger",0,function({...e}){return(0,t.jsx)(a.Dialog.Trigger,{"data-slot":"sheet-trigger",...e})}])},64873,907361,e=>{"use strict";let t=(0,e.i(406963).default)("chevron-right",[["path",{d:"m9 18 6-6-6-6",key:"mthhwq"}]]);e.s(["default",0,t],907361),e.s(["ChevronRight",0,t],64873)},927783,e=>{"use strict";let t=(0,e.i(406963).default)("git-branch",[["path",{d:"M15 6a9 9 0 0 0-9 9V3",key:"1cii5b"}],["circle",{cx:"18",cy:"6",r:"3",key:"1h7g24"}],["circle",{cx:"6",cy:"18",r:"3",key:"fqmcym"}]]);e.s(["GitBranch",0,t],927783)},872937,e=>{"use strict";var t=e.i(368075),a=e.i(298699),r=e.i(222862),n=e.i(880932);let s=(0,a.createContext)(null);function i(e,t){return t?`alook:channel:${e}:${t}`:`alook:channel:${e}`}e.s(["ChannelProvider",0,function({workspaceId:e,children:l}){let[o,c]=(0,a.useState)([]),[d,u]=(0,a.useState)("default"),[h,g]=(0,a.useState)(!0),[f,m]=(0,a.useState)(null),p=(0,a.useCallback)(async()=>{try{let t=await (0,r.listChannels)(e);c(t)}catch{c([])}},[e]);(0,a.useEffect)(()=>{p().finally(()=>g(!1))},[e,p]),(0,a.useEffect)(()=>{f&&u(localStorage.getItem(i(e,f))??"default")},[e,f]);let x=(0,a.useCallback)(t=>{u(t);try{localStorage.setItem(i(e,f),t)}catch{}},[e,f]),v=(0,a.useCallback)(async t=>{let a=await (0,r.createChannelApi)(e,t);return await p(),a},[e,p]),b=(0,a.useCallback)(async(t,a)=>{let n=o.find(e=>e.id===t);await (0,r.renameChannelApi)(t,e,a),n&&n.name===d&&x(a),await p()},[e,o,d,x,p]),y=(0,a.useCallback)(async t=>{let a=o.find(e=>e.id===t);await (0,r.deleteChannelApi)(t,e),a&&a.name===d&&x("default"),await p()},[e,o,d,x,p]),k=(0,a.useCallback)(async t=>{c(e=>{let a=new Map(e.map(e=>[e.id,e])),r=t.map(e=>a.get(e)).filter(e=>void 0!==e),n=new Set(t);return[...e.filter(e=>!n.has(e.id)),...r]});try{await (0,r.reorderChannelsApi)(e,t)}catch{await p(),n.toast.error("Failed to reorder channels")}},[e,p]);return(0,t.jsx)(s.Provider,{value:{channels:o,activeChannel:d,loading:h,setActiveChannel:x,setAgentId:m,createChannel:v,renameChannel:b,deleteChannel:y,reorderChannels:k,refresh:p},children:l})},"useChannel",0,function(){let e=(0,a.useContext)(s);if(!e)throw Error("useChannel must be used within a ChannelProvider");return e}])},309475,450463,e=>{"use strict";var t=e.i(368075),a=e.i(298699),r=e.i(789994),n=e.i(875061),s=e.i(224950),i=e.i(329686),l=e.i(728886),o=e.i(613349),c=e.i(222862),d=e.i(500324);function u(e){let t=new Date(e);if(isNaN(t.getTime()))return"";let a=Math.floor((new Date().getTime()-t.getTime())/6e4);if(a<1)return"just now";if(a<60)return`${a}m ago`;let r=Math.floor(a/60);if(r<24)return`${r}h ago`;let n=Math.floor(r/24);return n<7?`${n}d ago`:t.toLocaleDateString(void 0,{month:"short",day:"numeric"})}function h({online:e}){return(0,t.jsx)("span",{className:(0,o.cn)("size-1.5 rounded-full shrink-0",e?"bg-status-online":"bg-status-offline")})}function g({task:e,slug:a,agentId:n}){var s;let i,l="running"===e.status;return(0,t.jsxs)(r.default,{href:`/w/${a}/agents/${n}?task=${e.id}&conv=${e.conversation_id}`,className:"flex items-center gap-2 w-full py-1.5 px-2 hover:bg-muted rounded-md transition-colors cursor-pointer",children:[(0,t.jsx)("span",{className:(0,o.cn)("size-1.5 rounded-full shrink-0",l?"bg-primary animate-pulse":"bg-muted-foreground/40")}),(0,t.jsx)("div",{className:"flex-1 min-w-0",children:(0,t.jsx)("p",{className:"text-xs truncate",children:(i=(s=e.prompt).match(/^Issue\s+iss_\w+:\s*(.+)/))?i[1].split("\n")[0]:s.split("\n")[0]})}),(0,t.jsx)("span",{className:"text-[10px] text-muted-foreground whitespace-nowrap shrink-0",children:u(e.created_at)})]})}e.s(["relativeTime",0,u],450463);let f="gap-1.5 text-muted-foreground hover:text-foreground cursor-pointer";e.s(["AgentStatusBadge",0,function({isOnline:e,taskCount:u,agentId:m}){let{slug:p,workspaceId:x}=(0,d.useWorkspace)(),[v,b]=(0,a.useState)(null),[y,k]=(0,a.useState)(!1),[w,j]=(0,a.useState)(!1),_=(0,a.useCallback)(async()=>{b(null),k(!0),j(!1);try{let e=await (0,c.listWorkspaceActiveTasks)(x);b(e.tasks.filter(e=>e.agent_id===m))}catch{j(!0)}finally{k(!1)}},[m,x]);return e?(0,t.jsxs)(s.Popover,{onOpenChange:e=>{e&&_()},children:[(0,t.jsxs)(s.PopoverTrigger,{render:(0,t.jsx)("button",{type:"button",className:(0,o.cn)((0,n.badgeVariants)({variant:"outline"}),f),onClick:e=>e.stopPropagation()}),children:[(0,t.jsx)(h,{online:!0}),u>0?(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)("span",{className:"hidden sm:inline",children:"Working"}),(0,t.jsx)("span",{className:"tabular-nums",children:u})]}):(0,t.jsx)("span",{className:"hidden sm:inline text-muted-foreground/40",children:"Online"})]}),(0,t.jsx)(s.PopoverContent,{className:"w-72 p-1",children:y?(0,t.jsx)("div",{className:"p-2 space-y-1",children:Array.from({length:3}).map((e,a)=>(0,t.jsxs)("div",{className:"flex items-center gap-2 py-1.5 px-2",children:[(0,t.jsx)(l.Skeleton,{className:"size-1.5 rounded-full"}),(0,t.jsxs)("div",{className:"flex-1 space-y-1",children:[(0,t.jsx)(l.Skeleton,{className:"h-2.5 w-10"}),(0,t.jsx)(l.Skeleton,{className:"h-3 w-full"})]}),(0,t.jsx)(l.Skeleton,{className:"h-2.5 w-8"})]},a))}):w?(0,t.jsx)("div",{className:"p-3 text-xs text-muted-foreground",children:"Failed to load"}):v&&0!==v.length?(0,t.jsxs)("div",{className:"max-h-75 overflow-y-auto",children:[v.slice(0,6).map(e=>(0,t.jsx)(g,{task:e,slug:p,agentId:m},e.id)),v.length>6&&(0,t.jsxs)(r.default,{href:`/w/${p}/agents/${m}/activity?status=running`,className:"block text-xs text-muted-foreground hover:text-foreground text-center py-1.5 transition-colors",children:["View all ",v.length," tasks"]})]}):(0,t.jsx)("div",{className:"p-3 text-xs text-muted-foreground",children:"No active tasks"})})]}):(0,t.jsxs)(i.Tooltip,{children:[(0,t.jsx)(i.TooltipTrigger,{render:(0,t.jsxs)(n.Badge,{variant:"outline",render:(0,t.jsx)(r.default,{href:`/w/${p}/runtimes`}),className:f,children:[(0,t.jsx)(h,{online:!1}),(0,t.jsx)("span",{className:"hidden sm:inline",children:"Offline"})]})}),(0,t.jsx)(i.TooltipContent,{children:"Runtime offline — click to manage runtimes"})]})}],309475)},980630,e=>{"use strict";let t="browser-notification-enabled",a="browser-notification-events",r=["completed","failed"],n={completed:"Task Completed",failed:"Task Failed"};function s(){return"Notification"in window}function i(){return"true"===localStorage.getItem(t)}function l(){try{let e=localStorage.getItem(a);if(e)return JSON.parse(e)}catch{}return[...r]}async function o(){return!!s()&&("granted"===Notification.permission||"denied"!==Notification.permission&&"granted"===await Notification.requestPermission())}e.s(["NOTIFICATION_EVENTS",0,r,"NOTIFICATION_EVENT_LABELS",0,n,"getNotificationEnabled",0,i,"getNotificationEvents",0,l,"isNotificationSupported",0,s,"requestNotificationPermission",0,o,"sendTaskNotification",0,function(e,t,a){if(!s()||"granted"!==Notification.permission||!i()||!l().includes(e))return;let r=n[e]??`Task ${e}`;new Notification(t?`${t} — ${r}`:r,{body:a??"",icon:"/alook.svg"})},"setNotificationEnabled",0,function(e){localStorage.setItem(t,String(e))},"setNotificationEvents",0,function(e){localStorage.setItem(a,JSON.stringify(e))}])},875494,685835,e=>{"use strict";var t=e.i(368075),a=e.i(298699),r=e.i(222862),n=e.i(355578),s=e.i(500324),i=e.i(980630);let l="inbox-filter-types",o=["user_dm_message","calendar_event","email_notification"],c=["user_dm_message"],d=["user_dm_message"];function u(){try{let e=localStorage.getItem(l);if(!e)return c;let t=JSON.parse(e).filter(e=>o.includes(e));if(0===t.length)return c;for(let e of d)t.includes(e)||t.unshift(e);return t}catch{return c}}e.s(["INBOX_FILTER_LABELS",0,{user_dm_message:"DM",calendar_event:"Calendar",email_notification:"Email"},"INBOX_FILTER_TYPES",0,o,"MANDATORY_INBOX_TYPES",0,d,"getInboxFilterTypes",0,u,"setInboxFilterTypes",0,function(e){let t=[...e];for(let e of d)t.includes(e)||t.unshift(e);localStorage.setItem(l,JSON.stringify(t))}],685835);let h=(0,a.createContext)(null),g={count:0,notificationToken:0,refresh:()=>{},decrement:()=>{}};e.s(["InboxCountProvider",0,function({children:e}){let{workspaceId:l}=(0,s.useWorkspace)(),{subscribeWs:o,agents:c}=(0,n.useAgentContext)(),[d,g]=(0,a.useState)(0),[f,m]=(0,a.useState)(0),p=(0,a.useRef)(null),x=(0,a.useRef)(null),v=(0,a.useRef)(c);(0,a.useEffect)(()=>{v.current=c});let b=(0,a.useCallback)(()=>{let e=u();(0,r.getInboxCount)(l,{types:e}).then(e=>{let t=p.current;if(p.current=e.count,g(e.count),null!==t&&e.count>t){m(e=>e+1);let e=x.current?v.current.find(e=>e.id===x.current):void 0;(0,i.sendTaskNotification)("completed",e?.name)}x.current=null}).catch(()=>{})},[l]),y=(0,a.useCallback)(()=>{g(e=>{let t=Math.max(0,e-1);return p.current=t,t})},[]);return(0,a.useEffect)(()=>{b()},[b]),(0,a.useEffect)(()=>o(e=>{"task.updated"===e.type&&("completed"===e.status||"failed"===e.status)&&(x.current=e.agentId,b())}),[o,b]),(0,a.useEffect)(()=>{let e=setInterval(b,6e4);return()=>clearInterval(e)},[b]),(0,t.jsx)(h.Provider,{value:{count:d,notificationToken:f,refresh:b,decrement:y},children:e})},"useInboxCount",0,function(){return(0,a.useContext)(h)??g}],875494)},875061,e=>{"use strict";var t=e.i(390072),a=e.i(863764),r=e.i(294237),n=e.i(613349);let s=(0,r.cva)("group/badge inline-flex h-5 w-fit shrink-0 items-center justify-center gap-1 overflow-hidden rounded-4xl border border-transparent px-2 py-0.5 text-xs font-medium whitespace-nowrap transition-all focus-visible:border-ring focus-visible:ring-[3px] focus-visible:ring-ring/50 has-data-[icon=inline-end]:pr-1.5 has-data-[icon=inline-start]:pl-1.5 aria-invalid:border-destructive aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 [&>svg]:pointer-events-none [&>svg]:size-3!",{variants:{variant:{default:"bg-primary text-primary-foreground [a]:hover:bg-primary/80",secondary:"bg-secondary text-secondary-foreground [a]:hover:bg-secondary/80",destructive:"bg-destructive/10 text-destructive focus-visible:ring-destructive/20 dark:bg-destructive/20 dark:focus-visible:ring-destructive/40 [a]:hover:bg-destructive/20",outline:"border-border text-foreground [a]:hover:bg-muted [a]:hover:text-muted-foreground",ghost:"hover:bg-muted hover:text-muted-foreground dark:hover:bg-muted/50",link:"text-primary underline-offset-4 hover:underline"}},defaultVariants:{variant:"default"}});e.s(["Badge",0,function({className:e,variant:r="default",render:i,...l}){var o;return o={defaultTagName:"span",props:(0,t.mergeProps)({className:(0,n.cn)(s({variant:r}),e)},l),render:i,state:{slot:"badge",variant:r}},(0,a.useRenderElement)(o.defaultTagName??"div",o,o)},"badgeVariants",0,s],875061)},297925,e=>{"use strict";let t=(0,e.i(406963).default)("check",[["path",{d:"M20 6 9 17l-5-5",key:"1gmf2c"}]]);e.s(["default",0,t])},371522,e=>{"use strict";let t=(0,e.i(406963).default)("loader-circle",[["path",{d:"M21 12a9 9 0 1 1-6.219-8.56",key:"13zald"}]]);e.s(["Loader2",0,t],371522)},393153,e=>{"use strict";var t=e.i(368075),a=e.i(779646),r=e.i(186339);e.s(["ConfirmDialog",0,function({open:e,onOpenChange:n,title:s,description:i,confirmLabel:l="Remove",loadingLabel:o,confirmVariant:c="destructive",loading:d=!1,onConfirm:u}){return(0,t.jsx)(a.Dialog,{open:e,onOpenChange:n,children:(0,t.jsxs)(a.DialogContent,{showCloseButton:!1,children:[(0,t.jsxs)(a.DialogHeader,{children:[(0,t.jsx)(a.DialogTitle,{children:s}),(0,t.jsx)(a.DialogDescription,{children:i})]}),(0,t.jsxs)(a.DialogFooter,{children:[(0,t.jsx)(r.Button,{variant:"outline",size:"sm",onClick:()=>n(!1),disabled:d,children:"Cancel"}),(0,t.jsx)(r.Button,{variant:c,size:"sm",onClick:u,disabled:d,children:d?o??`${l}...`:l})]})]})})}])},108281,e=>{"use strict";let t=(0,e.i(406963).default)("circle-alert",[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["line",{x1:"12",x2:"12",y1:"8",y2:"12",key:"1pkeuh"}],["line",{x1:"12",x2:"12.01",y1:"16",y2:"16",key:"4dfq90"}]]);e.s(["AlertCircle",0,t],108281)},313101,e=>{"use strict";let t=(0,e.i(406963).default)("clock",[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["path",{d:"M12 6v6l4 2",key:"mmk7yg"}]]);e.s(["Clock",0,t],313101)},745925,e=>{"use strict";let t=(0,e.i(406963).default)("square",[["rect",{width:"18",height:"18",x:"3",y:"3",rx:"2",key:"afitv7"}]]);e.s(["Square",0,t],745925)},265481,e=>{"use strict";let t=(0,e.i(406963).default)("calendar-days",[["path",{d:"M8 2v4",key:"1cmpym"}],["path",{d:"M16 2v4",key:"4m81vk"}],["rect",{width:"18",height:"18",x:"3",y:"4",rx:"2",key:"1hopcy"}],["path",{d:"M3 10h18",key:"8toen8"}],["path",{d:"M8 14h.01",key:"6423bh"}],["path",{d:"M12 14h.01",key:"1etili"}],["path",{d:"M16 14h.01",key:"1gbofw"}],["path",{d:"M8 18h.01",key:"lrp35t"}],["path",{d:"M12 18h.01",key:"mhygvu"}],["path",{d:"M16 18h.01",key:"kzsmim"}]]);e.s(["CalendarDays",0,t],265481)},251638,e=>{"use strict";let t=(0,e.i(406963).default)("circle-dot",[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["circle",{cx:"12",cy:"12",r:"1",key:"41hilf"}]]);e.s(["CircleDot",0,t],251638)},140483,219658,e=>{"use strict";var t=e.i(406963);let a=(0,t.default)("rotate-cw",[["path",{d:"M21 12a9 9 0 1 1-9-9c2.52 0 4.93 1 6.74 2.74L21 8",key:"1p45f6"}],["path",{d:"M21 3v5h-5",key:"1q7to0"}]]);e.s(["RotateCw",0,a],140483);var r=e.i(368075),n=e.i(298699),s=e.i(186339),i=e.i(329686);let l=(0,t.default)("arrow-down",[["path",{d:"M12 5v14",key:"s699le"}],["path",{d:"m19 12-7 7-7-7",key:"1idqje"}]]);var o=e.i(613349);e.s(["ScrollToBottomButton",0,function({scrollRef:e,threshold:t=100}){let[a,c]=(0,n.useState)(!1),d=(0,n.useCallback)(()=>{let a=e.current;if(!a)return;let r=a.scrollHeight-a.scrollTop-a.clientHeight<t;c(a.scrollHeight>a.clientHeight&&!r)},[e,t]);return(0,n.useEffect)(()=>{let t=e.current;if(!t)return;t.addEventListener("scroll",d,{passive:!0}),d();let a=new ResizeObserver(d);return a.observe(t),()=>{t.removeEventListener("scroll",d),a.disconnect()}},[e,d]),(0,r.jsx)("div",{className:(0,o.cn)("absolute bottom-1 left-1/2 -translate-x-1/2 z-10 transition-all duration-200 ease-out",a?"opacity-100 translate-y-0":"opacity-0 translate-y-2 pointer-events-none"),children:(0,r.jsxs)(i.Tooltip,{children:[(0,r.jsx)(i.TooltipTrigger,{render:(0,r.jsx)(s.Button,{variant:"ghost",size:"icon-sm",onClick:()=>{let t=e.current;t&&t.scrollTo({top:t.scrollHeight,behavior:"smooth"})},className:"rounded-full bg-background/80 backdrop-blur-sm border shadow-sm hover:bg-background"}),children:(0,r.jsx)(l,{})}),(0,r.jsx)(i.TooltipContent,{side:"top",children:"Scroll to bottom"})]})})}],219658)},6131,e=>{"use strict";let t=(0,e.i(406963).default)("mail",[["path",{d:"m22 7-8.991 5.727a2 2 0 0 1-2.009 0L2 7",key:"132q7q"}],["rect",{x:"2",y:"4",width:"20",height:"16",rx:"2",key:"izxlao"}]]);e.s(["Mail",0,t],6131)},814552,e=>{"use strict";let t=(0,e.i(406963).default)("message-square",[["path",{d:"M22 17a2 2 0 0 1-2 2H6.828a2 2 0 0 0-1.414.586l-2.202 2.202A.71.71 0 0 1 2 21.286V5a2 2 0 0 1 2-2h16a2 2 0 0 1 2 2z",key:"18887p"}]]);e.s(["MessageSquare",0,t],814552)},309493,e=>{"use strict";let t=(0,e.i(406963).default)("brain",[["path",{d:"M12 18V5",key:"adv99a"}],["path",{d:"M15 13a4.17 4.17 0 0 1-3-4 4.17 4.17 0 0 1-3 4",key:"1e3is1"}],["path",{d:"M17.598 6.5A3 3 0 1 0 12 5a3 3 0 1 0-5.598 1.5",key:"1gqd8o"}],["path",{d:"M17.997 5.125a4 4 0 0 1 2.526 5.77",key:"iwvgf7"}],["path",{d:"M18 18a4 4 0 0 0 2-7.464",key:"efp6ie"}],["path",{d:"M19.967 17.483A4 4 0 1 1 12 18a4 4 0 1 1-7.967-.517",key:"1gq6am"}],["path",{d:"M6 18a4 4 0 0 1-2-7.464",key:"k1g0md"}],["path",{d:"M6.003 5.125a4 4 0 0 0-2.526 5.77",key:"q97ue3"}]]);e.s(["Brain",0,t],309493)},983453,e=>{"use strict";let t=(0,e.i(406963).default)("calendar",[["path",{d:"M8 2v4",key:"1cmpym"}],["path",{d:"M16 2v4",key:"4m81vk"}],["rect",{width:"18",height:"18",x:"3",y:"4",rx:"2",key:"1hopcy"}],["path",{d:"M3 10h18",key:"8toen8"}]]);e.s(["Calendar",0,t],983453)},541544,e=>{"use strict";var t=e.i(297925);e.s(["Check",()=>t.default])},113354,e=>{"use strict";let t=(0,e.i(406963).default)("arrow-left",[["path",{d:"m12 19-7-7 7-7",key:"1l729n"}],["path",{d:"M19 12H5",key:"x3x0zl"}]]);e.s(["ArrowLeft",0,t],113354)},89440,e=>{"use strict";let t=(0,e.i(406963).default)("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"}]]);e.s(["Copy",0,t],89440)},554468,940931,e=>{"use strict";let t=(0,e.i(406963).default)("paperclip",[["path",{d:"m16 6-8.414 8.586a2 2 0 0 0 2.829 2.829l8.414-8.586a4 4 0 1 0-5.657-5.657l-8.379 8.551a6 6 0 1 0 8.485 8.485l8.379-8.551",key:"1miecu"}]]);e.s(["Paperclip",0,t],554468);var a=e.i(368075),r=e.i(298699),n=e.i(635790);let s=`
|
|
1
|
+
(globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,275351,e=>{"use strict";let t,a,r,n,s=(e,t)=>t.some(t=>e instanceof t),i=new WeakMap,l=new WeakMap,o=new WeakMap,c={get(e,t,a){if(e instanceof IDBTransaction){if("done"===t)return i.get(e);if("store"===t)return a.objectStoreNames[1]?void 0:a.objectStore(a.objectStoreNames[0])}return d(e[t])},set:(e,t,a)=>(e[t]=a,!0),has:(e,t)=>e instanceof IDBTransaction&&("done"===t||"store"===t)||t in e};function d(e){if(e instanceof IDBRequest){let t;return t=new Promise((t,a)=>{let r=()=>{e.removeEventListener("success",n),e.removeEventListener("error",s)},n=()=>{t(d(e.result)),r()},s=()=>{a(e.error),r()};e.addEventListener("success",n),e.addEventListener("error",s)}),o.set(t,e),t}if(l.has(e))return l.get(e);let t=function(e){if("function"==typeof e)return(n||(n=[IDBCursor.prototype.advance,IDBCursor.prototype.continue,IDBCursor.prototype.continuePrimaryKey])).includes(e)?function(...t){return e.apply(u(this),t),d(this.request)}:function(...t){return d(e.apply(u(this),t))};return(e instanceof IDBTransaction&&function(e){if(i.has(e))return;let t=new Promise((t,a)=>{let r=()=>{e.removeEventListener("complete",n),e.removeEventListener("error",s),e.removeEventListener("abort",s)},n=()=>{t(),r()},s=()=>{a(e.error||new DOMException("AbortError","AbortError")),r()};e.addEventListener("complete",n),e.addEventListener("error",s),e.addEventListener("abort",s)});i.set(e,t)}(e),s(e,r||(r=[IDBDatabase,IDBObjectStore,IDBIndex,IDBCursor,IDBTransaction])))?new Proxy(e,c):e}(e);return t!==e&&(l.set(e,t),o.set(t,e)),t}let u=e=>o.get(e),h=["get","getKey","getAll","getAllKeys","count"],g=["put","add","delete","clear"],f=new Map;function m(e,t){if(!(e instanceof IDBDatabase&&!(t in e)&&"string"==typeof t))return;if(f.get(t))return f.get(t);let a=t.replace(/FromIndex$/,""),r=t!==a,n=g.includes(a);if(!(a in(r?IDBIndex:IDBObjectStore).prototype)||!(n||h.includes(a)))return;let s=async function(e,...t){let s=this.transaction(e,n?"readwrite":"readonly"),i=s.store;return r&&(i=i.index(t.shift())),(await Promise.all([i[a](...t),n&&s.done]))[0]};return f.set(t,s),s}c={...t=c,get:(e,a,r)=>m(e,a)||t.get(e,a,r),has:(e,a)=>!!m(e,a)||t.has(e,a)};let p=["continue","continuePrimaryKey","advance"],x={},v=new WeakMap,b=new WeakMap,y={get(e,t){if(!p.includes(t))return e[t];let a=x[t];return a||(a=x[t]=function(...e){v.set(this,b.get(this)[t](...e))}),a}};async function*k(...e){let t=this;if(t instanceof IDBCursor||(t=await t.openCursor(...e)),!t)return;let a=new Proxy(t,y);for(b.set(a,t),o.set(a,u(t));t;)yield a,t=await (v.get(a)||t.continue()),v.delete(a)}function w(e,t){return t===Symbol.asyncIterator&&s(e,[IDBIndex,IDBObjectStore,IDBCursor])||"iterate"===t&&s(e,[IDBIndex,IDBObjectStore])}c={...a=c,get:(e,t,r)=>w(e,t)?k:a.get(e,t,r),has:(e,t)=>w(e,t)||a.has(e,t)};let j=null,_=null;function C(e){return"u"<typeof indexedDB?null:j&&_===e?j:(_=e,j=function(e,{blocked:t,upgrade:a,blocking:r,terminated:n}={}){let s=indexedDB.open(e,1),i=d(s);return a&&s.addEventListener("upgradeneeded",e=>{a(d(s.result),e.oldVersion,e.newVersion,d(s.transaction),e)}),t&&s.addEventListener("blocked",e=>t(e.oldVersion,e.newVersion,e)),i.then(e=>{n&&e.addEventListener("close",()=>n()),r&&e.addEventListener("versionchange",e=>r(e.oldVersion,e.newVersion,e))}).catch(()=>{}),i}(`alook-chat-cache-${e}`,{upgrade(e){let t=e.createObjectStore("messages",{keyPath:["conversation_id","id"]});t.createIndex("by-conversation","conversation_id",{unique:!1}),t.createIndex("by-created",["conversation_id","created_at"],{unique:!1}),e.createObjectStore("cache_meta",{keyPath:"conversation_id"})}}))}function N(e){return e?C(e):j}async function D(e,t){let a=N(t);if(!a)return null;try{let t=await a,r=await t.getAllFromIndex("messages","by-conversation",e);if(0===r.length)return null;let n=r.filter(e=>"buffered"!==e.status&&!e.id.startsWith("temp-"));n.sort((e,t)=>{let a=e.created_at.localeCompare(t.created_at);return 0!==a?a:e.id.localeCompare(t.id)});let s=await t.get("cache_meta",e);return s&&await t.put("cache_meta",{...s,lastAccessedAt:Date.now()}),n}catch{return null}}async function S(e,t,a,r,n){let s=N(n);if(!s)return null;try{let n=await s,i=await n.get("cache_meta",e);if(!i)return null;let l=IDBKeyRange.bound([e,""],[e,t],!1,!1),o=(await n.getAllFromIndex("messages","by-created",l)).filter(e=>!("buffered"===e.status||e.id.startsWith("temp-"))&&(e.created_at!==t||!(e.id>=a)));o.sort((e,t)=>{let a=t.created_at.localeCompare(e.created_at);return 0!==a?a:t.id.localeCompare(e.id)});let c=o.slice(0,r);if(c.length<r&&i.hasMore)return null;return await n.put("cache_meta",{...i,lastAccessedAt:Date.now()}),{messages:c.reverse(),hasMore:o.length>r||i.hasMore}}catch{return null}}async function M(e,t,a,r){let n=N(r);if(n)try{let r=await n,s=t.filter(e=>"buffered"!==e.status&&!e.id.startsWith("temp-"));if(0===s.length)return;let i=r.transaction(["messages","cache_meta"],"readwrite"),l=i.objectStore("messages"),o=i.objectStore("cache_meta");for(let e of s)await l.put(e);let c=await l.index("by-conversation").getAllKeys(e),d=Date.now(),u=s.reduce((e,t)=>e.created_at>t.created_at?e:t),h=await o.get(e),g=a??h?.hasMore??!0,f=h?.newestMessageId&&h.newestMessageId!==u.id?await (async()=>{let t=await l.get([e,h.newestMessageId]);return t&&t.created_at>u.created_at?t.id:u.id})():u.id,m={conversation_id:e,lastFetchedAt:d,lastAccessedAt:d,messageCount:c.length,newestMessageId:f,hasMore:g};await o.put(m),await i.done,T().catch(()=>{})}catch{}}async function E(e,t,a){let r=N(a);if(r&&!("buffered"===t.status||t.id.startsWith("temp-")))try{let a=await r,n=await a.get("cache_meta",e);if(!n)return;let s=await a.get("messages",[e,t.id]);await a.put("messages",t),await a.put("cache_meta",{...n,lastAccessedAt:Date.now(),messageCount:s?n.messageCount:n.messageCount+1,newestMessageId:t.id})}catch{}}async function I(e,t){let a=N(t);if(!a)return null;try{let t=await a;return await t.get("cache_meta",e)??null}catch{return null}}async function T(e=50){let t=N();if(t)try{let a=await t,r=await a.getAll("cache_meta");if(r.length<=e)return;r.sort((e,t)=>e.lastAccessedAt-t.lastAccessedAt);let n=r.slice(0,r.length-e),s=a.transaction(["messages","cache_meta"],"readwrite"),i=s.objectStore("messages"),l=s.objectStore("cache_meta");for(let e of n){for(let t of(await i.index("by-conversation").getAllKeys(e.conversation_id)))await i.delete(t);await l.delete(e.conversation_id)}await s.done}catch{}}async function A(){if("u">typeof indexedDB)try{j&&((await j).close(),j=null),_&&(await P(`alook-chat-cache-${_}`),_=null)}catch{}}async function P(e){return new Promise((t,a)=>{let r=indexedDB.deleteDatabase(e);r.onsuccess=()=>t(),r.onerror=()=>a(r.error),r.onblocked=()=>t()})}e.s(["appendCachedMessage",0,E,"clearAllCache",0,A,"getCacheMeta",0,I,"getCachedMessages",0,D,"getCachedMessagesBefore",0,S,"mergeCachedMessages",0,M,"openCacheDB",0,C],275351)},430744,e=>{"use strict";let t=(0,e.i(406963).default)("user",[["path",{d:"M19 21v-2a4 4 0 0 0-4-4H9a4 4 0 0 0-4 4v2",key:"975kel"}],["circle",{cx:"12",cy:"7",r:"4",key:"17ys0d"}]]);e.s(["User",0,t],430744)},986765,e=>{"use strict";let t=(0,e.i(406963).default)("calendar-off",[["path",{d:"M4.2 4.2A2 2 0 0 0 3 6v14a2 2 0 0 0 2 2h14a2 2 0 0 0 1.82-1.18",key:"16swn3"}],["path",{d:"M21 15.5V6a2 2 0 0 0-2-2H9.5",key:"yhw86o"}],["path",{d:"M16 2v4",key:"4m81vk"}],["path",{d:"M3 10h7",key:"1wap6i"}],["path",{d:"M21 10h-5.5",key:"quycpq"}],["path",{d:"m2 2 20 20",key:"1ooewy"}]]);e.s(["CalendarOff",0,t],986765)},835258,e=>{"use strict";let t=(0,e.i(406963).default)("repeat",[["path",{d:"m17 2 4 4-4 4",key:"nntrym"}],["path",{d:"M3 11v-1a4 4 0 0 1 4-4h14",key:"84bu3i"}],["path",{d:"m7 22-4-4 4-4",key:"1wqhfi"}],["path",{d:"M21 13v1a4 4 0 0 1-4 4H3",key:"1rx37r"}]]);e.s(["Repeat",0,t],835258)},681306,e=>{"use strict";let t=(0,e.i(406963).default)("chevron-left",[["path",{d:"m15 18-6-6 6-6",key:"1wnfg3"}]]);e.s(["ChevronLeft",0,t],681306)},136489,307214,e=>{"use strict";e.s(["CalendarDayPopover",()=>l],136489);var t=e.i(368075),a=e.i(224950),r=e.i(613349),n=e.i(835258);function s(e){let t=["bg-[oklch(0.62_0.13_60)] dark:bg-[oklch(0.72_0.11_60)]","bg-[oklch(0.62_0.12_120)] dark:bg-[oklch(0.72_0.10_120)]","bg-[oklch(0.62_0.12_220)] dark:bg-[oklch(0.72_0.10_220)]","bg-[oklch(0.62_0.13_30)] dark:bg-[oklch(0.72_0.11_30)]","bg-[oklch(0.62_0.12_280)] dark:bg-[oklch(0.72_0.10_280)]","bg-[oklch(0.62_0.12_160)] dark:bg-[oklch(0.72_0.10_160)]"],a=0;for(let t=0;t<e.length;t++)a=31*a+e.charCodeAt(t)|0;return t[Math.abs(a)%t.length]}function i(e){let t=["text-[oklch(0.52_0.14_60)] dark:text-[oklch(0.78_0.11_60)]","text-[oklch(0.52_0.13_120)] dark:text-[oklch(0.78_0.10_120)]","text-[oklch(0.52_0.13_220)] dark:text-[oklch(0.78_0.10_220)]","text-[oklch(0.52_0.14_30)] dark:text-[oklch(0.78_0.11_30)]","text-[oklch(0.52_0.13_280)] dark:text-[oklch(0.78_0.10_280)]","text-[oklch(0.52_0.13_160)] dark:text-[oklch(0.78_0.10_160)]"],a=0;for(let t=0;t<e.length;t++)a=31*a+e.charCodeAt(t)|0;return t[Math.abs(a)%t.length]}function l({events:e,agents:o,date:c,hiddenCount:d,open:u,onOpenChange:h,onSelectEvent:g}){let f=new Map;for(let e of o)f.set(e.id,e.name);let m=[...e].sort((e,t)=>new Date(e.scheduled_at).getTime()-new Date(t.scheduled_at).getTime()),p=c.toLocaleDateString(void 0,{weekday:"short",month:"short",day:"numeric"});return(0,t.jsxs)(a.Popover,{open:u,onOpenChange:h,children:[(0,t.jsxs)(a.PopoverTrigger,{"aria-label":`${d} more event${1===d?"":"s"}`,onClick:e=>e.stopPropagation(),className:"w-full truncate rounded-sm px-1.5 py-0.5 text-left text-[10px] text-muted-foreground hover:bg-accent hover:text-foreground transition-colors",children:["+",d," more"]}),(0,t.jsx)(a.PopoverContent,{className:"w-64",align:"start",children:(0,t.jsxs)("div",{className:"flex flex-col gap-1.5",children:[(0,t.jsx)("p",{className:"px-1 pb-1 text-[11px] font-medium text-muted-foreground",children:p}),(0,t.jsx)("div",{className:"flex flex-col gap-1",children:m.map(e=>{let a=!!e.repeat_interval;return(0,t.jsxs)("button",{type:"button",onClick:()=>{h(!1),g(e)},className:"flex items-center gap-2 rounded-sm px-1.5 py-1 text-left text-[11px] font-medium text-foreground/85 hover:bg-accent/60 transition-colors",title:`${a?"Recurring · ":""}${e.title}${f.get(e.agent_id)?` — ${f.get(e.agent_id)}`:""}`,children:[a?(0,t.jsx)(n.Repeat,{"aria-hidden":!0,className:(0,r.cn)("size-3 shrink-0",i(e.agent_id))}):(0,t.jsx)("span",{"aria-hidden":!0,className:(0,r.cn)("size-1.5 shrink-0 rounded-full",s(e.agent_id))}),(0,t.jsx)("span",{className:"shrink-0 text-[10px] text-muted-foreground tabular-nums",children:new Date(e.scheduled_at).toLocaleTimeString(void 0,{hour:"2-digit",minute:"2-digit",hour12:!1})}),(0,t.jsx)("span",{className:"truncate",children:e.title})]},`${e.id}@${e.occurrence_at}`)})})]})})]})}e.i(412532),e.s(["agentColor",0,function(e){let t=["bg-[oklch(0.78_0.08_60)] text-[oklch(0.25_0.05_60)]","bg-[oklch(0.80_0.07_120)] text-[oklch(0.25_0.05_120)]","bg-[oklch(0.80_0.06_220)] text-[oklch(0.25_0.05_220)]","bg-[oklch(0.80_0.07_30)] text-[oklch(0.25_0.05_30)]","bg-[oklch(0.80_0.06_280)] text-[oklch(0.25_0.05_280)]","bg-[oklch(0.80_0.07_160)] text-[oklch(0.25_0.05_160)]"],a=0;for(let t=0;t<e.length;t++)a=31*a+e.charCodeAt(t)|0;return t[Math.abs(a)%t.length]},"agentDot",0,s,"agentInk",0,i],307214)},412532,e=>{"use strict";e.s(["CalendarMonthGrid",()=>f,"buildMonthCells",()=>d,"dateKey",()=>u,"sameDay",()=>h,"stepDate",()=>g]);var t=e.i(368075),a=e.i(613349),r=e.i(681306),n=e.i(64873),s=e.i(835258),i=e.i(186339),l=e.i(136489),o=e.i(99475),c=e.i(307214);function d(e,t){let a=new Date(e,t,1).getDay(),r=[];for(let n=0;n<42;n++){let s=new Date(e,t,1-a+n);r.push({date:s,inMonth:s.getMonth()===t})}return r}function u(e){let t=e.getFullYear(),a=String(e.getMonth()+1).padStart(2,"0"),r=String(e.getDate()).padStart(2,"0");return`${t}-${a}-${r}`}function h(e,t){return e.getFullYear()===t.getFullYear()&&e.getMonth()===t.getMonth()&&e.getDate()===t.getDate()}function g(e,t){let a=new Date(e.getFullYear(),e.getMonth(),e.getDate());switch(t){case"ArrowLeft":return a.setDate(a.getDate()-1),a;case"ArrowRight":return a.setDate(a.getDate()+1),a;case"ArrowUp":return a.setDate(a.getDate()-7),a;case"ArrowDown":return a.setDate(a.getDate()+7),a;case"Home":return a.setDate(a.getDate()-a.getDay()),a;case"End":return a.setDate(a.getDate()+(6-a.getDay())),a;case"PageUp":{let e=0===a.getMonth()?a.getFullYear()-1:a.getFullYear(),t=(a.getMonth()-1+12)%12,r=new Date(e,t+1,0).getDate();return a.setFullYear(e,t,Math.min(a.getDate(),r)),a}case"PageDown":{let e=11===a.getMonth()?a.getFullYear()+1:a.getFullYear(),t=(a.getMonth()+1)%12,r=new Date(e,t+1,0).getDate();return a.setFullYear(e,t,Math.min(a.getDate(),r)),a}default:return null}}function f({year:e,month:g,events:m,agents:p,loading:x,focusedDate:v,openPopoverKey:b,onPopoverChange:y,onPrev:k,onNext:w,onJumpToToday:j,onJumpToDate:_,onSelectDay:C,onSelectEvent:N,headerExtras:D}){let S=d(e,g),M=new Date(e,g,1).toLocaleDateString(void 0,{month:"long",year:"numeric"}),E=new Map;for(let e of m){let t=u(new Date(e.scheduled_at));E.has(t)||E.set(t,[]),E.get(t).push(e)}let I=new Map;for(let e of p)I.set(e.id,e.name);let T=new Date,A=function(e,t,a=new Date){return a.getFullYear()===e&&a.getMonth()===t}(e,g,T);return(0,t.jsxs)("div",{className:"flex flex-col gap-3",children:[(0,t.jsxs)("div",{className:"flex items-center justify-between flex-wrap gap-2",children:[(0,t.jsx)("div",{className:"flex items-center gap-2",children:(0,t.jsx)("h2",{className:"text-sm font-medium tabular-nums",children:M})}),(0,t.jsxs)("div",{className:"flex items-center gap-2",children:[D,(0,t.jsxs)("div",{className:"flex items-center gap-1",children:[(0,t.jsx)("button",{type:"button","aria-label":"Previous month",onClick:k,className:"flex size-9 sm:size-7 items-center justify-center rounded-md text-muted-foreground hover:bg-accent hover:text-foreground transition-colors",children:(0,t.jsx)(r.ChevronLeft,{className:"size-4"})}),(0,t.jsx)(i.Button,{variant:"outline",size:"sm",onClick:j,disabled:A,className:"h-7 px-2.5 text-xs",children:"Today"}),(0,t.jsx)("button",{type:"button","aria-label":"Next month",onClick:w,className:"flex size-9 sm:size-7 items-center justify-center rounded-md text-muted-foreground hover:bg-accent hover:text-foreground transition-colors",children:(0,t.jsx)(n.ChevronRight,{className:"size-4"})})]}),(0,t.jsx)(o.CalendarDatePicker,{value:v,onChange:_,ariaLabel:"Jump to date"})]})]}),(0,t.jsx)("div",{className:"grid grid-cols-7 text-[11px] text-muted-foreground",children:["Sun","Mon","Tue","Wed","Thu","Fri","Sat"].map(e=>(0,t.jsxs)("div",{className:"px-1 sm:px-2 py-1 font-medium",children:[(0,t.jsx)("span",{className:"sm:hidden",children:e[0]}),(0,t.jsx)("span",{className:"hidden sm:inline",children:e})]},e))}),(0,t.jsxs)("div",{className:"relative",children:[x&&(0,t.jsx)("div",{"aria-hidden":!0,className:"pointer-events-none absolute inset-x-0 top-0 z-20 h-0.5 overflow-hidden rounded-t-lg",children:(0,t.jsx)("div",{className:"h-full w-1/3 animate-[calendar-progress_1.2s_ease-in-out_infinite] bg-foreground/40"})}),(0,t.jsx)("div",{role:"grid","aria-label":`Calendar ${M}`,"aria-busy":x||void 0,className:(0,a.cn)("grid grid-cols-7 gap-px rounded-lg border border-border/50 bg-border/40 overflow-hidden transition-opacity",x&&"opacity-70"),"data-testid":"calendar-month-grid",children:S.map((e,r)=>{let n=u(e.date),i=E.get(n)??[],o=h(T,e.date),d=h(v,e.date),g=Math.max(0,i.length-3);return(0,t.jsxs)("div",{role:"gridcell","data-date":n,"data-focused":d?"true":void 0,"aria-current":o?"date":void 0,tabIndex:d?0:-1,onClick:()=>C(e.date),onKeyDown:t=>{("Enter"===t.key||" "===t.key)&&t.target===t.currentTarget&&(t.preventDefault(),C(e.date))},className:(0,a.cn)("group flex min-h-16 sm:min-h-24 flex-col gap-1 p-1 sm:p-2 text-left transition-colors bg-background outline-none cursor-pointer",!e.inMonth&&"bg-muted/40 text-muted-foreground",d&&"ring-2 ring-inset ring-ring/60 relative z-10"),children:[(0,t.jsx)("div",{className:"flex items-center justify-between",children:(0,t.jsx)("span",{className:(0,a.cn)("text-[11px] tabular-nums",o&&"flex size-5 items-center justify-center rounded-full bg-foreground text-background font-medium"),children:e.date.getDate()})}),(0,t.jsxs)("div",{className:"flex flex-col gap-1 [&>:nth-child(3)]:hidden [&>:nth-child(3)]:sm:flex",children:[i.slice(0,3).map(e=>{let r=!!e.repeat_interval;return(0,t.jsxs)("span",{role:"button",tabIndex:-1,onClick:t=>{t.stopPropagation(),N(e)},onKeyDown:t=>{("Enter"===t.key||" "===t.key)&&(t.stopPropagation(),N(e))},className:"flex items-center gap-1.5 rounded-sm px-1 py-0.5 text-[9px] sm:text-[10px] font-medium text-foreground/85 hover:bg-accent/60 transition-colors cursor-pointer",title:`${r?"Recurring · ":""}${e.title}${I.get(e.agent_id)?` — ${I.get(e.agent_id)}`:""}`,children:[r?(0,t.jsx)(s.Repeat,{"aria-hidden":!0,className:(0,a.cn)("size-2.5 shrink-0",(0,c.agentInk)(e.agent_id))}):(0,t.jsx)("span",{"aria-hidden":!0,className:(0,a.cn)("size-1.5 shrink-0 rounded-full",(0,c.agentDot)(e.agent_id))}),(0,t.jsx)("span",{className:"truncate",children:e.title}),null!=e.collapsed_count&&e.collapsed_count>1&&(0,t.jsxs)("span",{className:"shrink-0 text-[9px] text-muted-foreground",children:["×",e.collapsed_count]})]},`${e.id}@${e.occurrence_at}`)}),g>0&&(0,t.jsx)(l.CalendarDayPopover,{date:e.date,hiddenCount:g,events:i,agents:p,open:b===n,onOpenChange:e=>y(e?n:null),onSelectEvent:N})]})]},r)})})]})]})}},99475,e=>{"use strict";e.s(["CalendarDatePicker",()=>c]);var t=e.i(368075),a=e.i(298699),r=e.i(224950),n=e.i(613349),s=e.i(265481),i=e.i(681306),l=e.i(64873),o=e.i(412532);function c({value:e,onChange:u,placeholder:h="Jump to date",min:g,className:f,ariaLabel:m="Pick a date",hideIcon:p=!1,onClear:x}){let[v,b]=(0,a.useState)(!1),y=e??new Date,[k,w]=(0,a.useState)(y.getFullYear()),[j,_]=(0,a.useState)(y.getMonth()),C=(0,o.buildMonthCells)(k,j),N=new Date,D=e=>{g&&e<d(g)||(u(e),b(!1))},S=e?e.toLocaleDateString(void 0,{month:"short",day:"numeric",year:"numeric"}):h;return(0,t.jsxs)(r.Popover,{open:v,onOpenChange:t=>{if(b(t),t){let t=e??new Date;w(t.getFullYear()),_(t.getMonth())}},children:[(0,t.jsxs)(r.PopoverTrigger,{"aria-label":m,className:(0,n.cn)("flex h-7 items-center gap-1.5 rounded-md border border-input bg-transparent px-2 text-xs outline-none transition-colors","hover:bg-accent hover:text-foreground","focus-visible:border-ring focus-visible:ring-3 focus-visible:ring-ring/50",e?"text-foreground":"text-muted-foreground",f),children:[!p&&(0,t.jsx)(s.CalendarDays,{className:"size-3.5 opacity-70"}),(0,t.jsx)("span",{className:"hidden sm:inline tabular-nums",children:S})]}),(0,t.jsxs)(r.PopoverContent,{align:"end",className:"w-64 p-3",children:[(0,t.jsxs)("div",{className:"flex items-center justify-between pb-2",children:[(0,t.jsx)("button",{type:"button","aria-label":"Previous month",onClick:()=>{_(e=>0===e?11:e-1),0===j&&w(e=>e-1)},className:"flex size-6 items-center justify-center rounded text-muted-foreground hover:bg-accent hover:text-foreground",children:(0,t.jsx)(i.ChevronLeft,{className:"size-3.5"})}),(0,t.jsx)("span",{className:"text-xs font-medium tabular-nums",children:new Date(k,j,1).toLocaleDateString(void 0,{month:"long",year:"numeric"})}),(0,t.jsx)("button",{type:"button","aria-label":"Next month",onClick:()=>{_(e=>11===e?0:e+1),11===j&&w(e=>e+1)},className:"flex size-6 items-center justify-center rounded text-muted-foreground hover:bg-accent hover:text-foreground",children:(0,t.jsx)(l.ChevronRight,{className:"size-3.5"})})]}),(0,t.jsx)("div",{className:"grid grid-cols-7 pb-1 text-[10px] text-muted-foreground",children:["S","M","T","W","T","F","S"].map((e,a)=>(0,t.jsx)("div",{className:"flex h-6 items-center justify-center font-medium",children:e},a))}),(0,t.jsx)("div",{className:"grid grid-cols-7 gap-0.5",children:C.map((a,r)=>{let s=(0,o.sameDay)(N,a.date),i=!!e&&(0,o.sameDay)(e,a.date),l=!!g&&a.date<d(g);return(0,t.jsx)("button",{type:"button",disabled:l,onClick:()=>D(a.date),"aria-pressed":i,className:(0,n.cn)("flex h-7 w-full items-center justify-center rounded text-[11px] tabular-nums transition-colors outline-none","focus-visible:ring-2 focus-visible:ring-ring/60",!a.inMonth&&"text-muted-foreground/50",a.inMonth&&!i&&"hover:bg-accent",s&&!i&&"text-foreground font-medium ring-1 ring-inset ring-border",i&&"bg-foreground text-background font-medium",l&&"opacity-30 cursor-not-allowed hover:bg-transparent"),children:a.date.getDate()},r)})}),(0,t.jsxs)("div",{className:"flex items-center justify-between gap-3 pt-2 mt-1 border-t border-border/50",children:[x&&e?(0,t.jsx)("button",{type:"button",onClick:()=>{x(),b(!1)},className:"text-[11px] text-muted-foreground hover:text-foreground transition-colors",children:"Clear"}):(0,t.jsx)("span",{"aria-hidden":!0}),(0,t.jsx)("button",{type:"button",onClick:()=>D(new Date),className:"text-[11px] text-muted-foreground hover:text-foreground transition-colors",children:"Today"})]})]})]})}function d(e){return new Date(e.getFullYear(),e.getMonth(),e.getDate())}},539163,e=>{"use strict";var t=e.i(368075),a=e.i(298699),r=e.i(313101),n=e.i(224950),s=e.i(613349);function i(e){return String(e).padStart(2,"0")}function l(e){let t=/^(\d{2}):(\d{2})$/.exec(e);return t?`${t[1]}:${t[2]}`:e}e.s(["CalendarTimePicker",0,function({value:e,onChange:o,className:c,ariaLabel:d="Pick a time",step:u=30,iconOnly:h=!1}){let[g,f]=(0,a.useState)(!1),m=(0,a.useRef)(null),p=function(e){let t=[];for(let a=0;a<1440;a+=e)t.push(`${i(Math.floor(a/60))}:${i(a%60)}`);return t}(u);return(0,a.useEffect)(()=>{if(!g)return;let e=setTimeout(()=>{let e=m.current?.querySelector('[data-selected="true"]');e?.scrollIntoView({block:"center"})},0);return()=>clearTimeout(e)},[g]),(0,t.jsxs)(n.Popover,{open:g,onOpenChange:f,children:[(0,t.jsxs)(n.PopoverTrigger,{"aria-label":d,className:(0,s.cn)(h?"inline-flex size-8 shrink-0 items-center justify-center rounded-lg border border-input bg-transparent text-muted-foreground outline-none transition-colors hover:bg-accent hover:text-foreground focus-visible:border-ring focus-visible:ring-3 focus-visible:ring-ring/50":"flex h-7 items-center gap-1.5 rounded-md border border-input bg-transparent px-2 text-xs text-foreground outline-none transition-colors hover:bg-accent hover:text-foreground focus-visible:border-ring focus-visible:ring-3 focus-visible:ring-ring/50",c),children:[(0,t.jsx)(r.Clock,{className:h?"size-3.5":"size-3.5 opacity-70"}),!h&&(0,t.jsx)("span",{className:"tabular-nums",children:l(e)})]}),(0,t.jsx)(n.PopoverContent,{align:"start",className:"w-36 p-1",children:(0,t.jsx)("div",{ref:m,className:"flex max-h-60 flex-col overflow-y-auto scrollbar-none",role:"listbox",children:p.map(a=>{let r=a===e;return(0,t.jsx)("button",{type:"button",role:"option","aria-selected":r,"data-selected":r,onClick:()=>{o(a),f(!1)},className:(0,s.cn)("flex h-7 shrink-0 items-center rounded px-2 text-[11px] tabular-nums transition-colors outline-none","focus-visible:bg-accent",r?"bg-foreground text-background font-medium":"text-foreground hover:bg-accent"),children:l(a)},a)})})})]})}])},779338,e=>{"use strict";let t=/^(\d+)(min|hour|day|week|month)$/;function a(e){let a=t.exec(e);if(!a)return null;let r=parseInt(a[1],10);return r<1?null:{count:r,unit:a[2]}}let r={min:["minute","minutes"],hour:["hour","hours"],day:["day","days"],week:["week","weeks"],month:["month","months"]},n=new Set(["min","hour","day","week","month"]);e.s(["PRESET_INTERVALS",0,[{value:"1hour",label:"Every hour"},{value:"1day",label:"Every day"},{value:"1week",label:"Every week"},{value:"1month",label:"Every month"}],"REPEAT_UNITS",0,["min","hour","day","week","month"],"formatRepeatDisplay",0,function(e){let t=a(e);if(!t)return e;let{count:n,unit:s}=t;return 1===n?`Every ${r[s][0]}`:`Every ${n} ${r[s][1]}`},"formatRepeatInterval",0,function(e,t){return`${e}${t}`},"isValidUnit",0,function(e){return n.has(e)},"parseRepeatInterval",0,a,"unitLabel",0,function(e,t){return 1===t?r[e][0]:r[e][1]}])},781360,e=>{"use strict";var t=e.i(368075),a=e.i(298699),r=e.i(880932),n=e.i(222862),s=e.i(332680),i=e.i(779646),l=e.i(186339),o=e.i(740513),c=e.i(265481),d=e.i(986765),u=e.i(371522),h=e.i(835258),g=e.i(430744),f=e.i(937091),m=e.i(613349),p=e.i(99475),x=e.i(539163),v=e.i(779338);function b(e){return String(e).padStart(2,"0")}function y(e,t){let a=/^(\d{2}):(\d{2})$/.exec(t),r=a?Number(a[1]):e.getHours(),n=a?Number(a[2]):e.getMinutes(),s=new Date(e);return s.setHours(r,n,0,0),s}function k(e){return`${e.getFullYear()}-${b(e.getMonth()+1)}-${b(e.getDate())}`}function w(e){return`${b(e.getHours())}:${b(e.getMinutes())}`}function j(e){return e?.trim()||""}let _="h-7 border-0 bg-transparent px-1.5 text-sm text-foreground hover:bg-accent transition-colors -ml-1.5",C=(0,m.cn)(_,"rounded-md outline-none focus-visible:bg-accent focus-visible:ring-0 appearance-none pr-6");function N({icon:e,children:a}){return(0,t.jsxs)("div",{className:"group flex items-center gap-2",children:[(0,t.jsx)("span",{className:"inline-flex size-6 shrink-0 items-center justify-center text-muted-foreground",children:e}),(0,t.jsx)("div",{className:"flex min-w-0 flex-wrap items-center gap-1",children:a})]})}function D({open:e,onOpenChange:r,onConfirm:n,loading:s,title:o,description:c,confirmLabel:d,loadingLabel:u,confirmVariant:h="default"}){let[g,f]=(0,a.useState)("this");return(0,a.useEffect)(()=>{e&&f("this")},[e]),(0,t.jsx)(i.Dialog,{open:e,onOpenChange:r,children:(0,t.jsxs)(i.DialogContent,{showCloseButton:!1,children:[(0,t.jsxs)(i.DialogHeader,{children:[(0,t.jsx)(i.DialogTitle,{children:o}),(0,t.jsx)(i.DialogDescription,{children:c})]}),(0,t.jsx)("div",{className:"flex flex-col gap-1.5 py-1",children:[{value:"this",label:"This event only"},{value:"following",label:"This and following events"}].map(e=>{let a=g===e.value;return(0,t.jsxs)("button",{type:"button",onClick:()=>f(e.value),className:(0,m.cn)("flex items-center gap-2 rounded-md border px-3 py-2 text-left text-sm transition-colors",a?"border-ring bg-accent/40":"border-border/60 hover:bg-accent/30"),children:[(0,t.jsx)("span",{className:(0,m.cn)("inline-flex size-4 items-center justify-center rounded-full border",a?"border-foreground":"border-border"),"aria-hidden":!0,children:a&&(0,t.jsx)("span",{className:"size-2 rounded-full bg-foreground"})}),(0,t.jsx)("span",{children:e.label})]},e.value)})}),(0,t.jsxs)(i.DialogFooter,{children:[(0,t.jsx)(l.Button,{variant:"outline",size:"sm",onClick:()=>r(!1),disabled:s,children:"Cancel"}),(0,t.jsx)(l.Button,{size:"sm",variant:h,onClick:()=>n(g),disabled:s,children:s?u:d})]})]})})}e.s(["CalendarEventSheet",0,function({open:e,onOpenChange:i,agents:S=[],event:M,calendarEventId:E,workspaceId:I,readonly:T,defaultDate:A,defaultAgentId:P,submitting:R,saving:$,deleting:B,onCreate:L,onUpdate:z,onDelete:F}){let[O,q]=(0,a.useState)(null),[H,W]=(0,a.useState)(!1),U=(0,a.useRef)(i);(0,a.useEffect)(()=>{U.current=i}),(0,a.useEffect)(()=>{if(!e||!E||M)return;let t=!1;return W(!0),q(null),(0,n.getCalendarEvent)(E,I??"").then(e=>{t||q(e)}).catch(()=>{t||(r.toast.error("Calendar event not found"),U.current(!1))}).finally(()=>{t||W(!1)}),()=>{t=!0}},[e,E,I,M]);let V=M??O,Y=e=>{i(e),e||setTimeout(()=>q(null),300)},[K,X]=(0,a.useState)(500),J=(0,a.useRef)(!1),G=(0,a.useCallback)(e=>{e.preventDefault(),J.current=!0,e.target.setPointerCapture(e.pointerId)},[]),Q=(0,a.useCallback)(e=>{J.current&&X(Math.min(.8*window.innerWidth,Math.max(320,window.innerWidth-e.clientX)))},[]),Z=(0,a.useCallback)(()=>{J.current=!1},[]),ee=V?"edit":"create",[et,ea]=(0,a.useState)(""),[er,en]=(0,a.useState)(""),[es,ei]=(0,a.useState)(""),[el,eo]=(0,a.useState)(new Date),[ec,ed]=(0,a.useState)("09:00"),[eu,eh]=(0,a.useState)(!1),[eg,ef]=(0,a.useState)("1"),[em,ep]=(0,a.useState)("day"),ex=(0,a.useMemo)(()=>{if(!eu)return"";let e=parseInt(eg,10);return!e||e<1?"":(0,v.formatRepeatInterval)(e,em)},[eu,eg,em]),[ev,eb]=(0,a.useState)(null),[ey,ek]=(0,a.useState)(!1),[ew,ej]=(0,a.useState)(!1),e_=(0,a.useRef)(null),eC=(0,a.useRef)(null);(0,a.useEffect)(()=>{if(e)if(V){let e=new Date(V.scheduled_at);ea(V.agent_id),en(V.title),ei(V.description??""),eo(e),ed(w(e));let t=(0,v.parseRepeatInterval)(V.repeat_interval??"");t?(eh(!0),ef(String(t.count)),ep(t.unit)):(eh(!1),ef("1"),ep("day")),eb(V.repeat_stop_at?new Date(V.repeat_stop_at):null)}else ea(P||S[0]?.id||""),en(""),ei(""),eo(A??new Date),ed(function(e,t=30){let a=Math.ceil((60*e.getHours()+e.getMinutes()+1)/t)*t,r=Math.floor(a/60)%24;return`${b(r)}:${b(a%60)}`}(new Date)),eh(!1),ef("1"),ep("day"),eb(null)},[e,V?.id]);let eN=(0,a.useMemo)(()=>{if(!V)return!0;let e=new Date(V.scheduled_at);return er.trim()!==V.title||j(es)!==j(V.description)||et!==V.agent_id||el.getFullYear()!==e.getFullYear()||el.getMonth()!==e.getMonth()||el.getDate()!==e.getDate()||ec!==w(e)||ex!==(V.repeat_interval??"")||(ev?k(ev):null)!==(V.repeat_stop_at?k(new Date(V.repeat_stop_at)):null)},[et,er,es,el,ec,ex,ev,V]);function eD(){if(!et)return"Select an agent";if(!er.trim())return"Title is required";if(!/^([01]\d|2[0-3]):[0-5]\d$/.test(ec))return"Time must be HH:MM in 24-hour format";if(eu){let e=parseInt(eg,10);if(!e||e<1)return"Repeat count must be a positive number"}if(ev&&!ex)return"Stop date requires a repeat interval";let e=y(el,ec);if(ev){let t=new Date(ev);if(t.setHours(23,59,59,999),t<e)return"Stop date must be on or after the first occurrence"}return null}let eS=async e=>{e.preventDefault();let t=eD();if(t)return r.toast.error(t);let a=y(el,ec),n=es?.trim()||void 0;await L?.({agent_id:et,title:er.trim(),description:n,scheduled_at:a.toISOString(),repeat_interval:ex||void 0,repeat_stop_date:ev?k(ev):void 0})};function eM(){if(!V)return null;let e={},t=y(el,ec).toISOString(),a=er.trim();a!==V.title&&(e.title=a);let r=j(es);r!==j(V.description)&&(e.description=""===r?null:r),et!==V.agent_id&&(e.agent_id=et),t!==new Date(V.scheduled_at).toISOString()&&(e.scheduled_at=t),ex!==(V.repeat_interval??"")&&(e.repeat_interval=""===ex?null:ex);let n=ev?k(ev):null;return(n!==(V.repeat_stop_at?k(new Date(V.repeat_stop_at)):null)&&(e.repeat_stop_date=n),void 0===e.title&&void 0===e.description&&void 0===e.agent_id&&void 0===e.scheduled_at&&void 0===e.repeat_interval&&void 0===e.repeat_stop_date)?null:e}let eE=async e=>{V&&await z?.(V,e)},eI=async()=>{if(!V)return;let e=eD();if(e)return r.toast.error(e);let t=eM();if(t){if(V.repeat_interval)return void ek(!0);await eE(t)}},eT=async e=>{let t=eM();t&&(t.scope=e,"this"===e&&V?.occurrence_at&&(t.occurrence_at=V.occurrence_at),await eE(t)),ek(!1)},eA=e=>{"Enter"===e.key&&e.shiftKey&&(e.preventDefault(),e.stopPropagation(),"create"===ee?eC.current?.requestSubmit():eI())},eP=(0,t.jsxs)("kbd",{"aria-hidden":!0,className:"mr-1 hidden sm:inline-flex items-center gap-0.5 font-sans font-medium leading-none opacity-60",children:[(0,t.jsx)("span",{children:"⇧"}),(0,t.jsx)("span",{children:"+"}),(0,t.jsx)("span",{children:"⏎"})]}),eR="edit"===ee?er.trim()||"Untitled event":er.trim()||"New calendar event",e$=(0,a.useRef)(null),eB=e=>{e&&(e.style.height="auto",e.style.height=`${e.scrollHeight}px`)};(0,a.useEffect)(()=>{eB(e$.current)},[er]);let eL=T?(0,t.jsx)("p",{className:"w-full px-0 py-1 font-news text-xl sm:text-2xl md:text-3xl font-medium leading-[1.2] tracking-tight",children:er||"Untitled event"}):(0,t.jsx)("textarea",{ref:e=>{e$.current=e,eB(e)},"aria-label":"Event title",value:er,onChange:e=>{en(e.target.value),eB(e.target)},onKeyDown:e=>{if("Enter"===e.key&&!e.shiftKey){let t;e.preventDefault(),t=e_.current?.querySelector('[contenteditable="true"]'),t?.focus()}},placeholder:"edit"===ee?"Untitled event":"New event",autoFocus:"create"===ee,rows:1,className:(0,m.cn)("w-full resize-none overflow-hidden rounded-none border-0 bg-transparent px-0 py-1 font-news text-xl sm:text-2xl md:text-3xl font-medium leading-[1.2] tracking-tight","shadow-none outline-none focus-visible:border-0 focus-visible:ring-0 focus-visible:ring-offset-0","placeholder:text-muted-foreground/40 placeholder:font-normal")}),ez=T?(0,t.jsxs)("div",{className:"flex flex-col gap-1.5",children:[(0,t.jsx)(N,{icon:(0,t.jsx)(c.CalendarDays,{className:"size-3.5"}),children:(0,t.jsx)("span",{className:"text-sm text-foreground",children:el.toLocaleDateString(void 0,{weekday:"short",year:"numeric",month:"short",day:"numeric"})})}),(0,t.jsx)(N,{icon:(0,t.jsx)(c.CalendarDays,{className:"size-3.5"}),children:(0,t.jsx)("span",{className:"text-sm text-foreground",children:ec})}),(0,t.jsx)(N,{icon:(0,t.jsx)(h.Repeat,{className:"size-3.5"}),children:(0,t.jsx)("span",{className:"text-sm text-foreground",children:eu?`Every ${eg} ${(0,v.unitLabel)(em,parseInt(eg,10)||1)}`:"Does not repeat"})}),eu&&ev&&(0,t.jsx)(N,{icon:(0,t.jsx)(d.CalendarOff,{className:"size-3.5"}),children:(0,t.jsxs)("span",{className:"text-sm text-foreground",children:["Until ",ev.toLocaleDateString()]})})]}):(0,t.jsxs)("div",{className:"flex flex-col gap-1.5",children:[(0,t.jsx)(N,{icon:(0,t.jsx)(g.User,{className:"size-3.5"}),children:(0,t.jsxs)("select",{"aria-label":"Agent",value:et,onChange:e=>ea(e.target.value),className:C,children:[0===S.length&&(0,t.jsx)("option",{value:"",children:"No agents"}),S.map(e=>(0,t.jsx)("option",{value:e.id,children:e.name},e.id))]})}),(0,t.jsx)(N,{icon:(0,t.jsx)(c.CalendarDays,{className:"size-3.5"}),children:(0,t.jsx)(p.CalendarDatePicker,{value:el,onChange:e=>eo(e),ariaLabel:"Event date",hideIcon:!0,className:_})}),(0,t.jsx)(N,{icon:(0,t.jsx)(x.CalendarTimePicker,{value:ec,onChange:ed,iconOnly:!0,ariaLabel:"Pick time slot",className:"inline-flex size-6 items-center justify-center rounded-md border-0 bg-transparent p-0 text-muted-foreground transition-colors hover:bg-accent hover:text-foreground group-hover:bg-accent group-hover:text-foreground"}),children:(0,t.jsx)("input",{type:"text",inputMode:"numeric",pattern:"([01]\\d|2[0-3]):[0-5]\\d",maxLength:5,value:ec,onChange:e=>ed(e.target.value),placeholder:"HH:MM","aria-label":"Event time (24-hour)",className:"h-7 w-12 border-0 bg-transparent px-0.5 text-sm tabular-nums text-foreground rounded-md outline-none focus-visible:ring-0"})}),(0,t.jsx)(N,{icon:(0,t.jsx)(h.Repeat,{className:"size-3.5"}),children:eu?(0,t.jsxs)("div",{className:"-ml-1.5 flex items-center gap-0.5",children:[(0,t.jsx)("span",{className:"px-1 text-sm text-foreground",children:"Every"}),(0,t.jsx)("input",{type:"text",inputMode:"numeric","aria-label":"Repeat count",value:eg,onChange:e=>{ef(e.target.value.replace(/[^\d]/g,""))},onBlur:()=>{let e=parseInt(eg,10);(!e||e<1)&&ef("1")},maxLength:4,style:{width:`${Math.max(1,eg.length)+1.5}ch`},className:"h-7 shrink-0 border-0 bg-transparent px-0 text-center text-sm tabular-nums text-foreground rounded-md outline-none hover:bg-accent focus-visible:bg-accent focus-visible:ring-0 transition-colors"}),(0,t.jsx)("select",{"aria-label":"Repeat unit",value:em,onChange:e=>{(0,v.isValidUnit)(e.target.value)&&ep(e.target.value)},className:"h-7 border-0 bg-transparent px-1 text-center text-sm text-foreground rounded-md outline-none appearance-none hover:bg-accent focus-visible:bg-accent focus-visible:ring-0 transition-colors",children:v.REPEAT_UNITS.map(e=>(0,t.jsx)("option",{value:e,children:(0,v.unitLabel)(e,parseInt(eg,10)||1)},e))}),(0,t.jsx)("button",{type:"button","aria-label":"Remove repeat",onClick:()=>{eh(!1),ef("1"),ep("day"),eb(null)},className:"inline-flex size-5 shrink-0 items-center justify-center rounded text-muted-foreground transition-colors hover:bg-accent hover:text-foreground",children:(0,t.jsx)(f.X,{className:"size-3"})})]}):(0,t.jsxs)("select",{"aria-label":"Repeat",value:"",onChange:e=>{let t=e.target.value;if(t)if("__custom__"===t)eh(!0),ef("1"),ep("day");else{let e=(0,v.parseRepeatInterval)(t);e&&(eh(!0),ef(String(e.count)),ep(e.unit))}},className:C,children:[(0,t.jsx)("option",{value:"",children:"Does not repeat"}),v.PRESET_INTERVALS.map(e=>(0,t.jsx)("option",{value:e.value,children:e.label},e.value)),(0,t.jsx)("option",{value:"__custom__",children:"Custom…"})]})}),ex&&(0,t.jsx)(N,{icon:(0,t.jsx)(d.CalendarOff,{className:"size-3.5"}),children:(0,t.jsx)(p.CalendarDatePicker,{value:ev,onChange:e=>eb(e),onClear:()=>eb(null),placeholder:"No end date",min:el,ariaLabel:"Stop date",hideIcon:!0,className:_})})]}),eF=T?es?(0,t.jsx)("pre",{className:"whitespace-pre-wrap font-sans text-sm",children:es}):null:(0,t.jsx)("div",{ref:e_,children:(0,t.jsx)(o.MarkdownEditor,{contentType:"markdown",value:es,onChange:ei,placeholder:"Add a description…",className:"markdown",minHeight:"edit"===ee?"10rem":"8rem",variant:"seamless",agents:S},V?.id??"new")}),eO=(0,t.jsx)("div",{onPointerDown:G,onPointerMove:Q,onPointerUp:Z,className:"hidden sm:block absolute left-0 top-0 bottom-0 w-1.5 cursor-col-resize z-10 hover:bg-primary/20 active:bg-primary/30 transition-colors rounded-l-xl"}),eq=H?(0,t.jsx)(s.SheetBody,{className:"flex items-center justify-center py-12",children:(0,t.jsx)(u.Loader2,{className:"h-6 w-6 animate-spin text-muted-foreground"})}):(0,t.jsxs)(s.SheetBody,{className:"flex flex-col gap-6 px-4 pt-6 pb-4 sm:px-8 sm:pt-10 sm:pb-6",children:[eL,ez,eF]});return(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)(s.Sheet,{open:e,onOpenChange:Y,children:(0,t.jsxs)(s.SheetContent,{style:{width:`min(${K}px, 100vw)`,maxWidth:"none"},className:"data-[side=right]:sm:inset-y-2 data-[side=right]:sm:right-2 data-[side=right]:sm:h-auto data-[side=right]:sm:rounded-xl data-[side=right]:sm:border",children:[eO,(0,t.jsx)(s.SheetTitle,{className:"sr-only",children:eR}),T?(0,t.jsx)("div",{className:"flex flex-1 flex-col min-h-0",children:eq}):"create"===ee?(0,t.jsxs)("form",{ref:eC,onSubmit:eS,onKeyDownCapture:eA,className:"flex flex-1 flex-col min-h-0",children:[eq,(0,t.jsxs)(s.SheetFooter,{children:[(0,t.jsx)(l.Button,{type:"button",variant:"outline",onClick:()=>Y(!1),children:"Cancel"}),(0,t.jsx)(l.Button,{type:"submit",disabled:R||!S.length,children:R?"Creating...":(0,t.jsxs)(t.Fragment,{children:[eP,"Create event"]})})]})]}):(0,t.jsxs)("div",{onKeyDownCapture:eA,className:"flex flex-1 flex-col min-h-0",children:[eq,(0,t.jsxs)(s.SheetFooter,{className:"sm:justify-between",children:[(0,t.jsx)(l.Button,{variant:"destructive",onClick:()=>{if(V){if(V.repeat_interval)return void ej(!0);F?.(V)}},disabled:B||$,children:B?"Deleting...":"Delete"}),(0,t.jsxs)("div",{className:"flex items-center gap-2 sm:justify-end",children:[(0,t.jsx)(l.Button,{variant:"outline",onClick:()=>Y(!1),disabled:$,children:"Cancel"}),(0,t.jsx)(l.Button,{onClick:eI,disabled:$||!eN,children:$?"Saving...":(0,t.jsxs)(t.Fragment,{children:[eP,"Save"]})})]})]})]})]})}),(0,t.jsx)(D,{open:ey,onOpenChange:ek,onConfirm:eT,loading:$,title:"Update recurring event",description:"How should this change apply?",confirmLabel:"Update",loadingLabel:"Saving..."}),(0,t.jsx)(D,{open:ew,onOpenChange:ej,onConfirm:e=>{V&&(F?.(V,{scope:e,occurrence_at:V.occurrence_at??void 0}),ej(!1))},loading:B,title:"Delete recurring event",description:"How much of the series should be removed?",confirmLabel:"Delete",loadingLabel:"Deleting...",confirmVariant:"destructive"})]})}])},937091,e=>{"use strict";var t=e.i(852665);e.s(["X",()=>t.default])},642342,e=>{"use strict";var t=e.i(459119),a=e.i(298699);let r=(0,e.i(613349).isLocalMode)(),n=Number(t.default.env.NEXT_PUBLIC_WS_DO_PORT)||8789,s=Number(t.default.env.NEXT_PUBLIC_WS_RECONNECT_DELAY_MS)||1e3,i=Number(t.default.env.NEXT_PUBLIC_WS_RECONNECT_MAX_DELAY_MS)||3e4;e.s(["useUserWs",0,function(e,t){let l=(0,a.useRef)(null),o=(0,a.useRef)(s),c=(0,a.useRef)(e),d=(0,a.useRef)(t?.onReconnect),u=(0,a.useRef)(null),h=(0,a.useRef)(!1),g=(0,a.useRef)(0),f=(0,a.useRef)(null),m=(0,a.useRef)(null);(0,a.useEffect)(()=>{c.current=e},[e]),(0,a.useEffect)(()=>{d.current=t?.onReconnect},[t?.onReconnect]);let p=(0,a.useRef)(null),x=(0,a.useCallback)(()=>{let e=Math.min(o.current,i);o.current=Math.min(2*e,i),u.current=setTimeout(()=>{p.current?.()},e+500*Math.random())},[]),v=(0,a.useCallback)(async()=>{let e,t,a,i=n;try{let a=await fetch("/api/ws/token");if(!a.ok){console.warn("[ws] token fetch failed:",a.status),x();return}let r=await a.json();e=r.userId,t=r.token,r.wsPort&&(i=r.wsPort)}catch(e){console.warn("[ws] token fetch error:",e),x();return}let u=r?`ws://localhost:${i}/?userId=${e}`:`${location.origin.replace("http","ws")}/api/ws/user?userId=${e}`;try{a=new WebSocket(u)}catch(e){console.warn("[ws] WebSocket creation failed:",e),x();return}l.current=a,a.onopen=()=>{o.current=s,a.send(JSON.stringify({type:"auth",token:t})),h.current&&d.current?.(),h.current=!0,g.current=Date.now(),f.current=setInterval(()=>{a.readyState===WebSocket.OPEN&&a.send("ping")},25e3),m.current=setInterval(()=>{Date.now()-g.current>3e4&&a.close()},5e3)},a.onmessage=e=>{g.current=Date.now();try{let t=JSON.parse(e.data);if("auth.ok"===t.type)return;c.current(t)}catch{}},a.onerror=()=>{},a.onclose=()=>{a===l.current&&(f.current&&(clearInterval(f.current),f.current=null),m.current&&(clearInterval(m.current),m.current=null),x())}},[x]);(0,a.useEffect)(()=>{p.current=v},[v]),(0,a.useEffect)(()=>(v(),()=>{null!==u.current&&(clearTimeout(u.current),u.current=null),f.current&&(clearInterval(f.current),f.current=null),m.current&&(clearInterval(m.current),m.current=null);let e=l.current;l.current=null,e?.close()}),[v])}])},355578,e=>{"use strict";var t=e.i(368075),a=e.i(298699),r=e.i(222862),n=e.i(880932),s=e.i(642342);let i=(0,a.createContext)(null);e.s(["AgentProvider",0,function({workspaceId:e,children:l}){let[o,c]=(0,a.useState)([]),[d,u]=(0,a.useState)([]),[h,g]=(0,a.useState)(!0),[f,m]=(0,a.useState)({}),[p,x]=(0,a.useState)([]),v=(0,a.useRef)(!1),[b,y]=(0,a.useState)([]),[k,w]=(0,a.useState)(new Map),[j,_]=(0,a.useState)(new Map),C=(0,a.useRef)(!1),N=(0,a.useRef)(new Set),D=(0,a.useRef)(!0),S=(0,a.useRef)(!1),M=(0,a.useCallback)(e=>(N.current.add(e),()=>{N.current.delete(e)}),[]),E=(0,a.useRef)(!1),I=(0,a.useCallback)(async()=>{if(!E.current){E.current=!0;try{if(v.current){let t=await (0,r.listWorkspaceActiveTasks)(e);if(!D.current)return;x(t.tasks);let a={};for(let e of t.tasks)a[e.agent_id]=(a[e.agent_id]??0)+1;m(a),v.current=t.tasks.length>0}else{let t=await (0,r.listAgentActiveTaskCounts)(e);if(!D.current)return;if(m(t.counts),Object.values(t.counts).some(e=>e>0)){v.current=!0;let t=await (0,r.listWorkspaceActiveTasks)(e);D.current&&x(t.tasks)}else x([])}}catch{}finally{E.current=!1}}},[e]);(0,a.useEffect)(()=>{D.current=!0,I();let e=setInterval(I,15e3);return()=>{D.current=!1,clearInterval(e)}},[I]);let T=(0,a.useCallback)(async()=>{try{let[t,a,n,s]=await Promise.all([(0,r.listAgents)(e),(0,r.listRuntimes)(e),(0,r.listAgentPins)(e),(0,r.listAgentLinks)(e)]);c(t),u(a),y(s),w(new Map(n.pins.map(e=>[e.agent_id,{created_at:e.created_at,position:e.position}]))),_(new Map(n.sidebar_order.map(e=>[e.agent_id,e.position])))}catch(e){n.toast.error(e instanceof Error?e.message:"Failed to load data")}finally{g(!1),C.current=!0}},[e]),A=(0,a.useCallback)(async()=>{if(!S.current){S.current=!0;try{let t=await (0,r.listRuntimes)(e);u(t)}catch{}finally{S.current=!1}}},[e]);(0,a.useEffect)(()=>{T()},[T]),(0,a.useEffect)(()=>{let e=null,t=setInterval(()=>{"visible"===document.visibilityState&&A()},3e4),a=()=>{"visible"===document.visibilityState&&(e=setTimeout(()=>A(),2e3*Math.random()))};return document.addEventListener("visibilitychange",a),()=>{clearInterval(t),e&&clearTimeout(e),document.removeEventListener("visibilitychange",a)}},[A]);let P=(0,a.useCallback)(t=>{for(let e of N.current)e(t);switch(t.type){case"runtime.registered":if(t.workspaceId!==e)break;T();break;case"runtime.deleted":T();break;case"runtime.status":if(t.workspaceId!==e)break;A();break;case"task.updated":I()}},[T,A,I,e]);(0,s.useUserWs)(P,{onReconnect:A});let R=(0,a.useCallback)(async t=>{try{let a=await (0,r.createAgent)(t,e);return await T(),a}catch(e){return n.toast.error(e instanceof Error?e.message:"Failed to create agent"),null}},[T,e]),$=(0,a.useCallback)(async(t,a)=>{try{return await (0,r.updateAgent)(t,a,e),await T(),!0}catch(e){return n.toast.error(e instanceof Error?e.message:"Failed to update agent"),!1}},[T,e]),B=(0,a.useCallback)(async t=>{try{return await (0,r.deleteAgent)(t,e),await T(),!0}catch(e){return n.toast.error(e instanceof Error?e.message:"Failed to remove agent"),!1}},[T,e]),L=(0,a.useCallback)(async t=>{w(e=>{let a=Math.max(-1,...[...e.values()].map(e=>e.position));return new Map(e).set(t,{created_at:new Date().toISOString(),position:a+1})});try{await (0,r.pinAgent)(e,t)}catch{w(e=>{let a=new Map(e);return a.delete(t),a}),n.toast.error("Failed to pin agent")}},[e]),z=(0,a.useCallback)(async t=>{let a;w(e=>{a=e.get(t);let r=new Map(e);return r.delete(t),r});try{await (0,r.unpinAgent)(e,t)}catch{void 0!==a&&w(e=>new Map(e).set(t,a)),n.toast.error("Failed to unpin agent")}},[e]),F=(0,a.useCallback)(async t=>{let a=new Map(k);w(e=>{let a=new Map(e);return t.forEach((e,t)=>{let r=a.get(e);r&&a.set(e,{...r,position:t})}),a});try{await (0,r.reorderAgentPins)(e,t)}catch{w(a),n.toast.error("Failed to reorder pins")}},[e,k]),O=(0,a.useCallback)(async t=>{let a=new Map(j);_(new Map(t.map((e,t)=>[e,t])));try{await (0,r.reorderUnpinnedAgents)(e,t)}catch{_(a),n.toast.error("Failed to reorder agents")}},[e,j]),q=(0,a.useCallback)(()=>{let e=d.find(e=>"online"===e.status);return e?.id??""},[d]),H=(0,a.useCallback)(async()=>{try{return(await (0,r.createMachineToken)("cli",e)).token}catch(e){return n.toast.error(e instanceof Error?e.message:"Failed to generate token"),null}},[e]),W=(0,a.useCallback)(async t=>{try{return await (0,r.deleteMachine)(t,e),await T(),!0}catch(e){return n.toast.error(e instanceof Error?e.message:"Failed to remove machine"),!1}},[T,e]);return(0,t.jsx)(i.Provider,{value:{workspaceId:e,agents:o,agentLinks:b,runtimes:d,loading:h,activeTaskCounts:f,activeTaskDetails:p,pins:k,reload:T,subscribeWs:M,handleCreateAgent:R,handleUpdateAgent:$,handleDeleteAgent:B,handlePinAgent:L,handleUnpinAgent:z,handleReorderPins:F,unpinnedOrder:j,handleReorderUnpinned:O,getFirstOnlineRuntimeId:q,handleGenerateToken:H,handleDeleteMachine:W},children:l})},"useAgentContext",0,function(){let e=(0,a.useContext)(i);if(!e)throw Error("useAgentContext must be used within AgentProvider");return e},"useAgentContextSafe",0,function(){return(0,a.useContext)(i)}])},332680,e=>{"use strict";var t=e.i(368075),a=e.i(55916),r=e.i(613349),n=e.i(186339),s=e.i(49695);function i({...e}){return(0,t.jsx)(a.Dialog.Portal,{"data-slot":"sheet-portal",...e})}function l({className:e,...n}){return(0,t.jsx)(a.Dialog.Backdrop,{"data-slot":"sheet-overlay",className:(0,r.cn)("fixed inset-0 z-50 bg-black/20 backdrop-blur-[2px] transition-[opacity,backdrop-filter] duration-200 ease-out data-ending-style:opacity-0 data-ending-style:backdrop-blur-none data-starting-style:opacity-0 data-starting-style:backdrop-blur-none",e),...n})}e.s(["Sheet",0,function({...e}){return(0,t.jsx)(a.Dialog.Root,{"data-slot":"sheet",...e})},"SheetBody",0,function({className:e,...a}){return(0,t.jsx)("div",{"data-slot":"sheet-body",className:(0,r.cn)("flex-1 overflow-y-auto thin-scrollbar px-4 sm:px-6 py-5",e),...a})},"SheetClose",0,function({...e}){return(0,t.jsx)(a.Dialog.Close,{"data-slot":"sheet-close",...e})},"SheetContent",0,function({className:e,children:o,side:c="right",showCloseButton:d=!0,...u}){return(0,t.jsxs)(i,{children:[(0,t.jsx)(l,{forceRender:!0}),(0,t.jsxs)(a.Dialog.Popup,{"data-slot":"sheet-content","data-side":c,className:(0,r.cn)("fixed z-50 flex flex-col bg-background shadow-xl outline-none transition duration-300 ease-in-out data-ending-style:opacity-0 data-starting-style:opacity-0","data-[side=right]:inset-y-0 data-[side=right]:right-0 data-[side=right]:h-full data-[side=right]:w-full data-[side=right]:max-w-md data-[side=right]:border-l data-[side=right]:data-ending-style:translate-x-10 data-[side=right]:data-starting-style:translate-x-10","data-[side=left]:inset-y-0 data-[side=left]:left-0 data-[side=left]:h-full data-[side=left]:w-full data-[side=left]:max-w-md data-[side=left]:border-r data-[side=left]:data-ending-style:-translate-x-10 data-[side=left]:data-starting-style:-translate-x-10","data-[side=top]:inset-x-0 data-[side=top]:top-0 data-[side=top]:h-auto data-[side=top]:border-b data-[side=top]:data-ending-style:-translate-y-10 data-[side=top]:data-starting-style:-translate-y-10","data-[side=bottom]:inset-x-0 data-[side=bottom]:bottom-0 data-[side=bottom]:h-auto data-[side=bottom]:border-t data-[side=bottom]:data-ending-style:translate-y-10 data-[side=bottom]:data-starting-style:translate-y-10",e),...u,children:[o,d&&(0,t.jsxs)(a.Dialog.Close,{"data-slot":"sheet-close",render:(0,t.jsx)(n.Button,{variant:"ghost",className:"absolute top-3 right-3 z-10",size:"icon-sm"}),children:[(0,t.jsx)(s.XIcon,{}),(0,t.jsx)("span",{className:"sr-only",children:"Close"})]})]})]})},"SheetDescription",0,function({className:e,...n}){return(0,t.jsx)(a.Dialog.Description,{"data-slot":"sheet-description",className:(0,r.cn)("text-sm text-muted-foreground",e),...n})},"SheetFooter",0,function({className:e,...a}){return(0,t.jsx)("div",{"data-slot":"sheet-footer",className:(0,r.cn)("flex flex-col-reverse gap-2 border-t bg-muted/50 px-4 sm:px-6 py-4 sm:flex-row sm:justify-end",e),...a})},"SheetHeader",0,function({className:e,...a}){return(0,t.jsx)("div",{"data-slot":"sheet-header",className:(0,r.cn)("flex flex-col gap-1 border-b px-4 sm:px-6 py-5",e),...a})},"SheetTitle",0,function({className:e,...n}){return(0,t.jsx)(a.Dialog.Title,{"data-slot":"sheet-title",className:(0,r.cn)("font-heading text-lg leading-tight font-semibold",e),...n})},"SheetTrigger",0,function({...e}){return(0,t.jsx)(a.Dialog.Trigger,{"data-slot":"sheet-trigger",...e})}])},64873,907361,e=>{"use strict";let t=(0,e.i(406963).default)("chevron-right",[["path",{d:"m9 18 6-6-6-6",key:"mthhwq"}]]);e.s(["default",0,t],907361),e.s(["ChevronRight",0,t],64873)},927783,e=>{"use strict";let t=(0,e.i(406963).default)("git-branch",[["path",{d:"M15 6a9 9 0 0 0-9 9V3",key:"1cii5b"}],["circle",{cx:"18",cy:"6",r:"3",key:"1h7g24"}],["circle",{cx:"6",cy:"18",r:"3",key:"fqmcym"}]]);e.s(["GitBranch",0,t],927783)},872937,e=>{"use strict";var t=e.i(368075),a=e.i(298699),r=e.i(222862),n=e.i(880932);let s=(0,a.createContext)(null);function i(e,t){return t?`alook:channel:${e}:${t}`:`alook:channel:${e}`}e.s(["ChannelProvider",0,function({workspaceId:e,children:l}){let[o,c]=(0,a.useState)([]),[d,u]=(0,a.useState)("default"),[h,g]=(0,a.useState)(!0),[f,m]=(0,a.useState)(null),p=(0,a.useCallback)(async()=>{try{let t=await (0,r.listChannels)(e);c(t)}catch{c([])}},[e]);(0,a.useEffect)(()=>{p().finally(()=>g(!1))},[e,p]),(0,a.useEffect)(()=>{f&&u(localStorage.getItem(i(e,f))??"default")},[e,f]);let x=(0,a.useCallback)(t=>{u(t);try{localStorage.setItem(i(e,f),t)}catch{}},[e,f]),v=(0,a.useCallback)(async t=>{let a=await (0,r.createChannelApi)(e,t);return await p(),a},[e,p]),b=(0,a.useCallback)(async(t,a)=>{let n=o.find(e=>e.id===t);await (0,r.renameChannelApi)(t,e,a),n&&n.name===d&&x(a),await p()},[e,o,d,x,p]),y=(0,a.useCallback)(async t=>{let a=o.find(e=>e.id===t);await (0,r.deleteChannelApi)(t,e),a&&a.name===d&&x("default"),await p()},[e,o,d,x,p]),k=(0,a.useCallback)(async t=>{c(e=>{let a=new Map(e.map(e=>[e.id,e])),r=t.map(e=>a.get(e)).filter(e=>void 0!==e),n=new Set(t);return[...e.filter(e=>!n.has(e.id)),...r]});try{await (0,r.reorderChannelsApi)(e,t)}catch{await p(),n.toast.error("Failed to reorder channels")}},[e,p]);return(0,t.jsx)(s.Provider,{value:{channels:o,activeChannel:d,loading:h,setActiveChannel:x,setAgentId:m,createChannel:v,renameChannel:b,deleteChannel:y,reorderChannels:k,refresh:p},children:l})},"useChannel",0,function(){let e=(0,a.useContext)(s);if(!e)throw Error("useChannel must be used within a ChannelProvider");return e}])},309475,450463,e=>{"use strict";var t=e.i(368075),a=e.i(298699),r=e.i(789994),n=e.i(875061),s=e.i(224950),i=e.i(329686),l=e.i(728886),o=e.i(613349),c=e.i(222862),d=e.i(500324);function u(e){let t=new Date(e);if(isNaN(t.getTime()))return"";let a=Math.floor((new Date().getTime()-t.getTime())/6e4);if(a<1)return"just now";if(a<60)return`${a}m ago`;let r=Math.floor(a/60);if(r<24)return`${r}h ago`;let n=Math.floor(r/24);return n<7?`${n}d ago`:t.toLocaleDateString(void 0,{month:"short",day:"numeric"})}function h({online:e}){return(0,t.jsx)("span",{className:(0,o.cn)("size-1.5 rounded-full shrink-0",e?"bg-status-online":"bg-status-offline")})}function g({task:e,slug:a,agentId:n}){var s;let i,l="running"===e.status;return(0,t.jsxs)(r.default,{href:`/w/${a}/agents/${n}?task=${e.id}&conv=${e.conversation_id}`,className:"flex items-center gap-2 w-full py-1.5 px-2 hover:bg-muted rounded-md transition-colors cursor-pointer",children:[(0,t.jsx)("span",{className:(0,o.cn)("size-1.5 rounded-full shrink-0",l?"bg-primary animate-pulse":"bg-muted-foreground/40")}),(0,t.jsx)("div",{className:"flex-1 min-w-0",children:(0,t.jsx)("p",{className:"text-xs truncate",children:(i=(s=e.prompt).match(/^Issue\s+iss_\w+:\s*(.+)/))?i[1].split("\n")[0]:s.split("\n")[0]})}),(0,t.jsx)("span",{className:"text-[10px] text-muted-foreground whitespace-nowrap shrink-0",children:u(e.created_at)})]})}e.s(["relativeTime",0,u],450463);let f="gap-1.5 text-muted-foreground hover:text-foreground cursor-pointer";e.s(["AgentStatusBadge",0,function({isOnline:e,taskCount:u,agentId:m}){let{slug:p,workspaceId:x}=(0,d.useWorkspace)(),[v,b]=(0,a.useState)(null),[y,k]=(0,a.useState)(!1),[w,j]=(0,a.useState)(!1),_=(0,a.useCallback)(async()=>{b(null),k(!0),j(!1);try{let e=await (0,c.listWorkspaceActiveTasks)(x);b(e.tasks.filter(e=>e.agent_id===m))}catch{j(!0)}finally{k(!1)}},[m,x]);return e?(0,t.jsxs)(s.Popover,{onOpenChange:e=>{e&&_()},children:[(0,t.jsxs)(s.PopoverTrigger,{render:(0,t.jsx)("button",{type:"button",className:(0,o.cn)((0,n.badgeVariants)({variant:"outline"}),f),onClick:e=>e.stopPropagation()}),children:[(0,t.jsx)(h,{online:!0}),u>0?(0,t.jsx)("span",{className:"hidden sm:inline",children:"Working"}):(0,t.jsx)("span",{className:"hidden sm:inline text-muted-foreground/40",children:"Online"})]}),(0,t.jsx)(s.PopoverContent,{className:"w-72 p-1",children:y?(0,t.jsx)("div",{className:"p-2 space-y-1",children:Array.from({length:3}).map((e,a)=>(0,t.jsxs)("div",{className:"flex items-center gap-2 py-1.5 px-2",children:[(0,t.jsx)(l.Skeleton,{className:"size-1.5 rounded-full"}),(0,t.jsxs)("div",{className:"flex-1 space-y-1",children:[(0,t.jsx)(l.Skeleton,{className:"h-2.5 w-10"}),(0,t.jsx)(l.Skeleton,{className:"h-3 w-full"})]}),(0,t.jsx)(l.Skeleton,{className:"h-2.5 w-8"})]},a))}):w?(0,t.jsx)("div",{className:"p-3 text-xs text-muted-foreground",children:"Failed to load"}):v&&0!==v.length?(0,t.jsxs)("div",{className:"max-h-75 overflow-y-auto",children:[v.slice(0,6).map(e=>(0,t.jsx)(g,{task:e,slug:p,agentId:m},e.id)),v.length>6&&(0,t.jsxs)(r.default,{href:`/w/${p}/agents/${m}/activity?status=running`,className:"block text-xs text-muted-foreground hover:text-foreground text-center py-1.5 transition-colors",children:["View all ",v.length," tasks"]})]}):(0,t.jsx)("div",{className:"p-3 text-xs text-muted-foreground",children:"No active tasks"})})]}):(0,t.jsxs)(i.Tooltip,{children:[(0,t.jsx)(i.TooltipTrigger,{render:(0,t.jsxs)(n.Badge,{variant:"outline",render:(0,t.jsx)(r.default,{href:`/w/${p}/runtimes`}),className:f,children:[(0,t.jsx)(h,{online:!1}),(0,t.jsx)("span",{className:"hidden sm:inline",children:"Offline"})]})}),(0,t.jsx)(i.TooltipContent,{children:"Runtime offline — click to manage runtimes"})]})}],309475)},980630,e=>{"use strict";let t="browser-notification-enabled",a="browser-notification-events",r=["completed","failed"],n={completed:"Task Completed",failed:"Task Failed"};function s(){return"Notification"in window}function i(){return"true"===localStorage.getItem(t)}function l(){try{let e=localStorage.getItem(a);if(e)return JSON.parse(e)}catch{}return[...r]}async function o(){return!!s()&&("granted"===Notification.permission||"denied"!==Notification.permission&&"granted"===await Notification.requestPermission())}e.s(["NOTIFICATION_EVENTS",0,r,"NOTIFICATION_EVENT_LABELS",0,n,"getNotificationEnabled",0,i,"getNotificationEvents",0,l,"isNotificationSupported",0,s,"requestNotificationPermission",0,o,"sendTaskNotification",0,function(e,t,a){if(!s()||"granted"!==Notification.permission||!i()||!l().includes(e))return;let r=n[e]??`Task ${e}`;new Notification(t?`${t} — ${r}`:r,{body:a??"",icon:"/alook.svg"})},"setNotificationEnabled",0,function(e){localStorage.setItem(t,String(e))},"setNotificationEvents",0,function(e){localStorage.setItem(a,JSON.stringify(e))}])},875494,685835,e=>{"use strict";var t=e.i(368075),a=e.i(298699),r=e.i(222862),n=e.i(355578),s=e.i(500324),i=e.i(980630);let l="inbox-filter-types",o=["user_dm_message","calendar_event","email_notification"],c=["user_dm_message"],d=["user_dm_message"];function u(){try{let e=localStorage.getItem(l);if(!e)return c;let t=JSON.parse(e).filter(e=>o.includes(e));if(0===t.length)return c;for(let e of d)t.includes(e)||t.unshift(e);return t}catch{return c}}e.s(["INBOX_FILTER_LABELS",0,{user_dm_message:"DM",calendar_event:"Calendar",email_notification:"Email"},"INBOX_FILTER_TYPES",0,o,"MANDATORY_INBOX_TYPES",0,d,"getInboxFilterTypes",0,u,"setInboxFilterTypes",0,function(e){let t=[...e];for(let e of d)t.includes(e)||t.unshift(e);localStorage.setItem(l,JSON.stringify(t))}],685835);let h=(0,a.createContext)(null),g={count:0,notificationToken:0,refresh:()=>{},decrement:()=>{}};e.s(["InboxCountProvider",0,function({children:e}){let{workspaceId:l}=(0,s.useWorkspace)(),{subscribeWs:o,agents:c}=(0,n.useAgentContext)(),[d,g]=(0,a.useState)(0),[f,m]=(0,a.useState)(0),p=(0,a.useRef)(null),x=(0,a.useRef)(null),v=(0,a.useRef)(c);(0,a.useEffect)(()=>{v.current=c});let b=(0,a.useCallback)(()=>{let e=u();(0,r.getInboxCount)(l,{types:e}).then(e=>{let t=p.current;if(p.current=e.count,g(e.count),null!==t&&e.count>t){m(e=>e+1);let e=x.current?v.current.find(e=>e.id===x.current):void 0;(0,i.sendTaskNotification)("completed",e?.name)}x.current=null}).catch(()=>{})},[l]),y=(0,a.useCallback)(()=>{g(e=>{let t=Math.max(0,e-1);return p.current=t,t})},[]);return(0,a.useEffect)(()=>{b()},[b]),(0,a.useEffect)(()=>o(e=>{"task.updated"===e.type&&("completed"===e.status||"failed"===e.status)&&(x.current=e.agentId,b())}),[o,b]),(0,a.useEffect)(()=>{let e=setInterval(b,6e4);return()=>clearInterval(e)},[b]),(0,t.jsx)(h.Provider,{value:{count:d,notificationToken:f,refresh:b,decrement:y},children:e})},"useInboxCount",0,function(){return(0,a.useContext)(h)??g}],875494)},875061,e=>{"use strict";var t=e.i(390072),a=e.i(863764),r=e.i(294237),n=e.i(613349);let s=(0,r.cva)("group/badge inline-flex h-5 w-fit shrink-0 items-center justify-center gap-1 overflow-hidden rounded-4xl border border-transparent px-2 py-0.5 text-xs font-medium whitespace-nowrap transition-all focus-visible:border-ring focus-visible:ring-[3px] focus-visible:ring-ring/50 has-data-[icon=inline-end]:pr-1.5 has-data-[icon=inline-start]:pl-1.5 aria-invalid:border-destructive aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 [&>svg]:pointer-events-none [&>svg]:size-3!",{variants:{variant:{default:"bg-primary text-primary-foreground [a]:hover:bg-primary/80",secondary:"bg-secondary text-secondary-foreground [a]:hover:bg-secondary/80",destructive:"bg-destructive/10 text-destructive focus-visible:ring-destructive/20 dark:bg-destructive/20 dark:focus-visible:ring-destructive/40 [a]:hover:bg-destructive/20",outline:"border-border text-foreground [a]:hover:bg-muted [a]:hover:text-muted-foreground",ghost:"hover:bg-muted hover:text-muted-foreground dark:hover:bg-muted/50",link:"text-primary underline-offset-4 hover:underline"}},defaultVariants:{variant:"default"}});e.s(["Badge",0,function({className:e,variant:r="default",render:i,...l}){var o;return o={defaultTagName:"span",props:(0,t.mergeProps)({className:(0,n.cn)(s({variant:r}),e)},l),render:i,state:{slot:"badge",variant:r}},(0,a.useRenderElement)(o.defaultTagName??"div",o,o)},"badgeVariants",0,s],875061)},297925,e=>{"use strict";let t=(0,e.i(406963).default)("check",[["path",{d:"M20 6 9 17l-5-5",key:"1gmf2c"}]]);e.s(["default",0,t])},371522,e=>{"use strict";let t=(0,e.i(406963).default)("loader-circle",[["path",{d:"M21 12a9 9 0 1 1-6.219-8.56",key:"13zald"}]]);e.s(["Loader2",0,t],371522)},393153,e=>{"use strict";var t=e.i(368075),a=e.i(779646),r=e.i(186339);e.s(["ConfirmDialog",0,function({open:e,onOpenChange:n,title:s,description:i,confirmLabel:l="Remove",loadingLabel:o,confirmVariant:c="destructive",loading:d=!1,onConfirm:u}){return(0,t.jsx)(a.Dialog,{open:e,onOpenChange:n,children:(0,t.jsxs)(a.DialogContent,{showCloseButton:!1,children:[(0,t.jsxs)(a.DialogHeader,{children:[(0,t.jsx)(a.DialogTitle,{children:s}),(0,t.jsx)(a.DialogDescription,{children:i})]}),(0,t.jsxs)(a.DialogFooter,{children:[(0,t.jsx)(r.Button,{variant:"outline",size:"sm",onClick:()=>n(!1),disabled:d,children:"Cancel"}),(0,t.jsx)(r.Button,{variant:c,size:"sm",onClick:u,disabled:d,children:d?o??`${l}...`:l})]})]})})}])},108281,e=>{"use strict";let t=(0,e.i(406963).default)("circle-alert",[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["line",{x1:"12",x2:"12",y1:"8",y2:"12",key:"1pkeuh"}],["line",{x1:"12",x2:"12.01",y1:"16",y2:"16",key:"4dfq90"}]]);e.s(["AlertCircle",0,t],108281)},313101,e=>{"use strict";let t=(0,e.i(406963).default)("clock",[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["path",{d:"M12 6v6l4 2",key:"mmk7yg"}]]);e.s(["Clock",0,t],313101)},745925,e=>{"use strict";let t=(0,e.i(406963).default)("square",[["rect",{width:"18",height:"18",x:"3",y:"3",rx:"2",key:"afitv7"}]]);e.s(["Square",0,t],745925)},265481,e=>{"use strict";let t=(0,e.i(406963).default)("calendar-days",[["path",{d:"M8 2v4",key:"1cmpym"}],["path",{d:"M16 2v4",key:"4m81vk"}],["rect",{width:"18",height:"18",x:"3",y:"4",rx:"2",key:"1hopcy"}],["path",{d:"M3 10h18",key:"8toen8"}],["path",{d:"M8 14h.01",key:"6423bh"}],["path",{d:"M12 14h.01",key:"1etili"}],["path",{d:"M16 14h.01",key:"1gbofw"}],["path",{d:"M8 18h.01",key:"lrp35t"}],["path",{d:"M12 18h.01",key:"mhygvu"}],["path",{d:"M16 18h.01",key:"kzsmim"}]]);e.s(["CalendarDays",0,t],265481)},251638,e=>{"use strict";let t=(0,e.i(406963).default)("circle-dot",[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["circle",{cx:"12",cy:"12",r:"1",key:"41hilf"}]]);e.s(["CircleDot",0,t],251638)},140483,219658,e=>{"use strict";var t=e.i(406963);let a=(0,t.default)("rotate-cw",[["path",{d:"M21 12a9 9 0 1 1-9-9c2.52 0 4.93 1 6.74 2.74L21 8",key:"1p45f6"}],["path",{d:"M21 3v5h-5",key:"1q7to0"}]]);e.s(["RotateCw",0,a],140483);var r=e.i(368075),n=e.i(298699),s=e.i(186339),i=e.i(329686);let l=(0,t.default)("arrow-down",[["path",{d:"M12 5v14",key:"s699le"}],["path",{d:"m19 12-7 7-7-7",key:"1idqje"}]]);var o=e.i(613349);e.s(["ScrollToBottomButton",0,function({scrollRef:e,threshold:t=100}){let[a,c]=(0,n.useState)(!1),d=(0,n.useCallback)(()=>{let a=e.current;if(!a)return;let r=a.scrollHeight-a.scrollTop-a.clientHeight<t;c(a.scrollHeight>a.clientHeight&&!r)},[e,t]);return(0,n.useEffect)(()=>{let t=e.current;if(!t)return;t.addEventListener("scroll",d,{passive:!0}),d();let a=new ResizeObserver(d);return a.observe(t),()=>{t.removeEventListener("scroll",d),a.disconnect()}},[e,d]),(0,r.jsx)("div",{className:(0,o.cn)("absolute bottom-1 left-1/2 -translate-x-1/2 z-10 transition-all duration-200 ease-out",a?"opacity-100 translate-y-0":"opacity-0 translate-y-2 pointer-events-none"),children:(0,r.jsxs)(i.Tooltip,{children:[(0,r.jsx)(i.TooltipTrigger,{render:(0,r.jsx)(s.Button,{variant:"ghost",size:"icon-sm",onClick:()=>{let t=e.current;t&&t.scrollTo({top:t.scrollHeight,behavior:"smooth"})},className:"rounded-full bg-background/80 backdrop-blur-sm border shadow-sm hover:bg-background"}),children:(0,r.jsx)(l,{})}),(0,r.jsx)(i.TooltipContent,{side:"top",children:"Scroll to bottom"})]})})}],219658)},6131,e=>{"use strict";let t=(0,e.i(406963).default)("mail",[["path",{d:"m22 7-8.991 5.727a2 2 0 0 1-2.009 0L2 7",key:"132q7q"}],["rect",{x:"2",y:"4",width:"20",height:"16",rx:"2",key:"izxlao"}]]);e.s(["Mail",0,t],6131)},814552,e=>{"use strict";let t=(0,e.i(406963).default)("message-square",[["path",{d:"M22 17a2 2 0 0 1-2 2H6.828a2 2 0 0 0-1.414.586l-2.202 2.202A.71.71 0 0 1 2 21.286V5a2 2 0 0 1 2-2h16a2 2 0 0 1 2 2z",key:"18887p"}]]);e.s(["MessageSquare",0,t],814552)},309493,e=>{"use strict";let t=(0,e.i(406963).default)("brain",[["path",{d:"M12 18V5",key:"adv99a"}],["path",{d:"M15 13a4.17 4.17 0 0 1-3-4 4.17 4.17 0 0 1-3 4",key:"1e3is1"}],["path",{d:"M17.598 6.5A3 3 0 1 0 12 5a3 3 0 1 0-5.598 1.5",key:"1gqd8o"}],["path",{d:"M17.997 5.125a4 4 0 0 1 2.526 5.77",key:"iwvgf7"}],["path",{d:"M18 18a4 4 0 0 0 2-7.464",key:"efp6ie"}],["path",{d:"M19.967 17.483A4 4 0 1 1 12 18a4 4 0 1 1-7.967-.517",key:"1gq6am"}],["path",{d:"M6 18a4 4 0 0 1-2-7.464",key:"k1g0md"}],["path",{d:"M6.003 5.125a4 4 0 0 0-2.526 5.77",key:"q97ue3"}]]);e.s(["Brain",0,t],309493)},983453,e=>{"use strict";let t=(0,e.i(406963).default)("calendar",[["path",{d:"M8 2v4",key:"1cmpym"}],["path",{d:"M16 2v4",key:"4m81vk"}],["rect",{width:"18",height:"18",x:"3",y:"4",rx:"2",key:"1hopcy"}],["path",{d:"M3 10h18",key:"8toen8"}]]);e.s(["Calendar",0,t],983453)},541544,e=>{"use strict";var t=e.i(297925);e.s(["Check",()=>t.default])},113354,e=>{"use strict";let t=(0,e.i(406963).default)("arrow-left",[["path",{d:"m12 19-7-7 7-7",key:"1l729n"}],["path",{d:"M19 12H5",key:"x3x0zl"}]]);e.s(["ArrowLeft",0,t],113354)},89440,e=>{"use strict";let t=(0,e.i(406963).default)("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"}]]);e.s(["Copy",0,t],89440)},554468,940931,e=>{"use strict";let t=(0,e.i(406963).default)("paperclip",[["path",{d:"m16 6-8.414 8.586a2 2 0 0 0 2.829 2.829l8.414-8.586a4 4 0 1 0-5.657-5.657l-8.379 8.551a6 6 0 1 0 8.485 8.485l8.379-8.551",key:"1miecu"}]]);e.s(["Paperclip",0,t],554468);var a=e.i(368075),r=e.i(298699),n=e.i(635790);let s=`
|
|
2
2
|
html, body {
|
|
3
3
|
overflow: hidden;
|
|
4
4
|
}
|
package/bundled/web/.open-next/assets/_next/static/chunks/{0u.pao5ubynoe.js → 0v4hr9uuvoz8q.js}
RENAMED
|
@@ -1 +1 @@
|
|
|
1
|
-
(globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,275351,e=>{"use strict";let t,r,n,a,s=(e,t)=>t.some(t=>e instanceof t),o=new WeakMap,i=new WeakMap,c=new WeakMap,l={get(e,t,r){if(e instanceof IDBTransaction){if("done"===t)return o.get(e);if("store"===t)return r.objectStoreNames[1]?void 0:r.objectStore(r.objectStoreNames[0])}return d(e[t])},set:(e,t,r)=>(e[t]=r,!0),has:(e,t)=>e instanceof IDBTransaction&&("done"===t||"store"===t)||t in e};function d(e){if(e instanceof IDBRequest){let t;return t=new Promise((t,r)=>{let n=()=>{e.removeEventListener("success",a),e.removeEventListener("error",s)},a=()=>{t(d(e.result)),n()},s=()=>{r(e.error),n()};e.addEventListener("success",a),e.addEventListener("error",s)}),c.set(t,e),t}if(i.has(e))return i.get(e);let t=function(e){if("function"==typeof e)return(a||(a=[IDBCursor.prototype.advance,IDBCursor.prototype.continue,IDBCursor.prototype.continuePrimaryKey])).includes(e)?function(...t){return e.apply(u(this),t),d(this.request)}:function(...t){return d(e.apply(u(this),t))};return(e instanceof IDBTransaction&&function(e){if(o.has(e))return;let t=new Promise((t,r)=>{let n=()=>{e.removeEventListener("complete",a),e.removeEventListener("error",s),e.removeEventListener("abort",s)},a=()=>{t(),n()},s=()=>{r(e.error||new DOMException("AbortError","AbortError")),n()};e.addEventListener("complete",a),e.addEventListener("error",s),e.addEventListener("abort",s)});o.set(e,t)}(e),s(e,n||(n=[IDBDatabase,IDBObjectStore,IDBIndex,IDBCursor,IDBTransaction])))?new Proxy(e,l):e}(e);return t!==e&&(i.set(e,t),c.set(t,e)),t}let u=e=>c.get(e),f=["get","getKey","getAll","getAllKeys","count"],h=["put","add","delete","clear"],g=new Map;function x(e,t){if(!(e instanceof IDBDatabase&&!(t in e)&&"string"==typeof t))return;if(g.get(t))return g.get(t);let r=t.replace(/FromIndex$/,""),n=t!==r,a=h.includes(r);if(!(r in(n?IDBIndex:IDBObjectStore).prototype)||!(a||f.includes(r)))return;let s=async function(e,...t){let s=this.transaction(e,a?"readwrite":"readonly"),o=s.store;return n&&(o=o.index(t.shift())),(await Promise.all([o[r](...t),a&&s.done]))[0]};return g.set(t,s),s}l={...t=l,get:(e,r,n)=>x(e,r)||t.get(e,r,n),has:(e,r)=>!!x(e,r)||t.has(e,r)};let m=["continue","continuePrimaryKey","advance"],p={},b=new WeakMap,y=new WeakMap,j={get(e,t){if(!m.includes(t))return e[t];let r=p[t];return r||(r=p[t]=function(...e){b.set(this,y.get(this)[t](...e))}),r}};async function*v(...e){let t=this;if(t instanceof IDBCursor||(t=await t.openCursor(...e)),!t)return;let r=new Proxy(t,j);for(y.set(r,t),c.set(r,u(t));t;)yield r,t=await (b.get(r)||t.continue()),b.delete(r)}function w(e,t){return t===Symbol.asyncIterator&&s(e,[IDBIndex,IDBObjectStore,IDBCursor])||"iterate"===t&&s(e,[IDBIndex,IDBObjectStore])}l={...r=l,get:(e,t,n)=>w(e,t)?v:r.get(e,t,n),has:(e,t)=>w(e,t)||r.has(e,t)};let k=null,C=null;function L(e){return"u"<typeof indexedDB?null:k&&C===e?k:(C=e,k=function(e,{blocked:t,upgrade:r,blocking:n,terminated:a}={}){let s=indexedDB.open(e,1),o=d(s);return r&&s.addEventListener("upgradeneeded",e=>{r(d(s.result),e.oldVersion,e.newVersion,d(s.transaction),e)}),t&&s.addEventListener("blocked",e=>t(e.oldVersion,e.newVersion,e)),o.then(e=>{a&&e.addEventListener("close",()=>a()),n&&e.addEventListener("versionchange",e=>n(e.oldVersion,e.newVersion,e))}).catch(()=>{}),o}(`alook-chat-cache-${e}`,{upgrade(e){let t=e.createObjectStore("messages",{keyPath:["conversation_id","id"]});t.createIndex("by-conversation","conversation_id",{unique:!1}),t.createIndex("by-created",["conversation_id","created_at"],{unique:!1}),e.createObjectStore("cache_meta",{keyPath:"conversation_id"})}}))}function M(e){return e?L(e):k}async function D(e,t){let r=M(t);if(!r)return null;try{let t=await r,n=await t.getAllFromIndex("messages","by-conversation",e);if(0===n.length)return null;let a=n.filter(e=>"buffered"!==e.status&&!e.id.startsWith("temp-"));a.sort((e,t)=>{let r=e.created_at.localeCompare(t.created_at);return 0!==r?r:e.id.localeCompare(t.id)});let s=await t.get("cache_meta",e);return s&&await t.put("cache_meta",{...s,lastAccessedAt:Date.now()}),a}catch{return null}}async function I(e,t,r,n,a){let s=M(a);if(!s)return null;try{let a=await s,o=await a.get("cache_meta",e);if(!o)return null;let i=IDBKeyRange.bound([e,""],[e,t],!1,!1),c=(await a.getAllFromIndex("messages","by-created",i)).filter(e=>!("buffered"===e.status||e.id.startsWith("temp-"))&&(e.created_at!==t||!(e.id>=r)));c.sort((e,t)=>{let r=t.created_at.localeCompare(e.created_at);return 0!==r?r:t.id.localeCompare(e.id)});let l=c.slice(0,n);if(l.length<n&&o.hasMore)return null;return await a.put("cache_meta",{...o,lastAccessedAt:Date.now()}),{messages:l.reverse(),hasMore:c.length>n||o.hasMore}}catch{return null}}async function E(e,t,r,n){let a=M(n);if(a)try{let n=await a,s=t.filter(e=>"buffered"!==e.status&&!e.id.startsWith("temp-"));if(0===s.length)return;let o=n.transaction(["messages","cache_meta"],"readwrite"),i=o.objectStore("messages"),c=o.objectStore("cache_meta");for(let e of s)await i.put(e);let l=await i.index("by-conversation").getAllKeys(e),d=Date.now(),u=s.reduce((e,t)=>e.created_at>t.created_at?e:t),f=await c.get(e),h=r??f?.hasMore??!0,g=f?.newestMessageId&&f.newestMessageId!==u.id?await (async()=>{let t=await i.get([e,f.newestMessageId]);return t&&t.created_at>u.created_at?t.id:u.id})():u.id,x={conversation_id:e,lastFetchedAt:d,lastAccessedAt:d,messageCount:l.length,newestMessageId:g,hasMore:h};await c.put(x),await o.done,_().catch(()=>{})}catch{}}async function N(e,t,r){let n=M(r);if(n&&!("buffered"===t.status||t.id.startsWith("temp-")))try{let r=await n,a=await r.get("cache_meta",e);if(!a)return;let s=await r.get("messages",[e,t.id]);await r.put("messages",t),await r.put("cache_meta",{...a,lastAccessedAt:Date.now(),messageCount:s?a.messageCount:a.messageCount+1,newestMessageId:t.id})}catch{}}async function S(e,t){let r=M(t);if(!r)return null;try{let t=await r;return await t.get("cache_meta",e)??null}catch{return null}}async function _(e=50){let t=M();if(t)try{let r=await t,n=await r.getAll("cache_meta");if(n.length<=e)return;n.sort((e,t)=>e.lastAccessedAt-t.lastAccessedAt);let a=n.slice(0,n.length-e),s=r.transaction(["messages","cache_meta"],"readwrite"),o=s.objectStore("messages"),i=s.objectStore("cache_meta");for(let e of a){for(let t of(await o.index("by-conversation").getAllKeys(e.conversation_id)))await o.delete(t);await i.delete(e.conversation_id)}await s.done}catch{}}async function B(){if("u">typeof indexedDB)try{k&&((await k).close(),k=null),C&&(await A(`alook-chat-cache-${C}`),C=null)}catch{}}async function A(e){return new Promise((t,r)=>{let n=indexedDB.deleteDatabase(e);n.onsuccess=()=>t(),n.onerror=()=>r(n.error),n.onblocked=()=>t()})}e.s(["appendCachedMessage",0,N,"clearAllCache",0,B,"getCacheMeta",0,S,"getCachedMessages",0,D,"getCachedMessagesBefore",0,I,"mergeCachedMessages",0,E,"openCacheDB",0,L],275351)},113354,e=>{"use strict";let t=(0,e.i(406963).default)("arrow-left",[["path",{d:"m12 19-7-7 7-7",key:"1l729n"}],["path",{d:"M19 12H5",key:"x3x0zl"}]]);e.s(["ArrowLeft",0,t],113354)},297925,e=>{"use strict";let t=(0,e.i(406963).default)("check",[["path",{d:"M20 6 9 17l-5-5",key:"1gmf2c"}]]);e.s(["default",0,t])},541544,e=>{"use strict";var t=e.i(297925);e.s(["Check",()=>t.default])},996718,e=>{"use strict";var t=e.i(298699);e.s(["useIsMobile",0,function(){let[e,r]=t.useState(void 0);return t.useEffect(()=>{let e=window.matchMedia("(max-width: 639px)"),t=()=>{r(window.innerWidth<640)};return e.addEventListener("change",t),r(window.innerWidth<640),()=>e.removeEventListener("change",t)},[]),!!e}])},371522,e=>{"use strict";let t=(0,e.i(406963).default)("loader-circle",[["path",{d:"M21 12a9 9 0 1 1-6.219-8.56",key:"13zald"}]]);e.s(["Loader2",0,t],371522)},642342,e=>{"use strict";var t=e.i(459119),r=e.i(298699);let n=(0,e.i(613349).isLocalMode)(),a=Number(t.default.env.NEXT_PUBLIC_WS_DO_PORT)||8789,s=Number(t.default.env.NEXT_PUBLIC_WS_RECONNECT_DELAY_MS)||1e3,o=Number(t.default.env.NEXT_PUBLIC_WS_RECONNECT_MAX_DELAY_MS)||3e4;e.s(["useUserWs",0,function(e,t){let i=(0,r.useRef)(null),c=(0,r.useRef)(s),l=(0,r.useRef)(e),d=(0,r.useRef)(t?.onReconnect),u=(0,r.useRef)(null),f=(0,r.useRef)(!1),h=(0,r.useRef)(0),g=(0,r.useRef)(null),x=(0,r.useRef)(null);(0,r.useEffect)(()=>{l.current=e},[e]),(0,r.useEffect)(()=>{d.current=t?.onReconnect},[t?.onReconnect]);let m=(0,r.useRef)(null),p=(0,r.useCallback)(()=>{let e=Math.min(c.current,o);c.current=Math.min(2*e,o),u.current=setTimeout(()=>{m.current?.()},e+500*Math.random())},[]),b=(0,r.useCallback)(async()=>{let e,t,r,o=a;try{let r=await fetch("/api/ws/token");if(!r.ok){console.warn("[ws] token fetch failed:",r.status),p();return}let n=await r.json();e=n.userId,t=n.token,n.wsPort&&(o=n.wsPort)}catch(e){console.warn("[ws] token fetch error:",e),p();return}let u=n?`ws://localhost:${o}/?userId=${e}`:`${location.origin.replace("http","ws")}/api/ws/user?userId=${e}`;try{r=new WebSocket(u)}catch(e){console.warn("[ws] WebSocket creation failed:",e),p();return}i.current=r,r.onopen=()=>{c.current=s,r.send(JSON.stringify({type:"auth",token:t})),f.current&&d.current?.(),f.current=!0,h.current=Date.now(),g.current=setInterval(()=>{r.readyState===WebSocket.OPEN&&r.send("ping")},25e3),x.current=setInterval(()=>{Date.now()-h.current>3e4&&r.close()},5e3)},r.onmessage=e=>{h.current=Date.now();try{let t=JSON.parse(e.data);if("auth.ok"===t.type)return;l.current(t)}catch{}},r.onerror=()=>{},r.onclose=()=>{r===i.current&&(g.current&&(clearInterval(g.current),g.current=null),x.current&&(clearInterval(x.current),x.current=null),p())}},[p]);(0,r.useEffect)(()=>{m.current=b},[b]),(0,r.useEffect)(()=>(b(),()=>{null!==u.current&&(clearTimeout(u.current),u.current=null),g.current&&(clearInterval(g.current),g.current=null),x.current&&(clearInterval(x.current),x.current=null);let e=i.current;i.current=null,e?.close()}),[b])}])},790659,e=>{"use strict";var t=e.i(298699),r=e.i(982218),n=e.i(627498),a=e.i(893205);e.s(["useAnchoredPopupScrollLock",0,function(e,s,o,i){let[c,l]=t.useState(!1);(0,a.useIsoLayoutEffect)(()=>{if(!e||!s||null==o)return void l(!1);let t=(0,r.ownerDocument)(o).documentElement.clientWidth,n=o.offsetWidth;l(t>0&&n>0&&n>=t-20)},[e,s,o]),(0,n.useScrollLock)(e&&(!s||c),i)}])},643899,e=>{"use strict";var t=e.i(240003),r=e.i(298699);let n=r.createContext(void 0);e.s(["useToolbarRootContext",0,function(e){let a=r.useContext(n);if(void 0===a&&!e)throw Error((0,t.default)(69));return a}])},400175,126366,819748,108772,261819,e=>{"use strict";var t=e.i(368075),r=e.i(298699);let n="#27272a",a={fill:"rgba(255,255,255,0.92)",stroke:"rgba(255,255,255,0.95)",strokeWidth:3.5},s=[{name:"Purple",value:"#a855f7",gradient:["#c084fc","#a855f7","#7c3aed"],faceColor:"#2e1065"},{name:"Teal",value:"#14b8a6",gradient:["#5eead4","#14b8a6","#0d9488"],faceColor:"#134e4a"},{name:"Orange",value:"#f97316",gradient:["#fdba74","#f97316","#c2410c"],faceColor:"#7c2d12"},{name:"Blue",value:"#3b82f6",gradient:["#93c5fd","#3b82f6","#1d4ed8"],faceColor:"#1e3a5f"},{name:"Pink",value:"#f472b6",gradient:["#fda4af","#f472b6","#be185d"],faceColor:"#831843"},{name:"Yellow",value:"#eab308",gradient:["#fde047","#eab308","#a16207"],faceColor:"#713f12"},{name:"Green",value:"#22c55e",gradient:["#86efac","#22c55e","#15803d"],faceColor:"#14532d"},{name:"Beige",value:"#d6ccb8",gradient:["#e8e0d4","#d6ccb8","#b8a990"],faceColor:"#57534e"},{name:"Red",value:"#ef4444",gradient:["#fca5a5","#ef4444","#991b1b"],faceColor:"#7f1d1d"},{name:"Lake Blue",value:"#6366f1",gradient:["#a5b4fc","#6366f1","#3730a3"],faceColor:"#312e81"},{name:"Gray",value:"#9ca3af",gradient:["#d4d4d8","#9ca3af","#6b7280"],faceColor:"#374151"},{name:"Deep Purple",value:"#8b5cf6",gradient:["#c4b5fd","#8b5cf6","#5b21b6"],faceColor:"#3b0764"}],o={circle:{name:"Circle",face:{cx:100,cy:100,w:80},render:()=>(0,t.jsx)("circle",{cx:"100",cy:"100",r:"66",...a})},rounded:{name:"Rounded",face:{cx:100,cy:100,w:90},render:()=>(0,t.jsx)("rect",{x:"30",y:"30",width:"140",height:"140",rx:"32",...a})},hexagon:{name:"Hexagon",face:{cx:100,cy:100,w:86},render:()=>(0,t.jsx)("path",{d:"M100 32 C108 32 114 35 120 39 L155 60 C161 64 165 70 165 78 L165 122 C165 130 161 136 155 140 L120 161 C114 165 108 168 100 168 C92 168 86 165 80 161 L45 140 C39 136 35 130 35 122 L35 78 C35 70 39 64 45 60 L80 39 C86 35 92 32 100 32 Z",...a})},task:{name:"Task",face:{cx:100,cy:100,w:80},render:()=>(0,t.jsx)("rect",{x:"34",y:"34",width:"132",height:"132",rx:"24",...a})},book:{name:"Book",face:{cx:100,cy:100,w:80},render:()=>(0,t.jsx)("path",{d:"M42 162 L42 88 C42 54 68 34 100 34 C132 34 158 54 158 88 L158 162 C158 166 154 170 150 170 L50 170 C46 170 42 166 42 162 Z",...a})},mail:{name:"Mail",face:{cx:100,cy:100,w:86},render:()=>(0,t.jsx)("rect",{x:"28",y:"54",width:"144",height:"92",rx:"46",...a})},calendar:{name:"Calendar",face:{cx:100,cy:100,w:80},render:()=>(0,t.jsx)("path",{d:"M100 34 C138 34 166 52 166 80 C166 94 158 106 158 118 C158 148 138 166 100 166 C62 166 42 148 42 118 C42 106 34 94 34 80 C34 52 62 34 100 34 Z",...a})},bulb:{name:"Bulb",face:{cx:100,cy:104,w:76},render:()=>(0,t.jsx)("ellipse",{cx:"100",cy:"104",rx:"58",ry:"66",...a})},folder:{name:"Folder",face:{cx:102,cy:108,w:80},render:()=>(0,t.jsx)("path",{d:"M62 144 C40 144 32 128 36 116 C32 104 40 90 54 88 C56 72 70 60 88 62 C100 50 118 50 132 58 C144 52 162 60 162 76 C172 82 174 98 166 108 C172 120 164 136 150 140 Z",...a})},mountain:{name:"Mountain",face:{cx:100,cy:100,w:76},render:()=>(0,t.jsx)("path",{d:"M92 36 C120 32 156 48 164 78 C172 108 156 148 124 160 C92 172 48 156 38 124 C28 92 62 40 92 36 Z",...a})}},i=Object.keys(o),c={dot:{name:"Dot",render:(e=n)=>(0,t.jsx)("circle",{cx:"0",cy:"0",r:"4.5",fill:e})},dash:{name:"Dash",render:(e=n)=>(0,t.jsx)("line",{x1:"-10",y1:"0",x2:"10",y2:"0",stroke:e,strokeWidth:"5",strokeLinecap:"round"})},hookL:{name:"Hook",render:(e=n)=>(0,t.jsx)("path",{d:"M-11 0 Q-5.5 7 0 1.5 Q5.5 7 11 0",fill:"none",stroke:e,strokeWidth:"4.5",strokeLinecap:"round",strokeLinejoin:"round"})},smile:{name:"Smile",render:(e=n)=>(0,t.jsx)("path",{d:"M-11 0 Q0 11 11 0",fill:"none",stroke:e,strokeWidth:"5",strokeLinecap:"round"})},caret:{name:"Caret",render:(e=n)=>(0,t.jsxs)("g",{children:[(0,t.jsx)("path",{d:"M-10 0 Q0 8 10 0",fill:"none",stroke:e,strokeWidth:"4.5",strokeLinecap:"round"}),(0,t.jsx)("ellipse",{cx:"3",cy:"6",rx:"4",ry:"4.5",fill:"#f472b6"})]})},arrow:{name:"Arrow",render:(e=n)=>(0,t.jsx)("ellipse",{cx:"0",cy:"0",rx:"6",ry:"7.5",fill:e})},oh:{name:"o",render:(e=n)=>(0,t.jsx)("ellipse",{cx:"0",cy:"0",rx:"7",ry:"7.5",fill:"none",stroke:e,strokeWidth:"4.5"})}},l=Object.keys(c),d=(e,r)=>{let a=r??e,s=(r,s=n)=>(0,t.jsxs)("g",{children:[(0,t.jsx)("g",{transform:`translate(${-r}, 0)`,children:e(s)}),(0,t.jsx)("g",{transform:`translate(${r}, 0)`,children:a(s)})]});return s.displayName="EyePair",s},u={dots:{name:"Dots",render:d(e=>(0,t.jsx)("circle",{cx:"0",cy:"0",r:"7",fill:e}))},big:{name:"Big",render:d(e=>(0,t.jsxs)("g",{children:[(0,t.jsx)("circle",{cx:"0",cy:"0",r:"10",fill:e}),(0,t.jsx)("circle",{cx:"2.5",cy:"-3",r:"3.5",fill:"rgba(255,255,255,0.9)"})]}))},rings:{name:"Rings",render:d(e=>(0,t.jsx)("ellipse",{cx:"0",cy:"0",rx:"8.5",ry:"9.5",fill:"none",stroke:e,strokeWidth:"4.5"}))},arches:{name:"Arches",render:d(e=>(0,t.jsx)("path",{d:"M-10 2 Q0 -9 10 2",fill:"none",stroke:e,strokeWidth:"5",strokeLinecap:"round"}))},lines:{name:"Lines",render:d(e=>(0,t.jsx)("path",{d:"M-10 0 Q0 -6 10 0",fill:"none",stroke:e,strokeWidth:"5",strokeLinecap:"round"}))},happy:{name:"Happy",render:d(e=>(0,t.jsx)("path",{d:"M-10 5 Q0 -11 10 5",fill:"none",stroke:e,strokeWidth:"5",strokeLinecap:"round"}))},sleepy:{name:"Sleepy",render:d(e=>(0,t.jsx)("path",{d:"M-10 -2 Q0 8 10 -2",fill:"none",stroke:e,strokeWidth:"5",strokeLinecap:"round"}))},shy:{name:"Shy",render:d(e=>(0,t.jsx)("ellipse",{cx:"0",cy:"0",rx:"8.5",ry:"9.5",fill:e}))},wink:{name:"Wink",render:(e,r=n)=>(0,t.jsxs)("g",{children:[(0,t.jsx)("g",{transform:`translate(${-e}, 0)`,children:(0,t.jsx)("circle",{cx:"0",cy:"0",r:"7",fill:r})}),(0,t.jsx)("g",{transform:`translate(${e}, 0)`,children:(0,t.jsx)("path",{d:"M-10 2 Q0 -9 10 2",fill:"none",stroke:r,strokeWidth:"5",strokeLinecap:"round"})})]})}},f=Object.keys(u),h={shape:"book",eye:"happy",nose:"dash",bg:1},g=[{name:"Task",config:{shape:"task",nose:"dot",eye:"dots",bg:0}},{name:"Notes",config:{shape:"book",nose:"dash",eye:"happy",bg:1}},{name:"Mail",config:{shape:"mail",nose:"smile",eye:"dots",bg:3}},{name:"Schedule",config:{shape:"calendar",nose:"dot",eye:"dots",bg:4}},{name:"Idea",config:{shape:"bulb",nose:"oh",eye:"rings",bg:5}},{name:"Project",config:{shape:"folder",nose:"dash",eye:"lines",bg:7}},{name:"Goal",config:{shape:"mountain",nose:"caret",eye:"arches",bg:8}},{name:"Dream",config:{shape:"circle",nose:"smile",eye:"shy",bg:11}},{name:"Organize",config:{shape:"rounded",nose:"dot",eye:"sleepy",bg:6}},{name:"Explore",config:{shape:"hexagon",nose:"hookL",eye:"wink",bg:9}},{name:"Focus",config:{shape:"task",nose:"caret",eye:"lines",bg:2}},{name:"Collect",config:{shape:"book",nose:"oh",eye:"rings",bg:10}}];function x(e){return e[Math.floor(Math.random()*e.length)]}function m(){return{shape:x(i),eye:x(f),nose:x(l),bg:Math.floor(Math.random()*s.length)}}function p({config:e,size:n=200,className:a}){let i=(0,r.useId)().replace(/:/g,""),l=o[e.shape]??o.book,d=u[e.eye],f=c[e.nose],h=s[e.bg]??s[0],[g,x,m]=h.gradient,b=h.faceColor,{cx:y,cy:j,w:v}=l.face,w=Math.max(13,.24*v),k=j-Math.max(12,.16*v);return(0,t.jsxs)("svg",{viewBox:"0 0 200 200",width:n,height:n,className:a,style:{display:"block"},children:[(0,t.jsxs)("defs",{children:[(0,t.jsxs)("linearGradient",{id:`bg-${i}`,x1:"0%",y1:"0%",x2:"100%",y2:"100%",children:[(0,t.jsx)("stop",{offset:"0%",stopColor:g}),(0,t.jsx)("stop",{offset:"50%",stopColor:x}),(0,t.jsx)("stop",{offset:"100%",stopColor:m})]}),(0,t.jsxs)("radialGradient",{id:`gl-${i}`,cx:"30%",cy:"25%",r:"60%",children:[(0,t.jsx)("stop",{offset:"0%",stopColor:"rgba(255,255,255,0.32)"}),(0,t.jsx)("stop",{offset:"100%",stopColor:"rgba(255,255,255,0)"})]}),(0,t.jsx)("filter",{id:`sh-${i}`,x:"-10%",y:"-5%",width:"120%",height:"130%",children:(0,t.jsx)("feDropShadow",{dx:"0",dy:"3",stdDeviation:"4",floodColor:"rgba(0,0,0,0.18)"})})]}),(0,t.jsx)("rect",{x:"0",y:"0",width:"200",height:"200",rx:"56",fill:`url(#bg-${i})`}),(0,t.jsx)("rect",{x:"0",y:"0",width:"200",height:"200",rx:"56",fill:`url(#gl-${i})`}),(0,t.jsxs)("g",{transform:"translate(100,100) scale(0.8) translate(-100,-100)",children:[(0,t.jsx)("g",{"data-avatar-shape":"",filter:`url(#sh-${i})`,children:l.render()}),d&&(0,t.jsx)("g",{transform:`translate(${y}, ${k})`,children:(0,t.jsx)("g",{"data-avatar-eyes":"",children:d.render(w,b)})}),f&&(0,t.jsx)("g",{transform:`translate(${y}, ${j+7})`,children:(0,t.jsx)("g",{"data-avatar-nose":"",children:f.render(b)})})]})]})}let b="avatar:";function y(e){if(!e||!e.startsWith(b))return null;try{let t=JSON.parse(e.slice(b.length));if("object"==typeof t&&null!==t&&"string"==typeof t.shape&&"string"==typeof t.eye&&"string"==typeof t.nose&&"number"==typeof t.bg)return t;if("object"==typeof t&&null!==t&&"outline"in t)return h;return null}catch{return null}}e.s(["AvatarRenderer",0,p,"BG_COLORS",0,s,"DEFAULT_CONFIG",0,h,"EYE_KEYS",0,f,"Eyes",0,u,"NOSE_KEYS",0,l,"Noses",0,c,"PRESETS",0,g,"SHAPE_KEYS",0,i,"Shapes",0,o,"parseAvatarUrl",0,y,"randomConfig",0,m,"serializeAvatarConfig",0,function(e){return b+JSON.stringify(e)}],126366);let j=["avatar-anim-shape-bounce","avatar-anim-head-tilt","avatar-anim-shake","avatar-anim-wobble","avatar-anim-pulse","avatar-anim-spin","avatar-anim-jelly","avatar-anim-float","avatar-anim-nod"];e.s(["AnimatedAvatar",0,function({config:e,size:n,className:a,isHovered:s,isWorking:o}){let[i,c]=(0,r.useState)(null),l=(0,r.useRef)(-1);function d(){let e=Math.floor(Math.random()*j.length);return e===l.current&&(e=(e+1)%j.length),l.current=e,j[e]}return(0,r.useEffect)(()=>{s?c(d()):o||c(null)},[s,o]),(0,r.useEffect)(()=>{if(!o){s||c(null);return}c(d());let e=setInterval(()=>{c(d())},4e3);return()=>clearInterval(e)},[s,o]),(0,t.jsx)("div",{className:i??void 0,children:(0,t.jsx)(p,{config:e,size:n,className:a})})}],819748);var v=e.i(613349),w=e.i(329686);function k({label:e,keys:r,value:n,onChange:a,renderThumb:s,mobile:o=!1}){let i=r.indexOf(n),c=e=>a(r[(i+e+r.length)%r.length]),l=r[(i-1+r.length)%r.length],d=r[(i+1)%r.length];return(0,t.jsxs)("div",{className:"flex items-center gap-2",children:[(0,t.jsx)("span",{className:"w-12 text-xs font-medium text-muted-foreground shrink-0",children:e}),(0,t.jsx)("button",{type:"button",onClick:()=>c(-1),className:(0,v.cn)("flex items-center justify-center rounded-md hover:bg-accent transition-colors",o?"size-10":"size-7"),children:(0,t.jsx)("svg",{viewBox:"0 0 24 24",width:"16",height:"16",children:(0,t.jsx)("path",{d:"M15 5 L8 12 L15 19",fill:"none",stroke:"currentColor",strokeWidth:"2.4",strokeLinecap:"round",strokeLinejoin:"round"})})}),(0,t.jsxs)("div",{className:"flex items-center gap-1 flex-1 justify-center",children:[(0,t.jsx)("button",{type:"button",onClick:()=>c(-1),className:"opacity-30 hover:opacity-60 transition-opacity",tabIndex:-1,children:s(l)}),(0,t.jsx)("button",{type:"button",onClick:()=>c(1),className:"border-2 border-primary rounded-lg p-0.5",children:s(n)}),(0,t.jsx)("button",{type:"button",onClick:()=>c(1),className:"opacity-30 hover:opacity-60 transition-opacity",tabIndex:-1,children:s(d)})]}),(0,t.jsx)("button",{type:"button",onClick:()=>c(1),className:(0,v.cn)("flex items-center justify-center rounded-md hover:bg-accent transition-colors",o?"size-10":"size-7"),children:(0,t.jsx)("svg",{viewBox:"0 0 24 24",width:"16",height:"16",children:(0,t.jsx)("path",{d:"M9 5 L16 12 L9 19",fill:"none",stroke:"currentColor",strokeWidth:"2.4",strokeLinecap:"round",strokeLinejoin:"round"})})})]})}function C({config:e,onChange:n,layout:a="vertical",mobile:d=!1}){let[h,x]=(0,r.useState)("presets"),b=(0,r.useCallback)((t,r)=>{n({...e,[t]:r})},[e,n]),[y,j]=(0,r.useState)(!1),L=(0,r.useRef)(e);(0,r.useEffect)(()=>{if(L.current.shape!==e.shape||L.current.eye!==e.eye||L.current.nose!==e.nose||L.current.bg!==e.bg){j(!0);let t=setTimeout(()=>j(!1),450);return L.current=e,()=>clearTimeout(t)}},[e]),(0,r.useEffect)(()=>{if("horizontal"!==a)return;let e=e=>{"Space"===e.code&&e.target===document.body&&(e.preventDefault(),n(m()))};return window.addEventListener("keydown",e),()=>window.removeEventListener("keydown",e)},[a,n]);let M="horizontal"===a,D=M?220:d?120:160,I=(0,t.jsxs)("div",{className:(0,v.cn)("flex flex-col items-center gap-3 rounded-2xl bg-muted/30",d?"p-3":"p-4",M?"w-70 shrink-0 justify-center":""),children:[(0,t.jsx)("div",{className:(0,v.cn)("rounded-2xl",y&&"animate-[shake_0.45s_cubic-bezier(.36,.07,.19,.97)]"),children:(0,t.jsx)(p,{config:e,size:D})}),(0,t.jsxs)("button",{type:"button",onClick:()=>n(m()),className:"inline-flex items-center gap-2 rounded-full bg-foreground px-4 py-1.5 text-sm font-medium text-background hover:bg-foreground/80 transition-colors",children:[(0,t.jsxs)("svg",{viewBox:"0 0 24 24",width:"14",height:"14",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",children:[(0,t.jsx)("rect",{x:"2",y:"2",width:"20",height:"20",rx:"3"}),(0,t.jsx)("circle",{cx:"8",cy:"8",r:"1.5",fill:"currentColor"}),(0,t.jsx)("circle",{cx:"16",cy:"8",r:"1.5",fill:"currentColor"}),(0,t.jsx)("circle",{cx:"8",cy:"16",r:"1.5",fill:"currentColor"}),(0,t.jsx)("circle",{cx:"16",cy:"16",r:"1.5",fill:"currentColor"}),(0,t.jsx)("circle",{cx:"12",cy:"12",r:"1.5",fill:"currentColor"})]}),"Random",M&&(0,t.jsx)("kbd",{className:"ml-1 rounded bg-background/20 px-1.5 py-0.5 text-[10px] font-mono",children:"Space"})]})]}),E=(0,t.jsxs)("div",{className:(0,v.cn)("flex flex-col gap-3 flex-1 min-w-0",M&&"rounded-2xl bg-muted/30 p-4 h-95"),children:[(0,t.jsxs)("div",{className:"flex border-b border-border",children:[(0,t.jsx)("button",{type:"button",onClick:()=>x("presets"),className:(0,v.cn)("flex-1 pb-2 text-sm font-medium text-center transition-colors border-b-2","presets"===h?"border-primary text-foreground":"border-transparent text-muted-foreground hover:text-foreground"),children:"★ Presets"}),(0,t.jsx)("button",{type:"button",onClick:()=>x("custom"),className:(0,v.cn)("flex-1 pb-2 text-sm font-medium text-center transition-colors border-b-2","custom"===h?"border-primary text-foreground":"border-transparent text-muted-foreground hover:text-foreground"),children:"⚙ Custom"})]}),(0,t.jsxs)("div",{className:(0,v.cn)("flex-1 min-h-0",M&&"overflow-y-auto thin-scrollbar"),children:["presets"===h&&(0,t.jsx)("div",{className:(0,v.cn)("grid gap-2",d?"grid-cols-3":"grid-cols-4"),children:g.map(r=>{let a=r.config.shape===e.shape&&r.config.eye===e.eye&&r.config.nose===e.nose&&r.config.bg===e.bg;return(0,t.jsx)("button",{type:"button",onClick:()=>n(r.config),className:(0,v.cn)("flex items-center justify-center rounded-xl border p-2 transition-all",a?"border-primary border-2 bg-primary/5 shadow-sm":"border-border bg-background hover:border-primary/40"),children:(0,t.jsx)(p,{config:r.config,size:56})},r.name)})}),"custom"===h&&(0,t.jsxs)("div",{className:"flex flex-col gap-4",children:[(0,t.jsx)(k,{label:"Shape",keys:i,value:e.shape,onChange:e=>b("shape",e),renderThumb:e=>(0,t.jsxs)("svg",{viewBox:"0 0 200 200",width:"40",height:"40",children:[(0,t.jsx)("rect",{width:"200",height:"200",rx:"56",fill:"hsl(var(--muted))"}),(0,t.jsx)("g",{transform:"translate(100,100) scale(0.8) translate(-100,-100)",children:o[e]?.render()})]}),mobile:d}),(0,t.jsx)(k,{label:"Nose",keys:l,value:e.nose,onChange:e=>b("nose",e),renderThumb:e=>(0,t.jsx)("svg",{viewBox:"-14 -10 28 20",width:"36",height:"24",children:c[e]?.render("currentColor")}),mobile:d}),(0,t.jsx)(k,{label:"Eyes",keys:f,value:e.eye,onChange:e=>b("eye",e),renderThumb:e=>(0,t.jsx)("svg",{viewBox:"-18 -10 36 20",width:"44",height:"24",children:u[e]?.render(8,"currentColor")}),mobile:d}),(0,t.jsxs)("div",{children:[(0,t.jsx)("div",{className:"mb-2 text-xs font-medium text-muted-foreground",children:"Color"}),(0,t.jsx)("div",{className:(0,v.cn)("flex flex-wrap p-1",d?"gap-3":"gap-2"),children:s.map((r,n)=>(0,t.jsxs)(w.Tooltip,{children:[(0,t.jsx)(w.TooltipTrigger,{render:(0,t.jsx)("button",{type:"button",onClick:()=>b("bg",n),className:(0,v.cn)("rounded-full transition-shadow",d?"size-8":"size-7",e.bg===n?"ring-2 ring-primary ring-offset-2":"ring-1 ring-border"),style:{background:`linear-gradient(135deg, ${r.gradient[0]}, ${r.gradient[1]}, ${r.gradient[2]})`}})}),(0,t.jsx)(w.TooltipContent,{children:r.name})]},r.value))})]})]})]})]});return M?(0,t.jsxs)("div",{className:"flex gap-4",children:[I,E]}):(0,t.jsxs)("div",{className:"flex flex-col gap-4",children:[I,E]})}var L=e.i(779646),M=e.i(996718);e.s(["AvatarPickerDialog",0,function({config:e,onChange:n}){let[a,s]=(0,r.useState)(!1),[o,i]=(0,r.useState)(e),c=(0,M.useIsMobile)();return(0,t.jsxs)(L.Dialog,{open:a,onOpenChange:t=>{t&&i(e),s(t)},children:[(0,t.jsx)("div",{className:"flex justify-center",children:(0,t.jsx)(L.DialogTrigger,{render:(0,t.jsx)("button",{type:"button",className:"rounded-2xl bg-background p-1.5 shadow-sm border border-border hover:border-primary/40 transition-colors cursor-pointer"}),children:(0,t.jsx)(p,{config:e,size:80})})}),(0,t.jsxs)(L.DialogContent,{className:c?"top-auto left-0 translate-x-0 translate-y-0 bottom-0 max-w-full sm:max-w-full w-full rounded-b-none rounded-t-xl max-h-[85dvh] overflow-y-auto pb-[env(safe-area-inset-bottom)]":"sm:max-w-180",children:[(0,t.jsx)(L.DialogHeader,{children:(0,t.jsx)(L.DialogTitle,{children:"Choose Avatar"})}),(0,t.jsx)(C,{config:o,layout:c?"vertical":"horizontal",onChange:e=>{i(e),n(e)},mobile:c}),c&&(0,t.jsx)("button",{type:"button",onClick:()=>s(!1),className:"w-full rounded-xl bg-primary py-3 text-sm font-medium text-primary-foreground hover:bg-primary/90 transition-colors",children:"Done"})]})]})}],108772),e.s(["AgentAvatar",0,function({name:e,avatarUrl:r,size:n=32}){let a=y(r);return a?(0,t.jsx)(p,{config:a,size:n,className:"rounded-full shrink-0"}):(0,t.jsx)("span",{className:"flex items-center justify-center rounded-full bg-secondary text-xs font-medium shrink-0",style:{width:n,height:n},children:(e??"?").charAt(0).toUpperCase()})}],261819),e.s([],400175)}]);
|
|
1
|
+
(globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,275351,e=>{"use strict";let t,r,n,a,s=(e,t)=>t.some(t=>e instanceof t),o=new WeakMap,i=new WeakMap,c=new WeakMap,l={get(e,t,r){if(e instanceof IDBTransaction){if("done"===t)return o.get(e);if("store"===t)return r.objectStoreNames[1]?void 0:r.objectStore(r.objectStoreNames[0])}return d(e[t])},set:(e,t,r)=>(e[t]=r,!0),has:(e,t)=>e instanceof IDBTransaction&&("done"===t||"store"===t)||t in e};function d(e){if(e instanceof IDBRequest){let t;return t=new Promise((t,r)=>{let n=()=>{e.removeEventListener("success",a),e.removeEventListener("error",s)},a=()=>{t(d(e.result)),n()},s=()=>{r(e.error),n()};e.addEventListener("success",a),e.addEventListener("error",s)}),c.set(t,e),t}if(i.has(e))return i.get(e);let t=function(e){if("function"==typeof e)return(a||(a=[IDBCursor.prototype.advance,IDBCursor.prototype.continue,IDBCursor.prototype.continuePrimaryKey])).includes(e)?function(...t){return e.apply(u(this),t),d(this.request)}:function(...t){return d(e.apply(u(this),t))};return(e instanceof IDBTransaction&&function(e){if(o.has(e))return;let t=new Promise((t,r)=>{let n=()=>{e.removeEventListener("complete",a),e.removeEventListener("error",s),e.removeEventListener("abort",s)},a=()=>{t(),n()},s=()=>{r(e.error||new DOMException("AbortError","AbortError")),n()};e.addEventListener("complete",a),e.addEventListener("error",s),e.addEventListener("abort",s)});o.set(e,t)}(e),s(e,n||(n=[IDBDatabase,IDBObjectStore,IDBIndex,IDBCursor,IDBTransaction])))?new Proxy(e,l):e}(e);return t!==e&&(i.set(e,t),c.set(t,e)),t}let u=e=>c.get(e),f=["get","getKey","getAll","getAllKeys","count"],h=["put","add","delete","clear"],g=new Map;function x(e,t){if(!(e instanceof IDBDatabase&&!(t in e)&&"string"==typeof t))return;if(g.get(t))return g.get(t);let r=t.replace(/FromIndex$/,""),n=t!==r,a=h.includes(r);if(!(r in(n?IDBIndex:IDBObjectStore).prototype)||!(a||f.includes(r)))return;let s=async function(e,...t){let s=this.transaction(e,a?"readwrite":"readonly"),o=s.store;return n&&(o=o.index(t.shift())),(await Promise.all([o[r](...t),a&&s.done]))[0]};return g.set(t,s),s}l={...t=l,get:(e,r,n)=>x(e,r)||t.get(e,r,n),has:(e,r)=>!!x(e,r)||t.has(e,r)};let m=["continue","continuePrimaryKey","advance"],p={},b=new WeakMap,y=new WeakMap,j={get(e,t){if(!m.includes(t))return e[t];let r=p[t];return r||(r=p[t]=function(...e){b.set(this,y.get(this)[t](...e))}),r}};async function*v(...e){let t=this;if(t instanceof IDBCursor||(t=await t.openCursor(...e)),!t)return;let r=new Proxy(t,j);for(y.set(r,t),c.set(r,u(t));t;)yield r,t=await (b.get(r)||t.continue()),b.delete(r)}function w(e,t){return t===Symbol.asyncIterator&&s(e,[IDBIndex,IDBObjectStore,IDBCursor])||"iterate"===t&&s(e,[IDBIndex,IDBObjectStore])}l={...r=l,get:(e,t,n)=>w(e,t)?v:r.get(e,t,n),has:(e,t)=>w(e,t)||r.has(e,t)};let k=null,C=null;function L(e){return"u"<typeof indexedDB?null:k&&C===e?k:(C=e,k=function(e,{blocked:t,upgrade:r,blocking:n,terminated:a}={}){let s=indexedDB.open(e,1),o=d(s);return r&&s.addEventListener("upgradeneeded",e=>{r(d(s.result),e.oldVersion,e.newVersion,d(s.transaction),e)}),t&&s.addEventListener("blocked",e=>t(e.oldVersion,e.newVersion,e)),o.then(e=>{a&&e.addEventListener("close",()=>a()),n&&e.addEventListener("versionchange",e=>n(e.oldVersion,e.newVersion,e))}).catch(()=>{}),o}(`alook-chat-cache-${e}`,{upgrade(e){let t=e.createObjectStore("messages",{keyPath:["conversation_id","id"]});t.createIndex("by-conversation","conversation_id",{unique:!1}),t.createIndex("by-created",["conversation_id","created_at"],{unique:!1}),e.createObjectStore("cache_meta",{keyPath:"conversation_id"})}}))}function M(e){return e?L(e):k}async function D(e,t){let r=M(t);if(!r)return null;try{let t=await r,n=await t.getAllFromIndex("messages","by-conversation",e);if(0===n.length)return null;let a=n.filter(e=>"buffered"!==e.status&&!e.id.startsWith("temp-"));a.sort((e,t)=>{let r=e.created_at.localeCompare(t.created_at);return 0!==r?r:e.id.localeCompare(t.id)});let s=await t.get("cache_meta",e);return s&&await t.put("cache_meta",{...s,lastAccessedAt:Date.now()}),a}catch{return null}}async function I(e,t,r,n,a){let s=M(a);if(!s)return null;try{let a=await s,o=await a.get("cache_meta",e);if(!o)return null;let i=IDBKeyRange.bound([e,""],[e,t],!1,!1),c=(await a.getAllFromIndex("messages","by-created",i)).filter(e=>!("buffered"===e.status||e.id.startsWith("temp-"))&&(e.created_at!==t||!(e.id>=r)));c.sort((e,t)=>{let r=t.created_at.localeCompare(e.created_at);return 0!==r?r:t.id.localeCompare(e.id)});let l=c.slice(0,n);if(l.length<n&&o.hasMore)return null;return await a.put("cache_meta",{...o,lastAccessedAt:Date.now()}),{messages:l.reverse(),hasMore:c.length>n||o.hasMore}}catch{return null}}async function E(e,t,r,n){let a=M(n);if(a)try{let n=await a,s=t.filter(e=>"buffered"!==e.status&&!e.id.startsWith("temp-"));if(0===s.length)return;let o=n.transaction(["messages","cache_meta"],"readwrite"),i=o.objectStore("messages"),c=o.objectStore("cache_meta");for(let e of s)await i.put(e);let l=await i.index("by-conversation").getAllKeys(e),d=Date.now(),u=s.reduce((e,t)=>e.created_at>t.created_at?e:t),f=await c.get(e),h=r??f?.hasMore??!0,g=f?.newestMessageId&&f.newestMessageId!==u.id?await (async()=>{let t=await i.get([e,f.newestMessageId]);return t&&t.created_at>u.created_at?t.id:u.id})():u.id,x={conversation_id:e,lastFetchedAt:d,lastAccessedAt:d,messageCount:l.length,newestMessageId:g,hasMore:h};await c.put(x),await o.done,_().catch(()=>{})}catch{}}async function N(e,t,r){let n=M(r);if(n&&!("buffered"===t.status||t.id.startsWith("temp-")))try{let r=await n,a=await r.get("cache_meta",e);if(!a)return;let s=await r.get("messages",[e,t.id]);await r.put("messages",t),await r.put("cache_meta",{...a,lastAccessedAt:Date.now(),messageCount:s?a.messageCount:a.messageCount+1,newestMessageId:t.id})}catch{}}async function S(e,t){let r=M(t);if(!r)return null;try{let t=await r;return await t.get("cache_meta",e)??null}catch{return null}}async function _(e=50){let t=M();if(t)try{let r=await t,n=await r.getAll("cache_meta");if(n.length<=e)return;n.sort((e,t)=>e.lastAccessedAt-t.lastAccessedAt);let a=n.slice(0,n.length-e),s=r.transaction(["messages","cache_meta"],"readwrite"),o=s.objectStore("messages"),i=s.objectStore("cache_meta");for(let e of a){for(let t of(await o.index("by-conversation").getAllKeys(e.conversation_id)))await o.delete(t);await i.delete(e.conversation_id)}await s.done}catch{}}async function B(){if("u">typeof indexedDB)try{k&&((await k).close(),k=null),C&&(await A(`alook-chat-cache-${C}`),C=null)}catch{}}async function A(e){return new Promise((t,r)=>{let n=indexedDB.deleteDatabase(e);n.onsuccess=()=>t(),n.onerror=()=>r(n.error),n.onblocked=()=>t()})}e.s(["appendCachedMessage",0,N,"clearAllCache",0,B,"getCacheMeta",0,S,"getCachedMessages",0,D,"getCachedMessagesBefore",0,I,"mergeCachedMessages",0,E,"openCacheDB",0,L],275351)},297925,e=>{"use strict";let t=(0,e.i(406963).default)("check",[["path",{d:"M20 6 9 17l-5-5",key:"1gmf2c"}]]);e.s(["default",0,t])},541544,e=>{"use strict";var t=e.i(297925);e.s(["Check",()=>t.default])},113354,e=>{"use strict";let t=(0,e.i(406963).default)("arrow-left",[["path",{d:"m12 19-7-7 7-7",key:"1l729n"}],["path",{d:"M19 12H5",key:"x3x0zl"}]]);e.s(["ArrowLeft",0,t],113354)},996718,e=>{"use strict";var t=e.i(298699);e.s(["useIsMobile",0,function(){let[e,r]=t.useState(void 0);return t.useEffect(()=>{let e=window.matchMedia("(max-width: 639px)"),t=()=>{r(window.innerWidth<640)};return e.addEventListener("change",t),r(window.innerWidth<640),()=>e.removeEventListener("change",t)},[]),!!e}])},371522,e=>{"use strict";let t=(0,e.i(406963).default)("loader-circle",[["path",{d:"M21 12a9 9 0 1 1-6.219-8.56",key:"13zald"}]]);e.s(["Loader2",0,t],371522)},642342,e=>{"use strict";var t=e.i(459119),r=e.i(298699);let n=(0,e.i(613349).isLocalMode)(),a=Number(t.default.env.NEXT_PUBLIC_WS_DO_PORT)||8789,s=Number(t.default.env.NEXT_PUBLIC_WS_RECONNECT_DELAY_MS)||1e3,o=Number(t.default.env.NEXT_PUBLIC_WS_RECONNECT_MAX_DELAY_MS)||3e4;e.s(["useUserWs",0,function(e,t){let i=(0,r.useRef)(null),c=(0,r.useRef)(s),l=(0,r.useRef)(e),d=(0,r.useRef)(t?.onReconnect),u=(0,r.useRef)(null),f=(0,r.useRef)(!1),h=(0,r.useRef)(0),g=(0,r.useRef)(null),x=(0,r.useRef)(null);(0,r.useEffect)(()=>{l.current=e},[e]),(0,r.useEffect)(()=>{d.current=t?.onReconnect},[t?.onReconnect]);let m=(0,r.useRef)(null),p=(0,r.useCallback)(()=>{let e=Math.min(c.current,o);c.current=Math.min(2*e,o),u.current=setTimeout(()=>{m.current?.()},e+500*Math.random())},[]),b=(0,r.useCallback)(async()=>{let e,t,r,o=a;try{let r=await fetch("/api/ws/token");if(!r.ok){console.warn("[ws] token fetch failed:",r.status),p();return}let n=await r.json();e=n.userId,t=n.token,n.wsPort&&(o=n.wsPort)}catch(e){console.warn("[ws] token fetch error:",e),p();return}let u=n?`ws://localhost:${o}/?userId=${e}`:`${location.origin.replace("http","ws")}/api/ws/user?userId=${e}`;try{r=new WebSocket(u)}catch(e){console.warn("[ws] WebSocket creation failed:",e),p();return}i.current=r,r.onopen=()=>{c.current=s,r.send(JSON.stringify({type:"auth",token:t})),f.current&&d.current?.(),f.current=!0,h.current=Date.now(),g.current=setInterval(()=>{r.readyState===WebSocket.OPEN&&r.send("ping")},25e3),x.current=setInterval(()=>{Date.now()-h.current>3e4&&r.close()},5e3)},r.onmessage=e=>{h.current=Date.now();try{let t=JSON.parse(e.data);if("auth.ok"===t.type)return;l.current(t)}catch{}},r.onerror=()=>{},r.onclose=()=>{r===i.current&&(g.current&&(clearInterval(g.current),g.current=null),x.current&&(clearInterval(x.current),x.current=null),p())}},[p]);(0,r.useEffect)(()=>{m.current=b},[b]),(0,r.useEffect)(()=>(b(),()=>{null!==u.current&&(clearTimeout(u.current),u.current=null),g.current&&(clearInterval(g.current),g.current=null),x.current&&(clearInterval(x.current),x.current=null);let e=i.current;i.current=null,e?.close()}),[b])}])},790659,e=>{"use strict";var t=e.i(298699),r=e.i(982218),n=e.i(627498),a=e.i(893205);e.s(["useAnchoredPopupScrollLock",0,function(e,s,o,i){let[c,l]=t.useState(!1);(0,a.useIsoLayoutEffect)(()=>{if(!e||!s||null==o)return void l(!1);let t=(0,r.ownerDocument)(o).documentElement.clientWidth,n=o.offsetWidth;l(t>0&&n>0&&n>=t-20)},[e,s,o]),(0,n.useScrollLock)(e&&(!s||c),i)}])},643899,e=>{"use strict";var t=e.i(240003),r=e.i(298699);let n=r.createContext(void 0);e.s(["useToolbarRootContext",0,function(e){let a=r.useContext(n);if(void 0===a&&!e)throw Error((0,t.default)(69));return a}])},400175,126366,819748,108772,261819,e=>{"use strict";var t=e.i(368075),r=e.i(298699);let n="#27272a",a={fill:"rgba(255,255,255,0.92)",stroke:"rgba(255,255,255,0.95)",strokeWidth:3.5},s=[{name:"Purple",value:"#a855f7",gradient:["#c084fc","#a855f7","#7c3aed"],faceColor:"#2e1065"},{name:"Teal",value:"#14b8a6",gradient:["#5eead4","#14b8a6","#0d9488"],faceColor:"#134e4a"},{name:"Orange",value:"#f97316",gradient:["#fdba74","#f97316","#c2410c"],faceColor:"#7c2d12"},{name:"Blue",value:"#3b82f6",gradient:["#93c5fd","#3b82f6","#1d4ed8"],faceColor:"#1e3a5f"},{name:"Pink",value:"#f472b6",gradient:["#fda4af","#f472b6","#be185d"],faceColor:"#831843"},{name:"Yellow",value:"#eab308",gradient:["#fde047","#eab308","#a16207"],faceColor:"#713f12"},{name:"Green",value:"#22c55e",gradient:["#86efac","#22c55e","#15803d"],faceColor:"#14532d"},{name:"Beige",value:"#d6ccb8",gradient:["#e8e0d4","#d6ccb8","#b8a990"],faceColor:"#57534e"},{name:"Red",value:"#ef4444",gradient:["#fca5a5","#ef4444","#991b1b"],faceColor:"#7f1d1d"},{name:"Lake Blue",value:"#6366f1",gradient:["#a5b4fc","#6366f1","#3730a3"],faceColor:"#312e81"},{name:"Gray",value:"#9ca3af",gradient:["#d4d4d8","#9ca3af","#6b7280"],faceColor:"#374151"},{name:"Deep Purple",value:"#8b5cf6",gradient:["#c4b5fd","#8b5cf6","#5b21b6"],faceColor:"#3b0764"}],o={circle:{name:"Circle",face:{cx:100,cy:100,w:80},render:()=>(0,t.jsx)("circle",{cx:"100",cy:"100",r:"66",...a})},rounded:{name:"Rounded",face:{cx:100,cy:100,w:90},render:()=>(0,t.jsx)("rect",{x:"30",y:"30",width:"140",height:"140",rx:"32",...a})},hexagon:{name:"Hexagon",face:{cx:100,cy:100,w:86},render:()=>(0,t.jsx)("path",{d:"M100 32 C108 32 114 35 120 39 L155 60 C161 64 165 70 165 78 L165 122 C165 130 161 136 155 140 L120 161 C114 165 108 168 100 168 C92 168 86 165 80 161 L45 140 C39 136 35 130 35 122 L35 78 C35 70 39 64 45 60 L80 39 C86 35 92 32 100 32 Z",...a})},task:{name:"Task",face:{cx:100,cy:100,w:80},render:()=>(0,t.jsx)("rect",{x:"34",y:"34",width:"132",height:"132",rx:"24",...a})},book:{name:"Book",face:{cx:100,cy:100,w:80},render:()=>(0,t.jsx)("path",{d:"M42 162 L42 88 C42 54 68 34 100 34 C132 34 158 54 158 88 L158 162 C158 166 154 170 150 170 L50 170 C46 170 42 166 42 162 Z",...a})},mail:{name:"Mail",face:{cx:100,cy:100,w:86},render:()=>(0,t.jsx)("rect",{x:"28",y:"54",width:"144",height:"92",rx:"46",...a})},calendar:{name:"Calendar",face:{cx:100,cy:100,w:80},render:()=>(0,t.jsx)("path",{d:"M100 34 C138 34 166 52 166 80 C166 94 158 106 158 118 C158 148 138 166 100 166 C62 166 42 148 42 118 C42 106 34 94 34 80 C34 52 62 34 100 34 Z",...a})},bulb:{name:"Bulb",face:{cx:100,cy:104,w:76},render:()=>(0,t.jsx)("ellipse",{cx:"100",cy:"104",rx:"58",ry:"66",...a})},folder:{name:"Folder",face:{cx:102,cy:108,w:80},render:()=>(0,t.jsx)("path",{d:"M62 144 C40 144 32 128 36 116 C32 104 40 90 54 88 C56 72 70 60 88 62 C100 50 118 50 132 58 C144 52 162 60 162 76 C172 82 174 98 166 108 C172 120 164 136 150 140 Z",...a})},mountain:{name:"Mountain",face:{cx:100,cy:100,w:76},render:()=>(0,t.jsx)("path",{d:"M92 36 C120 32 156 48 164 78 C172 108 156 148 124 160 C92 172 48 156 38 124 C28 92 62 40 92 36 Z",...a})}},i=Object.keys(o),c={dot:{name:"Dot",render:(e=n)=>(0,t.jsx)("circle",{cx:"0",cy:"0",r:"4.5",fill:e})},dash:{name:"Dash",render:(e=n)=>(0,t.jsx)("line",{x1:"-10",y1:"0",x2:"10",y2:"0",stroke:e,strokeWidth:"5",strokeLinecap:"round"})},hookL:{name:"Hook",render:(e=n)=>(0,t.jsx)("path",{d:"M-11 0 Q-5.5 7 0 1.5 Q5.5 7 11 0",fill:"none",stroke:e,strokeWidth:"4.5",strokeLinecap:"round",strokeLinejoin:"round"})},smile:{name:"Smile",render:(e=n)=>(0,t.jsx)("path",{d:"M-11 0 Q0 11 11 0",fill:"none",stroke:e,strokeWidth:"5",strokeLinecap:"round"})},caret:{name:"Caret",render:(e=n)=>(0,t.jsxs)("g",{children:[(0,t.jsx)("path",{d:"M-10 0 Q0 8 10 0",fill:"none",stroke:e,strokeWidth:"4.5",strokeLinecap:"round"}),(0,t.jsx)("ellipse",{cx:"3",cy:"6",rx:"4",ry:"4.5",fill:"#f472b6"})]})},arrow:{name:"Arrow",render:(e=n)=>(0,t.jsx)("ellipse",{cx:"0",cy:"0",rx:"6",ry:"7.5",fill:e})},oh:{name:"o",render:(e=n)=>(0,t.jsx)("ellipse",{cx:"0",cy:"0",rx:"7",ry:"7.5",fill:"none",stroke:e,strokeWidth:"4.5"})}},l=Object.keys(c),d=(e,r)=>{let a=r??e,s=(r,s=n)=>(0,t.jsxs)("g",{children:[(0,t.jsx)("g",{transform:`translate(${-r}, 0)`,children:e(s)}),(0,t.jsx)("g",{transform:`translate(${r}, 0)`,children:a(s)})]});return s.displayName="EyePair",s},u={dots:{name:"Dots",render:d(e=>(0,t.jsx)("circle",{cx:"0",cy:"0",r:"7",fill:e}))},big:{name:"Big",render:d(e=>(0,t.jsxs)("g",{children:[(0,t.jsx)("circle",{cx:"0",cy:"0",r:"10",fill:e}),(0,t.jsx)("circle",{cx:"2.5",cy:"-3",r:"3.5",fill:"rgba(255,255,255,0.9)"})]}))},rings:{name:"Rings",render:d(e=>(0,t.jsx)("ellipse",{cx:"0",cy:"0",rx:"8.5",ry:"9.5",fill:"none",stroke:e,strokeWidth:"4.5"}))},arches:{name:"Arches",render:d(e=>(0,t.jsx)("path",{d:"M-10 2 Q0 -9 10 2",fill:"none",stroke:e,strokeWidth:"5",strokeLinecap:"round"}))},lines:{name:"Lines",render:d(e=>(0,t.jsx)("path",{d:"M-10 0 Q0 -6 10 0",fill:"none",stroke:e,strokeWidth:"5",strokeLinecap:"round"}))},happy:{name:"Happy",render:d(e=>(0,t.jsx)("path",{d:"M-10 5 Q0 -11 10 5",fill:"none",stroke:e,strokeWidth:"5",strokeLinecap:"round"}))},sleepy:{name:"Sleepy",render:d(e=>(0,t.jsx)("path",{d:"M-10 -2 Q0 8 10 -2",fill:"none",stroke:e,strokeWidth:"5",strokeLinecap:"round"}))},shy:{name:"Shy",render:d(e=>(0,t.jsx)("ellipse",{cx:"0",cy:"0",rx:"8.5",ry:"9.5",fill:e}))},wink:{name:"Wink",render:(e,r=n)=>(0,t.jsxs)("g",{children:[(0,t.jsx)("g",{transform:`translate(${-e}, 0)`,children:(0,t.jsx)("circle",{cx:"0",cy:"0",r:"7",fill:r})}),(0,t.jsx)("g",{transform:`translate(${e}, 0)`,children:(0,t.jsx)("path",{d:"M-10 2 Q0 -9 10 2",fill:"none",stroke:r,strokeWidth:"5",strokeLinecap:"round"})})]})}},f=Object.keys(u),h={shape:"book",eye:"happy",nose:"dash",bg:1},g=[{name:"Task",config:{shape:"task",nose:"dot",eye:"dots",bg:0}},{name:"Notes",config:{shape:"book",nose:"dash",eye:"happy",bg:1}},{name:"Mail",config:{shape:"mail",nose:"smile",eye:"dots",bg:3}},{name:"Schedule",config:{shape:"calendar",nose:"dot",eye:"dots",bg:4}},{name:"Idea",config:{shape:"bulb",nose:"oh",eye:"rings",bg:5}},{name:"Project",config:{shape:"folder",nose:"dash",eye:"lines",bg:7}},{name:"Goal",config:{shape:"mountain",nose:"caret",eye:"arches",bg:8}},{name:"Dream",config:{shape:"circle",nose:"smile",eye:"shy",bg:11}},{name:"Organize",config:{shape:"rounded",nose:"dot",eye:"sleepy",bg:6}},{name:"Explore",config:{shape:"hexagon",nose:"hookL",eye:"wink",bg:9}},{name:"Focus",config:{shape:"task",nose:"caret",eye:"lines",bg:2}},{name:"Collect",config:{shape:"book",nose:"oh",eye:"rings",bg:10}}];function x(e){return e[Math.floor(Math.random()*e.length)]}function m(){return{shape:x(i),eye:x(f),nose:x(l),bg:Math.floor(Math.random()*s.length)}}function p({config:e,size:n=200,className:a}){let i=(0,r.useId)().replace(/:/g,""),l=o[e.shape]??o.book,d=u[e.eye],f=c[e.nose],h=s[e.bg]??s[0],[g,x,m]=h.gradient,b=h.faceColor,{cx:y,cy:j,w:v}=l.face,w=Math.max(13,.24*v),k=j-Math.max(12,.16*v);return(0,t.jsxs)("svg",{viewBox:"0 0 200 200",width:n,height:n,className:a,style:{display:"block"},children:[(0,t.jsxs)("defs",{children:[(0,t.jsxs)("linearGradient",{id:`bg-${i}`,x1:"0%",y1:"0%",x2:"100%",y2:"100%",children:[(0,t.jsx)("stop",{offset:"0%",stopColor:g}),(0,t.jsx)("stop",{offset:"50%",stopColor:x}),(0,t.jsx)("stop",{offset:"100%",stopColor:m})]}),(0,t.jsxs)("radialGradient",{id:`gl-${i}`,cx:"30%",cy:"25%",r:"60%",children:[(0,t.jsx)("stop",{offset:"0%",stopColor:"rgba(255,255,255,0.32)"}),(0,t.jsx)("stop",{offset:"100%",stopColor:"rgba(255,255,255,0)"})]}),(0,t.jsx)("filter",{id:`sh-${i}`,x:"-10%",y:"-5%",width:"120%",height:"130%",children:(0,t.jsx)("feDropShadow",{dx:"0",dy:"3",stdDeviation:"4",floodColor:"rgba(0,0,0,0.18)"})})]}),(0,t.jsx)("rect",{x:"0",y:"0",width:"200",height:"200",rx:"56",fill:`url(#bg-${i})`}),(0,t.jsx)("rect",{x:"0",y:"0",width:"200",height:"200",rx:"56",fill:`url(#gl-${i})`}),(0,t.jsxs)("g",{transform:"translate(100,100) scale(0.8) translate(-100,-100)",children:[(0,t.jsx)("g",{"data-avatar-shape":"",filter:`url(#sh-${i})`,children:l.render()}),d&&(0,t.jsx)("g",{transform:`translate(${y}, ${k})`,children:(0,t.jsx)("g",{"data-avatar-eyes":"",children:d.render(w,b)})}),f&&(0,t.jsx)("g",{transform:`translate(${y}, ${j+7})`,children:(0,t.jsx)("g",{"data-avatar-nose":"",children:f.render(b)})})]})]})}let b="avatar:";function y(e){if(!e||!e.startsWith(b))return null;try{let t=JSON.parse(e.slice(b.length));if("object"==typeof t&&null!==t&&"string"==typeof t.shape&&"string"==typeof t.eye&&"string"==typeof t.nose&&"number"==typeof t.bg)return t;if("object"==typeof t&&null!==t&&"outline"in t)return h;return null}catch{return null}}e.s(["AvatarRenderer",0,p,"BG_COLORS",0,s,"DEFAULT_CONFIG",0,h,"EYE_KEYS",0,f,"Eyes",0,u,"NOSE_KEYS",0,l,"Noses",0,c,"PRESETS",0,g,"SHAPE_KEYS",0,i,"Shapes",0,o,"parseAvatarUrl",0,y,"randomConfig",0,m,"serializeAvatarConfig",0,function(e){return b+JSON.stringify(e)}],126366);let j=["avatar-anim-shape-bounce","avatar-anim-head-tilt","avatar-anim-shake","avatar-anim-wobble","avatar-anim-pulse","avatar-anim-spin","avatar-anim-jelly","avatar-anim-float","avatar-anim-nod"];e.s(["AnimatedAvatar",0,function({config:e,size:n,className:a,isHovered:s,isWorking:o}){let[i,c]=(0,r.useState)(null),l=(0,r.useRef)(-1);function d(){let e=Math.floor(Math.random()*j.length);return e===l.current&&(e=(e+1)%j.length),l.current=e,j[e]}return(0,r.useEffect)(()=>{s?c(d()):o||c(null)},[s,o]),(0,r.useEffect)(()=>{if(!o){s||c(null);return}c(d());let e=setInterval(()=>{c(d())},4e3);return()=>clearInterval(e)},[s,o]),(0,t.jsx)("div",{className:i??void 0,children:(0,t.jsx)(p,{config:e,size:n,className:a})})}],819748);var v=e.i(613349),w=e.i(329686);function k({label:e,keys:r,value:n,onChange:a,renderThumb:s,mobile:o=!1}){let i=r.indexOf(n),c=e=>a(r[(i+e+r.length)%r.length]),l=r[(i-1+r.length)%r.length],d=r[(i+1)%r.length];return(0,t.jsxs)("div",{className:"flex items-center gap-2",children:[(0,t.jsx)("span",{className:"w-12 text-xs font-medium text-muted-foreground shrink-0",children:e}),(0,t.jsx)("button",{type:"button",onClick:()=>c(-1),className:(0,v.cn)("flex items-center justify-center rounded-md hover:bg-accent transition-colors",o?"size-10":"size-7"),children:(0,t.jsx)("svg",{viewBox:"0 0 24 24",width:"16",height:"16",children:(0,t.jsx)("path",{d:"M15 5 L8 12 L15 19",fill:"none",stroke:"currentColor",strokeWidth:"2.4",strokeLinecap:"round",strokeLinejoin:"round"})})}),(0,t.jsxs)("div",{className:"flex items-center gap-1 flex-1 justify-center",children:[(0,t.jsx)("button",{type:"button",onClick:()=>c(-1),className:"opacity-30 hover:opacity-60 transition-opacity",tabIndex:-1,children:s(l)}),(0,t.jsx)("button",{type:"button",onClick:()=>c(1),className:"border-2 border-primary rounded-lg p-0.5",children:s(n)}),(0,t.jsx)("button",{type:"button",onClick:()=>c(1),className:"opacity-30 hover:opacity-60 transition-opacity",tabIndex:-1,children:s(d)})]}),(0,t.jsx)("button",{type:"button",onClick:()=>c(1),className:(0,v.cn)("flex items-center justify-center rounded-md hover:bg-accent transition-colors",o?"size-10":"size-7"),children:(0,t.jsx)("svg",{viewBox:"0 0 24 24",width:"16",height:"16",children:(0,t.jsx)("path",{d:"M9 5 L16 12 L9 19",fill:"none",stroke:"currentColor",strokeWidth:"2.4",strokeLinecap:"round",strokeLinejoin:"round"})})})]})}function C({config:e,onChange:n,layout:a="vertical",mobile:d=!1}){let[h,x]=(0,r.useState)("presets"),b=(0,r.useCallback)((t,r)=>{n({...e,[t]:r})},[e,n]),[y,j]=(0,r.useState)(!1),L=(0,r.useRef)(e);(0,r.useEffect)(()=>{if(L.current.shape!==e.shape||L.current.eye!==e.eye||L.current.nose!==e.nose||L.current.bg!==e.bg){j(!0);let t=setTimeout(()=>j(!1),450);return L.current=e,()=>clearTimeout(t)}},[e]),(0,r.useEffect)(()=>{if("horizontal"!==a)return;let e=e=>{"Space"===e.code&&e.target===document.body&&(e.preventDefault(),n(m()))};return window.addEventListener("keydown",e),()=>window.removeEventListener("keydown",e)},[a,n]);let M="horizontal"===a,D=M?220:d?120:160,I=(0,t.jsxs)("div",{className:(0,v.cn)("flex flex-col items-center gap-3 rounded-2xl bg-muted/30",d?"p-3":"p-4",M?"w-70 shrink-0 justify-center":""),children:[(0,t.jsx)("div",{className:(0,v.cn)("rounded-2xl",y&&"animate-[shake_0.45s_cubic-bezier(.36,.07,.19,.97)]"),children:(0,t.jsx)(p,{config:e,size:D})}),(0,t.jsxs)("button",{type:"button",onClick:()=>n(m()),className:"inline-flex items-center gap-2 rounded-full bg-foreground px-4 py-1.5 text-sm font-medium text-background hover:bg-foreground/80 transition-colors",children:[(0,t.jsxs)("svg",{viewBox:"0 0 24 24",width:"14",height:"14",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",children:[(0,t.jsx)("rect",{x:"2",y:"2",width:"20",height:"20",rx:"3"}),(0,t.jsx)("circle",{cx:"8",cy:"8",r:"1.5",fill:"currentColor"}),(0,t.jsx)("circle",{cx:"16",cy:"8",r:"1.5",fill:"currentColor"}),(0,t.jsx)("circle",{cx:"8",cy:"16",r:"1.5",fill:"currentColor"}),(0,t.jsx)("circle",{cx:"16",cy:"16",r:"1.5",fill:"currentColor"}),(0,t.jsx)("circle",{cx:"12",cy:"12",r:"1.5",fill:"currentColor"})]}),"Random",M&&(0,t.jsx)("kbd",{className:"ml-1 rounded bg-background/20 px-1.5 py-0.5 text-[10px] font-mono",children:"Space"})]})]}),E=(0,t.jsxs)("div",{className:(0,v.cn)("flex flex-col gap-3 flex-1 min-w-0",M&&"rounded-2xl bg-muted/30 p-4 h-95"),children:[(0,t.jsxs)("div",{className:"flex border-b border-border",children:[(0,t.jsx)("button",{type:"button",onClick:()=>x("presets"),className:(0,v.cn)("flex-1 pb-2 text-sm font-medium text-center transition-colors border-b-2","presets"===h?"border-primary text-foreground":"border-transparent text-muted-foreground hover:text-foreground"),children:"★ Presets"}),(0,t.jsx)("button",{type:"button",onClick:()=>x("custom"),className:(0,v.cn)("flex-1 pb-2 text-sm font-medium text-center transition-colors border-b-2","custom"===h?"border-primary text-foreground":"border-transparent text-muted-foreground hover:text-foreground"),children:"⚙ Custom"})]}),(0,t.jsxs)("div",{className:(0,v.cn)("flex-1 min-h-0",M&&"overflow-y-auto thin-scrollbar"),children:["presets"===h&&(0,t.jsx)("div",{className:(0,v.cn)("grid gap-2",d?"grid-cols-3":"grid-cols-4"),children:g.map(r=>{let a=r.config.shape===e.shape&&r.config.eye===e.eye&&r.config.nose===e.nose&&r.config.bg===e.bg;return(0,t.jsx)("button",{type:"button",onClick:()=>n(r.config),className:(0,v.cn)("flex items-center justify-center rounded-xl border p-2 transition-all",a?"border-primary border-2 bg-primary/5 shadow-sm":"border-border bg-background hover:border-primary/40"),children:(0,t.jsx)(p,{config:r.config,size:56})},r.name)})}),"custom"===h&&(0,t.jsxs)("div",{className:"flex flex-col gap-4",children:[(0,t.jsx)(k,{label:"Shape",keys:i,value:e.shape,onChange:e=>b("shape",e),renderThumb:e=>(0,t.jsxs)("svg",{viewBox:"0 0 200 200",width:"40",height:"40",children:[(0,t.jsx)("rect",{width:"200",height:"200",rx:"56",fill:"hsl(var(--muted))"}),(0,t.jsx)("g",{transform:"translate(100,100) scale(0.8) translate(-100,-100)",children:o[e]?.render()})]}),mobile:d}),(0,t.jsx)(k,{label:"Nose",keys:l,value:e.nose,onChange:e=>b("nose",e),renderThumb:e=>(0,t.jsx)("svg",{viewBox:"-14 -10 28 20",width:"36",height:"24",children:c[e]?.render("currentColor")}),mobile:d}),(0,t.jsx)(k,{label:"Eyes",keys:f,value:e.eye,onChange:e=>b("eye",e),renderThumb:e=>(0,t.jsx)("svg",{viewBox:"-18 -10 36 20",width:"44",height:"24",children:u[e]?.render(8,"currentColor")}),mobile:d}),(0,t.jsxs)("div",{children:[(0,t.jsx)("div",{className:"mb-2 text-xs font-medium text-muted-foreground",children:"Color"}),(0,t.jsx)("div",{className:(0,v.cn)("flex flex-wrap p-1",d?"gap-3":"gap-2"),children:s.map((r,n)=>(0,t.jsxs)(w.Tooltip,{children:[(0,t.jsx)(w.TooltipTrigger,{render:(0,t.jsx)("button",{type:"button",onClick:()=>b("bg",n),className:(0,v.cn)("rounded-full transition-shadow",d?"size-8":"size-7",e.bg===n?"ring-2 ring-primary ring-offset-2":"ring-1 ring-border"),style:{background:`linear-gradient(135deg, ${r.gradient[0]}, ${r.gradient[1]}, ${r.gradient[2]})`}})}),(0,t.jsx)(w.TooltipContent,{children:r.name})]},r.value))})]})]})]})]});return M?(0,t.jsxs)("div",{className:"flex gap-4",children:[I,E]}):(0,t.jsxs)("div",{className:"flex flex-col gap-4",children:[I,E]})}var L=e.i(779646),M=e.i(996718);e.s(["AvatarPickerDialog",0,function({config:e,onChange:n}){let[a,s]=(0,r.useState)(!1),[o,i]=(0,r.useState)(e),c=(0,M.useIsMobile)();return(0,t.jsxs)(L.Dialog,{open:a,onOpenChange:t=>{t&&i(e),s(t)},children:[(0,t.jsx)("div",{className:"flex justify-center",children:(0,t.jsx)(L.DialogTrigger,{render:(0,t.jsx)("button",{type:"button",className:"rounded-2xl bg-background p-1.5 shadow-sm border border-border hover:border-primary/40 transition-colors cursor-pointer"}),children:(0,t.jsx)(p,{config:e,size:80})})}),(0,t.jsxs)(L.DialogContent,{className:c?"top-auto left-0 translate-x-0 translate-y-0 bottom-0 max-w-full sm:max-w-full w-full rounded-b-none rounded-t-xl max-h-[85dvh] overflow-y-auto pb-[env(safe-area-inset-bottom)]":"sm:max-w-180",children:[(0,t.jsx)(L.DialogHeader,{children:(0,t.jsx)(L.DialogTitle,{children:"Choose Avatar"})}),(0,t.jsx)(C,{config:o,layout:c?"vertical":"horizontal",onChange:e=>{i(e),n(e)},mobile:c}),c&&(0,t.jsx)("button",{type:"button",onClick:()=>s(!1),className:"w-full rounded-xl bg-primary py-3 text-sm font-medium text-primary-foreground hover:bg-primary/90 transition-colors",children:"Done"})]})]})}],108772),e.s(["AgentAvatar",0,function({name:e,avatarUrl:r,size:n=32}){let a=y(r);return a?(0,t.jsx)(p,{config:a,size:n,className:"rounded-full shrink-0"}):(0,t.jsx)("span",{className:"flex items-center justify-center rounded-full bg-secondary text-xs font-medium shrink-0",style:{width:n,height:n},children:(e??"?").charAt(0).toUpperCase()})}],261819),e.s([],400175)}]);
|