@jiggai/kitchen 0.4.3 → 0.4.5

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.
Files changed (78) hide show
  1. package/.next/BUILD_ID +1 -1
  2. package/.next/build-manifest.json +2 -2
  3. package/.next/prerender-manifest.json +3 -3
  4. package/.next/server/app/_global-error.html +2 -2
  5. package/.next/server/app/_global-error.rsc +1 -1
  6. package/.next/server/app/_global-error.segments/__PAGE__.segment.rsc +1 -1
  7. package/.next/server/app/_global-error.segments/_full.segment.rsc +1 -1
  8. package/.next/server/app/_global-error.segments/_head.segment.rsc +1 -1
  9. package/.next/server/app/_global-error.segments/_index.segment.rsc +1 -1
  10. package/.next/server/app/_global-error.segments/_tree.segment.rsc +1 -1
  11. package/.next/server/app/_not-found.html +1 -1
  12. package/.next/server/app/_not-found.rsc +2 -2
  13. package/.next/server/app/_not-found.segments/_full.segment.rsc +2 -2
  14. package/.next/server/app/_not-found.segments/_head.segment.rsc +1 -1
  15. package/.next/server/app/_not-found.segments/_index.segment.rsc +1 -1
  16. package/.next/server/app/_not-found.segments/_not-found/__PAGE__.segment.rsc +1 -1
  17. package/.next/server/app/_not-found.segments/_not-found.segment.rsc +1 -1
  18. package/.next/server/app/_not-found.segments/_tree.segment.rsc +1 -1
  19. package/.next/server/app/api/plugins/[pluginId]/[...path]/route.js +1 -1
  20. package/.next/server/app/api/plugins/[pluginId]/[...path]/route.js.nft.json +1 -1
  21. package/.next/server/app/api/plugins/[pluginId]/tabs/[tabId]/route.js +1 -1
  22. package/.next/server/app/api/plugins/[pluginId]/tabs/[tabId]/route.js.nft.json +1 -1
  23. package/.next/server/app/api/plugins/route.js +1 -1
  24. package/.next/server/app/api/plugins/route.js.nft.json +1 -1
  25. package/.next/server/app/api/plugins/test/route.js +1 -1
  26. package/.next/server/app/api/plugins/test/route.js.nft.json +1 -1
  27. package/.next/server/app/api/teams/[teamId]/tickets/assignees/route.js +2 -2
  28. package/.next/server/app/api/teams/plugins/route.js +1 -1
  29. package/.next/server/app/api/teams/plugins/route.js.nft.json +1 -1
  30. package/.next/server/app/channels.html +2 -2
  31. package/.next/server/app/channels.rsc +2 -2
  32. package/.next/server/app/channels.segments/_full.segment.rsc +2 -2
  33. package/.next/server/app/channels.segments/_head.segment.rsc +1 -1
  34. package/.next/server/app/channels.segments/_index.segment.rsc +1 -1
  35. package/.next/server/app/channels.segments/_tree.segment.rsc +1 -1
  36. package/.next/server/app/channels.segments/channels/__PAGE__.segment.rsc +1 -1
  37. package/.next/server/app/channels.segments/channels.segment.rsc +1 -1
  38. package/.next/server/app/goals/new.html +2 -2
  39. package/.next/server/app/goals/new.rsc +2 -2
  40. package/.next/server/app/goals/new.segments/_full.segment.rsc +2 -2
  41. package/.next/server/app/goals/new.segments/_head.segment.rsc +1 -1
  42. package/.next/server/app/goals/new.segments/_index.segment.rsc +1 -1
  43. package/.next/server/app/goals/new.segments/_tree.segment.rsc +1 -1
  44. package/.next/server/app/goals/new.segments/goals/new/__PAGE__.segment.rsc +1 -1
  45. package/.next/server/app/goals/new.segments/goals/new.segment.rsc +1 -1
  46. package/.next/server/app/goals/new.segments/goals.segment.rsc +1 -1
  47. package/.next/server/app/goals.html +1 -1
  48. package/.next/server/app/goals.rsc +2 -2
  49. package/.next/server/app/goals.segments/_full.segment.rsc +2 -2
  50. package/.next/server/app/goals.segments/_head.segment.rsc +1 -1
  51. package/.next/server/app/goals.segments/_index.segment.rsc +1 -1
  52. package/.next/server/app/goals.segments/_tree.segment.rsc +1 -1
  53. package/.next/server/app/goals.segments/goals/__PAGE__.segment.rsc +1 -1
  54. package/.next/server/app/goals.segments/goals.segment.rsc +1 -1
  55. package/.next/server/app/settings.html +1 -1
  56. package/.next/server/app/settings.rsc +2 -2
  57. package/.next/server/app/settings.segments/_full.segment.rsc +2 -2
  58. package/.next/server/app/settings.segments/_head.segment.rsc +1 -1
  59. package/.next/server/app/settings.segments/_index.segment.rsc +1 -1
  60. package/.next/server/app/settings.segments/_tree.segment.rsc +1 -1
  61. package/.next/server/app/settings.segments/settings/__PAGE__.segment.rsc +1 -1
  62. package/.next/server/app/settings.segments/settings.segment.rsc +1 -1
  63. package/.next/server/chunks/[root-of-the-server]__1e0ade2e._.js +22 -0
  64. package/.next/server/chunks/[root-of-the-server]__1e0ade2e._.js.map +1 -0
  65. package/.next/server/chunks/[root-of-the-server]__5aa1dc93._.js +1 -1
  66. package/.next/server/chunks/ssr/[root-of-the-server]__3b880807._.js +1 -1
  67. package/.next/server/chunks/ssr/[root-of-the-server]__3b880807._.js.map +1 -1
  68. package/.next/server/pages/404.html +1 -1
  69. package/.next/server/pages/500.html +2 -2
  70. package/.next/server/server-reference-manifest.js +1 -1
  71. package/.next/server/server-reference-manifest.json +1 -1
  72. package/openclaw.plugin.json +1 -1
  73. package/package.json +1 -2
  74. package/.next/server/chunks/[root-of-the-server]__497e7a9d._.js +0 -22
  75. package/.next/server/chunks/[root-of-the-server]__497e7a9d._.js.map +0 -1
  76. /package/.next/static/{VKFMk3pnq7Ap2maFSb7KP → mm0F9at4WhSZ8BVGvqrMK}/_buildManifest.js +0 -0
  77. /package/.next/static/{VKFMk3pnq7Ap2maFSb7KP → mm0F9at4WhSZ8BVGvqrMK}/_clientMiddlewareManifest.json +0 -0
  78. /package/.next/static/{VKFMk3pnq7Ap2maFSb7KP → mm0F9at4WhSZ8BVGvqrMK}/_ssgManifest.js +0 -0
@@ -1,3 +1,3 @@
1
- module.exports=[70406,(e,t,r)=>{t.exports=e.x("next/dist/compiled/@opentelemetry/api",()=>require("next/dist/compiled/@opentelemetry/api"))},18622,(e,t,r)=>{t.exports=e.x("next/dist/compiled/next-server/app-page-turbo.runtime.prod.js",()=>require("next/dist/compiled/next-server/app-page-turbo.runtime.prod.js"))},56704,(e,t,r)=>{t.exports=e.x("next/dist/server/app-render/work-async-storage.external.js",()=>require("next/dist/server/app-render/work-async-storage.external.js"))},32319,(e,t,r)=>{t.exports=e.x("next/dist/server/app-render/work-unit-async-storage.external.js",()=>require("next/dist/server/app-render/work-unit-async-storage.external.js"))},24725,(e,t,r)=>{t.exports=e.x("next/dist/server/app-render/after-task-async-storage.external.js",()=>require("next/dist/server/app-render/after-task-async-storage.external.js"))},93695,(e,t,r)=>{t.exports=e.x("next/dist/shared/lib/no-fallback-error.external.js",()=>require("next/dist/shared/lib/no-fallback-error.external.js"))},50227,(e,t,r)=>{t.exports=e.x("node:path",()=>require("node:path"))},12714,(e,t,r)=>{t.exports=e.x("node:fs/promises",()=>require("node:fs/promises"))},60526,(e,t,r)=>{t.exports=e.x("node:os",()=>require("node:os"))},7367,e=>{"use strict";var t=e.i(12714),r=e.i(60526),a=e.i(50227);async function n(){let e=a.default.join(r.default.homedir(),".openclaw","openclaw.json");return JSON.parse(await t.default.readFile(e,"utf8"))}async function s(){let e=await n(),t=e.agents?.defaults?.workspace;if(!t)throw Error("agents.defaults.workspace is not set in ~/.openclaw/openclaw.json");return t}async function i(){let e=await s();return a.default.join(e,"recipes")}async function o(){let e=await s(),r=a.default.join(e,"goals");try{if((await t.default.stat(r)).isDirectory())return r}catch{}return a.default.join(e,"notes","goals")}async function l(e){let t=r.default.homedir();if(!t)throw Error("Could not resolve home directory");return a.default.join(t,".openclaw",`workspace-${e}`)}function d(e,t){return"main"===t?a.default.resolve(e):a.default.resolve(e,"..",`workspace-${t}`)}function u(e){let t=e.replace(/\\/g,"/");if(!t||t.startsWith("/")||t.includes(".."))throw Error("Invalid file name");return t}async function p(){let e=await n(),t=e.plugins?.installs?.recipes?.installPath||e.plugins?.installs?.recipes?.sourcePath||e.plugins?.load?.paths?.[0];if(!t)throw Error("Could not determine recipes plugin install path from ~/.openclaw/openclaw.json");return a.default.join(t,"recipes","default")}e.s(["assertSafeRelativeFileName",()=>u,"getBuiltinRecipesDir",()=>p,"getTeamWorkspaceDir",()=>l,"getWorkspaceDir",()=>s,"getWorkspaceGoalsDir",()=>o,"getWorkspaceRecipesDir",()=>i,"readOpenClawConfig",()=>n,"teamDirFromBaseWorkspace",()=>d])},94694,e=>{"use strict";var t=e.i(47909),r=e.i(74017),a=e.i(96250),n=e.i(59756),s=e.i(61916),i=e.i(74677),o=e.i(69741),l=e.i(16795),d=e.i(87718),u=e.i(95169),p=e.i(47587),c=e.i(66012),f=e.i(70101),h=e.i(74838),x=e.i(10372),m=e.i(93695);e.i(52474);var g=e.i(220),w=e.i(12714),R=e.i(50227),v=e.i(89171),y=e.i(7367);async function E(e,{params:t}){let{teamId:r}=await t,a=await (0,y.getWorkspaceDir)(),n=(0,y.teamDirFromBaseWorkspace)(a,r),s=R.default.join(n,"roles"),i=[];try{i=await w.default.readdir(s)}catch{i=[]}let o=i.filter(e=>!e.startsWith(".")).sort();return v.NextResponse.json({assignees:o})}e.s(["GET",()=>E,"dynamic",0,"force-dynamic"],49584);var C=e.i(49584);let k=new t.AppRouteRouteModule({definition:{kind:r.RouteKind.APP_ROUTE,page:"/api/teams/[teamId]/tickets/assignees/route",pathname:"/api/teams/[teamId]/tickets/assignees",filename:"route",bundlePath:""},distDir:".next",relativeProjectDir:"",resolvedPagePath:"[project]/src/app/api/teams/[teamId]/tickets/assignees/route.ts",nextConfigOutput:"standalone",userland:C}),{workAsyncStorage:A,workUnitAsyncStorage:j,serverHooks:b}=k;function N(){return(0,a.patchFetch)({workAsyncStorage:A,workUnitAsyncStorage:j})}async function T(e,t,a){k.isDev&&(0,n.addRequestMeta)(e,"devRequestTimingInternalsEnd",process.hrtime.bigint());let w="/api/teams/[teamId]/tickets/assignees/route";w=w.replace(/\/index$/,"")||"/";let R=await k.prepare(e,t,{srcPage:w,multiZoneDraftMode:!1});if(!R)return t.statusCode=400,t.end("Bad Request"),null==a.waitUntil||a.waitUntil.call(a,Promise.resolve()),null;let{buildId:v,params:y,nextConfig:E,parsedUrl:C,isDraftMode:A,prerenderManifest:j,routerServerContext:b,isOnDemandRevalidate:N,revalidateOnlyGenerated:T,resolvedPathname:P,clientReferenceManifest:q,serverActionsManifest:O}=R,D=(0,o.normalizeAppPath)(w),S=!!(j.dynamicRoutes[D]||j.routes[P]),I=async()=>((null==b?void 0:b.render404)?await b.render404(e,t,C,!1):t.end("This page could not be found"),null);if(S&&!A){let e=!!j.routes[P],t=j.dynamicRoutes[D];if(t&&!1===t.fallback&&!e){if(E.experimental.adapterPath)return await I();throw new m.NoFallbackError}}let _=null;!S||k.isDev||A||(_="/index"===(_=P)?"/":_);let H=!0===k.isDev||!S,U=S&&!H;O&&q&&(0,i.setManifestsSingleton)({page:w,clientReferenceManifest:q,serverActionsManifest:O});let F=e.method||"GET",M=(0,s.getTracer)(),W=M.getActiveScopeSpan(),$={params:y,prerenderManifest:j,renderOpts:{experimental:{authInterrupts:!!E.experimental.authInterrupts},cacheComponents:!!E.cacheComponents,supportsDynamicResponse:H,incrementalCache:(0,n.getRequestMeta)(e,"incrementalCache"),cacheLifeProfiles:E.cacheLife,waitUntil:a.waitUntil,onClose:e=>{t.on("close",e)},onAfterTaskError:void 0,onInstrumentationRequestError:(t,r,a,n)=>k.onRequestError(e,t,a,n,b)},sharedContext:{buildId:v}},B=new l.NodeNextRequest(e),K=new l.NodeNextResponse(t),G=d.NextRequestAdapter.fromNodeNextRequest(B,(0,d.signalFromNodeResponse)(t));try{let i=async e=>k.handle(G,$).finally(()=>{if(!e)return;e.setAttributes({"http.status_code":t.statusCode,"next.rsc":!1});let r=M.getRootSpanAttributes();if(!r)return;if(r.get("next.span_type")!==u.BaseServerSpan.handleRequest)return void console.warn(`Unexpected root span type '${r.get("next.span_type")}'. Please report this Next.js issue https://github.com/vercel/next.js`);let a=r.get("next.route");if(a){let t=`${F} ${a}`;e.setAttributes({"next.route":a,"http.route":a,"next.span_name":t}),e.updateName(t)}else e.updateName(`${F} ${w}`)}),o=!!(0,n.getRequestMeta)(e,"minimalMode"),l=async n=>{var s,l;let d=async({previousCacheEntry:r})=>{try{if(!o&&N&&T&&!r)return t.statusCode=404,t.setHeader("x-nextjs-cache","REVALIDATED"),t.end("This page could not be found"),null;let s=await i(n);e.fetchMetrics=$.renderOpts.fetchMetrics;let l=$.renderOpts.pendingWaitUntil;l&&a.waitUntil&&(a.waitUntil(l),l=void 0);let d=$.renderOpts.collectedTags;if(!S)return await (0,c.sendResponse)(B,K,s,$.renderOpts.pendingWaitUntil),null;{let e=await s.blob(),t=(0,f.toNodeOutgoingHttpHeaders)(s.headers);d&&(t[x.NEXT_CACHE_TAGS_HEADER]=d),!t["content-type"]&&e.type&&(t["content-type"]=e.type);let r=void 0!==$.renderOpts.collectedRevalidate&&!($.renderOpts.collectedRevalidate>=x.INFINITE_CACHE)&&$.renderOpts.collectedRevalidate,a=void 0===$.renderOpts.collectedExpire||$.renderOpts.collectedExpire>=x.INFINITE_CACHE?void 0:$.renderOpts.collectedExpire;return{value:{kind:g.CachedRouteKind.APP_ROUTE,status:s.status,body:Buffer.from(await e.arrayBuffer()),headers:t},cacheControl:{revalidate:r,expire:a}}}}catch(t){throw(null==r?void 0:r.isStale)&&await k.onRequestError(e,t,{routerKind:"App Router",routePath:w,routeType:"route",revalidateReason:(0,p.getRevalidateReason)({isStaticGeneration:U,isOnDemandRevalidate:N})},!1,b),t}},u=await k.handleResponse({req:e,nextConfig:E,cacheKey:_,routeKind:r.RouteKind.APP_ROUTE,isFallback:!1,prerenderManifest:j,isRoutePPREnabled:!1,isOnDemandRevalidate:N,revalidateOnlyGenerated:T,responseGenerator:d,waitUntil:a.waitUntil,isMinimalMode:o});if(!S)return null;if((null==u||null==(s=u.value)?void 0:s.kind)!==g.CachedRouteKind.APP_ROUTE)throw Object.defineProperty(Error(`Invariant: app-route received invalid cache entry ${null==u||null==(l=u.value)?void 0:l.kind}`),"__NEXT_ERROR_CODE",{value:"E701",enumerable:!1,configurable:!0});o||t.setHeader("x-nextjs-cache",N?"REVALIDATED":u.isMiss?"MISS":u.isStale?"STALE":"HIT"),A&&t.setHeader("Cache-Control","private, no-cache, no-store, max-age=0, must-revalidate");let m=(0,f.fromNodeOutgoingHttpHeaders)(u.value.headers);return o&&S||m.delete(x.NEXT_CACHE_TAGS_HEADER),!u.cacheControl||t.getHeader("Cache-Control")||m.get("Cache-Control")||m.set("Cache-Control",(0,h.getCacheControlHeader)(u.cacheControl)),await (0,c.sendResponse)(B,K,new Response(u.value.body,{headers:m,status:u.value.status||200})),null};W?await l(W):await M.withPropagatedContext(e.headers,()=>M.trace(u.BaseServerSpan.handleRequest,{spanName:`${F} ${w}`,kind:s.SpanKind.SERVER,attributes:{"http.method":F,"http.target":e.url}},l))}catch(t){if(t instanceof m.NoFallbackError||await k.onRequestError(e,t,{routerKind:"App Router",routePath:D,routeType:"route",revalidateReason:(0,p.getRevalidateReason)({isStaticGeneration:U,isOnDemandRevalidate:N})},!1,b),S)throw t;return await (0,c.sendResponse)(B,K,new Response(null,{status:500})),null}}e.s(["handler",()=>T,"patchFetch",()=>N,"routeModule",()=>k,"serverHooks",()=>b,"workAsyncStorage",()=>A,"workUnitAsyncStorage",()=>j],94694)}];
1
+ module.exports=[70406,(e,t,r)=>{t.exports=e.x("next/dist/compiled/@opentelemetry/api",()=>require("next/dist/compiled/@opentelemetry/api"))},18622,(e,t,r)=>{t.exports=e.x("next/dist/compiled/next-server/app-page-turbo.runtime.prod.js",()=>require("next/dist/compiled/next-server/app-page-turbo.runtime.prod.js"))},56704,(e,t,r)=>{t.exports=e.x("next/dist/server/app-render/work-async-storage.external.js",()=>require("next/dist/server/app-render/work-async-storage.external.js"))},32319,(e,t,r)=>{t.exports=e.x("next/dist/server/app-render/work-unit-async-storage.external.js",()=>require("next/dist/server/app-render/work-unit-async-storage.external.js"))},24725,(e,t,r)=>{t.exports=e.x("next/dist/server/app-render/after-task-async-storage.external.js",()=>require("next/dist/server/app-render/after-task-async-storage.external.js"))},93695,(e,t,r)=>{t.exports=e.x("next/dist/shared/lib/no-fallback-error.external.js",()=>require("next/dist/shared/lib/no-fallback-error.external.js"))},50227,(e,t,r)=>{t.exports=e.x("node:path",()=>require("node:path"))},12714,(e,t,r)=>{t.exports=e.x("node:fs/promises",()=>require("node:fs/promises"))},60526,(e,t,r)=>{t.exports=e.x("node:os",()=>require("node:os"))},7367,e=>{"use strict";var t=e.i(12714),r=e.i(60526),a=e.i(50227);async function n(){let e=a.default.join(r.default.homedir(),".openclaw","openclaw.json");return JSON.parse(await t.default.readFile(e,"utf8"))}async function s(){let e=await n(),t=e.agents?.defaults?.workspace;if(!t)throw Error("agents.defaults.workspace is not set in ~/.openclaw/openclaw.json");return t}async function i(){let e=await s();return a.default.join(e,"recipes")}async function o(){let e=await s(),r=a.default.join(e,"goals");try{if((await t.default.stat(r)).isDirectory())return r}catch{}return a.default.join(e,"notes","goals")}async function l(e){let t=r.default.homedir();if(!t)throw Error("Could not resolve home directory");return a.default.join(t,".openclaw",`workspace-${e}`)}function d(e,t){return"main"===t?a.default.resolve(e):a.default.resolve(e,"..",`workspace-${t}`)}function u(e){let t=e.replace(/\\/g,"/");if(!t||t.startsWith("/")||t.includes(".."))throw Error("Invalid file name");return t}async function p(){let e=await n(),t=e.plugins?.installs?.recipes?.installPath||e.plugins?.installs?.recipes?.sourcePath||e.plugins?.load?.paths?.[0];if(!t)throw Error("Could not determine recipes plugin install path from ~/.openclaw/openclaw.json");return a.default.join(t,"recipes","default")}e.s(["assertSafeRelativeFileName",()=>u,"getBuiltinRecipesDir",()=>p,"getTeamWorkspaceDir",()=>l,"getWorkspaceDir",()=>s,"getWorkspaceGoalsDir",()=>o,"getWorkspaceRecipesDir",()=>i,"readOpenClawConfig",()=>n,"teamDirFromBaseWorkspace",()=>d])},67751,e=>{"use strict";var t=e.i(47909),r=e.i(74017),a=e.i(96250),n=e.i(59756),s=e.i(61916),i=e.i(74677),o=e.i(69741),l=e.i(16795),d=e.i(87718),u=e.i(95169),p=e.i(47587),c=e.i(66012),f=e.i(70101),h=e.i(74838),x=e.i(10372),m=e.i(93695);e.i(52474);var g=e.i(220),w=e.i(12714),R=e.i(50227),v=e.i(89171),y=e.i(7367);async function E(e,{params:t}){let{teamId:r}=await t,a=await (0,y.getWorkspaceDir)(),n=(0,y.teamDirFromBaseWorkspace)(a,r),s=R.default.join(n,"roles"),i=[];try{i=await w.default.readdir(s)}catch{i=[]}let o=i.filter(e=>!e.startsWith(".")).sort();return v.NextResponse.json({assignees:o})}e.s(["GET",()=>E,"dynamic",0,"force-dynamic"],49584);var C=e.i(49584);let k=new t.AppRouteRouteModule({definition:{kind:r.RouteKind.APP_ROUTE,page:"/api/teams/[teamId]/tickets/assignees/route",pathname:"/api/teams/[teamId]/tickets/assignees",filename:"route",bundlePath:""},distDir:".next",relativeProjectDir:"",resolvedPagePath:"[project]/src/app/api/teams/[teamId]/tickets/assignees/route.ts",nextConfigOutput:"standalone",userland:C}),{workAsyncStorage:A,workUnitAsyncStorage:j,serverHooks:b}=k;function N(){return(0,a.patchFetch)({workAsyncStorage:A,workUnitAsyncStorage:j})}async function T(e,t,a){k.isDev&&(0,n.addRequestMeta)(e,"devRequestTimingInternalsEnd",process.hrtime.bigint());let w="/api/teams/[teamId]/tickets/assignees/route";w=w.replace(/\/index$/,"")||"/";let R=await k.prepare(e,t,{srcPage:w,multiZoneDraftMode:!1});if(!R)return t.statusCode=400,t.end("Bad Request"),null==a.waitUntil||a.waitUntil.call(a,Promise.resolve()),null;let{buildId:v,params:y,nextConfig:E,parsedUrl:C,isDraftMode:A,prerenderManifest:j,routerServerContext:b,isOnDemandRevalidate:N,revalidateOnlyGenerated:T,resolvedPathname:P,clientReferenceManifest:q,serverActionsManifest:O}=R,D=(0,o.normalizeAppPath)(w),S=!!(j.dynamicRoutes[D]||j.routes[P]),I=async()=>((null==b?void 0:b.render404)?await b.render404(e,t,C,!1):t.end("This page could not be found"),null);if(S&&!A){let e=!!j.routes[P],t=j.dynamicRoutes[D];if(t&&!1===t.fallback&&!e){if(E.experimental.adapterPath)return await I();throw new m.NoFallbackError}}let _=null;!S||k.isDev||A||(_="/index"===(_=P)?"/":_);let H=!0===k.isDev||!S,U=S&&!H;O&&q&&(0,i.setManifestsSingleton)({page:w,clientReferenceManifest:q,serverActionsManifest:O});let F=e.method||"GET",M=(0,s.getTracer)(),W=M.getActiveScopeSpan(),$={params:y,prerenderManifest:j,renderOpts:{experimental:{authInterrupts:!!E.experimental.authInterrupts},cacheComponents:!!E.cacheComponents,supportsDynamicResponse:H,incrementalCache:(0,n.getRequestMeta)(e,"incrementalCache"),cacheLifeProfiles:E.cacheLife,waitUntil:a.waitUntil,onClose:e=>{t.on("close",e)},onAfterTaskError:void 0,onInstrumentationRequestError:(t,r,a,n)=>k.onRequestError(e,t,a,n,b)},sharedContext:{buildId:v}},B=new l.NodeNextRequest(e),K=new l.NodeNextResponse(t),G=d.NextRequestAdapter.fromNodeNextRequest(B,(0,d.signalFromNodeResponse)(t));try{let i=async e=>k.handle(G,$).finally(()=>{if(!e)return;e.setAttributes({"http.status_code":t.statusCode,"next.rsc":!1});let r=M.getRootSpanAttributes();if(!r)return;if(r.get("next.span_type")!==u.BaseServerSpan.handleRequest)return void console.warn(`Unexpected root span type '${r.get("next.span_type")}'. Please report this Next.js issue https://github.com/vercel/next.js`);let a=r.get("next.route");if(a){let t=`${F} ${a}`;e.setAttributes({"next.route":a,"http.route":a,"next.span_name":t}),e.updateName(t)}else e.updateName(`${F} ${w}`)}),o=!!(0,n.getRequestMeta)(e,"minimalMode"),l=async n=>{var s,l;let d=async({previousCacheEntry:r})=>{try{if(!o&&N&&T&&!r)return t.statusCode=404,t.setHeader("x-nextjs-cache","REVALIDATED"),t.end("This page could not be found"),null;let s=await i(n);e.fetchMetrics=$.renderOpts.fetchMetrics;let l=$.renderOpts.pendingWaitUntil;l&&a.waitUntil&&(a.waitUntil(l),l=void 0);let d=$.renderOpts.collectedTags;if(!S)return await (0,c.sendResponse)(B,K,s,$.renderOpts.pendingWaitUntil),null;{let e=await s.blob(),t=(0,f.toNodeOutgoingHttpHeaders)(s.headers);d&&(t[x.NEXT_CACHE_TAGS_HEADER]=d),!t["content-type"]&&e.type&&(t["content-type"]=e.type);let r=void 0!==$.renderOpts.collectedRevalidate&&!($.renderOpts.collectedRevalidate>=x.INFINITE_CACHE)&&$.renderOpts.collectedRevalidate,a=void 0===$.renderOpts.collectedExpire||$.renderOpts.collectedExpire>=x.INFINITE_CACHE?void 0:$.renderOpts.collectedExpire;return{value:{kind:g.CachedRouteKind.APP_ROUTE,status:s.status,body:Buffer.from(await e.arrayBuffer()),headers:t},cacheControl:{revalidate:r,expire:a}}}}catch(t){throw(null==r?void 0:r.isStale)&&await k.onRequestError(e,t,{routerKind:"App Router",routePath:w,routeType:"route",revalidateReason:(0,p.getRevalidateReason)({isStaticGeneration:U,isOnDemandRevalidate:N})},!1,b),t}},u=await k.handleResponse({req:e,nextConfig:E,cacheKey:_,routeKind:r.RouteKind.APP_ROUTE,isFallback:!1,prerenderManifest:j,isRoutePPREnabled:!1,isOnDemandRevalidate:N,revalidateOnlyGenerated:T,responseGenerator:d,waitUntil:a.waitUntil,isMinimalMode:o});if(!S)return null;if((null==u||null==(s=u.value)?void 0:s.kind)!==g.CachedRouteKind.APP_ROUTE)throw Object.defineProperty(Error(`Invariant: app-route received invalid cache entry ${null==u||null==(l=u.value)?void 0:l.kind}`),"__NEXT_ERROR_CODE",{value:"E701",enumerable:!1,configurable:!0});o||t.setHeader("x-nextjs-cache",N?"REVALIDATED":u.isMiss?"MISS":u.isStale?"STALE":"HIT"),A&&t.setHeader("Cache-Control","private, no-cache, no-store, max-age=0, must-revalidate");let m=(0,f.fromNodeOutgoingHttpHeaders)(u.value.headers);return o&&S||m.delete(x.NEXT_CACHE_TAGS_HEADER),!u.cacheControl||t.getHeader("Cache-Control")||m.get("Cache-Control")||m.set("Cache-Control",(0,h.getCacheControlHeader)(u.cacheControl)),await (0,c.sendResponse)(B,K,new Response(u.value.body,{headers:m,status:u.value.status||200})),null};W?await l(W):await M.withPropagatedContext(e.headers,()=>M.trace(u.BaseServerSpan.handleRequest,{spanName:`${F} ${w}`,kind:s.SpanKind.SERVER,attributes:{"http.method":F,"http.target":e.url}},l))}catch(t){if(t instanceof m.NoFallbackError||await k.onRequestError(e,t,{routerKind:"App Router",routePath:D,routeType:"route",revalidateReason:(0,p.getRevalidateReason)({isStaticGeneration:U,isOnDemandRevalidate:N})},!1,b),S)throw t;return await (0,c.sendResponse)(B,K,new Response(null,{status:500})),null}}e.s(["handler",()=>T,"patchFetch",()=>N,"routeModule",()=>k,"serverHooks",()=>b,"workAsyncStorage",()=>A,"workUnitAsyncStorage",()=>j],67751)}];
2
2
 
3
3
  //# sourceMappingURL=%5Broot-of-the-server%5D__5aa1dc93._.js.map
@@ -1,3 +1,3 @@
1
- module.exports=[4730,a=>{a.v({name:"@jiggai/kitchen",version:"0.4.3",main:"openclaw/index.ts",description:"ClawKitchen - Web-based dashboard for OpenClaw agent teams, workflows, and automation",author:"@rjdjohnston · rjdjohnston",license:"Apache-2.0",repository:{type:"git",url:"https://github.com/JIGGAI/clawkitchen.git"},keywords:["openclaw","clawkitchen","dashboard","agents","workflows","plugin"],openclaw:{extensions:["./openclaw/index.ts"],compat:{pluginApi:">=1.0.0",pluginApiRange:">=2026.3"},build:{openclawVersion:"2026.3.28"}},scripts:{dev:"next dev",build:"NODE_ENV=production next build",postbuild:"node scripts/copy-standalone-static.mjs",start:"next start",lint:"eslint",test:"vitest","test:run":"vitest run",coverage:"vitest run --coverage",check:"npm run lint && npm run test:run","dup:check":"jscpd src --min-tokens 50 --min-lines 10 --reporters html,console","refactor:report":"node scripts/refactor-report.mjs","smoke:goals":"node scripts/goals-smoke.mjs",prepare:"husky || true",prepack:"npm run -s sync:plugin-version && npm run -s check:plugin-version","sync:plugin-version":"node scripts/sync-openclaw-plugin-version.mjs","check:plugin-version":"node scripts/check-openclaw-plugin-version.mjs",prepublishOnly:"npm run -s sync:plugin-version && npm run -s check:plugin-version"},publishConfig:{access:"public"},files:["openclaw/","openclaw.plugin.json","README.md","LICENSE","next.config.ts","next-env.d.ts","tsconfig.json","public/",".next/BUILD_ID",".next/server/",".next/static/",".next/required-server-files.json",".next/required-server-files.js",".next/routes-manifest.json",".next/prerender-manifest.json",".next/build-manifest.json",".next/app-path-routes-manifest.json",".next/package.json"],dependencies:{"@jiggai/kitchen-plugin-marketing":"^0.2.1","better-sqlite3":"^12.8.0","drizzle-kit":"^0.31.10","drizzle-orm":"^0.45.2",next:"16.1.6",react:"19.2.3","react-dom":"19.2.3","react-markdown":"^10.1.0","remark-gfm":"^4.0.1",yaml:"^2.8.2"},devDependencies:{"@tailwindcss/postcss":"^4","@testing-library/dom":"^10.4.1","@testing-library/react":"^16.3.2","@types/better-sqlite3":"^7.6.13","@types/node":"^20","@types/react":"^19","@types/react-dom":"^19","@vitejs/plugin-react":"^5.1.4","@vitest/coverage-v8":"^4.0.18",eslint:"^9","eslint-config-next":"16.1.6","eslint-plugin-sonarjs":"^4.0.0",husky:"^9.1.7",jscpd:"^4.0.8",jsdom:"^28.1.0","lint-staged":"^16.2.7",tailwindcss:"^4",typescript:"5.9.3","vite-tsconfig-paths":"^6.1.1",vitest:"^4.0.18"},"lint-staged":{"*.{ts,tsx}":"eslint --fix"}})},21133,a=>{"use strict";let b=String(a.i(4730).default.version??"");function c(){let a=b.trim();return a?`ClawKitchen (${a}-beta)`:"ClawKitchen"}a.s(["APP_VERSION",0,b,"getAppTitle",()=>c])},89578,a=>{a.v({className:"geist_a71539c9-module__T19VSG__className",variable:"geist_a71539c9-module__T19VSG__variable"})},35214,a=>{a.v({className:"geist_mono_8d43a2aa-module__8Li5zG__className",variable:"geist_mono_8d43a2aa-module__8Li5zG__variable"})},17917,a=>{"use strict";a.s(["AppShell",()=>b]);let b=(0,a.i(11857).registerClientReference)(function(){throw Error("Attempted to call AppShell() from the server but AppShell is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"[project]/src/components/AppShell.tsx <module evaluation>","AppShell")},43297,a=>{"use strict";a.s(["AppShell",()=>b]);let b=(0,a.i(11857).registerClientReference)(function(){throw Error("Attempted to call AppShell() from the server but AppShell is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"[project]/src/components/AppShell.tsx","AppShell")},56935,a=>{"use strict";a.i(17917);var b=a.i(43297);a.n(b)},27572,a=>{"use strict";var b=a.i(7997),c=a.i(21133),d=a.i(89578);let e={className:d.default.className,style:{fontFamily:"'Geist', 'Geist Fallback'",fontStyle:"normal"}};null!=d.default.variable&&(e.variable=d.default.variable);var f=a.i(35214);let g={className:f.default.className,style:{fontFamily:"'Geist Mono', 'Geist Mono Fallback'",fontStyle:"normal"}};null!=f.default.variable&&(g.variable=f.default.variable);var h=a.i(56935);async function i(){return{title:(0,c.getAppTitle)(),description:"Local-first UI for authoring ClawRecipes recipes and scaffolding agents/teams.",icons:{icon:[{url:"/favicon.ico",sizes:"any"},{url:"/favicon-16x16.png",sizes:"16x16",type:"image/png"},{url:"/favicon-32x32.png",sizes:"32x32",type:"image/png"}],apple:"/apple-touch-icon.png"}}}function j({children:a}){return(0,b.jsxs)("html",{lang:"en","data-theme":"dark",suppressHydrationWarning:!0,children:[(0,b.jsx)("head",{}),(0,b.jsx)("body",{suppressHydrationWarning:!0,className:`${e.variable} ${g.variable} antialiased`,children:(0,b.jsx)(h.AppShell,{children:a})})]})}a.s(["default",()=>j,"generateMetadata",()=>i],27572)}];
1
+ module.exports=[4730,a=>{a.v({name:"@jiggai/kitchen",version:"0.4.5",main:"openclaw/index.ts",description:"ClawKitchen - Web-based dashboard for OpenClaw agent teams, workflows, and automation",author:"@rjdjohnston · rjdjohnston",license:"Apache-2.0",repository:{type:"git",url:"https://github.com/JIGGAI/clawkitchen.git"},keywords:["openclaw","clawkitchen","dashboard","agents","workflows","plugin"],openclaw:{extensions:["./openclaw/index.ts"],compat:{pluginApi:">=1.0.0",pluginApiRange:">=2026.3"},build:{openclawVersion:"2026.3.28"}},scripts:{dev:"next dev",build:"NODE_ENV=production next build",postbuild:"node scripts/copy-standalone-static.mjs",start:"next start",lint:"eslint",test:"vitest","test:run":"vitest run",coverage:"vitest run --coverage",check:"npm run lint && npm run test:run","dup:check":"jscpd src --min-tokens 50 --min-lines 10 --reporters html,console","refactor:report":"node scripts/refactor-report.mjs","smoke:goals":"node scripts/goals-smoke.mjs",prepare:"husky || true",prepack:"npm run -s sync:plugin-version && npm run -s check:plugin-version","sync:plugin-version":"node scripts/sync-openclaw-plugin-version.mjs","check:plugin-version":"node scripts/check-openclaw-plugin-version.mjs",prepublishOnly:"npm run -s sync:plugin-version && npm run -s check:plugin-version"},publishConfig:{access:"public"},files:["openclaw/","openclaw.plugin.json","README.md","LICENSE","next.config.ts","next-env.d.ts","tsconfig.json","public/",".next/BUILD_ID",".next/server/",".next/static/",".next/required-server-files.json",".next/required-server-files.js",".next/routes-manifest.json",".next/prerender-manifest.json",".next/build-manifest.json",".next/app-path-routes-manifest.json",".next/package.json"],dependencies:{"better-sqlite3":"^12.8.0","drizzle-kit":"^0.31.10","drizzle-orm":"^0.45.2",next:"16.1.6",react:"19.2.3","react-dom":"19.2.3","react-markdown":"^10.1.0","remark-gfm":"^4.0.1",yaml:"^2.8.2"},devDependencies:{"@tailwindcss/postcss":"^4","@testing-library/dom":"^10.4.1","@testing-library/react":"^16.3.2","@types/better-sqlite3":"^7.6.13","@types/node":"^20","@types/react":"^19","@types/react-dom":"^19","@vitejs/plugin-react":"^5.1.4","@vitest/coverage-v8":"^4.0.18",eslint:"^9","eslint-config-next":"16.1.6","eslint-plugin-sonarjs":"^4.0.0",husky:"^9.1.7",jscpd:"^4.0.8",jsdom:"^28.1.0","lint-staged":"^16.2.7",tailwindcss:"^4",typescript:"5.9.3","vite-tsconfig-paths":"^6.1.1",vitest:"^4.0.18"},"lint-staged":{"*.{ts,tsx}":"eslint --fix"}})},21133,a=>{"use strict";let b=String(a.i(4730).default.version??"");function c(){let a=b.trim();return a?`ClawKitchen (${a}-beta)`:"ClawKitchen"}a.s(["APP_VERSION",0,b,"getAppTitle",()=>c])},89578,a=>{a.v({className:"geist_a71539c9-module__T19VSG__className",variable:"geist_a71539c9-module__T19VSG__variable"})},35214,a=>{a.v({className:"geist_mono_8d43a2aa-module__8Li5zG__className",variable:"geist_mono_8d43a2aa-module__8Li5zG__variable"})},17917,a=>{"use strict";a.s(["AppShell",()=>b]);let b=(0,a.i(11857).registerClientReference)(function(){throw Error("Attempted to call AppShell() from the server but AppShell is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"[project]/src/components/AppShell.tsx <module evaluation>","AppShell")},43297,a=>{"use strict";a.s(["AppShell",()=>b]);let b=(0,a.i(11857).registerClientReference)(function(){throw Error("Attempted to call AppShell() from the server but AppShell is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"[project]/src/components/AppShell.tsx","AppShell")},56935,a=>{"use strict";a.i(17917);var b=a.i(43297);a.n(b)},27572,a=>{"use strict";var b=a.i(7997),c=a.i(21133),d=a.i(89578);let e={className:d.default.className,style:{fontFamily:"'Geist', 'Geist Fallback'",fontStyle:"normal"}};null!=d.default.variable&&(e.variable=d.default.variable);var f=a.i(35214);let g={className:f.default.className,style:{fontFamily:"'Geist Mono', 'Geist Mono Fallback'",fontStyle:"normal"}};null!=f.default.variable&&(g.variable=f.default.variable);var h=a.i(56935);async function i(){return{title:(0,c.getAppTitle)(),description:"Local-first UI for authoring ClawRecipes recipes and scaffolding agents/teams.",icons:{icon:[{url:"/favicon.ico",sizes:"any"},{url:"/favicon-16x16.png",sizes:"16x16",type:"image/png"},{url:"/favicon-32x32.png",sizes:"32x32",type:"image/png"}],apple:"/apple-touch-icon.png"}}}function j({children:a}){return(0,b.jsxs)("html",{lang:"en","data-theme":"dark",suppressHydrationWarning:!0,children:[(0,b.jsx)("head",{}),(0,b.jsx)("body",{suppressHydrationWarning:!0,className:`${e.variable} ${g.variable} antialiased`,children:(0,b.jsx)(h.AppShell,{children:a})})]})}a.s(["default",()=>j,"generateMetadata",()=>i],27572)}];
2
2
 
3
3
  //# sourceMappingURL=%5Broot-of-the-server%5D__3b880807._.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["turbopack:///[project]/package.json","../../../../src/lib/app-info.ts","turbopack:///[next]/internal/font/google/geist_a71539c9.module.css [app-rsc] (css module)","turbopack:///[next]/internal/font/google/geist_mono_8d43a2aa.module.css [app-rsc] (css module)","../../../../src/components/AppShell.tsx/__nextjs-internal-proxy.mjs","../../../../src/app/layout.tsx","turbopack:///[next]/internal/font/google/geist_a71539c9.js","turbopack:///[next]/internal/font/google/geist_mono_8d43a2aa.js"],"sourcesContent":["{\"name\":\"@jiggai/kitchen\",\"version\":\"0.4.3\",\"main\":\"openclaw/index.ts\",\"description\":\"ClawKitchen - Web-based dashboard for OpenClaw agent teams, workflows, and automation\",\"author\":\"@rjdjohnston · rjdjohnston\",\"license\":\"Apache-2.0\",\"repository\":{\"type\":\"git\",\"url\":\"https://github.com/JIGGAI/clawkitchen.git\"},\"keywords\":[\"openclaw\",\"clawkitchen\",\"dashboard\",\"agents\",\"workflows\",\"plugin\"],\"openclaw\":{\"extensions\":[\"./openclaw/index.ts\"],\"compat\":{\"pluginApi\":\">=1.0.0\",\"pluginApiRange\":\">=2026.3\"},\"build\":{\"openclawVersion\":\"2026.3.28\"}},\"scripts\":{\"dev\":\"next dev\",\"build\":\"NODE_ENV=production next build\",\"postbuild\":\"node scripts/copy-standalone-static.mjs\",\"start\":\"next start\",\"lint\":\"eslint\",\"test\":\"vitest\",\"test:run\":\"vitest run\",\"coverage\":\"vitest run --coverage\",\"check\":\"npm run lint && npm run test:run\",\"dup:check\":\"jscpd src --min-tokens 50 --min-lines 10 --reporters html,console\",\"refactor:report\":\"node scripts/refactor-report.mjs\",\"smoke:goals\":\"node scripts/goals-smoke.mjs\",\"prepare\":\"husky || true\",\"prepack\":\"npm run -s sync:plugin-version && npm run -s check:plugin-version\",\"sync:plugin-version\":\"node scripts/sync-openclaw-plugin-version.mjs\",\"check:plugin-version\":\"node scripts/check-openclaw-plugin-version.mjs\",\"prepublishOnly\":\"npm run -s sync:plugin-version && npm run -s check:plugin-version\"},\"publishConfig\":{\"access\":\"public\"},\"files\":[\"openclaw/\",\"openclaw.plugin.json\",\"README.md\",\"LICENSE\",\"next.config.ts\",\"next-env.d.ts\",\"tsconfig.json\",\"public/\",\".next/BUILD_ID\",\".next/server/\",\".next/static/\",\".next/required-server-files.json\",\".next/required-server-files.js\",\".next/routes-manifest.json\",\".next/prerender-manifest.json\",\".next/build-manifest.json\",\".next/app-path-routes-manifest.json\",\".next/package.json\"],\"dependencies\":{\"@jiggai/kitchen-plugin-marketing\":\"^0.2.1\",\"better-sqlite3\":\"^12.8.0\",\"drizzle-kit\":\"^0.31.10\",\"drizzle-orm\":\"^0.45.2\",\"next\":\"16.1.6\",\"react\":\"19.2.3\",\"react-dom\":\"19.2.3\",\"react-markdown\":\"^10.1.0\",\"remark-gfm\":\"^4.0.1\",\"yaml\":\"^2.8.2\"},\"devDependencies\":{\"@tailwindcss/postcss\":\"^4\",\"@testing-library/dom\":\"^10.4.1\",\"@testing-library/react\":\"^16.3.2\",\"@types/better-sqlite3\":\"^7.6.13\",\"@types/node\":\"^20\",\"@types/react\":\"^19\",\"@types/react-dom\":\"^19\",\"@vitejs/plugin-react\":\"^5.1.4\",\"@vitest/coverage-v8\":\"^4.0.18\",\"eslint\":\"^9\",\"eslint-config-next\":\"16.1.6\",\"eslint-plugin-sonarjs\":\"^4.0.0\",\"husky\":\"^9.1.7\",\"jscpd\":\"^4.0.8\",\"jsdom\":\"^28.1.0\",\"lint-staged\":\"^16.2.7\",\"tailwindcss\":\"^4\",\"typescript\":\"5.9.3\",\"vite-tsconfig-paths\":\"^6.1.1\",\"vitest\":\"^4.0.18\"},\"lint-staged\":{\"*.{ts,tsx}\":\"eslint --fix\"}}","import pkg from \"../../package.json\";\n\n// Loaded once at module init (cached by Node/Next). Avoids per-render disk reads.\nexport const APP_VERSION = String((pkg as { version?: string }).version ?? \"\");\n\nexport function getAppTitle(): string {\n const v = APP_VERSION.trim();\n return v ? `ClawKitchen (${v}-beta)` : \"ClawKitchen\";\n}\n","__turbopack_context__.v({\n \"className\": \"geist_a71539c9-module__T19VSG__className\",\n \"variable\": \"geist_a71539c9-module__T19VSG__variable\",\n});\n","__turbopack_context__.v({\n \"className\": \"geist_mono_8d43a2aa-module__8Li5zG__className\",\n \"variable\": \"geist_mono_8d43a2aa-module__8Li5zG__variable\",\n});\n","// This file is generated by next-core EcmascriptClientReferenceModule.\nimport { registerClientReference } from \"react-server-dom-turbopack/server\";\nexport const AppShell = registerClientReference(\n function() { throw new Error(\"Attempted to call AppShell() from the server but AppShell is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.\"); },\n \"[project]/src/components/AppShell.tsx\",\n \"AppShell\",\n);\n","import type { Metadata } from \"next\";\nimport { getAppTitle } from \"@/lib/app-info\";\nimport { Geist, Geist_Mono } from \"next/font/google\";\nimport \"./globals.css\";\nimport { AppShell } from \"@/components/AppShell\";\n\nconst geistSans = Geist({\n variable: \"--font-geist-sans\",\n subsets: [\"latin\"],\n});\n\nconst geistMono = Geist_Mono({\n variable: \"--font-geist-mono\",\n subsets: [\"latin\"],\n});\n\nexport async function generateMetadata(): Promise<Metadata> {\n return {\n title: getAppTitle(),\n description: \"Local-first UI for authoring ClawRecipes recipes and scaffolding agents/teams.\",\n icons: {\n icon: [\n { url: \"/favicon.ico\", sizes: \"any\" },\n { url: \"/favicon-16x16.png\", sizes: \"16x16\", type: \"image/png\" },\n { url: \"/favicon-32x32.png\", sizes: \"32x32\", type: \"image/png\" },\n ],\n apple: \"/apple-touch-icon.png\",\n },\n };\n}\n\nexport default function RootLayout({\n children,\n}: Readonly<{\n children: React.ReactNode;\n}>) {\n return (\n <html lang=\"en\" data-theme=\"dark\" suppressHydrationWarning>\n <head />\n <body\n suppressHydrationWarning\n className={`${geistSans.variable} ${geistMono.variable} antialiased`}\n >\n <AppShell>{children}</AppShell>\n </body>\n </html>\n );\n}\n","import cssModule from \"@vercel/turbopack-next/internal/font/google/cssmodule.module.css?{%22path%22:%22layout.tsx%22,%22import%22:%22Geist%22,%22arguments%22:[{%22variable%22:%22--font-geist-sans%22,%22subsets%22:[%22latin%22]}],%22variableName%22:%22geistSans%22}\";\nconst fontData = {\n className: cssModule.className,\n style: {\n fontFamily: \"'Geist', 'Geist Fallback'\",\n fontStyle: \"normal\",\n\n },\n};\n\nif (cssModule.variable != null) {\n fontData.variable = cssModule.variable;\n}\n\nexport default fontData;\n","import cssModule from \"@vercel/turbopack-next/internal/font/google/cssmodule.module.css?{%22path%22:%22layout.tsx%22,%22import%22:%22Geist_Mono%22,%22arguments%22:[{%22variable%22:%22--font-geist-mono%22,%22subsets%22:[%22latin%22]}],%22variableName%22:%22geistMono%22}\";\nconst fontData = {\n className: cssModule.className,\n style: {\n fontFamily: \"'Geist Mono', 'Geist Mono Fallback'\",\n fontStyle: \"normal\",\n\n },\n};\n\nif (cssModule.variable != null) {\n fontData.variable = cssModule.variable;\n}\n\nexport default fontData;\n"],"names":[],"mappings":"yBAAA,EAAA,CAAA,CAAA,CAAA,KAAA,kBAAA,QAAA,QAAA,KAAA,oBAAA,YAAA,wFAAA,OAAA,6BAAA,QAAA,aAAA,WAAA,CAAA,KAAA,MAAA,IAAA,2CAAA,EAAA,SAAA,CAAA,WAAA,cAAA,YAAA,SAAA,YAAA,SAAA,CAAA,SAAA,CAAA,WAAA,CAAA,sBAAA,CAAA,OAAA,CAAA,UAAA,UAAA,eAAA,UAAA,EAAA,MAAA,CAAA,gBAAA,WAAA,CAAA,EAAA,QAAA,CAAA,IAAA,WAAA,MAAA,iCAAA,UAAA,0CAAA,MAAA,aAAA,KAAA,SAAA,KAAA,SAAA,WAAA,aAAA,SAAA,wBAAA,MAAA,mCAAA,YAAA,oEAAA,kBAAA,mCAAA,cAAA,+BAAA,QAAA,gBAAA,QAAA,oEAAA,sBAAA,gDAAA,uBAAA,iDAAA,eAAA,mEAAA,EAAA,cAAA,CAAA,OAAA,QAAA,EAAA,MAAA,CAAA,YAAA,uBAAA,YAAA,UAAA,iBAAA,gBAAA,gBAAA,UAAA,iBAAA,gBAAA,gBAAA,mCAAA,iCAAA,6BAAA,gCAAA,4BAAA,sCAAA,qBAAA,CAAA,aAAA,CAAA,mCAAA,SAAA,iBAAA,UAAA,cAAA,WAAA,cAAA,UAAA,KAAA,SAAA,MAAA,SAAA,YAAA,SAAA,iBAAA,UAAA,aAAA,SAAA,KAAA,QAAA,EAAA,gBAAA,CAAA,uBAAA,KAAA,uBAAA,UAAA,yBAAA,UAAA,wBAAA,UAAA,cAAA,MAAA,eAAA,MAAA,mBAAA,MAAA,uBAAA,SAAA,sBAAA,UAAA,OAAA,KAAA,qBAAA,SAAA,wBAAA,SAAA,MAAA,SAAA,MAAA,SAAA,MAAA,UAAA,cAAA,UAAA,YAAA,KAAA,WAAA,QAAA,sBAAA,SAAA,OAAA,SAAA,EAAA,cAAA,CAAA,aAAA,cAAA,CAAA,E,yBCGO,IAAM,EAAc,OAH3B,AAGmC,EAHnC,CAAA,CAAA,MAGmC,OAAG,CAA0B,OAAO,EAAI,IAEpE,SAAS,IACd,IAAM,EAAI,EAAY,IAAI,GAC1B,OAAO,EAAI,CAAC,aAAa,EAAE,EAAE,MAAM,CAAC,CAAG,aACzC,yDCRA,EAAA,CAAA,CAAA,CACA,UAAA,2CACA,SAAA,yCACA,cCHA,EAAA,CAAA,CAAA,CACA,UAAA,gDACA,SAAA,8CACA,mDCDO,IAAM,EAAW,CAAA,EAAA,AADxB,EAAA,CAAA,CAAA,OACwB,uBAAA,AAAuB,EAC3C,WAAa,MAAM,AAAI,MAAM,8NAAgO,EAC7P,4DACA,4DAHG,IAAM,EAAW,CAAA,EADxB,AACwB,EADxB,CAAA,CAAA,OACwB,uBAAA,AAAuB,EAC3C,WAAa,MAAM,AAAI,MAAM,8NAAgO,EAC7P,wCACA,+GCJJ,EAAA,EAAA,CAAA,CAAA,OCDA,EAAA,EAAA,CAAA,CAAA,OACA,IAAM,EAAW,CACb,UAAW,EAAA,OAAS,CAAC,SAAS,CAC9B,MAAO,CACH,WAAY,4BACZ,UAAW,QAEf,CACJ,CAE0B,MAAM,CAA5B,EAAA,OAAS,CAAC,QAAQ,GAClB,EAAS,QAAQ,CAAG,EAAA,OAAS,CAAC,QAAA,AAAQ,ECX1C,IAAA,EAAA,EAAA,CAAA,CAAA,OACA,IAAM,EAAW,CACb,UAAW,EAAA,OAAS,CAAC,SAAS,CAC9B,MAAO,CACH,WAAY,sCACZ,UAAW,QAEf,CACJ,CAE0B,MAAM,CAA5B,EAAA,OAAS,CAAC,QAAQ,GAClB,EAAS,QAAQ,CAAG,EAAA,OAAS,CAAC,QAAA,AAAQ,EFP1C,IAAA,EAAA,EAAA,CAAA,CAAA,OAYO,eAAe,IACpB,MAAO,CACL,MAAO,CAAA,EAAA,EAAA,WAAA,AAAW,IAClB,YAAa,iFACb,MAAO,CACL,KAAM,CACJ,CAAE,IAAK,eAAgB,MAAO,KAAM,EACpC,CAAE,IAAK,qBAAsB,MAAO,QAAS,KAAM,WAAY,EAC/D,CAAE,IAAK,qBAAsB,MAAO,QAAS,KAAM,WAAY,EAChE,CACD,MAAO,uBACT,CACF,CACF,CAEe,SAAS,EAAW,UACjC,CAAQ,CAGR,EACA,MACE,CAAA,EAAA,EAAA,IAAA,EAAC,OAAA,CAAK,KAAK,KAAK,aAAW,OAAO,wBAAwB,CAAA,CAAA,YACxD,CAAA,EAAA,EAAA,GAAA,EAAC,OAAA,CAAA,GACD,CAAA,EAAA,EAAA,GAAA,EAAC,OAAA,CACC,wBAAwB,CAAA,CAAA,EACxB,UAAW,CAAA,EC3BJ,AD2BO,EAAU,QAAQ,CAAC,CAAC,EE3B3B,AF2B6B,EAAU,QAAQ,CAAC,YAAY,CAAC,UAEpE,CAAA,EAAA,EAAA,GAAA,EAAC,EAAA,QAAQ,CAAA,UAAE,QAInB","ignoreList":[2,3,4,6,7]}
1
+ {"version":3,"sources":["turbopack:///[project]/package.json","../../../../src/lib/app-info.ts","turbopack:///[next]/internal/font/google/geist_a71539c9.module.css [app-rsc] (css module)","turbopack:///[next]/internal/font/google/geist_mono_8d43a2aa.module.css [app-rsc] (css module)","../../../../src/components/AppShell.tsx/__nextjs-internal-proxy.mjs","../../../../src/app/layout.tsx","turbopack:///[next]/internal/font/google/geist_a71539c9.js","turbopack:///[next]/internal/font/google/geist_mono_8d43a2aa.js"],"sourcesContent":["{\"name\":\"@jiggai/kitchen\",\"version\":\"0.4.5\",\"main\":\"openclaw/index.ts\",\"description\":\"ClawKitchen - Web-based dashboard for OpenClaw agent teams, workflows, and automation\",\"author\":\"@rjdjohnston · rjdjohnston\",\"license\":\"Apache-2.0\",\"repository\":{\"type\":\"git\",\"url\":\"https://github.com/JIGGAI/clawkitchen.git\"},\"keywords\":[\"openclaw\",\"clawkitchen\",\"dashboard\",\"agents\",\"workflows\",\"plugin\"],\"openclaw\":{\"extensions\":[\"./openclaw/index.ts\"],\"compat\":{\"pluginApi\":\">=1.0.0\",\"pluginApiRange\":\">=2026.3\"},\"build\":{\"openclawVersion\":\"2026.3.28\"}},\"scripts\":{\"dev\":\"next dev\",\"build\":\"NODE_ENV=production next build\",\"postbuild\":\"node scripts/copy-standalone-static.mjs\",\"start\":\"next start\",\"lint\":\"eslint\",\"test\":\"vitest\",\"test:run\":\"vitest run\",\"coverage\":\"vitest run --coverage\",\"check\":\"npm run lint && npm run test:run\",\"dup:check\":\"jscpd src --min-tokens 50 --min-lines 10 --reporters html,console\",\"refactor:report\":\"node scripts/refactor-report.mjs\",\"smoke:goals\":\"node scripts/goals-smoke.mjs\",\"prepare\":\"husky || true\",\"prepack\":\"npm run -s sync:plugin-version && npm run -s check:plugin-version\",\"sync:plugin-version\":\"node scripts/sync-openclaw-plugin-version.mjs\",\"check:plugin-version\":\"node scripts/check-openclaw-plugin-version.mjs\",\"prepublishOnly\":\"npm run -s sync:plugin-version && npm run -s check:plugin-version\"},\"publishConfig\":{\"access\":\"public\"},\"files\":[\"openclaw/\",\"openclaw.plugin.json\",\"README.md\",\"LICENSE\",\"next.config.ts\",\"next-env.d.ts\",\"tsconfig.json\",\"public/\",\".next/BUILD_ID\",\".next/server/\",\".next/static/\",\".next/required-server-files.json\",\".next/required-server-files.js\",\".next/routes-manifest.json\",\".next/prerender-manifest.json\",\".next/build-manifest.json\",\".next/app-path-routes-manifest.json\",\".next/package.json\"],\"dependencies\":{\"better-sqlite3\":\"^12.8.0\",\"drizzle-kit\":\"^0.31.10\",\"drizzle-orm\":\"^0.45.2\",\"next\":\"16.1.6\",\"react\":\"19.2.3\",\"react-dom\":\"19.2.3\",\"react-markdown\":\"^10.1.0\",\"remark-gfm\":\"^4.0.1\",\"yaml\":\"^2.8.2\"},\"devDependencies\":{\"@tailwindcss/postcss\":\"^4\",\"@testing-library/dom\":\"^10.4.1\",\"@testing-library/react\":\"^16.3.2\",\"@types/better-sqlite3\":\"^7.6.13\",\"@types/node\":\"^20\",\"@types/react\":\"^19\",\"@types/react-dom\":\"^19\",\"@vitejs/plugin-react\":\"^5.1.4\",\"@vitest/coverage-v8\":\"^4.0.18\",\"eslint\":\"^9\",\"eslint-config-next\":\"16.1.6\",\"eslint-plugin-sonarjs\":\"^4.0.0\",\"husky\":\"^9.1.7\",\"jscpd\":\"^4.0.8\",\"jsdom\":\"^28.1.0\",\"lint-staged\":\"^16.2.7\",\"tailwindcss\":\"^4\",\"typescript\":\"5.9.3\",\"vite-tsconfig-paths\":\"^6.1.1\",\"vitest\":\"^4.0.18\"},\"lint-staged\":{\"*.{ts,tsx}\":\"eslint --fix\"}}","import pkg from \"../../package.json\";\n\n// Loaded once at module init (cached by Node/Next). Avoids per-render disk reads.\nexport const APP_VERSION = String((pkg as { version?: string }).version ?? \"\");\n\nexport function getAppTitle(): string {\n const v = APP_VERSION.trim();\n return v ? `ClawKitchen (${v}-beta)` : \"ClawKitchen\";\n}\n","__turbopack_context__.v({\n \"className\": \"geist_a71539c9-module__T19VSG__className\",\n \"variable\": \"geist_a71539c9-module__T19VSG__variable\",\n});\n","__turbopack_context__.v({\n \"className\": \"geist_mono_8d43a2aa-module__8Li5zG__className\",\n \"variable\": \"geist_mono_8d43a2aa-module__8Li5zG__variable\",\n});\n","// This file is generated by next-core EcmascriptClientReferenceModule.\nimport { registerClientReference } from \"react-server-dom-turbopack/server\";\nexport const AppShell = registerClientReference(\n function() { throw new Error(\"Attempted to call AppShell() from the server but AppShell is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.\"); },\n \"[project]/src/components/AppShell.tsx\",\n \"AppShell\",\n);\n","import type { Metadata } from \"next\";\nimport { getAppTitle } from \"@/lib/app-info\";\nimport { Geist, Geist_Mono } from \"next/font/google\";\nimport \"./globals.css\";\nimport { AppShell } from \"@/components/AppShell\";\n\nconst geistSans = Geist({\n variable: \"--font-geist-sans\",\n subsets: [\"latin\"],\n});\n\nconst geistMono = Geist_Mono({\n variable: \"--font-geist-mono\",\n subsets: [\"latin\"],\n});\n\nexport async function generateMetadata(): Promise<Metadata> {\n return {\n title: getAppTitle(),\n description: \"Local-first UI for authoring ClawRecipes recipes and scaffolding agents/teams.\",\n icons: {\n icon: [\n { url: \"/favicon.ico\", sizes: \"any\" },\n { url: \"/favicon-16x16.png\", sizes: \"16x16\", type: \"image/png\" },\n { url: \"/favicon-32x32.png\", sizes: \"32x32\", type: \"image/png\" },\n ],\n apple: \"/apple-touch-icon.png\",\n },\n };\n}\n\nexport default function RootLayout({\n children,\n}: Readonly<{\n children: React.ReactNode;\n}>) {\n return (\n <html lang=\"en\" data-theme=\"dark\" suppressHydrationWarning>\n <head />\n <body\n suppressHydrationWarning\n className={`${geistSans.variable} ${geistMono.variable} antialiased`}\n >\n <AppShell>{children}</AppShell>\n </body>\n </html>\n );\n}\n","import cssModule from \"@vercel/turbopack-next/internal/font/google/cssmodule.module.css?{%22path%22:%22layout.tsx%22,%22import%22:%22Geist%22,%22arguments%22:[{%22variable%22:%22--font-geist-sans%22,%22subsets%22:[%22latin%22]}],%22variableName%22:%22geistSans%22}\";\nconst fontData = {\n className: cssModule.className,\n style: {\n fontFamily: \"'Geist', 'Geist Fallback'\",\n fontStyle: \"normal\",\n\n },\n};\n\nif (cssModule.variable != null) {\n fontData.variable = cssModule.variable;\n}\n\nexport default fontData;\n","import cssModule from \"@vercel/turbopack-next/internal/font/google/cssmodule.module.css?{%22path%22:%22layout.tsx%22,%22import%22:%22Geist_Mono%22,%22arguments%22:[{%22variable%22:%22--font-geist-mono%22,%22subsets%22:[%22latin%22]}],%22variableName%22:%22geistMono%22}\";\nconst fontData = {\n className: cssModule.className,\n style: {\n fontFamily: \"'Geist Mono', 'Geist Mono Fallback'\",\n fontStyle: \"normal\",\n\n },\n};\n\nif (cssModule.variable != null) {\n fontData.variable = cssModule.variable;\n}\n\nexport default fontData;\n"],"names":[],"mappings":"yBAAA,EAAA,CAAA,CAAA,CAAA,KAAA,kBAAA,QAAA,QAAA,KAAA,oBAAA,YAAA,wFAAA,OAAA,6BAAA,QAAA,aAAA,WAAA,CAAA,KAAA,MAAA,IAAA,2CAAA,EAAA,SAAA,CAAA,WAAA,cAAA,YAAA,SAAA,YAAA,SAAA,CAAA,SAAA,CAAA,WAAA,CAAA,sBAAA,CAAA,OAAA,CAAA,UAAA,UAAA,eAAA,UAAA,EAAA,MAAA,CAAA,gBAAA,WAAA,CAAA,EAAA,QAAA,CAAA,IAAA,WAAA,MAAA,iCAAA,UAAA,0CAAA,MAAA,aAAA,KAAA,SAAA,KAAA,SAAA,WAAA,aAAA,SAAA,wBAAA,MAAA,mCAAA,YAAA,oEAAA,kBAAA,mCAAA,cAAA,+BAAA,QAAA,gBAAA,QAAA,oEAAA,sBAAA,gDAAA,uBAAA,iDAAA,eAAA,mEAAA,EAAA,cAAA,CAAA,OAAA,QAAA,EAAA,MAAA,CAAA,YAAA,uBAAA,YAAA,UAAA,iBAAA,gBAAA,gBAAA,UAAA,iBAAA,gBAAA,gBAAA,mCAAA,iCAAA,6BAAA,gCAAA,4BAAA,sCAAA,qBAAA,CAAA,aAAA,CAAA,iBAAA,UAAA,cAAA,WAAA,cAAA,UAAA,KAAA,SAAA,MAAA,SAAA,YAAA,SAAA,iBAAA,UAAA,aAAA,SAAA,KAAA,QAAA,EAAA,gBAAA,CAAA,uBAAA,KAAA,uBAAA,UAAA,yBAAA,UAAA,wBAAA,UAAA,cAAA,MAAA,eAAA,MAAA,mBAAA,MAAA,uBAAA,SAAA,sBAAA,UAAA,OAAA,KAAA,qBAAA,SAAA,wBAAA,SAAA,MAAA,SAAA,MAAA,SAAA,MAAA,UAAA,cAAA,UAAA,YAAA,KAAA,WAAA,QAAA,sBAAA,SAAA,OAAA,SAAA,EAAA,cAAA,CAAA,aAAA,cAAA,CAAA,E,yBCGO,IAAM,EAAc,OAH3B,AAGmC,EAHnC,CAAA,CAAA,MAGmC,OAAG,CAA0B,OAAO,EAAI,IAEpE,SAAS,IACd,IAAM,EAAI,EAAY,IAAI,GAC1B,OAAO,EAAI,CAAC,aAAa,EAAE,EAAE,MAAM,CAAC,CAAG,aACzC,yDCRA,EAAA,CAAA,CAAA,CACA,UAAA,2CACA,SAAA,yCACA,cCHA,EAAA,CAAA,CAAA,CACA,UAAA,gDACA,SAAA,8CACA,mDCDO,IAAM,EAAW,CAAA,EADxB,AACwB,EADxB,CAAA,CAAA,OACwB,uBAAA,AAAuB,EAC3C,WAAa,MAAM,AAAI,MAAM,8NAAgO,EAC7P,4DACA,4DAHG,IAAM,EAAW,CAAA,EADxB,AACwB,EADxB,CAAA,CAAA,OACwB,uBAAA,AAAuB,EAC3C,WAAa,MAAU,AAAJ,MAAU,8NAAgO,EAC7P,wCACA,+GCJJ,EAAA,EAAA,CAAA,CAAA,OCDA,EAAA,EAAA,CAAA,CAAA,OACA,IAAM,EAAW,CACb,UAAW,EAAA,OAAS,CAAC,SAAS,CAC9B,MAAO,CACH,WAAY,4BACZ,UAAW,QAEf,CACJ,CAE0B,MAAM,CAA5B,EAAA,OAAS,CAAC,QAAQ,GAClB,EAAS,QAAQ,CAAG,EAAA,OAAS,CAAC,QAAA,AAAQ,ECX1C,IAAA,EAAA,EAAA,CAAA,CAAA,OACA,IAAM,EAAW,CACb,UAAW,EAAA,OAAS,CAAC,SAAS,CAC9B,MAAO,CACH,WAAY,sCACZ,UAAW,QAEf,CACJ,CAE0B,MAAM,CAA5B,EAAA,OAAS,CAAC,QAAQ,GAClB,EAAS,QAAQ,CAAG,EAAA,OAAS,CAAC,QAAA,AAAQ,EFP1C,IAAA,EAAA,EAAA,CAAA,CAAA,OAYO,eAAe,IACpB,MAAO,CACL,MAAO,CAAA,EAAA,EAAA,WAAA,AAAW,IAClB,YAAa,iFACb,MAAO,CACL,KAAM,CACJ,CAAE,IAAK,eAAgB,MAAO,KAAM,EACpC,CAAE,IAAK,qBAAsB,MAAO,QAAS,KAAM,WAAY,EAC/D,CAAE,IAAK,qBAAsB,MAAO,QAAS,KAAM,WAAY,EAChE,CACD,MAAO,uBACT,CACF,CACF,CAEe,SAAS,EAAW,UACjC,CAAQ,CAGR,EACA,MACE,CAAA,EAAA,EAAA,IAAA,EAAC,OAAA,CAAK,KAAK,KAAK,aAAW,OAAO,wBAAwB,CAAA,CAAA,YACxD,CAAA,EAAA,EAAA,GAAA,EAAC,OAAA,CAAA,GACD,CAAA,EAAA,EAAA,GAAA,EAAC,OAAA,CACC,wBAAwB,CAAA,CAAA,EACxB,UAAW,CAAA,EC3BJ,AD2BO,EAAU,QAAQ,CAAC,CAAC,EE3B3B,AF2B6B,EAAU,QAAQ,CAAC,YAAY,CAAC,UAEpE,CAAA,EAAA,EAAA,GAAA,EAAC,EAAA,QAAQ,CAAA,UAAE,QAInB","ignoreList":[2,3,4,6,7]}
@@ -1 +1 @@
1
- <!DOCTYPE html><!--VKFMk3pnq7Ap2maFSb7KP--><html lang="en" data-theme="dark"><head><meta charSet="utf-8"/><meta name="viewport" content="width=device-width, initial-scale=1"/><link rel="stylesheet" href="/_next/static/chunks/fb008837ba324b34.css" data-precedence="next"/><link rel="preload" as="script" fetchPriority="low" href="/_next/static/chunks/8acd42df55d57556.js"/><script src="/_next/static/chunks/68a088aa49e6124a.js" async=""></script><script src="/_next/static/chunks/aebc3b6d791f68d2.js" async=""></script><script src="/_next/static/chunks/8aac543d98940eb3.js" async=""></script><script src="/_next/static/chunks/turbopack-bdd9478663f034d6.js" async=""></script><script src="/_next/static/chunks/f7f157ba542e1ae5.js" async=""></script><script src="/_next/static/chunks/ff1a16fafef87110.js" async=""></script><script src="/_next/static/chunks/0bd6498bda341889.js" async=""></script><script src="/_next/static/chunks/9c627cb11f73ac4c.js" async=""></script><meta name="robots" content="noindex"/><meta name="next-size-adjust" content=""/><title>ClawKitchen (0.4.3-beta)</title><meta name="description" content="Local-first UI for authoring ClawRecipes recipes and scaffolding agents/teams."/><link rel="manifest" href="/manifest.webmanifest"/><link rel="icon" href="/favicon.ico?favicon.0b3bf435.ico" sizes="256x256" type="image/x-icon"/><link rel="icon" href="/favicon.ico" sizes="any"/><link rel="icon" href="/favicon-16x16.png" sizes="16x16" type="image/png"/><link rel="icon" href="/favicon-32x32.png" sizes="32x32" type="image/png"/><link rel="apple-touch-icon" href="/apple-touch-icon.png"/><script src="/_next/static/chunks/a6dad97d9634a72d.js" noModule=""></script></head><body class="geist_a71539c9-module__T19VSG__variable geist_mono_8d43a2aa-module__8Li5zG__variable antialiased"><div hidden=""><!--$--><!--/$--></div><div class="flex h-dvh w-dvw overflow-hidden"><aside class="flex shrink-0 flex-col border-r border-[color:var(--ck-border-subtle)] bg-[color:var(--ck-bg-soft)]/95 backdrop-blur-[var(--ck-glass-blur)] w-62"><div class="flex h-14 items-center border-b border-[color:var(--ck-border-subtle)] justify-between gap-2 px-3"><a class="text-sm font-semibold tracking-tight" title="Home" href="/">Claw Kitchen</a><button class="grid h-9 w-9 place-items-center rounded-lg text-[color:var(--ck-text-secondary)] transition-colors hover:bg-white/10 hover:text-[color:var(--ck-text-primary)]" title="Collapse sidebar"><svg viewBox="0 0 24 24" class="h-5 w-5" fill="none" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"><rect x="3" y="3" width="18" height="18" rx="3"></rect><path d="M9 3v18"></path><path d="M14 14l-2-2 2-2"></path></svg></button></div><div class="border-b border-[color:var(--ck-border-subtle)] p-2"><div class="flex flex-col gap-1"><div class="px-2 pt-1 text-xs font-semibold uppercase tracking-wide text-[color:var(--ck-text-tertiary)]">Team</div><select class="w-full rounded-lg border border-white/10 bg-white/5 px-2 py-2 text-sm text-[color:var(--ck-text-primary)]"><option value="" selected="">All teams</option></select></div></div><nav class="min-h-0 flex-1 overflow-auto p-2"><div class="mt-2 px-2 pb-2 pt-2"></div><a title="Agents" class="flex items-center rounded-lg text-sm font-medium text-[color:var(--ck-text-secondary)] transition-colors hover:bg-white/5 hover:text-[color:var(--ck-text-primary)] gap-4 px-4 py-3" href="/"><span aria-hidden="true"><span class="grid size-7 place-items-center text-[color:var(--ck-text-secondary)]" aria-hidden="true"><svg viewBox="0 0 24 24" class="h-6 w-6" fill="none" stroke="currentColor" stroke-width="2"><path d="M3 11l9-8 9 8"></path><path d="M5 10v10h14V10"></path></svg></span></span><span>Agents</span></a><a title="Recipes" class="flex items-center rounded-lg text-sm font-medium text-[color:var(--ck-text-secondary)] transition-colors hover:bg-white/5 hover:text-[color:var(--ck-text-primary)] gap-4 px-4 py-3" href="/recipes"><span aria-hidden="true"><span class="grid size-7 place-items-center text-[color:var(--ck-text-secondary)]" aria-hidden="true"><svg viewBox="0 0 24 24" class="h-6 w-6" fill="none" stroke="currentColor" stroke-width="2"><path d="M6 4h12v16H6z"></path><path d="M9 8h6"></path><path d="M9 12h6"></path></svg></span></span><span>Recipes</span></a><a title="Tickets" class="flex items-center rounded-lg text-sm font-medium text-[color:var(--ck-text-secondary)] transition-colors hover:bg-white/5 hover:text-[color:var(--ck-text-primary)] gap-4 px-4 py-3" href="/tickets"><span aria-hidden="true"><span class="grid size-7 place-items-center text-[color:var(--ck-text-secondary)]" aria-hidden="true"><svg viewBox="0 0 24 24" class="h-6 w-6" fill="none" stroke="currentColor" stroke-width="2"><path d="M4 7h16v4a2 2 0 0 1 0 4v4H4v-4a2 2 0 0 0 0-4z"></path></svg></span></span><span>Tickets</span></a><a title="Channels" class="flex items-center rounded-lg text-sm font-medium text-[color:var(--ck-text-secondary)] transition-colors hover:bg-white/5 hover:text-[color:var(--ck-text-primary)] gap-4 px-4 py-3" href="/channels"><span aria-hidden="true"><span class="grid size-7 place-items-center text-[color:var(--ck-text-secondary)]" aria-hidden="true"><svg viewBox="0 0 24 24" class="h-6 w-6" fill="none" stroke="currentColor" stroke-width="2"><path d="M4 6h16"></path><path d="M4 12h16"></path><path d="M4 18h16"></path><path d="M7 9h0"></path></svg></span></span><span>Channels</span></a><a title="Goals" class="flex items-center rounded-lg text-sm font-medium text-[color:var(--ck-text-secondary)] transition-colors hover:bg-white/5 hover:text-[color:var(--ck-text-primary)] gap-4 px-4 py-3" href="/goals"><span aria-hidden="true"><span class="grid size-7 place-items-center text-[color:var(--ck-text-secondary)]" aria-hidden="true"><svg viewBox="0 0 24 24" class="h-6 w-6" fill="none" stroke="currentColor" stroke-width="2"><circle cx="12" cy="12" r="9"></circle><path d="M12 7v5l3 3"></path></svg></span></span><span>Goals</span></a><a title="Cron jobs" class="flex items-center rounded-lg text-sm font-medium text-[color:var(--ck-text-secondary)] transition-colors hover:bg-white/5 hover:text-[color:var(--ck-text-primary)] gap-4 px-4 py-3" href="/cron-jobs"><span aria-hidden="true"><span class="grid size-7 place-items-center text-[color:var(--ck-text-secondary)]" aria-hidden="true"><svg viewBox="0 0 24 24" class="h-6 w-6" fill="none" stroke="currentColor" stroke-width="2"><circle cx="12" cy="12" r="9"></circle><path d="M12 7v5"></path></svg></span></span><span>Cron jobs</span></a><a title="Runs" class="flex items-center rounded-lg text-sm font-medium text-[color:var(--ck-text-secondary)] transition-colors hover:bg-white/5 hover:text-[color:var(--ck-text-primary)] gap-4 px-4 py-3" href="/runs"><span aria-hidden="true"><span class="grid size-7 place-items-center text-[color:var(--ck-text-secondary)]" aria-hidden="true"><svg viewBox="0 0 24 24" class="h-6 w-6" fill="none" stroke="currentColor" stroke-width="2"><path d="M4 19h16"></path><path d="M6 16l4-4 3 3 5-7"></path><circle cx="10" cy="12" r="1"></circle><circle cx="13" cy="15" r="1"></circle><circle cx="18" cy="8" r="1"></circle></svg></span></span><span>Runs</span></a><a title="Settings" class="flex items-center rounded-lg text-sm font-medium text-[color:var(--ck-text-secondary)] transition-colors hover:bg-white/5 hover:text-[color:var(--ck-text-primary)] gap-4 px-4 py-3" href="/settings"><span aria-hidden="true"><span class="grid size-7 place-items-center text-[color:var(--ck-text-secondary)]" aria-hidden="true"><svg viewBox="0 0 24 24" class="h-6 w-6" fill="none" stroke="currentColor" stroke-width="2"><path d="M12 15.5a3.5 3.5 0 1 0 0-7 3.5 3.5 0 0 0 0 7Z"></path><path d="M19.4 15a7.9 7.9 0 0 0 .1-1l2-1.5-2-3.5-2.4.5a7.8 7.8 0 0 0-1.7-1L13.5 3h-4L8.6 6.5a7.8 7.8 0 0 0-1.7 1L4.5 7l-2 3.5 2 1.5a7.9 7.9 0 0 0 .1 1l-2 1.5 2 3.5 2.4-.5a7.8 7.8 0 0 0 1.7 1L10.5 21h4l.9-3.5a7.8 7.8 0 0 0 1.7-1l2.4.5 2-3.5-2-1.5Z"></path></svg></span></span><span>Settings</span></a></nav><div class="flex items-center justify-between gap-2 border-t border-[color:var(--ck-border-subtle)] p-2"><a href="https://docs.clawkitchen.ai" target="_blank" rel="noreferrer" class="rounded-lg px-3 py-2 text-sm font-medium text-[color:var(--ck-text-secondary)] hover:bg-white/5 hover:text-[color:var(--ck-text-primary)]" title="Docs">Docs</a></div></aside><div class="min-w-0 flex-1"><main class="h-full overflow-auto px-6 py-5 lg:px-10"><div class="mx-auto max-w-2xl px-6 py-12"><h1 class="text-xl font-semibold">Page not found</h1><p class="mt-2 text-sm text-[color:var(--ck-text-secondary)]">The page you requested does not exist.</p></div><!--$--><!--/$--></main></div></div><div aria-live="assertive" class="pointer-events-none fixed inset-0 z-[100] flex items-end px-4 py-6 sm:p-6"><div class="flex w-full flex-col items-start space-y-4"></div></div><script src="/_next/static/chunks/8acd42df55d57556.js" id="_R_" async=""></script><script>(self.__next_f=self.__next_f||[]).push([0])</script><script>self.__next_f.push([1,"1:\"$Sreact.fragment\"\n2:I[49830,[\"/_next/static/chunks/f7f157ba542e1ae5.js\"],\"AppShell\"]\n3:I[39756,[\"/_next/static/chunks/ff1a16fafef87110.js\",\"/_next/static/chunks/0bd6498bda341889.js\"],\"default\"]\n4:I[37457,[\"/_next/static/chunks/ff1a16fafef87110.js\",\"/_next/static/chunks/0bd6498bda341889.js\"],\"default\"]\n5:I[97367,[\"/_next/static/chunks/ff1a16fafef87110.js\",\"/_next/static/chunks/0bd6498bda341889.js\"],\"OutletBoundary\"]\n6:\"$Sreact.suspense\"\n8:I[97367,[\"/_next/static/chunks/ff1a16fafef87110.js\",\"/_next/static/chunks/0bd6498bda341889.js\"],\"ViewportBoundary\"]\na:I[97367,[\"/_next/static/chunks/ff1a16fafef87110.js\",\"/_next/static/chunks/0bd6498bda341889.js\"],\"MetadataBoundary\"]\nc:I[63491,[\"/_next/static/chunks/9c627cb11f73ac4c.js\"],\"default\"]\n:HL[\"/_next/static/chunks/fb008837ba324b34.css\",\"style\"]\n"])</script><script>self.__next_f.push([1,"0:{\"P\":null,\"b\":\"VKFMk3pnq7Ap2maFSb7KP\",\"c\":[\"\",\"_not-found\"],\"q\":\"\",\"i\":false,\"f\":[[[\"\",{\"children\":[\"/_not-found\",{\"children\":[\"__PAGE__\",{}]}]},\"$undefined\",\"$undefined\",true],[[\"$\",\"$1\",\"c\",{\"children\":[[[\"$\",\"link\",\"0\",{\"rel\":\"stylesheet\",\"href\":\"/_next/static/chunks/fb008837ba324b34.css\",\"precedence\":\"next\",\"crossOrigin\":\"$undefined\",\"nonce\":\"$undefined\"}],[\"$\",\"script\",\"script-0\",{\"src\":\"/_next/static/chunks/f7f157ba542e1ae5.js\",\"async\":true,\"nonce\":\"$undefined\"}]],[\"$\",\"html\",null,{\"lang\":\"en\",\"data-theme\":\"dark\",\"suppressHydrationWarning\":true,\"children\":[[\"$\",\"head\",null,{}],[\"$\",\"body\",null,{\"suppressHydrationWarning\":true,\"className\":\"geist_a71539c9-module__T19VSG__variable geist_mono_8d43a2aa-module__8Li5zG__variable antialiased\",\"children\":[\"$\",\"$L2\",null,{\"children\":[\"$\",\"$L3\",null,{\"parallelRouterKey\":\"children\",\"error\":\"$undefined\",\"errorStyles\":\"$undefined\",\"errorScripts\":\"$undefined\",\"template\":[\"$\",\"$L4\",null,{}],\"templateStyles\":\"$undefined\",\"templateScripts\":\"$undefined\",\"notFound\":[[\"$\",\"div\",null,{\"className\":\"mx-auto max-w-2xl px-6 py-12\",\"children\":[[\"$\",\"h1\",null,{\"className\":\"text-xl font-semibold\",\"children\":\"Page not found\"}],[\"$\",\"p\",null,{\"className\":\"mt-2 text-sm text-[color:var(--ck-text-secondary)]\",\"children\":\"The page you requested does not exist.\"}]]}],[]],\"forbidden\":\"$undefined\",\"unauthorized\":\"$undefined\"}]}]}]]}]]}],{\"children\":[[\"$\",\"$1\",\"c\",{\"children\":[null,[\"$\",\"$L3\",null,{\"parallelRouterKey\":\"children\",\"error\":\"$undefined\",\"errorStyles\":\"$undefined\",\"errorScripts\":\"$undefined\",\"template\":[\"$\",\"$L4\",null,{}],\"templateStyles\":\"$undefined\",\"templateScripts\":\"$undefined\",\"notFound\":\"$undefined\",\"forbidden\":\"$undefined\",\"unauthorized\":\"$undefined\"}]]}],{\"children\":[[\"$\",\"$1\",\"c\",{\"children\":[[\"$\",\"div\",null,{\"className\":\"mx-auto max-w-2xl px-6 py-12\",\"children\":[[\"$\",\"h1\",null,{\"className\":\"text-xl font-semibold\",\"children\":\"Page not found\"}],[\"$\",\"p\",null,{\"className\":\"mt-2 text-sm text-[color:var(--ck-text-secondary)]\",\"children\":\"The page you requested does not exist.\"}]]}],null,[\"$\",\"$L5\",null,{\"children\":[\"$\",\"$6\",null,{\"name\":\"Next.MetadataOutlet\",\"children\":\"$@7\"}]}]]}],{},null,false,false]},null,false,false]},null,false,false],[\"$\",\"$1\",\"h\",{\"children\":[[\"$\",\"meta\",null,{\"name\":\"robots\",\"content\":\"noindex\"}],[\"$\",\"$L8\",null,{\"children\":\"$L9\"}],[\"$\",\"div\",null,{\"hidden\":true,\"children\":[\"$\",\"$La\",null,{\"children\":[\"$\",\"$6\",null,{\"name\":\"Next.Metadata\",\"children\":\"$Lb\"}]}]}],[\"$\",\"meta\",null,{\"name\":\"next-size-adjust\",\"content\":\"\"}]]}],false]],\"m\":\"$undefined\",\"G\":[\"$c\",[]],\"S\":true}\n"])</script><script>self.__next_f.push([1,"9:[[\"$\",\"meta\",\"0\",{\"charSet\":\"utf-8\"}],[\"$\",\"meta\",\"1\",{\"name\":\"viewport\",\"content\":\"width=device-width, initial-scale=1\"}]]\n"])</script><script>self.__next_f.push([1,"d:I[27201,[\"/_next/static/chunks/ff1a16fafef87110.js\",\"/_next/static/chunks/0bd6498bda341889.js\"],\"IconMark\"]\n7:null\nb:[[\"$\",\"title\",\"0\",{\"children\":\"ClawKitchen (0.4.3-beta)\"}],[\"$\",\"meta\",\"1\",{\"name\":\"description\",\"content\":\"Local-first UI for authoring ClawRecipes recipes and scaffolding agents/teams.\"}],[\"$\",\"link\",\"2\",{\"rel\":\"manifest\",\"href\":\"/manifest.webmanifest\",\"crossOrigin\":\"$undefined\"}],[\"$\",\"link\",\"3\",{\"rel\":\"icon\",\"href\":\"/favicon.ico?favicon.0b3bf435.ico\",\"sizes\":\"256x256\",\"type\":\"image/x-icon\"}],[\"$\",\"link\",\"4\",{\"rel\":\"icon\",\"href\":\"/favicon.ico\",\"sizes\":\"any\"}],[\"$\",\"link\",\"5\",{\"rel\":\"icon\",\"href\":\"/favicon-16x16.png\",\"sizes\":\"16x16\",\"type\":\"image/png\"}],[\"$\",\"link\",\"6\",{\"rel\":\"icon\",\"href\":\"/favicon-32x32.png\",\"sizes\":\"32x32\",\"type\":\"image/png\"}],[\"$\",\"link\",\"7\",{\"rel\":\"apple-touch-icon\",\"href\":\"/apple-touch-icon.png\"}],[\"$\",\"$Ld\",\"8\",{}]]\n"])</script></body></html>
1
+ <!DOCTYPE html><!--mm0F9at4WhSZ8BVGvqrMK--><html lang="en" data-theme="dark"><head><meta charSet="utf-8"/><meta name="viewport" content="width=device-width, initial-scale=1"/><link rel="stylesheet" href="/_next/static/chunks/fb008837ba324b34.css" data-precedence="next"/><link rel="preload" as="script" fetchPriority="low" href="/_next/static/chunks/8acd42df55d57556.js"/><script src="/_next/static/chunks/68a088aa49e6124a.js" async=""></script><script src="/_next/static/chunks/aebc3b6d791f68d2.js" async=""></script><script src="/_next/static/chunks/8aac543d98940eb3.js" async=""></script><script src="/_next/static/chunks/turbopack-bdd9478663f034d6.js" async=""></script><script src="/_next/static/chunks/f7f157ba542e1ae5.js" async=""></script><script src="/_next/static/chunks/ff1a16fafef87110.js" async=""></script><script src="/_next/static/chunks/0bd6498bda341889.js" async=""></script><script src="/_next/static/chunks/9c627cb11f73ac4c.js" async=""></script><meta name="robots" content="noindex"/><meta name="next-size-adjust" content=""/><title>ClawKitchen (0.4.5-beta)</title><meta name="description" content="Local-first UI for authoring ClawRecipes recipes and scaffolding agents/teams."/><link rel="manifest" href="/manifest.webmanifest"/><link rel="icon" href="/favicon.ico?favicon.0b3bf435.ico" sizes="256x256" type="image/x-icon"/><link rel="icon" href="/favicon.ico" sizes="any"/><link rel="icon" href="/favicon-16x16.png" sizes="16x16" type="image/png"/><link rel="icon" href="/favicon-32x32.png" sizes="32x32" type="image/png"/><link rel="apple-touch-icon" href="/apple-touch-icon.png"/><script src="/_next/static/chunks/a6dad97d9634a72d.js" noModule=""></script></head><body class="geist_a71539c9-module__T19VSG__variable geist_mono_8d43a2aa-module__8Li5zG__variable antialiased"><div hidden=""><!--$--><!--/$--></div><div class="flex h-dvh w-dvw overflow-hidden"><aside class="flex shrink-0 flex-col border-r border-[color:var(--ck-border-subtle)] bg-[color:var(--ck-bg-soft)]/95 backdrop-blur-[var(--ck-glass-blur)] w-62"><div class="flex h-14 items-center border-b border-[color:var(--ck-border-subtle)] justify-between gap-2 px-3"><a class="text-sm font-semibold tracking-tight" title="Home" href="/">Claw Kitchen</a><button class="grid h-9 w-9 place-items-center rounded-lg text-[color:var(--ck-text-secondary)] transition-colors hover:bg-white/10 hover:text-[color:var(--ck-text-primary)]" title="Collapse sidebar"><svg viewBox="0 0 24 24" class="h-5 w-5" fill="none" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"><rect x="3" y="3" width="18" height="18" rx="3"></rect><path d="M9 3v18"></path><path d="M14 14l-2-2 2-2"></path></svg></button></div><div class="border-b border-[color:var(--ck-border-subtle)] p-2"><div class="flex flex-col gap-1"><div class="px-2 pt-1 text-xs font-semibold uppercase tracking-wide text-[color:var(--ck-text-tertiary)]">Team</div><select class="w-full rounded-lg border border-white/10 bg-white/5 px-2 py-2 text-sm text-[color:var(--ck-text-primary)]"><option value="" selected="">All teams</option></select></div></div><nav class="min-h-0 flex-1 overflow-auto p-2"><div class="mt-2 px-2 pb-2 pt-2"></div><a title="Agents" class="flex items-center rounded-lg text-sm font-medium text-[color:var(--ck-text-secondary)] transition-colors hover:bg-white/5 hover:text-[color:var(--ck-text-primary)] gap-4 px-4 py-3" href="/"><span aria-hidden="true"><span class="grid size-7 place-items-center text-[color:var(--ck-text-secondary)]" aria-hidden="true"><svg viewBox="0 0 24 24" class="h-6 w-6" fill="none" stroke="currentColor" stroke-width="2"><path d="M3 11l9-8 9 8"></path><path d="M5 10v10h14V10"></path></svg></span></span><span>Agents</span></a><a title="Recipes" class="flex items-center rounded-lg text-sm font-medium text-[color:var(--ck-text-secondary)] transition-colors hover:bg-white/5 hover:text-[color:var(--ck-text-primary)] gap-4 px-4 py-3" href="/recipes"><span aria-hidden="true"><span class="grid size-7 place-items-center text-[color:var(--ck-text-secondary)]" aria-hidden="true"><svg viewBox="0 0 24 24" class="h-6 w-6" fill="none" stroke="currentColor" stroke-width="2"><path d="M6 4h12v16H6z"></path><path d="M9 8h6"></path><path d="M9 12h6"></path></svg></span></span><span>Recipes</span></a><a title="Tickets" class="flex items-center rounded-lg text-sm font-medium text-[color:var(--ck-text-secondary)] transition-colors hover:bg-white/5 hover:text-[color:var(--ck-text-primary)] gap-4 px-4 py-3" href="/tickets"><span aria-hidden="true"><span class="grid size-7 place-items-center text-[color:var(--ck-text-secondary)]" aria-hidden="true"><svg viewBox="0 0 24 24" class="h-6 w-6" fill="none" stroke="currentColor" stroke-width="2"><path d="M4 7h16v4a2 2 0 0 1 0 4v4H4v-4a2 2 0 0 0 0-4z"></path></svg></span></span><span>Tickets</span></a><a title="Channels" class="flex items-center rounded-lg text-sm font-medium text-[color:var(--ck-text-secondary)] transition-colors hover:bg-white/5 hover:text-[color:var(--ck-text-primary)] gap-4 px-4 py-3" href="/channels"><span aria-hidden="true"><span class="grid size-7 place-items-center text-[color:var(--ck-text-secondary)]" aria-hidden="true"><svg viewBox="0 0 24 24" class="h-6 w-6" fill="none" stroke="currentColor" stroke-width="2"><path d="M4 6h16"></path><path d="M4 12h16"></path><path d="M4 18h16"></path><path d="M7 9h0"></path></svg></span></span><span>Channels</span></a><a title="Goals" class="flex items-center rounded-lg text-sm font-medium text-[color:var(--ck-text-secondary)] transition-colors hover:bg-white/5 hover:text-[color:var(--ck-text-primary)] gap-4 px-4 py-3" href="/goals"><span aria-hidden="true"><span class="grid size-7 place-items-center text-[color:var(--ck-text-secondary)]" aria-hidden="true"><svg viewBox="0 0 24 24" class="h-6 w-6" fill="none" stroke="currentColor" stroke-width="2"><circle cx="12" cy="12" r="9"></circle><path d="M12 7v5l3 3"></path></svg></span></span><span>Goals</span></a><a title="Cron jobs" class="flex items-center rounded-lg text-sm font-medium text-[color:var(--ck-text-secondary)] transition-colors hover:bg-white/5 hover:text-[color:var(--ck-text-primary)] gap-4 px-4 py-3" href="/cron-jobs"><span aria-hidden="true"><span class="grid size-7 place-items-center text-[color:var(--ck-text-secondary)]" aria-hidden="true"><svg viewBox="0 0 24 24" class="h-6 w-6" fill="none" stroke="currentColor" stroke-width="2"><circle cx="12" cy="12" r="9"></circle><path d="M12 7v5"></path></svg></span></span><span>Cron jobs</span></a><a title="Runs" class="flex items-center rounded-lg text-sm font-medium text-[color:var(--ck-text-secondary)] transition-colors hover:bg-white/5 hover:text-[color:var(--ck-text-primary)] gap-4 px-4 py-3" href="/runs"><span aria-hidden="true"><span class="grid size-7 place-items-center text-[color:var(--ck-text-secondary)]" aria-hidden="true"><svg viewBox="0 0 24 24" class="h-6 w-6" fill="none" stroke="currentColor" stroke-width="2"><path d="M4 19h16"></path><path d="M6 16l4-4 3 3 5-7"></path><circle cx="10" cy="12" r="1"></circle><circle cx="13" cy="15" r="1"></circle><circle cx="18" cy="8" r="1"></circle></svg></span></span><span>Runs</span></a><a title="Settings" class="flex items-center rounded-lg text-sm font-medium text-[color:var(--ck-text-secondary)] transition-colors hover:bg-white/5 hover:text-[color:var(--ck-text-primary)] gap-4 px-4 py-3" href="/settings"><span aria-hidden="true"><span class="grid size-7 place-items-center text-[color:var(--ck-text-secondary)]" aria-hidden="true"><svg viewBox="0 0 24 24" class="h-6 w-6" fill="none" stroke="currentColor" stroke-width="2"><path d="M12 15.5a3.5 3.5 0 1 0 0-7 3.5 3.5 0 0 0 0 7Z"></path><path d="M19.4 15a7.9 7.9 0 0 0 .1-1l2-1.5-2-3.5-2.4.5a7.8 7.8 0 0 0-1.7-1L13.5 3h-4L8.6 6.5a7.8 7.8 0 0 0-1.7 1L4.5 7l-2 3.5 2 1.5a7.9 7.9 0 0 0 .1 1l-2 1.5 2 3.5 2.4-.5a7.8 7.8 0 0 0 1.7 1L10.5 21h4l.9-3.5a7.8 7.8 0 0 0 1.7-1l2.4.5 2-3.5-2-1.5Z"></path></svg></span></span><span>Settings</span></a></nav><div class="flex items-center justify-between gap-2 border-t border-[color:var(--ck-border-subtle)] p-2"><a href="https://docs.clawkitchen.ai" target="_blank" rel="noreferrer" class="rounded-lg px-3 py-2 text-sm font-medium text-[color:var(--ck-text-secondary)] hover:bg-white/5 hover:text-[color:var(--ck-text-primary)]" title="Docs">Docs</a></div></aside><div class="min-w-0 flex-1"><main class="h-full overflow-auto px-6 py-5 lg:px-10"><div class="mx-auto max-w-2xl px-6 py-12"><h1 class="text-xl font-semibold">Page not found</h1><p class="mt-2 text-sm text-[color:var(--ck-text-secondary)]">The page you requested does not exist.</p></div><!--$--><!--/$--></main></div></div><div aria-live="assertive" class="pointer-events-none fixed inset-0 z-[100] flex items-end px-4 py-6 sm:p-6"><div class="flex w-full flex-col items-start space-y-4"></div></div><script src="/_next/static/chunks/8acd42df55d57556.js" id="_R_" async=""></script><script>(self.__next_f=self.__next_f||[]).push([0])</script><script>self.__next_f.push([1,"1:\"$Sreact.fragment\"\n2:I[49830,[\"/_next/static/chunks/f7f157ba542e1ae5.js\"],\"AppShell\"]\n3:I[39756,[\"/_next/static/chunks/ff1a16fafef87110.js\",\"/_next/static/chunks/0bd6498bda341889.js\"],\"default\"]\n4:I[37457,[\"/_next/static/chunks/ff1a16fafef87110.js\",\"/_next/static/chunks/0bd6498bda341889.js\"],\"default\"]\n5:I[97367,[\"/_next/static/chunks/ff1a16fafef87110.js\",\"/_next/static/chunks/0bd6498bda341889.js\"],\"OutletBoundary\"]\n6:\"$Sreact.suspense\"\n8:I[97367,[\"/_next/static/chunks/ff1a16fafef87110.js\",\"/_next/static/chunks/0bd6498bda341889.js\"],\"ViewportBoundary\"]\na:I[97367,[\"/_next/static/chunks/ff1a16fafef87110.js\",\"/_next/static/chunks/0bd6498bda341889.js\"],\"MetadataBoundary\"]\nc:I[63491,[\"/_next/static/chunks/9c627cb11f73ac4c.js\"],\"default\"]\n:HL[\"/_next/static/chunks/fb008837ba324b34.css\",\"style\"]\n"])</script><script>self.__next_f.push([1,"0:{\"P\":null,\"b\":\"mm0F9at4WhSZ8BVGvqrMK\",\"c\":[\"\",\"_not-found\"],\"q\":\"\",\"i\":false,\"f\":[[[\"\",{\"children\":[\"/_not-found\",{\"children\":[\"__PAGE__\",{}]}]},\"$undefined\",\"$undefined\",true],[[\"$\",\"$1\",\"c\",{\"children\":[[[\"$\",\"link\",\"0\",{\"rel\":\"stylesheet\",\"href\":\"/_next/static/chunks/fb008837ba324b34.css\",\"precedence\":\"next\",\"crossOrigin\":\"$undefined\",\"nonce\":\"$undefined\"}],[\"$\",\"script\",\"script-0\",{\"src\":\"/_next/static/chunks/f7f157ba542e1ae5.js\",\"async\":true,\"nonce\":\"$undefined\"}]],[\"$\",\"html\",null,{\"lang\":\"en\",\"data-theme\":\"dark\",\"suppressHydrationWarning\":true,\"children\":[[\"$\",\"head\",null,{}],[\"$\",\"body\",null,{\"suppressHydrationWarning\":true,\"className\":\"geist_a71539c9-module__T19VSG__variable geist_mono_8d43a2aa-module__8Li5zG__variable antialiased\",\"children\":[\"$\",\"$L2\",null,{\"children\":[\"$\",\"$L3\",null,{\"parallelRouterKey\":\"children\",\"error\":\"$undefined\",\"errorStyles\":\"$undefined\",\"errorScripts\":\"$undefined\",\"template\":[\"$\",\"$L4\",null,{}],\"templateStyles\":\"$undefined\",\"templateScripts\":\"$undefined\",\"notFound\":[[\"$\",\"div\",null,{\"className\":\"mx-auto max-w-2xl px-6 py-12\",\"children\":[[\"$\",\"h1\",null,{\"className\":\"text-xl font-semibold\",\"children\":\"Page not found\"}],[\"$\",\"p\",null,{\"className\":\"mt-2 text-sm text-[color:var(--ck-text-secondary)]\",\"children\":\"The page you requested does not exist.\"}]]}],[]],\"forbidden\":\"$undefined\",\"unauthorized\":\"$undefined\"}]}]}]]}]]}],{\"children\":[[\"$\",\"$1\",\"c\",{\"children\":[null,[\"$\",\"$L3\",null,{\"parallelRouterKey\":\"children\",\"error\":\"$undefined\",\"errorStyles\":\"$undefined\",\"errorScripts\":\"$undefined\",\"template\":[\"$\",\"$L4\",null,{}],\"templateStyles\":\"$undefined\",\"templateScripts\":\"$undefined\",\"notFound\":\"$undefined\",\"forbidden\":\"$undefined\",\"unauthorized\":\"$undefined\"}]]}],{\"children\":[[\"$\",\"$1\",\"c\",{\"children\":[[\"$\",\"div\",null,{\"className\":\"mx-auto max-w-2xl px-6 py-12\",\"children\":[[\"$\",\"h1\",null,{\"className\":\"text-xl font-semibold\",\"children\":\"Page not found\"}],[\"$\",\"p\",null,{\"className\":\"mt-2 text-sm text-[color:var(--ck-text-secondary)]\",\"children\":\"The page you requested does not exist.\"}]]}],null,[\"$\",\"$L5\",null,{\"children\":[\"$\",\"$6\",null,{\"name\":\"Next.MetadataOutlet\",\"children\":\"$@7\"}]}]]}],{},null,false,false]},null,false,false]},null,false,false],[\"$\",\"$1\",\"h\",{\"children\":[[\"$\",\"meta\",null,{\"name\":\"robots\",\"content\":\"noindex\"}],[\"$\",\"$L8\",null,{\"children\":\"$L9\"}],[\"$\",\"div\",null,{\"hidden\":true,\"children\":[\"$\",\"$La\",null,{\"children\":[\"$\",\"$6\",null,{\"name\":\"Next.Metadata\",\"children\":\"$Lb\"}]}]}],[\"$\",\"meta\",null,{\"name\":\"next-size-adjust\",\"content\":\"\"}]]}],false]],\"m\":\"$undefined\",\"G\":[\"$c\",[]],\"S\":true}\n"])</script><script>self.__next_f.push([1,"9:[[\"$\",\"meta\",\"0\",{\"charSet\":\"utf-8\"}],[\"$\",\"meta\",\"1\",{\"name\":\"viewport\",\"content\":\"width=device-width, initial-scale=1\"}]]\n"])</script><script>self.__next_f.push([1,"d:I[27201,[\"/_next/static/chunks/ff1a16fafef87110.js\",\"/_next/static/chunks/0bd6498bda341889.js\"],\"IconMark\"]\n7:null\nb:[[\"$\",\"title\",\"0\",{\"children\":\"ClawKitchen (0.4.5-beta)\"}],[\"$\",\"meta\",\"1\",{\"name\":\"description\",\"content\":\"Local-first UI for authoring ClawRecipes recipes and scaffolding agents/teams.\"}],[\"$\",\"link\",\"2\",{\"rel\":\"manifest\",\"href\":\"/manifest.webmanifest\",\"crossOrigin\":\"$undefined\"}],[\"$\",\"link\",\"3\",{\"rel\":\"icon\",\"href\":\"/favicon.ico?favicon.0b3bf435.ico\",\"sizes\":\"256x256\",\"type\":\"image/x-icon\"}],[\"$\",\"link\",\"4\",{\"rel\":\"icon\",\"href\":\"/favicon.ico\",\"sizes\":\"any\"}],[\"$\",\"link\",\"5\",{\"rel\":\"icon\",\"href\":\"/favicon-16x16.png\",\"sizes\":\"16x16\",\"type\":\"image/png\"}],[\"$\",\"link\",\"6\",{\"rel\":\"icon\",\"href\":\"/favicon-32x32.png\",\"sizes\":\"32x32\",\"type\":\"image/png\"}],[\"$\",\"link\",\"7\",{\"rel\":\"apple-touch-icon\",\"href\":\"/apple-touch-icon.png\"}],[\"$\",\"$Ld\",\"8\",{}]]\n"])</script></body></html>
@@ -1,2 +1,2 @@
1
- <!DOCTYPE html><!--VKFMk3pnq7Ap2maFSb7KP--><html id="__next_error__"><head><meta charSet="utf-8"/><meta name="viewport" content="width=device-width, initial-scale=1"/><link rel="preload" as="script" fetchPriority="low" href="/_next/static/chunks/8acd42df55d57556.js"/><script src="/_next/static/chunks/68a088aa49e6124a.js" async=""></script><script src="/_next/static/chunks/aebc3b6d791f68d2.js" async=""></script><script src="/_next/static/chunks/8aac543d98940eb3.js" async=""></script><script src="/_next/static/chunks/turbopack-bdd9478663f034d6.js" async=""></script><script src="/_next/static/chunks/ff1a16fafef87110.js" async=""></script><script src="/_next/static/chunks/0bd6498bda341889.js" async=""></script><meta name="next-size-adjust" content=""/><title>500: Internal Server Error.</title><link rel="manifest" href="/manifest.webmanifest"/><link rel="icon" href="/favicon.ico?favicon.0b3bf435.ico" sizes="256x256" type="image/x-icon"/><script src="/_next/static/chunks/a6dad97d9634a72d.js" noModule=""></script></head><body><div hidden=""><!--$--><!--/$--></div><div style="font-family:system-ui,&quot;Segoe UI&quot;,Roboto,Helvetica,Arial,sans-serif,&quot;Apple Color Emoji&quot;,&quot;Segoe UI Emoji&quot;;height:100vh;text-align:center;display:flex;flex-direction:column;align-items:center;justify-content:center"><div style="line-height:48px"><style>body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}
2
- @media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}</style><h1 class="next-error-h1" style="display:inline-block;margin:0 20px 0 0;padding-right:23px;font-size:24px;font-weight:500;vertical-align:top">500</h1><div style="display:inline-block"><h2 style="font-size:14px;font-weight:400;line-height:28px">Internal Server Error.</h2></div></div></div><!--$--><!--/$--><script src="/_next/static/chunks/8acd42df55d57556.js" id="_R_" async=""></script><script>(self.__next_f=self.__next_f||[]).push([0])</script><script>self.__next_f.push([1,"1:\"$Sreact.fragment\"\n2:I[39756,[\"/_next/static/chunks/ff1a16fafef87110.js\",\"/_next/static/chunks/0bd6498bda341889.js\"],\"default\"]\n3:I[37457,[\"/_next/static/chunks/ff1a16fafef87110.js\",\"/_next/static/chunks/0bd6498bda341889.js\"],\"default\"]\n4:I[97367,[\"/_next/static/chunks/ff1a16fafef87110.js\",\"/_next/static/chunks/0bd6498bda341889.js\"],\"OutletBoundary\"]\n5:\"$Sreact.suspense\"\n7:I[97367,[\"/_next/static/chunks/ff1a16fafef87110.js\",\"/_next/static/chunks/0bd6498bda341889.js\"],\"ViewportBoundary\"]\n9:I[97367,[\"/_next/static/chunks/ff1a16fafef87110.js\",\"/_next/static/chunks/0bd6498bda341889.js\"],\"MetadataBoundary\"]\nb:I[68027,[\"/_next/static/chunks/ff1a16fafef87110.js\",\"/_next/static/chunks/0bd6498bda341889.js\"],\"default\"]\n"])</script><script>self.__next_f.push([1,"0:{\"P\":null,\"b\":\"VKFMk3pnq7Ap2maFSb7KP\",\"c\":[\"\",\"_global-error\"],\"q\":\"\",\"i\":false,\"f\":[[[\"\",{\"children\":[\"__PAGE__\",{}]}],[[\"$\",\"$1\",\"c\",{\"children\":[null,[\"$\",\"$L2\",null,{\"parallelRouterKey\":\"children\",\"error\":\"$undefined\",\"errorStyles\":\"$undefined\",\"errorScripts\":\"$undefined\",\"template\":[\"$\",\"$L3\",null,{}],\"templateStyles\":\"$undefined\",\"templateScripts\":\"$undefined\",\"notFound\":\"$undefined\",\"forbidden\":\"$undefined\",\"unauthorized\":\"$undefined\"}]]}],{\"children\":[[\"$\",\"$1\",\"c\",{\"children\":[[\"$\",\"html\",null,{\"id\":\"__next_error__\",\"children\":[[\"$\",\"head\",null,{\"children\":[\"$\",\"title\",null,{\"children\":\"500: Internal Server Error.\"}]}],[\"$\",\"body\",null,{\"children\":[\"$\",\"div\",null,{\"style\":{\"fontFamily\":\"system-ui,\\\"Segoe UI\\\",Roboto,Helvetica,Arial,sans-serif,\\\"Apple Color Emoji\\\",\\\"Segoe UI Emoji\\\"\",\"height\":\"100vh\",\"textAlign\":\"center\",\"display\":\"flex\",\"flexDirection\":\"column\",\"alignItems\":\"center\",\"justifyContent\":\"center\"},\"children\":[\"$\",\"div\",null,{\"style\":{\"lineHeight\":\"48px\"},\"children\":[[\"$\",\"style\",null,{\"dangerouslySetInnerHTML\":{\"__html\":\"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}\\n@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}\"}}],[\"$\",\"h1\",null,{\"className\":\"next-error-h1\",\"style\":{\"display\":\"inline-block\",\"margin\":\"0 20px 0 0\",\"paddingRight\":23,\"fontSize\":24,\"fontWeight\":500,\"verticalAlign\":\"top\"},\"children\":\"500\"}],[\"$\",\"div\",null,{\"style\":{\"display\":\"inline-block\"},\"children\":[\"$\",\"h2\",null,{\"style\":{\"fontSize\":14,\"fontWeight\":400,\"lineHeight\":\"28px\"},\"children\":\"Internal Server Error.\"}]}]]}]}]}]]}],null,[\"$\",\"$L4\",null,{\"children\":[\"$\",\"$5\",null,{\"name\":\"Next.MetadataOutlet\",\"children\":\"$@6\"}]}]]}],{},null,false,false]},null,false,false],[\"$\",\"$1\",\"h\",{\"children\":[null,[\"$\",\"$L7\",null,{\"children\":\"$L8\"}],[\"$\",\"div\",null,{\"hidden\":true,\"children\":[\"$\",\"$L9\",null,{\"children\":[\"$\",\"$5\",null,{\"name\":\"Next.Metadata\",\"children\":\"$La\"}]}]}],[\"$\",\"meta\",null,{\"name\":\"next-size-adjust\",\"content\":\"\"}]]}],false]],\"m\":\"$undefined\",\"G\":[\"$b\",\"$undefined\"],\"S\":true}\n"])</script><script>self.__next_f.push([1,"8:[[\"$\",\"meta\",\"0\",{\"charSet\":\"utf-8\"}],[\"$\",\"meta\",\"1\",{\"name\":\"viewport\",\"content\":\"width=device-width, initial-scale=1\"}]]\n"])</script><script>self.__next_f.push([1,"c:I[27201,[\"/_next/static/chunks/ff1a16fafef87110.js\",\"/_next/static/chunks/0bd6498bda341889.js\"],\"IconMark\"]\n6:null\na:[[\"$\",\"link\",\"0\",{\"rel\":\"manifest\",\"href\":\"/manifest.webmanifest\",\"crossOrigin\":\"$undefined\"}],[\"$\",\"link\",\"1\",{\"rel\":\"icon\",\"href\":\"/favicon.ico?favicon.0b3bf435.ico\",\"sizes\":\"256x256\",\"type\":\"image/x-icon\"}],[\"$\",\"$Lc\",\"2\",{}]]\n"])</script></body></html>
1
+ <!DOCTYPE html><!--mm0F9at4WhSZ8BVGvqrMK--><html id="__next_error__"><head><meta charSet="utf-8"/><meta name="viewport" content="width=device-width, initial-scale=1"/><link rel="preload" as="script" fetchPriority="low" href="/_next/static/chunks/8acd42df55d57556.js"/><script src="/_next/static/chunks/68a088aa49e6124a.js" async=""></script><script src="/_next/static/chunks/aebc3b6d791f68d2.js" async=""></script><script src="/_next/static/chunks/8aac543d98940eb3.js" async=""></script><script src="/_next/static/chunks/turbopack-bdd9478663f034d6.js" async=""></script><script src="/_next/static/chunks/ff1a16fafef87110.js" async=""></script><script src="/_next/static/chunks/0bd6498bda341889.js" async=""></script><meta name="next-size-adjust" content=""/><title>500: Internal Server Error.</title><link rel="manifest" href="/manifest.webmanifest"/><link rel="icon" href="/favicon.ico?favicon.0b3bf435.ico" sizes="256x256" type="image/x-icon"/><script src="/_next/static/chunks/a6dad97d9634a72d.js" noModule=""></script></head><body><div hidden=""><!--$--><!--/$--></div><div style="font-family:system-ui,&quot;Segoe UI&quot;,Roboto,Helvetica,Arial,sans-serif,&quot;Apple Color Emoji&quot;,&quot;Segoe UI Emoji&quot;;height:100vh;text-align:center;display:flex;flex-direction:column;align-items:center;justify-content:center"><div style="line-height:48px"><style>body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}
2
+ @media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}</style><h1 class="next-error-h1" style="display:inline-block;margin:0 20px 0 0;padding-right:23px;font-size:24px;font-weight:500;vertical-align:top">500</h1><div style="display:inline-block"><h2 style="font-size:14px;font-weight:400;line-height:28px">Internal Server Error.</h2></div></div></div><!--$--><!--/$--><script src="/_next/static/chunks/8acd42df55d57556.js" id="_R_" async=""></script><script>(self.__next_f=self.__next_f||[]).push([0])</script><script>self.__next_f.push([1,"1:\"$Sreact.fragment\"\n2:I[39756,[\"/_next/static/chunks/ff1a16fafef87110.js\",\"/_next/static/chunks/0bd6498bda341889.js\"],\"default\"]\n3:I[37457,[\"/_next/static/chunks/ff1a16fafef87110.js\",\"/_next/static/chunks/0bd6498bda341889.js\"],\"default\"]\n4:I[97367,[\"/_next/static/chunks/ff1a16fafef87110.js\",\"/_next/static/chunks/0bd6498bda341889.js\"],\"OutletBoundary\"]\n5:\"$Sreact.suspense\"\n7:I[97367,[\"/_next/static/chunks/ff1a16fafef87110.js\",\"/_next/static/chunks/0bd6498bda341889.js\"],\"ViewportBoundary\"]\n9:I[97367,[\"/_next/static/chunks/ff1a16fafef87110.js\",\"/_next/static/chunks/0bd6498bda341889.js\"],\"MetadataBoundary\"]\nb:I[68027,[\"/_next/static/chunks/ff1a16fafef87110.js\",\"/_next/static/chunks/0bd6498bda341889.js\"],\"default\"]\n"])</script><script>self.__next_f.push([1,"0:{\"P\":null,\"b\":\"mm0F9at4WhSZ8BVGvqrMK\",\"c\":[\"\",\"_global-error\"],\"q\":\"\",\"i\":false,\"f\":[[[\"\",{\"children\":[\"__PAGE__\",{}]}],[[\"$\",\"$1\",\"c\",{\"children\":[null,[\"$\",\"$L2\",null,{\"parallelRouterKey\":\"children\",\"error\":\"$undefined\",\"errorStyles\":\"$undefined\",\"errorScripts\":\"$undefined\",\"template\":[\"$\",\"$L3\",null,{}],\"templateStyles\":\"$undefined\",\"templateScripts\":\"$undefined\",\"notFound\":\"$undefined\",\"forbidden\":\"$undefined\",\"unauthorized\":\"$undefined\"}]]}],{\"children\":[[\"$\",\"$1\",\"c\",{\"children\":[[\"$\",\"html\",null,{\"id\":\"__next_error__\",\"children\":[[\"$\",\"head\",null,{\"children\":[\"$\",\"title\",null,{\"children\":\"500: Internal Server Error.\"}]}],[\"$\",\"body\",null,{\"children\":[\"$\",\"div\",null,{\"style\":{\"fontFamily\":\"system-ui,\\\"Segoe UI\\\",Roboto,Helvetica,Arial,sans-serif,\\\"Apple Color Emoji\\\",\\\"Segoe UI Emoji\\\"\",\"height\":\"100vh\",\"textAlign\":\"center\",\"display\":\"flex\",\"flexDirection\":\"column\",\"alignItems\":\"center\",\"justifyContent\":\"center\"},\"children\":[\"$\",\"div\",null,{\"style\":{\"lineHeight\":\"48px\"},\"children\":[[\"$\",\"style\",null,{\"dangerouslySetInnerHTML\":{\"__html\":\"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}\\n@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}\"}}],[\"$\",\"h1\",null,{\"className\":\"next-error-h1\",\"style\":{\"display\":\"inline-block\",\"margin\":\"0 20px 0 0\",\"paddingRight\":23,\"fontSize\":24,\"fontWeight\":500,\"verticalAlign\":\"top\"},\"children\":\"500\"}],[\"$\",\"div\",null,{\"style\":{\"display\":\"inline-block\"},\"children\":[\"$\",\"h2\",null,{\"style\":{\"fontSize\":14,\"fontWeight\":400,\"lineHeight\":\"28px\"},\"children\":\"Internal Server Error.\"}]}]]}]}]}]]}],null,[\"$\",\"$L4\",null,{\"children\":[\"$\",\"$5\",null,{\"name\":\"Next.MetadataOutlet\",\"children\":\"$@6\"}]}]]}],{},null,false,false]},null,false,false],[\"$\",\"$1\",\"h\",{\"children\":[null,[\"$\",\"$L7\",null,{\"children\":\"$L8\"}],[\"$\",\"div\",null,{\"hidden\":true,\"children\":[\"$\",\"$L9\",null,{\"children\":[\"$\",\"$5\",null,{\"name\":\"Next.Metadata\",\"children\":\"$La\"}]}]}],[\"$\",\"meta\",null,{\"name\":\"next-size-adjust\",\"content\":\"\"}]]}],false]],\"m\":\"$undefined\",\"G\":[\"$b\",\"$undefined\"],\"S\":true}\n"])</script><script>self.__next_f.push([1,"8:[[\"$\",\"meta\",\"0\",{\"charSet\":\"utf-8\"}],[\"$\",\"meta\",\"1\",{\"name\":\"viewport\",\"content\":\"width=device-width, initial-scale=1\"}]]\n"])</script><script>self.__next_f.push([1,"c:I[27201,[\"/_next/static/chunks/ff1a16fafef87110.js\",\"/_next/static/chunks/0bd6498bda341889.js\"],\"IconMark\"]\n6:null\na:[[\"$\",\"link\",\"0\",{\"rel\":\"manifest\",\"href\":\"/manifest.webmanifest\",\"crossOrigin\":\"$undefined\"}],[\"$\",\"link\",\"1\",{\"rel\":\"icon\",\"href\":\"/favicon.ico?favicon.0b3bf435.ico\",\"sizes\":\"256x256\",\"type\":\"image/x-icon\"}],[\"$\",\"$Lc\",\"2\",{}]]\n"])</script></body></html>
@@ -1 +1 @@
1
- self.__RSC_SERVER_MANIFEST="{\n \"node\": {},\n \"edge\": {},\n \"encryptionKey\": \"ze/0IkSXCaIfRRngxfFkjYueQsWhdr8T3hTmcOX/Ae4=\"\n}"
1
+ self.__RSC_SERVER_MANIFEST="{\n \"node\": {},\n \"edge\": {},\n \"encryptionKey\": \"nvOIRO86nlfo3ZOmy0jG+TmtdZzZBo44BSa7IuqEoPs=\"\n}"
@@ -1,5 +1,5 @@
1
1
  {
2
2
  "node": {},
3
3
  "edge": {},
4
- "encryptionKey": "ze/0IkSXCaIfRRngxfFkjYueQsWhdr8T3hTmcOX/Ae4="
4
+ "encryptionKey": "nvOIRO86nlfo3ZOmy0jG+TmtdZzZBo44BSa7IuqEoPs="
5
5
  }
@@ -2,7 +2,7 @@
2
2
  "id": "kitchen",
3
3
  "name": "ClawKitchen",
4
4
  "description": "Local UI for managing OpenClaw recipes, teams, agents, cron jobs, and skills.",
5
- "version": "0.4.3",
5
+ "version": "0.4.5",
6
6
  "configSchema": {
7
7
  "type": "object",
8
8
  "additionalProperties": false,
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@jiggai/kitchen",
3
- "version": "0.4.3",
3
+ "version": "0.4.5",
4
4
  "main": "openclaw/index.ts",
5
5
  "description": "ClawKitchen - Web-based dashboard for OpenClaw agent teams, workflows, and automation",
6
6
  "author": "@rjdjohnston · rjdjohnston",
@@ -72,7 +72,6 @@
72
72
  ".next/package.json"
73
73
  ],
74
74
  "dependencies": {
75
- "@jiggai/kitchen-plugin-marketing": "^0.2.1",
76
75
  "better-sqlite3": "^12.8.0",
77
76
  "drizzle-kit": "^0.31.10",
78
77
  "drizzle-orm": "^0.45.2",
@@ -1,22 +0,0 @@
1
- module.exports=[22734,(e,t,i)=>{t.exports=e.x("fs",()=>require("fs"))},46786,(e,t,i)=>{t.exports=e.x("os",()=>require("os"))},85148,(e,t,i)=>{t.exports=e.x("better-sqlite3-90e2652d1716b047",()=>require("better-sqlite3-90e2652d1716b047"))},54799,(e,t,i)=>{t.exports=e.x("crypto",()=>require("crypto"))},10353,e=>{"use strict";let t,i;var s,r=e.i(22734),n=e.i(14747),a=e.i(46786),o=e.i(85148);let l=Symbol.for("drizzle:entityKind");function u(e,t){if(!e||"object"!=typeof e)return!1;if(e instanceof t)return!0;if(!Object.prototype.hasOwnProperty.call(t,l))throw Error(`Class "${t.name??"<unknown>"}" doesn't look like a Drizzle entity. If this is incorrect and the class is provided by Drizzle, please report this as a bug.`);let i=Object.getPrototypeOf(e).constructor;if(i)for(;i;){if(l in i&&i[l]===t[l])return!0;i=Object.getPrototypeOf(i)}return!1}Symbol.for("drizzle:hasOwnEntityKind");class c{constructor(e,t){this.table=e,this.config=t,this.name=t.name,this.keyAsName=t.keyAsName,this.notNull=t.notNull,this.default=t.default,this.defaultFn=t.defaultFn,this.onUpdateFn=t.onUpdateFn,this.hasDefault=t.hasDefault,this.primary=t.primaryKey,this.isUnique=t.isUnique,this.uniqueName=t.uniqueName,this.uniqueType=t.uniqueType,this.dataType=t.dataType,this.columnType=t.columnType,this.generated=t.generated,this.generatedIdentity=t.generatedIdentity}static [l]="Column";name;keyAsName;primary;notNull;default;defaultFn;onUpdateFn;hasDefault;isUnique;uniqueName;uniqueType;dataType;columnType;enumValues=void 0;generated=void 0;generatedIdentity=void 0;config;mapFromDriverValue(e){return e}mapToDriverValue(e){return e}shouldDisableInsert(){return void 0!==this.config.generated&&"byDefault"!==this.config.generated.type}}let h=Symbol.for("drizzle:Name"),d=Symbol.for("drizzle:Schema"),f=Symbol.for("drizzle:Columns"),m=Symbol.for("drizzle:ExtraConfigColumns"),g=Symbol.for("drizzle:OriginalName"),p=Symbol.for("drizzle:BaseName"),y=Symbol.for("drizzle:IsAlias"),b=Symbol.for("drizzle:ExtraConfigBuilder"),S=Symbol.for("drizzle:IsDrizzleTable");class w{static [l]="Table";static Symbol={Name:h,Schema:d,OriginalName:g,Columns:f,ExtraConfigColumns:m,BaseName:p,IsAlias:y,ExtraConfigBuilder:b};[h];[g];[d];[f];[m];[p];[y]=!1;[S]=!0;[b]=void 0;constructor(e,t,i){this[h]=this[g]=e,this[d]=t,this[p]=i}}function v(e){return`${e[d]??"public"}.${e[h]}`}class T{static [l]="ColumnBuilder";config;constructor(e,t,i){this.config={name:e,keyAsName:""===e,notNull:!1,default:void 0,hasDefault:!1,primaryKey:!1,isUnique:!1,uniqueName:void 0,uniqueType:void 0,dataType:t,columnType:i,generated:void 0}}$type(){return this}notNull(){return this.config.notNull=!0,this}default(e){return this.config.default=e,this.config.hasDefault=!0,this}$defaultFn(e){return this.config.defaultFn=e,this.config.hasDefault=!0,this}$default=this.$defaultFn;$onUpdateFn(e){return this.config.onUpdateFn=e,this.config.hasDefault=!0,this}$onUpdate=this.$onUpdateFn;primaryKey(){return this.config.primaryKey=!0,this.config.notNull=!0,this}setName(e){""===this.config.name&&(this.config.name=e)}}class ${static [l]="PgForeignKeyBuilder";reference;_onUpdate="no action";_onDelete="no action";constructor(e,t){this.reference=()=>{let{name:t,columns:i,foreignColumns:s}=e();return{name:t,columns:i,foreignTable:s[0].table,foreignColumns:s}},t&&(this._onUpdate=t.onUpdate,this._onDelete=t.onDelete)}onUpdate(e){return this._onUpdate=void 0===e?"no action":e,this}onDelete(e){return this._onDelete=void 0===e?"no action":e,this}build(e){return new x(e,this)}}class x{constructor(e,t){this.table=e,this.reference=t.reference,this.onUpdate=t._onUpdate,this.onDelete=t._onDelete}static [l]="PgForeignKey";reference;onUpdate;onDelete;getName(){let{name:e,columns:t,foreignColumns:i}=this.reference(),s=t.map(e=>e.name),r=i.map(e=>e.name),n=[this.table[h],...s,i[0].table[h],...r];return e??`${n.join("_")}_fk`}}function Q(e,...t){return e(...t)}function N(e,t){return`${e[h]}_${t.join("_")}_unique`}class P{constructor(e,t){this.name=t,this.columns=e}static [l]="PgUniqueConstraintBuilder";columns;nullsNotDistinctConfig=!1;nullsNotDistinct(){return this.nullsNotDistinctConfig=!0,this}build(e){return new B(e,this.columns,this.nullsNotDistinctConfig,this.name)}}class C{static [l]="PgUniqueOnConstraintBuilder";name;constructor(e){this.name=e}on(...e){return new P(e,this.name)}}class B{constructor(e,t,i,s){this.table=e,this.columns=t,this.name=s??N(this.table,this.columns.map(e=>e.name)),this.nullsNotDistinct=i}static [l]="PgUniqueConstraint";columns;name;nullsNotDistinct=!1;getName(){return this.name}}function L(e,t,i){for(let s=t;s<e.length;s++){let r=e[s];if("\\"===r){s++;continue}if('"'===r)return[e.slice(t,s).replace(/\\/g,""),s+1];if(!i&&(","===r||"}"===r))return[e.slice(t,s).replace(/\\/g,""),s]}return[e.slice(t).replace(/\\/g,""),e.length]}class q extends T{foreignKeyConfigs=[];static [l]="PgColumnBuilder";array(e){return new A(this.config.name,this,e)}references(e,t={}){return this.foreignKeyConfigs.push({ref:e,actions:t}),this}unique(e,t){return this.config.isUnique=!0,this.config.uniqueName=e,this.config.uniqueType=t?.nulls,this}generatedAlwaysAs(e){return this.config.generated={as:e,type:"always",mode:"stored"},this}buildForeignKeys(e,t){return this.foreignKeyConfigs.map(({ref:i,actions:s})=>Q((i,s)=>{let r=new $(()=>({columns:[e],foreignColumns:[i()]}));return s.onUpdate&&r.onUpdate(s.onUpdate),s.onDelete&&r.onDelete(s.onDelete),r.build(t)},i,s))}buildExtraConfigColumn(e){return new O(e,this.config)}}class D extends c{constructor(e,t){t.uniqueName||(t.uniqueName=N(e,[t.name])),super(e,t),this.table=e}static [l]="PgColumn"}class O extends D{static [l]="ExtraConfigColumn";getSQLType(){return this.getSQLType()}indexConfig={order:this.config.order??"asc",nulls:this.config.nulls??"last",opClass:this.config.opClass};defaultConfig={order:"asc",nulls:"last",opClass:void 0};asc(){return this.indexConfig.order="asc",this}desc(){return this.indexConfig.order="desc",this}nullsFirst(){return this.indexConfig.nulls="first",this}nullsLast(){return this.indexConfig.nulls="last",this}op(e){return this.indexConfig.opClass=e,this}}class F{static [l]="IndexedColumn";constructor(e,t,i,s){this.name=e,this.keyAsName=t,this.type=i,this.indexConfig=s}name;keyAsName;type;indexConfig}class A extends q{static [l]="PgArrayBuilder";constructor(e,t,i){super(e,"array","PgArray"),this.config.baseBuilder=t,this.config.size=i}build(e){let t=this.config.baseBuilder.build(e);return new j(e,this.config,t)}}class j extends D{constructor(e,t,i,s){super(e,t),this.baseColumn=i,this.range=s,this.size=t.size}size;static [l]="PgArray";getSQLType(){return`${this.baseColumn.getSQLType()}[${"number"==typeof this.size?this.size:""}]`}mapFromDriverValue(e){return"string"==typeof e&&(e=function(e){let[t]=function e(t,i=0){let s=[],r=i,n=!1;for(;r<t.length;){let a=t[r];if(","===a){(n||r===i)&&s.push(""),n=!0,r++;continue}if(n=!1,"\\"===a){r+=2;continue}if('"'===a){let[e,i]=L(t,r+1,!0);s.push(e),r=i;continue}if("}"===a)return[s,r+1];if("{"===a){let[i,n]=e(t,r+1);s.push(i),r=n;continue}let[o,l]=L(t,r,!1);s.push(o),r=l}return[s,r]}(e,1);return t}(e)),e.map(e=>this.baseColumn.mapFromDriverValue(e))}mapToDriverValue(e,t=!1){let i=e.map(e=>null===e?null:u(this.baseColumn,j)?this.baseColumn.mapToDriverValue(e,!0):this.baseColumn.mapToDriverValue(e));return t?i:function e(t){return`{${t.map(t=>Array.isArray(t)?e(t):"string"==typeof t?`"${t.replace(/\\/g,"\\\\").replace(/"/g,'\\"')}"`:`${t}`).join(",")}}`}(i)}}class I extends q{static [l]="PgEnumObjectColumnBuilder";constructor(e,t){super(e,"string","PgEnumObjectColumn"),this.config.enum=t}build(e){return new _(e,this.config)}}class _ extends D{static [l]="PgEnumObjectColumn";enum;enumValues=this.config.enum.enumValues;constructor(e,t){super(e,t),this.enum=t.enum}getSQLType(){return this.enum.enumName}}let V=Symbol.for("drizzle:isPgEnum");class E extends q{static [l]="PgEnumColumnBuilder";constructor(e,t){super(e,"string","PgEnumColumn"),this.config.enum=t}build(e){return new z(e,this.config)}}class z extends D{static [l]="PgEnumColumn";enum=this.config.enum;enumValues=this.config.enum.enumValues;constructor(e,t){super(e,t),this.enum=t.enum}getSQLType(){return this.enum.enumName}}class R{static [l]="Subquery";constructor(e,t,i,s=!1,r=[]){this._={brand:"Subquery",sql:e,selectedFields:t,alias:i,isWith:s,usedTables:r}}}class M extends R{static [l]="WithSubquery"}let U=(e,s)=>t?(i||(i=t.trace.getTracer("drizzle-orm","0.45.2")),Q((t,i)=>i.startActiveSpan(e,e=>{try{return s(e)}catch(i){throw e.setStatus({code:t.SpanStatusCode.ERROR,message:i instanceof Error?i.message:"Unknown error"}),i}finally{e.end()}}),t,i)):s(),k=Symbol.for("drizzle:ViewBaseConfig");class K{static [l]="FakePrimitiveParam"}function J(e){return null!=e&&"function"==typeof e.getSQL}class W{static [l]="StringChunk";value;constructor(e){this.value=Array.isArray(e)?e:[e]}getSQL(){return new Y([this])}}class Y{constructor(e){for(const t of(this.queryChunks=e,e))if(u(t,w)){const e=t[w.Symbol.Schema];this.usedTables.push(void 0===e?t[w.Symbol.Name]:e+"."+t[w.Symbol.Name])}}static [l]="SQL";decoder=H;shouldInlineParams=!1;usedTables=[];append(e){return this.queryChunks.push(...e.queryChunks),this}toQuery(e){return U("drizzle.buildSQL",t=>{let i=this.buildQueryFromSourceParams(this.queryChunks,e);return t?.setAttributes({"drizzle.query.text":i.sql,"drizzle.query.params":JSON.stringify(i.params)}),i})}buildQueryFromSourceParams(e,t){let i=Object.assign({},t,{inlineParams:t.inlineParams||this.shouldInlineParams,paramStartIndex:t.paramStartIndex||{value:0}}),{casing:s,escapeName:r,escapeParam:n,prepareTyping:a,inlineParams:o,paramStartIndex:l}=i;var h=e.map(e=>{if(u(e,W))return{sql:e.value.join(""),params:[]};if(u(e,G))return{sql:r(e.value),params:[]};if(void 0===e)return{sql:"",params:[]};if(Array.isArray(e)){let t=[new W("(")];for(let[i,s]of e.entries())t.push(s),i<e.length-1&&t.push(new W(", "));return t.push(new W(")")),this.buildQueryFromSourceParams(t,i)}if(u(e,Y))return this.buildQueryFromSourceParams(e.queryChunks,{...i,inlineParams:o||e.shouldInlineParams});if(u(e,w)){let t=e[w.Symbol.Schema],i=e[w.Symbol.Name];return{sql:void 0===t||e[y]?r(i):r(t)+"."+r(i),params:[]}}if(u(e,c)){let i=s.getColumnCasing(e);if("indexes"===t.invokeSource)return{sql:r(i),params:[]};let n=e.table[w.Symbol.Schema];return{sql:e.table[y]||void 0===n?r(e.table[w.Symbol.Name])+"."+r(i):r(n)+"."+r(e.table[w.Symbol.Name])+"."+r(i),params:[]}}if(u(e,ea)){let t=e[k].schema,i=e[k].name;return{sql:void 0===t||e[k].isAlias?r(i):r(t)+"."+r(i),params:[]}}if(u(e,Z)){if(u(e.value,es))return{sql:n(l.value++,e),params:[e],typings:["none"]};let t=null===e.value?null:e.encoder.mapToDriverValue(e.value);if(u(t,Y))return this.buildQueryFromSourceParams([t],i);if(o)return{sql:this.mapInlineParam(t,i),params:[]};let s=["none"];return a&&(s=[a(e.encoder)]),{sql:n(l.value++,t),params:[t],typings:s}}return u(e,es)?{sql:n(l.value++,e),params:[e],typings:["none"]}:u(e,Y.Aliased)&&void 0!==e.fieldAlias?{sql:r(e.fieldAlias),params:[]}:u(e,R)?e._.isWith?{sql:r(e._.alias),params:[]}:this.buildQueryFromSourceParams([new W("("),e._.sql,new W(") "),new G(e._.alias)],i):e&&"function"==typeof e&&V in e&&!0===e[V]?e.schema?{sql:r(e.schema)+"."+r(e.enumName),params:[]}:{sql:r(e.enumName),params:[]}:J(e)?e.shouldOmitSQLParens?.()?this.buildQueryFromSourceParams([e.getSQL()],i):this.buildQueryFromSourceParams([new W("("),e.getSQL(),new W(")")],i):o?{sql:this.mapInlineParam(e,i),params:[]}:{sql:n(l.value++,e),params:[e],typings:["none"]}});let d={sql:"",params:[]};for(let e of h)d.sql+=e.sql,d.params.push(...e.params),e.typings?.length&&(d.typings||(d.typings=[]),d.typings.push(...e.typings));return d}mapInlineParam(e,{escapeString:t}){if(null===e)return"null";if("number"==typeof e||"boolean"==typeof e)return e.toString();if("string"==typeof e)return t(e);if("object"==typeof e){let i=e.toString();return"[object Object]"===i?t(JSON.stringify(e)):t(i)}throw Error("Unexpected param value: "+e)}getSQL(){return this}as(e){return void 0===e?this:new Y.Aliased(this,e)}mapWith(e){return this.decoder="function"==typeof e?{mapFromDriverValue:e}:e,this}inlineParams(){return this.shouldInlineParams=!0,this}if(e){return e?this:void 0}}class G{constructor(e){this.value=e}static [l]="Name";brand;getSQL(){return new Y([this])}}let H={mapFromDriverValue:e=>e},X={mapToDriverValue:e=>e};({...H,...X});class Z{constructor(e,t=X){this.value=e,this.encoder=t}static [l]="Param";brand;getSQL(){return new Y([this])}}function ee(e,...t){let i=[];for(let[s,r]of((t.length>0||e.length>0&&""!==e[0])&&i.push(new W(e[0])),t.entries()))i.push(r,new W(e[s+1]));return new Y(i)}(s=ee||(ee={})).empty=function(){return new Y([])},s.fromList=function(e){return new Y(e)},s.raw=function(e){return new Y([new W(e)])},s.join=function(e,t){let i=[];for(let[s,r]of e.entries())s>0&&void 0!==t&&i.push(t),i.push(r);return new Y(i)},s.identifier=function(e){return new G(e)},s.placeholder=function(e){return new es(e)},s.param=function(e,t){return new Z(e,t)};var et=Y||(Y={});class ei{constructor(e,t){this.sql=e,this.fieldAlias=t}static [l]="SQL.Aliased";isSelectionField=!1;getSQL(){return this.sql}clone(){return new ei(this.sql,this.fieldAlias)}}et.Aliased=ei;class es{constructor(e){this.name=e}static [l]="Placeholder";getSQL(){return new Y([this])}}function er(e,t){return e.map(e=>{if(u(e,es)){if(!(e.name in t))throw Error(`No value for placeholder "${e.name}" was provided`);return t[e.name]}if(u(e,Z)&&u(e.value,es)){if(!(e.value.name in t))throw Error(`No value for placeholder "${e.value.name}" was provided`);return e.encoder.mapToDriverValue(t[e.value.name])}return e})}let en=Symbol.for("drizzle:IsDrizzleView");class ea{static [l]="View";[k];[en]=!0;constructor({name:e,schema:t,selectedFields:i,query:s}){this[k]={name:e,originalName:e,schema:t,selectedFields:i,query:s,isExisting:!s,isAlias:!1}}getSQL(){return new Y([this])}}function eo(e,t){return"object"!=typeof t||null===t||!("mapToDriverValue"in t)||"function"!=typeof t.mapToDriverValue||J(e)||u(e,Z)||u(e,es)||u(e,c)||u(e,w)||u(e,ea)?e:new Z(e,t)}c.prototype.getSQL=function(){return new Y([this])},w.prototype.getSQL=function(){return new Y([this])},R.prototype.getSQL=function(){return new Y([this])};let el=(e,t)=>ee`${e} = ${eo(t,e)}`,eu=(e,t)=>ee`${e} <> ${eo(t,e)}`;function ec(...e){let t=e.filter(e=>void 0!==e);if(0!==t.length)return new Y(1===t.length?t:[new W("("),ee.join(t,new W(" and ")),new W(")")])}function eh(...e){let t=e.filter(e=>void 0!==e);if(0!==t.length)return new Y(1===t.length?t:[new W("("),ee.join(t,new W(" or ")),new W(")")])}function ed(e){return ee`not ${e}`}let ef=(e,t)=>ee`${e} > ${eo(t,e)}`,em=(e,t)=>ee`${e} >= ${eo(t,e)}`,eg=(e,t)=>ee`${e} < ${eo(t,e)}`,ep=(e,t)=>ee`${e} <= ${eo(t,e)}`;function ey(e,t){return Array.isArray(t)?0===t.length?ee`false`:ee`${e} in ${t.map(t=>eo(t,e))}`:ee`${e} in ${eo(t,e)}`}function eb(e,t){return Array.isArray(t)?0===t.length?ee`true`:ee`${e} not in ${t.map(t=>eo(t,e))}`:ee`${e} not in ${eo(t,e)}`}function eS(e){return ee`${e} is null`}function ew(e){return ee`${e} is not null`}function ev(e){return ee`exists ${e}`}function eT(e){return ee`not exists ${e}`}function e$(e,t,i){return ee`${e} between ${eo(t,e)} and ${eo(i,e)}`}function ex(e,t,i){return ee`${e} not between ${eo(t,e)} and ${eo(i,e)}`}function eQ(e,t){return ee`${e} like ${t}`}function eN(e,t){return ee`${e} not like ${t}`}function eP(e,t){return ee`${e} ilike ${t}`}function eC(e,t){return ee`${e} not ilike ${t}`}class eB{static [l]="ConsoleLogWriter";write(e){console.log(e)}}class eL{static [l]="DefaultLogger";writer;constructor(e){this.writer=e?.writer??new eB}logQuery(e,t){let i=t.map(e=>{try{return JSON.stringify(e)}catch{return String(e)}}),s=i.length?` -- params: [${i.join(", ")}]`:"";this.writer.write(`Query: ${e}${s}`)}}class eq{static [l]="NoopLogger";logQuery(){}}function eD(e,t,i){let s={},r=e.reduce((e,{path:r,field:n},a)=>{let o;o=u(n,c)?n:u(n,Y)?n.decoder:u(n,R)?n._.sql.decoder:n.sql.decoder;let l=e;for(let[e,d]of r.entries())if(e<r.length-1)d in l||(l[d]={}),l=l[d];else{let e=t[a],f=l[d]=null===e?null:o.mapFromDriverValue(e);if(i&&u(n,c)&&2===r.length){let e=r[0];e in s?"string"==typeof s[e]&&s[e]!==n.table[h]&&(s[e]=!1):s[e]=null===f&&n.table[h]}}return e},{});if(i&&Object.keys(s).length>0)for(let[e,t]of Object.entries(s))"string"!=typeof t||i[t]||(r[e]=null);return r}function eO(e,t){return Object.entries(e).reduce((e,[i,s])=>{if("string"!=typeof i)return e;let r=t?[...t,i]:[i];return u(s,c)||u(s,Y)||u(s,Y.Aliased)||u(s,R)?e.push({path:r,field:s}):u(s,w)?e.push(...eO(s[w.Symbol.Columns],r)):e.push(...eO(s,r)),e},[])}function eF(e,t){let i=Object.keys(e),s=Object.keys(t);if(i.length!==s.length)return!1;for(let[e,t]of i.entries())if(t!==s[e])return!1;return!0}function eA(e,t){let i=Object.entries(t).filter(([,e])=>void 0!==e).map(([t,i])=>u(i,Y)||u(i,c)?[t,i]:[t,new Z(i,e[w.Symbol.Columns][t])]);if(0===i.length)throw Error("No values to set");return Object.fromEntries(i)}function ej(e){return u(e,R)?e._.alias:u(e,ea)?e[k].name:u(e,Y)?void 0:e[w.Symbol.IsAlias]?e[w.Symbol.Name]:e[w.Symbol.BaseName]}function eI(e,t){return{name:"string"==typeof e&&e.length>0?e:"",config:"object"==typeof e?e:t}}let e_="u"<typeof TextDecoder?null:new TextDecoder;class eV extends q{static [l]="PgIntColumnBaseBuilder";generatedAlwaysAsIdentity(e){if(e){let{name:t,...i}=e;this.config.generatedIdentity={type:"always",sequenceName:t,sequenceOptions:i}}else this.config.generatedIdentity={type:"always"};return this.config.hasDefault=!0,this.config.notNull=!0,this}generatedByDefaultAsIdentity(e){if(e){let{name:t,...i}=e;this.config.generatedIdentity={type:"byDefault",sequenceName:t,sequenceOptions:i}}else this.config.generatedIdentity={type:"byDefault"};return this.config.hasDefault=!0,this.config.notNull=!0,this}}class eE extends eV{static [l]="PgBigInt53Builder";constructor(e){super(e,"number","PgBigInt53")}build(e){return new ez(e,this.config)}}class ez extends D{static [l]="PgBigInt53";getSQLType(){return"bigint"}mapFromDriverValue(e){return"number"==typeof e?e:Number(e)}}class eR extends eV{static [l]="PgBigInt64Builder";constructor(e){super(e,"bigint","PgBigInt64")}build(e){return new eM(e,this.config)}}class eM extends D{static [l]="PgBigInt64";getSQLType(){return"bigint"}mapFromDriverValue(e){return BigInt(e)}}class eU extends q{static [l]="PgBigSerial53Builder";constructor(e){super(e,"number","PgBigSerial53"),this.config.hasDefault=!0,this.config.notNull=!0}build(e){return new ek(e,this.config)}}class ek extends D{static [l]="PgBigSerial53";getSQLType(){return"bigserial"}mapFromDriverValue(e){return"number"==typeof e?e:Number(e)}}class eK extends q{static [l]="PgBigSerial64Builder";constructor(e){super(e,"bigint","PgBigSerial64"),this.config.hasDefault=!0}build(e){return new eJ(e,this.config)}}class eJ extends D{static [l]="PgBigSerial64";getSQLType(){return"bigserial"}mapFromDriverValue(e){return BigInt(e)}}class eW extends q{static [l]="PgBooleanBuilder";constructor(e){super(e,"boolean","PgBoolean")}build(e){return new eY(e,this.config)}}class eY extends D{static [l]="PgBoolean";getSQLType(){return"boolean"}}class eG extends q{static [l]="PgCharBuilder";constructor(e,t){super(e,"string","PgChar"),this.config.length=t.length,this.config.enumValues=t.enum}build(e){return new eH(e,this.config)}}class eH extends D{static [l]="PgChar";length=this.config.length;enumValues=this.config.enumValues;getSQLType(){return void 0===this.length?"char":`char(${this.length})`}}class eX extends q{static [l]="PgCidrBuilder";constructor(e){super(e,"string","PgCidr")}build(e){return new eZ(e,this.config)}}class eZ extends D{static [l]="PgCidr";getSQLType(){return"cidr"}}class e0 extends q{static [l]="PgCustomColumnBuilder";constructor(e,t,i){super(e,"custom","PgCustomColumn"),this.config.fieldConfig=t,this.config.customTypeParams=i}build(e){return new e1(e,this.config)}}class e1 extends D{static [l]="PgCustomColumn";sqlName;mapTo;mapFrom;constructor(e,t){super(e,t),this.sqlName=t.customTypeParams.dataType(t.fieldConfig),this.mapTo=t.customTypeParams.toDriver,this.mapFrom=t.customTypeParams.fromDriver}getSQLType(){return this.sqlName}mapFromDriverValue(e){return"function"==typeof this.mapFrom?this.mapFrom(e):e}mapToDriverValue(e){return"function"==typeof this.mapTo?this.mapTo(e):e}}class e2 extends q{static [l]="PgDateColumnBaseBuilder";defaultNow(){return this.default(ee`now()`)}}class e4 extends e2{static [l]="PgDateBuilder";constructor(e){super(e,"date","PgDate")}build(e){return new e6(e,this.config)}}class e6 extends D{static [l]="PgDate";getSQLType(){return"date"}mapFromDriverValue(e){return"string"==typeof e?new Date(e):e}mapToDriverValue(e){return e.toISOString()}}class e5 extends e2{static [l]="PgDateStringBuilder";constructor(e){super(e,"string","PgDateString")}build(e){return new e3(e,this.config)}}class e3 extends D{static [l]="PgDateString";getSQLType(){return"date"}mapFromDriverValue(e){return"string"==typeof e?e:e.toISOString().slice(0,-14)}}class e8 extends q{static [l]="PgDoublePrecisionBuilder";constructor(e){super(e,"number","PgDoublePrecision")}build(e){return new e7(e,this.config)}}class e7 extends D{static [l]="PgDoublePrecision";getSQLType(){return"double precision"}mapFromDriverValue(e){return"string"==typeof e?Number.parseFloat(e):e}}class e9 extends q{static [l]="PgInetBuilder";constructor(e){super(e,"string","PgInet")}build(e){return new te(e,this.config)}}class te extends D{static [l]="PgInet";getSQLType(){return"inet"}}class tt extends eV{static [l]="PgIntegerBuilder";constructor(e){super(e,"number","PgInteger")}build(e){return new ti(e,this.config)}}class ti extends D{static [l]="PgInteger";getSQLType(){return"integer"}mapFromDriverValue(e){return"string"==typeof e?Number.parseInt(e):e}}class ts extends q{static [l]="PgIntervalBuilder";constructor(e,t){super(e,"string","PgInterval"),this.config.intervalConfig=t}build(e){return new tr(e,this.config)}}class tr extends D{static [l]="PgInterval";fields=this.config.intervalConfig.fields;precision=this.config.intervalConfig.precision;getSQLType(){let e=this.fields?` ${this.fields}`:"",t=this.precision?`(${this.precision})`:"";return`interval${e}${t}`}}class tn extends q{static [l]="PgJsonBuilder";constructor(e){super(e,"json","PgJson")}build(e){return new ta(e,this.config)}}class ta extends D{static [l]="PgJson";constructor(e,t){super(e,t)}getSQLType(){return"json"}mapToDriverValue(e){return JSON.stringify(e)}mapFromDriverValue(e){if("string"==typeof e)try{return JSON.parse(e)}catch{}return e}}class to extends q{static [l]="PgJsonbBuilder";constructor(e){super(e,"json","PgJsonb")}build(e){return new tl(e,this.config)}}class tl extends D{static [l]="PgJsonb";constructor(e,t){super(e,t)}getSQLType(){return"jsonb"}mapToDriverValue(e){return JSON.stringify(e)}mapFromDriverValue(e){if("string"==typeof e)try{return JSON.parse(e)}catch{}return e}}class tu extends q{static [l]="PgLineBuilder";constructor(e){super(e,"array","PgLine")}build(e){return new tc(e,this.config)}}class tc extends D{static [l]="PgLine";getSQLType(){return"line"}mapFromDriverValue(e){let[t,i,s]=e.slice(1,-1).split(",");return[Number.parseFloat(t),Number.parseFloat(i),Number.parseFloat(s)]}mapToDriverValue(e){return`{${e[0]},${e[1]},${e[2]}}`}}class th extends q{static [l]="PgLineABCBuilder";constructor(e){super(e,"json","PgLineABC")}build(e){return new td(e,this.config)}}class td extends D{static [l]="PgLineABC";getSQLType(){return"line"}mapFromDriverValue(e){let[t,i,s]=e.slice(1,-1).split(",");return{a:Number.parseFloat(t),b:Number.parseFloat(i),c:Number.parseFloat(s)}}mapToDriverValue(e){return`{${e.a},${e.b},${e.c}}`}}class tf extends q{static [l]="PgMacaddrBuilder";constructor(e){super(e,"string","PgMacaddr")}build(e){return new tm(e,this.config)}}class tm extends D{static [l]="PgMacaddr";getSQLType(){return"macaddr"}}class tg extends q{static [l]="PgMacaddr8Builder";constructor(e){super(e,"string","PgMacaddr8")}build(e){return new tp(e,this.config)}}class tp extends D{static [l]="PgMacaddr8";getSQLType(){return"macaddr8"}}class ty extends q{static [l]="PgNumericBuilder";constructor(e,t,i){super(e,"string","PgNumeric"),this.config.precision=t,this.config.scale=i}build(e){return new tb(e,this.config)}}class tb extends D{static [l]="PgNumeric";precision;scale;constructor(e,t){super(e,t),this.precision=t.precision,this.scale=t.scale}mapFromDriverValue(e){return"string"==typeof e?e:String(e)}getSQLType(){return void 0!==this.precision&&void 0!==this.scale?`numeric(${this.precision}, ${this.scale})`:void 0===this.precision?"numeric":`numeric(${this.precision})`}}class tS extends q{static [l]="PgNumericNumberBuilder";constructor(e,t,i){super(e,"number","PgNumericNumber"),this.config.precision=t,this.config.scale=i}build(e){return new tw(e,this.config)}}class tw extends D{static [l]="PgNumericNumber";precision;scale;constructor(e,t){super(e,t),this.precision=t.precision,this.scale=t.scale}mapFromDriverValue(e){return"number"==typeof e?e:Number(e)}mapToDriverValue=String;getSQLType(){return void 0!==this.precision&&void 0!==this.scale?`numeric(${this.precision}, ${this.scale})`:void 0===this.precision?"numeric":`numeric(${this.precision})`}}class tv extends q{static [l]="PgNumericBigIntBuilder";constructor(e,t,i){super(e,"bigint","PgNumericBigInt"),this.config.precision=t,this.config.scale=i}build(e){return new tT(e,this.config)}}class tT extends D{static [l]="PgNumericBigInt";precision;scale;constructor(e,t){super(e,t),this.precision=t.precision,this.scale=t.scale}mapFromDriverValue=BigInt;mapToDriverValue=String;getSQLType(){return void 0!==this.precision&&void 0!==this.scale?`numeric(${this.precision}, ${this.scale})`:void 0===this.precision?"numeric":`numeric(${this.precision})`}}class t$ extends q{static [l]="PgPointTupleBuilder";constructor(e){super(e,"array","PgPointTuple")}build(e){return new tx(e,this.config)}}class tx extends D{static [l]="PgPointTuple";getSQLType(){return"point"}mapFromDriverValue(e){if("string"==typeof e){let[t,i]=e.slice(1,-1).split(",");return[Number.parseFloat(t),Number.parseFloat(i)]}return[e.x,e.y]}mapToDriverValue(e){return`(${e[0]},${e[1]})`}}class tQ extends q{static [l]="PgPointObjectBuilder";constructor(e){super(e,"json","PgPointObject")}build(e){return new tN(e,this.config)}}class tN extends D{static [l]="PgPointObject";getSQLType(){return"point"}mapFromDriverValue(e){if("string"==typeof e){let[t,i]=e.slice(1,-1).split(",");return{x:Number.parseFloat(t),y:Number.parseFloat(i)}}return e}mapToDriverValue(e){return`(${e.x},${e.y})`}}function tP(e,t){let i=new DataView(new ArrayBuffer(8));for(let s=0;s<8;s++)i.setUint8(s,e[t+s]);return i.getFloat64(0,!0)}function tC(e){let t=function(e){let t=[];for(let i=0;i<e.length;i+=2)t.push(Number.parseInt(e.slice(i,i+2),16));return new Uint8Array(t)}(e),i=0,s=t[0];i+=1;let r=new DataView(t.buffer),n=r.getUint32(i,1===s);if(i+=4,0x20000000&n&&(r.getUint32(i,1===s),i+=4),(65535&n)==1){let e=tP(t,i),s=tP(t,i+=8);return i+=8,[e,s]}throw Error("Unsupported geometry type")}class tB extends q{static [l]="PgGeometryBuilder";constructor(e){super(e,"array","PgGeometry")}build(e){return new tL(e,this.config)}}class tL extends D{static [l]="PgGeometry";getSQLType(){return"geometry(point)"}mapFromDriverValue(e){return tC(e)}mapToDriverValue(e){return`point(${e[0]} ${e[1]})`}}class tq extends q{static [l]="PgGeometryObjectBuilder";constructor(e){super(e,"json","PgGeometryObject")}build(e){return new tD(e,this.config)}}class tD extends D{static [l]="PgGeometryObject";getSQLType(){return"geometry(point)"}mapFromDriverValue(e){let t=tC(e);return{x:t[0],y:t[1]}}mapToDriverValue(e){return`point(${e.x} ${e.y})`}}class tO extends q{static [l]="PgRealBuilder";constructor(e,t){super(e,"number","PgReal"),this.config.length=t}build(e){return new tF(e,this.config)}}class tF extends D{static [l]="PgReal";constructor(e,t){super(e,t)}getSQLType(){return"real"}mapFromDriverValue=e=>"string"==typeof e?Number.parseFloat(e):e}class tA extends q{static [l]="PgSerialBuilder";constructor(e){super(e,"number","PgSerial"),this.config.hasDefault=!0,this.config.notNull=!0}build(e){return new tj(e,this.config)}}class tj extends D{static [l]="PgSerial";getSQLType(){return"serial"}}class tI extends eV{static [l]="PgSmallIntBuilder";constructor(e){super(e,"number","PgSmallInt")}build(e){return new t_(e,this.config)}}class t_ extends D{static [l]="PgSmallInt";getSQLType(){return"smallint"}mapFromDriverValue=e=>"string"==typeof e?Number(e):e}class tV extends q{static [l]="PgSmallSerialBuilder";constructor(e){super(e,"number","PgSmallSerial"),this.config.hasDefault=!0,this.config.notNull=!0}build(e){return new tE(e,this.config)}}class tE extends D{static [l]="PgSmallSerial";getSQLType(){return"smallserial"}}class tz extends q{static [l]="PgTextBuilder";constructor(e,t){super(e,"string","PgText"),this.config.enumValues=t.enum}build(e){return new tR(e,this.config)}}class tR extends D{static [l]="PgText";enumValues=this.config.enumValues;getSQLType(){return"text"}}class tM extends e2{constructor(e,t,i){super(e,"string","PgTime"),this.withTimezone=t,this.precision=i,this.config.withTimezone=t,this.config.precision=i}static [l]="PgTimeBuilder";build(e){return new tU(e,this.config)}}class tU extends D{static [l]="PgTime";withTimezone;precision;constructor(e,t){super(e,t),this.withTimezone=t.withTimezone,this.precision=t.precision}getSQLType(){let e=void 0===this.precision?"":`(${this.precision})`;return`time${e}${this.withTimezone?" with time zone":""}`}}class tk extends e2{static [l]="PgTimestampBuilder";constructor(e,t,i){super(e,"date","PgTimestamp"),this.config.withTimezone=t,this.config.precision=i}build(e){return new tK(e,this.config)}}class tK extends D{static [l]="PgTimestamp";withTimezone;precision;constructor(e,t){super(e,t),this.withTimezone=t.withTimezone,this.precision=t.precision}getSQLType(){let e=void 0===this.precision?"":` (${this.precision})`;return`timestamp${e}${this.withTimezone?" with time zone":""}`}mapFromDriverValue(e){return"string"==typeof e?new Date(this.withTimezone?e:e+"+0000"):e}mapToDriverValue=e=>e.toISOString()}class tJ extends e2{static [l]="PgTimestampStringBuilder";constructor(e,t,i){super(e,"string","PgTimestampString"),this.config.withTimezone=t,this.config.precision=i}build(e){return new tW(e,this.config)}}class tW extends D{static [l]="PgTimestampString";withTimezone;precision;constructor(e,t){super(e,t),this.withTimezone=t.withTimezone,this.precision=t.precision}getSQLType(){let e=void 0===this.precision?"":`(${this.precision})`;return`timestamp${e}${this.withTimezone?" with time zone":""}`}mapFromDriverValue(e){if("string"==typeof e)return e;let t=e.toISOString().slice(0,-1).replace("T"," ");if(this.withTimezone){let i=e.getTimezoneOffset();return`${t}${i<=0?"+":"-"}${Math.floor(Math.abs(i)/60).toString().padStart(2,"0")}`}return t}}class tY extends q{static [l]="PgUUIDBuilder";constructor(e){super(e,"string","PgUUID")}defaultRandom(){return this.default(ee`gen_random_uuid()`)}build(e){return new tG(e,this.config)}}class tG extends D{static [l]="PgUUID";getSQLType(){return"uuid"}}class tH extends q{static [l]="PgVarcharBuilder";constructor(e,t){super(e,"string","PgVarchar"),this.config.length=t.length,this.config.enumValues=t.enum}build(e){return new tX(e,this.config)}}class tX extends D{static [l]="PgVarchar";length=this.config.length;enumValues=this.config.enumValues;getSQLType(){return void 0===this.length?"varchar":`varchar(${this.length})`}}class tZ extends q{static [l]="PgBinaryVectorBuilder";constructor(e,t){super(e,"string","PgBinaryVector"),this.config.dimensions=t.dimensions}build(e){return new t0(e,this.config)}}class t0 extends D{static [l]="PgBinaryVector";dimensions=this.config.dimensions;getSQLType(){return`bit(${this.dimensions})`}}class t1 extends q{static [l]="PgHalfVectorBuilder";constructor(e,t){super(e,"array","PgHalfVector"),this.config.dimensions=t.dimensions}build(e){return new t2(e,this.config)}}class t2 extends D{static [l]="PgHalfVector";dimensions=this.config.dimensions;getSQLType(){return`halfvec(${this.dimensions})`}mapToDriverValue(e){return JSON.stringify(e)}mapFromDriverValue(e){return e.slice(1,-1).split(",").map(e=>Number.parseFloat(e))}}class t4 extends q{static [l]="PgSparseVectorBuilder";constructor(e,t){super(e,"string","PgSparseVector"),this.config.dimensions=t.dimensions}build(e){return new t6(e,this.config)}}class t6 extends D{static [l]="PgSparseVector";dimensions=this.config.dimensions;getSQLType(){return`sparsevec(${this.dimensions})`}}class t5 extends q{static [l]="PgVectorBuilder";constructor(e,t){super(e,"array","PgVector"),this.config.dimensions=t.dimensions}build(e){return new t3(e,this.config)}}class t3 extends D{static [l]="PgVector";dimensions=this.config.dimensions;getSQLType(){return`vector(${this.dimensions})`}mapToDriverValue(e){return JSON.stringify(e)}mapFromDriverValue(e){return e.slice(1,-1).split(",").map(e=>Number.parseFloat(e))}}let t8=Symbol.for("drizzle:PgInlineForeignKeys"),t7=Symbol.for("drizzle:EnableRLS");class t9 extends w{static [l]="PgTable";static Symbol=Object.assign({},w.Symbol,{InlineForeignKeys:t8,EnableRLS:t7});[t8]=[];[t7]=!1;[w.Symbol.ExtraConfigBuilder]=void 0;[w.Symbol.ExtraConfigColumns]={}}class ie{static [l]="PgPrimaryKeyBuilder";columns;name;constructor(e,t){this.columns=e,this.name=t}build(e){return new it(e,this.columns,this.name)}}class it{constructor(e,t,i){this.table=e,this.columns=t,this.name=i}static [l]="PgPrimaryKey";columns;name;getName(){return this.name??`${this.table[t9.Symbol.Name]}_${this.columns.map(e=>e.name).join("_")}_pk`}}function ii(e){return ee`${e} asc`}function is(e){return ee`${e} desc`}class ir{constructor(e,t,i){this.sourceTable=e,this.referencedTable=t,this.relationName=i,this.referencedTableName=t[w.Symbol.Name]}static [l]="Relation";referencedTableName;fieldName}class ia{constructor(e,t){this.table=e,this.config=t}static [l]="Relations"}class io extends ir{constructor(e,t,i,s){super(e,t,i?.relationName),this.config=i,this.isNullable=s}static [l]="One";withFieldName(e){let t=new io(this.sourceTable,this.referencedTable,this.config,this.isNullable);return t.fieldName=e,t}}class il extends ir{constructor(e,t,i){super(e,t,i?.relationName),this.config=i}static [l]="Many";withFieldName(e){let t=new il(this.sourceTable,this.referencedTable,this.config);return t.fieldName=e,t}}function iu(e){return{one:function(t,i){return new io(e,t,i,i?.fields.reduce((e,t)=>e&&t.notNull,!0)??!1)},many:function(t,i){return new il(e,t,i)}}}class ic{constructor(e){this.table=e}static [l]="ColumnAliasProxyHandler";get(e,t){return"table"===t?this.table:e[t]}}class ih{constructor(e,t){this.alias=e,this.replaceOriginalName=t}static [l]="TableAliasProxyHandler";get(e,t){if(t===w.Symbol.IsAlias)return!0;if(t===w.Symbol.Name||this.replaceOriginalName&&t===w.Symbol.OriginalName)return this.alias;if(t===k)return{...e[k],name:this.alias,isAlias:!0};if(t===w.Symbol.Columns){let t=e[w.Symbol.Columns];if(!t)return t;let i={};return Object.keys(t).map(s=>{i[s]=new Proxy(t[s],new ic(new Proxy(e,this)))}),i}let i=e[t];return u(i,c)?new Proxy(i,new ic(new Proxy(e,this))):i}}class id{constructor(e){this.alias=e}static [l]="RelationTableAliasProxyHandler";get(e,t){return"sourceTable"===t?im(e.sourceTable,this.alias):e[t]}}function im(e,t){return new Proxy(e,new ih(t,!1))}function ig(e,t){return new Proxy(e,new ic(new Proxy(e.table,new ih(t,!1))))}function ip(e,t){return new Y.Aliased(iy(e.sql,t),e.fieldAlias)}function iy(e,t){return ee.join(e.queryChunks.map(e=>u(e,c)?ig(e,t):u(e,Y)?iy(e,t):u(e,Y.Aliased)?ip(e,t):e))}class ib{static [l]="SelectionProxyHandler";config;constructor(e){this.config={...e}}get(e,t){if("_"===t)return{...e._,selectedFields:new Proxy(e._.selectedFields,this)};if(t===k)return{...e[k],selectedFields:new Proxy(e[k].selectedFields,this)};if("symbol"==typeof t)return e[t];let i=(u(e,R)?e._.selectedFields:u(e,ea)?e[k].selectedFields:e)[t];if(u(i,Y.Aliased)){if("sql"===this.config.sqlAliasedBehavior&&!i.isSelectionField)return i.sql;let e=i.clone();return e.isSelectionField=!0,e}if(u(i,Y)){if("sql"===this.config.sqlBehavior)return i;throw Error(`You tried to reference "${t}" field from a subquery, which is a raw SQL field, but it doesn't have an alias declared. Please add an alias to the field using ".as('alias')" method.`)}return u(i,c)?this.config.alias?new Proxy(i,new ic(new Proxy(i.table,new ih(this.config.alias,this.config.replaceOriginalName??!1)))):i:"object"!=typeof i||null===i?i:new Proxy(i,new ib(this.config))}}function iS(e){return(e.replace(/['\u2019]/g,"").match(/[\da-z]+|[A-Z]+(?![a-z])|[A-Z][\da-z]+/g)??[]).map(e=>e.toLowerCase()).join("_")}function iw(e){return(e.replace(/['\u2019]/g,"").match(/[\da-z]+|[A-Z]+(?![a-z])|[A-Z][\da-z]+/g)??[]).reduce((e,t,i)=>e+(0===i?t.toLowerCase():`${t[0].toUpperCase()}${t.slice(1)}`),"")}function iv(e){return e}class iT{static [l]="CasingCache";cache={};cachedTables={};convert;constructor(e){this.convert="snake_case"===e?iS:"camelCase"===e?iw:iv}getColumnCasing(e){if(!e.keyAsName)return e.name;let t=e.table[w.Symbol.Schema]??"public",i=e.table[w.Symbol.OriginalName],s=`${t}.${i}.${e.name}`;return this.cache[s]||this.cacheTable(e.table),this.cache[s]}cacheTable(e){let t=e[w.Symbol.Schema]??"public",i=e[w.Symbol.OriginalName],s=`${t}.${i}`;if(!this.cachedTables[s]){for(let t of Object.values(e[w.Symbol.Columns])){let e=`${s}.${t.name}`;this.cache[e]=this.convert(t.name)}this.cachedTables[s]=!0}}clearCache(){this.cache={},this.cachedTables={}}}class i$ extends Error{static [l]="DrizzleError";constructor({message:e,cause:t}){super(e),this.name="DrizzleError",this.cause=t}}class ix extends Error{constructor(e,t,i){super(`Failed query: ${e}
2
- params: ${t}`),this.query=e,this.params=t,this.cause=i,Error.captureStackTrace(this,ix),i&&(this.cause=i)}}class iQ extends i${static [l]="TransactionRollbackError";constructor(){super({message:"Rollback"})}}class iN{static [l]="SQLiteForeignKeyBuilder";reference;_onUpdate;_onDelete;constructor(e,t){this.reference=()=>{let{name:t,columns:i,foreignColumns:s}=e();return{name:t,columns:i,foreignTable:s[0].table,foreignColumns:s}},t&&(this._onUpdate=t.onUpdate,this._onDelete=t.onDelete)}onUpdate(e){return this._onUpdate=e,this}onDelete(e){return this._onDelete=e,this}build(e){return new iP(e,this)}}class iP{constructor(e,t){this.table=e,this.reference=t.reference,this.onUpdate=t._onUpdate,this.onDelete=t._onDelete}static [l]="SQLiteForeignKey";reference;onUpdate;onDelete;getName(){let{name:e,columns:t,foreignColumns:i}=this.reference(),s=t.map(e=>e.name),r=i.map(e=>e.name),n=[this.table[h],...s,i[0].table[h],...r];return e??`${n.join("_")}_fk`}}function iC(e,t){return`${e[h]}_${t.join("_")}_unique`}class iB{constructor(e,t){this.name=t,this.columns=e}static [l]="SQLiteUniqueConstraintBuilder";columns;build(e){return new iq(e,this.columns,this.name)}}class iL{static [l]="SQLiteUniqueOnConstraintBuilder";name;constructor(e){this.name=e}on(...e){return new iB(e,this.name)}}class iq{constructor(e,t,i){this.table=e,this.columns=t,this.name=i??iC(this.table,this.columns.map(e=>e.name))}static [l]="SQLiteUniqueConstraint";columns;name;getName(){return this.name}}class iD extends T{static [l]="SQLiteColumnBuilder";foreignKeyConfigs=[];references(e,t={}){return this.foreignKeyConfigs.push({ref:e,actions:t}),this}unique(e){return this.config.isUnique=!0,this.config.uniqueName=e,this}generatedAlwaysAs(e,t){return this.config.generated={as:e,type:"always",mode:t?.mode??"virtual"},this}buildForeignKeys(e,t){return this.foreignKeyConfigs.map(({ref:i,actions:s})=>{let r;return r=new iN(()=>({columns:[e],foreignColumns:[i()]})),s.onUpdate&&r.onUpdate(s.onUpdate),s.onDelete&&r.onDelete(s.onDelete),r.build(t)})}}class iO extends c{constructor(e,t){t.uniqueName||(t.uniqueName=iC(e,[t.name])),super(e,t),this.table=e}static [l]="SQLiteColumn"}class iF extends iD{static [l]="SQLiteBigIntBuilder";constructor(e){super(e,"bigint","SQLiteBigInt")}build(e){return new iA(e,this.config)}}class iA extends iO{static [l]="SQLiteBigInt";getSQLType(){return"blob"}mapFromDriverValue(e){return"u">typeof Buffer&&Buffer.from?BigInt((Buffer.isBuffer(e)?e:e instanceof ArrayBuffer?Buffer.from(e):e.buffer?Buffer.from(e.buffer,e.byteOffset,e.byteLength):Buffer.from(e)).toString("utf8")):BigInt(e_.decode(e))}mapToDriverValue(e){return Buffer.from(e.toString())}}class ij extends iD{static [l]="SQLiteBlobJsonBuilder";constructor(e){super(e,"json","SQLiteBlobJson")}build(e){return new iI(e,this.config)}}class iI extends iO{static [l]="SQLiteBlobJson";getSQLType(){return"blob"}mapFromDriverValue(e){return"u">typeof Buffer&&Buffer.from?JSON.parse((Buffer.isBuffer(e)?e:e instanceof ArrayBuffer?Buffer.from(e):e.buffer?Buffer.from(e.buffer,e.byteOffset,e.byteLength):Buffer.from(e)).toString("utf8")):JSON.parse(e_.decode(e))}mapToDriverValue(e){return Buffer.from(JSON.stringify(e))}}class i_ extends iD{static [l]="SQLiteBlobBufferBuilder";constructor(e){super(e,"buffer","SQLiteBlobBuffer")}build(e){return new iV(e,this.config)}}class iV extends iO{static [l]="SQLiteBlobBuffer";mapFromDriverValue(e){return Buffer.isBuffer(e)?e:Buffer.from(e)}getSQLType(){return"blob"}}function iE(e,t){let{name:i,config:s}=eI(e,t);return s?.mode==="json"?new ij(i):s?.mode==="bigint"?new iF(i):new i_(i)}class iz extends iD{static [l]="SQLiteCustomColumnBuilder";constructor(e,t,i){super(e,"custom","SQLiteCustomColumn"),this.config.fieldConfig=t,this.config.customTypeParams=i}build(e){return new iR(e,this.config)}}class iR extends iO{static [l]="SQLiteCustomColumn";sqlName;mapTo;mapFrom;constructor(e,t){super(e,t),this.sqlName=t.customTypeParams.dataType(t.fieldConfig),this.mapTo=t.customTypeParams.toDriver,this.mapFrom=t.customTypeParams.fromDriver}getSQLType(){return this.sqlName}mapFromDriverValue(e){return"function"==typeof this.mapFrom?this.mapFrom(e):e}mapToDriverValue(e){return"function"==typeof this.mapTo?this.mapTo(e):e}}function iM(e){return(t,i)=>{let{name:s,config:r}=eI(t,i);return new iz(s,r,e)}}class iU extends iD{static [l]="SQLiteBaseIntegerBuilder";constructor(e,t,i){super(e,t,i),this.config.autoIncrement=!1}primaryKey(e){return e?.autoIncrement&&(this.config.autoIncrement=!0),this.config.hasDefault=!0,super.primaryKey()}}class ik extends iO{static [l]="SQLiteBaseInteger";autoIncrement=this.config.autoIncrement;getSQLType(){return"integer"}}class iK extends iU{static [l]="SQLiteIntegerBuilder";constructor(e){super(e,"number","SQLiteInteger")}build(e){return new iJ(e,this.config)}}class iJ extends ik{static [l]="SQLiteInteger"}class iW extends iU{static [l]="SQLiteTimestampBuilder";constructor(e,t){super(e,"date","SQLiteTimestamp"),this.config.mode=t}defaultNow(){return this.default(ee`(cast((julianday('now') - 2440587.5)*86400000 as integer))`)}build(e){return new iY(e,this.config)}}class iY extends ik{static [l]="SQLiteTimestamp";mode=this.config.mode;mapFromDriverValue(e){return new Date("timestamp"===this.config.mode?1e3*e:e)}mapToDriverValue(e){let t=e.getTime();return"timestamp"===this.config.mode?Math.floor(t/1e3):t}}class iG extends iU{static [l]="SQLiteBooleanBuilder";constructor(e,t){super(e,"boolean","SQLiteBoolean"),this.config.mode=t}build(e){return new iH(e,this.config)}}class iH extends ik{static [l]="SQLiteBoolean";mode=this.config.mode;mapFromDriverValue(e){return 1===Number(e)}mapToDriverValue(e){return+!!e}}function iX(e,t){let{name:i,config:s}=eI(e,t);return s?.mode==="timestamp"||s?.mode==="timestamp_ms"?new iW(i,s.mode):s?.mode==="boolean"?new iG(i,s.mode):new iK(i)}class iZ extends iD{static [l]="SQLiteNumericBuilder";constructor(e){super(e,"string","SQLiteNumeric")}build(e){return new i0(e,this.config)}}class i0 extends iO{static [l]="SQLiteNumeric";mapFromDriverValue(e){return"string"==typeof e?e:String(e)}getSQLType(){return"numeric"}}class i1 extends iD{static [l]="SQLiteNumericNumberBuilder";constructor(e){super(e,"number","SQLiteNumericNumber")}build(e){return new i2(e,this.config)}}class i2 extends iO{static [l]="SQLiteNumericNumber";mapFromDriverValue(e){return"number"==typeof e?e:Number(e)}mapToDriverValue=String;getSQLType(){return"numeric"}}class i4 extends iD{static [l]="SQLiteNumericBigIntBuilder";constructor(e){super(e,"bigint","SQLiteNumericBigInt")}build(e){return new i6(e,this.config)}}class i6 extends iO{static [l]="SQLiteNumericBigInt";mapFromDriverValue=BigInt;mapToDriverValue=String;getSQLType(){return"numeric"}}function i5(e,t){let{name:i,config:s}=eI(e,t),r=s?.mode;return"number"===r?new i1(i):"bigint"===r?new i4(i):new iZ(i)}class i3 extends iD{static [l]="SQLiteRealBuilder";constructor(e){super(e,"number","SQLiteReal")}build(e){return new i8(e,this.config)}}class i8 extends iO{static [l]="SQLiteReal";getSQLType(){return"real"}}function i7(e){return new i3(e??"")}class i9 extends iD{static [l]="SQLiteTextBuilder";constructor(e,t){super(e,"string","SQLiteText"),this.config.enumValues=t.enum,this.config.length=t.length}build(e){return new se(e,this.config)}}class se extends iO{static [l]="SQLiteText";enumValues=this.config.enumValues;length=this.config.length;constructor(e,t){super(e,t)}getSQLType(){return`text${this.config.length?`(${this.config.length})`:""}`}}class st extends iD{static [l]="SQLiteTextJsonBuilder";constructor(e){super(e,"json","SQLiteTextJson")}build(e){return new si(e,this.config)}}class si extends iO{static [l]="SQLiteTextJson";getSQLType(){return"text"}mapFromDriverValue(e){return JSON.parse(e)}mapToDriverValue(e){return JSON.stringify(e)}}function ss(e,t={}){let{name:i,config:s}=eI(e,t);return"json"===s.mode?new st(i):new i9(i,s)}let sr=Symbol.for("drizzle:SQLiteInlineForeignKeys");class sn extends w{static [l]="SQLiteTable";static Symbol=Object.assign({},w.Symbol,{InlineForeignKeys:sr});[w.Symbol.Columns];[sr]=[];[w.Symbol.ExtraConfigBuilder]=void 0}class sa extends ea{static [l]="SQLiteViewBase"}class so{static [l]="SQLiteDialect";casing;constructor(e){this.casing=new iT(e?.casing)}escapeName(e){return`"${e.replace(/"/g,'""')}"`}escapeParam(e){return"?"}escapeString(e){return`'${e.replace(/'/g,"''")}'`}buildWithCTE(e){if(!e?.length)return;let t=[ee`with `];for(let[i,s]of e.entries())t.push(ee`${ee.identifier(s._.alias)} as (${s._.sql})`),i<e.length-1&&t.push(ee`, `);return t.push(ee` `),ee.join(t)}buildDeleteQuery({table:e,where:t,returning:i,withList:s,limit:r,orderBy:n}){let a=this.buildWithCTE(s),o=i?ee` returning ${this.buildSelection(i,{isSingleTable:!0})}`:void 0,l=t?ee` where ${t}`:void 0,u=this.buildOrderBy(n),c=this.buildLimit(r);return ee`${a}delete from ${e}${l}${o}${u}${c}`}buildUpdateSet(e,t){let i=e[w.Symbol.Columns],s=Object.keys(i).filter(e=>void 0!==t[e]||i[e]?.onUpdateFn!==void 0),r=s.length;return ee.join(s.flatMap((e,s)=>{let n=i[e],a=n.onUpdateFn?.(),o=t[e]??(u(a,Y)?a:ee.param(a,n)),l=ee`${ee.identifier(this.casing.getColumnCasing(n))} = ${o}`;return s<r-1?[l,ee.raw(", ")]:[l]}))}buildUpdateQuery({table:e,set:t,where:i,returning:s,withList:r,joins:n,from:a,limit:o,orderBy:l}){let u=this.buildWithCTE(r),c=this.buildUpdateSet(e,t),h=a&&ee.join([ee.raw(" from "),this.buildFromTable(a)]),d=this.buildJoins(n),f=s?ee` returning ${this.buildSelection(s,{isSingleTable:!0})}`:void 0,m=i?ee` where ${i}`:void 0,g=this.buildOrderBy(l),p=this.buildLimit(o);return ee`${u}update ${e} set ${c}${h}${d}${m}${f}${g}${p}`}buildSelection(e,{isSingleTable:t=!1}={}){let i=e.length,s=e.flatMap(({field:e},s)=>{let r=[];if(u(e,Y.Aliased)&&e.isSelectionField)r.push(ee.identifier(e.fieldAlias));else if(u(e,Y.Aliased)||u(e,Y)){let i=u(e,Y.Aliased)?e.sql:e;t?r.push(new Y(i.queryChunks.map(e=>u(e,c)?ee.identifier(this.casing.getColumnCasing(e)):e))):r.push(i),u(e,Y.Aliased)&&r.push(ee` as ${ee.identifier(e.fieldAlias)}`)}else if(u(e,c)){let i=e.table[w.Symbol.Name];"SQLiteNumericBigInt"===e.columnType?t?r.push(ee`cast(${ee.identifier(this.casing.getColumnCasing(e))} as text)`):r.push(ee`cast(${ee.identifier(i)}.${ee.identifier(this.casing.getColumnCasing(e))} as text)`):t?r.push(ee.identifier(this.casing.getColumnCasing(e))):r.push(ee`${ee.identifier(i)}.${ee.identifier(this.casing.getColumnCasing(e))}`)}else if(u(e,R)){let t=Object.entries(e._.selectedFields);if(1===t.length){let i=t[0][1],s=u(i,Y)?i.decoder:u(i,c)?{mapFromDriverValue:e=>i.mapFromDriverValue(e)}:i.sql.decoder;s&&(e._.sql.decoder=s)}r.push(e)}return s<i-1&&r.push(ee`, `),r});return ee.join(s)}buildJoins(e){if(!e||0===e.length)return;let t=[];if(e)for(let[i,s]of e.entries()){0===i&&t.push(ee` `);let r=s.table,n=s.on?ee` on ${s.on}`:void 0;if(u(r,sn)){let e=r[sn.Symbol.Name],i=r[sn.Symbol.Schema],a=r[sn.Symbol.OriginalName],o=e===a?void 0:s.alias;t.push(ee`${ee.raw(s.joinType)} join ${i?ee`${ee.identifier(i)}.`:void 0}${ee.identifier(a)}${o&&ee` ${ee.identifier(o)}`}${n}`)}else t.push(ee`${ee.raw(s.joinType)} join ${r}${n}`);i<e.length-1&&t.push(ee` `)}return ee.join(t)}buildLimit(e){return"object"==typeof e||"number"==typeof e&&e>=0?ee` limit ${e}`:void 0}buildOrderBy(e){let t=[];if(e)for(let[i,s]of e.entries())t.push(s),i<e.length-1&&t.push(ee`, `);return t.length>0?ee` order by ${ee.join(t)}`:void 0}buildFromTable(e){return u(e,w)&&e[w.Symbol.IsAlias]?ee`${ee`${ee.identifier(e[w.Symbol.Schema]??"")}.`.if(e[w.Symbol.Schema])}${ee.identifier(e[w.Symbol.OriginalName])} ${ee.identifier(e[w.Symbol.Name])}`:e}buildSelectQuery({withList:e,fields:t,fieldsFlat:i,where:s,having:r,table:n,joins:a,orderBy:o,groupBy:l,limit:d,offset:f,distinct:m,setOperators:g}){let p=i??eO(t);for(let e of p){let t;if(u(e.field,c)&&e.field.table[h]!==(u(n,R)?n._.alias:u(n,sa)?n[k].name:u(n,Y)?void 0:n[h])&&(t=e.field.table,!a?.some(({alias:e})=>e===(t[w.Symbol.IsAlias]?t[h]:t[w.Symbol.BaseName])))){let t=e.field.table[h];throw Error(`Your "${e.path.join("->")}" field references a column "${t}"."${e.field.name}", but the table "${t}" is not part of the query! Did you forget to join it?`)}}let y=!a||0===a.length,b=this.buildWithCTE(e),S=m?ee` distinct`:void 0,v=this.buildSelection(p,{isSingleTable:y}),T=this.buildFromTable(n),$=this.buildJoins(a),x=s?ee` where ${s}`:void 0,Q=r?ee` having ${r}`:void 0,N=[];if(l)for(let[e,t]of l.entries())N.push(t),e<l.length-1&&N.push(ee`, `);let P=N.length>0?ee` group by ${ee.join(N)}`:void 0,C=this.buildOrderBy(o),B=this.buildLimit(d),L=f?ee` offset ${f}`:void 0,q=ee`${b}select${S} ${v} from ${T}${$}${x}${P}${Q}${C}${B}${L}`;return g.length>0?this.buildSetOperations(q,g):q}buildSetOperations(e,t){let[i,...s]=t;if(!i)throw Error("Cannot pass undefined values to any set operator");return 0===s.length?this.buildSetOperationQuery({leftSelect:e,setOperator:i}):this.buildSetOperations(this.buildSetOperationQuery({leftSelect:e,setOperator:i}),s)}buildSetOperationQuery({leftSelect:e,setOperator:{type:t,isAll:i,rightSelect:s,limit:r,orderBy:n,offset:a}}){let o,l=ee`${e.getSQL()} `,c=ee`${s.getSQL()}`;if(n&&n.length>0){let e=[];for(let t of n)if(u(t,iO))e.push(ee.identifier(t.name));else if(u(t,Y)){for(let e=0;e<t.queryChunks.length;e++){let i=t.queryChunks[e];u(i,iO)&&(t.queryChunks[e]=ee.identifier(this.casing.getColumnCasing(i)))}e.push(ee`${t}`)}else e.push(ee`${t}`);o=ee` order by ${ee.join(e,ee`, `)}`}let h="object"==typeof r||"number"==typeof r&&r>=0?ee` limit ${r}`:void 0,d=ee.raw(`${t} ${i?"all ":""}`),f=a?ee` offset ${a}`:void 0;return ee`${l}${d}${c}${o}${h}${f}`}buildInsertQuery({table:e,values:t,onConflict:i,returning:s,withList:r,select:n}){let a=[],o=Object.entries(e[w.Symbol.Columns]).filter(([e,t])=>!t.shouldDisableInsert()),l=o.map(([,e])=>ee.identifier(this.casing.getColumnCasing(e)));if(n)u(t,Y)?a.push(t):a.push(t.getSQL());else for(let[e,i]of(a.push(ee.raw("values ")),t.entries())){let s=[];for(let[e,t]of o){let r=i[e];if(void 0===r||u(r,Z)&&void 0===r.value){let e;if(null!==t.default&&void 0!==t.default)e=u(t.default,Y)?t.default:ee.param(t.default,t);else if(void 0!==t.defaultFn){let i=t.defaultFn();e=u(i,Y)?i:ee.param(i,t)}else if(t.default||void 0===t.onUpdateFn)e=ee`null`;else{let i=t.onUpdateFn();e=u(i,Y)?i:ee.param(i,t)}s.push(e)}else s.push(r)}a.push(s),e<t.length-1&&a.push(ee`, `)}let c=this.buildWithCTE(r),h=ee.join(a),d=s?ee` returning ${this.buildSelection(s,{isSingleTable:!0})}`:void 0,f=i?.length?ee.join(i):void 0;return ee`${c}insert into ${e} ${l} ${h}${f}${d}`}sqlToQuery(e,t){return e.toQuery({casing:this.casing,escapeName:this.escapeName,escapeParam:this.escapeParam,escapeString:this.escapeString,invokeSource:t})}buildRelationalQuery({fullSchema:e,schema:t,tableNamesMap:i,table:s,tableConfig:r,queryConfig:n,tableAlias:a,nestedQueryRelation:o,joinOn:l}){let h,d=[],f,m,g=[],p,y=[];if(!0===n)d=Object.entries(r.columns).map(([e,t])=>({dbKey:t.name,tsKey:e,field:ig(t,a),relationTableTsKey:void 0,isJson:!1,selection:[]}));else{let s=Object.fromEntries(Object.entries(r.columns).map(([e,t])=>[e,ig(t,a)]));if(n.where){let e="function"==typeof n.where?n.where(s,{and:ec,between:e$,eq:el,exists:ev,gt:ef,gte:em,ilike:eP,inArray:ey,isNull:eS,isNotNull:ew,like:eQ,lt:eg,lte:ep,ne:eu,not:ed,notBetween:ex,notExists:eT,notLike:eN,notIlike:eC,notInArray:eb,or:eh,sql:ee}):n.where;p=e&&iy(e,a)}let o=[],l=[];if(n.columns){let e=!1;for(let[t,i]of Object.entries(n.columns))void 0!==i&&t in r.columns&&(e||!0!==i||(e=!0),l.push(t));l.length>0&&(l=e?l.filter(e=>n.columns?.[e]===!0):Object.keys(r.columns).filter(e=>!l.includes(e)))}else l=Object.keys(r.columns);for(let e of l){let t=r.columns[e];o.push({tsKey:e,value:t})}let h=[];if(n.with&&(h=Object.entries(n.with).filter(e=>!!e[1]).map(([e,t])=>({tsKey:e,queryConfig:t,relation:r.relations[e]}))),n.extras)for(let[e,t]of Object.entries("function"==typeof n.extras?n.extras(s,{sql:ee}):n.extras))o.push({tsKey:e,value:ip(t,a)});for(let{tsKey:e,value:t}of o)d.push({dbKey:u(t,Y.Aliased)?t.fieldAlias:r.columns[e].name,tsKey:e,field:u(t,c)?ig(t,a):t,relationTableTsKey:void 0,isJson:!1,selection:[]});let y="function"==typeof n.orderBy?n.orderBy(s,{sql:ee,asc:ii,desc:is}):n.orderBy??[];for(let{tsKey:s,queryConfig:r,relation:o}of(Array.isArray(y)||(y=[y]),g=y.map(e=>u(e,c)?ig(e,a):iy(e,a)),f=n.limit,m=n.offset,h)){let n=function(e,t,i){if(u(i,io)&&i.config)return{fields:i.config.fields,references:i.config.references};let s=t[v(i.referencedTable)];if(!s)throw Error(`Table "${i.referencedTable[w.Symbol.Name]}" not found in schema`);let r=e[s];if(!r)throw Error(`Table "${s}" not found in schema`);let n=i.sourceTable,a=t[v(n)];if(!a)throw Error(`Table "${n[w.Symbol.Name]}" not found in schema`);let o=[];for(let e of Object.values(r.relations))(i.relationName&&i!==e&&e.relationName===i.relationName||!i.relationName&&e.referencedTable===i.sourceTable)&&o.push(e);if(o.length>1)throw i.relationName?Error(`There are multiple relations with name "${i.relationName}" in table "${s}"`):Error(`There are multiple relations between "${s}" and "${i.sourceTable[w.Symbol.Name]}". Please specify relation name`);if(o[0]&&u(o[0],io)&&o[0].config)return{fields:o[0].config.references,references:o[0].config.fields};throw Error(`There is not enough information to infer relation "${a}.${i.fieldName}"`)}(t,i,o),l=i[v(o.referencedTable)],c=`${a}_${s}`,h=ec(...n.fields.map((e,t)=>el(ig(n.references[t],c),ig(e,a)))),f=this.buildRelationalQuery({fullSchema:e,schema:t,tableNamesMap:i,table:e[l],tableConfig:t[l],queryConfig:u(o,io)?!0===r?{limit:1}:{...r,limit:1}:r,tableAlias:c,joinOn:h,nestedQueryRelation:o}),m=ee`(${f.sql})`.as(s);d.push({dbKey:s,tsKey:s,field:m,relationTableTsKey:l,isJson:!0,selection:f.selection})}}if(0===d.length)throw new i$({message:`No fields selected for table "${r.tsName}" ("${a}"). You need to have at least one item in "columns", "with" or "extras". If you need to select all columns, omit the "columns" key or set it to undefined.`});if(p=ec(l,p),o){let e=ee`json_array(${ee.join(d.map(({field:e})=>u(e,iO)?ee.identifier(this.casing.getColumnCasing(e)):u(e,Y.Aliased)?e.sql:e),ee`, `)})`;u(o,il)&&(e=ee`coalesce(json_group_array(${e}), json_array())`);let t=[{dbKey:"data",tsKey:"data",field:e.as("data"),isJson:!0,relationTableTsKey:r.tsName,selection:d}];void 0!==f||void 0!==m||g.length>0?(h=this.buildSelectQuery({table:im(s,a),fields:{},fieldsFlat:[{path:[],field:ee.raw("*")}],where:p,limit:f,offset:m,orderBy:g,setOperators:[]}),p=void 0,f=void 0,m=void 0,g=void 0):h=im(s,a),h=this.buildSelectQuery({table:u(h,sn)?h:new R(h,{},a),fields:{},fieldsFlat:t.map(({field:e})=>({path:[],field:u(e,c)?ig(e,a):e})),joins:y,where:p,limit:f,offset:m,orderBy:g,setOperators:[]})}else h=this.buildSelectQuery({table:im(s,a),fields:{},fieldsFlat:d.map(({field:e})=>({path:[],field:u(e,c)?ig(e,a):e})),joins:y,where:p,limit:f,offset:m,orderBy:g,setOperators:[]});return{tableTsKey:r.tsName,sql:h,selection:d}}}class sl extends so{static [l]="SQLiteSyncDialect";migrate(e,t,i){let s=void 0===i||"string"==typeof i?"__drizzle_migrations":i.migrationsTable??"__drizzle_migrations",r=ee`
3
- CREATE TABLE IF NOT EXISTS ${ee.identifier(s)} (
4
- id SERIAL PRIMARY KEY,
5
- hash text NOT NULL,
6
- created_at numeric
7
- )
8
- `;t.run(r);let n=t.values(ee`SELECT id, hash, created_at FROM ${ee.identifier(s)} ORDER BY created_at DESC LIMIT 1`)[0]??void 0;t.run(ee`BEGIN`);try{for(let i of e)if(!n||Number(n[2])<i.folderMillis){for(let e of i.sql)t.run(ee.raw(e));t.run(ee`INSERT INTO ${ee.identifier(s)} ("hash", "created_at") VALUES(${i.hash}, ${i.folderMillis})`)}t.run(ee`COMMIT`)}catch(e){throw t.run(ee`ROLLBACK`),e}}}class su extends so{static [l]="SQLiteAsyncDialect";async migrate(e,t,i){let s=void 0===i||"string"==typeof i?"__drizzle_migrations":i.migrationsTable??"__drizzle_migrations",r=ee`
9
- CREATE TABLE IF NOT EXISTS ${ee.identifier(s)} (
10
- id SERIAL PRIMARY KEY,
11
- hash text NOT NULL,
12
- created_at numeric
13
- )
14
- `;await t.run(r);let n=(await t.values(ee`SELECT id, hash, created_at FROM ${ee.identifier(s)} ORDER BY created_at DESC LIMIT 1`))[0]??void 0;await t.transaction(async t=>{for(let i of e)if(!n||Number(n[2])<i.folderMillis){for(let e of i.sql)await t.run(ee.raw(e));await t.run(ee`INSERT INTO ${ee.identifier(s)} ("hash", "created_at") VALUES(${i.hash}, ${i.folderMillis})`)}})}}class sc{static [l]="TypedQueryBuilder";getSelectedFields(){return this._.selectedFields}}class sh{static [l]="QueryPromise";[Symbol.toStringTag]="QueryPromise";catch(e){return this.then(void 0,e)}finally(e){return this.then(t=>(e?.(),t),t=>{throw e?.(),t})}then(e,t){return this.execute().then(e,t)}}class sd{constructor(e,t){this.name=e,this.value=t}static [l]="SQLiteCheckBuilder";brand;build(e){return new sf(e,this)}}class sf{constructor(e,t){this.table=e,this.name=t.name,this.value=t.value}static [l]="SQLiteCheck";name;value}class sm{constructor(e,t){this.name=e,this.unique=t}static [l]="SQLiteIndexBuilderOn";on(...e){return new sg(this.name,e,this.unique)}}class sg{static [l]="SQLiteIndexBuilder";config;constructor(e,t,i){this.config={name:e,columns:t,unique:i,where:void 0}}where(e){return this.config.where=e,this}build(e){return new sp(this.config,e)}}class sp{static [l]="SQLiteIndex";config;constructor(e,t){this.config={...e,table:t}}}class sy{static [l]="SQLitePrimaryKeyBuilder";columns;name;constructor(e,t){this.columns=e,this.name=t}build(e){return new sb(e,this.columns,this.name)}}class sb{constructor(e,t,i){this.table=e,this.columns=t,this.name=i}static [l]="SQLitePrimaryKey";columns;name;getName(){return this.name??`${this.table[sn.Symbol.Name]}_${this.columns.map(e=>e.name).join("_")}_pk`}}function sS(e){return u(e,sn)?[`${e[w.Symbol.BaseName]}`]:u(e,R)?e._.usedTables??[]:u(e,Y)?e.usedTables??[]:[]}class sw{static [l]="SQLiteSelectBuilder";fields;session;dialect;withList;distinct;constructor(e){this.fields=e.fields,this.session=e.session,this.dialect=e.dialect,this.withList=e.withList,this.distinct=e.distinct}from(e){let t,i=!!this.fields;return t=this.fields?this.fields:u(e,R)?Object.fromEntries(Object.keys(e._.selectedFields).map(t=>[t,e[t]])):u(e,sa)?e[k].selectedFields:u(e,Y)?{}:e[w.Symbol.Columns],new sT({table:e,fields:t,isPartialSelect:i,session:this.session,dialect:this.dialect,withList:this.withList,distinct:this.distinct})}}class sv extends sc{static [l]="SQLiteSelectQueryBuilder";_;config;joinsNotNullableMap;tableName;isPartialSelect;session;dialect;cacheConfig=void 0;usedTables=new Set;constructor({table:e,fields:t,isPartialSelect:i,session:s,dialect:r,withList:n,distinct:a}){for(const o of(super(),this.config={withList:n,table:e,fields:{...t},distinct:a,setOperators:[]},this.isPartialSelect=i,this.session=s,this.dialect=r,this._={selectedFields:t,config:this.config},this.tableName=ej(e),this.joinsNotNullableMap="string"==typeof this.tableName?{[this.tableName]:!0}:{},sS(e)))this.usedTables.add(o)}getUsedTables(){return[...this.usedTables]}createJoin(e){return(t,i)=>{let s=this.tableName,r=ej(t);for(let e of sS(t))this.usedTables.add(e);if("string"==typeof r&&this.config.joins?.some(e=>e.alias===r))throw Error(`Alias "${r}" is already used in this query`);if(!this.isPartialSelect&&(1===Object.keys(this.joinsNotNullableMap).length&&"string"==typeof s&&(this.config.fields={[s]:this.config.fields}),"string"==typeof r&&!u(t,Y))){let e=u(t,R)?t._.selectedFields:u(t,ea)?t[k].selectedFields:t[w.Symbol.Columns];this.config.fields[r]=e}if("function"==typeof i&&(i=i(new Proxy(this.config.fields,new ib({sqlAliasedBehavior:"sql",sqlBehavior:"sql"})))),this.config.joins||(this.config.joins=[]),this.config.joins.push({on:i,table:t,joinType:e,alias:r}),"string"==typeof r)switch(e){case"left":this.joinsNotNullableMap[r]=!1;break;case"right":this.joinsNotNullableMap=Object.fromEntries(Object.entries(this.joinsNotNullableMap).map(([e])=>[e,!1])),this.joinsNotNullableMap[r]=!0;break;case"cross":case"inner":this.joinsNotNullableMap[r]=!0;break;case"full":this.joinsNotNullableMap=Object.fromEntries(Object.entries(this.joinsNotNullableMap).map(([e])=>[e,!1])),this.joinsNotNullableMap[r]=!1}return this}}leftJoin=this.createJoin("left");rightJoin=this.createJoin("right");innerJoin=this.createJoin("inner");fullJoin=this.createJoin("full");crossJoin=this.createJoin("cross");createSetOperator(e,t){return i=>{let s="function"==typeof i?i(sx()):i;if(!eF(this.getSelectedFields(),s.getSelectedFields()))throw Error("Set operator error (union / intersect / except): selected fields are not the same or are in a different order");return this.config.setOperators.push({type:e,isAll:t,rightSelect:s}),this}}union=this.createSetOperator("union",!1);unionAll=this.createSetOperator("union",!0);intersect=this.createSetOperator("intersect",!1);except=this.createSetOperator("except",!1);addSetOperators(e){return this.config.setOperators.push(...e),this}where(e){return"function"==typeof e&&(e=e(new Proxy(this.config.fields,new ib({sqlAliasedBehavior:"sql",sqlBehavior:"sql"})))),this.config.where=e,this}having(e){return"function"==typeof e&&(e=e(new Proxy(this.config.fields,new ib({sqlAliasedBehavior:"sql",sqlBehavior:"sql"})))),this.config.having=e,this}groupBy(...e){if("function"==typeof e[0]){let t=e[0](new Proxy(this.config.fields,new ib({sqlAliasedBehavior:"alias",sqlBehavior:"sql"})));this.config.groupBy=Array.isArray(t)?t:[t]}else this.config.groupBy=e;return this}orderBy(...e){if("function"==typeof e[0]){let t=e[0](new Proxy(this.config.fields,new ib({sqlAliasedBehavior:"alias",sqlBehavior:"sql"}))),i=Array.isArray(t)?t:[t];this.config.setOperators.length>0?this.config.setOperators.at(-1).orderBy=i:this.config.orderBy=i}else this.config.setOperators.length>0?this.config.setOperators.at(-1).orderBy=e:this.config.orderBy=e;return this}limit(e){return this.config.setOperators.length>0?this.config.setOperators.at(-1).limit=e:this.config.limit=e,this}offset(e){return this.config.setOperators.length>0?this.config.setOperators.at(-1).offset=e:this.config.offset=e,this}getSQL(){return this.dialect.buildSelectQuery(this.config)}toSQL(){let{typings:e,...t}=this.dialect.sqlToQuery(this.getSQL());return t}as(e){let t=[];if(t.push(...sS(this.config.table)),this.config.joins)for(let e of this.config.joins)t.push(...sS(e.table));return new Proxy(new R(this.getSQL(),this.config.fields,e,!1,[...new Set(t)]),new ib({alias:e,sqlAliasedBehavior:"alias",sqlBehavior:"error"}))}getSelectedFields(){return new Proxy(this.config.fields,new ib({alias:this.tableName,sqlAliasedBehavior:"alias",sqlBehavior:"error"}))}$dynamic(){return this}}class sT extends sv{static [l]="SQLiteSelect";_prepare(e=!0){if(!this.session)throw Error("Cannot execute a query on a query builder. Please use a database instance instead.");let t=eO(this.config.fields),i=this.session[e?"prepareOneTimeQuery":"prepareQuery"](this.dialect.sqlToQuery(this.getSQL()),t,"all",!0,void 0,{type:"select",tables:[...this.usedTables]},this.cacheConfig);return i.joinsNotNullableMap=this.joinsNotNullableMap,i}$withCache(e){return this.cacheConfig=void 0===e?{config:{},enable:!0,autoInvalidate:!0}:!1===e?{enable:!1}:{enable:!0,autoInvalidate:!0,...e},this}prepare(){return this._prepare(!1)}run=e=>this._prepare().run(e);all=e=>this._prepare().all(e);get=e=>this._prepare().get(e);values=e=>this._prepare().values(e);async execute(){return this.all()}}for(let e of[sh])for(let t of Object.getOwnPropertyNames(e.prototype))"constructor"!==t&&Object.defineProperty(sT.prototype,t,Object.getOwnPropertyDescriptor(e.prototype,t)||Object.create(null));function s$(e,t){return(i,s,...r)=>{let n=[s,...r].map(i=>({type:e,isAll:t,rightSelect:i}));for(let e of n)if(!eF(i.getSelectedFields(),e.rightSelect.getSelectedFields()))throw Error("Set operator error (union / intersect / except): selected fields are not the same or are in a different order");return i.addSetOperators(n)}}let sx=()=>({union:sQ,unionAll:sN,intersect:sP,except:sC}),sQ=s$("union",!1),sN=s$("union",!0),sP=s$("intersect",!1),sC=s$("except",!1);class sB{static [l]="SQLiteQueryBuilder";dialect;dialectConfig;constructor(e){this.dialect=u(e,so)?e:void 0,this.dialectConfig=u(e,so)?void 0:e}$with=(e,t)=>{let i=this;return{as:s=>("function"==typeof s&&(s=s(i)),new Proxy(new M(s.getSQL(),t??("getSelectedFields"in s?s.getSelectedFields()??{}:{}),e,!0),new ib({alias:e,sqlAliasedBehavior:"alias",sqlBehavior:"error"})))}};with(...e){let t=this;return{select:function(i){return new sw({fields:i??void 0,session:void 0,dialect:t.getDialect(),withList:e})},selectDistinct:function(i){return new sw({fields:i??void 0,session:void 0,dialect:t.getDialect(),withList:e,distinct:!0})}}}select(e){return new sw({fields:e??void 0,session:void 0,dialect:this.getDialect()})}selectDistinct(e){return new sw({fields:e??void 0,session:void 0,dialect:this.getDialect(),distinct:!0})}getDialect(){return this.dialect||(this.dialect=new sl(this.dialectConfig)),this.dialect}}class sL extends sh{constructor(e,t,i,s){super(),this.table=e,this.session=t,this.dialect=i,this.config={table:e,withList:s}}static [l]="SQLiteDelete";config;where(e){return this.config.where=e,this}orderBy(...e){if("function"==typeof e[0]){let t=e[0](new Proxy(this.config.table[w.Symbol.Columns],new ib({sqlAliasedBehavior:"alias",sqlBehavior:"sql"}))),i=Array.isArray(t)?t:[t];this.config.orderBy=i}else this.config.orderBy=e;return this}limit(e){return this.config.limit=e,this}returning(e=this.table[sn.Symbol.Columns]){return this.config.returning=eO(e),this}getSQL(){return this.dialect.buildDeleteQuery(this.config)}toSQL(){let{typings:e,...t}=this.dialect.sqlToQuery(this.getSQL());return t}_prepare(e=!0){return this.session[e?"prepareOneTimeQuery":"prepareQuery"](this.dialect.sqlToQuery(this.getSQL()),this.config.returning,this.config.returning?"all":"run",!0,void 0,{type:"delete",tables:sS(this.config.table)})}prepare(){return this._prepare(!1)}run=e=>this._prepare().run(e);all=e=>this._prepare().all(e);get=e=>this._prepare().get(e);values=e=>this._prepare().values(e);async execute(e){return this._prepare().execute(e)}$dynamic(){return this}}class sq{constructor(e,t,i,s){this.table=e,this.session=t,this.dialect=i,this.withList=s}static [l]="SQLiteInsertBuilder";values(e){if(0===(e=Array.isArray(e)?e:[e]).length)throw Error("values() must be called with at least one value");let t=e.map(e=>{let t={},i=this.table[w.Symbol.Columns];for(let s of Object.keys(e)){let r=e[s];t[s]=u(r,Y)?r:new Z(r,i[s])}return t});return new sD(this.table,t,this.session,this.dialect,this.withList)}select(e){let t="function"==typeof e?e(new sB):e;if(!u(t,Y)&&!eF(this.table[f],t._.selectedFields))throw Error("Insert select error: selected fields are not the same or are in a different order compared to the table definition");return new sD(this.table,t,this.session,this.dialect,this.withList,!0)}}class sD extends sh{constructor(e,t,i,s,r,n){super(),this.session=i,this.dialect=s,this.config={table:e,values:t,withList:r,select:n}}static [l]="SQLiteInsert";config;returning(e=this.config.table[sn.Symbol.Columns]){return this.config.returning=eO(e),this}onConflictDoNothing(e={}){if(this.config.onConflict||(this.config.onConflict=[]),void 0===e.target)this.config.onConflict.push(ee` on conflict do nothing`);else{let t=Array.isArray(e.target)?ee`${e.target}`:ee`${[e.target]}`,i=e.where?ee` where ${e.where}`:ee``;this.config.onConflict.push(ee` on conflict ${t} do nothing${i}`)}return this}onConflictDoUpdate(e){if(e.where&&(e.targetWhere||e.setWhere))throw Error('You cannot use both "where" and "targetWhere"/"setWhere" at the same time - "where" is deprecated, use "targetWhere" or "setWhere" instead.');this.config.onConflict||(this.config.onConflict=[]);let t=e.where?ee` where ${e.where}`:void 0,i=e.targetWhere?ee` where ${e.targetWhere}`:void 0,s=e.setWhere?ee` where ${e.setWhere}`:void 0,r=Array.isArray(e.target)?ee`${e.target}`:ee`${[e.target]}`,n=this.dialect.buildUpdateSet(this.config.table,eA(this.config.table,e.set));return this.config.onConflict.push(ee` on conflict ${r}${i} do update set ${n}${t}${s}`),this}getSQL(){return this.dialect.buildInsertQuery(this.config)}toSQL(){let{typings:e,...t}=this.dialect.sqlToQuery(this.getSQL());return t}_prepare(e=!0){return this.session[e?"prepareOneTimeQuery":"prepareQuery"](this.dialect.sqlToQuery(this.getSQL()),this.config.returning,this.config.returning?"all":"run",!0,void 0,{type:"insert",tables:sS(this.config.table)})}prepare(){return this._prepare(!1)}run=e=>this._prepare().run(e);all=e=>this._prepare().all(e);get=e=>this._prepare().get(e);values=e=>this._prepare().values(e);async execute(){return this.config.returning?this.all():this.run()}$dynamic(){return this}}class sO{constructor(e,t,i,s){this.table=e,this.session=t,this.dialect=i,this.withList=s}static [l]="SQLiteUpdateBuilder";set(e){return new sF(this.table,eA(this.table,e),this.session,this.dialect,this.withList)}}class sF extends sh{constructor(e,t,i,s,r){super(),this.session=i,this.dialect=s,this.config={set:t,table:e,withList:r,joins:[]}}static [l]="SQLiteUpdate";config;from(e){return this.config.from=e,this}createJoin(e){return(t,i)=>{let s=ej(t);if("string"==typeof s&&this.config.joins.some(e=>e.alias===s))throw Error(`Alias "${s}" is already used in this query`);if("function"==typeof i){let e=this.config.from?u(t,sn)?t[w.Symbol.Columns]:u(t,R)?t._.selectedFields:u(t,sa)?t[k].selectedFields:void 0:void 0;i=i(new Proxy(this.config.table[w.Symbol.Columns],new ib({sqlAliasedBehavior:"sql",sqlBehavior:"sql"})),e&&new Proxy(e,new ib({sqlAliasedBehavior:"sql",sqlBehavior:"sql"})))}return this.config.joins.push({on:i,table:t,joinType:e,alias:s}),this}}leftJoin=this.createJoin("left");rightJoin=this.createJoin("right");innerJoin=this.createJoin("inner");fullJoin=this.createJoin("full");where(e){return this.config.where=e,this}orderBy(...e){if("function"==typeof e[0]){let t=e[0](new Proxy(this.config.table[w.Symbol.Columns],new ib({sqlAliasedBehavior:"alias",sqlBehavior:"sql"}))),i=Array.isArray(t)?t:[t];this.config.orderBy=i}else this.config.orderBy=e;return this}limit(e){return this.config.limit=e,this}returning(e=this.config.table[sn.Symbol.Columns]){return this.config.returning=eO(e),this}getSQL(){return this.dialect.buildUpdateQuery(this.config)}toSQL(){let{typings:e,...t}=this.dialect.sqlToQuery(this.getSQL());return t}_prepare(e=!0){return this.session[e?"prepareOneTimeQuery":"prepareQuery"](this.dialect.sqlToQuery(this.getSQL()),this.config.returning,this.config.returning?"all":"run",!0,void 0,{type:"insert",tables:sS(this.config.table)})}prepare(){return this._prepare(!1)}run=e=>this._prepare().run(e);all=e=>this._prepare().all(e);get=e=>this._prepare().get(e);values=e=>this._prepare().values(e);async execute(){return this.config.returning?this.all():this.run()}$dynamic(){return this}}class sA extends Y{constructor(e){super(sA.buildEmbeddedCount(e.source,e.filters).queryChunks),this.params=e,this.session=e.session,this.sql=sA.buildCount(e.source,e.filters)}sql;static [l]="SQLiteCountBuilderAsync";[Symbol.toStringTag]="SQLiteCountBuilderAsync";session;static buildEmbeddedCount(e,t){return ee`(select count(*) from ${e}${ee.raw(" where ").if(t)}${t})`}static buildCount(e,t){return ee`select count(*) from ${e}${ee.raw(" where ").if(t)}${t}`}then(e,t){return Promise.resolve(this.session.count(this.sql)).then(e,t)}catch(e){return this.then(void 0,e)}finally(e){return this.then(t=>(e?.(),t),t=>{throw e?.(),t})}}class sj{constructor(e,t,i,s,r,n,a,o){this.mode=e,this.fullSchema=t,this.schema=i,this.tableNamesMap=s,this.table=r,this.tableConfig=n,this.dialect=a,this.session=o}static [l]="SQLiteAsyncRelationalQueryBuilder";findMany(e){return"sync"===this.mode?new s_(this.fullSchema,this.schema,this.tableNamesMap,this.table,this.tableConfig,this.dialect,this.session,e||{},"many"):new sI(this.fullSchema,this.schema,this.tableNamesMap,this.table,this.tableConfig,this.dialect,this.session,e||{},"many")}findFirst(e){return"sync"===this.mode?new s_(this.fullSchema,this.schema,this.tableNamesMap,this.table,this.tableConfig,this.dialect,this.session,e?{...e,limit:1}:{limit:1},"first"):new sI(this.fullSchema,this.schema,this.tableNamesMap,this.table,this.tableConfig,this.dialect,this.session,e?{...e,limit:1}:{limit:1},"first")}}class sI extends sh{constructor(e,t,i,s,r,n,a,o,l){super(),this.fullSchema=e,this.schema=t,this.tableNamesMap=i,this.table=s,this.tableConfig=r,this.dialect=n,this.session=a,this.config=o,this.mode=l}static [l]="SQLiteAsyncRelationalQuery";mode;getSQL(){return this.dialect.buildRelationalQuery({fullSchema:this.fullSchema,schema:this.schema,tableNamesMap:this.tableNamesMap,table:this.table,tableConfig:this.tableConfig,queryConfig:this.config,tableAlias:this.tableConfig.tsName}).sql}_prepare(e=!1){let{query:t,builtQuery:i}=this._toSQL();return this.session[e?"prepareOneTimeQuery":"prepareQuery"](i,void 0,"first"===this.mode?"get":"all",!0,(e,i)=>{let s=e.map(e=>(function e(t,i,s,r,n=e=>e){let a={};for(let[o,l]of r.entries())if(l.isJson){let r=i.relations[l.tsKey],c=s[o],h="string"==typeof c?JSON.parse(c):c;a[l.tsKey]=u(r,io)?h&&e(t,t[l.relationTableTsKey],h,l.selection,n):h.map(i=>e(t,t[l.relationTableTsKey],i,l.selection,n))}else{let e,t=n(s[o]),i=l.field;e=u(i,c)?i:u(i,Y)?i.decoder:i.sql.decoder,a[l.tsKey]=null===t?null:e.mapFromDriverValue(t)}return a})(this.schema,this.tableConfig,e,t.selection,i));return"first"===this.mode?s[0]:s})}prepare(){return this._prepare(!1)}_toSQL(){let e=this.dialect.buildRelationalQuery({fullSchema:this.fullSchema,schema:this.schema,tableNamesMap:this.tableNamesMap,table:this.table,tableConfig:this.tableConfig,queryConfig:this.config,tableAlias:this.tableConfig.tsName}),t=this.dialect.sqlToQuery(e.sql);return{query:e,builtQuery:t}}toSQL(){return this._toSQL().builtQuery}executeRaw(){return"first"===this.mode?this._prepare(!1).get():this._prepare(!1).all()}async execute(){return this.executeRaw()}}class s_ extends sI{static [l]="SQLiteSyncRelationalQuery";sync(){return this.executeRaw()}}class sV extends sh{constructor(e,t,i,s,r){super(),this.execute=e,this.getSQL=t,this.dialect=s,this.mapBatchResult=r,this.config={action:i}}static [l]="SQLiteRaw";config;getQuery(){return{...this.dialect.sqlToQuery(this.getSQL()),method:this.config.action}}mapResult(e,t){return t?this.mapBatchResult(e):e}_prepare(){return this}isResponseInArrayMode(){return!1}}class sE{constructor(e,t,i,s){this.resultKind=e,this.dialect=t,this.session=i,this._=s?{schema:s.schema,fullSchema:s.fullSchema,tableNamesMap:s.tableNamesMap}:{schema:void 0,fullSchema:{},tableNamesMap:{}},this.query={};const r=this.query;if(this._.schema)for(const[n,a]of Object.entries(this._.schema))r[n]=new sj(e,s.fullSchema,this._.schema,this._.tableNamesMap,s.fullSchema[n],a,t,i);this.$cache={invalidate:async e=>{}}}static [l]="BaseSQLiteDatabase";query;$with=(e,t)=>{let i=this;return{as:s=>("function"==typeof s&&(s=s(new sB(i.dialect))),new Proxy(new M(s.getSQL(),t??("getSelectedFields"in s?s.getSelectedFields()??{}:{}),e,!0),new ib({alias:e,sqlAliasedBehavior:"alias",sqlBehavior:"error"})))}};$count(e,t){return new sA({source:e,filters:t,session:this.session})}with(...e){let t=this;return{select:function(i){return new sw({fields:i??void 0,session:t.session,dialect:t.dialect,withList:e})},selectDistinct:function(i){return new sw({fields:i??void 0,session:t.session,dialect:t.dialect,withList:e,distinct:!0})},update:function(i){return new sO(i,t.session,t.dialect,e)},insert:function(i){return new sq(i,t.session,t.dialect,e)},delete:function(i){return new sL(i,t.session,t.dialect,e)}}}select(e){return new sw({fields:e??void 0,session:this.session,dialect:this.dialect})}selectDistinct(e){return new sw({fields:e??void 0,session:this.session,dialect:this.dialect,distinct:!0})}update(e){return new sO(e,this.session,this.dialect)}$cache;insert(e){return new sq(e,this.session,this.dialect)}delete(e){return new sL(e,this.session,this.dialect)}run(e){let t="string"==typeof e?ee.raw(e):e.getSQL();return"async"===this.resultKind?new sV(async()=>this.session.run(t),()=>t,"run",this.dialect,this.session.extractRawRunValueFromBatchResult.bind(this.session)):this.session.run(t)}all(e){let t="string"==typeof e?ee.raw(e):e.getSQL();return"async"===this.resultKind?new sV(async()=>this.session.all(t),()=>t,"all",this.dialect,this.session.extractRawAllValueFromBatchResult.bind(this.session)):this.session.all(t)}get(e){let t="string"==typeof e?ee.raw(e):e.getSQL();return"async"===this.resultKind?new sV(async()=>this.session.get(t),()=>t,"get",this.dialect,this.session.extractRawGetValueFromBatchResult.bind(this.session)):this.session.get(t)}values(e){let t="string"==typeof e?ee.raw(e):e.getSQL();return"async"===this.resultKind?new sV(async()=>this.session.values(t),()=>t,"values",this.dialect,this.session.extractRawValuesValueFromBatchResult.bind(this.session)):this.session.values(t)}transaction(e,t){return this.session.transaction(e,t)}}class sz{static [l]="Cache"}class sR extends sz{strategy(){return"all"}static [l]="NoopCache";async get(e){}async put(e,t,i,s){}async onMutate(e){}}async function sM(e,t){let i=`${e}-${JSON.stringify(t)}`,s=new TextEncoder().encode(i);return[...new Uint8Array(await crypto.subtle.digest("SHA-256",s))].map(e=>e.toString(16).padStart(2,"0")).join("")}class sU extends sh{constructor(e){super(),this.resultCb=e}static [l]="ExecuteResultSync";async execute(){return this.resultCb()}sync(){return this.resultCb()}}class sk{constructor(e,t,i,s,r,n){this.mode=e,this.executeMethod=t,this.query=i,this.cache=s,this.queryMetadata=r,this.cacheConfig=n,s&&"all"===s.strategy()&&void 0===n&&(this.cacheConfig={enable:!0,autoInvalidate:!0}),this.cacheConfig?.enable||(this.cacheConfig=void 0)}static [l]="PreparedQuery";joinsNotNullableMap;async queryWithCache(e,t,i){if(void 0===this.cache||u(this.cache,sR)||void 0===this.queryMetadata||this.cacheConfig&&!this.cacheConfig.enable)try{return await i()}catch(i){throw new ix(e,t,i)}if(("insert"===this.queryMetadata.type||"update"===this.queryMetadata.type||"delete"===this.queryMetadata.type)&&this.queryMetadata.tables.length>0)try{let[e]=await Promise.all([i(),this.cache.onMutate({tables:this.queryMetadata.tables})]);return e}catch(i){throw new ix(e,t,i)}if(!this.cacheConfig)try{return await i()}catch(i){throw new ix(e,t,i)}if("select"===this.queryMetadata.type){let s=await this.cache.get(this.cacheConfig.tag??await sM(e,t),this.queryMetadata.tables,void 0!==this.cacheConfig.tag,this.cacheConfig.autoInvalidate);if(void 0===s){let s;try{s=await i()}catch(i){throw new ix(e,t,i)}return await this.cache.put(this.cacheConfig.tag??await sM(e,t),s,this.cacheConfig.autoInvalidate?this.queryMetadata.tables:[],void 0!==this.cacheConfig.tag,this.cacheConfig.config),s}return s}try{return await i()}catch(i){throw new ix(e,t,i)}}getQuery(){return this.query}mapRunResult(e,t){return e}mapAllResult(e,t){throw Error("Not implemented")}mapGetResult(e,t){throw Error("Not implemented")}execute(e){return"async"===this.mode?this[this.executeMethod](e):new sU(()=>this[this.executeMethod](e))}mapResult(e,t){switch(this.executeMethod){case"run":return this.mapRunResult(e,t);case"all":return this.mapAllResult(e,t);case"get":return this.mapGetResult(e,t)}}}class sK{constructor(e){this.dialect=e}static [l]="SQLiteSession";prepareOneTimeQuery(e,t,i,s,r,n,a){return this.prepareQuery(e,t,i,s,r,n,a)}run(e){let t=this.dialect.sqlToQuery(e);try{return this.prepareOneTimeQuery(t,void 0,"run",!1).run()}catch(e){throw new i$({cause:e,message:`Failed to run the query '${t.sql}'`})}}extractRawRunValueFromBatchResult(e){return e}all(e){return this.prepareOneTimeQuery(this.dialect.sqlToQuery(e),void 0,"run",!1).all()}extractRawAllValueFromBatchResult(e){throw Error("Not implemented")}get(e){return this.prepareOneTimeQuery(this.dialect.sqlToQuery(e),void 0,"run",!1).get()}extractRawGetValueFromBatchResult(e){throw Error("Not implemented")}values(e){return this.prepareOneTimeQuery(this.dialect.sqlToQuery(e),void 0,"run",!1).values()}async count(e){return(await this.values(e))[0][0]}extractRawValuesValueFromBatchResult(e){throw Error("Not implemented")}}class sJ extends sE{constructor(e,t,i,s,r=0){super(e,t,i,s),this.schema=s,this.nestedIndex=r}static [l]="SQLiteTransaction";rollback(){throw new iQ}}class sW extends sK{constructor(e,t,i,s={}){super(t),this.client=e,this.schema=i,this.logger=s.logger??new eq,this.cache=s.cache??new sR}static [l]="BetterSQLiteSession";logger;cache;prepareQuery(e,t,i,s,r,n,a){return new sG(this.client.prepare(e.sql),e,this.logger,this.cache,n,a,t,i,s,r)}transaction(e,t={}){let i=new sY("sync",this.dialect,this,this.schema);return this.client.transaction(e)[t.behavior??"deferred"](i)}}class sY extends sJ{static [l]="BetterSQLiteTransaction";transaction(e){let t=`sp${this.nestedIndex}`,i=new sY("sync",this.dialect,this.session,this.schema,this.nestedIndex+1);this.session.run(ee.raw(`savepoint ${t}`));try{let s=e(i);return this.session.run(ee.raw(`release savepoint ${t}`)),s}catch(e){throw this.session.run(ee.raw(`rollback to savepoint ${t}`)),e}}}class sG extends sk{constructor(e,t,i,s,r,n,a,o,l,u){super("sync",o,t,s,r,n),this.stmt=e,this.logger=i,this.fields=a,this._isResponseInArrayMode=l,this.customResultMapper=u}static [l]="BetterSQLitePreparedQuery";run(e){let t=er(this.query.params,e??{});return this.logger.logQuery(this.query.sql,t),this.stmt.run(...t)}all(e){let{fields:t,joinsNotNullableMap:i,query:s,logger:r,stmt:n,customResultMapper:a}=this;if(!t&&!a){let t=er(s.params,e??{});return r.logQuery(s.sql,t),n.all(...t)}let o=this.values(e);return a?a(o):o.map(e=>eD(t,e,i))}get(e){let t=er(this.query.params,e??{});this.logger.logQuery(this.query.sql,t);let{fields:i,stmt:s,joinsNotNullableMap:r,customResultMapper:n}=this;if(!i&&!n)return s.get(...t);let a=s.raw().get(...t);if(a)return n?n([a]):eD(i,a,r)}values(e){let t=er(this.query.params,e??{});return this.logger.logQuery(this.query.sql,t),this.stmt.raw().all(...t)}isResponseInArrayMode(){return this._isResponseInArrayMode}}class sH extends sE{static [l]="BetterSQLite3Database"}function sX(e,t={}){let i,s,r=new sl({casing:t.casing});if(!0===t.logger?i=new eL:!1!==t.logger&&(i=t.logger),t.schema){let e=function(e,t){1===Object.keys(e).length&&"default"in e&&!u(e.default,w)&&(e=e.default);let i={},s={},r={};for(let[n,a]of Object.entries(e))if(u(a,w)){let e=v(a),t=s[e];for(let s of(i[e]=n,r[n]={tsName:n,dbName:a[w.Symbol.Name],schema:a[w.Symbol.Schema],columns:a[w.Symbol.Columns],relations:t?.relations??{},primaryKey:t?.primaryKey??[]},Object.values(a[w.Symbol.Columns])))s.primary&&r[n].primaryKey.push(s);let o=a[w.Symbol.ExtraConfigBuilder]?.(a[w.Symbol.ExtraConfigColumns]);if(o)for(let e of Object.values(o))u(e,ie)&&r[n].primaryKey.push(...e.columns)}else if(u(a,ia)){let e,n=v(a.table),o=i[n];for(let[i,l]of Object.entries(a.config(t(a.table))))if(o){let t=r[o];t.relations[i]=l,e&&t.primaryKey.push(...e)}else n in s||(s[n]={relations:{},primaryKey:e}),s[n].relations[i]=l}return{tables:r,tableNamesMap:i}}(t.schema,iu);s={fullSchema:t.schema,schema:e.tables,tableNamesMap:e.tableNamesMap}}let n=new sW(e,r,s,{logger:i}),a=new sH("sync",r,n,s);return a.$client=e,a}function sZ(...e){if(void 0===e[0]||"string"==typeof e[0])return sX(void 0===e[0]?new o.default:new o.default(e[0]),e[1]);if(function(e){if("object"!=typeof e||null===e||"Object"!==e.constructor.name)return!1;if("logger"in e){let t=typeof e.logger;return"boolean"===t||"object"===t&&"function"==typeof e.logger.logQuery||"undefined"===t}if("schema"in e){let t=typeof e.schema;return"object"===t||"undefined"===t}if("casing"in e){let t=typeof e.casing;return"string"===t||"undefined"===t}if("mode"in e)return"default"===e.mode&&"planetscale"===e.mode&&void 0===e.mode;if("connection"in e){let t=typeof e.connection;return"string"===t||"object"===t||"undefined"===t}if("client"in e){let t=typeof e.client;return"object"===t||"function"===t||"undefined"===t}return 0===Object.keys(e).length}(e[0])){let{connection:t,client:i,...s}=e[0];if(i)return sX(i,s);if("object"==typeof t){let{source:e,...i}=t;return sX(new o.default(e,i),s)}return sX(new o.default(t),s)}return sX(e[0],e[1])}(sZ||(sZ={})).mock=function(e){return sX({},e)};let s0=function(e,t,i,s,r=e){let n=new sn(e,void 0,r),a=Object.fromEntries(Object.entries("function"==typeof t?t({blob:iE,customType:iM,integer:iX,numeric:i5,real:i7,text:ss}):t).map(([e,t])=>{t.setName(e);let i=t.build(n);return n[sr].push(...t.buildForeignKeys(i,n)),[e,i]})),o=Object.assign(n,a);return o[w.Symbol.Columns]=a,o[w.Symbol.ExtraConfigColumns]=a,i&&(o[sn.Symbol.ExtraConfigBuilder]=i),o}("config",{key:ss("key").primaryKey(),value:ss("value"),updatedAt:ss("updated_at").default("CURRENT_TIMESTAMP")},void 0),s1=null;function s2(e,t){let i;if((0,r.existsSync)(e)){try{i=(0,r.readdirSync)(e)}catch{return}for(let s of i){let i=(0,n.join)(e,s);if(s.startsWith("@"))try{for(let e of(0,r.readdirSync)(i)){let s=(0,n.join)(i,e),r=s6(s);r&&!t.has(r.id)&&t.set(r.id,r)}}catch{}else{let e=s6(i);e&&!t.has(e.id)&&t.set(e.id,e)}}}}function s4(){if(s1)return s1;let e=new Map,t=(0,n.join)((0,a.homedir)(),".openclaw","kitchen","plugins");return s2((0,n.join)(t,"node_modules"),e),s2((0,n.resolve)("node_modules"),e),s1=e,e}function s6(e){try{let t=(0,n.join)(e,"package.json");if(!(0,r.existsSync)(t))return null;let i=JSON.parse((0,r.readFileSync)(t,"utf8")).kitchenPlugin;if(!i||"object"!=typeof i)return null;if(!i.id||!i.name||!Array.isArray(i.teamTypes))return console.warn(`Invalid Kitchen plugin manifest in ${e}`),null;let s=Array.isArray(i.tabs)?i.tabs:[];for(let t of s)if(t.bundle&&!(0,r.existsSync)((0,n.join)(e,t.bundle)))return console.warn(`Plugin ${i.id}: bundle not found at ${t.bundle}`),null;return{id:String(i.id),name:String(i.name),teamTypes:i.teamTypes,tabs:s.map(t=>({id:String(t.id||""),label:String(t.label||""),icon:String(t.icon||"folder"),bundle:(0,n.resolve)(e,String(t.bundle||""))})),apiRoutes:i.apiRoutes?(0,n.resolve)(e,String(i.apiRoutes)):void 0,migrations:i.migrations?(0,n.resolve)(e,String(i.migrations)):void 0}}catch(t){return console.warn(`Failed to load plugin manifest from ${e}:`,t),null}}function s5(t,i,s){let r=function(t){let i=(0,n.resolve)((0,a.homedir)(),".openclaw","kitchen","plugins",t),s=(0,n.join)(i,`${t}.db`);try{try{e.r(22734).mkdirSync(i,{recursive:!0})}catch{}}catch{}let r=new o.default(s),l=sZ(r,{schema:{config:s0}});return r.exec(`
15
- CREATE TABLE IF NOT EXISTS config (
16
- key TEXT PRIMARY KEY,
17
- value TEXT,
18
- updated_at TEXT DEFAULT CURRENT_TIMESTAMP
19
- )
20
- `),l}(t);return{db:r,teamDir:i,encrypt:t=>{let i=e.r(54799),r=i.pbkdf2Sync(s,"kitchen-plugin-salt",1e5,32,"sha256"),n=i.randomBytes(16),a=i.createCipher("aes-256-gcm",r);a.setAAD(n);let o=a.update(JSON.stringify(t),"utf8","base64");o+=a.final("base64");let l=a.getAuthTag();return Buffer.concat([n,l,Buffer.from(o,"base64")]).toString("base64")},decrypt:t=>{let i=e.r(54799),r=i.pbkdf2Sync(s,"kitchen-plugin-salt",1e5,32,"sha256"),n=Buffer.from(t,"base64"),a=n.subarray(0,16),o=n.subarray(16,32),l=n.subarray(32).toString("base64"),u=i.createDecipher("aes-256-gcm",r);u.setAAD(a),u.setAuthTag(o);let c=u.update(l,"base64","utf8");return JSON.parse(c+=u.final("utf8"))},registerCron:e=>{console.log(`Plugin ${t} registered cron:`,e)},getConfig:e=>{let t=r.select().from(s0).where(el(s0.key,e)).get();return t?.value||null},setConfig:(e,t)=>{r.insert(s0).values({key:e,value:t,updatedAt:new Date().toISOString()}).onConflictDoUpdate({target:s0.key,set:{value:t,updatedAt:new Date().toISOString()}})}}}function s3(e){return Array.from(s4().values()).filter(t=>t.teamTypes.includes(e))}e.s(["createPluginContext",()=>s5,"discoverKitchenPlugins",()=>s4,"getPluginsForTeamType",()=>s3],10353)}];
21
-
22
- //# sourceMappingURL=%5Broot-of-the-server%5D__497e7a9d._.js.map