@rulemetric/cli 0.7.43 → 0.7.44
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-AF3ITIZ4.js +66 -0
- package/dist/chunk-FFI3C3B3.js +1 -0
- package/dist/{chunk-7G6T5C7J.js → chunk-I7QSMY3Z.js} +1 -1
- package/dist/chunk-T4ZIK6RS.js +1 -0
- package/dist/chunk-W76EQSEV.js +2 -0
- package/dist/commands/evals/agent.js +1 -1
- package/dist/lib/agent-loop.js +1 -1
- package/dist/lib/handlers/process-changelog.js +1 -1
- package/dist/lib/handlers/process-memory-ab.js +1 -1
- package/dist/lib/handlers/process-run-cleanup.js +1 -1
- package/dist/lib/manual-tasks.js +1 -1
- package/oclif.manifest.json +1 -1
- package/package.json +4 -4
- package/dist/chunk-3BZPEN5H.js +0 -1
- package/dist/chunk-DGH4FBMM.js +0 -2
- package/dist/chunk-KZZ2MUQQ.js +0 -1
- package/dist/chunk-N7TGRFVZ.js +0 -70
- package/dist/chunk-RWF75MTD.js +0 -2
- package/dist/chunk-W74LSQ6Y.js +0 -1
- package/dist/lib/handlers/process-announcement.js +0 -1
|
@@ -0,0 +1,66 @@
|
|
|
1
|
+
import{a as h,b as _}from"./chunk-I7QSMY3Z.js";import{d as C,e as D}from"./chunk-5R5RGKOW.js";import{a as o}from"./chunk-ZLLER3HP.js";import*as m from"node:fs/promises";import*as x from"node:path";import{eq as z}from"drizzle-orm";import{randomBytes as H}from"node:crypto";var A="#0d9488",g="#1a1a1a",y="#666666",M="#f5f5f7",k="#ffffff",I="#e5e5e9",O=["Added","Changed","Fixed","Removed","Deprecated","Security"];function U(e){let t=["January","February","March","April","May","June","July","August","September","October","November","December"],[n,r,a]=e.split("-").map(p=>parseInt(p,10));return!n||!r||!a||r<1||r>12?e:`${t[r-1]} ${a}, ${n}`}o(U,"formatIsoDate");function l(e){return e.replace(/&/g,"&").replace(/</g,"<").replace(/>/g,">").replace(/"/g,""").replace(/'/g,"'")}o(l,"escapeHtml");function P(e){let t=[];for(let n of O){let r=e[n];r&&r.length>0&&t.push({name:n,items:r})}return t}o(P,"orderedSections");function v(e){let{version:t,date:n,sections:r,unsubscribeUrl:a,productUrl:p,recipientName:u}=e,c=U(n),s=`What's new in RuleMetric \u2014 ${c}`,b=u?`Hi ${u},`:"Hi there,",i=P(r),d=new Date().getUTCFullYear(),E=i.map(({name:$,items:R})=>{let w=R.map(S=>` <li style="margin:0 0 6px 0;font-size:15px;line-height:1.5;color:${g};">${l(S)}</li>`).join(`
|
|
2
|
+
`);return` <h3 style="margin:24px 0 8px 0;font-size:16px;line-height:1.3;font-weight:600;color:${g};">${$}</h3>
|
|
3
|
+
<ul style="margin:0 0 8px 0;padding-left:20px;">
|
|
4
|
+
${w}
|
|
5
|
+
</ul>`}).join(`
|
|
6
|
+
`),T=`<!doctype html>
|
|
7
|
+
<html lang="en">
|
|
8
|
+
<head>
|
|
9
|
+
<meta charset="utf-8" />
|
|
10
|
+
<meta name="viewport" content="width=device-width, initial-scale=1" />
|
|
11
|
+
<title>${l(s)}</title>
|
|
12
|
+
</head>
|
|
13
|
+
<body style="margin:0;padding:0;background:${M};font-family:-apple-system,BlinkMacSystemFont,'Segoe UI',Roboto,Helvetica,Arial,sans-serif;color:${g};">
|
|
14
|
+
<table role="presentation" width="100%" cellspacing="0" cellpadding="0" border="0" style="background:${M};padding:32px 16px;">
|
|
15
|
+
<tr>
|
|
16
|
+
<td align="center">
|
|
17
|
+
<table role="presentation" width="560" cellspacing="0" cellpadding="0" border="0" style="max-width:560px;background:${k};border:1px solid ${I};border-radius:8px;overflow:hidden;">
|
|
18
|
+
<tr>
|
|
19
|
+
<td style="padding:24px 32px 8px 32px;">
|
|
20
|
+
<a href="${l(p)}" style="text-decoration:none;color:${A};font-size:14px;font-weight:600;">RuleMetric</a>
|
|
21
|
+
</td>
|
|
22
|
+
</tr>
|
|
23
|
+
<tr>
|
|
24
|
+
<td style="padding:8px 32px 8px 32px;">
|
|
25
|
+
<h1 style="margin:0 0 8px 0;font-size:22px;line-height:1.3;font-weight:600;color:${g};">
|
|
26
|
+
What's new \u2014 ${l(c)}
|
|
27
|
+
</h1>
|
|
28
|
+
<p style="margin:0 0 8px 0;font-size:13px;line-height:1.5;color:${y};">
|
|
29
|
+
Release ${l(t)}
|
|
30
|
+
</p>
|
|
31
|
+
<p style="margin:16px 0 0 0;font-size:15px;line-height:1.5;color:${g};">
|
|
32
|
+
${l(b)}
|
|
33
|
+
</p>
|
|
34
|
+
<p style="margin:8px 0 0 0;font-size:15px;line-height:1.5;color:${g};">
|
|
35
|
+
Here's what shipped in the latest RuleMetric release.
|
|
36
|
+
</p>
|
|
37
|
+
</td>
|
|
38
|
+
</tr>
|
|
39
|
+
<tr>
|
|
40
|
+
<td style="padding:0 32px 16px 32px;">
|
|
41
|
+
${E}
|
|
42
|
+
</td>
|
|
43
|
+
</tr>
|
|
44
|
+
<tr>
|
|
45
|
+
<td style="padding:16px 32px 24px 32px;border-top:1px solid ${I};">
|
|
46
|
+
<p style="margin:0 0 8px 0;font-size:12px;line-height:1.5;color:${y};">
|
|
47
|
+
You're receiving this because you signed up for RuleMetric product updates. If you'd rather not hear about new releases, you can unsubscribe at any time.
|
|
48
|
+
</p>
|
|
49
|
+
<p style="margin:0 0 4px 0;font-size:12px;line-height:1.5;">
|
|
50
|
+
<a href="${l(a)}" style="color:${A};text-decoration:underline;">Unsubscribe</a>
|
|
51
|
+
</p>
|
|
52
|
+
<p style="margin:0 0 12px 0;font-size:12px;line-height:1.5;color:${y};word-break:break-all;">
|
|
53
|
+
${l(a)}
|
|
54
|
+
</p>
|
|
55
|
+
<p style="margin:0;font-size:11px;line-height:1.5;color:${y};">
|
|
56
|
+
RuleMetric \u2022 ${d}
|
|
57
|
+
</p>
|
|
58
|
+
</td>
|
|
59
|
+
</tr>
|
|
60
|
+
</table>
|
|
61
|
+
</td>
|
|
62
|
+
</tr>
|
|
63
|
+
</table>
|
|
64
|
+
</body>
|
|
65
|
+
</html>`,f=[`What's new in RuleMetric \u2014 ${c}`,`Release ${t}`,"",b,"","Here's what shipped in the latest RuleMetric release.",""];for(let{name:$,items:R}of i){f.push(`${$}:`);for(let w of R)f.push(` - ${w}`);f.push("")}f.push("--","You're receiving this because you signed up for RuleMetric product updates.",`Unsubscribe: ${a}`,"",`RuleMetric \u2022 ${d}`);let N=f.join(`
|
|
66
|
+
`);return{subject:s,html:T,text:N}}o(v,"renderChangelogAnnouncement");async function L(e){let t=e;for(let n=0;n<50;n++){try{return await m.stat(x.join(t,"pnpm-workspace.yaml")),t}catch{}let r=x.dirname(t);if(r===t)return null;t=r}return null}o(L,"findRepoRoot");async function j(e){if(e)try{return await m.readFile(e,"utf-8")}catch{return null}let t=await L(process.cwd())??process.cwd(),n=x.join(t,"CHANGELOG.md");try{return await m.readFile(n,"utf-8")}catch{return null}}o(j,"readChangelog");var B="https://rulemetric.com";function F(e){let t=e.date??new Date().toISOString().slice(0,10),n=v({version:e.version,date:t,sections:e.sections,unsubscribeUrl:"{{unsubscribe_url}}",recipientName:"{{recipient_name}}",productUrl:B});return{version:e.version,releaseDate:t,subject:n.subject,htmlBody:n.html,textBody:n.text,sections:e.sections}}o(F,"renderRow");async function me(e={}){let t=e.db??_(),n=e.logger??{info:o(s=>console.log(s),"info"),warn:o(s=>console.warn(s),"warn")},r=await j(e.changelogPath);if(r===null)return n.info("[cron_check_changelog] CHANGELOG.md not found; nothing to do"),{createdCount:0,skippedCount:0};let a=C(r),p=D(a);if(p.length===0)return n.info("[cron_check_changelog] No announceable entries; nothing to do"),{createdCount:0,skippedCount:0};let u=0,c=0;for(let s of p){if((await t.select({id:h.id}).from(h).where(z(h.version,s.version)).limit(1)).length>0){c++;continue}let i=F(s);try{await t.insert(h).values({version:i.version,releaseDate:i.releaseDate,subject:i.subject,htmlBody:i.htmlBody,textBody:i.textBody,sections:i.sections,status:"draft"}),u++,n.info(`[cron_check_changelog] Created draft announcement for ${i.version}`)}catch(d){let E=d instanceof Error?d.message:String(d);if(/duplicate key|unique/i.test(E)){c++;continue}throw d}}return n.info(`[cron_check_changelog] Done: created ${u}, skipped ${c}`),{createdCount:u,skippedCount:c}}o(me,"processChangelog");export{me as a};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{c as P}from"./chunk-5XUN743A.js";import{a as M}from"./chunk-T4ZIK6RS.js";import{a as T}from"./chunk-W76EQSEV.js";import{a as y}from"./chunk-RSKQRVPJ.js";import{a as R}from"./chunk-HXZM2UHO.js";import{d as k}from"./chunk-V2IEFHT7.js";import{b as H}from"./chunk-YW3JQKGY.js";import{a as A}from"./chunk-O2BKBW7Z.js";import{a as E}from"./chunk-KGQ5W54Y.js";import{a as I}from"./chunk-O7PSLZO6.js";import{a as L}from"./chunk-MOAJLSYV.js";import{b as S}from"./chunk-BLCMXTIK.js";import{b as h}from"./chunk-5RBLIVBF.js";import{a as N}from"./chunk-EN43UYBN.js";import{a as x}from"./chunk-FAXV5AAG.js";import{a as _}from"./chunk-UF6US7VU.js";import{j as b}from"./chunk-2RCWYVEU.js";import{d as w}from"./chunk-NTKO4H2K.js";import{b as f,e as v,f as g}from"./chunk-KLEF5D3A.js";import{a as s}from"./chunk-ZLLER3HP.js";var O={process_eval:E,process_insights:I,process_launch:S,process_send_message:y,process_conversation:A,process_session_goal:R,distill_memories:H,memory_ab:M,process_run_cleanup:T,cron_suggest_instructions:k,cron_refresh_skills:_,cron_refresh_pricing:x,cron_eval_autorun:N,cron_instruction_evolution:b,process_judge_review:L},C=Object.keys(O),$=new Set([]);function F(e=process.env){return e.DATABASE_URL?C:C.filter(n=>!$.has(n))}s(F,"availableCapabilities");var J=3e4,U=3e4,K=3e4,D=250,V=5e3,G=`thin-agent-${process.pid}`,p=null;function q(e,n,r,l){let c;try{let d=w();c={claude:d.claudeBin!=null,codex:d.codexBin!=null,codexModel:d.codexConfiguredModel}}catch{}let i=s(d=>{g("/api/workers/heartbeat",{workerType:"cli-worker",clientName:G,clientVersion:l,workerVersion:"0.1.0",currentJobId:null,inFlightCount:0,lastError:null,status:d,metadata:{capabilities:e,mode:"thin-agent",llmEngines:c}}).then(u=>{let t=u?.advisory;t&&t.message!==p?(p=t.message,a(r,{event:"worker_advisory",code:t.code,message:t.message})):t||(p=null)}).catch(u=>{a(r,{event:"presence_heartbeat_error",error:u instanceof Error?u.message:String(u)})})},"send");i("alive");let o=setInterval(()=>i("alive"),K);n.addEventListener("abort",()=>{clearInterval(o),i("shutting_down")},{once:!0})}s(q,"startPresenceHeartbeat");function a(e,n){try{e(JSON.stringify({ts:new Date().toISOString(),...n}))}catch{e(`[agent-loop] log_error event=${n.event}`)}}s(a,"structuredLog");function B(e,n){return n.aborted?Promise.resolve(!1):e<=0?Promise.resolve(!0):new Promise(r=>{let l=setTimeout(()=>{n.removeEventListener("abort",c),r(!0)},e),c=s(()=>{clearTimeout(l),n.removeEventListener("abort",c),r(!1)},"onAbort");n.addEventListener("abort",c,{once:!0})})}s(B,"abortableSleep");async function Q(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(Q,"pollForWork");function X(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(X,"makeHelpers");async function z(e,n,r){let l=O[e.kind],c=Date.now();if(a(r,{event:"claim",jobId:e.id,kind:e.kind,attempts:e.attempts}),!l){let o=`unknown kind: ${e.kind}`;a(r,{event:"fail",jobId:e.id,kind:e.kind,terminal:!0,error:o}),await g(`/api/work/${e.id}/fail`,{leaseToken:e.leaseToken,error:o,terminal:!0}).catch(()=>{});return}let i=setInterval(()=>{a(r,{event:"heartbeat",jobId:e.id}),g(`/api/work/${e.id}/heartbeat`,{leaseToken:e.leaseToken}).catch(o=>{a(r,{event:"heartbeat_error",jobId:e.id,error:o instanceof Error?o.message:String(o)})})},n);try{let o=X(e.attempts,r),d=await l(e.payload,o)??{};clearInterval(i),a(r,{event:"complete",jobId:e.id,kind:e.kind,durationMs:Date.now()-c}),await g(`/api/work/${e.id}/complete`,{leaseToken:e.leaseToken,result:d})}catch(o){clearInterval(i);let d=h(o),u=o instanceof Error?o.message:String(o);a(r,{event:"fail",jobId:e.id,kind:e.kind,durationMs:Date.now()-c,terminal:d,error:u}),await g(`/api/work/${e.id}/fail`,{leaseToken:e.leaseToken,error:u,terminal:d}).catch(t=>{a(r,{event:"fail_post_error",jobId:e.id,error:t instanceof Error?t.message:String(t)})})}}s(z,"runOne");async function ke(e){let n=e.log??(()=>{}),r=e.pollWaitMs??J,l=e.heartbeatIntervalMs??U,c=e.capabilities??F(),i=D;a(n,{event:"agent_start",capabilities:c,pollWaitMs:r,heartbeatIntervalMs:l}),q(c,e.signal,n,e.version),P({signal:e.signal,log:n}).catch(t=>{a(n,{event:"tt_heartbeat_fatal",error:t instanceof Error?t.message:String(t)})});let o=5*6e4,d=0,u=s(()=>{if(!e.readInstalledVersion||!e.version)return!1;let t=Date.now();if(t-d<o)return!1;d=t;let m=e.readInstalledVersion();return!!(m&&m!==e.version)},"versionDrifted");for(;!e.signal.aborted;){if(u()){a(n,{event:"agent_version_drift",bootVersion:e.version,installedVersion:e.readInstalledVersion?.()??null}),e.onVersionDrift?.();break}let t=null;try{t=await Q(c,r)}catch(m){let W=m instanceof f?m.statusCode:void 0;if(a(n,{event:"poll_error",status:W,error:m instanceof Error?m.message:String(m)}),!await B(i,e.signal))break;i=Math.min(i*2,V);continue}if(!t){if(a(n,{event:"poll_204"}),!await B(i,e.signal))break;i=Math.min(i*2,V);continue}i=D,await z(t,l,n)}a(n,{event:"agent_stop"})}s(ke,"runAgentLoop");export{O as a,C as b,F as c,Q as d,ke as e};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{a as p,c as Or}from"./chunk-ZLLER3HP.js";import{boolean as So,pgTable as qr,text as Ze,timestamp as Ct,uuid as Ko}from"drizzle-orm/pg-core";import{pgTable as Xe,text as re,timestamp as Re,jsonb as Eo,uuid as Y,primaryKey as bo}from"drizzle-orm/pg-core";var u=Xe("organizations",{id:Y("id").primaryKey().defaultRandom(),name:re("name").unique().notNull(),slug:re("slug").unique().notNull(),metadata:Eo("metadata"),createdAt:Re("created_at",{withTimezone:!0}).defaultNow(),updatedAt:Re("updated_at",{withTimezone:!0}).defaultNow()}),h=Xe("teams",{id:Y("id").primaryKey().defaultRandom(),orgId:Y("org_id").references(()=>u.id,{onDelete:"cascade"}),name:re("name").notNull(),slug:re("slug").notNull(),metadata:Eo("metadata"),createdAt:Re("created_at",{withTimezone:!0}).defaultNow()}),se=Xe("user_organizations",{userId:Y("user_id").notNull(),orgId:Y("org_id").references(()=>u.id,{onDelete:"cascade"}).notNull(),role:re("role").notNull().default("member"),createdAt:Re("created_at",{withTimezone:!0}).defaultNow()},e=>[bo({columns:[e.userId,e.orgId]})]),ie=Xe("user_teams",{userId:Y("user_id").notNull(),teamId:Y("team_id").references(()=>h.id,{onDelete:"cascade"}).notNull(),role:re("role").notNull().default("member"),createdAt:Re("created_at",{withTimezone:!0}).defaultNow()},e=>[bo({columns:[e.userId,e.teamId]})]);var o=qr("profiles",{id:Ko("id").primaryKey(),email:Ze("email"),displayName:Ze("display_name"),activeOrgId:Ko("active_org_id").references(()=>u.id,{onDelete:"set null"}),isSuperadmin:So("is_superadmin").notNull().default(!1),claudeCodePlan:Ze("claude_code_plan"),planSource:Ze("plan_source").notNull().default("detected"),setupCompletedAt:Ct("setup_completed_at",{withTimezone:!0}),liveSendSkipped:So("live_send_skipped").notNull().default(!1),createdAt:Ct("created_at",{withTimezone:!0}).defaultNow(),updatedAt:Ct("updated_at",{withTimezone:!0}).defaultNow()});import{pgTable as Hr,text as de,timestamp as Lt,jsonb as qo,uuid as nt,integer as Vr,boolean as Gr,index as Ut}from"drizzle-orm/pg-core";import{boolean as Lr,jsonb as Ur,pgTable as Mt,primaryKey as Co,text as Q,timestamp as ke,uniqueIndex as qt,uuid as W}from"drizzle-orm/pg-core";import{sql as Br}from"drizzle-orm";import{pgTable as Ot,text as x,timestamp as L,jsonb as et,uuid as D,integer as tt,boolean as Mr,uniqueIndex as ot,index as je}from"drizzle-orm/pg-core";var r=Ot("instructions",{id:D("id").primaryKey().defaultRandom(),name:x("name").notNull(),description:x("description").notNull(),type:x("type").notNull().default("instruction"),scope:x("scope").notNull(),scopeRef:D("scope_ref"),version:x("version").notNull(),content:x("content").notNull(),frontmatter:et("frontmatter").notNull(),slots:et("slots"),tags:x("tags").array(),compatibility:x("compatibility").array(),createdBy:D("created_by"),createdAt:L("created_at",{withTimezone:!0}).defaultNow(),updatedAt:L("updated_at",{withTimezone:!0}).defaultNow(),archived:Mr("archived").default(!1),archivedAt:L("archived_at",{withTimezone:!0}),archivedBy:D("archived_by"),forkedFromId:D("forked_from_id").references(()=>r.id,{onDelete:"set null"}),upstreamVersion:x("upstream_version"),badge:x("badge"),contentHash:x("content_hash"),contextIdentity:x("context_identity"),scanScore:tt("scan_score"),scanFindings:et("scan_findings"),popularityScore:tt("popularity_score"),sourceUpdatedAt:L("source_updated_at",{withTimezone:!0})},e=>[ot("instructions_name_scope_ref_idx").on(e.name,e.scope,e.scopeRef),je("idx_instructions_scope").on(e.scope,e.scopeRef),je("idx_instructions_created_by").on(e.createdBy),je("idx_instructions_context_identity").on(e.createdBy,e.contextIdentity),je("idx_instructions_public_recency").on(e.scope,e.sourceUpdatedAt.desc())]),Po=Ot("instruction_version_identities",{id:D("id").primaryKey().defaultRandom(),instructionId:D("instruction_id").notNull().references(()=>r.id,{onDelete:"cascade"}),contentHash:x("content_hash").notNull(),versionOrdinal:tt("version_ordinal").notNull(),content:x("content"),firstSeenAt:L("first_seen_at",{withTimezone:!0}).notNull().defaultNow(),lastSeenAt:L("last_seen_at",{withTimezone:!0}).notNull().defaultNow(),createdAt:L("created_at",{withTimezone:!0}).notNull().defaultNow()},e=>[ot("instruction_version_identities_hash_unique").on(e.instructionId,e.contentHash),ot("instruction_version_identities_ordinal_unique").on(e.instructionId,e.versionOrdinal),je("idx_ivi_instruction").on(e.instructionId)]),ae=Ot("instruction_versions",{id:D("id").primaryKey().defaultRandom(),instructionId:D("instruction_id").references(()=>r.id,{onDelete:"cascade"}),versionNumber:tt("version_number").notNull(),content:x("content").notNull(),frontmatter:et("frontmatter").notNull(),changeSummary:x("change_summary"),createdBy:D("created_by"),createdAt:L("created_at",{withTimezone:!0}).defaultNow()},e=>[ot("instruction_versions_instruction_version_idx").on(e.instructionId,e.versionNumber)]);var s=Mt("projects",{id:W("id").primaryKey().defaultRandom(),orgId:W("org_id").references(()=>u.id,{onDelete:"cascade"}),name:Q("name").notNull(),description:Q("description"),githubRepo:Q("github_repo"),gitRemoteUrl:Q("git_remote_url"),gitRootCommit:Q("git_root_commit"),gitRemoteAliases:Q("git_remote_aliases").array().notNull().default([]),metadata:Ur("metadata"),createdBy:W("created_by"),createdAt:ke("created_at",{withTimezone:!0}).defaultNow(),updatedAt:ke("updated_at",{withTimezone:!0}).defaultNow()},e=>[qt("projects_org_name_idx").on(e.orgId,e.name),qt("projects_git_remote_url_unique").on(e.gitRemoteUrl).where(Br`${e.gitRemoteUrl} IS NOT NULL`)]),U=Mt("project_instructions",{projectId:W("project_id").references(()=>s.id,{onDelete:"cascade"}).notNull(),instructionId:W("instruction_id").references(()=>r.id,{onDelete:"cascade"}).notNull(),addedAt:ke("added_at",{withTimezone:!0}).defaultNow(),addedBy:W("added_by")},e=>[Co({columns:[e.projectId,e.instructionId]})]),Oo=Mt("project_checkouts",{projectId:W("project_id").references(()=>s.id,{onDelete:"cascade"}).notNull(),path:Q("path").notNull(),isWorktree:Lr("is_worktree").notNull().default(!1),firstSeen:ke("first_seen",{withTimezone:!0}).notNull().defaultNow(),lastSeen:ke("last_seen",{withTimezone:!0}).notNull().defaultNow()},e=>[Co({columns:[e.projectId,e.path]}),qt("project_checkouts_path_unique").on(e.path)]);var g=Hr("agent_runs",{id:nt("id").primaryKey().defaultRandom(),userId:nt("user_id").notNull().references(()=>o.id,{onDelete:"cascade"}),orgId:nt("org_id").references(()=>u.id,{onDelete:"set null"}),projectId:nt("project_id").references(()=>s.id,{onDelete:"set null"}),projectPath:de("project_path"),gitRemote:de("git_remote"),baseBranch:de("base_branch"),title:de("title"),prompt:de("prompt"),toolSpec:qo("tool_spec").notNull().default([]),autoWorktree:Gr("auto_worktree").notNull().default(!0),status:de("status").notNull().default("pending"),sessionCount:Vr("session_count").notNull().default(0),metadata:qo("metadata").notNull().default({}),createdAt:Lt("created_at",{withTimezone:!0}).notNull().defaultNow(),updatedAt:Lt("updated_at",{withTimezone:!0}).notNull().defaultNow(),completedAt:Lt("completed_at",{withTimezone:!0})},e=>[Ut("idx_agent_runs_user").on(e.userId),Ut("idx_agent_runs_org_created").on(e.orgId,e.createdAt),Ut("idx_agent_runs_project").on(e.projectId)]);import{pgTable as Bt,text as I,timestamp as Ee,jsonb as X,uuid as E,integer as rt,uniqueIndex as Mo,index as R}from"drizzle-orm/pg-core";var d=Bt("sessions",{id:E("id").primaryKey().defaultRandom(),userId:E("user_id").notNull().references(()=>o.id,{onDelete:"cascade"}),externalSessionId:I("external_session_id"),projectId:E("project_id").references(()=>s.id,{onDelete:"set null"}),orgId:E("org_id").references(()=>u.id,{onDelete:"set null"}),tool:I("tool").notNull(),projectPath:I("project_path"),gitBranch:I("git_branch"),startedAt:Ee("started_at",{withTimezone:!0}).notNull(),endedAt:Ee("ended_at",{withTimezone:!0}),eventCount:rt("event_count").default(0),tokenUsage:X("token_usage"),analysis:X("analysis"),analyzedAt:Ee("analyzed_at",{withTimezone:!0}),analyzedEventCount:rt("analyzed_event_count"),analyzedTurnCount:rt("analyzed_turn_count"),metadata:X("metadata").default({}),origin:I("origin").notNull().default("unknown"),runId:E("run_id").references(()=>g.id,{onDelete:"set null"}),model:I("model"),harnessVersion:I("harness_version"),createdAt:Ee("created_at",{withTimezone:!0}).defaultNow()},e=>[R("idx_sessions_user").on(e.userId),R("idx_sessions_tool").on(e.tool),R("idx_sessions_started_at").on(e.startedAt),R("idx_sessions_project").on(e.projectId),R("idx_sessions_org_started_at").on(e.orgId,e.startedAt),R("idx_sessions_run").on(e.runId),Mo("idx_sessions_user_external").on(e.userId,e.externalSessionId)]),ue=Bt("session_events",{id:E("id").primaryKey().defaultRandom(),sessionId:E("session_id").notNull().references(()=>d.id,{onDelete:"cascade"}),sequence:rt("sequence").notNull(),eventType:I("event_type").notNull(),content:I("content"),toolName:I("tool_name"),toolInput:X("tool_input"),toolOutput:X("tool_output"),tokenUsage:X("token_usage"),model:I("model"),timestamp:Ee("timestamp",{withTimezone:!0}).notNull(),metadata:X("metadata").default({})},e=>[Mo("session_events_session_sequence_idx").on(e.sessionId,e.sequence),R("idx_session_events_session_id").on(e.sessionId),R("idx_session_events_event_type").on(e.eventType),R("idx_session_events_model").on(e.model)]),B=Bt("session_instructions",{sessionId:E("session_id").notNull().references(()=>d.id,{onDelete:"cascade"}),instructionId:E("instruction_id").notNull().references(()=>r.id,{onDelete:"cascade"}),linkMethod:I("link_method").notNull(),contentHash:I("content_hash")},e=>[R("idx_session_instructions_instruction_id").on(e.instructionId)]);import{pgTable as Fr,text as le,timestamp as Ht,uuid as be,integer as Lo,index as st}from"drizzle-orm/pg-core";var T=Fr("memories",{id:be("id").primaryKey().defaultRandom(),userId:be("user_id").notNull().references(()=>o.id,{onDelete:"cascade"}),orgId:be("org_id"),projectId:be("project_id").references(()=>s.id,{onDelete:"set null"}),version:Lo("version").notNull().default(1),parentId:be("parent_id").references(()=>T.id,{onDelete:"set null"}),kind:le("kind").notNull(),title:le("title").notNull(),body:le("body").notNull(),source:le("source").notNull(),status:le("status").notNull().default("active"),trustClass:le("trust_class"),trustVersion:Lo("trust_version"),trustComputedAt:Ht("trust_computed_at",{withTimezone:!0}),createdAt:Ht("created_at",{withTimezone:!0}).notNull().defaultNow(),updatedAt:Ht("updated_at",{withTimezone:!0}).notNull().defaultNow()},e=>[st("idx_memories_user").on(e.userId),st("idx_memories_project").on(e.projectId),st("idx_memories_parent").on(e.parentId),st("idx_memories_user_status").on(e.userId,e.status)]);import{pgTable as Jr,text as Se,timestamp as Vt,uuid as Gt,integer as Uo,jsonb as $r,index as Bo}from"drizzle-orm/pg-core";var Ho=Jr("memory_experiments",{id:Gt("id").primaryKey().defaultRandom(),memoryId:Gt("memory_id").notNull().references(()=>T.id,{onDelete:"cascade"}),userId:Gt("user_id").notNull().references(()=>o.id,{onDelete:"cascade"}),memoryVersion:Uo("memory_version").notNull().default(1),taskPrompt:Se("task_prompt").notNull(),expectations:Se("expectations").array().notNull().default([]),trials:Uo("trials").notNull().default(10),model:Se("model"),status:Se("status").notNull().default("pending"),result:$r("result").$type(),error:Se("error"),createdAt:Vt("created_at",{withTimezone:!0}).notNull().defaultNow(),startedAt:Vt("started_at",{withTimezone:!0}),completedAt:Vt("completed_at",{withTimezone:!0})},e=>[Bo("idx_memory_experiments_memory").on(e.memoryId),Bo("idx_memory_experiments_user").on(e.userId)]);import{boolean as Yr,date as Qr,index as Ft,integer as Wr,jsonb as Xr,pgTable as Jt,text as A,timestamp as H,uniqueIndex as Zr,uuid as ce}from"drizzle-orm/pg-core";var Vo=Jt("announcements",{id:ce("id").primaryKey().defaultRandom(),version:A("version").notNull().unique(),releaseDate:Qr("release_date").notNull(),subject:A("subject").notNull(),htmlBody:A("html_body").notNull(),textBody:A("text_body").notNull(),sections:Xr("sections").notNull().default({}),status:A("status").notNull().default("draft"),recipientCount:Wr("recipient_count"),sentAt:H("sent_at",{withTimezone:!0}),sentBy:ce("sent_by"),error:A("error"),createdAt:H("created_at",{withTimezone:!0}).notNull().defaultNow(),updatedAt:H("updated_at",{withTimezone:!0}).notNull().defaultNow()},e=>[Ft("idx_announcements_status").on(e.status),Ft("idx_announcements_created").on(e.createdAt)]),Go=Jt("announcement_deliveries",{id:ce("id").primaryKey().defaultRandom(),announcementId:ce("announcement_id").notNull(),userId:ce("user_id").notNull(),email:A("email").notNull(),status:A("status").notNull().default("pending"),providerId:A("provider_id"),error:A("error"),sentAt:H("sent_at",{withTimezone:!0}),createdAt:H("created_at",{withTimezone:!0}).notNull().defaultNow()},e=>[Zr("uniq_announcement_deliveries_announcement_user").on(e.announcementId,e.userId),Ft("idx_announcement_deliveries_user").on(e.userId,e.createdAt)]),Fo=Jt("notification_preferences",{userId:ce("user_id").primaryKey(),productAnnouncements:Yr("product_announcements").notNull().default(!0),unsubscribeToken:A("unsubscribe_token").notNull().unique(),unsubscribedAt:H("unsubscribed_at",{withTimezone:!0}),createdAt:H("created_at",{withTimezone:!0}).notNull().defaultNow(),updatedAt:H("updated_at",{withTimezone:!0}).notNull().defaultNow()});import{pgTable as es,text as $t,timestamp as it,uuid as at,index as Jo}from"drizzle-orm/pg-core";var b=es("org_invitations",{id:at("id").primaryKey().defaultRandom(),orgId:at("org_id").notNull().references(()=>u.id,{onDelete:"cascade"}),email:$t("email").notNull(),role:$t("role").notNull().default("member"),teamId:at("team_id").references(()=>h.id,{onDelete:"set null"}),invitedBy:at("invited_by").notNull().references(()=>o.id,{onDelete:"cascade"}),token:$t("token").notNull().unique(),expiresAt:it("expires_at",{withTimezone:!0}).notNull(),acceptedAt:it("accepted_at",{withTimezone:!0}),revokedAt:it("revoked_at",{withTimezone:!0}),createdAt:it("created_at",{withTimezone:!0}).notNull().defaultNow()},e=>[Jo("idx_org_invitations_token").on(e.token),Jo("idx_org_invitations_org").on(e.orgId)]);import{pgTable as ts,text as os,timestamp as ns,jsonb as rs,uuid as Yt,index as $o}from"drizzle-orm/pg-core";var _e=ts("instruction_events",{id:Yt("id").primaryKey().defaultRandom(),instructionId:Yt("instruction_id").notNull().references(()=>r.id,{onDelete:"cascade"}),eventType:os("event_type").notNull(),actorId:Yt("actor_id").notNull(),metadata:rs("metadata"),createdAt:ns("created_at",{withTimezone:!0}).defaultNow()},e=>[$o("idx_instruction_events_instruction").on(e.instructionId),$o("idx_instruction_events_type").on(e.eventType)]);import{pgTable as Yo,text as dt,timestamp as Qo,uuid as j,integer as Wo,index as me,unique as ss}from"drizzle-orm/pg-core";var S=Yo("treatment_assignments",{id:j("id").primaryKey().defaultRandom(),userId:j("user_id").notNull().references(()=>o.id,{onDelete:"cascade"}),treatmentType:dt("treatment_type").notNull(),treatmentId:j("treatment_id").notNull(),treatmentVersion:Wo("treatment_version").notNull().default(1),projectId:j("project_id").references(()=>s.id,{onDelete:"set null"}),assignedBy:j("assigned_by").references(()=>o.id,{onDelete:"set null"}),method:dt("method").notNull(),assignedAt:Qo("assigned_at",{withTimezone:!0}).notNull().defaultNow()},e=>[me("idx_treatment_assignments_user").on(e.userId),me("idx_treatment_assignments_treatment").on(e.treatmentType,e.treatmentId),me("idx_treatment_assignments_project").on(e.projectId)]),K=Yo("treatment_exposures",{id:j("id").primaryKey().defaultRandom(),sessionId:j("session_id").notNull().references(()=>d.id,{onDelete:"cascade"}),userId:j("user_id").notNull().references(()=>o.id,{onDelete:"cascade"}),treatmentType:dt("treatment_type").notNull(),treatmentId:j("treatment_id").notNull(),treatmentVersion:Wo("treatment_version").notNull().default(1),assignmentId:j("assignment_id").references(()=>S.id,{onDelete:"set null"}),method:dt("method").notNull(),exposedAt:Qo("exposed_at",{withTimezone:!0}).notNull().defaultNow()},e=>[ss("treatment_exposures_unique").on(e.sessionId,e.treatmentType,e.treatmentId,e.treatmentVersion),me("idx_treatment_exposures_treatment").on(e.treatmentType,e.treatmentId),me("idx_treatment_exposures_user").on(e.userId),me("idx_treatment_exposures_session").on(e.sessionId)]);import{pgTable as is,text as Qt,timestamp as as,uuid as ut,integer as ds,index as Xo,uniqueIndex as us}from"drizzle-orm/pg-core";var Zo=is("pending_treatment_exposures",{id:ut("id").primaryKey().defaultRandom(),userId:ut("user_id").notNull().references(()=>o.id,{onDelete:"cascade"}),externalSessionId:Qt("external_session_id").notNull(),treatmentType:Qt("treatment_type").notNull(),treatmentId:ut("treatment_id").notNull(),treatmentVersion:ds("treatment_version").notNull().default(1),method:Qt("method").notNull().default("injected"),projectId:ut("project_id").references(()=>s.id,{onDelete:"set null"}),createdAt:as("created_at",{withTimezone:!0}).notNull().defaultNow()},e=>[us("pending_treatment_exposures_unique").on(e.externalSessionId,e.treatmentType,e.treatmentId,e.treatmentVersion),Xo("idx_pending_treatment_exposures_ext").on(e.externalSessionId),Xo("idx_pending_treatment_exposures_user").on(e.userId)]);import{pgTable as ls,text as pe,timestamp as Wt,uuid as Xt,jsonb as cs,uniqueIndex as _s,index as en}from"drizzle-orm/pg-core";var lt=ls("session_terminal_targets",{id:Xt("id").primaryKey().defaultRandom(),userId:Xt("user_id").notNull().references(()=>o.id,{onDelete:"cascade"}),sessionId:Xt("session_id").references(()=>d.id,{onDelete:"set null"}),externalSessionId:pe("external_session_id"),kind:pe("kind").notNull(),target:pe("target").notNull(),status:pe("status").notNull().default("active"),attachCommand:pe("attach_command").notNull(),projectPath:pe("project_path"),metadata:cs("metadata").notNull().default({}),lastSeenAt:Wt("last_seen_at",{withTimezone:!0}).defaultNow(),createdAt:Wt("created_at",{withTimezone:!0}).defaultNow(),updatedAt:Wt("updated_at",{withTimezone:!0}).defaultNow()},e=>[_s("idx_session_terminal_targets_user_target").on(e.userId,e.target),en("idx_session_terminal_targets_session").on(e.sessionId),en("idx_session_terminal_targets_user_status").on(e.userId,e.status)]);import{boolean as ms,index as ct,jsonb as tn,pgTable as ps,text as Z,timestamp as Ke,uuid as _t,integer as on}from"drizzle-orm/pg-core";var nn=ps("session_send_jobs",{id:_t("id").primaryKey().defaultRandom(),userId:_t("user_id").notNull(),sessionId:_t("session_id").notNull().references(()=>d.id,{onDelete:"cascade"}),terminalTargetId:_t("terminal_target_id").references(()=>lt.id,{onDelete:"set null"}),target:Z("target").notNull(),message:Z("message").notNull(),submit:ms("submit").notNull().default(!0),delivery:Z("delivery").notNull().default("live"),status:Z("status").notNull().default("pending"),result:tn("result"),error:Z("error"),attempts:on("attempts").notNull().default(0),taskKind:Z("task_kind"),payload:tn("payload"),claimedBy:Z("claimed_by"),claimedAt:Ke("claimed_at",{withTimezone:!0}),leaseExpiresAt:Ke("lease_expires_at",{withTimezone:!0}),leaseRecoveries:on("lease_recoveries").notNull().default(0),createdAt:Ke("created_at",{withTimezone:!0}).defaultNow(),updatedAt:Ke("updated_at",{withTimezone:!0}).defaultNow(),completedAt:Ke("completed_at",{withTimezone:!0})},e=>[ct("idx_session_send_jobs_user").on(e.userId),ct("idx_session_send_jobs_session").on(e.sessionId),ct("idx_session_send_jobs_status").on(e.status),ct("idx_session_send_jobs_pending").on(e.userId,e.status)]);import{pgTable as sn,text as ee,timestamp as mt,jsonb as an,uuid as V,integer as fs,boolean as xs,uniqueIndex as Ns,index as rn,primaryKey as gs}from"drizzle-orm/pg-core";var z=sn("packs",{id:V("id").primaryKey().defaultRandom(),name:ee("name").notNull(),description:ee("description").notNull(),scope:ee("scope").notNull(),scopeRef:V("scope_ref"),version:ee("version").notNull().default("1.0.0"),tags:ee("tags").array(),badge:ee("badge"),metadata:an("metadata"),createdBy:V("created_by"),createdAt:mt("created_at",{withTimezone:!0}).defaultNow(),updatedAt:mt("updated_at",{withTimezone:!0}).defaultNow(),archived:xs("archived").default(!1),archivedAt:mt("archived_at",{withTimezone:!0}),archivedBy:V("archived_by"),forkedFromId:V("forked_from_id").references(()=>z.id,{onDelete:"set null"}),upstreamVersion:ee("upstream_version")},e=>[Ns("packs_name_scope_ref_idx").on(e.name,e.scope,e.scopeRef),rn("idx_packs_scope").on(e.scope,e.scopeRef),rn("idx_packs_created_by").on(e.createdBy)]),G=sn("pack_instructions",{packId:V("pack_id").references(()=>z.id,{onDelete:"cascade"}).notNull(),instructionId:V("instruction_id").references(()=>r.id,{onDelete:"cascade"}).notNull(),position:fs("position").notNull().default(0),slotOverrides:an("slot_overrides"),addedAt:mt("added_at",{withTimezone:!0}).defaultNow(),addedBy:V("added_by")},e=>[gs({columns:[e.packId,e.instructionId]})]);import{pgTable as vs,text as Zt,timestamp as hs,jsonb as Is,uuid as eo,index as fe}from"drizzle-orm/pg-core";var xe=vs("instruction_usage_events",{id:eo("id").primaryKey().defaultRandom(),instructionId:eo("instruction_id").references(()=>r.id,{onDelete:"set null"}),userId:eo("user_id").notNull(),surface:Zt("surface").notNull(),action:Zt("action").notNull(),metadata:Is("metadata"),traceId:Zt("trace_id"),createdAt:hs("created_at",{withTimezone:!0}).defaultNow()},e=>[fe("idx_usage_events_instruction").on(e.instructionId),fe("idx_usage_events_user").on(e.userId),fe("idx_usage_events_surface").on(e.surface),fe("idx_usage_events_action").on(e.action),fe("idx_usage_events_created_at").on(e.createdAt),fe("idx_usage_events_user_created").on(e.userId,e.createdAt)]);import{pgTable as ys,text as pt,timestamp as dn,jsonb as Ts,uuid as un,index as to}from"drizzle-orm/pg-core";var ln=ys("worker_connections",{id:un("id").primaryKey().defaultRandom(),userId:un("user_id").notNull(),workerType:pt("worker_type").notNull().default("mcp"),clientName:pt("client_name").notNull(),clientVersion:pt("client_version"),workerVersion:pt("worker_version"),lastHeartbeat:dn("last_heartbeat",{withTimezone:!0}).notNull().defaultNow(),connectedAt:dn("connected_at",{withTimezone:!0}).notNull().defaultNow(),metadata:Ts("metadata")},e=>[to("idx_worker_connections_user").on(e.userId),to("idx_worker_connections_heartbeat").on(e.userId,e.lastHeartbeat),to("idx_worker_connections_type").on(e.userId,e.workerType)]);import{pgTable as ws,text as ft,timestamp as As,jsonb as zs,uuid as cn,index as _n}from"drizzle-orm/pg-core";var mn=ws("cli_setup_events",{id:cn("id").primaryKey().defaultRandom(),userId:cn("user_id").notNull(),deviceId:ft("device_id").notNull(),event:ft("event").notNull(),cliVersion:ft("cli_version"),os:ft("os"),props:zs("props").notNull().default({}),createdAt:As("created_at",{withTimezone:!0}).notNull().defaultNow()},e=>[_n("idx_cli_setup_events_user").on(e.userId,e.createdAt),_n("idx_cli_setup_events_device").on(e.deviceId,e.createdAt)]);import{pgTable as Ds,text as te,integer as Rs,boolean as js,timestamp as ks,jsonb as Es,uuid as bs,index as pn}from"drizzle-orm/pg-core";var fn=Ds("cli_error_events",{id:bs("id").primaryKey().defaultRandom(),deviceId:te("device_id"),event:te("event").notNull(),command:te("command"),statusCode:Rs("status_code"),message:te("message"),cliVersion:te("cli_version"),os:te("os"),nodeVersion:te("node_version"),proxied:js("proxied"),props:Es("props").notNull().default({}),createdAt:ks("created_at",{withTimezone:!0}).notNull().defaultNow()},e=>[pn("idx_cli_error_events_created").on(e.createdAt),pn("idx_cli_error_events_device").on(e.deviceId,e.createdAt)]);import{sql as Ss}from"drizzle-orm";import{pgTable as oe,text as _,timestamp as v,jsonb as w,uuid as c,integer as P,boolean as Pe,index as N,unique as xn}from"drizzle-orm/pg-core";var n=oe("eval_targets",{id:c("id").primaryKey().defaultRandom(),userId:c("user_id").notNull(),name:_("name").notNull(),type:_("type").notNull(),content:_("content").notNull(),description:_("description").notNull().default(""),metadata:w("metadata").notNull().default({}),version:P("version").notNull().default(1),parentId:c("parent_id").references(()=>n.id,{onDelete:"set null"}),createdAt:v("created_at",{withTimezone:!0}).defaultNow(),updatedAt:v("updated_at",{withTimezone:!0}).defaultNow()},e=>[N("eval_targets_name_user_idx").on(e.name,e.userId),N("idx_eval_targets_user").on(e.userId),N("idx_eval_targets_type").on(e.type),N("idx_eval_targets_parent").on(e.parentId)]),C=oe("evals",{id:c("id").primaryKey().defaultRandom(),evalTargetId:c("eval_target_id").notNull().references(()=>n.id,{onDelete:"cascade"}),name:_("name").notNull(),prompt:_("prompt").notNull(),expectedOutput:_("expected_output").notNull().default(""),files:w("files").notNull().default([]),expectations:w("expectations").notNull().default([]),retiredAt:v("retired_at",{withTimezone:!0}),retiredReason:_("retired_reason"),createdAt:v("created_at",{withTimezone:!0}).defaultNow(),updatedAt:v("updated_at",{withTimezone:!0}).defaultNow(),contentUpdatedAt:v("content_updated_at",{withTimezone:!0}).notNull().defaultNow()},e=>[N("idx_evals_target").on(e.evalTargetId),N("idx_evals_target_active").on(e.evalTargetId).where(Ss`${e.retiredAt} IS NULL`)]),k=oe("eval_runs",{id:c("id").primaryKey().defaultRandom(),jobId:c("job_id"),evalId:c("eval_id").notNull().references(()=>C.id,{onDelete:"cascade"}),evalTargetId:c("eval_target_id").notNull().references(()=>n.id,{onDelete:"cascade"}),evalTargetVersion:P("eval_target_version").notNull(),configuration:_("configuration").notNull(),runNumber:P("run_number").notNull().default(1),iteration:P("iteration").notNull().default(1),status:_("status").notNull().default("completed"),outputs:w("outputs").notNull().default({}),timing:w("timing").notNull().default({}),grading:w("grading").notNull().default({}),comparison:w("comparison"),createdAt:v("created_at",{withTimezone:!0}).defaultNow()},e=>[N("idx_eval_runs_eval").on(e.evalId),N("idx_eval_runs_target").on(e.evalTargetId),N("idx_eval_runs_iteration").on(e.evalTargetId,e.iteration)]),Nn=oe("eval_comparisons",{id:c("id").primaryKey().defaultRandom(),userId:c("user_id").notNull(),targetAId:c("target_a_id").notNull().references(()=>n.id,{onDelete:"cascade"}),targetBId:c("target_b_id").notNull().references(()=>n.id,{onDelete:"cascade"}),targetAVersion:P("target_a_version").notNull(),targetBVersion:P("target_b_version").notNull(),isSwapped:Pe("is_swapped").notNull().default(!1),winnerTargetId:c("winner_target_id").references(()=>n.id,{onDelete:"set null"}),perEval:w("per_eval").notNull().default([]),overall:w("overall").notNull().default({}),rawOutput:_("raw_output"),model:_("model"),status:_("status").notNull().default("completed"),createdAt:v("created_at",{withTimezone:!0}).defaultNow()},e=>[N("idx_eval_comparisons_target_a").on(e.targetAId),N("idx_eval_comparisons_target_b").on(e.targetBId),N("idx_eval_comparisons_user").on(e.userId)]),gn=oe("eval_grade_annotations",{id:c("id").primaryKey().defaultRandom(),userId:c("user_id").notNull(),evalRunId:c("eval_run_id").notNull().references(()=>k.id,{onDelete:"cascade"}),evalTargetId:c("eval_target_id").notNull().references(()=>n.id,{onDelete:"cascade"}),expectationIndex:P("expectation_index").notNull(),expectationText:_("expectation_text").notNull(),judgePassed:Pe("judge_passed").notNull(),judgeMethod:_("judge_method").notNull(),judgeModel:_("judge_model"),verdict:_("verdict").notNull(),flag:_("flag"),note:_("note"),createdAt:v("created_at",{withTimezone:!0}).defaultNow(),updatedAt:v("updated_at",{withTimezone:!0}).defaultNow()},e=>[N("idx_eval_grade_annotations_target").on(e.evalTargetId),N("idx_eval_grade_annotations_run").on(e.evalRunId),xn("eval_grade_annotations_eval_run_id_expectation_index_key").on(e.evalRunId,e.expectationIndex)]),vn=oe("judge_reviewer_verdicts",{id:c("id").primaryKey().defaultRandom(),userId:c("user_id").notNull(),evalTargetId:c("eval_target_id").notNull().references(()=>n.id,{onDelete:"cascade"}),evalRunId:c("eval_run_id").notNull().references(()=>k.id,{onDelete:"cascade"}),expectationIndex:P("expectation_index").notNull(),expectationText:_("expectation_text").notNull(),judgePassed:Pe("judge_passed").notNull(),humanPassed:Pe("human_passed").notNull(),reviewerEngine:_("reviewer_engine").notNull(),reviewerModel:_("reviewer_model").notNull(),reviewerPassed:Pe("reviewer_passed").notNull(),resolvedAt:v("resolved_at",{withTimezone:!0}),resolution:_("resolution"),createdAt:v("created_at",{withTimezone:!0}).defaultNow(),updatedAt:v("updated_at",{withTimezone:!0}).defaultNow()},e=>[N("idx_jrv_target").on(e.evalTargetId),xn("judge_reviewer_verdicts_eval_run_id_expectation_index_review_key").on(e.evalRunId,e.expectationIndex,e.reviewerModel)]),Ne=oe("benchmarks",{id:c("id").primaryKey().defaultRandom(),evalTargetId:c("eval_target_id").notNull().references(()=>n.id,{onDelete:"cascade"}),iteration:P("iteration").notNull().default(1),runSummary:w("run_summary").notNull().default({}),notes:w("notes").notNull().default([]),feedback:w("feedback"),createdAt:v("created_at",{withTimezone:!0}).defaultNow()},e=>[N("idx_benchmarks_target").on(e.evalTargetId)]);import{sql as oo}from"drizzle-orm";import{pgTable as Ks,text as O,timestamp as Ps,jsonb as xt,uuid as Nt,boolean as Cs,index as Ce,uniqueIndex as Os}from"drizzle-orm/pg-core";var hn=Ks("instruction_promotions",{id:Nt("id").primaryKey().defaultRandom(),userId:Nt("user_id").notNull(),evalTargetId:Nt("eval_target_id").notNull().references(()=>n.id,{onDelete:"cascade"}),instructionId:Nt("instruction_id").references(()=>r.id,{onDelete:"set null"}),fromContentHash:O("from_content_hash").notNull(),toContentHash:O("to_content_hash").notNull(),fromContent:O("from_content").notNull(),toContent:O("to_content").notNull(),proposalSource:O("proposal_source").notNull(),proposalRationale:O("proposal_rationale").notNull().default(""),decision:O("decision").notNull(),applied:Cs("applied").notNull().default(!1),refusals:xt("refusals").notNull().default([]),rationale:O("rationale").notNull().default(""),effectClass:O("effect_class").notNull(),verdict:xt("verdict").notNull().default({}),gates:xt("gates").notNull().default({}),touchedSections:xt("touched_sections").notNull().default([]),createdAt:Ps("created_at",{withTimezone:!0}).notNull().defaultNow()},e=>[Ce("idx_instruction_promotions_budget").on(e.evalTargetId,e.createdAt.desc()).where(oo`${e.applied}`),Ce("idx_instruction_promotions_target").on(e.evalTargetId,e.createdAt.desc()),Ce("idx_instruction_promotions_user").on(e.userId,e.createdAt.desc()),Ce("idx_instruction_promotions_to_hash").on(e.toContentHash),Os("uq_instruction_promotions_applied").on(e.evalTargetId,e.fromContentHash,e.toContentHash).where(oo`${e.applied}`),Ce("idx_instruction_promotions_applied_hash").on(e.toContentHash,e.createdAt.desc()).where(oo`${e.applied}`)]);import{pgTable as yn,text as no,timestamp as ro,jsonb as Tn,uuid as ge,integer as Oe,index as gt,real as In}from"drizzle-orm/pg-core";var ve=yn("trigger_evals",{id:ge("id").primaryKey().defaultRandom(),evalTargetId:ge("eval_target_id").notNull().references(()=>n.id,{onDelete:"cascade"}),userId:ge("user_id").notNull(),queries:Tn("queries").notNull().default([]),status:no("status").notNull().default("pending_review"),trainIndices:Oe("train_indices").array().default([]),testIndices:Oe("test_indices").array().default([]),createdAt:ro("created_at",{withTimezone:!0}).defaultNow(),updatedAt:ro("updated_at",{withTimezone:!0}).defaultNow()},e=>[gt("idx_trigger_evals_target").on(e.evalTargetId),gt("idx_trigger_evals_user").on(e.userId)]),he=yn("optimization_runs",{id:ge("id").primaryKey().defaultRandom(),evalTargetId:ge("eval_target_id").notNull().references(()=>n.id,{onDelete:"cascade"}),userId:ge("user_id").notNull(),type:no("type").notNull(),iteration:Oe("iteration").notNull(),inputVersion:Oe("input_version").notNull(),outputVersion:Oe("output_version"),trainScore:In("train_score"),testScore:In("test_score"),analysis:Tn("analysis").notNull().default({}),status:no("status").notNull().default("running"),createdAt:ro("created_at",{withTimezone:!0}).defaultNow()},e=>[gt("idx_optimization_runs_target").on(e.evalTargetId),gt("idx_optimization_runs_user").on(e.userId)]);import{pgTable as qs,text as F,timestamp as Ms,jsonb as qe,uuid as so,integer as io,real as Ls,index as Me,uniqueIndex as wn}from"drizzle-orm/pg-core";var J=qs("context_snapshots",{id:so("id").primaryKey().defaultRandom(),sessionId:so("session_id").references(()=>d.id,{onDelete:"cascade"}),userId:so("user_id").notNull().references(()=>o.id,{onDelete:"cascade"}),sequence:io("sequence").notNull().default(0),provider:F("provider").notNull(),model:F("model").notNull(),systemPrompt:F("system_prompt").notNull(),injectedInstructions:qe("injected_instructions").notNull().default([]),messagesSummary:qe("messages_summary").notNull(),tools:qe("tools").notNull().default([]),systemHash:F("system_hash").notNull(),requestHash:F("request_hash").notNull().default(""),toolsHash:F("tools_hash"),injectedHash:F("injected_hash"),messagesDelta:qe("messages_delta").default([]),messagesDeltaRef:F("messages_delta_ref"),maxTokens:io("max_tokens"),temperature:Ls("temperature"),estimatedTokens:io("estimated_tokens"),capturedAt:Ms("captured_at",{withTimezone:!0}).notNull().defaultNow(),metadata:qe("metadata").default({})},e=>[Me("idx_context_snapshots_session").on(e.sessionId),Me("idx_context_snapshots_user").on(e.userId),Me("idx_context_snapshots_hash").on(e.systemHash),Me("idx_context_snapshots_request_hash").on(e.requestHash),wn("idx_snapshots_session_request").on(e.sessionId,e.requestHash),wn("idx_snapshots_session_sequence").on(e.sessionId,e.sequence),Me("idx_context_snapshots_user_session_captured").on(e.userId,e.sessionId,e.capturedAt.desc())]);import{pgTable as Us,text as An,timestamp as Bs,jsonb as Hs,integer as Vs,index as Gs}from"drizzle-orm/pg-core";var zn=Us("content_blobs",{hash:An("hash").primaryKey(),contentType:An("content_type").notNull(),content:Hs("content").notNull(),sizeBytes:Vs("size_bytes").notNull().default(0),createdAt:Bs("created_at",{withTimezone:!0}).defaultNow()},e=>[Gs("idx_content_blobs_type").on(e.contentType)]);import{pgTable as Fs,text as vt,timestamp as Le,jsonb as ht,uuid as ao,index as It,integer as Dn}from"drizzle-orm/pg-core";var Ie=Fs("eval_jobs",{id:ao("id").primaryKey().defaultRandom(),userId:ao("user_id").notNull(),evalTargetId:ao("eval_target_id").notNull().references(()=>n.id,{onDelete:"cascade"}),status:vt("status").notNull().default("pending"),config:ht("config").notNull().default({}),progress:ht("progress").notNull().default({}),result:ht("result"),error:vt("error"),attempts:Dn("attempts").notNull().default(0),taskKind:vt("task_kind"),payload:ht("payload"),claimedBy:vt("claimed_by"),claimedAt:Le("claimed_at",{withTimezone:!0}),leaseExpiresAt:Le("lease_expires_at",{withTimezone:!0}),leaseRecoveries:Dn("lease_recoveries").notNull().default(0),createdAt:Le("created_at",{withTimezone:!0}).defaultNow(),updatedAt:Le("updated_at",{withTimezone:!0}).defaultNow(),completedAt:Le("completed_at",{withTimezone:!0})},e=>[It("idx_eval_jobs_user").on(e.userId),It("idx_eval_jobs_target").on(e.evalTargetId),It("idx_eval_jobs_status").on(e.status),It("idx_eval_jobs_pending").on(e.userId,e.status)]);import{pgTable as Js,text as Ue,timestamp as Be,jsonb as Rn,uuid as jn,integer as kn,index as En}from"drizzle-orm/pg-core";var bn=Js("agent_jobs",{id:jn("id").primaryKey().defaultRandom(),userId:jn("user_id").notNull(),taskKind:Ue("task_kind").notNull(),status:Ue("status").notNull().default("pending"),payload:Rn("payload").notNull(),dedupeKey:Ue("dedupe_key"),result:Rn("result"),error:Ue("error"),attempts:kn("attempts").notNull().default(0),claimedBy:Ue("claimed_by"),claimedAt:Be("claimed_at",{withTimezone:!0}),leaseExpiresAt:Be("lease_expires_at",{withTimezone:!0}),leaseRecoveries:kn("lease_recoveries").notNull().default(0),createdAt:Be("created_at",{withTimezone:!0}).notNull().defaultNow(),updatedAt:Be("updated_at",{withTimezone:!0}).notNull().defaultNow(),completedAt:Be("completed_at",{withTimezone:!0})},e=>[En("idx_agent_jobs_claim").on(e.userId,e.status,e.taskKind,e.createdAt),En("idx_agent_jobs_dedupe").on(e.userId,e.taskKind,e.dedupeKey)]);import{pgTable as $s,text as He,timestamp as Ve,jsonb as yt,uuid as uo,index as Tt,integer as Sn}from"drizzle-orm/pg-core";var Kn=$s("insights_jobs",{id:uo("id").primaryKey().defaultRandom(),userId:uo("user_id").notNull(),status:He("status").notNull().default("pending"),projectPath:He("project_path"),projectId:uo("project_id").references(()=>s.id,{onDelete:"set null"}),config:yt("config").notNull().default({}),progress:yt("progress").notNull().default({}),result:yt("result"),error:He("error"),attempts:Sn("attempts").notNull().default(0),taskKind:He("task_kind"),payload:yt("payload"),claimedBy:He("claimed_by"),claimedAt:Ve("claimed_at",{withTimezone:!0}),leaseExpiresAt:Ve("lease_expires_at",{withTimezone:!0}),leaseRecoveries:Sn("lease_recoveries").notNull().default(0),createdAt:Ve("created_at",{withTimezone:!0}).defaultNow(),updatedAt:Ve("updated_at",{withTimezone:!0}).defaultNow(),completedAt:Ve("completed_at",{withTimezone:!0})},e=>[Tt("idx_insights_jobs_user").on(e.userId),Tt("idx_insights_jobs_status").on(e.status),Tt("idx_insights_jobs_pending").on(e.userId,e.status),Tt("idx_insights_jobs_project").on(e.projectId)]);import{pgTable as Ys,text as lo,timestamp as wt,uuid as Pn,index as Qs,uniqueIndex as Ws}from"drizzle-orm/pg-core";var ye=Ys("api_keys",{id:Pn("id").primaryKey().defaultRandom(),userId:Pn("user_id").notNull().references(()=>o.id,{onDelete:"cascade"}),name:lo("name").notNull(),keyHash:lo("key_hash").notNull(),keyPrefix:lo("key_prefix").notNull(),lastUsedAt:wt("last_used_at",{withTimezone:!0}),expiresAt:wt("expires_at",{withTimezone:!0}),revokedAt:wt("revoked_at",{withTimezone:!0}),createdAt:wt("created_at",{withTimezone:!0}).defaultNow()},e=>[Qs("idx_api_keys_user").on(e.userId),Ws("idx_api_keys_hash").on(e.keyHash)]);import{pgTable as Xs,text as co,timestamp as Cn,uuid as Zs,index as ei}from"drizzle-orm/pg-core";var On=Xs("extension_auth_codes",{code:co("code").primaryKey(),userId:Zs("user_id").notNull().references(()=>o.id,{onDelete:"cascade"}),editor:co("editor"),email:co("email"),expiresAt:Cn("expires_at",{withTimezone:!0}).notNull(),createdAt:Cn("created_at",{withTimezone:!0}).defaultNow()},e=>[ei("idx_ext_auth_codes_expiry").on(e.expiresAt)]);import{pgTable as ti,text as oi,timestamp as qn,jsonb as ni,uuid as _o,index as Mn}from"drizzle-orm/pg-core";var Te=ti("eval_conversations",{id:_o("id").primaryKey().defaultRandom(),evalTargetId:_o("eval_target_id").notNull().references(()=>n.id,{onDelete:"cascade"}),userId:_o("user_id").notNull(),messages:ni("messages").notNull().default([]),status:oi("status").notNull().default("active"),createdAt:qn("created_at",{withTimezone:!0}).defaultNow(),updatedAt:qn("updated_at",{withTimezone:!0}).defaultNow()},e=>[Mn("idx_eval_conversations_target").on(e.evalTargetId),Mn("idx_eval_conversations_user").on(e.userId)]);import{pgTable as ri,text as q,timestamp as Ln,jsonb as si,uuid as mo}from"drizzle-orm/pg-core";var Un=ri("skill_submissions",{id:mo("id").primaryKey().defaultRandom(),skillId:q("skill_id").notNull(),name:q("name").notNull(),description:q("description").notNull(),category:q("category").notNull(),tools:q("tools").array().notNull(),tags:q("tags").array().default([]),content:q("content").notNull(),status:q("status").notNull().default("pending"),submittedBy:mo("submitted_by").notNull(),reviewedBy:mo("reviewed_by"),reviewNote:q("review_note"),metadata:si("metadata"),createdAt:Ln("created_at",{withTimezone:!0}).defaultNow(),updatedAt:Ln("updated_at",{withTimezone:!0}).defaultNow()});import{pgTable as ii,text as Ge,timestamp as Bn,jsonb as ai,uuid as di,uniqueIndex as ui,index as Hn}from"drizzle-orm/pg-core";var Vn=ii("harness_releases",{id:di("id").primaryKey().defaultRandom(),harness:Ge("harness").notNull(),version:Ge("version").notNull(),publishedAt:Bn("published_at",{withTimezone:!0}).notNull(),title:Ge("title"),body:Ge("body"),categories:ai("categories").default({}),url:Ge("url"),createdAt:Bn("created_at",{withTimezone:!0}).defaultNow()},e=>[ui("idx_harness_releases_unique").on(e.harness,e.version),Hn("idx_harness_releases_harness").on(e.harness),Hn("idx_harness_releases_published").on(e.publishedAt)]);import{pgTable as li,text as we,timestamp as Gn,jsonb as ci,uuid as Fn,index as Jn,uniqueIndex as _i}from"drizzle-orm/pg-core";var po=li("notifications",{id:Fn("id").primaryKey().defaultRandom(),userId:Fn("user_id").notNull(),type:we("type").notNull(),title:we("title").notNull(),body:we("body"),url:we("url"),sourceTable:we("source_table"),sourceId:we("source_id"),metadata:ci("metadata").notNull().default({}),readAt:Gn("read_at",{withTimezone:!0}),createdAt:Gn("created_at",{withTimezone:!0}).notNull().defaultNow()},e=>[Jn("idx_notifications_user_created").on(e.userId,e.createdAt),Jn("idx_notifications_user_unread").on(e.userId),_i("idx_notifications_source_dedup").on(e.userId,e.sourceTable,e.sourceId)]);import{pgTable as mi,text as Fe,timestamp as Je,jsonb as fo,uuid as xo,index as At,integer as $n}from"drizzle-orm/pg-core";var Ae=mi("launch_jobs",{id:xo("id").primaryKey().defaultRandom(),userId:xo("user_id").notNull(),tool:Fe("tool").notNull(),status:Fe("status").notNull().default("pending"),config:fo("config").notNull().default({}),result:fo("result"),error:Fe("error"),attempts:$n("attempts").notNull().default(0),taskKind:Fe("task_kind"),payload:fo("payload"),claimedBy:Fe("claimed_by"),claimedAt:Je("claimed_at",{withTimezone:!0}),leaseExpiresAt:Je("lease_expires_at",{withTimezone:!0}),leaseRecoveries:$n("lease_recoveries").notNull().default(0),createdAt:Je("created_at",{withTimezone:!0}).defaultNow(),updatedAt:Je("updated_at",{withTimezone:!0}).defaultNow(),completedAt:Je("completed_at",{withTimezone:!0}),runId:xo("run_id").references(()=>g.id,{onDelete:"set null"})},e=>[At("idx_launch_jobs_user").on(e.userId),At("idx_launch_jobs_status").on(e.status),At("idx_launch_jobs_pending").on(e.userId,e.status),At("idx_launch_jobs_run").on(e.runId)]);import{pgTable as Yn,uuid as M,text as ze,real as pi,timestamp as zt,boolean as fi,uniqueIndex as xi,index as $e}from"drizzle-orm/pg-core";var Qn=["add","remove","trim"],No=Yn("instruction_suggestions",{id:M("id").primaryKey().defaultRandom(),userId:M("user_id").notNull().references(()=>o.id,{onDelete:"cascade"}),instructionId:M("instruction_id").notNull().references(()=>r.id,{onDelete:"cascade"}),projectPath:ze("project_path").notNull(),projectId:M("project_id").references(()=>s.id,{onDelete:"set null"}),score:pi("score").notNull(),reason:ze("reason").notNull(),kind:ze("kind").$type().notNull().default("add"),generatedAt:zt("generated_at",{withTimezone:!0}).notNull().defaultNow(),isStale:fi("is_stale").notNull().default(!1),dismissedAt:zt("dismissed_at",{withTimezone:!0}),acceptedAt:zt("accepted_at",{withTimezone:!0}),promotedToInstructionId:M("promoted_to_instruction_id").references(()=>r.id,{onDelete:"set null"})},e=>[xi("idx_instruction_suggestions_user_project_instruction_kind").on(e.userId,e.projectPath,e.instructionId,e.kind),$e("idx_instruction_suggestions_user_project").on(e.userId,e.projectPath),$e("idx_instruction_suggestions_user_proj_id").on(e.userId,e.projectId),$e("idx_instruction_suggestions_generated_at").on(e.generatedAt)]),Wn=Yn("instruction_suggestion_events",{id:M("id").primaryKey().defaultRandom(),suggestionId:M("suggestion_id").notNull().references(()=>No.id,{onDelete:"cascade"}),userId:M("user_id").notNull().references(()=>o.id,{onDelete:"cascade"}),eventType:ze("event_type").notNull(),tool:ze("tool"),sessionId:M("session_id"),projectPath:ze("project_path").notNull(),createdAt:zt("created_at",{withTimezone:!0}).notNull().defaultNow()},e=>[$e("idx_instruction_suggestion_events_suggestion_id").on(e.suggestionId),$e("idx_instruction_suggestion_events_user_id").on(e.userId)]);import{pgTable as Ni,text as go,integer as gi,numeric as Ye,timestamp as vo,index as vi,primaryKey as hi}from"drizzle-orm/pg-core";var Xn=Ni("model_pricing",{provider:go("provider").notNull(),modelId:go("model_id").notNull(),inputPerM:Ye("input_per_m").notNull(),outputPerM:Ye("output_per_m").notNull(),cacheReadPerM:Ye("cache_read_per_m").notNull(),cacheWrite5mPerM:Ye("cache_write_5m_per_m").notNull(),cacheWrite1hPerM:Ye("cache_write_1h_per_m").notNull(),contextWindow:gi("context_window"),effectiveFrom:vo("effective_from",{withTimezone:!0}).notNull(),effectiveUntil:vo("effective_until",{withTimezone:!0}),source:go("source").notNull(),verifiedAt:vo("verified_at",{withTimezone:!0})},e=>[hi({columns:[e.provider,e.modelId,e.effectiveFrom]}),vi("idx_model_pricing_active").on(e.provider,e.modelId,e.effectiveFrom.desc())]);import{pgTable as Ii,text as ne,numeric as Zn,timestamp as er,uuid as tr,jsonb as yi,index as or}from"drizzle-orm/pg-core";var nr=Ii("limit_observations",{id:tr("id").primaryKey().defaultRandom(),observedAt:er("observed_at",{withTimezone:!0}).notNull().defaultNow(),provider:ne("provider").notNull(),plan:ne("plan").notNull(),limitType:ne("limit_type").notNull(),value:Zn("value").notNull(),unit:ne("unit").notNull(),comparator:ne("comparator").notNull().default("="),resetsAt:er("resets_at",{withTimezone:!0}),sourceType:ne("source_type").notNull(),sourceUrl:ne("source_url"),sourceEvidence:yi("source_evidence"),confidence:Zn("confidence").notNull(),userId:tr("user_id")},e=>[or("idx_limit_obs_lookup").on(e.provider,e.plan,e.limitType,e.observedAt.desc()),or("idx_limit_obs_user").on(e.userId,e.observedAt.desc())]);import{pgTable as Ti,text as Dt,timestamp as wi,uuid as Ai,jsonb as zi,boolean as Di,uniqueIndex as Ri}from"drizzle-orm/pg-core";var rr=Ti("provider_docs_snapshots",{id:Ai("id").primaryKey().defaultRandom(),fetchedAt:wi("fetched_at",{withTimezone:!0}).notNull().defaultNow(),provider:Dt("provider").notNull(),docUrl:Dt("doc_url").notNull(),contentHash:Dt("content_hash").notNull(),content:Dt("content").notNull(),parseSuccess:Di("parse_success").notNull(),parseErrors:zi("parse_errors")},e=>[Ri("idx_docs_dedup").on(e.provider,e.docUrl,e.contentHash)]);import{pgTable as ji,text as Rt,numeric as sr,timestamp as ir,uuid as ki,primaryKey as Ei,index as bi}from"drizzle-orm/pg-core";var ar=ji("plan_limits_active",{provider:Rt("provider").notNull(),plan:Rt("plan").notNull(),limitType:Rt("limit_type").notNull(),value:sr("value").notNull(),unit:Rt("unit").notNull(),effectiveFrom:ir("effective_from",{withTimezone:!0}).notNull(),effectiveUntil:ir("effective_until",{withTimezone:!0}),confidence:sr("confidence").notNull(),sourceObservationIds:ki("source_observation_ids").array().notNull()},e=>[Ei({columns:[e.provider,e.plan,e.limitType,e.effectiveFrom]}),bi("idx_plan_limits_lookup").on(e.provider,e.plan,e.limitType,e.effectiveFrom.desc())]);import{pgTable as Si,text as ho,timestamp as Ki,uuid as dr,jsonb as Pi,index as Ci}from"drizzle-orm/pg-core";var ur=Si("alert_dispatches",{id:dr("id").primaryKey().defaultRandom(),userId:dr("user_id").notNull(),alertKey:ho("alert_key").notNull(),severity:ho("severity").notNull(),lastDispatchedAt:Ki("last_dispatched_at",{withTimezone:!0}).notNull().defaultNow(),lastState:Pi("last_state").notNull(),channel:ho("channel").notNull()},e=>[Ci("idx_alert_user_key").on(e.userId,e.alertKey,e.lastDispatchedAt.desc())]);import{pgTable as Oi,text as Io,timestamp as lr,uuid as yo,integer as qi,index as Mi,unique as Li}from"drizzle-orm/pg-core";var cr=Oi("scaffolding_fingerprints",{id:yo("id").primaryKey().defaultRandom(),userId:yo("user_id").notNull(),harness:Io("harness").notNull(),model:Io("model").notNull(),toolsHash:Io("tools_hash").notNull(),firstSeenAt:lr("first_seen_at",{withTimezone:!0}).notNull().defaultNow(),lastSeenAt:lr("last_seen_at",{withTimezone:!0}).notNull().defaultNow(),snapshotCount:qi("snapshot_count").notNull().default(1),firstSessionId:yo("first_session_id")},e=>[Li("scaffolding_fingerprints_user_id_harness_model_tools_hash_key").on(e.userId,e.harness,e.model,e.toolsHash),Mi("idx_scaffolding_fp_segment").on(e.userId,e.harness,e.model)]);import{pgTable as Ui,text as To,timestamp as Bi,jsonb as Hi,uuid as _r,integer as Vi,unique as Gi}from"drizzle-orm/pg-core";var mr=Ui("scaffolding_segments",{id:_r("id").primaryKey().defaultRandom(),userId:_r("user_id").notNull(),harness:To("harness").notNull(),model:To("model").notNull(),coreNames:Hi("core_names").notNull(),coreHash:To("core_hash").notNull(),activeFingerprints:Vi("active_fingerprints").notNull(),computedAt:Bi("computed_at",{withTimezone:!0}).notNull().defaultNow()},e=>[Gi("scaffolding_segments_user_id_harness_model_key").on(e.userId,e.harness,e.model)]);import{drizzle as gr}from"drizzle-orm/postgres-js";import vr from"postgres";var jt={};Or(jt,{SUGGESTION_KINDS:()=>Qn,agentJobs:()=>bn,agentRuns:()=>g,agentRunsRelations:()=>ia,alertDispatches:()=>ur,announcementDeliveries:()=>Go,announcements:()=>Vo,apiKeys:()=>ye,apiKeysRelations:()=>Ji,benchmarks:()=>Ne,benchmarksRelations:()=>ga,cliErrorEvents:()=>fn,cliSetupEvents:()=>mn,contentBlobs:()=>zn,contextSnapshots:()=>J,contextSnapshotsRelations:()=>Ta,evalComparisons:()=>Nn,evalConversations:()=>Te,evalConversationsRelations:()=>ya,evalGradeAnnotations:()=>gn,evalJobs:()=>Ie,evalJobsRelations:()=>Ia,evalRuns:()=>k,evalRunsRelations:()=>Na,evalTargets:()=>n,evalTargetsRelations:()=>fa,evals:()=>C,evalsRelations:()=>xa,extensionAuthCodes:()=>On,harnessReleases:()=>Vn,insightsJobs:()=>Kn,instructionEvents:()=>_e,instructionEventsRelations:()=>ea,instructionPromotions:()=>hn,instructionSuggestionEvents:()=>Wn,instructionSuggestions:()=>No,instructionUsageEvents:()=>xe,instructionUsageEventsRelations:()=>pa,instructionVersionIdentities:()=>Po,instructionVersions:()=>ae,instructionVersionsRelations:()=>oa,instructions:()=>r,instructionsRelations:()=>Zi,judgeReviewerVerdicts:()=>vn,launchJobs:()=>Ae,launchJobsRelations:()=>aa,limitObservations:()=>nr,memories:()=>T,memoriesRelations:()=>ta,memoryExperiments:()=>Ho,modelPricing:()=>Xn,notificationPreferences:()=>Fo,notifications:()=>po,optimizationRuns:()=>he,optimizationRunsRelations:()=>ha,orgInvitations:()=>b,orgInvitationsRelations:()=>Qi,organizations:()=>u,organizationsRelations:()=>$i,packInstructions:()=>G,packInstructionsRelations:()=>ma,packs:()=>z,packsRelations:()=>_a,pendingTreatmentExposures:()=>Zo,planLimitsActive:()=>ar,profiles:()=>o,profilesRelations:()=>Fi,projectCheckouts:()=>Oo,projectInstructions:()=>U,projectInstructionsRelations:()=>ra,projects:()=>s,projectsRelations:()=>na,providerDocsSnapshots:()=>rr,scaffoldingFingerprints:()=>cr,scaffoldingSegments:()=>mr,sessionEvents:()=>ue,sessionEventsRelations:()=>da,sessionInstructions:()=>B,sessionInstructionsRelations:()=>ua,sessionSendJobs:()=>nn,sessionTerminalTargets:()=>lt,sessions:()=>d,sessionsRelations:()=>sa,skillSubmissions:()=>Un,teams:()=>h,teamsRelations:()=>Yi,treatmentAssignments:()=>S,treatmentAssignmentsRelations:()=>la,treatmentExposures:()=>K,treatmentExposuresRelations:()=>ca,triggerEvals:()=>ve,triggerEvalsRelations:()=>va,userOrganizations:()=>se,userOrganizationsRelations:()=>Wi,userTeams:()=>ie,userTeamsRelations:()=>Xi,workerConnections:()=>ln});import{relations as i}from"drizzle-orm";var Fi=i(o,({many:e})=>({sessions:e(d),contextSnapshots:e(J),apiKeys:e(ye)})),Ji=i(ye,({one:e})=>({profile:e(o,{fields:[ye.userId],references:[o.id]})})),$i=i(u,({many:e})=>({teams:e(h),userOrganizations:e(se),projects:e(s),invitations:e(b)})),Yi=i(h,({one:e,many:t})=>({organization:e(u,{fields:[h.orgId],references:[u.id]}),userTeams:t(ie),invitations:t(b)})),Qi=i(b,({one:e})=>({organization:e(u,{fields:[b.orgId],references:[u.id]}),team:e(h,{fields:[b.teamId],references:[h.id]}),inviter:e(o,{fields:[b.invitedBy],references:[o.id]})})),Wi=i(se,({one:e})=>({organization:e(u,{fields:[se.orgId],references:[u.id]})})),Xi=i(ie,({one:e})=>({team:e(h,{fields:[ie.teamId],references:[h.id]})})),Zi=i(r,({one:e,many:t})=>({versions:t(ae),projectInstructions:t(U),events:t(_e),usageEvents:t(xe),sessionInstructions:t(B),packInstructions:t(G),forkedFrom:e(r,{fields:[r.forkedFromId],references:[r.id]})})),ea=i(_e,({one:e})=>({instruction:e(r,{fields:[_e.instructionId],references:[r.id]})})),ta=i(T,({one:e,many:t})=>({project:e(s,{fields:[T.projectId],references:[s.id]}),parent:e(T,{fields:[T.parentId],references:[T.id]}),versions:t(T)})),oa=i(ae,({one:e})=>({instruction:e(r,{fields:[ae.instructionId],references:[r.id]})})),na=i(s,({one:e,many:t})=>({organization:e(u,{fields:[s.orgId],references:[u.id]}),projectInstructions:t(U),sessions:t(d)})),ra=i(U,({one:e})=>({project:e(s,{fields:[U.projectId],references:[s.id]}),instruction:e(r,{fields:[U.instructionId],references:[r.id]})})),sa=i(d,({one:e,many:t})=>({profile:e(o,{fields:[d.userId],references:[o.id]}),project:e(s,{fields:[d.projectId],references:[s.id]}),run:e(g,{fields:[d.runId],references:[g.id]}),events:t(ue),sessionInstructions:t(B),treatmentExposures:t(K),contextSnapshots:t(J)})),ia=i(g,({one:e,many:t})=>({profile:e(o,{fields:[g.userId],references:[o.id]}),organization:e(u,{fields:[g.orgId],references:[u.id]}),project:e(s,{fields:[g.projectId],references:[s.id]}),sessions:t(d),launchJobs:t(Ae)})),aa=i(Ae,({one:e})=>({run:e(g,{fields:[Ae.runId],references:[g.id]})})),da=i(ue,({one:e})=>({session:e(d,{fields:[ue.sessionId],references:[d.id]})})),ua=i(B,({one:e})=>({session:e(d,{fields:[B.sessionId],references:[d.id]}),instruction:e(r,{fields:[B.instructionId],references:[r.id]})})),la=i(S,({one:e,many:t})=>({owner:e(o,{fields:[S.userId],references:[o.id]}),project:e(s,{fields:[S.projectId],references:[s.id]}),exposures:t(K)})),ca=i(K,({one:e})=>({session:e(d,{fields:[K.sessionId],references:[d.id]}),owner:e(o,{fields:[K.userId],references:[o.id]}),assignment:e(S,{fields:[K.assignmentId],references:[S.id]})})),_a=i(z,({one:e,many:t})=>({packInstructions:t(G),forkedFrom:e(z,{fields:[z.forkedFromId],references:[z.id]})})),ma=i(G,({one:e})=>({pack:e(z,{fields:[G.packId],references:[z.id]}),instruction:e(r,{fields:[G.instructionId],references:[r.id]})})),pa=i(xe,({one:e})=>({instruction:e(r,{fields:[xe.instructionId],references:[r.id]})})),fa=i(n,({one:e,many:t})=>({parent:e(n,{fields:[n.parentId],references:[n.id]}),evals:t(C),evalRuns:t(k),benchmarks:t(Ne),triggerEvals:t(ve),optimizationRuns:t(he),evalJobs:t(Ie),evalConversations:t(Te)})),xa=i(C,({one:e,many:t})=>({evalTarget:e(n,{fields:[C.evalTargetId],references:[n.id]}),runs:t(k)})),Na=i(k,({one:e})=>({eval:e(C,{fields:[k.evalId],references:[C.id]}),evalTarget:e(n,{fields:[k.evalTargetId],references:[n.id]})})),ga=i(Ne,({one:e})=>({evalTarget:e(n,{fields:[Ne.evalTargetId],references:[n.id]})})),va=i(ve,({one:e})=>({evalTarget:e(n,{fields:[ve.evalTargetId],references:[n.id]})})),ha=i(he,({one:e})=>({evalTarget:e(n,{fields:[he.evalTargetId],references:[n.id]})})),Ia=i(Ie,({one:e})=>({evalTarget:e(n,{fields:[Ie.evalTargetId],references:[n.id]})})),ya=i(Te,({one:e})=>({evalTarget:e(n,{fields:[Te.evalTargetId],references:[n.id]})})),Ta=i(J,({one:e})=>({session:e(d,{fields:[J.sessionId],references:[d.id]}),profile:e(o,{fields:[J.userId],references:[o.id]})}));var Qe=0,pr=0,We=0,fr=0;var wa=0;function wo(){Qe++,Qe>pr&&(pr=Qe)}p(wo,"trackDbOpStart");function Ao(){Qe>0&&Qe--}p(Ao,"trackDbOpEnd");function zo(){We++,We>fr&&(fr=We)}p(zo,"trackHeavyDbOpStart");function Do(){We>0&&We--}p(Do,"trackHeavyDbOpEnd");function xr(){wa++}p(xr,"recordQueryDeadline");var Et,St,Ro=!1,kt;var Nr,Kt,bt;function hr(e){let t=process.env[e];if(!t)throw new Error(`Missing required env var: ${e}`);return t}p(hr,"getEnv");function Ir(){if(Ro)throw new Error("getDb() called after closeDb(): the connection pool is closed for shutdown. Stop issuing queries (timers/requests) before draining the pool.");if(!Et){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,m=Number(process.env.PG_IDLE_TIMEOUT)||5,f=Number(process.env.PG_KEEP_ALIVE_S)||60;St=vr(hr("DATABASE_URL"),{prepare:!1,max:t,connect_timeout:a,idle_timeout:m,keep_alive:f,max_lifetime:300,connection:{application_name:e,...l>0?{statement_timeout:l}:{}}}),Et=gr(St,{schema:jt})}return Et}p(Ir,"getDb");function yr(){if(Ro)throw new Error("getHeavyDb() called after closeDb(): the connection pool is closed for shutdown. Stop issuing queries (timers/requests) before draining the pool.");if(!bt){let e=(process.env.PG_APPLICATION_NAME||"rulemetric")+":heavy",t=Number(process.env.PG_HEAVY_POOL_MAX)||2;Kt=vr(hr("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}}),bt=gr(Kt,{schema:jt})}return bt}p(yr,"getHeavyDb");async function Aa(){if(kt)return kt;Ro=!0;let e=St,t=Nr,a=Kt;return St=void 0,Et=void 0,Nr=void 0,Kt=void 0,bt=void 0,kt=Promise.allSettled([e?e.end({timeout:5}):Promise.resolve(),t?t.end({timeout:5}):Promise.resolve(),a?a.end({timeout:5}):Promise.resolve()]).then(()=>{}),kt}p(Aa,"closeDb");var za=new Set(["CONNECT_TIMEOUT","ETIMEDOUT","ENOTFOUND","ECONNREFUSED","EAI_AGAIN"]);function Tr(e){let t=e,a=t?.code??t?.cause?.code??t?.errno;return a!==void 0&&za.has(a)}p(Tr,"isRetryableConnectError");var Da=new Set(["CONNECTION_CLOSED","ECONNRESET","EPIPE"]);function wr(e){let t=e,a=t?.code??t?.cause?.code??t?.errno;return a!==void 0&&Da.has(a)}p(wr,"isRetryableResetError");async function Ar(e,t={}){let a=t.attempts??3,l=t.baseMs??100,m;for(let f=0;f<a;f++)try{return await e()}catch(y){m=y;let De=Tr(y)||t.retryResets===!0&&wr(y);if(f===a-1||!De)throw y;await new Promise($=>setTimeout($,l*2**f))}throw m}p(Ar,"withDbRetry");var Pt=class extends Error{static{p(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 zr(){let e=Number(process.env.PG_QUERY_DEADLINE_MS);return Number.isFinite(e)&&e>=0?e:2e4}p(zr,"queryDeadlineMs");function Ra(e,t){let a,l=new Promise((m,f)=>{a=setTimeout(()=>{xr(),f(new Pt(t))},t);let y=a;typeof y.unref=="function"&&y.unref()});return Promise.race([e,l]).finally(()=>clearTimeout(a))}p(Ra,"raceWithDeadline");var Dr=new Set(["select","selectDistinct","selectDistinctOn","insert","update","delete","execute","with","$count","refreshMaterializedView"]),Rr=new Set(["select","selectDistinct","selectDistinctOn","$count"]);function jo(e,t=!1,a=0,l=!1){return e===null||typeof e!="object"&&typeof e!="function"?e:new Proxy(e,{get(m,f,y){if(f==="then"){let $=Reflect.get(m,f,y);return typeof $!="function"?$:(Er,br)=>{let Sr=l?zo:wo,Kr=l?Do:Ao;Sr();let ko=Ar(()=>new Promise((Pr,Cr)=>$.call(m,Pr,Cr)),{retryResets:t});return(a>0?Ra(ko,a):ko).finally(Kr).then(Er,br)}}let De=Reflect.get(m,f,y);return typeof De=="function"?(...$)=>jo(De.apply(m,$),t,a,l):De}})}p(jo,"wrapBuilder");function jr(e,t=!1){let a=t?zo:wo,l=t?Do:Ao;a();try{return Promise.resolve(e()).finally(l)}catch(m){throw l(),m}}p(jr,"gaugeTransaction");var kr=new Proxy({},{get(e,t){let a=Ir(),l=a[t];if(typeof t=="string"&&Dr.has(t)&&typeof l=="function"){let m=Rr.has(t),f=zr();return(...y)=>jo(l.apply(a,y),m,f)}return t==="transaction"&&typeof l=="function"?(...m)=>jr(()=>l.apply(a,m)):l}}),ja=new Proxy({},{get(e,t){let a=yr(),l=a[t];if(typeof t=="string"&&Dr.has(t)&&typeof l=="function"){let m=Rr.has(t);return(...f)=>jo(l.apply(a,f),m,0,!0)}return t==="transaction"&&typeof l=="function"?(...m)=>jr(()=>l.apply(a,m),!0):l}});export{o as a,g as b,d as c,T as d,Ho as e,Vo as f,Go as g,Fo as h,Ir as i,Aa as j};
|
|
1
|
+
import{a as p,c as Or}from"./chunk-ZLLER3HP.js";import{boolean as qr,date as Mr,index as Ct,integer as Lr,jsonb as Ur,pgTable as Ot,text as A,timestamp as L,uniqueIndex as Br,uuid as re}from"drizzle-orm/pg-core";var Eo=Ot("announcements",{id:re("id").primaryKey().defaultRandom(),version:A("version").notNull().unique(),releaseDate:Mr("release_date").notNull(),subject:A("subject").notNull(),htmlBody:A("html_body").notNull(),textBody:A("text_body").notNull(),sections:Ur("sections").notNull().default({}),status:A("status").notNull().default("draft"),recipientCount:Lr("recipient_count"),sentAt:L("sent_at",{withTimezone:!0}),sentBy:re("sent_by"),error:A("error"),createdAt:L("created_at",{withTimezone:!0}).notNull().defaultNow(),updatedAt:L("updated_at",{withTimezone:!0}).notNull().defaultNow()},e=>[Ct("idx_announcements_status").on(e.status),Ct("idx_announcements_created").on(e.createdAt)]),bo=Ot("announcement_deliveries",{id:re("id").primaryKey().defaultRandom(),announcementId:re("announcement_id").notNull(),userId:re("user_id").notNull(),email:A("email").notNull(),status:A("status").notNull().default("pending"),providerId:A("provider_id"),error:A("error"),sentAt:L("sent_at",{withTimezone:!0}),createdAt:L("created_at",{withTimezone:!0}).notNull().defaultNow()},e=>[Br("uniq_announcement_deliveries_announcement_user").on(e.announcementId,e.userId),Ct("idx_announcement_deliveries_user").on(e.userId,e.createdAt)]),So=Ot("notification_preferences",{userId:re("user_id").primaryKey(),productAnnouncements:qr("product_announcements").notNull().default(!0),unsubscribeToken:A("unsubscribe_token").notNull().unique(),unsubscribedAt:L("unsubscribed_at",{withTimezone:!0}),createdAt:L("created_at",{withTimezone:!0}).notNull().defaultNow(),updatedAt:L("updated_at",{withTimezone:!0}).notNull().defaultNow()});import{boolean as Co,pgTable as Hr,text as Ze,timestamp as qt,uuid as Oo}from"drizzle-orm/pg-core";import{pgTable as Xe,text as se,timestamp as Re,jsonb as Ko,uuid as Y,primaryKey as Po}from"drizzle-orm/pg-core";var u=Xe("organizations",{id:Y("id").primaryKey().defaultRandom(),name:se("name").unique().notNull(),slug:se("slug").unique().notNull(),metadata:Ko("metadata"),createdAt:Re("created_at",{withTimezone:!0}).defaultNow(),updatedAt:Re("updated_at",{withTimezone:!0}).defaultNow()}),h=Xe("teams",{id:Y("id").primaryKey().defaultRandom(),orgId:Y("org_id").references(()=>u.id,{onDelete:"cascade"}),name:se("name").notNull(),slug:se("slug").notNull(),metadata:Ko("metadata"),createdAt:Re("created_at",{withTimezone:!0}).defaultNow()}),ie=Xe("user_organizations",{userId:Y("user_id").notNull(),orgId:Y("org_id").references(()=>u.id,{onDelete:"cascade"}).notNull(),role:se("role").notNull().default("member"),createdAt:Re("created_at",{withTimezone:!0}).defaultNow()},e=>[Po({columns:[e.userId,e.orgId]})]),ae=Xe("user_teams",{userId:Y("user_id").notNull(),teamId:Y("team_id").references(()=>h.id,{onDelete:"cascade"}).notNull(),role:se("role").notNull().default("member"),createdAt:Re("created_at",{withTimezone:!0}).defaultNow()},e=>[Po({columns:[e.userId,e.teamId]})]);var o=Hr("profiles",{id:Oo("id").primaryKey(),email:Ze("email"),displayName:Ze("display_name"),activeOrgId:Oo("active_org_id").references(()=>u.id,{onDelete:"set null"}),isSuperadmin:Co("is_superadmin").notNull().default(!1),claudeCodePlan:Ze("claude_code_plan"),planSource:Ze("plan_source").notNull().default("detected"),setupCompletedAt:qt("setup_completed_at",{withTimezone:!0}),liveSendSkipped:Co("live_send_skipped").notNull().default(!1),createdAt:qt("created_at",{withTimezone:!0}).defaultNow(),updatedAt:qt("updated_at",{withTimezone:!0}).defaultNow()});import{pgTable as Vr,text as Mt,timestamp as et,uuid as tt,index as qo}from"drizzle-orm/pg-core";var E=Vr("org_invitations",{id:tt("id").primaryKey().defaultRandom(),orgId:tt("org_id").notNull().references(()=>u.id,{onDelete:"cascade"}),email:Mt("email").notNull(),role:Mt("role").notNull().default("member"),teamId:tt("team_id").references(()=>h.id,{onDelete:"set null"}),invitedBy:tt("invited_by").notNull().references(()=>o.id,{onDelete:"cascade"}),token:Mt("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=>[qo("idx_org_invitations_token").on(e.token),qo("idx_org_invitations_org").on(e.orgId)]);import{pgTable as Lt,text as x,timestamp as U,jsonb as ot,uuid as D,integer as nt,boolean as Gr,uniqueIndex as rt,index as je}from"drizzle-orm/pg-core";var r=Lt("instructions",{id:D("id").primaryKey().defaultRandom(),name:x("name").notNull(),description:x("description").notNull(),type:x("type").notNull().default("instruction"),scope:x("scope").notNull(),scopeRef:D("scope_ref"),version:x("version").notNull(),content:x("content").notNull(),frontmatter:ot("frontmatter").notNull(),slots:ot("slots"),tags:x("tags").array(),compatibility:x("compatibility").array(),createdBy:D("created_by"),createdAt:U("created_at",{withTimezone:!0}).defaultNow(),updatedAt:U("updated_at",{withTimezone:!0}).defaultNow(),archived:Gr("archived").default(!1),archivedAt:U("archived_at",{withTimezone:!0}),archivedBy:D("archived_by"),forkedFromId:D("forked_from_id").references(()=>r.id,{onDelete:"set null"}),upstreamVersion:x("upstream_version"),badge:x("badge"),contentHash:x("content_hash"),contextIdentity:x("context_identity"),scanScore:nt("scan_score"),scanFindings:ot("scan_findings"),popularityScore:nt("popularity_score"),sourceUpdatedAt:U("source_updated_at",{withTimezone:!0})},e=>[rt("instructions_name_scope_ref_idx").on(e.name,e.scope,e.scopeRef),je("idx_instructions_scope").on(e.scope,e.scopeRef),je("idx_instructions_created_by").on(e.createdBy),je("idx_instructions_context_identity").on(e.createdBy,e.contextIdentity),je("idx_instructions_public_recency").on(e.scope,e.sourceUpdatedAt.desc())]),Mo=Lt("instruction_version_identities",{id:D("id").primaryKey().defaultRandom(),instructionId:D("instruction_id").notNull().references(()=>r.id,{onDelete:"cascade"}),contentHash:x("content_hash").notNull(),versionOrdinal:nt("version_ordinal").notNull(),content:x("content"),firstSeenAt:U("first_seen_at",{withTimezone:!0}).notNull().defaultNow(),lastSeenAt:U("last_seen_at",{withTimezone:!0}).notNull().defaultNow(),createdAt:U("created_at",{withTimezone:!0}).notNull().defaultNow()},e=>[rt("instruction_version_identities_hash_unique").on(e.instructionId,e.contentHash),rt("instruction_version_identities_ordinal_unique").on(e.instructionId,e.versionOrdinal),je("idx_ivi_instruction").on(e.instructionId)]),de=Lt("instruction_versions",{id:D("id").primaryKey().defaultRandom(),instructionId:D("instruction_id").references(()=>r.id,{onDelete:"cascade"}),versionNumber:nt("version_number").notNull(),content:x("content").notNull(),frontmatter:ot("frontmatter").notNull(),changeSummary:x("change_summary"),createdBy:D("created_by"),createdAt:U("created_at",{withTimezone:!0}).defaultNow()},e=>[rt("instruction_versions_instruction_version_idx").on(e.instructionId,e.versionNumber)]);import{pgTable as Fr,text as Jr,timestamp as $r,jsonb as Yr,uuid as Ut,index as Lo}from"drizzle-orm/pg-core";var ue=Fr("instruction_events",{id:Ut("id").primaryKey().defaultRandom(),instructionId:Ut("instruction_id").notNull().references(()=>r.id,{onDelete:"cascade"}),eventType:Jr("event_type").notNull(),actorId:Ut("actor_id").notNull(),metadata:Yr("metadata"),createdAt:$r("created_at",{withTimezone:!0}).defaultNow()},e=>[Lo("idx_instruction_events_instruction").on(e.instructionId),Lo("idx_instruction_events_type").on(e.eventType)]);import{boolean as Qr,jsonb as Wr,pgTable as Ht,primaryKey as Uo,text as Q,timestamp as ke,uniqueIndex as Bt,uuid as W}from"drizzle-orm/pg-core";import{sql as Xr}from"drizzle-orm";var s=Ht("projects",{id:W("id").primaryKey().defaultRandom(),orgId:W("org_id").references(()=>u.id,{onDelete:"cascade"}),name:Q("name").notNull(),description:Q("description"),githubRepo:Q("github_repo"),gitRemoteUrl:Q("git_remote_url"),gitRootCommit:Q("git_root_commit"),gitRemoteAliases:Q("git_remote_aliases").array().notNull().default([]),metadata:Wr("metadata"),createdBy:W("created_by"),createdAt:ke("created_at",{withTimezone:!0}).defaultNow(),updatedAt:ke("updated_at",{withTimezone:!0}).defaultNow()},e=>[Bt("projects_org_name_idx").on(e.orgId,e.name),Bt("projects_git_remote_url_unique").on(e.gitRemoteUrl).where(Xr`${e.gitRemoteUrl} IS NOT NULL`)]),B=Ht("project_instructions",{projectId:W("project_id").references(()=>s.id,{onDelete:"cascade"}).notNull(),instructionId:W("instruction_id").references(()=>r.id,{onDelete:"cascade"}).notNull(),addedAt:ke("added_at",{withTimezone:!0}).defaultNow(),addedBy:W("added_by")},e=>[Uo({columns:[e.projectId,e.instructionId]})]),Bo=Ht("project_checkouts",{projectId:W("project_id").references(()=>s.id,{onDelete:"cascade"}).notNull(),path:Q("path").notNull(),isWorktree:Qr("is_worktree").notNull().default(!1),firstSeen:ke("first_seen",{withTimezone:!0}).notNull().defaultNow(),lastSeen:ke("last_seen",{withTimezone:!0}).notNull().defaultNow()},e=>[Uo({columns:[e.projectId,e.path]}),Bt("project_checkouts_path_unique").on(e.path)]);import{pgTable as Ft,text as I,timestamp as Ee,jsonb as X,uuid as b,integer as it,uniqueIndex as Vo,index as R}from"drizzle-orm/pg-core";import{pgTable as Zr,text as le,timestamp as Vt,jsonb as Ho,uuid as st,integer as es,boolean as ts,index as Gt}from"drizzle-orm/pg-core";var g=Zr("agent_runs",{id:st("id").primaryKey().defaultRandom(),userId:st("user_id").notNull().references(()=>o.id,{onDelete:"cascade"}),orgId:st("org_id").references(()=>u.id,{onDelete:"set null"}),projectId:st("project_id").references(()=>s.id,{onDelete:"set null"}),projectPath:le("project_path"),gitRemote:le("git_remote"),baseBranch:le("base_branch"),title:le("title"),prompt:le("prompt"),toolSpec:Ho("tool_spec").notNull().default([]),autoWorktree:ts("auto_worktree").notNull().default(!0),status:le("status").notNull().default("pending"),sessionCount:es("session_count").notNull().default(0),metadata:Ho("metadata").notNull().default({}),createdAt:Vt("created_at",{withTimezone:!0}).notNull().defaultNow(),updatedAt:Vt("updated_at",{withTimezone:!0}).notNull().defaultNow(),completedAt:Vt("completed_at",{withTimezone:!0})},e=>[Gt("idx_agent_runs_user").on(e.userId),Gt("idx_agent_runs_org_created").on(e.orgId,e.createdAt),Gt("idx_agent_runs_project").on(e.projectId)]);var d=Ft("sessions",{id:b("id").primaryKey().defaultRandom(),userId:b("user_id").notNull().references(()=>o.id,{onDelete:"cascade"}),externalSessionId:I("external_session_id"),projectId:b("project_id").references(()=>s.id,{onDelete:"set null"}),orgId:b("org_id").references(()=>u.id,{onDelete:"set null"}),tool:I("tool").notNull(),projectPath:I("project_path"),gitBranch:I("git_branch"),startedAt:Ee("started_at",{withTimezone:!0}).notNull(),endedAt:Ee("ended_at",{withTimezone:!0}),eventCount:it("event_count").default(0),tokenUsage:X("token_usage"),analysis:X("analysis"),analyzedAt:Ee("analyzed_at",{withTimezone:!0}),analyzedEventCount:it("analyzed_event_count"),analyzedTurnCount:it("analyzed_turn_count"),metadata:X("metadata").default({}),origin:I("origin").notNull().default("unknown"),runId:b("run_id").references(()=>g.id,{onDelete:"set null"}),model:I("model"),harnessVersion:I("harness_version"),createdAt:Ee("created_at",{withTimezone:!0}).defaultNow()},e=>[R("idx_sessions_user").on(e.userId),R("idx_sessions_tool").on(e.tool),R("idx_sessions_started_at").on(e.startedAt),R("idx_sessions_project").on(e.projectId),R("idx_sessions_org_started_at").on(e.orgId,e.startedAt),R("idx_sessions_run").on(e.runId),Vo("idx_sessions_user_external").on(e.userId,e.externalSessionId)]),ce=Ft("session_events",{id:b("id").primaryKey().defaultRandom(),sessionId:b("session_id").notNull().references(()=>d.id,{onDelete:"cascade"}),sequence:it("sequence").notNull(),eventType:I("event_type").notNull(),content:I("content"),toolName:I("tool_name"),toolInput:X("tool_input"),toolOutput:X("tool_output"),tokenUsage:X("token_usage"),model:I("model"),timestamp:Ee("timestamp",{withTimezone:!0}).notNull(),metadata:X("metadata").default({})},e=>[Vo("session_events_session_sequence_idx").on(e.sessionId,e.sequence),R("idx_session_events_session_id").on(e.sessionId),R("idx_session_events_event_type").on(e.eventType),R("idx_session_events_model").on(e.model)]),H=Ft("session_instructions",{sessionId:b("session_id").notNull().references(()=>d.id,{onDelete:"cascade"}),instructionId:b("instruction_id").notNull().references(()=>r.id,{onDelete:"cascade"}),linkMethod:I("link_method").notNull(),contentHash:I("content_hash")},e=>[R("idx_session_instructions_instruction_id").on(e.instructionId)]);import{pgTable as Go,text as at,timestamp as Fo,uuid as j,integer as Jo,index as _e,unique as os}from"drizzle-orm/pg-core";var S=Go("treatment_assignments",{id:j("id").primaryKey().defaultRandom(),userId:j("user_id").notNull().references(()=>o.id,{onDelete:"cascade"}),treatmentType:at("treatment_type").notNull(),treatmentId:j("treatment_id").notNull(),treatmentVersion:Jo("treatment_version").notNull().default(1),projectId:j("project_id").references(()=>s.id,{onDelete:"set null"}),assignedBy:j("assigned_by").references(()=>o.id,{onDelete:"set null"}),method:at("method").notNull(),assignedAt:Fo("assigned_at",{withTimezone:!0}).notNull().defaultNow()},e=>[_e("idx_treatment_assignments_user").on(e.userId),_e("idx_treatment_assignments_treatment").on(e.treatmentType,e.treatmentId),_e("idx_treatment_assignments_project").on(e.projectId)]),K=Go("treatment_exposures",{id:j("id").primaryKey().defaultRandom(),sessionId:j("session_id").notNull().references(()=>d.id,{onDelete:"cascade"}),userId:j("user_id").notNull().references(()=>o.id,{onDelete:"cascade"}),treatmentType:at("treatment_type").notNull(),treatmentId:j("treatment_id").notNull(),treatmentVersion:Jo("treatment_version").notNull().default(1),assignmentId:j("assignment_id").references(()=>S.id,{onDelete:"set null"}),method:at("method").notNull(),exposedAt:Fo("exposed_at",{withTimezone:!0}).notNull().defaultNow()},e=>[os("treatment_exposures_unique").on(e.sessionId,e.treatmentType,e.treatmentId,e.treatmentVersion),_e("idx_treatment_exposures_treatment").on(e.treatmentType,e.treatmentId),_e("idx_treatment_exposures_user").on(e.userId),_e("idx_treatment_exposures_session").on(e.sessionId)]);import{pgTable as ns,text as Jt,timestamp as rs,uuid as dt,integer as ss,index as $o,uniqueIndex as is}from"drizzle-orm/pg-core";var Yo=ns("pending_treatment_exposures",{id:dt("id").primaryKey().defaultRandom(),userId:dt("user_id").notNull().references(()=>o.id,{onDelete:"cascade"}),externalSessionId:Jt("external_session_id").notNull(),treatmentType:Jt("treatment_type").notNull(),treatmentId:dt("treatment_id").notNull(),treatmentVersion:ss("treatment_version").notNull().default(1),method:Jt("method").notNull().default("injected"),projectId:dt("project_id").references(()=>s.id,{onDelete:"set null"}),createdAt:rs("created_at",{withTimezone:!0}).notNull().defaultNow()},e=>[is("pending_treatment_exposures_unique").on(e.externalSessionId,e.treatmentType,e.treatmentId,e.treatmentVersion),$o("idx_pending_treatment_exposures_ext").on(e.externalSessionId),$o("idx_pending_treatment_exposures_user").on(e.userId)]);import{pgTable as as,text as me,timestamp as $t,uuid as be,integer as Qo,index as ut}from"drizzle-orm/pg-core";var T=as("memories",{id:be("id").primaryKey().defaultRandom(),userId:be("user_id").notNull().references(()=>o.id,{onDelete:"cascade"}),orgId:be("org_id"),projectId:be("project_id").references(()=>s.id,{onDelete:"set null"}),version:Qo("version").notNull().default(1),parentId:be("parent_id").references(()=>T.id,{onDelete:"set null"}),kind:me("kind").notNull(),title:me("title").notNull(),body:me("body").notNull(),source:me("source").notNull(),status:me("status").notNull().default("active"),trustClass:me("trust_class"),trustVersion:Qo("trust_version"),trustComputedAt:$t("trust_computed_at",{withTimezone:!0}),createdAt:$t("created_at",{withTimezone:!0}).notNull().defaultNow(),updatedAt:$t("updated_at",{withTimezone:!0}).notNull().defaultNow()},e=>[ut("idx_memories_user").on(e.userId),ut("idx_memories_project").on(e.projectId),ut("idx_memories_parent").on(e.parentId),ut("idx_memories_user_status").on(e.userId,e.status)]);import{pgTable as ds,text as Se,timestamp as Yt,uuid as Qt,integer as Wo,jsonb as us,index as Xo}from"drizzle-orm/pg-core";var Zo=ds("memory_experiments",{id:Qt("id").primaryKey().defaultRandom(),memoryId:Qt("memory_id").notNull().references(()=>T.id,{onDelete:"cascade"}),userId:Qt("user_id").notNull().references(()=>o.id,{onDelete:"cascade"}),memoryVersion:Wo("memory_version").notNull().default(1),taskPrompt:Se("task_prompt").notNull(),expectations:Se("expectations").array().notNull().default([]),trials:Wo("trials").notNull().default(10),model:Se("model"),status:Se("status").notNull().default("pending"),result:us("result").$type(),error:Se("error"),createdAt:Yt("created_at",{withTimezone:!0}).notNull().defaultNow(),startedAt:Yt("started_at",{withTimezone:!0}),completedAt:Yt("completed_at",{withTimezone:!0})},e=>[Xo("idx_memory_experiments_memory").on(e.memoryId),Xo("idx_memory_experiments_user").on(e.userId)]);import{pgTable as ls,text as pe,timestamp as Wt,uuid as Xt,jsonb as cs,uniqueIndex as _s,index as en}from"drizzle-orm/pg-core";var lt=ls("session_terminal_targets",{id:Xt("id").primaryKey().defaultRandom(),userId:Xt("user_id").notNull().references(()=>o.id,{onDelete:"cascade"}),sessionId:Xt("session_id").references(()=>d.id,{onDelete:"set null"}),externalSessionId:pe("external_session_id"),kind:pe("kind").notNull(),target:pe("target").notNull(),status:pe("status").notNull().default("active"),attachCommand:pe("attach_command").notNull(),projectPath:pe("project_path"),metadata:cs("metadata").notNull().default({}),lastSeenAt:Wt("last_seen_at",{withTimezone:!0}).defaultNow(),createdAt:Wt("created_at",{withTimezone:!0}).defaultNow(),updatedAt:Wt("updated_at",{withTimezone:!0}).defaultNow()},e=>[_s("idx_session_terminal_targets_user_target").on(e.userId,e.target),en("idx_session_terminal_targets_session").on(e.sessionId),en("idx_session_terminal_targets_user_status").on(e.userId,e.status)]);import{boolean as ms,index as ct,jsonb as tn,pgTable as ps,text as Z,timestamp as Ke,uuid as _t,integer as on}from"drizzle-orm/pg-core";var nn=ps("session_send_jobs",{id:_t("id").primaryKey().defaultRandom(),userId:_t("user_id").notNull(),sessionId:_t("session_id").notNull().references(()=>d.id,{onDelete:"cascade"}),terminalTargetId:_t("terminal_target_id").references(()=>lt.id,{onDelete:"set null"}),target:Z("target").notNull(),message:Z("message").notNull(),submit:ms("submit").notNull().default(!0),delivery:Z("delivery").notNull().default("live"),status:Z("status").notNull().default("pending"),result:tn("result"),error:Z("error"),attempts:on("attempts").notNull().default(0),taskKind:Z("task_kind"),payload:tn("payload"),claimedBy:Z("claimed_by"),claimedAt:Ke("claimed_at",{withTimezone:!0}),leaseExpiresAt:Ke("lease_expires_at",{withTimezone:!0}),leaseRecoveries:on("lease_recoveries").notNull().default(0),createdAt:Ke("created_at",{withTimezone:!0}).defaultNow(),updatedAt:Ke("updated_at",{withTimezone:!0}).defaultNow(),completedAt:Ke("completed_at",{withTimezone:!0})},e=>[ct("idx_session_send_jobs_user").on(e.userId),ct("idx_session_send_jobs_session").on(e.sessionId),ct("idx_session_send_jobs_status").on(e.status),ct("idx_session_send_jobs_pending").on(e.userId,e.status)]);import{pgTable as sn,text as ee,timestamp as mt,jsonb as an,uuid as V,integer as fs,boolean as xs,uniqueIndex as Ns,index as rn,primaryKey as gs}from"drizzle-orm/pg-core";var z=sn("packs",{id:V("id").primaryKey().defaultRandom(),name:ee("name").notNull(),description:ee("description").notNull(),scope:ee("scope").notNull(),scopeRef:V("scope_ref"),version:ee("version").notNull().default("1.0.0"),tags:ee("tags").array(),badge:ee("badge"),metadata:an("metadata"),createdBy:V("created_by"),createdAt:mt("created_at",{withTimezone:!0}).defaultNow(),updatedAt:mt("updated_at",{withTimezone:!0}).defaultNow(),archived:xs("archived").default(!1),archivedAt:mt("archived_at",{withTimezone:!0}),archivedBy:V("archived_by"),forkedFromId:V("forked_from_id").references(()=>z.id,{onDelete:"set null"}),upstreamVersion:ee("upstream_version")},e=>[Ns("packs_name_scope_ref_idx").on(e.name,e.scope,e.scopeRef),rn("idx_packs_scope").on(e.scope,e.scopeRef),rn("idx_packs_created_by").on(e.createdBy)]),G=sn("pack_instructions",{packId:V("pack_id").references(()=>z.id,{onDelete:"cascade"}).notNull(),instructionId:V("instruction_id").references(()=>r.id,{onDelete:"cascade"}).notNull(),position:fs("position").notNull().default(0),slotOverrides:an("slot_overrides"),addedAt:mt("added_at",{withTimezone:!0}).defaultNow(),addedBy:V("added_by")},e=>[gs({columns:[e.packId,e.instructionId]})]);import{pgTable as vs,text as Zt,timestamp as hs,jsonb as Is,uuid as eo,index as fe}from"drizzle-orm/pg-core";var xe=vs("instruction_usage_events",{id:eo("id").primaryKey().defaultRandom(),instructionId:eo("instruction_id").references(()=>r.id,{onDelete:"set null"}),userId:eo("user_id").notNull(),surface:Zt("surface").notNull(),action:Zt("action").notNull(),metadata:Is("metadata"),traceId:Zt("trace_id"),createdAt:hs("created_at",{withTimezone:!0}).defaultNow()},e=>[fe("idx_usage_events_instruction").on(e.instructionId),fe("idx_usage_events_user").on(e.userId),fe("idx_usage_events_surface").on(e.surface),fe("idx_usage_events_action").on(e.action),fe("idx_usage_events_created_at").on(e.createdAt),fe("idx_usage_events_user_created").on(e.userId,e.createdAt)]);import{pgTable as ys,text as pt,timestamp as dn,jsonb as Ts,uuid as un,index as to}from"drizzle-orm/pg-core";var ln=ys("worker_connections",{id:un("id").primaryKey().defaultRandom(),userId:un("user_id").notNull(),workerType:pt("worker_type").notNull().default("mcp"),clientName:pt("client_name").notNull(),clientVersion:pt("client_version"),workerVersion:pt("worker_version"),lastHeartbeat:dn("last_heartbeat",{withTimezone:!0}).notNull().defaultNow(),connectedAt:dn("connected_at",{withTimezone:!0}).notNull().defaultNow(),metadata:Ts("metadata")},e=>[to("idx_worker_connections_user").on(e.userId),to("idx_worker_connections_heartbeat").on(e.userId,e.lastHeartbeat),to("idx_worker_connections_type").on(e.userId,e.workerType)]);import{pgTable as ws,text as ft,timestamp as As,jsonb as zs,uuid as cn,index as _n}from"drizzle-orm/pg-core";var mn=ws("cli_setup_events",{id:cn("id").primaryKey().defaultRandom(),userId:cn("user_id").notNull(),deviceId:ft("device_id").notNull(),event:ft("event").notNull(),cliVersion:ft("cli_version"),os:ft("os"),props:zs("props").notNull().default({}),createdAt:As("created_at",{withTimezone:!0}).notNull().defaultNow()},e=>[_n("idx_cli_setup_events_user").on(e.userId,e.createdAt),_n("idx_cli_setup_events_device").on(e.deviceId,e.createdAt)]);import{pgTable as Ds,text as te,integer as Rs,boolean as js,timestamp as ks,jsonb as Es,uuid as bs,index as pn}from"drizzle-orm/pg-core";var fn=Ds("cli_error_events",{id:bs("id").primaryKey().defaultRandom(),deviceId:te("device_id"),event:te("event").notNull(),command:te("command"),statusCode:Rs("status_code"),message:te("message"),cliVersion:te("cli_version"),os:te("os"),nodeVersion:te("node_version"),proxied:js("proxied"),props:Es("props").notNull().default({}),createdAt:ks("created_at",{withTimezone:!0}).notNull().defaultNow()},e=>[pn("idx_cli_error_events_created").on(e.createdAt),pn("idx_cli_error_events_device").on(e.deviceId,e.createdAt)]);import{sql as Ss}from"drizzle-orm";import{pgTable as oe,text as _,timestamp as v,jsonb as w,uuid as c,integer as P,boolean as Pe,index as N,unique as xn}from"drizzle-orm/pg-core";var n=oe("eval_targets",{id:c("id").primaryKey().defaultRandom(),userId:c("user_id").notNull(),name:_("name").notNull(),type:_("type").notNull(),content:_("content").notNull(),description:_("description").notNull().default(""),metadata:w("metadata").notNull().default({}),version:P("version").notNull().default(1),parentId:c("parent_id").references(()=>n.id,{onDelete:"set null"}),createdAt:v("created_at",{withTimezone:!0}).defaultNow(),updatedAt:v("updated_at",{withTimezone:!0}).defaultNow()},e=>[N("eval_targets_name_user_idx").on(e.name,e.userId),N("idx_eval_targets_user").on(e.userId),N("idx_eval_targets_type").on(e.type),N("idx_eval_targets_parent").on(e.parentId)]),C=oe("evals",{id:c("id").primaryKey().defaultRandom(),evalTargetId:c("eval_target_id").notNull().references(()=>n.id,{onDelete:"cascade"}),name:_("name").notNull(),prompt:_("prompt").notNull(),expectedOutput:_("expected_output").notNull().default(""),files:w("files").notNull().default([]),expectations:w("expectations").notNull().default([]),retiredAt:v("retired_at",{withTimezone:!0}),retiredReason:_("retired_reason"),createdAt:v("created_at",{withTimezone:!0}).defaultNow(),updatedAt:v("updated_at",{withTimezone:!0}).defaultNow(),contentUpdatedAt:v("content_updated_at",{withTimezone:!0}).notNull().defaultNow()},e=>[N("idx_evals_target").on(e.evalTargetId),N("idx_evals_target_active").on(e.evalTargetId).where(Ss`${e.retiredAt} IS NULL`)]),k=oe("eval_runs",{id:c("id").primaryKey().defaultRandom(),jobId:c("job_id"),evalId:c("eval_id").notNull().references(()=>C.id,{onDelete:"cascade"}),evalTargetId:c("eval_target_id").notNull().references(()=>n.id,{onDelete:"cascade"}),evalTargetVersion:P("eval_target_version").notNull(),configuration:_("configuration").notNull(),runNumber:P("run_number").notNull().default(1),iteration:P("iteration").notNull().default(1),status:_("status").notNull().default("completed"),outputs:w("outputs").notNull().default({}),timing:w("timing").notNull().default({}),grading:w("grading").notNull().default({}),comparison:w("comparison"),createdAt:v("created_at",{withTimezone:!0}).defaultNow()},e=>[N("idx_eval_runs_eval").on(e.evalId),N("idx_eval_runs_target").on(e.evalTargetId),N("idx_eval_runs_iteration").on(e.evalTargetId,e.iteration)]),Nn=oe("eval_comparisons",{id:c("id").primaryKey().defaultRandom(),userId:c("user_id").notNull(),targetAId:c("target_a_id").notNull().references(()=>n.id,{onDelete:"cascade"}),targetBId:c("target_b_id").notNull().references(()=>n.id,{onDelete:"cascade"}),targetAVersion:P("target_a_version").notNull(),targetBVersion:P("target_b_version").notNull(),isSwapped:Pe("is_swapped").notNull().default(!1),winnerTargetId:c("winner_target_id").references(()=>n.id,{onDelete:"set null"}),perEval:w("per_eval").notNull().default([]),overall:w("overall").notNull().default({}),rawOutput:_("raw_output"),model:_("model"),status:_("status").notNull().default("completed"),createdAt:v("created_at",{withTimezone:!0}).defaultNow()},e=>[N("idx_eval_comparisons_target_a").on(e.targetAId),N("idx_eval_comparisons_target_b").on(e.targetBId),N("idx_eval_comparisons_user").on(e.userId)]),gn=oe("eval_grade_annotations",{id:c("id").primaryKey().defaultRandom(),userId:c("user_id").notNull(),evalRunId:c("eval_run_id").notNull().references(()=>k.id,{onDelete:"cascade"}),evalTargetId:c("eval_target_id").notNull().references(()=>n.id,{onDelete:"cascade"}),expectationIndex:P("expectation_index").notNull(),expectationText:_("expectation_text").notNull(),judgePassed:Pe("judge_passed").notNull(),judgeMethod:_("judge_method").notNull(),judgeModel:_("judge_model"),verdict:_("verdict").notNull(),flag:_("flag"),note:_("note"),createdAt:v("created_at",{withTimezone:!0}).defaultNow(),updatedAt:v("updated_at",{withTimezone:!0}).defaultNow()},e=>[N("idx_eval_grade_annotations_target").on(e.evalTargetId),N("idx_eval_grade_annotations_run").on(e.evalRunId),xn("eval_grade_annotations_eval_run_id_expectation_index_key").on(e.evalRunId,e.expectationIndex)]),vn=oe("judge_reviewer_verdicts",{id:c("id").primaryKey().defaultRandom(),userId:c("user_id").notNull(),evalTargetId:c("eval_target_id").notNull().references(()=>n.id,{onDelete:"cascade"}),evalRunId:c("eval_run_id").notNull().references(()=>k.id,{onDelete:"cascade"}),expectationIndex:P("expectation_index").notNull(),expectationText:_("expectation_text").notNull(),judgePassed:Pe("judge_passed").notNull(),humanPassed:Pe("human_passed").notNull(),reviewerEngine:_("reviewer_engine").notNull(),reviewerModel:_("reviewer_model").notNull(),reviewerPassed:Pe("reviewer_passed").notNull(),resolvedAt:v("resolved_at",{withTimezone:!0}),resolution:_("resolution"),createdAt:v("created_at",{withTimezone:!0}).defaultNow(),updatedAt:v("updated_at",{withTimezone:!0}).defaultNow()},e=>[N("idx_jrv_target").on(e.evalTargetId),xn("judge_reviewer_verdicts_eval_run_id_expectation_index_review_key").on(e.evalRunId,e.expectationIndex,e.reviewerModel)]),Ne=oe("benchmarks",{id:c("id").primaryKey().defaultRandom(),evalTargetId:c("eval_target_id").notNull().references(()=>n.id,{onDelete:"cascade"}),iteration:P("iteration").notNull().default(1),runSummary:w("run_summary").notNull().default({}),notes:w("notes").notNull().default([]),feedback:w("feedback"),createdAt:v("created_at",{withTimezone:!0}).defaultNow()},e=>[N("idx_benchmarks_target").on(e.evalTargetId)]);import{sql as oo}from"drizzle-orm";import{pgTable as Ks,text as O,timestamp as Ps,jsonb as xt,uuid as Nt,boolean as Cs,index as Ce,uniqueIndex as Os}from"drizzle-orm/pg-core";var hn=Ks("instruction_promotions",{id:Nt("id").primaryKey().defaultRandom(),userId:Nt("user_id").notNull(),evalTargetId:Nt("eval_target_id").notNull().references(()=>n.id,{onDelete:"cascade"}),instructionId:Nt("instruction_id").references(()=>r.id,{onDelete:"set null"}),fromContentHash:O("from_content_hash").notNull(),toContentHash:O("to_content_hash").notNull(),fromContent:O("from_content").notNull(),toContent:O("to_content").notNull(),proposalSource:O("proposal_source").notNull(),proposalRationale:O("proposal_rationale").notNull().default(""),decision:O("decision").notNull(),applied:Cs("applied").notNull().default(!1),refusals:xt("refusals").notNull().default([]),rationale:O("rationale").notNull().default(""),effectClass:O("effect_class").notNull(),verdict:xt("verdict").notNull().default({}),gates:xt("gates").notNull().default({}),touchedSections:xt("touched_sections").notNull().default([]),createdAt:Ps("created_at",{withTimezone:!0}).notNull().defaultNow()},e=>[Ce("idx_instruction_promotions_budget").on(e.evalTargetId,e.createdAt.desc()).where(oo`${e.applied}`),Ce("idx_instruction_promotions_target").on(e.evalTargetId,e.createdAt.desc()),Ce("idx_instruction_promotions_user").on(e.userId,e.createdAt.desc()),Ce("idx_instruction_promotions_to_hash").on(e.toContentHash),Os("uq_instruction_promotions_applied").on(e.evalTargetId,e.fromContentHash,e.toContentHash).where(oo`${e.applied}`),Ce("idx_instruction_promotions_applied_hash").on(e.toContentHash,e.createdAt.desc()).where(oo`${e.applied}`)]);import{pgTable as yn,text as no,timestamp as ro,jsonb as Tn,uuid as ge,integer as Oe,index as gt,real as In}from"drizzle-orm/pg-core";var ve=yn("trigger_evals",{id:ge("id").primaryKey().defaultRandom(),evalTargetId:ge("eval_target_id").notNull().references(()=>n.id,{onDelete:"cascade"}),userId:ge("user_id").notNull(),queries:Tn("queries").notNull().default([]),status:no("status").notNull().default("pending_review"),trainIndices:Oe("train_indices").array().default([]),testIndices:Oe("test_indices").array().default([]),createdAt:ro("created_at",{withTimezone:!0}).defaultNow(),updatedAt:ro("updated_at",{withTimezone:!0}).defaultNow()},e=>[gt("idx_trigger_evals_target").on(e.evalTargetId),gt("idx_trigger_evals_user").on(e.userId)]),he=yn("optimization_runs",{id:ge("id").primaryKey().defaultRandom(),evalTargetId:ge("eval_target_id").notNull().references(()=>n.id,{onDelete:"cascade"}),userId:ge("user_id").notNull(),type:no("type").notNull(),iteration:Oe("iteration").notNull(),inputVersion:Oe("input_version").notNull(),outputVersion:Oe("output_version"),trainScore:In("train_score"),testScore:In("test_score"),analysis:Tn("analysis").notNull().default({}),status:no("status").notNull().default("running"),createdAt:ro("created_at",{withTimezone:!0}).defaultNow()},e=>[gt("idx_optimization_runs_target").on(e.evalTargetId),gt("idx_optimization_runs_user").on(e.userId)]);import{pgTable as qs,text as F,timestamp as Ms,jsonb as qe,uuid as so,integer as io,real as Ls,index as Me,uniqueIndex as wn}from"drizzle-orm/pg-core";var J=qs("context_snapshots",{id:so("id").primaryKey().defaultRandom(),sessionId:so("session_id").references(()=>d.id,{onDelete:"cascade"}),userId:so("user_id").notNull().references(()=>o.id,{onDelete:"cascade"}),sequence:io("sequence").notNull().default(0),provider:F("provider").notNull(),model:F("model").notNull(),systemPrompt:F("system_prompt").notNull(),injectedInstructions:qe("injected_instructions").notNull().default([]),messagesSummary:qe("messages_summary").notNull(),tools:qe("tools").notNull().default([]),systemHash:F("system_hash").notNull(),requestHash:F("request_hash").notNull().default(""),toolsHash:F("tools_hash"),injectedHash:F("injected_hash"),messagesDelta:qe("messages_delta").default([]),messagesDeltaRef:F("messages_delta_ref"),maxTokens:io("max_tokens"),temperature:Ls("temperature"),estimatedTokens:io("estimated_tokens"),capturedAt:Ms("captured_at",{withTimezone:!0}).notNull().defaultNow(),metadata:qe("metadata").default({})},e=>[Me("idx_context_snapshots_session").on(e.sessionId),Me("idx_context_snapshots_user").on(e.userId),Me("idx_context_snapshots_hash").on(e.systemHash),Me("idx_context_snapshots_request_hash").on(e.requestHash),wn("idx_snapshots_session_request").on(e.sessionId,e.requestHash),wn("idx_snapshots_session_sequence").on(e.sessionId,e.sequence),Me("idx_context_snapshots_user_session_captured").on(e.userId,e.sessionId,e.capturedAt.desc())]);import{pgTable as Us,text as An,timestamp as Bs,jsonb as Hs,integer as Vs,index as Gs}from"drizzle-orm/pg-core";var zn=Us("content_blobs",{hash:An("hash").primaryKey(),contentType:An("content_type").notNull(),content:Hs("content").notNull(),sizeBytes:Vs("size_bytes").notNull().default(0),createdAt:Bs("created_at",{withTimezone:!0}).defaultNow()},e=>[Gs("idx_content_blobs_type").on(e.contentType)]);import{pgTable as Fs,text as vt,timestamp as Le,jsonb as ht,uuid as ao,index as It,integer as Dn}from"drizzle-orm/pg-core";var Ie=Fs("eval_jobs",{id:ao("id").primaryKey().defaultRandom(),userId:ao("user_id").notNull(),evalTargetId:ao("eval_target_id").notNull().references(()=>n.id,{onDelete:"cascade"}),status:vt("status").notNull().default("pending"),config:ht("config").notNull().default({}),progress:ht("progress").notNull().default({}),result:ht("result"),error:vt("error"),attempts:Dn("attempts").notNull().default(0),taskKind:vt("task_kind"),payload:ht("payload"),claimedBy:vt("claimed_by"),claimedAt:Le("claimed_at",{withTimezone:!0}),leaseExpiresAt:Le("lease_expires_at",{withTimezone:!0}),leaseRecoveries:Dn("lease_recoveries").notNull().default(0),createdAt:Le("created_at",{withTimezone:!0}).defaultNow(),updatedAt:Le("updated_at",{withTimezone:!0}).defaultNow(),completedAt:Le("completed_at",{withTimezone:!0})},e=>[It("idx_eval_jobs_user").on(e.userId),It("idx_eval_jobs_target").on(e.evalTargetId),It("idx_eval_jobs_status").on(e.status),It("idx_eval_jobs_pending").on(e.userId,e.status)]);import{pgTable as Js,text as Ue,timestamp as Be,jsonb as Rn,uuid as jn,integer as kn,index as En}from"drizzle-orm/pg-core";var bn=Js("agent_jobs",{id:jn("id").primaryKey().defaultRandom(),userId:jn("user_id").notNull(),taskKind:Ue("task_kind").notNull(),status:Ue("status").notNull().default("pending"),payload:Rn("payload").notNull(),dedupeKey:Ue("dedupe_key"),result:Rn("result"),error:Ue("error"),attempts:kn("attempts").notNull().default(0),claimedBy:Ue("claimed_by"),claimedAt:Be("claimed_at",{withTimezone:!0}),leaseExpiresAt:Be("lease_expires_at",{withTimezone:!0}),leaseRecoveries:kn("lease_recoveries").notNull().default(0),createdAt:Be("created_at",{withTimezone:!0}).notNull().defaultNow(),updatedAt:Be("updated_at",{withTimezone:!0}).notNull().defaultNow(),completedAt:Be("completed_at",{withTimezone:!0})},e=>[En("idx_agent_jobs_claim").on(e.userId,e.status,e.taskKind,e.createdAt),En("idx_agent_jobs_dedupe").on(e.userId,e.taskKind,e.dedupeKey)]);import{pgTable as $s,text as He,timestamp as Ve,jsonb as yt,uuid as uo,index as Tt,integer as Sn}from"drizzle-orm/pg-core";var Kn=$s("insights_jobs",{id:uo("id").primaryKey().defaultRandom(),userId:uo("user_id").notNull(),status:He("status").notNull().default("pending"),projectPath:He("project_path"),projectId:uo("project_id").references(()=>s.id,{onDelete:"set null"}),config:yt("config").notNull().default({}),progress:yt("progress").notNull().default({}),result:yt("result"),error:He("error"),attempts:Sn("attempts").notNull().default(0),taskKind:He("task_kind"),payload:yt("payload"),claimedBy:He("claimed_by"),claimedAt:Ve("claimed_at",{withTimezone:!0}),leaseExpiresAt:Ve("lease_expires_at",{withTimezone:!0}),leaseRecoveries:Sn("lease_recoveries").notNull().default(0),createdAt:Ve("created_at",{withTimezone:!0}).defaultNow(),updatedAt:Ve("updated_at",{withTimezone:!0}).defaultNow(),completedAt:Ve("completed_at",{withTimezone:!0})},e=>[Tt("idx_insights_jobs_user").on(e.userId),Tt("idx_insights_jobs_status").on(e.status),Tt("idx_insights_jobs_pending").on(e.userId,e.status),Tt("idx_insights_jobs_project").on(e.projectId)]);import{pgTable as Ys,text as lo,timestamp as wt,uuid as Pn,index as Qs,uniqueIndex as Ws}from"drizzle-orm/pg-core";var ye=Ys("api_keys",{id:Pn("id").primaryKey().defaultRandom(),userId:Pn("user_id").notNull().references(()=>o.id,{onDelete:"cascade"}),name:lo("name").notNull(),keyHash:lo("key_hash").notNull(),keyPrefix:lo("key_prefix").notNull(),lastUsedAt:wt("last_used_at",{withTimezone:!0}),expiresAt:wt("expires_at",{withTimezone:!0}),revokedAt:wt("revoked_at",{withTimezone:!0}),createdAt:wt("created_at",{withTimezone:!0}).defaultNow()},e=>[Qs("idx_api_keys_user").on(e.userId),Ws("idx_api_keys_hash").on(e.keyHash)]);import{pgTable as Xs,text as co,timestamp as Cn,uuid as Zs,index as ei}from"drizzle-orm/pg-core";var On=Xs("extension_auth_codes",{code:co("code").primaryKey(),userId:Zs("user_id").notNull().references(()=>o.id,{onDelete:"cascade"}),editor:co("editor"),email:co("email"),expiresAt:Cn("expires_at",{withTimezone:!0}).notNull(),createdAt:Cn("created_at",{withTimezone:!0}).defaultNow()},e=>[ei("idx_ext_auth_codes_expiry").on(e.expiresAt)]);import{pgTable as ti,text as oi,timestamp as qn,jsonb as ni,uuid as _o,index as Mn}from"drizzle-orm/pg-core";var Te=ti("eval_conversations",{id:_o("id").primaryKey().defaultRandom(),evalTargetId:_o("eval_target_id").notNull().references(()=>n.id,{onDelete:"cascade"}),userId:_o("user_id").notNull(),messages:ni("messages").notNull().default([]),status:oi("status").notNull().default("active"),createdAt:qn("created_at",{withTimezone:!0}).defaultNow(),updatedAt:qn("updated_at",{withTimezone:!0}).defaultNow()},e=>[Mn("idx_eval_conversations_target").on(e.evalTargetId),Mn("idx_eval_conversations_user").on(e.userId)]);import{pgTable as ri,text as q,timestamp as Ln,jsonb as si,uuid as mo}from"drizzle-orm/pg-core";var Un=ri("skill_submissions",{id:mo("id").primaryKey().defaultRandom(),skillId:q("skill_id").notNull(),name:q("name").notNull(),description:q("description").notNull(),category:q("category").notNull(),tools:q("tools").array().notNull(),tags:q("tags").array().default([]),content:q("content").notNull(),status:q("status").notNull().default("pending"),submittedBy:mo("submitted_by").notNull(),reviewedBy:mo("reviewed_by"),reviewNote:q("review_note"),metadata:si("metadata"),createdAt:Ln("created_at",{withTimezone:!0}).defaultNow(),updatedAt:Ln("updated_at",{withTimezone:!0}).defaultNow()});import{pgTable as ii,text as Ge,timestamp as Bn,jsonb as ai,uuid as di,uniqueIndex as ui,index as Hn}from"drizzle-orm/pg-core";var Vn=ii("harness_releases",{id:di("id").primaryKey().defaultRandom(),harness:Ge("harness").notNull(),version:Ge("version").notNull(),publishedAt:Bn("published_at",{withTimezone:!0}).notNull(),title:Ge("title"),body:Ge("body"),categories:ai("categories").default({}),url:Ge("url"),createdAt:Bn("created_at",{withTimezone:!0}).defaultNow()},e=>[ui("idx_harness_releases_unique").on(e.harness,e.version),Hn("idx_harness_releases_harness").on(e.harness),Hn("idx_harness_releases_published").on(e.publishedAt)]);import{pgTable as li,text as we,timestamp as Gn,jsonb as ci,uuid as Fn,index as Jn,uniqueIndex as _i}from"drizzle-orm/pg-core";var po=li("notifications",{id:Fn("id").primaryKey().defaultRandom(),userId:Fn("user_id").notNull(),type:we("type").notNull(),title:we("title").notNull(),body:we("body"),url:we("url"),sourceTable:we("source_table"),sourceId:we("source_id"),metadata:ci("metadata").notNull().default({}),readAt:Gn("read_at",{withTimezone:!0}),createdAt:Gn("created_at",{withTimezone:!0}).notNull().defaultNow()},e=>[Jn("idx_notifications_user_created").on(e.userId,e.createdAt),Jn("idx_notifications_user_unread").on(e.userId),_i("idx_notifications_source_dedup").on(e.userId,e.sourceTable,e.sourceId)]);import{pgTable as mi,text as Fe,timestamp as Je,jsonb as fo,uuid as xo,index as At,integer as $n}from"drizzle-orm/pg-core";var Ae=mi("launch_jobs",{id:xo("id").primaryKey().defaultRandom(),userId:xo("user_id").notNull(),tool:Fe("tool").notNull(),status:Fe("status").notNull().default("pending"),config:fo("config").notNull().default({}),result:fo("result"),error:Fe("error"),attempts:$n("attempts").notNull().default(0),taskKind:Fe("task_kind"),payload:fo("payload"),claimedBy:Fe("claimed_by"),claimedAt:Je("claimed_at",{withTimezone:!0}),leaseExpiresAt:Je("lease_expires_at",{withTimezone:!0}),leaseRecoveries:$n("lease_recoveries").notNull().default(0),createdAt:Je("created_at",{withTimezone:!0}).defaultNow(),updatedAt:Je("updated_at",{withTimezone:!0}).defaultNow(),completedAt:Je("completed_at",{withTimezone:!0}),runId:xo("run_id").references(()=>g.id,{onDelete:"set null"})},e=>[At("idx_launch_jobs_user").on(e.userId),At("idx_launch_jobs_status").on(e.status),At("idx_launch_jobs_pending").on(e.userId,e.status),At("idx_launch_jobs_run").on(e.runId)]);import{pgTable as Yn,uuid as M,text as ze,real as pi,timestamp as zt,boolean as fi,uniqueIndex as xi,index as $e}from"drizzle-orm/pg-core";var Qn=["add","remove","trim"],No=Yn("instruction_suggestions",{id:M("id").primaryKey().defaultRandom(),userId:M("user_id").notNull().references(()=>o.id,{onDelete:"cascade"}),instructionId:M("instruction_id").notNull().references(()=>r.id,{onDelete:"cascade"}),projectPath:ze("project_path").notNull(),projectId:M("project_id").references(()=>s.id,{onDelete:"set null"}),score:pi("score").notNull(),reason:ze("reason").notNull(),kind:ze("kind").$type().notNull().default("add"),generatedAt:zt("generated_at",{withTimezone:!0}).notNull().defaultNow(),isStale:fi("is_stale").notNull().default(!1),dismissedAt:zt("dismissed_at",{withTimezone:!0}),acceptedAt:zt("accepted_at",{withTimezone:!0}),promotedToInstructionId:M("promoted_to_instruction_id").references(()=>r.id,{onDelete:"set null"})},e=>[xi("idx_instruction_suggestions_user_project_instruction_kind").on(e.userId,e.projectPath,e.instructionId,e.kind),$e("idx_instruction_suggestions_user_project").on(e.userId,e.projectPath),$e("idx_instruction_suggestions_user_proj_id").on(e.userId,e.projectId),$e("idx_instruction_suggestions_generated_at").on(e.generatedAt)]),Wn=Yn("instruction_suggestion_events",{id:M("id").primaryKey().defaultRandom(),suggestionId:M("suggestion_id").notNull().references(()=>No.id,{onDelete:"cascade"}),userId:M("user_id").notNull().references(()=>o.id,{onDelete:"cascade"}),eventType:ze("event_type").notNull(),tool:ze("tool"),sessionId:M("session_id"),projectPath:ze("project_path").notNull(),createdAt:zt("created_at",{withTimezone:!0}).notNull().defaultNow()},e=>[$e("idx_instruction_suggestion_events_suggestion_id").on(e.suggestionId),$e("idx_instruction_suggestion_events_user_id").on(e.userId)]);import{pgTable as Ni,text as go,integer as gi,numeric as Ye,timestamp as vo,index as vi,primaryKey as hi}from"drizzle-orm/pg-core";var Xn=Ni("model_pricing",{provider:go("provider").notNull(),modelId:go("model_id").notNull(),inputPerM:Ye("input_per_m").notNull(),outputPerM:Ye("output_per_m").notNull(),cacheReadPerM:Ye("cache_read_per_m").notNull(),cacheWrite5mPerM:Ye("cache_write_5m_per_m").notNull(),cacheWrite1hPerM:Ye("cache_write_1h_per_m").notNull(),contextWindow:gi("context_window"),effectiveFrom:vo("effective_from",{withTimezone:!0}).notNull(),effectiveUntil:vo("effective_until",{withTimezone:!0}),source:go("source").notNull(),verifiedAt:vo("verified_at",{withTimezone:!0})},e=>[hi({columns:[e.provider,e.modelId,e.effectiveFrom]}),vi("idx_model_pricing_active").on(e.provider,e.modelId,e.effectiveFrom.desc())]);import{pgTable as Ii,text as ne,numeric as Zn,timestamp as er,uuid as tr,jsonb as yi,index as or}from"drizzle-orm/pg-core";var nr=Ii("limit_observations",{id:tr("id").primaryKey().defaultRandom(),observedAt:er("observed_at",{withTimezone:!0}).notNull().defaultNow(),provider:ne("provider").notNull(),plan:ne("plan").notNull(),limitType:ne("limit_type").notNull(),value:Zn("value").notNull(),unit:ne("unit").notNull(),comparator:ne("comparator").notNull().default("="),resetsAt:er("resets_at",{withTimezone:!0}),sourceType:ne("source_type").notNull(),sourceUrl:ne("source_url"),sourceEvidence:yi("source_evidence"),confidence:Zn("confidence").notNull(),userId:tr("user_id")},e=>[or("idx_limit_obs_lookup").on(e.provider,e.plan,e.limitType,e.observedAt.desc()),or("idx_limit_obs_user").on(e.userId,e.observedAt.desc())]);import{pgTable as Ti,text as Dt,timestamp as wi,uuid as Ai,jsonb as zi,boolean as Di,uniqueIndex as Ri}from"drizzle-orm/pg-core";var rr=Ti("provider_docs_snapshots",{id:Ai("id").primaryKey().defaultRandom(),fetchedAt:wi("fetched_at",{withTimezone:!0}).notNull().defaultNow(),provider:Dt("provider").notNull(),docUrl:Dt("doc_url").notNull(),contentHash:Dt("content_hash").notNull(),content:Dt("content").notNull(),parseSuccess:Di("parse_success").notNull(),parseErrors:zi("parse_errors")},e=>[Ri("idx_docs_dedup").on(e.provider,e.docUrl,e.contentHash)]);import{pgTable as ji,text as Rt,numeric as sr,timestamp as ir,uuid as ki,primaryKey as Ei,index as bi}from"drizzle-orm/pg-core";var ar=ji("plan_limits_active",{provider:Rt("provider").notNull(),plan:Rt("plan").notNull(),limitType:Rt("limit_type").notNull(),value:sr("value").notNull(),unit:Rt("unit").notNull(),effectiveFrom:ir("effective_from",{withTimezone:!0}).notNull(),effectiveUntil:ir("effective_until",{withTimezone:!0}),confidence:sr("confidence").notNull(),sourceObservationIds:ki("source_observation_ids").array().notNull()},e=>[Ei({columns:[e.provider,e.plan,e.limitType,e.effectiveFrom]}),bi("idx_plan_limits_lookup").on(e.provider,e.plan,e.limitType,e.effectiveFrom.desc())]);import{pgTable as Si,text as ho,timestamp as Ki,uuid as dr,jsonb as Pi,index as Ci}from"drizzle-orm/pg-core";var ur=Si("alert_dispatches",{id:dr("id").primaryKey().defaultRandom(),userId:dr("user_id").notNull(),alertKey:ho("alert_key").notNull(),severity:ho("severity").notNull(),lastDispatchedAt:Ki("last_dispatched_at",{withTimezone:!0}).notNull().defaultNow(),lastState:Pi("last_state").notNull(),channel:ho("channel").notNull()},e=>[Ci("idx_alert_user_key").on(e.userId,e.alertKey,e.lastDispatchedAt.desc())]);import{pgTable as Oi,text as Io,timestamp as lr,uuid as yo,integer as qi,index as Mi,unique as Li}from"drizzle-orm/pg-core";var cr=Oi("scaffolding_fingerprints",{id:yo("id").primaryKey().defaultRandom(),userId:yo("user_id").notNull(),harness:Io("harness").notNull(),model:Io("model").notNull(),toolsHash:Io("tools_hash").notNull(),firstSeenAt:lr("first_seen_at",{withTimezone:!0}).notNull().defaultNow(),lastSeenAt:lr("last_seen_at",{withTimezone:!0}).notNull().defaultNow(),snapshotCount:qi("snapshot_count").notNull().default(1),firstSessionId:yo("first_session_id")},e=>[Li("scaffolding_fingerprints_user_id_harness_model_tools_hash_key").on(e.userId,e.harness,e.model,e.toolsHash),Mi("idx_scaffolding_fp_segment").on(e.userId,e.harness,e.model)]);import{pgTable as Ui,text as To,timestamp as Bi,jsonb as Hi,uuid as _r,integer as Vi,unique as Gi}from"drizzle-orm/pg-core";var mr=Ui("scaffolding_segments",{id:_r("id").primaryKey().defaultRandom(),userId:_r("user_id").notNull(),harness:To("harness").notNull(),model:To("model").notNull(),coreNames:Hi("core_names").notNull(),coreHash:To("core_hash").notNull(),activeFingerprints:Vi("active_fingerprints").notNull(),computedAt:Bi("computed_at",{withTimezone:!0}).notNull().defaultNow()},e=>[Gi("scaffolding_segments_user_id_harness_model_key").on(e.userId,e.harness,e.model)]);import{drizzle as gr}from"drizzle-orm/postgres-js";import vr from"postgres";var jt={};Or(jt,{SUGGESTION_KINDS:()=>Qn,agentJobs:()=>bn,agentRuns:()=>g,agentRunsRelations:()=>ia,alertDispatches:()=>ur,announcementDeliveries:()=>bo,announcements:()=>Eo,apiKeys:()=>ye,apiKeysRelations:()=>Ji,benchmarks:()=>Ne,benchmarksRelations:()=>ga,cliErrorEvents:()=>fn,cliSetupEvents:()=>mn,contentBlobs:()=>zn,contextSnapshots:()=>J,contextSnapshotsRelations:()=>Ta,evalComparisons:()=>Nn,evalConversations:()=>Te,evalConversationsRelations:()=>ya,evalGradeAnnotations:()=>gn,evalJobs:()=>Ie,evalJobsRelations:()=>Ia,evalRuns:()=>k,evalRunsRelations:()=>Na,evalTargets:()=>n,evalTargetsRelations:()=>fa,evals:()=>C,evalsRelations:()=>xa,extensionAuthCodes:()=>On,harnessReleases:()=>Vn,insightsJobs:()=>Kn,instructionEvents:()=>ue,instructionEventsRelations:()=>ea,instructionPromotions:()=>hn,instructionSuggestionEvents:()=>Wn,instructionSuggestions:()=>No,instructionUsageEvents:()=>xe,instructionUsageEventsRelations:()=>pa,instructionVersionIdentities:()=>Mo,instructionVersions:()=>de,instructionVersionsRelations:()=>oa,instructions:()=>r,instructionsRelations:()=>Zi,judgeReviewerVerdicts:()=>vn,launchJobs:()=>Ae,launchJobsRelations:()=>aa,limitObservations:()=>nr,memories:()=>T,memoriesRelations:()=>ta,memoryExperiments:()=>Zo,modelPricing:()=>Xn,notificationPreferences:()=>So,notifications:()=>po,optimizationRuns:()=>he,optimizationRunsRelations:()=>ha,orgInvitations:()=>E,orgInvitationsRelations:()=>Qi,organizations:()=>u,organizationsRelations:()=>$i,packInstructions:()=>G,packInstructionsRelations:()=>ma,packs:()=>z,packsRelations:()=>_a,pendingTreatmentExposures:()=>Yo,planLimitsActive:()=>ar,profiles:()=>o,profilesRelations:()=>Fi,projectCheckouts:()=>Bo,projectInstructions:()=>B,projectInstructionsRelations:()=>ra,projects:()=>s,projectsRelations:()=>na,providerDocsSnapshots:()=>rr,scaffoldingFingerprints:()=>cr,scaffoldingSegments:()=>mr,sessionEvents:()=>ce,sessionEventsRelations:()=>da,sessionInstructions:()=>H,sessionInstructionsRelations:()=>ua,sessionSendJobs:()=>nn,sessionTerminalTargets:()=>lt,sessions:()=>d,sessionsRelations:()=>sa,skillSubmissions:()=>Un,teams:()=>h,teamsRelations:()=>Yi,treatmentAssignments:()=>S,treatmentAssignmentsRelations:()=>la,treatmentExposures:()=>K,treatmentExposuresRelations:()=>ca,triggerEvals:()=>ve,triggerEvalsRelations:()=>va,userOrganizations:()=>ie,userOrganizationsRelations:()=>Wi,userTeams:()=>ae,userTeamsRelations:()=>Xi,workerConnections:()=>ln});import{relations as i}from"drizzle-orm";var Fi=i(o,({many:e})=>({sessions:e(d),contextSnapshots:e(J),apiKeys:e(ye)})),Ji=i(ye,({one:e})=>({profile:e(o,{fields:[ye.userId],references:[o.id]})})),$i=i(u,({many:e})=>({teams:e(h),userOrganizations:e(ie),projects:e(s),invitations:e(E)})),Yi=i(h,({one:e,many:t})=>({organization:e(u,{fields:[h.orgId],references:[u.id]}),userTeams:t(ae),invitations:t(E)})),Qi=i(E,({one:e})=>({organization:e(u,{fields:[E.orgId],references:[u.id]}),team:e(h,{fields:[E.teamId],references:[h.id]}),inviter:e(o,{fields:[E.invitedBy],references:[o.id]})})),Wi=i(ie,({one:e})=>({organization:e(u,{fields:[ie.orgId],references:[u.id]})})),Xi=i(ae,({one:e})=>({team:e(h,{fields:[ae.teamId],references:[h.id]})})),Zi=i(r,({one:e,many:t})=>({versions:t(de),projectInstructions:t(B),events:t(ue),usageEvents:t(xe),sessionInstructions:t(H),packInstructions:t(G),forkedFrom:e(r,{fields:[r.forkedFromId],references:[r.id]})})),ea=i(ue,({one:e})=>({instruction:e(r,{fields:[ue.instructionId],references:[r.id]})})),ta=i(T,({one:e,many:t})=>({project:e(s,{fields:[T.projectId],references:[s.id]}),parent:e(T,{fields:[T.parentId],references:[T.id]}),versions:t(T)})),oa=i(de,({one:e})=>({instruction:e(r,{fields:[de.instructionId],references:[r.id]})})),na=i(s,({one:e,many:t})=>({organization:e(u,{fields:[s.orgId],references:[u.id]}),projectInstructions:t(B),sessions:t(d)})),ra=i(B,({one:e})=>({project:e(s,{fields:[B.projectId],references:[s.id]}),instruction:e(r,{fields:[B.instructionId],references:[r.id]})})),sa=i(d,({one:e,many:t})=>({profile:e(o,{fields:[d.userId],references:[o.id]}),project:e(s,{fields:[d.projectId],references:[s.id]}),run:e(g,{fields:[d.runId],references:[g.id]}),events:t(ce),sessionInstructions:t(H),treatmentExposures:t(K),contextSnapshots:t(J)})),ia=i(g,({one:e,many:t})=>({profile:e(o,{fields:[g.userId],references:[o.id]}),organization:e(u,{fields:[g.orgId],references:[u.id]}),project:e(s,{fields:[g.projectId],references:[s.id]}),sessions:t(d),launchJobs:t(Ae)})),aa=i(Ae,({one:e})=>({run:e(g,{fields:[Ae.runId],references:[g.id]})})),da=i(ce,({one:e})=>({session:e(d,{fields:[ce.sessionId],references:[d.id]})})),ua=i(H,({one:e})=>({session:e(d,{fields:[H.sessionId],references:[d.id]}),instruction:e(r,{fields:[H.instructionId],references:[r.id]})})),la=i(S,({one:e,many:t})=>({owner:e(o,{fields:[S.userId],references:[o.id]}),project:e(s,{fields:[S.projectId],references:[s.id]}),exposures:t(K)})),ca=i(K,({one:e})=>({session:e(d,{fields:[K.sessionId],references:[d.id]}),owner:e(o,{fields:[K.userId],references:[o.id]}),assignment:e(S,{fields:[K.assignmentId],references:[S.id]})})),_a=i(z,({one:e,many:t})=>({packInstructions:t(G),forkedFrom:e(z,{fields:[z.forkedFromId],references:[z.id]})})),ma=i(G,({one:e})=>({pack:e(z,{fields:[G.packId],references:[z.id]}),instruction:e(r,{fields:[G.instructionId],references:[r.id]})})),pa=i(xe,({one:e})=>({instruction:e(r,{fields:[xe.instructionId],references:[r.id]})})),fa=i(n,({one:e,many:t})=>({parent:e(n,{fields:[n.parentId],references:[n.id]}),evals:t(C),evalRuns:t(k),benchmarks:t(Ne),triggerEvals:t(ve),optimizationRuns:t(he),evalJobs:t(Ie),evalConversations:t(Te)})),xa=i(C,({one:e,many:t})=>({evalTarget:e(n,{fields:[C.evalTargetId],references:[n.id]}),runs:t(k)})),Na=i(k,({one:e})=>({eval:e(C,{fields:[k.evalId],references:[C.id]}),evalTarget:e(n,{fields:[k.evalTargetId],references:[n.id]})})),ga=i(Ne,({one:e})=>({evalTarget:e(n,{fields:[Ne.evalTargetId],references:[n.id]})})),va=i(ve,({one:e})=>({evalTarget:e(n,{fields:[ve.evalTargetId],references:[n.id]})})),ha=i(he,({one:e})=>({evalTarget:e(n,{fields:[he.evalTargetId],references:[n.id]})})),Ia=i(Ie,({one:e})=>({evalTarget:e(n,{fields:[Ie.evalTargetId],references:[n.id]})})),ya=i(Te,({one:e})=>({evalTarget:e(n,{fields:[Te.evalTargetId],references:[n.id]})})),Ta=i(J,({one:e})=>({session:e(d,{fields:[J.sessionId],references:[d.id]}),profile:e(o,{fields:[J.userId],references:[o.id]})}));var Qe=0,pr=0,We=0,fr=0;var wa=0;function wo(){Qe++,Qe>pr&&(pr=Qe)}p(wo,"trackDbOpStart");function Ao(){Qe>0&&Qe--}p(Ao,"trackDbOpEnd");function zo(){We++,We>fr&&(fr=We)}p(zo,"trackHeavyDbOpStart");function Do(){We>0&&We--}p(Do,"trackHeavyDbOpEnd");function xr(){wa++}p(xr,"recordQueryDeadline");var Et,St,Ro=!1,kt;var Nr,Kt,bt;function hr(e){let t=process.env[e];if(!t)throw new Error(`Missing required env var: ${e}`);return t}p(hr,"getEnv");function Ir(){if(Ro)throw new Error("getDb() called after closeDb(): the connection pool is closed for shutdown. Stop issuing queries (timers/requests) before draining the pool.");if(!Et){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,m=Number(process.env.PG_IDLE_TIMEOUT)||5,f=Number(process.env.PG_KEEP_ALIVE_S)||60;St=vr(hr("DATABASE_URL"),{prepare:!1,max:t,connect_timeout:a,idle_timeout:m,keep_alive:f,max_lifetime:300,connection:{application_name:e,...l>0?{statement_timeout:l}:{}}}),Et=gr(St,{schema:jt})}return Et}p(Ir,"getDb");function yr(){if(Ro)throw new Error("getHeavyDb() called after closeDb(): the connection pool is closed for shutdown. Stop issuing queries (timers/requests) before draining the pool.");if(!bt){let e=(process.env.PG_APPLICATION_NAME||"rulemetric")+":heavy",t=Number(process.env.PG_HEAVY_POOL_MAX)||2;Kt=vr(hr("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}}),bt=gr(Kt,{schema:jt})}return bt}p(yr,"getHeavyDb");async function Aa(){if(kt)return kt;Ro=!0;let e=St,t=Nr,a=Kt;return St=void 0,Et=void 0,Nr=void 0,Kt=void 0,bt=void 0,kt=Promise.allSettled([e?e.end({timeout:5}):Promise.resolve(),t?t.end({timeout:5}):Promise.resolve(),a?a.end({timeout:5}):Promise.resolve()]).then(()=>{}),kt}p(Aa,"closeDb");var za=new Set(["CONNECT_TIMEOUT","ETIMEDOUT","ENOTFOUND","ECONNREFUSED","EAI_AGAIN"]);function Tr(e){let t=e,a=t?.code??t?.cause?.code??t?.errno;return a!==void 0&&za.has(a)}p(Tr,"isRetryableConnectError");var Da=new Set(["CONNECTION_CLOSED","ECONNRESET","EPIPE"]);function wr(e){let t=e,a=t?.code??t?.cause?.code??t?.errno;return a!==void 0&&Da.has(a)}p(wr,"isRetryableResetError");async function Ar(e,t={}){let a=t.attempts??3,l=t.baseMs??100,m;for(let f=0;f<a;f++)try{return await e()}catch(y){m=y;let De=Tr(y)||t.retryResets===!0&&wr(y);if(f===a-1||!De)throw y;await new Promise($=>setTimeout($,l*2**f))}throw m}p(Ar,"withDbRetry");var Pt=class extends Error{static{p(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 zr(){let e=Number(process.env.PG_QUERY_DEADLINE_MS);return Number.isFinite(e)&&e>=0?e:2e4}p(zr,"queryDeadlineMs");function Ra(e,t){let a,l=new Promise((m,f)=>{a=setTimeout(()=>{xr(),f(new Pt(t))},t);let y=a;typeof y.unref=="function"&&y.unref()});return Promise.race([e,l]).finally(()=>clearTimeout(a))}p(Ra,"raceWithDeadline");var Dr=new Set(["select","selectDistinct","selectDistinctOn","insert","update","delete","execute","with","$count","refreshMaterializedView"]),Rr=new Set(["select","selectDistinct","selectDistinctOn","$count"]);function jo(e,t=!1,a=0,l=!1){return e===null||typeof e!="object"&&typeof e!="function"?e:new Proxy(e,{get(m,f,y){if(f==="then"){let $=Reflect.get(m,f,y);return typeof $!="function"?$:(Er,br)=>{let Sr=l?zo:wo,Kr=l?Do:Ao;Sr();let ko=Ar(()=>new Promise((Pr,Cr)=>$.call(m,Pr,Cr)),{retryResets:t});return(a>0?Ra(ko,a):ko).finally(Kr).then(Er,br)}}let De=Reflect.get(m,f,y);return typeof De=="function"?(...$)=>jo(De.apply(m,$),t,a,l):De}})}p(jo,"wrapBuilder");function jr(e,t=!1){let a=t?zo:wo,l=t?Do:Ao;a();try{return Promise.resolve(e()).finally(l)}catch(m){throw l(),m}}p(jr,"gaugeTransaction");var kr=new Proxy({},{get(e,t){let a=Ir(),l=a[t];if(typeof t=="string"&&Dr.has(t)&&typeof l=="function"){let m=Rr.has(t),f=zr();return(...y)=>jo(l.apply(a,y),m,f)}return t==="transaction"&&typeof l=="function"?(...m)=>jr(()=>l.apply(a,m)):l}}),ja=new Proxy({},{get(e,t){let a=yr(),l=a[t];if(typeof t=="string"&&Dr.has(t)&&typeof l=="function"){let m=Rr.has(t);return(...f)=>jo(l.apply(a,f),m,0,!0)}return t==="transaction"&&typeof l=="function"?(...m)=>jr(()=>l.apply(a,m),!0):l}});export{Eo as a,Ir as b,Aa as c};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{a as h}from"./chunk-4L2ZEIRE.js";import{b as E}from"./chunk-G5BXZT6F.js";import{c as P}from"./chunk-HMMO27U4.js";import{b as d,e as p,h as w}from"./chunk-KLEF5D3A.js";import{a as u}from"./chunk-ZLLER3HP.js";var b=u(n=>(n.summary.pass_rate??0)>=1?1:0,"fullPassScore");async function G(n,i={}){let c=i.executeEval??P,g=i.grade??h,v=i.getExperiment??(async r=>{try{return await p(`/api/memory-experiments/${r}`)}catch(t){if(t instanceof d&&t.statusCode===404)return null;throw t}}),M=i.getMemoryBody??(async r=>{try{return(await p(`/api/memories/${r}`)).body}catch(t){if(t instanceof d&&t.statusCode===404)return null;throw t}}),s=i.updateExperiment??(async(r,t)=>{await w(`/api/memory-experiments/${r}`,t)}),e=await v(n.experimentId);if(!e)return{skipped:"not_found"};if(e.status==="completed"||e.status==="failed")return{skipped:"already_terminal",status:e.status};let y=await M(e.memoryId);if(y==null)return await s(e.id,{status:"failed",error:"memory no longer exists"}),{skipped:"memory_gone",status:"failed"};await s(e.id,{status:"running"});let f=e.expectations??[],o=e.model??void 0,a=[],x=0;try{for(let t=0;t<e.trials;t++){let l=await c({prompt:e.taskPrompt,targetContent:y,model:o}),m=await c({prompt:e.taskPrompt,model:o});if(l.error||m.error){x++;continue}let[k,R]=await Promise.all([g({prompt:e.taskPrompt,output:l.output,expectations:f,model:o}),g({prompt:e.taskPrompt,output:m.output,expectations:f,model:o})]);a.push({withScore:b(k),withoutScore:b(R),withLatency:l.durationMs/1e3,withoutLatency:m.durationMs/1e3})}if(a.length===0){let t=`no trials completed (${x}/${e.trials} runs errored \u2014 is the claude CLI available?)`;return await s(e.id,{status:"failed",error:t}),{status:"failed",requestedTrials:e.trials,completedTrials:0}}let r=E(a);return await s(e.id,{status:"completed",result:{verdict:r,pairs:a,completedTrials:a.length,model:o??null}}),{status:"completed",requestedTrials:e.trials,completedTrials:a.length,significant:r.significant,delta:r.delta}}catch(r){let t=r instanceof Error?r.message:String(r);return await s(e.id,{status:"failed",error:t.slice(0,500)}).catch(()=>{}),{status:"failed",requestedTrials:e.trials,completedTrials:a.length}}}u(G,"processMemoryAb");export{G as a};
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import{c as f}from"./chunk-6QKI756T.js";import{a as l}from"./chunk-5RBLIVBF.js";import{b as g,e as k}from"./chunk-KLEF5D3A.js";import{a as m}from"./chunk-ZLLER3HP.js";async function C(w,i={}){let R=i.removeWorktreeFn??f,t=i.log??(e=>process.stderr.write(`[process_run_cleanup] ${e}
|
|
2
|
+
`)),j=i.getRunDetail??(async e=>{try{return await k(`/api/runs/${e}`)}catch(r){if(r instanceof g&&r.statusCode===404)return null;throw r}}),{runId:o}=w,n=await j(o);if(!n)throw new l(`Run ${o} not found`);if(!n.run.projectPath)throw new l(`Run ${o} has no projectPath; cannot resolve a repo root for worktree cleanup`);let a=n.run.projectPath,$=n.sessions.filter(e=>e.endedAt!=null),s=[],u=0,c=0,p=0,d=0,h=new Set;for(let e of $)if(!(!e.projectPath||e.projectPath===a)&&!h.has(e.projectPath)){h.add(e.projectPath);try{let r=await R({repoRoot:a,worktreePath:e.projectPath});r.removed?(u++,s.push({sessionId:e.id,worktreePath:e.projectPath,status:"removed"}),t(`removed worktree ${e.projectPath} (session ${e.id})`)):r.reason==="dirty"?(c++,s.push({sessionId:e.id,worktreePath:e.projectPath,status:"skipped-dirty"}),t(`skipped dirty worktree ${e.projectPath} (session ${e.id}) \u2014 uncommitted changes`)):(p++,s.push({sessionId:e.id,worktreePath:e.projectPath,status:"absent"}),t(`worktree absent ${e.projectPath} (session ${e.id})`))}catch(r){let P=r instanceof Error?r.message:String(r);d++,s.push({sessionId:e.id,worktreePath:e.projectPath,status:"error",error:P.slice(0,1e3)}),t(`error removing worktree ${e.projectPath} (session ${e.id}): ${P}`)}}return t(`run ${o} cleanup: removed=${u} skippedDirty=${c} absent=${p} errored=${d}`),{runId:o,repoRoot:a,removed:u,skippedDirty:c,absent:p,errored:d,worktrees:s}}m(C,"processRunCleanup");export{C as a};
|
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
import{a as C,b as L,c as D}from"../../chunk-GWDZNGUP.js";import{
|
|
1
|
+
import{a as C,b as L,c as D}from"../../chunk-GWDZNGUP.js";import{c as d}from"../../chunk-I7QSMY3Z.js";import{e as I}from"../../chunk-FFI3C3B3.js";import"../../chunk-5XUN743A.js";import"../../chunk-T4ZIK6RS.js";import"../../chunk-W76EQSEV.js";import"../../chunk-RSKQRVPJ.js";import"../../chunk-HXZM2UHO.js";import"../../chunk-V2IEFHT7.js";import"../../chunk-YW3JQKGY.js";import"../../chunk-O2BKBW7Z.js";import"../../chunk-KGQ5W54Y.js";import"../../chunk-O7PSLZO6.js";import"../../chunk-QFVGUZDO.js";import"../../chunk-5R5RGKOW.js";import"../../chunk-MOAJLSYV.js";import"../../chunk-BLCMXTIK.js";import"../../chunk-6QKI756T.js";import"../../chunk-5RBLIVBF.js";import"../../chunk-EN43UYBN.js";import"../../chunk-FAXV5AAG.js";import"../../chunk-UF6US7VU.js";import"../../chunk-YQ56FQEO.js";import"../../chunk-5KD2N2MH.js";import"../../chunk-GIRPEMTW.js";import"../../chunk-MODXEGCU.js";import"../../chunk-7DFNBRLY.js";import"../../chunk-4VZLIGMS.js";import"../../chunk-CNOD6HWU.js";import"../../chunk-AI6FMGKM.js";import"../../chunk-6UEFCMR2.js";import"../../chunk-2RCWYVEU.js";import"../../chunk-RMDLJN4L.js";import"../../chunk-BL4BN6RU.js";import"../../chunk-DBELYMDA.js";import"../../chunk-NTKO4H2K.js";import"../../chunk-CJRYYV76.js";import"../../chunk-ATL4WZBF.js";import"../../chunk-L2CFSMBC.js";import"../../chunk-Z72VHGV7.js";import"../../chunk-4L2ZEIRE.js";import"../../chunk-CDY7TQFZ.js";import"../../chunk-XRTZU7IZ.js";import"../../chunk-B3BHB26P.js";import"../../chunk-N7ODX6PO.js";import"../../chunk-PJ3WHQ67.js";import"../../chunk-G5BXZT6F.js";import"../../chunk-HMMO27U4.js";import{b as k,f as h,h as A}from"../../chunk-QXPYGN7I.js";import{a as O}from"../../chunk-2DXBC2JQ.js";import"../../chunk-IZTIYR5Q.js";import"../../chunk-NIRD7ETU.js";import"../../chunk-6VKQT2J3.js";import"../../chunk-QY3UKLDE.js";import"../../chunk-3AV3GTMP.js";import{f as b}from"../../chunk-KLEF5D3A.js";import{e as P,l as f}from"../../chunk-JZ5Z2BRO.js";import{a as e}from"../../chunk-ZLLER3HP.js";import{trace as se,context as ie}from"@opentelemetry/api";import{NodeSDK as j}from"@opentelemetry/sdk-node";import{OTLPTraceExporter as q}from"@opentelemetry/exporter-trace-otlp-http";import{BatchSpanProcessor as F,ConsoleSpanExporter as U,SimpleSpanProcessor as X}from"@opentelemetry/sdk-trace-node";import{Resource as B}from"@opentelemetry/resources";import{ATTR_SERVICE_NAME as H,ATTR_SERVICE_VERSION as K}from"@opentelemetry/semantic-conventions";function $(t){if(!t)return{};let r={};for(let n of t.split(",")){let s=n.indexOf("=");if(s===-1)continue;let i=n.slice(0,s).trim(),a=n.slice(s+1).trim();i&&(r[i]=a)}return r}e($,"parseOtlpHeaders");var p=null;function y(){return process.env.TELEMETRY_ENABLED!=="false"}e(y,"isTelemetryEnabled");function S(t){if(!y()||p!==null)return"off";let r=new B({[H]:t.serviceName,[K]:t.serviceVersion??"0.1.0"}),n=process.env.OTEL_EXPORTER_OTLP_ENDPOINT,s,i;if(n){let a=$(process.env.OTEL_EXPORTER_OTLP_HEADERS),l=new q({url:`${n}/v1/traces`,headers:a});i=new F(l),s="otlp"}else if(process.env.OTEL_SPAN_EXPORT==="none")i=void 0,s="silent";else{let a=new U;i=new X(a),s="console"}return p=new j({resource:r,spanProcessors:i?[i]:[]}),p.start(),s}e(S,"initTelemetry");async function m(){p&&(await p.shutdown(),p=null)}e(m,"shutdownTelemetry");import{SpanKind as he,SpanStatusCode as ye}from"@opentelemetry/api";import{trace as ve,context as we}from"@opentelemetry/api";import*as u from"@sentry/node";var E=!1;function T(t){if(E)return!1;let r=process.env.SENTRY_DSN;return r?(u.init({dsn:r,serverName:t.serviceName,environment:process.env.NODE_ENV??"development",tracesSampleRate:0}),E=!0,!0):!1}e(T,"initSentry");async function g(t){E&&await u.flush(t)}e(g,"flushSentry");import{existsSync as J,mkdirSync as W,readFileSync as R,unlinkSync as V,writeFileSync as M}from"node:fs";import{dirname as z,join as v}from"node:path";import{execFileSync as Q}from"node:child_process";var c=v(f(),"evals-agent.lock");function Z(t){try{return process.kill(t,0),!0}catch(r){return r.code==="EPERM"}}e(Z,"pidAlive");function ee(t){if(!Z(t))return!1;try{let r=Q("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(ee,"isLiveAgent");function te(){try{W(z(c),{recursive:!0})}catch{}for(let t=0;t<2;t++)try{return M(c,String(process.pid),{flag:"wx"}),{ok:!0}}catch(r){if(r.code!=="EEXIST")throw r;let n=0;try{n=Number(R(c,"utf-8").trim())}catch{}if(n&&n!==process.pid&&ee(n))return{ok:!1,holder:n};try{V(c)}catch{}}try{M(c,String(process.pid))}catch{}return{ok:!0}}e(te,"acquireAgentLock");function x(){try{J(c)&&Number(R(c,"utf-8").trim())===process.pid&&V(c)}catch{}}e(x,"releaseAgentLock");var w=class t extends O{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=te();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",T({serviceName:"rulemetric-agent"})&&this.log("[sentry] error capture enabled");let s=S({serviceName:"rulemetric-agent"});s==="otlp"?this.log(`[otel] traces exporting to ${process.env.OTEL_EXPORTER_OTLP_ENDPOINT}`):s==="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)"),!P()&&!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 a=new AbortController,l=await k({configDir:f()});if(this.log(`[transcript-sync] Codex capture: ${h(l)}`),l.error)this.log(`[transcript-sync] WARNING: ${l.error}`);else if(l.mode==="allowlist")for(let o of l.roots)this.log(`[transcript-sync] \u2022 ${o}`);let G=new C({providers:[L(void 0,void 0,A({configDir:f(),onChange:e(o=>this.log(`[transcript-sync] Codex capture changed: ${h(o)}`),"onChange")}))],statePath:v(f(),"transcript-sync-state.json"),importTranscript:e(o=>b("/api/sessions/import",o),"importTranscript"),log:e(o=>this.log(`[transcript-sync] ${o}`),"log")});D(G,{signal:a.signal,log:e(o=>this.log(`[transcript-sync] ${o}`),"log")});let N=e(async o=>{this.log(`
|
|
3
3
|
[${o}] shutting down agent...`),a.abort(),await Promise.allSettled([g(2e3),m(),d()]),x(),process.exit(0)},"shutdown");process.on("SIGINT",()=>{N("SIGINT")}),process.on("SIGTERM",()=>{N("SIGTERM")});let _=!1;try{await I({signal:a.signal,log:e(o=>this.log(o),"log"),version:this.config.version,readInstalledVersion:e(()=>{try{return JSON.parse(R(v(this.config.root,"package.json"),"utf-8")).version??null}catch{return null}},"readInstalledVersion"),onVersionDrift:e(()=>{_=!0},"onVersionDrift")}),_&&(this.log("[upgrade] Installed CLI version changed \u2014 restarting worker onto the new code."),await Promise.allSettled([g(2e3),m(),d()]),x(),process.exit(1))}finally{x(),await d()}}};export{w 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-FFI3C3B3.js";import"../chunk-5XUN743A.js";import"../chunk-T4ZIK6RS.js";import"../chunk-W76EQSEV.js";import"../chunk-RSKQRVPJ.js";import"../chunk-HXZM2UHO.js";import"../chunk-V2IEFHT7.js";import"../chunk-YW3JQKGY.js";import"../chunk-O2BKBW7Z.js";import"../chunk-KGQ5W54Y.js";import"../chunk-O7PSLZO6.js";import"../chunk-QFVGUZDO.js";import"../chunk-5R5RGKOW.js";import"../chunk-MOAJLSYV.js";import"../chunk-BLCMXTIK.js";import"../chunk-6QKI756T.js";import"../chunk-5RBLIVBF.js";import"../chunk-EN43UYBN.js";import"../chunk-FAXV5AAG.js";import"../chunk-UF6US7VU.js";import"../chunk-YQ56FQEO.js";import"../chunk-5KD2N2MH.js";import"../chunk-GIRPEMTW.js";import"../chunk-MODXEGCU.js";import"../chunk-7DFNBRLY.js";import"../chunk-4VZLIGMS.js";import"../chunk-CNOD6HWU.js";import"../chunk-AI6FMGKM.js";import"../chunk-6UEFCMR2.js";import"../chunk-2RCWYVEU.js";import"../chunk-RMDLJN4L.js";import"../chunk-BL4BN6RU.js";import"../chunk-DBELYMDA.js";import"../chunk-NTKO4H2K.js";import"../chunk-CJRYYV76.js";import"../chunk-ATL4WZBF.js";import"../chunk-L2CFSMBC.js";import"../chunk-Z72VHGV7.js";import"../chunk-4L2ZEIRE.js";import"../chunk-CDY7TQFZ.js";import"../chunk-XRTZU7IZ.js";import"../chunk-B3BHB26P.js";import"../chunk-N7ODX6PO.js";import"../chunk-PJ3WHQ67.js";import"../chunk-G5BXZT6F.js";import"../chunk-HMMO27U4.js";import"../chunk-KLEF5D3A.js";import"../chunk-JZ5Z2BRO.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-AF3ITIZ4.js";import"../../chunk-I7QSMY3Z.js";import"../../chunk-5R5RGKOW.js";import"../../chunk-ZLLER3HP.js";export{a as processChangelog};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{a}from"../../chunk-
|
|
1
|
+
import{a}from"../../chunk-T4ZIK6RS.js";import"../../chunk-4L2ZEIRE.js";import"../../chunk-CDY7TQFZ.js";import"../../chunk-XRTZU7IZ.js";import"../../chunk-B3BHB26P.js";import"../../chunk-N7ODX6PO.js";import"../../chunk-PJ3WHQ67.js";import"../../chunk-G5BXZT6F.js";import"../../chunk-HMMO27U4.js";import"../../chunk-KLEF5D3A.js";import"../../chunk-JZ5Z2BRO.js";import"../../chunk-ZLLER3HP.js";export{a as processMemoryAb};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{a}from"../../chunk-
|
|
1
|
+
import{a}from"../../chunk-W76EQSEV.js";import"../../chunk-6QKI756T.js";import"../../chunk-5RBLIVBF.js";import"../../chunk-7DFNBRLY.js";import"../../chunk-N7ODX6PO.js";import"../../chunk-KLEF5D3A.js";import"../../chunk-JZ5Z2BRO.js";import"../../chunk-ZLLER3HP.js";export{a as processRunCleanup};
|
package/dist/lib/manual-tasks.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
import{a as l}from"../chunk-
|
|
1
|
+
import{a as l}from"../chunk-AF3ITIZ4.js";import"../chunk-I7QSMY3Z.js";import{d as g}from"../chunk-V2IEFHT7.js";import"../chunk-5R5RGKOW.js";import{a as u}from"../chunk-UF6US7VU.js";import"../chunk-GIRPEMTW.js";import"../chunk-MODXEGCU.js";import"../chunk-B3BHB26P.js";import"../chunk-N7ODX6PO.js";import"../chunk-PJ3WHQ67.js";import{a as i}from"../chunk-GY5IJ4RS.js";import"../chunk-KLEF5D3A.js";import"../chunk-JZ5Z2BRO.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.44",
|
|
4
4
|
"publishConfig": {
|
|
5
5
|
"access": "public"
|
|
6
6
|
},
|
|
@@ -77,9 +77,9 @@
|
|
|
77
77
|
"postgres": "^3.4.0",
|
|
78
78
|
"react": "^19.0.0",
|
|
79
79
|
"zod": "^3.24.0",
|
|
80
|
-
"@rulemetric/
|
|
81
|
-
"@rulemetric/proxy": "0.7.
|
|
82
|
-
"@rulemetric/
|
|
80
|
+
"@rulemetric/skills-registry": "0.7.44",
|
|
81
|
+
"@rulemetric/proxy": "0.7.44",
|
|
82
|
+
"@rulemetric/hooks": "0.7.44"
|
|
83
83
|
},
|
|
84
84
|
"//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.",
|
|
85
85
|
"optionalDependencies": {
|
package/dist/chunk-3BZPEN5H.js
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{a as C}from"./chunk-N7TGRFVZ.js";import{f as c,i as f}from"./chunk-7G6T5C7J.js";import{d as m,e as p}from"./chunk-5R5RGKOW.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};
|
package/dist/chunk-DGH4FBMM.js
DELETED
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
import{c as R}from"./chunk-6QKI756T.js";import{b as s,c as r,i as j}from"./chunk-7G6T5C7J.js";import{a as P}from"./chunk-5RBLIVBF.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
|
-
`)),{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};
|
package/dist/chunk-KZZ2MUQQ.js
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{d as u,e as t,i as x}from"./chunk-7G6T5C7J.js";import{a as A}from"./chunk-4L2ZEIRE.js";import{b as P}from"./chunk-G5BXZT6F.js";import{c as E}from"./chunk-HMMO27U4.js";import{a as f}from"./chunk-ZLLER3HP.js";import{eq as s}from"drizzle-orm";var v=f(m=>(m.summary.pass_rate??0)>=1?1:0,"fullPassScore");async function q(m,d={}){let r=d.db??x(),w=d.executeEval??E,y=d.grade??A,n=d.now??Date.now,[e]=await r.select().from(t).where(s(t.id,m.experimentId)).limit(1);if(!e)return{skipped:"not_found"};if(e.status==="completed"||e.status==="failed")return{skipped:"already_terminal",status:e.status};let[g]=await r.select({body:u.body}).from(u).where(s(u.id,e.memoryId)).limit(1);if(!g)return await r.update(t).set({status:"failed",error:"memory no longer exists",completedAt:new Date(n())}).where(s(t.id,e.id)),{skipped:"memory_gone",status:"failed"};await r.update(t).set({status:"running",startedAt:new Date(n())}).where(s(t.id,e.id));let b=e.expectations??[],l=e.model??void 0,a=[],h=0;try{for(let i=0;i<e.trials;i++){let c=await w({prompt:e.taskPrompt,targetContent:g.body,model:l}),p=await w({prompt:e.taskPrompt,model:l});if(c.error||p.error){h++;continue}let[D,M]=await Promise.all([y({prompt:e.taskPrompt,output:c.output,expectations:b,model:l}),y({prompt:e.taskPrompt,output:p.output,expectations:b,model:l})]);a.push({withScore:v(D),withoutScore:v(M),withLatency:c.durationMs/1e3,withoutLatency:p.durationMs/1e3})}if(a.length===0){let i=`no trials completed (${h}/${e.trials} runs errored \u2014 is the claude CLI available?)`;return await r.update(t).set({status:"failed",error:i,completedAt:new Date(n())}).where(s(t.id,e.id)),{status:"failed",requestedTrials:e.trials,completedTrials:0}}let o=P(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};
|
package/dist/chunk-N7TGRFVZ.js
DELETED
|
@@ -1,70 +0,0 @@
|
|
|
1
|
-
import{a as n}from"./chunk-ZLLER3HP.js";var R="#0d9488",l="#1a1a1a",d="#666666",w="#f5f5f7",C="#ffffff",v="#e5e5e9",O=["Added","Changed","Fixed","Removed","Deprecated","Security"];function z(e){let t=["January","February","March","April","May","June","July","August","September","October","November","December"],[r,o,i]=e.split("-").map(p=>parseInt(p,10));return!r||!o||!i||o<1||o>12?e:`${t[o-1]} ${i}, ${r}`}n(z,"formatIsoDate");function s(e){return e.replace(/&/g,"&").replace(/</g,"<").replace(/>/g,">").replace(/"/g,""").replace(/'/g,"'")}n(s,"escapeHtml");function U(e){let t=[];for(let r of O){let o=e[r];o&&o.length>0&&t.push({name:r,items:o})}return t}n(U,"orderedSections");function k(e){let{version:t,date:r,sections:o,unsubscribeUrl:i,productUrl:p,recipientName:a}=e,f=z(r),y=`What's new in RuleMetric \u2014 ${f}`,$=a?`Hi ${a},`:"Hi there,",E=U(o),b=new Date().getUTCFullYear(),I=E.map(({name:h,items:m})=>{let g=m.map(S=>` <li style="margin:0 0 6px 0;font-size:15px;line-height:1.5;color:${l};">${s(S)}</li>`).join(`
|
|
2
|
-
`);return` <h3 style="margin:24px 0 8px 0;font-size:16px;line-height:1.3;font-weight:600;color:${l};">${h}</h3>
|
|
3
|
-
<ul style="margin:0 0 8px 0;padding-left:20px;">
|
|
4
|
-
${g}
|
|
5
|
-
</ul>`}).join(`
|
|
6
|
-
`),T=`<!doctype html>
|
|
7
|
-
<html lang="en">
|
|
8
|
-
<head>
|
|
9
|
-
<meta charset="utf-8" />
|
|
10
|
-
<meta name="viewport" content="width=device-width, initial-scale=1" />
|
|
11
|
-
<title>${s(y)}</title>
|
|
12
|
-
</head>
|
|
13
|
-
<body style="margin:0;padding:0;background:${w};font-family:-apple-system,BlinkMacSystemFont,'Segoe UI',Roboto,Helvetica,Arial,sans-serif;color:${l};">
|
|
14
|
-
<table role="presentation" width="100%" cellspacing="0" cellpadding="0" border="0" style="background:${w};padding:32px 16px;">
|
|
15
|
-
<tr>
|
|
16
|
-
<td align="center">
|
|
17
|
-
<table role="presentation" width="560" cellspacing="0" cellpadding="0" border="0" style="max-width:560px;background:${C};border:1px solid ${v};border-radius:8px;overflow:hidden;">
|
|
18
|
-
<tr>
|
|
19
|
-
<td style="padding:24px 32px 8px 32px;">
|
|
20
|
-
<a href="${s(p)}" style="text-decoration:none;color:${R};font-size:14px;font-weight:600;">RuleMetric</a>
|
|
21
|
-
</td>
|
|
22
|
-
</tr>
|
|
23
|
-
<tr>
|
|
24
|
-
<td style="padding:8px 32px 8px 32px;">
|
|
25
|
-
<h1 style="margin:0 0 8px 0;font-size:22px;line-height:1.3;font-weight:600;color:${l};">
|
|
26
|
-
What's new \u2014 ${s(f)}
|
|
27
|
-
</h1>
|
|
28
|
-
<p style="margin:0 0 8px 0;font-size:13px;line-height:1.5;color:${d};">
|
|
29
|
-
Release ${s(t)}
|
|
30
|
-
</p>
|
|
31
|
-
<p style="margin:16px 0 0 0;font-size:15px;line-height:1.5;color:${l};">
|
|
32
|
-
${s($)}
|
|
33
|
-
</p>
|
|
34
|
-
<p style="margin:8px 0 0 0;font-size:15px;line-height:1.5;color:${l};">
|
|
35
|
-
Here's what shipped in the latest RuleMetric release.
|
|
36
|
-
</p>
|
|
37
|
-
</td>
|
|
38
|
-
</tr>
|
|
39
|
-
<tr>
|
|
40
|
-
<td style="padding:0 32px 16px 32px;">
|
|
41
|
-
${I}
|
|
42
|
-
</td>
|
|
43
|
-
</tr>
|
|
44
|
-
<tr>
|
|
45
|
-
<td style="padding:16px 32px 24px 32px;border-top:1px solid ${v};">
|
|
46
|
-
<p style="margin:0 0 8px 0;font-size:12px;line-height:1.5;color:${d};">
|
|
47
|
-
You're receiving this because you signed up for RuleMetric product updates. If you'd rather not hear about new releases, you can unsubscribe at any time.
|
|
48
|
-
</p>
|
|
49
|
-
<p style="margin:0 0 4px 0;font-size:12px;line-height:1.5;">
|
|
50
|
-
<a href="${s(i)}" style="color:${R};text-decoration:underline;">Unsubscribe</a>
|
|
51
|
-
</p>
|
|
52
|
-
<p style="margin:0 0 12px 0;font-size:12px;line-height:1.5;color:${d};word-break:break-all;">
|
|
53
|
-
${s(i)}
|
|
54
|
-
</p>
|
|
55
|
-
<p style="margin:0;font-size:11px;line-height:1.5;color:${d};">
|
|
56
|
-
RuleMetric \u2022 ${b}
|
|
57
|
-
</p>
|
|
58
|
-
</td>
|
|
59
|
-
</tr>
|
|
60
|
-
</table>
|
|
61
|
-
</td>
|
|
62
|
-
</tr>
|
|
63
|
-
</table>
|
|
64
|
-
</body>
|
|
65
|
-
</html>`,c=[`What's new in RuleMetric \u2014 ${f}`,`Release ${t}`,"",$,"","Here's what shipped in the latest RuleMetric release.",""];for(let{name:h,items:m}of E){c.push(`${h}:`);for(let g of m)c.push(` - ${g}`);c.push("")}c.push("--","You're receiving this because you signed up for RuleMetric product updates.",`Unsubscribe: ${i}`,"",`RuleMetric \u2022 ${b}`);let N=c.join(`
|
|
66
|
-
`);return{subject:y,html:T,text:N}}n(k,"renderChangelogAnnouncement");import{randomBytes as L}from"node:crypto";async function x(e){let t=e.idempotencyKey?` idempotencyKey=${e.idempotencyKey}`:"";return process.stderr.write(`[email:noop] would send to=${e.to} subject=${JSON.stringify(e.subject)}${t}
|
|
67
|
-
`),{id:`noop-${L(8).toString("hex")}`,provider:"noop"}}n(x,"sendNoopEmail");var u=null;async function P(){if(u)return u;let e=process.env.RESEND_API_KEY;if(!e)throw new Error("RESEND_API_KEY is not set");let{Resend:t}=await import("resend");return u=new t(e),u}n(P,"getClient");var _=!1;function F(){let e=process.env.RESEND_FROM_EMAIL;if(e)return e;if(!_){_=!0;let t=process.env.NODE_ENV==="production"?"PRODUCTION":"dev";process.stderr.write(`[email:resend] ${t}: RESEND_FROM_EMAIL not set \u2014 sending from the shared sandbox sender onboarding@resend.dev, which Gmail spam-filters. Set RESEND_FROM_EMAIL to an address on a verified domain.
|
|
68
|
-
`)}return"onboarding@resend.dev"}n(F,"resolveFromEmail");async function M(e){let t=e.fromName??"RuleMetric",r=F(),o=`${t} <${r}>`,i=await P(),p=e.idempotencyKey?{idempotencyKey:e.idempotencyKey}:void 0,a=await i.emails.send({from:o,to:e.to,subject:e.subject,html:e.html,text:e.text,...e.headers?{headers:e.headers}:{}},p);if(a.error)throw new Error(`Resend send failed: ${a.error.message}`);if(!a.data)throw new Error("Resend send returned no data and no error");return{id:a.data.id,provider:"resend"}}n(M,"sendResendEmail");async function A(e){throw new Error("SMTP provider not implemented. Set RESEND_API_KEY to use Resend, or unset RULEMETRIC_EMAIL_PROVIDER to fall back to noop.")}n(A,"sendSmtpEmail");function K(){let e=process.env.RULEMETRIC_EMAIL_PROVIDER;return e==="resend"||e==="smtp"||e==="noop"?e:process.env.RESEND_API_KEY?"resend":"noop"}n(K,"selectEmailProvider");var Y=new Set(["test","example","invalid","localhost"]),j=/^example\.(com|net|org)$/;function B(e){let t=e.trim().toLowerCase(),r=t.lastIndexOf("@");if(r<0)return!1;let o=t.slice(r+1);if(!o)return!1;let i=o.slice(o.lastIndexOf(".")+1);return!!(Y.has(i)||j.test(o))}n(B,"isUndeliverableRecipient");var D=!1;async function se(e){let t=K();switch(D||(D=!0,process.stderr.write(`[email] active provider: ${t}
|
|
69
|
-
`)),t){case"resend":return B(e.to)?(process.stderr.write(`[email] skipping real send to reserved/undeliverable address ${e.to} (RFC 2606/6761) \u2014 routed to noop to protect sender reputation
|
|
70
|
-
`),x(e)):M(e);case"smtp":return A(e);case"noop":if(process.env.NODE_ENV==="production"&&process.env.RULEMETRIC_EMAIL_PROVIDER!=="noop")throw new Error("email provider unconfigured in production: RESEND_API_KEY is not set (set it, or force RULEMETRIC_EMAIL_PROVIDER=noop to intentionally disable email)");return x(e)}}n(se,"sendEmail");export{k as a,se as b};
|
package/dist/chunk-RWF75MTD.js
DELETED
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
import{b as B}from"./chunk-N7TGRFVZ.js";import{a as v,f as d,g as n,h as m,i as U}from"./chunk-7G6T5C7J.js";import{a as R}from"./chunk-5RBLIVBF.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
|
-
`)),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};
|
package/dist/chunk-W74LSQ6Y.js
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{c as C}from"./chunk-5XUN743A.js";import{b as S}from"./chunk-BLCMXTIK.js";import{a as M}from"./chunk-KZZ2MUQQ.js";import{a as L}from"./chunk-DGH4FBMM.js";import{a as y}from"./chunk-RSKQRVPJ.js";import{a as H}from"./chunk-HXZM2UHO.js";import{d as _}from"./chunk-V2IEFHT7.js";import{b as R}from"./chunk-YW3JQKGY.js";import{a as T}from"./chunk-RWF75MTD.js";import{a as A}from"./chunk-O2BKBW7Z.js";import{a as E}from"./chunk-KGQ5W54Y.js";import{a as I}from"./chunk-O7PSLZO6.js";import{b as h}from"./chunk-5RBLIVBF.js";import{a as x}from"./chunk-MOAJLSYV.js";import{a as P}from"./chunk-EN43UYBN.js";import{a as N}from"./chunk-FAXV5AAG.js";import{a as k}from"./chunk-UF6US7VU.js";import{j as b}from"./chunk-2RCWYVEU.js";import{d as w}from"./chunk-NTKO4H2K.js";import{b as f,e as v,f as p}from"./chunk-KLEF5D3A.js";import{a as s}from"./chunk-ZLLER3HP.js";var W={process_eval:E,process_insights:I,process_launch:S,process_send_message:y,process_conversation:A,process_session_goal:H,distill_memories:R,memory_ab:M,process_announcement:T,process_run_cleanup:L,cron_suggest_instructions:_,cron_refresh_skills:k,cron_refresh_pricing:N,cron_eval_autorun:P,cron_instruction_evolution:b,process_judge_review:x},D=Object.keys(W),F=new Set(["process_announcement","process_run_cleanup","memory_ab"]);function J(e=process.env){return e.DATABASE_URL?D:D.filter(n=>!F.has(n))}s(J,"availableCapabilities");var U=3e4,K=3e4,G=3e4,V=250,B=5e3,q=`thin-agent-${process.pid}`,g=null;function Q(e,n,r,l){let c;try{let d=w();c={claude:d.claudeBin!=null,codex:d.codexBin!=null,codexModel:d.codexConfiguredModel}}catch{}let i=s(d=>{p("/api/workers/heartbeat",{workerType:"cli-worker",clientName:q,clientVersion:l,workerVersion:"0.1.0",currentJobId:null,inFlightCount:0,lastError:null,status:d,metadata:{capabilities:e,mode:"thin-agent",llmEngines:c}}).then(u=>{let t=u?.advisory;t&&t.message!==g?(g=t.message,a(r,{event:"worker_advisory",code:t.code,message:t.message})):t||(g=null)}).catch(u=>{a(r,{event:"presence_heartbeat_error",error:u instanceof Error?u.message:String(u)})})},"send");i("alive");let o=setInterval(()=>i("alive"),G);n.addEventListener("abort",()=>{clearInterval(o),i("shutting_down")},{once:!0})}s(Q,"startPresenceHeartbeat");function a(e,n){try{e(JSON.stringify({ts:new Date().toISOString(),...n}))}catch{e(`[agent-loop] log_error event=${n.event}`)}}s(a,"structuredLog");function O(e,n){return n.aborted?Promise.resolve(!1):e<=0?Promise.resolve(!0):new Promise(r=>{let l=setTimeout(()=>{n.removeEventListener("abort",c),r(!0)},e),c=s(()=>{clearTimeout(l),n.removeEventListener("abort",c),r(!1)},"onAbort");n.addEventListener("abort",c,{once:!0})})}s(O,"abortableSleep");async function X(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(X,"pollForWork");function z(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(z,"makeHelpers");async function Y(e,n,r){let l=W[e.kind],c=Date.now();if(a(r,{event:"claim",jobId:e.id,kind:e.kind,attempts:e.attempts}),!l){let o=`unknown kind: ${e.kind}`;a(r,{event:"fail",jobId:e.id,kind:e.kind,terminal:!0,error:o}),await p(`/api/work/${e.id}/fail`,{leaseToken:e.leaseToken,error:o,terminal:!0}).catch(()=>{});return}let i=setInterval(()=>{a(r,{event:"heartbeat",jobId:e.id}),p(`/api/work/${e.id}/heartbeat`,{leaseToken:e.leaseToken}).catch(o=>{a(r,{event:"heartbeat_error",jobId:e.id,error:o instanceof Error?o.message:String(o)})})},n);try{let o=z(e.attempts,r),d=await l(e.payload,o)??{};clearInterval(i),a(r,{event:"complete",jobId:e.id,kind:e.kind,durationMs:Date.now()-c}),await p(`/api/work/${e.id}/complete`,{leaseToken:e.leaseToken,result:d})}catch(o){clearInterval(i);let d=h(o),u=o instanceof Error?o.message:String(o);a(r,{event:"fail",jobId:e.id,kind:e.kind,durationMs:Date.now()-c,terminal:d,error:u}),await p(`/api/work/${e.id}/fail`,{leaseToken:e.leaseToken,error:u,terminal:d}).catch(t=>{a(r,{event:"fail_post_error",jobId:e.id,error:t instanceof Error?t.message:String(t)})})}}s(Y,"runOne");async function we(e){let n=e.log??(()=>{}),r=e.pollWaitMs??U,l=e.heartbeatIntervalMs??K,c=e.capabilities??J(),i=V;a(n,{event:"agent_start",capabilities:c,pollWaitMs:r,heartbeatIntervalMs:l}),Q(c,e.signal,n,e.version),C({signal:e.signal,log:n}).catch(t=>{a(n,{event:"tt_heartbeat_fatal",error:t instanceof Error?t.message:String(t)})});let o=5*6e4,d=0,u=s(()=>{if(!e.readInstalledVersion||!e.version)return!1;let t=Date.now();if(t-d<o)return!1;d=t;let m=e.readInstalledVersion();return!!(m&&m!==e.version)},"versionDrifted");for(;!e.signal.aborted;){if(u()){a(n,{event:"agent_version_drift",bootVersion:e.version,installedVersion:e.readInstalledVersion?.()??null}),e.onVersionDrift?.();break}let t=null;try{t=await X(c,r)}catch(m){let $=m instanceof f?m.statusCode:void 0;if(a(n,{event:"poll_error",status:$,error:m instanceof Error?m.message:String(m)}),!await O(i,e.signal))break;i=Math.min(i*2,B);continue}if(!t){if(a(n,{event:"poll_204"}),!await O(i,e.signal))break;i=Math.min(i*2,B);continue}i=V,await Y(t,l,n)}a(n,{event:"agent_stop"})}s(we,"runAgentLoop");export{W as a,D as b,J as c,X as d,we as e};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{a}from"../../chunk-RWF75MTD.js";import"../../chunk-N7TGRFVZ.js";import"../../chunk-7G6T5C7J.js";import"../../chunk-5RBLIVBF.js";import"../../chunk-ZLLER3HP.js";export{a as processAnnouncement};
|