@rulemetric/cli 0.7.6 → 0.7.7

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-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.
1
+ import{f as d}from"./chunk-RTWRHIKY.js";import{c as e,d as o,h as y}from"./chunk-6GGVD6RZ.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 sr}from"./chunk-ZLLER3HP.js";import{boolean as No,pgTable as ir,text as Je,timestamp as bt,uuid as vo}from"drizzle-orm/pg-core";import{pgTable as Ge,text as Z,timestamp as ye,jsonb as xo,uuid as F,primaryKey as go}from"drizzle-orm/pg-core";var u=Ge("organizations",{id:F("id").primaryKey().defaultRandom(),name:Z("name").unique().notNull(),slug:Z("slug").unique().notNull(),metadata:xo("metadata"),createdAt:ye("created_at",{withTimezone:!0}).defaultNow(),updatedAt:ye("updated_at",{withTimezone:!0}).defaultNow()}),x=Ge("teams",{id:F("id").primaryKey().defaultRandom(),orgId:F("org_id").references(()=>u.id,{onDelete:"cascade"}),name:Z("name").notNull(),slug:Z("slug").notNull(),metadata:xo("metadata"),createdAt:ye("created_at",{withTimezone:!0}).defaultNow()}),ee=Ge("user_organizations",{userId:F("user_id").notNull(),orgId:F("org_id").references(()=>u.id,{onDelete:"cascade"}).notNull(),role:Z("role").notNull().default("member"),createdAt:ye("created_at",{withTimezone:!0}).defaultNow()},e=>[go({columns:[e.userId,e.orgId]})]),te=Ge("user_teams",{userId:F("user_id").notNull(),teamId:F("team_id").references(()=>x.id,{onDelete:"cascade"}).notNull(),role:Z("role").notNull().default("member"),createdAt:ye("created_at",{withTimezone:!0}).defaultNow()},e=>[go({columns:[e.userId,e.teamId]})]);var o=ir("profiles",{id:vo("id").primaryKey(),email:Je("email"),displayName:Je("display_name"),activeOrgId:vo("active_org_id").references(()=>u.id,{onDelete:"set null"}),isSuperadmin:No("is_superadmin").notNull().default(!1),claudeCodePlan:Je("claude_code_plan"),planSource:Je("plan_source").notNull().default("detected"),setupCompletedAt:bt("setup_completed_at",{withTimezone:!0}),liveSendSkipped:No("live_send_skipped").notNull().default(!1),createdAt:bt("created_at",{withTimezone:!0}).defaultNow(),updatedAt:bt("updated_at",{withTimezone:!0}).defaultNow()});import{pgTable as cr,text as ne,timestamp as Et,jsonb as wo,uuid as We,integer as mr,boolean as pr,index as St}from"drizzle-orm/pg-core";import{boolean as dr,jsonb as ur,pgTable as kt,primaryKey as yo,text as G,timestamp as we,uniqueIndex as Rt,uuid as J}from"drizzle-orm/pg-core";import{sql as lr}from"drizzle-orm";import{pgTable as ho,text as f,timestamp as Te,jsonb as Qe,uuid as P,integer as jt,boolean as ar,uniqueIndex as Io,index as Ye}from"drizzle-orm/pg-core";var n=ho("instructions",{id:P("id").primaryKey().defaultRandom(),name:f("name").notNull(),description:f("description").notNull(),type:f("type").notNull().default("instruction"),scope:f("scope").notNull(),scopeRef:P("scope_ref"),version:f("version").notNull(),content:f("content").notNull(),frontmatter:Qe("frontmatter").notNull(),slots:Qe("slots"),tags:f("tags").array(),compatibility:f("compatibility").array(),createdBy:P("created_by"),createdAt:Te("created_at",{withTimezone:!0}).defaultNow(),updatedAt:Te("updated_at",{withTimezone:!0}).defaultNow(),archived:ar("archived").default(!1),archivedAt:Te("archived_at",{withTimezone:!0}),archivedBy:P("archived_by"),forkedFromId:P("forked_from_id").references(()=>n.id,{onDelete:"set null"}),upstreamVersion:f("upstream_version"),badge:f("badge"),contentHash:f("content_hash"),contextIdentity:f("context_identity"),scanScore:jt("scan_score"),scanFindings:Qe("scan_findings"),popularityScore:jt("popularity_score"),sourceUpdatedAt:Te("source_updated_at",{withTimezone:!0})},e=>[Io("instructions_name_scope_ref_idx").on(e.name,e.scope,e.scopeRef),Ye("idx_instructions_scope").on(e.scope,e.scopeRef),Ye("idx_instructions_created_by").on(e.createdBy),Ye("idx_instructions_context_identity").on(e.createdBy,e.contextIdentity),Ye("idx_instructions_public_recency").on(e.scope,e.sourceUpdatedAt.desc())]),oe=ho("instruction_versions",{id:P("id").primaryKey().defaultRandom(),instructionId:P("instruction_id").references(()=>n.id,{onDelete:"cascade"}),versionNumber:jt("version_number").notNull(),content:f("content").notNull(),frontmatter:Qe("frontmatter").notNull(),changeSummary:f("change_summary"),createdBy:P("created_by"),createdAt:Te("created_at",{withTimezone:!0}).defaultNow()},e=>[Io("instruction_versions_instruction_version_idx").on(e.instructionId,e.versionNumber)]);var r=kt("projects",{id:J("id").primaryKey().defaultRandom(),orgId:J("org_id").references(()=>u.id,{onDelete:"cascade"}),name:G("name").notNull(),description:G("description"),githubRepo:G("github_repo"),gitRemoteUrl:G("git_remote_url"),gitRootCommit:G("git_root_commit"),gitRemoteAliases:G("git_remote_aliases").array().notNull().default([]),metadata:ur("metadata"),createdBy:J("created_by"),createdAt:we("created_at",{withTimezone:!0}).defaultNow(),updatedAt:we("updated_at",{withTimezone:!0}).defaultNow()},e=>[Rt("projects_org_name_idx").on(e.orgId,e.name),Rt("projects_git_remote_url_unique").on(e.gitRemoteUrl).where(lr`${e.gitRemoteUrl} IS NOT NULL`)]),O=kt("project_instructions",{projectId:J("project_id").references(()=>r.id,{onDelete:"cascade"}).notNull(),instructionId:J("instruction_id").references(()=>n.id,{onDelete:"cascade"}).notNull(),addedAt:we("added_at",{withTimezone:!0}).defaultNow(),addedBy:J("added_by")},e=>[yo({columns:[e.projectId,e.instructionId]})]),To=kt("project_checkouts",{projectId:J("project_id").references(()=>r.id,{onDelete:"cascade"}).notNull(),path:G("path").notNull(),isWorktree:dr("is_worktree").notNull().default(!1),firstSeen:we("first_seen",{withTimezone:!0}).notNull().defaultNow(),lastSeen:we("last_seen",{withTimezone:!0}).notNull().defaultNow()},e=>[yo({columns:[e.projectId,e.path]}),Rt("project_checkouts_path_unique").on(e.path)]);var _=cr("agent_runs",{id:We("id").primaryKey().defaultRandom(),userId:We("user_id").notNull().references(()=>o.id,{onDelete:"cascade"}),orgId:We("org_id").references(()=>u.id,{onDelete:"set null"}),projectId:We("project_id").references(()=>r.id,{onDelete:"set null"}),projectPath:ne("project_path"),gitRemote:ne("git_remote"),baseBranch:ne("base_branch"),title:ne("title"),prompt:ne("prompt"),toolSpec:wo("tool_spec").notNull().default([]),autoWorktree:pr("auto_worktree").notNull().default(!0),status:ne("status").notNull().default("pending"),sessionCount:mr("session_count").notNull().default(0),metadata:wo("metadata").notNull().default({}),createdAt:Et("created_at",{withTimezone:!0}).notNull().defaultNow(),updatedAt:Et("updated_at",{withTimezone:!0}).notNull().defaultNow(),completedAt:Et("completed_at",{withTimezone:!0})},e=>[St("idx_agent_runs_user").on(e.userId),St("idx_agent_runs_org_created").on(e.orgId,e.createdAt),St("idx_agent_runs_project").on(e.projectId)]);import{pgTable as Kt,text as N,timestamp as Ae,jsonb as Y,uuid as z,integer as Xe,uniqueIndex as Ao,index as I}from"drizzle-orm/pg-core";var d=Kt("sessions",{id:z("id").primaryKey().defaultRandom(),userId:z("user_id").notNull().references(()=>o.id,{onDelete:"cascade"}),externalSessionId:N("external_session_id"),projectId:z("project_id").references(()=>r.id,{onDelete:"set null"}),orgId:z("org_id").references(()=>u.id,{onDelete:"set null"}),tool:N("tool").notNull(),projectPath:N("project_path"),gitBranch:N("git_branch"),startedAt:Ae("started_at",{withTimezone:!0}).notNull(),endedAt:Ae("ended_at",{withTimezone:!0}),eventCount:Xe("event_count").default(0),tokenUsage:Y("token_usage"),analysis:Y("analysis"),analyzedAt:Ae("analyzed_at",{withTimezone:!0}),analyzedEventCount:Xe("analyzed_event_count"),analyzedTurnCount:Xe("analyzed_turn_count"),metadata:Y("metadata").default({}),origin:N("origin").notNull().default("unknown"),runId:z("run_id").references(()=>_.id,{onDelete:"set null"}),model:N("model"),harnessVersion:N("harness_version"),createdAt:Ae("created_at",{withTimezone:!0}).defaultNow()},e=>[I("idx_sessions_user").on(e.userId),I("idx_sessions_tool").on(e.tool),I("idx_sessions_started_at").on(e.startedAt),I("idx_sessions_project").on(e.projectId),I("idx_sessions_org_started_at").on(e.orgId,e.startedAt),I("idx_sessions_run").on(e.runId),Ao("idx_sessions_user_external").on(e.userId,e.externalSessionId)]),re=Kt("session_events",{id:z("id").primaryKey().defaultRandom(),sessionId:z("session_id").notNull().references(()=>d.id,{onDelete:"cascade"}),sequence:Xe("sequence").notNull(),eventType:N("event_type").notNull(),content:N("content"),toolName:N("tool_name"),toolInput:Y("tool_input"),toolOutput:Y("tool_output"),tokenUsage:Y("token_usage"),model:N("model"),timestamp:Ae("timestamp",{withTimezone:!0}).notNull(),metadata:Y("metadata").default({})},e=>[Ao("session_events_session_sequence_idx").on(e.sessionId,e.sequence),I("idx_session_events_session_id").on(e.sessionId),I("idx_session_events_event_type").on(e.eventType),I("idx_session_events_model").on(e.model)]),C=Kt("session_instructions",{sessionId:z("session_id").notNull().references(()=>d.id,{onDelete:"cascade"}),instructionId:z("instruction_id").notNull().references(()=>n.id,{onDelete:"cascade"}),linkMethod:N("link_method").notNull()},e=>[I("idx_session_instructions_instruction_id").on(e.instructionId)]);import{boolean as _r,date as fr,index as Pt,integer as xr,jsonb as gr,pgTable as Ot,text as v,timestamp as q,uniqueIndex as Nr,uuid as se}from"drizzle-orm/pg-core";var zo=Ot("announcements",{id:se("id").primaryKey().defaultRandom(),version:v("version").notNull().unique(),releaseDate:fr("release_date").notNull(),subject:v("subject").notNull(),htmlBody:v("html_body").notNull(),textBody:v("text_body").notNull(),sections:gr("sections").notNull().default({}),status:v("status").notNull().default("draft"),recipientCount:xr("recipient_count"),sentAt:q("sent_at",{withTimezone:!0}),sentBy:se("sent_by"),error:v("error"),createdAt:q("created_at",{withTimezone:!0}).notNull().defaultNow(),updatedAt:q("updated_at",{withTimezone:!0}).notNull().defaultNow()},e=>[Pt("idx_announcements_status").on(e.status),Pt("idx_announcements_created").on(e.createdAt)]),Do=Ot("announcement_deliveries",{id:se("id").primaryKey().defaultRandom(),announcementId:se("announcement_id").notNull(),userId:se("user_id").notNull(),email:v("email").notNull(),status:v("status").notNull().default("pending"),providerId:v("provider_id"),error:v("error"),sentAt:q("sent_at",{withTimezone:!0}),createdAt:q("created_at",{withTimezone:!0}).notNull().defaultNow()},e=>[Nr("uniq_announcement_deliveries_announcement_user").on(e.announcementId,e.userId),Pt("idx_announcement_deliveries_user").on(e.userId,e.createdAt)]),bo=Ot("notification_preferences",{userId:se("user_id").primaryKey(),productAnnouncements:_r("product_announcements").notNull().default(!0),unsubscribeToken:v("unsubscribe_token").notNull().unique(),unsubscribedAt:q("unsubscribed_at",{withTimezone:!0}),createdAt:q("created_at",{withTimezone:!0}).notNull().defaultNow(),updatedAt:q("updated_at",{withTimezone:!0}).notNull().defaultNow()});import{pgTable as vr,text as Ct,timestamp as $e,uuid as Ze,index as jo}from"drizzle-orm/pg-core";var D=vr("org_invitations",{id:Ze("id").primaryKey().defaultRandom(),orgId:Ze("org_id").notNull().references(()=>u.id,{onDelete:"cascade"}),email:Ct("email").notNull(),role:Ct("role").notNull().default("member"),teamId:Ze("team_id").references(()=>x.id,{onDelete:"set null"}),invitedBy:Ze("invited_by").notNull().references(()=>o.id),token:Ct("token").notNull().unique(),expiresAt:$e("expires_at",{withTimezone:!0}).notNull(),acceptedAt:$e("accepted_at",{withTimezone:!0}),revokedAt:$e("revoked_at",{withTimezone:!0}),createdAt:$e("created_at",{withTimezone:!0}).notNull().defaultNow()},e=>[jo("idx_org_invitations_token").on(e.token),jo("idx_org_invitations_org").on(e.orgId)]);import{pgTable as hr,text as Ir,timestamp as yr,jsonb as Tr,uuid as qt,index as Ro}from"drizzle-orm/pg-core";var ie=hr("instruction_events",{id:qt("id").primaryKey().defaultRandom(),instructionId:qt("instruction_id").notNull().references(()=>n.id,{onDelete:"cascade"}),eventType:Ir("event_type").notNull(),actorId:qt("actor_id").notNull(),metadata:Tr("metadata"),createdAt:yr("created_at",{withTimezone:!0}).defaultNow()},e=>[Ro("idx_instruction_events_instruction").on(e.instructionId),Ro("idx_instruction_events_type").on(e.eventType)]);import{pgTable as ko,text as et,timestamp as Eo,uuid as y,integer as So,index as ae,unique as wr}from"drizzle-orm/pg-core";var b=ko("treatment_assignments",{id:y("id").primaryKey().defaultRandom(),userId:y("user_id").notNull().references(()=>o.id,{onDelete:"cascade"}),treatmentType:et("treatment_type").notNull(),treatmentId:y("treatment_id").notNull(),treatmentVersion:So("treatment_version").notNull().default(1),projectId:y("project_id").references(()=>r.id,{onDelete:"set null"}),assignedBy:y("assigned_by").references(()=>o.id,{onDelete:"set null"}),method:et("method").notNull(),assignedAt:Eo("assigned_at",{withTimezone:!0}).notNull().defaultNow()},e=>[ae("idx_treatment_assignments_user").on(e.userId),ae("idx_treatment_assignments_treatment").on(e.treatmentType,e.treatmentId),ae("idx_treatment_assignments_project").on(e.projectId)]),j=ko("treatment_exposures",{id:y("id").primaryKey().defaultRandom(),sessionId:y("session_id").notNull().references(()=>d.id,{onDelete:"cascade"}),userId:y("user_id").notNull().references(()=>o.id,{onDelete:"cascade"}),treatmentType:et("treatment_type").notNull(),treatmentId:y("treatment_id").notNull(),treatmentVersion:So("treatment_version").notNull().default(1),assignmentId:y("assignment_id").references(()=>b.id,{onDelete:"set null"}),method:et("method").notNull(),exposedAt:Eo("exposed_at",{withTimezone:!0}).notNull().defaultNow()},e=>[wr("treatment_exposures_unique").on(e.sessionId,e.treatmentType,e.treatmentId,e.treatmentVersion),ae("idx_treatment_exposures_treatment").on(e.treatmentType,e.treatmentId),ae("idx_treatment_exposures_user").on(e.userId),ae("idx_treatment_exposures_session").on(e.sessionId)]);import{pgTable as Ar,text as Mt,timestamp as zr,uuid as tt,integer as Dr,index as Ko,uniqueIndex as br}from"drizzle-orm/pg-core";var Po=Ar("pending_treatment_exposures",{id:tt("id").primaryKey().defaultRandom(),userId:tt("user_id").notNull().references(()=>o.id,{onDelete:"cascade"}),externalSessionId:Mt("external_session_id").notNull(),treatmentType:Mt("treatment_type").notNull(),treatmentId:tt("treatment_id").notNull(),treatmentVersion:Dr("treatment_version").notNull().default(1),method:Mt("method").notNull().default("injected"),projectId:tt("project_id").references(()=>r.id,{onDelete:"set null"}),createdAt:zr("created_at",{withTimezone:!0}).notNull().defaultNow()},e=>[br("pending_treatment_exposures_unique").on(e.externalSessionId,e.treatmentType,e.treatmentId,e.treatmentVersion),Ko("idx_pending_treatment_exposures_ext").on(e.externalSessionId),Ko("idx_pending_treatment_exposures_user").on(e.userId)]);import{pgTable as jr,text as ze,timestamp as Oo,uuid as De,integer as Rr,index as ot}from"drizzle-orm/pg-core";var T=jr("memories",{id:De("id").primaryKey().defaultRandom(),userId:De("user_id").notNull().references(()=>o.id,{onDelete:"cascade"}),orgId:De("org_id"),projectId:De("project_id").references(()=>r.id,{onDelete:"set null"}),version:Rr("version").notNull().default(1),parentId:De("parent_id").references(()=>T.id,{onDelete:"set null"}),kind:ze("kind").notNull(),title:ze("title").notNull(),body:ze("body").notNull(),source:ze("source").notNull(),status:ze("status").notNull().default("active"),createdAt:Oo("created_at",{withTimezone:!0}).notNull().defaultNow(),updatedAt:Oo("updated_at",{withTimezone:!0}).notNull().defaultNow()},e=>[ot("idx_memories_user").on(e.userId),ot("idx_memories_project").on(e.projectId),ot("idx_memories_parent").on(e.parentId),ot("idx_memories_user_status").on(e.userId,e.status)]);import{pgTable as kr,text as de,timestamp as Lt,uuid as Bt,jsonb as Er,uniqueIndex as Sr,index as Co}from"drizzle-orm/pg-core";var nt=kr("session_terminal_targets",{id:Bt("id").primaryKey().defaultRandom(),userId:Bt("user_id").notNull().references(()=>o.id,{onDelete:"cascade"}),sessionId:Bt("session_id").references(()=>d.id,{onDelete:"set null"}),externalSessionId:de("external_session_id"),kind:de("kind").notNull(),target:de("target").notNull(),status:de("status").notNull().default("active"),attachCommand:de("attach_command").notNull(),projectPath:de("project_path"),metadata:Er("metadata").notNull().default({}),lastSeenAt:Lt("last_seen_at",{withTimezone:!0}).defaultNow(),createdAt:Lt("created_at",{withTimezone:!0}).defaultNow(),updatedAt:Lt("updated_at",{withTimezone:!0}).defaultNow()},e=>[Sr("idx_session_terminal_targets_user_target").on(e.userId,e.target),Co("idx_session_terminal_targets_session").on(e.sessionId),Co("idx_session_terminal_targets_user_status").on(e.userId,e.status)]);import{boolean as Kr,index as rt,jsonb as qo,pgTable as Pr,text as Q,timestamp as be,uuid as st,integer as Or}from"drizzle-orm/pg-core";var Mo=Pr("session_send_jobs",{id:st("id").primaryKey().defaultRandom(),userId:st("user_id").notNull(),sessionId:st("session_id").notNull().references(()=>d.id,{onDelete:"cascade"}),terminalTargetId:st("terminal_target_id").references(()=>nt.id,{onDelete:"set null"}),target:Q("target").notNull(),message:Q("message").notNull(),submit:Kr("submit").notNull().default(!0),delivery:Q("delivery").notNull().default("live"),status:Q("status").notNull().default("pending"),result:qo("result"),error:Q("error"),attempts:Or("attempts").notNull().default(0),taskKind:Q("task_kind"),payload:qo("payload"),claimedBy:Q("claimed_by"),claimedAt:be("claimed_at",{withTimezone:!0}),leaseExpiresAt:be("lease_expires_at",{withTimezone:!0}),createdAt:be("created_at",{withTimezone:!0}).defaultNow(),updatedAt:be("updated_at",{withTimezone:!0}).defaultNow(),completedAt:be("completed_at",{withTimezone:!0})},e=>[rt("idx_session_send_jobs_user").on(e.userId),rt("idx_session_send_jobs_session").on(e.sessionId),rt("idx_session_send_jobs_status").on(e.status),rt("idx_session_send_jobs_pending").on(e.userId,e.status)]);import{pgTable as Bo,text as W,timestamp as it,jsonb as Uo,uuid as M,integer as Cr,boolean as qr,uniqueIndex as Mr,index as Lo,primaryKey as Lr}from"drizzle-orm/pg-core";var h=Bo("packs",{id:M("id").primaryKey().defaultRandom(),name:W("name").notNull(),description:W("description").notNull(),scope:W("scope").notNull(),scopeRef:M("scope_ref"),version:W("version").notNull().default("1.0.0"),tags:W("tags").array(),badge:W("badge"),metadata:Uo("metadata"),createdBy:M("created_by"),createdAt:it("created_at",{withTimezone:!0}).defaultNow(),updatedAt:it("updated_at",{withTimezone:!0}).defaultNow(),archived:qr("archived").default(!1),archivedAt:it("archived_at",{withTimezone:!0}),archivedBy:M("archived_by"),forkedFromId:M("forked_from_id").references(()=>h.id,{onDelete:"set null"}),upstreamVersion:W("upstream_version")},e=>[Mr("packs_name_scope_ref_idx").on(e.name,e.scope,e.scopeRef),Lo("idx_packs_scope").on(e.scope,e.scopeRef),Lo("idx_packs_created_by").on(e.createdBy)]),L=Bo("pack_instructions",{packId:M("pack_id").references(()=>h.id,{onDelete:"cascade"}).notNull(),instructionId:M("instruction_id").references(()=>n.id,{onDelete:"cascade"}).notNull(),position:Cr("position").notNull().default(0),slotOverrides:Uo("slot_overrides"),addedAt:it("added_at",{withTimezone:!0}).defaultNow(),addedBy:M("added_by")},e=>[Lr({columns:[e.packId,e.instructionId]})]);import{pgTable as Br,text as Ut,timestamp as Ur,jsonb as Hr,uuid as Ht,index as ue}from"drizzle-orm/pg-core";var le=Br("instruction_usage_events",{id:Ht("id").primaryKey().defaultRandom(),instructionId:Ht("instruction_id").references(()=>n.id,{onDelete:"set null"}),userId:Ht("user_id").notNull(),surface:Ut("surface").notNull(),action:Ut("action").notNull(),metadata:Hr("metadata"),traceId:Ut("trace_id"),createdAt:Ur("created_at",{withTimezone:!0}).defaultNow()},e=>[ue("idx_usage_events_instruction").on(e.instructionId),ue("idx_usage_events_user").on(e.userId),ue("idx_usage_events_surface").on(e.surface),ue("idx_usage_events_action").on(e.action),ue("idx_usage_events_created_at").on(e.createdAt),ue("idx_usage_events_user_created").on(e.userId,e.createdAt)]);import{pgTable as Vr,text as at,timestamp as Ho,jsonb as Fr,uuid as Vo,index as Vt}from"drizzle-orm/pg-core";var Fo=Vr("worker_connections",{id:Vo("id").primaryKey().defaultRandom(),userId:Vo("user_id").notNull(),workerType:at("worker_type").notNull().default("mcp"),clientName:at("client_name").notNull(),clientVersion:at("client_version"),workerVersion:at("worker_version"),lastHeartbeat:Ho("last_heartbeat",{withTimezone:!0}).notNull().defaultNow(),connectedAt:Ho("connected_at",{withTimezone:!0}).notNull().defaultNow(),metadata:Fr("metadata")},e=>[Vt("idx_worker_connections_user").on(e.userId),Vt("idx_worker_connections_heartbeat").on(e.userId,e.lastHeartbeat),Vt("idx_worker_connections_type").on(e.userId,e.workerType)]);import{pgTable as Gr,text as dt,timestamp as Jr,jsonb as Yr,uuid as Go,index as Jo}from"drizzle-orm/pg-core";var Yo=Gr("cli_setup_events",{id:Go("id").primaryKey().defaultRandom(),userId:Go("user_id").notNull(),deviceId:dt("device_id").notNull(),event:dt("event").notNull(),cliVersion:dt("cli_version"),os:dt("os"),props:Yr("props").notNull().default({}),createdAt:Jr("created_at",{withTimezone:!0}).notNull().defaultNow()},e=>[Jo("idx_cli_setup_events_user").on(e.userId,e.createdAt),Jo("idx_cli_setup_events_device").on(e.deviceId,e.createdAt)]);import{pgTable as Qr,text as X,integer as Wr,boolean as Xr,timestamp as $r,jsonb as Zr,uuid as es,index as Qo}from"drizzle-orm/pg-core";var Wo=Qr("cli_error_events",{id:es("id").primaryKey().defaultRandom(),deviceId:X("device_id"),event:X("event").notNull(),command:X("command"),statusCode:Wr("status_code"),message:X("message"),cliVersion:X("cli_version"),os:X("os"),nodeVersion:X("node_version"),proxied:Xr("proxied"),props:Zr("props").notNull().default({}),createdAt:$r("created_at",{withTimezone:!0}).notNull().defaultNow()},e=>[Qo("idx_cli_error_events_created").on(e.createdAt),Qo("idx_cli_error_events_device").on(e.deviceId,e.createdAt)]);import{pgTable as ut,text as R,timestamp as ce,jsonb as w,uuid as A,integer as je,index as k}from"drizzle-orm/pg-core";var s=ut("eval_targets",{id:A("id").primaryKey().defaultRandom(),userId:A("user_id").notNull(),name:R("name").notNull(),type:R("type").notNull(),content:R("content").notNull(),description:R("description").notNull().default(""),metadata:w("metadata").notNull().default({}),version:je("version").notNull().default(1),parentId:A("parent_id").references(()=>s.id,{onDelete:"set null"}),createdAt:ce("created_at",{withTimezone:!0}).defaultNow(),updatedAt:ce("updated_at",{withTimezone:!0}).defaultNow()},e=>[k("eval_targets_name_user_idx").on(e.name,e.userId),k("idx_eval_targets_user").on(e.userId),k("idx_eval_targets_type").on(e.type),k("idx_eval_targets_parent").on(e.parentId)]),E=ut("evals",{id:A("id").primaryKey().defaultRandom(),evalTargetId:A("eval_target_id").notNull().references(()=>s.id,{onDelete:"cascade"}),name:R("name").notNull(),prompt:R("prompt").notNull(),expectedOutput:R("expected_output").notNull().default(""),files:w("files").notNull().default([]),expectations:w("expectations").notNull().default([]),createdAt:ce("created_at",{withTimezone:!0}).defaultNow(),updatedAt:ce("updated_at",{withTimezone:!0}).defaultNow()},e=>[k("idx_evals_target").on(e.evalTargetId)]),B=ut("eval_runs",{id:A("id").primaryKey().defaultRandom(),evalId:A("eval_id").notNull().references(()=>E.id,{onDelete:"cascade"}),evalTargetId:A("eval_target_id").notNull().references(()=>s.id,{onDelete:"cascade"}),evalTargetVersion:je("eval_target_version").notNull(),configuration:R("configuration").notNull(),runNumber:je("run_number").notNull().default(1),iteration:je("iteration").notNull().default(1),status:R("status").notNull().default("completed"),outputs:w("outputs").notNull().default({}),timing:w("timing").notNull().default({}),grading:w("grading").notNull().default({}),comparison:w("comparison"),createdAt:ce("created_at",{withTimezone:!0}).defaultNow()},e=>[k("idx_eval_runs_eval").on(e.evalId),k("idx_eval_runs_target").on(e.evalTargetId),k("idx_eval_runs_iteration").on(e.evalTargetId,e.iteration)]),me=ut("benchmarks",{id:A("id").primaryKey().defaultRandom(),evalTargetId:A("eval_target_id").notNull().references(()=>s.id,{onDelete:"cascade"}),iteration:je("iteration").notNull().default(1),runSummary:w("run_summary").notNull().default({}),notes:w("notes").notNull().default([]),feedback:w("feedback"),createdAt:ce("created_at",{withTimezone:!0}).defaultNow()},e=>[k("idx_benchmarks_target").on(e.evalTargetId)]);import{pgTable as $o,text as Ft,timestamp as Gt,jsonb as Zo,uuid as pe,integer as Re,index as lt,real as Xo}from"drizzle-orm/pg-core";var _e=$o("trigger_evals",{id:pe("id").primaryKey().defaultRandom(),evalTargetId:pe("eval_target_id").notNull().references(()=>s.id,{onDelete:"cascade"}),userId:pe("user_id").notNull(),queries:Zo("queries").notNull().default([]),status:Ft("status").notNull().default("pending_review"),trainIndices:Re("train_indices").array().default([]),testIndices:Re("test_indices").array().default([]),createdAt:Gt("created_at",{withTimezone:!0}).defaultNow(),updatedAt:Gt("updated_at",{withTimezone:!0}).defaultNow()},e=>[lt("idx_trigger_evals_target").on(e.evalTargetId),lt("idx_trigger_evals_user").on(e.userId)]),fe=$o("optimization_runs",{id:pe("id").primaryKey().defaultRandom(),evalTargetId:pe("eval_target_id").notNull().references(()=>s.id,{onDelete:"cascade"}),userId:pe("user_id").notNull(),type:Ft("type").notNull(),iteration:Re("iteration").notNull(),inputVersion:Re("input_version").notNull(),outputVersion:Re("output_version"),trainScore:Xo("train_score"),testScore:Xo("test_score"),analysis:Zo("analysis").notNull().default({}),status:Ft("status").notNull().default("running"),createdAt:Gt("created_at",{withTimezone:!0}).defaultNow()},e=>[lt("idx_optimization_runs_target").on(e.evalTargetId),lt("idx_optimization_runs_user").on(e.userId)]);import{pgTable as ts,text as U,timestamp as os,jsonb as ke,uuid as Jt,integer as Yt,real as ns,index as Ee,uniqueIndex as en}from"drizzle-orm/pg-core";var H=ts("context_snapshots",{id:Jt("id").primaryKey().defaultRandom(),sessionId:Jt("session_id").references(()=>d.id,{onDelete:"cascade"}),userId:Jt("user_id").notNull().references(()=>o.id,{onDelete:"cascade"}),sequence:Yt("sequence").notNull().default(0),provider:U("provider").notNull(),model:U("model").notNull(),systemPrompt:U("system_prompt").notNull(),injectedInstructions:ke("injected_instructions").notNull().default([]),messagesSummary:ke("messages_summary").notNull(),tools:ke("tools").notNull().default([]),systemHash:U("system_hash").notNull(),requestHash:U("request_hash").notNull().default(""),toolsHash:U("tools_hash"),injectedHash:U("injected_hash"),messagesDelta:ke("messages_delta").default([]),messagesDeltaRef:U("messages_delta_ref"),maxTokens:Yt("max_tokens"),temperature:ns("temperature"),estimatedTokens:Yt("estimated_tokens"),capturedAt:os("captured_at",{withTimezone:!0}).notNull().defaultNow(),metadata:ke("metadata").default({})},e=>[Ee("idx_context_snapshots_session").on(e.sessionId),Ee("idx_context_snapshots_user").on(e.userId),Ee("idx_context_snapshots_hash").on(e.systemHash),Ee("idx_context_snapshots_request_hash").on(e.requestHash),en("idx_snapshots_session_request").on(e.sessionId,e.requestHash),en("idx_snapshots_session_sequence").on(e.sessionId,e.sequence),Ee("idx_context_snapshots_user_session_captured").on(e.userId,e.sessionId,e.capturedAt.desc())]);import{pgTable as rs,text as tn,timestamp as ss,jsonb as is,integer as as,index as ds}from"drizzle-orm/pg-core";var on=rs("content_blobs",{hash:tn("hash").primaryKey(),contentType:tn("content_type").notNull(),content:is("content").notNull(),sizeBytes:as("size_bytes").notNull().default(0),createdAt:ss("created_at",{withTimezone:!0}).defaultNow()},e=>[ds("idx_content_blobs_type").on(e.contentType)]);import{pgTable as us,text as ct,timestamp as Se,jsonb as mt,uuid as Qt,index as pt,integer as ls}from"drizzle-orm/pg-core";var xe=us("eval_jobs",{id:Qt("id").primaryKey().defaultRandom(),userId:Qt("user_id").notNull(),evalTargetId:Qt("eval_target_id").notNull().references(()=>s.id,{onDelete:"cascade"}),status:ct("status").notNull().default("pending"),config:mt("config").notNull().default({}),progress:mt("progress").notNull().default({}),result:mt("result"),error:ct("error"),attempts:ls("attempts").notNull().default(0),taskKind:ct("task_kind"),payload:mt("payload"),claimedBy:ct("claimed_by"),claimedAt:Se("claimed_at",{withTimezone:!0}),leaseExpiresAt:Se("lease_expires_at",{withTimezone:!0}),createdAt:Se("created_at",{withTimezone:!0}).defaultNow(),updatedAt:Se("updated_at",{withTimezone:!0}).defaultNow(),completedAt:Se("completed_at",{withTimezone:!0})},e=>[pt("idx_eval_jobs_user").on(e.userId),pt("idx_eval_jobs_target").on(e.evalTargetId),pt("idx_eval_jobs_status").on(e.status),pt("idx_eval_jobs_pending").on(e.userId,e.status)]);import{pgTable as cs,text as Ke,timestamp as Pe,jsonb as nn,uuid as rn,integer as ms,index as sn}from"drizzle-orm/pg-core";var an=cs("agent_jobs",{id:rn("id").primaryKey().defaultRandom(),userId:rn("user_id").notNull(),taskKind:Ke("task_kind").notNull(),status:Ke("status").notNull().default("pending"),payload:nn("payload").notNull(),dedupeKey:Ke("dedupe_key"),result:nn("result"),error:Ke("error"),attempts:ms("attempts").notNull().default(0),claimedBy:Ke("claimed_by"),claimedAt:Pe("claimed_at",{withTimezone:!0}),leaseExpiresAt:Pe("lease_expires_at",{withTimezone:!0}),createdAt:Pe("created_at",{withTimezone:!0}).notNull().defaultNow(),updatedAt:Pe("updated_at",{withTimezone:!0}).notNull().defaultNow(),completedAt:Pe("completed_at",{withTimezone:!0})},e=>[sn("idx_agent_jobs_claim").on(e.userId,e.status,e.taskKind,e.createdAt),sn("idx_agent_jobs_dedupe").on(e.userId,e.taskKind,e.dedupeKey)]);import{pgTable as ps,text as Oe,timestamp as Ce,jsonb as _t,uuid as Wt,index as ft,integer as _s}from"drizzle-orm/pg-core";var dn=ps("insights_jobs",{id:Wt("id").primaryKey().defaultRandom(),userId:Wt("user_id").notNull(),status:Oe("status").notNull().default("pending"),projectPath:Oe("project_path"),projectId:Wt("project_id").references(()=>r.id,{onDelete:"set null"}),config:_t("config").notNull().default({}),progress:_t("progress").notNull().default({}),result:_t("result"),error:Oe("error"),attempts:_s("attempts").notNull().default(0),taskKind:Oe("task_kind"),payload:_t("payload"),claimedBy:Oe("claimed_by"),claimedAt:Ce("claimed_at",{withTimezone:!0}),leaseExpiresAt:Ce("lease_expires_at",{withTimezone:!0}),createdAt:Ce("created_at",{withTimezone:!0}).defaultNow(),updatedAt:Ce("updated_at",{withTimezone:!0}).defaultNow(),completedAt:Ce("completed_at",{withTimezone:!0})},e=>[ft("idx_insights_jobs_user").on(e.userId),ft("idx_insights_jobs_status").on(e.status),ft("idx_insights_jobs_pending").on(e.userId,e.status),ft("idx_insights_jobs_project").on(e.projectId)]);import{pgTable as fs,text as Xt,timestamp as xt,uuid as un,index as xs,uniqueIndex as gs}from"drizzle-orm/pg-core";var ge=fs("api_keys",{id:un("id").primaryKey().defaultRandom(),userId:un("user_id").notNull().references(()=>o.id,{onDelete:"cascade"}),name:Xt("name").notNull(),keyHash:Xt("key_hash").notNull(),keyPrefix:Xt("key_prefix").notNull(),lastUsedAt:xt("last_used_at",{withTimezone:!0}),expiresAt:xt("expires_at",{withTimezone:!0}),revokedAt:xt("revoked_at",{withTimezone:!0}),createdAt:xt("created_at",{withTimezone:!0}).defaultNow()},e=>[xs("idx_api_keys_user").on(e.userId),gs("idx_api_keys_hash").on(e.keyHash)]);import{pgTable as Ns,text as $t,timestamp as ln,uuid as vs,index as hs}from"drizzle-orm/pg-core";var cn=Ns("extension_auth_codes",{code:$t("code").primaryKey(),userId:vs("user_id").notNull().references(()=>o.id,{onDelete:"cascade"}),editor:$t("editor"),email:$t("email"),expiresAt:ln("expires_at",{withTimezone:!0}).notNull(),createdAt:ln("created_at",{withTimezone:!0}).defaultNow()},e=>[hs("idx_ext_auth_codes_expiry").on(e.expiresAt)]);import{pgTable as Is,text as ys,timestamp as mn,jsonb as Ts,uuid as Zt,index as pn}from"drizzle-orm/pg-core";var Ne=Is("eval_conversations",{id:Zt("id").primaryKey().defaultRandom(),evalTargetId:Zt("eval_target_id").notNull().references(()=>s.id,{onDelete:"cascade"}),userId:Zt("user_id").notNull(),messages:Ts("messages").notNull().default([]),status:ys("status").notNull().default("active"),createdAt:mn("created_at",{withTimezone:!0}).defaultNow(),updatedAt:mn("updated_at",{withTimezone:!0}).defaultNow()},e=>[pn("idx_eval_conversations_target").on(e.evalTargetId),pn("idx_eval_conversations_user").on(e.userId)]);import{pgTable as ws,text as S,timestamp as _n,jsonb as As,uuid as eo}from"drizzle-orm/pg-core";var fn=ws("skill_submissions",{id:eo("id").primaryKey().defaultRandom(),skillId:S("skill_id").notNull(),name:S("name").notNull(),description:S("description").notNull(),category:S("category").notNull(),tools:S("tools").array().notNull(),tags:S("tags").array().default([]),content:S("content").notNull(),status:S("status").notNull().default("pending"),submittedBy:eo("submitted_by").notNull(),reviewedBy:eo("reviewed_by"),reviewNote:S("review_note"),metadata:As("metadata"),createdAt:_n("created_at",{withTimezone:!0}).defaultNow(),updatedAt:_n("updated_at",{withTimezone:!0}).defaultNow()});import{pgTable as zs,text as qe,timestamp as xn,jsonb as Ds,uuid as bs,uniqueIndex as js,index as gn}from"drizzle-orm/pg-core";var Nn=zs("harness_releases",{id:bs("id").primaryKey().defaultRandom(),harness:qe("harness").notNull(),version:qe("version").notNull(),publishedAt:xn("published_at",{withTimezone:!0}).notNull(),title:qe("title"),body:qe("body"),categories:Ds("categories").default({}),url:qe("url"),createdAt:xn("created_at",{withTimezone:!0}).defaultNow()},e=>[js("idx_harness_releases_unique").on(e.harness,e.version),gn("idx_harness_releases_harness").on(e.harness),gn("idx_harness_releases_published").on(e.publishedAt)]);import{pgTable as Rs,text as ve,timestamp as vn,jsonb as ks,uuid as hn,index as In,uniqueIndex as Es}from"drizzle-orm/pg-core";var to=Rs("notifications",{id:hn("id").primaryKey().defaultRandom(),userId:hn("user_id").notNull(),type:ve("type").notNull(),title:ve("title").notNull(),body:ve("body"),url:ve("url"),sourceTable:ve("source_table"),sourceId:ve("source_id"),metadata:ks("metadata").notNull().default({}),readAt:vn("read_at",{withTimezone:!0}),createdAt:vn("created_at",{withTimezone:!0}).notNull().defaultNow()},e=>[In("idx_notifications_user_created").on(e.userId,e.createdAt),In("idx_notifications_user_unread").on(e.userId),Es("idx_notifications_source_dedup").on(e.userId,e.sourceTable,e.sourceId)]);import{pgTable as Ss,text as Me,timestamp as Le,jsonb as oo,uuid as no,index as gt,integer as Ks}from"drizzle-orm/pg-core";var he=Ss("launch_jobs",{id:no("id").primaryKey().defaultRandom(),userId:no("user_id").notNull(),tool:Me("tool").notNull(),status:Me("status").notNull().default("pending"),config:oo("config").notNull().default({}),result:oo("result"),error:Me("error"),attempts:Ks("attempts").notNull().default(0),taskKind:Me("task_kind"),payload:oo("payload"),claimedBy:Me("claimed_by"),claimedAt:Le("claimed_at",{withTimezone:!0}),leaseExpiresAt:Le("lease_expires_at",{withTimezone:!0}),createdAt:Le("created_at",{withTimezone:!0}).defaultNow(),updatedAt:Le("updated_at",{withTimezone:!0}).defaultNow(),completedAt:Le("completed_at",{withTimezone:!0}),runId:no("run_id").references(()=>_.id,{onDelete:"set null"})},e=>[gt("idx_launch_jobs_user").on(e.userId),gt("idx_launch_jobs_status").on(e.status),gt("idx_launch_jobs_pending").on(e.userId,e.status),gt("idx_launch_jobs_run").on(e.runId)]);import{pgTable as yn,uuid as K,text as Be,real as Ps,timestamp as Nt,boolean as Os,uniqueIndex as Cs,index as Ue}from"drizzle-orm/pg-core";var ro=yn("instruction_suggestions",{id:K("id").primaryKey().defaultRandom(),userId:K("user_id").notNull().references(()=>o.id,{onDelete:"cascade"}),instructionId:K("instruction_id").notNull().references(()=>n.id,{onDelete:"cascade"}),projectPath:Be("project_path").notNull(),projectId:K("project_id").references(()=>r.id,{onDelete:"set null"}),score:Ps("score").notNull(),reason:Be("reason").notNull(),generatedAt:Nt("generated_at",{withTimezone:!0}).notNull().defaultNow(),isStale:Os("is_stale").notNull().default(!1),dismissedAt:Nt("dismissed_at",{withTimezone:!0}),acceptedAt:Nt("accepted_at",{withTimezone:!0}),promotedToInstructionId:K("promoted_to_instruction_id").references(()=>n.id,{onDelete:"set null"})},e=>[Cs("idx_instruction_suggestions_user_project_instruction").on(e.userId,e.projectPath,e.instructionId),Ue("idx_instruction_suggestions_user_project").on(e.userId,e.projectPath),Ue("idx_instruction_suggestions_user_proj_id").on(e.userId,e.projectId),Ue("idx_instruction_suggestions_generated_at").on(e.generatedAt)]),Tn=yn("instruction_suggestion_events",{id:K("id").primaryKey().defaultRandom(),suggestionId:K("suggestion_id").notNull().references(()=>ro.id,{onDelete:"cascade"}),userId:K("user_id").notNull().references(()=>o.id,{onDelete:"cascade"}),eventType:Be("event_type").notNull(),tool:Be("tool"),sessionId:K("session_id"),projectPath:Be("project_path").notNull(),createdAt:Nt("created_at",{withTimezone:!0}).notNull().defaultNow()},e=>[Ue("idx_instruction_suggestion_events_suggestion_id").on(e.suggestionId),Ue("idx_instruction_suggestion_events_user_id").on(e.userId)]);import{pgTable as qs,text as so,integer as Ms,numeric as He,timestamp as io,index as Ls,primaryKey as Bs}from"drizzle-orm/pg-core";var wn=qs("model_pricing",{provider:so("provider").notNull(),modelId:so("model_id").notNull(),inputPerM:He("input_per_m").notNull(),outputPerM:He("output_per_m").notNull(),cacheReadPerM:He("cache_read_per_m").notNull(),cacheWrite5mPerM:He("cache_write_5m_per_m").notNull(),cacheWrite1hPerM:He("cache_write_1h_per_m").notNull(),contextWindow:Ms("context_window"),effectiveFrom:io("effective_from",{withTimezone:!0}).notNull(),effectiveUntil:io("effective_until",{withTimezone:!0}),source:so("source").notNull(),verifiedAt:io("verified_at",{withTimezone:!0})},e=>[Bs({columns:[e.provider,e.modelId,e.effectiveFrom]}),Ls("idx_model_pricing_active").on(e.provider,e.modelId,e.effectiveFrom.desc())]);import{pgTable as Us,text as $,numeric as An,timestamp as zn,uuid as Dn,jsonb as Hs,index as bn}from"drizzle-orm/pg-core";var jn=Us("limit_observations",{id:Dn("id").primaryKey().defaultRandom(),observedAt:zn("observed_at",{withTimezone:!0}).notNull().defaultNow(),provider:$("provider").notNull(),plan:$("plan").notNull(),limitType:$("limit_type").notNull(),value:An("value").notNull(),unit:$("unit").notNull(),comparator:$("comparator").notNull().default("="),resetsAt:zn("resets_at",{withTimezone:!0}),sourceType:$("source_type").notNull(),sourceUrl:$("source_url"),sourceEvidence:Hs("source_evidence"),confidence:An("confidence").notNull(),userId:Dn("user_id")},e=>[bn("idx_limit_obs_lookup").on(e.provider,e.plan,e.limitType,e.observedAt.desc()),bn("idx_limit_obs_user").on(e.userId,e.observedAt.desc())]);import{pgTable as Vs,text as vt,timestamp as Fs,uuid as Gs,jsonb as Js,boolean as Ys,uniqueIndex as Qs}from"drizzle-orm/pg-core";var Rn=Vs("provider_docs_snapshots",{id:Gs("id").primaryKey().defaultRandom(),fetchedAt:Fs("fetched_at",{withTimezone:!0}).notNull().defaultNow(),provider:vt("provider").notNull(),docUrl:vt("doc_url").notNull(),contentHash:vt("content_hash").notNull(),content:vt("content").notNull(),parseSuccess:Ys("parse_success").notNull(),parseErrors:Js("parse_errors")},e=>[Qs("idx_docs_dedup").on(e.provider,e.docUrl,e.contentHash)]);import{pgTable as Ws,text as ht,numeric as kn,timestamp as En,uuid as Xs,primaryKey as $s,index as Zs}from"drizzle-orm/pg-core";var Sn=Ws("plan_limits_active",{provider:ht("provider").notNull(),plan:ht("plan").notNull(),limitType:ht("limit_type").notNull(),value:kn("value").notNull(),unit:ht("unit").notNull(),effectiveFrom:En("effective_from",{withTimezone:!0}).notNull(),effectiveUntil:En("effective_until",{withTimezone:!0}),confidence:kn("confidence").notNull(),sourceObservationIds:Xs("source_observation_ids").array().notNull()},e=>[$s({columns:[e.provider,e.plan,e.limitType,e.effectiveFrom]}),Zs("idx_plan_limits_lookup").on(e.provider,e.plan,e.limitType,e.effectiveFrom.desc())]);import{pgTable as ei,text as ao,timestamp as ti,uuid as Kn,jsonb as oi,index as ni}from"drizzle-orm/pg-core";var Pn=ei("alert_dispatches",{id:Kn("id").primaryKey().defaultRandom(),userId:Kn("user_id").notNull(),alertKey:ao("alert_key").notNull(),severity:ao("severity").notNull(),lastDispatchedAt:ti("last_dispatched_at",{withTimezone:!0}).notNull().defaultNow(),lastState:oi("last_state").notNull(),channel:ao("channel").notNull()},e=>[ni("idx_alert_user_key").on(e.userId,e.alertKey,e.lastDispatchedAt.desc())]);import{drizzle as Ln}from"drizzle-orm/postgres-js";import Bn from"postgres";var It={};sr(It,{agentJobs:()=>an,agentRuns:()=>_,agentRunsRelations:()=>Ni,alertDispatches:()=>Pn,announcementDeliveries:()=>Do,announcements:()=>zo,apiKeys:()=>ge,apiKeysRelations:()=>si,benchmarks:()=>me,benchmarksRelations:()=>Ri,cliErrorEvents:()=>Wo,cliSetupEvents:()=>Yo,contentBlobs:()=>on,contextSnapshots:()=>H,contextSnapshotsRelations:()=>Pi,evalConversations:()=>Ne,evalConversationsRelations:()=>Ki,evalJobs:()=>xe,evalJobsRelations:()=>Si,evalRuns:()=>B,evalRunsRelations:()=>ji,evalTargets:()=>s,evalTargetsRelations:()=>Di,evals:()=>E,evalsRelations:()=>bi,extensionAuthCodes:()=>cn,harnessReleases:()=>Nn,insightsJobs:()=>dn,instructionEvents:()=>ie,instructionEventsRelations:()=>mi,instructionSuggestionEvents:()=>Tn,instructionSuggestions:()=>ro,instructionUsageEvents:()=>le,instructionUsageEventsRelations:()=>zi,instructionVersions:()=>oe,instructionVersionsRelations:()=>_i,instructions:()=>n,instructionsRelations:()=>ci,launchJobs:()=>he,launchJobsRelations:()=>vi,limitObservations:()=>jn,memories:()=>T,memoriesRelations:()=>pi,modelPricing:()=>wn,notificationPreferences:()=>bo,notifications:()=>to,optimizationRuns:()=>fe,optimizationRunsRelations:()=>Ei,orgInvitations:()=>D,orgInvitationsRelations:()=>di,organizations:()=>u,organizationsRelations:()=>ii,packInstructions:()=>L,packInstructionsRelations:()=>Ai,packs:()=>h,packsRelations:()=>wi,pendingTreatmentExposures:()=>Po,planLimitsActive:()=>Sn,profiles:()=>o,profilesRelations:()=>ri,projectCheckouts:()=>To,projectInstructions:()=>O,projectInstructionsRelations:()=>xi,projects:()=>r,projectsRelations:()=>fi,providerDocsSnapshots:()=>Rn,sessionEvents:()=>re,sessionEventsRelations:()=>hi,sessionInstructions:()=>C,sessionInstructionsRelations:()=>Ii,sessionSendJobs:()=>Mo,sessionTerminalTargets:()=>nt,sessions:()=>d,sessionsRelations:()=>gi,skillSubmissions:()=>fn,teams:()=>x,teamsRelations:()=>ai,treatmentAssignments:()=>b,treatmentAssignmentsRelations:()=>yi,treatmentExposures:()=>j,treatmentExposuresRelations:()=>Ti,triggerEvals:()=>_e,triggerEvalsRelations:()=>ki,userOrganizations:()=>ee,userOrganizationsRelations:()=>ui,userTeams:()=>te,userTeamsRelations:()=>li,workerConnections:()=>Fo});import{relations as i}from"drizzle-orm";var ri=i(o,({many:e})=>({sessions:e(d),contextSnapshots:e(H),apiKeys:e(ge)})),si=i(ge,({one:e})=>({profile:e(o,{fields:[ge.userId],references:[o.id]})})),ii=i(u,({many:e})=>({teams:e(x),userOrganizations:e(ee),projects:e(r),invitations:e(D)})),ai=i(x,({one:e,many:t})=>({organization:e(u,{fields:[x.orgId],references:[u.id]}),userTeams:t(te),invitations:t(D)})),di=i(D,({one:e})=>({organization:e(u,{fields:[D.orgId],references:[u.id]}),team:e(x,{fields:[D.teamId],references:[x.id]}),inviter:e(o,{fields:[D.invitedBy],references:[o.id]})})),ui=i(ee,({one:e})=>({organization:e(u,{fields:[ee.orgId],references:[u.id]})})),li=i(te,({one:e})=>({team:e(x,{fields:[te.teamId],references:[x.id]})})),ci=i(n,({one:e,many:t})=>({versions:t(oe),projectInstructions:t(O),events:t(ie),usageEvents:t(le),sessionInstructions:t(C),packInstructions:t(L),forkedFrom:e(n,{fields:[n.forkedFromId],references:[n.id]})})),mi=i(ie,({one:e})=>({instruction:e(n,{fields:[ie.instructionId],references:[n.id]})})),pi=i(T,({one:e,many:t})=>({project:e(r,{fields:[T.projectId],references:[r.id]}),parent:e(T,{fields:[T.parentId],references:[T.id]}),versions:t(T)})),_i=i(oe,({one:e})=>({instruction:e(n,{fields:[oe.instructionId],references:[n.id]})})),fi=i(r,({one:e,many:t})=>({organization:e(u,{fields:[r.orgId],references:[u.id]}),projectInstructions:t(O),sessions:t(d)})),xi=i(O,({one:e})=>({project:e(r,{fields:[O.projectId],references:[r.id]}),instruction:e(n,{fields:[O.instructionId],references:[n.id]})})),gi=i(d,({one:e,many:t})=>({profile:e(o,{fields:[d.userId],references:[o.id]}),project:e(r,{fields:[d.projectId],references:[r.id]}),run:e(_,{fields:[d.runId],references:[_.id]}),events:t(re),sessionInstructions:t(C),treatmentExposures:t(j),contextSnapshots:t(H)})),Ni=i(_,({one:e,many:t})=>({profile:e(o,{fields:[_.userId],references:[o.id]}),organization:e(u,{fields:[_.orgId],references:[u.id]}),project:e(r,{fields:[_.projectId],references:[r.id]}),sessions:t(d),launchJobs:t(he)})),vi=i(he,({one:e})=>({run:e(_,{fields:[he.runId],references:[_.id]})})),hi=i(re,({one:e})=>({session:e(d,{fields:[re.sessionId],references:[d.id]})})),Ii=i(C,({one:e})=>({session:e(d,{fields:[C.sessionId],references:[d.id]}),instruction:e(n,{fields:[C.instructionId],references:[n.id]})})),yi=i(b,({one:e,many:t})=>({owner:e(o,{fields:[b.userId],references:[o.id]}),project:e(r,{fields:[b.projectId],references:[r.id]}),exposures:t(j)})),Ti=i(j,({one:e})=>({session:e(d,{fields:[j.sessionId],references:[d.id]}),owner:e(o,{fields:[j.userId],references:[o.id]}),assignment:e(b,{fields:[j.assignmentId],references:[b.id]})})),wi=i(h,({one:e,many:t})=>({packInstructions:t(L),forkedFrom:e(h,{fields:[h.forkedFromId],references:[h.id]})})),Ai=i(L,({one:e})=>({pack:e(h,{fields:[L.packId],references:[h.id]}),instruction:e(n,{fields:[L.instructionId],references:[n.id]})})),zi=i(le,({one:e})=>({instruction:e(n,{fields:[le.instructionId],references:[n.id]})})),Di=i(s,({one:e,many:t})=>({parent:e(s,{fields:[s.parentId],references:[s.id]}),evals:t(E),evalRuns:t(B),benchmarks:t(me),triggerEvals:t(_e),optimizationRuns:t(fe),evalJobs:t(xe),evalConversations:t(Ne)})),bi=i(E,({one:e,many:t})=>({evalTarget:e(s,{fields:[E.evalTargetId],references:[s.id]}),runs:t(B)})),ji=i(B,({one:e})=>({eval:e(E,{fields:[B.evalId],references:[E.id]}),evalTarget:e(s,{fields:[B.evalTargetId],references:[s.id]})})),Ri=i(me,({one:e})=>({evalTarget:e(s,{fields:[me.evalTargetId],references:[s.id]})})),ki=i(_e,({one:e})=>({evalTarget:e(s,{fields:[_e.evalTargetId],references:[s.id]})})),Ei=i(fe,({one:e})=>({evalTarget:e(s,{fields:[fe.evalTargetId],references:[s.id]})})),Si=i(xe,({one:e})=>({evalTarget:e(s,{fields:[xe.evalTargetId],references:[s.id]})})),Ki=i(Ne,({one:e})=>({evalTarget:e(s,{fields:[Ne.evalTargetId],references:[s.id]})})),Pi=i(H,({one:e})=>({session:e(d,{fields:[H.sessionId],references:[d.id]}),profile:e(o,{fields:[H.userId],references:[o.id]})}));var Ve=0,On=0,Fe=0,Cn=0;var Oi=0;function uo(){Ve++,Ve>On&&(On=Ve)}m(uo,"trackDbOpStart");function lo(){Ve>0&&Ve--}m(lo,"trackDbOpEnd");function co(){Fe++,Fe>Cn&&(Cn=Fe)}m(co,"trackHeavyDbOpStart");function mo(){Fe>0&&Fe--}m(mo,"trackHeavyDbOpEnd");function qn(){Oi++}m(qn,"recordQueryDeadline");var Tt,At,po=!1,yt;var Mn,zt,wt;function Un(e){let t=process.env[e];if(!t)throw new Error(`Missing required env var: ${e}`);return t}m(Un,"getEnv");function Hn(){if(po)throw new Error("getDb() called after closeDb(): the connection pool is closed for shutdown. Stop issuing queries (timers/requests) before draining the pool.");if(!Tt){let e=process.env.PG_APPLICATION_NAME||"rulemetric",t=Number(process.env.PG_POOL_MAX)||3,a=Number(process.env.PG_CONNECT_TIMEOUT_S)||10,l=Number(process.env.PG_STATEMENT_TIMEOUT_MS)||0,c=Number(process.env.PG_IDLE_TIMEOUT)||5,p=Number(process.env.PG_KEEP_ALIVE_S)||60;At=Bn(Un("DATABASE_URL"),{prepare:!1,max:t,connect_timeout:a,idle_timeout:c,keep_alive:p,max_lifetime:300,connection:{application_name:e,...l>0?{statement_timeout:l}:{}}}),Tt=Ln(At,{schema:It})}return Tt}m(Hn,"getDb");function Vn(){if(po)throw new Error("getHeavyDb() called after closeDb(): the connection pool is closed for shutdown. Stop issuing queries (timers/requests) before draining the pool.");if(!wt){let e=(process.env.PG_APPLICATION_NAME||"rulemetric")+":heavy",t=Number(process.env.PG_HEAVY_POOL_MAX)||2;zt=Bn(Un("DATABASE_URL"),{prepare:!1,max:t,connect_timeout:Number(process.env.PG_CONNECT_TIMEOUT_S)||10,idle_timeout:Number(process.env.PG_IDLE_TIMEOUT)||5,keep_alive:Number(process.env.PG_KEEP_ALIVE_S)||60,max_lifetime:300,connection:{application_name:e}}),wt=Ln(zt,{schema:It})}return wt}m(Vn,"getHeavyDb");async function Ci(){if(yt)return yt;po=!0;let e=At,t=Mn,a=zt;return At=void 0,Tt=void 0,Mn=void 0,zt=void 0,wt=void 0,yt=Promise.allSettled([e?e.end({timeout:5}):Promise.resolve(),t?t.end({timeout:5}):Promise.resolve(),a?a.end({timeout:5}):Promise.resolve()]).then(()=>{}),yt}m(Ci,"closeDb");var qi=new Set(["CONNECT_TIMEOUT","ETIMEDOUT","ENOTFOUND","ECONNREFUSED","EAI_AGAIN"]);function Fn(e){let t=e,a=t?.code??t?.cause?.code??t?.errno;return a!==void 0&&qi.has(a)}m(Fn,"isRetryableConnectError");var Mi=new Set(["CONNECTION_CLOSED","ECONNRESET","EPIPE"]);function Gn(e){let t=e,a=t?.code??t?.cause?.code??t?.errno;return a!==void 0&&Mi.has(a)}m(Gn,"isRetryableResetError");async function Jn(e,t={}){let a=t.attempts??3,l=t.baseMs??100,c;for(let p=0;p<a;p++)try{return await e()}catch(g){c=g;let Ie=Fn(g)||t.retryResets===!0&&Gn(g);if(p===a-1||!Ie)throw g;await new Promise(V=>setTimeout(V,l*2**p))}throw c}m(Jn,"withDbRetry");var Dt=class extends Error{static{m(this,"QueryDeadlineError")}code="QUERY_DEADLINE";constructor(t){super(`Query exceeded the client-side deadline of ${t}ms \u2014 the DB pool is likely saturated (acquire-wait) or holding a dead socket; failing fast to avoid pinning the caller. See client.ts.`),this.name="QueryDeadlineError"}};function Yn(){let e=Number(process.env.PG_QUERY_DEADLINE_MS);return Number.isFinite(e)&&e>=0?e:2e4}m(Yn,"queryDeadlineMs");function Li(e,t){let a,l=new Promise((c,p)=>{a=setTimeout(()=>{qn(),p(new Dt(t))},t);let g=a;typeof g.unref=="function"&&g.unref()});return Promise.race([e,l]).finally(()=>clearTimeout(a))}m(Li,"raceWithDeadline");var Qn=new Set(["select","selectDistinct","selectDistinctOn","insert","update","delete","execute","with","$count","refreshMaterializedView"]),Wn=new Set(["select","selectDistinct","selectDistinctOn","$count"]);function _o(e,t=!1,a=0,l=!1){return e===null||typeof e!="object"&&typeof e!="function"?e:new Proxy(e,{get(c,p,g){if(p==="then"){let V=Reflect.get(c,p,g);return typeof V!="function"?V:(Zn,er)=>{let tr=l?co:uo,or=l?mo:lo;tr();let fo=Jn(()=>new Promise((nr,rr)=>V.call(c,nr,rr)),{retryResets:t});return(a>0?Li(fo,a):fo).finally(or).then(Zn,er)}}let Ie=Reflect.get(c,p,g);return typeof Ie=="function"?(...V)=>_o(Ie.apply(c,V),t,a,l):Ie}})}m(_o,"wrapBuilder");function Xn(e,t=!1){let a=t?co:uo,l=t?mo:lo;a();try{return Promise.resolve(e()).finally(l)}catch(c){throw l(),c}}m(Xn,"gaugeTransaction");var $n=new Proxy({},{get(e,t){let a=Hn(),l=a[t];if(typeof t=="string"&&Qn.has(t)&&typeof l=="function"){let c=Wn.has(t),p=Yn();return(...g)=>_o(l.apply(a,g),c,p)}return t==="transaction"&&typeof l=="function"?(...c)=>Xn(()=>l.apply(a,c)):l}}),Bi=new Proxy({},{get(e,t){let a=Vn(),l=a[t];if(typeof t=="string"&&Qn.has(t)&&typeof l=="function"){let c=Wn.has(t);return(...p)=>_o(l.apply(a,p),c,0,!0)}return t==="transaction"&&typeof l=="function"?(...c)=>Xn(()=>l.apply(a,c),!0):l}});export{o as a,_ as b,d as c,re as d,zo as e,Do as f,bo as g,Hn as h,Ci 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-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
+ 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-DL6OUTPW.js";import{a as S}from"./chunk-RSKQRVPJ.js";import{a as A}from"./chunk-6FG5HXM3.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-XMJT7BXQ.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-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}
1
+ import{c as R}from"./chunk-6QKI756T.js";import{b as s,c as r,h as j}from"./chunk-6GGVD6RZ.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};
@@ -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-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
+ 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-6GGVD6RZ.js";import{a as r}from"./chunk-ZLLER3HP.js";import*as a from"node:fs/promises";import*as g from"node:path";import{eq as b}from"drizzle-orm";async function v(e){let n=e;for(let t=0;t<50;t++){try{return await a.stat(g.join(n,"pnpm-workspace.yaml")),n}catch{}let i=g.dirname(n);if(i===n)return null;n=i}return null}r(v,"findRepoRoot");async function k(e){if(e)try{return await a.readFile(e,"utf-8")}catch{return null}let n=await v(process.cwd())??process.cwd(),t=g.join(n,"CHANGELOG.md");try{return await a.readFile(t,"utf-8")}catch{return null}}r(k,"readChangelog");var _="https://rulemetric.com";function D(e){let n=e.date??new Date().toISOString().slice(0,10),t=C({version:e.version,date:n,sections:e.sections,unsubscribeUrl:"{{unsubscribe_url}}",recipientName:"{{recipient_name}}",productUrl:_});return{version:e.version,releaseDate:n,subject:t.subject,htmlBody:t.html,textBody:t.text,sections:e.sections}}r(D,"renderRow");async function R(e={}){let n=e.db??f(),t=e.logger??{info:r(s=>console.log(s),"info"),warn:r(s=>console.warn(s),"warn")},i=await k(e.changelogPath);if(i===null)return t.info("[cron_check_changelog] CHANGELOG.md not found; nothing to do"),{createdCount:0,skippedCount:0};let y=m(i),h=p(y);if(h.length===0)return t.info("[cron_check_changelog] No announceable entries; nothing to do"),{createdCount:0,skippedCount:0};let d=0,l=0;for(let s of h){if((await n.select({id:c.id}).from(c).where(b(c.version,s.version)).limit(1)).length>0){l++;continue}let o=D(s);try{await n.insert(c).values({version:o.version,releaseDate:o.releaseDate,subject:o.subject,htmlBody:o.htmlBody,textBody:o.textBody,sections:o.sections,status:"draft"}),d++,t.info(`[cron_check_changelog] Created draft announcement for ${o.version}`)}catch(u){let w=u instanceof Error?u.message:String(u);if(/duplicate key|unique/i.test(w)){l++;continue}throw u}}return t.info(`[cron_check_changelog] Done: created ${d}, skipped ${l}`),{createdCount:d,skippedCount:l}}r(R,"processChangelog");export{R as a};
@@ -1,2 +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-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}
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-6GGVD6RZ.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,3 +1,3 @@
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.
1
+ import{e as N}from"../../chunk-D7D523MK.js";import"../../chunk-TIOKY2IA.js";import"../../chunk-TQMG647B.js";import"../../chunk-W2MOTOQE.js";import"../../chunk-DL6OUTPW.js";import"../../chunk-6QKI756T.js";import"../../chunk-RSKQRVPJ.js";import"../../chunk-6FG5HXM3.js";import"../../chunk-QFVGUZDO.js";import"../../chunk-KAF3CYRW.js";import"../../chunk-UF6US7VU.js";import"../../chunk-DPFNJZUO.js";import"../../chunk-RTWRHIKY.js";import"../../chunk-XMJT7BXQ.js";import"../../chunk-ZL4MZMUK.js";import"../../chunk-N7TGRFVZ.js";import{i as f}from"../../chunk-6GGVD6RZ.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 +1 @@
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
+ import{a,b,c,d,e}from"../chunk-D7D523MK.js";import"../chunk-TIOKY2IA.js";import"../chunk-TQMG647B.js";import"../chunk-W2MOTOQE.js";import"../chunk-DL6OUTPW.js";import"../chunk-6QKI756T.js";import"../chunk-RSKQRVPJ.js";import"../chunk-6FG5HXM3.js";import"../chunk-QFVGUZDO.js";import"../chunk-KAF3CYRW.js";import"../chunk-UF6US7VU.js";import"../chunk-DPFNJZUO.js";import"../chunk-RTWRHIKY.js";import"../chunk-XMJT7BXQ.js";import"../chunk-ZL4MZMUK.js";import"../chunk-N7TGRFVZ.js";import"../chunk-6GGVD6RZ.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}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
+ import{a}from"../../chunk-XMJT7BXQ.js";import"../../chunk-N7TGRFVZ.js";import"../../chunk-6GGVD6RZ.js";import"../../chunk-5RBLIVBF.js";import"../../chunk-ZLLER3HP.js";export{a as processAnnouncement};
@@ -1 +1 @@
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
+ import{a}from"../../chunk-SCKD37NC.js";import"../../chunk-ZL4MZMUK.js";import"../../chunk-N7TGRFVZ.js";import"../../chunk-6GGVD6RZ.js";import"../../chunk-ZLLER3HP.js";export{a as processChangelog};
@@ -1 +1 @@
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
+ import{a}from"../../chunk-DL6OUTPW.js";import"../../chunk-6QKI756T.js";import"../../chunk-6GGVD6RZ.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-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
+ import{a}from"../../chunk-6FG5HXM3.js";import"../../chunk-RTWRHIKY.js";import"../../chunk-6GGVD6RZ.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-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};
1
+ import{a as l}from"../chunk-SCKD37NC.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-6GGVD6RZ.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.6"
4080
+ "version": "0.7.7"
4081
4081
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@rulemetric/cli",
3
- "version": "0.7.6",
3
+ "version": "0.7.7",
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/hooks": "0.7.6",
78
- "@rulemetric/skills-registry": "0.7.6",
79
- "@rulemetric/proxy": "0.7.6"
77
+ "@rulemetric/proxy": "0.7.7",
78
+ "@rulemetric/hooks": "0.7.7",
79
+ "@rulemetric/skills-registry": "0.7.7"
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": {
@@ -99,8 +99,8 @@
99
99
  "@rulemetric/db": "0.0.1",
100
100
  "@rulemetric/effectiveness": "0.0.1",
101
101
  "@rulemetric/email": "0.0.1",
102
- "@rulemetric/telemetry": "0.0.1",
103
102
  "@rulemetric/session": "0.2.1",
103
+ "@rulemetric/telemetry": "0.0.1",
104
104
  "@rulemetric/typescript-config": "0.0.0"
105
105
  },
106
106
  "scripts": {
@@ -1 +0,0 @@
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};