@rulemetric/cli 0.15.0 → 0.16.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/chunk-3WCX2SLU.js +1 -0
- package/dist/{chunk-LLXC5SRC.js → chunk-5A6TMSRO.js} +1 -1
- package/dist/{chunk-RDL4HXFL.js → chunk-5CVP5NFH.js} +1 -1
- package/dist/{chunk-74KE4VOX.js → chunk-65LFPUDB.js} +1 -1
- package/dist/{chunk-QFTAU33Y.js → chunk-7LE2W3WP.js} +1 -1
- package/dist/{chunk-W6MMJRFZ.js → chunk-7YZURVZD.js} +1 -1
- package/dist/{chunk-AFEJYDUK.js → chunk-BU3ZGLQG.js} +1 -1
- package/dist/{chunk-CYCH2EQC.js → chunk-D4FP5M2B.js} +1 -1
- package/dist/{chunk-XCH4HPEZ.js → chunk-DHIEGG4T.js} +1 -1
- package/dist/{chunk-5Z6XXOJL.js → chunk-E4CIJ67Z.js} +1 -1
- package/dist/{chunk-CIKQXFQ2.js → chunk-EFEPD4AZ.js} +1 -1
- package/dist/chunk-EHW2KS6R.js +1 -0
- package/dist/chunk-GGUXEZC3.js +1 -0
- package/dist/{chunk-IFIWDL7G.js → chunk-GIQ2HK3W.js} +1 -1
- package/dist/{chunk-TWPD3ICV.js → chunk-GYKYJJNF.js} +1 -1
- package/dist/{chunk-HXOQUYG3.js → chunk-HBDKOU2N.js} +1 -1
- package/dist/chunk-HTAHNQZJ.js +1 -0
- package/dist/chunk-HYQ5YKBC.js +1 -0
- package/dist/chunk-I6W2KC6W.js +1 -0
- package/dist/{chunk-ISFPPDDB.js → chunk-IG4JMWFK.js} +1 -1
- package/dist/{chunk-CMDOLJ23.js → chunk-ISEUEYSC.js} +1 -1
- package/dist/{chunk-HT6R6KR3.js → chunk-KFNFLMUR.js} +1 -1
- package/dist/{chunk-DYET4EYU.js → chunk-KGU2IW54.js} +1 -1
- package/dist/{chunk-WQFR2LOY.js → chunk-KOORMTZO.js} +1 -1
- package/dist/chunk-MMMT34KO.js +28 -0
- package/dist/chunk-OCCJEWOF.js +1 -0
- package/dist/{chunk-RE7RAZQ5.js → chunk-RIYVZDOQ.js} +5 -5
- package/dist/{chunk-JSGXFD42.js → chunk-TQM7MF5C.js} +1 -1
- package/dist/{chunk-EJY5GK6A.js → chunk-TSLBCZ5P.js} +1 -1
- package/dist/chunk-TTZWVZIW.js +1 -0
- package/dist/chunk-U3YPVLM3.js +1 -0
- package/dist/{chunk-JUBXWTJA.js → chunk-USKRCVX3.js} +1 -1
- package/dist/{chunk-JOXTWLLK.js → chunk-WL34G6IR.js} +1 -1
- package/dist/{chunk-5PMTNNA6.js → chunk-WOANSBMJ.js} +1 -1
- package/dist/{chunk-RYCVPQYK.js → chunk-XQCGAPLN.js} +1 -1
- package/dist/{chunk-7LFCZI64.js → chunk-ZKPURXUS.js} +1 -1
- package/dist/commands/diagnostics.js +1 -1
- package/dist/commands/evals/agent.js +1 -1
- package/dist/commands/evals/benchmark.js +1 -1
- package/dist/commands/evals/optimize.js +1 -1
- package/dist/commands/evals/refine-cases.js +1 -1
- package/dist/commands/sessions/list.js +1 -1
- package/dist/commands/suggestions/accept.js +1 -1
- package/dist/commands/suggestions/undo.js +1 -1
- package/dist/dashboard/Dashboard.js +1 -1
- package/dist/dashboard/data.js +1 -1
- package/dist/{dist-GSHUC7UU.js → dist-UAAG2IWQ.js} +1 -1
- package/dist/lib/agent-loop.js +1 -1
- package/dist/lib/eval-benchmark.js +1 -1
- package/dist/lib/eval-case-generator.js +1 -1
- package/dist/lib/eval-conversation-handler.js +1 -1
- package/dist/lib/evolution-cost.js +1 -1
- package/dist/lib/evolution-enrolment.js +1 -1
- package/dist/lib/instruction-proposer.js +1 -1
- package/dist/lib/instruction-restoration.js +1 -1
- package/dist/lib/instructions/acceptance/suggestion-accept.js +1 -1
- package/dist/lib/jobs/handlers/cron-auto-accept-suggestions.js +1 -1
- package/dist/lib/jobs/handlers/cron-instruction-evolution.js +1 -1
- package/dist/lib/jobs/handlers/cron-instruction-training.js +1 -1
- package/dist/lib/jobs/handlers/cron-refine-cases.js +1 -1
- package/dist/lib/jobs/handlers/cron-refresh-pricing.js +1 -1
- package/dist/lib/jobs/handlers/cron-suggest-instructions.js +1 -1
- package/dist/lib/jobs/handlers/distill-memories.js +1 -1
- package/dist/lib/jobs/handlers/finalize-scoped-launch.js +1 -0
- package/dist/lib/jobs/handlers/prepare-suggestion-live.js +1 -0
- package/dist/lib/jobs/handlers/process-changelog.js +1 -1
- package/dist/lib/jobs/handlers/process-conversation.js +1 -1
- package/dist/lib/jobs/handlers/process-eval.js +1 -1
- package/dist/lib/jobs/handlers/process-insights.js +1 -1
- package/dist/lib/jobs/handlers/process-launch.js +1 -1
- package/dist/lib/jobs/handlers/process-memory-ab.js +1 -1
- package/dist/lib/jobs/handlers/process-run-cleanup.js +1 -1
- package/dist/lib/jobs/handlers/process-session-goal.js +1 -1
- package/dist/lib/jobs/handlers/process-suggestion-eval.js +1 -0
- package/dist/lib/llm-client.js +1 -1
- package/dist/lib/manual-tasks.js +1 -1
- package/dist/lib/optimize-compare.js +1 -1
- package/dist/lib/projects/workspace/worktree.js +1 -1
- package/dist/lib/refine-cases.js +1 -1
- package/oclif.manifest.json +1 -1
- package/package.json +6 -6
- package/dist/chunk-4DA6L7KL.js +0 -1
- package/dist/chunk-L562Y4RN.js +0 -1
- package/dist/chunk-N2PP2A7M.js +0 -1
- package/dist/chunk-T75KAEJO.js +0 -25
- package/dist/chunk-V576KKH6.js +0 -1
- package/dist/chunk-XIOYV5A7.js +0 -1
package/dist/chunk-T75KAEJO.js
DELETED
|
@@ -1,25 +0,0 @@
|
|
|
1
|
-
import{a as l,b as Mt}from"./chunk-ZLLER3HP.js";var Ve=["claude_code","cursor","vscode_copilot","copilot_agent","rulemetric_mcp","codex","pi","opencode","antigravity"],Ke=["user_message","assistant_message","assistant_response","tool_call","tool_result","thinking","error"];var qt=new Set(["","unknown","<synthetic>"]);function Jt(e){if(typeof e!="string")return null;let t=e.trim();return qt.has(t)?null:t}l(Jt,"resolveEventModel");var A=class{static{l(this,"ClaudeCodeAdapter")}tool="claude_code";parse(t){let n=t.split(`
|
|
2
|
-
`).filter(p=>p.trim()),o=[];for(let p of n)try{o.push(JSON.parse(p))}catch{}let s=o.filter(p=>p.type==="user"||p.type==="assistant"),r=null,i=null,c={},a=o.find(p=>p.type==="user");a&&(r=a.cwd??null,i=a.gitBranch??null,a.version&&(c.claudeCodeVersion=a.version),a.sessionId&&(c.sessionId=a.sessionId));let u=o.find(p=>p.type==="assistant");u?.message?.model&&(c.model=u.message.model);let d=[],f=0;for(let p of s){let y=p.timestamp??new Date().toISOString();if(p.type==="user"){let g=p.message?.content;if(typeof g=="string")d.push({sequence:f++,eventType:"user_message",content:g,toolName:null,toolInput:null,toolOutput:null,tokenUsage:null,timestamp:y,metadata:{}});else if(Array.isArray(g))for(let _ of g)_.type==="tool_result"&&d.push({sequence:f++,eventType:"tool_result",content:typeof _.content=="string"?_.content:JSON.stringify(_.content),toolName:null,toolInput:null,toolOutput:null,tokenUsage:null,timestamp:y,metadata:{toolUseId:_.tool_use_id}})}else if(p.type==="assistant"){let g=Array.isArray(p.message?.content)?p.message.content:[],_=p.message?.usage,x=_?{input:_.input_tokens??0,output:_.output_tokens??0,cacheRead:_.cache_read_input_tokens??0,cacheWrite:_.cache_creation_input_tokens??0}:null,v={};p.message?.model&&(v.model=p.message.model);let w=Jt(p.message?.model);p.message?.stop_reason&&(v.stopReason=p.message.stop_reason),p.requestId&&(v.requestId=p.requestId),_?.service_tier&&(v.serviceTier=_.service_tier),_?.speed&&(v.speed=_.speed),_?.cache_creation&&(v.cacheCreationDetail=_.cache_creation),_?.server_tool_use&&(v.serverToolUse=_.server_tool_use);for(let S of g)S.type==="text"?d.push({sequence:f++,eventType:"assistant_message",content:S.text??"",toolName:null,toolInput:null,toolOutput:null,tokenUsage:x,model:w,timestamp:y,metadata:v}):S.type==="thinking"?d.push({sequence:f++,eventType:"thinking",content:S.thinking??"",toolName:null,toolInput:null,toolOutput:null,tokenUsage:x,model:w,timestamp:y,metadata:v}):S.type==="tool_use"&&d.push({sequence:f++,eventType:"tool_call",content:null,toolName:S.name??"unknown",toolInput:S.input??null,toolOutput:null,tokenUsage:x,model:w,timestamp:y,metadata:{...v,toolUseId:S.id}})}}let m=d.map(p=>p.timestamp).sort(),h=new Date().toISOString();return{tool:"claude_code",projectPath:r,gitBranch:i,startedAt:m[0]??h,endedAt:m[m.length-1]??null,events:d,metadata:c}}};var N=class{static{l(this,"CursorAdapter")}tool="cursor";parse(t){let n=Mt("better-sqlite3"),o=new n(t,{readonly:!0});try{let s=o.prepare("SELECT value FROM ItemTable WHERE key = 'composer.composerData'").get();return s?this.parseComposerJson(s.value):this.emptySession()}finally{o.close()}}parseComposerJson(t){let n;try{n=JSON.parse(t)}catch{return this.emptySession()}let o=Object.values(n.allComposers??{});if(o.length===0)return this.emptySession();let s=o.sort((u,d)=>{let f=u.createdAt?new Date(u.createdAt).getTime():0;return(d.createdAt?new Date(d.createdAt).getTime():0)-f})[0],r=s.conversation??[],i=[];for(let u=0;u<r.length;u++){let d=r[u],f=d.createdAt??new Date().toISOString();i.push({sequence:u,eventType:d.type===1?"user_message":"assistant_message",content:d.text,toolName:null,toolInput:null,toolOutput:null,tokenUsage:null,timestamp:f,metadata:{}})}let c=i.map(u=>u.timestamp).sort(),a=new Date().toISOString();return{tool:"cursor",projectPath:null,gitBranch:null,startedAt:c[0]??a,endedAt:c[c.length-1]??null,events:i,metadata:{composerId:s.composerId}}}emptySession(){return{tool:"cursor",projectPath:null,gitBranch:null,startedAt:new Date().toISOString(),endedAt:null,events:[],metadata:{}}}};var P=class{static{l(this,"VSCodeCopilotAdapter")}tool="vscode_copilot";parse(t){let n;try{n=JSON.parse(t)}catch{return this.emptySession()}let o=n.requests??[],s=[],r=0;for(let a of o){let u=a.timestamp?new Date(a.timestamp).toISOString():new Date().toISOString();if(s.push({sequence:r++,eventType:"user_message",content:a.message,toolName:null,toolInput:null,toolOutput:null,tokenUsage:null,timestamp:u,metadata:{}}),a.response){let d=a.response.timestamp?new Date(a.response.timestamp).toISOString():u;s.push({sequence:r++,eventType:"assistant_message",content:a.response.message,toolName:null,toolInput:null,toolOutput:null,tokenUsage:null,timestamp:d,metadata:{}})}}let i=s.map(a=>a.timestamp).sort(),c=new Date().toISOString();return{tool:"vscode_copilot",projectPath:null,gitBranch:null,startedAt:i[0]??c,endedAt:i[i.length-1]??null,events:s,metadata:{...n.requesterUsername&&{username:n.requesterUsername},...n.customTitle&&{title:n.customTitle}}}}emptySession(){return{tool:"vscode_copilot",projectPath:null,gitBranch:null,startedAt:new Date().toISOString(),endedAt:null,events:[],metadata:{}}}};var b=class{static{l(this,"CopilotAgentAdapter")}tool="copilot_agent";parse(t){let n;try{n=JSON.parse(t)}catch{return this.emptySession()}let o=n.requests??[],s=[],r=0;for(let a of o){let u=a.timestamp?new Date(a.timestamp).toISOString():new Date().toISOString();if(s.push({sequence:r++,eventType:"user_message",content:a.message,toolName:null,toolInput:null,toolOutput:null,tokenUsage:null,timestamp:u,metadata:{}}),a.toolCalls)for(let d of a.toolCalls){let f=d.timestamp?new Date(d.timestamp).toISOString():u;s.push({sequence:r++,eventType:"tool_call",content:null,toolName:d.name??"unknown",toolInput:d.input??null,toolOutput:d.output??null,tokenUsage:null,timestamp:f,metadata:{}})}if(a.response){let d=a.response.timestamp?new Date(a.response.timestamp).toISOString():u;s.push({sequence:r++,eventType:"assistant_message",content:a.response.message,toolName:null,toolInput:null,toolOutput:null,tokenUsage:null,timestamp:d,metadata:{}})}}let i=s.map(a=>a.timestamp).sort(),c=new Date().toISOString();return{tool:"copilot_agent",projectPath:null,gitBranch:null,startedAt:i[0]??c,endedAt:i[i.length-1]??null,events:s,metadata:{...n.requesterUsername&&{username:n.requesterUsername},...n.customTitle&&{title:n.customTitle},...n.agentMode!=null&&{agentMode:n.agentMode}}}}emptySession(){return{tool:"copilot_agent",projectPath:null,gitBranch:null,startedAt:new Date().toISOString(),endedAt:null,events:[],metadata:{}}}};var D=class{static{l(this,"RuleMetricMcpAdapter")}tool="rulemetric_mcp";parse(t){let n;try{n=JSON.parse(t)}catch{return this.emptySession()}let s=(n.events??[]).map((i,c)=>({sequence:i.sequence??c,eventType:this.normalizeEventType(i.eventType),content:i.content??null,toolName:i.toolName??null,toolInput:i.toolInput??null,toolOutput:i.toolOutput??null,tokenUsage:i.tokenUsage??null,timestamp:i.timestamp??new Date().toISOString(),metadata:i.metadata??{}})),r=new Date().toISOString();return{tool:"rulemetric_mcp",projectPath:n.projectPath??null,gitBranch:n.gitBranch??null,startedAt:n.startedAt??s[0]?.timestamp??r,endedAt:n.endedAt??s[s.length-1]?.timestamp??null,events:s,metadata:n.metadata??{}}}normalizeEventType(t){return t&&["user_message","assistant_message","tool_call","tool_result","thinking","error"].includes(t)?t:"assistant_message"}emptySession(){return{tool:"rulemetric_mcp",projectPath:null,gitBranch:null,startedAt:new Date().toISOString(),endedAt:null,events:[],metadata:{}}}};function Bt(e){try{return JSON.parse(e)}catch{return e}}l(Bt,"safeJsonParse");function Q(e,t){return Array.isArray(e)?e.filter(n=>n.type&&t.includes(n.type)).map(n=>n.text??"").filter(Boolean).join(`
|
|
3
|
-
|
|
4
|
-
`):""}l(Q,"textFromBlocks");function Gt(e){if(!e)return null;let t=e.cached_input_tokens??0,n=Math.max(0,(e.input_tokens??0)-t),o=(e.output_tokens??0)+(e.reasoning_output_tokens??0);return n===0&&o===0&&t===0?null:{input:n,output:o,cacheRead:t,cacheWrite:0}}l(Gt,"tokenUsageFromCodex");function Lt(e){if(!e)return new Date().toISOString();let t=new Date(e);return Number.isFinite(t.getTime())?t.toISOString():new Date().toISOString()}l(Lt,"normalizeTimestamp");function tt(){return{sequence:0,model:null,prevCumulativeTotal:0,callNames:{}}}l(tt,"freshCodexState");var C=class{static{l(this,"CodexAdapter")}tool="codex";parse(t){let n=tt(),{events:o,projectPath:s,gitBranch:r,metadata:i}=this.parseLines(t,n),c=o.map(u=>u.timestamp).sort(),a=new Date().toISOString();return{tool:"codex",projectPath:s,gitBranch:r,startedAt:c[0]??a,endedAt:c[c.length-1]??null,events:o,metadata:i}}parseAppend(t,n){let o={...n,callNames:{...n.callNames}},{events:s}=this.parseLines(t,o);return{events:s,state:o}}parseLines(t,n){let o=t.split(`
|
|
5
|
-
`).filter(d=>d.trim()),s=[],r={},i=n.callNames,c=null,a=null,u=null;for(let d of o){let f;try{f=JSON.parse(d)}catch{continue}let m=f.payload;if(!m)continue;let h=Lt(f.timestamp);if(f.type==="session_meta"){u=m.session_id??m.id??u,c=m.cwd??c,m.git_branch&&(a=m.git_branch),m.model&&(n.model=m.model),r.sessionId=u,r.codexSessionId=u,r.originator=m.originator,r.source=m.source,r.modelProvider=m.model_provider,r.codexCliVersion=m.cli_version;continue}if(f.type==="turn_context"){c=m.cwd??c,m.model&&(n.model=m.model,r.model=m.model);continue}if(f.type==="response_item"&&m.type==="message"){if(m.role==="user"){let p=Q(m.content,["input_text"]);if(!p)continue;s.push({sequence:n.sequence++,eventType:"user_message",content:p,toolName:null,toolInput:null,toolOutput:null,tokenUsage:null,timestamp:h,metadata:{}})}else if(m.role==="assistant"){let p=Q(m.content,["output_text"]);if(!p)continue;s.push({sequence:n.sequence++,eventType:"assistant_message",content:p,toolName:null,toolInput:null,toolOutput:null,tokenUsage:null,model:n.model,timestamp:h,metadata:n.model?{model:n.model}:{}})}continue}if(f.type==="response_item"&&m.type==="function_call"){let p=m.name??"unknown";m.call_id&&(i[m.call_id]=p);let y=typeof m.arguments=="string"?Bt(m.arguments):{};s.push({sequence:n.sequence++,eventType:"tool_call",content:null,toolName:p,toolInput:y&&typeof y=="object"&&!Array.isArray(y)?y:{arguments:y},toolOutput:null,tokenUsage:null,model:n.model,timestamp:h,metadata:{callId:m.call_id}});continue}if(f.type==="response_item"&&m.type==="function_call_output"){let p=m.call_id?i[m.call_id]??null:null;s.push({sequence:n.sequence++,eventType:"tool_result",content:m.output??null,toolName:p,toolInput:null,toolOutput:m.output==null?null:{output:m.output},tokenUsage:null,model:n.model,timestamp:h,metadata:{callId:m.call_id}});continue}if(f.type==="event_msg"&&m.type==="token_count"){let p=m.info,y=p?.total_token_usage?.total_tokens??0;if(y>0&&y===n.prevCumulativeTotal)continue;y>0&&(n.prevCumulativeTotal=y);let g=Gt(p?.last_token_usage??p?.total_token_usage);if(!g)continue;let _=p?.model??p?.model_name??n.model;s.push({sequence:n.sequence++,eventType:"assistant_response",content:null,toolName:null,toolInput:null,toolOutput:null,tokenUsage:g,model:_??null,timestamp:h,metadata:{codexEventType:"token_count",..._?{model:_}:{},reasoningOutputTokens:p?.last_token_usage?.reasoning_output_tokens??0,usage:{input_tokens:g.input,output_tokens:g.output,cache_read_input_tokens:g.cacheRead??0,cache_creation_input_tokens:g.cacheWrite??0}}})}}return{events:s,projectPath:c,gitBranch:a,sessionId:u,metadata:r}}};function et(e,t){let n=e??(typeof t=="number"?new Date(t).toISOString():""),o=new Date(n);return Number.isFinite(o.getTime())?o.toISOString():new Date().toISOString()}l(et,"timestamp");function ot(e){return Array.isArray(e.content)?e.content:[]}l(ot,"blocks");function nt(e){return typeof e.content=="string"?e.content:ot(e).filter(t=>t.type==="text").map(t=>t.text??"").filter(Boolean).join(`
|
|
6
|
-
|
|
7
|
-
`)}l(nt,"messageText");function Ft(e){if(!e)return null;let t={input:Math.max(0,e.input??0),output:Math.max(0,e.output??0),cacheRead:Math.max(0,e.cacheRead??0),cacheWrite:Math.max(0,e.cacheWrite??0)};return Object.values(t).some(n=>n>0)?t:null}l(Ft,"usageOf");var j=class{static{l(this,"PiAdapter")}tool="pi";parse(t){let n=[],o={},s=null,r=null,i=null,c=null,a=l(f=>{n.push({sequence:n.length,...f})},"push");for(let f of t.split(`
|
|
8
|
-
`)){if(!f.trim())continue;let m;try{m=JSON.parse(f)}catch{continue}if(m.type==="session"){r||(r=et(m.timestamp)),s=m.cwd??s,o.sessionId=m.id,o.piSessionId=m.id,o.sessionVersion=m.version;continue}if(m.type==="model_change"){i=m.provider??i,c=m.modelId??c,i&&(o.provider=i),c&&(o.model=c);continue}if(m.type!=="message"||!m.message)continue;let h=m.message,p=et(m.timestamp,h.timestamp);if(i=h.provider??i,c=h.model??c,i&&(o.provider=i),c&&(o.model=c),h.role==="user"){let g=nt(h);if(!g)continue;a({eventType:"user_message",content:g,toolName:null,toolInput:null,toolOutput:null,tokenUsage:null,timestamp:p,metadata:{}});continue}if(h.role==="toolResult"){let g=nt(h);a({eventType:"tool_result",content:g||null,toolName:h.toolName??null,toolInput:null,toolOutput:{content:g,details:h.details??null,isError:h.isError??!1},tokenUsage:null,model:c,timestamp:p,metadata:{toolCallId:h.toolCallId,isError:h.isError??!1}});continue}if(h.role!=="assistant")continue;if(h.stopReason==="error"||h.stopReason==="aborted"){a({eventType:"error",content:h.errorMessage??`Pi stopped with ${h.stopReason}`,toolName:null,toolInput:null,toolOutput:null,tokenUsage:null,model:c,timestamp:p,metadata:{provider:i,stopReason:h.stopReason}});continue}for(let g of ot(h))g.type==="thinking"&&g.thinking?a({eventType:"thinking",content:g.thinking,toolName:null,toolInput:null,toolOutput:null,tokenUsage:null,model:c,timestamp:p,metadata:{provider:i}}):g.type==="text"&&g.text?a({eventType:"assistant_message",content:g.text,toolName:null,toolInput:null,toolOutput:null,tokenUsage:null,model:c,timestamp:p,metadata:{provider:i}}):g.type==="toolCall"&&g.name&&a({eventType:"tool_call",content:null,toolName:g.name,toolInput:g.arguments??{},toolOutput:null,tokenUsage:null,model:c,timestamp:p,metadata:{provider:i,toolCallId:g.id}});let y=Ft(h.usage);y&&a({eventType:"assistant_response",content:null,toolName:null,toolInput:null,toolOutput:null,tokenUsage:y,model:c,timestamp:p,metadata:{piEventType:"assistant_usage",provider:i,responseId:h.responseId,stopReason:h.stopReason,costUsd:h.usage?.cost?.total,usage:{input_tokens:y.input,output_tokens:y.output,cache_read_input_tokens:y.cacheRead??0,cache_creation_input_tokens:y.cacheWrite??0}}})}let u=n.map(f=>f.timestamp).sort(),d=new Date().toISOString();return{tool:"pi",projectPath:s,gitBranch:null,startedAt:r??u[0]??d,endedAt:u[u.length-1]??null,events:n,metadata:o}}};var Wt={claude_code:l(()=>new A,"claude_code"),cursor:l(()=>new N,"cursor"),vscode_copilot:l(()=>new P,"vscode_copilot"),copilot_agent:l(()=>new b,"copilot_agent"),rulemetric_mcp:l(()=>new D,"rulemetric_mcp"),codex:l(()=>new C,"codex"),pi:l(()=>new j,"pi")};function Ht(e){let t=Wt[e];if(!t)throw new Error(`Unknown session tool: ${e}`);return t()}l(Ht,"getAdapter");function zt(e){let t=e.trim();if(t.startsWith("{")){let n=t.split(`
|
|
9
|
-
`)[0],o=null;try{o=JSON.parse(n)}catch{try{o=JSON.parse(t)}catch{}}if(o){if(o.type==="user"||o.type==="assistant")return"claude_code";if(o.type==="session"&&typeof o.id=="string"&&typeof o.cwd=="string"&&typeof o.version=="number")return"pi";if(Array.isArray(o.events)&&!o.requests&&!o.allComposers)return"rulemetric_mcp";if(Array.isArray(o.requests))return o.requests.some(r=>Array.isArray(r.toolCalls))||o.agentMode?"copilot_agent":"vscode_copilot";if(o.allComposers)return"cursor"}if(!o)try{let s=t.split(`
|
|
10
|
-
`).filter(r=>r.trim());if(s.length>1){let r=JSON.parse(s[0]);if(r.type==="user"||r.type==="assistant")return"claude_code"}}catch{}}return null}l(zt,"detectTool");import{readdir as F,stat as W}from"fs/promises";import{basename as Vt,join as I}from"path";import{homedir as $}from"os";var Kt={"claude-opus-4-7":"Opus 4.7","claude-opus-4-6":"Opus 4.6","claude-opus-4-5":"Opus 4.5","claude-opus-4-1":"Opus 4.1","claude-opus-4":"Opus 4","claude-sonnet-4-6":"Sonnet 4.6","claude-sonnet-4-5":"Sonnet 4.5","claude-sonnet-4":"Sonnet 4","claude-3-7-sonnet":"Sonnet 3.7","claude-3-5-sonnet":"Sonnet 3.5","claude-haiku-4-5":"Haiku 4.5","claude-3-5-haiku":"Haiku 3.5"};function Xt(){return process.env.CLAUDE_CONFIG_DIR||I($(),".claude")}l(Xt,"getClaudeDir");function Yt(){return I(Xt(),"projects")}l(Yt,"getProjectsDir");function Zt(){return process.platform==="darwin"?I($(),"Library","Application Support","Claude","local-agent-mode-sessions"):process.platform==="win32"?I($(),"AppData","Roaming","Claude","local-agent-mode-sessions"):I($(),".config","Claude","local-agent-mode-sessions")}l(Zt,"getDesktopSessionsDir");async function Qt(e){let t=[];async function n(o,s){if(s>8)return;let r=await F(o).catch(()=>[]);for(let i of r){if(i==="node_modules"||i===".git")continue;let c=I(o,i);if((await W(c).catch(()=>null))?.isDirectory())if(i==="projects"){let u=await F(c).catch(()=>[]);for(let d of u){let f=I(c,d);(await W(f).catch(()=>null))?.isDirectory()&&t.push(f)}}else await n(c,s+1)}}return l(n,"walk"),await n(e,0),t}l(Qt,"findDesktopProjectDirs");var st={name:"claude",displayName:"Claude Code",modelDisplayName(e){let t=e.replace(/@.*$/,"").replace(/-\d{8}$/,"");for(let[n,o]of Object.entries(Kt))if(t.startsWith(n))return o;return t},toolDisplayName(e){return e},async discoverSessions(){let e=[],t=Yt();try{let o=await F(t);for(let s of o){let r=I(t,s);(await W(r).catch(()=>null))?.isDirectory()&&e.push({path:r,project:s,provider:"claude"})}}catch{}let n=await Qt(Zt());for(let o of n)e.push({path:o,project:Vt(o),provider:"claude"});return e},createSessionParser(){return{async*parse(){}}}};import{readdir as U,readFile as rt,stat as te}from"fs/promises";import{basename as ee,join as O}from"path";import{homedir as ne}from"os";var oe={"gpt-5.3-codex":"GPT-5.3 Codex","gpt-5.4-mini":"GPT-5.4 Mini","gpt-5.4":"GPT-5.4","gpt-5":"GPT-5","gpt-4o-mini":"GPT-4o Mini","gpt-4o":"GPT-4o"},at={exec_command:"Bash",read_file:"Read",write_file:"Edit",apply_diff:"Edit",apply_patch:"Edit",spawn_agent:"Agent",close_agent:"Agent",wait_agent:"Agent",read_dir:"Glob"};function se(){return process.env.CODEX_HOME??O(ne(),".codex")}l(se,"getCodexDir");function re(e){return e.replace(/^\//,"").replace(/\//g,"-")}l(re,"sanitizeProject");async function ae(e){try{let n=(await rt(e,"utf-8")).split(`
|
|
11
|
-
`)[0];return n?.trim()?JSON.parse(n):null}catch{return null}}l(ae,"readFirstLine");async function ie(e){let t=await ae(e);if(!t)return{valid:!1};let n=t.type==="session_meta"&&typeof t.payload?.originator=="string"&&t.payload.originator.toLowerCase().startsWith("codex");return{valid:n,meta:n?t:void 0}}l(ie,"isValidCodexSession");async function le(e){let t=O(e,"sessions"),n=[],o;try{o=await U(t)}catch{return n}for(let s of o){if(!/^\d{4}$/.test(s))continue;let r=O(t,s),i=await U(r).catch(()=>[]);for(let c of i){if(!/^\d{2}$/.test(c))continue;let a=O(r,c),u=await U(a).catch(()=>[]);for(let d of u){if(!/^\d{2}$/.test(d))continue;let f=O(a,d),m=await U(f).catch(()=>[]);for(let h of m){if(!h.startsWith("rollout-")||!h.endsWith(".jsonl"))continue;let p=O(f,h);if(!(await te(p).catch(()=>null))?.isFile())continue;let{valid:g,meta:_}=await ie(p);if(!g||!_)continue;let x=_.payload?.cwd??"unknown";n.push({path:p,project:re(x),provider:"codex"})}}}}return n}l(le,"discoverSessionsInDir");function ce(e,t){return e?.info?.model??e?.info?.model_name??t??"gpt-5"}l(ce,"resolveModel");function ue(e,t){return{async*parse(){let n;try{n=await rt(e.path,"utf-8")}catch{return}let o=n.split(`
|
|
12
|
-
`).filter(h=>h.trim()),s,r="",i=0,c=0,a=0,u=0,d=0,f=[],m="";for(let h of o){let p;try{p=JSON.parse(h)}catch{continue}if(p.type==="session_meta"){r=p.payload?.session_id??ee(e.path,".jsonl"),s=p.payload?.model;continue}if(p.type==="response_item"&&p.payload?.type==="function_call"){let y=p.payload.name??"";f.push(at[y]??y);continue}if(p.type==="response_item"&&p.payload?.type==="message"&&p.payload?.role==="user"){let y=(p.payload.content??[]).filter(g=>g.type==="input_text").map(g=>g.text??"").filter(Boolean);y.length>0&&(m=y.join(" "));continue}if(p.type==="event_msg"&&p.payload?.type==="token_count"){let y=p.payload.info;if(!y)continue;let g=y.total_token_usage?.total_tokens??0;if(g>0&&g===i)continue;i=g;let _=y.last_token_usage,x=0,v=0,w=0,S=0;if(_)x=_.input_tokens??0,v=_.cached_input_tokens??0,w=_.output_tokens??0,S=_.reasoning_output_tokens??0;else if(g>0){let T=y.total_token_usage;if(!T)continue;x=(T.input_tokens??0)-c,v=(T.cached_input_tokens??0)-a,w=(T.output_tokens??0)-u,S=(T.reasoning_output_tokens??0)-d}if(!_){let T=y.total_token_usage;T&&(c=T.input_tokens??0,a=T.cached_input_tokens??0,u=T.output_tokens??0,d=T.reasoning_output_tokens??0)}if(x+v+w+S===0)continue;let Rt=Math.max(0,x-v),Et=ce(p.payload,s),Z=p.timestamp??"",L=`codex:${e.path}:${Z}:${g}`;if(t.has(L))continue;t.add(L),yield{provider:"codex",model:Et,inputTokens:Rt,outputTokens:w,cacheCreationInputTokens:0,cacheReadInputTokens:v,cachedInputTokens:v,reasoningTokens:S,costUSD:0,tools:f,bashCommands:[],timestamp:Z,speed:"standard",deduplicationKey:L,userMessage:m,sessionId:r},f=[],m=""}}}}}l(ue,"createParser");var it={name:"codex",displayName:"Codex",modelDisplayName(e){for(let[t,n]of Object.entries(oe))if(e.startsWith(t))return n;return e},toolDisplayName(e){return at[e]??e},async discoverSessions(){return le(se())},createSessionParser(e,t){return ue(e,t)}};import{readdir as pe,readFile as lt,stat as me}from"fs/promises";import{basename as ct,dirname as de,join as H}from"path";import{homedir as fe}from"os";var he={"gpt-4.1-nano":"GPT-4.1 Nano","gpt-4.1-mini":"GPT-4.1 Mini","gpt-4.1":"GPT-4.1","gpt-4o-mini":"GPT-4o Mini","gpt-4o":"GPT-4o","gpt-5-mini":"GPT-5 Mini","gpt-5":"GPT-5","claude-sonnet-4-5":"Sonnet 4.5","claude-sonnet-4":"Sonnet 4","claude-3-7-sonnet":"Sonnet 3.7","claude-3-5-sonnet":"Sonnet 3.5","o4-mini":"o4-mini",o3:"o3"},ut={bash:"Bash",read_file:"Read",write_file:"Edit",edit_file:"Edit",create_file:"Write",delete_file:"Delete",search_files:"Grep",find_files:"Glob",list_directory:"LS",web_search:"WebSearch",fetch_webpage:"WebFetch",github_repo:"GitHub"},ge=Object.entries(he).sort((e,t)=>t[0].length-e[0].length);function ye(){return H(fe(),".copilot","session-state")}l(ye,"getCopilotSessionStateDir");function _e(e){let t=e.match(/^cwd:\s*(.+)$/m);return t?.[1]&&t[1].replace(/\s*#.*$/,"").replace(/^['"]|['"]$/g,"").trim()||null}l(_e,"parseCwd");function Se(e,t){return{async*parse(){let n;try{n=await lt(e.path,"utf-8")}catch{return}let o=ct(de(e.path)),s=n.split(`
|
|
13
|
-
`).filter(c=>c.trim()),r="",i="";for(let c of s){let a;try{a=JSON.parse(c)}catch{continue}if(a.type==="session.model_change"){r=a.data.newModel??r;continue}if(a.type==="user.message"){i=a.data.content??"";continue}if(a.type==="assistant.message"){let{messageId:u,outputTokens:d,toolRequests:f=[]}=a.data;if(d===0||!r)continue;let m=`copilot:${o}:${u}`;if(t.has(m))continue;t.add(m);let h=f.map(p=>p.name??"").filter(Boolean).map(p=>ut[p]??p);yield{provider:"copilot",model:r,inputTokens:0,outputTokens:d,cacheCreationInputTokens:0,cacheReadInputTokens:0,cachedInputTokens:0,reasoningTokens:0,costUSD:0,tools:h,bashCommands:[],timestamp:a.timestamp??"",speed:"standard",deduplicationKey:m,userMessage:i,sessionId:o},i=""}}}}}l(Se,"createParser");async function ve(e){let t=[],n;try{n=await pe(e)}catch{return t}for(let o of n){let s=H(e,o,"events.jsonl");if(!(await me(s).catch(()=>null))?.isFile())continue;let i=o;try{let c=await lt(H(e,o,"workspace.yaml"),"utf-8"),a=_e(c);a&&(i=ct(a))}catch{}t.push({path:s,project:i,provider:"copilot"})}return t}l(ve,"discoverSessionsInDir");var pt={name:"copilot",displayName:"GitHub Copilot",modelDisplayName(e){for(let[t,n]of ge)if(e===t||e.startsWith(t+"-"))return n;return e},toolDisplayName(e){return ut[e]??e},async discoverSessions(){return ve(ye())},createSessionParser(e,t){return Se(e,t)}};import{readdir as mt,readFile as ft,stat as dt}from"fs/promises";import{basename as ht,join as z}from"path";import{homedir as xe}from"os";var Te={"gpt-5.4":"GPT-5.4","gpt-5.4-mini":"GPT-5.4 Mini","gpt-5":"GPT-5","gpt-4o":"GPT-4o","gpt-4o-mini":"GPT-4o Mini"},gt={bash:"Bash",read:"Read",edit:"Edit",write:"Write",glob:"Glob",grep:"Grep",task:"Agent",dispatch_agent:"Agent",fetch:"WebFetch",search:"WebSearch",todo:"TodoWrite",patch:"Patch"},we=Object.entries(Te).sort((e,t)=>t[0].length-e[0].length);function Ie(){return z(xe(),".pi","agent","sessions")}l(Ie,"getPiSessionsDir");async function ke(e){try{let n=(await ft(e,"utf-8")).split(`
|
|
14
|
-
`)[0];return n?.trim()?JSON.parse(n):null}catch{return null}}l(ke,"readFirstEntry");function Oe(e){return e.split(/[;&|]+/).map(t=>t.trim().split(/\s+/)[0]).filter(Boolean)}l(Oe,"extractBashCommands");async function Ae(e){let t=[],n;try{n=await mt(e)}catch{return t}for(let o of n){let s=z(e,o);if(!(await dt(s).catch(()=>null))?.isDirectory())continue;let i;try{i=await mt(s)}catch{continue}for(let c of i){if(!c.endsWith(".jsonl"))continue;let a=z(s,c);if(!(await dt(a).catch(()=>null))?.isFile())continue;let d=await ke(a);if(!d||d.type!=="session")continue;let f=d.cwd??o;t.push({path:a,project:ht(f),provider:"pi"})}}return t}l(Ae,"discoverSessionsInDir");function Ne(e,t){return{async*parse(){let n;try{n=await ft(e.path,"utf-8")}catch{return}let o=n.split(`
|
|
15
|
-
`).filter(i=>i.trim()),s=ht(e.path,".jsonl"),r="";for(let[i,c]of o.entries()){let a;try{a=JSON.parse(c)}catch{continue}if(a.type==="session"){s=a.id??s;continue}if(a.type!=="message")continue;let u=a.message;if(!u)continue;if(u.role==="user"){let S=(u.content??[]).filter(k=>k.type==="text").map(k=>k.text??"").filter(Boolean);S.length>0&&(r=S.join(" "));continue}if(u.role!=="assistant"||!u.usage)continue;let{input:d,output:f,cacheRead:m,cacheWrite:h}=u.usage;if(d===0&&f===0)continue;let p=u.model??"gpt-5",y=u.responseId??"",g=`pi:${e.path}:${y||a.id||a.timestamp||String(i)}`;if(t.has(g))continue;t.add(g);let _=(u.content??[]).filter(S=>S.type==="toolCall"&&S.name),x=_.map(S=>gt[S.name]??S.name),v=_.filter(S=>S.name==="bash").flatMap(S=>{let k=S.arguments?.command;return typeof k=="string"?Oe(k):[]}),w=a.timestamp??"";yield{provider:"pi",model:p,inputTokens:d,outputTokens:f,cacheCreationInputTokens:h,cacheReadInputTokens:m,cachedInputTokens:m,reasoningTokens:0,costUSD:0,tools:x,bashCommands:v,timestamp:w,speed:"standard",deduplicationKey:g,userMessage:r,sessionId:s},r=""}}}}l(Ne,"createParser");var yt={name:"pi",displayName:"Pi",modelDisplayName(e){for(let[t,n]of we)if(e.startsWith(t))return n;return e},toolDisplayName(e){return gt[e]??e},async discoverSessions(){return Ae(Ie())},createSessionParser(e,t){return Ne(e,t)}};var Tt=[st,it,pt,yt],_t=null,St=!1;async function wt(){if(St)return _t;St=!0;try{let{cursor:e}=await import("./cursor-T7AMCMKS.js");return _t=e,e}catch{return null}}l(wt,"loadCursor");var vt=null,xt=!1;async function It(){if(xt)return vt;xt=!0;try{let{opencode:e}=await import("./opencode-QRJ3BH23.js");return vt=e,e}catch{return null}}l(It,"loadOpenCode");async function kt(){let[e,t]=await Promise.all([wt(),It()]),n=[...Tt];return e&&n.push(e),t&&n.push(t),n}l(kt,"getAllProviders");async function Pe(e){let t=await kt(),n=e&&e!=="all"?t.filter(s=>s.name===e):t,o=[];for(let s of n){let r=await s.discoverSessions();o.push(...r)}return o}l(Pe,"discoverAllSessions");async function be(e){return e==="cursor"?await wt()??void 0:e==="opencode"?await It()??void 0:Tt.find(t=>t.name===e)}l(be,"getProvider");import{spawn as Y}from"node:child_process";import{randomUUID as $e}from"node:crypto";import{writeFile as At}from"node:fs/promises";import{tmpdir as Nt}from"node:os";import{join as Pt}from"node:path";import{spawn as De}from"node:child_process";function V(e){return`rm-${e.trim().replace(/[^A-Za-z0-9_.-]+/g,"-").replace(/^-+|-+$/g,"").slice(0,80)||"session"}`}l(V,"sanitizeTmuxName");function K(e){let t=e.runId?["env",`RULEMETRIC_RUN_ID=${e.runId}`,"claude"]:["claude"];return e.resumeSessionId&&t.push("--resume",e.resumeSessionId),e.model&&t.push("--model",e.model),["new-session","-d","-s",e.sessionName,"-c",e.projectPath,"--",...t]}l(K,"buildTmuxLaunchArgs");function R(e,t,n={}){return n.literal===!1?["send-keys","-t",e,t]:["send-keys","-t",e,"-l","--",t]}l(R,"buildTmuxSendKeysArgs");function Ce(e){return["has-session","-t",e]}l(Ce,"buildTmuxHasSessionArgs");function E(e){return`tmux attach -t ${e}`}l(E,"buildTmuxAttachCommand");function je(){let e=["/opt/homebrew/bin","/usr/local/bin"],t=(process.env.PATH??"").split(":").filter(Boolean),n=e.filter(o=>!t.includes(o));return n.length===0?process.env:{...process.env,PATH:[...t,...n].join(":")}}l(je,"tmuxSpawnEnv");function X(e){return new Promise(t=>{let n=De("tmux",e,{stdio:["ignore","ignore","pipe"],env:je()}),o="";n.stderr.on("data",s=>{o+=s.toString()}),n.on("close",s=>t({code:s,stderr:o})),n.on("error",s=>t({code:null,stderr:s.message}))})}l(X,"runTmux");async function Ot(){return(await X(["-V"])).code===0}l(Ot,"isTmuxAvailable");var Ue=/^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$/i;function Re(e){if(e!==void 0){if(Ue.test(e))return e;console.warn(`[claude-code-launcher] dropping non-uuid runId (RULEMETRIC_RUN_ID not injected): ${JSON.stringify(e)}`)}}l(Re,"validateRunId");function Ee(e){return`'${e.replace(/'/g,"'\\''")}'`}l(Ee,"shellSingleQuote");var M=class{static{l(this,"ClaudeCodeLauncher")}options;tool="claude_code";constructor(t={}){this.options=t}capabilities={headless:!0,interactive:!0,remoteSpawn:!0};async launch(t){let n=$e(),o={...t,runId:Re(t.runId)};return o.mode==="headless"?this.launchHeadless(o,n):this.launchInteractive(o,n)}async launchHeadless(t,n){let o=["-p",t.prompt??"","--output-format","json"];t.systemPrompt&&o.push("--system-prompt",t.systemPrompt),t.model&&o.push("--model",t.model);let s={...process.env};return delete s.CLAUDECODE,delete s.HTTPS_PROXY,t.runId&&(s.RULEMETRIC_RUN_ID=t.runId),new Promise(r=>{let i=Y("claude",o,{cwd:t.projectPath,env:s,stdio:["ignore","pipe","pipe"]}),c="",a="";i.stdout.on("data",d=>{c+=d.toString()}),i.stderr.on("data",d=>{a+=d.toString()});let u=t.timeout?setTimeout(()=>{i.kill("SIGTERM")},t.timeout):null;i.on("close",d=>{u&&clearTimeout(u);let f=c;try{let m=JSON.parse(c);f=m.result??m.content??c}catch{}r({sessionId:n,pid:i.pid,exitCode:d,output:f,error:d!==0?a:void 0})}),i.on("error",d=>{u&&clearTimeout(u),r({sessionId:n,error:`Failed to spawn claude: ${d.message}`})})})}async launchInteractive(t,n){return await(this.options.tmuxAvailable??Ot)().catch(()=>!1)?this.launchInteractiveTmux(t,n):this.launchInteractiveTerminal(t,n,"tmux_not_found")}async launchInteractiveTmux(t,n){let o=this.options.runTmux??X,s=V(`claude-${t.resumeSessionId??n}`),r=await o(K({sessionName:s,projectPath:t.projectPath,resumeSessionId:t.resumeSessionId,model:t.model,runId:t.runId}));if(r.code!==0)return this.launchInteractiveTerminal(t,n,"tmux_launch_failed",`tmux new-session exited ${r.code}: ${r.stderr.trim()||"no stderr"}`);let i=await this.openTerminalAttach(s,n);if(t.prompt){let c=await o(R(s,t.prompt));if(c.code!==0)return{sessionId:n,liveSendAvailable:!1,fallbackReason:"tmux_launch_failed",error:`tmux send-keys exited ${c.code}: ${c.stderr.trim()||"no stderr"}`};let a=await o(R(s,"Enter",{literal:!1}));if(a.code!==0)return{sessionId:n,liveSendAvailable:!1,fallbackReason:"tmux_launch_failed",error:`tmux send Enter exited ${a.code}: ${a.stderr.trim()||"no stderr"}`}}return{sessionId:n,pid:i.pid,liveSendAvailable:!0,...i.error?{error:i.error}:{},terminalTarget:{kind:"tmux",target:s,attachCommand:E(s),live:!0}}}async openTerminalAttach(t,n){let o=Pt(Nt(),`rulemetric-attach-${n}.command`),s=`#!/bin/zsh
|
|
16
|
-
rm -- "$0"
|
|
17
|
-
${E(t)}
|
|
18
|
-
`;return await At(o,s,{mode:493}),new Promise(r=>{let i=Y("open",["-a","Terminal",o],{stdio:["ignore","pipe","pipe"]}),c="";i.stderr.on("data",a=>{c+=a.toString()}),i.on("close",a=>{r(a===0?{pid:i.pid}:{pid:i.pid,error:`open attach exited ${a}: ${c.trim()||"no stderr"}`})}),i.on("error",a=>{r({error:`Failed to spawn open attach: ${a.message}`})})})}async launchInteractiveTerminal(t,n,o,s){let r=["claude"];t.resumeSessionId?r.push("--resume",t.resumeSessionId):t.prompt&&r.push("-p",JSON.stringify(t.prompt)),t.model&&r.push("--model",t.model);let i=r.join(" "),c=Pt(Nt(),`rulemetric-launch-${n}.command`),a=t.runId?`export RULEMETRIC_RUN_ID=${Ee(t.runId)}
|
|
19
|
-
`:"",u=`#!/bin/zsh
|
|
20
|
-
rm -- "$0"
|
|
21
|
-
cd ${JSON.stringify(t.projectPath)} || exit
|
|
22
|
-
`+a+`${i}
|
|
23
|
-
`;return await At(c,u,{mode:493}),new Promise(d=>{let f=Y("open",["-a","Terminal",c],{stdio:["ignore","pipe","pipe"]}),m="";f.stderr.on("data",h=>{m+=h.toString()}),f.on("close",h=>{if(h===0)d({sessionId:n,pid:f.pid,liveSendAvailable:!1,fallbackReason:o,...s?{error:s}:{}});else{let p=m.trim()||"no stderr";d({sessionId:n,pid:f.pid,liveSendAvailable:!1,fallbackReason:o,error:s?`${s}; open exited ${h}: ${p}`:`open exited ${h}: ${p}`})}}),f.on("error",h=>{d({sessionId:n,liveSendAvailable:!1,fallbackReason:o,error:`Failed to spawn open: ${h.message}`})})})}};import{spawn as bt}from"node:child_process";import{randomUUID as Me}from"node:crypto";var q=class{static{l(this,"CodexLauncher")}tool="codex";capabilities={headless:!0,interactive:!0,remoteSpawn:!0};async launch(t){let n=Me();return t.mode==="headless"?this.launchHeadless(t,n):this.launchInteractive(t,n)}launchHeadless(t,n){let o=["-q",t.prompt??""];return t.model&&o.push("--model",t.model),new Promise(s=>{let r=bt("codex",o,{cwd:t.projectPath,stdio:["ignore","pipe","pipe"]}),i="",c="";r.stdout.on("data",u=>{i+=u.toString()}),r.stderr.on("data",u=>{c+=u.toString()});let a=t.timeout?setTimeout(()=>{r.kill("SIGTERM")},t.timeout):null;r.on("close",u=>{a&&clearTimeout(a),s({sessionId:n,pid:r.pid,exitCode:u,output:i,error:u!==0?c:void 0})}),r.on("error",u=>{a&&clearTimeout(a),s({sessionId:n,error:`Failed to spawn codex: ${u.message}`})})})}launchInteractive(t,n){let o=["codex"];t.prompt&&o.push(JSON.stringify(t.prompt));let s=`cd ${JSON.stringify(t.projectPath)} && ${o.join(" ")}`,r=bt("osascript",["-e",`tell application "Terminal" to do script ${JSON.stringify(s)}`],{stdio:"ignore",detached:!0});return r.unref(),Promise.resolve({sessionId:n,pid:r.pid})}};import{spawn as Dt}from"node:child_process";import{randomUUID as qe}from"node:crypto";function Je(e){let t=e.mode==="headless"?["--print","--mode","json","--no-session"]:[];return e.systemPrompt&&t.push("--system-prompt",e.systemPrompt),e.model&&t.push("--model",e.model),e.prompt&&t.push(e.prompt),t}l(Je,"buildPiLaunchArgs");function Be(e){let t;for(let o of e.split(`
|
|
24
|
-
`))if(o.trim())try{let s=JSON.parse(o);if(s.type!=="agent_end"||!Array.isArray(s.messages))continue;t=s.messages.filter(r=>r.role==="assistant").at(-1)}catch{}if(!t)return{output:e};if(t.stopReason==="error"||t.stopReason==="aborted")return{output:"",error:`Pi provider error: ${t.errorMessage??t.stopReason}`};let n=t.content?.filter(o=>o.type==="text"&&typeof o.text=="string").map(o=>o.text).join(`
|
|
25
|
-
`)??"";return n?{output:n}:{output:e}}l(Be,"parsePiLaunchOutput");var J=class{static{l(this,"PiLauncher")}tool="pi";capabilities={headless:!0,interactive:!0,remoteSpawn:!0};async launch(t){let n=qe(),o=Je(t);if(t.mode==="interactive"){let s=["pi",...o].map(c=>JSON.stringify(c)).join(" "),r=`cd ${JSON.stringify(t.projectPath)} && ${s}`,i=Dt("osascript",["-e",`tell application "Terminal" to do script ${JSON.stringify(r)}`],{stdio:"ignore",detached:!0});return i.unref(),{sessionId:n,pid:i.pid}}return new Promise(s=>{let r=Dt("pi",o,{cwd:t.projectPath,stdio:["ignore","pipe","pipe"]}),i="",c="";r.stdout.on("data",u=>{i+=u.toString()}),r.stderr.on("data",u=>{c+=u.toString()});let a=t.timeout?setTimeout(()=>r.kill("SIGTERM"),t.timeout):null;r.on("close",u=>{a&&clearTimeout(a);let d=Be(i);s({sessionId:n,pid:r.pid,exitCode:u,output:d.output,error:d.error??(u!==0?c.trim()||i.trim()||`pi exited ${u}`:void 0)})}),r.on("error",u=>{a&&clearTimeout(a),s({sessionId:n,error:`Failed to spawn pi: ${u.message}`})})})}};import{spawn as Ct}from"node:child_process";import{randomUUID as Ge}from"node:crypto";var B=class{static{l(this,"AiderLauncher")}tool="aider";capabilities={headless:!0,interactive:!0,remoteSpawn:!0};async launch(t){let n=Ge();return t.mode==="headless"?this.launchHeadless(t,n):this.launchInteractive(t,n)}launchHeadless(t,n){let o=["--message",t.prompt??"","--yes"];return t.model&&o.push("--model",t.model),new Promise(s=>{let r=Ct("aider",o,{cwd:t.projectPath,stdio:["ignore","pipe","pipe"]}),i="",c="";r.stdout.on("data",u=>{i+=u.toString()}),r.stderr.on("data",u=>{c+=u.toString()});let a=t.timeout?setTimeout(()=>{r.kill("SIGTERM")},t.timeout):null;r.on("close",u=>{a&&clearTimeout(a),s({sessionId:n,pid:r.pid,exitCode:u,output:i,error:u!==0?c:void 0})}),r.on("error",u=>{a&&clearTimeout(a),s({sessionId:n,error:`Failed to spawn aider: ${u.message}`})})})}launchInteractive(t,n){let o=["aider"];t.model&&o.push("--model",t.model);let s=`cd ${JSON.stringify(t.projectPath)} && ${o.join(" ")}`,r=Ct("osascript",["-e",`tell application "Terminal" to do script ${JSON.stringify(s)}`],{stdio:"ignore",detached:!0});return r.unref(),Promise.resolve({sessionId:n,pid:r.pid})}};import{spawn as Le}from"node:child_process";import{randomUUID as Fe}from"node:crypto";var G=class{static{l(this,"GenericLauncher")}tool;constructor(t){this.tool=t}capabilities={headless:!1,interactive:!0,remoteSpawn:!1};async launch(t){let n=Fe();if(t.mode==="headless")return{sessionId:n,error:`${this.tool} does not support headless mode`};let o=`cd ${JSON.stringify(t.projectPath)} && echo "Session ${n} \u2014 tool: ${this.tool}" && exec $SHELL`,s=Le("osascript",["-e",`tell application "Terminal" to do script ${JSON.stringify(o)}`],{stdio:"ignore",detached:!0});return s.unref(),{sessionId:n,pid:s.pid}}};var jt={claude_code:l(()=>new M,"claude_code"),codex:l(()=>new q,"codex"),pi:l(()=>new J,"pi"),aider:l(()=>new B,"aider")};function We(e){let t=jt[e];return t?t():new G(e)}l(We,"getLauncher");function He(){return Object.entries(jt).map(([e,t])=>({tool:e,capabilities:t().capabilities}))}l(He,"getAvailableLaunchers");import $t from"node:path";function Ut(e){return e.replace(/[^a-zA-Z0-9._-]+/g,"-").replace(/^[-.]+|[-.]+$/g,"")||"worktree"}l(Ut,"sanitizeBranch");function ze(e){return $t.resolve(e.basePath??$t.join(e.repoRoot,"..",".rulemetric-worktrees",Ut(e.branch)))}l(ze,"worktreePathFor");export{Ve as a,Ke as b,A as c,N as d,P as e,b as f,D as g,tt as h,C as i,j,Ht as k,zt as l,kt as m,Pe as n,be as o,V as p,K as q,R as r,Ce as s,E as t,We as u,He as v,Ut as w,ze as x};
|
package/dist/chunk-V576KKH6.js
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{a as m,c as Ds}from"./chunk-ZLLER3HP.js";import{boolean as sn,date as js,index as Qt,integer as zs,jsonb as Rs,pgTable as Yt,text as D,timestamp as G,uniqueIndex as ks,uuid as me}from"drizzle-orm/pg-core";var an=Yt("announcements",{id:me("id").primaryKey().defaultRandom(),version:D("version").notNull().unique(),releaseDate:js("release_date").notNull(),subject:D("subject").notNull(),htmlBody:D("html_body").notNull(),textBody:D("text_body").notNull(),sections:Rs("sections").notNull().default({}),status:D("status").notNull().default("draft"),recipientCount:zs("recipient_count"),sentAt:G("sent_at",{withTimezone:!0}),sentBy:me("sent_by"),error:D("error"),createdAt:G("created_at",{withTimezone:!0}).notNull().defaultNow(),updatedAt:G("updated_at",{withTimezone:!0}).notNull().defaultNow()},e=>[Qt("idx_announcements_status").on(e.status),Qt("idx_announcements_created").on(e.createdAt)]),dn=Yt("announcement_deliveries",{id:me("id").primaryKey().defaultRandom(),announcementId:me("announcement_id").notNull(),userId:me("user_id").notNull(),email:D("email").notNull(),status:D("status").notNull().default("pending"),providerId:D("provider_id"),error:D("error"),sentAt:G("sent_at",{withTimezone:!0}),createdAt:G("created_at",{withTimezone:!0}).notNull().defaultNow()},e=>[ks("uniq_announcement_deliveries_announcement_user").on(e.announcementId,e.userId),Qt("idx_announcement_deliveries_user").on(e.userId,e.createdAt)]),un=Yt("notification_preferences",{userId:me("user_id").primaryKey(),productAnnouncements:sn("product_announcements").notNull().default(!0),weeklyDigest:sn("weekly_digest").notNull().default(!0),unsubscribeToken:D("unsubscribe_token").notNull().unique(),unsubscribedAt:G("unsubscribed_at",{withTimezone:!0}),createdAt:G("created_at",{withTimezone:!0}).notNull().defaultNow(),updatedAt:G("updated_at",{withTimezone:!0}).notNull().defaultNow()});import{boolean as lt,integer as qe,jsonb as Es,pgTable as Ss,real as pn,text as Oe,timestamp as Wt,uuid as _n}from"drizzle-orm/pg-core";import{pgTable as ut,text as fe,timestamp as Ce,jsonb as ln,uuid as ne,primaryKey as cn}from"drizzle-orm/pg-core";var l=ut("organizations",{id:ne("id").primaryKey().defaultRandom(),name:fe("name").unique().notNull(),slug:fe("slug").unique().notNull(),metadata:ln("metadata"),createdAt:Ce("created_at",{withTimezone:!0}).defaultNow(),updatedAt:Ce("updated_at",{withTimezone:!0}).defaultNow()}),v=ut("teams",{id:ne("id").primaryKey().defaultRandom(),orgId:ne("org_id").references(()=>l.id,{onDelete:"cascade"}),name:fe("name").notNull(),slug:fe("slug").notNull(),metadata:ln("metadata"),createdAt:Ce("created_at",{withTimezone:!0}).defaultNow()}),Ne=ut("user_organizations",{userId:ne("user_id").notNull(),orgId:ne("org_id").references(()=>l.id,{onDelete:"cascade"}).notNull(),role:fe("role").notNull().default("member"),createdAt:Ce("created_at",{withTimezone:!0}).defaultNow()},e=>[cn({columns:[e.userId,e.orgId]})]),xe=ut("user_teams",{userId:ne("user_id").notNull(),teamId:ne("team_id").references(()=>v.id,{onDelete:"cascade"}).notNull(),role:fe("role").notNull().default("member"),createdAt:Ce("created_at",{withTimezone:!0}).defaultNow()},e=>[cn({columns:[e.userId,e.teamId]})]);var o=Ss("profiles",{id:_n("id").primaryKey(),email:Oe("email"),measurementPreferences:Es("measurement_preferences"),displayName:Oe("display_name"),activeOrgId:_n("active_org_id").references(()=>l.id,{onDelete:"set null"}),isSuperadmin:lt("is_superadmin").notNull().default(!1),claudeCodePlan:Oe("claude_code_plan"),planSource:Oe("plan_source").notNull().default("detected"),setupCompletedAt:Wt("setup_completed_at",{withTimezone:!0}),liveSendSkipped:lt("live_send_skipped").notNull().default(!1),autoAcceptSuggestions:lt("auto_accept_suggestions").notNull().default(!0),evolutionPaused:lt("evolution_paused").notNull().default(!1),suggestionConfidenceThreshold:pn("suggestion_confidence_threshold").notNull().default(.7),autoAcceptMinScore:pn("auto_accept_min_score"),autoAcceptMaxPerRun:qe("auto_accept_max_per_run"),autoAcceptMaxPerWindow:qe("auto_accept_max_per_window"),autoAcceptWindowDays:qe("auto_accept_window_days"),trialMaxConcurrent:qe("trial_max_concurrent"),trialMaxPerRun:qe("trial_max_per_run"),harborAbCadence:Oe("harbor_ab_cadence").notNull().default("off"),createdAt:Wt("created_at",{withTimezone:!0}).defaultNow(),updatedAt:Wt("updated_at",{withTimezone:!0}).defaultNow()});import{pgTable as bs,text as Xt,timestamp as ct,uuid as pt,index as mn}from"drizzle-orm/pg-core";var P=bs("org_invitations",{id:pt("id").primaryKey().defaultRandom(),orgId:pt("org_id").notNull().references(()=>l.id,{onDelete:"cascade"}),email:Xt("email").notNull(),role:Xt("role").notNull().default("member"),teamId:pt("team_id").references(()=>v.id,{onDelete:"set null"}),invitedBy:pt("invited_by").notNull().references(()=>o.id,{onDelete:"cascade"}),token:Xt("token").notNull().unique(),expiresAt:ct("expires_at",{withTimezone:!0}).notNull(),acceptedAt:ct("accepted_at",{withTimezone:!0}),revokedAt:ct("revoked_at",{withTimezone:!0}),createdAt:ct("created_at",{withTimezone:!0}).notNull().defaultNow()},e=>[mn("idx_org_invitations_token").on(e.token),mn("idx_org_invitations_org").on(e.orgId)]);import{pgTable as Zt,text as N,timestamp as V,jsonb as _t,uuid as z,integer as mt,boolean as Ps,uniqueIndex as ft,index as Me}from"drizzle-orm/pg-core";var n=Zt("instructions",{id:z("id").primaryKey().defaultRandom(),name:N("name").notNull(),description:N("description").notNull(),type:N("type").notNull().default("instruction"),scope:N("scope").notNull(),scopeRef:z("scope_ref"),version:N("version").notNull(),content:N("content").notNull(),frontmatter:_t("frontmatter").notNull(),slots:_t("slots"),tags:N("tags").array(),compatibility:N("compatibility").array(),createdBy:z("created_by"),createdAt:V("created_at",{withTimezone:!0}).defaultNow(),updatedAt:V("updated_at",{withTimezone:!0}).defaultNow(),archived:Ps("archived").default(!1),archivedAt:V("archived_at",{withTimezone:!0}),archivedBy:z("archived_by"),forkedFromId:z("forked_from_id").references(()=>n.id,{onDelete:"set null"}),upstreamVersion:N("upstream_version"),badge:N("badge"),contentHash:N("content_hash"),contextIdentity:N("context_identity"),scanScore:mt("scan_score"),scanFindings:_t("scan_findings"),popularityScore:mt("popularity_score"),sourceUpdatedAt:V("source_updated_at",{withTimezone:!0})},e=>[ft("instructions_name_scope_ref_idx").on(e.name,e.scope,e.scopeRef),Me("idx_instructions_scope").on(e.scope,e.scopeRef),Me("idx_instructions_created_by").on(e.createdBy),Me("idx_instructions_context_identity").on(e.createdBy,e.contextIdentity),Me("idx_instructions_public_recency").on(e.scope,e.sourceUpdatedAt.desc())]),fn=Zt("instruction_version_identities",{id:z("id").primaryKey().defaultRandom(),instructionId:z("instruction_id").notNull().references(()=>n.id,{onDelete:"cascade"}),contentHash:N("content_hash").notNull(),versionOrdinal:mt("version_ordinal").notNull(),content:N("content"),firstSeenAt:V("first_seen_at",{withTimezone:!0}).notNull().defaultNow(),lastSeenAt:V("last_seen_at",{withTimezone:!0}).notNull().defaultNow(),createdAt:V("created_at",{withTimezone:!0}).notNull().defaultNow()},e=>[ft("instruction_version_identities_hash_unique").on(e.instructionId,e.contentHash),ft("instruction_version_identities_ordinal_unique").on(e.instructionId,e.versionOrdinal),Me("idx_ivi_instruction").on(e.instructionId)]),he=Zt("instruction_versions",{id:z("id").primaryKey().defaultRandom(),instructionId:z("instruction_id").references(()=>n.id,{onDelete:"cascade"}),versionNumber:mt("version_number").notNull(),content:N("content").notNull(),frontmatter:_t("frontmatter").notNull(),changeSummary:N("change_summary"),createdBy:z("created_by"),createdAt:V("created_at",{withTimezone:!0}).defaultNow()},e=>[ft("instruction_versions_instruction_version_idx").on(e.instructionId,e.versionNumber)]);import{pgTable as Ks,text as Cs,timestamp as qs,jsonb as Os,uuid as eo,index as Nn}from"drizzle-orm/pg-core";var ge=Ks("instruction_events",{id:eo("id").primaryKey().defaultRandom(),instructionId:eo("instruction_id").notNull().references(()=>n.id,{onDelete:"cascade"}),eventType:Cs("event_type").notNull(),actorId:eo("actor_id").notNull(),metadata:Os("metadata"),createdAt:qs("created_at",{withTimezone:!0}).defaultNow()},e=>[Nn("idx_instruction_events_instruction").on(e.instructionId),Nn("idx_instruction_events_type").on(e.eventType)]);import{boolean as Ms,jsonb as Hs,pgTable as oo,primaryKey as xn,text as re,timestamp as He,uniqueIndex as to,uuid as se}from"drizzle-orm/pg-core";import{sql as Ls}from"drizzle-orm";var s=oo("projects",{id:se("id").primaryKey().defaultRandom(),orgId:se("org_id").references(()=>l.id,{onDelete:"cascade"}),name:re("name").notNull(),description:re("description"),githubRepo:re("github_repo"),gitRemoteUrl:re("git_remote_url"),gitRootCommit:re("git_root_commit"),gitRemoteAliases:re("git_remote_aliases").array().notNull().default([]),metadata:Hs("metadata"),createdBy:se("created_by"),createdAt:He("created_at",{withTimezone:!0}).defaultNow(),updatedAt:He("updated_at",{withTimezone:!0}).defaultNow()},e=>[to("projects_org_name_idx").on(e.orgId,e.name),to("projects_git_remote_url_unique").on(e.gitRemoteUrl).where(Ls`${e.gitRemoteUrl} IS NOT NULL`)]),F=oo("project_instructions",{projectId:se("project_id").references(()=>s.id,{onDelete:"cascade"}).notNull(),instructionId:se("instruction_id").references(()=>n.id,{onDelete:"cascade"}).notNull(),addedAt:He("added_at",{withTimezone:!0}).defaultNow(),addedBy:se("added_by")},e=>[xn({columns:[e.projectId,e.instructionId]})]),hn=oo("project_checkouts",{projectId:se("project_id").references(()=>s.id,{onDelete:"cascade"}).notNull(),path:re("path").notNull(),isWorktree:Ms("is_worktree").notNull().default(!1),firstSeen:He("first_seen",{withTimezone:!0}).notNull().defaultNow(),lastSeen:He("last_seen",{withTimezone:!0}).notNull().defaultNow()},e=>[xn({columns:[e.projectId,e.path]}),to("project_checkouts_path_unique").on(e.path)]);import{pgTable as so,text as I,timestamp as Le,jsonb as ie,uuid as K,integer as xt,uniqueIndex as vn,index as R}from"drizzle-orm/pg-core";import{pgTable as Us,text as ve,timestamp as no,jsonb as gn,uuid as Nt,integer as Bs,boolean as Gs,index as ro}from"drizzle-orm/pg-core";var h=Us("agent_runs",{id:Nt("id").primaryKey().defaultRandom(),userId:Nt("user_id").notNull().references(()=>o.id,{onDelete:"cascade"}),orgId:Nt("org_id").references(()=>l.id,{onDelete:"set null"}),projectId:Nt("project_id").references(()=>s.id,{onDelete:"set null"}),projectPath:ve("project_path"),gitRemote:ve("git_remote"),baseBranch:ve("base_branch"),title:ve("title"),prompt:ve("prompt"),toolSpec:gn("tool_spec").notNull().default([]),autoWorktree:Gs("auto_worktree").notNull().default(!0),status:ve("status").notNull().default("pending"),sessionCount:Bs("session_count").notNull().default(0),metadata:gn("metadata").notNull().default({}),createdAt:no("created_at",{withTimezone:!0}).notNull().defaultNow(),updatedAt:no("updated_at",{withTimezone:!0}).notNull().defaultNow(),completedAt:no("completed_at",{withTimezone:!0})},e=>[ro("idx_agent_runs_user").on(e.userId),ro("idx_agent_runs_org_created").on(e.orgId,e.createdAt),ro("idx_agent_runs_project").on(e.projectId)]);var a=so("sessions",{id:K("id").primaryKey().defaultRandom(),userId:K("user_id").notNull().references(()=>o.id,{onDelete:"cascade"}),externalSessionId:I("external_session_id"),projectId:K("project_id").references(()=>s.id,{onDelete:"set null"}),orgId:K("org_id").references(()=>l.id,{onDelete:"set null"}),tool:I("tool").notNull(),projectPath:I("project_path"),gitBranch:I("git_branch"),startedAt:Le("started_at",{withTimezone:!0}).notNull(),endedAt:Le("ended_at",{withTimezone:!0}),eventCount:xt("event_count").default(0),tokenUsage:ie("token_usage"),analysis:ie("analysis"),analyzedAt:Le("analyzed_at",{withTimezone:!0}),analyzedEventCount:xt("analyzed_event_count"),analyzedTurnCount:xt("analyzed_turn_count"),metadata:ie("metadata").default({}),origin:I("origin").notNull().default("unknown"),runId:K("run_id").references(()=>h.id,{onDelete:"set null"}),model:I("model"),harnessVersion:I("harness_version"),createdAt:Le("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),vn("idx_sessions_user_external").on(e.userId,e.externalSessionId)]),Ie=so("session_events",{id:K("id").primaryKey().defaultRandom(),sessionId:K("session_id").notNull().references(()=>a.id,{onDelete:"cascade"}),sequence:xt("sequence").notNull(),eventType:I("event_type").notNull(),content:I("content"),toolName:I("tool_name"),toolInput:ie("tool_input"),toolOutput:ie("tool_output"),tokenUsage:ie("token_usage"),model:I("model"),timestamp:Le("timestamp",{withTimezone:!0}).notNull(),metadata:ie("metadata").default({})},e=>[vn("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)]),$=so("session_instructions",{sessionId:K("session_id").notNull().references(()=>a.id,{onDelete:"cascade"}),instructionId:K("instruction_id").notNull().references(()=>n.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 In,text as ht,timestamp as yn,uuid as k,integer as wn,index as ye,unique as Vs}from"drizzle-orm/pg-core";var C=In("treatment_assignments",{id:k("id").primaryKey().defaultRandom(),userId:k("user_id").notNull().references(()=>o.id,{onDelete:"cascade"}),treatmentType:ht("treatment_type").notNull(),treatmentId:k("treatment_id").notNull(),treatmentVersion:wn("treatment_version").notNull().default(1),projectId:k("project_id").references(()=>s.id,{onDelete:"set null"}),assignedBy:k("assigned_by").references(()=>o.id,{onDelete:"set null"}),method:ht("method").notNull(),assignedAt:yn("assigned_at",{withTimezone:!0}).notNull().defaultNow()},e=>[ye("idx_treatment_assignments_user").on(e.userId),ye("idx_treatment_assignments_treatment").on(e.treatmentType,e.treatmentId),ye("idx_treatment_assignments_project").on(e.projectId)]),q=In("treatment_exposures",{id:k("id").primaryKey().defaultRandom(),sessionId:k("session_id").notNull().references(()=>a.id,{onDelete:"cascade"}),userId:k("user_id").notNull().references(()=>o.id,{onDelete:"cascade"}),treatmentType:ht("treatment_type").notNull(),treatmentId:k("treatment_id").notNull(),treatmentVersion:wn("treatment_version").notNull().default(1),assignmentId:k("assignment_id").references(()=>C.id,{onDelete:"set null"}),method:ht("method").notNull(),exposedAt:yn("exposed_at",{withTimezone:!0}).notNull().defaultNow()},e=>[Vs("treatment_exposures_unique").on(e.sessionId,e.treatmentType,e.treatmentId,e.treatmentVersion),ye("idx_treatment_exposures_treatment").on(e.treatmentType,e.treatmentId),ye("idx_treatment_exposures_user").on(e.userId),ye("idx_treatment_exposures_session").on(e.sessionId)]);import{pgTable as Fs,text as io,timestamp as $s,uuid as gt,integer as Js,index as Tn,uniqueIndex as Qs}from"drizzle-orm/pg-core";var An=Fs("pending_treatment_exposures",{id:gt("id").primaryKey().defaultRandom(),userId:gt("user_id").notNull().references(()=>o.id,{onDelete:"cascade"}),externalSessionId:io("external_session_id").notNull(),treatmentType:io("treatment_type").notNull(),treatmentId:gt("treatment_id").notNull(),treatmentVersion:Js("treatment_version").notNull().default(1),method:io("method").notNull().default("injected"),projectId:gt("project_id").references(()=>s.id,{onDelete:"set null"}),createdAt:$s("created_at",{withTimezone:!0}).notNull().defaultNow()},e=>[Qs("pending_treatment_exposures_unique").on(e.externalSessionId,e.treatmentType,e.treatmentId,e.treatmentVersion),Tn("idx_pending_treatment_exposures_ext").on(e.externalSessionId),Tn("idx_pending_treatment_exposures_user").on(e.userId)]);import{pgTable as Dn,text as J,timestamp as jn,uuid as we,numeric as Ys,index as ao,unique as Ws}from"drizzle-orm/pg-core";var Ue=Dn("instruction_experiments",{id:we("id").primaryKey().defaultRandom(),userId:we("user_id").notNull().references(()=>o.id,{onDelete:"cascade"}),instructionId:we("instruction_id").notNull().references(()=>n.id,{onDelete:"cascade"}),projectPath:J("project_path").notNull(),status:J("status").notNull().default("running"),treatedShare:Ys("treated_share").notNull().default("0.5"),salt:J("salt").notNull(),contentHash:J("content_hash"),source:J("source").notNull().default("manual"),stoppedReason:J("stopped_reason"),createdAt:jn("created_at",{withTimezone:!0}).notNull().defaultNow()},e=>[ao("idx_instruction_experiments_lookup").on(e.userId,e.projectPath)]),zn=Dn("instruction_experiment_arms",{id:we("id").primaryKey().defaultRandom(),experimentId:we("experiment_id").notNull().references(()=>Ue.id,{onDelete:"cascade"}),userId:we("user_id").notNull().references(()=>o.id,{onDelete:"cascade"}),externalSessionId:J("external_session_id").notNull(),arm:J("arm").notNull(),assignedAt:jn("assigned_at",{withTimezone:!0}).notNull().defaultNow()},e=>[Ws("instruction_experiment_arms_unique").on(e.experimentId,e.externalSessionId),ao("idx_instruction_experiment_arms_experiment").on(e.experimentId,e.arm),ao("idx_instruction_experiment_arms_session").on(e.externalSessionId)]);import{pgTable as Xs,text as uo,timestamp as Zs,uuid as vt,numeric as lo,integer as Rn,jsonb as ei,index as ti,unique as oi}from"drizzle-orm/pg-core";var kn=Xs("instruction_verdicts",{id:vt("id").primaryKey().defaultRandom(),userId:vt("user_id").notNull().references(()=>o.id,{onDelete:"cascade"}),instructionId:vt("instruction_id").notNull().references(()=>n.id,{onDelete:"cascade"}),contentHash:uo("content_hash").notNull(),projectPath:uo("project_path").notNull(),segment:ei("segment").notNull().default({}),decision:uo("decision").notNull(),delta:lo("delta").notNull(),ciLower:lo("ci_lower").notNull(),ciUpper:lo("ci_upper").notNull(),nTreated:Rn("n_treated").notNull(),nControl:Rn("n_control").notNull(),experimentId:vt("experiment_id").references(()=>Ue.id,{onDelete:"set null"}),decidedAt:Zs("decided_at",{withTimezone:!0}).notNull().defaultNow()},e=>[oi("instruction_verdicts_unique").on(e.instructionId,e.contentHash,e.projectPath),ti("idx_instruction_verdicts_render").on(e.userId,e.projectPath)]);import{pgTable as ni,text as It,timestamp as co,uuid as po,integer as ri,unique as si,index as ii}from"drizzle-orm/pg-core";var En=ni("insight_recommendation_log",{id:po("id").primaryKey().defaultRandom(),userId:po("user_id").notNull().references(()=>o.id,{onDelete:"cascade"}),projectPath:It("project_path").notNull().default(""),category:It("category").notNull(),contentHash:It("content_hash").notNull(),label:It("label").notNull().default(""),firstSeenAt:co("first_seen_at",{withTimezone:!0}).notNull().defaultNow(),lastSeenAt:co("last_seen_at",{withTimezone:!0}).notNull().defaultNow(),timesGenerated:ri("times_generated").notNull().default(1),lastJobId:po("last_job_id"),dismissedAt:co("dismissed_at",{withTimezone:!0})},e=>[si("insight_recommendation_log_unique").on(e.userId,e.projectPath,e.contentHash),ii("idx_insight_recommendation_log_read").on(e.userId,e.projectPath)]);import{pgTable as ai,text as Te,timestamp as _o,uuid as Be,integer as Sn,index as yt}from"drizzle-orm/pg-core";var w=ai("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:Sn("version").notNull().default(1),parentId:Be("parent_id").references(()=>w.id,{onDelete:"set null"}),kind:Te("kind").notNull(),title:Te("title").notNull(),body:Te("body").notNull(),source:Te("source").notNull(),status:Te("status").notNull().default("active"),trustClass:Te("trust_class"),trustVersion:Sn("trust_version"),trustComputedAt:_o("trust_computed_at",{withTimezone:!0}),createdAt:_o("created_at",{withTimezone:!0}).notNull().defaultNow(),updatedAt:_o("updated_at",{withTimezone:!0}).notNull().defaultNow()},e=>[yt("idx_memories_user").on(e.userId),yt("idx_memories_project").on(e.projectId),yt("idx_memories_parent").on(e.parentId),yt("idx_memories_user_status").on(e.userId,e.status)]);import{pgTable as di,text as ae,timestamp as mo,uuid as fo,integer as bn,jsonb as ui,index as Pn}from"drizzle-orm/pg-core";var Kn=di("memory_experiments",{id:fo("id").primaryKey().defaultRandom(),memoryId:fo("memory_id").notNull().references(()=>w.id,{onDelete:"cascade"}),userId:fo("user_id").notNull().references(()=>o.id,{onDelete:"cascade"}),memoryVersion:bn("memory_version").notNull().default(1),memoryBody:ae("memory_body"),taskPrompt:ae("task_prompt").notNull(),expectations:ae("expectations").array().notNull().default([]),trials:bn("trials").notNull().default(10),model:ae("model"),engine:ae("engine").$type().notNull().default("claude"),status:ae("status").notNull().default("pending"),result:ui("result").$type(),error:ae("error"),createdAt:mo("created_at",{withTimezone:!0}).notNull().defaultNow(),startedAt:mo("started_at",{withTimezone:!0}),completedAt:mo("completed_at",{withTimezone:!0})},e=>[Pn("idx_memory_experiments_memory").on(e.memoryId),Pn("idx_memory_experiments_user").on(e.userId)]);import{pgTable as li,text as Ae,timestamp as No,uuid as xo,jsonb as ci,uniqueIndex as pi,index as Cn}from"drizzle-orm/pg-core";var wt=li("session_terminal_targets",{id:xo("id").primaryKey().defaultRandom(),userId:xo("user_id").notNull().references(()=>o.id,{onDelete:"cascade"}),sessionId:xo("session_id").references(()=>a.id,{onDelete:"set null"}),externalSessionId:Ae("external_session_id"),kind:Ae("kind").notNull(),target:Ae("target").notNull(),status:Ae("status").notNull().default("active"),attachCommand:Ae("attach_command").notNull(),projectPath:Ae("project_path"),metadata:ci("metadata").notNull().default({}),lastSeenAt:No("last_seen_at",{withTimezone:!0}).defaultNow(),createdAt:No("created_at",{withTimezone:!0}).defaultNow(),updatedAt:No("updated_at",{withTimezone:!0}).defaultNow()},e=>[pi("idx_session_terminal_targets_user_target").on(e.userId,e.target),Cn("idx_session_terminal_targets_session").on(e.sessionId),Cn("idx_session_terminal_targets_user_status").on(e.userId,e.status)]);import{boolean as _i,index as Tt,jsonb as qn,pgTable as mi,text as de,timestamp as Ge,uuid as At,integer as ho}from"drizzle-orm/pg-core";var On=mi("session_send_jobs",{id:At("id").primaryKey().defaultRandom(),userId:At("user_id").notNull(),sessionId:At("session_id").notNull().references(()=>a.id,{onDelete:"cascade"}),terminalTargetId:At("terminal_target_id").references(()=>wt.id,{onDelete:"set null"}),target:de("target").notNull(),message:de("message").notNull(),submit:_i("submit").notNull().default(!0),delivery:de("delivery").notNull().default("live"),status:de("status").notNull().default("pending"),result:qn("result"),error:de("error"),attempts:ho("attempts").notNull().default(0),taskKind:de("task_kind"),payload:qn("payload"),claimedBy:de("claimed_by"),claimedAt:Ge("claimed_at",{withTimezone:!0}),leaseExpiresAt:Ge("lease_expires_at",{withTimezone:!0}),leaseRecoveries:ho("lease_recoveries").notNull().default(0),hostSuspendRecoveries:ho("host_suspend_recoveries").notNull().default(0),createdAt:Ge("created_at",{withTimezone:!0}).defaultNow(),updatedAt:Ge("updated_at",{withTimezone:!0}).defaultNow(),completedAt:Ge("completed_at",{withTimezone:!0})},e=>[Tt("idx_session_send_jobs_user").on(e.userId),Tt("idx_session_send_jobs_session").on(e.sessionId),Tt("idx_session_send_jobs_status").on(e.status),Tt("idx_session_send_jobs_pending").on(e.userId,e.status)]);import{pgTable as Hn,text as ue,timestamp as Dt,jsonb as Ln,uuid as Q,integer as fi,boolean as Ni,uniqueIndex as xi,index as Mn,primaryKey as hi}from"drizzle-orm/pg-core";var j=Hn("packs",{id:Q("id").primaryKey().defaultRandom(),name:ue("name").notNull(),description:ue("description").notNull(),scope:ue("scope").notNull(),scopeRef:Q("scope_ref"),version:ue("version").notNull().default("1.0.0"),tags:ue("tags").array(),badge:ue("badge"),metadata:Ln("metadata"),createdBy:Q("created_by"),createdAt:Dt("created_at",{withTimezone:!0}).defaultNow(),updatedAt:Dt("updated_at",{withTimezone:!0}).defaultNow(),archived:Ni("archived").default(!1),archivedAt:Dt("archived_at",{withTimezone:!0}),archivedBy:Q("archived_by"),forkedFromId:Q("forked_from_id").references(()=>j.id,{onDelete:"set null"}),upstreamVersion:ue("upstream_version")},e=>[xi("packs_name_scope_ref_idx").on(e.name,e.scope,e.scopeRef),Mn("idx_packs_scope").on(e.scope,e.scopeRef),Mn("idx_packs_created_by").on(e.createdBy)]),Y=Hn("pack_instructions",{packId:Q("pack_id").references(()=>j.id,{onDelete:"cascade"}).notNull(),instructionId:Q("instruction_id").references(()=>n.id,{onDelete:"cascade"}).notNull(),position:fi("position").notNull().default(0),slotOverrides:Ln("slot_overrides"),addedAt:Dt("added_at",{withTimezone:!0}).defaultNow(),addedBy:Q("added_by")},e=>[hi({columns:[e.packId,e.instructionId]})]);import{pgTable as gi,text as go,timestamp as vi,jsonb as Ii,uuid as vo,index as De}from"drizzle-orm/pg-core";var je=gi("instruction_usage_events",{id:vo("id").primaryKey().defaultRandom(),instructionId:vo("instruction_id").references(()=>n.id,{onDelete:"set null"}),userId:vo("user_id").notNull(),surface:go("surface").notNull(),action:go("action").notNull(),metadata:Ii("metadata"),traceId:go("trace_id"),createdAt:vi("created_at",{withTimezone:!0}).defaultNow()},e=>[De("idx_usage_events_instruction").on(e.instructionId),De("idx_usage_events_user").on(e.userId),De("idx_usage_events_surface").on(e.surface),De("idx_usage_events_action").on(e.action),De("idx_usage_events_created_at").on(e.createdAt),De("idx_usage_events_user_created").on(e.userId,e.createdAt)]);import{pgTable as yi,text as jt,timestamp as zt,jsonb as wi,uuid as Un,index as Io}from"drizzle-orm/pg-core";var Bn=yi("worker_connections",{id:Un("id").primaryKey().defaultRandom(),userId:Un("user_id").notNull(),workerType:jt("worker_type").notNull().default("mcp"),clientName:jt("client_name").notNull(),clientVersion:jt("client_version"),workerVersion:jt("worker_version"),lastHeartbeat:zt("last_heartbeat",{withTimezone:!0}).notNull().defaultNow(),presenceGapStartedAt:zt("presence_gap_started_at",{withTimezone:!0}),presenceGapEndedAt:zt("presence_gap_ended_at",{withTimezone:!0}),connectedAt:zt("connected_at",{withTimezone:!0}).notNull().defaultNow(),metadata:wi("metadata")},e=>[Io("idx_worker_connections_user").on(e.userId),Io("idx_worker_connections_heartbeat").on(e.userId,e.lastHeartbeat),Io("idx_worker_connections_type").on(e.userId,e.workerType)]);import{pgTable as Ti,text as Rt,timestamp as Ai,jsonb as Di,uuid as Gn,index as Vn}from"drizzle-orm/pg-core";var Fn=Ti("cli_setup_events",{id:Gn("id").primaryKey().defaultRandom(),userId:Gn("user_id").notNull(),deviceId:Rt("device_id").notNull(),event:Rt("event").notNull(),cliVersion:Rt("cli_version"),os:Rt("os"),props:Di("props").notNull().default({}),createdAt:Ai("created_at",{withTimezone:!0}).notNull().defaultNow()},e=>[Vn("idx_cli_setup_events_user").on(e.userId,e.createdAt),Vn("idx_cli_setup_events_device").on(e.deviceId,e.createdAt)]);import{pgTable as ji,text as le,integer as zi,boolean as Ri,timestamp as ki,jsonb as Ei,uuid as Si,index as $n}from"drizzle-orm/pg-core";var Jn=ji("cli_error_events",{id:Si("id").primaryKey().defaultRandom(),deviceId:le("device_id"),event:le("event").notNull(),command:le("command"),statusCode:zi("status_code"),message:le("message"),cliVersion:le("cli_version"),os:le("os"),nodeVersion:le("node_version"),proxied:Ri("proxied"),props:Ei("props").notNull().default({}),createdAt:ki("created_at",{withTimezone:!0}).notNull().defaultNow()},e=>[$n("idx_cli_error_events_created").on(e.createdAt),$n("idx_cli_error_events_device").on(e.deviceId,e.createdAt)]);import{sql as yo}from"drizzle-orm";import{pgTable as ce,text as p,timestamp as g,jsonb as T,uuid as c,integer as O,boolean as Ve,index as f,unique as Qn}from"drizzle-orm/pg-core";var r=ce("eval_targets",{id:c("id").primaryKey().defaultRandom(),userId:c("user_id").notNull(),name:p("name").notNull(),type:p("type").notNull(),content:p("content").notNull(),description:p("description").notNull().default(""),metadata:T("metadata").notNull().default({}),version:O("version").notNull().default(1),parentId:c("parent_id").references(()=>r.id,{onDelete:"set null"}),instructionId:c("instruction_id").references(()=>n.id,{onDelete:"set null"}),projectPath:p("project_path"),createdAt:g("created_at",{withTimezone:!0}).defaultNow(),updatedAt:g("updated_at",{withTimezone:!0}).defaultNow()},e=>[f("eval_targets_name_user_idx").on(e.name,e.userId),f("idx_eval_targets_user").on(e.userId),f("idx_eval_targets_type").on(e.type),f("idx_eval_targets_parent").on(e.parentId),f("idx_eval_targets_instruction").on(e.instructionId).where(yo`${e.instructionId} IS NOT NULL`),f("idx_eval_targets_project").on(e.projectPath).where(yo`${e.projectPath} IS NOT NULL`)]),M=ce("evals",{id:c("id").primaryKey().defaultRandom(),evalTargetId:c("eval_target_id").notNull().references(()=>r.id,{onDelete:"cascade"}),name:p("name").notNull(),prompt:p("prompt").notNull(),expectedOutput:p("expected_output").notNull().default(""),files:T("files").notNull().default([]),expectations:T("expectations").notNull().default([]),retiredAt:g("retired_at",{withTimezone:!0}),retiredReason:p("retired_reason"),createdAt:g("created_at",{withTimezone:!0}).defaultNow(),updatedAt:g("updated_at",{withTimezone:!0}).defaultNow(),contentUpdatedAt:g("content_updated_at",{withTimezone:!0}).notNull().defaultNow()},e=>[f("idx_evals_target").on(e.evalTargetId),f("idx_evals_target_active").on(e.evalTargetId).where(yo`${e.retiredAt} IS NULL`)]),E=ce("eval_runs",{id:c("id").primaryKey().defaultRandom(),jobId:c("job_id"),evalId:c("eval_id").notNull().references(()=>M.id,{onDelete:"cascade"}),evalTargetId:c("eval_target_id").notNull().references(()=>r.id,{onDelete:"cascade"}),evalTargetVersion:O("eval_target_version").notNull(),configuration:p("configuration").notNull(),runNumber:O("run_number").notNull().default(1),iteration:O("iteration").notNull().default(1),status:p("status").notNull().default("completed"),outputs:T("outputs").notNull().default({}),timing:T("timing").notNull().default({}),grading:T("grading").notNull().default({}),comparison:T("comparison"),createdAt:g("created_at",{withTimezone:!0}).defaultNow()},e=>[f("idx_eval_runs_eval").on(e.evalId),f("idx_eval_runs_target").on(e.evalTargetId),f("idx_eval_runs_iteration").on(e.evalTargetId,e.iteration)]),Yn=ce("eval_comparisons",{id:c("id").primaryKey().defaultRandom(),userId:c("user_id").notNull(),targetAId:c("target_a_id").notNull().references(()=>r.id,{onDelete:"cascade"}),targetBId:c("target_b_id").notNull().references(()=>r.id,{onDelete:"cascade"}),targetAVersion:O("target_a_version").notNull(),targetBVersion:O("target_b_version").notNull(),isSwapped:Ve("is_swapped").notNull().default(!1),winnerTargetId:c("winner_target_id").references(()=>r.id,{onDelete:"set null"}),perEval:T("per_eval").notNull().default([]),overall:T("overall").notNull().default({}),rawOutput:p("raw_output"),model:p("model"),status:p("status").notNull().default("completed"),createdAt:g("created_at",{withTimezone:!0}).defaultNow()},e=>[f("idx_eval_comparisons_target_a").on(e.targetAId),f("idx_eval_comparisons_target_b").on(e.targetBId),f("idx_eval_comparisons_user").on(e.userId)]),Wn=ce("eval_grade_annotations",{id:c("id").primaryKey().defaultRandom(),userId:c("user_id").notNull(),evalRunId:c("eval_run_id").notNull().references(()=>E.id,{onDelete:"cascade"}),evalTargetId:c("eval_target_id").notNull().references(()=>r.id,{onDelete:"cascade"}),expectationIndex:O("expectation_index").notNull(),expectationText:p("expectation_text").notNull(),judgePassed:Ve("judge_passed").notNull(),judgeMethod:p("judge_method").notNull(),judgeModel:p("judge_model"),verdict:p("verdict").notNull(),flag:p("flag"),note:p("note"),createdAt:g("created_at",{withTimezone:!0}).defaultNow(),updatedAt:g("updated_at",{withTimezone:!0}).defaultNow()},e=>[f("idx_eval_grade_annotations_target").on(e.evalTargetId),f("idx_eval_grade_annotations_run").on(e.evalRunId),Qn("eval_grade_annotations_eval_run_id_expectation_index_key").on(e.evalRunId,e.expectationIndex)]),Xn=ce("judge_reviewer_verdicts",{id:c("id").primaryKey().defaultRandom(),userId:c("user_id").notNull(),evalTargetId:c("eval_target_id").notNull().references(()=>r.id,{onDelete:"cascade"}),evalRunId:c("eval_run_id").notNull().references(()=>E.id,{onDelete:"cascade"}),expectationIndex:O("expectation_index").notNull(),expectationText:p("expectation_text").notNull(),judgePassed:Ve("judge_passed").notNull(),humanPassed:Ve("human_passed").notNull(),reviewerEngine:p("reviewer_engine").notNull(),reviewerModel:p("reviewer_model").notNull(),reviewerPassed:Ve("reviewer_passed").notNull(),resolvedAt:g("resolved_at",{withTimezone:!0}),resolution:p("resolution"),createdAt:g("created_at",{withTimezone:!0}).defaultNow(),updatedAt:g("updated_at",{withTimezone:!0}).defaultNow()},e=>[f("idx_jrv_target").on(e.evalTargetId),Qn("judge_reviewer_verdicts_eval_run_id_expectation_index_review_key").on(e.evalRunId,e.expectationIndex,e.reviewerModel)]),ze=ce("benchmarks",{id:c("id").primaryKey().defaultRandom(),evalTargetId:c("eval_target_id").notNull().references(()=>r.id,{onDelete:"cascade"}),iteration:O("iteration").notNull().default(1),runSummary:T("run_summary").notNull().default({}),notes:T("notes").notNull().default([]),feedback:T("feedback"),createdAt:g("created_at",{withTimezone:!0}).defaultNow()},e=>[f("idx_benchmarks_target").on(e.evalTargetId)]);import{sql as wo}from"drizzle-orm";import{pgTable as bi,text as H,timestamp as Pi,jsonb as kt,uuid as Et,boolean as Ki,index as Fe,uniqueIndex as Ci}from"drizzle-orm/pg-core";var Zn=bi("instruction_promotions",{id:Et("id").primaryKey().defaultRandom(),userId:Et("user_id").notNull(),evalTargetId:Et("eval_target_id").notNull().references(()=>r.id,{onDelete:"cascade"}),instructionId:Et("instruction_id").references(()=>n.id,{onDelete:"set null"}),fromContentHash:H("from_content_hash").notNull(),toContentHash:H("to_content_hash").notNull(),fromContent:H("from_content").notNull(),toContent:H("to_content").notNull(),proposalSource:H("proposal_source").notNull(),proposalRationale:H("proposal_rationale").notNull().default(""),decision:H("decision").notNull(),applied:Ki("applied").notNull().default(!1),refusals:kt("refusals").notNull().default([]),rationale:H("rationale").notNull().default(""),effectClass:H("effect_class").notNull(),verdict:kt("verdict").notNull().default({}),gates:kt("gates").notNull().default({}),touchedSections:kt("touched_sections").notNull().default([]),createdAt:Pi("created_at",{withTimezone:!0}).notNull().defaultNow()},e=>[Fe("idx_instruction_promotions_budget").on(e.evalTargetId,e.createdAt.desc()).where(wo`${e.applied}`),Fe("idx_instruction_promotions_target").on(e.evalTargetId,e.createdAt.desc()),Fe("idx_instruction_promotions_user").on(e.userId,e.createdAt.desc()),Fe("idx_instruction_promotions_to_hash").on(e.toContentHash),Ci("uq_instruction_promotions_applied").on(e.evalTargetId,e.fromContentHash,e.toContentHash).where(wo`${e.applied}`),Fe("idx_instruction_promotions_applied_hash").on(e.toContentHash,e.createdAt.desc()).where(wo`${e.applied}`)]);import{index as $e,integer as qi,jsonb as Oi,pgTable as Mi,text as y,timestamp as Re,uniqueIndex as Hi,uuid as Je}from"drizzle-orm/pg-core";var er=Mi("recommendation_applications",{id:Je("id").primaryKey().defaultRandom(),userId:Je("user_id").notNull(),instructionId:Je("instruction_id").notNull().references(()=>n.id,{onDelete:"cascade"}),projectId:Je("project_id").references(()=>s.id,{onDelete:"set null"}),projectPath:y("project_path").notNull(),harness:y("harness").notNull(),targetPath:y("target_path").notNull(),status:y("status").notNull().default("proposed"),applyMode:y("apply_mode").notNull(),beforeHash:y("before_hash"),appliedHash:y("applied_hash"),appliedAt:Re("applied_at",{withTimezone:!0}),measurementStartedAt:Re("measurement_started_at",{withTimezone:!0}),measurementEndedAt:Re("measurement_ended_at",{withTimezone:!0}),verdict:y("verdict"),verdictDetail:y("verdict_detail"),revertedAt:Re("reverted_at",{withTimezone:!0}),boundaryClass:y("boundary_class"),targets:y("targets").array().notNull().default([]),inverse:Oi("inverse"),requires:y("requires").array().notNull().default([]),provides:y("provides").array().notNull().default([]),applyBatchId:Je("apply_batch_id"),applySeq:qi("apply_seq"),createdAt:Re("created_at",{withTimezone:!0}).notNull().defaultNow(),updatedAt:Re("updated_at",{withTimezone:!0}).notNull().defaultNow()},e=>[Hi("uq_recommendation_applications_target").on(e.userId,e.instructionId,e.projectPath,e.harness,e.targetPath),$e("idx_recommendation_applications_user_status").on(e.userId,e.status,e.updatedAt.desc()),$e("idx_recommendation_applications_user_harness").on(e.userId,e.harness,e.updatedAt.desc()),$e("idx_recommendation_applications_project").on(e.projectId,e.updatedAt.desc()),$e("idx_recommendation_applications_batch").on(e.userId,e.applyBatchId,e.applySeq.desc()),$e("idx_recommendation_applications_requires").using("gin",e.requires)]);import{pgTable as Li,text as S,timestamp as tr,jsonb as Qe,uuid as To,integer as ke,real as Ui,index as W,uniqueIndex as or}from"drizzle-orm/pg-core";import{sql as Ao}from"drizzle-orm";var X=Li("context_snapshots",{id:To("id").primaryKey().defaultRandom(),sessionId:To("session_id").references(()=>a.id,{onDelete:"cascade"}),userId:To("user_id").notNull().references(()=>o.id,{onDelete:"cascade"}),sequence:ke("sequence").notNull().default(0),provider:S("provider").notNull(),model:S("model").notNull(),systemPrompt:S("system_prompt").notNull(),injectedInstructions:Qe("injected_instructions").notNull().default([]),messagesSummary:Qe("messages_summary").notNull(),tools:Qe("tools").notNull().default([]),systemHash:S("system_hash").notNull(),requestHash:S("request_hash").notNull().default(""),toolsHash:S("tools_hash"),injectedHash:S("injected_hash"),messagesDelta:Qe("messages_delta").default([]),messagesDeltaRef:S("messages_delta_ref"),messagesBaseLength:ke("messages_base_length"),payloadPrunedAt:tr("payload_pruned_at",{withTimezone:!0}),deltaOffloadState:S("delta_offload_state").notNull().default("inline"),deltaGzipBytes:ke("delta_gzip_bytes"),deltaOffloadError:S("delta_offload_error"),deltaOffloadAttempts:ke("delta_offload_attempts").notNull().default(0),maxTokens:ke("max_tokens"),temperature:Ui("temperature"),estimatedTokens:ke("estimated_tokens"),capturedAt:tr("captured_at",{withTimezone:!0}).notNull().defaultNow(),metadata:Qe("metadata").default({})},e=>[W("idx_context_snapshots_session").on(e.sessionId),W("idx_context_snapshots_user").on(e.userId),W("idx_context_snapshots_hash").on(e.systemHash),W("idx_context_snapshots_request_hash").on(e.requestHash),or("idx_snapshots_session_request").on(e.sessionId,e.requestHash),or("idx_snapshots_session_sequence").on(e.sessionId,e.sequence),W("idx_context_snapshots_user_session_captured").on(e.userId,e.sessionId,e.capturedAt.desc()),W("idx_snapshots_unpruned_captured").on(e.capturedAt,e.id).where(Ao`${e.payloadPrunedAt} is null`),W("idx_snapshots_pending_offload").on(e.deltaOffloadState,e.capturedAt,e.id).where(Ao`${e.deltaOffloadState} = 'pending'`),W("idx_snapshots_delta_ref").on(e.messagesDeltaRef).where(Ao`${e.messagesDeltaRef} is not null`)]);import{pgTable as Bi,text as nr,timestamp as rr,jsonb as Gi,integer as Vi,index as Fi}from"drizzle-orm/pg-core";var sr=Bi("content_blobs",{hash:nr("hash").primaryKey(),contentType:nr("content_type").notNull(),content:Gi("content").notNull(),sizeBytes:Vi("size_bytes").notNull().default(0),createdAt:rr("created_at",{withTimezone:!0}).defaultNow(),lastReferencedAt:rr("last_referenced_at",{withTimezone:!0}).notNull().defaultNow()},e=>[Fi("idx_content_blobs_type").on(e.contentType)]);import{integer as ir,jsonb as $i,pgTable as Ji,timestamp as Qi,uuid as Yi}from"drizzle-orm/pg-core";var ar=Ji("session_capture_heads",{sessionId:Yi("session_id").primaryKey().references(()=>a.id,{onDelete:"cascade"}),sequence:ir("sequence").notNull(),rawMessageHashes:$i("raw_message_hashes").notNull().$type(),version:ir("version").notNull(),updatedAt:Qi("updated_at",{withTimezone:!0}).notNull().defaultNow()});import{index as Wi,integer as dr,pgTable as Xi,text as Do,timestamp as ur,uniqueIndex as Zi,uuid as ea}from"drizzle-orm/pg-core";import{sql as ta}from"drizzle-orm";var lr=Xi("snapshot_delta_objects",{ref:Do("ref").primaryKey(),snapshotId:ea("snapshot_id"),compressedBytes:dr("compressed_bytes").notNull(),state:Do("state").notNull(),createdAt:ur("created_at",{withTimezone:!0}).notNull().defaultNow(),lastAttemptAt:ur("last_attempt_at",{withTimezone:!0}),attempts:dr("attempts").notNull().default(0),lastError:Do("last_error")},e=>[Wi("idx_snapshot_delta_objects_state_created").on(e.state,e.createdAt),Zi("snapshot_delta_objects_snapshot_id_unique").on(e.snapshotId).where(ta`${e.snapshotId} is not null`)]);import{pgTable as oa,text as St,timestamp as Ye,jsonb as bt,uuid as jo,index as Pt,integer as zo}from"drizzle-orm/pg-core";var b=oa("eval_jobs",{id:jo("id").primaryKey().defaultRandom(),userId:jo("user_id").notNull(),evalTargetId:jo("eval_target_id").notNull().references(()=>r.id,{onDelete:"cascade"}),status:St("status").notNull().default("pending"),config:bt("config").notNull().default({}),progress:bt("progress").notNull().default({}),result:bt("result"),error:St("error"),attempts:zo("attempts").notNull().default(0),taskKind:St("task_kind"),payload:bt("payload"),claimedBy:St("claimed_by"),claimedAt:Ye("claimed_at",{withTimezone:!0}),leaseExpiresAt:Ye("lease_expires_at",{withTimezone:!0}),leaseRecoveries:zo("lease_recoveries").notNull().default(0),hostSuspendRecoveries:zo("host_suspend_recoveries").notNull().default(0),createdAt:Ye("created_at",{withTimezone:!0}).defaultNow(),updatedAt:Ye("updated_at",{withTimezone:!0}).defaultNow(),completedAt:Ye("completed_at",{withTimezone:!0})},e=>[Pt("idx_eval_jobs_user").on(e.userId),Pt("idx_eval_jobs_target").on(e.evalTargetId),Pt("idx_eval_jobs_status").on(e.status),Pt("idx_eval_jobs_pending").on(e.userId,e.status)]);import{pgTable as na,text as We,timestamp as Xe,jsonb as cr,uuid as pr,integer as Ro,index as _r}from"drizzle-orm/pg-core";var mr=na("agent_jobs",{id:pr("id").primaryKey().defaultRandom(),userId:pr("user_id").notNull(),taskKind:We("task_kind").notNull(),status:We("status").notNull().default("pending"),payload:cr("payload").notNull(),dedupeKey:We("dedupe_key"),result:cr("result"),error:We("error"),attempts:Ro("attempts").notNull().default(0),claimedBy:We("claimed_by"),claimedAt:Xe("claimed_at",{withTimezone:!0}),leaseExpiresAt:Xe("lease_expires_at",{withTimezone:!0}),leaseRecoveries:Ro("lease_recoveries").notNull().default(0),hostSuspendRecoveries:Ro("host_suspend_recoveries").notNull().default(0),createdAt:Xe("created_at",{withTimezone:!0}).notNull().defaultNow(),updatedAt:Xe("updated_at",{withTimezone:!0}).notNull().defaultNow(),completedAt:Xe("completed_at",{withTimezone:!0})},e=>[_r("idx_agent_jobs_claim").on(e.userId,e.status,e.taskKind,e.createdAt),_r("idx_agent_jobs_dedupe").on(e.userId,e.taskKind,e.dedupeKey)]);import{pgTable as ra,text as Ze,timestamp as et,jsonb as Kt,uuid as ko,index as Ct,integer as Eo}from"drizzle-orm/pg-core";var fr=ra("insights_jobs",{id:ko("id").primaryKey().defaultRandom(),userId:ko("user_id").notNull(),status:Ze("status").notNull().default("pending"),projectPath:Ze("project_path"),projectId:ko("project_id").references(()=>s.id,{onDelete:"set null"}),config:Kt("config").notNull().default({}),progress:Kt("progress").notNull().default({}),result:Kt("result"),error:Ze("error"),attempts:Eo("attempts").notNull().default(0),taskKind:Ze("task_kind"),payload:Kt("payload"),claimedBy:Ze("claimed_by"),claimedAt:et("claimed_at",{withTimezone:!0}),leaseExpiresAt:et("lease_expires_at",{withTimezone:!0}),leaseRecoveries:Eo("lease_recoveries").notNull().default(0),hostSuspendRecoveries:Eo("host_suspend_recoveries").notNull().default(0),createdAt:et("created_at",{withTimezone:!0}).defaultNow(),updatedAt:et("updated_at",{withTimezone:!0}).defaultNow(),completedAt:et("completed_at",{withTimezone:!0})},e=>[Ct("idx_insights_jobs_user").on(e.userId),Ct("idx_insights_jobs_status").on(e.status),Ct("idx_insights_jobs_pending").on(e.userId,e.status),Ct("idx_insights_jobs_project").on(e.projectId)]);import{pgTable as sa,text as So,timestamp as qt,uuid as Nr,index as ia,uniqueIndex as aa}from"drizzle-orm/pg-core";var Ee=sa("api_keys",{id:Nr("id").primaryKey().defaultRandom(),userId:Nr("user_id").notNull().references(()=>o.id,{onDelete:"cascade"}),name:So("name").notNull(),keyHash:So("key_hash").notNull(),keyPrefix:So("key_prefix").notNull(),lastUsedAt:qt("last_used_at",{withTimezone:!0}),expiresAt:qt("expires_at",{withTimezone:!0}),revokedAt:qt("revoked_at",{withTimezone:!0}),createdAt:qt("created_at",{withTimezone:!0}).defaultNow()},e=>[ia("idx_api_keys_user").on(e.userId),aa("idx_api_keys_hash").on(e.keyHash)]);import{pgTable as da,text as bo,timestamp as xr,uuid as ua,index as la}from"drizzle-orm/pg-core";var hr=da("extension_auth_codes",{code:bo("code").primaryKey(),userId:ua("user_id").notNull().references(()=>o.id,{onDelete:"cascade"}),editor:bo("editor"),email:bo("email"),expiresAt:xr("expires_at",{withTimezone:!0}).notNull(),createdAt:xr("created_at",{withTimezone:!0}).defaultNow()},e=>[la("idx_ext_auth_codes_expiry").on(e.expiresAt)]);import{pgTable as ca,text as pa,timestamp as gr,jsonb as _a,uuid as Po,index as vr}from"drizzle-orm/pg-core";var Se=ca("eval_conversations",{id:Po("id").primaryKey().defaultRandom(),evalTargetId:Po("eval_target_id").notNull().references(()=>r.id,{onDelete:"cascade"}),userId:Po("user_id").notNull(),messages:_a("messages").notNull().default([]),status:pa("status").notNull().default("active"),createdAt:gr("created_at",{withTimezone:!0}).defaultNow(),updatedAt:gr("updated_at",{withTimezone:!0}).defaultNow()},e=>[vr("idx_eval_conversations_target").on(e.evalTargetId),vr("idx_eval_conversations_user").on(e.userId)]);import{pgTable as ma,text as L,timestamp as Ir,jsonb as fa,uuid as Ko}from"drizzle-orm/pg-core";var yr=ma("skill_submissions",{id:Ko("id").primaryKey().defaultRandom(),skillId:L("skill_id").notNull(),name:L("name").notNull(),description:L("description").notNull(),category:L("category").notNull(),tools:L("tools").array().notNull(),tags:L("tags").array().default([]),content:L("content").notNull(),status:L("status").notNull().default("pending"),submittedBy:Ko("submitted_by").notNull(),reviewedBy:Ko("reviewed_by"),reviewNote:L("review_note"),metadata:fa("metadata"),createdAt:Ir("created_at",{withTimezone:!0}).defaultNow(),updatedAt:Ir("updated_at",{withTimezone:!0}).defaultNow()});import{pgTable as Na,text as tt,timestamp as wr,jsonb as xa,uuid as ha,uniqueIndex as ga,index as Tr}from"drizzle-orm/pg-core";var Ar=Na("harness_releases",{id:ha("id").primaryKey().defaultRandom(),harness:tt("harness").notNull(),version:tt("version").notNull(),publishedAt:wr("published_at",{withTimezone:!0}).notNull(),title:tt("title"),body:tt("body"),categories:xa("categories").default({}),url:tt("url"),createdAt:wr("created_at",{withTimezone:!0}).defaultNow()},e=>[ga("idx_harness_releases_unique").on(e.harness,e.version),Tr("idx_harness_releases_harness").on(e.harness),Tr("idx_harness_releases_published").on(e.publishedAt)]);import{pgTable as va,text as be,timestamp as Dr,jsonb as Ia,uuid as jr,index as zr,uniqueIndex as ya}from"drizzle-orm/pg-core";var Co=va("notifications",{id:jr("id").primaryKey().defaultRandom(),userId:jr("user_id").notNull(),type:be("type").notNull(),title:be("title").notNull(),body:be("body"),url:be("url"),sourceTable:be("source_table"),sourceId:be("source_id"),metadata:Ia("metadata").notNull().default({}),readAt:Dr("read_at",{withTimezone:!0}),createdAt:Dr("created_at",{withTimezone:!0}).notNull().defaultNow()},e=>[zr("idx_notifications_user_created").on(e.userId,e.createdAt),zr("idx_notifications_user_unread").on(e.userId),ya("idx_notifications_source_dedup").on(e.userId,e.sourceTable,e.sourceId)]);import{pgTable as wa,text as ot,timestamp as nt,jsonb as qo,uuid as Oo,index as Ot,integer as Mo}from"drizzle-orm/pg-core";var Pe=wa("launch_jobs",{id:Oo("id").primaryKey().defaultRandom(),userId:Oo("user_id").notNull(),tool:ot("tool").notNull(),status:ot("status").notNull().default("pending"),config:qo("config").notNull().default({}),result:qo("result"),error:ot("error"),attempts:Mo("attempts").notNull().default(0),taskKind:ot("task_kind"),payload:qo("payload"),claimedBy:ot("claimed_by"),claimedAt:nt("claimed_at",{withTimezone:!0}),leaseExpiresAt:nt("lease_expires_at",{withTimezone:!0}),leaseRecoveries:Mo("lease_recoveries").notNull().default(0),hostSuspendRecoveries:Mo("host_suspend_recoveries").notNull().default(0),createdAt:nt("created_at",{withTimezone:!0}).defaultNow(),updatedAt:nt("updated_at",{withTimezone:!0}).defaultNow(),completedAt:nt("completed_at",{withTimezone:!0}),runId:Oo("run_id").references(()=>h.id,{onDelete:"set null"})},e=>[Ot("idx_launch_jobs_user").on(e.userId),Ot("idx_launch_jobs_status").on(e.status),Ot("idx_launch_jobs_pending").on(e.userId,e.status),Ot("idx_launch_jobs_run").on(e.runId)]);import{pgTable as Rr,uuid as U,text as Z,real as Ta,timestamp as rt,boolean as Aa,uniqueIndex as Da,index as st}from"drizzle-orm/pg-core";var kr=["add","remove","trim"],Ho=Rr("instruction_suggestions",{id:U("id").primaryKey().defaultRandom(),userId:U("user_id").notNull().references(()=>o.id,{onDelete:"cascade"}),instructionId:U("instruction_id").notNull().references(()=>n.id,{onDelete:"cascade"}),projectPath:Z("project_path").notNull(),projectId:U("project_id").references(()=>s.id,{onDelete:"set null"}),score:Ta("score").notNull(),reason:Z("reason").notNull(),kind:Z("kind").$type().notNull().default("add"),generatedAt:rt("generated_at",{withTimezone:!0}).notNull().defaultNow(),isStale:Aa("is_stale").notNull().default(!1),dismissedAt:rt("dismissed_at",{withTimezone:!0}),acceptedAt:rt("accepted_at",{withTimezone:!0}),declinedAt:rt("declined_at",{withTimezone:!0}),declinedReason:Z("declined_reason"),promotedToInstructionId:U("promoted_to_instruction_id").references(()=>n.id,{onDelete:"set null"})},e=>[Da("idx_instruction_suggestions_user_project_instruction_kind").on(e.userId,e.projectPath,e.instructionId,e.kind),st("idx_instruction_suggestions_user_project").on(e.userId,e.projectPath),st("idx_instruction_suggestions_user_proj_id").on(e.userId,e.projectId),st("idx_instruction_suggestions_generated_at").on(e.generatedAt)]),Er=Rr("instruction_suggestion_events",{id:U("id").primaryKey().defaultRandom(),suggestionId:U("suggestion_id").notNull().references(()=>Ho.id,{onDelete:"cascade"}),userId:U("user_id").notNull().references(()=>o.id,{onDelete:"cascade"}),eventType:Z("event_type").notNull(),tool:Z("tool"),sessionId:U("session_id"),projectPath:Z("project_path").notNull(),actor:Z("actor"),createdAt:rt("created_at",{withTimezone:!0}).notNull().defaultNow()},e=>[st("idx_instruction_suggestion_events_suggestion_id").on(e.suggestionId),st("idx_instruction_suggestion_events_user_id").on(e.userId)]);import{pgTable as ja,text as Lo,integer as za,numeric as it,timestamp as Uo,index as Ra,primaryKey as ka}from"drizzle-orm/pg-core";var Sr=ja("model_pricing",{provider:Lo("provider").notNull(),modelId:Lo("model_id").notNull(),inputPerM:it("input_per_m").notNull(),outputPerM:it("output_per_m").notNull(),cacheReadPerM:it("cache_read_per_m").notNull(),cacheWrite5mPerM:it("cache_write_5m_per_m").notNull(),cacheWrite1hPerM:it("cache_write_1h_per_m").notNull(),contextWindow:za("context_window"),effectiveFrom:Uo("effective_from",{withTimezone:!0}).notNull(),effectiveUntil:Uo("effective_until",{withTimezone:!0}),source:Lo("source").notNull(),verifiedAt:Uo("verified_at",{withTimezone:!0})},e=>[ka({columns:[e.provider,e.modelId,e.effectiveFrom]}),Ra("idx_model_pricing_active").on(e.provider,e.modelId,e.effectiveFrom.desc())]);import{pgTable as Ea,text as pe,numeric as br,timestamp as Pr,uuid as Kr,jsonb as Sa,index as Cr}from"drizzle-orm/pg-core";var qr=Ea("limit_observations",{id:Kr("id").primaryKey().defaultRandom(),observedAt:Pr("observed_at",{withTimezone:!0}).notNull().defaultNow(),provider:pe("provider").notNull(),plan:pe("plan").notNull(),limitType:pe("limit_type").notNull(),value:br("value").notNull(),unit:pe("unit").notNull(),comparator:pe("comparator").notNull().default("="),resetsAt:Pr("resets_at",{withTimezone:!0}),sourceType:pe("source_type").notNull(),sourceUrl:pe("source_url"),sourceEvidence:Sa("source_evidence"),confidence:br("confidence").notNull(),userId:Kr("user_id")},e=>[Cr("idx_limit_obs_lookup").on(e.provider,e.plan,e.limitType,e.observedAt.desc()),Cr("idx_limit_obs_user").on(e.userId,e.observedAt.desc())]);import{pgTable as ba,text as Mt,timestamp as Pa,uuid as Ka,jsonb as Ca,boolean as qa,uniqueIndex as Oa}from"drizzle-orm/pg-core";var Or=ba("provider_docs_snapshots",{id:Ka("id").primaryKey().defaultRandom(),fetchedAt:Pa("fetched_at",{withTimezone:!0}).notNull().defaultNow(),provider:Mt("provider").notNull(),docUrl:Mt("doc_url").notNull(),contentHash:Mt("content_hash").notNull(),content:Mt("content").notNull(),parseSuccess:qa("parse_success").notNull(),parseErrors:Ca("parse_errors")},e=>[Oa("idx_docs_dedup").on(e.provider,e.docUrl,e.contentHash)]);import{pgTable as Ma,text as Ht,numeric as Mr,timestamp as Hr,uuid as Ha,primaryKey as La,index as Ua}from"drizzle-orm/pg-core";var Lr=Ma("plan_limits_active",{provider:Ht("provider").notNull(),plan:Ht("plan").notNull(),limitType:Ht("limit_type").notNull(),value:Mr("value").notNull(),unit:Ht("unit").notNull(),effectiveFrom:Hr("effective_from",{withTimezone:!0}).notNull(),effectiveUntil:Hr("effective_until",{withTimezone:!0}),confidence:Mr("confidence").notNull(),sourceObservationIds:Ha("source_observation_ids").array().notNull()},e=>[La({columns:[e.provider,e.plan,e.limitType,e.effectiveFrom]}),Ua("idx_plan_limits_lookup").on(e.provider,e.plan,e.limitType,e.effectiveFrom.desc())]);import{pgTable as Ba,text as Bo,timestamp as Ga,uuid as Ur,jsonb as Va,index as Fa}from"drizzle-orm/pg-core";var Br=Ba("alert_dispatches",{id:Ur("id").primaryKey().defaultRandom(),userId:Ur("user_id").notNull(),alertKey:Bo("alert_key").notNull(),severity:Bo("severity").notNull(),lastDispatchedAt:Ga("last_dispatched_at",{withTimezone:!0}).notNull().defaultNow(),lastState:Va("last_state").notNull(),channel:Bo("channel").notNull()},e=>[Fa("idx_alert_user_key").on(e.userId,e.alertKey,e.lastDispatchedAt.desc())]);import{date as Gr,integer as Go,pgTable as Vr,primaryKey as $a,text as Ja,timestamp as Vo,uuid as Qa}from"drizzle-orm/pg-core";var Fr=Vr("weekly_digest_deliveries",{userId:Qa("user_id").notNull().references(()=>o.id,{onDelete:"cascade"}),weekStart:Gr("week_start").notNull(),sentAt:Vo("sent_at",{withTimezone:!0}).notNull().defaultNow(),providerMessageId:Ja("provider_message_id")},e=>[$a({columns:[e.userId,e.weekStart]})]),$r=Vr("weekly_digest_runs",{weekStart:Gr("week_start").primaryKey(),startedAt:Vo("started_at",{withTimezone:!0}).notNull().defaultNow(),finishedAt:Vo("finished_at",{withTimezone:!0}),sent:Go("sent"),skipped:Go("skipped"),failed:Go("failed")});import{pgTable as Ya,text as Fo,timestamp as Jr,uuid as $o,integer as Wa,index as Xa,unique as Za}from"drizzle-orm/pg-core";var Qr=Ya("scaffolding_fingerprints",{id:$o("id").primaryKey().defaultRandom(),userId:$o("user_id").notNull(),harness:Fo("harness").notNull(),model:Fo("model").notNull(),toolsHash:Fo("tools_hash").notNull(),firstSeenAt:Jr("first_seen_at",{withTimezone:!0}).notNull().defaultNow(),lastSeenAt:Jr("last_seen_at",{withTimezone:!0}).notNull().defaultNow(),snapshotCount:Wa("snapshot_count").notNull().default(1),firstSessionId:$o("first_session_id")},e=>[Za("scaffolding_fingerprints_user_id_harness_model_tools_hash_key").on(e.userId,e.harness,e.model,e.toolsHash),Xa("idx_scaffolding_fp_segment").on(e.userId,e.harness,e.model)]);import{pgTable as ed,text as Jo,timestamp as td,jsonb as od,uuid as Yr,integer as nd,unique as rd}from"drizzle-orm/pg-core";var Wr=ed("scaffolding_segments",{id:Yr("id").primaryKey().defaultRandom(),userId:Yr("user_id").notNull(),harness:Jo("harness").notNull(),model:Jo("model").notNull(),coreNames:od("core_names").notNull(),coreHash:Jo("core_hash").notNull(),activeFingerprints:nd("active_fingerprints").notNull(),computedAt:td("computed_at",{withTimezone:!0}).notNull().defaultNow()},e=>[rd("scaffolding_segments_user_id_harness_model_key").on(e.userId,e.harness,e.model)]);import{pgTable as sd,text as ee,timestamp as Xr,uuid as Qo,uniqueIndex as id,index as ad}from"drizzle-orm/pg-core";var Zr=["blog","docs","changelog"],Yo=sd("vendor_guidance_snapshots",{id:Qo("id").primaryKey().defaultRandom(),fetchedAt:Xr("fetched_at",{withTimezone:!0}).notNull().defaultNow(),sourceId:ee("source_id").notNull(),harness:ee("harness").notNull(),vendor:ee("vendor").notNull(),kind:ee("kind").$type().notNull(),url:ee("url").notNull(),title:ee("title").notNull(),contentHash:ee("content_hash").notNull(),text:ee("text").notNull(),previousSnapshotId:Qo("previous_snapshot_id").references(()=>Yo.id,{onDelete:"set null"}),pitchedAt:Xr("pitched_at",{withTimezone:!0}),pitchInstructionId:Qo("pitch_instruction_id").references(()=>n.id,{onDelete:"set null"})},e=>[id("idx_vendor_guidance_dedup").on(e.sourceId,e.contentHash),ad("idx_vendor_guidance_source_fetched").on(e.sourceId,e.fetchedAt)]);import{pgTable as ts,uuid as Ke,text as Lt,jsonb as es,timestamp as Wo,uniqueIndex as dd,integer as ud,unique as ld}from"drizzle-orm/pg-core";var te=ts("performance_studies",{id:Ke("id").primaryKey().defaultRandom(),userId:Ke("user_id").notNull(),evalTargetId:Ke("eval_target_id").notNull().references(()=>r.id,{onDelete:"cascade"}),projectPath:Lt("project_path").notNull(),protocol:es("protocol").notNull(),protocolHash:Lt("protocol_hash").notNull(),result:es("result"),finalizedAt:Wo("finalized_at",{withTimezone:!0}),createdAt:Wo("created_at",{withTimezone:!0}).defaultNow().notNull()},e=>[dd("performance_studies_protocol_unique").on(e.userId,e.evalTargetId,e.protocolHash)]),_e=ts("performance_study_calls",{id:Ke("id").primaryKey().defaultRandom(),studyId:Ke("study_id").notNull().references(()=>te.id,{onDelete:"cascade"}),jobId:Ke("job_id").notNull().references(()=>b.id,{onDelete:"cascade"}),taskId:Lt("task_id").notNull(),arm:Lt("arm").notNull(),repetition:ud("repetition").notNull(),reservedAt:Wo("reserved_at",{withTimezone:!0}).defaultNow().notNull()},e=>[ld("performance_study_calls_study_id_task_id_arm_repetition_key").on(e.studyId,e.taskId,e.arm,e.repetition)]);import{drizzle as is}from"drizzle-orm/postgres-js";import as from"postgres";var Ut={};Ds(Ut,{GUIDANCE_KINDS:()=>Zr,SUGGESTION_KINDS:()=>kr,agentJobs:()=>mr,agentRuns:()=>h,agentRunsRelations:()=>Ad,alertDispatches:()=>Br,announcementDeliveries:()=>dn,announcements:()=>an,apiKeys:()=>Ee,apiKeysRelations:()=>pd,benchmarks:()=>ze,benchmarksRelations:()=>qd,cliErrorEvents:()=>Jn,cliSetupEvents:()=>Fn,contentBlobs:()=>sr,contextSnapshots:()=>X,contextSnapshotsRelations:()=>Hd,evalComparisons:()=>Yn,evalConversations:()=>Se,evalConversationsRelations:()=>Md,evalGradeAnnotations:()=>Wn,evalJobs:()=>b,evalJobsRelations:()=>Od,evalRuns:()=>E,evalRunsRelations:()=>Cd,evalTargets:()=>r,evalTargetsRelations:()=>Pd,evals:()=>M,evalsRelations:()=>Kd,extensionAuthCodes:()=>hr,harnessReleases:()=>Ar,insightRecommendationLog:()=>En,insightsJobs:()=>fr,instructionEvents:()=>ge,instructionEventsRelations:()=>gd,instructionExperimentArms:()=>zn,instructionExperiments:()=>Ue,instructionPromotions:()=>Zn,instructionSuggestionEvents:()=>Er,instructionSuggestions:()=>Ho,instructionUsageEvents:()=>je,instructionUsageEventsRelations:()=>bd,instructionVerdicts:()=>kn,instructionVersionIdentities:()=>fn,instructionVersions:()=>he,instructionVersionsRelations:()=>Id,instructions:()=>n,instructionsRelations:()=>hd,judgeReviewerVerdicts:()=>Xn,launchJobs:()=>Pe,launchJobsRelations:()=>Dd,limitObservations:()=>qr,memories:()=>w,memoriesRelations:()=>vd,memoryExperiments:()=>Kn,modelPricing:()=>Sr,notificationPreferences:()=>un,notifications:()=>Co,orgInvitations:()=>P,orgInvitationsRelations:()=>fd,organizations:()=>l,organizationsRelations:()=>_d,packInstructions:()=>Y,packInstructionsRelations:()=>Sd,packs:()=>j,packsRelations:()=>Ed,pendingTreatmentExposures:()=>An,performanceStudies:()=>te,performanceStudiesRelations:()=>Ld,performanceStudyCalls:()=>_e,performanceStudyCallsRelations:()=>Ud,planLimitsActive:()=>Lr,profiles:()=>o,profilesRelations:()=>cd,projectCheckouts:()=>hn,projectInstructions:()=>F,projectInstructionsRelations:()=>wd,projects:()=>s,projectsRelations:()=>yd,providerDocsSnapshots:()=>Or,recommendationApplications:()=>er,scaffoldingFingerprints:()=>Qr,scaffoldingSegments:()=>Wr,sessionCaptureHeads:()=>ar,sessionEvents:()=>Ie,sessionEventsRelations:()=>jd,sessionInstructions:()=>$,sessionInstructionsRelations:()=>zd,sessionSendJobs:()=>On,sessionTerminalTargets:()=>wt,sessions:()=>a,sessionsRelations:()=>Td,skillSubmissions:()=>yr,snapshotDeltaObjects:()=>lr,teams:()=>v,teamsRelations:()=>md,treatmentAssignments:()=>C,treatmentAssignmentsRelations:()=>Rd,treatmentExposures:()=>q,treatmentExposuresRelations:()=>kd,userOrganizations:()=>Ne,userOrganizationsRelations:()=>Nd,userTeams:()=>xe,userTeamsRelations:()=>xd,vendorGuidanceSnapshots:()=>Yo,weeklyDigestDeliveries:()=>Fr,weeklyDigestRuns:()=>$r,workerConnections:()=>Bn});import{relations as i}from"drizzle-orm";var cd=i(o,({many:e})=>({sessions:e(a),contextSnapshots:e(X),apiKeys:e(Ee)})),pd=i(Ee,({one:e})=>({profile:e(o,{fields:[Ee.userId],references:[o.id]})})),_d=i(l,({many:e})=>({teams:e(v),userOrganizations:e(Ne),projects:e(s),invitations:e(P)})),md=i(v,({one:e,many:t})=>({organization:e(l,{fields:[v.orgId],references:[l.id]}),userTeams:t(xe),invitations:t(P)})),fd=i(P,({one:e})=>({organization:e(l,{fields:[P.orgId],references:[l.id]}),team:e(v,{fields:[P.teamId],references:[v.id]}),inviter:e(o,{fields:[P.invitedBy],references:[o.id]})})),Nd=i(Ne,({one:e})=>({organization:e(l,{fields:[Ne.orgId],references:[l.id]})})),xd=i(xe,({one:e})=>({team:e(v,{fields:[xe.teamId],references:[v.id]})})),hd=i(n,({one:e,many:t})=>({versions:t(he),projectInstructions:t(F),events:t(ge),usageEvents:t(je),sessionInstructions:t($),packInstructions:t(Y),forkedFrom:e(n,{fields:[n.forkedFromId],references:[n.id]})})),gd=i(ge,({one:e})=>({instruction:e(n,{fields:[ge.instructionId],references:[n.id]})})),vd=i(w,({one:e,many:t})=>({project:e(s,{fields:[w.projectId],references:[s.id]}),parent:e(w,{fields:[w.parentId],references:[w.id]}),versions:t(w)})),Id=i(he,({one:e})=>({instruction:e(n,{fields:[he.instructionId],references:[n.id]})})),yd=i(s,({one:e,many:t})=>({organization:e(l,{fields:[s.orgId],references:[l.id]}),projectInstructions:t(F),sessions:t(a)})),wd=i(F,({one:e})=>({project:e(s,{fields:[F.projectId],references:[s.id]}),instruction:e(n,{fields:[F.instructionId],references:[n.id]})})),Td=i(a,({one:e,many:t})=>({profile:e(o,{fields:[a.userId],references:[o.id]}),project:e(s,{fields:[a.projectId],references:[s.id]}),run:e(h,{fields:[a.runId],references:[h.id]}),events:t(Ie),sessionInstructions:t($),treatmentExposures:t(q),contextSnapshots:t(X)})),Ad=i(h,({one:e,many:t})=>({profile:e(o,{fields:[h.userId],references:[o.id]}),organization:e(l,{fields:[h.orgId],references:[l.id]}),project:e(s,{fields:[h.projectId],references:[s.id]}),sessions:t(a),launchJobs:t(Pe)})),Dd=i(Pe,({one:e})=>({run:e(h,{fields:[Pe.runId],references:[h.id]})})),jd=i(Ie,({one:e})=>({session:e(a,{fields:[Ie.sessionId],references:[a.id]})})),zd=i($,({one:e})=>({session:e(a,{fields:[$.sessionId],references:[a.id]}),instruction:e(n,{fields:[$.instructionId],references:[n.id]})})),Rd=i(C,({one:e,many:t})=>({owner:e(o,{fields:[C.userId],references:[o.id]}),project:e(s,{fields:[C.projectId],references:[s.id]}),exposures:t(q)})),kd=i(q,({one:e})=>({session:e(a,{fields:[q.sessionId],references:[a.id]}),owner:e(o,{fields:[q.userId],references:[o.id]}),assignment:e(C,{fields:[q.assignmentId],references:[C.id]})})),Ed=i(j,({one:e,many:t})=>({packInstructions:t(Y),forkedFrom:e(j,{fields:[j.forkedFromId],references:[j.id]})})),Sd=i(Y,({one:e})=>({pack:e(j,{fields:[Y.packId],references:[j.id]}),instruction:e(n,{fields:[Y.instructionId],references:[n.id]})})),bd=i(je,({one:e})=>({instruction:e(n,{fields:[je.instructionId],references:[n.id]})})),Pd=i(r,({one:e,many:t})=>({parent:e(r,{fields:[r.parentId],references:[r.id]}),evals:t(M),evalRuns:t(E),benchmarks:t(ze),evalJobs:t(b),evalConversations:t(Se)})),Kd=i(M,({one:e,many:t})=>({evalTarget:e(r,{fields:[M.evalTargetId],references:[r.id]}),runs:t(E)})),Cd=i(E,({one:e})=>({eval:e(M,{fields:[E.evalId],references:[M.id]}),evalTarget:e(r,{fields:[E.evalTargetId],references:[r.id]})})),qd=i(ze,({one:e})=>({evalTarget:e(r,{fields:[ze.evalTargetId],references:[r.id]})})),Od=i(b,({one:e})=>({evalTarget:e(r,{fields:[b.evalTargetId],references:[r.id]})})),Md=i(Se,({one:e})=>({evalTarget:e(r,{fields:[Se.evalTargetId],references:[r.id]})})),Hd=i(X,({one:e})=>({session:e(a,{fields:[X.sessionId],references:[a.id]}),profile:e(o,{fields:[X.userId],references:[o.id]})})),Ld=i(te,({one:e,many:t})=>({target:e(r,{fields:[te.evalTargetId],references:[r.id]}),calls:t(_e)})),Ud=i(_e,({one:e})=>({study:e(te,{fields:[_e.studyId],references:[te.id]}),job:e(b,{fields:[_e.jobId],references:[b.id]})}));var at=0,os=0,dt=0,ns=0;var Bd=0;function Xo(){at++,at>os&&(os=at)}m(Xo,"trackDbOpStart");function Zo(){at>0&&at--}m(Zo,"trackDbOpEnd");function en(){dt++,dt>ns&&(ns=dt)}m(en,"trackHeavyDbOpStart");function tn(){dt>0&&dt--}m(tn,"trackHeavyDbOpEnd");function rs(){Bd++}m(rs,"recordQueryDeadline");var Gt,Ft,on=!1,Bt;var ss,$t,Vt;function ds(e){let t=process.env[e];if(!t)throw new Error(`Missing required env var: ${e}`);return t}m(ds,"getEnv");function us(){if(on)throw new Error("getDb() called after closeDb(): the connection pool is closed for shutdown. Stop issuing queries (timers/requests) before draining the pool.");if(!Gt){let e=process.env.PG_APPLICATION_NAME||"rulemetric",t=Number(process.env.PG_POOL_MAX)||3,d=Number(process.env.PG_CONNECT_TIMEOUT_S)||10,u=Number(process.env.PG_STATEMENT_TIMEOUT_MS)||0,_=Number(process.env.PG_IDLE_TIMEOUT)||5,x=Number(process.env.PG_KEEP_ALIVE_S)||60;Ft=as(ds("DATABASE_URL"),{prepare:!1,max:t,connect_timeout:d,idle_timeout:_,keep_alive:x,max_lifetime:300,connection:{application_name:e,...u>0?{statement_timeout:u}:{}}}),Gt=is(Ft,{schema:Ut})}return Gt}m(us,"getDb");function ls(){if(on)throw new Error("getHeavyDb() called after closeDb(): the connection pool is closed for shutdown. Stop issuing queries (timers/requests) before draining the pool.");if(!Vt){let e=(process.env.PG_APPLICATION_NAME||"rulemetric")+":heavy",t=Number(process.env.PG_HEAVY_POOL_MAX)||2;$t=as(ds("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}}),Vt=is($t,{schema:Ut})}return Vt}m(ls,"getHeavyDb");async function Gd(){if(Bt)return Bt;on=!0;let e=Ft,t=ss,d=$t;return Ft=void 0,Gt=void 0,ss=void 0,$t=void 0,Vt=void 0,Bt=Promise.allSettled([e?e.end({timeout:5}):Promise.resolve(),t?t.end({timeout:5}):Promise.resolve(),d?d.end({timeout:5}):Promise.resolve()]).then(()=>{}),Bt}m(Gd,"closeDb");var Vd=new Set(["CONNECT_TIMEOUT","ETIMEDOUT","ENOTFOUND","ECONNREFUSED","EAI_AGAIN"]);function cs(e){let t=e,d=t?.code??t?.cause?.code??t?.errno;return d!==void 0&&Vd.has(d)}m(cs,"isRetryableConnectError");var Fd=new Set(["CONNECTION_CLOSED","ECONNRESET","EPIPE"]);function ps(e){let t=e,d=t?.code??t?.cause?.code??t?.errno;return d!==void 0&&Fd.has(d)}m(ps,"isRetryableResetError");async function _s(e,t={}){let d=t.attempts??3,u=t.baseMs??100,_;for(let x=0;x<d;x++)try{return await e()}catch(A){_=A;let B=cs(A)||t.retryResets===!0&&ps(A);if(x===d-1||!B)throw A;await new Promise(oe=>setTimeout(oe,u*2**x))}throw _}m(_s,"withDbRetry");var Jt=class extends Error{static{m(this,"QueryDeadlineError")}code="QUERY_DEADLINE";constructor(t){super(`Query exceeded the client-side deadline of ${t}ms \u2014 the DB pool is likely saturated (acquire-wait) or holding a dead socket; failing fast to avoid pinning the caller. See client.ts.`),this.name="QueryDeadlineError"}};function ms(){let e=Number(process.env.PG_QUERY_DEADLINE_MS);return Number.isFinite(e)&&e>=0?e:2e4}m(ms,"queryDeadlineMs");function fs(){let e=Number(process.env.PG_HEAVY_QUERY_DEADLINE_MS);return Number.isFinite(e)&&e>=0?e:6e4}m(fs,"heavyQueryDeadlineMs");function $d(e,t,d=!0){let u,_=new Promise((x,A)=>{u=setTimeout(()=>{d&&rs(),A(new Jt(t))},t);let B=u;typeof B.unref=="function"&&B.unref()});return Promise.race([e,_]).finally(()=>clearTimeout(u))}m($d,"raceWithDeadline");var Ns=new Set(["select","selectDistinct","selectDistinctOn","insert","update","delete","execute","with","$count","refreshMaterializedView"]),xs=new Set(["select","selectDistinct","selectDistinctOn","$count"]);function nn(e,t=!1,d=0,u=!1){return e===null||typeof e!="object"&&typeof e!="function"?e:new Proxy(e,{get(_,x,A){if(x==="then"){let oe=Reflect.get(_,x,A);return typeof oe!="function"?oe:(vs,Is)=>{let ys=u?en:Xo,ws=u?tn:Zo;ys();let rn=_s(()=>new Promise((Ts,As)=>oe.call(_,Ts,As)),{retryResets:t});return(d>0?$d(rn,d,!u):rn).finally(ws).then(vs,Is)}}let B=Reflect.get(_,x,A);return typeof B=="function"?(...oe)=>nn(B.apply(_,oe),t,d,u):B}})}m(nn,"wrapBuilder");function hs(e,t=!1){let d=t?en:Xo,u=t?tn:Zo;d();try{return Promise.resolve(e()).finally(u)}catch(_){throw u(),_}}m(hs,"gaugeTransaction");var gs=new Proxy({},{get(e,t){let d=us(),u=d[t];if(typeof t=="string"&&Ns.has(t)&&typeof u=="function"){let _=xs.has(t),x=ms();return(...A)=>nn(u.apply(d,A),_,x)}return t==="transaction"&&typeof u=="function"?(..._)=>hs(()=>u.apply(d,_)):u}}),Jd=new Proxy({},{get(e,t){let d=ls(),u=d[t];if(typeof t=="string"&&Ns.has(t)&&typeof u=="function"){let _=xs.has(t);return(...x)=>nn(u.apply(d,x),_,fs(),!0)}return t==="transaction"&&typeof u=="function"?(..._)=>hs(()=>u.apply(d,_),!0):u}});export{an as a,us as b,Gd as c};
|
package/dist/chunk-XIOYV5A7.js
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{b as l}from"./chunk-ISFPPDDB.js";import{a as p}from"./chunk-5RBLIVBF.js";import{h}from"./chunk-GIXHG5FK.js";import{a as c}from"./chunk-ZLLER3HP.js";async function g(t){if(!t.worktree?.create)return t;let{branch:e,baseRef:s}=t.worktree,n=await l({repoRoot:t.projectPath,branch:e,baseRef:s});return{...t,projectPath:n.path,gitBranch:n.branch}}c(g,"resolveWorktreeForLaunch");async function L(t,e){let{mirrorId:s,tool:n}=t,{config:r}=t,a=c(o=>e.logger.info(o),"log");if(e.job.attempts>1)throw new p(`process_launch is not safe to retry (attempt ${e.job.attempts}). Re-launch manually.`);r=await g(r),r.worktree?.create&&a(`Worktree resolved: ${r.projectPath} (branch ${r.gitBranch})`),a(`Launching ${n}...`);let{getLauncher:f}=await import("./dist-GSHUC7UU.js"),i=await f(n).launch(r);a(`Launch completed: sessionId=${i.sessionId}`);let u={...i,worktreePath:r.worktree?.create?r.projectPath:void 0,runId:r.runId};return await h(`/api/launch-jobs/${s}/state`,{result:u}).catch(o=>{a(`result persist failed: ${o instanceof Error?o.message:String(o)}`)}),u}c(L,"processLaunch");export{g as a,L as b};
|