@rizom/brain 0.2.0-alpha.216 → 0.2.0-alpha.217

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (50) hide show
  1. package/dist/brain.js +833 -833
  2. package/dist/chunks/blog-post-adapter-nwgbah59.js +5 -0
  3. package/dist/chunks/{index-fjp4jadv.js → index-457w4zv3.js} +4 -4
  4. package/dist/chunks/{index-fjp4jadv.js.map → index-457w4zv3.js.map} +1 -1
  5. package/dist/chunks/{index-gmfgjnnw.js → index-7j5wm2z5.js} +3 -3
  6. package/dist/chunks/{index-gmfgjnnw.js.map → index-7j5wm2z5.js.map} +1 -1
  7. package/dist/chunks/{index-e2c4agdd.js → index-c7ehmqhv.js} +4 -4
  8. package/dist/chunks/{index-e2c4agdd.js.map → index-c7ehmqhv.js.map} +1 -1
  9. package/dist/chunks/{index-whpvp633.js → index-chnjenm4.js} +3 -3
  10. package/dist/chunks/{index-whpvp633.js.map → index-chnjenm4.js.map} +1 -1
  11. package/dist/chunks/{index-w9z1vrm1.js → index-f4gcns9h.js} +4 -4
  12. package/dist/chunks/{index-w9z1vrm1.js.map → index-f4gcns9h.js.map} +1 -1
  13. package/dist/chunks/{index-3097wt56.js → index-gbnw7xez.js} +4 -4
  14. package/dist/chunks/{index-3097wt56.js.map → index-gbnw7xez.js.map} +1 -1
  15. package/dist/chunks/{index-bs70092j.js → index-q9sthmbv.js} +4 -4
  16. package/dist/chunks/{index-bs70092j.js.map → index-q9sthmbv.js.map} +1 -1
  17. package/dist/chunks/{index-wvwq0pm7.js → index-r4f9aab7.js} +4 -4
  18. package/dist/chunks/{index-wvwq0pm7.js.map → index-r4f9aab7.js.map} +1 -1
  19. package/dist/chunks/index-vfn2acy1.js +6 -0
  20. package/dist/chunks/{index-4r98bhg4.js.map → index-vfn2acy1.js.map} +4 -3
  21. package/dist/chunks/{index-h3s9msd8.js → index-wbjxq811.js} +3 -3
  22. package/dist/chunks/{index-h3s9msd8.js.map → index-wbjxq811.js.map} +1 -1
  23. package/dist/chunks/{index-9s5cwp2s.js → index-zmtkjeqj.js} +3 -3
  24. package/dist/chunks/{index-9s5cwp2s.js.map → index-zmtkjeqj.js.map} +1 -1
  25. package/dist/chunks/{rss-datasource-8wtv3mt5.js → rss-datasource-zj8k12xw.js} +3 -3
  26. package/dist/chunks/{rss-datasource-8wtv3mt5.js.map → rss-datasource-zj8k12xw.js.map} +1 -1
  27. package/dist/deploy.js +1 -1
  28. package/dist/entities.js +2 -2
  29. package/dist/entities.js.map +1 -1
  30. package/dist/index.js +2 -2
  31. package/dist/index.js.map +1 -1
  32. package/dist/interfaces.d.ts +3 -0
  33. package/dist/interfaces.js +2 -2
  34. package/dist/interfaces.js.map +1 -1
  35. package/dist/plugins.d.ts +3 -0
  36. package/dist/plugins.js +2 -2
  37. package/dist/plugins.js.map +1 -1
  38. package/dist/services.js +2 -2
  39. package/dist/services.js.map +1 -1
  40. package/dist/site.js +103 -103
  41. package/dist/site.js.map +5 -5
  42. package/dist/templates.js +2 -2
  43. package/dist/templates.js.map +1 -1
  44. package/dist/themes.js +1 -1
  45. package/dist/ui/cms-app.js +399 -403
  46. package/dist/ui/cms-app.js.map +73 -10
  47. package/package.json +1 -1
  48. package/dist/chunks/blog-post-adapter-mcd8g3g5.js +0 -5
  49. package/dist/chunks/index-4r98bhg4.js +0 -6
  50. /package/dist/chunks/{blog-post-adapter-mcd8g3g5.js.map → blog-post-adapter-nwgbah59.js.map} +0 -0
@@ -1,6 +1,6 @@
1
1
  // @bun
2
- import{j as v,k as G}from"./index-4r98bhg4.js";import{ba as D}from"./index-e2c4agdd.js";import{Ea as z}from"./index-bs70092j.js";class H extends D{constructor(){super({entityType:"post",purpose:"A long-form published article, essay, or blog post written for an audience.",schema:G,frontmatterSchema:v,supportsCoverImage:!0})}toMarkdown(j){let q=this.extractBody(j.content);try{let x=this.parseFrontMatter(j.content,v),I={...x,slug:x.slug??j.metadata.slug};return this.buildMarkdown(q,I)}catch{return q}}fromMarkdown(j){let q=this.parseFrontMatter(j,v),x=q.slug??z(q.title);return{content:j,entityType:"post",metadata:{title:q.title,slug:x,status:q.status,publishedAt:q.publishedAt,seriesName:q.seriesName,seriesIndex:q.seriesIndex}}}parsePostFrontmatter(j){return this.parseFrontMatter(j.content,v)}createPostContent(j,q){return this.buildMarkdown(q,j)}buildStub(j){let q={title:j.title,slug:j.id,status:"generating",excerpt:"",author:"AI"};return{content:this.buildMarkdown("",q),metadata:{title:j.title,slug:j.id,status:"generating"}}}}var M=new H;
2
+ import{k as v,l as G}from"./index-vfn2acy1.js";import{ca as D}from"./index-c7ehmqhv.js";import{Fa as z}from"./index-q9sthmbv.js";class H extends D{constructor(){super({entityType:"post",purpose:"A long-form published article, essay, or blog post written for an audience.",schema:G,frontmatterSchema:v,supportsCoverImage:!0})}toMarkdown(j){let q=this.extractBody(j.content);try{let x=this.parseFrontMatter(j.content,v),I={...x,slug:x.slug??j.metadata.slug};return this.buildMarkdown(q,I)}catch{return q}}fromMarkdown(j){let q=this.parseFrontMatter(j,v),x=q.slug??z(q.title);return{content:j,entityType:"post",metadata:{title:q.title,slug:x,status:q.status,publishedAt:q.publishedAt,seriesName:q.seriesName,seriesIndex:q.seriesIndex}}}parsePostFrontmatter(j){return this.parseFrontMatter(j.content,v)}createPostContent(j,q){return this.buildMarkdown(q,j)}buildStub(j){let q={title:j.title,slug:j.id,status:"generating",excerpt:"",author:"AI"};return{content:this.buildMarkdown("",q),metadata:{title:j.title,slug:j.id,status:"generating"}}}}var M=new H;
3
3
  export{H as a,M as b};
4
4
 
5
- //# debugId=6FBA410E0FE26B5E64756E2164756E21
6
- //# sourceMappingURL=index-whpvp633.js.map
5
+ //# debugId=848AD54E1CAD8BAD64756E2164756E21
6
+ //# sourceMappingURL=index-chnjenm4.js.map
@@ -5,6 +5,6 @@
5
5
  "import { BaseEntityAdapter } from \"@brains/plugins\";\nimport { slugify } from \"@brains/utils/string-utils\";\nimport {\n blogPostSchema,\n blogPostFrontmatterSchema,\n type BlogPost,\n type BlogPostFrontmatter,\n type BlogPostMetadata,\n} from \"../schemas/blog-post\";\n\n/**\n * Entity adapter for blog post entities\n * Following summary plugin pattern - frontmatter in content, key fields duplicated in metadata\n */\nexport class BlogPostAdapter extends BaseEntityAdapter<\n BlogPost,\n BlogPostMetadata,\n BlogPostFrontmatter\n> {\n constructor() {\n super({\n entityType: \"post\",\n purpose:\n \"A long-form published article, essay, or blog post written for an audience.\",\n schema: blogPostSchema,\n frontmatterSchema: blogPostFrontmatterSchema,\n supportsCoverImage: true,\n });\n }\n\n /**\n * Convert blog post entity to markdown with frontmatter\n * Merges auto-generated metadata (like slug) back into frontmatter\n */\n public override toMarkdown(entity: BlogPost): string {\n const body = this.extractBody(entity.content);\n try {\n const frontmatter = this.parseFrontMatter(\n entity.content,\n blogPostFrontmatterSchema,\n );\n\n // Merge auto-generated slug from metadata if missing in frontmatter\n const completeFrontmatter = {\n ...frontmatter,\n slug: frontmatter.slug ?? entity.metadata.slug,\n };\n\n return this.buildMarkdown(body, completeFrontmatter);\n } catch {\n return body;\n }\n }\n\n /**\n * Parse markdown with frontmatter to create partial blog post entity\n * Syncs frontmatter → metadata for key searchable fields\n * Auto-generates slug from title if not provided in frontmatter\n */\n public fromMarkdown(markdown: string): Partial<BlogPost> {\n const frontmatter = this.parseFrontMatter(\n markdown,\n blogPostFrontmatterSchema,\n );\n const slug = frontmatter.slug ?? slugify(frontmatter.title);\n\n return {\n content: markdown,\n entityType: \"post\",\n metadata: {\n title: frontmatter.title,\n slug,\n status: frontmatter.status,\n publishedAt: frontmatter.publishedAt,\n seriesName: frontmatter.seriesName,\n seriesIndex: frontmatter.seriesIndex,\n },\n };\n }\n\n /** Parse blog post frontmatter from entity content */\n public parsePostFrontmatter(entity: BlogPost): BlogPostFrontmatter {\n return this.parseFrontMatter(entity.content, blogPostFrontmatterSchema);\n }\n\n /** Create blog post content with frontmatter */\n public createPostContent(\n frontmatter: BlogPostFrontmatter,\n body: string,\n ): string {\n return this.buildMarkdown(body, frontmatter);\n }\n\n public buildStub(input: { id: string; title: string }): {\n content: string;\n metadata: BlogPostMetadata;\n } {\n const frontmatter: BlogPostFrontmatter = {\n title: input.title,\n slug: input.id,\n status: \"generating\",\n excerpt: \"\",\n author: \"AI\",\n };\n return {\n content: this.buildMarkdown(\"\", frontmatter),\n metadata: {\n title: input.title,\n slug: input.id,\n status: \"generating\",\n },\n };\n }\n}\n\n// Create default instance\nexport const blogPostAdapter: BlogPostAdapter = new BlogPostAdapter();\n"
6
6
  ],
7
7
  "mappings": ";6IAcO,AAAM,IAAwB,CAInC,CACA,WAAW,EAAG,CACZ,MAAM,CACJ,WAAY,OACZ,QACE,8EACF,OAAQ,EACR,kBAAmB,EACnB,mBAAoB,EACtB,CAAC,EAOa,UAAU,CAAC,EAA0B,CACnD,IAAM,EAAO,KAAK,YAAY,EAAO,OAAO,EAC5C,GAAI,CACF,IAAM,EAAc,KAAK,iBACvB,EAAO,QACP,CACF,EAGM,EAAsB,IACvB,EACH,KAAM,EAAY,MAAQ,EAAO,SAAS,IAC5C,EAEA,OAAO,KAAK,cAAc,EAAM,CAAmB,EACnD,KAAM,CACN,OAAO,GASJ,YAAY,CAAC,EAAqC,CACvD,IAAM,EAAc,KAAK,iBACvB,EACA,CACF,EACM,EAAO,EAAY,MAAQ,EAAQ,EAAY,KAAK,EAE1D,MAAO,CACL,QAAS,EACT,WAAY,OACZ,SAAU,CACR,MAAO,EAAY,MACnB,OACA,OAAQ,EAAY,OACpB,YAAa,EAAY,YACzB,WAAY,EAAY,WACxB,YAAa,EAAY,WAC3B,CACF,EAIK,oBAAoB,CAAC,EAAuC,CACjE,OAAO,KAAK,iBAAiB,EAAO,QAAS,CAAyB,EAIjE,iBAAiB,CACtB,EACA,EACQ,CACR,OAAO,KAAK,cAAc,EAAM,CAAW,EAGtC,SAAS,CAAC,EAGf,CACA,IAAM,EAAmC,CACvC,MAAO,EAAM,MACb,KAAM,EAAM,GACZ,OAAQ,aACR,QAAS,GACT,OAAQ,IACV,EACA,MAAO,CACL,QAAS,KAAK,cAAc,GAAI,CAAW,EAC3C,SAAU,CACR,MAAO,EAAM,MACb,KAAM,EAAM,GACZ,OAAQ,YACV,CACF,EAEJ,CAGO,IAAM,EAAmC,IAAI",
8
- "debugId": "6FBA410E0FE26B5E64756E2164756E21",
8
+ "debugId": "848AD54E1CAD8BAD64756E2164756E21",
9
9
  "names": []
10
10
  }
@@ -1,10 +1,10 @@
1
1
  // @bun
2
- import{D as _,F as j,G as Q,H as y,I as L,J as D,K as q,O as S,P as E,Q as U,R as v,S as WZ,X as cA,Y as uA}from"./index-e2c4agdd.js";import{Aa as c,sa as oA,va as M,za as pA}from"./index-3097wt56.js";import{Ja as wZ}from"./index-9s5cwp2s.js";import{Qa as Z}from"./index-wvwq0pm7.js";var _$=Z.object({id:Z.string(),sessionId:Z.string(),interfaceType:Z.string(),channelId:Z.string(),channelName:Z.string().optional(),startedAt:Z.string(),lastActiveAt:Z.string(),createdAt:Z.string(),updatedAt:Z.string(),metadata:c}),O$=Z.object({id:Z.string(),conversationId:Z.string(),role:M,content:Z.string(),timestamp:Z.string(),metadata:c});var WA=Z.object({name:Z.string(),role:Z.string(),purpose:Z.string(),values:Z.array(Z.string())}),KA=Z.object({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()});import{createClient as J$}from"@libsql/client";class VA{constructor(A,$){this.name=A,this.unique=$}static[y]="SQLiteIndexBuilderOn";on(...A){return new DA(this.name,A,this.unique)}}class DA{static[y]="SQLiteIndexBuilder";config;constructor(A,$,H){this.config={name:A,columns:$,unique:H,where:void 0}}where(A){return this.config.where=A,this}build(A){return new NA(this.config,A)}}class NA{static[y]="SQLiteIndex";config;constructor(A,$){this.config={...A,table:$}}}function w(A){return new VA(A,!1)}var z=q("conversations",{id:D("id").primaryKey(),sessionId:D("session_id").notNull(),interfaceType:D("interface_type").notNull(),channelId:D("channel_id").notNull(),started:D("started").notNull(),lastActive:D("last_active").notNull(),metadata:D("metadata"),created:D("created").notNull(),updated:D("updated").notNull()},(A)=>({sessionIdx:w("idx_conversations_session").on(A.sessionId),channelIdx:w("idx_conversations_channel").on(A.channelId),interfaceSessionIdx:w("idx_conversations_interface_session").on(A.interfaceType,A.sessionId),interfaceChannelIdx:w("idx_conversations_interface_channel").on(A.interfaceType,A.channelId)})),FA=q("messages",{id:D("id").primaryKey(),conversationId:D("conversation_id").notNull().references(()=>z.id,{onDelete:"cascade"}),role:D("role").notNull(),content:D("content").notNull(),timestamp:D("timestamp").notNull(),metadata:D("metadata")},(A)=>({conversationIdx:w("idx_messages_conversation").on(A.conversationId),timestampIdx:w("idx_messages_timestamp").on(A.timestamp)})),UA=q("summary_tracking",{conversationId:D("conversation_id").primaryKey().references(()=>z.id,{onDelete:"cascade"}),lastSummarizedAt:D("last_summarized_at"),lastMessageId:D("last_message_id"),messagesSinceSummary:L("messages_since_summary").default(0),updated:D("updated").notNull()});var OZ=Z.preprocess((A)=>{if(typeof A!=="string")return A;try{return JSON.parse(A)}catch{return}},Z.record(Z.string(),Z.unknown())).catch({});function J(A){return OZ.parse(A)}var m=Z.object({actorId:Z.string(),canonicalId:Z.string().optional(),interfaceType:Z.string(),role:M,displayName:Z.string().optional(),username:Z.string().optional(),isBot:Z.boolean().optional()}),h=Z.object({messageId:Z.string().optional(),channelId:Z.string().optional(),channelName:Z.string().optional(),threadId:Z.string().optional(),metadata:Z.record(Z.string(),Z.unknown()).optional()}),CZ=Z.looseObject({actor:m.optional(),source:h.optional()});var BZ=Z.object({id:Z.string(),conversationId:Z.string(),role:Z.string(),content:Z.string(),timestamp:Z.string(),metadata:Z.string().nullable()}),MZ=Z.object({conversationId:Z.string(),messageCount:Z.number(),messages:Z.array(BZ),windowStart:Z.number(),windowEnd:Z.number(),windowSize:Z.number(),timestamp:Z.string()});var RA=Z.object({kind:Z.string().min(1),id:Z.string().min(1)}),kZ=Z.object({kind:Z.literal("text"),filename:Z.string().min(1),mediaType:Z.string().min(1),content:Z.string(),sizeBytes:Z.number().nonnegative().optional(),source:RA.optional()}),EZ=Z.custom((A)=>A instanceof Uint8Array),fZ=Z.object({kind:Z.literal("file"),filename:Z.string().min(1),mediaType:Z.string().min(1),data:EZ,sizeBytes:Z.number().nonnegative().optional(),source:RA.optional()}),JZ=Z.discriminatedUnion("kind",[kZ,fZ]),U1=Z.object({userPermissionLevel:Z.enum(["anchor","trusted","public"]).optional(),interfaceType:Z.string().optional(),channelId:Z.string().optional(),channelName:Z.string().optional(),actor:m.optional(),source:h.optional(),attachments:Z.array(JZ).optional()});var TZ=Z.object({status:Z.enum(["healthy","warning","error","unknown"]),message:Z.string().optional(),lastCheck:Z.date().optional(),details:Z.record(Z.string(),Z.unknown()).optional()}),wA=Z.object({name:Z.string(),pluginId:Z.string(),status:Z.string(),health:TZ.optional()});import{McpServer as S1,ResourceTemplate as x1}from"@modelcontextprotocol/sdk/server/mcp.js";var LA=Z.object({interfaceType:Z.string(),userId:Z.string(),conversationId:Z.string().optional(),channelId:Z.string().optional(),channelName:Z.string().optional(),runId:Z.string().optional(),toolCallId:Z.string().optional(),userPermissionLevel:Z.enum(["anchor","trusted","public"]).optional()}),_A=Z.strictObject({success:Z.literal(!0),data:Z.unknown().optional(),message:Z.string().optional(),cached:Z.literal(!0).optional()}),OA=Z.strictObject({success:Z.literal(!1),error:Z.string(),code:Z.string().optional()}),CA=Z.strictObject({needsConfirmation:Z.literal(!0),toolName:Z.string(),summary:Z.string(),completionSummary:Z.string().optional(),preview:Z.string().optional(),args:Z.unknown()}),u=Z.union([_A,OA,CA]);var q1=Z.union([Z.looseObject({success:Z.literal(!0)}),Z.object({success:Z.literal(!1),error:Z.string()})]);var SZ=Z.union([Z.object({success:Z.literal(!0),data:Z.unknown(),message:Z.string().optional()}),Z.object({success:Z.literal(!1),error:Z.string(),code:Z.string().optional()})]);var BH=Z.object({id:Z.string(),type:Z.string(),version:Z.string(),status:Z.string()}),MH=Z.object({name:Z.string(),description:Z.string()}),BA=Z.enum(["anchor","trusted","public"]),d=Z.object({label:Z.string(),url:Z.string(),pluginId:Z.string(),priority:Z.number().default(100),visibility:BA.default("public")}),xZ=Z.enum(["human","agent","admin","protocol"]),yZ=Z.enum(["available","coming-soon","disabled"]),l=Z.object({id:Z.string(),label:Z.string(),description:Z.string().optional(),href:Z.string(),kind:xZ,pluginId:Z.string(),priority:Z.number().default(100),visibility:BA.default("public"),status:yZ.default("available")}),i=Z.object({entityType:Z.string(),count:Z.number()}),qH=Z.object({model:Z.string(),version:Z.string(),uptime:Z.number(),entities:Z.number(),entityCounts:Z.array(i),embeddings:Z.number(),ai:Z.object({model:Z.string(),embeddingModel:Z.string()}),daemons:Z.array(wA),endpoints:Z.array(d),interactions:Z.array(l)});var QH=Z.object({id:Z.string(),version:Z.string(),type:Z.enum(["core","entity","service","interface"]),description:Z.string().optional(),dependencies:Z.array(Z.string()).optional(),packageName:Z.string()});var zZ=Z.object({status:Z.enum(["healthy","warning","error","unknown"]),message:Z.string().optional(),lastCheck:Z.string().optional(),details:Z.record(Z.string(),Z.unknown()).optional()}),mZ=Z.object({name:Z.string(),pluginId:Z.string(),status:Z.string(),health:zZ.optional()}),TH=Z.object({model:Z.string(),version:Z.string(),uptime:Z.number(),entities:Z.number(),entityCounts:Z.array(i),embeddings:Z.number(),ai:Z.object({model:Z.string(),embeddingModel:Z.string()}),daemons:Z.array(mZ),endpoints:Z.array(d),interactions:Z.array(l)});var yH=Z.object({enabled:Z.boolean().describe("Whether the plugin is enabled"),debug:Z.boolean().describe("Enable debug logging for this plugin")});class n extends Error{pluginId;issues;constructor(A,$){super(`Invalid plugin config for ${A}`);this.name="PluginConfigValidationError",this.pluginId=A,this.issues=$}}var r=Z.enum(["file_operations","content_operations","data_processing","batch_processing"]),hZ=Z.object({pluginId:Z.string().optional(),progressToken:Z.union([Z.string(),Z.number()]).optional(),operationType:r,operationTarget:Z.string().optional(),interfaceType:Z.string().optional(),conversationId:Z.string().optional(),channelId:Z.string().optional(),silent:Z.boolean().optional()}),k=Z.object({pluginId:Z.string().optional(),progressToken:Z.union([Z.string(),Z.number()]).optional(),operationType:r,operationTarget:Z.string().optional(),interfaceType:Z.string().optional(),conversationId:Z.string().optional(),channelId:Z.string().optional(),silent:Z.boolean().optional(),rootJobId:Z.string()}),hH=Z.enum(["none","skip","replace","coalesce"]);var a=Z.enum(["pending","processing","completed","failed"]),MA=Z.enum(["completed","failed"]);var jZ=Z.object({id:Z.string(),type:Z.string(),status:a,data:Z.unknown(),result:Z.unknown().optional(),lastError:Z.string().optional().nullable(),attempts:Z.number(),maxRetries:Z.number(),priority:Z.number(),createdAt:Z.date(),updatedAt:Z.date(),processedAt:Z.date().optional().nullable(),completedAt:Z.date().optional().nullable(),failedAt:Z.date().optional().nullable()}),vZ=Z.object({jobId:Z.string(),type:Z.string(),status:MA,result:Z.unknown().optional(),error:Z.string().optional()}),qA=Z.object({success:Z.literal(!1),error:Z.string().optional()}),s=Z.object({id:Z.string(),type:Z.enum(["job","batch"]),status:a,message:Z.string().optional(),progress:Z.object({current:Z.number(),total:Z.number(),percentage:Z.number()}).optional(),aggregationKey:Z.string().optional(),batchDetails:Z.object({totalOperations:Z.number(),completedOperations:Z.number(),failedOperations:Z.number(),currentOperation:Z.string().optional(),errors:Z.array(Z.string()).optional()}).optional(),jobDetails:Z.object({jobType:Z.string(),priority:Z.number(),retryCount:Z.number()}).optional(),metadata:k});var IZ=Z.record(Z.string(),Z.unknown());class QA{logger;schema;jobTypeName;constructor(A,$){this.logger=A,this.schema=$.schema,this.jobTypeName=$.jobTypeName}validateAndParse(A){if(!this.schema)throw Error(`${this.jobTypeName}: No schema provided. Override validateAndParse() or provide a schema.`);let $=this.schema.safeParse(A);if(!$.success)return this.logger.warn(`Invalid ${this.jobTypeName} job data`,{data:A,validationError:$.error.issues}),null;return this.logger.debug(`${this.jobTypeName} job data validation successful`,{data:this.summarizeDataForLog($.data)}),$.data}async onError(A,$,H,Y){this.logger.error(`${this.jobTypeName} job error handler triggered`,{jobId:H,errorMessage:A.message,errorStack:A.stack,data:this.summarizeDataForLog($)})}async reportProgress(A,$){await A.report({progress:$.progress,total:$.total??100,message:$.message})}summarizeDataForLog(A){let $=IZ.safeParse(A);return $.success?$.data:{}}}import{createClient as iH}from"@libsql/client";var kA=q("job_queue",{id:D("id").primaryKey().$defaultFn(()=>Q()),type:D("type").notNull(),data:D("data").notNull(),result:D("result",{mode:"json"}),source:D("source"),metadata:D("metadata",{mode:"json"}).$type().notNull(),status:D("status",{enum:["pending","processing","completed","failed"]}).notNull().default("pending"),priority:L("priority").notNull().default(0),retryCount:L("retryCount").notNull().default(0),maxRetries:L("maxRetries").notNull().default(3),lastError:D("lastError"),createdAt:L("createdAt").notNull().$defaultFn(()=>Date.now()),scheduledFor:L("scheduledFor").notNull().$defaultFn(()=>Date.now()),startedAt:L("startedAt"),completedAt:L("completedAt")},(A)=>({queueReadyIdx:w("idx_job_queue_ready").on(A.status,A.priority,A.scheduledFor),jobTypeIdx:w("idx_job_queue_type").on(A.type,A.status),jobSourceIdx:w("idx_job_queue_source").on(A.source)}));var Z4=Z.looseObject({deduplicationKey:Z.string().optional()});class O{callback;heartbeatInterval;constructor(A){this.callback=A}static from(A){if(!A)return;return new O(A)}createSub(A){let{scale:$}=A??{};if($){let{start:H,end:Y}=$,X=Y-H;return new O(async(G)=>{let W=H+G.progress/(G.total??100)*X;await this.callback({...G,progress:W,total:100})})}return new O(this.callback)}async report(A){await this.callback(A)}startHeartbeat(A,$=5000){this.stopHeartbeat(),this.heartbeatInterval=setInterval(()=>{this.report({message:A,progress:0}).catch(()=>{})},$)}stopHeartbeat(){if(this.heartbeatInterval)clearInterval(this.heartbeatInterval),this.heartbeatInterval=void 0}toCallback(){return this.callback}}var S4=Z.preprocess((A)=>{if(typeof A!=="string")return A;return JSON.parse(A)},Z.record(Z.string(),Z.unknown()));var pZ=Z.object({id:Z.string(),type:Z.string(),data:Z.string(),status:Z.enum(["pending","processing","completed","failed"]),source:Z.string().nullable(),priority:Z.number(),retryCount:Z.number(),maxRetries:Z.number(),lastError:Z.string().nullable(),createdAt:Z.number(),scheduledFor:Z.number(),startedAt:Z.number().nullable(),completedAt:Z.number().nullable(),metadata:k,result:Z.unknown().nullable().optional()});function o(A,$,H){return async(Y)=>{let{type:X,data:G,toolContext:W=null,options:P}=Y,{metadata:K,...V}=P??{},N={source:$,...P?.rootJobId&&{rootJobId:P.rootJobId},...V,metadata:{operationType:"data_processing",pluginId:$,...W&&{interfaceType:W.interfaceType,channelId:W.channelId},...K}},F=H&&!X.includes(":")?`${$}:${X}`:X;return A.enqueue({type:F,data:G,options:N})}}function t(A,$){return async(H,Y)=>{let X=Q(),G=H.map((P)=>({...P,type:P.type.includes(":")?P.type:`${$}:${P.type}`})),W={...Y,source:$,rootJobId:X,metadata:{...Y?.metadata,operationType:"batch_processing",pluginId:$}};return await A.enqueueBatch(G,W,X,$),X}}function e(A,$){return(H,Y)=>{let X=H.includes(":")?H:`${$}:${H}`;A.registerHandler(X,Y,$)}}var cZ=Z.custom((A)=>typeof A==="object"&&A!==null&&("safeParse"in A)),uZ=Z.object({name:Z.string(),schema:cZ});function EA(A){return uZ.safeParse(A).success}function dZ(A){if(!A)return;return{status:A.status,message:A.message,lastCheck:A.lastCheck?.toISOString(),details:A.details}}function fA(A){return{model:A.model,version:A.version,uptime:A.uptime,entities:A.entities,entityCounts:A.entityCounts,embeddings:A.embeddings,ai:A.ai,daemons:A.daemons.map(($)=>({name:$.name,pluginId:$.pluginId,status:$.status,health:dZ($.health)})),endpoints:A.endpoints,interactions:A.interactions}}function lZ(A){let $=M.safeParse(A);return $.success?$.data:"user"}function I(A){let $=J(A.metadata),H=typeof $.channelName==="string"?$.channelName:void 0;return{id:A.id,sessionId:A.sessionId,interfaceType:A.interfaceType,channelId:A.channelId,channelName:H,startedAt:A.started,lastActiveAt:A.lastActive,createdAt:A.created,updatedAt:A.updated,metadata:$}}function JA(A){return{id:A.id,conversationId:A.conversationId,role:lZ(A.role),content:A.content,timestamp:A.timestamp,metadata:J(A.metadata)}}function TA(A){return WA.parse(A)}function SA(A){return KA.parse(A)}function xA(A){return async()=>{return fA(await A.getAppInfo())}}function yA(A,$){return{get:()=>TA(A.getIdentity()),getProfile:()=>SA(A.getProfile()),getAppInfo:$}}function zA(A,$,H){let Y=A.getMessageBus();return{send:async(G)=>{return Y.send({...G,sender:$})},subscribe:(G,W)=>{if(EA(G)){let P=G,K=W,V=async(N)=>{let F=P.schema.safeParse(N.payload);if(!F.success)return H.warn(`Invalid payload for channel ${P.name}`,{error:F.error.message}),{noop:!0};let{payload:B,...R}=N;return K(F.data,R)};return Y.subscribe(P.name,V)}return Y.subscribe(G,W)}}}function mA(A,$){let H=A.getJobQueueService();return{...A.jobs,enqueue:o(H,$,!0),enqueueBatch:t(A.jobs,$),registerHandler:e(H,$)}}function hA(A){let $=A.getPermissionService();return{assertEntityActionAllowed:(H,Y,X)=>{$.assertEntityActionAllowed(H,Y,X.userPermissionLevel)}}}function jA(A){return{get:async($)=>{let Y=await A.getConversationService().getConversation($);return Y?I(Y):null},search:async($)=>{return(await A.getConversationService().searchConversations($)).map(I)},list:async($)=>{return(await A.getConversationService().listConversations($)).map(I)},getMessages:async($,H)=>{return(await A.getConversationService().getMessages($,H)).map(JA)},countMessages:async($)=>{return A.getConversationService().countMessages($)}}}function vA(A,$){return{registerHandler:(H,Y)=>{A.registerEvalHandler($,H,Y)}}}function IA(A){return{register:($,H)=>{A.getInsightsRegistry().register($,H)}}}function gA(A,$){return{register:(H)=>{A.registerEndpoint({...H,pluginId:$})}}}function bA(A,$){return{register:(H)=>{A.registerInteraction({...H,pluginId:$})}}}function f(A,$,H){let Y=A.getEntityService(),X=A.getLogger().child($),G=A.getDomain(),W=A.getLocalSiteUrl(),P=A.shouldPreferLocalUrls(),K=A.getThemeCSS(),V=xA(A),N=A.getAttachmentRegistry(),F=A.getRuntimeUploadRegistry(),B=A.getRuntimeState();return{pluginId:$,logger:X,entityService:Y,semantic:{project:(R)=>Y.projectSemanticSpace(R)},identity:yA(A,V),appInfo:V,judge:(R)=>A.judge(R),domain:G,siteUrl:G?`https://${G}`:void 0,localSiteUrl:W,previewUrl:G?`https://${pA(G)}`:void 0,preferLocalUrls:P,themeCSS:K,entityDisplay:H?.entityDisplay,spaces:A.getSpaces(),permissions:hA(A),messaging:zA(A,$,X),jobs:mA(A,$),attachments:N,uploads:F,runtimeState:B,recurringChecks:A.getRecurringChecks($),conversations:jA(A),dataDir:A.getDataDir(),eval:vA(A,$),insights:IA(A),endpoints:gA(A,$),interactions:bA(A,$)}}function iZ(A){return A.replace(/:/g,"-")}function nZ(A){return A.split(/[:.-]/).map(($)=>$.charAt(0).toUpperCase()+$.slice(1)).join(" ")}var AA=new Map;async function dA(A,$,H){let Y=AA.get($);if(Y!==void 0)return Y;let X=iZ($),G;try{G=await A.getEntity({entityType:"prompt",id:X})}catch{return H}if(G?.content){let W=uA(G.content,Z.record(Z.string(),Z.unknown())).content;return AA.set($,W),W}try{let W=nZ($),P=cA(H,{title:W,target:$});await A.createEntity({entity:{id:X,entityType:"prompt",content:P,metadata:{title:W,target:$,slug:X}}})}catch{}return AA.set($,H),H}function g(A){let $=A.getEntityService(),H=A.getEntityRegistry(),Y=A.getDataSourceRegistry();return{register:(X,G,W,P)=>{H.registerEntityType(X,G,W,P)},getAdapter:(X)=>{try{return H.getAdapter(X)}catch{return}},extendFrontmatterSchema:(X,G)=>{H.extendFrontmatterSchema(X,G)},getEffectiveFrontmatterSchema:(X)=>{return H.getEffectiveFrontmatterSchema(X)},registerCreateInterceptor:(X,G)=>{H.registerCreateInterceptor(X,G)},registerUploadSaveHandler:(X)=>{H.registerUploadSaveHandler(X)},getUploadSaveHandler:(X)=>{return H.getUploadSaveHandler(X)},update:async(X)=>{return $.updateEntity({entity:X})},registerDataSource:(X)=>{Y.register(X)}}}function b(A){return{resolve:($,H)=>{return dA(A,$,H)}}}function lA(A,$,H){let Y=f(A,$,H),X=A.getEntityService();return{...Y,entityService:X,entities:g(A),ai:{query:(G,W)=>A.query(G,W),generate:async(G)=>{return A.generateContent(G)},generateObject:async(G,W,P)=>{return A.generateObject(G,W,P)},generateImage:async(G,W)=>{return A.generateImage(G,W)},canGenerateImages:()=>{return A.canGenerateImages()}},prompts:b(X),permissions:Y.permissions}}function nA(A,$,H){let Y=!1,X=!1;if(A.jobs.registerHandler(H.job.type,H.job.handler),H.initialSync){let G=H.initialSync;A.messaging.subscribe("sync:initial:completed",async()=>{if(Y)return{success:!0};if(Y=!0,!(await G.shouldEnqueue?.()??!0))return $.info("Skipping derived entity projection initial sync",{projectionId:H.id,targetType:H.targetType}),{success:!0};return X=await iA(A,$,H,G.jobData,aZ(G.jobOptions),"initial-sync"),{success:!0}})}if(H.sourceChange){let G=H.sourceChange,W=new Set(G.sourceTypes),P=G.events??["entity:created","entity:updated"],K=async(V)=>{if(G.requireInitialSync&&!Y)return{success:!0};let N=V.payload,F=rZ(G,N);if(!F||!W.has("*")&&!W.has(F))return{success:!0};if(!(await G.shouldEnqueue?.(N)??!0))return{success:!0};let R=await G.jobData(N);if(!R)return{success:!0};return await iA(A,$,H,R,G.jobOptions?.(N),"source-change"),{success:!0}};for(let V of P)A.messaging.subscribe(V,K)}return{hasObservedInitialSync:()=>Y,hasQueuedInitialSync:()=>X}}function rZ(A,$){if(A.sourceType)return A.sourceType;if(A.sourceKind&&A.sourceKind!=="entity")return A.sourceKind;return $.entityType}async function iA(A,$,H,Y,X,G){try{return await A.jobs.enqueue({type:H.job.type,data:Y,...X?{options:X}:{}}),$.info("Queued derived entity projection",{projectionId:H.id,targetType:H.targetType,reason:G}),!0}catch(W){return $.error("Failed to queue derived entity projection",{projectionId:H.id,targetType:H.targetType,reason:G,error:_(W)}),!1}}function aZ(A){return typeof A==="function"?A():A}var sZ=Z.object({toolName:Z.string(),args:Z.unknown(),progressToken:Z.union([Z.string(),Z.number()]).optional(),hasProgress:Z.boolean().optional(),interfaceType:Z.string(),userId:Z.string(),conversationId:Z.string().optional(),channelId:Z.string().optional(),channelName:Z.string().optional(),runId:Z.string().optional(),toolCallId:Z.string().optional(),userPermissionLevel:Z.enum(["anchor","trusted","public"]).optional(),signal:Z.custom((A)=>A instanceof AbortSignal).optional()}),oZ=Z.object({resourceUri:Z.string()});class C{id;version;description;packageName;config;context;get logger(){return this.context?.logger??j.createFresh({context:this.id})}constructor(A,$,H,Y){this.id=A,this.packageName=$.name,this.version=$.version,this.description=$.description??`${$.name} plugin`;let X=Y.safeParse(H);if(!X.success)throw new n(A,X.error.issues.map((G)=>({path:G.path.map(String).join("."),code:G.code,message:G.message})));this.config=X.data}setupMessageHandlers(A){A.messaging.subscribe(`plugin:${this.id}:tool:execute`,async($)=>{try{let H=sZ.safeParse($.payload);if(!H.success)return{success:!1,error:"Invalid tool execution request format"};let{toolName:Y,args:X,progressToken:G,hasProgress:W,interfaceType:P,userId:K,conversationId:V,channelId:N,channelName:F,runId:B,toolCallId:R,userPermissionLevel:XA,signal:GA}=H.data,PA=(await this.getTools()).find((p)=>p.name===Y);if(!PA)return{success:!1,error:`Tool not found: ${Y}`};let _Z={interfaceType:P,userId:K,...V&&{conversationId:V},...N&&{channelId:N},...F&&{channelName:F},...B&&{runId:B},...R&&{toolCallId:R},...XA&&{userPermissionLevel:XA},...GA&&{signal:GA},...W&&G!==void 0&&{progressToken:G,sendProgress:async(p)=>{await A.messaging.send({type:`plugin:${this.id}:progress`,payload:{progressToken:G,notification:p}})}}};return{success:!0,data:await PA.handler(X,_Z)}}catch(H){return this.logger.error("Tool execution error",H),{success:!1,error:_(H)}}}),A.messaging.subscribe(`plugin:${this.id}:resource:get`,async($)=>{try{let H=oZ.safeParse($.payload);if(!H.success)return{success:!1,error:"Invalid resource get request format"};let{resourceUri:Y}=H.data,G=(await this.getResources()).find((P)=>P.uri===Y);if(!G)return{success:!1,error:`Resource not found: ${Y}`};return{success:!0,data:await G.handler()}}catch(H){return this.logger.error("Resource fetch error",H),{success:!1,error:_(H)}}})}async onRegister(A){}async onReady(A){}async ready(){await this.onReady(this.getContext())}async getCapabilities(){let A=await this.getInstructions();return{tools:await this.getTools(),resources:await this.getResources(),...A&&{instructions:A}}}async getTools(){return[]}async getResources(){return[]}async getInstructions(){return}async shutdown(){await this.onShutdown()}async onShutdown(){}getContext(){if(!this.context)throw Error(`Plugin ${this.id}: Plugin not registered yet`);return this.context}determineUserPermissionLevel(A){return"public"}createProgressBridge(A){if(!A)return;let $=this.context;if(!$)return;let H=this.id;return O.from(async(Y)=>{await $.messaging.send({type:`plugin:${H}:progress`,payload:{progressToken:A,notification:{progress:Y.progress,total:Y.total,message:Y.message}}})})}}var j6=Z.object({});class rA extends C{type="entity";entityActionPolicy;derivedEntityProjectionControllers=new Map;constructor(A,$,H,Y,X){super(A,$,H,Y);if(X!==void 0)this.entityActionPolicy=X}async register(A,$){let H=lA(A,this.id,$);if(this.context=H,this.setupMessageHandlers(H),H.entities.register(this.entityType,this.schema,this.adapter,this.getEntityTypeConfig()),this.interceptCreate!==rA.prototype.interceptCreate)H.entities.registerCreateInterceptor(this.entityType,(K,V)=>this.interceptCreate(K,V,H));let Y=this.createGenerationHandler(H);if(Y)H.jobs.registerHandler(`${this.entityType}:generation`,Y);let X=this.getTemplates();if(X&&Object.keys(X).length>0)A.registerTemplates(X,this.id);let G=this.getDataSources();for(let K of G)H.entities.registerDataSource(K);let W=this.getDerivedEntityProjections(H);for(let K of W){let V=nA(H,this.logger,K);this.derivedEntityProjectionControllers.set(K.id,V)}await this.onRegister(this.context);let P=await this.getInstructions();return{tools:[],resources:[],...P&&{instructions:P}}}async interceptCreate(A,$,H){return{kind:"continue",input:A}}createGenerationHandler(A){return null}getTemplates(){return null}getDataSources(){return[]}getEntityTypeConfig(){return}getDerivedEntityProjections(A){return[]}getDerivedEntityProjectionController(A){return this.derivedEntityProjectionControllers.get(A)}}function aA(A){return oA(A)}function sA(A){if(!A)return;return{...A.userPermissionLevel&&{userPermissionLevel:A.userPermissionLevel},...A.interfaceType&&{interfaceType:A.interfaceType},...A.channelId&&{channelId:A.channelId},...A.channelName&&{channelName:A.channelName},...A.actor&&{actor:A.actor},...A.source&&{source:A.source},...A.attachments&&{attachments:A.attachments}}}function tA(A){return{chat:async($,H,Y,X)=>{let G=sA(Y),W=X?await A.chat($,H,G,X):await A.chat($,H,G);return aA(W)},confirmPendingAction:async($,H,Y,X,G)=>{let W=sA(X);if(!W)throw Error("Confirmation requires caller context.");let P=G?await A.confirmPendingAction($,H,Y,W,G):await A.confirmPendingAction($,H,Y,W);return aA(P)},invalidate:()=>{A.invalidateAgent()}}}function eA(A,$,H){let Y=f(A,$,H),X=A.getMCPService(),G=A.getPermissionService(),W=tA(A.getAgentService());return{...Y,mcpTransport:X,agent:W,permissions:{...Y.permissions,getUserLevel:(P,K,V)=>{return G.determineUserLevel(P,K,V)}},daemons:{register:(P,K)=>{let V=`${$}:${P}`;A.registerDaemon(V,K,$),Y.logger.debug(`Registered daemon: ${V}`)}},conversations:{...Y.conversations,start:async(P)=>{return A.getConversationService().startConversation(P)},addMessage:async(P)=>{await A.getConversationService().addMessage(P)},updateMetadata:async(P)=>{return A.getConversationService().updateConversationMetadata(P)},delete:async(P)=>{return A.getConversationService().deleteConversation(P)}},tools:{listForPermissionLevel:(P)=>{return A.listToolsForPermissionLevel(P)}},apiRoutes:{getRoutes:()=>{return A.getPluginApiRoutes()},getMessageBus:()=>{return A.getMessageBus()}},webRoutes:{getRoutes:()=>{return A.getPluginWebRoutes()}},plugins:{has:(P)=>A.hasPlugin(P)}}}var tZ=3600000;class ZA extends C{type="interface";daemon;jobTrackingEntries=new Map;jobTrackingTtlMs=tZ;async register(A,$){let H=eA(A,this.id,$);if(this.context=H,this.initializeDaemon(),this.daemon)await this.registerDaemon(H);return this.setupMessageHandlers(H),await this.onRegister(H),this.getCapabilities()}async onRegister(A){}async registerDaemon(A){if(!this.daemon)return;A.daemons.register(this.id,this.daemon),A.logger.debug(`Registered daemon for interface: ${this.id}`)}createDaemon(){return}requiresDaemonStartup(){return!1}getWebRoutes(){return[]}initializeDaemon(){let A=this.createDaemon();if(A)this.daemon=A}async handleProgressEvent(A,$){}cleanupExpiredEntries(){let A=Date.now(),$=[];for(let[H,Y]of this.jobTrackingEntries)if(A-Y.createdAt>this.jobTrackingTtlMs)$.push(H);for(let H of $)this.jobTrackingEntries.delete(H)}ownsJob(A,$){return this.jobTrackingEntries.has(A)||$!==void 0&&this.jobTrackingEntries.has($)}getJobTracking(A,$){let H=this.jobTrackingEntries.get(A);if(H)return H.info;if($){let Y=this.jobTrackingEntries.get($);if(Y)return Y.info}return}setJobTracking(A,$){this.cleanupExpiredEntries(),this.jobTrackingEntries.set(A,{info:$,createdAt:Date.now()})}removeJobTracking(A){this.jobTrackingEntries.delete(A)}async createJobWithTracking(A,$){let Y=await this.getContext().jobs.enqueue(A);return this.setJobTracking(Y,$),Y}async createBatchWithTracking(A,$,H){let X=await this.getContext().jobs.enqueueBatch(A,H);return this.setJobTracking(X,$),X}}function x(A,$){return{state:$,toolName:A.toolName,conversationId:A.conversationId,interfaceType:A.interfaceType,...A.channelId!==void 0&&{channelId:A.channelId},...A.channelName!==void 0&&{channelName:A.channelName},...A.error!==void 0&&{error:A.error}}}function AZ(A,$){return A.pendingConfirmations?.some((H)=>H.toolName===$)===!0||eZ(A.cards).some((H)=>H.toolName===$)}function eZ(A){return A?.filter(($)=>$.kind==="tool-approval"&&$.state==="approval-requested")??[]}var $A=1e5,A$=[".md",".txt",".markdown"],Z$=["text/plain","text/markdown","text/x-markdown"],$$=/https?:\/\/[^\s<>"{}|\\^`[\]]+?(?=[,;:\s]|$)/gi,H$=["meet.google.com","zoom.us","teams.microsoft.com","whereby.com","gather.town","calendly.com","cal.com","discord.com","discord.gg","cdn.discordapp.com","media.discordapp.net","giphy.com","tenor.com","wetransfer.com","file.io"],Y$=Z.object({captureUrls:Z.boolean().default(!1),blockedUrlDomains:Z.array(Z.string()).default(H$)});function ZZ(A,$){if($&&Z$.some((H)=>$.startsWith(H)))return!0;return A$.some((H)=>A.toLowerCase().endsWith(H))}function $Z(A){return A<=$A}function HZ(A){if(A.includes(0))return!1;try{return new TextDecoder("utf-8",{fatal:!0}).decode(A),!0}catch{return!1}}function YZ(A,$){return`User uploaded a file "${A}":
2
+ import{E as _,G as j,H as Q,I as y,J as L,K as D,L as q,P as S,Q as E,R as U,S as v,T as WZ,Y as cA,Z as uA}from"./index-c7ehmqhv.js";import{Aa as pA,Ba as c,ta as oA,wa as M}from"./index-gbnw7xez.js";import{Ka as wZ}from"./index-zmtkjeqj.js";import{Ra as Z}from"./index-r4f9aab7.js";var _$=Z.object({id:Z.string(),sessionId:Z.string(),interfaceType:Z.string(),channelId:Z.string(),channelName:Z.string().optional(),startedAt:Z.string(),lastActiveAt:Z.string(),createdAt:Z.string(),updatedAt:Z.string(),metadata:c}),O$=Z.object({id:Z.string(),conversationId:Z.string(),role:M,content:Z.string(),timestamp:Z.string(),metadata:c});var WA=Z.object({name:Z.string(),role:Z.string(),purpose:Z.string(),values:Z.array(Z.string())}),KA=Z.object({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()});import{createClient as J$}from"@libsql/client";class VA{constructor(A,$){this.name=A,this.unique=$}static[y]="SQLiteIndexBuilderOn";on(...A){return new DA(this.name,A,this.unique)}}class DA{static[y]="SQLiteIndexBuilder";config;constructor(A,$,H){this.config={name:A,columns:$,unique:H,where:void 0}}where(A){return this.config.where=A,this}build(A){return new NA(this.config,A)}}class NA{static[y]="SQLiteIndex";config;constructor(A,$){this.config={...A,table:$}}}function w(A){return new VA(A,!1)}var z=q("conversations",{id:D("id").primaryKey(),sessionId:D("session_id").notNull(),interfaceType:D("interface_type").notNull(),channelId:D("channel_id").notNull(),started:D("started").notNull(),lastActive:D("last_active").notNull(),metadata:D("metadata"),created:D("created").notNull(),updated:D("updated").notNull()},(A)=>({sessionIdx:w("idx_conversations_session").on(A.sessionId),channelIdx:w("idx_conversations_channel").on(A.channelId),interfaceSessionIdx:w("idx_conversations_interface_session").on(A.interfaceType,A.sessionId),interfaceChannelIdx:w("idx_conversations_interface_channel").on(A.interfaceType,A.channelId)})),FA=q("messages",{id:D("id").primaryKey(),conversationId:D("conversation_id").notNull().references(()=>z.id,{onDelete:"cascade"}),role:D("role").notNull(),content:D("content").notNull(),timestamp:D("timestamp").notNull(),metadata:D("metadata")},(A)=>({conversationIdx:w("idx_messages_conversation").on(A.conversationId),timestampIdx:w("idx_messages_timestamp").on(A.timestamp)})),UA=q("summary_tracking",{conversationId:D("conversation_id").primaryKey().references(()=>z.id,{onDelete:"cascade"}),lastSummarizedAt:D("last_summarized_at"),lastMessageId:D("last_message_id"),messagesSinceSummary:L("messages_since_summary").default(0),updated:D("updated").notNull()});var OZ=Z.preprocess((A)=>{if(typeof A!=="string")return A;try{return JSON.parse(A)}catch{return}},Z.record(Z.string(),Z.unknown())).catch({});function J(A){return OZ.parse(A)}var m=Z.object({actorId:Z.string(),canonicalId:Z.string().optional(),interfaceType:Z.string(),role:M,displayName:Z.string().optional(),username:Z.string().optional(),isBot:Z.boolean().optional()}),h=Z.object({messageId:Z.string().optional(),channelId:Z.string().optional(),channelName:Z.string().optional(),threadId:Z.string().optional(),metadata:Z.record(Z.string(),Z.unknown()).optional()}),CZ=Z.looseObject({actor:m.optional(),source:h.optional()});var BZ=Z.object({id:Z.string(),conversationId:Z.string(),role:Z.string(),content:Z.string(),timestamp:Z.string(),metadata:Z.string().nullable()}),MZ=Z.object({conversationId:Z.string(),messageCount:Z.number(),messages:Z.array(BZ),windowStart:Z.number(),windowEnd:Z.number(),windowSize:Z.number(),timestamp:Z.string()});var RA=Z.object({kind:Z.string().min(1),id:Z.string().min(1)}),kZ=Z.object({kind:Z.literal("text"),filename:Z.string().min(1),mediaType:Z.string().min(1),content:Z.string(),sizeBytes:Z.number().nonnegative().optional(),source:RA.optional()}),EZ=Z.custom((A)=>A instanceof Uint8Array),fZ=Z.object({kind:Z.literal("file"),filename:Z.string().min(1),mediaType:Z.string().min(1),data:EZ,sizeBytes:Z.number().nonnegative().optional(),source:RA.optional()}),JZ=Z.discriminatedUnion("kind",[kZ,fZ]),U1=Z.object({userPermissionLevel:Z.enum(["anchor","trusted","public"]).optional(),interfaceType:Z.string().optional(),channelId:Z.string().optional(),channelName:Z.string().optional(),actor:m.optional(),source:h.optional(),attachments:Z.array(JZ).optional()});var TZ=Z.object({status:Z.enum(["healthy","warning","error","unknown"]),message:Z.string().optional(),lastCheck:Z.date().optional(),details:Z.record(Z.string(),Z.unknown()).optional()}),wA=Z.object({name:Z.string(),pluginId:Z.string(),status:Z.string(),health:TZ.optional()});import{McpServer as S1,ResourceTemplate as x1}from"@modelcontextprotocol/sdk/server/mcp.js";var LA=Z.object({interfaceType:Z.string(),userId:Z.string(),conversationId:Z.string().optional(),channelId:Z.string().optional(),channelName:Z.string().optional(),runId:Z.string().optional(),toolCallId:Z.string().optional(),userPermissionLevel:Z.enum(["anchor","trusted","public"]).optional()}),_A=Z.strictObject({success:Z.literal(!0),data:Z.unknown().optional(),message:Z.string().optional(),cached:Z.literal(!0).optional()}),OA=Z.strictObject({success:Z.literal(!1),error:Z.string(),code:Z.string().optional()}),CA=Z.strictObject({needsConfirmation:Z.literal(!0),toolName:Z.string(),summary:Z.string(),completionSummary:Z.string().optional(),preview:Z.string().optional(),args:Z.unknown()}),u=Z.union([_A,OA,CA]);var q1=Z.union([Z.looseObject({success:Z.literal(!0)}),Z.object({success:Z.literal(!1),error:Z.string()})]);var SZ=Z.union([Z.object({success:Z.literal(!0),data:Z.unknown(),message:Z.string().optional()}),Z.object({success:Z.literal(!1),error:Z.string(),code:Z.string().optional()})]);var BH=Z.object({id:Z.string(),type:Z.string(),version:Z.string(),status:Z.string()}),MH=Z.object({name:Z.string(),description:Z.string()}),BA=Z.enum(["anchor","trusted","public"]),d=Z.object({label:Z.string(),url:Z.string(),pluginId:Z.string(),priority:Z.number().default(100),visibility:BA.default("public")}),xZ=Z.enum(["human","agent","admin","protocol"]),yZ=Z.enum(["available","coming-soon","disabled"]),l=Z.object({id:Z.string(),label:Z.string(),description:Z.string().optional(),href:Z.string(),kind:xZ,pluginId:Z.string(),priority:Z.number().default(100),visibility:BA.default("public"),status:yZ.default("available")}),i=Z.object({entityType:Z.string(),count:Z.number()}),qH=Z.object({model:Z.string(),version:Z.string(),uptime:Z.number(),entities:Z.number(),entityCounts:Z.array(i),embeddings:Z.number(),ai:Z.object({model:Z.string(),embeddingModel:Z.string()}),daemons:Z.array(wA),endpoints:Z.array(d),interactions:Z.array(l)});var QH=Z.object({id:Z.string(),version:Z.string(),type:Z.enum(["core","entity","service","interface"]),description:Z.string().optional(),dependencies:Z.array(Z.string()).optional(),packageName:Z.string()});var zZ=Z.object({status:Z.enum(["healthy","warning","error","unknown"]),message:Z.string().optional(),lastCheck:Z.string().optional(),details:Z.record(Z.string(),Z.unknown()).optional()}),mZ=Z.object({name:Z.string(),pluginId:Z.string(),status:Z.string(),health:zZ.optional()}),TH=Z.object({model:Z.string(),version:Z.string(),uptime:Z.number(),entities:Z.number(),entityCounts:Z.array(i),embeddings:Z.number(),ai:Z.object({model:Z.string(),embeddingModel:Z.string()}),daemons:Z.array(mZ),endpoints:Z.array(d),interactions:Z.array(l)});var yH=Z.object({enabled:Z.boolean().describe("Whether the plugin is enabled"),debug:Z.boolean().describe("Enable debug logging for this plugin")});class n extends Error{pluginId;issues;constructor(A,$){super(`Invalid plugin config for ${A}`);this.name="PluginConfigValidationError",this.pluginId=A,this.issues=$}}var r=Z.enum(["file_operations","content_operations","data_processing","batch_processing"]),hZ=Z.object({pluginId:Z.string().optional(),progressToken:Z.union([Z.string(),Z.number()]).optional(),operationType:r,operationTarget:Z.string().optional(),interfaceType:Z.string().optional(),conversationId:Z.string().optional(),channelId:Z.string().optional(),silent:Z.boolean().optional()}),k=Z.object({pluginId:Z.string().optional(),progressToken:Z.union([Z.string(),Z.number()]).optional(),operationType:r,operationTarget:Z.string().optional(),interfaceType:Z.string().optional(),conversationId:Z.string().optional(),channelId:Z.string().optional(),silent:Z.boolean().optional(),rootJobId:Z.string()}),hH=Z.enum(["none","skip","replace","coalesce"]);var a=Z.enum(["pending","processing","completed","failed"]),MA=Z.enum(["completed","failed"]);var jZ=Z.object({id:Z.string(),type:Z.string(),status:a,data:Z.unknown(),result:Z.unknown().optional(),lastError:Z.string().optional().nullable(),attempts:Z.number(),maxRetries:Z.number(),priority:Z.number(),createdAt:Z.date(),updatedAt:Z.date(),processedAt:Z.date().optional().nullable(),completedAt:Z.date().optional().nullable(),failedAt:Z.date().optional().nullable()}),vZ=Z.object({jobId:Z.string(),type:Z.string(),status:MA,result:Z.unknown().optional(),error:Z.string().optional()}),qA=Z.object({success:Z.literal(!1),error:Z.string().optional()}),s=Z.object({id:Z.string(),type:Z.enum(["job","batch"]),status:a,message:Z.string().optional(),progress:Z.object({current:Z.number(),total:Z.number(),percentage:Z.number()}).optional(),aggregationKey:Z.string().optional(),batchDetails:Z.object({totalOperations:Z.number(),completedOperations:Z.number(),failedOperations:Z.number(),currentOperation:Z.string().optional(),errors:Z.array(Z.string()).optional()}).optional(),jobDetails:Z.object({jobType:Z.string(),priority:Z.number(),retryCount:Z.number()}).optional(),metadata:k});var IZ=Z.record(Z.string(),Z.unknown());class QA{logger;schema;jobTypeName;constructor(A,$){this.logger=A,this.schema=$.schema,this.jobTypeName=$.jobTypeName}validateAndParse(A){if(!this.schema)throw Error(`${this.jobTypeName}: No schema provided. Override validateAndParse() or provide a schema.`);let $=this.schema.safeParse(A);if(!$.success)return this.logger.warn(`Invalid ${this.jobTypeName} job data`,{data:A,validationError:$.error.issues}),null;return this.logger.debug(`${this.jobTypeName} job data validation successful`,{data:this.summarizeDataForLog($.data)}),$.data}async onError(A,$,H,Y){this.logger.error(`${this.jobTypeName} job error handler triggered`,{jobId:H,errorMessage:A.message,errorStack:A.stack,data:this.summarizeDataForLog($)})}async reportProgress(A,$){await A.report({progress:$.progress,total:$.total??100,message:$.message})}summarizeDataForLog(A){let $=IZ.safeParse(A);return $.success?$.data:{}}}import{createClient as iH}from"@libsql/client";var kA=q("job_queue",{id:D("id").primaryKey().$defaultFn(()=>Q()),type:D("type").notNull(),data:D("data").notNull(),result:D("result",{mode:"json"}),source:D("source"),metadata:D("metadata",{mode:"json"}).$type().notNull(),status:D("status",{enum:["pending","processing","completed","failed"]}).notNull().default("pending"),priority:L("priority").notNull().default(0),retryCount:L("retryCount").notNull().default(0),maxRetries:L("maxRetries").notNull().default(3),lastError:D("lastError"),createdAt:L("createdAt").notNull().$defaultFn(()=>Date.now()),scheduledFor:L("scheduledFor").notNull().$defaultFn(()=>Date.now()),startedAt:L("startedAt"),completedAt:L("completedAt")},(A)=>({queueReadyIdx:w("idx_job_queue_ready").on(A.status,A.priority,A.scheduledFor),jobTypeIdx:w("idx_job_queue_type").on(A.type,A.status),jobSourceIdx:w("idx_job_queue_source").on(A.source)}));var Z4=Z.looseObject({deduplicationKey:Z.string().optional()});class O{callback;heartbeatInterval;constructor(A){this.callback=A}static from(A){if(!A)return;return new O(A)}createSub(A){let{scale:$}=A??{};if($){let{start:H,end:Y}=$,X=Y-H;return new O(async(G)=>{let W=H+G.progress/(G.total??100)*X;await this.callback({...G,progress:W,total:100})})}return new O(this.callback)}async report(A){await this.callback(A)}startHeartbeat(A,$=5000){this.stopHeartbeat(),this.heartbeatInterval=setInterval(()=>{this.report({message:A,progress:0}).catch(()=>{})},$)}stopHeartbeat(){if(this.heartbeatInterval)clearInterval(this.heartbeatInterval),this.heartbeatInterval=void 0}toCallback(){return this.callback}}var S4=Z.preprocess((A)=>{if(typeof A!=="string")return A;return JSON.parse(A)},Z.record(Z.string(),Z.unknown()));var pZ=Z.object({id:Z.string(),type:Z.string(),data:Z.string(),status:Z.enum(["pending","processing","completed","failed"]),source:Z.string().nullable(),priority:Z.number(),retryCount:Z.number(),maxRetries:Z.number(),lastError:Z.string().nullable(),createdAt:Z.number(),scheduledFor:Z.number(),startedAt:Z.number().nullable(),completedAt:Z.number().nullable(),metadata:k,result:Z.unknown().nullable().optional()});function o(A,$,H){return async(Y)=>{let{type:X,data:G,toolContext:W=null,options:P}=Y,{metadata:K,...V}=P??{},N={source:$,...P?.rootJobId&&{rootJobId:P.rootJobId},...V,metadata:{operationType:"data_processing",pluginId:$,...W&&{interfaceType:W.interfaceType,channelId:W.channelId},...K}},F=H&&!X.includes(":")?`${$}:${X}`:X;return A.enqueue({type:F,data:G,options:N})}}function t(A,$){return async(H,Y)=>{let X=Q(),G=H.map((P)=>({...P,type:P.type.includes(":")?P.type:`${$}:${P.type}`})),W={...Y,source:$,rootJobId:X,metadata:{...Y?.metadata,operationType:"batch_processing",pluginId:$}};return await A.enqueueBatch(G,W,X,$),X}}function e(A,$){return(H,Y)=>{let X=H.includes(":")?H:`${$}:${H}`;A.registerHandler(X,Y,$)}}var cZ=Z.custom((A)=>typeof A==="object"&&A!==null&&("safeParse"in A)),uZ=Z.object({name:Z.string(),schema:cZ});function EA(A){return uZ.safeParse(A).success}function dZ(A){if(!A)return;return{status:A.status,message:A.message,lastCheck:A.lastCheck?.toISOString(),details:A.details}}function fA(A){return{model:A.model,version:A.version,uptime:A.uptime,entities:A.entities,entityCounts:A.entityCounts,embeddings:A.embeddings,ai:A.ai,daemons:A.daemons.map(($)=>({name:$.name,pluginId:$.pluginId,status:$.status,health:dZ($.health)})),endpoints:A.endpoints,interactions:A.interactions}}function lZ(A){let $=M.safeParse(A);return $.success?$.data:"user"}function I(A){let $=J(A.metadata),H=typeof $.channelName==="string"?$.channelName:void 0;return{id:A.id,sessionId:A.sessionId,interfaceType:A.interfaceType,channelId:A.channelId,channelName:H,startedAt:A.started,lastActiveAt:A.lastActive,createdAt:A.created,updatedAt:A.updated,metadata:$}}function JA(A){return{id:A.id,conversationId:A.conversationId,role:lZ(A.role),content:A.content,timestamp:A.timestamp,metadata:J(A.metadata)}}function TA(A){return WA.parse(A)}function SA(A){return KA.parse(A)}function xA(A){return async()=>{return fA(await A.getAppInfo())}}function yA(A,$){return{get:()=>TA(A.getIdentity()),getProfile:()=>SA(A.getProfile()),getAppInfo:$}}function zA(A,$,H){let Y=A.getMessageBus();return{send:async(G)=>{return Y.send({...G,sender:$})},subscribe:(G,W)=>{if(EA(G)){let P=G,K=W,V=async(N)=>{let F=P.schema.safeParse(N.payload);if(!F.success)return H.warn(`Invalid payload for channel ${P.name}`,{error:F.error.message}),{noop:!0};let{payload:B,...R}=N;return K(F.data,R)};return Y.subscribe(P.name,V)}return Y.subscribe(G,W)}}}function mA(A,$){let H=A.getJobQueueService();return{...A.jobs,enqueue:o(H,$,!0),enqueueBatch:t(A.jobs,$),registerHandler:e(H,$)}}function hA(A){let $=A.getPermissionService();return{assertEntityActionAllowed:(H,Y,X)=>{$.assertEntityActionAllowed(H,Y,X.userPermissionLevel)}}}function jA(A){return{get:async($)=>{let Y=await A.getConversationService().getConversation($);return Y?I(Y):null},search:async($)=>{return(await A.getConversationService().searchConversations($)).map(I)},list:async($)=>{return(await A.getConversationService().listConversations($)).map(I)},getMessages:async($,H)=>{return(await A.getConversationService().getMessages($,H)).map(JA)},countMessages:async($)=>{return A.getConversationService().countMessages($)}}}function vA(A,$){return{registerHandler:(H,Y)=>{A.registerEvalHandler($,H,Y)}}}function IA(A){return{register:($,H)=>{A.getInsightsRegistry().register($,H)}}}function gA(A,$){return{register:(H)=>{A.registerEndpoint({...H,pluginId:$})}}}function bA(A,$){return{register:(H)=>{A.registerInteraction({...H,pluginId:$})}}}function f(A,$,H){let Y=A.getEntityService(),X=A.getLogger().child($),G=A.getDomain(),W=A.getLocalSiteUrl(),P=A.shouldPreferLocalUrls(),K=A.getThemeCSS(),V=xA(A),N=A.getAttachmentRegistry(),F=A.getRuntimeUploadRegistry(),B=A.getRuntimeState();return{pluginId:$,logger:X,entityService:Y,semantic:{project:(R)=>Y.projectSemanticSpace(R)},identity:yA(A,V),appInfo:V,judge:(R)=>A.judge(R),domain:G,siteUrl:G?`https://${G}`:void 0,localSiteUrl:W,previewUrl:G?`https://${pA(G)}`:void 0,preferLocalUrls:P,themeCSS:K,entityDisplay:H?.entityDisplay,spaces:A.getSpaces(),permissions:hA(A),messaging:zA(A,$,X),jobs:mA(A,$),attachments:N,uploads:F,runtimeState:B,recurringChecks:A.getRecurringChecks($),conversations:jA(A),dataDir:A.getDataDir(),eval:vA(A,$),insights:IA(A),endpoints:gA(A,$),interactions:bA(A,$)}}function iZ(A){return A.replace(/:/g,"-")}function nZ(A){return A.split(/[:.-]/).map(($)=>$.charAt(0).toUpperCase()+$.slice(1)).join(" ")}var AA=new Map;async function dA(A,$,H){let Y=AA.get($);if(Y!==void 0)return Y;let X=iZ($),G;try{G=await A.getEntity({entityType:"prompt",id:X})}catch{return H}if(G?.content){let W=uA(G.content,Z.record(Z.string(),Z.unknown())).content;return AA.set($,W),W}try{let W=nZ($),P=cA(H,{title:W,target:$});await A.createEntity({entity:{id:X,entityType:"prompt",content:P,metadata:{title:W,target:$,slug:X}}})}catch{}return AA.set($,H),H}function g(A){let $=A.getEntityService(),H=A.getEntityRegistry(),Y=A.getDataSourceRegistry();return{register:(X,G,W,P)=>{H.registerEntityType(X,G,W,P)},getAdapter:(X)=>{try{return H.getAdapter(X)}catch{return}},extendFrontmatterSchema:(X,G)=>{H.extendFrontmatterSchema(X,G)},getEffectiveFrontmatterSchema:(X)=>{return H.getEffectiveFrontmatterSchema(X)},registerCreateInterceptor:(X,G)=>{H.registerCreateInterceptor(X,G)},registerUploadSaveHandler:(X)=>{H.registerUploadSaveHandler(X)},getUploadSaveHandler:(X)=>{return H.getUploadSaveHandler(X)},update:async(X)=>{return $.updateEntity({entity:X})},registerDataSource:(X)=>{Y.register(X)}}}function b(A){return{resolve:($,H)=>{return dA(A,$,H)}}}function lA(A,$,H){let Y=f(A,$,H),X=A.getEntityService();return{...Y,entityService:X,entities:g(A),ai:{query:(G,W)=>A.query(G,W),generate:async(G)=>{return A.generateContent(G)},generateObject:async(G,W,P)=>{return A.generateObject(G,W,P)},generateImage:async(G,W)=>{return A.generateImage(G,W)},canGenerateImages:()=>{return A.canGenerateImages()}},prompts:b(X),permissions:Y.permissions}}function nA(A,$,H){let Y=!1,X=!1;if(A.jobs.registerHandler(H.job.type,H.job.handler),H.initialSync){let G=H.initialSync;A.messaging.subscribe("sync:initial:completed",async()=>{if(Y)return{success:!0};if(Y=!0,!(await G.shouldEnqueue?.()??!0))return $.info("Skipping derived entity projection initial sync",{projectionId:H.id,targetType:H.targetType}),{success:!0};return X=await iA(A,$,H,G.jobData,aZ(G.jobOptions),"initial-sync"),{success:!0}})}if(H.sourceChange){let G=H.sourceChange,W=new Set(G.sourceTypes),P=G.events??["entity:created","entity:updated"],K=async(V)=>{if(G.requireInitialSync&&!Y)return{success:!0};let N=V.payload,F=rZ(G,N);if(!F||!W.has("*")&&!W.has(F))return{success:!0};if(!(await G.shouldEnqueue?.(N)??!0))return{success:!0};let R=await G.jobData(N);if(!R)return{success:!0};return await iA(A,$,H,R,G.jobOptions?.(N),"source-change"),{success:!0}};for(let V of P)A.messaging.subscribe(V,K)}return{hasObservedInitialSync:()=>Y,hasQueuedInitialSync:()=>X}}function rZ(A,$){if(A.sourceType)return A.sourceType;if(A.sourceKind&&A.sourceKind!=="entity")return A.sourceKind;return $.entityType}async function iA(A,$,H,Y,X,G){try{return await A.jobs.enqueue({type:H.job.type,data:Y,...X?{options:X}:{}}),$.info("Queued derived entity projection",{projectionId:H.id,targetType:H.targetType,reason:G}),!0}catch(W){return $.error("Failed to queue derived entity projection",{projectionId:H.id,targetType:H.targetType,reason:G,error:_(W)}),!1}}function aZ(A){return typeof A==="function"?A():A}var sZ=Z.object({toolName:Z.string(),args:Z.unknown(),progressToken:Z.union([Z.string(),Z.number()]).optional(),hasProgress:Z.boolean().optional(),interfaceType:Z.string(),userId:Z.string(),conversationId:Z.string().optional(),channelId:Z.string().optional(),channelName:Z.string().optional(),runId:Z.string().optional(),toolCallId:Z.string().optional(),userPermissionLevel:Z.enum(["anchor","trusted","public"]).optional(),signal:Z.custom((A)=>A instanceof AbortSignal).optional()}),oZ=Z.object({resourceUri:Z.string()});class C{id;version;description;packageName;config;context;get logger(){return this.context?.logger??j.createFresh({context:this.id})}constructor(A,$,H,Y){this.id=A,this.packageName=$.name,this.version=$.version,this.description=$.description??`${$.name} plugin`;let X=Y.safeParse(H);if(!X.success)throw new n(A,X.error.issues.map((G)=>({path:G.path.map(String).join("."),code:G.code,message:G.message})));this.config=X.data}setupMessageHandlers(A){A.messaging.subscribe(`plugin:${this.id}:tool:execute`,async($)=>{try{let H=sZ.safeParse($.payload);if(!H.success)return{success:!1,error:"Invalid tool execution request format"};let{toolName:Y,args:X,progressToken:G,hasProgress:W,interfaceType:P,userId:K,conversationId:V,channelId:N,channelName:F,runId:B,toolCallId:R,userPermissionLevel:XA,signal:GA}=H.data,PA=(await this.getTools()).find((p)=>p.name===Y);if(!PA)return{success:!1,error:`Tool not found: ${Y}`};let _Z={interfaceType:P,userId:K,...V&&{conversationId:V},...N&&{channelId:N},...F&&{channelName:F},...B&&{runId:B},...R&&{toolCallId:R},...XA&&{userPermissionLevel:XA},...GA&&{signal:GA},...W&&G!==void 0&&{progressToken:G,sendProgress:async(p)=>{await A.messaging.send({type:`plugin:${this.id}:progress`,payload:{progressToken:G,notification:p}})}}};return{success:!0,data:await PA.handler(X,_Z)}}catch(H){return this.logger.error("Tool execution error",H),{success:!1,error:_(H)}}}),A.messaging.subscribe(`plugin:${this.id}:resource:get`,async($)=>{try{let H=oZ.safeParse($.payload);if(!H.success)return{success:!1,error:"Invalid resource get request format"};let{resourceUri:Y}=H.data,G=(await this.getResources()).find((P)=>P.uri===Y);if(!G)return{success:!1,error:`Resource not found: ${Y}`};return{success:!0,data:await G.handler()}}catch(H){return this.logger.error("Resource fetch error",H),{success:!1,error:_(H)}}})}async onRegister(A){}async onReady(A){}async ready(){await this.onReady(this.getContext())}async getCapabilities(){let A=await this.getInstructions();return{tools:await this.getTools(),resources:await this.getResources(),...A&&{instructions:A}}}async getTools(){return[]}async getResources(){return[]}async getInstructions(){return}async shutdown(){await this.onShutdown()}async onShutdown(){}getContext(){if(!this.context)throw Error(`Plugin ${this.id}: Plugin not registered yet`);return this.context}determineUserPermissionLevel(A){return"public"}createProgressBridge(A){if(!A)return;let $=this.context;if(!$)return;let H=this.id;return O.from(async(Y)=>{await $.messaging.send({type:`plugin:${H}:progress`,payload:{progressToken:A,notification:{progress:Y.progress,total:Y.total,message:Y.message}}})})}}var j6=Z.object({});class rA extends C{type="entity";entityActionPolicy;derivedEntityProjectionControllers=new Map;constructor(A,$,H,Y,X){super(A,$,H,Y);if(X!==void 0)this.entityActionPolicy=X}async register(A,$){let H=lA(A,this.id,$);if(this.context=H,this.setupMessageHandlers(H),H.entities.register(this.entityType,this.schema,this.adapter,this.getEntityTypeConfig()),this.interceptCreate!==rA.prototype.interceptCreate)H.entities.registerCreateInterceptor(this.entityType,(K,V)=>this.interceptCreate(K,V,H));let Y=this.createGenerationHandler(H);if(Y)H.jobs.registerHandler(`${this.entityType}:generation`,Y);let X=this.getTemplates();if(X&&Object.keys(X).length>0)A.registerTemplates(X,this.id);let G=this.getDataSources();for(let K of G)H.entities.registerDataSource(K);let W=this.getDerivedEntityProjections(H);for(let K of W){let V=nA(H,this.logger,K);this.derivedEntityProjectionControllers.set(K.id,V)}await this.onRegister(this.context);let P=await this.getInstructions();return{tools:[],resources:[],...P&&{instructions:P}}}async interceptCreate(A,$,H){return{kind:"continue",input:A}}createGenerationHandler(A){return null}getTemplates(){return null}getDataSources(){return[]}getEntityTypeConfig(){return}getDerivedEntityProjections(A){return[]}getDerivedEntityProjectionController(A){return this.derivedEntityProjectionControllers.get(A)}}function aA(A){return oA(A)}function sA(A){if(!A)return;return{...A.userPermissionLevel&&{userPermissionLevel:A.userPermissionLevel},...A.interfaceType&&{interfaceType:A.interfaceType},...A.channelId&&{channelId:A.channelId},...A.channelName&&{channelName:A.channelName},...A.actor&&{actor:A.actor},...A.source&&{source:A.source},...A.attachments&&{attachments:A.attachments}}}function tA(A){return{chat:async($,H,Y,X)=>{let G=sA(Y),W=X?await A.chat($,H,G,X):await A.chat($,H,G);return aA(W)},confirmPendingAction:async($,H,Y,X,G)=>{let W=sA(X);if(!W)throw Error("Confirmation requires caller context.");let P=G?await A.confirmPendingAction($,H,Y,W,G):await A.confirmPendingAction($,H,Y,W);return aA(P)},invalidate:()=>{A.invalidateAgent()}}}function eA(A,$,H){let Y=f(A,$,H),X=A.getMCPService(),G=A.getPermissionService(),W=tA(A.getAgentService());return{...Y,mcpTransport:X,agent:W,permissions:{...Y.permissions,getUserLevel:(P,K,V)=>{return G.determineUserLevel(P,K,V)}},daemons:{register:(P,K)=>{let V=`${$}:${P}`;A.registerDaemon(V,K,$),Y.logger.debug(`Registered daemon: ${V}`)}},conversations:{...Y.conversations,start:async(P)=>{return A.getConversationService().startConversation(P)},addMessage:async(P)=>{await A.getConversationService().addMessage(P)},updateMetadata:async(P)=>{return A.getConversationService().updateConversationMetadata(P)},delete:async(P)=>{return A.getConversationService().deleteConversation(P)}},tools:{listForPermissionLevel:(P)=>{return A.listToolsForPermissionLevel(P)}},apiRoutes:{getRoutes:()=>{return A.getPluginApiRoutes()},getMessageBus:()=>{return A.getMessageBus()}},webRoutes:{getRoutes:()=>{return A.getPluginWebRoutes()}},plugins:{has:(P)=>A.hasPlugin(P)}}}var tZ=3600000;class ZA extends C{type="interface";daemon;jobTrackingEntries=new Map;jobTrackingTtlMs=tZ;async register(A,$){let H=eA(A,this.id,$);if(this.context=H,this.initializeDaemon(),this.daemon)await this.registerDaemon(H);return this.setupMessageHandlers(H),await this.onRegister(H),this.getCapabilities()}async onRegister(A){}async registerDaemon(A){if(!this.daemon)return;A.daemons.register(this.id,this.daemon),A.logger.debug(`Registered daemon for interface: ${this.id}`)}createDaemon(){return}requiresDaemonStartup(){return!1}getWebRoutes(){return[]}initializeDaemon(){let A=this.createDaemon();if(A)this.daemon=A}async handleProgressEvent(A,$){}cleanupExpiredEntries(){let A=Date.now(),$=[];for(let[H,Y]of this.jobTrackingEntries)if(A-Y.createdAt>this.jobTrackingTtlMs)$.push(H);for(let H of $)this.jobTrackingEntries.delete(H)}ownsJob(A,$){return this.jobTrackingEntries.has(A)||$!==void 0&&this.jobTrackingEntries.has($)}getJobTracking(A,$){let H=this.jobTrackingEntries.get(A);if(H)return H.info;if($){let Y=this.jobTrackingEntries.get($);if(Y)return Y.info}return}setJobTracking(A,$){this.cleanupExpiredEntries(),this.jobTrackingEntries.set(A,{info:$,createdAt:Date.now()})}removeJobTracking(A){this.jobTrackingEntries.delete(A)}async createJobWithTracking(A,$){let Y=await this.getContext().jobs.enqueue(A);return this.setJobTracking(Y,$),Y}async createBatchWithTracking(A,$,H){let X=await this.getContext().jobs.enqueueBatch(A,H);return this.setJobTracking(X,$),X}}function x(A,$){return{state:$,toolName:A.toolName,conversationId:A.conversationId,interfaceType:A.interfaceType,...A.channelId!==void 0&&{channelId:A.channelId},...A.channelName!==void 0&&{channelName:A.channelName},...A.error!==void 0&&{error:A.error}}}function AZ(A,$){return A.pendingConfirmations?.some((H)=>H.toolName===$)===!0||eZ(A.cards).some((H)=>H.toolName===$)}function eZ(A){return A?.filter(($)=>$.kind==="tool-approval"&&$.state==="approval-requested")??[]}var $A=1e5,A$=[".md",".txt",".markdown"],Z$=["text/plain","text/markdown","text/x-markdown"],$$=/https?:\/\/[^\s<>"{}|\\^`[\]]+?(?=[,;:\s]|$)/gi,H$=["meet.google.com","zoom.us","teams.microsoft.com","whereby.com","gather.town","calendly.com","cal.com","discord.com","discord.gg","cdn.discordapp.com","media.discordapp.net","giphy.com","tenor.com","wetransfer.com","file.io"],Y$=Z.object({captureUrls:Z.boolean().default(!1),blockedUrlDomains:Z.array(Z.string()).default(H$)});function ZZ(A,$){if($&&Z$.some((H)=>$.startsWith(H)))return!0;return A$.some((H)=>A.toLowerCase().endsWith(H))}function $Z(A){return A<=$A}function HZ(A){if(A.includes(0))return!1;try{return new TextDecoder("utf-8",{fatal:!0}).decode(A),!0}catch{return!1}}function YZ(A,$){return`User uploaded a file "${A}":
3
3
 
4
4
  ${$}`}function XZ(A,$){let H=A.match($$)??[];return[...new Set(H)].filter((Y)=>{try{let{hostname:X}=new URL(Y);return!$.some((G)=>X===G||X.endsWith(`.${G}`))}catch{return!1}})}function HA(A,$){let H=A.attachment.source;if((H?.entityType==="document"||H?.entityType==="image")&&H.entityId)return{entityType:H.entityType,id:H.entityId};return X$(A.attachment.downloadUrl??A.attachment.url,$)}function X$(A,$="http://local"){if(!A)return;let H;try{H=new URL(A,$)}catch{return}let Y=H.searchParams.get("id")?.trim();if(!Y)return;if(H.pathname==="/api/chat/attachments/document")return{entityType:"document",id:Y};if(H.pathname==="/api/chat/attachments/image")return{entityType:"image",id:Y};return}function GZ(A,$){let H=G$($,A==="document"?/^application\/pdf$/i:/^image\/[a-z0-9.+-]+$/i);if(!H)return;if(A==="document"&&H.mimeType.toLowerCase()!=="application/pdf")return;return H}function PZ(A,$,H,Y){let X=A?.filename;if(typeof X==="string"&&X.trim())return X;if(H==="document")return`${$}.pdf`;let G=A?.format;if(typeof G==="string"&&G.trim())return`${$}.${G==="jpeg"?"jpg":G}`;let W=Y.split("/")[1]?.split("+")[0]??"png";return`${$}.${W}`}function G$(A,$){let H=A.match(/^data:([^;]+);base64,(.+)$/i),Y=H?.[1],X=H?.[2];if(!Y||!X||!$.test(Y))return;let G=Buffer.from(X,"base64");return{mimeType:Y,data:G.buffer.slice(G.byteOffset,G.byteOffset+G.byteLength)}}async function KZ({entityRef:A,userLevel:$,getEntity:H,getVisibleEntity:Y}){let X=WZ($),G=await Y(A,X);if(G)return{status:"visible",entity:G};return Boolean(await H(A))?{status:"denied"}:{status:"missing"}}function VZ(A){return A==="anchor"||A==="trusted"}function DZ(A,$){A.messaging.subscribe("job-progress",async(H)=>{try{let Y=s.safeParse(H.payload);if(!Y.success)return $.onInvalidSchema(),{success:!1};let X=Y.data;return await $.onProgress(X,X.metadata),{success:!0}}catch(Y){return $.onError(Y),{success:!1}}})}function NZ(A){let $=A.status==="completed"?"\u2705":"\u274C",H=A.status==="completed"?"completed":"failed",Y=A.metadata.operationType.replace(/_/g," "),X=A.metadata.operationTarget?`: ${A.metadata.operationTarget}`:"",G=`${$} **${Y}${X}** ${H}`;if(A.message)G+=`
5
5
  ${A.message}`;return G}function FZ(A){let $=A.metadata.operationType.replace(/_/g," "),H=A.metadata.operationTarget?`: ${A.metadata.operationTarget}`:"",Y=`\uD83D\uDD04 **${$}${H}**`;if(A.progress&&A.progress.total>0)Y+=` ${A.progress.current}/${A.progress.total} (${A.progress.percentage}%)`;if(A.message)Y+=`
6
6
  ${A.message}`;return Y}var P$=Z.enum(["tool:invoking","tool:completed","tool:failed"]),W$=Z.object({toolName:Z.string().min(1),conversationId:Z.string().min(1),interfaceType:Z.string().min(1),channelId:Z.string().min(1).optional(),channelName:Z.string().min(1).optional(),toolCallId:Z.string().min(1).optional(),error:Z.string().optional()}),K$=["tool:invoking","tool:completed","tool:failed"];function UZ(A,$){for(let H of K$)A.messaging.subscribe(H,async(Y)=>{try{let X=P$.safeParse(Y.type),G=W$.safeParse(Y.payload);if(!X.success||!G.success)return $.onInvalidSchema(),{success:!1};return await $.onToolActivity({type:X.data,...G.data}),{success:!0}}catch(X){return $.onError(X),{success:!1}}})}class YA{scope;fibers;delayMs;clock;closePromise=null;closed=!1;constructor(A,$){this.delayMs=A,this.clock=$?.clock,this.scope=U.runSync(E.make()),this.fibers=U.runSync(E.extend(v.make(),this.scope))}schedule(A,$){if(this.closed)return;let H=U.sleep(this.delayMs).pipe(U.andThen(U.sync($))),Y=this.clock?U.withClock(H,this.clock):H,X=U.runFork(Y);v.unsafeSet(this.fibers,A,X)}close(){return this.closed=!0,this.closePromise??=U.runPromise(E.close(this.scope,S.void)),this.closePromise}}var RZ=500,V$=500;class D$ extends ZA{isUploadableTextFile(A,$){return ZZ(A,$)}isFileSizeAllowed(A){return $Z(A)}formatFileUploadMessage(A,$){return YZ(A,$)}getMaxFileUploadBytes(){return $A}isLikelyTextContent(A){return HZ(A)}async resolveNativeArtifactDelivery(A){let $=[],H=new Set;if(!this.context||!A.cards)return{files:$,deniedCardIds:H};let Y=this.context;for(let X of A.cards){if(X.kind!=="attachment")continue;let G=HA(X,A.displayBaseUrl);if(!G)continue;let W=await KZ({entityRef:G,userLevel:A.userPermissionLevel,getEntity:(K)=>Y.entityService.getEntity(K),getVisibleEntity:(K,V)=>Y.entityService.getEntity({...K,visibilityScope:V})});if(W.status==="denied"){H.add(X.id);continue}if(W.status!=="visible")continue;if(!VZ(A.userPermissionLevel))continue;if(typeof W.entity.content!=="string")continue;let P=GZ(G.entityType,W.entity.content);if(!P)continue;if(A.maxBytes!==void 0&&P.data.byteLength>A.maxBytes){this.logger.debug("Skipping oversized native artifact upload",{cardId:X.id,sizeBytes:P.data.byteLength});continue}$.push({cardId:X.id,data:new Uint8Array(P.data),filename:X.attachment.filename??PZ(W.entity.metadata,G.id,G.entityType,P.mimeType),mimeType:P.mimeType})}return{files:$,deniedCardIds:H}}extractCaptureableUrls(A,$){return XZ(A,$)}async captureUrlViaAgent(A,$,H,Y,X){if(!this.context)return;let G=this.context.permissions.getUserLevel(Y,H,X);await this.context.agent.chat(`Save this link: ${A}`,`links-${$}`,{userPermissionLevel:G,interfaceType:Y,channelId:$})}progressEvents=new Map;progressCleanupSupervisor=new YA(V$);sendMessageWithId(A){return Promise.resolve(void 0)}editMessage(A){return Promise.resolve(!1)}supportsMessageEditing(){return!1}progressCallback;isProcessingInput=!1;currentChannelId=null;bufferedCompletionMessages=[];progressMessageTracking=new Map;agentResponseTracking=new Map;pendingToolCompletions=new Map;registerProgressCallback(A){this.progressCallback=A;let $=Array.from(this.progressEvents.values()).filter((H)=>H.status==="processing");A($)}unregisterProgressCallback(){delete this.progressCallback}trackAgentResponseForJob(A,$,H){this.agentResponseTracking.set(A,{messageId:$,channelId:H,lastUpdate:Date.now()}),this.logger.debug("Tracking agent response for job",{jobId:A,messageId:$,channelId:H})}async onRegister(A){await super.onRegister(A),DZ(A,{onProgress:async($,H)=>{await this.handleProgressEvent($,H)},onError:($)=>{this.logger.error("Error handling progress event",{error:$,interfaceId:this.id})},onInvalidSchema:()=>{this.logger.warn("Invalid progress event schema",{interfaceId:this.id})}}),UZ(A,{onToolActivity:async($)=>{await this.handleToolActivityEvent($)},onError:($)=>{this.logger.error("Error handling tool activity event",{error:$,interfaceId:this.id})},onInvalidSchema:()=>{this.logger.warn("Invalid tool activity event schema",{interfaceId:this.id})}}),this.logger.debug("Message interface registered with progress and tool handlers",{id:this.id})}async onShutdown(){await this.progressCleanupSupervisor.close(),this.progressEvents.clear(),this.progressMessageTracking.clear(),this.agentResponseTracking.clear(),this.pendingToolCompletions.clear(),this.bufferedCompletionMessages=[],this.isProcessingInput=!1,this.currentChannelId=null,delete this.progressCallback,await super.onShutdown()}async handleProgressEvent(A,$){if(!this.shouldHandleProgressEvent(A))return;this.updateProgressState(A);let H=A.metadata.channelId??null,Y=A.metadata.rootJobId;if(await this.handleProcessingProgress(A,H,Y))return;if(A.status==="completed"||A.status==="failed")await this.handleTerminalProgress(A,H,Y);await this.onProgressUpdate(A),this.logProgressProcessed(A)}shouldHandleProgressEvent(A){let $=A.metadata.interfaceType;return!$||$===this.id}updateProgressState(A){this.progressEvents.set(A.id,A),this.notifyProgressCallback()}async handleProcessingProgress(A,$,H){if(A.status!=="processing"||!this.supportsMessageEditing())return!1;let Y=this.agentResponseTracking.get(A.id);if(Y)return await this.editTrackedProgressMessage(A,Y),!0;let X=this.formatProgressOutput(A),G=this.progressMessageTracking.get(H),W=Date.now();if(G){if(W-G.lastUpdate>=RZ)await this.editMessage({channelId:G.channelId,messageId:G.messageId,newMessage:X}),G.lastUpdate=W}else if($&&!this.isProcessingInput)await this.sendInitialProgressMessage(H,$,X,W);return!1}async editTrackedProgressMessage(A,$){let H=Date.now();if(H-$.lastUpdate<RZ)return;await this.editMessage({channelId:$.channelId,messageId:$.messageId,newMessage:this.formatProgressOutput(A)}),$.lastUpdate=H}async sendInitialProgressMessage(A,$,H,Y){let X=await this.sendMessageWithId({channelId:$,message:H});if(!X)return;this.progressMessageTracking.set(A,{messageId:X,channelId:$,lastUpdate:Y}),this.logger.debug("Tracking progress message",{rootJobId:A,messageId:X,channelId:$})}async handleTerminalProgress(A,$,H){let Y=this.formatCompletionOutput(A),X=this.progressMessageTracking.get(H),G=this.agentResponseTracking.get(A.id);if(this.logger.debug("Completion event received",{eventId:A.id,rootJobId:H,hasProgressTracking:!!X,hasAgentTracking:!!G,supportsEditing:this.supportsMessageEditing()}),this.supportsMessageEditing())await this.updateTrackedCompletion(A,Y,X,G,H);if(!X&&!G&&$)this.sendOrBufferCompletionMessage(Y,$);this.scheduleProgressCleanup(A.id)}async updateTrackedCompletion(A,$,H,Y,X){if(Y){if(await this.editMessage({channelId:Y.channelId,messageId:Y.messageId,newMessage:$}),this.agentResponseTracking.delete(A.id),H)this.progressMessageTracking.delete(X);return}if(H)await this.editMessage({channelId:H.channelId,messageId:H.messageId,newMessage:$}),this.progressMessageTracking.delete(X)}sendOrBufferCompletionMessage(A,$){if(this.isProcessingInput){this.bufferedCompletionMessages.push({message:A,channelId:$});return}this.sendMessageToChannel({channelId:$,message:A})}scheduleProgressCleanup(A){this.progressCleanupSupervisor.schedule(A,()=>{this.progressEvents.delete(A),this.notifyProgressCallback()})}logProgressProcessed(A){this.logger.debug("Progress event processed",{eventId:A.id,status:A.status,operationType:A.metadata.operationType,targetChannel:A.metadata.channelId})}formatProgressOutput(A){return FZ(A)}formatCompletionOutput(A){return NZ(A)}async onProgressUpdate(A){}async handleToolActivityEvent(A){if(A.interfaceType!==this.id)return;switch(A.type){case"tool:invoking":this.pendingToolCompletions.delete(this.getToolCompletionKey(A)),await this.handleToolStatusUpdate(x(A,"running"));return;case"tool:completed":if(this.isProcessingInput){this.pendingToolCompletions.set(this.getToolCompletionKey(A),A);return}await this.handleToolStatusUpdate(x(A,"completed"));return;case"tool:failed":this.pendingToolCompletions.delete(this.getToolCompletionKey(A)),await this.handleToolStatusUpdate(x(A,"failed"));return}}async handleToolStatusUpdate(A){}async handleAgentResponseToolStatuses(A,$){if(this.pendingToolCompletions.size===0)return;let H=Array.from(this.pendingToolCompletions.values()).filter((Y)=>Y.interfaceType===this.id&&Y.conversationId===$);for(let Y of H){this.pendingToolCompletions.delete(this.getToolCompletionKey(Y));let X=AZ(A,Y.toolName)?"awaiting-approval":"completed";await this.handleToolStatusUpdate(x(Y,X))}}getToolCompletionKey(A){return`${A.interfaceType}:${A.conversationId}:${A.toolName}`}notifyProgressCallback(){if(this.progressCallback){let A=Array.from(this.progressEvents.values());this.progressCallback(A)}}getProgressEvents(){return Array.from(this.progressEvents.values())}getActiveProgressEvents(){return Array.from(this.progressEvents.values()).filter((A)=>A.status==="processing")}startProcessingInput(A=null){this.isProcessingInput=!0,this.currentChannelId=A}endProcessingInput(){this.isProcessingInput=!1;for(let{message:A,channelId:$}of this.bufferedCompletionMessages)this.sendMessageToChannel({channelId:$,message:A});this.bufferedCompletionMessages=[],this.currentChannelId=null}getCurrentChannelId(){return this.currentChannelId}}function LZ(A,$,H){let Y=f(A,$,H),X=A.getEntityService(),G=A.getRenderService(),W=A.getContentService();return{...Y,entityService:X,entities:g(A),webRoutes:{getRoutes:()=>A.getPluginWebRoutes()},templates:{register:(P,K)=>{A.registerTemplates(P,K??$)},format:(P,K)=>{return W.formatContent(P,K,{pluginId:$})},parse:(P,K)=>{return W.parseContent(P,K,$)},resolve:async(P,K)=>{return await W.resolveContent(P,K,$)},getCapabilities:(P)=>{let K=P.includes(":")?P:`${$}:${P}`,V=A.getTemplate(K);if(!V)return null;let N=wZ.getCapabilities(V);return{canGenerate:N.canGenerate,canFetch:N.canFetch,canRender:N.canRender,isStaticOnly:N.isStaticOnly}}},views:{get:(P)=>{return G.get(P)??void 0},list:()=>{return G.list()},hasRenderer:(P,K="web")=>{return G.hasRenderer(P,K)},getRenderer:(P,K="web")=>{return G.getRenderer(P,K)},validate:(P,K)=>{return G.validate(P,K)}},prompts:b(X),ai:{query:(P,K)=>A.query(P,K),generate:async(P)=>{return A.generateContent(P)},generateObject:async(P,K,V)=>{return A.generateObject(P,K,V)},generateImage:async(P,K)=>{return A.generateImage(P,K)},canGenerateImages:()=>{return A.canGenerateImages()}},registerInstructions:(P)=>{A.registerInstructions($,P)}}}class N$ extends C{type="service";getApiRoutes(){return[]}getWebRoutes(){return[]}async register(A,$){let H=LZ(A,this.id,$);return this.context=H,this.setupMessageHandlers(H),await this.onRegister(H),this.getCapabilities()}get entityService(){return this.getContext().entityService}registerEntityType(A,$,H,Y){this.getContext().entities.register(A,$,H,Y)}async enqueueJob(A){return this.getContext().jobs.enqueue(A)}async enqueueBatch(A,$){return this.getContext().jobs.enqueueBatch(A,$)}async registerEntityTypes(A){}async registerJobHandlers(A){}async onRegister(A){await this.registerEntityTypes(A),await this.registerJobHandlers(A)}}
7
- export{QA as o,_$ as p,O$ as q,WA as r,KA as s,j6 as t,rA as u,ZA as v,D$ as w,N$ as x,U1 as y,TH as z};
7
+ export{QA as p,_$ as q,O$ as r,WA as s,KA as t,j6 as u,rA as v,ZA as w,D$ as x,N$ as y,U1 as z,TH as A};
8
8
 
9
- //# debugId=952A2F9FFF395E5764756E2164756E21
10
- //# sourceMappingURL=index-w9z1vrm1.js.map
9
+ //# debugId=F84C6E7A488F0D8D64756E2164756E21
10
+ //# sourceMappingURL=index-f4gcns9h.js.map
@@ -55,6 +55,6 @@
55
55
  "import { BasePlugin } from \"../base-plugin\";\nimport type {\n PluginCapabilities,\n IShell,\n PluginRegistrationContext,\n} from \"../interfaces\";\nimport type {\n IEntityService,\n BaseEntity,\n EntityAdapter,\n EntityTypeConfig,\n} from \"@brains/entity-service\";\nimport type {\n BatchOperation,\n EnqueueJobRequest,\n JobOptions,\n} from \"@brains/job-queue\";\nimport type { ServicePluginContext } from \"./context\";\nimport { createServicePluginContext } from \"./context\";\nimport type { ApiRouteDefinition } from \"../types/api-routes\";\nimport type { WebRouteDefinition } from \"../types/web-routes\";\n\n/**\n * Base class for service plugins\n * Service plugins extend core functionality with entity management, job queuing, and AI generation\n */\nexport abstract class ServicePlugin<TConfig, TConfigInput> extends BasePlugin<\n TConfig,\n TConfigInput,\n ServicePluginContext\n> {\n public readonly type = \"service\" as const;\n\n /** Get API routes for this plugin (override in subclass) */\n getApiRoutes(): ApiRouteDefinition[] {\n return [];\n }\n\n /** Get web routes for this plugin (override in subclass) */\n getWebRoutes(): WebRouteDefinition[] {\n return [];\n }\n\n /**\n * Register the plugin with shell - creates ServicePluginContext internally\n */\n override async register(\n shell: IShell,\n registrationContext?: PluginRegistrationContext,\n ): Promise<PluginCapabilities> {\n // Create typed context from shell\n const context = createServicePluginContext(\n shell,\n this.id,\n registrationContext,\n );\n this.context = context;\n\n // Set up message handlers\n this.setupMessageHandlers(context);\n\n // Call lifecycle hook with typed context\n await this.onRegister(context);\n\n return this.getCapabilities();\n }\n\n /**\n * Get the entity service for direct access\n */\n protected get entityService(): IEntityService {\n const context = this.getContext();\n return context.entityService;\n }\n\n /**\n * Helper method to register an entity type\n */\n protected registerEntityType<T extends BaseEntity>(\n entityType: string,\n schema: EntityAdapter<T>[\"schema\"],\n adapter: EntityAdapter<T>,\n config?: EntityTypeConfig,\n ): void {\n const context = this.getContext();\n context.entities.register(entityType, schema, adapter, config);\n }\n\n /**\n * Helper method to enqueue a job\n * Pass toolContext in the request for tool-routed jobs, or omit it for background jobs.\n */\n protected async enqueueJob(request: EnqueueJobRequest): Promise<string> {\n const context = this.getContext();\n return context.jobs.enqueue(request);\n }\n\n /**\n * Helper method to enqueue a batch of operations\n */\n protected async enqueueBatch(\n operations: BatchOperation[],\n options?: JobOptions,\n ): Promise<string> {\n const context = this.getContext();\n return context.jobs.enqueueBatch(operations, options);\n }\n\n /**\n * Override to register entity types during initialization\n */\n protected async registerEntityTypes(\n _context: ServicePluginContext,\n ): Promise<void> {\n // Default implementation does nothing\n // Override in subclasses to register entity types\n }\n\n /**\n * Override to register job handlers during initialization\n */\n protected async registerJobHandlers(\n _context: ServicePluginContext,\n ): Promise<void> {\n // Default implementation does nothing\n // Override in subclasses to register job handlers\n }\n\n /**\n * Override onRegister to add service-specific initialization\n */\n protected override async onRegister(\n context: ServicePluginContext,\n ): Promise<void> {\n // Register entity types first\n await this.registerEntityTypes(context);\n\n // Register job handlers\n await this.registerJobHandlers(context);\n }\n}\n"
56
56
  ],
57
57
  "mappings": "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",
58
- "debugId": "952A2F9FFF395E5764756E2164756E21",
58
+ "debugId": "F84C6E7A488F0D8D64756E2164756E21",
59
59
  "names": []
60
60
  }
@@ -1,5 +1,5 @@
1
1
  // @bun
2
- import{Da as g0}from"./index-bs70092j.js";import{Qa as J}from"./index-wvwq0pm7.js";var H0=J.object({id:J.string(),template:J.string(),content:J.unknown().optional(),dataQuery:J.looseObject({entityType:J.string().optional(),template:J.string().optional(),query:J.looseObject({id:J.string().optional(),limit:J.number().optional(),offset:J.number().optional()}).optional()}).optional(),order:J.number().optional()}),R0=["primary","secondary"],Y0=J.object({show:J.boolean().default(!1),label:J.string().optional(),slot:J.enum(R0).default("primary"),priority:J.number().min(0).max(100).default(50)}).optional(),P0=J.object({id:J.string(),path:J.string(),title:J.string().default(""),pageLabel:J.string().optional(),description:J.string().default(""),sections:J.array(H0).default([]),layout:J.string().default("default"),fullscreen:J.boolean().optional(),pluginId:J.string().optional(),sourceEntityType:J.string().optional(),external:J.boolean().optional(),navigation:Y0}),L$=J.object({routes:J.array(P0),pluginId:J.string()}),N$=J.object({paths:J.array(J.string()).optional(),pluginId:J.string().optional()}),I$=J.object({pluginId:J.string().optional()}),S$=J.object({path:J.string()}),IZ=J.object({label:J.string(),href:J.string(),priority:J.number()});function SZ(F){if(Array.isArray(F))return F.map(SZ);if(!F||typeof F!=="object")return F;if(F instanceof Uint8Array)return F;return Object.fromEntries(Object.entries(F).filter(([,U])=>U!==void 0).map(([U,P])=>[U,SZ(P)]))}var B0=J.object({id:J.string(),toolCallId:J.string().optional(),toolName:J.string(),summary:J.string(),completionSummary:J.string().optional(),preview:J.string().optional(),args:J.unknown()}),O0=J.enum(["approval-requested","approval-responded","output-available","output-denied","output-error"]),q0=J.object({kind:J.literal("tool-approval"),id:J.string(),toolCallId:J.string().optional(),toolName:J.string(),input:J.record(J.string(),J.unknown()).optional(),summary:J.string(),completionSummary:J.string().optional(),preview:J.string().optional(),state:O0,output:J.unknown().optional(),error:J.string().optional()}),z$=q0,A0=J.object({entityType:J.string().optional(),entityId:J.string().optional(),attachmentType:J.string().optional()}),T0=J.object({mediaType:J.string().min(1),url:J.string().min(1),downloadUrl:J.string().min(1).optional(),previewUrl:J.string().min(1).optional(),filename:J.string().min(1).optional(),sizeBytes:J.number().nonnegative().optional(),source:A0.optional()}),w0=J.object({kind:J.literal("attachment"),id:J.string(),jobId:J.string().optional(),title:J.string(),description:J.string().optional(),attachment:T0}),k$=w0,C0=J.object({id:J.string().min(1),title:J.string().min(1).optional(),source:J.string().min(1),url:J.string().min(1).optional(),entityType:J.string().min(1).optional(),entityId:J.string().min(1).optional(),excerpt:J.string().min(1).optional(),provenance:J.record(J.string(),J.unknown()).optional()}),x$=J.object({kind:J.literal("sources"),id:J.string().min(1),title:J.string().min(1).optional(),sources:J.array(C0).min(1)});var v$=J.object({type:J.literal("prompt"),id:J.string().min(1),label:J.string().min(1),prompt:J.string().min(1),description:J.string().min(1).optional()});var b$=J.object({type:J.literal("event"),id:J.string().min(1),label:J.string().min(1),event:J.string().min(1),fromState:J.string().min(1).optional(),description:J.string().min(1).optional()});var j0=J.discriminatedUnion("type",[v$,b$]),g$=J.object({kind:J.literal("actions"),id:J.string().min(1),title:J.string().min(1).optional(),defaultOpen:J.boolean().optional(),actions:J.array(j0).min(1)});var L0=J.discriminatedUnion("kind",[q0,w0,x$,g$]),N0=J.object({toolName:J.string(),args:J.record(J.string(),J.unknown()).optional(),jobId:J.string().optional(),data:J.unknown().optional(),error:J.object({message:J.string(),code:J.string().optional()}).optional()}),I0=J.object({text:J.string(),toolResults:J.array(N0).optional(),cards:J.array(L0).optional(),pendingConfirmations:J.array(B0).optional(),usage:J.object({promptTokens:J.number(),completionTokens:J.number(),totalTokens:J.number()})});function _$(F){return I0.parse(SZ(F))}var S0=J.object({type:J.literal("event"),event:J.string().min(1),fromState:J.string().min(1).optional()}),E$=J.object({conversationId:J.string().min(1),interfaceType:J.string().min(1),channelId:J.string().min(1).optional(),channelName:J.string().min(1),userPermissionLevel:J.enum(["anchor","trusted","public"]),action:S0});var z0=J.enum(["anchor","trusted","public"]),y$=J.object({conversationId:J.string().min(1),message:J.string(),interfaceType:J.string().min(1),channelId:J.string().optional(),channelName:J.string().optional(),userPermissionLevel:z0}),k0=J.object({id:J.string().min(1),source:J.string().min(1),title:J.string().optional(),content:J.string().min(1),provenance:J.record(J.string(),J.unknown()).optional()}),m$=J.object({items:J.array(k0).default([])});var h$=J.object({url:J.string(),authToken:J.string().optional()});var u$=J.object({success:J.boolean(),entityId:J.string().optional(),error:J.string().optional()});var p$={success(F){return{success:!0,...F}},failure(F){return{success:!1,error:F instanceof Error?F.message:String(F)}}};var d$=J.enum(["user","assistant"]);var l$={START:0,INIT:10,FETCH:20,PROCESS:40,GENERATE:50,EXTRACT:60,SAVE:80,COMPLETE:100};var c$=J.object({id:J.string().min(1),trigger:J.string().min(1),playbookId:J.string().min(1),once:J.boolean().default(!0),starterText:J.string().min(1),description:J.string().min(1).optional(),starterPrompt:J.string().min(1)}).strict();var o$=J.object({message:J.string().describe("Natural language response to the query"),summary:J.string().optional().describe("Brief summary if applicable"),topics:J.array(J.string()).optional().describe("Related topics mentioned"),sources:J.array(J.object({id:J.string(),type:J.string(),excerpt:J.string().optional(),relevance:J.number().min(0).max(1).optional()})).optional().describe("Source entities used to answer the query"),metadata:J.record(J.string(),J.unknown()).optional()}).describe("defaultQueryResponse"),r$=J.object({message:J.string()}).describe("simpleTextResponse"),x0=J.object({success:J.boolean(),entityId:J.string().optional(),message:J.string()}).describe("createEntityResponse"),v0=J.object({success:J.boolean(),entityId:J.string(),changes:J.array(J.string()).optional(),message:J.string()}).describe("updateEntityResponse");var uZ=J.object({heading:J.string().describe("Main CTA heading text"),buttonText:J.string().describe("Call-to-action button text"),buttonLink:J.string().describe("URL or anchor for the CTA button")}),pZ=J.object({blurb:J.string().optional().describe("Short italic subtitle under the section title")}),n$=J.object({title:J.string().describe("The site's title"),description:J.string().describe("The site's description"),url:J.string().optional().describe("Canonical site URL"),copyright:J.string().optional().describe("Copyright notice text"),logo:J.boolean().optional().describe("Whether to display logo instead of title text in header"),themeMode:J.enum(["light","dark"]).optional().describe("Default theme mode"),analyticsScript:J.string().optional().describe("Analytics script HTML"),cta:uZ.optional().describe("Call-to-action configuration"),sections:J.record(J.string(),pZ).optional().describe("Optional per-section blurbs, keyed by section id (e.g. 'essays', 'presentations', 'about'). Used by homepage templates that render editorial section headers.")});var i$=J.object({platform:J.enum(["github","instagram","linkedin","email","website"]).describe("Social media platform"),url:J.string().describe("Profile or contact URL"),label:J.string().optional().describe("Optional display label")}),s$=J.object({title:J.string().describe("The site's title"),description:J.string().describe("The site's description"),url:J.string().optional().describe("Canonical site URL"),copyright:J.string(),logo:J.boolean().optional().describe("Whether to display logo instead of title text in header"),themeMode:J.enum(["light","dark"]).optional().describe("Default theme mode"),analyticsScript:J.string().optional().describe("Analytics script HTML"),cta:uZ.optional().describe("Call-to-action configuration"),sections:J.record(J.string(),pZ).optional().describe("Optional per-section blurbs, keyed by section id (e.g. 'essays', 'presentations', 'about'). Used by homepage templates that render editorial section headers."),navigation:J.object({primary:J.array(IZ),secondary:J.array(IZ)}),socialLinks:J.array(i$).optional().describe("Social media links from profile metadata")});var X2=J.record(J.string(),J.unknown());var M2=J.object({message:J.string()});var b0=J.record(J.string(),J.unknown());class zZ{schema;config;processor=g0();constructor(F,U){this.schema=F,this.config=U}getLabels(){let F={};for(let U of this.config.mappings)F[U.key]=U.label;return F}generateBodyTemplate(){if(this.config.mappings.length===0)return"";let F=[];for(let U of this.config.mappings)F.push(`## ${U.label}`,"",`<!-- Write your ${U.label.toLowerCase()} here -->`,"");return F.join(`
2
+ import{Ea as g0}from"./index-q9sthmbv.js";import{Ra as J}from"./index-r4f9aab7.js";var H0=J.object({id:J.string(),template:J.string(),content:J.unknown().optional(),dataQuery:J.looseObject({entityType:J.string().optional(),template:J.string().optional(),query:J.looseObject({id:J.string().optional(),limit:J.number().optional(),offset:J.number().optional()}).optional()}).optional(),order:J.number().optional()}),R0=["primary","secondary"],Y0=J.object({show:J.boolean().default(!1),label:J.string().optional(),slot:J.enum(R0).default("primary"),priority:J.number().min(0).max(100).default(50)}).optional(),P0=J.object({id:J.string(),path:J.string(),title:J.string().default(""),pageLabel:J.string().optional(),description:J.string().default(""),sections:J.array(H0).default([]),layout:J.string().default("default"),fullscreen:J.boolean().optional(),pluginId:J.string().optional(),sourceEntityType:J.string().optional(),external:J.boolean().optional(),navigation:Y0}),L$=J.object({routes:J.array(P0),pluginId:J.string()}),N$=J.object({paths:J.array(J.string()).optional(),pluginId:J.string().optional()}),I$=J.object({pluginId:J.string().optional()}),S$=J.object({path:J.string()}),IZ=J.object({label:J.string(),href:J.string(),priority:J.number()});function SZ(F){if(Array.isArray(F))return F.map(SZ);if(!F||typeof F!=="object")return F;if(F instanceof Uint8Array)return F;return Object.fromEntries(Object.entries(F).filter(([,U])=>U!==void 0).map(([U,P])=>[U,SZ(P)]))}var B0=J.object({id:J.string(),toolCallId:J.string().optional(),toolName:J.string(),summary:J.string(),completionSummary:J.string().optional(),preview:J.string().optional(),args:J.unknown()}),O0=J.enum(["approval-requested","approval-responded","output-available","output-denied","output-error"]),q0=J.object({kind:J.literal("tool-approval"),id:J.string(),toolCallId:J.string().optional(),toolName:J.string(),input:J.record(J.string(),J.unknown()).optional(),summary:J.string(),completionSummary:J.string().optional(),preview:J.string().optional(),state:O0,output:J.unknown().optional(),error:J.string().optional()}),z$=q0,A0=J.object({entityType:J.string().optional(),entityId:J.string().optional(),attachmentType:J.string().optional()}),T0=J.object({mediaType:J.string().min(1),url:J.string().min(1),downloadUrl:J.string().min(1).optional(),previewUrl:J.string().min(1).optional(),filename:J.string().min(1).optional(),sizeBytes:J.number().nonnegative().optional(),source:A0.optional()}),w0=J.object({kind:J.literal("attachment"),id:J.string(),jobId:J.string().optional(),title:J.string(),description:J.string().optional(),attachment:T0}),k$=w0,C0=J.object({id:J.string().min(1),title:J.string().min(1).optional(),source:J.string().min(1),url:J.string().min(1).optional(),entityType:J.string().min(1).optional(),entityId:J.string().min(1).optional(),excerpt:J.string().min(1).optional(),provenance:J.record(J.string(),J.unknown()).optional()}),x$=J.object({kind:J.literal("sources"),id:J.string().min(1),title:J.string().min(1).optional(),sources:J.array(C0).min(1)});var v$=J.object({type:J.literal("prompt"),id:J.string().min(1),label:J.string().min(1),prompt:J.string().min(1),description:J.string().min(1).optional()});var b$=J.object({type:J.literal("event"),id:J.string().min(1),label:J.string().min(1),event:J.string().min(1),fromState:J.string().min(1).optional(),description:J.string().min(1).optional()});var j0=J.discriminatedUnion("type",[v$,b$]),g$=J.object({kind:J.literal("actions"),id:J.string().min(1),title:J.string().min(1).optional(),defaultOpen:J.boolean().optional(),actions:J.array(j0).min(1)});var L0=J.discriminatedUnion("kind",[q0,w0,x$,g$]),N0=J.object({toolName:J.string(),args:J.record(J.string(),J.unknown()).optional(),jobId:J.string().optional(),data:J.unknown().optional(),error:J.object({message:J.string(),code:J.string().optional()}).optional()}),I0=J.object({text:J.string(),toolResults:J.array(N0).optional(),cards:J.array(L0).optional(),pendingConfirmations:J.array(B0).optional(),usage:J.object({promptTokens:J.number(),completionTokens:J.number(),totalTokens:J.number()})});function _$(F){return I0.parse(SZ(F))}var S0=J.object({type:J.literal("event"),event:J.string().min(1),fromState:J.string().min(1).optional()}),E$=J.object({conversationId:J.string().min(1),interfaceType:J.string().min(1),channelId:J.string().min(1).optional(),channelName:J.string().min(1),userPermissionLevel:J.enum(["anchor","trusted","public"]),action:S0});var z0=J.enum(["anchor","trusted","public"]),y$=J.object({conversationId:J.string().min(1),message:J.string(),interfaceType:J.string().min(1),channelId:J.string().optional(),channelName:J.string().optional(),userPermissionLevel:z0}),k0=J.object({id:J.string().min(1),source:J.string().min(1),title:J.string().optional(),content:J.string().min(1),provenance:J.record(J.string(),J.unknown()).optional()}),m$=J.object({items:J.array(k0).default([])});var h$=J.object({url:J.string(),authToken:J.string().optional()});var u$=J.object({success:J.boolean(),entityId:J.string().optional(),error:J.string().optional()});var p$={success(F){return{success:!0,...F}},failure(F){return{success:!1,error:F instanceof Error?F.message:String(F)}}};var d$=J.enum(["user","assistant"]);var l$={START:0,INIT:10,FETCH:20,PROCESS:40,GENERATE:50,EXTRACT:60,SAVE:80,COMPLETE:100};var c$=J.object({id:J.string().min(1),trigger:J.string().min(1),playbookId:J.string().min(1),once:J.boolean().default(!0),starterText:J.string().min(1),description:J.string().min(1).optional(),starterPrompt:J.string().min(1)}).strict();var o$=J.object({message:J.string().describe("Natural language response to the query"),summary:J.string().optional().describe("Brief summary if applicable"),topics:J.array(J.string()).optional().describe("Related topics mentioned"),sources:J.array(J.object({id:J.string(),type:J.string(),excerpt:J.string().optional(),relevance:J.number().min(0).max(1).optional()})).optional().describe("Source entities used to answer the query"),metadata:J.record(J.string(),J.unknown()).optional()}).describe("defaultQueryResponse"),r$=J.object({message:J.string()}).describe("simpleTextResponse"),x0=J.object({success:J.boolean(),entityId:J.string().optional(),message:J.string()}).describe("createEntityResponse"),v0=J.object({success:J.boolean(),entityId:J.string(),changes:J.array(J.string()).optional(),message:J.string()}).describe("updateEntityResponse");var uZ=J.object({heading:J.string().describe("Main CTA heading text"),buttonText:J.string().describe("Call-to-action button text"),buttonLink:J.string().describe("URL or anchor for the CTA button")}),pZ=J.object({blurb:J.string().optional().describe("Short italic subtitle under the section title")}),n$=J.object({title:J.string().describe("The site's title"),description:J.string().describe("The site's description"),url:J.string().optional().describe("Canonical site URL"),copyright:J.string().optional().describe("Copyright notice text"),logo:J.boolean().optional().describe("Whether to display logo instead of title text in header"),themeMode:J.enum(["light","dark"]).optional().describe("Default theme mode"),analyticsScript:J.string().optional().describe("Analytics script HTML"),cta:uZ.optional().describe("Call-to-action configuration"),sections:J.record(J.string(),pZ).optional().describe("Optional per-section blurbs, keyed by section id (e.g. 'essays', 'presentations', 'about'). Used by homepage templates that render editorial section headers.")});var i$=J.object({platform:J.enum(["github","instagram","linkedin","email","website"]).describe("Social media platform"),url:J.string().describe("Profile or contact URL"),label:J.string().optional().describe("Optional display label")}),s$=J.object({title:J.string().describe("The site's title"),description:J.string().describe("The site's description"),url:J.string().optional().describe("Canonical site URL"),copyright:J.string(),logo:J.boolean().optional().describe("Whether to display logo instead of title text in header"),themeMode:J.enum(["light","dark"]).optional().describe("Default theme mode"),analyticsScript:J.string().optional().describe("Analytics script HTML"),cta:uZ.optional().describe("Call-to-action configuration"),sections:J.record(J.string(),pZ).optional().describe("Optional per-section blurbs, keyed by section id (e.g. 'essays', 'presentations', 'about'). Used by homepage templates that render editorial section headers."),navigation:J.object({primary:J.array(IZ),secondary:J.array(IZ)}),socialLinks:J.array(i$).optional().describe("Social media links from profile metadata")});var X2=J.record(J.string(),J.unknown());var M2=J.object({message:J.string()});var b0=J.record(J.string(),J.unknown());class zZ{schema;config;processor=g0();constructor(F,U){this.schema=F,this.config=U}getLabels(){let F={};for(let U of this.config.mappings)F[U.key]=U.label;return F}generateBodyTemplate(){if(this.config.mappings.length===0)return"";let F=[];for(let U of this.config.mappings)F.push(`## ${U.label}`,"",`<!-- Write your ${U.label.toLowerCase()} here -->`,"");return F.join(`
3
3
  `).trimEnd()+`
4
4
  `}format(F){try{let U=[`# ${this.config.title}`,""];for(let P of this.config.mappings)this.formatField(F,P,U,2);return U.join(`
5
5
  `)}catch(U){throw Error(`Failed to format structured content: ${this.describeError(U)}`,{cause:U})}}parse(F){try{let U=this.processor.parse(F),P=this.extractSections(U,2),T=this.buildDataFromSections(P,this.config.mappings);return this.schema.parse(T)}catch(U){throw Error(`Failed to parse structured content: ${this.describeError(U)}`,{cause:U})}}describeError(F){if(F instanceof J.ZodError)return F.issues.map((U)=>`${U.path.join(".")||"(root)"}: ${U.message}`).join("; ");return F instanceof Error?F.message:String(F)}escapeBlockMarkup(F){return F.replace(/^(\s*)#/gm,"$1\\#")}formatField(F,U,P,T){let V="#".repeat(T)+" "+U.label,Q=this.getValueByPath(F,U.key);if(U.type==="custom"&&U.formatter){if(Q!==void 0&&Q!==null){P.push(V,"");let W=U.formatter(Q);if(W)P.push(W,"")}return}switch(U.type){case"string":case"number":if(Q===void 0||Q===null)break;P.push(V,this.escapeBlockMarkup(String(Q)),"");break;case"object":if(P.push(V),U.children&&Q)for(let W of U.children)this.formatField(Q,W,P,T+1);break;case"array":if(P.push(V,""),Array.isArray(Q))if(U.itemType==="object"&&U.itemMappings)Q.forEach((W,f)=>{if(P.push(`${"#".repeat(T+1)} ${U.label.slice(0,-1)} ${f+1}`),P.push(""),U.itemMappings)for(let C of U.itemMappings)this.formatField(W,C,P,T+2)});else{for(let W of Q){let f=this.defaultArrayItemFormat(W);P.push(`- ${f}`)}P.push("")}break}}getValueByPath(F,U){let P=U.split("."),T=F;for(let V of P){let Q=b0.safeParse(T);if(!Q.success)return;T=Q.data[V]}return T}defaultArrayItemFormat(F){if(typeof F==="string"||typeof F==="number")return String(F);return JSON.stringify(F)}extractSections(F,U){let P=new Map,T=null,V=[];for(let Q of F.children)if(Q.type==="heading"&&Q.depth===U){if(T)P.set(T.toLowerCase(),V);T=this.getHeadingText(Q),V=[]}else if(T)V.push(Q);if(T)P.set(T.toLowerCase(),V);return P}extractSubsections(F,U){let P=new Map,T=null,V=[];for(let Q of F)if(Q.type==="heading"&&Q.depth===U){if(T)P.set(T.toLowerCase(),V);T=this.getHeadingText(Q),V=[]}else if(T)V.push(Q);if(T)P.set(T.toLowerCase(),V);return P}textNodeSchema=J.object({type:J.literal("text"),value:J.string()});extractTextValue(F){let U=this.textNodeSchema.safeParse(F);return U.success?U.data.value:""}getHeadingText(F){return F.children.filter((P)=>P.type==="text").map((P)=>this.extractTextValue(P)).join("")}buildDataFromSections(F,U,P=2){let T={};for(let V of U){let Q=F.get(V.label.toLowerCase());if(V.type==="custom"&&V.parser&&Q){let W=this.getTextFromSection(Q),f=V.parser(W);this.setValueByPath(T,V.key,f)}else if(V.type==="object"&&V.children&&Q){let W=this.extractSubsections(Q,P+1),f=this.buildDataFromSections(W,V.children,P+1);this.setValueByPath(T,V.key,f)}else if(V.type==="array"&&Q)if(V.itemType==="object"&&V.itemMappings){let W=this.extractObjectArrayItems(Q,P+1,V.itemMappings);this.setValueByPath(T,V.key,W)}else{let W=this.extractSimpleArrayItems(Q);this.setValueByPath(T,V.key,W)}else if(Q){let W=this.getTextFromSection(Q),f=V.type==="number"?Number(W):W;this.setValueByPath(T,V.key,f)}}return T}setValueByPath(F,U,P){let T=U.split("."),V=F;for(let W=0;W<T.length-1;W++){let f=T[W];if(!f)continue;let C=b0.safeParse(V[f]);if(C.success){V[f]=C.data,V=C.data;continue}let D={};V[f]=D,V=D}let Q=T[T.length-1];if(Q)V[Q]=P}getTextFromSection(F){let U=[];for(let P of F)if(P.type==="paragraph"){let T=this.extractTextFromParagraph(P);if(T)U.push(T)}else if(P.type==="list"){let T=P;for(let V of T.children){let Q=this.extractTextFromListItem(V);if(Q)U.push(`- ${Q}`)}}return U.join(`
@@ -36,7 +36,7 @@ import{Da as g0}from"./index-bs70092j.js";import{Qa as J}from"./index-wvwq0pm7.j
36
36
  `,$.length-Y>G&&O>Y)L+=$.slice(Y,O)+`
37
37
  `+$.slice(O+1);else L+=$.slice(Y);return L.slice(1)}function mZ($){let G="",q=0;for(let R=0;R<$.length;q>=65536?R+=2:R++){q=r($,R);let Y=E[q];if(!Y&&e(q)){if(G+=$[R],q>=65536)G+=$[R+1]}else G+=Y||c(q)}return G}function LZ($,G,q){let R="",Y=$.tag;for(let A=0,O=q.length;A<O;A+=1){let N=q[A];if($.replacer)N=$.replacer.call(q,String(A),N);if(K($,G,N,!1,!1)||typeof N>"u"&&K($,G,null,!1,!1)){if(R!=="")R+=","+(!$.condenseFlow?" ":"");R+=$.dump}}$.tag=Y,$.dump="["+R+"]"}function NZ($,G,q,R){let Y="",A=$.tag;for(let O=0,N=q.length;O<N;O+=1){let L=q[O];if($.replacer)L=$.replacer.call(q,String(O),L);if(K($,G+1,L,!0,!0,!1,!0)||typeof L>"u"&&K($,G+1,null,!0,!0,!1,!0)){if(!R||Y!=="")Y+=XZ($,G);if($.dump&&f===$.dump.charCodeAt(0))Y+="-";else Y+="- ";Y+=$.dump}}$.tag=A,$.dump=Y||"[]"}function hZ($,G,q){let R="",Y=$.tag,A=Object.keys(q);for(let O=0,N=A.length;O<N;O+=1){let L="";if(R!=="")L+=", ";if($.condenseFlow)L+='"';let S=A[O],z=q[S];if($.replacer)z=$.replacer.call(q,S,z);if(!K($,G,S,!1,!1))continue;if($.dump.length>1024)L+="? ";if(L+=$.dump+($.condenseFlow?'"':"")+":"+($.condenseFlow?"":" "),!K($,G,z,!1,!1))continue;L+=$.dump,R+=L}$.tag=Y,$.dump="{"+R+"}"}function Z($,G,q,R){let Y="",A=$.tag,O=Object.keys(q);if($.sortKeys===!0)O.sort();else if(typeof $.sortKeys==="function")O.sort($.sortKeys);else if($.sortKeys)throw new U("sortKeys must be a boolean or a function");for(let N=0,L=O.length;N<L;N+=1){let S="";if(!R||Y!=="")S+=XZ($,G);let z=O[N],x=q[z];if($.replacer)x=$.replacer.call(q,z,x);if(!K($,G+1,z,!0,!0,!0))continue;let b=$.tag!==null&&$.tag!=="?"||$.dump&&$.dump.length>1024;if(b)if($.dump&&f===$.dump.charCodeAt(0))S+="?";else S+="? ";if(S+=$.dump,b)S+=XZ($,G);if(!K($,G+1,x,!0,b))continue;if($.dump&&f===$.dump.charCodeAt(0))S+=":";else S+=": ";S+=$.dump,Y+=S}$.tag=A,$.dump=Y||"{}"}function X($,G,q){let R=q?$.explicitTypes:$.implicitTypes;for(let Y=0,A=R.length;Y<A;Y+=1){let O=R[Y];if((O.instanceOf||O.predicate)&&(!O.instanceOf||typeof G==="object"&&G instanceof O.instanceOf)&&(!O.predicate||O.predicate(G))){if(q)if(O.multi&&O.representName)$.tag=O.representName(G);else $.tag=O.tag;else $.tag="?";if(O.represent){let N=$.styleMap[O.tag]||O.defaultStyle,L;if(T.call(O.represent)==="[object Function]")L=O.represent(G,N);else if(V.call(O.represent,N))L=O.represent[N](G,N);else throw new U("!<"+O.tag+'> tag resolver accepts not "'+N+'" style');$.dump=L}return!0}}return!1}function K($,G,q,R,Y,A,O){if($.tag=null,$.dump=q,!X($,q,!1))X($,q,!0);let N=T.call($.dump),L=R;if(R)R=$.flowLevel<0||$.flowLevel>G;let S=N==="[object Object]"||N==="[object Array]",z,x;if(S)z=$.duplicates.indexOf(q),x=z!==-1;if($.tag!==null&&$.tag!=="?"||x||$.indent!==2&&G>0)Y=!1;if(x&&$.usedDuplicates[z])$.dump="*ref_"+z;else{if(S&&x&&!$.usedDuplicates[z])$.usedDuplicates[z]=!0;if(N==="[object Object]"){if(R&&Object.keys($.dump).length!==0){if(Z($,G,$.dump,Y),x)$.dump="&ref_"+z+$.dump}else if(hZ($,G,$.dump),x)$.dump="&ref_"+z+" "+$.dump}else if(N==="[object Array]"){if(R&&$.dump.length!==0){if($.noArrayIndent&&!O&&G>0)NZ($,G-1,$.dump,Y);else NZ($,G,$.dump,Y);if(x)$.dump="&ref_"+z+$.dump}else if(LZ($,G,$.dump),x)$.dump="&ref_"+z+" "+$.dump}else if(N==="[object String]"){if($.tag!=="?")EZ($,$.dump,G,A,L)}else if(N==="[object Undefined]")return!1;else{if($.skipInvalid)return!1;throw new U("unacceptable kind of an object to dump "+N)}if($.tag!==null&&$.tag!=="?"){let b=encodeURI($.tag[0]==="!"?$.tag.slice(1):$.tag).replace(/!/g,"%21");if($.tag[0]==="!")b="!"+b;else if(b.slice(0,18)==="tag:yaml.org,2002:")b="!!"+b.slice(18);else b="!<"+b+">";$.dump=b+" "+$.dump}}return!0}function B($,G){let q=[],R=[];M($,q,R);let Y=R.length;for(let A=0;A<Y;A+=1)G.duplicates.push(q[R[A]]);G.usedDuplicates=Array(Y)}function M($,G,q){if($!==null&&typeof $==="object"){let R=G.indexOf($);if(R!==-1){if(q.indexOf(R)===-1)q.push(R)}else if(G.push($),Array.isArray($))for(let Y=0,A=$.length;Y<A;Y+=1)M($[Y],G,q);else{let Y=Object.keys($);for(let A=0,O=Y.length;A<O;A+=1)M($[Y[A]],G,q)}}}function w($,G){G=G||{};let q=new _Z(G);if(!q.noRefs)B($,q);let R=$;if(q.replacer)R=q.replacer.call({"":R},"",R);if(K(q,0,R,!0,!0))return q.dump+`
38
38
  `;return""}return M0.dump=w,M0}var F$;function $1(){if(F$)return m;F$=1;let F=t$(),U=Z1();function P(T,V){return function(){throw Error("Function yaml."+T+" is removed in js-yaml 4. Use yaml."+V+" instead, which is now safe by default.")}}return m.Type=h(),m.Schema=Q$(),m.FAILSAFE_SCHEMA=M$(),m.JSON_SCHEMA=Y$(),m.CORE_SCHEMA=P$(),m.DEFAULT_SCHEMA=f0(),m.load=F.load,m.loadAll=F.loadAll,m.dump=U.dump,m.YAMLException=HZ(),m.types={binary:q$(),float:R$(),map:W$(),null:f$(),pairs:T$(),set:w$(),timestamp:B$(),bool:K$(),int:H$(),merge:O$(),omap:A$(),seq:U$(),str:D$()},m.safeLoad=P("safeLoad","load"),m.safeLoadAll=P("safeLoadAll","loadAll"),m.safeDump=P("safeDump","dump"),m}var J1=$1(),X1=a$(J1),{Type:T2,Schema:w2,FAILSAFE_SCHEMA:C2,JSON_SCHEMA:j2,CORE_SCHEMA:L2,DEFAULT_SCHEMA:N2,load:G1,loadAll:I2,dump:V1,YAMLException:S2,types:z2,safeLoad:k2,safeLoadAll:x2,safeDump:v2}=X1;var g2=J.record(J.string(),J.unknown());var V8=J.object({slug:J.string(),title:J.string(),type:J.string(),entityId:J.string(),contentHash:J.string()});function F1(F){return`preview.${F.trim().replace(/^https?:\/\//,"")}`}var Q1=J.string(),D1=J.looseObject({id:J.string().min(1)}),U1=J.looseObject({label:J.string().min(1)}),W1=J.looseObject({layouts:J.record(J.string(),J.unknown()),plugin:J.custom((F)=>typeof F==="function").optional(),routes:J.array(D1),entityDisplay:J.record(J.string(),U1),content:J.unknown().optional(),themeOverride:J.string().optional(),headScripts:J.array(J.string()).optional(),staticAssets:J.record(J.string(),J.string()).optional()}),M1=J.custom((F)=>W1.safeParse(F).success);var j$=J.record(J.string(),J.unknown());var l8=J.union([J.object({success:J.boolean(),data:J.unknown().optional(),error:J.string().optional()}),J.object({noop:J.literal(!0)})]),c8=J.object({id:J.string(),timestamp:J.string(),type:J.string(),source:J.string(),target:J.string().optional(),metadata:j$.optional()});
39
- export{R0 as ga,P0 as ha,L$ as ia,N$ as ja,I$ as ka,S$ as la,n$ as ma,B0 as na,z$ as oa,k$ as pa,N0 as qa,I0 as ra,_$ as sa,u$ as ta,p$ as ua,d$ as va,l$ as wa,zZ as xa,G1 as ya,F1 as za,j$ as Aa,l8 as Ba,c8 as Ca};
39
+ export{R0 as ha,P0 as ia,L$ as ja,N$ as ka,I$ as la,S$ as ma,n$ as na,B0 as oa,z$ as pa,k$ as qa,N0 as ra,I0 as sa,_$ as ta,u$ as ua,p$ as va,d$ as wa,l$ as xa,zZ as ya,G1 as za,F1 as Aa,j$ as Ba,l8 as Ca,c8 as Da};
40
40
 
41
- //# debugId=05D1DE2E98B170A264756E2164756E21
42
- //# sourceMappingURL=index-3097wt56.js.map
41
+ //# debugId=5407C4DBE75ADD1464756E2164756E21
42
+ //# sourceMappingURL=index-gbnw7xez.js.map