@rizom/brain 0.2.0-alpha.189 → 0.2.0-alpha.190
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/brain.js +1145 -1282
- package/dist/index.js +2 -2
- package/dist/index.js.map +1 -1
- package/dist/site.js +5 -5
- package/dist/site.js.map +3 -3
- package/package.json +1 -1
package/dist/index.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
// @bun
|
|
2
|
-
import{Pa as r,Qa as o}from"./chunks/index-wvwq0pm7.js";import"./chunks/index-gmfgjnnw.js";function t(i){return i}var e={name:"@rizom/brain",version:"0.2.0-alpha.
|
|
2
|
+
import{Pa as r,Qa as o}from"./chunks/index-wvwq0pm7.js";import"./chunks/index-gmfgjnnw.js";function t(i){return i}var e={name:"@rizom/brain",version:"0.2.0-alpha.190",description:"Brain runtime + CLI \u2014 scaffold, run, and manage AI brain instances",keywords:["brain","ai","cli","mcp","agent","personal-ai","knowledge-management"],license:"Apache-2.0",author:"Yeehaa <yeehaa@rizom.ai> (https://rizom.ai)",bin:{brain:"./dist/brain.js"},bugs:"https://github.com/rizom-ai/brains/issues",dependencies:{"@clack/prompts":"^1.5.1","@modelcontextprotocol/sdk":"^1.29.0","@tailwindcss/postcss":"^4.3.1","@tailwindcss/typography":"^0.5.20",postcss:"^8.5.15",preact:"^10.27.2","preact-render-to-string":"^6.7.0",tailwindcss:"^4.3.1",zod:"^4.1.8"},devDependencies:{"@brains/app":"workspace:*","@brains/build-tools":"workspace:*","@brains/content-formatters":"workspace:*","@brains/deploy-support":"workspace:*","@brains/eslint-config":"workspace:*","@brains/mcp-service":"workspace:*","@brains/plugins":"workspace:*","@brains/ranger":"workspace:*","@brains/relay":"workspace:*","@brains/rover":"workspace:*","@brains/site-composition":"workspace:*","@brains/site-default":"workspace:*","@brains/site-personal":"workspace:*","@brains/site-professional":"workspace:*","@brains/theme-rizom":"workspace:*","@brains/typescript-config":"workspace:*","@brains/utils":"workspace:*","@rizom/theme-default":"workspace:*","@types/bun":"^1.3.14",rolldown:"^1.0.0","rolldown-plugin-dts":"^0.27.4",typescript:"^7.0.2"},engines:{bun:">=1.3.3"},exports:{".":{types:"./dist/index.d.ts",import:"./dist/index.js"},"./cli":"./dist/brain.js","./plugins":{types:"./dist/plugins.d.ts",import:"./dist/plugins.js"},"./entities":{types:"./dist/entities.d.ts",import:"./dist/entities.js"},"./services":{types:"./dist/services.d.ts",import:"./dist/services.js"},"./interfaces":{types:"./dist/interfaces.d.ts",import:"./dist/interfaces.js"},"./templates":{types:"./dist/templates.d.ts",import:"./dist/templates.js"},"./site":{types:"./dist/site.d.ts",import:"./dist/site.js"},"./themes":{types:"./dist/themes.d.ts",import:"./dist/themes.js"},"./deploy":{types:"./dist/deploy.d.ts",import:"./dist/deploy.js"},"./tsconfig.instance.json":"./tsconfig.instance.json"},files:["dist","templates","tsconfig.instance.json"],homepage:"https://github.com/rizom-ai/brains/tree/main/packages/brain-cli#readme",optionalDependencies:{"@bitwarden/sdk-napi":"^1.0.0","@libsql/client":"^0.17.4","@tailwindcss/oxide":"^4.1.4",lightningcss:"^1.29.2","playwright-core":"^1.61.0","react-devtools-core":"^7.0.1",sharp:"^0.35.1"},publishConfig:{access:"public"},repository:{type:"git",url:"https://github.com/rizom-ai/brains.git",directory:"packages/brain-cli"},scripts:{build:"bun scripts/build.ts","dev:start":"bun scripts/build.ts && bun dist/brain.js start",lint:"eslint . --max-warnings 0","lint:fix":"eslint . --max-warnings 0 --fix",prepublishOnly:"bun scripts/build.ts",test:"bun test",typecheck:"tsc --noEmit"},type:"module"};var n=e.version;export{o as z,t as defineBrain,r as ZodError,n as PLUGIN_API_VERSION};
|
|
3
3
|
|
|
4
|
-
//# debugId=
|
|
4
|
+
//# debugId=7F1DAC912BDE1C0D64756E2164756E21
|
|
5
5
|
//# sourceMappingURL=index.js.map
|
package/dist/index.js.map
CHANGED
|
@@ -6,6 +6,6 @@
|
|
|
6
6
|
"import packageJson from \"../package.json\" with { type: \"json\" };\n\n/**\n * Pre-v1 external plugin API marker.\n *\n * During alpha, the external plugin API compatibility marker tracks the\n * published @rizom/brain package version. Once the plugin API is declared\n * stable, this can move to an independent semver contract such as 1.0.0.\n */\nexport const PLUGIN_API_VERSION: string = packageJson.version;\n"
|
|
7
7
|
],
|
|
8
8
|
"mappings": ";0FA0EO,UAAS,CAAW,CAAC,EAA8C,CACxE,OAAO,6yFClEF,IAAM,EAA6B,EAAY",
|
|
9
|
-
"debugId": "
|
|
9
|
+
"debugId": "7F1DAC912BDE1C0D64756E2164756E21",
|
|
10
10
|
"names": []
|
|
11
11
|
}
|
package/dist/site.js
CHANGED
|
@@ -201,7 +201,7 @@ Defaulting to 2020, but this will stop working in the future.`)),m.ecmaVersion=1
|
|
|
201
201
|
Default "index" lookups for the main are deprecated for ES modules.`,"DeprecationWarning","DEP0151")}function s4(h){try{return(0,X0.statSync)(h)}catch{}}function zo(h){let m=(0,X0.statSync)(h,{throwIfNoEntry:!1}),y=m?m.isFile():void 0;return y!=null&&y}function PW(h,m,y){let K;if(m.main!==void 0){if(K=new URL(m.main,h),zo(K))return K;let F=[`./${m.main}.js`,`./${m.main}.json`,`./${m.main}.node`,`./${m.main}/index.js`,`./${m.main}/index.json`,`./${m.main}/index.node`],R=-1;for(;++R<F.length&&(K=new URL(F[R],h),!zo(K));)K=void 0;if(K)return E4(K,h,y,m.main),K}let O=["./index.js","./index.json","./index.node"],U=-1;for(;++U<O.length&&(K=new URL(O[U],h),!zo(K));)K=void 0;if(K)return E4(K,h,y,m.main),K;throw new p4((0,x0.fileURLToPath)(new URL(".",h)),(0,x0.fileURLToPath)(y))}function Yo(h,m,y){return new FW((0,x0.fileURLToPath)(new URL(".",m)),h,y&&(0,x0.fileURLToPath)(y))}function On(h,m,y,K,O){return m=typeof m=="object"&&m!==null?JSON.stringify(m,null,""):`${m}`,new GW((0,x0.fileURLToPath)(new URL(".",y)),h,m,K,O&&(0,x0.fileURLToPath)(O))}function MW(h,m,y,K,O,U,F,R,x){if(m!==""&&!U&&h[h.length-1]!=="/")throw On(y,h,K,F,O);if(!h.startsWith("./")){if(F&&!h.startsWith("../")&&!h.startsWith("/")){let v0=!1;try{new URL(h),v0=!0}catch{}if(!v0)return lv(U?Zu.call(zu,h,()=>m):h+m,K,x)}throw On(y,h,K,F,O)}if(D4.exec(h.slice(2))!==null){if(x4.exec(h.slice(2))!==null)throw On(y,h,K,F,O);if(!R){let v0=U?y.replace("*",()=>m):y+m;j4(U?Zu.call(zu,h,()=>m):h,v0,y,K,F,O,!0)}}let i0=new URL(h,K),s=i0.pathname,$0=new URL(".",K).pathname;if(!s.startsWith($0))throw On(y,h,K,F,O);if(m==="")return i0;if(D4.exec(m)!==null){let v0=U?y.replace("*",()=>m):y+m;if(x4.exec(m)===null){if(!R)j4(U?Zu.call(zu,h,()=>m):h,v0,y,K,F,O,!1)}else(function(Y0,fl,Il,L0,il){let F0=`request is not a valid match in pattern "${fl}" for the "${L0?"imports":"exports"}" resolution of ${(0,x0.fileURLToPath)(Il)}`;throw new Xu(Y0,F0,il&&(0,x0.fileURLToPath)(il))})(v0,y,K,F,O)}return U?new URL(Zu.call(zu,i0.href,()=>m)):new URL(m,i0)}function VW(h){let m=Number(h);return`${m}`===h&&(m>=0&&m<4294967295)}function Ai(h,m,y,K,O,U,F,R,x){if(typeof m=="string")return MW(m,y,K,h,O,U,F,R,x);if(Array.isArray(m)){let i0=m;if(i0.length===0)return null;let s,$0=-1;for(;++$0<i0.length;){let v0=i0[$0],Y0;try{Y0=Ai(h,v0,y,K,O,U,F,R,x)}catch(fl){if(s=fl,fl.code==="ERR_INVALID_PACKAGE_TARGET")continue;throw fl}if(Y0!==void 0){if(Y0!==null)return Y0;s=null}}if(s==null)return null;throw s}if(typeof m=="object"&&m!==null){let i0=Object.getOwnPropertyNames(m),s=-1;for(;++s<i0.length;)if(VW(i0[s]))throw new I4((0,x0.fileURLToPath)(h),O,'"exports" cannot contain numeric property keys.');for(s=-1;++s<i0.length;){let $0=i0[s];if($0==="default"||x&&x.has($0)){let v0=Ai(h,m[$0],y,K,O,U,F,R,x);if(v0===void 0)continue;return v0}}return null}if(m===null)return null;throw On(K,m,h,F,O)}function IW(h,m,y){if(Gf.noDeprecation)return;let K=(0,x0.fileURLToPath)(m);S4.has(K+"|"+h)||(S4.add(K+"|"+h),Gf.emitWarning(`Use of deprecated trailing slash pattern mapping "${h}" in the "exports" field module resolution of the package at ${K}${y?` imported from ${(0,x0.fileURLToPath)(y)}`:""}. Mapping specifiers ending in "/" is no longer supported.`,"DeprecationWarning","DEP0155"))}function C4(h,m,y,K,O){let U=y.exports;if(function(s,$0,v0){if(typeof s=="string"||Array.isArray(s))return!0;if(typeof s!="object"||s===null)return!1;let Y0=Object.getOwnPropertyNames(s),fl=!1,Il=0,L0=-1;for(;++L0<Y0.length;){let il=Y0[L0],F0=il===""||il[0]!==".";if(Il++===0)fl=F0;else if(fl!==F0)throw new I4((0,x0.fileURLToPath)($0),v0,`"exports" cannot contain some keys starting with '.' and some not. The exports object must either be an object of package subpath keys or an object of main entry condition name keys only.`)}return fl}(U,h,K)&&(U={".":U}),_4.call(U,m)&&!m.includes("*")&&!m.endsWith("/")){let s=Ai(h,U[m],"",m,K,!1,!1,!1,O);if(s==null)throw Yo(m,h,K);return s}let F="",R="",x=Object.getOwnPropertyNames(U),i0=-1;for(;++i0<x.length;){let s=x[i0],$0=s.indexOf("*");if($0!==-1&&m.startsWith(s.slice(0,$0))){m.endsWith("/")&&IW(m,h,K);let v0=s.slice($0+1);m.length>=s.length&&m.endsWith(v0)&&e4(F,s)===1&&s.lastIndexOf("*")===$0&&(F=s,R=m.slice($0,m.length-v0.length))}}if(F){let s=Ai(h,U[F],R,F,K,!0,!1,m.endsWith("/"),O);if(s==null)throw Yo(m,h,K);return s}throw Yo(m,h,K)}function e4(h,m){let y=h.indexOf("*"),K=m.indexOf("*"),O=y===-1?h.length:y+1,U=K===-1?m.length:K+1;return O>U?-1:U>O||y===-1?1:K===-1||h.length>m.length?-1:m.length>h.length?1:0}function pW(h,m,y){if(h==="#"||h.startsWith("#/")||h.endsWith("/"))throw new Xu(h,"is not a valid internal imports specifier name",(0,x0.fileURLToPath)(m));let K,O=Xo(m);if(O.exists){K=(0,x0.pathToFileURL)(O.pjsonPath);let U=O.imports;if(U)if(_4.call(U,h)&&!h.includes("*")){let F=Ai(K,U[h],"",h,m,!1,!0,!1,y);if(F!=null)return F}else{let F="",R="",x=Object.getOwnPropertyNames(U),i0=-1;for(;++i0<x.length;){let s=x[i0],$0=s.indexOf("*");if($0!==-1&&h.startsWith(s.slice(0,-1))){let v0=s.slice($0+1);h.length>=s.length&&h.endsWith(v0)&&e4(F,s)===1&&s.lastIndexOf("*")===$0&&(F=s,R=h.slice($0,h.length-v0.length))}}if(F){let s=Ai(K,U[F],R,F,m,!0,!0,!1,y);if(s!=null)return s}}}throw function(U,F,R){return new UW(U,F&&(0,x0.fileURLToPath)(new URL(".",F)),(0,x0.fileURLToPath)(R))}(h,K,m)}function lv(h,m,y){if(j0.builtinModules.includes(h))return new URL("node:"+h);let{packageName:K,packageSubpath:O,isScoped:U}=function(s,$0){let v0=s.indexOf("/"),Y0=!0,fl=!1;s[0]==="@"&&(fl=!0,v0===-1||s.length===0?Y0=!1:v0=s.indexOf("/",v0+1));let Il=v0===-1?s:s.slice(0,v0);if(TW.exec(Il)!==null&&(Y0=!1),!Y0)throw new Xu(s,"is not a valid package name",(0,x0.fileURLToPath)($0));return{packageName:Il,packageSubpath:"."+(v0===-1?"":s.slice(v0)),isScoped:fl}}(h,m),F=Xo(m);if(F.exists){let s=(0,x0.pathToFileURL)(F.pjsonPath);if(F.name===K&&F.exports!==void 0&&F.exports!==null)return C4(s,O,F,m,y)}let R,x=new URL("./node_modules/"+K+"/package.json",m),i0=(0,x0.fileURLToPath)(x);do{let s=s4(i0.slice(0,-13));if(!s||!s.isDirectory()){R=i0,x=new URL((U?"../../../../node_modules/":"../../../node_modules/")+K+"/package.json",x),i0=(0,x0.fileURLToPath)(x);continue}let $0=L4(i0,{base:m,specifier:h});return $0.exports!==void 0&&$0.exports!==null?C4(x,O,$0,m,y):O==="."?PW(x,$0,m):new URL(O,x)}while(i0.length!==R.length)}function qW(h,m,y,K){y===void 0&&(y=HW());let O=m.protocol,U=O==="data:"||O==="http:"||O==="https:",F;if(function(R){return R!==""&&(R[0]==="/"||function(x){if(x[0]==="."){if(x.length===1||x[1]==="/")return!0;if(x[1]==="."&&(x.length===2||x[2]==="/"))return!0}return!1}(R))}(h))try{F=new URL(h,m)}catch(R){let x=new q4(h,m);throw x.cause=R,x}else if(O==="file:"&&h[0]==="#")F=pW(h,m,y);else try{F=new URL(h)}catch(R){if(U&&!j0.builtinModules.includes(h)){let x=new q4(h,m);throw x.cause=R,x}F=lv(h,m,y)}return e1.ok(F!==void 0,"expected to be defined"),F.protocol!=="file:"?F:function(R,x){if(RW.exec(R.pathname)!==null)throw new Xu(R.pathname,'must not include encoded "/" or "\\" characters',(0,x0.fileURLToPath)(x));let i0;try{i0=(0,x0.fileURLToPath)(R)}catch($0){let v0=$0;throw Object.defineProperty(v0,"input",{value:String(R)}),Object.defineProperty(v0,"module",{value:String(x)}),v0}let s=s4(i0.endsWith("/")?i0.slice(-1):i0);if(s&&s.isDirectory()){let $0=new NW(i0,(0,x0.fileURLToPath)(x));throw $0.url=String(R),$0}if(!s||!s.isFile()){let $0=new p4(i0||R.pathname,x&&(0,x0.fileURLToPath)(x),!0);throw $0.url=String(R),$0}{let $0=(0,X0.realpathSync)(i0),{search:v0,hash:Y0}=R;(R=(0,x0.pathToFileURL)($0+(i0.endsWith(Ao.sep)?"/":""))).search=v0,R.hash=Y0}return R}(F,m)}function Ki(h){return typeof h!="string"||h.startsWith("file://")?Ko((0,x0.fileURLToPath)(h)):Ko(h)}function Uf(h){return(0,x0.pathToFileURL)(Ki(h)).toString()}let _W=new Set(["node","import"]),DW=[".mjs",".cjs",".js",".json"],xW=new Set(["ERR_MODULE_NOT_FOUND","ERR_UNSUPPORTED_DIR_IMPORT","MODULE_NOT_FOUND","ERR_PACKAGE_PATH_NOT_EXPORTED"]);function rv(h,m,y){try{return qW(h,m,y)}catch(K){if(!xW.has(K?.code))throw K}}function SW(h,m={}){if(typeof h!="string"){if(!(h instanceof URL))throw TypeError("input must be a `string` or `URL`");h=Ki(h)}if(/(?:node|data|http|https):/.test(h))return h;if(F4.has(h))return"node:"+h;if(h.startsWith("file://")&&(h=Ki(h)),Hf(h))try{if((0,X0.statSync)(h).isFile())return Uf(h)}catch(F){if(F?.code!=="ENOENT")throw F}let y=m.conditions?new Set(m.conditions):_W,K=(Array.isArray(m.url)?m.url:[m.url]).filter(Boolean).map((F)=>new URL(function(R){return typeof R!="string"&&(R=R.toString()),/(?:node|data|http|https|file):/.test(R)?R:F4.has(R)?"node:"+R:"file://"+encodeURI(Ko(R))}(F.toString())));K.length===0&&K.push(new URL(Uf(process.cwd())));let O=[...K];for(let F of K)F.protocol==="file:"&&O.push(new URL("./",F),new URL(Bf(F.pathname,"_index.js"),F),new URL("node_modules",F));let U;for(let F of O){if(U=rv(h,F,y),U)break;for(let R of["","/index"]){for(let x of m.extensions||DW)if(U=rv(Bf(h,R)+x,F,y),U)break;if(U)break}if(U)break}if(!U){let F=Error(`Cannot find module ${h} imported from ${O.join(", ")}`);throw F.code="ERR_MODULE_NOT_FOUND",F}return Uf(U)}function jW(h,m){return SW(h,m)}function EW(h,m){return Ki(jW(h,m))}let sW=/(?:[\s;]|^)(?:import[\s\w*,{}]*from|import\s*["'*{]|export\b\s*(?:[*{]|default|class|type|function|const|var|let|async function)|import\.meta\b)/m,CW=/\/\*.+?\*\/|\/\/.*(?=[nr])/g;function eW(h,m={}){return m.stripComments&&(h=h.replace(CW,"")),sW.test(h)}function fv(h){if(typeof h!="string")throw TypeError("Expected a string");return h.replace(/[|\\{}()[\]^$+*?.]/g,"\\$&").replace(/-/g,"\\x2d")}let lZ=new Set(["/","\\",void 0]),iv=Symbol.for("pathe:normalizedAlias"),rZ=/[/\\]/;function nv(h){if(h[iv])return h;let m=Object.fromEntries(Object.entries(h).sort(([y],[K])=>function(O,U){return U.split("/").length-O.split("/").length}(y,K)));for(let y in m)for(let K in m)K===y||y.startsWith(K)||m[y]?.startsWith(K)&&lZ.has(m[y][K.length])&&(m[y]=m[K]+m[y].slice(K.length));return Object.defineProperty(m,iv,{value:!0,enumerable:!1}),m}function tv(h="/"){let m=h[h.length-1];return m==="/"||m==="\\"}var fZ={rE:"2.6.1"};let iZ=P0("crypto");var Oo=f.n(iZ);let yr=globalThis.process?.env||Object.create(null),lf=globalThis.process||{env:yr},Yu=lf!==void 0&&lf.env&&lf.env.NODE_ENV||void 0,nZ=[["claude",["CLAUDECODE","CLAUDE_CODE"]],["replit",["REPL_ID"]],["gemini",["GEMINI_CLI"]],["codex",["CODEX_SANDBOX","CODEX_THREAD_ID"]],["opencode",["OPENCODE"]],["pi",[Jo("PATH",/\.pi[\\/]agent/)]],["auggie",["AUGMENT_AGENT"]],["goose",["GOOSE_PROVIDER"]],["devin",[Jo("EDITOR",/devin/)]],["cursor",["CURSOR_AGENT"]],["kiro",[Jo("TERM_PROGRAM",/kiro/)]]];function Jo(h,m){return()=>{let y=yr[h];return!!y&&m.test(y)}}let uv=function(){let h=yr.AI_AGENT;if(h)return{name:h.toLowerCase()};for(let[m,y]of nZ)for(let K of y)if(typeof K=="string"?yr[K]:K())return{name:m};return{}}(),tZ=(uv.name,uv.name,[["APPVEYOR"],["AWS_AMPLIFY","AWS_APP_ID",{ci:!0}],["AZURE_PIPELINES","SYSTEM_TEAMFOUNDATIONCOLLECTIONURI"],["AZURE_STATIC","INPUT_AZURE_STATIC_WEB_APPS_API_TOKEN"],["APPCIRCLE","AC_APPCIRCLE"],["BAMBOO","bamboo_planKey"],["BITBUCKET","BITBUCKET_COMMIT"],["BITRISE","BITRISE_IO"],["BUDDY","BUDDY_WORKSPACE_ID"],["BUILDKITE"],["CIRCLE","CIRCLECI"],["CIRRUS","CIRRUS_CI"],["CLOUDFLARE_PAGES","CF_PAGES",{ci:!0}],["CLOUDFLARE_WORKERS","WORKERS_CI",{ci:!0}],["GOOGLE_CLOUDRUN","K_SERVICE"],["GOOGLE_CLOUDRUN_JOB","CLOUD_RUN_JOB"],["CODEBUILD","CODEBUILD_BUILD_ARN"],["CODEFRESH","CF_BUILD_ID"],["DRONE"],["DRONE","DRONE_BUILD_EVENT"],["DSARI"],["GITHUB_ACTIONS"],["GITLAB","GITLAB_CI"],["GITLAB","CI_MERGE_REQUEST_ID"],["GOCD","GO_PIPELINE_LABEL"],["LAYERCI"],["JENKINS","JENKINS_URL"],["HUDSON","HUDSON_URL"],["MAGNUM"],["NETLIFY"],["NETLIFY","NETLIFY_LOCAL",{ci:!1}],["NEVERCODE"],["RENDER"],["SAIL","SAILCI"],["SEMAPHORE"],["SCREWDRIVER"],["SHIPPABLE"],["SOLANO","TDDIUM"],["STRIDER"],["TEAMCITY","TEAMCITY_VERSION"],["TRAVIS"],["VERCEL","NOW_BUILDER"],["VERCEL","VERCEL",{ci:!1}],["VERCEL","VERCEL_ENV",{ci:!1}],["APPCENTER","APPCENTER_BUILD_ID"],["CODESANDBOX","CODESANDBOX_SSE",{ci:!1}],["CODESANDBOX","CODESANDBOX_HOST",{ci:!1}],["STACKBLITZ"],["STORMKIT"],["CLEAVR"],["ZEABUR"],["CODESPHERE","CODESPHERE_APP_ID",{ci:!0}],["RAILWAY","RAILWAY_PROJECT_ID"],["RAILWAY","RAILWAY_SERVICE_ID"],["DENO-DEPLOY","DENO_DEPLOY"],["DENO-DEPLOY","DENO_DEPLOYMENT_ID"],["FIREBASE_APP_HOSTING","FIREBASE_APP_HOSTING",{ci:!0}],["EDGEONE_PAGES","EO_PAGES_CI",{ci:!0}]]),hv=function(){for(let h of tZ)if(yr[h[1]||h[0]])return{name:h[0].toLowerCase(),...h[2]};return yr.SHELL==="/bin/jsh"&&lf.versions?.webcontainer?{name:"stackblitz",ci:!1}:{name:"",ci:!1}}(),ao=(hv.name,lf.platform||""),w_=!!yr.CI||hv.ci!==!1,uZ=!!lf.stdout?.isTTY,v_=(yr.DEBUG,Yu==="test"||!!yr.TEST),ov=(Yu==="production"||yr.MODE,Yu==="dev"||Yu==="development"||yr.MODE,yr.MINIMAL,/^win/i.test(ao)),hZ=(/^linux/i.test(ao),/^darwin/i.test(ao),!yr.NO_COLOR&&(!!yr.FORCE_COLOR||(uZ||ov)&&yr.TERM),(lf.versions?.node||"").replace(/^v/,"")||null),oZ=(Number(hZ?.split(".")[0]),!!lf?.versions?.node),wZ="Bun"in globalThis,vZ="Deno"in globalThis,mZ="fastly"in globalThis,kZ=[["Netlify"in globalThis,"netlify"],["EdgeRuntime"in globalThis,"edge-light"],[globalThis.navigator?.userAgent==="Cloudflare-Workers","workerd"],[mZ,"fastly"],[vZ,"deno"],[wZ,"bun"],[oZ,"node"]];(function(){let h=kZ.find((m)=>m[0]);if(h)h[1]})();let $Z=P0("tty"),bZ=$Z?.WriteStream?.prototype?.hasColors?.()??!1,R0=(h,m)=>{if(!bZ)return(O)=>O;let y=`\x1B[${h}m`,K=`\x1B[${m}m`;return(O)=>{let U=O+"",F=U.indexOf(K);if(F===-1)return y+U+K;let R=y,x=0,i0=(m===22?K:"")+y;for(;F!==-1;)R+=U.slice(x,F)+i0,x=F+K.length,F=U.indexOf(K,x);return R+=U.slice(x)+K,R}},wv=(R0(0,0),R0(1,22),R0(2,22),R0(3,23),R0(4,24),R0(53,55),R0(7,27),R0(8,28),R0(9,29),R0(30,39),R0(31,39)),Wi=R0(32,39),Ou=R0(33,39),vv=R0(34,39),yZ=(R0(35,39),R0(36,39)),dZ=(R0(37,39),R0(90,39));R0(40,49),R0(41,49),R0(42,49),R0(43,49),R0(44,49),R0(45,49),R0(46,49),R0(47,49),R0(100,49),R0(91,39),R0(92,39),R0(93,39),R0(94,39),R0(95,39),R0(96,39),R0(97,39),R0(101,49),R0(102,49),R0(103,49),R0(104,49),R0(105,49),R0(106,49),R0(107,49);function mv(h){if(typeof h!="string"||h.startsWith("file://"))return!1;try{return(0,X0.lstatSync)(h).isDirectory()}catch{return!1}}function kv(h,m=8){return(function(){if(Zi!==void 0)return Zi;try{return Zi=!!Oo().getFips?.(),Zi}catch{return Zi=!1,Zi}}()?Oo().createHash("sha256"):Oo().createHash("md5")).update(h).digest("hex").slice(0,m)}let $v={true:Wi("true"),false:Ou("false"),"[rebuild]":Ou("[rebuild]"),"[esm]":vv("[esm]"),"[cjs]":Wi("[cjs]"),"[import]":vv("[import]"),"[require]":Wi("[require]"),"[native]":yZ("[native]"),"[transpile]":Ou("[transpile]"),"[fallback]":wv("[fallback]"),"[unknown]":wv("[unknown]"),"[hit]":Wi("[hit]"),"[miss]":Ou("[miss]"),"[json]":Wi("[json]"),"[data]":Wi("[data]")};function Gl(h,...m){if(!h.opts.debug)return;let y=process.cwd();console.log(dZ(["[jiti]",...m.map((K)=>(K in $v)?$v[K]:typeof K!="string"?JSON.stringify(K):K.replace(y,"."))].join(" ")))}function J1(h,m){return h.opts.interopDefault?function(y){let K=typeof y;if(y===null||K!=="object"&&K!=="function")return y;let O=y.default,U=typeof O,F=O==null,R=U==="object"||U==="function";if(F&&y instanceof Promise)return y;let x=U==="function"&&K!=="function",i0=R&&!(O instanceof Promise),s=new Map;return new Proxy(y,{get($0,v0){if(s.has(v0))return s.get(v0);let Y0;return v0==="__esModule"?Y0=!0:v0==="default"?Y0=F?y:typeof O?.default=="function"&&y.__esModule?O.default:O:(v0 in $0)?Y0=$0[v0]:i0&&(Y0=O[v0],typeof Y0=="function"&&(Y0=Y0.bind(O))),s.set(v0,Y0),Y0},apply:x?($0,v0,Y0)=>Reflect.apply(O,v0,Y0):void 0})}(m):m}let Zi;function o1(h,m){let y=Ff(h,m);return Boolean(y)}function Ff(h,m,y){let K=process.env[h];if(!(h in process.env))return m;try{return JSON.parse(K)}catch{return y?K:m}}let bv=/\.(c|m)?j(sx?)$/,yv=/\.(c|m)?t(sx?)$/;function Xi(h,m,y){let K,O;if(h.isNativeRe.test(m))return m;if(h.resolveTsConfigPaths&&!y.skipTsConfigPaths){let R=h.resolveTsConfigPaths(m);for(let x of R){let i0=Xi(h,x,{...y,try:!0,skipTsConfigPaths:!0});if(i0)return i0}}h.alias&&(m=function(R,x){let i0=Xl(R);x=nv(x);for(let[s,$0]of Object.entries(x)){if(!i0.startsWith(s))continue;let v0=tv(s)?s.slice(0,-1):s;if(tv(i0[v0.length]))return h1($0,i0.slice(s.length))}return i0}(m,h.alias));let U=y?.parentURL||h.url;mv(U)&&(U=h1(U,"_index.js"));let F=((y?.async)?[y?.conditions,["node","import"],["node","require"]]:[y?.conditions,["node","require"],["node","import"]]).filter(Boolean);for(let R of F){try{K=EW(m,{url:U,conditions:R,extensions:h.opts.extensions})}catch(x){O=x}if(K)return K}try{return h.nativeRequire.resolve(m,{paths:y.paths})}catch(R){O=R}for(let R of h.additionalExts){if(K=Qo(h,m+R,U,y)||Qo(h,m+"/index"+R,U,y),K)return K;if((yv.test(h.filename)||yv.test(h.parentModule?.filename||"")||bv.test(m))&&(K=Qo(h,m.replace(bv,".$1t$2"),U,y),K))return K}if(!y?.try)throw O}function Qo(h,m,y,K){try{return h.nativeRequire.resolve(m,{...K,paths:[zn(Ki(y)),...K?.paths||[]]})}catch{}}let gZ=P0("fs/promises"),dv=P0("perf_hooks"),cZ=P0("vm");var AZ=f.n(cZ);function Ju(h,m,y){let K=h.parentCache||{};if(m.startsWith("node:"))return Nf(h,m,y.async);if(m.startsWith("file:"))m=(0,x0.fileURLToPath)(m);else if(m.startsWith("data:")){if(!y.async)throw Error("`data:` URLs are only supported in ESM context. Use `import` or `jiti.import` instead.");return Gl(h,"[native]","[data]","[import]",m),Nf(h,m,!0)}if(j0.builtinModules.includes(m)||m===".pnp.js")return Nf(h,m,y.async);if(h.opts.virtualModules&&m in h.opts.virtualModules){Gl(h,"[virtual]",m);let R=h.opts.virtualModules[m];return y.async?Promise.resolve(J1(h,R)):J1(h,R)}if(h.opts.tryNative&&!h.opts.transformOptions)try{if(!(m=Xi(h,m,y))&&y.try)return;if(Gl(h,"[try-native]",y.async&&h.nativeImport?"[import]":"[require]",m),y.async&&h.nativeImport)return h.nativeImport(m).then((R)=>(h.opts.moduleCache===!1&&delete h.nativeRequire.cache[m],J1(h,R))).catch((R)=>(Gl(h,`[try-native] Using fallback for ${m} because of an error:`,R),Ju({...h,opts:{...h.opts,tryNative:!1}},m,y)));{let R=h.nativeRequire(m);return h.opts.moduleCache===!1&&delete h.nativeRequire.cache[m],J1(h,R)}}catch(R){Gl(h,`[try-native] Using fallback for ${m} because of an error:`,R)}let O=Xi(h,m,y);if(!O&&y.try)return;let U=go(O);if(U===".json"){Gl(h,"[json]",O);let R=h.nativeRequire(O);return R&&!("default"in R)&&Object.defineProperty(R,"default",{value:R,enumerable:!1}),R}if(U&&!h.opts.extensions.includes(U))return Gl(h,"[native]","[unknown]",y.async?"[import]":"[require]",O),Nf(h,O,y.async);if(h.isNativeRe.test(O))return Gl(h,"[native]",y.async?"[import]":"[require]",O),Nf(h,O,y.async);if(K[O])return J1(h,K[O]?.exports);if(h.opts.moduleCache){let R=h.nativeRequire.cache[O];if(R?.loaded)return J1(h,R.exports)}let F=(0,X0.readFileSync)(O,"utf8");return Ho(h,F,{id:m,filename:O,ext:U,cache:K,async:y.async})}function Nf(h,m,y){return y&&h.nativeImport?h.nativeImport(function(K){return ov&&Hf(K)?Uf(K):K}(m)).then((K)=>J1(h,K)):J1(h,h.nativeRequire(m))}let KZ="9";function WZ(h,m,y){if(!h.opts.fsCache||!m.filename)return y();let K=` /* v${KZ}-${kv(m.source,16)} */
|
|
202
202
|
`,O=`${co(zn(m.filename))}-${function(x){let i0=x.split(rZ).pop();if(!i0)return;let s=i0.lastIndexOf(".");return s<=0?i0:i0.slice(0,s)}(m.filename)}`+(h.opts.sourceMaps?"+map":"")+(m.interopDefault?".i":"")+`.${kv(m.filename)}`+(m.async?".mjs":".cjs");m.jsx&&m.filename.endsWith("x")&&(O+="x");let U=h.opts.fsCache,F=h1(U,O);if(!h.opts.rebuildFsCache&&(0,X0.existsSync)(F)){let x=(0,X0.readFileSync)(F,"utf8");if(x.endsWith(K))return Gl(h,"[cache]","[hit]",m.filename,"~>",F),x}Gl(h,"[cache]","[miss]",m.filename);let R=y();return R.includes("__JITI_ERROR__")||((0,X0.writeFileSync)(F,R+K,"utf8"),Gl(h,"[cache]","[store]",m.filename,"~>",F)),R}function ZZ(h){if(h.opts.fsCache===!0&&(h.opts.fsCache=function(m){let y=m.filename&&AW(m.filename,"../node_modules");if(y&&(0,X0.existsSync)(y))return h1(y,".cache/jiti");let K=(0,n.tmpdir)();if(process.env.TMPDIR&&K===process.cwd()&&!process.env.JITI_RESPECT_TMPDIR_ENV){let O=process.env.TMPDIR;delete process.env.TMPDIR,K=(0,n.tmpdir)(),process.env.TMPDIR=O}return h1(K,"jiti")}(h)),h.opts.fsCache)try{if((0,X0.mkdirSync)(h.opts.fsCache,{recursive:!0}),!function(m){try{return(0,X0.accessSync)(m,X0.constants.W_OK),!0}catch{return!1}}(h.opts.fsCache))throw Error("directory is not writable!")}catch(m){Gl(h,"Error creating cache directory at ",h.opts.fsCache,m),h.opts.fsCache=!1}}function Bo(h,m){let y=WZ(h,m,()=>{let K=h.opts.transform({...h.opts.transformOptions,babel:{...h.opts.sourceMaps?{sourceFileName:m.filename,sourceMaps:"inline"}:{},...h.opts.transformOptions?.babel},interopDefault:h.opts.interopDefault,...m});return K.error&&h.opts.debug&&Gl(h,K.error),K.code});return y.startsWith("#!")&&(y="// "+y),y}function Ho(h,m,y={}){let K=y.id||(y.filename?co(y.filename):`_jitiEval.${y.ext||(y.async?"mjs":"js")}`),O=y.filename||Xi(h,K,{async:y.async}),U=y.ext||go(O),F=y.cache||h.parentCache||{},R=/\.[cm]?tsx?$/.test(U),x=U===".mjs"||U===".js"&&function(F0){for(;F0&&F0!=="."&&F0!=="/";){F0=h1(F0,"..");try{let Tf=(0,X0.readFileSync)(h1(F0,"package.json"),"utf8");try{return JSON.parse(Tf)}catch{}break}catch{}}}(O)?.type==="module",i0=U===".cjs",s=y.forceTranspile??(!i0&&!(x&&y.async)&&(R||x||h.isTransformRe.test(O)||eW(m))),$0=dv.performance.now();if(s){m=Bo(h,{filename:O,source:m,ts:R,async:y.async??!1,jsx:h.opts.jsx});let F0=Math.round(1000*(dv.performance.now()-$0))/1000;Gl(h,"[transpile]",y.async?"[esm]":"[cjs]",O,`(${F0}ms)`)}else{if(Gl(h,"[native]",y.async?"[import]":"[require]",O),y.async)return Promise.resolve(Nf(h,O,y.async)).catch((F0)=>(Gl(h,"Native import error:",F0),Gl(h,"[fallback]",O),Ho(h,m,{...y,forceTranspile:!0})));try{return Nf(h,O,y.async)}catch(F0){Gl(h,"Native require error:",F0),Gl(h,"[fallback]",O),m=Bo(h,{filename:O,source:m,ts:R,async:y.async??!1,jsx:h.opts.jsx})}}let v0=new j0.Module(O);v0.filename=O,h.parentModule&&(v0.parent=h.parentModule,Array.isArray(h.parentModule.children)&&!h.parentModule.children.includes(v0)&&h.parentModule.children.push(v0));let Y0=gv(O,h.opts,{parentModule:v0,parentCache:F,nativeImport:h.nativeImport,onError:h.onError,createRequire:h.createRequire},!0),fl;v0.require=Y0,v0.path=zn(O),v0.paths=j0.Module._nodeModulePaths(v0.path),F[O]=v0,h.opts.moduleCache&&(h.nativeRequire.cache[O]=v0);let Il=function(F0,Tf){return`(${Tf?.async?"async ":""}function (exports, require, module, __filename, __dirname, jitiImport, jitiESMResolve) { ${F0}
|
|
203
203
|
});`}(m,{async:y.async});try{fl=AZ().runInThisContext(Il,{filename:O,lineOffset:0,displayErrors:!1})}catch(F0){F0.name==="SyntaxError"&&y.async&&h.nativeImport?(Gl(h,"[esm]","[import]","[fallback]",O),fl=function(Tf,Go,Uo,au,Qu){let cv=`export default ${Go}`,Av=Qu?void 0:`data:text/javascript;base64,${Buffer.from(cv).toString("base64")}`;return(...zZ)=>{let Jn,Kv=()=>(Jn=function(zi,Wv){let Zv=h1((0,n.tmpdir)(),"jiti-esm");try{(0,X0.mkdirSync)(Zv,{recursive:!0})}catch{}let Xv=h1(Zv,`${co(Wv,go(Wv))}-${Date.now()}-${Math.random().toString(36).slice(2)}.mjs`);return(0,X0.writeFileSync)(Xv,zi),Xv}(cv,Uo),Gl(Tf,"[esm]","[tempfile]",Jn),au(Uf(Jn)));return(Av?au(Av).catch((zi)=>{if(zi?.code!=="ENAMETOOLONG")throw zi;return Kv()}):Kv()).then((zi)=>zi.default(...zZ)).finally(()=>{Jn&&(0,gZ.unlink)(Jn).catch(()=>{})})}}(h,Il,O,h.nativeImport,h.opts.esmEvalTempFile)):(h.opts.moduleCache&&delete h.nativeRequire.cache[O],h.onError(F0))}let L0;try{L0=fl(v0.exports,v0.require,v0,v0.filename,zn(v0.filename),Y0.import,Y0.esmResolve)}catch(F0){h.opts.moduleCache&&delete h.nativeRequire.cache[O],h.onError(F0)}function il(){if(v0.exports&&v0.exports.__JITI_ERROR__){let{filename:F0,line:Tf,column:Go,code:Uo,message:au}=v0.exports.__JITI_ERROR__,Qu=Error(`${Uo}: ${au}
|
|
204
|
-
${`${F0}:${Tf}:${Go}`}`);Error.captureStackTrace(Qu,Ju),h.onError(Qu)}return v0.loaded=!0,J1(h,v0.exports)}return y.async?Promise.resolve(L0).then(il):il()}let XZ=(0,n.platform)()==="win32";function gv(h,m={},y,K=!1){let O=K?m:function(L0){let il={fsCache:o1("JITI_FS_CACHE",o1("JITI_CACHE",!0)),rebuildFsCache:o1("JITI_REBUILD_FS_CACHE",!1),moduleCache:o1("JITI_MODULE_CACHE",o1("JITI_REQUIRE_CACHE",!0)),debug:o1("JITI_DEBUG",!1),sourceMaps:o1("JITI_SOURCE_MAPS",!1),interopDefault:o1("JITI_INTEROP_DEFAULT",!0),extensions:Ff("JITI_EXTENSIONS",[".js",".mjs",".cjs",".ts",".tsx",".mts",".cts",".mtsx",".ctsx"]),alias:Ff("JITI_ALIAS",{}),nativeModules:Ff("JITI_NATIVE_MODULES",[]),transformModules:Ff("JITI_TRANSFORM_MODULES",[]),tryNative:Ff("JITI_TRY_NATIVE","Bun"in globalThis),esmEvalTempFile:o1("JITI_ESM_EVAL_TEMP_FILE",!1),jsx:o1("JITI_JSX",!1),tsconfigPaths:Ff("JITI_TSCONFIG_PATHS",!1,!0)};il.jsx&&il.extensions.push(".jsx",".tsx");let F0={};return L0.cache!==void 0&&(F0.fsCache=L0.cache),L0.requireCache!==void 0&&(F0.moduleCache=L0.requireCache),{...il,...F0,...L0}}(m);typeof h=="string"&&h.startsWith("file://")&&(h=Ki(h));let U=O.alias&&Object.keys(O.alias).length>0?nv(O.alias||{}):void 0,F;if(O.tsconfigPaths){let{getTsconfig:L0,createPathsMatcher:il}=f("./node_modules/.pnpm/get-tsconfig@4.14.0/node_modules/get-tsconfig/dist/index.cjs"),F0=L0(typeof O.tsconfigPaths=="string"?O.tsconfigPaths:zn(h));F0&&(F=il(F0))}let R=["typescript","jiti",...O.nativeModules||[]],x=new RegExp(`node_modules/(${R.map((L0)=>fv(L0)).join("|")})/`),i0=[...O.transformModules||[]],s=new RegExp(`node_modules/(${i0.map((L0)=>fv(L0)).join("|")})/`);h||(h=process.cwd()),!K&&mv(h)&&(h=h1(h,"_index.js"));let $0=Uf(h),v0=[...O.extensions].filter((L0)=>L0!==".js"),Y0=y.createRequire(XZ?h.replace(/\//g,"\\"):h),fl={filename:h,url:$0,opts:O,alias:U,resolveTsConfigPaths:F,nativeModules:R,transformModules:i0,isNativeRe:x,isTransformRe:s,additionalExts:v0,nativeRequire:Y0,onError:y.onError,parentModule:y.parentModule,parentCache:y.parentCache,nativeImport:y.nativeImport,createRequire:y.createRequire};return K||Gl(fl,"[init]",...[["version:",fZ.rE],["module-cache:",O.moduleCache],["fs-cache:",O.fsCache],["rebuild-fs-cache:",O.rebuildFsCache],["interop-defaults:",O.interopDefault]].flat()),K||ZZ(fl),Object.assign(function(L0){return Ju(fl,L0,{async:!1})},{cache:O.moduleCache?Y0.cache:Object.create(null),extensions:Y0.extensions,main:Y0.main,options:O,resolve:Object.assign(function(L0,il){return Xi(fl,L0,{...il,async:!1})},{paths:Y0.resolve.paths}),transform:(L0)=>Bo(fl,L0),evalModule:(L0,il)=>Ho(fl,L0,il),async import(L0,il){let F0=await Ju(fl,L0,{...il,async:!0});return il?.default?F0?.default??F0:F0},esmResolve(L0,il){typeof il=="string"&&(il={parentURL:il});let F0=Xi(fl,L0,{parentURL:$0,...il,async:!0});return!F0||typeof F0!="string"||F0.startsWith("file://")?F0:Uf(F0)}})}})(),Cd.exports=i.default})()});var uK=j((ef0,tK)=>{var{defineProperty:N6,getOwnPropertyDescriptor:yI,getOwnPropertyNames:dI}=Object,gI=Object.prototype.hasOwnProperty,cI=(l,r)=>{for(var f in r)N6(l,f,{get:r[f],enumerable:!0})},AI=(l,r,f,i)=>{if(r&&typeof r=="object"||typeof r=="function")for(let n of dI(r))!gI.call(l,n)&&n!==f&&N6(l,n,{get:()=>r[n],enumerable:!(i=yI(r,n))||i.enumerable});return l},KI=(l)=>AI(N6({},"__esModule",{value:!0}),l),nK={};cI(nK,{clearRequireCache:()=>WI});tK.exports=KI(nK);function WI(l){for(let r of l)delete P0.cache[r]}});var Hu=zv,an=Bu.extend(Hu.shape);var YZ=z.object({}),OZ=z.object({}),Gu=Yi.extend({id:z.literal("site-info"),entityType:z.literal("site-info"),metadata:OZ});var Oi=Yv.omit({url:!0,analyticsScript:!0});var JZ=z.record(z.string(),z.unknown());class a1 extends Uu{constructor(){super({entityType:"site-info",purpose:"Singleton configuration describing the published site.",schema:Gu,frontmatterSchema:Oi,isSingleton:!0,hasBody:!1})}createSiteInfoContent(l){let r=Oi.parse(l);return this.buildMarkdown("",r)}parseSiteInfoBody(l){return this.parseFrontmatter(l)}fromMarkdown(l){return{content:l,entityType:"site-info"}}extractMetadata(l){return{}}generateFrontMatter(l){let r=this.parseFrontmatter(l.content);return this.buildMarkdown("",JZ.parse(r))}}var Q_=new a1,aZ=z.looseObject({platform:z.string(),url:z.string(),label:z.string().optional()}).transform((l)=>({platform:l.platform,url:l.url,...l.label!==void 0?{label:l.label}:{}})),B_=z.looseObject({socialLinks:z.array(aZ).optional()});var q_=new a1;var HZ=new a1;async function Rf(l){let f=(await l.listEntities({entityType:"site-info",options:{limit:1}}))[0];if(!f)throw Error("Site info not found \u2014 create a site-info entity");return HZ.parseSiteInfoBody(f.content)}function Ov(l,r){let f=l.metadata.publishedAt??l.created,i=r.metadata.publishedAt??r.created;return new Date(i).getTime()-new Date(f).getTime()}async function Ji(l,r){return(await l.listEntities({entityType:r.entityType,options:{limit:20}})).sort(Ov).slice(0,r.count).map(r.parse)}function Bn(l){if(!l)throw Error("CTA not configured in site-info");return l}var Jv=z.object({label:z.string(),href:z.string(),priority:z.number()}),GZ=z.object({primary:z.array(Jv),secondary:z.array(Jv)}),UZ=z.object({platform:z.enum(["github","instagram","linkedin","email","website"]).describe("Social media platform"),url:z.string().describe("Profile or contact URL"),label:z.string().optional().describe("Optional display label")}),FZ=Oi.extend({navigation:GZ,copyright:z.string(),socialLinks:z.array(UZ).optional().describe("Social media links from profile entity")});var av={lexicon:1,id:"ai.rizom.brain.card",defs:{main:{type:"record",description:"Public discovery card for a Rizom brain. The operational A2A Agent Card is conventionally served at /.well-known/agent-card.json under siteUrl.",key:"literal:self",record:{type:"object",required:["siteUrl","brain","anchor","skills","model","version","createdAt"],properties:{siteUrl:{type:"string",format:"uri",description:"Public site URL. Consumers derive the A2A Agent Card URL from this base."},brain:{type:"object",description:"Brain identity described by this discovery card.",required:["did","name","role","purpose","values"],properties:{did:{type:"string",description:"Public DID for the brain identity."},name:{type:"string",maxLength:200,description:"Human-readable brain name."},role:{type:"string",maxLength:500,description:"Brain role or persona."},purpose:{type:"string",maxLength:2000,description:"Short public description of what this brain is for."},values:{type:"array",description:"Public values or principles for this brain.",items:{type:"string",maxLength:200},maxLength:50}}},anchor:{type:"object",description:"Minimal owner/operator snapshot for discovery grouping and display.",required:["did","name","kind"],properties:{did:{type:"string",description:"Public DID for the owner/operator anchor identity."},name:{type:"string",maxLength:200,description:"Human-readable anchor name."},kind:{type:"string",knownValues:["professional","team","collective"],description:"Anchor type."}}},skills:{type:"array",description:"User-facing skills this brain advertises for discovery.",items:{type:"object",required:["id","name","description"],properties:{id:{type:"string",maxLength:200},name:{type:"string",maxLength:200},description:{type:"string",maxLength:2000},tags:{type:"array",items:{type:"string"},maxLength:50},examples:{type:"array",items:{type:"string"},maxLength:20}}},maxLength:100},model:{type:"string",description:"Rizom brain model identifier."},version:{type:"string",description:"Brain runtime/model implementation version."},createdAt:{type:"string",format:"datetime"},updatedAt:{type:"string",format:"datetime"}}}}}};var Qv={lexicon:1,id:"ai.rizom.brain.deck",defs:{main:{type:"record",description:"Public presentation deck from a Rizom brain.",key:"any",record:{type:"object",required:["title","body","createdAt"],properties:{title:{type:"string",maxLength:300},slug:{type:"string"},description:{type:"string",maxLength:2000},body:{type:"string",maxLength:1e5},format:{type:"string",knownValues:["text/markdown"]},author:{type:"string"},event:{type:"string"},publishedAt:{type:"string",format:"datetime"},brainDid:{type:"string"},anchorDid:{type:"string"},sourceEntityType:{type:"string"},sourceEntityId:{type:"string"},createdAt:{type:"string",format:"datetime"},updatedAt:{type:"string",format:"datetime"}}}}}};var Bv={lexicon:1,id:"ai.rizom.brain.link",defs:{main:{type:"record",description:"Public curated link from a Rizom brain.",key:"any",record:{type:"object",required:["title","url","createdAt"],properties:{title:{type:"string",maxLength:500},url:{type:"string",format:"uri"},description:{type:"string",maxLength:2000},summary:{type:"string",maxLength:1e5},domain:{type:"string"},capturedAt:{type:"string",format:"datetime"},source:{type:"object",required:["ref","label"],properties:{ref:{type:"string"},label:{type:"string"}}},brainDid:{type:"string"},anchorDid:{type:"string"},sourceEntityType:{type:"string"},sourceEntityId:{type:"string"},createdAt:{type:"string",format:"datetime"},updatedAt:{type:"string",format:"datetime"}}}}}};var Hv={lexicon:1,id:"ai.rizom.brain.note",defs:{main:{type:"record",description:"Public knowledge note from a Rizom brain.",key:"any",record:{type:"object",required:["title","body","createdAt"],properties:{title:{type:"string",maxLength:300},body:{type:"string",maxLength:1e5},format:{type:"string",knownValues:["text/markdown"]},brainDid:{type:"string"},anchorDid:{type:"string"},sourceEntityType:{type:"string"},sourceEntityId:{type:"string"},createdAt:{type:"string",format:"datetime"},updatedAt:{type:"string",format:"datetime"}}}}}};var Gv={lexicon:1,id:"ai.rizom.brain.post",defs:{main:{type:"record",description:"Markdown blog post distributed by a Rizom brain.",key:"any",record:{type:"object",required:["title","body","createdAt"],properties:{title:{type:"string",maxLength:300},summary:{type:"string",maxLength:2000},body:{type:"string",maxLength:1e5},format:{type:"string",knownValues:["text/markdown"]},brainDid:{type:"string"},anchorDid:{type:"string"},canonicalUrl:{type:"string",format:"uri"},topics:{type:"array",items:{type:"string"},maxLength:50},coverImage:{type:"object",required:["blob"],properties:{blob:{type:"blob"},alt:{type:"string",maxLength:1000},width:{type:"integer"},height:{type:"integer"}}},series:{type:"string",maxLength:200},seriesIndex:{type:"integer"},sourceEntityType:{type:"string",knownValues:["post"]},sourceEntityId:{type:"string"},createdAt:{type:"string",format:"datetime"},publishedAt:{type:"string",format:"datetime"}}}}}};var Uv={lexicon:1,id:"ai.rizom.brain.project",defs:{main:{type:"record",description:"Public project or case study from a Rizom brain.",key:"any",record:{type:"object",required:["title","body","year","createdAt"],properties:{title:{type:"string",maxLength:300},slug:{type:"string"},description:{type:"string",maxLength:2000},body:{type:"string",maxLength:1e5},format:{type:"string",knownValues:["text/markdown"]},year:{type:"integer"},url:{type:"string",format:"uri"},publishedAt:{type:"string",format:"datetime"},brainDid:{type:"string"},anchorDid:{type:"string"},sourceEntityType:{type:"string"},sourceEntityId:{type:"string"},createdAt:{type:"string",format:"datetime"},updatedAt:{type:"string",format:"datetime"}}}}}};var Fv={lexicon:1,id:"ai.rizom.brain.series",defs:{main:{type:"record",description:"Public content series from a Rizom brain.",key:"any",record:{type:"object",required:["title","createdAt"],properties:{title:{type:"string",maxLength:300},slug:{type:"string"},description:{type:"string",maxLength:1e4},brainDid:{type:"string"},anchorDid:{type:"string"},sourceEntityType:{type:"string"},sourceEntityId:{type:"string"},createdAt:{type:"string",format:"datetime"},updatedAt:{type:"string",format:"datetime"}}}}}};var Nv={lexicon:1,id:"ai.rizom.brain.socialPost",defs:{main:{type:"record",description:"Semantic local social-post entity from a Rizom brain; not a Bluesky feed post.",key:"any",record:{type:"object",required:["title","platform","body","createdAt"],properties:{title:{type:"string",maxLength:300},platform:{type:"string"},body:{type:"string",maxLength:1e5},format:{type:"string",knownValues:["text/markdown"]},status:{type:"string"},publishedAt:{type:"string",format:"datetime"},platformPostId:{type:"string"},sourceLocalEntityType:{type:"string"},sourceLocalEntityId:{type:"string"},brainDid:{type:"string"},anchorDid:{type:"string"},sourceEntityType:{type:"string"},sourceEntityId:{type:"string"},createdAt:{type:"string",format:"datetime"},updatedAt:{type:"string",format:"datetime"}}}}}};var Tv={lexicon:1,id:"ai.rizom.brain.topic",defs:{main:{type:"record",description:"Public topic page from a Rizom brain.",key:"any",record:{type:"object",required:["title","body","createdAt"],properties:{title:{type:"string",maxLength:300},body:{type:"string",maxLength:1e5},format:{type:"string",knownValues:["text/markdown"]},brainDid:{type:"string"},anchorDid:{type:"string"},sourceEntityType:{type:"string"},sourceEntityId:{type:"string"},createdAt:{type:"string",format:"datetime"},updatedAt:{type:"string",format:"datetime"}}}}}};var qZ=z.object({type:z.string()}).catchall(z.unknown()),_Z=z.object({lexicon:z.literal(1),id:z.string(),defs:z.object({main:z.object({type:z.literal("record"),key:z.string().min(1),record:z.object({type:z.literal("object"),required:z.array(z.string()).optional(),properties:z.record(z.string(),qZ)})})})});function w1(l){return _Z.parse(l)}var dr={"ai.rizom.brain.card":w1(av),"ai.rizom.brain.deck":w1(Qv),"ai.rizom.brain.link":w1(Bv),"ai.rizom.brain.note":w1(Hv),"ai.rizom.brain.post":w1(Gv),"ai.rizom.brain.project":w1(Uv),"ai.rizom.brain.series":w1(Fv),"ai.rizom.brain.socialPost":w1(Nv),"ai.rizom.brain.topic":w1(Tv)},DZ="Additive optional fields are compatible; required-field, type, or constraint changes require a migration plan or new NSID.";function Q1(l){return{status:"approved",version:"1.0.0",revision:1,owner:"Rizom",steward:"Rizom protocol registry",projectionPackage:l,compatibility:DZ}}var xZ={"ai.rizom.brain.card":Q1("@brains/atproto"),"ai.rizom.brain.deck":Q1("@brains/decks"),"ai.rizom.brain.link":Q1("@brains/link"),"ai.rizom.brain.note":Q1("@brains/note"),"ai.rizom.brain.post":Q1("@brains/blog"),"ai.rizom.brain.project":Q1("@brains/portfolio"),"ai.rizom.brain.series":Q1("@brains/series"),"ai.rizom.brain.socialPost":Q1("@brains/social-media"),"ai.rizom.brain.topic":Q1("@brains/topics")};function To(l){return typeof l==="object"&&l!==null&&!Array.isArray(l)}var SZ=/^\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}(\.\d+)?(Z|[+-]\d{2}:\d{2})$/;function jZ(l){let r=z.string(),f=l.maxLength!==void 0?r.max(l.maxLength):r;if(l.knownValues)f=f.refine((i)=>l.knownValues?.includes(i),{message:`expected one of ${l.knownValues.join(", ")}`});if(l.format==="datetime")f=f.refine((i)=>SZ.test(i)&&!Number.isNaN(Date.parse(i)),{message:"expected datetime"});if(l.format==="uri")f=f.refine((i)=>{try{return new URL(i),!0}catch{return!1}},{message:"expected uri"});return f}function Rv(l){switch(l.type){case"string":return jZ(l);case"integer":return z.number().int();case"boolean":return z.boolean();case"array":{let r=l.items?Rv(l.items):z.unknown(),f=z.array(r);if(l.maxLength!==void 0)f=f.max(l.maxLength);return f}case"object":return EZ(l);case"blob":return z.custom(To,{message:"expected blob"});default:return z.unknown()}}function Lv(l){let r=new Set(l.required??[]),f={};for(let[i,n]of Object.entries(l.properties??{})){let t=Rv(n);f[i]=r.has(i)?t:t.optional()}return f}function EZ(l){return z.object(Lv(l)).passthrough()}function No(l,r,f,i=[]){let n=Object.keys(l).filter((t)=>!r.has(t));if(n.length===0)return;f.addIssue({code:z.ZodIssueCode.custom,path:i,message:`unrecognized field(s): ${n.join(", ")}`})}function sZ(l,r){if(No(l,new Set(["$type","siteUrl","brain","anchor","skills","model","version","createdAt","updatedAt"]),r),To(l.brain))No(l.brain,new Set(["did","name","role","purpose","values"]),r,["brain"]);if(To(l.anchor))No(l.anchor,new Set(["did","name","kind"]),r,["anchor"])}function v1(l){let r=z.object({...Lv(l.defs.main.record),$type:z.literal(l.id).optional()}).passthrough();return l.id==="ai.rizom.brain.card"?r.superRefine(sZ):r}var Ro={"ai.rizom.brain.card":v1(dr["ai.rizom.brain.card"]),"ai.rizom.brain.deck":v1(dr["ai.rizom.brain.deck"]),"ai.rizom.brain.link":v1(dr["ai.rizom.brain.link"]),"ai.rizom.brain.note":v1(dr["ai.rizom.brain.note"]),"ai.rizom.brain.post":v1(dr["ai.rizom.brain.post"]),"ai.rizom.brain.project":v1(dr["ai.rizom.brain.project"]),"ai.rizom.brain.series":v1(dr["ai.rizom.brain.series"]),"ai.rizom.brain.socialPost":v1(dr["ai.rizom.brain.socialPost"]),"ai.rizom.brain.topic":v1(dr["ai.rizom.brain.topic"])};var CZ=z.custom((l)=>Ro["ai.rizom.brain.card"].safeParse(l).success),eZ=z.object({repoDid:z.string().min(1),uri:z.string().min(1),cid:z.string().min(1),record:CZ}).strict(),lX=z.object({agentId:z.string().min(1),name:z.string().min(1),url:z.string().url(),status:z.enum(["discovered","approved","archived"]),repoDid:z.string().min(1).optional(),brainDid:z.string().min(1).optional(),anchorDid:z.string().min(1).optional(),cardUri:z.string().min(1).optional(),cardCid:z.string().min(1).optional()}).strict();class rf{static instance;projections=new Map;static getInstance(){return this.instance??=new rf,this.instance}static createFresh(){return new rf}static resetInstance(){this.instance=void 0}register(l){this.validateProjection(l);let r=this.get(l.entityType);if(r&&!this.isEquivalentProjection(r,l))throw Error(`AT Protocol projection already registered for entity type ${l.entityType}`);let f=this.projections.get(l.entityType)??[];return f.push(l),this.projections.set(l.entityType,f),this.createUnregister(l.entityType,l)}get(l){let r=this.projections.get(l);return r?.[r.length-1]}has(l){return this.get(l)!==void 0}list(){let l=[];for(let r of this.projections.keys()){let f=this.get(r);if(f)l.push(f)}return l}listLexicons(){return this.list().map((l)=>l.lexicon)}createUnregister(l,r){let f=!0;return()=>{if(!f)return;f=!1;let i=this.projections.get(l);if(!i)return;let n=i.lastIndexOf(r);if(n!==-1)i.splice(n,1);if(i.length===0)this.projections.delete(l)}}isEquivalentProjection(l,r){return l.entityType===r.entityType&&l.collection===r.collection&&l.lexicon.id===r.lexicon.id&&l.validate===r.validate}validateProjection(l){if(l.collection!==l.lexicon.id)throw Error(`AT Protocol projection collection must match lexicon id: ${l.collection} !== ${l.lexicon.id}`);if(!l.lexicon.defs.main.key)throw Error(`AT Protocol projection lexicon must define a record key: ${l.collection}`)}}var Lo=z.object({defaultPrompt:z.string().default("Write a blog post about my recent work and insights"),paginate:z.boolean().default(!0),pageSize:z.number().default(10)});var rX=z.object({prompt:z.string().optional(),title:z.string().optional(),content:z.string().optional(),excerpt:z.string().optional(),coverImageId:z.string().optional(),seriesName:z.string().optional(),seriesIndex:z.number().optional(),skipAi:z.boolean().optional()}),ux=Fu.extend({title:z.string().optional(),slug:z.string().optional()});class Po extends Nu{constructor(l,r){super(l,r,{schema:rX,jobTypeName:"blog-generation",entityType:"post"})}async generate(l,r){let{prompt:f,coverImageId:i,seriesName:n,seriesIndex:t,skipAi:u}=l,{title:o,content:w,excerpt:v}=l;if(u){if(!o)this.failEarly("Title is required when skipAi is true");w=w??`## Introduction
|
|
204
|
+
${`${F0}:${Tf}:${Go}`}`);Error.captureStackTrace(Qu,Ju),h.onError(Qu)}return v0.loaded=!0,J1(h,v0.exports)}return y.async?Promise.resolve(L0).then(il):il()}let XZ=(0,n.platform)()==="win32";function gv(h,m={},y,K=!1){let O=K?m:function(L0){let il={fsCache:o1("JITI_FS_CACHE",o1("JITI_CACHE",!0)),rebuildFsCache:o1("JITI_REBUILD_FS_CACHE",!1),moduleCache:o1("JITI_MODULE_CACHE",o1("JITI_REQUIRE_CACHE",!0)),debug:o1("JITI_DEBUG",!1),sourceMaps:o1("JITI_SOURCE_MAPS",!1),interopDefault:o1("JITI_INTEROP_DEFAULT",!0),extensions:Ff("JITI_EXTENSIONS",[".js",".mjs",".cjs",".ts",".tsx",".mts",".cts",".mtsx",".ctsx"]),alias:Ff("JITI_ALIAS",{}),nativeModules:Ff("JITI_NATIVE_MODULES",[]),transformModules:Ff("JITI_TRANSFORM_MODULES",[]),tryNative:Ff("JITI_TRY_NATIVE","Bun"in globalThis),esmEvalTempFile:o1("JITI_ESM_EVAL_TEMP_FILE",!1),jsx:o1("JITI_JSX",!1),tsconfigPaths:Ff("JITI_TSCONFIG_PATHS",!1,!0)};il.jsx&&il.extensions.push(".jsx",".tsx");let F0={};return L0.cache!==void 0&&(F0.fsCache=L0.cache),L0.requireCache!==void 0&&(F0.moduleCache=L0.requireCache),{...il,...F0,...L0}}(m);typeof h=="string"&&h.startsWith("file://")&&(h=Ki(h));let U=O.alias&&Object.keys(O.alias).length>0?nv(O.alias||{}):void 0,F;if(O.tsconfigPaths){let{getTsconfig:L0,createPathsMatcher:il}=f("./node_modules/.pnpm/get-tsconfig@4.14.0/node_modules/get-tsconfig/dist/index.cjs"),F0=L0(typeof O.tsconfigPaths=="string"?O.tsconfigPaths:zn(h));F0&&(F=il(F0))}let R=["typescript","jiti",...O.nativeModules||[]],x=new RegExp(`node_modules/(${R.map((L0)=>fv(L0)).join("|")})/`),i0=[...O.transformModules||[]],s=new RegExp(`node_modules/(${i0.map((L0)=>fv(L0)).join("|")})/`);h||(h=process.cwd()),!K&&mv(h)&&(h=h1(h,"_index.js"));let $0=Uf(h),v0=[...O.extensions].filter((L0)=>L0!==".js"),Y0=y.createRequire(XZ?h.replace(/\//g,"\\"):h),fl={filename:h,url:$0,opts:O,alias:U,resolveTsConfigPaths:F,nativeModules:R,transformModules:i0,isNativeRe:x,isTransformRe:s,additionalExts:v0,nativeRequire:Y0,onError:y.onError,parentModule:y.parentModule,parentCache:y.parentCache,nativeImport:y.nativeImport,createRequire:y.createRequire};return K||Gl(fl,"[init]",...[["version:",fZ.rE],["module-cache:",O.moduleCache],["fs-cache:",O.fsCache],["rebuild-fs-cache:",O.rebuildFsCache],["interop-defaults:",O.interopDefault]].flat()),K||ZZ(fl),Object.assign(function(L0){return Ju(fl,L0,{async:!1})},{cache:O.moduleCache?Y0.cache:Object.create(null),extensions:Y0.extensions,main:Y0.main,options:O,resolve:Object.assign(function(L0,il){return Xi(fl,L0,{...il,async:!1})},{paths:Y0.resolve.paths}),transform:(L0)=>Bo(fl,L0),evalModule:(L0,il)=>Ho(fl,L0,il),async import(L0,il){let F0=await Ju(fl,L0,{...il,async:!0});return il?.default?F0?.default??F0:F0},esmResolve(L0,il){typeof il=="string"&&(il={parentURL:il});let F0=Xi(fl,L0,{parentURL:$0,...il,async:!0});return!F0||typeof F0!="string"||F0.startsWith("file://")?F0:Uf(F0)}})}})(),Cd.exports=i.default})()});var uK=j((ef0,tK)=>{var{defineProperty:N6,getOwnPropertyDescriptor:yI,getOwnPropertyNames:dI}=Object,gI=Object.prototype.hasOwnProperty,cI=(l,r)=>{for(var f in r)N6(l,f,{get:r[f],enumerable:!0})},AI=(l,r,f,i)=>{if(r&&typeof r=="object"||typeof r=="function")for(let n of dI(r))!gI.call(l,n)&&n!==f&&N6(l,n,{get:()=>r[n],enumerable:!(i=yI(r,n))||i.enumerable});return l},KI=(l)=>AI(N6({},"__esModule",{value:!0}),l),nK={};cI(nK,{clearRequireCache:()=>WI});tK.exports=KI(nK);function WI(l){for(let r of l)delete P0.cache[r]}});var Hu=zv,an=Bu.extend(Hu.shape);var YZ=z.object({}),OZ=z.object({}),Gu=Yi.extend({id:z.literal("site-info"),entityType:z.literal("site-info"),metadata:OZ});var Oi=Yv.omit({url:!0,analyticsScript:!0});var JZ=z.record(z.string(),z.unknown());class a1 extends Uu{constructor(){super({entityType:"site-info",purpose:"Singleton configuration describing the published site.",schema:Gu,frontmatterSchema:Oi,isSingleton:!0,hasBody:!1})}createSiteInfoContent(l){let r=Oi.parse(l);return this.buildMarkdown("",r)}parseSiteInfoBody(l){return this.parseFrontmatter(l)}fromMarkdown(l){return{content:l,entityType:"site-info"}}extractMetadata(l){return{}}generateFrontMatter(l){let r=this.parseFrontmatter(l.content);return this.buildMarkdown("",JZ.parse(r))}}var Q_=new a1,aZ=z.looseObject({platform:z.string(),url:z.string(),label:z.string().optional()}).transform((l)=>({platform:l.platform,url:l.url,...l.label!==void 0?{label:l.label}:{}})),B_=z.looseObject({socialLinks:z.array(aZ).optional()});var q_=new a1;var HZ=new a1;async function Rf(l){let f=(await l.listEntities({entityType:"site-info",options:{limit:1}}))[0];if(!f)throw Error("Site info not found \u2014 create a site-info entity");return HZ.parseSiteInfoBody(f.content)}function Ov(l,r){let f=l.metadata.publishedAt??l.created,i=r.metadata.publishedAt??r.created;return new Date(i).getTime()-new Date(f).getTime()}async function Ji(l,r){return(await l.listEntities({entityType:r.entityType,options:{limit:20}})).sort(Ov).slice(0,r.count).map(r.parse)}function Bn(l){if(!l)throw Error("CTA not configured in site-info");return l}var Jv=z.object({label:z.string(),href:z.string(),priority:z.number()}),GZ=z.object({primary:z.array(Jv),secondary:z.array(Jv)}),UZ=z.object({platform:z.enum(["github","instagram","linkedin","email","website"]).describe("Social media platform"),url:z.string().describe("Profile or contact URL"),label:z.string().optional().describe("Optional display label")}),FZ=Oi.extend({navigation:GZ,copyright:z.string(),socialLinks:z.array(UZ).optional().describe("Social media links from profile entity")});var av={lexicon:1,id:"ai.rizom.brain.card",defs:{main:{type:"record",description:"Public discovery card for a Rizom brain. The operational A2A Agent Card is conventionally served at /.well-known/agent-card.json under siteUrl.",key:"literal:self",record:{type:"object",required:["siteUrl","brain","anchor","skills","model","version","createdAt"],properties:{siteUrl:{type:"string",format:"uri",description:"Public site URL. Consumers derive the A2A Agent Card URL from this base."},brain:{type:"object",description:"Brain identity described by this discovery card.",required:["did","name","role","purpose","values"],properties:{did:{type:"string",description:"Public DID for the brain identity."},name:{type:"string",maxLength:200,description:"Human-readable brain name."},role:{type:"string",maxLength:500,description:"Brain role or persona."},purpose:{type:"string",maxLength:2000,description:"Short public description of what this brain is for."},values:{type:"array",description:"Public values or principles for this brain.",items:{type:"string",maxLength:200},maxLength:50}}},anchor:{type:"object",description:"Minimal owner/operator snapshot for discovery grouping and display.",required:["did","name","kind"],properties:{did:{type:"string",description:"Public DID for the owner/operator anchor identity."},name:{type:"string",maxLength:200,description:"Human-readable anchor name."},kind:{type:"string",knownValues:["professional","team","collective"],description:"Anchor type."}}},skills:{type:"array",description:"User-facing skills this brain advertises for discovery.",items:{type:"object",required:["id","name","description"],properties:{id:{type:"string",maxLength:200},name:{type:"string",maxLength:200},description:{type:"string",maxLength:2000},tags:{type:"array",items:{type:"string"},maxLength:50},examples:{type:"array",items:{type:"string"},maxLength:20}}},maxLength:100},model:{type:"string",description:"Rizom brain model identifier."},version:{type:"string",description:"Brain runtime/model implementation version."},createdAt:{type:"string",format:"datetime"},updatedAt:{type:"string",format:"datetime"}}}}}};var Qv={lexicon:1,id:"ai.rizom.brain.deck",defs:{main:{type:"record",description:"Public presentation deck from a Rizom brain.",key:"any",record:{type:"object",required:["title","body","createdAt"],properties:{title:{type:"string",maxLength:300},slug:{type:"string"},description:{type:"string",maxLength:2000},body:{type:"string",maxLength:1e5},format:{type:"string",knownValues:["text/markdown"]},author:{type:"string"},event:{type:"string"},publishedAt:{type:"string",format:"datetime"},brainDid:{type:"string"},anchorDid:{type:"string"},sourceEntityType:{type:"string"},sourceEntityId:{type:"string"},createdAt:{type:"string",format:"datetime"},updatedAt:{type:"string",format:"datetime"}}}}}};var Bv={lexicon:1,id:"ai.rizom.brain.link",defs:{main:{type:"record",description:"Public curated link from a Rizom brain.",key:"any",record:{type:"object",required:["title","url","createdAt"],properties:{title:{type:"string",maxLength:500},url:{type:"string",format:"uri"},description:{type:"string",maxLength:2000},summary:{type:"string",maxLength:1e5},domain:{type:"string"},capturedAt:{type:"string",format:"datetime"},source:{type:"object",required:["ref","label"],properties:{ref:{type:"string"},label:{type:"string"}}},brainDid:{type:"string"},anchorDid:{type:"string"},sourceEntityType:{type:"string"},sourceEntityId:{type:"string"},createdAt:{type:"string",format:"datetime"},updatedAt:{type:"string",format:"datetime"}}}}}};var Hv={lexicon:1,id:"ai.rizom.brain.note",defs:{main:{type:"record",description:"Public knowledge note from a Rizom brain.",key:"any",record:{type:"object",required:["title","body","createdAt"],properties:{title:{type:"string",maxLength:300},body:{type:"string",maxLength:1e5},format:{type:"string",knownValues:["text/markdown"]},brainDid:{type:"string"},anchorDid:{type:"string"},sourceEntityType:{type:"string"},sourceEntityId:{type:"string"},createdAt:{type:"string",format:"datetime"},updatedAt:{type:"string",format:"datetime"}}}}}};var Gv={lexicon:1,id:"ai.rizom.brain.post",defs:{main:{type:"record",description:"Markdown blog post distributed by a Rizom brain.",key:"any",record:{type:"object",required:["title","body","createdAt"],properties:{title:{type:"string",maxLength:300},summary:{type:"string",maxLength:2000},body:{type:"string",maxLength:1e5},format:{type:"string",knownValues:["text/markdown"]},brainDid:{type:"string"},anchorDid:{type:"string"},canonicalUrl:{type:"string",format:"uri"},topics:{type:"array",items:{type:"string"},maxLength:50},coverImage:{type:"object",required:["blob"],properties:{blob:{type:"blob"},alt:{type:"string",maxLength:1000},width:{type:"integer"},height:{type:"integer"}}},series:{type:"string",maxLength:200},seriesIndex:{type:"integer"},sourceEntityType:{type:"string",knownValues:["post"]},sourceEntityId:{type:"string"},createdAt:{type:"string",format:"datetime"},publishedAt:{type:"string",format:"datetime"}}}}}};var Uv={lexicon:1,id:"ai.rizom.brain.project",defs:{main:{type:"record",description:"Public project or case study from a Rizom brain.",key:"any",record:{type:"object",required:["title","body","year","createdAt"],properties:{title:{type:"string",maxLength:300},slug:{type:"string"},description:{type:"string",maxLength:2000},body:{type:"string",maxLength:1e5},format:{type:"string",knownValues:["text/markdown"]},year:{type:"integer"},url:{type:"string",format:"uri"},publishedAt:{type:"string",format:"datetime"},brainDid:{type:"string"},anchorDid:{type:"string"},sourceEntityType:{type:"string"},sourceEntityId:{type:"string"},createdAt:{type:"string",format:"datetime"},updatedAt:{type:"string",format:"datetime"}}}}}};var Fv={lexicon:1,id:"ai.rizom.brain.series",defs:{main:{type:"record",description:"Public content series from a Rizom brain.",key:"any",record:{type:"object",required:["title","createdAt"],properties:{title:{type:"string",maxLength:300},slug:{type:"string"},description:{type:"string",maxLength:1e4},brainDid:{type:"string"},anchorDid:{type:"string"},sourceEntityType:{type:"string"},sourceEntityId:{type:"string"},createdAt:{type:"string",format:"datetime"},updatedAt:{type:"string",format:"datetime"}}}}}};var Nv={lexicon:1,id:"ai.rizom.brain.socialPost",defs:{main:{type:"record",description:"Semantic local social-post entity from a Rizom brain; not a Bluesky feed post.",key:"any",record:{type:"object",required:["title","platform","body","createdAt"],properties:{title:{type:"string",maxLength:300},platform:{type:"string"},body:{type:"string",maxLength:1e5},format:{type:"string",knownValues:["text/markdown"]},status:{type:"string"},publishedAt:{type:"string",format:"datetime"},platformPostId:{type:"string"},sourceLocalEntityType:{type:"string"},sourceLocalEntityId:{type:"string"},brainDid:{type:"string"},anchorDid:{type:"string"},sourceEntityType:{type:"string"},sourceEntityId:{type:"string"},createdAt:{type:"string",format:"datetime"},updatedAt:{type:"string",format:"datetime"}}}}}};var Tv={lexicon:1,id:"ai.rizom.brain.topic",defs:{main:{type:"record",description:"Public topic page from a Rizom brain.",key:"any",record:{type:"object",required:["title","body","createdAt"],properties:{title:{type:"string",maxLength:300},body:{type:"string",maxLength:1e5},format:{type:"string",knownValues:["text/markdown"]},brainDid:{type:"string"},anchorDid:{type:"string"},sourceEntityType:{type:"string"},sourceEntityId:{type:"string"},createdAt:{type:"string",format:"datetime"},updatedAt:{type:"string",format:"datetime"}}}}}};var qZ=z.object({type:z.string()}).catchall(z.unknown()),_Z=z.object({lexicon:z.literal(1),id:z.string(),defs:z.object({main:z.object({type:z.literal("record"),key:z.string().min(1),description:z.string().optional(),record:z.object({type:z.literal("object"),required:z.array(z.string()).optional(),properties:z.record(z.string(),qZ)})})})});function w1(l){return _Z.parse(l)}var dr={"ai.rizom.brain.card":w1(av),"ai.rizom.brain.deck":w1(Qv),"ai.rizom.brain.link":w1(Bv),"ai.rizom.brain.note":w1(Hv),"ai.rizom.brain.post":w1(Gv),"ai.rizom.brain.project":w1(Uv),"ai.rizom.brain.series":w1(Fv),"ai.rizom.brain.socialPost":w1(Nv),"ai.rizom.brain.topic":w1(Tv)},DZ="Additive optional fields are compatible; required-field, type, or constraint changes require a migration plan or new NSID.";function Q1(l){return{status:"approved",version:"1.0.0",revision:1,owner:"Rizom",steward:"Rizom protocol registry",projectionPackage:l,compatibility:DZ}}var xZ={"ai.rizom.brain.card":Q1("@brains/atproto"),"ai.rizom.brain.deck":Q1("@brains/decks"),"ai.rizom.brain.link":Q1("@brains/link"),"ai.rizom.brain.note":Q1("@brains/note"),"ai.rizom.brain.post":Q1("@brains/blog"),"ai.rizom.brain.project":Q1("@brains/portfolio"),"ai.rizom.brain.series":Q1("@brains/series"),"ai.rizom.brain.socialPost":Q1("@brains/social-media"),"ai.rizom.brain.topic":Q1("@brains/topics")};function To(l){return typeof l==="object"&&l!==null&&!Array.isArray(l)}var SZ=/^\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}(\.\d+)?(Z|[+-]\d{2}:\d{2})$/;function jZ(l){let r=z.string(),f=l.maxLength!==void 0?r.max(l.maxLength):r;if(l.knownValues)f=f.refine((i)=>l.knownValues?.includes(i),{message:`expected one of ${l.knownValues.join(", ")}`});if(l.format==="datetime")f=f.refine((i)=>SZ.test(i)&&!Number.isNaN(Date.parse(i)),{message:"expected datetime"});if(l.format==="uri")f=f.refine((i)=>{try{return new URL(i),!0}catch{return!1}},{message:"expected uri"});return f}function Rv(l){switch(l.type){case"string":return jZ(l);case"integer":return z.number().int();case"boolean":return z.boolean();case"array":{let r=l.items?Rv(l.items):z.unknown(),f=z.array(r);if(l.maxLength!==void 0)f=f.max(l.maxLength);return f}case"object":return EZ(l);case"blob":return z.custom(To,{message:"expected blob"});default:return z.unknown()}}function Lv(l){let r=new Set(l.required??[]),f={};for(let[i,n]of Object.entries(l.properties??{})){let t=Rv(n);f[i]=r.has(i)?t:t.optional()}return f}function EZ(l){return z.object(Lv(l)).passthrough()}function No(l,r,f,i=[]){let n=Object.keys(l).filter((t)=>!r.has(t));if(n.length===0)return;f.addIssue({code:z.ZodIssueCode.custom,path:i,message:`unrecognized field(s): ${n.join(", ")}`})}function sZ(l,r){if(No(l,new Set(["$type","siteUrl","brain","anchor","skills","model","version","createdAt","updatedAt"]),r),To(l.brain))No(l.brain,new Set(["did","name","role","purpose","values"]),r,["brain"]);if(To(l.anchor))No(l.anchor,new Set(["did","name","kind"]),r,["anchor"])}function v1(l){let r=z.object({...Lv(l.defs.main.record),$type:z.literal(l.id).optional()}).passthrough();return l.id==="ai.rizom.brain.card"?r.superRefine(sZ):r}var Ro={"ai.rizom.brain.card":v1(dr["ai.rizom.brain.card"]),"ai.rizom.brain.deck":v1(dr["ai.rizom.brain.deck"]),"ai.rizom.brain.link":v1(dr["ai.rizom.brain.link"]),"ai.rizom.brain.note":v1(dr["ai.rizom.brain.note"]),"ai.rizom.brain.post":v1(dr["ai.rizom.brain.post"]),"ai.rizom.brain.project":v1(dr["ai.rizom.brain.project"]),"ai.rizom.brain.series":v1(dr["ai.rizom.brain.series"]),"ai.rizom.brain.socialPost":v1(dr["ai.rizom.brain.socialPost"]),"ai.rizom.brain.topic":v1(dr["ai.rizom.brain.topic"])};var CZ=z.custom((l)=>Ro["ai.rizom.brain.card"].safeParse(l).success),eZ=z.object({repoDid:z.string().min(1),uri:z.string().min(1),cid:z.string().min(1),record:CZ}).strict(),lX=z.object({agentId:z.string().min(1),name:z.string().min(1),url:z.string().url(),status:z.enum(["discovered","approved","archived"]),repoDid:z.string().min(1).optional(),brainDid:z.string().min(1).optional(),anchorDid:z.string().min(1).optional(),cardUri:z.string().min(1).optional(),cardCid:z.string().min(1).optional()}).strict();class rf{static instance;projections=new Map;static getInstance(){return this.instance??=new rf,this.instance}static createFresh(){return new rf}static resetInstance(){this.instance=void 0}register(l){this.validateProjection(l);let r=this.get(l.entityType);if(r&&!this.isEquivalentProjection(r,l))throw Error(`AT Protocol projection already registered for entity type ${l.entityType}`);let f=this.projections.get(l.entityType)??[];return f.push(l),this.projections.set(l.entityType,f),this.createUnregister(l.entityType,l)}get(l){let r=this.projections.get(l);return r?.[r.length-1]}has(l){return this.get(l)!==void 0}list(){let l=[];for(let r of this.projections.keys()){let f=this.get(r);if(f)l.push(f)}return l}listLexicons(){return this.list().map((l)=>l.lexicon)}createUnregister(l,r){let f=!0;return()=>{if(!f)return;f=!1;let i=this.projections.get(l);if(!i)return;let n=i.lastIndexOf(r);if(n!==-1)i.splice(n,1);if(i.length===0)this.projections.delete(l)}}isEquivalentProjection(l,r){return l.entityType===r.entityType&&l.collection===r.collection&&l.lexicon.id===r.lexicon.id&&l.validate===r.validate}validateProjection(l){if(l.collection!==l.lexicon.id)throw Error(`AT Protocol projection collection must match lexicon id: ${l.collection} !== ${l.lexicon.id}`);if(!l.lexicon.defs.main.key)throw Error(`AT Protocol projection lexicon must define a record key: ${l.collection}`)}}var Lo=z.object({defaultPrompt:z.string().default("Write a blog post about my recent work and insights"),paginate:z.boolean().default(!0),pageSize:z.number().default(10)});var rX=z.object({prompt:z.string().optional(),title:z.string().optional(),content:z.string().optional(),excerpt:z.string().optional(),coverImageId:z.string().optional(),seriesName:z.string().optional(),seriesIndex:z.number().optional(),skipAi:z.boolean().optional()}),ux=Fu.extend({title:z.string().optional(),slug:z.string().optional()});class Po extends Nu{constructor(l,r){super(l,r,{schema:rX,jobTypeName:"blog-generation",entityType:"post"})}async generate(l,r){let{prompt:f,coverImageId:i,seriesName:n,seriesIndex:t,skipAi:u}=l,{title:o,content:w,excerpt:v}=l;if(u){if(!o)this.failEarly("Title is required when skipAi is true");w=w??`## Introduction
|
|
205
205
|
|
|
206
206
|
Add your introduction here.
|
|
207
207
|
|
|
@@ -1372,7 +1372,7 @@ ${r.join(`
|
|
|
1372
1372
|
letter-spacing: 0.02em;
|
|
1373
1373
|
}
|
|
1374
1374
|
.printable-footer a { color: inherit; text-decoration: none; overflow-wrap: anywhere; }
|
|
1375
|
-
`}},void 0,!1,void 0,this),nr("header",{className:"printable-hero",children:[nr("div",{className:"printable-masthead",children:r.brandLabel&&nr("p",{className:"printable-kicker",children:r.brandLabel},void 0,!1,void 0,this)},void 0,!1,void 0,this),nr("div",{children:[nr("h1",{className:"printable-title",children:r.title},void 0,!1,void 0,this),r.excerpt&&nr("p",{className:"printable-excerpt",children:r.excerpt},void 0,!1,void 0,this),nr("div",{className:"printable-meta",children:[r.author&&nr("span",{children:["By ",r.author]},void 0,!0,void 0,this),f&&nr("span",{children:f},void 0,!1,void 0,this)]},void 0,!0,void 0,this)]},void 0,!0,void 0,this)]},void 0,!0,void 0,this),r.coverImageUrl&&nr("figure",{className:"printable-cover-wrap",children:nr("img",{className:"printable-cover",src:r.coverImageUrl,alt:""},void 0,!1,void 0,this)},void 0,!1,void 0,this),nr(P1,{markdown:r.body,className:"printable-body"},void 0,!1,void 0,this),(Boolean(r.canonicalUrl)||Boolean(r.brandLabel))&&nr("footer",{className:"printable-footer",children:[nr("span",{children:r.brandLabel??"Printable PDF"},void 0,!1,void 0,this),r.canonicalUrl&&nr("a",{href:r.canonicalUrl,children:r.canonicalUrl},void 0,!1,void 0,this)]},void 0,!0,void 0,this)]},void 0,!0,void 0,this)}var Sp=26214400,jp=60000;class S6{metadata={outputEntityType:"document"};context;renderPdf;constructor(l,r={}){this.context=l,this.renderPdf=r.renderPdf??yt}async resolve(l){if(l.sourceEntityType!=="post"||l.attachmentType!==ro)return;let r=await this.context.entityService.getEntity({entityType:"post",id:l.sourceEntityId});if(!r)return;let f=Ep(r,{brandLabel:this.resolveBrandLabel(),coverImageUrl:await this.resolveCoverImageUrl(r)}),i=await qp(xp(Dp(),"brain-blog-printable-"));try{let n=await S1({outputDir:i,mediaPath:`/_media/printable/post/${r.id}`,template:UK,format:"pdf",content:f,siteConfig:{title:f.title,themeMode:"light"},themeCSS:this.context.themeCSS}),t=await j1({rootDir:i});try{return{type:"document",data:await this.renderPdf(t.urlFor(n.urlPath),{maxBytes:Sp,timeoutMs:jp,printBackground:!0,preferCSSPageSize:!0}),mimeType:"application/pdf",filename:`${sp(r)}-printable.pdf`}}finally{await t.close()}}finally{await _p(i,{recursive:!0,force:!0})}}resolveBrandLabel(){let l=this.context.domain?.trim();if(l&&l.length>0)return l;let r=this.context.identity.getProfile().name.trim();return r.length>0?r:void 0}async resolveCoverImageUrl(l){let{frontmatter:r}=X1(l.content),f=Cl.parse(r);if(!f.coverImageId)return;let i=await this.context.entityService.getEntity({entityType:"image",id:f.coverImageId});return i?.content.startsWith("data:image/")?i.content:void 0}}function Ep(l,r={}){let{frontmatter:f,content:i}=X1(l.content),n=Cl.parse(f);return{title:n.title,body:i,...n.excerpt?{excerpt:n.excerpt}:{},...n.author?{author:n.author}:{},...n.publishedAt?{publishedAt:n.publishedAt}:{},...n.canonicalUrl?{canonicalUrl:n.canonicalUrl}:{},...r.coverImageUrl?{coverImageUrl:r.coverImageUrl}:{},...r.brandLabel?{brandLabel:r.brandLabel}:{}}}function sp(l){let r=l.metadata.slug;return r.length>0?r:sl(l.metadata.title)}import{mkdtemp as fq,rm as iq}from"fs/promises";import{tmpdir as nq}from"os";import{join as tq}from"path";import{jsxDEV as rq}from"preact/jsx-dev-runtime";var lu="og-image",Cp="blog:og-image",FK=z.object({title:z.string().min(1),excerpt:z.string().optional(),author:z.string().optional(),publishedAt:z.string().optional(),brandLabel:z.string().optional(),coverImageUrl:z.string().optional()}),NK={name:Cp,pluginId:"blog",schema:FK,renderers:{image:lq}};function ep(l){if(!l)return;let r=new Date(l);if(Number.isNaN(r.getTime()))return;return r.toLocaleDateString("en-GB",{year:"numeric",month:"short",day:"2-digit"})}function lq(l){let r=FK.parse(l);return rq(ht,{brandLabel:r.brandLabel??r.title,eyebrow:"Journal",title:r.title,subtitle:r.excerpt,meta:[r.author],tag:ep(r.publishedAt)},void 0,!1,void 0,this)}var uq={width:1200,height:630},hq=60000;class j6{metadata={outputEntityType:"image",targetField:"ogImageId"};context;screenshotPng;constructor(l,r={}){this.context=l,this.screenshotPng=r.screenshotPng??bt}async resolve(l){if(l.sourceEntityType!=="post"||l.attachmentType!==lu)return;let r=await this.context.entityService.getEntity({entityType:"post",id:l.sourceEntityId});if(!r)return;let f=oq(r,{brandLabel:this.resolveBrandLabel(),coverImageUrl:await this.resolveCoverImageUrl(r)}),i=await fq(tq(nq(),"brain-blog-og-image-"));try{let n=await S1({outputDir:i,mediaPath:`/_media/og/post/${r.id}`,template:NK,format:"image",content:f,siteConfig:{title:f.title,themeMode:"light"},themeCSS:this.context.themeCSS}),t=await j1({rootDir:i});try{return{type:"image",data:await this.screenshotPng(t.urlFor(n.urlPath),uq,{timeoutMs:hq,fullPage:!1,omitBackground:!1}),mimeType:"image/png",filename:`${wq(r)}-og.png`}}finally{await t.close()}}finally{await iq(i,{recursive:!0,force:!0})}}resolveBrandLabel(){let l=this.context.domain?.trim();if(l&&l.length>0)return l;let r=this.context.identity.getProfile().name.trim();return r.length>0?r:void 0}async resolveCoverImageUrl(l){let{frontmatter:r}=X1(l.content),f=Cl.parse(r);if(!f.coverImageId)return;let i=await this.context.entityService.getEntity({entityType:"image",id:f.coverImageId});return i?.content.startsWith("data:image/")?i.content:void 0}}function oq(l,r={}){let{frontmatter:f}=X1(l.content),i=Cl.parse(f);return{title:i.title,...i.excerpt?{excerpt:i.excerpt}:{},...i.author?{author:i.author}:{},...i.publishedAt?{publishedAt:i.publishedAt}:{},...r.coverImageUrl?{coverImageUrl:r.coverImageUrl}:{},...r.brandLabel?{brandLabel:r.brandLabel}:{}}}function wq(l){let r=l.metadata.slug;return r.length>0?r:sl(l.metadata.title)}var TK={name:"@brains/blog",version:"0.2.0-alpha.189",description:"AI-powered blog post generation from existing brain content",dependencies:{"@brains/atproto-contracts":"workspace:*","@brains/contracts":"workspace:*","@brains/media-page-composer":"workspace:*","@brains/media-renderer":"workspace:*","@brains/plugins":"workspace:*","@brains/ui-library":"workspace:*","@brains/utils":"workspace:*"},devDependencies:{"@brains/app":"workspace:*","@brains/eslint-config":"workspace:*","@brains/typescript-config":"workspace:*","@types/bun":"^1.3.14","bun-types":"^1.3.14",eslint:"^10.5.0",typescript:"^7.0.2"},exports:{".":"./src/index.ts"},private:!0,scripts:{eval:"cd evals && bun run brain-eval",lint:"eslint . --max-warnings 0","lint:fix":"eslint . --max-warnings 0 --fix",test:"bun test",typecheck:"tsc --noEmit"},type:"module"};class RK extends Qn{entityType=bf.entityType;schema=E6;adapter=bf;unregisterAtprotoProjection;unregisterPrintableAttachmentProvider;unregisterOgImageAttachmentProvider;constructor(l={}){super("blog",TK,l,Lo)}getEntityTypeConfig(){return{weight:2,publish:{publishStatuses:["queued","published"]}}}createGenerationHandler(l){return new Po(this.logger.child("BlogGenerationJobHandler"),l)}getTemplates(){return n$()}getDataSources(){return[new Io(this.logger.child("BlogDataSource"))]}async onRegister(l){let{RSSDataSource:r}=await import("./chunks/rss-datasource-7w2d1gvk.js");l.entities.registerDataSource(new r(this.logger.child("RSSDataSource"))),t$(l,this.logger),u$(l,this.logger),o$(l,this.logger),w$(l),this.unregisterPrintableAttachmentProvider=l.attachments.register("post",ro,new S6(l)),this.unregisterOgImageAttachmentProvider=l.attachments.register("post",lu,new j6(l)),this.deferPublishAssetRegistration(l),this.unregisterAtprotoProjection=rf.getInstance().register(sw()),this.logger.info("Blog plugin registered (routes auto-generated at /posts/)")}deferPublishAssetRegistration(l){l.messaging.subscribe("system:plugins:ready",async()=>{return await l.messaging.send({type:"publish-assets:register",payload:{entityType:"post",attachmentType:lu,mediaEntityType:"image",targetEntityField:{location:"frontmatter",field:"ogImageId"},requiredWhen:{status:"published"},autoGenerate:!0,jobType:"image:image-render-source"}}),{success:!0}})}async onShutdown(){this.unregisterPrintableAttachmentProvider?.(),this.unregisterPrintableAttachmentProvider=void 0,this.unregisterOgImageAttachmentProvider?.(),this.unregisterOgImageAttachmentProvider=void 0,this.unregisterAtprotoProjection?.(),this.unregisterAtprotoProjection=void 0}}class fo{postsListUrl;id="personal:homepage";name="Personal Homepage DataSource";description="Fetches profile and blog posts for a personal homepage";constructor(l){this.postsListUrl=l}async fetch(l,r,f){let i=f.entityService,[n,t,u]=await Promise.all([Jf(i,an),Ji(i,{entityType:"post",count:6,parse:Lf}),Rf(i)]),o={profile:n,posts:t,postsListUrl:this.postsListUrl,cta:Bn(u.cta)};return r.parse(o)}}class io{id="personal:about";name="About Page DataSource";description="Fetches full profile data for the about page";async fetch(l,r,f){let n={profile:await Jf(f.entityService,an)};return r.parse(n)}}import{jsxDEV as _0,Fragment as LK}from"preact/jsx-dev-runtime";function mq(l){return new Date(l).toLocaleDateString("en-US",{year:"numeric",month:"long",day:"numeric"})}function kq(l){return l.split(/(\*[^*]+\*)/).map((r,f)=>{if(r.startsWith("*")&&r.endsWith("*")&&r.length>2)return _0("em",{className:"font-sans italic font-medium text-theme-inverse tracking-[-0.015em] [font-variation-settings:'opsz'_72]",children:r.slice(1,-1)},f,!1,void 0,this);return r})}var s6=({profile:l,posts:r,postsListUrl:f,cta:i})=>{let n=l.tagline??l.description,t=l.name.split(" ")[0];return _0(LK,{children:[_0(Ll,{title:l.name,description:l.description??n??"Personal site",ogType:"website"},void 0,!1,void 0,this),_0("header",{className:"hero-decor bg-brand text-theme-inverse relative flex flex-col items-center justify-center px-6 md:px-12 pt-32 pb-24 gap-7",children:_0("div",{className:"w-full max-w-[1100px] mx-auto text-center flex flex-col items-center gap-7",children:[n&&_0("h1",{className:"font-heading font-bold text-[clamp(2.5rem,6vw,5rem)] leading-[1.05] tracking-[-0.035em] text-theme-inverse text-balance m-0 [font-variation-settings:'wdth'_90,'opsz'_96]",children:kq(n)},void 0,!1,void 0,this),l.description&&_0("p",{className:"text-[clamp(1.0625rem,1.4vw,1.3125rem)] leading-[1.5] text-theme-inverse opacity-95 max-w-[600px] mx-auto m-0",children:l.description},void 0,!1,void 0,this),_0("div",{className:"flex flex-wrap justify-center gap-3.5 mt-2",children:[_0("a",{href:f,className:"inline-flex items-center gap-2 rounded-full py-3.5 px-7 bg-theme text-brand border-2 border-theme font-heading font-semibold text-[15px] hover:bg-theme-subtle hover:-translate-y-0.5 transition-all [font-variation-settings:'wdth'_92,'opsz'_18]",children:["Read the Blog ",_0("span",{"aria-hidden":"true",children:"\u2192"},void 0,!1,void 0,this)]},void 0,!0,void 0,this),_0("a",{href:"/about",className:"rounded-full py-3.5 px-7 border-2 border-theme-light text-theme-inverse font-heading font-semibold text-[15px] hover:bg-brand-dark hover:border-theme hover:-translate-y-0.5 transition-all [font-variation-settings:'wdth'_92,'opsz'_18]",children:["About ",t]},void 0,!0,void 0,this)]},void 0,!0,void 0,this)]},void 0,!0,void 0,this)},void 0,!1,void 0,this),r.length>0&&_0("section",{className:"flex flex-col py-24 px-6 md:px-12 gap-11 bg-theme-subtle",children:[_0("div",{className:"flex justify-between items-end max-w-layout mx-auto w-full gap-6 flex-wrap",children:[_0("div",{children:[_0("span",{className:"block font-heading font-semibold text-[13px] uppercase tracking-[0.22em] text-brand mb-3 [font-variation-settings:'wdth'_85,'opsz'_12]",children:"The Archive"},void 0,!1,void 0,this),_0("h2",{className:"font-heading font-bold text-[clamp(2.25rem,5vw,3.75rem)] leading-none tracking-[-0.03em] text-heading m-0 [font-variation-settings:'wdth'_92,'opsz'_64]",children:["Recent"," ",_0("em",{className:"font-sans italic font-medium text-brand [font-variation-settings:'opsz'_60]",children:"posts"},void 0,!1,void 0,this)]},void 0,!0,void 0,this)]},void 0,!0,void 0,this),_0("a",{href:f,className:"font-heading font-semibold text-[15px] text-brand inline-flex items-center gap-1.5 pb-1.5 border-b-2 border-current hover:text-brand-dark transition-colors [font-variation-settings:'wdth'_88,'opsz'_16]",children:["View the whole archive ",_0("span",{"aria-hidden":"true",children:"\u2192"},void 0,!1,void 0,this)]},void 0,!0,void 0,this)]},void 0,!0,void 0,this),_0("div",{className:"grid grid-cols-[repeat(auto-fit,minmax(min(100%,320px),1fr))] gap-8 max-w-layout mx-auto w-full",children:r.map((u)=>_0("a",{href:u.url,className:"group flex flex-col bg-theme border border-theme rounded-md overflow-hidden hover:-translate-y-1 hover:border-brand/50 transition-all no-underline shadow-sm hover:shadow-lg",children:[u.coverImageUrl?_0("img",{src:u.coverImageUrl,alt:u.metadata.title,className:"w-full aspect-[16/10] object-cover bg-theme-muted"},void 0,!1,void 0,this):_0("div",{className:"w-full aspect-[16/10] bg-gradient-to-br from-brand to-accent","aria-hidden":"true"},void 0,!1,void 0,this),_0("div",{className:"flex flex-col gap-4 p-7 flex-1",children:[_0("div",{className:"flex flex-wrap items-center gap-3.5 font-heading text-[11px] font-semibold uppercase tracking-[0.18em] text-theme-muted [font-variation-settings:'wdth'_85,'opsz'_11]",children:[u.frontmatter.seriesName&&_0(LK,{children:[_0("span",{className:"text-brand",children:u.frontmatter.seriesName},void 0,!1,void 0,this),_0("span",{className:"w-[3px] h-[3px] rounded-full bg-current opacity-50","aria-hidden":"true"},void 0,!1,void 0,this)]},void 0,!0,void 0,this),_0("time",{children:mq(u.metadata.publishedAt??u.created)},void 0,!1,void 0,this)]},void 0,!0,void 0,this),_0("h3",{className:"font-sans font-semibold text-[clamp(1.375rem,1.8vw,1.625rem)] leading-[1.18] tracking-[-0.012em] text-heading m-0 text-balance",children:u.metadata.title},void 0,!1,void 0,this),u.frontmatter.excerpt&&_0("p",{className:"text-base leading-[1.55] text-theme-muted m-0 flex-1",children:u.frontmatter.excerpt},void 0,!1,void 0,this),_0("span",{className:"inline-flex items-center gap-1.5 font-heading font-semibold text-[13px] uppercase tracking-[0.14em] text-brand mt-1 [font-variation-settings:'wdth'_88,'opsz'_14]",children:["Read the post"," ",_0("span",{"aria-hidden":"true",className:"transition-transform group-hover:translate-x-1",children:"\u2192"},void 0,!1,void 0,this)]},void 0,!0,void 0,this)]},void 0,!0,void 0,this)]},u.id,!0,void 0,this))},void 0,!1,void 0,this)]},void 0,!0,void 0,this),_0("section",{className:"cta-decor bg-theme-dark text-theme-on-dark flex-grow flex flex-col items-center justify-center py-24 px-6 md:px-12 gap-5",children:[_0("span",{className:"font-heading font-medium text-xs uppercase tracking-[0.24em] text-accent [font-variation-settings:'wdth'_85,'opsz'_12]",children:"Get in touch"},void 0,!1,void 0,this),_0("h2",{className:"text-center font-heading font-bold text-[clamp(2rem,4vw,3rem)] leading-none tracking-[-0.03em] text-theme-on-dark m-0 [font-variation-settings:'wdth'_90,'opsz'_64]",children:i.heading},void 0,!1,void 0,this),i.subtitle&&_0("p",{className:"text-center text-base leading-[1.55] text-theme-on-dark opacity-80 max-w-[480px] m-0",children:i.subtitle},void 0,!1,void 0,this),_0("a",{href:i.buttonLink,className:"inline-flex items-center gap-2 rounded-full py-3.5 px-7 bg-brand text-theme-inverse border-2 border-brand font-heading font-semibold text-[15px] hover:bg-brand-dark hover:-translate-y-0.5 transition-all mt-2 [font-variation-settings:'wdth'_92,'opsz'_18]",children:[i.buttonText," ",_0("span",{"aria-hidden":"true",children:"\u2192"},void 0,!1,void 0,this)]},void 0,!0,void 0,this)]},void 0,!0,void 0,this)]},void 0,!0,void 0,this)};import{jsxDEV as tr,Fragment as $q}from"preact/jsx-dev-runtime";var C6=({profile:l})=>{let r=`About ${l.name}`,f=l.description??l.intro??"About page",i=Boolean(l.email??l.website);return tr($q,{children:[tr(Ll,{title:r,description:f,ogType:"profile"},void 0,!1,void 0,this),tr("section",{className:"hero-decor bg-brand text-theme-inverse relative flex flex-col px-6 md:px-12 pt-32 pb-24",children:tr("div",{className:"w-full max-w-3xl mx-auto flex flex-col gap-6",children:[tr("h1",{className:"font-heading font-bold text-[clamp(2.5rem,6vw,4.5rem)] leading-[1.05] tracking-[-0.035em] text-theme-inverse text-balance m-0 [font-variation-settings:'wdth'_90,'opsz'_96]",children:l.name},void 0,!1,void 0,this),l.description&&tr("p",{className:"text-[clamp(1.0625rem,1.4vw,1.25rem)] leading-[1.55] text-theme-inverse opacity-95 max-w-2xl m-0",children:l.description},void 0,!1,void 0,this)]},void 0,!0,void 0,this)},void 0,!1,void 0,this),l.story&&tr("section",{className:`py-24 px-6 md:px-12 bg-theme-subtle${i?"":" flex-grow"}`,children:tr("div",{className:"max-w-3xl mx-auto",children:tr(P1,{markdown:l.story},void 0,!1,void 0,this)},void 0,!1,void 0,this)},void 0,!1,void 0,this),i&&tr("section",{className:"cta-decor bg-theme-dark text-theme-on-dark flex-grow flex flex-col items-center justify-center py-24 px-6 md:px-12 gap-5",children:[tr("span",{className:"font-heading font-medium text-xs uppercase tracking-[0.24em] text-accent [font-variation-settings:'wdth'_85,'opsz'_12]",children:"Get in touch"},void 0,!1,void 0,this),tr("h2",{className:"text-center font-heading font-bold text-[clamp(2rem,4vw,3rem)] leading-none tracking-[-0.03em] text-theme-on-dark m-0 [font-variation-settings:'wdth'_90,'opsz'_64]",children:["Say"," ",tr("em",{className:"font-sans italic font-medium text-accent [font-variation-settings:'opsz'_72]",children:"hi."},void 0,!1,void 0,this)]},void 0,!0,void 0,this),tr("div",{className:"flex flex-wrap justify-center gap-3.5 mt-2",children:[l.email&&tr("a",{href:`mailto:${l.email}`,className:"inline-flex items-center gap-2 rounded-full py-3.5 px-7 bg-brand text-theme-inverse border-2 border-brand font-heading font-semibold text-[15px] hover:bg-brand-dark hover:-translate-y-0.5 transition-all [font-variation-settings:'wdth'_92,'opsz'_18]",children:["Get in Touch ",tr("span",{"aria-hidden":"true",children:"\u2192"},void 0,!1,void 0,this)]},void 0,!0,void 0,this),l.website&&tr("a",{href:l.website,className:"rounded-full py-3.5 px-7 border-2 border-theme-light text-theme-on-dark font-heading font-semibold text-[15px] hover:bg-brand-dark hover:border-theme hover:-translate-y-0.5 transition-all [font-variation-settings:'wdth'_92,'opsz'_18]",children:"Website"},void 0,!1,void 0,this)]},void 0,!0,void 0,this)]},void 0,!0,void 0,this)]},void 0,!0,void 0,this)};var PK={name:"@brains/site-personal",version:"0.2.0-alpha.189",description:"Personal site composition package",dependencies:{"@brains/blog":"workspace:*","@brains/plugins":"workspace:*","@brains/site-composition":"workspace:*","@brains/site-engine":"workspace:*","@brains/site-info":"workspace:*","@brains/templates":"workspace:*","@brains/ui-library":"workspace:*","@brains/utils":"workspace:*",preact:"^10.27.2"},devDependencies:{"@brains/eslint-config":"workspace:*","@brains/typescript-config":"workspace:*","@types/bun":"^1.3.14","bun-types":"^1.3.14",eslint:"^10.5.0",typescript:"^7.0.2"},exports:{".":"./src/index.ts"},files:["src"],private:!0,scripts:{lint:"eslint . --max-warnings 0","lint:fix":"eslint . --max-warnings 0 --fix",typecheck:"tsc --noEmit"},type:"module"};var yq=z.object({entityDisplay:z.object({post:z.object({label:z.string().default("Post"),pluralName:z.string().optional()}).default({label:"Post"})}).default({post:{label:"Post"}})}),dq=z.object({heading:z.string(),buttonText:z.string(),buttonLink:z.string(),subtitle:z.string().optional()}),MK=z.looseObject({name:z.string(),kind:z.enum(["professional","team","collective"]),organization:z.string().optional(),description:z.string().optional(),avatar:z.string().optional(),website:z.string().optional(),email:z.string().optional(),socialLinks:z.array(z.object({platform:z.enum(["github","instagram","linkedin","email","website"]),url:z.string(),label:z.string().optional()})).optional(),tagline:z.string().optional(),intro:z.string().optional(),story:z.string().optional()}),gq=z.looseObject({id:z.string(),entityType:z.literal("post"),content:z.string(),created:z.string(),updated:z.string(),contentHash:z.string(),metadata:z.looseObject({title:z.string(),publishedAt:z.string().optional()}),frontmatter:z.looseObject({excerpt:z.string(),seriesName:z.string().optional(),seriesIndex:z.number().optional()}),body:z.string(),url:z.string().optional(),typeLabel:z.string().optional(),listUrl:z.string().optional(),listLabel:z.string().optional(),seriesUrl:z.string().optional(),coverImageUrl:z.string().optional(),ogImageUrl:z.string().optional(),coverImageWidth:z.number().optional(),coverImageHeight:z.number().optional(),coverImageSrcset:z.string().optional(),coverImageSizes:z.string().optional()});class e6 extends no{dependencies=["blog"];constructor(l={}){super("personal-site",PK,l,yq)}async onRegister(l){l.entities.extendFrontmatterSchema("anchor-profile",Hu);let r=this.config.entityDisplay.post,f=`/${r.pluralName??r.label.toLowerCase()+"s"}`,i=new fo(f);l.entities.registerDataSource(i);let n=new io;l.entities.registerDataSource(n);let t=z.object({profile:MK,posts:z.array(gq),postsListUrl:z.string(),cta:dq}),u=z.object({profile:MK});l.templates.register({homepage:Ol({name:"homepage",description:"Personal homepage with recent blog posts",schema:t,dataSourceId:"personal:homepage",requiredPermission:"public",layout:{component:s6}}),about:Ol({name:"about",description:"About page with profile",schema:u,dataSourceId:"personal:about",requiredPermission:"public",layout:{component:C6}})}),this.logger.info("Personal site plugin registered successfully")}async getTools(){return[]}async getResources(){return[]}}function l4(l){return new e6(l??{})}var r4=[{id:"home",path:"/",title:"Home",description:"Personal site homepage",layout:"default",navigation:{show:!0,label:"Home",slot:"secondary",priority:10},sections:[{id:"homepage",template:"personal-site:homepage",dataQuery:{}}]},{id:"about",path:"/about",title:"About",description:"About page",layout:"default",navigation:{show:!0,label:"About",slot:"primary",priority:90},sections:[{id:"about",template:"personal-site:about",dataQuery:{}}]}];import{jsxDEV as Tr}from"preact/jsx-dev-runtime";function f4({sections:l,siteInfo:r}){let f=[...r.navigation.primary,...r.navigation.secondary].filter((i)=>i.label!=="Home");return Tr("div",{className:"flex flex-col min-h-screen bg-theme overflow-x-clip",children:[Tr(ut,{title:r.title,titleClassName:"font-heading font-bold text-2xl",navigation:r.navigation.primary,showThemeToggle:!0,themeToggleClassName:"bg-theme-toggle text-theme-toggle-icon hover:bg-theme-toggle-hover rounded-[10px]",...r.logo!==void 0?{logo:r.logo}:{}},void 0,!1,void 0,this),Tr("main",{className:"flex-grow flex flex-col",children:l},void 0,!1,void 0,this),Tr("footer",{className:"bg-footer text-footer border-t border-theme",children:Tr("div",{className:"max-w-layout mx-auto flex flex-col md:flex-row justify-between items-center py-8 px-6 md:px-8",children:[Tr("div",{className:"flex flex-col gap-1 mb-4 md:mb-0",children:[Tr("span",{className:"text-brand font-heading font-bold text-lg",children:r.title},void 0,!1,void 0,this),r.description&&Tr("span",{className:"text-theme-muted text-xs",children:r.description},void 0,!1,void 0,this)]},void 0,!0,void 0,this),Tr("nav",{className:"flex flex-wrap justify-center gap-x-6 gap-y-2 mb-4 md:mb-0",children:f.map((i)=>Tr("a",{href:i.href,className:"text-theme-muted text-[13px] hover:text-brand transition-colors",children:i.label},i.href,!1,void 0,this))},void 0,!1,void 0,this),Tr("div",{className:"flex items-center gap-4",children:[r.copyright&&Tr("span",{className:"text-theme-light text-[11px]",children:r.copyright},void 0,!1,void 0,this),Tr(tf,{variant:"footer",size:"sm"},void 0,!1,void 0,this)]},void 0,!0,void 0,this)]},void 0,!0,void 0,this)},void 0,!1,void 0,this)]},void 0,!0,void 0,this)}var ru=Bu.extend(i4.shape);var VK=z.enum(["generating","draft","queued","published","failed"]),IK=z.enum(["generating","draft","queued","published","failed"]),n4="publishedAt is required when deck status is published",t4=(l)=>l.status==="published"&&!l.publishedAt,u4=(l)=>{if(t4(l))throw Error(n4)},z1=z.object({title:z.string(),slug:z.string().optional(),description:z.string().optional(),author:z.string().optional(),status:VK,publishedAt:z.string().datetime().optional(),event:z.string().optional(),coverImageId:z.string().optional(),ogImageId:z.string().optional()}),Uu0=z.object({title:z.string(),description:z.string().optional(),status:VK,publishedAt:z.string().datetime().optional(),coverImageId:z.string().optional(),slug:z.string(),error:z.string().optional()}).superRefine((l,r)=>{if(!t4(l))return;r.addIssue({code:z.ZodIssueCode.custom,path:["publishedAt"],message:n4})}),cq=z.object({title:z.string(),description:z.string().optional(),status:IK,publishedAt:z.string().datetime().optional(),coverImageId:z.string().optional(),slug:z.string(),error:z.string().optional()}).superRefine((l,r)=>{if(!t4(l))return;r.addIssue({code:"custom",path:["publishedAt"],message:n4})}),Aq=z.object({title:z.string(),slug:z.string().optional(),description:z.string().optional(),author:z.string().optional(),status:IK,publishedAt:z.string().datetime().optional(),event:z.string().optional(),coverImageId:z.string().optional(),ogImageId:z.string().optional()}),gn=Yi.extend({entityType:z.literal("deck"),metadata:cq}),to=gn.extend({frontmatter:Aq,body:z.string(),ogImageUrl:z.string().optional()}),fu=to.extend({url:z.string().optional(),typeLabel:z.string().optional(),listUrl:z.string().optional(),listLabel:z.string().optional(),coverImageUrl:z.string().optional(),ogImageUrl:z.string().optional(),coverImageWidth:z.number().optional(),coverImageHeight:z.number().optional()});class h4 extends Uu{constructor(){super({entityType:"deck",purpose:"A slide-deck presentation.",schema:gn,frontmatterSchema:z1,supportsCoverImage:!0})}validateSlideStructure(l){if(!/^---$/gm.test(l))throw Error("Invalid deck: markdown must contain slide separators (---) to be a valid presentation")}toMarkdown(l){let r=this.extractBody(l.content);this.validateSlideStructure(r);let f=this.parseFrontMatter(l.content,z1);u4(f);let i={...f,slug:f.slug??l.metadata.slug};return this.buildMarkdown(r,i)}fromMarkdown(l){let r=this.parseFrontmatter(l),f=this.extractBody(l);u4(r),this.validateSlideStructure(f);let i=r.slug??sl(r.title),n=r.status;return{entityType:"deck",content:l,metadata:{slug:i,title:r.title,description:r.description,status:n,publishedAt:r.publishedAt,coverImageId:r.coverImageId}}}generateTitle(l){return l.metadata.title}generateSummary(l){if(l.metadata.description)return l.metadata.description;return`Presentation: ${l.metadata.title}`}generateFrontMatter(l){return this.toMarkdown(l)}buildStub(l){let r={title:l.title,slug:l.id,status:"generating"};return{content:this.buildMarkdown(`---
|
|
1375
|
+
`}},void 0,!1,void 0,this),nr("header",{className:"printable-hero",children:[nr("div",{className:"printable-masthead",children:r.brandLabel&&nr("p",{className:"printable-kicker",children:r.brandLabel},void 0,!1,void 0,this)},void 0,!1,void 0,this),nr("div",{children:[nr("h1",{className:"printable-title",children:r.title},void 0,!1,void 0,this),r.excerpt&&nr("p",{className:"printable-excerpt",children:r.excerpt},void 0,!1,void 0,this),nr("div",{className:"printable-meta",children:[r.author&&nr("span",{children:["By ",r.author]},void 0,!0,void 0,this),f&&nr("span",{children:f},void 0,!1,void 0,this)]},void 0,!0,void 0,this)]},void 0,!0,void 0,this)]},void 0,!0,void 0,this),r.coverImageUrl&&nr("figure",{className:"printable-cover-wrap",children:nr("img",{className:"printable-cover",src:r.coverImageUrl,alt:""},void 0,!1,void 0,this)},void 0,!1,void 0,this),nr(P1,{markdown:r.body,className:"printable-body"},void 0,!1,void 0,this),(Boolean(r.canonicalUrl)||Boolean(r.brandLabel))&&nr("footer",{className:"printable-footer",children:[nr("span",{children:r.brandLabel??"Printable PDF"},void 0,!1,void 0,this),r.canonicalUrl&&nr("a",{href:r.canonicalUrl,children:r.canonicalUrl},void 0,!1,void 0,this)]},void 0,!0,void 0,this)]},void 0,!0,void 0,this)}var Sp=26214400,jp=60000;class S6{metadata={outputEntityType:"document"};context;renderPdf;constructor(l,r={}){this.context=l,this.renderPdf=r.renderPdf??yt}async resolve(l){if(l.sourceEntityType!=="post"||l.attachmentType!==ro)return;let r=await this.context.entityService.getEntity({entityType:"post",id:l.sourceEntityId});if(!r)return;let f=Ep(r,{brandLabel:this.resolveBrandLabel(),coverImageUrl:await this.resolveCoverImageUrl(r)}),i=await qp(xp(Dp(),"brain-blog-printable-"));try{let n=await S1({outputDir:i,mediaPath:`/_media/printable/post/${r.id}`,template:UK,format:"pdf",content:f,siteConfig:{title:f.title,themeMode:"light"},themeCSS:this.context.themeCSS}),t=await j1({rootDir:i});try{return{type:"document",data:await this.renderPdf(t.urlFor(n.urlPath),{maxBytes:Sp,timeoutMs:jp,printBackground:!0,preferCSSPageSize:!0}),mimeType:"application/pdf",filename:`${sp(r)}-printable.pdf`}}finally{await t.close()}}finally{await _p(i,{recursive:!0,force:!0})}}resolveBrandLabel(){let l=this.context.domain?.trim();if(l&&l.length>0)return l;let r=this.context.identity.getProfile().name.trim();return r.length>0?r:void 0}async resolveCoverImageUrl(l){let{frontmatter:r}=X1(l.content),f=Cl.parse(r);if(!f.coverImageId)return;let i=await this.context.entityService.getEntity({entityType:"image",id:f.coverImageId});return i?.content.startsWith("data:image/")?i.content:void 0}}function Ep(l,r={}){let{frontmatter:f,content:i}=X1(l.content),n=Cl.parse(f);return{title:n.title,body:i,...n.excerpt?{excerpt:n.excerpt}:{},...n.author?{author:n.author}:{},...n.publishedAt?{publishedAt:n.publishedAt}:{},...n.canonicalUrl?{canonicalUrl:n.canonicalUrl}:{},...r.coverImageUrl?{coverImageUrl:r.coverImageUrl}:{},...r.brandLabel?{brandLabel:r.brandLabel}:{}}}function sp(l){let r=l.metadata.slug;return r.length>0?r:sl(l.metadata.title)}import{mkdtemp as fq,rm as iq}from"fs/promises";import{tmpdir as nq}from"os";import{join as tq}from"path";import{jsxDEV as rq}from"preact/jsx-dev-runtime";var lu="og-image",Cp="blog:og-image",FK=z.object({title:z.string().min(1),excerpt:z.string().optional(),author:z.string().optional(),publishedAt:z.string().optional(),brandLabel:z.string().optional(),coverImageUrl:z.string().optional()}),NK={name:Cp,pluginId:"blog",schema:FK,renderers:{image:lq}};function ep(l){if(!l)return;let r=new Date(l);if(Number.isNaN(r.getTime()))return;return r.toLocaleDateString("en-GB",{year:"numeric",month:"short",day:"2-digit"})}function lq(l){let r=FK.parse(l);return rq(ht,{brandLabel:r.brandLabel??r.title,eyebrow:"Journal",title:r.title,subtitle:r.excerpt,meta:[r.author],tag:ep(r.publishedAt)},void 0,!1,void 0,this)}var uq={width:1200,height:630},hq=60000;class j6{metadata={outputEntityType:"image",targetField:"ogImageId"};context;screenshotPng;constructor(l,r={}){this.context=l,this.screenshotPng=r.screenshotPng??bt}async resolve(l){if(l.sourceEntityType!=="post"||l.attachmentType!==lu)return;let r=await this.context.entityService.getEntity({entityType:"post",id:l.sourceEntityId});if(!r)return;let f=oq(r,{brandLabel:this.resolveBrandLabel(),coverImageUrl:await this.resolveCoverImageUrl(r)}),i=await fq(tq(nq(),"brain-blog-og-image-"));try{let n=await S1({outputDir:i,mediaPath:`/_media/og/post/${r.id}`,template:NK,format:"image",content:f,siteConfig:{title:f.title,themeMode:"light"},themeCSS:this.context.themeCSS}),t=await j1({rootDir:i});try{return{type:"image",data:await this.screenshotPng(t.urlFor(n.urlPath),uq,{timeoutMs:hq,fullPage:!1,omitBackground:!1}),mimeType:"image/png",filename:`${wq(r)}-og.png`}}finally{await t.close()}}finally{await iq(i,{recursive:!0,force:!0})}}resolveBrandLabel(){let l=this.context.domain?.trim();if(l&&l.length>0)return l;let r=this.context.identity.getProfile().name.trim();return r.length>0?r:void 0}async resolveCoverImageUrl(l){let{frontmatter:r}=X1(l.content),f=Cl.parse(r);if(!f.coverImageId)return;let i=await this.context.entityService.getEntity({entityType:"image",id:f.coverImageId});return i?.content.startsWith("data:image/")?i.content:void 0}}function oq(l,r={}){let{frontmatter:f}=X1(l.content),i=Cl.parse(f);return{title:i.title,...i.excerpt?{excerpt:i.excerpt}:{},...i.author?{author:i.author}:{},...i.publishedAt?{publishedAt:i.publishedAt}:{},...r.coverImageUrl?{coverImageUrl:r.coverImageUrl}:{},...r.brandLabel?{brandLabel:r.brandLabel}:{}}}function wq(l){let r=l.metadata.slug;return r.length>0?r:sl(l.metadata.title)}var TK={name:"@brains/blog",version:"0.2.0-alpha.190",description:"AI-powered blog post generation from existing brain content",dependencies:{"@brains/atproto-contracts":"workspace:*","@brains/contracts":"workspace:*","@brains/media-page-composer":"workspace:*","@brains/media-renderer":"workspace:*","@brains/plugins":"workspace:*","@brains/ui-library":"workspace:*","@brains/utils":"workspace:*"},devDependencies:{"@brains/app":"workspace:*","@brains/eslint-config":"workspace:*","@brains/typescript-config":"workspace:*","@types/bun":"^1.3.14","bun-types":"^1.3.14",eslint:"^10.5.0",typescript:"^7.0.2"},exports:{".":"./src/index.ts"},private:!0,scripts:{eval:"cd evals && bun run brain-eval",lint:"eslint . --max-warnings 0","lint:fix":"eslint . --max-warnings 0 --fix",test:"bun test",typecheck:"tsc --noEmit"},type:"module"};class RK extends Qn{entityType=bf.entityType;schema=E6;adapter=bf;unregisterAtprotoProjection;unregisterPrintableAttachmentProvider;unregisterOgImageAttachmentProvider;constructor(l={}){super("blog",TK,l,Lo)}getEntityTypeConfig(){return{weight:2,publish:{publishStatuses:["queued","published"]}}}createGenerationHandler(l){return new Po(this.logger.child("BlogGenerationJobHandler"),l)}getTemplates(){return n$()}getDataSources(){return[new Io(this.logger.child("BlogDataSource"))]}async onRegister(l){let{RSSDataSource:r}=await import("./chunks/rss-datasource-7w2d1gvk.js");l.entities.registerDataSource(new r(this.logger.child("RSSDataSource"))),t$(l,this.logger),u$(l,this.logger),o$(l,this.logger),w$(l),this.unregisterPrintableAttachmentProvider=l.attachments.register("post",ro,new S6(l)),this.unregisterOgImageAttachmentProvider=l.attachments.register("post",lu,new j6(l)),this.deferPublishAssetRegistration(l),this.unregisterAtprotoProjection=rf.getInstance().register(sw()),this.logger.info("Blog plugin registered (routes auto-generated at /posts/)")}deferPublishAssetRegistration(l){l.messaging.subscribe("system:plugins:ready",async()=>{return await l.messaging.send({type:"publish-assets:register",payload:{entityType:"post",attachmentType:lu,mediaEntityType:"image",targetEntityField:{location:"frontmatter",field:"ogImageId"},requiredWhen:{status:"published"},autoGenerate:!0,jobType:"image:image-render-source"}}),{success:!0}})}async onShutdown(){this.unregisterPrintableAttachmentProvider?.(),this.unregisterPrintableAttachmentProvider=void 0,this.unregisterOgImageAttachmentProvider?.(),this.unregisterOgImageAttachmentProvider=void 0,this.unregisterAtprotoProjection?.(),this.unregisterAtprotoProjection=void 0}}class fo{postsListUrl;id="personal:homepage";name="Personal Homepage DataSource";description="Fetches profile and blog posts for a personal homepage";constructor(l){this.postsListUrl=l}async fetch(l,r,f){let i=f.entityService,[n,t,u]=await Promise.all([Jf(i,an),Ji(i,{entityType:"post",count:6,parse:Lf}),Rf(i)]),o={profile:n,posts:t,postsListUrl:this.postsListUrl,cta:Bn(u.cta)};return r.parse(o)}}class io{id="personal:about";name="About Page DataSource";description="Fetches full profile data for the about page";async fetch(l,r,f){let n={profile:await Jf(f.entityService,an)};return r.parse(n)}}import{jsxDEV as _0,Fragment as LK}from"preact/jsx-dev-runtime";function mq(l){return new Date(l).toLocaleDateString("en-US",{year:"numeric",month:"long",day:"numeric"})}function kq(l){return l.split(/(\*[^*]+\*)/).map((r,f)=>{if(r.startsWith("*")&&r.endsWith("*")&&r.length>2)return _0("em",{className:"font-sans italic font-medium text-theme-inverse tracking-[-0.015em] [font-variation-settings:'opsz'_72]",children:r.slice(1,-1)},f,!1,void 0,this);return r})}var s6=({profile:l,posts:r,postsListUrl:f,cta:i})=>{let n=l.tagline??l.description,t=l.name.split(" ")[0];return _0(LK,{children:[_0(Ll,{title:l.name,description:l.description??n??"Personal site",ogType:"website"},void 0,!1,void 0,this),_0("header",{className:"hero-decor bg-brand text-theme-inverse relative flex flex-col items-center justify-center px-6 md:px-12 pt-32 pb-24 gap-7",children:_0("div",{className:"w-full max-w-[1100px] mx-auto text-center flex flex-col items-center gap-7",children:[n&&_0("h1",{className:"font-heading font-bold text-[clamp(2.5rem,6vw,5rem)] leading-[1.05] tracking-[-0.035em] text-theme-inverse text-balance m-0 [font-variation-settings:'wdth'_90,'opsz'_96]",children:kq(n)},void 0,!1,void 0,this),l.description&&_0("p",{className:"text-[clamp(1.0625rem,1.4vw,1.3125rem)] leading-[1.5] text-theme-inverse opacity-95 max-w-[600px] mx-auto m-0",children:l.description},void 0,!1,void 0,this),_0("div",{className:"flex flex-wrap justify-center gap-3.5 mt-2",children:[_0("a",{href:f,className:"inline-flex items-center gap-2 rounded-full py-3.5 px-7 bg-theme text-brand border-2 border-theme font-heading font-semibold text-[15px] hover:bg-theme-subtle hover:-translate-y-0.5 transition-all [font-variation-settings:'wdth'_92,'opsz'_18]",children:["Read the Blog ",_0("span",{"aria-hidden":"true",children:"\u2192"},void 0,!1,void 0,this)]},void 0,!0,void 0,this),_0("a",{href:"/about",className:"rounded-full py-3.5 px-7 border-2 border-theme-light text-theme-inverse font-heading font-semibold text-[15px] hover:bg-brand-dark hover:border-theme hover:-translate-y-0.5 transition-all [font-variation-settings:'wdth'_92,'opsz'_18]",children:["About ",t]},void 0,!0,void 0,this)]},void 0,!0,void 0,this)]},void 0,!0,void 0,this)},void 0,!1,void 0,this),r.length>0&&_0("section",{className:"flex flex-col py-24 px-6 md:px-12 gap-11 bg-theme-subtle",children:[_0("div",{className:"flex justify-between items-end max-w-layout mx-auto w-full gap-6 flex-wrap",children:[_0("div",{children:[_0("span",{className:"block font-heading font-semibold text-[13px] uppercase tracking-[0.22em] text-brand mb-3 [font-variation-settings:'wdth'_85,'opsz'_12]",children:"The Archive"},void 0,!1,void 0,this),_0("h2",{className:"font-heading font-bold text-[clamp(2.25rem,5vw,3.75rem)] leading-none tracking-[-0.03em] text-heading m-0 [font-variation-settings:'wdth'_92,'opsz'_64]",children:["Recent"," ",_0("em",{className:"font-sans italic font-medium text-brand [font-variation-settings:'opsz'_60]",children:"posts"},void 0,!1,void 0,this)]},void 0,!0,void 0,this)]},void 0,!0,void 0,this),_0("a",{href:f,className:"font-heading font-semibold text-[15px] text-brand inline-flex items-center gap-1.5 pb-1.5 border-b-2 border-current hover:text-brand-dark transition-colors [font-variation-settings:'wdth'_88,'opsz'_16]",children:["View the whole archive ",_0("span",{"aria-hidden":"true",children:"\u2192"},void 0,!1,void 0,this)]},void 0,!0,void 0,this)]},void 0,!0,void 0,this),_0("div",{className:"grid grid-cols-[repeat(auto-fit,minmax(min(100%,320px),1fr))] gap-8 max-w-layout mx-auto w-full",children:r.map((u)=>_0("a",{href:u.url,className:"group flex flex-col bg-theme border border-theme rounded-md overflow-hidden hover:-translate-y-1 hover:border-brand/50 transition-all no-underline shadow-sm hover:shadow-lg",children:[u.coverImageUrl?_0("img",{src:u.coverImageUrl,alt:u.metadata.title,className:"w-full aspect-[16/10] object-cover bg-theme-muted"},void 0,!1,void 0,this):_0("div",{className:"w-full aspect-[16/10] bg-gradient-to-br from-brand to-accent","aria-hidden":"true"},void 0,!1,void 0,this),_0("div",{className:"flex flex-col gap-4 p-7 flex-1",children:[_0("div",{className:"flex flex-wrap items-center gap-3.5 font-heading text-[11px] font-semibold uppercase tracking-[0.18em] text-theme-muted [font-variation-settings:'wdth'_85,'opsz'_11]",children:[u.frontmatter.seriesName&&_0(LK,{children:[_0("span",{className:"text-brand",children:u.frontmatter.seriesName},void 0,!1,void 0,this),_0("span",{className:"w-[3px] h-[3px] rounded-full bg-current opacity-50","aria-hidden":"true"},void 0,!1,void 0,this)]},void 0,!0,void 0,this),_0("time",{children:mq(u.metadata.publishedAt??u.created)},void 0,!1,void 0,this)]},void 0,!0,void 0,this),_0("h3",{className:"font-sans font-semibold text-[clamp(1.375rem,1.8vw,1.625rem)] leading-[1.18] tracking-[-0.012em] text-heading m-0 text-balance",children:u.metadata.title},void 0,!1,void 0,this),u.frontmatter.excerpt&&_0("p",{className:"text-base leading-[1.55] text-theme-muted m-0 flex-1",children:u.frontmatter.excerpt},void 0,!1,void 0,this),_0("span",{className:"inline-flex items-center gap-1.5 font-heading font-semibold text-[13px] uppercase tracking-[0.14em] text-brand mt-1 [font-variation-settings:'wdth'_88,'opsz'_14]",children:["Read the post"," ",_0("span",{"aria-hidden":"true",className:"transition-transform group-hover:translate-x-1",children:"\u2192"},void 0,!1,void 0,this)]},void 0,!0,void 0,this)]},void 0,!0,void 0,this)]},u.id,!0,void 0,this))},void 0,!1,void 0,this)]},void 0,!0,void 0,this),_0("section",{className:"cta-decor bg-theme-dark text-theme-on-dark flex-grow flex flex-col items-center justify-center py-24 px-6 md:px-12 gap-5",children:[_0("span",{className:"font-heading font-medium text-xs uppercase tracking-[0.24em] text-accent [font-variation-settings:'wdth'_85,'opsz'_12]",children:"Get in touch"},void 0,!1,void 0,this),_0("h2",{className:"text-center font-heading font-bold text-[clamp(2rem,4vw,3rem)] leading-none tracking-[-0.03em] text-theme-on-dark m-0 [font-variation-settings:'wdth'_90,'opsz'_64]",children:i.heading},void 0,!1,void 0,this),i.subtitle&&_0("p",{className:"text-center text-base leading-[1.55] text-theme-on-dark opacity-80 max-w-[480px] m-0",children:i.subtitle},void 0,!1,void 0,this),_0("a",{href:i.buttonLink,className:"inline-flex items-center gap-2 rounded-full py-3.5 px-7 bg-brand text-theme-inverse border-2 border-brand font-heading font-semibold text-[15px] hover:bg-brand-dark hover:-translate-y-0.5 transition-all mt-2 [font-variation-settings:'wdth'_92,'opsz'_18]",children:[i.buttonText," ",_0("span",{"aria-hidden":"true",children:"\u2192"},void 0,!1,void 0,this)]},void 0,!0,void 0,this)]},void 0,!0,void 0,this)]},void 0,!0,void 0,this)};import{jsxDEV as tr,Fragment as $q}from"preact/jsx-dev-runtime";var C6=({profile:l})=>{let r=`About ${l.name}`,f=l.description??l.intro??"About page",i=Boolean(l.email??l.website);return tr($q,{children:[tr(Ll,{title:r,description:f,ogType:"profile"},void 0,!1,void 0,this),tr("section",{className:"hero-decor bg-brand text-theme-inverse relative flex flex-col px-6 md:px-12 pt-32 pb-24",children:tr("div",{className:"w-full max-w-3xl mx-auto flex flex-col gap-6",children:[tr("h1",{className:"font-heading font-bold text-[clamp(2.5rem,6vw,4.5rem)] leading-[1.05] tracking-[-0.035em] text-theme-inverse text-balance m-0 [font-variation-settings:'wdth'_90,'opsz'_96]",children:l.name},void 0,!1,void 0,this),l.description&&tr("p",{className:"text-[clamp(1.0625rem,1.4vw,1.25rem)] leading-[1.55] text-theme-inverse opacity-95 max-w-2xl m-0",children:l.description},void 0,!1,void 0,this)]},void 0,!0,void 0,this)},void 0,!1,void 0,this),l.story&&tr("section",{className:`py-24 px-6 md:px-12 bg-theme-subtle${i?"":" flex-grow"}`,children:tr("div",{className:"max-w-3xl mx-auto",children:tr(P1,{markdown:l.story},void 0,!1,void 0,this)},void 0,!1,void 0,this)},void 0,!1,void 0,this),i&&tr("section",{className:"cta-decor bg-theme-dark text-theme-on-dark flex-grow flex flex-col items-center justify-center py-24 px-6 md:px-12 gap-5",children:[tr("span",{className:"font-heading font-medium text-xs uppercase tracking-[0.24em] text-accent [font-variation-settings:'wdth'_85,'opsz'_12]",children:"Get in touch"},void 0,!1,void 0,this),tr("h2",{className:"text-center font-heading font-bold text-[clamp(2rem,4vw,3rem)] leading-none tracking-[-0.03em] text-theme-on-dark m-0 [font-variation-settings:'wdth'_90,'opsz'_64]",children:["Say"," ",tr("em",{className:"font-sans italic font-medium text-accent [font-variation-settings:'opsz'_72]",children:"hi."},void 0,!1,void 0,this)]},void 0,!0,void 0,this),tr("div",{className:"flex flex-wrap justify-center gap-3.5 mt-2",children:[l.email&&tr("a",{href:`mailto:${l.email}`,className:"inline-flex items-center gap-2 rounded-full py-3.5 px-7 bg-brand text-theme-inverse border-2 border-brand font-heading font-semibold text-[15px] hover:bg-brand-dark hover:-translate-y-0.5 transition-all [font-variation-settings:'wdth'_92,'opsz'_18]",children:["Get in Touch ",tr("span",{"aria-hidden":"true",children:"\u2192"},void 0,!1,void 0,this)]},void 0,!0,void 0,this),l.website&&tr("a",{href:l.website,className:"rounded-full py-3.5 px-7 border-2 border-theme-light text-theme-on-dark font-heading font-semibold text-[15px] hover:bg-brand-dark hover:border-theme hover:-translate-y-0.5 transition-all [font-variation-settings:'wdth'_92,'opsz'_18]",children:"Website"},void 0,!1,void 0,this)]},void 0,!0,void 0,this)]},void 0,!0,void 0,this)]},void 0,!0,void 0,this)};var PK={name:"@brains/site-personal",version:"0.2.0-alpha.190",description:"Personal site composition package",dependencies:{"@brains/blog":"workspace:*","@brains/plugins":"workspace:*","@brains/site-composition":"workspace:*","@brains/site-engine":"workspace:*","@brains/site-info":"workspace:*","@brains/templates":"workspace:*","@brains/ui-library":"workspace:*","@brains/utils":"workspace:*",preact:"^10.27.2"},devDependencies:{"@brains/eslint-config":"workspace:*","@brains/typescript-config":"workspace:*","@types/bun":"^1.3.14","bun-types":"^1.3.14",eslint:"^10.5.0",typescript:"^7.0.2"},exports:{".":"./src/index.ts"},files:["src"],private:!0,scripts:{lint:"eslint . --max-warnings 0","lint:fix":"eslint . --max-warnings 0 --fix",typecheck:"tsc --noEmit"},type:"module"};var yq=z.object({entityDisplay:z.object({post:z.object({label:z.string().default("Post"),pluralName:z.string().optional()}).default({label:"Post"})}).default({post:{label:"Post"}})}),dq=z.object({heading:z.string(),buttonText:z.string(),buttonLink:z.string(),subtitle:z.string().optional()}),MK=z.looseObject({name:z.string(),kind:z.enum(["professional","team","collective"]),organization:z.string().optional(),description:z.string().optional(),avatar:z.string().optional(),website:z.string().optional(),email:z.string().optional(),socialLinks:z.array(z.object({platform:z.enum(["github","instagram","linkedin","email","website"]),url:z.string(),label:z.string().optional()})).optional(),tagline:z.string().optional(),intro:z.string().optional(),story:z.string().optional()}),gq=z.looseObject({id:z.string(),entityType:z.literal("post"),content:z.string(),created:z.string(),updated:z.string(),contentHash:z.string(),metadata:z.looseObject({title:z.string(),publishedAt:z.string().optional()}),frontmatter:z.looseObject({excerpt:z.string(),seriesName:z.string().optional(),seriesIndex:z.number().optional()}),body:z.string(),url:z.string().optional(),typeLabel:z.string().optional(),listUrl:z.string().optional(),listLabel:z.string().optional(),seriesUrl:z.string().optional(),coverImageUrl:z.string().optional(),ogImageUrl:z.string().optional(),coverImageWidth:z.number().optional(),coverImageHeight:z.number().optional(),coverImageSrcset:z.string().optional(),coverImageSizes:z.string().optional()});class e6 extends no{dependencies=["blog"];constructor(l={}){super("personal-site",PK,l,yq)}async onRegister(l){l.entities.extendFrontmatterSchema("anchor-profile",Hu);let r=this.config.entityDisplay.post,f=`/${r.pluralName??r.label.toLowerCase()+"s"}`,i=new fo(f);l.entities.registerDataSource(i);let n=new io;l.entities.registerDataSource(n);let t=z.object({profile:MK,posts:z.array(gq),postsListUrl:z.string(),cta:dq}),u=z.object({profile:MK});l.templates.register({homepage:Ol({name:"homepage",description:"Personal homepage with recent blog posts",schema:t,dataSourceId:"personal:homepage",requiredPermission:"public",layout:{component:s6}}),about:Ol({name:"about",description:"About page with profile",schema:u,dataSourceId:"personal:about",requiredPermission:"public",layout:{component:C6}})}),this.logger.info("Personal site plugin registered successfully")}async getTools(){return[]}async getResources(){return[]}}function l4(l){return new e6(l??{})}var r4=[{id:"home",path:"/",title:"Home",description:"Personal site homepage",layout:"default",navigation:{show:!0,label:"Home",slot:"secondary",priority:10},sections:[{id:"homepage",template:"personal-site:homepage",dataQuery:{}}]},{id:"about",path:"/about",title:"About",description:"About page",layout:"default",navigation:{show:!0,label:"About",slot:"primary",priority:90},sections:[{id:"about",template:"personal-site:about",dataQuery:{}}]}];import{jsxDEV as Tr}from"preact/jsx-dev-runtime";function f4({sections:l,siteInfo:r}){let f=[...r.navigation.primary,...r.navigation.secondary].filter((i)=>i.label!=="Home");return Tr("div",{className:"flex flex-col min-h-screen bg-theme overflow-x-clip",children:[Tr(ut,{title:r.title,titleClassName:"font-heading font-bold text-2xl",navigation:r.navigation.primary,showThemeToggle:!0,themeToggleClassName:"bg-theme-toggle text-theme-toggle-icon hover:bg-theme-toggle-hover rounded-[10px]",...r.logo!==void 0?{logo:r.logo}:{}},void 0,!1,void 0,this),Tr("main",{className:"flex-grow flex flex-col",children:l},void 0,!1,void 0,this),Tr("footer",{className:"bg-footer text-footer border-t border-theme",children:Tr("div",{className:"max-w-layout mx-auto flex flex-col md:flex-row justify-between items-center py-8 px-6 md:px-8",children:[Tr("div",{className:"flex flex-col gap-1 mb-4 md:mb-0",children:[Tr("span",{className:"text-brand font-heading font-bold text-lg",children:r.title},void 0,!1,void 0,this),r.description&&Tr("span",{className:"text-theme-muted text-xs",children:r.description},void 0,!1,void 0,this)]},void 0,!0,void 0,this),Tr("nav",{className:"flex flex-wrap justify-center gap-x-6 gap-y-2 mb-4 md:mb-0",children:f.map((i)=>Tr("a",{href:i.href,className:"text-theme-muted text-[13px] hover:text-brand transition-colors",children:i.label},i.href,!1,void 0,this))},void 0,!1,void 0,this),Tr("div",{className:"flex items-center gap-4",children:[r.copyright&&Tr("span",{className:"text-theme-light text-[11px]",children:r.copyright},void 0,!1,void 0,this),Tr(tf,{variant:"footer",size:"sm"},void 0,!1,void 0,this)]},void 0,!0,void 0,this)]},void 0,!0,void 0,this)},void 0,!1,void 0,this)]},void 0,!0,void 0,this)}var ru=Bu.extend(i4.shape);var VK=z.enum(["generating","draft","queued","published","failed"]),IK=z.enum(["generating","draft","queued","published","failed"]),n4="publishedAt is required when deck status is published",t4=(l)=>l.status==="published"&&!l.publishedAt,u4=(l)=>{if(t4(l))throw Error(n4)},z1=z.object({title:z.string(),slug:z.string().optional(),description:z.string().optional(),author:z.string().optional(),status:VK,publishedAt:z.string().datetime().optional(),event:z.string().optional(),coverImageId:z.string().optional(),ogImageId:z.string().optional()}),Uu0=z.object({title:z.string(),description:z.string().optional(),status:VK,publishedAt:z.string().datetime().optional(),coverImageId:z.string().optional(),slug:z.string(),error:z.string().optional()}).superRefine((l,r)=>{if(!t4(l))return;r.addIssue({code:z.ZodIssueCode.custom,path:["publishedAt"],message:n4})}),cq=z.object({title:z.string(),description:z.string().optional(),status:IK,publishedAt:z.string().datetime().optional(),coverImageId:z.string().optional(),slug:z.string(),error:z.string().optional()}).superRefine((l,r)=>{if(!t4(l))return;r.addIssue({code:"custom",path:["publishedAt"],message:n4})}),Aq=z.object({title:z.string(),slug:z.string().optional(),description:z.string().optional(),author:z.string().optional(),status:IK,publishedAt:z.string().datetime().optional(),event:z.string().optional(),coverImageId:z.string().optional(),ogImageId:z.string().optional()}),gn=Yi.extend({entityType:z.literal("deck"),metadata:cq}),to=gn.extend({frontmatter:Aq,body:z.string(),ogImageUrl:z.string().optional()}),fu=to.extend({url:z.string().optional(),typeLabel:z.string().optional(),listUrl:z.string().optional(),listLabel:z.string().optional(),coverImageUrl:z.string().optional(),ogImageUrl:z.string().optional(),coverImageWidth:z.number().optional(),coverImageHeight:z.number().optional()});class h4 extends Uu{constructor(){super({entityType:"deck",purpose:"A slide-deck presentation.",schema:gn,frontmatterSchema:z1,supportsCoverImage:!0})}validateSlideStructure(l){if(!/^---$/gm.test(l))throw Error("Invalid deck: markdown must contain slide separators (---) to be a valid presentation")}toMarkdown(l){let r=this.extractBody(l.content);this.validateSlideStructure(r);let f=this.parseFrontMatter(l.content,z1);u4(f);let i={...f,slug:f.slug??l.metadata.slug};return this.buildMarkdown(r,i)}fromMarkdown(l){let r=this.parseFrontmatter(l),f=this.extractBody(l);u4(r),this.validateSlideStructure(f);let i=r.slug??sl(r.title),n=r.status;return{entityType:"deck",content:l,metadata:{slug:i,title:r.title,description:r.description,status:n,publishedAt:r.publishedAt,coverImageId:r.coverImageId}}}generateTitle(l){return l.metadata.title}generateSummary(l){if(l.metadata.description)return l.metadata.description;return`Presentation: ${l.metadata.title}`}generateFrontMatter(l){return this.toMarkdown(l)}buildStub(l){let r={title:l.title,slug:l.id,status:"generating"};return{content:this.buildMarkdown(`---
|
|
1376
1376
|
`,r),metadata:{title:l.title,slug:l.id,status:"generating"}}}}var iu=new h4;var Kq=z.object({markdown:z.string().describe("Markdown content with slide separators (---)"),deck:fu.optional()}),o4=Ol({name:"deck-detail",description:"Render a presentation deck as Reveal.js slides",schema:Kq,dataSourceId:"decks:entities",requiredPermission:"public",layout:{component:Uw,fullscreen:!0}});var w4=z.object({decks:z.array(to)}),v4=z.object({decks:z.array(fu),pageTitle:z.string().optional(),pageLabel:z.string().optional()});import{jsxDEV as m4}from"preact/jsx-dev-runtime";var Wq="Presentations",k4=({decks:l,pageLabel:r})=>{let f=l.map((n)=>({id:n.id,url:n.url,title:n.frontmatter.title,date:n.frontmatter.publishedAt??n.created,description:n.frontmatter.description}));return m4("div",{className:"deck-list bg-theme",children:m4("div",{className:"container mx-auto max-w-[1100px] px-6 py-16 md:px-12 md:py-24",children:m4(ot,{label:r&&r!=="Decks"?r:Wq,items:f},void 0,!1,void 0,this)},void 0,!1,void 0,this)},void 0,!1,void 0,this)};class uo extends pK{constructor(){super(w4,{title:"Deck List",mappings:[{key:"decks",label:"Decks",type:"array",itemType:"object"}]})}}var $4=Ol({name:"deck-list",description:"List view of all presentation decks",schema:v4,dataSourceId:"decks:entities",requiredPermission:"public",formatter:new uo,layout:{component:k4}});var Zq=z.object({title:z.string().max(80).describe("A short, punchy title (2-5 words) that's memorable and evocative"),content:z.string().describe("Full slide deck content in markdown format with slide separators (---). Each slide should have a header and focused content."),description:z.string().describe("A concise 1-2 sentence summary that captures the essence of the talk")}),qK=Ol({name:"decks:generation",description:"Template for AI to generate complete slide decks from prompts",schema:Zq,dataSourceId:"shell:ai-content",requiredPermission:"public",useKnowledgeContext:!0,basePrompt:`You are creating slide decks in a distinctive voice that blends philosophy, technology, and culture.
|
|
1377
1377
|
|
|
1378
1378
|
Your task is to generate a complete slide deck based on the user's prompt.
|
|
@@ -1680,12 +1680,12 @@ ${o}`,templateName:"decks:description"})).description,await this.reportProgress(
|
|
|
1680
1680
|
color: var(--carousel-accent);
|
|
1681
1681
|
font-weight: 600;
|
|
1682
1682
|
}
|
|
1683
|
-
`}},void 0,!1,void 0,this),n.map((v,k)=>mr("section",{className:`deck-carousel-slide${k===0?" is-cover":""}`,children:[mr("header",{className:"deck-carousel-header",children:mr("span",{className:"deck-carousel-wordmark","aria-label":f??r,children:[mr("span",{className:"wm-primary",children:t.primary},void 0,!1,void 0,this),t.secondary!==void 0&&mr(Nq,{children:[mr("span",{className:"wm-dot",children:"."},void 0,!1,void 0,this),mr("span",{className:"wm-secondary",children:t.secondary},void 0,!1,void 0,this)]},void 0,!0,void 0,this)]},void 0,!0,void 0,this)},void 0,!1,void 0,this),mr("div",{className:"deck-carousel-body",children:mr("div",{className:"deck-carousel-content",dangerouslySetInnerHTML:{__html:w(v.markdown)}},void 0,!1,void 0,this)},void 0,!1,void 0,this),mr("footer",{className:"deck-carousel-footer",children:[mr("span",{className:"deck-carousel-footer-meta",children:i??r},void 0,!1,void 0,this),mr("span",{className:"deck-carousel-counter","aria-label":`Slide ${k+1} of ${u}`,children:[mr("span",{className:"deck-carousel-counter-current",children:String(k+1).padStart(2,"0")},void 0,!1,void 0,this)," / ",mr("span",{children:o},void 0,!1,void 0,this)]},void 0,!0,void 0,this)]},void 0,!0,void 0,this)]},k,!0,void 0,this))]},void 0,!0,void 0,this)}import{mkdtemp as Tq,rm as Rq}from"fs/promises";import{tmpdir as Lq}from"os";import{join as Pq}from"path";var Mq=26214400,Vq=60000,nW=20;class K4{metadata={outputEntityType:"document"};context;renderPdf;getThemeMode;constructor(l,r={}){this.context=l,this.renderPdf=r.renderPdf??yt,this.getThemeMode=r.getThemeMode??(async()=>"dark")}async resolve(l){if(l.sourceEntityType!=="deck")return;let r=await this.context.entityService.getEntity({entityType:"deck",id:l.sourceEntityId});if(!r)return;let f=Iq(r,{brandLabel:this.resolveBrandLabel()});if(f.slides.length>nW)throw Error(`Refusing to render carousel with ${f.slides.length} slides; maxSlides=${nW}`);let i=await this.getThemeMode(),n=await Tq(Pq(Lq(),"brain-deck-carousel-"));try{let t=await S1({outputDir:n,mediaPath:`/_media/carousel/${r.id}`,template:iW,format:"pdf",content:f,siteConfig:{title:f.title,themeMode:i},themeCSS:this.context.themeCSS}),u=await j1({rootDir:n});try{return{type:"document",data:await this.renderPdf(u.urlFor(t.urlPath),{maxBytes:Mq,timeoutMs:Vq,printBackground:!0,preferCSSPageSize:!0}),mimeType:"application/pdf",filename:`${pq(r)}-carousel.pdf`}}finally{await u.close()}}finally{await Rq(n,{recursive:!0,force:!0})}}resolveBrandLabel(){let l=this.context.domain?.trim();if(l&&l.length>0)return l;let r=this.context.identity.getProfile().name;return r.length>0?r:void 0}}function Iq(l,r={}){let{frontmatter:f,content:i}=X1(l.content),n=typeof f.title==="string"?f.title:l.metadata.title,t=typeof f.event==="string"&&f.event.length>0?f.event:void 0,u=i.split(/^---$/gm).map((o)=>o.trim()).filter((o)=>o.length>0).map((o)=>({markdown:o}));return{title:n,slides:u,...r.brandLabel?{brandLabel:r.brandLabel}:{},...t?{eyebrow:t}:{}}}function pq(l){let r=l.metadata.slug;return r.length>0?r:sl(l.metadata.title)}import{jsxDEV as Dq}from"preact/jsx-dev-runtime";var wo="og-image",qq="decks:og-image",tW=z.object({title:z.string().min(1),description:z.string().optional(),event:z.string().optional(),brandLabel:z.string().optional(),slideCount:z.number().int().positive().optional(),coverImageUrl:z.string().optional()}),uW={name:qq,pluginId:"decks",schema:tW,renderers:{image:_q}};function _q(l){let r=tW.parse(l),f=r.slideCount?`${r.slideCount} slide${r.slideCount===1?"":"s"}`:void 0;return Dq(ht,{brandLabel:r.brandLabel??r.title,eyebrow:"Deck",title:r.title,subtitle:r.description,meta:[r.event],tag:f},void 0,!1,void 0,this)}class W4{metadata={outputEntityType:"image",targetField:"ogImageId"};context;deps;constructor(l,r={}){this.context=l,this.deps=r}async resolve(l){if(l.sourceEntityType!=="deck"||l.attachmentType!==wo)return;let r=await this.context.entityService.getEntity({entityType:"deck",id:l.sourceEntityId});if(!r)return;let{frontmatter:f,content:i}=X1(r.content),n=z1.parse(f),t=xq(i),u=this.resolveBrandLabel(),o=await this.resolveCoverImageUrl(n.coverImageId),w={title:n.title,...n.description?{description:n.description}:{},...n.event?{event:n.event}:{},...t?{slideCount:t}:{},...o?{coverImageUrl:o}:{},...u?{brandLabel:u}:{}};return{type:"image",data:await x6({mediaPath:`/_media/og/deck/${r.id}`,template:uW,content:w,title:w.title,themeMode:"dark",themeCSS:this.context.themeCSS,tmpPrefix:"brain-deck-og-image-",...this.deps.screenshotPng&&{screenshotPng:this.deps.screenshotPng}}),mimeType:"image/png",filename:`${Sq(r)}-og.png`}}resolveBrandLabel(){let l=this.context.domain?.trim();if(l&&l.length>0)return l;let r=this.context.identity.getProfile().name.trim();return r.length>0?r:void 0}async resolveCoverImageUrl(l){if(!l)return;let r=await this.context.entityService.getEntity({entityType:"image",id:l});return r?.content.startsWith("data:image/")?r.content:void 0}}function xq(l){return l.split(/^---$/gm).map((r)=>r.trim()).filter((r)=>r.length>0).length}function Sq(l){let r=l.metadata.slug;return r.length>0?r:sl(l.metadata.title)}async function hW({entity:l,config:r}){let f=gn.parse(l),i=cr(f.content,z1),n=i.metadata;return{$type:"ai.rizom.brain.deck",title:n.title,...n.slug&&{slug:n.slug},...n.description&&{description:n.description},body:i.content,format:"text/markdown",...n.author&&{author:n.author},...n.event&&{event:n.event},...n.publishedAt&&{publishedAt:n.publishedAt},...r.brainDid&&{brainDid:r.brainDid},...r.anchorDid&&{anchorDid:r.anchorDid},sourceEntityType:"deck",sourceEntityId:f.id,createdAt:f.created,...f.updated&&{updatedAt:f.updated}}}function Z4(){return{entityType:"deck",collection:"ai.rizom.brain.deck",lexicon:dr["ai.rizom.brain.deck"],validate:!1,buildRecord:hW}}var oW={name:"@brains/decks",version:"0.2.0-alpha.
|
|
1683
|
+
`}},void 0,!1,void 0,this),n.map((v,k)=>mr("section",{className:`deck-carousel-slide${k===0?" is-cover":""}`,children:[mr("header",{className:"deck-carousel-header",children:mr("span",{className:"deck-carousel-wordmark","aria-label":f??r,children:[mr("span",{className:"wm-primary",children:t.primary},void 0,!1,void 0,this),t.secondary!==void 0&&mr(Nq,{children:[mr("span",{className:"wm-dot",children:"."},void 0,!1,void 0,this),mr("span",{className:"wm-secondary",children:t.secondary},void 0,!1,void 0,this)]},void 0,!0,void 0,this)]},void 0,!0,void 0,this)},void 0,!1,void 0,this),mr("div",{className:"deck-carousel-body",children:mr("div",{className:"deck-carousel-content",dangerouslySetInnerHTML:{__html:w(v.markdown)}},void 0,!1,void 0,this)},void 0,!1,void 0,this),mr("footer",{className:"deck-carousel-footer",children:[mr("span",{className:"deck-carousel-footer-meta",children:i??r},void 0,!1,void 0,this),mr("span",{className:"deck-carousel-counter","aria-label":`Slide ${k+1} of ${u}`,children:[mr("span",{className:"deck-carousel-counter-current",children:String(k+1).padStart(2,"0")},void 0,!1,void 0,this)," / ",mr("span",{children:o},void 0,!1,void 0,this)]},void 0,!0,void 0,this)]},void 0,!0,void 0,this)]},k,!0,void 0,this))]},void 0,!0,void 0,this)}import{mkdtemp as Tq,rm as Rq}from"fs/promises";import{tmpdir as Lq}from"os";import{join as Pq}from"path";var Mq=26214400,Vq=60000,nW=20;class K4{metadata={outputEntityType:"document"};context;renderPdf;getThemeMode;constructor(l,r={}){this.context=l,this.renderPdf=r.renderPdf??yt,this.getThemeMode=r.getThemeMode??(async()=>"dark")}async resolve(l){if(l.sourceEntityType!=="deck")return;let r=await this.context.entityService.getEntity({entityType:"deck",id:l.sourceEntityId});if(!r)return;let f=Iq(r,{brandLabel:this.resolveBrandLabel()});if(f.slides.length>nW)throw Error(`Refusing to render carousel with ${f.slides.length} slides; maxSlides=${nW}`);let i=await this.getThemeMode(),n=await Tq(Pq(Lq(),"brain-deck-carousel-"));try{let t=await S1({outputDir:n,mediaPath:`/_media/carousel/${r.id}`,template:iW,format:"pdf",content:f,siteConfig:{title:f.title,themeMode:i},themeCSS:this.context.themeCSS}),u=await j1({rootDir:n});try{return{type:"document",data:await this.renderPdf(u.urlFor(t.urlPath),{maxBytes:Mq,timeoutMs:Vq,printBackground:!0,preferCSSPageSize:!0}),mimeType:"application/pdf",filename:`${pq(r)}-carousel.pdf`}}finally{await u.close()}}finally{await Rq(n,{recursive:!0,force:!0})}}resolveBrandLabel(){let l=this.context.domain?.trim();if(l&&l.length>0)return l;let r=this.context.identity.getProfile().name;return r.length>0?r:void 0}}function Iq(l,r={}){let{frontmatter:f,content:i}=X1(l.content),n=typeof f.title==="string"?f.title:l.metadata.title,t=typeof f.event==="string"&&f.event.length>0?f.event:void 0,u=i.split(/^---$/gm).map((o)=>o.trim()).filter((o)=>o.length>0).map((o)=>({markdown:o}));return{title:n,slides:u,...r.brandLabel?{brandLabel:r.brandLabel}:{},...t?{eyebrow:t}:{}}}function pq(l){let r=l.metadata.slug;return r.length>0?r:sl(l.metadata.title)}import{jsxDEV as Dq}from"preact/jsx-dev-runtime";var wo="og-image",qq="decks:og-image",tW=z.object({title:z.string().min(1),description:z.string().optional(),event:z.string().optional(),brandLabel:z.string().optional(),slideCount:z.number().int().positive().optional(),coverImageUrl:z.string().optional()}),uW={name:qq,pluginId:"decks",schema:tW,renderers:{image:_q}};function _q(l){let r=tW.parse(l),f=r.slideCount?`${r.slideCount} slide${r.slideCount===1?"":"s"}`:void 0;return Dq(ht,{brandLabel:r.brandLabel??r.title,eyebrow:"Deck",title:r.title,subtitle:r.description,meta:[r.event],tag:f},void 0,!1,void 0,this)}class W4{metadata={outputEntityType:"image",targetField:"ogImageId"};context;deps;constructor(l,r={}){this.context=l,this.deps=r}async resolve(l){if(l.sourceEntityType!=="deck"||l.attachmentType!==wo)return;let r=await this.context.entityService.getEntity({entityType:"deck",id:l.sourceEntityId});if(!r)return;let{frontmatter:f,content:i}=X1(r.content),n=z1.parse(f),t=xq(i),u=this.resolveBrandLabel(),o=await this.resolveCoverImageUrl(n.coverImageId),w={title:n.title,...n.description?{description:n.description}:{},...n.event?{event:n.event}:{},...t?{slideCount:t}:{},...o?{coverImageUrl:o}:{},...u?{brandLabel:u}:{}};return{type:"image",data:await x6({mediaPath:`/_media/og/deck/${r.id}`,template:uW,content:w,title:w.title,themeMode:"dark",themeCSS:this.context.themeCSS,tmpPrefix:"brain-deck-og-image-",...this.deps.screenshotPng&&{screenshotPng:this.deps.screenshotPng}}),mimeType:"image/png",filename:`${Sq(r)}-og.png`}}resolveBrandLabel(){let l=this.context.domain?.trim();if(l&&l.length>0)return l;let r=this.context.identity.getProfile().name.trim();return r.length>0?r:void 0}async resolveCoverImageUrl(l){if(!l)return;let r=await this.context.entityService.getEntity({entityType:"image",id:l});return r?.content.startsWith("data:image/")?r.content:void 0}}function xq(l){return l.split(/^---$/gm).map((r)=>r.trim()).filter((r)=>r.length>0).length}function Sq(l){let r=l.metadata.slug;return r.length>0?r:sl(l.metadata.title)}async function hW({entity:l,config:r}){let f=gn.parse(l),i=cr(f.content,z1),n=i.metadata;return{$type:"ai.rizom.brain.deck",title:n.title,...n.slug&&{slug:n.slug},...n.description&&{description:n.description},body:i.content,format:"text/markdown",...n.author&&{author:n.author},...n.event&&{event:n.event},...n.publishedAt&&{publishedAt:n.publishedAt},...r.brainDid&&{brainDid:r.brainDid},...r.anchorDid&&{anchorDid:r.anchorDid},sourceEntityType:"deck",sourceEntityId:f.id,createdAt:f.created,...f.updated&&{updatedAt:f.updated}}}function Z4(){return{entityType:"deck",collection:"ai.rizom.brain.deck",lexicon:dr["ai.rizom.brain.deck"],validate:!1,buildRecord:hW}}var oW={name:"@brains/decks",version:"0.2.0-alpha.190",description:"Presentation decks plugin for creating and viewing slide presentations",dependencies:{"@brains/atproto-contracts":"workspace:*","@brains/content-formatters":"workspace:*","@brains/contracts":"workspace:*","@brains/image":"workspace:*","@brains/media-page-composer":"workspace:*","@brains/media-renderer":"workspace:*","@brains/plugins":"workspace:*","@brains/site-info":"workspace:*","@brains/ui-library":"workspace:*","@brains/utils":"workspace:*"},devDependencies:{"@brains/app":"workspace:*","@brains/eslint-config":"workspace:*","@brains/typescript-config":"workspace:*","@types/bun":"^1.3.14","bun-types":"^1.3.14",eslint:"^10.5.0",typescript:"^7.0.2"},exports:{".":"./src/index.ts"},private:!0,scripts:{eval:"cd evals && bun run brain-eval",lint:"eslint . --max-warnings 0","lint:fix":"eslint . --max-warnings 0 --fix",test:"bun test",typecheck:"tsc --noEmit"},type:"module"};var Eq=z.object({prompt:z.string(),event:z.string().optional()}),sq=z.object({title:z.string(),content:z.string()});class wW extends Qn{deps;entityType=iu.entityType;schema=iu.schema;adapter=iu;unregisterCarouselAttachmentProvider;unregisterOgImageAttachmentProvider;unregisterAtprotoProjection;constructor(l={}){super("decks",oW,{},Fo);this.deps=l}createGenerationHandler(l){return new A4(this.logger.child("DeckGenerationJobHandler"),l)}getTemplates(){return{"deck-detail":o4,"deck-list":$4,generation:qK,description:_K}}getDataSources(){return[new c4(this.logger)]}getEntityTypeConfig(){return{weight:1.5}}async onRegister(l){this.deferPublishRegistration(l),this.subscribeToPublishExecute(l),this.registerCarouselAttachmentProvider(l),this.registerOgImageAttachmentProvider(l),this.registerEvalHandlers(l),this.unregisterAtprotoProjection=rf.getInstance().register(Z4()),this.logger.info("Decks plugin registered")}async onShutdown(){this.unregisterCarouselAttachmentProvider?.(),this.unregisterCarouselAttachmentProvider=void 0,this.unregisterOgImageAttachmentProvider?.(),this.unregisterOgImageAttachmentProvider=void 0,this.unregisterAtprotoProjection?.(),this.unregisterAtprotoProjection=void 0}deferPublishRegistration(l){l.messaging.subscribe("system:plugins:ready",async()=>{return await l.messaging.send({type:"publish:register",payload:{entityType:"deck",provider:{name:"internal",publish:async()=>({id:"internal"})},config:{executionMode:"provider"}}}),{success:!0}})}subscribeToPublishExecute(l){l.messaging.subscribe("publish:execute",async(r)=>{let{entityType:f,entityId:i}=r.payload;if(f!=="deck")return{success:!0};try{let n=await l.entityService.getEntity({entityType:"deck",id:i});if(!n)return await l.messaging.send({type:"publish:report:failure",payload:{entityType:f,entityId:i,error:`Deck not found: ${i}`}}),{success:!0};if(n.metadata.status==="published")return{success:!0};let t=new Date().toISOString(),u={...n,metadata:{...n.metadata,status:"published",publishedAt:t}};await l.entityService.updateEntity({entity:{...u,content:this.adapter.toMarkdown(u)}}),await l.messaging.send({type:"publish:report:success",payload:{entityType:f,entityId:i,result:{id:i}}})}catch(n){await l.messaging.send({type:"publish:report:failure",payload:{entityType:f,entityId:i,error:_2(n)}})}return{success:!0}})}registerCarouselAttachmentProvider(l){let r={...this.deps,getThemeMode:this.deps.getThemeMode??(async()=>{try{return(await Rf(l.entityService)).themeMode??"dark"}catch{return"dark"}})};this.unregisterCarouselAttachmentProvider=l.attachments.register("deck",rW,new K4(l,r))}registerOgImageAttachmentProvider(l){this.unregisterOgImageAttachmentProvider=l.attachments.register("deck",wo,new W4(l))}registerEvalHandlers(l){l.eval.registerHandler("generateDeck",async(r)=>{let f=Eq.parse(r);return l.ai.generate({prompt:`${f.prompt}${f.event?`
|
|
1684
1684
|
|
|
1685
1685
|
Note: This presentation is for "${f.event}".`:""}`,templateName:"decks:generation"})}),l.eval.registerHandler("generateDescription",async(r)=>{let f=sq.parse(r);return l.ai.generate({prompt:`Title: ${f.title}
|
|
1686
1686
|
|
|
1687
1687
|
Content:
|
|
1688
|
-
${f.content}`,templateName:"decks:description"})})}}class vo{postsListUrl;decksListUrl;id="professional:homepage-list";name="Homepage List DataSource";description="Fetches profile, blog posts, and presentation decks for homepage";constructor(l,r){this.postsListUrl=l,this.decksListUrl=r}async fetch(l,r,f){let i=f.entityService,[n,t,u,o]=await Promise.all([Jf(i,ru),Ji(i,{entityType:"post",count:3,parse:Lf}),Ji(i,{entityType:"deck",count:3,parse:nu}),Rf(i)]),w={profile:n,posts:t,decks:u,postsListUrl:this.postsListUrl,decksListUrl:this.decksListUrl,cta:Bn(o.cta),sections:o.sections??{}};return r.parse(w)}}class mo{id="professional:about";name="About Page DataSource";description="Fetches full profile data for the about page";async fetch(l,r,f){let n={profile:await Jf(f.entityService,ru)};return r.parse(n)}}import{jsxDEV as Kl,Fragment as l_}from"preact/jsx-dev-runtime";var Cq="grid md:grid-cols-[14rem_1px_1fr] gap-y-2 gap-x-0 md:gap-16 items-start",eq="border-t md:border-t-0 md:border-l border-rule-strong md:self-stretch",X4=({number:l,title:r,blurb:f,children:i})=>Kl("section",{className:"py-20 border-b border-rule px-6 md:px-12",children:Kl("div",{className:"max-w-6xl mx-auto",children:Kl("div",{className:Cq,children:[Kl(_w,{title:r,number:l,blurb:f},void 0,!1,void 0,this),Kl("div",{className:eq,"aria-hidden":"true"},void 0,!1,void 0,this),Kl("div",{className:"mt-6 md:mt-0",children:i},void 0,!1,void 0,this)]},void 0,!0,void 0,this)},void 0,!1,void 0,this)},void 0,!1,void 0,this),z4=({profile:l,posts:r,decks:f,postsListUrl:i,decksListUrl:n,cta:t,sections:u})=>{let o=l.tagline?.length?l.tagline:l.description,w=r.map((d)=>({id:d.id,url:d.url,title:d.metadata.title,date:d.metadata.publishedAt??d.created,description:d.frontmatter.excerpt,series:d.frontmatter.seriesName&&d.frontmatter.seriesIndex?{name:d.frontmatter.seriesName,index:d.frontmatter.seriesIndex}:void 0})),v=f.map((d)=>({id:d.id,url:d.url,title:d.frontmatter.title||d.id,date:d.frontmatter.publishedAt??d.created,description:d.frontmatter.description})),k=l.name||"Home",$=[l.intro,l.description,o].find((d)=>d)??"Professional site",b=Boolean(l.description)||l.expertise!==void 0&&l.expertise.length>0;return Kl(l_,{children:[Kl(Ll,{title:k,description:$,ogType:"website"},void 0,!1,void 0,this),Kl("div",{className:"homepage-list bg-theme",children:[Kl("header",{className:"hero-bg-pattern relative w-full px-6 md:px-12 pt-28 pb-24 md:pt-28 md:pb-24 overflow-hidden border-b border-rule",children:Kl("div",{className:"relative z-10 max-w-6xl mx-auto w-full",children:[l.name&&Kl("div",{className:"flex items-center gap-[0.6rem] mb-6 font-mono text-[0.7rem] font-medium uppercase tracking-[0.22em] text-accent",children:[Kl("span",{className:"w-[18px] h-px bg-accent","aria-hidden":"true"},void 0,!1,void 0,this),Kl("span",{children:l.name},void 0,!1,void 0,this)]},void 0,!0,void 0,this),o&&Kl("h1",{className:"font-heading text-[clamp(2.75rem,6.5vw,5.5rem)] font-normal text-heading leading-[1.02] tracking-[-0.025em] max-w-[18ch] [font-variation-settings:'opsz'_144,'SOFT'_30]",children:q2(o,"italic font-normal text-accent [font-variation-settings:'opsz'_144,'SOFT'_80]")},void 0,!1,void 0,this),l.intro&&Kl("p",{className:"font-heading font-light text-[clamp(1.1rem,1.8vw,1.4rem)] leading-[1.5] text-theme-muted max-w-[42ch] mt-8 [font-variation-settings:'opsz'_24]",children:q2(l.intro,"italic text-accent")},void 0,!1,void 0,this)]},void 0,!0,void 0,this)},void 0,!1,void 0,this),Kl(X4,{number:"01",title:"Essays",blurb:u.essays?.blurb,children:Kl(p2,{items:w,viewAllUrl:i,viewAllLabel:"View all essays"},void 0,!1,void 0,this)},void 0,!1,void 0,this),v.length>0&&Kl(X4,{number:"02",title:"Presentations",blurb:u.presentations?.blurb,children:Kl(p2,{items:v,viewAllUrl:n,viewAllLabel:"View all presentations"},void 0,!1,void 0,this)},void 0,!1,void 0,this),b&&Kl(X4,{number:"03",title:"About",blurb:u.about?.blurb,children:Kl("div",{className:"flex flex-col gap-8",children:[l.description&&Kl("p",{className:"font-heading font-light text-[1.25rem] leading-[1.55] text-theme max-w-[55ch] [font-variation-settings:'opsz'_24,'SOFT'_50]",children:l.description},void 0,!1,void 0,this),l.expertise&&l.expertise.length>0&&Kl(Dw,{subjects:l.expertise},void 0,!1,void 0,this),Kl("a",{href:"/about",className:"mt-6 inline-flex items-center gap-2 font-mono text-[0.7rem] font-medium uppercase tracking-[0.18em] text-accent pb-1 relative before:content-[''] before:absolute before:left-0 before:right-full before:bottom-0 before:h-px before:bg-accent before:transition-[right] before:duration-300 hover:before:right-0",children:["Learn more",Kl("span",{"aria-hidden":"true",children:"\u2192"},void 0,!1,void 0,this)]},void 0,!0,void 0,this)]},void 0,!0,void 0,this)},void 0,!1,void 0,this),Kl(Nw,{cta:t,variant:"editorial",socialLinks:l.socialLinks},void 0,!1,void 0,this)]},void 0,!0,void 0,this)]},void 0,!0,void 0,this)};import{jsxDEV as kl,Fragment as r_}from"preact/jsx-dev-runtime";var Y4=({profile:l})=>{let r=`About ${l.name||"Me"}`,f=[l.description,l.intro].find((n)=>n)??"About page",i=l.expertise!==void 0&&l.expertise.length>0||Boolean(l.currentFocus)||Boolean(l.availability)||Boolean(l.email)||Boolean(l.website)||l.socialLinks!==void 0&&l.socialLinks.length>0;return kl(r_,{children:[kl(Ll,{title:r,description:f,ogType:"profile"},void 0,!1,void 0,this),kl("div",{className:"about-page bg-theme",children:[kl("header",{className:"hero-bg-pattern relative w-full py-16 md:py-24 px-6 md:px-12 bg-theme overflow-hidden",children:kl("div",{className:"relative z-10 max-w-4xl mx-auto",children:[kl("h1",{className:"text-5xl md:text-6xl font-semibold mb-6 text-heading",children:["About ",l.name||"Me"]},void 0,!0,void 0,this),l.description&&kl("p",{className:"text-xl md:text-2xl text-theme-muted leading-relaxed",children:l.description},void 0,!1,void 0,this)]},void 0,!0,void 0,this)},void 0,!1,void 0,this),kl("div",{className:"container mx-auto px-6 md:px-12 max-w-4xl py-12 md:py-16",children:[l.story&&kl("section",{className:"content-section-reveal mb-20 md:mb-28",children:kl(P1,{markdown:l.story},void 0,!1,void 0,this)},void 0,!1,void 0,this),i&&kl("div",{className:"content-section-reveal grid md:grid-cols-2 gap-x-16 gap-y-12",children:[l.expertise&&l.expertise.length>0&&kl("section",{children:[kl("h2",{className:"text-sm tracking-widest uppercase text-theme-muted mb-6",children:"Expertise"},void 0,!1,void 0,this),kl("ul",{className:"flex flex-wrap gap-3",children:l.expertise.map((n,t)=>kl("li",{className:Vw({variant:"accent",size:"lg"}),children:n},t,!1,void 0,this))},void 0,!1,void 0,this)]},void 0,!0,void 0,this),l.currentFocus&&kl("section",{children:[kl("h2",{className:"text-sm tracking-widest uppercase text-theme-muted mb-6",children:"Current Focus"},void 0,!1,void 0,this),kl("p",{className:"text-lg text-theme leading-relaxed",children:l.currentFocus},void 0,!1,void 0,this)]},void 0,!0,void 0,this),l.availability&&kl("section",{children:[kl("h2",{className:"text-sm tracking-widest uppercase text-theme-muted mb-6",children:"Availability"},void 0,!1,void 0,this),kl("p",{className:"text-lg text-theme leading-relaxed",children:l.availability},void 0,!1,void 0,this)]},void 0,!0,void 0,this),(Boolean(l.email)||Boolean(l.website)||l.socialLinks!==void 0&&l.socialLinks.length>0)&&kl("section",{children:[kl("h2",{className:"text-sm tracking-widest uppercase text-theme-muted mb-6",children:"Contact"},void 0,!1,void 0,this),kl("div",{className:"space-y-4",children:[l.email&&kl("p",{className:"text-lg",children:kl("a",{href:`mailto:${l.email}`,className:"text-brand hover:text-brand-dark transition-colors",children:l.email},void 0,!1,void 0,this)},void 0,!1,void 0,this),l.website&&kl("p",{className:"text-lg",children:kl("a",{href:l.website,target:"_blank",rel:"noopener noreferrer",className:"text-brand hover:text-brand-dark transition-colors",children:l.website},void 0,!1,void 0,this)},void 0,!1,void 0,this),l.socialLinks&&l.socialLinks.length>0&&kl("div",{className:"flex flex-wrap gap-4 mt-4",children:l.socialLinks.map((n,t)=>kl(Vr,{href:n.url,external:!0,variant:"secondary",size:"md",children:n.label?.length?n.label:n.platform},t,!1,void 0,this))},void 0,!1,void 0,this)]},void 0,!0,void 0,this)]},void 0,!0,void 0,this)]},void 0,!0,void 0,this)]},void 0,!0,void 0,this)]},void 0,!0,void 0,this)]},void 0,!0,void 0,this)};import{jsxDEV as kr,Fragment as vW}from"preact/jsx-dev-runtime";var O4=()=>{return kr(vW,{children:[kr(Ll,{title:"Thanks for subscribing!",description:"You've successfully subscribed to the newsletter."},void 0,!1,void 0,this),kr("div",{className:"min-h-[60vh] flex items-center justify-center px-6",children:kr("div",{className:"text-center max-w-md",children:[kr("div",{className:"text-6xl mb-6",children:"\uD83C\uDF89"},void 0,!1,void 0,this),kr("h1",{className:"text-3xl font-semibold mb-4 text-heading",children:"Thanks for subscribing!"},void 0,!1,void 0,this),kr("p",{className:"text-lg text-theme-muted mb-8",children:"You'll receive a confirmation email shortly. Check your inbox to confirm your subscription."},void 0,!1,void 0,this),kr(Vr,{href:"/",variant:"primary",children:"Back to Home"},void 0,!1,void 0,this)]},void 0,!0,void 0,this)},void 0,!1,void 0,this)]},void 0,!0,void 0,this)},J4=()=>{return kr(vW,{children:[kr(Ll,{title:"Subscription failed",description:"There was a problem with your subscription."},void 0,!1,void 0,this),kr("div",{className:"min-h-[60vh] flex items-center justify-center px-6",children:kr("div",{className:"text-center max-w-md",children:[kr("div",{className:"text-6xl mb-6",children:"\uD83D\uDE22"},void 0,!1,void 0,this),kr("h1",{className:"text-3xl font-semibold mb-4 text-heading",children:"Something went wrong"},void 0,!1,void 0,this),kr("p",{className:"text-lg text-theme-muted mb-8",children:"We couldn't process your subscription. Please try again or contact us if the problem persists."},void 0,!1,void 0,this),kr(Vr,{href:"/",variant:"primary",children:"Back to Home"},void 0,!1,void 0,this)]},void 0,!0,void 0,this)},void 0,!1,void 0,this)]},void 0,!0,void 0,this)};var mW=z.object({label:z.string().describe("Display label for entity type (e.g., 'Essay')"),pluralName:z.string().optional().describe("URL path segment (defaults to label.toLowerCase() + 's')")}),f_={post:{label:"Post"},deck:{label:"Deck"}},kW=z.object({entityDisplay:z.object({post:mW,deck:mW}).default(f_).describe("Display metadata for post and deck entity types used by the homepage")});var $W={name:"@brains/site-professional",version:"0.2.0-alpha.189",description:"Professional site composition package",dependencies:{"@brains/blog":"workspace:*","@brains/decks":"workspace:*","@brains/plugins":"workspace:*","@brains/site-composition":"workspace:*","@brains/site-engine":"workspace:*","@brains/site-info":"workspace:*","@brains/templates":"workspace:*","@brains/ui-library":"workspace:*","@brains/utils":"workspace:*",preact:"^10.27.2"},devDependencies:{"@brains/eslint-config":"workspace:*","@brains/typescript-config":"workspace:*","@types/bun":"^1.3.14","bun-types":"^1.3.14",eslint:"^10.5.0",typescript:"^7.0.2"},exports:{".":"./src/index.ts"},files:["src"],private:!0,scripts:{lint:"eslint . --max-warnings 0","lint:fix":"eslint . --max-warnings 0 --fix",typecheck:"tsc --noEmit"},type:"module"};var n_=z.object({blurb:z.string().optional().describe("Short italic subtitle under the section title")}),t_=z.object({heading:z.string(),buttonText:z.string(),buttonLink:z.string()}),bW=z.looseObject({name:z.string(),kind:z.enum(["professional","team","collective"]),organization:z.string().optional(),description:z.string().optional(),avatar:z.string().optional(),website:z.string().optional(),email:z.string().optional(),socialLinks:z.array(z.object({platform:z.enum(["github","instagram","linkedin","email","website"]),url:z.string(),label:z.string().optional()})).optional(),tagline:z.string().optional(),intro:z.string().optional(),story:z.string().optional(),role:z.string().optional(),audience:z.string().optional(),expertise:z.array(z.string()).optional(),currentFocus:z.string().optional(),availability:z.string().optional(),desiredTone:z.string().optional()}),u_=z.looseObject({id:z.string(),entityType:z.literal("post"),content:z.string(),created:z.string(),updated:z.string(),contentHash:z.string(),metadata:z.looseObject({title:z.string(),publishedAt:z.string().optional()}),frontmatter:z.looseObject({excerpt:z.string(),seriesName:z.string().optional(),seriesIndex:z.number().optional()}),body:z.string(),url:z.string().optional(),typeLabel:z.string().optional(),listUrl:z.string().optional(),listLabel:z.string().optional(),seriesUrl:z.string().optional(),coverImageUrl:z.string().optional(),ogImageUrl:z.string().optional(),coverImageWidth:z.number().optional(),coverImageHeight:z.number().optional(),coverImageSrcset:z.string().optional(),coverImageSizes:z.string().optional()}),h_=z.looseObject({id:z.string(),entityType:z.literal("deck"),content:z.string(),created:z.string(),updated:z.string(),contentHash:z.string(),metadata:z.looseObject({title:z.string(),publishedAt:z.string().optional()}),frontmatter:z.looseObject({title:z.string(),description:z.string().optional(),publishedAt:z.string().optional()}),body:z.string(),url:z.string().optional(),typeLabel:z.string().optional(),listUrl:z.string().optional(),listLabel:z.string().optional(),coverImageUrl:z.string().optional(),ogImageUrl:z.string().optional(),coverImageWidth:z.number().optional(),coverImageHeight:z.number().optional()});class a4 extends no{dependencies=["blog","decks"];constructor(l){super("professional-site",$W,l,kW)}async onRegister(l){let r=this.config.entityDisplay.post,f=this.config.entityDisplay.deck,i=`/${r.pluralName??r.label.toLowerCase()+"s"}`,n=`/${f.pluralName??f.label.toLowerCase()+"s"}`,t=new vo(i,n);l.entities.registerDataSource(t);let u=new mo;l.entities.registerDataSource(u);let o=z.object({profile:bW,posts:z.array(u_),decks:z.array(h_),postsListUrl:z.string(),decksListUrl:z.string(),cta:t_,sections:z.record(z.string(),n_)}),w=z.object({profile:bW}),v=z.object({});l.templates.register({"homepage-list":Ol({name:"homepage-list",description:"Professional homepage with essays and presentations",schema:o,dataSourceId:"professional:homepage-list",requiredPermission:"public",layout:{component:z4}}),about:Ol({name:"about",description:"About page with full profile information",schema:w,dataSourceId:"professional:about",requiredPermission:"public",layout:{component:Y4}}),"subscribe-thanks":Ol({name:"subscribe-thanks",description:"Newsletter subscription success page",schema:v,requiredPermission:"public",layout:{component:O4}}),"subscribe-error":Ol({name:"subscribe-error",description:"Newsletter subscription error page",schema:v,requiredPermission:"public",layout:{component:J4}})}),this.logger.info("Professional site plugin registered successfully")}async getTools(){return[]}async getResources(){return[]}}function Q4(l){return new a4(l??{})}var B4=[{id:"home",path:"/",title:"Home",description:"Professional site homepage",layout:"default",navigation:{show:!0,label:"Home",slot:"secondary",priority:10},sections:[{id:"homepage",template:"professional-site:homepage-list",dataQuery:{}}]},{id:"about",path:"/about",title:"About",description:"About page",layout:"default",navigation:{show:!0,label:"About",slot:"primary",priority:90},sections:[{id:"about",template:"professional-site:about",dataQuery:{}}]},{id:"subscribe-thanks",path:"/subscribe/thanks",title:"Thanks for subscribing",description:"Newsletter subscription confirmation",layout:"default",navigation:{show:!1},sections:[{id:"subscribe-thanks",template:"professional-site:subscribe-thanks",dataQuery:{},content:{}}]},{id:"subscribe-error",path:"/subscribe/error",title:"Subscription failed",description:"Newsletter subscription error",layout:"default",navigation:{show:!1},sections:[{id:"subscribe-error",template:"professional-site:subscribe-error",dataQuery:{},content:{}}]}];import{jsxDEV as ko}from"preact/jsx-dev-runtime";function H4({sections:l,siteInfo:r,slots:f,wordmark:i}){return ko("div",{className:"flex flex-col min-h-screen bg-theme overflow-x-clip",children:[ko(ut,{title:r.title,navigation:r.navigation.primary,showThemeToggle:!0,...r.logo!==void 0?{logo:r.logo}:{},...i!==void 0?{wordmark:i}:{}},void 0,!1,void 0,this),ko("main",{className:"flex-grow flex flex-col bg-theme",children:l},void 0,!1,void 0,this),ko(Lw,{primaryNavigation:r.navigation.primary,secondaryNavigation:r.navigation.secondary,copyright:r.copyright,socialLinks:r.socialLinks,title:r.title,tagline:r.description,children:f?.getSlot("footer-top").map((n)=>n.render())},void 0,!1,void 0,this)]},void 0,!0,void 0,this)}function yW(l){return{id:l.id,version:l.version,type:l.type,packageName:l.packageName}}var f50=f4;function i50(l){return yW(l4(l))}var o_=r4,n50=o_,t50=H4;function u50(l){return yW(Q4(l))}var h50=B4;export{o_ as routes,u50 as professionalSitePlugin,h50 as professionalRoutes,i50 as personalSitePlugin,n50 as personalRoutes,t50 as ProfessionalLayout,f50 as PersonalLayout};
|
|
1688
|
+
${f.content}`,templateName:"decks:description"})})}}class vo{postsListUrl;decksListUrl;id="professional:homepage-list";name="Homepage List DataSource";description="Fetches profile, blog posts, and presentation decks for homepage";constructor(l,r){this.postsListUrl=l,this.decksListUrl=r}async fetch(l,r,f){let i=f.entityService,[n,t,u,o]=await Promise.all([Jf(i,ru),Ji(i,{entityType:"post",count:3,parse:Lf}),Ji(i,{entityType:"deck",count:3,parse:nu}),Rf(i)]),w={profile:n,posts:t,decks:u,postsListUrl:this.postsListUrl,decksListUrl:this.decksListUrl,cta:Bn(o.cta),sections:o.sections??{}};return r.parse(w)}}class mo{id="professional:about";name="About Page DataSource";description="Fetches full profile data for the about page";async fetch(l,r,f){let n={profile:await Jf(f.entityService,ru)};return r.parse(n)}}import{jsxDEV as Kl,Fragment as l_}from"preact/jsx-dev-runtime";var Cq="grid md:grid-cols-[14rem_1px_1fr] gap-y-2 gap-x-0 md:gap-16 items-start",eq="border-t md:border-t-0 md:border-l border-rule-strong md:self-stretch",X4=({number:l,title:r,blurb:f,children:i})=>Kl("section",{className:"py-20 border-b border-rule px-6 md:px-12",children:Kl("div",{className:"max-w-6xl mx-auto",children:Kl("div",{className:Cq,children:[Kl(_w,{title:r,number:l,blurb:f},void 0,!1,void 0,this),Kl("div",{className:eq,"aria-hidden":"true"},void 0,!1,void 0,this),Kl("div",{className:"mt-6 md:mt-0",children:i},void 0,!1,void 0,this)]},void 0,!0,void 0,this)},void 0,!1,void 0,this)},void 0,!1,void 0,this),z4=({profile:l,posts:r,decks:f,postsListUrl:i,decksListUrl:n,cta:t,sections:u})=>{let o=l.tagline?.length?l.tagline:l.description,w=r.map((d)=>({id:d.id,url:d.url,title:d.metadata.title,date:d.metadata.publishedAt??d.created,description:d.frontmatter.excerpt,series:d.frontmatter.seriesName&&d.frontmatter.seriesIndex?{name:d.frontmatter.seriesName,index:d.frontmatter.seriesIndex}:void 0})),v=f.map((d)=>({id:d.id,url:d.url,title:d.frontmatter.title||d.id,date:d.frontmatter.publishedAt??d.created,description:d.frontmatter.description})),k=l.name||"Home",$=[l.intro,l.description,o].find((d)=>d)??"Professional site",b=Boolean(l.description)||l.expertise!==void 0&&l.expertise.length>0;return Kl(l_,{children:[Kl(Ll,{title:k,description:$,ogType:"website"},void 0,!1,void 0,this),Kl("div",{className:"homepage-list bg-theme",children:[Kl("header",{className:"hero-bg-pattern relative w-full px-6 md:px-12 pt-28 pb-24 md:pt-28 md:pb-24 overflow-hidden border-b border-rule",children:Kl("div",{className:"relative z-10 max-w-6xl mx-auto w-full",children:[l.name&&Kl("div",{className:"flex items-center gap-[0.6rem] mb-6 font-mono text-[0.7rem] font-medium uppercase tracking-[0.22em] text-accent",children:[Kl("span",{className:"w-[18px] h-px bg-accent","aria-hidden":"true"},void 0,!1,void 0,this),Kl("span",{children:l.name},void 0,!1,void 0,this)]},void 0,!0,void 0,this),o&&Kl("h1",{className:"font-heading text-[clamp(2.75rem,6.5vw,5.5rem)] font-normal text-heading leading-[1.02] tracking-[-0.025em] max-w-[18ch] [font-variation-settings:'opsz'_144,'SOFT'_30]",children:q2(o,"italic font-normal text-accent [font-variation-settings:'opsz'_144,'SOFT'_80]")},void 0,!1,void 0,this),l.intro&&Kl("p",{className:"font-heading font-light text-[clamp(1.1rem,1.8vw,1.4rem)] leading-[1.5] text-theme-muted max-w-[42ch] mt-8 [font-variation-settings:'opsz'_24]",children:q2(l.intro,"italic text-accent")},void 0,!1,void 0,this)]},void 0,!0,void 0,this)},void 0,!1,void 0,this),Kl(X4,{number:"01",title:"Essays",blurb:u.essays?.blurb,children:Kl(p2,{items:w,viewAllUrl:i,viewAllLabel:"View all essays"},void 0,!1,void 0,this)},void 0,!1,void 0,this),v.length>0&&Kl(X4,{number:"02",title:"Presentations",blurb:u.presentations?.blurb,children:Kl(p2,{items:v,viewAllUrl:n,viewAllLabel:"View all presentations"},void 0,!1,void 0,this)},void 0,!1,void 0,this),b&&Kl(X4,{number:"03",title:"About",blurb:u.about?.blurb,children:Kl("div",{className:"flex flex-col gap-8",children:[l.description&&Kl("p",{className:"font-heading font-light text-[1.25rem] leading-[1.55] text-theme max-w-[55ch] [font-variation-settings:'opsz'_24,'SOFT'_50]",children:l.description},void 0,!1,void 0,this),l.expertise&&l.expertise.length>0&&Kl(Dw,{subjects:l.expertise},void 0,!1,void 0,this),Kl("a",{href:"/about",className:"mt-6 inline-flex items-center gap-2 font-mono text-[0.7rem] font-medium uppercase tracking-[0.18em] text-accent pb-1 relative before:content-[''] before:absolute before:left-0 before:right-full before:bottom-0 before:h-px before:bg-accent before:transition-[right] before:duration-300 hover:before:right-0",children:["Learn more",Kl("span",{"aria-hidden":"true",children:"\u2192"},void 0,!1,void 0,this)]},void 0,!0,void 0,this)]},void 0,!0,void 0,this)},void 0,!1,void 0,this),Kl(Nw,{cta:t,variant:"editorial",socialLinks:l.socialLinks},void 0,!1,void 0,this)]},void 0,!0,void 0,this)]},void 0,!0,void 0,this)};import{jsxDEV as kl,Fragment as r_}from"preact/jsx-dev-runtime";var Y4=({profile:l})=>{let r=`About ${l.name||"Me"}`,f=[l.description,l.intro].find((n)=>n)??"About page",i=l.expertise!==void 0&&l.expertise.length>0||Boolean(l.currentFocus)||Boolean(l.availability)||Boolean(l.email)||Boolean(l.website)||l.socialLinks!==void 0&&l.socialLinks.length>0;return kl(r_,{children:[kl(Ll,{title:r,description:f,ogType:"profile"},void 0,!1,void 0,this),kl("div",{className:"about-page bg-theme",children:[kl("header",{className:"hero-bg-pattern relative w-full py-16 md:py-24 px-6 md:px-12 bg-theme overflow-hidden",children:kl("div",{className:"relative z-10 max-w-4xl mx-auto",children:[kl("h1",{className:"text-5xl md:text-6xl font-semibold mb-6 text-heading",children:["About ",l.name||"Me"]},void 0,!0,void 0,this),l.description&&kl("p",{className:"text-xl md:text-2xl text-theme-muted leading-relaxed",children:l.description},void 0,!1,void 0,this)]},void 0,!0,void 0,this)},void 0,!1,void 0,this),kl("div",{className:"container mx-auto px-6 md:px-12 max-w-4xl py-12 md:py-16",children:[l.story&&kl("section",{className:"content-section-reveal mb-20 md:mb-28",children:kl(P1,{markdown:l.story},void 0,!1,void 0,this)},void 0,!1,void 0,this),i&&kl("div",{className:"content-section-reveal grid md:grid-cols-2 gap-x-16 gap-y-12",children:[l.expertise&&l.expertise.length>0&&kl("section",{children:[kl("h2",{className:"text-sm tracking-widest uppercase text-theme-muted mb-6",children:"Expertise"},void 0,!1,void 0,this),kl("ul",{className:"flex flex-wrap gap-3",children:l.expertise.map((n,t)=>kl("li",{className:Vw({variant:"accent",size:"lg"}),children:n},t,!1,void 0,this))},void 0,!1,void 0,this)]},void 0,!0,void 0,this),l.currentFocus&&kl("section",{children:[kl("h2",{className:"text-sm tracking-widest uppercase text-theme-muted mb-6",children:"Current Focus"},void 0,!1,void 0,this),kl("p",{className:"text-lg text-theme leading-relaxed",children:l.currentFocus},void 0,!1,void 0,this)]},void 0,!0,void 0,this),l.availability&&kl("section",{children:[kl("h2",{className:"text-sm tracking-widest uppercase text-theme-muted mb-6",children:"Availability"},void 0,!1,void 0,this),kl("p",{className:"text-lg text-theme leading-relaxed",children:l.availability},void 0,!1,void 0,this)]},void 0,!0,void 0,this),(Boolean(l.email)||Boolean(l.website)||l.socialLinks!==void 0&&l.socialLinks.length>0)&&kl("section",{children:[kl("h2",{className:"text-sm tracking-widest uppercase text-theme-muted mb-6",children:"Contact"},void 0,!1,void 0,this),kl("div",{className:"space-y-4",children:[l.email&&kl("p",{className:"text-lg",children:kl("a",{href:`mailto:${l.email}`,className:"text-brand hover:text-brand-dark transition-colors",children:l.email},void 0,!1,void 0,this)},void 0,!1,void 0,this),l.website&&kl("p",{className:"text-lg",children:kl("a",{href:l.website,target:"_blank",rel:"noopener noreferrer",className:"text-brand hover:text-brand-dark transition-colors",children:l.website},void 0,!1,void 0,this)},void 0,!1,void 0,this),l.socialLinks&&l.socialLinks.length>0&&kl("div",{className:"flex flex-wrap gap-4 mt-4",children:l.socialLinks.map((n,t)=>kl(Vr,{href:n.url,external:!0,variant:"secondary",size:"md",children:n.label?.length?n.label:n.platform},t,!1,void 0,this))},void 0,!1,void 0,this)]},void 0,!0,void 0,this)]},void 0,!0,void 0,this)]},void 0,!0,void 0,this)]},void 0,!0,void 0,this)]},void 0,!0,void 0,this)]},void 0,!0,void 0,this)};import{jsxDEV as kr,Fragment as vW}from"preact/jsx-dev-runtime";var O4=()=>{return kr(vW,{children:[kr(Ll,{title:"Thanks for subscribing!",description:"You've successfully subscribed to the newsletter."},void 0,!1,void 0,this),kr("div",{className:"min-h-[60vh] flex items-center justify-center px-6",children:kr("div",{className:"text-center max-w-md",children:[kr("div",{className:"text-6xl mb-6",children:"\uD83C\uDF89"},void 0,!1,void 0,this),kr("h1",{className:"text-3xl font-semibold mb-4 text-heading",children:"Thanks for subscribing!"},void 0,!1,void 0,this),kr("p",{className:"text-lg text-theme-muted mb-8",children:"You'll receive a confirmation email shortly. Check your inbox to confirm your subscription."},void 0,!1,void 0,this),kr(Vr,{href:"/",variant:"primary",children:"Back to Home"},void 0,!1,void 0,this)]},void 0,!0,void 0,this)},void 0,!1,void 0,this)]},void 0,!0,void 0,this)},J4=()=>{return kr(vW,{children:[kr(Ll,{title:"Subscription failed",description:"There was a problem with your subscription."},void 0,!1,void 0,this),kr("div",{className:"min-h-[60vh] flex items-center justify-center px-6",children:kr("div",{className:"text-center max-w-md",children:[kr("div",{className:"text-6xl mb-6",children:"\uD83D\uDE22"},void 0,!1,void 0,this),kr("h1",{className:"text-3xl font-semibold mb-4 text-heading",children:"Something went wrong"},void 0,!1,void 0,this),kr("p",{className:"text-lg text-theme-muted mb-8",children:"We couldn't process your subscription. Please try again or contact us if the problem persists."},void 0,!1,void 0,this),kr(Vr,{href:"/",variant:"primary",children:"Back to Home"},void 0,!1,void 0,this)]},void 0,!0,void 0,this)},void 0,!1,void 0,this)]},void 0,!0,void 0,this)};var mW=z.object({label:z.string().describe("Display label for entity type (e.g., 'Essay')"),pluralName:z.string().optional().describe("URL path segment (defaults to label.toLowerCase() + 's')")}),f_={post:{label:"Post"},deck:{label:"Deck"}},kW=z.object({entityDisplay:z.object({post:mW,deck:mW}).default(f_).describe("Display metadata for post and deck entity types used by the homepage")});var $W={name:"@brains/site-professional",version:"0.2.0-alpha.190",description:"Professional site composition package",dependencies:{"@brains/blog":"workspace:*","@brains/decks":"workspace:*","@brains/plugins":"workspace:*","@brains/site-composition":"workspace:*","@brains/site-engine":"workspace:*","@brains/site-info":"workspace:*","@brains/templates":"workspace:*","@brains/ui-library":"workspace:*","@brains/utils":"workspace:*",preact:"^10.27.2"},devDependencies:{"@brains/eslint-config":"workspace:*","@brains/typescript-config":"workspace:*","@types/bun":"^1.3.14","bun-types":"^1.3.14",eslint:"^10.5.0",typescript:"^7.0.2"},exports:{".":"./src/index.ts"},files:["src"],private:!0,scripts:{lint:"eslint . --max-warnings 0","lint:fix":"eslint . --max-warnings 0 --fix",typecheck:"tsc --noEmit"},type:"module"};var n_=z.object({blurb:z.string().optional().describe("Short italic subtitle under the section title")}),t_=z.object({heading:z.string(),buttonText:z.string(),buttonLink:z.string()}),bW=z.looseObject({name:z.string(),kind:z.enum(["professional","team","collective"]),organization:z.string().optional(),description:z.string().optional(),avatar:z.string().optional(),website:z.string().optional(),email:z.string().optional(),socialLinks:z.array(z.object({platform:z.enum(["github","instagram","linkedin","email","website"]),url:z.string(),label:z.string().optional()})).optional(),tagline:z.string().optional(),intro:z.string().optional(),story:z.string().optional(),role:z.string().optional(),audience:z.string().optional(),expertise:z.array(z.string()).optional(),currentFocus:z.string().optional(),availability:z.string().optional(),desiredTone:z.string().optional()}),u_=z.looseObject({id:z.string(),entityType:z.literal("post"),content:z.string(),created:z.string(),updated:z.string(),contentHash:z.string(),metadata:z.looseObject({title:z.string(),publishedAt:z.string().optional()}),frontmatter:z.looseObject({excerpt:z.string(),seriesName:z.string().optional(),seriesIndex:z.number().optional()}),body:z.string(),url:z.string().optional(),typeLabel:z.string().optional(),listUrl:z.string().optional(),listLabel:z.string().optional(),seriesUrl:z.string().optional(),coverImageUrl:z.string().optional(),ogImageUrl:z.string().optional(),coverImageWidth:z.number().optional(),coverImageHeight:z.number().optional(),coverImageSrcset:z.string().optional(),coverImageSizes:z.string().optional()}),h_=z.looseObject({id:z.string(),entityType:z.literal("deck"),content:z.string(),created:z.string(),updated:z.string(),contentHash:z.string(),metadata:z.looseObject({title:z.string(),publishedAt:z.string().optional()}),frontmatter:z.looseObject({title:z.string(),description:z.string().optional(),publishedAt:z.string().optional()}),body:z.string(),url:z.string().optional(),typeLabel:z.string().optional(),listUrl:z.string().optional(),listLabel:z.string().optional(),coverImageUrl:z.string().optional(),ogImageUrl:z.string().optional(),coverImageWidth:z.number().optional(),coverImageHeight:z.number().optional()});class a4 extends no{dependencies=["blog","decks"];constructor(l){super("professional-site",$W,l,kW)}async onRegister(l){let r=this.config.entityDisplay.post,f=this.config.entityDisplay.deck,i=`/${r.pluralName??r.label.toLowerCase()+"s"}`,n=`/${f.pluralName??f.label.toLowerCase()+"s"}`,t=new vo(i,n);l.entities.registerDataSource(t);let u=new mo;l.entities.registerDataSource(u);let o=z.object({profile:bW,posts:z.array(u_),decks:z.array(h_),postsListUrl:z.string(),decksListUrl:z.string(),cta:t_,sections:z.record(z.string(),n_)}),w=z.object({profile:bW}),v=z.object({});l.templates.register({"homepage-list":Ol({name:"homepage-list",description:"Professional homepage with essays and presentations",schema:o,dataSourceId:"professional:homepage-list",requiredPermission:"public",layout:{component:z4}}),about:Ol({name:"about",description:"About page with full profile information",schema:w,dataSourceId:"professional:about",requiredPermission:"public",layout:{component:Y4}}),"subscribe-thanks":Ol({name:"subscribe-thanks",description:"Newsletter subscription success page",schema:v,requiredPermission:"public",layout:{component:O4}}),"subscribe-error":Ol({name:"subscribe-error",description:"Newsletter subscription error page",schema:v,requiredPermission:"public",layout:{component:J4}})}),this.logger.info("Professional site plugin registered successfully")}async getTools(){return[]}async getResources(){return[]}}function Q4(l){return new a4(l??{})}var B4=[{id:"home",path:"/",title:"Home",description:"Professional site homepage",layout:"default",navigation:{show:!0,label:"Home",slot:"secondary",priority:10},sections:[{id:"homepage",template:"professional-site:homepage-list",dataQuery:{}}]},{id:"about",path:"/about",title:"About",description:"About page",layout:"default",navigation:{show:!0,label:"About",slot:"primary",priority:90},sections:[{id:"about",template:"professional-site:about",dataQuery:{}}]},{id:"subscribe-thanks",path:"/subscribe/thanks",title:"Thanks for subscribing",description:"Newsletter subscription confirmation",layout:"default",navigation:{show:!1},sections:[{id:"subscribe-thanks",template:"professional-site:subscribe-thanks",dataQuery:{},content:{}}]},{id:"subscribe-error",path:"/subscribe/error",title:"Subscription failed",description:"Newsletter subscription error",layout:"default",navigation:{show:!1},sections:[{id:"subscribe-error",template:"professional-site:subscribe-error",dataQuery:{},content:{}}]}];import{jsxDEV as ko}from"preact/jsx-dev-runtime";function H4({sections:l,siteInfo:r,slots:f,wordmark:i}){return ko("div",{className:"flex flex-col min-h-screen bg-theme overflow-x-clip",children:[ko(ut,{title:r.title,navigation:r.navigation.primary,showThemeToggle:!0,...r.logo!==void 0?{logo:r.logo}:{},...i!==void 0?{wordmark:i}:{}},void 0,!1,void 0,this),ko("main",{className:"flex-grow flex flex-col bg-theme",children:l},void 0,!1,void 0,this),ko(Lw,{primaryNavigation:r.navigation.primary,secondaryNavigation:r.navigation.secondary,copyright:r.copyright,socialLinks:r.socialLinks,title:r.title,tagline:r.description,children:f?.getSlot("footer-top").map((n)=>n.render())},void 0,!1,void 0,this)]},void 0,!0,void 0,this)}function yW(l){return{id:l.id,version:l.version,type:l.type,packageName:l.packageName}}var f50=f4;function i50(l){return yW(l4(l))}var o_=r4,n50=o_,t50=H4;function u50(l){return yW(Q4(l))}var h50=B4;export{o_ as routes,u50 as professionalSitePlugin,h50 as professionalRoutes,i50 as personalSitePlugin,n50 as personalRoutes,t50 as ProfessionalLayout,f50 as PersonalLayout};
|
|
1689
1689
|
|
|
1690
|
-
//# debugId=
|
|
1690
|
+
//# debugId=F99C93FB3740E8EE64756E2164756E21
|
|
1691
1691
|
//# sourceMappingURL=site.js.map
|