@rulemetric/cli 0.17.1 → 0.17.3
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-RAIXY6YA.js → chunk-2C7CFCMM.js} +1 -1
- package/dist/{chunk-433HK3QQ.js → chunk-3EZZGA72.js} +1 -1
- package/dist/{chunk-U6AASXY3.js → chunk-3HJT572X.js} +1 -1
- package/dist/{chunk-3WNQ52TW.js → chunk-3ZHBOILE.js} +1 -1
- package/dist/chunk-4LVSD2XZ.js +2 -0
- package/dist/{chunk-TDDJOSFQ.js → chunk-5LTJNYCP.js} +1 -1
- package/dist/{chunk-GPWLS64K.js → chunk-5U5SHJJA.js} +1 -1
- package/dist/{chunk-Z7UN4R7T.js → chunk-5VWVQCNR.js} +1 -1
- package/dist/{chunk-JEZ5ZTKR.js → chunk-7J7H7YFQ.js} +1 -1
- package/dist/chunk-7MQZPDDZ.js +1 -0
- package/dist/{chunk-PHBPHZSZ.js → chunk-7N55TWYQ.js} +1 -1
- package/dist/{chunk-BV3JMD3A.js → chunk-7OTOAC6C.js} +1 -1
- package/dist/{chunk-GLBWNB2N.js → chunk-A2JFQUDW.js} +1 -1
- package/dist/{chunk-FZMO7XSN.js → chunk-A6XQSO62.js} +1 -1
- package/dist/{chunk-N7P3HUPD.js → chunk-ANLPPIMS.js} +1 -1
- package/dist/{chunk-R7URROQD.js → chunk-AZRGURHR.js} +1 -1
- package/dist/{chunk-FXQS7AEZ.js → chunk-AZWY2DOT.js} +1 -1
- package/dist/chunk-BDWQ6J4V.js +1 -0
- package/dist/chunk-BOYWPUV2.js +12 -0
- package/dist/{chunk-V2G6E53W.js → chunk-BRYURAUN.js} +1 -1
- package/dist/{chunk-52OHAULM.js → chunk-BTKVLLV2.js} +1 -1
- package/dist/{chunk-DANMUHNW.js → chunk-C3XWDYZJ.js} +1 -1
- package/dist/{chunk-JQ2ZCUEC.js → chunk-CAQLSYOK.js} +1 -1
- package/dist/chunk-CJ2WSSHD.js +1 -0
- package/dist/chunk-D7L7IMJQ.js +1 -0
- package/dist/{chunk-ZZZ7ECPT.js → chunk-DTTR4EUJ.js} +1 -1
- package/dist/{chunk-CEM7JMUW.js → chunk-DZRBB34J.js} +1 -1
- package/dist/{chunk-UPJVMMDK.js → chunk-EKTNI6RV.js} +1 -1
- package/dist/{chunk-LMQDS47I.js → chunk-ENW5SUQJ.js} +1 -1
- package/dist/{chunk-QH7JB4UQ.js → chunk-EQ2O6DSN.js} +1 -1
- package/dist/{chunk-YVEI7XR6.js → chunk-FGGESTXG.js} +1 -1
- package/dist/chunk-FLP6WIJV.js +1 -0
- package/dist/{chunk-5CVP5NFH.js → chunk-GBSIOACS.js} +1 -1
- package/dist/{chunk-TFJAT263.js → chunk-GHUW7P55.js} +1 -1
- package/dist/chunk-GWQ24FQP.js +9 -0
- package/dist/{chunk-UDNEOJWY.js → chunk-HNPC5U3C.js} +1 -1
- package/dist/{chunk-WM437XV6.js → chunk-IPNBW7ZW.js} +1 -1
- package/dist/{chunk-4XRPSKIJ.js → chunk-IYX65N6T.js} +1 -1
- package/dist/{chunk-EOTSCWFS.js → chunk-JCZOEIL7.js} +1 -1
- package/dist/chunk-JLX2D3QL.js +1 -0
- package/dist/chunk-K65DDLTZ.js +8 -0
- package/dist/{chunk-7V6LLVAY.js → chunk-KIQK7NVF.js} +1 -1
- package/dist/{chunk-VBGHPAUT.js → chunk-KOIFFSYW.js} +2 -2
- package/dist/{chunk-L3AXNCWC.js → chunk-KR32Y5Q5.js} +1 -1
- package/dist/chunk-LELSVLNK.js +1 -0
- package/dist/chunk-LZPE6424.js +5 -0
- package/dist/chunk-MBP5OJKE.js +15 -0
- package/dist/{chunk-YSY25OGG.js → chunk-MGT5FZJ4.js} +1 -1
- package/dist/chunk-MHLHLJ5T.js +48 -0
- package/dist/{chunk-FPEC6DJV.js → chunk-MJLW5KN2.js} +1 -1
- package/dist/chunk-MRQIYIQE.js +1 -0
- package/dist/{chunk-AXTEV56C.js → chunk-NAS7FIGM.js} +1 -1
- package/dist/{chunk-TL57YUJV.js → chunk-NBTH6ZKD.js} +1 -1
- package/dist/{chunk-G2226CG6.js → chunk-NLUHMHPM.js} +1 -1
- package/dist/{chunk-CWVXTLXZ.js → chunk-NMCQ7JZZ.js} +1 -1
- package/dist/{chunk-57YXM7AI.js → chunk-NSO2EBYE.js} +1 -1
- package/dist/{chunk-CXSDZ473.js → chunk-OWXGXKK7.js} +1 -1
- package/dist/{chunk-M2CPTQZL.js → chunk-P577DWWL.js} +1 -1
- package/dist/{chunk-HB4RUEEE.js → chunk-PMMHMRFS.js} +1 -1
- package/dist/{chunk-YX2IGS72.js → chunk-PPQFN62M.js} +1 -1
- package/dist/{chunk-4GM4OEQY.js → chunk-PX2E644Q.js} +1 -1
- package/dist/{chunk-BLGICIV4.js → chunk-QRKMRG6W.js} +1 -1
- package/dist/chunk-R26SQ3BE.js +5 -0
- package/dist/{chunk-ANHFE6US.js → chunk-RITL4NU3.js} +1 -1
- package/dist/chunk-RQBN7WNS.js +28 -0
- package/dist/{chunk-2K4TF5RM.js → chunk-RRBFKVCI.js} +1 -1
- package/dist/{chunk-DB4ZM5N3.js → chunk-RWQG25JU.js} +1 -1
- package/dist/{chunk-TDRUVE4J.js → chunk-TBLUJ6AW.js} +1 -1
- package/dist/{chunk-ACJ2DBOE.js → chunk-TG4C4ENM.js} +1 -1
- package/dist/{chunk-MOQTSJNZ.js → chunk-TQFHRD5B.js} +1 -1
- package/dist/{chunk-AZB34RT6.js → chunk-UQJNUESP.js} +1 -1
- package/dist/{chunk-6YSTU453.js → chunk-UROUVE3D.js} +1 -1
- package/dist/{chunk-55HFAX5Y.js → chunk-V6L25LFD.js} +1 -1
- package/dist/{chunk-AZK4Y5DB.js → chunk-WLLIFRRE.js} +1 -1
- package/dist/{chunk-LEUXIXIS.js → chunk-WSUKOU3X.js} +1 -1
- package/dist/{chunk-WDLAPZPN.js → chunk-XAGNGQL3.js} +1 -1
- package/dist/{chunk-VF54EOLZ.js → chunk-XCN2YPWI.js} +1 -1
- package/dist/{chunk-TZC4CYPD.js → chunk-YLEXR62G.js} +1 -1
- package/dist/{chunk-3IAZMJA4.js → chunk-ZJABRHIP.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/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/instructions/create.js +1 -1
- package/dist/commands/instructions/dedupe.js +1 -1
- 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/resume-scoped-outcomes.js +1 -1
- package/dist/commands/research/tail-transcript.js +1 -1
- package/dist/commands/service/install.js +1 -1
- 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 -1
- package/dist/commands/suggestions/auto.js +1 -1
- 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 -1
- package/dist/dashboard/Dashboard.js +1 -1
- package/dist/dashboard/data.js +1 -1
- package/dist/dashboard/launcher/LauncherOverlay.js +1 -1
- package/dist/dashboard/launcher/api.js +1 -1
- package/dist/dashboard/launcher/useLaunchJobs.js +1 -1
- package/dist/dashboard/panels/measurement.js +1 -1
- package/dist/dist-ZJY72TUD.js +1 -0
- package/dist/lib/active-org-refresh.js +1 -1
- package/dist/lib/agent-loop.js +1 -1
- package/dist/lib/agent-presence.js +1 -1
- package/dist/lib/antigravity-transcript.js +1 -1
- package/dist/lib/api-client.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-grader.js +1 -1
- package/dist/lib/eval-meta-judge.js +1 -1
- package/dist/lib/eval-resume.js +1 -1
- 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 -1
- package/dist/lib/insights/generation/installed-asks.js +1 -1
- package/dist/lib/insights/generation/project-evidence.js +1 -1
- package/dist/lib/insights/generation/quality-review.js +1 -0
- package/dist/lib/insights/nomination/nominate.js +1 -1
- package/dist/lib/instruction-proposer.js +1 -1
- package/dist/lib/instruction-restoration.js +1 -1
- package/dist/lib/instructions/acceptance/accept-events.js +1 -1
- package/dist/lib/instructions/acceptance/accept-hook.js +1 -1
- package/dist/lib/instructions/acceptance/hook-install.js +1 -1
- package/dist/lib/instructions/acceptance/reverse-applications.js +1 -1
- package/dist/lib/instructions/acceptance/suggestion-accept.js +1 -1
- package/dist/lib/jobs/handlers/cron-auto-accept-suggestions.js +1 -1
- package/dist/lib/jobs/handlers/cron-eval-autorun.js +1 -1
- package/dist/lib/jobs/handlers/cron-instruction-evolution.js +1 -1
- package/dist/lib/jobs/handlers/cron-instruction-training.js +1 -1
- package/dist/lib/jobs/handlers/cron-reconcile-attribution.js +1 -1
- package/dist/lib/jobs/handlers/cron-refine-cases.js +1 -1
- package/dist/lib/jobs/handlers/cron-refresh-pricing.js +1 -1
- package/dist/lib/jobs/handlers/cron-retire-unused-skills.js +1 -1
- package/dist/lib/jobs/handlers/cron-suggest-instructions.js +1 -1
- package/dist/lib/jobs/handlers/distill-memories.js +1 -1
- package/dist/lib/jobs/handlers/finalize-scoped-launch.js +1 -1
- package/dist/lib/jobs/handlers/harbor-ab.js +1 -1
- package/dist/lib/jobs/handlers/prepare-suggestion-live.js +1 -1
- package/dist/lib/jobs/handlers/process-changelog.js +1 -1
- package/dist/lib/jobs/handlers/process-conversation.js +1 -1
- package/dist/lib/jobs/handlers/process-eval.js +1 -1
- package/dist/lib/jobs/handlers/process-insights.js +1 -1
- package/dist/lib/jobs/handlers/process-judge-review.js +1 -1
- package/dist/lib/jobs/handlers/process-launch.js +1 -1
- package/dist/lib/jobs/handlers/process-memory-ab.js +1 -1
- package/dist/lib/jobs/handlers/process-run-cleanup.js +1 -1
- package/dist/lib/jobs/handlers/process-session-goal.js +1 -1
- package/dist/lib/jobs/handlers/process-suggestion-adoption.js +1 -0
- package/dist/lib/jobs/handlers/process-suggestion-discovery.js +1 -0
- package/dist/lib/jobs/handlers/process-suggestion-eval.js +1 -1
- package/dist/lib/jobs/shed-retry.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/measurement-llm.js +1 -1
- package/dist/lib/projects/workspace/worktree.js +1 -1
- package/dist/lib/refine-cases.js +1 -1
- package/dist/lib/research-client.js +1 -1
- package/dist/lib/retraction.js +1 -1
- package/dist/lib/setup-steps.js +1 -1
- package/dist/lib/suggestion-discovery.js +1 -0
- package/dist/lib/telemetry.js +1 -1
- package/dist/lib/terminal-target-heartbeat.js +1 -1
- package/dist/lib/transcript-sync.js +1 -1
- package/dist/lib/work-report.js +1 -1
- package/oclif.manifest.json +225 -225
- package/package.json +4 -4
- package/dist/chunk-26XE3JCL.js +0 -9
- package/dist/chunk-2IQBXE6F.js +0 -1
- package/dist/chunk-CQD2R3BA.js +0 -3
- package/dist/chunk-GLZBTGN5.js +0 -15
- package/dist/chunk-HTAHNQZJ.js +0 -1
- package/dist/chunk-J4W6GNCF.js +0 -2
- package/dist/chunk-KSKC5SEQ.js +0 -12
- package/dist/chunk-LARY6ZFT.js +0 -1
- package/dist/chunk-LMNUO32P.js +0 -1
- package/dist/chunk-RCJTCLZO.js +0 -1
- package/dist/chunk-VFWQ2W4B.js +0 -1
- package/dist/chunk-WWL4HNXM.js +0 -28
- package/dist/chunk-X6CF5KTW.js +0 -48
- package/dist/dist-WGZCHQTC.js +0 -1
package/dist/chunk-HTAHNQZJ.js
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{a as m,c as Ks}from"./chunk-ZLLER3HP.js";import{boolean as _n,date as Cs,index as to,integer as qs,jsonb as Os,pgTable as oo,text as j,timestamp as F,uniqueIndex as Ms,uuid as he}from"drizzle-orm/pg-core";var pn=oo("announcements",{id:he("id").primaryKey().defaultRandom(),version:j("version").notNull().unique(),releaseDate:Cs("release_date").notNull(),subject:j("subject").notNull(),htmlBody:j("html_body").notNull(),textBody:j("text_body").notNull(),sections:Os("sections").notNull().default({}),status:j("status").notNull().default("draft"),recipientCount:qs("recipient_count"),sentAt:F("sent_at",{withTimezone:!0}),sentBy:he("sent_by"),error:j("error"),createdAt:F("created_at",{withTimezone:!0}).notNull().defaultNow(),updatedAt:F("updated_at",{withTimezone:!0}).notNull().defaultNow()},e=>[to("idx_announcements_status").on(e.status),to("idx_announcements_created").on(e.createdAt)]),mn=oo("announcement_deliveries",{id:he("id").primaryKey().defaultRandom(),announcementId:he("announcement_id").notNull(),userId:he("user_id").notNull(),email:j("email").notNull(),status:j("status").notNull().default("pending"),providerId:j("provider_id"),error:j("error"),sentAt:F("sent_at",{withTimezone:!0}),createdAt:F("created_at",{withTimezone:!0}).notNull().defaultNow()},e=>[Ms("uniq_announcement_deliveries_announcement_user").on(e.announcementId,e.userId),to("idx_announcement_deliveries_user").on(e.userId,e.createdAt)]),fn=oo("notification_preferences",{userId:he("user_id").primaryKey(),productAnnouncements:_n("product_announcements").notNull().default(!0),weeklyDigest:_n("weekly_digest").notNull().default(!0),unsubscribeToken:j("unsubscribe_token").notNull().unique(),unsubscribedAt:F("unsubscribed_at",{withTimezone:!0}),createdAt:F("created_at",{withTimezone:!0}).notNull().defaultNow(),updatedAt:F("updated_at",{withTimezone:!0}).notNull().defaultNow()});import{boolean as ft,integer as He,jsonb as Ls,pgTable as Hs,real as hn,text as Ue,timestamp as no,uuid as gn}from"drizzle-orm/pg-core";import{pgTable as mt,text as ge,timestamp as Le,jsonb as Nn,uuid as se,primaryKey as xn}from"drizzle-orm/pg-core";var l=mt("organizations",{id:se("id").primaryKey().defaultRandom(),name:ge("name").unique().notNull(),slug:ge("slug").unique().notNull(),metadata:Nn("metadata"),createdAt:Le("created_at",{withTimezone:!0}).defaultNow(),updatedAt:Le("updated_at",{withTimezone:!0}).defaultNow()}),v=mt("teams",{id:se("id").primaryKey().defaultRandom(),orgId:se("org_id").references(()=>l.id,{onDelete:"cascade"}),name:ge("name").notNull(),slug:ge("slug").notNull(),metadata:Nn("metadata"),createdAt:Le("created_at",{withTimezone:!0}).defaultNow()}),ve=mt("user_organizations",{userId:se("user_id").notNull(),orgId:se("org_id").references(()=>l.id,{onDelete:"cascade"}).notNull(),role:ge("role").notNull().default("member"),createdAt:Le("created_at",{withTimezone:!0}).defaultNow()},e=>[xn({columns:[e.userId,e.orgId]})]),Ie=mt("user_teams",{userId:se("user_id").notNull(),teamId:se("team_id").references(()=>v.id,{onDelete:"cascade"}).notNull(),role:ge("role").notNull().default("member"),createdAt:Le("created_at",{withTimezone:!0}).defaultNow()},e=>[xn({columns:[e.userId,e.teamId]})]);var o=Hs("profiles",{id:gn("id").primaryKey(),email:Ue("email"),measurementPreferences:Ls("measurement_preferences"),displayName:Ue("display_name"),activeOrgId:gn("active_org_id").references(()=>l.id,{onDelete:"set null"}),isSuperadmin:ft("is_superadmin").notNull().default(!1),claudeCodePlan:Ue("claude_code_plan"),planSource:Ue("plan_source").notNull().default("detected"),setupCompletedAt:no("setup_completed_at",{withTimezone:!0}),liveSendSkipped:ft("live_send_skipped").notNull().default(!1),autoAcceptSuggestions:ft("auto_accept_suggestions").notNull().default(!0),evolutionPaused:ft("evolution_paused").notNull().default(!1),suggestionConfidenceThreshold:hn("suggestion_confidence_threshold").notNull().default(.7),autoAcceptMinScore:hn("auto_accept_min_score"),autoAcceptMaxPerRun:He("auto_accept_max_per_run"),autoAcceptMaxPerWindow:He("auto_accept_max_per_window"),autoAcceptWindowDays:He("auto_accept_window_days"),trialMaxConcurrent:He("trial_max_concurrent"),trialMaxPerRun:He("trial_max_per_run"),harborAbCadence:Ue("harbor_ab_cadence").notNull().default("off"),createdAt:no("created_at",{withTimezone:!0}).defaultNow(),updatedAt:no("updated_at",{withTimezone:!0}).defaultNow()});import{pgTable as Us,text as ro,timestamp as Nt,uuid as xt,index as vn}from"drizzle-orm/pg-core";var C=Us("org_invitations",{id:xt("id").primaryKey().defaultRandom(),orgId:xt("org_id").notNull().references(()=>l.id,{onDelete:"cascade"}),email:ro("email").notNull(),role:ro("role").notNull().default("member"),teamId:xt("team_id").references(()=>v.id,{onDelete:"set null"}),invitedBy:xt("invited_by").notNull().references(()=>o.id,{onDelete:"cascade"}),token:ro("token").notNull().unique(),expiresAt:Nt("expires_at",{withTimezone:!0}).notNull(),acceptedAt:Nt("accepted_at",{withTimezone:!0}),revokedAt:Nt("revoked_at",{withTimezone:!0}),createdAt:Nt("created_at",{withTimezone:!0}).notNull().defaultNow()},e=>[vn("idx_org_invitations_token").on(e.token),vn("idx_org_invitations_org").on(e.orgId)]);import{pgTable as so,text as N,timestamp as $,jsonb as ht,uuid as k,integer as gt,boolean as Bs,uniqueIndex as vt,index as Be}from"drizzle-orm/pg-core";var n=so("instructions",{id:k("id").primaryKey().defaultRandom(),name:N("name").notNull(),description:N("description").notNull(),type:N("type").notNull().default("instruction"),scope:N("scope").notNull(),scopeRef:k("scope_ref"),version:N("version").notNull(),content:N("content").notNull(),frontmatter:ht("frontmatter").notNull(),slots:ht("slots"),tags:N("tags").array(),compatibility:N("compatibility").array(),createdBy:k("created_by"),createdAt:$("created_at",{withTimezone:!0}).defaultNow(),updatedAt:$("updated_at",{withTimezone:!0}).defaultNow(),archived:Bs("archived").default(!1),archivedAt:$("archived_at",{withTimezone:!0}),archivedBy:k("archived_by"),forkedFromId:k("forked_from_id").references(()=>n.id,{onDelete:"set null"}),upstreamVersion:N("upstream_version"),badge:N("badge"),contentHash:N("content_hash"),contextIdentity:N("context_identity"),scanScore:gt("scan_score"),scanFindings:ht("scan_findings"),popularityScore:gt("popularity_score"),sourceUpdatedAt:$("source_updated_at",{withTimezone:!0})},e=>[vt("instructions_name_scope_ref_idx").on(e.name,e.scope,e.scopeRef),Be("idx_instructions_scope").on(e.scope,e.scopeRef),Be("idx_instructions_created_by").on(e.createdBy),Be("idx_instructions_context_identity").on(e.createdBy,e.contextIdentity),Be("idx_instructions_public_recency").on(e.scope,e.sourceUpdatedAt.desc())]),In=so("instruction_version_identities",{id:k("id").primaryKey().defaultRandom(),instructionId:k("instruction_id").notNull().references(()=>n.id,{onDelete:"cascade"}),contentHash:N("content_hash").notNull(),versionOrdinal:gt("version_ordinal").notNull(),content:N("content"),firstSeenAt:$("first_seen_at",{withTimezone:!0}).notNull().defaultNow(),lastSeenAt:$("last_seen_at",{withTimezone:!0}).notNull().defaultNow(),createdAt:$("created_at",{withTimezone:!0}).notNull().defaultNow()},e=>[vt("instruction_version_identities_hash_unique").on(e.instructionId,e.contentHash),vt("instruction_version_identities_ordinal_unique").on(e.instructionId,e.versionOrdinal),Be("idx_ivi_instruction").on(e.instructionId)]),ye=so("instruction_versions",{id:k("id").primaryKey().defaultRandom(),instructionId:k("instruction_id").references(()=>n.id,{onDelete:"cascade"}),versionNumber:gt("version_number").notNull(),content:N("content").notNull(),frontmatter:ht("frontmatter").notNull(),changeSummary:N("change_summary"),createdBy:k("created_by"),createdAt:$("created_at",{withTimezone:!0}).defaultNow()},e=>[vt("instruction_versions_instruction_version_idx").on(e.instructionId,e.versionNumber)]);import{pgTable as Gs,text as Vs,timestamp as Fs,jsonb as $s,uuid as io,index as yn}from"drizzle-orm/pg-core";var we=Gs("instruction_events",{id:io("id").primaryKey().defaultRandom(),instructionId:io("instruction_id").notNull().references(()=>n.id,{onDelete:"cascade"}),eventType:Vs("event_type").notNull(),actorId:io("actor_id").notNull(),metadata:$s("metadata"),createdAt:Fs("created_at",{withTimezone:!0}).defaultNow()},e=>[yn("idx_instruction_events_instruction").on(e.instructionId),yn("idx_instruction_events_type").on(e.eventType)]);import{boolean as Js,jsonb as Qs,pgTable as uo,primaryKey as wn,text as ie,timestamp as Ge,uniqueIndex as ao,uuid as ae}from"drizzle-orm/pg-core";import{sql as Ys}from"drizzle-orm";var s=uo("projects",{id:ae("id").primaryKey().defaultRandom(),orgId:ae("org_id").references(()=>l.id,{onDelete:"cascade"}),name:ie("name").notNull(),description:ie("description"),githubRepo:ie("github_repo"),gitRemoteUrl:ie("git_remote_url"),gitRootCommit:ie("git_root_commit"),gitRemoteAliases:ie("git_remote_aliases").array().notNull().default([]),metadata:Qs("metadata"),createdBy:ae("created_by"),createdAt:Ge("created_at",{withTimezone:!0}).defaultNow(),updatedAt:Ge("updated_at",{withTimezone:!0}).defaultNow()},e=>[ao("projects_org_name_idx").on(e.orgId,e.name),ao("projects_git_remote_url_unique").on(e.gitRemoteUrl).where(Ys`${e.gitRemoteUrl} IS NOT NULL`)]),J=uo("project_instructions",{projectId:ae("project_id").references(()=>s.id,{onDelete:"cascade"}).notNull(),instructionId:ae("instruction_id").references(()=>n.id,{onDelete:"cascade"}).notNull(),addedAt:Ge("added_at",{withTimezone:!0}).defaultNow(),addedBy:ae("added_by")},e=>[wn({columns:[e.projectId,e.instructionId]})]),Tn=uo("project_checkouts",{projectId:ae("project_id").references(()=>s.id,{onDelete:"cascade"}).notNull(),path:ie("path").notNull(),isWorktree:Js("is_worktree").notNull().default(!1),firstSeen:Ge("first_seen",{withTimezone:!0}).notNull().defaultNow(),lastSeen:Ge("last_seen",{withTimezone:!0}).notNull().defaultNow()},e=>[wn({columns:[e.projectId,e.path]}),ao("project_checkouts_path_unique").on(e.path)]);import{pgTable as _o,text as I,timestamp as Ve,jsonb as de,uuid as q,integer as yt,uniqueIndex as Dn,index as E}from"drizzle-orm/pg-core";import{pgTable as Ws,text as Te,timestamp as lo,jsonb as An,uuid as It,integer as Xs,boolean as Zs,index as co}from"drizzle-orm/pg-core";var h=Ws("agent_runs",{id:It("id").primaryKey().defaultRandom(),userId:It("user_id").notNull().references(()=>o.id,{onDelete:"cascade"}),orgId:It("org_id").references(()=>l.id,{onDelete:"set null"}),projectId:It("project_id").references(()=>s.id,{onDelete:"set null"}),projectPath:Te("project_path"),gitRemote:Te("git_remote"),baseBranch:Te("base_branch"),title:Te("title"),prompt:Te("prompt"),toolSpec:An("tool_spec").notNull().default([]),autoWorktree:Zs("auto_worktree").notNull().default(!0),status:Te("status").notNull().default("pending"),sessionCount:Xs("session_count").notNull().default(0),metadata:An("metadata").notNull().default({}),createdAt:lo("created_at",{withTimezone:!0}).notNull().defaultNow(),updatedAt:lo("updated_at",{withTimezone:!0}).notNull().defaultNow(),completedAt:lo("completed_at",{withTimezone:!0})},e=>[co("idx_agent_runs_user").on(e.userId),co("idx_agent_runs_org_created").on(e.orgId,e.createdAt),co("idx_agent_runs_project").on(e.projectId)]);var a=_o("sessions",{id:q("id").primaryKey().defaultRandom(),userId:q("user_id").notNull().references(()=>o.id,{onDelete:"cascade"}),externalSessionId:I("external_session_id"),projectId:q("project_id").references(()=>s.id,{onDelete:"set null"}),orgId:q("org_id").references(()=>l.id,{onDelete:"set null"}),tool:I("tool").notNull(),projectPath:I("project_path"),gitBranch:I("git_branch"),startedAt:Ve("started_at",{withTimezone:!0}).notNull(),endedAt:Ve("ended_at",{withTimezone:!0}),eventCount:yt("event_count").default(0),tokenUsage:de("token_usage"),analysis:de("analysis"),analyzedAt:Ve("analyzed_at",{withTimezone:!0}),analyzedEventCount:yt("analyzed_event_count"),analyzedTurnCount:yt("analyzed_turn_count"),metadata:de("metadata").default({}),origin:I("origin").notNull().default("unknown"),runId:q("run_id").references(()=>h.id,{onDelete:"set null"}),model:I("model"),harnessVersion:I("harness_version"),createdAt:Ve("created_at",{withTimezone:!0}).defaultNow()},e=>[E("idx_sessions_user").on(e.userId),E("idx_sessions_tool").on(e.tool),E("idx_sessions_started_at").on(e.startedAt),E("idx_sessions_project").on(e.projectId),E("idx_sessions_org_started_at").on(e.orgId,e.startedAt),E("idx_sessions_run").on(e.runId),Dn("idx_sessions_user_external").on(e.userId,e.externalSessionId)]),Ae=_o("session_events",{id:q("id").primaryKey().defaultRandom(),sessionId:q("session_id").notNull().references(()=>a.id,{onDelete:"cascade"}),sequence:yt("sequence").notNull(),eventType:I("event_type").notNull(),content:I("content"),toolName:I("tool_name"),toolInput:de("tool_input"),toolOutput:de("tool_output"),tokenUsage:de("token_usage"),model:I("model"),timestamp:Ve("timestamp",{withTimezone:!0}).notNull(),metadata:de("metadata").default({})},e=>[Dn("session_events_session_sequence_idx").on(e.sessionId,e.sequence),E("idx_session_events_session_id").on(e.sessionId),E("idx_session_events_event_type").on(e.eventType),E("idx_session_events_model").on(e.model)]),Q=_o("session_instructions",{sessionId:q("session_id").notNull().references(()=>a.id,{onDelete:"cascade"}),instructionId:q("instruction_id").notNull().references(()=>n.id,{onDelete:"cascade"}),linkMethod:I("link_method").notNull(),contentHash:I("content_hash")},e=>[E("idx_session_instructions_instruction_id").on(e.instructionId)]);import{pgTable as zn,text as wt,timestamp as jn,uuid as S,integer as Rn,index as De,unique as ei}from"drizzle-orm/pg-core";var O=zn("treatment_assignments",{id:S("id").primaryKey().defaultRandom(),userId:S("user_id").notNull().references(()=>o.id,{onDelete:"cascade"}),treatmentType:wt("treatment_type").notNull(),treatmentId:S("treatment_id").notNull(),treatmentVersion:Rn("treatment_version").notNull().default(1),projectId:S("project_id").references(()=>s.id,{onDelete:"set null"}),assignedBy:S("assigned_by").references(()=>o.id,{onDelete:"set null"}),method:wt("method").notNull(),assignedAt:jn("assigned_at",{withTimezone:!0}).notNull().defaultNow()},e=>[De("idx_treatment_assignments_user").on(e.userId),De("idx_treatment_assignments_treatment").on(e.treatmentType,e.treatmentId),De("idx_treatment_assignments_project").on(e.projectId)]),M=zn("treatment_exposures",{id:S("id").primaryKey().defaultRandom(),sessionId:S("session_id").notNull().references(()=>a.id,{onDelete:"cascade"}),userId:S("user_id").notNull().references(()=>o.id,{onDelete:"cascade"}),treatmentType:wt("treatment_type").notNull(),treatmentId:S("treatment_id").notNull(),treatmentVersion:Rn("treatment_version").notNull().default(1),assignmentId:S("assignment_id").references(()=>O.id,{onDelete:"set null"}),method:wt("method").notNull(),exposedAt:jn("exposed_at",{withTimezone:!0}).notNull().defaultNow()},e=>[ei("treatment_exposures_unique").on(e.sessionId,e.treatmentType,e.treatmentId,e.treatmentVersion),De("idx_treatment_exposures_treatment").on(e.treatmentType,e.treatmentId),De("idx_treatment_exposures_user").on(e.userId),De("idx_treatment_exposures_session").on(e.sessionId)]);import{pgTable as ti,text as po,timestamp as oi,uuid as Tt,integer as ni,index as kn,uniqueIndex as ri}from"drizzle-orm/pg-core";var En=ti("pending_treatment_exposures",{id:Tt("id").primaryKey().defaultRandom(),userId:Tt("user_id").notNull().references(()=>o.id,{onDelete:"cascade"}),externalSessionId:po("external_session_id").notNull(),treatmentType:po("treatment_type").notNull(),treatmentId:Tt("treatment_id").notNull(),treatmentVersion:ni("treatment_version").notNull().default(1),method:po("method").notNull().default("injected"),projectId:Tt("project_id").references(()=>s.id,{onDelete:"set null"}),createdAt:oi("created_at",{withTimezone:!0}).notNull().defaultNow()},e=>[ri("pending_treatment_exposures_unique").on(e.externalSessionId,e.treatmentType,e.treatmentId,e.treatmentVersion),kn("idx_pending_treatment_exposures_ext").on(e.externalSessionId),kn("idx_pending_treatment_exposures_user").on(e.userId)]);import{pgTable as Sn,text as Y,timestamp as bn,uuid as ze,numeric as si,index as mo,unique as ii}from"drizzle-orm/pg-core";var ue=Sn("instruction_experiments",{id:ze("id").primaryKey().defaultRandom(),userId:ze("user_id").notNull().references(()=>o.id,{onDelete:"cascade"}),instructionId:ze("instruction_id").notNull().references(()=>n.id,{onDelete:"cascade"}),projectPath:Y("project_path").notNull(),status:Y("status").notNull().default("running"),treatedShare:si("treated_share").notNull().default("0.5"),salt:Y("salt").notNull(),contentHash:Y("content_hash"),source:Y("source").notNull().default("manual"),stoppedReason:Y("stopped_reason"),createdAt:bn("created_at",{withTimezone:!0}).notNull().defaultNow()},e=>[mo("idx_instruction_experiments_lookup").on(e.userId,e.projectPath)]),Pn=Sn("instruction_experiment_arms",{id:ze("id").primaryKey().defaultRandom(),experimentId:ze("experiment_id").notNull().references(()=>ue.id,{onDelete:"cascade"}),userId:ze("user_id").notNull().references(()=>o.id,{onDelete:"cascade"}),externalSessionId:Y("external_session_id").notNull(),arm:Y("arm").notNull(),assignedAt:bn("assigned_at",{withTimezone:!0}).notNull().defaultNow()},e=>[ii("instruction_experiment_arms_unique").on(e.experimentId,e.externalSessionId),mo("idx_instruction_experiment_arms_experiment").on(e.experimentId,e.arm),mo("idx_instruction_experiment_arms_session").on(e.externalSessionId)]);import{index as Un,jsonb as Je,pgTable as Bn,text as A,timestamp as Qe,unique as Hn,uniqueIndex as ci,uuid as _e}from"drizzle-orm/pg-core";import{pgTable as Ln,uuid as Re,text as jt,jsonb as Mn,timestamp as ho,uniqueIndex as di,integer as ui,unique as li}from"drizzle-orm/pg-core";import{pgTable as ai,text as At,timestamp as $e,jsonb as Dt,uuid as No,index as zt,integer as xo}from"drizzle-orm/pg-core";import{sql as fo}from"drizzle-orm";import{pgTable as le,text as _,timestamp as g,jsonb as w,uuid as c,integer as L,boolean as Fe,index as f,unique as Kn}from"drizzle-orm/pg-core";var r=le("eval_targets",{id:c("id").primaryKey().defaultRandom(),userId:c("user_id").notNull(),name:_("name").notNull(),type:_("type").notNull(),content:_("content").notNull(),description:_("description").notNull().default(""),metadata:w("metadata").notNull().default({}),version:L("version").notNull().default(1),parentId:c("parent_id").references(()=>r.id,{onDelete:"set null"}),instructionId:c("instruction_id").references(()=>n.id,{onDelete:"set null"}),projectPath:_("project_path"),createdAt:g("created_at",{withTimezone:!0}).defaultNow(),updatedAt:g("updated_at",{withTimezone:!0}).defaultNow()},e=>[f("eval_targets_name_user_idx").on(e.name,e.userId),f("idx_eval_targets_user").on(e.userId),f("idx_eval_targets_type").on(e.type),f("idx_eval_targets_parent").on(e.parentId),f("idx_eval_targets_instruction").on(e.instructionId).where(fo`${e.instructionId} IS NOT NULL`),f("idx_eval_targets_project").on(e.projectPath).where(fo`${e.projectPath} IS NOT NULL`)]),H=le("evals",{id:c("id").primaryKey().defaultRandom(),evalTargetId:c("eval_target_id").notNull().references(()=>r.id,{onDelete:"cascade"}),name:_("name").notNull(),prompt:_("prompt").notNull(),expectedOutput:_("expected_output").notNull().default(""),files:w("files").notNull().default([]),expectations:w("expectations").notNull().default([]),retiredAt:g("retired_at",{withTimezone:!0}),retiredReason:_("retired_reason"),createdAt:g("created_at",{withTimezone:!0}).defaultNow(),updatedAt:g("updated_at",{withTimezone:!0}).defaultNow(),contentUpdatedAt:g("content_updated_at",{withTimezone:!0}).notNull().defaultNow()},e=>[f("idx_evals_target").on(e.evalTargetId),f("idx_evals_target_active").on(e.evalTargetId).where(fo`${e.retiredAt} IS NULL`)]),b=le("eval_runs",{id:c("id").primaryKey().defaultRandom(),jobId:c("job_id"),evalId:c("eval_id").notNull().references(()=>H.id,{onDelete:"cascade"}),evalTargetId:c("eval_target_id").notNull().references(()=>r.id,{onDelete:"cascade"}),evalTargetVersion:L("eval_target_version").notNull(),configuration:_("configuration").notNull(),runNumber:L("run_number").notNull().default(1),iteration:L("iteration").notNull().default(1),status:_("status").notNull().default("completed"),outputs:w("outputs").notNull().default({}),timing:w("timing").notNull().default({}),grading:w("grading").notNull().default({}),comparison:w("comparison"),createdAt:g("created_at",{withTimezone:!0}).defaultNow()},e=>[f("idx_eval_runs_eval").on(e.evalId),f("idx_eval_runs_target").on(e.evalTargetId),f("idx_eval_runs_iteration").on(e.evalTargetId,e.iteration)]),Cn=le("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:L("target_a_version").notNull(),targetBVersion:L("target_b_version").notNull(),isSwapped:Fe("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:_("raw_output"),model:_("model"),status:_("status").notNull().default("completed"),createdAt:g("created_at",{withTimezone:!0}).defaultNow()},e=>[f("idx_eval_comparisons_target_a").on(e.targetAId),f("idx_eval_comparisons_target_b").on(e.targetBId),f("idx_eval_comparisons_user").on(e.userId)]),qn=le("eval_grade_annotations",{id:c("id").primaryKey().defaultRandom(),userId:c("user_id").notNull(),evalRunId:c("eval_run_id").notNull().references(()=>b.id,{onDelete:"cascade"}),evalTargetId:c("eval_target_id").notNull().references(()=>r.id,{onDelete:"cascade"}),expectationIndex:L("expectation_index").notNull(),expectationText:_("expectation_text").notNull(),judgePassed:Fe("judge_passed").notNull(),judgeMethod:_("judge_method").notNull(),judgeModel:_("judge_model"),verdict:_("verdict").notNull(),flag:_("flag"),note:_("note"),createdAt:g("created_at",{withTimezone:!0}).defaultNow(),updatedAt:g("updated_at",{withTimezone:!0}).defaultNow()},e=>[f("idx_eval_grade_annotations_target").on(e.evalTargetId),f("idx_eval_grade_annotations_run").on(e.evalRunId),Kn("eval_grade_annotations_eval_run_id_expectation_index_key").on(e.evalRunId,e.expectationIndex)]),On=le("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(()=>b.id,{onDelete:"cascade"}),expectationIndex:L("expectation_index").notNull(),expectationText:_("expectation_text").notNull(),judgePassed:Fe("judge_passed").notNull(),humanPassed:Fe("human_passed").notNull(),reviewerEngine:_("reviewer_engine").notNull(),reviewerModel:_("reviewer_model").notNull(),reviewerPassed:Fe("reviewer_passed").notNull(),resolvedAt:g("resolved_at",{withTimezone:!0}),resolution:_("resolution"),createdAt:g("created_at",{withTimezone:!0}).defaultNow(),updatedAt:g("updated_at",{withTimezone:!0}).defaultNow()},e=>[f("idx_jrv_target").on(e.evalTargetId),Kn("judge_reviewer_verdicts_eval_run_id_expectation_index_review_key").on(e.evalRunId,e.expectationIndex,e.reviewerModel)]),je=le("benchmarks",{id:c("id").primaryKey().defaultRandom(),evalTargetId:c("eval_target_id").notNull().references(()=>r.id,{onDelete:"cascade"}),iteration:L("iteration").notNull().default(1),runSummary:w("run_summary").notNull().default({}),notes:w("notes").notNull().default([]),feedback:w("feedback"),createdAt:g("created_at",{withTimezone:!0}).defaultNow()},e=>[f("idx_benchmarks_target").on(e.evalTargetId)]);var P=ai("eval_jobs",{id:No("id").primaryKey().defaultRandom(),userId:No("user_id").notNull(),evalTargetId:No("eval_target_id").notNull().references(()=>r.id,{onDelete:"cascade"}),status:At("status").notNull().default("pending"),config:Dt("config").notNull().default({}),progress:Dt("progress").notNull().default({}),result:Dt("result"),error:At("error"),attempts:xo("attempts").notNull().default(0),taskKind:At("task_kind"),payload:Dt("payload"),claimedBy:At("claimed_by"),claimedAt:$e("claimed_at",{withTimezone:!0}),leaseExpiresAt:$e("lease_expires_at",{withTimezone:!0}),leaseRecoveries:xo("lease_recoveries").notNull().default(0),hostSuspendRecoveries:xo("host_suspend_recoveries").notNull().default(0),createdAt:$e("created_at",{withTimezone:!0}).defaultNow(),updatedAt:$e("updated_at",{withTimezone:!0}).defaultNow(),completedAt:$e("completed_at",{withTimezone:!0})},e=>[zt("idx_eval_jobs_user").on(e.userId),zt("idx_eval_jobs_target").on(e.evalTargetId),zt("idx_eval_jobs_status").on(e.status),zt("idx_eval_jobs_pending").on(e.userId,e.status)]);var T=Ln("performance_studies",{id:Re("id").primaryKey().defaultRandom(),userId:Re("user_id").notNull(),evalTargetId:Re("eval_target_id").notNull().references(()=>r.id,{onDelete:"cascade"}),projectPath:jt("project_path").notNull(),protocol:Mn("protocol").notNull(),protocolHash:jt("protocol_hash").notNull(),result:Mn("result"),finalizedAt:ho("finalized_at",{withTimezone:!0}),createdAt:ho("created_at",{withTimezone:!0}).defaultNow().notNull()},e=>[di("performance_studies_protocol_unique").on(e.userId,e.evalTargetId,e.protocolHash)]),ce=Ln("performance_study_calls",{id:Re("id").primaryKey().defaultRandom(),studyId:Re("study_id").notNull().references(()=>T.id,{onDelete:"cascade"}),jobId:Re("job_id").notNull().references(()=>P.id,{onDelete:"cascade"}),taskId:jt("task_id").notNull(),arm:jt("arm").notNull(),repetition:ui("repetition").notNull(),reservedAt:ho("reserved_at",{withTimezone:!0}).defaultNow().notNull()},e=>[li("performance_study_calls_study_id_task_id_arm_repetition_key").on(e.studyId,e.taskId,e.arm,e.repetition)]);var Ye=Bn("scoped_live_confirmations",{id:_e("id").primaryKey().defaultRandom(),userId:_e("user_id").notNull(),experimentId:_e("experiment_id").notNull().references(()=>ue.id,{onDelete:"cascade"}),sourceStudyId:_e("source_study_id").references(()=>T.id,{onDelete:"restrict"}),protocol:Je("protocol").notNull(),protocolHash:A("protocol_hash").notNull(),salt:A("salt").notNull(),status:A("status").notNull().default("running"),decision:A("decision"),decisionDetail:Je("decision_detail"),startedAt:Qe("started_at",{withTimezone:!0}).notNull().defaultNow(),endedAt:Qe("ended_at",{withTimezone:!0})},e=>[ci("scoped_live_confirmations_experiment_unique").on(e.experimentId),Un("scoped_live_confirmations_user_status").on(e.userId,e.status)]),Rt=Bn("scoped_live_confirmation_assignments",{id:_e("id").primaryKey().defaultRandom(),confirmationId:_e("confirmation_id").notNull().references(()=>Ye.id,{onDelete:"cascade"}),userId:_e("user_id").notNull(),taskId:A("task_id").notNull(),externalSessionId:A("external_session_id").notNull(),arm:A("arm").notNull(),phase:A("phase").notNull().default("trial"),model:A("model").notNull(),configurationHash:A("configuration_hash").notNull(),enrollmentEvidence:Je("enrollment_evidence"),taskEvidence:Je("task_evidence"),assignedAt:Qe("assigned_at",{withTimezone:!0}).notNull().defaultNow(),deliveryHash:A("delivery_hash"),deliveredAt:Qe("delivered_at",{withTimezone:!0}),outcome:A("outcome"),outcomeDetail:Je("outcome_detail"),outcomeAt:Qe("outcome_at",{withTimezone:!0})},e=>[Hn("scoped_live_confirmation_task_unique").on(e.confirmationId,e.taskId),Hn("scoped_live_confirmation_session_unique").on(e.confirmationId,e.externalSessionId),Un("scoped_live_confirmation_assignments_confirmation_arm").on(e.confirmationId,e.arm)]);import{pgTable as _i,text as go,timestamp as pi,uuid as kt,numeric as vo,integer as Gn,jsonb as mi,index as fi,unique as Ni}from"drizzle-orm/pg-core";var Vn=_i("instruction_verdicts",{id:kt("id").primaryKey().defaultRandom(),userId:kt("user_id").notNull().references(()=>o.id,{onDelete:"cascade"}),instructionId:kt("instruction_id").notNull().references(()=>n.id,{onDelete:"cascade"}),contentHash:go("content_hash").notNull(),projectPath:go("project_path").notNull(),segment:mi("segment").notNull().default({}),decision:go("decision").notNull(),delta:vo("delta").notNull(),ciLower:vo("ci_lower").notNull(),ciUpper:vo("ci_upper").notNull(),nTreated:Gn("n_treated").notNull(),nControl:Gn("n_control").notNull(),experimentId:kt("experiment_id").references(()=>ue.id,{onDelete:"set null"}),decidedAt:pi("decided_at",{withTimezone:!0}).notNull().defaultNow()},e=>[Ni("instruction_verdicts_unique").on(e.instructionId,e.contentHash,e.projectPath),fi("idx_instruction_verdicts_render").on(e.userId,e.projectPath)]);import{pgTable as xi,text as Et,timestamp as Io,uuid as yo,integer as hi,unique as gi,index as vi}from"drizzle-orm/pg-core";var Fn=xi("insight_recommendation_log",{id:yo("id").primaryKey().defaultRandom(),userId:yo("user_id").notNull().references(()=>o.id,{onDelete:"cascade"}),projectPath:Et("project_path").notNull().default(""),category:Et("category").notNull(),contentHash:Et("content_hash").notNull(),label:Et("label").notNull().default(""),firstSeenAt:Io("first_seen_at",{withTimezone:!0}).notNull().defaultNow(),lastSeenAt:Io("last_seen_at",{withTimezone:!0}).notNull().defaultNow(),timesGenerated:hi("times_generated").notNull().default(1),lastJobId:yo("last_job_id"),dismissedAt:Io("dismissed_at",{withTimezone:!0})},e=>[gi("insight_recommendation_log_unique").on(e.userId,e.projectPath,e.contentHash),vi("idx_insight_recommendation_log_read").on(e.userId,e.projectPath)]);import{pgTable as Ii,text as ke,timestamp as wo,uuid as We,integer as $n,index as St}from"drizzle-orm/pg-core";var D=Ii("memories",{id:We("id").primaryKey().defaultRandom(),userId:We("user_id").notNull().references(()=>o.id,{onDelete:"cascade"}),orgId:We("org_id"),projectId:We("project_id").references(()=>s.id,{onDelete:"set null"}),version:$n("version").notNull().default(1),parentId:We("parent_id").references(()=>D.id,{onDelete:"set null"}),kind:ke("kind").notNull(),title:ke("title").notNull(),body:ke("body").notNull(),source:ke("source").notNull(),status:ke("status").notNull().default("active"),trustClass:ke("trust_class"),trustVersion:$n("trust_version"),trustComputedAt:wo("trust_computed_at",{withTimezone:!0}),createdAt:wo("created_at",{withTimezone:!0}).notNull().defaultNow(),updatedAt:wo("updated_at",{withTimezone:!0}).notNull().defaultNow()},e=>[St("idx_memories_user").on(e.userId),St("idx_memories_project").on(e.projectId),St("idx_memories_parent").on(e.parentId),St("idx_memories_user_status").on(e.userId,e.status)]);import{pgTable as yi,text as pe,timestamp as To,uuid as Ao,integer as Jn,jsonb as wi,index as Qn}from"drizzle-orm/pg-core";var Yn=yi("memory_experiments",{id:Ao("id").primaryKey().defaultRandom(),memoryId:Ao("memory_id").notNull().references(()=>D.id,{onDelete:"cascade"}),userId:Ao("user_id").notNull().references(()=>o.id,{onDelete:"cascade"}),memoryVersion:Jn("memory_version").notNull().default(1),memoryBody:pe("memory_body"),taskPrompt:pe("task_prompt").notNull(),expectations:pe("expectations").array().notNull().default([]),trials:Jn("trials").notNull().default(10),model:pe("model"),engine:pe("engine").$type().notNull().default("claude"),status:pe("status").notNull().default("pending"),result:wi("result").$type(),error:pe("error"),createdAt:To("created_at",{withTimezone:!0}).notNull().defaultNow(),startedAt:To("started_at",{withTimezone:!0}),completedAt:To("completed_at",{withTimezone:!0})},e=>[Qn("idx_memory_experiments_memory").on(e.memoryId),Qn("idx_memory_experiments_user").on(e.userId)]);import{pgTable as Ti,text as Ee,timestamp as Do,uuid as zo,jsonb as Ai,uniqueIndex as Di,index as Wn}from"drizzle-orm/pg-core";var bt=Ti("session_terminal_targets",{id:zo("id").primaryKey().defaultRandom(),userId:zo("user_id").notNull().references(()=>o.id,{onDelete:"cascade"}),sessionId:zo("session_id").references(()=>a.id,{onDelete:"set null"}),externalSessionId:Ee("external_session_id"),kind:Ee("kind").notNull(),target:Ee("target").notNull(),status:Ee("status").notNull().default("active"),attachCommand:Ee("attach_command").notNull(),projectPath:Ee("project_path"),metadata:Ai("metadata").notNull().default({}),lastSeenAt:Do("last_seen_at",{withTimezone:!0}).defaultNow(),createdAt:Do("created_at",{withTimezone:!0}).defaultNow(),updatedAt:Do("updated_at",{withTimezone:!0}).defaultNow()},e=>[Di("idx_session_terminal_targets_user_target").on(e.userId,e.target),Wn("idx_session_terminal_targets_session").on(e.sessionId),Wn("idx_session_terminal_targets_user_status").on(e.userId,e.status)]);import{boolean as zi,index as Pt,jsonb as Xn,pgTable as ji,text as me,timestamp as Xe,uuid as Kt,integer as jo}from"drizzle-orm/pg-core";var Zn=ji("session_send_jobs",{id:Kt("id").primaryKey().defaultRandom(),userId:Kt("user_id").notNull(),sessionId:Kt("session_id").notNull().references(()=>a.id,{onDelete:"cascade"}),terminalTargetId:Kt("terminal_target_id").references(()=>bt.id,{onDelete:"set null"}),target:me("target").notNull(),message:me("message").notNull(),submit:zi("submit").notNull().default(!0),delivery:me("delivery").notNull().default("live"),status:me("status").notNull().default("pending"),result:Xn("result"),error:me("error"),attempts:jo("attempts").notNull().default(0),taskKind:me("task_kind"),payload:Xn("payload"),claimedBy:me("claimed_by"),claimedAt:Xe("claimed_at",{withTimezone:!0}),leaseExpiresAt:Xe("lease_expires_at",{withTimezone:!0}),leaseRecoveries:jo("lease_recoveries").notNull().default(0),hostSuspendRecoveries:jo("host_suspend_recoveries").notNull().default(0),createdAt:Xe("created_at",{withTimezone:!0}).defaultNow(),updatedAt:Xe("updated_at",{withTimezone:!0}).defaultNow(),completedAt:Xe("completed_at",{withTimezone:!0})},e=>[Pt("idx_session_send_jobs_user").on(e.userId),Pt("idx_session_send_jobs_session").on(e.sessionId),Pt("idx_session_send_jobs_status").on(e.status),Pt("idx_session_send_jobs_pending").on(e.userId,e.status)]);import{pgTable as tr,text as fe,timestamp as Ct,jsonb as or,uuid as W,integer as Ri,boolean as ki,uniqueIndex as Ei,index as er,primaryKey as Si}from"drizzle-orm/pg-core";var R=tr("packs",{id:W("id").primaryKey().defaultRandom(),name:fe("name").notNull(),description:fe("description").notNull(),scope:fe("scope").notNull(),scopeRef:W("scope_ref"),version:fe("version").notNull().default("1.0.0"),tags:fe("tags").array(),badge:fe("badge"),metadata:or("metadata"),createdBy:W("created_by"),createdAt:Ct("created_at",{withTimezone:!0}).defaultNow(),updatedAt:Ct("updated_at",{withTimezone:!0}).defaultNow(),archived:ki("archived").default(!1),archivedAt:Ct("archived_at",{withTimezone:!0}),archivedBy:W("archived_by"),forkedFromId:W("forked_from_id").references(()=>R.id,{onDelete:"set null"}),upstreamVersion:fe("upstream_version")},e=>[Ei("packs_name_scope_ref_idx").on(e.name,e.scope,e.scopeRef),er("idx_packs_scope").on(e.scope,e.scopeRef),er("idx_packs_created_by").on(e.createdBy)]),X=tr("pack_instructions",{packId:W("pack_id").references(()=>R.id,{onDelete:"cascade"}).notNull(),instructionId:W("instruction_id").references(()=>n.id,{onDelete:"cascade"}).notNull(),position:Ri("position").notNull().default(0),slotOverrides:or("slot_overrides"),addedAt:Ct("added_at",{withTimezone:!0}).defaultNow(),addedBy:W("added_by")},e=>[Si({columns:[e.packId,e.instructionId]})]);import{pgTable as bi,text as Ro,timestamp as Pi,jsonb as Ki,uuid as ko,index as Se}from"drizzle-orm/pg-core";var be=bi("instruction_usage_events",{id:ko("id").primaryKey().defaultRandom(),instructionId:ko("instruction_id").references(()=>n.id,{onDelete:"set null"}),userId:ko("user_id").notNull(),surface:Ro("surface").notNull(),action:Ro("action").notNull(),metadata:Ki("metadata"),traceId:Ro("trace_id"),createdAt:Pi("created_at",{withTimezone:!0}).defaultNow()},e=>[Se("idx_usage_events_instruction").on(e.instructionId),Se("idx_usage_events_user").on(e.userId),Se("idx_usage_events_surface").on(e.surface),Se("idx_usage_events_action").on(e.action),Se("idx_usage_events_created_at").on(e.createdAt),Se("idx_usage_events_user_created").on(e.userId,e.createdAt)]);import{pgTable as Ci,text as qt,timestamp as Ot,jsonb as qi,uuid as nr,index as Eo}from"drizzle-orm/pg-core";var rr=Ci("worker_connections",{id:nr("id").primaryKey().defaultRandom(),userId:nr("user_id").notNull(),workerType:qt("worker_type").notNull().default("mcp"),clientName:qt("client_name").notNull(),clientVersion:qt("client_version"),workerVersion:qt("worker_version"),lastHeartbeat:Ot("last_heartbeat",{withTimezone:!0}).notNull().defaultNow(),presenceGapStartedAt:Ot("presence_gap_started_at",{withTimezone:!0}),presenceGapEndedAt:Ot("presence_gap_ended_at",{withTimezone:!0}),connectedAt:Ot("connected_at",{withTimezone:!0}).notNull().defaultNow(),metadata:qi("metadata")},e=>[Eo("idx_worker_connections_user").on(e.userId),Eo("idx_worker_connections_heartbeat").on(e.userId,e.lastHeartbeat),Eo("idx_worker_connections_type").on(e.userId,e.workerType)]);import{pgTable as Oi,text as Mt,timestamp as Mi,jsonb as Li,uuid as sr,index as ir}from"drizzle-orm/pg-core";var ar=Oi("cli_setup_events",{id:sr("id").primaryKey().defaultRandom(),userId:sr("user_id").notNull(),deviceId:Mt("device_id").notNull(),event:Mt("event").notNull(),cliVersion:Mt("cli_version"),os:Mt("os"),props:Li("props").notNull().default({}),createdAt:Mi("created_at",{withTimezone:!0}).notNull().defaultNow()},e=>[ir("idx_cli_setup_events_user").on(e.userId,e.createdAt),ir("idx_cli_setup_events_device").on(e.deviceId,e.createdAt)]);import{pgTable as Hi,text as Ne,integer as Ui,boolean as Bi,timestamp as Gi,jsonb as Vi,uuid as Fi,index as dr}from"drizzle-orm/pg-core";var ur=Hi("cli_error_events",{id:Fi("id").primaryKey().defaultRandom(),deviceId:Ne("device_id"),event:Ne("event").notNull(),command:Ne("command"),statusCode:Ui("status_code"),message:Ne("message"),cliVersion:Ne("cli_version"),os:Ne("os"),nodeVersion:Ne("node_version"),proxied:Bi("proxied"),props:Vi("props").notNull().default({}),createdAt:Gi("created_at",{withTimezone:!0}).notNull().defaultNow()},e=>[dr("idx_cli_error_events_created").on(e.createdAt),dr("idx_cli_error_events_device").on(e.deviceId,e.createdAt)]);import{sql as So}from"drizzle-orm";import{pgTable as $i,text as U,timestamp as Ji,jsonb as Lt,uuid as Ht,boolean as Qi,index as Ze,uniqueIndex as Yi}from"drizzle-orm/pg-core";var lr=$i("instruction_promotions",{id:Ht("id").primaryKey().defaultRandom(),userId:Ht("user_id").notNull(),evalTargetId:Ht("eval_target_id").notNull().references(()=>r.id,{onDelete:"cascade"}),instructionId:Ht("instruction_id").references(()=>n.id,{onDelete:"set null"}),fromContentHash:U("from_content_hash").notNull(),toContentHash:U("to_content_hash").notNull(),fromContent:U("from_content").notNull(),toContent:U("to_content").notNull(),proposalSource:U("proposal_source").notNull(),proposalRationale:U("proposal_rationale").notNull().default(""),decision:U("decision").notNull(),applied:Qi("applied").notNull().default(!1),refusals:Lt("refusals").notNull().default([]),rationale:U("rationale").notNull().default(""),effectClass:U("effect_class").notNull(),verdict:Lt("verdict").notNull().default({}),gates:Lt("gates").notNull().default({}),touchedSections:Lt("touched_sections").notNull().default([]),createdAt:Ji("created_at",{withTimezone:!0}).notNull().defaultNow()},e=>[Ze("idx_instruction_promotions_budget").on(e.evalTargetId,e.createdAt.desc()).where(So`${e.applied}`),Ze("idx_instruction_promotions_target").on(e.evalTargetId,e.createdAt.desc()),Ze("idx_instruction_promotions_user").on(e.userId,e.createdAt.desc()),Ze("idx_instruction_promotions_to_hash").on(e.toContentHash),Yi("uq_instruction_promotions_applied").on(e.evalTargetId,e.fromContentHash,e.toContentHash).where(So`${e.applied}`),Ze("idx_instruction_promotions_applied_hash").on(e.toContentHash,e.createdAt.desc()).where(So`${e.applied}`)]);import{index as et,integer as Wi,jsonb as Xi,pgTable as Zi,text as y,timestamp as Pe,uniqueIndex as ea,uuid as Z}from"drizzle-orm/pg-core";var cr=Zi("recommendation_applications",{id:Z("id").primaryKey().defaultRandom(),userId:Z("user_id").notNull(),instructionId:Z("instruction_id").notNull().references(()=>n.id,{onDelete:"cascade"}),projectId:Z("project_id").references(()=>s.id,{onDelete:"set null"}),projectPath:y("project_path").notNull(),harness:y("harness").notNull(),targetPath:y("target_path").notNull(),status:y("status").notNull().default("proposed"),applyMode:y("apply_mode").notNull(),beforeHash:y("before_hash"),appliedHash:y("applied_hash"),appliedAt:Pe("applied_at",{withTimezone:!0}),measurementStartedAt:Pe("measurement_started_at",{withTimezone:!0}),measurementEndedAt:Pe("measurement_ended_at",{withTimezone:!0}),verdict:y("verdict"),verdictDetail:y("verdict_detail"),revertedAt:Pe("reverted_at",{withTimezone:!0}),sourceStudyId:Z("source_study_id").references(()=>T.id,{onDelete:"restrict"}),scopedConfirmationId:Z("scoped_confirmation_id").references(()=>Ye.id,{onDelete:"restrict"}),scopedConfirmationAssignmentId:Z("scoped_confirmation_assignment_id").references(()=>Rt.id,{onDelete:"restrict"}),boundaryClass:y("boundary_class"),targets:y("targets").array().notNull().default([]),inverse:Xi("inverse"),requires:y("requires").array().notNull().default([]),provides:y("provides").array().notNull().default([]),applyBatchId:Z("apply_batch_id"),applySeq:Wi("apply_seq"),createdAt:Pe("created_at",{withTimezone:!0}).notNull().defaultNow(),updatedAt:Pe("updated_at",{withTimezone:!0}).notNull().defaultNow()},e=>[ea("uq_recommendation_applications_target").on(e.userId,e.instructionId,e.projectPath,e.harness,e.targetPath),et("idx_recommendation_applications_user_status").on(e.userId,e.status,e.updatedAt.desc()),et("idx_recommendation_applications_user_harness").on(e.userId,e.harness,e.updatedAt.desc()),et("idx_recommendation_applications_project").on(e.projectId,e.updatedAt.desc()),et("idx_recommendation_applications_batch").on(e.userId,e.applyBatchId,e.applySeq.desc()),et("idx_recommendation_applications_requires").using("gin",e.requires)]);import{pgTable as ta,text as K,timestamp as _r,jsonb as tt,uuid as bo,integer as Ke,real as oa,index as ee,uniqueIndex as pr}from"drizzle-orm/pg-core";import{sql as Po}from"drizzle-orm";var te=ta("context_snapshots",{id:bo("id").primaryKey().defaultRandom(),sessionId:bo("session_id").references(()=>a.id,{onDelete:"cascade"}),userId:bo("user_id").notNull().references(()=>o.id,{onDelete:"cascade"}),sequence:Ke("sequence").notNull().default(0),provider:K("provider").notNull(),model:K("model").notNull(),systemPrompt:K("system_prompt").notNull(),injectedInstructions:tt("injected_instructions").notNull().default([]),messagesSummary:tt("messages_summary").notNull(),tools:tt("tools").notNull().default([]),systemHash:K("system_hash").notNull(),requestHash:K("request_hash").notNull().default(""),toolsHash:K("tools_hash"),injectedHash:K("injected_hash"),messagesDelta:tt("messages_delta").default([]),messagesDeltaRef:K("messages_delta_ref"),messagesBaseLength:Ke("messages_base_length"),payloadPrunedAt:_r("payload_pruned_at",{withTimezone:!0}),deltaOffloadState:K("delta_offload_state").notNull().default("inline"),deltaGzipBytes:Ke("delta_gzip_bytes"),deltaOffloadError:K("delta_offload_error"),deltaOffloadAttempts:Ke("delta_offload_attempts").notNull().default(0),maxTokens:Ke("max_tokens"),temperature:oa("temperature"),estimatedTokens:Ke("estimated_tokens"),capturedAt:_r("captured_at",{withTimezone:!0}).notNull().defaultNow(),metadata:tt("metadata").default({})},e=>[ee("idx_context_snapshots_session").on(e.sessionId),ee("idx_context_snapshots_user").on(e.userId),ee("idx_context_snapshots_hash").on(e.systemHash),ee("idx_context_snapshots_request_hash").on(e.requestHash),pr("idx_snapshots_session_request").on(e.sessionId,e.requestHash),pr("idx_snapshots_session_sequence").on(e.sessionId,e.sequence),ee("idx_context_snapshots_user_session_captured").on(e.userId,e.sessionId,e.capturedAt.desc()),ee("idx_snapshots_unpruned_captured").on(e.capturedAt,e.id).where(Po`${e.payloadPrunedAt} is null`),ee("idx_snapshots_pending_offload").on(e.deltaOffloadState,e.capturedAt,e.id).where(Po`${e.deltaOffloadState} = 'pending'`),ee("idx_snapshots_delta_ref").on(e.messagesDeltaRef).where(Po`${e.messagesDeltaRef} is not null`)]);import{pgTable as na,text as mr,timestamp as fr,jsonb as ra,integer as sa,index as ia}from"drizzle-orm/pg-core";var Nr=na("content_blobs",{hash:mr("hash").primaryKey(),contentType:mr("content_type").notNull(),content:ra("content").notNull(),sizeBytes:sa("size_bytes").notNull().default(0),createdAt:fr("created_at",{withTimezone:!0}).defaultNow(),lastReferencedAt:fr("last_referenced_at",{withTimezone:!0}).notNull().defaultNow()},e=>[ia("idx_content_blobs_type").on(e.contentType)]);import{integer as xr,jsonb as aa,pgTable as da,timestamp as ua,uuid as la}from"drizzle-orm/pg-core";var hr=da("session_capture_heads",{sessionId:la("session_id").primaryKey().references(()=>a.id,{onDelete:"cascade"}),sequence:xr("sequence").notNull(),rawMessageHashes:aa("raw_message_hashes").notNull().$type(),version:xr("version").notNull(),updatedAt:ua("updated_at",{withTimezone:!0}).notNull().defaultNow()});import{index as ca,integer as gr,pgTable as _a,text as Ko,timestamp as vr,uniqueIndex as pa,uuid as ma}from"drizzle-orm/pg-core";import{sql as fa}from"drizzle-orm";var Ir=_a("snapshot_delta_objects",{ref:Ko("ref").primaryKey(),snapshotId:ma("snapshot_id"),compressedBytes:gr("compressed_bytes").notNull(),state:Ko("state").notNull(),createdAt:vr("created_at",{withTimezone:!0}).notNull().defaultNow(),lastAttemptAt:vr("last_attempt_at",{withTimezone:!0}),attempts:gr("attempts").notNull().default(0),lastError:Ko("last_error")},e=>[ca("idx_snapshot_delta_objects_state_created").on(e.state,e.createdAt),pa("snapshot_delta_objects_snapshot_id_unique").on(e.snapshotId).where(fa`${e.snapshotId} is not null`)]);import{pgTable as Na,text as ot,timestamp as nt,jsonb as yr,uuid as wr,integer as Co,index as Tr}from"drizzle-orm/pg-core";var Ar=Na("agent_jobs",{id:wr("id").primaryKey().defaultRandom(),userId:wr("user_id").notNull(),taskKind:ot("task_kind").notNull(),status:ot("status").notNull().default("pending"),payload:yr("payload").notNull(),dedupeKey:ot("dedupe_key"),result:yr("result"),error:ot("error"),attempts:Co("attempts").notNull().default(0),claimedBy:ot("claimed_by"),claimedAt:nt("claimed_at",{withTimezone:!0}),leaseExpiresAt:nt("lease_expires_at",{withTimezone:!0}),leaseRecoveries:Co("lease_recoveries").notNull().default(0),hostSuspendRecoveries:Co("host_suspend_recoveries").notNull().default(0),createdAt:nt("created_at",{withTimezone:!0}).notNull().defaultNow(),updatedAt:nt("updated_at",{withTimezone:!0}).notNull().defaultNow(),completedAt:nt("completed_at",{withTimezone:!0})},e=>[Tr("idx_agent_jobs_claim").on(e.userId,e.status,e.taskKind,e.createdAt),Tr("idx_agent_jobs_dedupe").on(e.userId,e.taskKind,e.dedupeKey)]);import{pgTable as xa,text as rt,timestamp as st,jsonb as Ut,uuid as qo,index as Bt,integer as Oo}from"drizzle-orm/pg-core";var Dr=xa("insights_jobs",{id:qo("id").primaryKey().defaultRandom(),userId:qo("user_id").notNull(),status:rt("status").notNull().default("pending"),projectPath:rt("project_path"),projectId:qo("project_id").references(()=>s.id,{onDelete:"set null"}),config:Ut("config").notNull().default({}),progress:Ut("progress").notNull().default({}),result:Ut("result"),error:rt("error"),attempts:Oo("attempts").notNull().default(0),taskKind:rt("task_kind"),payload:Ut("payload"),claimedBy:rt("claimed_by"),claimedAt:st("claimed_at",{withTimezone:!0}),leaseExpiresAt:st("lease_expires_at",{withTimezone:!0}),leaseRecoveries:Oo("lease_recoveries").notNull().default(0),hostSuspendRecoveries:Oo("host_suspend_recoveries").notNull().default(0),createdAt:st("created_at",{withTimezone:!0}).defaultNow(),updatedAt:st("updated_at",{withTimezone:!0}).defaultNow(),completedAt:st("completed_at",{withTimezone:!0})},e=>[Bt("idx_insights_jobs_user").on(e.userId),Bt("idx_insights_jobs_status").on(e.status),Bt("idx_insights_jobs_pending").on(e.userId,e.status),Bt("idx_insights_jobs_project").on(e.projectId)]);import{pgTable as ha,text as Mo,timestamp as Gt,uuid as zr,index as ga,uniqueIndex as va}from"drizzle-orm/pg-core";var Ce=ha("api_keys",{id:zr("id").primaryKey().defaultRandom(),userId:zr("user_id").notNull().references(()=>o.id,{onDelete:"cascade"}),name:Mo("name").notNull(),keyHash:Mo("key_hash").notNull(),keyPrefix:Mo("key_prefix").notNull(),lastUsedAt:Gt("last_used_at",{withTimezone:!0}),expiresAt:Gt("expires_at",{withTimezone:!0}),revokedAt:Gt("revoked_at",{withTimezone:!0}),createdAt:Gt("created_at",{withTimezone:!0}).defaultNow()},e=>[ga("idx_api_keys_user").on(e.userId),va("idx_api_keys_hash").on(e.keyHash)]);import{pgTable as Ia,text as Lo,timestamp as jr,uuid as ya,index as wa}from"drizzle-orm/pg-core";var Rr=Ia("extension_auth_codes",{code:Lo("code").primaryKey(),userId:ya("user_id").notNull().references(()=>o.id,{onDelete:"cascade"}),editor:Lo("editor"),email:Lo("email"),expiresAt:jr("expires_at",{withTimezone:!0}).notNull(),createdAt:jr("created_at",{withTimezone:!0}).defaultNow()},e=>[wa("idx_ext_auth_codes_expiry").on(e.expiresAt)]);import{pgTable as Ta,text as Aa,timestamp as kr,jsonb as Da,uuid as Ho,index as Er}from"drizzle-orm/pg-core";var qe=Ta("eval_conversations",{id:Ho("id").primaryKey().defaultRandom(),evalTargetId:Ho("eval_target_id").notNull().references(()=>r.id,{onDelete:"cascade"}),userId:Ho("user_id").notNull(),messages:Da("messages").notNull().default([]),status:Aa("status").notNull().default("active"),createdAt:kr("created_at",{withTimezone:!0}).defaultNow(),updatedAt:kr("updated_at",{withTimezone:!0}).defaultNow()},e=>[Er("idx_eval_conversations_target").on(e.evalTargetId),Er("idx_eval_conversations_user").on(e.userId)]);import{pgTable as za,text as B,timestamp as Sr,jsonb as ja,uuid as Uo}from"drizzle-orm/pg-core";var br=za("skill_submissions",{id:Uo("id").primaryKey().defaultRandom(),skillId:B("skill_id").notNull(),name:B("name").notNull(),description:B("description").notNull(),category:B("category").notNull(),tools:B("tools").array().notNull(),tags:B("tags").array().default([]),content:B("content").notNull(),status:B("status").notNull().default("pending"),submittedBy:Uo("submitted_by").notNull(),reviewedBy:Uo("reviewed_by"),reviewNote:B("review_note"),metadata:ja("metadata"),createdAt:Sr("created_at",{withTimezone:!0}).defaultNow(),updatedAt:Sr("updated_at",{withTimezone:!0}).defaultNow()});import{pgTable as Ra,text as it,timestamp as Pr,jsonb as ka,uuid as Ea,uniqueIndex as Sa,index as Kr}from"drizzle-orm/pg-core";var Cr=Ra("harness_releases",{id:Ea("id").primaryKey().defaultRandom(),harness:it("harness").notNull(),version:it("version").notNull(),publishedAt:Pr("published_at",{withTimezone:!0}).notNull(),title:it("title"),body:it("body"),categories:ka("categories").default({}),url:it("url"),createdAt:Pr("created_at",{withTimezone:!0}).defaultNow()},e=>[Sa("idx_harness_releases_unique").on(e.harness,e.version),Kr("idx_harness_releases_harness").on(e.harness),Kr("idx_harness_releases_published").on(e.publishedAt)]);import{pgTable as ba,text as Oe,timestamp as qr,jsonb as Pa,uuid as Or,index as Mr,uniqueIndex as Ka}from"drizzle-orm/pg-core";var Bo=ba("notifications",{id:Or("id").primaryKey().defaultRandom(),userId:Or("user_id").notNull(),type:Oe("type").notNull(),title:Oe("title").notNull(),body:Oe("body"),url:Oe("url"),sourceTable:Oe("source_table"),sourceId:Oe("source_id"),metadata:Pa("metadata").notNull().default({}),readAt:qr("read_at",{withTimezone:!0}),createdAt:qr("created_at",{withTimezone:!0}).notNull().defaultNow()},e=>[Mr("idx_notifications_user_created").on(e.userId,e.createdAt),Mr("idx_notifications_user_unread").on(e.userId),Ka("idx_notifications_source_dedup").on(e.userId,e.sourceTable,e.sourceId)]);import{pgTable as Ca,text as at,timestamp as dt,jsonb as Go,uuid as Vo,index as Vt,integer as Fo}from"drizzle-orm/pg-core";var Me=Ca("launch_jobs",{id:Vo("id").primaryKey().defaultRandom(),userId:Vo("user_id").notNull(),tool:at("tool").notNull(),status:at("status").notNull().default("pending"),config:Go("config").notNull().default({}),result:Go("result"),error:at("error"),attempts:Fo("attempts").notNull().default(0),taskKind:at("task_kind"),payload:Go("payload"),claimedBy:at("claimed_by"),claimedAt:dt("claimed_at",{withTimezone:!0}),leaseExpiresAt:dt("lease_expires_at",{withTimezone:!0}),leaseRecoveries:Fo("lease_recoveries").notNull().default(0),hostSuspendRecoveries:Fo("host_suspend_recoveries").notNull().default(0),createdAt:dt("created_at",{withTimezone:!0}).defaultNow(),updatedAt:dt("updated_at",{withTimezone:!0}).defaultNow(),completedAt:dt("completed_at",{withTimezone:!0}),runId:Vo("run_id").references(()=>h.id,{onDelete:"set null"})},e=>[Vt("idx_launch_jobs_user").on(e.userId),Vt("idx_launch_jobs_status").on(e.status),Vt("idx_launch_jobs_pending").on(e.userId,e.status),Vt("idx_launch_jobs_run").on(e.runId)]);import{pgTable as Lr,uuid as G,text as oe,real as qa,timestamp as ut,boolean as Oa,uniqueIndex as Ma,index as lt}from"drizzle-orm/pg-core";var Hr=["add","remove","trim"],$o=Lr("instruction_suggestions",{id:G("id").primaryKey().defaultRandom(),userId:G("user_id").notNull().references(()=>o.id,{onDelete:"cascade"}),instructionId:G("instruction_id").notNull().references(()=>n.id,{onDelete:"cascade"}),projectPath:oe("project_path").notNull(),projectId:G("project_id").references(()=>s.id,{onDelete:"set null"}),score:qa("score").notNull(),reason:oe("reason").notNull(),kind:oe("kind").$type().notNull().default("add"),generatedAt:ut("generated_at",{withTimezone:!0}).notNull().defaultNow(),isStale:Oa("is_stale").notNull().default(!1),dismissedAt:ut("dismissed_at",{withTimezone:!0}),acceptedAt:ut("accepted_at",{withTimezone:!0}),declinedAt:ut("declined_at",{withTimezone:!0}),declinedReason:oe("declined_reason"),promotedToInstructionId:G("promoted_to_instruction_id").references(()=>n.id,{onDelete:"set null"})},e=>[Ma("idx_instruction_suggestions_user_project_instruction_kind").on(e.userId,e.projectPath,e.instructionId,e.kind),lt("idx_instruction_suggestions_user_project").on(e.userId,e.projectPath),lt("idx_instruction_suggestions_user_proj_id").on(e.userId,e.projectId),lt("idx_instruction_suggestions_generated_at").on(e.generatedAt)]),Ur=Lr("instruction_suggestion_events",{id:G("id").primaryKey().defaultRandom(),suggestionId:G("suggestion_id").notNull().references(()=>$o.id,{onDelete:"cascade"}),userId:G("user_id").notNull().references(()=>o.id,{onDelete:"cascade"}),eventType:oe("event_type").notNull(),tool:oe("tool"),sessionId:G("session_id"),projectPath:oe("project_path").notNull(),actor:oe("actor"),createdAt:ut("created_at",{withTimezone:!0}).notNull().defaultNow()},e=>[lt("idx_instruction_suggestion_events_suggestion_id").on(e.suggestionId),lt("idx_instruction_suggestion_events_user_id").on(e.userId)]);import{pgTable as La,text as Jo,integer as Ha,numeric as ct,timestamp as Qo,index as Ua,primaryKey as Ba}from"drizzle-orm/pg-core";var Br=La("model_pricing",{provider:Jo("provider").notNull(),modelId:Jo("model_id").notNull(),inputPerM:ct("input_per_m").notNull(),outputPerM:ct("output_per_m").notNull(),cacheReadPerM:ct("cache_read_per_m").notNull(),cacheWrite5mPerM:ct("cache_write_5m_per_m").notNull(),cacheWrite1hPerM:ct("cache_write_1h_per_m").notNull(),contextWindow:Ha("context_window"),effectiveFrom:Qo("effective_from",{withTimezone:!0}).notNull(),effectiveUntil:Qo("effective_until",{withTimezone:!0}),source:Jo("source").notNull(),verifiedAt:Qo("verified_at",{withTimezone:!0})},e=>[Ba({columns:[e.provider,e.modelId,e.effectiveFrom]}),Ua("idx_model_pricing_active").on(e.provider,e.modelId,e.effectiveFrom.desc())]);import{pgTable as Ga,text as xe,numeric as Gr,timestamp as Vr,uuid as Fr,jsonb as Va,index as $r}from"drizzle-orm/pg-core";var Jr=Ga("limit_observations",{id:Fr("id").primaryKey().defaultRandom(),observedAt:Vr("observed_at",{withTimezone:!0}).notNull().defaultNow(),provider:xe("provider").notNull(),plan:xe("plan").notNull(),limitType:xe("limit_type").notNull(),value:Gr("value").notNull(),unit:xe("unit").notNull(),comparator:xe("comparator").notNull().default("="),resetsAt:Vr("resets_at",{withTimezone:!0}),sourceType:xe("source_type").notNull(),sourceUrl:xe("source_url"),sourceEvidence:Va("source_evidence"),confidence:Gr("confidence").notNull(),userId:Fr("user_id")},e=>[$r("idx_limit_obs_lookup").on(e.provider,e.plan,e.limitType,e.observedAt.desc()),$r("idx_limit_obs_user").on(e.userId,e.observedAt.desc())]);import{pgTable as Fa,text as Ft,timestamp as $a,uuid as Ja,jsonb as Qa,boolean as Ya,uniqueIndex as Wa}from"drizzle-orm/pg-core";var Qr=Fa("provider_docs_snapshots",{id:Ja("id").primaryKey().defaultRandom(),fetchedAt:$a("fetched_at",{withTimezone:!0}).notNull().defaultNow(),provider:Ft("provider").notNull(),docUrl:Ft("doc_url").notNull(),contentHash:Ft("content_hash").notNull(),content:Ft("content").notNull(),parseSuccess:Ya("parse_success").notNull(),parseErrors:Qa("parse_errors")},e=>[Wa("idx_docs_dedup").on(e.provider,e.docUrl,e.contentHash)]);import{pgTable as Xa,text as $t,numeric as Yr,timestamp as Wr,uuid as Za,primaryKey as ed,index as td}from"drizzle-orm/pg-core";var Xr=Xa("plan_limits_active",{provider:$t("provider").notNull(),plan:$t("plan").notNull(),limitType:$t("limit_type").notNull(),value:Yr("value").notNull(),unit:$t("unit").notNull(),effectiveFrom:Wr("effective_from",{withTimezone:!0}).notNull(),effectiveUntil:Wr("effective_until",{withTimezone:!0}),confidence:Yr("confidence").notNull(),sourceObservationIds:Za("source_observation_ids").array().notNull()},e=>[ed({columns:[e.provider,e.plan,e.limitType,e.effectiveFrom]}),td("idx_plan_limits_lookup").on(e.provider,e.plan,e.limitType,e.effectiveFrom.desc())]);import{pgTable as od,text as Yo,timestamp as nd,uuid as Zr,jsonb as rd,index as sd}from"drizzle-orm/pg-core";var es=od("alert_dispatches",{id:Zr("id").primaryKey().defaultRandom(),userId:Zr("user_id").notNull(),alertKey:Yo("alert_key").notNull(),severity:Yo("severity").notNull(),lastDispatchedAt:nd("last_dispatched_at",{withTimezone:!0}).notNull().defaultNow(),lastState:rd("last_state").notNull(),channel:Yo("channel").notNull()},e=>[sd("idx_alert_user_key").on(e.userId,e.alertKey,e.lastDispatchedAt.desc())]);import{date as ts,integer as Wo,pgTable as os,primaryKey as id,text as ad,timestamp as Xo,uuid as dd}from"drizzle-orm/pg-core";var ns=os("weekly_digest_deliveries",{userId:dd("user_id").notNull().references(()=>o.id,{onDelete:"cascade"}),weekStart:ts("week_start").notNull(),sentAt:Xo("sent_at",{withTimezone:!0}).notNull().defaultNow(),providerMessageId:ad("provider_message_id")},e=>[id({columns:[e.userId,e.weekStart]})]),rs=os("weekly_digest_runs",{weekStart:ts("week_start").primaryKey(),startedAt:Xo("started_at",{withTimezone:!0}).notNull().defaultNow(),finishedAt:Xo("finished_at",{withTimezone:!0}),sent:Wo("sent"),skipped:Wo("skipped"),failed:Wo("failed")});import{pgTable as ud,text as Zo,timestamp as ss,uuid as en,integer as ld,index as cd,unique as _d}from"drizzle-orm/pg-core";var is=ud("scaffolding_fingerprints",{id:en("id").primaryKey().defaultRandom(),userId:en("user_id").notNull(),harness:Zo("harness").notNull(),model:Zo("model").notNull(),toolsHash:Zo("tools_hash").notNull(),firstSeenAt:ss("first_seen_at",{withTimezone:!0}).notNull().defaultNow(),lastSeenAt:ss("last_seen_at",{withTimezone:!0}).notNull().defaultNow(),snapshotCount:ld("snapshot_count").notNull().default(1),firstSessionId:en("first_session_id")},e=>[_d("scaffolding_fingerprints_user_id_harness_model_tools_hash_key").on(e.userId,e.harness,e.model,e.toolsHash),cd("idx_scaffolding_fp_segment").on(e.userId,e.harness,e.model)]);import{pgTable as pd,text as tn,timestamp as md,jsonb as fd,uuid as as,integer as Nd,unique as xd}from"drizzle-orm/pg-core";var ds=pd("scaffolding_segments",{id:as("id").primaryKey().defaultRandom(),userId:as("user_id").notNull(),harness:tn("harness").notNull(),model:tn("model").notNull(),coreNames:fd("core_names").notNull(),coreHash:tn("core_hash").notNull(),activeFingerprints:Nd("active_fingerprints").notNull(),computedAt:md("computed_at",{withTimezone:!0}).notNull().defaultNow()},e=>[xd("scaffolding_segments_user_id_harness_model_key").on(e.userId,e.harness,e.model)]);import{pgTable as hd,text as ne,timestamp as us,uuid as on,uniqueIndex as gd,index as vd}from"drizzle-orm/pg-core";var ls=["blog","docs","changelog"],nn=hd("vendor_guidance_snapshots",{id:on("id").primaryKey().defaultRandom(),fetchedAt:us("fetched_at",{withTimezone:!0}).notNull().defaultNow(),sourceId:ne("source_id").notNull(),harness:ne("harness").notNull(),vendor:ne("vendor").notNull(),kind:ne("kind").$type().notNull(),url:ne("url").notNull(),title:ne("title").notNull(),contentHash:ne("content_hash").notNull(),text:ne("text").notNull(),previousSnapshotId:on("previous_snapshot_id").references(()=>nn.id,{onDelete:"set null"}),pitchedAt:us("pitched_at",{withTimezone:!0}),pitchInstructionId:on("pitch_instruction_id").references(()=>n.id,{onDelete:"set null"})},e=>[gd("idx_vendor_guidance_dedup").on(e.sourceId,e.contentHash),vd("idx_vendor_guidance_source_fetched").on(e.sourceId,e.fetchedAt)]);import{drizzle as fs}from"drizzle-orm/postgres-js";import Ns from"postgres";var Jt={};Ks(Jt,{GUIDANCE_KINDS:()=>ls,SUGGESTION_KINDS:()=>Hr,agentJobs:()=>Ar,agentRuns:()=>h,agentRunsRelations:()=>Kd,alertDispatches:()=>es,announcementDeliveries:()=>mn,announcements:()=>pn,apiKeys:()=>Ce,apiKeysRelations:()=>yd,benchmarks:()=>je,benchmarksRelations:()=>$d,cliErrorEvents:()=>ur,cliSetupEvents:()=>ar,contentBlobs:()=>Nr,contextSnapshots:()=>te,contextSnapshotsRelations:()=>Yd,evalComparisons:()=>Cn,evalConversations:()=>qe,evalConversationsRelations:()=>Qd,evalGradeAnnotations:()=>qn,evalJobs:()=>P,evalJobsRelations:()=>Jd,evalRuns:()=>b,evalRunsRelations:()=>Fd,evalTargets:()=>r,evalTargetsRelations:()=>Gd,evals:()=>H,evalsRelations:()=>Vd,extensionAuthCodes:()=>Rr,harnessReleases:()=>Cr,insightRecommendationLog:()=>Fn,insightsJobs:()=>Dr,instructionEvents:()=>we,instructionEventsRelations:()=>Rd,instructionExperimentArms:()=>Pn,instructionExperiments:()=>ue,instructionPromotions:()=>lr,instructionSuggestionEvents:()=>Ur,instructionSuggestions:()=>$o,instructionUsageEvents:()=>be,instructionUsageEventsRelations:()=>Bd,instructionVerdicts:()=>Vn,instructionVersionIdentities:()=>In,instructionVersions:()=>ye,instructionVersionsRelations:()=>Ed,instructions:()=>n,instructionsRelations:()=>jd,judgeReviewerVerdicts:()=>On,launchJobs:()=>Me,launchJobsRelations:()=>Cd,limitObservations:()=>Jr,memories:()=>D,memoriesRelations:()=>kd,memoryExperiments:()=>Yn,modelPricing:()=>Br,notificationPreferences:()=>fn,notifications:()=>Bo,orgInvitations:()=>C,orgInvitationsRelations:()=>Ad,organizations:()=>l,organizationsRelations:()=>wd,packInstructions:()=>X,packInstructionsRelations:()=>Ud,packs:()=>R,packsRelations:()=>Hd,pendingTreatmentExposures:()=>En,performanceStudies:()=>T,performanceStudiesRelations:()=>Wd,performanceStudyCalls:()=>ce,performanceStudyCallsRelations:()=>Xd,planLimitsActive:()=>Xr,profiles:()=>o,profilesRelations:()=>Id,projectCheckouts:()=>Tn,projectInstructions:()=>J,projectInstructionsRelations:()=>bd,projects:()=>s,projectsRelations:()=>Sd,providerDocsSnapshots:()=>Qr,recommendationApplications:()=>cr,scaffoldingFingerprints:()=>is,scaffoldingSegments:()=>ds,scopedLiveConfirmationAssignments:()=>Rt,scopedLiveConfirmations:()=>Ye,sessionCaptureHeads:()=>hr,sessionEvents:()=>Ae,sessionEventsRelations:()=>qd,sessionInstructions:()=>Q,sessionInstructionsRelations:()=>Od,sessionSendJobs:()=>Zn,sessionTerminalTargets:()=>bt,sessions:()=>a,sessionsRelations:()=>Pd,skillSubmissions:()=>br,snapshotDeltaObjects:()=>Ir,teams:()=>v,teamsRelations:()=>Td,treatmentAssignments:()=>O,treatmentAssignmentsRelations:()=>Md,treatmentExposures:()=>M,treatmentExposuresRelations:()=>Ld,userOrganizations:()=>ve,userOrganizationsRelations:()=>Dd,userTeams:()=>Ie,userTeamsRelations:()=>zd,vendorGuidanceSnapshots:()=>nn,weeklyDigestDeliveries:()=>ns,weeklyDigestRuns:()=>rs,workerConnections:()=>rr});import{relations as i}from"drizzle-orm";var Id=i(o,({many:e})=>({sessions:e(a),contextSnapshots:e(te),apiKeys:e(Ce)})),yd=i(Ce,({one:e})=>({profile:e(o,{fields:[Ce.userId],references:[o.id]})})),wd=i(l,({many:e})=>({teams:e(v),userOrganizations:e(ve),projects:e(s),invitations:e(C)})),Td=i(v,({one:e,many:t})=>({organization:e(l,{fields:[v.orgId],references:[l.id]}),userTeams:t(Ie),invitations:t(C)})),Ad=i(C,({one:e})=>({organization:e(l,{fields:[C.orgId],references:[l.id]}),team:e(v,{fields:[C.teamId],references:[v.id]}),inviter:e(o,{fields:[C.invitedBy],references:[o.id]})})),Dd=i(ve,({one:e})=>({organization:e(l,{fields:[ve.orgId],references:[l.id]})})),zd=i(Ie,({one:e})=>({team:e(v,{fields:[Ie.teamId],references:[v.id]})})),jd=i(n,({one:e,many:t})=>({versions:t(ye),projectInstructions:t(J),events:t(we),usageEvents:t(be),sessionInstructions:t(Q),packInstructions:t(X),forkedFrom:e(n,{fields:[n.forkedFromId],references:[n.id]})})),Rd=i(we,({one:e})=>({instruction:e(n,{fields:[we.instructionId],references:[n.id]})})),kd=i(D,({one:e,many:t})=>({project:e(s,{fields:[D.projectId],references:[s.id]}),parent:e(D,{fields:[D.parentId],references:[D.id]}),versions:t(D)})),Ed=i(ye,({one:e})=>({instruction:e(n,{fields:[ye.instructionId],references:[n.id]})})),Sd=i(s,({one:e,many:t})=>({organization:e(l,{fields:[s.orgId],references:[l.id]}),projectInstructions:t(J),sessions:t(a)})),bd=i(J,({one:e})=>({project:e(s,{fields:[J.projectId],references:[s.id]}),instruction:e(n,{fields:[J.instructionId],references:[n.id]})})),Pd=i(a,({one:e,many:t})=>({profile:e(o,{fields:[a.userId],references:[o.id]}),project:e(s,{fields:[a.projectId],references:[s.id]}),run:e(h,{fields:[a.runId],references:[h.id]}),events:t(Ae),sessionInstructions:t(Q),treatmentExposures:t(M),contextSnapshots:t(te)})),Kd=i(h,({one:e,many:t})=>({profile:e(o,{fields:[h.userId],references:[o.id]}),organization:e(l,{fields:[h.orgId],references:[l.id]}),project:e(s,{fields:[h.projectId],references:[s.id]}),sessions:t(a),launchJobs:t(Me)})),Cd=i(Me,({one:e})=>({run:e(h,{fields:[Me.runId],references:[h.id]})})),qd=i(Ae,({one:e})=>({session:e(a,{fields:[Ae.sessionId],references:[a.id]})})),Od=i(Q,({one:e})=>({session:e(a,{fields:[Q.sessionId],references:[a.id]}),instruction:e(n,{fields:[Q.instructionId],references:[n.id]})})),Md=i(O,({one:e,many:t})=>({owner:e(o,{fields:[O.userId],references:[o.id]}),project:e(s,{fields:[O.projectId],references:[s.id]}),exposures:t(M)})),Ld=i(M,({one:e})=>({session:e(a,{fields:[M.sessionId],references:[a.id]}),owner:e(o,{fields:[M.userId],references:[o.id]}),assignment:e(O,{fields:[M.assignmentId],references:[O.id]})})),Hd=i(R,({one:e,many:t})=>({packInstructions:t(X),forkedFrom:e(R,{fields:[R.forkedFromId],references:[R.id]})})),Ud=i(X,({one:e})=>({pack:e(R,{fields:[X.packId],references:[R.id]}),instruction:e(n,{fields:[X.instructionId],references:[n.id]})})),Bd=i(be,({one:e})=>({instruction:e(n,{fields:[be.instructionId],references:[n.id]})})),Gd=i(r,({one:e,many:t})=>({parent:e(r,{fields:[r.parentId],references:[r.id]}),evals:t(H),evalRuns:t(b),benchmarks:t(je),evalJobs:t(P),evalConversations:t(qe)})),Vd=i(H,({one:e,many:t})=>({evalTarget:e(r,{fields:[H.evalTargetId],references:[r.id]}),runs:t(b)})),Fd=i(b,({one:e})=>({eval:e(H,{fields:[b.evalId],references:[H.id]}),evalTarget:e(r,{fields:[b.evalTargetId],references:[r.id]})})),$d=i(je,({one:e})=>({evalTarget:e(r,{fields:[je.evalTargetId],references:[r.id]})})),Jd=i(P,({one:e})=>({evalTarget:e(r,{fields:[P.evalTargetId],references:[r.id]})})),Qd=i(qe,({one:e})=>({evalTarget:e(r,{fields:[qe.evalTargetId],references:[r.id]})})),Yd=i(te,({one:e})=>({session:e(a,{fields:[te.sessionId],references:[a.id]}),profile:e(o,{fields:[te.userId],references:[o.id]})})),Wd=i(T,({one:e,many:t})=>({target:e(r,{fields:[T.evalTargetId],references:[r.id]}),calls:t(ce)})),Xd=i(ce,({one:e})=>({study:e(T,{fields:[ce.studyId],references:[T.id]}),job:e(P,{fields:[ce.jobId],references:[P.id]})}));var _t=0,cs=0,pt=0,_s=0;var Zd=0;function rn(){_t++,_t>cs&&(cs=_t)}m(rn,"trackDbOpStart");function sn(){_t>0&&_t--}m(sn,"trackDbOpEnd");function an(){pt++,pt>_s&&(_s=pt)}m(an,"trackHeavyDbOpStart");function dn(){pt>0&&pt--}m(dn,"trackHeavyDbOpEnd");function ps(){Zd++}m(ps,"recordQueryDeadline");var Yt,Xt,un=!1,Qt;var ms,Zt,Wt;function xs(e){let t=process.env[e];if(!t)throw new Error(`Missing required env var: ${e}`);return t}m(xs,"getEnv");function hs(){if(un)throw new Error("getDb() called after closeDb(): the connection pool is closed for shutdown. Stop issuing queries (timers/requests) before draining the pool.");if(!Yt){let e=process.env.PG_APPLICATION_NAME||"rulemetric",t=Number(process.env.PG_POOL_MAX)||3,d=Number(process.env.PG_CONNECT_TIMEOUT_S)||10,u=Number(process.env.PG_STATEMENT_TIMEOUT_MS)||0,p=Number(process.env.PG_IDLE_TIMEOUT)||5,x=Number(process.env.PG_KEEP_ALIVE_S)||60;Xt=Ns(xs("DATABASE_URL"),{prepare:!1,max:t,connect_timeout:d,idle_timeout:p,keep_alive:x,max_lifetime:300,connection:{application_name:e,...u>0?{statement_timeout:u}:{}}}),Yt=fs(Xt,{schema:Jt})}return Yt}m(hs,"getDb");function gs(){if(un)throw new Error("getHeavyDb() called after closeDb(): the connection pool is closed for shutdown. Stop issuing queries (timers/requests) before draining the pool.");if(!Wt){let e=(process.env.PG_APPLICATION_NAME||"rulemetric")+":heavy",t=Number(process.env.PG_HEAVY_POOL_MAX)||2;Zt=Ns(xs("DATABASE_URL"),{prepare:!1,max:t,connect_timeout:Number(process.env.PG_CONNECT_TIMEOUT_S)||10,idle_timeout:Number(process.env.PG_IDLE_TIMEOUT)||5,keep_alive:Number(process.env.PG_KEEP_ALIVE_S)||60,max_lifetime:300,connection:{application_name:e}}),Wt=fs(Zt,{schema:Jt})}return Wt}m(gs,"getHeavyDb");async function eu(){if(Qt)return Qt;un=!0;let e=Xt,t=ms,d=Zt;return Xt=void 0,Yt=void 0,ms=void 0,Zt=void 0,Wt=void 0,Qt=Promise.allSettled([e?e.end({timeout:5}):Promise.resolve(),t?t.end({timeout:5}):Promise.resolve(),d?d.end({timeout:5}):Promise.resolve()]).then(()=>{}),Qt}m(eu,"closeDb");var tu=new Set(["CONNECT_TIMEOUT","ETIMEDOUT","ENOTFOUND","ECONNREFUSED","EAI_AGAIN"]);function vs(e){let t=e,d=t?.code??t?.cause?.code??t?.errno;return d!==void 0&&tu.has(d)}m(vs,"isRetryableConnectError");var ou=new Set(["CONNECTION_CLOSED","ECONNRESET","EPIPE"]);function Is(e){let t=e,d=t?.code??t?.cause?.code??t?.errno;return d!==void 0&&ou.has(d)}m(Is,"isRetryableResetError");async function ys(e,t={}){let d=t.attempts??3,u=t.baseMs??100,p;for(let x=0;x<d;x++)try{return await e()}catch(z){p=z;let V=vs(z)||t.retryResets===!0&&Is(z);if(x===d-1||!V)throw z;await new Promise(re=>setTimeout(re,u*2**x))}throw p}m(ys,"withDbRetry");var eo=class extends Error{static{m(this,"QueryDeadlineError")}code="QUERY_DEADLINE";constructor(t){super(`Query exceeded the client-side deadline of ${t}ms \u2014 the DB pool is likely saturated (acquire-wait) or holding a dead socket; failing fast to avoid pinning the caller. See client.ts.`),this.name="QueryDeadlineError"}};function ws(){let e=Number(process.env.PG_QUERY_DEADLINE_MS);return Number.isFinite(e)&&e>=0?e:2e4}m(ws,"queryDeadlineMs");function Ts(){let e=Number(process.env.PG_HEAVY_QUERY_DEADLINE_MS);return Number.isFinite(e)&&e>=0?e:6e4}m(Ts,"heavyQueryDeadlineMs");function nu(e,t,d=!0){let u,p=new Promise((x,z)=>{u=setTimeout(()=>{d&&ps(),z(new eo(t))},t);let V=u;typeof V.unref=="function"&&V.unref()});return Promise.race([e,p]).finally(()=>clearTimeout(u))}m(nu,"raceWithDeadline");var As=new Set(["select","selectDistinct","selectDistinctOn","insert","update","delete","execute","with","$count","refreshMaterializedView"]),Ds=new Set(["select","selectDistinct","selectDistinctOn","$count"]);function ln(e,t=!1,d=0,u=!1){return e===null||typeof e!="object"&&typeof e!="function"?e:new Proxy(e,{get(p,x,z){if(x==="then"){let re=Reflect.get(p,x,z);return typeof re!="function"?re:(Rs,ks)=>{let Es=u?an:rn,Ss=u?dn:sn;Es();let cn=ys(()=>new Promise((bs,Ps)=>re.call(p,bs,Ps)),{retryResets:t});return(d>0?nu(cn,d,!u):cn).finally(Ss).then(Rs,ks)}}let V=Reflect.get(p,x,z);return typeof V=="function"?(...re)=>ln(V.apply(p,re),t,d,u):V}})}m(ln,"wrapBuilder");function zs(e,t=!1){let d=t?an:rn,u=t?dn:sn;d();try{return Promise.resolve(e()).finally(u)}catch(p){throw u(),p}}m(zs,"gaugeTransaction");var js=new Proxy({},{get(e,t){let d=hs(),u=d[t];if(typeof t=="string"&&As.has(t)&&typeof u=="function"){let p=Ds.has(t),x=ws();return(...z)=>ln(u.apply(d,z),p,x)}return t==="transaction"&&typeof u=="function"?(...p)=>zs(()=>u.apply(d,p)):u}}),ru=new Proxy({},{get(e,t){let d=gs(),u=d[t];if(typeof t=="string"&&As.has(t)&&typeof u=="function"){let p=Ds.has(t);return(...x)=>ln(u.apply(d,x),p,Ts(),!0)}return t==="transaction"&&typeof u=="function"?(...p)=>zs(()=>u.apply(d,p),!0):u}});export{pn as a,hs as b,eu as c};
|
package/dist/chunk-J4W6GNCF.js
DELETED
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
import{c as h}from"./chunk-GH4EZK2O.js";import{e as g}from"./chunk-QI3FJKGK.js";import{a as c}from"./chunk-ZLLER3HP.js";import{createHash as b}from"node:crypto";import{mkdir as _,open as D,readFile as P,readdir as v,rename as E,stat as w,writeFile as A}from"node:fs/promises";import{homedir as T}from"node:os";import{basename as F,dirname as z,join as m}from"node:path";var N=3e4,O=5,$=8*1024*1024;function S(n){return b("sha256").update(`${n.externalSessionId}:${Math.round(n.mtimeMs)}:${n.size}`).digest("hex")}c(S,"fingerprint");async function k(n){try{return{fingerprints:JSON.parse(await P(n,"utf8")).fingerprints??{}}}catch{return{fingerprints:{}}}}c(k,"readState");async function j(n,i){let s=`${n}.${process.pid}.tmp`;await _(z(n),{recursive:!0}),await A(s,JSON.stringify(i)),await E(s,n)}c(j,"persistState");var y=class{constructor(i){this.options=i}static{c(this,"TranscriptSync")}lastSeenSize=new Map;lastSyncAt=new Map;inFlight=!1;async scan(){if(this.inFlight)return{discovered:0,imported:0,skipped:0};this.inFlight=!0;try{let i=await k(this.options.statePath),s=(await Promise.all(this.options.providers.map(t=>t.discover()))).flat().sort((t,p)=>p.mtimeMs-t.mtimeMs),o=Date.now(),e=[],r=0;for(let t of s){let p=S(t),d=this.lastSeenSize.get(t.path);if(this.lastSeenSize.set(t.path,t.size),i.fingerprints[t.path]===p){r++;continue}let u=this.options.minStableAgeMs??3e3;if(u>0&&o-t.mtimeMs<u){r++;continue}let f=d!==void 0&&d===t.size,l=this.lastSyncAt.get(t.path),M=l===void 0||o-l>=(this.options.activeResyncMs??N);if(!f&&!M){r++;continue}if(e.push(t),e.length>=(this.options.maxImportsPerScan??O))break}let a=0;for(let t of e){let p=S(t);if(t.size>(this.options.maxContentBytes??$)){i.fingerprints[t.path]=p,r++,this.options.log?.(`Transcript sync skipped oversized file: ${t.path}`);continue}let d=await P(t.path,"utf8"),u=await this.options.importTranscript({content:d,tool:t.tool});if(i.fingerprints[t.path]=p,this.lastSyncAt.set(t.path,Date.now()),a++,this.options.log?.(`Transcript sync imported ${t.tool} ${F(t.path)} (${t.externalSessionId}).`),this.options.emitInstructions){let f=h(u);if(f)try{await this.options.emitInstructions({sessionId:f,projectPath:t.projectPath,tool:t.tool})}catch(l){this.options.log?.(`Transcript sync instruction linking failed for ${t.externalSessionId}: ${l instanceof Error?l.message:String(l)}`)}}}return e.length>0&&await j(this.options.statePath,i),{discovered:s.length,imported:a,skipped:r}}finally{this.inFlight=!1}}};async function x(n){let i;try{i=await D(n,"r");let s=Buffer.alloc(64*1024),{bytesRead:o}=await i.read(s,0,s.length,0),e=s.subarray(0,o).toString("utf8").split(`
|
|
2
|
-
`)[0];return e?JSON.parse(e):null}catch{return null}finally{await i?.close()}}c(x,"readFirstJsonLine");async function C(n,i,s){let o=await v(n,{withFileTypes:!0}).catch(()=>[]);for(let e of o){let r=m(n,e.name);if(e.isDirectory()){await C(r,i,s);continue}if(!e.isFile()||!e.name.startsWith("rollout-")||!e.name.endsWith(".jsonl"))continue;let[a,t]=await Promise.all([w(r).catch(()=>null),x(r)]);if(!a||a.mtimeMs<s||t?.type!=="session_meta")continue;let p=t.payload?.originator,d=t.payload?.id??t.payload?.session_id;!p?.toLowerCase().startsWith("codex")||!d||i.push({path:r,tool:"codex",externalSessionId:d,projectPath:t.payload?.cwd??null,mtimeMs:a.mtimeMs,size:a.size})}}c(C,"walkCodexSessions");async function I(n,i,s){let o=await v(n,{withFileTypes:!0}).catch(()=>[]);for(let e of o){let r=m(n,e.name);if(e.isDirectory()){await I(r,i,s);continue}if(!e.isFile()||!e.name.endsWith(".jsonl"))continue;let[a,t]=await Promise.all([w(r).catch(()=>null),x(r)]);!a||a.mtimeMs<s||t?.type!=="session"||!t.id||i.push({path:r,tool:"pi",externalSessionId:t.id,projectPath:t.cwd??null,mtimeMs:a.mtimeMs,size:a.size})}}c(I,"walkPiSessions");function U(n=process.env.CODEX_HOME??m(T(),".codex"),i=14,s){return{name:"codex",async discover(){let o=typeof s=="function"?await s():s;if(o.mode==="off")return[];let e=[],r=Date.now()-Math.max(1,i)*24*60*60*1e3;return await C(m(n,"sessions"),e,r),o.mode==="all"?e:e.filter(a=>g(o,a.projectPath))}}}c(U,"createCodexTranscriptProvider");function R(){if(process.env.PI_CODING_AGENT_SESSION_DIR)return process.env.PI_CODING_AGENT_SESSION_DIR;let n=process.env.PI_CODING_AGENT_DIR??m(T(),".pi","agent");return m(n,"sessions")}c(R,"defaultPiSessionsDir");function X(n=R(),i=14,s){return{name:"pi",async discover(){let o=typeof s=="function"?await s():s;if(o.mode==="off")return[];let e=[],r=Date.now()-Math.max(1,i)*24*60*60*1e3;return await I(n,e,r),o.mode==="all"?e:e.filter(a=>g(o,a.projectPath))}}}c(X,"createPiTranscriptProvider");function Y(n,i){let s=c(async()=>{try{let e=await n.scan();e.imported>0&&i.log?.(`Transcript sync imported/updated ${e.imported} session${e.imported===1?"":"s"}.`)}catch(e){i.log?.(`Transcript sync failed: ${e instanceof Error?e.message:String(e)}`)}},"run"),o=setInterval(()=>void s(),i.intervalMs??3e4);i.signal.addEventListener("abort",()=>clearInterval(o),{once:!0}),s()}c(Y,"startTranscriptSync");export{y as a,U as b,X as c,Y as d};
|
package/dist/chunk-KSKC5SEQ.js
DELETED
|
@@ -1,12 +0,0 @@
|
|
|
1
|
-
import{a as U,b as F}from"./chunk-LMQDS47I.js";import{a as h,b as I}from"./chunk-JQ2ZCUEC.js";import{a as $,b as k,e as R}from"./chunk-LJRE3LZ2.js";import{d as w}from"./chunk-GYNZ3OZF.js";import{g as C,i as D,j as P}from"./chunk-UPFH72PF.js";import{e as v,f as x,i as j}from"./chunk-Z7UN4R7T.js";import{D as b,F as S,G as T,o as A}from"./chunk-X6CF5KTW.js";import{a as l}from"./chunk-ZLLER3HP.js";import*as u from"node:fs";import*as m from"node:path";var O=new Set(["mcp","subagent","feature"]);function ie(e,t,n){return E(m.join(e,"CLAUDE.md"),t,n)}l(ie,"appendToCLAUDEmd");function E(e,t,n){let i=$(t),s=k(t),a=u.existsSync(e)?u.readFileSync(e,"utf8"):"";if(a.includes(i))return!1;let p=`${a.length>0&&!a.endsWith(`
|
|
2
|
-
`)?`
|
|
3
|
-
|
|
4
|
-
`:a.length>0?`
|
|
5
|
-
`:""}
|
|
6
|
-
${i}
|
|
7
|
-
${n}
|
|
8
|
-
${s}
|
|
9
|
-
`;return u.mkdirSync(m.dirname(e),{recursive:!0}),u.writeFileSync(e,a+p,"utf8"),!0}l(E,"appendBlockToFile");function N(e,t,n,i={}){return w(e,i).filter(s=>E(s.path,t,n))}l(N,"appendToAgentInstructionFiles");function _(e,t,n={}){return w(e,n).filter(i=>L(i.path,t))}l(_,"removeFromAgentInstructionFiles");function re(e,t){return L(m.join(e,"CLAUDE.md"),t)}l(re,"removeFromCLAUDEmd");function L(e,t){if(!u.existsSync(e))return!1;let n=$(t),i=k(t),s=u.readFileSync(e,"utf8"),a=s.indexOf(n);if(a===-1)return!1;let c=s.indexOf(i,a);if(c===-1)return!1;let p=s.slice(0,a),d=s.slice(c+i.length),o=(p.replace(/\n+$/,"")+`
|
|
10
|
-
`+d.replace(/^\n+/,"")).replace(/^\n+/,"");return u.writeFileSync(e,o,"utf8"),!0}l(L,"removeBlockFromFile");function g(e,t=90){return e.length<=t?e:`${e.slice(0,t-1)}\u2026`}l(g,"truncate");function q(e){return v(`/api/instruction-suggestions/${encodeURIComponent(e)}`)}l(q,"fetchSuggestion");async function ae(e){let t=e.suggestion??await q(e.suggestionId);if(t.kind==="remove")return B(e,t);if(t.kind==="trim")return K(e,t);if(t.broadAdoptionAllowed===!1)throw new Error("Scoped study owns delivery; no broad adoption authority");let n=t.instructionId;t.instructionScope==="public"&&(n=(await x(`/api/instructions/${encodeURIComponent(t.instructionId)}/promote-from-public`,{targetScope:"personal"})).instructionId);let i=await v(`/api/instructions/${encodeURIComponent(n)}`),a=i.type!=="skill"&&i.type!=="hook"&&!O.has(i.type??"")?T(i.content,r=>u.existsSync(m.join(e.dir,r))):[];if(a.length>0)return await I(e.suggestionId,e.projectPath,n,e.actor,"unresolvable_reference"),{action:"unresolvable-reference",instructionId:n,name:i.name,fileModified:!1,unresolvable:a,messages:[`Refused: ${i.name} tells the agent to run something this project does not have.`,...a.map(r=>` ${r.path} \u2014 no such file under ${e.dir}`),"Nothing was written. A confident instruction pointing at a file that is not there costs every future session the time it takes to discover that."]};let c;if(!e.force){let r=b(i.content,R(e.dir)),M=e.actor==="auto"?r.matches.length>0:r.redundant;if(!r.redundant&&r.matches.length>0&&(c=r),M){let y=r.redundant;return await I(e.suggestionId,e.projectPath,n,e.actor,y?"redundant":"partial_overlap"),{action:"redundant",instructionId:n,name:i.name,fileModified:!1,redundancy:r,partialOverlap:y?void 0:r,messages:[y?`Skipped: ${i.name} already applies here in different words \u2014 adding it would spend context to say the same thing twice.`:`Refused: ${r.matches.length} of ${r.matches.length+r.novel.length} asks in ${i.name} are already covered here, so adopting it would restate the file back at itself.`,...r.matches.map(f=>` "${g(f.directive)}"
|
|
11
|
-
already covered by ${f.matchedSource??f.matchedId} (${(f.similarity*100).toFixed(0)}% match): "${g(f.matchedDirective)}"`),...y?[]:["Still wanted, and not adopted:",...r.novel.map(f=>` "${g(f)}"`),"Propose those on their own and they can be adopted, tracked and undone individually."],"Add it anyway with `--force` if the overlap is not real."]}}}if(i.type==="skill")return H(e,{...i,id:n});if(i.type==="hook")return F(e,{...i,id:n});if(O.has(i.type??""))return{action:"manual-required",instructionId:n,name:i.name,fileModified:!1,messages:[`Not installed: ${i.name} is a ${i.type} artifact, and installing one runs code or edits tool configuration \u2014 that always requires a human.`,` Review it: rulemetric instructions get ${n}`,"Nothing was written. This proposal will keep appearing until you act on it or dismiss it."]};let p=N(e.dir,n,i.content),d=p.length>0;await h(e.suggestionId,e.projectPath,n,e.actor);let o=d&&c?[` Note: ${c.matches.length} of ${c.matches.length+c.novel.length} asks in this rule already appear elsewhere in context; it was added for the rest.`,...c.matches.map(r=>` "${g(r.directive)}"
|
|
12
|
-
repeats ${r.matchedSource??r.matchedId} (${(r.similarity*100).toFixed(0)}%): "${g(r.matchedDirective)}"`)]:[];return{action:d?"added":"already-present",instructionId:n,name:i.name,fileModified:d,partialOverlap:d?c:void 0,messages:d?[`Accepted: added ${i.name} to ${p.map(r=>m.relative(e.dir,r.path)).join(", ")}. It will be active starting in your next session.`,...o]:[`Already present: ${i.name} is already in CLAUDE.md (block id: ${n}).`]}}l(ae,"acceptSuggestion");async function H(e,t){if(!e.force){let o=S({name:t.name,content:t.content},D(e.dir));if(o)return await I(e.suggestionId,e.projectPath,t.id,e.actor),{action:"redundant",instructionId:t.id,name:t.name,fileModified:!1,duplicateOf:o,messages:[`Skipped: ${t.name} is already installed here as ${o.name}`+(o.reason==="name-stem"?" (same skill, different content-hash suffix).":` (${(o.similarity*100).toFixed(0)}% identical body).`),` Installed: ${P(e.dir,o.name)}`,"A second copy is not more available \u2014 it is one more thing to keep in sync."]}}let n=C({dir:e.dir,name:t.name,content:t.content,description:t.description}),i=[...n.warnings],s=[m.relative(e.dir,n.skillFile)];n.linkKind!=="none"&&s.push(m.relative(e.dir,n.linkPath));let a={boundaryClass:"inside",targets:s,requires:[],provides:[`skill:${n.dirName}`]},c={kind:"delete-paths",paths:s},p=A(a,c);if(p.length===0)try{await U({instructionId:t.id,projectPath:e.projectPath,targetPath:n.skillFile,beforeHash:"",appliedHash:"",boundaryClass:a.boundaryClass,targets:a.targets,inverse:c,requires:a.requires,provides:a.provides,applyMode:e.actor==="auto"?"auto":"human"})}catch(o){i.push(`the effect ledger did not record this install (${o instanceof Error?o.message:String(o)}) \u2014 \`suggestions undo\` will not remove it; delete ${s.join(" and ")} by hand.`)}else i.push(`no reversible inverse could be recorded (${p.map(o=>o.message).join("; ")}).`);await h(e.suggestionId,e.projectPath,t.id,e.actor);let d=[`Accepted: installed skill ${n.dirName} to ${m.relative(e.dir,n.skillFile)}.`];n.linkKind==="none"&&d.push("Claude Code will NOT see it yet \u2014 its path is taken by a directory this command did not create."),d.push("It loads on demand, so it costs no context until a task matches its description."),d.push(`Undo with: rulemetric suggestions undo ${t.id}`);for(let o of i)d.push(` Warning: ${o}`);return{action:"added",instructionId:t.id,name:t.name,fileModified:!0,messages:d}}l(H,"acceptSkill");async function K(e,t){let n=t.estimatedTokens?` It currently costs roughly ${t.estimatedTokens} tokens per session (estimated).`:"";return await h(e.suggestionId,e.projectPath,t.instructionId,e.actor),{action:"acknowledged",instructionId:t.instructionId,name:t.name,fileModified:!1,messages:[`Noted: ${t.name} is measured neutral, not harmful.${n}`,"Nothing was changed \u2014 trimming is a judgement call about which parts carry the value,","and the measurement only found the absence of a detectable effect, not which half to cut.",` View it: rulemetric instructions get ${t.instructionId}`," Then edit CLAUDE.md (or the instruction) and let the next measurement cycle re-check it.","This suggestion will stop re-surfacing."]}}l(K,"acknowledgeTrim");async function B(e,t){let n=_(e.dir,t.instructionId).length>0;await j(`/api/instructions/${encodeURIComponent(t.instructionId)}`);let i=t.estimatedTokens?` Frees roughly ${t.estimatedTokens} tokens of context per session (estimated).`:"",s=n?[`Retired: removed ${t.name} from CLAUDE.md and archived it.${i}`]:[`Archived ${t.name}.${i}`,"CLAUDE.md was not modified \u2014 no rulemetric-managed block for this instruction was found in this directory. If you added it by hand, remove it yourself."];return s.push("Undo with: rulemetric instructions restore "+t.instructionId),await h(e.suggestionId,e.projectPath,t.instructionId,e.actor),{action:n?"retired":"archived-only",instructionId:t.instructionId,name:t.name,fileModified:n,messages:s}}l(B,"acceptRemoval");export{ie as a,E as b,N as c,_ as d,re as e,L as f,q as g,ae as h};
|
package/dist/chunk-LARY6ZFT.js
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{d as T}from"./chunk-JP6ULOEX.js";import{d as k}from"./chunk-SVZYRGO5.js";import{b as f}from"./chunk-WULEBQPI.js";import{c as C,d as b}from"./chunk-GPBN4ROE.js";import{a as u}from"./chunk-ZLLER3HP.js";import{spawn as M}from"node:child_process";var m=["claude","codex","pi"],O=["--strict-mcp-config","--mcp-config",'{"mcpServers":{}}'];function L(e,t=process.env){if(e){if(m.includes(e))return e;throw new Error(`Eval engine "${String(e)}" is not known (expected one of: ${m.join(", ")})`)}let r=t.RULEMETRIC_EVAL_ENGINE?.trim().toLowerCase();if(!r)return"claude";if(m.includes(r))return r;throw new Error(`RULEMETRIC_EVAL_ENGINE="${t.RULEMETRIC_EVAL_ENGINE}" is not a known engine (expected one of: ${m.join(", ")})`)}u(L,"resolveEvalEngine");function h(e,t=process.env){return e?.trim()||t.RULEMETRIC_CODEX_MODEL?.trim()||b().codexConfiguredModel||C}u(h,"resolveCodexEvalModel");function F(e){try{let t=JSON.parse(e),r=t.result??t.content??e,i=t.usage?.total_tokens??(t.usage?.input_tokens??0)+(t.usage?.output_tokens??0)+(t.usage?.cache_creation_input_tokens??0)+(t.usage?.cache_read_input_tokens??0),n;if(t.modelUsage&&typeof t.modelUsage=="object"){let o=-1;for(let[l,d]of Object.entries(t.modelUsage)){let s=typeof d?.outputTokens=="number"?d.outputTokens:0;s>o&&(o=s,n=l)}}return{output:r,totalTokens:i,model:n,...t.usage&&typeof t.usage=="object"&&!Array.isArray(t.usage)?{usage:t.usage}:{}}}catch{return{output:e,totalTokens:0}}}u(F,"parseClaudeJsonOutput");function S(e){let{prompt:t,targetContent:r,systemPrompt:i,model:n}=e,o=["-p",t,"--output-format","json","--settings",JSON.stringify({disableAllHooks:!0,...e.writableFixture?{permissions:{blockReadsOutsideWorkingDirectories:!0},sandbox:{enabled:!0,failIfUnavailable:!0,autoAllowBashIfSandboxed:!0,allowUnsandboxedCommands:!1,excludedCommands:[],filesystem:{disabled:!1},network:{allowedDomains:[],strictAllowlist:!0}}}:{}})];o.push(...O),e.writableFixture&&o.push("--safe-mode","--restricted","--tools","Read,Write,Edit,Bash","--permission-mode","acceptEdits","--allowedTools","Read,Write,Edit,Bash");let l=r??i;return l&&o.push(e.appendTarget?"--append-system-prompt":"--system-prompt",l),n&&o.push("--model",n),o}u(S,"buildClaudeArgs");function N(e,t,r,i){let n=t.trim()||r.trim()||i.trim()||"(no output on stderr or stdout)";return`Exit code ${e}: ${n.slice(0,1e3)}`}u(N,"describeExitFailure");async function I(e){let{prompt:t,targetContent:r,systemPrompt:i,workDir:n,timeout:o,model:l}=e,d=r??i,s=await k({prompt:t,systemPrompt:d,model:h(l),writableFixture:e.writableFixture,timeout:o,workDir:n});return{output:s.output,exitCode:s.exitCode,durationMs:s.durationMs,totalTokens:s.usage?.totalTokens??0,model:s.model,engine:"codex",delivery:d?"prompt_prefix":"none",error:s.error}}u(I,"executeCodexArm");async function U(e){let t=e.targetContent??e.systemPrompt,r=await T({prompt:e.prompt,...e.appendTarget?{appendSystemPrompt:t}:{systemPrompt:t},ignoreContextFiles:e.ignoreContextFiles,model:e.model,timeout:e.timeout,workDir:e.workDir});return{output:r.output,exitCode:r.exitCode,durationMs:r.durationMs,totalTokens:r.usage?.totalTokens??0,model:r.model,provider:r.provider,costUsd:r.costUsd,engine:"pi",delivery:t?"system_prompt":"none",error:r.error}}u(U,"executePiArm");async function W(e){let{prompt:t,targetContent:r,systemPrompt:i,workDir:n=process.cwd(),timeout:o=12e4,model:l}=e,d=L(e.engine);if(d==="codex")return I({...e,workDir:n,timeout:o});if(d==="pi")return U({...e,workDir:n,timeout:o});let s=S({prompt:t,targetContent:r,systemPrompt:i,model:l,appendTarget:e.appendTarget,writableFixture:e.writableFixture}),g=r??i?"system_prompt":"none",E=Date.now();return new Promise(x=>{let _=f(),p=M("claude",s,{cwd:n,env:_,stdio:["ignore","pipe","pipe"]}),c="",v="";p.stdout.on("data",a=>{c+=a.toString()}),p.stderr.on("data",a=>{v+=a.toString()});let y=setTimeout(()=>{p.kill("SIGTERM"),x({output:c,exitCode:null,durationMs:Date.now()-E,totalTokens:0,engine:"claude",delivery:g,error:`Timed out after ${o}ms`})},o);p.on("close",a=>{clearTimeout(y);let P=Date.now()-E,{output:w,totalTokens:R,model:A,usage:D}=F(c);x({output:w,exitCode:a,durationMs:P,totalTokens:R,usage:D,model:A,engine:"claude",delivery:g,error:a!==0?N(a,v,w,c):void 0})}),p.on("error",a=>{clearTimeout(y),x({output:"",exitCode:null,durationMs:Date.now()-E,totalTokens:0,engine:"claude",delivery:g,error:`Failed to spawn claude: ${a.message}`})})})}u(W,"executeEval");export{O as a,L as b,h as c,F as d,S as e,N as f,W as g};
|
package/dist/chunk-LMNUO32P.js
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{e as g,f as m}from"./chunk-Z7UN4R7T.js";import{a as l}from"./chunk-ZLLER3HP.js";async function f(c,p){let r=l(e=>p?.logger?.info?.(e)??console.log(e),"log"),{projectPath:o}=c,i=`[cron_instruction_training] ${o}`;if(!o)return{skipped:"no-project-path"};let n=await m("/api/instruction-experiments/settle",{projectPath:o}),a=n.settled.map(e=>e.outcome),d=a.filter(e=>e==="graduated").length;for(let e of n.settled)r(`${i}: experiment ${e.experimentId} \u2192 ${e.outcome}`);n.examined>0&&r(`${i}: examined ${n.examined} running experiment(s) \u2014 ${n.settled.length} settled (${d} graduated), ${n.stillRunning} still gathering`);let t=await g(`/api/instruction-suggestions/trialable?projectPath=${encodeURIComponent(o)}`);for(let e of t.refused)r(`${i}: not trialling "${e.name}" \u2014 ${e.reason}`);if(t.candidates.length===0)return r(`${i}: no new trial started (${t.running}/${t.limits.maxConcurrent} running, ${t.slots} slot(s) free)`),{examined:n.examined,settled:n.settled.length,graduated:d,nominated:0,running:t.running,outcomes:a};let u=0;for(let e of t.candidates)try{let s=await m(`/api/instruction-suggestions/${e.id}/test`,{});if(s.existing){r(`${i}: comparison already recorded for "${e.name}" (${s.evalJobId})`);continue}u+=1,r(`${i}: queued bounded comparison and live-study preparation for "${e.name}"`)}catch(s){r(`${i}: could not measure "${e.name}" \u2014 ${s instanceof Error?s.message:String(s)}`)}return{examined:n.examined,settled:n.settled.length,graduated:d,nominated:u,queued:u,running:t.running,outcomes:a}}l(f,"cronInstructionTraining");export{f as a};
|
package/dist/chunk-RCJTCLZO.js
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{b as T,d as H}from"./chunk-VBGHPAUT.js";import{b as A,e as c,f as m}from"./chunk-Z7UN4R7T.js";import{a as u}from"./chunk-ZLLER3HP.js";import{createHash as M,randomUUID as D}from"node:crypto";import{readFileSync as h,existsSync as g}from"node:fs";import{join as i}from"node:path";import{pathToFileURL as L}from"node:url";import{execFileSync as O}from"node:child_process";import{scriptsDir as J}from"@rulemetric/hooks/scripts-dir";var f=u(t=>M("sha256").update(t).digest("hex"),"hash");async function Q(t){let k=await c(`/api/instruction-suggestions/${t.suggestionId}/test`);if(k.liveStudies?.length)return{status:"existing",studyId:k.liveStudies[0].id};let o=await c(`/api/eval-targets/${t.evalTargetId}`);if(!o.projectPath||!o.instructionId)return{status:"blocked",reason:"The suggestion has no project and instruction link."};let s=o.projectPath;if(!g(i(s,"package.json")))return{status:"blocked",reason:"Automatic repository checks currently require a package.json type-check or typecheck script."};let d=JSON.parse(h(i(s,"package.json"),"utf8")),y=["type-check","typecheck"].find(e=>typeof d.scripts?.[e]=="string");if(!y)return{status:"blocked",reason:"Add a type-check or typecheck script to prepare independently checked code tasks."};let v=t.research?[]:await c(`/api/eval-targets/${t.evalTargetId}/runs?jobId=${t.evalJobId}&limit=100`),b=v.flatMap(e=>e.outputs?.engine==="claude"&&e.outputs.model?[e.outputs.model]:[]),x=[...new Set(b)],l=t.requestedModel?.trim()||(x.length===1?x[0]:void 0);if(!l)return{status:"blocked",reason:"Choose an exact Claude model for the separately budgeted live study. Missing comparison model metadata does not determine live eligibility."};let p=await import(L(i(J,"scoped-live.mjs")).href);if(typeof p.runRepositoryCheck!="function")return{status:"blocked",reason:"Upgrade the installed hooks to support repository checks."};let r=p.observeEnvironment(s);for(let e of Object.keys(r.contextHashes))if(r.contextHashes[e]&&/(?:CLAUDE(?:\.local)?|AGENTS)\.md$/.test(e)&&h(e,"utf8").includes(t.content.trim()))return{status:"blocked",reason:"The candidate already exists in background instructions; it cannot be withheld from baseline tasks."};let P=O("git",["ls-files","-z"],{cwd:s,encoding:"utf8",timeout:5e3}).split("\0"),I=[...new Set(["package.json",...P.filter(e=>!e.split("/").some(q=>q.startsWith("."))&&/(^|\/)(package\.json|tsconfig[^/]*\.json|turbo\.json|pnpm-workspace\.yaml|pnpm-lock\.yaml|package-lock\.json|yarn\.lock)$/.test(e))])];if(I.length>300)return{status:"blocked",reason:"Repository verifier configuration exceeds the 300-file preparation bound."};let $=Object.fromEntries(I.sort().map(e=>[e,f(h(i(s,e),"utf8"))])),w={name:"Repository type checking passes",path:"package.json",kind:"command_exit",expected:"0",primary:!0,command:[d.packageManager?.startsWith("pnpm@")||g(i(s,"pnpm-lock.yaml"))?"pnpm":d.packageManager?.startsWith("yarn@")||g(i(s,"yarn.lock"))?"yarn":"npm","run",y],timeoutMs:12e4,fileHashes:$},n=p.runRepositoryCheck(s,w);if(n.error||n.exitCode===null)return{status:"blocked",reason:`The verifier could not execute: ${n.error??"no exit status"}`};let a=t.research?.taskLimit??20,j=Array.from({length:a+1},()=>`work-${D()}`),S=H.parse({version:1,mode:"exploration",research:{question:t.research?.question??`Does ${o.name} increase the fraction of fresh launched tasks leaving repository type checks passing?`,rationale:t.research?T(t.research):o.description||"Test the exact suggested instruction on prospective project work.",eligibility:"Fresh work requests supplied before launch in this project, using the pinned Claude model. One request per task; resumed and repeated work excluded.",riskReview:`${a} task assignments, one baseline follow-up, seven-day expiry. Frozen repository checks; changes to checker configuration invalidate outcomes. Shared-checkout carryover is recorded; final causal interpretation remains inconclusive. No automatic adoption.`,enrollment:"prospective-launches",suggestionId:t.suggestionId,evalTargetId:t.evalTargetId,preparationJobId:t.preparationJobId,carryoverPolicy:"fresh-session-per-task",adoptionPolicy:"no-adoption"},projectPath:s,taskFamily:"fresh-project-work",harness:"claude_code",model:l,configurationHash:f(JSON.stringify({harnessVersion:r.harnessVersion,repositoryRevision:r.repositoryRevision,contextHashes:r.contextHashes})),baselineDeliveryHash:f(""),treatmentDeliveryHash:t.contentHash,primaryOutcome:"Repository type checking passes after the task; this is not a claim of full task correctness.",outcomeRule:{source:"session_analysis",completedValues:["achieved"],failedValues:["failed"]},eligibleTaskIds:j,maxAssignments:a,decisionRule:{minCompletedPerArm:2,minimumAbsoluteEffect:.1},expiresAt:new Date(Date.now()+7*864e5).toISOString(),verification:{version:1,kind:"artifact-checks",environment:r,tasks:j.map(e=>({taskId:e,checks:[w]}))}}),C=await m("/api/instruction-experiments",{instructionId:o.instructionId,projectPath:s,source:"trial",mode:"scoped"}),R;try{R=await m(`/api/instruction-experiments/${C.experimentId}/scoped-live-confirmations`,{protocol:S})}catch(e){if(e instanceof A&&e.statusCode===409&&e.message==="Preparation was cancelled before the live study opened")return{status:"cancelled",reason:e.message};throw e}return{status:"waiting_for_work",studyId:R.confirmation.id,verifierReadiness:n,taskLimit:a,comparisonRunsWithUnknownModel:v.length-b.length,modelSelection:t.requestedModel?"explicit_request":"comparison_observation",outcome:S.primaryOutcome,model:l}}u(Q,"prepareSuggestionLive");export{Q as a};
|
package/dist/chunk-VFWQ2W4B.js
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{f as u}from"./chunk-Z7UN4R7T.js";import{a as m}from"./chunk-ZLLER3HP.js";async function p(n,a,s){if(a)try{let t=Array.isArray(n.recommendation_candidates)?n.recommendation_candidates.filter(e=>typeof e.title=="string"&&typeof e.artifact=="string"&&typeof e.canonicalBody=="string"&&e.canonicalBody.trim().length>=12).map(e=>({title:String(e.title).trim(),artifact:String(e.artifact),canonicalBody:String(e.canonicalBody).trim(),rationale:String(e.rationale??""),evidence:Array.isArray(e.evidence)?e.evidence:[],outcomeMetric:String(e.outcomeMetric??"session_outcome"),renderings:Array.isArray(e.renderings)?e.renderings:[]})):[],i=n.suggestions,l=Array.isArray(i?.claude_md_additions)?i.claude_md_additions.filter(e=>typeof e?.addition=="string"&&e.addition.trim().length>=12).map(e=>({addition:String(e.addition).trim(),why:String(e.why??"")})):[],d=Array.isArray(n.recommended_skills)?n.recommended_skills.filter(e=>typeof e?.skillId=="string"&&e.skillId.length>0).map(e=>({skillId:String(e.skillId),reason:String(e.reason??"")})):[],g=Array.isArray(i?.features_to_try)?i.features_to_try.filter(e=>typeof e?.feature=="string"&&e.feature.trim().length>=2).map(e=>({feature:String(e.feature).trim(),one_liner:String(e.one_liner??""),why_for_you:String(e.why_for_you??""),example_code:String(e.example_code??"")})):[],c=[...Array.isArray(i?.usage_patterns)?i.usage_patterns.map(e=>({title:String(e.title??"").trim(),lead:String(e.suggestion??""),detail:String(e.detail??""),copyable_prompt:String(e.copyable_prompt??""),origin:"usage_pattern"})):[],...Array.isArray(n.on_the_horizon?.opportunities)?n.on_the_horizon.opportunities.map(e=>({title:String(e.title??"").trim(),lead:String(e.whats_possible??""),detail:String(e.how_to_try??""),copyable_prompt:String(e.copyable_prompt??""),origin:"opportunity"})):[]].filter(e=>e.title.length>=2);if(t.length===0&&l.length===0&&d.length===0&&g.length===0&&c.length===0)return;let r=await u("/api/insights/recommendations/nominate",{projectPath:a,candidates:t.slice(0,40),additions:l.slice(0,20),skills:d.slice(0,20),features:g.slice(0,20),advice:c.slice(0,40)}),o=r.additionsRejected??[];s(` ${r.nominated} recommendation(s) nominated into the suggestion feed (${r.additionsCreated} new instruction(s)`+((r.featuresCreated??0)>0?`, ${r.featuresCreated} feature proposal(s)`:"")+((r.adviceCreated??0)>0?`, ${r.adviceCreated} pattern/opportunity`:"")+(r.skillsUnresolved>0?`, ${r.skillsUnresolved} skill slug(s) unresolved`:"")+(o.length>0?`, ${o.length} rejected as unfilled templates`:"")+")");for(let e of o)s(` rejected "${e.name}" \u2014 unfilled placeholder(s): ${e.placeholders.join(", ")}`);for(let e of r.itemsFailed??[])s(` failed "${e.name}" \u2014 ${e.error}`)}catch(t){s(` nomination skipped (whole batch): ${t instanceof Error?t.message:String(t)}`)}}m(p,"nominateRecommendations");export{p as a};
|
package/dist/chunk-WWL4HNXM.js
DELETED
|
@@ -1,28 +0,0 @@
|
|
|
1
|
-
import{a as i,b as qt}from"./chunk-ZLLER3HP.js";var Ye=["claude_code","cursor","vscode_copilot","copilot_agent","rulemetric_mcp","codex","pi","opencode","antigravity"],Ze=["user_message","assistant_message","assistant_response","tool_call","tool_result","thinking","error"];var Gt=new Set(["","unknown","<synthetic>"]);function Jt(e){if(typeof e!="string")return null;let t=e.trim();return Gt.has(t)?null:t}i(Jt,"resolveEventModel");var C=class{static{i(this,"ClaudeCodeAdapter")}tool="claude_code";parse(t){let n=t.split(`
|
|
2
|
-
`).filter(c=>c.trim()),o=[];for(let c of n)try{o.push(JSON.parse(c))}catch{}let s=o.filter(c=>c.type==="user"||c.type==="assistant"),r=null,l=null,u={},a=o.find(c=>c.type==="user");a&&(r=a.cwd??null,l=a.gitBranch??null,a.version&&(u.claudeCodeVersion=a.version),a.sessionId&&(u.sessionId=a.sessionId));let p=o.find(c=>c.type==="assistant");p?.message?.model&&(u.model=p.message.model);let f=[],h=0;for(let c of s){let y=c.timestamp??new Date().toISOString();if(c.type==="user"){let m=c.message?.content;if(typeof m=="string")f.push({sequence:h++,eventType:"user_message",content:m,toolName:null,toolInput:null,toolOutput:null,tokenUsage:null,timestamp:y,metadata:{}});else if(Array.isArray(m))for(let _ of m)_.type==="tool_result"&&f.push({sequence:h++,eventType:"tool_result",content:typeof _.content=="string"?_.content:JSON.stringify(_.content),toolName:null,toolInput:null,toolOutput:null,tokenUsage:null,timestamp:y,metadata:{toolUseId:_.tool_use_id}})}else if(c.type==="assistant"){let m=Array.isArray(c.message?.content)?c.message.content:[],_=c.message?.usage,v=_?{input:_.input_tokens??0,output:_.output_tokens??0,cacheRead:_.cache_read_input_tokens??0,cacheWrite:_.cache_creation_input_tokens??0}:null,T={};c.message?.model&&(T.model=c.message.model);let x=Jt(c.message?.model);c.message?.stop_reason&&(T.stopReason=c.message.stop_reason),c.requestId&&(T.requestId=c.requestId),_?.service_tier&&(T.serviceTier=_.service_tier),_?.speed&&(T.speed=_.speed),_?.cache_creation&&(T.cacheCreationDetail=_.cache_creation),_?.server_tool_use&&(T.serverToolUse=_.server_tool_use);for(let S of m)S.type==="text"?f.push({sequence:h++,eventType:"assistant_message",content:S.text??"",toolName:null,toolInput:null,toolOutput:null,tokenUsage:v,model:x,timestamp:y,metadata:T}):S.type==="thinking"?f.push({sequence:h++,eventType:"thinking",content:S.thinking??"",toolName:null,toolInput:null,toolOutput:null,tokenUsage:v,model:x,timestamp:y,metadata:T}):S.type==="tool_use"&&f.push({sequence:h++,eventType:"tool_call",content:null,toolName:S.name??"unknown",toolInput:S.input??null,toolOutput:null,tokenUsage:v,model:x,timestamp:y,metadata:{...T,toolUseId:S.id}})}}let d=f.map(c=>c.timestamp).sort(),g=new Date().toISOString();return{tool:"claude_code",projectPath:r,gitBranch:l,startedAt:d[0]??g,endedAt:d[d.length-1]??null,events:f,metadata:u}}};var A=class{static{i(this,"CursorAdapter")}tool="cursor";parse(t){let n=qt("better-sqlite3"),o=new n(t,{readonly:!0});try{let s=o.prepare("SELECT value FROM ItemTable WHERE key = 'composer.composerData'").get();return s?this.parseComposerJson(s.value):this.emptySession()}finally{o.close()}}parseComposerJson(t){let n;try{n=JSON.parse(t)}catch{return this.emptySession()}let o=Object.values(n.allComposers??{});if(o.length===0)return this.emptySession();let s=o.sort((p,f)=>{let h=p.createdAt?new Date(p.createdAt).getTime():0;return(f.createdAt?new Date(f.createdAt).getTime():0)-h})[0],r=s.conversation??[],l=[];for(let p=0;p<r.length;p++){let f=r[p],h=f.createdAt??new Date().toISOString();l.push({sequence:p,eventType:f.type===1?"user_message":"assistant_message",content:f.text,toolName:null,toolInput:null,toolOutput:null,tokenUsage:null,timestamp:h,metadata:{}})}let u=l.map(p=>p.timestamp).sort(),a=new Date().toISOString();return{tool:"cursor",projectPath:null,gitBranch:null,startedAt:u[0]??a,endedAt:u[u.length-1]??null,events:l,metadata:{composerId:s.composerId}}}emptySession(){return{tool:"cursor",projectPath:null,gitBranch:null,startedAt:new Date().toISOString(),endedAt:null,events:[],metadata:{}}}};var N=class{static{i(this,"VSCodeCopilotAdapter")}tool="vscode_copilot";parse(t){let n;try{n=JSON.parse(t)}catch{return this.emptySession()}let o=n.requests??[],s=[],r=0;for(let a of o){let p=a.timestamp?new Date(a.timestamp).toISOString():new Date().toISOString();if(s.push({sequence:r++,eventType:"user_message",content:a.message,toolName:null,toolInput:null,toolOutput:null,tokenUsage:null,timestamp:p,metadata:{}}),a.response){let f=a.response.timestamp?new Date(a.response.timestamp).toISOString():p;s.push({sequence:r++,eventType:"assistant_message",content:a.response.message,toolName:null,toolInput:null,toolOutput:null,tokenUsage:null,timestamp:f,metadata:{}})}}let l=s.map(a=>a.timestamp).sort(),u=new Date().toISOString();return{tool:"vscode_copilot",projectPath:null,gitBranch:null,startedAt:l[0]??u,endedAt:l[l.length-1]??null,events:s,metadata:{...n.requesterUsername&&{username:n.requesterUsername},...n.customTitle&&{title:n.customTitle}}}}emptySession(){return{tool:"vscode_copilot",projectPath:null,gitBranch:null,startedAt:new Date().toISOString(),endedAt:null,events:[],metadata:{}}}};var P=class{static{i(this,"CopilotAgentAdapter")}tool="copilot_agent";parse(t){let n;try{n=JSON.parse(t)}catch{return this.emptySession()}let o=n.requests??[],s=[],r=0;for(let a of o){let p=a.timestamp?new Date(a.timestamp).toISOString():new Date().toISOString();if(s.push({sequence:r++,eventType:"user_message",content:a.message,toolName:null,toolInput:null,toolOutput:null,tokenUsage:null,timestamp:p,metadata:{}}),a.toolCalls)for(let f of a.toolCalls){let h=f.timestamp?new Date(f.timestamp).toISOString():p;s.push({sequence:r++,eventType:"tool_call",content:null,toolName:f.name??"unknown",toolInput:f.input??null,toolOutput:f.output??null,tokenUsage:null,timestamp:h,metadata:{}})}if(a.response){let f=a.response.timestamp?new Date(a.response.timestamp).toISOString():p;s.push({sequence:r++,eventType:"assistant_message",content:a.response.message,toolName:null,toolInput:null,toolOutput:null,tokenUsage:null,timestamp:f,metadata:{}})}}let l=s.map(a=>a.timestamp).sort(),u=new Date().toISOString();return{tool:"copilot_agent",projectPath:null,gitBranch:null,startedAt:l[0]??u,endedAt:l[l.length-1]??null,events:s,metadata:{...n.requesterUsername&&{username:n.requesterUsername},...n.customTitle&&{title:n.customTitle},...n.agentMode!=null&&{agentMode:n.agentMode}}}}emptySession(){return{tool:"copilot_agent",projectPath:null,gitBranch:null,startedAt:new Date().toISOString(),endedAt:null,events:[],metadata:{}}}};var D=class{static{i(this,"RuleMetricMcpAdapter")}tool="rulemetric_mcp";parse(t){let n;try{n=JSON.parse(t)}catch{return this.emptySession()}let s=(n.events??[]).map((l,u)=>({sequence:l.sequence??u,eventType:this.normalizeEventType(l.eventType),content:l.content??null,toolName:l.toolName??null,toolInput:l.toolInput??null,toolOutput:l.toolOutput??null,tokenUsage:l.tokenUsage??null,timestamp:l.timestamp??new Date().toISOString(),metadata:l.metadata??{}})),r=new Date().toISOString();return{tool:"rulemetric_mcp",projectPath:n.projectPath??null,gitBranch:n.gitBranch??null,startedAt:n.startedAt??s[0]?.timestamp??r,endedAt:n.endedAt??s[s.length-1]?.timestamp??null,events:s,metadata:n.metadata??{}}}normalizeEventType(t){return t&&["user_message","assistant_message","tool_call","tool_result","thinking","error"].includes(t)?t:"assistant_message"}emptySession(){return{tool:"rulemetric_mcp",projectPath:null,gitBranch:null,startedAt:new Date().toISOString(),endedAt:null,events:[],metadata:{}}}};function Bt(e){try{return JSON.parse(e)}catch{return e}}i(Bt,"safeJsonParse");function tt(e,t){return Array.isArray(e)?e.filter(n=>n.type&&t.includes(n.type)).map(n=>n.text??"").filter(Boolean).join(`
|
|
3
|
-
|
|
4
|
-
`):""}i(tt,"textFromBlocks");function Ft(e){if(!e)return null;let t=e.cached_input_tokens??0,n=Math.max(0,(e.input_tokens??0)-t),o=(e.output_tokens??0)+(e.reasoning_output_tokens??0);return n===0&&o===0&&t===0?null:{input:n,output:o,cacheRead:t,cacheWrite:0}}i(Ft,"tokenUsageFromCodex");function Ht(e){if(!e)return new Date().toISOString();let t=new Date(e);return Number.isFinite(t.getTime())?t.toISOString():new Date().toISOString()}i(Ht,"normalizeTimestamp");function et(){return{sequence:0,model:null,prevCumulativeTotal:0,callNames:{}}}i(et,"freshCodexState");var E=class{static{i(this,"CodexAdapter")}tool="codex";parse(t){let n=et(),{events:o,projectPath:s,gitBranch:r,metadata:l}=this.parseLines(t,n),u=o.map(p=>p.timestamp).sort(),a=new Date().toISOString();return{tool:"codex",projectPath:s,gitBranch:r,startedAt:u[0]??a,endedAt:u[u.length-1]??null,events:o,metadata:l}}parseAppend(t,n){let o={...n,callNames:{...n.callNames}},{events:s}=this.parseLines(t,o);return{events:s,state:o}}parseLines(t,n){let o=t.split(`
|
|
5
|
-
`).filter(f=>f.trim()),s=[],r={},l=n.callNames,u=null,a=null,p=null;for(let f of o){let h;try{h=JSON.parse(f)}catch{continue}let d=h.payload;if(!d)continue;let g=Ht(h.timestamp);if(h.type==="session_meta"){p=d.session_id??d.id??p,u=d.cwd??u,d.git_branch&&(a=d.git_branch),d.model&&(n.model=d.model),r.sessionId=p,r.codexSessionId=p,r.originator=d.originator,r.source=d.source,r.modelProvider=d.model_provider,r.codexCliVersion=d.cli_version;continue}if(h.type==="turn_context"){u=d.cwd??u,d.model&&(n.model=d.model,r.model=d.model);continue}if(h.type==="response_item"&&d.type==="message"){if(d.role==="user"){let c=tt(d.content,["input_text"]);if(!c)continue;s.push({sequence:n.sequence++,eventType:"user_message",content:c,toolName:null,toolInput:null,toolOutput:null,tokenUsage:null,timestamp:g,metadata:{}})}else if(d.role==="assistant"){let c=tt(d.content,["output_text"]);if(!c)continue;s.push({sequence:n.sequence++,eventType:"assistant_message",content:c,toolName:null,toolInput:null,toolOutput:null,tokenUsage:null,model:n.model,timestamp:g,metadata:n.model?{model:n.model}:{}})}continue}if(h.type==="response_item"&&d.type==="function_call"){let c=d.name??"unknown";d.call_id&&(l[d.call_id]=c);let y=typeof d.arguments=="string"?Bt(d.arguments):{};s.push({sequence:n.sequence++,eventType:"tool_call",content:null,toolName:c,toolInput:y&&typeof y=="object"&&!Array.isArray(y)?y:{arguments:y},toolOutput:null,tokenUsage:null,model:n.model,timestamp:g,metadata:{callId:d.call_id}});continue}if(h.type==="response_item"&&d.type==="function_call_output"){let c=d.call_id?l[d.call_id]??null:null;s.push({sequence:n.sequence++,eventType:"tool_result",content:d.output??null,toolName:c,toolInput:null,toolOutput:d.output==null?null:{output:d.output},tokenUsage:null,model:n.model,timestamp:g,metadata:{callId:d.call_id}});continue}if(h.type==="event_msg"&&d.type==="token_count"){let c=d.info,y=c?.total_token_usage?.total_tokens??0;if(y>0&&y===n.prevCumulativeTotal)continue;y>0&&(n.prevCumulativeTotal=y);let m=Ft(c?.last_token_usage??c?.total_token_usage);if(!m)continue;let _=c?.model??c?.model_name??n.model;s.push({sequence:n.sequence++,eventType:"assistant_response",content:null,toolName:null,toolInput:null,toolOutput:null,tokenUsage:m,model:_??null,timestamp:g,metadata:{codexEventType:"token_count",..._?{model:_}:{},reasoningOutputTokens:c?.last_token_usage?.reasoning_output_tokens??0,usage:{input_tokens:m.input,output_tokens:m.output,cache_read_input_tokens:m.cacheRead??0,cache_creation_input_tokens:m.cacheWrite??0}}})}}return{events:s,projectPath:u,gitBranch:a,sessionId:p,metadata:r}}};function nt(e,t){let n=e??(typeof t=="number"?new Date(t).toISOString():""),o=new Date(n);return Number.isFinite(o.getTime())?o.toISOString():new Date().toISOString()}i(nt,"timestamp");function st(e){return Array.isArray(e.content)?e.content:[]}i(st,"blocks");function ot(e){return typeof e.content=="string"?e.content:st(e).filter(t=>t.type==="text").map(t=>t.text??"").filter(Boolean).join(`
|
|
6
|
-
|
|
7
|
-
`)}i(ot,"messageText");function Wt(e){if(!e)return null;let t={input:Math.max(0,e.input??0),output:Math.max(0,e.output??0),cacheRead:Math.max(0,e.cacheRead??0),cacheWrite:Math.max(0,e.cacheWrite??0)};return Object.values(t).some(n=>n>0)?t:null}i(Wt,"usageOf");var b=class{static{i(this,"PiAdapter")}tool="pi";parse(t){let n=[],o={},s=null,r=null,l=null,u=null,a=i(h=>{n.push({sequence:n.length,...h})},"push");for(let h of t.split(`
|
|
8
|
-
`)){if(!h.trim())continue;let d;try{d=JSON.parse(h)}catch{continue}if(d.type==="session"){r||(r=nt(d.timestamp)),s=d.cwd??s,o.sessionId=d.id,o.piSessionId=d.id,o.sessionVersion=d.version;continue}if(d.type==="model_change"){l=d.provider??l,u=d.modelId??u,l&&(o.provider=l),u&&(o.model=u);continue}if(d.type!=="message"||!d.message)continue;let g=d.message,c=nt(d.timestamp,g.timestamp);if(l=g.provider??l,u=g.model??u,l&&(o.provider=l),u&&(o.model=u),g.role==="user"){let m=ot(g);if(!m)continue;a({eventType:"user_message",content:m,toolName:null,toolInput:null,toolOutput:null,tokenUsage:null,timestamp:c,metadata:{}});continue}if(g.role==="toolResult"){let m=ot(g);a({eventType:"tool_result",content:m||null,toolName:g.toolName??null,toolInput:null,toolOutput:{content:m,details:g.details??null,isError:g.isError??!1},tokenUsage:null,model:u,timestamp:c,metadata:{toolCallId:g.toolCallId,isError:g.isError??!1}});continue}if(g.role!=="assistant")continue;if(g.stopReason==="error"||g.stopReason==="aborted"){a({eventType:"error",content:g.errorMessage??`Pi stopped with ${g.stopReason}`,toolName:null,toolInput:null,toolOutput:null,tokenUsage:null,model:u,timestamp:c,metadata:{provider:l,stopReason:g.stopReason}});continue}for(let m of st(g))m.type==="thinking"&&m.thinking?a({eventType:"thinking",content:m.thinking,toolName:null,toolInput:null,toolOutput:null,tokenUsage:null,model:u,timestamp:c,metadata:{provider:l}}):m.type==="text"&&m.text?a({eventType:"assistant_message",content:m.text,toolName:null,toolInput:null,toolOutput:null,tokenUsage:null,model:u,timestamp:c,metadata:{provider:l}}):m.type==="toolCall"&&m.name&&a({eventType:"tool_call",content:null,toolName:m.name,toolInput:m.arguments??{},toolOutput:null,tokenUsage:null,model:u,timestamp:c,metadata:{provider:l,toolCallId:m.id}});let y=Wt(g.usage);y&&a({eventType:"assistant_response",content:null,toolName:null,toolInput:null,toolOutput:null,tokenUsage:y,model:u,timestamp:c,metadata:{piEventType:"assistant_usage",provider:l,responseId:g.responseId,stopReason:g.stopReason,costUsd:g.usage?.cost?.total,usage:{input_tokens:y.input,output_tokens:y.output,cache_read_input_tokens:y.cacheRead??0,cache_creation_input_tokens:y.cacheWrite??0}}})}let p=n.map(h=>h.timestamp).sort(),f=new Date().toISOString();return{tool:"pi",projectPath:s,gitBranch:null,startedAt:r??p[0]??f,endedAt:p[p.length-1]??null,events:n,metadata:o}}};var zt={claude_code:i(()=>new C,"claude_code"),cursor:i(()=>new A,"cursor"),vscode_copilot:i(()=>new N,"vscode_copilot"),copilot_agent:i(()=>new P,"copilot_agent"),rulemetric_mcp:i(()=>new D,"rulemetric_mcp"),codex:i(()=>new E,"codex"),pi:i(()=>new b,"pi")};function Kt(e){let t=zt[e];if(!t)throw new Error(`Unknown session tool: ${e}`);return t()}i(Kt,"getAdapter");function Vt(e){let t=e.trim();if(t.startsWith("{")){let n=t.split(`
|
|
9
|
-
`)[0],o=null;try{o=JSON.parse(n)}catch{try{o=JSON.parse(t)}catch{}}if(o){if(o.type==="user"||o.type==="assistant")return"claude_code";if(o.type==="session"&&typeof o.id=="string"&&typeof o.cwd=="string"&&typeof o.version=="number")return"pi";if(Array.isArray(o.events)&&!o.requests&&!o.allComposers)return"rulemetric_mcp";if(Array.isArray(o.requests))return o.requests.some(r=>Array.isArray(r.toolCalls))||o.agentMode?"copilot_agent":"vscode_copilot";if(o.allComposers)return"cursor"}if(!o)try{let s=t.split(`
|
|
10
|
-
`).filter(r=>r.trim());if(s.length>1){let r=JSON.parse(s[0]);if(r.type==="user"||r.type==="assistant")return"claude_code"}}catch{}}return null}i(Vt,"detectTool");import{readdir as H,stat as W}from"fs/promises";import{basename as Qt,join as w}from"path";import{homedir as R}from"os";var Xt={"claude-opus-4-7":"Opus 4.7","claude-opus-4-6":"Opus 4.6","claude-opus-4-5":"Opus 4.5","claude-opus-4-1":"Opus 4.1","claude-opus-4":"Opus 4","claude-sonnet-4-6":"Sonnet 4.6","claude-sonnet-4-5":"Sonnet 4.5","claude-sonnet-4":"Sonnet 4","claude-3-7-sonnet":"Sonnet 3.7","claude-3-5-sonnet":"Sonnet 3.5","claude-haiku-4-5":"Haiku 4.5","claude-3-5-haiku":"Haiku 3.5"};function Yt(){return process.env.CLAUDE_CONFIG_DIR||w(R(),".claude")}i(Yt,"getClaudeDir");function Zt(){return w(Yt(),"projects")}i(Zt,"getProjectsDir");function te(){return process.platform==="darwin"?w(R(),"Library","Application Support","Claude","local-agent-mode-sessions"):process.platform==="win32"?w(R(),"AppData","Roaming","Claude","local-agent-mode-sessions"):w(R(),".config","Claude","local-agent-mode-sessions")}i(te,"getDesktopSessionsDir");async function ee(e){let t=[];async function n(o,s){if(s>8)return;let r=await H(o).catch(()=>[]);for(let l of r){if(l==="node_modules"||l===".git")continue;let u=w(o,l);if((await W(u).catch(()=>null))?.isDirectory())if(l==="projects"){let p=await H(u).catch(()=>[]);for(let f of p){let h=w(u,f);(await W(h).catch(()=>null))?.isDirectory()&&t.push(h)}}else await n(u,s+1)}}return i(n,"walk"),await n(e,0),t}i(ee,"findDesktopProjectDirs");var rt={name:"claude",displayName:"Claude Code",modelDisplayName(e){let t=e.replace(/@.*$/,"").replace(/-\d{8}$/,"");for(let[n,o]of Object.entries(Xt))if(t.startsWith(n))return o;return t},toolDisplayName(e){return e},async discoverSessions(){let e=[],t=Zt();try{let o=await H(t);for(let s of o){let r=w(t,s);(await W(r).catch(()=>null))?.isDirectory()&&e.push({path:r,project:s,provider:"claude"})}}catch{}let n=await ee(te());for(let o of n)e.push({path:o,project:Qt(o),provider:"claude"});return e},createSessionParser(){return{async*parse(){}}}};import{readdir as $,readFile as at,stat as ne}from"fs/promises";import{basename as oe,join as O}from"path";import{homedir as se}from"os";var re={"gpt-5.3-codex":"GPT-5.3 Codex","gpt-5.4-mini":"GPT-5.4 Mini","gpt-5.4":"GPT-5.4","gpt-5":"GPT-5","gpt-4o-mini":"GPT-4o Mini","gpt-4o":"GPT-4o"},it={exec_command:"Bash",read_file:"Read",write_file:"Edit",apply_diff:"Edit",apply_patch:"Edit",spawn_agent:"Agent",close_agent:"Agent",wait_agent:"Agent",read_dir:"Glob"};function ae(){return process.env.CODEX_HOME??O(se(),".codex")}i(ae,"getCodexDir");function ie(e){return e.replace(/^\//,"").replace(/\//g,"-")}i(ie,"sanitizeProject");async function le(e){try{let n=(await at(e,"utf-8")).split(`
|
|
11
|
-
`)[0];return n?.trim()?JSON.parse(n):null}catch{return null}}i(le,"readFirstLine");async function ce(e){let t=await le(e);if(!t)return{valid:!1};let n=t.type==="session_meta"&&typeof t.payload?.originator=="string"&&t.payload.originator.toLowerCase().startsWith("codex");return{valid:n,meta:n?t:void 0}}i(ce,"isValidCodexSession");async function ue(e){let t=O(e,"sessions"),n=[],o;try{o=await $(t)}catch{return n}for(let s of o){if(!/^\d{4}$/.test(s))continue;let r=O(t,s),l=await $(r).catch(()=>[]);for(let u of l){if(!/^\d{2}$/.test(u))continue;let a=O(r,u),p=await $(a).catch(()=>[]);for(let f of p){if(!/^\d{2}$/.test(f))continue;let h=O(a,f),d=await $(h).catch(()=>[]);for(let g of d){if(!g.startsWith("rollout-")||!g.endsWith(".jsonl"))continue;let c=O(h,g);if(!(await ne(c).catch(()=>null))?.isFile())continue;let{valid:m,meta:_}=await ce(c);if(!m||!_)continue;let v=_.payload?.cwd??"unknown";n.push({path:c,project:ie(v),provider:"codex"})}}}}return n}i(ue,"discoverSessionsInDir");function pe(e,t){return e?.info?.model??e?.info?.model_name??t??"gpt-5"}i(pe,"resolveModel");function de(e,t){return{async*parse(){let n;try{n=await at(e.path,"utf-8")}catch{return}let o=n.split(`
|
|
12
|
-
`).filter(g=>g.trim()),s,r="",l=0,u=0,a=0,p=0,f=0,h=[],d="";for(let g of o){let c;try{c=JSON.parse(g)}catch{continue}if(c.type==="session_meta"){r=c.payload?.session_id??oe(e.path,".jsonl"),s=c.payload?.model;continue}if(c.type==="response_item"&&c.payload?.type==="function_call"){let y=c.payload.name??"";h.push(it[y]??y);continue}if(c.type==="response_item"&&c.payload?.type==="message"&&c.payload?.role==="user"){let y=(c.payload.content??[]).filter(m=>m.type==="input_text").map(m=>m.text??"").filter(Boolean);y.length>0&&(d=y.join(" "));continue}if(c.type==="event_msg"&&c.payload?.type==="token_count"){let y=c.payload.info;if(!y)continue;let m=y.total_token_usage?.total_tokens??0;if(m>0&&m===l)continue;l=m;let _=y.last_token_usage,v=0,T=0,x=0,S=0;if(_)v=_.input_tokens??0,T=_.cached_input_tokens??0,x=_.output_tokens??0,S=_.reasoning_output_tokens??0;else if(m>0){let I=y.total_token_usage;if(!I)continue;v=(I.input_tokens??0)-u,T=(I.cached_input_tokens??0)-a,x=(I.output_tokens??0)-p,S=(I.reasoning_output_tokens??0)-f}if(!_){let I=y.total_token_usage;I&&(u=I.input_tokens??0,a=I.cached_input_tokens??0,p=I.output_tokens??0,f=I.reasoning_output_tokens??0)}if(v+T+x+S===0)continue;let Mt=Math.max(0,v-T),Lt=pe(c.payload,s),Z=c.timestamp??"",F=`codex:${e.path}:${Z}:${m}`;if(t.has(F))continue;t.add(F),yield{provider:"codex",model:Lt,inputTokens:Mt,outputTokens:x,cacheCreationInputTokens:0,cacheReadInputTokens:T,cachedInputTokens:T,reasoningTokens:S,costUSD:0,tools:h,bashCommands:[],timestamp:Z,speed:"standard",deduplicationKey:F,userMessage:d,sessionId:r},h=[],d=""}}}}}i(de,"createParser");var lt={name:"codex",displayName:"Codex",modelDisplayName(e){for(let[t,n]of Object.entries(re))if(e.startsWith(t))return n;return e},toolDisplayName(e){return it[e]??e},async discoverSessions(){return ue(ae())},createSessionParser(e,t){return de(e,t)}};import{readdir as me,readFile as ct,stat as fe}from"fs/promises";import{basename as ut,dirname as he,join as z}from"path";import{homedir as ge}from"os";var ye={"gpt-4.1-nano":"GPT-4.1 Nano","gpt-4.1-mini":"GPT-4.1 Mini","gpt-4.1":"GPT-4.1","gpt-4o-mini":"GPT-4o Mini","gpt-4o":"GPT-4o","gpt-5-mini":"GPT-5 Mini","gpt-5":"GPT-5","claude-sonnet-4-5":"Sonnet 4.5","claude-sonnet-4":"Sonnet 4","claude-3-7-sonnet":"Sonnet 3.7","claude-3-5-sonnet":"Sonnet 3.5","o4-mini":"o4-mini",o3:"o3"},pt={bash:"Bash",read_file:"Read",write_file:"Edit",edit_file:"Edit",create_file:"Write",delete_file:"Delete",search_files:"Grep",find_files:"Glob",list_directory:"LS",web_search:"WebSearch",fetch_webpage:"WebFetch",github_repo:"GitHub"},_e=Object.entries(ye).sort((e,t)=>t[0].length-e[0].length);function Se(){return z(ge(),".copilot","session-state")}i(Se,"getCopilotSessionStateDir");function Te(e){let t=e.match(/^cwd:\s*(.+)$/m);return t?.[1]&&t[1].replace(/\s*#.*$/,"").replace(/^['"]|['"]$/g,"").trim()||null}i(Te,"parseCwd");function ve(e,t){return{async*parse(){let n;try{n=await ct(e.path,"utf-8")}catch{return}let o=ut(he(e.path)),s=n.split(`
|
|
13
|
-
`).filter(u=>u.trim()),r="",l="";for(let u of s){let a;try{a=JSON.parse(u)}catch{continue}if(a.type==="session.model_change"){r=a.data.newModel??r;continue}if(a.type==="user.message"){l=a.data.content??"";continue}if(a.type==="assistant.message"){let{messageId:p,outputTokens:f,toolRequests:h=[]}=a.data;if(f===0||!r)continue;let d=`copilot:${o}:${p}`;if(t.has(d))continue;t.add(d);let g=h.map(c=>c.name??"").filter(Boolean).map(c=>pt[c]??c);yield{provider:"copilot",model:r,inputTokens:0,outputTokens:f,cacheCreationInputTokens:0,cacheReadInputTokens:0,cachedInputTokens:0,reasoningTokens:0,costUSD:0,tools:g,bashCommands:[],timestamp:a.timestamp??"",speed:"standard",deduplicationKey:d,userMessage:l,sessionId:o},l=""}}}}}i(ve,"createParser");async function Ie(e){let t=[],n;try{n=await me(e)}catch{return t}for(let o of n){let s=z(e,o,"events.jsonl");if(!(await fe(s).catch(()=>null))?.isFile())continue;let l=o;try{let u=await ct(z(e,o,"workspace.yaml"),"utf-8"),a=Te(u);a&&(l=ut(a))}catch{}t.push({path:s,project:l,provider:"copilot"})}return t}i(Ie,"discoverSessionsInDir");var dt={name:"copilot",displayName:"GitHub Copilot",modelDisplayName(e){for(let[t,n]of _e)if(e===t||e.startsWith(t+"-"))return n;return e},toolDisplayName(e){return pt[e]??e},async discoverSessions(){return Ie(Se())},createSessionParser(e,t){return ve(e,t)}};import{readdir as mt,readFile as ht,stat as ft}from"fs/promises";import{basename as gt,join as K}from"path";import{homedir as xe}from"os";var we={"gpt-5.4":"GPT-5.4","gpt-5.4-mini":"GPT-5.4 Mini","gpt-5":"GPT-5","gpt-4o":"GPT-4o","gpt-4o-mini":"GPT-4o Mini"},yt={bash:"Bash",read:"Read",edit:"Edit",write:"Write",glob:"Glob",grep:"Grep",task:"Agent",dispatch_agent:"Agent",fetch:"WebFetch",search:"WebSearch",todo:"TodoWrite",patch:"Patch"},ke=Object.entries(we).sort((e,t)=>t[0].length-e[0].length);function Oe(){return K(xe(),".pi","agent","sessions")}i(Oe,"getPiSessionsDir");async function Ce(e){try{let n=(await ht(e,"utf-8")).split(`
|
|
14
|
-
`)[0];return n?.trim()?JSON.parse(n):null}catch{return null}}i(Ce,"readFirstEntry");function Ae(e){return e.split(/[;&|]+/).map(t=>t.trim().split(/\s+/)[0]).filter(Boolean)}i(Ae,"extractBashCommands");async function Ne(e){let t=[],n;try{n=await mt(e)}catch{return t}for(let o of n){let s=K(e,o);if(!(await ft(s).catch(()=>null))?.isDirectory())continue;let l;try{l=await mt(s)}catch{continue}for(let u of l){if(!u.endsWith(".jsonl"))continue;let a=K(s,u);if(!(await ft(a).catch(()=>null))?.isFile())continue;let f=await Ce(a);if(!f||f.type!=="session")continue;let h=f.cwd??o;t.push({path:a,project:gt(h),provider:"pi"})}}return t}i(Ne,"discoverSessionsInDir");function Pe(e,t){return{async*parse(){let n;try{n=await ht(e.path,"utf-8")}catch{return}let o=n.split(`
|
|
15
|
-
`).filter(l=>l.trim()),s=gt(e.path,".jsonl"),r="";for(let[l,u]of o.entries()){let a;try{a=JSON.parse(u)}catch{continue}if(a.type==="session"){s=a.id??s;continue}if(a.type!=="message")continue;let p=a.message;if(!p)continue;if(p.role==="user"){let S=(p.content??[]).filter(k=>k.type==="text").map(k=>k.text??"").filter(Boolean);S.length>0&&(r=S.join(" "));continue}if(p.role!=="assistant"||!p.usage)continue;let{input:f,output:h,cacheRead:d,cacheWrite:g}=p.usage;if(f===0&&h===0)continue;let c=p.model??"gpt-5",y=p.responseId??"",m=`pi:${e.path}:${y||a.id||a.timestamp||String(l)}`;if(t.has(m))continue;t.add(m);let _=(p.content??[]).filter(S=>S.type==="toolCall"&&S.name),v=_.map(S=>yt[S.name]??S.name),T=_.filter(S=>S.name==="bash").flatMap(S=>{let k=S.arguments?.command;return typeof k=="string"?Ae(k):[]}),x=a.timestamp??"";yield{provider:"pi",model:c,inputTokens:f,outputTokens:h,cacheCreationInputTokens:g,cacheReadInputTokens:d,cachedInputTokens:d,reasoningTokens:0,costUSD:0,tools:v,bashCommands:T,timestamp:x,speed:"standard",deduplicationKey:m,userMessage:r,sessionId:s},r=""}}}}i(Pe,"createParser");var _t={name:"pi",displayName:"Pi",modelDisplayName(e){for(let[t,n]of ke)if(e.startsWith(t))return n;return e},toolDisplayName(e){return yt[e]??e},async discoverSessions(){return Ne(Oe())},createSessionParser(e,t){return Pe(e,t)}};var xt=[rt,lt,dt,_t],St=null,Tt=!1;async function wt(){if(Tt)return St;Tt=!0;try{let{cursor:e}=await import("./cursor-T7AMCMKS.js");return St=e,e}catch{return null}}i(wt,"loadCursor");var vt=null,It=!1;async function kt(){if(It)return vt;It=!0;try{let{opencode:e}=await import("./opencode-QRJ3BH23.js");return vt=e,e}catch{return null}}i(kt,"loadOpenCode");async function Ot(){let[e,t]=await Promise.all([wt(),kt()]),n=[...xt];return e&&n.push(e),t&&n.push(t),n}i(Ot,"getAllProviders");async function De(e){let t=await Ot(),n=e&&e!=="all"?t.filter(s=>s.name===e):t,o=[];for(let s of n){let r=await s.discoverSessions();o.push(...r)}return o}i(De,"discoverAllSessions");async function Ee(e){return e==="cursor"?await wt()??void 0:e==="opencode"?await kt()??void 0:xt.find(t=>t.name===e)}i(Ee,"getProvider");import{spawn as Y}from"node:child_process";import{randomUUID as Ue}from"node:crypto";import{writeFile as At}from"node:fs/promises";import{tmpdir as Nt}from"node:os";import{join as Pt}from"node:path";import{spawn as be}from"node:child_process";function V(e){return`rm-${e.trim().replace(/[^A-Za-z0-9_.-]+/g,"-").replace(/^-+|-+$/g,"").slice(0,80)||"session"}`}i(V,"sanitizeTmuxName");function Q(e){let t=[...e.runId?[`RULEMETRIC_RUN_ID=${e.runId}`]:[],...e.scopedConfirmation?[`RULEMETRIC_SCOPED_CONFIRMATION_ID=${e.scopedConfirmation.id}`,`RULEMETRIC_SCOPED_TASK_ID=${e.scopedConfirmation.taskId}`,`RULEMETRIC_SCOPED_CONFIGURATION_HASH=${e.scopedConfirmation.configurationHash}`]:[]],n=t.length?["env",...t,"claude"]:["claude"];return e.resumeSessionId&&n.push("--resume",e.resumeSessionId),e.model&&n.push("--model",e.model),["new-session","-d","-s",e.sessionName,"-c",e.projectPath,"--",...n]}i(Q,"buildTmuxLaunchArgs");function U(e,t,n={}){return n.literal===!1?["send-keys","-t",e,t]:["send-keys","-t",e,"-l","--",t]}i(U,"buildTmuxSendKeysArgs");function Re(e){return["has-session","-t",e]}i(Re,"buildTmuxHasSessionArgs");function j(e){return`tmux attach -t ${e}`}i(j,"buildTmuxAttachCommand");function $e(){let e=["/opt/homebrew/bin","/usr/local/bin"],t=(process.env.PATH??"").split(":").filter(Boolean),n=e.filter(o=>!t.includes(o));return n.length===0?process.env:{...process.env,PATH:[...t,...n].join(":")}}i($e,"tmuxSpawnEnv");function X(e){return new Promise(t=>{let n=be("tmux",e,{stdio:["ignore","ignore","pipe"],env:$e()}),o="";n.stderr.on("data",s=>{o+=s.toString()}),n.on("close",s=>t({code:s,stderr:o})),n.on("error",s=>t({code:null,stderr:s.message}))})}i(X,"runTmux");async function Ct(){return(await X(["-V"])).code===0}i(Ct,"isTmuxAvailable");var Dt=/^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$/i,je=/^[a-f0-9]{64}$/,Me="Read,Write,Edit,Bash",Le=["--strict-mcp-config","--mcp-config",'{"mcpServers":{}}'];function qe(e){if(e){if(Dt.test(e.id)&&je.test(e.configurationHash)&&e.taskId.length>0&&e.taskId.length<=500)return e;console.warn("[claude-code-launcher] dropping invalid scoped confirmation identity")}}i(qe,"validateScopedConfirmation");function Ge(e){if(e!==void 0){if(Dt.test(e))return e;console.warn(`[claude-code-launcher] dropping non-uuid runId (RULEMETRIC_RUN_ID not injected): ${JSON.stringify(e)}`)}}i(Ge,"validateRunId");function M(e){return`'${e.replace(/'/g,"'\\''")}'`}i(M,"shellSingleQuote");var L=class{static{i(this,"ClaudeCodeLauncher")}options;tool="claude_code";constructor(t={}){this.options=t}capabilities={headless:!0,interactive:!0,remoteSpawn:!0};async launch(t,n){let o=Ue(),s={...t,runId:Ge(t.runId),scopedConfirmation:qe(t.scopedConfirmation)};return s.mode==="headless"?this.launchHeadless(s,o,n?.signal):this.launchInteractive(s,o)}async launchHeadless(t,n,o){if(o?.aborted)return{sessionId:n,error:"Launch lease lost before actor startup"};let s=["-p",t.prompt??"","--output-format","json"];t.scopedConfirmation&&(s.push("--session-id",n,"--tools",Me),s.push(...Le)),t.systemPrompt&&s.push("--system-prompt",t.systemPrompt),t.model&&s.push("--model",t.model);let r={...process.env};return delete r.CLAUDECODE,delete r.HTTPS_PROXY,t.runId&&(r.RULEMETRIC_RUN_ID=t.runId),t.scopedConfirmation&&(t.model&&(r.RULEMETRIC_SCOPED_REQUESTED_MODEL=t.model),r.RULEMETRIC_SCOPED_CONFIRMATION_ID=t.scopedConfirmation.id,r.RULEMETRIC_SCOPED_TASK_ID=t.scopedConfirmation.taskId,r.RULEMETRIC_SCOPED_CONFIGURATION_HASH=t.scopedConfirmation.configurationHash),new Promise(l=>{let u=Y("claude",s,{cwd:t.projectPath,env:r,stdio:["ignore","pipe","pipe"]}),a="",p="";u.stdout.on("data",m=>{a+=m.toString()}),u.stderr.on("data",m=>{p+=m.toString()});let f,h,d=i(m=>{f||(f=m,u.kill("SIGTERM"),h=setTimeout(()=>u.kill("SIGKILL"),5e3))},"stop"),g=i(()=>d("Launch lease lost; actor terminated"),"onAbort");o?.addEventListener("abort",g,{once:!0});let c=t.timeout?setTimeout(()=>d("Actor execution budget exhausted"),t.timeout):null,y=i(()=>{c&&clearTimeout(c),h&&clearTimeout(h),o?.removeEventListener("abort",g)},"cleanup");o?.aborted&&g(),u.on("close",m=>{y();let _=a;try{let v=JSON.parse(a);_=v.result??v.content??a}catch{}l({sessionId:n,pid:u.pid,exitCode:m,output:_,error:f??(m!==0?p:void 0)})}),u.on("error",m=>{y(),l({sessionId:n,error:`Failed to spawn claude: ${m.message}`})})})}async launchInteractive(t,n){return await(this.options.tmuxAvailable??Ct)().catch(()=>!1)?this.launchInteractiveTmux(t,n):this.launchInteractiveTerminal(t,n,"tmux_not_found")}async launchInteractiveTmux(t,n){let o=this.options.runTmux??X,s=V(`claude-${t.resumeSessionId??n}`),r=await o(Q({sessionName:s,projectPath:t.projectPath,resumeSessionId:t.resumeSessionId,model:t.model,runId:t.runId,scopedConfirmation:t.scopedConfirmation}));if(r.code!==0)return this.launchInteractiveTerminal(t,n,"tmux_launch_failed",`tmux new-session exited ${r.code}: ${r.stderr.trim()||"no stderr"}`);let l=await this.openTerminalAttach(s,n);if(t.prompt){let u=await o(U(s,t.prompt));if(u.code!==0)return{sessionId:n,liveSendAvailable:!1,fallbackReason:"tmux_launch_failed",error:`tmux send-keys exited ${u.code}: ${u.stderr.trim()||"no stderr"}`};let a=await o(U(s,"Enter",{literal:!1}));if(a.code!==0)return{sessionId:n,liveSendAvailable:!1,fallbackReason:"tmux_launch_failed",error:`tmux send Enter exited ${a.code}: ${a.stderr.trim()||"no stderr"}`}}return{sessionId:n,pid:l.pid,liveSendAvailable:!0,...l.error?{error:l.error}:{},terminalTarget:{kind:"tmux",target:s,attachCommand:j(s),live:!0}}}async openTerminalAttach(t,n){let o=Pt(Nt(),`rulemetric-attach-${n}.command`),s=`#!/bin/zsh
|
|
16
|
-
rm -- "$0"
|
|
17
|
-
${j(t)}
|
|
18
|
-
`;return await At(o,s,{mode:493}),new Promise(r=>{let l=Y("open",["-a","Terminal",o],{stdio:["ignore","pipe","pipe"]}),u="";l.stderr.on("data",a=>{u+=a.toString()}),l.on("close",a=>{r(a===0?{pid:l.pid}:{pid:l.pid,error:`open attach exited ${a}: ${u.trim()||"no stderr"}`})}),l.on("error",a=>{r({error:`Failed to spawn open attach: ${a.message}`})})})}async launchInteractiveTerminal(t,n,o,s){let r=["claude"];t.resumeSessionId?r.push("--resume",t.resumeSessionId):t.prompt&&r.push("-p",JSON.stringify(t.prompt)),t.model&&r.push("--model",t.model);let l=r.join(" "),u=Pt(Nt(),`rulemetric-launch-${n}.command`),a=t.runId?`export RULEMETRIC_RUN_ID=${M(t.runId)}
|
|
19
|
-
`:"",p=t.scopedConfirmation?`export RULEMETRIC_SCOPED_CONFIRMATION_ID=${M(t.scopedConfirmation.id)}
|
|
20
|
-
export RULEMETRIC_SCOPED_TASK_ID=${M(t.scopedConfirmation.taskId)}
|
|
21
|
-
export RULEMETRIC_SCOPED_CONFIGURATION_HASH=${M(t.scopedConfirmation.configurationHash)}
|
|
22
|
-
`:"",f=`#!/bin/zsh
|
|
23
|
-
rm -- "$0"
|
|
24
|
-
cd ${JSON.stringify(t.projectPath)} || exit
|
|
25
|
-
`+a+p+`${l}
|
|
26
|
-
`;return await At(u,f,{mode:493}),new Promise(h=>{let d=Y("open",["-a","Terminal",u],{stdio:["ignore","pipe","pipe"]}),g="";d.stderr.on("data",c=>{g+=c.toString()}),d.on("close",c=>{if(c===0)h({sessionId:n,pid:d.pid,liveSendAvailable:!1,fallbackReason:o,...s?{error:s}:{}});else{let y=g.trim()||"no stderr";h({sessionId:n,pid:d.pid,liveSendAvailable:!1,fallbackReason:o,error:s?`${s}; open exited ${c}: ${y}`:`open exited ${c}: ${y}`})}}),d.on("error",c=>{h({sessionId:n,liveSendAvailable:!1,fallbackReason:o,error:`Failed to spawn open: ${c.message}`})})})}};import{spawn as Et}from"node:child_process";import{randomUUID as Je}from"node:crypto";var q=class{static{i(this,"CodexLauncher")}tool="codex";capabilities={headless:!0,interactive:!0,remoteSpawn:!0};async launch(t){let n=Je();return t.mode==="headless"?this.launchHeadless(t,n):this.launchInteractive(t,n)}launchHeadless(t,n){let o=["-q",t.prompt??""];return t.model&&o.push("--model",t.model),new Promise(s=>{let r=Et("codex",o,{cwd:t.projectPath,stdio:["ignore","pipe","pipe"]}),l="",u="";r.stdout.on("data",p=>{l+=p.toString()}),r.stderr.on("data",p=>{u+=p.toString()});let a=t.timeout?setTimeout(()=>{r.kill("SIGTERM")},t.timeout):null;r.on("close",p=>{a&&clearTimeout(a),s({sessionId:n,pid:r.pid,exitCode:p,output:l,error:p!==0?u:void 0})}),r.on("error",p=>{a&&clearTimeout(a),s({sessionId:n,error:`Failed to spawn codex: ${p.message}`})})})}launchInteractive(t,n){let o=["codex"];t.prompt&&o.push(JSON.stringify(t.prompt));let s=`cd ${JSON.stringify(t.projectPath)} && ${o.join(" ")}`,r=Et("osascript",["-e",`tell application "Terminal" to do script ${JSON.stringify(s)}`],{stdio:"ignore",detached:!0});return r.unref(),Promise.resolve({sessionId:n,pid:r.pid})}};import{spawn as bt}from"node:child_process";import{randomUUID as Be}from"node:crypto";function Fe(e){let t=e.mode==="headless"?["--print","--mode","json","--no-session"]:[];return e.systemPrompt&&t.push("--system-prompt",e.systemPrompt),e.model&&t.push("--model",e.model),e.prompt&&t.push(e.prompt),t}i(Fe,"buildPiLaunchArgs");function He(e){let t;for(let o of e.split(`
|
|
27
|
-
`))if(o.trim())try{let s=JSON.parse(o);if(s.type!=="agent_end"||!Array.isArray(s.messages))continue;t=s.messages.filter(r=>r.role==="assistant").at(-1)}catch{}if(!t)return{output:e};if(t.stopReason==="error"||t.stopReason==="aborted")return{output:"",error:`Pi provider error: ${t.errorMessage??t.stopReason}`};let n=t.content?.filter(o=>o.type==="text"&&typeof o.text=="string").map(o=>o.text).join(`
|
|
28
|
-
`)??"";return n?{output:n}:{output:e}}i(He,"parsePiLaunchOutput");var G=class{static{i(this,"PiLauncher")}tool="pi";capabilities={headless:!0,interactive:!0,remoteSpawn:!0};async launch(t){let n=Be(),o=Fe(t);if(t.mode==="interactive"){let s=["pi",...o].map(u=>JSON.stringify(u)).join(" "),r=`cd ${JSON.stringify(t.projectPath)} && ${s}`,l=bt("osascript",["-e",`tell application "Terminal" to do script ${JSON.stringify(r)}`],{stdio:"ignore",detached:!0});return l.unref(),{sessionId:n,pid:l.pid}}return new Promise(s=>{let r=bt("pi",o,{cwd:t.projectPath,stdio:["ignore","pipe","pipe"]}),l="",u="";r.stdout.on("data",p=>{l+=p.toString()}),r.stderr.on("data",p=>{u+=p.toString()});let a=t.timeout?setTimeout(()=>r.kill("SIGTERM"),t.timeout):null;r.on("close",p=>{a&&clearTimeout(a);let f=He(l);s({sessionId:n,pid:r.pid,exitCode:p,output:f.output,error:f.error??(p!==0?u.trim()||l.trim()||`pi exited ${p}`:void 0)})}),r.on("error",p=>{a&&clearTimeout(a),s({sessionId:n,error:`Failed to spawn pi: ${p.message}`})})})}};import{spawn as Rt}from"node:child_process";import{randomUUID as We}from"node:crypto";var J=class{static{i(this,"AiderLauncher")}tool="aider";capabilities={headless:!0,interactive:!0,remoteSpawn:!0};async launch(t){let n=We();return t.mode==="headless"?this.launchHeadless(t,n):this.launchInteractive(t,n)}launchHeadless(t,n){let o=["--message",t.prompt??"","--yes"];return t.model&&o.push("--model",t.model),new Promise(s=>{let r=Rt("aider",o,{cwd:t.projectPath,stdio:["ignore","pipe","pipe"]}),l="",u="";r.stdout.on("data",p=>{l+=p.toString()}),r.stderr.on("data",p=>{u+=p.toString()});let a=t.timeout?setTimeout(()=>{r.kill("SIGTERM")},t.timeout):null;r.on("close",p=>{a&&clearTimeout(a),s({sessionId:n,pid:r.pid,exitCode:p,output:l,error:p!==0?u:void 0})}),r.on("error",p=>{a&&clearTimeout(a),s({sessionId:n,error:`Failed to spawn aider: ${p.message}`})})})}launchInteractive(t,n){let o=["aider"];t.model&&o.push("--model",t.model);let s=`cd ${JSON.stringify(t.projectPath)} && ${o.join(" ")}`,r=Rt("osascript",["-e",`tell application "Terminal" to do script ${JSON.stringify(s)}`],{stdio:"ignore",detached:!0});return r.unref(),Promise.resolve({sessionId:n,pid:r.pid})}};import{spawn as ze}from"node:child_process";import{randomUUID as Ke}from"node:crypto";var B=class{static{i(this,"GenericLauncher")}tool;constructor(t){this.tool=t}capabilities={headless:!1,interactive:!0,remoteSpawn:!1};async launch(t){let n=Ke();if(t.mode==="headless")return{sessionId:n,error:`${this.tool} does not support headless mode`};let o=`cd ${JSON.stringify(t.projectPath)} && echo "Session ${n} \u2014 tool: ${this.tool}" && exec $SHELL`,s=ze("osascript",["-e",`tell application "Terminal" to do script ${JSON.stringify(o)}`],{stdio:"ignore",detached:!0});return s.unref(),{sessionId:n,pid:s.pid}}};var $t={claude_code:i(()=>new L,"claude_code"),codex:i(()=>new q,"codex"),pi:i(()=>new G,"pi"),aider:i(()=>new J,"aider")};function Ve(e){let t=$t[e];return t?t():new B(e)}i(Ve,"getLauncher");function Qe(){return Object.entries($t).map(([e,t])=>({tool:e,capabilities:t().capabilities}))}i(Qe,"getAvailableLaunchers");import Ut from"node:path";function jt(e){return e.replace(/[^a-zA-Z0-9._-]+/g,"-").replace(/^[-.]+|[-.]+$/g,"")||"worktree"}i(jt,"sanitizeBranch");function Xe(e){return Ut.resolve(e.basePath??Ut.join(e.repoRoot,"..",".rulemetric-worktrees",jt(e.branch)))}i(Xe,"worktreePathFor");export{Ye as a,Ze as b,C as c,A as d,N as e,P as f,D as g,et as h,E as i,b as j,Kt as k,Vt as l,Ot as m,De as n,Ee as o,V as p,Q as q,U as r,Re as s,j as t,Ve as u,Qe as v,jt as w,Xe as x};
|
package/dist/chunk-X6CF5KTW.js
DELETED
|
@@ -1,48 +0,0 @@
|
|
|
1
|
-
import{f as I,g as N}from"./chunk-XQYAVSUQ.js";import{a as i}from"./chunk-ZLLER3HP.js";function ne(e){return(e.trim().split(`
|
|
2
|
-
`)[0]?.replace(/^#+\s*/,"").trim()||"Suggested instruction").slice(0,120)}i(ne,"recommendationTitle");function oe(e){if(!e||typeof e!="object")return e;let t=e;if(Array.isArray(t.recommendation_candidates))return e;let n=t.suggestions;if(!n||typeof n!="object")return e;let o=n.claude_md_additions;return Array.isArray(o)&&(t.recommendation_candidates=o.flatMap(r=>{if(!r||typeof r!="object")return[];let s=r;if(typeof s.addition!="string"||s.addition.trim()==="")return[];let a=s.addition.trim();return[{title:ne(a),artifact:"instruction",canonicalBody:a,rationale:typeof s.why=="string"?s.why:"",evidence:[],outcomeMetric:"session_outcome",renderings:[{harness:"claude_code",target:"CLAUDE.md",body:a},{harness:"codex",target:"AGENTS.md",body:a}]}]})),e}i(oe,"normalizeRecommendationCandidates");var re=new Set(["instruction"]);function se(e){if(!e||typeof e!="object")return e;let t=e,n=t.recommendation_candidates;if(!Array.isArray(n)||n.length===0)return e;let o=n.filter(s=>!!s&&typeof s=="object"&&typeof s.canonicalBody=="string"&&s.canonicalBody.trim().length>0);for(let s of o){if(Array.isArray(s.renderings)&&s.renderings.length>0)continue;let a=s.canonicalBody.trim(),c=re.has(String(s.artifact));s.renderings=c?[{harness:"claude_code",target:"CLAUDE.md",body:a},{harness:"codex",target:"AGENTS.md",body:a}]:[{harness:"claude_code",target:"manual",body:a},{harness:"codex",target:"manual",body:a}]}let r=t.suggestions&&typeof t.suggestions=="object"?t.suggestions:{};return(!Array.isArray(r.claude_md_additions)||r.claude_md_additions.length===0)&&(r.claude_md_additions=o.filter(s=>s.artifact==="instruction").map(s=>({addition:s.canonicalBody.trim(),why:typeof s.rationale=="string"?s.rationale:"",prompt_scaffold:"Add to CLAUDE.md (and AGENTS.md for Codex)."}))),(!Array.isArray(r.features_to_try)||r.features_to_try.length===0)&&(r.features_to_try=o.filter(s=>s.artifact!=="instruction").map(s=>({feature:typeof s.title=="string"?s.title:"Proposed change",one_liner:typeof s.rationale=="string"?s.rationale:"",why_for_you:typeof s.outcomeMetric=="string"?`Aimed at ${s.outcomeMetric}.`:"",example_code:s.canonicalBody.trim()}))),Array.isArray(r.usage_patterns)||(r.usage_patterns=[]),t.suggestions=r,e}i(se,"deriveLegacyPresentation");function ie(e){if(!e||typeof e!="object")return e;let t=e,n=t.project_areas;if(n!==void 0&&!Array.isArray(n)){let o=n&&typeof n=="object"?n.areas:void 0;t.project_areas=Array.isArray(o)?o:void 0}return ae(e),oe(e),e}i(ie,"normalizeRecommendations");function ae(e){if(!e||typeof e!="object")return;let t=e;if(Array.isArray(t.recommendation_candidates)&&t.recommendation_candidates.length>0)return;let n=t.suggestions;if(!n||typeof n!="object")return;let o=n.recommendation_candidates;!Array.isArray(o)||o.length===0||(t.recommendation_candidates=o)}i(ae,"liftNestedCandidates");import{z as d}from"zod";var P=["org","team","project","personal"],D=d.object({name:d.string().min(1),description:d.string().min(1),type:d.literal("instruction").default("instruction"),scope:d.enum(P),version:d.string().min(1),tags:d.array(d.string()).optional(),compatibility:d.array(d.string()).optional(),slots:d.record(d.string(),d.string()).optional(),metadata:d.record(d.string(),d.unknown()).optional()});import{z as p}from"zod";var j=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 _(e,t){let n=t.map(o=>`- ID: ${o.id}
|
|
3
|
-
Name: ${o.name}
|
|
4
|
-
Description: ${o.description}
|
|
5
|
-
Tags: ${o.tags.join(", ")}
|
|
6
|
-
Preview: ${o.contentPreview}`).join(`
|
|
7
|
-
|
|
8
|
-
`);return`You are an expert at matching AI coding instructions to software projects.
|
|
9
|
-
|
|
10
|
-
## Project
|
|
11
|
-
- Name: ${e.name}
|
|
12
|
-
- Description: ${e.description??"No description"}
|
|
13
|
-
- Languages: ${e.languages.join(", ")||"Unknown"}
|
|
14
|
-
- Topics: ${e.topics.join(", ")||"None"}
|
|
15
|
-
- Dependencies: ${e.dependencies.join(", ")||"None"}
|
|
16
|
-
|
|
17
|
-
## Available Instructions
|
|
18
|
-
|
|
19
|
-
${n}
|
|
20
|
-
|
|
21
|
-
## Task
|
|
22
|
-
|
|
23
|
-
Analyze the project and recommend which instructions would be most useful. Consider:
|
|
24
|
-
1. Language and framework alignment
|
|
25
|
-
2. Project purpose and what standards/practices would help
|
|
26
|
-
3. Security, testing, and quality needs based on the project type
|
|
27
|
-
|
|
28
|
-
Return your response as JSON in this exact format:
|
|
29
|
-
{
|
|
30
|
-
"recommendations": [
|
|
31
|
-
{ "instructionId": "<id>", "score": <0.0-1.0>, "reason": "<one sentence explanation>" }
|
|
32
|
-
]
|
|
33
|
-
}
|
|
34
|
-
|
|
35
|
-
Only include instructions with a relevance score >= ${.5}. Order by score descending. Return valid JSON only, no markdown fences.`}i(_,"buildRecommendationPrompt");var $=32e3,ce={name:"x".repeat(64),description:"x".repeat(256),languages:["TypeScript","Python","Go"],topics:["x".repeat(32)],dependencies:["x".repeat(32)]};function M(e,t={}){if(e.length===0)return[];let n=t.charBudget??$,o=_(ce,[]).length,r=[],s=[],a=0;for(let c of e){let l=le(c);s.length>0&&o+a+l>n&&(r.push(s),s=[],a=0),s.push(c),a+=l}return s.length>0&&r.push(s),r}i(M,"batchCandidatesForPrompt");function le(e){return`- ID: ${e.id}
|
|
36
|
-
Name: ${e.name}
|
|
37
|
-
Description: ${e.description}
|
|
38
|
-
Tags: ${e.tags.join(", ")}
|
|
39
|
-
Preview: ${e.contentPreview}`.length+2}i(le,"renderedSize");var H=["Added","Changed","Fixed","Removed","Deprecated","Security"],ue=/^##\s+\[([^\]]+)\](?:\s*[-–]\s*(\d{4}-\d{2}-\d{2}))?\s*$/,me=/^###\s+(.+?)\s*$/,de=/^[-*]\s+(.*\S)\s*$/,pe=/^ {2,}(\S.*)$/;function fe(e){let t=e.split(/\r?\n/),n=[],o=null,r=null,s=null;for(let a of t){let c=a.match(ue);if(c){o&&n.push(o);let m=c[1].trim();o={version:m,date:c[2]??null,unreleased:m.toLowerCase()==="unreleased",sections:{}},r=null,s=null;continue}if(!o)continue;let l=a.match(me);if(l){let m=l[1].trim();H.includes(m)?(r=m,o.sections[r]||(o.sections[r]=[]),s=o.sections[r]):(r=null,s=null);continue}if(!r||!s)continue;let u=a.match(de);if(u){s.push(u[1]);continue}let f=a.match(pe);if(f&&s.length>0){s[s.length-1]+=" "+f[1].trim();continue}}return o&&n.push(o),{entries:n}}i(fe,"parseChangelog");function he(e){return e.entries.filter(t=>t.unreleased?!1:Object.values(t.sections).some(n=>n&&n.length>0))}i(he,"announceableEntries");function E(e){let t=/^(#{1,6})\s+/.exec(e);return t?t[1].length:0}i(E,"headingLevel");function B(e){return e.replace(/^#{1,6}\s+/,"").replace(/[`*_~]/g,"").trim().toLowerCase()}i(B,"normaliseHeading");function ge(e,t){let n=B(t);if(n.length===0)return{content:e,removed:!1,removedText:null,reason:"not-found"};let o=e.split(`
|
|
40
|
-
`),r=[];for(let m=0;m<o.length;m+=1)E(o[m])>0&&B(o[m])===n&&r.push(m);if(r.length===0)return{content:e,removed:!1,removedText:null,reason:"not-found"};if(r.length>1)return{content:e,removed:!1,removedText:null,reason:"ambiguous"};let s=r[0],a=E(o[s]),c=o.length;for(let m=s+1;m<o.length;m+=1){let v=E(o[m]);if(v>0&&v<=a){c=m;break}}let l=o.slice(s,c).join(`
|
|
41
|
-
`),u=[...o.slice(0,s),...o.slice(c)];return u.join("").trim().length===0?{content:e,removed:!1,removedText:null,reason:"would-empty-file"}:{content:u.join(`
|
|
42
|
-
`).replace(/\n{3,}/g,`
|
|
43
|
-
|
|
44
|
-
`),removed:!0,removedText:l}}i(ge,"removeMarkdownSection");function ye(e,t){let n=t.trim();if(n.length===0)return{content:e,removed:!1,removedText:null,reason:"not-found"};let o=e.indexOf(n);if(o===-1)return{content:e,removed:!1,removedText:null,reason:"not-found"};if(e.indexOf(n,o+1)!==-1)return{content:e,removed:!1,removedText:null,reason:"ambiguous"};let r=(e.slice(0,o)+e.slice(o+n.length)).replace(/\n{3,}/g,`
|
|
45
|
-
|
|
46
|
-
`);return r.trim().length===0?{content:e,removed:!1,removedText:null,reason:"would-empty-file"}:{content:r,removed:!0,removedText:n}}i(ye,"removeExactBlock");var U=["HTTPS_PROXY","HTTP_PROXY","NODE_EXTRA_CA_CERTS"];function xe(e,t){if(!e||typeof e!="object")return{value:e,removed:!1,removedDescriptions:[],reason:"not-found"};let n=structuredClone(e);if(!n.hooks)return{value:n,removed:!1,removedDescriptions:[],reason:"not-found"};let o=[];for(let[r,s]of Object.entries(n.hooks)){if(!Array.isArray(s))continue;let a=s.filter(c=>{let l=(c.hooks??[]).some(u=>typeof u.command=="string"&&u.command.includes(t));return l&&o.push(`${r}: ${c.matcher??"*"} \u2192 ${(c.hooks??[]).map(u=>u.command).join(", ")}`),!l});a.length===0?delete n.hooks[r]:n.hooks[r]=a}return Object.keys(n.hooks).length===0&&delete n.hooks,{value:n,removed:o.length>0,removedDescriptions:o,...o.length===0?{reason:"not-found"}:{}}}i(xe,"removeHookByCommand");function _e(e,t){if(!e||typeof e!="object")return{value:e,removed:!1,removedDescriptions:[],reason:"not-found"};let n=structuredClone(e);return!n.mcpServers||!(t in n.mcpServers)?{value:n,removed:!1,removedDescriptions:[],reason:"not-found"}:(delete n.mcpServers[t],Object.keys(n.mcpServers).length===0&&delete n.mcpServers,{value:n,removed:!0,removedDescriptions:[`mcpServers.${t}`]})}i(_e,"removeMcpServer");function S(e){if(!e||typeof e!="object")return[];let t=e.env;return t?U.filter(n=>n in t):[]}i(S,"protectedEnvKeysPresent");function ve(e,t){let n=S(e),o=new Set(S(t));return n.filter(r=>!o.has(r))}i(ve,"lostProtectedEnvKeys");function Ee(e,t){let n=`HTTP ${e}`;if(!t||typeof t!="object")return{message:n};let o=t,r=typeof o.error=="string"&&o.error?o.error:o.error?JSON.stringify(o.error):n,s=typeof o.code=="string"&&o.code?o.code:void 0;return s?{message:r,code:s}:{message:r}}i(Ee,"parseApiError");var T=["inside","outside"];function y(e){return e.trim().toLowerCase()}i(y,"normalizeDependencyKey");function Se(e){let t=[];if(T.includes(e.boundaryClass)||t.push({field:"boundaryClass",message:`must be one of ${T.join(" | ")}`}),!Array.isArray(e.targets)||e.targets.length===0)t.push({field:"targets",message:"a proposal that cannot name the paths it writes cannot be applied"});else{for(let r of e.targets)if(typeof r!="string"||r.trim().length===0){t.push({field:"targets",message:"target paths must be non-empty"});break}let n=e.targets.filter(r=>typeof r=="string"&&(r.startsWith("/")||/^[A-Za-z]:[\\/]/.test(r)));n.length>0&&t.push({field:"targets",message:`targets must be project-relative (absolute: ${n.join(", ")})`});let o=e.targets.filter(r=>typeof r=="string"&&r.split(/[\\/]/).includes(".."));o.length>0&&t.push({field:"targets",message:`targets must not traverse outside the project (${o.join(", ")})`})}for(let n of["requires","provides"]){let o=e[n];if(!Array.isArray(o)){t.push({field:n,message:"must be an array of dependency keys"});continue}o.some(r=>typeof r!="string"||r.trim().length===0)&&t.push({field:n,message:"dependency keys must be non-empty strings"})}return t}i(Se,"validateArtifactSpec");function Ae(e,t){let n=[],o=new Set(e.targets??[]);if(t.kind==="delete-paths"){e.boundaryClass!=="inside"&&n.push({field:"inverse",message:"deleting paths is only an inverse for `inside` artifacts; an `outside` path may hold text we did not write"}),t.paths.length===0&&n.push({field:"inverse.paths",message:"nothing to delete \u2014 this is not an inverse"});let r=t.paths.filter(s=>!o.has(s));return r.length>0&&n.push({field:"inverse.paths",message:`would delete paths the spec never declared: ${r.join(", ")}`}),n}return e.boundaryClass!=="outside"&&n.push({field:"inverse",message:"a compensation is only an inverse for `outside` artifacts; an `inside` path owes an exact undo"}),(!t.backupPath||t.backupPath.trim().length===0)&&n.push({field:"inverse.backupPath",message:"an `outside` write owes a backup"}),(!t.hashAtWrite||t.hashAtWrite.trim().length===0)&&n.push({field:"inverse.hashAtWrite",message:"without the post-write hash the undo cannot tell a drifted file from an untouched one"}),o.has(t.file)||n.push({field:"inverse.file",message:`wrote ${t.file}, which the spec did not declare as a target`}),t.kind==="remove-marked-region"?(!t.startMarker||!t.endMarker)&&n.push({field:"inverse",message:"an `outside` region needs both markers, or the undo cannot tell where our text ends"}):t.command.trim().length===0&&n.push({field:"inverse.command",message:"the exact command written is the identity of the entry; without it the undo is a search"}),n}i(Ae,"validateArtifactInverse");var z="artifact";function A(e){return Array.isArray(e)?e.filter(t=>typeof t=="string"&&t.trim().length>0):[]}i(A,"stringArray");function Te(e){if(!e||typeof e!="object")return null;let t=e[z];if(!t||typeof t!="object")return null;let n=t;return{boundaryClass:n.boundaryClass,targets:A(n.targets),requires:A(n.requires),provides:A(n.provides)}}i(Te,"parseArtifactSpec");var be=["applied","measuring","improved","inconclusive","harmful","rollback_ready"];function K(e){return e.appliedAt?e.appliedAt instanceof Date?e.appliedAt.getTime():new Date(e.appliedAt).getTime():0}i(K,"appliedAtMs");function ke(e){return[...e].sort((t,n)=>{let o=K(n)-K(t);return o!==0?o:(n.applySeq??0)-(t.applySeq??0)})}i(ke,"orderForReversal");var Y=["SessionStart","SessionEnd","UserPromptSubmit","PreToolUse","PostToolUse","PreCompact","Notification","Stop","SubagentStop"],b=".claude/settings.local.json";function G(e){return`# rm-artifact:${e}`}i(G,"hookTag");function Ce(e,t){return`${e.trim()} ${G(t)}`}i(Ce,"taggedHookCommand");var Oe=new Set(["if","then","else","elif","fi","for","while","until","do","done","case","esac","function","return","exit","cd","echo","test","true","false"]);function k(e){let t=e.trim().split(/\s+/)[0]??"";return!/^[a-z][a-z0-9_-]*$/.test(t)||Oe.has(t)?null:y(`cmd:${t}`)}i(k,"inferredCommandRequirement");function we(e,t){let n=new Set((t?.requires??[]).map(y).filter(Boolean)),o=k(e.command);return o&&n.add(o),{boundaryClass:"outside",targets:[b],requires:[...n],provides:(t?.provides??[]).map(y).filter(Boolean)}}i(we,"hookArtifactSpec");function x(e){let t=[];Y.includes(e.event)||t.push({field:"event",message:`unknown hook event ${JSON.stringify(e.event)} \u2014 a hook on an event that never fires is indistinguishable from one that was never installed`});let n=(e.command??"").trim();return n.length===0?t.push({field:"command",message:"a hook with no command installs nothing"}):(/[\r\n]/.test(n)&&t.push({field:"command",message:"multi-line commands are refused: the identity tag is a trailing shell comment, which would silence only the final line, and a human reviewing an install should read one line"}),n.includes("\0")&&t.push({field:"command",message:"command contains a NUL byte"}),n.includes("rulemetric")&&t.push({field:"command",message:'refused: `rulemetric hooks uninstall` deletes every hook whose command contains "rulemetric", so installing one here would make this hook collateral damage of an unrelated command'}),n.includes("rm-artifact:")&&t.push({field:"command",message:"command already carries an artifact tag \u2014 installing it would produce two identities for one entry"})),e.matcher!==void 0&&(typeof e.matcher!="string"||e.matcher.trim().length===0)&&t.push({field:"matcher",message:"matcher must be a non-empty string when present"}),t}i(x,"validateHookSpec");function Re(e){let t=[`runs on: ${e.event}${e.matcher?` (tools matching ${e.matcher})`:""}`,`spawns: ${e.command.trim()}`,`writes: ${b} (one entry, tagged with this artifact's id)`],n=k(e.command);return n&&t.push(`needs: ${n} on PATH`),t}i(Re,"describeHookCapability");var q="hook";function h(e){return e&&typeof e=="object"&&!Array.isArray(e)?e:null}i(h,"asRecord");function F(e){let t=e.event,n=e.command;if(typeof t!="string"||typeof n!="string")return null;let o=typeof e.matcher=="string"?e.matcher:void 0;return{event:t,matcher:o,command:n}}i(F,"readBareSpec");function W(e){let t=h(e.hooks)??e,n=[];for(let[o,r]of Object.entries(t))if(Array.isArray(r))for(let s of r){let a=h(s);if(!a)continue;let c=typeof a.matcher=="string"&&a.matcher.length>0?a.matcher:void 0,l=Array.isArray(a.hooks)?a.hooks:[];for(let u of l){let f=h(u)?.command;typeof f=="string"&&n.push({event:o,matcher:c,command:f})}}return n.length===0?{spec:null,problems:[]}:n.length>1?{spec:null,problems:[{field:"hook",message:`proposal describes ${n.length} hook entries; one proposal installs exactly one hook, so its inverse stays exact and its review stays readable`}]}:{spec:n[0],problems:[]}}i(W,"readSettingsFragment");function Le(e){let t=[],n=/```[a-zA-Z]*\n([\s\S]*?)```/g,o;for(;(o=n.exec(e))!==null;)t.push(o[1]);return t}i(Le,"fencedBlocks");function Ie(e){let t=h(h(e.frontmatter)?.artifact),n=t?h(t[q]):null;if(n){let o=F(n);if(o)return{spec:o,problems:x(o),source:"envelope"};let r=W(n);if(r.spec)return{spec:r.spec,problems:x(r.spec),source:"envelope"};if(r.problems.length>0)return{spec:null,problems:r.problems,source:"envelope"}}for(let o of Le(e.content??"")){let r;try{r=JSON.parse(o)}catch{continue}let s=h(r);if(!s)continue;let a=F(s);if(a)return{spec:a,problems:x(a),source:"content-fragment"};let c=W(s);if(c.spec)return{spec:c.spec,problems:x(c.spec),source:"content-fragment"};if(c.problems.length>0)return{spec:null,problems:c.problems,source:"content-fragment"}}return{spec:null,problems:[{field:"hook",message:"no hook spec found \u2014 a hook proposal must carry {event, command} in its artifact envelope or a JSON settings fragment in its body"}],source:"none"}}i(Ie,"parseHookSpec");var V=25,C=N,X=[{task:"rm-batch-task",instructions:"rm-batch-task/inject.md",class:"proven",axis:"reward",measured:"2026-09-02 n=25/arm Haiku 4.5: 0/25 \u2192 25/25, delta +1.000, 95% CI [+0.734, +1.000]"},{task:"rm-locality-task",instructions:"rm-locality-task/inject.md",class:"proven",axis:"cost",measured:"2026-09-02 n=25/arm Haiku 4.5: 25/25 both arms, cost \u221225.6%/trial, 95% CI [\u22120.0171, \u22120.0107]"},{task:"rm-migrations-task",instructions:"rm-migrations-task/inject.md",class:"negative",axis:"reward",measured:"2026-08-31 Haiku 4.5: inconclusive after two exploratory reworks; redundancy unestablished"},{task:"rm-pagination-task",instructions:"rm-pagination-task/inject.md",class:"negative",axis:"reward",measured:"2026-09-02 n=25/arm Haiku 4.5: 25/25 baseline under --allowedTools Bash; observed cost +8.0%/trial; reward equivalence unestablished"}];function Ne(e){return X.filter(t=>t.class===e)}i(Ne,"harborTasksOfClass");function J(e,t){return t?.engine==="pi"?"Pi is supported for eval trials, not Harbor tasks":t?.engine==="codex"&&e.axis==="cost"?`${e.task}: dollar-cost telemetry is unavailable for Codex; reward calibration remains supported`:null}i(J,"harborTaskSupport");function Pe(e,t,n=null){let o=n?I.parse(n):null,r=J(e,o);if(r)throw new Error(r);let s=!o||o.engine==="claude"&&o.model===C;return{task:e.task,instructions:e.instructions,class:s?e.class:"unvalidated",axis:e.axis,model:o?.model??C,...o?{measurement:o}:{},nTrials:V,lane:t}}i(Pe,"harborPayloadFor");var De=/[\p{L}\p{N}]+/gu;function O(e){let t=new Set;for(let n of e.toLowerCase().matchAll(De)){let o=` ${n[0]} `;for(let r=0;r+3<=o.length;r+=1)t.add(o.slice(r,r+3))}return t}i(O,"trigrams");function g(e,t){let n=O(e),o=O(t);if(n.size===0||o.size===0)return 0;let r=0,[s,a]=n.size<=o.size?[n,o]:[o,n];for(let l of s)a.has(l)&&(r+=1);let c=n.size+o.size-r;return c===0?0:r/c}i(g,"trigramSimilarity");var R=.3,je=15;function w(e){let n=e.replace(/<!--[\s\S]*?-->/g," ").replace(/```[\s\S]*?```/g," "),o=[];for(let r of n.split(`
|
|
47
|
-
`)){let s=r.trim();if(s.length===0||s.startsWith("#"))continue;let a=s.replace(/^(?:[-*+]|\d+[.)])\s+/,"").trim();if(a.length!==0)for(let c of a.split(/(?<=[.!?])\s+(?=[A-Z(`"'*])/)){let l=c.trim();l.length>=je&&o.push(l)}}return o}i(w,"splitDirectives");function Z(e,t,n=R){let o=w(e);if(o.length===0)return{redundant:!1,coverage:0,matches:[],novel:[]};let r=t.flatMap(c=>w(c.content).map(l=>({text:l,id:c.id,source:c.source}))),s=[],a=[];for(let c of o){let l=null;for(let u of r){let f=g(c,u.text);f<n||(l===null||f>l.similarity)&&(l={directive:c,matchedDirective:u.text,matchedId:u.id,matchedSource:u.source,similarity:f})}l?s.push(l):a.push(c)}return{redundant:a.length===0,coverage:s.length/o.length,matches:s,novel:a}}i(Z,"assessRedundancy");function $e(e,t=R){let n=[];for(let o=0;o<e.length;o+=1){let r=Z(e[o].content,e.slice(0,o),t);r.matches.length>0&&n.push({instruction:e[o],verdict:r})}return n}i($e,"findInternalRedundancy");var Q=.5,Me=/-(?=[0-9a-f]{6}$)[0-9a-f]*[0-9][0-9a-f]*$/;function L(e){return e.trim().toLowerCase().replace(/^skills--/,"").replace(/[^a-z0-9]+/g,"-").replace(/^-+|-+$/g,"").replace(Me,"").replace(/-+$/,"")}i(L,"skillNameStem");function He(e,t,n=Q){let o=L(e.name);for(let s of t)if(o.length>0&&L(s.name)===o)return{name:s.name,similarity:g(e.content,s.content),reason:"name-stem"};let r=null;for(let s of t){let a=g(e.content,s.content);a<n||(r===null||a>r.similarity)&&(r={name:s.name,similarity:a,reason:"body"})}return r}i(He,"assessSkillDuplication");var Be=new Set(["sh","bash","zsh","fish"]),Ue=new Set(["mjs","cjs","js","ts","py","rb","pl"]),Ke=/(?:^|[\s(`'"])(?:sudo\s+)?(?:node|npx|pnpm|npm|yarn|bun|deno|tsx|ts-node|vitest|jest|python3?|python|ruby|perl|bash|sh|zsh|exec|run|dlx)\s+(?:[-\w=@./]+\s+)*$/,ze=/(?:\.\/)?(?:[\w.@-]+\/)+[\w.@-]+\.\w+/g;function Fe(e){return e.replace(/```[\w-]*\n?/g," ").replace(/`/g," ")}i(Fe,"stripCodeMarkers");function We(e){let t=e.trim();return t=t.replace(/[.,;:)\]]+$/,""),t.startsWith("./")&&(t=t.slice(2)),t.length===0||t.startsWith("/")||t.startsWith("~")||t.startsWith("..")||/[<>{}*?]/.test(t)?null:t}i(We,"normalise");function ee(e){let t=Fe(e),n=new Set,o=[];for(let r of t.matchAll(ze)){let s=r[0],a=r.index??0,c=t.slice(Math.max(0,a-1),a);if(c.length>0&&!/[\s(['"=]/.test(c))continue;let l=We(s);if(!l)continue;let u=l.slice(l.lastIndexOf(".")+1).toLowerCase();(Be.has(u)||Ue.has(u)&&(s.startsWith("./")||Ke.test(t.slice(t.lastIndexOf(`
|
|
48
|
-
`,Math.max(0,a-1))+1,a))))&&(n.has(l)||(n.add(l),o.push({reference:s,path:l})))}return o}i(ee,"extractCommandReferences");function Ye(e,t){return ee(e).filter(n=>!t(n.path))}i(Ye,"findUnresolvableReferences");import Yt from"gray-matter";import{z as te}from"zod";var Xt=te.object({type:te.enum(["instruction","prompt"])});export{se as a,ie as b,_ as c,M as d,fe as e,he as f,ge as g,ye as h,xe as i,_e as j,ve as k,Ee as l,y as m,Se as n,Ae as o,Te as p,be as q,ke as r,b as s,G as t,Ce as u,we as v,Re as w,Ie as x,C as y,Ne as z,J as A,Pe as B,w as C,Z as D,$e as E,He as F,Ye as G};
|
package/dist/dist-WGZCHQTC.js
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x}from"./chunk-WWL4HNXM.js";import"./chunk-ZLLER3HP.js";export{c as ClaudeCodeAdapter,i as CodexAdapter,f as CopilotAgentAdapter,d as CursorAdapter,j as PiAdapter,g as RuleMetricMcpAdapter,b as SESSION_EVENT_TYPES,a as SESSION_TOOLS,e as VSCodeCopilotAdapter,t as buildTmuxAttachCommand,s as buildTmuxHasSessionArgs,q as buildTmuxLaunchArgs,r as buildTmuxSendKeysArgs,l as detectTool,n as discoverAllSessions,h as freshCodexState,k as getAdapter,m as getAllProviders,v as getAvailableLaunchers,u as getLauncher,o as getProvider,w as sanitizeBranch,p as sanitizeTmuxName,x as worktreePathFor};
|