@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.
@@ -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,"&amp;").replace(/</g,"&lt;").replace(/>/g,"&gt;").replace(/"/g,"&quot;").replace(/'/g,"&#39;")}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{e as I}from"../../chunk-W74LSQ6Y.js";import"../../chunk-5XUN743A.js";import"../../chunk-BLCMXTIK.js";import"../../chunk-KZZ2MUQQ.js";import"../../chunk-DGH4FBMM.js";import"../../chunk-6QKI756T.js";import"../../chunk-RSKQRVPJ.js";import"../../chunk-HXZM2UHO.js";import"../../chunk-V2IEFHT7.js";import"../../chunk-YW3JQKGY.js";import"../../chunk-RWF75MTD.js";import"../../chunk-N7TGRFVZ.js";import{j as d}from"../../chunk-7G6T5C7J.js";import"../../chunk-O2BKBW7Z.js";import"../../chunk-KGQ5W54Y.js";import"../../chunk-O7PSLZO6.js";import"../../chunk-QFVGUZDO.js";import"../../chunk-5R5RGKOW.js";import"../../chunk-5RBLIVBF.js";import"../../chunk-MOAJLSYV.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.
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};
@@ -1 +1 @@
1
- import{a,b,c,d,e}from"../chunk-W74LSQ6Y.js";import"../chunk-5XUN743A.js";import"../chunk-BLCMXTIK.js";import"../chunk-KZZ2MUQQ.js";import"../chunk-DGH4FBMM.js";import"../chunk-6QKI756T.js";import"../chunk-RSKQRVPJ.js";import"../chunk-HXZM2UHO.js";import"../chunk-V2IEFHT7.js";import"../chunk-YW3JQKGY.js";import"../chunk-RWF75MTD.js";import"../chunk-N7TGRFVZ.js";import"../chunk-7G6T5C7J.js";import"../chunk-O2BKBW7Z.js";import"../chunk-KGQ5W54Y.js";import"../chunk-O7PSLZO6.js";import"../chunk-QFVGUZDO.js";import"../chunk-5R5RGKOW.js";import"../chunk-5RBLIVBF.js";import"../chunk-MOAJLSYV.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
+ 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-3BZPEN5H.js";import"../../chunk-N7TGRFVZ.js";import"../../chunk-7G6T5C7J.js";import"../../chunk-5R5RGKOW.js";import"../../chunk-ZLLER3HP.js";export{a as processChangelog};
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-KZZ2MUQQ.js";import"../../chunk-7G6T5C7J.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-ZLLER3HP.js";export{a as processMemoryAb};
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-DGH4FBMM.js";import"../../chunk-6QKI756T.js";import"../../chunk-7G6T5C7J.js";import"../../chunk-5RBLIVBF.js";import"../../chunk-7DFNBRLY.js";import"../../chunk-N7ODX6PO.js";import"../../chunk-ZLLER3HP.js";export{a as processRunCleanup};
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};
@@ -1 +1 @@
1
- import{a as l}from"../chunk-3BZPEN5H.js";import{d as g}from"../chunk-V2IEFHT7.js";import"../chunk-N7TGRFVZ.js";import"../chunk-7G6T5C7J.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};
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};
@@ -4657,5 +4657,5 @@
4657
4657
  ]
4658
4658
  }
4659
4659
  },
4660
- "version": "0.7.43"
4660
+ "version": "0.7.44"
4661
4661
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@rulemetric/cli",
3
- "version": "0.7.43",
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/hooks": "0.7.43",
81
- "@rulemetric/proxy": "0.7.43",
82
- "@rulemetric/skills-registry": "0.7.43"
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": {
@@ -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};
@@ -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};
@@ -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};
@@ -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,"&amp;").replace(/</g,"&lt;").replace(/>/g,"&gt;").replace(/"/g,"&quot;").replace(/'/g,"&#39;")}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};
@@ -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,"&amp;").replace(/</g,"&lt;").replace(/>/g,"&gt;").replace(/"/g,"&quot;").replace(/'/g,"&#39;")}$(K,"escapeHtml");async function W(I){let{recipient:s,announcement:t,webBaseUrl:D,sendEmail:p,db:b}=I;if(!s.email)return{ok:"skipped",reason:"no-email"};let r=await b.insert(n).values({announcementId:t.id,userId:s.userId,email:s.email,status:"pending"}).onConflictDoNothing({target:[n.announcementId,n.userId]}).returning({id:n.id});if(r.length===0)return{ok:"skipped",reason:"already-claimed"};let i=r[0].id,w=D.replace(/\/$/,""),f=encodeURIComponent(s.unsubscribeToken),h=`${w}/unsubscribe/${f}`,y=s.displayName?.trim().split(/\s+/)[0]||"there",k=t.htmlBody.replaceAll("{{unsubscribe_url}}",h).replaceAll("{{recipient_name}}",K(y)),o=t.textBody.replaceAll("{{unsubscribe_url}}",h).replaceAll("{{recipient_name}}",y);try{let e=await p({to:s.email,subject:t.subject,html:k,text:o,fromName:"RuleMetric",idempotencyKey:i,headers:{"List-Unsubscribe":`<${w}/api/unsubscribe/${f}>`,"List-Unsubscribe-Post":"List-Unsubscribe=One-Click"}});if(e.provider==="noop"){let a="no email provider configured (RESEND_API_KEY unset on the worker)";return await b.update(n).set({status:"failed",error:a}).where(l(n.id,i)),{ok:"failed",error:a,provider:e.provider}}return await b.update(n).set({status:"sent",providerId:e.id,sentAt:new Date}).where(l(n.id,i)),{ok:"sent",providerId:e.id,provider:e.provider}}catch(e){let a=e instanceof Error?e.message:String(e);return await b.update(n).set({status:"failed",error:a.slice(0,1e3)}).where(l(n.id,i)).catch(()=>{}),{ok:"failed",error:a}}}$(W,"sendOne");export{G as a};
@@ -1 +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};