@rulemetric/cli 0.7.5 → 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.
- package/dist/{chunk-AYUJY37O.js → chunk-6FG5HXM3.js} +1 -1
- package/dist/chunk-6GGVD6RZ.js +1 -0
- package/dist/{chunk-43YBXX7R.js → chunk-D7D523MK.js} +1 -1
- package/dist/{chunk-VAXRCSSH.js → chunk-DL6OUTPW.js} +1 -1
- package/dist/chunk-FLMBC5E4.js +1 -0
- package/dist/{chunk-JQTGQXUX.js → chunk-SCKD37NC.js} +1 -1
- package/dist/{chunk-2WLVDSAP.js → chunk-XMJT7BXQ.js} +1 -1
- package/dist/commands/evals/agent.js +1 -1
- package/dist/commands/evals/benchmark.js +6 -6
- package/dist/lib/agent-loop.js +1 -1
- package/dist/lib/eval-benchmark.js +1 -1
- package/dist/lib/handlers/process-announcement.js +1 -1
- package/dist/lib/handlers/process-changelog.js +1 -1
- package/dist/lib/handlers/process-run-cleanup.js +1 -1
- package/dist/lib/handlers/process-session-goal.js +1 -1
- package/dist/lib/manual-tasks.js +1 -1
- package/oclif.manifest.json +1 -1
- package/package.json +7 -6
- package/dist/chunk-G63KMH6U.js +0 -1
- package/dist/chunk-H4SV7FN4.js +0 -1
|
@@ -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-
|
|
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-
|
|
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-
|
|
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};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{e as w,f as k}from"./chunk-H2ORWIEY.js";import{a as u}from"./chunk-ZLLER3HP.js";import{buildControlledVerdict as _}from"@rulemetric/effectiveness";function h(e){if(e.length===0)return{mean:0,stddev:0,min:0,max:0};let n=e.reduce((s,a)=>s+a,0)/e.length,o=e.reduce((s,a)=>s+(a-n)**2,0)/e.length;return{mean:Math.round(n*1e3)/1e3,stddev:Math.round(Math.sqrt(o)*1e3)/1e3,min:Math.min(...e),max:Math.max(...e)}}u(h,"computeStats");var x="with_target",E="without_target";function $(e){let n=e.grading.summary?.pass_rate;return typeof n=="number"&&n>=1}u($,"fullPass");function b(e){return e.grading.summary?.pass_rate!=null}u(b,"hasGrading");function R(e){let n=e.timing.total_tokens;return typeof n=="number"&&n>0?n:void 0}u(R,"tokensOf");function v(e){let n=e.timing.duration_ms;return typeof n=="number"&&!isNaN(n)?n/1e3:void 0}u(v,"secondsOf");function y(e,n){let o={};for(let s of e)(o[n(s)]??=[]).push(s);return o}u(y,"groupBy");function T(e,n){let o=y(e.filter(b),i=>i.evalId),s=y(n.filter(b),i=>i.evalId),a=u((i,l)=>i.runNumber-l.runNumber,"byRun"),t=[];for(let i of Object.keys(o)){let l=o[i].sort(a),d=(s[i]??[]).sort(a);for(let r=0;r<Math.min(l.length,d.length);r++){let c={withScore:$(l[r])?1:0,withoutScore:$(d[r])?1:0},f=R(l[r]),g=R(d[r]);f!=null&&g!=null&&(c.withCost=f,c.withoutCost=g);let p=v(l[r]),m=v(d[r]);p!=null&&m!=null&&(c.withLatency=p,c.withoutLatency=m),t.push(c)}}return t}u(T,"pairRunsByEval");function C(e){let n=e.filter(r=>r.status==="completed");if(n.length===0)return{runSummary:{},verdict:null,notes:["No completed runs found"],totalRuns:0};let o=y(n,r=>r.configuration),s={},a=[];for(let[r,c]of Object.entries(o)){let f=c.filter(b).map(m=>m.grading.summary.pass_rate),g=c.map(v).filter(m=>m!=null),p=c.map(R).filter(m=>m!=null);s[r]={},f.length>0&&(s[r].pass_rate=h(f)),g.length>0&&(s[r].time_seconds=h(g)),p.length>0&&(s[r].tokens=h(p))}let t=null,i=o[x]??[],l=o[E]??[],d=T(i,l);if(d.length>0){if(t=_(d),!t.sufficient)a.push(t.insufficientReason??"Insufficient data for a significance verdict.");else if(t.significant){let r=t.delta>=0?"improves":"reduces",c=t.pValue!=null?`, McNemar p=${t.pValue.toFixed(4)}`:"";a.push(`Target ${r} the pass rate by ${Math.abs(t.delta*100).toFixed(0)}% (95% CI ${(t.ci.lower*100).toFixed(0)}\u2013${(t.ci.upper*100).toFixed(0)}%, n=${t.nWith}${c}).`)}else a.push(`No significant effect on pass rate (95% CI ${(t.ci.lower*100).toFixed(0)}\u2013${(t.ci.upper*100).toFixed(0)}%, n=${t.nWith}).`);t.costDelta!=null&&Math.round(t.costDelta)!==0&&a.push(`Token cost delta: ${t.costDelta>=0?"+":""}${Math.round(t.costDelta)} tokens/task.`),t.latencyDelta!=null&&Math.abs(t.latencyDelta)>1&&a.push(`Target ${t.latencyDelta>0?"adds":"saves"} ${Math.abs(t.latencyDelta).toFixed(1)}s/task.`)}for(let r of Object.values(s))if(r.pass_rate&&r.pass_rate.stddev>.2){a.push(`High pass-rate variance (stddev=${r.pass_rate.stddev.toFixed(2)}) \u2014 results may be unreliable.`);break}return{runSummary:s,verdict:t,notes:a,totalRuns:n.length}}u(C,"summarizeRuns");async function S(e,n){let o=n?`&iteration=${n}`:"",s=100,a=[];for(let t=0;t<1e5;t+=s){let i=await w(`/api/eval-targets/${e}/runs?limit=${s}&offset=${t}${o}`);if(a.push(...i),i.length<s)break}return C(a)}u(S,"aggregateBenchmark");async function B(e,n,o){return k(`/api/eval-targets/${e}/benchmarks`,{iteration:n,runSummary:o.runSummary,notes:o.notes})}u(B,"postBenchmark");export{C as a,S as b,B as c};
|
|
@@ -1 +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-
|
|
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-
|
|
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,"&").replace(/</g,"<").replace(/>/g,">").replace(/"/g,""").replace(/'/g,"'")}$(K,"escapeHtml");async function W(I){let{recipient:s,announcement:t,webBaseUrl:D,sendEmail:p,db:b}=I;if(!s.email)return{ok:"skipped",reason:"no-email"};let r=await b.insert(n).values({announcementId:t.id,userId:s.userId,email:s.email,status:"pending"}).onConflictDoNothing({target:[n.announcementId,n.userId]}).returning({id:n.id});if(r.length===0)return{ok:"skipped",reason:"already-claimed"};let i=r[0].id,w=D.replace(/\/$/,""),f=encodeURIComponent(s.unsubscribeToken),h=`${w}/unsubscribe/${f}`,y=s.displayName?.trim().split(/\s+/)[0]||"there",k=t.htmlBody.replaceAll("{{unsubscribe_url}}",h).replaceAll("{{recipient_name}}",K(y)),o=t.textBody.replaceAll("{{unsubscribe_url}}",h).replaceAll("{{recipient_name}}",y);try{let e=await p({to:s.email,subject:t.subject,html:k,text:o,fromName:"RuleMetric",idempotencyKey:i,headers:{"List-Unsubscribe":`<${w}/api/unsubscribe/${f}>`,"List-Unsubscribe-Post":"List-Unsubscribe=One-Click"}});if(e.provider==="noop"){let a="no email provider configured (RESEND_API_KEY unset on the worker)";return await b.update(n).set({status:"failed",error:a}).where(l(n.id,i)),{ok:"failed",error:a,provider:e.provider}}return await b.update(n).set({status:"sent",providerId:e.id,sentAt:new Date}).where(l(n.id,i)),{ok:"sent",providerId:e.id,provider:e.provider}}catch(e){let a=e instanceof Error?e.message:String(e);return await b.update(n).set({status:"failed",error:a.slice(0,1e3)}).where(l(n.id,i)).catch(()=>{}),{ok:"failed",error:a}}}$(W,"sendOne");export{G as a};
|
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
import{e as N}from"../../chunk-
|
|
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,6 +1,6 @@
|
|
|
1
|
-
import{
|
|
2
|
-
Aggregated ${
|
|
3
|
-
`);for(let[
|
|
4
|
-
|
|
5
|
-
Notes:`);for(let
|
|
6
|
-
Benchmark saved: ${
|
|
1
|
+
import{b as d,c as m}from"../../chunk-FLMBC5E4.js";import{a as l}from"../../chunk-PPKPCXJD.js";import"../../chunk-IZTIYR5Q.js";import"../../chunk-V44SRRYR.js";import"../../chunk-U6XEU573.js";import"../../chunk-VLOX6KOM.js";import"../../chunk-3AV3GTMP.js";import{e as c}from"../../chunk-H2ORWIEY.js";import"../../chunk-O6C2UGBY.js";import{a as g}from"../../chunk-ZLLER3HP.js";import{Args as v,Flags as b}from"@oclif/core";var s=class f extends l{static{g(this,"EvalBenchmarkCommand")}static description="Aggregate eval runs into a benchmark for a target";static examples=["<%= config.bin %> evals benchmark <target-id>","<%= config.bin %> evals benchmark <target-id> --iteration 2"];static args={targetId:v.string({description:"Eval target ID",required:!0})};static flags={iteration:b.integer({description:"Filter runs by iteration",default:1})};async run(){let{args:a,flags:n}=await this.parse(f);this.requireAuth();let o=await c(`/api/eval-targets/${a.targetId}`);this.log(`Aggregating benchmark for "${o.name}" v${o.version}, iteration ${n.iteration}`);let e=await d(a.targetId,n.iteration);e.totalRuns===0&&this.error("No completed runs found. Run evals first with `rulemetric evals run`."),this.log(`
|
|
2
|
+
Aggregated ${e.totalRuns} runs
|
|
3
|
+
`);for(let[i,h]of Object.entries(e.runSummary)){this.log(`${i}:`);for(let[$,p]of Object.entries(h)){let r=p;this.log(` ${$}: mean=${r.mean} stddev=${r.stddev} [${r.min}, ${r.max}]`)}}let t=e.verdict;if(t)if(this.log(`
|
|
4
|
+
Verdict (${t.mode}, baseline=${t.baseline}):`),!t.sufficient)this.log(` ${t.insufficientReason??"insufficient data"} \u2014 no effect claimed`);else{let i=t.delta>=0?"+":"";this.log(` pass-rate delta: ${i}${(t.delta*100).toFixed(0)}% (n=${t.nWith} paired)`),this.log(` 95% CI: ${(t.ci.lower*100).toFixed(0)}\u2013${(t.ci.upper*100).toFixed(0)}%`),t.pValue!=null&&this.log(` McNemar p: ${t.pValue.toFixed(4)}`),this.log(` significant: ${t.significant?"YES":"no"}`)}if(e.notes.length>0){this.log(`
|
|
5
|
+
Notes:`);for(let i of e.notes)this.log(` - ${i}`)}let u=await m(a.targetId,n.iteration,e);this.log(`
|
|
6
|
+
Benchmark saved: ${u.id}`)}};export{s as default};
|
package/dist/lib/agent-loop.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
import{a,b,c,d,e}from"../chunk-
|
|
1
|
+
import{a,b,c,d,e}from"../chunk-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,b}from"../chunk-
|
|
1
|
+
import{a,b,c}from"../chunk-FLMBC5E4.js";import"../chunk-H2ORWIEY.js";import"../chunk-O6C2UGBY.js";import"../chunk-ZLLER3HP.js";export{b as aggregateBenchmark,c as postBenchmark,a as summarizeRuns};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{a}from"../../chunk-
|
|
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-
|
|
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-
|
|
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-
|
|
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};
|
package/dist/lib/manual-tasks.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
import{a as l}from"../chunk-
|
|
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};
|
package/oclif.manifest.json
CHANGED
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@rulemetric/cli",
|
|
3
|
-
"version": "0.7.
|
|
3
|
+
"version": "0.7.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/proxy": "0.7.
|
|
78
|
-
"@rulemetric/
|
|
79
|
-
"@rulemetric/
|
|
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": {
|
|
@@ -97,10 +97,11 @@
|
|
|
97
97
|
"@rulemetric/api": "0.0.1",
|
|
98
98
|
"@rulemetric/core": "0.0.1",
|
|
99
99
|
"@rulemetric/db": "0.0.1",
|
|
100
|
+
"@rulemetric/effectiveness": "0.0.1",
|
|
100
101
|
"@rulemetric/email": "0.0.1",
|
|
101
102
|
"@rulemetric/session": "0.2.1",
|
|
102
|
-
"@rulemetric/
|
|
103
|
-
"@rulemetric/
|
|
103
|
+
"@rulemetric/telemetry": "0.0.1",
|
|
104
|
+
"@rulemetric/typescript-config": "0.0.0"
|
|
104
105
|
},
|
|
105
106
|
"scripts": {
|
|
106
107
|
"build": "node scripts/build.mjs",
|
package/dist/chunk-G63KMH6U.js
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{e as R,f as _}from"./chunk-H2ORWIEY.js";import{a as f}from"./chunk-ZLLER3HP.js";function p(a){if(a.length===0)return{mean:0,stddev:0,min:0,max:0};let i=a.reduce((o,c)=>o+c,0)/a.length,m=a.reduce((o,c)=>o+(c-i)**2,0)/a.length;return{mean:Math.round(i*1e3)/1e3,stddev:Math.round(Math.sqrt(m)*1e3)/1e3,min:Math.min(...a),max:Math.max(...a)}}f(p,"computeStats");async function y(a,i){let m=i?`&iteration=${i}`:"",o=100,c=[];for(let t=0;t<1e5;t+=o){let n=await R(`/api/eval-targets/${a}/runs?limit=${o}&offset=${t}${m}`);if(c.push(...n),n.length<o)break}let l=c.filter(t=>t.status==="completed");if(l.length===0)return{runSummary:{},notes:["No completed runs found"],totalRuns:0};let g={};for(let t of l)g[t.configuration]||(g[t.configuration]=[]),g[t.configuration].push(t);let e={},u=[];for(let[t,n]of Object.entries(g)){let r=n.filter(s=>Object.keys(s.grading).length>0).map(s=>s.grading.summary?.pass_rate??0),d=n.map(s=>s.timing.duration_ms/1e3).filter(s=>!isNaN(s)),h=n.map(s=>s.timing.total_tokens??0).filter(s=>s>0);e[t]={},r.length>0&&(e[t].pass_rate=p(r)),d.length>0&&(e[t].time_seconds=p(d)),h.length>0&&(e[t].tokens=p(h))}if(e.with_target&&e.without_target){let t={};for(let d of["pass_rate","time_seconds","tokens"]){let h=e.with_target[d]?.mean??0,s=e.without_target[d]?.mean??0,b=h-s;t[d]=`${b>=0?"+":""}${Math.round(b*1e3)/1e3}`}e.delta=t,u.push(`Delta is a raw mean difference over ${g.with_target.length} with-target / ${g.without_target.length} without-target runs \u2014 no significance test; small samples are not statistically meaningful.`);let n=(e.with_target.pass_rate?.mean??0)-(e.without_target.pass_rate?.mean??0);n>.1?u.push(`Target improves pass rate by ${(n*100).toFixed(0)}%`):n<-.1?u.push(`Target decreases pass rate by ${(Math.abs(n)*100).toFixed(0)}%`):u.push("Target has minimal impact on pass rate");let r=(e.with_target.time_seconds?.mean??0)-(e.without_target.time_seconds?.mean??0);Math.abs(r)>5&&u.push(`Target ${r>0?"adds":"saves"} ${Math.abs(r).toFixed(1)}s average execution time`)}for(let[t,n]of Object.entries(e)){if(t==="delta")continue;let r=n.pass_rate;r&&r.stddev>.2&&u.push(`${t} shows high pass rate variance (stddev=${r.stddev.toFixed(2)}) \u2014 results may be unreliable`)}return{runSummary:e,notes:u,totalRuns:l.length}}f(y,"aggregateBenchmark");async function $(a,i,m){return _(`/api/eval-targets/${a}/benchmarks`,{iteration:i,runSummary:m.runSummary,notes:m.notes})}f($,"postBenchmark");export{y as a,$ as b};
|
package/dist/chunk-H4SV7FN4.js
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{a as p,c as Bn}from"./chunk-ZLLER3HP.js";import{boolean as io,pgTable as Hn,text as Le,timestamp as Nt,uuid as ao}from"drizzle-orm/pg-core";import{pgTable as Me,text as Q,timestamp as ge,jsonb as ro,uuid as U,primaryKey as so}from"drizzle-orm/pg-core";var a=Me("organizations",{id:U("id").primaryKey().defaultRandom(),name:Q("name").unique().notNull(),slug:Q("slug").unique().notNull(),metadata:ro("metadata"),createdAt:ge("created_at",{withTimezone:!0}).defaultNow(),updatedAt:ge("updated_at",{withTimezone:!0}).defaultNow()}),x=Me("teams",{id:U("id").primaryKey().defaultRandom(),orgId:U("org_id").references(()=>a.id,{onDelete:"cascade"}),name:Q("name").notNull(),slug:Q("slug").notNull(),metadata:ro("metadata"),createdAt:ge("created_at",{withTimezone:!0}).defaultNow()}),W=Me("user_organizations",{userId:U("user_id").notNull(),orgId:U("org_id").references(()=>a.id,{onDelete:"cascade"}).notNull(),role:Q("role").notNull().default("member"),createdAt:ge("created_at",{withTimezone:!0}).defaultNow()},e=>[so({columns:[e.userId,e.orgId]})]),X=Me("user_teams",{userId:U("user_id").notNull(),teamId:U("team_id").references(()=>x.id,{onDelete:"cascade"}).notNull(),role:Q("role").notNull().default("member"),createdAt:ge("created_at",{withTimezone:!0}).defaultNow()},e=>[so({columns:[e.userId,e.teamId]})]);var s=Hn("profiles",{id:ao("id").primaryKey(),email:Le("email"),displayName:Le("display_name"),activeOrgId:ao("active_org_id").references(()=>a.id,{onDelete:"set null"}),isSuperadmin:io("is_superadmin").notNull().default(!1),claudeCodePlan:Le("claude_code_plan"),planSource:Le("plan_source").notNull().default("detected"),setupCompletedAt:Nt("setup_completed_at",{withTimezone:!0}),liveSendSkipped:io("live_send_skipped").notNull().default(!1),createdAt:Nt("created_at",{withTimezone:!0}).defaultNow(),updatedAt:Nt("updated_at",{withTimezone:!0}).defaultNow()});import{pgTable as Yn,text as Z,timestamp as It,jsonb as _o,uuid as He,integer as Qn,boolean as Wn,index as Tt}from"drizzle-orm/pg-core";import{boolean as Gn,jsonb as Vn,pgTable as yt,primaryKey as co,text as B,timestamp as ve,uniqueIndex as ht,uuid as H}from"drizzle-orm/pg-core";import{sql as Jn}from"drizzle-orm";import{pgTable as uo,text as f,timestamp as Ne,jsonb as Be,uuid as E,integer as vt,boolean as Fn,uniqueIndex as lo,index as Ue}from"drizzle-orm/pg-core";var o=uo("instructions",{id:E("id").primaryKey().defaultRandom(),name:f("name").notNull(),description:f("description").notNull(),type:f("type").notNull().default("instruction"),scope:f("scope").notNull(),scopeRef:E("scope_ref"),version:f("version").notNull(),content:f("content").notNull(),frontmatter:Be("frontmatter").notNull(),slots:Be("slots"),tags:f("tags").array(),compatibility:f("compatibility").array(),createdBy:E("created_by"),createdAt:Ne("created_at",{withTimezone:!0}).defaultNow(),updatedAt:Ne("updated_at",{withTimezone:!0}).defaultNow(),archived:Fn("archived").default(!1),archivedAt:Ne("archived_at",{withTimezone:!0}),archivedBy:E("archived_by"),forkedFromId:E("forked_from_id").references(()=>o.id,{onDelete:"set null"}),upstreamVersion:f("upstream_version"),badge:f("badge"),contentHash:f("content_hash"),contextIdentity:f("context_identity"),scanScore:vt("scan_score"),scanFindings:Be("scan_findings"),popularityScore:vt("popularity_score"),sourceUpdatedAt:Ne("source_updated_at",{withTimezone:!0})},e=>[lo("instructions_name_scope_ref_idx").on(e.name,e.scope,e.scopeRef),Ue("idx_instructions_scope").on(e.scope,e.scopeRef),Ue("idx_instructions_created_by").on(e.createdBy),Ue("idx_instructions_context_identity").on(e.createdBy,e.contextIdentity),Ue("idx_instructions_public_recency").on(e.scope,e.sourceUpdatedAt.desc())]),$=uo("instruction_versions",{id:E("id").primaryKey().defaultRandom(),instructionId:E("instruction_id").references(()=>o.id,{onDelete:"cascade"}),versionNumber:vt("version_number").notNull(),content:f("content").notNull(),frontmatter:Be("frontmatter").notNull(),changeSummary:f("change_summary"),createdBy:E("created_by"),createdAt:Ne("created_at",{withTimezone:!0}).defaultNow()},e=>[lo("instruction_versions_instruction_version_idx").on(e.instructionId,e.versionNumber)]);var l=yt("projects",{id:H("id").primaryKey().defaultRandom(),orgId:H("org_id").references(()=>a.id,{onDelete:"cascade"}),name:B("name").notNull(),description:B("description"),githubRepo:B("github_repo"),gitRemoteUrl:B("git_remote_url"),gitRootCommit:B("git_root_commit"),gitRemoteAliases:B("git_remote_aliases").array().notNull().default([]),metadata:Vn("metadata"),createdBy:H("created_by"),createdAt:ve("created_at",{withTimezone:!0}).defaultNow(),updatedAt:ve("updated_at",{withTimezone:!0}).defaultNow()},e=>[ht("projects_org_name_idx").on(e.orgId,e.name),ht("projects_git_remote_url_unique").on(e.gitRemoteUrl).where(Jn`${e.gitRemoteUrl} IS NOT NULL`)]),j=yt("project_instructions",{projectId:H("project_id").references(()=>l.id,{onDelete:"cascade"}).notNull(),instructionId:H("instruction_id").references(()=>o.id,{onDelete:"cascade"}).notNull(),addedAt:ve("added_at",{withTimezone:!0}).defaultNow(),addedBy:H("added_by")},e=>[co({columns:[e.projectId,e.instructionId]})]),po=yt("project_checkouts",{projectId:H("project_id").references(()=>l.id,{onDelete:"cascade"}).notNull(),path:B("path").notNull(),isWorktree:Gn("is_worktree").notNull().default(!1),firstSeen:ve("first_seen",{withTimezone:!0}).notNull().defaultNow(),lastSeen:ve("last_seen",{withTimezone:!0}).notNull().defaultNow()},e=>[co({columns:[e.projectId,e.path]}),ht("project_checkouts_path_unique").on(e.path)]);var m=Yn("agent_runs",{id:He("id").primaryKey().defaultRandom(),userId:He("user_id").notNull().references(()=>s.id,{onDelete:"cascade"}),orgId:He("org_id").references(()=>a.id,{onDelete:"set null"}),projectId:He("project_id").references(()=>l.id,{onDelete:"set null"}),projectPath:Z("project_path"),gitRemote:Z("git_remote"),baseBranch:Z("base_branch"),title:Z("title"),prompt:Z("prompt"),toolSpec:_o("tool_spec").notNull().default([]),autoWorktree:Wn("auto_worktree").notNull().default(!0),status:Z("status").notNull().default("pending"),sessionCount:Qn("session_count").notNull().default(0),metadata:_o("metadata").notNull().default({}),createdAt:It("created_at",{withTimezone:!0}).notNull().defaultNow(),updatedAt:It("updated_at",{withTimezone:!0}).notNull().defaultNow(),completedAt:It("completed_at",{withTimezone:!0})},e=>[Tt("idx_agent_runs_user").on(e.userId),Tt("idx_agent_runs_org_created").on(e.orgId,e.createdAt),Tt("idx_agent_runs_project").on(e.projectId)]);import{pgTable as wt,text as y,timestamp as he,jsonb as F,uuid as w,integer as Fe,uniqueIndex as mo,index as h}from"drizzle-orm/pg-core";var u=wt("sessions",{id:w("id").primaryKey().defaultRandom(),userId:w("user_id").notNull().references(()=>s.id,{onDelete:"cascade"}),externalSessionId:y("external_session_id"),projectId:w("project_id").references(()=>l.id,{onDelete:"set null"}),orgId:w("org_id").references(()=>a.id,{onDelete:"set null"}),tool:y("tool").notNull(),projectPath:y("project_path"),gitBranch:y("git_branch"),startedAt:he("started_at",{withTimezone:!0}).notNull(),endedAt:he("ended_at",{withTimezone:!0}),eventCount:Fe("event_count").default(0),tokenUsage:F("token_usage"),analysis:F("analysis"),analyzedAt:he("analyzed_at",{withTimezone:!0}),analyzedEventCount:Fe("analyzed_event_count"),analyzedTurnCount:Fe("analyzed_turn_count"),metadata:F("metadata").default({}),origin:y("origin").notNull().default("unknown"),runId:w("run_id").references(()=>m.id,{onDelete:"set null"}),createdAt:he("created_at",{withTimezone:!0}).defaultNow()},e=>[h("idx_sessions_user").on(e.userId),h("idx_sessions_tool").on(e.tool),h("idx_sessions_started_at").on(e.startedAt),h("idx_sessions_project").on(e.projectId),h("idx_sessions_org_started_at").on(e.orgId,e.startedAt),h("idx_sessions_run").on(e.runId),mo("idx_sessions_user_external").on(e.userId,e.externalSessionId)]),ee=wt("session_events",{id:w("id").primaryKey().defaultRandom(),sessionId:w("session_id").notNull().references(()=>u.id,{onDelete:"cascade"}),sequence:Fe("sequence").notNull(),eventType:y("event_type").notNull(),content:y("content"),toolName:y("tool_name"),toolInput:F("tool_input"),toolOutput:F("tool_output"),tokenUsage:F("token_usage"),model:y("model"),timestamp:he("timestamp",{withTimezone:!0}).notNull(),metadata:F("metadata").default({})},e=>[mo("session_events_session_sequence_idx").on(e.sessionId,e.sequence),h("idx_session_events_session_id").on(e.sessionId),h("idx_session_events_event_type").on(e.eventType),h("idx_session_events_model").on(e.model)]),S=wt("session_instructions",{sessionId:w("session_id").notNull().references(()=>u.id,{onDelete:"cascade"}),instructionId:w("instruction_id").notNull().references(()=>o.id,{onDelete:"cascade"}),linkMethod:y("link_method").notNull()},e=>[h("idx_session_instructions_instruction_id").on(e.instructionId)]);import{boolean as Xn,date as $n,index as At,integer as Zn,jsonb as er,pgTable as bt,text as N,timestamp as P,uniqueIndex as tr,uuid as te}from"drizzle-orm/pg-core";var fo=bt("announcements",{id:te("id").primaryKey().defaultRandom(),version:N("version").notNull().unique(),releaseDate:$n("release_date").notNull(),subject:N("subject").notNull(),htmlBody:N("html_body").notNull(),textBody:N("text_body").notNull(),sections:er("sections").notNull().default({}),status:N("status").notNull().default("draft"),recipientCount:Zn("recipient_count"),sentAt:P("sent_at",{withTimezone:!0}),sentBy:te("sent_by"),error:N("error"),createdAt:P("created_at",{withTimezone:!0}).notNull().defaultNow(),updatedAt:P("updated_at",{withTimezone:!0}).notNull().defaultNow()},e=>[At("idx_announcements_status").on(e.status),At("idx_announcements_created").on(e.createdAt)]),xo=bt("announcement_deliveries",{id:te("id").primaryKey().defaultRandom(),announcementId:te("announcement_id").notNull(),userId:te("user_id").notNull(),email:N("email").notNull(),status:N("status").notNull().default("pending"),providerId:N("provider_id"),error:N("error"),sentAt:P("sent_at",{withTimezone:!0}),createdAt:P("created_at",{withTimezone:!0}).notNull().defaultNow()},e=>[tr("uniq_announcement_deliveries_announcement_user").on(e.announcementId,e.userId),At("idx_announcement_deliveries_user").on(e.userId,e.createdAt)]),go=bt("notification_preferences",{userId:te("user_id").primaryKey(),productAnnouncements:Xn("product_announcements").notNull().default(!0),unsubscribeToken:N("unsubscribe_token").notNull().unique(),unsubscribedAt:P("unsubscribed_at",{withTimezone:!0}),createdAt:P("created_at",{withTimezone:!0}).notNull().defaultNow(),updatedAt:P("updated_at",{withTimezone:!0}).notNull().defaultNow()});import{pgTable as or,text as zt,timestamp as Ge,uuid as Ve,index as No}from"drizzle-orm/pg-core";var A=or("org_invitations",{id:Ve("id").primaryKey().defaultRandom(),orgId:Ve("org_id").notNull().references(()=>a.id,{onDelete:"cascade"}),email:zt("email").notNull(),role:zt("role").notNull().default("member"),teamId:Ve("team_id").references(()=>x.id,{onDelete:"set null"}),invitedBy:Ve("invited_by").notNull().references(()=>s.id),token:zt("token").notNull().unique(),expiresAt:Ge("expires_at",{withTimezone:!0}).notNull(),acceptedAt:Ge("accepted_at",{withTimezone:!0}),revokedAt:Ge("revoked_at",{withTimezone:!0}),createdAt:Ge("created_at",{withTimezone:!0}).notNull().defaultNow()},e=>[No("idx_org_invitations_token").on(e.token),No("idx_org_invitations_org").on(e.orgId)]);import{pgTable as nr,text as rr,timestamp as sr,jsonb as ir,uuid as Dt,index as vo}from"drizzle-orm/pg-core";var oe=nr("instruction_events",{id:Dt("id").primaryKey().defaultRandom(),instructionId:Dt("instruction_id").notNull().references(()=>o.id,{onDelete:"cascade"}),eventType:rr("event_type").notNull(),actorId:Dt("actor_id").notNull(),metadata:ir("metadata"),createdAt:sr("created_at",{withTimezone:!0}).defaultNow()},e=>[vo("idx_instruction_events_instruction").on(e.instructionId),vo("idx_instruction_events_type").on(e.eventType)]);import{pgTable as ar,text as ne,timestamp as kt,uuid as Rt,jsonb as dr,uniqueIndex as ur,index as ho}from"drizzle-orm/pg-core";var Je=ar("session_terminal_targets",{id:Rt("id").primaryKey().defaultRandom(),userId:Rt("user_id").notNull().references(()=>s.id,{onDelete:"cascade"}),sessionId:Rt("session_id").references(()=>u.id,{onDelete:"set null"}),externalSessionId:ne("external_session_id"),kind:ne("kind").notNull(),target:ne("target").notNull(),status:ne("status").notNull().default("active"),attachCommand:ne("attach_command").notNull(),projectPath:ne("project_path"),metadata:dr("metadata").notNull().default({}),lastSeenAt:kt("last_seen_at",{withTimezone:!0}).defaultNow(),createdAt:kt("created_at",{withTimezone:!0}).defaultNow(),updatedAt:kt("updated_at",{withTimezone:!0}).defaultNow()},e=>[ur("idx_session_terminal_targets_user_target").on(e.userId,e.target),ho("idx_session_terminal_targets_session").on(e.sessionId),ho("idx_session_terminal_targets_user_status").on(e.userId,e.status)]);import{boolean as lr,index as Ye,jsonb as yo,pgTable as cr,text as G,timestamp as ye,uuid as Qe,integer as pr}from"drizzle-orm/pg-core";var Io=cr("session_send_jobs",{id:Qe("id").primaryKey().defaultRandom(),userId:Qe("user_id").notNull(),sessionId:Qe("session_id").notNull().references(()=>u.id,{onDelete:"cascade"}),terminalTargetId:Qe("terminal_target_id").references(()=>Je.id,{onDelete:"set null"}),target:G("target").notNull(),message:G("message").notNull(),submit:lr("submit").notNull().default(!0),delivery:G("delivery").notNull().default("live"),status:G("status").notNull().default("pending"),result:yo("result"),error:G("error"),attempts:pr("attempts").notNull().default(0),taskKind:G("task_kind"),payload:yo("payload"),claimedBy:G("claimed_by"),claimedAt:ye("claimed_at",{withTimezone:!0}),leaseExpiresAt:ye("lease_expires_at",{withTimezone:!0}),createdAt:ye("created_at",{withTimezone:!0}).defaultNow(),updatedAt:ye("updated_at",{withTimezone:!0}).defaultNow(),completedAt:ye("completed_at",{withTimezone:!0})},e=>[Ye("idx_session_send_jobs_user").on(e.userId),Ye("idx_session_send_jobs_session").on(e.sessionId),Ye("idx_session_send_jobs_status").on(e.status),Ye("idx_session_send_jobs_pending").on(e.userId,e.status)]);import{pgTable as wo,text as V,timestamp as We,jsonb as Ao,uuid as K,integer as _r,boolean as mr,uniqueIndex as fr,index as To,primaryKey as xr}from"drizzle-orm/pg-core";var v=wo("packs",{id:K("id").primaryKey().defaultRandom(),name:V("name").notNull(),description:V("description").notNull(),scope:V("scope").notNull(),scopeRef:K("scope_ref"),version:V("version").notNull().default("1.0.0"),tags:V("tags").array(),badge:V("badge"),metadata:Ao("metadata"),createdBy:K("created_by"),createdAt:We("created_at",{withTimezone:!0}).defaultNow(),updatedAt:We("updated_at",{withTimezone:!0}).defaultNow(),archived:mr("archived").default(!1),archivedAt:We("archived_at",{withTimezone:!0}),archivedBy:K("archived_by"),forkedFromId:K("forked_from_id").references(()=>v.id,{onDelete:"set null"}),upstreamVersion:V("upstream_version")},e=>[fr("packs_name_scope_ref_idx").on(e.name,e.scope,e.scopeRef),To("idx_packs_scope").on(e.scope,e.scopeRef),To("idx_packs_created_by").on(e.createdBy)]),O=wo("pack_instructions",{packId:K("pack_id").references(()=>v.id,{onDelete:"cascade"}).notNull(),instructionId:K("instruction_id").references(()=>o.id,{onDelete:"cascade"}).notNull(),position:_r("position").notNull().default(0),slotOverrides:Ao("slot_overrides"),addedAt:We("added_at",{withTimezone:!0}).defaultNow(),addedBy:K("added_by")},e=>[xr({columns:[e.packId,e.instructionId]})]);import{pgTable as gr,text as Et,timestamp as Nr,jsonb as vr,uuid as jt,index as re}from"drizzle-orm/pg-core";var se=gr("instruction_usage_events",{id:jt("id").primaryKey().defaultRandom(),instructionId:jt("instruction_id").references(()=>o.id,{onDelete:"set null"}),userId:jt("user_id").notNull(),surface:Et("surface").notNull(),action:Et("action").notNull(),metadata:vr("metadata"),traceId:Et("trace_id"),createdAt:Nr("created_at",{withTimezone:!0}).defaultNow()},e=>[re("idx_usage_events_instruction").on(e.instructionId),re("idx_usage_events_user").on(e.userId),re("idx_usage_events_surface").on(e.surface),re("idx_usage_events_action").on(e.action),re("idx_usage_events_created_at").on(e.createdAt),re("idx_usage_events_user_created").on(e.userId,e.createdAt)]);import{pgTable as hr,text as Xe,timestamp as bo,jsonb as yr,uuid as zo,index as St}from"drizzle-orm/pg-core";var Do=hr("worker_connections",{id:zo("id").primaryKey().defaultRandom(),userId:zo("user_id").notNull(),workerType:Xe("worker_type").notNull().default("mcp"),clientName:Xe("client_name").notNull(),clientVersion:Xe("client_version"),workerVersion:Xe("worker_version"),lastHeartbeat:bo("last_heartbeat",{withTimezone:!0}).notNull().defaultNow(),connectedAt:bo("connected_at",{withTimezone:!0}).notNull().defaultNow(),metadata:yr("metadata")},e=>[St("idx_worker_connections_user").on(e.userId),St("idx_worker_connections_heartbeat").on(e.userId,e.lastHeartbeat),St("idx_worker_connections_type").on(e.userId,e.workerType)]);import{pgTable as Ir,text as $e,timestamp as Tr,jsonb as wr,uuid as ko,index as Ro}from"drizzle-orm/pg-core";var Eo=Ir("cli_setup_events",{id:ko("id").primaryKey().defaultRandom(),userId:ko("user_id").notNull(),deviceId:$e("device_id").notNull(),event:$e("event").notNull(),cliVersion:$e("cli_version"),os:$e("os"),props:wr("props").notNull().default({}),createdAt:Tr("created_at",{withTimezone:!0}).notNull().defaultNow()},e=>[Ro("idx_cli_setup_events_user").on(e.userId,e.createdAt),Ro("idx_cli_setup_events_device").on(e.deviceId,e.createdAt)]);import{pgTable as Ar,text as J,integer as br,boolean as zr,timestamp as Dr,jsonb as kr,uuid as Rr,index as jo}from"drizzle-orm/pg-core";var So=Ar("cli_error_events",{id:Rr("id").primaryKey().defaultRandom(),deviceId:J("device_id"),event:J("event").notNull(),command:J("command"),statusCode:br("status_code"),message:J("message"),cliVersion:J("cli_version"),os:J("os"),nodeVersion:J("node_version"),proxied:zr("proxied"),props:kr("props").notNull().default({}),createdAt:Dr("created_at",{withTimezone:!0}).notNull().defaultNow()},e=>[jo("idx_cli_error_events_created").on(e.createdAt),jo("idx_cli_error_events_device").on(e.deviceId,e.createdAt)]);import{pgTable as Ze,text as b,timestamp as ie,jsonb as I,uuid as T,integer as Ie,index as z}from"drizzle-orm/pg-core";var n=Ze("eval_targets",{id:T("id").primaryKey().defaultRandom(),userId:T("user_id").notNull(),name:b("name").notNull(),type:b("type").notNull(),content:b("content").notNull(),description:b("description").notNull().default(""),metadata:I("metadata").notNull().default({}),version:Ie("version").notNull().default(1),parentId:T("parent_id").references(()=>n.id,{onDelete:"set null"}),createdAt:ie("created_at",{withTimezone:!0}).defaultNow(),updatedAt:ie("updated_at",{withTimezone:!0}).defaultNow()},e=>[z("eval_targets_name_user_idx").on(e.name,e.userId),z("idx_eval_targets_user").on(e.userId),z("idx_eval_targets_type").on(e.type),z("idx_eval_targets_parent").on(e.parentId)]),D=Ze("evals",{id:T("id").primaryKey().defaultRandom(),evalTargetId:T("eval_target_id").notNull().references(()=>n.id,{onDelete:"cascade"}),name:b("name").notNull(),prompt:b("prompt").notNull(),expectedOutput:b("expected_output").notNull().default(""),files:I("files").notNull().default([]),expectations:I("expectations").notNull().default([]),createdAt:ie("created_at",{withTimezone:!0}).defaultNow(),updatedAt:ie("updated_at",{withTimezone:!0}).defaultNow()},e=>[z("idx_evals_target").on(e.evalTargetId)]),C=Ze("eval_runs",{id:T("id").primaryKey().defaultRandom(),evalId:T("eval_id").notNull().references(()=>D.id,{onDelete:"cascade"}),evalTargetId:T("eval_target_id").notNull().references(()=>n.id,{onDelete:"cascade"}),evalTargetVersion:Ie("eval_target_version").notNull(),configuration:b("configuration").notNull(),runNumber:Ie("run_number").notNull().default(1),iteration:Ie("iteration").notNull().default(1),status:b("status").notNull().default("completed"),outputs:I("outputs").notNull().default({}),timing:I("timing").notNull().default({}),grading:I("grading").notNull().default({}),comparison:I("comparison"),createdAt:ie("created_at",{withTimezone:!0}).defaultNow()},e=>[z("idx_eval_runs_eval").on(e.evalId),z("idx_eval_runs_target").on(e.evalTargetId),z("idx_eval_runs_iteration").on(e.evalTargetId,e.iteration)]),ae=Ze("benchmarks",{id:T("id").primaryKey().defaultRandom(),evalTargetId:T("eval_target_id").notNull().references(()=>n.id,{onDelete:"cascade"}),iteration:Ie("iteration").notNull().default(1),runSummary:I("run_summary").notNull().default({}),notes:I("notes").notNull().default([]),feedback:I("feedback"),createdAt:ie("created_at",{withTimezone:!0}).defaultNow()},e=>[z("idx_benchmarks_target").on(e.evalTargetId)]);import{pgTable as Ko,text as Pt,timestamp as Kt,jsonb as Oo,uuid as de,integer as Te,index as et,real as Po}from"drizzle-orm/pg-core";var ue=Ko("trigger_evals",{id:de("id").primaryKey().defaultRandom(),evalTargetId:de("eval_target_id").notNull().references(()=>n.id,{onDelete:"cascade"}),userId:de("user_id").notNull(),queries:Oo("queries").notNull().default([]),status:Pt("status").notNull().default("pending_review"),trainIndices:Te("train_indices").array().default([]),testIndices:Te("test_indices").array().default([]),createdAt:Kt("created_at",{withTimezone:!0}).defaultNow(),updatedAt:Kt("updated_at",{withTimezone:!0}).defaultNow()},e=>[et("idx_trigger_evals_target").on(e.evalTargetId),et("idx_trigger_evals_user").on(e.userId)]),le=Ko("optimization_runs",{id:de("id").primaryKey().defaultRandom(),evalTargetId:de("eval_target_id").notNull().references(()=>n.id,{onDelete:"cascade"}),userId:de("user_id").notNull(),type:Pt("type").notNull(),iteration:Te("iteration").notNull(),inputVersion:Te("input_version").notNull(),outputVersion:Te("output_version"),trainScore:Po("train_score"),testScore:Po("test_score"),analysis:Oo("analysis").notNull().default({}),status:Pt("status").notNull().default("running"),createdAt:Kt("created_at",{withTimezone:!0}).defaultNow()},e=>[et("idx_optimization_runs_target").on(e.evalTargetId),et("idx_optimization_runs_user").on(e.userId)]);import{pgTable as Er,text as q,timestamp as jr,jsonb as we,uuid as Ot,integer as Ct,real as Sr,index as Ae,uniqueIndex as Co}from"drizzle-orm/pg-core";var M=Er("context_snapshots",{id:Ot("id").primaryKey().defaultRandom(),sessionId:Ot("session_id").references(()=>u.id,{onDelete:"cascade"}),userId:Ot("user_id").notNull().references(()=>s.id,{onDelete:"cascade"}),sequence:Ct("sequence").notNull().default(0),provider:q("provider").notNull(),model:q("model").notNull(),systemPrompt:q("system_prompt").notNull(),injectedInstructions:we("injected_instructions").notNull().default([]),messagesSummary:we("messages_summary").notNull(),tools:we("tools").notNull().default([]),systemHash:q("system_hash").notNull(),requestHash:q("request_hash").notNull().default(""),toolsHash:q("tools_hash"),injectedHash:q("injected_hash"),messagesDelta:we("messages_delta").default([]),messagesDeltaRef:q("messages_delta_ref"),maxTokens:Ct("max_tokens"),temperature:Sr("temperature"),estimatedTokens:Ct("estimated_tokens"),capturedAt:jr("captured_at",{withTimezone:!0}).notNull().defaultNow(),metadata:we("metadata").default({})},e=>[Ae("idx_context_snapshots_session").on(e.sessionId),Ae("idx_context_snapshots_user").on(e.userId),Ae("idx_context_snapshots_hash").on(e.systemHash),Ae("idx_context_snapshots_request_hash").on(e.requestHash),Co("idx_snapshots_session_request").on(e.sessionId,e.requestHash),Co("idx_snapshots_session_sequence").on(e.sessionId,e.sequence),Ae("idx_context_snapshots_user_session_captured").on(e.userId,e.sessionId,e.capturedAt.desc())]);import{pgTable as Pr,text as qo,timestamp as Kr,jsonb as Or,integer as Cr,index as qr}from"drizzle-orm/pg-core";var Mo=Pr("content_blobs",{hash:qo("hash").primaryKey(),contentType:qo("content_type").notNull(),content:Or("content").notNull(),sizeBytes:Cr("size_bytes").notNull().default(0),createdAt:Kr("created_at",{withTimezone:!0}).defaultNow()},e=>[qr("idx_content_blobs_type").on(e.contentType)]);import{pgTable as Mr,text as tt,timestamp as be,jsonb as ot,uuid as qt,index as nt,integer as Lr}from"drizzle-orm/pg-core";var ce=Mr("eval_jobs",{id:qt("id").primaryKey().defaultRandom(),userId:qt("user_id").notNull(),evalTargetId:qt("eval_target_id").notNull().references(()=>n.id,{onDelete:"cascade"}),status:tt("status").notNull().default("pending"),config:ot("config").notNull().default({}),progress:ot("progress").notNull().default({}),result:ot("result"),error:tt("error"),attempts:Lr("attempts").notNull().default(0),taskKind:tt("task_kind"),payload:ot("payload"),claimedBy:tt("claimed_by"),claimedAt:be("claimed_at",{withTimezone:!0}),leaseExpiresAt:be("lease_expires_at",{withTimezone:!0}),createdAt:be("created_at",{withTimezone:!0}).defaultNow(),updatedAt:be("updated_at",{withTimezone:!0}).defaultNow(),completedAt:be("completed_at",{withTimezone:!0})},e=>[nt("idx_eval_jobs_user").on(e.userId),nt("idx_eval_jobs_target").on(e.evalTargetId),nt("idx_eval_jobs_status").on(e.status),nt("idx_eval_jobs_pending").on(e.userId,e.status)]);import{pgTable as Ur,text as ze,timestamp as De,jsonb as Lo,uuid as Uo,integer as Br,index as Bo}from"drizzle-orm/pg-core";var Ho=Ur("agent_jobs",{id:Uo("id").primaryKey().defaultRandom(),userId:Uo("user_id").notNull(),taskKind:ze("task_kind").notNull(),status:ze("status").notNull().default("pending"),payload:Lo("payload").notNull(),dedupeKey:ze("dedupe_key"),result:Lo("result"),error:ze("error"),attempts:Br("attempts").notNull().default(0),claimedBy:ze("claimed_by"),claimedAt:De("claimed_at",{withTimezone:!0}),leaseExpiresAt:De("lease_expires_at",{withTimezone:!0}),createdAt:De("created_at",{withTimezone:!0}).notNull().defaultNow(),updatedAt:De("updated_at",{withTimezone:!0}).notNull().defaultNow(),completedAt:De("completed_at",{withTimezone:!0})},e=>[Bo("idx_agent_jobs_claim").on(e.userId,e.status,e.taskKind,e.createdAt),Bo("idx_agent_jobs_dedupe").on(e.userId,e.taskKind,e.dedupeKey)]);import{pgTable as Hr,text as ke,timestamp as Re,jsonb as rt,uuid as Mt,index as st,integer as Fr}from"drizzle-orm/pg-core";var Fo=Hr("insights_jobs",{id:Mt("id").primaryKey().defaultRandom(),userId:Mt("user_id").notNull(),status:ke("status").notNull().default("pending"),projectPath:ke("project_path"),projectId:Mt("project_id").references(()=>l.id,{onDelete:"set null"}),config:rt("config").notNull().default({}),progress:rt("progress").notNull().default({}),result:rt("result"),error:ke("error"),attempts:Fr("attempts").notNull().default(0),taskKind:ke("task_kind"),payload:rt("payload"),claimedBy:ke("claimed_by"),claimedAt:Re("claimed_at",{withTimezone:!0}),leaseExpiresAt:Re("lease_expires_at",{withTimezone:!0}),createdAt:Re("created_at",{withTimezone:!0}).defaultNow(),updatedAt:Re("updated_at",{withTimezone:!0}).defaultNow(),completedAt:Re("completed_at",{withTimezone:!0})},e=>[st("idx_insights_jobs_user").on(e.userId),st("idx_insights_jobs_status").on(e.status),st("idx_insights_jobs_pending").on(e.userId,e.status),st("idx_insights_jobs_project").on(e.projectId)]);import{pgTable as Gr,text as Lt,timestamp as it,uuid as Go,index as Vr,uniqueIndex as Jr}from"drizzle-orm/pg-core";var pe=Gr("api_keys",{id:Go("id").primaryKey().defaultRandom(),userId:Go("user_id").notNull().references(()=>s.id,{onDelete:"cascade"}),name:Lt("name").notNull(),keyHash:Lt("key_hash").notNull(),keyPrefix:Lt("key_prefix").notNull(),lastUsedAt:it("last_used_at",{withTimezone:!0}),expiresAt:it("expires_at",{withTimezone:!0}),revokedAt:it("revoked_at",{withTimezone:!0}),createdAt:it("created_at",{withTimezone:!0}).defaultNow()},e=>[Vr("idx_api_keys_user").on(e.userId),Jr("idx_api_keys_hash").on(e.keyHash)]);import{pgTable as Yr,text as Ut,timestamp as Vo,uuid as Qr,index as Wr}from"drizzle-orm/pg-core";var Jo=Yr("extension_auth_codes",{code:Ut("code").primaryKey(),userId:Qr("user_id").notNull().references(()=>s.id,{onDelete:"cascade"}),editor:Ut("editor"),email:Ut("email"),expiresAt:Vo("expires_at",{withTimezone:!0}).notNull(),createdAt:Vo("created_at",{withTimezone:!0}).defaultNow()},e=>[Wr("idx_ext_auth_codes_expiry").on(e.expiresAt)]);import{pgTable as Xr,text as $r,timestamp as Yo,jsonb as Zr,uuid as Bt,index as Qo}from"drizzle-orm/pg-core";var _e=Xr("eval_conversations",{id:Bt("id").primaryKey().defaultRandom(),evalTargetId:Bt("eval_target_id").notNull().references(()=>n.id,{onDelete:"cascade"}),userId:Bt("user_id").notNull(),messages:Zr("messages").notNull().default([]),status:$r("status").notNull().default("active"),createdAt:Yo("created_at",{withTimezone:!0}).defaultNow(),updatedAt:Yo("updated_at",{withTimezone:!0}).defaultNow()},e=>[Qo("idx_eval_conversations_target").on(e.evalTargetId),Qo("idx_eval_conversations_user").on(e.userId)]);import{pgTable as es,text as k,timestamp as Wo,jsonb as ts,uuid as Ht}from"drizzle-orm/pg-core";var Xo=es("skill_submissions",{id:Ht("id").primaryKey().defaultRandom(),skillId:k("skill_id").notNull(),name:k("name").notNull(),description:k("description").notNull(),category:k("category").notNull(),tools:k("tools").array().notNull(),tags:k("tags").array().default([]),content:k("content").notNull(),status:k("status").notNull().default("pending"),submittedBy:Ht("submitted_by").notNull(),reviewedBy:Ht("reviewed_by"),reviewNote:k("review_note"),metadata:ts("metadata"),createdAt:Wo("created_at",{withTimezone:!0}).defaultNow(),updatedAt:Wo("updated_at",{withTimezone:!0}).defaultNow()});import{pgTable as os,text as Ee,timestamp as $o,jsonb as ns,uuid as rs,uniqueIndex as ss,index as Zo}from"drizzle-orm/pg-core";var en=os("harness_releases",{id:rs("id").primaryKey().defaultRandom(),harness:Ee("harness").notNull(),version:Ee("version").notNull(),publishedAt:$o("published_at",{withTimezone:!0}).notNull(),title:Ee("title"),body:Ee("body"),categories:ns("categories").default({}),url:Ee("url"),createdAt:$o("created_at",{withTimezone:!0}).defaultNow()},e=>[ss("idx_harness_releases_unique").on(e.harness,e.version),Zo("idx_harness_releases_harness").on(e.harness),Zo("idx_harness_releases_published").on(e.publishedAt)]);import{pgTable as is,text as me,timestamp as tn,jsonb as as,uuid as on,index as nn,uniqueIndex as ds}from"drizzle-orm/pg-core";var Ft=is("notifications",{id:on("id").primaryKey().defaultRandom(),userId:on("user_id").notNull(),type:me("type").notNull(),title:me("title").notNull(),body:me("body"),url:me("url"),sourceTable:me("source_table"),sourceId:me("source_id"),metadata:as("metadata").notNull().default({}),readAt:tn("read_at",{withTimezone:!0}),createdAt:tn("created_at",{withTimezone:!0}).notNull().defaultNow()},e=>[nn("idx_notifications_user_created").on(e.userId,e.createdAt),nn("idx_notifications_user_unread").on(e.userId),ds("idx_notifications_source_dedup").on(e.userId,e.sourceTable,e.sourceId)]);import{pgTable as us,text as je,timestamp as Se,jsonb as Gt,uuid as Vt,index as at,integer as ls}from"drizzle-orm/pg-core";var fe=us("launch_jobs",{id:Vt("id").primaryKey().defaultRandom(),userId:Vt("user_id").notNull(),tool:je("tool").notNull(),status:je("status").notNull().default("pending"),config:Gt("config").notNull().default({}),result:Gt("result"),error:je("error"),attempts:ls("attempts").notNull().default(0),taskKind:je("task_kind"),payload:Gt("payload"),claimedBy:je("claimed_by"),claimedAt:Se("claimed_at",{withTimezone:!0}),leaseExpiresAt:Se("lease_expires_at",{withTimezone:!0}),createdAt:Se("created_at",{withTimezone:!0}).defaultNow(),updatedAt:Se("updated_at",{withTimezone:!0}).defaultNow(),completedAt:Se("completed_at",{withTimezone:!0}),runId:Vt("run_id").references(()=>m.id,{onDelete:"set null"})},e=>[at("idx_launch_jobs_user").on(e.userId),at("idx_launch_jobs_status").on(e.status),at("idx_launch_jobs_pending").on(e.userId,e.status),at("idx_launch_jobs_run").on(e.runId)]);import{pgTable as rn,uuid as R,text as Pe,real as cs,timestamp as dt,boolean as ps,uniqueIndex as _s,index as Ke}from"drizzle-orm/pg-core";var Jt=rn("instruction_suggestions",{id:R("id").primaryKey().defaultRandom(),userId:R("user_id").notNull().references(()=>s.id,{onDelete:"cascade"}),instructionId:R("instruction_id").notNull().references(()=>o.id,{onDelete:"cascade"}),projectPath:Pe("project_path").notNull(),projectId:R("project_id").references(()=>l.id,{onDelete:"set null"}),score:cs("score").notNull(),reason:Pe("reason").notNull(),generatedAt:dt("generated_at",{withTimezone:!0}).notNull().defaultNow(),isStale:ps("is_stale").notNull().default(!1),dismissedAt:dt("dismissed_at",{withTimezone:!0}),acceptedAt:dt("accepted_at",{withTimezone:!0}),promotedToInstructionId:R("promoted_to_instruction_id").references(()=>o.id,{onDelete:"set null"})},e=>[_s("idx_instruction_suggestions_user_project_instruction").on(e.userId,e.projectPath,e.instructionId),Ke("idx_instruction_suggestions_user_project").on(e.userId,e.projectPath),Ke("idx_instruction_suggestions_user_proj_id").on(e.userId,e.projectId),Ke("idx_instruction_suggestions_generated_at").on(e.generatedAt)]),sn=rn("instruction_suggestion_events",{id:R("id").primaryKey().defaultRandom(),suggestionId:R("suggestion_id").notNull().references(()=>Jt.id,{onDelete:"cascade"}),userId:R("user_id").notNull().references(()=>s.id,{onDelete:"cascade"}),eventType:Pe("event_type").notNull(),tool:Pe("tool"),sessionId:R("session_id"),projectPath:Pe("project_path").notNull(),createdAt:dt("created_at",{withTimezone:!0}).notNull().defaultNow()},e=>[Ke("idx_instruction_suggestion_events_suggestion_id").on(e.suggestionId),Ke("idx_instruction_suggestion_events_user_id").on(e.userId)]);import{pgTable as ms,text as Yt,integer as fs,numeric as Oe,timestamp as Qt,index as xs,primaryKey as gs}from"drizzle-orm/pg-core";var an=ms("model_pricing",{provider:Yt("provider").notNull(),modelId:Yt("model_id").notNull(),inputPerM:Oe("input_per_m").notNull(),outputPerM:Oe("output_per_m").notNull(),cacheReadPerM:Oe("cache_read_per_m").notNull(),cacheWrite5mPerM:Oe("cache_write_5m_per_m").notNull(),cacheWrite1hPerM:Oe("cache_write_1h_per_m").notNull(),contextWindow:fs("context_window"),effectiveFrom:Qt("effective_from",{withTimezone:!0}).notNull(),effectiveUntil:Qt("effective_until",{withTimezone:!0}),source:Yt("source").notNull(),verifiedAt:Qt("verified_at",{withTimezone:!0})},e=>[gs({columns:[e.provider,e.modelId,e.effectiveFrom]}),xs("idx_model_pricing_active").on(e.provider,e.modelId,e.effectiveFrom.desc())]);import{pgTable as Ns,text as Y,numeric as dn,timestamp as un,uuid as ln,jsonb as vs,index as cn}from"drizzle-orm/pg-core";var pn=Ns("limit_observations",{id:ln("id").primaryKey().defaultRandom(),observedAt:un("observed_at",{withTimezone:!0}).notNull().defaultNow(),provider:Y("provider").notNull(),plan:Y("plan").notNull(),limitType:Y("limit_type").notNull(),value:dn("value").notNull(),unit:Y("unit").notNull(),comparator:Y("comparator").notNull().default("="),resetsAt:un("resets_at",{withTimezone:!0}),sourceType:Y("source_type").notNull(),sourceUrl:Y("source_url"),sourceEvidence:vs("source_evidence"),confidence:dn("confidence").notNull(),userId:ln("user_id")},e=>[cn("idx_limit_obs_lookup").on(e.provider,e.plan,e.limitType,e.observedAt.desc()),cn("idx_limit_obs_user").on(e.userId,e.observedAt.desc())]);import{pgTable as hs,text as ut,timestamp as ys,uuid as Is,jsonb as Ts,boolean as ws,uniqueIndex as As}from"drizzle-orm/pg-core";var _n=hs("provider_docs_snapshots",{id:Is("id").primaryKey().defaultRandom(),fetchedAt:ys("fetched_at",{withTimezone:!0}).notNull().defaultNow(),provider:ut("provider").notNull(),docUrl:ut("doc_url").notNull(),contentHash:ut("content_hash").notNull(),content:ut("content").notNull(),parseSuccess:ws("parse_success").notNull(),parseErrors:Ts("parse_errors")},e=>[As("idx_docs_dedup").on(e.provider,e.docUrl,e.contentHash)]);import{pgTable as bs,text as lt,numeric as mn,timestamp as fn,uuid as zs,primaryKey as Ds,index as ks}from"drizzle-orm/pg-core";var xn=bs("plan_limits_active",{provider:lt("provider").notNull(),plan:lt("plan").notNull(),limitType:lt("limit_type").notNull(),value:mn("value").notNull(),unit:lt("unit").notNull(),effectiveFrom:fn("effective_from",{withTimezone:!0}).notNull(),effectiveUntil:fn("effective_until",{withTimezone:!0}),confidence:mn("confidence").notNull(),sourceObservationIds:zs("source_observation_ids").array().notNull()},e=>[Ds({columns:[e.provider,e.plan,e.limitType,e.effectiveFrom]}),ks("idx_plan_limits_lookup").on(e.provider,e.plan,e.limitType,e.effectiveFrom.desc())]);import{pgTable as Rs,text as Wt,timestamp as Es,uuid as gn,jsonb as js,index as Ss}from"drizzle-orm/pg-core";var Nn=Rs("alert_dispatches",{id:gn("id").primaryKey().defaultRandom(),userId:gn("user_id").notNull(),alertKey:Wt("alert_key").notNull(),severity:Wt("severity").notNull(),lastDispatchedAt:Es("last_dispatched_at",{withTimezone:!0}).notNull().defaultNow(),lastState:js("last_state").notNull(),channel:Wt("channel").notNull()},e=>[Ss("idx_alert_user_key").on(e.userId,e.alertKey,e.lastDispatchedAt.desc())]);import{drizzle as Tn}from"drizzle-orm/postgres-js";import wn from"postgres";var ct={};Bn(ct,{agentJobs:()=>Ho,agentRuns:()=>m,agentRunsRelations:()=>Js,alertDispatches:()=>Nn,announcementDeliveries:()=>xo,announcements:()=>fo,apiKeys:()=>pe,apiKeysRelations:()=>Ks,benchmarks:()=>ae,benchmarksRelations:()=>ni,cliErrorEvents:()=>So,cliSetupEvents:()=>Eo,contentBlobs:()=>Mo,contextSnapshots:()=>M,contextSnapshotsRelations:()=>di,evalConversations:()=>_e,evalConversationsRelations:()=>ai,evalJobs:()=>ce,evalJobsRelations:()=>ii,evalRuns:()=>C,evalRunsRelations:()=>oi,evalTargets:()=>n,evalTargetsRelations:()=>ei,evals:()=>D,evalsRelations:()=>ti,extensionAuthCodes:()=>Jo,harnessReleases:()=>en,insightsJobs:()=>Fo,instructionEvents:()=>oe,instructionEventsRelations:()=>Bs,instructionSuggestionEvents:()=>sn,instructionSuggestions:()=>Jt,instructionUsageEvents:()=>se,instructionUsageEventsRelations:()=>Zs,instructionVersions:()=>$,instructionVersionsRelations:()=>Hs,instructions:()=>o,instructionsRelations:()=>Us,launchJobs:()=>fe,launchJobsRelations:()=>Ys,limitObservations:()=>pn,modelPricing:()=>an,notificationPreferences:()=>go,notifications:()=>Ft,optimizationRuns:()=>le,optimizationRunsRelations:()=>si,orgInvitations:()=>A,orgInvitationsRelations:()=>qs,organizations:()=>a,organizationsRelations:()=>Os,packInstructions:()=>O,packInstructionsRelations:()=>$s,packs:()=>v,packsRelations:()=>Xs,planLimitsActive:()=>xn,profiles:()=>s,profilesRelations:()=>Ps,projectCheckouts:()=>po,projectInstructions:()=>j,projectInstructionsRelations:()=>Gs,projects:()=>l,projectsRelations:()=>Fs,providerDocsSnapshots:()=>_n,sessionEvents:()=>ee,sessionEventsRelations:()=>Qs,sessionInstructions:()=>S,sessionInstructionsRelations:()=>Ws,sessionSendJobs:()=>Io,sessionTerminalTargets:()=>Je,sessions:()=>u,sessionsRelations:()=>Vs,skillSubmissions:()=>Xo,teams:()=>x,teamsRelations:()=>Cs,triggerEvals:()=>ue,triggerEvalsRelations:()=>ri,userOrganizations:()=>W,userOrganizationsRelations:()=>Ms,userTeams:()=>X,userTeamsRelations:()=>Ls,workerConnections:()=>Do});import{relations as i}from"drizzle-orm";var Ps=i(s,({many:e})=>({sessions:e(u),contextSnapshots:e(M),apiKeys:e(pe)})),Ks=i(pe,({one:e})=>({profile:e(s,{fields:[pe.userId],references:[s.id]})})),Os=i(a,({many:e})=>({teams:e(x),userOrganizations:e(W),projects:e(l),invitations:e(A)})),Cs=i(x,({one:e,many:t})=>({organization:e(a,{fields:[x.orgId],references:[a.id]}),userTeams:t(X),invitations:t(A)})),qs=i(A,({one:e})=>({organization:e(a,{fields:[A.orgId],references:[a.id]}),team:e(x,{fields:[A.teamId],references:[x.id]}),inviter:e(s,{fields:[A.invitedBy],references:[s.id]})})),Ms=i(W,({one:e})=>({organization:e(a,{fields:[W.orgId],references:[a.id]})})),Ls=i(X,({one:e})=>({team:e(x,{fields:[X.teamId],references:[x.id]})})),Us=i(o,({one:e,many:t})=>({versions:t($),projectInstructions:t(j),events:t(oe),usageEvents:t(se),sessionInstructions:t(S),packInstructions:t(O),forkedFrom:e(o,{fields:[o.forkedFromId],references:[o.id]})})),Bs=i(oe,({one:e})=>({instruction:e(o,{fields:[oe.instructionId],references:[o.id]})})),Hs=i($,({one:e})=>({instruction:e(o,{fields:[$.instructionId],references:[o.id]})})),Fs=i(l,({one:e,many:t})=>({organization:e(a,{fields:[l.orgId],references:[a.id]}),projectInstructions:t(j),sessions:t(u)})),Gs=i(j,({one:e})=>({project:e(l,{fields:[j.projectId],references:[l.id]}),instruction:e(o,{fields:[j.instructionId],references:[o.id]})})),Vs=i(u,({one:e,many:t})=>({profile:e(s,{fields:[u.userId],references:[s.id]}),project:e(l,{fields:[u.projectId],references:[l.id]}),run:e(m,{fields:[u.runId],references:[m.id]}),events:t(ee),sessionInstructions:t(S),contextSnapshots:t(M)})),Js=i(m,({one:e,many:t})=>({profile:e(s,{fields:[m.userId],references:[s.id]}),organization:e(a,{fields:[m.orgId],references:[a.id]}),project:e(l,{fields:[m.projectId],references:[l.id]}),sessions:t(u),launchJobs:t(fe)})),Ys=i(fe,({one:e})=>({run:e(m,{fields:[fe.runId],references:[m.id]})})),Qs=i(ee,({one:e})=>({session:e(u,{fields:[ee.sessionId],references:[u.id]})})),Ws=i(S,({one:e})=>({session:e(u,{fields:[S.sessionId],references:[u.id]}),instruction:e(o,{fields:[S.instructionId],references:[o.id]})})),Xs=i(v,({one:e,many:t})=>({packInstructions:t(O),forkedFrom:e(v,{fields:[v.forkedFromId],references:[v.id]})})),$s=i(O,({one:e})=>({pack:e(v,{fields:[O.packId],references:[v.id]}),instruction:e(o,{fields:[O.instructionId],references:[o.id]})})),Zs=i(se,({one:e})=>({instruction:e(o,{fields:[se.instructionId],references:[o.id]})})),ei=i(n,({one:e,many:t})=>({parent:e(n,{fields:[n.parentId],references:[n.id]}),evals:t(D),evalRuns:t(C),benchmarks:t(ae),triggerEvals:t(ue),optimizationRuns:t(le),evalJobs:t(ce),evalConversations:t(_e)})),ti=i(D,({one:e,many:t})=>({evalTarget:e(n,{fields:[D.evalTargetId],references:[n.id]}),runs:t(C)})),oi=i(C,({one:e})=>({eval:e(D,{fields:[C.evalId],references:[D.id]}),evalTarget:e(n,{fields:[C.evalTargetId],references:[n.id]})})),ni=i(ae,({one:e})=>({evalTarget:e(n,{fields:[ae.evalTargetId],references:[n.id]})})),ri=i(ue,({one:e})=>({evalTarget:e(n,{fields:[ue.evalTargetId],references:[n.id]})})),si=i(le,({one:e})=>({evalTarget:e(n,{fields:[le.evalTargetId],references:[n.id]})})),ii=i(ce,({one:e})=>({evalTarget:e(n,{fields:[ce.evalTargetId],references:[n.id]})})),ai=i(_e,({one:e})=>({evalTarget:e(n,{fields:[_e.evalTargetId],references:[n.id]})})),di=i(M,({one:e})=>({session:e(u,{fields:[M.sessionId],references:[u.id]}),profile:e(s,{fields:[M.userId],references:[s.id]})}));var Ce=0,vn=0,qe=0,hn=0;var ui=0;function Xt(){Ce++,Ce>vn&&(vn=Ce)}p(Xt,"trackDbOpStart");function $t(){Ce>0&&Ce--}p($t,"trackDbOpEnd");function Zt(){qe++,qe>hn&&(hn=qe)}p(Zt,"trackHeavyDbOpStart");function eo(){qe>0&&qe--}p(eo,"trackHeavyDbOpEnd");function yn(){ui++}p(yn,"recordQueryDeadline");var _t,ft,to=!1,pt;var In,xt,mt;function An(e){let t=process.env[e];if(!t)throw new Error(`Missing required env var: ${e}`);return t}p(An,"getEnv");function bn(){if(to)throw new Error("getDb() called after closeDb(): the connection pool is closed for shutdown. Stop issuing queries (timers/requests) before draining the pool.");if(!_t){let e=process.env.PG_APPLICATION_NAME||"rulemetric",t=Number(process.env.PG_POOL_MAX)||3,r=Number(process.env.PG_CONNECT_TIMEOUT_S)||10,d=Number(process.env.PG_STATEMENT_TIMEOUT_MS)||0,c=Number(process.env.PG_IDLE_TIMEOUT)||5,_=Number(process.env.PG_KEEP_ALIVE_S)||60;ft=wn(An("DATABASE_URL"),{prepare:!1,max:t,connect_timeout:r,idle_timeout:c,keep_alive:_,max_lifetime:300,connection:{application_name:e,...d>0?{statement_timeout:d}:{}}}),_t=Tn(ft,{schema:ct})}return _t}p(bn,"getDb");function zn(){if(to)throw new Error("getHeavyDb() called after closeDb(): the connection pool is closed for shutdown. Stop issuing queries (timers/requests) before draining the pool.");if(!mt){let e=(process.env.PG_APPLICATION_NAME||"rulemetric")+":heavy",t=Number(process.env.PG_HEAVY_POOL_MAX)||2;xt=wn(An("DATABASE_URL"),{prepare:!1,max:t,connect_timeout:Number(process.env.PG_CONNECT_TIMEOUT_S)||10,idle_timeout:Number(process.env.PG_IDLE_TIMEOUT)||5,keep_alive:Number(process.env.PG_KEEP_ALIVE_S)||60,max_lifetime:300,connection:{application_name:e}}),mt=Tn(xt,{schema:ct})}return mt}p(zn,"getHeavyDb");async function li(){if(pt)return pt;to=!0;let e=ft,t=In,r=xt;return ft=void 0,_t=void 0,In=void 0,xt=void 0,mt=void 0,pt=Promise.allSettled([e?e.end({timeout:5}):Promise.resolve(),t?t.end({timeout:5}):Promise.resolve(),r?r.end({timeout:5}):Promise.resolve()]).then(()=>{}),pt}p(li,"closeDb");var ci=new Set(["CONNECT_TIMEOUT","ETIMEDOUT","ENOTFOUND","ECONNREFUSED","EAI_AGAIN"]);function Dn(e){let t=e,r=t?.code??t?.cause?.code??t?.errno;return r!==void 0&&ci.has(r)}p(Dn,"isRetryableConnectError");var pi=new Set(["CONNECTION_CLOSED","ECONNRESET","EPIPE"]);function kn(e){let t=e,r=t?.code??t?.cause?.code??t?.errno;return r!==void 0&&pi.has(r)}p(kn,"isRetryableResetError");async function Rn(e,t={}){let r=t.attempts??3,d=t.baseMs??100,c;for(let _=0;_<r;_++)try{return await e()}catch(g){c=g;let xe=Dn(g)||t.retryResets===!0&&kn(g);if(_===r-1||!xe)throw g;await new Promise(L=>setTimeout(L,d*2**_))}throw c}p(Rn,"withDbRetry");var gt=class extends Error{static{p(this,"QueryDeadlineError")}code="QUERY_DEADLINE";constructor(t){super(`Query exceeded the client-side deadline of ${t}ms \u2014 the DB pool is likely saturated (acquire-wait) or holding a dead socket; failing fast to avoid pinning the caller. See client.ts.`),this.name="QueryDeadlineError"}};function En(){let e=Number(process.env.PG_QUERY_DEADLINE_MS);return Number.isFinite(e)&&e>=0?e:2e4}p(En,"queryDeadlineMs");function _i(e,t){let r,d=new Promise((c,_)=>{r=setTimeout(()=>{yn(),_(new gt(t))},t);let g=r;typeof g.unref=="function"&&g.unref()});return Promise.race([e,d]).finally(()=>clearTimeout(r))}p(_i,"raceWithDeadline");var jn=new Set(["select","selectDistinct","selectDistinctOn","insert","update","delete","execute","with","$count","refreshMaterializedView"]),Sn=new Set(["select","selectDistinct","selectDistinctOn","$count"]);function oo(e,t=!1,r=0,d=!1){return e===null||typeof e!="object"&&typeof e!="function"?e:new Proxy(e,{get(c,_,g){if(_==="then"){let L=Reflect.get(c,_,g);return typeof L!="function"?L:(On,Cn)=>{let qn=d?Zt:Xt,Mn=d?eo:$t;qn();let no=Rn(()=>new Promise((Ln,Un)=>L.call(c,Ln,Un)),{retryResets:t});return(r>0?_i(no,r):no).finally(Mn).then(On,Cn)}}let xe=Reflect.get(c,_,g);return typeof xe=="function"?(...L)=>oo(xe.apply(c,L),t,r,d):xe}})}p(oo,"wrapBuilder");function Pn(e,t=!1){let r=t?Zt:Xt,d=t?eo:$t;r();try{return Promise.resolve(e()).finally(d)}catch(c){throw d(),c}}p(Pn,"gaugeTransaction");var Kn=new Proxy({},{get(e,t){let r=bn(),d=r[t];if(typeof t=="string"&&jn.has(t)&&typeof d=="function"){let c=Sn.has(t),_=En();return(...g)=>oo(d.apply(r,g),c,_)}return t==="transaction"&&typeof d=="function"?(...c)=>Pn(()=>d.apply(r,c)):d}}),mi=new Proxy({},{get(e,t){let r=zn(),d=r[t];if(typeof t=="string"&&jn.has(t)&&typeof d=="function"){let c=Sn.has(t);return(..._)=>oo(d.apply(r,_),c,0,!0)}return t==="transaction"&&typeof d=="function"?(...c)=>Pn(()=>d.apply(r,c),!0):d}});export{s as a,m as b,u as c,ee as d,fo as e,xo as f,go as g,bn as h,li as i};
|