@rulemetric/cli 0.7.17 → 0.7.19
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/{chunk-FJJ54GK3.js → chunk-45VWQP4J.js} +1 -1
- package/dist/{chunk-N7UHGEL4.js → chunk-46IYYFYR.js} +1 -1
- package/dist/{chunk-2BPRRUCP.js → chunk-5WY2WM4K.js} +1 -1
- package/dist/{chunk-637U6Q5V.js → chunk-6KU6UUYJ.js} +1 -1
- package/dist/chunk-AP4TQRZJ.js +1 -0
- package/dist/{chunk-WCLGRG4X.js → chunk-EBSMTI3X.js} +1 -1
- package/dist/{chunk-YO5IGC5D.js → chunk-ECHJ4MBP.js} +1 -1
- package/dist/{chunk-7SZX7C7U.js → chunk-FKW6PVDG.js} +1 -1
- package/dist/{chunk-PTPDOYWP.js → chunk-GQRCSR2A.js} +1 -1
- package/dist/{chunk-QUUN6A7E.js → chunk-GTOEWPIM.js} +1 -1
- package/dist/{chunk-5BMBVTAE.js → chunk-IL35G6CK.js} +5 -5
- package/dist/chunk-KC7IOPF6.js +1 -0
- package/dist/{chunk-NV33AM5P.js → chunk-PI2VYOU7.js} +1 -1
- package/dist/{chunk-PHX6PA27.js → chunk-SONOLG6I.js} +1 -1
- package/dist/{chunk-3UBCK2FS.js → chunk-WDGJHNOW.js} +1 -1
- package/dist/chunk-WQ2BJQYB.js +1 -0
- package/dist/commands/evals/agent.js +1 -1
- package/dist/commands/evals/benchmark.js +8 -8
- package/dist/commands/evals/compare.js +1 -1
- package/dist/commands/evals/optimize-description.js +1 -1
- package/dist/commands/evals/optimize.js +1 -1
- package/dist/commands/evals/run.js +1 -1
- package/dist/lib/agent-loop.js +1 -1
- package/dist/lib/eval-analyzer.js +1 -1
- package/dist/lib/eval-conversation-handler.js +1 -1
- package/dist/lib/eval-executor.js +1 -1
- package/dist/lib/eval-grader.js +1 -1
- package/dist/lib/eval-meta-judge.js +1 -1
- package/dist/lib/eval-trigger-tester.js +1 -1
- package/dist/lib/handlers/distill-memories.js +1 -1
- package/dist/lib/handlers/process-announcement.js +1 -1
- package/dist/lib/handlers/process-changelog.js +1 -1
- package/dist/lib/handlers/process-conversation.js +1 -1
- package/dist/lib/handlers/process-eval.js +1 -1
- package/dist/lib/handlers/process-memory-ab.js +1 -1
- package/dist/lib/handlers/process-run-cleanup.js +1 -1
- package/dist/lib/handlers/process-session-goal.js +1 -1
- package/dist/lib/manual-tasks.js +1 -1
- package/oclif.manifest.json +1 -1
- package/package.json +5 -5
- package/dist/chunk-AIGR5AYV.js +0 -1
- package/dist/chunk-QH7VY5HJ.js +0 -1
- package/dist/chunk-W5QRYDIN.js +0 -1
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import{a as $}from"./chunk-5XP7WWJR.js";import{a as C}from"./chunk-
|
|
1
|
+
import{a as $}from"./chunk-5XP7WWJR.js";import{a as C}from"./chunk-GQRCSR2A.js";import{a as y}from"./chunk-IL35G6CK.js";import{b as f}from"./chunk-WQ2BJQYB.js";import{e as h,f as w}from"./chunk-H2ORWIEY.js";import{a as v}from"./chunk-ZLLER3HP.js";async function N(n,i,p){let{conversationId:a,messageId:g,messageContent:r}=n,o=await h(`/api/eval-targets/${i}`),c=await h(`/api/eval-targets/${i}/evals`),e=await h(`/api/eval-conversations/${a}/messages`),t=e.findIndex(l=>l.id===g);if(t>=0&&e.slice(t+1).some(u=>u.role==="assistant"&&(u.type==="results"||u.type==="proposal"||u.type==="generated"||u.type==="text"))){p(`Message ${g} already processed \u2014 skipping (idempotency guard)`);return}let s=v(async(l,u,m)=>{await w(`/api/eval-conversations/${a}/messages/assistant`,{content:l,type:u,data:m})},"postMessage"),d=await _(o,c,e,r,p);p(`Action: ${d.action}`);try{switch(d.action){case"run_evals":await x(o,c,a,s,p);break;case"generate_cases":await k(o,i,a,s,p);break;case"analyze_results":case"propose_changes":await E(o,c,e,r,a,s,p);break;case"respond":await s(d.response,"text");break}}catch(l){let u=l instanceof Error?l.message:String(l);throw await s(`Something went wrong: ${u}`,"text").catch(()=>{}),l}}v(N,"processConversationJob");async function _(n,i,p,a,g){let r=p.slice(-10).map(e=>`${e.role}: ${e.content.slice(0,200)}`).join(`
|
|
2
2
|
`),o=`You are an eval assistant. Decide what action to take based on the user's message.
|
|
3
3
|
|
|
4
4
|
## Current State
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import{c as e,d as o,j as y}from"./chunk-
|
|
1
|
+
import{c as e,d as o,j as y}from"./chunk-AP4TQRZJ.js";import{f as d}from"./chunk-RTWRHIKY.js";import{a as g}from"./chunk-ZLLER3HP.js";import{eq as c,asc as P,sql as R}from"drizzle-orm";var T=1800*1e3,I=300*1e3,h=10,D=`Given these messages from an AI coding session, write a 1-2 sentence summary of what the user is trying to accomplish. Focus on the goal, not the steps. No preamble.
|
|
2
2
|
|
|
3
3
|
Return strict JSON in the form: {"goalSummary": "..."}`;async function b(t,a={}){let n=a.db??y(),f=a.llm??d,r=a.now??Date.now,[i]=await n.select().from(e).where(c(e.id,t.sessionId)).limit(1);if(!i)return{skipped:"not_found"};let w=(await n.execute(R`SELECT MAX(timestamp) AS last_at FROM session_events WHERE session_id = ${t.sessionId}`))?.[0]?.last_at??i.startedAt,_=new Date(w).getTime();if(r()-_>T)return{skipped:"stale"};let m=i.analysis??{},p=m.goalSummaryAt?new Date(m.goalSummaryAt).getTime():0;if(p&&r()-p<I)return{skipped:"recent"};let u=(await n.select().from(o).where(c(o.sessionId,t.sessionId)).orderBy(P(o.timestamp)).limit(h*2)).filter(s=>s.content&&(s.eventType==="user_message"||s.eventType==="assistant_response")).map(s=>`${s.eventType==="user_message"?"USER":"ASSISTANT"}: ${s.content}`).join(`
|
|
4
4
|
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{b as B}from"./chunk-N7TGRFVZ.js";import{a as R}from"./chunk-5RBLIVBF.js";import{a as v,g as d,h as n,i as m,j as U}from"./chunk-
|
|
1
|
+
import{b as B}from"./chunk-N7TGRFVZ.js";import{a as R}from"./chunk-5RBLIVBF.js";import{a as v,g as d,h as n,i as m,j as U}from"./chunk-AP4TQRZJ.js";import{a as $}from"./chunk-ZLLER3HP.js";import{and as L,asc as j,eq as l,gt as q,isNotNull as F,sql as O}from"drizzle-orm";var _=100,C=10;async function G(I,s={}){let t=s.db??U(),D=s.sendEmail??B,p=s.log??(o=>process.stderr.write(`[process_announcement] ${o}
|
|
2
2
|
`)),b=s.webBaseUrl??process.env.RULEMETRIC_WEB_URL??process.env.WEB_URL??"https://rulemetric.com",{announcementId:r}=I,[i]=await t.select().from(d).where(l(d.id,r)).limit(1);if(!i)throw new R(`Announcement ${r} not found`);if(i.status!=="queued"&&i.status!=="sending")throw new R(`Announcement ${r} is in status='${i.status}'; expected 'queued' or 'sending'.`);await t.update(d).set({status:"sending",updatedAt:new Date}).where(l(d.id,r)),p(`Sending announcement ${r} (${i.subject??""})`);let w=0,f=0,h=0,y=0,k=null;try{for(;;){let c=await t.select({userId:m.userId,email:v.email,displayName:v.displayName,unsubscribeToken:m.unsubscribeToken}).from(m).innerJoin(v,l(v.id,m.userId)).where(L(l(m.productAnnouncements,!0),F(v.email),k?q(m.userId,k):void 0)).orderBy(j(m.userId)).limit(_);if(c.length===0)break;k=c[c.length-1].userId;for(let A=0;A<c.length;A+=C){let P=c.slice(A,A+C),S=await Promise.allSettled(P.map(g=>W({recipient:g,announcement:i,webBaseUrl:b,sendEmail:D,db:t})));for(let g=0;g<S.length;g++){let u=S[g];if(u.status==="fulfilled")u.value.ok==="sent"?w++:u.value.ok==="skipped"?h++:(f++,u.value.provider==="noop"&&y++,p(` recipient ${P[g].userId}: send failed \u2014 ${u.value.error}`));else{f++;let T=u.reason instanceof Error?u.reason.message:String(u.reason);p(` recipient ${P[g].userId}: send failed \u2014 ${T}`)}}}if(c.length<_)break}y>0&&p(`WARNING: ${y} recipient(s) hit the noop email provider and were recorded as FAILED \u2014 no email provider is configured on this worker (set RESEND_API_KEY in ~/.config/rulemetric/env and reinstall the service)`);let o=await t.select({status:n.status,count:O`count(*)::int`}).from(n).where(l(n.announcementId,r)).groupBy(n.status),e={};for(let c of o)e[c.status]=c.count;let a=e.sent??0,E=e.failed??0,N=a===0&&E>0?"failed":"sent",x=E>0?`${E} of ${a+E} recipient(s) failed; see announcement_deliveries`:null;return await t.update(d).set({status:N,recipientCount:a,...N==="sent"?{sentAt:new Date}:{},error:x,updatedAt:new Date}).where(l(d.id,r)),p(`Done: status=${N} sent=${a} failed=${E} (this attempt: sent=${w} failed=${f} skipped=${h})`),{sent:w,failed:f,skipped:h}}catch(o){let e=o instanceof Error?o.message:String(o);throw await t.update(d).set({status:"failed",error:e.slice(0,1e3),updatedAt:new Date}).where(l(d.id,r)).catch(()=>{}),o}}$(G,"processAnnouncement");function K(I){return I.replace(/&/g,"&").replace(/</g,"<").replace(/>/g,">").replace(/"/g,""").replace(/'/g,"'")}$(K,"escapeHtml");async function W(I){let{recipient:s,announcement:t,webBaseUrl:D,sendEmail:p,db:b}=I;if(!s.email)return{ok:"skipped",reason:"no-email"};let r=await b.insert(n).values({announcementId:t.id,userId:s.userId,email:s.email,status:"pending"}).onConflictDoNothing({target:[n.announcementId,n.userId]}).returning({id:n.id});if(r.length===0)return{ok:"skipped",reason:"already-claimed"};let i=r[0].id,w=D.replace(/\/$/,""),f=encodeURIComponent(s.unsubscribeToken),h=`${w}/unsubscribe/${f}`,y=s.displayName?.trim().split(/\s+/)[0]||"there",k=t.htmlBody.replaceAll("{{unsubscribe_url}}",h).replaceAll("{{recipient_name}}",K(y)),o=t.textBody.replaceAll("{{unsubscribe_url}}",h).replaceAll("{{recipient_name}}",y);try{let e=await p({to:s.email,subject:t.subject,html:k,text:o,fromName:"RuleMetric",idempotencyKey:i,headers:{"List-Unsubscribe":`<${w}/api/unsubscribe/${f}>`,"List-Unsubscribe-Post":"List-Unsubscribe=One-Click"}});if(e.provider==="noop"){let a="no email provider configured (RESEND_API_KEY unset on the worker)";return await b.update(n).set({status:"failed",error:a}).where(l(n.id,i)),{ok:"failed",error:a,provider:e.provider}}return await b.update(n).set({status:"sent",providerId:e.id,sentAt:new Date}).where(l(n.id,i)),{ok:"sent",providerId:e.id,provider:e.provider}}catch(e){let a=e instanceof Error?e.message:String(e);return await b.update(n).set({status:"failed",error:a.slice(0,1e3)}).where(l(n.id,i)).catch(()=>{}),{ok:"failed",error:a}}}$(W,"sendOne");export{G as a};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{e as u,f as t,j as x}from"./chunk-
|
|
1
|
+
import{e as u,f as t,j as x}from"./chunk-AP4TQRZJ.js";import{a as E}from"./chunk-IL35G6CK.js";import{a as A}from"./chunk-RCI5MTZP.js";import{b as P}from"./chunk-WQ2BJQYB.js";import{a as f}from"./chunk-ZLLER3HP.js";import{eq as s}from"drizzle-orm";var v=f(m=>m.summary.pass_rate>=1?1:0,"fullPassScore");async function q(m,d={}){let r=d.db??x(),w=d.executeEval??P,y=d.grade??E,n=d.now??Date.now,[e]=await r.select().from(t).where(s(t.id,m.experimentId)).limit(1);if(!e)return{skipped:"not_found"};if(e.status==="completed"||e.status==="failed")return{skipped:"already_terminal",status:e.status};let[g]=await r.select({body:u.body}).from(u).where(s(u.id,e.memoryId)).limit(1);if(!g)return await r.update(t).set({status:"failed",error:"memory no longer exists",completedAt:new Date(n())}).where(s(t.id,e.id)),{skipped:"memory_gone",status:"failed"};await r.update(t).set({status:"running",startedAt:new Date(n())}).where(s(t.id,e.id));let b=e.expectations??[],l=e.model??void 0,a=[],h=0;try{for(let i=0;i<e.trials;i++){let c=await w({prompt:e.taskPrompt,targetContent:g.body,model:l}),p=await w({prompt:e.taskPrompt,model:l});if(c.error||p.error){h++;continue}let[D,M]=await Promise.all([y({prompt:e.taskPrompt,output:c.output,expectations:b,model:l}),y({prompt:e.taskPrompt,output:p.output,expectations:b,model:l})]);a.push({withScore:v(D),withoutScore:v(M),withLatency:c.durationMs/1e3,withoutLatency:p.durationMs/1e3})}if(a.length===0){let i=`no trials completed (${h}/${e.trials} runs errored \u2014 is the claude CLI available?)`;return await r.update(t).set({status:"failed",error:i,completedAt:new Date(n())}).where(s(t.id,e.id)),{status:"failed",requestedTrials:e.trials,completedTrials:0}}let o=A(a);return await r.update(t).set({status:"completed",result:{verdict:o,pairs:a,completedTrials:a.length,model:l??null},completedAt:new Date(n())}).where(s(t.id,e.id)),{status:"completed",requestedTrials:e.trials,completedTrials:a.length,significant:o.significant,delta:o.delta}}catch(o){let i=o instanceof Error?o.message:String(o);return await r.update(t).set({status:"failed",error:i.slice(0,500),completedAt:new Date(n())}).where(s(t.id,e.id)),{status:"failed",requestedTrials:e.trials,completedTrials:a.length}}}f(q,"processMemoryAb");export{q as a};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{a as m,c as yr}from"./chunk-ZLLER3HP.js";import{boolean as Ao,pgTable as Tr,text as Qe,timestamp as Rt,uuid as zo}from"drizzle-orm/pg-core";import{pgTable as Ye,text as te,timestamp as Ae,jsonb as To,uuid as J,primaryKey as wo}from"drizzle-orm/pg-core";var u=Ye("organizations",{id:J("id").primaryKey().defaultRandom(),name:te("name").unique().notNull(),slug:te("slug").unique().notNull(),metadata:To("metadata"),createdAt:Ae("created_at",{withTimezone:!0}).defaultNow(),updatedAt:Ae("updated_at",{withTimezone:!0}).defaultNow()}),v=Ye("teams",{id:J("id").primaryKey().defaultRandom(),orgId:J("org_id").references(()=>u.id,{onDelete:"cascade"}),name:te("name").notNull(),slug:te("slug").notNull(),metadata:To("metadata"),createdAt:Ae("created_at",{withTimezone:!0}).defaultNow()}),oe=Ye("user_organizations",{userId:J("user_id").notNull(),orgId:J("org_id").references(()=>u.id,{onDelete:"cascade"}).notNull(),role:te("role").notNull().default("member"),createdAt:Ae("created_at",{withTimezone:!0}).defaultNow()},e=>[wo({columns:[e.userId,e.orgId]})]),ne=Ye("user_teams",{userId:J("user_id").notNull(),teamId:J("team_id").references(()=>v.id,{onDelete:"cascade"}).notNull(),role:te("role").notNull().default("member"),createdAt:Ae("created_at",{withTimezone:!0}).defaultNow()},e=>[wo({columns:[e.userId,e.teamId]})]);var o=Tr("profiles",{id:zo("id").primaryKey(),email:Qe("email"),displayName:Qe("display_name"),activeOrgId:zo("active_org_id").references(()=>u.id,{onDelete:"set null"}),isSuperadmin:Ao("is_superadmin").notNull().default(!1),claudeCodePlan:Qe("claude_code_plan"),planSource:Qe("plan_source").notNull().default("detected"),setupCompletedAt:Rt("setup_completed_at",{withTimezone:!0}),liveSendSkipped:Ao("live_send_skipped").notNull().default(!1),createdAt:Rt("created_at",{withTimezone:!0}).defaultNow(),updatedAt:Rt("updated_at",{withTimezone:!0}).defaultNow()});import{pgTable as jr,text as se,timestamp as St,jsonb as ko,uuid as $e,integer as Rr,boolean as br,index as Kt}from"drizzle-orm/pg-core";import{boolean as Ar,jsonb as zr,pgTable as Et,primaryKey as Ro,text as Y,timestamp as De,uniqueIndex as kt,uuid as Q}from"drizzle-orm/pg-core";import{sql as Dr}from"drizzle-orm";import{pgTable as Do,text as g,timestamp as ze,jsonb as Xe,uuid as C,integer as bt,boolean as wr,uniqueIndex as jo,index as We}from"drizzle-orm/pg-core";var r=Do("instructions",{id:C("id").primaryKey().defaultRandom(),name:g("name").notNull(),description:g("description").notNull(),type:g("type").notNull().default("instruction"),scope:g("scope").notNull(),scopeRef:C("scope_ref"),version:g("version").notNull(),content:g("content").notNull(),frontmatter:Xe("frontmatter").notNull(),slots:Xe("slots"),tags:g("tags").array(),compatibility:g("compatibility").array(),createdBy:C("created_by"),createdAt:ze("created_at",{withTimezone:!0}).defaultNow(),updatedAt:ze("updated_at",{withTimezone:!0}).defaultNow(),archived:wr("archived").default(!1),archivedAt:ze("archived_at",{withTimezone:!0}),archivedBy:C("archived_by"),forkedFromId:C("forked_from_id").references(()=>r.id,{onDelete:"set null"}),upstreamVersion:g("upstream_version"),badge:g("badge"),contentHash:g("content_hash"),contextIdentity:g("context_identity"),scanScore:bt("scan_score"),scanFindings:Xe("scan_findings"),popularityScore:bt("popularity_score"),sourceUpdatedAt:ze("source_updated_at",{withTimezone:!0})},e=>[jo("instructions_name_scope_ref_idx").on(e.name,e.scope,e.scopeRef),We("idx_instructions_scope").on(e.scope,e.scopeRef),We("idx_instructions_created_by").on(e.createdBy),We("idx_instructions_context_identity").on(e.createdBy,e.contextIdentity),We("idx_instructions_public_recency").on(e.scope,e.sourceUpdatedAt.desc())]),re=Do("instruction_versions",{id:C("id").primaryKey().defaultRandom(),instructionId:C("instruction_id").references(()=>r.id,{onDelete:"cascade"}),versionNumber:bt("version_number").notNull(),content:g("content").notNull(),frontmatter:Xe("frontmatter").notNull(),changeSummary:g("change_summary"),createdBy:C("created_by"),createdAt:ze("created_at",{withTimezone:!0}).defaultNow()},e=>[jo("instruction_versions_instruction_version_idx").on(e.instructionId,e.versionNumber)]);var s=Et("projects",{id:Q("id").primaryKey().defaultRandom(),orgId:Q("org_id").references(()=>u.id,{onDelete:"cascade"}),name:Y("name").notNull(),description:Y("description"),githubRepo:Y("github_repo"),gitRemoteUrl:Y("git_remote_url"),gitRootCommit:Y("git_root_commit"),gitRemoteAliases:Y("git_remote_aliases").array().notNull().default([]),metadata:zr("metadata"),createdBy:Q("created_by"),createdAt:De("created_at",{withTimezone:!0}).defaultNow(),updatedAt:De("updated_at",{withTimezone:!0}).defaultNow()},e=>[kt("projects_org_name_idx").on(e.orgId,e.name),kt("projects_git_remote_url_unique").on(e.gitRemoteUrl).where(Dr`${e.gitRemoteUrl} IS NOT NULL`)]),q=Et("project_instructions",{projectId:Q("project_id").references(()=>s.id,{onDelete:"cascade"}).notNull(),instructionId:Q("instruction_id").references(()=>r.id,{onDelete:"cascade"}).notNull(),addedAt:De("added_at",{withTimezone:!0}).defaultNow(),addedBy:Q("added_by")},e=>[Ro({columns:[e.projectId,e.instructionId]})]),bo=Et("project_checkouts",{projectId:Q("project_id").references(()=>s.id,{onDelete:"cascade"}).notNull(),path:Y("path").notNull(),isWorktree:Ar("is_worktree").notNull().default(!1),firstSeen:De("first_seen",{withTimezone:!0}).notNull().defaultNow(),lastSeen:De("last_seen",{withTimezone:!0}).notNull().defaultNow()},e=>[Ro({columns:[e.projectId,e.path]}),kt("project_checkouts_path_unique").on(e.path)]);var x=jr("agent_runs",{id:$e("id").primaryKey().defaultRandom(),userId:$e("user_id").notNull().references(()=>o.id,{onDelete:"cascade"}),orgId:$e("org_id").references(()=>u.id,{onDelete:"set null"}),projectId:$e("project_id").references(()=>s.id,{onDelete:"set null"}),projectPath:se("project_path"),gitRemote:se("git_remote"),baseBranch:se("base_branch"),title:se("title"),prompt:se("prompt"),toolSpec:ko("tool_spec").notNull().default([]),autoWorktree:br("auto_worktree").notNull().default(!0),status:se("status").notNull().default("pending"),sessionCount:Rr("session_count").notNull().default(0),metadata:ko("metadata").notNull().default({}),createdAt:St("created_at",{withTimezone:!0}).notNull().defaultNow(),updatedAt:St("updated_at",{withTimezone:!0}).notNull().defaultNow(),completedAt:St("completed_at",{withTimezone:!0})},e=>[Kt("idx_agent_runs_user").on(e.userId),Kt("idx_agent_runs_org_created").on(e.orgId,e.createdAt),Kt("idx_agent_runs_project").on(e.projectId)]);import{pgTable as Pt,text as I,timestamp as je,jsonb as W,uuid as j,integer as Ze,uniqueIndex as Eo,index as z}from"drizzle-orm/pg-core";var d=Pt("sessions",{id:j("id").primaryKey().defaultRandom(),userId:j("user_id").notNull().references(()=>o.id,{onDelete:"cascade"}),externalSessionId:I("external_session_id"),projectId:j("project_id").references(()=>s.id,{onDelete:"set null"}),orgId:j("org_id").references(()=>u.id,{onDelete:"set null"}),tool:I("tool").notNull(),projectPath:I("project_path"),gitBranch:I("git_branch"),startedAt:je("started_at",{withTimezone:!0}).notNull(),endedAt:je("ended_at",{withTimezone:!0}),eventCount:Ze("event_count").default(0),tokenUsage:W("token_usage"),analysis:W("analysis"),analyzedAt:je("analyzed_at",{withTimezone:!0}),analyzedEventCount:Ze("analyzed_event_count"),analyzedTurnCount:Ze("analyzed_turn_count"),metadata:W("metadata").default({}),origin:I("origin").notNull().default("unknown"),runId:j("run_id").references(()=>x.id,{onDelete:"set null"}),model:I("model"),harnessVersion:I("harness_version"),createdAt:je("created_at",{withTimezone:!0}).defaultNow()},e=>[z("idx_sessions_user").on(e.userId),z("idx_sessions_tool").on(e.tool),z("idx_sessions_started_at").on(e.startedAt),z("idx_sessions_project").on(e.projectId),z("idx_sessions_org_started_at").on(e.orgId,e.startedAt),z("idx_sessions_run").on(e.runId),Eo("idx_sessions_user_external").on(e.userId,e.externalSessionId)]),ie=Pt("session_events",{id:j("id").primaryKey().defaultRandom(),sessionId:j("session_id").notNull().references(()=>d.id,{onDelete:"cascade"}),sequence:Ze("sequence").notNull(),eventType:I("event_type").notNull(),content:I("content"),toolName:I("tool_name"),toolInput:W("tool_input"),toolOutput:W("tool_output"),tokenUsage:W("token_usage"),model:I("model"),timestamp:je("timestamp",{withTimezone:!0}).notNull(),metadata:W("metadata").default({})},e=>[Eo("session_events_session_sequence_idx").on(e.sessionId,e.sequence),z("idx_session_events_session_id").on(e.sessionId),z("idx_session_events_event_type").on(e.eventType),z("idx_session_events_model").on(e.model)]),M=Pt("session_instructions",{sessionId:j("session_id").notNull().references(()=>d.id,{onDelete:"cascade"}),instructionId:j("instruction_id").notNull().references(()=>r.id,{onDelete:"cascade"}),linkMethod:I("link_method").notNull()},e=>[z("idx_session_instructions_instruction_id").on(e.instructionId)]);import{pgTable as kr,text as ae,timestamp as Ot,uuid as Re,integer as So,index as et}from"drizzle-orm/pg-core";var y=kr("memories",{id:Re("id").primaryKey().defaultRandom(),userId:Re("user_id").notNull().references(()=>o.id,{onDelete:"cascade"}),orgId:Re("org_id"),projectId:Re("project_id").references(()=>s.id,{onDelete:"set null"}),version:So("version").notNull().default(1),parentId:Re("parent_id").references(()=>y.id,{onDelete:"set null"}),kind:ae("kind").notNull(),title:ae("title").notNull(),body:ae("body").notNull(),source:ae("source").notNull(),status:ae("status").notNull().default("active"),trustClass:ae("trust_class"),trustVersion:So("trust_version"),trustComputedAt:Ot("trust_computed_at",{withTimezone:!0}),createdAt:Ot("created_at",{withTimezone:!0}).notNull().defaultNow(),updatedAt:Ot("updated_at",{withTimezone:!0}).notNull().defaultNow()},e=>[et("idx_memories_user").on(e.userId),et("idx_memories_project").on(e.projectId),et("idx_memories_parent").on(e.parentId),et("idx_memories_user_status").on(e.userId,e.status)]);import{pgTable as Er,text as be,timestamp as Ct,uuid as qt,integer as Ko,jsonb as Sr,index as Po}from"drizzle-orm/pg-core";var Oo=Er("memory_experiments",{id:qt("id").primaryKey().defaultRandom(),memoryId:qt("memory_id").notNull().references(()=>y.id,{onDelete:"cascade"}),userId:qt("user_id").notNull().references(()=>o.id,{onDelete:"cascade"}),memoryVersion:Ko("memory_version").notNull().default(1),taskPrompt:be("task_prompt").notNull(),expectations:be("expectations").array().notNull().default([]),trials:Ko("trials").notNull().default(10),model:be("model"),status:be("status").notNull().default("pending"),result:Sr("result").$type(),error:be("error"),createdAt:Ct("created_at",{withTimezone:!0}).notNull().defaultNow(),startedAt:Ct("started_at",{withTimezone:!0}),completedAt:Ct("completed_at",{withTimezone:!0})},e=>[Po("idx_memory_experiments_memory").on(e.memoryId),Po("idx_memory_experiments_user").on(e.userId)]);import{boolean as Kr,date as Pr,index as Mt,integer as Or,jsonb as Cr,pgTable as Bt,text as w,timestamp as B,uniqueIndex as qr,uuid as de}from"drizzle-orm/pg-core";var Co=Bt("announcements",{id:de("id").primaryKey().defaultRandom(),version:w("version").notNull().unique(),releaseDate:Pr("release_date").notNull(),subject:w("subject").notNull(),htmlBody:w("html_body").notNull(),textBody:w("text_body").notNull(),sections:Cr("sections").notNull().default({}),status:w("status").notNull().default("draft"),recipientCount:Or("recipient_count"),sentAt:B("sent_at",{withTimezone:!0}),sentBy:de("sent_by"),error:w("error"),createdAt:B("created_at",{withTimezone:!0}).notNull().defaultNow(),updatedAt:B("updated_at",{withTimezone:!0}).notNull().defaultNow()},e=>[Mt("idx_announcements_status").on(e.status),Mt("idx_announcements_created").on(e.createdAt)]),qo=Bt("announcement_deliveries",{id:de("id").primaryKey().defaultRandom(),announcementId:de("announcement_id").notNull(),userId:de("user_id").notNull(),email:w("email").notNull(),status:w("status").notNull().default("pending"),providerId:w("provider_id"),error:w("error"),sentAt:B("sent_at",{withTimezone:!0}),createdAt:B("created_at",{withTimezone:!0}).notNull().defaultNow()},e=>[qr("uniq_announcement_deliveries_announcement_user").on(e.announcementId,e.userId),Mt("idx_announcement_deliveries_user").on(e.userId,e.createdAt)]),Mo=Bt("notification_preferences",{userId:de("user_id").primaryKey(),productAnnouncements:Kr("product_announcements").notNull().default(!0),unsubscribeToken:w("unsubscribe_token").notNull().unique(),unsubscribedAt:B("unsubscribed_at",{withTimezone:!0}),createdAt:B("created_at",{withTimezone:!0}).notNull().defaultNow(),updatedAt:B("updated_at",{withTimezone:!0}).notNull().defaultNow()});import{pgTable as Mr,text as Lt,timestamp as tt,uuid as ot,index as Bo}from"drizzle-orm/pg-core";var R=Mr("org_invitations",{id:ot("id").primaryKey().defaultRandom(),orgId:ot("org_id").notNull().references(()=>u.id,{onDelete:"cascade"}),email:Lt("email").notNull(),role:Lt("role").notNull().default("member"),teamId:ot("team_id").references(()=>v.id,{onDelete:"set null"}),invitedBy:ot("invited_by").notNull().references(()=>o.id),token:Lt("token").notNull().unique(),expiresAt:tt("expires_at",{withTimezone:!0}).notNull(),acceptedAt:tt("accepted_at",{withTimezone:!0}),revokedAt:tt("revoked_at",{withTimezone:!0}),createdAt:tt("created_at",{withTimezone:!0}).notNull().defaultNow()},e=>[Bo("idx_org_invitations_token").on(e.token),Bo("idx_org_invitations_org").on(e.orgId)]);import{pgTable as Br,text as Lr,timestamp as Ur,jsonb as Hr,uuid as Ut,index as Lo}from"drizzle-orm/pg-core";var ue=Br("instruction_events",{id:Ut("id").primaryKey().defaultRandom(),instructionId:Ut("instruction_id").notNull().references(()=>r.id,{onDelete:"cascade"}),eventType:Lr("event_type").notNull(),actorId:Ut("actor_id").notNull(),metadata:Hr("metadata"),createdAt:Ur("created_at",{withTimezone:!0}).defaultNow()},e=>[Lo("idx_instruction_events_instruction").on(e.instructionId),Lo("idx_instruction_events_type").on(e.eventType)]);import{pgTable as Uo,text as nt,timestamp as Ho,uuid as D,integer as Vo,index as le,unique as Vr}from"drizzle-orm/pg-core";var b=Uo("treatment_assignments",{id:D("id").primaryKey().defaultRandom(),userId:D("user_id").notNull().references(()=>o.id,{onDelete:"cascade"}),treatmentType:nt("treatment_type").notNull(),treatmentId:D("treatment_id").notNull(),treatmentVersion:Vo("treatment_version").notNull().default(1),projectId:D("project_id").references(()=>s.id,{onDelete:"set null"}),assignedBy:D("assigned_by").references(()=>o.id,{onDelete:"set null"}),method:nt("method").notNull(),assignedAt:Ho("assigned_at",{withTimezone:!0}).notNull().defaultNow()},e=>[le("idx_treatment_assignments_user").on(e.userId),le("idx_treatment_assignments_treatment").on(e.treatmentType,e.treatmentId),le("idx_treatment_assignments_project").on(e.projectId)]),k=Uo("treatment_exposures",{id:D("id").primaryKey().defaultRandom(),sessionId:D("session_id").notNull().references(()=>d.id,{onDelete:"cascade"}),userId:D("user_id").notNull().references(()=>o.id,{onDelete:"cascade"}),treatmentType:nt("treatment_type").notNull(),treatmentId:D("treatment_id").notNull(),treatmentVersion:Vo("treatment_version").notNull().default(1),assignmentId:D("assignment_id").references(()=>b.id,{onDelete:"set null"}),method:nt("method").notNull(),exposedAt:Ho("exposed_at",{withTimezone:!0}).notNull().defaultNow()},e=>[Vr("treatment_exposures_unique").on(e.sessionId,e.treatmentType,e.treatmentId,e.treatmentVersion),le("idx_treatment_exposures_treatment").on(e.treatmentType,e.treatmentId),le("idx_treatment_exposures_user").on(e.userId),le("idx_treatment_exposures_session").on(e.sessionId)]);import{pgTable as Fr,text as Ht,timestamp as Gr,uuid as rt,integer as Jr,index as Fo,uniqueIndex as Yr}from"drizzle-orm/pg-core";var Go=Fr("pending_treatment_exposures",{id:rt("id").primaryKey().defaultRandom(),userId:rt("user_id").notNull().references(()=>o.id,{onDelete:"cascade"}),externalSessionId:Ht("external_session_id").notNull(),treatmentType:Ht("treatment_type").notNull(),treatmentId:rt("treatment_id").notNull(),treatmentVersion:Jr("treatment_version").notNull().default(1),method:Ht("method").notNull().default("injected"),projectId:rt("project_id").references(()=>s.id,{onDelete:"set null"}),createdAt:Gr("created_at",{withTimezone:!0}).notNull().defaultNow()},e=>[Yr("pending_treatment_exposures_unique").on(e.externalSessionId,e.treatmentType,e.treatmentId,e.treatmentVersion),Fo("idx_pending_treatment_exposures_ext").on(e.externalSessionId),Fo("idx_pending_treatment_exposures_user").on(e.userId)]);import{pgTable as Qr,text as ce,timestamp as Vt,uuid as Ft,jsonb as Wr,uniqueIndex as Xr,index as Jo}from"drizzle-orm/pg-core";var st=Qr("session_terminal_targets",{id:Ft("id").primaryKey().defaultRandom(),userId:Ft("user_id").notNull().references(()=>o.id,{onDelete:"cascade"}),sessionId:Ft("session_id").references(()=>d.id,{onDelete:"set null"}),externalSessionId:ce("external_session_id"),kind:ce("kind").notNull(),target:ce("target").notNull(),status:ce("status").notNull().default("active"),attachCommand:ce("attach_command").notNull(),projectPath:ce("project_path"),metadata:Wr("metadata").notNull().default({}),lastSeenAt:Vt("last_seen_at",{withTimezone:!0}).defaultNow(),createdAt:Vt("created_at",{withTimezone:!0}).defaultNow(),updatedAt:Vt("updated_at",{withTimezone:!0}).defaultNow()},e=>[Xr("idx_session_terminal_targets_user_target").on(e.userId,e.target),Jo("idx_session_terminal_targets_session").on(e.sessionId),Jo("idx_session_terminal_targets_user_status").on(e.userId,e.status)]);import{boolean as $r,index as it,jsonb as Yo,pgTable as Zr,text as X,timestamp as ke,uuid as at,integer as es}from"drizzle-orm/pg-core";var Qo=Zr("session_send_jobs",{id:at("id").primaryKey().defaultRandom(),userId:at("user_id").notNull(),sessionId:at("session_id").notNull().references(()=>d.id,{onDelete:"cascade"}),terminalTargetId:at("terminal_target_id").references(()=>st.id,{onDelete:"set null"}),target:X("target").notNull(),message:X("message").notNull(),submit:$r("submit").notNull().default(!0),delivery:X("delivery").notNull().default("live"),status:X("status").notNull().default("pending"),result:Yo("result"),error:X("error"),attempts:es("attempts").notNull().default(0),taskKind:X("task_kind"),payload:Yo("payload"),claimedBy:X("claimed_by"),claimedAt:ke("claimed_at",{withTimezone:!0}),leaseExpiresAt:ke("lease_expires_at",{withTimezone:!0}),createdAt:ke("created_at",{withTimezone:!0}).defaultNow(),updatedAt:ke("updated_at",{withTimezone:!0}).defaultNow(),completedAt:ke("completed_at",{withTimezone:!0})},e=>[it("idx_session_send_jobs_user").on(e.userId),it("idx_session_send_jobs_session").on(e.sessionId),it("idx_session_send_jobs_status").on(e.status),it("idx_session_send_jobs_pending").on(e.userId,e.status)]);import{pgTable as Xo,text as $,timestamp as dt,jsonb as $o,uuid as L,integer as ts,boolean as os,uniqueIndex as ns,index as Wo,primaryKey as rs}from"drizzle-orm/pg-core";var A=Xo("packs",{id:L("id").primaryKey().defaultRandom(),name:$("name").notNull(),description:$("description").notNull(),scope:$("scope").notNull(),scopeRef:L("scope_ref"),version:$("version").notNull().default("1.0.0"),tags:$("tags").array(),badge:$("badge"),metadata:$o("metadata"),createdBy:L("created_by"),createdAt:dt("created_at",{withTimezone:!0}).defaultNow(),updatedAt:dt("updated_at",{withTimezone:!0}).defaultNow(),archived:os("archived").default(!1),archivedAt:dt("archived_at",{withTimezone:!0}),archivedBy:L("archived_by"),forkedFromId:L("forked_from_id").references(()=>A.id,{onDelete:"set null"}),upstreamVersion:$("upstream_version")},e=>[ns("packs_name_scope_ref_idx").on(e.name,e.scope,e.scopeRef),Wo("idx_packs_scope").on(e.scope,e.scopeRef),Wo("idx_packs_created_by").on(e.createdBy)]),U=Xo("pack_instructions",{packId:L("pack_id").references(()=>A.id,{onDelete:"cascade"}).notNull(),instructionId:L("instruction_id").references(()=>r.id,{onDelete:"cascade"}).notNull(),position:ts("position").notNull().default(0),slotOverrides:$o("slot_overrides"),addedAt:dt("added_at",{withTimezone:!0}).defaultNow(),addedBy:L("added_by")},e=>[rs({columns:[e.packId,e.instructionId]})]);import{pgTable as ss,text as Gt,timestamp as is,jsonb as as,uuid as Jt,index as me}from"drizzle-orm/pg-core";var pe=ss("instruction_usage_events",{id:Jt("id").primaryKey().defaultRandom(),instructionId:Jt("instruction_id").references(()=>r.id,{onDelete:"set null"}),userId:Jt("user_id").notNull(),surface:Gt("surface").notNull(),action:Gt("action").notNull(),metadata:as("metadata"),traceId:Gt("trace_id"),createdAt:is("created_at",{withTimezone:!0}).defaultNow()},e=>[me("idx_usage_events_instruction").on(e.instructionId),me("idx_usage_events_user").on(e.userId),me("idx_usage_events_surface").on(e.surface),me("idx_usage_events_action").on(e.action),me("idx_usage_events_created_at").on(e.createdAt),me("idx_usage_events_user_created").on(e.userId,e.createdAt)]);import{pgTable as ds,text as ut,timestamp as Zo,jsonb as us,uuid as en,index as Yt}from"drizzle-orm/pg-core";var tn=ds("worker_connections",{id:en("id").primaryKey().defaultRandom(),userId:en("user_id").notNull(),workerType:ut("worker_type").notNull().default("mcp"),clientName:ut("client_name").notNull(),clientVersion:ut("client_version"),workerVersion:ut("worker_version"),lastHeartbeat:Zo("last_heartbeat",{withTimezone:!0}).notNull().defaultNow(),connectedAt:Zo("connected_at",{withTimezone:!0}).notNull().defaultNow(),metadata:us("metadata")},e=>[Yt("idx_worker_connections_user").on(e.userId),Yt("idx_worker_connections_heartbeat").on(e.userId,e.lastHeartbeat),Yt("idx_worker_connections_type").on(e.userId,e.workerType)]);import{pgTable as ls,text as lt,timestamp as cs,jsonb as ms,uuid as on,index as nn}from"drizzle-orm/pg-core";var rn=ls("cli_setup_events",{id:on("id").primaryKey().defaultRandom(),userId:on("user_id").notNull(),deviceId:lt("device_id").notNull(),event:lt("event").notNull(),cliVersion:lt("cli_version"),os:lt("os"),props:ms("props").notNull().default({}),createdAt:cs("created_at",{withTimezone:!0}).notNull().defaultNow()},e=>[nn("idx_cli_setup_events_user").on(e.userId,e.createdAt),nn("idx_cli_setup_events_device").on(e.deviceId,e.createdAt)]);import{pgTable as ps,text as Z,integer as _s,boolean as fs,timestamp as xs,jsonb as gs,uuid as Ns,index as sn}from"drizzle-orm/pg-core";var an=ps("cli_error_events",{id:Ns("id").primaryKey().defaultRandom(),deviceId:Z("device_id"),event:Z("event").notNull(),command:Z("command"),statusCode:_s("status_code"),message:Z("message"),cliVersion:Z("cli_version"),os:Z("os"),nodeVersion:Z("node_version"),proxied:fs("proxied"),props:gs("props").notNull().default({}),createdAt:xs("created_at",{withTimezone:!0}).notNull().defaultNow()},e=>[sn("idx_cli_error_events_created").on(e.createdAt),sn("idx_cli_error_events_device").on(e.deviceId,e.createdAt)]);import{pgTable as _e,text as _,timestamp as E,jsonb as T,uuid as p,integer as H,boolean as dn,index as N,unique as vs}from"drizzle-orm/pg-core";var n=_e("eval_targets",{id:p("id").primaryKey().defaultRandom(),userId:p("user_id").notNull(),name:_("name").notNull(),type:_("type").notNull(),content:_("content").notNull(),description:_("description").notNull().default(""),metadata:T("metadata").notNull().default({}),version:H("version").notNull().default(1),parentId:p("parent_id").references(()=>n.id,{onDelete:"set null"}),createdAt:E("created_at",{withTimezone:!0}).defaultNow(),updatedAt:E("updated_at",{withTimezone:!0}).defaultNow()},e=>[N("eval_targets_name_user_idx").on(e.name,e.userId),N("idx_eval_targets_user").on(e.userId),N("idx_eval_targets_type").on(e.type),N("idx_eval_targets_parent").on(e.parentId)]),S=_e("evals",{id:p("id").primaryKey().defaultRandom(),evalTargetId:p("eval_target_id").notNull().references(()=>n.id,{onDelete:"cascade"}),name:_("name").notNull(),prompt:_("prompt").notNull(),expectedOutput:_("expected_output").notNull().default(""),files:T("files").notNull().default([]),expectations:T("expectations").notNull().default([]),createdAt:E("created_at",{withTimezone:!0}).defaultNow(),updatedAt:E("updated_at",{withTimezone:!0}).defaultNow()},e=>[N("idx_evals_target").on(e.evalTargetId)]),K=_e("eval_runs",{id:p("id").primaryKey().defaultRandom(),jobId:p("job_id"),evalId:p("eval_id").notNull().references(()=>S.id,{onDelete:"cascade"}),evalTargetId:p("eval_target_id").notNull().references(()=>n.id,{onDelete:"cascade"}),evalTargetVersion:H("eval_target_version").notNull(),configuration:_("configuration").notNull(),runNumber:H("run_number").notNull().default(1),iteration:H("iteration").notNull().default(1),status:_("status").notNull().default("completed"),outputs:T("outputs").notNull().default({}),timing:T("timing").notNull().default({}),grading:T("grading").notNull().default({}),comparison:T("comparison"),createdAt:E("created_at",{withTimezone:!0}).defaultNow()},e=>[N("idx_eval_runs_eval").on(e.evalId),N("idx_eval_runs_target").on(e.evalTargetId),N("idx_eval_runs_iteration").on(e.evalTargetId,e.iteration)]),un=_e("eval_comparisons",{id:p("id").primaryKey().defaultRandom(),userId:p("user_id").notNull(),targetAId:p("target_a_id").notNull().references(()=>n.id,{onDelete:"cascade"}),targetBId:p("target_b_id").notNull().references(()=>n.id,{onDelete:"cascade"}),targetAVersion:H("target_a_version").notNull(),targetBVersion:H("target_b_version").notNull(),isSwapped:dn("is_swapped").notNull().default(!1),winnerTargetId:p("winner_target_id").references(()=>n.id,{onDelete:"set null"}),perEval:T("per_eval").notNull().default([]),overall:T("overall").notNull().default({}),rawOutput:_("raw_output"),model:_("model"),status:_("status").notNull().default("completed"),createdAt:E("created_at",{withTimezone:!0}).defaultNow()},e=>[N("idx_eval_comparisons_target_a").on(e.targetAId),N("idx_eval_comparisons_target_b").on(e.targetBId),N("idx_eval_comparisons_user").on(e.userId)]),ln=_e("eval_grade_annotations",{id:p("id").primaryKey().defaultRandom(),userId:p("user_id").notNull(),evalRunId:p("eval_run_id").notNull().references(()=>K.id,{onDelete:"cascade"}),evalTargetId:p("eval_target_id").notNull().references(()=>n.id,{onDelete:"cascade"}),expectationIndex:H("expectation_index").notNull(),expectationText:_("expectation_text").notNull(),judgePassed:dn("judge_passed").notNull(),judgeMethod:_("judge_method").notNull(),judgeModel:_("judge_model"),verdict:_("verdict").notNull(),flag:_("flag"),note:_("note"),createdAt:E("created_at",{withTimezone:!0}).defaultNow(),updatedAt:E("updated_at",{withTimezone:!0}).defaultNow()},e=>[N("idx_eval_grade_annotations_target").on(e.evalTargetId),N("idx_eval_grade_annotations_run").on(e.evalRunId),vs("eval_grade_annotations_eval_run_id_expectation_index_key").on(e.evalRunId,e.expectationIndex)]),fe=_e("benchmarks",{id:p("id").primaryKey().defaultRandom(),evalTargetId:p("eval_target_id").notNull().references(()=>n.id,{onDelete:"cascade"}),iteration:H("iteration").notNull().default(1),runSummary:T("run_summary").notNull().default({}),notes:T("notes").notNull().default([]),feedback:T("feedback"),createdAt:E("created_at",{withTimezone:!0}).defaultNow()},e=>[N("idx_benchmarks_target").on(e.evalTargetId)]);import{pgTable as mn,text as Qt,timestamp as Wt,jsonb as pn,uuid as xe,integer as Ee,index as ct,real as cn}from"drizzle-orm/pg-core";var ge=mn("trigger_evals",{id:xe("id").primaryKey().defaultRandom(),evalTargetId:xe("eval_target_id").notNull().references(()=>n.id,{onDelete:"cascade"}),userId:xe("user_id").notNull(),queries:pn("queries").notNull().default([]),status:Qt("status").notNull().default("pending_review"),trainIndices:Ee("train_indices").array().default([]),testIndices:Ee("test_indices").array().default([]),createdAt:Wt("created_at",{withTimezone:!0}).defaultNow(),updatedAt:Wt("updated_at",{withTimezone:!0}).defaultNow()},e=>[ct("idx_trigger_evals_target").on(e.evalTargetId),ct("idx_trigger_evals_user").on(e.userId)]),Ne=mn("optimization_runs",{id:xe("id").primaryKey().defaultRandom(),evalTargetId:xe("eval_target_id").notNull().references(()=>n.id,{onDelete:"cascade"}),userId:xe("user_id").notNull(),type:Qt("type").notNull(),iteration:Ee("iteration").notNull(),inputVersion:Ee("input_version").notNull(),outputVersion:Ee("output_version"),trainScore:cn("train_score"),testScore:cn("test_score"),analysis:pn("analysis").notNull().default({}),status:Qt("status").notNull().default("running"),createdAt:Wt("created_at",{withTimezone:!0}).defaultNow()},e=>[ct("idx_optimization_runs_target").on(e.evalTargetId),ct("idx_optimization_runs_user").on(e.userId)]);import{pgTable as hs,text as V,timestamp as Is,jsonb as Se,uuid as Xt,integer as $t,real as ys,index as Ke,uniqueIndex as _n}from"drizzle-orm/pg-core";var F=hs("context_snapshots",{id:Xt("id").primaryKey().defaultRandom(),sessionId:Xt("session_id").references(()=>d.id,{onDelete:"cascade"}),userId:Xt("user_id").notNull().references(()=>o.id,{onDelete:"cascade"}),sequence:$t("sequence").notNull().default(0),provider:V("provider").notNull(),model:V("model").notNull(),systemPrompt:V("system_prompt").notNull(),injectedInstructions:Se("injected_instructions").notNull().default([]),messagesSummary:Se("messages_summary").notNull(),tools:Se("tools").notNull().default([]),systemHash:V("system_hash").notNull(),requestHash:V("request_hash").notNull().default(""),toolsHash:V("tools_hash"),injectedHash:V("injected_hash"),messagesDelta:Se("messages_delta").default([]),messagesDeltaRef:V("messages_delta_ref"),maxTokens:$t("max_tokens"),temperature:ys("temperature"),estimatedTokens:$t("estimated_tokens"),capturedAt:Is("captured_at",{withTimezone:!0}).notNull().defaultNow(),metadata:Se("metadata").default({})},e=>[Ke("idx_context_snapshots_session").on(e.sessionId),Ke("idx_context_snapshots_user").on(e.userId),Ke("idx_context_snapshots_hash").on(e.systemHash),Ke("idx_context_snapshots_request_hash").on(e.requestHash),_n("idx_snapshots_session_request").on(e.sessionId,e.requestHash),_n("idx_snapshots_session_sequence").on(e.sessionId,e.sequence),Ke("idx_context_snapshots_user_session_captured").on(e.userId,e.sessionId,e.capturedAt.desc())]);import{pgTable as Ts,text as fn,timestamp as ws,jsonb as As,integer as zs,index as Ds}from"drizzle-orm/pg-core";var xn=Ts("content_blobs",{hash:fn("hash").primaryKey(),contentType:fn("content_type").notNull(),content:As("content").notNull(),sizeBytes:zs("size_bytes").notNull().default(0),createdAt:ws("created_at",{withTimezone:!0}).defaultNow()},e=>[Ds("idx_content_blobs_type").on(e.contentType)]);import{pgTable as js,text as mt,timestamp as Pe,jsonb as pt,uuid as Zt,index as _t,integer as Rs}from"drizzle-orm/pg-core";var ve=js("eval_jobs",{id:Zt("id").primaryKey().defaultRandom(),userId:Zt("user_id").notNull(),evalTargetId:Zt("eval_target_id").notNull().references(()=>n.id,{onDelete:"cascade"}),status:mt("status").notNull().default("pending"),config:pt("config").notNull().default({}),progress:pt("progress").notNull().default({}),result:pt("result"),error:mt("error"),attempts:Rs("attempts").notNull().default(0),taskKind:mt("task_kind"),payload:pt("payload"),claimedBy:mt("claimed_by"),claimedAt:Pe("claimed_at",{withTimezone:!0}),leaseExpiresAt:Pe("lease_expires_at",{withTimezone:!0}),createdAt:Pe("created_at",{withTimezone:!0}).defaultNow(),updatedAt:Pe("updated_at",{withTimezone:!0}).defaultNow(),completedAt:Pe("completed_at",{withTimezone:!0})},e=>[_t("idx_eval_jobs_user").on(e.userId),_t("idx_eval_jobs_target").on(e.evalTargetId),_t("idx_eval_jobs_status").on(e.status),_t("idx_eval_jobs_pending").on(e.userId,e.status)]);import{pgTable as bs,text as Oe,timestamp as Ce,jsonb as gn,uuid as Nn,integer as ks,index as vn}from"drizzle-orm/pg-core";var hn=bs("agent_jobs",{id:Nn("id").primaryKey().defaultRandom(),userId:Nn("user_id").notNull(),taskKind:Oe("task_kind").notNull(),status:Oe("status").notNull().default("pending"),payload:gn("payload").notNull(),dedupeKey:Oe("dedupe_key"),result:gn("result"),error:Oe("error"),attempts:ks("attempts").notNull().default(0),claimedBy:Oe("claimed_by"),claimedAt:Ce("claimed_at",{withTimezone:!0}),leaseExpiresAt:Ce("lease_expires_at",{withTimezone:!0}),createdAt:Ce("created_at",{withTimezone:!0}).notNull().defaultNow(),updatedAt:Ce("updated_at",{withTimezone:!0}).notNull().defaultNow(),completedAt:Ce("completed_at",{withTimezone:!0})},e=>[vn("idx_agent_jobs_claim").on(e.userId,e.status,e.taskKind,e.createdAt),vn("idx_agent_jobs_dedupe").on(e.userId,e.taskKind,e.dedupeKey)]);import{pgTable as Es,text as qe,timestamp as Me,jsonb as ft,uuid as eo,index as xt,integer as Ss}from"drizzle-orm/pg-core";var In=Es("insights_jobs",{id:eo("id").primaryKey().defaultRandom(),userId:eo("user_id").notNull(),status:qe("status").notNull().default("pending"),projectPath:qe("project_path"),projectId:eo("project_id").references(()=>s.id,{onDelete:"set null"}),config:ft("config").notNull().default({}),progress:ft("progress").notNull().default({}),result:ft("result"),error:qe("error"),attempts:Ss("attempts").notNull().default(0),taskKind:qe("task_kind"),payload:ft("payload"),claimedBy:qe("claimed_by"),claimedAt:Me("claimed_at",{withTimezone:!0}),leaseExpiresAt:Me("lease_expires_at",{withTimezone:!0}),createdAt:Me("created_at",{withTimezone:!0}).defaultNow(),updatedAt:Me("updated_at",{withTimezone:!0}).defaultNow(),completedAt:Me("completed_at",{withTimezone:!0})},e=>[xt("idx_insights_jobs_user").on(e.userId),xt("idx_insights_jobs_status").on(e.status),xt("idx_insights_jobs_pending").on(e.userId,e.status),xt("idx_insights_jobs_project").on(e.projectId)]);import{pgTable as Ks,text as to,timestamp as gt,uuid as yn,index as Ps,uniqueIndex as Os}from"drizzle-orm/pg-core";var he=Ks("api_keys",{id:yn("id").primaryKey().defaultRandom(),userId:yn("user_id").notNull().references(()=>o.id,{onDelete:"cascade"}),name:to("name").notNull(),keyHash:to("key_hash").notNull(),keyPrefix:to("key_prefix").notNull(),lastUsedAt:gt("last_used_at",{withTimezone:!0}),expiresAt:gt("expires_at",{withTimezone:!0}),revokedAt:gt("revoked_at",{withTimezone:!0}),createdAt:gt("created_at",{withTimezone:!0}).defaultNow()},e=>[Ps("idx_api_keys_user").on(e.userId),Os("idx_api_keys_hash").on(e.keyHash)]);import{pgTable as Cs,text as oo,timestamp as Tn,uuid as qs,index as Ms}from"drizzle-orm/pg-core";var wn=Cs("extension_auth_codes",{code:oo("code").primaryKey(),userId:qs("user_id").notNull().references(()=>o.id,{onDelete:"cascade"}),editor:oo("editor"),email:oo("email"),expiresAt:Tn("expires_at",{withTimezone:!0}).notNull(),createdAt:Tn("created_at",{withTimezone:!0}).defaultNow()},e=>[Ms("idx_ext_auth_codes_expiry").on(e.expiresAt)]);import{pgTable as Bs,text as Ls,timestamp as An,jsonb as Us,uuid as no,index as zn}from"drizzle-orm/pg-core";var Ie=Bs("eval_conversations",{id:no("id").primaryKey().defaultRandom(),evalTargetId:no("eval_target_id").notNull().references(()=>n.id,{onDelete:"cascade"}),userId:no("user_id").notNull(),messages:Us("messages").notNull().default([]),status:Ls("status").notNull().default("active"),createdAt:An("created_at",{withTimezone:!0}).defaultNow(),updatedAt:An("updated_at",{withTimezone:!0}).defaultNow()},e=>[zn("idx_eval_conversations_target").on(e.evalTargetId),zn("idx_eval_conversations_user").on(e.userId)]);import{pgTable as Hs,text as P,timestamp as Dn,jsonb as Vs,uuid as ro}from"drizzle-orm/pg-core";var jn=Hs("skill_submissions",{id:ro("id").primaryKey().defaultRandom(),skillId:P("skill_id").notNull(),name:P("name").notNull(),description:P("description").notNull(),category:P("category").notNull(),tools:P("tools").array().notNull(),tags:P("tags").array().default([]),content:P("content").notNull(),status:P("status").notNull().default("pending"),submittedBy:ro("submitted_by").notNull(),reviewedBy:ro("reviewed_by"),reviewNote:P("review_note"),metadata:Vs("metadata"),createdAt:Dn("created_at",{withTimezone:!0}).defaultNow(),updatedAt:Dn("updated_at",{withTimezone:!0}).defaultNow()});import{pgTable as Fs,text as Be,timestamp as Rn,jsonb as Gs,uuid as Js,uniqueIndex as Ys,index as bn}from"drizzle-orm/pg-core";var kn=Fs("harness_releases",{id:Js("id").primaryKey().defaultRandom(),harness:Be("harness").notNull(),version:Be("version").notNull(),publishedAt:Rn("published_at",{withTimezone:!0}).notNull(),title:Be("title"),body:Be("body"),categories:Gs("categories").default({}),url:Be("url"),createdAt:Rn("created_at",{withTimezone:!0}).defaultNow()},e=>[Ys("idx_harness_releases_unique").on(e.harness,e.version),bn("idx_harness_releases_harness").on(e.harness),bn("idx_harness_releases_published").on(e.publishedAt)]);import{pgTable as Qs,text as ye,timestamp as En,jsonb as Ws,uuid as Sn,index as Kn,uniqueIndex as Xs}from"drizzle-orm/pg-core";var so=Qs("notifications",{id:Sn("id").primaryKey().defaultRandom(),userId:Sn("user_id").notNull(),type:ye("type").notNull(),title:ye("title").notNull(),body:ye("body"),url:ye("url"),sourceTable:ye("source_table"),sourceId:ye("source_id"),metadata:Ws("metadata").notNull().default({}),readAt:En("read_at",{withTimezone:!0}),createdAt:En("created_at",{withTimezone:!0}).notNull().defaultNow()},e=>[Kn("idx_notifications_user_created").on(e.userId,e.createdAt),Kn("idx_notifications_user_unread").on(e.userId),Xs("idx_notifications_source_dedup").on(e.userId,e.sourceTable,e.sourceId)]);import{pgTable as $s,text as Le,timestamp as Ue,jsonb as io,uuid as ao,index as Nt,integer as Zs}from"drizzle-orm/pg-core";var Te=$s("launch_jobs",{id:ao("id").primaryKey().defaultRandom(),userId:ao("user_id").notNull(),tool:Le("tool").notNull(),status:Le("status").notNull().default("pending"),config:io("config").notNull().default({}),result:io("result"),error:Le("error"),attempts:Zs("attempts").notNull().default(0),taskKind:Le("task_kind"),payload:io("payload"),claimedBy:Le("claimed_by"),claimedAt:Ue("claimed_at",{withTimezone:!0}),leaseExpiresAt:Ue("lease_expires_at",{withTimezone:!0}),createdAt:Ue("created_at",{withTimezone:!0}).defaultNow(),updatedAt:Ue("updated_at",{withTimezone:!0}).defaultNow(),completedAt:Ue("completed_at",{withTimezone:!0}),runId:ao("run_id").references(()=>x.id,{onDelete:"set null"})},e=>[Nt("idx_launch_jobs_user").on(e.userId),Nt("idx_launch_jobs_status").on(e.status),Nt("idx_launch_jobs_pending").on(e.userId,e.status),Nt("idx_launch_jobs_run").on(e.runId)]);import{pgTable as Pn,uuid as O,text as He,real as ei,timestamp as vt,boolean as ti,uniqueIndex as oi,index as Ve}from"drizzle-orm/pg-core";var uo=Pn("instruction_suggestions",{id:O("id").primaryKey().defaultRandom(),userId:O("user_id").notNull().references(()=>o.id,{onDelete:"cascade"}),instructionId:O("instruction_id").notNull().references(()=>r.id,{onDelete:"cascade"}),projectPath:He("project_path").notNull(),projectId:O("project_id").references(()=>s.id,{onDelete:"set null"}),score:ei("score").notNull(),reason:He("reason").notNull(),generatedAt:vt("generated_at",{withTimezone:!0}).notNull().defaultNow(),isStale:ti("is_stale").notNull().default(!1),dismissedAt:vt("dismissed_at",{withTimezone:!0}),acceptedAt:vt("accepted_at",{withTimezone:!0}),promotedToInstructionId:O("promoted_to_instruction_id").references(()=>r.id,{onDelete:"set null"})},e=>[oi("idx_instruction_suggestions_user_project_instruction").on(e.userId,e.projectPath,e.instructionId),Ve("idx_instruction_suggestions_user_project").on(e.userId,e.projectPath),Ve("idx_instruction_suggestions_user_proj_id").on(e.userId,e.projectId),Ve("idx_instruction_suggestions_generated_at").on(e.generatedAt)]),On=Pn("instruction_suggestion_events",{id:O("id").primaryKey().defaultRandom(),suggestionId:O("suggestion_id").notNull().references(()=>uo.id,{onDelete:"cascade"}),userId:O("user_id").notNull().references(()=>o.id,{onDelete:"cascade"}),eventType:He("event_type").notNull(),tool:He("tool"),sessionId:O("session_id"),projectPath:He("project_path").notNull(),createdAt:vt("created_at",{withTimezone:!0}).notNull().defaultNow()},e=>[Ve("idx_instruction_suggestion_events_suggestion_id").on(e.suggestionId),Ve("idx_instruction_suggestion_events_user_id").on(e.userId)]);import{pgTable as ni,text as lo,integer as ri,numeric as Fe,timestamp as co,index as si,primaryKey as ii}from"drizzle-orm/pg-core";var Cn=ni("model_pricing",{provider:lo("provider").notNull(),modelId:lo("model_id").notNull(),inputPerM:Fe("input_per_m").notNull(),outputPerM:Fe("output_per_m").notNull(),cacheReadPerM:Fe("cache_read_per_m").notNull(),cacheWrite5mPerM:Fe("cache_write_5m_per_m").notNull(),cacheWrite1hPerM:Fe("cache_write_1h_per_m").notNull(),contextWindow:ri("context_window"),effectiveFrom:co("effective_from",{withTimezone:!0}).notNull(),effectiveUntil:co("effective_until",{withTimezone:!0}),source:lo("source").notNull(),verifiedAt:co("verified_at",{withTimezone:!0})},e=>[ii({columns:[e.provider,e.modelId,e.effectiveFrom]}),si("idx_model_pricing_active").on(e.provider,e.modelId,e.effectiveFrom.desc())]);import{pgTable as ai,text as ee,numeric as qn,timestamp as Mn,uuid as Bn,jsonb as di,index as Ln}from"drizzle-orm/pg-core";var Un=ai("limit_observations",{id:Bn("id").primaryKey().defaultRandom(),observedAt:Mn("observed_at",{withTimezone:!0}).notNull().defaultNow(),provider:ee("provider").notNull(),plan:ee("plan").notNull(),limitType:ee("limit_type").notNull(),value:qn("value").notNull(),unit:ee("unit").notNull(),comparator:ee("comparator").notNull().default("="),resetsAt:Mn("resets_at",{withTimezone:!0}),sourceType:ee("source_type").notNull(),sourceUrl:ee("source_url"),sourceEvidence:di("source_evidence"),confidence:qn("confidence").notNull(),userId:Bn("user_id")},e=>[Ln("idx_limit_obs_lookup").on(e.provider,e.plan,e.limitType,e.observedAt.desc()),Ln("idx_limit_obs_user").on(e.userId,e.observedAt.desc())]);import{pgTable as ui,text as ht,timestamp as li,uuid as ci,jsonb as mi,boolean as pi,uniqueIndex as _i}from"drizzle-orm/pg-core";var Hn=ui("provider_docs_snapshots",{id:ci("id").primaryKey().defaultRandom(),fetchedAt:li("fetched_at",{withTimezone:!0}).notNull().defaultNow(),provider:ht("provider").notNull(),docUrl:ht("doc_url").notNull(),contentHash:ht("content_hash").notNull(),content:ht("content").notNull(),parseSuccess:pi("parse_success").notNull(),parseErrors:mi("parse_errors")},e=>[_i("idx_docs_dedup").on(e.provider,e.docUrl,e.contentHash)]);import{pgTable as fi,text as It,numeric as Vn,timestamp as Fn,uuid as xi,primaryKey as gi,index as Ni}from"drizzle-orm/pg-core";var Gn=fi("plan_limits_active",{provider:It("provider").notNull(),plan:It("plan").notNull(),limitType:It("limit_type").notNull(),value:Vn("value").notNull(),unit:It("unit").notNull(),effectiveFrom:Fn("effective_from",{withTimezone:!0}).notNull(),effectiveUntil:Fn("effective_until",{withTimezone:!0}),confidence:Vn("confidence").notNull(),sourceObservationIds:xi("source_observation_ids").array().notNull()},e=>[gi({columns:[e.provider,e.plan,e.limitType,e.effectiveFrom]}),Ni("idx_plan_limits_lookup").on(e.provider,e.plan,e.limitType,e.effectiveFrom.desc())]);import{pgTable as vi,text as mo,timestamp as hi,uuid as Jn,jsonb as Ii,index as yi}from"drizzle-orm/pg-core";var Yn=vi("alert_dispatches",{id:Jn("id").primaryKey().defaultRandom(),userId:Jn("user_id").notNull(),alertKey:mo("alert_key").notNull(),severity:mo("severity").notNull(),lastDispatchedAt:hi("last_dispatched_at",{withTimezone:!0}).notNull().defaultNow(),lastState:Ii("last_state").notNull(),channel:mo("channel").notNull()},e=>[yi("idx_alert_user_key").on(e.userId,e.alertKey,e.lastDispatchedAt.desc())]);import{pgTable as Ti,text as po,timestamp as Qn,uuid as _o,integer as wi,index as Ai,unique as zi}from"drizzle-orm/pg-core";var Wn=Ti("scaffolding_fingerprints",{id:_o("id").primaryKey().defaultRandom(),userId:_o("user_id").notNull(),harness:po("harness").notNull(),model:po("model").notNull(),toolsHash:po("tools_hash").notNull(),firstSeenAt:Qn("first_seen_at",{withTimezone:!0}).notNull().defaultNow(),lastSeenAt:Qn("last_seen_at",{withTimezone:!0}).notNull().defaultNow(),snapshotCount:wi("snapshot_count").notNull().default(1),firstSessionId:_o("first_session_id")},e=>[zi("scaffolding_fingerprints_user_id_harness_model_tools_hash_key").on(e.userId,e.harness,e.model,e.toolsHash),Ai("idx_scaffolding_fp_segment").on(e.userId,e.harness,e.model)]);import{pgTable as Di,text as fo,timestamp as ji,jsonb as Ri,uuid as Xn,integer as bi,unique as ki}from"drizzle-orm/pg-core";var $n=Di("scaffolding_segments",{id:Xn("id").primaryKey().defaultRandom(),userId:Xn("user_id").notNull(),harness:fo("harness").notNull(),model:fo("model").notNull(),coreNames:Ri("core_names").notNull(),coreHash:fo("core_hash").notNull(),activeFingerprints:bi("active_fingerprints").notNull(),computedAt:ji("computed_at",{withTimezone:!0}).notNull().defaultNow()},e=>[ki("scaffolding_segments_user_id_harness_model_key").on(e.userId,e.harness,e.model)]);import{drizzle as nr}from"drizzle-orm/postgres-js";import rr from"postgres";var yt={};yr(yt,{agentJobs:()=>hn,agentRuns:()=>x,agentRunsRelations:()=>Gi,alertDispatches:()=>Yn,announcementDeliveries:()=>qo,announcements:()=>Co,apiKeys:()=>he,apiKeysRelations:()=>Si,benchmarks:()=>fe,benchmarksRelations:()=>ra,cliErrorEvents:()=>an,cliSetupEvents:()=>rn,contentBlobs:()=>xn,contextSnapshots:()=>F,contextSnapshotsRelations:()=>ua,evalComparisons:()=>un,evalConversations:()=>Ie,evalConversationsRelations:()=>da,evalGradeAnnotations:()=>ln,evalJobs:()=>ve,evalJobsRelations:()=>aa,evalRuns:()=>K,evalRunsRelations:()=>na,evalTargets:()=>n,evalTargetsRelations:()=>ta,evals:()=>S,evalsRelations:()=>oa,extensionAuthCodes:()=>wn,harnessReleases:()=>kn,insightsJobs:()=>In,instructionEvents:()=>ue,instructionEventsRelations:()=>Bi,instructionSuggestionEvents:()=>On,instructionSuggestions:()=>uo,instructionUsageEvents:()=>pe,instructionUsageEventsRelations:()=>ea,instructionVersions:()=>re,instructionVersionsRelations:()=>Ui,instructions:()=>r,instructionsRelations:()=>Mi,launchJobs:()=>Te,launchJobsRelations:()=>Ji,limitObservations:()=>Un,memories:()=>y,memoriesRelations:()=>Li,memoryExperiments:()=>Oo,modelPricing:()=>Cn,notificationPreferences:()=>Mo,notifications:()=>so,optimizationRuns:()=>Ne,optimizationRunsRelations:()=>ia,orgInvitations:()=>R,orgInvitationsRelations:()=>Oi,organizations:()=>u,organizationsRelations:()=>Ki,packInstructions:()=>U,packInstructionsRelations:()=>Zi,packs:()=>A,packsRelations:()=>$i,pendingTreatmentExposures:()=>Go,planLimitsActive:()=>Gn,profiles:()=>o,profilesRelations:()=>Ei,projectCheckouts:()=>bo,projectInstructions:()=>q,projectInstructionsRelations:()=>Vi,projects:()=>s,projectsRelations:()=>Hi,providerDocsSnapshots:()=>Hn,scaffoldingFingerprints:()=>Wn,scaffoldingSegments:()=>$n,sessionEvents:()=>ie,sessionEventsRelations:()=>Yi,sessionInstructions:()=>M,sessionInstructionsRelations:()=>Qi,sessionSendJobs:()=>Qo,sessionTerminalTargets:()=>st,sessions:()=>d,sessionsRelations:()=>Fi,skillSubmissions:()=>jn,teams:()=>v,teamsRelations:()=>Pi,treatmentAssignments:()=>b,treatmentAssignmentsRelations:()=>Wi,treatmentExposures:()=>k,treatmentExposuresRelations:()=>Xi,triggerEvals:()=>ge,triggerEvalsRelations:()=>sa,userOrganizations:()=>oe,userOrganizationsRelations:()=>Ci,userTeams:()=>ne,userTeamsRelations:()=>qi,workerConnections:()=>tn});import{relations as i}from"drizzle-orm";var Ei=i(o,({many:e})=>({sessions:e(d),contextSnapshots:e(F),apiKeys:e(he)})),Si=i(he,({one:e})=>({profile:e(o,{fields:[he.userId],references:[o.id]})})),Ki=i(u,({many:e})=>({teams:e(v),userOrganizations:e(oe),projects:e(s),invitations:e(R)})),Pi=i(v,({one:e,many:t})=>({organization:e(u,{fields:[v.orgId],references:[u.id]}),userTeams:t(ne),invitations:t(R)})),Oi=i(R,({one:e})=>({organization:e(u,{fields:[R.orgId],references:[u.id]}),team:e(v,{fields:[R.teamId],references:[v.id]}),inviter:e(o,{fields:[R.invitedBy],references:[o.id]})})),Ci=i(oe,({one:e})=>({organization:e(u,{fields:[oe.orgId],references:[u.id]})})),qi=i(ne,({one:e})=>({team:e(v,{fields:[ne.teamId],references:[v.id]})})),Mi=i(r,({one:e,many:t})=>({versions:t(re),projectInstructions:t(q),events:t(ue),usageEvents:t(pe),sessionInstructions:t(M),packInstructions:t(U),forkedFrom:e(r,{fields:[r.forkedFromId],references:[r.id]})})),Bi=i(ue,({one:e})=>({instruction:e(r,{fields:[ue.instructionId],references:[r.id]})})),Li=i(y,({one:e,many:t})=>({project:e(s,{fields:[y.projectId],references:[s.id]}),parent:e(y,{fields:[y.parentId],references:[y.id]}),versions:t(y)})),Ui=i(re,({one:e})=>({instruction:e(r,{fields:[re.instructionId],references:[r.id]})})),Hi=i(s,({one:e,many:t})=>({organization:e(u,{fields:[s.orgId],references:[u.id]}),projectInstructions:t(q),sessions:t(d)})),Vi=i(q,({one:e})=>({project:e(s,{fields:[q.projectId],references:[s.id]}),instruction:e(r,{fields:[q.instructionId],references:[r.id]})})),Fi=i(d,({one:e,many:t})=>({profile:e(o,{fields:[d.userId],references:[o.id]}),project:e(s,{fields:[d.projectId],references:[s.id]}),run:e(x,{fields:[d.runId],references:[x.id]}),events:t(ie),sessionInstructions:t(M),treatmentExposures:t(k),contextSnapshots:t(F)})),Gi=i(x,({one:e,many:t})=>({profile:e(o,{fields:[x.userId],references:[o.id]}),organization:e(u,{fields:[x.orgId],references:[u.id]}),project:e(s,{fields:[x.projectId],references:[s.id]}),sessions:t(d),launchJobs:t(Te)})),Ji=i(Te,({one:e})=>({run:e(x,{fields:[Te.runId],references:[x.id]})})),Yi=i(ie,({one:e})=>({session:e(d,{fields:[ie.sessionId],references:[d.id]})})),Qi=i(M,({one:e})=>({session:e(d,{fields:[M.sessionId],references:[d.id]}),instruction:e(r,{fields:[M.instructionId],references:[r.id]})})),Wi=i(b,({one:e,many:t})=>({owner:e(o,{fields:[b.userId],references:[o.id]}),project:e(s,{fields:[b.projectId],references:[s.id]}),exposures:t(k)})),Xi=i(k,({one:e})=>({session:e(d,{fields:[k.sessionId],references:[d.id]}),owner:e(o,{fields:[k.userId],references:[o.id]}),assignment:e(b,{fields:[k.assignmentId],references:[b.id]})})),$i=i(A,({one:e,many:t})=>({packInstructions:t(U),forkedFrom:e(A,{fields:[A.forkedFromId],references:[A.id]})})),Zi=i(U,({one:e})=>({pack:e(A,{fields:[U.packId],references:[A.id]}),instruction:e(r,{fields:[U.instructionId],references:[r.id]})})),ea=i(pe,({one:e})=>({instruction:e(r,{fields:[pe.instructionId],references:[r.id]})})),ta=i(n,({one:e,many:t})=>({parent:e(n,{fields:[n.parentId],references:[n.id]}),evals:t(S),evalRuns:t(K),benchmarks:t(fe),triggerEvals:t(ge),optimizationRuns:t(Ne),evalJobs:t(ve),evalConversations:t(Ie)})),oa=i(S,({one:e,many:t})=>({evalTarget:e(n,{fields:[S.evalTargetId],references:[n.id]}),runs:t(K)})),na=i(K,({one:e})=>({eval:e(S,{fields:[K.evalId],references:[S.id]}),evalTarget:e(n,{fields:[K.evalTargetId],references:[n.id]})})),ra=i(fe,({one:e})=>({evalTarget:e(n,{fields:[fe.evalTargetId],references:[n.id]})})),sa=i(ge,({one:e})=>({evalTarget:e(n,{fields:[ge.evalTargetId],references:[n.id]})})),ia=i(Ne,({one:e})=>({evalTarget:e(n,{fields:[Ne.evalTargetId],references:[n.id]})})),aa=i(ve,({one:e})=>({evalTarget:e(n,{fields:[ve.evalTargetId],references:[n.id]})})),da=i(Ie,({one:e})=>({evalTarget:e(n,{fields:[Ie.evalTargetId],references:[n.id]})})),ua=i(F,({one:e})=>({session:e(d,{fields:[F.sessionId],references:[d.id]}),profile:e(o,{fields:[F.userId],references:[o.id]})}));var Ge=0,Zn=0,Je=0,er=0;var la=0;function xo(){Ge++,Ge>Zn&&(Zn=Ge)}m(xo,"trackDbOpStart");function go(){Ge>0&&Ge--}m(go,"trackDbOpEnd");function No(){Je++,Je>er&&(er=Je)}m(No,"trackHeavyDbOpStart");function vo(){Je>0&&Je--}m(vo,"trackHeavyDbOpEnd");function tr(){la++}m(tr,"recordQueryDeadline");var wt,zt,ho=!1,Tt;var or,Dt,At;function sr(e){let t=process.env[e];if(!t)throw new Error(`Missing required env var: ${e}`);return t}m(sr,"getEnv");function ir(){if(ho)throw new Error("getDb() called after closeDb(): the connection pool is closed for shutdown. Stop issuing queries (timers/requests) before draining the pool.");if(!wt){let e=process.env.PG_APPLICATION_NAME||"rulemetric",t=Number(process.env.PG_POOL_MAX)||3,a=Number(process.env.PG_CONNECT_TIMEOUT_S)||10,l=Number(process.env.PG_STATEMENT_TIMEOUT_MS)||0,c=Number(process.env.PG_IDLE_TIMEOUT)||5,f=Number(process.env.PG_KEEP_ALIVE_S)||60;zt=rr(sr("DATABASE_URL"),{prepare:!1,max:t,connect_timeout:a,idle_timeout:c,keep_alive:f,max_lifetime:300,connection:{application_name:e,...l>0?{statement_timeout:l}:{}}}),wt=nr(zt,{schema:yt})}return wt}m(ir,"getDb");function ar(){if(ho)throw new Error("getHeavyDb() called after closeDb(): the connection pool is closed for shutdown. Stop issuing queries (timers/requests) before draining the pool.");if(!At){let e=(process.env.PG_APPLICATION_NAME||"rulemetric")+":heavy",t=Number(process.env.PG_HEAVY_POOL_MAX)||2;Dt=rr(sr("DATABASE_URL"),{prepare:!1,max:t,connect_timeout:Number(process.env.PG_CONNECT_TIMEOUT_S)||10,idle_timeout:Number(process.env.PG_IDLE_TIMEOUT)||5,keep_alive:Number(process.env.PG_KEEP_ALIVE_S)||60,max_lifetime:300,connection:{application_name:e}}),At=nr(Dt,{schema:yt})}return At}m(ar,"getHeavyDb");async function ca(){if(Tt)return Tt;ho=!0;let e=zt,t=or,a=Dt;return zt=void 0,wt=void 0,or=void 0,Dt=void 0,At=void 0,Tt=Promise.allSettled([e?e.end({timeout:5}):Promise.resolve(),t?t.end({timeout:5}):Promise.resolve(),a?a.end({timeout:5}):Promise.resolve()]).then(()=>{}),Tt}m(ca,"closeDb");var ma=new Set(["CONNECT_TIMEOUT","ETIMEDOUT","ENOTFOUND","ECONNREFUSED","EAI_AGAIN"]);function dr(e){let t=e,a=t?.code??t?.cause?.code??t?.errno;return a!==void 0&&ma.has(a)}m(dr,"isRetryableConnectError");var pa=new Set(["CONNECTION_CLOSED","ECONNRESET","EPIPE"]);function ur(e){let t=e,a=t?.code??t?.cause?.code??t?.errno;return a!==void 0&&pa.has(a)}m(ur,"isRetryableResetError");async function lr(e,t={}){let a=t.attempts??3,l=t.baseMs??100,c;for(let f=0;f<a;f++)try{return await e()}catch(h){c=h;let we=dr(h)||t.retryResets===!0&&ur(h);if(f===a-1||!we)throw h;await new Promise(G=>setTimeout(G,l*2**f))}throw c}m(lr,"withDbRetry");var jt=class extends Error{static{m(this,"QueryDeadlineError")}code="QUERY_DEADLINE";constructor(t){super(`Query exceeded the client-side deadline of ${t}ms \u2014 the DB pool is likely saturated (acquire-wait) or holding a dead socket; failing fast to avoid pinning the caller. See client.ts.`),this.name="QueryDeadlineError"}};function cr(){let e=Number(process.env.PG_QUERY_DEADLINE_MS);return Number.isFinite(e)&&e>=0?e:2e4}m(cr,"queryDeadlineMs");function _a(e,t){let a,l=new Promise((c,f)=>{a=setTimeout(()=>{tr(),f(new jt(t))},t);let h=a;typeof h.unref=="function"&&h.unref()});return Promise.race([e,l]).finally(()=>clearTimeout(a))}m(_a,"raceWithDeadline");var mr=new Set(["select","selectDistinct","selectDistinctOn","insert","update","delete","execute","with","$count","refreshMaterializedView"]),pr=new Set(["select","selectDistinct","selectDistinctOn","$count"]);function Io(e,t=!1,a=0,l=!1){return e===null||typeof e!="object"&&typeof e!="function"?e:new Proxy(e,{get(c,f,h){if(f==="then"){let G=Reflect.get(c,f,h);return typeof G!="function"?G:(xr,gr)=>{let Nr=l?No:xo,vr=l?vo:go;Nr();let yo=lr(()=>new Promise((hr,Ir)=>G.call(c,hr,Ir)),{retryResets:t});return(a>0?_a(yo,a):yo).finally(vr).then(xr,gr)}}let we=Reflect.get(c,f,h);return typeof we=="function"?(...G)=>Io(we.apply(c,G),t,a,l):we}})}m(Io,"wrapBuilder");function _r(e,t=!1){let a=t?No:xo,l=t?vo:go;a();try{return Promise.resolve(e()).finally(l)}catch(c){throw l(),c}}m(_r,"gaugeTransaction");var fr=new Proxy({},{get(e,t){let a=ir(),l=a[t];if(typeof t=="string"&&mr.has(t)&&typeof l=="function"){let c=pr.has(t),f=cr();return(...h)=>Io(l.apply(a,h),c,f)}return t==="transaction"&&typeof l=="function"?(...c)=>_r(()=>l.apply(a,c)):l}}),fa=new Proxy({},{get(e,t){let a=ar(),l=a[t];if(typeof t=="string"&&mr.has(t)&&typeof l=="function"){let c=pr.has(t);return(...f)=>Io(l.apply(a,f),c,0,!0)}return t==="transaction"&&typeof l=="function"?(...c)=>_r(()=>l.apply(a,c),!0):l}});export{o as a,x as b,d as c,ie as d,y as e,Oo as f,Co as g,qo as h,Mo as i,ir as j,ca as k};
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{c as R}from"./chunk-6QKI756T.js";import{a as P}from"./chunk-5RBLIVBF.js";import{b as s,c as r,j}from"./chunk-
|
|
1
|
+
import{c as R}from"./chunk-6QKI756T.js";import{a as P}from"./chunk-5RBLIVBF.js";import{b as s,c as r,j}from"./chunk-AP4TQRZJ.js";import{a as g}from"./chunk-ZLLER3HP.js";import{and as y,eq as l,isNotNull as I}from"drizzle-orm";async function O($,p={}){let k=p.db??j(),b=p.removeWorktreeFn??R,n=p.log??(e=>process.stderr.write(`[process_run_cleanup] ${e}
|
|
2
2
|
`)),{runId:t}=$,[i]=await k.select({id:s.id,userId:s.userId,projectPath:s.projectPath}).from(s).where(l(s.id,t)).limit(1);if(!i)throw new P(`Run ${t} not found`);if(!i.projectPath)throw new P(`Run ${t} has no projectPath; cannot resolve a repo root for worktree cleanup`);let c=i.projectPath,v=await k.select({id:r.id,projectPath:r.projectPath}).from(r).where(y(l(r.runId,t),l(r.userId,i.userId),I(r.endedAt))),a=[],u=0,d=0,h=0,m=0,w=new Set;for(let e of v)if(!(!e.projectPath||e.projectPath===c)&&!w.has(e.projectPath)){w.add(e.projectPath);try{let o=await b({repoRoot:c,worktreePath:e.projectPath});o.removed?(u++,a.push({sessionId:e.id,worktreePath:e.projectPath,status:"removed"}),n(`removed worktree ${e.projectPath} (session ${e.id})`)):o.reason==="dirty"?(d++,a.push({sessionId:e.id,worktreePath:e.projectPath,status:"skipped-dirty"}),n(`skipped dirty worktree ${e.projectPath} (session ${e.id}) \u2014 uncommitted changes`)):(h++,a.push({sessionId:e.id,worktreePath:e.projectPath,status:"absent"}),n(`worktree absent ${e.projectPath} (session ${e.id})`))}catch(o){let f=o instanceof Error?o.message:String(o);m++,a.push({sessionId:e.id,worktreePath:e.projectPath,status:"error",error:f.slice(0,1e3)}),n(`error removing worktree ${e.projectPath} (session ${e.id}): ${f}`)}}return n(`run ${t} cleanup: removed=${u} skippedDirty=${d} absent=${h} errored=${m}`),{runId:t,repoRoot:c,removed:u,skippedDirty:d,absent:h,errored:m,worktrees:a}}g(O,"processRunCleanup");export{O as a};
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import{a as I,c as i,d as r,e as a,j as M}from"./chunk-
|
|
1
|
+
import{a as I,c as i,d as r,e as a,j as M}from"./chunk-AP4TQRZJ.js";import{f as v}from"./chunk-RTWRHIKY.js";import{a as y}from"./chunk-ZLLER3HP.js";import{eq as u,and as A,desc as E,inArray as j,isNotNull as D,sql as R}from"drizzle-orm";var x=50,k=24e3,C=3,L=3,O=40,P=4e3,X=new Set(["fact","decision","correction","convention"]),$=`You are distilling DURABLE, PROJECT-SPECIFIC knowledge from an AI coding session so a future agent working on the SAME project starts smarter.
|
|
2
2
|
|
|
3
3
|
Extract ONLY facts / decisions / corrections / conventions that will STILL be true and useful in FUTURE sessions \u2014 architecture facts, deliberate design decisions, corrections of a wrong approach, or project conventions.
|
|
4
4
|
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{a as i}from"./chunk-
|
|
1
|
+
import{a as i}from"./chunk-45VWQP4J.js";import{h as s}from"./chunk-H2ORWIEY.js";import{a as n}from"./chunk-ZLLER3HP.js";async function l(a,c){let{mirrorId:g,evalTargetId:p,config:r}=a,e=n(o=>c.logger.info(o),"log");await i(r,p,e);let t={type:"conversation",conversationId:r.conversationId};return await s(`/api/eval-jobs/${g}/state`,{result:t}).catch(o=>{e(`result persist failed: ${o instanceof Error?o.message:String(o)}`)}),t}n(l,"processConversation");export{l as a};
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import{
|
|
1
|
+
import{b as p}from"./chunk-WQ2BJQYB.js";import{a as c}from"./chunk-ZLLER3HP.js";var y=`You are an expert at improving AI coding instructions, skills, and prompts. You receive eval results showing how well the current content performs, and your job is to propose specific improvements.
|
|
2
2
|
|
|
3
3
|
You will receive:
|
|
4
4
|
1. The current content of the eval target
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import{
|
|
1
|
+
import{b as u}from"./chunk-WQ2BJQYB.js";import{a as o}from"./chunk-ZLLER3HP.js";var l=`You are a meta-judge evaluating the quality of an eval run \u2014 not the code output, but whether the test cases and grading themselves are rigorous and meaningful.
|
|
2
2
|
|
|
3
3
|
You will receive a summary of eval cases, their expectations, and grading results.
|
|
4
4
|
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import{a as
|
|
1
|
+
import{a as v,b as x}from"./chunk-S6B2R2LL.js";import{b as h}from"./chunk-WQ2BJQYB.js";import{a as c}from"./chunk-ZLLER3HP.js";var _=`You are a rigorous eval grader. Your job is to evaluate whether an AI assistant's output meets a set of expectations.
|
|
2
2
|
|
|
3
3
|
You will receive:
|
|
4
4
|
1. The original prompt that was given to the AI
|
|
@@ -45,9 +45,9 @@ You MUST respond with ONLY a valid JSON object matching this exact structure (no
|
|
|
45
45
|
"suggestions": [{ "assertion": "suggested new assertion", "reason": "why it matters" }],
|
|
46
46
|
"overall": "brief summary assessment"
|
|
47
47
|
}
|
|
48
|
-
}`;async function
|
|
48
|
+
}`;async function O(y){let{prompt:b,output:d,expectations:p,model:w,timeout:A=12e4}=y,a=new Array(p.length),o=[];p.forEach((e,s)=>{let t=v(e);if(t){let i=x(t,d);a[s]={text:e,passed:i.passed,evidence:i.evidence,method:"deterministic"}}else o.push({text:e,index:s})});let m=null,u=c((e,s)=>{let t=a.filter(l=>l.passed).length,i=a.length;return{expectations:a,summary:{passed:t,failed:i-t,total:i,pass_rate:i>0?t/i:0},claims:e,eval_feedback:s,judge_model:m}},"finish"),g=c((e,s)=>{for(let t of o)a[t.index]={text:t.text,passed:!1,evidence:e,method:"llm"};return u([],{suggestions:[],overall:s})},"failSubjective");if(o.length===0)return u([],{suggestions:[],overall:"All expectations verified deterministically \u2014 LLM judge skipped."});let S=`## Original Prompt
|
|
49
49
|
|
|
50
|
-
${
|
|
50
|
+
${b}
|
|
51
51
|
|
|
52
52
|
## AI Output
|
|
53
53
|
|
|
@@ -55,7 +55,7 @@ ${d}
|
|
|
55
55
|
|
|
56
56
|
## Expectations to Evaluate
|
|
57
57
|
|
|
58
|
-
${
|
|
58
|
+
${o.map((e,s)=>`${s+1}. ${e.text}`).join(`
|
|
59
59
|
`)}
|
|
60
60
|
|
|
61
|
-
Grade the output against each expectation. Respond with ONLY valid JSON.`,
|
|
61
|
+
Grade the output against each expectation. Respond with ONLY valid JSON.`,n=await h({prompt:S,targetContent:_,timeout:A,model:w});if(m=n.model??null,n.error)return g(`Grader error: ${n.error}`,`Grading failed: ${n.error}`);try{let e=n.output.trim(),s=e.match(/```(?:json)?\s*([\s\S]*?)```/);s&&(e=s[1].trim());let t=e.match(/\{[\s\S]*\}/);t&&(e=t[0]);let i=JSON.parse(e);return o.forEach((l,G)=>{let r=i.expectations?.[G],f=r?.flag==="non_discriminating"||r?.flag==="unverifiable"?r.flag:void 0;a[l.index]=r?{text:l.text,passed:r.passed,evidence:r.evidence??"",method:"llm",...f?{flag:f}:{}}:{text:l.text,passed:!1,evidence:"Judge did not return a grade for this expectation",method:"llm"}}),u(i.claims??[],i.eval_feedback??{suggestions:[],overall:""})}catch{return g("Grader output was not valid JSON",`Grader returned unparseable output: ${n.output.slice(0,200)}`)}}c(O,"gradeEvalOutput");export{O as a};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{a as N}from"./chunk-5RBLIVBF.js";import{a as S}from"./chunk-GTOEWPIM.js";import{a as T}from"./chunk-6V4WM73L.js";import{a as G}from"./chunk-5XP7WWJR.js";import{a as C}from"./chunk-IL35G6CK.js";import{b as x}from"./chunk-WQ2BJQYB.js";import{e as k,f as E,h as d}from"./chunk-H2ORWIEY.js";import{a as h}from"./chunk-ZLLER3HP.js";async function W(v,f){let{mirrorId:s,evalTargetId:g,config:o}=v,a=h(e=>f.logger.info(e),"log"),i=await k(`/api/eval-targets/${g}`),$=await k(`/api/eval-targets/${g}/evals`);if($.length===0&&o.generateIfEmpty){a("No eval cases on target \u2014 generating from content via local LLM...");let e=await G({content:i.content,name:i.name});if(e===null)throw new Error("Case generation requires an LLM backend (claude CLI on PATH or ANTHROPIC_API_KEY) \u2014 none available on this worker.");let t=[];for(let n of e)t.push(await E(`/api/eval-targets/${g}/evals`,n));$=t,a(`Generated ${t.length} eval case(s)`)}if($.length===0)throw new N("No evals defined for target");let J=o.runsPerEval??1,R=o.timeout??12e4,j=o.iteration??1,y=new Set;if(f.job.attempts>1)for(let t=0;;t+=100){let n=await k(`/api/eval-targets/${g}/runs?jobId=${s}&limit=100&offset=${t}`);for(let r of n)y.add(`${r.evalId}|${r.configuration}|${r.runNumber}|${r.iteration}`);if(n.length<100)break}let _=[{name:"with_target",content:i.content}];o.skipBaseline||_.push({name:"without_target"});let p=[];for(let e of $)for(let t of _)for(let n=1;n<=J;n++)y.has(`${e.id}|${t.name}|${n}|${j}`)||p.push({eval_:e,configuration:t.name,targetContent:t.content,runNumber:n});y.size>0&&a(`Resuming attempt ${f.job.attempts}: ${y.size} run(s) already persisted, ${p.length} remaining`);let l=p.length,u=0,c=Math.min(o.parallel??1,4);await d(`/api/eval-jobs/${s}/progress`,{status:"running",progress:{total:l,completed:0,current:null,message:`Starting ${l} eval runs (concurrency: ${c})...`}});let b=[];async function I(e){let t=`${e.configuration} \xB7 ${e.eval_.name} \xB7 run#${e.runNumber}`;a(`[${u+1}/${l}] ${t}`);let n=c>1?T():null;try{let r=await x({prompt:e.eval_.prompt,targetContent:e.targetContent,workDir:n?.workDir,timeout:R,model:o.model}),m={};return!o.skipGrading&&e.eval_.expectations.length>0&&!r.error&&(m=await C({prompt:e.eval_.prompt,output:r.output,expectations:e.eval_.expectations,model:o.graderModel??o.model,timeout:R})),{jobId:s,evalId:e.eval_.id,evalTargetId:i.id,evalTargetVersion:i.version,configuration:e.configuration,runNumber:e.runNumber,iteration:j,status:r.error?"failed":"completed",outputs:r.error?{error:r.error}:{transcript:r.output,...r.model?{model:r.model}:{}},timing:{duration_ms:r.durationMs,total_tokens:r.totalTokens},grading:m,worktree:n?.isWorktree?!0:void 0}}finally{n?.cleanup()}}if(h(I,"processItem"),c<=1)for(let e of p){let t=`${e.configuration} \xB7 ${e.eval_.name} \xB7 run#${e.runNumber}`;await d(`/api/eval-jobs/${s}/progress`,{status:"running",progress:{total:l,completed:u,current:t,message:`Executing ${t}...`}});let n=await I(e);await E("/api/eval-runs",n),b.push(n),u++,await d(`/api/eval-jobs/${s}/progress`,{status:"running",progress:{total:l,completed:u,current:t,message:`Completed ${t}`}})}else{a(`Running ${l} evals with concurrency=${c} (worktree isolation)`);for(let e=0;e<p.length;e+=c){let t=p.slice(e,e+c),n=`batch ${Math.floor(e/c)+1}/${Math.ceil(p.length/c)}`;await d(`/api/eval-jobs/${s}/progress`,{status:"running",progress:{total:l,completed:u,current:n,message:`Executing ${n} (${t.length} parallel)...`}});let r=await Promise.all(t.map(I));for(let m of r)await E("/api/eval-runs",m),b.push(m),u++;await d(`/api/eval-jobs/${s}/progress`,{status:"running",progress:{total:l,completed:u,current:n,message:`Completed ${n}`}})}}let P=z(b),w;if(!o.skipGrading&&b.some(e=>e.grading&&Object.keys(e.grading).length>0))try{a(`Running meta-judge for job ${s}...`);let e=$.map(t=>{let r=b.filter(m=>m.evalId===t.id&&m.configuration==="with_target")[0];return{evalName:t.name,prompt:t.prompt,expectations:t.expectations,grading:r?.grading?r.grading:null,output:r?.outputs?.transcript?.slice(0,500)}});w=await S({targetName:i.name,evalResults:e,model:o.graderModel??o.model,timeout:6e4}),a(`Meta-judge: quality=${w.quality_score}/5, issues=${w.issues.length}`)}catch(e){a(`Meta-judge failed (non-fatal): ${e instanceof Error?e.message:String(e)}`)}let M=w?{...P,meta_judgement:w}:P;return a(`Job ${s} completed: ${u}/${l} runs`),await d(`/api/eval-jobs/${s}/state`,{result:M}).catch(e=>{a(`result persist failed: ${e instanceof Error?e.message:String(e)}`)}),M}h(W,"processEval");function z(v){let f=v.filter(a=>a.status==="completed"),s=v.filter(a=>a.status==="failed"),g=f.filter(a=>{let i=a.grading;return i&&Object.keys(i).length>0}),o=g.length>0?g.reduce((a,i)=>a+(i.grading?.summary?.pass_rate??0),0)/g.length:null;return{total:v.length,completed:f.length,failed:s.length,avgPassRate:o}}h(z,"buildSummary");export{W as a};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{c as L}from"./chunk-TIOKY2IA.js";import{a as S}from"./chunk-RSKQRVPJ.js";import{a as A}from"./chunk-
|
|
1
|
+
import{c as L}from"./chunk-TIOKY2IA.js";import{a as S}from"./chunk-RSKQRVPJ.js";import{a as A}from"./chunk-46IYYFYR.js";import{a as T}from"./chunk-5WY2WM4K.js";import{a as E}from"./chunk-FKW6PVDG.js";import{a as b}from"./chunk-KC7IOPF6.js";import{a as h}from"./chunk-HDU5QPEO.js";import{b as I}from"./chunk-W2MOTOQE.js";import{a as R}from"./chunk-6KU6UUYJ.js";import{a as H}from"./chunk-EBSMTI3X.js";import{b as w}from"./chunk-5RBLIVBF.js";import{a as M}from"./chunk-KAF3CYRW.js";import{a as k}from"./chunk-UF6US7VU.js";import{a as v}from"./chunk-O3C5IV2Y.js";import{b as y}from"./chunk-ECHJ4MBP.js";import{b as f,e as _,f as p}from"./chunk-H2ORWIEY.js";import{a as s}from"./chunk-ZLLER3HP.js";var V={process_eval:b,process_insights:h,process_launch:I,process_send_message:S,process_conversation:E,process_session_goal:A,distill_memories:y,memory_ab:R,process_announcement:T,process_run_cleanup:H,cron_suggest_instructions:v,cron_refresh_skills:k,cron_refresh_pricing:M},N=Object.keys(V),O=new Set(["process_session_goal","process_announcement","process_run_cleanup","distill_memories","memory_ab"]);function W(e=process.env){return e.DATABASE_URL?N:N.filter(n=>!O.has(n))}s(W,"availableCapabilities");var $=3e4,B=3e4,F=3e4,P=250,D=5e3,J=`thin-agent-${process.pid}`,g=null;function U(e,n,r,l){let a=s(t=>{p("/api/workers/heartbeat",{workerType:"cli-worker",clientName:J,clientVersion:l,workerVersion:"0.1.0",currentJobId:null,inFlightCount:0,lastError:null,status:t,metadata:{capabilities:e,mode:"thin-agent"}}).then(c=>{let m=c?.advisory;m&&m.message!==g?(g=m.message,o(r,{event:"worker_advisory",code:m.code,message:m.message})):m||(g=null)}).catch(c=>{o(r,{event:"presence_heartbeat_error",error:c instanceof Error?c.message:String(c)})})},"send");a("alive");let d=setInterval(()=>a("alive"),F);n.addEventListener("abort",()=>{clearInterval(d),a("shutting_down")},{once:!0})}s(U,"startPresenceHeartbeat");function o(e,n){try{e(JSON.stringify({ts:new Date().toISOString(),...n}))}catch{e(`[agent-loop] log_error event=${n.event}`)}}s(o,"structuredLog");function C(e,n){return n.aborted?Promise.resolve(!1):e<=0?Promise.resolve(!0):new Promise(r=>{let l=setTimeout(()=>{n.removeEventListener("abort",a),r(!0)},e),a=s(()=>{clearTimeout(l),n.removeEventListener("abort",a),r(!1)},"onAbort");n.addEventListener("abort",a,{once:!0})})}s(C,"abortableSleep");async function K(e,n){let r=`capabilities=${encodeURIComponent(e.join(","))}&waitMs=${n}`,l=await _(`/api/work/next?${r}`);return l==null||typeof l=="string"?null:l}s(K,"pollForWork");function G(e,n){return{logger:{info:s(r=>n(r),"info"),warn:s(r=>n(r),"warn"),error:s(r=>n(r),"error")},job:{attempts:e}}}s(G,"makeHelpers");async function q(e,n,r){let l=V[e.kind],a=Date.now();if(o(r,{event:"claim",jobId:e.id,kind:e.kind,attempts:e.attempts}),!l){let t=`unknown kind: ${e.kind}`;o(r,{event:"fail",jobId:e.id,kind:e.kind,terminal:!0,error:t}),await p(`/api/work/${e.id}/fail`,{leaseToken:e.leaseToken,error:t,terminal:!0}).catch(()=>{});return}let d=setInterval(()=>{o(r,{event:"heartbeat",jobId:e.id}),p(`/api/work/${e.id}/heartbeat`,{leaseToken:e.leaseToken}).catch(t=>{o(r,{event:"heartbeat_error",jobId:e.id,error:t instanceof Error?t.message:String(t)})})},n);try{let t=G(e.attempts,r),c=await l(e.payload,t)??{};clearInterval(d),o(r,{event:"complete",jobId:e.id,kind:e.kind,durationMs:Date.now()-a}),await p(`/api/work/${e.id}/complete`,{leaseToken:e.leaseToken,result:c})}catch(t){clearInterval(d);let c=w(t),m=t instanceof Error?t.message:String(t);o(r,{event:"fail",jobId:e.id,kind:e.kind,durationMs:Date.now()-a,terminal:c,error:m}),await p(`/api/work/${e.id}/fail`,{leaseToken:e.leaseToken,error:m,terminal:c}).catch(i=>{o(r,{event:"fail_post_error",jobId:e.id,error:i instanceof Error?i.message:String(i)})})}}s(q,"runOne");async function me(e){let n=e.log??(()=>{}),r=e.pollWaitMs??$,l=e.heartbeatIntervalMs??B,a=e.capabilities??W(),d=P;o(n,{event:"agent_start",capabilities:a,pollWaitMs:r,heartbeatIntervalMs:l}),U(a,e.signal,n,e.version),L({signal:e.signal,log:n}).catch(i=>{o(n,{event:"tt_heartbeat_fatal",error:i instanceof Error?i.message:String(i)})});let t=5*6e4,c=0,m=s(()=>{if(!e.readInstalledVersion||!e.version)return!1;let i=Date.now();if(i-c<t)return!1;c=i;let u=e.readInstalledVersion();return!!(u&&u!==e.version)},"versionDrifted");for(;!e.signal.aborted;){if(m()){o(n,{event:"agent_version_drift",bootVersion:e.version,installedVersion:e.readInstalledVersion?.()??null}),e.onVersionDrift?.();break}let i=null;try{i=await K(a,r)}catch(u){let x=u instanceof f?u.statusCode:void 0;if(o(n,{event:"poll_error",status:x,error:u instanceof Error?u.message:String(u)}),!await C(d,e.signal))break;d=Math.min(d*2,D);continue}if(!i){if(o(n,{event:"poll_204"}),!await C(d,e.signal))break;d=Math.min(d*2,D);continue}d=P,await q(i,l,n)}o(n,{event:"agent_stop"})}s(me,"runAgentLoop");export{V as a,N as b,W as c,K as d,me as e};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{a as C}from"./chunk-N7TGRFVZ.js";import{c as m,d as p}from"./chunk-ZL4MZMUK.js";import{g as c,j as f}from"./chunk-
|
|
1
|
+
import{a as C}from"./chunk-N7TGRFVZ.js";import{c as m,d as p}from"./chunk-ZL4MZMUK.js";import{g as c,j as f}from"./chunk-AP4TQRZJ.js";import{a as r}from"./chunk-ZLLER3HP.js";import*as a from"node:fs/promises";import*as g from"node:path";import{eq as b}from"drizzle-orm";async function v(e){let n=e;for(let t=0;t<50;t++){try{return await a.stat(g.join(n,"pnpm-workspace.yaml")),n}catch{}let i=g.dirname(n);if(i===n)return null;n=i}return null}r(v,"findRepoRoot");async function k(e){if(e)try{return await a.readFile(e,"utf-8")}catch{return null}let n=await v(process.cwd())??process.cwd(),t=g.join(n,"CHANGELOG.md");try{return await a.readFile(t,"utf-8")}catch{return null}}r(k,"readChangelog");var _="https://rulemetric.com";function D(e){let n=e.date??new Date().toISOString().slice(0,10),t=C({version:e.version,date:n,sections:e.sections,unsubscribeUrl:"{{unsubscribe_url}}",recipientName:"{{recipient_name}}",productUrl:_});return{version:e.version,releaseDate:n,subject:t.subject,htmlBody:t.html,textBody:t.text,sections:e.sections}}r(D,"renderRow");async function R(e={}){let n=e.db??f(),t=e.logger??{info:r(s=>console.log(s),"info"),warn:r(s=>console.warn(s),"warn")},i=await k(e.changelogPath);if(i===null)return t.info("[cron_check_changelog] CHANGELOG.md not found; nothing to do"),{createdCount:0,skippedCount:0};let y=m(i),h=p(y);if(h.length===0)return t.info("[cron_check_changelog] No announceable entries; nothing to do"),{createdCount:0,skippedCount:0};let d=0,l=0;for(let s of h){if((await n.select({id:c.id}).from(c).where(b(c.version,s.version)).limit(1)).length>0){l++;continue}let o=D(s);try{await n.insert(c).values({version:o.version,releaseDate:o.releaseDate,subject:o.subject,htmlBody:o.htmlBody,textBody:o.textBody,sections:o.sections,status:"draft"}),d++,t.info(`[cron_check_changelog] Created draft announcement for ${o.version}`)}catch(u){let w=u instanceof Error?u.message:String(u);if(/duplicate key|unique/i.test(w)){l++;continue}throw u}}return t.info(`[cron_check_changelog] Done: created ${d}, skipped ${l}`),{createdCount:d,skippedCount:l}}r(R,"processChangelog");export{R as a};
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import{
|
|
1
|
+
import{b as p}from"./chunk-WQ2BJQYB.js";import{a as l}from"./chunk-ZLLER3HP.js";var k=[{name:"git-commit-helper",description:"Writes conventional commit messages and PR descriptions from a diff"},{name:"sql-query-optimizer",description:"Analyzes slow SQL queries and proposes indexes and rewrites"},{name:"i18n-string-extractor",description:"Finds hardcoded UI strings and extracts them into translation files"}],T=`You are an AI coding assistant with access to a set of optional skills. When a user request matches a skill's description, you invoke that skill before answering; when no skill applies, you answer directly without one. Descriptions are your ONLY information about each skill.
|
|
2
2
|
|
|
3
3
|
{{CATALOG}}
|
|
4
4
|
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{a as f}from"./chunk-ZLLER3HP.js";import{spawn as O}from"node:child_process";function y(r){try{let e=JSON.parse(r),p=e.result??e.content??r,c=e.usage?.total_tokens??(e.usage?.input_tokens??0)+(e.usage?.output_tokens??0),a;if(e.modelUsage&&typeof e.modelUsage=="object"){let n=-1;for(let[l,o]of Object.entries(e.modelUsage)){let s=typeof o?.outputTokens=="number"?o.outputTokens:0;s>n&&(n=s,a=l)}}return{output:p,totalTokens:c,model:a}}catch{return{output:r,totalTokens:0}}}f(y,"parseClaudeJsonOutput");async function h(r){let{prompt:e,targetContent:p,systemPrompt:c,workDir:a=process.cwd(),timeout:n=12e4,model:l}=r,o=["-p",e,"--output-format","json"],s=p??c;s&&o.push("--system-prompt",s),l&&o.push("--model",l);let d=Date.now();return new Promise(m=>{let u={...process.env};delete u.CLAUDECODE,delete u.HTTPS_PROXY;let b=["/opt/homebrew/bin","/usr/local/bin"],T=(u.PATH??"").split(":").filter(Boolean),k=b.filter(t=>!T.includes(t));k.length&&(u.PATH=[...T,...k].join(":"));let i=O("claude",o,{cwd:a,env:u,stdio:["ignore","pipe","pipe"]}),g="",x="";i.stdout.on("data",t=>{g+=t.toString()}),i.stderr.on("data",t=>{x+=t.toString()});let E=setTimeout(()=>{i.kill("SIGTERM"),m({output:g,exitCode:null,durationMs:Date.now()-d,totalTokens:0,error:`Timed out after ${n}ms`})},n);i.on("close",t=>{clearTimeout(E);let w=Date.now()-d,{output:P,totalTokens:C,model:D}=y(g);m({output:P,exitCode:t,durationMs:w,totalTokens:C,model:D,error:t!==0?x||`Exit code ${t}`:void 0})}),i.on("error",t=>{clearTimeout(E),m({output:"",exitCode:null,durationMs:Date.now()-d,totalTokens:0,error:`Failed to spawn claude: ${t.message}`})})})}f(h,"executeEval");export{y as a,h as b};
|
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
import{e as N}from"../../chunk-
|
|
1
|
+
import{e as N}from"../../chunk-PI2VYOU7.js";import"../../chunk-TIOKY2IA.js";import"../../chunk-RSKQRVPJ.js";import"../../chunk-46IYYFYR.js";import"../../chunk-5WY2WM4K.js";import"../../chunk-N7TGRFVZ.js";import"../../chunk-FKW6PVDG.js";import"../../chunk-KC7IOPF6.js";import"../../chunk-HDU5QPEO.js";import"../../chunk-QFVGUZDO.js";import"../../chunk-W2MOTOQE.js";import"../../chunk-6KU6UUYJ.js";import"../../chunk-EBSMTI3X.js";import"../../chunk-6QKI756T.js";import"../../chunk-5RBLIVBF.js";import"../../chunk-KAF3CYRW.js";import"../../chunk-UF6US7VU.js";import"../../chunk-O3C5IV2Y.js";import"../../chunk-ZL4MZMUK.js";import"../../chunk-ECHJ4MBP.js";import{k as f}from"../../chunk-AP4TQRZJ.js";import"../../chunk-45VWQP4J.js";import"../../chunk-GTOEWPIM.js";import"../../chunk-6V4WM73L.js";import"../../chunk-5XP7WWJR.js";import"../../chunk-RTWRHIKY.js";import"../../chunk-TDD7IOV2.js";import"../../chunk-MODXEGCU.js";import"../../chunk-7DFNBRLY.js";import"../../chunk-N7ODX6PO.js";import"../../chunk-67QCYUJU.js";import"../../chunk-GQRCSR2A.js";import"../../chunk-IL35G6CK.js";import"../../chunk-S6B2R2LL.js";import"../../chunk-RCI5MTZP.js";import"../../chunk-WQ2BJQYB.js";import{a as _}from"../../chunk-PPKPCXJD.js";import"../../chunk-IZTIYR5Q.js";import"../../chunk-V44SRRYR.js";import"../../chunk-U6XEU573.js";import"../../chunk-VLOX6KOM.js";import"../../chunk-3AV3GTMP.js";import"../../chunk-H2ORWIEY.js";import{e as R,l as w}from"../../chunk-O6C2UGBY.js";import{a as e}from"../../chunk-ZLLER3HP.js";import{trace as z,context as Q}from"@opentelemetry/api";import{NodeSDK as A}from"@opentelemetry/sdk-node";import{OTLPTraceExporter as I}from"@opentelemetry/exporter-trace-otlp-http";import{BatchSpanProcessor as L,ConsoleSpanExporter as C,SimpleSpanProcessor as D}from"@opentelemetry/sdk-trace-node";import{Resource as M}from"@opentelemetry/resources";import{ATTR_SERVICE_NAME as V,ATTR_SERVICE_VERSION as q}from"@opentelemetry/semantic-conventions";function b(t){if(!t)return{};let r={};for(let n of t.split(",")){let o=n.indexOf("=");if(o===-1)continue;let s=n.slice(0,o).trim(),i=n.slice(o+1).trim();s&&(r[s]=i)}return r}e(b,"parseOtlpHeaders");var c=null;function g(){return process.env.TELEMETRY_ENABLED!=="false"}e(g,"isTelemetryEnabled");function E(t){if(!g()||c!==null)return"off";let r=new M({[V]:t.serviceName,[q]:t.serviceVersion??"0.1.0"}),n=process.env.OTEL_EXPORTER_OTLP_ENDPOINT,o,s;if(n){let i=b(process.env.OTEL_EXPORTER_OTLP_HEADERS),u=new I({url:`${n}/v1/traces`,headers:i});s=new L(u),o="otlp"}else if(process.env.OTEL_SPAN_EXPORT==="none")s=void 0,o="silent";else{let i=new C;s=new D(i),o="console"}return c=new A({resource:r,spanProcessors:s?[s]:[]}),c.start(),o}e(E,"initTelemetry");async function d(){c&&(await c.shutdown(),c=null)}e(d,"shutdownTelemetry");import{SpanKind as ae,SpanStatusCode as ce}from"@opentelemetry/api";import{trace as de,context as me}from"@opentelemetry/api";import*as l from"@sentry/node";var h=!1;function y(t){if(h)return!1;let r=process.env.SENTRY_DSN;return r?(l.init({dsn:r,serverName:t.serviceName,environment:process.env.NODE_ENV??"development",tracesSampleRate:0}),h=!0,!0):!1}e(y,"initSentry");async function m(t){h&&await l.flush(t)}e(m,"flushSentry");import{existsSync as G,mkdirSync as U,readFileSync as v,unlinkSync as k,writeFileSync as O}from"node:fs";import{dirname as X,join as P}from"node:path";import{execFileSync as $}from"node:child_process";var a=P(w(),"evals-agent.lock");function j(t){try{return process.kill(t,0),!0}catch(r){return r.code==="EPERM"}}e(j,"pidAlive");function B(t){if(!j(t))return!1;try{let r=$("ps",["-p",String(t),"-o","command="],{encoding:"utf-8",stdio:["ignore","pipe","ignore"]});return/run\.js\s+evals\s+agent|evals\s+agent/.test(r)}catch{return!0}}e(B,"isLiveAgent");function H(){try{U(X(a),{recursive:!0})}catch{}for(let t=0;t<2;t++)try{return O(a,String(process.pid),{flag:"wx"}),{ok:!0}}catch(r){if(r.code!=="EEXIST")throw r;let n=0;try{n=Number(v(a,"utf-8").trim())}catch{}if(n&&n!==process.pid&&B(n))return{ok:!1,holder:n};try{k(a)}catch{}}try{O(a,String(process.pid))}catch{}return{ok:!0}}e(H,"acquireAgentLock");function S(){try{G(a)&&Number(v(a,"utf-8").trim())===process.pid&&k(a)}catch{}}e(S,"releaseAgentLock");var T=class t extends _{static{e(this,"EvalAgentCommand")}static description="The worker daemon: long-polls /api/work/next, claims jobs, and runs them locally. Installed as a launchd service by `rulemetric service install`.";static examples=["<%= config.bin %> evals agent"];async run(){await this.parse(t),this.requireAuth();let r=H();if(!r.ok){this.log(`Another rulemetric evals agent is already running (pid ${r.holder}). Refusing to start a second instance.`);return}process.env.PG_APPLICATION_NAME||="rulemetric-agent",y({serviceName:"rulemetric-agent"})&&this.log("[sentry] error capture enabled");let o=E({serviceName:"rulemetric-agent"});o==="otlp"?this.log(`[otel] traces exporting to ${process.env.OTEL_EXPORTER_OTLP_ENDPOINT}`):o==="console"?this.log("[otel] cron spans printing to stdout (set OTEL_EXPORTER_OTLP_ENDPOINT to ship to a backend)"):this.log("[otel] disabled (TELEMETRY_ENABLED=false)"),!R()&&!process.env.RULEMETRIC_API_KEY&&this.error("No auth token found. Run `rulemetric auth login` first."),this.log("Starting thin agent (Phase 4b parallel-run)..."),this.log(`Long-polling /api/work/next. Press Ctrl+C to stop.
|
|
2
2
|
`);let i=new AbortController,u=e(async p=>{this.log(`
|
|
3
3
|
[${p}] shutting down agent...`),i.abort(),await Promise.allSettled([m(2e3),d(),f()]),S(),process.exit(0)},"shutdown");process.on("SIGINT",()=>{u("SIGINT")}),process.on("SIGTERM",()=>{u("SIGTERM")});let x=!1;try{await N({signal:i.signal,log:e(p=>this.log(p),"log"),version:this.config.version,readInstalledVersion:e(()=>{try{return JSON.parse(v(P(this.config.root,"package.json"),"utf-8")).version??null}catch{return null}},"readInstalledVersion"),onVersionDrift:e(()=>{x=!0},"onVersionDrift")}),x&&(this.log("[upgrade] Installed CLI version changed \u2014 restarting worker onto the new code."),await Promise.allSettled([m(2e3),d(),f()]),S(),process.exit(1))}finally{S(),await f()}}};export{T as default};
|
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
import{b as h,c as f}from"../../chunk-357YFS2K.js";import"../../chunk-RCI5MTZP.js";import{a as m}from"../../chunk-PPKPCXJD.js";import"../../chunk-IZTIYR5Q.js";import"../../chunk-V44SRRYR.js";import"../../chunk-U6XEU573.js";import"../../chunk-VLOX6KOM.js";import"../../chunk-3AV3GTMP.js";import{e as c}from"../../chunk-H2ORWIEY.js";import"../../chunk-O6C2UGBY.js";import{a as u}from"../../chunk-ZLLER3HP.js";import{Args as
|
|
2
|
-
Aggregated ${
|
|
3
|
-
`);for(let[e,n]of Object.entries(
|
|
4
|
-
Verdict (${t.mode}, baseline=${t.baseline}):`),!t.sufficient)this.log(` ${t.insufficientReason??"insufficient data"} \u2014 no effect claimed`);else{let e=t.delta>=0?"+":"";this.log(` pass-rate delta: ${e}${(t.delta*100).toFixed(0)}% (n=${t.nWith} paired)`),this.log(` 95% CI: ${(t.ci.lower*100).toFixed(0)}\u2013${(t.ci.upper*100).toFixed(0)}%`),t.pValue!=null&&this.log(` McNemar p: ${t.pValue.toFixed(4)}`),this.log(` significant: ${t.significant?"YES":"no"}`)}if(
|
|
5
|
-
Notes:`);for(let e of
|
|
6
|
-
Judge calibration (PPI, from human review labels):`),e.anchors.agreementRate!=null){let
|
|
7
|
-
Anchor set: ${n.nAnchors}/${n.pilotTarget} human-labeled runs${
|
|
8
|
-
Benchmark saved: ${
|
|
1
|
+
import{b as h,c as f}from"../../chunk-357YFS2K.js";import"../../chunk-RCI5MTZP.js";import{a as m}from"../../chunk-PPKPCXJD.js";import"../../chunk-IZTIYR5Q.js";import"../../chunk-V44SRRYR.js";import"../../chunk-U6XEU573.js";import"../../chunk-VLOX6KOM.js";import"../../chunk-3AV3GTMP.js";import{e as c}from"../../chunk-H2ORWIEY.js";import"../../chunk-O6C2UGBY.js";import{a as u}from"../../chunk-ZLLER3HP.js";import{Args as p,Flags as v}from"@oclif/core";var d=class b extends m{static{u(this,"EvalBenchmarkCommand")}static description="Aggregate eval runs into a benchmark for a target";static examples=["<%= config.bin %> evals benchmark <target-id>","<%= config.bin %> evals benchmark <target-id> --iteration 2"];static args={targetId:p.string({description:"Eval target ID",required:!0})};static flags={iteration:v.integer({description:"Filter runs by iteration",default:1})};async run(){let{args:o,flags:l}=await this.parse(b);this.requireAuth();let g=await c(`/api/eval-targets/${o.targetId}`);this.log(`Aggregating benchmark for "${g.name}" v${g.version}, iteration ${l.iteration}`);let a=await h(o.targetId,l.iteration);a.totalRuns===0&&this.error("No completed runs found. Run evals first with `rulemetric evals run`."),this.log(`
|
|
2
|
+
Aggregated ${a.totalRuns} runs
|
|
3
|
+
`);for(let[e,n]of Object.entries(a.runSummary)){this.log(`${e}:`);for(let[r,i]of Object.entries(n)){let s=i;this.log(` ${r}: mean=${s.mean} stddev=${s.stddev} [${s.min}, ${s.max}]`)}}let t=a.verdict;if(t)if(this.log(`
|
|
4
|
+
Verdict (${t.mode}, baseline=${t.baseline}):`),!t.sufficient)this.log(` ${t.insufficientReason??"insufficient data"} \u2014 no effect claimed`);else{let e=t.delta>=0?"+":"";this.log(` pass-rate delta: ${e}${(t.delta*100).toFixed(0)}% (n=${t.nWith} paired)`),this.log(` 95% CI: ${(t.ci.lower*100).toFixed(0)}\u2013${(t.ci.upper*100).toFixed(0)}%`),t.pValue!=null&&this.log(` McNemar p: ${t.pValue.toFixed(4)}`),this.log(` significant: ${t.significant?"YES":"no"}`)}if(a.notes.length>0){this.log(`
|
|
5
|
+
Notes:`);for(let e of a.notes)this.log(` - ${e}`)}try{let e=await c(`/api/eval-targets/${o.targetId}/judge-calibration`);if(e.anchors.llmAnchors>0){if(this.log(`
|
|
6
|
+
Judge calibration (PPI, from human review labels):`),e.judge?.currentModel&&this.log(` judge model: ${e.judge.currentModel}`),e.anchors.agreementRate!=null){let i=e.anchors.agreementCi?` [${(e.anchors.agreementCi.lower*100).toFixed(0)}\u2013${(e.anchors.agreementCi.upper*100).toFixed(0)}%]`:"";this.log(` judge/human agreement: ${(e.anchors.agreementRate*100).toFixed(0)}%${i} on ${e.anchors.llmAnchors} labels`)}let r=e.calibration;if(r?.sufficient){let i=r.delta>=0?"+":"";this.log(` corrected pass-rate delta: ${i}${(r.delta*100).toFixed(0)}% (95% CI ${(r.ci.lower*100).toFixed(0)}\u2013${(r.ci.upper*100).toFixed(0)}%, unpaired)${r.significant?"":" \u2014 not significant"}`)}else this.log(" not enough fully-reviewed runs per cohort for a corrected delta yet")}let n=e.powerCheck;if(n){let r=n.mde!=null?` \xB7 MDE \xB1${(n.mde*100).toFixed(0)}pp vs \xB1${(n.targetEffect*100).toFixed(0)}pp target`:"";if(this.log(`
|
|
7
|
+
Anchor set: ${n.nAnchors}/${n.pilotTarget} human-labeled runs${r} \u2014 ${n.adequate?"ADEQUATE":"not yet adequate"}`),!n.adequate){for(let i of n.reasons)this.log(` - ${i}`);this.log(" grow the anchor set in the web Review tab (eval target \u2192 Review)")}}e.judge&&(e.judge.staleAnchors>0||e.judge.staleRuns>0)&&this.log(` note: judge model changed \u2014 ${e.judge.staleRuns} graded run(s) and ${e.judge.staleAnchors} label(s) from older judges are excluded; re-run evals and re-label under the current judge`)}catch{}let $=await f(o.targetId,l.iteration,a);this.log(`
|
|
8
|
+
Benchmark saved: ${$.id}`)}};export{d as default};
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import{a as $,b as A}from"../../chunk-647M2I2Y.js";import{
|
|
1
|
+
import{a as $,b as A}from"../../chunk-647M2I2Y.js";import{b as p}from"../../chunk-WQ2BJQYB.js";import{a as f}from"../../chunk-PPKPCXJD.js";import"../../chunk-IZTIYR5Q.js";import"../../chunk-V44SRRYR.js";import"../../chunk-U6XEU573.js";import"../../chunk-VLOX6KOM.js";import"../../chunk-3AV3GTMP.js";import{e as l,f as w}from"../../chunk-H2ORWIEY.js";import"../../chunk-O6C2UGBY.js";import{a as h}from"../../chunk-ZLLER3HP.js";import{Args as B,Flags as b}from"@oclif/core";var c=class I extends f{static{h(this,"EvalCompareCommand")}static description="Blind A/B comparison between two eval target versions";static examples=["<%= config.bin %> evals compare <target-a> <target-b>"];static args={targetA:B.string({description:"First eval target ID",required:!0}),targetB:B.string({description:"Second eval target ID",required:!0})};static flags={model:b.string({description:"Model for execution and comparison"}),timeout:b.integer({description:"Timeout per eval in ms",default:12e4})};async run(){let{args:g,flags:o}=await this.parse(I);this.requireAuth();let[e,r]=await Promise.all([l(`/api/eval-targets/${g.targetA}`),l(`/api/eval-targets/${g.targetB}`)]),m=await l(`/api/eval-targets/${g.targetA}/evals`);m.length===0&&this.error("No evals found for target A. Create some first."),this.log(`Comparing "${e.name}" v${e.version} vs "${r.name}" v${r.version}`),this.log(`Running ${m.length} eval(s)...
|
|
2
2
|
`);let a=Math.random()>.5,E=a?r.content:e.content,T=a?e.content:r.content,C=a?r.name:e.name,x=a?e.name:r.name,v=[];for(let t of m){this.log(`[${t.name}] Running A...`);let s=await p({prompt:t.prompt,targetContent:E,timeout:o.timeout,model:o.model});this.log(`[${t.name}] Running B...`);let d=await p({prompt:t.prompt,targetContent:T,timeout:o.timeout,model:o.model});(s.error||d.error)&&this.error(`[${t.name}] execution failed (A: ${s.error??"ok"} | B: ${d.error??"ok"}) \u2014 aborting before the blind comparison`),v.push({evalName:t.name,outputA:s.output,outputB:d.output})}this.log(`
|
|
3
3
|
Running blind comparison...`);let N=v.map(t=>`
|
|
4
4
|
## Eval: ${t.evalName}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import{a as P,b as S}from"../../chunk-
|
|
1
|
+
import{a as P,b as S}from"../../chunk-WDGJHNOW.js";import{b}from"../../chunk-WQ2BJQYB.js";import{a as N}from"../../chunk-PPKPCXJD.js";import"../../chunk-IZTIYR5Q.js";import"../../chunk-V44SRRYR.js";import"../../chunk-U6XEU573.js";import"../../chunk-VLOX6KOM.js";import"../../chunk-3AV3GTMP.js";import{e as y,f as q,g as w}from"../../chunk-H2ORWIEY.js";import"../../chunk-O6C2UGBY.js";import{a as E}from"../../chunk-ZLLER3HP.js";import{Args as Q,Flags as v}from"@oclif/core";var C=process.env.RULEMETRIC_WEB_URL??"https://rulemetric.com",_=30*6e4,R=class k extends N{static{E(this,"EvalOptimizeDescriptionCommand")}static description="Optimize eval target description for better triggering accuracy";static examples=["<%= config.bin %> evals optimize-description <target-id>","<%= config.bin %> evals optimize-description <target-id> --queries 10"];static args={targetId:Q.string({description:"Eval target ID",required:!0})};static flags={"max-iterations":v.integer({description:"Maximum optimization iterations",default:5}),model:v.string({description:"Model for trigger testing and improvement"}),queries:v.integer({description:"Number of trigger queries to generate",default:20}),"runs-per-query":v.integer({description:"Runs per query for reliability",default:3}),"poll-interval":v.integer({description:"Ms between approval polls",default:5e3}),timeout:v.integer({description:"Timeout per eval in ms",default:12e4})};async run(){let{args:i,flags:t}=await this.parse(k);this.requireAuth();let e=await y(`/api/eval-targets/${i.targetId}`);this.log(`Optimizing description for "${e.name}" v${e.version}`),this.log(`Current description: "${e.description}"`),this.log("Scores measure description-gated invocation choice (catalog decision protocol)."),this.log(""),this.log("Generating trigger queries...");let r=await this.generateTriggerQueries(e,t.queries,t),a=await q(`/api/eval-targets/${i.targetId}/trigger-evals`,{queries:r}),g=`${C}/eval-targets/${i.targetId}`;this.log(`
|
|
2
2
|
Generated ${r.length} trigger queries.`),this.log("Review and approve them at:"),this.log(` ${g}`),this.log(" (Triggers tab \u2192 click to review)"),this.log(`
|
|
3
3
|
Waiting for approval...`);let c=Date.now(),d=!1;for(;!d;){Date.now()-c>_&&this.error(`Timed out after ${_/6e4} minutes waiting for approval. Approve the trigger set at ${g} (Triggers tab) and re-run this command.`),await new Promise(h=>setTimeout(h,t["poll-interval"]));let p=(await y(`/api/eval-targets/${i.targetId}/trigger-evals?status=approved`)).find(h=>h.id===a.id);p&&(d=!0,r.length=0,r.push(...p.queries),this.log("Trigger queries approved!"))}let n=r.map((u,p)=>p).sort(()=>Math.random()-.5),s=Math.ceil(n.length*.6),o=n.slice(0,s),I=n.slice(s);await w(`/api/trigger-evals/${a.id}`,{trainIndices:o,testIndices:I});let x=o.map(u=>r[u]),D=I.map(u=>r[u]);this.log(`
|
|
4
4
|
Split: ${x.length} train, ${D.length} test`);let m=e.description,T=m,$=0;for(let u=1;u<=t["max-iterations"];u++){this.log(`
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import{b as P,c as C}from"../../chunk-P3O2OMGC.js";import{a as V}from"../../chunk-
|
|
1
|
+
import{b as P,c as C}from"../../chunk-P3O2OMGC.js";import{a as V}from"../../chunk-GQRCSR2A.js";import{a as N}from"../../chunk-IL35G6CK.js";import"../../chunk-S6B2R2LL.js";import"../../chunk-RCI5MTZP.js";import{b as F}from"../../chunk-WQ2BJQYB.js";import{a as A}from"../../chunk-PPKPCXJD.js";import"../../chunk-IZTIYR5Q.js";import"../../chunk-V44SRRYR.js";import"../../chunk-U6XEU573.js";import"../../chunk-VLOX6KOM.js";import"../../chunk-3AV3GTMP.js";import{e as w,f as m,g as S}from"../../chunk-H2ORWIEY.js";import"../../chunk-O6C2UGBY.js";import{a as k}from"../../chunk-ZLLER3HP.js";import{createInterface as _}from"node:readline/promises";import{Args as q,Flags as g}from"@oclif/core";var $=class O extends A{static{k(this,"EvalOptimizeCommand")}static description="Iteratively optimize eval target content using eval results as feedback";static examples=["<%= config.bin %> evals optimize <target-id>","<%= config.bin %> evals optimize <target-id> --auto --max-iterations 3"];static args={targetId:q.string({description:"Eval target ID",required:!0})};static flags={auto:g.boolean({description:"Skip interactive review, apply suggestions automatically",default:!1}),"max-iterations":g.integer({description:"Maximum optimization iterations",default:5}),threshold:g.string({description:"Stop if pass rate reaches this threshold (0-1)",default:"0.95"}),model:g.string({description:"Model for eval execution"}),"analyzer-model":g.string({description:"Model for analysis/suggestions"}),timeout:g.integer({description:"Timeout per eval in ms",default:12e4})};async run(){let{args:n,flags:e}=await this.parse(O);this.requireAuth();let t=await w(`/api/eval-targets/${n.targetId}`),i=await w(`/api/eval-targets/${n.targetId}/evals`);i.length===0&&this.error("No evals found. Create some first with `rulemetric evals create`.");let s=[...i].sort(()=>Math.random()-.5),c=Math.ceil(s.length*.6),u=s.slice(0,c),d=s.slice(c);this.log(`Optimizing "${t.name}" v${t.version}`),this.log(`Evals: ${u.length} train, ${d.length} test`);let h=parseFloat(e.threshold);this.log(`Config: max ${e["max-iterations"]} iterations, threshold ${(h*100).toFixed(0)}%`),e.auto&&this.log("Mode: auto (no interactive review)"),this.log("");let T=t.version,f=0,x=0;for(let l=1;l<=e["max-iterations"];l++){this.log(`
|
|
2
2
|
=== Iteration ${l} ===`),this.log("Running train evals...");let b=await this.runEvalsOnTarget(t,u,e),p=this.computePassRate(b);if(this.log(`Train pass rate: ${(p*100).toFixed(1)}%`),p>=h){this.log(`Train score ${(p*100).toFixed(1)}% >= threshold ${(h*100).toFixed(0)}%. Stopping.`);let o=await this.runEvalsOnTarget(t,d,e),z=this.computePassRate(o);this.log(`Final test score: ${(z*100).toFixed(1)}%`),await m("/api/optimization-runs",{evalTargetId:t.id,type:"content",iteration:l,inputVersion:t.version,trainScore:p,testScore:z,analysis:{reason:"threshold_reached"},status:"completed"});break}this.log("Analyzing results...");let M=b.map(o=>({evalName:o.evalName,prompt:o.prompt,expectations:o.expectations,grading:o.grading})),a=await V({content:t.content,evalResults:M,model:e["analyzer-model"]??e.model,timeout:e.timeout});this.log(`
|
|
3
3
|
Assessment: ${a.overallAssessment}`),this.log(`Suggestions: ${a.suggestions.length}`);for(let o of a.suggestions)this.log(` - [${o.section}] ${o.reasoning}`);if(a.proposedContent===t.content){this.log("No changes proposed. Stopping."),await m("/api/optimization-runs",{evalTargetId:t.id,type:"content",iteration:l,inputVersion:t.version,trainScore:p,analysis:{reason:"no_changes"},status:"completed"});break}if(!e.auto&&!await this.confirm(`
|
|
4
4
|
Apply the proposed changes as a new version? [y/N] `)){this.log("Changes not applied. Stopping."),await m("/api/optimization-runs",{evalTargetId:t.id,type:"content",iteration:l,inputVersion:t.version,trainScore:p,analysis:{reason:"user_declined",suggestions:a.suggestions},status:"completed"});break}let r=await S(`/api/eval-targets/${t.id}`,{content:a.proposedContent});this.log(`Created v${r.version}`),this.log(`Running test evals on v${t.version} (baseline) and v${r.version}...`);let E=await this.runEvalsOnTarget(t,d,e),R=await this.runEvalsOnTarget(r,d,e),v=this.computePassRate(R),I=this.computePassRate(E);this.log(`Test pass rate: v${t.version} ${(I*100).toFixed(1)}% \u2192 v${r.version} ${(v*100).toFixed(1)}%`);let y=P(E,R);if(y&&this.log(C(y,t.version,r.version)),await m("/api/optimization-runs",{evalTargetId:t.id,type:"content",iteration:l,inputVersion:t.version,outputVersion:r.version,trainScore:p,testScore:v,analysis:{suggestions:a.suggestions,overallAssessment:a.overallAssessment,priorTestScore:I,verdict:y},status:"completed"}),v>f)f=v,T=r.version,x=0;else if(x++,x>=2){this.log("No improvement for 2 consecutive iterations. Stopping.");break}t=r}this.log(`
|
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
import{a as w}from"../../chunk-
|
|
1
|
+
import{a as w}from"../../chunk-IL35G6CK.js";import"../../chunk-S6B2R2LL.js";import{b as _}from"../../chunk-WQ2BJQYB.js";import{a as R}from"../../chunk-PPKPCXJD.js";import"../../chunk-IZTIYR5Q.js";import"../../chunk-V44SRRYR.js";import"../../chunk-U6XEU573.js";import"../../chunk-VLOX6KOM.js";import"../../chunk-3AV3GTMP.js";import{e as h,f as k}from"../../chunk-H2ORWIEY.js";import"../../chunk-O6C2UGBY.js";import{a as $}from"../../chunk-ZLLER3HP.js";import{Args as T,Flags as c}from"@oclif/core";var b=class x extends R{static{$(this,"EvalRunCommand")}static description="Run evals against a target, optionally grade results, and post to API";static examples=["<%= config.bin %> evals run <target-id>","<%= config.bin %> evals run <target-id> --parallel 3 --runs-per-eval 2","<%= config.bin %> evals run <target-id> --skip-baseline --skip-grading"];static args={targetId:T.string({description:"Eval target ID",required:!0})};static flags={parallel:c.integer({description:"Number of parallel eval executions",default:1}),"runs-per-eval":c.integer({description:"Number of runs per eval for variance analysis",default:1}),iteration:c.integer({description:"Iteration number for tracking",default:1}),"skip-baseline":c.boolean({description:"Skip baseline (without_target) runs",default:!1}),"skip-grading":c.boolean({description:"Skip LLM grading step",default:!1}),model:c.string({description:"Model for eval execution (default: user configured)"}),"grader-model":c.string({description:"Model for grading (default: same as execution model)"}),timeout:c.integer({description:"Timeout per eval in ms",default:12e4})};async run(){let{args:f,flags:i}=await this.parse(x);this.requireAuth();let s=await h(`/api/eval-targets/${f.targetId}`),r=await h(`/api/eval-targets/${f.targetId}/evals`);r.length===0&&this.error(`No evals found for target "${s.name}". Create some with \`rulemetric evals create\`.`),this.log(`Running ${r.length} eval(s) for "${s.name}" v${s.version}`),this.log(`Config: ${i["runs-per-eval"]} run(s) per eval, parallel=${i.parallel}, iteration=${i.iteration}`),i["skip-baseline"]&&this.log("Skipping baseline runs"),i["skip-grading"]&&this.log("Skipping grading"),this.log("");let l=[{name:"with_target",content:s.content}];i["skip-baseline"]||l.push({name:"without_target"});let p=[];for(let e of r)for(let a of l)for(let n=1;n<=i["runs-per-eval"];n++)p.push({eval_:e,configuration:a.name,targetContent:a.content,runNumber:n});let o=[],g=i.parallel;for(let e=0;e<p.length;e+=g){let a=p.slice(e,e+g),n=await Promise.all(a.map(m=>this.executeAndGrade(m,s,i)));o.push(...n)}this.log(""),this.log("Posting results to API...");for(let e of o)await k("/api/eval-runs",e);this.log(""),this.log("=== Results Summary ===");for(let e of l){let a=o.filter(t=>t.configuration===e.name),n=a.filter(t=>t.status==="completed"),m=n.filter(t=>Object.keys(t.grading).length>0);if(this.log(`
|
|
2
2
|
${e.name}:`),this.log(` Runs: ${n.length}/${a.length} completed`),m.length>0){let t=m.map(d=>d.grading.summary?.pass_rate??0),u=t.reduce((d,v)=>d+v,0)/t.length;this.log(` Avg pass_rate: ${(u*100).toFixed(1)}%`)}for(let t of a){let u=r.find(I=>I.id===t.evalId)?.name??t.evalId,d=t.grading.summary?.pass_rate,v=d!==void 0?` pass_rate=${(d*100).toFixed(0)}%`:"",y=t.timing.duration_ms?` ${(t.timing.duration_ms/1e3).toFixed(1)}s`:"";this.log(` [${t.status}] ${u} run#${t.runNumber}${v}${y}`)}}if(!i["skip-baseline"]&&o.length>0){let e=o.filter(n=>n.configuration==="with_target"&&Object.keys(n.grading).length>0),a=o.filter(n=>n.configuration==="without_target"&&Object.keys(n.grading).length>0);if(e.length>0&&a.length>0){let n=e.map(u=>u.grading.summary?.pass_rate??0).reduce((u,d)=>u+d,0)/e.length,m=a.map(u=>u.grading.summary?.pass_rate??0).reduce((u,d)=>u+d,0)/a.length,t=n-m;this.log(`
|
|
3
3
|
Delta: ${t>0?"+":""}${(t*100).toFixed(1)}% (with_target vs without_target)`)}}}async executeAndGrade(f,i,s){let{eval_:r,configuration:l,targetContent:p,runNumber:o}=f;this.log(`[${l}] ${r.name} run#${o} \u2014 executing...`);let g=await _({prompt:r.prompt,targetContent:p,timeout:s.timeout,model:s.model});if(g.error)return this.log(`[${l}] ${r.name} run#${o} \u2014 FAILED: ${g.error}`),{evalId:r.id,evalTargetId:i.id,evalTargetVersion:i.version,configuration:l,runNumber:o,iteration:s.iteration,status:"failed",outputs:{error:g.error},timing:{duration_ms:g.durationMs,total_tokens:g.totalTokens},grading:{}};this.log(`[${l}] ${r.name} run#${o} \u2014 completed in ${(g.durationMs/1e3).toFixed(1)}s`);let e={};if(!s["skip-grading"]&&r.expectations.length>0){this.log(`[${l}] ${r.name} run#${o} \u2014 grading...`);let a=await w({prompt:r.prompt,output:g.output,expectations:r.expectations,model:s["grader-model"]??s.model,timeout:s.timeout});e=a;let n=a.summary.pass_rate;this.log(`[${l}] ${r.name} run#${o} \u2014 grading done: pass_rate=${(n*100).toFixed(0)}%`)}return{evalId:r.id,evalTargetId:i.id,evalTargetVersion:i.version,configuration:l,runNumber:o,iteration:s.iteration,status:"completed",outputs:{transcript:g.output},timing:{duration_ms:g.durationMs,total_tokens:g.totalTokens,total_duration_seconds:g.durationMs/1e3},grading:e}}};export{b as default};
|
package/dist/lib/agent-loop.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
import{a,b,c,d,e}from"../chunk-
|
|
1
|
+
import{a,b,c,d,e}from"../chunk-PI2VYOU7.js";import"../chunk-TIOKY2IA.js";import"../chunk-RSKQRVPJ.js";import"../chunk-46IYYFYR.js";import"../chunk-5WY2WM4K.js";import"../chunk-N7TGRFVZ.js";import"../chunk-FKW6PVDG.js";import"../chunk-KC7IOPF6.js";import"../chunk-HDU5QPEO.js";import"../chunk-QFVGUZDO.js";import"../chunk-W2MOTOQE.js";import"../chunk-6KU6UUYJ.js";import"../chunk-EBSMTI3X.js";import"../chunk-6QKI756T.js";import"../chunk-5RBLIVBF.js";import"../chunk-KAF3CYRW.js";import"../chunk-UF6US7VU.js";import"../chunk-O3C5IV2Y.js";import"../chunk-ZL4MZMUK.js";import"../chunk-ECHJ4MBP.js";import"../chunk-AP4TQRZJ.js";import"../chunk-45VWQP4J.js";import"../chunk-GTOEWPIM.js";import"../chunk-6V4WM73L.js";import"../chunk-5XP7WWJR.js";import"../chunk-RTWRHIKY.js";import"../chunk-TDD7IOV2.js";import"../chunk-MODXEGCU.js";import"../chunk-7DFNBRLY.js";import"../chunk-N7ODX6PO.js";import"../chunk-67QCYUJU.js";import"../chunk-GQRCSR2A.js";import"../chunk-IL35G6CK.js";import"../chunk-S6B2R2LL.js";import"../chunk-RCI5MTZP.js";import"../chunk-WQ2BJQYB.js";import"../chunk-H2ORWIEY.js";import"../chunk-O6C2UGBY.js";import"../chunk-ZLLER3HP.js";export{b as CAPABILITIES,a as HANDLERS,c as availableCapabilities,d as pollForWork,e as runAgentLoop};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{a}from"../chunk-
|
|
1
|
+
import{a}from"../chunk-GQRCSR2A.js";import"../chunk-WQ2BJQYB.js";import"../chunk-ZLLER3HP.js";export{a as analyzeEvalResults};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{a}from"../chunk-
|
|
1
|
+
import{a}from"../chunk-45VWQP4J.js";import"../chunk-5XP7WWJR.js";import"../chunk-RTWRHIKY.js";import"../chunk-N7ODX6PO.js";import"../chunk-67QCYUJU.js";import"../chunk-GQRCSR2A.js";import"../chunk-IL35G6CK.js";import"../chunk-S6B2R2LL.js";import"../chunk-WQ2BJQYB.js";import"../chunk-H2ORWIEY.js";import"../chunk-O6C2UGBY.js";import"../chunk-ZLLER3HP.js";export{a as processConversationJob};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{a}from"../chunk-
|
|
1
|
+
import{a,b}from"../chunk-WQ2BJQYB.js";import"../chunk-ZLLER3HP.js";export{b as executeEval,a as parseClaudeJsonOutput};
|
package/dist/lib/eval-grader.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
import{a}from"../chunk-
|
|
1
|
+
import{a}from"../chunk-IL35G6CK.js";import"../chunk-S6B2R2LL.js";import"../chunk-WQ2BJQYB.js";import"../chunk-ZLLER3HP.js";export{a as gradeEvalOutput};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{a}from"../chunk-
|
|
1
|
+
import{a}from"../chunk-GTOEWPIM.js";import"../chunk-WQ2BJQYB.js";import"../chunk-ZLLER3HP.js";export{a as judgeEvalQuality};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{a,b}from"../chunk-
|
|
1
|
+
import{a,b}from"../chunk-WDGJHNOW.js";import"../chunk-WQ2BJQYB.js";import"../chunk-ZLLER3HP.js";export{b as computeTriggerScore,a as testTrigger};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{a,b}from"../../chunk-
|
|
1
|
+
import{a,b}from"../../chunk-ECHJ4MBP.js";import"../../chunk-AP4TQRZJ.js";import"../../chunk-RTWRHIKY.js";import"../../chunk-N7ODX6PO.js";import"../../chunk-67QCYUJU.js";import"../../chunk-ZLLER3HP.js";export{b as distillMemories,a as selectNewMemories};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{a}from"../../chunk-
|
|
1
|
+
import{a}from"../../chunk-5WY2WM4K.js";import"../../chunk-N7TGRFVZ.js";import"../../chunk-5RBLIVBF.js";import"../../chunk-AP4TQRZJ.js";import"../../chunk-ZLLER3HP.js";export{a as processAnnouncement};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{a}from"../../chunk-
|
|
1
|
+
import{a}from"../../chunk-SONOLG6I.js";import"../../chunk-N7TGRFVZ.js";import"../../chunk-ZL4MZMUK.js";import"../../chunk-AP4TQRZJ.js";import"../../chunk-ZLLER3HP.js";export{a as processChangelog};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{a}from"../../chunk-
|
|
1
|
+
import{a}from"../../chunk-FKW6PVDG.js";import"../../chunk-45VWQP4J.js";import"../../chunk-5XP7WWJR.js";import"../../chunk-RTWRHIKY.js";import"../../chunk-N7ODX6PO.js";import"../../chunk-67QCYUJU.js";import"../../chunk-GQRCSR2A.js";import"../../chunk-IL35G6CK.js";import"../../chunk-S6B2R2LL.js";import"../../chunk-WQ2BJQYB.js";import"../../chunk-H2ORWIEY.js";import"../../chunk-O6C2UGBY.js";import"../../chunk-ZLLER3HP.js";export{a as processConversation};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{a}from"../../chunk-
|
|
1
|
+
import{a}from"../../chunk-KC7IOPF6.js";import"../../chunk-5RBLIVBF.js";import"../../chunk-GTOEWPIM.js";import"../../chunk-6V4WM73L.js";import"../../chunk-5XP7WWJR.js";import"../../chunk-RTWRHIKY.js";import"../../chunk-N7ODX6PO.js";import"../../chunk-67QCYUJU.js";import"../../chunk-IL35G6CK.js";import"../../chunk-S6B2R2LL.js";import"../../chunk-WQ2BJQYB.js";import"../../chunk-H2ORWIEY.js";import"../../chunk-O6C2UGBY.js";import"../../chunk-ZLLER3HP.js";export{a as processEval};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{a}from"../../chunk-
|
|
1
|
+
import{a}from"../../chunk-6KU6UUYJ.js";import"../../chunk-AP4TQRZJ.js";import"../../chunk-IL35G6CK.js";import"../../chunk-S6B2R2LL.js";import"../../chunk-RCI5MTZP.js";import"../../chunk-WQ2BJQYB.js";import"../../chunk-ZLLER3HP.js";export{a as processMemoryAb};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{a}from"../../chunk-
|
|
1
|
+
import{a}from"../../chunk-EBSMTI3X.js";import"../../chunk-6QKI756T.js";import"../../chunk-5RBLIVBF.js";import"../../chunk-AP4TQRZJ.js";import"../../chunk-7DFNBRLY.js";import"../../chunk-N7ODX6PO.js";import"../../chunk-ZLLER3HP.js";export{a as processRunCleanup};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{a}from"../../chunk-
|
|
1
|
+
import{a}from"../../chunk-46IYYFYR.js";import"../../chunk-AP4TQRZJ.js";import"../../chunk-RTWRHIKY.js";import"../../chunk-N7ODX6PO.js";import"../../chunk-67QCYUJU.js";import"../../chunk-ZLLER3HP.js";export{a as processSessionGoal};
|
package/dist/lib/manual-tasks.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
import{a as l}from"../chunk-
|
|
1
|
+
import{a as l}from"../chunk-SONOLG6I.js";import"../chunk-N7TGRFVZ.js";import{a as u}from"../chunk-UF6US7VU.js";import{a as g}from"../chunk-O3C5IV2Y.js";import"../chunk-ZL4MZMUK.js";import"../chunk-AP4TQRZJ.js";import"../chunk-RTWRHIKY.js";import"../chunk-TDD7IOV2.js";import"../chunk-MODXEGCU.js";import"../chunk-N7ODX6PO.js";import"../chunk-67QCYUJU.js";import{a as i}from"../chunk-GY5IJ4RS.js";import"../chunk-H2ORWIEY.js";import"../chunk-O6C2UGBY.js";import{a as o}from"../chunk-ZLLER3HP.js";var c={cron_check_changelog:o(async(r,e)=>{let s=await l({logger:{info:o(t=>e.logger.info(t),"info"),warn:o(t=>e.logger.warn(t),"warn")}});e.logger.info(`[cron_check_changelog] result: created=${s.createdCount} skipped=${s.skippedCount}`)},"cron_check_changelog"),cron_suggest_instructions:o((r,e)=>g(r,e),"cron_suggest_instructions"),cron_refresh_skills:o((r,e)=>u(r,e),"cron_refresh_skills")},p=i.map(r=>{let e=c[r.name];if(!e)throw new Error(`manual-tasks: no handler registered for "${r.name}"`);return{...r,handler:e}});async function m(r){let e=p.find(n=>n.name===r);if(!e)return{name:r,durationMs:0,ok:!1,error:`Unknown task: ${r}`,logs:[]};let s=[],t={logger:{info:o(n=>s.push({level:"info",message:n}),"info"),warn:o(n=>s.push({level:"warn",message:n}),"warn"),error:o(n=>s.push({level:"error",message:n}),"error")},job:{attempts:0}},a=Date.now();try{return await e.handler({},t),{name:r,durationMs:Date.now()-a,ok:!0,logs:s}}catch(n){return{name:r,durationMs:Date.now()-a,ok:!1,error:n instanceof Error?n.message:String(n),logs:s}}}o(m,"runManualTask");export{p as MANUAL_TASKS,m as runManualTask};
|
package/oclif.manifest.json
CHANGED
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@rulemetric/cli",
|
|
3
|
-
"version": "0.7.
|
|
3
|
+
"version": "0.7.19",
|
|
4
4
|
"publishConfig": {
|
|
5
5
|
"access": "public"
|
|
6
6
|
},
|
|
@@ -74,9 +74,9 @@
|
|
|
74
74
|
"postgres": "^3.4.0",
|
|
75
75
|
"react": "^19.0.0",
|
|
76
76
|
"zod": "^3.24.0",
|
|
77
|
-
"@rulemetric/
|
|
78
|
-
"@rulemetric/
|
|
79
|
-
"@rulemetric/skills-registry": "0.7.
|
|
77
|
+
"@rulemetric/proxy": "0.7.19",
|
|
78
|
+
"@rulemetric/hooks": "0.7.19",
|
|
79
|
+
"@rulemetric/skills-registry": "0.7.19"
|
|
80
80
|
},
|
|
81
81
|
"//deps": "Worker (`evals agent`) runtime deps: the @opentelemetry/* set, @sentry/node, and postgres are STATIC top-level imports loaded at worker startup (via bundled @rulemetric/{telemetry,db}) — they MUST be runtime deps or a clean `npm i -g` crashes with ModuleLoadError. `better-sqlite3` is optionalDependencies (below): it's a native module, lazy `require()`'d inside a try/catch (packages/session providers cursor/opencode) so a missing binary degrades gracefully — making it a hard dep would break `npm i -g` on platforms without prebuilt binaries. `resend` stays a devDep: lazy `await import('resend')` guarded by RESEND_API_KEY, which end-user workers never set (provider falls back to noop). Classification verified via import-graph scan of dist/commands/evals/agent.js + per-importer static/lazy check.",
|
|
82
82
|
"optionalDependencies": {
|
|
@@ -94,8 +94,8 @@
|
|
|
94
94
|
"tsx": "^4.19.0",
|
|
95
95
|
"typescript": "^5.9.0",
|
|
96
96
|
"vitest": "^3.2.0",
|
|
97
|
-
"@rulemetric/core": "0.0.1",
|
|
98
97
|
"@rulemetric/api": "0.0.1",
|
|
98
|
+
"@rulemetric/core": "0.0.1",
|
|
99
99
|
"@rulemetric/db": "0.0.1",
|
|
100
100
|
"@rulemetric/effectiveness": "0.0.1",
|
|
101
101
|
"@rulemetric/email": "0.0.1",
|
package/dist/chunk-AIGR5AYV.js
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{a as N}from"./chunk-5RBLIVBF.js";import{a as S}from"./chunk-QUUN6A7E.js";import{a as T}from"./chunk-6V4WM73L.js";import{a as G}from"./chunk-5XP7WWJR.js";import{a as C}from"./chunk-5BMBVTAE.js";import{a as x}from"./chunk-QH7VY5HJ.js";import{e as k,f as E,h as d}from"./chunk-H2ORWIEY.js";import{a as h}from"./chunk-ZLLER3HP.js";async function W(v,f){let{mirrorId:s,evalTargetId:g,config:o}=v,a=h(e=>f.logger.info(e),"log"),i=await k(`/api/eval-targets/${g}`),$=await k(`/api/eval-targets/${g}/evals`);if($.length===0&&o.generateIfEmpty){a("No eval cases on target \u2014 generating from content via local LLM...");let e=await G({content:i.content,name:i.name});if(e===null)throw new Error("Case generation requires an LLM backend (claude CLI on PATH or ANTHROPIC_API_KEY) \u2014 none available on this worker.");let t=[];for(let n of e)t.push(await E(`/api/eval-targets/${g}/evals`,n));$=t,a(`Generated ${t.length} eval case(s)`)}if($.length===0)throw new N("No evals defined for target");let J=o.runsPerEval??1,R=o.timeout??12e4,j=o.iteration??1,y=new Set;if(f.job.attempts>1)for(let t=0;;t+=100){let n=await k(`/api/eval-targets/${g}/runs?jobId=${s}&limit=100&offset=${t}`);for(let r of n)y.add(`${r.evalId}|${r.configuration}|${r.runNumber}|${r.iteration}`);if(n.length<100)break}let _=[{name:"with_target",content:i.content}];o.skipBaseline||_.push({name:"without_target"});let m=[];for(let e of $)for(let t of _)for(let n=1;n<=J;n++)y.has(`${e.id}|${t.name}|${n}|${j}`)||m.push({eval_:e,configuration:t.name,targetContent:t.content,runNumber:n});y.size>0&&a(`Resuming attempt ${f.job.attempts}: ${y.size} run(s) already persisted, ${m.length} remaining`);let l=m.length,u=0,c=Math.min(o.parallel??1,4);await d(`/api/eval-jobs/${s}/progress`,{status:"running",progress:{total:l,completed:0,current:null,message:`Starting ${l} eval runs (concurrency: ${c})...`}});let b=[];async function I(e){let t=`${e.configuration} \xB7 ${e.eval_.name} \xB7 run#${e.runNumber}`;a(`[${u+1}/${l}] ${t}`);let n=c>1?T():null;try{let r=await x({prompt:e.eval_.prompt,targetContent:e.targetContent,workDir:n?.workDir,timeout:R,model:o.model}),p={};return!o.skipGrading&&e.eval_.expectations.length>0&&!r.error&&(p=await C({prompt:e.eval_.prompt,output:r.output,expectations:e.eval_.expectations,model:o.graderModel??o.model,timeout:R})),{jobId:s,evalId:e.eval_.id,evalTargetId:i.id,evalTargetVersion:i.version,configuration:e.configuration,runNumber:e.runNumber,iteration:j,status:r.error?"failed":"completed",outputs:r.error?{error:r.error}:{transcript:r.output},timing:{duration_ms:r.durationMs,total_tokens:r.totalTokens},grading:p,worktree:n?.isWorktree?!0:void 0}}finally{n?.cleanup()}}if(h(I,"processItem"),c<=1)for(let e of m){let t=`${e.configuration} \xB7 ${e.eval_.name} \xB7 run#${e.runNumber}`;await d(`/api/eval-jobs/${s}/progress`,{status:"running",progress:{total:l,completed:u,current:t,message:`Executing ${t}...`}});let n=await I(e);await E("/api/eval-runs",n),b.push(n),u++,await d(`/api/eval-jobs/${s}/progress`,{status:"running",progress:{total:l,completed:u,current:t,message:`Completed ${t}`}})}else{a(`Running ${l} evals with concurrency=${c} (worktree isolation)`);for(let e=0;e<m.length;e+=c){let t=m.slice(e,e+c),n=`batch ${Math.floor(e/c)+1}/${Math.ceil(m.length/c)}`;await d(`/api/eval-jobs/${s}/progress`,{status:"running",progress:{total:l,completed:u,current:n,message:`Executing ${n} (${t.length} parallel)...`}});let r=await Promise.all(t.map(I));for(let p of r)await E("/api/eval-runs",p),b.push(p),u++;await d(`/api/eval-jobs/${s}/progress`,{status:"running",progress:{total:l,completed:u,current:n,message:`Completed ${n}`}})}}let P=z(b),w;if(!o.skipGrading&&b.some(e=>e.grading&&Object.keys(e.grading).length>0))try{a(`Running meta-judge for job ${s}...`);let e=$.map(t=>{let r=b.filter(p=>p.evalId===t.id&&p.configuration==="with_target")[0];return{evalName:t.name,prompt:t.prompt,expectations:t.expectations,grading:r?.grading?r.grading:null,output:r?.outputs?.transcript?.slice(0,500)}});w=await S({targetName:i.name,evalResults:e,model:o.graderModel??o.model,timeout:6e4}),a(`Meta-judge: quality=${w.quality_score}/5, issues=${w.issues.length}`)}catch(e){a(`Meta-judge failed (non-fatal): ${e instanceof Error?e.message:String(e)}`)}let M=w?{...P,meta_judgement:w}:P;return a(`Job ${s} completed: ${u}/${l} runs`),await d(`/api/eval-jobs/${s}/state`,{result:M}).catch(e=>{a(`result persist failed: ${e instanceof Error?e.message:String(e)}`)}),M}h(W,"processEval");function z(v){let f=v.filter(a=>a.status==="completed"),s=v.filter(a=>a.status==="failed"),g=f.filter(a=>{let i=a.grading;return i&&Object.keys(i).length>0}),o=g.length>0?g.reduce((a,i)=>a+(i.grading?.summary?.pass_rate??0),0)/g.length:null;return{total:v.length,completed:f.length,failed:s.length,avgPassRate:o}}h(z,"buildSummary");export{W as a};
|
package/dist/chunk-QH7VY5HJ.js
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{a as x}from"./chunk-ZLLER3HP.js";import{spawn as v}from"node:child_process";async function y(T){let{prompt:w,targetContent:P,systemPrompt:k,workDir:D=process.cwd(),timeout:a=12e4,model:l}=T,n=["-p",w,"--output-format","json"],p=P??k;p&&n.push("--system-prompt",p),l&&n.push("--model",l);let i=Date.now();return new Promise(u=>{let e={...process.env};delete e.CLAUDECODE,delete e.HTTPS_PROXY;let b=["/opt/homebrew/bin","/usr/local/bin"],c=(e.PATH??"").split(":").filter(Boolean),m=b.filter(t=>!c.includes(t));m.length&&(e.PATH=[...c,...m].join(":"));let o=v("claude",n,{cwd:D,env:e,stdio:["ignore","pipe","pipe"]}),r="",d="";o.stdout.on("data",t=>{r+=t.toString()}),o.stderr.on("data",t=>{d+=t.toString()});let g=setTimeout(()=>{o.kill("SIGTERM"),u({output:r,exitCode:null,durationMs:Date.now()-i,totalTokens:0,error:`Timed out after ${a}ms`})},a);o.on("close",t=>{clearTimeout(g);let C=Date.now()-i,f=0,E=r;try{let s=JSON.parse(r);E=s.result??s.content??r,f=s.usage?.total_tokens??(s.usage?.input_tokens??0)+(s.usage?.output_tokens??0)}catch{}u({output:E,exitCode:t,durationMs:C,totalTokens:f,error:t!==0?d||`Exit code ${t}`:void 0})}),o.on("error",t=>{clearTimeout(g),u({output:"",exitCode:null,durationMs:Date.now()-i,totalTokens:0,error:`Failed to spawn claude: ${t.message}`})})})}x(y,"executeEval");export{y as a};
|
package/dist/chunk-W5QRYDIN.js
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{a as m,c as fr}from"./chunk-ZLLER3HP.js";import{boolean as yo,pgTable as xr,text as Qe,timestamp as Rt,uuid as To}from"drizzle-orm/pg-core";import{pgTable as Ye,text as te,timestamp as Ae,jsonb as ho,uuid as J,primaryKey as Io}from"drizzle-orm/pg-core";var u=Ye("organizations",{id:J("id").primaryKey().defaultRandom(),name:te("name").unique().notNull(),slug:te("slug").unique().notNull(),metadata:ho("metadata"),createdAt:Ae("created_at",{withTimezone:!0}).defaultNow(),updatedAt:Ae("updated_at",{withTimezone:!0}).defaultNow()}),v=Ye("teams",{id:J("id").primaryKey().defaultRandom(),orgId:J("org_id").references(()=>u.id,{onDelete:"cascade"}),name:te("name").notNull(),slug:te("slug").notNull(),metadata:ho("metadata"),createdAt:Ae("created_at",{withTimezone:!0}).defaultNow()}),oe=Ye("user_organizations",{userId:J("user_id").notNull(),orgId:J("org_id").references(()=>u.id,{onDelete:"cascade"}).notNull(),role:te("role").notNull().default("member"),createdAt:Ae("created_at",{withTimezone:!0}).defaultNow()},e=>[Io({columns:[e.userId,e.orgId]})]),ne=Ye("user_teams",{userId:J("user_id").notNull(),teamId:J("team_id").references(()=>v.id,{onDelete:"cascade"}).notNull(),role:te("role").notNull().default("member"),createdAt:Ae("created_at",{withTimezone:!0}).defaultNow()},e=>[Io({columns:[e.userId,e.teamId]})]);var o=xr("profiles",{id:To("id").primaryKey(),email:Qe("email"),displayName:Qe("display_name"),activeOrgId:To("active_org_id").references(()=>u.id,{onDelete:"set null"}),isSuperadmin:yo("is_superadmin").notNull().default(!1),claudeCodePlan:Qe("claude_code_plan"),planSource:Qe("plan_source").notNull().default("detected"),setupCompletedAt:Rt("setup_completed_at",{withTimezone:!0}),liveSendSkipped:yo("live_send_skipped").notNull().default(!1),createdAt:Rt("created_at",{withTimezone:!0}).defaultNow(),updatedAt:Rt("updated_at",{withTimezone:!0}).defaultNow()});import{pgTable as Ir,text as se,timestamp as St,jsonb as jo,uuid as $e,integer as yr,boolean as Tr,index as Kt}from"drizzle-orm/pg-core";import{boolean as Nr,jsonb as vr,pgTable as Et,primaryKey as zo,text as Y,timestamp as De,uniqueIndex as kt,uuid as Q}from"drizzle-orm/pg-core";import{sql as hr}from"drizzle-orm";import{pgTable as wo,text as g,timestamp as ze,jsonb as Xe,uuid as C,integer as bt,boolean as gr,uniqueIndex as Ao,index as We}from"drizzle-orm/pg-core";var r=wo("instructions",{id:C("id").primaryKey().defaultRandom(),name:g("name").notNull(),description:g("description").notNull(),type:g("type").notNull().default("instruction"),scope:g("scope").notNull(),scopeRef:C("scope_ref"),version:g("version").notNull(),content:g("content").notNull(),frontmatter:Xe("frontmatter").notNull(),slots:Xe("slots"),tags:g("tags").array(),compatibility:g("compatibility").array(),createdBy:C("created_by"),createdAt:ze("created_at",{withTimezone:!0}).defaultNow(),updatedAt:ze("updated_at",{withTimezone:!0}).defaultNow(),archived:gr("archived").default(!1),archivedAt:ze("archived_at",{withTimezone:!0}),archivedBy:C("archived_by"),forkedFromId:C("forked_from_id").references(()=>r.id,{onDelete:"set null"}),upstreamVersion:g("upstream_version"),badge:g("badge"),contentHash:g("content_hash"),contextIdentity:g("context_identity"),scanScore:bt("scan_score"),scanFindings:Xe("scan_findings"),popularityScore:bt("popularity_score"),sourceUpdatedAt:ze("source_updated_at",{withTimezone:!0})},e=>[Ao("instructions_name_scope_ref_idx").on(e.name,e.scope,e.scopeRef),We("idx_instructions_scope").on(e.scope,e.scopeRef),We("idx_instructions_created_by").on(e.createdBy),We("idx_instructions_context_identity").on(e.createdBy,e.contextIdentity),We("idx_instructions_public_recency").on(e.scope,e.sourceUpdatedAt.desc())]),re=wo("instruction_versions",{id:C("id").primaryKey().defaultRandom(),instructionId:C("instruction_id").references(()=>r.id,{onDelete:"cascade"}),versionNumber:bt("version_number").notNull(),content:g("content").notNull(),frontmatter:Xe("frontmatter").notNull(),changeSummary:g("change_summary"),createdBy:C("created_by"),createdAt:ze("created_at",{withTimezone:!0}).defaultNow()},e=>[Ao("instruction_versions_instruction_version_idx").on(e.instructionId,e.versionNumber)]);var s=Et("projects",{id:Q("id").primaryKey().defaultRandom(),orgId:Q("org_id").references(()=>u.id,{onDelete:"cascade"}),name:Y("name").notNull(),description:Y("description"),githubRepo:Y("github_repo"),gitRemoteUrl:Y("git_remote_url"),gitRootCommit:Y("git_root_commit"),gitRemoteAliases:Y("git_remote_aliases").array().notNull().default([]),metadata:vr("metadata"),createdBy:Q("created_by"),createdAt:De("created_at",{withTimezone:!0}).defaultNow(),updatedAt:De("updated_at",{withTimezone:!0}).defaultNow()},e=>[kt("projects_org_name_idx").on(e.orgId,e.name),kt("projects_git_remote_url_unique").on(e.gitRemoteUrl).where(hr`${e.gitRemoteUrl} IS NOT NULL`)]),q=Et("project_instructions",{projectId:Q("project_id").references(()=>s.id,{onDelete:"cascade"}).notNull(),instructionId:Q("instruction_id").references(()=>r.id,{onDelete:"cascade"}).notNull(),addedAt:De("added_at",{withTimezone:!0}).defaultNow(),addedBy:Q("added_by")},e=>[zo({columns:[e.projectId,e.instructionId]})]),Do=Et("project_checkouts",{projectId:Q("project_id").references(()=>s.id,{onDelete:"cascade"}).notNull(),path:Y("path").notNull(),isWorktree:Nr("is_worktree").notNull().default(!1),firstSeen:De("first_seen",{withTimezone:!0}).notNull().defaultNow(),lastSeen:De("last_seen",{withTimezone:!0}).notNull().defaultNow()},e=>[zo({columns:[e.projectId,e.path]}),kt("project_checkouts_path_unique").on(e.path)]);var x=Ir("agent_runs",{id:$e("id").primaryKey().defaultRandom(),userId:$e("user_id").notNull().references(()=>o.id,{onDelete:"cascade"}),orgId:$e("org_id").references(()=>u.id,{onDelete:"set null"}),projectId:$e("project_id").references(()=>s.id,{onDelete:"set null"}),projectPath:se("project_path"),gitRemote:se("git_remote"),baseBranch:se("base_branch"),title:se("title"),prompt:se("prompt"),toolSpec:jo("tool_spec").notNull().default([]),autoWorktree:Tr("auto_worktree").notNull().default(!0),status:se("status").notNull().default("pending"),sessionCount:yr("session_count").notNull().default(0),metadata:jo("metadata").notNull().default({}),createdAt:St("created_at",{withTimezone:!0}).notNull().defaultNow(),updatedAt:St("updated_at",{withTimezone:!0}).notNull().defaultNow(),completedAt:St("completed_at",{withTimezone:!0})},e=>[Kt("idx_agent_runs_user").on(e.userId),Kt("idx_agent_runs_org_created").on(e.orgId,e.createdAt),Kt("idx_agent_runs_project").on(e.projectId)]);import{pgTable as Pt,text as I,timestamp as je,jsonb as W,uuid as j,integer as Ze,uniqueIndex as Ro,index as z}from"drizzle-orm/pg-core";var d=Pt("sessions",{id:j("id").primaryKey().defaultRandom(),userId:j("user_id").notNull().references(()=>o.id,{onDelete:"cascade"}),externalSessionId:I("external_session_id"),projectId:j("project_id").references(()=>s.id,{onDelete:"set null"}),orgId:j("org_id").references(()=>u.id,{onDelete:"set null"}),tool:I("tool").notNull(),projectPath:I("project_path"),gitBranch:I("git_branch"),startedAt:je("started_at",{withTimezone:!0}).notNull(),endedAt:je("ended_at",{withTimezone:!0}),eventCount:Ze("event_count").default(0),tokenUsage:W("token_usage"),analysis:W("analysis"),analyzedAt:je("analyzed_at",{withTimezone:!0}),analyzedEventCount:Ze("analyzed_event_count"),analyzedTurnCount:Ze("analyzed_turn_count"),metadata:W("metadata").default({}),origin:I("origin").notNull().default("unknown"),runId:j("run_id").references(()=>x.id,{onDelete:"set null"}),model:I("model"),harnessVersion:I("harness_version"),createdAt:je("created_at",{withTimezone:!0}).defaultNow()},e=>[z("idx_sessions_user").on(e.userId),z("idx_sessions_tool").on(e.tool),z("idx_sessions_started_at").on(e.startedAt),z("idx_sessions_project").on(e.projectId),z("idx_sessions_org_started_at").on(e.orgId,e.startedAt),z("idx_sessions_run").on(e.runId),Ro("idx_sessions_user_external").on(e.userId,e.externalSessionId)]),ie=Pt("session_events",{id:j("id").primaryKey().defaultRandom(),sessionId:j("session_id").notNull().references(()=>d.id,{onDelete:"cascade"}),sequence:Ze("sequence").notNull(),eventType:I("event_type").notNull(),content:I("content"),toolName:I("tool_name"),toolInput:W("tool_input"),toolOutput:W("tool_output"),tokenUsage:W("token_usage"),model:I("model"),timestamp:je("timestamp",{withTimezone:!0}).notNull(),metadata:W("metadata").default({})},e=>[Ro("session_events_session_sequence_idx").on(e.sessionId,e.sequence),z("idx_session_events_session_id").on(e.sessionId),z("idx_session_events_event_type").on(e.eventType),z("idx_session_events_model").on(e.model)]),M=Pt("session_instructions",{sessionId:j("session_id").notNull().references(()=>d.id,{onDelete:"cascade"}),instructionId:j("instruction_id").notNull().references(()=>r.id,{onDelete:"cascade"}),linkMethod:I("link_method").notNull()},e=>[z("idx_session_instructions_instruction_id").on(e.instructionId)]);import{pgTable as wr,text as ae,timestamp as Ot,uuid as Re,integer as bo,index as et}from"drizzle-orm/pg-core";var y=wr("memories",{id:Re("id").primaryKey().defaultRandom(),userId:Re("user_id").notNull().references(()=>o.id,{onDelete:"cascade"}),orgId:Re("org_id"),projectId:Re("project_id").references(()=>s.id,{onDelete:"set null"}),version:bo("version").notNull().default(1),parentId:Re("parent_id").references(()=>y.id,{onDelete:"set null"}),kind:ae("kind").notNull(),title:ae("title").notNull(),body:ae("body").notNull(),source:ae("source").notNull(),status:ae("status").notNull().default("active"),trustClass:ae("trust_class"),trustVersion:bo("trust_version"),trustComputedAt:Ot("trust_computed_at",{withTimezone:!0}),createdAt:Ot("created_at",{withTimezone:!0}).notNull().defaultNow(),updatedAt:Ot("updated_at",{withTimezone:!0}).notNull().defaultNow()},e=>[et("idx_memories_user").on(e.userId),et("idx_memories_project").on(e.projectId),et("idx_memories_parent").on(e.parentId),et("idx_memories_user_status").on(e.userId,e.status)]);import{pgTable as Ar,text as be,timestamp as Ct,uuid as qt,integer as ko,jsonb as zr,index as Eo}from"drizzle-orm/pg-core";var So=Ar("memory_experiments",{id:qt("id").primaryKey().defaultRandom(),memoryId:qt("memory_id").notNull().references(()=>y.id,{onDelete:"cascade"}),userId:qt("user_id").notNull().references(()=>o.id,{onDelete:"cascade"}),memoryVersion:ko("memory_version").notNull().default(1),taskPrompt:be("task_prompt").notNull(),expectations:be("expectations").array().notNull().default([]),trials:ko("trials").notNull().default(10),model:be("model"),status:be("status").notNull().default("pending"),result:zr("result").$type(),error:be("error"),createdAt:Ct("created_at",{withTimezone:!0}).notNull().defaultNow(),startedAt:Ct("started_at",{withTimezone:!0}),completedAt:Ct("completed_at",{withTimezone:!0})},e=>[Eo("idx_memory_experiments_memory").on(e.memoryId),Eo("idx_memory_experiments_user").on(e.userId)]);import{boolean as Dr,date as jr,index as Mt,integer as Rr,jsonb as br,pgTable as Bt,text as w,timestamp as B,uniqueIndex as kr,uuid as de}from"drizzle-orm/pg-core";var Ko=Bt("announcements",{id:de("id").primaryKey().defaultRandom(),version:w("version").notNull().unique(),releaseDate:jr("release_date").notNull(),subject:w("subject").notNull(),htmlBody:w("html_body").notNull(),textBody:w("text_body").notNull(),sections:br("sections").notNull().default({}),status:w("status").notNull().default("draft"),recipientCount:Rr("recipient_count"),sentAt:B("sent_at",{withTimezone:!0}),sentBy:de("sent_by"),error:w("error"),createdAt:B("created_at",{withTimezone:!0}).notNull().defaultNow(),updatedAt:B("updated_at",{withTimezone:!0}).notNull().defaultNow()},e=>[Mt("idx_announcements_status").on(e.status),Mt("idx_announcements_created").on(e.createdAt)]),Po=Bt("announcement_deliveries",{id:de("id").primaryKey().defaultRandom(),announcementId:de("announcement_id").notNull(),userId:de("user_id").notNull(),email:w("email").notNull(),status:w("status").notNull().default("pending"),providerId:w("provider_id"),error:w("error"),sentAt:B("sent_at",{withTimezone:!0}),createdAt:B("created_at",{withTimezone:!0}).notNull().defaultNow()},e=>[kr("uniq_announcement_deliveries_announcement_user").on(e.announcementId,e.userId),Mt("idx_announcement_deliveries_user").on(e.userId,e.createdAt)]),Oo=Bt("notification_preferences",{userId:de("user_id").primaryKey(),productAnnouncements:Dr("product_announcements").notNull().default(!0),unsubscribeToken:w("unsubscribe_token").notNull().unique(),unsubscribedAt:B("unsubscribed_at",{withTimezone:!0}),createdAt:B("created_at",{withTimezone:!0}).notNull().defaultNow(),updatedAt:B("updated_at",{withTimezone:!0}).notNull().defaultNow()});import{pgTable as Er,text as Lt,timestamp as tt,uuid as ot,index as Co}from"drizzle-orm/pg-core";var R=Er("org_invitations",{id:ot("id").primaryKey().defaultRandom(),orgId:ot("org_id").notNull().references(()=>u.id,{onDelete:"cascade"}),email:Lt("email").notNull(),role:Lt("role").notNull().default("member"),teamId:ot("team_id").references(()=>v.id,{onDelete:"set null"}),invitedBy:ot("invited_by").notNull().references(()=>o.id),token:Lt("token").notNull().unique(),expiresAt:tt("expires_at",{withTimezone:!0}).notNull(),acceptedAt:tt("accepted_at",{withTimezone:!0}),revokedAt:tt("revoked_at",{withTimezone:!0}),createdAt:tt("created_at",{withTimezone:!0}).notNull().defaultNow()},e=>[Co("idx_org_invitations_token").on(e.token),Co("idx_org_invitations_org").on(e.orgId)]);import{pgTable as Sr,text as Kr,timestamp as Pr,jsonb as Or,uuid as Ut,index as qo}from"drizzle-orm/pg-core";var ue=Sr("instruction_events",{id:Ut("id").primaryKey().defaultRandom(),instructionId:Ut("instruction_id").notNull().references(()=>r.id,{onDelete:"cascade"}),eventType:Kr("event_type").notNull(),actorId:Ut("actor_id").notNull(),metadata:Or("metadata"),createdAt:Pr("created_at",{withTimezone:!0}).defaultNow()},e=>[qo("idx_instruction_events_instruction").on(e.instructionId),qo("idx_instruction_events_type").on(e.eventType)]);import{pgTable as Mo,text as nt,timestamp as Bo,uuid as D,integer as Lo,index as le,unique as Cr}from"drizzle-orm/pg-core";var b=Mo("treatment_assignments",{id:D("id").primaryKey().defaultRandom(),userId:D("user_id").notNull().references(()=>o.id,{onDelete:"cascade"}),treatmentType:nt("treatment_type").notNull(),treatmentId:D("treatment_id").notNull(),treatmentVersion:Lo("treatment_version").notNull().default(1),projectId:D("project_id").references(()=>s.id,{onDelete:"set null"}),assignedBy:D("assigned_by").references(()=>o.id,{onDelete:"set null"}),method:nt("method").notNull(),assignedAt:Bo("assigned_at",{withTimezone:!0}).notNull().defaultNow()},e=>[le("idx_treatment_assignments_user").on(e.userId),le("idx_treatment_assignments_treatment").on(e.treatmentType,e.treatmentId),le("idx_treatment_assignments_project").on(e.projectId)]),k=Mo("treatment_exposures",{id:D("id").primaryKey().defaultRandom(),sessionId:D("session_id").notNull().references(()=>d.id,{onDelete:"cascade"}),userId:D("user_id").notNull().references(()=>o.id,{onDelete:"cascade"}),treatmentType:nt("treatment_type").notNull(),treatmentId:D("treatment_id").notNull(),treatmentVersion:Lo("treatment_version").notNull().default(1),assignmentId:D("assignment_id").references(()=>b.id,{onDelete:"set null"}),method:nt("method").notNull(),exposedAt:Bo("exposed_at",{withTimezone:!0}).notNull().defaultNow()},e=>[Cr("treatment_exposures_unique").on(e.sessionId,e.treatmentType,e.treatmentId,e.treatmentVersion),le("idx_treatment_exposures_treatment").on(e.treatmentType,e.treatmentId),le("idx_treatment_exposures_user").on(e.userId),le("idx_treatment_exposures_session").on(e.sessionId)]);import{pgTable as qr,text as Vt,timestamp as Mr,uuid as rt,integer as Br,index as Uo,uniqueIndex as Lr}from"drizzle-orm/pg-core";var Vo=qr("pending_treatment_exposures",{id:rt("id").primaryKey().defaultRandom(),userId:rt("user_id").notNull().references(()=>o.id,{onDelete:"cascade"}),externalSessionId:Vt("external_session_id").notNull(),treatmentType:Vt("treatment_type").notNull(),treatmentId:rt("treatment_id").notNull(),treatmentVersion:Br("treatment_version").notNull().default(1),method:Vt("method").notNull().default("injected"),projectId:rt("project_id").references(()=>s.id,{onDelete:"set null"}),createdAt:Mr("created_at",{withTimezone:!0}).notNull().defaultNow()},e=>[Lr("pending_treatment_exposures_unique").on(e.externalSessionId,e.treatmentType,e.treatmentId,e.treatmentVersion),Uo("idx_pending_treatment_exposures_ext").on(e.externalSessionId),Uo("idx_pending_treatment_exposures_user").on(e.userId)]);import{pgTable as Ur,text as ce,timestamp as Ht,uuid as Gt,jsonb as Vr,uniqueIndex as Hr,index as Ho}from"drizzle-orm/pg-core";var st=Ur("session_terminal_targets",{id:Gt("id").primaryKey().defaultRandom(),userId:Gt("user_id").notNull().references(()=>o.id,{onDelete:"cascade"}),sessionId:Gt("session_id").references(()=>d.id,{onDelete:"set null"}),externalSessionId:ce("external_session_id"),kind:ce("kind").notNull(),target:ce("target").notNull(),status:ce("status").notNull().default("active"),attachCommand:ce("attach_command").notNull(),projectPath:ce("project_path"),metadata:Vr("metadata").notNull().default({}),lastSeenAt:Ht("last_seen_at",{withTimezone:!0}).defaultNow(),createdAt:Ht("created_at",{withTimezone:!0}).defaultNow(),updatedAt:Ht("updated_at",{withTimezone:!0}).defaultNow()},e=>[Hr("idx_session_terminal_targets_user_target").on(e.userId,e.target),Ho("idx_session_terminal_targets_session").on(e.sessionId),Ho("idx_session_terminal_targets_user_status").on(e.userId,e.status)]);import{boolean as Gr,index as it,jsonb as Go,pgTable as Fr,text as X,timestamp as ke,uuid as at,integer as Jr}from"drizzle-orm/pg-core";var Fo=Fr("session_send_jobs",{id:at("id").primaryKey().defaultRandom(),userId:at("user_id").notNull(),sessionId:at("session_id").notNull().references(()=>d.id,{onDelete:"cascade"}),terminalTargetId:at("terminal_target_id").references(()=>st.id,{onDelete:"set null"}),target:X("target").notNull(),message:X("message").notNull(),submit:Gr("submit").notNull().default(!0),delivery:X("delivery").notNull().default("live"),status:X("status").notNull().default("pending"),result:Go("result"),error:X("error"),attempts:Jr("attempts").notNull().default(0),taskKind:X("task_kind"),payload:Go("payload"),claimedBy:X("claimed_by"),claimedAt:ke("claimed_at",{withTimezone:!0}),leaseExpiresAt:ke("lease_expires_at",{withTimezone:!0}),createdAt:ke("created_at",{withTimezone:!0}).defaultNow(),updatedAt:ke("updated_at",{withTimezone:!0}).defaultNow(),completedAt:ke("completed_at",{withTimezone:!0})},e=>[it("idx_session_send_jobs_user").on(e.userId),it("idx_session_send_jobs_session").on(e.sessionId),it("idx_session_send_jobs_status").on(e.status),it("idx_session_send_jobs_pending").on(e.userId,e.status)]);import{pgTable as Yo,text as $,timestamp as dt,jsonb as Qo,uuid as L,integer as Yr,boolean as Qr,uniqueIndex as Wr,index as Jo,primaryKey as Xr}from"drizzle-orm/pg-core";var A=Yo("packs",{id:L("id").primaryKey().defaultRandom(),name:$("name").notNull(),description:$("description").notNull(),scope:$("scope").notNull(),scopeRef:L("scope_ref"),version:$("version").notNull().default("1.0.0"),tags:$("tags").array(),badge:$("badge"),metadata:Qo("metadata"),createdBy:L("created_by"),createdAt:dt("created_at",{withTimezone:!0}).defaultNow(),updatedAt:dt("updated_at",{withTimezone:!0}).defaultNow(),archived:Qr("archived").default(!1),archivedAt:dt("archived_at",{withTimezone:!0}),archivedBy:L("archived_by"),forkedFromId:L("forked_from_id").references(()=>A.id,{onDelete:"set null"}),upstreamVersion:$("upstream_version")},e=>[Wr("packs_name_scope_ref_idx").on(e.name,e.scope,e.scopeRef),Jo("idx_packs_scope").on(e.scope,e.scopeRef),Jo("idx_packs_created_by").on(e.createdBy)]),U=Yo("pack_instructions",{packId:L("pack_id").references(()=>A.id,{onDelete:"cascade"}).notNull(),instructionId:L("instruction_id").references(()=>r.id,{onDelete:"cascade"}).notNull(),position:Yr("position").notNull().default(0),slotOverrides:Qo("slot_overrides"),addedAt:dt("added_at",{withTimezone:!0}).defaultNow(),addedBy:L("added_by")},e=>[Xr({columns:[e.packId,e.instructionId]})]);import{pgTable as $r,text as Ft,timestamp as Zr,jsonb as es,uuid as Jt,index as me}from"drizzle-orm/pg-core";var pe=$r("instruction_usage_events",{id:Jt("id").primaryKey().defaultRandom(),instructionId:Jt("instruction_id").references(()=>r.id,{onDelete:"set null"}),userId:Jt("user_id").notNull(),surface:Ft("surface").notNull(),action:Ft("action").notNull(),metadata:es("metadata"),traceId:Ft("trace_id"),createdAt:Zr("created_at",{withTimezone:!0}).defaultNow()},e=>[me("idx_usage_events_instruction").on(e.instructionId),me("idx_usage_events_user").on(e.userId),me("idx_usage_events_surface").on(e.surface),me("idx_usage_events_action").on(e.action),me("idx_usage_events_created_at").on(e.createdAt),me("idx_usage_events_user_created").on(e.userId,e.createdAt)]);import{pgTable as ts,text as ut,timestamp as Wo,jsonb as os,uuid as Xo,index as Yt}from"drizzle-orm/pg-core";var $o=ts("worker_connections",{id:Xo("id").primaryKey().defaultRandom(),userId:Xo("user_id").notNull(),workerType:ut("worker_type").notNull().default("mcp"),clientName:ut("client_name").notNull(),clientVersion:ut("client_version"),workerVersion:ut("worker_version"),lastHeartbeat:Wo("last_heartbeat",{withTimezone:!0}).notNull().defaultNow(),connectedAt:Wo("connected_at",{withTimezone:!0}).notNull().defaultNow(),metadata:os("metadata")},e=>[Yt("idx_worker_connections_user").on(e.userId),Yt("idx_worker_connections_heartbeat").on(e.userId,e.lastHeartbeat),Yt("idx_worker_connections_type").on(e.userId,e.workerType)]);import{pgTable as ns,text as lt,timestamp as rs,jsonb as ss,uuid as Zo,index as en}from"drizzle-orm/pg-core";var tn=ns("cli_setup_events",{id:Zo("id").primaryKey().defaultRandom(),userId:Zo("user_id").notNull(),deviceId:lt("device_id").notNull(),event:lt("event").notNull(),cliVersion:lt("cli_version"),os:lt("os"),props:ss("props").notNull().default({}),createdAt:rs("created_at",{withTimezone:!0}).notNull().defaultNow()},e=>[en("idx_cli_setup_events_user").on(e.userId,e.createdAt),en("idx_cli_setup_events_device").on(e.deviceId,e.createdAt)]);import{pgTable as is,text as Z,integer as as,boolean as ds,timestamp as us,jsonb as ls,uuid as cs,index as on}from"drizzle-orm/pg-core";var nn=is("cli_error_events",{id:cs("id").primaryKey().defaultRandom(),deviceId:Z("device_id"),event:Z("event").notNull(),command:Z("command"),statusCode:as("status_code"),message:Z("message"),cliVersion:Z("cli_version"),os:Z("os"),nodeVersion:Z("node_version"),proxied:ds("proxied"),props:ls("props").notNull().default({}),createdAt:us("created_at",{withTimezone:!0}).notNull().defaultNow()},e=>[on("idx_cli_error_events_created").on(e.createdAt),on("idx_cli_error_events_device").on(e.deviceId,e.createdAt)]);import{pgTable as _e,text as _,timestamp as E,jsonb as T,uuid as p,integer as V,boolean as rn,index as N,unique as ms}from"drizzle-orm/pg-core";var n=_e("eval_targets",{id:p("id").primaryKey().defaultRandom(),userId:p("user_id").notNull(),name:_("name").notNull(),type:_("type").notNull(),content:_("content").notNull(),description:_("description").notNull().default(""),metadata:T("metadata").notNull().default({}),version:V("version").notNull().default(1),parentId:p("parent_id").references(()=>n.id,{onDelete:"set null"}),createdAt:E("created_at",{withTimezone:!0}).defaultNow(),updatedAt:E("updated_at",{withTimezone:!0}).defaultNow()},e=>[N("eval_targets_name_user_idx").on(e.name,e.userId),N("idx_eval_targets_user").on(e.userId),N("idx_eval_targets_type").on(e.type),N("idx_eval_targets_parent").on(e.parentId)]),S=_e("evals",{id:p("id").primaryKey().defaultRandom(),evalTargetId:p("eval_target_id").notNull().references(()=>n.id,{onDelete:"cascade"}),name:_("name").notNull(),prompt:_("prompt").notNull(),expectedOutput:_("expected_output").notNull().default(""),files:T("files").notNull().default([]),expectations:T("expectations").notNull().default([]),createdAt:E("created_at",{withTimezone:!0}).defaultNow(),updatedAt:E("updated_at",{withTimezone:!0}).defaultNow()},e=>[N("idx_evals_target").on(e.evalTargetId)]),K=_e("eval_runs",{id:p("id").primaryKey().defaultRandom(),jobId:p("job_id"),evalId:p("eval_id").notNull().references(()=>S.id,{onDelete:"cascade"}),evalTargetId:p("eval_target_id").notNull().references(()=>n.id,{onDelete:"cascade"}),evalTargetVersion:V("eval_target_version").notNull(),configuration:_("configuration").notNull(),runNumber:V("run_number").notNull().default(1),iteration:V("iteration").notNull().default(1),status:_("status").notNull().default("completed"),outputs:T("outputs").notNull().default({}),timing:T("timing").notNull().default({}),grading:T("grading").notNull().default({}),comparison:T("comparison"),createdAt:E("created_at",{withTimezone:!0}).defaultNow()},e=>[N("idx_eval_runs_eval").on(e.evalId),N("idx_eval_runs_target").on(e.evalTargetId),N("idx_eval_runs_iteration").on(e.evalTargetId,e.iteration)]),sn=_e("eval_comparisons",{id:p("id").primaryKey().defaultRandom(),userId:p("user_id").notNull(),targetAId:p("target_a_id").notNull().references(()=>n.id,{onDelete:"cascade"}),targetBId:p("target_b_id").notNull().references(()=>n.id,{onDelete:"cascade"}),targetAVersion:V("target_a_version").notNull(),targetBVersion:V("target_b_version").notNull(),isSwapped:rn("is_swapped").notNull().default(!1),winnerTargetId:p("winner_target_id").references(()=>n.id,{onDelete:"set null"}),perEval:T("per_eval").notNull().default([]),overall:T("overall").notNull().default({}),rawOutput:_("raw_output"),model:_("model"),status:_("status").notNull().default("completed"),createdAt:E("created_at",{withTimezone:!0}).defaultNow()},e=>[N("idx_eval_comparisons_target_a").on(e.targetAId),N("idx_eval_comparisons_target_b").on(e.targetBId),N("idx_eval_comparisons_user").on(e.userId)]),an=_e("eval_grade_annotations",{id:p("id").primaryKey().defaultRandom(),userId:p("user_id").notNull(),evalRunId:p("eval_run_id").notNull().references(()=>K.id,{onDelete:"cascade"}),evalTargetId:p("eval_target_id").notNull().references(()=>n.id,{onDelete:"cascade"}),expectationIndex:V("expectation_index").notNull(),expectationText:_("expectation_text").notNull(),judgePassed:rn("judge_passed").notNull(),judgeMethod:_("judge_method").notNull(),verdict:_("verdict").notNull(),flag:_("flag"),note:_("note"),createdAt:E("created_at",{withTimezone:!0}).defaultNow(),updatedAt:E("updated_at",{withTimezone:!0}).defaultNow()},e=>[N("idx_eval_grade_annotations_target").on(e.evalTargetId),N("idx_eval_grade_annotations_run").on(e.evalRunId),ms("eval_grade_annotations_eval_run_id_expectation_index_key").on(e.evalRunId,e.expectationIndex)]),fe=_e("benchmarks",{id:p("id").primaryKey().defaultRandom(),evalTargetId:p("eval_target_id").notNull().references(()=>n.id,{onDelete:"cascade"}),iteration:V("iteration").notNull().default(1),runSummary:T("run_summary").notNull().default({}),notes:T("notes").notNull().default([]),feedback:T("feedback"),createdAt:E("created_at",{withTimezone:!0}).defaultNow()},e=>[N("idx_benchmarks_target").on(e.evalTargetId)]);import{pgTable as un,text as Qt,timestamp as Wt,jsonb as ln,uuid as xe,integer as Ee,index as ct,real as dn}from"drizzle-orm/pg-core";var ge=un("trigger_evals",{id:xe("id").primaryKey().defaultRandom(),evalTargetId:xe("eval_target_id").notNull().references(()=>n.id,{onDelete:"cascade"}),userId:xe("user_id").notNull(),queries:ln("queries").notNull().default([]),status:Qt("status").notNull().default("pending_review"),trainIndices:Ee("train_indices").array().default([]),testIndices:Ee("test_indices").array().default([]),createdAt:Wt("created_at",{withTimezone:!0}).defaultNow(),updatedAt:Wt("updated_at",{withTimezone:!0}).defaultNow()},e=>[ct("idx_trigger_evals_target").on(e.evalTargetId),ct("idx_trigger_evals_user").on(e.userId)]),Ne=un("optimization_runs",{id:xe("id").primaryKey().defaultRandom(),evalTargetId:xe("eval_target_id").notNull().references(()=>n.id,{onDelete:"cascade"}),userId:xe("user_id").notNull(),type:Qt("type").notNull(),iteration:Ee("iteration").notNull(),inputVersion:Ee("input_version").notNull(),outputVersion:Ee("output_version"),trainScore:dn("train_score"),testScore:dn("test_score"),analysis:ln("analysis").notNull().default({}),status:Qt("status").notNull().default("running"),createdAt:Wt("created_at",{withTimezone:!0}).defaultNow()},e=>[ct("idx_optimization_runs_target").on(e.evalTargetId),ct("idx_optimization_runs_user").on(e.userId)]);import{pgTable as ps,text as H,timestamp as _s,jsonb as Se,uuid as Xt,integer as $t,real as fs,index as Ke,uniqueIndex as cn}from"drizzle-orm/pg-core";var G=ps("context_snapshots",{id:Xt("id").primaryKey().defaultRandom(),sessionId:Xt("session_id").references(()=>d.id,{onDelete:"cascade"}),userId:Xt("user_id").notNull().references(()=>o.id,{onDelete:"cascade"}),sequence:$t("sequence").notNull().default(0),provider:H("provider").notNull(),model:H("model").notNull(),systemPrompt:H("system_prompt").notNull(),injectedInstructions:Se("injected_instructions").notNull().default([]),messagesSummary:Se("messages_summary").notNull(),tools:Se("tools").notNull().default([]),systemHash:H("system_hash").notNull(),requestHash:H("request_hash").notNull().default(""),toolsHash:H("tools_hash"),injectedHash:H("injected_hash"),messagesDelta:Se("messages_delta").default([]),messagesDeltaRef:H("messages_delta_ref"),maxTokens:$t("max_tokens"),temperature:fs("temperature"),estimatedTokens:$t("estimated_tokens"),capturedAt:_s("captured_at",{withTimezone:!0}).notNull().defaultNow(),metadata:Se("metadata").default({})},e=>[Ke("idx_context_snapshots_session").on(e.sessionId),Ke("idx_context_snapshots_user").on(e.userId),Ke("idx_context_snapshots_hash").on(e.systemHash),Ke("idx_context_snapshots_request_hash").on(e.requestHash),cn("idx_snapshots_session_request").on(e.sessionId,e.requestHash),cn("idx_snapshots_session_sequence").on(e.sessionId,e.sequence),Ke("idx_context_snapshots_user_session_captured").on(e.userId,e.sessionId,e.capturedAt.desc())]);import{pgTable as xs,text as mn,timestamp as gs,jsonb as Ns,integer as vs,index as hs}from"drizzle-orm/pg-core";var pn=xs("content_blobs",{hash:mn("hash").primaryKey(),contentType:mn("content_type").notNull(),content:Ns("content").notNull(),sizeBytes:vs("size_bytes").notNull().default(0),createdAt:gs("created_at",{withTimezone:!0}).defaultNow()},e=>[hs("idx_content_blobs_type").on(e.contentType)]);import{pgTable as Is,text as mt,timestamp as Pe,jsonb as pt,uuid as Zt,index as _t,integer as ys}from"drizzle-orm/pg-core";var ve=Is("eval_jobs",{id:Zt("id").primaryKey().defaultRandom(),userId:Zt("user_id").notNull(),evalTargetId:Zt("eval_target_id").notNull().references(()=>n.id,{onDelete:"cascade"}),status:mt("status").notNull().default("pending"),config:pt("config").notNull().default({}),progress:pt("progress").notNull().default({}),result:pt("result"),error:mt("error"),attempts:ys("attempts").notNull().default(0),taskKind:mt("task_kind"),payload:pt("payload"),claimedBy:mt("claimed_by"),claimedAt:Pe("claimed_at",{withTimezone:!0}),leaseExpiresAt:Pe("lease_expires_at",{withTimezone:!0}),createdAt:Pe("created_at",{withTimezone:!0}).defaultNow(),updatedAt:Pe("updated_at",{withTimezone:!0}).defaultNow(),completedAt:Pe("completed_at",{withTimezone:!0})},e=>[_t("idx_eval_jobs_user").on(e.userId),_t("idx_eval_jobs_target").on(e.evalTargetId),_t("idx_eval_jobs_status").on(e.status),_t("idx_eval_jobs_pending").on(e.userId,e.status)]);import{pgTable as Ts,text as Oe,timestamp as Ce,jsonb as _n,uuid as fn,integer as ws,index as xn}from"drizzle-orm/pg-core";var gn=Ts("agent_jobs",{id:fn("id").primaryKey().defaultRandom(),userId:fn("user_id").notNull(),taskKind:Oe("task_kind").notNull(),status:Oe("status").notNull().default("pending"),payload:_n("payload").notNull(),dedupeKey:Oe("dedupe_key"),result:_n("result"),error:Oe("error"),attempts:ws("attempts").notNull().default(0),claimedBy:Oe("claimed_by"),claimedAt:Ce("claimed_at",{withTimezone:!0}),leaseExpiresAt:Ce("lease_expires_at",{withTimezone:!0}),createdAt:Ce("created_at",{withTimezone:!0}).notNull().defaultNow(),updatedAt:Ce("updated_at",{withTimezone:!0}).notNull().defaultNow(),completedAt:Ce("completed_at",{withTimezone:!0})},e=>[xn("idx_agent_jobs_claim").on(e.userId,e.status,e.taskKind,e.createdAt),xn("idx_agent_jobs_dedupe").on(e.userId,e.taskKind,e.dedupeKey)]);import{pgTable as As,text as qe,timestamp as Me,jsonb as ft,uuid as eo,index as xt,integer as zs}from"drizzle-orm/pg-core";var Nn=As("insights_jobs",{id:eo("id").primaryKey().defaultRandom(),userId:eo("user_id").notNull(),status:qe("status").notNull().default("pending"),projectPath:qe("project_path"),projectId:eo("project_id").references(()=>s.id,{onDelete:"set null"}),config:ft("config").notNull().default({}),progress:ft("progress").notNull().default({}),result:ft("result"),error:qe("error"),attempts:zs("attempts").notNull().default(0),taskKind:qe("task_kind"),payload:ft("payload"),claimedBy:qe("claimed_by"),claimedAt:Me("claimed_at",{withTimezone:!0}),leaseExpiresAt:Me("lease_expires_at",{withTimezone:!0}),createdAt:Me("created_at",{withTimezone:!0}).defaultNow(),updatedAt:Me("updated_at",{withTimezone:!0}).defaultNow(),completedAt:Me("completed_at",{withTimezone:!0})},e=>[xt("idx_insights_jobs_user").on(e.userId),xt("idx_insights_jobs_status").on(e.status),xt("idx_insights_jobs_pending").on(e.userId,e.status),xt("idx_insights_jobs_project").on(e.projectId)]);import{pgTable as Ds,text as to,timestamp as gt,uuid as vn,index as js,uniqueIndex as Rs}from"drizzle-orm/pg-core";var he=Ds("api_keys",{id:vn("id").primaryKey().defaultRandom(),userId:vn("user_id").notNull().references(()=>o.id,{onDelete:"cascade"}),name:to("name").notNull(),keyHash:to("key_hash").notNull(),keyPrefix:to("key_prefix").notNull(),lastUsedAt:gt("last_used_at",{withTimezone:!0}),expiresAt:gt("expires_at",{withTimezone:!0}),revokedAt:gt("revoked_at",{withTimezone:!0}),createdAt:gt("created_at",{withTimezone:!0}).defaultNow()},e=>[js("idx_api_keys_user").on(e.userId),Rs("idx_api_keys_hash").on(e.keyHash)]);import{pgTable as bs,text as oo,timestamp as hn,uuid as ks,index as Es}from"drizzle-orm/pg-core";var In=bs("extension_auth_codes",{code:oo("code").primaryKey(),userId:ks("user_id").notNull().references(()=>o.id,{onDelete:"cascade"}),editor:oo("editor"),email:oo("email"),expiresAt:hn("expires_at",{withTimezone:!0}).notNull(),createdAt:hn("created_at",{withTimezone:!0}).defaultNow()},e=>[Es("idx_ext_auth_codes_expiry").on(e.expiresAt)]);import{pgTable as Ss,text as Ks,timestamp as yn,jsonb as Ps,uuid as no,index as Tn}from"drizzle-orm/pg-core";var Ie=Ss("eval_conversations",{id:no("id").primaryKey().defaultRandom(),evalTargetId:no("eval_target_id").notNull().references(()=>n.id,{onDelete:"cascade"}),userId:no("user_id").notNull(),messages:Ps("messages").notNull().default([]),status:Ks("status").notNull().default("active"),createdAt:yn("created_at",{withTimezone:!0}).defaultNow(),updatedAt:yn("updated_at",{withTimezone:!0}).defaultNow()},e=>[Tn("idx_eval_conversations_target").on(e.evalTargetId),Tn("idx_eval_conversations_user").on(e.userId)]);import{pgTable as Os,text as P,timestamp as wn,jsonb as Cs,uuid as ro}from"drizzle-orm/pg-core";var An=Os("skill_submissions",{id:ro("id").primaryKey().defaultRandom(),skillId:P("skill_id").notNull(),name:P("name").notNull(),description:P("description").notNull(),category:P("category").notNull(),tools:P("tools").array().notNull(),tags:P("tags").array().default([]),content:P("content").notNull(),status:P("status").notNull().default("pending"),submittedBy:ro("submitted_by").notNull(),reviewedBy:ro("reviewed_by"),reviewNote:P("review_note"),metadata:Cs("metadata"),createdAt:wn("created_at",{withTimezone:!0}).defaultNow(),updatedAt:wn("updated_at",{withTimezone:!0}).defaultNow()});import{pgTable as qs,text as Be,timestamp as zn,jsonb as Ms,uuid as Bs,uniqueIndex as Ls,index as Dn}from"drizzle-orm/pg-core";var jn=qs("harness_releases",{id:Bs("id").primaryKey().defaultRandom(),harness:Be("harness").notNull(),version:Be("version").notNull(),publishedAt:zn("published_at",{withTimezone:!0}).notNull(),title:Be("title"),body:Be("body"),categories:Ms("categories").default({}),url:Be("url"),createdAt:zn("created_at",{withTimezone:!0}).defaultNow()},e=>[Ls("idx_harness_releases_unique").on(e.harness,e.version),Dn("idx_harness_releases_harness").on(e.harness),Dn("idx_harness_releases_published").on(e.publishedAt)]);import{pgTable as Us,text as ye,timestamp as Rn,jsonb as Vs,uuid as bn,index as kn,uniqueIndex as Hs}from"drizzle-orm/pg-core";var so=Us("notifications",{id:bn("id").primaryKey().defaultRandom(),userId:bn("user_id").notNull(),type:ye("type").notNull(),title:ye("title").notNull(),body:ye("body"),url:ye("url"),sourceTable:ye("source_table"),sourceId:ye("source_id"),metadata:Vs("metadata").notNull().default({}),readAt:Rn("read_at",{withTimezone:!0}),createdAt:Rn("created_at",{withTimezone:!0}).notNull().defaultNow()},e=>[kn("idx_notifications_user_created").on(e.userId,e.createdAt),kn("idx_notifications_user_unread").on(e.userId),Hs("idx_notifications_source_dedup").on(e.userId,e.sourceTable,e.sourceId)]);import{pgTable as Gs,text as Le,timestamp as Ue,jsonb as io,uuid as ao,index as Nt,integer as Fs}from"drizzle-orm/pg-core";var Te=Gs("launch_jobs",{id:ao("id").primaryKey().defaultRandom(),userId:ao("user_id").notNull(),tool:Le("tool").notNull(),status:Le("status").notNull().default("pending"),config:io("config").notNull().default({}),result:io("result"),error:Le("error"),attempts:Fs("attempts").notNull().default(0),taskKind:Le("task_kind"),payload:io("payload"),claimedBy:Le("claimed_by"),claimedAt:Ue("claimed_at",{withTimezone:!0}),leaseExpiresAt:Ue("lease_expires_at",{withTimezone:!0}),createdAt:Ue("created_at",{withTimezone:!0}).defaultNow(),updatedAt:Ue("updated_at",{withTimezone:!0}).defaultNow(),completedAt:Ue("completed_at",{withTimezone:!0}),runId:ao("run_id").references(()=>x.id,{onDelete:"set null"})},e=>[Nt("idx_launch_jobs_user").on(e.userId),Nt("idx_launch_jobs_status").on(e.status),Nt("idx_launch_jobs_pending").on(e.userId,e.status),Nt("idx_launch_jobs_run").on(e.runId)]);import{pgTable as En,uuid as O,text as Ve,real as Js,timestamp as vt,boolean as Ys,uniqueIndex as Qs,index as He}from"drizzle-orm/pg-core";var uo=En("instruction_suggestions",{id:O("id").primaryKey().defaultRandom(),userId:O("user_id").notNull().references(()=>o.id,{onDelete:"cascade"}),instructionId:O("instruction_id").notNull().references(()=>r.id,{onDelete:"cascade"}),projectPath:Ve("project_path").notNull(),projectId:O("project_id").references(()=>s.id,{onDelete:"set null"}),score:Js("score").notNull(),reason:Ve("reason").notNull(),generatedAt:vt("generated_at",{withTimezone:!0}).notNull().defaultNow(),isStale:Ys("is_stale").notNull().default(!1),dismissedAt:vt("dismissed_at",{withTimezone:!0}),acceptedAt:vt("accepted_at",{withTimezone:!0}),promotedToInstructionId:O("promoted_to_instruction_id").references(()=>r.id,{onDelete:"set null"})},e=>[Qs("idx_instruction_suggestions_user_project_instruction").on(e.userId,e.projectPath,e.instructionId),He("idx_instruction_suggestions_user_project").on(e.userId,e.projectPath),He("idx_instruction_suggestions_user_proj_id").on(e.userId,e.projectId),He("idx_instruction_suggestions_generated_at").on(e.generatedAt)]),Sn=En("instruction_suggestion_events",{id:O("id").primaryKey().defaultRandom(),suggestionId:O("suggestion_id").notNull().references(()=>uo.id,{onDelete:"cascade"}),userId:O("user_id").notNull().references(()=>o.id,{onDelete:"cascade"}),eventType:Ve("event_type").notNull(),tool:Ve("tool"),sessionId:O("session_id"),projectPath:Ve("project_path").notNull(),createdAt:vt("created_at",{withTimezone:!0}).notNull().defaultNow()},e=>[He("idx_instruction_suggestion_events_suggestion_id").on(e.suggestionId),He("idx_instruction_suggestion_events_user_id").on(e.userId)]);import{pgTable as Ws,text as lo,integer as Xs,numeric as Ge,timestamp as co,index as $s,primaryKey as Zs}from"drizzle-orm/pg-core";var Kn=Ws("model_pricing",{provider:lo("provider").notNull(),modelId:lo("model_id").notNull(),inputPerM:Ge("input_per_m").notNull(),outputPerM:Ge("output_per_m").notNull(),cacheReadPerM:Ge("cache_read_per_m").notNull(),cacheWrite5mPerM:Ge("cache_write_5m_per_m").notNull(),cacheWrite1hPerM:Ge("cache_write_1h_per_m").notNull(),contextWindow:Xs("context_window"),effectiveFrom:co("effective_from",{withTimezone:!0}).notNull(),effectiveUntil:co("effective_until",{withTimezone:!0}),source:lo("source").notNull(),verifiedAt:co("verified_at",{withTimezone:!0})},e=>[Zs({columns:[e.provider,e.modelId,e.effectiveFrom]}),$s("idx_model_pricing_active").on(e.provider,e.modelId,e.effectiveFrom.desc())]);import{pgTable as ei,text as ee,numeric as Pn,timestamp as On,uuid as Cn,jsonb as ti,index as qn}from"drizzle-orm/pg-core";var Mn=ei("limit_observations",{id:Cn("id").primaryKey().defaultRandom(),observedAt:On("observed_at",{withTimezone:!0}).notNull().defaultNow(),provider:ee("provider").notNull(),plan:ee("plan").notNull(),limitType:ee("limit_type").notNull(),value:Pn("value").notNull(),unit:ee("unit").notNull(),comparator:ee("comparator").notNull().default("="),resetsAt:On("resets_at",{withTimezone:!0}),sourceType:ee("source_type").notNull(),sourceUrl:ee("source_url"),sourceEvidence:ti("source_evidence"),confidence:Pn("confidence").notNull(),userId:Cn("user_id")},e=>[qn("idx_limit_obs_lookup").on(e.provider,e.plan,e.limitType,e.observedAt.desc()),qn("idx_limit_obs_user").on(e.userId,e.observedAt.desc())]);import{pgTable as oi,text as ht,timestamp as ni,uuid as ri,jsonb as si,boolean as ii,uniqueIndex as ai}from"drizzle-orm/pg-core";var Bn=oi("provider_docs_snapshots",{id:ri("id").primaryKey().defaultRandom(),fetchedAt:ni("fetched_at",{withTimezone:!0}).notNull().defaultNow(),provider:ht("provider").notNull(),docUrl:ht("doc_url").notNull(),contentHash:ht("content_hash").notNull(),content:ht("content").notNull(),parseSuccess:ii("parse_success").notNull(),parseErrors:si("parse_errors")},e=>[ai("idx_docs_dedup").on(e.provider,e.docUrl,e.contentHash)]);import{pgTable as di,text as It,numeric as Ln,timestamp as Un,uuid as ui,primaryKey as li,index as ci}from"drizzle-orm/pg-core";var Vn=di("plan_limits_active",{provider:It("provider").notNull(),plan:It("plan").notNull(),limitType:It("limit_type").notNull(),value:Ln("value").notNull(),unit:It("unit").notNull(),effectiveFrom:Un("effective_from",{withTimezone:!0}).notNull(),effectiveUntil:Un("effective_until",{withTimezone:!0}),confidence:Ln("confidence").notNull(),sourceObservationIds:ui("source_observation_ids").array().notNull()},e=>[li({columns:[e.provider,e.plan,e.limitType,e.effectiveFrom]}),ci("idx_plan_limits_lookup").on(e.provider,e.plan,e.limitType,e.effectiveFrom.desc())]);import{pgTable as mi,text as mo,timestamp as pi,uuid as Hn,jsonb as _i,index as fi}from"drizzle-orm/pg-core";var Gn=mi("alert_dispatches",{id:Hn("id").primaryKey().defaultRandom(),userId:Hn("user_id").notNull(),alertKey:mo("alert_key").notNull(),severity:mo("severity").notNull(),lastDispatchedAt:pi("last_dispatched_at",{withTimezone:!0}).notNull().defaultNow(),lastState:_i("last_state").notNull(),channel:mo("channel").notNull()},e=>[fi("idx_alert_user_key").on(e.userId,e.alertKey,e.lastDispatchedAt.desc())]);import{drizzle as Wn}from"drizzle-orm/postgres-js";import Xn from"postgres";var yt={};fr(yt,{agentJobs:()=>gn,agentRuns:()=>x,agentRunsRelations:()=>bi,alertDispatches:()=>Gn,announcementDeliveries:()=>Po,announcements:()=>Ko,apiKeys:()=>he,apiKeysRelations:()=>gi,benchmarks:()=>fe,benchmarksRelations:()=>Ui,cliErrorEvents:()=>nn,cliSetupEvents:()=>tn,contentBlobs:()=>pn,contextSnapshots:()=>G,contextSnapshotsRelations:()=>Ji,evalComparisons:()=>sn,evalConversations:()=>Ie,evalConversationsRelations:()=>Fi,evalGradeAnnotations:()=>an,evalJobs:()=>ve,evalJobsRelations:()=>Gi,evalRuns:()=>K,evalRunsRelations:()=>Li,evalTargets:()=>n,evalTargetsRelations:()=>Mi,evals:()=>S,evalsRelations:()=>Bi,extensionAuthCodes:()=>In,harnessReleases:()=>jn,insightsJobs:()=>Nn,instructionEvents:()=>ue,instructionEventsRelations:()=>wi,instructionSuggestionEvents:()=>Sn,instructionSuggestions:()=>uo,instructionUsageEvents:()=>pe,instructionUsageEventsRelations:()=>qi,instructionVersions:()=>re,instructionVersionsRelations:()=>zi,instructions:()=>r,instructionsRelations:()=>Ti,launchJobs:()=>Te,launchJobsRelations:()=>ki,limitObservations:()=>Mn,memories:()=>y,memoriesRelations:()=>Ai,memoryExperiments:()=>So,modelPricing:()=>Kn,notificationPreferences:()=>Oo,notifications:()=>so,optimizationRuns:()=>Ne,optimizationRunsRelations:()=>Hi,orgInvitations:()=>R,orgInvitationsRelations:()=>hi,organizations:()=>u,organizationsRelations:()=>Ni,packInstructions:()=>U,packInstructionsRelations:()=>Ci,packs:()=>A,packsRelations:()=>Oi,pendingTreatmentExposures:()=>Vo,planLimitsActive:()=>Vn,profiles:()=>o,profilesRelations:()=>xi,projectCheckouts:()=>Do,projectInstructions:()=>q,projectInstructionsRelations:()=>ji,projects:()=>s,projectsRelations:()=>Di,providerDocsSnapshots:()=>Bn,sessionEvents:()=>ie,sessionEventsRelations:()=>Ei,sessionInstructions:()=>M,sessionInstructionsRelations:()=>Si,sessionSendJobs:()=>Fo,sessionTerminalTargets:()=>st,sessions:()=>d,sessionsRelations:()=>Ri,skillSubmissions:()=>An,teams:()=>v,teamsRelations:()=>vi,treatmentAssignments:()=>b,treatmentAssignmentsRelations:()=>Ki,treatmentExposures:()=>k,treatmentExposuresRelations:()=>Pi,triggerEvals:()=>ge,triggerEvalsRelations:()=>Vi,userOrganizations:()=>oe,userOrganizationsRelations:()=>Ii,userTeams:()=>ne,userTeamsRelations:()=>yi,workerConnections:()=>$o});import{relations as i}from"drizzle-orm";var xi=i(o,({many:e})=>({sessions:e(d),contextSnapshots:e(G),apiKeys:e(he)})),gi=i(he,({one:e})=>({profile:e(o,{fields:[he.userId],references:[o.id]})})),Ni=i(u,({many:e})=>({teams:e(v),userOrganizations:e(oe),projects:e(s),invitations:e(R)})),vi=i(v,({one:e,many:t})=>({organization:e(u,{fields:[v.orgId],references:[u.id]}),userTeams:t(ne),invitations:t(R)})),hi=i(R,({one:e})=>({organization:e(u,{fields:[R.orgId],references:[u.id]}),team:e(v,{fields:[R.teamId],references:[v.id]}),inviter:e(o,{fields:[R.invitedBy],references:[o.id]})})),Ii=i(oe,({one:e})=>({organization:e(u,{fields:[oe.orgId],references:[u.id]})})),yi=i(ne,({one:e})=>({team:e(v,{fields:[ne.teamId],references:[v.id]})})),Ti=i(r,({one:e,many:t})=>({versions:t(re),projectInstructions:t(q),events:t(ue),usageEvents:t(pe),sessionInstructions:t(M),packInstructions:t(U),forkedFrom:e(r,{fields:[r.forkedFromId],references:[r.id]})})),wi=i(ue,({one:e})=>({instruction:e(r,{fields:[ue.instructionId],references:[r.id]})})),Ai=i(y,({one:e,many:t})=>({project:e(s,{fields:[y.projectId],references:[s.id]}),parent:e(y,{fields:[y.parentId],references:[y.id]}),versions:t(y)})),zi=i(re,({one:e})=>({instruction:e(r,{fields:[re.instructionId],references:[r.id]})})),Di=i(s,({one:e,many:t})=>({organization:e(u,{fields:[s.orgId],references:[u.id]}),projectInstructions:t(q),sessions:t(d)})),ji=i(q,({one:e})=>({project:e(s,{fields:[q.projectId],references:[s.id]}),instruction:e(r,{fields:[q.instructionId],references:[r.id]})})),Ri=i(d,({one:e,many:t})=>({profile:e(o,{fields:[d.userId],references:[o.id]}),project:e(s,{fields:[d.projectId],references:[s.id]}),run:e(x,{fields:[d.runId],references:[x.id]}),events:t(ie),sessionInstructions:t(M),treatmentExposures:t(k),contextSnapshots:t(G)})),bi=i(x,({one:e,many:t})=>({profile:e(o,{fields:[x.userId],references:[o.id]}),organization:e(u,{fields:[x.orgId],references:[u.id]}),project:e(s,{fields:[x.projectId],references:[s.id]}),sessions:t(d),launchJobs:t(Te)})),ki=i(Te,({one:e})=>({run:e(x,{fields:[Te.runId],references:[x.id]})})),Ei=i(ie,({one:e})=>({session:e(d,{fields:[ie.sessionId],references:[d.id]})})),Si=i(M,({one:e})=>({session:e(d,{fields:[M.sessionId],references:[d.id]}),instruction:e(r,{fields:[M.instructionId],references:[r.id]})})),Ki=i(b,({one:e,many:t})=>({owner:e(o,{fields:[b.userId],references:[o.id]}),project:e(s,{fields:[b.projectId],references:[s.id]}),exposures:t(k)})),Pi=i(k,({one:e})=>({session:e(d,{fields:[k.sessionId],references:[d.id]}),owner:e(o,{fields:[k.userId],references:[o.id]}),assignment:e(b,{fields:[k.assignmentId],references:[b.id]})})),Oi=i(A,({one:e,many:t})=>({packInstructions:t(U),forkedFrom:e(A,{fields:[A.forkedFromId],references:[A.id]})})),Ci=i(U,({one:e})=>({pack:e(A,{fields:[U.packId],references:[A.id]}),instruction:e(r,{fields:[U.instructionId],references:[r.id]})})),qi=i(pe,({one:e})=>({instruction:e(r,{fields:[pe.instructionId],references:[r.id]})})),Mi=i(n,({one:e,many:t})=>({parent:e(n,{fields:[n.parentId],references:[n.id]}),evals:t(S),evalRuns:t(K),benchmarks:t(fe),triggerEvals:t(ge),optimizationRuns:t(Ne),evalJobs:t(ve),evalConversations:t(Ie)})),Bi=i(S,({one:e,many:t})=>({evalTarget:e(n,{fields:[S.evalTargetId],references:[n.id]}),runs:t(K)})),Li=i(K,({one:e})=>({eval:e(S,{fields:[K.evalId],references:[S.id]}),evalTarget:e(n,{fields:[K.evalTargetId],references:[n.id]})})),Ui=i(fe,({one:e})=>({evalTarget:e(n,{fields:[fe.evalTargetId],references:[n.id]})})),Vi=i(ge,({one:e})=>({evalTarget:e(n,{fields:[ge.evalTargetId],references:[n.id]})})),Hi=i(Ne,({one:e})=>({evalTarget:e(n,{fields:[Ne.evalTargetId],references:[n.id]})})),Gi=i(ve,({one:e})=>({evalTarget:e(n,{fields:[ve.evalTargetId],references:[n.id]})})),Fi=i(Ie,({one:e})=>({evalTarget:e(n,{fields:[Ie.evalTargetId],references:[n.id]})})),Ji=i(G,({one:e})=>({session:e(d,{fields:[G.sessionId],references:[d.id]}),profile:e(o,{fields:[G.userId],references:[o.id]})}));var Fe=0,Fn=0,Je=0,Jn=0;var Yi=0;function po(){Fe++,Fe>Fn&&(Fn=Fe)}m(po,"trackDbOpStart");function _o(){Fe>0&&Fe--}m(_o,"trackDbOpEnd");function fo(){Je++,Je>Jn&&(Jn=Je)}m(fo,"trackHeavyDbOpStart");function xo(){Je>0&&Je--}m(xo,"trackHeavyDbOpEnd");function Yn(){Yi++}m(Yn,"recordQueryDeadline");var wt,zt,go=!1,Tt;var Qn,Dt,At;function $n(e){let t=process.env[e];if(!t)throw new Error(`Missing required env var: ${e}`);return t}m($n,"getEnv");function Zn(){if(go)throw new Error("getDb() called after closeDb(): the connection pool is closed for shutdown. Stop issuing queries (timers/requests) before draining the pool.");if(!wt){let e=process.env.PG_APPLICATION_NAME||"rulemetric",t=Number(process.env.PG_POOL_MAX)||3,a=Number(process.env.PG_CONNECT_TIMEOUT_S)||10,l=Number(process.env.PG_STATEMENT_TIMEOUT_MS)||0,c=Number(process.env.PG_IDLE_TIMEOUT)||5,f=Number(process.env.PG_KEEP_ALIVE_S)||60;zt=Xn($n("DATABASE_URL"),{prepare:!1,max:t,connect_timeout:a,idle_timeout:c,keep_alive:f,max_lifetime:300,connection:{application_name:e,...l>0?{statement_timeout:l}:{}}}),wt=Wn(zt,{schema:yt})}return wt}m(Zn,"getDb");function er(){if(go)throw new Error("getHeavyDb() called after closeDb(): the connection pool is closed for shutdown. Stop issuing queries (timers/requests) before draining the pool.");if(!At){let e=(process.env.PG_APPLICATION_NAME||"rulemetric")+":heavy",t=Number(process.env.PG_HEAVY_POOL_MAX)||2;Dt=Xn($n("DATABASE_URL"),{prepare:!1,max:t,connect_timeout:Number(process.env.PG_CONNECT_TIMEOUT_S)||10,idle_timeout:Number(process.env.PG_IDLE_TIMEOUT)||5,keep_alive:Number(process.env.PG_KEEP_ALIVE_S)||60,max_lifetime:300,connection:{application_name:e}}),At=Wn(Dt,{schema:yt})}return At}m(er,"getHeavyDb");async function Qi(){if(Tt)return Tt;go=!0;let e=zt,t=Qn,a=Dt;return zt=void 0,wt=void 0,Qn=void 0,Dt=void 0,At=void 0,Tt=Promise.allSettled([e?e.end({timeout:5}):Promise.resolve(),t?t.end({timeout:5}):Promise.resolve(),a?a.end({timeout:5}):Promise.resolve()]).then(()=>{}),Tt}m(Qi,"closeDb");var Wi=new Set(["CONNECT_TIMEOUT","ETIMEDOUT","ENOTFOUND","ECONNREFUSED","EAI_AGAIN"]);function tr(e){let t=e,a=t?.code??t?.cause?.code??t?.errno;return a!==void 0&&Wi.has(a)}m(tr,"isRetryableConnectError");var Xi=new Set(["CONNECTION_CLOSED","ECONNRESET","EPIPE"]);function or(e){let t=e,a=t?.code??t?.cause?.code??t?.errno;return a!==void 0&&Xi.has(a)}m(or,"isRetryableResetError");async function nr(e,t={}){let a=t.attempts??3,l=t.baseMs??100,c;for(let f=0;f<a;f++)try{return await e()}catch(h){c=h;let we=tr(h)||t.retryResets===!0&&or(h);if(f===a-1||!we)throw h;await new Promise(F=>setTimeout(F,l*2**f))}throw c}m(nr,"withDbRetry");var jt=class extends Error{static{m(this,"QueryDeadlineError")}code="QUERY_DEADLINE";constructor(t){super(`Query exceeded the client-side deadline of ${t}ms \u2014 the DB pool is likely saturated (acquire-wait) or holding a dead socket; failing fast to avoid pinning the caller. See client.ts.`),this.name="QueryDeadlineError"}};function rr(){let e=Number(process.env.PG_QUERY_DEADLINE_MS);return Number.isFinite(e)&&e>=0?e:2e4}m(rr,"queryDeadlineMs");function $i(e,t){let a,l=new Promise((c,f)=>{a=setTimeout(()=>{Yn(),f(new jt(t))},t);let h=a;typeof h.unref=="function"&&h.unref()});return Promise.race([e,l]).finally(()=>clearTimeout(a))}m($i,"raceWithDeadline");var sr=new Set(["select","selectDistinct","selectDistinctOn","insert","update","delete","execute","with","$count","refreshMaterializedView"]),ir=new Set(["select","selectDistinct","selectDistinctOn","$count"]);function No(e,t=!1,a=0,l=!1){return e===null||typeof e!="object"&&typeof e!="function"?e:new Proxy(e,{get(c,f,h){if(f==="then"){let F=Reflect.get(c,f,h);return typeof F!="function"?F:(ur,lr)=>{let cr=l?fo:po,mr=l?xo:_o;cr();let vo=nr(()=>new Promise((pr,_r)=>F.call(c,pr,_r)),{retryResets:t});return(a>0?$i(vo,a):vo).finally(mr).then(ur,lr)}}let we=Reflect.get(c,f,h);return typeof we=="function"?(...F)=>No(we.apply(c,F),t,a,l):we}})}m(No,"wrapBuilder");function ar(e,t=!1){let a=t?fo:po,l=t?xo:_o;a();try{return Promise.resolve(e()).finally(l)}catch(c){throw l(),c}}m(ar,"gaugeTransaction");var dr=new Proxy({},{get(e,t){let a=Zn(),l=a[t];if(typeof t=="string"&&sr.has(t)&&typeof l=="function"){let c=ir.has(t),f=rr();return(...h)=>No(l.apply(a,h),c,f)}return t==="transaction"&&typeof l=="function"?(...c)=>ar(()=>l.apply(a,c)):l}}),Zi=new Proxy({},{get(e,t){let a=er(),l=a[t];if(typeof t=="string"&&sr.has(t)&&typeof l=="function"){let c=ir.has(t);return(...f)=>No(l.apply(a,f),c,0,!0)}return t==="transaction"&&typeof l=="function"?(...c)=>ar(()=>l.apply(a,c),!0):l}});export{o as a,x as b,d as c,ie as d,y as e,So as f,Ko as g,Po as h,Oo as i,Zn as j,Qi as k};
|