@rulemetric/cli 0.7.5 → 0.7.6

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.
@@ -1,4 +1,4 @@
1
- import{f as d}from"./chunk-RTWRHIKY.js";import{c as e,d as o,h as y}from"./chunk-H4SV7FN4.js";import{a as g}from"./chunk-ZLLER3HP.js";import{eq as c,asc as P,sql as R}from"drizzle-orm";var T=1800*1e3,I=300*1e3,h=10,D=`Given these messages from an AI coding session, write a 1-2 sentence summary of what the user is trying to accomplish. Focus on the goal, not the steps. No preamble.
1
+ import{f as d}from"./chunk-RTWRHIKY.js";import{c as e,d as o,h as y}from"./chunk-4L5CU7LH.js";import{a as g}from"./chunk-ZLLER3HP.js";import{eq as c,asc as P,sql as R}from"drizzle-orm";var T=1800*1e3,I=300*1e3,h=10,D=`Given these messages from an AI coding session, write a 1-2 sentence summary of what the user is trying to accomplish. Focus on the goal, not the steps. No preamble.
2
2
 
3
3
  Return strict JSON in the form: {"goalSummary": "..."}`;async function b(t,a={}){let n=a.db??y(),f=a.llm??d,r=a.now??Date.now,[i]=await n.select().from(e).where(c(e.id,t.sessionId)).limit(1);if(!i)return{skipped:"not_found"};let w=(await n.execute(R`SELECT MAX(timestamp) AS last_at FROM session_events WHERE session_id = ${t.sessionId}`))?.[0]?.last_at??i.startedAt,_=new Date(w).getTime();if(r()-_>T)return{skipped:"stale"};let m=i.analysis??{},p=m.goalSummaryAt?new Date(m.goalSummaryAt).getTime():0;if(p&&r()-p<I)return{skipped:"recent"};let u=(await n.select().from(o).where(c(o.sessionId,t.sessionId)).orderBy(P(o.timestamp)).limit(h*2)).filter(s=>s.content&&(s.eventType==="user_message"||s.eventType==="assistant_response")).map(s=>`${s.eventType==="user_message"?"USER":"ASSISTANT"}: ${s.content}`).join(`
4
4
 
@@ -0,0 +1 @@
1
+ import{a as m,c as Wn}from"./chunk-ZLLER3HP.js";import{boolean as mo,pgTable as Xn,text as Fe,timestamp as Tt,uuid as po}from"drizzle-orm/pg-core";import{pgTable as He,text as $,timestamp as ye,jsonb as lo,uuid as F,primaryKey as co}from"drizzle-orm/pg-core";var d=He("organizations",{id:F("id").primaryKey().defaultRandom(),name:$("name").unique().notNull(),slug:$("slug").unique().notNull(),metadata:lo("metadata"),createdAt:ye("created_at",{withTimezone:!0}).defaultNow(),updatedAt:ye("updated_at",{withTimezone:!0}).defaultNow()}),x=He("teams",{id:F("id").primaryKey().defaultRandom(),orgId:F("org_id").references(()=>d.id,{onDelete:"cascade"}),name:$("name").notNull(),slug:$("slug").notNull(),metadata:lo("metadata"),createdAt:ye("created_at",{withTimezone:!0}).defaultNow()}),Z=He("user_organizations",{userId:F("user_id").notNull(),orgId:F("org_id").references(()=>d.id,{onDelete:"cascade"}).notNull(),role:$("role").notNull().default("member"),createdAt:ye("created_at",{withTimezone:!0}).defaultNow()},e=>[co({columns:[e.userId,e.orgId]})]),ee=He("user_teams",{userId:F("user_id").notNull(),teamId:F("team_id").references(()=>x.id,{onDelete:"cascade"}).notNull(),role:$("role").notNull().default("member"),createdAt:ye("created_at",{withTimezone:!0}).defaultNow()},e=>[co({columns:[e.userId,e.teamId]})]);var o=Xn("profiles",{id:po("id").primaryKey(),email:Fe("email"),displayName:Fe("display_name"),activeOrgId:po("active_org_id").references(()=>d.id,{onDelete:"set null"}),isSuperadmin:mo("is_superadmin").notNull().default(!1),claudeCodePlan:Fe("claude_code_plan"),planSource:Fe("plan_source").notNull().default("detected"),setupCompletedAt:Tt("setup_completed_at",{withTimezone:!0}),liveSendSkipped:mo("live_send_skipped").notNull().default(!1),createdAt:Tt("created_at",{withTimezone:!0}).defaultNow(),updatedAt:Tt("updated_at",{withTimezone:!0}).defaultNow()});import{pgTable as or,text as oe,timestamp as bt,jsonb as No,uuid as Je,integer as nr,boolean as rr,index as Dt}from"drizzle-orm/pg-core";import{boolean as Zn,jsonb as er,pgTable as zt,primaryKey as xo,text as G,timestamp as Te,uniqueIndex as At,uuid as V}from"drizzle-orm/pg-core";import{sql as tr}from"drizzle-orm";import{pgTable as _o,text as f,timestamp as Ie,jsonb as Ve,uuid as P,integer as wt,boolean as $n,uniqueIndex as fo,index as Ge}from"drizzle-orm/pg-core";var n=_o("instructions",{id:P("id").primaryKey().defaultRandom(),name:f("name").notNull(),description:f("description").notNull(),type:f("type").notNull().default("instruction"),scope:f("scope").notNull(),scopeRef:P("scope_ref"),version:f("version").notNull(),content:f("content").notNull(),frontmatter:Ve("frontmatter").notNull(),slots:Ve("slots"),tags:f("tags").array(),compatibility:f("compatibility").array(),createdBy:P("created_by"),createdAt:Ie("created_at",{withTimezone:!0}).defaultNow(),updatedAt:Ie("updated_at",{withTimezone:!0}).defaultNow(),archived:$n("archived").default(!1),archivedAt:Ie("archived_at",{withTimezone:!0}),archivedBy:P("archived_by"),forkedFromId:P("forked_from_id").references(()=>n.id,{onDelete:"set null"}),upstreamVersion:f("upstream_version"),badge:f("badge"),contentHash:f("content_hash"),contextIdentity:f("context_identity"),scanScore:wt("scan_score"),scanFindings:Ve("scan_findings"),popularityScore:wt("popularity_score"),sourceUpdatedAt:Ie("source_updated_at",{withTimezone:!0})},e=>[fo("instructions_name_scope_ref_idx").on(e.name,e.scope,e.scopeRef),Ge("idx_instructions_scope").on(e.scope,e.scopeRef),Ge("idx_instructions_created_by").on(e.createdBy),Ge("idx_instructions_context_identity").on(e.createdBy,e.contextIdentity),Ge("idx_instructions_public_recency").on(e.scope,e.sourceUpdatedAt.desc())]),te=_o("instruction_versions",{id:P("id").primaryKey().defaultRandom(),instructionId:P("instruction_id").references(()=>n.id,{onDelete:"cascade"}),versionNumber:wt("version_number").notNull(),content:f("content").notNull(),frontmatter:Ve("frontmatter").notNull(),changeSummary:f("change_summary"),createdBy:P("created_by"),createdAt:Ie("created_at",{withTimezone:!0}).defaultNow()},e=>[fo("instruction_versions_instruction_version_idx").on(e.instructionId,e.versionNumber)]);var u=zt("projects",{id:V("id").primaryKey().defaultRandom(),orgId:V("org_id").references(()=>d.id,{onDelete:"cascade"}),name:G("name").notNull(),description:G("description"),githubRepo:G("github_repo"),gitRemoteUrl:G("git_remote_url"),gitRootCommit:G("git_root_commit"),gitRemoteAliases:G("git_remote_aliases").array().notNull().default([]),metadata:er("metadata"),createdBy:V("created_by"),createdAt:Te("created_at",{withTimezone:!0}).defaultNow(),updatedAt:Te("updated_at",{withTimezone:!0}).defaultNow()},e=>[At("projects_org_name_idx").on(e.orgId,e.name),At("projects_git_remote_url_unique").on(e.gitRemoteUrl).where(tr`${e.gitRemoteUrl} IS NOT NULL`)]),K=zt("project_instructions",{projectId:V("project_id").references(()=>u.id,{onDelete:"cascade"}).notNull(),instructionId:V("instruction_id").references(()=>n.id,{onDelete:"cascade"}).notNull(),addedAt:Te("added_at",{withTimezone:!0}).defaultNow(),addedBy:V("added_by")},e=>[xo({columns:[e.projectId,e.instructionId]})]),go=zt("project_checkouts",{projectId:V("project_id").references(()=>u.id,{onDelete:"cascade"}).notNull(),path:G("path").notNull(),isWorktree:Zn("is_worktree").notNull().default(!1),firstSeen:Te("first_seen",{withTimezone:!0}).notNull().defaultNow(),lastSeen:Te("last_seen",{withTimezone:!0}).notNull().defaultNow()},e=>[xo({columns:[e.projectId,e.path]}),At("project_checkouts_path_unique").on(e.path)]);var _=or("agent_runs",{id:Je("id").primaryKey().defaultRandom(),userId:Je("user_id").notNull().references(()=>o.id,{onDelete:"cascade"}),orgId:Je("org_id").references(()=>d.id,{onDelete:"set null"}),projectId:Je("project_id").references(()=>u.id,{onDelete:"set null"}),projectPath:oe("project_path"),gitRemote:oe("git_remote"),baseBranch:oe("base_branch"),title:oe("title"),prompt:oe("prompt"),toolSpec:No("tool_spec").notNull().default([]),autoWorktree:rr("auto_worktree").notNull().default(!0),status:oe("status").notNull().default("pending"),sessionCount:nr("session_count").notNull().default(0),metadata:No("metadata").notNull().default({}),createdAt:bt("created_at",{withTimezone:!0}).notNull().defaultNow(),updatedAt:bt("updated_at",{withTimezone:!0}).notNull().defaultNow(),completedAt:bt("completed_at",{withTimezone:!0})},e=>[Dt("idx_agent_runs_user").on(e.userId),Dt("idx_agent_runs_org_created").on(e.orgId,e.createdAt),Dt("idx_agent_runs_project").on(e.projectId)]);import{pgTable as Rt,text as N,timestamp as we,jsonb as J,uuid as A,integer as Ye,uniqueIndex as vo,index as y}from"drizzle-orm/pg-core";var a=Rt("sessions",{id:A("id").primaryKey().defaultRandom(),userId:A("user_id").notNull().references(()=>o.id,{onDelete:"cascade"}),externalSessionId:N("external_session_id"),projectId:A("project_id").references(()=>u.id,{onDelete:"set null"}),orgId:A("org_id").references(()=>d.id,{onDelete:"set null"}),tool:N("tool").notNull(),projectPath:N("project_path"),gitBranch:N("git_branch"),startedAt:we("started_at",{withTimezone:!0}).notNull(),endedAt:we("ended_at",{withTimezone:!0}),eventCount:Ye("event_count").default(0),tokenUsage:J("token_usage"),analysis:J("analysis"),analyzedAt:we("analyzed_at",{withTimezone:!0}),analyzedEventCount:Ye("analyzed_event_count"),analyzedTurnCount:Ye("analyzed_turn_count"),metadata:J("metadata").default({}),origin:N("origin").notNull().default("unknown"),runId:A("run_id").references(()=>_.id,{onDelete:"set null"}),model:N("model"),harnessVersion:N("harness_version"),createdAt:we("created_at",{withTimezone:!0}).defaultNow()},e=>[y("idx_sessions_user").on(e.userId),y("idx_sessions_tool").on(e.tool),y("idx_sessions_started_at").on(e.startedAt),y("idx_sessions_project").on(e.projectId),y("idx_sessions_org_started_at").on(e.orgId,e.startedAt),y("idx_sessions_run").on(e.runId),vo("idx_sessions_user_external").on(e.userId,e.externalSessionId)]),ne=Rt("session_events",{id:A("id").primaryKey().defaultRandom(),sessionId:A("session_id").notNull().references(()=>a.id,{onDelete:"cascade"}),sequence:Ye("sequence").notNull(),eventType:N("event_type").notNull(),content:N("content"),toolName:N("tool_name"),toolInput:J("tool_input"),toolOutput:J("tool_output"),tokenUsage:J("token_usage"),model:N("model"),timestamp:we("timestamp",{withTimezone:!0}).notNull(),metadata:J("metadata").default({})},e=>[vo("session_events_session_sequence_idx").on(e.sessionId,e.sequence),y("idx_session_events_session_id").on(e.sessionId),y("idx_session_events_event_type").on(e.eventType),y("idx_session_events_model").on(e.model)]),O=Rt("session_instructions",{sessionId:A("session_id").notNull().references(()=>a.id,{onDelete:"cascade"}),instructionId:A("instruction_id").notNull().references(()=>n.id,{onDelete:"cascade"}),linkMethod:N("link_method").notNull()},e=>[y("idx_session_instructions_instruction_id").on(e.instructionId)]);import{boolean as sr,date as ir,index as kt,integer as ar,jsonb as dr,pgTable as Et,text as v,timestamp as C,uniqueIndex as ur,uuid as re}from"drizzle-orm/pg-core";var ho=Et("announcements",{id:re("id").primaryKey().defaultRandom(),version:v("version").notNull().unique(),releaseDate:ir("release_date").notNull(),subject:v("subject").notNull(),htmlBody:v("html_body").notNull(),textBody:v("text_body").notNull(),sections:dr("sections").notNull().default({}),status:v("status").notNull().default("draft"),recipientCount:ar("recipient_count"),sentAt:C("sent_at",{withTimezone:!0}),sentBy:re("sent_by"),error:v("error"),createdAt:C("created_at",{withTimezone:!0}).notNull().defaultNow(),updatedAt:C("updated_at",{withTimezone:!0}).notNull().defaultNow()},e=>[kt("idx_announcements_status").on(e.status),kt("idx_announcements_created").on(e.createdAt)]),yo=Et("announcement_deliveries",{id:re("id").primaryKey().defaultRandom(),announcementId:re("announcement_id").notNull(),userId:re("user_id").notNull(),email:v("email").notNull(),status:v("status").notNull().default("pending"),providerId:v("provider_id"),error:v("error"),sentAt:C("sent_at",{withTimezone:!0}),createdAt:C("created_at",{withTimezone:!0}).notNull().defaultNow()},e=>[ur("uniq_announcement_deliveries_announcement_user").on(e.announcementId,e.userId),kt("idx_announcement_deliveries_user").on(e.userId,e.createdAt)]),Io=Et("notification_preferences",{userId:re("user_id").primaryKey(),productAnnouncements:sr("product_announcements").notNull().default(!0),unsubscribeToken:v("unsubscribe_token").notNull().unique(),unsubscribedAt:C("unsubscribed_at",{withTimezone:!0}),createdAt:C("created_at",{withTimezone:!0}).notNull().defaultNow(),updatedAt:C("updated_at",{withTimezone:!0}).notNull().defaultNow()});import{pgTable as lr,text as jt,timestamp as Qe,uuid as We,index as To}from"drizzle-orm/pg-core";var z=lr("org_invitations",{id:We("id").primaryKey().defaultRandom(),orgId:We("org_id").notNull().references(()=>d.id,{onDelete:"cascade"}),email:jt("email").notNull(),role:jt("role").notNull().default("member"),teamId:We("team_id").references(()=>x.id,{onDelete:"set null"}),invitedBy:We("invited_by").notNull().references(()=>o.id),token:jt("token").notNull().unique(),expiresAt:Qe("expires_at",{withTimezone:!0}).notNull(),acceptedAt:Qe("accepted_at",{withTimezone:!0}),revokedAt:Qe("revoked_at",{withTimezone:!0}),createdAt:Qe("created_at",{withTimezone:!0}).notNull().defaultNow()},e=>[To("idx_org_invitations_token").on(e.token),To("idx_org_invitations_org").on(e.orgId)]);import{pgTable as cr,text as mr,timestamp as pr,jsonb as _r,uuid as St,index as wo}from"drizzle-orm/pg-core";var se=cr("instruction_events",{id:St("id").primaryKey().defaultRandom(),instructionId:St("instruction_id").notNull().references(()=>n.id,{onDelete:"cascade"}),eventType:mr("event_type").notNull(),actorId:St("actor_id").notNull(),metadata:_r("metadata"),createdAt:pr("created_at",{withTimezone:!0}).defaultNow()},e=>[wo("idx_instruction_events_instruction").on(e.instructionId),wo("idx_instruction_events_type").on(e.eventType)]);import{pgTable as Ao,text as Xe,timestamp as zo,uuid as I,integer as bo,index as ie,unique as fr}from"drizzle-orm/pg-core";var b=Ao("treatment_assignments",{id:I("id").primaryKey().defaultRandom(),userId:I("user_id").notNull().references(()=>o.id,{onDelete:"cascade"}),treatmentType:Xe("treatment_type").notNull(),treatmentId:I("treatment_id").notNull(),treatmentVersion:bo("treatment_version").notNull().default(1),projectId:I("project_id").references(()=>u.id,{onDelete:"set null"}),assignedBy:I("assigned_by").references(()=>o.id,{onDelete:"set null"}),method:Xe("method").notNull(),assignedAt:zo("assigned_at",{withTimezone:!0}).notNull().defaultNow()},e=>[ie("idx_treatment_assignments_user").on(e.userId),ie("idx_treatment_assignments_treatment").on(e.treatmentType,e.treatmentId),ie("idx_treatment_assignments_project").on(e.projectId)]),D=Ao("treatment_exposures",{id:I("id").primaryKey().defaultRandom(),sessionId:I("session_id").notNull().references(()=>a.id,{onDelete:"cascade"}),userId:I("user_id").notNull().references(()=>o.id,{onDelete:"cascade"}),treatmentType:Xe("treatment_type").notNull(),treatmentId:I("treatment_id").notNull(),treatmentVersion:bo("treatment_version").notNull().default(1),assignmentId:I("assignment_id").references(()=>b.id,{onDelete:"set null"}),method:Xe("method").notNull(),exposedAt:zo("exposed_at",{withTimezone:!0}).notNull().defaultNow()},e=>[fr("treatment_exposures_unique").on(e.sessionId,e.treatmentType,e.treatmentId,e.treatmentVersion),ie("idx_treatment_exposures_treatment").on(e.treatmentType,e.treatmentId),ie("idx_treatment_exposures_user").on(e.userId),ie("idx_treatment_exposures_session").on(e.sessionId)]);import{pgTable as xr,text as ae,timestamp as Pt,uuid as Kt,jsonb as gr,uniqueIndex as Nr,index as Do}from"drizzle-orm/pg-core";var $e=xr("session_terminal_targets",{id:Kt("id").primaryKey().defaultRandom(),userId:Kt("user_id").notNull().references(()=>o.id,{onDelete:"cascade"}),sessionId:Kt("session_id").references(()=>a.id,{onDelete:"set null"}),externalSessionId:ae("external_session_id"),kind:ae("kind").notNull(),target:ae("target").notNull(),status:ae("status").notNull().default("active"),attachCommand:ae("attach_command").notNull(),projectPath:ae("project_path"),metadata:gr("metadata").notNull().default({}),lastSeenAt:Pt("last_seen_at",{withTimezone:!0}).defaultNow(),createdAt:Pt("created_at",{withTimezone:!0}).defaultNow(),updatedAt:Pt("updated_at",{withTimezone:!0}).defaultNow()},e=>[Nr("idx_session_terminal_targets_user_target").on(e.userId,e.target),Do("idx_session_terminal_targets_session").on(e.sessionId),Do("idx_session_terminal_targets_user_status").on(e.userId,e.status)]);import{boolean as vr,index as Ze,jsonb as Ro,pgTable as hr,text as Y,timestamp as Ae,uuid as et,integer as yr}from"drizzle-orm/pg-core";var ko=hr("session_send_jobs",{id:et("id").primaryKey().defaultRandom(),userId:et("user_id").notNull(),sessionId:et("session_id").notNull().references(()=>a.id,{onDelete:"cascade"}),terminalTargetId:et("terminal_target_id").references(()=>$e.id,{onDelete:"set null"}),target:Y("target").notNull(),message:Y("message").notNull(),submit:vr("submit").notNull().default(!0),delivery:Y("delivery").notNull().default("live"),status:Y("status").notNull().default("pending"),result:Ro("result"),error:Y("error"),attempts:yr("attempts").notNull().default(0),taskKind:Y("task_kind"),payload:Ro("payload"),claimedBy:Y("claimed_by"),claimedAt:Ae("claimed_at",{withTimezone:!0}),leaseExpiresAt:Ae("lease_expires_at",{withTimezone:!0}),createdAt:Ae("created_at",{withTimezone:!0}).defaultNow(),updatedAt:Ae("updated_at",{withTimezone:!0}).defaultNow(),completedAt:Ae("completed_at",{withTimezone:!0})},e=>[Ze("idx_session_send_jobs_user").on(e.userId),Ze("idx_session_send_jobs_session").on(e.sessionId),Ze("idx_session_send_jobs_status").on(e.status),Ze("idx_session_send_jobs_pending").on(e.userId,e.status)]);import{pgTable as jo,text as Q,timestamp as tt,jsonb as So,uuid as q,integer as Ir,boolean as Tr,uniqueIndex as wr,index as Eo,primaryKey as Ar}from"drizzle-orm/pg-core";var h=jo("packs",{id:q("id").primaryKey().defaultRandom(),name:Q("name").notNull(),description:Q("description").notNull(),scope:Q("scope").notNull(),scopeRef:q("scope_ref"),version:Q("version").notNull().default("1.0.0"),tags:Q("tags").array(),badge:Q("badge"),metadata:So("metadata"),createdBy:q("created_by"),createdAt:tt("created_at",{withTimezone:!0}).defaultNow(),updatedAt:tt("updated_at",{withTimezone:!0}).defaultNow(),archived:Tr("archived").default(!1),archivedAt:tt("archived_at",{withTimezone:!0}),archivedBy:q("archived_by"),forkedFromId:q("forked_from_id").references(()=>h.id,{onDelete:"set null"}),upstreamVersion:Q("upstream_version")},e=>[wr("packs_name_scope_ref_idx").on(e.name,e.scope,e.scopeRef),Eo("idx_packs_scope").on(e.scope,e.scopeRef),Eo("idx_packs_created_by").on(e.createdBy)]),M=jo("pack_instructions",{packId:q("pack_id").references(()=>h.id,{onDelete:"cascade"}).notNull(),instructionId:q("instruction_id").references(()=>n.id,{onDelete:"cascade"}).notNull(),position:Ir("position").notNull().default(0),slotOverrides:So("slot_overrides"),addedAt:tt("added_at",{withTimezone:!0}).defaultNow(),addedBy:q("added_by")},e=>[Ar({columns:[e.packId,e.instructionId]})]);import{pgTable as zr,text as Ot,timestamp as br,jsonb as Dr,uuid as Ct,index as de}from"drizzle-orm/pg-core";var ue=zr("instruction_usage_events",{id:Ct("id").primaryKey().defaultRandom(),instructionId:Ct("instruction_id").references(()=>n.id,{onDelete:"set null"}),userId:Ct("user_id").notNull(),surface:Ot("surface").notNull(),action:Ot("action").notNull(),metadata:Dr("metadata"),traceId:Ot("trace_id"),createdAt:br("created_at",{withTimezone:!0}).defaultNow()},e=>[de("idx_usage_events_instruction").on(e.instructionId),de("idx_usage_events_user").on(e.userId),de("idx_usage_events_surface").on(e.surface),de("idx_usage_events_action").on(e.action),de("idx_usage_events_created_at").on(e.createdAt),de("idx_usage_events_user_created").on(e.userId,e.createdAt)]);import{pgTable as Rr,text as ot,timestamp as Po,jsonb as kr,uuid as Ko,index as qt}from"drizzle-orm/pg-core";var Oo=Rr("worker_connections",{id:Ko("id").primaryKey().defaultRandom(),userId:Ko("user_id").notNull(),workerType:ot("worker_type").notNull().default("mcp"),clientName:ot("client_name").notNull(),clientVersion:ot("client_version"),workerVersion:ot("worker_version"),lastHeartbeat:Po("last_heartbeat",{withTimezone:!0}).notNull().defaultNow(),connectedAt:Po("connected_at",{withTimezone:!0}).notNull().defaultNow(),metadata:kr("metadata")},e=>[qt("idx_worker_connections_user").on(e.userId),qt("idx_worker_connections_heartbeat").on(e.userId,e.lastHeartbeat),qt("idx_worker_connections_type").on(e.userId,e.workerType)]);import{pgTable as Er,text as nt,timestamp as jr,jsonb as Sr,uuid as Co,index as qo}from"drizzle-orm/pg-core";var Mo=Er("cli_setup_events",{id:Co("id").primaryKey().defaultRandom(),userId:Co("user_id").notNull(),deviceId:nt("device_id").notNull(),event:nt("event").notNull(),cliVersion:nt("cli_version"),os:nt("os"),props:Sr("props").notNull().default({}),createdAt:jr("created_at",{withTimezone:!0}).notNull().defaultNow()},e=>[qo("idx_cli_setup_events_user").on(e.userId,e.createdAt),qo("idx_cli_setup_events_device").on(e.deviceId,e.createdAt)]);import{pgTable as Pr,text as W,integer as Kr,boolean as Or,timestamp as Cr,jsonb as qr,uuid as Mr,index as Lo}from"drizzle-orm/pg-core";var Bo=Pr("cli_error_events",{id:Mr("id").primaryKey().defaultRandom(),deviceId:W("device_id"),event:W("event").notNull(),command:W("command"),statusCode:Kr("status_code"),message:W("message"),cliVersion:W("cli_version"),os:W("os"),nodeVersion:W("node_version"),proxied:Or("proxied"),props:qr("props").notNull().default({}),createdAt:Cr("created_at",{withTimezone:!0}).notNull().defaultNow()},e=>[Lo("idx_cli_error_events_created").on(e.createdAt),Lo("idx_cli_error_events_device").on(e.deviceId,e.createdAt)]);import{pgTable as rt,text as R,timestamp as le,jsonb as T,uuid as w,integer as ze,index as k}from"drizzle-orm/pg-core";var r=rt("eval_targets",{id:w("id").primaryKey().defaultRandom(),userId:w("user_id").notNull(),name:R("name").notNull(),type:R("type").notNull(),content:R("content").notNull(),description:R("description").notNull().default(""),metadata:T("metadata").notNull().default({}),version:ze("version").notNull().default(1),parentId:w("parent_id").references(()=>r.id,{onDelete:"set null"}),createdAt:le("created_at",{withTimezone:!0}).defaultNow(),updatedAt:le("updated_at",{withTimezone:!0}).defaultNow()},e=>[k("eval_targets_name_user_idx").on(e.name,e.userId),k("idx_eval_targets_user").on(e.userId),k("idx_eval_targets_type").on(e.type),k("idx_eval_targets_parent").on(e.parentId)]),E=rt("evals",{id:w("id").primaryKey().defaultRandom(),evalTargetId:w("eval_target_id").notNull().references(()=>r.id,{onDelete:"cascade"}),name:R("name").notNull(),prompt:R("prompt").notNull(),expectedOutput:R("expected_output").notNull().default(""),files:T("files").notNull().default([]),expectations:T("expectations").notNull().default([]),createdAt:le("created_at",{withTimezone:!0}).defaultNow(),updatedAt:le("updated_at",{withTimezone:!0}).defaultNow()},e=>[k("idx_evals_target").on(e.evalTargetId)]),L=rt("eval_runs",{id:w("id").primaryKey().defaultRandom(),evalId:w("eval_id").notNull().references(()=>E.id,{onDelete:"cascade"}),evalTargetId:w("eval_target_id").notNull().references(()=>r.id,{onDelete:"cascade"}),evalTargetVersion:ze("eval_target_version").notNull(),configuration:R("configuration").notNull(),runNumber:ze("run_number").notNull().default(1),iteration:ze("iteration").notNull().default(1),status:R("status").notNull().default("completed"),outputs:T("outputs").notNull().default({}),timing:T("timing").notNull().default({}),grading:T("grading").notNull().default({}),comparison:T("comparison"),createdAt:le("created_at",{withTimezone:!0}).defaultNow()},e=>[k("idx_eval_runs_eval").on(e.evalId),k("idx_eval_runs_target").on(e.evalTargetId),k("idx_eval_runs_iteration").on(e.evalTargetId,e.iteration)]),ce=rt("benchmarks",{id:w("id").primaryKey().defaultRandom(),evalTargetId:w("eval_target_id").notNull().references(()=>r.id,{onDelete:"cascade"}),iteration:ze("iteration").notNull().default(1),runSummary:T("run_summary").notNull().default({}),notes:T("notes").notNull().default([]),feedback:T("feedback"),createdAt:le("created_at",{withTimezone:!0}).defaultNow()},e=>[k("idx_benchmarks_target").on(e.evalTargetId)]);import{pgTable as Ho,text as Mt,timestamp as Lt,jsonb as Fo,uuid as me,integer as be,index as st,real as Uo}from"drizzle-orm/pg-core";var pe=Ho("trigger_evals",{id:me("id").primaryKey().defaultRandom(),evalTargetId:me("eval_target_id").notNull().references(()=>r.id,{onDelete:"cascade"}),userId:me("user_id").notNull(),queries:Fo("queries").notNull().default([]),status:Mt("status").notNull().default("pending_review"),trainIndices:be("train_indices").array().default([]),testIndices:be("test_indices").array().default([]),createdAt:Lt("created_at",{withTimezone:!0}).defaultNow(),updatedAt:Lt("updated_at",{withTimezone:!0}).defaultNow()},e=>[st("idx_trigger_evals_target").on(e.evalTargetId),st("idx_trigger_evals_user").on(e.userId)]),_e=Ho("optimization_runs",{id:me("id").primaryKey().defaultRandom(),evalTargetId:me("eval_target_id").notNull().references(()=>r.id,{onDelete:"cascade"}),userId:me("user_id").notNull(),type:Mt("type").notNull(),iteration:be("iteration").notNull(),inputVersion:be("input_version").notNull(),outputVersion:be("output_version"),trainScore:Uo("train_score"),testScore:Uo("test_score"),analysis:Fo("analysis").notNull().default({}),status:Mt("status").notNull().default("running"),createdAt:Lt("created_at",{withTimezone:!0}).defaultNow()},e=>[st("idx_optimization_runs_target").on(e.evalTargetId),st("idx_optimization_runs_user").on(e.userId)]);import{pgTable as Lr,text as B,timestamp as Br,jsonb as De,uuid as Bt,integer as Ut,real as Ur,index as Re,uniqueIndex as Go}from"drizzle-orm/pg-core";var U=Lr("context_snapshots",{id:Bt("id").primaryKey().defaultRandom(),sessionId:Bt("session_id").references(()=>a.id,{onDelete:"cascade"}),userId:Bt("user_id").notNull().references(()=>o.id,{onDelete:"cascade"}),sequence:Ut("sequence").notNull().default(0),provider:B("provider").notNull(),model:B("model").notNull(),systemPrompt:B("system_prompt").notNull(),injectedInstructions:De("injected_instructions").notNull().default([]),messagesSummary:De("messages_summary").notNull(),tools:De("tools").notNull().default([]),systemHash:B("system_hash").notNull(),requestHash:B("request_hash").notNull().default(""),toolsHash:B("tools_hash"),injectedHash:B("injected_hash"),messagesDelta:De("messages_delta").default([]),messagesDeltaRef:B("messages_delta_ref"),maxTokens:Ut("max_tokens"),temperature:Ur("temperature"),estimatedTokens:Ut("estimated_tokens"),capturedAt:Br("captured_at",{withTimezone:!0}).notNull().defaultNow(),metadata:De("metadata").default({})},e=>[Re("idx_context_snapshots_session").on(e.sessionId),Re("idx_context_snapshots_user").on(e.userId),Re("idx_context_snapshots_hash").on(e.systemHash),Re("idx_context_snapshots_request_hash").on(e.requestHash),Go("idx_snapshots_session_request").on(e.sessionId,e.requestHash),Go("idx_snapshots_session_sequence").on(e.sessionId,e.sequence),Re("idx_context_snapshots_user_session_captured").on(e.userId,e.sessionId,e.capturedAt.desc())]);import{pgTable as Hr,text as Vo,timestamp as Fr,jsonb as Gr,integer as Vr,index as Jr}from"drizzle-orm/pg-core";var Jo=Hr("content_blobs",{hash:Vo("hash").primaryKey(),contentType:Vo("content_type").notNull(),content:Gr("content").notNull(),sizeBytes:Vr("size_bytes").notNull().default(0),createdAt:Fr("created_at",{withTimezone:!0}).defaultNow()},e=>[Jr("idx_content_blobs_type").on(e.contentType)]);import{pgTable as Yr,text as it,timestamp as ke,jsonb as at,uuid as Ht,index as dt,integer as Qr}from"drizzle-orm/pg-core";var fe=Yr("eval_jobs",{id:Ht("id").primaryKey().defaultRandom(),userId:Ht("user_id").notNull(),evalTargetId:Ht("eval_target_id").notNull().references(()=>r.id,{onDelete:"cascade"}),status:it("status").notNull().default("pending"),config:at("config").notNull().default({}),progress:at("progress").notNull().default({}),result:at("result"),error:it("error"),attempts:Qr("attempts").notNull().default(0),taskKind:it("task_kind"),payload:at("payload"),claimedBy:it("claimed_by"),claimedAt:ke("claimed_at",{withTimezone:!0}),leaseExpiresAt:ke("lease_expires_at",{withTimezone:!0}),createdAt:ke("created_at",{withTimezone:!0}).defaultNow(),updatedAt:ke("updated_at",{withTimezone:!0}).defaultNow(),completedAt:ke("completed_at",{withTimezone:!0})},e=>[dt("idx_eval_jobs_user").on(e.userId),dt("idx_eval_jobs_target").on(e.evalTargetId),dt("idx_eval_jobs_status").on(e.status),dt("idx_eval_jobs_pending").on(e.userId,e.status)]);import{pgTable as Wr,text as Ee,timestamp as je,jsonb as Yo,uuid as Qo,integer as Xr,index as Wo}from"drizzle-orm/pg-core";var Xo=Wr("agent_jobs",{id:Qo("id").primaryKey().defaultRandom(),userId:Qo("user_id").notNull(),taskKind:Ee("task_kind").notNull(),status:Ee("status").notNull().default("pending"),payload:Yo("payload").notNull(),dedupeKey:Ee("dedupe_key"),result:Yo("result"),error:Ee("error"),attempts:Xr("attempts").notNull().default(0),claimedBy:Ee("claimed_by"),claimedAt:je("claimed_at",{withTimezone:!0}),leaseExpiresAt:je("lease_expires_at",{withTimezone:!0}),createdAt:je("created_at",{withTimezone:!0}).notNull().defaultNow(),updatedAt:je("updated_at",{withTimezone:!0}).notNull().defaultNow(),completedAt:je("completed_at",{withTimezone:!0})},e=>[Wo("idx_agent_jobs_claim").on(e.userId,e.status,e.taskKind,e.createdAt),Wo("idx_agent_jobs_dedupe").on(e.userId,e.taskKind,e.dedupeKey)]);import{pgTable as $r,text as Se,timestamp as Pe,jsonb as ut,uuid as Ft,index as lt,integer as Zr}from"drizzle-orm/pg-core";var $o=$r("insights_jobs",{id:Ft("id").primaryKey().defaultRandom(),userId:Ft("user_id").notNull(),status:Se("status").notNull().default("pending"),projectPath:Se("project_path"),projectId:Ft("project_id").references(()=>u.id,{onDelete:"set null"}),config:ut("config").notNull().default({}),progress:ut("progress").notNull().default({}),result:ut("result"),error:Se("error"),attempts:Zr("attempts").notNull().default(0),taskKind:Se("task_kind"),payload:ut("payload"),claimedBy:Se("claimed_by"),claimedAt:Pe("claimed_at",{withTimezone:!0}),leaseExpiresAt:Pe("lease_expires_at",{withTimezone:!0}),createdAt:Pe("created_at",{withTimezone:!0}).defaultNow(),updatedAt:Pe("updated_at",{withTimezone:!0}).defaultNow(),completedAt:Pe("completed_at",{withTimezone:!0})},e=>[lt("idx_insights_jobs_user").on(e.userId),lt("idx_insights_jobs_status").on(e.status),lt("idx_insights_jobs_pending").on(e.userId,e.status),lt("idx_insights_jobs_project").on(e.projectId)]);import{pgTable as es,text as Gt,timestamp as ct,uuid as Zo,index as ts,uniqueIndex as os}from"drizzle-orm/pg-core";var xe=es("api_keys",{id:Zo("id").primaryKey().defaultRandom(),userId:Zo("user_id").notNull().references(()=>o.id,{onDelete:"cascade"}),name:Gt("name").notNull(),keyHash:Gt("key_hash").notNull(),keyPrefix:Gt("key_prefix").notNull(),lastUsedAt:ct("last_used_at",{withTimezone:!0}),expiresAt:ct("expires_at",{withTimezone:!0}),revokedAt:ct("revoked_at",{withTimezone:!0}),createdAt:ct("created_at",{withTimezone:!0}).defaultNow()},e=>[ts("idx_api_keys_user").on(e.userId),os("idx_api_keys_hash").on(e.keyHash)]);import{pgTable as ns,text as Vt,timestamp as en,uuid as rs,index as ss}from"drizzle-orm/pg-core";var tn=ns("extension_auth_codes",{code:Vt("code").primaryKey(),userId:rs("user_id").notNull().references(()=>o.id,{onDelete:"cascade"}),editor:Vt("editor"),email:Vt("email"),expiresAt:en("expires_at",{withTimezone:!0}).notNull(),createdAt:en("created_at",{withTimezone:!0}).defaultNow()},e=>[ss("idx_ext_auth_codes_expiry").on(e.expiresAt)]);import{pgTable as is,text as as,timestamp as on,jsonb as ds,uuid as Jt,index as nn}from"drizzle-orm/pg-core";var ge=is("eval_conversations",{id:Jt("id").primaryKey().defaultRandom(),evalTargetId:Jt("eval_target_id").notNull().references(()=>r.id,{onDelete:"cascade"}),userId:Jt("user_id").notNull(),messages:ds("messages").notNull().default([]),status:as("status").notNull().default("active"),createdAt:on("created_at",{withTimezone:!0}).defaultNow(),updatedAt:on("updated_at",{withTimezone:!0}).defaultNow()},e=>[nn("idx_eval_conversations_target").on(e.evalTargetId),nn("idx_eval_conversations_user").on(e.userId)]);import{pgTable as us,text as j,timestamp as rn,jsonb as ls,uuid as Yt}from"drizzle-orm/pg-core";var sn=us("skill_submissions",{id:Yt("id").primaryKey().defaultRandom(),skillId:j("skill_id").notNull(),name:j("name").notNull(),description:j("description").notNull(),category:j("category").notNull(),tools:j("tools").array().notNull(),tags:j("tags").array().default([]),content:j("content").notNull(),status:j("status").notNull().default("pending"),submittedBy:Yt("submitted_by").notNull(),reviewedBy:Yt("reviewed_by"),reviewNote:j("review_note"),metadata:ls("metadata"),createdAt:rn("created_at",{withTimezone:!0}).defaultNow(),updatedAt:rn("updated_at",{withTimezone:!0}).defaultNow()});import{pgTable as cs,text as Ke,timestamp as an,jsonb as ms,uuid as ps,uniqueIndex as _s,index as dn}from"drizzle-orm/pg-core";var un=cs("harness_releases",{id:ps("id").primaryKey().defaultRandom(),harness:Ke("harness").notNull(),version:Ke("version").notNull(),publishedAt:an("published_at",{withTimezone:!0}).notNull(),title:Ke("title"),body:Ke("body"),categories:ms("categories").default({}),url:Ke("url"),createdAt:an("created_at",{withTimezone:!0}).defaultNow()},e=>[_s("idx_harness_releases_unique").on(e.harness,e.version),dn("idx_harness_releases_harness").on(e.harness),dn("idx_harness_releases_published").on(e.publishedAt)]);import{pgTable as fs,text as Ne,timestamp as ln,jsonb as xs,uuid as cn,index as mn,uniqueIndex as gs}from"drizzle-orm/pg-core";var Qt=fs("notifications",{id:cn("id").primaryKey().defaultRandom(),userId:cn("user_id").notNull(),type:Ne("type").notNull(),title:Ne("title").notNull(),body:Ne("body"),url:Ne("url"),sourceTable:Ne("source_table"),sourceId:Ne("source_id"),metadata:xs("metadata").notNull().default({}),readAt:ln("read_at",{withTimezone:!0}),createdAt:ln("created_at",{withTimezone:!0}).notNull().defaultNow()},e=>[mn("idx_notifications_user_created").on(e.userId,e.createdAt),mn("idx_notifications_user_unread").on(e.userId),gs("idx_notifications_source_dedup").on(e.userId,e.sourceTable,e.sourceId)]);import{pgTable as Ns,text as Oe,timestamp as Ce,jsonb as Wt,uuid as Xt,index as mt,integer as vs}from"drizzle-orm/pg-core";var ve=Ns("launch_jobs",{id:Xt("id").primaryKey().defaultRandom(),userId:Xt("user_id").notNull(),tool:Oe("tool").notNull(),status:Oe("status").notNull().default("pending"),config:Wt("config").notNull().default({}),result:Wt("result"),error:Oe("error"),attempts:vs("attempts").notNull().default(0),taskKind:Oe("task_kind"),payload:Wt("payload"),claimedBy:Oe("claimed_by"),claimedAt:Ce("claimed_at",{withTimezone:!0}),leaseExpiresAt:Ce("lease_expires_at",{withTimezone:!0}),createdAt:Ce("created_at",{withTimezone:!0}).defaultNow(),updatedAt:Ce("updated_at",{withTimezone:!0}).defaultNow(),completedAt:Ce("completed_at",{withTimezone:!0}),runId:Xt("run_id").references(()=>_.id,{onDelete:"set null"})},e=>[mt("idx_launch_jobs_user").on(e.userId),mt("idx_launch_jobs_status").on(e.status),mt("idx_launch_jobs_pending").on(e.userId,e.status),mt("idx_launch_jobs_run").on(e.runId)]);import{pgTable as pn,uuid as S,text as qe,real as hs,timestamp as pt,boolean as ys,uniqueIndex as Is,index as Me}from"drizzle-orm/pg-core";var $t=pn("instruction_suggestions",{id:S("id").primaryKey().defaultRandom(),userId:S("user_id").notNull().references(()=>o.id,{onDelete:"cascade"}),instructionId:S("instruction_id").notNull().references(()=>n.id,{onDelete:"cascade"}),projectPath:qe("project_path").notNull(),projectId:S("project_id").references(()=>u.id,{onDelete:"set null"}),score:hs("score").notNull(),reason:qe("reason").notNull(),generatedAt:pt("generated_at",{withTimezone:!0}).notNull().defaultNow(),isStale:ys("is_stale").notNull().default(!1),dismissedAt:pt("dismissed_at",{withTimezone:!0}),acceptedAt:pt("accepted_at",{withTimezone:!0}),promotedToInstructionId:S("promoted_to_instruction_id").references(()=>n.id,{onDelete:"set null"})},e=>[Is("idx_instruction_suggestions_user_project_instruction").on(e.userId,e.projectPath,e.instructionId),Me("idx_instruction_suggestions_user_project").on(e.userId,e.projectPath),Me("idx_instruction_suggestions_user_proj_id").on(e.userId,e.projectId),Me("idx_instruction_suggestions_generated_at").on(e.generatedAt)]),_n=pn("instruction_suggestion_events",{id:S("id").primaryKey().defaultRandom(),suggestionId:S("suggestion_id").notNull().references(()=>$t.id,{onDelete:"cascade"}),userId:S("user_id").notNull().references(()=>o.id,{onDelete:"cascade"}),eventType:qe("event_type").notNull(),tool:qe("tool"),sessionId:S("session_id"),projectPath:qe("project_path").notNull(),createdAt:pt("created_at",{withTimezone:!0}).notNull().defaultNow()},e=>[Me("idx_instruction_suggestion_events_suggestion_id").on(e.suggestionId),Me("idx_instruction_suggestion_events_user_id").on(e.userId)]);import{pgTable as Ts,text as Zt,integer as ws,numeric as Le,timestamp as eo,index as As,primaryKey as zs}from"drizzle-orm/pg-core";var fn=Ts("model_pricing",{provider:Zt("provider").notNull(),modelId:Zt("model_id").notNull(),inputPerM:Le("input_per_m").notNull(),outputPerM:Le("output_per_m").notNull(),cacheReadPerM:Le("cache_read_per_m").notNull(),cacheWrite5mPerM:Le("cache_write_5m_per_m").notNull(),cacheWrite1hPerM:Le("cache_write_1h_per_m").notNull(),contextWindow:ws("context_window"),effectiveFrom:eo("effective_from",{withTimezone:!0}).notNull(),effectiveUntil:eo("effective_until",{withTimezone:!0}),source:Zt("source").notNull(),verifiedAt:eo("verified_at",{withTimezone:!0})},e=>[zs({columns:[e.provider,e.modelId,e.effectiveFrom]}),As("idx_model_pricing_active").on(e.provider,e.modelId,e.effectiveFrom.desc())]);import{pgTable as bs,text as X,numeric as xn,timestamp as gn,uuid as Nn,jsonb as Ds,index as vn}from"drizzle-orm/pg-core";var hn=bs("limit_observations",{id:Nn("id").primaryKey().defaultRandom(),observedAt:gn("observed_at",{withTimezone:!0}).notNull().defaultNow(),provider:X("provider").notNull(),plan:X("plan").notNull(),limitType:X("limit_type").notNull(),value:xn("value").notNull(),unit:X("unit").notNull(),comparator:X("comparator").notNull().default("="),resetsAt:gn("resets_at",{withTimezone:!0}),sourceType:X("source_type").notNull(),sourceUrl:X("source_url"),sourceEvidence:Ds("source_evidence"),confidence:xn("confidence").notNull(),userId:Nn("user_id")},e=>[vn("idx_limit_obs_lookup").on(e.provider,e.plan,e.limitType,e.observedAt.desc()),vn("idx_limit_obs_user").on(e.userId,e.observedAt.desc())]);import{pgTable as Rs,text as _t,timestamp as ks,uuid as Es,jsonb as js,boolean as Ss,uniqueIndex as Ps}from"drizzle-orm/pg-core";var yn=Rs("provider_docs_snapshots",{id:Es("id").primaryKey().defaultRandom(),fetchedAt:ks("fetched_at",{withTimezone:!0}).notNull().defaultNow(),provider:_t("provider").notNull(),docUrl:_t("doc_url").notNull(),contentHash:_t("content_hash").notNull(),content:_t("content").notNull(),parseSuccess:Ss("parse_success").notNull(),parseErrors:js("parse_errors")},e=>[Ps("idx_docs_dedup").on(e.provider,e.docUrl,e.contentHash)]);import{pgTable as Ks,text as ft,numeric as In,timestamp as Tn,uuid as Os,primaryKey as Cs,index as qs}from"drizzle-orm/pg-core";var wn=Ks("plan_limits_active",{provider:ft("provider").notNull(),plan:ft("plan").notNull(),limitType:ft("limit_type").notNull(),value:In("value").notNull(),unit:ft("unit").notNull(),effectiveFrom:Tn("effective_from",{withTimezone:!0}).notNull(),effectiveUntil:Tn("effective_until",{withTimezone:!0}),confidence:In("confidence").notNull(),sourceObservationIds:Os("source_observation_ids").array().notNull()},e=>[Cs({columns:[e.provider,e.plan,e.limitType,e.effectiveFrom]}),qs("idx_plan_limits_lookup").on(e.provider,e.plan,e.limitType,e.effectiveFrom.desc())]);import{pgTable as Ms,text as to,timestamp as Ls,uuid as An,jsonb as Bs,index as Us}from"drizzle-orm/pg-core";var zn=Ms("alert_dispatches",{id:An("id").primaryKey().defaultRandom(),userId:An("user_id").notNull(),alertKey:to("alert_key").notNull(),severity:to("severity").notNull(),lastDispatchedAt:Ls("last_dispatched_at",{withTimezone:!0}).notNull().defaultNow(),lastState:Bs("last_state").notNull(),channel:to("channel").notNull()},e=>[Us("idx_alert_user_key").on(e.userId,e.alertKey,e.lastDispatchedAt.desc())]);import{drizzle as En}from"drizzle-orm/postgres-js";import jn from"postgres";var xt={};Wn(xt,{agentJobs:()=>Xo,agentRuns:()=>_,agentRunsRelations:()=>oi,alertDispatches:()=>zn,announcementDeliveries:()=>yo,announcements:()=>ho,apiKeys:()=>xe,apiKeysRelations:()=>Fs,benchmarks:()=>ce,benchmarksRelations:()=>_i,cliErrorEvents:()=>Bo,cliSetupEvents:()=>Mo,contentBlobs:()=>Jo,contextSnapshots:()=>U,contextSnapshotsRelations:()=>vi,evalConversations:()=>ge,evalConversationsRelations:()=>Ni,evalJobs:()=>fe,evalJobsRelations:()=>gi,evalRuns:()=>L,evalRunsRelations:()=>pi,evalTargets:()=>r,evalTargetsRelations:()=>ci,evals:()=>E,evalsRelations:()=>mi,extensionAuthCodes:()=>tn,harnessReleases:()=>un,insightsJobs:()=>$o,instructionEvents:()=>se,instructionEventsRelations:()=>Xs,instructionSuggestionEvents:()=>_n,instructionSuggestions:()=>$t,instructionUsageEvents:()=>ue,instructionUsageEventsRelations:()=>li,instructionVersions:()=>te,instructionVersionsRelations:()=>$s,instructions:()=>n,instructionsRelations:()=>Ws,launchJobs:()=>ve,launchJobsRelations:()=>ni,limitObservations:()=>hn,modelPricing:()=>fn,notificationPreferences:()=>Io,notifications:()=>Qt,optimizationRuns:()=>_e,optimizationRunsRelations:()=>xi,orgInvitations:()=>z,orgInvitationsRelations:()=>Js,organizations:()=>d,organizationsRelations:()=>Gs,packInstructions:()=>M,packInstructionsRelations:()=>ui,packs:()=>h,packsRelations:()=>di,planLimitsActive:()=>wn,profiles:()=>o,profilesRelations:()=>Hs,projectCheckouts:()=>go,projectInstructions:()=>K,projectInstructionsRelations:()=>ei,projects:()=>u,projectsRelations:()=>Zs,providerDocsSnapshots:()=>yn,sessionEvents:()=>ne,sessionEventsRelations:()=>ri,sessionInstructions:()=>O,sessionInstructionsRelations:()=>si,sessionSendJobs:()=>ko,sessionTerminalTargets:()=>$e,sessions:()=>a,sessionsRelations:()=>ti,skillSubmissions:()=>sn,teams:()=>x,teamsRelations:()=>Vs,treatmentAssignments:()=>b,treatmentAssignmentsRelations:()=>ii,treatmentExposures:()=>D,treatmentExposuresRelations:()=>ai,triggerEvals:()=>pe,triggerEvalsRelations:()=>fi,userOrganizations:()=>Z,userOrganizationsRelations:()=>Ys,userTeams:()=>ee,userTeamsRelations:()=>Qs,workerConnections:()=>Oo});import{relations as i}from"drizzle-orm";var Hs=i(o,({many:e})=>({sessions:e(a),contextSnapshots:e(U),apiKeys:e(xe)})),Fs=i(xe,({one:e})=>({profile:e(o,{fields:[xe.userId],references:[o.id]})})),Gs=i(d,({many:e})=>({teams:e(x),userOrganizations:e(Z),projects:e(u),invitations:e(z)})),Vs=i(x,({one:e,many:t})=>({organization:e(d,{fields:[x.orgId],references:[d.id]}),userTeams:t(ee),invitations:t(z)})),Js=i(z,({one:e})=>({organization:e(d,{fields:[z.orgId],references:[d.id]}),team:e(x,{fields:[z.teamId],references:[x.id]}),inviter:e(o,{fields:[z.invitedBy],references:[o.id]})})),Ys=i(Z,({one:e})=>({organization:e(d,{fields:[Z.orgId],references:[d.id]})})),Qs=i(ee,({one:e})=>({team:e(x,{fields:[ee.teamId],references:[x.id]})})),Ws=i(n,({one:e,many:t})=>({versions:t(te),projectInstructions:t(K),events:t(se),usageEvents:t(ue),sessionInstructions:t(O),packInstructions:t(M),forkedFrom:e(n,{fields:[n.forkedFromId],references:[n.id]})})),Xs=i(se,({one:e})=>({instruction:e(n,{fields:[se.instructionId],references:[n.id]})})),$s=i(te,({one:e})=>({instruction:e(n,{fields:[te.instructionId],references:[n.id]})})),Zs=i(u,({one:e,many:t})=>({organization:e(d,{fields:[u.orgId],references:[d.id]}),projectInstructions:t(K),sessions:t(a)})),ei=i(K,({one:e})=>({project:e(u,{fields:[K.projectId],references:[u.id]}),instruction:e(n,{fields:[K.instructionId],references:[n.id]})})),ti=i(a,({one:e,many:t})=>({profile:e(o,{fields:[a.userId],references:[o.id]}),project:e(u,{fields:[a.projectId],references:[u.id]}),run:e(_,{fields:[a.runId],references:[_.id]}),events:t(ne),sessionInstructions:t(O),treatmentExposures:t(D),contextSnapshots:t(U)})),oi=i(_,({one:e,many:t})=>({profile:e(o,{fields:[_.userId],references:[o.id]}),organization:e(d,{fields:[_.orgId],references:[d.id]}),project:e(u,{fields:[_.projectId],references:[u.id]}),sessions:t(a),launchJobs:t(ve)})),ni=i(ve,({one:e})=>({run:e(_,{fields:[ve.runId],references:[_.id]})})),ri=i(ne,({one:e})=>({session:e(a,{fields:[ne.sessionId],references:[a.id]})})),si=i(O,({one:e})=>({session:e(a,{fields:[O.sessionId],references:[a.id]}),instruction:e(n,{fields:[O.instructionId],references:[n.id]})})),ii=i(b,({one:e,many:t})=>({owner:e(o,{fields:[b.userId],references:[o.id]}),project:e(u,{fields:[b.projectId],references:[u.id]}),exposures:t(D)})),ai=i(D,({one:e})=>({session:e(a,{fields:[D.sessionId],references:[a.id]}),owner:e(o,{fields:[D.userId],references:[o.id]}),assignment:e(b,{fields:[D.assignmentId],references:[b.id]})})),di=i(h,({one:e,many:t})=>({packInstructions:t(M),forkedFrom:e(h,{fields:[h.forkedFromId],references:[h.id]})})),ui=i(M,({one:e})=>({pack:e(h,{fields:[M.packId],references:[h.id]}),instruction:e(n,{fields:[M.instructionId],references:[n.id]})})),li=i(ue,({one:e})=>({instruction:e(n,{fields:[ue.instructionId],references:[n.id]})})),ci=i(r,({one:e,many:t})=>({parent:e(r,{fields:[r.parentId],references:[r.id]}),evals:t(E),evalRuns:t(L),benchmarks:t(ce),triggerEvals:t(pe),optimizationRuns:t(_e),evalJobs:t(fe),evalConversations:t(ge)})),mi=i(E,({one:e,many:t})=>({evalTarget:e(r,{fields:[E.evalTargetId],references:[r.id]}),runs:t(L)})),pi=i(L,({one:e})=>({eval:e(E,{fields:[L.evalId],references:[E.id]}),evalTarget:e(r,{fields:[L.evalTargetId],references:[r.id]})})),_i=i(ce,({one:e})=>({evalTarget:e(r,{fields:[ce.evalTargetId],references:[r.id]})})),fi=i(pe,({one:e})=>({evalTarget:e(r,{fields:[pe.evalTargetId],references:[r.id]})})),xi=i(_e,({one:e})=>({evalTarget:e(r,{fields:[_e.evalTargetId],references:[r.id]})})),gi=i(fe,({one:e})=>({evalTarget:e(r,{fields:[fe.evalTargetId],references:[r.id]})})),Ni=i(ge,({one:e})=>({evalTarget:e(r,{fields:[ge.evalTargetId],references:[r.id]})})),vi=i(U,({one:e})=>({session:e(a,{fields:[U.sessionId],references:[a.id]}),profile:e(o,{fields:[U.userId],references:[o.id]})}));var Be=0,bn=0,Ue=0,Dn=0;var hi=0;function oo(){Be++,Be>bn&&(bn=Be)}m(oo,"trackDbOpStart");function no(){Be>0&&Be--}m(no,"trackDbOpEnd");function ro(){Ue++,Ue>Dn&&(Dn=Ue)}m(ro,"trackHeavyDbOpStart");function so(){Ue>0&&Ue--}m(so,"trackHeavyDbOpEnd");function Rn(){hi++}m(Rn,"recordQueryDeadline");var Nt,ht,io=!1,gt;var kn,yt,vt;function Sn(e){let t=process.env[e];if(!t)throw new Error(`Missing required env var: ${e}`);return t}m(Sn,"getEnv");function Pn(){if(io)throw new Error("getDb() called after closeDb(): the connection pool is closed for shutdown. Stop issuing queries (timers/requests) before draining the pool.");if(!Nt){let e=process.env.PG_APPLICATION_NAME||"rulemetric",t=Number(process.env.PG_POOL_MAX)||3,s=Number(process.env.PG_CONNECT_TIMEOUT_S)||10,l=Number(process.env.PG_STATEMENT_TIMEOUT_MS)||0,c=Number(process.env.PG_IDLE_TIMEOUT)||5,p=Number(process.env.PG_KEEP_ALIVE_S)||60;ht=jn(Sn("DATABASE_URL"),{prepare:!1,max:t,connect_timeout:s,idle_timeout:c,keep_alive:p,max_lifetime:300,connection:{application_name:e,...l>0?{statement_timeout:l}:{}}}),Nt=En(ht,{schema:xt})}return Nt}m(Pn,"getDb");function Kn(){if(io)throw new Error("getHeavyDb() called after closeDb(): the connection pool is closed for shutdown. Stop issuing queries (timers/requests) before draining the pool.");if(!vt){let e=(process.env.PG_APPLICATION_NAME||"rulemetric")+":heavy",t=Number(process.env.PG_HEAVY_POOL_MAX)||2;yt=jn(Sn("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}}),vt=En(yt,{schema:xt})}return vt}m(Kn,"getHeavyDb");async function yi(){if(gt)return gt;io=!0;let e=ht,t=kn,s=yt;return ht=void 0,Nt=void 0,kn=void 0,yt=void 0,vt=void 0,gt=Promise.allSettled([e?e.end({timeout:5}):Promise.resolve(),t?t.end({timeout:5}):Promise.resolve(),s?s.end({timeout:5}):Promise.resolve()]).then(()=>{}),gt}m(yi,"closeDb");var Ii=new Set(["CONNECT_TIMEOUT","ETIMEDOUT","ENOTFOUND","ECONNREFUSED","EAI_AGAIN"]);function On(e){let t=e,s=t?.code??t?.cause?.code??t?.errno;return s!==void 0&&Ii.has(s)}m(On,"isRetryableConnectError");var Ti=new Set(["CONNECTION_CLOSED","ECONNRESET","EPIPE"]);function Cn(e){let t=e,s=t?.code??t?.cause?.code??t?.errno;return s!==void 0&&Ti.has(s)}m(Cn,"isRetryableResetError");async function qn(e,t={}){let s=t.attempts??3,l=t.baseMs??100,c;for(let p=0;p<s;p++)try{return await e()}catch(g){c=g;let he=On(g)||t.retryResets===!0&&Cn(g);if(p===s-1||!he)throw g;await new Promise(H=>setTimeout(H,l*2**p))}throw c}m(qn,"withDbRetry");var It=class extends Error{static{m(this,"QueryDeadlineError")}code="QUERY_DEADLINE";constructor(t){super(`Query exceeded the client-side deadline of ${t}ms \u2014 the DB pool is likely saturated (acquire-wait) or holding a dead socket; failing fast to avoid pinning the caller. See client.ts.`),this.name="QueryDeadlineError"}};function Mn(){let e=Number(process.env.PG_QUERY_DEADLINE_MS);return Number.isFinite(e)&&e>=0?e:2e4}m(Mn,"queryDeadlineMs");function wi(e,t){let s,l=new Promise((c,p)=>{s=setTimeout(()=>{Rn(),p(new It(t))},t);let g=s;typeof g.unref=="function"&&g.unref()});return Promise.race([e,l]).finally(()=>clearTimeout(s))}m(wi,"raceWithDeadline");var Ln=new Set(["select","selectDistinct","selectDistinctOn","insert","update","delete","execute","with","$count","refreshMaterializedView"]),Bn=new Set(["select","selectDistinct","selectDistinctOn","$count"]);function ao(e,t=!1,s=0,l=!1){return e===null||typeof e!="object"&&typeof e!="function"?e:new Proxy(e,{get(c,p,g){if(p==="then"){let H=Reflect.get(c,p,g);return typeof H!="function"?H:(Fn,Gn)=>{let Vn=l?ro:oo,Jn=l?so:no;Vn();let uo=qn(()=>new Promise((Yn,Qn)=>H.call(c,Yn,Qn)),{retryResets:t});return(s>0?wi(uo,s):uo).finally(Jn).then(Fn,Gn)}}let he=Reflect.get(c,p,g);return typeof he=="function"?(...H)=>ao(he.apply(c,H),t,s,l):he}})}m(ao,"wrapBuilder");function Un(e,t=!1){let s=t?ro:oo,l=t?so:no;s();try{return Promise.resolve(e()).finally(l)}catch(c){throw l(),c}}m(Un,"gaugeTransaction");var Hn=new Proxy({},{get(e,t){let s=Pn(),l=s[t];if(typeof t=="string"&&Ln.has(t)&&typeof l=="function"){let c=Bn.has(t),p=Mn();return(...g)=>ao(l.apply(s,g),c,p)}return t==="transaction"&&typeof l=="function"?(...c)=>Un(()=>l.apply(s,c)):l}}),Ai=new Proxy({},{get(e,t){let s=Kn(),l=s[t];if(typeof t=="string"&&Ln.has(t)&&typeof l=="function"){let c=Bn.has(t);return(...p)=>ao(l.apply(s,p),c,0,!0)}return t==="transaction"&&typeof l=="function"?(...c)=>Un(()=>l.apply(s,c),!0):l}});export{o as a,_ as b,a as c,ne as d,ho as e,yo as f,Io as g,Pn as h,yi as i};
@@ -1 +1 @@
1
- import{c as H}from"./chunk-TIOKY2IA.js";import{a as b}from"./chunk-TQMG647B.js";import{b as I}from"./chunk-W2MOTOQE.js";import{a as T}from"./chunk-VAXRCSSH.js";import{a as S}from"./chunk-RSKQRVPJ.js";import{a as A}from"./chunk-AYUJY37O.js";import{a as y}from"./chunk-KAF3CYRW.js";import{a as k}from"./chunk-UF6US7VU.js";import{a as _}from"./chunk-DPFNJZUO.js";import{a as R}from"./chunk-2WLVDSAP.js";import{a as E}from"./chunk-NEACEHQD.js";import{a as h}from"./chunk-32EEBARV.js";import{b as w}from"./chunk-5RBLIVBF.js";import{b as f,e as v,f as p}from"./chunk-H2ORWIEY.js";import{a as s}from"./chunk-ZLLER3HP.js";var D={process_eval:h,process_insights:b,process_launch:I,process_send_message:S,process_conversation:E,process_session_goal:A,process_announcement:R,process_run_cleanup:T,cron_suggest_instructions:_,cron_refresh_skills:k,cron_refresh_pricing:y},M=Object.keys(D),V=new Set(["process_session_goal","process_announcement","process_run_cleanup"]);function x(e=process.env){return e.DATABASE_URL?M:M.filter(n=>!V.has(n))}s(x,"availableCapabilities");var O=3e4,W=3e4,$=3e4,L=250,N=5e3,B=`thin-agent-${process.pid}`,g=null;function F(e,n,r,l){let a=s(t=>{p("/api/workers/heartbeat",{workerType:"cli-worker",clientName:B,clientVersion:l,workerVersion:"0.1.0",currentJobId:null,inFlightCount:0,lastError:null,status:t,metadata:{capabilities:e,mode:"thin-agent"}}).then(c=>{let u=c?.advisory;u&&u.message!==g?(g=u.message,o(r,{event:"worker_advisory",code:u.code,message:u.message})):u||(g=null)}).catch(c=>{o(r,{event:"presence_heartbeat_error",error:c instanceof Error?c.message:String(c)})})},"send");a("alive");let d=setInterval(()=>a("alive"),$);n.addEventListener("abort",()=>{clearInterval(d),a("shutting_down")},{once:!0})}s(F,"startPresenceHeartbeat");function o(e,n){try{e(JSON.stringify({ts:new Date().toISOString(),...n}))}catch{e(`[agent-loop] log_error event=${n.event}`)}}s(o,"structuredLog");function P(e,n){return n.aborted?Promise.resolve(!1):e<=0?Promise.resolve(!0):new Promise(r=>{let l=setTimeout(()=>{n.removeEventListener("abort",a),r(!0)},e),a=s(()=>{clearTimeout(l),n.removeEventListener("abort",a),r(!1)},"onAbort");n.addEventListener("abort",a,{once:!0})})}s(P,"abortableSleep");async function J(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(J,"pollForWork");function U(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(U,"makeHelpers");async function K(e,n,r){let l=D[e.kind],a=Date.now();if(o(r,{event:"claim",jobId:e.id,kind:e.kind,attempts:e.attempts}),!l){let t=`unknown kind: ${e.kind}`;o(r,{event:"fail",jobId:e.id,kind:e.kind,terminal:!0,error:t}),await p(`/api/work/${e.id}/fail`,{leaseToken:e.leaseToken,error:t,terminal:!0}).catch(()=>{});return}let d=setInterval(()=>{o(r,{event:"heartbeat",jobId:e.id}),p(`/api/work/${e.id}/heartbeat`,{leaseToken:e.leaseToken}).catch(t=>{o(r,{event:"heartbeat_error",jobId:e.id,error:t instanceof Error?t.message:String(t)})})},n);try{let t=U(e.attempts,r),c=await l(e.payload,t)??{};clearInterval(d),o(r,{event:"complete",jobId:e.id,kind:e.kind,durationMs:Date.now()-a}),await p(`/api/work/${e.id}/complete`,{leaseToken:e.leaseToken,result:c})}catch(t){clearInterval(d);let c=w(t),u=t instanceof Error?t.message:String(t);o(r,{event:"fail",jobId:e.id,kind:e.kind,durationMs:Date.now()-a,terminal:c,error:u}),await p(`/api/work/${e.id}/fail`,{leaseToken:e.leaseToken,error:u,terminal:c}).catch(i=>{o(r,{event:"fail_post_error",jobId:e.id,error:i instanceof Error?i.message:String(i)})})}}s(K,"runOne");async function ie(e){let n=e.log??(()=>{}),r=e.pollWaitMs??O,l=e.heartbeatIntervalMs??W,a=e.capabilities??x(),d=L;o(n,{event:"agent_start",capabilities:a,pollWaitMs:r,heartbeatIntervalMs:l}),F(a,e.signal,n,e.version),H({signal:e.signal,log:n}).catch(i=>{o(n,{event:"tt_heartbeat_fatal",error:i instanceof Error?i.message:String(i)})});let t=5*6e4,c=0,u=s(()=>{if(!e.readInstalledVersion||!e.version)return!1;let i=Date.now();if(i-c<t)return!1;c=i;let m=e.readInstalledVersion();return!!(m&&m!==e.version)},"versionDrifted");for(;!e.signal.aborted;){if(u()){o(n,{event:"agent_version_drift",bootVersion:e.version,installedVersion:e.readInstalledVersion?.()??null}),e.onVersionDrift?.();break}let i=null;try{i=await J(a,r)}catch(m){let C=m instanceof f?m.statusCode:void 0;if(o(n,{event:"poll_error",status:C,error:m instanceof Error?m.message:String(m)}),!await P(d,e.signal))break;d=Math.min(d*2,N);continue}if(!i){if(o(n,{event:"poll_204"}),!await P(d,e.signal))break;d=Math.min(d*2,N);continue}d=L,await K(i,l,n)}o(n,{event:"agent_stop"})}s(ie,"runAgentLoop");export{D as a,M as b,x as c,J as d,ie as e};
1
+ import{c as H}from"./chunk-TIOKY2IA.js";import{a as b}from"./chunk-TQMG647B.js";import{b as I}from"./chunk-W2MOTOQE.js";import{a as T}from"./chunk-EXJLLRZW.js";import{a as S}from"./chunk-RSKQRVPJ.js";import{a as A}from"./chunk-2XGMDWFF.js";import{a as y}from"./chunk-KAF3CYRW.js";import{a as k}from"./chunk-UF6US7VU.js";import{a as _}from"./chunk-DPFNJZUO.js";import{a as R}from"./chunk-GQJKQH3K.js";import{a as E}from"./chunk-NEACEHQD.js";import{a as h}from"./chunk-32EEBARV.js";import{b as w}from"./chunk-5RBLIVBF.js";import{b as f,e as v,f as p}from"./chunk-H2ORWIEY.js";import{a as s}from"./chunk-ZLLER3HP.js";var D={process_eval:h,process_insights:b,process_launch:I,process_send_message:S,process_conversation:E,process_session_goal:A,process_announcement:R,process_run_cleanup:T,cron_suggest_instructions:_,cron_refresh_skills:k,cron_refresh_pricing:y},M=Object.keys(D),V=new Set(["process_session_goal","process_announcement","process_run_cleanup"]);function x(e=process.env){return e.DATABASE_URL?M:M.filter(n=>!V.has(n))}s(x,"availableCapabilities");var O=3e4,W=3e4,$=3e4,L=250,N=5e3,B=`thin-agent-${process.pid}`,g=null;function F(e,n,r,l){let a=s(t=>{p("/api/workers/heartbeat",{workerType:"cli-worker",clientName:B,clientVersion:l,workerVersion:"0.1.0",currentJobId:null,inFlightCount:0,lastError:null,status:t,metadata:{capabilities:e,mode:"thin-agent"}}).then(c=>{let u=c?.advisory;u&&u.message!==g?(g=u.message,o(r,{event:"worker_advisory",code:u.code,message:u.message})):u||(g=null)}).catch(c=>{o(r,{event:"presence_heartbeat_error",error:c instanceof Error?c.message:String(c)})})},"send");a("alive");let d=setInterval(()=>a("alive"),$);n.addEventListener("abort",()=>{clearInterval(d),a("shutting_down")},{once:!0})}s(F,"startPresenceHeartbeat");function o(e,n){try{e(JSON.stringify({ts:new Date().toISOString(),...n}))}catch{e(`[agent-loop] log_error event=${n.event}`)}}s(o,"structuredLog");function P(e,n){return n.aborted?Promise.resolve(!1):e<=0?Promise.resolve(!0):new Promise(r=>{let l=setTimeout(()=>{n.removeEventListener("abort",a),r(!0)},e),a=s(()=>{clearTimeout(l),n.removeEventListener("abort",a),r(!1)},"onAbort");n.addEventListener("abort",a,{once:!0})})}s(P,"abortableSleep");async function J(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(J,"pollForWork");function U(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(U,"makeHelpers");async function K(e,n,r){let l=D[e.kind],a=Date.now();if(o(r,{event:"claim",jobId:e.id,kind:e.kind,attempts:e.attempts}),!l){let t=`unknown kind: ${e.kind}`;o(r,{event:"fail",jobId:e.id,kind:e.kind,terminal:!0,error:t}),await p(`/api/work/${e.id}/fail`,{leaseToken:e.leaseToken,error:t,terminal:!0}).catch(()=>{});return}let d=setInterval(()=>{o(r,{event:"heartbeat",jobId:e.id}),p(`/api/work/${e.id}/heartbeat`,{leaseToken:e.leaseToken}).catch(t=>{o(r,{event:"heartbeat_error",jobId:e.id,error:t instanceof Error?t.message:String(t)})})},n);try{let t=U(e.attempts,r),c=await l(e.payload,t)??{};clearInterval(d),o(r,{event:"complete",jobId:e.id,kind:e.kind,durationMs:Date.now()-a}),await p(`/api/work/${e.id}/complete`,{leaseToken:e.leaseToken,result:c})}catch(t){clearInterval(d);let c=w(t),u=t instanceof Error?t.message:String(t);o(r,{event:"fail",jobId:e.id,kind:e.kind,durationMs:Date.now()-a,terminal:c,error:u}),await p(`/api/work/${e.id}/fail`,{leaseToken:e.leaseToken,error:u,terminal:c}).catch(i=>{o(r,{event:"fail_post_error",jobId:e.id,error:i instanceof Error?i.message:String(i)})})}}s(K,"runOne");async function ie(e){let n=e.log??(()=>{}),r=e.pollWaitMs??O,l=e.heartbeatIntervalMs??W,a=e.capabilities??x(),d=L;o(n,{event:"agent_start",capabilities:a,pollWaitMs:r,heartbeatIntervalMs:l}),F(a,e.signal,n,e.version),H({signal:e.signal,log:n}).catch(i=>{o(n,{event:"tt_heartbeat_fatal",error:i instanceof Error?i.message:String(i)})});let t=5*6e4,c=0,u=s(()=>{if(!e.readInstalledVersion||!e.version)return!1;let i=Date.now();if(i-c<t)return!1;c=i;let m=e.readInstalledVersion();return!!(m&&m!==e.version)},"versionDrifted");for(;!e.signal.aborted;){if(u()){o(n,{event:"agent_version_drift",bootVersion:e.version,installedVersion:e.readInstalledVersion?.()??null}),e.onVersionDrift?.();break}let i=null;try{i=await J(a,r)}catch(m){let C=m instanceof f?m.statusCode:void 0;if(o(n,{event:"poll_error",status:C,error:m instanceof Error?m.message:String(m)}),!await P(d,e.signal))break;d=Math.min(d*2,N);continue}if(!i){if(o(n,{event:"poll_204"}),!await P(d,e.signal))break;d=Math.min(d*2,N);continue}d=L,await K(i,l,n)}o(n,{event:"agent_stop"})}s(ie,"runAgentLoop");export{D as a,M as b,x as c,J as d,ie as e};
@@ -1,2 +1,2 @@
1
- import{c as R}from"./chunk-6QKI756T.js";import{b as s,c as r,h as j}from"./chunk-H4SV7FN4.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}
1
+ import{c as R}from"./chunk-6QKI756T.js";import{b as s,c as r,h as j}from"./chunk-4L5CU7LH.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
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};
@@ -0,0 +1 @@
1
+ import{e as w,f as k}from"./chunk-H2ORWIEY.js";import{a as u}from"./chunk-ZLLER3HP.js";import{buildControlledVerdict as _}from"@rulemetric/effectiveness";function h(e){if(e.length===0)return{mean:0,stddev:0,min:0,max:0};let n=e.reduce((s,a)=>s+a,0)/e.length,o=e.reduce((s,a)=>s+(a-n)**2,0)/e.length;return{mean:Math.round(n*1e3)/1e3,stddev:Math.round(Math.sqrt(o)*1e3)/1e3,min:Math.min(...e),max:Math.max(...e)}}u(h,"computeStats");var x="with_target",E="without_target";function $(e){let n=e.grading.summary?.pass_rate;return typeof n=="number"&&n>=1}u($,"fullPass");function b(e){return e.grading.summary?.pass_rate!=null}u(b,"hasGrading");function R(e){let n=e.timing.total_tokens;return typeof n=="number"&&n>0?n:void 0}u(R,"tokensOf");function v(e){let n=e.timing.duration_ms;return typeof n=="number"&&!isNaN(n)?n/1e3:void 0}u(v,"secondsOf");function y(e,n){let o={};for(let s of e)(o[n(s)]??=[]).push(s);return o}u(y,"groupBy");function T(e,n){let o=y(e.filter(b),i=>i.evalId),s=y(n.filter(b),i=>i.evalId),a=u((i,l)=>i.runNumber-l.runNumber,"byRun"),t=[];for(let i of Object.keys(o)){let l=o[i].sort(a),d=(s[i]??[]).sort(a);for(let r=0;r<Math.min(l.length,d.length);r++){let c={withScore:$(l[r])?1:0,withoutScore:$(d[r])?1:0},f=R(l[r]),g=R(d[r]);f!=null&&g!=null&&(c.withCost=f,c.withoutCost=g);let p=v(l[r]),m=v(d[r]);p!=null&&m!=null&&(c.withLatency=p,c.withoutLatency=m),t.push(c)}}return t}u(T,"pairRunsByEval");function C(e){let n=e.filter(r=>r.status==="completed");if(n.length===0)return{runSummary:{},verdict:null,notes:["No completed runs found"],totalRuns:0};let o=y(n,r=>r.configuration),s={},a=[];for(let[r,c]of Object.entries(o)){let f=c.filter(b).map(m=>m.grading.summary.pass_rate),g=c.map(v).filter(m=>m!=null),p=c.map(R).filter(m=>m!=null);s[r]={},f.length>0&&(s[r].pass_rate=h(f)),g.length>0&&(s[r].time_seconds=h(g)),p.length>0&&(s[r].tokens=h(p))}let t=null,i=o[x]??[],l=o[E]??[],d=T(i,l);if(d.length>0){if(t=_(d),!t.sufficient)a.push(t.insufficientReason??"Insufficient data for a significance verdict.");else if(t.significant){let r=t.delta>=0?"improves":"reduces",c=t.pValue!=null?`, McNemar p=${t.pValue.toFixed(4)}`:"";a.push(`Target ${r} the pass rate by ${Math.abs(t.delta*100).toFixed(0)}% (95% CI ${(t.ci.lower*100).toFixed(0)}\u2013${(t.ci.upper*100).toFixed(0)}%, n=${t.nWith}${c}).`)}else a.push(`No significant effect on pass rate (95% CI ${(t.ci.lower*100).toFixed(0)}\u2013${(t.ci.upper*100).toFixed(0)}%, n=${t.nWith}).`);t.costDelta!=null&&Math.round(t.costDelta)!==0&&a.push(`Token cost delta: ${t.costDelta>=0?"+":""}${Math.round(t.costDelta)} tokens/task.`),t.latencyDelta!=null&&Math.abs(t.latencyDelta)>1&&a.push(`Target ${t.latencyDelta>0?"adds":"saves"} ${Math.abs(t.latencyDelta).toFixed(1)}s/task.`)}for(let r of Object.values(s))if(r.pass_rate&&r.pass_rate.stddev>.2){a.push(`High pass-rate variance (stddev=${r.pass_rate.stddev.toFixed(2)}) \u2014 results may be unreliable.`);break}return{runSummary:s,verdict:t,notes:a,totalRuns:n.length}}u(C,"summarizeRuns");async function S(e,n){let o=n?`&iteration=${n}`:"",s=100,a=[];for(let t=0;t<1e5;t+=s){let i=await w(`/api/eval-targets/${e}/runs?limit=${s}&offset=${t}${o}`);if(a.push(...i),i.length<s)break}return C(a)}u(S,"aggregateBenchmark");async function B(e,n,o){return k(`/api/eval-targets/${e}/benchmarks`,{iteration:n,runSummary:o.runSummary,notes:o.notes})}u(B,"postBenchmark");export{C as a,S as b,B as c};
@@ -1,2 +1,2 @@
1
- import{b as B}from"./chunk-N7TGRFVZ.js";import{a as v,e as d,f as n,g as m,h as U}from"./chunk-H4SV7FN4.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}
1
+ import{b as B}from"./chunk-N7TGRFVZ.js";import{a as v,e as d,f as n,g as m,h as U}from"./chunk-4L5CU7LH.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
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 +1 @@
1
- import{c as m,d as p}from"./chunk-ZL4MZMUK.js";import{a as C}from"./chunk-N7TGRFVZ.js";import{e as c,h as f}from"./chunk-H4SV7FN4.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
+ import{c as m,d as p}from"./chunk-ZL4MZMUK.js";import{a as C}from"./chunk-N7TGRFVZ.js";import{e as c,h as f}from"./chunk-4L5CU7LH.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,3 +1,3 @@
1
- import{e as N}from"../../chunk-43YBXX7R.js";import"../../chunk-TIOKY2IA.js";import"../../chunk-TQMG647B.js";import"../../chunk-W2MOTOQE.js";import"../../chunk-VAXRCSSH.js";import"../../chunk-6QKI756T.js";import"../../chunk-RSKQRVPJ.js";import"../../chunk-AYUJY37O.js";import"../../chunk-QFVGUZDO.js";import"../../chunk-KAF3CYRW.js";import"../../chunk-UF6US7VU.js";import"../../chunk-DPFNJZUO.js";import"../../chunk-RTWRHIKY.js";import"../../chunk-2WLVDSAP.js";import"../../chunk-ZL4MZMUK.js";import"../../chunk-N7TGRFVZ.js";import{i as f}from"../../chunk-H4SV7FN4.js";import"../../chunk-NEACEHQD.js";import"../../chunk-32EEBARV.js";import"../../chunk-5RBLIVBF.js";import"../../chunk-2TC6WCUT.js";import"../../chunk-6V4WM73L.js";import"../../chunk-HS7X43XE.js";import"../../chunk-TDD7IOV2.js";import"../../chunk-MODXEGCU.js";import"../../chunk-7DFNBRLY.js";import"../../chunk-N7ODX6PO.js";import"../../chunk-67QCYUJU.js";import"../../chunk-DSO2U4Y6.js";import"../../chunk-CADKBP3D.js";import"../../chunk-MGHFDHHM.js";import{a as _}from"../../chunk-PPKPCXJD.js";import"../../chunk-IZTIYR5Q.js";import"../../chunk-V44SRRYR.js";import"../../chunk-U6XEU573.js";import"../../chunk-VLOX6KOM.js";import"../../chunk-3AV3GTMP.js";import"../../chunk-H2ORWIEY.js";import{e as R,l as w}from"../../chunk-O6C2UGBY.js";import{a as e}from"../../chunk-ZLLER3HP.js";import{trace as z,context as Q}from"@opentelemetry/api";import{NodeSDK as A}from"@opentelemetry/sdk-node";import{OTLPTraceExporter as I}from"@opentelemetry/exporter-trace-otlp-http";import{BatchSpanProcessor as L,ConsoleSpanExporter as C,SimpleSpanProcessor as D}from"@opentelemetry/sdk-trace-node";import{Resource as M}from"@opentelemetry/resources";import{ATTR_SERVICE_NAME as V,ATTR_SERVICE_VERSION as q}from"@opentelemetry/semantic-conventions";function b(t){if(!t)return{};let r={};for(let n of t.split(",")){let o=n.indexOf("=");if(o===-1)continue;let s=n.slice(0,o).trim(),i=n.slice(o+1).trim();s&&(r[s]=i)}return r}e(b,"parseOtlpHeaders");var c=null;function g(){return process.env.TELEMETRY_ENABLED!=="false"}e(g,"isTelemetryEnabled");function E(t){if(!g()||c!==null)return"off";let r=new M({[V]:t.serviceName,[q]:t.serviceVersion??"0.1.0"}),n=process.env.OTEL_EXPORTER_OTLP_ENDPOINT,o,s;if(n){let i=b(process.env.OTEL_EXPORTER_OTLP_HEADERS),u=new I({url:`${n}/v1/traces`,headers:i});s=new L(u),o="otlp"}else if(process.env.OTEL_SPAN_EXPORT==="none")s=void 0,o="silent";else{let i=new C;s=new D(i),o="console"}return c=new A({resource:r,spanProcessors:s?[s]:[]}),c.start(),o}e(E,"initTelemetry");async function d(){c&&(await c.shutdown(),c=null)}e(d,"shutdownTelemetry");import{SpanKind as ae,SpanStatusCode as ce}from"@opentelemetry/api";import{trace as de,context as me}from"@opentelemetry/api";import*as l from"@sentry/node";var h=!1;function y(t){if(h)return!1;let r=process.env.SENTRY_DSN;return r?(l.init({dsn:r,serverName:t.serviceName,environment:process.env.NODE_ENV??"development",tracesSampleRate:0}),h=!0,!0):!1}e(y,"initSentry");async function m(t){h&&await l.flush(t)}e(m,"flushSentry");import{existsSync as G,mkdirSync as U,readFileSync as v,unlinkSync as k,writeFileSync as O}from"node:fs";import{dirname as X,join as P}from"node:path";import{execFileSync as $}from"node:child_process";var a=P(w(),"evals-agent.lock");function j(t){try{return process.kill(t,0),!0}catch(r){return r.code==="EPERM"}}e(j,"pidAlive");function B(t){if(!j(t))return!1;try{let r=$("ps",["-p",String(t),"-o","command="],{encoding:"utf-8",stdio:["ignore","pipe","ignore"]});return/run\.js\s+evals\s+agent|evals\s+agent/.test(r)}catch{return!0}}e(B,"isLiveAgent");function H(){try{U(X(a),{recursive:!0})}catch{}for(let t=0;t<2;t++)try{return O(a,String(process.pid),{flag:"wx"}),{ok:!0}}catch(r){if(r.code!=="EEXIST")throw r;let n=0;try{n=Number(v(a,"utf-8").trim())}catch{}if(n&&n!==process.pid&&B(n))return{ok:!1,holder:n};try{k(a)}catch{}}try{O(a,String(process.pid))}catch{}return{ok:!0}}e(H,"acquireAgentLock");function S(){try{G(a)&&Number(v(a,"utf-8").trim())===process.pid&&k(a)}catch{}}e(S,"releaseAgentLock");var T=class t extends _{static{e(this,"EvalAgentCommand")}static description="The worker daemon: long-polls /api/work/next, claims jobs, and runs them locally. Installed as a launchd service by `rulemetric service install`.";static examples=["<%= config.bin %> evals agent"];async run(){await this.parse(t),this.requireAuth();let r=H();if(!r.ok){this.log(`Another rulemetric evals agent is already running (pid ${r.holder}). Refusing to start a second instance.`);return}process.env.PG_APPLICATION_NAME||="rulemetric-agent",y({serviceName:"rulemetric-agent"})&&this.log("[sentry] error capture enabled");let o=E({serviceName:"rulemetric-agent"});o==="otlp"?this.log(`[otel] traces exporting to ${process.env.OTEL_EXPORTER_OTLP_ENDPOINT}`):o==="console"?this.log("[otel] cron spans printing to stdout (set OTEL_EXPORTER_OTLP_ENDPOINT to ship to a backend)"):this.log("[otel] disabled (TELEMETRY_ENABLED=false)"),!R()&&!process.env.RULEMETRIC_API_KEY&&this.error("No auth token found. Run `rulemetric auth login` first."),this.log("Starting thin agent (Phase 4b parallel-run)..."),this.log(`Long-polling /api/work/next. Press Ctrl+C to stop.
1
+ import{e as N}from"../../chunk-CPMKMB7S.js";import"../../chunk-TIOKY2IA.js";import"../../chunk-TQMG647B.js";import"../../chunk-W2MOTOQE.js";import"../../chunk-EXJLLRZW.js";import"../../chunk-6QKI756T.js";import"../../chunk-RSKQRVPJ.js";import"../../chunk-2XGMDWFF.js";import"../../chunk-QFVGUZDO.js";import"../../chunk-KAF3CYRW.js";import"../../chunk-UF6US7VU.js";import"../../chunk-DPFNJZUO.js";import"../../chunk-RTWRHIKY.js";import"../../chunk-GQJKQH3K.js";import"../../chunk-ZL4MZMUK.js";import"../../chunk-N7TGRFVZ.js";import{i as f}from"../../chunk-4L5CU7LH.js";import"../../chunk-NEACEHQD.js";import"../../chunk-32EEBARV.js";import"../../chunk-5RBLIVBF.js";import"../../chunk-2TC6WCUT.js";import"../../chunk-6V4WM73L.js";import"../../chunk-HS7X43XE.js";import"../../chunk-TDD7IOV2.js";import"../../chunk-MODXEGCU.js";import"../../chunk-7DFNBRLY.js";import"../../chunk-N7ODX6PO.js";import"../../chunk-67QCYUJU.js";import"../../chunk-DSO2U4Y6.js";import"../../chunk-CADKBP3D.js";import"../../chunk-MGHFDHHM.js";import{a as _}from"../../chunk-PPKPCXJD.js";import"../../chunk-IZTIYR5Q.js";import"../../chunk-V44SRRYR.js";import"../../chunk-U6XEU573.js";import"../../chunk-VLOX6KOM.js";import"../../chunk-3AV3GTMP.js";import"../../chunk-H2ORWIEY.js";import{e as R,l as w}from"../../chunk-O6C2UGBY.js";import{a as e}from"../../chunk-ZLLER3HP.js";import{trace as z,context as Q}from"@opentelemetry/api";import{NodeSDK as A}from"@opentelemetry/sdk-node";import{OTLPTraceExporter as I}from"@opentelemetry/exporter-trace-otlp-http";import{BatchSpanProcessor as L,ConsoleSpanExporter as C,SimpleSpanProcessor as D}from"@opentelemetry/sdk-trace-node";import{Resource as M}from"@opentelemetry/resources";import{ATTR_SERVICE_NAME as V,ATTR_SERVICE_VERSION as q}from"@opentelemetry/semantic-conventions";function b(t){if(!t)return{};let r={};for(let n of t.split(",")){let o=n.indexOf("=");if(o===-1)continue;let s=n.slice(0,o).trim(),i=n.slice(o+1).trim();s&&(r[s]=i)}return r}e(b,"parseOtlpHeaders");var c=null;function g(){return process.env.TELEMETRY_ENABLED!=="false"}e(g,"isTelemetryEnabled");function E(t){if(!g()||c!==null)return"off";let r=new M({[V]:t.serviceName,[q]:t.serviceVersion??"0.1.0"}),n=process.env.OTEL_EXPORTER_OTLP_ENDPOINT,o,s;if(n){let i=b(process.env.OTEL_EXPORTER_OTLP_HEADERS),u=new I({url:`${n}/v1/traces`,headers:i});s=new L(u),o="otlp"}else if(process.env.OTEL_SPAN_EXPORT==="none")s=void 0,o="silent";else{let i=new C;s=new D(i),o="console"}return c=new A({resource:r,spanProcessors:s?[s]:[]}),c.start(),o}e(E,"initTelemetry");async function d(){c&&(await c.shutdown(),c=null)}e(d,"shutdownTelemetry");import{SpanKind as ae,SpanStatusCode as ce}from"@opentelemetry/api";import{trace as de,context as me}from"@opentelemetry/api";import*as l from"@sentry/node";var h=!1;function y(t){if(h)return!1;let r=process.env.SENTRY_DSN;return r?(l.init({dsn:r,serverName:t.serviceName,environment:process.env.NODE_ENV??"development",tracesSampleRate:0}),h=!0,!0):!1}e(y,"initSentry");async function m(t){h&&await l.flush(t)}e(m,"flushSentry");import{existsSync as G,mkdirSync as U,readFileSync as v,unlinkSync as k,writeFileSync as O}from"node:fs";import{dirname as X,join as P}from"node:path";import{execFileSync as $}from"node:child_process";var a=P(w(),"evals-agent.lock");function j(t){try{return process.kill(t,0),!0}catch(r){return r.code==="EPERM"}}e(j,"pidAlive");function B(t){if(!j(t))return!1;try{let r=$("ps",["-p",String(t),"-o","command="],{encoding:"utf-8",stdio:["ignore","pipe","ignore"]});return/run\.js\s+evals\s+agent|evals\s+agent/.test(r)}catch{return!0}}e(B,"isLiveAgent");function H(){try{U(X(a),{recursive:!0})}catch{}for(let t=0;t<2;t++)try{return O(a,String(process.pid),{flag:"wx"}),{ok:!0}}catch(r){if(r.code!=="EEXIST")throw r;let n=0;try{n=Number(v(a,"utf-8").trim())}catch{}if(n&&n!==process.pid&&B(n))return{ok:!1,holder:n};try{k(a)}catch{}}try{O(a,String(process.pid))}catch{}return{ok:!0}}e(H,"acquireAgentLock");function S(){try{G(a)&&Number(v(a,"utf-8").trim())===process.pid&&k(a)}catch{}}e(S,"releaseAgentLock");var T=class t extends _{static{e(this,"EvalAgentCommand")}static description="The worker daemon: long-polls /api/work/next, claims jobs, and runs them locally. Installed as a launchd service by `rulemetric service install`.";static examples=["<%= config.bin %> evals agent"];async run(){await this.parse(t),this.requireAuth();let r=H();if(!r.ok){this.log(`Another rulemetric evals agent is already running (pid ${r.holder}). Refusing to start a second instance.`);return}process.env.PG_APPLICATION_NAME||="rulemetric-agent",y({serviceName:"rulemetric-agent"})&&this.log("[sentry] error capture enabled");let o=E({serviceName:"rulemetric-agent"});o==="otlp"?this.log(`[otel] traces exporting to ${process.env.OTEL_EXPORTER_OTLP_ENDPOINT}`):o==="console"?this.log("[otel] cron spans printing to stdout (set OTEL_EXPORTER_OTLP_ENDPOINT to ship to a backend)"):this.log("[otel] disabled (TELEMETRY_ENABLED=false)"),!R()&&!process.env.RULEMETRIC_API_KEY&&this.error("No auth token found. Run `rulemetric auth login` first."),this.log("Starting thin agent (Phase 4b parallel-run)..."),this.log(`Long-polling /api/work/next. Press Ctrl+C to stop.
2
2
  `);let i=new AbortController,u=e(async p=>{this.log(`
3
3
  [${p}] shutting down agent...`),i.abort(),await Promise.allSettled([m(2e3),d(),f()]),S(),process.exit(0)},"shutdown");process.on("SIGINT",()=>{u("SIGINT")}),process.on("SIGTERM",()=>{u("SIGTERM")});let x=!1;try{await N({signal:i.signal,log:e(p=>this.log(p),"log"),version:this.config.version,readInstalledVersion:e(()=>{try{return JSON.parse(v(P(this.config.root,"package.json"),"utf-8")).version??null}catch{return null}},"readInstalledVersion"),onVersionDrift:e(()=>{x=!0},"onVersionDrift")}),x&&(this.log("[upgrade] Installed CLI version changed \u2014 restarting worker onto the new code."),await Promise.allSettled([m(2e3),d(),f()]),S(),process.exit(1))}finally{S(),await f()}}};export{T as default};
@@ -1,6 +1,6 @@
1
- import{a as u,b as f}from"../../chunk-G63KMH6U.js";import{a as d}from"../../chunk-PPKPCXJD.js";import"../../chunk-IZTIYR5Q.js";import"../../chunk-V44SRRYR.js";import"../../chunk-U6XEU573.js";import"../../chunk-VLOX6KOM.js";import"../../chunk-3AV3GTMP.js";import{e as l}from"../../chunk-H2ORWIEY.js";import"../../chunk-O6C2UGBY.js";import{a as m}from"../../chunk-ZLLER3HP.js";import{Args as b,Flags as $}from"@oclif/core";var o=class h extends d{static{m(this,"EvalBenchmarkCommand")}static description="Aggregate eval runs into a benchmark for a target";static examples=["<%= config.bin %> evals benchmark <target-id>","<%= config.bin %> evals benchmark <target-id> --iteration 2"];static args={targetId:b.string({description:"Eval target ID",required:!0})};static flags={iteration:$.integer({description:"Filter runs by iteration",default:1})};async run(){let{args:i,flags:a}=await this.parse(h);this.requireAuth();let g=await l(`/api/eval-targets/${i.targetId}`);this.log(`Aggregating benchmark for "${g.name}" v${g.version}, iteration ${a.iteration}`);let t=await u(i.targetId,a.iteration);t.totalRuns===0&&this.error("No completed runs found. Run evals first with `rulemetric evals run`."),this.log(`
2
- Aggregated ${t.totalRuns} runs
3
- `);for(let[e,c]of Object.entries(t.runSummary)){if(e==="delta"){this.log(`
4
- Delta (with_target - without_target):`);for(let[n,s]of Object.entries(c))this.log(` ${n}: ${s}`);continue}this.log(`${e}:`);for(let[n,s]of Object.entries(c)){let r=s;this.log(` ${n}: mean=${r.mean} stddev=${r.stddev} [${r.min}, ${r.max}]`)}}if(t.notes.length>0){this.log(`
5
- Notes:`);for(let e of t.notes)this.log(` - ${e}`)}let v=await f(i.targetId,a.iteration,t);this.log(`
6
- Benchmark saved: ${v.id}`)}};export{o as default};
1
+ import{b as d,c as m}from"../../chunk-FLMBC5E4.js";import{a as l}from"../../chunk-PPKPCXJD.js";import"../../chunk-IZTIYR5Q.js";import"../../chunk-V44SRRYR.js";import"../../chunk-U6XEU573.js";import"../../chunk-VLOX6KOM.js";import"../../chunk-3AV3GTMP.js";import{e as c}from"../../chunk-H2ORWIEY.js";import"../../chunk-O6C2UGBY.js";import{a as g}from"../../chunk-ZLLER3HP.js";import{Args as v,Flags as b}from"@oclif/core";var s=class f extends l{static{g(this,"EvalBenchmarkCommand")}static description="Aggregate eval runs into a benchmark for a target";static examples=["<%= config.bin %> evals benchmark <target-id>","<%= config.bin %> evals benchmark <target-id> --iteration 2"];static args={targetId:v.string({description:"Eval target ID",required:!0})};static flags={iteration:b.integer({description:"Filter runs by iteration",default:1})};async run(){let{args:a,flags:n}=await this.parse(f);this.requireAuth();let o=await c(`/api/eval-targets/${a.targetId}`);this.log(`Aggregating benchmark for "${o.name}" v${o.version}, iteration ${n.iteration}`);let e=await d(a.targetId,n.iteration);e.totalRuns===0&&this.error("No completed runs found. Run evals first with `rulemetric evals run`."),this.log(`
2
+ Aggregated ${e.totalRuns} runs
3
+ `);for(let[i,h]of Object.entries(e.runSummary)){this.log(`${i}:`);for(let[$,p]of Object.entries(h)){let r=p;this.log(` ${$}: mean=${r.mean} stddev=${r.stddev} [${r.min}, ${r.max}]`)}}let t=e.verdict;if(t)if(this.log(`
4
+ Verdict (${t.mode}, baseline=${t.baseline}):`),!t.sufficient)this.log(` ${t.insufficientReason??"insufficient data"} \u2014 no effect claimed`);else{let i=t.delta>=0?"+":"";this.log(` pass-rate delta: ${i}${(t.delta*100).toFixed(0)}% (n=${t.nWith} paired)`),this.log(` 95% CI: ${(t.ci.lower*100).toFixed(0)}\u2013${(t.ci.upper*100).toFixed(0)}%`),t.pValue!=null&&this.log(` McNemar p: ${t.pValue.toFixed(4)}`),this.log(` significant: ${t.significant?"YES":"no"}`)}if(e.notes.length>0){this.log(`
5
+ Notes:`);for(let i of e.notes)this.log(` - ${i}`)}let u=await m(a.targetId,n.iteration,e);this.log(`
6
+ Benchmark saved: ${u.id}`)}};export{s as default};
@@ -1 +1 @@
1
- import{a,b,c,d,e}from"../chunk-43YBXX7R.js";import"../chunk-TIOKY2IA.js";import"../chunk-TQMG647B.js";import"../chunk-W2MOTOQE.js";import"../chunk-VAXRCSSH.js";import"../chunk-6QKI756T.js";import"../chunk-RSKQRVPJ.js";import"../chunk-AYUJY37O.js";import"../chunk-QFVGUZDO.js";import"../chunk-KAF3CYRW.js";import"../chunk-UF6US7VU.js";import"../chunk-DPFNJZUO.js";import"../chunk-RTWRHIKY.js";import"../chunk-2WLVDSAP.js";import"../chunk-ZL4MZMUK.js";import"../chunk-N7TGRFVZ.js";import"../chunk-H4SV7FN4.js";import"../chunk-NEACEHQD.js";import"../chunk-32EEBARV.js";import"../chunk-5RBLIVBF.js";import"../chunk-2TC6WCUT.js";import"../chunk-6V4WM73L.js";import"../chunk-HS7X43XE.js";import"../chunk-TDD7IOV2.js";import"../chunk-MODXEGCU.js";import"../chunk-7DFNBRLY.js";import"../chunk-N7ODX6PO.js";import"../chunk-67QCYUJU.js";import"../chunk-DSO2U4Y6.js";import"../chunk-CADKBP3D.js";import"../chunk-MGHFDHHM.js";import"../chunk-H2ORWIEY.js";import"../chunk-O6C2UGBY.js";import"../chunk-ZLLER3HP.js";export{b as CAPABILITIES,a as HANDLERS,c as availableCapabilities,d as pollForWork,e as runAgentLoop};
1
+ import{a,b,c,d,e}from"../chunk-CPMKMB7S.js";import"../chunk-TIOKY2IA.js";import"../chunk-TQMG647B.js";import"../chunk-W2MOTOQE.js";import"../chunk-EXJLLRZW.js";import"../chunk-6QKI756T.js";import"../chunk-RSKQRVPJ.js";import"../chunk-2XGMDWFF.js";import"../chunk-QFVGUZDO.js";import"../chunk-KAF3CYRW.js";import"../chunk-UF6US7VU.js";import"../chunk-DPFNJZUO.js";import"../chunk-RTWRHIKY.js";import"../chunk-GQJKQH3K.js";import"../chunk-ZL4MZMUK.js";import"../chunk-N7TGRFVZ.js";import"../chunk-4L5CU7LH.js";import"../chunk-NEACEHQD.js";import"../chunk-32EEBARV.js";import"../chunk-5RBLIVBF.js";import"../chunk-2TC6WCUT.js";import"../chunk-6V4WM73L.js";import"../chunk-HS7X43XE.js";import"../chunk-TDD7IOV2.js";import"../chunk-MODXEGCU.js";import"../chunk-7DFNBRLY.js";import"../chunk-N7ODX6PO.js";import"../chunk-67QCYUJU.js";import"../chunk-DSO2U4Y6.js";import"../chunk-CADKBP3D.js";import"../chunk-MGHFDHHM.js";import"../chunk-H2ORWIEY.js";import"../chunk-O6C2UGBY.js";import"../chunk-ZLLER3HP.js";export{b as CAPABILITIES,a as HANDLERS,c as availableCapabilities,d as pollForWork,e as runAgentLoop};
@@ -1 +1 @@
1
- import{a,b}from"../chunk-G63KMH6U.js";import"../chunk-H2ORWIEY.js";import"../chunk-O6C2UGBY.js";import"../chunk-ZLLER3HP.js";export{a as aggregateBenchmark,b as postBenchmark};
1
+ import{a,b,c}from"../chunk-FLMBC5E4.js";import"../chunk-H2ORWIEY.js";import"../chunk-O6C2UGBY.js";import"../chunk-ZLLER3HP.js";export{b as aggregateBenchmark,c as postBenchmark,a as summarizeRuns};
@@ -1 +1 @@
1
- import{a}from"../../chunk-2WLVDSAP.js";import"../../chunk-N7TGRFVZ.js";import"../../chunk-H4SV7FN4.js";import"../../chunk-5RBLIVBF.js";import"../../chunk-ZLLER3HP.js";export{a as processAnnouncement};
1
+ import{a}from"../../chunk-GQJKQH3K.js";import"../../chunk-N7TGRFVZ.js";import"../../chunk-4L5CU7LH.js";import"../../chunk-5RBLIVBF.js";import"../../chunk-ZLLER3HP.js";export{a as processAnnouncement};
@@ -1 +1 @@
1
- import{a}from"../../chunk-JQTGQXUX.js";import"../../chunk-ZL4MZMUK.js";import"../../chunk-N7TGRFVZ.js";import"../../chunk-H4SV7FN4.js";import"../../chunk-ZLLER3HP.js";export{a as processChangelog};
1
+ import{a}from"../../chunk-SYQWEAJR.js";import"../../chunk-ZL4MZMUK.js";import"../../chunk-N7TGRFVZ.js";import"../../chunk-4L5CU7LH.js";import"../../chunk-ZLLER3HP.js";export{a as processChangelog};
@@ -1 +1 @@
1
- import{a}from"../../chunk-VAXRCSSH.js";import"../../chunk-6QKI756T.js";import"../../chunk-H4SV7FN4.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-EXJLLRZW.js";import"../../chunk-6QKI756T.js";import"../../chunk-4L5CU7LH.js";import"../../chunk-5RBLIVBF.js";import"../../chunk-7DFNBRLY.js";import"../../chunk-N7ODX6PO.js";import"../../chunk-ZLLER3HP.js";export{a as processRunCleanup};
@@ -1 +1 @@
1
- import{a}from"../../chunk-AYUJY37O.js";import"../../chunk-RTWRHIKY.js";import"../../chunk-H4SV7FN4.js";import"../../chunk-N7ODX6PO.js";import"../../chunk-67QCYUJU.js";import"../../chunk-ZLLER3HP.js";export{a as processSessionGoal};
1
+ import{a}from"../../chunk-2XGMDWFF.js";import"../../chunk-RTWRHIKY.js";import"../../chunk-4L5CU7LH.js";import"../../chunk-N7ODX6PO.js";import"../../chunk-67QCYUJU.js";import"../../chunk-ZLLER3HP.js";export{a as processSessionGoal};
@@ -1 +1 @@
1
- import{a as l}from"../chunk-JQTGQXUX.js";import{a as u}from"../chunk-UF6US7VU.js";import{a as g}from"../chunk-DPFNJZUO.js";import"../chunk-RTWRHIKY.js";import"../chunk-ZL4MZMUK.js";import"../chunk-N7TGRFVZ.js";import"../chunk-H4SV7FN4.js";import"../chunk-TDD7IOV2.js";import"../chunk-MODXEGCU.js";import"../chunk-N7ODX6PO.js";import"../chunk-67QCYUJU.js";import{a as i}from"../chunk-GY5IJ4RS.js";import"../chunk-H2ORWIEY.js";import"../chunk-O6C2UGBY.js";import{a as o}from"../chunk-ZLLER3HP.js";var c={cron_check_changelog:o(async(r,e)=>{let s=await l({logger:{info:o(t=>e.logger.info(t),"info"),warn:o(t=>e.logger.warn(t),"warn")}});e.logger.info(`[cron_check_changelog] result: created=${s.createdCount} skipped=${s.skippedCount}`)},"cron_check_changelog"),cron_suggest_instructions:o((r,e)=>g(r,e),"cron_suggest_instructions"),cron_refresh_skills:o((r,e)=>u(r,e),"cron_refresh_skills")},p=i.map(r=>{let e=c[r.name];if(!e)throw new Error(`manual-tasks: no handler registered for "${r.name}"`);return{...r,handler:e}});async function m(r){let e=p.find(n=>n.name===r);if(!e)return{name:r,durationMs:0,ok:!1,error:`Unknown task: ${r}`,logs:[]};let s=[],t={logger:{info:o(n=>s.push({level:"info",message:n}),"info"),warn:o(n=>s.push({level:"warn",message:n}),"warn"),error:o(n=>s.push({level:"error",message:n}),"error")},job:{attempts:0}},a=Date.now();try{return await e.handler({},t),{name:r,durationMs:Date.now()-a,ok:!0,logs:s}}catch(n){return{name:r,durationMs:Date.now()-a,ok:!1,error:n instanceof Error?n.message:String(n),logs:s}}}o(m,"runManualTask");export{p as MANUAL_TASKS,m as runManualTask};
1
+ import{a as l}from"../chunk-SYQWEAJR.js";import{a as u}from"../chunk-UF6US7VU.js";import{a as g}from"../chunk-DPFNJZUO.js";import"../chunk-RTWRHIKY.js";import"../chunk-ZL4MZMUK.js";import"../chunk-N7TGRFVZ.js";import"../chunk-4L5CU7LH.js";import"../chunk-TDD7IOV2.js";import"../chunk-MODXEGCU.js";import"../chunk-N7ODX6PO.js";import"../chunk-67QCYUJU.js";import{a as i}from"../chunk-GY5IJ4RS.js";import"../chunk-H2ORWIEY.js";import"../chunk-O6C2UGBY.js";import{a as o}from"../chunk-ZLLER3HP.js";var c={cron_check_changelog:o(async(r,e)=>{let s=await l({logger:{info:o(t=>e.logger.info(t),"info"),warn:o(t=>e.logger.warn(t),"warn")}});e.logger.info(`[cron_check_changelog] result: created=${s.createdCount} skipped=${s.skippedCount}`)},"cron_check_changelog"),cron_suggest_instructions:o((r,e)=>g(r,e),"cron_suggest_instructions"),cron_refresh_skills:o((r,e)=>u(r,e),"cron_refresh_skills")},p=i.map(r=>{let e=c[r.name];if(!e)throw new Error(`manual-tasks: no handler registered for "${r.name}"`);return{...r,handler:e}});async function m(r){let e=p.find(n=>n.name===r);if(!e)return{name:r,durationMs:0,ok:!1,error:`Unknown task: ${r}`,logs:[]};let s=[],t={logger:{info:o(n=>s.push({level:"info",message:n}),"info"),warn:o(n=>s.push({level:"warn",message:n}),"warn"),error:o(n=>s.push({level:"error",message:n}),"error")},job:{attempts:0}},a=Date.now();try{return await e.handler({},t),{name:r,durationMs:Date.now()-a,ok:!0,logs:s}}catch(n){return{name:r,durationMs:Date.now()-a,ok:!1,error:n instanceof Error?n.message:String(n),logs:s}}}o(m,"runManualTask");export{p as MANUAL_TASKS,m as runManualTask};
@@ -4077,5 +4077,5 @@
4077
4077
  ]
4078
4078
  }
4079
4079
  },
4080
- "version": "0.7.5"
4080
+ "version": "0.7.6"
4081
4081
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@rulemetric/cli",
3
- "version": "0.7.5",
3
+ "version": "0.7.6",
4
4
  "publishConfig": {
5
5
  "access": "public"
6
6
  },
@@ -74,9 +74,9 @@
74
74
  "postgres": "^3.4.0",
75
75
  "react": "^19.0.0",
76
76
  "zod": "^3.24.0",
77
- "@rulemetric/proxy": "0.7.5",
78
- "@rulemetric/skills-registry": "0.7.5",
79
- "@rulemetric/hooks": "0.7.5"
77
+ "@rulemetric/hooks": "0.7.6",
78
+ "@rulemetric/skills-registry": "0.7.6",
79
+ "@rulemetric/proxy": "0.7.6"
80
80
  },
81
81
  "//deps": "Worker (`evals agent`) runtime deps: the @opentelemetry/* set, @sentry/node, and postgres are STATIC top-level imports loaded at worker startup (via bundled @rulemetric/{telemetry,db}) — they MUST be runtime deps or a clean `npm i -g` crashes with ModuleLoadError. `better-sqlite3` is optionalDependencies (below): it's a native module, lazy `require()`'d inside a try/catch (packages/session providers cursor/opencode) so a missing binary degrades gracefully — making it a hard dep would break `npm i -g` on platforms without prebuilt binaries. `resend` stays a devDep: lazy `await import('resend')` guarded by RESEND_API_KEY, which end-user workers never set (provider falls back to noop). Classification verified via import-graph scan of dist/commands/evals/agent.js + per-importer static/lazy check.",
82
82
  "optionalDependencies": {
@@ -97,10 +97,11 @@
97
97
  "@rulemetric/api": "0.0.1",
98
98
  "@rulemetric/core": "0.0.1",
99
99
  "@rulemetric/db": "0.0.1",
100
+ "@rulemetric/effectiveness": "0.0.1",
100
101
  "@rulemetric/email": "0.0.1",
102
+ "@rulemetric/telemetry": "0.0.1",
101
103
  "@rulemetric/session": "0.2.1",
102
- "@rulemetric/typescript-config": "0.0.0",
103
- "@rulemetric/telemetry": "0.0.1"
104
+ "@rulemetric/typescript-config": "0.0.0"
104
105
  },
105
106
  "scripts": {
106
107
  "build": "node scripts/build.mjs",
@@ -1 +0,0 @@
1
- import{e as R,f as _}from"./chunk-H2ORWIEY.js";import{a as f}from"./chunk-ZLLER3HP.js";function p(a){if(a.length===0)return{mean:0,stddev:0,min:0,max:0};let i=a.reduce((o,c)=>o+c,0)/a.length,m=a.reduce((o,c)=>o+(c-i)**2,0)/a.length;return{mean:Math.round(i*1e3)/1e3,stddev:Math.round(Math.sqrt(m)*1e3)/1e3,min:Math.min(...a),max:Math.max(...a)}}f(p,"computeStats");async function y(a,i){let m=i?`&iteration=${i}`:"",o=100,c=[];for(let t=0;t<1e5;t+=o){let n=await R(`/api/eval-targets/${a}/runs?limit=${o}&offset=${t}${m}`);if(c.push(...n),n.length<o)break}let l=c.filter(t=>t.status==="completed");if(l.length===0)return{runSummary:{},notes:["No completed runs found"],totalRuns:0};let g={};for(let t of l)g[t.configuration]||(g[t.configuration]=[]),g[t.configuration].push(t);let e={},u=[];for(let[t,n]of Object.entries(g)){let r=n.filter(s=>Object.keys(s.grading).length>0).map(s=>s.grading.summary?.pass_rate??0),d=n.map(s=>s.timing.duration_ms/1e3).filter(s=>!isNaN(s)),h=n.map(s=>s.timing.total_tokens??0).filter(s=>s>0);e[t]={},r.length>0&&(e[t].pass_rate=p(r)),d.length>0&&(e[t].time_seconds=p(d)),h.length>0&&(e[t].tokens=p(h))}if(e.with_target&&e.without_target){let t={};for(let d of["pass_rate","time_seconds","tokens"]){let h=e.with_target[d]?.mean??0,s=e.without_target[d]?.mean??0,b=h-s;t[d]=`${b>=0?"+":""}${Math.round(b*1e3)/1e3}`}e.delta=t,u.push(`Delta is a raw mean difference over ${g.with_target.length} with-target / ${g.without_target.length} without-target runs \u2014 no significance test; small samples are not statistically meaningful.`);let n=(e.with_target.pass_rate?.mean??0)-(e.without_target.pass_rate?.mean??0);n>.1?u.push(`Target improves pass rate by ${(n*100).toFixed(0)}%`):n<-.1?u.push(`Target decreases pass rate by ${(Math.abs(n)*100).toFixed(0)}%`):u.push("Target has minimal impact on pass rate");let r=(e.with_target.time_seconds?.mean??0)-(e.without_target.time_seconds?.mean??0);Math.abs(r)>5&&u.push(`Target ${r>0?"adds":"saves"} ${Math.abs(r).toFixed(1)}s average execution time`)}for(let[t,n]of Object.entries(e)){if(t==="delta")continue;let r=n.pass_rate;r&&r.stddev>.2&&u.push(`${t} shows high pass rate variance (stddev=${r.stddev.toFixed(2)}) \u2014 results may be unreliable`)}return{runSummary:e,notes:u,totalRuns:l.length}}f(y,"aggregateBenchmark");async function $(a,i,m){return _(`/api/eval-targets/${a}/benchmarks`,{iteration:i,runSummary:m.runSummary,notes:m.notes})}f($,"postBenchmark");export{y as a,$ as b};
@@ -1 +0,0 @@
1
- import{a as p,c as Bn}from"./chunk-ZLLER3HP.js";import{boolean as io,pgTable as Hn,text as Le,timestamp as Nt,uuid as ao}from"drizzle-orm/pg-core";import{pgTable as Me,text as Q,timestamp as ge,jsonb as ro,uuid as U,primaryKey as so}from"drizzle-orm/pg-core";var a=Me("organizations",{id:U("id").primaryKey().defaultRandom(),name:Q("name").unique().notNull(),slug:Q("slug").unique().notNull(),metadata:ro("metadata"),createdAt:ge("created_at",{withTimezone:!0}).defaultNow(),updatedAt:ge("updated_at",{withTimezone:!0}).defaultNow()}),x=Me("teams",{id:U("id").primaryKey().defaultRandom(),orgId:U("org_id").references(()=>a.id,{onDelete:"cascade"}),name:Q("name").notNull(),slug:Q("slug").notNull(),metadata:ro("metadata"),createdAt:ge("created_at",{withTimezone:!0}).defaultNow()}),W=Me("user_organizations",{userId:U("user_id").notNull(),orgId:U("org_id").references(()=>a.id,{onDelete:"cascade"}).notNull(),role:Q("role").notNull().default("member"),createdAt:ge("created_at",{withTimezone:!0}).defaultNow()},e=>[so({columns:[e.userId,e.orgId]})]),X=Me("user_teams",{userId:U("user_id").notNull(),teamId:U("team_id").references(()=>x.id,{onDelete:"cascade"}).notNull(),role:Q("role").notNull().default("member"),createdAt:ge("created_at",{withTimezone:!0}).defaultNow()},e=>[so({columns:[e.userId,e.teamId]})]);var s=Hn("profiles",{id:ao("id").primaryKey(),email:Le("email"),displayName:Le("display_name"),activeOrgId:ao("active_org_id").references(()=>a.id,{onDelete:"set null"}),isSuperadmin:io("is_superadmin").notNull().default(!1),claudeCodePlan:Le("claude_code_plan"),planSource:Le("plan_source").notNull().default("detected"),setupCompletedAt:Nt("setup_completed_at",{withTimezone:!0}),liveSendSkipped:io("live_send_skipped").notNull().default(!1),createdAt:Nt("created_at",{withTimezone:!0}).defaultNow(),updatedAt:Nt("updated_at",{withTimezone:!0}).defaultNow()});import{pgTable as Yn,text as Z,timestamp as It,jsonb as _o,uuid as He,integer as Qn,boolean as Wn,index as Tt}from"drizzle-orm/pg-core";import{boolean as Gn,jsonb as Vn,pgTable as yt,primaryKey as co,text as B,timestamp as ve,uniqueIndex as ht,uuid as H}from"drizzle-orm/pg-core";import{sql as Jn}from"drizzle-orm";import{pgTable as uo,text as f,timestamp as Ne,jsonb as Be,uuid as E,integer as vt,boolean as Fn,uniqueIndex as lo,index as Ue}from"drizzle-orm/pg-core";var o=uo("instructions",{id:E("id").primaryKey().defaultRandom(),name:f("name").notNull(),description:f("description").notNull(),type:f("type").notNull().default("instruction"),scope:f("scope").notNull(),scopeRef:E("scope_ref"),version:f("version").notNull(),content:f("content").notNull(),frontmatter:Be("frontmatter").notNull(),slots:Be("slots"),tags:f("tags").array(),compatibility:f("compatibility").array(),createdBy:E("created_by"),createdAt:Ne("created_at",{withTimezone:!0}).defaultNow(),updatedAt:Ne("updated_at",{withTimezone:!0}).defaultNow(),archived:Fn("archived").default(!1),archivedAt:Ne("archived_at",{withTimezone:!0}),archivedBy:E("archived_by"),forkedFromId:E("forked_from_id").references(()=>o.id,{onDelete:"set null"}),upstreamVersion:f("upstream_version"),badge:f("badge"),contentHash:f("content_hash"),contextIdentity:f("context_identity"),scanScore:vt("scan_score"),scanFindings:Be("scan_findings"),popularityScore:vt("popularity_score"),sourceUpdatedAt:Ne("source_updated_at",{withTimezone:!0})},e=>[lo("instructions_name_scope_ref_idx").on(e.name,e.scope,e.scopeRef),Ue("idx_instructions_scope").on(e.scope,e.scopeRef),Ue("idx_instructions_created_by").on(e.createdBy),Ue("idx_instructions_context_identity").on(e.createdBy,e.contextIdentity),Ue("idx_instructions_public_recency").on(e.scope,e.sourceUpdatedAt.desc())]),$=uo("instruction_versions",{id:E("id").primaryKey().defaultRandom(),instructionId:E("instruction_id").references(()=>o.id,{onDelete:"cascade"}),versionNumber:vt("version_number").notNull(),content:f("content").notNull(),frontmatter:Be("frontmatter").notNull(),changeSummary:f("change_summary"),createdBy:E("created_by"),createdAt:Ne("created_at",{withTimezone:!0}).defaultNow()},e=>[lo("instruction_versions_instruction_version_idx").on(e.instructionId,e.versionNumber)]);var l=yt("projects",{id:H("id").primaryKey().defaultRandom(),orgId:H("org_id").references(()=>a.id,{onDelete:"cascade"}),name:B("name").notNull(),description:B("description"),githubRepo:B("github_repo"),gitRemoteUrl:B("git_remote_url"),gitRootCommit:B("git_root_commit"),gitRemoteAliases:B("git_remote_aliases").array().notNull().default([]),metadata:Vn("metadata"),createdBy:H("created_by"),createdAt:ve("created_at",{withTimezone:!0}).defaultNow(),updatedAt:ve("updated_at",{withTimezone:!0}).defaultNow()},e=>[ht("projects_org_name_idx").on(e.orgId,e.name),ht("projects_git_remote_url_unique").on(e.gitRemoteUrl).where(Jn`${e.gitRemoteUrl} IS NOT NULL`)]),j=yt("project_instructions",{projectId:H("project_id").references(()=>l.id,{onDelete:"cascade"}).notNull(),instructionId:H("instruction_id").references(()=>o.id,{onDelete:"cascade"}).notNull(),addedAt:ve("added_at",{withTimezone:!0}).defaultNow(),addedBy:H("added_by")},e=>[co({columns:[e.projectId,e.instructionId]})]),po=yt("project_checkouts",{projectId:H("project_id").references(()=>l.id,{onDelete:"cascade"}).notNull(),path:B("path").notNull(),isWorktree:Gn("is_worktree").notNull().default(!1),firstSeen:ve("first_seen",{withTimezone:!0}).notNull().defaultNow(),lastSeen:ve("last_seen",{withTimezone:!0}).notNull().defaultNow()},e=>[co({columns:[e.projectId,e.path]}),ht("project_checkouts_path_unique").on(e.path)]);var m=Yn("agent_runs",{id:He("id").primaryKey().defaultRandom(),userId:He("user_id").notNull().references(()=>s.id,{onDelete:"cascade"}),orgId:He("org_id").references(()=>a.id,{onDelete:"set null"}),projectId:He("project_id").references(()=>l.id,{onDelete:"set null"}),projectPath:Z("project_path"),gitRemote:Z("git_remote"),baseBranch:Z("base_branch"),title:Z("title"),prompt:Z("prompt"),toolSpec:_o("tool_spec").notNull().default([]),autoWorktree:Wn("auto_worktree").notNull().default(!0),status:Z("status").notNull().default("pending"),sessionCount:Qn("session_count").notNull().default(0),metadata:_o("metadata").notNull().default({}),createdAt:It("created_at",{withTimezone:!0}).notNull().defaultNow(),updatedAt:It("updated_at",{withTimezone:!0}).notNull().defaultNow(),completedAt:It("completed_at",{withTimezone:!0})},e=>[Tt("idx_agent_runs_user").on(e.userId),Tt("idx_agent_runs_org_created").on(e.orgId,e.createdAt),Tt("idx_agent_runs_project").on(e.projectId)]);import{pgTable as wt,text as y,timestamp as he,jsonb as F,uuid as w,integer as Fe,uniqueIndex as mo,index as h}from"drizzle-orm/pg-core";var u=wt("sessions",{id:w("id").primaryKey().defaultRandom(),userId:w("user_id").notNull().references(()=>s.id,{onDelete:"cascade"}),externalSessionId:y("external_session_id"),projectId:w("project_id").references(()=>l.id,{onDelete:"set null"}),orgId:w("org_id").references(()=>a.id,{onDelete:"set null"}),tool:y("tool").notNull(),projectPath:y("project_path"),gitBranch:y("git_branch"),startedAt:he("started_at",{withTimezone:!0}).notNull(),endedAt:he("ended_at",{withTimezone:!0}),eventCount:Fe("event_count").default(0),tokenUsage:F("token_usage"),analysis:F("analysis"),analyzedAt:he("analyzed_at",{withTimezone:!0}),analyzedEventCount:Fe("analyzed_event_count"),analyzedTurnCount:Fe("analyzed_turn_count"),metadata:F("metadata").default({}),origin:y("origin").notNull().default("unknown"),runId:w("run_id").references(()=>m.id,{onDelete:"set null"}),createdAt:he("created_at",{withTimezone:!0}).defaultNow()},e=>[h("idx_sessions_user").on(e.userId),h("idx_sessions_tool").on(e.tool),h("idx_sessions_started_at").on(e.startedAt),h("idx_sessions_project").on(e.projectId),h("idx_sessions_org_started_at").on(e.orgId,e.startedAt),h("idx_sessions_run").on(e.runId),mo("idx_sessions_user_external").on(e.userId,e.externalSessionId)]),ee=wt("session_events",{id:w("id").primaryKey().defaultRandom(),sessionId:w("session_id").notNull().references(()=>u.id,{onDelete:"cascade"}),sequence:Fe("sequence").notNull(),eventType:y("event_type").notNull(),content:y("content"),toolName:y("tool_name"),toolInput:F("tool_input"),toolOutput:F("tool_output"),tokenUsage:F("token_usage"),model:y("model"),timestamp:he("timestamp",{withTimezone:!0}).notNull(),metadata:F("metadata").default({})},e=>[mo("session_events_session_sequence_idx").on(e.sessionId,e.sequence),h("idx_session_events_session_id").on(e.sessionId),h("idx_session_events_event_type").on(e.eventType),h("idx_session_events_model").on(e.model)]),S=wt("session_instructions",{sessionId:w("session_id").notNull().references(()=>u.id,{onDelete:"cascade"}),instructionId:w("instruction_id").notNull().references(()=>o.id,{onDelete:"cascade"}),linkMethod:y("link_method").notNull()},e=>[h("idx_session_instructions_instruction_id").on(e.instructionId)]);import{boolean as Xn,date as $n,index as At,integer as Zn,jsonb as er,pgTable as bt,text as N,timestamp as P,uniqueIndex as tr,uuid as te}from"drizzle-orm/pg-core";var fo=bt("announcements",{id:te("id").primaryKey().defaultRandom(),version:N("version").notNull().unique(),releaseDate:$n("release_date").notNull(),subject:N("subject").notNull(),htmlBody:N("html_body").notNull(),textBody:N("text_body").notNull(),sections:er("sections").notNull().default({}),status:N("status").notNull().default("draft"),recipientCount:Zn("recipient_count"),sentAt:P("sent_at",{withTimezone:!0}),sentBy:te("sent_by"),error:N("error"),createdAt:P("created_at",{withTimezone:!0}).notNull().defaultNow(),updatedAt:P("updated_at",{withTimezone:!0}).notNull().defaultNow()},e=>[At("idx_announcements_status").on(e.status),At("idx_announcements_created").on(e.createdAt)]),xo=bt("announcement_deliveries",{id:te("id").primaryKey().defaultRandom(),announcementId:te("announcement_id").notNull(),userId:te("user_id").notNull(),email:N("email").notNull(),status:N("status").notNull().default("pending"),providerId:N("provider_id"),error:N("error"),sentAt:P("sent_at",{withTimezone:!0}),createdAt:P("created_at",{withTimezone:!0}).notNull().defaultNow()},e=>[tr("uniq_announcement_deliveries_announcement_user").on(e.announcementId,e.userId),At("idx_announcement_deliveries_user").on(e.userId,e.createdAt)]),go=bt("notification_preferences",{userId:te("user_id").primaryKey(),productAnnouncements:Xn("product_announcements").notNull().default(!0),unsubscribeToken:N("unsubscribe_token").notNull().unique(),unsubscribedAt:P("unsubscribed_at",{withTimezone:!0}),createdAt:P("created_at",{withTimezone:!0}).notNull().defaultNow(),updatedAt:P("updated_at",{withTimezone:!0}).notNull().defaultNow()});import{pgTable as or,text as zt,timestamp as Ge,uuid as Ve,index as No}from"drizzle-orm/pg-core";var A=or("org_invitations",{id:Ve("id").primaryKey().defaultRandom(),orgId:Ve("org_id").notNull().references(()=>a.id,{onDelete:"cascade"}),email:zt("email").notNull(),role:zt("role").notNull().default("member"),teamId:Ve("team_id").references(()=>x.id,{onDelete:"set null"}),invitedBy:Ve("invited_by").notNull().references(()=>s.id),token:zt("token").notNull().unique(),expiresAt:Ge("expires_at",{withTimezone:!0}).notNull(),acceptedAt:Ge("accepted_at",{withTimezone:!0}),revokedAt:Ge("revoked_at",{withTimezone:!0}),createdAt:Ge("created_at",{withTimezone:!0}).notNull().defaultNow()},e=>[No("idx_org_invitations_token").on(e.token),No("idx_org_invitations_org").on(e.orgId)]);import{pgTable as nr,text as rr,timestamp as sr,jsonb as ir,uuid as Dt,index as vo}from"drizzle-orm/pg-core";var oe=nr("instruction_events",{id:Dt("id").primaryKey().defaultRandom(),instructionId:Dt("instruction_id").notNull().references(()=>o.id,{onDelete:"cascade"}),eventType:rr("event_type").notNull(),actorId:Dt("actor_id").notNull(),metadata:ir("metadata"),createdAt:sr("created_at",{withTimezone:!0}).defaultNow()},e=>[vo("idx_instruction_events_instruction").on(e.instructionId),vo("idx_instruction_events_type").on(e.eventType)]);import{pgTable as ar,text as ne,timestamp as kt,uuid as Rt,jsonb as dr,uniqueIndex as ur,index as ho}from"drizzle-orm/pg-core";var Je=ar("session_terminal_targets",{id:Rt("id").primaryKey().defaultRandom(),userId:Rt("user_id").notNull().references(()=>s.id,{onDelete:"cascade"}),sessionId:Rt("session_id").references(()=>u.id,{onDelete:"set null"}),externalSessionId:ne("external_session_id"),kind:ne("kind").notNull(),target:ne("target").notNull(),status:ne("status").notNull().default("active"),attachCommand:ne("attach_command").notNull(),projectPath:ne("project_path"),metadata:dr("metadata").notNull().default({}),lastSeenAt:kt("last_seen_at",{withTimezone:!0}).defaultNow(),createdAt:kt("created_at",{withTimezone:!0}).defaultNow(),updatedAt:kt("updated_at",{withTimezone:!0}).defaultNow()},e=>[ur("idx_session_terminal_targets_user_target").on(e.userId,e.target),ho("idx_session_terminal_targets_session").on(e.sessionId),ho("idx_session_terminal_targets_user_status").on(e.userId,e.status)]);import{boolean as lr,index as Ye,jsonb as yo,pgTable as cr,text as G,timestamp as ye,uuid as Qe,integer as pr}from"drizzle-orm/pg-core";var Io=cr("session_send_jobs",{id:Qe("id").primaryKey().defaultRandom(),userId:Qe("user_id").notNull(),sessionId:Qe("session_id").notNull().references(()=>u.id,{onDelete:"cascade"}),terminalTargetId:Qe("terminal_target_id").references(()=>Je.id,{onDelete:"set null"}),target:G("target").notNull(),message:G("message").notNull(),submit:lr("submit").notNull().default(!0),delivery:G("delivery").notNull().default("live"),status:G("status").notNull().default("pending"),result:yo("result"),error:G("error"),attempts:pr("attempts").notNull().default(0),taskKind:G("task_kind"),payload:yo("payload"),claimedBy:G("claimed_by"),claimedAt:ye("claimed_at",{withTimezone:!0}),leaseExpiresAt:ye("lease_expires_at",{withTimezone:!0}),createdAt:ye("created_at",{withTimezone:!0}).defaultNow(),updatedAt:ye("updated_at",{withTimezone:!0}).defaultNow(),completedAt:ye("completed_at",{withTimezone:!0})},e=>[Ye("idx_session_send_jobs_user").on(e.userId),Ye("idx_session_send_jobs_session").on(e.sessionId),Ye("idx_session_send_jobs_status").on(e.status),Ye("idx_session_send_jobs_pending").on(e.userId,e.status)]);import{pgTable as wo,text as V,timestamp as We,jsonb as Ao,uuid as K,integer as _r,boolean as mr,uniqueIndex as fr,index as To,primaryKey as xr}from"drizzle-orm/pg-core";var v=wo("packs",{id:K("id").primaryKey().defaultRandom(),name:V("name").notNull(),description:V("description").notNull(),scope:V("scope").notNull(),scopeRef:K("scope_ref"),version:V("version").notNull().default("1.0.0"),tags:V("tags").array(),badge:V("badge"),metadata:Ao("metadata"),createdBy:K("created_by"),createdAt:We("created_at",{withTimezone:!0}).defaultNow(),updatedAt:We("updated_at",{withTimezone:!0}).defaultNow(),archived:mr("archived").default(!1),archivedAt:We("archived_at",{withTimezone:!0}),archivedBy:K("archived_by"),forkedFromId:K("forked_from_id").references(()=>v.id,{onDelete:"set null"}),upstreamVersion:V("upstream_version")},e=>[fr("packs_name_scope_ref_idx").on(e.name,e.scope,e.scopeRef),To("idx_packs_scope").on(e.scope,e.scopeRef),To("idx_packs_created_by").on(e.createdBy)]),O=wo("pack_instructions",{packId:K("pack_id").references(()=>v.id,{onDelete:"cascade"}).notNull(),instructionId:K("instruction_id").references(()=>o.id,{onDelete:"cascade"}).notNull(),position:_r("position").notNull().default(0),slotOverrides:Ao("slot_overrides"),addedAt:We("added_at",{withTimezone:!0}).defaultNow(),addedBy:K("added_by")},e=>[xr({columns:[e.packId,e.instructionId]})]);import{pgTable as gr,text as Et,timestamp as Nr,jsonb as vr,uuid as jt,index as re}from"drizzle-orm/pg-core";var se=gr("instruction_usage_events",{id:jt("id").primaryKey().defaultRandom(),instructionId:jt("instruction_id").references(()=>o.id,{onDelete:"set null"}),userId:jt("user_id").notNull(),surface:Et("surface").notNull(),action:Et("action").notNull(),metadata:vr("metadata"),traceId:Et("trace_id"),createdAt:Nr("created_at",{withTimezone:!0}).defaultNow()},e=>[re("idx_usage_events_instruction").on(e.instructionId),re("idx_usage_events_user").on(e.userId),re("idx_usage_events_surface").on(e.surface),re("idx_usage_events_action").on(e.action),re("idx_usage_events_created_at").on(e.createdAt),re("idx_usage_events_user_created").on(e.userId,e.createdAt)]);import{pgTable as hr,text as Xe,timestamp as bo,jsonb as yr,uuid as zo,index as St}from"drizzle-orm/pg-core";var Do=hr("worker_connections",{id:zo("id").primaryKey().defaultRandom(),userId:zo("user_id").notNull(),workerType:Xe("worker_type").notNull().default("mcp"),clientName:Xe("client_name").notNull(),clientVersion:Xe("client_version"),workerVersion:Xe("worker_version"),lastHeartbeat:bo("last_heartbeat",{withTimezone:!0}).notNull().defaultNow(),connectedAt:bo("connected_at",{withTimezone:!0}).notNull().defaultNow(),metadata:yr("metadata")},e=>[St("idx_worker_connections_user").on(e.userId),St("idx_worker_connections_heartbeat").on(e.userId,e.lastHeartbeat),St("idx_worker_connections_type").on(e.userId,e.workerType)]);import{pgTable as Ir,text as $e,timestamp as Tr,jsonb as wr,uuid as ko,index as Ro}from"drizzle-orm/pg-core";var Eo=Ir("cli_setup_events",{id:ko("id").primaryKey().defaultRandom(),userId:ko("user_id").notNull(),deviceId:$e("device_id").notNull(),event:$e("event").notNull(),cliVersion:$e("cli_version"),os:$e("os"),props:wr("props").notNull().default({}),createdAt:Tr("created_at",{withTimezone:!0}).notNull().defaultNow()},e=>[Ro("idx_cli_setup_events_user").on(e.userId,e.createdAt),Ro("idx_cli_setup_events_device").on(e.deviceId,e.createdAt)]);import{pgTable as Ar,text as J,integer as br,boolean as zr,timestamp as Dr,jsonb as kr,uuid as Rr,index as jo}from"drizzle-orm/pg-core";var So=Ar("cli_error_events",{id:Rr("id").primaryKey().defaultRandom(),deviceId:J("device_id"),event:J("event").notNull(),command:J("command"),statusCode:br("status_code"),message:J("message"),cliVersion:J("cli_version"),os:J("os"),nodeVersion:J("node_version"),proxied:zr("proxied"),props:kr("props").notNull().default({}),createdAt:Dr("created_at",{withTimezone:!0}).notNull().defaultNow()},e=>[jo("idx_cli_error_events_created").on(e.createdAt),jo("idx_cli_error_events_device").on(e.deviceId,e.createdAt)]);import{pgTable as Ze,text as b,timestamp as ie,jsonb as I,uuid as T,integer as Ie,index as z}from"drizzle-orm/pg-core";var n=Ze("eval_targets",{id:T("id").primaryKey().defaultRandom(),userId:T("user_id").notNull(),name:b("name").notNull(),type:b("type").notNull(),content:b("content").notNull(),description:b("description").notNull().default(""),metadata:I("metadata").notNull().default({}),version:Ie("version").notNull().default(1),parentId:T("parent_id").references(()=>n.id,{onDelete:"set null"}),createdAt:ie("created_at",{withTimezone:!0}).defaultNow(),updatedAt:ie("updated_at",{withTimezone:!0}).defaultNow()},e=>[z("eval_targets_name_user_idx").on(e.name,e.userId),z("idx_eval_targets_user").on(e.userId),z("idx_eval_targets_type").on(e.type),z("idx_eval_targets_parent").on(e.parentId)]),D=Ze("evals",{id:T("id").primaryKey().defaultRandom(),evalTargetId:T("eval_target_id").notNull().references(()=>n.id,{onDelete:"cascade"}),name:b("name").notNull(),prompt:b("prompt").notNull(),expectedOutput:b("expected_output").notNull().default(""),files:I("files").notNull().default([]),expectations:I("expectations").notNull().default([]),createdAt:ie("created_at",{withTimezone:!0}).defaultNow(),updatedAt:ie("updated_at",{withTimezone:!0}).defaultNow()},e=>[z("idx_evals_target").on(e.evalTargetId)]),C=Ze("eval_runs",{id:T("id").primaryKey().defaultRandom(),evalId:T("eval_id").notNull().references(()=>D.id,{onDelete:"cascade"}),evalTargetId:T("eval_target_id").notNull().references(()=>n.id,{onDelete:"cascade"}),evalTargetVersion:Ie("eval_target_version").notNull(),configuration:b("configuration").notNull(),runNumber:Ie("run_number").notNull().default(1),iteration:Ie("iteration").notNull().default(1),status:b("status").notNull().default("completed"),outputs:I("outputs").notNull().default({}),timing:I("timing").notNull().default({}),grading:I("grading").notNull().default({}),comparison:I("comparison"),createdAt:ie("created_at",{withTimezone:!0}).defaultNow()},e=>[z("idx_eval_runs_eval").on(e.evalId),z("idx_eval_runs_target").on(e.evalTargetId),z("idx_eval_runs_iteration").on(e.evalTargetId,e.iteration)]),ae=Ze("benchmarks",{id:T("id").primaryKey().defaultRandom(),evalTargetId:T("eval_target_id").notNull().references(()=>n.id,{onDelete:"cascade"}),iteration:Ie("iteration").notNull().default(1),runSummary:I("run_summary").notNull().default({}),notes:I("notes").notNull().default([]),feedback:I("feedback"),createdAt:ie("created_at",{withTimezone:!0}).defaultNow()},e=>[z("idx_benchmarks_target").on(e.evalTargetId)]);import{pgTable as Ko,text as Pt,timestamp as Kt,jsonb as Oo,uuid as de,integer as Te,index as et,real as Po}from"drizzle-orm/pg-core";var ue=Ko("trigger_evals",{id:de("id").primaryKey().defaultRandom(),evalTargetId:de("eval_target_id").notNull().references(()=>n.id,{onDelete:"cascade"}),userId:de("user_id").notNull(),queries:Oo("queries").notNull().default([]),status:Pt("status").notNull().default("pending_review"),trainIndices:Te("train_indices").array().default([]),testIndices:Te("test_indices").array().default([]),createdAt:Kt("created_at",{withTimezone:!0}).defaultNow(),updatedAt:Kt("updated_at",{withTimezone:!0}).defaultNow()},e=>[et("idx_trigger_evals_target").on(e.evalTargetId),et("idx_trigger_evals_user").on(e.userId)]),le=Ko("optimization_runs",{id:de("id").primaryKey().defaultRandom(),evalTargetId:de("eval_target_id").notNull().references(()=>n.id,{onDelete:"cascade"}),userId:de("user_id").notNull(),type:Pt("type").notNull(),iteration:Te("iteration").notNull(),inputVersion:Te("input_version").notNull(),outputVersion:Te("output_version"),trainScore:Po("train_score"),testScore:Po("test_score"),analysis:Oo("analysis").notNull().default({}),status:Pt("status").notNull().default("running"),createdAt:Kt("created_at",{withTimezone:!0}).defaultNow()},e=>[et("idx_optimization_runs_target").on(e.evalTargetId),et("idx_optimization_runs_user").on(e.userId)]);import{pgTable as Er,text as q,timestamp as jr,jsonb as we,uuid as Ot,integer as Ct,real as Sr,index as Ae,uniqueIndex as Co}from"drizzle-orm/pg-core";var M=Er("context_snapshots",{id:Ot("id").primaryKey().defaultRandom(),sessionId:Ot("session_id").references(()=>u.id,{onDelete:"cascade"}),userId:Ot("user_id").notNull().references(()=>s.id,{onDelete:"cascade"}),sequence:Ct("sequence").notNull().default(0),provider:q("provider").notNull(),model:q("model").notNull(),systemPrompt:q("system_prompt").notNull(),injectedInstructions:we("injected_instructions").notNull().default([]),messagesSummary:we("messages_summary").notNull(),tools:we("tools").notNull().default([]),systemHash:q("system_hash").notNull(),requestHash:q("request_hash").notNull().default(""),toolsHash:q("tools_hash"),injectedHash:q("injected_hash"),messagesDelta:we("messages_delta").default([]),messagesDeltaRef:q("messages_delta_ref"),maxTokens:Ct("max_tokens"),temperature:Sr("temperature"),estimatedTokens:Ct("estimated_tokens"),capturedAt:jr("captured_at",{withTimezone:!0}).notNull().defaultNow(),metadata:we("metadata").default({})},e=>[Ae("idx_context_snapshots_session").on(e.sessionId),Ae("idx_context_snapshots_user").on(e.userId),Ae("idx_context_snapshots_hash").on(e.systemHash),Ae("idx_context_snapshots_request_hash").on(e.requestHash),Co("idx_snapshots_session_request").on(e.sessionId,e.requestHash),Co("idx_snapshots_session_sequence").on(e.sessionId,e.sequence),Ae("idx_context_snapshots_user_session_captured").on(e.userId,e.sessionId,e.capturedAt.desc())]);import{pgTable as Pr,text as qo,timestamp as Kr,jsonb as Or,integer as Cr,index as qr}from"drizzle-orm/pg-core";var Mo=Pr("content_blobs",{hash:qo("hash").primaryKey(),contentType:qo("content_type").notNull(),content:Or("content").notNull(),sizeBytes:Cr("size_bytes").notNull().default(0),createdAt:Kr("created_at",{withTimezone:!0}).defaultNow()},e=>[qr("idx_content_blobs_type").on(e.contentType)]);import{pgTable as Mr,text as tt,timestamp as be,jsonb as ot,uuid as qt,index as nt,integer as Lr}from"drizzle-orm/pg-core";var ce=Mr("eval_jobs",{id:qt("id").primaryKey().defaultRandom(),userId:qt("user_id").notNull(),evalTargetId:qt("eval_target_id").notNull().references(()=>n.id,{onDelete:"cascade"}),status:tt("status").notNull().default("pending"),config:ot("config").notNull().default({}),progress:ot("progress").notNull().default({}),result:ot("result"),error:tt("error"),attempts:Lr("attempts").notNull().default(0),taskKind:tt("task_kind"),payload:ot("payload"),claimedBy:tt("claimed_by"),claimedAt:be("claimed_at",{withTimezone:!0}),leaseExpiresAt:be("lease_expires_at",{withTimezone:!0}),createdAt:be("created_at",{withTimezone:!0}).defaultNow(),updatedAt:be("updated_at",{withTimezone:!0}).defaultNow(),completedAt:be("completed_at",{withTimezone:!0})},e=>[nt("idx_eval_jobs_user").on(e.userId),nt("idx_eval_jobs_target").on(e.evalTargetId),nt("idx_eval_jobs_status").on(e.status),nt("idx_eval_jobs_pending").on(e.userId,e.status)]);import{pgTable as Ur,text as ze,timestamp as De,jsonb as Lo,uuid as Uo,integer as Br,index as Bo}from"drizzle-orm/pg-core";var Ho=Ur("agent_jobs",{id:Uo("id").primaryKey().defaultRandom(),userId:Uo("user_id").notNull(),taskKind:ze("task_kind").notNull(),status:ze("status").notNull().default("pending"),payload:Lo("payload").notNull(),dedupeKey:ze("dedupe_key"),result:Lo("result"),error:ze("error"),attempts:Br("attempts").notNull().default(0),claimedBy:ze("claimed_by"),claimedAt:De("claimed_at",{withTimezone:!0}),leaseExpiresAt:De("lease_expires_at",{withTimezone:!0}),createdAt:De("created_at",{withTimezone:!0}).notNull().defaultNow(),updatedAt:De("updated_at",{withTimezone:!0}).notNull().defaultNow(),completedAt:De("completed_at",{withTimezone:!0})},e=>[Bo("idx_agent_jobs_claim").on(e.userId,e.status,e.taskKind,e.createdAt),Bo("idx_agent_jobs_dedupe").on(e.userId,e.taskKind,e.dedupeKey)]);import{pgTable as Hr,text as ke,timestamp as Re,jsonb as rt,uuid as Mt,index as st,integer as Fr}from"drizzle-orm/pg-core";var Fo=Hr("insights_jobs",{id:Mt("id").primaryKey().defaultRandom(),userId:Mt("user_id").notNull(),status:ke("status").notNull().default("pending"),projectPath:ke("project_path"),projectId:Mt("project_id").references(()=>l.id,{onDelete:"set null"}),config:rt("config").notNull().default({}),progress:rt("progress").notNull().default({}),result:rt("result"),error:ke("error"),attempts:Fr("attempts").notNull().default(0),taskKind:ke("task_kind"),payload:rt("payload"),claimedBy:ke("claimed_by"),claimedAt:Re("claimed_at",{withTimezone:!0}),leaseExpiresAt:Re("lease_expires_at",{withTimezone:!0}),createdAt:Re("created_at",{withTimezone:!0}).defaultNow(),updatedAt:Re("updated_at",{withTimezone:!0}).defaultNow(),completedAt:Re("completed_at",{withTimezone:!0})},e=>[st("idx_insights_jobs_user").on(e.userId),st("idx_insights_jobs_status").on(e.status),st("idx_insights_jobs_pending").on(e.userId,e.status),st("idx_insights_jobs_project").on(e.projectId)]);import{pgTable as Gr,text as Lt,timestamp as it,uuid as Go,index as Vr,uniqueIndex as Jr}from"drizzle-orm/pg-core";var pe=Gr("api_keys",{id:Go("id").primaryKey().defaultRandom(),userId:Go("user_id").notNull().references(()=>s.id,{onDelete:"cascade"}),name:Lt("name").notNull(),keyHash:Lt("key_hash").notNull(),keyPrefix:Lt("key_prefix").notNull(),lastUsedAt:it("last_used_at",{withTimezone:!0}),expiresAt:it("expires_at",{withTimezone:!0}),revokedAt:it("revoked_at",{withTimezone:!0}),createdAt:it("created_at",{withTimezone:!0}).defaultNow()},e=>[Vr("idx_api_keys_user").on(e.userId),Jr("idx_api_keys_hash").on(e.keyHash)]);import{pgTable as Yr,text as Ut,timestamp as Vo,uuid as Qr,index as Wr}from"drizzle-orm/pg-core";var Jo=Yr("extension_auth_codes",{code:Ut("code").primaryKey(),userId:Qr("user_id").notNull().references(()=>s.id,{onDelete:"cascade"}),editor:Ut("editor"),email:Ut("email"),expiresAt:Vo("expires_at",{withTimezone:!0}).notNull(),createdAt:Vo("created_at",{withTimezone:!0}).defaultNow()},e=>[Wr("idx_ext_auth_codes_expiry").on(e.expiresAt)]);import{pgTable as Xr,text as $r,timestamp as Yo,jsonb as Zr,uuid as Bt,index as Qo}from"drizzle-orm/pg-core";var _e=Xr("eval_conversations",{id:Bt("id").primaryKey().defaultRandom(),evalTargetId:Bt("eval_target_id").notNull().references(()=>n.id,{onDelete:"cascade"}),userId:Bt("user_id").notNull(),messages:Zr("messages").notNull().default([]),status:$r("status").notNull().default("active"),createdAt:Yo("created_at",{withTimezone:!0}).defaultNow(),updatedAt:Yo("updated_at",{withTimezone:!0}).defaultNow()},e=>[Qo("idx_eval_conversations_target").on(e.evalTargetId),Qo("idx_eval_conversations_user").on(e.userId)]);import{pgTable as es,text as k,timestamp as Wo,jsonb as ts,uuid as Ht}from"drizzle-orm/pg-core";var Xo=es("skill_submissions",{id:Ht("id").primaryKey().defaultRandom(),skillId:k("skill_id").notNull(),name:k("name").notNull(),description:k("description").notNull(),category:k("category").notNull(),tools:k("tools").array().notNull(),tags:k("tags").array().default([]),content:k("content").notNull(),status:k("status").notNull().default("pending"),submittedBy:Ht("submitted_by").notNull(),reviewedBy:Ht("reviewed_by"),reviewNote:k("review_note"),metadata:ts("metadata"),createdAt:Wo("created_at",{withTimezone:!0}).defaultNow(),updatedAt:Wo("updated_at",{withTimezone:!0}).defaultNow()});import{pgTable as os,text as Ee,timestamp as $o,jsonb as ns,uuid as rs,uniqueIndex as ss,index as Zo}from"drizzle-orm/pg-core";var en=os("harness_releases",{id:rs("id").primaryKey().defaultRandom(),harness:Ee("harness").notNull(),version:Ee("version").notNull(),publishedAt:$o("published_at",{withTimezone:!0}).notNull(),title:Ee("title"),body:Ee("body"),categories:ns("categories").default({}),url:Ee("url"),createdAt:$o("created_at",{withTimezone:!0}).defaultNow()},e=>[ss("idx_harness_releases_unique").on(e.harness,e.version),Zo("idx_harness_releases_harness").on(e.harness),Zo("idx_harness_releases_published").on(e.publishedAt)]);import{pgTable as is,text as me,timestamp as tn,jsonb as as,uuid as on,index as nn,uniqueIndex as ds}from"drizzle-orm/pg-core";var Ft=is("notifications",{id:on("id").primaryKey().defaultRandom(),userId:on("user_id").notNull(),type:me("type").notNull(),title:me("title").notNull(),body:me("body"),url:me("url"),sourceTable:me("source_table"),sourceId:me("source_id"),metadata:as("metadata").notNull().default({}),readAt:tn("read_at",{withTimezone:!0}),createdAt:tn("created_at",{withTimezone:!0}).notNull().defaultNow()},e=>[nn("idx_notifications_user_created").on(e.userId,e.createdAt),nn("idx_notifications_user_unread").on(e.userId),ds("idx_notifications_source_dedup").on(e.userId,e.sourceTable,e.sourceId)]);import{pgTable as us,text as je,timestamp as Se,jsonb as Gt,uuid as Vt,index as at,integer as ls}from"drizzle-orm/pg-core";var fe=us("launch_jobs",{id:Vt("id").primaryKey().defaultRandom(),userId:Vt("user_id").notNull(),tool:je("tool").notNull(),status:je("status").notNull().default("pending"),config:Gt("config").notNull().default({}),result:Gt("result"),error:je("error"),attempts:ls("attempts").notNull().default(0),taskKind:je("task_kind"),payload:Gt("payload"),claimedBy:je("claimed_by"),claimedAt:Se("claimed_at",{withTimezone:!0}),leaseExpiresAt:Se("lease_expires_at",{withTimezone:!0}),createdAt:Se("created_at",{withTimezone:!0}).defaultNow(),updatedAt:Se("updated_at",{withTimezone:!0}).defaultNow(),completedAt:Se("completed_at",{withTimezone:!0}),runId:Vt("run_id").references(()=>m.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 rn,uuid as R,text as Pe,real as cs,timestamp as dt,boolean as ps,uniqueIndex as _s,index as Ke}from"drizzle-orm/pg-core";var Jt=rn("instruction_suggestions",{id:R("id").primaryKey().defaultRandom(),userId:R("user_id").notNull().references(()=>s.id,{onDelete:"cascade"}),instructionId:R("instruction_id").notNull().references(()=>o.id,{onDelete:"cascade"}),projectPath:Pe("project_path").notNull(),projectId:R("project_id").references(()=>l.id,{onDelete:"set null"}),score:cs("score").notNull(),reason:Pe("reason").notNull(),generatedAt:dt("generated_at",{withTimezone:!0}).notNull().defaultNow(),isStale:ps("is_stale").notNull().default(!1),dismissedAt:dt("dismissed_at",{withTimezone:!0}),acceptedAt:dt("accepted_at",{withTimezone:!0}),promotedToInstructionId:R("promoted_to_instruction_id").references(()=>o.id,{onDelete:"set null"})},e=>[_s("idx_instruction_suggestions_user_project_instruction").on(e.userId,e.projectPath,e.instructionId),Ke("idx_instruction_suggestions_user_project").on(e.userId,e.projectPath),Ke("idx_instruction_suggestions_user_proj_id").on(e.userId,e.projectId),Ke("idx_instruction_suggestions_generated_at").on(e.generatedAt)]),sn=rn("instruction_suggestion_events",{id:R("id").primaryKey().defaultRandom(),suggestionId:R("suggestion_id").notNull().references(()=>Jt.id,{onDelete:"cascade"}),userId:R("user_id").notNull().references(()=>s.id,{onDelete:"cascade"}),eventType:Pe("event_type").notNull(),tool:Pe("tool"),sessionId:R("session_id"),projectPath:Pe("project_path").notNull(),createdAt:dt("created_at",{withTimezone:!0}).notNull().defaultNow()},e=>[Ke("idx_instruction_suggestion_events_suggestion_id").on(e.suggestionId),Ke("idx_instruction_suggestion_events_user_id").on(e.userId)]);import{pgTable as ms,text as Yt,integer as fs,numeric as Oe,timestamp as Qt,index as xs,primaryKey as gs}from"drizzle-orm/pg-core";var an=ms("model_pricing",{provider:Yt("provider").notNull(),modelId:Yt("model_id").notNull(),inputPerM:Oe("input_per_m").notNull(),outputPerM:Oe("output_per_m").notNull(),cacheReadPerM:Oe("cache_read_per_m").notNull(),cacheWrite5mPerM:Oe("cache_write_5m_per_m").notNull(),cacheWrite1hPerM:Oe("cache_write_1h_per_m").notNull(),contextWindow:fs("context_window"),effectiveFrom:Qt("effective_from",{withTimezone:!0}).notNull(),effectiveUntil:Qt("effective_until",{withTimezone:!0}),source:Yt("source").notNull(),verifiedAt:Qt("verified_at",{withTimezone:!0})},e=>[gs({columns:[e.provider,e.modelId,e.effectiveFrom]}),xs("idx_model_pricing_active").on(e.provider,e.modelId,e.effectiveFrom.desc())]);import{pgTable as Ns,text as Y,numeric as dn,timestamp as un,uuid as ln,jsonb as vs,index as cn}from"drizzle-orm/pg-core";var pn=Ns("limit_observations",{id:ln("id").primaryKey().defaultRandom(),observedAt:un("observed_at",{withTimezone:!0}).notNull().defaultNow(),provider:Y("provider").notNull(),plan:Y("plan").notNull(),limitType:Y("limit_type").notNull(),value:dn("value").notNull(),unit:Y("unit").notNull(),comparator:Y("comparator").notNull().default("="),resetsAt:un("resets_at",{withTimezone:!0}),sourceType:Y("source_type").notNull(),sourceUrl:Y("source_url"),sourceEvidence:vs("source_evidence"),confidence:dn("confidence").notNull(),userId:ln("user_id")},e=>[cn("idx_limit_obs_lookup").on(e.provider,e.plan,e.limitType,e.observedAt.desc()),cn("idx_limit_obs_user").on(e.userId,e.observedAt.desc())]);import{pgTable as hs,text as ut,timestamp as ys,uuid as Is,jsonb as Ts,boolean as ws,uniqueIndex as As}from"drizzle-orm/pg-core";var _n=hs("provider_docs_snapshots",{id:Is("id").primaryKey().defaultRandom(),fetchedAt:ys("fetched_at",{withTimezone:!0}).notNull().defaultNow(),provider:ut("provider").notNull(),docUrl:ut("doc_url").notNull(),contentHash:ut("content_hash").notNull(),content:ut("content").notNull(),parseSuccess:ws("parse_success").notNull(),parseErrors:Ts("parse_errors")},e=>[As("idx_docs_dedup").on(e.provider,e.docUrl,e.contentHash)]);import{pgTable as bs,text as lt,numeric as mn,timestamp as fn,uuid as zs,primaryKey as Ds,index as ks}from"drizzle-orm/pg-core";var xn=bs("plan_limits_active",{provider:lt("provider").notNull(),plan:lt("plan").notNull(),limitType:lt("limit_type").notNull(),value:mn("value").notNull(),unit:lt("unit").notNull(),effectiveFrom:fn("effective_from",{withTimezone:!0}).notNull(),effectiveUntil:fn("effective_until",{withTimezone:!0}),confidence:mn("confidence").notNull(),sourceObservationIds:zs("source_observation_ids").array().notNull()},e=>[Ds({columns:[e.provider,e.plan,e.limitType,e.effectiveFrom]}),ks("idx_plan_limits_lookup").on(e.provider,e.plan,e.limitType,e.effectiveFrom.desc())]);import{pgTable as Rs,text as Wt,timestamp as Es,uuid as gn,jsonb as js,index as Ss}from"drizzle-orm/pg-core";var Nn=Rs("alert_dispatches",{id:gn("id").primaryKey().defaultRandom(),userId:gn("user_id").notNull(),alertKey:Wt("alert_key").notNull(),severity:Wt("severity").notNull(),lastDispatchedAt:Es("last_dispatched_at",{withTimezone:!0}).notNull().defaultNow(),lastState:js("last_state").notNull(),channel:Wt("channel").notNull()},e=>[Ss("idx_alert_user_key").on(e.userId,e.alertKey,e.lastDispatchedAt.desc())]);import{drizzle as Tn}from"drizzle-orm/postgres-js";import wn from"postgres";var ct={};Bn(ct,{agentJobs:()=>Ho,agentRuns:()=>m,agentRunsRelations:()=>Js,alertDispatches:()=>Nn,announcementDeliveries:()=>xo,announcements:()=>fo,apiKeys:()=>pe,apiKeysRelations:()=>Ks,benchmarks:()=>ae,benchmarksRelations:()=>ni,cliErrorEvents:()=>So,cliSetupEvents:()=>Eo,contentBlobs:()=>Mo,contextSnapshots:()=>M,contextSnapshotsRelations:()=>di,evalConversations:()=>_e,evalConversationsRelations:()=>ai,evalJobs:()=>ce,evalJobsRelations:()=>ii,evalRuns:()=>C,evalRunsRelations:()=>oi,evalTargets:()=>n,evalTargetsRelations:()=>ei,evals:()=>D,evalsRelations:()=>ti,extensionAuthCodes:()=>Jo,harnessReleases:()=>en,insightsJobs:()=>Fo,instructionEvents:()=>oe,instructionEventsRelations:()=>Bs,instructionSuggestionEvents:()=>sn,instructionSuggestions:()=>Jt,instructionUsageEvents:()=>se,instructionUsageEventsRelations:()=>Zs,instructionVersions:()=>$,instructionVersionsRelations:()=>Hs,instructions:()=>o,instructionsRelations:()=>Us,launchJobs:()=>fe,launchJobsRelations:()=>Ys,limitObservations:()=>pn,modelPricing:()=>an,notificationPreferences:()=>go,notifications:()=>Ft,optimizationRuns:()=>le,optimizationRunsRelations:()=>si,orgInvitations:()=>A,orgInvitationsRelations:()=>qs,organizations:()=>a,organizationsRelations:()=>Os,packInstructions:()=>O,packInstructionsRelations:()=>$s,packs:()=>v,packsRelations:()=>Xs,planLimitsActive:()=>xn,profiles:()=>s,profilesRelations:()=>Ps,projectCheckouts:()=>po,projectInstructions:()=>j,projectInstructionsRelations:()=>Gs,projects:()=>l,projectsRelations:()=>Fs,providerDocsSnapshots:()=>_n,sessionEvents:()=>ee,sessionEventsRelations:()=>Qs,sessionInstructions:()=>S,sessionInstructionsRelations:()=>Ws,sessionSendJobs:()=>Io,sessionTerminalTargets:()=>Je,sessions:()=>u,sessionsRelations:()=>Vs,skillSubmissions:()=>Xo,teams:()=>x,teamsRelations:()=>Cs,triggerEvals:()=>ue,triggerEvalsRelations:()=>ri,userOrganizations:()=>W,userOrganizationsRelations:()=>Ms,userTeams:()=>X,userTeamsRelations:()=>Ls,workerConnections:()=>Do});import{relations as i}from"drizzle-orm";var Ps=i(s,({many:e})=>({sessions:e(u),contextSnapshots:e(M),apiKeys:e(pe)})),Ks=i(pe,({one:e})=>({profile:e(s,{fields:[pe.userId],references:[s.id]})})),Os=i(a,({many:e})=>({teams:e(x),userOrganizations:e(W),projects:e(l),invitations:e(A)})),Cs=i(x,({one:e,many:t})=>({organization:e(a,{fields:[x.orgId],references:[a.id]}),userTeams:t(X),invitations:t(A)})),qs=i(A,({one:e})=>({organization:e(a,{fields:[A.orgId],references:[a.id]}),team:e(x,{fields:[A.teamId],references:[x.id]}),inviter:e(s,{fields:[A.invitedBy],references:[s.id]})})),Ms=i(W,({one:e})=>({organization:e(a,{fields:[W.orgId],references:[a.id]})})),Ls=i(X,({one:e})=>({team:e(x,{fields:[X.teamId],references:[x.id]})})),Us=i(o,({one:e,many:t})=>({versions:t($),projectInstructions:t(j),events:t(oe),usageEvents:t(se),sessionInstructions:t(S),packInstructions:t(O),forkedFrom:e(o,{fields:[o.forkedFromId],references:[o.id]})})),Bs=i(oe,({one:e})=>({instruction:e(o,{fields:[oe.instructionId],references:[o.id]})})),Hs=i($,({one:e})=>({instruction:e(o,{fields:[$.instructionId],references:[o.id]})})),Fs=i(l,({one:e,many:t})=>({organization:e(a,{fields:[l.orgId],references:[a.id]}),projectInstructions:t(j),sessions:t(u)})),Gs=i(j,({one:e})=>({project:e(l,{fields:[j.projectId],references:[l.id]}),instruction:e(o,{fields:[j.instructionId],references:[o.id]})})),Vs=i(u,({one:e,many:t})=>({profile:e(s,{fields:[u.userId],references:[s.id]}),project:e(l,{fields:[u.projectId],references:[l.id]}),run:e(m,{fields:[u.runId],references:[m.id]}),events:t(ee),sessionInstructions:t(S),contextSnapshots:t(M)})),Js=i(m,({one:e,many:t})=>({profile:e(s,{fields:[m.userId],references:[s.id]}),organization:e(a,{fields:[m.orgId],references:[a.id]}),project:e(l,{fields:[m.projectId],references:[l.id]}),sessions:t(u),launchJobs:t(fe)})),Ys=i(fe,({one:e})=>({run:e(m,{fields:[fe.runId],references:[m.id]})})),Qs=i(ee,({one:e})=>({session:e(u,{fields:[ee.sessionId],references:[u.id]})})),Ws=i(S,({one:e})=>({session:e(u,{fields:[S.sessionId],references:[u.id]}),instruction:e(o,{fields:[S.instructionId],references:[o.id]})})),Xs=i(v,({one:e,many:t})=>({packInstructions:t(O),forkedFrom:e(v,{fields:[v.forkedFromId],references:[v.id]})})),$s=i(O,({one:e})=>({pack:e(v,{fields:[O.packId],references:[v.id]}),instruction:e(o,{fields:[O.instructionId],references:[o.id]})})),Zs=i(se,({one:e})=>({instruction:e(o,{fields:[se.instructionId],references:[o.id]})})),ei=i(n,({one:e,many:t})=>({parent:e(n,{fields:[n.parentId],references:[n.id]}),evals:t(D),evalRuns:t(C),benchmarks:t(ae),triggerEvals:t(ue),optimizationRuns:t(le),evalJobs:t(ce),evalConversations:t(_e)})),ti=i(D,({one:e,many:t})=>({evalTarget:e(n,{fields:[D.evalTargetId],references:[n.id]}),runs:t(C)})),oi=i(C,({one:e})=>({eval:e(D,{fields:[C.evalId],references:[D.id]}),evalTarget:e(n,{fields:[C.evalTargetId],references:[n.id]})})),ni=i(ae,({one:e})=>({evalTarget:e(n,{fields:[ae.evalTargetId],references:[n.id]})})),ri=i(ue,({one:e})=>({evalTarget:e(n,{fields:[ue.evalTargetId],references:[n.id]})})),si=i(le,({one:e})=>({evalTarget:e(n,{fields:[le.evalTargetId],references:[n.id]})})),ii=i(ce,({one:e})=>({evalTarget:e(n,{fields:[ce.evalTargetId],references:[n.id]})})),ai=i(_e,({one:e})=>({evalTarget:e(n,{fields:[_e.evalTargetId],references:[n.id]})})),di=i(M,({one:e})=>({session:e(u,{fields:[M.sessionId],references:[u.id]}),profile:e(s,{fields:[M.userId],references:[s.id]})}));var Ce=0,vn=0,qe=0,hn=0;var ui=0;function Xt(){Ce++,Ce>vn&&(vn=Ce)}p(Xt,"trackDbOpStart");function $t(){Ce>0&&Ce--}p($t,"trackDbOpEnd");function Zt(){qe++,qe>hn&&(hn=qe)}p(Zt,"trackHeavyDbOpStart");function eo(){qe>0&&qe--}p(eo,"trackHeavyDbOpEnd");function yn(){ui++}p(yn,"recordQueryDeadline");var _t,ft,to=!1,pt;var In,xt,mt;function An(e){let t=process.env[e];if(!t)throw new Error(`Missing required env var: ${e}`);return t}p(An,"getEnv");function bn(){if(to)throw new Error("getDb() called after closeDb(): the connection pool is closed for shutdown. Stop issuing queries (timers/requests) before draining the pool.");if(!_t){let e=process.env.PG_APPLICATION_NAME||"rulemetric",t=Number(process.env.PG_POOL_MAX)||3,r=Number(process.env.PG_CONNECT_TIMEOUT_S)||10,d=Number(process.env.PG_STATEMENT_TIMEOUT_MS)||0,c=Number(process.env.PG_IDLE_TIMEOUT)||5,_=Number(process.env.PG_KEEP_ALIVE_S)||60;ft=wn(An("DATABASE_URL"),{prepare:!1,max:t,connect_timeout:r,idle_timeout:c,keep_alive:_,max_lifetime:300,connection:{application_name:e,...d>0?{statement_timeout:d}:{}}}),_t=Tn(ft,{schema:ct})}return _t}p(bn,"getDb");function zn(){if(to)throw new Error("getHeavyDb() called after closeDb(): the connection pool is closed for shutdown. Stop issuing queries (timers/requests) before draining the pool.");if(!mt){let e=(process.env.PG_APPLICATION_NAME||"rulemetric")+":heavy",t=Number(process.env.PG_HEAVY_POOL_MAX)||2;xt=wn(An("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}}),mt=Tn(xt,{schema:ct})}return mt}p(zn,"getHeavyDb");async function li(){if(pt)return pt;to=!0;let e=ft,t=In,r=xt;return ft=void 0,_t=void 0,In=void 0,xt=void 0,mt=void 0,pt=Promise.allSettled([e?e.end({timeout:5}):Promise.resolve(),t?t.end({timeout:5}):Promise.resolve(),r?r.end({timeout:5}):Promise.resolve()]).then(()=>{}),pt}p(li,"closeDb");var ci=new Set(["CONNECT_TIMEOUT","ETIMEDOUT","ENOTFOUND","ECONNREFUSED","EAI_AGAIN"]);function Dn(e){let t=e,r=t?.code??t?.cause?.code??t?.errno;return r!==void 0&&ci.has(r)}p(Dn,"isRetryableConnectError");var pi=new Set(["CONNECTION_CLOSED","ECONNRESET","EPIPE"]);function kn(e){let t=e,r=t?.code??t?.cause?.code??t?.errno;return r!==void 0&&pi.has(r)}p(kn,"isRetryableResetError");async function Rn(e,t={}){let r=t.attempts??3,d=t.baseMs??100,c;for(let _=0;_<r;_++)try{return await e()}catch(g){c=g;let xe=Dn(g)||t.retryResets===!0&&kn(g);if(_===r-1||!xe)throw g;await new Promise(L=>setTimeout(L,d*2**_))}throw c}p(Rn,"withDbRetry");var gt=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 En(){let e=Number(process.env.PG_QUERY_DEADLINE_MS);return Number.isFinite(e)&&e>=0?e:2e4}p(En,"queryDeadlineMs");function _i(e,t){let r,d=new Promise((c,_)=>{r=setTimeout(()=>{yn(),_(new gt(t))},t);let g=r;typeof g.unref=="function"&&g.unref()});return Promise.race([e,d]).finally(()=>clearTimeout(r))}p(_i,"raceWithDeadline");var jn=new Set(["select","selectDistinct","selectDistinctOn","insert","update","delete","execute","with","$count","refreshMaterializedView"]),Sn=new Set(["select","selectDistinct","selectDistinctOn","$count"]);function oo(e,t=!1,r=0,d=!1){return e===null||typeof e!="object"&&typeof e!="function"?e:new Proxy(e,{get(c,_,g){if(_==="then"){let L=Reflect.get(c,_,g);return typeof L!="function"?L:(On,Cn)=>{let qn=d?Zt:Xt,Mn=d?eo:$t;qn();let no=Rn(()=>new Promise((Ln,Un)=>L.call(c,Ln,Un)),{retryResets:t});return(r>0?_i(no,r):no).finally(Mn).then(On,Cn)}}let xe=Reflect.get(c,_,g);return typeof xe=="function"?(...L)=>oo(xe.apply(c,L),t,r,d):xe}})}p(oo,"wrapBuilder");function Pn(e,t=!1){let r=t?Zt:Xt,d=t?eo:$t;r();try{return Promise.resolve(e()).finally(d)}catch(c){throw d(),c}}p(Pn,"gaugeTransaction");var Kn=new Proxy({},{get(e,t){let r=bn(),d=r[t];if(typeof t=="string"&&jn.has(t)&&typeof d=="function"){let c=Sn.has(t),_=En();return(...g)=>oo(d.apply(r,g),c,_)}return t==="transaction"&&typeof d=="function"?(...c)=>Pn(()=>d.apply(r,c)):d}}),mi=new Proxy({},{get(e,t){let r=zn(),d=r[t];if(typeof t=="string"&&jn.has(t)&&typeof d=="function"){let c=Sn.has(t);return(..._)=>oo(d.apply(r,_),c,0,!0)}return t==="transaction"&&typeof d=="function"?(...c)=>Pn(()=>d.apply(r,c),!0):d}});export{s as a,m as b,u as c,ee as d,fo as e,xo as f,go as g,bn as h,li as i};