@rulemetric/cli 0.7.35 → 0.7.37

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.
Files changed (69) hide show
  1. package/dist/chunk-47YDQYTD.js +14 -0
  2. package/dist/{chunk-OPYGOXZM.js → chunk-5KP66L7P.js} +1 -1
  3. package/dist/{chunk-TVHT6H42.js → chunk-7SI6KWSX.js} +1 -1
  4. package/dist/chunk-BL4BN6RU.js +1 -0
  5. package/dist/{chunk-W2MOTOQE.js → chunk-BUWWFHGO.js} +1 -1
  6. package/dist/{chunk-TG6TKU4Y.js → chunk-CRIFP3QP.js} +1 -1
  7. package/dist/chunk-G5BXZT6F.js +1 -0
  8. package/dist/chunk-GIRPEMTW.js +1 -0
  9. package/dist/chunk-GPTPK6QX.js +38 -0
  10. package/dist/{chunk-QRPNGXLN.js → chunk-HUADECKZ.js} +1 -1
  11. package/dist/{chunk-7A4UVQ7U.js → chunk-IQTSUAGM.js} +1 -1
  12. package/dist/chunk-IYDADY62.js +1 -0
  13. package/dist/chunk-JGLVVIEM.js +1 -0
  14. package/dist/{chunk-HV45MQSU.js → chunk-JIJKIPE6.js} +1 -1
  15. package/dist/{chunk-6QKI756T.js → chunk-MDPN46EY.js} +1 -1
  16. package/dist/{chunk-QH7PCQHM.js → chunk-MQ47NLPC.js} +1 -1
  17. package/dist/chunk-QWCEZEDO.js +4 -0
  18. package/dist/chunk-SNJ2NIIE.js +1 -0
  19. package/dist/{chunk-LETTPEG4.js → chunk-VSUL3MNG.js} +1 -1
  20. package/dist/chunk-VTA6HDVW.js +11 -0
  21. package/dist/{chunk-G6XGDHGC.js → chunk-XA4KSQEC.js} +1 -1
  22. package/dist/chunk-ZYI66XKV.js +1 -0
  23. package/dist/commands/diagnostics.js +1 -1
  24. package/dist/commands/evals/agent.js +1 -1
  25. package/dist/commands/evals/benchmark.js +1 -1
  26. package/dist/commands/evals/optimize.js +1 -1
  27. package/dist/commands/gateway/ensure.js +1 -1
  28. package/dist/commands/hooks/install.js +1 -1
  29. package/dist/commands/hooks/uninstall.js +2 -2
  30. package/dist/commands/proxy/env.js +1 -1
  31. package/dist/commands/proxy/status.js +1 -1
  32. package/dist/commands/sessions/list.js +1 -1
  33. package/dist/commands/setup.js +1 -1
  34. package/dist/dashboard/Dashboard.js +1 -1
  35. package/dist/dashboard/data.js +1 -1
  36. package/dist/{dist-FAVALJ5C.js → dist-BC6GMBXV.js} +1 -1
  37. package/dist/lib/agent-loop.js +1 -1
  38. package/dist/lib/detect-languages.js +1 -1
  39. package/dist/lib/eval-benchmark.js +1 -1
  40. package/dist/lib/evolution-cost.js +1 -0
  41. package/dist/lib/gateway-entry.js +1 -1
  42. package/dist/lib/gateway-lifecycle.js +1 -1
  43. package/dist/lib/gateway.js +1 -1
  44. package/dist/lib/handlers/cron-instruction-evolution.js +1 -1
  45. package/dist/lib/handlers/cron-suggest-instructions.js +1 -1
  46. package/dist/lib/handlers/process-announcement.js +1 -1
  47. package/dist/lib/handlers/process-changelog.js +1 -1
  48. package/dist/lib/handlers/process-eval.js +1 -1
  49. package/dist/lib/handlers/process-insights.js +1 -1
  50. package/dist/lib/handlers/process-launch.js +1 -1
  51. package/dist/lib/handlers/process-memory-ab.js +1 -1
  52. package/dist/lib/handlers/process-run-cleanup.js +1 -1
  53. package/dist/lib/manual-tasks.js +1 -1
  54. package/dist/lib/optimize-compare.js +1 -1
  55. package/dist/lib/setup-steps.js +1 -1
  56. package/dist/lib/worktree.js +1 -1
  57. package/oclif.manifest.json +31 -3
  58. package/package.json +6 -6
  59. package/dist/chunk-3DLVY7LD.js +0 -1
  60. package/dist/chunk-6IVMG65E.js +0 -11
  61. package/dist/chunk-DNF4HDI6.js +0 -14
  62. package/dist/chunk-MLXQCK7V.js +0 -1
  63. package/dist/chunk-MVM6OGAF.js +0 -4
  64. package/dist/chunk-PHALR5JB.js +0 -1
  65. package/dist/chunk-PMWVDXTP.js +0 -1
  66. package/dist/chunk-TDD7IOV2.js +0 -1
  67. package/dist/chunk-WKXTY5AM.js +0 -1
  68. package/dist/chunk-ZL4MZMUK.js +0 -34
  69. /package/dist/{chunk-7DFNBRLY.js → chunk-5DIOZDDZ.js} +0 -0
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@rulemetric/cli",
3
- "version": "0.7.35",
3
+ "version": "0.7.37",
4
4
  "publishConfig": {
5
5
  "access": "public"
6
6
  },
@@ -77,9 +77,9 @@
77
77
  "postgres": "^3.4.0",
78
78
  "react": "^19.0.0",
79
79
  "zod": "^3.24.0",
80
- "@rulemetric/skills-registry": "0.7.35",
81
- "@rulemetric/hooks": "0.7.35",
82
- "@rulemetric/proxy": "0.7.35"
80
+ "@rulemetric/hooks": "0.7.37",
81
+ "@rulemetric/proxy": "0.7.37",
82
+ "@rulemetric/skills-registry": "0.7.37"
83
83
  },
84
84
  "//deps": "Worker (`evals agent`) runtime deps: the @opentelemetry/* set, @sentry/node, and postgres are STATIC top-level imports loaded at worker startup (via bundled @rulemetric/{telemetry,db}) — they MUST be runtime deps or a clean `npm i -g` crashes with ModuleLoadError. `better-sqlite3` is optionalDependencies (below): it's a native module, lazy `require()`'d inside a try/catch (packages/session providers cursor/opencode) so a missing binary degrades gracefully — making it a hard dep would break `npm i -g` on platforms without prebuilt binaries. `resend` stays a devDep: lazy `await import('resend')` guarded by RESEND_API_KEY, which end-user workers never set (provider falls back to noop). Classification verified via import-graph scan of dist/commands/evals/agent.js + per-importer static/lazy check.",
85
85
  "optionalDependencies": {
@@ -97,14 +97,14 @@
97
97
  "tsx": "^4.19.0",
98
98
  "typescript": "^5.9.0",
99
99
  "vitest": "^3.2.0",
100
- "@rulemetric/api": "0.0.1",
101
100
  "@rulemetric/core": "0.0.1",
102
101
  "@rulemetric/db": "0.0.1",
103
102
  "@rulemetric/effectiveness": "0.0.1",
104
103
  "@rulemetric/email": "0.0.1",
105
104
  "@rulemetric/session": "0.2.1",
106
105
  "@rulemetric/telemetry": "0.0.1",
107
- "@rulemetric/typescript-config": "0.0.0"
106
+ "@rulemetric/typescript-config": "0.0.0",
107
+ "@rulemetric/api": "0.0.1"
108
108
  },
109
109
  "scripts": {
110
110
  "build": "node scripts/build.mjs",
@@ -1 +0,0 @@
1
- import{a as p,c as Er}from"./chunk-ZLLER3HP.js";import{boolean as So,pgTable as br,text as Ze,timestamp as Ct,uuid as Ko}from"drizzle-orm/pg-core";import{pgTable as Xe,text as re,timestamp as De,jsonb as Eo,uuid as $,primaryKey as bo}from"drizzle-orm/pg-core";var u=Xe("organizations",{id:$("id").primaryKey().defaultRandom(),name:re("name").unique().notNull(),slug:re("slug").unique().notNull(),metadata:Eo("metadata"),createdAt:De("created_at",{withTimezone:!0}).defaultNow(),updatedAt:De("updated_at",{withTimezone:!0}).defaultNow()}),h=Xe("teams",{id:$("id").primaryKey().defaultRandom(),orgId:$("org_id").references(()=>u.id,{onDelete:"cascade"}),name:re("name").notNull(),slug:re("slug").notNull(),metadata:Eo("metadata"),createdAt:De("created_at",{withTimezone:!0}).defaultNow()}),se=Xe("user_organizations",{userId:$("user_id").notNull(),orgId:$("org_id").references(()=>u.id,{onDelete:"cascade"}).notNull(),role:re("role").notNull().default("member"),createdAt:De("created_at",{withTimezone:!0}).defaultNow()},e=>[bo({columns:[e.userId,e.orgId]})]),ie=Xe("user_teams",{userId:$("user_id").notNull(),teamId:$("team_id").references(()=>h.id,{onDelete:"cascade"}).notNull(),role:re("role").notNull().default("member"),createdAt:De("created_at",{withTimezone:!0}).defaultNow()},e=>[bo({columns:[e.userId,e.teamId]})]);var o=br("profiles",{id:Ko("id").primaryKey(),email:Ze("email"),displayName:Ze("display_name"),activeOrgId:Ko("active_org_id").references(()=>u.id,{onDelete:"set null"}),isSuperadmin:So("is_superadmin").notNull().default(!1),claudeCodePlan:Ze("claude_code_plan"),planSource:Ze("plan_source").notNull().default("detected"),setupCompletedAt:Ct("setup_completed_at",{withTimezone:!0}),liveSendSkipped:So("live_send_skipped").notNull().default(!1),createdAt:Ct("created_at",{withTimezone:!0}).defaultNow(),updatedAt:Ct("updated_at",{withTimezone:!0}).defaultNow()});import{pgTable as Or,text as de,timestamp as Lt,jsonb as qo,uuid as nt,integer as qr,boolean as Mr,index as Bt}from"drizzle-orm/pg-core";import{boolean as Kr,jsonb as Pr,pgTable as Mt,primaryKey as Co,text as Q,timestamp as Re,uniqueIndex as qt,uuid as W}from"drizzle-orm/pg-core";import{sql as Cr}from"drizzle-orm";import{pgTable as Ot,text as x,timestamp as L,jsonb as et,uuid as D,integer as tt,boolean as Sr,uniqueIndex as ot,index as je}from"drizzle-orm/pg-core";var r=Ot("instructions",{id:D("id").primaryKey().defaultRandom(),name:x("name").notNull(),description:x("description").notNull(),type:x("type").notNull().default("instruction"),scope:x("scope").notNull(),scopeRef:D("scope_ref"),version:x("version").notNull(),content:x("content").notNull(),frontmatter:et("frontmatter").notNull(),slots:et("slots"),tags:x("tags").array(),compatibility:x("compatibility").array(),createdBy:D("created_by"),createdAt:L("created_at",{withTimezone:!0}).defaultNow(),updatedAt:L("updated_at",{withTimezone:!0}).defaultNow(),archived:Sr("archived").default(!1),archivedAt:L("archived_at",{withTimezone:!0}),archivedBy:D("archived_by"),forkedFromId:D("forked_from_id").references(()=>r.id,{onDelete:"set null"}),upstreamVersion:x("upstream_version"),badge:x("badge"),contentHash:x("content_hash"),contextIdentity:x("context_identity"),scanScore:tt("scan_score"),scanFindings:et("scan_findings"),popularityScore:tt("popularity_score"),sourceUpdatedAt:L("source_updated_at",{withTimezone:!0})},e=>[ot("instructions_name_scope_ref_idx").on(e.name,e.scope,e.scopeRef),je("idx_instructions_scope").on(e.scope,e.scopeRef),je("idx_instructions_created_by").on(e.createdBy),je("idx_instructions_context_identity").on(e.createdBy,e.contextIdentity),je("idx_instructions_public_recency").on(e.scope,e.sourceUpdatedAt.desc())]),Po=Ot("instruction_version_identities",{id:D("id").primaryKey().defaultRandom(),instructionId:D("instruction_id").notNull().references(()=>r.id,{onDelete:"cascade"}),contentHash:x("content_hash").notNull(),versionOrdinal:tt("version_ordinal").notNull(),content:x("content"),firstSeenAt:L("first_seen_at",{withTimezone:!0}).notNull().defaultNow(),lastSeenAt:L("last_seen_at",{withTimezone:!0}).notNull().defaultNow(),createdAt:L("created_at",{withTimezone:!0}).notNull().defaultNow()},e=>[ot("instruction_version_identities_hash_unique").on(e.instructionId,e.contentHash),ot("instruction_version_identities_ordinal_unique").on(e.instructionId,e.versionOrdinal),je("idx_ivi_instruction").on(e.instructionId)]),ae=Ot("instruction_versions",{id:D("id").primaryKey().defaultRandom(),instructionId:D("instruction_id").references(()=>r.id,{onDelete:"cascade"}),versionNumber:tt("version_number").notNull(),content:x("content").notNull(),frontmatter:et("frontmatter").notNull(),changeSummary:x("change_summary"),createdBy:D("created_by"),createdAt:L("created_at",{withTimezone:!0}).defaultNow()},e=>[ot("instruction_versions_instruction_version_idx").on(e.instructionId,e.versionNumber)]);var s=Mt("projects",{id:W("id").primaryKey().defaultRandom(),orgId:W("org_id").references(()=>u.id,{onDelete:"cascade"}),name:Q("name").notNull(),description:Q("description"),githubRepo:Q("github_repo"),gitRemoteUrl:Q("git_remote_url"),gitRootCommit:Q("git_root_commit"),gitRemoteAliases:Q("git_remote_aliases").array().notNull().default([]),metadata:Pr("metadata"),createdBy:W("created_by"),createdAt:Re("created_at",{withTimezone:!0}).defaultNow(),updatedAt:Re("updated_at",{withTimezone:!0}).defaultNow()},e=>[qt("projects_org_name_idx").on(e.orgId,e.name),qt("projects_git_remote_url_unique").on(e.gitRemoteUrl).where(Cr`${e.gitRemoteUrl} IS NOT NULL`)]),B=Mt("project_instructions",{projectId:W("project_id").references(()=>s.id,{onDelete:"cascade"}).notNull(),instructionId:W("instruction_id").references(()=>r.id,{onDelete:"cascade"}).notNull(),addedAt:Re("added_at",{withTimezone:!0}).defaultNow(),addedBy:W("added_by")},e=>[Co({columns:[e.projectId,e.instructionId]})]),Oo=Mt("project_checkouts",{projectId:W("project_id").references(()=>s.id,{onDelete:"cascade"}).notNull(),path:Q("path").notNull(),isWorktree:Kr("is_worktree").notNull().default(!1),firstSeen:Re("first_seen",{withTimezone:!0}).notNull().defaultNow(),lastSeen:Re("last_seen",{withTimezone:!0}).notNull().defaultNow()},e=>[Co({columns:[e.projectId,e.path]}),qt("project_checkouts_path_unique").on(e.path)]);var g=Or("agent_runs",{id:nt("id").primaryKey().defaultRandom(),userId:nt("user_id").notNull().references(()=>o.id,{onDelete:"cascade"}),orgId:nt("org_id").references(()=>u.id,{onDelete:"set null"}),projectId:nt("project_id").references(()=>s.id,{onDelete:"set null"}),projectPath:de("project_path"),gitRemote:de("git_remote"),baseBranch:de("base_branch"),title:de("title"),prompt:de("prompt"),toolSpec:qo("tool_spec").notNull().default([]),autoWorktree:Mr("auto_worktree").notNull().default(!0),status:de("status").notNull().default("pending"),sessionCount:qr("session_count").notNull().default(0),metadata:qo("metadata").notNull().default({}),createdAt:Lt("created_at",{withTimezone:!0}).notNull().defaultNow(),updatedAt:Lt("updated_at",{withTimezone:!0}).notNull().defaultNow(),completedAt:Lt("completed_at",{withTimezone:!0})},e=>[Bt("idx_agent_runs_user").on(e.userId),Bt("idx_agent_runs_org_created").on(e.orgId,e.createdAt),Bt("idx_agent_runs_project").on(e.projectId)]);import{pgTable as Ht,text as I,timestamp as ke,jsonb as X,uuid as E,integer as rt,uniqueIndex as Mo,index as j}from"drizzle-orm/pg-core";var d=Ht("sessions",{id:E("id").primaryKey().defaultRandom(),userId:E("user_id").notNull().references(()=>o.id,{onDelete:"cascade"}),externalSessionId:I("external_session_id"),projectId:E("project_id").references(()=>s.id,{onDelete:"set null"}),orgId:E("org_id").references(()=>u.id,{onDelete:"set null"}),tool:I("tool").notNull(),projectPath:I("project_path"),gitBranch:I("git_branch"),startedAt:ke("started_at",{withTimezone:!0}).notNull(),endedAt:ke("ended_at",{withTimezone:!0}),eventCount:rt("event_count").default(0),tokenUsage:X("token_usage"),analysis:X("analysis"),analyzedAt:ke("analyzed_at",{withTimezone:!0}),analyzedEventCount:rt("analyzed_event_count"),analyzedTurnCount:rt("analyzed_turn_count"),metadata:X("metadata").default({}),origin:I("origin").notNull().default("unknown"),runId:E("run_id").references(()=>g.id,{onDelete:"set null"}),model:I("model"),harnessVersion:I("harness_version"),createdAt:ke("created_at",{withTimezone:!0}).defaultNow()},e=>[j("idx_sessions_user").on(e.userId),j("idx_sessions_tool").on(e.tool),j("idx_sessions_started_at").on(e.startedAt),j("idx_sessions_project").on(e.projectId),j("idx_sessions_org_started_at").on(e.orgId,e.startedAt),j("idx_sessions_run").on(e.runId),Mo("idx_sessions_user_external").on(e.userId,e.externalSessionId)]),ue=Ht("session_events",{id:E("id").primaryKey().defaultRandom(),sessionId:E("session_id").notNull().references(()=>d.id,{onDelete:"cascade"}),sequence:rt("sequence").notNull(),eventType:I("event_type").notNull(),content:I("content"),toolName:I("tool_name"),toolInput:X("tool_input"),toolOutput:X("tool_output"),tokenUsage:X("token_usage"),model:I("model"),timestamp:ke("timestamp",{withTimezone:!0}).notNull(),metadata:X("metadata").default({})},e=>[Mo("session_events_session_sequence_idx").on(e.sessionId,e.sequence),j("idx_session_events_session_id").on(e.sessionId),j("idx_session_events_event_type").on(e.eventType),j("idx_session_events_model").on(e.model)]),H=Ht("session_instructions",{sessionId:E("session_id").notNull().references(()=>d.id,{onDelete:"cascade"}),instructionId:E("instruction_id").notNull().references(()=>r.id,{onDelete:"cascade"}),linkMethod:I("link_method").notNull(),contentHash:I("content_hash")},e=>[j("idx_session_instructions_instruction_id").on(e.instructionId)]);import{pgTable as Lr,text as le,timestamp as Ut,uuid as Ee,integer as Lo,index as st}from"drizzle-orm/pg-core";var T=Lr("memories",{id:Ee("id").primaryKey().defaultRandom(),userId:Ee("user_id").notNull().references(()=>o.id,{onDelete:"cascade"}),orgId:Ee("org_id"),projectId:Ee("project_id").references(()=>s.id,{onDelete:"set null"}),version:Lo("version").notNull().default(1),parentId:Ee("parent_id").references(()=>T.id,{onDelete:"set null"}),kind:le("kind").notNull(),title:le("title").notNull(),body:le("body").notNull(),source:le("source").notNull(),status:le("status").notNull().default("active"),trustClass:le("trust_class"),trustVersion:Lo("trust_version"),trustComputedAt:Ut("trust_computed_at",{withTimezone:!0}),createdAt:Ut("created_at",{withTimezone:!0}).notNull().defaultNow(),updatedAt:Ut("updated_at",{withTimezone:!0}).notNull().defaultNow()},e=>[st("idx_memories_user").on(e.userId),st("idx_memories_project").on(e.projectId),st("idx_memories_parent").on(e.parentId),st("idx_memories_user_status").on(e.userId,e.status)]);import{pgTable as Br,text as be,timestamp as Vt,uuid as Ft,integer as Bo,jsonb as Hr,index as Ho}from"drizzle-orm/pg-core";var Uo=Br("memory_experiments",{id:Ft("id").primaryKey().defaultRandom(),memoryId:Ft("memory_id").notNull().references(()=>T.id,{onDelete:"cascade"}),userId:Ft("user_id").notNull().references(()=>o.id,{onDelete:"cascade"}),memoryVersion:Bo("memory_version").notNull().default(1),taskPrompt:be("task_prompt").notNull(),expectations:be("expectations").array().notNull().default([]),trials:Bo("trials").notNull().default(10),model:be("model"),status:be("status").notNull().default("pending"),result:Hr("result").$type(),error:be("error"),createdAt:Vt("created_at",{withTimezone:!0}).notNull().defaultNow(),startedAt:Vt("started_at",{withTimezone:!0}),completedAt:Vt("completed_at",{withTimezone:!0})},e=>[Ho("idx_memory_experiments_memory").on(e.memoryId),Ho("idx_memory_experiments_user").on(e.userId)]);import{boolean as Ur,date as Vr,index as Gt,integer as Fr,jsonb as Gr,pgTable as Jt,text as A,timestamp as U,uniqueIndex as Jr,uuid as ce}from"drizzle-orm/pg-core";var Vo=Jt("announcements",{id:ce("id").primaryKey().defaultRandom(),version:A("version").notNull().unique(),releaseDate:Vr("release_date").notNull(),subject:A("subject").notNull(),htmlBody:A("html_body").notNull(),textBody:A("text_body").notNull(),sections:Gr("sections").notNull().default({}),status:A("status").notNull().default("draft"),recipientCount:Fr("recipient_count"),sentAt:U("sent_at",{withTimezone:!0}),sentBy:ce("sent_by"),error:A("error"),createdAt:U("created_at",{withTimezone:!0}).notNull().defaultNow(),updatedAt:U("updated_at",{withTimezone:!0}).notNull().defaultNow()},e=>[Gt("idx_announcements_status").on(e.status),Gt("idx_announcements_created").on(e.createdAt)]),Fo=Jt("announcement_deliveries",{id:ce("id").primaryKey().defaultRandom(),announcementId:ce("announcement_id").notNull(),userId:ce("user_id").notNull(),email:A("email").notNull(),status:A("status").notNull().default("pending"),providerId:A("provider_id"),error:A("error"),sentAt:U("sent_at",{withTimezone:!0}),createdAt:U("created_at",{withTimezone:!0}).notNull().defaultNow()},e=>[Jr("uniq_announcement_deliveries_announcement_user").on(e.announcementId,e.userId),Gt("idx_announcement_deliveries_user").on(e.userId,e.createdAt)]),Go=Jt("notification_preferences",{userId:ce("user_id").primaryKey(),productAnnouncements:Ur("product_announcements").notNull().default(!0),unsubscribeToken:A("unsubscribe_token").notNull().unique(),unsubscribedAt:U("unsubscribed_at",{withTimezone:!0}),createdAt:U("created_at",{withTimezone:!0}).notNull().defaultNow(),updatedAt:U("updated_at",{withTimezone:!0}).notNull().defaultNow()});import{pgTable as Yr,text as Yt,timestamp as it,uuid as at,index as Jo}from"drizzle-orm/pg-core";var b=Yr("org_invitations",{id:at("id").primaryKey().defaultRandom(),orgId:at("org_id").notNull().references(()=>u.id,{onDelete:"cascade"}),email:Yt("email").notNull(),role:Yt("role").notNull().default("member"),teamId:at("team_id").references(()=>h.id,{onDelete:"set null"}),invitedBy:at("invited_by").notNull().references(()=>o.id),token:Yt("token").notNull().unique(),expiresAt:it("expires_at",{withTimezone:!0}).notNull(),acceptedAt:it("accepted_at",{withTimezone:!0}),revokedAt:it("revoked_at",{withTimezone:!0}),createdAt:it("created_at",{withTimezone:!0}).notNull().defaultNow()},e=>[Jo("idx_org_invitations_token").on(e.token),Jo("idx_org_invitations_org").on(e.orgId)]);import{pgTable as $r,text as Qr,timestamp as Wr,jsonb as Xr,uuid as $t,index as Yo}from"drizzle-orm/pg-core";var me=$r("instruction_events",{id:$t("id").primaryKey().defaultRandom(),instructionId:$t("instruction_id").notNull().references(()=>r.id,{onDelete:"cascade"}),eventType:Qr("event_type").notNull(),actorId:$t("actor_id").notNull(),metadata:Xr("metadata"),createdAt:Wr("created_at",{withTimezone:!0}).defaultNow()},e=>[Yo("idx_instruction_events_instruction").on(e.instructionId),Yo("idx_instruction_events_type").on(e.eventType)]);import{pgTable as $o,text as dt,timestamp as Qo,uuid as R,integer as Wo,index as _e,unique as Zr}from"drizzle-orm/pg-core";var S=$o("treatment_assignments",{id:R("id").primaryKey().defaultRandom(),userId:R("user_id").notNull().references(()=>o.id,{onDelete:"cascade"}),treatmentType:dt("treatment_type").notNull(),treatmentId:R("treatment_id").notNull(),treatmentVersion:Wo("treatment_version").notNull().default(1),projectId:R("project_id").references(()=>s.id,{onDelete:"set null"}),assignedBy:R("assigned_by").references(()=>o.id,{onDelete:"set null"}),method:dt("method").notNull(),assignedAt:Qo("assigned_at",{withTimezone:!0}).notNull().defaultNow()},e=>[_e("idx_treatment_assignments_user").on(e.userId),_e("idx_treatment_assignments_treatment").on(e.treatmentType,e.treatmentId),_e("idx_treatment_assignments_project").on(e.projectId)]),K=$o("treatment_exposures",{id:R("id").primaryKey().defaultRandom(),sessionId:R("session_id").notNull().references(()=>d.id,{onDelete:"cascade"}),userId:R("user_id").notNull().references(()=>o.id,{onDelete:"cascade"}),treatmentType:dt("treatment_type").notNull(),treatmentId:R("treatment_id").notNull(),treatmentVersion:Wo("treatment_version").notNull().default(1),assignmentId:R("assignment_id").references(()=>S.id,{onDelete:"set null"}),method:dt("method").notNull(),exposedAt:Qo("exposed_at",{withTimezone:!0}).notNull().defaultNow()},e=>[Zr("treatment_exposures_unique").on(e.sessionId,e.treatmentType,e.treatmentId,e.treatmentVersion),_e("idx_treatment_exposures_treatment").on(e.treatmentType,e.treatmentId),_e("idx_treatment_exposures_user").on(e.userId),_e("idx_treatment_exposures_session").on(e.sessionId)]);import{pgTable as es,text as Qt,timestamp as ts,uuid as ut,integer as os,index as Xo,uniqueIndex as ns}from"drizzle-orm/pg-core";var Zo=es("pending_treatment_exposures",{id:ut("id").primaryKey().defaultRandom(),userId:ut("user_id").notNull().references(()=>o.id,{onDelete:"cascade"}),externalSessionId:Qt("external_session_id").notNull(),treatmentType:Qt("treatment_type").notNull(),treatmentId:ut("treatment_id").notNull(),treatmentVersion:os("treatment_version").notNull().default(1),method:Qt("method").notNull().default("injected"),projectId:ut("project_id").references(()=>s.id,{onDelete:"set null"}),createdAt:ts("created_at",{withTimezone:!0}).notNull().defaultNow()},e=>[ns("pending_treatment_exposures_unique").on(e.externalSessionId,e.treatmentType,e.treatmentId,e.treatmentVersion),Xo("idx_pending_treatment_exposures_ext").on(e.externalSessionId),Xo("idx_pending_treatment_exposures_user").on(e.userId)]);import{pgTable as rs,text as pe,timestamp as Wt,uuid as Xt,jsonb as ss,uniqueIndex as is,index as en}from"drizzle-orm/pg-core";var lt=rs("session_terminal_targets",{id:Xt("id").primaryKey().defaultRandom(),userId:Xt("user_id").notNull().references(()=>o.id,{onDelete:"cascade"}),sessionId:Xt("session_id").references(()=>d.id,{onDelete:"set null"}),externalSessionId:pe("external_session_id"),kind:pe("kind").notNull(),target:pe("target").notNull(),status:pe("status").notNull().default("active"),attachCommand:pe("attach_command").notNull(),projectPath:pe("project_path"),metadata:ss("metadata").notNull().default({}),lastSeenAt:Wt("last_seen_at",{withTimezone:!0}).defaultNow(),createdAt:Wt("created_at",{withTimezone:!0}).defaultNow(),updatedAt:Wt("updated_at",{withTimezone:!0}).defaultNow()},e=>[is("idx_session_terminal_targets_user_target").on(e.userId,e.target),en("idx_session_terminal_targets_session").on(e.sessionId),en("idx_session_terminal_targets_user_status").on(e.userId,e.status)]);import{boolean as as,index as ct,jsonb as tn,pgTable as ds,text as Z,timestamp as Se,uuid as mt,integer as us}from"drizzle-orm/pg-core";var on=ds("session_send_jobs",{id:mt("id").primaryKey().defaultRandom(),userId:mt("user_id").notNull(),sessionId:mt("session_id").notNull().references(()=>d.id,{onDelete:"cascade"}),terminalTargetId:mt("terminal_target_id").references(()=>lt.id,{onDelete:"set null"}),target:Z("target").notNull(),message:Z("message").notNull(),submit:as("submit").notNull().default(!0),delivery:Z("delivery").notNull().default("live"),status:Z("status").notNull().default("pending"),result:tn("result"),error:Z("error"),attempts:us("attempts").notNull().default(0),taskKind:Z("task_kind"),payload:tn("payload"),claimedBy:Z("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=>[ct("idx_session_send_jobs_user").on(e.userId),ct("idx_session_send_jobs_session").on(e.sessionId),ct("idx_session_send_jobs_status").on(e.status),ct("idx_session_send_jobs_pending").on(e.userId,e.status)]);import{pgTable as rn,text as ee,timestamp as _t,jsonb as sn,uuid as V,integer as ls,boolean as cs,uniqueIndex as ms,index as nn,primaryKey as _s}from"drizzle-orm/pg-core";var z=rn("packs",{id:V("id").primaryKey().defaultRandom(),name:ee("name").notNull(),description:ee("description").notNull(),scope:ee("scope").notNull(),scopeRef:V("scope_ref"),version:ee("version").notNull().default("1.0.0"),tags:ee("tags").array(),badge:ee("badge"),metadata:sn("metadata"),createdBy:V("created_by"),createdAt:_t("created_at",{withTimezone:!0}).defaultNow(),updatedAt:_t("updated_at",{withTimezone:!0}).defaultNow(),archived:cs("archived").default(!1),archivedAt:_t("archived_at",{withTimezone:!0}),archivedBy:V("archived_by"),forkedFromId:V("forked_from_id").references(()=>z.id,{onDelete:"set null"}),upstreamVersion:ee("upstream_version")},e=>[ms("packs_name_scope_ref_idx").on(e.name,e.scope,e.scopeRef),nn("idx_packs_scope").on(e.scope,e.scopeRef),nn("idx_packs_created_by").on(e.createdBy)]),F=rn("pack_instructions",{packId:V("pack_id").references(()=>z.id,{onDelete:"cascade"}).notNull(),instructionId:V("instruction_id").references(()=>r.id,{onDelete:"cascade"}).notNull(),position:ls("position").notNull().default(0),slotOverrides:sn("slot_overrides"),addedAt:_t("added_at",{withTimezone:!0}).defaultNow(),addedBy:V("added_by")},e=>[_s({columns:[e.packId,e.instructionId]})]);import{pgTable as ps,text as Zt,timestamp as fs,jsonb as xs,uuid as eo,index as fe}from"drizzle-orm/pg-core";var xe=ps("instruction_usage_events",{id:eo("id").primaryKey().defaultRandom(),instructionId:eo("instruction_id").references(()=>r.id,{onDelete:"set null"}),userId:eo("user_id").notNull(),surface:Zt("surface").notNull(),action:Zt("action").notNull(),metadata:xs("metadata"),traceId:Zt("trace_id"),createdAt:fs("created_at",{withTimezone:!0}).defaultNow()},e=>[fe("idx_usage_events_instruction").on(e.instructionId),fe("idx_usage_events_user").on(e.userId),fe("idx_usage_events_surface").on(e.surface),fe("idx_usage_events_action").on(e.action),fe("idx_usage_events_created_at").on(e.createdAt),fe("idx_usage_events_user_created").on(e.userId,e.createdAt)]);import{pgTable as Ns,text as pt,timestamp as an,jsonb as gs,uuid as dn,index as to}from"drizzle-orm/pg-core";var un=Ns("worker_connections",{id:dn("id").primaryKey().defaultRandom(),userId:dn("user_id").notNull(),workerType:pt("worker_type").notNull().default("mcp"),clientName:pt("client_name").notNull(),clientVersion:pt("client_version"),workerVersion:pt("worker_version"),lastHeartbeat:an("last_heartbeat",{withTimezone:!0}).notNull().defaultNow(),connectedAt:an("connected_at",{withTimezone:!0}).notNull().defaultNow(),metadata:gs("metadata")},e=>[to("idx_worker_connections_user").on(e.userId),to("idx_worker_connections_heartbeat").on(e.userId,e.lastHeartbeat),to("idx_worker_connections_type").on(e.userId,e.workerType)]);import{pgTable as vs,text as ft,timestamp as hs,jsonb as Is,uuid as ln,index as cn}from"drizzle-orm/pg-core";var mn=vs("cli_setup_events",{id:ln("id").primaryKey().defaultRandom(),userId:ln("user_id").notNull(),deviceId:ft("device_id").notNull(),event:ft("event").notNull(),cliVersion:ft("cli_version"),os:ft("os"),props:Is("props").notNull().default({}),createdAt:hs("created_at",{withTimezone:!0}).notNull().defaultNow()},e=>[cn("idx_cli_setup_events_user").on(e.userId,e.createdAt),cn("idx_cli_setup_events_device").on(e.deviceId,e.createdAt)]);import{pgTable as ys,text as te,integer as Ts,boolean as ws,timestamp as As,jsonb as zs,uuid as Ds,index as _n}from"drizzle-orm/pg-core";var pn=ys("cli_error_events",{id:Ds("id").primaryKey().defaultRandom(),deviceId:te("device_id"),event:te("event").notNull(),command:te("command"),statusCode:Ts("status_code"),message:te("message"),cliVersion:te("cli_version"),os:te("os"),nodeVersion:te("node_version"),proxied:ws("proxied"),props:zs("props").notNull().default({}),createdAt:As("created_at",{withTimezone:!0}).notNull().defaultNow()},e=>[_n("idx_cli_error_events_created").on(e.createdAt),_n("idx_cli_error_events_device").on(e.deviceId,e.createdAt)]);import{sql as js}from"drizzle-orm";import{pgTable as oe,text as m,timestamp as v,jsonb as w,uuid as c,integer as P,boolean as Ke,index as N,unique as fn}from"drizzle-orm/pg-core";var n=oe("eval_targets",{id:c("id").primaryKey().defaultRandom(),userId:c("user_id").notNull(),name:m("name").notNull(),type:m("type").notNull(),content:m("content").notNull(),description:m("description").notNull().default(""),metadata:w("metadata").notNull().default({}),version:P("version").notNull().default(1),parentId:c("parent_id").references(()=>n.id,{onDelete:"set null"}),createdAt:v("created_at",{withTimezone:!0}).defaultNow(),updatedAt:v("updated_at",{withTimezone:!0}).defaultNow()},e=>[N("eval_targets_name_user_idx").on(e.name,e.userId),N("idx_eval_targets_user").on(e.userId),N("idx_eval_targets_type").on(e.type),N("idx_eval_targets_parent").on(e.parentId)]),C=oe("evals",{id:c("id").primaryKey().defaultRandom(),evalTargetId:c("eval_target_id").notNull().references(()=>n.id,{onDelete:"cascade"}),name:m("name").notNull(),prompt:m("prompt").notNull(),expectedOutput:m("expected_output").notNull().default(""),files:w("files").notNull().default([]),expectations:w("expectations").notNull().default([]),retiredAt:v("retired_at",{withTimezone:!0}),retiredReason:m("retired_reason"),createdAt:v("created_at",{withTimezone:!0}).defaultNow(),updatedAt:v("updated_at",{withTimezone:!0}).defaultNow(),contentUpdatedAt:v("content_updated_at",{withTimezone:!0}).notNull().defaultNow()},e=>[N("idx_evals_target").on(e.evalTargetId),N("idx_evals_target_active").on(e.evalTargetId).where(js`${e.retiredAt} IS NULL`)]),k=oe("eval_runs",{id:c("id").primaryKey().defaultRandom(),jobId:c("job_id"),evalId:c("eval_id").notNull().references(()=>C.id,{onDelete:"cascade"}),evalTargetId:c("eval_target_id").notNull().references(()=>n.id,{onDelete:"cascade"}),evalTargetVersion:P("eval_target_version").notNull(),configuration:m("configuration").notNull(),runNumber:P("run_number").notNull().default(1),iteration:P("iteration").notNull().default(1),status:m("status").notNull().default("completed"),outputs:w("outputs").notNull().default({}),timing:w("timing").notNull().default({}),grading:w("grading").notNull().default({}),comparison:w("comparison"),createdAt:v("created_at",{withTimezone:!0}).defaultNow()},e=>[N("idx_eval_runs_eval").on(e.evalId),N("idx_eval_runs_target").on(e.evalTargetId),N("idx_eval_runs_iteration").on(e.evalTargetId,e.iteration)]),xn=oe("eval_comparisons",{id:c("id").primaryKey().defaultRandom(),userId:c("user_id").notNull(),targetAId:c("target_a_id").notNull().references(()=>n.id,{onDelete:"cascade"}),targetBId:c("target_b_id").notNull().references(()=>n.id,{onDelete:"cascade"}),targetAVersion:P("target_a_version").notNull(),targetBVersion:P("target_b_version").notNull(),isSwapped:Ke("is_swapped").notNull().default(!1),winnerTargetId:c("winner_target_id").references(()=>n.id,{onDelete:"set null"}),perEval:w("per_eval").notNull().default([]),overall:w("overall").notNull().default({}),rawOutput:m("raw_output"),model:m("model"),status:m("status").notNull().default("completed"),createdAt:v("created_at",{withTimezone:!0}).defaultNow()},e=>[N("idx_eval_comparisons_target_a").on(e.targetAId),N("idx_eval_comparisons_target_b").on(e.targetBId),N("idx_eval_comparisons_user").on(e.userId)]),Nn=oe("eval_grade_annotations",{id:c("id").primaryKey().defaultRandom(),userId:c("user_id").notNull(),evalRunId:c("eval_run_id").notNull().references(()=>k.id,{onDelete:"cascade"}),evalTargetId:c("eval_target_id").notNull().references(()=>n.id,{onDelete:"cascade"}),expectationIndex:P("expectation_index").notNull(),expectationText:m("expectation_text").notNull(),judgePassed:Ke("judge_passed").notNull(),judgeMethod:m("judge_method").notNull(),judgeModel:m("judge_model"),verdict:m("verdict").notNull(),flag:m("flag"),note:m("note"),createdAt:v("created_at",{withTimezone:!0}).defaultNow(),updatedAt:v("updated_at",{withTimezone:!0}).defaultNow()},e=>[N("idx_eval_grade_annotations_target").on(e.evalTargetId),N("idx_eval_grade_annotations_run").on(e.evalRunId),fn("eval_grade_annotations_eval_run_id_expectation_index_key").on(e.evalRunId,e.expectationIndex)]),gn=oe("judge_reviewer_verdicts",{id:c("id").primaryKey().defaultRandom(),userId:c("user_id").notNull(),evalTargetId:c("eval_target_id").notNull().references(()=>n.id,{onDelete:"cascade"}),evalRunId:c("eval_run_id").notNull().references(()=>k.id,{onDelete:"cascade"}),expectationIndex:P("expectation_index").notNull(),expectationText:m("expectation_text").notNull(),judgePassed:Ke("judge_passed").notNull(),humanPassed:Ke("human_passed").notNull(),reviewerEngine:m("reviewer_engine").notNull(),reviewerModel:m("reviewer_model").notNull(),reviewerPassed:Ke("reviewer_passed").notNull(),resolvedAt:v("resolved_at",{withTimezone:!0}),resolution:m("resolution"),createdAt:v("created_at",{withTimezone:!0}).defaultNow(),updatedAt:v("updated_at",{withTimezone:!0}).defaultNow()},e=>[N("idx_jrv_target").on(e.evalTargetId),fn("judge_reviewer_verdicts_eval_run_id_expectation_index_review_key").on(e.evalRunId,e.expectationIndex,e.reviewerModel)]),Ne=oe("benchmarks",{id:c("id").primaryKey().defaultRandom(),evalTargetId:c("eval_target_id").notNull().references(()=>n.id,{onDelete:"cascade"}),iteration:P("iteration").notNull().default(1),runSummary:w("run_summary").notNull().default({}),notes:w("notes").notNull().default([]),feedback:w("feedback"),createdAt:v("created_at",{withTimezone:!0}).defaultNow()},e=>[N("idx_benchmarks_target").on(e.evalTargetId)]);import{sql as oo}from"drizzle-orm";import{pgTable as Rs,text as O,timestamp as ks,jsonb as xt,uuid as Nt,boolean as Es,index as Pe,uniqueIndex as bs}from"drizzle-orm/pg-core";var vn=Rs("instruction_promotions",{id:Nt("id").primaryKey().defaultRandom(),userId:Nt("user_id").notNull(),evalTargetId:Nt("eval_target_id").notNull().references(()=>n.id,{onDelete:"cascade"}),instructionId:Nt("instruction_id").references(()=>r.id,{onDelete:"set null"}),fromContentHash:O("from_content_hash").notNull(),toContentHash:O("to_content_hash").notNull(),fromContent:O("from_content").notNull(),toContent:O("to_content").notNull(),proposalSource:O("proposal_source").notNull(),proposalRationale:O("proposal_rationale").notNull().default(""),decision:O("decision").notNull(),applied:Es("applied").notNull().default(!1),refusals:xt("refusals").notNull().default([]),rationale:O("rationale").notNull().default(""),effectClass:O("effect_class").notNull(),verdict:xt("verdict").notNull().default({}),gates:xt("gates").notNull().default({}),touchedSections:xt("touched_sections").notNull().default([]),createdAt:ks("created_at",{withTimezone:!0}).notNull().defaultNow()},e=>[Pe("idx_instruction_promotions_budget").on(e.evalTargetId,e.createdAt.desc()).where(oo`${e.applied}`),Pe("idx_instruction_promotions_target").on(e.evalTargetId,e.createdAt.desc()),Pe("idx_instruction_promotions_user").on(e.userId,e.createdAt.desc()),Pe("idx_instruction_promotions_to_hash").on(e.toContentHash),bs("uq_instruction_promotions_applied").on(e.evalTargetId,e.fromContentHash,e.toContentHash).where(oo`${e.applied}`),Pe("idx_instruction_promotions_applied_hash").on(e.toContentHash,e.createdAt.desc()).where(oo`${e.applied}`)]);import{pgTable as In,text as no,timestamp as ro,jsonb as yn,uuid as ge,integer as Ce,index as gt,real as hn}from"drizzle-orm/pg-core";var ve=In("trigger_evals",{id:ge("id").primaryKey().defaultRandom(),evalTargetId:ge("eval_target_id").notNull().references(()=>n.id,{onDelete:"cascade"}),userId:ge("user_id").notNull(),queries:yn("queries").notNull().default([]),status:no("status").notNull().default("pending_review"),trainIndices:Ce("train_indices").array().default([]),testIndices:Ce("test_indices").array().default([]),createdAt:ro("created_at",{withTimezone:!0}).defaultNow(),updatedAt:ro("updated_at",{withTimezone:!0}).defaultNow()},e=>[gt("idx_trigger_evals_target").on(e.evalTargetId),gt("idx_trigger_evals_user").on(e.userId)]),he=In("optimization_runs",{id:ge("id").primaryKey().defaultRandom(),evalTargetId:ge("eval_target_id").notNull().references(()=>n.id,{onDelete:"cascade"}),userId:ge("user_id").notNull(),type:no("type").notNull(),iteration:Ce("iteration").notNull(),inputVersion:Ce("input_version").notNull(),outputVersion:Ce("output_version"),trainScore:hn("train_score"),testScore:hn("test_score"),analysis:yn("analysis").notNull().default({}),status:no("status").notNull().default("running"),createdAt:ro("created_at",{withTimezone:!0}).defaultNow()},e=>[gt("idx_optimization_runs_target").on(e.evalTargetId),gt("idx_optimization_runs_user").on(e.userId)]);import{pgTable as Ss,text as G,timestamp as Ks,jsonb as Oe,uuid as so,integer as io,real as Ps,index as qe,uniqueIndex as Tn}from"drizzle-orm/pg-core";var J=Ss("context_snapshots",{id:so("id").primaryKey().defaultRandom(),sessionId:so("session_id").references(()=>d.id,{onDelete:"cascade"}),userId:so("user_id").notNull().references(()=>o.id,{onDelete:"cascade"}),sequence:io("sequence").notNull().default(0),provider:G("provider").notNull(),model:G("model").notNull(),systemPrompt:G("system_prompt").notNull(),injectedInstructions:Oe("injected_instructions").notNull().default([]),messagesSummary:Oe("messages_summary").notNull(),tools:Oe("tools").notNull().default([]),systemHash:G("system_hash").notNull(),requestHash:G("request_hash").notNull().default(""),toolsHash:G("tools_hash"),injectedHash:G("injected_hash"),messagesDelta:Oe("messages_delta").default([]),messagesDeltaRef:G("messages_delta_ref"),maxTokens:io("max_tokens"),temperature:Ps("temperature"),estimatedTokens:io("estimated_tokens"),capturedAt:Ks("captured_at",{withTimezone:!0}).notNull().defaultNow(),metadata:Oe("metadata").default({})},e=>[qe("idx_context_snapshots_session").on(e.sessionId),qe("idx_context_snapshots_user").on(e.userId),qe("idx_context_snapshots_hash").on(e.systemHash),qe("idx_context_snapshots_request_hash").on(e.requestHash),Tn("idx_snapshots_session_request").on(e.sessionId,e.requestHash),Tn("idx_snapshots_session_sequence").on(e.sessionId,e.sequence),qe("idx_context_snapshots_user_session_captured").on(e.userId,e.sessionId,e.capturedAt.desc())]);import{pgTable as Cs,text as wn,timestamp as Os,jsonb as qs,integer as Ms,index as Ls}from"drizzle-orm/pg-core";var An=Cs("content_blobs",{hash:wn("hash").primaryKey(),contentType:wn("content_type").notNull(),content:qs("content").notNull(),sizeBytes:Ms("size_bytes").notNull().default(0),createdAt:Os("created_at",{withTimezone:!0}).defaultNow()},e=>[Ls("idx_content_blobs_type").on(e.contentType)]);import{pgTable as Bs,text as vt,timestamp as Me,jsonb as ht,uuid as ao,index as It,integer as Hs}from"drizzle-orm/pg-core";var Ie=Bs("eval_jobs",{id:ao("id").primaryKey().defaultRandom(),userId:ao("user_id").notNull(),evalTargetId:ao("eval_target_id").notNull().references(()=>n.id,{onDelete:"cascade"}),status:vt("status").notNull().default("pending"),config:ht("config").notNull().default({}),progress:ht("progress").notNull().default({}),result:ht("result"),error:vt("error"),attempts:Hs("attempts").notNull().default(0),taskKind:vt("task_kind"),payload:ht("payload"),claimedBy:vt("claimed_by"),claimedAt:Me("claimed_at",{withTimezone:!0}),leaseExpiresAt:Me("lease_expires_at",{withTimezone:!0}),createdAt:Me("created_at",{withTimezone:!0}).defaultNow(),updatedAt:Me("updated_at",{withTimezone:!0}).defaultNow(),completedAt:Me("completed_at",{withTimezone:!0})},e=>[It("idx_eval_jobs_user").on(e.userId),It("idx_eval_jobs_target").on(e.evalTargetId),It("idx_eval_jobs_status").on(e.status),It("idx_eval_jobs_pending").on(e.userId,e.status)]);import{pgTable as Us,text as Le,timestamp as Be,jsonb as zn,uuid as Dn,integer as Vs,index as jn}from"drizzle-orm/pg-core";var Rn=Us("agent_jobs",{id:Dn("id").primaryKey().defaultRandom(),userId:Dn("user_id").notNull(),taskKind:Le("task_kind").notNull(),status:Le("status").notNull().default("pending"),payload:zn("payload").notNull(),dedupeKey:Le("dedupe_key"),result:zn("result"),error:Le("error"),attempts:Vs("attempts").notNull().default(0),claimedBy:Le("claimed_by"),claimedAt:Be("claimed_at",{withTimezone:!0}),leaseExpiresAt:Be("lease_expires_at",{withTimezone:!0}),createdAt:Be("created_at",{withTimezone:!0}).notNull().defaultNow(),updatedAt:Be("updated_at",{withTimezone:!0}).notNull().defaultNow(),completedAt:Be("completed_at",{withTimezone:!0})},e=>[jn("idx_agent_jobs_claim").on(e.userId,e.status,e.taskKind,e.createdAt),jn("idx_agent_jobs_dedupe").on(e.userId,e.taskKind,e.dedupeKey)]);import{pgTable as Fs,text as He,timestamp as Ue,jsonb as yt,uuid as uo,index as Tt,integer as Gs}from"drizzle-orm/pg-core";var kn=Fs("insights_jobs",{id:uo("id").primaryKey().defaultRandom(),userId:uo("user_id").notNull(),status:He("status").notNull().default("pending"),projectPath:He("project_path"),projectId:uo("project_id").references(()=>s.id,{onDelete:"set null"}),config:yt("config").notNull().default({}),progress:yt("progress").notNull().default({}),result:yt("result"),error:He("error"),attempts:Gs("attempts").notNull().default(0),taskKind:He("task_kind"),payload:yt("payload"),claimedBy:He("claimed_by"),claimedAt:Ue("claimed_at",{withTimezone:!0}),leaseExpiresAt:Ue("lease_expires_at",{withTimezone:!0}),createdAt:Ue("created_at",{withTimezone:!0}).defaultNow(),updatedAt:Ue("updated_at",{withTimezone:!0}).defaultNow(),completedAt:Ue("completed_at",{withTimezone:!0})},e=>[Tt("idx_insights_jobs_user").on(e.userId),Tt("idx_insights_jobs_status").on(e.status),Tt("idx_insights_jobs_pending").on(e.userId,e.status),Tt("idx_insights_jobs_project").on(e.projectId)]);import{pgTable as Js,text as lo,timestamp as wt,uuid as En,index as Ys,uniqueIndex as $s}from"drizzle-orm/pg-core";var ye=Js("api_keys",{id:En("id").primaryKey().defaultRandom(),userId:En("user_id").notNull().references(()=>o.id,{onDelete:"cascade"}),name:lo("name").notNull(),keyHash:lo("key_hash").notNull(),keyPrefix:lo("key_prefix").notNull(),lastUsedAt:wt("last_used_at",{withTimezone:!0}),expiresAt:wt("expires_at",{withTimezone:!0}),revokedAt:wt("revoked_at",{withTimezone:!0}),createdAt:wt("created_at",{withTimezone:!0}).defaultNow()},e=>[Ys("idx_api_keys_user").on(e.userId),$s("idx_api_keys_hash").on(e.keyHash)]);import{pgTable as Qs,text as co,timestamp as bn,uuid as Ws,index as Xs}from"drizzle-orm/pg-core";var Sn=Qs("extension_auth_codes",{code:co("code").primaryKey(),userId:Ws("user_id").notNull().references(()=>o.id,{onDelete:"cascade"}),editor:co("editor"),email:co("email"),expiresAt:bn("expires_at",{withTimezone:!0}).notNull(),createdAt:bn("created_at",{withTimezone:!0}).defaultNow()},e=>[Xs("idx_ext_auth_codes_expiry").on(e.expiresAt)]);import{pgTable as Zs,text as ei,timestamp as Kn,jsonb as ti,uuid as mo,index as Pn}from"drizzle-orm/pg-core";var Te=Zs("eval_conversations",{id:mo("id").primaryKey().defaultRandom(),evalTargetId:mo("eval_target_id").notNull().references(()=>n.id,{onDelete:"cascade"}),userId:mo("user_id").notNull(),messages:ti("messages").notNull().default([]),status:ei("status").notNull().default("active"),createdAt:Kn("created_at",{withTimezone:!0}).defaultNow(),updatedAt:Kn("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 oi,text as q,timestamp as Cn,jsonb as ni,uuid as _o}from"drizzle-orm/pg-core";var On=oi("skill_submissions",{id:_o("id").primaryKey().defaultRandom(),skillId:q("skill_id").notNull(),name:q("name").notNull(),description:q("description").notNull(),category:q("category").notNull(),tools:q("tools").array().notNull(),tags:q("tags").array().default([]),content:q("content").notNull(),status:q("status").notNull().default("pending"),submittedBy:_o("submitted_by").notNull(),reviewedBy:_o("reviewed_by"),reviewNote:q("review_note"),metadata:ni("metadata"),createdAt:Cn("created_at",{withTimezone:!0}).defaultNow(),updatedAt:Cn("updated_at",{withTimezone:!0}).defaultNow()});import{pgTable as ri,text as Ve,timestamp as qn,jsonb as si,uuid as ii,uniqueIndex as ai,index as Mn}from"drizzle-orm/pg-core";var Ln=ri("harness_releases",{id:ii("id").primaryKey().defaultRandom(),harness:Ve("harness").notNull(),version:Ve("version").notNull(),publishedAt:qn("published_at",{withTimezone:!0}).notNull(),title:Ve("title"),body:Ve("body"),categories:si("categories").default({}),url:Ve("url"),createdAt:qn("created_at",{withTimezone:!0}).defaultNow()},e=>[ai("idx_harness_releases_unique").on(e.harness,e.version),Mn("idx_harness_releases_harness").on(e.harness),Mn("idx_harness_releases_published").on(e.publishedAt)]);import{pgTable as di,text as we,timestamp as Bn,jsonb as ui,uuid as Hn,index as Un,uniqueIndex as li}from"drizzle-orm/pg-core";var po=di("notifications",{id:Hn("id").primaryKey().defaultRandom(),userId:Hn("user_id").notNull(),type:we("type").notNull(),title:we("title").notNull(),body:we("body"),url:we("url"),sourceTable:we("source_table"),sourceId:we("source_id"),metadata:ui("metadata").notNull().default({}),readAt:Bn("read_at",{withTimezone:!0}),createdAt:Bn("created_at",{withTimezone:!0}).notNull().defaultNow()},e=>[Un("idx_notifications_user_created").on(e.userId,e.createdAt),Un("idx_notifications_user_unread").on(e.userId),li("idx_notifications_source_dedup").on(e.userId,e.sourceTable,e.sourceId)]);import{pgTable as ci,text as Fe,timestamp as Ge,jsonb as fo,uuid as xo,index as At,integer as mi}from"drizzle-orm/pg-core";var Ae=ci("launch_jobs",{id:xo("id").primaryKey().defaultRandom(),userId:xo("user_id").notNull(),tool:Fe("tool").notNull(),status:Fe("status").notNull().default("pending"),config:fo("config").notNull().default({}),result:fo("result"),error:Fe("error"),attempts:mi("attempts").notNull().default(0),taskKind:Fe("task_kind"),payload:fo("payload"),claimedBy:Fe("claimed_by"),claimedAt:Ge("claimed_at",{withTimezone:!0}),leaseExpiresAt:Ge("lease_expires_at",{withTimezone:!0}),createdAt:Ge("created_at",{withTimezone:!0}).defaultNow(),updatedAt:Ge("updated_at",{withTimezone:!0}).defaultNow(),completedAt:Ge("completed_at",{withTimezone:!0}),runId:xo("run_id").references(()=>g.id,{onDelete:"set null"})},e=>[At("idx_launch_jobs_user").on(e.userId),At("idx_launch_jobs_status").on(e.status),At("idx_launch_jobs_pending").on(e.userId,e.status),At("idx_launch_jobs_run").on(e.runId)]);import{pgTable as Vn,uuid as M,text as Je,real as _i,timestamp as zt,boolean as pi,uniqueIndex as fi,index as Ye}from"drizzle-orm/pg-core";var No=Vn("instruction_suggestions",{id:M("id").primaryKey().defaultRandom(),userId:M("user_id").notNull().references(()=>o.id,{onDelete:"cascade"}),instructionId:M("instruction_id").notNull().references(()=>r.id,{onDelete:"cascade"}),projectPath:Je("project_path").notNull(),projectId:M("project_id").references(()=>s.id,{onDelete:"set null"}),score:_i("score").notNull(),reason:Je("reason").notNull(),generatedAt:zt("generated_at",{withTimezone:!0}).notNull().defaultNow(),isStale:pi("is_stale").notNull().default(!1),dismissedAt:zt("dismissed_at",{withTimezone:!0}),acceptedAt:zt("accepted_at",{withTimezone:!0}),promotedToInstructionId:M("promoted_to_instruction_id").references(()=>r.id,{onDelete:"set null"})},e=>[fi("idx_instruction_suggestions_user_project_instruction").on(e.userId,e.projectPath,e.instructionId),Ye("idx_instruction_suggestions_user_project").on(e.userId,e.projectPath),Ye("idx_instruction_suggestions_user_proj_id").on(e.userId,e.projectId),Ye("idx_instruction_suggestions_generated_at").on(e.generatedAt)]),Fn=Vn("instruction_suggestion_events",{id:M("id").primaryKey().defaultRandom(),suggestionId:M("suggestion_id").notNull().references(()=>No.id,{onDelete:"cascade"}),userId:M("user_id").notNull().references(()=>o.id,{onDelete:"cascade"}),eventType:Je("event_type").notNull(),tool:Je("tool"),sessionId:M("session_id"),projectPath:Je("project_path").notNull(),createdAt:zt("created_at",{withTimezone:!0}).notNull().defaultNow()},e=>[Ye("idx_instruction_suggestion_events_suggestion_id").on(e.suggestionId),Ye("idx_instruction_suggestion_events_user_id").on(e.userId)]);import{pgTable as xi,text as go,integer as Ni,numeric as $e,timestamp as vo,index as gi,primaryKey as vi}from"drizzle-orm/pg-core";var Gn=xi("model_pricing",{provider:go("provider").notNull(),modelId:go("model_id").notNull(),inputPerM:$e("input_per_m").notNull(),outputPerM:$e("output_per_m").notNull(),cacheReadPerM:$e("cache_read_per_m").notNull(),cacheWrite5mPerM:$e("cache_write_5m_per_m").notNull(),cacheWrite1hPerM:$e("cache_write_1h_per_m").notNull(),contextWindow:Ni("context_window"),effectiveFrom:vo("effective_from",{withTimezone:!0}).notNull(),effectiveUntil:vo("effective_until",{withTimezone:!0}),source:go("source").notNull(),verifiedAt:vo("verified_at",{withTimezone:!0})},e=>[vi({columns:[e.provider,e.modelId,e.effectiveFrom]}),gi("idx_model_pricing_active").on(e.provider,e.modelId,e.effectiveFrom.desc())]);import{pgTable as hi,text as ne,numeric as Jn,timestamp as Yn,uuid as $n,jsonb as Ii,index as Qn}from"drizzle-orm/pg-core";var Wn=hi("limit_observations",{id:$n("id").primaryKey().defaultRandom(),observedAt:Yn("observed_at",{withTimezone:!0}).notNull().defaultNow(),provider:ne("provider").notNull(),plan:ne("plan").notNull(),limitType:ne("limit_type").notNull(),value:Jn("value").notNull(),unit:ne("unit").notNull(),comparator:ne("comparator").notNull().default("="),resetsAt:Yn("resets_at",{withTimezone:!0}),sourceType:ne("source_type").notNull(),sourceUrl:ne("source_url"),sourceEvidence:Ii("source_evidence"),confidence:Jn("confidence").notNull(),userId:$n("user_id")},e=>[Qn("idx_limit_obs_lookup").on(e.provider,e.plan,e.limitType,e.observedAt.desc()),Qn("idx_limit_obs_user").on(e.userId,e.observedAt.desc())]);import{pgTable as yi,text as Dt,timestamp as Ti,uuid as wi,jsonb as Ai,boolean as zi,uniqueIndex as Di}from"drizzle-orm/pg-core";var Xn=yi("provider_docs_snapshots",{id:wi("id").primaryKey().defaultRandom(),fetchedAt:Ti("fetched_at",{withTimezone:!0}).notNull().defaultNow(),provider:Dt("provider").notNull(),docUrl:Dt("doc_url").notNull(),contentHash:Dt("content_hash").notNull(),content:Dt("content").notNull(),parseSuccess:zi("parse_success").notNull(),parseErrors:Ai("parse_errors")},e=>[Di("idx_docs_dedup").on(e.provider,e.docUrl,e.contentHash)]);import{pgTable as ji,text as jt,numeric as Zn,timestamp as er,uuid as Ri,primaryKey as ki,index as Ei}from"drizzle-orm/pg-core";var tr=ji("plan_limits_active",{provider:jt("provider").notNull(),plan:jt("plan").notNull(),limitType:jt("limit_type").notNull(),value:Zn("value").notNull(),unit:jt("unit").notNull(),effectiveFrom:er("effective_from",{withTimezone:!0}).notNull(),effectiveUntil:er("effective_until",{withTimezone:!0}),confidence:Zn("confidence").notNull(),sourceObservationIds:Ri("source_observation_ids").array().notNull()},e=>[ki({columns:[e.provider,e.plan,e.limitType,e.effectiveFrom]}),Ei("idx_plan_limits_lookup").on(e.provider,e.plan,e.limitType,e.effectiveFrom.desc())]);import{pgTable as bi,text as ho,timestamp as Si,uuid as or,jsonb as Ki,index as Pi}from"drizzle-orm/pg-core";var nr=bi("alert_dispatches",{id:or("id").primaryKey().defaultRandom(),userId:or("user_id").notNull(),alertKey:ho("alert_key").notNull(),severity:ho("severity").notNull(),lastDispatchedAt:Si("last_dispatched_at",{withTimezone:!0}).notNull().defaultNow(),lastState:Ki("last_state").notNull(),channel:ho("channel").notNull()},e=>[Pi("idx_alert_user_key").on(e.userId,e.alertKey,e.lastDispatchedAt.desc())]);import{pgTable as Ci,text as Io,timestamp as rr,uuid as yo,integer as Oi,index as qi,unique as Mi}from"drizzle-orm/pg-core";var sr=Ci("scaffolding_fingerprints",{id:yo("id").primaryKey().defaultRandom(),userId:yo("user_id").notNull(),harness:Io("harness").notNull(),model:Io("model").notNull(),toolsHash:Io("tools_hash").notNull(),firstSeenAt:rr("first_seen_at",{withTimezone:!0}).notNull().defaultNow(),lastSeenAt:rr("last_seen_at",{withTimezone:!0}).notNull().defaultNow(),snapshotCount:Oi("snapshot_count").notNull().default(1),firstSessionId:yo("first_session_id")},e=>[Mi("scaffolding_fingerprints_user_id_harness_model_tools_hash_key").on(e.userId,e.harness,e.model,e.toolsHash),qi("idx_scaffolding_fp_segment").on(e.userId,e.harness,e.model)]);import{pgTable as Li,text as To,timestamp as Bi,jsonb as Hi,uuid as ir,integer as Ui,unique as Vi}from"drizzle-orm/pg-core";var ar=Li("scaffolding_segments",{id:ir("id").primaryKey().defaultRandom(),userId:ir("user_id").notNull(),harness:To("harness").notNull(),model:To("model").notNull(),coreNames:Hi("core_names").notNull(),coreHash:To("core_hash").notNull(),activeFingerprints:Ui("active_fingerprints").notNull(),computedAt:Bi("computed_at",{withTimezone:!0}).notNull().defaultNow()},e=>[Vi("scaffolding_segments_user_id_harness_model_key").on(e.userId,e.harness,e.model)]);import{drizzle as mr}from"drizzle-orm/postgres-js";import _r from"postgres";var Rt={};Er(Rt,{agentJobs:()=>Rn,agentRuns:()=>g,agentRunsRelations:()=>sa,alertDispatches:()=>nr,announcementDeliveries:()=>Fo,announcements:()=>Vo,apiKeys:()=>ye,apiKeysRelations:()=>Gi,benchmarks:()=>Ne,benchmarksRelations:()=>Na,cliErrorEvents:()=>pn,cliSetupEvents:()=>mn,contentBlobs:()=>An,contextSnapshots:()=>J,contextSnapshotsRelations:()=>ya,evalComparisons:()=>xn,evalConversations:()=>Te,evalConversationsRelations:()=>Ia,evalGradeAnnotations:()=>Nn,evalJobs:()=>Ie,evalJobsRelations:()=>ha,evalRuns:()=>k,evalRunsRelations:()=>xa,evalTargets:()=>n,evalTargetsRelations:()=>pa,evals:()=>C,evalsRelations:()=>fa,extensionAuthCodes:()=>Sn,harnessReleases:()=>Ln,insightsJobs:()=>kn,instructionEvents:()=>me,instructionEventsRelations:()=>Zi,instructionPromotions:()=>vn,instructionSuggestionEvents:()=>Fn,instructionSuggestions:()=>No,instructionUsageEvents:()=>xe,instructionUsageEventsRelations:()=>_a,instructionVersionIdentities:()=>Po,instructionVersions:()=>ae,instructionVersionsRelations:()=>ta,instructions:()=>r,instructionsRelations:()=>Xi,judgeReviewerVerdicts:()=>gn,launchJobs:()=>Ae,launchJobsRelations:()=>ia,limitObservations:()=>Wn,memories:()=>T,memoriesRelations:()=>ea,memoryExperiments:()=>Uo,modelPricing:()=>Gn,notificationPreferences:()=>Go,notifications:()=>po,optimizationRuns:()=>he,optimizationRunsRelations:()=>va,orgInvitations:()=>b,orgInvitationsRelations:()=>$i,organizations:()=>u,organizationsRelations:()=>Ji,packInstructions:()=>F,packInstructionsRelations:()=>ma,packs:()=>z,packsRelations:()=>ca,pendingTreatmentExposures:()=>Zo,planLimitsActive:()=>tr,profiles:()=>o,profilesRelations:()=>Fi,projectCheckouts:()=>Oo,projectInstructions:()=>B,projectInstructionsRelations:()=>na,projects:()=>s,projectsRelations:()=>oa,providerDocsSnapshots:()=>Xn,scaffoldingFingerprints:()=>sr,scaffoldingSegments:()=>ar,sessionEvents:()=>ue,sessionEventsRelations:()=>aa,sessionInstructions:()=>H,sessionInstructionsRelations:()=>da,sessionSendJobs:()=>on,sessionTerminalTargets:()=>lt,sessions:()=>d,sessionsRelations:()=>ra,skillSubmissions:()=>On,teams:()=>h,teamsRelations:()=>Yi,treatmentAssignments:()=>S,treatmentAssignmentsRelations:()=>ua,treatmentExposures:()=>K,treatmentExposuresRelations:()=>la,triggerEvals:()=>ve,triggerEvalsRelations:()=>ga,userOrganizations:()=>se,userOrganizationsRelations:()=>Qi,userTeams:()=>ie,userTeamsRelations:()=>Wi,workerConnections:()=>un});import{relations as i}from"drizzle-orm";var Fi=i(o,({many:e})=>({sessions:e(d),contextSnapshots:e(J),apiKeys:e(ye)})),Gi=i(ye,({one:e})=>({profile:e(o,{fields:[ye.userId],references:[o.id]})})),Ji=i(u,({many:e})=>({teams:e(h),userOrganizations:e(se),projects:e(s),invitations:e(b)})),Yi=i(h,({one:e,many:t})=>({organization:e(u,{fields:[h.orgId],references:[u.id]}),userTeams:t(ie),invitations:t(b)})),$i=i(b,({one:e})=>({organization:e(u,{fields:[b.orgId],references:[u.id]}),team:e(h,{fields:[b.teamId],references:[h.id]}),inviter:e(o,{fields:[b.invitedBy],references:[o.id]})})),Qi=i(se,({one:e})=>({organization:e(u,{fields:[se.orgId],references:[u.id]})})),Wi=i(ie,({one:e})=>({team:e(h,{fields:[ie.teamId],references:[h.id]})})),Xi=i(r,({one:e,many:t})=>({versions:t(ae),projectInstructions:t(B),events:t(me),usageEvents:t(xe),sessionInstructions:t(H),packInstructions:t(F),forkedFrom:e(r,{fields:[r.forkedFromId],references:[r.id]})})),Zi=i(me,({one:e})=>({instruction:e(r,{fields:[me.instructionId],references:[r.id]})})),ea=i(T,({one:e,many:t})=>({project:e(s,{fields:[T.projectId],references:[s.id]}),parent:e(T,{fields:[T.parentId],references:[T.id]}),versions:t(T)})),ta=i(ae,({one:e})=>({instruction:e(r,{fields:[ae.instructionId],references:[r.id]})})),oa=i(s,({one:e,many:t})=>({organization:e(u,{fields:[s.orgId],references:[u.id]}),projectInstructions:t(B),sessions:t(d)})),na=i(B,({one:e})=>({project:e(s,{fields:[B.projectId],references:[s.id]}),instruction:e(r,{fields:[B.instructionId],references:[r.id]})})),ra=i(d,({one:e,many:t})=>({profile:e(o,{fields:[d.userId],references:[o.id]}),project:e(s,{fields:[d.projectId],references:[s.id]}),run:e(g,{fields:[d.runId],references:[g.id]}),events:t(ue),sessionInstructions:t(H),treatmentExposures:t(K),contextSnapshots:t(J)})),sa=i(g,({one:e,many:t})=>({profile:e(o,{fields:[g.userId],references:[o.id]}),organization:e(u,{fields:[g.orgId],references:[u.id]}),project:e(s,{fields:[g.projectId],references:[s.id]}),sessions:t(d),launchJobs:t(Ae)})),ia=i(Ae,({one:e})=>({run:e(g,{fields:[Ae.runId],references:[g.id]})})),aa=i(ue,({one:e})=>({session:e(d,{fields:[ue.sessionId],references:[d.id]})})),da=i(H,({one:e})=>({session:e(d,{fields:[H.sessionId],references:[d.id]}),instruction:e(r,{fields:[H.instructionId],references:[r.id]})})),ua=i(S,({one:e,many:t})=>({owner:e(o,{fields:[S.userId],references:[o.id]}),project:e(s,{fields:[S.projectId],references:[s.id]}),exposures:t(K)})),la=i(K,({one:e})=>({session:e(d,{fields:[K.sessionId],references:[d.id]}),owner:e(o,{fields:[K.userId],references:[o.id]}),assignment:e(S,{fields:[K.assignmentId],references:[S.id]})})),ca=i(z,({one:e,many:t})=>({packInstructions:t(F),forkedFrom:e(z,{fields:[z.forkedFromId],references:[z.id]})})),ma=i(F,({one:e})=>({pack:e(z,{fields:[F.packId],references:[z.id]}),instruction:e(r,{fields:[F.instructionId],references:[r.id]})})),_a=i(xe,({one:e})=>({instruction:e(r,{fields:[xe.instructionId],references:[r.id]})})),pa=i(n,({one:e,many:t})=>({parent:e(n,{fields:[n.parentId],references:[n.id]}),evals:t(C),evalRuns:t(k),benchmarks:t(Ne),triggerEvals:t(ve),optimizationRuns:t(he),evalJobs:t(Ie),evalConversations:t(Te)})),fa=i(C,({one:e,many:t})=>({evalTarget:e(n,{fields:[C.evalTargetId],references:[n.id]}),runs:t(k)})),xa=i(k,({one:e})=>({eval:e(C,{fields:[k.evalId],references:[C.id]}),evalTarget:e(n,{fields:[k.evalTargetId],references:[n.id]})})),Na=i(Ne,({one:e})=>({evalTarget:e(n,{fields:[Ne.evalTargetId],references:[n.id]})})),ga=i(ve,({one:e})=>({evalTarget:e(n,{fields:[ve.evalTargetId],references:[n.id]})})),va=i(he,({one:e})=>({evalTarget:e(n,{fields:[he.evalTargetId],references:[n.id]})})),ha=i(Ie,({one:e})=>({evalTarget:e(n,{fields:[Ie.evalTargetId],references:[n.id]})})),Ia=i(Te,({one:e})=>({evalTarget:e(n,{fields:[Te.evalTargetId],references:[n.id]})})),ya=i(J,({one:e})=>({session:e(d,{fields:[J.sessionId],references:[d.id]}),profile:e(o,{fields:[J.userId],references:[o.id]})}));var Qe=0,dr=0,We=0,ur=0;var Ta=0;function wo(){Qe++,Qe>dr&&(dr=Qe)}p(wo,"trackDbOpStart");function Ao(){Qe>0&&Qe--}p(Ao,"trackDbOpEnd");function zo(){We++,We>ur&&(ur=We)}p(zo,"trackHeavyDbOpStart");function Do(){We>0&&We--}p(Do,"trackHeavyDbOpEnd");function lr(){Ta++}p(lr,"recordQueryDeadline");var Et,St,jo=!1,kt;var cr,Kt,bt;function pr(e){let t=process.env[e];if(!t)throw new Error(`Missing required env var: ${e}`);return t}p(pr,"getEnv");function fr(){if(jo)throw new Error("getDb() called after closeDb(): the connection pool is closed for shutdown. Stop issuing queries (timers/requests) before draining the pool.");if(!Et){let e=process.env.PG_APPLICATION_NAME||"rulemetric",t=Number(process.env.PG_POOL_MAX)||3,a=Number(process.env.PG_CONNECT_TIMEOUT_S)||10,l=Number(process.env.PG_STATEMENT_TIMEOUT_MS)||0,_=Number(process.env.PG_IDLE_TIMEOUT)||5,f=Number(process.env.PG_KEEP_ALIVE_S)||60;St=_r(pr("DATABASE_URL"),{prepare:!1,max:t,connect_timeout:a,idle_timeout:_,keep_alive:f,max_lifetime:300,connection:{application_name:e,...l>0?{statement_timeout:l}:{}}}),Et=mr(St,{schema:Rt})}return Et}p(fr,"getDb");function xr(){if(jo)throw new Error("getHeavyDb() called after closeDb(): the connection pool is closed for shutdown. Stop issuing queries (timers/requests) before draining the pool.");if(!bt){let e=(process.env.PG_APPLICATION_NAME||"rulemetric")+":heavy",t=Number(process.env.PG_HEAVY_POOL_MAX)||2;Kt=_r(pr("DATABASE_URL"),{prepare:!1,max:t,connect_timeout:Number(process.env.PG_CONNECT_TIMEOUT_S)||10,idle_timeout:Number(process.env.PG_IDLE_TIMEOUT)||5,keep_alive:Number(process.env.PG_KEEP_ALIVE_S)||60,max_lifetime:300,connection:{application_name:e}}),bt=mr(Kt,{schema:Rt})}return bt}p(xr,"getHeavyDb");async function wa(){if(kt)return kt;jo=!0;let e=St,t=cr,a=Kt;return St=void 0,Et=void 0,cr=void 0,Kt=void 0,bt=void 0,kt=Promise.allSettled([e?e.end({timeout:5}):Promise.resolve(),t?t.end({timeout:5}):Promise.resolve(),a?a.end({timeout:5}):Promise.resolve()]).then(()=>{}),kt}p(wa,"closeDb");var Aa=new Set(["CONNECT_TIMEOUT","ETIMEDOUT","ENOTFOUND","ECONNREFUSED","EAI_AGAIN"]);function Nr(e){let t=e,a=t?.code??t?.cause?.code??t?.errno;return a!==void 0&&Aa.has(a)}p(Nr,"isRetryableConnectError");var za=new Set(["CONNECTION_CLOSED","ECONNRESET","EPIPE"]);function gr(e){let t=e,a=t?.code??t?.cause?.code??t?.errno;return a!==void 0&&za.has(a)}p(gr,"isRetryableResetError");async function vr(e,t={}){let a=t.attempts??3,l=t.baseMs??100,_;for(let f=0;f<a;f++)try{return await e()}catch(y){_=y;let ze=Nr(y)||t.retryResets===!0&&gr(y);if(f===a-1||!ze)throw y;await new Promise(Y=>setTimeout(Y,l*2**f))}throw _}p(vr,"withDbRetry");var Pt=class extends Error{static{p(this,"QueryDeadlineError")}code="QUERY_DEADLINE";constructor(t){super(`Query exceeded the client-side deadline of ${t}ms \u2014 the DB pool is likely saturated (acquire-wait) or holding a dead socket; failing fast to avoid pinning the caller. See client.ts.`),this.name="QueryDeadlineError"}};function hr(){let e=Number(process.env.PG_QUERY_DEADLINE_MS);return Number.isFinite(e)&&e>=0?e:2e4}p(hr,"queryDeadlineMs");function Da(e,t){let a,l=new Promise((_,f)=>{a=setTimeout(()=>{lr(),f(new Pt(t))},t);let y=a;typeof y.unref=="function"&&y.unref()});return Promise.race([e,l]).finally(()=>clearTimeout(a))}p(Da,"raceWithDeadline");var Ir=new Set(["select","selectDistinct","selectDistinctOn","insert","update","delete","execute","with","$count","refreshMaterializedView"]),yr=new Set(["select","selectDistinct","selectDistinctOn","$count"]);function Ro(e,t=!1,a=0,l=!1){return e===null||typeof e!="object"&&typeof e!="function"?e:new Proxy(e,{get(_,f,y){if(f==="then"){let Y=Reflect.get(_,f,y);return typeof Y!="function"?Y:(Ar,zr)=>{let Dr=l?zo:wo,jr=l?Do:Ao;Dr();let ko=vr(()=>new Promise((Rr,kr)=>Y.call(_,Rr,kr)),{retryResets:t});return(a>0?Da(ko,a):ko).finally(jr).then(Ar,zr)}}let ze=Reflect.get(_,f,y);return typeof ze=="function"?(...Y)=>Ro(ze.apply(_,Y),t,a,l):ze}})}p(Ro,"wrapBuilder");function Tr(e,t=!1){let a=t?zo:wo,l=t?Do:Ao;a();try{return Promise.resolve(e()).finally(l)}catch(_){throw l(),_}}p(Tr,"gaugeTransaction");var wr=new Proxy({},{get(e,t){let a=fr(),l=a[t];if(typeof t=="string"&&Ir.has(t)&&typeof l=="function"){let _=yr.has(t),f=hr();return(...y)=>Ro(l.apply(a,y),_,f)}return t==="transaction"&&typeof l=="function"?(..._)=>Tr(()=>l.apply(a,_)):l}}),ja=new Proxy({},{get(e,t){let a=xr(),l=a[t];if(typeof t=="string"&&Ir.has(t)&&typeof l=="function"){let _=yr.has(t);return(...f)=>Ro(l.apply(a,f),_,0,!0)}return t==="transaction"&&typeof l=="function"?(..._)=>Tr(()=>l.apply(a,_),!0):l}});export{o as a,g as b,d as c,T as d,Uo as e,Vo as f,Fo as g,Go as h,fr as i,wa as j};
@@ -1,11 +0,0 @@
1
- import{a as I,g as x,h as C,j as _,m as b}from"./chunk-VLXCQ2DC.js";import{c as d}from"./chunk-MVM6OGAF.js";import{d as g}from"./chunk-NTKO4H2K.js";import{e as v}from"./chunk-H2ORWIEY.js";import{g as m,l as E}from"./chunk-O6C2UGBY.js";import{a as i}from"./chunk-ZLLER3HP.js";import{execSync as j}from"node:child_process";import{existsSync as p,readFileSync as y}from"node:fs";import{homedir as f}from"node:os";import{join as a}from"node:path";var P=["install","auth","hooks","worker"],$=["judge"],M=[...P,...$];function O(){return{projectPath:process.cwd(),configDir:E()}}i(O,"defaultContext");var A=a(f(),".mitmproxy","mitmproxy-ca-cert.pem");function S(e){if(!e)return"";if(e.length<=8)return"*".repeat(e.length);let t=e.slice(0,4),n=e.slice(-4);return`${t}${"*".repeat(Math.max(4,e.length-8))}${n}`}i(S,"maskToken");function te(e,t){let n=e===null?[]:e.replace(/\n$/,"").split(`
2
- `),o=t===null?[]:t.replace(/\n$/,"").split(`
3
- `),s=[],u=Math.max(n.length,o.length);for(let c=0;c<u;c++){let l=n[c],r=o[c];l===r?s.push(` ${l}`):(l!==void 0&&s.push(`-${l}`),r!==void 0&&s.push(`+${r}`))}return s.join(`
4
- `)}i(te,"renderDiff");function R(e,t){let n=a(e,"env");if(!p(n))return null;try{let s=y(n,"utf-8").match(new RegExp(`^${t}=(.+)$`,"m"));return s?s[1]:null}catch{return null}}i(R,"readEnvValue");async function T(){if(!m())return!1;try{return(await Promise.race([v("/api/setup/status"),new Promise((t,n)=>setTimeout(()=>n(new Error("setup/status timeout")),2500))]))?.workerActive===!0}catch{return!1}}i(T,"workerActive");function k(e,t){let n=a(e,".claude",t),o={},s=null;if(p(n))try{s=y(n,"utf-8").replace(/\n$/,""),o=JSON.parse(s)}catch{o={}}return{settings:o,before:s}}i(k,"readProjectSettings");function D(e){let{settings:t,before:n}=k(e,"settings.local.json");return x(t),{before:n,after:JSON.stringify(t,null,2)}}i(D,"projectHooksSettings");function N(e){let{settings:t,before:n}=k(e,"settings.local.json"),o={...t.env??{}};return o.HTTPS_PROXY=`http://localhost:${d}`,o.NO_PROXY=_,o.NODE_EXTRA_CA_CERTS=A,{before:n,after:JSON.stringify({...t,env:o},null,2)}}i(N,"projectProxyEnvSettings");function U(e){let{settings:t,before:n}=k(e,"settings.json");if(n===null)return null;let{removed:o}=b(t,d);return o?{before:n,after:JSON.stringify(t,null,2)}:null}i(U,"projectSharedSettingsMigration");var G=a(f(),"Library","LaunchAgents","com.rulemetric.worker.plist"),H=a(f(),".config","systemd","user","rulemetric-worker.service");function h(e){j(e,{stdio:"inherit"})}i(h,"runCommand");var w=[{id:"install",title:"Install the CLI",command:"npm install -g @rulemetric/cli",async detect(){return m()||await T()},async plan(){return{id:"install",title:"Install the CLI",command:"npm install -g @rulemetric/cli",artifacts:[{path:"npm install -g @rulemetric/cli",kind:"command",before:null,after:"rulemetric --version # verifies the binary is on PATH"}]}},async apply(){h("npm install -g @rulemetric/cli")}},{id:"auth",title:"Authenticate",command:"rulemetric auth login",async detect(){return m()},async plan(e){let t=a(e.configDir,"env"),n=null;if(p(t))try{n=B(y(t,"utf-8"))}catch{n="(unreadable)"}let o=R(e.configDir,"RULEMETRIC_ACCESS_TOKEN"),u=[`RULEMETRIC_ACCESS_TOKEN=${S(o||"<token-from-login>")}`],c=R(e.configDir,"RULEMETRIC_API_KEY");c&&u.push(`RULEMETRIC_API_KEY=${S(c)}`);let l=process.env.RULEMETRIC_API_URL;l&&u.push(`RULEMETRIC_API_URL=${l}`);let r=u.join(`
5
- `);return{id:"auth",title:"Authenticate",command:"rulemetric auth login",artifacts:[{path:t,kind:"file",before:n,after:r,masked:!0},{path:a(e.configDir,"auth.json"),kind:"file",before:p(a(e.configDir,"auth.json"))?"(existing session tokens)":null,after:"{ accessToken, refreshToken, expiresAt, email } \u2014 OAuth session tokens (secret)",masked:!0}]}},async apply(){h("rulemetric auth login")}},{id:"hooks",title:"Install hooks + capture proxy",command:"rulemetric hooks install",async detect(e){for(let t of["settings.local.json","settings.json"]){let n=a(e.projectPath,".claude",t);if(p(n))try{let o=JSON.parse(y(n,"utf-8"));if(C(o))return!0}catch{}}return!1},async plan(e){let t=a(e.projectPath,".claude","settings.local.json"),{before:n,after:o}=D(e.projectPath),s=[{path:t,kind:"file",before:n,after:o},{path:"what these hooks capture",kind:"service",before:null,after:"session-end reimports the FULL transcript to the API; post-tool-use records each tool call and snapshots the working tree to a LOCAL shadow git ref (paper-trail, never pushed); user-prompt posts prompt text. All scoped to sessions in this project."},{path:`${t} (proxy env block)`,kind:"file",...N(e.projectPath)},{path:"system keychain \u2014 mitmproxy root CA",kind:"service",before:p(A)?"(CA generated; trust state unchanged)":"(no CA yet)",after:"Installs + trusts the mitmproxy CA (requires sudo). This lets the proxy DECRYPT Claude Code HTTPS request/response bodies \u2014 the capability that powers rendered-system-prompt / instruction linking. Decline the sudo prompt and setup stays hooks-only (still fully onboarded)."},{path:"launchctl setenv HTTPS_PROXY (machine-wide, all GUI apps)",kind:"command",before:null,after:`http://localhost:${d} \u2014 routes every GUI app's HTTPS through the local gateway (only when the CA is trusted AND :${d} is live)`},{path:"VS Code + Cursor user settings (http.proxy)",kind:"file",before:null,after:`http.proxy \u2192 http://localhost:${d} (+ http.proxyStrictSSL=false)`},{path:`gateway process on :${d}`,kind:"service",before:null,after:"started (routes Claude Code \u2192 mitmproxy \u2192 Anthropic; falls back to direct if mitmproxy is down)"}],u=U(e.projectPath);u&&s.push({path:`${a(e.projectPath,".claude","settings.json")} (removes RuleMetric machine-local state left by an older install \u2014 see the local-file artifacts above for where it moves)`,kind:"file",...u});for(let c of I(e.projectPath).filter(l=>l==="cursor"||l==="copilot_agent"))s.push({path:`${e.projectPath} (${c} workspace proxy config)`,kind:"file",before:null,after:`proxy \u2192 http://localhost:${d}`});for(let[c,l,r]of[["Cursor",a(f(),".cursor"),a(f(),".cursor","hooks.json")],["Antigravity/Gemini",a(f(),".gemini"),a(f(),".gemini","config","hooks.json")]])p(l)&&s.push({path:`${r} (${c} user hooks)`,kind:"file",before:p(r)?"(existing config)":null,after:"adds RuleMetric session-capture hooks for this tool"});return{id:"hooks",title:"Install hooks + capture proxy",command:"rulemetric hooks install",artifacts:s}},async apply(){h("rulemetric hooks install")}},{id:"worker",title:"Run the worker",command:"rulemetric service install --worker-only",async detect(){return T()},async plan(){let e=process.platform==="darwin",t=e?G:H,n=p(t)?`(service already installed at ${t})`:null,o=e?["Label: com.rulemetric.worker","ProgramArguments: <node> <cli>/bin/run.js evals agent","RunAtLoad: true, KeepAlive: true"].join(`
6
- `):["[Service]","ExecStart=<node> <cli>/bin/run.js evals agent","Restart=on-failure"].join(`
7
- `);return{id:"worker",title:"Run the worker",command:"rulemetric service install --worker-only",artifacts:[{path:t,kind:"service",before:n,after:o}]}},async apply(){h("rulemetric service install --worker-only")}},{id:"judge",title:"Second LLM engine for cross-vendor eval grading (optional)",command:"npm install -g @openai/codex",optional:!0,async detect(){let e=g();return e.claudeBin!=null&&e.codexBin!=null},async plan(){let e=g();return{id:"judge",title:"Second LLM engine for cross-vendor eval grading (optional)",command:"npm install -g @openai/codex",artifacts:[{path:"installed LLM engines",kind:"command",before:[`claude CLI: ${e.claudeBin??"not found"}`,`codex CLI: ${e.codexBin??"not found"}`].join(`
8
- `),after:["claude CLI + codex CLI both installed.","Hand labels + one judge already give calibrated verdicts; a second","engine additionally unlocks cross-vendor judge validation","(`rulemetric evals validate-judge`)."].join(`
9
- `)}]}},async apply(){let e=g();if(e.claudeBin!=null&&e.codexBin!=null){console.log("[OK] Both engines already installed \u2014 nothing to do.");return}let t=e.codexBin==null?"codex":"claude";console.log(`[..] Second GRADING engine not detected (missing: ${t} CLI).`),t==="codex"?(console.log(" This is about GRADING EVALS with a second vendor, not about capturing"),console.log(" your Codex sessions. Codex capture needs no setup: the worker imports"),console.log(" ~/.codex/sessions automatically. Nothing is missing for that."),console.log(" Optional install: npm install -g @openai/codex")):console.log(" Install it yourself when ready: npm install -g @anthropic-ai/claude-code"),console.log(" Then re-run: rulemetric setup judge --show")}}],K=new Map(w.map(e=>[e.id,e]));function ne(e){let t=K.get(e);if(!t)throw new Error(`Unknown setup step: ${e}`);return t}i(ne,"getStep");function oe(e){return M.includes(e)}i(oe,"isStepId");var Y=new Set(["RULEMETRIC_API_URL","RULEMETRIC_USER_ID","RULEMETRIC_CLIENT_NAME","RESEND_FROM_EMAIL","SENTRY_DSN","PG_POOL_MAX","PG_IDLE_TIMEOUT","PG_STATEMENT_TIMEOUT_MS","NODE_ENV"]);function B(e){return e.replace(/\n$/,"").split(`
10
- `).map(t=>{let n=t.match(/^([A-Z0-9_]+)=(.+)$/);if(!n)return t;let[,o,s]=n;return Y.has(o)?t:`${o}=${S(s)}`}).join(`
11
- `)}i(B,"maskEnvFile");async function re(e=O()){let t=[];for(let r of w){let L=await r.detect(e);t.push({id:r.id,done:L})}let n=new Set(P),o=t.find(r=>r.id==="install");o&&!o.done&&(o.done=t.some(r=>r.id!=="install"&&n.has(r.id)&&r.done));let s=new Set(P),u=t.filter(r=>s.has(r.id)),c=u.find(r=>!r.done)?.id??null,l=u.every(r=>r.done);return{steps:t,coreComplete:l,currentStepId:c}}i(re,"computeStatus");export{P as a,$ as b,M as c,O as d,S as e,te as f,w as g,ne as h,oe as i,re as j};
@@ -1,14 +0,0 @@
1
- import{c as v}from"./chunk-VUGRXM7R.js";import{a as y,b as R}from"./chunk-KKDHD4XA.js";import{a as i}from"./chunk-ZLLER3HP.js";import{spawn as M}from"node:child_process";import*as T from"node:fs";import*as h from"node:http";import*as m from"node:net";import*as E from"node:os";import*as w from"node:path";var O=8787,S=8788,b=3e3,N=500,I=6e4,B=w.join(E.homedir(),".config","rulemetric","proxy-addon.version"),P=w.join(E.homedir(),".config","rulemetric","proxy.pid"),u=!1;var $=null,H=0,A="unknown",f=null;function c(e){let t=new Date().toISOString();console.log(`[${t}] ${e}`)}i(c,"log");function D(){try{return T.readFileSync(B,"utf-8").trim()||null}catch{return null}}i(D,"readAddonVersion");function _(e,t){if(e==="unknown"||!t)return;let n=D();if(!n||n==="unknown"||n===$)return;if($=n,n===e){c(`addon version matches gateway (${e})`);return}let o=Date.now()-H;if(o<I){c(`addon version drift (gateway=${e}, addon=${n}); restart cooldown active (${Math.round((I-o)/1e3)}s left)`);return}c(`addon version drift detected (gateway=${e}, addon=${n}). Restarting proxy to pick up latest code.`),H=Date.now(),C(t)}i(_,"maybeRestartOnDrift");function C(e){if(!e)return c("cannot restart proxy: no CLI entry recorded (RULEMETRIC_CLI_ENTRY unset)"),!1;try{return M(process.execPath,[e,"proxy","restart"],{detached:!0,stdio:"ignore"}).unref(),!0}catch(t){return c(`restart spawn failed: ${t.message}`),!1}}i(C,"spawnProxyRestart");function Y(){try{let e=T.readFileSync(P,"utf-8").trim();return/^\d+$/.test(e)}catch{return!1}}i(Y,"proxyCrashEvidence");function L(e){let t=m.connect({port:e,timeout:N});t.on("connect",()=>{t.destroy(),u||(u=!0,c(`mitmproxy up on :${e}, routing through proxy`)),f?.onHealthCheck(!0)}),t.on("error",()=>{u&&(u=!1,c(`mitmproxy down on :${e}, routing direct`)),f?.onHealthCheck(!1)}),t.on("timeout",()=>{t.destroy(),u&&(u=!1,c(`mitmproxy timeout on :${e}, routing direct`)),f?.onHealthCheck(!1)})}i(L,"checkProxyHealth");function U(e,t,n,o){let[a,s]=(e.url??"").split(":"),d=parseInt(s,10)||443;if(u){let r=m.connect({port:o,host:"127.0.0.1"});r.on("connect",()=>{r.write(`CONNECT ${e.url} HTTP/1.1\r
2
- Host: ${e.url}\r
3
- \r
4
- `)});let l=Buffer.alloc(0),p=i(g=>{l=Buffer.concat([l,g]),l.toString().includes(`\r
5
- \r
6
- `)&&(r.removeListener("data",p),t.write(`HTTP/1.1 200 Connection Established\r
7
- \r
8
- `),n.length>0&&r.write(n),t.pipe(r),r.pipe(t))},"onData");r.on("data",p),r.on("error",g=>{c(`proxy socket error for ${e.url}: ${g.message}, falling back to direct`),x(e,t,n,a,d)}),t.on("error",()=>{r.destroy()})}else x(e,t,n,a,d)}i(U,"handleConnect");function x(e,t,n,o,a){let s=m.connect({port:a,host:o});s.on("connect",()=>{t.write(`HTTP/1.1 200 Connection Established\r
9
- \r
10
- `),n.length>0&&s.write(n),t.pipe(s),s.pipe(t)}),s.on("error",d=>{c(`upstream error for ${e.url}: ${d.message}`),t.end(`HTTP/1.1 502 Bad Gateway\r
11
- \r
12
- `)}),t.on("error",()=>{s.destroy()})}i(x,"connectDirect");function V(e,t,n){if(e.url===y){t.writeHead(200,{"content-type":"application/json"}),t.end(JSON.stringify({service:R,version:A,pid:process.pid,mitmproxyAlive:u}));return}let o=e.url??"",a;try{a=new URL(o)}catch{t.writeHead(400),t.end("Bad Request");return}let s={hostname:u?"127.0.0.1":a.hostname,port:u?n:parseInt(a.port,10)||80,path:u?o:a.pathname+a.search,method:e.method,headers:e.headers},d=h.request(s,r=>{t.writeHead(r.statusCode??502,r.headers),r.pipe(t)});d.on("error",r=>{c(`HTTP proxy error for ${o}: ${r.message}`),t.writeHead(502),t.end("Bad Gateway")}),e.pipe(d)}i(V,"handleRequest");function j(e=O,t=S,n={}){let o=n.cliVersion??process.env.RULEMETRIC_CLI_VERSION??"unknown",a=n.cliEntry??process.env.RULEMETRIC_CLI_ENTRY??null;A=o,f=new v({hasCrashEvidence:Y,respawn:i(()=>C(a),"respawn"),log:c});let s=h.createServer((r,l)=>{V(r,l,t)});s.on("connect",(r,l,p)=>{U(r,l,p,t)}),s.on("clientError",(r,l)=>{l.writable&&l.end(`HTTP/1.1 400 Bad Request\r
13
- \r
14
- `)});let d=setInterval(()=>{L(t),_(o,a)},b);return L(t),_(o,a),s.listen(e,"127.0.0.1",()=>{c(`gateway listening on 127.0.0.1:${e} (mitmproxy target: :${t}, cli version: ${o})`)}),{server:s,healthInterval:d}}i(j,"startGateway");export{O as a,S as b,j as c};
@@ -1 +0,0 @@
1
- import{f as _}from"./chunk-RMDLJN4L.js";import{e as I}from"./chunk-2ZAKZEXW.js";import{b as D,c as P,d as C}from"./chunk-WKXTY5AM.js";import{e as d,f as x}from"./chunk-H2ORWIEY.js";import{a as u}from"./chunk-ZLLER3HP.js";import{createHash as N}from"node:crypto";var j=u(t=>N("sha256").update(t).digest("hex"),"sha256"),L=1.3,v=4;function q(t,r=10){if(t<=0)return{passes:0,expectedPairs:0,feasible:!1,reason:"no live cases"};let n=Math.ceil(r*L),s=Math.min(v,Math.ceil(n/t)),a=s*t;return a<r?{passes:s,expectedPairs:a,feasible:!1,reason:`${t} live case(s) x ${v} passes = ${t*v} pairs at best, below the ${r} a controlled verdict requires \u2014 add cases rather than replaying these`}:{passes:s,expectedPairs:a,feasible:!0}}u(q,"planPasses");async function B(t,r){let n=u(e=>r?.logger?.info?.(e)??console.log(e),"log"),{evalTargetId:s}=t,a=`[cron_instruction_evolution] ${s}`,o=await d(`/api/eval-targets/${s}`),h=o.metadata??{},b=H(h);if(b==null)return n(`${a}: refusing \u2014 metadata.immutableSections is unset. Set it (use [] to explicitly protect nothing) before letting the loop edit this target unattended.`),{skipped:"immutable-sections-unset"};let g=(await d(`/api/eval-targets/${s}/evals`)).filter(e=>!e.retiredAt);if(g.length===0)return{skipped:"no-live-cases"};let l=q(g.length);if(!l.feasible)return n(`${a}: cannot reach a sufficient verdict \u2014 ${l.reason}`),{skipped:"cannot-reach-min-n",reason:l.reason};let $=await d(`/api/eval-targets/${s}/judge-calibration`);if(!$.powerCheck.adequate){let e=($.powerCheck.reasons??[]).join("; ");return n(`${a}: not adequately powered, skipping before spending budget \u2014 ${e}`),{skipped:"not-adequate",reason:e}}let y=C,M=Date.now()-y*24*60*60*1e3,R=(await d(`/api/eval-targets/${s}/promotions?limit=200`)).promotions.filter(e=>e.applied&&Date.parse(e.createdAt)>=M).length;if(R>=P)return n(`${a}: change budget looks exhausted (${R}/${P} applied in ${y}d), skipping before spending budget`),{skipped:"budget-exhausted"};let m=D();if(!m.green)return n(`${a}: A/A canary is RED \u2014 halting. ${m.failures.join(" | ")}`),{skipped:"canary-red",reason:m.failures.join(" | ")};let A=$.caseDiscrimination?.cases??[],p=await _({currentContent:o.content,targetType:o.type,targetName:o.name,immutableSections:b,evidence:{nonDiscriminating:A.filter(e=>!e.discriminating).map(e=>`${e.name??e.assertion??"unnamed"} \u2014 ${e.note}`),weakest:A.filter(e=>e.discriminating&&e.withPassRate<e.withoutPassRate).map(e=>({name:e.name??e.assertion??"unnamed",withPassRate:e.withPassRate,withoutPassRate:e.withoutPassRate})),notes:[]}});if(!p.ok)return n(`${a}: no usable proposal \u2014 ${p.reason}`),{skipped:"no-proposal",reason:p.reason};let E=o.content,S=j(E);n(`${a}: measuring ${g.length} case(s) x ${l.passes} pass(es) = up to ${l.expectedPairs} pairs, candidate vs prior version`);let c=[],k=0,w=0;for(let e=1;e<=l.passes;e++){let f=await I({cases:g,candidateContent:p.proposal.candidateContent,priorVersionContent:E,concurrency:t.concurrency??2,runNumber:e,opts:{targetId:s,targetVersion:o.version??1,iteration:1,timeout:t.timeout??24e4,model:t.model,graderModel:t.graderModel,skipGrading:!1,targetType:o.type,targetName:o.name},onLog:n});c.push(...f.pairs),k+=f.completed,w+=f.failed,n(`${a}: pass ${e}/${l.passes} \u2014 ${f.pairs.length} pair(s), running total ${c.length}`)}if(n(`${a}: ${k} completed, ${w} failed, ${c.length} usable pair(s)`),c.length===0)return{skipped:"no-pairs",reason:`${w} run(s) failed or were ungradeable`};let T=t.apply??(h.autoEvolveApply===!0||h.autoEvolveApply==="true"),i=await x(`/api/eval-targets/${s}/promotions`,{candidateContent:p.proposal.candidateContent,proposalSource:"llm",proposalRationale:p.proposal.rationale,pairs:c,canaryGreen:m.green,measuredAgainstContentHash:S,immutableSections:b,apply:T});return n(`${a}: ${i.decision}${i.applied?" (APPLIED)":""} \u2014 ${i.rationale}`+(i.refusals.length>0?` | refusals: ${i.refusals.join("; ")}`:"")),{decision:i.decision,applied:i.applied,nPairs:c.length,promotionId:i.id}}u(B,"cronInstructionEvolution");function H(t){let r=t.immutableSections;return r==null||!Array.isArray(r)?null:r.filter(n=>typeof n=="string")}u(H,"readImmutableSections");export{L as a,v as b,q as c,B as d,H as e};
@@ -1,4 +0,0 @@
1
- import{c as d,d as w}from"./chunk-KKDHD4XA.js";import{a as y,d as p}from"./chunk-SZ62CP55.js";import{a as r}from"./chunk-ZLLER3HP.js";import{spawn as G}from"node:child_process";import{createConnection as b}from"node:net";import{existsSync as I,mkdirSync as E,openSync as P,readFileSync as R,unlinkSync as T,writeFileSync as h}from"node:fs";import{homedir as _}from"node:os";import{dirname as x,join as m,resolve as a}from"node:path";import{fileURLToPath as L}from"node:url";var s=x(L(import.meta.url)),l=m(_(),".config","rulemetric"),c=m(l,"gateway.pid"),M=m(l,"gateway.log"),u=8787,U=8788;function A(e=u,t=1500){return new Promise(i=>{let n=b({host:"127.0.0.1",port:e}),o=r(g=>{n.destroy(),i(g)},"finish");n.setTimeout(t),n.once("connect",()=>o(!0)),n.once("timeout",()=>o(!1)),n.once("error",()=>o(!1))})}r(A,"isGatewayListening");async function W(e=u,{timeoutMs:t=3e3,intervalMs:i=150}={}){let n=Date.now()+t;for(;;){if(await A(e,Math.min(1500,t)))return!0;if(Date.now()>=n)return!1;await new Promise(o=>setTimeout(o,i))}}r(W,"waitForGatewayListening");function V(e=u,t=1500){return d(e,t)}r(V,"isRulemetricGatewayListening");function X(e=u,t={}){return w(e,t)}r(X,"waitForRulemetricGateway");function O(e={}){let t=f();return t===null?!1:p(t,y,e)}r(O,"isGatewayRunning");function f(){if(!I(c))return null;let e=R(c,"utf-8").trim(),t=parseInt(e,10);return isNaN(t)?null:t}r(f,"getGatewayPid");function F(){let e=[a(s,"./gateway-entry.js"),a(s,"./lib/gateway-entry.js"),a(s,"../lib/gateway-entry.js"),a(s,"../../lib/gateway-entry.js")];for(let t of e)if(I(t))return t;throw new Error(`Could not find gateway-entry.js. Is the CLI built?
2
- Searched:
3
- `+e.map(t=>` ${t}`).join(`
4
- `))}r(F,"findGatewayEntry");function $(e){if(O()){let o=f();if(o)return o}E(l,{recursive:!0});let t=F(),i=P(M,"a"),n=G(process.execPath,[t],{detached:!0,stdio:["ignore",i,i],env:{...process.env,RULEMETRIC_CLI_VERSION:e??"unknown",RULEMETRIC_CLI_ENTRY:process.argv[1]??""}});if(n.unref(),!n.pid)throw new Error("Failed to spawn gateway process");return h(c,String(n.pid)),n.pid}r($,"spawnGateway");function q(e={}){let t=f();if(t===null)return!1;if(p(t,y,e))try{process.kill(t,"SIGTERM")}catch{}try{T(c)}catch{}return!0}r(q,"stopGateway");export{c as a,M as b,u as c,U as d,A as e,W as f,V as g,X as h,O as i,f as j,$ as k,q as l};
@@ -1 +0,0 @@
1
- import{b as R}from"./chunk-ZL4MZMUK.js";import{a as S}from"./chunk-TDD7IOV2.js";import{a as p}from"./chunk-MODXEGCU.js";import{d as j,f as y}from"./chunk-B3BHB26P.js";import{e as i,f as l}from"./chunk-H2ORWIEY.js";import{a as g}from"./chunk-ZLLER3HP.js";import{readFileSync as b}from"node:fs";import E from"node:path";import $ from"node:os";var N=5,L=Number(process.env.RULEMETRIC_MAX_SUGGESTION_PROJECTS??10),T=48,M=.5,k=400;async function O(){let d=E.join($.homedir(),".config","rulemetric","skills-registry.json");try{let o=b(d,"utf-8"),s=JSON.parse(o);return Date.now()-new Date(s.generatedAt).getTime()>T*60*60*1e3}catch{return!0}}g(O,"checkSkillsRegistryStale");var X=g(async(d,o)=>{let s=j();if(s==="none"){o.logger.warn("No LLM backend available (claude CLI missing and ANTHROPIC_API_KEY unset); skipping suggestion compute");return}o.logger.info(`Scoring backend: ${s}`);let r;try{r=(await i("/api/sessions/project-paths?limit="+L)).projectPaths}catch(e){o.logger.warn(`Failed to fetch project paths: ${e instanceof Error?e.message:String(e)}`);return}if(r.length===0){o.logger.info("No recent project paths; nothing to score");return}let m=new Map;try{let e=await i("/api/projects?limit=200");for(let t of e.projects??[])t.primaryCheckoutPath&&m.set(p(t.primaryCheckoutPath),t.id)}catch(e){o.logger.warn(`Failed to fetch projects for id resolution: ${e instanceof Error?e.message:String(e)}`)}let a=new Map;try{let e=await i("/api/catalog?limit=200");for(let t of e)a.set(t.id,{id:t.id,name:t.name,description:t.description??"",tags:t.tags??[],contentPreview:(t.content??"").slice(0,k)})}catch(e){o.logger.warn(`Failed to fetch catalog: ${e instanceof Error?e.message:String(e)}`)}try{let e=await i("/api/instructions?limit=100");for(let t of e.instructions??[])a.has(t.id)||a.set(t.id,{id:t.id,name:t.name,description:t.description??"",tags:t.tags??[],contentPreview:(t.content??"").slice(0,k)})}catch(e){o.logger.warn(`Failed to fetch personal instructions: ${e instanceof Error?e.message:String(e)}`)}let c=[...a.values()];if(c.length===0){o.logger.info("No candidate instructions; nothing to score");return}o.logger.info(`Scoring ${c.length} candidates across ${r.length} project(s)`);let u=0;for(let e of r)try{let t=p(e),f=S(t);if(f.length===0){o.logger.info(`Skipping ${t}: insufficient language signals`);continue}let C={name:E.basename(t),description:null,languages:f,topics:[],dependencies:[]},I=R(C,c),w=await y(I,"",4096);if(!w){o.logger.warn(`LLM returned null for ${t} (backend ${s})`);continue}let P=(w.recommendations??[]).filter(n=>typeof n.instructionId=="string"&&typeof n.score=="number"&&typeof n.reason=="string").map(n=>({instructionId:n.instructionId,score:n.score,reason:n.reason})).filter(n=>n.score>=M).sort((n,_)=>_.score-n.score).slice(0,N);if(P.length===0){o.logger.info(`No suggestions over threshold for ${t}`);continue}let h=m.get(t);await l("/api/instruction-suggestions/batch-upsert",{projectPath:t,...h?{projectId:h}:{},suggestions:P.map(n=>({instructionId:n.instructionId,score:n.score,reason:n.reason}))}),u++}catch(t){o.logger.warn(`Failed to score ${e}: ${t instanceof Error?t.message:String(t)}`)}if(await O())try{await l("/api/instruction-suggestions/mark-stale",{}),o.logger.warn("Skills registry is stale (>48h); marked all suggestions stale")}catch{}o.logger.info(`Done: scored ${u}/${r.length} projects`)},"cronSuggestInstructions");export{X as a};
@@ -1 +0,0 @@
1
- import{c as C}from"./chunk-TIOKY2IA.js";import{a as h}from"./chunk-QRPNGXLN.js";import{a as E}from"./chunk-TVHT6H42.js";import{a as L}from"./chunk-H7J27U4P.js";import{b as I}from"./chunk-W2MOTOQE.js";import{a as R}from"./chunk-7A4UVQ7U.js";import{a as T}from"./chunk-TG6TKU4Y.js";import{a as A}from"./chunk-RSKQRVPJ.js";import{a as y}from"./chunk-ZYVWALMS.js";import{d as P}from"./chunk-MLXQCK7V.js";import{a as x}from"./chunk-BPQ66YTY.js";import{a as k}from"./chunk-UF6US7VU.js";import{a as _}from"./chunk-PHALR5JB.js";import{b as H}from"./chunk-IXLDCX7M.js";import{a as M}from"./chunk-HV45MQSU.js";import{b}from"./chunk-5RBLIVBF.js";import{a as S}from"./chunk-NKPLTT7J.js";import{a as N}from"./chunk-SWSGNEVO.js";import{d as w}from"./chunk-NTKO4H2K.js";import{b as f,e as v,f as p}from"./chunk-H2ORWIEY.js";import{a as s}from"./chunk-ZLLER3HP.js";var W={process_eval:h,process_insights:E,process_launch:I,process_send_message:A,process_conversation:S,process_session_goal:y,distill_memories:H,memory_ab:R,process_announcement:M,process_run_cleanup:T,cron_suggest_instructions:_,cron_refresh_skills:k,cron_refresh_pricing:x,cron_eval_autorun:N,cron_instruction_evolution:P,process_judge_review:L},D=Object.keys(W),F=new Set(["process_announcement","process_run_cleanup","memory_ab"]);function J(e=process.env){return e.DATABASE_URL?D:D.filter(n=>!F.has(n))}s(J,"availableCapabilities");var U=3e4,K=3e4,G=3e4,V=250,B=5e3,q=`thin-agent-${process.pid}`,g=null;function Q(e,n,r,l){let c;try{let d=w();c={claude:d.claudeBin!=null,codex:d.codexBin!=null,codexModel:d.codexConfiguredModel}}catch{}let i=s(d=>{p("/api/workers/heartbeat",{workerType:"cli-worker",clientName:q,clientVersion:l,workerVersion:"0.1.0",currentJobId:null,inFlightCount:0,lastError:null,status:d,metadata:{capabilities:e,mode:"thin-agent",llmEngines:c}}).then(u=>{let t=u?.advisory;t&&t.message!==g?(g=t.message,a(r,{event:"worker_advisory",code:t.code,message:t.message})):t||(g=null)}).catch(u=>{a(r,{event:"presence_heartbeat_error",error:u instanceof Error?u.message:String(u)})})},"send");i("alive");let o=setInterval(()=>i("alive"),G);n.addEventListener("abort",()=>{clearInterval(o),i("shutting_down")},{once:!0})}s(Q,"startPresenceHeartbeat");function a(e,n){try{e(JSON.stringify({ts:new Date().toISOString(),...n}))}catch{e(`[agent-loop] log_error event=${n.event}`)}}s(a,"structuredLog");function O(e,n){return n.aborted?Promise.resolve(!1):e<=0?Promise.resolve(!0):new Promise(r=>{let l=setTimeout(()=>{n.removeEventListener("abort",c),r(!0)},e),c=s(()=>{clearTimeout(l),n.removeEventListener("abort",c),r(!1)},"onAbort");n.addEventListener("abort",c,{once:!0})})}s(O,"abortableSleep");async function X(e,n){let r=`capabilities=${encodeURIComponent(e.join(","))}&waitMs=${n}`,l=await v(`/api/work/next?${r}`);return l==null||typeof l=="string"?null:l}s(X,"pollForWork");function z(e,n){return{logger:{info:s(r=>n(r),"info"),warn:s(r=>n(r),"warn"),error:s(r=>n(r),"error")},job:{attempts:e}}}s(z,"makeHelpers");async function Y(e,n,r){let l=W[e.kind],c=Date.now();if(a(r,{event:"claim",jobId:e.id,kind:e.kind,attempts:e.attempts}),!l){let o=`unknown kind: ${e.kind}`;a(r,{event:"fail",jobId:e.id,kind:e.kind,terminal:!0,error:o}),await p(`/api/work/${e.id}/fail`,{leaseToken:e.leaseToken,error:o,terminal:!0}).catch(()=>{});return}let i=setInterval(()=>{a(r,{event:"heartbeat",jobId:e.id}),p(`/api/work/${e.id}/heartbeat`,{leaseToken:e.leaseToken}).catch(o=>{a(r,{event:"heartbeat_error",jobId:e.id,error:o instanceof Error?o.message:String(o)})})},n);try{let o=z(e.attempts,r),d=await l(e.payload,o)??{};clearInterval(i),a(r,{event:"complete",jobId:e.id,kind:e.kind,durationMs:Date.now()-c}),await p(`/api/work/${e.id}/complete`,{leaseToken:e.leaseToken,result:d})}catch(o){clearInterval(i);let d=b(o),u=o instanceof Error?o.message:String(o);a(r,{event:"fail",jobId:e.id,kind:e.kind,durationMs:Date.now()-c,terminal:d,error:u}),await p(`/api/work/${e.id}/fail`,{leaseToken:e.leaseToken,error:u,terminal:d}).catch(t=>{a(r,{event:"fail_post_error",jobId:e.id,error:t instanceof Error?t.message:String(t)})})}}s(Y,"runOne");async function we(e){let n=e.log??(()=>{}),r=e.pollWaitMs??U,l=e.heartbeatIntervalMs??K,c=e.capabilities??J(),i=V;a(n,{event:"agent_start",capabilities:c,pollWaitMs:r,heartbeatIntervalMs:l}),Q(c,e.signal,n,e.version),C({signal:e.signal,log:n}).catch(t=>{a(n,{event:"tt_heartbeat_fatal",error:t instanceof Error?t.message:String(t)})});let o=5*6e4,d=0,u=s(()=>{if(!e.readInstalledVersion||!e.version)return!1;let t=Date.now();if(t-d<o)return!1;d=t;let m=e.readInstalledVersion();return!!(m&&m!==e.version)},"versionDrifted");for(;!e.signal.aborted;){if(u()){a(n,{event:"agent_version_drift",bootVersion:e.version,installedVersion:e.readInstalledVersion?.()??null}),e.onVersionDrift?.();break}let t=null;try{t=await X(c,r)}catch(m){let $=m instanceof f?m.statusCode:void 0;if(a(n,{event:"poll_error",status:$,error:m instanceof Error?m.message:String(m)}),!await O(i,e.signal))break;i=Math.min(i*2,B);continue}if(!t){if(a(n,{event:"poll_204"}),!await O(i,e.signal))break;i=Math.min(i*2,B);continue}i=V,await Y(t,l,n)}a(n,{event:"agent_stop"})}s(we,"runAgentLoop");export{W as a,D as b,J as c,X as d,we as e};
@@ -1 +0,0 @@
1
- import{a as o}from"./chunk-ZLLER3HP.js";import{existsSync as p,statSync as u,readdirSync as h}from"node:fs";import y from"node:path";var g=new Set(["node_modules",".git","dist","build",".next",".turbo",".worktrees","target","venv","__pycache__",".cache"]),f=3;function P(r){if(!p(r))return[];let t=new Set,d=o((n,s)=>{if(s>f)return;let a;try{a=h(n)}catch{return}for(let e of a)e==="package.json"&&t.add("JavaScript/TypeScript"),e==="tsconfig.json"&&t.add("TypeScript-config"),e==="pyproject.toml"&&t.add("Python-pyproject"),e==="setup.py"&&t.add("Python-setup"),e==="requirements.txt"&&t.add("Python-requirements"),e==="Pipfile"&&t.add("Python-pipfile"),e==="Cargo.toml"&&t.add("Rust-cargo"),e==="go.mod"&&t.add("Go-mod"),e==="pom.xml"&&t.add("Java-pom"),(e==="build.gradle"||e==="build.gradle.kts")&&t.add("Java-gradle"),e==="Gemfile"&&t.add("Ruby-gemfile"),e==="composer.json"&&t.add("PHP-composer"),(e.endsWith(".ts")||e.endsWith(".tsx"))&&t.add("TypeScript-source"),e.endsWith(".py")&&t.add("Python-source"),e.endsWith(".rs")&&t.add("Rust-source"),e.endsWith(".go")&&t.add("Go-source");if(!(s>=f))for(let e of a){if(g.has(e))continue;let c=y.join(n,e);try{u(c).isDirectory()&&d(c,s+1)}catch{}}},"walk");d(r,0);let i=new Set;return t.has("TypeScript-source")||t.has("TypeScript-config")?i.add("TypeScript"):t.has("JavaScript/TypeScript")&&i.add("JavaScript"),(t.has("Python-pyproject")||t.has("Python-setup")||t.has("Python-requirements")||t.has("Python-pipfile")||t.has("Python-source"))&&i.add("Python"),(t.has("Rust-cargo")||t.has("Rust-source"))&&i.add("Rust"),(t.has("Go-mod")||t.has("Go-source"))&&i.add("Go"),(t.has("Java-pom")||t.has("Java-gradle"))&&i.add("Java"),t.has("Ruby-gemfile")&&i.add("Ruby"),t.has("PHP-composer")&&i.add("PHP"),t.size<2?[]:[...i]}o(P,"detectLanguages");export{P as a};
@@ -1 +0,0 @@
1
- import{a as i}from"./chunk-ZLLER3HP.js";function F(n,t){let e=n,o=t,r=e+o;if(r===0)return{pValue:1,nDiscordant:0};let c=Math.min(e,o),l=Math.pow(.5,r),u=l;for(let s=1;s<=c;s++)l*=(r-s+1)/s,u+=l;return{pValue:Math.min(1,2*u),nDiscordant:r}}i(F,"mcnemarExact");function O(n,t,e=10){return{sufficient:n>=e&&t>=e,minN:e,nWith:n,nWithout:t,shortfall:{with:Math.max(0,e-n),without:Math.max(0,e-t)}}}i(O,"assessSufficiency");function M(n){let t=n>>>0;return()=>{t=t+1831565813|0;let e=Math.imul(t^t>>>15,1|t);return e=e+Math.imul(e^e>>>7,61|e)^e,((e^e>>>14)>>>0)/4294967296}}i(M,"seededRandom");function T(n,t){let e=n.length;if(e===1)return n[0];let o=(e-1)*t,r=Math.floor(o),c=Math.ceil(o);return r===c?n[r]:n[r]+(o-r)*(n[c]-n[r])}i(T,"sortedQuantile");function k(n,t={}){let e=n.length;if(e===0)return{estimate:0,lower:0,upper:0,iterations:0};let o=t.iterations??1e4,r=t.ciLevel??.95,c=M(t.seed??1),l=n.reduce((a,m)=>a+m,0)/e,u=new Array(o);for(let a=0;a<o;a++){let m=0;for(let h=0;h<e;h++)m+=n[c()*e|0];u[a]=m/e}u.sort((a,m)=>a-m);let s=(1-r)/2;return{estimate:l,lower:T(u,s),upper:T(u,1-s),iterations:o}}i(k,"pairedBootstrapCI");function L(n,t={}){let e=n.filter(d=>d.withScores.length>0&&d.withoutScores.length>0);if(e.length===0)return{estimate:0,lower:0,upper:0,pValue:1,iterations:0};let o=i(d=>d.reduce((p,g)=>p+g,0)/d.length,"mean"),r=e.map(d=>d.withScores.length*d.withoutScores.length/(d.withScores.length+d.withoutScores.length)),c=r.reduce((d,p)=>d+p,0),l=i(d=>d.reduce((p,g,w)=>p+r[w]*g,0)/c,"combine"),u=l(e.map(d=>o(d.withScores)-o(d.withoutScores))),s=t.iterations??1e4,a=t.ciLevel??.95,m=M(t.seed??1),h=new Array(s),S=0,A=0;for(let d=0;d<s;d++){let p=e.map(w=>{let $=0;for(let v=0;v<w.withScores.length;v++)$+=w.withScores[m()*w.withScores.length|0];let y=0;for(let v=0;v<w.withoutScores.length;v++)y+=w.withoutScores[m()*w.withoutScores.length|0];return $/w.withScores.length-y/w.withoutScores.length}),g=l(p);h[d]=g,g<=0&&S++,g>=0&&A++}h.sort((d,p)=>d-p);let b=(1-a)/2;return{estimate:u,lower:T(h,b),upper:T(h,1-b),pValue:Math.min(1,2*Math.min(S,A)/s),iterations:s}}i(L,"stratifiedBootstrapCI");function H(n,t){let e=n.length,o=t.length;if(e===0||o===0)return 0;let r=[...n.map(a=>({t:a,exposed:!0})),...t.map(a=>({t:a,exposed:!1}))].sort((a,m)=>a.t-m.t),c=0,l=0;for(;l<r.length;){let a=l;for(;a+1<r.length&&r[a+1].t===r[l].t;)a++;let m=(l+1+a+1)/2;for(let h=l;h<=a;h++)r[h].exposed&&(c+=m);l=a+1}let s=(c-e*(e+1)/2)/(e*o);return Math.abs(s-.5)}i(H,"cohortTimeSeparation");var C=.35,N=900*1e3;function U(n,t,e=C,o=N){if(n.length===0||t.length===0)return!1;let r=[...n,...t];return Math.max(...r)-Math.min(...r)<o?!1:H(n,t)>e}i(U,"isTimeSeparated");var G=i(n=>n===0||n===1,"isBinary");function J(n,t,e){return n.every(r=>r[t]!=null&&r[e]!=null)?n.reduce((r,c)=>r+(c[t]-c[e]),0)/n.length:null}i(J,"meanPairDelta");function V(n,t={}){let e=t.baseline??"no-rule",o=t.minN??10,r=n.length,c=n.map(d=>d.withScore-d.withoutScore),l=r===0?0:c.reduce((d,p)=>d+p,0)/r,u=k(c,{seed:t.seed,iterations:t.iterations}),s={lower:u.lower,upper:u.upper},a=n.every(d=>G(d.withScore)&&G(d.withoutScore)),m=null;if(a&&r>0){let d=0,p=0;for(let g of n)g.withScore===1&&g.withoutScore===0?d++:g.withScore===0&&g.withoutScore===1&&p++;m=F(d,p).pValue}let{sufficient:h}=O(r,r,o),S=s.lower>0||s.upper<0,b={mode:"controlled",baseline:e,delta:l,ci:s,pValue:m,significant:h&&S,sufficient:h,nWith:r,nWithout:r,costDelta:J(n,"withCost","withoutCost"),latencyDelta:J(n,"withLatency","withoutLatency"),confounded:!1};return h||(b.insufficientReason=`insufficient data: need >= ${o} paired tasks per cohort, have ${r}`),b}i(V,"buildControlledVerdict");var de=2;function W(n,t={}){let e=t.minN??10,o=t.minPerStratum??de,r=t.maxTimeSeparation??C,c=t.minStratumSpanMs??N,l=n.filter(f=>f.withScores.length>=o&&f.withoutScores.length>=o),u=l.filter(f=>f.withTimes!=null&&f.withoutTimes!=null&&U(f.withTimes,f.withoutTimes,r,c)),s=new Set(u.map(f=>f.key)),a=l.filter(f=>!s.has(f.key)),m=n.filter(f=>f.withScores.length>0&&f.withoutScores.length>0&&(f.withScores.length<o||f.withoutScores.length<o)).length,h=a.reduce((f,x)=>f+x.withScores.length,0),S=a.reduce((f,x)=>f+x.withoutScores.length,0),A=L(a,{seed:t.seed,iterations:t.iterations}),b={lower:A.lower,upper:A.upper},d=A.estimate,p=a.length>0&&h>=e&&S>=e,g=a.length>0?A.pValue:null,w=p&&(b.lower>0||b.upper<0),$=n.reduce((f,x)=>f+x.withScores.length+x.withoutScores.length,0),y=$>0?(h+S)/$:0,v={mode:"observational",baseline:t.baseline??"no-rule",delta:d,ci:b,pValue:g,significant:w,sufficient:p,nWith:h,nWithout:S,costDelta:null,latencyDelta:null,confounded:!0,strata:a.length,strataDroppedForTimeSeparation:u.length,coverage:y};if(!p){let f=m>0?` (${m} project(s) had both cohorts but fewer than ${o} sessions in one of them)`:"",x=u.length>0?` ${u.length} project-month(s) held both cohorts but their sessions are separated in time (exposure predicts when a session ran), so the difference within them is a calendar difference, not a treatment effect`:"";v.insufficientReason=a.length===0?u.length>0?`insufficient data: no comparable cohort.${x}${f}`:`insufficient data: no project has >= ${o} exposed AND >= ${o} unexposed sessions to compare within${f}`:`insufficient data: need >= ${e} sessions per cohort across comparable projects, have ${h} exposed / ${S} unexposed${f}${x?`.${x}`:""}`}return v}i(W,"buildStratifiedVerdict");var _=1.959963984540054;function z(n,t,e=_){if(t===0)return{lower:0,upper:1};let o=n/t,r=e*e,c=1+r/t,l=(o+r/(2*t))/c,u=e/c*Math.sqrt(o*(1-o)/t+r/(4*t*t));return{lower:Math.max(0,l-u),upper:Math.min(1,l+u)}}i(z,"wilsonInterval");function Q(n){let t=new Map;for(let e of n){let o=t.get(e.stratum);o||(o={key:e.stratum,withScores:[],withoutScores:[],withTimes:[],withoutTimes:[]},t.set(e.stratum,o)),(e.exposed?o.withScores:o.withoutScores).push(e.score),e.time!=null&&(e.exposed?o.withTimes:o.withoutTimes).push(e.time)}for(let e of t.values())(e.withTimes.length!==e.withScores.length||e.withoutTimes.length!==e.withoutScores.length)&&(delete e.withTimes,delete e.withoutTimes);return[...t.values()]}i(Q,"toStrata");var R=.05;function K(n,t={}){let e=t.trialIndex??0,o=t.seed??1,r=t.exposedFraction??.5,c=t.effect??0,l=M(o+e*2),u=n.map(s=>{let a=l()<r;return{stratum:s.stratum,score:a?s.score+c:s.score,exposed:a,time:s.time}});return W(Q(u),{seed:o+e*2+1,iterations:t.iterations??500,minN:t.minN,minPerStratum:t.minPerStratum})}i(K,"runCalibrationTrial");function q(n,t={}){let e=t.trials??200,o=[];for(let r=0;r<e;r++)o.push(K(n,{...t,trialIndex:r}));return D(o,t.effect??0)}i(q,"calibrate");function D(n,t){let e=0,o=0,r=0,c=0;for(let s of n)s.sufficient&&(e++,s.significant&&o++,r+=s.delta,c=Math.max(c,Math.abs(s.delta)));let l=e>0?o/e:0,u=z(o,e,_);return{trials:n.length,evaluated:e,insufficient:n.length-e,significantTrials:o,significantRate:l,significantRateCi:u,meanDelta:e>0?r/e:0,maxAbsDelta:c,alpha:R,effect:t,calibrated:t===0&&e>0&&u.lower<=R&&R<=u.upper}}i(D,"summarizeTrials");function I(n,t={}){return q(n,{...t,effect:0})}i(I,"aaCalibration");function Y(n,t,e={}){return q(n,{...e,effect:t})}i(Y,"powerCheck");var te=[{ym:"2026-03",n:122,mean:.287},{ym:"2026-04",n:50,mean:.07},{ym:"2026-05",n:267,mean:.089},{ym:"2026-06",n:61,mean:.201},{ym:"2026-07",n:162,mean:.071}],B=662;function Z(n=2){let t=[];for(let e of te){let o=Math.round(e.n*e.mean);for(let r=0;r<e.n;r++)t.push({stratum:`proj-${r%n}|${e.ym}`,score:r<o?1:0})}if(n===2&&t.length!==B)throw new Error(`realisticCanaryCorpus: expected ${B} sessions, built ${t.length}`);return t}i(Z,"realisticCanaryCorpus");function ne(n=600){return Array.from({length:n},(t,e)=>({stratum:"only",score:e%4===0?1:0}))}i(ne,"flatCanaryCorpus");var oe=50,re=4,P={min:.2,max:.7};function he(n,t){let e=M(t),o=P.max-P.min;return Array.from({length:n},()=>P.min+e()*o)}i(he,"caseDifficulties");function ee(n,t,e){let o=0;for(let r=0;r<t;r++)e()<n&&o++;return o/t}i(ee,"passRate");function ie(n={}){let t=n.trialIndex??0,e=n.seed??1,o=n.cases??oe,r=n.assertions??re,c=n.effect??0,l=he(o,e),u=M(e+t*2),s=l.map(a=>({withScore:ee(a+c,r,u),withoutScore:ee(a,r,u)}));return V(s,{baseline:"prior-version",seed:e+t*2+1,iterations:n.iterations??500,minN:n.minN})}i(ie,"runControlledCalibrationTrial");function X(n={}){let t=n.trials??200,e=[];for(let o=0;o<t;o++)e.push(ie({...n,trialIndex:o}));return D(e,n.effect??0)}i(X,"controlledCalibration");function ae(n={}){return X({...n,effect:0})}i(ae,"controlledAaCalibration");function se(n,t={}){return X({...t,effect:n})}i(se,"controlledPowerCheck");var ce={maxSignificantRate:.15,maxMeanAbsDelta:.02,maxWorstCaseDelta:.15,powerProbeEffect:.2,minPower:.9,minPowerMeanDelta:.15};function E(n,t,e){let o=e.filter(r=>!r.ok).map(r=>r.why);return{name:n,passed:o.length===0,detail:o.length===0?`${n}: ok (rate=${t.significantRate.toFixed(3)}, meanDelta=${t.meanDelta.toFixed(4)}, evaluated=${t.evaluated}/${t.trials})`:`${n}: ${o.join("; ")}`,result:t}}i(E,"check");function me(n={}){let t=n.trials??200,e=n.powerTrials??200,o=ce,r=[],c=I(ne(),{trials:t,seed:11});r.push(E("aa-flat",c,[{ok:c.calibrated,why:`\u03B1=${R} outside rate CI [${c.significantRateCi.lower.toFixed(3)}, ${c.significantRateCi.upper.toFixed(3)}]`},{ok:c.significantRate<o.maxSignificantRate,why:`false-positive rate ${c.significantRate.toFixed(3)} \u2265 ${o.maxSignificantRate}`},{ok:Math.abs(c.meanDelta)<o.maxMeanAbsDelta,why:`mean delta ${c.meanDelta.toFixed(4)} not centred on zero`}]));let l=I(Z(),{trials:t,seed:23});r.push(E("aa-realistic",l,[{ok:l.calibrated,why:`\u03B1=${R} outside rate CI [${l.significantRateCi.lower.toFixed(3)}, ${l.significantRateCi.upper.toFixed(3)}]`},{ok:l.significantRate<o.maxSignificantRate,why:`false-positive rate ${l.significantRate.toFixed(3)} \u2265 ${o.maxSignificantRate}`},{ok:Math.abs(l.meanDelta)<o.maxMeanAbsDelta,why:`mean delta ${l.meanDelta.toFixed(4)} not centred on zero`},{ok:l.maxAbsDelta<o.maxWorstCaseDelta,why:`worst single-trial delta ${l.maxAbsDelta.toFixed(3)} \u2265 ${o.maxWorstCaseDelta}`}]));let u=Y(Z(),o.powerProbeEffect,{trials:e,seed:5});r.push(E("power-observational",u,[{ok:u.significantRate>o.minPower,why:`detects +${o.powerProbeEffect} only ${u.significantRate.toFixed(3)} of the time`},{ok:u.meanDelta>o.minPowerMeanDelta,why:`measured mean delta ${u.meanDelta.toFixed(3)} understates the injected +${o.powerProbeEffect}`}]));let s=ae({trials:t,seed:31});r.push(E("aa-controlled",s,[{ok:s.calibrated,why:`\u03B1=${R} outside rate CI [${s.significantRateCi.lower.toFixed(3)}, ${s.significantRateCi.upper.toFixed(3)}]`},{ok:s.significantRate<o.maxSignificantRate,why:`false-positive rate ${s.significantRate.toFixed(3)} \u2265 ${o.maxSignificantRate}`},{ok:Math.abs(s.meanDelta)<o.maxMeanAbsDelta,why:`mean delta ${s.meanDelta.toFixed(4)} not centred on zero`}]));let a=se(o.powerProbeEffect,{trials:e,seed:37});r.push(E("power-controlled",a,[{ok:a.significantRate>o.minPower,why:`detects +${o.powerProbeEffect} only ${a.significantRate.toFixed(3)} of the time`}]));let m=r.filter(h=>!h.passed).map(h=>h.detail);return{green:m.length===0,checks:r,failures:m}}i(me,"runPromotionCanary");var ge=3,we=7;export{V as a,me as b,ge as c,we as d};
@@ -1,34 +0,0 @@
1
- import{a as e}from"./chunk-ZLLER3HP.js";function R(r){if(!r||typeof r!="object")return r;let a=r,i=a.project_areas;if(i!==void 0&&!Array.isArray(i)){let n=i&&typeof i=="object"?i.areas:void 0;a.project_areas=Array.isArray(n)?n:void 0}return r}e(R,"normalizeRecommendations");import{z as o}from"zod";var g=["org","team","project","personal"],w=o.object({name:o.string().min(1),description:o.string().min(1),type:o.literal("instruction").default("instruction"),scope:o.enum(g),version:o.string().min(1),tags:o.array(o.string()).optional(),compatibility:o.array(o.string()).optional(),slots:o.record(o.string(),o.string()).optional(),metadata:o.record(o.string(),o.unknown()).optional()});import{z as s}from"zod";var v=s.object({name:s.string().min(1),description:s.string().min(1),type:s.literal("prompt"),version:s.string().min(1),tags:s.array(s.string()).optional(),variables:s.array(s.string()).optional(),metadata:s.record(s.string(),s.unknown()).optional()});function y(r,a){let i=a.map(n=>`- ID: ${n.id}
2
- Name: ${n.name}
3
- Description: ${n.description}
4
- Tags: ${n.tags.join(", ")}
5
- Preview: ${n.contentPreview}`).join(`
6
-
7
- `);return`You are an expert at matching AI coding instructions to software projects.
8
-
9
- ## Project
10
- - Name: ${r.name}
11
- - Description: ${r.description??"No description"}
12
- - Languages: ${r.languages.join(", ")||"Unknown"}
13
- - Topics: ${r.topics.join(", ")||"None"}
14
- - Dependencies: ${r.dependencies.join(", ")||"None"}
15
-
16
- ## Available Instructions
17
-
18
- ${i}
19
-
20
- ## Task
21
-
22
- Analyze the project and recommend which instructions would be most useful. Consider:
23
- 1. Language and framework alignment
24
- 2. Project purpose and what standards/practices would help
25
- 3. Security, testing, and quality needs based on the project type
26
-
27
- Return your response as JSON in this exact format:
28
- {
29
- "recommendations": [
30
- { "instructionId": "<id>", "score": <0.0-1.0>, "reason": "<one sentence explanation>" }
31
- ]
32
- }
33
-
34
- Only include instructions with a relevance score >= 0.5. Order by score descending. Return valid JSON only, no markdown fences.`}e(y,"buildRecommendationPrompt");var x=["Added","Changed","Fixed","Removed","Deprecated","Security"],M=/^##\s+\[([^\]]+)\](?:\s*[-–]\s*(\d{4}-\d{2}-\d{2}))?\s*$/,b=/^###\s+(.+?)\s*$/,k=/^[-*]\s+(.*\S)\s*$/,S=/^ {2,}(\S.*)$/;function T(r){let a=r.split(/\r?\n/),i=[],n=null,l=null,c=null;for(let u of a){let p=u.match(M);if(p){n&&i.push(n);let d=p[1].trim();n={version:d,date:p[2]??null,unreleased:d.toLowerCase()==="unreleased",sections:{}},l=null,c=null;continue}if(!n)continue;let m=u.match(b);if(m){let d=m[1].trim();x.includes(d)?(l=d,n.sections[l]||(n.sections[l]=[]),c=n.sections[l]):(l=null,c=null);continue}if(!l||!c)continue;let f=u.match(k);if(f){c.push(f[1]);continue}let h=u.match(S);if(h&&c.length>0){c[c.length-1]+=" "+h[1].trim();continue}}return n&&i.push(n),{entries:i}}e(T,"parseChangelog");function I(r){return r.entries.filter(a=>a.unreleased?!1:Object.values(a.sections).some(i=>i&&i.length>0))}e(I,"announceableEntries");import re from"gray-matter";import{z as _}from"zod";var ce=_.object({type:_.enum(["instruction","prompt"])});export{R as a,y as b,T as c,I as d};
File without changes