@rulemetric/cli 0.8.0 → 0.10.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/base-command.js +1 -1
- package/dist/{chunk-ZE2PGHJQ.js → chunk-3A7RPMNN.js} +1 -1
- package/dist/{chunk-EN43UYBN.js → chunk-3IH22LYI.js} +1 -1
- package/dist/{chunk-CNOD6HWU.js → chunk-3VYV6ZYB.js} +1 -1
- package/dist/chunk-4STKWINN.js +1 -0
- package/dist/{chunk-T4ZIK6RS.js → chunk-4T2FJLDA.js} +1 -1
- package/dist/{chunk-Z2MZOQCD.js → chunk-553EGRRW.js} +1 -1
- package/dist/{chunk-NIRD7ETU.js → chunk-6SUN4NOY.js} +1 -1
- package/dist/{chunk-MBHDTW3M.js → chunk-7BYMIHIB.js} +1 -1
- package/dist/{chunk-5XUN743A.js → chunk-7L4P7FCK.js} +1 -1
- package/dist/chunk-7LXG3DDL.js +1 -0
- package/dist/{chunk-4VZLIGMS.js → chunk-AFYZYXQ3.js} +1 -1
- package/dist/{chunk-TU2AR6XO.js → chunk-B22HYCBV.js} +1 -1
- package/dist/{chunk-KGQ5W54Y.js → chunk-BN54LTXD.js} +1 -1
- package/dist/{chunk-W76EQSEV.js → chunk-DAD4YBYC.js} +1 -1
- package/dist/chunk-EOJ3LAP6.js +1 -0
- package/dist/{chunk-YW3JQKGY.js → chunk-ERNDMEYG.js} +1 -1
- package/dist/{chunk-IQCE4VBP.js → chunk-F5WE6JXK.js} +1 -1
- package/dist/{chunk-5ZACMVV3.js → chunk-FH55JFUY.js} +1 -1
- package/dist/chunk-FK73GD2X.js +2 -0
- package/dist/{chunk-ULMEKK7C.js → chunk-FORJT5H6.js} +1 -1
- package/dist/chunk-FP6QAPNK.js +1 -0
- package/dist/chunk-G7V4ZZZ3.js +1 -0
- package/dist/chunk-H6MN2AAF.js +11 -0
- package/dist/chunk-HKC224ZO.js +1 -0
- package/dist/chunk-HOQPVOMF.js +2 -0
- package/dist/chunk-KGURGIZ2.js +1 -0
- package/dist/{chunk-H7VP4SDO.js → chunk-L54TWWBY.js} +1 -1
- package/dist/{chunk-4Q72B377.js → chunk-MIOMKROL.js} +1 -1
- package/dist/{chunk-B3BHB26P.js → chunk-MODFTCZY.js} +1 -1
- package/dist/{chunk-LLNQZ4SZ.js → chunk-N7ML6X6Y.js} +1 -1
- package/dist/{chunk-AI6FMGKM.js → chunk-NDZVH5QW.js} +1 -1
- package/dist/chunk-NTJKAIHS.js +1 -0
- package/dist/chunk-OFC7HIBX.js +1 -0
- package/dist/chunk-OFSUKSZ2.js +1 -0
- package/dist/{chunk-6VKQT2J3.js → chunk-OI7MOALX.js} +1 -1
- package/dist/{chunk-NTKO4H2K.js → chunk-OPUI7CM2.js} +1 -1
- package/dist/chunk-PZNWH4VQ.js +7 -0
- package/dist/{chunk-FAXV5AAG.js → chunk-RSMLOYVJ.js} +1 -1
- package/dist/chunk-S7YDBO42.js +1 -0
- package/dist/{chunk-LWI5K6T4.js → chunk-SE5SRPIB.js} +1 -1
- package/dist/{chunk-4L2ZEIRE.js → chunk-TCR7TSAJ.js} +1 -1
- package/dist/chunk-TZA4HAVF.js +1 -0
- package/dist/chunk-UC377K7P.js +17 -0
- package/dist/chunk-UY5QYCTK.js +1 -0
- package/dist/{chunk-XRTZU7IZ.js → chunk-V5MJ4ICC.js} +1 -1
- package/dist/chunk-VKVWEG5J.js +11 -0
- package/dist/chunk-VXM4PEED.js +46 -0
- package/dist/{chunk-MOAJLSYV.js → chunk-W2SG3KND.js} +1 -1
- package/dist/{chunk-5KD2N2MH.js → chunk-W65UX4FC.js} +1 -1
- package/dist/{chunk-BLCMXTIK.js → chunk-WEBB76XA.js} +1 -1
- package/dist/{chunk-QY3UKLDE.js → chunk-WVJEBQYU.js} +1 -1
- package/dist/{chunk-NBTC5FNV.js → chunk-X23L2MF6.js} +1 -1
- package/dist/{chunk-HXZM2UHO.js → chunk-X4N4MT2I.js} +1 -1
- package/dist/{chunk-YQ56FQEO.js → chunk-XFAFMYIP.js} +1 -1
- package/dist/{chunk-RJLAAKEN.js → chunk-XILSJP4P.js} +1 -1
- package/dist/{chunk-CF7FUQQ4.js → chunk-YVM2CHNV.js} +2 -2
- package/dist/{chunk-5RUEROLC.js → chunk-YY53MMH7.js} +1 -1
- package/dist/{chunk-O2BKBW7Z.js → chunk-ZJOYLBRU.js} +1 -1
- package/dist/commands/antigravity/backfill.js +1 -1
- package/dist/commands/auth/create-key.js +1 -1
- package/dist/commands/auth/login.js +1 -1
- package/dist/commands/auth/logout.js +1 -1
- package/dist/commands/auth/revoke-key.js +1 -1
- package/dist/commands/auth/signup.js +1 -1
- package/dist/commands/auth/status.js +1 -1
- package/dist/commands/capture/scope.js +1 -1
- package/dist/commands/catalog/index.js +1 -1
- package/dist/commands/catalog/recommend.js +1 -1
- package/dist/commands/convert.js +1 -1
- package/dist/commands/converters.js +1 -1
- package/dist/commands/crons/list.js +1 -1
- package/dist/commands/crons/run.js +1 -1
- package/dist/commands/dashboard.js +1 -1
- package/dist/commands/diagnostics.js +1 -1
- package/dist/commands/eval-targets/create.js +1 -1
- package/dist/commands/eval-targets/list.js +1 -1
- package/dist/commands/evals/agent.js +1 -1
- package/dist/commands/evals/auto-run.js +1 -1
- package/dist/commands/evals/benchmark.js +1 -1
- package/dist/commands/evals/compare.js +1 -1
- package/dist/commands/evals/create.js +1 -1
- package/dist/commands/evals/optimize-description.js +1 -1
- package/dist/commands/evals/optimize.js +1 -1
- package/dist/commands/evals/refine-cases.js +1 -1
- package/dist/commands/evals/run.js +1 -1
- package/dist/commands/evals/validate-judge.js +1 -1
- package/dist/commands/experiments/list.js +1 -1
- package/dist/commands/gateway/ensure.js +1 -1
- package/dist/commands/hooks/install.js +1 -1
- package/dist/commands/hooks/run.js +1 -1
- package/dist/commands/hooks/uninstall.js +1 -1
- package/dist/commands/import.js +1 -1
- package/dist/commands/instructions/create.js +1 -1
- package/dist/commands/instructions/dedupe.js +1 -0
- package/dist/commands/instructions/delete.js +1 -1
- package/dist/commands/instructions/fork.js +1 -1
- package/dist/commands/instructions/get.js +1 -1
- package/dist/commands/instructions/list.js +1 -1
- package/dist/commands/instructions/promote.js +1 -1
- package/dist/commands/instructions/pull.js +1 -1
- package/dist/commands/instructions/restore.js +1 -1
- package/dist/commands/instructions/retract.js +1 -1
- package/dist/commands/instructions/upstream.js +1 -1
- package/dist/commands/instructions/versions.js +1 -1
- package/dist/commands/launcher.js +1 -1
- package/dist/commands/local/down.js +1 -1
- package/dist/commands/local/up.js +1 -1
- package/dist/commands/org/current.js +1 -1
- package/dist/commands/org/list.js +1 -1
- package/dist/commands/org/switch.js +1 -1
- package/dist/commands/packs/add-instruction.js +1 -1
- package/dist/commands/packs/apply.js +1 -1
- package/dist/commands/packs/create.js +1 -1
- package/dist/commands/packs/fork.js +1 -1
- package/dist/commands/packs/get.js +1 -1
- package/dist/commands/packs/list.js +1 -1
- package/dist/commands/packs/remove-instruction.js +1 -1
- package/dist/commands/proxy/env.js +1 -1
- package/dist/commands/proxy/logs.js +1 -1
- package/dist/commands/proxy/restart.js +1 -1
- package/dist/commands/proxy/setup.js +1 -1
- package/dist/commands/proxy/start.js +1 -1
- package/dist/commands/proxy/status.js +1 -1
- package/dist/commands/proxy/stop.js +1 -1
- package/dist/commands/research/backfill.js +1 -1
- package/dist/commands/research/tail-transcript.js +1 -1
- package/dist/commands/service/install.js +6 -6
- package/dist/commands/service/status.js +1 -1
- package/dist/commands/service/uninstall.js +1 -1
- package/dist/commands/sessions/analyze.js +1 -1
- package/dist/commands/sessions/delete.js +1 -1
- package/dist/commands/sessions/end.js +1 -1
- package/dist/commands/sessions/import.js +1 -1
- package/dist/commands/sessions/list.js +1 -1
- package/dist/commands/sessions/start.js +1 -1
- package/dist/commands/setup.js +1 -1
- package/dist/commands/skills/export-approved.js +1 -1
- package/dist/commands/skills/install.js +1 -1
- package/dist/commands/skills/list.js +1 -1
- package/dist/commands/skills/publish.js +1 -1
- package/dist/commands/skills/search.js +1 -1
- package/dist/commands/skills/update.js +1 -1
- package/dist/commands/suggestions/accept.js +1 -11
- package/dist/commands/suggestions/auto.js +1 -0
- package/dist/commands/suggestions/dismiss.js +1 -1
- package/dist/commands/suggestions/list.js +1 -1
- package/dist/commands/suggestions/refresh.js +1 -1
- package/dist/commands/suggestions/undo.js +1 -0
- package/dist/dashboard/Dashboard.js +1 -1
- package/dist/dashboard/data.js +1 -1
- package/dist/dashboard/launcher/ActiveJobsList.js +1 -1
- package/dist/dashboard/launcher/LauncherOverlay.js +1 -1
- package/dist/dashboard/launcher/NewLaunchForm.js +1 -1
- package/dist/dashboard/launcher/api.js +1 -1
- package/dist/dashboard/launcher/useLaunchJobs.js +1 -1
- package/dist/lib/active-org-refresh.js +1 -1
- package/dist/lib/agent-loop.js +1 -1
- package/dist/lib/antigravity-transcript.js +1 -1
- package/dist/lib/api-client.js +1 -1
- package/dist/lib/auth.js +1 -1
- package/dist/lib/claude-md-blocks.js +1 -0
- package/dist/lib/codex-exec.js +1 -1
- package/dist/lib/ensure-api-key.js +1 -1
- package/dist/lib/ensure-fresh-token.js +1 -1
- package/dist/lib/eval-analyzer.js +1 -1
- package/dist/lib/eval-benchmark.js +1 -1
- package/dist/lib/eval-candidate-run.js +1 -1
- package/dist/lib/eval-case-generator.js +1 -1
- package/dist/lib/eval-conversation-handler.js +1 -1
- package/dist/lib/eval-executor.js +1 -1
- package/dist/lib/eval-failure-classifier.js +1 -0
- package/dist/lib/eval-grader.js +1 -1
- package/dist/lib/eval-meta-judge.js +1 -1
- package/dist/lib/eval-quota-gate.js +1 -0
- package/dist/lib/eval-resume.js +1 -0
- package/dist/lib/eval-run-batch.js +1 -1
- package/dist/lib/eval-trigger-tester.js +1 -1
- package/dist/lib/evolution-enrolment.js +1 -0
- package/dist/lib/handlers/cron-auto-accept-suggestions.js +1 -0
- package/dist/lib/handlers/cron-eval-autorun.js +1 -1
- package/dist/lib/handlers/cron-instruction-evolution.js +1 -1
- package/dist/lib/handlers/cron-instruction-training.js +1 -0
- package/dist/lib/handlers/cron-refresh-pricing.js +1 -1
- package/dist/lib/handlers/cron-suggest-instructions.js +1 -1
- package/dist/lib/handlers/distill-memories.js +1 -1
- package/dist/lib/handlers/process-changelog.js +1 -1
- package/dist/lib/handlers/process-conversation.js +1 -1
- package/dist/lib/handlers/process-eval.js +1 -1
- package/dist/lib/handlers/process-insights.js +1 -1
- package/dist/lib/handlers/process-judge-review.js +1 -1
- package/dist/lib/handlers/process-launch.js +1 -1
- package/dist/lib/handlers/process-memory-ab.js +1 -1
- package/dist/lib/handlers/process-run-cleanup.js +1 -1
- package/dist/lib/handlers/process-session-goal.js +1 -1
- package/dist/lib/instruction-proposer.js +1 -1
- package/dist/lib/judge-review-runner.js +1 -1
- package/dist/lib/llm-client.js +1 -1
- package/dist/lib/manual-tasks.js +1 -1
- package/dist/lib/project-context.js +1 -0
- package/dist/lib/research-client.js +1 -1
- package/dist/lib/retraction.js +1 -1
- package/dist/lib/reviewer-detect.js +1 -1
- package/dist/lib/setup-steps.js +1 -1
- package/dist/lib/suggestion-accept.js +1 -0
- package/dist/lib/telemetry.js +1 -1
- package/dist/lib/terminal-target-heartbeat.js +1 -1
- package/oclif.manifest.json +802 -644
- package/package.json +7 -6
- package/dist/chunk-7QQSYEPT.js +0 -1
- package/dist/chunk-A4FYFRN7.js +0 -1
- package/dist/chunk-ATL4WZBF.js +0 -1
- package/dist/chunk-BAVLNWO4.js +0 -1
- package/dist/chunk-DBELYMDA.js +0 -1
- package/dist/chunk-EVAQBD5V.js +0 -1
- package/dist/chunk-FAZMKMTC.js +0 -45
- package/dist/chunk-HMMO27U4.js +0 -1
- package/dist/chunk-JZ5Z2BRO.js +0 -7
- package/dist/chunk-KLEF5D3A.js +0 -1
- package/dist/chunk-UKN2YVY4.js +0 -17
- package/dist/chunk-XJYNMJHH.js +0 -9
- package/dist/index.js +0 -1
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@rulemetric/cli",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.10.0",
|
|
4
4
|
"publishConfig": {
|
|
5
5
|
"access": "public"
|
|
6
6
|
},
|
|
@@ -80,9 +80,9 @@
|
|
|
80
80
|
"postgres": "^3.4.0",
|
|
81
81
|
"react": "^19.0.0",
|
|
82
82
|
"zod": "^3.24.0",
|
|
83
|
-
"@rulemetric/hooks": "0.
|
|
84
|
-
"@rulemetric/skills-registry": "0.
|
|
85
|
-
"@rulemetric/proxy": "0.
|
|
83
|
+
"@rulemetric/hooks": "0.10.0",
|
|
84
|
+
"@rulemetric/skills-registry": "0.10.0",
|
|
85
|
+
"@rulemetric/proxy": "0.10.0"
|
|
86
86
|
},
|
|
87
87
|
"//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.",
|
|
88
88
|
"optionalDependencies": {
|
|
@@ -105,9 +105,9 @@
|
|
|
105
105
|
"@rulemetric/db": "0.0.1",
|
|
106
106
|
"@rulemetric/email": "0.0.1",
|
|
107
107
|
"@rulemetric/session": "0.2.1",
|
|
108
|
+
"@rulemetric/effectiveness": "0.0.1",
|
|
108
109
|
"@rulemetric/telemetry": "0.0.1",
|
|
109
|
-
"@rulemetric/typescript-config": "0.0.0"
|
|
110
|
-
"@rulemetric/effectiveness": "0.0.1"
|
|
110
|
+
"@rulemetric/typescript-config": "0.0.0"
|
|
111
111
|
},
|
|
112
112
|
"scripts": {
|
|
113
113
|
"build": "node scripts/build.mjs",
|
|
@@ -115,6 +115,7 @@
|
|
|
115
115
|
"test": "vitest run",
|
|
116
116
|
"test:e2e": "vitest run --config vitest.e2e.config.ts",
|
|
117
117
|
"test:unit": "vitest run --config vitest.config.ts",
|
|
118
|
+
"mutation-audit": "node scripts/mutation-audit.mjs",
|
|
118
119
|
"type-check": "tsc --noEmit",
|
|
119
120
|
"postbuild": "oclif manifest",
|
|
120
121
|
"worker:restart": "pnpm build && launchctl unload ~/Library/LaunchAgents/com.rulemetric.worker.plist 2>/dev/null; launchctl load ~/Library/LaunchAgents/com.rulemetric.worker.plist && echo 'worker restarted with fresh dist'"
|
package/dist/chunk-7QQSYEPT.js
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{a as p,c as Zr}from"./chunk-ZLLER3HP.js";import{boolean as es,date as ts,index as Lt,integer as os,jsonb as ns,pgTable as Ut,text as A,timestamp as H,uniqueIndex as rs,uuid as ie}from"drizzle-orm/pg-core";var Lo=Ut("announcements",{id:ie("id").primaryKey().defaultRandom(),version:A("version").notNull().unique(),releaseDate:ts("release_date").notNull(),subject:A("subject").notNull(),htmlBody:A("html_body").notNull(),textBody:A("text_body").notNull(),sections:ns("sections").notNull().default({}),status:A("status").notNull().default("draft"),recipientCount:os("recipient_count"),sentAt:H("sent_at",{withTimezone:!0}),sentBy:ie("sent_by"),error:A("error"),createdAt:H("created_at",{withTimezone:!0}).notNull().defaultNow(),updatedAt:H("updated_at",{withTimezone:!0}).notNull().defaultNow()},e=>[Lt("idx_announcements_status").on(e.status),Lt("idx_announcements_created").on(e.createdAt)]),Uo=Ut("announcement_deliveries",{id:ie("id").primaryKey().defaultRandom(),announcementId:ie("announcement_id").notNull(),userId:ie("user_id").notNull(),email:A("email").notNull(),status:A("status").notNull().default("pending"),providerId:A("provider_id"),error:A("error"),sentAt:H("sent_at",{withTimezone:!0}),createdAt:H("created_at",{withTimezone:!0}).notNull().defaultNow()},e=>[rs("uniq_announcement_deliveries_announcement_user").on(e.announcementId,e.userId),Lt("idx_announcement_deliveries_user").on(e.userId,e.createdAt)]),Bo=Ut("notification_preferences",{userId:ie("user_id").primaryKey(),productAnnouncements:es("product_announcements").notNull().default(!0),unsubscribeToken:A("unsubscribe_token").notNull().unique(),unsubscribedAt:H("unsubscribed_at",{withTimezone:!0}),createdAt:H("created_at",{withTimezone:!0}).notNull().defaultNow(),updatedAt:H("updated_at",{withTimezone:!0}).notNull().defaultNow()});import{boolean as Fo,pgTable as ss,text as nt,timestamp as Bt,uuid as Jo}from"drizzle-orm/pg-core";import{pgTable as ot,text as ae,timestamp as ke,jsonb as Vo,uuid as Q,primaryKey as Go}from"drizzle-orm/pg-core";var u=ot("organizations",{id:Q("id").primaryKey().defaultRandom(),name:ae("name").unique().notNull(),slug:ae("slug").unique().notNull(),metadata:Vo("metadata"),createdAt:ke("created_at",{withTimezone:!0}).defaultNow(),updatedAt:ke("updated_at",{withTimezone:!0}).defaultNow()}),v=ot("teams",{id:Q("id").primaryKey().defaultRandom(),orgId:Q("org_id").references(()=>u.id,{onDelete:"cascade"}),name:ae("name").notNull(),slug:ae("slug").notNull(),metadata:Vo("metadata"),createdAt:ke("created_at",{withTimezone:!0}).defaultNow()}),de=ot("user_organizations",{userId:Q("user_id").notNull(),orgId:Q("org_id").references(()=>u.id,{onDelete:"cascade"}).notNull(),role:ae("role").notNull().default("member"),createdAt:ke("created_at",{withTimezone:!0}).defaultNow()},e=>[Go({columns:[e.userId,e.orgId]})]),ue=ot("user_teams",{userId:Q("user_id").notNull(),teamId:Q("team_id").references(()=>v.id,{onDelete:"cascade"}).notNull(),role:ae("role").notNull().default("member"),createdAt:ke("created_at",{withTimezone:!0}).defaultNow()},e=>[Go({columns:[e.userId,e.teamId]})]);var o=ss("profiles",{id:Jo("id").primaryKey(),email:nt("email"),displayName:nt("display_name"),activeOrgId:Jo("active_org_id").references(()=>u.id,{onDelete:"set null"}),isSuperadmin:Fo("is_superadmin").notNull().default(!1),claudeCodePlan:nt("claude_code_plan"),planSource:nt("plan_source").notNull().default("detected"),setupCompletedAt:Bt("setup_completed_at",{withTimezone:!0}),liveSendSkipped:Fo("live_send_skipped").notNull().default(!1),createdAt:Bt("created_at",{withTimezone:!0}).defaultNow(),updatedAt:Bt("updated_at",{withTimezone:!0}).defaultNow()});import{pgTable as is,text as Vt,timestamp as rt,uuid as st,index as $o}from"drizzle-orm/pg-core";var E=is("org_invitations",{id:st("id").primaryKey().defaultRandom(),orgId:st("org_id").notNull().references(()=>u.id,{onDelete:"cascade"}),email:Vt("email").notNull(),role:Vt("role").notNull().default("member"),teamId:st("team_id").references(()=>v.id,{onDelete:"set null"}),invitedBy:st("invited_by").notNull().references(()=>o.id,{onDelete:"cascade"}),token:Vt("token").notNull().unique(),expiresAt:rt("expires_at",{withTimezone:!0}).notNull(),acceptedAt:rt("accepted_at",{withTimezone:!0}),revokedAt:rt("revoked_at",{withTimezone:!0}),createdAt:rt("created_at",{withTimezone:!0}).notNull().defaultNow()},e=>[$o("idx_org_invitations_token").on(e.token),$o("idx_org_invitations_org").on(e.orgId)]);import{pgTable as Gt,text as x,timestamp as L,jsonb as it,uuid as j,integer as at,boolean as as,uniqueIndex as dt,index as Ee}from"drizzle-orm/pg-core";var n=Gt("instructions",{id:j("id").primaryKey().defaultRandom(),name:x("name").notNull(),description:x("description").notNull(),type:x("type").notNull().default("instruction"),scope:x("scope").notNull(),scopeRef:j("scope_ref"),version:x("version").notNull(),content:x("content").notNull(),frontmatter:it("frontmatter").notNull(),slots:it("slots"),tags:x("tags").array(),compatibility:x("compatibility").array(),createdBy:j("created_by"),createdAt:L("created_at",{withTimezone:!0}).defaultNow(),updatedAt:L("updated_at",{withTimezone:!0}).defaultNow(),archived:as("archived").default(!1),archivedAt:L("archived_at",{withTimezone:!0}),archivedBy:j("archived_by"),forkedFromId:j("forked_from_id").references(()=>n.id,{onDelete:"set null"}),upstreamVersion:x("upstream_version"),badge:x("badge"),contentHash:x("content_hash"),contextIdentity:x("context_identity"),scanScore:at("scan_score"),scanFindings:it("scan_findings"),popularityScore:at("popularity_score"),sourceUpdatedAt:L("source_updated_at",{withTimezone:!0})},e=>[dt("instructions_name_scope_ref_idx").on(e.name,e.scope,e.scopeRef),Ee("idx_instructions_scope").on(e.scope,e.scopeRef),Ee("idx_instructions_created_by").on(e.createdBy),Ee("idx_instructions_context_identity").on(e.createdBy,e.contextIdentity),Ee("idx_instructions_public_recency").on(e.scope,e.sourceUpdatedAt.desc())]),Yo=Gt("instruction_version_identities",{id:j("id").primaryKey().defaultRandom(),instructionId:j("instruction_id").notNull().references(()=>n.id,{onDelete:"cascade"}),contentHash:x("content_hash").notNull(),versionOrdinal:at("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=>[dt("instruction_version_identities_hash_unique").on(e.instructionId,e.contentHash),dt("instruction_version_identities_ordinal_unique").on(e.instructionId,e.versionOrdinal),Ee("idx_ivi_instruction").on(e.instructionId)]),le=Gt("instruction_versions",{id:j("id").primaryKey().defaultRandom(),instructionId:j("instruction_id").references(()=>n.id,{onDelete:"cascade"}),versionNumber:at("version_number").notNull(),content:x("content").notNull(),frontmatter:it("frontmatter").notNull(),changeSummary:x("change_summary"),createdBy:j("created_by"),createdAt:L("created_at",{withTimezone:!0}).defaultNow()},e=>[dt("instruction_versions_instruction_version_idx").on(e.instructionId,e.versionNumber)]);import{pgTable as ds,text as us,timestamp as ls,jsonb as cs,uuid as Ft,index as Qo}from"drizzle-orm/pg-core";var ce=ds("instruction_events",{id:Ft("id").primaryKey().defaultRandom(),instructionId:Ft("instruction_id").notNull().references(()=>n.id,{onDelete:"cascade"}),eventType:us("event_type").notNull(),actorId:Ft("actor_id").notNull(),metadata:cs("metadata"),createdAt:ls("created_at",{withTimezone:!0}).defaultNow()},e=>[Qo("idx_instruction_events_instruction").on(e.instructionId),Qo("idx_instruction_events_type").on(e.eventType)]);import{boolean as ms,jsonb as _s,pgTable as $t,primaryKey as Wo,text as W,timestamp as be,uniqueIndex as Jt,uuid as X}from"drizzle-orm/pg-core";import{sql as ps}from"drizzle-orm";var s=$t("projects",{id:X("id").primaryKey().defaultRandom(),orgId:X("org_id").references(()=>u.id,{onDelete:"cascade"}),name:W("name").notNull(),description:W("description"),githubRepo:W("github_repo"),gitRemoteUrl:W("git_remote_url"),gitRootCommit:W("git_root_commit"),gitRemoteAliases:W("git_remote_aliases").array().notNull().default([]),metadata:_s("metadata"),createdBy:X("created_by"),createdAt:be("created_at",{withTimezone:!0}).defaultNow(),updatedAt:be("updated_at",{withTimezone:!0}).defaultNow()},e=>[Jt("projects_org_name_idx").on(e.orgId,e.name),Jt("projects_git_remote_url_unique").on(e.gitRemoteUrl).where(ps`${e.gitRemoteUrl} IS NOT NULL`)]),U=$t("project_instructions",{projectId:X("project_id").references(()=>s.id,{onDelete:"cascade"}).notNull(),instructionId:X("instruction_id").references(()=>n.id,{onDelete:"cascade"}).notNull(),addedAt:be("added_at",{withTimezone:!0}).defaultNow(),addedBy:X("added_by")},e=>[Wo({columns:[e.projectId,e.instructionId]})]),Xo=$t("project_checkouts",{projectId:X("project_id").references(()=>s.id,{onDelete:"cascade"}).notNull(),path:W("path").notNull(),isWorktree:ms("is_worktree").notNull().default(!1),firstSeen:be("first_seen",{withTimezone:!0}).notNull().defaultNow(),lastSeen:be("last_seen",{withTimezone:!0}).notNull().defaultNow()},e=>[Wo({columns:[e.projectId,e.path]}),Jt("project_checkouts_path_unique").on(e.path)]);import{pgTable as Wt,text as I,timestamp as Se,jsonb as Z,uuid as b,integer as lt,uniqueIndex as en,index as D}from"drizzle-orm/pg-core";import{pgTable as fs,text as me,timestamp as Yt,jsonb as Zo,uuid as ut,integer as xs,boolean as Ns,index as Qt}from"drizzle-orm/pg-core";var g=fs("agent_runs",{id:ut("id").primaryKey().defaultRandom(),userId:ut("user_id").notNull().references(()=>o.id,{onDelete:"cascade"}),orgId:ut("org_id").references(()=>u.id,{onDelete:"set null"}),projectId:ut("project_id").references(()=>s.id,{onDelete:"set null"}),projectPath:me("project_path"),gitRemote:me("git_remote"),baseBranch:me("base_branch"),title:me("title"),prompt:me("prompt"),toolSpec:Zo("tool_spec").notNull().default([]),autoWorktree:Ns("auto_worktree").notNull().default(!0),status:me("status").notNull().default("pending"),sessionCount:xs("session_count").notNull().default(0),metadata:Zo("metadata").notNull().default({}),createdAt:Yt("created_at",{withTimezone:!0}).notNull().defaultNow(),updatedAt:Yt("updated_at",{withTimezone:!0}).notNull().defaultNow(),completedAt:Yt("completed_at",{withTimezone:!0})},e=>[Qt("idx_agent_runs_user").on(e.userId),Qt("idx_agent_runs_org_created").on(e.orgId,e.createdAt),Qt("idx_agent_runs_project").on(e.projectId)]);var d=Wt("sessions",{id:b("id").primaryKey().defaultRandom(),userId:b("user_id").notNull().references(()=>o.id,{onDelete:"cascade"}),externalSessionId:I("external_session_id"),projectId:b("project_id").references(()=>s.id,{onDelete:"set null"}),orgId:b("org_id").references(()=>u.id,{onDelete:"set null"}),tool:I("tool").notNull(),projectPath:I("project_path"),gitBranch:I("git_branch"),startedAt:Se("started_at",{withTimezone:!0}).notNull(),endedAt:Se("ended_at",{withTimezone:!0}),eventCount:lt("event_count").default(0),tokenUsage:Z("token_usage"),analysis:Z("analysis"),analyzedAt:Se("analyzed_at",{withTimezone:!0}),analyzedEventCount:lt("analyzed_event_count"),analyzedTurnCount:lt("analyzed_turn_count"),metadata:Z("metadata").default({}),origin:I("origin").notNull().default("unknown"),runId:b("run_id").references(()=>g.id,{onDelete:"set null"}),model:I("model"),harnessVersion:I("harness_version"),createdAt:Se("created_at",{withTimezone:!0}).defaultNow()},e=>[D("idx_sessions_user").on(e.userId),D("idx_sessions_tool").on(e.tool),D("idx_sessions_started_at").on(e.startedAt),D("idx_sessions_project").on(e.projectId),D("idx_sessions_org_started_at").on(e.orgId,e.startedAt),D("idx_sessions_run").on(e.runId),en("idx_sessions_user_external").on(e.userId,e.externalSessionId)]),_e=Wt("session_events",{id:b("id").primaryKey().defaultRandom(),sessionId:b("session_id").notNull().references(()=>d.id,{onDelete:"cascade"}),sequence:lt("sequence").notNull(),eventType:I("event_type").notNull(),content:I("content"),toolName:I("tool_name"),toolInput:Z("tool_input"),toolOutput:Z("tool_output"),tokenUsage:Z("token_usage"),model:I("model"),timestamp:Se("timestamp",{withTimezone:!0}).notNull(),metadata:Z("metadata").default({})},e=>[en("session_events_session_sequence_idx").on(e.sessionId,e.sequence),D("idx_session_events_session_id").on(e.sessionId),D("idx_session_events_event_type").on(e.eventType),D("idx_session_events_model").on(e.model)]),B=Wt("session_instructions",{sessionId:b("session_id").notNull().references(()=>d.id,{onDelete:"cascade"}),instructionId:b("instruction_id").notNull().references(()=>n.id,{onDelete:"cascade"}),linkMethod:I("link_method").notNull(),contentHash:I("content_hash")},e=>[D("idx_session_instructions_instruction_id").on(e.instructionId)]);import{pgTable as tn,text as ct,timestamp as on,uuid as R,integer as nn,index as pe,unique as gs}from"drizzle-orm/pg-core";var S=tn("treatment_assignments",{id:R("id").primaryKey().defaultRandom(),userId:R("user_id").notNull().references(()=>o.id,{onDelete:"cascade"}),treatmentType:ct("treatment_type").notNull(),treatmentId:R("treatment_id").notNull(),treatmentVersion:nn("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:ct("method").notNull(),assignedAt:on("assigned_at",{withTimezone:!0}).notNull().defaultNow()},e=>[pe("idx_treatment_assignments_user").on(e.userId),pe("idx_treatment_assignments_treatment").on(e.treatmentType,e.treatmentId),pe("idx_treatment_assignments_project").on(e.projectId)]),K=tn("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:ct("treatment_type").notNull(),treatmentId:R("treatment_id").notNull(),treatmentVersion:nn("treatment_version").notNull().default(1),assignmentId:R("assignment_id").references(()=>S.id,{onDelete:"set null"}),method:ct("method").notNull(),exposedAt:on("exposed_at",{withTimezone:!0}).notNull().defaultNow()},e=>[gs("treatment_exposures_unique").on(e.sessionId,e.treatmentType,e.treatmentId,e.treatmentVersion),pe("idx_treatment_exposures_treatment").on(e.treatmentType,e.treatmentId),pe("idx_treatment_exposures_user").on(e.userId),pe("idx_treatment_exposures_session").on(e.sessionId)]);import{pgTable as hs,text as Xt,timestamp as vs,uuid as mt,integer as Is,index as rn,uniqueIndex as ys}from"drizzle-orm/pg-core";var sn=hs("pending_treatment_exposures",{id:mt("id").primaryKey().defaultRandom(),userId:mt("user_id").notNull().references(()=>o.id,{onDelete:"cascade"}),externalSessionId:Xt("external_session_id").notNull(),treatmentType:Xt("treatment_type").notNull(),treatmentId:mt("treatment_id").notNull(),treatmentVersion:Is("treatment_version").notNull().default(1),method:Xt("method").notNull().default("injected"),projectId:mt("project_id").references(()=>s.id,{onDelete:"set null"}),createdAt:vs("created_at",{withTimezone:!0}).notNull().defaultNow()},e=>[ys("pending_treatment_exposures_unique").on(e.externalSessionId,e.treatmentType,e.treatmentId,e.treatmentVersion),rn("idx_pending_treatment_exposures_ext").on(e.externalSessionId),rn("idx_pending_treatment_exposures_user").on(e.userId)]);import{pgTable as an,text as V,timestamp as dn,uuid as fe,numeric as Ts,index as Zt,unique as ws}from"drizzle-orm/pg-core";var Ke=an("instruction_experiments",{id:fe("id").primaryKey().defaultRandom(),userId:fe("user_id").notNull().references(()=>o.id,{onDelete:"cascade"}),instructionId:fe("instruction_id").notNull().references(()=>n.id,{onDelete:"cascade"}),projectPath:V("project_path").notNull(),status:V("status").notNull().default("running"),treatedShare:Ts("treated_share").notNull().default("0.5"),salt:V("salt").notNull(),contentHash:V("content_hash"),source:V("source").notNull().default("manual"),stoppedReason:V("stopped_reason"),createdAt:dn("created_at",{withTimezone:!0}).notNull().defaultNow()},e=>[Zt("idx_instruction_experiments_lookup").on(e.userId,e.projectPath)]),un=an("instruction_experiment_arms",{id:fe("id").primaryKey().defaultRandom(),experimentId:fe("experiment_id").notNull().references(()=>Ke.id,{onDelete:"cascade"}),userId:fe("user_id").notNull().references(()=>o.id,{onDelete:"cascade"}),externalSessionId:V("external_session_id").notNull(),arm:V("arm").notNull(),assignedAt:dn("assigned_at",{withTimezone:!0}).notNull().defaultNow()},e=>[ws("instruction_experiment_arms_unique").on(e.experimentId,e.externalSessionId),Zt("idx_instruction_experiment_arms_experiment").on(e.experimentId,e.arm),Zt("idx_instruction_experiment_arms_session").on(e.externalSessionId)]);import{pgTable as As,text as eo,timestamp as zs,uuid as _t,numeric as to,integer as ln,jsonb as js,index as Ds,unique as Rs}from"drizzle-orm/pg-core";var cn=As("instruction_verdicts",{id:_t("id").primaryKey().defaultRandom(),userId:_t("user_id").notNull().references(()=>o.id,{onDelete:"cascade"}),instructionId:_t("instruction_id").notNull().references(()=>n.id,{onDelete:"cascade"}),contentHash:eo("content_hash").notNull(),projectPath:eo("project_path").notNull(),segment:js("segment").notNull().default({}),decision:eo("decision").notNull(),delta:to("delta").notNull(),ciLower:to("ci_lower").notNull(),ciUpper:to("ci_upper").notNull(),nTreated:ln("n_treated").notNull(),nControl:ln("n_control").notNull(),experimentId:_t("experiment_id").references(()=>Ke.id,{onDelete:"set null"}),decidedAt:zs("decided_at",{withTimezone:!0}).notNull().defaultNow()},e=>[Rs("instruction_verdicts_unique").on(e.instructionId,e.contentHash,e.projectPath),Ds("idx_instruction_verdicts_render").on(e.userId,e.projectPath)]);import{pgTable as ks,text as pt,timestamp as oo,uuid as no,integer as Es,unique as bs,index as Ss}from"drizzle-orm/pg-core";var mn=ks("insight_recommendation_log",{id:no("id").primaryKey().defaultRandom(),userId:no("user_id").notNull().references(()=>o.id,{onDelete:"cascade"}),projectPath:pt("project_path").notNull().default(""),category:pt("category").notNull(),contentHash:pt("content_hash").notNull(),label:pt("label").notNull().default(""),firstSeenAt:oo("first_seen_at",{withTimezone:!0}).notNull().defaultNow(),lastSeenAt:oo("last_seen_at",{withTimezone:!0}).notNull().defaultNow(),timesGenerated:Es("times_generated").notNull().default(1),lastJobId:no("last_job_id"),dismissedAt:oo("dismissed_at",{withTimezone:!0})},e=>[bs("insight_recommendation_log_unique").on(e.userId,e.projectPath,e.contentHash),Ss("idx_insight_recommendation_log_read").on(e.userId,e.projectPath)]);import{pgTable as Ks,text as xe,timestamp as ro,uuid as Pe,integer as _n,index as ft}from"drizzle-orm/pg-core";var T=Ks("memories",{id:Pe("id").primaryKey().defaultRandom(),userId:Pe("user_id").notNull().references(()=>o.id,{onDelete:"cascade"}),orgId:Pe("org_id"),projectId:Pe("project_id").references(()=>s.id,{onDelete:"set null"}),version:_n("version").notNull().default(1),parentId:Pe("parent_id").references(()=>T.id,{onDelete:"set null"}),kind:xe("kind").notNull(),title:xe("title").notNull(),body:xe("body").notNull(),source:xe("source").notNull(),status:xe("status").notNull().default("active"),trustClass:xe("trust_class"),trustVersion:_n("trust_version"),trustComputedAt:ro("trust_computed_at",{withTimezone:!0}),createdAt:ro("created_at",{withTimezone:!0}).notNull().defaultNow(),updatedAt:ro("updated_at",{withTimezone:!0}).notNull().defaultNow()},e=>[ft("idx_memories_user").on(e.userId),ft("idx_memories_project").on(e.projectId),ft("idx_memories_parent").on(e.parentId),ft("idx_memories_user_status").on(e.userId,e.status)]);import{pgTable as Ps,text as Ce,timestamp as so,uuid as io,integer as pn,jsonb as Cs,index as fn}from"drizzle-orm/pg-core";var xn=Ps("memory_experiments",{id:io("id").primaryKey().defaultRandom(),memoryId:io("memory_id").notNull().references(()=>T.id,{onDelete:"cascade"}),userId:io("user_id").notNull().references(()=>o.id,{onDelete:"cascade"}),memoryVersion:pn("memory_version").notNull().default(1),taskPrompt:Ce("task_prompt").notNull(),expectations:Ce("expectations").array().notNull().default([]),trials:pn("trials").notNull().default(10),model:Ce("model"),status:Ce("status").notNull().default("pending"),result:Cs("result").$type(),error:Ce("error"),createdAt:so("created_at",{withTimezone:!0}).notNull().defaultNow(),startedAt:so("started_at",{withTimezone:!0}),completedAt:so("completed_at",{withTimezone:!0})},e=>[fn("idx_memory_experiments_memory").on(e.memoryId),fn("idx_memory_experiments_user").on(e.userId)]);import{pgTable as Os,text as Ne,timestamp as ao,uuid as uo,jsonb as qs,uniqueIndex as Ms,index as Nn}from"drizzle-orm/pg-core";var xt=Os("session_terminal_targets",{id:uo("id").primaryKey().defaultRandom(),userId:uo("user_id").notNull().references(()=>o.id,{onDelete:"cascade"}),sessionId:uo("session_id").references(()=>d.id,{onDelete:"set null"}),externalSessionId:Ne("external_session_id"),kind:Ne("kind").notNull(),target:Ne("target").notNull(),status:Ne("status").notNull().default("active"),attachCommand:Ne("attach_command").notNull(),projectPath:Ne("project_path"),metadata:qs("metadata").notNull().default({}),lastSeenAt:ao("last_seen_at",{withTimezone:!0}).defaultNow(),createdAt:ao("created_at",{withTimezone:!0}).defaultNow(),updatedAt:ao("updated_at",{withTimezone:!0}).defaultNow()},e=>[Ms("idx_session_terminal_targets_user_target").on(e.userId,e.target),Nn("idx_session_terminal_targets_session").on(e.sessionId),Nn("idx_session_terminal_targets_user_status").on(e.userId,e.status)]);import{boolean as Hs,index as Nt,jsonb as gn,pgTable as Ls,text as ee,timestamp as Oe,uuid as gt,integer as hn}from"drizzle-orm/pg-core";var vn=Ls("session_send_jobs",{id:gt("id").primaryKey().defaultRandom(),userId:gt("user_id").notNull(),sessionId:gt("session_id").notNull().references(()=>d.id,{onDelete:"cascade"}),terminalTargetId:gt("terminal_target_id").references(()=>xt.id,{onDelete:"set null"}),target:ee("target").notNull(),message:ee("message").notNull(),submit:Hs("submit").notNull().default(!0),delivery:ee("delivery").notNull().default("live"),status:ee("status").notNull().default("pending"),result:gn("result"),error:ee("error"),attempts:hn("attempts").notNull().default(0),taskKind:ee("task_kind"),payload:gn("payload"),claimedBy:ee("claimed_by"),claimedAt:Oe("claimed_at",{withTimezone:!0}),leaseExpiresAt:Oe("lease_expires_at",{withTimezone:!0}),leaseRecoveries:hn("lease_recoveries").notNull().default(0),createdAt:Oe("created_at",{withTimezone:!0}).defaultNow(),updatedAt:Oe("updated_at",{withTimezone:!0}).defaultNow(),completedAt:Oe("completed_at",{withTimezone:!0})},e=>[Nt("idx_session_send_jobs_user").on(e.userId),Nt("idx_session_send_jobs_session").on(e.sessionId),Nt("idx_session_send_jobs_status").on(e.status),Nt("idx_session_send_jobs_pending").on(e.userId,e.status)]);import{pgTable as yn,text as te,timestamp as ht,jsonb as Tn,uuid as G,integer as Us,boolean as Bs,uniqueIndex as Vs,index as In,primaryKey as Gs}from"drizzle-orm/pg-core";var z=yn("packs",{id:G("id").primaryKey().defaultRandom(),name:te("name").notNull(),description:te("description").notNull(),scope:te("scope").notNull(),scopeRef:G("scope_ref"),version:te("version").notNull().default("1.0.0"),tags:te("tags").array(),badge:te("badge"),metadata:Tn("metadata"),createdBy:G("created_by"),createdAt:ht("created_at",{withTimezone:!0}).defaultNow(),updatedAt:ht("updated_at",{withTimezone:!0}).defaultNow(),archived:Bs("archived").default(!1),archivedAt:ht("archived_at",{withTimezone:!0}),archivedBy:G("archived_by"),forkedFromId:G("forked_from_id").references(()=>z.id,{onDelete:"set null"}),upstreamVersion:te("upstream_version")},e=>[Vs("packs_name_scope_ref_idx").on(e.name,e.scope,e.scopeRef),In("idx_packs_scope").on(e.scope,e.scopeRef),In("idx_packs_created_by").on(e.createdBy)]),F=yn("pack_instructions",{packId:G("pack_id").references(()=>z.id,{onDelete:"cascade"}).notNull(),instructionId:G("instruction_id").references(()=>n.id,{onDelete:"cascade"}).notNull(),position:Us("position").notNull().default(0),slotOverrides:Tn("slot_overrides"),addedAt:ht("added_at",{withTimezone:!0}).defaultNow(),addedBy:G("added_by")},e=>[Gs({columns:[e.packId,e.instructionId]})]);import{pgTable as Fs,text as lo,timestamp as Js,jsonb as $s,uuid as co,index as ge}from"drizzle-orm/pg-core";var he=Fs("instruction_usage_events",{id:co("id").primaryKey().defaultRandom(),instructionId:co("instruction_id").references(()=>n.id,{onDelete:"set null"}),userId:co("user_id").notNull(),surface:lo("surface").notNull(),action:lo("action").notNull(),metadata:$s("metadata"),traceId:lo("trace_id"),createdAt:Js("created_at",{withTimezone:!0}).defaultNow()},e=>[ge("idx_usage_events_instruction").on(e.instructionId),ge("idx_usage_events_user").on(e.userId),ge("idx_usage_events_surface").on(e.surface),ge("idx_usage_events_action").on(e.action),ge("idx_usage_events_created_at").on(e.createdAt),ge("idx_usage_events_user_created").on(e.userId,e.createdAt)]);import{pgTable as Ys,text as vt,timestamp as wn,jsonb as Qs,uuid as An,index as mo}from"drizzle-orm/pg-core";var zn=Ys("worker_connections",{id:An("id").primaryKey().defaultRandom(),userId:An("user_id").notNull(),workerType:vt("worker_type").notNull().default("mcp"),clientName:vt("client_name").notNull(),clientVersion:vt("client_version"),workerVersion:vt("worker_version"),lastHeartbeat:wn("last_heartbeat",{withTimezone:!0}).notNull().defaultNow(),connectedAt:wn("connected_at",{withTimezone:!0}).notNull().defaultNow(),metadata:Qs("metadata")},e=>[mo("idx_worker_connections_user").on(e.userId),mo("idx_worker_connections_heartbeat").on(e.userId,e.lastHeartbeat),mo("idx_worker_connections_type").on(e.userId,e.workerType)]);import{pgTable as Ws,text as It,timestamp as Xs,jsonb as Zs,uuid as jn,index as Dn}from"drizzle-orm/pg-core";var Rn=Ws("cli_setup_events",{id:jn("id").primaryKey().defaultRandom(),userId:jn("user_id").notNull(),deviceId:It("device_id").notNull(),event:It("event").notNull(),cliVersion:It("cli_version"),os:It("os"),props:Zs("props").notNull().default({}),createdAt:Xs("created_at",{withTimezone:!0}).notNull().defaultNow()},e=>[Dn("idx_cli_setup_events_user").on(e.userId,e.createdAt),Dn("idx_cli_setup_events_device").on(e.deviceId,e.createdAt)]);import{pgTable as ei,text as oe,integer as ti,boolean as oi,timestamp as ni,jsonb as ri,uuid as si,index as kn}from"drizzle-orm/pg-core";var En=ei("cli_error_events",{id:si("id").primaryKey().defaultRandom(),deviceId:oe("device_id"),event:oe("event").notNull(),command:oe("command"),statusCode:ti("status_code"),message:oe("message"),cliVersion:oe("cli_version"),os:oe("os"),nodeVersion:oe("node_version"),proxied:oi("proxied"),props:ri("props").notNull().default({}),createdAt:ni("created_at",{withTimezone:!0}).notNull().defaultNow()},e=>[kn("idx_cli_error_events_created").on(e.createdAt),kn("idx_cli_error_events_device").on(e.deviceId,e.createdAt)]);import{sql as ii}from"drizzle-orm";import{pgTable as ne,text as m,timestamp as h,jsonb as w,uuid as c,integer as P,boolean as qe,index as N,unique as bn}from"drizzle-orm/pg-core";var r=ne("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(()=>r.id,{onDelete:"set null"}),createdAt:h("created_at",{withTimezone:!0}).defaultNow(),updatedAt:h("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=ne("evals",{id:c("id").primaryKey().defaultRandom(),evalTargetId:c("eval_target_id").notNull().references(()=>r.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:h("retired_at",{withTimezone:!0}),retiredReason:m("retired_reason"),createdAt:h("created_at",{withTimezone:!0}).defaultNow(),updatedAt:h("updated_at",{withTimezone:!0}).defaultNow(),contentUpdatedAt:h("content_updated_at",{withTimezone:!0}).notNull().defaultNow()},e=>[N("idx_evals_target").on(e.evalTargetId),N("idx_evals_target_active").on(e.evalTargetId).where(ii`${e.retiredAt} IS NULL`)]),k=ne("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(()=>r.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:h("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)]),Sn=ne("eval_comparisons",{id:c("id").primaryKey().defaultRandom(),userId:c("user_id").notNull(),targetAId:c("target_a_id").notNull().references(()=>r.id,{onDelete:"cascade"}),targetBId:c("target_b_id").notNull().references(()=>r.id,{onDelete:"cascade"}),targetAVersion:P("target_a_version").notNull(),targetBVersion:P("target_b_version").notNull(),isSwapped:qe("is_swapped").notNull().default(!1),winnerTargetId:c("winner_target_id").references(()=>r.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:h("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)]),Kn=ne("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(()=>r.id,{onDelete:"cascade"}),expectationIndex:P("expectation_index").notNull(),expectationText:m("expectation_text").notNull(),judgePassed:qe("judge_passed").notNull(),judgeMethod:m("judge_method").notNull(),judgeModel:m("judge_model"),verdict:m("verdict").notNull(),flag:m("flag"),note:m("note"),createdAt:h("created_at",{withTimezone:!0}).defaultNow(),updatedAt:h("updated_at",{withTimezone:!0}).defaultNow()},e=>[N("idx_eval_grade_annotations_target").on(e.evalTargetId),N("idx_eval_grade_annotations_run").on(e.evalRunId),bn("eval_grade_annotations_eval_run_id_expectation_index_key").on(e.evalRunId,e.expectationIndex)]),Pn=ne("judge_reviewer_verdicts",{id:c("id").primaryKey().defaultRandom(),userId:c("user_id").notNull(),evalTargetId:c("eval_target_id").notNull().references(()=>r.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:qe("judge_passed").notNull(),humanPassed:qe("human_passed").notNull(),reviewerEngine:m("reviewer_engine").notNull(),reviewerModel:m("reviewer_model").notNull(),reviewerPassed:qe("reviewer_passed").notNull(),resolvedAt:h("resolved_at",{withTimezone:!0}),resolution:m("resolution"),createdAt:h("created_at",{withTimezone:!0}).defaultNow(),updatedAt:h("updated_at",{withTimezone:!0}).defaultNow()},e=>[N("idx_jrv_target").on(e.evalTargetId),bn("judge_reviewer_verdicts_eval_run_id_expectation_index_review_key").on(e.evalRunId,e.expectationIndex,e.reviewerModel)]),ve=ne("benchmarks",{id:c("id").primaryKey().defaultRandom(),evalTargetId:c("eval_target_id").notNull().references(()=>r.id,{onDelete:"cascade"}),iteration:P("iteration").notNull().default(1),runSummary:w("run_summary").notNull().default({}),notes:w("notes").notNull().default([]),feedback:w("feedback"),createdAt:h("created_at",{withTimezone:!0}).defaultNow()},e=>[N("idx_benchmarks_target").on(e.evalTargetId)]);import{sql as _o}from"drizzle-orm";import{pgTable as ai,text as O,timestamp as di,jsonb as yt,uuid as Tt,boolean as ui,index as Me,uniqueIndex as li}from"drizzle-orm/pg-core";var Cn=ai("instruction_promotions",{id:Tt("id").primaryKey().defaultRandom(),userId:Tt("user_id").notNull(),evalTargetId:Tt("eval_target_id").notNull().references(()=>r.id,{onDelete:"cascade"}),instructionId:Tt("instruction_id").references(()=>n.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:ui("applied").notNull().default(!1),refusals:yt("refusals").notNull().default([]),rationale:O("rationale").notNull().default(""),effectClass:O("effect_class").notNull(),verdict:yt("verdict").notNull().default({}),gates:yt("gates").notNull().default({}),touchedSections:yt("touched_sections").notNull().default([]),createdAt:di("created_at",{withTimezone:!0}).notNull().defaultNow()},e=>[Me("idx_instruction_promotions_budget").on(e.evalTargetId,e.createdAt.desc()).where(_o`${e.applied}`),Me("idx_instruction_promotions_target").on(e.evalTargetId,e.createdAt.desc()),Me("idx_instruction_promotions_user").on(e.userId,e.createdAt.desc()),Me("idx_instruction_promotions_to_hash").on(e.toContentHash),li("uq_instruction_promotions_applied").on(e.evalTargetId,e.fromContentHash,e.toContentHash).where(_o`${e.applied}`),Me("idx_instruction_promotions_applied_hash").on(e.toContentHash,e.createdAt.desc()).where(_o`${e.applied}`)]);import{pgTable as qn,text as po,timestamp as fo,jsonb as Mn,uuid as Ie,integer as He,index as wt,real as On}from"drizzle-orm/pg-core";var ye=qn("trigger_evals",{id:Ie("id").primaryKey().defaultRandom(),evalTargetId:Ie("eval_target_id").notNull().references(()=>r.id,{onDelete:"cascade"}),userId:Ie("user_id").notNull(),queries:Mn("queries").notNull().default([]),status:po("status").notNull().default("pending_review"),trainIndices:He("train_indices").array().default([]),testIndices:He("test_indices").array().default([]),createdAt:fo("created_at",{withTimezone:!0}).defaultNow(),updatedAt:fo("updated_at",{withTimezone:!0}).defaultNow()},e=>[wt("idx_trigger_evals_target").on(e.evalTargetId),wt("idx_trigger_evals_user").on(e.userId)]),Te=qn("optimization_runs",{id:Ie("id").primaryKey().defaultRandom(),evalTargetId:Ie("eval_target_id").notNull().references(()=>r.id,{onDelete:"cascade"}),userId:Ie("user_id").notNull(),type:po("type").notNull(),iteration:He("iteration").notNull(),inputVersion:He("input_version").notNull(),outputVersion:He("output_version"),trainScore:On("train_score"),testScore:On("test_score"),analysis:Mn("analysis").notNull().default({}),status:po("status").notNull().default("running"),createdAt:fo("created_at",{withTimezone:!0}).defaultNow()},e=>[wt("idx_optimization_runs_target").on(e.evalTargetId),wt("idx_optimization_runs_user").on(e.userId)]);import{pgTable as ci,text as J,timestamp as mi,jsonb as Le,uuid as xo,integer as No,real as _i,index as Ue,uniqueIndex as Hn}from"drizzle-orm/pg-core";var $=ci("context_snapshots",{id:xo("id").primaryKey().defaultRandom(),sessionId:xo("session_id").references(()=>d.id,{onDelete:"cascade"}),userId:xo("user_id").notNull().references(()=>o.id,{onDelete:"cascade"}),sequence:No("sequence").notNull().default(0),provider:J("provider").notNull(),model:J("model").notNull(),systemPrompt:J("system_prompt").notNull(),injectedInstructions:Le("injected_instructions").notNull().default([]),messagesSummary:Le("messages_summary").notNull(),tools:Le("tools").notNull().default([]),systemHash:J("system_hash").notNull(),requestHash:J("request_hash").notNull().default(""),toolsHash:J("tools_hash"),injectedHash:J("injected_hash"),messagesDelta:Le("messages_delta").default([]),messagesDeltaRef:J("messages_delta_ref"),maxTokens:No("max_tokens"),temperature:_i("temperature"),estimatedTokens:No("estimated_tokens"),capturedAt:mi("captured_at",{withTimezone:!0}).notNull().defaultNow(),metadata:Le("metadata").default({})},e=>[Ue("idx_context_snapshots_session").on(e.sessionId),Ue("idx_context_snapshots_user").on(e.userId),Ue("idx_context_snapshots_hash").on(e.systemHash),Ue("idx_context_snapshots_request_hash").on(e.requestHash),Hn("idx_snapshots_session_request").on(e.sessionId,e.requestHash),Hn("idx_snapshots_session_sequence").on(e.sessionId,e.sequence),Ue("idx_context_snapshots_user_session_captured").on(e.userId,e.sessionId,e.capturedAt.desc())]);import{pgTable as pi,text as Ln,timestamp as fi,jsonb as xi,integer as Ni,index as gi}from"drizzle-orm/pg-core";var Un=pi("content_blobs",{hash:Ln("hash").primaryKey(),contentType:Ln("content_type").notNull(),content:xi("content").notNull(),sizeBytes:Ni("size_bytes").notNull().default(0),createdAt:fi("created_at",{withTimezone:!0}).defaultNow()},e=>[gi("idx_content_blobs_type").on(e.contentType)]);import{pgTable as hi,text as At,timestamp as Be,jsonb as zt,uuid as go,index as jt,integer as Bn}from"drizzle-orm/pg-core";var we=hi("eval_jobs",{id:go("id").primaryKey().defaultRandom(),userId:go("user_id").notNull(),evalTargetId:go("eval_target_id").notNull().references(()=>r.id,{onDelete:"cascade"}),status:At("status").notNull().default("pending"),config:zt("config").notNull().default({}),progress:zt("progress").notNull().default({}),result:zt("result"),error:At("error"),attempts:Bn("attempts").notNull().default(0),taskKind:At("task_kind"),payload:zt("payload"),claimedBy:At("claimed_by"),claimedAt:Be("claimed_at",{withTimezone:!0}),leaseExpiresAt:Be("lease_expires_at",{withTimezone:!0}),leaseRecoveries:Bn("lease_recoveries").notNull().default(0),createdAt:Be("created_at",{withTimezone:!0}).defaultNow(),updatedAt:Be("updated_at",{withTimezone:!0}).defaultNow(),completedAt:Be("completed_at",{withTimezone:!0})},e=>[jt("idx_eval_jobs_user").on(e.userId),jt("idx_eval_jobs_target").on(e.evalTargetId),jt("idx_eval_jobs_status").on(e.status),jt("idx_eval_jobs_pending").on(e.userId,e.status)]);import{pgTable as vi,text as Ve,timestamp as Ge,jsonb as Vn,uuid as Gn,integer as Fn,index as Jn}from"drizzle-orm/pg-core";var $n=vi("agent_jobs",{id:Gn("id").primaryKey().defaultRandom(),userId:Gn("user_id").notNull(),taskKind:Ve("task_kind").notNull(),status:Ve("status").notNull().default("pending"),payload:Vn("payload").notNull(),dedupeKey:Ve("dedupe_key"),result:Vn("result"),error:Ve("error"),attempts:Fn("attempts").notNull().default(0),claimedBy:Ve("claimed_by"),claimedAt:Ge("claimed_at",{withTimezone:!0}),leaseExpiresAt:Ge("lease_expires_at",{withTimezone:!0}),leaseRecoveries:Fn("lease_recoveries").notNull().default(0),createdAt:Ge("created_at",{withTimezone:!0}).notNull().defaultNow(),updatedAt:Ge("updated_at",{withTimezone:!0}).notNull().defaultNow(),completedAt:Ge("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 Ii,text as Fe,timestamp as Je,jsonb as Dt,uuid as ho,index as Rt,integer as Yn}from"drizzle-orm/pg-core";var Qn=Ii("insights_jobs",{id:ho("id").primaryKey().defaultRandom(),userId:ho("user_id").notNull(),status:Fe("status").notNull().default("pending"),projectPath:Fe("project_path"),projectId:ho("project_id").references(()=>s.id,{onDelete:"set null"}),config:Dt("config").notNull().default({}),progress:Dt("progress").notNull().default({}),result:Dt("result"),error:Fe("error"),attempts:Yn("attempts").notNull().default(0),taskKind:Fe("task_kind"),payload:Dt("payload"),claimedBy:Fe("claimed_by"),claimedAt:Je("claimed_at",{withTimezone:!0}),leaseExpiresAt:Je("lease_expires_at",{withTimezone:!0}),leaseRecoveries:Yn("lease_recoveries").notNull().default(0),createdAt:Je("created_at",{withTimezone:!0}).defaultNow(),updatedAt:Je("updated_at",{withTimezone:!0}).defaultNow(),completedAt:Je("completed_at",{withTimezone:!0})},e=>[Rt("idx_insights_jobs_user").on(e.userId),Rt("idx_insights_jobs_status").on(e.status),Rt("idx_insights_jobs_pending").on(e.userId,e.status),Rt("idx_insights_jobs_project").on(e.projectId)]);import{pgTable as yi,text as vo,timestamp as kt,uuid as Wn,index as Ti,uniqueIndex as wi}from"drizzle-orm/pg-core";var Ae=yi("api_keys",{id:Wn("id").primaryKey().defaultRandom(),userId:Wn("user_id").notNull().references(()=>o.id,{onDelete:"cascade"}),name:vo("name").notNull(),keyHash:vo("key_hash").notNull(),keyPrefix:vo("key_prefix").notNull(),lastUsedAt:kt("last_used_at",{withTimezone:!0}),expiresAt:kt("expires_at",{withTimezone:!0}),revokedAt:kt("revoked_at",{withTimezone:!0}),createdAt:kt("created_at",{withTimezone:!0}).defaultNow()},e=>[Ti("idx_api_keys_user").on(e.userId),wi("idx_api_keys_hash").on(e.keyHash)]);import{pgTable as Ai,text as Io,timestamp as Xn,uuid as zi,index as ji}from"drizzle-orm/pg-core";var Zn=Ai("extension_auth_codes",{code:Io("code").primaryKey(),userId:zi("user_id").notNull().references(()=>o.id,{onDelete:"cascade"}),editor:Io("editor"),email:Io("email"),expiresAt:Xn("expires_at",{withTimezone:!0}).notNull(),createdAt:Xn("created_at",{withTimezone:!0}).defaultNow()},e=>[ji("idx_ext_auth_codes_expiry").on(e.expiresAt)]);import{pgTable as Di,text as Ri,timestamp as er,jsonb as ki,uuid as yo,index as tr}from"drizzle-orm/pg-core";var ze=Di("eval_conversations",{id:yo("id").primaryKey().defaultRandom(),evalTargetId:yo("eval_target_id").notNull().references(()=>r.id,{onDelete:"cascade"}),userId:yo("user_id").notNull(),messages:ki("messages").notNull().default([]),status:Ri("status").notNull().default("active"),createdAt:er("created_at",{withTimezone:!0}).defaultNow(),updatedAt:er("updated_at",{withTimezone:!0}).defaultNow()},e=>[tr("idx_eval_conversations_target").on(e.evalTargetId),tr("idx_eval_conversations_user").on(e.userId)]);import{pgTable as Ei,text as q,timestamp as or,jsonb as bi,uuid as To}from"drizzle-orm/pg-core";var nr=Ei("skill_submissions",{id:To("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:To("submitted_by").notNull(),reviewedBy:To("reviewed_by"),reviewNote:q("review_note"),metadata:bi("metadata"),createdAt:or("created_at",{withTimezone:!0}).defaultNow(),updatedAt:or("updated_at",{withTimezone:!0}).defaultNow()});import{pgTable as Si,text as $e,timestamp as rr,jsonb as Ki,uuid as Pi,uniqueIndex as Ci,index as sr}from"drizzle-orm/pg-core";var ir=Si("harness_releases",{id:Pi("id").primaryKey().defaultRandom(),harness:$e("harness").notNull(),version:$e("version").notNull(),publishedAt:rr("published_at",{withTimezone:!0}).notNull(),title:$e("title"),body:$e("body"),categories:Ki("categories").default({}),url:$e("url"),createdAt:rr("created_at",{withTimezone:!0}).defaultNow()},e=>[Ci("idx_harness_releases_unique").on(e.harness,e.version),sr("idx_harness_releases_harness").on(e.harness),sr("idx_harness_releases_published").on(e.publishedAt)]);import{pgTable as Oi,text as je,timestamp as ar,jsonb as qi,uuid as dr,index as ur,uniqueIndex as Mi}from"drizzle-orm/pg-core";var wo=Oi("notifications",{id:dr("id").primaryKey().defaultRandom(),userId:dr("user_id").notNull(),type:je("type").notNull(),title:je("title").notNull(),body:je("body"),url:je("url"),sourceTable:je("source_table"),sourceId:je("source_id"),metadata:qi("metadata").notNull().default({}),readAt:ar("read_at",{withTimezone:!0}),createdAt:ar("created_at",{withTimezone:!0}).notNull().defaultNow()},e=>[ur("idx_notifications_user_created").on(e.userId,e.createdAt),ur("idx_notifications_user_unread").on(e.userId),Mi("idx_notifications_source_dedup").on(e.userId,e.sourceTable,e.sourceId)]);import{pgTable as Hi,text as Ye,timestamp as Qe,jsonb as Ao,uuid as zo,index as Et,integer as lr}from"drizzle-orm/pg-core";var De=Hi("launch_jobs",{id:zo("id").primaryKey().defaultRandom(),userId:zo("user_id").notNull(),tool:Ye("tool").notNull(),status:Ye("status").notNull().default("pending"),config:Ao("config").notNull().default({}),result:Ao("result"),error:Ye("error"),attempts:lr("attempts").notNull().default(0),taskKind:Ye("task_kind"),payload:Ao("payload"),claimedBy:Ye("claimed_by"),claimedAt:Qe("claimed_at",{withTimezone:!0}),leaseExpiresAt:Qe("lease_expires_at",{withTimezone:!0}),leaseRecoveries:lr("lease_recoveries").notNull().default(0),createdAt:Qe("created_at",{withTimezone:!0}).defaultNow(),updatedAt:Qe("updated_at",{withTimezone:!0}).defaultNow(),completedAt:Qe("completed_at",{withTimezone:!0}),runId:zo("run_id").references(()=>g.id,{onDelete:"set null"})},e=>[Et("idx_launch_jobs_user").on(e.userId),Et("idx_launch_jobs_status").on(e.status),Et("idx_launch_jobs_pending").on(e.userId,e.status),Et("idx_launch_jobs_run").on(e.runId)]);import{pgTable as cr,uuid as M,text as re,real as Li,timestamp as We,boolean as Ui,uniqueIndex as Bi,index as Xe}from"drizzle-orm/pg-core";var mr=["add","remove","trim"],jo=cr("instruction_suggestions",{id:M("id").primaryKey().defaultRandom(),userId:M("user_id").notNull().references(()=>o.id,{onDelete:"cascade"}),instructionId:M("instruction_id").notNull().references(()=>n.id,{onDelete:"cascade"}),projectPath:re("project_path").notNull(),projectId:M("project_id").references(()=>s.id,{onDelete:"set null"}),score:Li("score").notNull(),reason:re("reason").notNull(),kind:re("kind").$type().notNull().default("add"),generatedAt:We("generated_at",{withTimezone:!0}).notNull().defaultNow(),isStale:Ui("is_stale").notNull().default(!1),dismissedAt:We("dismissed_at",{withTimezone:!0}),acceptedAt:We("accepted_at",{withTimezone:!0}),declinedAt:We("declined_at",{withTimezone:!0}),declinedReason:re("declined_reason"),promotedToInstructionId:M("promoted_to_instruction_id").references(()=>n.id,{onDelete:"set null"})},e=>[Bi("idx_instruction_suggestions_user_project_instruction_kind").on(e.userId,e.projectPath,e.instructionId,e.kind),Xe("idx_instruction_suggestions_user_project").on(e.userId,e.projectPath),Xe("idx_instruction_suggestions_user_proj_id").on(e.userId,e.projectId),Xe("idx_instruction_suggestions_generated_at").on(e.generatedAt)]),_r=cr("instruction_suggestion_events",{id:M("id").primaryKey().defaultRandom(),suggestionId:M("suggestion_id").notNull().references(()=>jo.id,{onDelete:"cascade"}),userId:M("user_id").notNull().references(()=>o.id,{onDelete:"cascade"}),eventType:re("event_type").notNull(),tool:re("tool"),sessionId:M("session_id"),projectPath:re("project_path").notNull(),createdAt:We("created_at",{withTimezone:!0}).notNull().defaultNow()},e=>[Xe("idx_instruction_suggestion_events_suggestion_id").on(e.suggestionId),Xe("idx_instruction_suggestion_events_user_id").on(e.userId)]);import{pgTable as Vi,text as Do,integer as Gi,numeric as Ze,timestamp as Ro,index as Fi,primaryKey as Ji}from"drizzle-orm/pg-core";var pr=Vi("model_pricing",{provider:Do("provider").notNull(),modelId:Do("model_id").notNull(),inputPerM:Ze("input_per_m").notNull(),outputPerM:Ze("output_per_m").notNull(),cacheReadPerM:Ze("cache_read_per_m").notNull(),cacheWrite5mPerM:Ze("cache_write_5m_per_m").notNull(),cacheWrite1hPerM:Ze("cache_write_1h_per_m").notNull(),contextWindow:Gi("context_window"),effectiveFrom:Ro("effective_from",{withTimezone:!0}).notNull(),effectiveUntil:Ro("effective_until",{withTimezone:!0}),source:Do("source").notNull(),verifiedAt:Ro("verified_at",{withTimezone:!0})},e=>[Ji({columns:[e.provider,e.modelId,e.effectiveFrom]}),Fi("idx_model_pricing_active").on(e.provider,e.modelId,e.effectiveFrom.desc())]);import{pgTable as $i,text as se,numeric as fr,timestamp as xr,uuid as Nr,jsonb as Yi,index as gr}from"drizzle-orm/pg-core";var hr=$i("limit_observations",{id:Nr("id").primaryKey().defaultRandom(),observedAt:xr("observed_at",{withTimezone:!0}).notNull().defaultNow(),provider:se("provider").notNull(),plan:se("plan").notNull(),limitType:se("limit_type").notNull(),value:fr("value").notNull(),unit:se("unit").notNull(),comparator:se("comparator").notNull().default("="),resetsAt:xr("resets_at",{withTimezone:!0}),sourceType:se("source_type").notNull(),sourceUrl:se("source_url"),sourceEvidence:Yi("source_evidence"),confidence:fr("confidence").notNull(),userId:Nr("user_id")},e=>[gr("idx_limit_obs_lookup").on(e.provider,e.plan,e.limitType,e.observedAt.desc()),gr("idx_limit_obs_user").on(e.userId,e.observedAt.desc())]);import{pgTable as Qi,text as bt,timestamp as Wi,uuid as Xi,jsonb as Zi,boolean as ea,uniqueIndex as ta}from"drizzle-orm/pg-core";var vr=Qi("provider_docs_snapshots",{id:Xi("id").primaryKey().defaultRandom(),fetchedAt:Wi("fetched_at",{withTimezone:!0}).notNull().defaultNow(),provider:bt("provider").notNull(),docUrl:bt("doc_url").notNull(),contentHash:bt("content_hash").notNull(),content:bt("content").notNull(),parseSuccess:ea("parse_success").notNull(),parseErrors:Zi("parse_errors")},e=>[ta("idx_docs_dedup").on(e.provider,e.docUrl,e.contentHash)]);import{pgTable as oa,text as St,numeric as Ir,timestamp as yr,uuid as na,primaryKey as ra,index as sa}from"drizzle-orm/pg-core";var Tr=oa("plan_limits_active",{provider:St("provider").notNull(),plan:St("plan").notNull(),limitType:St("limit_type").notNull(),value:Ir("value").notNull(),unit:St("unit").notNull(),effectiveFrom:yr("effective_from",{withTimezone:!0}).notNull(),effectiveUntil:yr("effective_until",{withTimezone:!0}),confidence:Ir("confidence").notNull(),sourceObservationIds:na("source_observation_ids").array().notNull()},e=>[ra({columns:[e.provider,e.plan,e.limitType,e.effectiveFrom]}),sa("idx_plan_limits_lookup").on(e.provider,e.plan,e.limitType,e.effectiveFrom.desc())]);import{pgTable as ia,text as ko,timestamp as aa,uuid as wr,jsonb as da,index as ua}from"drizzle-orm/pg-core";var Ar=ia("alert_dispatches",{id:wr("id").primaryKey().defaultRandom(),userId:wr("user_id").notNull(),alertKey:ko("alert_key").notNull(),severity:ko("severity").notNull(),lastDispatchedAt:aa("last_dispatched_at",{withTimezone:!0}).notNull().defaultNow(),lastState:da("last_state").notNull(),channel:ko("channel").notNull()},e=>[ua("idx_alert_user_key").on(e.userId,e.alertKey,e.lastDispatchedAt.desc())]);import{pgTable as la,text as Eo,timestamp as zr,uuid as bo,integer as ca,index as ma,unique as _a}from"drizzle-orm/pg-core";var jr=la("scaffolding_fingerprints",{id:bo("id").primaryKey().defaultRandom(),userId:bo("user_id").notNull(),harness:Eo("harness").notNull(),model:Eo("model").notNull(),toolsHash:Eo("tools_hash").notNull(),firstSeenAt:zr("first_seen_at",{withTimezone:!0}).notNull().defaultNow(),lastSeenAt:zr("last_seen_at",{withTimezone:!0}).notNull().defaultNow(),snapshotCount:ca("snapshot_count").notNull().default(1),firstSessionId:bo("first_session_id")},e=>[_a("scaffolding_fingerprints_user_id_harness_model_tools_hash_key").on(e.userId,e.harness,e.model,e.toolsHash),ma("idx_scaffolding_fp_segment").on(e.userId,e.harness,e.model)]);import{pgTable as pa,text as So,timestamp as fa,jsonb as xa,uuid as Dr,integer as Na,unique as ga}from"drizzle-orm/pg-core";var Rr=pa("scaffolding_segments",{id:Dr("id").primaryKey().defaultRandom(),userId:Dr("user_id").notNull(),harness:So("harness").notNull(),model:So("model").notNull(),coreNames:xa("core_names").notNull(),coreHash:So("core_hash").notNull(),activeFingerprints:Na("active_fingerprints").notNull(),computedAt:fa("computed_at",{withTimezone:!0}).notNull().defaultNow()},e=>[ga("scaffolding_segments_user_id_harness_model_key").on(e.userId,e.harness,e.model)]);import{drizzle as Kr}from"drizzle-orm/postgres-js";import Pr from"postgres";var Kt={};Zr(Kt,{SUGGESTION_KINDS:()=>mr,agentJobs:()=>$n,agentRuns:()=>g,agentRunsRelations:()=>Sa,alertDispatches:()=>Ar,announcementDeliveries:()=>Uo,announcements:()=>Lo,apiKeys:()=>Ae,apiKeysRelations:()=>va,benchmarks:()=>ve,benchmarksRelations:()=>Ga,cliErrorEvents:()=>En,cliSetupEvents:()=>Rn,contentBlobs:()=>Un,contextSnapshots:()=>$,contextSnapshotsRelations:()=>Qa,evalComparisons:()=>Sn,evalConversations:()=>ze,evalConversationsRelations:()=>Ya,evalGradeAnnotations:()=>Kn,evalJobs:()=>we,evalJobsRelations:()=>$a,evalRuns:()=>k,evalRunsRelations:()=>Va,evalTargets:()=>r,evalTargetsRelations:()=>Ua,evals:()=>C,evalsRelations:()=>Ba,extensionAuthCodes:()=>Zn,harnessReleases:()=>ir,insightRecommendationLog:()=>mn,insightsJobs:()=>Qn,instructionEvents:()=>ce,instructionEventsRelations:()=>ja,instructionExperimentArms:()=>un,instructionExperiments:()=>Ke,instructionPromotions:()=>Cn,instructionSuggestionEvents:()=>_r,instructionSuggestions:()=>jo,instructionUsageEvents:()=>he,instructionUsageEventsRelations:()=>La,instructionVerdicts:()=>cn,instructionVersionIdentities:()=>Yo,instructionVersions:()=>le,instructionVersionsRelations:()=>Ra,instructions:()=>n,instructionsRelations:()=>za,judgeReviewerVerdicts:()=>Pn,launchJobs:()=>De,launchJobsRelations:()=>Ka,limitObservations:()=>hr,memories:()=>T,memoriesRelations:()=>Da,memoryExperiments:()=>xn,modelPricing:()=>pr,notificationPreferences:()=>Bo,notifications:()=>wo,optimizationRuns:()=>Te,optimizationRunsRelations:()=>Ja,orgInvitations:()=>E,orgInvitationsRelations:()=>Ta,organizations:()=>u,organizationsRelations:()=>Ia,packInstructions:()=>F,packInstructionsRelations:()=>Ha,packs:()=>z,packsRelations:()=>Ma,pendingTreatmentExposures:()=>sn,planLimitsActive:()=>Tr,profiles:()=>o,profilesRelations:()=>ha,projectCheckouts:()=>Xo,projectInstructions:()=>U,projectInstructionsRelations:()=>Ea,projects:()=>s,projectsRelations:()=>ka,providerDocsSnapshots:()=>vr,scaffoldingFingerprints:()=>jr,scaffoldingSegments:()=>Rr,sessionEvents:()=>_e,sessionEventsRelations:()=>Pa,sessionInstructions:()=>B,sessionInstructionsRelations:()=>Ca,sessionSendJobs:()=>vn,sessionTerminalTargets:()=>xt,sessions:()=>d,sessionsRelations:()=>ba,skillSubmissions:()=>nr,teams:()=>v,teamsRelations:()=>ya,treatmentAssignments:()=>S,treatmentAssignmentsRelations:()=>Oa,treatmentExposures:()=>K,treatmentExposuresRelations:()=>qa,triggerEvals:()=>ye,triggerEvalsRelations:()=>Fa,userOrganizations:()=>de,userOrganizationsRelations:()=>wa,userTeams:()=>ue,userTeamsRelations:()=>Aa,workerConnections:()=>zn});import{relations as i}from"drizzle-orm";var ha=i(o,({many:e})=>({sessions:e(d),contextSnapshots:e($),apiKeys:e(Ae)})),va=i(Ae,({one:e})=>({profile:e(o,{fields:[Ae.userId],references:[o.id]})})),Ia=i(u,({many:e})=>({teams:e(v),userOrganizations:e(de),projects:e(s),invitations:e(E)})),ya=i(v,({one:e,many:t})=>({organization:e(u,{fields:[v.orgId],references:[u.id]}),userTeams:t(ue),invitations:t(E)})),Ta=i(E,({one:e})=>({organization:e(u,{fields:[E.orgId],references:[u.id]}),team:e(v,{fields:[E.teamId],references:[v.id]}),inviter:e(o,{fields:[E.invitedBy],references:[o.id]})})),wa=i(de,({one:e})=>({organization:e(u,{fields:[de.orgId],references:[u.id]})})),Aa=i(ue,({one:e})=>({team:e(v,{fields:[ue.teamId],references:[v.id]})})),za=i(n,({one:e,many:t})=>({versions:t(le),projectInstructions:t(U),events:t(ce),usageEvents:t(he),sessionInstructions:t(B),packInstructions:t(F),forkedFrom:e(n,{fields:[n.forkedFromId],references:[n.id]})})),ja=i(ce,({one:e})=>({instruction:e(n,{fields:[ce.instructionId],references:[n.id]})})),Da=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)})),Ra=i(le,({one:e})=>({instruction:e(n,{fields:[le.instructionId],references:[n.id]})})),ka=i(s,({one:e,many:t})=>({organization:e(u,{fields:[s.orgId],references:[u.id]}),projectInstructions:t(U),sessions:t(d)})),Ea=i(U,({one:e})=>({project:e(s,{fields:[U.projectId],references:[s.id]}),instruction:e(n,{fields:[U.instructionId],references:[n.id]})})),ba=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(_e),sessionInstructions:t(B),treatmentExposures:t(K),contextSnapshots:t($)})),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(De)})),Ka=i(De,({one:e})=>({run:e(g,{fields:[De.runId],references:[g.id]})})),Pa=i(_e,({one:e})=>({session:e(d,{fields:[_e.sessionId],references:[d.id]})})),Ca=i(B,({one:e})=>({session:e(d,{fields:[B.sessionId],references:[d.id]}),instruction:e(n,{fields:[B.instructionId],references:[n.id]})})),Oa=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)})),qa=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]})})),Ma=i(z,({one:e,many:t})=>({packInstructions:t(F),forkedFrom:e(z,{fields:[z.forkedFromId],references:[z.id]})})),Ha=i(F,({one:e})=>({pack:e(z,{fields:[F.packId],references:[z.id]}),instruction:e(n,{fields:[F.instructionId],references:[n.id]})})),La=i(he,({one:e})=>({instruction:e(n,{fields:[he.instructionId],references:[n.id]})})),Ua=i(r,({one:e,many:t})=>({parent:e(r,{fields:[r.parentId],references:[r.id]}),evals:t(C),evalRuns:t(k),benchmarks:t(ve),triggerEvals:t(ye),optimizationRuns:t(Te),evalJobs:t(we),evalConversations:t(ze)})),Ba=i(C,({one:e,many:t})=>({evalTarget:e(r,{fields:[C.evalTargetId],references:[r.id]}),runs:t(k)})),Va=i(k,({one:e})=>({eval:e(C,{fields:[k.evalId],references:[C.id]}),evalTarget:e(r,{fields:[k.evalTargetId],references:[r.id]})})),Ga=i(ve,({one:e})=>({evalTarget:e(r,{fields:[ve.evalTargetId],references:[r.id]})})),Fa=i(ye,({one:e})=>({evalTarget:e(r,{fields:[ye.evalTargetId],references:[r.id]})})),Ja=i(Te,({one:e})=>({evalTarget:e(r,{fields:[Te.evalTargetId],references:[r.id]})})),$a=i(we,({one:e})=>({evalTarget:e(r,{fields:[we.evalTargetId],references:[r.id]})})),Ya=i(ze,({one:e})=>({evalTarget:e(r,{fields:[ze.evalTargetId],references:[r.id]})})),Qa=i($,({one:e})=>({session:e(d,{fields:[$.sessionId],references:[d.id]}),profile:e(o,{fields:[$.userId],references:[o.id]})}));var et=0,kr=0,tt=0,Er=0;var Wa=0;function Ko(){et++,et>kr&&(kr=et)}p(Ko,"trackDbOpStart");function Po(){et>0&&et--}p(Po,"trackDbOpEnd");function Co(){tt++,tt>Er&&(Er=tt)}p(Co,"trackHeavyDbOpStart");function Oo(){tt>0&&tt--}p(Oo,"trackHeavyDbOpEnd");function br(){Wa++}p(br,"recordQueryDeadline");var Ct,qt,qo=!1,Pt;var Sr,Mt,Ot;function Cr(e){let t=process.env[e];if(!t)throw new Error(`Missing required env var: ${e}`);return t}p(Cr,"getEnv");function Or(){if(qo)throw new Error("getDb() called after closeDb(): the connection pool is closed for shutdown. Stop issuing queries (timers/requests) before draining the pool.");if(!Ct){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;qt=Pr(Cr("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}:{}}}),Ct=Kr(qt,{schema:Kt})}return Ct}p(Or,"getDb");function qr(){if(qo)throw new Error("getHeavyDb() called after closeDb(): the connection pool is closed for shutdown. Stop issuing queries (timers/requests) before draining the pool.");if(!Ot){let e=(process.env.PG_APPLICATION_NAME||"rulemetric")+":heavy",t=Number(process.env.PG_HEAVY_POOL_MAX)||2;Mt=Pr(Cr("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}}),Ot=Kr(Mt,{schema:Kt})}return Ot}p(qr,"getHeavyDb");async function Xa(){if(Pt)return Pt;qo=!0;let e=qt,t=Sr,a=Mt;return qt=void 0,Ct=void 0,Sr=void 0,Mt=void 0,Ot=void 0,Pt=Promise.allSettled([e?e.end({timeout:5}):Promise.resolve(),t?t.end({timeout:5}):Promise.resolve(),a?a.end({timeout:5}):Promise.resolve()]).then(()=>{}),Pt}p(Xa,"closeDb");var Za=new Set(["CONNECT_TIMEOUT","ETIMEDOUT","ENOTFOUND","ECONNREFUSED","EAI_AGAIN"]);function Mr(e){let t=e,a=t?.code??t?.cause?.code??t?.errno;return a!==void 0&&Za.has(a)}p(Mr,"isRetryableConnectError");var ed=new Set(["CONNECTION_CLOSED","ECONNRESET","EPIPE"]);function Hr(e){let t=e,a=t?.code??t?.cause?.code??t?.errno;return a!==void 0&&ed.has(a)}p(Hr,"isRetryableResetError");async function Lr(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 Re=Mr(y)||t.retryResets===!0&&Hr(y);if(f===a-1||!Re)throw y;await new Promise(Y=>setTimeout(Y,l*2**f))}throw _}p(Lr,"withDbRetry");var Ht=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 Ur(){let e=Number(process.env.PG_QUERY_DEADLINE_MS);return Number.isFinite(e)&&e>=0?e:2e4}p(Ur,"queryDeadlineMs");function td(e,t){let a,l=new Promise((_,f)=>{a=setTimeout(()=>{br(),f(new Ht(t))},t);let y=a;typeof y.unref=="function"&&y.unref()});return Promise.race([e,l]).finally(()=>clearTimeout(a))}p(td,"raceWithDeadline");var Br=new Set(["select","selectDistinct","selectDistinctOn","insert","update","delete","execute","with","$count","refreshMaterializedView"]),Vr=new Set(["select","selectDistinct","selectDistinctOn","$count"]);function Mo(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:(Jr,$r)=>{let Yr=l?Co:Ko,Qr=l?Oo:Po;Yr();let Ho=Lr(()=>new Promise((Wr,Xr)=>Y.call(_,Wr,Xr)),{retryResets:t});return(a>0?td(Ho,a):Ho).finally(Qr).then(Jr,$r)}}let Re=Reflect.get(_,f,y);return typeof Re=="function"?(...Y)=>Mo(Re.apply(_,Y),t,a,l):Re}})}p(Mo,"wrapBuilder");function Gr(e,t=!1){let a=t?Co:Ko,l=t?Oo:Po;a();try{return Promise.resolve(e()).finally(l)}catch(_){throw l(),_}}p(Gr,"gaugeTransaction");var Fr=new Proxy({},{get(e,t){let a=Or(),l=a[t];if(typeof t=="string"&&Br.has(t)&&typeof l=="function"){let _=Vr.has(t),f=Ur();return(...y)=>Mo(l.apply(a,y),_,f)}return t==="transaction"&&typeof l=="function"?(..._)=>Gr(()=>l.apply(a,_)):l}}),od=new Proxy({},{get(e,t){let a=qr(),l=a[t];if(typeof t=="string"&&Br.has(t)&&typeof l=="function"){let _=Vr.has(t);return(...f)=>Mo(l.apply(a,f),_,0,!0)}return t==="transaction"&&typeof l=="function"?(..._)=>Gr(()=>l.apply(a,_),!0):l}});export{Lo as a,Or as b,Xa as c};
|
package/dist/chunk-A4FYFRN7.js
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{g as re}from"./chunk-XJYNMJHH.js";import{b as z,i as K,j as Q,k as Z,l as ee,m as te,n as ne}from"./chunk-BL4BN6RU.js";import{e as oe}from"./chunk-DBELYMDA.js";import{d as J,e as L,f as Y}from"./chunk-G5BXZT6F.js";import{e as y,f as V}from"./chunk-KLEF5D3A.js";import{a as c}from"./chunk-ZLLER3HP.js";import{createHash as de}from"node:crypto";var N=c(e=>de("sha256").update(e).digest("hex"),"sha256"),ie=1.3,j=4,ge=20;function me(e,a){if(!e.configured||a<=0)return j;let n=Math.ceil(e.minPairs*ie/a);return Math.min(ge,Math.max(j,n))}c(me,"passCapFor");function fe(e,a=10,n=j){if(e<=0)return{passes:0,expectedPairs:0,feasible:!1,reason:"no live cases"};let l=Math.ceil(a*ie),t=Math.min(n,Math.ceil(l/e)),o=t*e;return o<a?{passes:t,expectedPairs:o,feasible:!1,reason:`${e} live case(s) x ${n} passes = ${e*n} pairs at best, below the ${a} a controlled verdict requires \u2014 add cases rather than replaying these`}:{passes:t,expectedPairs:o,feasible:!0}}c(fe,"planPasses");var he=60,be=c(e=>typeof e=="object"&&e!==null&&typeof e.withScore=="number"&&typeof e.withoutScore=="number","isPair");function Pe(e,a,n){let l=[...e].sort((t,o)=>Date.parse(o.createdAt)-Date.parse(t.createdAt));for(let t of l){if(t.applied)continue;let o=t.gates?.accumulation;if(!o||typeof o!="object"||o.priorContentHash!==a||o.targetPairs!==n||typeof o.candidateContentHash!="string"||!Array.isArray(o.pairs))continue;let r=o.pairs.filter(be);if(r.length===o.pairs.length&&!(r.length>=n))return{promotionId:t.id,candidateContentHash:o.candidateContentHash,pairs:r,runs:typeof o.runs=="number"?o.runs:1}}return null}c(Pe,"findOpenAccumulation");var we=5,ae=c(e=>Array.isArray(e)?e.filter(a=>typeof a=="string"):[],"stringList"),D=c(e=>typeof e=="number"&&Number.isFinite(e)?e:null,"finite");function $e(e,a,n=we){let l=[...e].filter(r=>r.fromContentHash===a).sort((r,b)=>Date.parse(b.createdAt)-Date.parse(r.createdAt)),t=[],o=new Set;for(let r of l){let b=r.toContentHash??r.id;if(o.has(b))continue;o.add(b);let g=r.verdict??null,I=D(g?.delta),m=D(g?.ci?.lower),P=D(g?.ci?.upper),u=D(g?.nWith),S=g?.sufficient===!0&&I!=null&&m!=null&&P!=null&&u!=null?{delta:I,ciLower:m,ciUpper:P,nPairs:u}:null;if(t.push({decision:typeof r.decision=="string"?r.decision:"unknown",applied:r.applied===!0,at:typeof r.createdAt=="string"?r.createdAt:"",rationale:typeof r.proposalRationale=="string"?r.proposalRationale:"",touched:ae(r.touchedSections),refusals:ae(r.refusals),measured:S}),t.length>=n)break}return t}c($e,"summarisePriorDecisions");function ve(e,a){let n=a.accumulate??(e.autoEvolveAccumulate===!0||e.autoEvolveAccumulate==="true"),l=a.accumulateTargetPairs??e.autoEvolveAccumulateTarget,t=typeof l=="string"?Number.parseInt(l,10):l,o=typeof t=="number"&&Number.isInteger(t)&&t>0?t:he;return{enabled:n,targetPairs:o}}c(ve,"readAccumulateConfig");function ye(e){let a=e.accumulateEnabled&&e.pairCount<e.targetPairs;return{apply:e.consented&&!a,peeking:a}}c(ye,"resolveApply");async function Ie(e,a){let n=c(i=>a?.logger?.info?.(i)??console.log(i),"log"),{evalTargetId:l}=e,t=`[cron_instruction_evolution] ${l}`,o=await y(`/api/eval-targets/${l}`),r=o.metadata??{};if(Q(r))return n(`${t}: PAUSED (metadata.autoEvolvePaused) \u2014 no model budget spent. Opt-in is intact.`),{skipped:"paused"};let b=e.apply??(r.autoEvolveApply===!0||r.autoEvolveApply==="true"),g=Ce(r);if(g==null){if(b)return n(`${t}: 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"};n(`${t}: metadata.immutableSections unset \u2014 measure-only cycle proceeds with [] (nothing protected). Writing still requires setting it explicitly.`),g=[]}let m=(await y(`/api/eval-targets/${l}/evals`)).filter(i=>!i.retiredAt);if(m.length===0)return{skipped:"no-live-cases"};let P=K(r);P.note&&n(`${t}: ${P.note}`);let u=fe(m.length,P.minPairs,me(P,m.length));if(!u.feasible)return n(`${t}: cannot reach a sufficient verdict \u2014 ${u.reason}`),{skipped:"cannot-reach-min-n",reason:u.reason};let S=Z({liveCases:m.length,passes:u.passes});n(`${t}: budget for this run \u2014 ${ne(S)}`);let H=await y(`/api/eval-targets/${l}/judge-calibration`);if(!H.powerCheck.adequate){let i=(H.powerCheck.reasons??[]).join("; ");return n(`${t}: not adequately powered, skipping before spending budget \u2014 ${i}`),{skipped:"not-adequate",reason:i}}let U=Y,se=Date.now()-U*24*60*60*1e3,_=await y(`/api/eval-targets/${l}/promotions?limit=200`),W=_.promotions.filter(i=>i.applied&&Date.parse(i.createdAt)>=se).length;if(W>=L)return n(`${t}: change budget looks exhausted (${W}/${L} applied in ${U}d), skipping before spending budget`),{skipped:"budget-exhausted"};let E=J();if(!E.green)return n(`${t}: A/A canary is RED \u2014 halting. ${E.failures.join(" | ")}`),{skipped:"canary-red",reason:E.failures.join(" | ")};let F=o.content,x=N(F),p=ve(r,e),w=p.enabled?Pe(_.promotions,x,p.targetPairs):null,C,M,A=[],R=0,q=z;if(w){let i=await y(`/api/promotions/${w.promotionId}`);if(N(i.toContent)!==w.candidateContentHash)return n(`${t}: stored candidate does not match its recorded hash \u2014 refusing to continue`),{skipped:"accumulation-hash-mismatch",reason:w.promotionId};C=i.toContent,M=i.proposalRationale??"",A=w.pairs,R=w.runs,q=0,n(`${t}: continuing accumulation ${w.promotionId} \u2014 ${A.length}/${p.targetPairs} pair(s) carried from ${R} prior run(s)`)}else{let i=H.caseDiscrimination?.cases??[],d=[];try{d=$e(_.promotions,x)}catch(s){n(`${t}: could not summarise prior decisions (${s instanceof Error?s.message:String(s)}) \u2014 proposing without them`)}d.length>0&&n(`${t}: proposer sees ${d.length} prior decision(s) against this exact body (${d.map(s=>`${s.decision}${s.measured?"/measured":""}`).join(", ")})`);let k=await re({currentContent:o.content,targetType:o.type,targetName:o.name,immutableSections:g,evidence:{nonDiscriminating:i.filter(s=>!s.discriminating).map(s=>`${s.name??s.assertion??"unnamed"} \u2014 ${s.note}`),weakest:i.filter(s=>s.discriminating&&s.withPassRate<s.withoutPassRate).map(s=>({name:s.name??s.assertion??"unnamed",withPassRate:s.withPassRate,withoutPassRate:s.withoutPassRate})),priorDecisions:d,notes:[]}});if(!k.ok)return n(`${t}: no usable proposal \u2014 ${k.reason}`),{skipped:"no-proposal",reason:k.reason};C=k.proposal.candidateContent,M=k.proposal.rationale}n(`${t}: measuring ${m.length} case(s) x ${u.passes} pass(es) = up to ${u.expectedPairs} pairs, candidate vs prior version`);let $=[],G=[],le=Date.now(),B=0,O=0;for(let i=1;i<=u.passes;i++){let d=await oe({cases:m,candidateContent:C,priorVersionContent:F,concurrency:e.concurrency??2,runNumber:i,opts:{targetId:l,targetVersion:o.version??1,iteration:1,timeout:e.timeout??24e4,model:e.model,graderModel:e.graderModel,skipGrading:!1,targetType:o.type,targetName:o.name},onLog:n});$.push(...d.pairs),G.push(...d.results),B+=d.completed,O+=d.failed,n(`${t}: pass ${i}/${u.passes} \u2014 ${d.pairs.length} pair(s), running total ${$.length}`)}let v=[...A,...$],T=$.length>0,f=ee({runs:G,plannedPairs:u.expectedPairs,usablePairs:$.length,verdictPairs:T?v.length:$.length,proposalCalls:q,passes:u.passes,liveCases:m.length,wallMs:Date.now()-le});if(n(`${t}: ${B} completed, ${O} failed, ${$.length} usable pair(s) \u2014 spent ~${f.modelCalls} model calls (${f.proposalCalls} proposal + ${f.executorCalls} executor + >=${f.graderCalls} grader) in ${(f.wallMs/6e4).toFixed(1)} min`+(T?`; the ${f.verdictPairs} pair(s) behind this verdict resolve +/-${te(f.mde)} at 80% power`:"")),!T)return{skipped:"no-pairs",reason:`${O} run(s) failed or were ungradeable`,cost:f};p.enabled&&n(`${t}: accumulated ${v.length}/${p.targetPairs} pair(s) over ${R+1} run(s) on one candidate`);let X=b,{apply:ce,peeking:ue}=ye({consented:X,accumulateEnabled:p.enabled,pairCount:v.length,targetPairs:p.targetPairs});X&&ue&&n(`${t}: interim readout at ${v.length}/${p.targetPairs} pairs \u2014 recording the decision but not acting until the target is reached`);let h=await V(`/api/eval-targets/${l}/promotions`,{candidateContent:C,proposalSource:"llm",proposalRationale:M,pairs:v,canaryGreen:E.green,measuredAgainstContentHash:x,immutableSections:g,apply:ce,measurementCost:f,...p.enabled?{accumulation:{candidateContentHash:N(C),priorContentHash:x,targetPairs:p.targetPairs,carriedPairs:A.length,runs:R+1}}:{}});return n(`${t}: ${h.decision}${h.applied?" (APPLIED)":""} \u2014 ${h.rationale}`+(h.refusals.length>0?` | refusals: ${h.refusals.join("; ")}`:"")),{decision:h.decision,applied:h.applied,nPairs:v.length,promotionId:h.id,cost:f,...p.enabled?{carriedPairs:A.length,accumulationRuns:R+1}:{}}}c(Ie,"cronInstructionEvolution");function Ce(e){let a=e.immutableSections;return a==null||!Array.isArray(a)?null:a.filter(n=>typeof n=="string")}c(Ce,"readImmutableSections");export{ie as a,j as b,ge as c,me as d,fe as e,he as f,Pe as g,we as h,$e as i,ve as j,ye as k,Ie as l,Ce as m};
|
package/dist/chunk-ATL4WZBF.js
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{e as $}from"./chunk-L2CFSMBC.js";import{a as v}from"./chunk-4L2ZEIRE.js";import{c as f}from"./chunk-HMMO27U4.js";import{f as p}from"./chunk-KLEF5D3A.js";import{a as m}from"./chunk-ZLLER3HP.js";async function x(c,e,s=()=>{}){let{eval_:r,configuration:i,targetContent:g,runNumber:o}=c;s(`[${i}] ${r.name} run#${o} \u2014 executing...`);let n=$({targetType:e.targetType,targetContent:g,targetName:e.targetName}),d={methodology:n.methodology,delivery:n.delivery,isolated:n.isWorktree,...n.leakedFiles.length?{leakedFiles:n.leakedFiles}:{}};n.isWorktree||s(`[${i}] ${r.name} run#${o} \u2014 \u26A0 no git worktree; running without repo context`),n.leakedFiles.length&&s(`[${i}] ${r.name} run#${o} \u2014 \u26A0 CONTAMINATED: ${n.leakedFiles.join(", ")} survived the strip`);try{let a=await f({prompt:r.prompt,targetContent:n.systemPrompt,workDir:n.workDir,timeout:e.timeout,model:e.model});if(a.error)return s(`[${i}] ${r.name} run#${o} \u2014 FAILED: ${a.error}`),{evalId:r.id,evalTargetId:e.targetId,evalTargetVersion:e.targetVersion,configuration:i,runNumber:o,iteration:e.iteration,status:"failed",outputs:{error:a.error,...d},timing:{duration_ms:a.durationMs,total_tokens:a.totalTokens},grading:{}};s(`[${i}] ${r.name} run#${o} \u2014 completed in ${(a.durationMs/1e3).toFixed(1)}s`);let u={};if(!e.skipGrading&&r.expectations.length>0){s(`[${i}] ${r.name} run#${o} \u2014 grading...`);let t=await v({prompt:r.prompt,output:a.output,expectations:r.expectations,model:e.graderModel??e.model,timeout:e.timeout});u=t,s(`[${i}] ${r.name} run#${o} \u2014 grading done: pass_rate=${t.summary.pass_rate==null?"n/a (all assertions errored)":`${(t.summary.pass_rate*100).toFixed(0)}%`}`)}return{evalId:r.id,evalTargetId:e.targetId,evalTargetVersion:e.targetVersion,configuration:i,runNumber:o,iteration:e.iteration,status:"completed",outputs:{transcript:a.output,...d},timing:{duration_ms:a.durationMs,total_tokens:a.totalTokens,total_duration_seconds:a.durationMs/1e3},grading:u}}finally{n.cleanup()}}m(x,"executeAndGradeCase");async function _(c){let{cases:e,targetContent:s,concurrency:r,runNumber:i,opts:g,skipBaseline:o,onLog:n=m(()=>{},"onLog")}=c,d=o?["with_target"]:["with_target","without_target"],a=[];for(let t of e)for(let l of d)a.push({eval_:t,configuration:l,targetContent:l==="with_target"?s:void 0,runNumber:i});let u=[];for(let t=0;t<a.length;t+=Math.max(1,r)){let l=a.slice(t,t+Math.max(1,r)),k=await Promise.all(l.map(b=>x(b,g,n)));u.push(...k)}for(let t of u)try{await p("/api/eval-runs",t)}catch(l){n(` \u26A0 failed to post a run result: ${l instanceof Error?l.message:String(l)}`)}try{await p(`/api/eval-targets/${g.targetId}/label-state`,{})}catch(t){n(` \u26A0 label-state notification skipped: ${t instanceof Error?t.message:String(t)}`)}return{completed:u.filter(t=>t.status==="completed").length,failed:u.filter(t=>t.status==="failed").length,results:u}}m(_,"runBatchAndPost");export{x as a,_ as b};
|
package/dist/chunk-BAVLNWO4.js
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{b as J}from"./chunk-GIRPEMTW.js";import{b as F,c as G}from"./chunk-FAZMKMTC.js";import{a as _}from"./chunk-MODXEGCU.js";import{d as H,f as U}from"./chunk-B3BHB26P.js";import{e as w,f as R}from"./chunk-KLEF5D3A.js";import{a as u}from"./chunk-ZLLER3HP.js";import{readFileSync as K,realpathSync as B}from"node:fs";import y from"node:path";import x from"node:os";function W(s){let o=y.resolve(s);if(o===y.resolve(x.homedir()))return!1;let a=y.parse(o).root;if(o===a)return!1;try{let n=B(x.tmpdir());if(B(o)===n)return!1}catch{}return!0}u(W,"isScorableProjectPath");var Y=5,q=Number(process.env.RULEMETRIC_MAX_SUGGESTION_PROJECTS??10),Q=48,Z=.5,T=400,tt=3,et=.6,ot=1;function nt(s){let o=s.bloated??[],a=new Set([...s.harmful.map(n=>n.id),...s.candidates.map(n=>n.id)]);return o.filter(n=>!a.has(n.id)).slice(0,ot).map(n=>({instructionId:n.id,estimatedTokens:n.estimatedTokens,topProjectId:n.topProjectId??null,score:.55,reason:`Costs ~${n.estimatedTokens} tokens every session and measures neutral across ${n.exposures} exposed session(s) \u2014 enough data to detect an effect, and none found. Consider shortening "${n.name}" rather than removing it.`+(n.containsSafetyLanguage?" CAUTION: it contains guardrail language (destructive-command or credential rules) \u2014 preserve those lines when shortening.":"")}))}u(nt,"buildTrimProposals");async function rt(s,o,a){let n=[],i=0;for(let d of s)try{await a("/api/instruction-experiments",{instructionId:d.instructionId,projectPath:o,source:"groom"}),i++}catch(g){let m=g instanceof Error?g.message:String(g);n.push({...d,reason:`${d.reason} (not measurable by withholding: ${m})`})}return{nominated:i,unmeasurable:n}}u(rt,"nominateRemovals");function st(s){let o=[];for(let n of s.harmful){let i=n.verdict.delta;o.push({instructionId:n.id,score:Math.min(.95,.75+Math.abs(i)),topProjectId:n.topProjectId??null,reason:`Measured harmful: sessions using "${n.name}" scored ${(i*100).toFixed(1)}pp worse across ${n.exposures} exposed session(s). Observational \u2014 review before archiving.`})}let a=new Set(s.harmful.map(n=>n.id));for(let n of s.candidates)a.has(n.id)||o.push({instructionId:n.id,score:et,topProjectId:n.topProjectId??null,reason:`Unused: "${n.name}" is ${n.reason} (${n.totalExposures} lifetime exposure(s)) but still costs context budget every session.`});return o.slice(0,tt)}u(st,"buildRemovalProposals");async function at(){let s=y.join(x.homedir(),".config","rulemetric","skills-registry.json");try{let o=K(s,"utf-8"),a=JSON.parse(o);return Date.now()-new Date(a.generatedAt).getTime()>Q*60*60*1e3}catch{return!0}}u(at,"checkSkillsRegistryStale");var ft=u(async(s,o)=>{let a=H(),n=a!=="none";n?o.logger.info(`Scoring backend: ${a}`):o.logger.warn("No LLM backend available (claude CLI missing and ANTHROPIC_API_KEY unset); skipping relevance scoring. Removal/trim proposals still run \u2014 they need no LLM.");let i;try{i=(await w("/api/sessions/project-paths?limit="+q)).projectPaths}catch(t){o.logger.warn(`Failed to fetch project paths: ${t instanceof Error?t.message:String(t)}`);return}if(i.length===0){o.logger.info("No recent project paths; nothing to score");return}let d=new Map;try{let t=await w("/api/projects?limit=200");for(let e of t.projects??[])e.primaryCheckoutPath&&d.set(_(e.primaryCheckoutPath),e.id)}catch(t){o.logger.warn(`Failed to fetch projects for id resolution: ${t instanceof Error?t.message:String(t)}`)}let g=new Map;try{let t=await w(`/api/catalog?limit=200&contentPreview=${T}`);for(let e of t)g.set(e.id,{id:e.id,name:e.name,description:e.description??"",tags:e.tags??[],contentPreview:(e.contentPreview??"").slice(0,T)})}catch(t){o.logger.warn(`Failed to fetch catalog: ${t instanceof Error?t.message:String(t)}`)}try{let t=await w("/api/instructions?limit=100");for(let e of t.instructions??[])g.has(e.id)||g.set(e.id,{id:e.id,name:e.name,description:e.description??"",tags:e.tags??[],contentPreview:(e.content??"").slice(0,T)})}catch(t){o.logger.warn(`Failed to fetch personal instructions: ${t instanceof Error?t.message:String(t)}`)}let m=[],p=[];try{let t=await w("/api/insights/groom-candidates");if(!t.captureHealthy)o.logger.info(`Grooming paused: ${t.reason??"capture unhealthy"}`);else{m=st(t),p=nt(t);let e=t.safetyGuarded+t.harmfulSafetyGuarded;o.logger.info(`Removal proposals: ${m.length} (${t.harmful.length} measured-harmful, ${t.candidates.length} never-used, ${e} withheld by the safety allowlist); trim proposals: ${p.length} (${(t.bloated??[]).length} measured-neutral and expensive, ${t.trimSafetyFlagged??0} flagged as containing guardrail language)`)}}catch(t){o.logger.warn(`Failed to fetch groom candidates: ${t instanceof Error?t.message:String(t)}`)}let I=[...g.values()];if(I.length===0&&m.length===0&&p.length===0){o.logger.info("No candidate instructions and nothing to retire; nothing to score");return}o.logger.info(`Scoring ${I.length} candidates across ${i.length} project(s)`);let O=0,l=null,$=new Set;for(let t of i)try{let e=_(t);if(!W(e)){o.logger.info(`Skipping ${e}: not a project directory (home/root)`);continue}let f=J(e),S=n&&f.length>0;f.length===0&&o.logger.info(`${e}: insufficient language signals; removal/trim only`);let D={name:y.basename(e),description:null,languages:f,topics:[],dependencies:[]},v=S?G(I):[];S&&o.logger.info(`Scoring ${I.length} candidates for ${e} in ${v.length} batch(es)`);let k=[],b=0;for(let r of v)try{let c=await U(F(D,r),"",4096);if(!c){b++;continue}let C=c.recommendations??[];for(let P of C)typeof P.instructionId=="string"&&typeof P.score=="number"&&typeof P.reason=="string"&&k.push({instructionId:P.instructionId,score:P.score,reason:P.reason})}catch(c){b++,o.logger.warn(`Batch failed for ${e}: ${c instanceof Error?c.message:String(c)}`)}b>0&&o.logger.warn(`${b}/${v.length} batch(es) failed for ${e} (backend ${a}); suggestions are partial`),S&&k.length===0&&o.logger.warn(`No usable LLM output for ${e} (backend ${a})`);let X=k.filter(r=>r.score>=Z).sort((r,c)=>c.score-r.score).slice(0,Y),E=d.get(e),V=l===null||l===e;l===null&&(l=e);let M=u(r=>r.topProjectId?r.topProjectId===E:V,"placeHere"),A=m.filter(M),{nominated:L,unmeasurable:N}=await rt(A,e,R);L>0&&o.logger.info(`${e}: ${L} removal candidate(s) nominated for randomised withholding instead of the feed`);let h=[...X.map(r=>({instructionId:r.instructionId,score:r.score,reason:r.reason,kind:"add"})),...N.map(({topProjectId:r,...c})=>({...c,kind:"remove"})),...p.filter(M).map(({estimatedTokens:r,topProjectId:c,...C})=>({...C,kind:"trim"}))];if(h.length===0){o.logger.info(`Nothing to suggest for ${e}`);continue}await R("/api/instruction-suggestions/batch-upsert",{projectPath:e,...E?{projectId:E}:{},suggestions:h}),o.logger.info(`${e}: ${h.filter(r=>r.kind==="add").length} add + ${h.filter(r=>r.kind==="remove").length} remove + ${h.filter(r=>r.kind==="trim").length} trim`);for(let r of h)r.kind!=="add"&&$.add(r.instructionId);let z=new Set(N.map(r=>r.instructionId));for(let r of A)z.has(r.instructionId)||$.add(r.instructionId);O++}catch(e){o.logger.warn(`Failed to score ${t}: ${e instanceof Error?e.message:String(e)}`)}let j=[...m.filter(t=>!$.has(t.instructionId)),...p.filter(t=>!$.has(t.instructionId)).map(({estimatedTokens:t,...e})=>e)];if(j.length>0&&l)try{let t=new Set(p.map(e=>e.instructionId));await R("/api/instruction-suggestions/batch-upsert",{projectPath:l,...d.get(l)?{projectId:d.get(l)}:{},suggestions:j.map(({topProjectId:e,...f})=>({...f,kind:t.has(f.instructionId)?"trim":"remove"}))}),o.logger.info(`Orphan sweep: ${j.length} proposal(s) whose project was not scored this run placed on ${l}`)}catch(t){o.logger.warn(`Orphan sweep failed: ${t instanceof Error?t.message:String(t)}`)}if(await at())try{await R("/api/instruction-suggestions/mark-stale",{}),o.logger.warn("Skills registry is stale (>48h); marked all suggestions stale")}catch{}o.logger.info(`Done: scored ${O}/${i.length} projects`)},"cronSuggestInstructions");export{W as a,nt as b,rt as c,st as d,ft as e};
|
package/dist/chunk-DBELYMDA.js
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{a as h}from"./chunk-ATL4WZBF.js";import{f as C}from"./chunk-KLEF5D3A.js";import{a as l}from"./chunk-ZLLER3HP.js";var R="with_candidate",b="with_prior_version";function y(n){let r=n.filter(e=>e.configuration===R),i=[];for(let e of r){let o=n.find(s=>s.configuration===b&&s.evalId===e.evalId&&s.runNumber===e.runNumber);if(!o)continue;let a=v(e),d=v(o);a==null||d==null||i.push({withScore:a,withoutScore:d})}return i}l(y,"pairCandidateRuns");function v(n){return n.status!=="completed"?null:n.grading?.summary?.pass_rate??null}l(v,"evidenceOf");function x(n,r,i,e){let o=[];for(let a of n)o.push({eval_:a,configuration:R,targetContent:r,runNumber:e}),o.push({eval_:a,configuration:b,targetContent:i,runNumber:e});return o}l(x,"buildCandidateQueue");async function I(n){let{cases:r,candidateContent:i,priorVersionContent:e,concurrency:o,runNumber:a,opts:d,onLog:s=l(()=>{},"onLog")}=n,p=x(r,i,e,a),u=[],m=Math.max(1,o);for(let t=0;t<p.length;t+=m){let c=p.slice(t,t+m);u.push(...await Promise.all(c.map(E=>h(E,d,s))))}for(let t of u)try{await C("/api/eval-runs",t)}catch(c){s(` \u26A0 failed to post a run result: ${c instanceof Error?c.message:String(c)}`)}let f=y(u),g=r.length-f.length;return g>0&&s(` \u26A0 ${g}/${r.length} case(s) produced no usable pair (failed or ungradeable arm)`),{completed:u.filter(t=>t.status==="completed").length,failed:u.filter(t=>t.status==="failed").length,results:u,pairs:f}}l(I,"runCandidateBatchAndPost");export{R as a,b,y as c,x as d,I as e};
|
package/dist/chunk-EVAQBD5V.js
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{c as P}from"./chunk-5XUN743A.js";import{a as L}from"./chunk-MOAJLSYV.js";import{b as S}from"./chunk-BLCMXTIK.js";import{a as M}from"./chunk-T4ZIK6RS.js";import{a as T}from"./chunk-W76EQSEV.js";import{a as y}from"./chunk-RSKQRVPJ.js";import{a as R}from"./chunk-HXZM2UHO.js";import{a as x}from"./chunk-FAXV5AAG.js";import{a as _}from"./chunk-UF6US7VU.js";import{e as k}from"./chunk-BAVLNWO4.js";import{b as H}from"./chunk-YW3JQKGY.js";import{a as A}from"./chunk-O2BKBW7Z.js";import{a as E}from"./chunk-KGQ5W54Y.js";import{a as I}from"./chunk-UKN2YVY4.js";import{b as h}from"./chunk-5RBLIVBF.js";import{a as N}from"./chunk-EN43UYBN.js";import{l as b}from"./chunk-A4FYFRN7.js";import{d as w}from"./chunk-NTKO4H2K.js";import{b as f,e as v,f as g}from"./chunk-KLEF5D3A.js";import{a as s}from"./chunk-ZLLER3HP.js";var O={process_eval:E,process_insights:I,process_launch:S,process_send_message:y,process_conversation:A,process_session_goal:R,distill_memories:H,memory_ab:M,process_run_cleanup:T,cron_suggest_instructions:k,cron_refresh_skills:_,cron_refresh_pricing:x,cron_eval_autorun:N,cron_instruction_evolution:b,process_judge_review:L},C=Object.keys(O),$=new Set([]);function F(e=process.env){return e.DATABASE_URL?C:C.filter(n=>!$.has(n))}s(F,"availableCapabilities");var J=3e4,U=3e4,K=3e4,D=250,V=5e3,G=`thin-agent-${process.pid}`,p=null;function q(e,n,r,l){let c;try{let d=w();c={claude:d.claudeBin!=null,codex:d.codexBin!=null,codexModel:d.codexConfiguredModel}}catch{}let i=s(d=>{g("/api/workers/heartbeat",{workerType:"cli-worker",clientName:G,clientVersion:l,workerVersion:"0.1.0",currentJobId:null,inFlightCount:0,lastError:null,status:d,metadata:{capabilities:e,mode:"thin-agent",llmEngines:c}}).then(u=>{let t=u?.advisory;t&&t.message!==p?(p=t.message,a(r,{event:"worker_advisory",code:t.code,message:t.message})):t||(p=null)}).catch(u=>{a(r,{event:"presence_heartbeat_error",error:u instanceof Error?u.message:String(u)})})},"send");i("alive");let o=setInterval(()=>i("alive"),K);n.addEventListener("abort",()=>{clearInterval(o),i("shutting_down")},{once:!0})}s(q,"startPresenceHeartbeat");function a(e,n){try{e(JSON.stringify({ts:new Date().toISOString(),...n}))}catch{e(`[agent-loop] log_error event=${n.event}`)}}s(a,"structuredLog");function B(e,n){return n.aborted?Promise.resolve(!1):e<=0?Promise.resolve(!0):new Promise(r=>{let l=setTimeout(()=>{n.removeEventListener("abort",c),r(!0)},e),c=s(()=>{clearTimeout(l),n.removeEventListener("abort",c),r(!1)},"onAbort");n.addEventListener("abort",c,{once:!0})})}s(B,"abortableSleep");async function Q(e,n){let r=`capabilities=${encodeURIComponent(e.join(","))}&waitMs=${n}`,l=await v(`/api/work/next?${r}`);return l==null||typeof l=="string"?null:l}s(Q,"pollForWork");function X(e,n){return{logger:{info:s(r=>n(r),"info"),warn:s(r=>n(r),"warn"),error:s(r=>n(r),"error")},job:{attempts:e}}}s(X,"makeHelpers");async function z(e,n,r){let l=O[e.kind],c=Date.now();if(a(r,{event:"claim",jobId:e.id,kind:e.kind,attempts:e.attempts}),!l){let o=`unknown kind: ${e.kind}`;a(r,{event:"fail",jobId:e.id,kind:e.kind,terminal:!0,error:o}),await g(`/api/work/${e.id}/fail`,{leaseToken:e.leaseToken,error:o,terminal:!0}).catch(()=>{});return}let i=setInterval(()=>{a(r,{event:"heartbeat",jobId:e.id}),g(`/api/work/${e.id}/heartbeat`,{leaseToken:e.leaseToken}).catch(o=>{a(r,{event:"heartbeat_error",jobId:e.id,error:o instanceof Error?o.message:String(o)})})},n);try{let o=X(e.attempts,r),d=await l(e.payload,o)??{};clearInterval(i),a(r,{event:"complete",jobId:e.id,kind:e.kind,durationMs:Date.now()-c}),await g(`/api/work/${e.id}/complete`,{leaseToken:e.leaseToken,result:d})}catch(o){clearInterval(i);let d=h(o),u=o instanceof Error?o.message:String(o);a(r,{event:"fail",jobId:e.id,kind:e.kind,durationMs:Date.now()-c,terminal:d,error:u}),await g(`/api/work/${e.id}/fail`,{leaseToken:e.leaseToken,error:u,terminal:d}).catch(t=>{a(r,{event:"fail_post_error",jobId:e.id,error:t instanceof Error?t.message:String(t)})})}}s(z,"runOne");async function ke(e){let n=e.log??(()=>{}),r=e.pollWaitMs??J,l=e.heartbeatIntervalMs??U,c=e.capabilities??F(),i=D;a(n,{event:"agent_start",capabilities:c,pollWaitMs:r,heartbeatIntervalMs:l}),q(c,e.signal,n,e.version),P({signal:e.signal,log:n}).catch(t=>{a(n,{event:"tt_heartbeat_fatal",error:t instanceof Error?t.message:String(t)})});let o=5*6e4,d=0,u=s(()=>{if(!e.readInstalledVersion||!e.version)return!1;let t=Date.now();if(t-d<o)return!1;d=t;let m=e.readInstalledVersion();return!!(m&&m!==e.version)},"versionDrifted");for(;!e.signal.aborted;){if(u()){a(n,{event:"agent_version_drift",bootVersion:e.version,installedVersion:e.readInstalledVersion?.()??null}),e.onVersionDrift?.();break}let t=null;try{t=await Q(c,r)}catch(m){let W=m instanceof f?m.statusCode:void 0;if(a(n,{event:"poll_error",status:W,error:m instanceof Error?m.message:String(m)}),!await B(i,e.signal))break;i=Math.min(i*2,V);continue}if(!t){if(a(n,{event:"poll_204"}),!await B(i,e.signal))break;i=Math.min(i*2,V);continue}i=D,await z(t,l,n)}a(n,{event:"agent_stop"})}s(ke,"runAgentLoop");export{O as a,C as b,F as c,Q as d,ke as e};
|
package/dist/chunk-FAZMKMTC.js
DELETED
|
@@ -1,45 +0,0 @@
|
|
|
1
|
-
import{a as o}from"./chunk-ZLLER3HP.js";function I(e){if(!e||typeof e!="object")return e;let r=e,t=r.project_areas;if(t!==void 0&&!Array.isArray(t)){let n=t&&typeof t=="object"?t.areas:void 0;r.project_areas=Array.isArray(n)?n:void 0}return e}o(I,"normalizeRecommendations");import{z as l}from"zod";var x=["org","team","project","personal"],_=l.object({name:l.string().min(1),description:l.string().min(1),type:l.literal("instruction").default("instruction"),scope:l.enum(x),version:l.string().min(1),tags:l.array(l.string()).optional(),compatibility:l.array(l.string()).optional(),slots:l.record(l.string(),l.string()).optional(),metadata:l.record(l.string(),l.unknown()).optional()});import{z as p}from"zod";var C=p.object({name:p.string().min(1),description:p.string().min(1),type:p.literal("prompt"),version:p.string().min(1),tags:p.array(p.string()).optional(),variables:p.array(p.string()).optional(),metadata:p.record(p.string(),p.unknown()).optional()});function h(e,r){let t=r.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: ${e.name}
|
|
11
|
-
- Description: ${e.description??"No description"}
|
|
12
|
-
- Languages: ${e.languages.join(", ")||"Unknown"}
|
|
13
|
-
- Topics: ${e.topics.join(", ")||"None"}
|
|
14
|
-
- Dependencies: ${e.dependencies.join(", ")||"None"}
|
|
15
|
-
|
|
16
|
-
## Available Instructions
|
|
17
|
-
|
|
18
|
-
${t}
|
|
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.`}o(h,"buildRecommendationPrompt");var R=32e3,L={name:"x".repeat(64),description:"x".repeat(256),languages:["TypeScript","Python","Go"],topics:["x".repeat(32)],dependencies:["x".repeat(32)]};function M(e,r={}){if(e.length===0)return[];let t=r.charBudget??R,n=h(L,[]).length,i=[],a=[],u=0;for(let d of e){let m=O(d);a.length>0&&n+u+m>t&&(i.push(a),a=[],u=0),a.push(d),u+=m}return a.length>0&&i.push(a),i}o(M,"batchCandidatesForPrompt");function O(e){return`- ID: ${e.id}
|
|
35
|
-
Name: ${e.name}
|
|
36
|
-
Description: ${e.description}
|
|
37
|
-
Tags: ${e.tags.join(", ")}
|
|
38
|
-
Preview: ${e.contentPreview}`.length+2}o(O,"renderedSize");var T=["Added","Changed","Fixed","Removed","Deprecated","Security"],j=/^##\s+\[([^\]]+)\](?:\s*[-–]\s*(\d{4}-\d{2}-\d{2}))?\s*$/,A=/^###\s+(.+?)\s*$/,F=/^[-*]\s+(.*\S)\s*$/,N=/^ {2,}(\S.*)$/;function D(e){let r=e.split(/\r?\n/),t=[],n=null,i=null,a=null;for(let u of r){let d=u.match(j);if(d){n&&t.push(n);let c=d[1].trim();n={version:c,date:d[2]??null,unreleased:c.toLowerCase()==="unreleased",sections:{}},i=null,a=null;continue}if(!n)continue;let m=u.match(A);if(m){let c=m[1].trim();T.includes(c)?(i=c,n.sections[i]||(n.sections[i]=[]),a=n.sections[i]):(i=null,a=null);continue}if(!i||!a)continue;let f=u.match(F);if(f){a.push(f[1]);continue}let g=u.match(N);if(g&&a.length>0){a[a.length-1]+=" "+g[1].trim();continue}}return n&&t.push(n),{entries:t}}o(D,"parseChangelog");function E(e){return e.entries.filter(r=>r.unreleased?!1:Object.values(r.sections).some(t=>t&&t.length>0))}o(E,"announceableEntries");function w(e){let r=/^(#{1,6})\s+/.exec(e);return r?r[1].length:0}o(w,"headingLevel");function b(e){return e.replace(/^#{1,6}\s+/,"").replace(/[`*_~]/g,"").trim().toLowerCase()}o(b,"normaliseHeading");function $(e,r){let t=b(r);if(t.length===0)return{content:e,removed:!1,removedText:null,reason:"not-found"};let n=e.split(`
|
|
39
|
-
`),i=[];for(let c=0;c<n.length;c+=1)w(n[c])>0&&b(n[c])===t&&i.push(c);if(i.length===0)return{content:e,removed:!1,removedText:null,reason:"not-found"};if(i.length>1)return{content:e,removed:!1,removedText:null,reason:"ambiguous"};let a=i[0],u=w(n[a]),d=n.length;for(let c=a+1;c<n.length;c+=1){let v=w(n[c]);if(v>0&&v<=u){d=c;break}}let m=n.slice(a,d).join(`
|
|
40
|
-
`),f=[...n.slice(0,a),...n.slice(d)];return f.join("").trim().length===0?{content:e,removed:!1,removedText:null,reason:"would-empty-file"}:{content:f.join(`
|
|
41
|
-
`).replace(/\n{3,}/g,`
|
|
42
|
-
|
|
43
|
-
`),removed:!0,removedText:m}}o($,"removeMarkdownSection");function G(e,r){let t=r.trim();if(t.length===0)return{content:e,removed:!1,removedText:null,reason:"not-found"};let n=e.indexOf(t);if(n===-1)return{content:e,removed:!1,removedText:null,reason:"not-found"};if(e.indexOf(t,n+1)!==-1)return{content:e,removed:!1,removedText:null,reason:"ambiguous"};let i=(e.slice(0,n)+e.slice(n+t.length)).replace(/\n{3,}/g,`
|
|
44
|
-
|
|
45
|
-
`);return i.trim().length===0?{content:e,removed:!1,removedText:null,reason:"would-empty-file"}:{content:i,removed:!0,removedText:t}}o(G,"removeExactBlock");var k=["HTTPS_PROXY","HTTP_PROXY","NODE_EXTRA_CA_CERTS"];function U(e,r){if(!e||typeof e!="object")return{value:e,removed:!1,removedDescriptions:[],reason:"not-found"};let t=structuredClone(e);if(!t.hooks)return{value:t,removed:!1,removedDescriptions:[],reason:"not-found"};let n=[];for(let[i,a]of Object.entries(t.hooks)){if(!Array.isArray(a))continue;let u=a.filter(d=>{let m=(d.hooks??[]).some(f=>typeof f.command=="string"&&f.command.includes(r));return m&&n.push(`${i}: ${d.matcher??"*"} \u2192 ${(d.hooks??[]).map(f=>f.command).join(", ")}`),!m});u.length===0?delete t.hooks[i]:t.hooks[i]=u}return Object.keys(t.hooks).length===0&&delete t.hooks,{value:t,removed:n.length>0,removedDescriptions:n,...n.length===0?{reason:"not-found"}:{}}}o(U,"removeHookByCommand");function z(e,r){if(!e||typeof e!="object")return{value:e,removed:!1,removedDescriptions:[],reason:"not-found"};let t=structuredClone(e);return!t.mcpServers||!(r in t.mcpServers)?{value:t,removed:!1,removedDescriptions:[],reason:"not-found"}:(delete t.mcpServers[r],Object.keys(t.mcpServers).length===0&&delete t.mcpServers,{value:t,removed:!0,removedDescriptions:[`mcpServers.${r}`]})}o(z,"removeMcpServer");function y(e){if(!e||typeof e!="object")return[];let r=e.env;return r?k.filter(t=>t in r):[]}o(y,"protectedEnvKeysPresent");function H(e,r){let t=y(e),n=new Set(y(r));return t.filter(i=>!n.has(i))}o(H,"lostProtectedEnvKeys");import Re from"gray-matter";import{z as S}from"zod";var ke=S.object({type:S.enum(["instruction","prompt"])});export{I as a,h as b,M as c,D as d,E as e,$ as f,G as g,U as h,z as i,H as j};
|
package/dist/chunk-HMMO27U4.js
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{a as m}from"./chunk-ZLLER3HP.js";import{spawn as y}from"node:child_process";function O(r){try{let t=JSON.parse(r),i=t.result??t.content??r,a=t.usage?.total_tokens??(t.usage?.input_tokens??0)+(t.usage?.output_tokens??0),s;if(t.modelUsage&&typeof t.modelUsage=="object"){let o=-1;for(let[n,c]of Object.entries(t.modelUsage)){let u=typeof c?.outputTokens=="number"?c.outputTokens:0;u>o&&(o=u,s=n)}}return{output:i,totalTokens:a,model:s}}catch{return{output:r,totalTokens:0}}}m(O,"parseClaudeJsonOutput");function D(r){let{prompt:t,targetContent:i,systemPrompt:a,model:s}=r,o=["-p",t,"--output-format","json","--settings",JSON.stringify({disableAllHooks:!0})],n=i??a;return n&&o.push("--system-prompt",n),s&&o.push("--model",s),o}m(D,"buildClaudeArgs");async function S(r){let{prompt:t,targetContent:i,systemPrompt:a,workDir:s=process.cwd(),timeout:o=12e4,model:n}=r,c=D({prompt:t,targetContent:i,systemPrompt:a,model:n}),u=Date.now();return new Promise(d=>{let l={...process.env};delete l.CLAUDECODE,delete l.HTTPS_PROXY;let E=["/opt/homebrew/bin","/usr/local/bin"],f=(l.PATH??"").split(":").filter(Boolean),T=E.filter(e=>!f.includes(e));T.length&&(l.PATH=[...f,...T].join(":"));let p=y("claude",c,{cwd:s,env:l,stdio:["ignore","pipe","pipe"]}),g="",k="";p.stdout.on("data",e=>{g+=e.toString()}),p.stderr.on("data",e=>{k+=e.toString()});let x=setTimeout(()=>{p.kill("SIGTERM"),d({output:g,exitCode:null,durationMs:Date.now()-u,totalTokens:0,error:`Timed out after ${o}ms`})},o);p.on("close",e=>{clearTimeout(x);let b=Date.now()-u,{output:P,totalTokens:C,model:w}=O(g);d({output:P,exitCode:e,durationMs:b,totalTokens:C,model:w,error:e!==0?k||`Exit code ${e}`:void 0})}),p.on("error",e=>{clearTimeout(x),d({output:"",exitCode:null,durationMs:Date.now()-u,totalTokens:0,error:`Failed to spawn claude: ${e.message}`})})})}m(S,"executeEval");export{O as a,D as b,S as c};
|
package/dist/chunk-JZ5Z2BRO.js
DELETED
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
import{a as e}from"./chunk-ZLLER3HP.js";import*as i from"node:fs";import*as u from"node:path";import*as R from"node:os";function m(){return process.env.RULEMETRIC_CONFIG_DIR||u.join(R.homedir(),".config","rulemetric")}e(m,"getConfigDir");var l;function F(){if(l!==void 0)return l;try{let n=u.join(m(),"env");if(!i.existsSync(n))return l={};let s=i.readFileSync(n,"utf-8"),E=e(h=>s.match(new RegExp(`^${h}=(.+)$`,"m"))?.[1]?.trim(),"read");return l={apiKey:E("RULEMETRIC_API_KEY"),accessToken:E("RULEMETRIC_ACCESS_TOKEN"),apiUrl:E("RULEMETRIC_API_URL"),strictLocal:E("RULEMETRIC_STRICT_LOCAL")},l}catch{return l={}}}e(F,"loadEnvFileAuth");function L(){l=void 0}e(L,"__resetEnvFileAuthCache");function S(n=m()){let s=u.join(n,"auth.json");function E(o){i.mkdirSync(n,{recursive:!0,mode:448}),i.writeFileSync(s,JSON.stringify(o,null,2),{encoding:"utf-8",mode:384})}e(E,"saveToken");function h(){try{let o=i.readFileSync(s,"utf-8"),t=JSON.parse(o);return t&&typeof t=="object"&&"accessToken"in t&&"expiresAt"in t&&"email"in t&&typeof t.accessToken=="string"&&typeof t.expiresAt=="string"?t:null}catch{return null}}e(h,"loadToken");function _(){try{i.unlinkSync(s)}catch{}}e(_,"clearToken");function g(){let o=h();if(!o)return!1;let t=new Date(o.expiresAt).getTime();return Number.isNaN(t)?!1:Date.now()<t}e(g,"isAuthenticated");function y(o=0){let t=h();if(!t?.refreshToken)return!1;let r=new Date(t.expiresAt).getTime();return Number.isNaN(r)?!0:Date.now()>=r-o}e(y,"isRefreshable");function k(o,t){i.mkdirSync(n,{recursive:!0,mode:448});let r=u.join(n,"env"),c="",p="";try{let v=i.readFileSync(r,"utf-8"),T=v.match(/^RULEMETRIC_API_KEY=(.+)$/m);T&&(c=T[1]);let d=v.match(/^RULEMETRIC_API_URL=(.+)$/m);d&&(p=d[1])}catch{}let f=[`RULEMETRIC_ACCESS_TOKEN=${o}`];c&&f.push(`RULEMETRIC_API_KEY=${c}`);let A=t||p||"https://rulemetric.com";f.push(`RULEMETRIC_API_URL=${A}`),i.writeFileSync(r,f.join(`
|
|
2
|
-
`)+`
|
|
3
|
-
`,{encoding:"utf-8",mode:384})}e(k,"saveEnvFile");function C(o,t){i.mkdirSync(n,{recursive:!0,mode:448});let r=u.join(n,"env"),c="",p="";try{let v=i.readFileSync(r,"utf-8"),T=v.match(/^RULEMETRIC_ACCESS_TOKEN=(.+)$/m);T&&(c=T[1]);let d=v.match(/^RULEMETRIC_API_URL=(.+)$/m);d&&(p=d[1])}catch{}let f=[`RULEMETRIC_API_KEY=${o}`];c&&f.push(`RULEMETRIC_ACCESS_TOKEN=${c}`);let A=t||p||"https://rulemetric.com";A&&f.push(`RULEMETRIC_API_URL=${A}`),i.writeFileSync(r,f.join(`
|
|
4
|
-
`)+`
|
|
5
|
-
`,{encoding:"utf-8",mode:384})}e(C,"saveApiKeyToEnv");function I(){let o=u.join(n,"env");try{i.unlinkSync(o)}catch{}}e(I,"clearEnvFile");function x(){let o=u.join(n,"env");try{let t=i.readFileSync(o,"utf-8"),r=t.split(`
|
|
6
|
-
`).filter(c=>!c.startsWith("RULEMETRIC_API_KEY=")).join(`
|
|
7
|
-
`);r!==t&&i.writeFileSync(o,r,{encoding:"utf-8",mode:384})}catch{}}return e(x,"removeApiKeyFromEnvFile"),{saveToken:E,loadToken:h,clearToken:_,isAuthenticated:g,isRefreshable:y,saveEnvFile:k,saveApiKeyToEnv:C,clearEnvFile:I,removeApiKeyFromEnvFile:x,configDir:n,authFile:s}}e(S,"createAuthStore");function a(){return S()}e(a,"getStore");function U(n){a().saveToken(n)}e(U,"saveToken");function K(){return a().loadToken()}e(K,"loadToken");function M(){a().clearToken()}e(M,"clearToken");function P(){if(process.env.RULEMETRIC_API_KEY||a().isAuthenticated())return!0;let n=F();return!!(n.apiKey||n.accessToken)}e(P,"isAuthenticated");function N(n,s){a().saveEnvFile(n,s)}e(N,"saveEnvFile");function j(n,s){a().saveApiKeyToEnv(n,s)}e(j,"saveApiKey");function $(){a().clearEnvFile()}e($,"clearEnvFile");function w(){a().removeApiKeyFromEnvFile()}e(w,"removeApiKeyFromEnv");function O(){return m()}e(O,"getDefaultConfigDir");var b=m();export{F as a,L as b,S as c,U as d,K as e,M as f,P as g,N as h,j as i,$ as j,w as k,O as l,b as m};
|
package/dist/chunk-KLEF5D3A.js
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{a as p,e as w}from"./chunk-JZ5Z2BRO.js";import{a as o}from"./chunk-ZLLER3HP.js";import{fileURLToPath as _}from"node:url";import{existsSync as v,readFileSync as A}from"node:fs";import{dirname as L,join as b}from"node:path";function x(){let t=L(_(import.meta.url));for(let e=0;e<8;e++){let r=b(t,"package.json");if(v(r))try{let a=JSON.parse(A(r,"utf8"));if(a.name==="@rulemetric/cli"&&a.version)return a.version}catch{}let n=L(t);if(n===t)break;t=n}return"0.0.0"}o(x,"readCliVersion");var C=x(),O="https://rulemetric.com",T=class extends Error{constructor(r,n){super(n);this.statusCode=r;this.name="ApiError"}static{o(this,"ApiError")}};function I(){let t=p(),e=process.env.RULEMETRIC_API_URL??t.apiUrl;if(!e){if(process.env.RULEMETRIC_STRICT_LOCAL==="1"||t.strictLocal==="1")throw new Error("RULEMETRIC_STRICT_LOCAL is set but no RULEMETRIC_API_URL is configured \u2014 refusing the cloud default. Set RULEMETRIC_API_URL in the environment or ~/.config/rulemetric/env.");e=O}let r=new URL(e);if(r.protocol==="http:"&&r.hostname!=="localhost"&&r.hostname!=="127.0.0.1")throw new Error(`API URL must use HTTPS for non-localhost hosts: ${e}`);return e}o(I,"getBaseUrl");async function c(t,e={}){let n=`${I()}${t}`,a={"Content-Type":"application/json","User-Agent":`rulemetric-cli/${C}`,...e.headers},d=p(),m=process.env.RULEMETRIC_API_KEY||d.apiKey||w()?.accessToken||d.accessToken;m&&(a.Authorization=`Bearer ${m}`);let h=new URL(n),f=h.hostname==="localhost"||h.hostname==="127.0.0.1",P=process.env.HTTPS_PROXY,R=process.env.HTTP_PROXY;f&&(delete process.env.HTTPS_PROXY,delete process.env.HTTP_PROXY);let l=e.timeoutMs?new AbortController:void 0,g=!1,y=l?setTimeout(()=>{g=!0,l.abort()},e.timeoutMs):void 0,s;try{s=await fetch(n,{method:e.method??"GET",headers:a,body:e.body?JSON.stringify(e.body):void 0,signal:l?.signal})}catch(u){if(g){let E=new URL(n).host,U=Math.round(e.timeoutMs/1e3);throw new T(408,`Request to ${E} timed out after ${U}s. This is usually transient or a local proxy/gateway issue \u2014 retry, and if it persists check HTTPS_PROXY / the RuleMetric gateway (:8787).`)}throw u}finally{y&&clearTimeout(y),f&&(P!==void 0&&(process.env.HTTPS_PROXY=P),R!==void 0&&(process.env.HTTP_PROXY=R))}let i;if(s.headers.get("content-type")?.includes("application/json")?i=await s.json():i=await s.text(),!s.ok){let u=i&&typeof i=="object"&&"error"in i?String(i.error):`HTTP ${s.status}`;throw new T(s.status,u)}return i}o(c,"api");var $=o(t=>c(t),"apiGet"),j=o((t,e)=>c(t,{method:"POST",body:e}),"apiPost"),X=o((t,e)=>c(t,{method:"PUT",body:e}),"apiPut"),F=o((t,e)=>c(t,{method:"PATCH",body:e}),"apiPatch"),B=o(t=>c(t,{method:"DELETE"}),"apiDelete");export{O as a,T as b,I as c,c as d,$ as e,j as f,X as g,F as h,B as i};
|
package/dist/chunk-UKN2YVY4.js
DELETED
|
@@ -1,17 +0,0 @@
|
|
|
1
|
-
import{a as M,b as v,c as N,d as A}from"./chunk-4PWGV2OW.js";import{a as S}from"./chunk-5RBLIVBF.js";import{a as C}from"./chunk-FAZMKMTC.js";import{c as O,d as z,f as b}from"./chunk-B3BHB26P.js";import{e as h,f as j,h as p}from"./chunk-KLEF5D3A.js";import{a as y}from"./chunk-ZLLER3HP.js";async function Z(c,l){let{mirrorId:o,projectPath:n,projectId:i,config:u}=c,s=y(e=>l.logger.info(e),"log");if(u?.sessionId)return L({mirrorId:o,sessionId:u.sessionId},s);s(`Processing insights job ${o}...`),await p(`/api/insights-jobs/${o}/progress`,{status:"running",progress:{step:"reading_data"}});try{let{repaired:e}=await j("/api/sessions/repair-analyzed-at",{});e>0&&s(` Repaired analyzed_at on ${e} orphan session(s).`)}catch(e){s(` Warning: analyzed_at repair failed: ${e instanceof Error?e.message:String(e)}`)}let t=await H(n,i);if(!t)throw new S("No session data found \u2014 ensure sessions are captured and enriched.");s(` Found ${t.stats.sessions} sessions, generating recommendations...`);let w=20,m=200;if(z()!=="none"){let e=0,r=0;try{for(;e<m;){let d=await h(`/api/sessions?hasAnalysis=false&limit=${w}&offset=${r}`);if(d.length===0)break;s(` Generating facets for ${d.length} un-analyzed sessions (drained ${e} so far)...`);for(let f of d){if(e>=m)break;try{let g=await h(`/api/sessions/${f.id}/events?limit=100`);if(g.length<2){e++,r++;continue}let P=g.filter($=>$.eventType==="user_message"||$.eventType==="human").map($=>$.content?.slice(0,200)??"").filter(Boolean).join(`
|
|
2
|
-
---
|
|
3
|
-
`);if(!P){e++,r++;continue}let R=await b(A,P,4096);if(R){let $=g.filter(E=>E.eventType==="user_message"||E.eventType==="human").length;await p(`/api/sessions/${f.id}/enrich`,{analysis:{source:"generated_facets",...R},analyzedEventCount:g.length,analyzedTurnCount:$}),s(` Generated facets for session ${f.id} (${f.tool})`)}else r++;e++}catch(g){s(` Failed to generate facets for session ${f.id}: ${g instanceof Error?g.message:String(g)}`),e++,r++}}if(d.length<w)break}}catch(d){s(` Warning: facet generation failed after ${e} sessions: ${d instanceof Error?d.message:String(d)}`)}}let k=await F(n,s);k&&s(` Generator memory: ${k.split(`
|
|
4
|
-
`).length} lines of prior-advice context`);let a={},_=v.length+1;for(let e=0;e<v.length;e++){let r=v[e];s(` [${e+1}/${_}] Generating ${r.name}...`);try{await p(`/api/insights-jobs/${o}/progress`,{status:"running",progress:{step:r.name,current:e+1,total:_,partial:{...a}}})}catch(g){s(` Warning: progress update failed for ${r.name}: ${g instanceof Error?g.message:String(g)}`)}s(` Running LLM prompt for ${r.name}...`);let d=r.usesGeneratorMemory&&k?`${t.summary}
|
|
5
|
-
${k}`:t.summary,f=await b(r.prompt,d,r.maxTokens);f?(a[r.name]=f,s(` Got result for ${r.name}`)):s(` No result for ${r.name} (LLM returned null)`)}s(` [${_}/${_}] Generating at_a_glance...`),await p(`/api/insights-jobs/${o}/progress`,{status:"running",progress:{step:"at_a_glance",current:_,total:_,partial:{...a}}});let G=[t.summary,a.what_works?`
|
|
6
|
-
## What Works
|
|
7
|
-
${JSON.stringify(a.what_works)}`:"",a.friction_analysis?`
|
|
8
|
-
## Friction
|
|
9
|
-
${JSON.stringify(a.friction_analysis)}`:"",a.suggestions?`
|
|
10
|
-
## Suggestions
|
|
11
|
-
${JSON.stringify(a.suggestions)}`:"",a.on_the_horizon?`
|
|
12
|
-
## On the Horizon
|
|
13
|
-
${JSON.stringify(a.on_the_horizon)}`:""].join(`
|
|
14
|
-
`),T=await b(N,G,8192);T&&(a.at_a_glance=T),s(" Uploading results..."),s(` Done! Recommendations generated for job ${o}`),C(a);let I={recommendations:a};return await p(`/api/insights-jobs/${o}/state`,{result:I}).catch(e=>{s(`result persist failed: ${e instanceof Error?e.message:String(e)}`)}),await J(a,n,s),I}y(Z,"processInsights");async function J(c,l,o){if(l)try{let n=c.suggestions,i=Array.isArray(n?.claude_md_additions)?n.claude_md_additions.filter(t=>typeof t?.addition=="string"&&t.addition.trim().length>=12).map(t=>({addition:String(t.addition).trim(),why:String(t.why??"")})):[],u=Array.isArray(c.recommended_skills)?c.recommended_skills.filter(t=>typeof t?.skillId=="string"&&t.skillId.length>0).map(t=>({skillId:String(t.skillId),reason:String(t.reason??"")})):[];if(i.length===0&&u.length===0)return;let s=await j("/api/insights/recommendations/nominate",{projectPath:l,additions:i.slice(0,20),skills:u.slice(0,20)});o(` ${s.nominated} recommendation(s) nominated into the suggestion feed (${s.additionsCreated} new instruction(s)`+(s.skillsUnresolved>0?`, ${s.skillsUnresolved} skill slug(s) unresolved`:"")+")")}catch(n){o(` nomination skipped: ${n instanceof Error?n.message:String(n)}`)}}y(J,"nominateRecommendations");async function L(c,l){let{mirrorId:o,sessionId:n}=c;l(`Analyzing session ${n} via tool CLI...`),await p(`/api/insights-jobs/${o}/progress`,{status:"running",progress:{step:"fetching_session"}});let i=await h(`/api/sessions/${n}`);if(i.analysis&&i.analysis.source==="session_analysis")return l(` Session ${n} already analyzed \u2014 skipping (idempotency guard)`),{sessionId:n,skipped:!0,reason:"already_analyzed"};let u=await h(`/api/sessions/${n}/events?limit=100`);if(u.length<2)throw new S("Session has too few events to analyze");let s=u.filter(m=>m.eventType==="user_message"||m.eventType==="human").map(m=>m.content?.slice(0,200)??"").filter(Boolean).join(`
|
|
15
|
-
---
|
|
16
|
-
`);if(!s)throw new S("No user messages found in session");await p(`/api/insights-jobs/${o}/progress`,{status:"running",progress:{step:"running_analysis",tool:i.tool}});let t=await O(i.tool,A,s);if(!t)throw new Error(`Analysis failed \u2014 ${i.tool} CLI returned no result`);let w=u.filter(m=>m.eventType==="user_message"||m.eventType==="human").length;return await p(`/api/sessions/${n}/enrich`,{analysis:{source:"session_analysis",tool:i.tool,...t},analyzedEventCount:u.length,analyzedTurnCount:w}),l(` Session ${n} analyzed via ${i.tool}`),{sessionId:n,tool:i.tool,facets:t}}y(L,"processSessionAnalysisInline");async function F(c,l,o=h){try{let n=await o(`/api/insights/recommendations/history?projectPath=${encodeURIComponent(c??"")}`);return!n||!Array.isArray(n.dismissed)||!Array.isArray(n.repeated)?"":M(n)}catch(n){return l(` Warning: generator memory unavailable (${n instanceof Error?n.message:String(n)}) \u2014 generating without it`),""}}y(F,"fetchGeneratorMemory");async function H(c,l){try{let o=new URLSearchParams;l?o.set("projectId",l):c&&o.set("projectPath",c);let n=await h(`/api/insights/compute?${o}`);if(!n||n.total_sessions===0)return null;let i=Object.entries(n.tool_counts??{}).sort((s,t)=>t[1]-s[1]).slice(0,10).map(([s,t])=>`${s}: ${t}`).join(", ");return{summary:[`Sessions: ${n.total_sessions}, Messages: ${n.total_messages}, Hours: ${Math.round(n.total_duration_hours)}`,`Top tools: ${i}`,n.goal_categories&&Object.keys(n.goal_categories).length>0?`Goals: ${JSON.stringify(n.goal_categories)}`:"",n.friction&&Object.keys(n.friction).length>0?`Friction: ${JSON.stringify(n.friction)}`:"",n.outcomes&&Object.keys(n.outcomes).length>0?`Outcomes: ${JSON.stringify(n.outcomes)}`:"",n.projects&&Object.keys(n.projects).length>0?`Projects: ${JSON.stringify(n.projects)}`:""].filter(Boolean).join(`
|
|
17
|
-
`),stats:{sessions:n.total_sessions,totalMessages:n.total_messages,totalHours:n.total_duration_hours,toolCounts:n.tool_counts,goalCounts:n.goal_categories,frictionCounts:n.friction}}}catch{return null}}y(H,"buildDataSummaryFromApi");export{Z as a,F as b};
|
package/dist/chunk-XJYNMJHH.js
DELETED
|
@@ -1,9 +0,0 @@
|
|
|
1
|
-
import{g as p}from"./chunk-B3BHB26P.js";import{a as s}from"./chunk-ZLLER3HP.js";var f="<RATIONALE>",m="</RATIONALE>",l="<PROPOSED_INSTRUCTION>",c="</PROPOSED_INSTRUCTION>",h=.5,u=3;function g(e){let t=e.immutableSections.length>0?e.immutableSections.map(n=>` - ${n}`).join(`
|
|
2
|
-
`):" (none)",o=e.evidence.priorDecisions.length>0?["6. You have edited this file before. The attempts are listed below with"," how each was judged. Do not re-propose an edit that was MEASURED and"," rejected: it was replayed against this exact file and did not beat it,"," so measuring it again spends the same budget for the same answer. An"," attempt marked NOT MEASURED is different \u2014 the gate stopped it before"," it earned a verdict, so whether it would have helped is still unknown."]:[];return["You are improving an AI coding assistant instruction file so that it scores","better on a fixed set of evaluation cases.","",`The file is a ${e.targetType} named "${e.targetName}".`,"","RULES","1. Return the COMPLETE new file, not a diff, not a patch, not a summary,"," and not an excerpt. Everything you omit will be DELETED from the file.","2. Preserve everything you are not deliberately changing, byte for byte.","3. Make a focused edit. You are one step in a measured loop: a small change"," that can be attributed beats a rewrite that cannot.","4. Do not edit these sections or anything nested under them \u2014 an edit that"," touches them is refused downstream and the whole proposal is wasted:",t,"5. Do not add meta-commentary about the evaluation, the loop, or this"," prompt to the file. The file is read by other agents as instructions.",...o,"","OUTPUT FORMAT \u2014 exactly this, with no text before or after:",f,"One or two sentences: what you changed and which evidence motivated it.",m,l,"The complete new file content.",c].join(`
|
|
3
|
-
`)}s(g,"buildProposerSystemPrompt");var a=s(e=>`${e>=0?"+":"-"}${Math.abs(e*100).toFixed(1)}pp`,"signedPp");function E(e){let t=/^\d{4}-\d{2}-\d{2}/.exec(e.at??"")?.[0]??"undated",o;if(e.measured){let i=e.measured;o=`MEASURED against this exact file and ${e.decision==="promote"?"ACCEPTED":"REJECTED"}: ${a(i.delta)} (CI ${a(i.ciLower)} to ${a(i.ciUpper)}, ${i.nPairs} paired cases)`}else o=`NOT MEASURED \u2014 the gate refused it, so its merit is still unknown: ${e.refusals.length>0?e.refusals.join("; "):"no reason recorded"}`;let n=[`- ${t} \u2014 ${o}`];return e.decision==="promote"&&n.push(e.applied?" The file WAS rewritten by this decision.":" Dry run: the file was NOT rewritten, so this edit is still available."),e.touched.length>0&&n.push(` Sections touched: ${e.touched.join(", ")}`),e.rationale.trim()!==""&&n.push(` You said at the time: ${e.rationale.trim()}`),n.join(`
|
|
4
|
-
`)}s(E,"describePriorDecision");function w(e){let t=e.evidence,o=["## CURRENT FILE CONTENT","",e.currentContent,""];if(t.weakest.length>0){o.push("## CASES WHERE THIS FILE CURRENTLY UNDERPERFORMS","");for(let n of t.weakest)o.push(`- ${n.name}: passes ${(n.withPassRate*100).toFixed(0)}% with the file vs ${(n.withoutPassRate*100).toFixed(0)}% without it`);o.push("")}return t.nonDiscriminating.length>0&&o.push("## CASES THAT CARRY NO SIGNAL EITHER WAY","","These score the same with and without the file. Changing the file to chase","them is unlikely to move anything.","",...t.nonDiscriminating.map(n=>`- ${n}`),""),t.priorDecisions.length>0&&o.push("## WHAT YOU ALREADY PROPOSED FOR THIS FILE, AND HOW IT WAS JUDGED","","Newest first. Every attempt listed here was made against the file above,","byte for byte. Attempts against a different version of the file are not","shown, because a verdict earned by different text says nothing about this","one.","",...t.priorDecisions.map(E),""),t.notes.length>0&&o.push("## NOTES","",...t.notes.map(n=>`- ${n}`),""),o.join(`
|
|
5
|
-
`)}s(w,"buildProposerData");function d(e,t,o){let n=e.lastIndexOf(o);if(n<0)return null;let i=e.lastIndexOf(t,n);return i<0?null:e.slice(i+t.length,n)}s(d,"between");function T(e){let t=e.split(`
|
|
6
|
-
`);for(;t.length>0&&t[0].trim()==="";)t.shift();for(;t.length>0&&t[t.length-1].trim()==="";)t.pop();if(t.length<2)return t.join(`
|
|
7
|
-
`);let o=t[0].trim(),n=t[t.length-1].trim(),i=/^(`{3,}|~{3,})[a-zA-Z0-9_-]*$/.test(o),r=/^(`{3,}|~{3,})$/.test(n);return i&&r?t.slice(1,-1).join(`
|
|
8
|
-
`):t.join(`
|
|
9
|
-
`)}s(T,"stripWrappingFence");function R(e,t){if(!e||e.trim()==="")return{ok:!1,reason:"proposer returned nothing"};let o=d(e,l,c);if(o==null)return{ok:!1,reason:`proposer reply had no ${l}\u2026${c} block`};let n=T(o).trim();if(n==="")return{ok:!1,reason:"proposed content was empty"};if(n===t.trim())return{ok:!1,reason:"proposal is identical to the current version"};let i=n.length/Math.max(1,t.trim().length);if(i<h)return{ok:!1,reason:`proposal retains only ${(i*100).toFixed(0)}% of the predecessor's length (floor ${(h*100).toFixed(0)}%) \u2014 treating it as a truncated or summarised reply rather than an edit`};if(i>u)return{ok:!1,reason:`proposal is ${i.toFixed(1)}x the predecessor's length (ceiling ${u}x) \u2014 treating it as runaway generation`};let r=(d(e,f,m)??"").trim();return{ok:!0,proposal:{candidateContent:n,rationale:r===""?"(proposer supplied no rationale)":r}}}s(R,"parseProposalResponse");async function P(e,t=16e3){let o=await p(g(e),w(e),t);return o==null?{ok:!1,reason:"no LLM backend available, or the proposer call failed"}:R(o,e.currentContent)}s(P,"proposeInstructionEdit");export{h as a,u as b,g as c,E as d,w as e,R as f,P as g};
|
package/dist/index.js
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import"./chunk-ZLLER3HP.js";import{run as e}from"@oclif/core";export{e as run};
|