@rulemetric/cli 0.7.44 → 0.8.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +34 -0
- package/dist/base-command.js +1 -1
- package/dist/{chunk-QFVGUZDO.js → chunk-4PWGV2OW.js} +9 -8
- package/dist/chunk-7QQSYEPT.js +1 -0
- package/dist/chunk-A4FYFRN7.js +1 -0
- package/dist/chunk-BAVLNWO4.js +1 -0
- package/dist/{chunk-AF3ITIZ4.js → chunk-CF7FUQQ4.js} +1 -1
- package/dist/{chunk-FFI3C3B3.js → chunk-EVAQBD5V.js} +1 -1
- package/dist/chunk-FAZMKMTC.js +45 -0
- package/dist/{chunk-2DXBC2JQ.js → chunk-LWI5K6T4.js} +1 -1
- package/dist/{chunk-ATA4J4ZG.js → chunk-MBHDTW3M.js} +1 -1
- package/dist/chunk-UKN2YVY4.js +17 -0
- package/dist/chunk-XJYNMJHH.js +9 -0
- package/dist/chunk-ZE2PGHJQ.js +13 -0
- package/dist/commands/antigravity/backfill.js +1 -1
- package/dist/commands/auth/create-key.js +1 -1
- package/dist/commands/auth/login.js +1 -1
- package/dist/commands/auth/logout.js +1 -1
- package/dist/commands/auth/revoke-key.js +1 -1
- package/dist/commands/auth/signup.js +1 -1
- package/dist/commands/auth/status.js +1 -1
- package/dist/commands/capture/scope.js +1 -1
- package/dist/commands/catalog/index.js +1 -1
- package/dist/commands/catalog/recommend.js +1 -1
- package/dist/commands/convert.js +1 -1
- package/dist/commands/converters.js +1 -1
- package/dist/commands/crons/list.js +1 -1
- package/dist/commands/crons/run.js +1 -1
- package/dist/commands/dashboard.js +1 -1
- package/dist/commands/diagnostics.js +1 -1
- package/dist/commands/eval-targets/create.js +1 -1
- package/dist/commands/eval-targets/list.js +1 -1
- package/dist/commands/evals/agent.js +1 -1
- package/dist/commands/evals/auto-run.js +1 -1
- package/dist/commands/evals/benchmark.js +1 -1
- package/dist/commands/evals/compare.js +1 -1
- package/dist/commands/evals/create.js +1 -1
- package/dist/commands/evals/optimize-description.js +1 -1
- package/dist/commands/evals/optimize.js +1 -1
- package/dist/commands/evals/refine-cases.js +1 -1
- package/dist/commands/evals/run.js +1 -1
- package/dist/commands/evals/validate-judge.js +1 -1
- package/dist/commands/experiments/list.js +1 -0
- package/dist/commands/gateway/ensure.js +1 -1
- package/dist/commands/hooks/install.js +1 -1
- package/dist/commands/hooks/run.js +1 -1
- package/dist/commands/hooks/uninstall.js +1 -1
- package/dist/commands/import.js +1 -1
- package/dist/commands/instructions/create.js +1 -1
- package/dist/commands/instructions/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 -0
- package/dist/commands/instructions/upstream.js +1 -1
- package/dist/commands/instructions/versions.js +1 -1
- package/dist/commands/launcher.js +1 -1
- package/dist/commands/local/down.js +1 -1
- package/dist/commands/local/up.js +1 -1
- package/dist/commands/org/current.js +1 -1
- package/dist/commands/org/list.js +1 -1
- package/dist/commands/org/switch.js +1 -1
- package/dist/commands/packs/add-instruction.js +1 -1
- package/dist/commands/packs/apply.js +1 -1
- package/dist/commands/packs/create.js +1 -1
- package/dist/commands/packs/fork.js +1 -1
- package/dist/commands/packs/get.js +1 -1
- package/dist/commands/packs/list.js +1 -1
- package/dist/commands/packs/remove-instruction.js +1 -1
- package/dist/commands/proxy/env.js +1 -1
- package/dist/commands/proxy/logs.js +1 -1
- package/dist/commands/proxy/restart.js +1 -1
- package/dist/commands/proxy/setup.js +1 -1
- package/dist/commands/proxy/start.js +1 -1
- package/dist/commands/proxy/status.js +1 -1
- package/dist/commands/proxy/stop.js +1 -1
- package/dist/commands/research/backfill.js +1 -1
- package/dist/commands/research/tail-transcript.js +1 -1
- package/dist/commands/service/install.js +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/dismiss.js +1 -1
- package/dist/commands/suggestions/list.js +1 -1
- package/dist/commands/suggestions/refresh.js +1 -1
- package/dist/dashboard/Dashboard.js +1 -1
- package/dist/dashboard/launcher/LauncherOverlay.js +1 -1
- package/dist/lib/agent-loop.js +1 -1
- package/dist/lib/handlers/cron-instruction-evolution.js +1 -1
- package/dist/lib/handlers/cron-suggest-instructions.js +1 -1
- package/dist/lib/handlers/process-changelog.js +1 -1
- package/dist/lib/handlers/process-insights.js +1 -1
- package/dist/lib/insights-prompts.js +1 -1
- package/dist/lib/instruction-proposer.js +1 -1
- package/dist/lib/manual-tasks.js +1 -1
- package/dist/lib/retraction.js +1 -0
- package/oclif.manifest.json +434 -300
- package/package.json +9 -6
- package/dist/chunk-2RCWYVEU.js +0 -1
- package/dist/chunk-5R5RGKOW.js +0 -38
- package/dist/chunk-I7QSMY3Z.js +0 -1
- package/dist/chunk-O7PSLZO6.js +0 -15
- package/dist/chunk-RMDLJN4L.js +0 -8
- package/dist/chunk-V2IEFHT7.js +0 -1
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@rulemetric/cli",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.8.0",
|
|
4
4
|
"publishConfig": {
|
|
5
5
|
"access": "public"
|
|
6
6
|
},
|
|
@@ -50,6 +50,9 @@
|
|
|
50
50
|
},
|
|
51
51
|
"capture": {
|
|
52
52
|
"description": "Control what the worker captures"
|
|
53
|
+
},
|
|
54
|
+
"experiments": {
|
|
55
|
+
"description": "Instructions under randomised test and their verdicts"
|
|
53
56
|
}
|
|
54
57
|
}
|
|
55
58
|
},
|
|
@@ -77,9 +80,9 @@
|
|
|
77
80
|
"postgres": "^3.4.0",
|
|
78
81
|
"react": "^19.0.0",
|
|
79
82
|
"zod": "^3.24.0",
|
|
80
|
-
"@rulemetric/
|
|
81
|
-
"@rulemetric/
|
|
82
|
-
"@rulemetric/
|
|
83
|
+
"@rulemetric/hooks": "0.8.0",
|
|
84
|
+
"@rulemetric/skills-registry": "0.8.0",
|
|
85
|
+
"@rulemetric/proxy": "0.8.0"
|
|
83
86
|
},
|
|
84
87
|
"//deps": "Worker (`evals agent`) runtime deps: the @opentelemetry/* set, @sentry/node, and postgres are STATIC top-level imports loaded at worker startup (via bundled @rulemetric/{telemetry,db}) — they MUST be runtime deps or a clean `npm i -g` crashes with ModuleLoadError. `better-sqlite3` is optionalDependencies (below): it's a native module, lazy `require()`'d inside a try/catch (packages/session providers cursor/opencode) so a missing binary degrades gracefully — making it a hard dep would break `npm i -g` on platforms without prebuilt binaries. `resend` stays a devDep: lazy `await import('resend')` guarded by RESEND_API_KEY, which end-user workers never set (provider falls back to noop). Classification verified via import-graph scan of dist/commands/evals/agent.js + per-importer static/lazy check.",
|
|
85
88
|
"optionalDependencies": {
|
|
@@ -100,11 +103,11 @@
|
|
|
100
103
|
"@rulemetric/api": "0.0.1",
|
|
101
104
|
"@rulemetric/core": "0.0.1",
|
|
102
105
|
"@rulemetric/db": "0.0.1",
|
|
103
|
-
"@rulemetric/effectiveness": "0.0.1",
|
|
104
106
|
"@rulemetric/email": "0.0.1",
|
|
105
107
|
"@rulemetric/session": "0.2.1",
|
|
106
108
|
"@rulemetric/telemetry": "0.0.1",
|
|
107
|
-
"@rulemetric/typescript-config": "0.0.0"
|
|
109
|
+
"@rulemetric/typescript-config": "0.0.0",
|
|
110
|
+
"@rulemetric/effectiveness": "0.0.1"
|
|
108
111
|
},
|
|
109
112
|
"scripts": {
|
|
110
113
|
"build": "node scripts/build.mjs",
|
package/dist/chunk-2RCWYVEU.js
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{f as Z}from"./chunk-RMDLJN4L.js";import{b as B,i as V,j as X,k as J,l as Y,m as z,n as K}from"./chunk-BL4BN6RU.js";import{e as Q}from"./chunk-DBELYMDA.js";import{d as G,e as S,f as W}from"./chunk-G5BXZT6F.js";import{e as $,f as q}from"./chunk-KLEF5D3A.js";import{a as c}from"./chunk-ZLLER3HP.js";import{createHash as ie}from"node:crypto";var _=c(e=>ie("sha256").update(e).digest("hex"),"sha256"),ee=1.3,H=4,le=20;function ue(e,r){if(!e.configured||r<=0)return H;let n=Math.ceil(e.minPairs*ee/r);return Math.min(le,Math.max(H,n))}c(ue,"passCapFor");function ce(e,r=10,n=H){if(e<=0)return{passes:0,expectedPairs:0,feasible:!1,reason:"no live cases"};let s=Math.ceil(r*ee),t=Math.min(n,Math.ceil(s/e)),a=t*e;return a<r?{passes:t,expectedPairs:a,feasible:!1,reason:`${e} live case(s) x ${n} passes = ${e*n} pairs at best, below the ${r} a controlled verdict requires \u2014 add cases rather than replaying these`}:{passes:t,expectedPairs:a,feasible:!0}}c(ce,"planPasses");var pe=60,de=c(e=>typeof e=="object"&&e!==null&&typeof e.withScore=="number"&&typeof e.withoutScore=="number","isPair");function ge(e,r,n){let s=[...e].sort((t,a)=>Date.parse(a.createdAt)-Date.parse(t.createdAt));for(let t of s){if(t.applied)continue;let a=t.gates?.accumulation;if(!a||typeof a!="object"||a.priorContentHash!==r||a.targetPairs!==n||typeof a.candidateContentHash!="string"||!Array.isArray(a.pairs))continue;let p=a.pairs.filter(de);if(p.length===a.pairs.length&&!(p.length>=n))return{promotionId:t.id,candidateContentHash:a.candidateContentHash,pairs:p,runs:typeof a.runs=="number"?a.runs:1}}return null}c(ge,"findOpenAccumulation");function me(e,r){let n=r.accumulate??(e.autoEvolveAccumulate===!0||e.autoEvolveAccumulate==="true"),s=r.accumulateTargetPairs??e.autoEvolveAccumulateTarget,t=typeof s=="string"?Number.parseInt(s,10):s,a=typeof t=="number"&&Number.isInteger(t)&&t>0?t:pe;return{enabled:n,targetPairs:a}}c(me,"readAccumulateConfig");function fe(e){let r=e.accumulateEnabled&&e.pairCount<e.targetPairs;return{apply:e.consented&&!r,peeking:r}}c(fe,"resolveApply");async function Ae(e,r){let n=c(o=>r?.logger?.info?.(o)??console.log(o),"log"),{evalTargetId:s}=e,t=`[cron_instruction_evolution] ${s}`,a=await $(`/api/eval-targets/${s}`),p=a.metadata??{};if(X(p))return n(`${t}: PAUSED (metadata.autoEvolvePaused) \u2014 no model budget spent. Opt-in is intact.`),{skipped:"paused"};let y=be(p);if(y==null)return n(`${t}: refusing \u2014 metadata.immutableSections is unset. Set it (use [] to explicitly protect nothing) before letting the loop edit this target unattended.`),{skipped:"immutable-sections-unset"};let f=(await $(`/api/eval-targets/${s}/evals`)).filter(o=>!o.retiredAt);if(f.length===0)return{skipped:"no-live-cases"};let R=V(p);R.note&&n(`${t}: ${R.note}`);let d=ce(f.length,R.minPairs,ue(R,f.length));if(!d.feasible)return n(`${t}: cannot reach a sufficient verdict \u2014 ${d.reason}`),{skipped:"cannot-reach-min-n",reason:d.reason};let te=J({liveCases:f.length,passes:d.passes});n(`${t}: budget for this run \u2014 ${K(te)}`);let E=await $(`/api/eval-targets/${s}/judge-calibration`);if(!E.powerCheck.adequate){let o=(E.powerCheck.reasons??[]).join("; ");return n(`${t}: not adequately powered, skipping before spending budget \u2014 ${o}`),{skipped:"not-adequate",reason:o}}let M=W,ne=Date.now()-M*24*60*60*1e3,T=await $(`/api/eval-targets/${s}/promotions?limit=200`),O=T.promotions.filter(o=>o.applied&&Date.parse(o.createdAt)>=ne).length;if(O>=S)return n(`${t}: change budget looks exhausted (${O}/${S} applied in ${M}d), skipping before spending budget`),{skipped:"budget-exhausted"};let A=G();if(!A.green)return n(`${t}: A/A canary is RED \u2014 halting. ${A.failures.join(" | ")}`),{skipped:"canary-red",reason:A.failures.join(" | ")};let L=a.content,k=_(L),l=me(p,e),b=l.enabled?ge(T.promotions,k,l.targetPairs):null,v,x,w=[],C=0,N=B;if(b){let o=await $(`/api/promotions/${b.promotionId}`);if(_(o.toContent)!==b.candidateContentHash)return n(`${t}: stored candidate does not match its recorded hash \u2014 refusing to continue`),{skipped:"accumulation-hash-mismatch",reason:b.promotionId};v=o.toContent,x=o.proposalRationale??"",w=b.pairs,C=b.runs,N=0,n(`${t}: continuing accumulation ${b.promotionId} \u2014 ${w.length}/${l.targetPairs} pair(s) carried from ${C} prior run(s)`)}else{let o=E.caseDiscrimination?.cases??[],u=await Z({currentContent:a.content,targetType:a.type,targetName:a.name,immutableSections:y,evidence:{nonDiscriminating:o.filter(i=>!i.discriminating).map(i=>`${i.name??i.assertion??"unnamed"} \u2014 ${i.note}`),weakest:o.filter(i=>i.discriminating&&i.withPassRate<i.withoutPassRate).map(i=>({name:i.name??i.assertion??"unnamed",withPassRate:i.withPassRate,withoutPassRate:i.withoutPassRate})),notes:[]}});if(!u.ok)return n(`${t}: no usable proposal \u2014 ${u.reason}`),{skipped:"no-proposal",reason:u.reason};v=u.proposal.candidateContent,x=u.proposal.rationale}n(`${t}: measuring ${f.length} case(s) x ${d.passes} pass(es) = up to ${d.expectedPairs} pairs, candidate vs prior version`);let h=[],j=[],ae=Date.now(),U=0,I=0;for(let o=1;o<=d.passes;o++){let u=await Q({cases:f,candidateContent:v,priorVersionContent:L,concurrency:e.concurrency??2,runNumber:o,opts:{targetId:s,targetVersion:a.version??1,iteration:1,timeout:e.timeout??24e4,model:e.model,graderModel:e.graderModel,skipGrading:!1,targetType:a.type,targetName:a.name},onLog:n});h.push(...u.pairs),j.push(...u.results),U+=u.completed,I+=u.failed,n(`${t}: pass ${o}/${d.passes} \u2014 ${u.pairs.length} pair(s), running total ${h.length}`)}let P=[...w,...h],D=h.length>0,g=Y({runs:j,plannedPairs:d.expectedPairs,usablePairs:h.length,verdictPairs:D?P.length:h.length,proposalCalls:N,passes:d.passes,liveCases:f.length,wallMs:Date.now()-ae});if(n(`${t}: ${U} completed, ${I} failed, ${h.length} usable pair(s) \u2014 spent ~${g.modelCalls} model calls (${g.proposalCalls} proposal + ${g.executorCalls} executor + >=${g.graderCalls} grader) in ${(g.wallMs/6e4).toFixed(1)} min`+(D?`; the ${g.verdictPairs} pair(s) behind this verdict resolve +/-${z(g.mde)} at 80% power`:"")),!D)return{skipped:"no-pairs",reason:`${I} run(s) failed or were ungradeable`,cost:g};l.enabled&&n(`${t}: accumulated ${P.length}/${l.targetPairs} pair(s) over ${C+1} run(s) on one candidate`);let F=e.apply??(p.autoEvolveApply===!0||p.autoEvolveApply==="true"),{apply:oe,peeking:re}=fe({consented:F,accumulateEnabled:l.enabled,pairCount:P.length,targetPairs:l.targetPairs});F&&re&&n(`${t}: interim readout at ${P.length}/${l.targetPairs} pairs \u2014 recording the decision but not acting until the target is reached`);let m=await q(`/api/eval-targets/${s}/promotions`,{candidateContent:v,proposalSource:"llm",proposalRationale:x,pairs:P,canaryGreen:A.green,measuredAgainstContentHash:k,immutableSections:y,apply:oe,measurementCost:g,...l.enabled?{accumulation:{candidateContentHash:_(v),priorContentHash:k,targetPairs:l.targetPairs,carriedPairs:w.length,runs:C+1}}:{}});return n(`${t}: ${m.decision}${m.applied?" (APPLIED)":""} \u2014 ${m.rationale}`+(m.refusals.length>0?` | refusals: ${m.refusals.join("; ")}`:"")),{decision:m.decision,applied:m.applied,nPairs:P.length,promotionId:m.id,cost:g,...l.enabled?{carriedPairs:w.length,accumulationRuns:C+1}:{}}}c(Ae,"cronInstructionEvolution");function be(e){let r=e.immutableSections;return r==null||!Array.isArray(r)?null:r.filter(n=>typeof n=="string")}c(be,"readImmutableSections");export{ee as a,H as b,le as c,ue as d,ce as e,pe as f,ge as g,me as h,fe as i,Ae as j,be as k};
|
package/dist/chunk-5R5RGKOW.js
DELETED
|
@@ -1,38 +0,0 @@
|
|
|
1
|
-
import{a as e}from"./chunk-ZLLER3HP.js";function b(n){if(!n||typeof n!="object")return n;let c=n,r=c.project_areas;if(r!==void 0&&!Array.isArray(r)){let o=r&&typeof r=="object"?r.areas:void 0;c.project_areas=Array.isArray(o)?o:void 0}return n}e(b,"normalizeRecommendations");import{z as s}from"zod";var w=["org","team","project","personal"],v=s.object({name:s.string().min(1),description:s.string().min(1),type:s.literal("instruction").default("instruction"),scope:s.enum(w),version:s.string().min(1),tags:s.array(s.string()).optional(),compatibility:s.array(s.string()).optional(),slots:s.record(s.string(),s.string()).optional(),metadata:s.record(s.string(),s.unknown()).optional()});import{z as a}from"zod";var y=a.object({name:a.string().min(1),description:a.string().min(1),type:a.literal("prompt"),version:a.string().min(1),tags:a.array(a.string()).optional(),variables:a.array(a.string()).optional(),metadata:a.record(a.string(),a.unknown()).optional()});function f(n,c){let r=c.map(o=>`- ID: ${o.id}
|
|
2
|
-
Name: ${o.name}
|
|
3
|
-
Description: ${o.description}
|
|
4
|
-
Tags: ${o.tags.join(", ")}
|
|
5
|
-
Preview: ${o.contentPreview}`).join(`
|
|
6
|
-
|
|
7
|
-
`);return`You are an expert at matching AI coding instructions to software projects.
|
|
8
|
-
|
|
9
|
-
## Project
|
|
10
|
-
- Name: ${n.name}
|
|
11
|
-
- Description: ${n.description??"No description"}
|
|
12
|
-
- Languages: ${n.languages.join(", ")||"Unknown"}
|
|
13
|
-
- Topics: ${n.topics.join(", ")||"None"}
|
|
14
|
-
- Dependencies: ${n.dependencies.join(", ")||"None"}
|
|
15
|
-
|
|
16
|
-
## Available Instructions
|
|
17
|
-
|
|
18
|
-
${r}
|
|
19
|
-
|
|
20
|
-
## Task
|
|
21
|
-
|
|
22
|
-
Analyze the project and recommend which instructions would be most useful. Consider:
|
|
23
|
-
1. Language and framework alignment
|
|
24
|
-
2. Project purpose and what standards/practices would help
|
|
25
|
-
3. Security, testing, and quality needs based on the project type
|
|
26
|
-
|
|
27
|
-
Return your response as JSON in this exact format:
|
|
28
|
-
{
|
|
29
|
-
"recommendations": [
|
|
30
|
-
{ "instructionId": "<id>", "score": <0.0-1.0>, "reason": "<one sentence explanation>" }
|
|
31
|
-
]
|
|
32
|
-
}
|
|
33
|
-
|
|
34
|
-
Only include instructions with a relevance score >= 0.5. Order by score descending. Return valid JSON only, no markdown fences.`}e(f,"buildRecommendationPrompt");var x=32e3,T={name:"x".repeat(64),description:"x".repeat(256),languages:["TypeScript","Python","Go"],topics:["x".repeat(32)],dependencies:["x".repeat(32)]};function _(n,c={}){if(n.length===0)return[];let r=c.charBudget??x,o=f(T,[]).length,l=[],i=[],d=0;for(let u of n){let p=k(u);i.length>0&&o+d+p>r&&(l.push(i),i=[],d=0),i.push(u),d+=p}return i.length>0&&l.push(i),l}e(_,"batchCandidatesForPrompt");function k(n){return`- ID: ${n.id}
|
|
35
|
-
Name: ${n.name}
|
|
36
|
-
Description: ${n.description}
|
|
37
|
-
Tags: ${n.tags.join(", ")}
|
|
38
|
-
Preview: ${n.contentPreview}`.length+2}e(k,"renderedSize");var C=["Added","Changed","Fixed","Removed","Deprecated","Security"],S=/^##\s+\[([^\]]+)\](?:\s*[-–]\s*(\d{4}-\d{2}-\d{2}))?\s*$/,I=/^###\s+(.+?)\s*$/,P=/^[-*]\s+(.*\S)\s*$/,L=/^ {2,}(\S.*)$/;function O(n){let c=n.split(/\r?\n/),r=[],o=null,l=null,i=null;for(let d of c){let u=d.match(S);if(u){o&&r.push(o);let m=u[1].trim();o={version:m,date:u[2]??null,unreleased:m.toLowerCase()==="unreleased",sections:{}},l=null,i=null;continue}if(!o)continue;let p=d.match(I);if(p){let m=p[1].trim();C.includes(m)?(l=m,o.sections[l]||(o.sections[l]=[]),i=o.sections[l]):(l=null,i=null);continue}if(!l||!i)continue;let h=d.match(P);if(h){i.push(h[1]);continue}let g=d.match(L);if(g&&i.length>0){i[i.length-1]+=" "+g[1].trim();continue}}return o&&r.push(o),{entries:r}}e(O,"parseChangelog");function j(n){return n.entries.filter(c=>c.unreleased?!1:Object.values(c.sections).some(r=>r&&r.length>0))}e(j,"announceableEntries");import ue from"gray-matter";import{z as R}from"zod";var he=R.object({type:R.enum(["instruction","prompt"])});export{b as a,f as b,_ as c,O as d,j as e};
|
package/dist/chunk-I7QSMY3Z.js
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{a as p,c as Or}from"./chunk-ZLLER3HP.js";import{boolean as qr,date as Mr,index as Ct,integer as Lr,jsonb as Ur,pgTable as Ot,text as A,timestamp as L,uniqueIndex as Br,uuid as re}from"drizzle-orm/pg-core";var Eo=Ot("announcements",{id:re("id").primaryKey().defaultRandom(),version:A("version").notNull().unique(),releaseDate:Mr("release_date").notNull(),subject:A("subject").notNull(),htmlBody:A("html_body").notNull(),textBody:A("text_body").notNull(),sections:Ur("sections").notNull().default({}),status:A("status").notNull().default("draft"),recipientCount:Lr("recipient_count"),sentAt:L("sent_at",{withTimezone:!0}),sentBy:re("sent_by"),error:A("error"),createdAt:L("created_at",{withTimezone:!0}).notNull().defaultNow(),updatedAt:L("updated_at",{withTimezone:!0}).notNull().defaultNow()},e=>[Ct("idx_announcements_status").on(e.status),Ct("idx_announcements_created").on(e.createdAt)]),bo=Ot("announcement_deliveries",{id:re("id").primaryKey().defaultRandom(),announcementId:re("announcement_id").notNull(),userId:re("user_id").notNull(),email:A("email").notNull(),status:A("status").notNull().default("pending"),providerId:A("provider_id"),error:A("error"),sentAt:L("sent_at",{withTimezone:!0}),createdAt:L("created_at",{withTimezone:!0}).notNull().defaultNow()},e=>[Br("uniq_announcement_deliveries_announcement_user").on(e.announcementId,e.userId),Ct("idx_announcement_deliveries_user").on(e.userId,e.createdAt)]),So=Ot("notification_preferences",{userId:re("user_id").primaryKey(),productAnnouncements:qr("product_announcements").notNull().default(!0),unsubscribeToken:A("unsubscribe_token").notNull().unique(),unsubscribedAt:L("unsubscribed_at",{withTimezone:!0}),createdAt:L("created_at",{withTimezone:!0}).notNull().defaultNow(),updatedAt:L("updated_at",{withTimezone:!0}).notNull().defaultNow()});import{boolean as Co,pgTable as Hr,text as Ze,timestamp as qt,uuid as Oo}from"drizzle-orm/pg-core";import{pgTable as Xe,text as se,timestamp as Re,jsonb as Ko,uuid as Y,primaryKey as Po}from"drizzle-orm/pg-core";var u=Xe("organizations",{id:Y("id").primaryKey().defaultRandom(),name:se("name").unique().notNull(),slug:se("slug").unique().notNull(),metadata:Ko("metadata"),createdAt:Re("created_at",{withTimezone:!0}).defaultNow(),updatedAt:Re("updated_at",{withTimezone:!0}).defaultNow()}),h=Xe("teams",{id:Y("id").primaryKey().defaultRandom(),orgId:Y("org_id").references(()=>u.id,{onDelete:"cascade"}),name:se("name").notNull(),slug:se("slug").notNull(),metadata:Ko("metadata"),createdAt:Re("created_at",{withTimezone:!0}).defaultNow()}),ie=Xe("user_organizations",{userId:Y("user_id").notNull(),orgId:Y("org_id").references(()=>u.id,{onDelete:"cascade"}).notNull(),role:se("role").notNull().default("member"),createdAt:Re("created_at",{withTimezone:!0}).defaultNow()},e=>[Po({columns:[e.userId,e.orgId]})]),ae=Xe("user_teams",{userId:Y("user_id").notNull(),teamId:Y("team_id").references(()=>h.id,{onDelete:"cascade"}).notNull(),role:se("role").notNull().default("member"),createdAt:Re("created_at",{withTimezone:!0}).defaultNow()},e=>[Po({columns:[e.userId,e.teamId]})]);var o=Hr("profiles",{id:Oo("id").primaryKey(),email:Ze("email"),displayName:Ze("display_name"),activeOrgId:Oo("active_org_id").references(()=>u.id,{onDelete:"set null"}),isSuperadmin:Co("is_superadmin").notNull().default(!1),claudeCodePlan:Ze("claude_code_plan"),planSource:Ze("plan_source").notNull().default("detected"),setupCompletedAt:qt("setup_completed_at",{withTimezone:!0}),liveSendSkipped:Co("live_send_skipped").notNull().default(!1),createdAt:qt("created_at",{withTimezone:!0}).defaultNow(),updatedAt:qt("updated_at",{withTimezone:!0}).defaultNow()});import{pgTable as Vr,text as Mt,timestamp as et,uuid as tt,index as qo}from"drizzle-orm/pg-core";var E=Vr("org_invitations",{id:tt("id").primaryKey().defaultRandom(),orgId:tt("org_id").notNull().references(()=>u.id,{onDelete:"cascade"}),email:Mt("email").notNull(),role:Mt("role").notNull().default("member"),teamId:tt("team_id").references(()=>h.id,{onDelete:"set null"}),invitedBy:tt("invited_by").notNull().references(()=>o.id,{onDelete:"cascade"}),token:Mt("token").notNull().unique(),expiresAt:et("expires_at",{withTimezone:!0}).notNull(),acceptedAt:et("accepted_at",{withTimezone:!0}),revokedAt:et("revoked_at",{withTimezone:!0}),createdAt:et("created_at",{withTimezone:!0}).notNull().defaultNow()},e=>[qo("idx_org_invitations_token").on(e.token),qo("idx_org_invitations_org").on(e.orgId)]);import{pgTable as Lt,text as x,timestamp as U,jsonb as ot,uuid as D,integer as nt,boolean as Gr,uniqueIndex as rt,index as je}from"drizzle-orm/pg-core";var r=Lt("instructions",{id:D("id").primaryKey().defaultRandom(),name:x("name").notNull(),description:x("description").notNull(),type:x("type").notNull().default("instruction"),scope:x("scope").notNull(),scopeRef:D("scope_ref"),version:x("version").notNull(),content:x("content").notNull(),frontmatter:ot("frontmatter").notNull(),slots:ot("slots"),tags:x("tags").array(),compatibility:x("compatibility").array(),createdBy:D("created_by"),createdAt:U("created_at",{withTimezone:!0}).defaultNow(),updatedAt:U("updated_at",{withTimezone:!0}).defaultNow(),archived:Gr("archived").default(!1),archivedAt:U("archived_at",{withTimezone:!0}),archivedBy:D("archived_by"),forkedFromId:D("forked_from_id").references(()=>r.id,{onDelete:"set null"}),upstreamVersion:x("upstream_version"),badge:x("badge"),contentHash:x("content_hash"),contextIdentity:x("context_identity"),scanScore:nt("scan_score"),scanFindings:ot("scan_findings"),popularityScore:nt("popularity_score"),sourceUpdatedAt:U("source_updated_at",{withTimezone:!0})},e=>[rt("instructions_name_scope_ref_idx").on(e.name,e.scope,e.scopeRef),je("idx_instructions_scope").on(e.scope,e.scopeRef),je("idx_instructions_created_by").on(e.createdBy),je("idx_instructions_context_identity").on(e.createdBy,e.contextIdentity),je("idx_instructions_public_recency").on(e.scope,e.sourceUpdatedAt.desc())]),Mo=Lt("instruction_version_identities",{id:D("id").primaryKey().defaultRandom(),instructionId:D("instruction_id").notNull().references(()=>r.id,{onDelete:"cascade"}),contentHash:x("content_hash").notNull(),versionOrdinal:nt("version_ordinal").notNull(),content:x("content"),firstSeenAt:U("first_seen_at",{withTimezone:!0}).notNull().defaultNow(),lastSeenAt:U("last_seen_at",{withTimezone:!0}).notNull().defaultNow(),createdAt:U("created_at",{withTimezone:!0}).notNull().defaultNow()},e=>[rt("instruction_version_identities_hash_unique").on(e.instructionId,e.contentHash),rt("instruction_version_identities_ordinal_unique").on(e.instructionId,e.versionOrdinal),je("idx_ivi_instruction").on(e.instructionId)]),de=Lt("instruction_versions",{id:D("id").primaryKey().defaultRandom(),instructionId:D("instruction_id").references(()=>r.id,{onDelete:"cascade"}),versionNumber:nt("version_number").notNull(),content:x("content").notNull(),frontmatter:ot("frontmatter").notNull(),changeSummary:x("change_summary"),createdBy:D("created_by"),createdAt:U("created_at",{withTimezone:!0}).defaultNow()},e=>[rt("instruction_versions_instruction_version_idx").on(e.instructionId,e.versionNumber)]);import{pgTable as Fr,text as Jr,timestamp as $r,jsonb as Yr,uuid as Ut,index as Lo}from"drizzle-orm/pg-core";var ue=Fr("instruction_events",{id:Ut("id").primaryKey().defaultRandom(),instructionId:Ut("instruction_id").notNull().references(()=>r.id,{onDelete:"cascade"}),eventType:Jr("event_type").notNull(),actorId:Ut("actor_id").notNull(),metadata:Yr("metadata"),createdAt:$r("created_at",{withTimezone:!0}).defaultNow()},e=>[Lo("idx_instruction_events_instruction").on(e.instructionId),Lo("idx_instruction_events_type").on(e.eventType)]);import{boolean as Qr,jsonb as Wr,pgTable as Ht,primaryKey as Uo,text as Q,timestamp as ke,uniqueIndex as Bt,uuid as W}from"drizzle-orm/pg-core";import{sql as Xr}from"drizzle-orm";var s=Ht("projects",{id:W("id").primaryKey().defaultRandom(),orgId:W("org_id").references(()=>u.id,{onDelete:"cascade"}),name:Q("name").notNull(),description:Q("description"),githubRepo:Q("github_repo"),gitRemoteUrl:Q("git_remote_url"),gitRootCommit:Q("git_root_commit"),gitRemoteAliases:Q("git_remote_aliases").array().notNull().default([]),metadata:Wr("metadata"),createdBy:W("created_by"),createdAt:ke("created_at",{withTimezone:!0}).defaultNow(),updatedAt:ke("updated_at",{withTimezone:!0}).defaultNow()},e=>[Bt("projects_org_name_idx").on(e.orgId,e.name),Bt("projects_git_remote_url_unique").on(e.gitRemoteUrl).where(Xr`${e.gitRemoteUrl} IS NOT NULL`)]),B=Ht("project_instructions",{projectId:W("project_id").references(()=>s.id,{onDelete:"cascade"}).notNull(),instructionId:W("instruction_id").references(()=>r.id,{onDelete:"cascade"}).notNull(),addedAt:ke("added_at",{withTimezone:!0}).defaultNow(),addedBy:W("added_by")},e=>[Uo({columns:[e.projectId,e.instructionId]})]),Bo=Ht("project_checkouts",{projectId:W("project_id").references(()=>s.id,{onDelete:"cascade"}).notNull(),path:Q("path").notNull(),isWorktree:Qr("is_worktree").notNull().default(!1),firstSeen:ke("first_seen",{withTimezone:!0}).notNull().defaultNow(),lastSeen:ke("last_seen",{withTimezone:!0}).notNull().defaultNow()},e=>[Uo({columns:[e.projectId,e.path]}),Bt("project_checkouts_path_unique").on(e.path)]);import{pgTable as Ft,text as I,timestamp as Ee,jsonb as X,uuid as b,integer as it,uniqueIndex as Vo,index as R}from"drizzle-orm/pg-core";import{pgTable as Zr,text as le,timestamp as Vt,jsonb as Ho,uuid as st,integer as es,boolean as ts,index as Gt}from"drizzle-orm/pg-core";var g=Zr("agent_runs",{id:st("id").primaryKey().defaultRandom(),userId:st("user_id").notNull().references(()=>o.id,{onDelete:"cascade"}),orgId:st("org_id").references(()=>u.id,{onDelete:"set null"}),projectId:st("project_id").references(()=>s.id,{onDelete:"set null"}),projectPath:le("project_path"),gitRemote:le("git_remote"),baseBranch:le("base_branch"),title:le("title"),prompt:le("prompt"),toolSpec:Ho("tool_spec").notNull().default([]),autoWorktree:ts("auto_worktree").notNull().default(!0),status:le("status").notNull().default("pending"),sessionCount:es("session_count").notNull().default(0),metadata:Ho("metadata").notNull().default({}),createdAt:Vt("created_at",{withTimezone:!0}).notNull().defaultNow(),updatedAt:Vt("updated_at",{withTimezone:!0}).notNull().defaultNow(),completedAt:Vt("completed_at",{withTimezone:!0})},e=>[Gt("idx_agent_runs_user").on(e.userId),Gt("idx_agent_runs_org_created").on(e.orgId,e.createdAt),Gt("idx_agent_runs_project").on(e.projectId)]);var d=Ft("sessions",{id:b("id").primaryKey().defaultRandom(),userId:b("user_id").notNull().references(()=>o.id,{onDelete:"cascade"}),externalSessionId:I("external_session_id"),projectId:b("project_id").references(()=>s.id,{onDelete:"set null"}),orgId:b("org_id").references(()=>u.id,{onDelete:"set null"}),tool:I("tool").notNull(),projectPath:I("project_path"),gitBranch:I("git_branch"),startedAt:Ee("started_at",{withTimezone:!0}).notNull(),endedAt:Ee("ended_at",{withTimezone:!0}),eventCount:it("event_count").default(0),tokenUsage:X("token_usage"),analysis:X("analysis"),analyzedAt:Ee("analyzed_at",{withTimezone:!0}),analyzedEventCount:it("analyzed_event_count"),analyzedTurnCount:it("analyzed_turn_count"),metadata:X("metadata").default({}),origin:I("origin").notNull().default("unknown"),runId:b("run_id").references(()=>g.id,{onDelete:"set null"}),model:I("model"),harnessVersion:I("harness_version"),createdAt:Ee("created_at",{withTimezone:!0}).defaultNow()},e=>[R("idx_sessions_user").on(e.userId),R("idx_sessions_tool").on(e.tool),R("idx_sessions_started_at").on(e.startedAt),R("idx_sessions_project").on(e.projectId),R("idx_sessions_org_started_at").on(e.orgId,e.startedAt),R("idx_sessions_run").on(e.runId),Vo("idx_sessions_user_external").on(e.userId,e.externalSessionId)]),ce=Ft("session_events",{id:b("id").primaryKey().defaultRandom(),sessionId:b("session_id").notNull().references(()=>d.id,{onDelete:"cascade"}),sequence:it("sequence").notNull(),eventType:I("event_type").notNull(),content:I("content"),toolName:I("tool_name"),toolInput:X("tool_input"),toolOutput:X("tool_output"),tokenUsage:X("token_usage"),model:I("model"),timestamp:Ee("timestamp",{withTimezone:!0}).notNull(),metadata:X("metadata").default({})},e=>[Vo("session_events_session_sequence_idx").on(e.sessionId,e.sequence),R("idx_session_events_session_id").on(e.sessionId),R("idx_session_events_event_type").on(e.eventType),R("idx_session_events_model").on(e.model)]),H=Ft("session_instructions",{sessionId:b("session_id").notNull().references(()=>d.id,{onDelete:"cascade"}),instructionId:b("instruction_id").notNull().references(()=>r.id,{onDelete:"cascade"}),linkMethod:I("link_method").notNull(),contentHash:I("content_hash")},e=>[R("idx_session_instructions_instruction_id").on(e.instructionId)]);import{pgTable as Go,text as at,timestamp as Fo,uuid as j,integer as Jo,index as _e,unique as os}from"drizzle-orm/pg-core";var S=Go("treatment_assignments",{id:j("id").primaryKey().defaultRandom(),userId:j("user_id").notNull().references(()=>o.id,{onDelete:"cascade"}),treatmentType:at("treatment_type").notNull(),treatmentId:j("treatment_id").notNull(),treatmentVersion:Jo("treatment_version").notNull().default(1),projectId:j("project_id").references(()=>s.id,{onDelete:"set null"}),assignedBy:j("assigned_by").references(()=>o.id,{onDelete:"set null"}),method:at("method").notNull(),assignedAt:Fo("assigned_at",{withTimezone:!0}).notNull().defaultNow()},e=>[_e("idx_treatment_assignments_user").on(e.userId),_e("idx_treatment_assignments_treatment").on(e.treatmentType,e.treatmentId),_e("idx_treatment_assignments_project").on(e.projectId)]),K=Go("treatment_exposures",{id:j("id").primaryKey().defaultRandom(),sessionId:j("session_id").notNull().references(()=>d.id,{onDelete:"cascade"}),userId:j("user_id").notNull().references(()=>o.id,{onDelete:"cascade"}),treatmentType:at("treatment_type").notNull(),treatmentId:j("treatment_id").notNull(),treatmentVersion:Jo("treatment_version").notNull().default(1),assignmentId:j("assignment_id").references(()=>S.id,{onDelete:"set null"}),method:at("method").notNull(),exposedAt:Fo("exposed_at",{withTimezone:!0}).notNull().defaultNow()},e=>[os("treatment_exposures_unique").on(e.sessionId,e.treatmentType,e.treatmentId,e.treatmentVersion),_e("idx_treatment_exposures_treatment").on(e.treatmentType,e.treatmentId),_e("idx_treatment_exposures_user").on(e.userId),_e("idx_treatment_exposures_session").on(e.sessionId)]);import{pgTable as ns,text as Jt,timestamp as rs,uuid as dt,integer as ss,index as $o,uniqueIndex as is}from"drizzle-orm/pg-core";var Yo=ns("pending_treatment_exposures",{id:dt("id").primaryKey().defaultRandom(),userId:dt("user_id").notNull().references(()=>o.id,{onDelete:"cascade"}),externalSessionId:Jt("external_session_id").notNull(),treatmentType:Jt("treatment_type").notNull(),treatmentId:dt("treatment_id").notNull(),treatmentVersion:ss("treatment_version").notNull().default(1),method:Jt("method").notNull().default("injected"),projectId:dt("project_id").references(()=>s.id,{onDelete:"set null"}),createdAt:rs("created_at",{withTimezone:!0}).notNull().defaultNow()},e=>[is("pending_treatment_exposures_unique").on(e.externalSessionId,e.treatmentType,e.treatmentId,e.treatmentVersion),$o("idx_pending_treatment_exposures_ext").on(e.externalSessionId),$o("idx_pending_treatment_exposures_user").on(e.userId)]);import{pgTable as as,text as me,timestamp as $t,uuid as be,integer as Qo,index as ut}from"drizzle-orm/pg-core";var T=as("memories",{id:be("id").primaryKey().defaultRandom(),userId:be("user_id").notNull().references(()=>o.id,{onDelete:"cascade"}),orgId:be("org_id"),projectId:be("project_id").references(()=>s.id,{onDelete:"set null"}),version:Qo("version").notNull().default(1),parentId:be("parent_id").references(()=>T.id,{onDelete:"set null"}),kind:me("kind").notNull(),title:me("title").notNull(),body:me("body").notNull(),source:me("source").notNull(),status:me("status").notNull().default("active"),trustClass:me("trust_class"),trustVersion:Qo("trust_version"),trustComputedAt:$t("trust_computed_at",{withTimezone:!0}),createdAt:$t("created_at",{withTimezone:!0}).notNull().defaultNow(),updatedAt:$t("updated_at",{withTimezone:!0}).notNull().defaultNow()},e=>[ut("idx_memories_user").on(e.userId),ut("idx_memories_project").on(e.projectId),ut("idx_memories_parent").on(e.parentId),ut("idx_memories_user_status").on(e.userId,e.status)]);import{pgTable as ds,text as Se,timestamp as Yt,uuid as Qt,integer as Wo,jsonb as us,index as Xo}from"drizzle-orm/pg-core";var Zo=ds("memory_experiments",{id:Qt("id").primaryKey().defaultRandom(),memoryId:Qt("memory_id").notNull().references(()=>T.id,{onDelete:"cascade"}),userId:Qt("user_id").notNull().references(()=>o.id,{onDelete:"cascade"}),memoryVersion:Wo("memory_version").notNull().default(1),taskPrompt:Se("task_prompt").notNull(),expectations:Se("expectations").array().notNull().default([]),trials:Wo("trials").notNull().default(10),model:Se("model"),status:Se("status").notNull().default("pending"),result:us("result").$type(),error:Se("error"),createdAt:Yt("created_at",{withTimezone:!0}).notNull().defaultNow(),startedAt:Yt("started_at",{withTimezone:!0}),completedAt:Yt("completed_at",{withTimezone:!0})},e=>[Xo("idx_memory_experiments_memory").on(e.memoryId),Xo("idx_memory_experiments_user").on(e.userId)]);import{pgTable as ls,text as pe,timestamp as Wt,uuid as Xt,jsonb as cs,uniqueIndex as _s,index as en}from"drizzle-orm/pg-core";var lt=ls("session_terminal_targets",{id:Xt("id").primaryKey().defaultRandom(),userId:Xt("user_id").notNull().references(()=>o.id,{onDelete:"cascade"}),sessionId:Xt("session_id").references(()=>d.id,{onDelete:"set null"}),externalSessionId:pe("external_session_id"),kind:pe("kind").notNull(),target:pe("target").notNull(),status:pe("status").notNull().default("active"),attachCommand:pe("attach_command").notNull(),projectPath:pe("project_path"),metadata:cs("metadata").notNull().default({}),lastSeenAt:Wt("last_seen_at",{withTimezone:!0}).defaultNow(),createdAt:Wt("created_at",{withTimezone:!0}).defaultNow(),updatedAt:Wt("updated_at",{withTimezone:!0}).defaultNow()},e=>[_s("idx_session_terminal_targets_user_target").on(e.userId,e.target),en("idx_session_terminal_targets_session").on(e.sessionId),en("idx_session_terminal_targets_user_status").on(e.userId,e.status)]);import{boolean as ms,index as ct,jsonb as tn,pgTable as ps,text as Z,timestamp as Ke,uuid as _t,integer as on}from"drizzle-orm/pg-core";var nn=ps("session_send_jobs",{id:_t("id").primaryKey().defaultRandom(),userId:_t("user_id").notNull(),sessionId:_t("session_id").notNull().references(()=>d.id,{onDelete:"cascade"}),terminalTargetId:_t("terminal_target_id").references(()=>lt.id,{onDelete:"set null"}),target:Z("target").notNull(),message:Z("message").notNull(),submit:ms("submit").notNull().default(!0),delivery:Z("delivery").notNull().default("live"),status:Z("status").notNull().default("pending"),result:tn("result"),error:Z("error"),attempts:on("attempts").notNull().default(0),taskKind:Z("task_kind"),payload:tn("payload"),claimedBy:Z("claimed_by"),claimedAt:Ke("claimed_at",{withTimezone:!0}),leaseExpiresAt:Ke("lease_expires_at",{withTimezone:!0}),leaseRecoveries:on("lease_recoveries").notNull().default(0),createdAt:Ke("created_at",{withTimezone:!0}).defaultNow(),updatedAt:Ke("updated_at",{withTimezone:!0}).defaultNow(),completedAt:Ke("completed_at",{withTimezone:!0})},e=>[ct("idx_session_send_jobs_user").on(e.userId),ct("idx_session_send_jobs_session").on(e.sessionId),ct("idx_session_send_jobs_status").on(e.status),ct("idx_session_send_jobs_pending").on(e.userId,e.status)]);import{pgTable as sn,text as ee,timestamp as mt,jsonb as an,uuid as V,integer as fs,boolean as xs,uniqueIndex as Ns,index as rn,primaryKey as gs}from"drizzle-orm/pg-core";var z=sn("packs",{id:V("id").primaryKey().defaultRandom(),name:ee("name").notNull(),description:ee("description").notNull(),scope:ee("scope").notNull(),scopeRef:V("scope_ref"),version:ee("version").notNull().default("1.0.0"),tags:ee("tags").array(),badge:ee("badge"),metadata:an("metadata"),createdBy:V("created_by"),createdAt:mt("created_at",{withTimezone:!0}).defaultNow(),updatedAt:mt("updated_at",{withTimezone:!0}).defaultNow(),archived:xs("archived").default(!1),archivedAt:mt("archived_at",{withTimezone:!0}),archivedBy:V("archived_by"),forkedFromId:V("forked_from_id").references(()=>z.id,{onDelete:"set null"}),upstreamVersion:ee("upstream_version")},e=>[Ns("packs_name_scope_ref_idx").on(e.name,e.scope,e.scopeRef),rn("idx_packs_scope").on(e.scope,e.scopeRef),rn("idx_packs_created_by").on(e.createdBy)]),G=sn("pack_instructions",{packId:V("pack_id").references(()=>z.id,{onDelete:"cascade"}).notNull(),instructionId:V("instruction_id").references(()=>r.id,{onDelete:"cascade"}).notNull(),position:fs("position").notNull().default(0),slotOverrides:an("slot_overrides"),addedAt:mt("added_at",{withTimezone:!0}).defaultNow(),addedBy:V("added_by")},e=>[gs({columns:[e.packId,e.instructionId]})]);import{pgTable as vs,text as Zt,timestamp as hs,jsonb as Is,uuid as eo,index as fe}from"drizzle-orm/pg-core";var xe=vs("instruction_usage_events",{id:eo("id").primaryKey().defaultRandom(),instructionId:eo("instruction_id").references(()=>r.id,{onDelete:"set null"}),userId:eo("user_id").notNull(),surface:Zt("surface").notNull(),action:Zt("action").notNull(),metadata:Is("metadata"),traceId:Zt("trace_id"),createdAt:hs("created_at",{withTimezone:!0}).defaultNow()},e=>[fe("idx_usage_events_instruction").on(e.instructionId),fe("idx_usage_events_user").on(e.userId),fe("idx_usage_events_surface").on(e.surface),fe("idx_usage_events_action").on(e.action),fe("idx_usage_events_created_at").on(e.createdAt),fe("idx_usage_events_user_created").on(e.userId,e.createdAt)]);import{pgTable as ys,text as pt,timestamp as dn,jsonb as Ts,uuid as un,index as to}from"drizzle-orm/pg-core";var ln=ys("worker_connections",{id:un("id").primaryKey().defaultRandom(),userId:un("user_id").notNull(),workerType:pt("worker_type").notNull().default("mcp"),clientName:pt("client_name").notNull(),clientVersion:pt("client_version"),workerVersion:pt("worker_version"),lastHeartbeat:dn("last_heartbeat",{withTimezone:!0}).notNull().defaultNow(),connectedAt:dn("connected_at",{withTimezone:!0}).notNull().defaultNow(),metadata:Ts("metadata")},e=>[to("idx_worker_connections_user").on(e.userId),to("idx_worker_connections_heartbeat").on(e.userId,e.lastHeartbeat),to("idx_worker_connections_type").on(e.userId,e.workerType)]);import{pgTable as ws,text as ft,timestamp as As,jsonb as zs,uuid as cn,index as _n}from"drizzle-orm/pg-core";var mn=ws("cli_setup_events",{id:cn("id").primaryKey().defaultRandom(),userId:cn("user_id").notNull(),deviceId:ft("device_id").notNull(),event:ft("event").notNull(),cliVersion:ft("cli_version"),os:ft("os"),props:zs("props").notNull().default({}),createdAt:As("created_at",{withTimezone:!0}).notNull().defaultNow()},e=>[_n("idx_cli_setup_events_user").on(e.userId,e.createdAt),_n("idx_cli_setup_events_device").on(e.deviceId,e.createdAt)]);import{pgTable as Ds,text as te,integer as Rs,boolean as js,timestamp as ks,jsonb as Es,uuid as bs,index as pn}from"drizzle-orm/pg-core";var fn=Ds("cli_error_events",{id:bs("id").primaryKey().defaultRandom(),deviceId:te("device_id"),event:te("event").notNull(),command:te("command"),statusCode:Rs("status_code"),message:te("message"),cliVersion:te("cli_version"),os:te("os"),nodeVersion:te("node_version"),proxied:js("proxied"),props:Es("props").notNull().default({}),createdAt:ks("created_at",{withTimezone:!0}).notNull().defaultNow()},e=>[pn("idx_cli_error_events_created").on(e.createdAt),pn("idx_cli_error_events_device").on(e.deviceId,e.createdAt)]);import{sql as Ss}from"drizzle-orm";import{pgTable as oe,text as _,timestamp as v,jsonb as w,uuid as c,integer as P,boolean as Pe,index as N,unique as xn}from"drizzle-orm/pg-core";var n=oe("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:P("version").notNull().default(1),parentId:c("parent_id").references(()=>n.id,{onDelete:"set null"}),createdAt:v("created_at",{withTimezone:!0}).defaultNow(),updatedAt:v("updated_at",{withTimezone:!0}).defaultNow()},e=>[N("eval_targets_name_user_idx").on(e.name,e.userId),N("idx_eval_targets_user").on(e.userId),N("idx_eval_targets_type").on(e.type),N("idx_eval_targets_parent").on(e.parentId)]),C=oe("evals",{id:c("id").primaryKey().defaultRandom(),evalTargetId:c("eval_target_id").notNull().references(()=>n.id,{onDelete:"cascade"}),name:_("name").notNull(),prompt:_("prompt").notNull(),expectedOutput:_("expected_output").notNull().default(""),files:w("files").notNull().default([]),expectations:w("expectations").notNull().default([]),retiredAt:v("retired_at",{withTimezone:!0}),retiredReason:_("retired_reason"),createdAt:v("created_at",{withTimezone:!0}).defaultNow(),updatedAt:v("updated_at",{withTimezone:!0}).defaultNow(),contentUpdatedAt:v("content_updated_at",{withTimezone:!0}).notNull().defaultNow()},e=>[N("idx_evals_target").on(e.evalTargetId),N("idx_evals_target_active").on(e.evalTargetId).where(Ss`${e.retiredAt} IS NULL`)]),k=oe("eval_runs",{id:c("id").primaryKey().defaultRandom(),jobId:c("job_id"),evalId:c("eval_id").notNull().references(()=>C.id,{onDelete:"cascade"}),evalTargetId:c("eval_target_id").notNull().references(()=>n.id,{onDelete:"cascade"}),evalTargetVersion:P("eval_target_version").notNull(),configuration:_("configuration").notNull(),runNumber:P("run_number").notNull().default(1),iteration:P("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:v("created_at",{withTimezone:!0}).defaultNow()},e=>[N("idx_eval_runs_eval").on(e.evalId),N("idx_eval_runs_target").on(e.evalTargetId),N("idx_eval_runs_iteration").on(e.evalTargetId,e.iteration)]),Nn=oe("eval_comparisons",{id:c("id").primaryKey().defaultRandom(),userId:c("user_id").notNull(),targetAId:c("target_a_id").notNull().references(()=>n.id,{onDelete:"cascade"}),targetBId:c("target_b_id").notNull().references(()=>n.id,{onDelete:"cascade"}),targetAVersion:P("target_a_version").notNull(),targetBVersion:P("target_b_version").notNull(),isSwapped:Pe("is_swapped").notNull().default(!1),winnerTargetId:c("winner_target_id").references(()=>n.id,{onDelete:"set null"}),perEval:w("per_eval").notNull().default([]),overall:w("overall").notNull().default({}),rawOutput:_("raw_output"),model:_("model"),status:_("status").notNull().default("completed"),createdAt:v("created_at",{withTimezone:!0}).defaultNow()},e=>[N("idx_eval_comparisons_target_a").on(e.targetAId),N("idx_eval_comparisons_target_b").on(e.targetBId),N("idx_eval_comparisons_user").on(e.userId)]),gn=oe("eval_grade_annotations",{id:c("id").primaryKey().defaultRandom(),userId:c("user_id").notNull(),evalRunId:c("eval_run_id").notNull().references(()=>k.id,{onDelete:"cascade"}),evalTargetId:c("eval_target_id").notNull().references(()=>n.id,{onDelete:"cascade"}),expectationIndex:P("expectation_index").notNull(),expectationText:_("expectation_text").notNull(),judgePassed:Pe("judge_passed").notNull(),judgeMethod:_("judge_method").notNull(),judgeModel:_("judge_model"),verdict:_("verdict").notNull(),flag:_("flag"),note:_("note"),createdAt:v("created_at",{withTimezone:!0}).defaultNow(),updatedAt:v("updated_at",{withTimezone:!0}).defaultNow()},e=>[N("idx_eval_grade_annotations_target").on(e.evalTargetId),N("idx_eval_grade_annotations_run").on(e.evalRunId),xn("eval_grade_annotations_eval_run_id_expectation_index_key").on(e.evalRunId,e.expectationIndex)]),vn=oe("judge_reviewer_verdicts",{id:c("id").primaryKey().defaultRandom(),userId:c("user_id").notNull(),evalTargetId:c("eval_target_id").notNull().references(()=>n.id,{onDelete:"cascade"}),evalRunId:c("eval_run_id").notNull().references(()=>k.id,{onDelete:"cascade"}),expectationIndex:P("expectation_index").notNull(),expectationText:_("expectation_text").notNull(),judgePassed:Pe("judge_passed").notNull(),humanPassed:Pe("human_passed").notNull(),reviewerEngine:_("reviewer_engine").notNull(),reviewerModel:_("reviewer_model").notNull(),reviewerPassed:Pe("reviewer_passed").notNull(),resolvedAt:v("resolved_at",{withTimezone:!0}),resolution:_("resolution"),createdAt:v("created_at",{withTimezone:!0}).defaultNow(),updatedAt:v("updated_at",{withTimezone:!0}).defaultNow()},e=>[N("idx_jrv_target").on(e.evalTargetId),xn("judge_reviewer_verdicts_eval_run_id_expectation_index_review_key").on(e.evalRunId,e.expectationIndex,e.reviewerModel)]),Ne=oe("benchmarks",{id:c("id").primaryKey().defaultRandom(),evalTargetId:c("eval_target_id").notNull().references(()=>n.id,{onDelete:"cascade"}),iteration:P("iteration").notNull().default(1),runSummary:w("run_summary").notNull().default({}),notes:w("notes").notNull().default([]),feedback:w("feedback"),createdAt:v("created_at",{withTimezone:!0}).defaultNow()},e=>[N("idx_benchmarks_target").on(e.evalTargetId)]);import{sql as oo}from"drizzle-orm";import{pgTable as Ks,text as O,timestamp as Ps,jsonb as xt,uuid as Nt,boolean as Cs,index as Ce,uniqueIndex as Os}from"drizzle-orm/pg-core";var hn=Ks("instruction_promotions",{id:Nt("id").primaryKey().defaultRandom(),userId:Nt("user_id").notNull(),evalTargetId:Nt("eval_target_id").notNull().references(()=>n.id,{onDelete:"cascade"}),instructionId:Nt("instruction_id").references(()=>r.id,{onDelete:"set null"}),fromContentHash:O("from_content_hash").notNull(),toContentHash:O("to_content_hash").notNull(),fromContent:O("from_content").notNull(),toContent:O("to_content").notNull(),proposalSource:O("proposal_source").notNull(),proposalRationale:O("proposal_rationale").notNull().default(""),decision:O("decision").notNull(),applied:Cs("applied").notNull().default(!1),refusals:xt("refusals").notNull().default([]),rationale:O("rationale").notNull().default(""),effectClass:O("effect_class").notNull(),verdict:xt("verdict").notNull().default({}),gates:xt("gates").notNull().default({}),touchedSections:xt("touched_sections").notNull().default([]),createdAt:Ps("created_at",{withTimezone:!0}).notNull().defaultNow()},e=>[Ce("idx_instruction_promotions_budget").on(e.evalTargetId,e.createdAt.desc()).where(oo`${e.applied}`),Ce("idx_instruction_promotions_target").on(e.evalTargetId,e.createdAt.desc()),Ce("idx_instruction_promotions_user").on(e.userId,e.createdAt.desc()),Ce("idx_instruction_promotions_to_hash").on(e.toContentHash),Os("uq_instruction_promotions_applied").on(e.evalTargetId,e.fromContentHash,e.toContentHash).where(oo`${e.applied}`),Ce("idx_instruction_promotions_applied_hash").on(e.toContentHash,e.createdAt.desc()).where(oo`${e.applied}`)]);import{pgTable as yn,text as no,timestamp as ro,jsonb as Tn,uuid as ge,integer as Oe,index as gt,real as In}from"drizzle-orm/pg-core";var ve=yn("trigger_evals",{id:ge("id").primaryKey().defaultRandom(),evalTargetId:ge("eval_target_id").notNull().references(()=>n.id,{onDelete:"cascade"}),userId:ge("user_id").notNull(),queries:Tn("queries").notNull().default([]),status:no("status").notNull().default("pending_review"),trainIndices:Oe("train_indices").array().default([]),testIndices:Oe("test_indices").array().default([]),createdAt:ro("created_at",{withTimezone:!0}).defaultNow(),updatedAt:ro("updated_at",{withTimezone:!0}).defaultNow()},e=>[gt("idx_trigger_evals_target").on(e.evalTargetId),gt("idx_trigger_evals_user").on(e.userId)]),he=yn("optimization_runs",{id:ge("id").primaryKey().defaultRandom(),evalTargetId:ge("eval_target_id").notNull().references(()=>n.id,{onDelete:"cascade"}),userId:ge("user_id").notNull(),type:no("type").notNull(),iteration:Oe("iteration").notNull(),inputVersion:Oe("input_version").notNull(),outputVersion:Oe("output_version"),trainScore:In("train_score"),testScore:In("test_score"),analysis:Tn("analysis").notNull().default({}),status:no("status").notNull().default("running"),createdAt:ro("created_at",{withTimezone:!0}).defaultNow()},e=>[gt("idx_optimization_runs_target").on(e.evalTargetId),gt("idx_optimization_runs_user").on(e.userId)]);import{pgTable as qs,text as F,timestamp as Ms,jsonb as qe,uuid as so,integer as io,real as Ls,index as Me,uniqueIndex as wn}from"drizzle-orm/pg-core";var J=qs("context_snapshots",{id:so("id").primaryKey().defaultRandom(),sessionId:so("session_id").references(()=>d.id,{onDelete:"cascade"}),userId:so("user_id").notNull().references(()=>o.id,{onDelete:"cascade"}),sequence:io("sequence").notNull().default(0),provider:F("provider").notNull(),model:F("model").notNull(),systemPrompt:F("system_prompt").notNull(),injectedInstructions:qe("injected_instructions").notNull().default([]),messagesSummary:qe("messages_summary").notNull(),tools:qe("tools").notNull().default([]),systemHash:F("system_hash").notNull(),requestHash:F("request_hash").notNull().default(""),toolsHash:F("tools_hash"),injectedHash:F("injected_hash"),messagesDelta:qe("messages_delta").default([]),messagesDeltaRef:F("messages_delta_ref"),maxTokens:io("max_tokens"),temperature:Ls("temperature"),estimatedTokens:io("estimated_tokens"),capturedAt:Ms("captured_at",{withTimezone:!0}).notNull().defaultNow(),metadata:qe("metadata").default({})},e=>[Me("idx_context_snapshots_session").on(e.sessionId),Me("idx_context_snapshots_user").on(e.userId),Me("idx_context_snapshots_hash").on(e.systemHash),Me("idx_context_snapshots_request_hash").on(e.requestHash),wn("idx_snapshots_session_request").on(e.sessionId,e.requestHash),wn("idx_snapshots_session_sequence").on(e.sessionId,e.sequence),Me("idx_context_snapshots_user_session_captured").on(e.userId,e.sessionId,e.capturedAt.desc())]);import{pgTable as Us,text as An,timestamp as Bs,jsonb as Hs,integer as Vs,index as Gs}from"drizzle-orm/pg-core";var zn=Us("content_blobs",{hash:An("hash").primaryKey(),contentType:An("content_type").notNull(),content:Hs("content").notNull(),sizeBytes:Vs("size_bytes").notNull().default(0),createdAt:Bs("created_at",{withTimezone:!0}).defaultNow()},e=>[Gs("idx_content_blobs_type").on(e.contentType)]);import{pgTable as Fs,text as vt,timestamp as Le,jsonb as ht,uuid as ao,index as It,integer as Dn}from"drizzle-orm/pg-core";var Ie=Fs("eval_jobs",{id:ao("id").primaryKey().defaultRandom(),userId:ao("user_id").notNull(),evalTargetId:ao("eval_target_id").notNull().references(()=>n.id,{onDelete:"cascade"}),status:vt("status").notNull().default("pending"),config:ht("config").notNull().default({}),progress:ht("progress").notNull().default({}),result:ht("result"),error:vt("error"),attempts:Dn("attempts").notNull().default(0),taskKind:vt("task_kind"),payload:ht("payload"),claimedBy:vt("claimed_by"),claimedAt:Le("claimed_at",{withTimezone:!0}),leaseExpiresAt:Le("lease_expires_at",{withTimezone:!0}),leaseRecoveries:Dn("lease_recoveries").notNull().default(0),createdAt:Le("created_at",{withTimezone:!0}).defaultNow(),updatedAt:Le("updated_at",{withTimezone:!0}).defaultNow(),completedAt:Le("completed_at",{withTimezone:!0})},e=>[It("idx_eval_jobs_user").on(e.userId),It("idx_eval_jobs_target").on(e.evalTargetId),It("idx_eval_jobs_status").on(e.status),It("idx_eval_jobs_pending").on(e.userId,e.status)]);import{pgTable as Js,text as Ue,timestamp as Be,jsonb as Rn,uuid as jn,integer as kn,index as En}from"drizzle-orm/pg-core";var bn=Js("agent_jobs",{id:jn("id").primaryKey().defaultRandom(),userId:jn("user_id").notNull(),taskKind:Ue("task_kind").notNull(),status:Ue("status").notNull().default("pending"),payload:Rn("payload").notNull(),dedupeKey:Ue("dedupe_key"),result:Rn("result"),error:Ue("error"),attempts:kn("attempts").notNull().default(0),claimedBy:Ue("claimed_by"),claimedAt:Be("claimed_at",{withTimezone:!0}),leaseExpiresAt:Be("lease_expires_at",{withTimezone:!0}),leaseRecoveries:kn("lease_recoveries").notNull().default(0),createdAt:Be("created_at",{withTimezone:!0}).notNull().defaultNow(),updatedAt:Be("updated_at",{withTimezone:!0}).notNull().defaultNow(),completedAt:Be("completed_at",{withTimezone:!0})},e=>[En("idx_agent_jobs_claim").on(e.userId,e.status,e.taskKind,e.createdAt),En("idx_agent_jobs_dedupe").on(e.userId,e.taskKind,e.dedupeKey)]);import{pgTable as $s,text as He,timestamp as Ve,jsonb as yt,uuid as uo,index as Tt,integer as Sn}from"drizzle-orm/pg-core";var Kn=$s("insights_jobs",{id:uo("id").primaryKey().defaultRandom(),userId:uo("user_id").notNull(),status:He("status").notNull().default("pending"),projectPath:He("project_path"),projectId:uo("project_id").references(()=>s.id,{onDelete:"set null"}),config:yt("config").notNull().default({}),progress:yt("progress").notNull().default({}),result:yt("result"),error:He("error"),attempts:Sn("attempts").notNull().default(0),taskKind:He("task_kind"),payload:yt("payload"),claimedBy:He("claimed_by"),claimedAt:Ve("claimed_at",{withTimezone:!0}),leaseExpiresAt:Ve("lease_expires_at",{withTimezone:!0}),leaseRecoveries:Sn("lease_recoveries").notNull().default(0),createdAt:Ve("created_at",{withTimezone:!0}).defaultNow(),updatedAt:Ve("updated_at",{withTimezone:!0}).defaultNow(),completedAt:Ve("completed_at",{withTimezone:!0})},e=>[Tt("idx_insights_jobs_user").on(e.userId),Tt("idx_insights_jobs_status").on(e.status),Tt("idx_insights_jobs_pending").on(e.userId,e.status),Tt("idx_insights_jobs_project").on(e.projectId)]);import{pgTable as Ys,text as lo,timestamp as wt,uuid as Pn,index as Qs,uniqueIndex as Ws}from"drizzle-orm/pg-core";var ye=Ys("api_keys",{id:Pn("id").primaryKey().defaultRandom(),userId:Pn("user_id").notNull().references(()=>o.id,{onDelete:"cascade"}),name:lo("name").notNull(),keyHash:lo("key_hash").notNull(),keyPrefix:lo("key_prefix").notNull(),lastUsedAt:wt("last_used_at",{withTimezone:!0}),expiresAt:wt("expires_at",{withTimezone:!0}),revokedAt:wt("revoked_at",{withTimezone:!0}),createdAt:wt("created_at",{withTimezone:!0}).defaultNow()},e=>[Qs("idx_api_keys_user").on(e.userId),Ws("idx_api_keys_hash").on(e.keyHash)]);import{pgTable as Xs,text as co,timestamp as Cn,uuid as Zs,index as ei}from"drizzle-orm/pg-core";var On=Xs("extension_auth_codes",{code:co("code").primaryKey(),userId:Zs("user_id").notNull().references(()=>o.id,{onDelete:"cascade"}),editor:co("editor"),email:co("email"),expiresAt:Cn("expires_at",{withTimezone:!0}).notNull(),createdAt:Cn("created_at",{withTimezone:!0}).defaultNow()},e=>[ei("idx_ext_auth_codes_expiry").on(e.expiresAt)]);import{pgTable as ti,text as oi,timestamp as qn,jsonb as ni,uuid as _o,index as Mn}from"drizzle-orm/pg-core";var Te=ti("eval_conversations",{id:_o("id").primaryKey().defaultRandom(),evalTargetId:_o("eval_target_id").notNull().references(()=>n.id,{onDelete:"cascade"}),userId:_o("user_id").notNull(),messages:ni("messages").notNull().default([]),status:oi("status").notNull().default("active"),createdAt:qn("created_at",{withTimezone:!0}).defaultNow(),updatedAt:qn("updated_at",{withTimezone:!0}).defaultNow()},e=>[Mn("idx_eval_conversations_target").on(e.evalTargetId),Mn("idx_eval_conversations_user").on(e.userId)]);import{pgTable as ri,text as q,timestamp as Ln,jsonb as si,uuid as mo}from"drizzle-orm/pg-core";var Un=ri("skill_submissions",{id:mo("id").primaryKey().defaultRandom(),skillId:q("skill_id").notNull(),name:q("name").notNull(),description:q("description").notNull(),category:q("category").notNull(),tools:q("tools").array().notNull(),tags:q("tags").array().default([]),content:q("content").notNull(),status:q("status").notNull().default("pending"),submittedBy:mo("submitted_by").notNull(),reviewedBy:mo("reviewed_by"),reviewNote:q("review_note"),metadata:si("metadata"),createdAt:Ln("created_at",{withTimezone:!0}).defaultNow(),updatedAt:Ln("updated_at",{withTimezone:!0}).defaultNow()});import{pgTable as ii,text as Ge,timestamp as Bn,jsonb as ai,uuid as di,uniqueIndex as ui,index as Hn}from"drizzle-orm/pg-core";var Vn=ii("harness_releases",{id:di("id").primaryKey().defaultRandom(),harness:Ge("harness").notNull(),version:Ge("version").notNull(),publishedAt:Bn("published_at",{withTimezone:!0}).notNull(),title:Ge("title"),body:Ge("body"),categories:ai("categories").default({}),url:Ge("url"),createdAt:Bn("created_at",{withTimezone:!0}).defaultNow()},e=>[ui("idx_harness_releases_unique").on(e.harness,e.version),Hn("idx_harness_releases_harness").on(e.harness),Hn("idx_harness_releases_published").on(e.publishedAt)]);import{pgTable as li,text as we,timestamp as Gn,jsonb as ci,uuid as Fn,index as Jn,uniqueIndex as _i}from"drizzle-orm/pg-core";var po=li("notifications",{id:Fn("id").primaryKey().defaultRandom(),userId:Fn("user_id").notNull(),type:we("type").notNull(),title:we("title").notNull(),body:we("body"),url:we("url"),sourceTable:we("source_table"),sourceId:we("source_id"),metadata:ci("metadata").notNull().default({}),readAt:Gn("read_at",{withTimezone:!0}),createdAt:Gn("created_at",{withTimezone:!0}).notNull().defaultNow()},e=>[Jn("idx_notifications_user_created").on(e.userId,e.createdAt),Jn("idx_notifications_user_unread").on(e.userId),_i("idx_notifications_source_dedup").on(e.userId,e.sourceTable,e.sourceId)]);import{pgTable as mi,text as Fe,timestamp as Je,jsonb as fo,uuid as xo,index as At,integer as $n}from"drizzle-orm/pg-core";var Ae=mi("launch_jobs",{id:xo("id").primaryKey().defaultRandom(),userId:xo("user_id").notNull(),tool:Fe("tool").notNull(),status:Fe("status").notNull().default("pending"),config:fo("config").notNull().default({}),result:fo("result"),error:Fe("error"),attempts:$n("attempts").notNull().default(0),taskKind:Fe("task_kind"),payload:fo("payload"),claimedBy:Fe("claimed_by"),claimedAt:Je("claimed_at",{withTimezone:!0}),leaseExpiresAt:Je("lease_expires_at",{withTimezone:!0}),leaseRecoveries:$n("lease_recoveries").notNull().default(0),createdAt:Je("created_at",{withTimezone:!0}).defaultNow(),updatedAt:Je("updated_at",{withTimezone:!0}).defaultNow(),completedAt:Je("completed_at",{withTimezone:!0}),runId:xo("run_id").references(()=>g.id,{onDelete:"set null"})},e=>[At("idx_launch_jobs_user").on(e.userId),At("idx_launch_jobs_status").on(e.status),At("idx_launch_jobs_pending").on(e.userId,e.status),At("idx_launch_jobs_run").on(e.runId)]);import{pgTable as Yn,uuid as M,text as ze,real as pi,timestamp as zt,boolean as fi,uniqueIndex as xi,index as $e}from"drizzle-orm/pg-core";var Qn=["add","remove","trim"],No=Yn("instruction_suggestions",{id:M("id").primaryKey().defaultRandom(),userId:M("user_id").notNull().references(()=>o.id,{onDelete:"cascade"}),instructionId:M("instruction_id").notNull().references(()=>r.id,{onDelete:"cascade"}),projectPath:ze("project_path").notNull(),projectId:M("project_id").references(()=>s.id,{onDelete:"set null"}),score:pi("score").notNull(),reason:ze("reason").notNull(),kind:ze("kind").$type().notNull().default("add"),generatedAt:zt("generated_at",{withTimezone:!0}).notNull().defaultNow(),isStale:fi("is_stale").notNull().default(!1),dismissedAt:zt("dismissed_at",{withTimezone:!0}),acceptedAt:zt("accepted_at",{withTimezone:!0}),promotedToInstructionId:M("promoted_to_instruction_id").references(()=>r.id,{onDelete:"set null"})},e=>[xi("idx_instruction_suggestions_user_project_instruction_kind").on(e.userId,e.projectPath,e.instructionId,e.kind),$e("idx_instruction_suggestions_user_project").on(e.userId,e.projectPath),$e("idx_instruction_suggestions_user_proj_id").on(e.userId,e.projectId),$e("idx_instruction_suggestions_generated_at").on(e.generatedAt)]),Wn=Yn("instruction_suggestion_events",{id:M("id").primaryKey().defaultRandom(),suggestionId:M("suggestion_id").notNull().references(()=>No.id,{onDelete:"cascade"}),userId:M("user_id").notNull().references(()=>o.id,{onDelete:"cascade"}),eventType:ze("event_type").notNull(),tool:ze("tool"),sessionId:M("session_id"),projectPath:ze("project_path").notNull(),createdAt:zt("created_at",{withTimezone:!0}).notNull().defaultNow()},e=>[$e("idx_instruction_suggestion_events_suggestion_id").on(e.suggestionId),$e("idx_instruction_suggestion_events_user_id").on(e.userId)]);import{pgTable as Ni,text as go,integer as gi,numeric as Ye,timestamp as vo,index as vi,primaryKey as hi}from"drizzle-orm/pg-core";var Xn=Ni("model_pricing",{provider:go("provider").notNull(),modelId:go("model_id").notNull(),inputPerM:Ye("input_per_m").notNull(),outputPerM:Ye("output_per_m").notNull(),cacheReadPerM:Ye("cache_read_per_m").notNull(),cacheWrite5mPerM:Ye("cache_write_5m_per_m").notNull(),cacheWrite1hPerM:Ye("cache_write_1h_per_m").notNull(),contextWindow:gi("context_window"),effectiveFrom:vo("effective_from",{withTimezone:!0}).notNull(),effectiveUntil:vo("effective_until",{withTimezone:!0}),source:go("source").notNull(),verifiedAt:vo("verified_at",{withTimezone:!0})},e=>[hi({columns:[e.provider,e.modelId,e.effectiveFrom]}),vi("idx_model_pricing_active").on(e.provider,e.modelId,e.effectiveFrom.desc())]);import{pgTable as Ii,text as ne,numeric as Zn,timestamp as er,uuid as tr,jsonb as yi,index as or}from"drizzle-orm/pg-core";var nr=Ii("limit_observations",{id:tr("id").primaryKey().defaultRandom(),observedAt:er("observed_at",{withTimezone:!0}).notNull().defaultNow(),provider:ne("provider").notNull(),plan:ne("plan").notNull(),limitType:ne("limit_type").notNull(),value:Zn("value").notNull(),unit:ne("unit").notNull(),comparator:ne("comparator").notNull().default("="),resetsAt:er("resets_at",{withTimezone:!0}),sourceType:ne("source_type").notNull(),sourceUrl:ne("source_url"),sourceEvidence:yi("source_evidence"),confidence:Zn("confidence").notNull(),userId:tr("user_id")},e=>[or("idx_limit_obs_lookup").on(e.provider,e.plan,e.limitType,e.observedAt.desc()),or("idx_limit_obs_user").on(e.userId,e.observedAt.desc())]);import{pgTable as Ti,text as Dt,timestamp as wi,uuid as Ai,jsonb as zi,boolean as Di,uniqueIndex as Ri}from"drizzle-orm/pg-core";var rr=Ti("provider_docs_snapshots",{id:Ai("id").primaryKey().defaultRandom(),fetchedAt:wi("fetched_at",{withTimezone:!0}).notNull().defaultNow(),provider:Dt("provider").notNull(),docUrl:Dt("doc_url").notNull(),contentHash:Dt("content_hash").notNull(),content:Dt("content").notNull(),parseSuccess:Di("parse_success").notNull(),parseErrors:zi("parse_errors")},e=>[Ri("idx_docs_dedup").on(e.provider,e.docUrl,e.contentHash)]);import{pgTable as ji,text as Rt,numeric as sr,timestamp as ir,uuid as ki,primaryKey as Ei,index as bi}from"drizzle-orm/pg-core";var ar=ji("plan_limits_active",{provider:Rt("provider").notNull(),plan:Rt("plan").notNull(),limitType:Rt("limit_type").notNull(),value:sr("value").notNull(),unit:Rt("unit").notNull(),effectiveFrom:ir("effective_from",{withTimezone:!0}).notNull(),effectiveUntil:ir("effective_until",{withTimezone:!0}),confidence:sr("confidence").notNull(),sourceObservationIds:ki("source_observation_ids").array().notNull()},e=>[Ei({columns:[e.provider,e.plan,e.limitType,e.effectiveFrom]}),bi("idx_plan_limits_lookup").on(e.provider,e.plan,e.limitType,e.effectiveFrom.desc())]);import{pgTable as Si,text as ho,timestamp as Ki,uuid as dr,jsonb as Pi,index as Ci}from"drizzle-orm/pg-core";var ur=Si("alert_dispatches",{id:dr("id").primaryKey().defaultRandom(),userId:dr("user_id").notNull(),alertKey:ho("alert_key").notNull(),severity:ho("severity").notNull(),lastDispatchedAt:Ki("last_dispatched_at",{withTimezone:!0}).notNull().defaultNow(),lastState:Pi("last_state").notNull(),channel:ho("channel").notNull()},e=>[Ci("idx_alert_user_key").on(e.userId,e.alertKey,e.lastDispatchedAt.desc())]);import{pgTable as Oi,text as Io,timestamp as lr,uuid as yo,integer as qi,index as Mi,unique as Li}from"drizzle-orm/pg-core";var cr=Oi("scaffolding_fingerprints",{id:yo("id").primaryKey().defaultRandom(),userId:yo("user_id").notNull(),harness:Io("harness").notNull(),model:Io("model").notNull(),toolsHash:Io("tools_hash").notNull(),firstSeenAt:lr("first_seen_at",{withTimezone:!0}).notNull().defaultNow(),lastSeenAt:lr("last_seen_at",{withTimezone:!0}).notNull().defaultNow(),snapshotCount:qi("snapshot_count").notNull().default(1),firstSessionId:yo("first_session_id")},e=>[Li("scaffolding_fingerprints_user_id_harness_model_tools_hash_key").on(e.userId,e.harness,e.model,e.toolsHash),Mi("idx_scaffolding_fp_segment").on(e.userId,e.harness,e.model)]);import{pgTable as Ui,text as To,timestamp as Bi,jsonb as Hi,uuid as _r,integer as Vi,unique as Gi}from"drizzle-orm/pg-core";var mr=Ui("scaffolding_segments",{id:_r("id").primaryKey().defaultRandom(),userId:_r("user_id").notNull(),harness:To("harness").notNull(),model:To("model").notNull(),coreNames:Hi("core_names").notNull(),coreHash:To("core_hash").notNull(),activeFingerprints:Vi("active_fingerprints").notNull(),computedAt:Bi("computed_at",{withTimezone:!0}).notNull().defaultNow()},e=>[Gi("scaffolding_segments_user_id_harness_model_key").on(e.userId,e.harness,e.model)]);import{drizzle as gr}from"drizzle-orm/postgres-js";import vr from"postgres";var jt={};Or(jt,{SUGGESTION_KINDS:()=>Qn,agentJobs:()=>bn,agentRuns:()=>g,agentRunsRelations:()=>ia,alertDispatches:()=>ur,announcementDeliveries:()=>bo,announcements:()=>Eo,apiKeys:()=>ye,apiKeysRelations:()=>Ji,benchmarks:()=>Ne,benchmarksRelations:()=>ga,cliErrorEvents:()=>fn,cliSetupEvents:()=>mn,contentBlobs:()=>zn,contextSnapshots:()=>J,contextSnapshotsRelations:()=>Ta,evalComparisons:()=>Nn,evalConversations:()=>Te,evalConversationsRelations:()=>ya,evalGradeAnnotations:()=>gn,evalJobs:()=>Ie,evalJobsRelations:()=>Ia,evalRuns:()=>k,evalRunsRelations:()=>Na,evalTargets:()=>n,evalTargetsRelations:()=>fa,evals:()=>C,evalsRelations:()=>xa,extensionAuthCodes:()=>On,harnessReleases:()=>Vn,insightsJobs:()=>Kn,instructionEvents:()=>ue,instructionEventsRelations:()=>ea,instructionPromotions:()=>hn,instructionSuggestionEvents:()=>Wn,instructionSuggestions:()=>No,instructionUsageEvents:()=>xe,instructionUsageEventsRelations:()=>pa,instructionVersionIdentities:()=>Mo,instructionVersions:()=>de,instructionVersionsRelations:()=>oa,instructions:()=>r,instructionsRelations:()=>Zi,judgeReviewerVerdicts:()=>vn,launchJobs:()=>Ae,launchJobsRelations:()=>aa,limitObservations:()=>nr,memories:()=>T,memoriesRelations:()=>ta,memoryExperiments:()=>Zo,modelPricing:()=>Xn,notificationPreferences:()=>So,notifications:()=>po,optimizationRuns:()=>he,optimizationRunsRelations:()=>ha,orgInvitations:()=>E,orgInvitationsRelations:()=>Qi,organizations:()=>u,organizationsRelations:()=>$i,packInstructions:()=>G,packInstructionsRelations:()=>ma,packs:()=>z,packsRelations:()=>_a,pendingTreatmentExposures:()=>Yo,planLimitsActive:()=>ar,profiles:()=>o,profilesRelations:()=>Fi,projectCheckouts:()=>Bo,projectInstructions:()=>B,projectInstructionsRelations:()=>ra,projects:()=>s,projectsRelations:()=>na,providerDocsSnapshots:()=>rr,scaffoldingFingerprints:()=>cr,scaffoldingSegments:()=>mr,sessionEvents:()=>ce,sessionEventsRelations:()=>da,sessionInstructions:()=>H,sessionInstructionsRelations:()=>ua,sessionSendJobs:()=>nn,sessionTerminalTargets:()=>lt,sessions:()=>d,sessionsRelations:()=>sa,skillSubmissions:()=>Un,teams:()=>h,teamsRelations:()=>Yi,treatmentAssignments:()=>S,treatmentAssignmentsRelations:()=>la,treatmentExposures:()=>K,treatmentExposuresRelations:()=>ca,triggerEvals:()=>ve,triggerEvalsRelations:()=>va,userOrganizations:()=>ie,userOrganizationsRelations:()=>Wi,userTeams:()=>ae,userTeamsRelations:()=>Xi,workerConnections:()=>ln});import{relations as i}from"drizzle-orm";var Fi=i(o,({many:e})=>({sessions:e(d),contextSnapshots:e(J),apiKeys:e(ye)})),Ji=i(ye,({one:e})=>({profile:e(o,{fields:[ye.userId],references:[o.id]})})),$i=i(u,({many:e})=>({teams:e(h),userOrganizations:e(ie),projects:e(s),invitations:e(E)})),Yi=i(h,({one:e,many:t})=>({organization:e(u,{fields:[h.orgId],references:[u.id]}),userTeams:t(ae),invitations:t(E)})),Qi=i(E,({one:e})=>({organization:e(u,{fields:[E.orgId],references:[u.id]}),team:e(h,{fields:[E.teamId],references:[h.id]}),inviter:e(o,{fields:[E.invitedBy],references:[o.id]})})),Wi=i(ie,({one:e})=>({organization:e(u,{fields:[ie.orgId],references:[u.id]})})),Xi=i(ae,({one:e})=>({team:e(h,{fields:[ae.teamId],references:[h.id]})})),Zi=i(r,({one:e,many:t})=>({versions:t(de),projectInstructions:t(B),events:t(ue),usageEvents:t(xe),sessionInstructions:t(H),packInstructions:t(G),forkedFrom:e(r,{fields:[r.forkedFromId],references:[r.id]})})),ea=i(ue,({one:e})=>({instruction:e(r,{fields:[ue.instructionId],references:[r.id]})})),ta=i(T,({one:e,many:t})=>({project:e(s,{fields:[T.projectId],references:[s.id]}),parent:e(T,{fields:[T.parentId],references:[T.id]}),versions:t(T)})),oa=i(de,({one:e})=>({instruction:e(r,{fields:[de.instructionId],references:[r.id]})})),na=i(s,({one:e,many:t})=>({organization:e(u,{fields:[s.orgId],references:[u.id]}),projectInstructions:t(B),sessions:t(d)})),ra=i(B,({one:e})=>({project:e(s,{fields:[B.projectId],references:[s.id]}),instruction:e(r,{fields:[B.instructionId],references:[r.id]})})),sa=i(d,({one:e,many:t})=>({profile:e(o,{fields:[d.userId],references:[o.id]}),project:e(s,{fields:[d.projectId],references:[s.id]}),run:e(g,{fields:[d.runId],references:[g.id]}),events:t(ce),sessionInstructions:t(H),treatmentExposures:t(K),contextSnapshots:t(J)})),ia=i(g,({one:e,many:t})=>({profile:e(o,{fields:[g.userId],references:[o.id]}),organization:e(u,{fields:[g.orgId],references:[u.id]}),project:e(s,{fields:[g.projectId],references:[s.id]}),sessions:t(d),launchJobs:t(Ae)})),aa=i(Ae,({one:e})=>({run:e(g,{fields:[Ae.runId],references:[g.id]})})),da=i(ce,({one:e})=>({session:e(d,{fields:[ce.sessionId],references:[d.id]})})),ua=i(H,({one:e})=>({session:e(d,{fields:[H.sessionId],references:[d.id]}),instruction:e(r,{fields:[H.instructionId],references:[r.id]})})),la=i(S,({one:e,many:t})=>({owner:e(o,{fields:[S.userId],references:[o.id]}),project:e(s,{fields:[S.projectId],references:[s.id]}),exposures:t(K)})),ca=i(K,({one:e})=>({session:e(d,{fields:[K.sessionId],references:[d.id]}),owner:e(o,{fields:[K.userId],references:[o.id]}),assignment:e(S,{fields:[K.assignmentId],references:[S.id]})})),_a=i(z,({one:e,many:t})=>({packInstructions:t(G),forkedFrom:e(z,{fields:[z.forkedFromId],references:[z.id]})})),ma=i(G,({one:e})=>({pack:e(z,{fields:[G.packId],references:[z.id]}),instruction:e(r,{fields:[G.instructionId],references:[r.id]})})),pa=i(xe,({one:e})=>({instruction:e(r,{fields:[xe.instructionId],references:[r.id]})})),fa=i(n,({one:e,many:t})=>({parent:e(n,{fields:[n.parentId],references:[n.id]}),evals:t(C),evalRuns:t(k),benchmarks:t(Ne),triggerEvals:t(ve),optimizationRuns:t(he),evalJobs:t(Ie),evalConversations:t(Te)})),xa=i(C,({one:e,many:t})=>({evalTarget:e(n,{fields:[C.evalTargetId],references:[n.id]}),runs:t(k)})),Na=i(k,({one:e})=>({eval:e(C,{fields:[k.evalId],references:[C.id]}),evalTarget:e(n,{fields:[k.evalTargetId],references:[n.id]})})),ga=i(Ne,({one:e})=>({evalTarget:e(n,{fields:[Ne.evalTargetId],references:[n.id]})})),va=i(ve,({one:e})=>({evalTarget:e(n,{fields:[ve.evalTargetId],references:[n.id]})})),ha=i(he,({one:e})=>({evalTarget:e(n,{fields:[he.evalTargetId],references:[n.id]})})),Ia=i(Ie,({one:e})=>({evalTarget:e(n,{fields:[Ie.evalTargetId],references:[n.id]})})),ya=i(Te,({one:e})=>({evalTarget:e(n,{fields:[Te.evalTargetId],references:[n.id]})})),Ta=i(J,({one:e})=>({session:e(d,{fields:[J.sessionId],references:[d.id]}),profile:e(o,{fields:[J.userId],references:[o.id]})}));var Qe=0,pr=0,We=0,fr=0;var wa=0;function wo(){Qe++,Qe>pr&&(pr=Qe)}p(wo,"trackDbOpStart");function Ao(){Qe>0&&Qe--}p(Ao,"trackDbOpEnd");function zo(){We++,We>fr&&(fr=We)}p(zo,"trackHeavyDbOpStart");function Do(){We>0&&We--}p(Do,"trackHeavyDbOpEnd");function xr(){wa++}p(xr,"recordQueryDeadline");var Et,St,Ro=!1,kt;var Nr,Kt,bt;function hr(e){let t=process.env[e];if(!t)throw new Error(`Missing required env var: ${e}`);return t}p(hr,"getEnv");function Ir(){if(Ro)throw new Error("getDb() called after closeDb(): the connection pool is closed for shutdown. Stop issuing queries (timers/requests) before draining the pool.");if(!Et){let e=process.env.PG_APPLICATION_NAME||"rulemetric",t=Number(process.env.PG_POOL_MAX)||3,a=Number(process.env.PG_CONNECT_TIMEOUT_S)||10,l=Number(process.env.PG_STATEMENT_TIMEOUT_MS)||0,m=Number(process.env.PG_IDLE_TIMEOUT)||5,f=Number(process.env.PG_KEEP_ALIVE_S)||60;St=vr(hr("DATABASE_URL"),{prepare:!1,max:t,connect_timeout:a,idle_timeout:m,keep_alive:f,max_lifetime:300,connection:{application_name:e,...l>0?{statement_timeout:l}:{}}}),Et=gr(St,{schema:jt})}return Et}p(Ir,"getDb");function yr(){if(Ro)throw new Error("getHeavyDb() called after closeDb(): the connection pool is closed for shutdown. Stop issuing queries (timers/requests) before draining the pool.");if(!bt){let e=(process.env.PG_APPLICATION_NAME||"rulemetric")+":heavy",t=Number(process.env.PG_HEAVY_POOL_MAX)||2;Kt=vr(hr("DATABASE_URL"),{prepare:!1,max:t,connect_timeout:Number(process.env.PG_CONNECT_TIMEOUT_S)||10,idle_timeout:Number(process.env.PG_IDLE_TIMEOUT)||5,keep_alive:Number(process.env.PG_KEEP_ALIVE_S)||60,max_lifetime:300,connection:{application_name:e}}),bt=gr(Kt,{schema:jt})}return bt}p(yr,"getHeavyDb");async function Aa(){if(kt)return kt;Ro=!0;let e=St,t=Nr,a=Kt;return St=void 0,Et=void 0,Nr=void 0,Kt=void 0,bt=void 0,kt=Promise.allSettled([e?e.end({timeout:5}):Promise.resolve(),t?t.end({timeout:5}):Promise.resolve(),a?a.end({timeout:5}):Promise.resolve()]).then(()=>{}),kt}p(Aa,"closeDb");var za=new Set(["CONNECT_TIMEOUT","ETIMEDOUT","ENOTFOUND","ECONNREFUSED","EAI_AGAIN"]);function Tr(e){let t=e,a=t?.code??t?.cause?.code??t?.errno;return a!==void 0&&za.has(a)}p(Tr,"isRetryableConnectError");var Da=new Set(["CONNECTION_CLOSED","ECONNRESET","EPIPE"]);function wr(e){let t=e,a=t?.code??t?.cause?.code??t?.errno;return a!==void 0&&Da.has(a)}p(wr,"isRetryableResetError");async function Ar(e,t={}){let a=t.attempts??3,l=t.baseMs??100,m;for(let f=0;f<a;f++)try{return await e()}catch(y){m=y;let De=Tr(y)||t.retryResets===!0&&wr(y);if(f===a-1||!De)throw y;await new Promise($=>setTimeout($,l*2**f))}throw m}p(Ar,"withDbRetry");var Pt=class extends Error{static{p(this,"QueryDeadlineError")}code="QUERY_DEADLINE";constructor(t){super(`Query exceeded the client-side deadline of ${t}ms \u2014 the DB pool is likely saturated (acquire-wait) or holding a dead socket; failing fast to avoid pinning the caller. See client.ts.`),this.name="QueryDeadlineError"}};function zr(){let e=Number(process.env.PG_QUERY_DEADLINE_MS);return Number.isFinite(e)&&e>=0?e:2e4}p(zr,"queryDeadlineMs");function Ra(e,t){let a,l=new Promise((m,f)=>{a=setTimeout(()=>{xr(),f(new Pt(t))},t);let y=a;typeof y.unref=="function"&&y.unref()});return Promise.race([e,l]).finally(()=>clearTimeout(a))}p(Ra,"raceWithDeadline");var Dr=new Set(["select","selectDistinct","selectDistinctOn","insert","update","delete","execute","with","$count","refreshMaterializedView"]),Rr=new Set(["select","selectDistinct","selectDistinctOn","$count"]);function jo(e,t=!1,a=0,l=!1){return e===null||typeof e!="object"&&typeof e!="function"?e:new Proxy(e,{get(m,f,y){if(f==="then"){let $=Reflect.get(m,f,y);return typeof $!="function"?$:(Er,br)=>{let Sr=l?zo:wo,Kr=l?Do:Ao;Sr();let ko=Ar(()=>new Promise((Pr,Cr)=>$.call(m,Pr,Cr)),{retryResets:t});return(a>0?Ra(ko,a):ko).finally(Kr).then(Er,br)}}let De=Reflect.get(m,f,y);return typeof De=="function"?(...$)=>jo(De.apply(m,$),t,a,l):De}})}p(jo,"wrapBuilder");function jr(e,t=!1){let a=t?zo:wo,l=t?Do:Ao;a();try{return Promise.resolve(e()).finally(l)}catch(m){throw l(),m}}p(jr,"gaugeTransaction");var kr=new Proxy({},{get(e,t){let a=Ir(),l=a[t];if(typeof t=="string"&&Dr.has(t)&&typeof l=="function"){let m=Rr.has(t),f=zr();return(...y)=>jo(l.apply(a,y),m,f)}return t==="transaction"&&typeof l=="function"?(...m)=>jr(()=>l.apply(a,m)):l}}),ja=new Proxy({},{get(e,t){let a=yr(),l=a[t];if(typeof t=="string"&&Dr.has(t)&&typeof l=="function"){let m=Rr.has(t);return(...f)=>jo(l.apply(a,f),m,0,!0)}return t==="transaction"&&typeof l=="function"?(...m)=>jr(()=>l.apply(a,m),!0):l}});export{Eo as a,Ir as b,Aa as c};
|
package/dist/chunk-O7PSLZO6.js
DELETED
|
@@ -1,15 +0,0 @@
|
|
|
1
|
-
import{a as S,b as z,c as T}from"./chunk-QFVGUZDO.js";import{a as O}from"./chunk-5R5RGKOW.js";import{a as j}from"./chunk-5RBLIVBF.js";import{c as A,d as C,f as b}from"./chunk-B3BHB26P.js";import{e as _,f as I,h as u}from"./chunk-KLEF5D3A.js";import{a as $}from"./chunk-ZLLER3HP.js";async function D(f,m){let{mirrorId:o,projectPath:s,projectId:i,config:p}=f,e=$(n=>m.logger.info(n),"log");if(p?.sessionId)return M({mirrorId:o,sessionId:p.sessionId},e);e(`Processing insights job ${o}...`),await u(`/api/insights-jobs/${o}/progress`,{status:"running",progress:{step:"reading_data"}});try{let{repaired:n}=await I("/api/sessions/repair-analyzed-at",{});n>0&&e(` Repaired analyzed_at on ${n} orphan session(s).`)}catch(n){e(` Warning: analyzed_at repair failed: ${n instanceof Error?n.message:String(n)}`)}let a=await J(s,i);if(!a)throw new j("No session data found \u2014 ensure sessions are captured and enriched.");e(` Found ${a.stats.sessions} sessions, generating recommendations...`);let w=20,c=200;if(C()!=="none"){let n=0,t=0;try{for(;n<c;){let l=await _(`/api/sessions?hasAnalysis=false&limit=${w}&offset=${t}`);if(l.length===0)break;e(` Generating facets for ${l.length} un-analyzed sessions (drained ${n} so far)...`);for(let g of l){if(n>=c)break;try{let d=await _(`/api/sessions/${g.id}/events?limit=100`);if(d.length<2){n++,t++;continue}let P=d.filter(h=>h.eventType==="user_message"||h.eventType==="human").map(h=>h.content?.slice(0,200)??"").filter(Boolean).join(`
|
|
2
|
-
---
|
|
3
|
-
`);if(!P){n++,t++;continue}let E=await b(T,P,4096);if(E){let h=d.filter(R=>R.eventType==="user_message"||R.eventType==="human").length;await u(`/api/sessions/${g.id}/enrich`,{analysis:{source:"generated_facets",...E},analyzedEventCount:d.length,analyzedTurnCount:h}),e(` Generated facets for session ${g.id} (${g.tool})`)}else t++;n++}catch(d){e(` Failed to generate facets for session ${g.id}: ${d instanceof Error?d.message:String(d)}`),n++,t++}}if(l.length<w)break}}catch(l){e(` Warning: facet generation failed after ${n} sessions: ${l instanceof Error?l.message:String(l)}`)}}let r={},y=S.length+1;for(let n=0;n<S.length;n++){let t=S[n];e(` [${n+1}/${y}] Generating ${t.name}...`);try{await u(`/api/insights-jobs/${o}/progress`,{status:"running",progress:{step:t.name,current:n+1,total:y,partial:{...r}}})}catch(g){e(` Warning: progress update failed for ${t.name}: ${g instanceof Error?g.message:String(g)}`)}e(` Running LLM prompt for ${t.name}...`);let l=await b(t.prompt,a.summary,t.maxTokens);l?(r[t.name]=l,e(` Got result for ${t.name}`)):e(` No result for ${t.name} (LLM returned null)`)}e(` [${y}/${y}] Generating at_a_glance...`),await u(`/api/insights-jobs/${o}/progress`,{status:"running",progress:{step:"at_a_glance",current:y,total:y,partial:{...r}}});let N=[a.summary,r.what_works?`
|
|
4
|
-
## What Works
|
|
5
|
-
${JSON.stringify(r.what_works)}`:"",r.friction_analysis?`
|
|
6
|
-
## Friction
|
|
7
|
-
${JSON.stringify(r.friction_analysis)}`:"",r.suggestions?`
|
|
8
|
-
## Suggestions
|
|
9
|
-
${JSON.stringify(r.suggestions)}`:"",r.on_the_horizon?`
|
|
10
|
-
## On the Horizon
|
|
11
|
-
${JSON.stringify(r.on_the_horizon)}`:""].join(`
|
|
12
|
-
`),k=await b(z,N,8192);k&&(r.at_a_glance=k),e(" Uploading results..."),e(` Done! Recommendations generated for job ${o}`),O(r);let v={recommendations:r};return await u(`/api/insights-jobs/${o}/state`,{result:v}).catch(n=>{e(`result persist failed: ${n instanceof Error?n.message:String(n)}`)}),v}$(D,"processInsights");async function M(f,m){let{mirrorId:o,sessionId:s}=f;m(`Analyzing session ${s} via tool CLI...`),await u(`/api/insights-jobs/${o}/progress`,{status:"running",progress:{step:"fetching_session"}});let i=await _(`/api/sessions/${s}`);if(i.analysis&&i.analysis.source==="session_analysis")return m(` Session ${s} already analyzed \u2014 skipping (idempotency guard)`),{sessionId:s,skipped:!0,reason:"already_analyzed"};let p=await _(`/api/sessions/${s}/events?limit=100`);if(p.length<2)throw new j("Session has too few events to analyze");let e=p.filter(c=>c.eventType==="user_message"||c.eventType==="human").map(c=>c.content?.slice(0,200)??"").filter(Boolean).join(`
|
|
13
|
-
---
|
|
14
|
-
`);if(!e)throw new j("No user messages found in session");await u(`/api/insights-jobs/${o}/progress`,{status:"running",progress:{step:"running_analysis",tool:i.tool}});let a=await A(i.tool,T,e);if(!a)throw new Error(`Analysis failed \u2014 ${i.tool} CLI returned no result`);let w=p.filter(c=>c.eventType==="user_message"||c.eventType==="human").length;return await u(`/api/sessions/${s}/enrich`,{analysis:{source:"session_analysis",tool:i.tool,...a},analyzedEventCount:p.length,analyzedTurnCount:w}),m(` Session ${s} analyzed via ${i.tool}`),{sessionId:s,tool:i.tool,facets:a}}$(M,"processSessionAnalysisInline");async function J(f,m){try{let o=new URLSearchParams;m?o.set("projectId",m):f&&o.set("projectPath",f);let s=await _(`/api/insights/compute?${o}`);if(!s||s.total_sessions===0)return null;let i=Object.entries(s.tool_counts??{}).sort((e,a)=>a[1]-e[1]).slice(0,10).map(([e,a])=>`${e}: ${a}`).join(", ");return{summary:[`Sessions: ${s.total_sessions}, Messages: ${s.total_messages}, Hours: ${Math.round(s.total_duration_hours)}`,`Top tools: ${i}`,s.goal_categories&&Object.keys(s.goal_categories).length>0?`Goals: ${JSON.stringify(s.goal_categories)}`:"",s.friction&&Object.keys(s.friction).length>0?`Friction: ${JSON.stringify(s.friction)}`:"",s.outcomes&&Object.keys(s.outcomes).length>0?`Outcomes: ${JSON.stringify(s.outcomes)}`:"",s.projects&&Object.keys(s.projects).length>0?`Projects: ${JSON.stringify(s.projects)}`:""].filter(Boolean).join(`
|
|
15
|
-
`),stats:{sessions:s.total_sessions,totalMessages:s.total_messages,totalHours:s.total_duration_hours,toolCounts:s.tool_counts,goalCounts:s.goal_categories,frictionCounts:s.friction}}}catch{return null}}$(J,"buildDataSummaryFromApi");export{D as a};
|
package/dist/chunk-RMDLJN4L.js
DELETED
|
@@ -1,8 +0,0 @@
|
|
|
1
|
-
import{g as p}from"./chunk-B3BHB26P.js";import{a as s}from"./chunk-ZLLER3HP.js";var f="<RATIONALE>",g="</RATIONALE>",a="<PROPOSED_INSTRUCTION>",l="</PROPOSED_INSTRUCTION>",c=.5,u=3;function m(e){let t=e.immutableSections.length>0?e.immutableSections.map(n=>` - ${n}`).join(`
|
|
2
|
-
`):" (none)";return["You are improving an AI coding assistant instruction file so that it scores","better on a fixed set of evaluation cases.","",`The file is a ${e.targetType} named "${e.targetName}".`,"","RULES","1. Return the COMPLETE new file, not a diff, not a patch, not a summary,"," and not an excerpt. Everything you omit will be DELETED from the file.","2. Preserve everything you are not deliberately changing, byte for byte.","3. Make a focused edit. You are one step in a measured loop: a small change"," that can be attributed beats a rewrite that cannot.","4. Do not edit these sections or anything nested under them \u2014 an edit that"," touches them is refused downstream and the whole proposal is wasted:",t,"5. Do not add meta-commentary about the evaluation, the loop, or this"," prompt to the file. The file is read by other agents as instructions.","","OUTPUT FORMAT \u2014 exactly this, with no text before or after:",f,"One or two sentences: what you changed and which evidence motivated it.",g,a,"The complete new file content.",l].join(`
|
|
3
|
-
`)}s(m,"buildProposerSystemPrompt");function d(e){let t=e.evidence,n=["## CURRENT FILE CONTENT","",e.currentContent,""];if(t.weakest.length>0){n.push("## CASES WHERE THIS FILE CURRENTLY UNDERPERFORMS","");for(let o of t.weakest)n.push(`- ${o.name}: passes ${(o.withPassRate*100).toFixed(0)}% with the file vs ${(o.withoutPassRate*100).toFixed(0)}% without it`);n.push("")}return t.nonDiscriminating.length>0&&n.push("## CASES THAT CARRY NO SIGNAL EITHER WAY","","These score the same with and without the file. Changing the file to chase","them is unlikely to move anything.","",...t.nonDiscriminating.map(o=>`- ${o}`),""),t.notes.length>0&&n.push("## NOTES","",...t.notes.map(o=>`- ${o}`),""),n.join(`
|
|
4
|
-
`)}s(d,"buildProposerData");function h(e,t,n){let o=e.lastIndexOf(n);if(o<0)return null;let r=e.lastIndexOf(t,o);return r<0?null:e.slice(r+t.length,o)}s(h,"between");function E(e){let t=e.split(`
|
|
5
|
-
`);for(;t.length>0&&t[0].trim()==="";)t.shift();for(;t.length>0&&t[t.length-1].trim()==="";)t.pop();if(t.length<2)return t.join(`
|
|
6
|
-
`);let n=t[0].trim(),o=t[t.length-1].trim(),r=/^(`{3,}|~{3,})[a-zA-Z0-9_-]*$/.test(n),i=/^(`{3,}|~{3,})$/.test(o);return r&&i?t.slice(1,-1).join(`
|
|
7
|
-
`):t.join(`
|
|
8
|
-
`)}s(E,"stripWrappingFence");function T(e,t){if(!e||e.trim()==="")return{ok:!1,reason:"proposer returned nothing"};let n=h(e,a,l);if(n==null)return{ok:!1,reason:`proposer reply had no ${a}\u2026${l} block`};let o=E(n).trim();if(o==="")return{ok:!1,reason:"proposed content was empty"};if(o===t.trim())return{ok:!1,reason:"proposal is identical to the current version"};let r=o.length/Math.max(1,t.trim().length);if(r<c)return{ok:!1,reason:`proposal retains only ${(r*100).toFixed(0)}% of the predecessor's length (floor ${(c*100).toFixed(0)}%) \u2014 treating it as a truncated or summarised reply rather than an edit`};if(r>u)return{ok:!1,reason:`proposal is ${r.toFixed(1)}x the predecessor's length (ceiling ${u}x) \u2014 treating it as runaway generation`};let i=(h(e,f,g)??"").trim();return{ok:!0,proposal:{candidateContent:o,rationale:i===""?"(proposer supplied no rationale)":i}}}s(T,"parseProposalResponse");async function O(e,t=16e3){let n=await p(m(e),d(e),t);return n==null?{ok:!1,reason:"no LLM backend available, or the proposer call failed"}:T(n,e.currentContent)}s(O,"proposeInstructionEdit");export{c as a,u as b,m as c,d,T as e,O as f};
|
package/dist/chunk-V2IEFHT7.js
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{b as A,c as L}from"./chunk-5R5RGKOW.js";import{b as G}from"./chunk-GIRPEMTW.js";import{a as _}from"./chunk-MODXEGCU.js";import{d as N,f as F}from"./chunk-B3BHB26P.js";import{e as f,f as $}from"./chunk-KLEF5D3A.js";import{a as d}from"./chunk-ZLLER3HP.js";import{readFileSync as D,realpathSync as U}from"node:fs";import P from"node:path";import O from"node:os";function X(s){let o=P.resolve(s);if(o===P.resolve(O.homedir()))return!1;let a=P.parse(o).root;if(o===a)return!1;try{let n=U(O.tmpdir());if(U(o)===n)return!1}catch{}return!0}d(X,"isScorableProjectPath");var V=5,z=Number(process.env.RULEMETRIC_MAX_SUGGESTION_PROJECTS??10),K=48,W=.5,T=400,Y=3,q=.6,Q=1;function Z(s){let o=s.bloated??[],a=new Set([...s.harmful.map(n=>n.id),...s.candidates.map(n=>n.id)]);return o.filter(n=>!a.has(n.id)).slice(0,Q).map(n=>({instructionId:n.id,estimatedTokens:n.estimatedTokens,topProjectId:n.topProjectId??null,score:.55,reason:`Costs ~${n.estimatedTokens} tokens every session and measures neutral across ${n.exposures} exposed session(s) \u2014 enough data to detect an effect, and none found. Consider shortening "${n.name}" rather than removing it.`+(n.containsSafetyLanguage?" CAUTION: it contains guardrail language (destructive-command or credential rules) \u2014 preserve those lines when shortening.":"")}))}d(Z,"buildTrimProposals");function tt(s){let o=[];for(let n of s.harmful){let c=n.verdict.delta;o.push({instructionId:n.id,score:Math.min(.95,.75+Math.abs(c)),topProjectId:n.topProjectId??null,reason:`Measured harmful: sessions using "${n.name}" scored ${(c*100).toFixed(1)}pp worse across ${n.exposures} exposed session(s). Observational \u2014 review before archiving.`})}let a=new Set(s.harmful.map(n=>n.id));for(let n of s.candidates)a.has(n.id)||o.push({instructionId:n.id,score:q,topProjectId:n.topProjectId??null,reason:`Unused: "${n.name}" is ${n.reason} (${n.totalExposures} lifetime exposure(s)) but still costs context budget every session.`});return o.slice(0,Y)}d(tt,"buildRemovalProposals");async function et(){let s=P.join(O.homedir(),".config","rulemetric","skills-registry.json");try{let o=D(s,"utf-8"),a=JSON.parse(o);return Date.now()-new Date(a.generatedAt).getTime()>K*60*60*1e3}catch{return!0}}d(et,"checkSkillsRegistryStale");var dt=d(async(s,o)=>{let a=N(),n=a!=="none";n?o.logger.info(`Scoring backend: ${a}`):o.logger.warn("No LLM backend available (claude CLI missing and ANTHROPIC_API_KEY unset); skipping relevance scoring. Removal/trim proposals still run \u2014 they need no LLM.");let c;try{c=(await f("/api/sessions/project-paths?limit="+z)).projectPaths}catch(t){o.logger.warn(`Failed to fetch project paths: ${t instanceof Error?t.message:String(t)}`);return}if(c.length===0){o.logger.info("No recent project paths; nothing to score");return}let R=new Map;try{let t=await f("/api/projects?limit=200");for(let e of t.projects??[])e.primaryCheckoutPath&&R.set(_(e.primaryCheckoutPath),e.id)}catch(t){o.logger.warn(`Failed to fetch projects for id resolution: ${t instanceof Error?t.message:String(t)}`)}let w=new Map;try{let t=await f(`/api/catalog?limit=200&contentPreview=${T}`);for(let e of t)w.set(e.id,{id:e.id,name:e.name,description:e.description??"",tags:e.tags??[],contentPreview:(e.contentPreview??"").slice(0,T)})}catch(t){o.logger.warn(`Failed to fetch catalog: ${t instanceof Error?t.message:String(t)}`)}try{let t=await f("/api/instructions?limit=100");for(let e of t.instructions??[])w.has(e.id)||w.set(e.id,{id:e.id,name:e.name,description:e.description??"",tags:e.tags??[],contentPreview:(e.content??"").slice(0,T)})}catch(t){o.logger.warn(`Failed to fetch personal instructions: ${t instanceof Error?t.message:String(t)}`)}let h=[],g=[];try{let t=await f("/api/insights/groom-candidates");if(!t.captureHealthy)o.logger.info(`Grooming paused: ${t.reason??"capture unhealthy"}`);else{h=tt(t),g=Z(t);let e=t.safetyGuarded+t.harmfulSafetyGuarded;o.logger.info(`Removal proposals: ${h.length} (${t.harmful.length} measured-harmful, ${t.candidates.length} never-used, ${e} withheld by the safety allowlist); trim proposals: ${g.length} (${(t.bloated??[]).length} measured-neutral and expensive, ${t.trimSafetyFlagged??0} flagged as containing guardrail language)`)}}catch(t){o.logger.warn(`Failed to fetch groom candidates: ${t instanceof Error?t.message:String(t)}`)}let y=[...w.values()];if(y.length===0&&h.length===0&&g.length===0){o.logger.info("No candidate instructions and nothing to retire; nothing to score");return}o.logger.info(`Scoring ${y.length} candidates across ${c.length} project(s)`);let x=0,l=null,S=new Set;for(let t of c)try{let e=_(t);if(!X(e)){o.logger.info(`Skipping ${e}: not a project directory (home/root)`);continue}let u=G(e),b=n&&u.length>0;u.length===0&&o.logger.info(`${e}: insufficient language signals; removal/trim only`);let H={name:P.basename(e),description:null,languages:u,topics:[],dependencies:[]},k=b?L(y):[];b&&o.logger.info(`Scoring ${y.length} candidates for ${e} in ${k.length} batch(es)`);let v=[],j=0;for(let r of k)try{let i=await F(A(H,r),"",4096);if(!i){j++;continue}let C=i.recommendations??[];for(let m of C)typeof m.instructionId=="string"&&typeof m.score=="number"&&typeof m.reason=="string"&&v.push({instructionId:m.instructionId,score:m.score,reason:m.reason})}catch(i){j++,o.logger.warn(`Batch failed for ${e}: ${i instanceof Error?i.message:String(i)}`)}j>0&&o.logger.warn(`${j}/${k.length} batch(es) failed for ${e} (backend ${a}); suggestions are partial`),b&&v.length===0&&o.logger.warn(`No usable LLM output for ${e} (backend ${a})`);let J=v.filter(r=>r.score>=W).sort((r,i)=>i.score-r.score).slice(0,V),E=R.get(e),B=l===null||l===e;l===null&&(l=e);let M=d(r=>r.topProjectId?r.topProjectId===E:B,"placeHere"),p=[...J.map(r=>({instructionId:r.instructionId,score:r.score,reason:r.reason,kind:"add"})),...h.filter(M).map(({topProjectId:r,...i})=>({...i,kind:"remove"})),...g.filter(M).map(({estimatedTokens:r,topProjectId:i,...C})=>({...C,kind:"trim"}))];if(p.length===0){o.logger.info(`Nothing to suggest for ${e}`);continue}await $("/api/instruction-suggestions/batch-upsert",{projectPath:e,...E?{projectId:E}:{},suggestions:p}),o.logger.info(`${e}: ${p.filter(r=>r.kind==="add").length} add + ${p.filter(r=>r.kind==="remove").length} remove + ${p.filter(r=>r.kind==="trim").length} trim`);for(let r of p)r.kind!=="add"&&S.add(r.instructionId);x++}catch(e){o.logger.warn(`Failed to score ${t}: ${e instanceof Error?e.message:String(e)}`)}let I=[...h.filter(t=>!S.has(t.instructionId)),...g.filter(t=>!S.has(t.instructionId)).map(({estimatedTokens:t,...e})=>e)];if(I.length>0&&l)try{let t=new Set(g.map(e=>e.instructionId));await $("/api/instruction-suggestions/batch-upsert",{projectPath:l,...R.get(l)?{projectId:R.get(l)}:{},suggestions:I.map(({topProjectId:e,...u})=>({...u,kind:t.has(u.instructionId)?"trim":"remove"}))}),o.logger.info(`Orphan sweep: ${I.length} proposal(s) whose project was not scored this run placed on ${l}`)}catch(t){o.logger.warn(`Orphan sweep failed: ${t instanceof Error?t.message:String(t)}`)}if(await et())try{await $("/api/instruction-suggestions/mark-stale",{}),o.logger.warn("Skills registry is stale (>48h); marked all suggestions stale")}catch{}o.logger.info(`Done: scored ${x}/${c.length} projects`)},"cronSuggestInstructions");export{X as a,Z as b,tt as c,dt as d};
|