@rulemetric/cli 0.7.10 → 0.7.11
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-NEACEHQD.js → chunk-2HWXJBL3.js} +1 -1
- package/dist/{chunk-CADKBP3D.js → chunk-3C373UMW.js} +1 -1
- package/dist/chunk-5JNNKZD3.js +1 -0
- package/dist/{chunk-32EEBARV.js → chunk-6D7PUPHT.js} +1 -1
- package/dist/{chunk-BZP7YKDK.js → chunk-BT57WICW.js} +1 -1
- package/dist/chunk-F22YGOSL.js +1 -0
- package/dist/{chunk-2BBWRDXU.js → chunk-GNHJ3FEO.js} +1 -1
- package/dist/{chunk-QMNMK3RC.js → chunk-LGXRZWHG.js} +1 -1
- package/dist/{chunk-DSO2U4Y6.js → chunk-PTPDOYWP.js} +1 -1
- package/dist/chunk-QH7VY5HJ.js +1 -0
- package/dist/{chunk-2TC6WCUT.js → chunk-QUUN6A7E.js} +1 -1
- package/dist/{chunk-HS7X43XE.js → chunk-T4Z53J7B.js} +1 -1
- package/dist/chunk-VR7SOYOJ.js +1 -0
- package/dist/{chunk-KV325CXF.js → chunk-W2MZ4XZ6.js} +1 -1
- package/dist/{chunk-CZJ6FRZ4.js → chunk-WACGXJWJ.js} +1 -1
- package/dist/{chunk-L2WTWIOS.js → chunk-WIMBOAMV.js} +1 -1
- package/dist/commands/evals/agent.js +1 -1
- 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 -0
- 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 +6 -6
- package/dist/chunk-DIUZLGZW.js +0 -1
- package/dist/chunk-MGHFDHHM.js +0 -1
- package/dist/chunk-PMFVH7YO.js +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
import{a as i}from"./chunk-
|
|
1
|
+
import{a as i}from"./chunk-T4Z53J7B.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{a as p}from"./chunk-
|
|
1
|
+
import{a as p}from"./chunk-QH7VY5HJ.js";import{a as c}from"./chunk-ZLLER3HP.js";var v=`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
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{c as L}from"./chunk-TIOKY2IA.js";import{a as b}from"./chunk-6D7PUPHT.js";import{a as h}from"./chunk-MUURX7WZ.js";import{b as I}from"./chunk-W2MOTOQE.js";import{a as R}from"./chunk-VR7SOYOJ.js";import{a as H}from"./chunk-WACGXJWJ.js";import{a as S}from"./chunk-RSKQRVPJ.js";import{a as A}from"./chunk-WIMBOAMV.js";import{a as M}from"./chunk-KAF3CYRW.js";import{a as k}from"./chunk-UF6US7VU.js";import{a as v}from"./chunk-DPFNJZUO.js";import{b as y}from"./chunk-LGXRZWHG.js";import{a as T}from"./chunk-GNHJ3FEO.js";import{b as w}from"./chunk-5RBLIVBF.js";import{a as E}from"./chunk-2HWXJBL3.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 R}from"./chunk-5RBLIVBF.js";import{a as N}from"./chunk-
|
|
1
|
+
import{a as R}from"./chunk-5RBLIVBF.js";import{a as N}from"./chunk-QUUN6A7E.js";import{a as C}from"./chunk-6V4WM73L.js";import{a as I}from"./chunk-3C373UMW.js";import{a as M}from"./chunk-QH7VY5HJ.js";import{e as k,f as y,h as p}from"./chunk-H2ORWIEY.js";import{a as h}from"./chunk-ZLLER3HP.js";async function H(v,m){let{mirrorId:s,evalTargetId:d,config:a}=v,r=h(t=>m.logger.info(t),"log");if(m.job.attempts>1)throw new R(`process_eval is not safe to retry (attempt ${m.job.attempts}). Re-trigger the eval run from the UI.`);let i=await k(`/api/eval-targets/${d}`),$=await k(`/api/eval-targets/${d}/evals`);if($.length===0)throw new R("No evals defined for target");let J=a.runsPerEval??1,E=a.timeout??12e4,T=a.iteration??1,_=[{name:"with_target",content:i.content}];a.skipBaseline||_.push({name:"without_target"});let f=[];for(let t of $)for(let e of _)for(let n=1;n<=J;n++)f.push({eval_:t,configuration:e.name,targetContent:e.content,runNumber:n});let l=f.length,u=0,g=Math.min(a.parallel??1,4);await p(`/api/eval-jobs/${s}/progress`,{status:"running",progress:{total:l,completed:0,current:null,message:`Starting ${l} eval runs (concurrency: ${g})...`}});let w=[];async function j(t){let e=`${t.configuration} \xB7 ${t.eval_.name} \xB7 run#${t.runNumber}`;r(`[${u+1}/${l}] ${e}`);let n=g>1?C():null;try{let o=await M({prompt:t.eval_.prompt,targetContent:t.targetContent,workDir:n?.workDir,timeout:E,model:a.model}),c={};return!a.skipGrading&&t.eval_.expectations.length>0&&!o.error&&(c=await I({prompt:t.eval_.prompt,output:o.output,expectations:t.eval_.expectations,model:a.graderModel??a.model,timeout:E})),{evalId:t.eval_.id,evalTargetId:i.id,evalTargetVersion:i.version,configuration:t.configuration,runNumber:t.runNumber,iteration:T,status:o.error?"failed":"completed",outputs:o.error?{error:o.error}:{transcript:o.output},timing:{duration_ms:o.durationMs,total_tokens:o.totalTokens},grading:c,worktree:n?.isWorktree?!0:void 0}}finally{n?.cleanup()}}if(h(j,"processItem"),g<=1)for(let t of f){let e=`${t.configuration} \xB7 ${t.eval_.name} \xB7 run#${t.runNumber}`;await p(`/api/eval-jobs/${s}/progress`,{status:"running",progress:{total:l,completed:u,current:e,message:`Executing ${e}...`}});let n=await j(t);await y("/api/eval-runs",n),w.push(n),u++,await p(`/api/eval-jobs/${s}/progress`,{status:"running",progress:{total:l,completed:u,current:e,message:`Completed ${e}`}})}else{r(`Running ${l} evals with concurrency=${g} (worktree isolation)`);for(let t=0;t<f.length;t+=g){let e=f.slice(t,t+g),n=`batch ${Math.floor(t/g)+1}/${Math.ceil(f.length/g)}`;await p(`/api/eval-jobs/${s}/progress`,{status:"running",progress:{total:l,completed:u,current:n,message:`Executing ${n} (${e.length} parallel)...`}});let o=await Promise.all(e.map(j));for(let c of o)await y("/api/eval-runs",c),w.push(c),u++;await p(`/api/eval-jobs/${s}/progress`,{status:"running",progress:{total:l,completed:u,current:n,message:`Completed ${n}`}})}}let x=G(w),b;if(!a.skipGrading&&w.some(t=>t.grading&&Object.keys(t.grading).length>0))try{r(`Running meta-judge for job ${s}...`);let t=$.map(e=>{let o=w.filter(c=>c.evalId===e.id&&c.configuration==="with_target")[0];return{evalName:e.name,prompt:e.prompt,expectations:e.expectations,grading:o?.grading?o.grading:null,output:o?.outputs?.transcript?.slice(0,500)}});b=await N({targetName:i.name,evalResults:t,model:a.graderModel??a.model,timeout:6e4}),r(`Meta-judge: quality=${b.quality_score}/5, issues=${b.issues.length}`)}catch(t){r(`Meta-judge failed (non-fatal): ${t instanceof Error?t.message:String(t)}`)}let P=b?{...x,meta_judgement:b}:x;return r(`Job ${s} completed: ${u}/${l} runs`),await p(`/api/eval-jobs/${s}/state`,{result:P}).catch(t=>{r(`result persist failed: ${t instanceof Error?t.message:String(t)}`)}),P}h(H,"processEval");function G(v){let m=v.filter(r=>r.status==="completed"),s=v.filter(r=>r.status==="failed"),d=m.filter(r=>{let i=r.grading;return i&&Object.keys(i).length>0}),a=d.length>0?d.reduce((r,i)=>r+(i.grading?.summary?.pass_rate??0),0)/d.length:null;return{total:v.length,completed:m.length,failed:s.length,avgPassRate:a}}h(G,"buildSummary");export{H as a};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{c as m,d as p}from"./chunk-ZL4MZMUK.js";import{a as C}from"./chunk-N7TGRFVZ.js";import{
|
|
1
|
+
import{c as m,d as p}from"./chunk-ZL4MZMUK.js";import{a as C}from"./chunk-N7TGRFVZ.js";import{g as c,j as f}from"./chunk-F22YGOSL.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};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{a as m,c as cr}from"./chunk-ZLLER3HP.js";import{boolean as yo,pgTable as mr,text as Ye,timestamp as jt,uuid as Io}from"drizzle-orm/pg-core";import{pgTable as Je,text as Z,timestamp as Ie,jsonb as vo,uuid as F,primaryKey as ho}from"drizzle-orm/pg-core";var u=Je("organizations",{id:F("id").primaryKey().defaultRandom(),name:Z("name").unique().notNull(),slug:Z("slug").unique().notNull(),metadata:vo("metadata"),createdAt:Ie("created_at",{withTimezone:!0}).defaultNow(),updatedAt:Ie("updated_at",{withTimezone:!0}).defaultNow()}),x=Je("teams",{id:F("id").primaryKey().defaultRandom(),orgId:F("org_id").references(()=>u.id,{onDelete:"cascade"}),name:Z("name").notNull(),slug:Z("slug").notNull(),metadata:vo("metadata"),createdAt:Ie("created_at",{withTimezone:!0}).defaultNow()}),ee=Je("user_organizations",{userId:F("user_id").notNull(),orgId:F("org_id").references(()=>u.id,{onDelete:"cascade"}).notNull(),role:Z("role").notNull().default("member"),createdAt:Ie("created_at",{withTimezone:!0}).defaultNow()},e=>[ho({columns:[e.userId,e.orgId]})]),te=Je("user_teams",{userId:F("user_id").notNull(),teamId:F("team_id").references(()=>x.id,{onDelete:"cascade"}).notNull(),role:Z("role").notNull().default("member"),createdAt:Ie("created_at",{withTimezone:!0}).defaultNow()},e=>[ho({columns:[e.userId,e.teamId]})]);var o=mr("profiles",{id:Io("id").primaryKey(),email:Ye("email"),displayName:Ye("display_name"),activeOrgId:Io("active_org_id").references(()=>u.id,{onDelete:"set null"}),isSuperadmin:yo("is_superadmin").notNull().default(!1),claudeCodePlan:Ye("claude_code_plan"),planSource:Ye("plan_source").notNull().default("detected"),setupCompletedAt:jt("setup_completed_at",{withTimezone:!0}),liveSendSkipped:yo("live_send_skipped").notNull().default(!1),createdAt:jt("created_at",{withTimezone:!0}).defaultNow(),updatedAt:jt("updated_at",{withTimezone:!0}).defaultNow()});import{pgTable as Nr,text as ne,timestamp as St,jsonb as Do,uuid as Xe,integer as gr,boolean as vr,index as Kt}from"drizzle-orm/pg-core";import{boolean as _r,jsonb as fr,pgTable as Et,primaryKey as Ao,text as G,timestamp as we,uniqueIndex as kt,uuid as J}from"drizzle-orm/pg-core";import{sql as xr}from"drizzle-orm";import{pgTable as To,text as f,timestamp as Te,jsonb as We,uuid as P,integer as Rt,boolean as pr,uniqueIndex as wo,index as Qe}from"drizzle-orm/pg-core";var n=To("instructions",{id:P("id").primaryKey().defaultRandom(),name:f("name").notNull(),description:f("description").notNull(),type:f("type").notNull().default("instruction"),scope:f("scope").notNull(),scopeRef:P("scope_ref"),version:f("version").notNull(),content:f("content").notNull(),frontmatter:We("frontmatter").notNull(),slots:We("slots"),tags:f("tags").array(),compatibility:f("compatibility").array(),createdBy:P("created_by"),createdAt:Te("created_at",{withTimezone:!0}).defaultNow(),updatedAt:Te("updated_at",{withTimezone:!0}).defaultNow(),archived:pr("archived").default(!1),archivedAt:Te("archived_at",{withTimezone:!0}),archivedBy:P("archived_by"),forkedFromId:P("forked_from_id").references(()=>n.id,{onDelete:"set null"}),upstreamVersion:f("upstream_version"),badge:f("badge"),contentHash:f("content_hash"),contextIdentity:f("context_identity"),scanScore:Rt("scan_score"),scanFindings:We("scan_findings"),popularityScore:Rt("popularity_score"),sourceUpdatedAt:Te("source_updated_at",{withTimezone:!0})},e=>[wo("instructions_name_scope_ref_idx").on(e.name,e.scope,e.scopeRef),Qe("idx_instructions_scope").on(e.scope,e.scopeRef),Qe("idx_instructions_created_by").on(e.createdBy),Qe("idx_instructions_context_identity").on(e.createdBy,e.contextIdentity),Qe("idx_instructions_public_recency").on(e.scope,e.sourceUpdatedAt.desc())]),oe=To("instruction_versions",{id:P("id").primaryKey().defaultRandom(),instructionId:P("instruction_id").references(()=>n.id,{onDelete:"cascade"}),versionNumber:Rt("version_number").notNull(),content:f("content").notNull(),frontmatter:We("frontmatter").notNull(),changeSummary:f("change_summary"),createdBy:P("created_by"),createdAt:Te("created_at",{withTimezone:!0}).defaultNow()},e=>[wo("instruction_versions_instruction_version_idx").on(e.instructionId,e.versionNumber)]);var r=Et("projects",{id:J("id").primaryKey().defaultRandom(),orgId:J("org_id").references(()=>u.id,{onDelete:"cascade"}),name:G("name").notNull(),description:G("description"),githubRepo:G("github_repo"),gitRemoteUrl:G("git_remote_url"),gitRootCommit:G("git_root_commit"),gitRemoteAliases:G("git_remote_aliases").array().notNull().default([]),metadata:fr("metadata"),createdBy:J("created_by"),createdAt:we("created_at",{withTimezone:!0}).defaultNow(),updatedAt:we("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(xr`${e.gitRemoteUrl} IS NOT NULL`)]),O=Et("project_instructions",{projectId:J("project_id").references(()=>r.id,{onDelete:"cascade"}).notNull(),instructionId:J("instruction_id").references(()=>n.id,{onDelete:"cascade"}).notNull(),addedAt:we("added_at",{withTimezone:!0}).defaultNow(),addedBy:J("added_by")},e=>[Ao({columns:[e.projectId,e.instructionId]})]),zo=Et("project_checkouts",{projectId:J("project_id").references(()=>r.id,{onDelete:"cascade"}).notNull(),path:G("path").notNull(),isWorktree:_r("is_worktree").notNull().default(!1),firstSeen:we("first_seen",{withTimezone:!0}).notNull().defaultNow(),lastSeen:we("last_seen",{withTimezone:!0}).notNull().defaultNow()},e=>[Ao({columns:[e.projectId,e.path]}),kt("project_checkouts_path_unique").on(e.path)]);var _=Nr("agent_runs",{id:Xe("id").primaryKey().defaultRandom(),userId:Xe("user_id").notNull().references(()=>o.id,{onDelete:"cascade"}),orgId:Xe("org_id").references(()=>u.id,{onDelete:"set null"}),projectId:Xe("project_id").references(()=>r.id,{onDelete:"set null"}),projectPath:ne("project_path"),gitRemote:ne("git_remote"),baseBranch:ne("base_branch"),title:ne("title"),prompt:ne("prompt"),toolSpec:Do("tool_spec").notNull().default([]),autoWorktree:vr("auto_worktree").notNull().default(!0),status:ne("status").notNull().default("pending"),sessionCount:gr("session_count").notNull().default(0),metadata:Do("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 g,timestamp as Ae,jsonb as Y,uuid as z,integer as $e,uniqueIndex as bo,index as I}from"drizzle-orm/pg-core";var d=Pt("sessions",{id:z("id").primaryKey().defaultRandom(),userId:z("user_id").notNull().references(()=>o.id,{onDelete:"cascade"}),externalSessionId:g("external_session_id"),projectId:z("project_id").references(()=>r.id,{onDelete:"set null"}),orgId:z("org_id").references(()=>u.id,{onDelete:"set null"}),tool:g("tool").notNull(),projectPath:g("project_path"),gitBranch:g("git_branch"),startedAt:Ae("started_at",{withTimezone:!0}).notNull(),endedAt:Ae("ended_at",{withTimezone:!0}),eventCount:$e("event_count").default(0),tokenUsage:Y("token_usage"),analysis:Y("analysis"),analyzedAt:Ae("analyzed_at",{withTimezone:!0}),analyzedEventCount:$e("analyzed_event_count"),analyzedTurnCount:$e("analyzed_turn_count"),metadata:Y("metadata").default({}),origin:g("origin").notNull().default("unknown"),runId:z("run_id").references(()=>_.id,{onDelete:"set null"}),model:g("model"),harnessVersion:g("harness_version"),createdAt:Ae("created_at",{withTimezone:!0}).defaultNow()},e=>[I("idx_sessions_user").on(e.userId),I("idx_sessions_tool").on(e.tool),I("idx_sessions_started_at").on(e.startedAt),I("idx_sessions_project").on(e.projectId),I("idx_sessions_org_started_at").on(e.orgId,e.startedAt),I("idx_sessions_run").on(e.runId),bo("idx_sessions_user_external").on(e.userId,e.externalSessionId)]),re=Pt("session_events",{id:z("id").primaryKey().defaultRandom(),sessionId:z("session_id").notNull().references(()=>d.id,{onDelete:"cascade"}),sequence:$e("sequence").notNull(),eventType:g("event_type").notNull(),content:g("content"),toolName:g("tool_name"),toolInput:Y("tool_input"),toolOutput:Y("tool_output"),tokenUsage:Y("token_usage"),model:g("model"),timestamp:Ae("timestamp",{withTimezone:!0}).notNull(),metadata:Y("metadata").default({})},e=>[bo("session_events_session_sequence_idx").on(e.sessionId,e.sequence),I("idx_session_events_session_id").on(e.sessionId),I("idx_session_events_event_type").on(e.eventType),I("idx_session_events_model").on(e.model)]),C=Pt("session_instructions",{sessionId:z("session_id").notNull().references(()=>d.id,{onDelete:"cascade"}),instructionId:z("instruction_id").notNull().references(()=>n.id,{onDelete:"cascade"}),linkMethod:g("link_method").notNull()},e=>[I("idx_session_instructions_instruction_id").on(e.instructionId)]);import{pgTable as hr,text as ze,timestamp as jo,uuid as De,integer as yr,index as Ze}from"drizzle-orm/pg-core";var v=hr("memories",{id:De("id").primaryKey().defaultRandom(),userId:De("user_id").notNull().references(()=>o.id,{onDelete:"cascade"}),orgId:De("org_id"),projectId:De("project_id").references(()=>r.id,{onDelete:"set null"}),version:yr("version").notNull().default(1),parentId:De("parent_id").references(()=>v.id,{onDelete:"set null"}),kind:ze("kind").notNull(),title:ze("title").notNull(),body:ze("body").notNull(),source:ze("source").notNull(),status:ze("status").notNull().default("active"),createdAt:jo("created_at",{withTimezone:!0}).notNull().defaultNow(),updatedAt:jo("updated_at",{withTimezone:!0}).notNull().defaultNow()},e=>[Ze("idx_memories_user").on(e.userId),Ze("idx_memories_project").on(e.projectId),Ze("idx_memories_parent").on(e.parentId),Ze("idx_memories_user_status").on(e.userId,e.status)]);import{pgTable as Ir,text as be,timestamp as Ot,uuid as Ct,integer as Ro,jsonb as Tr,index as ko}from"drizzle-orm/pg-core";var Eo=Ir("memory_experiments",{id:Ct("id").primaryKey().defaultRandom(),memoryId:Ct("memory_id").notNull().references(()=>v.id,{onDelete:"cascade"}),userId:Ct("user_id").notNull().references(()=>o.id,{onDelete:"cascade"}),memoryVersion:Ro("memory_version").notNull().default(1),taskPrompt:be("task_prompt").notNull(),expectations:be("expectations").array().notNull().default([]),trials:Ro("trials").notNull().default(10),model:be("model"),status:be("status").notNull().default("pending"),result:Tr("result").$type(),error:be("error"),createdAt:Ot("created_at",{withTimezone:!0}).notNull().defaultNow(),startedAt:Ot("started_at",{withTimezone:!0}),completedAt:Ot("completed_at",{withTimezone:!0})},e=>[ko("idx_memory_experiments_memory").on(e.memoryId),ko("idx_memory_experiments_user").on(e.userId)]);import{boolean as wr,date as Ar,index as qt,integer as zr,jsonb as Dr,pgTable as Mt,text as h,timestamp as q,uniqueIndex as br,uuid as se}from"drizzle-orm/pg-core";var So=Mt("announcements",{id:se("id").primaryKey().defaultRandom(),version:h("version").notNull().unique(),releaseDate:Ar("release_date").notNull(),subject:h("subject").notNull(),htmlBody:h("html_body").notNull(),textBody:h("text_body").notNull(),sections:Dr("sections").notNull().default({}),status:h("status").notNull().default("draft"),recipientCount:zr("recipient_count"),sentAt:q("sent_at",{withTimezone:!0}),sentBy:se("sent_by"),error:h("error"),createdAt:q("created_at",{withTimezone:!0}).notNull().defaultNow(),updatedAt:q("updated_at",{withTimezone:!0}).notNull().defaultNow()},e=>[qt("idx_announcements_status").on(e.status),qt("idx_announcements_created").on(e.createdAt)]),Ko=Mt("announcement_deliveries",{id:se("id").primaryKey().defaultRandom(),announcementId:se("announcement_id").notNull(),userId:se("user_id").notNull(),email:h("email").notNull(),status:h("status").notNull().default("pending"),providerId:h("provider_id"),error:h("error"),sentAt:q("sent_at",{withTimezone:!0}),createdAt:q("created_at",{withTimezone:!0}).notNull().defaultNow()},e=>[br("uniq_announcement_deliveries_announcement_user").on(e.announcementId,e.userId),qt("idx_announcement_deliveries_user").on(e.userId,e.createdAt)]),Po=Mt("notification_preferences",{userId:se("user_id").primaryKey(),productAnnouncements:wr("product_announcements").notNull().default(!0),unsubscribeToken:h("unsubscribe_token").notNull().unique(),unsubscribedAt:q("unsubscribed_at",{withTimezone:!0}),createdAt:q("created_at",{withTimezone:!0}).notNull().defaultNow(),updatedAt:q("updated_at",{withTimezone:!0}).notNull().defaultNow()});import{pgTable as jr,text as Lt,timestamp as et,uuid as tt,index as Oo}from"drizzle-orm/pg-core";var D=jr("org_invitations",{id:tt("id").primaryKey().defaultRandom(),orgId:tt("org_id").notNull().references(()=>u.id,{onDelete:"cascade"}),email:Lt("email").notNull(),role:Lt("role").notNull().default("member"),teamId:tt("team_id").references(()=>x.id,{onDelete:"set null"}),invitedBy:tt("invited_by").notNull().references(()=>o.id),token:Lt("token").notNull().unique(),expiresAt:et("expires_at",{withTimezone:!0}).notNull(),acceptedAt:et("accepted_at",{withTimezone:!0}),revokedAt:et("revoked_at",{withTimezone:!0}),createdAt:et("created_at",{withTimezone:!0}).notNull().defaultNow()},e=>[Oo("idx_org_invitations_token").on(e.token),Oo("idx_org_invitations_org").on(e.orgId)]);import{pgTable as Rr,text as kr,timestamp as Er,jsonb as Sr,uuid as Bt,index as Co}from"drizzle-orm/pg-core";var ie=Rr("instruction_events",{id:Bt("id").primaryKey().defaultRandom(),instructionId:Bt("instruction_id").notNull().references(()=>n.id,{onDelete:"cascade"}),eventType:kr("event_type").notNull(),actorId:Bt("actor_id").notNull(),metadata:Sr("metadata"),createdAt:Er("created_at",{withTimezone:!0}).defaultNow()},e=>[Co("idx_instruction_events_instruction").on(e.instructionId),Co("idx_instruction_events_type").on(e.eventType)]);import{pgTable as qo,text as ot,timestamp as Mo,uuid as T,integer as Lo,index as ae,unique as Kr}from"drizzle-orm/pg-core";var b=qo("treatment_assignments",{id:T("id").primaryKey().defaultRandom(),userId:T("user_id").notNull().references(()=>o.id,{onDelete:"cascade"}),treatmentType:ot("treatment_type").notNull(),treatmentId:T("treatment_id").notNull(),treatmentVersion:Lo("treatment_version").notNull().default(1),projectId:T("project_id").references(()=>r.id,{onDelete:"set null"}),assignedBy:T("assigned_by").references(()=>o.id,{onDelete:"set null"}),method:ot("method").notNull(),assignedAt:Mo("assigned_at",{withTimezone:!0}).notNull().defaultNow()},e=>[ae("idx_treatment_assignments_user").on(e.userId),ae("idx_treatment_assignments_treatment").on(e.treatmentType,e.treatmentId),ae("idx_treatment_assignments_project").on(e.projectId)]),j=qo("treatment_exposures",{id:T("id").primaryKey().defaultRandom(),sessionId:T("session_id").notNull().references(()=>d.id,{onDelete:"cascade"}),userId:T("user_id").notNull().references(()=>o.id,{onDelete:"cascade"}),treatmentType:ot("treatment_type").notNull(),treatmentId:T("treatment_id").notNull(),treatmentVersion:Lo("treatment_version").notNull().default(1),assignmentId:T("assignment_id").references(()=>b.id,{onDelete:"set null"}),method:ot("method").notNull(),exposedAt:Mo("exposed_at",{withTimezone:!0}).notNull().defaultNow()},e=>[Kr("treatment_exposures_unique").on(e.sessionId,e.treatmentType,e.treatmentId,e.treatmentVersion),ae("idx_treatment_exposures_treatment").on(e.treatmentType,e.treatmentId),ae("idx_treatment_exposures_user").on(e.userId),ae("idx_treatment_exposures_session").on(e.sessionId)]);import{pgTable as Pr,text as Ut,timestamp as Or,uuid as nt,integer as Cr,index as Bo,uniqueIndex as qr}from"drizzle-orm/pg-core";var Uo=Pr("pending_treatment_exposures",{id:nt("id").primaryKey().defaultRandom(),userId:nt("user_id").notNull().references(()=>o.id,{onDelete:"cascade"}),externalSessionId:Ut("external_session_id").notNull(),treatmentType:Ut("treatment_type").notNull(),treatmentId:nt("treatment_id").notNull(),treatmentVersion:Cr("treatment_version").notNull().default(1),method:Ut("method").notNull().default("injected"),projectId:nt("project_id").references(()=>r.id,{onDelete:"set null"}),createdAt:Or("created_at",{withTimezone:!0}).notNull().defaultNow()},e=>[qr("pending_treatment_exposures_unique").on(e.externalSessionId,e.treatmentType,e.treatmentId,e.treatmentVersion),Bo("idx_pending_treatment_exposures_ext").on(e.externalSessionId),Bo("idx_pending_treatment_exposures_user").on(e.userId)]);import{pgTable as Mr,text as de,timestamp as Ht,uuid as Vt,jsonb as Lr,uniqueIndex as Br,index as Ho}from"drizzle-orm/pg-core";var rt=Mr("session_terminal_targets",{id:Vt("id").primaryKey().defaultRandom(),userId:Vt("user_id").notNull().references(()=>o.id,{onDelete:"cascade"}),sessionId:Vt("session_id").references(()=>d.id,{onDelete:"set null"}),externalSessionId:de("external_session_id"),kind:de("kind").notNull(),target:de("target").notNull(),status:de("status").notNull().default("active"),attachCommand:de("attach_command").notNull(),projectPath:de("project_path"),metadata:Lr("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=>[Br("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 Ur,index as st,jsonb as Vo,pgTable as Hr,text as Q,timestamp as je,uuid as it,integer as Vr}from"drizzle-orm/pg-core";var Fo=Hr("session_send_jobs",{id:it("id").primaryKey().defaultRandom(),userId:it("user_id").notNull(),sessionId:it("session_id").notNull().references(()=>d.id,{onDelete:"cascade"}),terminalTargetId:it("terminal_target_id").references(()=>rt.id,{onDelete:"set null"}),target:Q("target").notNull(),message:Q("message").notNull(),submit:Ur("submit").notNull().default(!0),delivery:Q("delivery").notNull().default("live"),status:Q("status").notNull().default("pending"),result:Vo("result"),error:Q("error"),attempts:Vr("attempts").notNull().default(0),taskKind:Q("task_kind"),payload:Vo("payload"),claimedBy:Q("claimed_by"),claimedAt:je("claimed_at",{withTimezone:!0}),leaseExpiresAt:je("lease_expires_at",{withTimezone:!0}),createdAt:je("created_at",{withTimezone:!0}).defaultNow(),updatedAt:je("updated_at",{withTimezone:!0}).defaultNow(),completedAt:je("completed_at",{withTimezone:!0})},e=>[st("idx_session_send_jobs_user").on(e.userId),st("idx_session_send_jobs_session").on(e.sessionId),st("idx_session_send_jobs_status").on(e.status),st("idx_session_send_jobs_pending").on(e.userId,e.status)]);import{pgTable as Jo,text as W,timestamp as at,jsonb as Yo,uuid as M,integer as Fr,boolean as Gr,uniqueIndex as Jr,index as Go,primaryKey as Yr}from"drizzle-orm/pg-core";var y=Jo("packs",{id:M("id").primaryKey().defaultRandom(),name:W("name").notNull(),description:W("description").notNull(),scope:W("scope").notNull(),scopeRef:M("scope_ref"),version:W("version").notNull().default("1.0.0"),tags:W("tags").array(),badge:W("badge"),metadata:Yo("metadata"),createdBy:M("created_by"),createdAt:at("created_at",{withTimezone:!0}).defaultNow(),updatedAt:at("updated_at",{withTimezone:!0}).defaultNow(),archived:Gr("archived").default(!1),archivedAt:at("archived_at",{withTimezone:!0}),archivedBy:M("archived_by"),forkedFromId:M("forked_from_id").references(()=>y.id,{onDelete:"set null"}),upstreamVersion:W("upstream_version")},e=>[Jr("packs_name_scope_ref_idx").on(e.name,e.scope,e.scopeRef),Go("idx_packs_scope").on(e.scope,e.scopeRef),Go("idx_packs_created_by").on(e.createdBy)]),L=Jo("pack_instructions",{packId:M("pack_id").references(()=>y.id,{onDelete:"cascade"}).notNull(),instructionId:M("instruction_id").references(()=>n.id,{onDelete:"cascade"}).notNull(),position:Fr("position").notNull().default(0),slotOverrides:Yo("slot_overrides"),addedAt:at("added_at",{withTimezone:!0}).defaultNow(),addedBy:M("added_by")},e=>[Yr({columns:[e.packId,e.instructionId]})]);import{pgTable as Qr,text as Ft,timestamp as Wr,jsonb as Xr,uuid as Gt,index as ue}from"drizzle-orm/pg-core";var le=Qr("instruction_usage_events",{id:Gt("id").primaryKey().defaultRandom(),instructionId:Gt("instruction_id").references(()=>n.id,{onDelete:"set null"}),userId:Gt("user_id").notNull(),surface:Ft("surface").notNull(),action:Ft("action").notNull(),metadata:Xr("metadata"),traceId:Ft("trace_id"),createdAt:Wr("created_at",{withTimezone:!0}).defaultNow()},e=>[ue("idx_usage_events_instruction").on(e.instructionId),ue("idx_usage_events_user").on(e.userId),ue("idx_usage_events_surface").on(e.surface),ue("idx_usage_events_action").on(e.action),ue("idx_usage_events_created_at").on(e.createdAt),ue("idx_usage_events_user_created").on(e.userId,e.createdAt)]);import{pgTable as $r,text as dt,timestamp as Qo,jsonb as Zr,uuid as Wo,index as Jt}from"drizzle-orm/pg-core";var Xo=$r("worker_connections",{id:Wo("id").primaryKey().defaultRandom(),userId:Wo("user_id").notNull(),workerType:dt("worker_type").notNull().default("mcp"),clientName:dt("client_name").notNull(),clientVersion:dt("client_version"),workerVersion:dt("worker_version"),lastHeartbeat:Qo("last_heartbeat",{withTimezone:!0}).notNull().defaultNow(),connectedAt:Qo("connected_at",{withTimezone:!0}).notNull().defaultNow(),metadata:Zr("metadata")},e=>[Jt("idx_worker_connections_user").on(e.userId),Jt("idx_worker_connections_heartbeat").on(e.userId,e.lastHeartbeat),Jt("idx_worker_connections_type").on(e.userId,e.workerType)]);import{pgTable as es,text as ut,timestamp as ts,jsonb as os,uuid as $o,index as Zo}from"drizzle-orm/pg-core";var en=es("cli_setup_events",{id:$o("id").primaryKey().defaultRandom(),userId:$o("user_id").notNull(),deviceId:ut("device_id").notNull(),event:ut("event").notNull(),cliVersion:ut("cli_version"),os:ut("os"),props:os("props").notNull().default({}),createdAt:ts("created_at",{withTimezone:!0}).notNull().defaultNow()},e=>[Zo("idx_cli_setup_events_user").on(e.userId,e.createdAt),Zo("idx_cli_setup_events_device").on(e.deviceId,e.createdAt)]);import{pgTable as ns,text as X,integer as rs,boolean as ss,timestamp as is,jsonb as as,uuid as ds,index as tn}from"drizzle-orm/pg-core";var on=ns("cli_error_events",{id:ds("id").primaryKey().defaultRandom(),deviceId:X("device_id"),event:X("event").notNull(),command:X("command"),statusCode:rs("status_code"),message:X("message"),cliVersion:X("cli_version"),os:X("os"),nodeVersion:X("node_version"),proxied:ss("proxied"),props:as("props").notNull().default({}),createdAt:is("created_at",{withTimezone:!0}).notNull().defaultNow()},e=>[tn("idx_cli_error_events_created").on(e.createdAt),tn("idx_cli_error_events_device").on(e.deviceId,e.createdAt)]);import{pgTable as lt,text as R,timestamp as ce,jsonb as w,uuid as A,integer as Re,index as k}from"drizzle-orm/pg-core";var s=lt("eval_targets",{id:A("id").primaryKey().defaultRandom(),userId:A("user_id").notNull(),name:R("name").notNull(),type:R("type").notNull(),content:R("content").notNull(),description:R("description").notNull().default(""),metadata:w("metadata").notNull().default({}),version:Re("version").notNull().default(1),parentId:A("parent_id").references(()=>s.id,{onDelete:"set null"}),createdAt:ce("created_at",{withTimezone:!0}).defaultNow(),updatedAt:ce("updated_at",{withTimezone:!0}).defaultNow()},e=>[k("eval_targets_name_user_idx").on(e.name,e.userId),k("idx_eval_targets_user").on(e.userId),k("idx_eval_targets_type").on(e.type),k("idx_eval_targets_parent").on(e.parentId)]),E=lt("evals",{id:A("id").primaryKey().defaultRandom(),evalTargetId:A("eval_target_id").notNull().references(()=>s.id,{onDelete:"cascade"}),name:R("name").notNull(),prompt:R("prompt").notNull(),expectedOutput:R("expected_output").notNull().default(""),files:w("files").notNull().default([]),expectations:w("expectations").notNull().default([]),createdAt:ce("created_at",{withTimezone:!0}).defaultNow(),updatedAt:ce("updated_at",{withTimezone:!0}).defaultNow()},e=>[k("idx_evals_target").on(e.evalTargetId)]),B=lt("eval_runs",{id:A("id").primaryKey().defaultRandom(),evalId:A("eval_id").notNull().references(()=>E.id,{onDelete:"cascade"}),evalTargetId:A("eval_target_id").notNull().references(()=>s.id,{onDelete:"cascade"}),evalTargetVersion:Re("eval_target_version").notNull(),configuration:R("configuration").notNull(),runNumber:Re("run_number").notNull().default(1),iteration:Re("iteration").notNull().default(1),status:R("status").notNull().default("completed"),outputs:w("outputs").notNull().default({}),timing:w("timing").notNull().default({}),grading:w("grading").notNull().default({}),comparison:w("comparison"),createdAt:ce("created_at",{withTimezone:!0}).defaultNow()},e=>[k("idx_eval_runs_eval").on(e.evalId),k("idx_eval_runs_target").on(e.evalTargetId),k("idx_eval_runs_iteration").on(e.evalTargetId,e.iteration)]),me=lt("benchmarks",{id:A("id").primaryKey().defaultRandom(),evalTargetId:A("eval_target_id").notNull().references(()=>s.id,{onDelete:"cascade"}),iteration:Re("iteration").notNull().default(1),runSummary:w("run_summary").notNull().default({}),notes:w("notes").notNull().default([]),feedback:w("feedback"),createdAt:ce("created_at",{withTimezone:!0}).defaultNow()},e=>[k("idx_benchmarks_target").on(e.evalTargetId)]);import{pgTable as rn,text as Yt,timestamp as Qt,jsonb as sn,uuid as pe,integer as ke,index as ct,real as nn}from"drizzle-orm/pg-core";var _e=rn("trigger_evals",{id:pe("id").primaryKey().defaultRandom(),evalTargetId:pe("eval_target_id").notNull().references(()=>s.id,{onDelete:"cascade"}),userId:pe("user_id").notNull(),queries:sn("queries").notNull().default([]),status:Yt("status").notNull().default("pending_review"),trainIndices:ke("train_indices").array().default([]),testIndices:ke("test_indices").array().default([]),createdAt:Qt("created_at",{withTimezone:!0}).defaultNow(),updatedAt:Qt("updated_at",{withTimezone:!0}).defaultNow()},e=>[ct("idx_trigger_evals_target").on(e.evalTargetId),ct("idx_trigger_evals_user").on(e.userId)]),fe=rn("optimization_runs",{id:pe("id").primaryKey().defaultRandom(),evalTargetId:pe("eval_target_id").notNull().references(()=>s.id,{onDelete:"cascade"}),userId:pe("user_id").notNull(),type:Yt("type").notNull(),iteration:ke("iteration").notNull(),inputVersion:ke("input_version").notNull(),outputVersion:ke("output_version"),trainScore:nn("train_score"),testScore:nn("test_score"),analysis:sn("analysis").notNull().default({}),status:Yt("status").notNull().default("running"),createdAt:Qt("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 us,text as U,timestamp as ls,jsonb as Ee,uuid as Wt,integer as Xt,real as cs,index as Se,uniqueIndex as an}from"drizzle-orm/pg-core";var H=us("context_snapshots",{id:Wt("id").primaryKey().defaultRandom(),sessionId:Wt("session_id").references(()=>d.id,{onDelete:"cascade"}),userId:Wt("user_id").notNull().references(()=>o.id,{onDelete:"cascade"}),sequence:Xt("sequence").notNull().default(0),provider:U("provider").notNull(),model:U("model").notNull(),systemPrompt:U("system_prompt").notNull(),injectedInstructions:Ee("injected_instructions").notNull().default([]),messagesSummary:Ee("messages_summary").notNull(),tools:Ee("tools").notNull().default([]),systemHash:U("system_hash").notNull(),requestHash:U("request_hash").notNull().default(""),toolsHash:U("tools_hash"),injectedHash:U("injected_hash"),messagesDelta:Ee("messages_delta").default([]),messagesDeltaRef:U("messages_delta_ref"),maxTokens:Xt("max_tokens"),temperature:cs("temperature"),estimatedTokens:Xt("estimated_tokens"),capturedAt:ls("captured_at",{withTimezone:!0}).notNull().defaultNow(),metadata:Ee("metadata").default({})},e=>[Se("idx_context_snapshots_session").on(e.sessionId),Se("idx_context_snapshots_user").on(e.userId),Se("idx_context_snapshots_hash").on(e.systemHash),Se("idx_context_snapshots_request_hash").on(e.requestHash),an("idx_snapshots_session_request").on(e.sessionId,e.requestHash),an("idx_snapshots_session_sequence").on(e.sessionId,e.sequence),Se("idx_context_snapshots_user_session_captured").on(e.userId,e.sessionId,e.capturedAt.desc())]);import{pgTable as ms,text as dn,timestamp as ps,jsonb as _s,integer as fs,index as xs}from"drizzle-orm/pg-core";var un=ms("content_blobs",{hash:dn("hash").primaryKey(),contentType:dn("content_type").notNull(),content:_s("content").notNull(),sizeBytes:fs("size_bytes").notNull().default(0),createdAt:ps("created_at",{withTimezone:!0}).defaultNow()},e=>[xs("idx_content_blobs_type").on(e.contentType)]);import{pgTable as Ns,text as mt,timestamp as Ke,jsonb as pt,uuid as $t,index as _t,integer as gs}from"drizzle-orm/pg-core";var xe=Ns("eval_jobs",{id:$t("id").primaryKey().defaultRandom(),userId:$t("user_id").notNull(),evalTargetId:$t("eval_target_id").notNull().references(()=>s.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:gs("attempts").notNull().default(0),taskKind:mt("task_kind"),payload:pt("payload"),claimedBy:mt("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=>[_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 vs,text as Pe,timestamp as Oe,jsonb as ln,uuid as cn,integer as hs,index as mn}from"drizzle-orm/pg-core";var pn=vs("agent_jobs",{id:cn("id").primaryKey().defaultRandom(),userId:cn("user_id").notNull(),taskKind:Pe("task_kind").notNull(),status:Pe("status").notNull().default("pending"),payload:ln("payload").notNull(),dedupeKey:Pe("dedupe_key"),result:ln("result"),error:Pe("error"),attempts:hs("attempts").notNull().default(0),claimedBy:Pe("claimed_by"),claimedAt:Oe("claimed_at",{withTimezone:!0}),leaseExpiresAt:Oe("lease_expires_at",{withTimezone:!0}),createdAt:Oe("created_at",{withTimezone:!0}).notNull().defaultNow(),updatedAt:Oe("updated_at",{withTimezone:!0}).notNull().defaultNow(),completedAt:Oe("completed_at",{withTimezone:!0})},e=>[mn("idx_agent_jobs_claim").on(e.userId,e.status,e.taskKind,e.createdAt),mn("idx_agent_jobs_dedupe").on(e.userId,e.taskKind,e.dedupeKey)]);import{pgTable as ys,text as Ce,timestamp as qe,jsonb as ft,uuid as Zt,index as xt,integer as Is}from"drizzle-orm/pg-core";var _n=ys("insights_jobs",{id:Zt("id").primaryKey().defaultRandom(),userId:Zt("user_id").notNull(),status:Ce("status").notNull().default("pending"),projectPath:Ce("project_path"),projectId:Zt("project_id").references(()=>r.id,{onDelete:"set null"}),config:ft("config").notNull().default({}),progress:ft("progress").notNull().default({}),result:ft("result"),error:Ce("error"),attempts:Is("attempts").notNull().default(0),taskKind:Ce("task_kind"),payload:ft("payload"),claimedBy:Ce("claimed_by"),claimedAt:qe("claimed_at",{withTimezone:!0}),leaseExpiresAt:qe("lease_expires_at",{withTimezone:!0}),createdAt:qe("created_at",{withTimezone:!0}).defaultNow(),updatedAt:qe("updated_at",{withTimezone:!0}).defaultNow(),completedAt:qe("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 Ts,text as eo,timestamp as Nt,uuid as fn,index as ws,uniqueIndex as As}from"drizzle-orm/pg-core";var Ne=Ts("api_keys",{id:fn("id").primaryKey().defaultRandom(),userId:fn("user_id").notNull().references(()=>o.id,{onDelete:"cascade"}),name:eo("name").notNull(),keyHash:eo("key_hash").notNull(),keyPrefix:eo("key_prefix").notNull(),lastUsedAt:Nt("last_used_at",{withTimezone:!0}),expiresAt:Nt("expires_at",{withTimezone:!0}),revokedAt:Nt("revoked_at",{withTimezone:!0}),createdAt:Nt("created_at",{withTimezone:!0}).defaultNow()},e=>[ws("idx_api_keys_user").on(e.userId),As("idx_api_keys_hash").on(e.keyHash)]);import{pgTable as zs,text as to,timestamp as xn,uuid as Ds,index as bs}from"drizzle-orm/pg-core";var Nn=zs("extension_auth_codes",{code:to("code").primaryKey(),userId:Ds("user_id").notNull().references(()=>o.id,{onDelete:"cascade"}),editor:to("editor"),email:to("email"),expiresAt:xn("expires_at",{withTimezone:!0}).notNull(),createdAt:xn("created_at",{withTimezone:!0}).defaultNow()},e=>[bs("idx_ext_auth_codes_expiry").on(e.expiresAt)]);import{pgTable as js,text as Rs,timestamp as gn,jsonb as ks,uuid as oo,index as vn}from"drizzle-orm/pg-core";var ge=js("eval_conversations",{id:oo("id").primaryKey().defaultRandom(),evalTargetId:oo("eval_target_id").notNull().references(()=>s.id,{onDelete:"cascade"}),userId:oo("user_id").notNull(),messages:ks("messages").notNull().default([]),status:Rs("status").notNull().default("active"),createdAt:gn("created_at",{withTimezone:!0}).defaultNow(),updatedAt:gn("updated_at",{withTimezone:!0}).defaultNow()},e=>[vn("idx_eval_conversations_target").on(e.evalTargetId),vn("idx_eval_conversations_user").on(e.userId)]);import{pgTable as Es,text as S,timestamp as hn,jsonb as Ss,uuid as no}from"drizzle-orm/pg-core";var yn=Es("skill_submissions",{id:no("id").primaryKey().defaultRandom(),skillId:S("skill_id").notNull(),name:S("name").notNull(),description:S("description").notNull(),category:S("category").notNull(),tools:S("tools").array().notNull(),tags:S("tags").array().default([]),content:S("content").notNull(),status:S("status").notNull().default("pending"),submittedBy:no("submitted_by").notNull(),reviewedBy:no("reviewed_by"),reviewNote:S("review_note"),metadata:Ss("metadata"),createdAt:hn("created_at",{withTimezone:!0}).defaultNow(),updatedAt:hn("updated_at",{withTimezone:!0}).defaultNow()});import{pgTable as Ks,text as Me,timestamp as In,jsonb as Ps,uuid as Os,uniqueIndex as Cs,index as Tn}from"drizzle-orm/pg-core";var wn=Ks("harness_releases",{id:Os("id").primaryKey().defaultRandom(),harness:Me("harness").notNull(),version:Me("version").notNull(),publishedAt:In("published_at",{withTimezone:!0}).notNull(),title:Me("title"),body:Me("body"),categories:Ps("categories").default({}),url:Me("url"),createdAt:In("created_at",{withTimezone:!0}).defaultNow()},e=>[Cs("idx_harness_releases_unique").on(e.harness,e.version),Tn("idx_harness_releases_harness").on(e.harness),Tn("idx_harness_releases_published").on(e.publishedAt)]);import{pgTable as qs,text as ve,timestamp as An,jsonb as Ms,uuid as zn,index as Dn,uniqueIndex as Ls}from"drizzle-orm/pg-core";var ro=qs("notifications",{id:zn("id").primaryKey().defaultRandom(),userId:zn("user_id").notNull(),type:ve("type").notNull(),title:ve("title").notNull(),body:ve("body"),url:ve("url"),sourceTable:ve("source_table"),sourceId:ve("source_id"),metadata:Ms("metadata").notNull().default({}),readAt:An("read_at",{withTimezone:!0}),createdAt:An("created_at",{withTimezone:!0}).notNull().defaultNow()},e=>[Dn("idx_notifications_user_created").on(e.userId,e.createdAt),Dn("idx_notifications_user_unread").on(e.userId),Ls("idx_notifications_source_dedup").on(e.userId,e.sourceTable,e.sourceId)]);import{pgTable as Bs,text as Le,timestamp as Be,jsonb as so,uuid as io,index as gt,integer as Us}from"drizzle-orm/pg-core";var he=Bs("launch_jobs",{id:io("id").primaryKey().defaultRandom(),userId:io("user_id").notNull(),tool:Le("tool").notNull(),status:Le("status").notNull().default("pending"),config:so("config").notNull().default({}),result:so("result"),error:Le("error"),attempts:Us("attempts").notNull().default(0),taskKind:Le("task_kind"),payload:so("payload"),claimedBy:Le("claimed_by"),claimedAt:Be("claimed_at",{withTimezone:!0}),leaseExpiresAt:Be("lease_expires_at",{withTimezone:!0}),createdAt:Be("created_at",{withTimezone:!0}).defaultNow(),updatedAt:Be("updated_at",{withTimezone:!0}).defaultNow(),completedAt:Be("completed_at",{withTimezone:!0}),runId:io("run_id").references(()=>_.id,{onDelete:"set null"})},e=>[gt("idx_launch_jobs_user").on(e.userId),gt("idx_launch_jobs_status").on(e.status),gt("idx_launch_jobs_pending").on(e.userId,e.status),gt("idx_launch_jobs_run").on(e.runId)]);import{pgTable as bn,uuid as K,text as Ue,real as Hs,timestamp as vt,boolean as Vs,uniqueIndex as Fs,index as He}from"drizzle-orm/pg-core";var ao=bn("instruction_suggestions",{id:K("id").primaryKey().defaultRandom(),userId:K("user_id").notNull().references(()=>o.id,{onDelete:"cascade"}),instructionId:K("instruction_id").notNull().references(()=>n.id,{onDelete:"cascade"}),projectPath:Ue("project_path").notNull(),projectId:K("project_id").references(()=>r.id,{onDelete:"set null"}),score:Hs("score").notNull(),reason:Ue("reason").notNull(),generatedAt:vt("generated_at",{withTimezone:!0}).notNull().defaultNow(),isStale:Vs("is_stale").notNull().default(!1),dismissedAt:vt("dismissed_at",{withTimezone:!0}),acceptedAt:vt("accepted_at",{withTimezone:!0}),promotedToInstructionId:K("promoted_to_instruction_id").references(()=>n.id,{onDelete:"set null"})},e=>[Fs("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)]),jn=bn("instruction_suggestion_events",{id:K("id").primaryKey().defaultRandom(),suggestionId:K("suggestion_id").notNull().references(()=>ao.id,{onDelete:"cascade"}),userId:K("user_id").notNull().references(()=>o.id,{onDelete:"cascade"}),eventType:Ue("event_type").notNull(),tool:Ue("tool"),sessionId:K("session_id"),projectPath:Ue("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 Gs,text as uo,integer as Js,numeric as Ve,timestamp as lo,index as Ys,primaryKey as Qs}from"drizzle-orm/pg-core";var Rn=Gs("model_pricing",{provider:uo("provider").notNull(),modelId:uo("model_id").notNull(),inputPerM:Ve("input_per_m").notNull(),outputPerM:Ve("output_per_m").notNull(),cacheReadPerM:Ve("cache_read_per_m").notNull(),cacheWrite5mPerM:Ve("cache_write_5m_per_m").notNull(),cacheWrite1hPerM:Ve("cache_write_1h_per_m").notNull(),contextWindow:Js("context_window"),effectiveFrom:lo("effective_from",{withTimezone:!0}).notNull(),effectiveUntil:lo("effective_until",{withTimezone:!0}),source:uo("source").notNull(),verifiedAt:lo("verified_at",{withTimezone:!0})},e=>[Qs({columns:[e.provider,e.modelId,e.effectiveFrom]}),Ys("idx_model_pricing_active").on(e.provider,e.modelId,e.effectiveFrom.desc())]);import{pgTable as Ws,text as $,numeric as kn,timestamp as En,uuid as Sn,jsonb as Xs,index as Kn}from"drizzle-orm/pg-core";var Pn=Ws("limit_observations",{id:Sn("id").primaryKey().defaultRandom(),observedAt:En("observed_at",{withTimezone:!0}).notNull().defaultNow(),provider:$("provider").notNull(),plan:$("plan").notNull(),limitType:$("limit_type").notNull(),value:kn("value").notNull(),unit:$("unit").notNull(),comparator:$("comparator").notNull().default("="),resetsAt:En("resets_at",{withTimezone:!0}),sourceType:$("source_type").notNull(),sourceUrl:$("source_url"),sourceEvidence:Xs("source_evidence"),confidence:kn("confidence").notNull(),userId:Sn("user_id")},e=>[Kn("idx_limit_obs_lookup").on(e.provider,e.plan,e.limitType,e.observedAt.desc()),Kn("idx_limit_obs_user").on(e.userId,e.observedAt.desc())]);import{pgTable as $s,text as ht,timestamp as Zs,uuid as ei,jsonb as ti,boolean as oi,uniqueIndex as ni}from"drizzle-orm/pg-core";var On=$s("provider_docs_snapshots",{id:ei("id").primaryKey().defaultRandom(),fetchedAt:Zs("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:oi("parse_success").notNull(),parseErrors:ti("parse_errors")},e=>[ni("idx_docs_dedup").on(e.provider,e.docUrl,e.contentHash)]);import{pgTable as ri,text as yt,numeric as Cn,timestamp as qn,uuid as si,primaryKey as ii,index as ai}from"drizzle-orm/pg-core";var Mn=ri("plan_limits_active",{provider:yt("provider").notNull(),plan:yt("plan").notNull(),limitType:yt("limit_type").notNull(),value:Cn("value").notNull(),unit:yt("unit").notNull(),effectiveFrom:qn("effective_from",{withTimezone:!0}).notNull(),effectiveUntil:qn("effective_until",{withTimezone:!0}),confidence:Cn("confidence").notNull(),sourceObservationIds:si("source_observation_ids").array().notNull()},e=>[ii({columns:[e.provider,e.plan,e.limitType,e.effectiveFrom]}),ai("idx_plan_limits_lookup").on(e.provider,e.plan,e.limitType,e.effectiveFrom.desc())]);import{pgTable as di,text as co,timestamp as ui,uuid as Ln,jsonb as li,index as ci}from"drizzle-orm/pg-core";var Bn=di("alert_dispatches",{id:Ln("id").primaryKey().defaultRandom(),userId:Ln("user_id").notNull(),alertKey:co("alert_key").notNull(),severity:co("severity").notNull(),lastDispatchedAt:ui("last_dispatched_at",{withTimezone:!0}).notNull().defaultNow(),lastState:li("last_state").notNull(),channel:co("channel").notNull()},e=>[ci("idx_alert_user_key").on(e.userId,e.alertKey,e.lastDispatchedAt.desc())]);import{drizzle as Gn}from"drizzle-orm/postgres-js";import Jn from"postgres";var It={};cr(It,{agentJobs:()=>pn,agentRuns:()=>_,agentRunsRelations:()=>zi,alertDispatches:()=>Bn,announcementDeliveries:()=>Ko,announcements:()=>So,apiKeys:()=>Ne,apiKeysRelations:()=>pi,benchmarks:()=>me,benchmarksRelations:()=>qi,cliErrorEvents:()=>on,cliSetupEvents:()=>en,contentBlobs:()=>un,contextSnapshots:()=>H,contextSnapshotsRelations:()=>Hi,evalConversations:()=>ge,evalConversationsRelations:()=>Ui,evalJobs:()=>xe,evalJobsRelations:()=>Bi,evalRuns:()=>B,evalRunsRelations:()=>Ci,evalTargets:()=>s,evalTargetsRelations:()=>Pi,evals:()=>E,evalsRelations:()=>Oi,extensionAuthCodes:()=>Nn,harnessReleases:()=>wn,insightsJobs:()=>_n,instructionEvents:()=>ie,instructionEventsRelations:()=>hi,instructionSuggestionEvents:()=>jn,instructionSuggestions:()=>ao,instructionUsageEvents:()=>le,instructionUsageEventsRelations:()=>Ki,instructionVersions:()=>oe,instructionVersionsRelations:()=>Ii,instructions:()=>n,instructionsRelations:()=>vi,launchJobs:()=>he,launchJobsRelations:()=>Di,limitObservations:()=>Pn,memories:()=>v,memoriesRelations:()=>yi,memoryExperiments:()=>Eo,modelPricing:()=>Rn,notificationPreferences:()=>Po,notifications:()=>ro,optimizationRuns:()=>fe,optimizationRunsRelations:()=>Li,orgInvitations:()=>D,orgInvitationsRelations:()=>xi,organizations:()=>u,organizationsRelations:()=>_i,packInstructions:()=>L,packInstructionsRelations:()=>Si,packs:()=>y,packsRelations:()=>Ei,pendingTreatmentExposures:()=>Uo,planLimitsActive:()=>Mn,profiles:()=>o,profilesRelations:()=>mi,projectCheckouts:()=>zo,projectInstructions:()=>O,projectInstructionsRelations:()=>wi,projects:()=>r,projectsRelations:()=>Ti,providerDocsSnapshots:()=>On,sessionEvents:()=>re,sessionEventsRelations:()=>bi,sessionInstructions:()=>C,sessionInstructionsRelations:()=>ji,sessionSendJobs:()=>Fo,sessionTerminalTargets:()=>rt,sessions:()=>d,sessionsRelations:()=>Ai,skillSubmissions:()=>yn,teams:()=>x,teamsRelations:()=>fi,treatmentAssignments:()=>b,treatmentAssignmentsRelations:()=>Ri,treatmentExposures:()=>j,treatmentExposuresRelations:()=>ki,triggerEvals:()=>_e,triggerEvalsRelations:()=>Mi,userOrganizations:()=>ee,userOrganizationsRelations:()=>Ni,userTeams:()=>te,userTeamsRelations:()=>gi,workerConnections:()=>Xo});import{relations as i}from"drizzle-orm";var mi=i(o,({many:e})=>({sessions:e(d),contextSnapshots:e(H),apiKeys:e(Ne)})),pi=i(Ne,({one:e})=>({profile:e(o,{fields:[Ne.userId],references:[o.id]})})),_i=i(u,({many:e})=>({teams:e(x),userOrganizations:e(ee),projects:e(r),invitations:e(D)})),fi=i(x,({one:e,many:t})=>({organization:e(u,{fields:[x.orgId],references:[u.id]}),userTeams:t(te),invitations:t(D)})),xi=i(D,({one:e})=>({organization:e(u,{fields:[D.orgId],references:[u.id]}),team:e(x,{fields:[D.teamId],references:[x.id]}),inviter:e(o,{fields:[D.invitedBy],references:[o.id]})})),Ni=i(ee,({one:e})=>({organization:e(u,{fields:[ee.orgId],references:[u.id]})})),gi=i(te,({one:e})=>({team:e(x,{fields:[te.teamId],references:[x.id]})})),vi=i(n,({one:e,many:t})=>({versions:t(oe),projectInstructions:t(O),events:t(ie),usageEvents:t(le),sessionInstructions:t(C),packInstructions:t(L),forkedFrom:e(n,{fields:[n.forkedFromId],references:[n.id]})})),hi=i(ie,({one:e})=>({instruction:e(n,{fields:[ie.instructionId],references:[n.id]})})),yi=i(v,({one:e,many:t})=>({project:e(r,{fields:[v.projectId],references:[r.id]}),parent:e(v,{fields:[v.parentId],references:[v.id]}),versions:t(v)})),Ii=i(oe,({one:e})=>({instruction:e(n,{fields:[oe.instructionId],references:[n.id]})})),Ti=i(r,({one:e,many:t})=>({organization:e(u,{fields:[r.orgId],references:[u.id]}),projectInstructions:t(O),sessions:t(d)})),wi=i(O,({one:e})=>({project:e(r,{fields:[O.projectId],references:[r.id]}),instruction:e(n,{fields:[O.instructionId],references:[n.id]})})),Ai=i(d,({one:e,many:t})=>({profile:e(o,{fields:[d.userId],references:[o.id]}),project:e(r,{fields:[d.projectId],references:[r.id]}),run:e(_,{fields:[d.runId],references:[_.id]}),events:t(re),sessionInstructions:t(C),treatmentExposures:t(j),contextSnapshots:t(H)})),zi=i(_,({one:e,many:t})=>({profile:e(o,{fields:[_.userId],references:[o.id]}),organization:e(u,{fields:[_.orgId],references:[u.id]}),project:e(r,{fields:[_.projectId],references:[r.id]}),sessions:t(d),launchJobs:t(he)})),Di=i(he,({one:e})=>({run:e(_,{fields:[he.runId],references:[_.id]})})),bi=i(re,({one:e})=>({session:e(d,{fields:[re.sessionId],references:[d.id]})})),ji=i(C,({one:e})=>({session:e(d,{fields:[C.sessionId],references:[d.id]}),instruction:e(n,{fields:[C.instructionId],references:[n.id]})})),Ri=i(b,({one:e,many:t})=>({owner:e(o,{fields:[b.userId],references:[o.id]}),project:e(r,{fields:[b.projectId],references:[r.id]}),exposures:t(j)})),ki=i(j,({one:e})=>({session:e(d,{fields:[j.sessionId],references:[d.id]}),owner:e(o,{fields:[j.userId],references:[o.id]}),assignment:e(b,{fields:[j.assignmentId],references:[b.id]})})),Ei=i(y,({one:e,many:t})=>({packInstructions:t(L),forkedFrom:e(y,{fields:[y.forkedFromId],references:[y.id]})})),Si=i(L,({one:e})=>({pack:e(y,{fields:[L.packId],references:[y.id]}),instruction:e(n,{fields:[L.instructionId],references:[n.id]})})),Ki=i(le,({one:e})=>({instruction:e(n,{fields:[le.instructionId],references:[n.id]})})),Pi=i(s,({one:e,many:t})=>({parent:e(s,{fields:[s.parentId],references:[s.id]}),evals:t(E),evalRuns:t(B),benchmarks:t(me),triggerEvals:t(_e),optimizationRuns:t(fe),evalJobs:t(xe),evalConversations:t(ge)})),Oi=i(E,({one:e,many:t})=>({evalTarget:e(s,{fields:[E.evalTargetId],references:[s.id]}),runs:t(B)})),Ci=i(B,({one:e})=>({eval:e(E,{fields:[B.evalId],references:[E.id]}),evalTarget:e(s,{fields:[B.evalTargetId],references:[s.id]})})),qi=i(me,({one:e})=>({evalTarget:e(s,{fields:[me.evalTargetId],references:[s.id]})})),Mi=i(_e,({one:e})=>({evalTarget:e(s,{fields:[_e.evalTargetId],references:[s.id]})})),Li=i(fe,({one:e})=>({evalTarget:e(s,{fields:[fe.evalTargetId],references:[s.id]})})),Bi=i(xe,({one:e})=>({evalTarget:e(s,{fields:[xe.evalTargetId],references:[s.id]})})),Ui=i(ge,({one:e})=>({evalTarget:e(s,{fields:[ge.evalTargetId],references:[s.id]})})),Hi=i(H,({one:e})=>({session:e(d,{fields:[H.sessionId],references:[d.id]}),profile:e(o,{fields:[H.userId],references:[o.id]})}));var Fe=0,Un=0,Ge=0,Hn=0;var Vi=0;function mo(){Fe++,Fe>Un&&(Un=Fe)}m(mo,"trackDbOpStart");function po(){Fe>0&&Fe--}m(po,"trackDbOpEnd");function _o(){Ge++,Ge>Hn&&(Hn=Ge)}m(_o,"trackHeavyDbOpStart");function fo(){Ge>0&&Ge--}m(fo,"trackHeavyDbOpEnd");function Vn(){Vi++}m(Vn,"recordQueryDeadline");var wt,zt,xo=!1,Tt;var Fn,Dt,At;function Yn(e){let t=process.env[e];if(!t)throw new Error(`Missing required env var: ${e}`);return t}m(Yn,"getEnv");function Qn(){if(xo)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,p=Number(process.env.PG_KEEP_ALIVE_S)||60;zt=Jn(Yn("DATABASE_URL"),{prepare:!1,max:t,connect_timeout:a,idle_timeout:c,keep_alive:p,max_lifetime:300,connection:{application_name:e,...l>0?{statement_timeout:l}:{}}}),wt=Gn(zt,{schema:It})}return wt}m(Qn,"getDb");function Wn(){if(xo)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=Jn(Yn("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=Gn(Dt,{schema:It})}return At}m(Wn,"getHeavyDb");async function Fi(){if(Tt)return Tt;xo=!0;let e=zt,t=Fn,a=Dt;return zt=void 0,wt=void 0,Fn=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(Fi,"closeDb");var Gi=new Set(["CONNECT_TIMEOUT","ETIMEDOUT","ENOTFOUND","ECONNREFUSED","EAI_AGAIN"]);function Xn(e){let t=e,a=t?.code??t?.cause?.code??t?.errno;return a!==void 0&&Gi.has(a)}m(Xn,"isRetryableConnectError");var Ji=new Set(["CONNECTION_CLOSED","ECONNRESET","EPIPE"]);function $n(e){let t=e,a=t?.code??t?.cause?.code??t?.errno;return a!==void 0&&Ji.has(a)}m($n,"isRetryableResetError");async function Zn(e,t={}){let a=t.attempts??3,l=t.baseMs??100,c;for(let p=0;p<a;p++)try{return await e()}catch(N){c=N;let ye=Xn(N)||t.retryResets===!0&&$n(N);if(p===a-1||!ye)throw N;await new Promise(V=>setTimeout(V,l*2**p))}throw c}m(Zn,"withDbRetry");var bt=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 er(){let e=Number(process.env.PG_QUERY_DEADLINE_MS);return Number.isFinite(e)&&e>=0?e:2e4}m(er,"queryDeadlineMs");function Yi(e,t){let a,l=new Promise((c,p)=>{a=setTimeout(()=>{Vn(),p(new bt(t))},t);let N=a;typeof N.unref=="function"&&N.unref()});return Promise.race([e,l]).finally(()=>clearTimeout(a))}m(Yi,"raceWithDeadline");var tr=new Set(["select","selectDistinct","selectDistinctOn","insert","update","delete","execute","with","$count","refreshMaterializedView"]),or=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,p,N){if(p==="then"){let V=Reflect.get(c,p,N);return typeof V!="function"?V:(sr,ir)=>{let ar=l?_o:mo,dr=l?fo:po;ar();let go=Zn(()=>new Promise((ur,lr)=>V.call(c,ur,lr)),{retryResets:t});return(a>0?Yi(go,a):go).finally(dr).then(sr,ir)}}let ye=Reflect.get(c,p,N);return typeof ye=="function"?(...V)=>No(ye.apply(c,V),t,a,l):ye}})}m(No,"wrapBuilder");function nr(e,t=!1){let a=t?_o:mo,l=t?fo:po;a();try{return Promise.resolve(e()).finally(l)}catch(c){throw l(),c}}m(nr,"gaugeTransaction");var rr=new Proxy({},{get(e,t){let a=Qn(),l=a[t];if(typeof t=="string"&&tr.has(t)&&typeof l=="function"){let c=or.has(t),p=er();return(...N)=>No(l.apply(a,N),c,p)}return t==="transaction"&&typeof l=="function"?(...c)=>nr(()=>l.apply(a,c)):l}}),Qi=new Proxy({},{get(e,t){let a=Wn(),l=a[t];if(typeof t=="string"&&tr.has(t)&&typeof l=="function"){let c=or.has(t);return(...p)=>No(l.apply(a,p),c,0,!0)}return t==="transaction"&&typeof l=="function"?(...c)=>nr(()=>l.apply(a,c),!0):l}});export{o as a,_ as b,d as c,re as d,v as e,Eo as f,So as g,Ko as h,Po as i,Qn as j,Fi as k};
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{a as R}from"./chunk-5RBLIVBF.js";import{b as B}from"./chunk-N7TGRFVZ.js";import{a as v,
|
|
1
|
+
import{a as R}from"./chunk-5RBLIVBF.js";import{b as B}from"./chunk-N7TGRFVZ.js";import{a as v,g as d,h as n,i as m,j as U}from"./chunk-F22YGOSL.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,4 +1,4 @@
|
|
|
1
|
-
import{f as v}from"./chunk-RTWRHIKY.js";import{a as I,c as i,d as r,e as a,
|
|
1
|
+
import{f as v}from"./chunk-RTWRHIKY.js";import{a as I,c as i,d as r,e as a,j as M}from"./chunk-F22YGOSL.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,4 +1,4 @@
|
|
|
1
|
-
import{a as p}from"./chunk-
|
|
1
|
+
import{a as p}from"./chunk-QH7VY5HJ.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
|
|
@@ -0,0 +1 @@
|
|
|
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};
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import{a as u}from"./chunk-
|
|
1
|
+
import{a as u}from"./chunk-QH7VY5HJ.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 $}from"./chunk-
|
|
1
|
+
import{a as $}from"./chunk-PTPDOYWP.js";import{a as y}from"./chunk-3C373UMW.js";import{a as w}from"./chunk-QH7VY5HJ.js";import{e as h,f}from"./chunk-H2ORWIEY.js";import{a as v}from"./chunk-ZLLER3HP.js";async function I(t,r,u){let{conversationId:a,messageId:d,messageContent:c}=t,n=await h(`/api/eval-targets/${r}`),o=await h(`/api/eval-targets/${r}/evals`),e=await h(`/api/eval-conversations/${a}/messages`),s=e.findIndex(l=>l.id===d);if(s>=0&&e.slice(s+1).some(p=>p.role==="assistant"&&(p.type==="results"||p.type==="proposal"||p.type==="generated"||p.type==="text"))){u(`Message ${d} already processed \u2014 skipping (idempotency guard)`);return}let i=v(async(l,p,m)=>{await f(`/api/eval-conversations/${a}/messages/assistant`,{content:l,type:p,data:m})},"postMessage"),g=await C(n,o,e,c,u);u(`Action: ${g.action}`);try{switch(g.action){case"run_evals":await x(n,o,a,i,u);break;case"generate_cases":await _(n,r,a,i,u);break;case"analyze_results":case"propose_changes":await k(n,o,e,c,a,i,u);break;case"respond":await i(g.response,"text");break}}catch(l){let p=l instanceof Error?l.message:String(l);throw await i(`Something went wrong: ${p}`,"text").catch(()=>{}),l}}v(I,"processConversationJob");async function C(t,r,u,a,d){let c=u.slice(-10).map(e=>`${e.role}: ${e.content.slice(0,200)}`).join(`
|
|
2
2
|
`),n=`You are an eval assistant. Decide what action to take based on the user's message.
|
|
3
3
|
|
|
4
4
|
## Current State
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{e as u,f as t,j as x}from"./chunk-F22YGOSL.js";import{a as E}from"./chunk-3C373UMW.js";import{a as P}from"./chunk-QH7VY5HJ.js";import{a as f}from"./chunk-ZLLER3HP.js";import{eq as s}from"drizzle-orm";import{buildControlledVerdict as M}from"@rulemetric/effectiveness";var A=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[v,D]=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:A(v),withoutScore:A(D),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=M(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};
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import{a as u}from"./chunk-
|
|
1
|
+
import{a as u}from"./chunk-QH7VY5HJ.js";import{a as l}from"./chunk-ZLLER3HP.js";var y='Warning: trigger "accuracy" is heuristic \u2014 the skill content is always injected during execution, so scores measure detectable influence on the output, not real description-gated triggering.',w=`You are determining whether an AI assistant's response shows evidence of using a specific skill/instruction.
|
|
2
2
|
|
|
3
3
|
You will receive:
|
|
4
4
|
1. The skill name and description
|
|
@@ -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,
|
|
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-F22YGOSL.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{f as d}from"./chunk-RTWRHIKY.js";import{c as e,d as o,
|
|
1
|
+
import{f as d}from"./chunk-RTWRHIKY.js";import{c as e,d as o,j as y}from"./chunk-F22YGOSL.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,3 +1,3 @@
|
|
|
1
|
-
import{e as N}from"../../chunk-
|
|
1
|
+
import{e as N}from"../../chunk-5JNNKZD3.js";import"../../chunk-TIOKY2IA.js";import"../../chunk-6D7PUPHT.js";import"../../chunk-MUURX7WZ.js";import"../../chunk-QFVGUZDO.js";import"../../chunk-W2MOTOQE.js";import"../../chunk-VR7SOYOJ.js";import"../../chunk-WACGXJWJ.js";import"../../chunk-6QKI756T.js";import"../../chunk-RSKQRVPJ.js";import"../../chunk-WIMBOAMV.js";import"../../chunk-KAF3CYRW.js";import"../../chunk-UF6US7VU.js";import"../../chunk-DPFNJZUO.js";import"../../chunk-LGXRZWHG.js";import"../../chunk-RTWRHIKY.js";import"../../chunk-GNHJ3FEO.js";import"../../chunk-5RBLIVBF.js";import"../../chunk-ZL4MZMUK.js";import"../../chunk-N7TGRFVZ.js";import{k as f}from"../../chunk-F22YGOSL.js";import"../../chunk-2HWXJBL3.js";import"../../chunk-QUUN6A7E.js";import"../../chunk-6V4WM73L.js";import"../../chunk-T4Z53J7B.js";import"../../chunk-TDD7IOV2.js";import"../../chunk-MODXEGCU.js";import"../../chunk-7DFNBRLY.js";import"../../chunk-N7ODX6PO.js";import"../../chunk-67QCYUJU.js";import"../../chunk-PTPDOYWP.js";import"../../chunk-3C373UMW.js";import"../../chunk-QH7VY5HJ.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,4 +1,4 @@
|
|
|
1
|
-
import{a as i}from"../../chunk-
|
|
1
|
+
import{a as i}from"../../chunk-QH7VY5HJ.js";import{a as u}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 a}from"../../chunk-H2ORWIEY.js";import"../../chunk-O6C2UGBY.js";import{a as p}from"../../chunk-ZLLER3HP.js";import{Args as c,Flags as v}from"@oclif/core";var m=class d extends u{static{p(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:c.string({description:"First eval target ID",required:!0}),targetB:c.string({description:"Second eval target ID",required:!0})};static flags={model:v.string({description:"Model for execution and comparison"}),timeout:v.integer({description:"Timeout per eval in ms",default:12e4})};async run(){let{args:s,flags:e}=await this.parse(d);this.requireAuth();let[o,n]=await Promise.all([a(`/api/eval-targets/${s.targetA}`),a(`/api/eval-targets/${s.targetB}`)]),l=await a(`/api/eval-targets/${s.targetA}/evals`);l.length===0&&this.error("No evals found for target A. Create some first."),this.log(`Comparing "${o.name}" v${o.version} vs "${n.name}" v${n.version}`),this.log(`Running ${l.length} eval(s)...
|
|
2
2
|
`);let r=Math.random()>.5,h=r?n.content:o.content,f=r?o.content:n.content,A=r?n.name:o.name,w=r?o.name:n.name,g=[];for(let t of l){this.log(`[${t.name}] Running A...`);let b=await i({prompt:t.prompt,targetContent:h,timeout:e.timeout,model:e.model});this.log(`[${t.name}] Running B...`);let E=await i({prompt:t.prompt,targetContent:f,timeout:e.timeout,model:e.model});g.push({evalName:t.name,outputA:b.output,outputB:E.output})}this.log(`
|
|
3
3
|
Running blind comparison...`);let B=g.map(t=>`
|
|
4
4
|
## Eval: ${t.evalName}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import{a as S,b as P,c as R}from"../../chunk-
|
|
1
|
+
import{a as S,b as P,c as R}from"../../chunk-W2MZ4XZ6.js";import{a as b}from"../../chunk-QH7VY5HJ.js";import{a as O}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 N}from"../../chunk-ZLLER3HP.js";import{Args as C,Flags as T}from"@oclif/core";var A=process.env.RULEMETRIC_WEB_URL??"https://rulemetric.com",k=30*6e4,I=class M extends O{static{N(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:C.string({description:"Eval target ID",required:!0})};static flags={"max-iterations":T.integer({description:"Maximum optimization iterations",default:5}),model:T.string({description:"Model for trigger testing and improvement"}),queries:T.integer({description:"Number of trigger queries to generate",default:20}),"runs-per-query":T.integer({description:"Runs per query for reliability",default:3}),"poll-interval":T.integer({description:"Ms between approval polls",default:5e3}),timeout:T.integer({description:"Timeout per eval in ms",default:12e4})};async run(){let{args:i,flags:t}=await this.parse(M);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(S),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=`${A}/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 u=Date.now(),d=!1;for(;!d;){Date.now()-u>k&&this.error(`Timed out after ${k/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((c,p)=>p).sort(()=>Math.random()-.5),o=Math.ceil(n.length*.6),s=n.slice(0,o),x=n.slice(o);await w(`/api/trigger-evals/${a.id}`,{trainIndices:s,testIndices:x});let D=s.map(c=>r[c]),_=x.map(c=>r[c]);this.log(`
|
|
4
4
|
Split: ${D.length} train, ${_.length} test`);let m=e.description,v=m,$=0;for(let c=1;c<=t["max-iterations"];c++){this.log(`
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import{a as A}from"../../chunk-
|
|
1
|
+
import{a as A}from"../../chunk-PTPDOYWP.js";import{a as k}from"../../chunk-3C373UMW.js";import{a as z}from"../../chunk-QH7VY5HJ.js";import{a as I}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 m,g as R}from"../../chunk-H2ORWIEY.js";import"../../chunk-O6C2UGBY.js";import{a as b}from"../../chunk-ZLLER3HP.js";import{createInterface as C}from"node:readline/promises";import{Args as P,Flags as p}from"@oclif/core";var w=class N extends I{static{b(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:P.string({description:"Eval target ID",required:!0})};static flags={auto:p.boolean({description:"Skip interactive review, apply suggestions automatically",default:!1}),"max-iterations":p.integer({description:"Maximum optimization iterations",default:5}),threshold:p.string({description:"Stop if pass rate reaches this threshold (0-1)",default:"0.95"}),model:p.string({description:"Model for eval execution"}),"analyzer-model":p.string({description:"Model for analysis/suggestions"}),timeout:p.integer({description:"Timeout per eval in ms",default:12e4})};async run(){let{args:a,flags:e}=await this.parse(N);this.requireAuth();let t=await y(`/api/eval-targets/${a.targetId}`),i=await y(`/api/eval-targets/${a.targetId}/evals`);i.length===0&&this.error("No evals found. Create some first with `rulemetric evals create`.");let s=[...i].sort(()=>Math.random()-.5),g=Math.ceil(s.length*.6),u=s.slice(0,g),v=s.slice(g);this.log(`Optimizing "${t.name}" v${t.version}`),this.log(`Evals: ${u.length} train, ${v.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.version,f=0,x=0;for(let r=1;r<=e["max-iterations"];r++){this.log(`
|
|
2
2
|
=== Iteration ${r} ===`),this.log("Running train evals...");let T=await this.runEvalsOnTarget(t,u,e),l=this.computePassRate(T);if(this.log(`Train pass rate: ${(l*100).toFixed(1)}%`),l>=h){this.log(`Train score ${(l*100).toFixed(1)}% >= threshold ${(h*100).toFixed(0)}%. Stopping.`);let o=await this.runEvalsOnTarget(t,v,e),E=this.computePassRate(o);this.log(`Final test score: ${(E*100).toFixed(1)}%`),await m("/api/optimization-runs",{evalTargetId:t.id,type:"content",iteration:r,inputVersion:t.version,trainScore:l,testScore:E,analysis:{reason:"threshold_reached"},status:"completed"});break}this.log("Analyzing results...");let S=T.map(o=>({evalName:o.evalName,prompt:o.prompt,expectations:o.expectations,grading:o.grading})),n=await A({content:t.content,evalResults:S,model:e["analyzer-model"]??e.model,timeout:e.timeout});this.log(`
|
|
3
3
|
Assessment: ${n.overallAssessment}`),this.log(`Suggestions: ${n.suggestions.length}`);for(let o of n.suggestions)this.log(` - [${o.section}] ${o.reasoning}`);if(n.proposedContent===t.content){this.log("No changes proposed. Stopping."),await m("/api/optimization-runs",{evalTargetId:t.id,type:"content",iteration:r,inputVersion:t.version,trainScore:l,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:r,inputVersion:t.version,trainScore:l,analysis:{reason:"user_declined",suggestions:n.suggestions},status:"completed"});break}let c=await R(`/api/eval-targets/${t.id}`,{content:n.proposedContent});this.log(`Created v${c.version}`),this.log("Running test evals...");let F=await this.runEvalsOnTarget(c,v,e),d=this.computePassRate(F);if(this.log(`Test pass rate: ${(d*100).toFixed(1)}%`),await m("/api/optimization-runs",{evalTargetId:t.id,type:"content",iteration:r,inputVersion:t.version,outputVersion:c.version,trainScore:l,testScore:d,analysis:{suggestions:n.suggestions,overallAssessment:n.overallAssessment},status:"completed"}),d>f)f=d,$=c.version,x=0;else if(x++,x>=2){this.log("No improvement for 2 consecutive iterations. Stopping.");break}t=c}this.log(`
|
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
import{a as w}from"../../chunk-
|
|
1
|
+
import{a as w}from"../../chunk-3C373UMW.js";import{a as _}from"../../chunk-QH7VY5HJ.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-5JNNKZD3.js";import"../chunk-TIOKY2IA.js";import"../chunk-6D7PUPHT.js";import"../chunk-MUURX7WZ.js";import"../chunk-QFVGUZDO.js";import"../chunk-W2MOTOQE.js";import"../chunk-VR7SOYOJ.js";import"../chunk-WACGXJWJ.js";import"../chunk-6QKI756T.js";import"../chunk-RSKQRVPJ.js";import"../chunk-WIMBOAMV.js";import"../chunk-KAF3CYRW.js";import"../chunk-UF6US7VU.js";import"../chunk-DPFNJZUO.js";import"../chunk-LGXRZWHG.js";import"../chunk-RTWRHIKY.js";import"../chunk-GNHJ3FEO.js";import"../chunk-5RBLIVBF.js";import"../chunk-ZL4MZMUK.js";import"../chunk-N7TGRFVZ.js";import"../chunk-F22YGOSL.js";import"../chunk-2HWXJBL3.js";import"../chunk-QUUN6A7E.js";import"../chunk-6V4WM73L.js";import"../chunk-T4Z53J7B.js";import"../chunk-TDD7IOV2.js";import"../chunk-MODXEGCU.js";import"../chunk-7DFNBRLY.js";import"../chunk-N7ODX6PO.js";import"../chunk-67QCYUJU.js";import"../chunk-PTPDOYWP.js";import"../chunk-3C373UMW.js";import"../chunk-QH7VY5HJ.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-PTPDOYWP.js";import"../chunk-QH7VY5HJ.js";import"../chunk-ZLLER3HP.js";export{a as analyzeEvalResults};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{a}from"../chunk-
|
|
1
|
+
import{a}from"../chunk-T4Z53J7B.js";import"../chunk-PTPDOYWP.js";import"../chunk-3C373UMW.js";import"../chunk-QH7VY5HJ.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}from"../chunk-QH7VY5HJ.js";import"../chunk-ZLLER3HP.js";export{a as executeEval};
|
package/dist/lib/eval-grader.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
import{a}from"../chunk-
|
|
1
|
+
import{a}from"../chunk-3C373UMW.js";import"../chunk-QH7VY5HJ.js";import"../chunk-ZLLER3HP.js";export{a as gradeEvalOutput};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{a}from"../chunk-
|
|
1
|
+
import{a}from"../chunk-QUUN6A7E.js";import"../chunk-QH7VY5HJ.js";import"../chunk-ZLLER3HP.js";export{a as judgeEvalQuality};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{a,b,c}from"../chunk-
|
|
1
|
+
import{a,b,c}from"../chunk-W2MZ4XZ6.js";import"../chunk-QH7VY5HJ.js";import"../chunk-ZLLER3HP.js";export{a as TRIGGER_TEST_VALIDITY_WARNING,c as computeTriggerScore,b as testTrigger};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{a,b}from"../../chunk-
|
|
1
|
+
import{a,b}from"../../chunk-LGXRZWHG.js";import"../../chunk-RTWRHIKY.js";import"../../chunk-F22YGOSL.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-GNHJ3FEO.js";import"../../chunk-5RBLIVBF.js";import"../../chunk-N7TGRFVZ.js";import"../../chunk-F22YGOSL.js";import"../../chunk-ZLLER3HP.js";export{a as processAnnouncement};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{a}from"../../chunk-
|
|
1
|
+
import{a}from"../../chunk-BT57WICW.js";import"../../chunk-ZL4MZMUK.js";import"../../chunk-N7TGRFVZ.js";import"../../chunk-F22YGOSL.js";import"../../chunk-ZLLER3HP.js";export{a as processChangelog};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{a}from"../../chunk-
|
|
1
|
+
import{a}from"../../chunk-2HWXJBL3.js";import"../../chunk-T4Z53J7B.js";import"../../chunk-PTPDOYWP.js";import"../../chunk-3C373UMW.js";import"../../chunk-QH7VY5HJ.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-6D7PUPHT.js";import"../../chunk-5RBLIVBF.js";import"../../chunk-QUUN6A7E.js";import"../../chunk-6V4WM73L.js";import"../../chunk-3C373UMW.js";import"../../chunk-QH7VY5HJ.js";import"../../chunk-H2ORWIEY.js";import"../../chunk-O6C2UGBY.js";import"../../chunk-ZLLER3HP.js";export{a as processEval};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{a}from"../../chunk-VR7SOYOJ.js";import"../../chunk-F22YGOSL.js";import"../../chunk-3C373UMW.js";import"../../chunk-QH7VY5HJ.js";import"../../chunk-ZLLER3HP.js";export{a as processMemoryAb};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{a}from"../../chunk-
|
|
1
|
+
import{a}from"../../chunk-WACGXJWJ.js";import"../../chunk-6QKI756T.js";import"../../chunk-5RBLIVBF.js";import"../../chunk-F22YGOSL.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-WIMBOAMV.js";import"../../chunk-RTWRHIKY.js";import"../../chunk-F22YGOSL.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-BT57WICW.js";import{a as u}from"../chunk-UF6US7VU.js";import{a as g}from"../chunk-DPFNJZUO.js";import"../chunk-RTWRHIKY.js";import"../chunk-ZL4MZMUK.js";import"../chunk-N7TGRFVZ.js";import"../chunk-F22YGOSL.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.11",
|
|
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/hooks": "0.7.11",
|
|
78
|
+
"@rulemetric/proxy": "0.7.11",
|
|
79
|
+
"@rulemetric/skills-registry": "0.7.11"
|
|
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": {
|
|
@@ -95,13 +95,13 @@
|
|
|
95
95
|
"typescript": "^5.9.0",
|
|
96
96
|
"vitest": "^3.2.0",
|
|
97
97
|
"@rulemetric/api": "0.0.1",
|
|
98
|
-
"@rulemetric/core": "0.0.1",
|
|
99
98
|
"@rulemetric/db": "0.0.1",
|
|
100
99
|
"@rulemetric/effectiveness": "0.0.1",
|
|
101
100
|
"@rulemetric/email": "0.0.1",
|
|
102
101
|
"@rulemetric/session": "0.2.1",
|
|
102
|
+
"@rulemetric/telemetry": "0.0.1",
|
|
103
103
|
"@rulemetric/typescript-config": "0.0.0",
|
|
104
|
-
"@rulemetric/
|
|
104
|
+
"@rulemetric/core": "0.0.1"
|
|
105
105
|
},
|
|
106
106
|
"scripts": {
|
|
107
107
|
"build": "node scripts/build.mjs",
|
package/dist/chunk-DIUZLGZW.js
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{a as m,c as sr}from"./chunk-ZLLER3HP.js";import{boolean as No,pgTable as ir,text as Je,timestamp as bt,uuid as vo}from"drizzle-orm/pg-core";import{pgTable as Ge,text as Z,timestamp as ye,jsonb as xo,uuid as F,primaryKey as go}from"drizzle-orm/pg-core";var u=Ge("organizations",{id:F("id").primaryKey().defaultRandom(),name:Z("name").unique().notNull(),slug:Z("slug").unique().notNull(),metadata:xo("metadata"),createdAt:ye("created_at",{withTimezone:!0}).defaultNow(),updatedAt:ye("updated_at",{withTimezone:!0}).defaultNow()}),x=Ge("teams",{id:F("id").primaryKey().defaultRandom(),orgId:F("org_id").references(()=>u.id,{onDelete:"cascade"}),name:Z("name").notNull(),slug:Z("slug").notNull(),metadata:xo("metadata"),createdAt:ye("created_at",{withTimezone:!0}).defaultNow()}),ee=Ge("user_organizations",{userId:F("user_id").notNull(),orgId:F("org_id").references(()=>u.id,{onDelete:"cascade"}).notNull(),role:Z("role").notNull().default("member"),createdAt:ye("created_at",{withTimezone:!0}).defaultNow()},e=>[go({columns:[e.userId,e.orgId]})]),te=Ge("user_teams",{userId:F("user_id").notNull(),teamId:F("team_id").references(()=>x.id,{onDelete:"cascade"}).notNull(),role:Z("role").notNull().default("member"),createdAt:ye("created_at",{withTimezone:!0}).defaultNow()},e=>[go({columns:[e.userId,e.teamId]})]);var o=ir("profiles",{id:vo("id").primaryKey(),email:Je("email"),displayName:Je("display_name"),activeOrgId:vo("active_org_id").references(()=>u.id,{onDelete:"set null"}),isSuperadmin:No("is_superadmin").notNull().default(!1),claudeCodePlan:Je("claude_code_plan"),planSource:Je("plan_source").notNull().default("detected"),setupCompletedAt:bt("setup_completed_at",{withTimezone:!0}),liveSendSkipped:No("live_send_skipped").notNull().default(!1),createdAt:bt("created_at",{withTimezone:!0}).defaultNow(),updatedAt:bt("updated_at",{withTimezone:!0}).defaultNow()});import{pgTable as cr,text as ne,timestamp as Et,jsonb as wo,uuid as We,integer as mr,boolean as pr,index as St}from"drizzle-orm/pg-core";import{boolean as dr,jsonb as ur,pgTable as kt,primaryKey as yo,text as G,timestamp as we,uniqueIndex as Rt,uuid as J}from"drizzle-orm/pg-core";import{sql as lr}from"drizzle-orm";import{pgTable as ho,text as f,timestamp as Te,jsonb as Qe,uuid as P,integer as jt,boolean as ar,uniqueIndex as Io,index as Ye}from"drizzle-orm/pg-core";var n=ho("instructions",{id:P("id").primaryKey().defaultRandom(),name:f("name").notNull(),description:f("description").notNull(),type:f("type").notNull().default("instruction"),scope:f("scope").notNull(),scopeRef:P("scope_ref"),version:f("version").notNull(),content:f("content").notNull(),frontmatter:Qe("frontmatter").notNull(),slots:Qe("slots"),tags:f("tags").array(),compatibility:f("compatibility").array(),createdBy:P("created_by"),createdAt:Te("created_at",{withTimezone:!0}).defaultNow(),updatedAt:Te("updated_at",{withTimezone:!0}).defaultNow(),archived:ar("archived").default(!1),archivedAt:Te("archived_at",{withTimezone:!0}),archivedBy:P("archived_by"),forkedFromId:P("forked_from_id").references(()=>n.id,{onDelete:"set null"}),upstreamVersion:f("upstream_version"),badge:f("badge"),contentHash:f("content_hash"),contextIdentity:f("context_identity"),scanScore:jt("scan_score"),scanFindings:Qe("scan_findings"),popularityScore:jt("popularity_score"),sourceUpdatedAt:Te("source_updated_at",{withTimezone:!0})},e=>[Io("instructions_name_scope_ref_idx").on(e.name,e.scope,e.scopeRef),Ye("idx_instructions_scope").on(e.scope,e.scopeRef),Ye("idx_instructions_created_by").on(e.createdBy),Ye("idx_instructions_context_identity").on(e.createdBy,e.contextIdentity),Ye("idx_instructions_public_recency").on(e.scope,e.sourceUpdatedAt.desc())]),oe=ho("instruction_versions",{id:P("id").primaryKey().defaultRandom(),instructionId:P("instruction_id").references(()=>n.id,{onDelete:"cascade"}),versionNumber:jt("version_number").notNull(),content:f("content").notNull(),frontmatter:Qe("frontmatter").notNull(),changeSummary:f("change_summary"),createdBy:P("created_by"),createdAt:Te("created_at",{withTimezone:!0}).defaultNow()},e=>[Io("instruction_versions_instruction_version_idx").on(e.instructionId,e.versionNumber)]);var r=kt("projects",{id:J("id").primaryKey().defaultRandom(),orgId:J("org_id").references(()=>u.id,{onDelete:"cascade"}),name:G("name").notNull(),description:G("description"),githubRepo:G("github_repo"),gitRemoteUrl:G("git_remote_url"),gitRootCommit:G("git_root_commit"),gitRemoteAliases:G("git_remote_aliases").array().notNull().default([]),metadata:ur("metadata"),createdBy:J("created_by"),createdAt:we("created_at",{withTimezone:!0}).defaultNow(),updatedAt:we("updated_at",{withTimezone:!0}).defaultNow()},e=>[Rt("projects_org_name_idx").on(e.orgId,e.name),Rt("projects_git_remote_url_unique").on(e.gitRemoteUrl).where(lr`${e.gitRemoteUrl} IS NOT NULL`)]),O=kt("project_instructions",{projectId:J("project_id").references(()=>r.id,{onDelete:"cascade"}).notNull(),instructionId:J("instruction_id").references(()=>n.id,{onDelete:"cascade"}).notNull(),addedAt:we("added_at",{withTimezone:!0}).defaultNow(),addedBy:J("added_by")},e=>[yo({columns:[e.projectId,e.instructionId]})]),To=kt("project_checkouts",{projectId:J("project_id").references(()=>r.id,{onDelete:"cascade"}).notNull(),path:G("path").notNull(),isWorktree:dr("is_worktree").notNull().default(!1),firstSeen:we("first_seen",{withTimezone:!0}).notNull().defaultNow(),lastSeen:we("last_seen",{withTimezone:!0}).notNull().defaultNow()},e=>[yo({columns:[e.projectId,e.path]}),Rt("project_checkouts_path_unique").on(e.path)]);var _=cr("agent_runs",{id:We("id").primaryKey().defaultRandom(),userId:We("user_id").notNull().references(()=>o.id,{onDelete:"cascade"}),orgId:We("org_id").references(()=>u.id,{onDelete:"set null"}),projectId:We("project_id").references(()=>r.id,{onDelete:"set null"}),projectPath:ne("project_path"),gitRemote:ne("git_remote"),baseBranch:ne("base_branch"),title:ne("title"),prompt:ne("prompt"),toolSpec:wo("tool_spec").notNull().default([]),autoWorktree:pr("auto_worktree").notNull().default(!0),status:ne("status").notNull().default("pending"),sessionCount:mr("session_count").notNull().default(0),metadata:wo("metadata").notNull().default({}),createdAt:Et("created_at",{withTimezone:!0}).notNull().defaultNow(),updatedAt:Et("updated_at",{withTimezone:!0}).notNull().defaultNow(),completedAt:Et("completed_at",{withTimezone:!0})},e=>[St("idx_agent_runs_user").on(e.userId),St("idx_agent_runs_org_created").on(e.orgId,e.createdAt),St("idx_agent_runs_project").on(e.projectId)]);import{pgTable as Kt,text as N,timestamp as Ae,jsonb as Y,uuid as z,integer as Xe,uniqueIndex as Ao,index as I}from"drizzle-orm/pg-core";var d=Kt("sessions",{id:z("id").primaryKey().defaultRandom(),userId:z("user_id").notNull().references(()=>o.id,{onDelete:"cascade"}),externalSessionId:N("external_session_id"),projectId:z("project_id").references(()=>r.id,{onDelete:"set null"}),orgId:z("org_id").references(()=>u.id,{onDelete:"set null"}),tool:N("tool").notNull(),projectPath:N("project_path"),gitBranch:N("git_branch"),startedAt:Ae("started_at",{withTimezone:!0}).notNull(),endedAt:Ae("ended_at",{withTimezone:!0}),eventCount:Xe("event_count").default(0),tokenUsage:Y("token_usage"),analysis:Y("analysis"),analyzedAt:Ae("analyzed_at",{withTimezone:!0}),analyzedEventCount:Xe("analyzed_event_count"),analyzedTurnCount:Xe("analyzed_turn_count"),metadata:Y("metadata").default({}),origin:N("origin").notNull().default("unknown"),runId:z("run_id").references(()=>_.id,{onDelete:"set null"}),model:N("model"),harnessVersion:N("harness_version"),createdAt:Ae("created_at",{withTimezone:!0}).defaultNow()},e=>[I("idx_sessions_user").on(e.userId),I("idx_sessions_tool").on(e.tool),I("idx_sessions_started_at").on(e.startedAt),I("idx_sessions_project").on(e.projectId),I("idx_sessions_org_started_at").on(e.orgId,e.startedAt),I("idx_sessions_run").on(e.runId),Ao("idx_sessions_user_external").on(e.userId,e.externalSessionId)]),re=Kt("session_events",{id:z("id").primaryKey().defaultRandom(),sessionId:z("session_id").notNull().references(()=>d.id,{onDelete:"cascade"}),sequence:Xe("sequence").notNull(),eventType:N("event_type").notNull(),content:N("content"),toolName:N("tool_name"),toolInput:Y("tool_input"),toolOutput:Y("tool_output"),tokenUsage:Y("token_usage"),model:N("model"),timestamp:Ae("timestamp",{withTimezone:!0}).notNull(),metadata:Y("metadata").default({})},e=>[Ao("session_events_session_sequence_idx").on(e.sessionId,e.sequence),I("idx_session_events_session_id").on(e.sessionId),I("idx_session_events_event_type").on(e.eventType),I("idx_session_events_model").on(e.model)]),C=Kt("session_instructions",{sessionId:z("session_id").notNull().references(()=>d.id,{onDelete:"cascade"}),instructionId:z("instruction_id").notNull().references(()=>n.id,{onDelete:"cascade"}),linkMethod:N("link_method").notNull()},e=>[I("idx_session_instructions_instruction_id").on(e.instructionId)]);import{pgTable as _r,text as ze,timestamp as zo,uuid as De,integer as fr,index as $e}from"drizzle-orm/pg-core";var y=_r("memories",{id:De("id").primaryKey().defaultRandom(),userId:De("user_id").notNull().references(()=>o.id,{onDelete:"cascade"}),orgId:De("org_id"),projectId:De("project_id").references(()=>r.id,{onDelete:"set null"}),version:fr("version").notNull().default(1),parentId:De("parent_id").references(()=>y.id,{onDelete:"set null"}),kind:ze("kind").notNull(),title:ze("title").notNull(),body:ze("body").notNull(),source:ze("source").notNull(),status:ze("status").notNull().default("active"),createdAt:zo("created_at",{withTimezone:!0}).notNull().defaultNow(),updatedAt:zo("updated_at",{withTimezone:!0}).notNull().defaultNow()},e=>[$e("idx_memories_user").on(e.userId),$e("idx_memories_project").on(e.projectId),$e("idx_memories_parent").on(e.parentId),$e("idx_memories_user_status").on(e.userId,e.status)]);import{boolean as xr,date as gr,index as Pt,integer as Nr,jsonb as vr,pgTable as Ot,text as v,timestamp as q,uniqueIndex as hr,uuid as se}from"drizzle-orm/pg-core";var Do=Ot("announcements",{id:se("id").primaryKey().defaultRandom(),version:v("version").notNull().unique(),releaseDate:gr("release_date").notNull(),subject:v("subject").notNull(),htmlBody:v("html_body").notNull(),textBody:v("text_body").notNull(),sections:vr("sections").notNull().default({}),status:v("status").notNull().default("draft"),recipientCount:Nr("recipient_count"),sentAt:q("sent_at",{withTimezone:!0}),sentBy:se("sent_by"),error:v("error"),createdAt:q("created_at",{withTimezone:!0}).notNull().defaultNow(),updatedAt:q("updated_at",{withTimezone:!0}).notNull().defaultNow()},e=>[Pt("idx_announcements_status").on(e.status),Pt("idx_announcements_created").on(e.createdAt)]),bo=Ot("announcement_deliveries",{id:se("id").primaryKey().defaultRandom(),announcementId:se("announcement_id").notNull(),userId:se("user_id").notNull(),email:v("email").notNull(),status:v("status").notNull().default("pending"),providerId:v("provider_id"),error:v("error"),sentAt:q("sent_at",{withTimezone:!0}),createdAt:q("created_at",{withTimezone:!0}).notNull().defaultNow()},e=>[hr("uniq_announcement_deliveries_announcement_user").on(e.announcementId,e.userId),Pt("idx_announcement_deliveries_user").on(e.userId,e.createdAt)]),jo=Ot("notification_preferences",{userId:se("user_id").primaryKey(),productAnnouncements:xr("product_announcements").notNull().default(!0),unsubscribeToken:v("unsubscribe_token").notNull().unique(),unsubscribedAt:q("unsubscribed_at",{withTimezone:!0}),createdAt:q("created_at",{withTimezone:!0}).notNull().defaultNow(),updatedAt:q("updated_at",{withTimezone:!0}).notNull().defaultNow()});import{pgTable as Ir,text as Ct,timestamp as Ze,uuid as et,index as Ro}from"drizzle-orm/pg-core";var D=Ir("org_invitations",{id:et("id").primaryKey().defaultRandom(),orgId:et("org_id").notNull().references(()=>u.id,{onDelete:"cascade"}),email:Ct("email").notNull(),role:Ct("role").notNull().default("member"),teamId:et("team_id").references(()=>x.id,{onDelete:"set null"}),invitedBy:et("invited_by").notNull().references(()=>o.id),token:Ct("token").notNull().unique(),expiresAt:Ze("expires_at",{withTimezone:!0}).notNull(),acceptedAt:Ze("accepted_at",{withTimezone:!0}),revokedAt:Ze("revoked_at",{withTimezone:!0}),createdAt:Ze("created_at",{withTimezone:!0}).notNull().defaultNow()},e=>[Ro("idx_org_invitations_token").on(e.token),Ro("idx_org_invitations_org").on(e.orgId)]);import{pgTable as yr,text as Tr,timestamp as wr,jsonb as Ar,uuid as qt,index as ko}from"drizzle-orm/pg-core";var ie=yr("instruction_events",{id:qt("id").primaryKey().defaultRandom(),instructionId:qt("instruction_id").notNull().references(()=>n.id,{onDelete:"cascade"}),eventType:Tr("event_type").notNull(),actorId:qt("actor_id").notNull(),metadata:Ar("metadata"),createdAt:wr("created_at",{withTimezone:!0}).defaultNow()},e=>[ko("idx_instruction_events_instruction").on(e.instructionId),ko("idx_instruction_events_type").on(e.eventType)]);import{pgTable as Eo,text as tt,timestamp as So,uuid as T,integer as Ko,index as ae,unique as zr}from"drizzle-orm/pg-core";var b=Eo("treatment_assignments",{id:T("id").primaryKey().defaultRandom(),userId:T("user_id").notNull().references(()=>o.id,{onDelete:"cascade"}),treatmentType:tt("treatment_type").notNull(),treatmentId:T("treatment_id").notNull(),treatmentVersion:Ko("treatment_version").notNull().default(1),projectId:T("project_id").references(()=>r.id,{onDelete:"set null"}),assignedBy:T("assigned_by").references(()=>o.id,{onDelete:"set null"}),method:tt("method").notNull(),assignedAt:So("assigned_at",{withTimezone:!0}).notNull().defaultNow()},e=>[ae("idx_treatment_assignments_user").on(e.userId),ae("idx_treatment_assignments_treatment").on(e.treatmentType,e.treatmentId),ae("idx_treatment_assignments_project").on(e.projectId)]),j=Eo("treatment_exposures",{id:T("id").primaryKey().defaultRandom(),sessionId:T("session_id").notNull().references(()=>d.id,{onDelete:"cascade"}),userId:T("user_id").notNull().references(()=>o.id,{onDelete:"cascade"}),treatmentType:tt("treatment_type").notNull(),treatmentId:T("treatment_id").notNull(),treatmentVersion:Ko("treatment_version").notNull().default(1),assignmentId:T("assignment_id").references(()=>b.id,{onDelete:"set null"}),method:tt("method").notNull(),exposedAt:So("exposed_at",{withTimezone:!0}).notNull().defaultNow()},e=>[zr("treatment_exposures_unique").on(e.sessionId,e.treatmentType,e.treatmentId,e.treatmentVersion),ae("idx_treatment_exposures_treatment").on(e.treatmentType,e.treatmentId),ae("idx_treatment_exposures_user").on(e.userId),ae("idx_treatment_exposures_session").on(e.sessionId)]);import{pgTable as Dr,text as Mt,timestamp as br,uuid as ot,integer as jr,index as Po,uniqueIndex as Rr}from"drizzle-orm/pg-core";var Oo=Dr("pending_treatment_exposures",{id:ot("id").primaryKey().defaultRandom(),userId:ot("user_id").notNull().references(()=>o.id,{onDelete:"cascade"}),externalSessionId:Mt("external_session_id").notNull(),treatmentType:Mt("treatment_type").notNull(),treatmentId:ot("treatment_id").notNull(),treatmentVersion:jr("treatment_version").notNull().default(1),method:Mt("method").notNull().default("injected"),projectId:ot("project_id").references(()=>r.id,{onDelete:"set null"}),createdAt:br("created_at",{withTimezone:!0}).notNull().defaultNow()},e=>[Rr("pending_treatment_exposures_unique").on(e.externalSessionId,e.treatmentType,e.treatmentId,e.treatmentVersion),Po("idx_pending_treatment_exposures_ext").on(e.externalSessionId),Po("idx_pending_treatment_exposures_user").on(e.userId)]);import{pgTable as kr,text as de,timestamp as Lt,uuid as Bt,jsonb as Er,uniqueIndex as Sr,index as Co}from"drizzle-orm/pg-core";var nt=kr("session_terminal_targets",{id:Bt("id").primaryKey().defaultRandom(),userId:Bt("user_id").notNull().references(()=>o.id,{onDelete:"cascade"}),sessionId:Bt("session_id").references(()=>d.id,{onDelete:"set null"}),externalSessionId:de("external_session_id"),kind:de("kind").notNull(),target:de("target").notNull(),status:de("status").notNull().default("active"),attachCommand:de("attach_command").notNull(),projectPath:de("project_path"),metadata:Er("metadata").notNull().default({}),lastSeenAt:Lt("last_seen_at",{withTimezone:!0}).defaultNow(),createdAt:Lt("created_at",{withTimezone:!0}).defaultNow(),updatedAt:Lt("updated_at",{withTimezone:!0}).defaultNow()},e=>[Sr("idx_session_terminal_targets_user_target").on(e.userId,e.target),Co("idx_session_terminal_targets_session").on(e.sessionId),Co("idx_session_terminal_targets_user_status").on(e.userId,e.status)]);import{boolean as Kr,index as rt,jsonb as qo,pgTable as Pr,text as Q,timestamp as be,uuid as st,integer as Or}from"drizzle-orm/pg-core";var Mo=Pr("session_send_jobs",{id:st("id").primaryKey().defaultRandom(),userId:st("user_id").notNull(),sessionId:st("session_id").notNull().references(()=>d.id,{onDelete:"cascade"}),terminalTargetId:st("terminal_target_id").references(()=>nt.id,{onDelete:"set null"}),target:Q("target").notNull(),message:Q("message").notNull(),submit:Kr("submit").notNull().default(!0),delivery:Q("delivery").notNull().default("live"),status:Q("status").notNull().default("pending"),result:qo("result"),error:Q("error"),attempts:Or("attempts").notNull().default(0),taskKind:Q("task_kind"),payload:qo("payload"),claimedBy:Q("claimed_by"),claimedAt:be("claimed_at",{withTimezone:!0}),leaseExpiresAt:be("lease_expires_at",{withTimezone:!0}),createdAt:be("created_at",{withTimezone:!0}).defaultNow(),updatedAt:be("updated_at",{withTimezone:!0}).defaultNow(),completedAt:be("completed_at",{withTimezone:!0})},e=>[rt("idx_session_send_jobs_user").on(e.userId),rt("idx_session_send_jobs_session").on(e.sessionId),rt("idx_session_send_jobs_status").on(e.status),rt("idx_session_send_jobs_pending").on(e.userId,e.status)]);import{pgTable as Bo,text as W,timestamp as it,jsonb as Uo,uuid as M,integer as Cr,boolean as qr,uniqueIndex as Mr,index as Lo,primaryKey as Lr}from"drizzle-orm/pg-core";var h=Bo("packs",{id:M("id").primaryKey().defaultRandom(),name:W("name").notNull(),description:W("description").notNull(),scope:W("scope").notNull(),scopeRef:M("scope_ref"),version:W("version").notNull().default("1.0.0"),tags:W("tags").array(),badge:W("badge"),metadata:Uo("metadata"),createdBy:M("created_by"),createdAt:it("created_at",{withTimezone:!0}).defaultNow(),updatedAt:it("updated_at",{withTimezone:!0}).defaultNow(),archived:qr("archived").default(!1),archivedAt:it("archived_at",{withTimezone:!0}),archivedBy:M("archived_by"),forkedFromId:M("forked_from_id").references(()=>h.id,{onDelete:"set null"}),upstreamVersion:W("upstream_version")},e=>[Mr("packs_name_scope_ref_idx").on(e.name,e.scope,e.scopeRef),Lo("idx_packs_scope").on(e.scope,e.scopeRef),Lo("idx_packs_created_by").on(e.createdBy)]),L=Bo("pack_instructions",{packId:M("pack_id").references(()=>h.id,{onDelete:"cascade"}).notNull(),instructionId:M("instruction_id").references(()=>n.id,{onDelete:"cascade"}).notNull(),position:Cr("position").notNull().default(0),slotOverrides:Uo("slot_overrides"),addedAt:it("added_at",{withTimezone:!0}).defaultNow(),addedBy:M("added_by")},e=>[Lr({columns:[e.packId,e.instructionId]})]);import{pgTable as Br,text as Ut,timestamp as Ur,jsonb as Hr,uuid as Ht,index as ue}from"drizzle-orm/pg-core";var le=Br("instruction_usage_events",{id:Ht("id").primaryKey().defaultRandom(),instructionId:Ht("instruction_id").references(()=>n.id,{onDelete:"set null"}),userId:Ht("user_id").notNull(),surface:Ut("surface").notNull(),action:Ut("action").notNull(),metadata:Hr("metadata"),traceId:Ut("trace_id"),createdAt:Ur("created_at",{withTimezone:!0}).defaultNow()},e=>[ue("idx_usage_events_instruction").on(e.instructionId),ue("idx_usage_events_user").on(e.userId),ue("idx_usage_events_surface").on(e.surface),ue("idx_usage_events_action").on(e.action),ue("idx_usage_events_created_at").on(e.createdAt),ue("idx_usage_events_user_created").on(e.userId,e.createdAt)]);import{pgTable as Vr,text as at,timestamp as Ho,jsonb as Fr,uuid as Vo,index as Vt}from"drizzle-orm/pg-core";var Fo=Vr("worker_connections",{id:Vo("id").primaryKey().defaultRandom(),userId:Vo("user_id").notNull(),workerType:at("worker_type").notNull().default("mcp"),clientName:at("client_name").notNull(),clientVersion:at("client_version"),workerVersion:at("worker_version"),lastHeartbeat:Ho("last_heartbeat",{withTimezone:!0}).notNull().defaultNow(),connectedAt:Ho("connected_at",{withTimezone:!0}).notNull().defaultNow(),metadata:Fr("metadata")},e=>[Vt("idx_worker_connections_user").on(e.userId),Vt("idx_worker_connections_heartbeat").on(e.userId,e.lastHeartbeat),Vt("idx_worker_connections_type").on(e.userId,e.workerType)]);import{pgTable as Gr,text as dt,timestamp as Jr,jsonb as Yr,uuid as Go,index as Jo}from"drizzle-orm/pg-core";var Yo=Gr("cli_setup_events",{id:Go("id").primaryKey().defaultRandom(),userId:Go("user_id").notNull(),deviceId:dt("device_id").notNull(),event:dt("event").notNull(),cliVersion:dt("cli_version"),os:dt("os"),props:Yr("props").notNull().default({}),createdAt:Jr("created_at",{withTimezone:!0}).notNull().defaultNow()},e=>[Jo("idx_cli_setup_events_user").on(e.userId,e.createdAt),Jo("idx_cli_setup_events_device").on(e.deviceId,e.createdAt)]);import{pgTable as Qr,text as X,integer as Wr,boolean as Xr,timestamp as $r,jsonb as Zr,uuid as es,index as Qo}from"drizzle-orm/pg-core";var Wo=Qr("cli_error_events",{id:es("id").primaryKey().defaultRandom(),deviceId:X("device_id"),event:X("event").notNull(),command:X("command"),statusCode:Wr("status_code"),message:X("message"),cliVersion:X("cli_version"),os:X("os"),nodeVersion:X("node_version"),proxied:Xr("proxied"),props:Zr("props").notNull().default({}),createdAt:$r("created_at",{withTimezone:!0}).notNull().defaultNow()},e=>[Qo("idx_cli_error_events_created").on(e.createdAt),Qo("idx_cli_error_events_device").on(e.deviceId,e.createdAt)]);import{pgTable as ut,text as R,timestamp as ce,jsonb as w,uuid as A,integer as je,index as k}from"drizzle-orm/pg-core";var s=ut("eval_targets",{id:A("id").primaryKey().defaultRandom(),userId:A("user_id").notNull(),name:R("name").notNull(),type:R("type").notNull(),content:R("content").notNull(),description:R("description").notNull().default(""),metadata:w("metadata").notNull().default({}),version:je("version").notNull().default(1),parentId:A("parent_id").references(()=>s.id,{onDelete:"set null"}),createdAt:ce("created_at",{withTimezone:!0}).defaultNow(),updatedAt:ce("updated_at",{withTimezone:!0}).defaultNow()},e=>[k("eval_targets_name_user_idx").on(e.name,e.userId),k("idx_eval_targets_user").on(e.userId),k("idx_eval_targets_type").on(e.type),k("idx_eval_targets_parent").on(e.parentId)]),E=ut("evals",{id:A("id").primaryKey().defaultRandom(),evalTargetId:A("eval_target_id").notNull().references(()=>s.id,{onDelete:"cascade"}),name:R("name").notNull(),prompt:R("prompt").notNull(),expectedOutput:R("expected_output").notNull().default(""),files:w("files").notNull().default([]),expectations:w("expectations").notNull().default([]),createdAt:ce("created_at",{withTimezone:!0}).defaultNow(),updatedAt:ce("updated_at",{withTimezone:!0}).defaultNow()},e=>[k("idx_evals_target").on(e.evalTargetId)]),B=ut("eval_runs",{id:A("id").primaryKey().defaultRandom(),evalId:A("eval_id").notNull().references(()=>E.id,{onDelete:"cascade"}),evalTargetId:A("eval_target_id").notNull().references(()=>s.id,{onDelete:"cascade"}),evalTargetVersion:je("eval_target_version").notNull(),configuration:R("configuration").notNull(),runNumber:je("run_number").notNull().default(1),iteration:je("iteration").notNull().default(1),status:R("status").notNull().default("completed"),outputs:w("outputs").notNull().default({}),timing:w("timing").notNull().default({}),grading:w("grading").notNull().default({}),comparison:w("comparison"),createdAt:ce("created_at",{withTimezone:!0}).defaultNow()},e=>[k("idx_eval_runs_eval").on(e.evalId),k("idx_eval_runs_target").on(e.evalTargetId),k("idx_eval_runs_iteration").on(e.evalTargetId,e.iteration)]),me=ut("benchmarks",{id:A("id").primaryKey().defaultRandom(),evalTargetId:A("eval_target_id").notNull().references(()=>s.id,{onDelete:"cascade"}),iteration:je("iteration").notNull().default(1),runSummary:w("run_summary").notNull().default({}),notes:w("notes").notNull().default([]),feedback:w("feedback"),createdAt:ce("created_at",{withTimezone:!0}).defaultNow()},e=>[k("idx_benchmarks_target").on(e.evalTargetId)]);import{pgTable as $o,text as Ft,timestamp as Gt,jsonb as Zo,uuid as pe,integer as Re,index as lt,real as Xo}from"drizzle-orm/pg-core";var _e=$o("trigger_evals",{id:pe("id").primaryKey().defaultRandom(),evalTargetId:pe("eval_target_id").notNull().references(()=>s.id,{onDelete:"cascade"}),userId:pe("user_id").notNull(),queries:Zo("queries").notNull().default([]),status:Ft("status").notNull().default("pending_review"),trainIndices:Re("train_indices").array().default([]),testIndices:Re("test_indices").array().default([]),createdAt:Gt("created_at",{withTimezone:!0}).defaultNow(),updatedAt:Gt("updated_at",{withTimezone:!0}).defaultNow()},e=>[lt("idx_trigger_evals_target").on(e.evalTargetId),lt("idx_trigger_evals_user").on(e.userId)]),fe=$o("optimization_runs",{id:pe("id").primaryKey().defaultRandom(),evalTargetId:pe("eval_target_id").notNull().references(()=>s.id,{onDelete:"cascade"}),userId:pe("user_id").notNull(),type:Ft("type").notNull(),iteration:Re("iteration").notNull(),inputVersion:Re("input_version").notNull(),outputVersion:Re("output_version"),trainScore:Xo("train_score"),testScore:Xo("test_score"),analysis:Zo("analysis").notNull().default({}),status:Ft("status").notNull().default("running"),createdAt:Gt("created_at",{withTimezone:!0}).defaultNow()},e=>[lt("idx_optimization_runs_target").on(e.evalTargetId),lt("idx_optimization_runs_user").on(e.userId)]);import{pgTable as ts,text as U,timestamp as os,jsonb as ke,uuid as Jt,integer as Yt,real as ns,index as Ee,uniqueIndex as en}from"drizzle-orm/pg-core";var H=ts("context_snapshots",{id:Jt("id").primaryKey().defaultRandom(),sessionId:Jt("session_id").references(()=>d.id,{onDelete:"cascade"}),userId:Jt("user_id").notNull().references(()=>o.id,{onDelete:"cascade"}),sequence:Yt("sequence").notNull().default(0),provider:U("provider").notNull(),model:U("model").notNull(),systemPrompt:U("system_prompt").notNull(),injectedInstructions:ke("injected_instructions").notNull().default([]),messagesSummary:ke("messages_summary").notNull(),tools:ke("tools").notNull().default([]),systemHash:U("system_hash").notNull(),requestHash:U("request_hash").notNull().default(""),toolsHash:U("tools_hash"),injectedHash:U("injected_hash"),messagesDelta:ke("messages_delta").default([]),messagesDeltaRef:U("messages_delta_ref"),maxTokens:Yt("max_tokens"),temperature:ns("temperature"),estimatedTokens:Yt("estimated_tokens"),capturedAt:os("captured_at",{withTimezone:!0}).notNull().defaultNow(),metadata:ke("metadata").default({})},e=>[Ee("idx_context_snapshots_session").on(e.sessionId),Ee("idx_context_snapshots_user").on(e.userId),Ee("idx_context_snapshots_hash").on(e.systemHash),Ee("idx_context_snapshots_request_hash").on(e.requestHash),en("idx_snapshots_session_request").on(e.sessionId,e.requestHash),en("idx_snapshots_session_sequence").on(e.sessionId,e.sequence),Ee("idx_context_snapshots_user_session_captured").on(e.userId,e.sessionId,e.capturedAt.desc())]);import{pgTable as rs,text as tn,timestamp as ss,jsonb as is,integer as as,index as ds}from"drizzle-orm/pg-core";var on=rs("content_blobs",{hash:tn("hash").primaryKey(),contentType:tn("content_type").notNull(),content:is("content").notNull(),sizeBytes:as("size_bytes").notNull().default(0),createdAt:ss("created_at",{withTimezone:!0}).defaultNow()},e=>[ds("idx_content_blobs_type").on(e.contentType)]);import{pgTable as us,text as ct,timestamp as Se,jsonb as mt,uuid as Qt,index as pt,integer as ls}from"drizzle-orm/pg-core";var xe=us("eval_jobs",{id:Qt("id").primaryKey().defaultRandom(),userId:Qt("user_id").notNull(),evalTargetId:Qt("eval_target_id").notNull().references(()=>s.id,{onDelete:"cascade"}),status:ct("status").notNull().default("pending"),config:mt("config").notNull().default({}),progress:mt("progress").notNull().default({}),result:mt("result"),error:ct("error"),attempts:ls("attempts").notNull().default(0),taskKind:ct("task_kind"),payload:mt("payload"),claimedBy:ct("claimed_by"),claimedAt:Se("claimed_at",{withTimezone:!0}),leaseExpiresAt:Se("lease_expires_at",{withTimezone:!0}),createdAt:Se("created_at",{withTimezone:!0}).defaultNow(),updatedAt:Se("updated_at",{withTimezone:!0}).defaultNow(),completedAt:Se("completed_at",{withTimezone:!0})},e=>[pt("idx_eval_jobs_user").on(e.userId),pt("idx_eval_jobs_target").on(e.evalTargetId),pt("idx_eval_jobs_status").on(e.status),pt("idx_eval_jobs_pending").on(e.userId,e.status)]);import{pgTable as cs,text as Ke,timestamp as Pe,jsonb as nn,uuid as rn,integer as ms,index as sn}from"drizzle-orm/pg-core";var an=cs("agent_jobs",{id:rn("id").primaryKey().defaultRandom(),userId:rn("user_id").notNull(),taskKind:Ke("task_kind").notNull(),status:Ke("status").notNull().default("pending"),payload:nn("payload").notNull(),dedupeKey:Ke("dedupe_key"),result:nn("result"),error:Ke("error"),attempts:ms("attempts").notNull().default(0),claimedBy:Ke("claimed_by"),claimedAt:Pe("claimed_at",{withTimezone:!0}),leaseExpiresAt:Pe("lease_expires_at",{withTimezone:!0}),createdAt:Pe("created_at",{withTimezone:!0}).notNull().defaultNow(),updatedAt:Pe("updated_at",{withTimezone:!0}).notNull().defaultNow(),completedAt:Pe("completed_at",{withTimezone:!0})},e=>[sn("idx_agent_jobs_claim").on(e.userId,e.status,e.taskKind,e.createdAt),sn("idx_agent_jobs_dedupe").on(e.userId,e.taskKind,e.dedupeKey)]);import{pgTable as ps,text as Oe,timestamp as Ce,jsonb as _t,uuid as Wt,index as ft,integer as _s}from"drizzle-orm/pg-core";var dn=ps("insights_jobs",{id:Wt("id").primaryKey().defaultRandom(),userId:Wt("user_id").notNull(),status:Oe("status").notNull().default("pending"),projectPath:Oe("project_path"),projectId:Wt("project_id").references(()=>r.id,{onDelete:"set null"}),config:_t("config").notNull().default({}),progress:_t("progress").notNull().default({}),result:_t("result"),error:Oe("error"),attempts:_s("attempts").notNull().default(0),taskKind:Oe("task_kind"),payload:_t("payload"),claimedBy:Oe("claimed_by"),claimedAt:Ce("claimed_at",{withTimezone:!0}),leaseExpiresAt:Ce("lease_expires_at",{withTimezone:!0}),createdAt:Ce("created_at",{withTimezone:!0}).defaultNow(),updatedAt:Ce("updated_at",{withTimezone:!0}).defaultNow(),completedAt:Ce("completed_at",{withTimezone:!0})},e=>[ft("idx_insights_jobs_user").on(e.userId),ft("idx_insights_jobs_status").on(e.status),ft("idx_insights_jobs_pending").on(e.userId,e.status),ft("idx_insights_jobs_project").on(e.projectId)]);import{pgTable as fs,text as Xt,timestamp as xt,uuid as un,index as xs,uniqueIndex as gs}from"drizzle-orm/pg-core";var ge=fs("api_keys",{id:un("id").primaryKey().defaultRandom(),userId:un("user_id").notNull().references(()=>o.id,{onDelete:"cascade"}),name:Xt("name").notNull(),keyHash:Xt("key_hash").notNull(),keyPrefix:Xt("key_prefix").notNull(),lastUsedAt:xt("last_used_at",{withTimezone:!0}),expiresAt:xt("expires_at",{withTimezone:!0}),revokedAt:xt("revoked_at",{withTimezone:!0}),createdAt:xt("created_at",{withTimezone:!0}).defaultNow()},e=>[xs("idx_api_keys_user").on(e.userId),gs("idx_api_keys_hash").on(e.keyHash)]);import{pgTable as Ns,text as $t,timestamp as ln,uuid as vs,index as hs}from"drizzle-orm/pg-core";var cn=Ns("extension_auth_codes",{code:$t("code").primaryKey(),userId:vs("user_id").notNull().references(()=>o.id,{onDelete:"cascade"}),editor:$t("editor"),email:$t("email"),expiresAt:ln("expires_at",{withTimezone:!0}).notNull(),createdAt:ln("created_at",{withTimezone:!0}).defaultNow()},e=>[hs("idx_ext_auth_codes_expiry").on(e.expiresAt)]);import{pgTable as Is,text as ys,timestamp as mn,jsonb as Ts,uuid as Zt,index as pn}from"drizzle-orm/pg-core";var Ne=Is("eval_conversations",{id:Zt("id").primaryKey().defaultRandom(),evalTargetId:Zt("eval_target_id").notNull().references(()=>s.id,{onDelete:"cascade"}),userId:Zt("user_id").notNull(),messages:Ts("messages").notNull().default([]),status:ys("status").notNull().default("active"),createdAt:mn("created_at",{withTimezone:!0}).defaultNow(),updatedAt:mn("updated_at",{withTimezone:!0}).defaultNow()},e=>[pn("idx_eval_conversations_target").on(e.evalTargetId),pn("idx_eval_conversations_user").on(e.userId)]);import{pgTable as ws,text as S,timestamp as _n,jsonb as As,uuid as eo}from"drizzle-orm/pg-core";var fn=ws("skill_submissions",{id:eo("id").primaryKey().defaultRandom(),skillId:S("skill_id").notNull(),name:S("name").notNull(),description:S("description").notNull(),category:S("category").notNull(),tools:S("tools").array().notNull(),tags:S("tags").array().default([]),content:S("content").notNull(),status:S("status").notNull().default("pending"),submittedBy:eo("submitted_by").notNull(),reviewedBy:eo("reviewed_by"),reviewNote:S("review_note"),metadata:As("metadata"),createdAt:_n("created_at",{withTimezone:!0}).defaultNow(),updatedAt:_n("updated_at",{withTimezone:!0}).defaultNow()});import{pgTable as zs,text as qe,timestamp as xn,jsonb as Ds,uuid as bs,uniqueIndex as js,index as gn}from"drizzle-orm/pg-core";var Nn=zs("harness_releases",{id:bs("id").primaryKey().defaultRandom(),harness:qe("harness").notNull(),version:qe("version").notNull(),publishedAt:xn("published_at",{withTimezone:!0}).notNull(),title:qe("title"),body:qe("body"),categories:Ds("categories").default({}),url:qe("url"),createdAt:xn("created_at",{withTimezone:!0}).defaultNow()},e=>[js("idx_harness_releases_unique").on(e.harness,e.version),gn("idx_harness_releases_harness").on(e.harness),gn("idx_harness_releases_published").on(e.publishedAt)]);import{pgTable as Rs,text as ve,timestamp as vn,jsonb as ks,uuid as hn,index as In,uniqueIndex as Es}from"drizzle-orm/pg-core";var to=Rs("notifications",{id:hn("id").primaryKey().defaultRandom(),userId:hn("user_id").notNull(),type:ve("type").notNull(),title:ve("title").notNull(),body:ve("body"),url:ve("url"),sourceTable:ve("source_table"),sourceId:ve("source_id"),metadata:ks("metadata").notNull().default({}),readAt:vn("read_at",{withTimezone:!0}),createdAt:vn("created_at",{withTimezone:!0}).notNull().defaultNow()},e=>[In("idx_notifications_user_created").on(e.userId,e.createdAt),In("idx_notifications_user_unread").on(e.userId),Es("idx_notifications_source_dedup").on(e.userId,e.sourceTable,e.sourceId)]);import{pgTable as Ss,text as Me,timestamp as Le,jsonb as oo,uuid as no,index as gt,integer as Ks}from"drizzle-orm/pg-core";var he=Ss("launch_jobs",{id:no("id").primaryKey().defaultRandom(),userId:no("user_id").notNull(),tool:Me("tool").notNull(),status:Me("status").notNull().default("pending"),config:oo("config").notNull().default({}),result:oo("result"),error:Me("error"),attempts:Ks("attempts").notNull().default(0),taskKind:Me("task_kind"),payload:oo("payload"),claimedBy:Me("claimed_by"),claimedAt:Le("claimed_at",{withTimezone:!0}),leaseExpiresAt:Le("lease_expires_at",{withTimezone:!0}),createdAt:Le("created_at",{withTimezone:!0}).defaultNow(),updatedAt:Le("updated_at",{withTimezone:!0}).defaultNow(),completedAt:Le("completed_at",{withTimezone:!0}),runId:no("run_id").references(()=>_.id,{onDelete:"set null"})},e=>[gt("idx_launch_jobs_user").on(e.userId),gt("idx_launch_jobs_status").on(e.status),gt("idx_launch_jobs_pending").on(e.userId,e.status),gt("idx_launch_jobs_run").on(e.runId)]);import{pgTable as yn,uuid as K,text as Be,real as Ps,timestamp as Nt,boolean as Os,uniqueIndex as Cs,index as Ue}from"drizzle-orm/pg-core";var ro=yn("instruction_suggestions",{id:K("id").primaryKey().defaultRandom(),userId:K("user_id").notNull().references(()=>o.id,{onDelete:"cascade"}),instructionId:K("instruction_id").notNull().references(()=>n.id,{onDelete:"cascade"}),projectPath:Be("project_path").notNull(),projectId:K("project_id").references(()=>r.id,{onDelete:"set null"}),score:Ps("score").notNull(),reason:Be("reason").notNull(),generatedAt:Nt("generated_at",{withTimezone:!0}).notNull().defaultNow(),isStale:Os("is_stale").notNull().default(!1),dismissedAt:Nt("dismissed_at",{withTimezone:!0}),acceptedAt:Nt("accepted_at",{withTimezone:!0}),promotedToInstructionId:K("promoted_to_instruction_id").references(()=>n.id,{onDelete:"set null"})},e=>[Cs("idx_instruction_suggestions_user_project_instruction").on(e.userId,e.projectPath,e.instructionId),Ue("idx_instruction_suggestions_user_project").on(e.userId,e.projectPath),Ue("idx_instruction_suggestions_user_proj_id").on(e.userId,e.projectId),Ue("idx_instruction_suggestions_generated_at").on(e.generatedAt)]),Tn=yn("instruction_suggestion_events",{id:K("id").primaryKey().defaultRandom(),suggestionId:K("suggestion_id").notNull().references(()=>ro.id,{onDelete:"cascade"}),userId:K("user_id").notNull().references(()=>o.id,{onDelete:"cascade"}),eventType:Be("event_type").notNull(),tool:Be("tool"),sessionId:K("session_id"),projectPath:Be("project_path").notNull(),createdAt:Nt("created_at",{withTimezone:!0}).notNull().defaultNow()},e=>[Ue("idx_instruction_suggestion_events_suggestion_id").on(e.suggestionId),Ue("idx_instruction_suggestion_events_user_id").on(e.userId)]);import{pgTable as qs,text as so,integer as Ms,numeric as He,timestamp as io,index as Ls,primaryKey as Bs}from"drizzle-orm/pg-core";var wn=qs("model_pricing",{provider:so("provider").notNull(),modelId:so("model_id").notNull(),inputPerM:He("input_per_m").notNull(),outputPerM:He("output_per_m").notNull(),cacheReadPerM:He("cache_read_per_m").notNull(),cacheWrite5mPerM:He("cache_write_5m_per_m").notNull(),cacheWrite1hPerM:He("cache_write_1h_per_m").notNull(),contextWindow:Ms("context_window"),effectiveFrom:io("effective_from",{withTimezone:!0}).notNull(),effectiveUntil:io("effective_until",{withTimezone:!0}),source:so("source").notNull(),verifiedAt:io("verified_at",{withTimezone:!0})},e=>[Bs({columns:[e.provider,e.modelId,e.effectiveFrom]}),Ls("idx_model_pricing_active").on(e.provider,e.modelId,e.effectiveFrom.desc())]);import{pgTable as Us,text as $,numeric as An,timestamp as zn,uuid as Dn,jsonb as Hs,index as bn}from"drizzle-orm/pg-core";var jn=Us("limit_observations",{id:Dn("id").primaryKey().defaultRandom(),observedAt:zn("observed_at",{withTimezone:!0}).notNull().defaultNow(),provider:$("provider").notNull(),plan:$("plan").notNull(),limitType:$("limit_type").notNull(),value:An("value").notNull(),unit:$("unit").notNull(),comparator:$("comparator").notNull().default("="),resetsAt:zn("resets_at",{withTimezone:!0}),sourceType:$("source_type").notNull(),sourceUrl:$("source_url"),sourceEvidence:Hs("source_evidence"),confidence:An("confidence").notNull(),userId:Dn("user_id")},e=>[bn("idx_limit_obs_lookup").on(e.provider,e.plan,e.limitType,e.observedAt.desc()),bn("idx_limit_obs_user").on(e.userId,e.observedAt.desc())]);import{pgTable as Vs,text as vt,timestamp as Fs,uuid as Gs,jsonb as Js,boolean as Ys,uniqueIndex as Qs}from"drizzle-orm/pg-core";var Rn=Vs("provider_docs_snapshots",{id:Gs("id").primaryKey().defaultRandom(),fetchedAt:Fs("fetched_at",{withTimezone:!0}).notNull().defaultNow(),provider:vt("provider").notNull(),docUrl:vt("doc_url").notNull(),contentHash:vt("content_hash").notNull(),content:vt("content").notNull(),parseSuccess:Ys("parse_success").notNull(),parseErrors:Js("parse_errors")},e=>[Qs("idx_docs_dedup").on(e.provider,e.docUrl,e.contentHash)]);import{pgTable as Ws,text as ht,numeric as kn,timestamp as En,uuid as Xs,primaryKey as $s,index as Zs}from"drizzle-orm/pg-core";var Sn=Ws("plan_limits_active",{provider:ht("provider").notNull(),plan:ht("plan").notNull(),limitType:ht("limit_type").notNull(),value:kn("value").notNull(),unit:ht("unit").notNull(),effectiveFrom:En("effective_from",{withTimezone:!0}).notNull(),effectiveUntil:En("effective_until",{withTimezone:!0}),confidence:kn("confidence").notNull(),sourceObservationIds:Xs("source_observation_ids").array().notNull()},e=>[$s({columns:[e.provider,e.plan,e.limitType,e.effectiveFrom]}),Zs("idx_plan_limits_lookup").on(e.provider,e.plan,e.limitType,e.effectiveFrom.desc())]);import{pgTable as ei,text as ao,timestamp as ti,uuid as Kn,jsonb as oi,index as ni}from"drizzle-orm/pg-core";var Pn=ei("alert_dispatches",{id:Kn("id").primaryKey().defaultRandom(),userId:Kn("user_id").notNull(),alertKey:ao("alert_key").notNull(),severity:ao("severity").notNull(),lastDispatchedAt:ti("last_dispatched_at",{withTimezone:!0}).notNull().defaultNow(),lastState:oi("last_state").notNull(),channel:ao("channel").notNull()},e=>[ni("idx_alert_user_key").on(e.userId,e.alertKey,e.lastDispatchedAt.desc())]);import{drizzle as Ln}from"drizzle-orm/postgres-js";import Bn from"postgres";var It={};sr(It,{agentJobs:()=>an,agentRuns:()=>_,agentRunsRelations:()=>Ni,alertDispatches:()=>Pn,announcementDeliveries:()=>bo,announcements:()=>Do,apiKeys:()=>ge,apiKeysRelations:()=>si,benchmarks:()=>me,benchmarksRelations:()=>Ri,cliErrorEvents:()=>Wo,cliSetupEvents:()=>Yo,contentBlobs:()=>on,contextSnapshots:()=>H,contextSnapshotsRelations:()=>Pi,evalConversations:()=>Ne,evalConversationsRelations:()=>Ki,evalJobs:()=>xe,evalJobsRelations:()=>Si,evalRuns:()=>B,evalRunsRelations:()=>ji,evalTargets:()=>s,evalTargetsRelations:()=>Di,evals:()=>E,evalsRelations:()=>bi,extensionAuthCodes:()=>cn,harnessReleases:()=>Nn,insightsJobs:()=>dn,instructionEvents:()=>ie,instructionEventsRelations:()=>mi,instructionSuggestionEvents:()=>Tn,instructionSuggestions:()=>ro,instructionUsageEvents:()=>le,instructionUsageEventsRelations:()=>zi,instructionVersions:()=>oe,instructionVersionsRelations:()=>_i,instructions:()=>n,instructionsRelations:()=>ci,launchJobs:()=>he,launchJobsRelations:()=>vi,limitObservations:()=>jn,memories:()=>y,memoriesRelations:()=>pi,modelPricing:()=>wn,notificationPreferences:()=>jo,notifications:()=>to,optimizationRuns:()=>fe,optimizationRunsRelations:()=>Ei,orgInvitations:()=>D,orgInvitationsRelations:()=>di,organizations:()=>u,organizationsRelations:()=>ii,packInstructions:()=>L,packInstructionsRelations:()=>Ai,packs:()=>h,packsRelations:()=>wi,pendingTreatmentExposures:()=>Oo,planLimitsActive:()=>Sn,profiles:()=>o,profilesRelations:()=>ri,projectCheckouts:()=>To,projectInstructions:()=>O,projectInstructionsRelations:()=>xi,projects:()=>r,projectsRelations:()=>fi,providerDocsSnapshots:()=>Rn,sessionEvents:()=>re,sessionEventsRelations:()=>hi,sessionInstructions:()=>C,sessionInstructionsRelations:()=>Ii,sessionSendJobs:()=>Mo,sessionTerminalTargets:()=>nt,sessions:()=>d,sessionsRelations:()=>gi,skillSubmissions:()=>fn,teams:()=>x,teamsRelations:()=>ai,treatmentAssignments:()=>b,treatmentAssignmentsRelations:()=>yi,treatmentExposures:()=>j,treatmentExposuresRelations:()=>Ti,triggerEvals:()=>_e,triggerEvalsRelations:()=>ki,userOrganizations:()=>ee,userOrganizationsRelations:()=>ui,userTeams:()=>te,userTeamsRelations:()=>li,workerConnections:()=>Fo});import{relations as i}from"drizzle-orm";var ri=i(o,({many:e})=>({sessions:e(d),contextSnapshots:e(H),apiKeys:e(ge)})),si=i(ge,({one:e})=>({profile:e(o,{fields:[ge.userId],references:[o.id]})})),ii=i(u,({many:e})=>({teams:e(x),userOrganizations:e(ee),projects:e(r),invitations:e(D)})),ai=i(x,({one:e,many:t})=>({organization:e(u,{fields:[x.orgId],references:[u.id]}),userTeams:t(te),invitations:t(D)})),di=i(D,({one:e})=>({organization:e(u,{fields:[D.orgId],references:[u.id]}),team:e(x,{fields:[D.teamId],references:[x.id]}),inviter:e(o,{fields:[D.invitedBy],references:[o.id]})})),ui=i(ee,({one:e})=>({organization:e(u,{fields:[ee.orgId],references:[u.id]})})),li=i(te,({one:e})=>({team:e(x,{fields:[te.teamId],references:[x.id]})})),ci=i(n,({one:e,many:t})=>({versions:t(oe),projectInstructions:t(O),events:t(ie),usageEvents:t(le),sessionInstructions:t(C),packInstructions:t(L),forkedFrom:e(n,{fields:[n.forkedFromId],references:[n.id]})})),mi=i(ie,({one:e})=>({instruction:e(n,{fields:[ie.instructionId],references:[n.id]})})),pi=i(y,({one:e,many:t})=>({project:e(r,{fields:[y.projectId],references:[r.id]}),parent:e(y,{fields:[y.parentId],references:[y.id]}),versions:t(y)})),_i=i(oe,({one:e})=>({instruction:e(n,{fields:[oe.instructionId],references:[n.id]})})),fi=i(r,({one:e,many:t})=>({organization:e(u,{fields:[r.orgId],references:[u.id]}),projectInstructions:t(O),sessions:t(d)})),xi=i(O,({one:e})=>({project:e(r,{fields:[O.projectId],references:[r.id]}),instruction:e(n,{fields:[O.instructionId],references:[n.id]})})),gi=i(d,({one:e,many:t})=>({profile:e(o,{fields:[d.userId],references:[o.id]}),project:e(r,{fields:[d.projectId],references:[r.id]}),run:e(_,{fields:[d.runId],references:[_.id]}),events:t(re),sessionInstructions:t(C),treatmentExposures:t(j),contextSnapshots:t(H)})),Ni=i(_,({one:e,many:t})=>({profile:e(o,{fields:[_.userId],references:[o.id]}),organization:e(u,{fields:[_.orgId],references:[u.id]}),project:e(r,{fields:[_.projectId],references:[r.id]}),sessions:t(d),launchJobs:t(he)})),vi=i(he,({one:e})=>({run:e(_,{fields:[he.runId],references:[_.id]})})),hi=i(re,({one:e})=>({session:e(d,{fields:[re.sessionId],references:[d.id]})})),Ii=i(C,({one:e})=>({session:e(d,{fields:[C.sessionId],references:[d.id]}),instruction:e(n,{fields:[C.instructionId],references:[n.id]})})),yi=i(b,({one:e,many:t})=>({owner:e(o,{fields:[b.userId],references:[o.id]}),project:e(r,{fields:[b.projectId],references:[r.id]}),exposures:t(j)})),Ti=i(j,({one:e})=>({session:e(d,{fields:[j.sessionId],references:[d.id]}),owner:e(o,{fields:[j.userId],references:[o.id]}),assignment:e(b,{fields:[j.assignmentId],references:[b.id]})})),wi=i(h,({one:e,many:t})=>({packInstructions:t(L),forkedFrom:e(h,{fields:[h.forkedFromId],references:[h.id]})})),Ai=i(L,({one:e})=>({pack:e(h,{fields:[L.packId],references:[h.id]}),instruction:e(n,{fields:[L.instructionId],references:[n.id]})})),zi=i(le,({one:e})=>({instruction:e(n,{fields:[le.instructionId],references:[n.id]})})),Di=i(s,({one:e,many:t})=>({parent:e(s,{fields:[s.parentId],references:[s.id]}),evals:t(E),evalRuns:t(B),benchmarks:t(me),triggerEvals:t(_e),optimizationRuns:t(fe),evalJobs:t(xe),evalConversations:t(Ne)})),bi=i(E,({one:e,many:t})=>({evalTarget:e(s,{fields:[E.evalTargetId],references:[s.id]}),runs:t(B)})),ji=i(B,({one:e})=>({eval:e(E,{fields:[B.evalId],references:[E.id]}),evalTarget:e(s,{fields:[B.evalTargetId],references:[s.id]})})),Ri=i(me,({one:e})=>({evalTarget:e(s,{fields:[me.evalTargetId],references:[s.id]})})),ki=i(_e,({one:e})=>({evalTarget:e(s,{fields:[_e.evalTargetId],references:[s.id]})})),Ei=i(fe,({one:e})=>({evalTarget:e(s,{fields:[fe.evalTargetId],references:[s.id]})})),Si=i(xe,({one:e})=>({evalTarget:e(s,{fields:[xe.evalTargetId],references:[s.id]})})),Ki=i(Ne,({one:e})=>({evalTarget:e(s,{fields:[Ne.evalTargetId],references:[s.id]})})),Pi=i(H,({one:e})=>({session:e(d,{fields:[H.sessionId],references:[d.id]}),profile:e(o,{fields:[H.userId],references:[o.id]})}));var Ve=0,On=0,Fe=0,Cn=0;var Oi=0;function uo(){Ve++,Ve>On&&(On=Ve)}m(uo,"trackDbOpStart");function lo(){Ve>0&&Ve--}m(lo,"trackDbOpEnd");function co(){Fe++,Fe>Cn&&(Cn=Fe)}m(co,"trackHeavyDbOpStart");function mo(){Fe>0&&Fe--}m(mo,"trackHeavyDbOpEnd");function qn(){Oi++}m(qn,"recordQueryDeadline");var Tt,At,po=!1,yt;var Mn,zt,wt;function Un(e){let t=process.env[e];if(!t)throw new Error(`Missing required env var: ${e}`);return t}m(Un,"getEnv");function Hn(){if(po)throw new Error("getDb() called after closeDb(): the connection pool is closed for shutdown. Stop issuing queries (timers/requests) before draining the pool.");if(!Tt){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,p=Number(process.env.PG_KEEP_ALIVE_S)||60;At=Bn(Un("DATABASE_URL"),{prepare:!1,max:t,connect_timeout:a,idle_timeout:c,keep_alive:p,max_lifetime:300,connection:{application_name:e,...l>0?{statement_timeout:l}:{}}}),Tt=Ln(At,{schema:It})}return Tt}m(Hn,"getDb");function Vn(){if(po)throw new Error("getHeavyDb() 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")+":heavy",t=Number(process.env.PG_HEAVY_POOL_MAX)||2;zt=Bn(Un("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}}),wt=Ln(zt,{schema:It})}return wt}m(Vn,"getHeavyDb");async function Ci(){if(yt)return yt;po=!0;let e=At,t=Mn,a=zt;return At=void 0,Tt=void 0,Mn=void 0,zt=void 0,wt=void 0,yt=Promise.allSettled([e?e.end({timeout:5}):Promise.resolve(),t?t.end({timeout:5}):Promise.resolve(),a?a.end({timeout:5}):Promise.resolve()]).then(()=>{}),yt}m(Ci,"closeDb");var qi=new Set(["CONNECT_TIMEOUT","ETIMEDOUT","ENOTFOUND","ECONNREFUSED","EAI_AGAIN"]);function Fn(e){let t=e,a=t?.code??t?.cause?.code??t?.errno;return a!==void 0&&qi.has(a)}m(Fn,"isRetryableConnectError");var Mi=new Set(["CONNECTION_CLOSED","ECONNRESET","EPIPE"]);function Gn(e){let t=e,a=t?.code??t?.cause?.code??t?.errno;return a!==void 0&&Mi.has(a)}m(Gn,"isRetryableResetError");async function Jn(e,t={}){let a=t.attempts??3,l=t.baseMs??100,c;for(let p=0;p<a;p++)try{return await e()}catch(g){c=g;let Ie=Fn(g)||t.retryResets===!0&&Gn(g);if(p===a-1||!Ie)throw g;await new Promise(V=>setTimeout(V,l*2**p))}throw c}m(Jn,"withDbRetry");var Dt=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 Yn(){let e=Number(process.env.PG_QUERY_DEADLINE_MS);return Number.isFinite(e)&&e>=0?e:2e4}m(Yn,"queryDeadlineMs");function Li(e,t){let a,l=new Promise((c,p)=>{a=setTimeout(()=>{qn(),p(new Dt(t))},t);let g=a;typeof g.unref=="function"&&g.unref()});return Promise.race([e,l]).finally(()=>clearTimeout(a))}m(Li,"raceWithDeadline");var Qn=new Set(["select","selectDistinct","selectDistinctOn","insert","update","delete","execute","with","$count","refreshMaterializedView"]),Wn=new Set(["select","selectDistinct","selectDistinctOn","$count"]);function _o(e,t=!1,a=0,l=!1){return e===null||typeof e!="object"&&typeof e!="function"?e:new Proxy(e,{get(c,p,g){if(p==="then"){let V=Reflect.get(c,p,g);return typeof V!="function"?V:(Zn,er)=>{let tr=l?co:uo,or=l?mo:lo;tr();let fo=Jn(()=>new Promise((nr,rr)=>V.call(c,nr,rr)),{retryResets:t});return(a>0?Li(fo,a):fo).finally(or).then(Zn,er)}}let Ie=Reflect.get(c,p,g);return typeof Ie=="function"?(...V)=>_o(Ie.apply(c,V),t,a,l):Ie}})}m(_o,"wrapBuilder");function Xn(e,t=!1){let a=t?co:uo,l=t?mo:lo;a();try{return Promise.resolve(e()).finally(l)}catch(c){throw l(),c}}m(Xn,"gaugeTransaction");var $n=new Proxy({},{get(e,t){let a=Hn(),l=a[t];if(typeof t=="string"&&Qn.has(t)&&typeof l=="function"){let c=Wn.has(t),p=Yn();return(...g)=>_o(l.apply(a,g),c,p)}return t==="transaction"&&typeof l=="function"?(...c)=>Xn(()=>l.apply(a,c)):l}}),Bi=new Proxy({},{get(e,t){let a=Vn(),l=a[t];if(typeof t=="string"&&Qn.has(t)&&typeof l=="function"){let c=Wn.has(t);return(...p)=>_o(l.apply(a,p),c,0,!0)}return t==="transaction"&&typeof l=="function"?(...c)=>Xn(()=>l.apply(a,c),!0):l}});export{o as a,_ as b,d as c,re as d,y as e,Do as f,bo as g,jo as h,Hn as i,Ci as j};
|
package/dist/chunk-MGHFDHHM.js
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{a as E}from"./chunk-ZLLER3HP.js";import{spawn as D}from"node:child_process";async function v(x){let{prompt:f,targetContent:T,systemPrompt:w,workDir:k=process.cwd(),timeout:i=12e4,model:l}=x,n=["-p",f,"--output-format","json"],p=T??w;p&&n.push("--system-prompt",p),l&&n.push("--model",l);let s=Date.now();return new Promise(u=>{let a={...process.env};delete a.CLAUDECODE,delete a.HTTPS_PROXY;let e=D("claude",n,{cwd:k,env:a,stdio:["ignore","pipe","pipe"]}),o="",c="";e.stdout.on("data",t=>{o+=t.toString()}),e.stderr.on("data",t=>{c+=t.toString()});let m=setTimeout(()=>{e.kill("SIGTERM"),u({output:o,exitCode:null,durationMs:Date.now()-s,totalTokens:0,error:`Timed out after ${i}ms`})},i);e.on("close",t=>{clearTimeout(m);let C=Date.now()-s,d=0,g=o;try{let r=JSON.parse(o);g=r.result??r.content??o,d=r.usage?.total_tokens??(r.usage?.input_tokens??0)+(r.usage?.output_tokens??0)}catch{}u({output:g,exitCode:t,durationMs:C,totalTokens:d,error:t!==0?c||`Exit code ${t}`:void 0})}),e.on("error",t=>{clearTimeout(m),u({output:"",exitCode:null,durationMs:Date.now()-s,totalTokens:0,error:`Failed to spawn claude: ${t.message}`})})})}E(v,"executeEval");export{v as a};
|
package/dist/chunk-PMFVH7YO.js
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{c as M}from"./chunk-TIOKY2IA.js";import{a as h}from"./chunk-32EEBARV.js";import{a as b}from"./chunk-MUURX7WZ.js";import{b as I}from"./chunk-W2MOTOQE.js";import{a as y}from"./chunk-CZJ6FRZ4.js";import{a as S}from"./chunk-RSKQRVPJ.js";import{a as A}from"./chunk-L2WTWIOS.js";import{a as H}from"./chunk-KAF3CYRW.js";import{a as k}from"./chunk-UF6US7VU.js";import{a as _}from"./chunk-DPFNJZUO.js";import{b as R}from"./chunk-QMNMK3RC.js";import{a as T}from"./chunk-2BBWRDXU.js";import{b as w}from"./chunk-5RBLIVBF.js";import{a as E}from"./chunk-NEACEHQD.js";import{b as f,e as v,f as p}from"./chunk-H2ORWIEY.js";import{a as s}from"./chunk-ZLLER3HP.js";var C={process_eval:h,process_insights:b,process_launch:I,process_send_message:S,process_conversation:E,process_session_goal:A,distill_memories:R,process_announcement:T,process_run_cleanup:y,cron_suggest_instructions:_,cron_refresh_skills:k,cron_refresh_pricing:H},L=Object.keys(C),x=new Set(["process_session_goal","process_announcement","process_run_cleanup","distill_memories"]);function O(e=process.env){return e.DATABASE_URL?L:L.filter(n=>!x.has(n))}s(O,"availableCapabilities");var W=3e4,$=3e4,B=3e4,N=250,P=5e3,F=`thin-agent-${process.pid}`,g=null;function J(e,n,r,l){let a=s(t=>{p("/api/workers/heartbeat",{workerType:"cli-worker",clientName:F,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"),B);n.addEventListener("abort",()=>{clearInterval(d),a("shutting_down")},{once:!0})}s(J,"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 D(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(D,"abortableSleep");async function U(e,n){let r=`capabilities=${encodeURIComponent(e.join(","))}&waitMs=${n}`,l=await v(`/api/work/next?${r}`);return l==null||typeof l=="string"?null:l}s(U,"pollForWork");function K(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(K,"makeHelpers");async function G(e,n,r){let l=C[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=K(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(G,"runOne");async function ce(e){let n=e.log??(()=>{}),r=e.pollWaitMs??W,l=e.heartbeatIntervalMs??$,a=e.capabilities??O(),d=N;o(n,{event:"agent_start",capabilities:a,pollWaitMs:r,heartbeatIntervalMs:l}),J(a,e.signal,n,e.version),M({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 U(a,r)}catch(u){let V=u instanceof f?u.statusCode:void 0;if(o(n,{event:"poll_error",status:V,error:u instanceof Error?u.message:String(u)}),!await D(d,e.signal))break;d=Math.min(d*2,P);continue}if(!i){if(o(n,{event:"poll_204"}),!await D(d,e.signal))break;d=Math.min(d*2,P);continue}d=N,await G(i,l,n)}o(n,{event:"agent_stop"})}s(ce,"runAgentLoop");export{C as a,L as b,O as c,U as d,ce as e};
|